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] epel9: Update to 2.53.24 Date: Thu, 30 Jul 2026 20:10:12 GMT Message-ID: <178544221203.1.6196985604822237443.rpms-seamonkey-65aaf47a2e3b@fedoraproject.org> List-ID: X-Git-Repo: rpms/seamonkey X-Git-Branch: epel9 X-Git-Rev: 65aaf47a2e3bbdfb9d7e19b2556bc4976080f155 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc2VhbW9ua2V5CkJy YW5jaCA6IGVwZWw5CkNvbW1pdCA6IDY1YWFmNDdhMmUzYmJkZmI5ZDdlMTliMjU1NmJjNDk3NjA4 MGYxNTUKQXV0aG9yIDogRG1pdHJ5IEJ1dHNrb3kgPGRtaXRyeUBidXRza295Lm5hbWU+CkRhdGUg ICA6IDIwMjYtMDctMzBUMjM6MDg6MzYrMDM6MDAKU3RhdHMgIDogKzI5Mjk1Ly0yNDQwNCBpbiA4 IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9zZWFt b25rZXkvYy82NWFhZjQ3YTJlM2JiZGZiOWQ3ZTE5YjI1NTZiYzQ5NzYwODBmMTU1P2JyYW5jaD1l cGVsOQoKTG9nOgpVcGRhdGUgdG8gMi41My4yNAoKLS0tCmRpZmYgLS1naXQgYS9zZWFtb25rZXkt Mi41My4yMi1tb3ppbGxhLTE4ODIyMDkucGF0Y2ggYi9zZWFtb25rZXktMi41My4yMi1tb3ppbGxh LTE4ODIyMDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4YzcyM2YuLjAw MDAwMDAKLS0tIGEvc2VhbW9ua2V5LTIuNTMuMjItbW96aWxsYS0xODgyMjA5LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjQzOTYgKzAsMCBAQAotZGlmZiAtTnJidSBhLy5jYXJnby9jb25maWcu aW4gYi8uY2FyZ28vY29uZmlnLmluCi0tLS0gYS8uY2FyZ28vY29uZmlnLmluCTIwMjUtMDktMDcg MTQ6MzA6MzcuMDAwMDAwMDAwICswMzAwCi0rKysgYi8uY2FyZ28vY29uZmlnLmluCTIwMjUtMDkt MTcgMTc6NTg6NTMuMzc0NTI2MjAxICswMzAwCi1AQCAtNywxMCArNywxMCBAQAotIGJyYW5jaCA9 ICJkZXNlcmlhbGl6ZV9mcm9tX2VudW1zOCIKLSByZXBsYWNlLXdpdGggPSAidmVuZG9yZWQtc291 cmNlcyIKLSAKLS1bc291cmNlLiJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3Np bWQiXQotLWdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQiCi0r W3NvdXJjZS4iZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91 bmQ/cmV2PTdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiXQotK2dpdCA9 ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kIgotK3JldiA9 ICI3ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIgotIHJlcGxhY2Utd2l0 aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgotLXJldiA9ICJlNTg4Y2ViNTY4ODc4ZTFhMzE1NmVhOWNl NTUxZDViNjNlZjBjZGM0IgotIAotIFtzb3VyY2UudmVuZG9yZWQtc291cmNlc10KLSBkaXJlY3Rv cnkgPSAnQHRvcF9zcmNkaXJAL3RoaXJkX3BhcnR5L3J1c3QnCi1kaWZmIC1OcmJ1IGEvQ2FyZ28u bG9jayBiL0NhcmdvLmxvY2sKLS0tLSBhL0NhcmdvLmxvY2sJMjAyNS0wOS0wNyAxNDozMDozNy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL0NhcmdvLmxvY2sJMjAyNS0wOS0xNyAxODowMDo0My4yMDkz MjE5ODAgKzAzMDAKLUBAIC0yMSw2ICsyMSwxNSBAQAotIF0KLSAKLSBbW3BhY2thZ2VdXQotK25h bWUgPSAiYW55X2FsbF93b3JrYXJvdW5kIgotK3ZlcnNpb24gPSAiMC4xLjAiCi0rc291cmNlID0g ImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kP3Jldj03 ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIzdmYjFiNzAzNGM5ZjE3MmFh ZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiCi0rZGVwZW5kZW5jaWVzID0gWwotKyAiY2ZnLWlmIDEu MC4wIiwKLSsgInZlcnNpb25fY2hlY2siLAotK10KLSsKLStbW3BhY2thZ2VdXQotIG5hbWUgPSAi YXBwX3VuaXRzIgotIHZlcnNpb24gPSAiMC43LjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotQEAgLTYwOCwxMiArNjE3 LDEyIEBACi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImVuY29kaW5nX3JzIgotLXZlcnNpb24g PSAiMC44LjMzIgotK3ZlcnNpb24gPSAiMC44LjM0IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI3 MjY4YjM4NjI5NmEwMjVlNDc0ZDUxNDA2NzhmNzVkNmRlOTQ5M2FlNTVhNWQ3MDllZWI5ZGQwODE0 OTk0NWUxIgotK2NoZWNrc3VtID0gImI0NWRlOTA0YWEwYjAxMGJjZTJhYjQ1MjY0ZDA2MzE2ODE4 NDdmYTdiNmYyZWFhN2RhYjc2MTk5NDNiYzRmNTkiCi0gZGVwZW5kZW5jaWVzID0gWwotKyAiYW55 X2FsbF93b3JrYXJvdW5kIiwKLSAgImNmZy1pZiAxLjAuMCIsCi0tICJwYWNrZWRfc2ltZCIsCi0g XQotIAotIFtbcGFja2FnZV1dCi1AQCAtMTMwNiwxNSArMTMxNSw2IEBACi0gXQotIAotIFtbcGFj a2FnZV1dCi0tbmFtZSA9ICJwYWNrZWRfc2ltZCIKLS12ZXJzaW9uID0gIjAuMy45IgotLXNvdXJj ZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL3BhY2tlZF9zaW1kP3Jldj1lNTg4 Y2ViNTY4ODc4ZTFhMzE1NmVhOWNlNTUxZDViNjNlZjBjZGM0I2U1ODhjZWI1Njg4NzhlMWEzMTU2 ZWE5Y2U1NTFkNWI2M2VmMGNkYzQiCi0tZGVwZW5kZW5jaWVzID0gWwotLSAiY2ZnLWlmIDEuMC4w IiwKLS0gIm51bS10cmFpdHMgMC4yLjE1IiwKLS1dCi0tCi0tW1twYWNrYWdlXV0KLSBuYW1lID0g InBhcmtpbmdfbG90IgotIHZlcnNpb24gPSAiMC42LjMiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotQEAgLTIyNDAsNiAr MjI0MCwxMiBAQAotIGNoZWNrc3VtID0gIjg4N2I1YjYzMWMyYWQwMTYyOGJiYmFhN2RkNGM4Njlm ODBkMzE4NjY4OGY4ZDBiNmY1ODc3NGZiZTMyNDk4OGMiCi0gCi0gW1twYWNrYWdlXV0KLStuYW1l ID0gInZlcnNpb25fY2hlY2siCi0rdmVyc2lvbiA9ICIwLjkuNCIKLStzb3VyY2UgPSAicmVnaXN0 cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tz dW0gPSAiNDk4NzRiNTE2N2I2NWQ3MTkzYjhhYmExNTY3ZjVjN2Q5M2QwMDFjYWZjMzQ2MDBjZWUw MDNlZGE3ODdlNDgzZiIKLSsKLStbW3BhY2thZ2VdXQotIG5hbWUgPSAidm9pZCIKLSB2ZXJzaW9u ID0gIjEuMC4yIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nL2NyYXRlcy5pby1pbmRleCIKLWRpZmYgLU5yYnUgYS9DYXJnby50b21sIGIvQ2FyZ28udG9t bAotLS0tIGEvQ2FyZ28udG9tbAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAot KysrIGIvQ2FyZ28udG9tbAkyMDI1LTA5LTE3IDE4OjAyOjIzLjcwNDQ3NTI0NiArMDMwMAotQEAg LTUzLDQgKzUzLDQgQEAKLSBbcGF0Y2guY3JhdGVzLWlvXQotIGxpYnVkZXYtc3lzID0geyBwYXRo ID0gImRvbS93ZWJhdXRobi9saWJ1ZGV2LXN5cyIgfQotIHNlcmRlX2Rlcml2ZSA9IHsgZ2l0ID0g Imh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9zZXJkZSIsIGJyYW5jaCA9ICJkZXNlcmlhbGl6ZV9m cm9tX2VudW1zOCIgfQotLXBhY2tlZF9zaW1kID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL3BhY2tlZF9zaW1kIiwgcmV2ID0gImU1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5Y2U1 NTFkNWI2M2VmMGNkYzQiIH0KLSthbnlfYWxsX3dvcmthcm91bmQgPSB7IGdpdCA9ICJodHRwczov L2dpdGh1Yi5jb20vaHNpdm9uZW4vYW55X2FsbF93b3JrYXJvdW5kIiwgcmV2ID0gIjdmYjFiNzAz NGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiIH0KLWRpZmYgLU5yYnUgYS9jb25maWcv bWFrZWZpbGVzL3J1c3QubWsgYi9jb25maWcvbWFrZWZpbGVzL3J1c3QubWsKLS0tLSBhL2NvbmZp Zy9tYWtlZmlsZXMvcnVzdC5tawkyMDI1LTA0LTIwIDE5OjI4OjAxLjAwMDAwMDAwMCArMDMwMAot KysrIGIvY29uZmlnL21ha2VmaWxlcy9ydXN0Lm1rCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM3ODA1 MDQ2ICswMzAwCi1AQCAtNjYsNyArNjYsNyBAQAotICMgUlVTVENfQk9PVFNUUkFQIDo9IGdrcnVz dF9zaGFyZWQscWNtcyBmb3IgbGF0ZXIKLSBSVVNUQ19CT09UU1RSQVAgOj0gZ2tydXN0X3NoYXJl ZAotIGlmZGVmIE1PWl9SVVNUX1NJTUQKLS1SVVNUQ19CT09UU1RSQVAgOj0gJChSVVNUQ19CT09U U1RSQVApLGVuY29kaW5nX3JzLHBhY2tlZF9zaW1kCi0rUlVTVENfQk9PVFNUUkFQIDo9ICQoUlVT VENfQk9PVFNUUkFQKSxlbmNvZGluZ19ycyxhbnlfYWxsX3dvcmthcm91bmQKLSBlbmRpZgotIGV4 cG9ydCBSVVNUQ19CT09UU1RSQVAKLSBlbmRpZgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvYW55X2FsbF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3VtLmpzb24KLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5qc29uCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Fu eV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbgkyMDI1LTA5LTE3IDE3OjQxOjIx LjEzNzgwNTA0NiArMDMwMAotQEAgLTAsMCArMSBAQAotK3siZmlsZXMiOnsiQ2FyZ28udG9tbCI6 ImY4YzEyNzQ0OWRjOTQzMmQ0MDRjMjFjOTk4MzNlNDYxN2FiODhhNzk3NDQ1YWYyNDlhN2ZlM2M5 ODk5ODVkNmQiLCJMSUNFTlNFLUFQQUNIRSI6ImE2MGVlYTgxNzUxNDUzMTY2OGQ3ZTAwNzY1NzMx NDQ5ZmUxNGQwNTlkMzI0OWUwYmM5M2IzNmRlNDVmNzU5ZjIiLCJMSUNFTlNFLU1JVCI6IjY0ODVi OGVkMzEwZDNmMDM0MGJmMWFkMWY0NzY0NTA2OWNlNDA2OWRjYzZiYjQ2YzdkNWM2ZmFmNDFkZTFm ZGIiLCJMSUNFTlNFLU1JVC1RQ01TIjoiMzZkODQ3YWU4ODJmNjU3NGViYzcyZjU2YTRmMzU0ZTRm MTA0ZmRlNGE1ODQzNzM0OTY0ODJlOTdkNTJkMzFiYyIsIlJFQURNRS5tZCI6IjRjNjE3YjhjZWQz YTI3YjdlZGVjZjBlNWU0MWVkNDUxYzA0ZTg4ZGFiNTI5ZTdhMzVmY2NjNGUxNTUxZWZiZDciLCJi dWlsZC5ycyI6IjU2YjI5YWI2ZGEzZTQ5MDc1YmZkMGE3YjY5MDI2N2M4MDE2Mjk4YmYwZDMzMmUy ZTY4YmJhZjE5ZGVjYmJmNzEiLCJzcmMvbGliLnJzIjoiNzExODEwNjY5MGI5ZDI1YzVkMGEzZTIw NzlmZWI4M2Q3NmYxZDQzNGQwZGEzNmI5ZDAzNTE4MDZkMjdjODUwZCJ9LCJwYWNrYWdlIjpudWxs fQotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55 X2FsbF93b3JrYXJvdW5kL0NhcmdvLnRvbWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2Fs bF93b3JrYXJvdW5kL0NhcmdvLnRvbWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0NhcmdvLnRvbWwJ MjAyNS0wOS0xNyAxNzo0MToyMS4xMzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEsMjggQEAKLSsj IFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTwotKyMKLSsjIFdo ZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBhdXRvbWF0aWNh bGx5Ci0rIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFsIGNvbXBhdGli aWxpdHkKLSsjIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJld3JpdGUgYHBh dGhgIGRlcGVuZGVuY2llcwotKyMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykgZGVwZW5k ZW5jaWVzLgotKyMKLSsjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUgdGhh dCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAotKyMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRpZmZl cmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KLSsjIFNlZSBDYXJnby50b21sLm9yaWcg Zm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KLSsKLStbcGFja2FnZV0KLStlZGl0aW9uID0gIjIw MjEiCi0rbmFtZSA9ICJhbnlfYWxsX3dvcmthcm91bmQiCi0rdmVyc2lvbiA9ICIwLjEuMCIKLSth dXRob3JzID0gWyJIZW5yaSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4iXQotK2Rlc2Ny aXB0aW9uID0gIldvcmthcm91bmQgZm9yIGJhZCBMTFZNIGNvZGVnZW4gZm9yIGJvb2xlYW4gcmVk dWN0aW9ucyBvbiAzMi1iaXQgQVJNIgotK2hvbWVwYWdlID0gImh0dHBzOi8vZG9jcy5ycy9hbnlf YWxsX3dvcmthcm91bmQvIgotK2RvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJzL2FueV9h bGxfd29ya2Fyb3VuZC8iCi0rcmVhZG1lID0gIlJFQURNRS5tZCIKLStsaWNlbnNlID0gIk1JVCBP UiBBcGFjaGUtMi4wIgotK3JlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVu L2FueV9hbGxfd29ya2Fyb3VuZCIKLSsKLStbZGVwZW5kZW5jaWVzXQotK2NmZy1pZiA9ICIxLjAi Ci0rCi0rW2J1aWxkLWRlcGVuZGVuY2llc10KLSt2ZXJzaW9uX2NoZWNrID0gIjAuOSIKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQQUNI RSBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hFCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQQUNIRQkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFDSEUJMjAyNS0wOS0xNyAxNzo0MToyMS4x Mzc4MDUwNDYgKzAzMDAKLUBAIC0wLDAgKzEsMjAxIEBACi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQXBhY2hlIExpY2Vuc2UKLSsgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9u IDIuMCwgSmFudWFyeSAyMDA0Ci0rICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFj aGUub3JnL2xpY2Vuc2VzLwotKwotK1RFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJP RFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgotKwotKzEuIERlZmluaXRpb25zLgotKwotKyAgICJM aWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXBy b2R1Y3Rpb24sCi0rICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEg dGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCi0rCi0rICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFu IHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKLSsgICB0aGUgY29w eXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCi0rCi0rICAgIkxlZ2Fs IEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFs bAotKyAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9y IGFyZSB1bmRlciBjb21tb24KLSsgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUg cHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAotKyAgICJjb250cm9sIiBtZWFucyAoaSkgdGhl IHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQotKyAgIGRpcmVjdGlvbiBv ciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCi0rICAg b3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1v cmUgb2YgdGhlCi0rICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93 bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KLSsKLSsgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBt ZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0rICAgZXhlcmNpc2luZyBwZXJtaXNz aW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KLSsKLSsgICAiU291cmNlIiBmb3JtIHNoYWxs IG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKLSsgICBp bmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVu dGF0aW9uCi0rICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KLSsKLSsgICAiT2Jq ZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAot KyAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1 ZGluZyBidXQKLSsgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJh dGVkIGRvY3VtZW50YXRpb24sCi0rICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5 cGVzLgotKwotKyAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdo ZXRoZXIgaW4gU291cmNlIG9yCi0rICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVy IHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQotKyAgIGNvcHlyaWdodCBub3RpY2UgdGhh dCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yawotKyAgIChhbiBleGFtcGxl IGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCi0rCi0rICAgIkRlcml2YXRpdmUg V29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAot KyAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5k IGZvciB3aGljaCB0aGUKLSsgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxh Ym9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0rICAgcmVwcmVzZW50LCBhcyBhIHdo b2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKLSsg ICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29y a3MgdGhhdCByZW1haW4KLSsgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJp bmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCi0rICAgdGhlIFdvcmsgYW5kIERlcml2 YXRpdmUgV29ya3MgdGhlcmVvZi4KLSsKLSsgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFu eSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwotKyAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9u IG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKLSsgICB0byB0 aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFs bHkKLSsgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBi eSB0aGUgY29weXJpZ2h0IG93bmVyCi0rICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBF bnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCi0rICAgdGhlIGNvcHlyaWdo dCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQi Ci0rICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNv bW11bmljYXRpb24gc2VudAotKyAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRp dmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi0rICAgY29tbXVuaWNhdGlvbiBvbiBl bGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKLSsg ICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBi ZWhhbGYgb2YsIHRoZQotKyAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5n IGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAotKyAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9u IHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCi0rICAgZGVzaWduYXRl ZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlv bi4iCi0rCi0rICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5k aXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSsgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1 dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKLSsgICBzdWJzZXF1ZW50bHkg aW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KLSsKLSsyLiBHcmFudCBvZiBDb3B5cmlnaHQg TGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSsgICB0aGlz IExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1 YWwsCi0rICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJl ZSwgaXJyZXZvY2FibGUKLSsgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBh cmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKLSsgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBw ZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKLSsgICBXb3JrIGFuZCBzdWNo IERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgotKwotKzMuIEdyYW50 IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBv ZgotKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlv dSBhIHBlcnBldHVhbCwKLSsgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwg cm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotKyAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMg c2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAotKyAgIHVzZSwgb2Zm ZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3Jr LAotKyAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNs YWltcyBsaWNlbnNhYmxlCi0rICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3Nh cmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKLSsgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkg Y29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCi0rICAgd2l0aCB0aGUgV29yayB0 byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKLSsgICBp bnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcg YQotKyAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5n IHRoYXQgdGhlIFdvcmsKLSsgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGlu IHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAotKyAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQg aW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKLSsgICBncmFudGVkIHRvIFlv dSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKLSsgICBh cyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi0rCi0rNC4gUmVkaXN0cmli dXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKLSsg ICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9y IHdpdGhvdXQKLSsgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3Jt LCBwcm92aWRlZCB0aGF0IFlvdQotKyAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgot KwotKyAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3Jr IG9yCi0rICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5k Ci0rCi0rICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBw cm9taW5lbnQgbm90aWNlcwotKyAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZp bGVzOyBhbmQKLSsKLSsgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0g b2YgYW55IERlcml2YXRpdmUgV29ya3MKLSsgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxs IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAotKyAgICAgICBhdHRyaWJ1dGlvbiBu b3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAotKyAgICAgICBleGNsdWRp bmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCi0rICAg ICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKLSsKLSsgICAoZCkgSWYgdGhlIFdvcmsgaW5j bHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKLSsgICAgICAgZGlzdHJp YnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVz dAotKyAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90 aWNlcyBjb250YWluZWQKLSsgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGlu ZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90Ci0rICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQg b2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQotKyAgICAgICBvZiB0aGUg Zm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAot KyAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJj ZSBmb3JtIG9yCi0rICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGgg dGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAotKyAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVy YXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCi0rICAgICAgIHdoZXJldmVyIHN1 Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cwotKyAg ICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9u bHkgYW5kCi0rICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlv dXIgb3duIGF0dHJpYnV0aW9uCi0rICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29y a3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCi0rICAgICAgIG9yIGFzIGFuIGFkZGVu ZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAotKyAgICAgICB0 aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1 ZWQKLSsgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgotKwotKyAgIFlvdSBtYXkgYWRk IFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAot KyAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5k IGNvbmRpdGlvbnMKLSsgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBv ZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCi0rICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29y a3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCi0rICAgcmVwcm9kdWN0aW9uLCBhbmQg ZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCi0rICAgdGhl IGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KLSsKLSs1LiBTdWJtaXNzaW9uIG9m IENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCi0r ICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9u IGluIHRoZSBXb3JrCi0rICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0 aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSsgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55 IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KLSsgICBOb3R3aXRoc3RhbmRpbmcgdGhl IGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5Ci0rICAgdGhl IHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhl Y3V0ZWQKLSsgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCi0r Ci0rNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24g dG8gdXNlIHRoZSB0cmFkZQotKyAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBv ciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKLSsgICBleGNlcHQgYXMgcmVxdWlyZWQg Zm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKLSsgICBv cmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJ Q0UgZmlsZS4KLSsKLSs3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQg YnkgYXBwbGljYWJsZSBsYXcgb3IKLSsgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3Ig cHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCi0rICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRz IENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0rICAgV0lUSE9VVCBXQVJSQU5U SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCi0rICAgaW1w bGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNv bmRpdGlvbnMKLSsgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZ LCBvciBGSVRORVNTIEZPUiBBCi0rICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVs eSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCi0rICAgYXBwcm9wcmlhdGVuZXNzIG9m IHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55Ci0rICAgcmlz a3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhp cyBMaWNlbnNlLgotKwotKzguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBh bmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAotKyAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5n IG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAotKyAgIHVubGVzcyByZXF1aXJl ZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5Ci0rICAg bmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJp YnV0b3IgYmUKLSsgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRp cmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi0rICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlh bCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCi0rICAgcmVzdWx0IG9mIHRo aXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQotKyAg IFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBn b29kd2lsbCwKLSsgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0 aW9uLCBvciBhbnkgYW5kIGFsbAotKyAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3Nz ZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKLSsgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRo ZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0rCi0rOS4gQWNjZXB0aW5nIFdhcnJhbnR5 IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZwotKyAgIHRoZSBX b3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIs Ci0rICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFu dHksIGluZGVtbml0eSwKLSsgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29y IHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwotKyAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFj Y2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5Ci0rICAgb24gWW91ciBv d24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYK LSsgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBp bmRlbW5pZnksCi0rICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNz IGZvciBhbnkgbGlhYmlsaXR5Ci0rICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBh Z2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgotKyAgIG9mIHlvdXIgYWNjZXB0aW5n IGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgotKwotK0VORCBPRiBU RVJNUyBBTkQgQ09ORElUSU9OUwotKwotK0FQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNo ZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KLSsKLSsgICBUbyBhcHBseSB0aGUgQXBhY2hlIExpY2Vu c2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZwotKyAgIGJvaWxlcnBsYXRlIG5v dGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKLSsgICByZXBs YWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVk ZQotKyAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQgYmUgZW5jbG9zZWQgaW4gdGhl IGFwcHJvcHJpYXRlCi0rICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2Ug YWxzbyByZWNvbW1lbmQgdGhhdCBhCi0rICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlw dGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQotKyAgIHNhbWUgInByaW50ZWQgcGFn ZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgotKyAgIGlkZW50aWZpY2F0aW9u IHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KLSsKLStDb3B5cmlnaHQgW3l5eXldIFtuYW1l IG9mIGNvcHlyaWdodCBvd25lcl0KLSsKLStMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vu c2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSt5b3UgbWF5IG5vdCB1c2UgdGhpcyBm aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0rWW91IG1heSBvYnRh aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0rCi0rCWh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s aWNlbnNlcy9MSUNFTlNFLTIuMAotKwotK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLStkaXN0cmlidXRlZCB1bmRlciB0 aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotK1dJVEhPVVQg V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp bXBsaWVkLgotK1NlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVy bmluZyBwZXJtaXNzaW9ucyBhbmQKLStsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1J VCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlUCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVAkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlf YWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzc4MDUwNDYg KzAzMDAKLUBAIC0wLDAgKzEsMjUgQEAKLStDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIFJ1c3QgUHJv amVjdCBEZXZlbG9wZXJzCi0rCi0rUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueQotK3BlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQKLStkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks IHRvIGRlYWwgaW4gdGhlCi0rU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQKLStsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLAotK3B1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll cyBvZgotK3RoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv ZnR3YXJlCi0raXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcK LStjb25kaXRpb25zOgotKwotK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlCi0rc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJz dGFudGlhbCBwb3J0aW9ucwotK29mIHRoZSBTb2Z0d2FyZS4KLSsKLStUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRgotK0FOWSBLSU5ELCBFWFBSRVNT IE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKLStUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEKLStQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQKLStTSEFMTCBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQotK0NMQUlNLCBEQU1BR0VTIE9SIE9U SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLStPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SCi0rSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0rREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJ Q0VOU0UtTUlULVFDTVMgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNF TlNFLU1JVC1RQ01TCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9M SUNFTlNFLU1JVC1RQ01TCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVC1RQ01TCTIw MjUtMDktMTcgMTc6NDE6MjEuMTM3ODA1MDQ2ICswMzAwCi1AQCAtMCwwICsxLDIxIEBACi0rcWNt cwotK0NvcHlyaWdodCAoQykgMjAwOS0yMDI0IE1vemlsbGEgQ29ycG9yYXRpb24KLStDb3B5cmln aHQgKEMpIDE5OTgtMjAwNyBNYXJ0aSBNYXJpYQotKwotK1Blcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyAKLSthIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksIAotK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gCi0rdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIAotK2Fu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZSBTb2Z0d2FyZSAKLStpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKwotK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIAotK2FsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKwotK1RIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCAKLStFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gCi0r VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgCi0rTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSAKLStMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIAotK09GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiAKLStXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT IElOIFRIRSBTT0ZUV0FSRS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxf d29ya2Fyb3VuZC9SRUFETUUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3Vu ZC9SRUFETUUubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL1JF QURNRS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvUkVBRE1FLm1kCTIwMjUtMDktMTcgMTc6NDE6 MjEuMTM3ODA1MDQ2ICswMzAwCi1AQCAtMCwwICsxLDEzIEBACi0rIyBhbnlfYWxsX3dvcmthcm91 bmQKLSsKLStUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgYmFkIGNvZGVnZW4gKFtSdXN0IGJ1Z10o aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wb3J0YWJsZS1zaW1kL2lzc3Vlcy8xNDYpLCBb TExWTSBidWddKGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9pc3N1ZXMvNTA0 NjYpKSBmb3IgdGhlIGBhbnkoKWAgYW5kIGBhbGwoKWAgcmVkdWN0aW9ucyBmb3IgTkVPTi1iYWNr ZWQgU0lNRCB2ZWN0b3JzIG9uIDMyLWJpdCBBUk0uIE9uIG90aGVyIHBsYXRmb3JtcyB0aGVzZSBk ZWxlZ2F0ZSB0byBgYW55KClgIGFuZCBgYWxsKClgIGluIGBjb3JlOjpzaW1kYC4KLSsKLStUaGUg cGxhbiBpcyB0byBhYmFuZG9uIHRoaXMgY3JhdGUgb25jZSB0aGUgTExWTSBidWcgaXMgZml4ZWQg b3IgYGNvcmU6OnNpbWRgIHdvcmtzIGFyb3VuZCB0aGUgTExWTSBidWcuCi0rCi0rVGhlIGNvZGUg aXMgZm9ya2VkIGZyb20gdGhlIFtgcGFja2VkX3NpbWRgIGNyYXRlXShodHRwczovL3Jhdy5naXRo dWJ1c2VyY29udGVudC5jb20vaHNpdm9uZW4vcGFja2VkX3NpbWQvZDkzOGUzOWJlZTliYzVjMjIy ZjVmMmYyYTBkZjllNTNiNWNlMzZhZS9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJz KS4KLSsKLStUaGlzIGNyYXRlIHJlcXVpcmVzIE5pZ2h0bHkgUnVzdCBhcyBpdCBkZXBlbmRzIG9u IHRoZSBgcG9ydGFibGVfc2ltZGAgZmVhdHVyZS4KLSsKLSsjIExpY2Vuc2UKLSsKLStgTUlUIE9S IEFwYWNoZS0yLjBgLCBzaW5jZSB0aGF0J3MgaG93IGBwYWNrZWRfc2ltZGAgaXMgbGljZW5zZWQu IChUaGUgQVJNIGludHJpbnNpY3MgUnVzdCB2ZXJzaW9uIHdvcmthcm91bmQgaXMgZnJvbSBxY21z LCBzZWUgTElDRU5TRS1NSVQtUUNNUy4pCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9h bnlfYWxsX3dvcmthcm91bmQvYnVpbGQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29y a2Fyb3VuZC9idWlsZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91 bmQvYnVpbGQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL2J1aWxkLnJzCTIwMjUtMDktMTcgMTc6 NDE6MjEuMTM3ODA1MDQ2ICswMzAwCi1AQCAtMCwwICsxLDcgQEAKLStleHRlcm4gY3JhdGUgdmVy c2lvbl9jaGVjayBhcyBydXN0YzsKLSsKLStmbiBtYWluKCkgewotKyAgICBpZiBydXN0Yzo6aXNf bWluX3ZlcnNpb24oIjEuNzguMCIpLnVud3JhcF9vcihmYWxzZSkgewotKyAgICAgICAgcHJpbnRs biEoImNhcmdvOnJ1c3RjLWNmZz1zdGRzaW1kX3NwbGl0Iik7Ci0rICAgIH0KLSt9Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL3NyYy9saWIucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL3NyYy9saWIucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3Jr YXJvdW5kL3NyYy9saWIucnMJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzg4MDUwMDcgKzAzMDAKLUBA IC0wLDAgKzEsMTEwIEBACi0rLy8gVGhpcyBjb2RlIGJlZ2FuIGFzIGEgZm9yayBvZgotKy8vIGh0 dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQvZDkz OGUzOWJlZTliYzVjMjIyZjVmMmYyYTBkZjllNTNiNWNlMzZhZS9zcmMvY29kZWdlbi9yZWR1Y3Rp b25zL21hc2svYXJtLnJzCi0rLy8gd2hpY2ggZGlkbid0IGhhdmUgYSBsaWNlbnNlIGhlYWRlciBv biB0aGUgZmlsZSwgYnV0IENhcmdvLnRvbWwgc2FpZCAiTUlUIE9SIEFwYWNoZS0yLjAiLgotKy8v IFNlZSBMSUNFTlNFLU1JVCBhbmQgTElDRU5TRS1BUEFDSEUuCi0rCi0rIyFbbm9fc3RkXQotKyMh W2ZlYXR1cmUocG9ydGFibGVfc2ltZCldCi0rIyFbY2ZnX2F0dHIoCi0rICAgIGFsbCgKLSsgICAg ICAgIHN0ZHNpbWRfc3BsaXQsCi0rICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAotKyAgICAg ICAgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLAotKyAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAi bmVvbiIsCi0rICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIKLSsgICAgKSwKLSsgICAgZmVh dHVyZShzdGRhcmNoX2FybV9uZW9uX2ludHJpbnNpY3MpCi0rKV0KLSsjIVtjZmdfYXR0cigKLSsg ICAgYWxsKAotKyAgICAgICAgbm90KHN0ZHNpbWRfc3BsaXQpLAotKyAgICAgICAgdGFyZ2V0X2Fy Y2ggPSAiYXJtIiwKLSsgICAgICAgIHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwKLSsgICAgICAg IHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAotKyAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAidjci Ci0rICAgICksCi0rICAgIGZlYXR1cmUoc3Rkc2ltZCkKLSspXQotKwotK3VzZSBjZmdfaWY6OmNm Z19pZjsKLSt1c2UgY29yZTo6c2ltZDo6bWFzazE2eDg7Ci0rdXNlIGNvcmU6OnNpbWQ6Om1hc2sz Mng0OwotK3VzZSBjb3JlOjpzaW1kOjptYXNrOHgxNjsKLSsKLStjZmdfaWYhIHsKLSsgICAgaWYg I1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFybSIsIHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwg dGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsIHRhcmdldF9mZWF0dXJlID0gInY3IikpXSB7Ci0rICAg ICAgICB1c2UgY29yZTo6c2ltZDo6bWFzazh4ODsKLSsgICAgICAgIHVzZSBjb3JlOjpzaW1kOjpt YXNrMTZ4NDsKLSsgICAgICAgIHVzZSBjb3JlOjpzaW1kOjptYXNrMzJ4MjsKLSsgICAgICAgIG1h Y3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1wbCB7Ci0rICAgICAgICAgICAgKCRhbGw6aWRl bnQsICRhbnk6aWRlbnQsICRpZDppZGVudCwgJGhhbGY6aWRlbnQsICR2cG1pbjppZGVudCwgJHZw bWF4OmlkZW50KSA9PiB7Ci0rICAgICAgICAgICAgICAgICNbaW5saW5lXQotKyAgICAgICAgICAg ICAgICBwdWIgZm4gJGFsbChzOiAkaWQpIC0+IGJvb2wgewotKyAgICAgICAgICAgICAgICAgICAg dXNlIGNvcmU6OmFyY2g6OmFybTo6JHZwbWluOwotKyAgICAgICAgICAgICAgICAgICAgdXNlIGNv cmU6Om1lbTo6dHJhbnNtdXRlOwotKyAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmVjOiAkaWQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzIH0uaGFsdmVzOwotKyAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBoOiAkaGFsZiA9IHRyYW5zbXV0ZSgkdnBtaW4odHJhbnNtdXRlKGhhbHZl cy4wKSwgdHJhbnNtdXRlKGhhbHZlcy4xKSkpOwotKyAgICAgICAgICAgICAgICAgICAgICAgIGgu YWxsKCkKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgfQotKyAgICAg ICAgICAgICAgICAjW2lubGluZV0KLSsgICAgICAgICAgICAgICAgcHViIGZuICRhbnkoczogJGlk KSAtPiBib29sIHsKLSsgICAgICAgICAgICAgICAgICAgIHVzZSBjb3JlOjphcmNoOjphcm06OiR2 cG1heDsKLSsgICAgICAgICAgICAgICAgICAgIHVzZSBjb3JlOjptZW06OnRyYW5zbXV0ZTsKLSsg ICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgdW5p b24gVSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCRoYWxmLCAkaGFs ZiksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAotKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7 IHZlYzogcyB9LmhhbHZlczsKLSsgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaDogJGhhbGYg PSB0cmFuc211dGUoJHZwbWF4KHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMu MSkpKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBoLmFueSgpCi0rICAgICAgICAgICAgICAg ICAgICB9Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0r ICAgIH0gZWxzZSB7Ci0rICAgICAgICBtYWNyb19ydWxlcyEgYXJtXzEyOF92N19uZW9uX2ltcGwg ewotKyAgICAgICAgICAgICgkYWxsOmlkZW50LCAkYW55OmlkZW50LCAkaWQ6aWRlbnQsICRoYWxm OmlkZW50LCAkdnBtaW46aWRlbnQsICR2cG1heDppZGVudCkgPT4gewotKyAgICAgICAgICAgICAg ICAjW2lubGluZShhbHdheXMpXQotKyAgICAgICAgICAgICAgICBwdWIgZm4gJGFsbChzOiAkaWQp IC0+IGJvb2wgewotKyAgICAgICAgICAgICAgICAgICAgcy5hbGwoKQotKyAgICAgICAgICAgICAg ICB9Ci0rICAgICAgICAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0rICAgICAgICAgICAgICAg IHB1YiBmbiAkYW55KHM6ICRpZCkgLT4gYm9vbCB7Ci0rICAgICAgICAgICAgICAgICAgICBzLmFu eSgpCi0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rICAg IH0KLSt9Ci0rCi0rYXJtXzEyOF92N19uZW9uX2ltcGwhKAotKyAgICBhbGxfbWFzazh4MTYsCi0r ICAgIGFueV9tYXNrOHgxNiwKLSsgICAgbWFzazh4MTYsCi0rICAgIG1hc2s4eDgsCi0rICAgIHZw bWluX3U4LAotKyAgICB2cG1heF91OAotKyk7Ci0rYXJtXzEyOF92N19uZW9uX2ltcGwhKAotKyAg ICBhbGxfbWFzazE2eDgsCi0rICAgIGFueV9tYXNrMTZ4OCwKLSsgICAgbWFzazE2eDgsCi0rICAg IG1hc2sxNng0LAotKyAgICB2cG1pbl91MTYsCi0rICAgIHZwbWF4X3UxNgotKyk7Ci0rYXJtXzEy OF92N19uZW9uX2ltcGwhKAotKyAgICBhbGxfbWFzazMyeDQsCi0rICAgIGFueV9tYXNrMzJ4NCwK LSsgICAgbWFzazMyeDQsCi0rICAgIG1hc2szMngyLAotKyAgICB2cG1pbl91MzIsCi0rICAgIHZw bWF4X3UzMgotKyk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8u Y2FyZ28tY2hlY2tzdW0uanNvbiBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdv LWNoZWNrc3VtLmpzb24KLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdv LWNoZWNrc3VtLmpzb24JMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24JMjAyNS0w OS0xNyAxNzo0MToyMS4xMzg4MDUwMDcgKzAzMDAKLUBAIC0xICsxIEBACi0teyJmaWxlcyI6eyJD T05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0Y2VjODk0ZmQzNjY0ZjBlYWE4OThjMGM0 Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJR0hUIjoiMTE3ODlmNDViYjE4MDg0MWNk MzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4YzMwOGE2YWRkMDE5MCIsIkNhcmdvLnRv bWwiOiI0MmZhODMzMjJhYTlmZDY3MjNiNzdkMzVkMGNhY2I5MmNiYjZlN2Y1NzNjZTExYzU1ZjUy MjUyOTI4NjZmOGY0IiwiSWRlYXMubWQiOiJiNzQ1Mjg5M2Y1MDAxNjM4NjhkOGRlNTJjMDlhZGRh ZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJkIiwiTElDRU5TRS1BUEFDSEUiOiJjZmM3 NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIz ZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzkyMzc4MzliMWJkZWIyZTZkMTZiZGZiNWVj MGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElDRU5TRS1XSEFUV0ciOiI4MzgxMTgzODhm ZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEzMTljN2MxZDc3YzE4ZTk4N2QxYTUwIiwi UkVBRE1FLm1kIjoiZDkzOGU4YWIwYjlhYjY3ZTc0YTFhNGY0OGYyM2ZkY2U5NTZkMGFkM2EzZjYx NDdhZTc2MTJhOTI3NjNjODhkNSIsImNpL21pcmkuc2giOiI0M2NiOGQ4MmY0OWUzYmZlMmQyMjc0 YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4M2NmZGJlZTI1IiwiZG9jL0JpZzUudHh0 IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0YTIzNDk1MDM3OGFjZGUxZGY5MzQ4 MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUyODE4YjkwN2QwMTM3ZjQwYTlhYjlmZDUy NWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFlNGJmMSIsImRvYy9FVUMtS1IudHh0Ijoi NzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2ZkODc4MDc3MDM4ZDBjZWMzYzcyMzdhNTBm NGE3OGEzMCIsImRvYy9HQksudHh0IjoiYzFiNTIyYjVhNzk5ODg0ZTUwMDFkYTY2MWY0MmM1YThm NGQwYWNiOWVmMWQ3NGIyMDZmMjJiNWY2NTM2NTYwNiIsImRvYy9JQk04NjYudHh0IjoiYTVhNDMz ZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFmNzk2MGVmY2QwNDA5M2UxMzZiNTFmYmQw ZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0ZjVhOGYwZTI4NjhkN2IyYzI5Mjg2MDE0 MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2IiwiZG9jL0lTTy04ODU5LTEwLnR4dCI6 IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3ZGYxMDYwZDY0ZTI2Mjg4MGI5NGJkMzFi YjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0IjoiMzk1MWRkODljZjkzZjc3MjkxNDgwOTE2 ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJlOTNmYSIsImRvYy9JU08tODg1OS0x NC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5NDk2NzVjYzcxNjhjODAwNTMwNTM0YjBh MDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1LnR4dCI6IjI0YjEwODRhYWI1MTI3YTg1 YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIzNjgzZjk3Y2Y2NmM0N2EiLCJkb2MvSVNP LTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3YTdlNDc2ZjY0MjRhZTRhNWNjNzJlNzVi MTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08tODg1OS0yLnR4dCI6IjE4Y2VmZjg4YzEz ZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJkZDdlODUyN2MxMjVjNzVkNTRhYWQiLCJk b2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0ZjVkYjU5MjIzMzYyZjI0OTk5ZGE5Njk2 OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9jL0lTTy04ODU5LTQudHh0IjoiZDI3ZjY1 MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUxNjIyYmIzZTQyMGQ1NjgwZTgxMjYzMmQ1 MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2ZWE3YTc4YWQxNWRhNzI3NWY2Y2IxYTMz NjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2EiLCJkb2MvSVNPLTg4NTktNi50eHQiOiJj Y2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEyNDI1ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJl ZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5MDBmYTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5 MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJhYjg1ZSIsImRvYy9JU08tODg1OS04LUku dHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4YjA4ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5 YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4dCI6IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2 NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJmYzNlYmE4NmM4YWYiLCJkb2MvS09JOC1S LnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgxNGIxZjYxNTE2NDAxNTZhOWEyYWYwMmJm MmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6IjBjYzc2NjI0ZWQxZjAyNDE4M2UyMjk4 YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNmNTBhNTA1NGYiLCJkb2MvU2hpZnRfSklT LnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4YTc5YmU4YWQxNDhkNTYzZjI2NDE1 MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0IjoiZTJlMjgwZDhhY2JhYTZkMmE2YjM1 NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUzN2NkNWExZWY4ZiIsImRvYy9VVEYtMTZM RS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEyNWZiNWVlYjhiMDc3MDM2Y2M5NmJiNDQx NmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6ImVhN2JhZTc0MmU2MTMwMTBjZWQwMDJj ZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0NDI4ZjU0OGEiLCJkb2MvZ2IxODAzMC50 eHQiOiJkYzcxMzc4YThmMDdhMmQ4NjU5ZjY5ZWU4MWZiODc5MWZlZjU2YmE4NmYxMjRiNDI5OTc4 Mjg1MjM3YmI0YTdiIiwiZG9jL21hY2ludG9zaC50eHQiOiI1NzQ5MWU1Mzg2NjcxMWI0NjcyZDli OWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2MDM2ODdjMDIzIiwiZG9jL3JlcGxhY2Vt ZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgxNTk0YmQwMmQxMzYwN2UzMzRhOTU0NjVh ZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0xMjUwLnR4dCI6IjYxMjk2YmI2YTIxY2Rh YjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhkNTg3MTBkMmYxMjVlMjhkMzkiLCJkb2Mv d2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0ODVjOGZmMDJkYjJjN2Q1NzhkYjdhOWFh YjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mvd2luZG93cy0xMjUyLnR4dCI6IjkzM2Vm M2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4N2JiZTQ3NWIxOTAyOGQwYTZkMzhlMTgw YjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3NDhiODhlOTkwNzFhNWM3YjNkNTQ1NmVh ZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0ZGUiLCJkb2Mvd2luZG93cy0xMjU0LnR4 dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUyNjA1NTMyOTJhMzk0MjNkZjE2ODNhOTg2 NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4dCI6IjRlNTg1MjQ5NDczMDA1NGUyZGEy NThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2EyZWZlOWU5MDQ5M2QiLCJkb2Mvd2luZG93 cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAyYTQwNmU4ZjYwZDljZDk1OTg2OTRhMGZm YTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93cy0xMjU3LnR4dCI6ImMyOGEwYzlmOTY0 ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0ODFkNmFiZjlmZDllOTAxOGQ1MjMiLCJk b2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4MDVjNzlhYWNiZjE3YzkzNzkzMzQyZGJi MDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJkb2Mvd2luZG93cy04NzQudHh0IjoiNGVm MGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2Y2E4NDc1ZGI3NzFjZTJmYzE2ZDM5MmNh YmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1OGJlMTU0ZDhhODg4Y2EzZDQ4NGI4M2I0 NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUwNTBhOGJkIiwiZG9jL3gtdXNlci1kZWZp bmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJkZGRkMjUxMDcyOTk5YjA0YTZjZjdhNmY1 YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5IjoiYmU5ODlkZDI1 YzZiOTQ2ZTNlODc0NWZkYzhlOGE4MGZjZjI0YjNiZTk5YWQwYjRiNzgxNTNiYTNmNmFiNjMxMCIs InJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5OTFjYmI4MWI3MGZiNTI3ODA0NzJlZGMw NjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNjaWkucnMiOiJjNDRjMDAyNjQxYWRiNWVi YzQzNjg3MDdhOGNjMGEwNzZkMmYzM2U2YTVjMjdiMWI2OTk4OGViNTE1ZjU2NTNkIiwic3JjL2Jp ZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3MzFmMTM5YTdjYTFkNWIyNjRmZWZhZTUx YTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiI4YTYxN2NjNTcwMzIwOTJkNjU4NTBlYjI3 ZTAwZGU2ODdjODBhZWEzMjk5ZTgzOWExZjU4YjQyZDBiMzVhYmYzIiwic3JjL2V1Y19qcC5ycyI6 IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5 M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFmYzcyZDkzNzg3MDBlZWNmYWM1OGQ1NWFk MWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJiOSIsInNyYy9nYjE4MDMwLnJzIjoiODA4 NTg3MTY4ZDczZjBjODBmODUyMGYwY2E5YjE2MTg2NmVkMmVmZWIxN2EwNWU4NWZkZjNiOGVmZTdi YTI4YSIsInNyYy9oYW5kbGVzLnJzIjoiY2M4M2RjMDc1NDc1MWQ2N2Y1Njg4YTY1YzVlMDE5MWNi YTAyZjZiYWNjZTgxYTA4MTNhMjQzY2JhNTVlZWY3YSIsInNyYy9pc29fMjAyMl9qcC5ycyI6Ijli YjQ4NWU4MjU3NGY0YjdkNGIyMzY0ZjBmZjI3NmFjYjZhMGJjMTExNzU4NDIwYTNiMGVjNWUwNGMx OTY2NTIiLCJzcmMvbGliLnJzIjoiMWRjMDdiODE4ZTQ1ODQ2YjE2ZGRjYWYwZGU0NmM4ODYyZGQ3 ZGY4MDk5MTIzZWMzOGI5NWMzZjhhZDljOTFlYyIsInNyYy9tYWNyb3MucnMiOiIyMDA5OTdmODg3 MGRlOGJmZDhjZGM0NzVlOTIxMTVkZjQyMTA4YzBkZjY2MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwi c3JjL21lbS5ycyI6IjBiZjM0MTAzZTBhZDFiODQyYTEzYTA4MmRlZTJiOTIwYjA1Y2Y0ZmIwZjE0 NWM5ZWU3ZjYwOGY0Y2I0YTU0NGYiLCJzcmMvcmVwbGFjZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhj MWNhMmJkZmEwZTUxZTg0M2VjMjgzMjY5NTA5NTJhZDhiYzk2NTY5ZmViOTNhYzYyMzA4Iiwic3Jj L3NoaWZ0X2ppcy5ycyI6IjY5NTFhZTY3ZTM2YjFhMTJmYTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUw ZTJiZGU1MjA2MGIyOWJkMGYxNmQ5ZDkiLCJzcmMvc2ltZF9mdW5jcy5ycyI6IjI2MTJhYmE4NmUx ZDIwMTA5NmQ3ZTQ3YTg1OWJjMzQ0NGY4NTkzNGNjODJkOGFkYzZkMzlhNDMwNGQ5ZWVjZmMiLCJz cmMvc2luZ2xlX2J5dGUucnMiOiIzYzllOWMxZjk0NmFlNjIyYzcyNWJhOTQyMTI0MGMxZmFhOWEw NWU5NWZhMTBkZDQ2NDJhMjVjYjI3NmExZWRjIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6 IjRjNWE4NjkxZjhkYzcxNzMxMTg4OWM2Mzg5NDAyNmQyZmI2MjcyNWE4NmM0MjA4Y2EyNzRhOWNj OGQ0MmE1MDMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dCI6Ijk5ZDM5OWUxNzc1MGNm OWM3Y2YzMGJiMjUzZGJmZTM1YjgxYzRmY2JkZWFkOTNjZmE0OGIxNDI5MjEzNDczYzciLCJzcmMv dGVzdF9kYXRhL2JpZzVfb3V0LnR4dCI6IjYxOTNjYTk3YzI5N2FhMjBlMDkzOTYwMzhkMThlOTM4 YmI3ZWEzMzFjMjZmMGYyNDU0MDk3Mjk2NzIzYTBiMTMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0 X3JlZi50eHQiOiIzNjU2NzY5MWY1NTdkZjE0NGY2Y2M1MjAwMTVhODcwMzhkZmExNTZmMjk2ZmNm MTAzYjU2YWU5YTcxOGJlMWZjIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IjoiYzg2YTcy MjRmMzIxNWZhMGQwNGU2ODU2MjJhNzUyZmRjNzI3NjNlOGFlMDc2MjMwYzdmZDYyZGU1N2VjNDA3 NCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50eHQiOiIxZjQxOWY0Y2E0N2Q3MDhiNTRj NzNjNDYxNTQ1YTAyMmFlMmUyMDQ5OGZkYmY4MDA1YTQ4M2Q3NTJhMjA0ODgzIiwic3JjL3Rlc3Rf ZGF0YS9ldWNfa3Jfb3V0LnR4dCI6ImU3ZjMyZTAyNmY3MGJlMWUxYjU4ZTAwNDdiYWY3ZDNkMmM1 MjAyNjljNGY5Yjk5OTJlMTU4YjRkZWNiMGExYTMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRf cmVmLnR4dCI6ImM5OTA3ODU3OTgwYjIwYjhlOWUzYjU4NDQ4MmVkNjU2N2EyYmU2MTg1ZDcyMjM3 YjYzMjJmMDQwNDk0NDkyNGUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IjoiYWI3MjMx YjJkM2U5YWZhY2RiZDdkN2YzYjllNTM2MWE3ZmY5ZjdlMWNmZGI0ZjNiZDkwNWI5MzYyYjMwOWU1 MyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYudHh0IjoiZGM1MDY5NDIxYWRjYTIwNDNj NTVmNTAxMmI1NWE3NmZkZmY2NTFkMjJlNmU2OTlmZDA5NzhmOGQ1NzA2ODE1YyIsInNyYy90ZXN0 X2RhdGEvZ2IxODAzMF9vdXQudHh0IjoiZjAyMDhkNTI3ZjVjYTYzZGU3ZDlhMDMyM2JlOGQ1Y2Yx MmQ4YTEwNGIyOTQzZDkyYzI3MDFmMGMzMzY0ZGFjMSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9v dXRfcmVmLnR4dCI6IjY4MTlmZTQ3NjI3ZTRlYTAxMDI3MDAzZmM1MTRiOWYyMWExMzIyZTczMmQ3 ZjFmYjkyY2M2YzU0NTViYzZjMDciLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCI6 ImNkMjRiYmRjYjE4MzRlMjVkYjU0NjQ2ZmJmNGM0MTU2MGExM2RjNzU0MGY2YmUzZGJhNGY1ZDk3 ZDQ0NTEzYWYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQiOiIzZGM0ZTZh NWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1 Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXQudHh0IjoiOWI2ZjAxNTMyOWRkYTZjM2Y5 ZWU1Y2U2ZGJkNmZhOWM4OWFjYzIxMjgzZTg4NjgzNmM3OGI4ZDgzMzQ4MGMyMSIsInNyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQiOiI3OGNiMjYwMDkzYTIwMTE2YWQ5YTQyZjQz YjA1ZDE4NDhjNWFiMTAwYjZiOWE4NTA3NDk4MDllOTQzODg0YjM1Iiwic3JjL3Rlc3RfZGF0YS9q aXMwMjA4X2luLnR4dCI6IjZkZjMwMzA1NTNmZmIwYTY2MTViYjMzZGM4ZWE5ZGNhNmQ5NjIzYTkw MjhlMmZmZWM3NTRjZTNjM2RhODI0Y2MiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4 dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0 YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dCI6IjRlYzI0NDc3ZTE2 NzVjZTc1MDczM2JkYzNjNWFkZDFjZDI3YjZiZDRjZTFmMDkyODk1NjQ2NDZlOTY1NGU4NTciLCJz cmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQiOiJjM2UxY2VmNTAzMmIyYjFkOTNhNDA2 ZjMxZmY5NDBjNGUyZGZlODg1OWI4YjE3Y2EyNzYxZmVlN2E3NWEwZTQ4Iiwic3JjL3Rlc3RfZGF0 YS9qaXMwMjEyX2luLnR4dCI6ImMwMTFmMGRkNzJiZDdjOGNkOTIyZGY5Mzc0ZWY4ZDI3NjlhNzcx OTA1MTRjNzdmNmM2MmI0MTU4NTJlZWI5ZmUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVm LnR4dCI6IjdkOTQ1OGIzZDJmNzNlNzA5MmE3ZjUwNWMwOGNlMWQyMzNkZGUxOGFhNjc5ZmJjZjk4 ODkyNTYyMzljYzllMDYiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQiOiIwMmUzODlj Y2VmMGRkMjEyMmU2M2Y1MDM4OTk0MDJjYjdmNzk3OTEyYzI0NDRjYzgwYWI5MzEzMTExNmM1NTI0 Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dCI6IjUxMmY5ODU5NTBjYTkwMmU2 NDNjODg2ODJkYmE5NzA4YjdjMzhkM2M1ZWMyOTI1MTY4YWIwMGFjOTRhYjE5ZjkiLCJzcmMvdGVz dF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0IjoiNWZiYzQ0ZGE3YmY2MzliZjZjZmUwZmExZmQzZWJh NzEwMmI4OGY4MTkxOWM5ZWE5OTEzMDI3MTJmNjk0MjZmYiIsInNyYy90ZXN0X2RhdGEvc2hpZnRf amlzX291dF9yZWYudHh0IjoiNDY2MzIyYzZmZWQ4Mjg2YzY0NTgyNzMxNzU1MjkwYzIyOTY1MDhl ZmRkMjU4ODI2ZTYyNzk2ODY2NDliNDgxZiIsInNyYy90ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIz YTJlMTFiMDJiM2I4ZDE1ZmI1NjEzYTYyNWUzZWRiMmM2MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4 ODIwMGQiLCJzcmMvdGVzdGluZy5ycyI6ImY1OWU2NzFlOTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcx ZTY3MGJmNTJmN2UyMGViMTYwNWQ5OTBhYWZhMTg5NGUiLCJzcmMvdXRmXzE2LnJzIjoiYzA3MWEx NDdmYWQzOGQ3NTBjMmMyNDdlMTQxYjc2YjkyOWE0ODAwN2I5OWYyNmIyOTIyYjljYWVjZGFmMmYy NSIsInNyYy91dGZfOC5ycyI6IjdiN2Q4ODdiMzQ3ZjFhZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRj ZTc2YzI4ZjNiNDVjMTk0Njc4NTFhYTc4MzkiLCJzcmMvdmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4 YTE1NTRhNzE2OWRlODczMWVhOWNkZWQ3YWM2M2VhMzVjYWFiZGQxYzI3YThkZGU2OGMyN2IiLCJz cmMveF91c2VyX2RlZmluZWQucnMiOiJjOWMwMTA3MzBkZmI5ZjE0MWQ0ZmVkMTkzNTBjMDhhMjFh ZjI0MDkxM2E1NGJiNjRmNWNhODlmZjkzYjZiN2QxIn0sInBhY2thZ2UiOiI3MjY4YjM4NjI5NmEw MjVlNDc0ZDUxNDA2NzhmNzVkNmRlOTQ5M2FlNTVhNWQ3MDllZWI5ZGQwODE0OTk0NWUxIn0KLVwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotK3siZmlsZXMiOnsiQ09OVFJJQlVUSU5HLm1kIjoi Y2ExOTAxZjNlODUzMmZiNGNlYzg5NGZkMzY2NGYwZWFhODk4YzBjNGI5NjFkMWI5OTJkMWVkNTRl YWNmMzYyYSIsIkNPUFlSSUdIVCI6IjExNzg5ZjQ1YmIxODA4NDFjZDM2MmE1ZWVlNjc4OWM2OGRk YjU3M2ExMTEwNWUzMDc2OGMzMDhhNmFkZDAxOTAiLCJDYXJnby50b21sIjoiMjJhNGQyMTBjOTJk YWU5ZjMyYzY5NDRlZjM0MGVlOGZkZDAyN2Y5OWMwODE1NzdlODkwNzEyM2UyYTkzMzgzZSIsIklk ZWFzLm1kIjoiYjc0NTI4OTNmNTAwMTYzODY4ZDhkZTUyYzA5YWRkYWY5MWUxNjMyNDU0ZWQwMmU4 OTJjNDY3ZWQ3ZWMzOWRiZCIsIkxJQ0VOU0UtQVBBQ0hFIjoiY2ZjNzc0OWI5NmY2M2JkMzFjM2M0 MmI1YzQ3MWJmNzU2ODE0MDUzZTg0N2MxMGYzZWIwMDM0MTdiYzUyM2QzMCIsIkxJQ0VOU0UtTUlU IjoiM2ZhNGNhODNkY2M5MjM3ODM5YjFiZGViMmU2ZDE2YmRmYjVlYzBjNWNlNDJiMjQ2OTRkOGJi ZjBkY2JlZjcyYyIsIkxJQ0VOU0UtV0hBVFdHIjoiODM4MTE4Mzg4ZmU1YzJlN2YxZGJiYWVlZDEz ZTFjN2YzZWJmODhiZTkxMzE5YzdjMWQ3N2MxOGU5ODdkMWE1MCIsIlJFQURNRS5tZCI6IjFkMDhh ZWZjYjkyYWZhODFiMTgxNTQwNDljOWFiYmNhZDQ1NDBhMjNmNzE3MmU5ZjliYmVkNWFmMzNmMWEw ODciLCJjaS9taXJpLnNoIjoiNDNjYjhkODJmNDllM2JmZTJkMjI3NGI2Y2NkNmYwNzE0YTQxODhj Y2VmMGNlY2MwNDA4Mjk4ODNjZmRiZWUyNSIsImRvYy9CaWc1LnR4dCI6ImY3M2EyZWRjNWNiNmMy ZDE0MGJhNmUwN2Y0NTQyZTFjNGEyMzQ5NTAzNzhhY2RlMWRmOTM0ODBmMGNhMGJlMGIiLCJkb2Mv RVVDLUpQLnR4dCI6ImVlMjgxOGI5MDdkMDEzN2Y0MGE5YWI5ZmQ1MjVmYzcwMGE0NGRiZGRkYjZj ZjBjMTU3YTY1NjU2NmJhZTRiZjEiLCJkb2MvRVVDLUtSLnR4dCI6IjcxZDllMmNjZjNiMTI0ZThi ZGZiNDMzYzhjZjI3NzNmZDg3ODA3NzAzOGQwY2VjM2M3MjM3YTUwZjRhNzhhMzAiLCJkb2MvR0JL LnR4dCI6ImMxYjUyMmI1YTc5OTg4NGU1MDAxZGE2NjFmNDJjNWE4ZjRkMGFjYjllZjFkNzRiMjA2 ZjIyYjVmNjUzNjU2MDYiLCJkb2MvSUJNODY2LnR4dCI6ImE1YTQzM2U4MDRkMGY4M2FmNzg1MDE1 MTc5ZmJjMWQ5YjBlYWYxZjc5NjBlZmNkMDQwOTNlMTM2YjUxZmJkMGUiLCJkb2MvSVNPLTIwMjIt SlAudHh0IjoiYWY4NjY4NGY1YThmMGUyODY4ZDdiMmMyOTI4NjAxNDBjM2QyZTU1Mjc1MzBjYTA5 MWYxYjI4MTk4ZThlMmZlNiIsImRvYy9JU08tODg1OS0xMC50eHQiOiI2ZDM5NDlhZDdjODFjYTE3 Njg5NTEwMWVkODFhMWRiN2RmMTA2MGQ2NGUyNjI4ODBiOTRiZDMxYmIzNDRhYjRkIiwiZG9jL0lT Ty04ODU5LTEzLnR4dCI6IjM5NTFkZDg5Y2Y5M2Y3NzI5MTQ4MDkxNjgzY2Y4NTExZjQ1MjkzODhi N2RjOGRjZDBkNjJlYWVkNTViZTkzZmEiLCJkb2MvSVNPLTg4NTktMTQudHh0IjoiM2QzMzA3ODRh MDM3NGZkMjU1YTM4YjQ3OTQ5Njc1Y2M3MTY4YzgwMDUzMDUzNGIwYTAxY2FjNmVkYzYyM2FkYyIs ImRvYy9JU08tODg1OS0xNS50eHQiOiIyNGIxMDg0YWFiNTEyN2E4NWFhYjk5MTUzZjg2ZTI0Njk0 ZDBhMzYxNWY1M2I1Y2UyMzY4M2Y5N2NmNjZjNDdhIiwiZG9jL0lTTy04ODU5LTE2LnR4dCI6ImNl MDI3MjU1OWI5MmJhNzZkN2E3ZTQ3NmY2NDI0YWU0YTVjYzcyZTc1YjE4MzYxMWIwODM5MmU0NGFk ZDRkMjUiLCJkb2MvSVNPLTg4NTktMi50eHQiOiIxOGNlZmY4OGMxM2QxYjViYTQ1NWEzOTE5YjFl M2RlNDg5MDQ1YzRjM2QyZGQ3ZTg1MjdjMTI1Yzc1ZDU0YWFkIiwiZG9jL0lTTy04ODU5LTMudHh0 IjoiMjE3OTg0MDRjNjhmNGY1ZGI1OTIyMzM2MmYyNDk5OWRhOTY5NjhjMDYyODQyNzMyMWZjY2Nl N2QyODQ5YTEzMCIsImRvYy9JU08tODg1OS00LnR4dCI6ImQyN2Y2NTIwYzZjNWJmYmNjMTkxNzZi NzFkMDgxY2RiM2JjY2RlMTYyMmJiM2U0MjBkNTY4MGU4MTI2MzJkNTMiLCJkb2MvSVNPLTg4NTkt NS50eHQiOiJhMTBlYzhkNmVhN2E3OGFkMTVkYTcyNzVmNmNiMWEzMzY1MTE4NTI3ZTI4ZjlhZjZk MGQ1ODMwNTAxMzAzZjNhIiwiZG9jL0lTTy04ODU5LTYudHh0IjoiY2NkYThhMmVmYzk2MTE1MzM2 YmRkNzc3NzY2MzdiOTcxMjQyNWU0NGZiY2Y3NDUzNTNiOTA1N2ZiZWYxNDRlNyIsImRvYy9JU08t ODg1OS03LnR4dCI6IjE3OTAwZmExZjI3YTQ0NTk1OGYwYTc3ZDdkOTA1NmJlMzc1YTZiZDdlZTQ0 OTJhYTY4MGM3YzE1MDBiYWI4NWUiLCJkb2MvSVNPLTg4NTktOC1JLnR4dCI6IjgzNTc1NTU2NDZk NTQyNjVhOWI5ZmZhM2U2OGIwOGQxMzIzMTJmMTU2MWM2MDEwOGZmOWI4YjExNjdiNmVjZjIiLCJk b2MvSVNPLTg4NTktOC50eHQiOiI3MmNkNmYzYWZiN2I0YTljMTZhNjZhMzYyNDczMzE1NzcwYjc3 NTVkNzJjODZjODcwZTUyZmMzZWJhODZjOGFmIiwiZG9jL0tPSTgtUi50eHQiOiI4MzljZjE5YTM4 ZGE5OTQ0ODgwMDRlZDc4MTRiMWY2MTUxNjQwMTU2YTlhMmFmMDJiZjJlZmNhNzQ1ZmI1OTY2Iiwi ZG9jL0tPSTgtVS50eHQiOiIwY2M3NjYyNGVkMWYwMjQxODNlMjI5OGI3ZTAxOTk1N2RhMmM3MGM4 Y2EwNmUwZmM0ZTZmMzUzZjUwYTUwNTRmIiwiZG9jL1NoaWZ0X0pJUy50eHQiOiIzNGM0OTE0MTgx OGNiOWRkYmNmNTljYzg1OGY3OGE3OWJlOGFkMTQ4ZDU2M2YyNjQxNTEwOGFlMWYxNDg0NDNmIiwi ZG9jL1VURi0xNkJFLnR4dCI6ImUyZTI4MGQ4YWNiYWE2ZDJhNmIzNTY5ZDYwZTE3NTAwYTI4NWYy YmFhMGRmMzM2M2RkODU1MzdjZDVhMWVmOGYiLCJkb2MvVVRGLTE2TEUudHh0IjoiNzBiZGMxNzBl M2ZjNTI5OGJhNjhmMTAxMjVmYjVlZWI4YjA3NzAzNmNjOTZiYjQ0MTZjNGRlMzk2ZjZkNzZjMSIs ImRvYy9VVEYtOC50eHQiOiJlYTdiYWU3NDJlNjEzMDEwY2VkMDAyY2Y0YjYwMWE3MzdkMjIwM2Zh ZDY1ZTExNTYxMTQ1MWJjNDQyOGY1NDhhIiwiZG9jL2diMTgwMzAudHh0IjoiZGM3MTM3OGE4ZjA3 YTJkODY1OWY2OWVlODFmYjg3OTFmZWY1NmJhODZmMTI0YjQyOTk3ODI4NTIzN2JiNGE3YiIsImRv Yy9tYWNpbnRvc2gudHh0IjoiNTc0OTFlNTM4NjY3MTFiNDY3MmQ5YjlmZjM1MzgwYjlkYWM5ZTBk OGUzZDZjMjBiZGQ2MTQwNjAzNjg3YzAyMyIsImRvYy9yZXBsYWNlbWVudC50eHQiOiI0YjZjM2Ji ZDc5OTlkOWQ0MTA4YTI4MTU5NGJkMDJkMTM2MDdlMzM0YTk1NDY1YWZmZjhjMmMwOGQzOTVmMGU0 IiwiZG9jL3dpbmRvd3MtMTI1MC50eHQiOiI2MTI5NmJiNmEyMWNkYWI2MDIzMDBkMzJlY2ZiYTQz NGNiODJkZTVhYzNiYzg4ZDU4NzEwZDJmMTI1ZTI4ZDM5IiwiZG9jL3dpbmRvd3MtMTI1MS50eHQi OiI3ZGVlYTFjNjFkZWExNDg1YzhmZjAyZGIyYzdkNTc4ZGI3YTlhYWI2M2FiMWNmZDAyZWMwNGI1 MTU4NjQ2ODllIiwiZG9jL3dpbmRvd3MtMTI1Mi50eHQiOiI5MzNlZjNiZGRkZmNlNWVlMTMyYjlm MWExYWE4YjQ3NDIzZDI1ODdiYmU0NzViMTkwMjhkMGE2ZDM4ZTE4MGI2IiwiZG9jL3dpbmRvd3Mt MTI1My50eHQiOiIxYTM4NzQ4Yjg4ZTk5MDcxYTVjN2IzZDU0NTZlYWQ0Y2FlZGVhYmFiNTBkNTBk NjU4YmUxMDViYzExMzcxNGRlIiwiZG9jL3dpbmRvd3MtMTI1NC50eHQiOiJmODM3MmY4NmM2Zjhk NjQyNTYzY2Q2ZGRjMDI1MjYwNTUzMjkyYTM5NDIzZGYxNjgzYTk4NjcwYmQ3YmYyYjQ3IiwiZG9j L3dpbmRvd3MtMTI1NS50eHQiOiI0ZTU4NTI0OTQ3MzAwNTRlMmRhMjU4YTc0ZTFiOWQ3ODBhYmJj ZGQ4Y2UyMmViYzIxOGNhMmVmZTllOTA0OTNkIiwiZG9jL3dpbmRvd3MtMTI1Ni50eHQiOiJjMDg3 OWM1MTcyYWJlZGVhZDMwMmE0MDZlOGY2MGQ5Y2Q5NTk4Njk0YTBmZmE0ZmQyODhmZmU0ZmVmN2I4 ZWExIiwiZG9jL3dpbmRvd3MtMTI1Ny50eHQiOiJjMjhhMGM5Zjk2NGZjYjJiNDZkMjFmNTM3YzQw MjQ0NjUwMWEyODAwNjcwNDgxZDZhYmY5ZmQ5ZTkwMThkNTIzIiwiZG9jL3dpbmRvd3MtMTI1OC50 eHQiOiI1MDE5YWU0ZDYxODA1Yzc5YWFjYmYxN2M5Mzc5MzM0MmRiYjA5OGQ2NWExODM3NzgzYmMz ZTJjNmQ2YTIzNjAyIiwiZG9jL3dpbmRvd3MtODc0LnR4dCI6IjRlZjBlNDUwMWM1ZmViYThiMTdh ZWUxODE4NjAyZWQ0NGIzNmNhODQ3NWRiNzcxY2UyZmMxNmQzOTJjYWJlY2MiLCJkb2MveC1tYWMt Y3lyaWxsaWMudHh0IjoiNThiZTE1NGQ4YTg4OGNhM2Q0ODRiODNiNDRmNzQ5ODIzZWYzMzlhYjI3 ZjE0ZDkwY2E5YTg1NmY1MDUwYThiZCIsImRvYy94LXVzZXItZGVmaW5lZC50eHQiOiJmOWNkMDdj NDMyMWJmNWNmYjBiZTRiZGRkZDI1MTA3Mjk5OWIwNGE2Y2Y3YTZmNWJjNjM3MDlhODRlMmMxZmZj IiwiZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weSI6ImJlOTg5ZGQyNWM2Yjk0NmUzZTg3NDVmZGM4 ZThhODBmY2YyNGIzYmU5OWFkMGI0Yjc4MTUzYmEzZjZhYjYzMTAiLCJydXN0Zm10LnRvbWwiOiI4 NWMxYTNiNDM4MmZkODllOTkxY2JiODFiNzBmYjUyNzgwNDcyZWRjMDY0Yzk2Mzk0M2NkYWFhNTZl MGEyMDMwIiwic3JjL2FzY2lpLnJzIjoiZjExMDAwZjY4ZmE5NzBhZjcwNDM4MDhlYTI5YTE5MGMy OTVmNzZhY2JjNTI4OWVlNmIxNGE5ZDg4Y2RiOTE5YyIsInNyYy9iaWc1LnJzIjoiZWM2ZTI5MTMw MTFhMzhlOWEzZTgyNWExNzMxZjEzOWE3Y2ExZDViMjY0ZmVmYWU1MWEzY2MxYTY4YTU3Y2VmOSIs InNyYy9kYXRhLnJzIjoiOGE2MTdjYzU3MDMyMDkyZDY1ODUwZWIyN2UwMGRlNjg3YzgwYWVhMzI5 OWU4MzlhMWY1OGI0MmQwYjM1YWJmMyIsInNyYy9ldWNfanAucnMiOiIzMjA0N2Y1YjU0MDE4OGM0 Y2IxOWMwNzE2NWY4NDZiOTc4NmEwOWYxOGUzMTVlZDNlOWJkYTEyOTNkYWU1MmFhIiwic3JjL2V1 Y19rci5ycyI6IjliMjVhZmM3MmQ5Mzc4NzAwZWVjZmFjNThkNTVhZDFjNTk0NmQ2Y2QwY2NkZTJj MjljMDgyMDBlZjJkZTZiYjkiLCJzcmMvZ2IxODAzMC5ycyI6IjgwODU4NzE2OGQ3M2YwYzgwZjg1 MjBmMGNhOWIxNjE4NjZlZDJlZmViMTdhMDVlODVmZGYzYjhlZmU3YmEyOGEiLCJzcmMvaGFuZGxl cy5ycyI6ImIwOGNlZjFmNTc4NWJiNmE0ODIyZjJlODQ0YzZkZjFiMDQ2YjczN2I3YTA3NWU0NTkz ZWFhOGM0MjA4ZTlmZTIiLCJzcmMvaXNvXzIwMjJfanAucnMiOiI5YmI0ODVlODI1NzRmNGI3ZDRi MjM2NGYwZmYyNzZhY2I2YTBiYzExMTc1ODQyMGEzYjBlYzVlMDRjMTk2NjUyIiwic3JjL2xpYi5y cyI6IjgzNGY0NGI2NzBlYzQ4ZWU4MmMwZTEyMjIzZDE1NjczMTNmZGQ5Zjg4YmNhNWY0YjExN2M4 MmMxODI4ZjU1OWYiLCJzcmMvbWFjcm9zLnJzIjoiMjAwOTk3Zjg4NzBkZThiZmQ4Y2RjNDc1ZTky MTE1ZGY0MjEwOGMwZGY2NjFlNDlkM2QxY2JjMzIwNTZlMWQ5OSIsInNyYy9tZW0ucnMiOiI5NDg1 NzExMzdkM2IxNTFkZjhkYjRmYjJjNzMzZTc0YWU1OTVkMDU1Y2RmMGFkODNhYmNhYjkzNDFkNmFk YWJlIiwic3JjL3JlcGxhY2VtZW50LnJzIjoiNzY2MGIzNGE1M2Y4YzFjYTJiZGZhMGU1MWU4NDNl YzI4MzI2OTUwOTUyYWQ4YmM5NjU2OWZlYjkzYWM2MjMwOCIsInNyYy9zaGlmdF9qaXMucnMiOiI2 OTUxYWU2N2UzNmIxYTEyZmEzYTMwNzM0OTU3ZjQ0NGQ4YjFiNGFlMGUyYmRlNTIwNjBiMjliZDBm MTZkOWQ5Iiwic3JjL3NpbWRfZnVuY3MucnMiOiIwYjc2ZWFlNWVmMmM3ODgxZmNlZGViYmQ4Y2Q2 NTJiNTMzZTc5ZjY5NDQ3NjY4YTNlOWI4ZTNhMmE2NjhlNzRjIiwic3JjL3NpbmdsZV9ieXRlLnJz IjoiM2FkODcxMTZmYjMzOTQzNGE0YjU4ZThmMmIxNTQ4NWYyYjY2YjlmNzgxNGQ3MDhmMTYxOTRl ZDA4ZjZkNmNjZiIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbi50eHQiOiI0YzVhODY5MWY4ZGM3MTcz MTE4ODljNjM4OTQwMjZkMmZiNjI3MjVhODZjNDIwOGNhMjc0YTljYzhkNDJhNTAzIiwic3JjL3Rl c3RfZGF0YS9iaWc1X2luX3JlZi50eHQiOiI5OWQzOTllMTc3NTBjZjljN2NmMzBiYjI1M2RiZmUz NWI4MWM0ZmNiZGVhZDkzY2ZhNDhiMTQyOTIxMzQ3M2M3Iiwic3JjL3Rlc3RfZGF0YS9iaWc1X291 dC50eHQiOiI2MTkzY2E5N2MyOTdhYTIwZTA5Mzk2MDM4ZDE4ZTkzOGJiN2VhMzMxYzI2ZjBmMjQ1 NDA5NzI5NjcyM2EwYjEzIiwic3JjL3Rlc3RfZGF0YS9iaWc1X291dF9yZWYudHh0IjoiMzY1Njc2 OTFmNTU3ZGYxNDRmNmNjNTIwMDE1YTg3MDM4ZGZhMTU2ZjI5NmZjZjEwM2I1NmFlOWE3MThiZTFm YyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCI6ImM4NmE3MjI0ZjMyMTVmYTBkMDRlNjg1 NjIyYTc1MmZkYzcyNzYzZThhZTA3NjIzMGM3ZmQ2MmRlNTdlYzQwNzQiLCJzcmMvdGVzdF9kYXRh L2V1Y19rcl9pbl9yZWYudHh0IjoiMWY0MTlmNGNhNDdkNzA4YjU0YzczYzQ2MTU0NWEwMjJhZTJl MjA0OThmZGJmODAwNWE0ODNkNzUyYTIwNDg4MyIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50 eHQiOiJlN2YzMmUwMjZmNzBiZTFlMWI1OGUwMDQ3YmFmN2QzZDJjNTIwMjY5YzRmOWI5OTkyZTE1 OGI0ZGVjYjBhMWEzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQiOiJjOTkwNzg1 Nzk4MGIyMGI4ZTllM2I1ODQ0ODJlZDY1NjdhMmJlNjE4NWQ3MjIzN2I2MzIyZjA0MDQ5NDQ5MjRl Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCI6ImFiNzIzMWIyZDNlOWFmYWNkYmQ3ZDdm M2I5ZTUzNjFhN2ZmOWY3ZTFjZmRiNGYzYmQ5MDViOTM2MmIzMDllNTMiLCJzcmMvdGVzdF9kYXRh L2diMTgwMzBfaW5fcmVmLnR4dCI6ImRjNTA2OTQyMWFkY2EyMDQzYzU1ZjUwMTJiNTVhNzZmZGZm NjUxZDIyZTZlNjk5ZmQwOTc4ZjhkNTcwNjgxNWMiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0 LnR4dCI6ImYwMjA4ZDUyN2Y1Y2E2M2RlN2Q5YTAzMjNiZThkNWNmMTJkOGExMDRiMjk0M2Q5MmMy NzAxZjBjMzM2NGRhYzEiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0X3JlZi50eHQiOiI2ODE5 ZmU0NzYyN2U0ZWEwMTAyNzAwM2ZjNTE0YjlmMjFhMTMyMmU3MzJkN2YxZmI5MmNjNmM1NDU1YmM2 YzA3Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQiOiJjZDI0YmJkY2IxODM0ZTI1 ZGI1NDY0NmZiZjRjNDE1NjBhMTNkYzc1NDBmNmJlM2RiYTRmNWQ5N2Q0NDUxM2FmIiwic3JjL3Rl c3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IjoiM2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2 Yzk0NDA5NDVlNzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIsInNyYy90ZXN0X2RhdGEv aXNvXzIwMjJfanBfb3V0LnR4dCI6IjliNmYwMTUzMjlkZGE2YzNmOWVlNWNlNmRiZDZmYTljODlh Y2MyMTI4M2U4ODY4MzZjNzhiOGQ4MzM0ODBjMjEiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pw X291dF9yZWYudHh0IjoiNzhjYjI2MDA5M2EyMDExNmFkOWE0MmY0M2IwNWQxODQ4YzVhYjEwMGI2 YjlhODUwNzQ5ODA5ZTk0Mzg4NGIzNSIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbi50eHQiOiI2 ZGYzMDMwNTUzZmZiMGE2NjE1YmIzM2RjOGVhOWRjYTZkOTYyM2E5MDI4ZTJmZmVjNzU0Y2UzYzNk YTgyNGNjIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luX3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3 MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1Iiwic3Jj L3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQiOiI0ZWMyNDQ3N2UxNjc1Y2U3NTA3MzNiZGMzYzVh ZGQxY2QyN2I2YmQ0Y2UxZjA5Mjg5NTY0NjQ2ZTk2NTRlODU3Iiwic3JjL3Rlc3RfZGF0YS9qaXMw MjA4X291dF9yZWYudHh0IjoiYzNlMWNlZjUwMzJiMmIxZDkzYTQwNmYzMWZmOTQwYzRlMmRmZTg4 NTliOGIxN2NhMjc2MWZlZTdhNzVhMGU0OCIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQi OiJjMDExZjBkZDcyYmQ3YzhjZDkyMmRmOTM3NGVmOGQyNzY5YTc3MTkwNTE0Yzc3ZjZjNjJiNDE1 ODUyZWViOWZlIiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQiOiI3ZDk0NThiM2Qy ZjczZTcwOTJhN2Y1MDVjMDhjZTFkMjMzZGRlMThhYTY3OWZiY2Y5ODg5MjU2MjM5Y2M5ZTA2Iiwi c3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW4udHh0IjoiMDJlMzg5Y2NlZjBkZDIxMjJlNjNmNTAz ODk5NDAyY2I3Zjc5NzkxMmMyNDQ0Y2M4MGFiOTMxMzExMTZjNTUyNCIsInNyYy90ZXN0X2RhdGEv c2hpZnRfamlzX2luX3JlZi50eHQiOiI1MTJmOTg1OTUwY2E5MDJlNjQzYzg4NjgyZGJhOTcwOGI3 YzM4ZDNjNWVjMjkyNTE2OGFiMDBhYzk0YWIxOWY5Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNf b3V0LnR4dCI6IjVmYmM0NGRhN2JmNjM5YmY2Y2ZlMGZhMWZkM2ViYTcxMDJiODhmODE5MTljOWVh OTkxMzAyNzEyZjY5NDI2ZmIiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dCI6 IjQ2NjMyMmM2ZmVkODI4NmM2NDU4MjczMTc1NTI5MGMyMjk2NTA4ZWZkZDI1ODgyNmU2Mjc5Njg2 NjQ5YjQ4MWYiLCJzcmMvdGVzdF9sYWJlbHNfbmFtZXMucnMiOiIyM2EyZTExYjAyYjNiOGQxNWZi NTYxM2E2MjVlM2VkYjJjNjFlNzBlM2M1ODFhYmZkNjM4NzE5YTQwODgyMDBkIiwic3JjL3Rlc3Rp bmcucnMiOiJmNTllNjcxZTk1YTk4YTU2ZjZiNTczZThjNmJlNGQ3MWU2NzBiZjUyZjdlMjBlYjE2 MDVkOTkwYWFmYTE4OTRlIiwic3JjL3V0Zl8xNi5ycyI6ImMwNzFhMTQ3ZmFkMzhkNzUwYzJjMjQ3 ZTE0MWI3NmI5MjlhNDgwMDdiOTlmMjZiMjkyMmI5Y2FlY2RhZjJmMjUiLCJzcmMvdXRmXzgucnMi OiI3YjdkODg3YjM0N2YxYWVmYTAzMjQ2YjAyOGEzNmE3Mjc1OGE0Y2U3NmMyOGYzYjQ1YzE5NDY3 ODUxYWE3ODM5Iiwic3JjL3ZhcmlhbnQucnMiOiIxZmFiNTM2MzU4OGExNTU0YTcxNjlkZTg3MzFl YTljZGVkN2FjNjNlYTM1Y2FhYmRkMWMyN2E4ZGRlNjhjMjdiIiwic3JjL3hfdXNlcl9kZWZpbmVk LnJzIjoiOTQ1NmNhNDYxNjhlZjg2Yzk4Mzk5YTI1MzZmNTc3ZWY3YmUzY2RkZTkwYzBjNTEzOTJk OGFjNDg1MTlkM2ZhZSJ9LCJwYWNrYWdlIjoiYjQ1ZGU5MDRhYTBiMDEwYmNlMmFiNDUyNjRkMDYz MTY4MTg0N2ZhN2I2ZjJlYWE3ZGFiNzYxOTk0M2JjNGY1OSJ9Ci1cIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0Nhcmdv LnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAkyMDI1LTA0LTIwIDE5OjI4OjEy LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJn by50b21sCTIwMjUtMDktMTcgMTc6NDE6MjEuMTM4ODA1MDA3ICswMzAwCi1AQCAtMTEsOCArMTEs OSBAQAotIAotIFtwYWNrYWdlXQotIGVkaXRpb24gPSAiMjAxOCIKLStydXN0LXZlcnNpb24gPSAi MS4zNiIKLSBuYW1lID0gImVuY29kaW5nX3JzIgotLXZlcnNpb24gPSAiMC44LjMzIgotK3ZlcnNp b24gPSAiMC44LjM0IgotIGF1dGhvcnMgPSBbIkhlbnJpIFNpdm9uZW4gPGhzaXZvbmVuQGhzaXZv bmVuLmZpPiJdCi0gZGVzY3JpcHRpb24gPSAiQSBHZWNrby1vcmllbnRlZCBpbXBsZW1lbnRhdGlv biBvZiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQiCi0gaG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJz L2VuY29kaW5nX3JzLyIKLUBAIC0zNiwxMyArMzcsMTMgQEAKLSBbcHJvZmlsZS5yZWxlYXNlXQot IGx0byA9IHRydWUKLSAKLStbZGVwZW5kZW5jaWVzLmFueV9hbGxfd29ya2Fyb3VuZF0KLSt2ZXJz aW9uID0gIjAuMS4wIgotK29wdGlvbmFsID0gdHJ1ZQotKwotIFtkZXBlbmRlbmNpZXMuY2ZnLWlm XQotIHZlcnNpb24gPSAiMS4wIgotIAotLVtkZXBlbmRlbmNpZXMucGFja2VkX3NpbWRdCi0tdmVy c2lvbiA9ICIwLjMuOSIKLS1vcHRpb25hbCA9IHRydWUKLS0KLSBbZGVwZW5kZW5jaWVzLnNlcmRl XQotIHZlcnNpb24gPSAiMS4wIgotIG9wdGlvbmFsID0gdHJ1ZQotQEAgLTc0LDEwICs3NSw0IEBA Ci0gbGVzcy1zbG93LWJpZzUtaGFuemktZW5jb2RlID0gW10KLSBsZXNzLXNsb3ctZ2ItaGFuemkt ZW5jb2RlID0gW10KLSBsZXNzLXNsb3cta2FuamktZW5jb2RlID0gW10KLS1zaW1kLWFjY2VsID0g WwotLSAgICAicGFja2VkX3NpbWQiLAotLSAgICAicGFja2VkX3NpbWQvaW50b19iaXRzIiwKLS1d Ci0tCi0tW2JhZGdlcy50cmF2aXMtY2ldCi0tcmVwb3NpdG9yeSA9ICJoc2l2b25lbi9lbmNvZGlu Z19ycyIKLStzaW1kLWFjY2VsID0gWyJhbnlfYWxsX3dvcmthcm91bmQiXQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9SRUFETUUubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvUkVBRE1FLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZAkyMDI1LTA5LTE3IDE3OjQxOjIx LjEzODgwNTAwNyArMDMwMAotQEAgLTE2NywxMyArMTY3LDE1IEBACi0gCi0gIyMjIGBzaW1kLWFj Y2VsYAotIAotLUVuYWJsZXMgU0lNRCBhY2NlbGVyYXRpb24gdXNpbmcgdGhlIG5pZ2h0bHktZGVw ZW5kZW50IGBwYWNrZWRfc2ltZGAgY3JhdGUuCi0rRW5hYmxlcyBTSU1EIGFjY2VsZXJhdGlvbiB1 c2luZyB0aGUgbmlnaHRseS1kZXBlbmRlbnQgYHBvcnRhYmxlX3NpbWRgIHN0YW5kYXJkCi0rbGli cmFyeSBmZWF0dXJlLgotIAotIFRoaXMgaXMgYW4gb3B0LWluIGZlYXR1cmUsIGJlY2F1c2UgZW5h YmxpbmcgdGhpcyBmZWF0dXJlIF9vcHRzIG91dF8gb2YgUnVzdCdzCi0gZ3VhcmFudGVlcyBvZiBm dXR1cmUgY29tcGlsZXJzIGNvbXBpbGluZyBvbGQgY29kZSAoYWthLiAic3RhYmlsaXR5IHN0b3J5 IikuCi0gCi0gQ3VycmVudGx5LCB0aGlzIGhhcyBub3QgYmVlbiB0ZXN0ZWQgdG8gYmUgYW4gaW1w cm92ZW1lbnQgZXhjZXB0IGZvciB0aGVzZQotLXRhcmdldHM6Ci0rdGFyZ2V0cyBhbmQgZW5hYmxp bmcgdGhlIGBzaW1kLWFjY2VsYCBmZWF0dXJlIGlzIGV4cGVjdGVkIHRvIGJyZWFrIHRoZSBidWls ZAotK29uIG90aGVyIHRhcmdldHM6Ci0gCi0gKiB4ODZfNjQKLSAqIGk2ODYKLUBAIC0xODUsMjIg KzE4Nyw2IEBACi0gUnVzdF8sIHlvdSBzaG91bGQgZW5hYmxlIHRoaXMgZmVhdHVyZS4gT3RoZXJ3 aXNlLCBwbGVhc2UgX2RvIG5vdF8gZW5hYmxlIHRoaXMKLSBmZWF0dXJlLgotIAotLV9Ob3RlIV8g SWYgeW91IGFyZSBjb21waWxpbmcgZm9yIGEgdGFyZ2V0IHRoYXQgZG9lcyBub3QgaGF2ZSAxMjgt Yml0IFNJTUQKLS1lbmFibGVkIGFzIHBhcnQgb2YgdGhlIHRhcmdldCBkZWZpbml0aW9uIGFuZCB5 b3UgYXJlIGVuYWJsaW5nIDEyOC1iaXQgU0lNRAotLXVzaW5nIGAtQyB0YXJnZXRfZmVhdHVyZWAs IHlvdSBuZWVkIHRvIGVuYWJsZSB0aGUgYGNvcmVfYXJjaGAgQ2FyZ28gZmVhdHVyZQotLWZvciBg cGFja2VkX3NpbWRgIHRvIGNvbXBpbGUgYSBjcmF0ZXMuaW8gc25hcHNob3Qgb2YgYGNvcmVfYXJj aGAgaW5zdGVhZCBvZgotLXVzaW5nIHRoZSBzdGFuZGFyZC1saWJyYXJ5IGNvcHkgb2YgYGNvcmU6 OmFyY2hgLCBiZWNhdXNlIHRoZSBgY29yZTo6YXJjaGAKLS1tb2R1bGUgb2YgdGhlIHByZS1jb21w aWxlZCBzdGFuZGFyZCBsaWJyYXJ5IGhhcyBiZWVuIGNvbXBpbGVkIHdpdGggdGhlCi0tYXNzdW1w dGlvbiB0aGF0IHRoZSBDUFUgZG9lc24ndCBoYXZlIDEyOC1iaXQgU0lNRC4gQXQgcHJlc2VudCB0 aGlzIGFwcGxpZXMKLS1tYWlubHkgdG8gMzItYml0IEFSTSB0YXJnZXRzIHdob3NlIGZpcnN0IGNv bXBvbmVudCBkb2VzIG5vdCBpbmNsdWRlIHRoZQotLXN1YnN0cmluZyBgbmVvbmAuCi0tCi0tVGhl IGVuY29kaW5nX3JzIHNpZGUgb2YgdGhpbmdzIGhhcyBub3QgYmVlbiBwcm9wZXJseSBzZXQgdXAg Zm9yIFBPV0VSLAotLVBvd2VyUEMsIE1JUFMsIGV0Yy4sIFNJTUQgYXQgdGhpcyB0aW1lLCBzbyBl dmVuIGlmIHlvdSB3ZXJlIHRvIGZvbGxvdwotLXRoZSBhZHZpY2UgZnJvbSB0aGUgcHJldmlvdXMg cGFyYWdyYXBoLCB5b3UgcHJvYmFibHkgc2hvdWxkbid0IHVzZQotLXRoZSBgc2ltZC1hY2NlbGAg b3B0aW9uIG9uIHRoZSBsZXNzIG1haW5zdHJlYW0gYXJjaGl0ZWN0dXJlcyBhdCB0aGlzCi0tdGlt ZS4KLS0KLSBVc2VkIGJ5IEZpcmVmb3guCi0gCi0gIyMjIGBzZXJkZWAKLUBAIC0zODEsOCArMzY3 LDkgQEAKLSBhcHBlYXIgdG8gdHJlYXQgTVNSViBjaGFuZ2VzIGFzIHNlbXZlci1icmVha2luZywg c28gaXQgd291bGQgYmUgdXNlbGVzcyBmb3IKLSB0aGlzIGNyYXRlIHRvIHRyZWF0IE1TUlYgY2hh bmdlcyBhcyBzZW12ZXItYnJlYWtpbmcuCi0gCi0tQXMgb2YgMjAyMS0wMi0wNCwgTVNSViBhcHBl YXJzIHRvIGJlIFJ1c3QgMS4zNi4wIGZvciB1c2luZyB0aGUgY3JhdGUgYW5kCi0rQXMgb2YgMjAy NC0wNC0wNCwgTVNSViBhcHBlYXJzIHRvIGJlIFJ1c3QgMS4zNi4wIGZvciB1c2luZyB0aGUgY3Jh dGUgYW5kCi0gMS40Mi4wIGZvciBkb2MgdGVzdHMgdG8gcGFzcyB3aXRob3V0IGVycm9ycyBhYm91 dCB0aGUgZ2xvYmFsIGFsbG9jYXRvci4KLStXaXRoIHRoZSBgc2ltZC1hY2NlbGAgZmVhdHVyZSwg dGhlIE1TUlYgaXMgZXZlbiBoaWdoZXIuCi0gCi0gIyMgQ29tcGF0aWJpbGl0eSB3aXRoIHJ1c3Qt ZW5jb2RpbmcKLSAKLUBAIC00NDYsMTAgKzQzMywxNyBAQAotIC0gW3hdIEFkZCBhY3R1YWxseSBm YXN0IENKSyBlbmNvZGUgb3B0aW9ucy4KLSAtIFsgXSB+SW52ZXN0aWdhdGUgW0JvYiBTdGVhZ2Fs bCdzIGxvb2t1cCB0YWJsZSBhY2NlbGVyYXRpb24gZm9yIFVURi04XShodHRwczovL2dpdGh1Yi5j b20vQm9iU3RlYWdhbGwvQ3BwTm93MjAxOC9ibG9iL21hc3Rlci9GYXN0Q29udmVyc2lvbkZyb21V VEYtOC9GYXN0JTIwQ29udmVyc2lvbiUyMEZyb20lMjBVVEYtOCUyMHdpdGglMjBDJTJCJTJCJTJD JTIwREZBcyUyQyUyMGFuZCUyMFNTRSUyMEludHJpbnNpY3MlMjAtJTIwQm9iJTIwU3RlYWdhbGwl MjAtJTIwQyUyQiUyQk5vdyUyMDIwMTgucGRmKS5+Ci0gLSBbeF0gUHJvdmlkZSBhIGJ1aWxkIG1v ZGUgdGhhdCB3b3JrcyB3aXRob3V0IGBhbGxvY2AgKHdpdGggbGVzc2VyIEFQSSBzdXJmYWNlKS4K LS0tIFsgXSBNaWdyYXRlIHRvIGBzdGQ6OnNpbWRgIG9uY2UgaXQgaXMgc3RhYmxlIGFuZCBkZWNs YXJlIDEuMC4KLSstIFt4XSBNaWdyYXRlIHRvIGBzdGQ6OnNpbWRgIH5vbmNlIGl0IGlzIHN0YWJs ZSBhbmQgZGVjbGFyZSAxLjAufgotKy0gWyBdIE1pZ3JhdGUgYHVuc2FmZWAgc2xpY2UgYWNjZXNz IGJ5IGxhcmdlciB0eXBlcyB0aGFuIGB1OGAvYHUxNmAgdG8gYGFsaWduX3RvYC4KLSAKLSAjIyBS ZWxlYXNlIE5vdGVzCi0gCi0rIyMjIDAuOC4zNAotKwotKyogVXNlIHRoZSBgcG9ydGFibGVfc2lt ZGAgbmlnaHRseSBmZWF0dXJlIG9mIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGluc3RlYWQgb2YgdGhl IGBwYWNrZWRfc2ltZGAgY3JhdGUuIE9ubHkgYWZmZWN0cyB0aGUgYHNpbWQtYWNjZWxgIG9wdGlv bmFsIG5pZ2h0bHkgZmVhdHVyZS4KLSsqIEludGVybmFsIGRvY3VtZW50YXRpb24gaW1wcm92ZW1l bnRzIGFuZCBtaW5vciBjb2RlIGltcHJvdmVtZW50cyBhcm91bmQgYHVuc2FmZWAuCi0rKiBBZGRl ZCBgcnVzdC12ZXJzaW9uYCB0byBgQ2FyZ28udG9tbGAuCi0rCi0gIyMjIDAuOC4zMwotIAotICog VXNlIGBwYWNrZWRfc2ltZGAgaW5zdGVhZCBvZiBgcGFja2VkX3NpbWRfMmAgYWdhaW4gbm93IHRo YXQgdXBkYXRlcyBhcmUgYmFjayB1bmRlciB0aGUgYHBhY2tlZF9zaW1kYCBuYW1lLiBPbmx5IGFm ZmVjdHMgdGhlIGBzaW1kLWFjY2VsYCBvcHRpb25hbCBuaWdodGx5IGZlYXR1cmUuCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMgYi90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9hc2NpaS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMJMjAyNS0wNC0yMCAxOToyODoxMi4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzCTIw MjUtMDktMTcgMTc6NDE6MjEuMTM5ODA0OTY5ICswMzAwCi1AQCAtNTEsNiArNTEsOCBAQAotICAg ICB9Ci0gfQotIAotKy8vIFNhZmV0eSBpbnZhcmlhbnRzIGZvciBtYXNrczogZGF0YSAmIG1hc2sg PSAwIGZvciB2YWxpZCBBU0NJSSBvciBiYXNpYyBsYXRpbiB1dGYtMTYKLSsKLSAvLyBgYXNgIHRy dW5jYXRlcywgc28gd29ya3Mgb24gMzItYml0LCB0b28uCi0gI1thbGxvdyhkZWFkX2NvZGUpXQot IHB1YiBjb25zdCBBU0NJSV9NQVNLOiB1c2l6ZSA9IDB4ODA4MF84MDgwXzgwODBfODA4MHU2NCBh cyB1c2l6ZTsKLUBAIC02Miw2ICs2NCw5IEBACi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBt YWNyb19ydWxlcyEgYXNjaWlfbmFpdmUgewotICAgICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0 eSwgJGRzdF91bml0OnR5KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBt dXN0IGhhdmUgbGVuX3VuaXQgZWxlbWVudHMgYW5kIGJlIGFsaWduZWQKLSsgICAgICAgIC8vLyBT YWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZmFpbHMK LSsgICAgICAgIC8vLyB0byBjb252ZXJ0LiBUaGUgZmlyc3QgdmFsdWUgd2lsbCBiZSBhIHU4IHRo YXQgaXMgPiAxMjcuCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVu c2FmZSBmbiAkbmFtZSgKLSAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQsCi1AQCAt NzEsMTAgKzc2LDEzIEBACi0gICAgICAgICAgICAgLy8gWWVzLCBtYW51YWxseSBvbWl0dGluZyB0 aGUgYm91bmQgY2hlY2sgaGVyZSBtYXR0ZXJzCi0gICAgICAgICAgICAgLy8gYSBsb3QgZm9yIHBl cmYuCi0gICAgICAgICAgICAgZm9yIGkgaW4gMC4ubGVuIHsKLSsgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICAgICBsZXQgY29k ZV91bml0ID0gKihzcmMuYWRkKGkpKTsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhv bGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKLSAgICAgICAgICAgICAgICAgaWYgY29k ZV91bml0ID4gMTI3IHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3Vu aXQsIGkpKTsKLSAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgICAgICooZHN0LmFkZChpKSkg PSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBy ZXR1cm4gTm9uZTsKLUBAIC04NSw5ICs5MywxNSBAQAotICNbYWxsb3codW51c2VkX21hY3Jvcyld Ci0gbWFjcm9fcnVsZXMhIGFzY2lpX2FsdSB7Ci0gICAgICgkbmFtZTppZGVudCwKLSsgICAgIC8v IHNhZmV0eSBpbnZhcmlhbnQ6IHNyYy9kc3QgTVVTVCBiZSB1OAotICAgICAgJHNyY191bml0OnR5 LAotICAgICAgJGRzdF91bml0OnR5LAotKyAgICAgLy8gU2FmZXR5IGludmFyaWFudDogc3RyaWRl X2ZuIG11c3QgY29uc3VtZSBhbmQgcHJvZHVjZSB0d28gdXNpemVzLCBhbmQgcmV0dXJuIHRoZSBp bmRleCBvZiB0aGUgZmlyc3Qgbm9uLWFzY2lpIHdoZW4gaXQgZmFpbHMKLSAgICAgICRzdHJpZGVf Zm46aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2 ZSBsZW4gZWxlbWVudHMsIHNyYyBpcyB2YWxpZCBmb3IgcmVhZCwgZHN0IGlzIHZhbGlkIGZvcgot KyAgICAgICAgLy8vIHdyaXRlCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6 IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGZhaWxzCi0rICAgICAgICAvLy8gdG8gY29udmVy dC4gVGhlIGZpcnN0IHZhbHVlIHdpbGwgYmUgYSB1OCB0aGF0IGlzID4gMTI3LgotICAgICAgICAg I1tjZmdfYXR0cihmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsIGFsbG93KG5ldmVyX2xvb3AsIGNh c3RfcHRyX2FsaWdubWVudCkpXQotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAg IHB1YiB1bnNhZmUgZm4gJG5hbWUoCi1AQCAtOTgsNiArMTEyLDcgQEAKLSAgICAgICAgICAgICBs ZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMgb25s eSBicm9rZW4gb3V0IG9mIGFzIGEgYGdvdG9gIGZvcndhcmQKLSAgICAgICAgICAgICBsb29wIHsK LSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1bnRpbF9hbGlnbm1lbnQgYmVjb21lcyB0aGUg bnVtYmVyIG9mIGJ5dGVzIHdlIG5lZWQgdG8gbXVuY2ggdW50aWwgd2UgYXJlIGFsaWduZWQgdG8g dXNpemUKLSAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSB7Ci0gICAg ICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgb3RoZXIgdW5pdCBhbGlnbnMgaWYgd2Ug bW92ZSB0aGUgbmFycm93ZXIgdW5pdAotICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYWxpZ25t ZW50LgotQEAgLTEwNiw2ICsxMjEsNyBAQAotICAgICAgICAgICAgICAgICAgICAgbGV0IHNyY19h bGlnbm1lbnQgPSAoc3JjIGFzIHVzaXplKSAmIEFMVV9BTElHTk1FTlRfTUFTSzsKLSAgICAgICAg ICAgICAgICAgICAgIGxldCBkc3RfYWxpZ25tZW50ID0gKGRzdCBhcyB1c2l6ZSkgJiBBTFVfQUxJ R05NRU5UX01BU0s7Ci0gICAgICAgICAgICAgICAgICAgICBpZiBzcmNfYWxpZ25tZW50ICE9IGRz dF9hbGlnbm1lbnQgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYmFpbHMg ZWFybHkgYW5kIGVuZHMgdXAgaW4gdGhlIG5hw692ZSBicmFuY2ggd2hlcmUgdXNpemUtYWxpZ25t ZW50IGRvZXNuJ3QgbWF0dGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAoQUxVX0FMSUdOTUVOVCAt IHNyY19hbGlnbm1lbnQpICYgQUxVX0FMSUdOTUVOVF9NQVNLCi1AQCAtMTM0LDI1ICsxNTAsNDAg QEAKLSAgICAgICAgICAgICAgICAgICAgIC8vIHg4Nl82NCBzaG91bGQgYmUgdXNpbmcgU1NFMiBp biBkdWUgY291cnNlLCBrZWVwaW5nIHRoZSBtb3ZlCi0gICAgICAgICAgICAgICAgICAgICAvLyB0 byBhbGlnbm1lbnQgaGVyZS4gSXQgd291bGQgYmUgZ29vZCB0byB0ZXN0IG9uIG1vcmUgQVJNIENQ VXMKLSAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBvbiByZWFsIE1JUFMgYW5kIFBPV0VSIGhh cmR3YXJlLgotKyAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGB1bnRpbF9h bGlnbm1lbnRgIGJ5dGVzCi0gICAgICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1l bnQgIT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3Jj LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAx MjcgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2Fm ZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91 bml0IGFzICRkc3RfdW5pdDsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9m ZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIKLSAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbF9h bGlnbm1lbnQgLT0gMTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gQUxVX1NUUklERV9TSVpFOwotICAgICAg ICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBudW1fYXNjaWkgaXMga25vd24gdG8gYmUgYSBieXRlIGluZGV4IG9mIGEgbm9uLWFzY2lpIGJ5 dGUgZHVlIHRvIHN0cmlkZV9mbidzIGludmFyaWFudAotICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGxldCBTb21lKG51bV9hc2NpaSkgPSAkc3RyaWRlX2ZuKAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IFRoZXNlIGFyZSBrbm93biB0byBiZSB2YWxpZCBhbmQgYWxp Z25lZCBzaW5jZSB3ZSBoYXZlIGF0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxl YXN0IEFMVV9TVFJJREVfU0laRSBkYXRhIGluIHRoZXNlIGJ1ZmZlcnMsIGFuZCBvZmZzZXQgaXMg dGhlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG51bWJlciBvZiBlbGVtZW50cyBj b3BpZWQgc28gZmFyLCB3aGljaCBhY2NvcmRpbmcgdG8gdGhlCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHVudGlsX2FsaWdubWVudCBjYWxjdWxhdGlvbiBhYm92ZSB3aWxsIGNhdXNl IGJvdGggc3JjIGFuZCBkc3QgdG8gYmUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g YWxpZ25lZCB0byB1c2l6ZSBhZnRlciB0aGlzIGFkZAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVzaXplLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkc3QuYWRkKG9mZnNldCkgYXMgKm11dCB1c2l6ZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG51 bV9hc2NpaTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVcGhvbGRz IHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUgYnkgaW5kZXhpbmcgaW50byBub24tYXNjaWkg Ynl0ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoKihzcmMuYWRk KG9mZnNldCkpLCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgY29udGludWVzIHRvIGJlIHRoZSBu dW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwgYW5kCi0rICAgICAgICAgICAgICAgICAgICAg ICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVudCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRp b24KLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQUxVX1NUUklERV9TSVpFOwot KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVu IC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250aW51ZSBhcyBsb25nIGFzCi0rICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBsZW4gLSBzdHJpZGVgLCB3aGljaCBtZWFucyB0 aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3RpbGwgYmUgcmVhZC4KLSAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTE2 MCwxMSArMTkxLDE3IEBACi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0 aGUgbmHDr3ZlIGNvZGUsIHNhbWUgYXMgYXNjaWlfbmFpdmUsIGFuZCBoYXMgbm8gcmVxdWlyZW1l bnRzCi0rICAgICAgICAgICAgLy8gb3RoZXIgdGhhbiBzcmMvZHN0IGJlaW5nIHZhbGlkIGZvciB0 aGUgdGhlIHJpZ2h0IGxlbnMKLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4gewotKyAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAg ICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAg ICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQotICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAg IH0KLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQot ICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91 bml0OwotICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICB9Ci1AQCAt MTc2LDkgKzIxMywxNiBAQAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMh IGJhc2ljX2xhdGluX2FsdSB7Ci0gICAgICgkbmFtZTppZGVudCwKLSsgICAgLy8gc2FmZXR5IGlu dmFyaWFudDogdXNlIHU4IGZvciBzcmMvZGVzdCBmb3IgYXNjaWksIGFuZCB1MTYgZm9yIGJhc2lj X2xhdGluCi0gICAgICAkc3JjX3VuaXQ6dHksCi0gICAgICAkZHN0X3VuaXQ6dHksCi0rICAgIC8v IHNhZmV0eSBpbnZhcmlhbnQ6IHN0cmlkZSBmdW5jdGlvbiBtdXN0IG11bmNoIEFMVV9TVFJJREVf U0laRSpzaXplKHNyY191bml0KSBieXRlcyBvZmYgb2Ygc3JjIGFuZAotKyAgICAvLyB3cml0ZSBB TFVfU1RSSURFX1NJWkUqc2l6ZShkc3RfdW5pdCkgYnl0ZXMgdG8gZHN0Ci0gICAgICAkc3RyaWRl X2ZuOmlkZW50KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGhh dmUgbGVuIGVsZW1lbnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBpcyB2YWxpZCBmb3IK LSsgICAgICAgIC8vLyB3cml0ZQotKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50 OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBmYWlscwotKyAgICAgICAgLy8vIHRvIGNvbnZl cnQuIFRoZSBmaXJzdCB2YWx1ZSB3aWxsIGJlIGEgdTggdGhhdCBpcyA+IDEyNy4KLSAgICAgICAg ICNbY2ZnX2F0dHIoCi0gICAgICAgICAgICAgZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLAotICAg ICAgICAgICAgIGFsbG93KG5ldmVyX2xvb3AsIGNhc3RfcHRyX2FsaWdubWVudCwgY2FzdF9sb3Nz bGVzcykKLUBAIC0xOTIsNiArMjM2LDggQEAKLSAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9 IDB1c2l6ZTsKLSAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0IG9m IGFzIGEgYGdvdG9gIGZvcndhcmQKLSAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB1bnRpbF9hbGlnbm1lbnQgYmVjb21lcyB0aGUgbnVtYmVyIG9mIGJ5dGVz IHdlIG5lZWQgdG8gbXVuY2ggZnJvbSBzcmMvZGVzdCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1 c2l6ZQotKyAgICAgICAgICAgICAgICAvLyBXZSBlbnN1cmUgYmFzaWMtbGF0aW4gaGFzIHRoZSBz YW1lIGFsaWdubWVudCBhcyBhc2NpaSwgc3RhcnRpbmcgd2l0aCBhc2NpaSBzaW5jZSBpdCBpcyBz bWFsbGVyLgotICAgICAgICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IHsKLSAg ICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBvdGhlciB1bml0IGFsaWducyBpZiB3 ZSBtb3ZlIHRoZSBuYXJyb3dlciB1bml0Ci0gICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGln bm1lbnQuCi1AQCAtMjM3LDI0ICsyODMsMzcgQEAKLSAgICAgICAgICAgICAgICAgICAgIC8vIHg4 Nl82NCBzaG91bGQgYmUgdXNpbmcgU1NFMiBpbiBkdWUgY291cnNlLCBrZWVwaW5nIHRoZSBtb3Zl Ci0gICAgICAgICAgICAgICAgICAgICAvLyB0byBhbGlnbm1lbnQgaGVyZS4gSXQgd291bGQgYmUg Z29vZCB0byB0ZXN0IG9uIG1vcmUgQVJNIENQVXMKLSAgICAgICAgICAgICAgICAgICAgIC8vIGFu ZCBvbiByZWFsIE1JUFMgYW5kIFBPV0VSIGhhcmR3YXJlLgotKyAgICAgICAgICAgICAgICAgICAg Ly8KLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNv ZGUgb25jZSBhZ2FpbiwgZm9yIGB1bnRpbF9hbGlnbm1lbnRgIGJ5dGVzCi0gICAgICAgICAgICAg ICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQp KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg Kihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNv cGllZCBzbyBmYXIKLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKLSAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVu IC0gQUxVX1NUUklERV9TSVpFOwotICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfZm4oCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogVGhlc2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVk IHNpbmNlIHdlIGhhdmUgYXQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3Qg QUxVX1NUUklERV9TSVpFIGRhdGEgaW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGll ZCBzbyBmYXIsIHdoaWNoIGFjY29yZGluZyB0byB0aGUKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdW50aWxfYWxpZ25tZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90 aCBzcmMgYW5kIGRzdCB0byBiZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGln bmVkIHRvIHVzaXplIGFmdGVyIHRoaXMgYWRkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRzdC5hZGQob2Zmc2V0KSBhcyAqbXV0IHVzaXplLAotICAgICAgICAgICAgICAgICAg ICAgICAgICkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBv ZmZzZXQgY29udGludWVzIHRvIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwg YW5kCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVu dCBmb3IgdGhlIG5leHQgbG9vcCBpdGVyYXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICBv ZmZzZXQgKz0gQUxVX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250 aW51ZSBhcyBsb25nIGFzCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBs ZW4gLSBzdHJpZGVgLCB3aGljaCBtZWFucyB0aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3Rp bGwgYmUgcmVhZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWlu dXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgfQotQEAgLTI2MiwxMSArMzIxLDE1IEBACi0gICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGxl ZnRvdmVyIGJ5dGVzCi0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAg ICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAg ICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBV cGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKLSAgICAgICAgICAgICAgICAgICAg IHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAg ICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsK LSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci0gICAgICAgICAgICAgfQotQEAgLTI3Nyw3 ICszNDAsMTEgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBs YXRpbjFfYWx1IHsKLSsgICAgLy8gc2FmZXR5IGludmFyaWFudDogc3RyaWRlIGZ1bmN0aW9uIG11 c3QgbXVuY2ggQUxVX1NUUklERV9TSVpFKnNpemUoc3JjX3VuaXQpIGJ5dGVzIG9mZiBvZiBzcmMg YW5kCi0rICAgIC8vIHdyaXRlIEFMVV9TVFJJREVfU0laRSpzaXplKGRzdF91bml0KSBieXRlcyB0 byBkc3QKLSAgICAgKCRuYW1lOmlkZW50LCAkc3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0eSwgJHN0 cmlkZV9mbjppZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVz dCBoYXZlIGxlbiBlbGVtZW50cywgc3JjIGlzIHZhbGlkIGZvciByZWFkLCBkc3QgaXMgdmFsaWQg Zm9yCi0rICAgICAgICAvLy8gd3JpdGUKLSAgICAgICAgICNbY2ZnX2F0dHIoCi0gICAgICAgICAg ICAgZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLAotICAgICAgICAgICAgIGFsbG93KG5ldmVyX2xv b3AsIGNhc3RfcHRyX2FsaWdubWVudCwgY2FzdF9sb3NzbGVzcykKLUBAIC0yODcsNiArMzU0LDgg QEAKLSAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSAgICAgICAgICAgICAv LyBUaGlzIGxvb3AgaXMgb25seSBicm9rZW4gb3V0IG9mIGFzIGEgYGdvdG9gIGZvcndhcmQKLSAg ICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1bnRpbF9hbGln bm1lbnQgYmVjb21lcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIG5lZWQgdG8gbXVuY2ggZnJvbSBz cmMvZGVzdCB1bnRpbCB3ZSBhcmUgYWxpZ25lZCB0byB1c2l6ZQotKyAgICAgICAgICAgICAgICAv LyBXZSBlbnN1cmUgdGhlIFVURi0xNiBzaWRlIGhhcyB0aGUgc2FtZSBhbGlnbm1lbnQgYXMgdGhl IExhdGluLTEgc2lkZSwgc3RhcnRpbmcgd2l0aCBMYXRpbi0xIHNpbmNlIGl0IGlzIHNtYWxsZXIu Ci0gICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxfYWxpZ25tZW50ID0gewotICAgICAgICAg ICAgICAgICAgICAgaWYgOjpjb3JlOjptZW06OnNpemVfb2Y6Ojwkc3JjX3VuaXQ+KCkgPCA6OmNv cmU6Om1lbTo6c2l6ZV9vZjo6PCRkc3RfdW5pdD4oKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdW5wYWNrCi1AQCAtMzEzLDE5ICszODIsMzAgQEAKLSAgICAgICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25t ZW50ICsgQUxVX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdhaW4sIGZvciBgdW50aWxfYWxp Z25tZW50YCBieXRlcwotICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50 ICE9IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5h ZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkp ID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIKLSAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gQUxVX1NUUklERV9TSVpF OwotICAgICAgICAgICAgICAgICAgICAgbG9vcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg JHN0cmlkZV9mbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGVz ZSBhcmUga25vd24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2luY2Ugd2UgaGF2ZSBhdAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVfU1RSSURFX1NJWkUgZGF0YSBp biB0aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNvIGZhciwgd2hpY2ggYWNjb3Jk aW5nIHRvIHRoZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnRpbF9hbGlnbm1l bnQgY2FsY3VsYXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNyYyBhbmQgZHN0IHRvIGJlCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQgdG8gdXNpemUgYWZ0ZXIgdGhp cyBhZGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkZChvZmZzZXQpIGFzICpj b25zdCB1c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LmFkZChvZmZzZXQp IGFzICptdXQgdXNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgKTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMgdG8gYmUgdGhlIG51bWJl ciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQKLSsgICAgICAgICAgICAgICAgICAgICAgICAv LyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbgot ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RSSURFX1NJWkU7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBz dHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMKLSsgICAgICAgICAgICAg ICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdoaWNoIG1lYW5zIHRoZXJl IGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgotICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMzMzLDcg KzQxMyw5IEBACi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g ICAgICAgICAgICAgfQotKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3Zl IGNvZGUgb25jZSBhZ2FpbiwgZm9yIGxlZnRvdmVyIGJ5dGVzCi0gICAgICAgICAgICAgd2hpbGUg b2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBsZW4gaW52YXJpYW50 IHVzZWQgaGVyZQotICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9m ZnNldCkpOwotICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQg YXMgJGRzdF91bml0OwotICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLUBAIC0zNDgsMTEg KzQzMCwxOSBAQAotICAgICAgICAgJG5hbWU6aWRlbnQsCi0gICAgICAgICAkc3JjX3VuaXQ6dHks Ci0gICAgICAgICAkZHN0X3VuaXQ6dHksCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rp b24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRp bmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAk c3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5j dGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFs aWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0 Ci0gICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQvYWxpZ25lZCBzcmMvZGVzdCB0 aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3Vu aXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQ6aWRlbnQsCi0rICAgICAg ICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50Ci0g ICAgICkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2RzdCBtdXN0IGJlIHZhbGlkIGZv ciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhlaXIgdW5pdHMuCi0rICAgICAg ICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4g U29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVsZW1l bnQgaW4gdGhlIFNvbWUgYmVpbmcKLSsgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5vbi1B U0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlz IGZvdW5kCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBm biAkbmFtZSgKLSAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQsCi1AQCAtMzYwLDYg KzQ1MCw3IEBACi0gICAgICAgICAgICAgbGVuOiB1c2l6ZSwKLSAgICAgICAgICkgLT4gT3B0aW9u PCgkc3JjX3VuaXQsIHVzaXplKT4gewotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVz aXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdy ZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBl bGVtZW50cy4KLSAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0gICAg ICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0la RTsKLSAgICAgICAgICAgICAgICAgLy8gWFhYIFNob3VsZCB3ZSBmaXJzdCBwcm9jZXNzIG9uZSBz dHJpZGUgdW5jb25kaXRpb25hbGx5IGFzIHVuYWxpZ25lZCB0bwotQEAgLTM2OCwyMyArNDU5LDI5 IEBACi0gICAgICAgICAgICAgICAgIC8vIG9uIEhhc3dlbGwsIGl0IHdvdWxkIG1ha2Ugc2Vuc2Ug dG8ganVzdCB1c2UgdW5hbGlnbmVkIGFuZCBub3QgYm90aGVyCi0gICAgICAgICAgICAgICAgIC8v IGNoZWNraW5nLiBOZWVkIHRvIGJlbmNobWFyayBvbGRlciBhcmNoaXRlY3R1cmVzIGJlZm9yZSBk ZWNpZGluZy4KLSAgICAgICAgICAgICAgICAgbGV0IGRzdF9tYXNrZWQgPSAoZHN0IGFzIHVzaXpl KSAmIFNJTURfQUxJR05NRU5UX01BU0s7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogY2hl Y2tpbmcgd2hldGhlciBzcmMgaXMgYWxpZ25lZAotICAgICAgICAgICAgICAgICBpZiAoKHNyYyBh cyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSA9PSAwIHsKLSsgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogQ2hlY2tpbmcgd2hldGhlciBkc3QgaXMgYWxpZ25lZAotICAgICAgICAg ICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2 YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgYW5kIGhhdmUgdGhl IGFwcHJvcHJpYXRlIGFsaWdubWVudHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg ISRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g U0lNRF9TVFJJREVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3 ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVu Y2ggbmV4dCB0aW1lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBs ZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdy ZSB2YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgYW5kIGhhdmUg dGhlIGFwcHJvcHJpYXRlIGFsaWdubWVudHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgISRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkp IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCAr PSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5z IHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBt dW5jaCBuZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+ IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0zOTMsMjAgKzQ5MCwyNCBA QAotICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgaWYgZHN0 X21hc2tlZCA9PSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCB0byByZWFkL3dyaXRl IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMgYW5kIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGFsaWdu bWVudHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfZHN0X2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+ IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxl YXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3Jp dGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxp Z25tZW50cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVy X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9T SVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9m ZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZl IGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUu Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJp ZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLUBAIC00MTUsOCArNTE2LDEwIEBACi0gICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsK LSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIGxlbiBpbnZhcmlhbnQgaGVyZSBhbmQg YmVsb3cKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChvZmZzZXQp KTsKLSAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKLSsgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogdXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudAotICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91 bml0IGFzICRkc3RfdW5pdDsKLUBAIC00MzMsMTMgKzUzNiwyMSBAQAotICAgICAgICAgJG5hbWU6 aWRlbnQsCi0gICAgICAgICAkc3JjX3VuaXQ6dHksCi0gICAgICAgICAkZHN0X3VuaXQ6dHksCi0r ICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpF IHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwK LSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91 bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1E X1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX3NyY19hbGln bmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWly ZSB1bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBT SU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAkc3RyaWRlX25laXRo ZXJfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0 IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0 aW5nIDIqU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJGRvdWJs ZV9zdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1 bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2 YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIDIqU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3Rf dW5pdAotICAgICAgICAgJGRvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQKLSAgICAgKSA9 PiB7Ci0tICAgICAgICAjW2lubGluZShhbHdheXMpXQotKyAgICAgICAgLy8vIFNhZmV0eTogc3Jj L2RzdCBtdXN0IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2Yg dGhlaXIgdW5pdHMuCi0rICAgICAgICAvLy8KLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGlu dmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUks IHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKLSsgICAgICAgIC8vLyBn dWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0 aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAg ICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZSgKLSAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3Jj X3VuaXQsCi0gICAgICAgICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKLUBAIC00NTAsOCArNTYx LDEwIEBACi0gICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlzIG9ubHkgYnJva2VuIG91dCBvZiBh cyBhIGdvdG8gZm9yd2FyZCB3aXRob3V0Ci0gICAgICAgICAgICAgLy8gYWN0dWFsbHkgbG9vcGlu ZwotICAgICAgICAgICAgICdvdXRlcjogbG9vcCB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5n IGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAg aWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICAgICAgLy8gRmly c3QsIHByb2Nlc3Mgb25lIHVuYWxpZ25lZAotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiB0aGlzIGlzIHNhZmUgdG8gY2FsbCBzaW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkL3dy aXRlCi0gICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3Jj LCBkc3QpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayAnb3V0ZXI7Ci0gICAgICAg ICAgICAgICAgICAgICB9Ci1AQCAtNDYxLDM3ICs1NzQsNTQgQEAKLSAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZXJlIHdpbGwgYmUgZW5vdWdoIG1vcmUgdG8ganVzdGlmeSBtb3JlIGV4cGVuc2UK LSAgICAgICAgICAgICAgICAgICAgIC8vIGluIHRoZSBjYXNlIG9mIG5vbi1BU0NJSS4KLSAgICAg ICAgICAgICAgICAgICAgIC8vIFVzZSBhbGlnbmVkIHJlYWRzIGZvciB0aGUgc2FrZSBvZiBvbGQg bWljcm9hY2hpdGVjdHVyZXMuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNvcnJlY3RseSBjYWxjdWxhdGVzIHRoZSBudW1iZXIg b2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0byBiZSByZWFkIGJlZm9yZSB0aGUgcmVtYWluaW5nIGxp c3QgaXMgYWxpZ25lZC4KLSsgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgbGVzcyB0aGF0 IFNJTURfQUxJR05NRU5ULCB3aGljaCBpcyBhbHNvIFNJTURfU1RSSURFX1NJWkUgKGFzIGRvY3Vt ZW50ZWQpCi0gICAgICAgICAgICAgICAgICAgICBsZXQgdW50aWxfYWxpZ25tZW50ID0gKChTSU1E X0FMSUdOTUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgIC0gKChzcmMuYWRkKG9mZnNldCkg YXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKQotICAgICAgICAgICAgICAgICAgICAgICAgIC8gdW5p dF9zaXplOwotLSAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBhZGRpdGlvbiB3b24ndCBvdmVy ZmxvdywgYmVjYXVzZSBldmVuIGluIHRoZSAzMi1iaXQgUEFFIGNhc2UgdGhlCi0rICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgYWRkaXRpb24gd29uJ3Qgb3ZlcmZsb3csIGJlY2F1 c2UgZXZlbiBpbiB0aGUgMzItYml0IFBBRSBjYXNlIHRoZQotICAgICAgICAgICAgICAgICAgICAg Ly8gYWRkcmVzcyBzcGFjZSBob2xkcyBlbm91Z2ggY29kZSB0aGF0IHRoZSBzbGljZSBsZW5ndGgg Y2FuJ3QgYmUgdGhhdAotICAgICAgICAgICAgICAgICAgICAgLy8gY2xvc2UgdG8gYWRkcmVzcyBz cGFjZSBzaXplLgotICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IG5vdyBlcXVhbHMgU0lN RF9TVFJJREVfU0laRSwgaGVuY2UgdGltZXMgMyBiZWxvdy4KLSsgICAgICAgICAgICAgICAgICAg IC8vCi0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2Vl ZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RS SURFX1NJWkVgIGVsZW1lbnRzIHBsdXMgYHVudGlsX2FsaWdubWVudGAuCi0rICAgICAgICAgICAg ICAgICAgICAvLyBUaGUgZXh0cmEgU0lNRF9TVFJJREVfU0laRSBpbiB0aGUgY29uZGl0aW9uIGlz IGJlY2F1c2UgYG9mZnNldGAgaXMgYWxyZWFkeSBgU0lNRF9TVFJJREVfU0laRWAuCi0gICAgICAg ICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyAoU0lNRF9TVFJJREVfU0laRSAqIDMp IDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICE9 IDAgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2Fm ZSB0byBjYWxsIHNpbmNlIHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQvd3JpdGUgKGFuZCBtb3Jl KSwgYW5kIGRvbid0IGNhcmUgYWJvdXQgYWxpZ25tZW50Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFRoaXMgd2lsbCBjb3B5IG92ZXIgYnl0ZXMgdGhhdCBnZXQgZGVjb2RlZCB0d2lj ZSBzaW5jZSBpdCdzIG5vdCBpbmNyZW1lbnRpbmcgYG9mZnNldGAgYnkgU0lNRF9TVFJJREVfU0la RS4gVGhpcyBpcyBmaW5lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlk ZV9uZWl0aGVyX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB1bnRp bF9hbGlnbm1lbnQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogQXQgdGhpcyBwb2ludCB3ZSdyZSB2YWxpZCBmb3IgcmVhZGlu Zy93cml0aW5nIDIqU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cwotKyAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogTm93IGBvZmZzZXRgIGlzIGFsaWduZWQgZm9yIGBzcmNgCi0gICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvID0gbGVu IC0gKFNJTURfU1RSSURFX1NJWkUgKiAyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgd2hldGhlciBkc3QgaXMgYWxpZ25lZAotICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBkc3RfbWFza2VkID0gKGRzdC5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1E X0FMSUdOTUVOVF9NQVNLOwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQg PT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBib3RoIGFyZSBhbGlnbmVkLCB3ZSBjYW4g Y2FsbCB0aGUgYWxpZ25lZCBmdW5jdGlvbi4gV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGlu ZyBkb3VibGUgc3RyaWRlIGZyb20gdGhlIGluaXRpYWwgY29uZGl0aW9uCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIGxvb3AgYnJlYWsgY29uZGl0aW9uIGJlbG93 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShhZHZhbmNlKSA9 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRvdWJsZV9zdHJpZGVfYm90 aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBhZHZhbmNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIHNhZmV0eS11c2FibGUgaW52YXJp YW50IG9uIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSB0byByZXR1cm4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBndWFyYW50ZWVkIG5vbi1hc2NpaQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3Vu aXQsIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKiAy OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBv ZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlz IGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBu ZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBs ZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIG9uZSBtb3JlLCBhbmQg Y2FuIHN0aWxsIGFzc3VtZSBhbGlnbm1lbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwg ZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWsgJ291dGVyOwotQEAgLTUwMCwxOCArNjMwLDI1IEBACi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogb25seSBzcmMgaXMgYWxpZ25lZCBoZXJlLiBXZSdyZSB2YWxpZCBmb3Ig cmVhZGluZy93cml0aW5nIGRvdWJsZSBzdHJpZGUgZnJvbSB0aGUgaW5pdGlhbCBjb25kaXRpb24K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgbG9vcCBicmVhayBj b25kaXRpb24gYmVsb3cKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBT b21lKGFkdmFuY2UpID0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZG91 YmxlX3N0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gYWR2YW5jZTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNlcyBzYWZldHkt dXNhYmxlIGludmFyaWFudCBvbiBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGUgdG8g cmV0dXJuCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ3VhcmFudGVl ZCBub24tYXNjaWkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g U29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NU UklERV9TSVpFICogMjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1l YW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVu dHMgdG8gbXVuY2ggbmV4dCB0aW1lLgotKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGlu ZyBvbmUgbW9yZSwgYW5kIGNhbiBzdGlsbCBhc3N1bWUgYWxpZ25tZW50Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX3NyY19hbGlnbmVkKHNy Yy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWsgJ291dGVyOwotQEAgLTUyMiwxMSArNjU5LDEzIEBACi0gICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEF0 IG1vc3QgdHdvIGl0ZXJhdGlvbnMsIHNvIHVucm9sbAotICAgICAgICAgICAgICAgICAgICAgICAg IGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGUgY2hlY2sgYWJvdmUgZW5zdXJlcyB3ZSdyZSBhbGxv d2VkIHRvIHJlYWQvd3JpdGUgdGhpcywgYW5kIHdlIGRvbid0IHVzZSBhbGlnbm1lbnQKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5h ZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4g ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGUgY2hlY2sg YWJvdmUgZW5zdXJlcyB3ZSdyZSBhbGxvd2VkIHRvIHJlYWQvd3JpdGUgdGhpcywgYW5kIHdlIGRv bid0IHVzZSBhbGlnbm1lbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICEk c3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSkg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTUzOCw4ICs2NzcsMTAgQEAKLSAgICAgICAg ICAgICAgICAgYnJlYWsgJ291dGVyOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGls ZSBvZmZzZXQgPCBsZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHJlbGllcyBzdHJh aWdodGZvcndhcmRseSBvbiB0aGUgYGxlbmAgaW52YXJpYW50Ci0gICAgICAgICAgICAgICAgIGxl dCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIGlmIGNv ZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGlu dmFyaWFudCB1cGhlbGQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNv ZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg Kihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKLUBAIC01NTYsMzAg KzY5Nyw0NSBAQAotICAgICAgICAgJG5hbWU6aWRlbnQsCi0gICAgICAgICAkc3JjX3VuaXQ6dHks Ci0gICAgICAgICAkZHN0X3VuaXQ6dHksCi0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rp b24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRp bmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0Ci0gICAgICAgICAk c3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5j dGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFs aWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0 Ci0gICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQvYWxpZ25lZCBzcmMvZGVzdCB0 aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3Vu aXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfZHN0X2FsaWduZWQ6aWRlbnQsCi0rICAgICAg ICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50Ci0r Ci0gICAgICkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2RzdCBtdXN0IGJlIHZhbGlk IGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhlaXIgdW5pdHMuCi0gICAg ICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6 ICpjb25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxlbjogdXNpemUpIHsKLSAg ICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZl dHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGlu ZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMuCi0gICAgICAgICAgICAgaWYg U0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVz X3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgIC8vIFdo ZXRoZXIgZHN0IGlzIGFsaWduZWQKLSAgICAgICAgICAgICAgICAgbGV0IGRzdF9tYXNrZWQgPSAo ZHN0IGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0s7Ci0rICAgICAgICAgICAgICAgIC8v IFdoZXRoZXIgc3JjIGlzIGFsaWduZWQKLSAgICAgICAgICAgICAgICAgaWYgKChzcmMgYXMgdXNp emUpICYgU0lNRF9BTElHTk1FTlRfTUFTSykgPT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICBp ZiBkc3RfbWFza2VkID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEJvdGggd2VyZSBhbGlnbmVkLCB3 ZSBjYW4gdXNlIHRoZSBhbGlnbmVkIGZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQp KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJ WkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zm c2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0 ZXJhdGlvbiB3ZSdyZSB2YWxpZCBmb3IKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g cmVhZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMuCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyB3YXMgYWxpZ25lZCwgZHN0IHdh cyBub3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChz cmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJ WkVgLCB3aGljaCBtZWFucyBpbiB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUgdmFsaWQgZm9yCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBT SU1EX1NUUklERV9TSVpFIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtNTg4LDE2 ICs3NDQsMjIgQEAKLSAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg ICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHdhcyBhbGlnbmVk LCBkc3Qgd2FzIG5vdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX2RzdF9h bGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9T VFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiB3ZSdyZSB2YWxp ZCBmb3IKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZy93cml0aW5nIGF0 IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot ICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IE5laXRoZXIgd2VyZSBhbGlnbmVkCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFk ZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURf U1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhp cyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRo ZSBuZXh0IGl0ZXJhdGlvbiB3ZSdyZSB2YWxpZCBmb3IKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVu dHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19z dHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC02MDYsNiArNzY4LDcgQEAKLSAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4g ewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHJlbGllcyBzdHJhaWdodGZvcndhcmRseSBv biB0aGUgYGxlbmAgaW52YXJpYW50Ci0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAq KHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9 IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwot QEAgLTYyMCw1NiArNzgzLDc0IEBACi0gICAgICAgICAkbmFtZTppZGVudCwKLSAgICAgICAgICRz cmNfdW5pdDp0eSwKLSAgICAgICAgICRkc3RfdW5pdDp0eSwKLSsgICAgICAgIC8vIFNhZmV0eTog VGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxp ZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQK LSAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAotKyAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0 aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3Vu aXQvZHN0X3VuaXQKLSAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCi0rICAgICAg ICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVk IHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVf U0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVu dCwKLSsgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGln bmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJ REVfU0laRSBzcmNfdW5pdC9kc3RfdW5pdAotICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWdu ZWQ6aWRlbnQKLSAgICAgKSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3Qg YmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0 cy4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRu YW1lKHNyYzogKmNvbnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6 ZSkgewotICAgICAgICAgICAgIGxldCB1bml0X3NpemUgPSA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6 PCRzcmNfdW5pdD4oKTsKLSAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSsg ICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQg Zm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMu Ci0gICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4gewotKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBz cmNfdW5pdHMgdGhhdCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlzdCBp cyBhbGlnbmVkLgotKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJ5IGRlZmluaXRpb24gbGVz cyB0aGFuIFNJTURfU1RSSURFX1NJWkUuCi0gICAgICAgICAgICAgICAgIGxldCBtdXQgdW50aWxf YWxpZ25tZW50ID0gKChTSU1EX1NUUklERV9TSVpFCi0gICAgICAgICAgICAgICAgICAgICAtICgo c3JjIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spKQotICAgICAgICAgICAgICAgICAg ICAgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKQotICAgICAgICAgICAgICAgICAgICAgLyB1bml0X3Np emU7Ci0gICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAhPSAwIHsKLSsgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBhIHN0cmFpZ2h0Zm9yd2FyZCBjb3B5 LCBzaW5jZSB1bnRpbF9hbGlnbm1lbnQgaXMgPCBTSU1EX1NUUklERV9TSVpFIDwgbGVuLCB0aGlz IGlzIGluLWJvdW5kcwotICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0g KihzcmMuYWRkKG9mZnNldCkpIGFzICRkc3RfdW5pdDsKLSAgICAgICAgICAgICAgICAgICAgIG9m ZnNldCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7Ci0g ICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBoZXJlIG9mZnNl dCB3aWxsIGJlIGB1bnRpbF9hbGlnbm1lbnRgLCBpLmUuIGVub3VnaCB0byBhbGlnbiBgc3JjYC4K LSAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklE RV9TSVpFOwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2Vl ZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgMiAqIFNJTURfU1RS SURFX1NJWkVgIGVsZW1lbnRzLgotICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NU UklERV9TSVpFICogMiA8PSBsZW4gewotICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51 c19zdHJpZGVfdGltZXNfdHdvID0gbGVuX21pbnVzX3N0cmlkZSAtIFNJTURfU1RSSURFX1NJWkU7 Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGF0IHRoaXMgcG9pbnQgc3JjIGlzIGtu b3duIHRvIGJlIGFsaWduZWQgYXQgb2Zmc2V0LCBkc3QgaXMgbm90LgotICAgICAgICAgICAgICAg ICAgICAgaWYgKGRzdC5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNL ID09IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3AgewotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGNoZWNrZWQgYWxpZ25tZW50IG9mIGRzdCBhYm92 ZSwgd2UgY2FuIHVzZSB0aGUgYWxpZ25tZW50IGZ1bmN0aW9ucy4gV2UncmUgYWxsb3dlZCB0byBy ZWFkL3dyaXRlIDIqU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cywgd2hpY2ggd2UgZG8uCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zm c2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRz dHJpZGVfYm90aF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4g bGVuIC0gMiAqIFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0 IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1l LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3Ry aWRlX3RpbWVzX3R3byB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UgZW5z dXJlZCBhbGlnbm1lbnQgb2Ygc3JjIGFscmVhZHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0la RTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMu YWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9T SVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURF X1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZV90aW1lc190d28gewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlz IGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhcmUg dmFsaWQgdG8gbXVuY2ggU0lNRF9TVFJJREVfU0laRSBtb3JlIGVsZW1lbnRzLCB3aGljaCB3ZSBk bwotICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPCBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAg ICAgICAgICAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3Qu YWRkKG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURF X1NJWkU7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg d2hpbGUgb2Zmc2V0IDwgbGVuIHsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIGxl biBpbnZhcmlhbnQgaGVyZSBhbmQgYmVsb3cKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5p dCA9ICooc3JjLmFkZChvZmZzZXQpKTsKLSAgICAgICAgICAgICAgICAgLy8gT24geDg2XzY0LCB0 aGlzIGxvb3AgYXV0b3ZlY3Rvcml6ZXMgYnV0IGluIHRoZSBwYWNrCi0gICAgICAgICAgICAgICAg IC8vIGNhc2UgdGhlcmUgYXJlIGluc3RydWN0aW9ucyB3aG9zZSBwdXJwb3NlIGlzIHRvIG1ha2Ug c3VyZQotQEAgLTY5Myw3ICs4NzQsMTIgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQot IG1hY3JvX3J1bGVzISBhc2NpaV9zaW1kX3VuYWxpZ24gewotKyAgICAvLyBTYWZldHk6IHN0cmlk ZV9uZWl0aGVyX2FsaWduZWQgbXVzdCBiZSBhIGZ1bmN0aW9uIHRoYXQgcmVxdWlyZXMgc3JjL2Rl c3QgYmUgdmFsaWQgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgZm9yIFNJTURfU1RSSURFX1NJ WkUgZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kZXN0X3VuaXQKLSAgICAgKCRuYW1lOmlkZW50 LCAkc3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0eSwgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRl bnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQg Zm9yIHJlYWRzL3dyaXRlcyBvZiBsZW4gZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kc3RfdW5p dAotKyAgICAgICAgLy8vCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdp bGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBm aXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJlaW5nCi0rICAgICAgICAvLy8gZ3VhcmFudGVlZCB0 byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3 aGVyZSBpdCBpcyBmb3VuZAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1 YiB1bnNhZmUgZm4gJG5hbWUoCi0gICAgICAgICAgICAgc3JjOiAqY29uc3QgJHNyY191bml0LAot QEAgLTcwMSwyMSArODg3LDI2IEBACi0gICAgICAgICAgICAgbGVuOiB1c2l6ZSwKLSAgICAgICAg ICkgLT4gT3B0aW9uPCgkc3JjX3VuaXQsIHVzaXplKT4gewotICAgICAgICAgICAgIGxldCBtdXQg b2Zmc2V0ID0gMHVzaXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBz dWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVg IGVsZW1lbnRzLgotICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAg ICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9T SVpFOwotICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogV2Uga25vdyB3ZSdyZSB2YWxpZCBmb3IgYHN0cmlkZWAgcmVhZHMvd3JpdGVzLCBzbyB3 ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uLiBXZSBkb24ndCBuZWVkIGFsaWdubWVudC4KLSAgICAg ICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNl dCksIGRzdC5hZGQob2Zmc2V0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJ TURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGBvZmZzZXQg PiBsZW4gLSBzdHJpZGVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBzdHJp ZGVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KLSAgICAgICAgICAgICAgICAgICAgIGlm IG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0rICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogVXNlcyBsZW4gaW52YXJpYW50IGhlcmUgYW5kIGJlbG93Ci0gICAgICAg ICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7Ci0gICAgICAgICAg ICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsK LUBAIC03MjgsMjEgKzkxOSwyNyBAQAotIAotICNbYWxsb3codW51c2VkX21hY3JvcyldCi0gbWFj cm9fcnVsZXMhIGxhdGluMV9zaW1kX3VuYWxpZ24gewotKyAgICAvLyBTYWZldHk6IHN0cmlkZV9u ZWl0aGVyX2FsaWduZWQgbXVzdCBiZSBhIGZ1bmN0aW9uIHRoYXQgcmVxdWlyZXMgc3JjL2Rlc3Qg YmUgdmFsaWQgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgZm9yIFNJTURfU1RSSURFX1NJWkUg ZWxlbWVudHMgb2YgdHlwZSBzcmNfdW5pdC9kZXN0X3VuaXQKLSAgICAgKCRuYW1lOmlkZW50LCAk c3JjX3VuaXQ6dHksICRkc3RfdW5pdDp0eSwgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQp ID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFsaWQgZm9y IHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb2YgbGVuIGVsZW1lbnRzIG9mIHR5cGUgc3JjX3VuaXQv ZHN0X3VuaXQKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZl IGZuICRuYW1lKHNyYzogKmNvbnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVu OiB1c2l6ZSkgewotICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOwotKyAgICAg ICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3Ig cmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBzdHJpZGVgIGVsZW1lbnRzLgotICAgICAgICAgICAg IGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSAgICAgICAgICAgICAgICAgbGV0IGxlbl9t aW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAgICAgICBs b29wIHsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Uga25vdyB3ZSdyZSB2YWxp ZCBmb3IgYHN0cmlkZWAgcmVhZHMvd3JpdGVzLCBzbyB3ZSBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9u LiBXZSBkb24ndCBuZWVkIGFsaWdubWVudC4KLSAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVf bmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKLSAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotKyAgICAgICAgICAg ICAgICAgICAgLy8gVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gc3RyaWRlYCB3aGljaCBtZWFucyB3 ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgc3RyaWRlYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRp bWUuCi0gICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsK LSAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB3aGlsZSBv ZmZzZXQgPCBsZW4gewotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVzZXMgbGVuIGludmFy aWFudCBoZXJlCi0gICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zm c2V0KSk7Ci0gICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBh cyAkZHN0X3VuaXQ7Ci0gICAgICAgICAgICAgICAgIG9mZnNldCArPSAxOwotQEAgLTc1Myw3ICs5 NTAsMTEgQEAKLSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBhc2Np aV90b19hc2NpaV9zaW1kX3N0cmlkZSB7Ci0rICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0 IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGln bmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQp YCBmdW5jdGlvbnMpCi0gICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVu dCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBm b3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KLSsgICAgICAgIC8vLyB0aGUg JGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0 ZXMgb3IgcmVxdWlyZQotKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1 OHgxNi4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZu ICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTgpIC0+IGJvb2wgewotICAgICAgICAg ICAgIGxldCBzaW1kID0gJGxvYWQoc3JjKTsKLUBAIC03NjgsMTkgKzk2OSwzMiBAQAotIAotICNb YWxsb3codW51c2VkX21hY3JvcyldCi0gbWFjcm9fcnVsZXMhIGFzY2lpX3RvX2FzY2lpX3NpbWRf ZG91YmxlX3N0cmlkZSB7Ci0rICAgIC8vIFNhZmV0eTogc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3Ig MzIgYnl0ZXMgb2Ygd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWduZWQgKGNhbmRpZGF0ZXM6IGBz dG9yZSg4fDE2KV8oYWxpZ25lZHx1bmFsaWduZWQpYCkKLSAgICAgKCRuYW1lOmlkZW50LCAkc3Rv cmU6aWRlbnQpID0+IHsKLSsgICAgICAgIC8vLyBTYWZldHk6IHNyYyBtdXN0IGJlIHZhbGlkIGZv ciAzMiBieXRlcyBvZiBhbGlnbmVkIHU4eDE2IHJlYWQKLSsgICAgICAgIC8vLyBkc3QgbXVzdCBi ZSB2YWxpZCBmb3IgMzIgYnl0ZXMgb2YgdW5hbGlnbmVkIHdyaXRlIGFjY29yZGluZyB0bwotKyAg ICAgICAgLy8vIHRoZSAkc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHdy aXRlcyBvciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9y IHU4eDE2LgotKyAgICAgICAgLy8vCi0rICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlh bnQ6IFJldHVybnMgU29tZShpbmRleCkgaWYgdGhlIGVsZW1lbnQgYXQgYGluZGV4YCBpcyBpbnZh bGlkIEFTQ0lJCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIHVuc2Fm ZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0IHU4KSAtPiBPcHRpb248dXNpemU+ IHsKLSAgICAgICAgICAgICBsZXQgZmlyc3QgPSBsb2FkMTZfYWxpZ25lZChzcmMpOwotICAgICAg ICAgICAgIGxldCBzZWNvbmQgPSBsb2FkMTZfYWxpZ25lZChzcmMuYWRkKFNJTURfU1RSSURFX1NJ WkUpKTsKLSAgICAgICAgICAgICAkc3RvcmUoZHN0LCBmaXJzdCk7Ci0gICAgICAgICAgICAgaWYg dW5saWtlbHkoIXNpbWRfaXNfYXNjaWkoZmlyc3QgfCBzZWNvbmQpKSB7Ci0rICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogbWFza19hc2NpaSBwcm9kdWNlcyBhIG1hc2sgb2YgYWxsIHRoZSBoaWdo IGJpdHMuCi0gICAgICAgICAgICAgICAgIGxldCBtYXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJz dCk7Ci0gICAgICAgICAgICAgICAgIGlmIG1hc2tfZmlyc3QgIT0gMCB7Ci0rICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUg dGhlIG51bWJlciBvZiBhc2NpaSBieXRlcwotKyAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3Jl IHRoZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYwotKyAgICAg ICAgICAgICAgICAgICAgLy8gVE9ETyBTQUZFVFk6IFdoYXQgYWJvdXQgYmlnLWVuZGlhbiBzeXN0 ZW1zPwotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUobWFza19maXJzdC50cmFpbGlu Z196ZXJvcygpIGFzIHVzaXplKTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg ICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9TSVpFKSwgc2Vjb25kKTsKLSAgICAgICAgICAg ICAgICAgbGV0IG1hc2tfc2Vjb25kID0gbWFza19hc2NpaShzZWNvbmQpOwotKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhl IG51bWJlciBvZiBhc2NpaSBieXRlcwotKyAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZp cnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCi0gICAgICAgICAgICAg ICAgIHJldHVybiBTb21lKFNJTURfU1RSSURFX1NJWkUgKyBtYXNrX3NlY29uZC50cmFpbGluZ196 ZXJvcygpIGFzIHVzaXplKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgJHN0b3JlKGRz dC5hZGQoU0lNRF9TVFJJREVfU0laRSksIHNlY29uZCk7Ci1AQCAtNzkxLDcgKzEwMDUsMTEgQEAK LSAKLSAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBhc2NpaV90b19iYXNp Y19sYXRpbl9zaW1kX3N0cmlkZSB7Ci0rICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0IGJl IHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVk LiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQpYCBm dW5jdGlvbnMpCi0gICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVudCkg PT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3Ig MTYvMzIgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KLSsgICAgICAgIC8vLyB0aGUg JGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0 ZXMgb3IgcmVxdWlyZQotKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1 OHgxNi4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZu ICRuYW1lKHNyYzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTE2KSAtPiBib29sIHsKLSAgICAgICAg ICAgICBsZXQgc2ltZCA9ICRsb2FkKHNyYyk7Ci1AQCAtODA4LDEzICsxMDI2LDE4IEBACi0gCi0g I1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgYXNjaWlfdG9fYmFzaWNfbGF0 aW5fc2ltZF9kb3VibGVfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBzdG9yZSBtdXN0IGJlIHZh bGlkIGZvciAxNiBieXRlcyBvZiB3cml0ZSwgd2hpY2ggbWF5IGJlIHVuYWxpZ25lZAotICAgICAo JG5hbWU6aWRlbnQsICRzdG9yZTppZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3Jj IG11c3QgYmUgdmFsaWQgZm9yIDIqU0lNRF9TVFJJREVfU0laRSBieXRlcyBvZiBhbGlnbmVkIHJl YWRzLAotKyAgICAgICAgLy8vIGFsaWduZWQgdG8gZWl0aGVyIDE2eDggb3IgdTh4MTYuCi0rICAg ICAgICAvLy8gZHN0IG11c3QgYmUgdmFsaWQgZm9yIDIqU0lNRF9TVFJJREVfU0laRSBieXRlcyBv ZiBhbGlnbmVkIG9yIHVuYWxpZ25lZCByZWFkcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0K LSAgICAgICAgIHB1YiB1bnNhZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1 MTYpIC0+IE9wdGlvbjx1c2l6ZT4gewotICAgICAgICAgICAgIGxldCBmaXJzdCA9IGxvYWQxNl9h bGlnbmVkKHNyYyk7Ci0gICAgICAgICAgICAgbGV0IHNlY29uZCA9IGxvYWQxNl9hbGlnbmVkKHNy Yy5hZGQoU0lNRF9TVFJJREVfU0laRSkpOwotICAgICAgICAgICAgIGxldCAoYSwgYikgPSBzaW1k X3VucGFjayhmaXJzdCk7Ci0gICAgICAgICAgICAgJHN0b3JlKGRzdCwgYSk7Ci0rICAgICAgICAg ICAgLy8gU2FmZXR5OiBkaXZpZGUgYnkgMiBzaW5jZSBpdCdzIGEgdTE2IHBvaW50ZXIKLSAgICAg ICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9TSVpFIC8gMiksIGIpOwotICAgICAg ICAgICAgIGlmIHVubGlrZWx5KCFzaW1kX2lzX2FzY2lpKGZpcnN0IHwgc2Vjb25kKSkgewotICAg ICAgICAgICAgICAgICBsZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWkoZmlyc3QpOwotQEAgLTgz Nyw3ICsxMDYwLDExIEBACi0gCi0gI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KLSBtYWNyb19ydWxl cyEgdW5wYWNrX3NpbWRfc3RyaWRlIHsKLSsgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3Qg YmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWdu ZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClg IGZ1bmN0aW9ucykKLSAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50 KSA9PiB7Ci0rICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZv ciAxNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bwotKyAgICAgICAgLy8vIHRoZSAk bG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRl cyBvciByZXF1aXJlCi0rICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4 eDE2LgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiB1bnNhZmUgZm4g JG5hbWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1MTYpIHsKLSAgICAgICAgICAgICBsZXQg c2ltZCA9ICRsb2FkKHNyYyk7Ci1AQCAtODUwLDcgKzEwNzcsMTEgQEAKLSAKLSAjW2FsbG93KHVu dXNlZF9tYWNyb3MpXQotIG1hY3JvX3J1bGVzISBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0 cmlkZSB7Ci0rICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0IGJlIHZhbGlkIGZvciAxNiBi eXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkLiAoY2FuZGlkYXRlczog YChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQpYCBmdW5jdGlvbnMpCi0gICAg ICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVudCkgPT4gewotKyAgICAgICAg Ly8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMzIvMTYgYnl0ZXMgb2Yg cmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KLSsgICAgICAgIC8vLyB0aGUgJGxvYWQvJHN0b3JlIGZu LCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb3IgcmVxdWlyZQot KyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KLSAgICAgICAg ICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNv bnN0IHUxNiwgZHN0OiAqbXV0IHU4KSAtPiBib29sIHsKLSAgICAgICAgICAgICBsZXQgZmlyc3Qg PSAkbG9hZChzcmMpOwotQEAgLTg2Nyw3ICsxMDk4LDExIEBACi0gCi0gI1thbGxvdyh1bnVzZWRf bWFjcm9zKV0KLSBtYWNyb19ydWxlcyEgcGFja19zaW1kX3N0cmlkZSB7Ci0rICAgIC8vIFNhZmV0 eTogbG9hZC9zdG9yZSBtdXN0IGJlIHZhbGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3 aGljaCBtYXkgYmUgdW5hbGlnbmVkLiAoY2FuZGlkYXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8o dW5hbGlnbmVkfGFsaWduZWQpYCBmdW5jdGlvbnMpCi0gICAgICgkbmFtZTppZGVudCwgJGxvYWQ6 aWRlbnQsICRzdG9yZTppZGVudCkgPT4gewotKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBk c3QgbXVzdCBiZSB2YWxpZCBmb3IgMzIvMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcg dG8KLSsgICAgICAgIC8vLyB0aGUgJGxvYWQvJHN0b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9y IHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb3IgcmVxdWlyZQotKyAgICAgICAgLy8vIGFsaWdubWVu dCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0g ICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNyYzogKmNvbnN0IHUxNiwgZHN0OiAqbXV0IHU4 KSB7Ci0gICAgICAgICAgICAgbGV0IGZpcnN0ID0gJGxvYWQoc3JjKTsKLUBAIC04OTMsNiArMTEy OCw4IEBACi0gCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9 IDc7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0aWNrIHRv IHRoZSBsb2FkOF9hbGlnbmVkL2V0YyBmYW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25zaXN0ZW50 bHkgcHJvZHVjZQotKyAgICAgICAgLy8gbmVpdGhlcl91bmFsaWduZWQgdmFyaWFudHMgdXNpbmcg b25seSB1bmFsaWduZWQgaW5wdXRzLgotICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJp ZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWdu ZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKLSAKLSAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGlu X3NpbWRfc3RyaWRlIShhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVk LCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZThfdW5hbGlnbmVkKTsKLUBAIC05MDEsNiArMTEzOCw4 IEBACi0gICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0cmlkZSEoYmFzaWNfbGF0 aW5fdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9y ZTE2X3VuYWxpZ25lZCk7Ci0gICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlkZV9u ZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl91bmFsaWduZWQpOwotIAot KyAgICAgICAgLy8gU2FmZXR5IGZvciBjb252ZXJzaW9uIG1hY3JvczogV2UgdXNlIHRoZSB1bmFs aWduIG1hY3JvIHdpdGggdW5hbGlnbiBmdW5jdGlvbnMgYWJvdmUuIEFsbCBzdHJpZGUgZnVuY3Rp b25zIHdlcmUgcHJvZHVjZWQKLSsgICAgICAgIC8vIGJ5IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2 ZXJzYWxseSBtdW5jaCBhIHNpbmdsZSBTSU1EX1NUUklERV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRz LgotICAgICAgICAgYXNjaWlfc2ltZF91bmFsaWduIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBh c2NpaV90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3Np bWRfdW5hbGlnbiEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2lj X2xhdGluX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF91bmFs aWduIShiYXNpY19sYXRpbl90b19hc2NpaSwgdTE2LCB1OCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlf c3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Ci1AQCAtOTE5LDYgKzExNTgsOSBAQAotIAotICAgICAg ICAgcHViIGNvbnN0IFNJTURfQUxJR05NRU5UX01BU0s6IHVzaXplID0gMTU7Ci0gCi0rICAgICAg ICAvLyBTYWZldHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0aWNrIHRvIHRoZSBsb2FkOF9hbGln bmVkL2V0YyBmYW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25zaXN0ZW50bHkgbmFtZQotKyAgICAg ICAgLy8gYWxpZ25lZC91bmFsaWduZWQgZnVuY3Rpb25zIGFjY29yZGluZyB0byBzcmMvZHN0IGJl aW5nIGFsaWduZWQvdW5hbGlnbmVkCi0rCi0gICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0 cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgbG9hZDE2X2FsaWduZWQs IHN0b3JlMTZfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEo YXNjaWlfdG9fYXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmUx Nl91bmFsaWduZWQpOwotICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lp X3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwgc3RvcmUxNl9h bGlnbmVkKTsKLUBAIC05NDQsNiArMTE4Niw5IEBACi0gICAgICAgICBwYWNrX3NpbWRfc3RyaWRl IShwYWNrX3N0cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWdu ZWQpOwotICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfbmVpdGhlcl9hbGln bmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKLSAKLSsgICAgICAgIC8v IFNhZmV0eSBmb3IgY29udmVyc2lvbiBtYWNyb3M6IFdlIHVzZSB0aGUgY29ycmVjdCBwYXR0ZXJu IG9mIGJvdGgvc3JjL2RzdC9uZWl0aGVyIGhlcmUuIEFsbCBzdHJpZGUgZnVuY3Rpb25zIHdlcmUg cHJvZHVjZWQKLSsgICAgICAgIC8vIGJ5IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2ZXJzYWxseSBt dW5jaCBhIHNpbmdsZSBTSU1EX1NUUklERV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRzLgotKwotICAg ICAgICAgYXNjaWlfc2ltZF9jaGVja19hbGlnbiEoYXNjaWlfdG9fYXNjaWksIHU4LCB1OCwgYXNj aWlfdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX3Ny Y19hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQsIGFzY2lpX3RvX2Fz Y2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOwotICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19h bGlnbiEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2ljX2xhdGlu X3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9zcmNfYWxp Z25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2RzdF9hbGlnbmVkLCBhc2NpaV90b19i YXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3NpbWRf Y2hlY2tfYWxpZ24hKGJhc2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90 b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVf c3JjX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgYmFz aWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7Ci1AQCAtOTU4LDEyICsx MjAzLDE2IEBACi0gCi0gICAgICAgICBwdWIgY29uc3QgU0lNRF9TVFJJREVfU0laRTogdXNpemUg PSAxNjsKLSAKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogVGhpcyBzaG91 bGQgYmUgaWRlbnRpY2FsIHRvIFNJTURfU1RSSURFX1NJWkUgKHVzZWQgYnkgYXNjaWlfc2ltZF9j aGVja19hbGlnbl91bnJvbGxlZCkKLSAgICAgICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVDog dXNpemUgPSAxNjsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXpl ID0gMTY7Ci0gCi0gICAgICAgICBwdWIgY29uc3QgU0lNRF9BTElHTk1FTlRfTUFTSzogdXNpemUg PSAxNTsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBmb3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sg dG8gdGhlIGxvYWQ4X2FsaWduZWQvZXRjIGZhbWlseSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3Rl bnRseSBuYW1lCi0rICAgICAgICAvLyBhbGlnbmVkL3VuYWxpZ25lZCBmdW5jdGlvbnMgYWNjb3Jk aW5nIHRvIHNyYy9kc3QgYmVpbmcgYWxpZ25lZC91bmFsaWduZWQKLSsKLSAgICAgICAgIGFzY2lp X3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVf c3RyaWRlX2JvdGhfYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKLSAgICAgICAgIGFzY2lpX3Rv X2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3VibGVfc3Ry aWRlX3NyY19hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7Ci0gCi1AQCAtOTg5LDYgKzEyMzgs OSBAQAotICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfYm90aF9hbGlnbmVk LCBsb2FkOF9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOwotICAgICAgICAgcGFja19zaW1kX3N0 cmlkZSEocGFja19zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQ4X2FsaWduZWQsIHN0b3JlMTZfdW5h bGlnbmVkKTsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBmb3IgY29udmVyc2lvbiBtYWNyb3M6IFdl IHVzZSB0aGUgY29ycmVjdCBwYXR0ZXJuIG9mIGJvdGgvc3JjL2RzdC9uZWl0aGVyL2RvdWJsZV9i b3RoL2RvdWJsZV9zcmMgaGVyZS4gQWxsIHN0cmlkZSBmdW5jdGlvbnMgd2VyZSBwcm9kdWNlZAot KyAgICAgICAgLy8gYnkgc3RyaWRlIG1hY3JvcyB0aGF0IHVuaXZlcnNhbGx5IG11bmNoIGEgc2lu Z2xlIFNJTURfU1RSSURFX1NJWkUgd29ydGggb2YgZWxlbWVudHMuCi0rCi0gICAgICAgICBhc2Np aV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkIShhc2NpaV90b19hc2NpaSwgdTgsIHU4LCBhc2Np aV90b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zdHJpZGVfc3Jj X2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGFzY2lpX3Rv X2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3Np bWRfZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZCk7Ci0gICAgICAgICBhc2NpaV9zaW1kX2NoZWNr X2FsaWduX3Vucm9sbGVkIShhc2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9f YmFzaWNfbGF0aW5fc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3Ry aWRlX3NyY19hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGln bmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX2RvdWJsZV9zdHJpZGVfYm90aF9hbGlnbmVk LCBhc2NpaV90b19iYXNpY19sYXRpbl9zaW1kX2RvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQpOwot IAotQEAgLTk5OCwxNCArMTI1MCwyMSBAQAotICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdl dF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKSldIHsKLSAg ICAgICAgIC8vIEFsaWduZWQgQUxVIHdvcmQsIGxpdHRsZS1lbmRpYW4sIDY0LWJpdAotIAotKyAg ICAgICAgLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBj b25zdW1lZCBieQotKyAgICAgICAgLy8vIHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0 aGUgcG9pbnRlciB3aWR0aCwgYXMgaXQgY29uc3VtZXMgdHdvIHVzaXplcy4KLSsgICAgICAgIC8v LyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4K LSsgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBw cm9kdWNlZC9jb25zdW1lZCBieSB1bnBhY2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KLSAg ICAgICAgIHB1YiBjb25zdCBBTFVfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7Ci0gCi0gICAgICAg ICBwdWIgY29uc3QgTUFYX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OwotIAotKyAgICAgICAgLy8g U2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcwotICAg ICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlQ6IHVzaXplID0gODsKLSAKLSsgICAgICAgIC8v IFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9m IGEgcG9pbnRlciBub3QgYWxpZ25lZCB0byBBTFVfQUxJR05NRU5UCi0gICAgICAgICBwdWIgY29u c3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDc7Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5 OiBkc3QgbXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBz Ci0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHVucGFja19h bHUod29yZDogdXNpemUsIHNlY29uZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0g ICAgICAgICAgICAgbGV0IGZpcnN0ID0gKCgweDAwMDBfMDAwMF9GRjAwXzAwMDB1c2l6ZSAmIHdv cmQpIDw8IDI0KSB8Ci1AQCAtMTAyNCwxMiArMTI4MywxNCBAQAotICAgICAgICAgICAgICAgICAg ICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2 KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwX0ZGMDBfMDAwMF8wMDAwdXNp emUgJiBzZWNvbmRfd29yZCkgPj4gMjQpIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAzMik7Ci0rICAgICAg ICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRz dCA9IGZpcnN0OwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7Ci0gICAgICAg ICAgICAgKihkc3QuYWRkKDIpKSA9IHRoaXJkOwotICAgICAgICAgICAgICooZHN0LmFkZCgzKSkg PSBmb3VydGg7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBw b2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKLSAgICAgICAgICNb aW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXpl LCBzZWNvbmQ6IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1 c2l6ZSkgewotICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1 c2l6ZSAmIHNlY29uZCkgPDwgOCkgfAotQEAgLTEwNDgsMjAgKzEzMDksMjggQEAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGXzAwMDBfMDAwMHVzaXplICYgdGhp cmQpID4+IDE2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAw MF8wMEZGXzAwMDB1c2l6ZSAmIHRoaXJkKSA+PiA4KSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgdGhpcmQpOwotKyAgICAgICAg ICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpkc3Qg PSB3b3JkOwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKLSAgICAg ICAgIH0KLSAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIs IHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIikpXSB7Ci0gICAgICAgICAvLyBBbGlnbmVkIEFM VSB3b3JkLCBsaXR0bGUtZW5kaWFuLCAzMi1iaXQKLSAKLSsgICAgICAgIC8vLyBTYWZldHkgaW52 YXJpYW50OiB0aGlzIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMgY29uc3VtZWQgYnkKLSsgICAgICAg IC8vLyB1bnBhY2tfYWx1LiBUaGlzIHdpbGwgYmUgdHdpY2UgdGhlIHBvaW50ZXIgd2lkdGgsIGFz IGl0IGNvbnN1bWVzIHR3byB1c2l6ZXMuCi0rICAgICAgICAvLy8gVGhpcyBpcyBhbHNvIHRoZSBu dW1iZXIgb2YgYnl0ZXMgcHJvZHVjZWQgYnkgcGFja19hbHUuCi0rICAgICAgICAvLy8gVGhpcyBp cyBhbHNvIHRoZSBudW1iZXIgb2YgdTE2IGNvZGUgdW5pdHMgcHJvZHVjZWQvY29uc3VtZWQgYnkg dW5wYWNrX2FsdS9wYWNrX2FsdSByZXNwZWN0aXZlbHkuCi0gICAgICAgICBwdWIgY29uc3QgQUxV X1NUUklERV9TSVpFOiB1c2l6ZSA9IDg7Ci0gCi0gICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklE RV9TSVpFOiB1c2l6ZSA9IDg7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlz IGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FM SUdOTUVOVDogdXNpemUgPSA0OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhp cyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGlnbmVk IHRvIEFMVV9BTElHTk1FTlQKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6 IHVzaXplID0gMzsKLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZh bGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFs d2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vjb25k X3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAgICAgICAgICBsZXQgZmlyc3Qg PSAoKDB4MDAwMF9GRjAwdXNpemUgJiB3b3JkKSA8PCA4KSB8Ci1AQCAtMTA3MiwxMiArMTM0MSwx NCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgc2Vjb25k X3dvcmQpOwotICAgICAgICAgICAgIGxldCBmb3VydGggPSAoKDB4RkYwMF8wMDAwdXNpemUgJiBz ZWNvbmRfd29yZCkgPj4gOCkgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8w MDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTog Zm4gaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgICpkc3QgPSBmaXJzdDsKLSAgICAg ICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kOwotICAgICAgICAgICAgICooZHN0LmFkZCgy KSkgPSB0aGlyZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMykpID0gZm91cnRoOwotICAgICAg ICAgfQotIAotKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3Bh Y2UgZm9yIHdyaXRpbmcgdHdvIGB1c2l6ZWBzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQot ICAgICAgICAgdW5zYWZlIGZuIHBhY2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vjb25kOiB1c2l6ZSwg dGhpcmQ6IHVzaXplLCBmb3VydGg6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAgICAg ICAgICBsZXQgd29yZCA9ICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHNlY29uZCkgPDwgOCkgfAotQEAg LTEwODgsMjAgKzEzNTksMjggQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4 MDAwMF8wMEZGdXNpemUgJiBmb3VydGgpIDw8IDE2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYgdGhpcmQpID4+IDgpIHwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoMHgwMDAwXzAwRkZ1c2l6ZSAmIHRoaXJkKTsKLSsgICAgICAg ICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICAqZHN0 ID0gd29yZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7Ci0gICAg ICAgICB9Ci0gICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJiaWciLCB0 YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpKV0gewotICAgICAgICAgLy8gQWxpZ25lZCBBTFUg d29yZCwgYmlnLWVuZGlhbiwgNjQtYml0Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5IGludmFyaWFu dDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5Ci0rICAgICAgICAvLy8g dW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBhcyBpdCBj b25zdW1lcyB0d28gdXNpemVzLgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVy IG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgotKyAgICAgICAgLy8vIFRoaXMgaXMgYWxz byB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5IHVucGFj a19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgotICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJ REVfU0laRTogdXNpemUgPSAxNjsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJ WkU6IHVzaXplID0gMTY7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlz IHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCi0gICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdO TUVOVDogdXNpemUgPSA4OwotIAotKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBp cyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGlnbmVkIHRv IEFMVV9BTElHTk1FTlQKLSAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6IHVz aXplID0gNzsKLSAKLSsgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRvIHZhbGlk IHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCi0gICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vjb25kX3dv cmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAgICAgICAgICBsZXQgZmlyc3QgPSAo KDB4RkYwMF8wMDAwXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAotQEAgLTExMjAsMTIg KzEzOTksMTQgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZf MDAwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8IDE2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgKCgweDAwMDBfMDAwMF8wMDAwX0ZGMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCA4KSB8Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgc2Vj b25kX3dvcmQpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVy ZQotICAgICAgICAgICAgICpkc3QgPSBmaXJzdDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkp ID0gc2Vjb25kOwotICAgICAgICAgICAgICooZHN0LmFkZCgyKSkgPSB0aGlyZDsKLSAgICAgICAg ICAgICAqKGRzdC5hZGQoMykpID0gZm91cnRoOwotICAgICAgICAgfQotIAotKyAgICAgICAgLy8v IFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1 c2l6ZWBzCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHBh Y2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vjb25kOiB1c2l6ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6 IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICgoMHgw MEZGMDAwMF8wMDAwMDAwMHVzaXplICYgZmlyc3QpIDw8IDgpIHwKLUBAIC0xMTQ0LDIwICsxNDI1 LDI4IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMEZGXzAwMDAw MDAwdXNpemUgJiBmb3VydGgpID4+IDE2KSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKCgweDAwMDAwMDAwXzAwRkYwMDAwdXNpemUgJiBmb3VydGgpID4+IDgpIHwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAwMDAwMF8wMDAwMDBGRnVzaXplICYgIGZvdXJ0 aCk7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAg ICAgICAgICAgKmRzdCA9IHdvcmQ7Ci0gICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29u ZF93b3JkOwotICAgICAgICAgfQotICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRp YW4gPSAiYmlnIiwgdGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKSldIHsKLSAgICAgICAgIC8v IEFsaWduZWQgQUxVIHdvcmQsIGJpZy1lbmRpYW4sIDMyLWJpdAotIAotKyAgICAgICAgLy8vIFNh ZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQot KyAgICAgICAgLy8vIHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3 aWR0aCwgYXMgaXQgY29uc3VtZXMgdHdvIHVzaXplcy4KLSsgICAgICAgIC8vLyBUaGlzIGlzIGFs c28gdGhlIG51bWJlciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4KLSsgICAgICAgIC8v LyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25z dW1lZCBieSB1bnBhY2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KLSAgICAgICAgIHB1YiBj b25zdCBBTFVfU1RSSURFX1NJWkU6IHVzaXplID0gODsKLSAKLSAgICAgICAgIHB1YiBjb25zdCBN QVhfU1RSSURFX1NJWkU6IHVzaXplID0gODsKLSAKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlh bnQ6IHRoaXMgaXMgdGhlIHBvaW50ZXIgd2lkdGggaW4gYnl0ZXMKLSAgICAgICAgIHB1YiBjb25z dCBBTFVfQUxJR05NRU5UOiB1c2l6ZSA9IDQ7Ci0gCi0rICAgICAgICAvLyBTYWZldHkgaW52YXJp YW50OiB0aGlzIGlzIGEgbWFzayBmb3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90 IGFsaWduZWQgdG8gQUxVX0FMSUdOTUVOVAotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1F TlRfTUFTSzogdXNpemUgPSAzOwotIAotKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9p bnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgZm91ciBgdXNpemVgcwotICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXpl LCBzZWNvbmRfd29yZDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewotICAgICAgICAgICAgIGxl dCBmaXJzdCA9ICgoMHhGRjAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDgpIHwKLUBAIC0xMTY4LDEy ICsxNDU3LDE0IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6 ZSAmIHNlY29uZF93b3JkKSA+PiAxNik7Ci0gICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICgoMHgw MDAwX0ZGMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCA4KSB8Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmRfd29yZCk7Ci0rICAgICAgICAgICAgLy8g U2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgKmRzdCA9IGZpcnN0 OwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7Ci0gICAgICAgICAgICAgKihk c3QuYWRkKDIpKSA9IHRoaXJkOwotICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7 Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2 YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKLSAgICAgICAgICNbaW5saW5lKGFs d2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6 IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewot ICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkZfMDAwMHVzaXplICYgZmlyc3QpIDw8IDgp IHwKLUBAIC0xMTg0LDYgKzE0NzUsNyBAQAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMDAwXzAwRkZ1c2l6ZSAmIHRoaXJkKSA8PCAxNikgfAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIGZvdXJ0aCkgPj4gOCkgfAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgZm91cnRoKTsKLSsg ICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAg ICAqZHN0ID0gd29yZDsKLSAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kX3dvcmQ7 Ci0gICAgICAgICB9Ci1AQCAtMTE5NSw2ICsxNDg3LDggQEAKLSB9Ci0gCi0gY2ZnX2lmISB7Ci0r ICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB0aGlzIGNvdW50cyB0aGUgemVyb2VzIGZy b20gdGhlICJmaXJzdCBieXRlIiBvZiB1dGYtOCBkYXRhIHBhY2tlZCBpbnRvIGEgdXNpemUKLSsg ICAgLy8gd2l0aCB0aGUgdGFyZ2V0IGVuZGlhbm5lc3MKLSAgICAgaWYgI1tjZmcodGFyZ2V0X2Vu ZGlhbiA9ICJsaXR0bGUiKV0gewotICAgICAgICAgI1thbGxvdyhkZWFkX2NvZGUpXQotICAgICAg ICAgI1tpbmxpbmUoYWx3YXlzKV0KLUBAIC0xMjEyLDE5ICsxNTA2LDI0IEBACi0gCi0gY2ZnX2lm ISB7Ci0gICAgIGlmICNbY2ZnKGFsbChmZWF0dXJlID0gInNpbWQtYWNjZWwiLCB0YXJnZXRfZW5k aWFuID0gImxpdHRsZSIsIHRhcmdldF9hcmNoID0gImRpc2FibGVkIikpXSB7Ci0rICAgICAgICAv Ly8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFdpbGwgcmV0dXJuIHRoZSB2YWx1ZSBhbmQgcG9z aXRpb24gb2YgdGhlIGZpcnN0IG5vbi1BU0NJSSBieXRlIGluIHRoZSBzbGljZSBpbiBhIFNvbWUg aWYgZm91bmQuCi0rICAgICAgICAvLy8gSW4gb3RoZXIgd29yZHMsIHRoZSBmaXJzdCBlbGVtZW50 IG9mIHRoZSBTb21lIGlzIGFsd2F5cyBgPiAxMjdgCi0gICAgICAgICAjW2lubGluZShhbHdheXMp XQotICAgICAgICAgcHViIGZuIHZhbGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9u PCh1OCwgdXNpemUpPiB7Ci0gICAgICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFzX3B0cigpOwot ICAgICAgICAgICAgIGxldCBsZW4gPSBzbGljZS5sZW4oKTsKLSAgICAgICAgICAgICBsZXQgbXV0 IG9mZnNldCA9IDB1c2l6ZTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sg c3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgc3RyaWRl YCBlbGVtZW50cy4KLSAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0g ICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVf U0laRTsKLSAgICAgICAgICAgICAgICAgbG9vcCB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IHNyYyBhdCBvZmZzZXQgaXMgdmFsaWQgZm9yIGEgYFNJTURfU1RSSURFX1NJWkVgIHJl YWQKLSAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxp Z25lZChzcmMuYWRkKG9mZnNldCkpIH07Ci0gICAgICAgICAgICAgICAgICAgICBpZiAhc2ltZF9p c19hc2NpaShzaW1kKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJ REVfU0laRTsKLSsgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYG9mZnNldCA+IGxlbiAt IFNJTURfU1RSSURFX1NJWkVgIHdoaWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBT SU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCi0gICAgICAgICAg ICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgIH0KLUBAIC0xMjMzLDYgKzE1 MzIsNyBAQAotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0gICAgICAgICAgICAg ICAgIGxldCBjb2RlX3VuaXQgPSBzbGljZVtvZmZzZXRdOwotICAgICAgICAgICAgICAgICBpZiBj b2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBTYWZldHkt dXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQotICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtMTI0MCwxMyArMTU0MCwxNyBAQAotICAgICAgICAg ICAgIE5vbmUKLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbChmZWF0dXJlID0g InNpbWQtYWNjZWwiLCB0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikpXSB7Ci0rICAgICAgICAvLy8g U2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIFNvbWUoKSB3aGVuIGl0IGVuY291 bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBTb21lIGJlaW5n Ci0rICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24tQVNDSUkgKD4gMTI3KSwgYW5kIHRo ZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBpcyBmb3VuZAotICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiB2YWxpZGF0ZV9hc2NpaShzbGljZTogJlt1 OF0pIC0+IE9wdGlvbjwodTgsIHVzaXplKT4gewotICAgICAgICAgICAgIGxldCBzcmMgPSBzbGlj ZS5hc19wdHIoKTsKLSAgICAgICAgICAgICBsZXQgbGVuID0gc2xpY2UubGVuKCk7Ci0gICAgICAg ICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBp ZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIGF0IGxlYXN0IGBz dHJpZGVgIGVsZW1lbnRzLgotICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVu IHsKLSAgICAgICAgICAgICAgICAgLy8gRmlyc3QsIHByb2Nlc3Mgb25lIHVuYWxpZ25lZCB2ZWN0 b3IKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgaXMgdmFsaWQgZm9yIGEgYFNJTURf U1RSSURFX1NJWkVgIHJlYWQKLSAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBs b2FkMTZfdW5hbGlnbmVkKHNyYykgfTsKLSAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNr X2FzY2lpKHNpbWQpOwotICAgICAgICAgICAgICAgICBpZiBtYXNrICE9IDAgewotQEAgLTEyNTUs MTggKzE1NTksMjYgQEAKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChub25fYXNj aWksIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIG9mZnNl dCA9IFNJTURfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogTm93IHRo YXQgb2Zmc2V0IGhhcyBjaGFuZ2VkIHdlIGRvbid0IHlldCBrbm93IGhvdyBtdWNoIGl0IGlzIHZh bGlkIGZvcgotIAotICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIG5vdyBzZWVuIDE2IEFTQ0lJ IGJ5dGVzLiBMZXQncyBndWVzcyB0aGF0Ci0gICAgICAgICAgICAgICAgIC8vIHRoZXJlIHdpbGwg YmUgZW5vdWdoIG1vcmUgdG8ganVzdGlmeSBtb3JlIGV4cGVuc2UKLSAgICAgICAgICAgICAgICAg Ly8gaW4gdGhlIGNhc2Ugb2Ygbm9uLUFTQ0lJLgotICAgICAgICAgICAgICAgICAvLyBVc2UgYWxp Z25lZCByZWFkcyBmb3IgdGhlIHNha2Ugb2Ygb2xkIG1pY3JvYWNoaXRlY3R1cmVzLgotKyAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgY29ycmVjdGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJl ciBvZiBzcmNfdW5pdHMgdGhhdCBuZWVkIHRvIGJlIHJlYWQgYmVmb3JlIHRoZSByZW1haW5pbmcg bGlzdCBpcyBhbGlnbmVkLgotKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGJ5IGRlZmluaXRp b24gbGVzcyB0aGFuIFNJTURfQUxJR05NRU5ULCB3aGljaCBpcyBkZWZpbmVkIHRvIGJlIGVxdWFs IHRvIFNJTURfU1RSSURFX1NJWkUuCi0gICAgICAgICAgICAgICAgIGxldCB1bnRpbF9hbGlnbm1l bnQgPSB1bnNhZmUgeyAoU0lNRF9BTElHTk1FTlQgLSAoKHNyYy5hZGQob2Zmc2V0KSBhcyB1c2l6 ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLIH07Ci0gICAg ICAgICAgICAgICAgIC8vIFRoaXMgYWRkaXRpb24gd29uJ3Qgb3ZlcmZsb3csIGJlY2F1c2UgZXZl biBpbiB0aGUgMzItYml0IFBBRSBjYXNlIHRoZQotICAgICAgICAgICAgICAgICAvLyBhZGRyZXNz IHNwYWNlIGhvbGRzIGVub3VnaCBjb2RlIHRoYXQgdGhlIHNsaWNlIGxlbmd0aCBjYW4ndCBiZSB0 aGF0Ci0gICAgICAgICAgICAgICAgIC8vIGNsb3NlIHRvIGFkZHJlc3Mgc3BhY2Ugc2l6ZS4KLSAg ICAgICAgICAgICAgICAgLy8gb2Zmc2V0IG5vdyBlcXVhbHMgU0lNRF9TVFJJREVfU0laRSwgaGVu Y2UgdGltZXMgMyBiZWxvdy4KLSsgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5n IGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgcGx1cyBgdW50aWxfYWxp Z25tZW50YC4KLSsgICAgICAgICAgICAgICAgLy8gVGhlIGV4dHJhIFNJTURfU1RSSURFX1NJWkUg aW4gdGhlIGNvbmRpdGlvbiBpcyBiZWNhdXNlIGBvZmZzZXRgIGlzIGFscmVhZHkgYFNJTURfU1RS SURFX1NJWkVgLgotICAgICAgICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyAoU0lNRF9T VFJJREVfU0laRSAqIDMpIDw9IGxlbiB7Ci0gICAgICAgICAgICAgICAgICAgICBpZiB1bnRpbF9h bGlnbm1lbnQgIT0gMCB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlz IGlzIHNhZmUgdG8gY2FsbCBzaW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkIChhbmQgbW9y ZSksIGFuZCBkb24ndCBjYXJlIGFib3V0IGFsaWdubWVudAotKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoaXMgd2lsbCBjb3B5IG92ZXIgYnl0ZXMgdGhhdCBnZXQgZGVjb2RlZCB0d2ljZSBz aW5jZSBpdCdzIG5vdCBpbmNyZW1lbnRpbmcgYG9mZnNldGAgYnkgU0lNRF9TVFJJREVfU0laRS4g VGhpcyBpcyBmaW5lLgotICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kID0gdW5zYWZl IHsgbG9hZDE2X3VuYWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQpOwotICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG1hc2sgIT0gMCB7Ci1AQCAtMTI3Niw1MyArMTU4OCw3OCBAQAotICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdW50 aWxfYWxpZ25tZW50OwotICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBBdCB0aGlzIHBvaW50IHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nIDIqU0lN RF9TVFJJREVfU0laRSBlbGVtZW50cwotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBO b3cgYG9mZnNldGAgaXMgYWxpZ25lZCBmb3IgYHNyY2AKLSAgICAgICAgICAgICAgICAgICAgIGxl dCBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byA9IGxlbiAtIChTSU1EX1NUUklERV9TSVpFICog Mik7Ci0gICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFdlIHdlcmUgdmFsaWQgZm9yIHRoaXMgcmVhZCwgYW5kIHdlcmUgYWxpZ25l ZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3QgPSB1bnNhZmUgeyBsb2FkMTZf YWxpZ25lZChzcmMuYWRkKG9mZnNldCkpIH07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHNlY29uZCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0ICsgU0lNRF9T VFJJREVfU0laRSkpIH07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYXNj aWkoZmlyc3QgfCBzZWNvbmQpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBtYXNrX2FzY2lpIHByb2R1Y2VzIGEgbWFzayBvZiBhbGwgdGhlIGhpZ2ggYml0cy4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2tfZmlyc3QgPSBtYXNrX2FzY2lpKGZp cnN0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFza19maXJzdCAhPSAwIHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogb24gbGl0dGxlIGVu ZGlhbiBzeXN0ZW1zIHRoaXMgd2lsbCBiZSB0aGUgbnVtYmVyIG9mIGFzY2lpIGJ5dGVzCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2Np aSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUT0RPIFNBRkVUWTogV2hhdCBhYm91dCBiaWctZW5kaWFuIHN5c3RlbXM/Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbWFza19maXJzdC50cmFp bGluZ196ZXJvcygpIGFzIHVzaXplOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2tfc2Vjb25kID0g bWFza19hc2NpaShzZWNvbmQpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIg b2YgYXNjaWkgYnl0ZXMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9y ZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUuIHZhbGlkIGZvciBpbmRleGluZyBzcmMKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFICsg bWFza19zZWNvbmQudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdl IGtub3cgdGhpcyBpcyBub24tQVNDSUksIGFuZCBjYW4gdXBob2xkIHRoZSBzYWZldHktdXNhYmxl IGludmFyaWFudCBoZXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub25fYXNj aWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQpIH07Ci0rCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOwotICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9T VFJJREVfU0laRSAqIDI7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlz IGlzIGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2Ug YWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBt dW5jaCBuZXh0IHRpbWUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3N0cmlkZV90aW1lc190d28gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3VjY2VlZHMg d2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgCi0gICAg ICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9IGxlbiB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSB3ZXJlIHZhbGlkIGZvciB0aGlz IHJlYWQsIGFuZCB3ZXJlIGFsaWduZWQuCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz aW1kID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbWFza19hc2NpaSBwcm9kdWNlcyBhIG1hc2sg b2YgYWxsIHRoZSBoaWdoIGJpdHMuCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNr ID0gbWFza19hc2NpaShzaW1kKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXNrICE9 IDAgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBl bmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwg aS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQp IH07Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Uga25vdyB0aGlz IGlzIG5vbi1BU0NJSSwgYW5kIGNhbiB1cGhvbGQgdGhlIHNhZmV0eS11c2FibGUgaW52YXJpYW50 IGhlcmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2Np aSwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg ICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiB0aGlzIGlzIHRoZSB1bmFsaWduZWQgYnJhbmNoCi0gICAgICAgICAgICAgICAgICAg ICAvLyBBdCBtb3N0IHR3byBpdGVyYXRpb25zLCBzbyB1bnJvbGwKLSsgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVh ZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKLSAgICAgICAgICAgICAgICAgICAgIGlm IG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQgYnV0IG11c3QgdXNlIGFu IHVuYWxpZ25lZCByZWFkCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNh ZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgaWYgbWFzayAhPSAwIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg dXBoZWxkIGhlcmUgKHNhbWUgYXMgYWJvdmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOwotICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0la RTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sgc3Vj Y2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVg Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8 PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZh bGlkIGZvciB0aGlzIHJlYWQgYnV0IG11c3QgdXNlIGFuIHVuYWxpZ25lZCByZWFkCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWdu ZWQoc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBtYXNrICE9IDAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9 IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAqc3JjLmFkZChvZmZzZXQpIH07Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFu dCB1cGhlbGQgaGVyZSAoc2FtZSBhcyBhYm92ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBT SU1EX1NUUklERV9TSVpFOwotQEAgLTEzMzEsOCArMTY2OCwxMCBAQAotICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Ci0r ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRo ZSBgbGVuYCBpbnZhcmlhbnQKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9IHVuc2Fm ZSB7ICooc3JjLmFkZChvZmZzZXQpKSB9OwotICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQg PiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQg dXBoZWxkIGhlcmUKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQs IG9mZnNldCkpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIG9mZnNldCAr PSAxOwotQEAgLTEzNDAsMzEgKzE2NzksNDAgQEAKLSAgICAgICAgICAgICBOb25lCi0gICAgICAg ICB9Ci0gICAgIH0gZWxzZSB7Ci0rICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDog cmV0dXJucyBieXRlIGluZGV4IG9mIGZpcnN0IG5vbi1hc2NpaSBieXRlCi0gICAgICAgICAjW2lu bGluZShhbHdheXMpXQotICAgICAgICAgZm4gZmluZF9ub25fYXNjaWkod29yZDogdXNpemUsIHNl Y29uZF93b3JkOiB1c2l6ZSkgLT4gT3B0aW9uPHVzaXplPiB7Ci0gICAgICAgICAgICAgbGV0IHdv cmRfbWFza2VkID0gd29yZCAmIEFTQ0lJX01BU0s7Ci0gICAgICAgICAgICAgbGV0IHNlY29uZF9t YXNrZWQgPSBzZWNvbmRfd29yZCAmIEFTQ0lJX01BU0s7Ci0gICAgICAgICAgICAgaWYgKHdvcmRf bWFza2VkIHwgc2Vjb25kX21hc2tlZCkgPT0gMCB7Ci0rICAgICAgICAgICAgICAgIC8vIEJvdGgg YXJlIGFzY2lpLCBpbnZhcmlhbnQgdXBoZWxkCi0gICAgICAgICAgICAgICAgIHJldHVybiBOb25l OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBpZiB3b3JkX21hc2tlZCAhPSAwIHsKLSAg ICAgICAgICAgICAgICAgbGV0IHplcm9zID0gY291bnRfemVyb3Mod29yZF9tYXNrZWQpOwotLSAg ICAgICAgICAgICAgICAvLyBgemVyb3NgIG5vdyBjb250YWlucyA3IChmb3IgdGhlIHNldmVuIGJp dHMgb2Ygbm9uLUFTQ0lJKQotKyAgICAgICAgICAgICAgICAvLyBgemVyb3NgIG5vdyBjb250YWlu cyAwIHRvIDcgKGZvciB0aGUgc2V2ZW4gYml0cyBvZiBtYXNrZWQgQVNDSUkgaW4gbGl0dGxlIGVu ZGlhbiwKLSsgICAgICAgICAgICAgICAgLy8gb3IgdXAgdG8gNyBiaXRzIG9mIG5vbi1BU0NJSSBp biBiaWcgZW5kaWFuIGlmIHRoZSBmaXJzdCBieXRlIGlzIG5vbi1BU0NJSSkKLSAgICAgICAgICAg ICAgICAgLy8gcGx1cyA4IHRpbWVzIHRoZSBudW1iZXIgb2YgQVNDSUkgaW4gdGV4dCBvcmRlciBi ZWZvcmUgdGhlCi0gICAgICAgICAgICAgICAgIC8vIG5vbi1BU0NJSSBieXRlIGluIHRoZSBsaXR0 bGUtZW5kaWFuIGNhc2Ugb3IgOCB0aW1lcyB0aGUgbnVtYmVyIG9mIEFTQ0lJIGluCi0gICAgICAg ICAgICAgICAgIC8vIHRleHQgb3JkZXIgYmVmb3JlIHRoZSBub24tQVNDSUkgYnl0ZSBpbiB0aGUg YmlnLWVuZGlhbiBjYXNlLgotICAgICAgICAgICAgICAgICBsZXQgbnVtX2FzY2lpID0gKHplcm9z ID4+IDMpIGFzIHVzaXplOwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFy aWFudCB1cGhlbGQgaGVyZQotICAgICAgICAgICAgICAgICByZXR1cm4gU29tZShudW1fYXNjaWkp OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBsZXQgemVyb3MgPSBjb3VudF96ZXJvcyhz ZWNvbmRfbWFza2VkKTsKLS0gICAgICAgICAgICAvLyBgemVyb3NgIG5vdyBjb250YWlucyA3IChm b3IgdGhlIHNldmVuIGJpdHMgb2Ygbm9uLUFTQ0lJKQotKyAgICAgICAgICAgIC8vIGB6ZXJvc2Ag bm93IGNvbnRhaW5zIDAgdG8gNyAoZm9yIHRoZSBzZXZlbiBiaXRzIG9mIG1hc2tlZCBBU0NJSSBp biBsaXR0bGUgZW5kaWFuLAotKyAgICAgICAgICAgIC8vIG9yIHVwIHRvIDcgYml0cyBvZiBub24t QVNDSUkgaW4gYmlnIGVuZGlhbiBpZiB0aGUgZmlyc3QgYnl0ZSBpcyBub24tQVNDSUkpCi0gICAg ICAgICAgICAgLy8gcGx1cyA4IHRpbWVzIHRoZSBudW1iZXIgb2YgQVNDSUkgaW4gdGV4dCBvcmRl ciBiZWZvcmUgdGhlCi0gICAgICAgICAgICAgLy8gbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGxpdHRs ZS1lbmRpYW4gY2FzZSBvciA4IHRpbWVzIHRoZSBudW1iZXIgb2YgQVNDSUkgaW4KLSAgICAgICAg ICAgICAvLyB0ZXh0IG9yZGVyIGJlZm9yZSB0aGUgbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGJpZy1l bmRpYW4gY2FzZS4KLSAgICAgICAgICAgICBsZXQgbnVtX2FzY2lpID0gKHplcm9zID4+IDMpIGFz IHVzaXplOwotKyAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBo ZXJlCi0gICAgICAgICAgICAgU29tZShBTFVfQUxJR05NRU5UICsgbnVtX2FzY2lpKQotICAgICAg ICAgfQotIAotKyAgICAgICAgLy8vIFNhZmV0eTogYHNyY2AgbXVzdCBiZSB2YWxpZCBmb3IgdGhl IHJlYWRzIG9mIHR3byBgdXNpemVgcwotKyAgICAgICAgLy8vCi0rICAgICAgICAvLy8gU2FmZXR5 LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJuIGJ5dGUgaW5kZXggb2YgZmlyc3Qgbm9uLWFz Y2lpIGJ5dGUKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4g dmFsaWRhdGVfYXNjaWlfc3RyaWRlKHNyYzogKmNvbnN0IHVzaXplKSAtPiBPcHRpb248dXNpemU+ IHsKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICpzcmM7Ci1AQCAtMTM3Miw2ICsxNzIwLDggQEAK LSAgICAgICAgICAgICBmaW5kX25vbl9hc2NpaSh3b3JkLCBzZWNvbmRfd29yZCkKLSAgICAgICAg IH0KLSAKLSsgICAgICAgIC8vLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogd2lsbCByZXR1cm4g U29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVNDSUksIHdpdGggdGhlIGZpcnN0IGVsZW1l bnQgaW4gdGhlIFNvbWUgYmVpbmcKLSsgICAgICAgIC8vLyBndWFyYW50ZWVkIHRvIGJlIG5vbi1B U0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWluZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlz IGZvdW5kCi0gICAgICAgICAjW2NmZ19hdHRyKGZlYXR1cmUgPSAiY2FyZ28tY2xpcHB5IiwgYWxs b3coY2FzdF9wdHJfYWxpZ25tZW50KSldCi0gICAgICAgICAjW2lubGluZShhbHdheXMpXQotICAg ICAgICAgcHViIGZuIHZhbGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9uPCh1OCwg dXNpemUpPiB7Ci1AQCAtMTM3OSwyMyArMTcyOSwzMCBAQAotICAgICAgICAgICAgIGxldCBsZW4g PSBzbGljZS5sZW4oKTsKLSAgICAgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKLSAg ICAgICAgICAgICBsZXQgbXV0IHVudGlsX2FsaWdubWVudCA9IChBTFVfQUxJR05NRU5UIC0gKChz cmMgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLKSkgJiBBTFVfQUxJR05NRU5UX01BU0s7 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBJZiB0aGlzIGNoZWNrIGZhaWxzIHdlJ3JlIHZhbGlk IHRvIHJlYWQgYHVudGlsX2FsaWdubWVudCArIEFMVV9TVFJJREVfU0laRWAgZWxlbWVudHMKLSAg ICAgICAgICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURFX1NJWkUgPD0gbGVuIHsK LSAgICAgICAgICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAgewotICAgICAgICAg ICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07Ci0gICAgICAgICAgICAg ICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcgewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eS11c2FibGUgaW52YWlyYW50IHVwaGVsZCBoZXJlCi0gICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKLSAgICAgICAgICAgICAg ICAgICAgIHVudGlsX2FsaWdubWVudCAtPSAxOwotICAgICAgICAgICAgICAgICB9Ci0rICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogQXQgdGhpcyBwb2ludCB3ZSBoYXZlIHJlYWQgdW50aWxfYWxp Z25tZW50IGVsZW1lbnRzIGFuZAotKyAgICAgICAgICAgICAgICAvLyBhcmUgdmFsaWQgZm9yIGBB TFVfU1RSSURFX1NJWkVgIG1vcmUuCi0gICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3Ry aWRlID0gbGVuIC0gQUxVX1NUUklERV9TSVpFOwotICAgICAgICAgICAgICAgICBsb29wIHsKLSsg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2Ugd2VyZSB2YWxpZCBmb3IgdGhpcyByZWFk Ci0gICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gdW5zYWZlIHsgc3JjLmFkZChvZmZzZXQp IGFzICpjb25zdCB1c2l6ZSB9OwotICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUobnVt X2FzY2lpKSA9IHVuc2FmZSB7IHZhbGlkYXRlX2FzY2lpX3N0cmlkZShwdHIpIH0gewotICAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBudW1fYXNjaWk7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhaXJhbnQgdXBoZWxkIGhlcmUgdXNpbmcgdGhl IGludmFyaWFudCBmcm9tIHZhbGlkYXRlX2FzY2lpX3N0cmlkZSgpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIFNvbWUoKHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpKSB9LCBvZmZz ZXQpKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBBTFVfU1RSSURFX1NJWkU7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRo aXMgaXMgYG9mZnNldCA+IEFMVV9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhh dmUgYXQgbGVhc3QgYDIgKiBBTFVfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQg dGltZS4KLSAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUg ewotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAg fQotQEAgLTE0MDQsNiArMTc2MSw3IEBACi0gICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVu IHsKLSAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07Ci0gICAg ICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Ci0rICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHktdXNhYmxlIGludmFpcmFudCB1cGhlbGQgaGVyZQotICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7Ci0gICAgICAgICAgICAgICAgIH0K LSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7Ci1AQCAtMTQyOCwzNiArMTc4Niw0NyBAQAot IAotICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAzOwotICAg ICB9IGVsc2UgewotKyAgICAgICAgLy8gU2FmZXR5OiBzcmMgcG9pbnRzIHRvIHR3byB2YWxpZCBg dXNpemVgcywgZHN0IHBvaW50cyB0byBmb3VyIHZhbGlkIGB1c2l6ZWBzCi0gICAgICAgICAjW2lu bGluZShhbHdheXMpXQotICAgICAgICAgdW5zYWZlIGZuIHVucGFja19sYXRpbjFfc3RyaWRlX2Fs dShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Ci0rICAgICAgICAgICAgLy8g U2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICBsZXQg d29yZCA9ICpzcmM7Ci0gICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEp KTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBhc3NlZCBk b3duCi0gICAgICAgICAgICAgdW5wYWNrX2FsdSh3b3JkLCBzZWNvbmRfd29yZCwgZHN0KTsKLSAg ICAgICAgIH0KLSAKLSsgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50cyB0byBmb3VyIHZhbGlk IGB1c2l6ZWBzLCBkc3QgcG9pbnRzIHRvIHR3byB2YWxpZCBgdXNpemVgcwotICAgICAgICAgI1tp bmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2FmZSBmbiBwYWNrX2xhdGluMV9zdHJpZGVfYWx1 KHNyYzogKmNvbnN0IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKLSsgICAgICAgICAgICAvLyBT YWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAgIGxldCBm aXJzdCA9ICpzcmM7Ci0gICAgICAgICAgICAgbGV0IHNlY29uZCA9ICooc3JjLmFkZCgxKSk7Ci0g ICAgICAgICAgICAgbGV0IHRoaXJkID0gKihzcmMuYWRkKDIpKTsKLSAgICAgICAgICAgICBsZXQg Zm91cnRoID0gKihzcmMuYWRkKDMpKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZl dHkgaW52YXJpYW50IHBhc3NlZCBkb3duCi0gICAgICAgICAgICAgcGFja19hbHUoZmlyc3QsIHNl Y29uZCwgdGhpcmQsIGZvdXJ0aCwgZHN0KTsKLSAgICAgICAgIH0KLSAKLSsgICAgICAgIC8vIFNh ZmV0eTogc3JjIHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gZm91 ciB2YWxpZCBgdXNpemVgcwotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVu c2FmZSBmbiBhc2NpaV90b19iYXNpY19sYXRpbl9zdHJpZGVfYWx1KHNyYzogKmNvbnN0IHVzaXpl LCBkc3Q6ICptdXQgdXNpemUpIC0+IGJvb2wgewotKyAgICAgICAgICAgIC8vIFNhZmV0eTogc3Jj IHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCi0gICAgICAgICAgICAgbGV0IHdvcmQgPSAqc3Jj OwotICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICooc3JjLmFkZCgxKSk7Ci0gICAgICAg ICAgICAgLy8gQ2hlY2sgaWYgdGhlIHdvcmRzIGNvbnRhaW5zIG5vbi1BU0NJSQotICAgICAgICAg ICAgIGlmICh3b3JkICYgQVNDSUlfTUFTSykgfCAoc2Vjb25kX3dvcmQgJiBBU0NJSV9NQVNLKSAh PSAwIHsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBhc3NlZCBkb3duCi0g ICAgICAgICAgICAgdW5wYWNrX2FsdSh3b3JkLCBzZWNvbmRfd29yZCwgZHN0KTsKLSAgICAgICAg ICAgICB0cnVlCi0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLyBTYWZldHk6IHNyYyBwb2ludHMg Zm91ciB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXplYHMKLSAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICB1bnNhZmUgZm4gYmFzaWNfbGF0aW5f dG9fYXNjaWlfc3RyaWRlX2FsdShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAt PiBib29sIHsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVz ZWQgaGVyZQotICAgICAgICAgICAgIGxldCBmaXJzdCA9ICpzcmM7Ci0gICAgICAgICAgICAgbGV0 IHNlY29uZCA9ICooc3JjLmFkZCgxKSk7Ci0gICAgICAgICAgICAgbGV0IHRoaXJkID0gKihzcmMu YWRkKDIpKTsKLUBAIC0xNDY1LDE2ICsxODM0LDIyIEBACi0gICAgICAgICAgICAgaWYgKGZpcnN0 ICYgQkFTSUNfTEFUSU5fTUFTSykgfCAoc2Vjb25kICYgQkFTSUNfTEFUSU5fTUFTSykgfCAodGhp cmQgJiBCQVNJQ19MQVRJTl9NQVNLKSB8IChmb3VydGggJiBCQVNJQ19MQVRJTl9NQVNLKSAhPSAw IHsKLSAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICAvLyBTYWZldHk6IGRzdCBzYWZldHkgaW52YXJpYW50IHBhc3NlZCBkb3duCi0gICAg ICAgICAgICAgcGFja19hbHUoZmlyc3QsIHNlY29uZCwgdGhpcmQsIGZvdXJ0aCwgZHN0KTsKLSAg ICAgICAgICAgICB0cnVlCi0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLyBTYWZldHk6IHNyYywg ZHN0IGJvdGggcG9pbnQgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzIGVhY2gKLSsgICAgICAgIC8vIFNh ZmV0eS11c2FibGUgaW52YXJpYW50OiBXaWxsIHJldHVybiBieXRlIGluZGV4IG9mIGZpcnN0IG5v bi1hc2NpaSBieXRlLgotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHVuc2Fm ZSBmbiBhc2NpaV90b19hc2NpaV9zdHJpZGUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1 c2l6ZSkgLT4gT3B0aW9uPHVzaXplPiB7Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2Fm ZXR5IGludmFyaWFudCB1c2VkIGhlcmUKLSAgICAgICAgICAgICBsZXQgd29yZCA9ICpzcmM7Ci0g ICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKihzcmMuYWRkKDEpKTsKLSsgICAgICAgICAg ICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQotICAgICAgICAgICAg ICpkc3QgPSB3b3JkOwotICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsK LSsgICAgICAgICAgICAvLyBSZWxpZXMgb24gc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQot ICAgICAgICAgICAgIGZpbmRfbm9uX2FzY2lpKHdvcmQsIHNlY29uZF93b3JkKQotICAgICAgICAg fQotIAotQEAgLTE0ODIsNiArMTg1Nyw3IEBACi0gICAgICAgICBiYXNpY19sYXRpbl9hbHUhKGJh c2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVf YWx1KTsKLSAgICAgICAgIGxhdGluMV9hbHUhKHVucGFja19sYXRpbjEsIHU4LCB1MTYsIHVucGFj a19sYXRpbjFfc3RyaWRlX2FsdSk7Ci0gICAgICAgICBsYXRpbjFfYWx1IShwYWNrX2xhdGluMSwg dTE2LCB1OCwgcGFja19sYXRpbjFfc3RyaWRlX2FsdSk7Ci0rICAgICAgICAvLyBTYWZldHkgaW52 YXJpYW50IHVwaGVsZDogYXNjaWlfdG9fYXNjaWlfc3RyaWRlIHdpbGwgcmV0dXJuIGJ5dGUgaW5k ZXggb2YgZmlyc3Qgbm9uLWFzY2lpIGlmIGZvdW5kCi0gICAgICAgICBhc2NpaV9hbHUhKGFzY2lp X3RvX2FzY2lpLCB1OCwgdTgsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZSk7Ci0gICAgIH0KLSB9Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2hhbmRsZXMucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2hhbmRsZXMucnMJMjAyNS0wNC0yMCAxOToyODox Mi4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L2hhbmRsZXMucnMJMjAyNS0wOS0xNyAxNzo0MToyMS4xMzk4MDQ5NjkgKzAzMDAKLUBAIC0zNCw3 ICszNCw3IEBACi0gICAgICAgICBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRf ZmVhdHVyZSA9ICJuZW9uIikKLSAgICAgKQotICkpXQotLXVzZSBwYWNrZWRfc2ltZDo6dTE2eDg7 Ci0rdXNlIGNvcmU6OnNpbWQ6OnUxNng4OwotIAotIHVzZSBzdXBlcjo6RGVjb2RlclJlc3VsdDsK LSB1c2Ugc3VwZXI6OkVuY29kZXJSZXN1bHQ7Ci1AQCAtOTAsMTkgKzkwLDIzIEBACi0gCi0gI1tk ZXJpdmUoRGVidWcsIENvcHksIENsb25lKV0KLSBzdHJ1Y3QgVW5hbGlnbmVkVTE2U2xpY2Ugewot KyAgICAvLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgcmVhZGluZyAy KmxlbiBieXRlcwotICAgICBwdHI6ICpjb25zdCB1OCwKLSAgICAgbGVuOiB1c2l6ZSwKLSB9Ci0g Ci0gaW1wbCBVbmFsaWduZWRVMTZTbGljZSB7Ci0rICAgIC8vLyBTYWZldHk6IHB0ciBtdXN0IGJl IHZhbGlkIGZvciByZWFkaW5nIDIqbGVuIGJ5dGVzCi0gICAgICNbaW5saW5lKGFsd2F5cyldCi0g ICAgIHB1YiB1bnNhZmUgZm4gbmV3KHB0cjogKmNvbnN0IHU4LCBsZW46IHVzaXplKSAtPiBVbmFs aWduZWRVMTZTbGljZSB7Ci0rICAgICAgICAvLyBTYWZldHk6IGZpZWxkIGludmFyaWFudCBwYXNz ZWQgdXAgdG8gY2FsbGVyIGhlcmUKLSAgICAgICAgIFVuYWxpZ25lZFUxNlNsaWNlIHsgcHRyLCBs ZW4gfQotICAgICB9Ci0gCi0gICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgIHB1YiBmbiB0cmlt X2xhc3QoJm11dCBzZWxmKSB7Ci0gICAgICAgICBhc3NlcnQhKHNlbGYubGVuID4gMCk7Ci0rICAg ICAgICAvLyBTYWZldHk6IGludmFyaWFudCB1cGhlbGQgaGVyZTogYSBzbGljZSBpcyBzdGlsbCB2 YWxpZCB3aXRoIGEgc2hvcnRlciBsZW4KLSAgICAgICAgIHNlbGYubGVuIC09IDE7Ci0gICAgIH0K LSAKLUBAIC0xMTMsNyArMTE3LDkgQEAKLSAgICAgICAgIGFzc2VydCEoaSA8IHNlbGYubGVuKTsK LSAgICAgICAgIHVuc2FmZSB7Ci0gICAgICAgICAgICAgbGV0IG11dCB1OiBNYXliZVVuaW5pdDx1 MTY+ID0gTWF5YmVVbmluaXQ6OnVuaW5pdCgpOwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogaSBp cyBhdCBtb3N0IGxlbiAtIDEsIHdoaWNoIHdvcmtzIGhlcmUKLSAgICAgICAgICAgICA6OmNvcmU6 OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhzZWxmLnB0ci5hZGQoaSAqIDIpLCB1LmFzX211dF9w dHIoKSBhcyAqbXV0IHU4LCAyKTsKLSsgICAgICAgICAgICAvLyBTYWZldHk6IHZhbGlkIHJlYWQg YWJvdmUgbGV0cyB1cyBkbyB0aGlzCi0gICAgICAgICAgICAgdS5hc3N1bWVfaW5pdCgpCi0gICAg ICAgICB9Ci0gICAgIH0KLUBAIC0xMjEsOCArMTI3LDEzIEBACi0gICAgICNbY2ZnKGZlYXR1cmUg PSAic2ltZC1hY2NlbCIpXQotICAgICAjW2lubGluZShhbHdheXMpXQotICAgICBwdWIgZm4gc2lt ZF9hdCgmc2VsZiwgaTogdXNpemUpIC0+IHUxNng4IHsKLSsgICAgICAgIC8vIFNhZmV0eTogaS9s ZW4gYXJlIG9uIHRoZSBzY2FsZSBvZiB1MTZzLCBlYWNoIG9uZSBjb3JyZXNwb25kcyB0byAyIHU4 cwotICAgICAgICAgYXNzZXJ0IShpICsgU0lNRF9TVFJJREVfU0laRSAvIDIgPD0gc2VsZi5sZW4p OwotICAgICAgICAgbGV0IGJ5dGVfaW5kZXggPSBpICogMjsKLSsgICAgICAgIC8vIFNhZmV0eTog bG9hZDE2X3VuYWxpZ25lZCBuZWVkcyBTSU1EX1NUUklERV9TSVpFPTE2IHU4IGVsZW1lbnRzIHRv IHJlYWQsCi0rICAgICAgICAvLyBvciAxNi8yID0gOCB1MTYgZWxlbWVudHMgdG8gcmVhZC4KLSsg ICAgICAgIC8vIFdlIGhhdmUgY2hlY2tlZCB0aGF0IHdlIGhhdmUgYXQgbGVhc3QgdGhhdCBtYW55 IGFib3ZlLgotKwotICAgICAgICAgdW5zYWZlIHsgdG9fdTE2X2xhbmVzKGxvYWQxNl91bmFsaWdu ZWQoc2VsZi5wdHIuYWRkKGJ5dGVfaW5kZXgpKSkgfQotICAgICB9Ci0gCi1AQCAtMTM2LDYgKzE0 Nyw3IEBACi0gICAgICAgICAvLyBYWFggdGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgcmVzdHJp Y3RlZCBub3QgdG8KLSAgICAgICAgIC8vIG91dGxpdmUgc2VsZi4KLSAgICAgICAgIGFzc2VydCEo ZnJvbSA8PSBzZWxmLmxlbik7Ci0rICAgICAgICAvLyBTYWZldHk6IFRoaXMgdXBob2xkcyB0aGUg c2FtZSBpbnZhcmlhbnQ6IGBmcm9tYCBpcyBpbiBib3VuZHMgYW5kIHdlJ3JlIHJldHVybmluZyBh IHNob3J0ZXIgc2xpY2UKLSAgICAgICAgIHVuc2FmZSB7IFVuYWxpZ25lZFUxNlNsaWNlOjpuZXco c2VsZi5wdHIuYWRkKGZyb20gKiAyKSwgc2VsZi5sZW4gLSBmcm9tKSB9Ci0gICAgIH0KLSAKLUBA IC0xNDQsNiArMTU2LDggQEAKLSAgICAgcHViIGZuIGNvcHlfYm1wX3RvPEU6IEVuZGlhbj4oJnNl bGYsIG90aGVyOiAmbXV0IFt1MTZdKSAtPiBPcHRpb248KHUxNiwgdXNpemUpPiB7Ci0gICAgICAg ICBhc3NlcnQhKHNlbGYubGVuIDw9IG90aGVyLmxlbigpKTsKLSAgICAgICAgIGxldCBtdXQgb2Zm c2V0ID0gMDsKLSsgICAgICAgIC8vIFNhZmV0eTogU0lNRF9TVFJJREVfU0laRSBpcyBtZWFzdXJl ZCBpbiBieXRlcywgd2hlcmVhcyBsZW4gaXMgaW4gdTE2cy4gV2UgY2hlY2sgd2UgY2FuCi0rICAg ICAgICAvLyBtdW5jaCBTSU1EX1NUUklERV9TSVpFIC8gMiB1MTZzIHdoaWNoIG1lYW5zIHdlIGNh biB3cml0ZSBTSU1EX1NUUklERV9TSVpFIHU4cwotICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0la RSAvIDIgPD0gc2VsZi5sZW4gewotICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0g c2VsZi5sZW4gLSBTSU1EX1NUUklERV9TSVpFIC8gMjsKLSAgICAgICAgICAgICBsb29wIHsKLUBA IC0xNTEsNiArMTY1LDcgQEAKLSAgICAgICAgICAgICAgICAgaWYgRTo6T1BQT1NJVEVfRU5ESUFO IHsKLSAgICAgICAgICAgICAgICAgICAgIHNpbWQgPSBzaW1kX2J5dGVfc3dhcChzaW1kKTsKLSAg ICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdlIGhhdmUgZW5v dWdoIHNwYWNlIG9uIHRoZSBvdGhlciBzaWRlIHRvIHdyaXRlIHRoaXMKLSAgICAgICAgICAgICAg ICAgdW5zYWZlIHsKLSAgICAgICAgICAgICAgICAgICAgIHN0b3JlOF91bmFsaWduZWQob3RoZXIu YXNfbXV0X3B0cigpLmFkZChvZmZzZXQpLCBzaW1kKTsKLSAgICAgICAgICAgICAgICAgfQotQEAg LTE1OCw2ICsxNzMsNyBAQAotICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgLyAy OwotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgZW5zdXJlcyB3ZSBzdGlsbCBoYXZl IHNwYWNlIGZvciB3cml0aW5nIFNJTURfU1RSSURFX1NJWkUgdThzCi0gICAgICAgICAgICAgICAg IGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgewotICAgICAgICAgICAgICAgICAgICAgYnJl YWs7Ci0gICAgICAgICAgICAgICAgIH0KLUBAIC0yMzYsNiArMjUyLDcgQEAKLSApIC0+IENvcHlB c2NpaVJlc3VsdDx1c2l6ZSwgKHUxNiwgdXNpemUpPiB7Ci0gICAgIGxldCBsZW4gPSA6OmNvcmU6 OmNtcDo6bWluKHNyYy5sZW4oKSwgZHN0LmxlbigpKTsKLSAgICAgbGV0IG11dCBvZmZzZXQgPSAw OwotKyAgICAvLyBTYWZldHk6IFRoaXMgY2hlY2sgZW5zdXJlcyB3ZSBhcmUgYWJsZSB0byByZWFk L3dyaXRlIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMKLSAgICAgaWYgU0lNRF9T VFJJREVfU0laRSA8PSBsZW4gewotICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4g LSBTSU1EX1NUUklERV9TSVpFOwotICAgICAgICAgbG9vcCB7Ci1AQCAtMjQ5LDEwICsyNjYsMTMg QEAKLSAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAg IGxldCBwYWNrZWQgPSBzaW1kX3BhY2soZmlyc3QsIHNlY29uZCk7Ci0rICAgICAgICAgICAgLy8g U2FmZXR5OiBXZSBhcmUgYWJsZSB0byB3cml0ZSBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIGlu IHRoaXMgaXRlcmF0aW9uCi0gICAgICAgICAgICAgdW5zYWZlIHsKLSAgICAgICAgICAgICAgICAg c3RvcmUxNl91bmFsaWduZWQoZHN0LmFzX211dF9wdHIoKS5hZGQob2Zmc2V0KSwgcGFja2VkKTsK LSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7 Ci0rICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NU UklERV9TSVpFYCwgd2hpY2ggZW5zdXJlcyB0aGF0IHdlIGNhbiB3cml0ZSBhdCBsZWFzdCBTSU1E X1NUUklERV9TSVpFIGVsZW1lbnRzCi0rICAgICAgICAgICAgLy8gaW4gdGhlIG5leHQgaXRlcmF0 aW9uCi0gICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Ci0gICAgICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgIH0KLUBAIC02MzcsNyArNjU3LDcgQEAKLSAg ICAgICAgIHNlbGYud3JpdGVfY29kZV91bml0KCgweERDMDAgKyAoYXN0cmFsICYgMHgzRkYpKSBh cyB1MTYpOwotICAgICB9Ci0gICAgICNbaW5saW5lKGFsd2F5cyldCi0tICAgIHB1YiBmbiB3cml0 ZV9zdXJyb2dhdGVfcGFpcigmbXV0IHNlbGYsIGhpZ2g6IHUxNiwgbG93OiB1MTYpIHsKLSsgICAg Zm4gd3JpdGVfc3Vycm9nYXRlX3BhaXIoJm11dCBzZWxmLCBoaWdoOiB1MTYsIGxvdzogdTE2KSB7 Ci0gICAgICAgICBzZWxmLndyaXRlX2NvZGVfdW5pdChoaWdoKTsKLSAgICAgICAgIHNlbGYud3Jp dGVfY29kZV91bml0KGxvdyk7Ci0gICAgIH0KLUBAIC02NDYsNiArNjY2LDcgQEAKLSAgICAgICAg IHNlbGYud3JpdGVfYm1wX2V4Y2xfYXNjaWkoY29tYmluZWQpOwotICAgICAgICAgc2VsZi53cml0 ZV9ibXBfZXhjbF9hc2NpaShjb21iaW5pbmcpOwotICAgICB9Ci0rICAgIC8vIFNhZmV0eS11c2Fi bGUgaW52YXJpYW50OiBDb3B5QXNjaWlSZXN1bHQ6OkdvT24gd2lsbCBvbmx5IGNvbnRhaW4gYnl0 ZXMgPj0weDgwCi0gICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgIHB1YiBmbiBjb3B5X2FzY2lp X2Zyb21fY2hlY2tfc3BhY2VfYm1wPCdiPigKLSAgICAgICAgICYnYiBtdXQgc2VsZiwKLUBAIC02 NTksNiArNjgwLDggQEAKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAo RGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0eSwgc3JjX3JlbWFpbmluZy5sZW4oKSkKLSAgICAgICAg ICAgICB9OwotKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBpcyBkb2N1bWVu dGVkIGFzIG5lZWRpbmcgdmFsaWQgcG9pbnRlcnMgZm9yIHNyYy9kZXN0IGFuZCBsZW4sIHdoaWNo Ci0rICAgICAgICAgICAgLy8gaXMgdHJ1ZSBzaW5jZSB3ZSd2ZSBwYXNzZWQgdGhlIG1pbnVtdW0g bGVuZ3RoIG9mIHRoZSB0d28KLSAgICAgICAgICAgICBtYXRjaCB1bnNhZmUgewotICAgICAgICAg ICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbihzcmNfcmVtYWluaW5nLmFzX3B0cigpLCBkc3Rf cmVtYWluaW5nLmFzX211dF9wdHIoKSwgbGVuZ3RoKQotICAgICAgICAgICAgIH0gewotQEAgLTY2 NywxNiArNjkwLDIwIEBACi0gICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBsZW5ndGg7 Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29weUFzY2lpUmVzdWx0OjpTdG9wKChwZW5k aW5nLCBzb3VyY2UucG9zLCBzZWxmLnBvcykpOwotICAgICAgICAgICAgICAgICB9Ci0rICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgcmV0dXJu aW5nIGJ5dGVzID49MHg4MCBpbiB0aGUgU29tZQotICAgICAgICAgICAgICAgICBTb21lKChub25f YXNjaWksIGNvbnN1bWVkKSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyAr PSBjb25zdW1lZDsKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zICs9IGNvbnN1bWVkOwot ICAgICAgICAgICAgICAgICAgICAgc291cmNlLnBvcyArPSAxOyAvLyArMSBmb3Igbm9uX2FzY2lp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbm9uLWFz Y2lpIGJ1YmJsZWQgb3V0IGhlcmUKLSAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaQotICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfTsKLSsgICAgICAgIC8v IFNhZmV0eTogbm9uLWFzY2lpIHJldHVybmVkIGhlcmUKLSAgICAgICAgIENvcHlBc2NpaVJlc3Vs dDo6R29Pbigobm9uX2FzY2lpX3JldCwgVXRmMTZCbXBIYW5kbGU6Om5ldyhzZWxmKSkpCi0gICAg IH0KLSsgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IENvcHlBc2NpaVJlc3VsdDo6R29P biB3aWxsIG9ubHkgY29udGFpbiBieXRlcyA+PTB4ODAKLSAgICAgI1tpbmxpbmUoYWx3YXlzKV0K LSAgICAgcHViIGZuIGNvcHlfYXNjaWlfZnJvbV9jaGVja19zcGFjZV9hc3RyYWw8J2I+KAotICAg ICAgICAgJidiIG11dCBzZWxmLAotQEAgLTY5MSw2ICs3MTgsOCBAQAotICAgICAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgICAgIChEZWNvZGVyUmVzdWx0OjpJbnB1dEVtcHR5LCBzcmNf cmVtYWluaW5nLmxlbigpKQotICAgICAgICAgICAgIH07Ci0rICAgICAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGZ1bmN0aW9uIGlzIGRvY3VtZW50ZWQgYXMgbmVlZGluZyB2YWxpZCBwb2ludGVycyBm b3Igc3JjL2Rlc3QgYW5kIGxlbiwgd2hpY2gKLSsgICAgICAgICAgICAvLyBpcyB0cnVlIHNpbmNl IHdlJ3ZlIHBhc3NlZCB0aGUgbWludW11bSBsZW5ndGggb2YgdGhlIHR3bwotICAgICAgICAgICAg IG1hdGNoIHVuc2FmZSB7Ci0gICAgICAgICAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluKHNy Y19yZW1haW5pbmcuYXNfcHRyKCksIGRzdF9yZW1haW5pbmcuYXNfbXV0X3B0cigpLCBsZW5ndGgp Ci0gICAgICAgICAgICAgfSB7Ci1AQCAtNjk5LDExICs3MjgsMTMgQEAKLSAgICAgICAgICAgICAg ICAgICAgIHNlbGYucG9zICs9IGxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBD b3B5QXNjaWlSZXN1bHQ6OlN0b3AoKHBlbmRpbmcsIHNvdXJjZS5wb3MsIHNlbGYucG9zKSk7Ci0g ICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgZnVuY3Rp b24gaXMgZG9jdW1lbnRlZCBhcyByZXR1cm5pbmcgYnl0ZXMgPj0weDgwIGluIHRoZSBTb21lCi0g ICAgICAgICAgICAgICAgIFNvbWUoKG5vbl9hc2NpaSwgY29uc3VtZWQpKSA9PiB7Ci0gICAgICAg ICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IGNvbnN1bWVkOwotICAgICAgICAgICAgICAgICAg ICAgc2VsZi5wb3MgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnBv cyArIDEgPCBkc3RfbGVuIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9 IDE7IC8vICsxIGZvciBub25fYXNjaWkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lpIGJ1YmJsZWQgb3V0IGhlcmUKLSAgICAgICAg ICAgICAgICAgICAgICAgICBub25fYXNjaWkKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2NpaVJlc3VsdDo6U3RvcCgo Ci1AQCAtNzE1LDYgKzc0Niw3IEBACi0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9 Ci0gICAgICAgICB9OwotKyAgICAgICAgLy8gU2FmZXR5OiBub24tYXNjaWkgcmV0dXJuZWQgaGVy ZQotICAgICAgICAgQ29weUFzY2lpUmVzdWx0OjpHb09uKChub25fYXNjaWlfcmV0LCBVdGYxNkFz dHJhbEhhbmRsZTo6bmV3KHNlbGYpKSkKLSAgICAgfQotICAgICAjW2lubGluZShhbHdheXMpXQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMJMjAy NS0wOS0xNyAxNzo0MToyMS4xNDA4MDQ5MzEgKzAzMDAKLUBAIC02ODksNyArNjg5LDcgQEAKLSAv LyEgZm9yIGRpc2N1c3Npb24gYWJvdXQgdGhlIFVURi0xNiBmYW1pbHkuCi0gCi0gIyFbbm9fc3Rk XQotLSMhW2NmZ19hdHRyKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIsIGZlYXR1cmUoY29yZV9pbnRy aW5zaWNzKSldCi0rIyFbY2ZnX2F0dHIoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgZmVhdHVyZShj b3JlX2ludHJpbnNpY3MsIHBvcnRhYmxlX3NpbWQpKV0KLSAKLSAjW2NmZyhmZWF0dXJlID0gImFs bG9jIildCi0gI1tjZmdfYXR0cih0ZXN0LCBtYWNyb191c2UpXQotQEAgLTY5OSwxNyArNjk5LDYg QEAKLSAjW21hY3JvX3VzZV0KLSBleHRlcm4gY3JhdGUgY2ZnX2lmOwotIAotLSNbY2ZnKGFsbCgK LS0gICAgZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwKLS0gICAgYW55KAotLSAgICAgICAgdGFyZ2V0 X2ZlYXR1cmUgPSAic3NlMiIsCi0tICAgICAgICBhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUi LCB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiksCi0tICAgICAgICBhbGwodGFyZ2V0X2VuZGlhbiA9 ICJsaXR0bGUiLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIikKLS0gICAgKQotLSkpXQotLSNbbWFj cm9fdXNlKHNodWZmbGUpXQotLWV4dGVybiBjcmF0ZSBwYWNrZWRfc2ltZDsKLS0KLSAjW2NmZyhm ZWF0dXJlID0gInNlcmRlIildCi0gZXh0ZXJuIGNyYXRlIHNlcmRlOwotIAotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvbWVtLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9tZW0ucnMJMjAyNS0wOS0xNyAxNzo0 MToyMS4xNDA4MDQ5MzEgKzAzMDAKLUBAIC0xMTYsNiArMTE2LDExIEBACi0gICAgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxl biAtIEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemU7Ci0gICAgICAgICAgICAgICAgICAgICBpZiBv ZmZzZXQgKyAoNCAqIChBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplKSkgPD0gbGVuIHsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBhYm92ZSBjaGVjayBsZXRzIHVzIHBl cmZvcm0gNCBjb25zZWN1dGl2ZSByZWFkcyBvZgotKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IGxlbmd0aCBBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplLiBBTFVfQUxJR05NRU5UIGlzIHRoZSBz aXplIG9mIHVzaXplLCBhbmQgdW5pdF9zaXplCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8g aXMgdGhlIHNpemUgb2YgdGhlIGBzcmNgIHBvaW50ZXIsIHNvIHRoaXMgaXMgZXF1YWwgdG8gcGVy Zm9ybWluZyBmb3VyIHVzaXplIHJlYWRzLgotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0r ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpbnZhcmlhbnQgaXMgdXBoZWxkIG9uIGFs bCBsb29wIGl0ZXJhdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVz X3Vucm9sbCA9IGxlbiAtICg0ICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3NpemUpKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHVucm9sbF9hY2N1ID0gdW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVz aXplKSB9Ci1AQCAtMTM0LDEyICsxMzksMTQgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNCAqIChBTFVfQUxJR05NRU5UIC8g dW5pdF9zaXplKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlz IGNoZWNrIGxldHMgdXMgY29udGludWUgdG8gcGVyZm9ybSB0aGUgNCByZWFkcyBlYXJsaWVyCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c191bnJvbGwg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPD0gbGVuX21p bnVzX3N0cmlkZSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJv dmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIG9uZSB1c2l6ZSByZWFkLgotICAgICAgICAgICAgICAg ICAgICAgICAgIGFjY3UgfD0gdW5zYWZlIHsgKihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0IHVz aXplKSB9OwotICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfQUxJR05NRU5U IC8gdW5pdF9zaXplOwotICAgICAgICAgICAgICAgICAgICAgfQotQEAgLTE4OSw2ICsxOTYsMTEg QEAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5f bWludXNfc3RyaWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZTsKLSAgICAg ICAgICAgICAgICAgICAgIGlmIG9mZnNldCArICg0ICogKFNJTURfU1RSSURFX1NJWkUgLyB1bml0 X3NpemUpKSA8PSBsZW4gewotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdGhl IGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9ybSA0IGNvbnNlY3V0aXZlIHJlYWRzIG9mCi0rICAg ICAgICAgICAgICAgICAgICAgICAgLy8gbGVuZ3RoIFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3Np emUuIFNJTURfU1RSSURFX1NJWkUgaXMgdGhlIHNpemUgb2YgJHNpbWRfdHksIGFuZCB1bml0X3Np emUKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBpcyB0aGUgc2l6ZSBvZiB0aGUgYHNyY2Ag cG9pbnRlciwgc28gdGhpcyBpcyBlcXVhbCB0byBwZXJmb3JtaW5nIGZvdXIgJHNpbWRfdHkgcmVh ZHMuCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAgICAgICAgICAgICAgICAgICAg ICAvLyBUaGlzIGludmFyaWFudCBpcyB1cGhlbGQgb24gYWxsIGxvb3AgaXRlcmF0aW9ucwotICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfdW5yb2xsID0gbGVuIC0gKDQgKiAo U0lNRF9TVFJJREVfU0laRSAvIHVuaXRfc2l6ZSkpOwotICAgICAgICAgICAgICAgICAgICAgICAg IGxvb3AgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdW5yb2xsX2FjY3UgPSB1 bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgJHNpbWRfdHkpIH0KLUBAIC0yMDgs NiArMjIwLDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvZmZzZXQgKz0gNCAqIChTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNoZWNrIGxldHMgdXMg Y29udGludWUgdG8gcGVyZm9ybSB0aGUgNCByZWFkcyBlYXJsaWVyCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c191bnJvbGwgewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLUBAIC0yMTUsNiArMjI4LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgc2ltZF9hY2N1ID0gJHNwbGF0OwotICAgICAgICAgICAgICAg ICAgICAgd2hpbGUgb2Zmc2V0IDw9IGxlbl9taW51c19zdHJpZGUgewotKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogdGhlIGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9ybSBvbmUg JHNpbWRfdHkgcmVhZC4KLSAgICAgICAgICAgICAgICAgICAgICAgICBzaW1kX2FjY3UgPSBzaW1k X2FjY3UgfCB1bnNhZmUgeyAqKHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgJHNpbWRfdHkpIH07 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgLyB1 bml0X3NpemU7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1AQCAtMjM0LDggKzI0OCw4IEBACi0g Y2ZnX2lmISB7Ci0gICAgIGlmICNbY2ZnKGFsbChmZWF0dXJlID0gInNpbWQtYWNjZWwiLCBhbnko dGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIsIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRh cmdldF9hcmNoID0gImFhcmNoNjQiKSwgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFy Z2V0X2ZlYXR1cmUgPSAibmVvbiIpKSkpXSB7Ci0gICAgICAgICB1c2UgY3JhdGU6OnNpbWRfZnVu Y3M6Oio7Ci0tICAgICAgICB1c2UgcGFja2VkX3NpbWQ6OnU4eDE2OwotLSAgICAgICAgdXNlIHBh Y2tlZF9zaW1kOjp1MTZ4ODsKLSsgICAgICAgIHVzZSBjb3JlOjpzaW1kOjp1OHgxNjsKLSsgICAg ICAgIHVzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKLSAKLSAgICAgICAgIGNvbnN0IFNJTURfQUxJR05N RU5UOiB1c2l6ZSA9IDE2OwotIAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3NpbWRfZnVuY3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9zaW1kX2Z1bmNzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9z aW1kX2Z1bmNzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTIuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW1kX2Z1bmNzLnJzCTIwMjUtMDktMTcg MTc6NDE6MjEuMTQxODA0ODkyICswMzAwCi1AQCAtNyw1NSArNyw3NCBAQAotIC8vIG9wdGlvbi4g VGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQKLSAv LyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgotIAotLXVzZSBwYWNrZWRfc2ltZDo6 dTE2eDg7Ci0tdXNlIHBhY2tlZF9zaW1kOjp1OHgxNjsKLS11c2UgcGFja2VkX3NpbWQ6OkludG9C aXRzOwotK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFsbF9tYXNrMTZ4ODsKLSt1c2UgYW55X2Fs bF93b3JrYXJvdW5kOjphbGxfbWFzazh4MTY7Ci0rdXNlIGFueV9hbGxfd29ya2Fyb3VuZDo6YW55 X21hc2sxNng4OwotK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFueV9tYXNrOHgxNjsKLSt1c2Ug Y29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbEVxOwotK3VzZSBjb3JlOjpzaW1kOjpjbXA6OlNp bWRQYXJ0aWFsT3JkOwotK3VzZSBjb3JlOjpzaW1kOjptYXNrMTZ4ODsKLSt1c2UgY29yZTo6c2lt ZDo6bWFzazh4MTY7Ci0rdXNlIGNvcmU6OnNpbWQ6OnNpbWRfc3dpenpsZTsKLSt1c2UgY29yZTo6 c2ltZDo6dTE2eDg7Ci0rdXNlIGNvcmU6OnNpbWQ6OnU4eDE2OwotK3VzZSBjb3JlOjpzaW1kOjpU b0J5dGVzOwotIAotIC8vIFRPRE86IE1pZ3JhdGUgdW5hbGlnbmVkIGFjY2VzcyB0byBzdGRsaWIg Y29kZSBpZi93aGVuIHRoZSBSRkMKLSAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3Jm Y3MvcHVsbC8xNzI1IGlzIGltcGxlbWVudGVkLgotIAotKy8vLyBTYWZldHkgaW52YXJpYW50OiBw dHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVkIHJlYWQgb2YgMTYgYnl0ZXMKLSAjW2lu bGluZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4gbG9hZDE2X3VuYWxpZ25lZChwdHI6ICpjb25z dCB1OCkgLT4gdTh4MTYgewotLSAgICBsZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6dW5pbml0 aWFsaXplZCgpOwotLSAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIsICZt dXQgc2ltZCBhcyAqbXV0IHU4eDE2IGFzICptdXQgdTgsIDE2KTsKLS0gICAgc2ltZAotKyAgICBs ZXQgbXV0IHNpbWQgPSA6OmNvcmU6Om1lbTo6TWF5YmVVbmluaXQ6Ojx1OHgxNj46OnVuaW5pdCgp OwotKyAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIsIHNpbWQuYXNfbXV0 X3B0cigpIGFzICptdXQgdTgsIDE2KTsKLSsgICAgLy8gU2FmZXR5OiBjb3BpZWQgMTYgYnl0ZXMg b2YgaW5pdGlhbGl6ZWQgbWVtb3J5IGludG8gdGhpcywgaXQgaXMgbm93IGluaXRpYWxpemVkCi0r ICAgIHNpbWQuYXNzdW1lX2luaXQoKQotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFudDogcHRy IG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXU4eDE2IHJlYWQgb2YgMTYgYnl0ZXMK LSAjW2FsbG93KGRlYWRfY29kZSldCi0gI1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZu IGxvYWQxNl9hbGlnbmVkKHB0cjogKmNvbnN0IHU4KSAtPiB1OHgxNiB7Ci0gICAgICoocHRyIGFz ICpjb25zdCB1OHgxNikKLSB9Ci0gCi0rLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJl IHZhbGlkIGZvciBhbiB1bmFsaWduZWQgc3RvcmUgb2YgMTYgYnl0ZXMKLSAjW2lubGluZShhbHdh eXMpXQotIHB1YiB1bnNhZmUgZm4gc3RvcmUxNl91bmFsaWduZWQocHRyOiAqbXV0IHU4LCBzOiB1 OHgxNikgewotICAgICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZygmcyBhcyAqY29u c3QgdTh4MTYgYXMgKmNvbnN0IHU4LCBwdHIsIDE2KTsKLSB9Ci0gCi0rLy8vIFNhZmV0eSBpbnZh cmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBhbGlnbmVkLWZvci11OHgxNiBzdG9yZSBv ZiAxNiBieXRlcwotICNbYWxsb3coZGVhZF9jb2RlKV0KLSAjW2lubGluZShhbHdheXMpXQotIHB1 YiB1bnNhZmUgZm4gc3RvcmUxNl9hbGlnbmVkKHB0cjogKm11dCB1OCwgczogdTh4MTYpIHsKLSAg ICAgKihwdHIgYXMgKm11dCB1OHgxNikgPSBzOwotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFu dDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIHVuYWxpZ25lZCByZWFkIG9mIDE2IGJ5dGVzCi0g I1tpbmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIGxvYWQ4X3VuYWxpZ25lZChwdHI6ICpj b25zdCB1MTYpIC0+IHUxNng4IHsKLS0gICAgbGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06OnVu aW5pdGlhbGl6ZWQoKTsKLS0gICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRy IGFzICpjb25zdCB1OCwgJm11dCBzaW1kIGFzICptdXQgdTE2eDggYXMgKm11dCB1OCwgMTYpOwot LSAgICBzaW1kCi0rICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6bWVtOjpNYXliZVVuaW5pdDo6 PHUxNng4Pjo6dW5pbml0KCk7Ci0rICAgIDo6Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5n KHB0ciBhcyAqY29uc3QgdTgsIHNpbWQuYXNfbXV0X3B0cigpIGFzICptdXQgdTgsIDE2KTsKLSsg ICAgLy8gU2FmZXR5OiBjb3BpZWQgMTYgYnl0ZXMgb2YgaW5pdGlhbGl6ZWQgbWVtb3J5IGludG8g dGhpcywgaXQgaXMgbm93IGluaXRpYWxpemVkCi0rICAgIHNpbWQuYXNzdW1lX2luaXQoKQotIH0K LSAKLSsvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFuIGFsaWdu ZWQtZm9yLXUxNng4IHJlYWQgb2YgMTYgYnl0ZXMKLSAjW2FsbG93KGRlYWRfY29kZSldCi0gI1tp bmxpbmUoYWx3YXlzKV0KLSBwdWIgdW5zYWZlIGZuIGxvYWQ4X2FsaWduZWQocHRyOiAqY29uc3Qg dTE2KSAtPiB1MTZ4OCB7Ci0gICAgICoocHRyIGFzICpjb25zdCB1MTZ4OCkKLSB9Ci0gCi0rLy8v IFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiB1bmFsaWduZWQgc3Rv cmUgb2YgMTYgYnl0ZXMKLSAjW2lubGluZShhbHdheXMpXQotIHB1YiB1bnNhZmUgZm4gc3RvcmU4 X3VuYWxpZ25lZChwdHI6ICptdXQgdTE2LCBzOiB1MTZ4OCkgewotICAgICA6OmNvcmU6OnB0cjo6 Y29weV9ub25vdmVybGFwcGluZygmcyBhcyAqY29uc3QgdTE2eDggYXMgKmNvbnN0IHU4LCBwdHIg YXMgKm11dCB1OCwgMTYpOwotIH0KLSAKLSsvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3Qg YmUgdmFsaWQgZm9yIGFuIGFsaWduZWQtZm9yLXUxNng4IHN0b3JlIG9mIDE2IGJ5dGVzCi0gI1th bGxvdyhkZWFkX2NvZGUpXQotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIHVuc2FmZSBmbiBzdG9y ZThfYWxpZ25lZChwdHI6ICptdXQgdTE2LCBzOiB1MTZ4OCkgewotQEAgLTEwMCw3ICsxMTksNyBA QAotIAotICNbaW5saW5lKGFsd2F5cyldCi0gcHViIGZuIHRvX3UxNl9sYW5lcyhzOiB1OHgxNikg LT4gdTE2eDggewotLSAgICBzLmludG9fYml0cygpCi0rICAgIHUxNng4Ojpmcm9tX25lX2J5dGVz KHMpCi0gfQotIAotIGNmZ19pZiEgewotQEAgLTEwOCwxMCArMTI3LDExIEBACi0gCi0gICAgICAg ICAvLyBFeHBvc2UgbG93LWxldmVsIG1hc2sgaW5zdGVhZCBvZiBoaWdoZXItbGV2ZWwgY29uY2x1 c2lvbiwKLSAgICAgICAgIC8vIGJlY2F1c2UgdGhlIG5vbi1BU0NJSSBjYXNlIHdvdWxkIHBlcmZv cm0gbGVzcyB3ZWxsIG90aGVyd2lzZS4KLSsgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50OiBUaGlzIHJldHVybmVkIHZhbHVlIGlzIHdoZXRoZXIgZWFjaCBoaWdoIGJpdCBpcyBzZXQK LSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gbWFza19hc2NpaShz OiB1OHgxNikgLT4gaTMyIHsKLSAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAg ICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG9fYml0cygpKQotKyAgICAgICAgICAgICAgICBfbW1f bW92ZW1hc2tfZXBpOChzLmludG8oKSkKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gCi1A QCAtMTI1LDE0ICsxNDUsMTYgQEAKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAg ICBwdWIgZm4gc2ltZF9pc19hc2NpaShzOiB1OHgxNikgLT4gYm9vbCB7Ci0gICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvX2JpdHMo KSkgPT0gMAotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBj b3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19lcGk4KHMuaW50 bygpKSA9PSAwCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXXsKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyld Ci0gICAgICAgICBwdWIgZm4gc2ltZF9pc19hc2NpaShzOiB1OHgxNikgLT4gYm9vbCB7Ci0gICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50b19iaXRz KCkpIDwgMHg4MAotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRo ZSBjb3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAgICAgIHZtYXh2cV91OChzLmludG8oKSkg PCAweDgwCi0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVsc2UgewotQEAgLTE0 MSw3ICsxNjMsNyBAQAotICAgICAgICAgICAgIC8vIFRoaXMgb3B0aW1pemVzIGJldHRlciBvbiBB Uk0gdGhhbgotICAgICAgICAgICAgIC8vIHRoZSBsdCBmb3JtdWxhdGlvbi4KLSAgICAgICAgICAg ICBsZXQgaGlnaGVzdF9hc2NpaSA9IHU4eDE2OjpzcGxhdCgweDdGKTsKLS0gICAgICAgICAgICAh cy5ndChoaWdoZXN0X2FzY2lpKS5hbnkoKQotKyAgICAgICAgICAgICFhbnlfbWFzazh4MTYocy5z aW1kX2d0KGhpZ2hlc3RfYXNjaWkpKQotICAgICAgICAgfQotICAgICB9Ci0gfQotQEAgLTE1NCwy MCArMTc2LDIxIEBACi0gICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICBsZXQgYWJvdmVfc3RyX2xhdGluMSA9IHU4eDE2OjpzcGxhdCgweEM0 KTsKLS0gICAgICAgICAgICBzLmx0KGFib3ZlX3N0cl9sYXRpbjEpLmFsbCgpCi0rICAgICAgICAg ICAgcy5zaW1kX2x0KGFib3ZlX3N0cl9sYXRpbjEpLmFsbCgpCi0gICAgICAgICB9Ci0gICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildewotICAgICAgICAgI1tpbmxp bmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBzaW1kX2lzX3N0cl9sYXRpbjEoczogdTh4MTYp IC0+IGJvb2wgewotICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIHZtYXh2 cV91OChzLmludG9fYml0cygpKSA8IDB4QzQKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBX ZSBoYXZlIGNmZygpZCB0aGUgY29ycmVjdCBwbGF0Zm9ybQotKyAgICAgICAgICAgICAgICB2bWF4 dnFfdTgocy5pbnRvKCkpIDwgMHhDNAotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAg fSBlbHNlIHsKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gc2lt ZF9pc19zdHJfbGF0aW4xKHM6IHU4eDE2KSAtPiBib29sIHsKLSAgICAgICAgICAgICBsZXQgYWJv dmVfc3RyX2xhdGluMSA9IHU4eDE2OjpzcGxhdCgweEM0KTsKLS0gICAgICAgICAgICBzLmx0KGFi b3ZlX3N0cl9sYXRpbjEpLmFsbCgpCi0rICAgICAgICAgICAgYWxsX21hc2s4eDE2KHMuc2ltZF9s dChhYm92ZV9zdHJfbGF0aW4xKSkKLSAgICAgICAgIH0KLSAgICAgfQotIH0KLUBAIC0xNzcsMjEg KzIwMCwyMyBAQAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLSAgICAgICAgIHB1YiBmbiBz aW1kX2lzX2Jhc2ljX2xhdGluKHM6IHUxNng4KSAtPiBib29sIHsKLSAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50b19iaXRzKCkpIDwgMHg4MAot KyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBs YXRmb3JtCi0rICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvKCkpIDwgMHg4MAotICAg ICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0g ICAgICAgICBwdWIgZm4gc2ltZF9pc19sYXRpbjEoczogdTE2eDgpIC0+IGJvb2wgewotICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvX2JpdHMo KSkgPCAweDEwMAotKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRo ZSBjb3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvKCkp IDwgMHgxMDAKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci0gICAg ICAgICAjW2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIHNpbWRfaXNfYmFzaWNfbGF0 aW4oczogdTE2eDgpIC0+IGJvb2wgewotICAgICAgICAgICAgIGxldCBhYm92ZV9hc2NpaSA9IHUx Nng4OjpzcGxhdCgweDgwKTsKLS0gICAgICAgICAgICBzLmx0KGFib3ZlX2FzY2lpKS5hbGwoKQot KyAgICAgICAgICAgIGFsbF9tYXNrMTZ4OChzLnNpbWRfbHQoYWJvdmVfYXNjaWkpKQotICAgICAg ICAgfQotIAotICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KLUBAIC0yMDAsNyArMjI1LDcgQEAK LSAgICAgICAgICAgICAvLyBzZWVtcyBmYXN0ZXIgaW4gdGhpcyBjYXNlIHdoaWxlIHRoZSBhYm92 ZQotICAgICAgICAgICAgIC8vIGZ1bmN0aW9uIGlzIGJldHRlciB0aGUgb3RoZXIgd2F5IHJvdW5k Li4uCi0gICAgICAgICAgICAgbGV0IGhpZ2hlc3RfbGF0aW4xID0gdTE2eDg6OnNwbGF0KDB4RkYp OwotLSAgICAgICAgICAgICFzLmd0KGhpZ2hlc3RfbGF0aW4xKS5hbnkoKQotKyAgICAgICAgICAg ICFhbnlfbWFzazE2eDgocy5zaW1kX2d0KGhpZ2hlc3RfbGF0aW4xKSkKLSAgICAgICAgIH0KLSAg ICAgfQotIH0KLUBAIC0yMDksNyArMjM0LDcgQEAKLSBwdWIgZm4gY29udGFpbnNfc3Vycm9nYXRl cyhzOiB1MTZ4OCkgLT4gYm9vbCB7Ci0gICAgIGxldCBtYXNrID0gdTE2eDg6OnNwbGF0KDB4Rjgw MCk7Ci0gICAgIGxldCBzdXJyb2dhdGVfYml0cyA9IHUxNng4OjpzcGxhdCgweEQ4MDApOwotLSAg ICAocyAmIG1hc2spLmVxKHN1cnJvZ2F0ZV9iaXRzKS5hbnkoKQotKyAgICBhbnlfbWFzazE2eDgo KHMgJiBtYXNrKS5zaW1kX2VxKHN1cnJvZ2F0ZV9iaXRzKSkKLSB9Ci0gCi0gY2ZnX2lmISB7Ci1A QCAtMjE3LDcgKzI0Miw4IEBACi0gICAgICAgICBtYWNyb19ydWxlcyEgYWFyY2g2NF9yZXR1cm5f ZmFsc2VfaWZfYmVsb3dfaGVicmV3IHsKLSAgICAgICAgICAgICAoJHM6aWRlbnQpID0+ICh7Ci0g ICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiB2bWF4dnFf dTE2KCRzLmludG9fYml0cygpKSA8IDB4MDU5MCB7Ci0rICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCi0rICAgICAgICAgICAg ICAgICAgICBpZiB2bWF4dnFfdTE2KCRzLmludG8oKSkgPCAweDA1OTAgewotICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgfQotQEAgLTIzNCw3ICsyNjAsNyBAQAotIAotICAgICAgICAgbWFjcm9fcnVs ZXMhIG5vbl9hYXJjaDY0X3JldHVybl9mYWxzZV9pZl9hbGwgewotICAgICAgICAgICAgICgkczpp ZGVudCkgPT4gKHsKLS0gICAgICAgICAgICAgICAgaWYgJHMuYWxsKCkgewotKyAgICAgICAgICAg ICAgICBpZiBhbGxfbWFzazE2eDgoJHMpIHsKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiBm YWxzZTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0pCi1AQCAtMjQ1LDcgKzI3 MSw3IEBACi0gbWFjcm9fcnVsZXMhIGluX3JhbmdlMTZ4OCB7Ci0gICAgICgkczppZGVudCwgJHN0 YXJ0OmV4cHIsICRlbmQ6ZXhwcikgPT4ge3sKLSAgICAgICAgIC8vIFNJTUQgc3ViIGlzIHdyYXBw aW5nCi0tICAgICAgICAoJHMgLSB1MTZ4ODo6c3BsYXQoJHN0YXJ0KSkubHQodTE2eDg6OnNwbGF0 KCRlbmQgLSAkc3RhcnQpKQotKyAgICAgICAgKCRzIC0gdTE2eDg6OnNwbGF0KCRzdGFydCkpLnNp bWRfbHQodTE2eDg6OnNwbGF0KCRlbmQgLSAkc3RhcnQpKQotICAgICB9fTsKLSB9Ci0gCi1AQCAt MjU5LDQzICsyODUsNDQgQEAKLSAKLSAgICAgYWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYmVsb3df aGVicmV3IShzKTsKLSAKLS0gICAgbGV0IGJlbG93X2hlYnJldyA9IHMubHQodTE2eDg6OnNwbGF0 KDB4MDU5MCkpOwotKyAgICBsZXQgYmVsb3dfaGVicmV3ID0gcy5zaW1kX2x0KHUxNng4OjpzcGxh dCgweDA1OTApKTsKLSAKLSAgICAgbm9uX2FhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2FsbCEoYmVs b3dfaGVicmV3KTsKLSAKLS0gICAgaWYgKGJlbG93X2hlYnJldyB8IGluX3JhbmdlMTZ4OCEocywg MHgwOTAwLCAweDIwMEYpIHwgaW5fcmFuZ2UxNng4IShzLCAweDIwNjgsIDB4RDgwMikpLmFsbCgp IHsKLSsgICAgaWYgYWxsX21hc2sxNng4KAotKyAgICAgICAgYmVsb3dfaGVicmV3IHwgaW5fcmFu Z2UxNng4IShzLCAweDA5MDAsIDB4MjAwRikgfCBpbl9yYW5nZTE2eDghKHMsIDB4MjA2OCwgMHhE ODAyKSwKLSsgICAgKSB7Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLSAgICAg Ly8gUXVpY2sgcmVmdXRhdGlvbiBmYWlsZWQuIExldCdzIGRvIHRoZSBmdWxsIGNoZWNrLgotIAot KyAgICBhbnlfbWFzazE2eDgoCi0gICAgIChpbl9yYW5nZTE2eDghKHMsIDB4MDU5MCwgMHgwOTAw KQotICAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RkIxRCwgMHhGRTAwKQotICAgICAgICAg fCBpbl9yYW5nZTE2eDghKHMsIDB4RkU3MCwgMHhGRUZGKQotICAgICAgICAgfCBpbl9yYW5nZTE2 eDghKHMsIDB4RDgwMiwgMHhEODA0KQotICAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RDgz QSwgMHhEODNDKQotLSAgICAgICAgfCBzLmVxKHUxNng4OjpzcGxhdCgweDIwMEYpKQotLSAgICAg ICAgfCBzLmVxKHUxNng4OjpzcGxhdCgweDIwMkIpKQotLSAgICAgICAgfCBzLmVxKHUxNng4Ojpz cGxhdCgweDIwMkUpKQotLSAgICAgICAgfCBzLmVxKHUxNng4OjpzcGxhdCgweDIwNjcpKSkKLS0g ICAgLmFueSgpCi0rICAgICAgICAgICAgfCBzLnNpbWRfZXEodTE2eDg6OnNwbGF0KDB4MjAwRikp Ci0rICAgICAgICAgICAgfCBzLnNpbWRfZXEodTE2eDg6OnNwbGF0KDB4MjAyQikpCi0rICAgICAg ICAgICAgfCBzLnNpbWRfZXEodTE2eDg6OnNwbGF0KDB4MjAyRSkpCi0rICAgICAgICAgICAgfCBz LnNpbWRfZXEodTE2eDg6OnNwbGF0KDB4MjA2NykpKSwKLSsgICAgKQotIH0KLSAKLSAjW2lubGlu ZShhbHdheXMpXQotIHB1YiBmbiBzaW1kX3VucGFjayhzOiB1OHgxNikgLT4gKHUxNng4LCB1MTZ4 OCkgewotLSAgICB1bnNhZmUgewotLSAgICAgICAgbGV0IGZpcnN0OiB1OHgxNiA9IHNodWZmbGUh KAotKyAgICBsZXQgZmlyc3Q6IHU4eDE2ID0gc2ltZF9zd2l6emxlISgKLSAgICAgICAgICAgICBz LAotICAgICAgICAgICAgIHU4eDE2OjpzcGxhdCgwKSwKLSAgICAgICAgICAgICBbMCwgMTYsIDEs IDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzXQotICAgICAgICAg KTsKLS0gICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2ID0gc2h1ZmZsZSEoCi0rICAgIGxldCBzZWNv bmQ6IHU4eDE2ID0gc2ltZF9zd2l6emxlISgKLSAgICAgICAgICAgICBzLAotICAgICAgICAgICAg IHU4eDE2OjpzcGxhdCgwKSwKLSAgICAgICAgICAgICBbOCwgMjQsIDksIDI1LCAxMCwgMjYsIDEx LCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxXQotICAgICAgICAgKTsKLS0gICAg ICAgIChmaXJzdC5pbnRvX2JpdHMoKSwgc2Vjb25kLmludG9fYml0cygpKQotLSAgICB9Ci0rICAg ICh1MTZ4ODo6ZnJvbV9uZV9ieXRlcyhmaXJzdCksIHUxNng4Ojpmcm9tX25lX2J5dGVzKHNlY29u ZCkpCi0gfQotIAotIGNmZ19pZiEgewotQEAgLTMwMywyMyArMzMwLDIyIEBACi0gICAgICAgICAj W2lubGluZShhbHdheXMpXQotICAgICAgICAgcHViIGZuIHNpbWRfcGFjayhhOiB1MTZ4OCwgYjog dTE2eDgpIC0+IHU4eDE2IHsKLSAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAg ICBfbW1fcGFja3VzX2VwaTE2KGEuaW50b19iaXRzKCksIGIuaW50b19iaXRzKCkpLmludG9fYml0 cygpCi0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJl Y3QgcGxhdGZvcm0KLSsgICAgICAgICAgICAgICAgX21tX3BhY2t1c19lcGkxNihhLmludG8oKSwg Yi5pbnRvKCkpLmludG8oKQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgfSBlbHNl IHsKLSAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCi0gICAgICAgICBwdWIgZm4gc2ltZF9wYWNr KGE6IHUxNng4LCBiOiB1MTZ4OCkgLT4gdTh4MTYgewotLSAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgIGxldCBmaXJzdDogdTh4MTYgPSBhLmludG9fYml0cygpOwotLSAgICAg ICAgICAgICAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IGIuaW50b19iaXRzKCk7Ci0tICAgICAgICAg ICAgICAgIHNodWZmbGUhKAotKyAgICAgICAgICAgIGxldCBmaXJzdDogdTh4MTYgPSBhLnRvX25l X2J5dGVzKCk7Ci0rICAgICAgICAgICAgbGV0IHNlY29uZDogdTh4MTYgPSBiLnRvX25lX2J5dGVz KCk7Ci0rICAgICAgICAgICAgc2ltZF9zd2l6emxlISgKLSAgICAgICAgICAgICAgICAgICAgIGZp cnN0LAotICAgICAgICAgICAgICAgICAgICAgc2Vjb25kLAotICAgICAgICAgICAgICAgICAgICAg WzAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMjAsIDIyLCAyNCwgMjYsIDI4LCAz MF0KLSAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLS0gICAg fQotIH0KLSAKLSAjW2NmZyh0ZXN0KV0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvc3JjL3NpbmdsZV9ieXRlLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9zaW5nbGVfYnl0ZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEyLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5dGUucnMJMjAy NS0wOS0xNyAxNzo0MToyMS4xNDE4MDQ4OTIgKzAzMDAKLUBAIC01Myw2ICs1Myw5IEBACi0gICAg ICAgICAgICAgICAgICAgICAvLyBzdGF0aWNhbGx5IG9taXQgdGhlIGJvdW5kIGNoZWNrIHdoZW4g YWNjZXNzaW5nCi0gICAgICAgICAgICAgICAgICAgICAvLyBgW3UxNjsgMTI4XWAgd2l0aCBhbiBp bmRleAotICAgICAgICAgICAgICAgICAgICAgLy8gYG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1 c2l6ZWAuCi0rICAgICAgICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBgbm9uX2FzY2lpYCBpcyBhIHU4IGJ5dGUgPj0weDgwLCBmcm9tIHRoZSBpbnZhcmlh bnRzCi0rICAgICAgICAgICAgICAgICAgICAvLyBvbiBVdGY4RGVzdGluYXRpb246OmNvcHlfYXNj aWlfZnJvbV9jaGVja19zcGFjZV9ibXAoKQotICAgICAgICAgICAgICAgICAgICAgbGV0IG1hcHBl ZCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgKihzZWxmLnRhYmxlLmdldF91 bmNoZWNrZWQobm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplKSkgfTsKLSAgICAgICAgICAg ICAgICAgICAgIC8vIGxldCBtYXBwZWQgPSBzZWxmLnRhYmxlW25vbl9hc2NpaSBhcyB1c2l6ZSAt IDB4ODB1c2l6ZV07Ci1AQCAtMTUxLDkgKzE1NCwxMiBAQAotICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0eSwgc3JjLmxlbigpKQotICAgICAg ICAgfTsKLSsgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IGNvbnZlcnRlZCA8PSBsZW5ndGgu IFF1aXRlIG9mdGVuIHdlIGhhdmUgYGNvbnZlcnRlZCA8IGxlbmd0aGAKLSsgICAgICAgIC8vIHdo aWNoIHdpbGwgYmUgc2VwYXJhdGVseSBtYXJrZWQuCi0gICAgICAgICBsZXQgbXV0IGNvbnZlcnRl ZCA9IDB1c2l6ZTsKLSAgICAgICAgICdvdXRlcm1vc3Q6IGxvb3AgewotICAgICAgICAgICAgIG1h dGNoIHVuc2FmZSB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuZ3RoIGlzIHRoZSBt aW5pbXVtIGxlbmd0aCwgYHNyYy9kc3QgKyB4YCB3aWxsIGFsd2F5cyBiZSB2YWxpZCBmb3IgcmVh ZHMvd3JpdGVzIG9mIGBsZW4gLSB4YAotICAgICAgICAgICAgICAgICBhc2NpaV90b19iYXNpY19s YXRpbigKLSAgICAgICAgICAgICAgICAgICAgIHNyYy5hc19wdHIoKS5hZGQoY29udmVydGVkKSwK LSAgICAgICAgICAgICAgICAgICAgIGRzdC5hc19tdXRfcHRyKCkuYWRkKGNvbnZlcnRlZCksCi1A QCAtMTY0LDYgKzE3MCwxMiBAQAotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5n LCBsZW5ndGgsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg U29tZSgobXV0IG5vbl9hc2NpaSwgY29uc3VtZWQpKSA9PiB7Ci0rICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHkgaW52YXJpYW50OiBgY29udmVydGVkIDw9IGxlbmd0aGAgdXBoZWxkLCBzaW5j ZSB0aGlzIGNhbiBvbmx5IGNvbnN1bWUKLSsgICAgICAgICAgICAgICAgICAgIC8vIHVwIHRvIGBs ZW5ndGggLSBjb252ZXJ0ZWRgIGJ5dGVzLgotKyAgICAgICAgICAgICAgICAgICAgLy8KLSsgICAg ICAgICAgICAgICAgICAgIC8vIEZ1cnRoZXJtb3JlLCBpbiB0aGlzIGNvbnRleHQsCi0rICAgICAg ICAgICAgICAgICAgICAvLyB3ZSBjYW4gYXNzdW1lIGBjb252ZXJ0ZWQgPCBsZW5ndGhgIHNpbmNl IHRoaXMgYnJhbmNoIGlzIG9ubHkgZXZlciBoaXQgd2hlbgotKyAgICAgICAgICAgICAgICAgICAg Ly8gYXNjaWlfdG9fYmFzaWNfbGF0aW4gZmFpbHMgdG8gY29uc3VtZSB0aGUgZW50aXJlIHNsaWNl Ci0gICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKz0gY29uc3VtZWQ7Ci0gICAgICAgICAg ICAgICAgICAgICAnbWlkZGxlOiBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBg Y29udmVydGVkYCBkb2Vzbid0IGNvdW50IHRoZSByZWFkaW5nIG9mIGBub25fYXNjaWlgIHlldC4K LUBAIC0xNzIsNiArMTg0LDkgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGF0aWNh bGx5IG9taXQgdGhlIGJvdW5kIGNoZWNrIHdoZW4gYWNjZXNzaW5nCi0gICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYFt1MTY7IDEyOF1gIHdpdGggYW4gaW5kZXgKLSAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBgbm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplYC4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAvLwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Ug Y2FuIHJlbHkgb24gYG5vbl9hc2NpaWAgYmVpbmcgYmV0d2VlbiBgMHg4MGAgYW5kIGAweEZGYCBk dWUgdG8KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgaW52YXJpYW50cyBvZiBgYXNj aWlfdG9fYmFzaWNfbGF0aW4oKWAsIGFuZCBvdXIgdGFibGUgaGFzIGVub3VnaCBzcGFjZSBmb3Ig dGhhdC4KLSAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFwcGVkID0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgKihzZWxmLnRhYmxlLmdldF91bmNoZWNrZWQobm9u X2FzY2lpIGFzIHVzaXplIC0gMHg4MHVzaXplKSkgfTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBsZXQgbWFwcGVkID0gc2VsZi50YWJsZVtub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNp emVdOwotQEAgLTE4Myw5ICsxOTgsMTAgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGJvdW5kIGNoZWNr IGhhcyBhbHJlYWR5IGJlZW4gcGVyZm9ybWVkCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogQXMgbWVudGlvbmVkIGFib3ZlLCBgY29udmVydGVkIDwgbGVuZ3RoYAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0 ZWQpKSA9IG1hcHBlZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVkIDw9IGxlbmd0aGAgdXBoZWxkLCBzaW5j ZSBgY29udmVydGVkIDwgbGVuZ3RoYCBiZWZvcmUgdGhpcwotICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnZlcnRlZCArPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5leHQsIGhh bmRsZSBBU0NJSSBwdW5jdHVhdGlvbiBhbmQgbm9uLUFTQ0lJIHdpdGhvdXQKLSAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBnb2luZyBiYWNrIHRvIEFTQ0lJIGFjY2VsZXJhdGlvbi4gTm9uLUFT Q0lJIHNjcmlwdHMKLUBAIC0xOTgsNyArMjE0LDEwIEBACi0gICAgICAgICAgICAgICAgICAgICAg ICAgaWYgY29udmVydGVkID09IGxlbmd0aCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOwotICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGFyZSBiYWNrIHRv IGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGJlY2F1c2Ugb2YgdGhlID09IGFib3ZlCi0rICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYW5kIGNhbiBwZXJmb3JtIHRoaXMgY2hlY2suCi0gICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBiID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChj b252ZXJ0ZWQpKSB9OwotKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZl cnRlZCA8IGxlbmd0aGAgaXMgdXBoZWxkIGZvciB0aGlzIGxvb3AKLSAgICAgICAgICAgICAgICAg ICAgICAgICAnaW5uZXJtb3N0OiBsb29wIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgYiA+IDEyNyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25fYXNjaWkg PSBiOwotQEAgLTIwOCwxNSArMjI3LDIwIEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGJ5dGUgdW5jb25kaXRpb25hbGx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVucmVhZCBpdAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0byBtYWtlIGl0IHBhcnQgb2YgdGhlIG5l eHQgU0lNRCBzdHJpZGUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPCBs ZW5ndGhgIGlzIHRydWUgZm9yIHRoaXMgbG9vcAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSB1MTY6OmZyb20oYik7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBXZSBhcmUgbm93IGF0IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYC4gV2Ug c2hvdWxkICpub3QqIGBjb250aW51ZWAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g dGhlIGxvb3Agd2l0aG91dCByZXZlcmlmeWluZwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb252ZXJ0ZWQgKz0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYiA8IDYw IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBwdW5jdHVh dGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29udmVydGVkID09IGxl bmd0aCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5k aW5nLCBsZW5ndGgsIGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdlJ3JlIGJhY2sg dG8gYGNvbnZlcnRlZCA8PSBsZW5ndGhgIGJlY2F1c2Ugb2YgdGhlID09IGFib3ZlCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tl ZChjb252ZXJ0ZWQpKSB9OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBUaGUgbG9vcCBjb250aW51ZXMgYXMgYGNvbnZlcnRlZCA8IGxlbmd0aGAKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlICdpbm5lcm1vc3Q7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Un dmUgZ290IG1hcmt1cCBvciBBU0NJSSB0ZXh0Ci1AQCAtMjM0LDYgKzI1OCw4IEBACi0gICAgICAg ICBsb29wIHsKLSAgICAgICAgICAgICBpZiBsZXQgU29tZSgobm9uX2FzY2lpLCBvZmZzZXQpKSA9 IHZhbGlkYXRlX2FzY2lpKGJ5dGVzKSB7Ci0gICAgICAgICAgICAgICAgIHRvdGFsICs9IG9mZnNl dDsKLSsgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjYW4gcmVseSBvbiBgbm9uX2FzY2lp YCBiZWluZyBiZXR3ZWVuIGAweDgwYCBhbmQgYDB4RkZgIGR1ZSB0bwotKyAgICAgICAgICAgICAg ICAvLyB0aGUgaW52YXJpYW50cyBvZiBgYXNjaWlfdG9fYmFzaWNfbGF0aW4oKWAsIGFuZCBvdXIg dGFibGUgaGFzIGVub3VnaCBzcGFjZSBmb3IgdGhhdC4KLSAgICAgICAgICAgICAgICAgbGV0IG1h cHBlZCA9IHVuc2FmZSB7ICooc2VsZi50YWJsZS5nZXRfdW5jaGVja2VkKG5vbl9hc2NpaSBhcyB1 c2l6ZSAtIDB4ODB1c2l6ZSkpIH07Ci0gICAgICAgICAgICAgICAgIGlmIG1hcHBlZCAhPSB1MTY6 OmZyb20obm9uX2FzY2lpKSB7Ci0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWw7Ci1A QCAtMzg0LDkgKzQxMCwxMiBAQAotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAoRW5j b2RlclJlc3VsdDo6SW5wdXRFbXB0eSwgc3JjLmxlbigpKQotICAgICAgICAgfTsKLSsgICAgICAg IC8vIFNhZmV0eSBpbnZhcmlhbnQ6IGNvbnZlcnRlZCA8PSBsZW5ndGguIFF1aXRlIG9mdGVuIHdl IGhhdmUgYGNvbnZlcnRlZCA8IGxlbmd0aGAKLSsgICAgICAgIC8vIHdoaWNoIHdpbGwgYmUgc2Vw YXJhdGVseSBtYXJrZWQuCi0gICAgICAgICBsZXQgbXV0IGNvbnZlcnRlZCA9IDB1c2l6ZTsKLSAg ICAgICAgICdvdXRlcm1vc3Q6IGxvb3AgewotICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7Ci0r ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuZ3RoIGlzIHRoZSBtaW5pbXVtIGxlbmd0aCwg YHNyYy9kc3QgKyB4YCB3aWxsIGFsd2F5cyBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBs ZW4gLSB4YAotICAgICAgICAgICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaSgKLSAgICAgICAg ICAgICAgICAgICAgIHNyYy5hc19wdHIoKS5hZGQoY29udmVydGVkKSwKLSAgICAgICAgICAgICAg ICAgICAgIGRzdC5hc19tdXRfcHRyKCkuYWRkKGNvbnZlcnRlZCksCi1AQCAtMzk3LDE1ICs0MjYs MjMgQEAKLSAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5n dGgpOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIFNvbWUoKG11dCBub25f YXNjaWksIGNvbnN1bWVkKSkgPT4gewotKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5IGlu dmFyaWFudDogYGNvbnZlcnRlZCA8PSBsZW5ndGhgIHVwaGVsZCwgc2luY2UgdGhpcyBjYW4gb25s eSBjb25zdW1lCi0rICAgICAgICAgICAgICAgICAgICAvLyB1cCB0byBgbGVuZ3RoIC0gY29udmVy dGVkYCBieXRlcy4KLSsgICAgICAgICAgICAgICAgICAgIC8vCi0rICAgICAgICAgICAgICAgICAg ICAvLyBGdXJ0aGVybW9yZSwgaW4gdGhpcyBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAg Ly8gd2UgY2FuIGFzc3VtZSBgY29udmVydGVkIDwgbGVuZ3RoYCBzaW5jZSB0aGlzIGJyYW5jaCBp cyBvbmx5IGV2ZXIgaGl0IHdoZW4KLSsgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3RvX2Jh c2ljX2xhdGluIGZhaWxzIHRvIGNvbnN1bWUgdGhlIGVudGlyZSBzbGljZQotICAgICAgICAgICAg ICAgICAgICAgY29udmVydGVkICs9IGNvbnN1bWVkOwotICAgICAgICAgICAgICAgICAgICAgJ21p ZGRsZTogbG9vcCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gYGNvbnZlcnRlZGAgZG9l c24ndCBjb3VudCB0aGUgcmVhZGluZyBvZiBgbm9uX2FzY2lpYCB5ZXQuCi0gICAgICAgICAgICAg ICAgICAgICAgICAgbWF0Y2ggc2VsZi5lbmNvZGVfdTE2KG5vbl9hc2NpaSkgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKGJ5dGUpID0+IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2FmZSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB3ZSdyZSBhbGxvd2VkIHRoaXMgYWNjZXNzIHNpbmNlIGBjb252ZXJ0ZWQg PCBsZW5ndGhgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuZ2V0 X3VuY2hlY2tlZF9tdXQoY29udmVydGVkKSkgPSBieXRlOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVk ICs9IDE7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgY29udmVydGVkIDw9 IGxlbmd0aGAgbm93Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTm9uZSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBuZWVkIHRvIGtub3cgaWYgd2UKLUBAIC00MjEsNiAr NDU4LDggQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnZlcnRlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBjb252ZXJlZCA8IGxlbmd0aCBmcm9tIG91dHNp ZGUgdGhlIG1hdGNoLCBhbmQgYGNvbnZlcnRlZCArIDEgIT0gbGVuZ3RoYCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTbyBgY29udmVydGVkICsgMSA8IGxlbmd0aGAg YXMgd2VsbC4gV2UncmUgaW4gYm91bmRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHNlY29uZCA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHUzMjo6ZnJvbSh1bnNhZmUgeyAqc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkICsgMSkg fSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Vjb25kICYgMHhG QzAwdTMyICE9IDB4REMwMHUzMiB7Ci1AQCAtNDMyLDYgKzQ3MSwxOCBAQAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGUgbmV4dCBjb2RlIHVuaXQgaXMgYSBsb3cgc3Vycm9nYXRlLgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhc3RyYWw6IGNoYXIgPSB1bnNhZmUg ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdl IGNhbiByZWx5IG9uIG5vbl9hc2NpaSBiZWluZyAweEQ4MDAtMHhEQkZGIHNpbmNlIHRoZSBoaWdo IGJpdHMgYXJlIDB4RDgwMAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBUaGVuLCAobm9uX2FzY2lpIDw8IDEwIC0gMHhEODAwIDw8IDEwKSBiZWNvbWVzIGJldHdl ZW4gKDAgdG8gMHgzRkYpIDw8IDEwLCB3aGljaCBpcyBiZXR3ZWVuCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDB4NDAwIHRvIDB4ZmZjMDAuIEFkZGluZyB0aGUg MHgxMDAwMCBnaXZlcyBhIHJhbmdlIG9mIDB4MTA0MDAgdG8gMHgxMGZjMDAuIFN1YnRyYWN0aW5n IHRoZSAweERDMDAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g Z2l2ZXMgMHgyODAwIHRvIDB4MTAyMDAwCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFRoZSBzZWNvbmQgdGVybSBpcyBiZXR3ZWVuIDB4REMwMCBhbmQgMHhERkZG IGZyb20gdGhlIGNoZWNrIGFib3ZlLiBUaGlzIGdpdmVzIGEgbWF4aW11bQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwb3NzaWJsZSByYW5nZSBvZiAoMHgxMDQw MCArIDB4REMwMCkgdG8gKDB4MTAyMDAwICsgMHhERkZGKSB3aGljaCBpcyAweDFFMDAwIHRvIDB4 MTBmZmZmLgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlz IGlzIGluIHJhbmdlLgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGcm9tIGEgVW5p Y29kZSBwcmluY2lwbGVzIHBlcnNwZWN0aXZlIHRoaXMgY2FuIGFsc28gYmUgdmVyaWZpZWQgYXMg d2UgaGF2ZSBjaGVja2VkIHRoYXQgYG5vbl9hc2NpaWAgaXMgYSBoaWdoIHN1cnJvZ2F0ZQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoMHhEODAwLi49MHhEQkZG KSwgYW5kIHRoYXQgYHNlY29uZGAgaXMgYSBsb3cgc3Vycm9nYXRlIChgMHhEQzAwLi49MHhERkZG YCksIGFuZCB3ZSBhcmUgYXBwbHlpbmcgcmV2ZXJzZSBvZiB0aGUgVVRDMTYgdHJhbnNmb3JtYXRp b24KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxnb3JpdGht IDxodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtMTYjQ29kZV9wb2ludHNfZnJvbV9V KzAxMDAwMF90b19VKzEwRkZGRj4sIGJ5IGFwcGx5aW5nIHRoZSBoaWdoIHN1cnJvZ2F0ZSAtIDB4 RDgwMCB0byB0aGUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g aGlnaCB0ZW4gYml0cywgYW5kIHRoZSBsb3cgc3Vycm9nYXRlIC0gMHhEYzAwIHRvIHRoZSBsb3cg dGVuIGJpdHMsIGFuZCB0aGVuIGFkZGluZyAweDEwMDAwCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDo6Y29yZTo6Y2hhcjo6ZnJvbV91MzJfdW5jaGVja2VkKAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHUzMjo6ZnJvbShub25f YXNjaWkpIDw8IDEwKSArIHNlY29uZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0gKCgoMHhEODAwdTMyIDw8IDEwKSAtIDB4MV8wMDAwdTMyKSArIDB4 REMwMHUzMiksCi1AQCAtNDU2LDYgKzUwNyw3IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udmVydGVkICsgMSwgLy8gKzEgYGZvciBub25fYXNjaWlgCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogVGhpcyBicmFuY2ggZGl2ZXJnZXMsIHNvIG5vIG5lZWQgdG8gdXBob2xkIGludmFy aWFudHMgb24gYGNvbnZlcnRlZGAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZXh0 LCBoYW5kbGUgQVNDSUkgcHVuY3R1YXRpb24gYW5kIG5vbi1BU0NJSSB3aXRob3V0Ci1AQCAtNDY5 LDggKzUyMSwxMiBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbnZlcnRlZCA9PSBs ZW5ndGggewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxl bmd0aCwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiB3ZSdyZSBiYWNrIHRvIGBjb252ZXJ0ZWQgPCBsZW5ndGhg IGR1ZSB0byB0aGUgPT0gYWJvdmUgYW5kIGNhbiBwZXJmb3JtCi0rICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdGhlIHVuY2hlY2tlZCByZWFkCi0gICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB1bml0ID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChjb252ZXJ0ZWQpKSB9Owot ICAgICAgICAgICAgICAgICAgICAgICAgICdpbm5lcm1vc3Q6IGxvb3AgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgbG9vcCBhbHdheXMgYmVnaW5zIHdpdGgg YGNvbnZlcnRlZCA8IGxlbmd0aGAsIHNlZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB0aGUgaW52YXJpYW50IG91dHNpZGUgYW5kIHRoZSBjb21tZW50IG9uIHRoZSBjb250aW51ZSBi ZWxvdwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB1bml0ID4gMTI3IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbl9hc2NpaSA9IHVuaXQ7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnbWlkZGxlOwotQEAgLTQ3OSwxOSArNTM1 LDI1IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJ5dGUgdW5jb25kaXRpb25h bGx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVucmVhZCBpdAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyB0byBtYWtlIGl0IHBhcnQgb2YgdGhlIG5leHQgU0lNRCBzdHJpZGUuCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IENhbiByZWx5IG9uIGNvbnZlcnRlZCA8IGxlbmd0aAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuZ2V0X3VuY2hlY2tlZF9tdXQoY29u dmVydGVkKSkgPSB1bml0IGFzIHU4OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArPSAxOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBgY29udmVydGVkIDw9IGxlbmd0aGAgaGVyZQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiB1bml0IDwgNjAgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gV2UndmUgZ290IHB1bmN0dWF0aW9uCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQgPT0gbGVuZ3RoIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZlcnRlZCA8IGxlbmd0aGAgZHVlIHRvIHRoZSA9PSBh Ym92ZS4gVGhlIHJlYWQgaXMgc2FmZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuaXQgPSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgb25seSBoYXBwZW5z IGlmIGBjb252ZXJ0ZWQgPCBsZW5ndGhgLCBtYWludGFpbmluZyBpdAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWUgJ2lubmVybW9zdDsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3Qg bWFya3VwIG9yIEFTQ0lJIHRleHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWUgJ291dGVybW9zdDsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBB bGwgb3RoZXIgcm91dGVzIHRvIGhlcmUgZGl2ZXJnZSBzbyB0aGUgY29udGludWUgaXMgdGhlIG9u bHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2F5IHRvIHJ1biB0aGUgaW5uZXJt b3N0IGxvb3AuCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgICB9Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29k aW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9k ZWZpbmVkLnJzCTIwMjUtMDktMTcgMTc6NDE6MjEuMTQxODA0ODkyICswMzAwCi1AQCAtMTQsMTIg KzE0LDEzIEBACi0gY2ZnX2lmISB7Ci0gICAgIGlmICNbY2ZnKGZlYXR1cmUgPSAic2ltZC1hY2Nl bCIpXSB7Ci0gICAgICAgICB1c2Ugc2ltZF9mdW5jczo6KjsKLS0gICAgICAgIHVzZSBwYWNrZWRf c2ltZDo6dTE2eDg7Ci0rICAgICAgICB1c2UgY29yZTo6c2ltZDo6dTE2eDg7Ci0rICAgICAgICB1 c2UgY29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbE9yZDsKLSAKLSAgICAgICAgICNbaW5saW5l KGFsd2F5cyldCi0gICAgICAgICBmbiBzaGlmdF91cHBlcih1bnBhY2tlZDogdTE2eDgpIC0+IHUx Nng4IHsKLSAgICAgICAgICAgICBsZXQgaGlnaGVzdF9hc2NpaSA9IHUxNng4OjpzcGxhdCgweDdG KTsKLS0gICAgICAgICAgICB1bnBhY2tlZCArIHVucGFja2VkLmd0KGhpZ2hlc3RfYXNjaWkpLnNl bGVjdCh1MTZ4ODo6c3BsYXQoMHhGNzAwKSwgdTE2eDg6OnNwbGF0KDApKSAgICAgICAgfQotKyAg ICAgICAgICAgIHVucGFja2VkICsgdW5wYWNrZWQuc2ltZF9ndChoaWdoZXN0X2FzY2lpKS5zZWxl Y3QodTE2eDg6OnNwbGF0KDB4RjcwMCksIHUxNng4OjpzcGxhdCgwKSkgICAgICAgIH0KLSAgICAg fSBlbHNlIHsKLSAgICAgfQotIH0KLUBAIC0xMTYsMTAgKzExNywxNSBAQAotICAgICAgICAgbGV0 IHNpbWRfaXRlcmF0aW9ucyA9IGxlbmd0aCA+PiA0OwotICAgICAgICAgbGV0IHNyY19wdHIgPSBz cmMuYXNfcHRyKCk7Ci0gICAgICAgICBsZXQgZHN0X3B0ciA9IGRzdC5hc19tdXRfcHRyKCk7Ci0r ICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYGZvciBpIGluIDAuLmxlbmd0aCAvIDE2YAotICAg ICAgICAgZm9yIGkgaW4gMC4uc2ltZF9pdGVyYXRpb25zIHsKLSsgICAgICAgICAgICAvLyBTYWZl dHk6IFRoaXMgaXMgaW4gYm91bmRzOiBsZW5ndGggaXMgdGhlIG1pbnVtdW0gdmFsaWQgbGVuZ3Ro IGZvciBib3RoIHNyYy9kc3QKLSsgICAgICAgICAgICAvLyBhbmQgaSByYW5nZXMgdG8gbGVuZ3Ro LzE2LCBzbyBtdWx0aXBseWluZyBieSAxNiB3aWxsIGFsd2F5cyBiZSBgPCBsZW5ndGhgIGFuZCBj YW4gZG8KLSsgICAgICAgICAgICAvLyBhIDE2IGJ5dGUgcmVhZAotICAgICAgICAgICAgIGxldCBp bnB1dCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjX3B0ci5hZGQoaSAqIDE2KSkgfTsK LSAgICAgICAgICAgICBsZXQgKGZpcnN0LCBzZWNvbmQpID0gc2ltZF91bnBhY2soaW5wdXQpOwot ICAgICAgICAgICAgIHVuc2FmZSB7Ci0rICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc2FtZSBh cyBhYm92ZSwgYnV0IHRoaXMgaXMgdHdvIGNvbnNlY3V0aXZlIDgtYnl0ZSByZWFkcwotICAgICAg ICAgICAgICAgICBzdG9yZThfdW5hbGlnbmVkKGRzdF9wdHIuYWRkKGkgKiAxNiksIHNoaWZ0X3Vw cGVyKGZpcnN0KSk7Ci0gICAgICAgICAgICAgICAgIHN0b3JlOF91bmFsaWduZWQoZHN0X3B0ci5h ZGQoKGkgKiAxNikgKyA4KSwgc2hpZnRfdXBwZXIoc2Vjb25kKSk7Ci0gICAgICAgICAgICAgfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmFwcHZleW9yLnltbCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmFwcHZleW9yLnltbAotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uYXBwdmV5b3IueW1sCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5hcHB2 ZXlvci55bWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU5ICsw LDAgQEAKLS1tYXRyaXg6Ci0tICBhbGxvd19mYWlsdXJlczoKLS0gICAgIyBGSVhNRTogaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy83MgotLSAg ICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKLS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMt d2luZG93cy1nbnUKLS0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dzLWdudQotLSAgZmFz dF9maW5pc2g6IHRydWUKLS0KLS1lbnZpcm9ubWVudDoKLS0gIG1hdHJpeDoKLS0gICAgLSBUQVJH RVQ6IHg4Nl82NC1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0tICAg ICAgTk9WRVJJRlk6ICIxIgotLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtbXN2Ywot LSAgICAgIE1TWVNURU06IE1JTkdXNjQKLS0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVh dHVyZT0rc3NlNC4yIgotLSAgICAgIE5PVkVSSUZZOiAiMSIKLS0gICAgLSBUQVJHRVQ6IHg4Nl82 NC1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0tICAgICAgUlVTVEZM QUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eCIKLS0gICAgICBOT1ZFUklGWTogIjEiCi0tICAg IC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RFTTogTUlOR1c2 NAotLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngyIgotLSAgICAgIE5P VkVSSUZZOiAiMSIKLS0KLS0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCi0tICAg ICAgTVNZU1RFTTogTUlOR1czMgotLSAgICAgIE5PVkVSSUZZOiAiMSIKLS0gICAgLSBUQVJHRVQ6 IGk2ODYtcGMtd2luZG93cy1tc3ZjCi0tICAgICAgTVNZU1RFTTogTUlOR1czMgotLSAgICAgIFJV U1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPStzc2U0LjIiCi0tICAgICAgTk9WRVJJRlk6ICIx IgotLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKLS0gICAgICBNU1lTVEVNOiBN SU5HVzMyCi0tICAgICAgUlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eCIKLS0gICAg ICBOT1ZFUklGWTogIjEiCi0tICAgIC0gVEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YwotLSAg ICAgIE1TWVNURU06IE1JTkdXMzIKLS0gICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVy ZT0rYXZ4MiIKLS0gICAgICBOT1ZFUklGWTogIjEiCi0tCi0tICAgIC0gVEFSR0VUOiB4ODZfNjQt cGMtd2luZG93cy1nbnUKLS0gICAgICBNU1lTVEVNOiBNSU5HVzY0Ci0tCi0tICAgIC0gVEFSR0VU OiBpNjg2LXBjLXdpbmRvd3MtZ251Ci0tICAgICAgTVNZU1RFTTogTUlOR1czMgotLSAgICAtIFRB UkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtZ251Ci0tICAgICAgTVNZU1RFTTogTUlOR1c2NAotLWlu c3RhbGw6Ci0tICAtIHBzOiBpZiAobHMgLXIgLiAtZmkgIioucnMiIHwgc2xzICJgdCIpIHsgdGhy b3cgIkZvdW5kIHRhYiBjaGFyYWN0ZXIiIH0KLS0gIC0gcHM6IFN0YXJ0LUZpbGVEb3dubG9hZCAi aHR0cHM6Ly9zdGF0aWMucnVzdC1sYW5nLm9yZy9kaXN0L3J1c3QtbmlnaHRseS0ke2VudjpUQVJH RVR9LmV4ZSIgLUZpbGVOYW1lICJydXN0LWluc3RhbGwuZXhlIgotLSAgLSBwczogLlxydXN0LWlu c3RhbGwuZXhlIC9WRVJZU0lMRU5UIC9OT1JFU1RBUlQgL0RJUj0iQzpccnVzdCIgfCBPdXQtTnVs bAotLSAgLSBwczogJGVudjpQQVRIPSIkZW52OlBBVEg7QzpccnVzdFxiaW4iCi0tICAtIHNldCBQ QVRIPWM6XG1zeXM2NFwlTVNZU1RFTSVcYmluO2M6XG1zeXM2NFx1c3JcYmluOyVQQVRIJQotLSAg LSBydXN0YyAtdlYKLS0gIC0gY2FyZ28gLXZWCi0tYnVpbGQ6IGZhbHNlCi0tdGVzdF9zY3JpcHQ6 IGJhc2ggLWMgImNpL3J1bi5zaCIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kLy5jYXJnby1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC8uY2FyZ28tY2hlY2tzdW0uanNvbgotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC8uY2FyZ28tY2hlY2tzdW0uanNvbgkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uY2FyZ28tY2hlY2tzdW0uanNv bgkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEgKzAsMCBAQAotLXsi ZmlsZXMiOnsiLmFwcHZleW9yLnltbCI6ImYxZWQwMTg1MGUwZDcyNWY5NDk4ZjUyYTFhNjNkZGY0 MDcwMmFkNmUwYmY1YjJkN2M0YzA0ZDc2ZTk2Nzk0YTMiLCIuZ2l0aHViL3dvcmtmbG93cy9iZW5j aG1hcmtzLnltbCI6ImQwNDlmMDE2ZGM1MzgzMGEzZmNjNzM1ODMzZWNhMTY4ZGYyZTQ5MWYzM2I2 YjQ0Y2U3ZTRkNWQxZGQ0NTM4NTQiLCIuZ2l0aHViL3dvcmtmbG93cy9jaS55bWwiOiIxNzBhMjA3 NGFkZDU3ZGRjOGY4OGI3ODAxNDllNDkzMDE2MmM2ZWU0NzE4YWRkNDM2OWRjYThlM2ZkNmMwMjJh IiwiLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwiOiI4NmY3ZWI2NTJjOTAwNjI0ZTRkZWI3NjMy MGNkOTIxNzVkYjFmYTcyOTVhNzZmMjhmMzAzMzZmZjBmYWQxNjA0IiwiLmdpdGh1Yi93b3JrZmxv d3MvcnVuLWNpLXNjcmlwdC55bWwiOiJkODQ3YmUyOTNmOWVjMTcwMzhlNDUwNjUyYjFlYjdiZGMy MGI4MDVjMThjNWRiYWIzNGQxZDlmZjdhOWM4OTQwIiwiLnRyYXZpcy55bWwiOiIzMGE2MWE1ZWM1 MzM1NWZjMWYzNTg1ZTE2OTAyODAzMDhjMmI3OTYxNzAxYWJjMTFlODM4OWIyMzViNjQ3MTc4Iiwi Q2FyZ28udG9tbCI6IjAyMTUxYzQxNWYyNjdhNmFlYjg2NTExNTg0NzI3NDRkNzFlMWQ5ZGE4ODgz ZGQyMGJlMjU3MzFhNDJlNTIwZjQiLCJMSUNFTlNFLUFQQUNIRSI6ImE2MGVlYTgxNzUxNDUzMTY2 OGQ3ZTAwNzY1NzMxNDQ5ZmUxNGQwNTlkMzI0OWUwYmM5M2IzNmRlNDVmNzU5ZjIiLCJMSUNFTlNF LU1JVCI6IjY0ODViOGVkMzEwZDNmMDM0MGJmMWFkMWY0NzY0NTA2OWNlNDA2OWRjYzZiYjQ2Yzdk NWM2ZmFmNDFkZTFmZGIiLCJSRUFETUUubWQiOiJjNGFjNzAyN2E5YWI3ZDc4NThhYTg5NTdkNzQ1 NGRiZmNkYmI4MWU2MDViNmExNzFmMDUzMTBjYzNjYWQzNzYyIiwiYm9ycy50b21sIjoiZGVlODgx ZGM2OWI5Yjc4MzRlNGViYTVkOTVjM2VkNWE0MTZkNDYyODgxNWExNjdkNmEyMmQ0Y2I0ZmIwNjRi OCIsImJ1aWxkLnJzIjoiMDE5ZWQyOWM0Mzk4OTc4MmQ4ZWVjM2E5NjE2NTRjZmMxNzJkN2E3ODk4 ZGE0ZWNhOGY2NTQ3MDBhZjdlMTk4OCIsImNpL2FsbC5zaCI6IjJhZTZiMjQ0NWI0ZGI4MzgzM2U0 MGIzN2VmZDAwMTZjNmI5ODc5ZWU5ODhiOWIzZWY5NGRiNTQzOWEzZTE2MDYiLCJjaS9hbmRyb2lk LWluc3RhbGwtbmRrLnNoIjoiYmRjZjkzYmE5MDQzYWMxMTg0ZTJjNTA0YTNkNDBjNDdjNmMxNjAx ZDg4MmUwZjBhMjdhOGViNTZmYmFiY2I1ZiIsImNpL2FuZHJvaWQtaW5zdGFsbC1zZGsuc2giOiIz NDkwNDMyMDIyYzVjOGY1YTExNWMwODRmN2E5YWNhMTYyNmY5NmMwYzg3ZmZiNjIwMTkyMjhjNDM0 NmI0N2U0IiwiY2kvYW5kcm9pZC1zeXNpbWFnZS5zaCI6ImViZjRlNWRhYTFmMGZlMWIyMDkyYjc5 ZjBmM2YxNjFjNGM0Mjc1Y2I3NDRlNTIzNTJjNGQ4MWFiNDUxZTRjNWEiLCJjaS9iZW5jaG1hcmsu c2giOiJiNjFkMTllZjZiOTBkZWJhOGZiNzlkZWU3NGM4YjA2MmQ5NDg0NDY3NjI5M2RhMzQ2ZGE4 N2JiNzhhOWE0OWE0IiwiY2kvZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycyI6ImVj OGVjZjgyZDkyMDcyNjc2YWE0N2YwZDFhM2QwMjFiNjBhN2FlMzUzMTE1M2VmMTJkMmZmNDU0MWZj Mjk0ZGMiLCJjaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUiOiJhY2Uy ZTdkMzNjODdiYzBmNmQzOTYyYTRhMzQwOGMwNDU1NzY0NmY3ZjUxYWI5OWNmYmY1NzQ5MDY3OTZi MDE2IiwiY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImRh ODhjMGQ1MGYxNmRjMDg0NDhjN2ZkZjFmYTVlZDJjYmU1NzZhY2Y5ZTdkZDg1YjViODE4NjIxYjJh OGM3MDIiLCJjaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJmaWxlIjoi YmI1ZjhhZTg5MDcwN2MxMjg2NTIyOTBmZmM1NDQ0NDc2NDNiZjEyMDM3ZGRkNzNjNmFkNjk4OWY4 NDhjYjM4MCIsImNpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmls ZSI6IjFhZmFlZmNiYzA1Yjc0MDg1OWFjZDRlMDY3YmM5MjQzOWJlNmJjYmU4ZjJlOTY3ODQ3NGZi NDM0YmNkMzk4ZDkiLCJjaS9kb2NrZXIvYXJtdjctbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmls ZSI6IjM3MGU1NWQzMzMwYTQxM2EzY2NmNjc3YjNhZmIzZTBlZjkwMThhNWZhYjI2M2ZhYTk3YWU4 YWMwMTdmYzIyODYiLCJjaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9j a2VyZmlsZSI6IjgyODJlYTcwN2E5NDEwOWJlZWQ0N2E1NzU3NDc1NWUyZDU4NDAxNzM1OTA0YTAz Zjg1ZmI2NGM1NzhjNTNiNGYiLCJjaS9kb2NrZXIvaTU4Ni11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlIjoiNDk3OTI5MjIyNjlmMzcxYmQyOWRhNDcyN2U5MDg1MTAxYjI3YmU2N2E2Yjk3NzU1 ZDAxOTZjNjMzMTdmN2FiYiIsImNpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgtZ251L0RvY2tl cmZpbGUiOiI0OTc5MjkyMjI2OWYzNzFiZDI5ZGE0NzI3ZTkwODUxMDFiMjdiZTY3YTZiOTc3NTVk MDE5NmM2MzMxN2Y3YWJiIiwiY2kvZG9ja2VyL21pcHMtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZSI6ImIyZWJjMjU3OTc2MTJjNGY4Mzk1ZmU5ZDQwNzcyNTE1NjA0NDk1NWJmYmNmNDQyMDM2 YjdmNTViNDNhNWY5ZGEiLCJjaS9kb2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQv RG9ja2VyZmlsZSI6ImIwYzE2OTJhYzY1YmM1NmRkMzA0OTRiMTk5M2Q4ZTkyOWM0OGNjOWM0Yjky MDI5YjdjNzU5MmFmNmQ0ZjkyMjAiLCJjaS9kb2NrZXIvbWlwczY0ZWwtdW5rbm93bi1saW51eC1n bnVhYmk2NC9Eb2NrZXJmaWxlIjoiNGU5MjQ5YzE3OTMwMDEzODE0MWQwYjJiNzQwMWIxMTg5N2Y2 NGFlZDY5ZjU0MWYwNzhjMWRiNDU5NGRmMjgyNyIsImNpL2RvY2tlci9taXBzZWwtdW5rbm93bi1s aW51eC1tdXNsL0RvY2tlcmZpbGUiOiIzMTY0YzUyYjBkY2JiMDFhZmE3ODI5MmIxNWI1YzQzNTAz Y2NmMDQ5MWNmNmViODAxZWMyYmYyMmFlMjc0ZTUyIiwiY2kvZG9ja2VyL3Bvd2VycGMtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImFlODI3NDMwOTkyODYyMGE1ZGQyMzJhNDYyNjRlMDUz OTliYjc0NjI4OGViZWUzODQzYTcxYzQxNjIyMDhjYzMiLCJjaS9kb2NrZXIvcG93ZXJwYzY0LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiJiYTVmYmM0YmYzYmI5MWNkNTBiNDA3MjQ4ZGEz MTIyNTY4MWVmYzhmMmJlNzYxOGY0YTBhYjEyMTliMzg5NTA4IiwiY2kvZG9ja2VyL3Bvd2VycGM2 NGxlLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI1M2Y5N2Y4YjliNWFjYTc1MzRiOWJm OWVhNDhmMzUxNzUwNTJjZDJhNTYwYTEwN2UwMWFkMjcwNzMxYzAzMmZjIiwiY2kvZG9ja2VyL3Mz OTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI4OWY1NDIxY2YwNmQ4MTdhZTk0MDky OTg3ZTkxNDQ3MmVmMzg0YWQyZDFmZmYyNzM1YmUzZDg3ODZiYTExMjE0IiwiY2kvZG9ja2VyL3Nw YXJjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6IjgzZWJhMTk1NzY0ODZmOWQxMGQ3 YzAzN2Q2NjlkNzJiMzFhNjU1NjVhNDc5ZjMwYjIyYWFiMzZhYWEyZmY4ZGMiLCJjaS9kb2NrZXIv dGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZSI6ImMyZGVjZDU1OTFiZDdh MDkzNzg5MDFiZWY2MjljZDk0NGFjZjA1MmViNTVlNGYzNWI3OWViOWNiNGQ2MjI0NmEiLCJjaS9k b2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSI6IjUx OTU1YThiZjNjNGQ0NDBmNDczODJhZjZmNTQyNmViZmY5NGFiMDFhMDRkYTM2MTc1YmFiZGE5YTA1 Nzc0MGYiLCJjaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlIjoiYjk4 MmI0MjFjNzBkYjQ3NjkwMGRmNWI2MGUxOWVmODgxNWU2YzdkYWUyMjY4NzIyNTAwMjc4MGNhYjdi MGE3NiIsImNpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIjoiYTE3ZWJk YjE4NmNlMmRkNmI2MjEwMGI1YTQzOWUwNWExYWI5YWRhYjExM2UyNTA4ODQzZTEyMWFhZWE1Mjk5 MiIsImNpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmls ZSI6IjQ0YjYyMDNkOTI5MGJmZGM1M2Q4MTIxOWYwOTM3ZTExMTA4NDdhMjNkZDk4MmVjOGM0ZGUz ODgzNTRmMDE1MzYiLCJjaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZp bGUiOiI3ZjRlM2NhNWZhMjg4ZWE3MGVkYjRkMWY3NTMwOTcwOGNkMzBiMTkyZTJlNDQ0NGU2MWM0 ZDViM2I1OGY4OWNmIiwiY2kvZG94LnNoIjoiNDM0ZTk2MTFjNTJlMzg5MzEyZDJiMDM1NjRhZGYw OTQyOWYxMGNjNzZmZTY2YTg2NDRhZGIxMDQ5MDNiODdiNyIsImNpL2xpbnV4LXMzOTB4LnNoIjoi ZDZiNzMyZDc3OTViNGJhMTMxMzI2YWZmODkzYmNhNjIyOGE3ZDJlYjBlOTQwMmYxMzU3MDU0MTNk YmJlMGRjZSIsImNpL2xpbnV4LXNwYXJjNjQuc2giOiJjOTI5NjY4MzhiMWFiN2FkM2I3YTM0NDgz M2VlNzI2YWJhNmI2NDdjZjU5NTJlNTZmMGFkMWJhNDIwYjEzMzI1IiwiY2kvbGxkLXNoaW0ucnMi OiIzZDdmNzFlYzIzYTQ5ZTJiNjdmNjk0YTAxNjg3ODZmOWE5NTRkZGExNWY1YTEzODgxNWQ5NjY2 NDNmZDNmY2MzIiwiY2kvbWF4X2xpbmVfd2lkdGguc2giOiIwYTE1MThiYmE0YzllY2FhNTU2OTRj YjJlOTkzMGQwZTE5YzI2NWJhYWJmNzMxNDNmMTdmOWNmMjg1YWFhNWJiIiwiY2kvcnVuLWRvY2tl ci5zaCI6IjkyZTAzNjM5MGFkOWIwZDE2ZjEwOTU3OWRmMWI1Y2VkMmU3MmU5YWZlYTQwYzdkMDEx NDAwZWJkM2EyYTkwZGUiLCJjaS9ydW4uc2giOiI5YWZhYmM5NjFlMGVlODNiODcyMDFmM2ZkNTU0 YzE5ZTViMGMzNmYzYTk1ZDAxMzU5NWUyNzZjOTg4MmRkMGE0IiwiY2kvcnVuX2V4YW1wbGVzLnNo IjoiZDFhMjNjNmMzNTM3NGEwNjc4YmE1MTE0YjliOGZlZmQ4YmUwYTc5ZTc3NDg3MmE4YmYwODk4 ZDFiYWNhMThkMCIsImNpL3J1bnRlc3QtYW5kcm9pZC5ycyI6IjE0NWE4ZTk3OTlhNTIyMzk3NTA2 MWZlN2U1ODZhZGU1NjY5ZWU0ODc3YTdkN2E0Y2Y2YjRhYjQ4ZThlMzZjN2MiLCJjaS9zZXR1cF9i ZW5jaG1hcmtzLnNoIjoiZmFlMzk2MDAyM2Y2ZjNkMTM4OGNkMmFkMjJmZGJhYjRiMDc1ZjFmMjlk ZDQyOTJkNzk5NGEyMDc4M2JlYjZjZiIsImNpL3Rlc3QtcnVubmVyLWxpbnV4IjoiYzhhYTYwMjVj ZmY1MzA2ZjRmMzFkMGM2MWRjNWY5ZDRkZDVhMWQxODlhYjYxM2VmOGQ0YzM2N2M2OTRkOWNjZCIs ImNvbnRyaWJ1dGluZy5tZCI6IjJkMjYyOTMxMGFkNGQ0NjRjNDgyYmRiYjU4MTlmMGQ2Y2UyMjNj NTc2YWVlZjJjZGNlNmExZjY4NTcwODVlYTUiLCJwZXJmLWd1aWRlLy5naXRpZ25vcmUiOiJmZTgy YzdkYTU1MTA3OWQ4MzJjZjc0MjAwYjBiMzU5YjRkZjk4MjhjYjRhMDQxNmZhNzM4NGYwN2EyYWU2 YTEzIiwicGVyZi1ndWlkZS9ib29rLnRvbWwiOiIxMTVhOTgyODQxMjZjNmIxODAxNzhiNDQ3MTMz MTRjYzQ5NGYwOGE3MTY2MmVlMmNlMTVjZjY3ZjE3YTUxMDY0IiwicGVyZi1ndWlkZS9zcmMvU1VN TUFSWS5tZCI6IjNlMDNiZmZjOTkxZmRjMjA1MGYzZDUxODQyZDcyZDlkMjFlYTZhYmFiNTZhM2Jh ZjNiMmQ1OTczYTc4Yjg5ZTEiLCJwZXJmLWd1aWRlL3NyYy9hc2NpaS5jc3MiOiIyOWFmYjA4ODMz YjJmZTIyNTBmMDQxMmUxZmExMTYxYTI0MzJhMDgyMGExNDk1M2M4NzEyNDQwNzQxN2M3NDFhIiwi cGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kIjoiNWU0OTkxZmY1OGExODNlZjBjZDlmZGMx ZmViNGNkMTJkMDgzYjQ0YmRmODczOTNiYmIwOTI3ODA4ZWYzY2U3ZCIsInBlcmYtZ3VpZGUvc3Jj L2Zsb2F0LW1hdGgvYXBwcm94Lm1kIjoiOGMwOTAzMmZhMmQ3OTVhMGM1ZGIxNzc1ODI2Yzg1MGQy OGViMjYyNzg0NmQwOTY1YzYwZWU3MmRlNjM3MzVhZCIsInBlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1h dGgvZm1hLm1kIjoiMzExMDc2YmE0Yjc0MWQ2MDRhODJlNzRiODNhOGQ3ZThjMzE4ZmNiZDdmNjRj NDM5MmQxY2Y1YWY5NWM2MDI0MyIsInBlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZnAubWQiOiIw NDE1M2U3NzVhYjZlNGYwZDc4MzdiY2M1MTUyMzBkMzI3YjA0ZWRmYTM0Yzg0Y2U5YzllMTBlYmFl ZWYyYmU4IiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kIjoiMDc5ODg3M2I4ZWVk YWVkYTVmZWQ2MmRjOTE2NDViNTdjMjA3NzVhMDJkM2NkNzRkOGJkMDY5NThmMTUxNjUwNiIsInBl cmYtZ3VpZGUvc3JjL2ludHJvZHVjdGlvbi5tZCI6IjlmNWExOWU5ZTY3NTFmMjVkMmRhYWQzOTg5 MWEwY2M2MDA5NzQ1MjdlYzRjODMwNTg0M2Y5NjE4OTEwNjcxYmQiLCJwZXJmLWd1aWRlL3NyYy9w cm9mL2xpbnV4Lm1kIjoiNDQ3NzMxZWI1ZGU3ZDY5MTY2NzI4ZmRiYzVlY2IwYzBjOWRiNjc4ZWE0 OTNiNDVhNTkyZDY3ZGQwMDIxODRjMCIsInBlcmYtZ3VpZGUvc3JjL3Byb2YvbWNhLm1kIjoiZjU2 ZDU0ZjNkMjBlN2FhNGQzMjA1MjE4NmU4MjM3YjAzZDY1OTcxZWI1ZDExMjgwMmI0NDI1NzBmZjEx ZDM0NCIsInBlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kIjoiOGE2NTBjMGZkNmVkZTA5 NjQ3ODliYjY1Nzc1NTdlZWVmMWQ4MjI2YTg5Njc4ODYwMmNlNjE1MjhlMjYwZTQzYyIsInBlcmYt Z3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZCI6IjYxNWY4OGRjYTBhNzA3YjZj NDE2ZmE2MDU0MzVkZDZlMWZiNTM2MWNjNjM5NDI5Y2JmNjhjZDg3NjI0YmQ3OGIiLCJwZXJmLWd1 aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCI6IjE3MDc3NzYwZmYyNGMwMDZiNjA2 ZGQyMTg4OWM1M2Q4NzIyOGY0MzExZjNiYTNhNTc0ZjlhZmRlYWNkODYxNjUiLCJwZXJmLWd1aWRl L3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZCI6IjdlZDFkNzA2OGQ4MTczYTAwZDg0YzE2 Y2ZlNTg3MWNkNjhiOWYwNGY4ZDBjY2EyZDAxZWJjODQ5NTdlYmYyZjYiLCJwZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZCI6ImM0YjM3MTg0MmUwMDg2ZGYxNzg0ODhmZWM5 N2YyMGRlZjhmMGM2MmVlNTg4YmNkMjVmZDk0OGI5YjFmYTIyN2UiLCJwZXJmLWd1aWRlL3NyYy90 YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kIjoiODM1NDI1ZjVlZTU5N2ZiM2U1MWQzNmU3MjVhODFl YmVlMjlmNDU2MTIzMWQxOTU2M2NkNGRhODFkYmIxY2ZjYiIsInBlcmYtZ3VpZGUvc3JjL3Rhcmdl dC1mZWF0dXJlL3J1c3RmbGFncy5tZCI6IjAxMTk3YWNmNmYwYWRlYzhkYjMyYjg1OTE4MTFmNjlj ZWNiNjU1NWEyYjA1ZGM1ZDVlYzI3ZDBlM2Y3YjA2NWUiLCJwZXJmLWd1aWRlL3NyYy92ZXJ0LWhv ci1vcHMubWQiOiJjNjIxMWMwZWU5MWU2MDU1MmVjNTkyZDg5ZDlkOTU3ZWVkYzIxZGVlM2NiZDg5 ZTFhZDY3NjVlYTA2YTI3NDcxIiwicnVzdGZtdC50b21sIjoiZDk5YTQzZjNmOGVmOWU0MjVjZjAx YzMzM2ZiYTlmMDA1MWY4ODhmNWQ4N2FiNGU4ZjYzYzJmN2QwZmU2NjIwZiIsInNyYy9hcGkucnMi OiJiYjE3OTVlOTY1N2E4Mjk4ZDM3ZDIzNDliNDU0NDNmMDhlOWU0NTUzOTlhZDRiNzI3MDE4NjAw NzI4NDc4YzEwIiwic3JjL2FwaS9iaXRfbWFuaXAucnMiOiIyN2YzMDk3ZmMwYTExZTNjNDEwNzA0 OWQ5Nzc5ZTY4MGRjZDY3NDA3YTA2NjcwNDAwOGE2YjljNGZkNTI5ZTA1Iiwic3JjL2FwaS9iaXRt YXNrLnJzIjoiMDU4ZWJjMzhhMmUwMzYzZjA3YTQ0MWQzZTlhNDc3NWFhZWM1N2NjYjE3MGEwZTVk NWVmYTVkYzQ3NDNhYjA3YiIsInNyYy9hcGkvY2FzdC5ycyI6IjAzYjk0YTNkMzE2YWM3YjdiZTcw Njg4MTAwNDQ5MTFlOTY1ZTg4OWEwYWNlN2JhZTc2Mjc0OWNhNzRhOTI3NDciLCJzcmMvYXBpL2Nh c3QvbWFjcm9zLnJzIjoiYjBhMTRkMGM4M2FkMmViYjdhMjc1MTgwZjZkOWUzZjJiYzMxMmJhNTdh N2QzZDZjMzlmYWQ0ZTBmMjBmOTQwOCIsInNyYy9hcGkvY2FzdC92MTI4LnJzIjoiZWRkMDk5NGVm YWM0Mzc5ZGZmMjZlMTc4NDIzYTUyZGJiM2ZmZWIzOGIxZmM5N2NhZTk3NWQ3NDRjMDBiNGZiNiIs InNyYy9hcGkvY2FzdC92MTYucnMiOiI5NmJkOThjMmQyMWIwNjYzYWJlNmMwYWIzMzAwNWIxZmE2 OTNmM2RiN2VlNjc5NTM1MTM5MTM0Mzg2MzQ4NGRhIiwic3JjL2FwaS9jYXN0L3YyNTYucnMiOiI4 YzMxZmU5MWY1ZTc4ZWY3MzdkZmJhNjk3OWNjMTI0MDIxMGNiMDk0YTg5ZDI4NGZlNDU5YmY4YTk5 MWNhMjRiIiwic3JjL2FwaS9jYXN0L3YzMi5ycyI6ImE5OWE3OWRkODRkMmE1ZTZhZGY5ZGI5ODcw NTY3NTkxNWJkMDNmZDEyODdkNDg5YzdmZTM4ZTg0ZDdlNGEwODYiLCJzcmMvYXBpL2Nhc3QvdjUx Mi5ycyI6ImMwZGQ1MjZmNDFlZDdiOGE3MWMzNzQzZDkxMjY3NTU0ZWMwYTBjNzU4MzRjY2MyZTNl Y2IwZWYzMDA0YWY2NDIiLCJzcmMvYXBpL2Nhc3QvdjY0LnJzIjoiNjU3MmZkYmEyYTEyNDFhNmNk NjY2ZDNmMGNjZTMzMDZjZDJjYjdlNWUyMzYxNzJlNTlkNWQ0MzUxYzhhODhhZiIsInNyYy9hcGkv Y21wLnJzIjoiMzU3YzNhMmEwOWM2ZDQ2MTFjMzJkZDdmYTk1YmUyZmFlOTMzZDUxM2UyMjkwMjZl YzliNDQ0NTFhNzdiODg0ZSIsInNyYy9hcGkvY21wL2VxLnJzIjoiNjBmNzBmMzU1YmFlNGNiNWIx N2RiNTMyMDRjYWNjMzg5MGY3MDY3MDYxMWMxN2RmNjM4ZDRjMDRmN2NjODA3NSIsInNyYy9hcGkv Y21wL29yZC5ycyI6IjU4OWY3MjM0NzYxYzI5NGZhNWRmOGY1MjViYzRhY2Q1YTQ3Y2RiNjAyMjA3 ZDUyNGEwZDRlMTk4MDRjZDk2OTUiLCJzcmMvYXBpL2NtcC9wYXJ0aWFsX2VxLnJzIjoiOTAyY2Ni OGFhMDFmZDU3MzhiMzBiYTBiNzEyNjY5YzIxZDQ4MDE5NTg5MDdlMDNiYWQyMzQzMmM3ZGJhMDE5 OCIsInNyYy9hcGkvY21wL3BhcnRpYWxfb3JkLnJzIjoiOWRiMGMzN2Q3NDM0Y2RmYzYyZDhkNjY5 MTJlOTcyZmEzZDhjMTE1YWIyYWYwNTFhNmY0NWU0MTRiZDNlNGYxYyIsInNyYy9hcGkvY21wL3Zl cnRpY2FsLnJzIjoiZGUzZDYyZjM4ZWJhODE3Mjk5YWExNmYxZTE5Mzk5NTRjOWE0NDdlMzE2NTA5 Mzk3NDY1YzI4MzA4NTJiYTA1MyIsInNyYy9hcGkvZGVmYXVsdC5ycyI6IjY3YmYyMWMxMzQxMjdk MTJhNzAyOGM4Yjg4YTU3ZjBjZWVlOGNjYmQ3NDk3NmRhOGNhNzRlYjlmMTZhMTc0ZDUiLCJzcmMv YXBpL2ZtdC5ycyI6IjY3ZmI4MDRiYjg2YjZjZDc3Y2Y4Y2Q0OTJiNTczM2NlNDM3MDcxYjY2ZmUz Mjk3Mjc4YjhhNjU1MmMzMjVkZGEiLCJzcmMvYXBpL2ZtdC9iaW5hcnkucnMiOiIwMmIyYjI4N2Y3 NDA0ZjhhOTgzODEzY2Y3MGM4NzEwOGM4ZGEzODM1NTc4YjYzYWIzMDMxMTY4ODVmNjA5NDEzIiwi c3JjL2FwaS9mbXQvZGVidWcucnMiOiI1NmUxYzNiZGMwOTI3NDczNDRmZmZhYWZmZjlkYTcxNjNl ZTc4Mjc4NTdmNmZiN2NiMWM5OTIzZWNhNGY2ZmEwIiwic3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJz IjoiNTU4ZmQ1OTJmN2Y0ODU3MTJmYjA1MTUwOWNlY2M3MTc0YTIxZTZiZjYyZTVjZTY0NzY2ZTc1 YWZjOTdiYjhlMSIsInNyYy9hcGkvZm10L29jdGFsLnJzIjoiM2IyZTcwODc3YTRmMzY4Yzc3MDRm OGUyNTQyMzZjMDE0YzM2NWM3NGQ5MzM3MWMxZmViNWYwMzBlNmM2NjQyMiIsInNyYy9hcGkvZm10 L3VwcGVyX2hleC5ycyI6IjJhNDQyZjY2NmJjODBlMjJkNDFmOTAzZjg4MTIzOGZlMTE0ZGQ0OTM0 NGMzZWQ2OTg0OTI1MGU4NTNjYWZjNWQiLCJzcmMvYXBpL2Zyb20ucnMiOiIyZTU5OWQ4MzI5Y2Iw NWVhZjA2MjI0Y2M0NDEzNTVjNGI3YjUxMjU0ZmMxOTI1NjYxOTMzM2JlOGMxNDlkNDQ0Iiwic3Jj L2FwaS9mcm9tL2Zyb21fYXJyYXkucnMiOiI1ZDJjYzcwMDU2ODM3NmJmNmVlMWZlNWU0MDZkYTNi YzJkNDg4ZmYxNTU2NDRiZjczZDA2YTEzNDliNzNmYzUzIiwic3JjL2FwaS9mcm9tL2Zyb21fdmVj dG9yLnJzIjoiOTc2NDM3MWFhOWU2MDA1YWFjZTc0ZGVhMTRmNTllNTYxMWEwOTViN2NmNDI3MDc5 NDA5MjQ3NDkyODJjNTJmMCIsInNyYy9hcGkvaGFzaC5ycyI6IjUwNzZlY2U4Nzk2OTU5MmM4NzY0 ODZmNWIxZWE4YWZmYmVhZWMzNzlkMWExNGEzMDg1OWUwYWE1NTkyMDE5ZGUiLCJzcmMvYXBpL2lu dG9fYml0cy5ycyI6IjhmODAxMTYyNzI1MGUyM2U2NmI1YzBjYTY0MWFmYjA3OWQ4MjMyNjc0YmIx MzU0MTQwYjUzNmJkYmVhNjNlNTUiLCJzcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJz IjoiZTc0NDUwMjFmMzkwODMyNmJmZWU3NTg4MzVlNWZjNWFkNTZhYTFiYWE3N2ZjMWM1OGFiZTQz NTBjNjZjNjcwYSIsInNyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycyI6ImJiNGZlOTliZTJhZjZh MjFkODA1ZWZhYjQ0YzhlNGU2MWE3YjJhZGI0MmE2NTUwNGEwY2YyNmQxM2VmZGFkY2QiLCJzcmMv YXBpL2ludG9fYml0cy92MTI4LnJzIjoiMTQ1YTQ0OTIyYjA5YTVjYTViNjJkODhhNDYxZDMyN2Qz OTlhOTk3YTE1ZGI0YjExZDdiMTdlNTU0YTlmYTRjMCIsInNyYy9hcGkvaW50b19iaXRzL3YxNi5y cyI6ImY0ZjRmNjFiYTg4YWE1MWIxNThlYzU2Y2EzZGNlMjM0MzQ5YWVhMGRhZjJiMzAyOWExNGFi NTEyNWQxZTQxZTUiLCJzcmMvYXBpL2ludG9fYml0cy92MjU2LnJzIjoiOGNlYTljNWQ5ODA5ZjEx MzIzY2I3Y2RjNTNiODNkZjU5M2ZkMTdjYWY5MjYyNTFlNDEyYWU5Nzc3YmVkNTQ3ZiIsInNyYy9h cGkvaW50b19iaXRzL3YzMi5ycyI6IjkwNWJhNjgzZDM0MmZhMzJmNDIwMmI4MGJiNDY1MzA4MDdi ZDBhNWI1ODhmNmMyZThjOWY0NzUyMjNjNDc3NzUiLCJzcmMvYXBpL2ludG9fYml0cy92NTEyLnJz IjoiZTI1YWZhMWZiZjA4OGE1ZDU4ZTdkNzVkMTk3YjZjZDRjNTY2MzdlYTI4NTQyYmExOGU0NmE0 NTFmMjlkMDRlNyIsInNyYy9hcGkvaW50b19iaXRzL3Y2NC5ycyI6ImQ2MjM4MDIyY2NmZjdiOTJl NTViM2Y2MDE3ZmMyNjlhY2I2ZjM2MzMwYTZkN2U4ZmIzODk4NTNhMGYxYjY0NzgiLCJzcmMvYXBp L21hdGgucnMiOiI4YjJhMmZjNjUxOTE3YTg1MDUzOWY5OTNhYTBiOWU1YmY0ZGE2N2IxMTY4NTI4 NWI4ZGU4Y2RjYTMxMTcxOWVjIiwic3JjL2FwaS9tYXRoL2Zsb2F0LnJzIjoiNjFkMjc5NGQ2ODI2 MmExMDkwYWU0NzNiZDMwNzkzYjVmNjVjZjczMmYzMmE2Njk0YTNhZjJjZTVkOTIyNTYxNiIsInNy Yy9hcGkvbWF0aC9mbG9hdC9hYnMucnMiOiI1YjZiMjcwMWUyZTExMTM1YjdjZTU4YTA1MDUyZWE4 MTIwZTEwZTQ3MDJjOTVkMDQ2YjlkMjFiODI3YjI2YmY4Iiwic3JjL2FwaS9tYXRoL2Zsb2F0L2Nv bnN0cy5ycyI6IjYzMDJjOTI2MWRhNDI5MWQxNDRkNWJiNTM0OTNjZGQwNzM0OThmZWI0MDk1NWZi Njg2MGVhM2M0ZDA2Yzk3OGEiLCJzcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzIjoiNGMyZGQ3MTcz NzI4ZWYxODkzMTRmMTU3NmM5NDg2ZTAzYmUyMWI3ZGE5ODg0M2IyZjkwMTEyODJhNzk3OWUzMSIs InNyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMiOiI3YzZkNWYxZTMwNGY0OThhMDFjZmEyM2I5MjM4 MGM4MTVkN2RhMGFkOTRlYWUzNDgzNzgzYmMzNzdkMjg3ZWVmIiwic3JjL2FwaS9tYXRoL2Zsb2F0 L2xuLnJzIjoiNTRjNzU4M2YzZGY3OTNiMzlmZjU3NTM0ZmFkZTI3YjQxYmI5OTI0MzllNWRjMTc4 MjUyZjVjYTMxOTBhM2U1NCIsInNyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJzIjoiNjJjYWM3 NzY2MGQyMDE1OTI3NmQ0YzllZjA2NmViOTBjODFjYmRkYjgwOGU4ZTE1NzE4MmM2MDc2MjVhZDJl YiIsInNyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkZS5ycyI6ImJhZTA1NmVlOWYzYTcwZGYzOWVj M2MzYjJmNjQzN2M2NTMwMzg4OGE3Yjg0M2VmMWE1YmNmMWY1YWNhMGU2MDIiLCJzcmMvYXBpL21h dGgvZmxvYXQvcG93Zi5ycyI6IjlkZGI5Mzg5ODRiMzZkMzlkODJhODJmODYyZjgwZGY4ZjdmYjAx M2YxZDIyMmQ0NTY5OGQ0MWQ4ODQ3MmY1NjgiLCJzcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJz IjoiNTg5MjI1Nzk0ZmYxZGJmMzExNThkZmY2NjBlNmQ0NTA5ZWNjOGJlZmJiNTdjNjMzOTAwZGVh NWFjMGI4NDBkNiIsInNyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMiOiJhMzJhYmRjYzMxOGQ3 Y2NjODQ0ODIzMWY1NGQ3NWI4ODRiN2NiZWIwM2E3ZDU5NTcxM2FiNjI0MzAzNmY0ZGJmIiwic3Jj L2FwaS9tYXRoL2Zsb2F0L3Npbi5ycyI6ImNiZDM2MjJiN2RmNzRmMTk2OTE3NDMwMDFjOGNmNzQ3 YTIwMWY4OTc3YWQ5MDU0MmZlZTkxNWYzN2RjZDFlNDkiLCJzcmMvYXBpL21hdGgvZmxvYXQvc3Fy dC5ycyI6IjBjNjZkNWQ2M2ZiMDhlNGQ5OWM2YjgyYTg4MjhlNDExNzNhZmYxYWM5ZmExYTI3NjRh MTFmYWMyMTdjY2YyYWMiLCJzcmMvYXBpL21hdGgvZmxvYXQvc3FydGUucnMiOiI3MzFlMWM5ZjMy MWI2NjJhY2NkZDI3ZGFjYjNhYWMyZTgwNDNiN2FlY2IyZjIxNjFkZGU3MzNiZDlmMDI1MzYyIiwi c3JjL2FwaS9taW5pbWFsLnJzIjoiMWYyMmJjYzUyODU1NTQ0NGU3NmRlNTY5ZWMwYWUyMDI5Yjlh ZTlkMDQ4MDVlZmVhZmE5MzM2OWM4MDk4MDM2YiIsInNyYy9hcGkvbWluaW1hbC9pdWYucnMiOiI4 MTljZmYyNmQzZTE5NmY4MDc2NDViY2MxZDc5ZWIyN2Q5ZjE3NWVkYjg5OTEwZjIyNzRkNTJhMWU5 MTNjZDExIiwic3JjL2FwaS9taW5pbWFsL21hc2sucnMiOiIwY2FlMTBhZTFmYzY1ZjUwNzBlNjg2 YzBjNzliZmJhMjdiODZiMzNkNmMzOTkzNjdiZDQ4NDhmYjM2N2RjZWM0Iiwic3JjL2FwaS9taW5p bWFsL3B0ci5ycyI6ImY3NGQ3YTQ5MjVkNzIwOWZhZWJjMjZlYTgzMTUyNTljYjJjMDhlYzY1Nzg5 YTcwODY5ZTU5NTY0OWE5YmMzOWEiLCJzcmMvYXBpL29wcy5ycyI6IjNlMjczYjI3N2EwZjMwMTlk NDJjM2M1OWNhOTRhNWFmZDQ4ODVkNWFlNmQyMTgyZTUwODliYmVlYzlkZTQyZWUiLCJzcmMvYXBp L29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycyI6ImQyZDVhZDg5N2E1OWRkMDc4NzU0NGY5MjdlMGU3 Y2E0MDcyYzNlNThiMGY0YTIzMjQwODMzMTJiMGQ1YTIxZDciLCJzcmMvYXBpL29wcy9zY2FsYXJf Yml0d2lzZS5ycyI6IjQ4MjIwNGU0NTljYTZiZTc5NTY4ZTFjOWY3MGFkYmUyZDIxNTE0MTJkZGYx MjJmYjIxNjFiZThlYmI1MWM0MGMiLCJzcmMvYXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJz IjoiYzI1MGY1MjA0MmUzN2IyMmQ1NzI1NmM4MGQ0NjA0MTA0Y2ZkMmZiZTJhMmUxMjdjNjc2MjY3 MjcwY2E1ZDM1MCIsInNyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMiOiJjNDc3M2Q0MzVjM2Y5 ZGE0NDU0MzI3ZTZmYmIyYjViNDFhMWMwZWJiMWNjYTczNzJlNjlkYzdhMzQ0YTFiNmU0Iiwic3Jj L2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMiOiJkZGNhMTVkMDlkZGVlZjUwMmMyZWQ2NjEx N2E2MjMwMGNhNjVkODdlOTU5ZThiNjIyZDc2N2JkZjFjMzA3OTEwIiwic3JjL2FwaS9vcHMvdmVj dG9yX2JpdHdpc2UucnMiOiJiMzk2OGY3MDA1YjY0OWVkY2MyMmE1NGUyMzc5YjE0ZDVlZTE5MDQ1 ZjJlNzg0MDI5ODA1NzgxYWUwNDNiNWVlIiwic3JjL2FwaS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9t YXgucnMiOiI3NmJmOGNiNjA3ZTJjNDQyOTIzYzFkYTEwNjFhNmI4MGQ3NDJkNjA3NDA4MDMzYzJh Mzc2MTE2MTExNGNmMmEwIiwic3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5fbWF4LnJzIjoiYTM3 ODc4OWM2ZmY5YjMyYTUxZmJkMGE5N2ZmZDM2ZWQxMDJjZDFmZTZhMDY3ZDJiMDIwMTdjMWRmMzQy ZGVmNiIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMiOiI1MDUyZDE4NTE3ZDc2 NTQxNWQ0MDMyN2U2ZThlNTVhMzEyZGFhY2EwYTVlMmFlYzk1OWJmYTU0YjE2NzVmOWM4Iiwic3Jj L2FwaS9vcHMvdmVjdG9yX25lZy5ycyI6IjVjNjJmNmIwMjIxOTgzY2RiZDIzY2QwYTNhZjM2NzJl NmJhMTI1NWYwZGZlOGIxOWFhZTZmYmQ2NTAzZTIzMWIiLCJzcmMvYXBpL29wcy92ZWN0b3Jfcm90 YXRlcy5ycyI6IjZjM2Y3NjFkOWQ1NTFmNjM2NWE4YTk1NTM5Y2VhY2U0YjFhMDJlMGIxMmQxNDRm MzRlZDY4ZGI5NGU4OGNmZjQiLCJzcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzIjoiZTUxMGJl MTQxMjdjMGZmZDU4YTI1NzNhMzk3MDFkYTM1NTdkNjZiZWRlYzA5ODM3YWM4YmJkNDRkNTc5ZGEw MCIsInNyYy9hcGkvcHRyLnJzIjoiOGE3OTMyNTFiZWQ2MTMwZGNmYjJmMTUxOWNlYWExOGI3NTFi YmIxNTg3NTkyOGQwZmI2ZGViNWE1ZTA3NTIzYSIsInNyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVy LnJzIjoiM2Q2MTRmOWQ1YjRjYTIwMWE5ZjdlNDZhZjQ0MDVlMWQyYzI4ZWNlZTE2MjAyOTdjMjNi NTJlMzdiOTJjYzBlYSIsInNyYy9hcGkvcmVkdWN0aW9ucy5ycyI6ImFlNWJhY2E4MTM1MmVjZDQ0 NTI2ZDZjMzBjMGExZmVlZGE0NzVlYzczZGRkM2MzZWM2YjE0ZTk0NGU1NDQ4ZWUiLCJzcmMvYXBp L3JlZHVjdGlvbnMvYml0d2lzZS5ycyI6IjhiZjkxMGFlMjI2MTg4YmQxNWZjN2UxMjVmMDU4Y2Qy NTY2YjYxODZmY2QwY2Q4ZmQwMjBmMzUyYzM5Y2UxMzkiLCJzcmMvYXBpL3JlZHVjdGlvbnMvZmxv YXRfYXJpdGhtZXRpYy5ycyI6IjQ3YTU2Nzk4OTZkYjJjYmI1NmMzMTM3MmZlNDIxNDNkYTAxNWI2 YmVhZTdkYjVkMmYzYTAzMDlkZGY0MjdhZTEiLCJzcmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9h cml0aG1ldGljLnJzIjoiYzJkZjNjZjc0OTNjY2E0MTc0ZjJjNjVhZWE0MjJhM2QyMGQ4YTIzYWYw M2Y4ZDU3Y2VmNzJjMTlmZWU4ZjIwZCIsInNyYy9hcGkvcmVkdWN0aW9ucy9tYXNrLnJzIjoiZGI4 MzMyN2E5NTBlMzNhMzE3ZjM3ZmQzM2NhNGUyMGMzNDdmYjQxNTk3NWVjMDI0ZjNlMjNkYTg1MDk0 MjVhZiIsInNyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzIjoiNmFmOGM5YWE0NWM2OTk2MWIx YjZmYzIwNTM5NWY0NzY3ZDQ0MjE4NjlmYjEwNWZiM2Q1NjNjNTYwNWZjMTNjZCIsInNyYy9hcGkv c2VsZWN0LnJzIjoiNmIwN2U3ZTgwMjZkZjU2MWY3MzA3MjIxYTg5NmYwZmJiMjcyNTM2ZjQxYjkx MDkwNDBhYzA5NGMyNGM2OTMzMSIsInNyYy9hcGkvc2h1ZmZsZS5ycyI6ImJlN2ZhZmY5YjU5NjU0 OTI2ZGYxMjg5N2IyZjk4YTRiYWE3ZDZhY2YyYWYxYWFmOTNkMzg4YmE2ZTk2ZjgzZWMiLCJzcmMv YXBpL3NodWZmbGUxX2R5bi5ycyI6ImJmZWE1YTkxOTA1YjMxNDQ0ZTllZjdjYTZlZGRiN2E5NjA2 YjdlMjJkM2Y3MWJiODQyZWIyNzk1YTAzNDY2MjAiLCJzcmMvYXBpL3NsaWNlLnJzIjoiZWU4NzQ4 NGU4YWYzMjk1NDdiOWE1ZDRmMmE2OWU4YmVkNmVhMTBiYmQ5NjI3MGQ3MDYwODM4NDNkNGVlYTJh YyIsInNyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycyI6IjM3MzUzNjMwMDA3MzcxMDRhOGZjNWYz OTRhZDhjMzFlYzE0ZTg4NTk1MmJkNTc2NDdkZDJhODQwMDFhZWUwYTYiLCJzcmMvYXBpL3NsaWNl L3dyaXRlX3RvX3NsaWNlLnJzIjoiNzlkMDljNjRkMDA3MjQ3ODNjNzdjNDJlNDU4M2VlZWM5N2Ix OGRiOTRjZjJhZTE0NmI1NjRjM2Y4NWNmZWZkNiIsInNyYy9hcGkvc3dhcF9ieXRlcy5ycyI6IjA1 YjQyNjJlYWFkZTJmNjNlNmNkM2I3ODBjMTlhMDNhZWNkMjQ1OWQ0Y2M0MzYwMDUxZmMwODg4ODcx NzlhNmUiLCJzcmMvY29kZWdlbi5ycyI6ImRiNGYyMzJmYjlmNTcyOGRiMzEwYjg3ZGM4YzQ3MzNi ZTQ4YWZhY2FiMTA1Mzc5OGMwNjEwNmJlZjlhNDJiMDUiLCJzcmMvY29kZWdlbi9iaXRfbWFuaXAu cnMiOiI1MjVlYTZmZjdhZDFlMDQzYjZmNjEzNjk5MjE2NmYxODAzZWQ1NTYzYjdmNmZjMjkyYzFj NDAyNTdkMjBlMjY0Iiwic3JjL2NvZGVnZW4vbGx2bS5ycyI6IjEyZTc0OGI0OTI4YzNiZTZjYzEy YjQxNjVjMzA0MWEzZDBlZmNjZjYxOTUzMzhlY2QzZDg4YjhmZGIwYmJjYzciLCJzcmMvY29kZWdl bi9tYXRoLnJzIjoiZGZjZjAyYWQzNGUyZmRmZTIyYzNmMWNjMjgyMjAwMWNjODk1ZTY1MDMxYjRk MDZlNTg1ZTUwNDc4MzlmZWJiNyIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMiOiIyYzFjYmNl MTU1YmM1MjdjZTM0ZDQ3MmMwZmVmNmJjM2RhZGI3OWNkN2EzNTdkZDdhYTViMWViZWIxZDc3YTEz Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMiOiJkNWFhYWRjZjU0MGJkYjliNDI2NGRj YTY0NzFhMjU1ZmQ3YmY1MDllNzYzYmVmMDIzOWMwMTQ0YTY4NDY2ZmVhIiwic3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9jb3MucnMiOiIxN2YyOGQyOTAwYzg1MmRjYTIyMWZhOWM5MmE5Y2Q1ZmU3ZmQy ZGY4ZDQyN2JiYzYwMjE2Yzc0OWIyYmUwMTNkIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3Nf cGkucnMiOiJkYmFmOWY0NDNmOTg0NmE0OTFkNGVjNTIyMTBhN2I1ODM1ZGQ1OTNiMDMzNjZlMzEz NWIwNWMzN2Q3MGY5ZDZjIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAucnMiOiJkMzAwMDU4 YTRiY2M3YWU3OTc2ZjIxNmY4MTkwMmNkNzNhOWU2MDNhZDYzODgwZGZmM2JiYzg2NmMyN2E5ZjM3 Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9sbi5ycyI6ImM4NTFlMjExZTQzZjgyNTYwOTNiYTc1 YjAzYWUwYzMwN2M5OTYyZWU2NmQ5NGYwOWI0ZGQ4MDA2ODE5MGNiZGYiLCJzcmMvY29kZWdlbi9t YXRoL2Zsb2F0L21hY3Jvcy5ycyI6ImZjOTkyNDg2OWVkODVlNDc5NTk4M2FmMjI4Y2FjZjIzMTU4 ZjRmMzU5MTlhZGNlMTZjOTIwYWQ0YTNmMGEwMDkiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211 bF9hZGQucnMiOiIwNDFhNWI2OWQ1OTkxZDkzZWY3OTUzNTFiMTc1NjBjMTBmYWY4MGI3OGZkMjZh ZDdkZjQyYTIzOWIzMmNmOWRlIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkZS5ycyI6 ImQ3MWQ1ZjBmMzMzM2I2MmE3NDM5YjgyM2NiN2FkZjUzNDBlYTE1NTVjZTgyMGZiNGEzZjRjYjky MmY3M2Y1ZjUiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMiOiI5NzQyYzM4NzdmMWE1 NTA5Y2E1Yzk0OTJhNDA4ODRiNjU3OWJhNmRkMTFjMjZiNzExMmU2M2Y3MDY2NmIzOTVkIiwic3Jj L2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMiOiIwZTk4NjhkMzU1MzE1NjY1MDlmM2EwMWQ4NWQ1 MjUzMDQ1ZWI0YWZhODUyNWQ4NDA3ZGNjMWY1ZjMzYzU2MDM2Iiwic3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9zaW5fY29zX3BpLnJzIjoiOGU2YjYxNDJkN2RkMjQwY2RiMzY2Njk3MjJlODJhYjk4MTBh MjI2MWU4NmU2NTlmN2Q5N2E5NDJhZDhiMTI1OCIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2lu X3BpLnJzIjoiYmI2ZDM5ZGI4ZjkyMWUwM2EzMDFmYzUyMDZhYzFhNjFhOTdkZWY4YTJjYjgzYjg3 Y2NmMTg5ZjNmYzQ4ZDU0OCIsInNyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydC5ycyI6ImU2ZWJi MGM1ZjQyOGVmYWQxZjY3MmI5YThmZTRlNTg1MzRkYmYxZWE1YThmZTA5MmNlNWNlNzZiNTJmZTg5 Y2IiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzIjoiMjNhY2ZhZWEzOGQwZTA4MWE2 ZDkwMjFjMTA5NGU4MTNkMGNmZDEyYzU4YzFlY2E5NjYyYWFkZTVlNjI1ZDUxYyIsInNyYy9jb2Rl Z2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJzIjoiNmNhMTNjMjE0YjZjZjdlMDkyOWRiZTE4ZTk2YTE2 ZmMwYmI3ZDg3OTk2MDhkZjI5YzRjODExNTQ5MGY5OWUwMSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlv bnMucnMiOiI4ZWIxOGViYWM3Njk4NWQyYWEzMDI2MmEyZWRkOGNiMDA0MjMwYjUxMWE3NjVkNjU3 NTI1ZjY3N2E1ODVjMTJjIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzIjoiZTY3ZjM1 YTFmNGQxNTZhNDg5NGEyZDZlYTVhOTM1YjRkODk4Y2Y3MGVlZmIyNzE1ZjVjMWNjMTY1ZTc3NmMx MSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hYXJjaDY0LnJzIjoiODRiMTAxYzE3Y2Fk MWVkZTRlYjZkMzhjYWRhMGFjN2RhMjM5ZGJhOGNlYTNiYWRkMzgyOWI5NjdlNTU4NDMxZiIsInNy Yy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMiOiJhYWEwNzEyOWJkMDc4YWU3ZTY3N2Nm OGI4ZTY3ZWM5ZjMwNTM2NjA2YTBjN2VkMWJhYWExOGZkMTc5M2JiMjE4Iiwic3JjL2NvZGVnZW4v cmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzIjoiM2ViOTMxOWQyYzdjZjE5MjE2YjYwN2I4NDU5 NjEyYzRlMDI3YjY0M2NmMTFiMDM2OTM3ZDM2ODk2YmY3Njc4NiIsInNyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzIjoiNzY1NDdmMzk2ZTU1ZWY0MDMzMjdjNzdjMzE0 Y2Y4ZGI4YzdhNWM5Yjk4MTliZmI5MjVhYmVhY2YxMzAyNDllNSIsInNyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay94ODYucnMiOiIzNmRjZDhhZjRhYjk5NzMwYTA3OGVkMTEzZDM5NTVmNzRlYjFh Mjg3NmUyZTZkOWYyMjRlMGZmNDYyYzIxNmQxIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNr L3g4Ni9hdngucnMiOiIzYTQwODY4YjM4Yzg2ZTM1YWVmYjk2ZDc1NzhkZTYzMjJlZmU4OWQ4MTM1 ZTAzNjYzNTliNTRkZGQwNmY4NjFhIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9h dngyLnJzIjoiNjc3YWVkM2YwNTYyODUyODVkYWEzYWRmZjhiYzY1ZTczOTYzMGI0NDI0ZGVmYTZk OTY2NWUxNjBmMDI3NTA3ZSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlLnJz IjoiODUyMmY2ZWQwM2Y2YzMyZGQ1NzdkNDI5OGRmNDc3YzA4YWVhYWEzODU2MzcwNmYyOTA5NmUx OTExZWQ3MzFmMiIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycyI6IjU0 ZWM1NmU0OWIwYzY4NDFlY2NiNzE5ZTRmMzEwZDY1ZmU3NjdjMDQxMzZiMmVjMjBiZDhiOWQ3ZDk4 OTdiOWUiLCJzcmMvY29kZWdlbi9zaHVmZmxlLnJzIjoiMWVjMjkzMGY0ZTFhY2M0M2FjMzBiNTE4 YWYyOThkNDY2YTc5ZTllNzU3MzRhNTFjMzgwYjc4MTBlZmQxYTI3ZiIsInNyYy9jb2RlZ2VuL3No dWZmbGUxX2R5bi5ycyI6IjNmMTNjYTE1OTczNzg3NThkMDUxMDZiZjVmZjM3MTVlZWU1MzFmM2Ni NmQ4OGY0OGI5MTgyYmQ2YzkzODZiNTEiLCJzcmMvY29kZWdlbi9zd2FwX2J5dGVzLnJzIjoiYzY3 Yzg2ZTkxY2EzZmM3NzUzOWUwZWZjZWEwODFhM2M2MjU0OGNjY2Y1MDM5NjNhZTQwOGYyZTg2ZjRl NmEyMSIsInNyYy9jb2RlZ2VuL3YxMjgucnMiOiI5NDIyNmIzMWVjNDAzZDE4ZDlkMmZlMDY3MTNm MTQ3YzljNzllOWI1ZjkxMDUwODkwODgyNjYzMTNmODQzMTg1Iiwic3JjL2NvZGVnZW4vdjE2LnJz IjoiZGRlYzRmZmI2NmI2ZjdhYWZmYjlhMTc4MGM1ZGRiYTgyNTU3YWJkNzRmNDUwNzNkMzM1MDQ3 ZTA0Y2Y3NDkyNCIsInNyYy9jb2RlZ2VuL3YyNTYucnMiOiI2YjYzOTE3ZjA0NDQxMThkNmIxNTk1 YmZmMjA0NWU1OWI5N2M0ZDI0MDEyYmQ1NzVmNjlmMWYwZWZjNWEwMjQxIiwic3JjL2NvZGVnZW4v djMyLnJzIjoiMzQ3N2IzYzU1NDBhZWQ4NmU2MWUyZjU4MDdkZDMxZGI5NDc0MTNjZWM5MTgxYzU4 N2Q5M2VkNmVjNzRmMGViYSIsInNyYy9jb2RlZ2VuL3Y1MTIucnMiOiI1ODU0Zjk5ZDNhYWJjNGNk NDJiMjhhMjBkOWNlNDQ3NzU2ZGMyYmEwMjRhNDA5YTY5YjZhOGFlMWYxODQyZmM1Iiwic3JjL2Nv ZGVnZW4vdjY0LnJzIjoiZTllODljYWViZmU2M2QxMGMwY2JjYTYxZTRkZmRiYTNiN2UwMmVlMDk4 OTE3MGY4MGJlZWQyMzIzN2RkZDk1MCIsInNyYy9jb2RlZ2VuL3ZQdHIucnMiOiJmMDc1M2I0MDVj ZGM4NjViZGY4ZTgyYzY1MDVmMjk5ZWExZjk2MTM2MjM5ZWJiYWY3ZjljZTkzZDMxMDc2NGI4Iiwi c3JjL2NvZGVnZW4vdlNpemUucnMiOiJjODlmNWZkZWIyOGFjNGM4MjcyZWQxODE2ZmNlMDNkOWQ5 NTMwOGNjMzJiYjI1MzNiZDhiMjBjZDVhYzEwMmFjIiwic3JjL2xpYi5ycyI6IjA1MDQ4YzZhODVl YzY1Y2Y5MDJkOWRkOGY3NTdhM2Y3NjM5MmI3MDNhNjc5NGVhNzFmMGQ0MTUwMGE4OWY3OGYiLCJz cmMvbWFza3MucnMiOiI3MGZjMGFiZTRjMjkwN2NlMmE0OTFjNTc0ZTFjZmI5ZjM0MjMzODVkYTJl MWE5MjNhNDhjOWMxM2Y4YmE2ZWQ4Iiwic3JjL3NlYWxlZC5ycyI6ImFlN2ZkZWFmNWQ4NGNkNzcx MGVkNzMwY2E3MmNhN2VhYmE5M2RmNmNiMGFjYjE4M2U1YzBhNzMyN2FjZjE5N2YiLCJzcmMvdGVz dGluZy5ycyI6Ijg5NjY2OWMwOGQ4YzgwMTQ0OGE0ZDJmYWRjOWQ2MzNlZGEwZmJlODc5ZDIyOTk5 N2UyYTE4MmUzMTI3OGU0NjkiLCJzcmMvdGVzdGluZy9tYWNyb3MucnMiOiI0MDNiYmM1ZWNiN2M3 ODZmZTM2MTU2ZGYzMDJkMGMwN2E4MTIyNDA4ZGJiMTVmNzQ3NGQ3NjgyMjI0YmExMTA2Iiwic3Jj L3Rlc3RpbmcvdXRpbHMucnMiOiI0MTkxMmE5MjI2NmRmZTg4NDY0N2ZjMDM1ZTQyNDJmZDc0NjEw MGRmOGU4Mzk4MDhhZTAzOTdhZjM3NTlhM2M4Iiwic3JjL3YxMjgucnMiOiIxNmNmOWE4ZTcxNTZi ODk5ZWU5YjljZDNmMmRiYTlkMTNlYzYzMjg5YmVhOGMzZWU5YWUyZTQzYWQ5NTEwMjg4Iiwic3Jj L3YxNi5ycyI6ImNiNjQ2NWNmMWUwMGJmNTMwMTgzYWYxODE5YjlmZTNkN2VlYzk3OGY4NzY1ZDVl ODVkOWI1OGEzOWE0YjQwNDUiLCJzcmMvdjI1Ni5ycyI6ImZlMjM1MDE3ZGExOGM3ZjNjMzYxODMx YzYwZTMxNzNhZDMwNGQ4ZWExZTk1ZDY0ZWJlYmM3OWRhMmQ3MDg1MTEiLCJzcmMvdjMyLnJzIjoi MTQ1ZDM0Nzg1NWJhYzU5YjJkZTY1MDhmOWU1OTQ2NTRlNmMzMzA0MjNhZjllZGMwZTJhYzhmNGQx YWJkZjQ1ZSIsInNyYy92NTEyLnJzIjoiZjM3MmYyNzdmM2U2MmViNWM5NDViYjFjNDYwMzMzZmRi MTdiNjk3NGZjYzg3NjYzMzc4OGZmNTNiZGVkOTU5OSIsInNyYy92NjQucnMiOiIwYjgwNzk4ODFi NzE1NzVlMzQxNGJlMGI3ZjhmN2VhYmE2NTI4MWJhNjczMmYyYjJmNjFmNzNlOTViNmY0OGY3Iiwi c3JjL3ZQdHIucnMiOiI4YjNlNDMzZDQ4NzE4MGJiNDMwNGZmNzEyNDVlY2FkOTBmMDAxMGY0M2Ux MzlhNzIwMjdiNjcyYWJlNThmYWNjIiwic3JjL3ZTaXplLnJzIjoiZWRhNWFhMDIwNzA2Y2JmOTRk MTViYWRhNDFhMGMyYTM1ZmM4ZjNmMzdjYjdjMmNkNmYzNGQyMDEzOTlhNDk1ZSIsInRlc3RzL2Vu ZGlhbm5lc3MucnMiOiI1MTQ3Zjg2ZDIyNGM0YzU0MGI3NzIwMzNkYTJmOTk0Y2FkOWJjOWMwMzVm MzhlYzIxZTIzYmM0ZTU1ZjhhNzU5In0sInBhY2thZ2UiOm51bGx9Ci1cIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5n aXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbAotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbAkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbAkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzEgKzAsMCBAQAotLW5hbWU6IGJlbmNobWFya3MK LS0KLS1vbjoKLS0gIHB1c2g6Ci0tICAgIGJyYW5jaGVzOgotLSAgICAgIC0gbWFzdGVyCi0tICBw dWxsX3JlcXVlc3Q6Ci0tICB3b3JrZmxvd19kaXNwYXRjaDoKLS0KLS1qb2JzOgotLSAgeDg2XzY0 LXVua25vd24tbGludXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1j aS1zY3JpcHQueW1sCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1s aW51eC1nbnUKLS0gICAgICBzZXR1cF9zY3JpcHQ6IGNpL3NldHVwX2JlbmNobWFya3Muc2gKLS0g ICAgICBzY3JpcHQ6IGNpL2JlbmNobWFyay5zaAotLSAgICAgIG5vcnVuOiAxCi0tICAgICAgdmVy aWZ5OiAxCi0tICAgICAgIyBGSVhNRTogZmlndXJlIG91dCBob3cgdG8gYWRkIGRvd25sb2FkZWQg aXNwYyB0byBQQVRICi0tICAgICAgIyBmZWF0dXJlczogaXNwYwotLSAgeDg2XzY0LWFwcGxlLWRh cndpbjoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAot LSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogeDg2XzY0LWFwcGxlLWRhcndpbgotLSAgICAgIHJ1 bm5lcjogbWFjb3MtbGF0ZXN0Ci0tICAgICAgc2V0dXBfc2NyaXB0OiBjaS9zZXR1cF9iZW5jaG1h cmtzLnNoCi0tICAgICAgc2NyaXB0OiBjaS9iZW5jaG1hcmsuc2gKLS0gICAgICBub3J1bjogMQot LSAgICAgIHZlcmlmeTogMQotLSAgICAgICMgRklYTUU6IGZpZ3VyZSBvdXQgaG93IHRvIGFkZCBk b3dubG9hZGVkIGlzcGMgdG8gUEFUSAotLSAgICAgICMgZmVhdHVyZXM6IGlzcGMKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2NpLnlt bCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1s Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2Np LnltbAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9jaS55bWwJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIxOCArMCwwIEBACi0tbmFtZTogY2kKLS0K LS0jIHRyaWdnZXIgZm9yIGFsbCBQUnMgYW5kIGNoYW5nZXMgdG8gbWFzdGVyCi0tb246Ci0tICBw dXNoOgotLSAgICBicmFuY2hlczoKLS0gICAgICAtIG1hc3RlcgotLSAgcHVsbF9yZXF1ZXN0Ogot LQotLWpvYnM6Ci0tICBydXN0Zm10OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sCi0tICAgIHdpdGg6Ci0tICAgICAgc2NyaXB0OiBjaS9hbGwuc2ggY2hl Y2tfZm10IHx8IHRydWUKLS0gIHg4Nl82NC11bmtub3duLWxpbnV4LWFuZHJvaWQ6Ci0tICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6 Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB4ODZf NjQtbGludXgtYW5kcm9pZAotLSAgYXJtdjctbGludXgtYW5kcm9pZGVhYmk6Ci0tICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0t ICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBhcm12Ny1s aW51eC1hbmRyb2lkZWFiaQotLSAgYWFyY2g2NC11bmtub3duLWxpbnV4LWFuZHJvaWQtTkVPTjoK LS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBz dHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJn ZXQ6IGFhcmNoNjQtbGludXgtYW5kcm9pZAotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVh dHVyZT0rbmVvbgotLSAgdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmk6Ci0tICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0t ICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogdGh1bWJ2 N25lb24tbGludXgtYW5kcm9pZGVhYmkKLS0gIGk1ODYtdW5rbm93bi1saW51eC1nbnU6Ci0tICAg IHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRl Z3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDog aTU4Ni11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0aW9uLW1v ZGVsPXN0YXRpYwotLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudS1TU0U6Ci0tICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAg ICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogaTU4Ni11bmtu b3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0aW9uLW1vZGVsPXN0YXRp YyAtQ3RhcmdldC1mZWF0dXJlPStzc2UKLS0gIGk1ODYtdW5rbm93bi1saW51eC1nbnUtU1NFMjoK LS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBz dHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFy Z2V0OiBpNTg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRp b24tbW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTIKLS0gIGk2ODYtdW5rbm93bi1s aW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55 bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgot LSAgICAgIHRhcmdldDogaTY4Ni11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczog LUNyZWxvY2F0aW9uLW1vZGVsPXN0YXRpYwotLSAgaTY4Ni11bmtub3duLWxpbnV4LWdudS1TU0U0 XzI6Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0g ICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAg IHRhcmdldDogaTY4Ni11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUNyZWxv Y2F0aW9uLW1vZGVsPXN0YXRpYyAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKLS0gIGk2ODYtdW5r bm93bi1saW51eC1nbnUtQVZYMjoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4t Y2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0t ICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBpNjg2LXVua25vd24tbGludXgtZ251Ci0tICAgICAg cnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9K2F2 eDIKLS0gIHg4Nl82NC11bmtub3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZh c3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4 LWdudQotLSAgeDg2XzY0LXVua25vd24tbGludXgtZ251LVNTRTRfMjoKLS0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAg ICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtu b3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rc3NlNC4y Ci0tICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUtQVZYMjoKLS0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWls LWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxp bnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rYXZ4MgotLSAgYXJt LXVua25vd24tbGludXgtZ251ZWFiaWhmOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1 ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhm Ci0tICBhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZjoKLS0gICAgdXNlczogLi8uZ2l0aHVi L3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWls LWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICB0YXJnZXQ6IGFybXY3LXVua25vd24tbGlu dXgtZ251ZWFiaWhmCi0tICBhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi1ORU9OOgotLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0 ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDog YXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0 LWZlYXR1cmU9K25lb24KLS0gIHRodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmOgot LSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0 cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0gICAgICB0YXJn ZXQ6IHRodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmCi0tICBhYXJjaDY0LXVua25v d24tbGludXgtZ251LU5FT046Ci0tICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNp LXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAg IHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBhYXJjaDY0LXVua25vd24tbGludXgtZ251Ci0tICAgICAg cnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCi0tICBwb3dlcnBjLXVua25vd24tbGlu dXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1s Ci0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKLS0gICAgd2l0aDoKLS0g ICAgICB0YXJnZXQ6IHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKLS0gIHBvd2VycGM2NC11bmtu b3duLWxpbnV4LWdudToKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2Ny aXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdp dGg6Ci0tICAgICAgdGFyZ2V0OiBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKLS0gIHBvd2Vy cGM2NGxlLXVua25vd24tbGludXgtZ251OgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1 ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1n bnUKLS0gIHBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251LUFMVElWRUM6Ci0tICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0t ICAgICAgZmFpbC1mYXN0OiB0cnVlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiBwb3dlcnBj NjRsZS11bmtub3duLWxpbnV4LWdudQotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVy ZT0rYWx0aXZlYwotLSAgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUtVlNYOgotLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5 OgotLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogcG93 ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZl YXR1cmU9K3ZzeAotLSAgczM5MHgtdW5rbm93bi1saW51eC1nbnU6Ci0tICAgIHVzZXM6IC4vLmdp dGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAgICAg ZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogczM5MHgtdW5rbm93 bi1saW51eC1nbnUKLS0gIHNwYXJjNjQtdW5rbm93bi1saW51eC1nbnU6Ci0tICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKLS0gICAgc3RyYXRlZ3k6Ci0tICAg ICAgZmFpbC1mYXN0OiBmYWxzZQotLSAgICB3aXRoOgotLSAgICAgIHRhcmdldDogc3BhcmM2NC11 bmtub3duLWxpbnV4LWdudQotLSAgd2FzbTMyLXVua25vd24tdW5rbm93bjoKLS0gICAgdXNlczog Li8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0g ICAgICBmYWlsLWZhc3Q6IGZhbHNlCi0tICAgIHdpdGg6Ci0tICAgICAgdGFyZ2V0OiB3YXNtMzIt dW5rbm93bi11bmtub3duCi0tICB4ODZfNjQtYXBwbGUtZGFyd2luLVNTRTRfMjoKLS0gICAgdXNl czogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToK LS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICBydW5uZXI6IG1hY29z LWxhdGVzdAotLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgdGFyZ2V0OiB4ODZfNjQt YXBwbGUtZGFyd2luCi0tICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIK LS0gIHg4Nl82NC1hcHBsZS1kYXJ3aW4tQVZYOgotLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCi0tICAgIHN0cmF0ZWd5OgotLSAgICAgIGZhaWwtZmFzdDog dHJ1ZQotLSAgICB3aXRoOgotLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0Ci0tICAgICAgc2Ny aXB0OiBjaS9ydW4uc2gKLS0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1kYXJ3aW4KLS0gICAg ICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K2F2eAotLSAgeDg2XzY0LWFwcGxlLWlvczoK LS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBz dHJhdGVneToKLS0gICAgICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICBydW5u ZXI6IG1hY29zLWxhdGVzdAotLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgdGFyZ2V0 OiB4ODZfNjQtYXBwbGUtaW9zCi0tICBhYXJjaDY0LWFwcGxlLWlvczoKLS0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAotLSAgICBzdHJhdGVneToKLS0gICAg ICBmYWlsLWZhc3Q6IHRydWUKLS0gICAgd2l0aDoKLS0gICAgICBydW5uZXI6IG1hY29zLWxhdGVz dAotLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgdGFyZ2V0OiBhYXJjaDY0LWFwcGxl LWlvcwotLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rbmVvbgotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55 bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2RvY3Mu eW1sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dz L2RvY3MueW1sCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1sCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMyArMCwwIEBACi0tbmFtZTog ZG9jcwotLQotLW9uOgotLSAgcHVzaDoKLS0gICAgYnJhbmNoZXM6Ci0tICAgICAgLSBtYXN0ZXIK LS0KLS1qb2JzOgotLSAgZG9jczoKLS0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4t Y2ktc2NyaXB0LnltbAotLSAgICB3aXRoOgotLSAgICAgIHNldHVwX3NjcmlwdDogY2FyZ28gaW5z dGFsbCBtZGJvb2sKLS0gICAgICBzY3JpcHQ6IGNpL2RveC5zaAotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55 bWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL3J1bi1j aS1zY3JpcHQueW1sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIv d29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zs b3dzL3J1bi1jaS1zY3JpcHQueW1sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw4NiArMCwwIEBACi0tbmFtZTogcnVuLWNpLXNjcmlwdAotLQotLW9uOgotLSAgd29y a2Zsb3dfY2FsbDoKLS0gICAgaW5wdXRzOgotLSAgICAgIHJ1bm5lcjoKLS0gICAgICAgIHJlcXVp cmVkOiBmYWxzZQotLSAgICAgICAgdHlwZTogc3RyaW5nCi0tICAgICAgICBkZWZhdWx0OiB1YnVu dHUtbGF0ZXN0Ci0tICAgICAgdGFyZ2V0OgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCi0tICAg ICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICAgIGRlZmF1bHQ6ICcnCi0tICAgICAgcnVzdGZsYWdz OgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCi0tICAgICAgICB0eXBlOiBzdHJpbmcKLS0gICAg ICAgIGRlZmF1bHQ6ICcnCi0tICAgICAgc2NyaXB0OgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNl Ci0tICAgICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICAgIGRlZmF1bHQ6IGNpL3J1bi1kb2NrZXIu c2gKLS0gICAgICBzZXR1cF9zY3JpcHQ6Ci0tICAgICAgICByZXF1aXJlZDogZmFsc2UKLS0gICAg ICAgIHR5cGU6IHN0cmluZwotLSAgICAgIG5vcnVuOgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNl Ci0tICAgICAgICB0eXBlOiBzdHJpbmcKLS0gICAgICAgIGRlZmF1bHQ6ICcnCi0tICAgICAgdmVy aWZ5OgotLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCi0tICAgICAgICB0eXBlOiBzdHJpbmcKLS0g ICAgICAgIGRlZmF1bHQ6ICcnCi0tICAgICAgZmVhdHVyZXM6Ci0tICAgICAgICByZXF1aXJlZDog ZmFsc2UKLS0gICAgICAgIHR5cGU6IHN0cmluZwotLSAgICAgICAgZGVmYXVsdDogJycKLS0KLS1q b2JzOgotLSAgcnVuLWNpLXNjcmlwdDoKLS0gICAgcnVucy1vbjogJHt7IGlucHV0cy5ydW5uZXIg fX0KLS0gICAgc3RlcHM6Ci0tICAgICAgLSBuYW1lOiBDaGVja291dAotLSAgICAgICAgdXNlczog YWN0aW9ucy9jaGVja291dEB2MgotLSAgICAgIC0gbmFtZTogSW5pdCBSdXN0dXAgQ2FjaGUKLS0g ICAgICAgIHVzZXM6IGFjdGlvbnMvY2FjaGVAdjIKLS0gICAgICAgIHdpdGg6Ci0tICAgICAgICAg IHBhdGg6IHwKLS0gICAgICAgICAgICB+Ly5ydXN0dXAvdG9vbGNoYWlucwotLSAgICAgICAgICBr ZXk6ICR7eyBydW5uZXIub3MgfX0tY2FyZ28tJHt7IGhhc2hGaWxlcygnKiovcnVzdC10b29sY2hh aW4nKSB9fQotLSAgICAgIC0gbmFtZTogSW5zdGFsbCBUb29sY2hhaW4KLS0gICAgICAgIHVzZXM6 IGR0b2xuYXkvcnVzdC10b29sY2hhaW5AbmlnaHRseQotLSAgICAgICAgd2l0aDoKLS0gICAgICAg ICAgIyBGSVhNRTogY2hhbmdlIHRvIG5pZ2h0bHkgb25jZSBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nL3BhY2tlZF9zaW1kL3B1bGwvMzUwIGlzIG1lcmdlZAotLSAgICAgICAgICAjIG5lZWRz IHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSB0b29sY2hhaW4gZmlsZXMKLS0gICAgICAgICAg dGFyZ2V0czogJHt7IGlucHV0cy50YXJnZXQgfX0KLS0gICAgICAgICAgY29tcG9uZW50czogcnVz dGZtdAotLSAgICAgIC0gbmFtZTogR2VuZXJhdGUgTG9ja2ZpbGUKLS0gICAgICAgIHJ1bjogY2Fy Z28gZ2VuZXJhdGUtbG9ja2ZpbGUKLS0gICAgICAtIG5hbWU6IEluaXQgQ2FyZ28gQ2FjaGUKLS0g ICAgICAgIHVzZXM6IGFjdGlvbnMvY2FjaGVAdjIKLS0gICAgICAgIHdpdGg6Ci0tICAgICAgICAg IHBhdGg6IHwKLS0gICAgICAgICAgICB+Ly5jYXJnby9iaW4vCi0tICAgICAgICAgICAgfi8uY2Fy Z28vcmVnaXN0cnkvaW5kZXgvCi0tICAgICAgICAgICAgfi8uY2FyZ28vcmVnaXN0cnkvY2FjaGUv Ci0tICAgICAgICAgICAgfi8uY2FyZ28vZ2l0L2RiLwotLSAgICAgICAgICAgIHRhcmdldC8KLS0g ICAgICAgICAga2V5OiAke3sgcnVubmVyLm9zIH19LWNhcmdvLSR7eyBoYXNoRmlsZXMoJyoqL0Nh cmdvLmxvY2snKSB9fQotLSAgICAgIC0gbmFtZTogU2V0dXAKLS0gICAgICAgIGlmOiAke3sgaW5w dXRzLnNldHVwX3NjcmlwdCAhPSAnJyB9fQotLSAgICAgICAgcnVuOiAke3sgaW5wdXRzLnNldHVw X3NjcmlwdCB9fQotLSAgICAgICAgZW52OgotLSAgICAgICAgICBUQVJHRVQ6ICR7eyBpbnB1dHMu dGFyZ2V0IH19Ci0tICAgICAgICAgIFJVU1RGTEFHUzogJHt7IGlucHV0cy5ydXN0ZmxhZ3MgfX0K LS0gICAgICAgICAgTk9SVU46ICR7eyBpbnB1dHMubm9ydW4gfX0KLS0gICAgICAgICAgVkVSSUZZ OiAke3sgaW5wdXRzLnZlcmlmeSB9fQotLSAgICAgICAgICBGRUFUVVJFUzogJHt7IGlucHV0cy5m ZWF0dXJlcyB9fQotLSAgICAgIC0gbmFtZTogUnVuIENJIFNjcmlwdAotLSAgICAgICAgdGltZW91 dC1taW51dGVzOiAzMAotLSAgICAgICAgcnVuOiAke3sgaW5wdXRzLnNjcmlwdCB9fQotLSAgICAg ICAgZW52OgotLSAgICAgICAgICBUQVJHRVQ6ICR7eyBpbnB1dHMudGFyZ2V0IH19Ci0tICAgICAg ICAgIFJVU1RGTEFHUzogJHt7IGlucHV0cy5ydXN0ZmxhZ3MgfX0KLS0gICAgICAgICAgTk9SVU46 ICR7eyBpbnB1dHMubm9ydW4gfX0KLS0gICAgICAgICAgVkVSSUZZOiAke3sgaW5wdXRzLnZlcmlm eSB9fQotLSAgICAgICAgICBGRUFUVVJFUzogJHt7IGlucHV0cy5mZWF0dXJlcyB9fQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLnRyYXZpcy55bWwgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy50cmF2aXMueW1sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kLy50cmF2aXMueW1sCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy50cmF2aXMueW1sCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMTIgKzAsMCBAQAotLWxhbmd1 YWdlOiBydXN0Ci0tcnVzdDogbmlnaHRseQotLW9zOiBsaW51eAotLWRpc3Q6IGZvY2FsCi0tCi0t c3RhZ2VzOgotLSAgLSB0b29scwotLSAgLSBidWlsZC10ZXN0LXZlcmlmeSAjIFBhc3NlcyBmdWxs IHRlc3Qgc3VpdGUsIHBlcm1pdCBubyByZWdyZXNzaW9ucyAodW5sZXNzIGl0J3MgcnVzdHVwIDov KQotLSAgLSAzMmJpdC10aWVyMQotLSAgLSA2NGJpdC10aWVyMgotLSAgLSAzMmJpdC10aWVyMgot LQotLWpvYnM6Ci0tICBmYXN0X2ZpbmlzaDogdHJ1ZQotLSAgaW5jbHVkZToKLS0gICAgIyBBbmRy b2lkOgotLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC1saW51eC1hbmRyb2lkCi0tICAgICAgbmFt ZTogIng4Nl82NC11bmtub3duLWxpbnV4LWFuZHJvaWQgKyBTU0UyIgotLSAgICAgIHN0YWdlOiBi dWlsZC10ZXN0LXZlcmlmeQotLSAgICAtIGVudjogVEFSR0VUPWFybS1saW51eC1hbmRyb2lkZWFi aQotLSAgICAgIG5hbWU6ICJhcm0tbGludXgtYW5kcm9pZGVhYmkiCi0tICAgICAgc3RhZ2U6IGJ1 aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gbmFtZTogImFhcmNoNjQtdW5rbm93bi1saW51eC1hbmRy b2lkICsgTkVPTiIKLS0gICAgICBlbnY6IFRBUkdFVD1hYXJjaDY0LWxpbnV4LWFuZHJvaWQgUlVT VEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rbmVvbiIKLS0gICAgICBzdGFnZTogYnVpbGQtdGVz dC12ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD0idGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVh YmkiCi0tICAgICAgbmFtZTogInRodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpIgotLSAgICAg IHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAjIExpbnV4OgotLSAgICAtIGVudjogVEFSR0VUPWk1 ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBuYW1lOiAiaTU4Ni11bmtub3duLWxpbnV4LWdu dSIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1pNTg2LXVu a25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZSIKLS0gICAg ICBuYW1lOiAiaTU4Ni11bmtub3duLWxpbnV4LWdudSArIFNTRSIKLS0gICAgICBzdGFnZTogMzJi aXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdFVD1pNTg2LXVua25vd24tbGludXgtZ251IFJVU1RG TEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTIiCi0tICAgICAgbmFtZTogImk1ODYtdW5rbm93 bi1saW51eC1nbnUgKyBTU0UyIgotLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIGVu djogVEFSR0VUPWk2ODYtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBuYW1lOiAiaTY4Ni11bmtu b3duLWxpbnV4LWdudSArIFNTRTIiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIxCi0tICAgIC0g ZW52OiBUQVJHRVQ9aTY4Ni11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1m ZWF0dXJlPStzc2U0LjIiCi0tICAgICAgbmFtZTogImk2ODYtdW5rbm93bi1saW51eC1nbnUgKyBT U0U0LjIiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIxCi0tICAgIC0gZW52OiBUQVJHRVQ9aTY4 Ni11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSthdngyIgot LSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24tbGludXgtZ251ICsgQVZYMiIKLS0gICAgICBzdGFn ZTogMzJiaXQtdGllcjEKLS0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1saW51eC1n bnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlNC4yIgotLSAgICAgIG5hbWU6ICJ4 ODZfNjQtdW5rbm93bi1saW51eC1nbnUgKyBTU0U0LjIiCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRl c3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tbGludXgtZ251IFJV U1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCi0tICAgICAgbmFtZTogIng4Nl82NC11 bmtub3duLWxpbnV4LWdudSArIEFWWDIiCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5 Ci0tICAgIC0gZW52OiBUQVJHRVQ9YXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmCi0tICAgICAg bmFtZTogImFybS11bmtub3duLWxpbnV4LWdudWVhYmloZiIKLS0gICAgICBzdGFnZTogYnVpbGQt dGVzdC12ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD1hcm12Ny11bmtub3duLWxpbnV4LWdudWVh YmloZgotLSAgICAgIG5hbWU6ICJhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZiIKLS0gICAg ICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKLS0gICAgLSBlbnY6IFRBUkdFVD1hcm12Ny11bmtu b3duLWxpbnV4LWdudWVhYmloZiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStuZW9uIgot LSAgICAgIG5hbWU6ICJhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZiArIE5FT04iCi0tICAg ICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gZW52OiBUQVJHRVQ9InRodW1idjdu ZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmIgotLSAgICAgIG5hbWU6ICJ0aHVtYnY3bmVvbi11 bmtub3duLWxpbnV4LWdudWVhYmloZiIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAg LSBuYW1lOiAiYWFyY2g2NC11bmtub3duLWxpbnV4LWdudSArIE5FT04iCi0tICAgICAgZW52OiBU QVJHRVQ9YWFyY2g2NC11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0 dXJlPStuZW9uIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAtIGVudjog VEFSR0VUPW1pcHMtdW5rbm93bi1saW51eC1nbnUKLS0gICAgICBuYW1lOiAibWlwcy11bmtub3du LWxpbnV4LWdudSIKLS0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKLS0gICAgLSBlbnY6IFRBUkdF VD1taXBzZWwtdW5rbm93bi1saW51eC1tdXNsCi0tICAgICAgbmFtZTogIm1pcHNlbC11bmtub3du LWxpbnV4LW11c2wiCi0tICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCi0tICAgIC0gZW52OiBUQVJH RVQ9bWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQKLS0gICAgICBuYW1lOiAibWlwczY0LXVu a25vd24tbGludXgtZ251YWJpNjQiCi0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAgIC0g ZW52OiBUQVJHRVQ9bWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NAotLSAgICAgIG5hbWU6 ICJtaXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0IgotLSAgICAgIHN0YWdlOiA2NGJpdC10 aWVyMgotLSAgICAgICMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTgKLS0gICAgICAjIGVudjogVEFSR0VUPW1pcHM2NGVsLXVu a25vd24tbGludXgtZ251YWJpNjQgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rbXNhIC1D IHRhcmdldC1jcHU9bWlwczY0cjYiCi0tICAgIC0gZW52OiBUQVJHRVQ9cG93ZXJwYy11bmtub3du LWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJwb3dlcnBjLXVua25vd24tbGludXgtZ251IgotLSAg ICAgIHN0YWdlOiAzMmJpdC10aWVyMgotLSAgICAtIGVudjogVEFSR0VUPXBvd2VycGM2NC11bmtu b3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUi Ci0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAgIC0gbmFtZTogInBvd2VycGM2NGxlLXVu a25vd24tbGludXgtZ251IgotLSAgICAgIGVudjogVEFSR0VUPXBvd2VycGM2NGxlLXVua25vd24t bGludXgtZ251Ci0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0gbmFtZTog InBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251ICsgQUxUSVZFQyIKLS0gICAgICBlbnY6IFRB UkdFVD1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1m ZWF0dXJlPSthbHRpdmVjIgotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAt IG5hbWU6ICJwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSArIFZTWCIKLS0gICAgICBlbnY6 IFRBUkdFVD1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdl dC1mZWF0dXJlPSt2c3giCi0tICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Ci0tICAgIC0g bmFtZTogInMzOTB4LXVua25vd24tbGludXgtZ251IgotLSAgICAgIGVudjogVEFSR0VUPXMzOTB4 LXVua25vd24tbGludXgtZ251Ci0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAgIC0gZW52 OiBUQVJHRVQ9c3BhcmM2NC11bmtub3duLWxpbnV4LWdudQotLSAgICAgIG5hbWU6ICJzcGFyYzY0 LXVua25vd24tbGludXgtZ251IgotLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgotLSAgICAjIFdl YkFzc2VtYmx5OgotLSAgICAtIGVudjogVEFSR0VUPXdhc20zMi11bmtub3duLXVua25vd24KLS0g ICAgICBuYW1lOiAid2FzbTMyLXVua25vd24tdW5rbm93biIKLS0gICAgICBzdGFnZTogMzJiaXQt dGllcjIKLS0gICAgIyBNYWNPU1g6Ci0tICAgIC0gb3M6IG9zeAotLSAgICAgIGVudjogVEFSR0VU PXg4Nl82NC1hcHBsZS1kYXJ3aW4gUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlNC4y IgotLSAgICAgIG5hbWU6ICJ4ODZfNjQtYXBwbGUtZGFyd2luICsgU1NFNC4yIgotLSAgICAgIGlu c3RhbGw6IHRydWUKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAgIG9zeF9pbWFnZTog eGNvZGUxMAotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAgICAgICMgVHJhdmlz LUNJIE9TWCBidWlsZCBib3RzIGRvIG5vdCBzdXBwb3J0IEFWWDI6Ci0tICAgIC0gb3M6IG9zeAot LSAgICAgIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1kYXJ3aW4gUlVTVEZMQUdTPSItQyB0YXJn ZXQtZmVhdHVyZT0rYXZ4IgotLSAgICAgIG5hbWU6ICJ4ODZfNjQtYXBwbGUtZGFyd2luICsgQVZY IgotLSAgICAgIGluc3RhbGw6IHRydWUKLS0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAgICAg IG9zeF9pbWFnZTogeGNvZGUxMAotLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQotLSAg ICAjICpCU0RzOgotLSAgICAjLSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24tZnJlZWJzZCBOT1JV Tj0xCi0tICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICMtIGVudjogVEFSR0VUPXg4Nl82 NC11bmtub3duLWZyZWVic2QgTk9SVU49MQotLSAgICAjICBzY3JpcHQ6IGNpL3J1bi5zaAotLSAg ICAjLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1uZXRic2QgTk9SVU49MQotLSAgICAjICBz Y3JpcHQ6IGNpL3J1bi5zaAotLSAgICAjIFNvbGFyaXM6Ci0tICAgICMtIGVudjogVEFSR0VUPXg4 Nl82NC1zdW4tc29sYXJpcyBOT1JVTj0xCi0tICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAg ICMgaU9TOgotLSAgICAtIG9zOiBvc3gKLS0gICAgICBlbnY6IFRBUkdFVD14ODZfNjQtYXBwbGUt aW9zCi0tICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1pb3MgKyBTU0UyIgotLSAgICAgIHNjcmlw dDogY2kvcnVuLnNoCi0tICAgICAgb3N4X2ltYWdlOiB4Y29kZTkuNAotLSAgICAgIHN0YWdlOiA2 NGJpdC10aWVyMgotLSAgICAtIG5hbWU6ICJhYXJjaDY0LWFwcGxlLWlvcyArIE5FT04iCi0tICAg ICAgZW52OiBUQVJHRVQ9YWFyY2g2NC1hcHBsZS1pb3MgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVh dHVyZT0rbmVvbiIKLS0gICAgICBvczogb3N4Ci0tICAgICAgb3N4X2ltYWdlOiB4Y29kZTkuNAot LSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCi0tICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCi0tICAg ICMgQkVOQ0hNQVJLUzoKLS0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAtIHg4Nl82NC11bmtub3du LWxpbnV4LWdudSIKLS0gICAgICBpbnN0YWxsOiBUQVJHRVQ9eDg2XzY0LXVua25vd24tbGludXgt Z251IC4vY2kvc2V0dXBfYmVuY2htYXJrcy5zaAotLSAgICAgICMgRklYTUU6IFVzZSBgY29yZV9h cmNoLHNsZWVmLXN5c2AgZmVhdHVyZXMgb25jZSB0aGV5IHdvcmtzIGFnYWluCi0tICAgICAgc2Ny aXB0OiBQQVRIPSQocHdkKTokUEFUSCBOT1JVTj0xIFZFUklGWT0xIEZFQVRVUkVTPWlzcGMgY2kv YmVuY2htYXJrLnNoCi0tICAgICAgc3RhZ2U6IHRvb2xzCi0tICAgIC0gbmFtZTogIkJlbmNobWFy a3MgLSB4ODZfNjQtYXBwbGUtZGFyd2luIgotLSAgICAgIGluc3RhbGw6IFRBUkdFVD14ODZfNjQt YXBwbGUtZGFyd2luIC4vY2kvc2V0dXBfYmVuY2htYXJrcy5zaAotLSAgICAgICMgRklYTUU6IFVz ZSBgY29yZV9hcmNoLHNsZWVmLXN5c2AgZmVhdHVyZXMgb25jZSB0aGV5IHdvcmtzIGFnYWluCi0t ICAgICAgc2NyaXB0OiBQQVRIPSQocHdkKTokUEFUSCBOT1JVTj0xIFZFUklGWT0xIEZFQVRVUkVT PWlzcGMgY2kvYmVuY2htYXJrLnNoCi0tICAgICAgb3M6IG9zeAotLSAgICAgIG9zeF9pbWFnZTog eGNvZGU5LjQKLS0gICAgICBzdGFnZTogdG9vbHMKLS0gICAgIyBUT09MUzoKLS0gICAgLSBuYW1l OiAiRG9jdW1lbnRhdGlvbiIKLS0gICAgICBiZWZvcmVfaW5zdGFsbDoKLS0gICAgICAgIC0gc3Vk byBhZGQtYXB0LXJlcG9zaXRvcnkgLXkgcHBhOmRlYWRzbmFrZXMvcHBhCi0tICAgICAgICAtIHN1 ZG8gYXB0LWdldCB1cGRhdGUgLXkKLS0gICAgICAgIC0gc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkg cHl0aG9uMy45Ci0tICAgICAgaW5zdGFsbDoKLS0gICAgICAgIC0gY2FyZ28gaW5zdGFsbCBtZGJv b2sKLS0gICAgICBzY3JpcHQ6IGNpL2RveC5zaAotLSAgICAgIHN0YWdlOiB0b29scwotLSAgICAt IG5hbWU6ICJydXN0Zm10IgotLSAgICAgIGluc3RhbGw6IHRydWUKLS0gICAgICBzY3JpcHQ6IHwK LS0gICAgICAgIHJ1c3R1cCB0b29sY2hhaW4gaW5zdGFsbCBuaWdodGx5IC1jIHJ1c3RmbXQgLS1h bGxvdy1kb3duZ3JhZGUKLS0gICAgICAgIGNpL2FsbC5zaCBjaGVja19mbXQgfHwgdHJ1ZQotLSAg ICAgIHN0YWdlOiB0b29scwotLQotLSAgYWxsb3dfZmFpbHVyZXM6Ci0tICAgICMgRklYTUU6IElT UEMgY2Fubm90IGJlIGZvdW5kPwotLSAgICAtIG5hbWU6ICJCZW5jaG1hcmtzIC0geDg2XzY0LWFw cGxlLWRhcndpbiIKLS0gICAgIyBGSVhNRTogaTY4NiBmYWlscyBpbiBpbmxpbmluZywgYXBwYXJl bnRseQotLSAgICAtIHN0YWdlOiAzMmJpdC10aWVyMQotLSAgICAjLSBlbnY6IFRBUkdFVD1pNjg2 LXVua25vd24tZnJlZWJzZCBOT1JVTj0xCi0tICAgICMtIGVudjogVEFSR0VUPXg4Nl82NC11bmtu b3duLWZyZWVic2QgTk9SVU49MQotLSAgICAjLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1u ZXRic2QgTk9SVU49MQotLSAgICAjLSBlbnY6IFRBUkdFVD14ODZfNjQtc3VuLXNvbGFyaXMgTk9S VU49MQotLQotLSAgICAjIEZJWE1FOiBUQkQKLS0gICAgLSBzdGFnZTogNjRiaXQtdGllcjIKLS0g ICAgLSBzdGFnZTogMzJiaXQtdGllcjIKLS0KLS0gICAgIyBGSVhNRTogaU9TCi0tICAgICMgaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yNgot LSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1pb3MKLS0gICAgIyBJcyB0aGlzIHJlbGF0 ZWQgdG8gdGhlIGFib3ZlPyBNeXN0ZXJpb3VzIHRlc3QgZmFpbHVyZQotLSAgICAtIG5hbWU6ICJh YXJjaDY0LWFwcGxlLWlvcyArIE5FT04iCi0tCi0taW5zdGFsbDogdHJhdmlzX3JldHJ5IHJ1c3R1 cCB0YXJnZXQgYWRkICRUQVJHRVQKLS1iZWZvcmVfc2NyaXB0OiBjYXJnbyBnZW5lcmF0ZS1sb2Nr ZmlsZQotLXNjcmlwdDogdHJhdmlzX3dhaXQgNTAgY2kvcnVuLWRvY2tlci5zaAotLWFmdGVyX3Nj cmlwdDogc2xlZXAgNQotLQotLWVudjoKLS0gIGdsb2JhbDoKLS0gICAgc2VjdXJlOiAibFBIdjdz NitBeFFZTmFGbmN5Y1ZGUXQrK1kxYXNRbU1oT2lrUVUxenRsUDhDSzcraG4ybTk4Y2cvZXVPSnl6 SU9iMmlKM1pYNGNHWmt6dzRsYzU5TVFCQnliMUd0RGJhelFvVU96VkRiVmZlOUJERDJmOEpWb0lG aDFDTWZqUEtRN0dnL3JKcVdsd3JVbFNkNUdOeFBDdXRLalk3cVpoSnVSNlNRYkpqbFdhR04yVmQ0 ZlZDektYejhmSFJYZ01FWlMrZCtDUjROc3JrYjgzSjNaNHM1a1NkSm1oWXhKNjFBV2p1ekpWd1Vo NGwzL0hFWWxTTDVYWHB1aDVSMmk3VzE2aDFQbE5kYVRVZ2tabGkxbEh6TzgrNlE4THpYOStYaUxJ RVZYOWx3M0EyTmRJS0d6OEUvKzdRczVvWU9rd1loalJPc0RReElLN3hrU00zMGJRdU43Y3dNQnli QVZJeU9QSmtxWFExZFF5cDgzS1Nkc09qN0pNeUREUnZjRURMSTZlaFJsbTVFY2RIN1lyUmV1Ym9O ODFpVW8wU2E3VnN1VW1najVoakVSQ3Q5cjMwZjlhV3VpdEFCYWk3dktSdGpnbGc3U3A1Q3JFVlBB NFBRczZQcUtDQ1JvZ29nZ2JYSi9aNUR5dy9SWmFYUGVOUjkrcUlLTjFWam05R2V3MXNSTjJKSy8z K3ZYVEt0eUpYSC91QnhnSnQ0alFsYnVTaE9KdUYrQlNmVEY4OHNNZTY3YS8zNTdTU09JYjRKa2FD eWQwZmxEQ1dZRTg1NzZrYUhQbFZWTVQycGVYZWUwTGVSWG0xZTEzbkczTmEwdDNMUy9vckpMUEhP U2hOUUdvRGo3cUFQNWFFS2dnUnlhODk2Skd3dHZsYUJISFRtU1FoNjVHN2N5TkVyWm89IgotLWJy YW5jaGVzOgotLSAgb25seToKLS0gICAgLSBzdGFnaW5nICMgYm9ycyByKwotLSAgICAtIHRyeWlu ZyAgIyBib3JzIHRyeQotLSAgICAtIG1hc3RlcgotLW5vdGlmaWNhdGlvbnM6Ci0tICBlbWFpbDoK LS0gICAgb25fc3VjY2VzczogbmV2ZXIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0Nhcmdv LnRvbWwKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvQ2FyZ28udG9tbAkyMDI1 LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9DYXJnby50b21sCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci1AQCAtMSw4MCArMCwwIEBACi0tIyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFU RUQgQlkgQ0FSR08KLS0jCi0tIyBXaGVuIHVwbG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5 IENhcmdvIHdpbGwgYXV0b21hdGljYWxseQotLSMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxl cyBmb3IgbWF4aW1hbCBjb21wYXRpYmlsaXR5Ci0tIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJn byBhbmQgYWxzbyByZXdyaXRlIGBwYXRoYCBkZXBlbmRlbmNpZXMKLS0jIHRvIHJlZ2lzdHJ5IChl LmcuLCBjcmF0ZXMuaW8pIGRlcGVuZGVuY2llcy4KLS0jCi0tIyBJZiB5b3UgYXJlIHJlYWRpbmcg dGhpcyBmaWxlIGJlIGF3YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRvbWwKLS0jIHdpbGwg bGlrZWx5IGxvb2sgdmVyeSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCi0t IyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCi0tCi0tW3Bh Y2thZ2VdCi0tZWRpdGlvbiA9ICIyMDE4IgotLW5hbWUgPSAicGFja2VkX3NpbWQiCi0tdmVyc2lv biA9ICIwLjMuOSIKLS1idWlsZCA9ICJidWlsZC5ycyIKLS1kZXNjcmlwdGlvbiA9ICJQb3J0YWJs ZSBQYWNrZWQgU0lNRCB2ZWN0b3JzIgotLWhvbWVwYWdlID0gImh0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvcGFja2VkX3NpbWQiCi0tZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMv Y3JhdGUvcGFja2VkX3NpbWQvIgotLXJlYWRtZSA9ICJSRUFETUUubWQiCi0ta2V5d29yZHMgPSBb Ci0tICAgICJzaW1kIiwKLS0gICAgInZlY3RvciIsCi0tICAgICJwb3J0YWJpbGl0eSIsCi0tXQot LWNhdGVnb3JpZXMgPSBbCi0tICAgICJoYXJkd2FyZS1zdXBwb3J0IiwKLS0gICAgImNvbmN1cnJl bmN5IiwKLS0gICAgIm5vLXN0ZCIsCi0tICAgICJkYXRhLXN0cnVjdHVyZXMiLAotLV0KLS1saWNl bnNlID0gIk1JVCBPUiBBcGFjaGUtMi4wIgotLXJlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZCIKLS0KLS1bcGFja2FnZS5tZXRhZGF0YS5kb2NzLnJz XQotLWZlYXR1cmVzID0gWyJpbnRvX2JpdHMiXQotLXJ1c3Rkb2MtYXJncyA9IFsKLS0gICAgIi0t Y2ZnIiwKLS0gICAgImRvY19jZmciLAotLV0KLS0KLS1bZGVwZW5kZW5jaWVzXQotLWNmZy1pZiA9 ICIxLjAuMCIKLS0KLS1bZGVwZW5kZW5jaWVzLmNvcmVfYXJjaF0KLS12ZXJzaW9uID0gIjAuMS41 IgotLW9wdGlvbmFsID0gdHJ1ZQotLQotLVtkZXBlbmRlbmNpZXMubnVtLXRyYWl0c10KLS12ZXJz aW9uID0gIjAuMi4xNCIKLS1kZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UKLS0KLS1bZGV2LWRlcGVu ZGVuY2llc10KLS1wYXN0ZSA9ICJeMSIKLS0KLS1bZGV2LWRlcGVuZGVuY2llcy5hcnJheXZlY10K LS12ZXJzaW9uID0gIl4wLjUiCi0tZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlCi0tCi0tW2ZlYXR1 cmVzXQotLWRlZmF1bHQgPSBbXQotLWludG9fYml0cyA9IFtdCi0tbGliY29yZV9uZW9uID0gW10K LS0KLS1bdGFyZ2V0LiJjZmcodGFyZ2V0X2FyY2ggPSBcIng4Nl82NFwiKSIuZGVwZW5kZW5jaWVz LnNsZWVmLXN5c10KLS12ZXJzaW9uID0gIjAuMS4yIgotLW9wdGlvbmFsID0gdHJ1ZQotLQotLVt0 YXJnZXQud2FzbTMyLXVua25vd24tdW5rbm93bi5kZXYtZGVwZW5kZW5jaWVzXQotLXdhc20tYmlu ZGdlbiA9ICI9MC4yLjg3IgotLXdhc20tYmluZGdlbi10ZXN0ID0gIj0wLjMuMzciCi0tCi0tW2Jh ZGdlcy5pcy1pdC1tYWludGFpbmVkLWlzc3VlLXJlc29sdXRpb25dCi0tcmVwb3NpdG9yeSA9ICJy dXN0LWxhbmcvcGFja2VkX3NpbWQiCi0tCi0tW2JhZGdlcy5pcy1pdC1tYWludGFpbmVkLW9wZW4t aXNzdWVzXQotLXJlcG9zaXRvcnkgPSAicnVzdC1sYW5nL3BhY2tlZF9zaW1kIgotLQotLVtiYWRn ZXMubWFpbnRlbmFuY2VdCi0tc3RhdHVzID0gImV4cGVyaW1lbnRhbCIKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLUFQQUNIRQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9MSUNFTlNFLUFQQUNIRQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLUFQQUNIRQkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjAxICswLDAgQEAKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQotLSAgICAgICAgICAg ICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKLS0gICAgICAgICAgICAgICAg ICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCi0tCi0tVEVSTVMgQU5EIENPTkRJ VElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCi0tCi0tMS4gRGVm aW5pdGlvbnMuCi0tCi0tICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKLS0gICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRl ZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KLS0KLS0gICAi TGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9y aXplZCBieQotLSAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGlj ZW5zZS4KLS0KLS0gICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUg YWN0aW5nIGVudGl0eSBhbmQgYWxsCi0tICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBh cmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgotLSAgIGNvbnRyb2wgd2l0aCB0 aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCi0tICAgImNv bnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2Ug dGhlCi0tICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIg YnkgY29udHJhY3Qgb3IKLS0gICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5 IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKLS0gICBvdXRzdGFuZGluZyBzaGFyZXMsIG9y IChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgotLQotLSAgICJZb3Ui IChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLS0g ICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgotLQotLSAg ICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBt b2RpZmljYXRpb25zLAotLSAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUg c291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KLS0gICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9u IGZpbGVzLgotLQotLSAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRp bmcgZnJvbSBtZWNoYW5pY2FsCi0tICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2Yg YSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAotLSAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVk IG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKLS0gICBhbmQgY29udmVyc2lv bnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCi0tCi0tICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdv cmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKLS0gICBPYmplY3QgZm9ybSwg bWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCi0tICAg Y29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3 b3JrCi0tICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4K LS0KLS0gICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBp biBTb3VyY2Ugb3IgT2JqZWN0Ci0tICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZl ZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQotLSAgIGVkaXRvcmlhbCByZXZpc2lv bnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKLS0g ICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4g Rm9yIHRoZSBwdXJwb3NlcwotLSAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBz aGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgotLSAgIHNlcGFyYWJsZSBmcm9tLCBv ciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKLS0g ICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgotLQotLSAgICJDb250cmli dXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCi0tICAg dGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9y IGFkZGl0aW9ucwotLSAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2Ys IHRoYXQgaXMgaW50ZW50aW9uYWxseQotLSAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5j bHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKLS0gICBvciBieSBhbiBp bmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYg b2YKLS0gICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVm aW5pdGlvbiwgInN1Ym1pdHRlZCIKLS0gICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2 ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50Ci0tICAgdG8gdGhlIExpY2Vuc29y IG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLS0g ICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUg Y29udHJvbCBzeXN0ZW1zLAotLSAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJl IG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCi0tICAgTGljZW5zb3IgZm9yIHRoZSBw dXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0Ci0tICAgZXhj bHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhl cndpc2UKLS0gICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBh cyAiTm90IGEgQ29udHJpYnV0aW9uLiIKLS0KLS0gICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4g TGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQotLSAgIG9uIGJlaGFs ZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFu ZAotLSAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgotLQotLTIu IEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZgotLSAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3Jh bnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLS0gICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5v LWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotLSAgIGNvcHlyaWdodCBsaWNlbnNl IHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAotLSAgIHB1YmxpY2x5 IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRo ZQotLSAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0 IGZvcm0uCi0tCi0tMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRl cm1zIGFuZCBjb25kaXRpb25zIG9mCi0tICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9y IGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAotLSAgIHdvcmxkd2lkZSwgbm9uLWV4 Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCi0tICAgKGV4Y2Vw dCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZl IG1hZGUsCi0tICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndp c2UgdHJhbnNmZXIgdGhlIFdvcmssCi0tICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25s eSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKLS0gICBieSBzdWNoIENvbnRyaWJ1 dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgotLSAgIENvbnRyaWJ1 dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykK LS0gICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJt aXR0ZWQuIElmIFlvdQotLSAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFu eSBlbnRpdHkgKGluY2x1ZGluZyBhCi0tICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGlu IGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yawotLSAgIG9yIGEgQ29udHJpYnV0aW9u IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0Ci0tICAgb3Ig Y29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNl cwotLSAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNo YWxsIHRlcm1pbmF0ZQotLSAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxl ZC4KLS0KLS00LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1 dGUgY29waWVzIG9mIHRoZQotLSAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGlu IGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAotLSAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBT b3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91Ci0tICAgbWVldCB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6Ci0tCi0tICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJl Y2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKLS0gICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkg b2YgdGhpcyBMaWNlbnNlOyBhbmQKLS0KLS0gICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlm aWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCi0tICAgICAgIHN0YXRpbmcgdGhh dCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAotLQotLSAgIChjKSBZb3UgbXVzdCByZXRhaW4s IGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcwotLSAgICAgICB0aGF0 IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCi0t ICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdv cmssCi0tICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4g dG8gYW55IHBhcnQgb2YKLS0gICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAotLQotLSAg IChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9m IGl0cwotLSAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhh dCBZb3UgZGlzdHJpYnV0ZSBtdXN0Ci0tICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9m IHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAotLSAgICAgICB3aXRoaW4gc3VjaCBO T1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKLS0gICAgICAg cGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qg b25lCi0tICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4 dCBmaWxlIGRpc3RyaWJ1dGVkCi0tICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29y a3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKLS0gICAgICAgZG9jdW1lbnRhdGlvbiwgaWYg cHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCi0tICAgICAgIHdp dGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQK LS0gICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVh ci4gVGhlIGNvbnRlbnRzCi0tICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9y bWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKLS0gICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGlj ZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KLS0gICAgICAgbm90aWNlcyB3 aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKLS0g ICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmss IHByb3ZpZGVkCi0tICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGlj ZXMgY2Fubm90IGJlIGNvbnN0cnVlZAotLSAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2Uu Ci0tCi0tICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3Vy IG1vZGlmaWNhdGlvbnMgYW5kCi0tICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJl bnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwotLSAgIGZvciB1c2UsIHJlcHJvZHVjdGlv biwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKLS0gICBmb3IgYW55 IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKLS0g ICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNv bXBsaWVzIHdpdGgKLS0gICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgot LQotLTUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5 IHN0YXRlIG90aGVyd2lzZSwKLS0gICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3Vi bWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKLS0gICBieSBZb3UgdG8gdGhlIExpY2Vu c29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgotLSAgIHRoaXMg TGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgotLSAg IE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2Vk ZSBvciBtb2RpZnkKLS0gICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVt ZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAotLSAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1 Y2ggQ29udHJpYnV0aW9ucy4KLS0KLS02LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBu b3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCi0tICAgbmFtZXMsIHRyYWRlbWFy a3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAotLSAg IGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBk ZXNjcmliaW5nIHRoZQotLSAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhl IGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgotLQotLTcuIERpc2NsYWltZXIgb2YgV2FycmFu dHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgotLSAgIGFncmVlZCB0byBp biB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKLS0gICBDb250 cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywK LS0gICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVy IGV4cHJlc3Mgb3IKLS0gICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwg YW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucwotLSAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VN RU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKLS0gICBQQVJUSUNVTEFSIFBV UlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKLS0g ICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5k IGFzc3VtZSBhbnkKLS0gICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBw ZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCi0tCi0tOC4gTGltaXRhdGlvbiBvZiBMaWFi aWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCi0tICAgd2hldGhl ciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2Us Ci0tICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJh dGUgYW5kIGdyb3NzbHkKLS0gICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRp bmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQotLSAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFn ZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKLS0gICBpbmNpZGVu dGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFz IGEKLS0gICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJp bGl0eSB0byB1c2UgdGhlCi0tICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBk YW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAotLSAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVy IGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCi0tICAgb3RoZXIgY29tbWVy Y2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgotLSAgIGhh cyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KLS0KLS05 LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlz dHJpYnV0aW5nCi0tICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3Ug bWF5IGNob29zZSB0byBvZmZlciwKLS0gICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5j ZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAotLSAgIG9yIG90aGVyIGxpYWJpbGl0 eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCi0tICAgTGlj ZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0 IG9ubHkKLS0gICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJp bGl0eSwgbm90IG9uIGJlaGFsZgotLSAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9u bHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKLS0gICBkZWZlbmQsIGFuZCBob2xkIGVhY2gg Q29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKLS0gICBpbmN1cnJlZCBieSwg b3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCi0t ICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFi aWxpdHkuCi0tCi0tRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCi0tCi0tQVBQRU5ESVg6IEhv dyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgotLQotLSAgIFRvIGFw cGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5n Ci0tICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJh Y2tldHMgIltdIgotLSAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3Jt YXRpb24uIChEb24ndCBpbmNsdWRlCi0tICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3Vs ZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKLS0gICBjb21tZW50IHN5bnRheCBmb3Ig dGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKLS0gICBmaWxlIG9yIGNs YXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCi0t ICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVy Ci0tICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgotLQotLUNv cHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQotLQotLUxpY2Vuc2VkIHVu ZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLXlv dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGlj ZW5zZS4KLS1Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS0KLS0JaHR0 cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0tCi0tVW5sZXNzIHJlcXVp cmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQot LWRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJ UyIgQkFTSVMsCi0tV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQs IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0tU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3Bl Y2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLWxpbWl0YXRpb25zIHVu ZGVyIHRoZSBMaWNlbnNlLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtTUlU Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtTUlUCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL0xJQ0VOU0UtTUlUCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwyNSArMCwwIEBACi0tQ29weXJpZ2h0IChjKSAyMDE0IFRoZSBSdXN0IFByb2plY3QgRGV2 ZWxvcGVycwotLQotLVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkKLS1wZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkCi0tZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFs IGluIHRoZQotLVNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 Ci0tbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwKLS1w dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YKLS10 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZQot LWlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCi0tY29uZGl0 aW9uczoKLS0KLS1UaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZQotLXNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMKLS1vZiB0aGUgU29mdHdhcmUuCi0tCi0tVEhFIFNPRlRXQVJFIElTIFBST1ZJREVE ICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YKLS1BTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECi0tVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBCi0tUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UCi0tU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkKLS1DTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OCi0tT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUgotLUlOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotLURFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZCBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvUkVBRE1FLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL1JFQURNRS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0NCArMCwwIEBACi0tIyBgU2ltZDxb VDsgTl0+YAotLQotLSMjIEltcGxlbWVudGF0aW9uIG9mIFtSdXN0IFJGQyAjMjM2NjogYHN0ZDo6 c2ltZGBdW3JmYzIzNjZdCi0tCi0tWyFbTGF0ZXN0IFZlcnNpb25dXVtjcmF0ZXMuaW9dIFshW2Rv Y3NdXVttYXN0ZXJfZG9jc10KLS0KLS0qKldBUk5JTkcqKjogdGhpcyBjcmF0ZSBvbmx5IHN1cHBv cnRzIHRoZSBtb3N0IHJlY2VudCBuaWdodGx5IFJ1c3QgdG9vbGNoYWluCi0tYW5kIHdpbGwgYmUg c3VwZXJzZWRlZCBieSBbYCMhW2ZlYXR1cmUocG9ydGFibGVfc2ltZCldYF0oaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9wb3J0YWJsZS1zaW1kKS4KLS0KLS0jIyBEb2N1bWVudGF0aW9uCi0t Ci0tKiBbQVBJIGRvY3MgKGBtYXN0ZXJgIGJyYW5jaCldW21hc3Rlcl9kb2NzXQotLSogW1BlcmZv cm1hbmNlIGd1aWRlXVtwZXJmX2d1aWRlXQotLSogW0FQSSBkb2NzIChgZG9jcy5yc2ApXVtkb2Nz LnJzXQotLSogW1JGQzIzNjYgYHN0ZDo6c2ltZGBdW3JmYzIzNjZdOiAtIGNvbnRhaW5zIG1vdGl2 YXRpb24sIGRlc2lnbiByYXRpb25hbGUsCi0tICBkaXNjdXNzaW9uLCBldGMuCi0tCi0tIyMgRXhh bXBsZXMKLS0KLS1Nb3N0IG9mIHRoZSBleGFtcGxlcyBjb21lIHdpdGggYm90aCBhIHNjYWxhciBh bmQgYSB2ZWN0b3JpemVkIGltcGxlbWVudGF0aW9uLgotLQotLSogW2Bhb2JlbmNoYF0oaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4 YW1wbGVzL2FvYmVuY2gpCi0tKiBbYGZhbm5rdWNoX3JlZHV4YF0oaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL2Zhbm5r dWNoX3JlZHV4KQotLSogW2BtYXRyaXggaW52ZXJzZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9tYXRyaXhfaW52 ZXJzZSkKLS0qIFtgbWFuZGVsYnJvdGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVy c2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9tYW5kZWxicm90KQotLSogW2Bu LWJvZHlgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv dHJlZS9tYXN0ZXIvZXhhbXBsZXMvbmJvZHkpCi0tKiBbYG9wdGlvbnNfcHJpY2luZ2BdKGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9l eGFtcGxlcy9vcHRpb25zX3ByaWNpbmcpCi0tKiBbYHNwZWN0cmFsX25vcm1gXShodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBs ZXMvc3BlY3RyYWxfbm9ybSkKLS0qIFtgdHJpYW5nbGUgdHJhbnNmb3JtYF0oaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVz L3RyaWFuZ2xlX3hmb3JtKQotLSogW2BzdGVuY2lsYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL3N0ZW5jaWwpCi0t KiBbYHZlY3RvciBkb3QgcHJvZHVjdGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVy c2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9kb3RfcHJvZHVjdCkKLS0KLS0j IyBDYXJnbyBmZWF0dXJlcwotLQotLSogYGludG9fYml0c2AgKGRlZmF1bHQ6IGRpc2FibGVkKTog ZW5hYmxlcyBgRnJvbUJpdHNgL2BJbnRvQml0c2AgdHJhaXQKLS0gIGltcGxlbWVudGF0aW9ucyBm b3IgdGhlIHZlY3RvciB0eXBlcy4gVGhlc2UgYWxsb3cgcmVpbnRlcnByZXRpbmcgdGhlIGJpdHMg b2YgYQotLSAgdmVjdG9yIHR5cGUgYXMgdGhvc2Ugb2YgYW5vdGhlciB2ZWN0b3IgdHlwZSBzYWZl bHkgYnkganVzdCB1c2luZyB0aGUKLS0gIGAuaW50b19iaXRzKClgIG1ldGhvZC4KLS0KLS0jIyBQ ZXJmb3JtYW5jZQotLQotLVRoZSBmb2xsb3dpbmcgW0lTUENdIGV4YW1wbGVzIGFyZSBhbHNvIHBh cnQgb2YgYHBhY2tlZF9zaW1kYCdzCi0tW2BleGFtcGxlcy9gXShodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvKQotLWRp cmVjdG9yeSwgd2hlcmUgYHBhY2tlZF9zaW1kYCtbYHJheW9uYF1bcmF5b25dIGFyZSB1c2VkIHRv IGVtdWxhdGUgW0lTUENdJ3MKLS1TaW5nbGUtUHJvZ3JhbS1NdWx0aXBsZS1EYXRhIChTUE1EKSBw cm9ncmFtbWluZyBtb2RlbC4gVGhlIHBlcmZvcm1hbmNlIHJlc3VsdHMKLS1vbiBkaWZmZXJlbnQg aGFyZHdhcmUgaXMgc2hvd24gaW4gdGhlIGByZWFkbWUubWRgIG9mIGVhY2ggZXhhbXBsZS4gVGhl IGZvbGxvd2luZwotLXRhYmxlIHN1bW1hcml6ZXMgdGhlIHBlcmZvcm1hbmNlIHJhbmdlcywgd2hl cmUgYCtgIG1lYW5zIHNwZWVkLXVwIGFuZCBgLWAKLS1zbG93ZG93bjoKLS0KLS0qIGBhb2JlbmNo YDogYFstMS4wMngsICsxLjUzeF1gLAotLSogYHN0ZW5jaWxgOiBgWysxLjA2eCwgKzEuNzJ4XWAs Ci0tKiBgbWFuZGVsYnJvdGA6IGBbLTEuNzR4LCArMS4yeF1gLAotLSogYG9wdGlvbnNfcHJpY2lu Z2A6Ci0tICAgKiBgYmxhY2tfc2Nob2xlc2A6IGArMS4weGAKLS0gICAqIGBiaW5vbWlhbF9wdXRg OiBgKzEuNHhgCi0tCi0tIFdoaWxlIFNQTUQgaXMgbm90IHRoZSBpbnRlbmRlZCB1c2UgY2FzZSBm b3IgYHBhY2tlZF9zaW1kYCwgaXQgaXMgcG9zc2libGUgdG8KLS0gY29tYmluZSB0aGUgbGlicmFy eSB3aXRoIFtgcmF5b25gXVtyYXlvbl0gdG8gcG9vcmx5IGVtdWxhdGUgW0lTUENdJ3MgU1BNRCBw cm9ncmFtbWluZwotLSBtb2RlbCBpbiBSdXN0LiBXcml0aW5nIHBlcmZvcm1hbnQgY29kZSBpcyBu b3QgYXMgc3RyYWlnaHRmb3J3YXJkIGFzIHdpdGgKLS0gW0lTUENdLCBidXQgd2l0aCBzb21lIGNh cmUgKGUuZy4gc2VlIHRoZSBbUGVyZm9ybWFuY2UgR3VpZGVdW3BlcmZfZ3VpZGVdKSBvbmUKLS0g Y2FuIGVhc2lseSBtYXRjaCBhbmQgb2Z0ZW4gb3V0LXBlcmZvcm0gW0lTUENdJ3MgImRlZmF1bHQg cGVyZm9ybWFuY2UiLgotLQotLSMjIFBsYXRmb3JtIHN1cHBvcnQKLS0KLS1UaGUgZm9sbG93aW5n IHRhYmxlIGRlc2NyaWJlcyB0aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogYGJ1aWxkYCBzaG93cyB3 aGV0aGVyCi0tdGhlIGxpYnJhcnkgY29tcGlsZXMgd2l0aG91dCBpc3N1ZXMgZm9yIGEgZ2l2ZW4g dGFyZ2V0LCB3aGlsZSBgcnVuYCBzaG93cwotLXdoZXRoZXIgdGhlIHRlc3Qgc3VpdGUgcGFzc2Vz IGZvciBhIGdpdmVuIHRhcmdldC4KLS0KLS18ICoqTGludXgqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAqKmJ1aWxkKiogfCAqKnJ1bioqIHwKLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tfC0tLS0tLS0tLXwKLS18IGBpNTg2LXVua25v d24tbGludXgtZ251YCAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0t fCBgaTY4Ni11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDi nJcgICAgICAgfAotLXwgYHg4Nl82NC11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICB8IOKc kyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18IGBhcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGZg ICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCBgYXJtdjctdW5rbm93bi1s aW51eC1nbnVlYWJpYCAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAotLXwgYGFh cmNoNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAg ICAgIHwKLS18IGBwb3dlcnBjLXVua25vd24tbGludXgtZ251YCAgICAgICAgICAgfCDinJMgICAg ICAgICB8IOKclyAgICAgICB8Ci0tfCBgcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251YCAgICAg ICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAotLXwgYHBvd2VycGM2NGxlLXVua25vd24t bGludXgtZ251YCAgICAgICB8IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18IGBzMzkweC11 bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8 Ci0tfCBgc3BhcmM2NC11bmtub3duLWxpbnV4LWdudWAgICAgICAgICAgIHwg4pyTICAgICAgICAg fCDinJcgICAgICAgfAotLXwgYHRodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmYCB8 IOKckyAgICAgICAgIHwg4pyTICAgICAgIHwKLS18ICoqTWFjT1NYKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAqKmJ1aWxkKiogfCAqKnJ1bioqIHwKLS18IGB4ODZfNjQtYXBwbGUtZGFy d2luYCAgICAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8Ci0tfCAqKkFu ZHJvaWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8 Ci0tfCBgeDg2XzY0LWxpbnV4LWFuZHJvaWRgICAgICAgICAgICAgICAgIHwg4pyTICAgICAgICAg fCDinJMgICAgICAgfAotLXwgYGFybXY3LWxpbnV4LWFuZHJvaWRlYWJpYCAgICAgICAgICAgICB8 IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKLS18IGBhYXJjaDY0LWxpbnV4LWFuZHJvaWRgICAg ICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8Ci0tfCBgdGh1bWJ2N25lb24t bGludXgtYW5kcm9pZGVhYmlgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAgfAotLXwg KippT1MqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqYnVpbGQqKiB8ICoqcnVu KiogfAotLXwgYHg4Nl82NC1hcHBsZS1pb3NgICAgICAgICAgICAgICAgICAgICB8IOKclyAgICAg ICAgIHwg4pyXICAgICAgIHwKLS18IGBhYXJjaDY0LWFwcGxlLWlvc2AgICAgICAgICAgICAgICAg ICAgfCDinJcgICAgICAgICB8IOKclyAgICAgICB8Ci0tCi0tCi0tIyMgTWFjaGluZSBjb2RlIHZl cmlmaWNhdGlvbgotLQotLVRoZQotLVtgdmVyaWZ5L2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci92ZXJpZnkpCi0tY3JhdGUgdGVz dHMgZGlzYXNzZW1ibGVzIHRoZSBwb3J0YWJsZSBwYWNrZWQgdmVjdG9yIEFQSXMgYXQgcnVuLXRp bWUgYW5kCi0tY29tcGFyZXMgdGhlIGdlbmVyYXRlZCBtYWNoaW5lIGNvZGUgYWdhaW5zdCB0aGUg ZGVzaXJlZCBvbmUgdG8gbWFrZSBzdXJlIHRoYXQKLS10aGlzIGNyYXRlIHJlbWFpbnMgZWZmaWNp ZW50LgotLQotLSMjIExpY2Vuc2UKLS0KLS1UaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIg ZWl0aGVyIG9mCi0tCi0tKiBbQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wXShodHRwOi8vd3d3 LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCi0tICAoW0xJQ0VOU0UtQVBBQ0hFXShM SUNFTlNFLUFQQUNIRSkpCi0tCi0tKiBbTUlUIExpY2Vuc2VdKGh0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9NSVQpCi0tICAoW0xJQ0VOU0UtTUlUXShMSUNFTlNFLU1JVCkpCi0tCi0tYXQg eW91ciBvcHRpb24uCi0tCi0tIyMgQ29udHJpYnV0aW5nCi0tCi0tV2Ugd2VsY29tZSBhbGwgcGVv cGxlIHdobyB3YW50IHRvIGNvbnRyaWJ1dGUuCi0tUGxlYXNlIHNlZSB0aGUgW2NvbnRyaWJ1dGlu ZyBpbnN0cnVjdGlvbnNdIGZvciBtb3JlIGluZm9ybWF0aW9uLgotLQotLUNvbnRyaWJ1dGlvbnMg aW4gYW55IGZvcm0gKGlzc3VlcywgcHVsbCByZXF1ZXN0cywgZXRjLikgdG8gdGhpcyBwcm9qZWN0 Ci0tbXVzdCBhZGhlcmUgdG8gUnVzdCdzIFtDb2RlIG9mIENvbmR1Y3RdLgotLQotLVVubGVzcyB5 b3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsIGFueSBjb250cmlidXRpb24gaW50ZW50aW9u YWxseSBzdWJtaXR0ZWQKLS1mb3IgaW5jbHVzaW9uIGluIGBwYWNrZWRfc2ltZGAgYnkgeW91LCBh cyBkZWZpbmVkIGluIHRoZSBBcGFjaGUtMi4wIGxpY2Vuc2UsIHNoYWxsIGJlCi0tZHVhbCBsaWNl bnNlZCBhcyBhYm92ZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25z LgotLQotLVt0cmF2aXNdOiBodHRwczovL3RyYXZpcy1jaS5jb20vcnVzdC1sYW5nL3BhY2tlZF9z aW1kCi0tW1RyYXZpcy1DSSBTdGF0dXNdOiBodHRwczovL3RyYXZpcy1jaS5jb20vcnVzdC1sYW5n L3BhY2tlZF9zaW1kLnN2Zz9icmFuY2g9bWFzdGVyCi0tW2FwcHZleW9yXTogaHR0cHM6Ly9jaS5h cHB2ZXlvci5jb20vcHJvamVjdC9nbnpsYmcvcGFja2VkLXNpbWQKLS1bQXBwdmV5b3IgU3RhdHVz XTogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vYXBpL3Byb2plY3RzL3N0YXR1cy9oZDd2OWR2cjQ0 MmhnZGl4P3N2Zz10cnVlCi0tW0xhdGVzdCBWZXJzaW9uXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5p by9jcmF0ZXMvdi9wYWNrZWRfc2ltZC5zdmcKLS1bY3JhdGVzLmlvXTogaHR0cHM6Ly9jcmF0ZXMu aW8vY3JhdGVzL3BhY2tlZF9zaW1kCi0tW2RvY3NdOiBodHRwczovL2RvY3MucnMvcGFja2VkX3Np bWQvYmFkZ2Uuc3ZnCi0tW2RvY3MucnNdOiBodHRwczovL2RvY3MucnMvcGFja2VkX3NpbWQKLS1b bWFzdGVyX2RvY3NdOiBodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRf c2ltZC9wYWNrZWRfc2ltZC8KLS1bcGVyZl9ndWlkZV06IGh0dHBzOi8vcnVzdC1sYW5nLW51cnNl cnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvCi0tW3JmYzIzNjZdOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVsbC8yMzY2Ci0tW0lTUENdOiBodHRwczovL2lz cGMuZ2l0aHViLmlvLwotLVtyYXlvbl06IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9yYXlvbgot LVtib29zdF9saWNlbnNlXTogaHR0cHM6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAot LVtTTEVFRl06IGh0dHBzOi8vc2xlZWYub3JnLwotLVtzbGVlZl9zeXNdOiBodHRwczovL2NyYXRl cy5pby9jcmF0ZXMvc2xlZWYtc3lzCi0tW2NvbnRyaWJ1dGluZyBpbnN0cnVjdGlvbnNdOiBjb250 cmlidXRpbmcubWQKLS1bQ29kZSBvZiBDb25kdWN0XTogaHR0cHM6Ly93d3cucnVzdC1sYW5nLm9y Zy9lbi1VUy9jb25kdWN0Lmh0bWwKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2JvcnMudG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21s Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2JvcnMudG9tbAkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9ib3JzLnRvbWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDMgKzAsMCBAQAotLXN0YXR1cyA9IFsKLS0gICAgImNvbnRpbnVvdXMtaW50ZWdyYXRpb24vdHJh dmlzLWNpL3B1c2giCi0tXQotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9idWlsZC5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvYnVpbGQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvYnVpbGQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYnVpbGQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDYgKzAsMCBAQAotLWZuIG1haW4oKSB7Ci0tICAgIGxldCB0 YXJnZXQgPSBzdGQ6OmVudjo6dmFyKCJUQVJHRVQiKS5leHBlY3QoIlRBUkdFVCBlbnZpcm9ubWVu dCB2YXJpYWJsZSBub3QgZGVmaW5lZCIpOwotLSAgICBpZiB0YXJnZXQuY29udGFpbnMoIm5lb24i KSB7Ci0tICAgICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPWxpYmNvcmVfbmVvbiIpOwot LSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv YWxsLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwuc2gKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYWxsLnNoCTIwMjUtMDktMDcgMTQ6MzA6Mzcu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Fs bC5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzEgKzAsMCBA QAotLSMhL3Vzci9iaW4vZW52IGJhc2gKLS0jCi0tIyBQZXJmb3JtcyBhbiBvcGVyYXRpb24gb24g YWxsIHRhcmdldHMKLS0KLS1zZXQgLWV4Ci0tCi0tOiAiJHsxP1RoZSBhbGwuc2ggc2NyaXB0IHJl cXVpcmVzIG9uZSBhcmd1bWVudC59IgotLQotLW9wPSQxCi0tCi0tY2FyZ29fY2xlYW4oKSB7Ci0t ICAgIGNhcmdvIGNsZWFuCi0tfQotLQotLWNhcmdvX2NoZWNrX2ZtdCgpIHsKLS0gICAgY2FyZ28g Zm10IC0tYWxsIC0tIC0tY2hlY2sKLS19Ci0tCi0tY2FyZ29fZm10KCkgewotLSAgICBjYXJnbyBm bXQgLS1hbGwKLS19Ci0tCi0tY2FyZ29fY2xpcHB5KCkgewotLSAgICBjYXJnbyBjbGlwcHkgLS1h bGwgLS0gLUQgY2xpcHB5OjpwZXJmCi0tfQotLQotLUNNRD0iLTEiCi0tCi0tY2FzZSAkb3AgaW4K LS0gICAgY2xlYW4qKQotLSAgICAgICAgQ01EPWNhcmdvX2NsZWFuCi0tICAgICAgICA7OwotLSAg ICBjaGVja19mbXQqKQotLSAgICAgICAgQ01EPWNhcmdvX2NoZWNrX2ZtdAotLSAgICAgICAgOzsK LS0gICAgZm10KikKLS0gICAgICAgIENNRD1jYXJnb19mbXQKLS0gICAgICAgIDs7Ci0tICAgIGNs aXBweSkKLS0gICAgICAgIENNRD1jYXJnb19jbGlwcHkKLS0gICAgICAgIDs7Ci0tICAgICopCi0t ICAgICAgICBlY2hvICJVbmtub3duIG9wZXJhdGlvbjogXCIke29wfVwiIgotLSAgICAgICAgZXhp dCAxCi0tICAgICAgICA7OwotLWVzYWMKLS0KLS1lY2hvICJPcGVyYXRpb24gaXM6ICR7Q01EfSIK LS0KLS0jIE9uIHNyYy8KLS0kQ01ECi0tCi0tIyBDaGVjayBleGFtcGxlcy8KLS1mb3IgZGlyIGlu IGV4YW1wbGVzLyovCi0tZG8KLS0gICAgZGlyPSR7ZGlyJSovfQotLSAgICAoCi0tICAgICAgICBj ZCAiJHtkaXIlKi99IgotLSAgICAgICAgJENNRAotLSAgICApCi0tZG9uZQotLQotLSgKLS0gICAg Y2QgdmVyaWZ5L3ZlcmlmeQotLSAgICAkQ01ECi0tKQotLQotLSgKLS0gICAgY2QgbWljcm9fYmVu Y2htYXJrcwotLSAgICAkQ01ECi0tKQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLW5kay5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxsLW5kay5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDIxICswLDAgQEAKLS0jIS91c3IvYmluL2VudiBzaAotLSMgQ29weXJpZ2h0IDIw MTYgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJzLiBTZWUgdGhlIENPUFlSSUdIVAotLSMgZmls ZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQK LS0jIGh0dHA6Ly9ydXN0LWxhbmcub3JnL0NPUFlSSUdIVC4KLS0jCi0tIyBMaWNlbnNlZCB1bmRl ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgotLSMg aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxp Y2Vuc2UKLS0jIDxMSUNFTlNFLU1JVCBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMv TUlUPiwgYXQgeW91cgotLSMgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1v ZGlmaWVkLCBvciBkaXN0cmlidXRlZAotLSMgZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJt cy4KLS0KLS1zZXQgLWV4Ci0tCi0tQU5EUk9JRF9OREtfVVJMPWh0dHBzOi8vZGwuZ29vZ2xlLmNv bS9hbmRyb2lkL3JlcG9zaXRvcnkKLS1BTkRST0lEX05ES19BUkNISVZFPWFuZHJvaWQtbmRrLXIy NWItbGludXguemlwCi0tCi0tY3VybCAtZk8gIiRBTkRST0lEX05ES19VUkwvJEFORFJPSURfTkRL X0FSQ0hJVkUiCi0tdW56aXAgLXEgJEFORFJPSURfTkRLX0FSQ0hJVkUKLS1ybSAkQU5EUk9JRF9O REtfQVJDSElWRQotLW12IGFuZHJvaWQtbmRrLSogbmRrCi0tcm0gLXJmIGFuZHJvaWQtbmRrLSoK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5z dGFsbC1zZGsuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5z dGFsbC1zZGsuc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9p ZC1pbnN0YWxsLXNkay5zaAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtc2RrLnNo CTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2MCArMCwwIEBACi0t IyEvdXNyL2Jpbi9lbnYgc2gKLS0jIENvcHlyaWdodCAyMDE2IFRoZSBSdXN0IFByb2plY3QgRGV2 ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKLS0jIGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJl Y3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24gYW5kIGF0Ci0tIyBodHRwOi8vcnVzdC1sYW5nLm9y Zy9DT1BZUklHSFQuCi0tIwotLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW ZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKLS0jIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9s aWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCi0tIyA8TElDRU5TRS1NSVQg b3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0IHlvdXIKLS0jIG9wdGlv bi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQK LS0jIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCi0tCi0tc2V0IC1leAotLQotLSMg UHJlcCB0aGUgU0RLIGFuZCBlbXVsYXRvcgotLSMKLS0jIE5vdGUgdGhhdCB0aGUgdXBkYXRlIHBy b2Nlc3MgcmVxdWlyZXMgdGhhdCB3ZSBhY2NlcHQgYSBidW5jaCBvZiBsaWNlbnNlcywgYW5kCi0t IyB3ZSBjYW4ndCBqdXN0IHBpcGUgYHllc2AgaW50byBpdCBmb3Igc29tZSByZWFzb24sIHNvIHdl IHRha2UgdGhlIHNhbWUgc3RyYXRlZ3kKLS0jIGxvY2F0ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29t L2FwcHVuaXRlL2RvY2tlciBieSBqdXN0IHdyYXBwaW5nIGl0IGluIGEgc2NyaXB0Ci0tIyB3aGlj aCBhcHBhcmVudGx5IG1hZ2ljYWxseSBhY2NlcHRzIHRoZSBsaWNlbnNlcy4KLS0KLS1ta2RpciBz ZGsKLS1jdXJsIC0tcmV0cnkgNSBodHRwczovL2RsLmdvb2dsZS5jb20vYW5kcm9pZC9yZXBvc2l0 b3J5L3Nkay10b29scy1saW51eC0zODU5Mzk3LnppcCAtTwotLXVuemlwIC1kIHNkayBzZGstdG9v bHMtbGludXgtMzg1OTM5Ny56aXAKLS0KLS1jYXNlICIkMSIgaW4KLS0gIGFybSB8IGFybXY3KQot LSAgICBhYmk9YXJtZWFiaS12N2EKLS0gICAgOzsKLS0KLS0gIGFhcmNoNjQpCi0tICAgIGFiaT1h cm02NC12OGEKLS0gICAgOzsKLS0KLS0gIGk2ODYpCi0tICAgIGFiaT14ODYKLS0gICAgOzsKLS0K LS0gIHg4Nl82NCkKLS0gICAgYWJpPXg4Nl82NAotLSAgICA7OwotLQotLSAgKikKLS0gICAgZWNo byAiaW52YWxpZCBhcmNoOiAkMSIKLS0gICAgZXhpdCAxCi0tICAgIDs7Ci0tZXNhYzsKLS0KLS0j IC0tbm9faHR0cHMgYXZvaWRzCi0tICAgICAjIGphdmF4Lm5ldC5zc2wuU1NMSGFuZHNoYWtlRXhj ZXB0aW9uOiBzdW4uc2VjdXJpdHkudmFsaWRhdG9yLlZhbGlkYXRvckV4Y2VwdGlvbjogTm8gdHJ1 c3RlZCBjZXJ0aWZpY2F0ZSBmb3VuZAotLXllcyB8IC4vc2RrL3Rvb2xzL2Jpbi9zZGttYW5hZ2Vy IC0tbGljZW5zZXMgLS1ub19odHRwcwotLXllcyB8IC4vc2RrL3Rvb2xzL2Jpbi9zZGttYW5hZ2Vy IC0tbm9faHR0cHMgXAotLSAgICAgICAgImVtdWxhdG9yIiBcCi0tICAgICAgICAicGxhdGZvcm0t dG9vbHMiIFwKLS0gICAgICAgICJwbGF0Zm9ybXM7YW5kcm9pZC0yNCIgXAotLSAgICAgICAgInN5 c3RlbS1pbWFnZXM7YW5kcm9pZC0yNDtkZWZhdWx0OyRhYmkiCi0tCi0tZWNobyAibm8iIHwKLS0g ICAgLi9zZGsvdG9vbHMvYmluL2F2ZG1hbmFnZXIgY3JlYXRlIGF2ZCBcCi0tICAgICAgICAtLW5h bWUgIiR7MX0iIFwKLS0gICAgICAgIC0tcGFja2FnZSAic3lzdGVtLWltYWdlczthbmRyb2lkLTI0 O2RlZmF1bHQ7JGFiaSIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2FuZHJvaWQtc3lzaW1hZ2Uuc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvYW5kcm9pZC1zeXNpbWFnZS5zaAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLXN5c2ltYWdl LnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1NiArMCwwIEBA Ci0tIyEvdXNyL2Jpbi9lbnYgYmFzaAotLQotLSMgQ29weXJpZ2h0IDIwMTcgVGhlIFJ1c3QgUHJv amVjdCBEZXZlbG9wZXJzLiBTZWUgdGhlIENPUFlSSUdIVAotLSMgZmlsZSBhdCB0aGUgdG9wLWxl dmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKLS0jIGh0dHA6Ly9ydXN0 LWxhbmcub3JnL0NPUFlSSUdIVC4KLS0jCi0tIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExp Y2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgotLSMgaHR0cDovL3d3dy5hcGFj aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKLS0jIDxMSUNF TlNFLU1JVCBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgot LSMgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0 cmlidXRlZAotLSMgZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KLS0KLS1zZXQgLWV4 Ci0tCi0tVVJMPWh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL3JlcG9zaXRvcnkvc3lzLWlt Zy9hbmRyb2lkCi0tCi0tbWFpbigpIHsKLS0gICAgbG9jYWwgYXJjaD0iJHsxfSIKLS0gICAgbG9j YWwgbmFtZT0iJHsyfSIKLS0gICAgbG9jYWwgZGVzdD0vc3lzdGVtCi0tICAgIGxvY2FsIHRkCi0t ICAgIHRkPSIkKG1rdGVtcCAtZCkiCi0tCi0tICAgIGFwdC1nZXQgaW5zdGFsbCAtLW5vLWluc3Rh bGwtcmVjb21tZW5kcyBlMnRvb2xzCi0tCi0tICAgIHB1c2hkICIke3RkfSIKLS0gICAgY3VybCAt LXJldHJ5IDUgLU8gIiR7VVJMfS8ke25hbWV9IgotLSAgICB1bnppcCAtcSAiJHtuYW1lfSIKLS0K LS0gICAgbG9jYWwgc3lzdGVtCi0tICAgIHN5c3RlbT0iJChmaW5kIC4gLW5hbWUgc3lzdGVtLmlt ZykiCi0tICAgIG1rZGlyIC1wICR7ZGVzdH0ve2JpbixsaWIsbGliNjR9Ci0tCi0tICAgICMgRXh0 cmFjdCBhbmRyb2lkIGxpbmtlciBhbmQgbGlicmFyaWVzIHRvIC9zeXN0ZW0KLS0gICAgIyBUaGlz IGFsbG93cyBhbmRyb2lkIGV4ZWN1dGFibGVzIHRvIGJlIHJ1biBkaXJlY3RseSAob3Igd2l0aCBx ZW11KQotLSAgICBpZiBbICIke2FyY2h9IiA9ICJ4ODZfNjQiIF0gfHwgWyAiJHthcmNofSIgPSAi YXJtNjQiIF07IHRoZW4KLS0gICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovYmluL2xpbmtlcjY0 IiAiJHtkZXN0fS9iaW4vIgotLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWI2NC9saWJk bC5zbyIgIiR7ZGVzdH0vbGliNjQvIgotLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWI2 NC9saWJjLnNvIiAiJHtkZXN0fS9saWI2NC8iCi0tICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06 L2xpYjY0L2xpYm0uc28iICIke2Rlc3R9L2xpYjY0LyIKLS0gICAgZWxzZQotLSAgICAgICAgZTJj cCAtcCAiJHtzeXN0ZW19Oi9iaW4vbGlua2VyIiAiJHtkZXN0fS9iaW4vIgotLSAgICAgICAgZTJj cCAtcCAiJHtzeXN0ZW19Oi9saWIvbGliZGwuc28iICIke2Rlc3R9L2xpYi8iCi0tICAgICAgICBl MmNwIC1wICIke3N5c3RlbX06L2xpYi9saWJjLnNvIiAiJHtkZXN0fS9saWIvIgotLSAgICAgICAg ZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWIvbGlibS5zbyIgIiR7ZGVzdH0vbGliLyIKLS0gICAgZmkK LS0KLS0gICAgIyBjbGVhbiB1cAotLSAgICBhcHQtZ2V0IHB1cmdlIC0tYXV0by1yZW1vdmUgLXkg ZTJ0b29scwotLQotLSAgICBwb3BkCi0tCi0tICAgIHJtIC1yZiAiJHt0ZH0iCi0tfQotLQotLW1h aW4gIiR7QH0iCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9i ZW5jaG1hcmsuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5z aAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9iZW5jaG1hcmsuc2gJMjAy NS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvYmVuY2htYXJrLnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwzMiArMCwwIEBACi0tIyEvdXNyL2Jpbi9lbnYgYmFzaAotLSMKLS0jIFJ1 bnMgYWxsIGJlbmNobWFya3MuIENvbnRyb2xsZWQgYnkgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVu dCB2YXJpYWJsZXM6Ci0tIwotLSMgRkVBVFVSRVM9e30gLSBjYXJnbyBmZWF0dXJlcyB0byBwYXNz IHRvIGFsbCBiZW5jaG1hcmtzIChlLmcuIGNvcmVfYXJjaCxzbGVlZi1zeXMsaXNwYykKLS0jIE5P UlVOPXsxfSAgIC0gb25seSBidWlsZHMgdGhlIGJlbmNobWFya3MKLS0KLS1zZXQgLWV4Ci0tCi0t aWYgW1sgJHtOT1JVTn0gIT0gMSBdXTsgdGhlbgotLSAgICAjIE1vc3QgYmVuY2htYXJrcyByZXF1 aXJlIGh5cGVyZmluZTsgcmVxdWlyZSBpdCB1cGZyb250LgotLSAgICBoYXNoIGh5cGVyZmluZSAy Pi9kZXYvbnVsbCB8fCB7IGVjaG8gPiYyICJoeXBlcmZpbmUgaXMgbm90IGluIFBBVEguIjsgZXhp dCAxOyB9Ci0tZmkKLS0KLS0KLS0jIElmIHRoZSBpc3BjIGJlbmNobWFyayBmZWF0dXJlIGlzIGVu YWJsZWQsIGlzcGMgbXVzdCBiZSBpbiB0aGUgcGF0aCBvZiB0aGUKLS0jIGJlbmNobWFya3MuIAot LWlmIGVjaG8gIiRGRUFUVVJFUyIgfCBncmVwIC1xICJpc3BjIjsgdGhlbgotLSAgICBoYXNoIGlz cGMgMj4vZGV2L251bGwgfHwgeyBlY2hvID4mMiAiaXNwYyBpcyBub3QgaW4gUEFUSC4iOyBleGl0 IDE7IH0KLS1maQotLQotLSMgQW4gZXhhbXBsZSB3aXRoIGEgYmVuY2htYXJrLnNoIGlzIGEgYmVu Y2htYXJrOgotLWZvciBkaXIgaW4gZXhhbXBsZXMvKi8KLS1kbwotLSAgICBkaXI9JHtkaXIlKi99 Ci0tICAgIGNkICR7ZGlyJSovfQotLSAgICBpZiBbIC1mICJiZW5jaG1hcmsuc2giIF07IHRoZW4K LS0gICAgICAgIC4vYmVuY2htYXJrLnNoCi0tICAgIGZpCi0tICAgIGNkIC0KLS1kb25lCi0tCi1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kZXBsb3lfYW5kX3J1 bl9vbl9pb3Nfc2ltdWxhdG9yLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9k ZXBsb3lfYW5kX3J1bl9vbl9pb3Nfc2ltdWxhdG9yLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RlcGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTc2ICswLDAgQEAKLS0vLyBDb3B5cmln aHQgMjAxNyBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3BlcnMuIFNlZSB0aGUgQ09QWVJJR0hUCi0t Ly8gZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBh bmQgYXQKLS0vLyBodHRwOi8vcnVzdC1sYW5nLm9yZy9DT1BZUklHSFQuCi0tLy8KLS0vLyBMaWNl bnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNI RSBvcgotLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3Ig dGhlIE1JVCBsaWNlbnNlCi0tLy8gPExJQ0VOU0UtTUlUIG9yIGh0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCi0tLy8gb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBi ZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAotLS8vIGV4Y2VwdCBhY2NvcmRpbmcg dG8gdGhvc2UgdGVybXMuCi0tCi0tLy8gVGhpcyBpcyBhIHNjcmlwdCB0byBkZXBsb3kgYW5kIGV4 ZWN1dGUgYSBiaW5hcnkgb24gYW4gaU9TIHNpbXVsYXRvci4KLS0vLyBUaGUgcHJpbWFyeSB1c2Ug b2YgdGhpcyBpcyB0byBiZSBhYmxlIHRvIHJ1biB1bml0IHRlc3RzIG9uIHRoZSBzaW11bGF0b3Ig YW5kCi0tLy8gcmV0cmlldmUgdGhlIHJlc3VsdHMuCi0tLy8KLS0vLyBUbyBkbyB0aGlzIHRocm91 Z2ggQ2FyZ28gaW5zdGVhZCwgdXNlIERpbmdoeQotLS8vIChodHRwczovL2dpdGh1Yi5jb20vc25p cHNjby9kaW5naHkpOiBjYXJnbyBkaW5naHkgaW5zdGFsbCwgdGhlbiBjYXJnbyBkaW5naHkKLS0v LyB0ZXN0LgotLQotLXVzZSBzdGQ6OmVudjsKLS11c2Ugc3RkOjpmczo6e3NlbGYsIEZpbGV9Owot LXVzZSBzdGQ6OmlvOjpXcml0ZTsKLS11c2Ugc3RkOjpwYXRoOjpQYXRoOwotLXVzZSBzdGQ6OnBy b2Nlc3M7Ci0tdXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKLS0KLS1tYWNyb19ydWxlcyEgdCB7 Ci0tICAgICgkZTpleHByKSA9PiAobWF0Y2ggJGUgewotLSAgICAgICAgT2soZSkgPT4gZSwKLS0g ICAgICAgIEVycihlKSA9PiBwYW5pYyEoInt9IGZhaWxlZCB3aXRoOiB7fSIsIHN0cmluZ2lmeSEo JGUpLCBlKSwKLS0gICAgfSkKLS19Ci0tCi0tLy8gU3RlcCBvbmU6IFdyYXAgYXMgYW4gYXBwCi0t Zm4gcGFja2FnZV9hc19zaW11bGF0b3JfYXBwKGNyYXRlX25hbWU6ICZzdHIsIHRlc3RfYmluYXJ5 X3BhdGg6ICZQYXRoKSB7Ci0tICAgIHByaW50bG4hKCJQYWNrYWdpbmcgc2ltdWxhdG9yIGFwcCIp OwotLSAgICBkcm9wKGZzOjpyZW1vdmVfZGlyX2FsbCgiaW9zX3NpbXVsYXRvcl9hcHAiKSk7Ci0t ICAgIHQhKGZzOjpjcmVhdGVfZGlyKCJpb3Nfc2ltdWxhdG9yX2FwcCIpKTsKLS0gICAgdCEoZnM6 OmNvcHkodGVzdF9iaW5hcnlfcGF0aCwKLS0gICAgICAgICAgICAgICAgUGF0aDo6bmV3KCJpb3Nf c2ltdWxhdG9yX2FwcCIpLmpvaW4oY3JhdGVfbmFtZSkpKTsKLS0KLS0gICAgbGV0IG11dCBmID0g dCEoRmlsZTo6Y3JlYXRlKCJpb3Nfc2ltdWxhdG9yX2FwcC9JbmZvLnBsaXN0IikpOwotLSAgICB0 IShmLndyaXRlX2FsbChmb3JtYXQhKHIjIgotLSAgICAgICAgPD94bWwgdmVyc2lvbj0iMS4wIiBl bmNvZGluZz0iVVRGLTgiPz4KLS0gICAgICAgIDwhRE9DVFlQRSBwbGlzdCBQVUJMSUMKLS0gICAg ICAgICAgICAgICAgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIKLS0gICAgICAgICAgICAg ICAgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotLSAg ICAgICAgPHBsaXN0IHZlcnNpb249IjEuMCI+Ci0tICAgICAgICAgICAgPGRpY3Q+Ci0tICAgICAg ICAgICAgICAgIDxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0tICAgICAgICAgICAgICAg IDxzdHJpbmc+e308L3N0cmluZz4KLS0gICAgICAgICAgICAgICAgPGtleT5DRkJ1bmRsZUlkZW50 aWZpZXI8L2tleT4KLS0gICAgICAgICAgICAgICAgPHN0cmluZz5jb20ucnVzdC51bml0dGVzdHM8 L3N0cmluZz4KLS0gICAgICAgICAgICA8L2RpY3Q+Ci0tICAgICAgICA8L3BsaXN0PgotLSAgICAi IywgY3JhdGVfbmFtZSkuYXNfYnl0ZXMoKSkpOwotLX0KLS0KLS0vLyBTdGVwIHR3bzogU3RhcnQg dGhlIGlPUyBzaW11bGF0b3IKLS1mbiBzdGFydF9zaW11bGF0b3IoKSB7Ci0tICAgIHByaW50bG4h KCJMb29raW5nIGZvciBpT1Mgc2ltdWxhdG9yIik7Ci0tICAgIGxldCBvdXRwdXQgPSB0IShDb21t YW5kOjpuZXcoInhjcnVuIikuYXJnKCJzaW1jdGwiKS5hcmcoImxpc3QiKS5vdXRwdXQoKSk7Ci0t ICAgIGFzc2VydCEob3V0cHV0LnN0YXR1cy5zdWNjZXNzKCkpOwotLSAgICBsZXQgbXV0IHNpbXVs YXRvcl9leGlzdHMgPSBmYWxzZTsKLS0gICAgbGV0IG11dCBzaW11bGF0b3JfYm9vdGVkID0gZmFs c2U7Ci0tICAgIGxldCBtdXQgZm91bmRfcnVzdF9zaW0gPSBmYWxzZTsKLS0gICAgbGV0IHN0ZG91 dCA9IHQhKFN0cmluZzo6ZnJvbV91dGY4KG91dHB1dC5zdGRvdXQpKTsKLS0gICAgZm9yIGxpbmUg aW4gc3Rkb3V0LmxpbmVzKCkgewotLSAgICAgICAgaWYgbGluZS5jb250YWlucygicnVzdF9pb3Mi KSB7Ci0tICAgICAgICAgICAgaWYgZm91bmRfcnVzdF9zaW0gewotLSAgICAgICAgICAgICAgICBw YW5pYyEoIkR1cGxpY2F0ZSBydXN0X2lvcyBzaW11bGF0b3JzIGZvdW5kLiBQbGVhc2UgXAotLSAg ICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZS1jaGVjayB4Y3J1biBzaW1jdGwgbGlzdC4iKTsK LS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgc2ltdWxhdG9yX2V4aXN0cyA9IHRydWU7Ci0t ICAgICAgICAgICAgc2ltdWxhdG9yX2Jvb3RlZCA9IGxpbmUuY29udGFpbnMoIihCb290ZWQpIik7 Ci0tICAgICAgICAgICAgZm91bmRfcnVzdF9zaW0gPSB0cnVlOwotLSAgICAgICAgfQotLSAgICB9 Ci0tCi0tICAgIGlmIHNpbXVsYXRvcl9leGlzdHMgPT0gZmFsc2UgewotLSAgICAgICAgcHJpbnRs biEoIkNyZWF0aW5nIGlPUyBzaW11bGF0b3IiKTsKLS0gICAgICAgIENvbW1hbmQ6Om5ldygieGNy dW4iKQotLSAgICAgICAgICAgICAgICAuYXJnKCJzaW1jdGwiKQotLSAgICAgICAgICAgICAgICAu YXJnKCJjcmVhdGUiKQotLSAgICAgICAgICAgICAgICAuYXJnKCJydXN0X2lvcyIpCi0tICAgICAg ICAgICAgICAgIC5hcmcoImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbURldmljZVR5cGUuaVBo b25lLVNFIikKLS0gICAgICAgICAgICAgICAgLmFyZygiY29tLmFwcGxlLkNvcmVTaW11bGF0b3Iu U2ltUnVudGltZS5pT1MtMTAtMiIpCi0tICAgICAgICAgICAgICAgIC5jaGVja19zdGF0dXMoKTsK LS0gICAgfSBlbHNlIGlmIHNpbXVsYXRvcl9ib290ZWQgPT0gdHJ1ZSB7Ci0tICAgICAgICBwcmlu dGxuISgiU2h1dHRpbmcgZG93biBhbHJlYWR5LWJvb3RlZCBzaW11bGF0b3IiKTsKLS0gICAgICAg IENvbW1hbmQ6Om5ldygieGNydW4iKQotLSAgICAgICAgICAgICAgICAuYXJnKCJzaW1jdGwiKQot LSAgICAgICAgICAgICAgICAuYXJnKCJzaHV0ZG93biIpCi0tICAgICAgICAgICAgICAgIC5hcmco InJ1c3RfaW9zIikKLS0gICAgICAgICAgICAgICAgLmNoZWNrX3N0YXR1cygpOwotLSAgICB9Ci0t Ci0tICAgIHByaW50bG4hKCJTdGFydGluZyBpT1Mgc2ltdWxhdG9yIik7Ci0tICAgIC8vIFdlIGNh bid0IHVuaW5zdGFsbCB0aGUgYXBwIChpZiBwcmVzZW50KSBhcyB0aGF0IHdpbGwgaGFuZyBpZiB0 aGUKLS0gICAgLy8gc2ltdWxhdG9yIGlzbid0IGNvbXBsZXRlbHkgYm9vdGVkOyBqdXN0IGVyYXNl IHRoZSBzaW11bGF0b3IgaW5zdGVhZC4KLS0gICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpLmFyZygi c2ltY3RsIikuYXJnKCJlcmFzZSIpLmFyZygicnVzdF9pb3MiKS5jaGVja19zdGF0dXMoKTsKLS0g ICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpLmFyZygic2ltY3RsIikuYXJnKCJib290IikuYXJnKCJy dXN0X2lvcyIpLmNoZWNrX3N0YXR1cygpOwotLX0KLS0KLS0vLyBTdGVwIHRocmVlOiBJbnN0YWxs IHRoZSBhcHAKLS1mbiBpbnN0YWxsX2FwcF90b19zaW11bGF0b3IoKSB7Ci0tICAgIHByaW50bG4h KCJJbnN0YWxsaW5nIGFwcCB0byBzaW11bGF0b3IiKTsKLS0gICAgQ29tbWFuZDo6bmV3KCJ4Y3J1 biIpCi0tICAgICAgICAgICAgLmFyZygic2ltY3RsIikKLS0gICAgICAgICAgICAuYXJnKCJpbnN0 YWxsIikKLS0gICAgICAgICAgICAuYXJnKCJib290ZWQiKQotLSAgICAgICAgICAgIC5hcmcoImlv c19zaW11bGF0b3JfYXBwLyIpCi0tICAgICAgICAgICAgLmNoZWNrX3N0YXR1cygpOwotLX0KLS0K LS0vLyBTdGVwIGZvdXI6IFJ1biB0aGUgYXBwCi0tZm4gcnVuX2FwcF9vbl9zaW11bGF0b3IoKSB7 Ci0tICAgIHByaW50bG4hKCJSdW5uaW5nIGFwcCIpOwotLSAgICBsZXQgb3V0cHV0ID0gdCEoQ29t bWFuZDo6bmV3KCJ4Y3J1biIpCi0tICAgICAgICAgICAgICAgICAgICAuYXJnKCJzaW1jdGwiKQot LSAgICAgICAgICAgICAgICAgICAgLmFyZygibGF1bmNoIikKLS0gICAgICAgICAgICAgICAgICAg IC5hcmcoIi0tY29uc29sZSIpCi0tICAgICAgICAgICAgICAgICAgICAuYXJnKCJib290ZWQiKQot LSAgICAgICAgICAgICAgICAgICAgLmFyZygiY29tLnJ1c3QudW5pdHRlc3RzIikKLS0gICAgICAg ICAgICAgICAgICAgIC5vdXRwdXQoKSk7Ci0tCi0tICAgIHByaW50bG4hKCJzdGRvdXQgLS1cbnt9 XG4iLCBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCkpOwotLSAgICBwcmlu dGxuISgic3RkZXJyIC0tXG57fVxuIiwgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5z dGRlcnIpKTsKLS0KLS0gICAgbGV0IHN0ZG91dCA9IFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZv dXRwdXQuc3Rkb3V0KTsKLS0gICAgbGV0IGZhaWxlZCA9IHN0ZG91dC5saW5lcygpCi0tICAgICAg ICAuZmluZCh8bHwgbC5jb250YWlucygiRkFJTEVEIikpCi0tICAgICAgICAubWFwKHxsfCBsLmNv bnRhaW5zKCJGQUlMRUQiKSkKLS0gICAgICAgIC51bndyYXBfb3IoZmFsc2UpOwotLQotLSAgICBs ZXQgcGFzc2VkID0gc3Rkb3V0LmxpbmVzKCkKLS0gICAgICAgIC5maW5kKHxsfCBsLmNvbnRhaW5z KCJ0ZXN0IHJlc3VsdDogb2siKSkKLS0gICAgICAgIC5tYXAofGx8IGwuY29udGFpbnMoInRlc3Qg cmVzdWx0OiBvayIpKQotLSAgICAgICAgLnVud3JhcF9vcihmYWxzZSk7Ci0tCi0tICAgIHByaW50 bG4hKCJTaHV0dGluZyBkb3duIHNpbXVsYXRvciIpOwotLSAgICBDb21tYW5kOjpuZXcoInhjcnVu IikKLS0gICAgICAgIC5hcmcoInNpbWN0bCIpCi0tICAgICAgICAuYXJnKCJzaHV0ZG93biIpCi0t ICAgICAgICAuYXJnKCJydXN0X2lvcyIpCi0tICAgICAgICAuY2hlY2tfc3RhdHVzKCk7Ci0tICAg IGlmICEocGFzc2VkICYmICFmYWlsZWQpIHsKLS0gICAgICAgIHBhbmljISgidGVzdHMgZGlkbid0 IHBhc3MiKTsKLS0gICAgfQotLX0KLS0KLS10cmFpdCBDaGVja1N0YXR1cyB7Ci0tICAgIGZuIGNo ZWNrX3N0YXR1cygmbXV0IHNlbGYpOwotLX0KLS0KLS1pbXBsIENoZWNrU3RhdHVzIGZvciBDb21t YW5kIHsKLS0gICAgZm4gY2hlY2tfc3RhdHVzKCZtdXQgc2VsZikgewotLSAgICAgICAgcHJpbnRs biEoIlx0cnVubmluZzogezo/fSIsIHNlbGYpOwotLSAgICAgICAgYXNzZXJ0ISh0IShzZWxmLnN0 YXR1cygpKS5zdWNjZXNzKCkpOwotLSAgICB9Ci0tfQotLQotLWZuIG1haW4oKSB7Ci0tICAgIGxl dCBhcmdzOiBWZWM8U3RyaW5nPiA9IGVudjo6YXJncygpLmNvbGxlY3QoKTsKLS0gICAgaWYgYXJn cy5sZW4oKSAhPSAyIHsKLS0gICAgICAgIHByaW50bG4hKCJVc2FnZToge30gPGV4ZWN1dGFibGU+ IiwgYXJnc1swXSk7Ci0tICAgICAgICBwcm9jZXNzOjpleGl0KC0xKTsKLS0gICAgfQotLQotLSAg ICBsZXQgdGVzdF9iaW5hcnlfcGF0aCA9IFBhdGg6Om5ldygmYXJnc1sxXSk7Ci0tICAgIGxldCBj cmF0ZV9uYW1lID0gdGVzdF9iaW5hcnlfcGF0aC5maWxlX25hbWUoKS51bndyYXAoKTsKLS0KLS0g ICAgcGFja2FnZV9hc19zaW11bGF0b3JfYXBwKGNyYXRlX25hbWUudG9fc3RyKCkudW53cmFwKCks IHRlc3RfYmluYXJ5X3BhdGgpOwotLSAgICBzdGFydF9zaW11bGF0b3IoKTsKLS0gICAgaW5zdGFs bF9hcHBfdG9fc2ltdWxhdG9yKCk7Ci0tICAgIHJ1bl9hcHBfb25fc2ltdWxhdG9yKCk7Ci0tfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNo NjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9E b2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQv RG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDcg KzAsMCBAQAotLUZST00gdWJ1bnR1OjE2LjA0Ci0tCi0tUlVOIGRwa2cgLS1hZGQtYXJjaGl0ZWN0 dXJlIGkzODYgJiYgXAotLSAgICBhcHQtZ2V0IHVwZGF0ZSAmJiBcCi0tICAgIGFwdC1nZXQgaW5z dGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBmaWxlIFwKLS0gIG1ha2UgXAot LSAgY3VybCBcCi0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgcHl0aG9uIFwKLS0gIHVuemlwIFwK LS0gIGV4cGVjdCBcCi0tICBvcGVuamRrLTktanJlIFwKLS0gIGxpYnN0ZGMrKzY6aTM4NiBcCi0t ICBsaWJwdWxzZTAgXAotLSAgZ2NjIFwKLS0gIGxpYmM2LWRldgotLQotLVdPUktESVIgL2FuZHJv aWQvCi0tQ09QWSBhbmRyb2lkKiAvYW5kcm9pZC8KLS0KLS1FTlYgQU5EUk9JRF9BUkNIPWFhcmNo NjQKLS1FTlYgUEFUSD0kUEFUSDovYW5kcm9pZC9uZGstJEFORFJPSURfQVJDSC9iaW46L2FuZHJv aWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nkay9wbGF0Zm9ybS10b29scwotLQotLVJVTiBzaCAvYW5k cm9pZC9hbmRyb2lkLWluc3RhbGwtbmRrLnNoICRBTkRST0lEX0FSQ0gKLS1SVU4gc2ggL2FuZHJv aWQvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCAkQU5EUk9JRF9BUkNICi0tUlVOIG12IC9yb290Ly5h bmRyb2lkIC90bXAKLS1SVU4gY2htb2QgNzc3IC1SIC90bXAvLmFuZHJvaWQKLS1SVU4gY2htb2Qg NzU1IC9hbmRyb2lkL3Nkay90b29scy8qIC9hbmRyb2lkL3Nkay9lbXVsYXRvci9xZW11L2xpbnV4 LXg4Nl82NC8qCi0tCi0tRU5WIFBBVEg9JFBBVEg6L3J1c3QvYmluIFwKLS0gICAgQ0FSR09fVEFS R0VUX0FBUkNINjRfTElOVVhfQU5EUk9JRF9MSU5LRVI9YWFyY2g2NC1saW51eC1hbmRyb2lkLWdj YyBcCi0tICAgIENBUkdPX1RBUkdFVF9BQVJDSDY0X0xJTlVYX0FORFJPSURfUlVOTkVSPS90bXAv cnVudGVzdCBcCi0tICAgIE9CSkRVTVA9YWFyY2g2NC1saW51eC1hbmRyb2lkLW9iamR1bXAgXAot LSAgICBIT01FPS90bXAKLS0KLS1BREQgcnVudGVzdC1hbmRyb2lkLnJzIC90bXAvcnVudGVzdC5y cwotLUVOVFJZUE9JTlQgWyBcCi0tICAiYmFzaCIsIFwKLS0gICItYyIsIFwKLS0gICMgc2V0IFNI RUxMIHNvIGFuZHJvaWQgY2FuIGRldGVjdCBhIDY0Yml0cyBzeXN0ZW0sIHNlZQotLSAgIyBodHRw Oi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTc4OTE0NAotLSAgIlNIRUxMPS9iaW4vZGFzaCAvYW5k cm9pZC9zZGsvZW11bGF0b3IvZW11bGF0b3IgQGFhcmNoNjQgLW5vLXdpbmRvdyAmIFwKLS0gICBy dXN0YyAvdG1wL3J1bnRlc3QucnMgLW8gL3RtcC9ydW50ZXN0ICYmIFwKLS0gICBleGVjIFwiJEBc IiIsIFwKLS0gICItLSIgXAotLV0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNCArMCwwIEBACi0tRlJPTSB1YnVu dHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8t aW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBcCi0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAg bGliYzYtZGV2IFwKLS0gIGdjYy1hYXJjaDY0LWxpbnV4LWdudSBcCi0tICBsaWJjNi1kZXYtYXJt NjQtY3Jvc3MgXAotLSAgcWVtdS11c2VyIFwKLS0gIG1ha2UgXAotLSAgZmlsZQotLQotLUVOViBD QVJHT19UQVJHRVRfQUFSQ0g2NF9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9YWFyY2g2NC1saW51 eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FBUkNINjRfVU5LTk9XTl9MSU5VWF9HTlVf UlVOTkVSPSJxZW11LWFhcmNoNjQgLUwgL3Vzci9hYXJjaDY0LWxpbnV4LWdudSIgXAotLSAgICBP QkpEVU1QPWFhcmNoNjQtbGludXgtZ251LW9iamR1bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0Rv Y2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5r bm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZQky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaS9Eb2NrZXJm aWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNSArMCwwIEBA Ci0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0 YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBcCi0tICBjYS1jZXJ0aWZp Y2F0ZXMgXAotLSAgbGliYzYtZGV2IFwKLS0gIGxpYmM2LWFybWVsLWNyb3NzIFwKLS0gIGxpYmM2 LWRldi1hcm1lbC1jcm9zcyBcCi0tICBiaW51dGlscy1hcm0tbGludXgtZ251ZWFiaSBcCi0tICBn Y2MtYXJtLWxpbnV4LWdudWVhYmkgXAotLSAgcWVtdS11c2VyIFwKLS0gIG1ha2UgXAotLSAgZmls ZQotLUVOViBDQVJHT19UQVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05VRUFCSV9MSU5LRVI9YXJt LWxpbnV4LWdudWVhYmktZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FSTV9VTktOT1dOX0xJTlVY X0dOVUVBQklfUlVOTkVSPSJxZW11LWFybSAtTCAvdXNyL2FybS1saW51eC1nbnVlYWJpIiBcCi0t ICAgIE9CSkRVTVA9YXJtLWxpbnV4LWdudWVhYmktb2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVh YmloZi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv YXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmloZi9E b2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVl YWJpaGYvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsMTMgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYm IGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBnY2MgXAot LSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIGxpYmM2LWRldiBcCi0tICBnY2MtYXJtLWxpbnV4LWdu dWVhYmloZiBcCi0tICBsaWJjNi1kZXYtYXJtaGYtY3Jvc3MgXAotLSAgcWVtdS11c2VyIFwKLS0g IG1ha2UgXAotLSAgZmlsZQotLUVOViBDQVJHT19UQVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05V RUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaWhmLWdjYyBcCi0tICAgIENBUkdPX1RBUkdF VF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfUlVOTkVSPSJxZW11LWFybSAtTCAvdXNyL2Fy bS1saW51eC1nbnVlYWJpaGYiIFwKLS0gICAgT0JKRFVNUD1hcm0tbGludXgtZ251ZWFiaWhmLW9i amR1bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZQot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctbGludXgt YW5kcm9pZGVhYmkvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctbGlu dXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsNDcgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE2LjA0Ci0tCi0tUlVOIGRwa2cg LS1hZGQtYXJjaGl0ZWN0dXJlIGkzODYgJiYgXAotLSAgICBhcHQtZ2V0IHVwZGF0ZSAmJiBcCi0t ICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBmaWxl IFwKLS0gIG1ha2UgXAotLSAgY3VybCBcCi0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgcHl0aG9u IFwKLS0gIHVuemlwIFwKLS0gIGV4cGVjdCBcCi0tICBvcGVuamRrLTktanJlIFwKLS0gIGxpYnN0 ZGMrKzY6aTM4NiBcCi0tICBsaWJwdWxzZTAgXAotLSAgZ2NjIFwKLS0gIGxpYmM2LWRldgotLQot LVdPUktESVIgL2FuZHJvaWQvCi0tQ09QWSBhbmRyb2lkKiAvYW5kcm9pZC8KLS0KLS1FTlYgQU5E Uk9JRF9BUkNIPWFybQotLUVOViBQQVRIPSRQQVRIOi9hbmRyb2lkL25kay0kQU5EUk9JRF9BUkNI L2JpbjovYW5kcm9pZC9zZGsvdG9vbHM6L2FuZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xzCi0tCi0t UlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggJEFORFJPSURfQVJDSAotLVJV TiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtc2RrLnNoICRBTkRST0lEX0FSQ0gKLS1SVU4g bXYgL3Jvb3QvLmFuZHJvaWQgL3RtcAotLVJVTiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5kcm9pZAot LVJVTiBjaG1vZCA3NTUgL2FuZHJvaWQvc2RrL3Rvb2xzLyogL2FuZHJvaWQvc2RrL2VtdWxhdG9y L3FlbXUvbGludXgteDg2XzY0LyoKLS0KLS1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW4gXAotLSAg ICBDQVJHT19UQVJHRVRfQVJNX0xJTlVYX0FORFJPSURFQUJJX0xJTktFUj1hcm0tbGludXgtYW5k cm9pZGVhYmktZ2NjIFwKLS0gICAgQ0FSR09fVEFSR0VUX0FSTV9MSU5VWF9BTkRST0lERUFCSV9S VU5ORVI9L3RtcC9ydW50ZXN0IFwKLS0gICAgT0JKRFVNUD1hcm0tbGludXgtYW5kcm9pZGVhYmkt b2JqZHVtcCBcCi0tICAgIEhPTUU9L3RtcAotLQotLUFERCBydW50ZXN0LWFuZHJvaWQucnMgL3Rt cC9ydW50ZXN0LnJzCi0tRU5UUllQT0lOVCBbIFwKLS0gICJiYXNoIiwgXAotLSAgIi1jIiwgXAot LSAgIyBzZXQgU0hFTEwgc28gYW5kcm9pZCBjYW4gZGV0ZWN0IGEgNjRiaXRzIHN5c3RlbSwgc2Vl Ci0tICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNzg5MTQ0Ci0tICAiU0hFTEw9L2Jp bi9kYXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRvci9lbXVsYXRvciBAYXJtIC1uby13aW5kb3cgJiBc Ci0tICAgcnVzdGMgL3RtcC9ydW50ZXN0LnJzIC1vIC90bXAvcnVudGVzdCAmJiBcCi0tICAgZXhl YyBcIiRAXCIiLCBcCi0tICAiLS0iIFwKLS1dCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9j a2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVu a25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tl cmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FybXY3LXVua25vd24tbGludXgtZ251ZWFi aWhmL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDEzICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBh cHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0g IGNhLWNlcnRpZmljYXRlcyBcCi0tICBsaWJjNi1kZXYgXAotLSAgZ2NjLWFybS1saW51eC1nbnVl YWJpaGYgXAotLSAgbGliYzYtZGV2LWFybWhmLWNyb3NzIFwKLS0gIHFlbXUtdXNlciBcCi0tICBt YWtlIFwKLS0gIGZpbGUKLS1FTlYgQ0FSR09fVEFSR0VUX0FSTVY3X1VOS05PV05fTElOVVhfR05V RUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaWhmLWdjYyBcCi0tICAgIENBUkdPX1RBUkdF VF9BUk1WN19VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9SVU5ORVI9InFlbXUtYXJtIC1MIC91c3Iv YXJtLWxpbnV4LWdudWVhYmloZiIgXAotLSAgICBPQkpEVU1QPWFybS1saW51eC1nbnVlYWJpaGYt b2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL2k1ODYtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25v d24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDcgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0tUlVOIGFwdC1nZXQgdXBk YXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBn Y2MtbXVsdGlsaWIgXAotLSAgbGliYzYtZGV2IFwKLS0gIGZpbGUgXAotLSAgbWFrZSBcCi0tICBj YS1jZXJ0aWZpY2F0ZXMKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNjg2LXVua25vd24tbGludXgtZ251L0RvY2tl cmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k2ODYt dW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4 Ni11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSw3ICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4wNAotLVJVTiBhcHQt Z2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg XAotLSAgZ2NjLW11bHRpbGliIFwKLS0gIGxpYmM2LWRldiBcCi0tICBmaWxlIFwKLS0gIG1ha2Ug XAotLSAgY2EtY2VydGlmaWNhdGVzCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwcy11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9taXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL21pcHMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE4LjA0Ci0t Ci0tUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwt cmVjb21tZW5kcyBcCi0tICAgICAgICBnY2MgbGliYzYtZGV2IHFlbXUtdXNlciBjYS1jZXJ0aWZp Y2F0ZXMgXAotLSAgICAgICAgZ2NjLW1pcHMtbGludXgtZ251IGxpYmM2LWRldi1taXBzLWNyb3Nz IFwKLS0gICAgICAgIHFlbXUtc3lzdGVtLW1pcHMgXAotLSAgICAgICAgcWVtdS11c2VyIFwKLS0g ICAgICAgIG1ha2UgXAotLSAgICAgICAgZmlsZQotLQotLUVOViBDQVJHT19UQVJHRVRfTUlQU19V TktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9bWlwcy1saW51eC1nbnUtZ2NjIFwKLS0gICAgQ0FSR09f VEFSR0VUX01JUFNfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LW1pcHMgLUwgL3Vzci9t aXBzLWxpbnV4LWdudSIgXAotLSAgICBPQkpEVU1QPW1pcHMtbGludXgtZ251LW9iamR1bXAKLVwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHM2NC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tl cmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjQtdW5r bm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJm aWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2 NC9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwx MCArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYg YXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gICAgICAgIGdj YyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgICAgICBnY2MtbWlw czY0LWxpbnV4LWdudWFiaTY0IGxpYmM2LWRldi1taXBzNjQtY3Jvc3MgXAotLSAgICAgICAgcWVt dS1zeXN0ZW0tbWlwczY0IHFlbXUtdXNlcgotLQotLUVOViBDQVJHT19UQVJHRVRfTUlQUzY0X1VO S05PV05fTElOVVhfR05VQUJJNjRfTElOS0VSPW1pcHM2NC1saW51eC1nbnVhYmk2NC1nY2MgXAot LSAgICBDQVJHT19UQVJHRVRfTUlQUzY0X1VOS05PV05fTElOVVhfR05VQUJJNjRfUlVOTkVSPSJx ZW11LW1pcHM2NCAtTCAvdXNyL21pcHM2NC1saW51eC1nbnVhYmk2NCIgXAotLSAgICBPQkpEVU1Q PW1pcHM2NC1saW51eC1nbnVhYmk2NC1vYmpkdW1wCi1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9t aXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0 L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2Vy L21pcHM2NGVsLXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvbWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMCArMCwwIEBACi0tRlJP TSB1YnVudHU6MTguMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gICAgICAgIGdjYyBsaWJjNi1kZXYgcWVt dS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgICAgICBnY2MtbWlwczY0ZWwtbGludXgtZ251 YWJpNjQgbGliYzYtZGV2LW1pcHM2NGVsLWNyb3NzIFwKLS0gICAgICAgIHFlbXUtc3lzdGVtLW1p cHM2NGVsCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9NSVBTNjRFTF9VTktOT1dOX0xJTlVYX0dOVUFC STY0X0xJTktFUj1taXBzNjRlbC1saW51eC1nbnVhYmk2NC1nY2MgXAotLSAgICBDQVJHT19UQVJH RVRfTUlQUzY0RUxfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9SVU5ORVI9InFlbXUtbWlwczY0ZWwg LUwgL3Vzci9taXBzNjRlbC1saW51eC1nbnVhYmk2NCIgXAotLSAgICBPQkpEVU1QPW1pcHM2NGVs LWxpbnV4LWdudWFiaTY0LW9iamR1bXAKLVwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHNlbC11 bmtub3duLWxpbnV4LW11c2wvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9ja2VyZmlsZQotLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwc2VsLXVua25vd24tbGlu dXgtbXVzbC9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93 bi1saW51eC1tdXNsL0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDI1ICswLDAgQEAKLS1GUk9NIHVidW50dToxOC4xMAotLQotLVJVTiBhcHQtZ2V0 IHVwZGF0ZSAmJiBcCi0tICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21t ZW5kcyBcCi0tICAgIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgIGdjYyBcCi0tICAgIGxpYmM2LWRl diBcCi0tICAgIG1ha2UgXAotLSAgICBxZW11LXVzZXIgXAotLSAgICBxZW11LXN5c3RlbS1taXBz IFwKLS0gICAgYnppcDIgXAotLSAgICBjdXJsIFwKLS0gICAgZmlsZQotLQotLVJVTiBta2RpciAv dG9vbGNoYWluCi0tCi0tIyBOb3RlIHRoYXQgdGhpcyBvcmlnaW5hbGx5IGNhbWUgZnJvbToKLS0j IGh0dHBzOi8vZG93bmxvYWRzLm9wZW53cnQub3JnL3NuYXBzaG90cy90cnVuay9tYWx0YS9nZW5l cmljL09wZW5XcnQtVG9vbGNoYWluLW1hbHRhLWxlX2djYy01LjMuMF9tdXNsLTEuMS4xNS5MaW51 eC14ODZfNjQudGFyLmJ6MgotLVJVTiBjdXJsIC1MIGh0dHBzOi8vY2ktbWlycm9ycy5ydXN0LWxh bmcub3JnL2xpYmMvT3BlbldydC1Ub29sY2hhaW4tbWFsdGEtbGVfZ2NjLTUuMy4wX211c2wtMS4x LjE1LkxpbnV4LXg4Nl82NC50YXIuYnoyIHwgXAotLSAgICAgIHRhciB4amYgLSAtQyAvdG9vbGNo YWluIC0tc3RyaXAtY29tcG9uZW50cz0yCi0tCi0tRU5WIFBBVEg9JFBBVEg6L3J1c3QvYmluOi90 b29sY2hhaW4vYmluIFwKLS0gICAgQ0NfbWlwc2VsX3Vua25vd25fbGludXhfbXVzbD1taXBzZWwt b3BlbndydC1saW51eC1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfTUlQU0VMX1VOS05PV05fTElO VVhfTVVTTF9MSU5LRVI9bWlwc2VsLW9wZW53cnQtbGludXgtZ2NjIFwKLS0gICAgQ0FSR09fVEFS R0VUX01JUFNFTF9VTktOT1dOX0xJTlVYX01VU0xfUlVOTkVSPSJxZW11LW1pcHNlbCAtTCAvdG9v bGNoYWluIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9j a2VyL3Bvd2VycGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJw Yy11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9w b3dlcnBjLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzICswLDAgQEAKLS1GUk9NIHVidW50dToyMi4wNAotLQot LVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJl Y29tbWVuZHMgXAotLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNh dGVzIFwKLS0gICAgICAgIGdjYy1wb3dlcnBjLWxpbnV4LWdudSBsaWJjNi1kZXYtcG93ZXJwYy1j cm9zcyBcCi0tICAgICAgICBxZW11LXN5c3RlbS1wcGMgXAotLSAgICAgICAgbWFrZSBcCi0tICAg ICAgICBmaWxlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9QT1dFUlBDX1VOS05PV05fTElOVVhfR05V X0xJTktFUj1wb3dlcnBjLWxpbnV4LWdudS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfUE9XRVJQ Q19VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtcHBjIC1jcHUgVmdlciAtTCAvdXNyL3Bv d2VycGMtbGludXgtZ251IiBcCi0tICAgIENDPXBvd2VycGMtbGludXgtZ251LWdjYyBcCi0tICAg IE9CSkRVTVA9cG93ZXJwYy1saW51eC1nbnUtb2JqZHVtcAotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93 ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2Nr ZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjNjQtdW5rbm93bi1saW51eC1n bnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs MTcgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0tUlVOIGFwdC1nZXQgdXBkYXRlICYm IGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICAgIGdjYyBc Ci0tICAgIGNhLWNlcnRpZmljYXRlcyBcCi0tICAgIGxpYmM2LWRldiBcCi0tICAgIGdjYy1wb3dl cnBjNjQtbGludXgtZ251IFwKLS0gICAgbGliYzYtZGV2LXBwYzY0LWNyb3NzIFwKLS0gICAgcWVt dS11c2VyICBcCi0tICAgIHFlbXUtc3lzdGVtLXBwYyBcCi0tICAgIG1ha2UgXAotLSAgICBmaWxl IAotLQotLUVOViBDQVJHT19UQVJHRVRfUE9XRVJQQzY0X1VOS05PV05fTElOVVhfR05VX0xJTktF Uj1wb3dlcnBjNjQtbGludXgtZ251LWdjYyBcCi0tICAgIENBUkdPX1RBUkdFVF9QT1dFUlBDNjRf VU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSJxZW11LXBwYzY0IC1MIC91c3IvcG93ZXJwYzY0LWxp bnV4LWdudSIgXAotLSAgICBDQz1wb3dlcnBjNjQtbGludXgtZ251LWdjYyBcCi0tICAgIE9CSkRV TVA9cG93ZXJwYzY0LWxpbnV4LWdudS1vYmpkdW1wCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUv RG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2Vy cGM2NGxlLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251L0Rv Y2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NGxlLXVua25vd24tbGlu dXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDExICswLDAgQEAKLS1GUk9NIHVidW50dToyMi4wNAotLQotLVJVTiBhcHQtZ2V0IHVwZGF0 ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgICAg ICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgICAgIGdj Yy1wb3dlcnBjNjRsZS1saW51eC1nbnUgbGliYzYtZGV2LXBwYzY0ZWwtY3Jvc3MgXAotLSAgICAg ICAgcWVtdS1zeXN0ZW0tcHBjIGZpbGUgbWFrZQotLQotLUVOViBDQVJHT19UQVJHRVRfUE9XRVJQ QzY0TEVfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBvd2VycGM2NGxlLWxpbnV4LWdudS1nY2Mg XAotLSAgICBDQVJHT19UQVJHRVRfUE9XRVJQQzY0TEVfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVS PSJxZW11LXBwYzY0bGUgLUwgL3Vzci9wb3dlcnBjNjRsZS1saW51eC1nbnUiIFwKLS0gICAgQ0M9 cG93ZXJwYzY0bGUtbGludXgtZ251LWdjYyBcCi0tICAgIE9CSkRVTVA9cG93ZXJwYzY0bGUtbGlu dXgtZ251LW9iamR1bXAKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvczM5MHgtdW5rbm93bi1saW51eC1nbnUvRG9j a2VyZmlsZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvczM5 MHgtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv czM5MHgtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotQEAgLTEsMjAgKzAsMCBAQAotLUZST00gdWJ1bnR1OjIyLjA0Ci0tCi0t UlVOIGFwdC1nZXQgdXBkYXRlICYmIFwKLS0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5z dGFsbC1yZWNvbW1lbmRzIFwKLS0gICAgY2EtY2VydGlmaWNhdGVzIFwKLS0gICAgY3VybCBcCi0t ICAgIGNtYWtlIFwKLS0gICAgZ2NjIFwKLS0gICAgbGliYzYtZGV2IFwKLS0gICAgZysrLXMzOTB4 LWxpbnV4LWdudSBcCi0tICAgIGxpYmM2LWRldi1zMzkweC1jcm9zcyBcCi0tICAgIHFlbXUtdXNl ciBcCi0tICAgIG1ha2UgXAotLSAgICBmaWxlCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9TMzkwWF9V TktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9czM5MHgtbGludXgtZ251LWdjYyBcCi0tICAgIENBUkdP X1RBUkdFVF9TMzkwWF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtczM5MHggLUwgL3Vz ci9zMzkweC1saW51eC1nbnUiIFwKLS0gICAgQ0NfczM5MHhfdW5rbm93bl9saW51eF9nbnU9czM5 MHgtbGludXgtZ251LWdjYyBcCi0tICAgIENYWF9zMzkweF91bmtub3duX2xpbnV4X2dudT1zMzkw eC1saW51eC1nbnUtZysrIFwKLS0gICAgT0JKRFVNUD1zMzkweC1saW51eC1nbnUtb2JqZHVtcAot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3NwYXJj NjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3du LWxpbnV4LWdudS9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zcGFyYzY0LXVu a25vd24tbGludXgtZ251L0RvY2tlcmZpbGUJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDE4ICswLDAgQEAKLS1GUk9NIGRlYmlhbjpib29rd29ybQotLQotLVJVTiBh cHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVu ZHMgXAotLSAgICAgICAgY3VybCBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgICAgICAgZ2NjIGxpYmM2 LWRldiBcCi0tICAgICAgICBnY2Mtc3BhcmM2NC1saW51eC1nbnUgbGliYzYtZGV2LXNwYXJjNjQt Y3Jvc3MgXAotLSAgICAgICAgcWVtdS1zeXN0ZW0tc3BhcmM2NCBvcGVuYmlvcy1zcGFyYyBzZWFi aW9zIGlweGUtcWVtdSBcCi0tICAgICAgICBwN3ppcC1mdWxsIGNwaW8KLS0KLS1DT1BZIGxpbnV4 LXNwYXJjNjQuc2ggLwotLVJVTiBiYXNoIC9saW51eC1zcGFyYzY0LnNoCi0tCi0tQ09QWSB0ZXN0 LXJ1bm5lci1saW51eCAvCi0tCi0tRU5WIENBUkdPX1RBUkdFVF9TUEFSQzY0X1VOS05PV05fTElO VVhfR05VX0xJTktFUj1zcGFyYzY0LWxpbnV4LWdudS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRf U1BBUkM2NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9Ii90ZXN0LXJ1bm5lci1saW51eCBzcGFy YzY0IiBcCi0tICAgIENDX3NwYXJjNjRfdW5rbm93bl9saW51eF9nbnU9c3BhcmM2NC1saW51eC1n bnUtZ2NjIFwKLS0gICAgUEFUSD0kUEFUSDovcnVzdC9iaW4KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lk ZWFiaS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIv dGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmlsZQotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVh YmkvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgt YW5kcm9pZGVhYmkvRG9ja2VyZmlsZQkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsNDcgKzAsMCBAQAotLUZST00gdWJ1bnR1OjE2LjA0Ci0tCi0tUlVOIGRwa2cgLS1h ZGQtYXJjaGl0ZWN0dXJlIGkzODYgJiYgXAotLSAgICBhcHQtZ2V0IHVwZGF0ZSAmJiBcCi0tICAg IGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCi0tICBmaWxlIFwK LS0gIG1ha2UgXAotLSAgY3VybCBcCi0tICBjYS1jZXJ0aWZpY2F0ZXMgXAotLSAgcHl0aG9uIFwK LS0gIHVuemlwIFwKLS0gIGV4cGVjdCBcCi0tICBvcGVuamRrLTktanJlIFwKLS0gIGxpYnN0ZGMr KzY6aTM4NiBcCi0tICBsaWJwdWxzZTAgXAotLSAgZ2NjIFwKLS0gIGxpYmM2LWRldgotLQotLVdP UktESVIgL2FuZHJvaWQvCi0tQ09QWSBhbmRyb2lkKiAvYW5kcm9pZC8KLS0KLS1FTlYgQU5EUk9J RF9BUkNIPWFybQotLUVOViBQQVRIPSRQQVRIOi9hbmRyb2lkL25kay0kQU5EUk9JRF9BUkNIL2Jp bjovYW5kcm9pZC9zZGsvdG9vbHM6L2FuZHJvaWQvc2RrL3BsYXRmb3JtLXRvb2xzCi0tCi0tUlVO IHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggJEFORFJPSURfQVJDSAotLVJVTiBz aCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtc2RrLnNoICRBTkRST0lEX0FSQ0gKLS1SVU4gbXYg L3Jvb3QvLmFuZHJvaWQgL3RtcAotLVJVTiBjaG1vZCA3NzcgLVIgL3RtcC8uYW5kcm9pZAotLVJV TiBjaG1vZCA3NTUgL2FuZHJvaWQvc2RrL3Rvb2xzLyogL2FuZHJvaWQvc2RrL2VtdWxhdG9yL3Fl bXUvbGludXgteDg2XzY0LyoKLS0KLS1FTlYgUEFUSD0kUEFUSDovcnVzdC9iaW4gXAotLSAgICBD QVJHT19UQVJHRVRfVEhVTUJWN05FT05fTElOVVhfQU5EUk9JREVBQklfTElOS0VSPWFybS1saW51 eC1hbmRyb2lkZWFiaS1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfVEhVTUJWN05FT05fTElOVVhf QU5EUk9JREVBQklfUlVOTkVSPS90bXAvcnVudGVzdCBcCi0tICAgIE9CSkRVTVA9YXJtLWxpbnV4 LWFuZHJvaWRlYWJpLW9iamR1bXAgXAotLSAgICBIT01FPS90bXAKLS0KLS1BREQgcnVudGVzdC1h bmRyb2lkLnJzIC90bXAvcnVudGVzdC5ycwotLUVOVFJZUE9JTlQgWyBcCi0tICAiYmFzaCIsIFwK LS0gICItYyIsIFwKLS0gICMgc2V0IFNIRUxMIHNvIGFuZHJvaWQgY2FuIGRldGVjdCBhIDY0Yml0 cyBzeXN0ZW0sIHNlZQotLSAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MTc4OTE0NAot LSAgIlNIRUxMPS9iaW4vZGFzaCAvYW5kcm9pZC9zZGsvZW11bGF0b3IvZW11bGF0b3IgQGFybSAt bm8td2luZG93ICYgXAotLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1wL3J1bnRlc3Qg JiYgXAotLSAgIGV4ZWMgXCIkQFwiIiwgXAotLSAgIi0tIiBcCi0tXQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLXVua25vd24t bGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL2RvY2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxl Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVv bi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv Y2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMyArMCwwIEBACi0tRlJPTSB1 YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0t bm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGdjYyBcCi0tICBjYS1jZXJ0aWZpY2F0ZXMgXAot LSAgbGliYzYtZGV2IFwKLS0gIGdjYy1hcm0tbGludXgtZ251ZWFiaWhmIFwKLS0gIGxpYmM2LWRl di1hcm1oZi1jcm9zcyBcCi0tICBxZW11LXVzZXIgXAotLSAgbWFrZSBcCi0tICBmaWxlCi0tRU5W IENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9MSU5LRVI9 YXJtLWxpbnV4LWdudWVhYmloZi1nY2MgXAotLSAgICBDQVJHT19UQVJHRVRfVEhVTUJWN05FT05f VU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfUlVOTkVSPSJxZW11LWFybSAtTCAvdXNyL2FybS1saW51 eC1nbnVlYWJpaGYiIFwKLS0gICAgT0JKRFVNUD1hcm0tbGludXgtZ251ZWFiaWhmLW9iamR1bXAK LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci93YXNt MzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3dhc20zMi11bmtub3duLXVua25v d24vRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5r bm93bi9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwzOSArMCwwIEBACi0tRlJPTSB1YnVudHU6MjIuMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRhdGUg LXkgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0gIGNh LWNlcnRpZmljYXRlcyBcCi0tICBjbGFuZyBcCi0tICBjbWFrZSBcCi0tICBjdXJsIFwKLS0gIGdp dCBcCi0tICBsaWJjNi1kZXYgXAotLSAgbWFrZSBcCi0tICBuaW5qYS1idWlsZCBcCi0tICBweXRo b24taXMtcHl0aG9uMyBcCi0tICB4ei11dGlscwotLQotLSMgSW5zdGFsbCBgd2FzbTJ3YXRgCi0t UlVOIGdpdCBjbG9uZSAtLXJlY3Vyc2l2ZSBodHRwczovL2dpdGh1Yi5jb20vV2ViQXNzZW1ibHkv d2FidAotLVJVTiBtYWtlIC1DIHdhYnQgLWokKG5wcm9jKQotLUVOViBQQVRIPSRQQVRIOi93YWJ0 L2JpbgotLQotLSMgSW5zdGFsbCBgd2FzbS1iaW5kZ2VuLXRlc3QtcnVubmVyYAotLVJVTiBjdXJs IC1MIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0d2FzbS93YXNtLWJpbmRnZW4vcmVsZWFzZXMvZG93 bmxvYWQvMC4yLjg3L3dhc20tYmluZGdlbi0wLjIuODcteDg2XzY0LXVua25vd24tbGludXgtbXVz bC50YXIuZ3ogXAotLSAgfCB0YXIgeHpmIC0KLS0jIEtlZXAgaW4gc3luYyB3aXRoIHRoZSB2ZXJz aW9uIG9uIENhcmdvLnRvbWwuCi0tRU5WIFBBVEg9JFBBVEg6L3dhc20tYmluZGdlbi0wLjIuODct eDg2XzY0LXVua25vd24tbGludXgtbXVzbAotLUVOViBDQVJHT19UQVJHRVRfV0FTTTMyX1VOS05P V05fVU5LTk9XTl9SVU5ORVI9d2FzbS1iaW5kZ2VuLXRlc3QtcnVubmVyCi0tCi0tIyBJbnN0YWxs IGBub2RlYAotLVJVTiBjdXJsIGh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L3YxNC4xNi4wL25vZGUt djE0LjE2LjAtbGludXgteDY0LnRhci54eiB8IHRhciB4SmYgLQotLUVOViBQQVRIPSRQQVRIOi9u b2RlLXYxNC4xNi4wLWxpbnV4LXg2NC9iaW4KLS0KLS0jIFdlIHVzZSBhIHNoaW0gbGlua2VyIHRo YXQgcmVtb3ZlcyBgLS1zdHJpcC1kZWJ1Z2Agd2hlbiBwYXNzZWQgdG8gTExELiBXaGlsZQotLSMg dGhpcyB0eXBpY2FsbHkgcmVzdWx0cyBpbiBpbnZhbGlkIGRlYnVnIGluZm9ybWF0aW9uIGluIHJl bGVhc2UgbW9kZSBpdCBkb2Vzbid0Ci0tIyByZXN1bHQgaW4gYW4gaW52YWxpZCBuYW1lcyBzZWN0 aW9uIHdoaWNoIGlzIHdoYXQgd2UncmUgaW50ZXJlc3RlZCBpbi4KLS1DT1BZIGxsZC1zaGltLnJz IC8KLS1FTlYgQ0FSR09fVEFSR0VUX1dBU00zMl9VTktOT1dOX1VOS05PV05fTElOS0VSPS90bXAv bGxkLXNoaW0KLS0KLS0jIFJ1c3RjIGlzbid0IGF2YWlsYWJsZSB1bnRpbCB0aGlzIGNvbnRhaW5l ciBzdGFydHMsIHNvIGRlZmVyIGNvbXBpbGF0aW9uIG9mIHRoZQotLSMgc2hpbS4KLS1FTlRSWVBP SU5UIC9ydXN0L2Jpbi9ydXN0YyAvbGxkLXNoaW0ucnMgLW8gL3RtcC9sbGQtc2hpbSAmJiBleGVj IGJhc2ggIiRAIgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxlCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtbGludXgt YW5kcm9pZC9Eb2NrZXJmaWxlCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtbGludXgt YW5kcm9pZC9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwzMSArMCwwIEBACi0tRlJPTSB1YnVudHU6MjAuMDQKLS0KLS1SVU4gYXB0LWdldCB1cGRh dGUgJiYgXAotLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg XAotLSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIGN1cmwgXAotLSAgZ2NjIFwKLS0gIGxpYmMtZGV2 IFwKLS0gIHB5dGhvbiBcCi0tICB1bnppcCBcCi0tICBmaWxlIFwKLS0gIG1ha2UKLS0KLS1XT1JL RElSIC9hbmRyb2lkLwotLUVOViBBTkRST0lEX0FSQ0g9eDg2XzY0Ci0tQ09QWSBhbmRyb2lkLWlu c3RhbGwtbmRrLnNoIC9hbmRyb2lkLwotLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwt bmRrLnNoCi0tCi0tRU5WIFNUREFSQ0hfQVNTRVJUX0lOU1RSX0xJTUlUPTMwCi0tCi0tIyBXZSBk byBub3QgcnVuIHg4Nl82NC1saW51eC1hbmRyb2lkIHRlc3RzIG9uIGFuIGFuZHJvaWQgZW11bGF0 b3IuCi0tIyBTZWUgY2kvYW5kcm9pZC1zeXNpbWFnZS5zaCBmb3IgaW5mb3JtYXRpb25zIGFib3V0 IGhvdyB0ZXN0cyBhcmUgcnVuLgotLUNPUFkgYW5kcm9pZC1zeXNpbWFnZS5zaCAvYW5kcm9pZC8K LS1SVU4gYmFzaCAvYW5kcm9pZC9hbmRyb2lkLXN5c2ltYWdlLnNoIHg4Nl82NCB4ODZfNjQtMjRf cjA3LnppcAotLQotLUVOViBQQVRIPSRQQVRIOi9ydXN0L2JpbjovYW5kcm9pZC9uZGsvdG9vbGNo YWlucy9sbHZtL3ByZWJ1aWx0L2xpbnV4LXg4Nl82NC9iaW4gXAotLSAgICBDQVJHT19UQVJHRVRf WDg2XzY0X0xJTlVYX0FORFJPSURfTElOS0VSPXg4Nl82NC1saW51eC1hbmRyb2lkMjEtY2xhbmcg XAotLSAgICBDQ194ODZfNjRfbGludXhfYW5kcm9pZD14ODZfNjQtbGludXgtYW5kcm9pZDIxLWNs YW5nIFwKLS0gICAgQ1hYX3g4Nl82NF9saW51eF9hbmRyb2lkPXg4Nl82NC1saW51eC1hbmRyb2lk MjEtY2xhbmcrKyBcCi0tICAgIE9CSkRVTVA9bGx2bS1vYmpkdW1wIFwKLS0gICAgSE9NRT0vdG1w Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2 XzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24t bGludXgtZ251L0RvY2tlcmZpbGUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSwxMCArMCwwIEBACi0tRlJPTSB1YnVudHU6MTguMDQKLS1SVU4gYXB0LWdldCB1 cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKLS0g IGdjYyBcCi0tICBsaWJjNi1kZXYgXAotLSAgZmlsZSBcCi0tICBtYWtlIFwKLS0gIGNhLWNlcnRp ZmljYXRlcyBcCi0tICBjbWFrZSBcCi0tICBsaWJjbGFuZy1kZXYgXAotLSAgY2xhbmcKLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5r bm93bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4LWdudS1lbXVsYXRlZC9Eb2Nr ZXJmaWxlCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZf NjQtdW5rbm93bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZQkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251LWVtdWxhdGVkL0RvY2tlcmZpbGUJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE2ICswLDAgQEAKLS1GUk9N IHVidW50dToxOC4wNAotLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkg LS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAotLSAgZ2NjIFwKLS0gIGxpYmM2LWRldiBcCi0tICBm aWxlIFwKLS0gIG1ha2UgXAotLSAgY2EtY2VydGlmaWNhdGVzIFwKLS0gIHdnZXQgXAotLSAgYnpp cDIgXAotLSAgY21ha2UgXAotLSAgbGliY2xhbmctZGV2IFwKLS0gIGNsYW5nCi0tCi0tUlVOIHdn ZXQgaHR0cHM6Ly9naXRodWIuY29tL2duemxiZy9pbnRlbF9zZGUvcmF3L21hc3Rlci9zZGUtZXh0 ZXJuYWwtOC4xNi4wLTIwMTgtMDEtMzAtbGluLnRhci5iejIKLS1SVU4gdGFyIC14amYgc2RlLWV4 dGVybmFsLTguMTYuMC0yMDE4LTAxLTMwLWxpbi50YXIuYnoyCi0tRU5WIENBUkdPX1RBUkdFVF9Y ODZfNjRfVU5LTk9XTl9MSU5VWF9HTlVfUlVOTkVSPSIvc2RlLWV4dGVybmFsLTguMTYuMC0yMDE4 LTAxLTMwLWxpbi9zZGU2NCAtLSIKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RveC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG94LnNo Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RveC5zaAkyMDI1LTA5LTA3 IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb3guc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDI3ICswLDAgQEAKLS0jIS9iaW4vc2gKLS0KLS1zZXQgLWV4Ci0tCi0tcm0gLXJmIHRhcmdldC9k b2MKLS1ta2RpciAtcCB0YXJnZXQvZG9jCi0tCi0tIyBCdWlsZCBBUEkgZG9jdW1lbnRhdGlvbgot LWNhcmdvIGRvYyAtLWZlYXR1cmVzPWludG9fYml0cwotLQotLSMgQnVpbGQgUGVyZm9ybWFuY2Ug R3VpZGUKLS0jIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvbWRC b29rL2lzc3Vlcy83ODAKLS0jIG1kYm9vayBidWlsZCBwZXJmLWd1aWRlIC1kIHRhcmdldC9kb2Mv cGVyZi1ndWlkZQotLWNkIHBlcmYtZ3VpZGUKLS1tZGJvb2sgYnVpbGQKLS1jZCAtCi0tY3AgLXIg cGVyZi1ndWlkZS9ib29rIHRhcmdldC9kb2MvcGVyZi1ndWlkZQotLQotLSMgSWYgd2UncmUgb24g dHJhdmlzLCBub3QgYSBQUiwgYW5kIG9uIHRoZSByaWdodCBicmFuY2gsIHB1Ymxpc2ghCi0taWYg WyAiJFRSQVZJU19QVUxMX1JFUVVFU1QiID0gImZhbHNlIiBdICYmIFsgIiRUUkFWSVNfQlJBTkNI IiA9ICJtYXN0ZXIiIF07IHRoZW4KLS0gIHB5dGhvbjMgLXZWCi0tICBwaXAgLXZWCi0tICBweXRo b24zLjkgLXZWCi0tICBwaXAgaW5zdGFsbCBnaHBfaW1wb3J0IC0tdXNlcgotLSAgZ2hwLWltcG9y dCAtbiB0YXJnZXQvZG9jCi0tICBnaXQgcHVzaCAtcWYgaHR0cHM6Ly8ke0dIX1BBR0VTfUBnaXRo dWIuY29tLyR7VFJBVklTX1JFUE9fU0xVR30uZ2l0IGdoLXBhZ2VzCi0tZmkKLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaAotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zMzkweC5zaAkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9s aW51eC1zMzkweC5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs MTggKzAsMCBAQAotLXNldCAtZXgKLS0KLS1ta2RpciAtbSA3NzcgL3FlbXUKLS1jZCAvcWVtdQot LQotLWN1cmwgLUxPIGh0dHBzOi8vZ2l0aHViLmNvbS9xZW11L3FlbXUvcmF3L21hc3Rlci9wYy1i aW9zL3MzOTAtY2N3LmltZwotLWN1cmwgLUxPIGh0dHA6Ly9mdHAuZGViaWFuLm9yZy9kZWJpYW4v ZGlzdHMvdGVzdGluZy9tYWluL2luc3RhbGxlci1zMzkweC8yMDE3MDgyOC9pbWFnZXMvZ2VuZXJp Yy9rZXJuZWwuZGViaWFuCi0tY3VybCAtTE8gaHR0cDovL2Z0cC5kZWJpYW4ub3JnL2RlYmlhbi9k aXN0cy90ZXN0aW5nL21haW4vaW5zdGFsbGVyLXMzOTB4LzIwMTcwODI4L2ltYWdlcy9nZW5lcmlj L2luaXRyZC5kZWJpYW4KLS0KLS1tdiBrZXJuZWwuZGViaWFuIGtlcm5lbAotLW12IGluaXRyZC5k ZWJpYW4gaW5pdHJkLmd6Ci0tCi0tbWtkaXIgaW5pdAotLWNkIGluaXQKLS1ndW56aXAgLWMgLi4v aW5pdHJkLmd6IHwgY3BpbyAtaWQKLS1ybSAuLi9pbml0cmQuZ3oKLS1jcCAvdXNyL3MzOTB4LWxp bnV4LWdudS9saWIvbGliZ2NjX3Muc28uMSB1c3IvbGliLwotLWNobW9kIGErdyAuCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNoIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9saW51eC1zcGFyYzY0LnNoCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2gJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvbGludXgtc3BhcmM2NC5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsMTcgKzAsMCBAQAotLXNldCAtZXgKLS0KLS1ta2RpciAtbSA3NzcgL3FlbXUK LS1jZCAvcWVtdQotLQotLWN1cmwgLUxPIGh0dHBzOi8vY2RpbWFnZS5kZWJpYW4ub3JnL2NkaW1h Z2UvcG9ydHMvOS4wL3NwYXJjNjQvaXNvLWNkL2RlYmlhbi05LjAtc3BhcmM2NC1ORVRJTlNULTEu aXNvCi0tN3ogZSBkZWJpYW4tOS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbyBib290L2luaXRyZC5n egotLTd6IGUgZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28gYm9vdC9zcGFyYzY0Ci0t bXYgc3BhcmM2NCBrZXJuZWwKLS1ybSBkZWJpYW4tOS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbwot LQotLW1rZGlyIGluaXQKLS1jZCBpbml0Ci0tZ3VuemlwIC1jIC4uL2luaXRyZC5neiB8IGNwaW8g LWlkCi0tcm0gLi4vaW5pdHJkLmd6Ci0tY3AgL3Vzci9zcGFyYzY0LWxpbnV4LWdudS9saWIvbGli Z2NjX3Muc28uMSB1c3IvbGliLwotLWNobW9kIGErdyAuCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9sbGQtc2hpbS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvbGxkLXNoaW0ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvbGxkLXNoaW0ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGxkLXNoaW0ucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDExICswLDAgQEAKLS11c2Ugc3RkOjpv czo6dW5peDo6cHJlbHVkZTo6KjsKLS11c2Ugc3RkOjpwcm9jZXNzOjpDb21tYW5kOwotLXVzZSBz dGQ6OmVudjsKLS0KLS1mbiBtYWluKCkgewotLSAgICBsZXQgYXJncyA9IGVudjo6YXJncygpCi0t ICAgICAgICAuc2tpcCgxKQotLSAgICAgICAgLmZpbHRlcih8c3wgcyAhPSAiLS1zdHJpcC1kZWJ1 ZyIpCi0tICAgICAgICAuY29sbGVjdDo6PFZlYzxfPj4oKTsKLS0gICAgcGFuaWMhKCJmYWlsZWQg dG8gZXhlYzoge30iLCBDb21tYW5kOjpuZXcoInJ1c3QtbGxkIikuYXJncygmYXJncykuZXhlYygp KTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhf bGluZV93aWR0aC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbWF4X2xpbmVf d2lkdGguc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbWF4X2xpbmVf d2lkdGguc2gJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbWF4X2xpbmVfd2lkdGguc2gJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE3ICswLDAgQEAKLS0jIS91c3IvYmluL2Vu diBzaAotLQotLXNldCAteAotLQotLWV4cG9ydCBzdWNjZXNzPXRydWUKLS0KLS1maW5kIC4gLWlu YW1lICcqLnJzJyB8IHdoaWxlIHJlYWQgLXIgZmlsZTsgZG8KLS0gICAgcmVzdWx0PSQoZ3JlcCAn Llx7NzlcfScgIiR7ZmlsZX0iIHwgZ3JlcCAtLWludmVydCAnaHR0cCcpCi0tICAgIGlmIFsgIiR7 cmVzdWx0fSIgPSAiIiBdCi0tICAgIHRoZW4KLS0gICAgICAgIDoKLS0gICAgZWxzZQotLSAgICAg ICAgZWNobyAiZmlsZSBcIiR7ZmlsZX1cIjogJHJlc3VsdCIKLS0gICAgICAgIGV4aXQgMQotLSAg ICBmaQotLWRvbmUKLS0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL3J1bi1kb2NrZXIuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi1k b2NrZXIuc2gKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tl ci5zaAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4tZG9ja2VyLnNoCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi1AQCAtMSwzOCArMCwwIEBACi0tIyBTbWFsbCBzY3JpcHQgdG8gcnVu IHRlc3RzIGZvciBhIHRhcmdldCAob3IgYWxsIHRhcmdldHMpIGluc2lkZSBhbGwgdGhlCi0tIyBy ZXNwZWN0aXZlIGRvY2tlciBpbWFnZXMuCi0tCi0tc2V0IC1leAotLQotLXJ1bigpIHsKLS0gICAg ZWNobyAiQnVpbGRpbmcgZG9ja2VyIGNvbnRhaW5lciBmb3IgVEFSR0VUPSR7VEFSR0VUfSBSVVNU RkxBR1M9JHtSVVNURkxBR1N9IgotLSAgICBkb2NrZXIgYnVpbGQgLXQgcGFja2VkX3NpbWQgLWYg Y2kvZG9ja2VyLyR7VEFSR0VUfS9Eb2NrZXJmaWxlIGNpLwotLSAgICBta2RpciAtcCB0YXJnZXQK LS0gICAgdGFyZ2V0PSQoZWNobyAiJHtUQVJHRVR9IiB8IHNlZCAncy8tZW11bGF0ZWQvLycpCi0t ICAgIGVjaG8gIlJ1bm5pbmcgZG9ja2VyIgotLSAgICBkb2NrZXIgcnVuIFwKLS0gICAgICAtLXVz ZXIgYGlkIC11YDpgaWQgLWdgIFwKLS0gICAgICAtLXJtIFwKLS0gICAgICAtLWluaXQgXAotLSAg ICAgIC0tdm9sdW1lICRIT01FLy5jYXJnbzovY2FyZ28gXAotLSAgICAgIC0tZW52IENBUkdPX0hP TUU9L2NhcmdvIFwKLS0gICAgICAtLXZvbHVtZSBgcnVzdGMgLS1wcmludCBzeXNyb290YDovcnVz dDpybyBcCi0tICAgICAgLS1lbnYgVEFSR0VUPSR0YXJnZXQgXAotLSAgICAgIC0tZW52IE5PUlVO IFwKLS0gICAgICAtLWVudiBOT1ZFUklGWSBcCi0tICAgICAgLS1lbnYgUlVTVEZMQUdTIFwKLS0g ICAgICAtLXZvbHVtZSBgcHdkYDovY2hlY2tvdXQ6cm8gXAotLSAgICAgIC0tdm9sdW1lIGBwd2Rg L3RhcmdldDovY2hlY2tvdXQvdGFyZ2V0IFwKLS0gICAgICAtLXdvcmtkaXIgL2NoZWNrb3V0IFwK LS0gICAgICAtLXByaXZpbGVnZWQgXAotLSAgICAgIHBhY2tlZF9zaW1kIFwKLS0gICAgICBiYXNo IFwKLS0gICAgICAtYyAnUEFUSD0kUEFUSDovcnVzdC9iaW4gZXhlYyBjaS9ydW4uc2gnCi0tfQot LQotLWlmIFsgLXogIiR7VEFSR0VUfSIgXTsgdGhlbgotLSAgZm9yIGQgaW4gYGxzIGNpL2RvY2tl ci9gOyBkbwotLSAgICBydW4gJGQKLS0gIGRvbmUKLS1lbHNlCi0tICBydW4gJHtUQVJHRVR9Ci0t ZmkKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaCBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLnNoCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bi5zaAkyMDI1LTA5LTA3IDE0OjMwOjM3LjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4uc2gJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDk5ICswLDAgQEAKLS0jIS91 c3IvYmluL2VudiBiYXNoCi0tCi0tc2V0IC1leAotLQotLTogJHtUQVJHRVQ/IlRoZSBUQVJHRVQg ZW52aXJvbm1lbnQgdmFyaWFibGUgbXVzdCBiZSBzZXQuIn0KLS0KLS0jIFRlc3RzIGFyZSBhbGwg c3VwZXIgZmFzdCBhbnl3YXksIGFuZCB0aGV5IGZhdWx0IG9mdGVuIGVub3VnaCBvbiB0cmF2aXMg dGhhdAotLSMgaGF2aW5nIG9ubHkgb25lIHRocmVhZCBpbmNyZWFzZXMgZGVidWdnYWJpbGl0eSB0 byBiZSB3b3J0aCBpdC4KLS0jZXhwb3J0IFJVU1RfVEVTVF9USFJFQURTPTEKLS0jZXhwb3J0IFJV U1RfQkFDS1RSQUNFPWZ1bGwKLS0jZXhwb3J0IFJVU1RfVEVTVF9OT0NBUFRVUkU9MQotLQotLSMg U29tZSBhcHB2ZXlvciBidWlsZHMgcnVuIG91dC1vZi1tZW1vcnk7IHRoaXMgYXR0ZW1wdHMgdG8g bWl0aWdhdGUgdGhhdDoKLS0jIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMzkKLS0jIGV4cG9ydCBSVVNURkxBR1M9IiR7UlVTVEZMQUdTfSAt QyBjb2RlZ2VuLXVuaXRzPTEiCi0tIyBleHBvcnQgQ0FSR09fQlVJTERfSk9CUz0xCi0tCi0tZXhw b3J0IENBUkdPX1NVQkNNRD10ZXN0Ci0taWYgW1sgIiR7Tk9SVU59IiA9PSAiMSIgXV07IHRoZW4K LS0gICAgZXhwb3J0IENBUkdPX1NVQkNNRD1idWlsZAotLWZpCi0tCi0taWYgW1sgJHtUQVJHRVR9 ID09ICJ4ODZfNjQtYXBwbGUtaW9zIiBdXSB8fCBbWyAke1RBUkdFVH0gPT0gImkzODYtYXBwbGUt aW9zIiBdXTsgdGhlbgotLSAgICBleHBvcnQgUlVTVEZMQUdTPSIke1JVU1RGTEFHU30gLUNsaW5r LWFyZz0tbWlvcy1zaW11bGF0b3ItdmVyc2lvbi1taW49Ny4wIgotLSAgICBydXN0YyAuL2NpL2Rl cGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMgLW8gJEhPTUUvcnVudGVzdAotLSAgICBl eHBvcnQgQ0FSR09fVEFSR0VUX1g4Nl82NF9BUFBMRV9JT1NfUlVOTkVSPSRIT01FL3J1bnRlc3QK LS0gICAgZXhwb3J0IENBUkdPX1RBUkdFVF9JMzg2X0FQUExFX0lPU19SVU5ORVI9JEhPTUUvcnVu dGVzdAotLWZpCi0tCi0tIyBUaGUgc291cmNlIGRpcmVjdG9yeSBpcyByZWFkLW9ubHkuIE5lZWQg dG8gY29weSBpbnRlcm5hbCBjcmF0ZXMgdG8gdGhlIHRhcmdldAotLSMgZGlyZWN0b3J5IGZvciB0 aGVpciBDYXJnby5sb2NrIHRvIGJlIHByb3Blcmx5IHdyaXR0ZW4uCi0tbWtkaXIgdGFyZ2V0IHx8 IHRydWUKLS0KLS1ydXN0YyAtLXZlcnNpb24KLS1jYXJnbyAtLXZlcnNpb24KLS1lY2hvICJUQVJH RVQ9JHtUQVJHRVR9IgotLWVjaG8gIkhPU1Q9JHtIT1NUfSIKLS1lY2hvICJSVVNURkxBR1M9JHtS VVNURkxBR1N9IgotLWVjaG8gIk5PUlVOPSR7Tk9SVU59IgotLWVjaG8gIk5PVkVSSUZZPSR7Tk9W RVJJRll9IgotLWVjaG8gIkNBUkdPX1NVQkNNRD0ke0NBUkdPX1NVQkNNRH0iCi0tZWNobyAiQ0FS R09fQlVJTERfSk9CUz0ke0NBUkdPX0JVSUxEX0pPQlN9IgotLWVjaG8gIkNBUkdPX0lOQ1JFTUVO VEFMPSR7Q0FSR09fSU5DUkVNRU5UQUx9IgotLWVjaG8gIlJVU1RfVEVTVF9USFJFQURTPSR7UlVT VF9URVNUX1RIUkVBRFN9IgotLWVjaG8gIlJVU1RfQkFDS1RSQUNFPSR7UlVTVF9CQUNLVFJBQ0V9 IgotLWVjaG8gIlJVU1RfVEVTVF9OT0NBUFRVUkU9JHtSVVNUX1RFU1RfTk9DQVBUVVJFfSIKLS0K LS1jYXJnb190ZXN0KCkgewotLSAgICBjbWQ9ImNhcmdvICR7Q0FSR09fU1VCQ01EfSAtLXZlcmJv c2UgLS10YXJnZXQ9JHtUQVJHRVR9ICR7QH0iCi0tICAgIGlmIFsgIiR7Tk9SVU59IiAhPSAiMSIg XQotLSAgICB0aGVuCi0tICAgICAgICBpZiBbICIkVEFSR0VUIiAhPSAid2FzbTMyLXVua25vd24t dW5rbm93biIgXQotLSAgICAgICAgdGhlbgotLSAgICAgICAgICAgIGNtZD0iJGNtZCAtLSAtLXF1 aWV0IgotLSAgICAgICAgZmkKLS0gICAgZmkKLS0gICAgbWtkaXIgdGFyZ2V0IHx8IHRydWUKLS0g ICAgJHtjbWR9IDI+JjEgfCB0ZWUgPiB0YXJnZXQvb3V0cHV0Ci0tICAgIGlmIFtbICR7UElQRVNU QVRVU1swXX0gIT0gMCBdXTsgdGhlbgotLSAgICAgICAgY2F0IHRhcmdldC9vdXRwdXQKLS0gICAg ICAgIHJldHVybiAxCi0tICAgIGZpCi0tfQotLQotLWNhcmdvX3Rlc3RfaW1wbCgpIHsKLS0gICAg T1JJR0lOQUxfUlVTVEZMQUdTPSR7UlVTVEZMQUdTfQotLSAgICBSVVNURkxBR1M9IiR7T1JJR0lO QUxfUlVTVEZMQUdTfSAtLWNmZyB0ZXN0X3YxNiAgLS1jZmcgdGVzdF92MzIgLS1jZmcgdGVzdF92 NjQiIGNhcmdvX3Rlc3QgJHtAfQotLSAgICBSVVNURkxBR1M9IiR7T1JJR0lOQUxfUlVTVEZMQUdT fSAtLWNmZyB0ZXN0X3YxMjggLS1jZmcgdGVzdF92MjU2IiBjYXJnb190ZXN0ICR7QH0KLS0gICAg UlVTVEZMQUdTPSIke09SSUdJTkFMX1JVU1RGTEFHU30gLS1jZmcgdGVzdF92NTEyIiBjYXJnb190 ZXN0ICR7QH0KLS0gICAgUlVTVEZMQUdTPSR7T1JJR0lOQUxfUlVTVEZMQUdTfQotLX0KLS0KLS0j IERlYnVnIHJ1bjoKLS1pZiBbWyAiJHtUQVJHRVR9IiAhPSAid2FzbTMyLXVua25vd24tdW5rbm93 biIgXV07IHRoZW4KLS0gICAjIFJ1biB3YXNtMzItdW5rbm93bi11bmtub3duIGluIHJlbGVhc2Ug bW9kZSBvbmx5Ci0tICAgY2FyZ29fdGVzdF9pbXBsCi0tZmkKLS0KLS1pZiBbWyAiJHtUQVJHRVR9 IiA9PSAieDg2XzY0LXVua25vd24tbGludXgtZ251IiBdXSB8fCBbWyAiJHtUQVJHRVR9IiA9PSAi eDg2XzY0LXBjLXdpbmRvd3MtbXN2YyIgXV07IHRoZW4KLS0gICAgIyB1c2Ugc2xlZWYgb24gbGlu dXggYW5kIHdpbmRvd3MgeDg2XzY0IGJ1aWxkcwotLSAgICAjIEZJWE1FOiBVc2UgYGNvcmVfYXJj aCxzbGVlZi1zeXNgIGZlYXR1cmVzIG9uY2UgdGhleSB3b3JrcyBhZ2FpbgotLSAgICBjYXJnb190 ZXN0X2ltcGwgLS1yZWxlYXNlIC0tZmVhdHVyZXM9aW50b19iaXRzCi0tZWxzZQotLSAgICAjIEZJ WE1FOiBVc2UgYGNvcmVfYXJjaGAgZmVhdHVyZSBvbmNlIGl0IHdvcmtzIGFnYWluCi0tICAgIGNh cmdvX3Rlc3RfaW1wbCAtLXJlbGVhc2UgLS1mZWF0dXJlcz1pbnRvX2JpdHMKLS1maQotLQotLSMg VmVyaWZ5IGNvZGUgZ2VuZXJhdGlvbgotLWlmIFtbICIke05PVkVSSUZZfSIgIT0gIjEiIF1dOyB0 aGVuCi0tICAgIGNwIC1yIHZlcmlmeS92ZXJpZnkgdGFyZ2V0L3ZlcmlmeQotLSAgICBleHBvcnQg U1REU0lNRF9BU1NFUlRfSU5TVFJfTElNSVQ9MzAKLS0gICAgaWYgW1sgIiR7VEFSR0VUfSIgPT0g Imk1ODYtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCi0tICAgICAgICBleHBvcnQgU1REU0lN RF9BU1NFUlRfSU5TVFJfTElNSVQ9NTAKLS0gICAgZmkKLS0gICAgY2FyZ29fdGVzdCAtLXJlbGVh c2UgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC92ZXJpZnkvQ2FyZ28udG9tbAotLWZpCi0tCi0tIyBG SVhNRTogRmlndXJlIG91dCB3aGljaCBleGFtcGxlcyB0YWtlIHRvbyBsb25nIHRvIHJ1biBhbmQg aWdub3JlIG9yIGFkanVzdCB0aG9zZQotLSMuIGNpL3J1bl9leGFtcGxlcy5zaAotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4YW1wbGVzLnNoIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2gKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4YW1wbGVzLnNoCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L2NpL3J1bl9leGFtcGxlcy5zaAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsNTEgKzAsMCBAQAotLSMgUnVucyBhbGwgZXhhbXBsZXMuCi0tCi0tIyBGSVhNRTogaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy81NQot LSMgQWxsIGV4YW1wbGVzIGZhaWwgdG8gYnVpbGQgZm9yIGBhcm12Ny1hcHBsZS1pb3NgLgotLWlm IFtbICR7VEFSR0VUfSA9PSAiYXJtdjctYXBwbGUtaW9zIiBdXTsgdGhlbgotLSAgICBleGl0IDAK LS1maQotLQotLSMgRklYTUU6IHRyYXZpcyBleGNlZWRzIDUwIG1pbnV0ZXMgb24gdGhlc2UgdGFy Z2V0cwotLSMgU2tpcHBpbmcgdGhlIGV4YW1wbGVzIGlzIGFuIGF0dGVtcHQgYXQgcHJldmVudGlu ZyB0cmF2aXMgZnJvbSB0aW1pbmctb3V0Ci0taWYgW1sgJHtUQVJHRVR9ID09ICJhcm0tbGludXgt YW5kcm9pZGFiaSIgXV0gfHwgW1sgJHtUQVJHRVR9ID09ICJhYXJjaDY0LWxpbnV4LWFuZHJvaWRh YmkiIF1dIFwKLS0gICAgfHwgW1sgJHtUQVJHRVR9ID09ICJzcGFyYzY0LXVua25vd24tbGludXgt Z251IiBdXTsgdGhlbgotLSAgICBleGl0IDAKLS1maQotLQotLWlmIFtbICR7VEFSR0VUfSA9PSAi d2FzbTMyLXVua25vd24tdW5rbm93biIgXV07IHRoZW4KLS0gICAgZXhpdCAwCi0tZmkKLS0KLS1j cCAtciBleGFtcGxlcy9hb2JlbmNoIHRhcmdldC9hb2JlbmNoCi0tY2FyZ29fdGVzdCAtLW1hbmlm ZXN0LXBhdGg9dGFyZ2V0L2FvYmVuY2gvQ2FyZ28udG9tbCAtLXJlbGVhc2UgLS1uby1kZWZhdWx0 LWZlYXR1cmVzCi0tY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2FvYmVuY2gvQ2Fy Z28udG9tbCAtLXJlbGVhc2UgLS1mZWF0dXJlcz0yNTZiaXQKLS0KLS1jcCAtciBleGFtcGxlcy9k b3RfcHJvZHVjdCB0YXJnZXQvZG90X3Byb2R1Y3QKLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0 aD10YXJnZXQvZG90X3Byb2R1Y3QvQ2FyZ28udG9tbCAtLXJlbGVhc2UKLS0KLS1jcCAtciBleGFt cGxlcy9mYW5ua3VjaF9yZWR1eCB0YXJnZXQvZmFubmt1Y2hfcmVkdXgKLS1jYXJnb190ZXN0IC0t bWFuaWZlc3QtcGF0aD10YXJnZXQvZmFubmt1Y2hfcmVkdXgvQ2FyZ28udG9tbCAtLXJlbGVhc2UK LS0KLS0jIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2Vk X3NpbWQvaXNzdWVzLzU2Ci0taWYgW1sgJHtUQVJHRVR9ICE9ICJpNTg2LXVua25vd24tbGludXgt Z251IiBdXTsgdGhlbgotLSAgICBjcCAtciBleGFtcGxlcy9tYW5kZWxicm90IHRhcmdldC9tYW5k ZWxicm90Ci0tICAgIGNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9tYW5kZWxicm90 L0NhcmdvLnRvbWwgLS1yZWxlYXNlCi0tZmkKLS0KLS1jcCAtciBleGFtcGxlcy9tYXRyaXhfaW52 ZXJzZSB0YXJnZXQvbWF0cml4X2ludmVyc2UKLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10 YXJnZXQvbWF0cml4X2ludmVyc2UvQ2FyZ28udG9tbCAtLXJlbGVhc2UKLS0KLS1jcCAtciBleGFt cGxlcy9uYm9keSB0YXJnZXQvbmJvZHkKLS1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJn ZXQvbmJvZHkvQ2FyZ28udG9tbCAtLXJlbGVhc2UKLS0KLS1jcCAtciBleGFtcGxlcy9zcGVjdHJh bF9ub3JtIHRhcmdldC9zcGVjdHJhbF9ub3JtCi0tY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9 dGFyZ2V0L3NwZWN0cmFsX25vcm0vQ2FyZ28udG9tbCAtLXJlbGVhc2UKLS0KLS1pZiBbWyAke1RB UkdFVH0gIT0gImk1ODYtdW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCi0tICAgIGNwIC1yIGV4 YW1wbGVzL3N0ZW5jaWwgdGFyZ2V0L3N0ZW5jaWwKLS0gICAgY2FyZ29fdGVzdCAtLW1hbmlmZXN0 LXBhdGg9dGFyZ2V0L3N0ZW5jaWwvQ2FyZ28udG9tbCAtLXJlbGVhc2UKLS1maQotLQotLWNwIC1y IGV4YW1wbGVzL3RyaWFuZ2xlX3hmb3JtIHRhcmdldC90cmlhbmdsZV94Zm9ybQotLWNhcmdvX3Rl c3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC90cmlhbmdsZV94Zm9ybS9DYXJnby50b21sIC0tcmVs ZWFzZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVudGVz dC1hbmRyb2lkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW50ZXN0LWFu ZHJvaWQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVudGVzdC1h bmRyb2lkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3J1bnRlc3QtYW5kcm9pZC5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDUgKzAsMCBAQAotLXVzZSBzdGQ6OmVu djsKLS11c2Ugc3RkOjpwcm9jZXNzOjpDb21tYW5kOwotLXVzZSBzdGQ6OnBhdGg6OntQYXRoLCBQ YXRoQnVmfTsKLS0KLS1mbiBtYWluKCkgewotLSAgICBsZXQgYXJncyA9IGVudjo6YXJnc19vcygp Ci0tICAgICAgICAuc2tpcCgxKQotLSAgICAgICAgLmZpbHRlcih8YXJnfCBhcmcgIT0gIi0tcXVp ZXQiKQotLSAgICAgICAgLmNvbGxlY3Q6OjxWZWM8Xz4+KCk7Ci0tICAgIGFzc2VydF9lcSEoYXJn cy5sZW4oKSwgMSk7Ci0tICAgIGxldCB0ZXN0ID0gUGF0aEJ1Zjo6ZnJvbSgmYXJnc1swXSk7Ci0t ICAgIGxldCBkc3QgPSBQYXRoOjpuZXcoIi9kYXRhL2xvY2FsL3RtcCIpLmpvaW4odGVzdC5maWxl X25hbWUoKS51bndyYXAoKSk7Ci0tCi0tICAgIGxldCBzdGF0dXMgPSBDb21tYW5kOjpuZXcoImFk YiIpCi0tICAgICAgICAuYXJnKCJ3YWl0LWZvci1kZXZpY2UiKQotLSAgICAgICAgLnN0YXR1cygp Ci0tICAgICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcnVuOiBhZGIgd2FpdC1mb3ItZGV2aWNlIik7 Ci0tICAgIGFzc2VydCEoc3RhdHVzLnN1Y2Nlc3MoKSk7Ci0tCi0tICAgIGxldCBzdGF0dXMgPSBD b21tYW5kOjpuZXcoImFkYiIpCi0tICAgICAgICAuYXJnKCJwdXNoIikKLS0gICAgICAgIC5hcmco JnRlc3QpCi0tICAgICAgICAuYXJnKCZkc3QpCi0tICAgICAgICAuc3RhdHVzKCkKLS0gICAgICAg IC5leHBlY3QoImZhaWxlZCB0byBydW46IGFkYiBwdXNociIpOwotLSAgICBhc3NlcnQhKHN0YXR1 cy5zdWNjZXNzKCkpOwotLQotLSAgICBsZXQgb3V0cHV0ID0gQ29tbWFuZDo6bmV3KCJhZGIiKQot LSAgICAgICAgLmFyZygic2hlbGwiKQotLSAgICAgICAgLmFyZygmZHN0KQotLSAgICAgICAgLm91 dHB1dCgpCi0tICAgICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcnVuOiBhZGIgc2hlbGwiKTsKLS0g ICAgYXNzZXJ0IShzdGF0dXMuc3VjY2VzcygpKTsKLS0KLS0gICAgcHJpbnRsbiEoInN0YXR1czog e31cbnN0ZG91dCAtLS1cbnt9XG5zdGRlcnIgLS0tXG57fSIsCi0tICAgICAgICAgICAgIG91dHB1 dC5zdGF0dXMsCi0tICAgICAgICAgICAgIFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZvdXRwdXQu c3Rkb3V0KSwKLS0gICAgICAgICAgICAgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5z dGRlcnIpKTsKLS0KLS0gICAgbGV0IHN0ZG91dCA9IFN0cmluZzo6ZnJvbV91dGY4X2xvc3N5KCZv dXRwdXQuc3Rkb3V0KTsKLS0gICAgbGV0IG11dCBsaW5lcyA9IHN0ZG91dC5saW5lcygpLmZpbHRl cih8bHwgbC5zdGFydHNfd2l0aCgidGVzdCByZXN1bHQiKSk7Ci0tICAgIGlmICFsaW5lcy5hbGwo fGx8IGwuY29udGFpbnMoInRlc3QgcmVzdWx0OiBvayIpICYmIGwuY29udGFpbnMoIjAgZmFpbGVk IikpIHsKLS0gICAgICAgIHBhbmljISgiZmFpbGVkIHRvIGZpbmQgc3VjY2Vzc2Z1bCB0ZXN0IHJ1 biIpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvc2V0dXBfYmVuY2htYXJrcy5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv Y2kvc2V0dXBfYmVuY2htYXJrcy5zaAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9zZXR1cF9iZW5jaG1hcmtzLnNoCTIwMjUtMDktMDcgMTQ6MzA6MzcuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3NldHVwX2JlbmNobWFy a3Muc2gJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDcgKzAsMCBA QAotLSMhL3Vzci9iaW4vZW52IGJhc2gKLS0KLS1zZXQgLWV4Ci0tCi0tIyBHZXQgbGF0ZXN0IElT UEMgYmluYXJ5IGZvciB0aGUgdGFyZ2V0IGFuZCBwdXQgaXQgaW4gdGhlIHBhdGgKLS1naXQgY2xv bmUgaHR0cHM6Ly9naXRodWIuY29tL2duemxiZy9pc3BjLWJpbmFyaWVzCi0tY3AgaXNwYy1iaW5h cmllcy9pc3BjLSR7VEFSR0VUfSBpc3BjCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS90ZXN0LXJ1bm5lci1saW51eCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXgKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvdGVzdC1ydW5uZXItbGludXgJMjAyNS0wOS0wNyAxNDozMDozNy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvdGVzdC1ydW5uZXIt bGludXgJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI0ICswLDAg QEAKLS0jIS9iaW4vc2gKLS0KLS1zZXQgLWUKLS0KLS1hcmNoPSQxCi0tcHJvZz0kMgotLQotLWNk IC9xZW11L2luaXQKLS1jcCAtZiAkMiBwcm9nCi0tZmluZCAuIHwgY3BpbyAtLWNyZWF0ZSAtLWZv cm1hdD0nbmV3YycgLS1xdWlldCB8IGd6aXAgPiAuLi9pbml0cmQuZ3oKLS1jZCAuLgotLQotLXRp bWVvdXQgMzBzIHFlbXUtc3lzdGVtLSRhcmNoIFwKLS0gICAgICAgIC1tIDEwMjQgXAotLSAgICAg ICAgLW5vZ3JhcGhpYyBcCi0tICAgICAgICAta2VybmVsIGtlcm5lbCBcCi0tICAgICAgICAtaW5p dHJkIGluaXRyZC5neiBcCi0tICAgICAgICAtYXBwZW5kIGluaXQ9L3Byb2cgPiBvdXRwdXQgfHwg dHJ1ZQotLQotLSMgcmVtb3ZlIGtlcm5lbCBtZXNzYWdlcwotLXRyIC1kICdccicgPCBvdXRwdXQg fCBlZ3JlcCAtdiAnXlxbJwotLQotLSMgaWYgdGhlIG91dHB1dCBjb250YWlucyBhIGZhaWx1cmUs IHJldHVybiBlcnJvcgotLSEgZ3JlcCBGQUlMRUQgb3V0cHV0ID4gL2Rldi9udWxsCi1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jb250cmlidXRpbmcubWQgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NvbnRyaWJ1dGluZy5tZAotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jb250cmlidXRpbmcubWQJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY29udHJp YnV0aW5nLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2NyAr MCwwIEBACi0tIyBDb250cmlidXRpbmcgdG8gYHBhY2tlZF9zaW1kYAotLQotLVdlbGNvbWUhIElm IHlvdSBhcmUgcmVhZGluZyB0aGlzIGRvY3VtZW50LCBpdCBtZWFucyB5b3UgYXJlIGludGVyZXN0 ZWQgaW4gY29udHJpYnV0aW5nCi0tdG8gdGhlIGBwYWNrZWRfc2ltZGAgY3JhdGUuCi0tCi0tIyMg UmVwb3J0aW5nIGlzc3VlcwotLQotLUFsbCBpc3N1ZXMgd2l0aCB0aGlzIGNyYXRlIGFyZSB0cmFj a2VkIHVzaW5nIEdpdEh1YidzIFtJc3N1ZSBUcmFja2VyXS4KLS0KLS1Zb3UgY2FuIHVzZSBpc3N1 ZXMgdG8gYnJpbmcgYnVncyB0byB0aGUgYXR0ZW50aW9uIG9mIHRoZSBtYWludGFpbmVycywgdG8g ZGlzY3VzcwotLWNlcnRhaW4gcHJvYmxlbXMgZW5jb3VudGVyZWQgd2l0aCB0aGUgY3JhdGUsIG9y IHRvIHJlcXVlc3QgbmV3IGZlYXR1cmVzIChhbHRob3VnaAotLWZlYXR1cmUgcmVxdWVzdHMgc2hv dWxkIGJlIGxpbWl0ZWQgdG8gdGhpbmdzIG1lbnRpb25lZCBpbiB0aGUgW1JGQ10pLgotLQotLU9u ZSB0aGluZyB0byBrZWVwIGluIG1pbmQgaXMgdG8gYWx3YXlzIHVzZSB0aGUgKipsYXRlc3QqKiBu aWdodGx5IHRvb2xjaGFpbiB3aGVuCi0td29ya2luZyBvbiB0aGlzIGNyYXRlLiBEdWUgdG8gdGhl IG5hdHVyZSBvZiB0aGlzIHByb2plY3QsIHdlIHVzZSBhIGxvdCBvZiB1bnN0YWJsZQotLWZlYXR1 cmVzLCBtZWFuaW5nIGJyZWFrYWdlIGhhcHBlbnMgb2Z0ZW4uCi0tCi0tW0lzc3VlIFRyYWNrZXJd OiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVz Ci0tW1JGQ106IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzIzNjYKLS0K LS0jIyMgTExWTSBpc3N1ZXMKLS0KLS1UaGUgUnVzdCBjb21waWxlciByZWxpZXMgb24gW0xMVk1d KGh0dHBzOi8vbGx2bS5vcmcvKSBmb3IgbWFjaGluZSBjb2RlIGdlbmVyYXRpb24sCi0tYW5kIHF1 aXRlIGEgZmV3IExMVk0gYnVncyBoYXZlIGJlZW4gZGlzY292ZXJlZCBkdXJpbmcgdGhlIGRldmVs b3BtZW50IG9mIHRoaXMgcHJvamVjdC4KLS0KLS1JZiB5b3UgZW5jb3VudGVyIGlzc3VlcyB3aXRo IGluY29ycmVjdC9zdWJvcHRpbWFsIGNvZGVnZW4sIHdoaWNoIHlvdSBkbyBub3QgZW5jb3VudGVy Ci0td2hlbiB1c2luZyB0aGUgW1NJTUQgdmVuZG9yIGludHJpbnNpY3NdKGh0dHBzOi8vZG9jLnJ1 c3QtbGFuZy5vcmcvbmlnaHRseS9zdGQvYXJjaC8pLAotLWl0IGlzIGxpa2VseSB0aGUgaXNzdWUg aXMgd2l0aCBMTFZNLCBvciB0aGlzIGNyYXRlJ3MgaW50ZXJhY3Rpb24gd2l0aCBpdC4KLS0KLS1Z b3Ugc2hvdWxkIGZpcnN0IG9wZW4gYW4gaXNzdWUgKippbiB0aGlzIHJlcG8qKiB0byBoZWxwIHVz IHRyYWNrIHRoZSBwcm9ibGVtLCBhbmQgd2UKLS13aWxsIGhlbHAgZGV0ZXJtaW5lIHdoYXQgaXMg dGhlIGV4YWN0IGNhdXNlIG9mIHRoZSBwcm9ibGVtLgotLUlmIExMVk0gaXMgaW5kZWVkIHRoZSBj YXVzZSwgdGhlIGlzc3VlIHdpbGwgYmUgcmVwb3J0ZWQgdXBzdHJlYW0gdG8gdGhlCi0tW0xMVk0g YnVndHJhY2tlcl0oaHR0cHM6Ly9idWdzLmxsdm0ub3JnLykuCi0tCi0tIyMgU3VibWl0dGluZyBQ dWxsIFJlcXVlc3RzCi0tCi0tTmV3IGNvZGUgaXMgc3VibWl0dGVkIHRvIHRoZSBjcmF0ZSB1c2lu ZyBHaXRIdWIncyBbcHVsbCByZXF1ZXN0XSBtZWNoYW5pc20uCi0tWW91IHNob3VsZCBmaXJzdCBm b3JrIHRoaXMgcmVwb3NpdG9yeSwgbWFrZSB5b3VyIGNoYW5nZXMgKHByZWZlcmFibHkgaW4gYSBu ZXcKLS1icmFuY2gpLCB0aGVuIHVzZSBHaXRIdWIncyB3ZWIgVUkgdG8gY3JlYXRlIGEgbmV3IFBS LgotLQotLVtwdWxsIHJlcXVlc3RdOiBodHRwczovL2hlbHAuZ2l0aHViLmNvbS9hcnRpY2xlcy9h Ym91dC1wdWxsLXJlcXVlc3RzLwotLQotLSMjIyBFeGFtcGxlcwotLQotLVRoZSBgZXhhbXBsZXNg IGRpcmVjdG9yeSBjb250YWlucyBjb2RlIHNob3djYXNpbmcgU0lNRCBjb2RlIHdyaXR0ZW4gd2l0 aCB0aGlzIGNyYXRlLAotLXVzdWFsbHkgaW4gY29tcGFyaXNvbiB0byBzY2FsYXIgb3IgSVNQQyBj b2RlLiBJZiB5b3UgaGF2ZSBhIHByb2plY3QgLyBpZGVhIHdoaWNoCi0tdXNlcyBTSU1ELCB3ZSdk IGxvdmUgdG8gYWRkIGl0IHRvIHRoZSBleGFtcGxlcyBsaXN0LgotLQotLUV2ZXJ5IGV4YW1wbGUg c2hvdWxkIGluY2x1ZGUgYSBzbWFsbCBgUkVBRE1FYCwgZGVzY3JpYmluZyB0aGUgZXhhbXBsZSBj b2RlJ3MgcHVycG9zZS4KLS1JZiB5b3VyIGV4YW1wbGUgY291bGQgcG90ZW50aWFsbHkgd29yayBh cyBhIGJlbmNobWFyaywgdGhlbiBhZGQgYSBgYmVuY2htYXJrLnNoYAotLXNjcmlwdCB0byBhbGxv dyBydW5uaW5nIHRoZSBleGFtcGxlIGJlbmNobWFyayBjb2RlIGluIENJLiBTZWUgYW4gZXhpc3Rp bmcgZXhhbXBsZSdzCi0tW2BiZW5jaG1hcmsuc2hgXShleGFtcGxlcy9hb2JlbmNoL2JlbmNobWFy ay5zaCkgZm9yIGEgc2FtcGxlLgotLQotLURvbid0IGZvcmdldCB0byB1cGRhdGUgdGhlIGNyYXRl J3MgdG9wLWxldmVsIGBSRUFETUVgIHdpdGggYSBsaW5rIHRvIHlvdXIgZXhhbXBsZS4KLS0KLS0j IyMgUGVyZiBndWlkZQotLQotLVRoZSBvYmplY3RpdmUgb2YgdGhlIFtwZXJmb3JtYW5jZSBndWlk ZV1bcGVyZi1ndWlkZV0gaXMgdG8gYmUgYSBjb21wcmVoZW5zaXZlCi0tcmVzb3VyY2UgZGV0YWls aW5nIHRoZSBwcm9jZXNzIG9mIG9wdGltaXppbmcgUnVzdCBjb2RlIHdpdGggU0lNRCBzdXBwb3J0 LgotLQotLUlmIHlvdSBiZWxpZXZlIGEgY2VydGFpbiBzZWN0aW9uIGNvdWxkIGJlIHJld29yZGVk LCBvciBpZiB5b3UgaGF2ZSBhbnkgdGlwcyAmIHRyaWNrcwotLXJlbGF0ZWQgdG8gU0lNRCB3aGlj aCB5b3UnZCBsaWtlIHRvIHNoYXJlLCBwbGVhc2Ugb3BlbiBhIFBSLgotLQotLVttZEJvb2tdIGlz IHVzZWQgdG8gbWFuYWdlIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBndWlkZSBhcyBhIGJvb2suCi0t Ci0tW3BlcmYtZ3VpZGVdOiBodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlLwotLVttZEJvb2tdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvbWRCb29rCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvLmdpdGlnbm9yZQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9wZXJmLWd1aWRlLy5naXRpZ25vcmUJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8uZ2l0aWdu b3JlCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSArMCwwIEBACi0t L2Jvb2sKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvYm9vay50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jv b2sudG9tbAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jv b2sudG9tbAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL2Jvb2sudG9tbAkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTIgKzAsMCBAQAotLVtib29rXQotLWF1dGhv cnMgPSBbIkdvbnphbG8gQnJpdG8gR2FkZXNjaGkiLCAiR2FicmllbCBNYWplcmkiXQotLW11bHRp bGluZ3VhbCA9IGZhbHNlCi0tc3JjID0gInNyYyIKLS10aXRsZSA9ICJSdXN0IFNJTUQgUGVyZm9y bWFuY2UgR3VpZGUiCi0tZGVzY3JpcHRpb24gPSAiVGhpcyBib29rIGRlc2NyaWJlcyBob3cgdG8g d3JpdGUgcGVyZm9ybWFudCBTSU1EIGNvZGUgaW4gUnVzdC4iCi0tCi0tW2J1aWxkXQotLWNyZWF0 ZS1taXNzaW5nID0gZmFsc2UKLS0KLS1bb3V0cHV0Lmh0bWxdCi0tYWRkaXRpb25hbC1jc3MgPSBb Ii4vc3JjL2FzY2lpLmNzcyJdCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9TVU1NQVJZLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL1NVTU1BUlkubWQJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvU1VNTUFSWS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMjEgKzAsMCBAQAotLSMgU3VtbWFyeQotLQotLVtJbnRyb2R1Y3Rpb25dKC4vaW50cm9k dWN0aW9uLm1kKQotLQotLS0gW0Zsb2F0aW5nLXBvaW50IE1hdGhdKC4vZmxvYXQtbWF0aC9mcC5t ZCkKLS0gIC0gW1Nob3J0LXZlY3RvciBNYXRoIExpYnJhcnldKC4vZmxvYXQtbWF0aC9zdm1sLm1k KQotLSAgLSBbQXBwcm94aW1hdGUgZnVuY3Rpb25zXSguL2Zsb2F0LW1hdGgvYXBwcm94Lm1kKQot LSAgLSBbRnVzZWQgbXVsdGlwbHktYWNjdW11bGF0ZV0oLi9mbG9hdC1tYXRoL2ZtYS5tZCkKLS0K LS0tIFtUYXJnZXQgZmVhdHVyZXNdKC4vdGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQpCi0tICAt IFtVc2luZyBgUlVTVEZMQUdTYF0oLi90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQpCi0tICAt IFtVc2luZyB0aGUgYHRhcmdldF9mZWF0dXJlYCBhdHRyaWJ1dGVdKC4vdGFyZ2V0LWZlYXR1cmUv YXR0cmlidXRlLm1kKQotLSAgLSBbSW50ZXJhY3Rpb24gd2l0aCBpbmxpbmluZ10oLi90YXJnZXQt ZmVhdHVyZS9pbmxpbmluZy5tZCkKLS0gIC0gW0RldGVjdGluZyBmZWF0dXJlcyBhdCBydW50aW1l XSguL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQpCi0tCi0tLSBbQm91bmRzIGNoZWNraW5nXSgu L2JvdW5kX2NoZWNrcy5tZCkKLS0tIFtWZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBvcGVyYXRpb25z XSguL3ZlcnQtaG9yLW9wcy5tZCkKLS0KLS0tIFtQZXJmb3JtYW5jZSBwcm9maWxpbmddKC4vcHJv Zi9wcm9maWxpbmcubWQpCi0tICAtIFtQcm9maWxpbmcgb24gTGludXhdKC4vcHJvZi9saW51eC5t ZCkKLS0gIC0gW1VzaW5nIG1hY2hpbmUgY29kZSBhbmFseXplcnNdKC4vcHJvZi9tY2EubWQpCi1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9h c2NpaS5jc3MgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Fz Y2lpLmNzcwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9hc2NpaS5jc3MJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYXNjaWkuY3NzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0ICswLDAgQEAKLS1jb2RlIHsK LS0gICAgLyogIlNvdXJjZSBDb2RlIFBybyIgYnJlYWtzIEFTQ0lJIGFydCAqLwotLSAgICBmb250 LWZhbWlseTogQ29uc29sYXMsICJVYnVudHUgTW9ubyIsIE1lbmxvLCAiRGVqYVZ1IFNhbnMgTW9u byIsIG1vbm9zcGFjZTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZAotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9ib3VuZF9jaGVja3MubWQJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kCTE5NzAtMDEtMDEgMDM6MDA6 MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMiArMCwwIEBACi0tIyBCb3VuZHMgY2hlY2tpbmcK LS0KLS1SZWFkaW5nIGFuZCB3cml0aW5nIHBhY2tlZCB2ZWN0b3JzIHRvL2Zyb20gc2xpY2VzIGlz IGNoZWNrZWQgYnkgZGVmYXVsdC4KLS1JbmRlcGVuZGVudGx5IG9mIHRoZSBjb25maWd1cmF0aW9u IG9wdGlvbnMgdXNlZCwgdGhlIHNhZmUgZnVuY3Rpb25zOgotLQotLSogYFNpbWQ8W1Q7IE5dPjo6 ZnJvbV9zbGljZV9hbGlnbmVkKCYgc1suLl0pYAotLSogYFNpbWQ8W1Q7IE5dPjo6d3JpdGVfdG9f c2xpY2VfYWxpZ25lZCgmbXV0IHNbLi5dKWAKLS0KLS1hbHdheXMgY2hlY2sgdGhhdDoKLS0KLS0q IHRoZSBzbGljZSBpcyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIHZlY3RvcgotLSogdGhlIHNsaWNl IGlzIHN1aXRhYmx5IGFsaWduZWQgdG8gcGVyZm9ybSBhbiBhbGlnbmVkIGxvYWQvc3RvcmUgZm9y IGEgYFNpbWQ8W1Q7Ci0tICBOXT5gICh0aGlzIGFsaWdubWVudCBpcyBvZnRlbiBtdWNoIGxhcmdl ciB0aGFuIHRoYXQgb2YgYFRgKS4KLS0KLS1UaGVyZSBhcmUgYF91bmFsaWduZWRgIHZlcnNpb25z IHRoYXQgdXNlIHVuYWxpZ25lZCBsb2FkIGFuZCBzdG9yZXMsIGFzIHdlbGwgYXMKLS1gdW5zYWZl YCBgX3VuY2hlY2tlZGAgdGhhdCBkbyBub3QgcGVyZm9ybSBhbnkgY2hlY2tzIGlmZiBgZGVidWct YXNzZXJ0aW9ucyA9Ci0tZmFsc2VgIC8gYGRlYnVnID0gZmFsc2VgLiBUaGF0IGlzLCB0aGUgYF91 bmNoZWNrZWRgIG1ldGhvZHMgZG8gc3RpbGwgYXNzZXJ0IHNpemUKLS1hbmQgYWxpZ25tZW50IGlu IGRlYnVnIGJ1aWxkcyBhbmQgY291bGQgYWxzbyBkbyBzbyBpbiByZWxlYXNlIGJ1aWxkcyBkZXBl bmRpbmcKLS1vbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLgotLQotLVRoZXNlIGFzc2VydGlv bnMgZG8gb2Z0ZW4gc2lnbmlmaWNhbnRseSBpbXBhY3QgcGVyZm9ybWFuY2UgYW5kIHlvdSBzaG91 bGQgYmUKLS1hd2FyZSBvZiB0aGVtLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvYXBwcm94Lm1kCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1h dGgvYXBwcm94Lm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvYXBw cm94Lm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4ICswLDAg QEAKLS0jIEFwcHJveGltYXRlIGZ1bmN0aW9ucwotLQotLTwhLS0gVE9ETzoKLS0KLS1FeHBsYWlu IHRoYXQgdGhleSBleGlzdHMsIHRoYXQgdGhleSBhcmUgb2Z0ZW4gX211Y2hfIGZhc3RlciwgaG93 IHRvIHVzZSB0aGVtLAotLXRoYXQgcGVvcGxlIHNob3VsZCBjaGVjayB3aGV0aGVyIHRoZSBlcnJv ciBpcyBnb29kIGVub3VnaCBmb3IgdGhlaXIKLS1hcHBsaWNhdGlvbnMuIEV4cGxhaW4gdGhhdCB0 aGlzIGVycm9yIGlzIGN1cnJlbnRseSB1bnN0YWJsZSBhbmQgbWlnaHQgY2hhbmdlLgotLS0tPgot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv ZmxvYXQtbWF0aC9mbWEubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYt Z3VpZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw2ICswLDAgQEAKLS0jIEZ1c2VkIE11bHRpcGx5IEFkZAotLQotLTwhLS0g VE9ETzoKLS1FeHBsYWluIHRoYXQgdGhpcyBpcyBhIGNvbXBvdW5kIG9wZXJhdGlvbiwgaW5maW5p dGUgcHJlY2lzaW9uLCBkaWZmZXJlbmNlCi0tYmV0d2VlbiBgbXVsX2FkZGAgYW5kIGBtdWxfYWRk ZWAsIHRoYXQgTExWTSBjYW5ub3QgZG8gdGhpcyBieSBpdHNlbGYsIGV0Yy4KLS0tLT4KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0 LW1hdGgvZnAubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3Jj L2Zsb2F0LW1hdGgvZnAubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9mbG9hdC1tYXRoL2ZwLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSwzICswLDAgQEAKLS0jIEZsb2F0aW5nLXBvaW50IG1hdGgKLS0KLS1UaGlzIGNoYXB0ZXIg Y29udGFpbnMgaW5mb3JtYXRpb24gcGVydGFpbmluZyB0byB3b3JraW5nIHdpdGggZmxvYXRpbmct cG9pbnQgbnVtYmVycy4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1sLm1kCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZAky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDcgKzAsMCBAQAotLSMgU2hvcnQgVmVj dG9yIE1hdGggTGlicmFyeQotLQotLTwhLS0gVE9ETzoKLS1FeHBsYWluIGhvdyBpcyBzaG9ydC12 ZWN0b3IgbWF0aCBwZXJmb3JtZWQgYnkgZGVmYXVsdCAoanVzdCBzY2FsYXJpemVkIGxpYm0gY2Fs bHMpLgotLQotLUV4cGxhaW4gaG93IHRvIGVuYWJsZSBgc2xlZWZgLCBldGMuCi0tLS0+Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9pbnRy b2R1Y3Rpb24ubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3Jj L2ludHJvZHVjdGlvbi5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlL3NyYy9pbnRyb2R1Y3Rpb24ubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv aW50cm9kdWN0aW9uLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwyNiArMCwwIEBACi0tIyBJbnRyb2R1Y3Rpb24KLS0KLS0jIyBXaGF0IGlzIFNJTUQKLS0KLS08 IS0tIFRPRE86Ci0tZGVzY3JpYmUgd2hhdCBTSU1EIGlzLCB3aGljaCBhbGdvcml0aG1zIGNhbiBi ZW5lZml0IGZyb20gaXQsCi0tZ2l2ZSB1c2FnZSBleGFtcGxlcwotLS0tPgotLQotLSMjIEhpc3Rv cnkgb2YgU0lNRCBpbiBSdXN0Ci0tCi0tPCEtLSBUT0RPOgotLWRpc2N1c3MgaGlzdG9yeSBvZiB1 bnN0YWJsZSBzdGQ6OnNpbWQsCi0tc3RhYmlsaXphdGlvbiBvZiBzdGQ6OmFyY2gsIGV0Yy4KLS0t LT4KLS0KLS0jIyBEaXNjb3ZlciBwYWNrZWRfc2ltZAotLQotLTwhLS0gVE9ETzogZGVzY3JpYmUg c2NvcGUgb2YgdGhpcyBwcm9qZWN0IC0tPgotLQotLVdyaXRpbmcgZmFzdCBhbmQgcG9ydGFibGUg U0lNRCBhbGdvcml0aG1zIHVzaW5nIGBwYWNrZWRfc2ltZGAgaXMsIHVuZm9ydHVuYXRlbHksCi0t bm90IHRyaXZpYWwuIFRoZXJlIGFyZSBtYW55IHBpdGZhbHMgdGhhdCBvbmUgc2hvdWxkIGJlIGF3 YXJlIG9mLCBhbmQgc29tZSBpZGlvbXMKLS10aGF0IGhlbHAgYXZvaWQgdGhvc2UgcGl0ZmFsbHMu Ci0tCi0tVGhpcyBib29rIGF0dGVtcHRzIHRvIGRvY3VtZW50IHRoZXNlIGJlc3QgcHJhY3RpY2Vz IGFuZCBwcm92aWRlcyBwcmFjdGljYWwgZXhhbXBsZXMKLS1vbiBob3cgdG8gYXBwbHkgdGhlIHRp cHMgdG8gX3lvdXJfIGNvZGUuCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbGludXgubWQJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTA3ICswLDAgQEAKLS0jIFBlcmZvcm1hbmNlIHByb2ZpbGluZyBv biBMaW51eAotLQotLSMjIFVzaW5nIGBwZXJmYAotLQotLVtwZXJmXShodHRwczovL3BlcmYud2lr aS5rZXJuZWwub3JnLykgaXMgdGhlIG1vc3QgcG93ZXJmdWwgcGVyZm9ybWFuY2UgcHJvZmlsZXIK LS1mb3IgTGludXgsIGZlYXR1cmluZyBzdXBwb3J0IGZvciB2YXJpb3VzIGhhcmR3YXJlIFBlcmZv cm1hbmNlIE1vbml0b3JpbmcgVW5pdHMsCi0tYXMgd2VsbCBhcyBpbnRlZ3JhdGlvbiB3aXRoIHRo ZSBrZXJuZWwncyBwZXJmb3JtYW5jZSBldmVudHMgZnJhbWV3b3JrLgotLQotLVdlIHdpbGwgb25s eSBsb29rIGF0IGhvdyBjYW4gdGhlIGBwZXJmYCBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIHByb2Zp bGUgU0lNRCBjb2RlLgotLUZ1bGwgc3lzdGVtIHByb2ZpbGluZyBpcyBvdXRzaWRlIG9mIHRoZSBz Y29wZSBvZiB0aGlzIGJvb2suCi0tCi0tIyMjIFJlY29yZGluZwotLQotLVRoZSBmaXJzdCBzdGVw IGlzIHRvIHJlY29yZCBhIHByb2dyYW0ncyBleGVjdXRpb24gZHVyaW5nIGFuIGF2ZXJhZ2Ugd29y a2xvYWQuCi0tSXQgaGVscHMgaWYgeW91IGNhbiBpc29sYXRlIHRoZSBwYXJ0cyBvZiB5b3VyIHBy b2dyYW0gd2hpY2ggaGF2ZSBwZXJmb3JtYW5jZQotLWlzc3VlcywgYW5kIHNldCB1cCBhIGJlbmNo bWFyayB3aGljaCBjYW4gYmUgZWFzaWx5IChyZSlydW4uCi0tCi0tQnVpbGQgdGhlIGJlbmNobWFy ayBiaW5hcnkgaW4gcmVsZWFzZSBtb2RlLCBhZnRlciBoYXZpbmcgZW5hYmxlZCBkZWJ1ZyBpbmZv OgotLQotLWBgYHNoCi0tJCBjYXJnbyBidWlsZCAtLXJlbGVhc2UKLS1GaW5pc2hlZCByZWxlYXNl IFtvcHRpbWl6ZWQgKyBkZWJ1Z2luZm9dIHRhcmdldChzKSBpbiAwLjAycwotLWBgYAotLQotLVRo ZW4gdXNlIHRoZSBgcGVyZiByZWNvcmRgIHN1YmNvbW1hbmQ6Ci0tCi0tYGBgc2gKLS0kIHBlcmYg cmVjb3JkIC0tY2FsbC1ncmFwaD1kd2FyZiAuL3RhcmdldC9yZWxlYXNlL215LXByb2dyYW0KLS1b IHBlcmYgcmVjb3JkOiBXb2tlbiB1cCAxMCB0aW1lcyB0byB3cml0ZSBkYXRhIF0KLS1bIHBlcmYg cmVjb3JkOiBDYXB0dXJlZCBhbmQgd3JvdGUgMiwzNTYgTUIgcGVyZi5kYXRhICgyOTIgc2FtcGxl cykgXQotLWBgYAotLQotLUluc3RlYWQgb2YgdXNpbmcgYC0tY2FsbC1ncmFwaD1kd2FyZmAsIHdo aWNoIGNhbiBiZWNvbWUgcHJldHR5IHNsb3csIHlvdSBjYW4gdXNlCi0tYC0tY2FsbC1ncmFwaD1s YnJgIGlmIHlvdSBoYXZlIGEgcHJvY2Vzc29yIHdpdGggc3VwcG9ydCBmb3IgTGFzdCBCcmFuY2gg UmVjb3JkCi0tKGkuZS4gSW50ZWwgSGFzd2VsbCBhbmQgbmV3ZXIpLgotLQotLWBwZXJmYCB3aWxs LCBieSBkZWZhdWx0LCByZWNvcmQgdGhlIGNvdW50IG9mIENQVSBjeWNsZXMgaXQgdGFrZXMgdG8g ZXhlY3V0ZQotLXZhcmlvdXMgcGFydHMgb2YgeW91ciBwcm9ncmFtLiBZb3UgY2FuIHVzZSB0aGUg YC1lYCBjb21tYW5kIGxpbmUgb3B0aW9uCi0tdG8gZW5hYmxlIG90aGVyIHBlcmZvcm1hbmNlIGV2 ZW50cywgc3VjaCBhcyBgY2FjaGUtbWlzc2VzYC4gVXNlIGBwZXJmIGxpc3RgCi0tdG8gZ2V0IGEg bGlzdCBvZiBhbGwgaGFyZHdhcmUgY291bnRlcnMgc3VwcG9ydGVkIGJ5IHlvdXIgQ1BVLgotLQot LSMjIyBWaWV3aW5nIHRoZSByZXBvcnQKLS0KLS1UaGUgbmV4dCBzdGVwIGlzIGdldHRpbmcgYSBi aXJkJ3MgZXllIHZpZXcgb2YgdGhlIHByb2dyYW0ncyBleGVjdXRpb24uCi0tYHBlcmZgIHByb3Zp ZGVzIGEgYG5jdXJzZXNgLWJhc2VkIGludGVyZmFjZSB3aGljaCB3aWxsIGdldCB5b3Ugc3RhcnRl ZC4KLS0KLS1Vc2UgYHBlcmYgcmVwb3J0YCB0byBvcGVuIGEgdmlzdWFsaXphdGlvbiBvZiB5b3Vy IHByb2dyYW0ncyBwZXJmb3JtYW5jZToKLS0KLS1gYGBzaAotLXBlcmYgcmVwb3J0IC0taGllcmFy Y2h5IC1NIGludGVsCi0tYGBgCi0tCi0tYC0taGllcmFyY2h5YCB3aWxsIGRpc3BsYXkgYSB0cmVl LWxpa2Ugc3RydWN0dXJlIG9mIHdoZXJlIHlvdXIgcHJvZ3JhbSBzcGVudAotLW1vc3Qgb2YgaXRz IHRpbWUuIGAtTSBpbnRlbGAgZW5hYmxlcyBkaXNhc3NlbWJseSBvdXRwdXQgd2l0aCBJbnRlbCBz eW50YXgsIHdoaWNoCi0taXMgc3ViamVjdGl2ZWx5IG1vcmUgcmVhZGFibGUgdGhhbiB0aGUgZGVm YXVsdCBBVCZUIHN5bnRheC4KLS0KLS1IZXJlIGlzIHRoZSBvdXRwdXQgZnJvbSBwcm9maWxpbmcg dGhlIGBuYm9keWAgYmVuY2htYXJrOgotLQotLWBgYAotLS0gMTAwLDAwJSBuYm9keQotLSAgLSA5 NCwxOCUgbmJvZHkKLS0gICAgKyA5Myw0OCUgWy5dIG5ib2R5X2xpYjo6c2ltZDo6YWR2YW5jZQot LSAgICArIDAsNzAlIFsuXSBuYm9keV9saWI6OnJ1bgotLSAgICArIDUsMDYlIGxpYmMtMi4yOC5z bwotLWBgYAotLQotLUlmIHlvdSBtb3ZlIHdpdGggdGhlIGFycm93IGtleXMgdG8gYW55IG5vZGUg aW4gdGhlIHRyZWUsIHlvdSBjYW4gdGhlIHByZXNzIGBhYAotLXRvIGhhdmUgYHBlcmZgIF9hbm5v dGF0ZV8gdGhhdCBub2RlLiBUaGlzIG1lYW5zIGl0IHdpbGw6Ci0tCi0tLSBkaXNhc3NlbWJsZSB0 aGUgZnVuY3Rpb24KLS0KLS0tIGFzc29jaWF0ZSBldmVyeSBpbnN0cnVjdGlvbiB3aXRoIHRoZSBw ZXJjZW50YWdlIG9mIHRpbWUgd2hpY2ggd2FzIHNwZW50IGV4ZWN1dGluZyBpdAotLQotLS0gaW50 ZXJsZWF2ZXMgdGhlIGRpc2Fzc2VtYmx5IHdpdGggdGhlIHNvdXJjZSBjb2RlLAotLSAgYXNzdW1p bmcgaXQgZm91bmQgdGhlIGRlYnVnIHN5bWJvbHMKLS0gICh5b3UgY2FuIHVzZSBgc2AgdG8gdG9n Z2xlIHRoaXMgYmVoYXZpb3VyKQotLQotLWBwZXJmYCB3aWxsLCBieSBkZWZhdWx0LCBvcGVuIHRo ZSBpbnN0cnVjdGlvbiB3aGljaCBpdCBpZGVudGlmaWVkIGFzIGJlaW5nIHRoZQotLWhvdHRlc3Qg c3BvdCBpbiB0aGUgZnVuY3Rpb246Ci0tCi0tYGBgCi0tMCw3NiAg4pSCIG1vdmFwZCB4bW0yLHht bTAKLS0wLDM4ICDilIIgbW92aGxwcyB4bW0yLHhtbTAKLS0gICAgICDilIIgYWRkcGQgIHhtbTIs eG1tMAotLSAgICAgIOKUgiB1bnBja2xwZCB4bW0xLHhtbTIKLS0xMiw1MCDilIIgc3FydHBkIHht bTAseG1tMQotLTEsNTIgIOKUgiBtdWxwZCAgeG1tMCx4bW0xCi0tYGBgCi0tCi0tSW4gdGhpcyBj YXNlLCBgc3FydHBkYCB3aWxsIGJlIGhpZ2hsaWdodGVkIGluIHJlZCwgc2luY2UgdGhhdCdzIHRo ZSBpbnN0cnVjdGlvbgotLXdoaWNoIHRoZSBDUFUgc3BlbmRzIG1vc3Qgb2YgaXRzIHRpbWUgZXhl Y3V0aW5nLgotLQotLSMjIFVzaW5nIFZhbGdyaW5kCi0tCi0tVmFsZ3JpbmQgaXMgYSBzZXQgb2Yg dG9vbHMgd2hpY2ggaW5pdGlhbGx5IGhlbHBlZCBDL0MrKyBwcm9ncmFtbWVycyBmaW5kIHVuc2Fm ZQotLW1lbW9yeSBhY2Nlc3NlcyBpbiB0aGVpciBjb2RlLiBOb3dhZGF5cyB0aGUgcHJvamVjdCBh bHNvIGhhcwotLQotLS0gYSBoZWFwIHByb2ZpbGVyIGNhbGxlZCBgbWFzc2lmYAotLQotLS0gYSBj YWNoZSB1dGlsaXphdGlvbiBwcm9maWxlciBjYWxsZWQgYGNhY2hlZ3JpbmRgCi0tCi0tLSBhIGNh bGwtZ3JhcGggcGVyZm9ybWFuY2UgcHJvZmlsZXIgY2FsbGVkIGBjYWxsZ3JpbmRgCi0tCi0tPCEt LQotLVRPRE86IGV4cGxhaW4gdmFsZ3JpbmQncyBkeW5hbWljIGJpbmFyeSB0cmFuc2xhdGlvbiwg d2FybiBhYm91dCBtYXNzaXZlCi0tc2xvd2Rvd24sIHRhbGsgYWJvdXQgYGtjYWNoZWdyaW5kYCBm b3IgYSBHVUkKLS0tLT4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL3Byb2YvbWNhLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9wZXJmLWd1aWRlL3NyYy9wcm9mL21jYS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL21jYS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlL3NyYy9wcm9mL21jYS5tZAkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMTAwICswLDAgQEAKLS0jIE1hY2hpbmUgY29kZSBhbmFseXNpcyB0b29scwotLQotLSMj IFRoZSBtaWNyb2FyY2hpdGVjdHVyZSBvZiBtb2Rlcm4gQ1BVcwotLQotLVdoaWxlIHlvdSBtaWdo dCBoYXZlIGhlYXJkIG9mIEluc3RydWN0aW9uIFNldCBBcmNoaXRlY3R1cmVzLCBzdWNoIGFzIGB4 ODZgIG9yCi0tYGFybWAgb3IgYG1pcHNgLCB0aGUgdGVybSBfbWljcm9hcmNoaXRlY3R1cmVfIChh bHNvIHdyaXR0ZW4gaGVyZSBhcyBfwrUtYXJjaF8pLAotLXJlZmVycyB0byB0aGUgaW50ZXJuYWwg ZGV0YWlscyBvZiBhbiBhY3R1YWwgZmFtaWx5IG9mIENQVXMsIHN1Y2ggYXMgSW50ZWwncwotLV9I YXN3ZWxsXyBvciBBTUQncyBfSmFndWFyXy4KLS0KLS1SZXBsYWNpbmcgc2NhbGFyIGNvZGUgd2l0 aCBTSU1EIGNvZGUgd2lsbCBpbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGFsbCBDUFVzCi0tc3VwcG9y dGluZyB0aGUgcmVxdWlyZWQgdmVjdG9yIGV4dGVuc2lvbnMuCi0tSG93ZXZlciwgZHVlIHRvIG1p Y3JvYXJjaGl0ZWN0dXJhbCBkaWZmZXJlbmNlcywgdGhlIGFjdHVhbCBzcGVlZC11cCBhdAotLXJ1 bnRpbWUgbWlnaHQgdmFyeS4KLS0KLS0qKkV4YW1wbGUqKjogYSBzaW1wbGUgZXhhbXBsZSBhcmlz ZXMgd2hlbiBvcHRpbWl6aW5nIGZvciBBTUQgSzggQ1BVcy4KLS1UaGUgYXNzZW1ibHkgZ2VuZXJh dGVkIGZvciBhbiBlbXB0eSBmdW5jdGlvbiBzaG91bGQgbG9vayBsaWtlIHRoaXM6Ci0tCi0tYGBg YXNtCi0tbm9wCi0tcmV0Ci0tYGBgCi0tCi0tVGhlIGBub3BgIGlzIHVzZWQgdG8gYWxpZ24gdGhl IGByZXRgIGluc3RydWN0aW9uIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCi0tSG93ZXZlciwgdGhl IGNvbXBpbGVyIHdpbGwgYWN0dWFsbHkgZ2VuZXJhdGVkIHRoZSBmb2xsb3dpbmcgY29kZToKLS0K LS1gYGBhc20KLS1yZXB6IHJldAotLWBgYAotLQotLVRoZSBgcmVwemAgaW5zdHJ1Y3Rpb24gd2ls bCByZXBlYXQgdGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbiB1bnRpbCBhIGNlcnRhaW4KLS1jb25k aXRpb24uIE9mIGNvdXJzZSwgaW4gdGhpcyBzaXR1YXRpb24sIHRoZSBmdW5jdGlvbiB3aWxsIHNp bXBseSBpbW1lZGlhdGVseQotLXJldHVybiwgYW5kIHRoZSBgcmV0YCBpbnN0cnVjdGlvbiBpcyBz dGlsbCBhbGlnbmVkLgotLUhvd2V2ZXIsIEFNRCBLOCdzIGJyYW5jaCBwcmVkaWN0b3IgcGVyZm9y bXMgYmV0dGVyIHdpdGggdGhlIGxhdHRlciBjb2RlLgotLQotLUZvciB0aG9zZSBsb29raW5nIHRv IGFic29sdXRlbHkgbWF4aW1pemUgcGVyZm9ybWFuY2UgZm9yIGEgY2VydGFpbiB0YXJnZXQgwrUt YXJjaCwKLS15b3Ugd2lsbCBoYXZlIHRvIHJlYWQgc29tZSBDUFUgbWFudWFscywgb3IgYXNrIHRo ZSBjb21waWxlciB0byBkbyBpdCBmb3IgeW91Ci0td2l0aCBgLUMgdGFyZ2V0LWNwdWAuCi0tCi0t IyMjIFN1bW1hcnkgb2YgQ1BVIGludGVybmFscwotLQotLU1vZGVybiBwcm9jZXNzb3JzIGFyZSBh YmxlIHRvIGV4ZWN1dGUgaW5zdHJ1Y3Rpb25zIG91dC1vZi1vcmRlciBmb3IgYmV0dGVyIHBlcmZv cm1hbmNlLAotLWJ5IHV0aWxpemluZyB0cmlja3Mgc3VjaCBhcyBbYnJhbmNoIHByZWRpY3Rpb25d LCBbaW5zdHJ1Y3Rpb24gcGlwZWxpbmluZ10sCi0tb3IgW3N1cGVyc2NhbGFyIGV4ZWN1dGlvbl0u Ci0tCi0tW2JyYW5jaCBwcmVkaWN0aW9uXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kv QnJhbmNoX3ByZWRpY3RvcgotLVtpbnN0cnVjdGlvbiBwaXBlbGluaW5nXTogaHR0cHM6Ly9lbi53 aWtpcGVkaWEub3JnL3dpa2kvSW5zdHJ1Y3Rpb25fcGlwZWxpbmluZwotLVtzdXBlcnNjYWxhciBl eGVjdXRpb25dOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TdXBlcnNjYWxhcl9wcm9j ZXNzb3IKLS0KLS1TSU1EIGluc3RydWN0aW9ucyBhcmUgYWxzbyBzdWJqZWN0IHRvIHRoZXNlIG9w dGltaXphdGlvbnMsIG1lYW5pbmcgaXQgY2FuIGdldCBwcmV0dHkKLS1kaWZmaWN1bHQgdG8gZGV0 ZXJtaW5lIHdoZXJlIHRoZSBzbG93ZG93biBoYXBwZW5zLgotLUZvciBleGFtcGxlLCBpZiB0aGUg cHJvZmlsZXIgcmVwb3J0cyBhIHN0b3JlIG9wZXJhdGlvbiBpcyBzbG93LCBvbmUgb2YgdHdvIHRo aW5ncwotLWNvdWxkIGJlIGhhcHBlbmluZzoKLS0KLS0tIHRoZSBzdG9yZSBpcyBsaW1pdGVkIGJ5 IHRoZSBDUFUncyBtZW1vcnkgYmFuZHdpZHRoLCB3aGljaCBpcyBhY3R1YWxseSBhbiBpZGVhbAot LSAgc2NlbmFyaW8sIGFsbCB0aGluZ3MgY29uc2lkZXJlZDsKLS0KLS0tIG1lbW9yeSBiYW5kd2lk dGggaXMgbm93aGVyZSBuZWFyIGl0cyBwZWFrLCBidXQgdGhlIHZhbHVlIHRvIGJlIHN0b3JlZCBp cyBhdCB0aGUKLS0gIGVuZCBvZiBhIGxvbmcgY2hhaW4gb2Ygb3BlcmF0aW9ucywgYW5kIHRoaXMg c3RvcmUgaXMgd2hlcmUgdGhlIHByb2ZpbGVyCi0tICBlbmNvdW50ZXJlZCB0aGUgcGlwZWxpbmUg c3RhbGw7Ci0tCi0tU2luY2UgbW9zdCBwcm9maWxlcnMgYXJlIHNpbXBsZSB0b29scyB3aGljaCBk b24ndCB1bmRlcnN0YW5kIHRoZSBzdWJ0bGV0aWVzIG9mCi0taW5zdHJ1Y3Rpb24gc2NoZWR1bGlu ZywgeW91Ci0tCi0tIyMgQW5hbHl6aW5nIHRoZSBtYWNoaW5lIGNvZGUKLS0KLS1DZXJ0YWluIHRv b2xzIGhhdmUga25vd2xlZGdlIG9mIGludGVybmFsIENQVSBtaWNyb2FyY2hpdGVjdHVyZSwgaS5l LiB0aGV5IGtub3cKLS0KLS0tIGhvdyBtYW55IHBoeXNpY2FsIFtyZWdpc3RlciBmaWxlc10gYSBD UFUgYWN0dWFsbHkgaGFzCi0tCi0tLSB3aGF0IGlzIHRoZSBsYXRlbmN5IC8gdGhyb3VnaHRwdXQg b2YgYW4gaW5zdHJ1Y3Rpb24KLS0KLS0tIHdoYXQgW8K1LW9wc10gYXJlIGdlbmVyYXRlZCBmb3Ig YSBzZXQgb2YgaW5zdHJ1Y3Rpb25zCi0tCi0tYW5kIG1hbnkgb3RoZXIgYXJjaGl0ZWN0dXJhbCBk ZXRhaWxzLgotLQotLVtyZWdpc3RlciBmaWxlc106IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93 aWtpL1JlZ2lzdGVyX2ZpbGUKLS1bwrUtb3BzXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp a2kvTWljcm8tb3BlcmF0aW9uCi0tCi0tVGhlc2UgdG9vbHMgYXJlIHRoZXJlZm9yZSBhYmxlIHRv IHByb3ZpZGUgYWNjdXJhdGUgaW5mb3JtYXRpb24gYXMgdG8gd2h5IHNvbWUKLS1pbnN0cnVjdGlv bnMgYXJlIGluZWZmaWNpZW50LCBhbmQgd2hlcmUgdGhlIGJvdHRsZW5lY2sgaXMuCi0tCi0tVGhl IGRpc2FkdmFudGFnZSBpcyB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlc2UgdG9vbHMgcmVxdWlyZXMg YWR2YW5jZWQga25vd2xlZGdlCi0tb2YgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUgdG8gdW5kZXJz dGFuZCwgaS5lLiB0aGV5ICoqY2Fubm90KiogcG9pbnQgb3V0IHdoYXQKLS10aGUgY2F1c2Ugb2Yg dGhlIGlzc3VlIGlzIGV4cGxpY2l0bHkuCi0tCi0tIyMgSW50ZWwncyBBcmNoaXRlY3R1cmUgQ29k ZSBBbmFseXplciAoSUFDQSkKLS0KLS1bSUFDQV0gaXMgYSBmcmVlIHRvb2wgb2ZmZXJlZCBieSBJ bnRlbCBmb3IgYW5hbHl6aW5nIHRoZSBwZXJmb3JtYW5jZSBvZiB2YXJpb3VzCi0tY29tcHV0YXRp b25hbCBrZXJuZWxzLgotLQotLUJlaW5nIGEgcHJvcHJpZXRhcnksIGNsb3NlZCBzb3VyY2UgdG9v bCwgaXQgX29ubHlfIHN1cHBvcnRzIEludGVsJ3MgwrUtYXJjaGVzLgotLQotLVtJQUNBXTogaHR0 cHM6Ly9zb2Z0d2FyZS5pbnRlbC5jb20vZW4tdXMvYXJ0aWNsZXMvaW50ZWwtYXJjaGl0ZWN0dXJl LWNvZGUtYW5hbHl6ZXIKLS0KLS0jIyBsbHZtLW1jYQotLQotLTwhLS0KLS1UT0RPOiBvbmNlIExM Vk0gNyBnZXRzIHJlbGVhc2VkLCB3cml0ZSBhIGNoYXB0ZXIgb24gdXNpbmcgbGx2bS1tY2EKLS13 aXRoIFNJTUQgZGlzYXNzZW1ibHkuCi0tLS0+Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5tZCBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9m aWxpbmcubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9wcm9maWxpbmcubWQJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE0ICswLDAgQEAKLS0j IFBlcmZvcm1hbmNlIHByb2ZpbGluZwotLQotLVdoaWxlIHRoZSByZXN0IG9mIHRoZSBib29rIHBy b3ZpZGVzIHByYWN0aWNhbCBhZHZpY2Ugb24gaG93IHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNl Ci0tb2YgU0lNRCBjb2RlLCB0aGlzIGNoYXB0ZXIgaXMgZGVkaWNhdGVkIHRvIFsqKnBlcmZvcm1h bmNlIHByb2ZpbGluZyoqXVtwcm9maWxpbmddLgotLVByb2ZpbGluZyBjb25zaXN0cyBvZiByZWNv cmRpbmcgYSBwcm9ncmFtJ3MgZXhlY3V0aW9uIGluIG9yZGVyIHRvIGlkZW50aWZ5IHByb2dyYW0K LS1ob3RzcG90cy4KLS0KLS0qKkltcG9ydGFudCoqOiBtb3N0IHByb2ZpbGVycyByZXF1aXJlIGRl YnVnIGluZm9ybWF0aW9uIGluIG9yZGVyIHRvIGFjY3VyYXRlbHkKLS1saW5rIHRoZSBwcm9ncmFt IGhvdHNwb3RzIGJhY2sgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUgbGluZXMuIFJ1 c3Qgd2lsbAotLWRpc2FibGUgZGVidWcgaW5mbyBnZW5lcmF0aW9uIGJ5IGRlZmF1bHQgZm9yIG9w dGltaXplZCBidWlsZHMsIGJ1dCB5b3UgY2FuIGNoYW5nZQotLXRoYXQgW2luIHlvdXIgYENhcmdv LnRvbWxgXVtjYXJnby1yZWZdLgotLQotLVtwcm9maWxpbmddOiBodHRwczovL2VuLndpa2lwZWRp YS5vcmcvd2lraS9Qcm9maWxpbmdfKGNvbXB1dGVyX3Byb2dyYW1taW5nKQotLVtjYXJnby1yZWZd OiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL2NhcmdvL3JlZmVyZW5jZS9tYW5pZmVzdC5odG1s I3RoZS1wcm9maWxlLXNlY3Rpb25zCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0 dHJpYnV0ZS5tZAotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRl L3NyYy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlk ZS9zcmMvdGFyZ2V0LWZlYXR1cmUvYXR0cmlidXRlLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSw1ICswLDAgQEAKLS0jIFRoZSBgdGFyZ2V0X2ZlYXR1cmVgIGF0 dHJpYnV0ZQotLQotLTwhLS0gVE9ETzoKLS1FeHBsYWluIHRoZSBgI1t0YXJnZXRfZmVhdHVyZV1g IGF0dHJpYnV0ZQotLS0tPgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2ZlYXR1cmVz Lm1kCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Rh cmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Rh cmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICsw MzAwCi1AQCAtMSwxMyArMCwwIEBACi0tIyBFbmFibGluZyB0YXJnZXQgZmVhdHVyZXMKLS0KLS1O b3QgYWxsIHByb2Nlc3NvcnMgb2YgYSBjZXJ0YWluIGFyY2hpdGVjdHVyZSB3aWxsIGhhdmUgU0lN RCBwcm9jZXNzaW5nIHVuaXRzLAotLWFuZCB1c2luZyBhIFNJTUQgaW5zdHJ1Y3Rpb24gd2hpY2gg aXMgbm90IHN1cHBvcnRlZCB3aWxsIHRyaWdnZXIgdW5kZWZpbmVkIGJlaGF2aW9yLgotLQotLVRv IGFsbG93IGJ1aWxkaW5nIHNhZmUsIHBvcnRhYmxlIHByb2dyYW1zLCB0aGUgUnVzdCBjb21waWxl ciB3aWxsICoqbm90KiosIGJ5IGRlZmF1bHQsCi0tZ2VuZXJhdGUgYW55IHNvcnQgb2YgdmVjdG9y IGluc3RydWN0aW9ucywgdW5sZXNzIGl0IGNhbiBzdGF0aWNhbGx5IGRldGVybWluZQotLXRoZXkg YXJlIHN1cHBvcnRlZC4gRm9yIGV4YW1wbGUsIG9uIEFNRDY0LCBTU0UyIHN1cHBvcnQgaXMgYXJj aGl0ZWN0dXJhbGx5IGd1YXJhbnRlZWQuCi0tVGhlIGB4ODZfNjQtYXBwbGUtZGFyd2luYCB0YXJn ZXQgZW5hYmxlcyB1cCB0byBTU1NFMy4gVGhlIGdldCBhIGRlZmludGl2ZSBsaXN0IG9mCi0td2hp Y2ggZmVhdHVyZXMgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiB2YXJpb3VzIHBsYXRmb3Jtcywg cmVmZXIgdG8gdGhlIHRhcmdldAotLXNwZWNpZmljYXRpb25zIFtpbiB0aGUgY29tcGlsZXIncyBz b3VyY2UgY29kZV1bdGFyZ2V0c10uCi0tCi0tW3RhcmdldHNdOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL3J1c3QvdHJlZS9tYXN0ZXIvc3JjL2xpYnJ1c3RjX3RhcmdldC9zcGVjCi1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJn ZXQtZmVhdHVyZS9pbmxpbmluZy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcu bWQJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcu bWQJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDUgKzAsMCBAQAot LSMgSW5saW5pbmcKLS0KLS08IS0tIFRPRE86Ci0tRXhwbGFpbiBob3cgdGhlIGAjW3RhcmdldF9m ZWF0dXJlXWAgYXR0cmlidXRlIGludGVyYWN0cyB3aXRoIGlubGluaW5nCi0tLS0+Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQt ZmVhdHVyZS9wcmFjdGljZS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3RpY2UubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3RpY2UubWQJ MjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcHJhY3RpY2UubWQJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMxICswLDAgQEAKLS0j IFRhcmdldCBmZWF0dXJlcyBpbiBwcmFjdGljZQotLQotLVVzaW5nIGBSVVNURkxBR1NgIHdpbGwg YWxsb3cgdGhlIGNyYXRlIGJlaW5nIGNvbXBpbGVkLCBhcyB3ZWxsIGFzIGFsbCBpdHMKLS10cmFu c2l0aXZlIGRlcGVuZGVuY2llcyB0byB1c2UgY2VydGFpbiB0YXJnZXQgZmVhdHVyZXMuCi0tCi0t QSB0ZWhuaXF1ZSB1c2VkIHRvIGF2b2lkIHVuZGVmaW5lZCBiZWhhdmlvciBhdCBydW50aW1lIGlz IHRvIGNvbXBpbGUgYW5kCi0tc2hpcCBtdWx0aXBsZSBiaW5hcmllcywgZWFjaCBjb21waWxlZCB3 aXRoIGEgY2VydGFpbiBzZXQgb2YgZmVhdHVyZXMuCi0tVGhpcyBtaWdodCBub3QgYmUgZmVhc2li bGUgaW4gc29tZSBjYXNlcywgYW5kIGNhbiBxdWlja2x5IGdldCBvdXQgb2YgaGFuZAotLWFzIG1v cmUgYW5kIG1vcmUgdmVjdG9yIGV4dGVuc2lvbnMgYXJlIGFkZGVkIHRvIGFuIGFyY2hpdGVjdHVy ZS4KLS0KLS1SdXN0IGNhbiBiZSBtb3JlIGZsZXhpYmxlOiB5b3UgY2FuIGJ1aWxkIGEgc2luZ2xl IGJpbmFyeS9saWJyYXJ5IHdoaWNoIGF1dG9tYXRpY2FsbHkKLS1waWNrcyB0aGUgYmVzdCBzdXBw b3J0ZWQgdmVjdG9yIGluc3RydWN0aW9ucyBkZXBlbmRpbmcgb24gdGhlIGhvc3QgbWFjaGluZS4K LS1UaGUgdHJpY2sgY29uc2lzdHMgb2YgbW9ub21vcnBoaXppbmcgcGFydHMgb2YgdGhlIGNvZGUg ZHVyaW5nIGJ1aWxkaW5nLCBhbmQgdGhlbgotLXVzaW5nIHJ1bi10aW1lIGZlYXR1cmUgZGV0ZWN0 aW9uIHRvIHNlbGVjdCB0aGUgcmlnaHQgY29kZSBwYXRoIHdoZW4gcnVubmluZy4KLS0KLS08IS0t IFRPRE8KLS1FeHBsYWluIGhvdyB0byBjcmVhdGUgZWZmaWNpZW50IGZ1bmN0aW9ucyB0aGF0IGRp c3BhdGNoIHRvIGRpZmZlcmVudAotLWltcGxlbWVudGF0aW9ucyBhdCBydW4tdGltZSB3aXRob3V0 IGlzc3VlcyAoZS5nLiB1c2luZyBgI1tpbmxpbmUoYWx3YXlzKV1gIGZvcgotLXRoZSBpbXBscywg d3JhcHBpbmcgaW4gYCNbdGFyZ2V0X2ZlYXR1cmVdYCwgYW5kIHRoZSB3cmFwcGluZyB0aG9zZSBp biBhIGZ1bmN0aW9uCi0tdGhhdCBkb2VzIHJ1bi10aW1lIGZlYXR1cmUgZGV0ZWN0aW9uKS4KLS0t LT4KLS0KLS0qKk5PVEUqKiAoeDg2IHNwZWNpZmljKTogYmVjYXVzZSB0aGUgQVZYICgyNTYtYml0 KSByZWdpc3RlcnMgZXh0ZW5kIHRoZSBleGlzdGluZwotLVNTRSAoMTI4LWJpdCkgcmVnaXN0ZXJz LCBtaXhpbmcgU1NFIGFuZCBBVlggaW5zdHJ1Y3Rpb25zIGluIGEgcHJvZ3JhbSBjYW4gY2F1c2UK LS1wZXJmb3JtYW5jZSBpc3N1ZXMuCi0tCi0tVGhlIHNvbHV0aW9uIGlzIHRvIGNvbXBpbGUgYWxs IGNvZGUsIGV2ZW4gdGhlIGNvZGUgd3JpdHRlbiB3aXRoIDEyOC1iaXQgdmVjdG9ycywKLS13aXRo IHRoZSBBVlggdGFyZ2V0IGZlYXR1cmUgZW5hYmxlZC4gVGhpcyB3aWxsIGNhdXNlIHRoZSBjb21w aWxlciB0byBwcmVmaXggdGhlCi0tZ2VuZXJhdGVkIGluc3RydWN0aW9ucyB3aXRoIHRoZSBbVkVY XSBwcmVmaXguCi0tCi0tW1ZFWF06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZFWF9w cmVmaXgKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3Vp ZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1bnRpbWUubWQKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUv cnVudGltZS5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9y dW50aW1lLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1ICsw LDAgQEAKLS0jIERldGVjdGluZyBob3N0IGZlYXR1cmVzIGF0IHJ1bnRpbWUKLS0KLS08IS0tIFRP RE86Ci0tRXhwbGFpbiBjb3N0IChob3cgaXQgd29ya3MpLgotLS0tPgotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUv cnVzdGZsYWdzLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZAkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNzcgKzAsMCBAQAotLSMgVXNp bmcgUlVTVEZMQUdTCi0tCi0tT25lIG9mIHRoZSBlYXNpZXN0IHdheXMgdG8gYmVuZWZpdCBmcm9t IFNJTUQgaXMgdG8gYWxsb3cgdGhlIGNvbXBpbGVyCi0tdG8gZ2VuZXJhdGUgY29kZSB1c2luZyBj ZXJ0YWluIHZlY3RvciBpbnN0cnVjdGlvbiBleHRlbnNpb25zLgotLQotLVRoZSBlbnZpcm9ubWVu dCB2YXJpYWJsZSBgUlVTVEZMQUdTYCBjYW4gYmUgdXNlZCB0byBwYXNzIG9wdGlvbnMgZm9yIGNv ZGUKLS1nZW5lcmF0aW9uIHRvIHRoZSBSdXN0IGNvbXBpbGVyLiBUaGVzZSBmbGFncyB3aWxsIGFm ZmVjdCAqKmFsbCoqIGNvbXBpbGVkIGNyYXRlcy4KLS0KLS1UaGVyZSBhcmUgdHdvIGZsYWdzIHdo aWNoIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBzcGVjaWZpYyB2ZWN0b3IgZXh0ZW5zaW9uczoKLS0K LS0jIyB0YXJnZXQtZmVhdHVyZQotLQotLS0gU3ludGF4OiBgLUMgdGFyZ2V0LWZlYXR1cmU9PGZl YXR1cmVzPmAKLS0KLS0tIFByb3ZpZGVzIHRoZSBjb21waWxlciB3aXRoIGEgY29tbWEtc2VwYXJh dGVkIHNldCBvZiBpbnN0cnVjdGlvbiBleHRlbnNpb25zCi0tICB0byBlbmFibGUuCi0tCi0tICAq KkV4YW1wbGUqKjogVXNlIGAtQyB0YXJnZXQtZmVhdHVyZT0rc3NlMywrYXZ4YCB0byBlbmFibGUg Z2VuZXJhdGluZyBpbnN0cnVjdGlvbnMKLS0gIGZvciBbU3RyZWFtaW5nIFNJTUQgRXh0ZW5zaW9u cyAzXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TU0UzKSBhbmQKLS0gIFtBZHZhbmNl ZCBWZWN0b3IgRXh0ZW5zaW9uc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQWR2YW5j ZWRfVmVjdG9yX0V4dGVuc2lvbnMpLgotLQotLS0gVG8gbGlzdCB0YXJnZXQgdHJpcGxlcyBmb3Ig YWxsIHRhcmdldHMgc3VwcG9ydGVkIGJ5IFJ1c3QsIHVzZToKLS0KLS0gIGBgYHNoCi0tICBydXN0 YyAtLXByaW50IHRhcmdldC1saXN0Ci0tICBgYGAKLS0KLS0tIFRvIGxpc3QgYWxsIHN1cHBvcnQg dGFyZ2V0IGZlYXR1cmVzIGZvciBhIGNlcnRhaW4gdGFyZ2V0IHRyaXBsZSwgdXNlOgotLQotLSAg YGBgc2gKLS0gIHJ1c3RjIC0tdGFyZ2V0PSR7VFJJUExFfSAtLXByaW50IHRhcmdldC1mZWF0dXJl cwotLSAgYGBgCi0tCi0tLSBOb3RlIHRoYXQgYWxsIENQVSBmZWF0dXJlcyBhcmUgaW5kZXBlbmRl bnQsIGFuZCB3aWxsIGhhdmUgdG8gYmUgZW5hYmxlZCBpbmRpdmlkdWFsbHkuCi0tCi0tICAqKkV4 YW1wbGUqKjogU2V0dGluZyBgLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDJgIHdpbGwgX25vdF8gZW5h YmxlIGBmbWFgLCBldmVuIHRob3VnaAotLSAgYWxsIENQVXMgd2hpY2ggc3VwcG9ydCBBVlgyIGFs c28gc3VwcG9ydCBGTUEuIFRvIGVuYWJsZSBib3RoLCBvbmUgaGFzIHRvIHVzZQotLSAgYC1DIHRh cmdldC1mZWF0dXJlPSthdngyLCtmbWFgCi0tCi0tLSBTb21lIGZlYXR1cmVzIGFsc28gZGVwZW5k IG9uIG90aGVyIGZlYXR1cmVzLCB3aGljaCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoZQotLSAg dGFyZ2V0IGluc3RydWN0aW9ucyB0byBiZSBnZW5lcmF0ZWQuCi0tCi0tICAqKkV4YW1wbGUqKjog VW5sZXNzIGB2N2AgaXMgc3BlY2lmaWVkIGFzIHRoZSB0YXJnZXQgQ1BVIChzZWUgYmVsb3cpLCB0 byBlbmFibGUKLS0gIE5FT04gb24gQVJNIGl0IGlzIG5lY2Vzc2FyeSB0byB1c2UgYC1DIHRhcmdl dC1mZWF0dXJlPSt2NywrbmVvbmAuCi0tCi0tIyMgdGFyZ2V0LWNwdQotLQotLS0gU3ludGF4OiBg LUMgdGFyZ2V0LWNwdT08Y3B1PmAKLS0KLS0tIFNldHMgdGhlIGlkZW50aWZpZXIgb2YgYSBDUFUg ZmFtaWx5IC8gbW9kZWwgZm9yIHdoaWNoIHRvIGJ1aWxkIGFuZCBvcHRpbWl6ZSB0aGUgY29kZS4K LS0KLS0gICoqRXhhbXBsZSoqOiBgUlVTVEZMQUdTPSctQyB0YXJnZXQtY3B1PWNvcnRleC1hNzUn YAotLQotLS0gVG8gbGlzdCBhbGwgc3VwcG9ydGVkIHRhcmdldCBDUFVzIGZvciBhIGNlcnRhaW4g dGFyZ2V0IHRyaXBsZSwgdXNlOgotLQotLSAgYGBgc2gKLS0gIHJ1c3RjIC0tdGFyZ2V0PSR7VFJJ UExFfSAtLXByaW50IHRhcmdldC1jcHVzCi0tICBgYGAKLS0KLS0gICoqRXhhbXBsZSoqOgotLQot LSAgYGBgc2gKLS0gIHJ1c3RjIC0tdGFyZ2V0PWk2ODYtcGMtd2luZG93cy1tc3ZjIC0tcHJpbnQg dGFyZ2V0LWNwdXMKLS0gIGBgYAotLQotLS0gVGhlIGNvbXBpbGVyIHdpbGwgdHJhbnNsYXRlIHRo aXMgaW50byBhIGxpc3Qgb2YgdGFyZ2V0IGZlYXR1cmVzLiBUaGVyZWZvcmUsCi0tICBpbmRpdmlk dWFsIGZlYXR1cmUgY2hlY2tzIChgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiLi4uIildYCkgd2ls bCBzdGlsbAotLSAgd29yayBwcm9wZXJseS4KLS0KLS0tIEl0IHdpbGwgY2F1c2UgdGhlIGNvZGUg Z2VuZXJhdG9yIHRvIG9wdGltaXplIHRoZSBnZW5lcmF0ZWQgY29kZSBmb3IgdGhhdAotLSAgc3Bl Y2lmaWMgQ1BVIG1vZGVsLgotLQotLS0gVXNpbmcgYG5hdGl2ZWAgYXMgdGhlIENQVSBtb2RlbCB3 aWxsIGNhdXNlIFJ1c3QgdG8gZ2VuZXJhdGUgYW5kIG9wdGltaXplIGNvZGUKLS0gIGZvciB0aGUg Q1BVIHJ1bm5pbmcgdGhlIGNvbXBpbGVyLiBJdCBpcyB1c2VmdWwgd2hlbiBidWlsZGluZyBwcm9n cmFtcyB3aGljaCB5b3UKLS0gIHBsYW4gdG8gb25seSB1c2UgbG9jYWxseS4gVGhpcyBzaG91bGQg bmV2ZXIgYmUgdXNlZCB3aGVuIHRoZSBnZW5lcmF0ZWQgcHJvZ3JhbXMKLS0gIGFyZSBtZWFudCB0 byBiZSBydW4gb24gb3RoZXIgY29tcHV0ZXJzLCBzdWNoIGFzIHdoZW4gcGFja2FnaW5nIGZvciBk aXN0cmlidXRpb24KLS0gIG9yIGNyb3NzLWNvbXBpbGluZy4KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1k Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQt aG9yLW9wcy5tZAkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDc2ICswLDAgQEAKLS0j IFZlcnRpY2FsIGFuZCBob3Jpem9udGFsIG9wZXJhdGlvbnMKLS0KLS1JbiBTSU1EIHRlcm1pbm9s b2d5LCBlYWNoIHZlY3RvciBoYXMgYSBjZXJ0YWluICJ3aWR0aCIgKG51bWJlciBvZiBsYW5lcyku Ci0tQSB2ZWN0b3IgcHJvY2Vzc29yIGlzIGFibGUgdG8gcGVyZm9ybSB0d28ga2luZHMgb2Ygb3Bl cmF0aW9ucyBvbiBhIHZlY3RvcjoKLS0KLS0tIFZlcnRpY2FsIG9wZXJhdGlvbnM6Ci0tICBvcGVy YXRlIG9uIHR3byB2ZWN0b3JzIG9mIHRoZSBzYW1lIHdpZHRoLCByZXN1bHQgaGFzIHNhbWUgd2lk dGgKLS0KLS0qKkV4YW1wbGUqKjogdmVydGljYWwgYWRkaXRpb24gb2YgdHdvIGBmMzJ4NGAgdmVj dG9ycwotLQotLSAgICAgICUwICAgICA9PSB8IDIgfCAtMy41IHwgIDAgfCA3IHwKLS0gICAgICAg ICAgICAgICAgICArICAgICArICAgICArICAgKwotLSAgICAgICUxICAgICA9PSB8IDQgfCAgMS41 IHwgLTEgfCAwIHwKLS0gICAgICAgICAgICAgICAgICA9ICAgICA9ICAgICA9ICAgPQotLSAgICAl MCArICUxICA9PSB8IDYgfCAgLTIgIHwgLTEgfCA3IHwKLS0KLS0tIEhvcml6b250YWwgb3BlcmF0 aW9uczoKLS0gIHJlZHVjZSB0aGUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgaW4gc29tZSB3YXks Ci0tICB0aGUgcmVzdWx0J3MgZWxlbWVudHMgY29tYmluZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSB0 d28gb3JpZ2luYWwgb25lcwotLQotLSoqRXhhbXBsZSoqOiBob3Jpem9udGFsIGFkZGl0aW9uIG9m IHR3byBgdTY0eDJgIHZlY3RvcnMKLS0KLS0gICAgICAlMCAgICAgPT0gfCAxIHwgIDMgfAotLSAg ICAgICAgICAgICAgICAgIOKUlOKUgCvilIDilIDilIDilJgKLS0gICAgICAgICAgICAgICAgICAg IOKUlOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUkAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICDilIIKLS0gICAgICAlMSAgICAgPT0gfCA0IHwgLTEgfCAg4pSCCi0tICAgICAgICAgICAgICAg ICAg4pSU4pSAK+KUgOKUgOKUmCAgICDilIIKLS0gICAgICAgICAgICAgICAgICAgIOKUlOKUgOKU gOKUgOKUkCAgIOKUggotLSAgICAgICAgICAgICAgICAgICAgICAgIOKUgiAgIOKUggotLSAgICAg ICAgICAgICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUguKUgOKUgOKUgOKUmAotLSAgICAgICAg ICAgICAgICAgIOKWvCAgICAg4pa8Ci0tICAgICUwICsgJTEgID09IHwgNCB8ICAgMyB8Ci0tCi0t IyMgUGVyZm9ybWFuY2UgY29uc2lkZXJhdGlvbiBvZiBob3Jpem9udGFsIG9wZXJhdGlvbnMKLS0K LS1UaGUgcmVzdWx0IG9mIHZlcnRpY2FsIG9wZXJhdGlvbnMsIGxpa2UgdmVjdG9yIG5lZ2F0aW9u OiBgLWFgLCBmb3IgYSBnaXZlbiBsYW5lLAotLWRvZXMgbm90IGRlcGVuZCBvbiB0aGUgcmVzdWx0 IG9mIHRoZSBvcGVyYXRpb24gZm9yIHRoZSBvdGhlciBsYW5lcy4gVGhlIHJlc3VsdAotLW9mIGhv cml6b250YWwgb3BlcmF0aW9ucywgbGlrZSB0aGUgdmVjdG9yIGBzdW1gIHJlZHVjdGlvbjogYGEu c3VtKClgLCBkZXBlbmRzIG9uCi0tdGhlIHZhbHVlIG9mIGFsbCB2ZWN0b3IgbGFuZXMuCi0tCi0t SW4gdmlydHVhbGx5IGFsbCBhcmNoaXRlY3R1cmVzIHZlcnRpY2FsIG9wZXJhdGlvbnMgYXJlIGZh c3QsIHdoaWxlIGhvcml6b250YWwKLS1vcGVyYXRpb25zIGFyZSwgYnkgY29tcGFyaXNvbiwgdmVy eSBzbG93LgotLQotLUNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgdHdvIGZ1bmN0aW9ucyBmb3IgY29t cHV0aW5nIHRoZSBzdW0gb2YgYWxsIGBmMzJgIHZhbHVlcwotLWluIGEgc2xpY2U6Ci0tCi0tYGBg cnVzdAotLWZuIGZhc3Rfc3VtKHg6ICZbZjMyXSkgLT4gZjMyIHsKLS0gICAgYXNzZXJ0ISh4Lmxl bigpICUgNCA9PSAwKTsKLS0gICAgbGV0IG11dCBzdW0gPSBmMzJ4NDo6c3BsYXQoMC4pOyAvLyBb MC4sIDAuLCAwLiwgMC5dCi0tICAgIGZvciBpIGluICgwLi54LmxlbigpKS5zdGVwX2J5KDQpIHsK LS0gICAgICAgIHN1bSArPSBmMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSk7Ci0t ICAgIH0KLS0gICAgc3VtLnN1bSgpCi0tfQotLQotLWZuIHNsb3dfc3VtKHg6ICZbZjMyXSkgLT4g ZjMyIHsKLS0gICAgYXNzZXJ0ISh4LmxlbigpICUgNCA9PSAwKTsKLS0gICAgbGV0IG11dCBzdW06 IGYzMiA9IDAuOwotLSAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0KSB7Ci0tICAg ICAgICBzdW0gKz0gZjMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2kuLl0pLnN1bSgpOwot LSAgICB9Ci0tICAgIHN1bQotLX0KLS1gYGAKLS0KLS1UaGUgaW5uZXIgbG9vcCBvdmVyIHRoZSBz bGljZSBpcyB3aGVyZSB0aGUgYnVsayBvZiB0aGUgd29yayBhY3R1YWxseSBoYXBwZW5zLgotLVRo ZXJlLCB0aGUgYGZhc3Rfc3VtYCBmdW5jdGlvbiBwZXJmb3JtIHZlcnRpY2FsIG9wZXJhdGlvbnMg aW50byBhIHZlY3RvciwgZG9pbmcKLS1hIHNpbmdsZSBob3Jpem9udGFsIHJlZHVjdGlvbiBhdCB0 aGUgZW5kLCB3aGlsZSB0aGUgYHNsb3dfc3VtYCBmdW5jdGlvbiBwZXJmb3JtcwotLWhvcml6b250 YWwgdmVjdG9yIG9wZXJhdGlvbnMgaW5zaWRlIG9mIHRoZSBsb29wLgotLQotLU9uIGFsbCB3aWRl bHktdXNlZCBhcmNoaXRlY3R1cmVzLCBgZmFzdF9zdW1gIGlzIGEgbGFyZ2UgY29uc3RhbnQgZmFj dG9yIGZhc3RlcgotLXRoYW4gYHNsb3dfc3VtYC4gWW91IGNhbiBydW4gdGhlIFtzbGljZV9zdW1d KCkgZXhhbXBsZSBhbmQgc2VlIGZvciB5b3Vyc2VsZi4gT24KLS10aGUgcGFydGljdWxhciBtYWNo aW5lIHRlc3RlZCB0aGVyZSB0aGUgYWxnb3JpdGhtIHVzaW5nIHRoZSBob3Jpem9udGFsIHZlY3Rv cgotLWFkZGl0aW9uIGlzIDIuN3ggc2xvd2VyIHRoYW4gdGhlIG9uZSB1c2luZyB2ZXJ0aWNhbCB2 ZWN0b3Igb3BlcmF0aW9ucyEKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3J1c3RmbXQudG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcnVzdGZtdC50 b21sCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3J1c3RmbXQudG9tbAkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9ydXN0Zm10LnRvbWwJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDUgKzAsMCBAQAotLW1heF93aWR0aCA9IDExMAotLXVzZV9zbWFsbF9oZXVyaXN0 aWNzID0gIk1heCIKLS13cmFwX2NvbW1lbnRzID0gdHJ1ZQotLWVkaXRpb24gPSAiMjAxOCIKLS1l cnJvcl9vbl9saW5lX292ZXJmbG93ID0gdHJ1ZQotXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9t YW5pcC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRfbWFuaXAu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRfbWFuaXAu cnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRfbWFuaXAucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEyOSArMCwwIEBACi0tLy8hIEJpdCBtYW5pcHVsYXRp b25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX2JpdF9tYW5pcCB7Ci0tICAgIChbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewot LSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIg b2Ygb25lcyBpbiB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mCi0tICAgICAgICAgICAgLy8v IHRoZSBsYW5lcyBvZiBgc2VsZmAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIGZuIGNvdW50X29uZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1 cGVyOjpjb2RlZ2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdHBvcChzZWxmKQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHplcm9zIGlu IHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YKLS0gICAgICAgICAgICAvLy8gdGhlIGxhbmVz IG9mIGBzZWxmYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4g Y291bnRfemVyb3Moc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHN1cGVyOjpjb2Rl Z2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdHBvcCghc2VsZikKLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm9zIGlu IHRoZSBiaW5hcnkKLS0gICAgICAgICAgICAvLy8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGxhbmVz IG9mIGBzZWxmYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4g bGVhZGluZ196ZXJvcyhzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc3VwZXI6OmNv ZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0bHooc2VsZikKLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvcyBp biB0aGUgYmluYXJ5Ci0tICAgICAgICAgICAgLy8vIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsYW5l cyBvZiBgc2VsZmAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IHRyYWlsaW5nX3plcm9zKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzdXBlcjo6 Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3R0eihzZWxmKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAjW2FsbG93 KG92ZXJmbG93aW5nX2xpdGVyYWxzKV0KLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf Yml0X21hbmlwPl0gewotLSAgICAgICAgICAgICAgICAgICAgIyFbYWxsb3coY29uc3RfaXRlbV9t dXRhdGlvbildCi0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICBjb25zdCBMQU5FX1dJRFRIOiB1c2l6ZSA9IG1lbTo6c2l6ZV9vZjo6PCRl bGVtX3R5PigpICogODsKLS0KLS0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVzISB0ZXN0 X2Z1bmMgewotLSAgICAgICAgICAgICAgICAgICAgICAgICgkeDpleHByLCAkZnVuYzppZGVudCkg PT4ge3sKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhY3R1YWwgPSAkeDsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbCA9IGFjdHVhbC5yZXBsYWNl KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJHguZXh0cmFjdChpKS4kZnVuYygpIGFzICRlbGVtX3R5 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZCA9 ICR4LiRmdW5jKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYWN0 dWFsLCBleHBlY3RlZCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfX07Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBjb25zdCBCWVRFUzogW3U4OyA2 NF0gPSBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywK LS0gICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAot LSAgICAgICAgICAgICAgICAgICAgICAgIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywK LS0gICAgICAgICAgICAgICAgICAgICAgICAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5 LAotLSAgICAgICAgICAgICAgICAgICAgICAgIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0 NywKLS0gICAgICAgICAgICAgICAgICAgICAgICA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwg NTUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIs IDYzLAotLSAgICAgICAgICAgICAgICAgICAgXTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIGZu IGxvYWRfYnl0ZXMoKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbGVt czogJm11dCBbJGVsZW1fdHldID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJZVEVTLmFzX211dF9wdHIoKSBhcyAqbXV0ICRlbGVtX3R5LAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKGVsZW1zKQotLSAgICAgICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICBmbiBjb3VudF9vbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf ZnVuYyEoJGlkOjpzcGxhdCgwKSwgY291bnRfb25lcyk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KCEwKSwgY291bnRfb25lcyk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVzKCksIGNvdW50X29uZXMpOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICBmbiBjb3VudF96ZXJvcygpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMCksIGNvdW50X3plcm9zKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoITApLCBjb3VudF96ZXJvcyk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVzKCksIGNvdW50X3pl cm9zKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbGVhZGluZ196ZXJvcygpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMCksIGxlYWRpbmdfemVy b3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgxKSwg bGVhZGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc29tZSBpbXBsZW1l bnRhdGlvbnMgdXNlIGBwc2h1ZmJgIHdoaWNoIGhhcyB1bmlxdWUKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBiZWhhdmlvciB3aGVuIHRoZSA4dGggYml0IGlzIHNldC4KLS0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMGIxMDAwXzAwMTApLCBsZWFkaW5n X3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQo ITApLCBsZWFkaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMh KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEgPDwgKExBTkVfV0lE VEggLSAxKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlYWRpbmdfemVyb3MKLS0g ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf ZnVuYyEobG9hZF9ieXRlcygpLCBsZWFkaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gdHJhaWxpbmdfemVyb3MoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9m dW5jISgkaWQ6OnNwbGF0KDApLCB0cmFpbGluZ196ZXJvcyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDEpLCB0cmFpbGluZ196ZXJvcyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDBiMTAwMF8wMDEwKSwgdHJh aWxpbmdfemVyb3MpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpz cGxhdCghMCksIHRyYWlsaW5nX3plcm9zKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2Z1bmMhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEgPDwgKExB TkVfV0lEVEggLSAxKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nX3pl cm9zCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgdHJhaWxpbmdfemVyb3MpOwotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvYml0bWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9iaXRtYXNrLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Yml0bWFzay5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdG1hc2sucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDc5ICswLDAgQEAKLS0vLyEgQml0bWFzayBB UEkKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9iaXRtYXNrIHsKLS0gICAgKCRpZDppZGVudCB8ICRp Yml0bWFza190eTppZGVudCB8ICgkc2V0OmV4cHIsICRjbGVhcjpleHByKQotLSAgICAgfCAkdGVz dF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBDcmVh dGVzIGEgYml0bWFzayB3aXRoIHRoZSBNU0Igb2YgZWFjaCB2ZWN0b3IgbGFuZS4KLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgdGhlIHZlY3RvciBoYXMgbGVzcyB0aGFuIDgg bGFuZXMsIHRoZSBiaXRzIHRoYXQgZG8gbm90Ci0tICAgICAgICAgICAgLy8vIGNvcnJlc3BvbmQg dG8gYW55IHZlY3RvciBsYW5lcyBhcmUgY2xlYXJlZC4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gYml0bWFzayhzZWxmKSAtPiAkaWJpdG1hc2tfdHkgewotLSAg ICAgICAgICAgICAgICB1bnNhZmUgeyBjb2RlZ2VuOjpsbHZtOjpzaW1kX2JpdG1hc2soc2VsZi4w KSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewot LSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAg ICAgICAgICAgICAgICNbY2ZnKG5vdCgKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBo dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIx MAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2VuZGlhbiA9ICJiaWciCi0tICAgICAgICAg ICAgICAgICkpXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9iaXRtYXNrPl0gewot LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBiaXRtYXNrKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGNsZWFyIGFsbCBsYW5lcwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KCRjbGVhciBhcyBfKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYml0bWFzazogJGliaXRtYXNrX3R5ID0gMDsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHZlYy5iaXRtYXNrKCksIGJpdG1hc2spOwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHNldCBldmVuIGxhbmVzCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ZWMgPSAkaWQ6OnNwbGF0KCRjbGVhciBhcyBfKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZlYyA9IHZlYy5yZXBsYWNlKGksICRzZXQgYXMgXyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gY3JlYXRlIGJpdG1hc2sgd2l0aCBldmVuIGxhbmVzIHNldDoKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiaXRtYXNrIHw9IDEgPDwgaTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHZlYy5iaXRtYXNrKCksIGJpdG1hc2spOwotLQotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHNldCBvZGQgbGFuZXMKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHZlYyA9ICRpZDo6c3BsYXQoJGNsZWFyIGFzIF8pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmVjID0gdmVjLnJlcGxhY2UoaSwgJHNldCBhcyBfKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBjcmVhdGUgYml0bWFzayB3aXRoIG9kZCBsYW5lcyBzZXQ6Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkgPSAwOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYml0bWFzayB8PSAxIDw8IGk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2ZWMuYml0bWFzaygpLCBiaXRtYXNrKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBzZXQgYWxsIGxhbmVzCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9ICRpZDo6c3BsYXQoJHNldCBhcyBfKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYml0bWFzayB8PSAxIDw8IGk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwgYml0bWFzayk7Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvbWFjcm9zLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv Y2FzdC9tYWNyb3MucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDgyICswLDAgQEAKLS0vLyEgTWFjcm9zIGltcGxlbWVudGluZyBgRnJvbUNhc3RgCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0XyB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRd OiAkZnJvbV90eTppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6YXBpOjpjYXN0OjpG cm9tQ2FzdDwkZnJvbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gZnJvbV9jYXN0KHg6ICRmcm9tX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2Nhc3Q7Ci0tICAgICAgICAgICAgICAgIGRlYnVn X2Fzc2VydF9lcSEoJGZyb21fdHk6OmxhbmVzKCksICRpZDo6bGFuZXMoKSk7Ci0tICAgICAgICAg ICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9jYXN0KHguMCkgfSkKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoK LS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9mcm9tX2Nhc3RfICRmcm9tX3R5Pl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHRlc3QoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRmcm9tX3R5Ojps YW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfZnJvbV9jYXN0IHsKLS0gICAgKCRpZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6 aWRlbnQpLCopID0+IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3Rf ISgkaWRbJHRlc3RfdHRdOiAkZnJvbV90eSk7Ci0tICAgICAgICApKgotLSAgICB9Ci0tfQotLQot LW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fY2FzdF9tYXNrXyB7Ci0tICAgICgkaWQ6aWRlbnRbJHRl c3RfdHQ6dHRdOiAkZnJvbV90eTppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6YXBp OjpjYXN0OjpGcm9tQ2FzdDwkZnJvbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gZnJvbV9jYXN0KHg6ICRmcm9tX3R5KSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgZGVidWdfYXNzZXJ0X2VxISgkZnJvbV90eTo6bGFuZXMoKSwgJGlkOjps YW5lcygpKTsKLS0gICAgICAgICAgICAgICAgeC5uZSgkZnJvbV90eTo6ZGVmYXVsdCgpKQotLSAg ICAgICAgICAgICAgICAgICAgLnNlbGVjdCgkaWQ6OnNwbGF0KHRydWUpLCAkaWQ6OnNwbGF0KGZh bHNlKSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsK LS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9tX2Nhc3RfICRmcm9tX3R5Pl0gewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgIGZuIHRlc3QoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgk aWQ6OmxhbmVzKCksICRmcm9tX3R5OjpsYW5lcygpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgeCA9ICRmcm9tX3R5OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG06ICRpZCA9IHguY2FzdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEobS5ub25lKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxl cyEgaW1wbF9mcm9tX2Nhc3RfbWFzayB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAk KCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGxf ZnJvbV9jYXN0X21hc2tfISgkaWRbJHRlc3RfdHRdOiAkZnJvbV90eSk7Ci0tICAgICAgICApKgot LSAgICB9Ci0tfQotLQotLSNbYWxsb3codW51c2VkKV0KLS1tYWNyb19ydWxlcyEgaW1wbF9pbnRv X2Nhc3QgewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVudCks KikgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsX2Zyb21fY2FzdF8hKCRmcm9t X3R5WyR0ZXN0X3R0XTogJGlkKTsKLS0gICAgICAgICkqCi0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxMjgucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxMjgucnMJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jYXN0L3YxMjgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDMwMiArMCwwIEBACi0tLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAg aW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAxMjgtYml0IHdpZGUgdmVjdG9ycwotLSNbcnVz dGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKGk4eDE2 W3Rlc3RfdjEyOF06IHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2 LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS1pbXBsX2Zyb21fY2FzdCEodTh4MTZbdGVzdF92 MTI4XTogaTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngx NiwgZjMyeDE2LCBtMzJ4MTYpOwotLWltcGxfZnJvbV9jYXN0X21hc2shKG04eDE2W3Rlc3RfdjEy OF06IGk4eDE2LCB1OHgxNiwgaTE2eDE2LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYs IGYzMngxNiwgbTMyeDE2KTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGkxNng4W3Rlc3Rf djEyOF06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04eDgsCi0tICAgIHUxNng4LAotLSAgICBt MTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgs Ci0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAg ICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21f Y2FzdCEoCi0tICAgIHUxNng4W3Rlc3RfdjEyOF06IGk4eDgsCi0tICAgIHU4eDgsCi0tICAgIG04 eDgsCi0tICAgIGkxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAot LSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAg ZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICB1c2l6ZXg4LAotLSAgICBt c2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTE2eDhbdGVzdF92MTI4 XTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4 LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0g ICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlz aXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLQotLWltcGxfZnJvbV9j YXN0ISgKLS0gICAgaTMyeDRbdGVzdF92MTI4XTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4 NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgdTMyeDQsCi0t ICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBm NjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4 eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQKLS0pOwotLWlt cGxfZnJvbV9jYXN0ISgKLS0gICAgdTMyeDRbdGVzdF92MTI4XTogaTh4NCwKLS0gICAgdTh4NCwK LS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAg aTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0 LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAot LSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1zaXpleDQK LS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgZjMyeDRbdGVzdF92MTI4XTogaTh4NCwKLS0g ICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4 NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0t ICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4NCwKLS0gICAg dTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQsCi0tICAgIHVzaXpleDQsCi0tICAg IG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtMzJ4NFt0ZXN0X3Yx MjhdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2 eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAot LSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAg aTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAg dXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBp NjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4 MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0t ICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBt NjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNp emV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3Qh KAotLSAgICB1NjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAot LSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAg dTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIGY2NHgy LAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwK LS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9m cm9tX2Nhc3QhKAotLSAgICBmNjR4Mlt0ZXN0X3YxMjhdOiBpOHgyLAotLSAgICB1OHgyLAotLSAg ICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4 MiwKLS0gICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0t ICAgIHU2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAg IG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7 Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG02NHgyW3Rlc3RfdjEyOF06IGk4eDIsCi0t ICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2 eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAot LSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDIsCi0tICAg IHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAg ICBtc2l6ZXgyCi0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGlzaXpleDJbdGVzdF92 MTI4XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUx NngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwK LS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAg IG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICB1 c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHVzaXpl eDJbdGVzdF92MTI4XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIs Ci0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAg ICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0 eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgy LAotLSAgICBpc2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNr ISgKLS0gICAgbXNpemV4Mlt0ZXN0X3YxMjhdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgy LAotLSAgICBpMTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0g ICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2 NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgy LAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIKLS0pOwotLQotLS8v IEZJWE1FW3Rlc3RfdjEyOF06IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3JzIGludG9fY2Fz dCBpbXBscwotLWltcGxfZnJvbV9jYXN0IShpMTI4eDFbdGVzdF92MTI4XTogdTEyOHgxLCBtMTI4 eDEpOwotLWltcGxfZnJvbV9jYXN0ISh1MTI4eDFbdGVzdF92MTI4XTogaTEyOHgxLCBtMTI4eDEp OwotLWltcGxfZnJvbV9jYXN0IShtMTI4eDFbdGVzdF92MTI4XTogaTEyOHgxLCB1MTI4eDEpOwot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Yx Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YxNi5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDY4ICswLDAgQEAKLS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9D YXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDE2LWJpdCB3aWRlIHZlY3RvcnMKLS0j W3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLWltcGxfZnJvbV9jYXN0ISgK LS0gICAgaTh4Mlt0ZXN0X3YxNl06IHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAg ICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAotLSAgICB1MzJ4MiwKLS0gICAgZjMy eDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAot LSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0g ICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9t X2Nhc3QhKAotLSAgICB1OHgyW3Rlc3RfdjE2XTogaTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2 eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAot LSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAg ZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEy OHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1p bXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbTh4Mlt0ZXN0X3YxNl06IGk4eDIsCi0tICAgIHU4 eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngyLAot LSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0gICAg dTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4 eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0gICAgdXNpemV4MiwKLS0gICAgbXNp emV4MgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2Nhc3QvdjI1Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j YXN0L3YyNTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j YXN0L3YyNTYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YyNTYucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI5OCArMCwwIEBACi0tLy8hIGBGcm9t Q2FzdGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAyNTYtYml0 IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0t aW1wbF9mcm9tX2Nhc3QhKGk4eDMyW3Rlc3RfdjI1Nl06IHU4eDMyLCBtOHgzMiwgaTE2eDMyLCB1 MTZ4MzIsIG0xNngzMik7Ci0taW1wbF9mcm9tX2Nhc3QhKHU4eDMyW3Rlc3RfdjI1Nl06IGk4eDMy LCBtOHgzMiwgaTE2eDMyLCB1MTZ4MzIsIG0xNngzMik7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEo bTh4MzJbdGVzdF92MjU2XTogaTh4MzIsIHU4eDMyLCBpMTZ4MzIsIHUxNngzMiwgbTE2eDMyKTsK LS0KLS1pbXBsX2Zyb21fY2FzdCEoaTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4 MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLWlt cGxfZnJvbV9jYXN0ISh1MTZ4MTZbdGVzdF92MjU2XTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2 eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9t X2Nhc3RfbWFzayEobTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngx NiwgdTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLQotLWltcGxfZnJv bV9jYXN0ISgKLS0gICAgaTMyeDhbdGVzdF92MjU2XTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAg bTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgdTMyeDgs Ci0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAg ICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAg IG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTMyeDhbdGVzdF92MjU2XTog aTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAot LSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAg aTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpl eDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgK LS0gICAgZjMyeDhbdGVzdF92MjU2XTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0g ICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUz Mng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwK LS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgK LS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtMzJ4OFt0ZXN0X3YyNTZdOiBpOHg4 LAotLSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAg IG0xNng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBpNjR4 OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaXNpemV4OCwK LS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAot LSAgICBpNjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAg ICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMy eDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAot LSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0g ICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9t X2Nhc3QhKAotLSAgICB1NjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBt OHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4NCwK LS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDQsCi0tICAg IGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0x Mjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0t aW1wbF9mcm9tX2Nhc3QhKAotLSAgICBmNjR4NFt0ZXN0X3YyNTZdOiBpOHg0LAotLSAgICB1OHg0 LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAg ICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0 eDQsCi0tICAgIHU2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQs Ci0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4 NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG02NHg0W3Rlc3RfdjI1Nl06IGk4 eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0g ICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0z Mng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBpMTI4eDQs Ci0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0 LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGkxMjh4Mlt0 ZXN0X3YyNTZdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0g ICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIGYz MngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwK LS0gICAgbTY0eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAot LSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAg IHUxMjh4Mlt0ZXN0X3YyNTZdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBp MTZ4MiwKLS0gICAgdTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIs Ci0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAg ICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBp c2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2Fz dF9tYXNrISgKLS0gICAgbTEyOHgyW3Rlc3RfdjI1Nl06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAg IG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2eDIsCi0tICAgIGkzMngy LAotLSAgICB1MzJ4MiwKLS0gICAgZjMyeDIsCi0tICAgIG0zMngyLAotLSAgICBpNjR4MiwKLS0g ICAgdTY0eDIsCi0tICAgIG02NHgyLAotLSAgICBmNjR4MiwKLS0gICAgaTEyOHgyLAotLSAgICB1 MTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwot LQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaXNpemV4NFt0ZXN0X3YyNTZdOiBpOHg0LAotLSAg ICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0 LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0g ICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkx Mjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIHVzaXpleDQsCi0tICAgIG1z aXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdXNpemV4NFt0ZXN0X3YyNTZdOiBp OHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0t ICAgIG0xNng0LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBt MzJ4NCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQs Ci0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQsCi0tICAgIGlzaXpleDQs Ci0tICAgIG1zaXpleDQKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtc2l6ZXg0 W3Rlc3RfdjI1Nl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAot LSAgICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAg ZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0 LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwK LS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NAotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjMyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MzIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j YXN0L3YzMi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTMy ICswLDAgQEAKLS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMg Zm9yIHBvcnRhYmxlIDMyLWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0t dXNlIGNyYXRlOjoqOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgaTh4NFt0ZXN0X3YzMl06 IHU4eDQsCi0tICAgIG04eDQsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgbTE2eDQs Ci0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAg ICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEy OHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNp emV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICB1OHg0W3Rl c3RfdjMyXTogaTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAg ICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMy eDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAot LSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAotLSAgICBpc2l6ZXg0LAot LSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdF9tYXNrISgK LS0gICAgbTh4NFt0ZXN0X3YzMl06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIGkxNng0LAotLSAg ICB1MTZ4NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMy eDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAot LSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0g ICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0tCi0taW1wbF9m cm9tX2Nhc3QhKAotLSAgICBpMTZ4Mlt0ZXN0X3YzMl06IGk4eDIsCi0tICAgIHU4eDIsCi0tICAg IG04eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngy LAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0g ICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAg bTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAgICBtc2l6ZXgyCi0tKTsK LS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHUxNngyW3Rlc3RfdjMyXTogaTh4MiwKLS0gICAgdTh4 MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0g ICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2 NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgy LAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpl eDIKLS0pOwotLWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtMTZ4Mlt0ZXN0X3YzMl06IGk4 eDIsCi0tICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0g ICAgaTMyeDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2 NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIs Ci0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgy LAotLSAgICBtc2l6ZXgyCi0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvY2FzdC92NTEyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Nhc3QvdjUxMi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2Nhc3QvdjUxMi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjUxMi5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjA5ICswLDAgQEAK LS0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRh YmxlIDUxMi1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBjcmF0 ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoaTh4NjRbdGVzdF92NTEyXTogdTh4NjQsIG04eDY0 KTsKLS1pbXBsX2Zyb21fY2FzdCEodTh4NjRbdGVzdF92NTEyXTogaTh4NjQsIG04eDY0KTsKLS1p bXBsX2Zyb21fY2FzdF9tYXNrIShtOHg2NFt0ZXN0X3Y1MTJdOiBpOHg2NCwgdTh4NjQpOwotLQot LWltcGxfZnJvbV9jYXN0IShpMTZ4MzJbdGVzdF92NTEyXTogaTh4MzIsIHU4eDMyLCBtOHgzMiwg dTE2eDMyLCBtMTZ4MzIpOwotLWltcGxfZnJvbV9jYXN0ISh1MTZ4MzJbdGVzdF92NTEyXTogaTh4 MzIsIHU4eDMyLCBtOHgzMiwgaTE2eDMyLCBtMTZ4MzIpOwotLWltcGxfZnJvbV9jYXN0X21hc2sh KG0xNngzMlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCBpMTZ4MzIsIHUxNngzMik7 Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKGkzMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04 eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKLS1p bXBsX2Zyb21fY2FzdCEodTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkx NngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOwotLWltcGxfZnJv bV9jYXN0IShmMzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1 MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIG0zMngxNik7Ci0taW1wbF9mcm9tX2Nhc3Rf bWFzayEobTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2 eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYpOwotLQotLWltcGxfZnJvbV9jYXN0 ISgKLS0gICAgaTY0eDhbdGVzdF92NTEyXTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwK LS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAg IHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4 OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpl eDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgdTY0eDhbdGVzdF92NTEyXTogaTh4OCwK LS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBt MTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgs Ci0tICAgIGk2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0t ICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAg ZjY0eDhbdGVzdF92NTEyXTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2 eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAot LSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAg bTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwot LWltcGxfZnJvbV9jYXN0X21hc2shKAotLSAgICBtNjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAotLSAg ICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4 LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0g ICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAg dXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBp MTI4eDRbdGVzdF92NTEyXTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwKLS0gICAgaTE2 eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAot LSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAg ZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNp emV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3Qh KAotLSAgICB1MTI4eDRbdGVzdF92NTEyXTogaTh4NCwKLS0gICAgdTh4NCwKLS0gICAgbTh4NCwK LS0gICAgaTE2eDQsCi0tICAgIHUxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAg IHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4 NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIG0xMjh4NCwK LS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9m cm9tX2Nhc3RfbWFzayEoCi0tICAgIG0xMjh4NFt0ZXN0X3Y1MTJdOiBpOHg0LAotLSAgICB1OHg0 LAotLSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAg ICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0 eDQsCi0tICAgIHU2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIGkxMjh4NCwK LS0gICAgdTEyOHg0LAotLSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0 Ci0tKTsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGlzaXpleDhbdGVzdF92NTEyXTogaTh4 OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAg ICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMy eDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAot LSAgICB1c2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAg IHVzaXpleDhbdGVzdF92NTEyXTogaTh4OCwKLS0gICAgdTh4OCwKLS0gICAgbTh4OCwKLS0gICAg aTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4 LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0g ICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpc2l6ZXg4LAotLSAgICBtc2l6ZXg4Ci0tKTsK LS1pbXBsX2Zyb21fY2FzdF9tYXNrISgKLS0gICAgbXNpemV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAot LSAgICB1OHg4LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0x Nng4LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwK LS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAg IGlzaXpleDgsCi0tICAgIHVzaXpleDgKLS0pOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjY0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92 NjQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIwOCArMCww IEBACi0tLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBw b3J0YWJsZSA2NC1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLXVzZSBj cmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIGk4eDhbdGVzdF92NjRdOiB1OHg4 LAotLSAgICBtOHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAg ICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0 eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgs Ci0tICAgIHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0g ICAgdTh4OFt0ZXN0X3Y2NF06IGk4eDgsCi0tICAgIG04eDgsCi0tICAgIGkxNng4LAotLSAgICB1 MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgs Ci0tICAgIG0zMng4LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAg ICBtNjR4OCwKLS0gICAgaXNpemV4OCwKLS0gICAgdXNpemV4OCwKLS0gICAgbXNpemV4OAotLSk7 Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0tICAgIG04eDhbdGVzdF92NjRdOiBpOHg4LAotLSAg ICB1OHg4LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4 OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDgsCi0t ICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGlzaXpleDgsCi0tICAg IHVzaXpleDgsCi0tICAgIG1zaXpleDgKLS0pOwotLQotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAg aTE2eDRbdGVzdF92NjRdOiBpOHg0LAotLSAgICB1OHg0LAotLSAgICBtOHg0LAotLSAgICB1MTZ4 NCwKLS0gICAgbTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0t ICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBt NjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NCwKLS0gICAgaXNp emV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAotLSk7Ci0taW1wbF9mcm9tX2Nhc3Qh KAotLSAgICB1MTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCi0tICAgIHU4eDQsCi0tICAgIG04eDQsCi0t ICAgIGkxNng0LAotLSAgICBtMTZ4NCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBm MzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQs Ci0tICAgIG02NHg0LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0LAot LSAgICBpc2l6ZXg0LAotLSAgICB1c2l6ZXg0LAotLSAgICBtc2l6ZXg0Ci0tKTsKLS1pbXBsX2Zy b21fY2FzdF9tYXNrISgKLS0gICAgbTE2eDRbdGVzdF92NjRdOiBpOHg0LAotLSAgICB1OHg0LAot LSAgICBtOHg0LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIGkzMng0LAotLSAgICB1 MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQs Ci0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0t ICAgIG0xMjh4NCwKLS0gICAgaXNpemV4NCwKLS0gICAgdXNpemV4NCwKLS0gICAgbXNpemV4NAot LSk7Ci0tCi0taW1wbF9mcm9tX2Nhc3QhKAotLSAgICBpMzJ4Mlt0ZXN0X3Y2NF06IGk4eDIsCi0t ICAgIHU4eDIsCi0tICAgIG04eDIsCi0tICAgIGkxNngyLAotLSAgICB1MTZ4MiwKLS0gICAgbTE2 eDIsCi0tICAgIHUzMngyLAotLSAgICBmMzJ4MiwKLS0gICAgbTMyeDIsCi0tICAgIGk2NHgyLAot LSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDIsCi0tICAg IHUxMjh4MiwKLS0gICAgbTEyOHgyLAotLSAgICBpc2l6ZXgyLAotLSAgICB1c2l6ZXgyLAotLSAg ICBtc2l6ZXgyCi0tKTsKLS1pbXBsX2Zyb21fY2FzdCEoCi0tICAgIHUzMngyW3Rlc3RfdjY0XTog aTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAgaTE2eDIsCi0tICAgIHUxNngyLAot LSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiwKLS0gICAg aTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgbTY0eDIsCi0tICAgIGkxMjh4 MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAgIGlzaXpleDIsCi0tICAgIHVzaXpl eDIsCi0tICAgIG1zaXpleDIKLS0pOwotLWltcGxfZnJvbV9jYXN0ISgKLS0gICAgZjMyeDJbdGVz dF92NjRdOiBpOHgyLAotLSAgICB1OHgyLAotLSAgICBtOHgyLAotLSAgICBpMTZ4MiwKLS0gICAg dTE2eDIsCi0tICAgIG0xNngyLAotLSAgICBpMzJ4MiwKLS0gICAgdTMyeDIsCi0tICAgIG0zMngy LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0g ICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiwKLS0gICAgaXNpemV4MiwKLS0g ICAgdXNpemV4MiwKLS0gICAgbXNpemV4MgotLSk7Ci0taW1wbF9mcm9tX2Nhc3RfbWFzayEoCi0t ICAgIG0zMngyW3Rlc3RfdjY0XTogaTh4MiwKLS0gICAgdTh4MiwKLS0gICAgbTh4MiwKLS0gICAg aTE2eDIsCi0tICAgIHUxNngyLAotLSAgICBtMTZ4MiwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngy LAotLSAgICBmMzJ4MiwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0g ICAgbTY0eDIsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIsCi0tICAg IGlzaXpleDIsCi0tICAgIHVzaXpleDIsCi0tICAgIG1zaXpleDIKLS0pOwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2Fz dC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTA4ICswLDAg QEAKLS0vLyEgSW1wbGVtZW50YXRpb24gb2YgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0YC4KLS0j IVthbGxvdyhjbGlwcHk6Om1vZHVsZV9uYW1lX3JlcGV0aXRpb25zKV0KLS0KLS0vLy8gTnVtZXJp YyBjYXN0IGZyb20gYFRgIHRvIGBTZWxmYC4KLS0vLy8KLS0vLy8gPiBOb3RlOiBUaGlzIGlzIGEg dGVtcG9yYXJ5IHdvcmthcm91bmQgdW50aWwgdGhlIGNvbnZlcnNpb24gdHJhaXRzCi0tLy8vIHNw ZWNpZmllZCA+IGluIFtSRkMyNDg0XSBhcmUgaW1wbGVtZW50ZWQuCi0tLy8vCi0tLy8vIE51bWVy aWMgY2FzdCBiZXR3ZWVuIHZlY3RvcnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMsIHN1 Y2ggdGhhdDoKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5l IHR5cGVzIGhhdmUgdGhlIHNhbWUgc2l6ZSAoZS5nLiBgaTMyeE5gCi0tLy8vIC0+IGB1MzJ4TmAp IGlzIGEgKipuby1vcCoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBpbnRl Z2VyIHRvIGEgc21hbGxlciBpbnRlZ2VyIChlLmcuIGB1MzJ4TmAgLT4KLS0vLy8gYHU4eE5gKSB3 aWxsICoqdHJ1bmNhdGUqKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5nIGZyb20gYSBzbWFsbGVyIGlu dGVnZXIgdG8gYSBsYXJnZXIgaW50ZWdlciAgIChlLmcuIGB1OHhOYCAtPgotLS8vLyAgIGB1MzJ4 TmApIHdpbGw6Ci0tLy8vICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgdW5z aWduZWQsIG9yCi0tLy8vICAgICogKipzaWduLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgc2ln bmVkLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGZsb2F0IHRvIGFuIGludGVnZXIgd2ls bCAqKnJvdW5kIHRoZSBmbG9hdCB0b3dhcmRzIHplcm8qKiwKLS0vLy8KLS0vLy8gKiBjYXN0aW5n IGZyb20gYW4gaW50ZWdlciB0byBmbG9hdCB3aWxsIHByb2R1Y2UgdGhlIGZsb2F0aW5nIHBvaW50 Ci0tLy8vIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJl c3QsIHRpZXMgdG8gZXZlbioqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0 byBhbiBgZjY0YCBpcyBwZXJmZWN0IGFuZCBsb3NzbGVzcywKLS0vLy8KLS0vLy8gKiBjYXN0aW5n IGZyb20gYW4gYGY2NGAgdG8gYW4gYGYzMmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBl dmVuKiouCi0tLy8vCi0tLy8vIFtSRkMyNDg0XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9yZmNzL3B1bGwvMjQ4NAotLXB1YiB0cmFpdCBGcm9tQ2FzdDxUPjogY3JhdGU6Om1hcmtlcjo6 U2l6ZWQgewotLSAgICAvLy8gTnVtZXJpYyBjYXN0IGZyb20gYFRgIHRvIGBTZWxmYC4KLS0gICAg Zm4gZnJvbV9jYXN0KF86IFQpIC0+IFNlbGY7Ci0tfQotLQotLS8vLyBOdW1lcmljIGNhc3QgZnJv bSBgU2VsZmAgdG8gYFRgLgotLS8vLwotLS8vLyA+IE5vdGU6IFRoaXMgaXMgYSB0ZW1wb3Jhcnkg d29ya2Fyb3VuZCB1bnRpbCB0aGUgY29udmVyc2lvbiB0cmFpdHMKLS0vLy8gc3BlY2lmaWVkID4g aW4gW1JGQzI0ODRdIGFyZSBpbXBsZW1lbnRlZC4KLS0vLy8KLS0vLy8gTnVtZXJpYyBjYXN0IGJl dHdlZW4gdmVjdG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcywgc3VjaCB0aGF0Ogot LS8vLwotLS8vLyAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMgaGF2 ZSB0aGUgc2FtZSBzaXplIChlLmcuIGBpMzJ4TmAKLS0vLy8gLT4gYHUzMnhOYCkgaXMgYSAqKm5v LW9wKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVnZXIgdG8gYSBz bWFsbGVyIGludGVnZXIgKGUuZy4gYHUzMnhOYCAtPgotLS8vLyBgdTh4TmApIHdpbGwgKip0cnVu Y2F0ZSoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhIHNtYWxsZXIgaW50ZWdlciB0byBh IGxhcmdlciBpbnRlZ2VyICAgKGUuZy4gYHU4eE5gIC0+Ci0tLy8vICAgYHUzMnhOYCkgd2lsbDoK LS0vLy8gICAgKiAqKnplcm8tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyB1bnNpZ25lZCwgb3IK LS0vLy8gICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYgdGhlIHNvdXJjZSBpcyBzaWduZWQsCi0tLy8v Ci0tLy8vICogY2FzdGluZyBmcm9tIGEgZmxvYXQgdG8gYW4gaW50ZWdlciB3aWxsICoqcm91bmQg dGhlIGZsb2F0IHRvd2FyZHMgemVybyoqLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBp bnRlZ2VyIHRvIGZsb2F0IHdpbGwgcHJvZHVjZSB0aGUgZmxvYXRpbmcgcG9pbnQKLS0vLy8gcmVw cmVzZW50YXRpb24gb2YgdGhlIGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwgdGllcyB0 byBldmVuKiosCi0tLy8vCi0tLy8vICogY2FzdGluZyBmcm9tIGFuIGBmMzJgIHRvIGFuIGBmNjRg IGlzIHBlcmZlY3QgYW5kIGxvc3NsZXNzLAotLS8vLwotLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBg ZjY0YCB0byBhbiBgZjMyYCAqKnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KLS0v Ly8KLS0vLy8gW1JGQzI0ODRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JmY3MvcHVs bC8yNDg0Ci0tcHViIHRyYWl0IENhc3Q8VD46IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKLS0gICAg Ly8vIE51bWVyaWMgY2FzdCBmcm9tIGBzZWxmYCB0byBgVGAuCi0tICAgIGZuIGNhc3Qoc2VsZikg LT4gVDsKLS19Ci0tCi0tLy8vIGBGcm9tQ2FzdGAgaW1wbGllcyBgQ2FzdGAuCi0taW1wbDxULCBV PiBDYXN0PFU+IGZvciBUCi0td2hlcmUKLS0gICAgVTogRnJvbUNhc3Q8VD4sCi0tewotLSAgICAj W2lubGluZV0KLS0gICAgZm4gY2FzdChzZWxmKSAtPiBVIHsKLS0gICAgICAgIFU6OmZyb21fY2Fz dChzZWxmKQotLSAgICB9Ci0tfQotLQotLS8vLyBgRnJvbUNhc3RgIGFuZCBgQ2FzdGAgYXJlIHJl ZmxleGl2ZQotLWltcGw8VD4gRnJvbUNhc3Q8VD4gZm9yIFQgewotLSAgICAjW2lubGluZV0KLS0g ICAgZm4gZnJvbV9jYXN0KHQ6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgdAotLSAgICB9Ci0t fQotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBtYWNyb3M7Ci0tCi0tbW9kIHYxNjsKLS1wdWIgdXNl IHNlbGY6OnYxNjo6KjsKLS0KLS1tb2QgdjMyOwotLXB1YiB1c2Ugc2VsZjo6djMyOjoqOwotLQot LW1vZCB2NjQ7Ci0tcHViIHVzZSBzZWxmOjp2NjQ6Oio7Ci0tCi0tbW9kIHYxMjg7Ci0tcHViIHVz ZSBzZWxmOjp2MTI4OjoqOwotLQotLW1vZCB2MjU2OwotLXB1YiB1c2Ugc2VsZjo6djI1Njo6KjsK LS0KLS1tb2QgdjUxMjsKLS1wdWIgdXNlIHNlbGY6OnY1MTI6Oio7Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9lcS5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvZXEucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvZXEucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j bXAvZXEucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDI3ICsw LDAgQEAKLS0vLyEgSW1wbGVtZW50cyBgRXFgIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9f cnVsZXMhIGltcGxfY21wX2VxIHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0g ICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBp bXBsIGNyYXRlOjpjbXA6OkVxIGZvciAkaWQge30KLS0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6 RXEgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHt9Ci0tCi0tICAgICAgICB0ZXN0 X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEg ewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfZXE+XSB7Ci0tICAgICAgICAg ICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gZXEoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm4gZm9vPEU6IGNyYXRlOjpjbXA6 OkVxPihfOiBFKSB7fQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxh dCgkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvbyhhKTsKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL2NtcC9vcmQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvY21wL29yZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2NtcC9vcmQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0MyArMCwwIEBACi0tLy8hIEltcGxlbWVu dHMgYE9yZGAgZm9yIHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9jbXBfb3Jk IHsKLS0gICAgKAotLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToK LS0gICAgICAgICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKLS0gICAgICAgICgkdHJ1ZTpleHBy LCAkZmFsc2U6ZXhwcikKLS0gICAgKSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAg ICAgICAgLy8vIFJldHVybnMgYSB3cmFwcGVyIHRoYXQgaW1wbGVtZW50cyBgT3JkYC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbGV4X29yZCgmc2VsZikgLT4g TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4gewotLSAgICAgICAgICAgICAgICBMZXhpY29n cmFwaGljYWxseU9yZGVyZWQoKnNlbGYpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgaW1wbCBjcmF0ZTo6Y21wOjpPcmQgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZDwkaWQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjbXAoJnNl bGYsIG90aGVyOiAmU2VsZikgLT4gY3JhdGU6OmNtcDo6T3JkZXJpbmcgewotLSAgICAgICAgICAg ICAgICBtYXRjaCBzZWxmLnBhcnRpYWxfY21wKG90aGVyKSB7Ci0tICAgICAgICAgICAgICAgICAg ICBTb21lKHgpID0+IHgsCi0tICAgICAgICAgICAgICAgICAgICBOb25lID0+IHVuc2FmZSB7IGNy YXRlOjpoaW50Ojp1bnJlYWNoYWJsZV91bmNoZWNrZWQoKSB9LAotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX29yZD5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBlcSgpIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICBmbiBmb288RTogY3JhdGU6OmNtcDo6T3JkPihfOiBF KSB7fQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgkZmFsc2Up OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvbyhhLnBhcnRpYWxfbGV4X29yZCgpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBmb28oYS5sZXhfb3JkKCkpOwotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY21wL3BhcnRpYWxfZXEucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvY21wL3BhcnRpYWxfZXEucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9jbXAvcGFydGlhbF9lcS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9w YXJ0aWFsX2VxLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw2 NSArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgYFBhcnRpYWxFcWAgZm9yIHZlY3RvciB0eXBlcy4K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9jbXBfcGFydGlhbF9lcSB7Ci0tICAgICgKLS0gICAgICAg IFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCB8Ci0tICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCi0tICAg ICkgPT4gewotLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmct bnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMvMjg5MgotLSAgICAgICAgI1thbGxvdyhjbGlwcHk6 OnBhcnRpYWxlcV9uZV9pbXBsKV0KLS0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6UGFydGlhbEVx PCRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g ZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6 ZXEoKnNlbGYsICpvdGhlcikuYWxsKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7 Ci0tICAgICAgICAgICAgICAgICRpZDo6bmUoKnNlbGYsICpvdGhlcikuYW55KCkKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3J1c3QtY2xpcHB5L2lzc3Vlcy8yODkyCi0tICAgICAgICAj W2FsbG93KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQotLSAgICAgICAgaW1wbCBjcmF0ZTo6 Y21wOjpQYXJ0aWFsRXE8TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4+IGZvciBMZXhpY29n cmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAg ICAgIHNlbGYuMCA9PSBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewot LSAgICAgICAgICAgICAgICBzZWxmLjAgIT0gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9jbXBfUGFydGlhbEVxPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwot LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBw YXJ0aWFsX2VxKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxh dCgkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCgk dHJ1ZSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhICE9IGIpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhID09IGIpKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISghKGEgIT0gYSkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFu ZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3Bs YXQoJGZhbHNlKS5yZXBsYWNlKDAsICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShhICE9IGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKCEoYSA9PSBiKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSA9 PSBhKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0 aWFsX29yZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFy dGlhbF9vcmQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9j bXAvcGFydGlhbF9vcmQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvcGFydGlhbF9vcmQu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIzMCArMCwwIEBA Ci0tLy8hIEltcGxlbWVudHMgYFBhcnRpYWxPcmRgIGZvciB2ZWN0b3IgdHlwZXMuCi0tLy8hCi0t Ly8hIFRoaXMgaW1wbGVtZW50cyBhIGxleGljb2dyYXBoaWNhbCBvcmRlci4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9jbXBfcGFydGlhbF9vcmQgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxl bV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGlt cGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIHdyYXBwZXIgdGhhdCBpbXBsZW1l bnRzIGBQYXJ0aWFsT3JkYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgZm4gcGFydGlhbF9sZXhfb3JkKCZzZWxmKSAtPiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8 JGlkPiB7Ci0tICAgICAgICAgICAgICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZCgqc2VsZikK LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpjbXA6 OlBhcnRpYWxPcmQ8TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4+IGZvciBMZXhpY29ncmFw aGljYWxseU9yZGVyZWQ8JGlkPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gcGFydGlhbF9jbXAoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gT3B0aW9uPGNyYXRlOjpj bXA6Ok9yZGVyaW5nPiB7Ci0tICAgICAgICAgICAgICAgIGlmIFBhcnRpYWxFcTo6ZXEoc2VsZiwg b3RoZXIpIHsKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6 OkVxdWFsKQotLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgUGFydGlhbE9yZDo6bHQoc2VsZiwg b3RoZXIpIHsKLS0gICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6 Okxlc3MpCi0tICAgICAgICAgICAgICAgIH0gZWxzZSBpZiBQYXJ0aWFsT3JkOjpndChzZWxmLCBv dGhlcikgewotLSAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6 R3JlYXRlcikKLS0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAg IE5vbmUKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBsdCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29s IHsKLS0gICAgICAgICAgICAgICAgbGV0IG1fbHQgPSBzZWxmLjAubHQob3RoZXIuMCk7Ci0tICAg ICAgICAgICAgICAgIGxldCBtX2VxID0gc2VsZi4wLmVxKG90aGVyLjApOwotLSAgICAgICAgICAg ICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgaWYg bV9lcS5leHRyYWN0KGkpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiBtX2x0LmV4 dHJhY3QoaSk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgZmFsc2UKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbGUo JnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYubHQo b3RoZXIpIHwgUGFydGlhbEVxOjplcShzZWxmLCBvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZ2UoJnNlbGYsIG90aGVyOiAmU2Vs ZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuZ3Qob3RoZXIpIHwgUGFydGlhbEVx OjplcShzZWxmLCBvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gZ3QoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAg ICAgICAgICAgICAgIGxldCBtX2d0ID0gc2VsZi4wLmd0KG90aGVyLjApOwotLSAgICAgICAgICAg ICAgICBsZXQgbV9lcSA9IHNlbGYuMC5lcShvdGhlci4wKTsKLS0gICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIG1fZXEuZXh0 cmFjdChpKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0tICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICByZXR1cm4gbV9ndC5leHRyYWN0KGkp OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIGZhbHNlCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9jbXBf cGFydGlhbF9vcmRfaW50IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0g ICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9jbXBfUGFydGlhbE9yZD5dIHsKLS0gICAgICAgICAg ICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biBwYXJ0aWFsX2xleF9vcmQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl Ojp0ZXN0aW5nOjp1dGlsczo6e3Rlc3RfY21wfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBjb25zdGFudCB2YWx1ZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6 c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KDEp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3Jk KCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRl cmluZzo6R3JlYXRlcikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFy dGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRp YWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdmFyaWFibGUgdmFsdWVzOiBhID0gWzAsIDEsIDIsIDNdOyBiID0gWzMsIDIsIDEsIDBdCi0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCgwKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSAkaWQ6OnNwbGF0KDApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgaSBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoaSwgKCRpZDo6bGFuZXMoKSAtIGkp IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9v cmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6 Ok9yZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5w YXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5w YXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6 RXF1YWwpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6 IGEgPSBbMCwgMSwgMiwgM107IGIgPSBbMCwgMSwgMiwgNF0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGIgPSBhOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxh Y2UoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6bGFuZXMoKSAtIDEsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGEuZXh0cmFjdCgkaWQ6OmxhbmVzKCkgLSAxKSArIDEg YXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3Jk KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpP cmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFy dGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFy dGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShj cmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVx dWFsKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMiB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlcyBhID0gWzAs IDEsIDAsIDBdOyBiID0gWzAsIDEsIDIsIDNdCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBiID0gYTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlk OjpzcGxhdCgwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgx LCAxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAo YS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29y ZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlh bF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo Y3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3Jk ZXJpbmc6OkVxdWFsKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlh YmxlIHZhbHVlczogYSA9IFswLCAxLCAyLCAzXTsgYiA9IFswLCAxLCAzLCAyXQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSBhOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiID0gYi5yZXBsYWNlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MiwgYS5leHRyYWN0KCRpZDo6bGFuZXMoKSAtIDEpICsgMSBhcyAkZWxlbV90eQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpM ZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9s ZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5w YXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQo KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21w OjpPcmRlcmluZzo6RXF1YWwpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISB0ZXN0X2NtcF9wYXJ0aWFsX29y ZF9tYXNrIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAg ICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9jbXBfUGFydGlhbE9yZD5dIHsKLS0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBwYXJ0aWFs X2xleF9vcmQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjp0ZXN0aW5n Ojp1dGlsczo6e3Rlc3RfY21wfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 OmNtcDo6T3JkZXJpbmc7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3RhbnQg dmFsdWVzCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwg Yi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKE9yZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAo Yi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xl eF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5n OjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9s ZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA9 IFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYiA9IFtmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlXQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBiID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YiA9IGIucmVwbGFjZSgkaWQ6OmxhbmVzKCkgLSAxLCB0cnVlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3Mp KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgp LCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFs X2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVy aW5nOjpFcXVhbCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZh bHVlczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhID0gW3RydWUsIHRydWUsIHRydWUs IGZhbHNlXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBiID0gW3RydWUsIHRydWUsIHRy dWUsIHRydWVdCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxh dCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQodHJ1 ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZSgkaWQ6OmxhbmVzKCkg LSAxLCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFs X2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpMZXNzKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwg YS5wYXJ0aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKE9yZGVyaW5nOjpFcXVhbCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21w KGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAyIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGEgPSBbZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV07Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGIgPSBbZmFsc2UsIHRydWUsIHRydWUsIHRydWVdCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKDEsIHRydWUpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKDAsIGZhbHNlKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0 aWFsX2xleF9vcmQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29t ZShPcmRlcmluZzo6TGVzcykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Nt cChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpHcmVhdGVyKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCksIGEu cGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRp Y2FsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0aWNh bC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0 aWNhbC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC92ZXJ0aWNhbC5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTE0ICswLDAgQEAKLS0vLyEgVmVydGlj YWwgKGxhbmUtd2lzZSkgdmVjdG9yIGNvbXBhcmlzb25zIHJldHVybmluZyB2ZWN0b3IgbWFza3Mu Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfY21wX3ZlcnRpY2FsIHsKLS0gICAgKAotLSAgICAgICAg WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKLS0gICAgICAgICRpZDppZGVudCwK LS0gICAgICAgICRtYXNrX3R5OmlkZW50LAotLSAgICAgICAgJGlzX21hc2s6ZXhwciwoJHRydWU6 ZXhwciwgJGZhbHNlOmV4cHIpIHwgJHRlc3RfdHQ6dHQKLS0gICAgKSA9PiB7Ci0tICAgICAgICBp bXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBlcXVhbGl0eSBjb21wYXJpc29u LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBlcShzZWxmLCBv dGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OnNpbWRfZXE7Ci0tICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9lcShzZWxm LjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBMYW5l LXdpc2UgaW5lcXVhbGl0eSBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBuZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfbmU7Ci0tICAgICAgICAgICAgICAg IFNpbWQodW5zYWZlIHsgc2ltZF9uZShzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgbGVzcy10aGFuIGNvbXBhcmlzb24uCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGx0KHNlbGYsIG90aGVy OiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6 e3NpbWRfZ3QsIHNpbWRfbHR9OwotLSAgICAgICAgICAgICAgICBpZiAkaXNfbWFzayB7Ci0tICAg ICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZ3Qoc2VsZi4wLCBvdGhlci4wKSB9 KQotLSAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1 bnNhZmUgeyBzaW1kX2x0KHNlbGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbi1v ci1lcXVhbHMgY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gbGUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjp7c2ltZF9nZSwgc2ltZF9sZX07Ci0tICAgICAgICAgICAg ICAgIGlmICRpc19tYXNrIHsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2lt ZF9nZShzZWxmLjAsIG90aGVyLjApIH0pCi0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfbGUoc2VsZi4wLCBvdGhlci4wKSB9 KQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBMYW5lLXdpc2UgZ3JlYXRlci10aGFuIGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgcHViIGZuIGd0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190 eSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRfZ3QsIHNpbWRfbHR9 OwotLSAgICAgICAgICAgICAgICBpZiAkaXNfbWFzayB7Ci0tICAgICAgICAgICAgICAgICAgICBT aW1kKHVuc2FmZSB7IHNpbWRfbHQoc2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAgICAgICAg ICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2d0KHNl bGYuMCwgb3RoZXIuMCkgfSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGdyZWF0ZXItdGhhbi1vci1lcXVhbHMgY29tcGFy aXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZ2Uoc2Vs Ziwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpsbHZtOjp7c2ltZF9nZSwgc2ltZF9sZX07Ci0tICAgICAgICAgICAgICAgIGlmICRpc19tYXNr IHsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9sZShzZWxmLjAsIG90 aGVyLjApIH0pCi0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAg ICBTaW1kKHVuc2FmZSB7IHNpbWRfZ2Uoc2VsZi4wLCBvdGhlci4wKSB9KQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiF7Ci0t ICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX3ZlcnRpY2FsPl0gewotLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IGNtcCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoJGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoJHRydWUp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5sdChiKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxhdCh0cnVlKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHIgPSBhLmxlKGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9 PSBlKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRtYXNrX3R5OjpzcGxh dChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmd0KGIpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgciA9IGEuZ2UoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShyID09IGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5lcShiKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBhID0gYTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGIgPSBiOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IGU7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKGksICR0cnVlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgdHJ1ZSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhID0gYS5yZXBsYWNlKGksICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGIgPSBiLnJlcGxhY2UoaSwgJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGUgPSBlLnJlcGxhY2UoaSwgZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCByID0gYS5sdChiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIg PT0gZSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvY21wLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvY21wLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNiArMCwwIEBACi0tLy8hIEltcGxl bWVudCBjbXAgdHJhaXRzIGZvciB2ZWN0b3IgdHlwZXMKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2Qg cGFydGlhbF9lcTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZXE7Ci0tCi0tI1ttYWNyb191c2Vd Ci0tbW9kIHBhcnRpYWxfb3JkOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBvcmQ7Ci0tCi0tI1tt YWNyb191c2VdCi0tbW9kIHZlcnRpY2FsOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2RlZmF1bHQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9kZWZhdWx0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZGVmYXVsdC5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzAgKzAsMCBAQAotLS8v ISBJbXBsZW1lbnRzIGBEZWZhdWx0YCBmb3IgdmVjdG9yIHR5cGVzLgotLQotLW1hY3JvX3J1bGVz ISBpbXBsX2RlZmF1bHQgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgRGVmYXVsdCBm b3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBkZWZhdWx0 KCkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNlbGY6OnNwbGF0KCRlbGVtX3R5OjpkZWZh dWx0KCkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7 Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0g ICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1h bnRpc3NhXjEgcmFuZ2UuCi0tICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9j bXApXQotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9kZWZhdWx0Pl0gewotLSAgICAg ICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIGRlZmF1bHQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6 OmRlZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGEuZXh0cmFj dChpKSwgJGVsZW1fdHk6OmRlZmF1bHQoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFyeS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mbXQvYmluYXJ5LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvZm10L2JpbmFyeS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zt dC9iaW5hcnkucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU0 ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50IE9jdGFsIGZvcm1hdHRpbmcKLS0KLS1tYWNyb19ydWxl cyEgaW1wbF9mbXRfYmluYXJ5IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6 ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRl OjpmbXQ6OkJpbmFyeSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlz c2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KLS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYs IGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0 IHsKLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsK LS0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAg ICAgICAgICAgaWYgaSA+IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIShmLCAi LCAiKT87Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBzZWxm LmV4dHJhY3QoaSkuZm10KGYpPzsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICB3cml0ZSEoZiwgIikiKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRl c3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRl bSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfYmluYXJ5Pl0gewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBiaW5hcnkoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OwotLSAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsgNTEy XT47Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRlOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6ZGVm YXVsdCgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5n OjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezojYn0i LCB2KS51bndyYXAoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJlZyA9 IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0 IGJlZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCIpIiwgIiIpLnNwbGl0KCIsIikKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0o KSkudW53cmFwKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVzKCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9faXRl cigpLmVudW1lcmF0ZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBl ID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRl ISgmbXV0IGUsICJ7OiNifSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvZGVidWcucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2RlYnVnLnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2RlYnVnLnJzCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvZm10L2RlYnVnLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw2MCArMCwwIEBACi0tLy8hIEltcGxlbWVudCBkZWJ1ZyBmb3JtYXR0aW5nCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfZm10X2RlYnVnX3Rlc3RzIHsKLS0gICAgKFskZWxlbV90eTp0eTsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICB0 ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0 ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZm10X2RlYnVnPl0gewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBkZWJ1ZygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJd PjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OmRlZmF1bHQoKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezo/fSIsIHYpLnVud3JhcCgpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3KCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3RyaW5n aWZ5ISgkaWQpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMu c3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczog QXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg PSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLnJlcGxhY2UoIikiLCAiIikuc3BsaXQoIiwiKQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpuZXco KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6P30iLCB2 LmV4dHJhY3QoaW5kZXgpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShzcywgZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mbXRfZGVidWcgewotLSAg ICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6RGVidWcgZm9yICRpZCB7Ci0tICAg ICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyld Ci0tICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRl cjwnXz4pIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShm LCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKT87Ci0tICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgIGlmIGkgPiAwIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIiwgIik/OwotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYWN0KGkpLmZtdChmKT87Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICIpIikKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsX2ZtdF9kZWJ1Z190ZXN0cyEoWyRlbGVtX3R5 OyAkZWxlbV9jb3VudF06ICRpZCB8ICR0ZXN0X3R0KTsKLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9sb3dlcl9oZXgu cnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw1NCArMCwwIEBACi0tLy8hIEltcGxlbWVudCBg TG93ZXJIZXhgIGZvcm1hdHRpbmcKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mbXRfbG93ZXJfaGV4 IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8 ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6Okxvd2VySGV4IGZv ciAkaWQgewotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9w dWJsaWNfaXRlbXMpXQotLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6 Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAgICAg ICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAgICAgICAgICAgICAg ICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBpID4g MCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQo Zik/OwotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAg ICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAg ICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9sb3dlcl9oZXg+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIGxvd2VyX2hleCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiN4fSIsIHYpLnVud3Jh cCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmlu Zzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30o Iiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikucmVwbGFjZSgiKSIsICIiKQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoIiwiKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAo KSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVy YXRlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3Ry aW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwg Ins6I3h9Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShzcywgZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvZm10L29jdGFsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ZtdC9vY3RhbC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2ZtdC9vY3RhbC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9vY3Rh bC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNTQgKzAsMCBA QAotLS8vISBJbXBsZW1lbnQgT2N0YWwgZm9ybWF0dGluZwotLQotLW1hY3JvX3J1bGVzISBpbXBs X2ZtdF9vY3RhbCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6Zm10OjpP Y3RhbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxp bmVfaW5fcHVibGljX2l0ZW1zKV0KLS0gICAgICAgICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQg Y3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0IHsKLS0gICAg ICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsKLS0gICAgICAg ICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAg aWYgaSA+IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiLCAiKT87Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhY3Qo aSkuZm10KGYpPzsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB3cml0ZSEo ZiwgIikiKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIHRlc3RfaWYhIHsK LS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfb2N0YWw+XSB7Ci0tICAgICAgICAgICAg ICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIG9jdGFsX2hleCgpIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiNvfSIsIHYpLnVu d3JhcCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0 cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAi e30oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikucmVwbGFjZSgiKSIsICIi KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoIiwiKQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndy YXAoKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51 bWVyYXRlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55 U3RyaW5nOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQg ZSwgIns6I299Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVyX2hleC5ycwotLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC91cHBlcl9oZXgucnMJMjAyNS0wNC0yMCAx OToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSw1NCArMCwwIEBACi0tLy8hIEltcGxlbWVudCBgVXBwZXJIZXhgIGZvcm1h dHRpbmcKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9mbXRfdXBwZXJfaGV4IHsKLS0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6OlVwcGVySGV4IGZvciAkaWQgewotLSAgICAg ICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQot LSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8 J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgewotLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwg Int9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OwotLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4k ZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OwotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0ZXN0X3R0 OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2ZtdF91cHBlcl9oZXg+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IGZuIHVwcGVyX2hleCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgYXJyYXl2ZWM6 OntBcnJheVN0cmluZyxBcnJheVZlY307Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBU aW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiNYfSIsIHYpLnVud3JhcCgpOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3KCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3RyaW5naWZ5ISgk aWQpKS51bndyYXAoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuc3RhcnRz X3dpdGgoYmVnLmFzX3N0cigpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShz LmVuZHNfd2l0aCgiKSIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlW ZWM8W1RpbnlTdHJpbmc7IDY0XT4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJl cGxhY2UoYmVnLmFzX3N0cigpLCAiIikucmVwbGFjZSgiKSIsICIiKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAuc3BsaXQoIiwiKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAu bWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpuZXcoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6I1h9Iiwgdi5leHRy YWN0KGluZGV4KSkudW53cmFwKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoc3MsIGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ZtdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9mbXQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDEyICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBmb3JtYXR0aW5nIEFQSXMK LS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgZGVidWc7Ci0tI1ttYWNyb191c2VdCi0tbW9kIGxvd2Vy X2hleDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgdXBwZXJfaGV4OwotLSNbbWFjcm9fdXNlXQotLW1v ZCBvY3RhbDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgYmluYXJ5OwotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJzCi0tLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX2FycmF5LnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxMjQgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRz IGBGcm9tPFtUOyBOXT5gIGFuZCBgSW50bzxbVDsgTl0+YCBmb3IgdmVjdG9yIHR5cGVzLgotLQot LW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fYXJyYXkgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAk ZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQKLS0gICAgIHwgKCRub25f ZGVmYXVsdF9hcnJheTpleHByLCAkbm9uX2RlZmF1bHRfdmVjOmV4cHIpKSA9PiB7Ci0tICAgICAg ICBpbXBsIEZyb208WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+IGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGZyb20oYXJyYXk6IFskZWxlbV90eTsgJGVs ZW1fY291bnRdKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAg ICAgICAgICAgICAgICBhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCi0tICAgICAgICAg ICAgICAgICAgICB2ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICB1bnNhZmUgeyBVIHsgYXJyYXkgfS52ZWMgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGwgRnJvbTwkaWQ+IGZvciBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZnJvbSh2ZWM6ICRpZCkg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAg ICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAotLSAgICAgICAgICAgICAgICAgICAg dmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsg VSB7IHZlYyB9LmFycmF5IH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICAvLyBGSVhNRTogYEludG86OmludG9gIGlzIG5vdCBpbmxpbmUsIGJ1dCBkdWUgdG8KLS0gICAg ICAgIC8vIHRoZSBibGFua2V0IGltcGwgaW4gYHN0ZGAsIHdoaWNoIGlzIG5vdAotLSAgICAgICAg Ly8gbWFya2VkIGBkZWZhdWx0YCwgd2UgY2Fubm90IG92ZXJyaWRlIGl0IGhlcmUgd2l0aAotLSAg ICAgICAgLy8gc3BlY2lhbGl6YXRpb24uCi0tICAgICAgICAvKgotLSAgICAgICAgaW1wbCBJbnRv PFskZWxlbV90eTsgJGVsZW1fY291bnRdPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBpbnRvKHNlbGYpIC0+IFskZWxlbV90eTsgJGVsZW1fY291bnRd IHsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICBhcnJh eTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0sCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6ICRp ZCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsgdmVj OiBzZWxmIH0uYXJyYXkgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IGltcGwgSW50bzwkaWQ+IGZvciBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gaW50byhzZWxmKSAtPiAkaWQgewotLSAgICAg ICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1f dHk7ICRlbGVtX2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyBhcnJheTogc2VsZiB9 LnZlYyB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgKi8KLS0KLS0gICAg ICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBj YXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAgICAgICAgICAgIG1vZCBbPCRpZCBfZnJvbT5dIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAg ICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobWlyaSwgaWdub3JlKV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIGFycmF5KCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ZWM6ICRpZCA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBGSVhNRTogV29ya2Fyb3VuZCBmb3IgYXJyYXlzIHdpdGggbW9yZSB0aGFu IDMyCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMuCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZlIGJlY2F1c2Ug d2UgbmV2ZXIgdGFrZSBhIHJlZmVyZW5jZSB0byBhbnkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyB1bmluaXRpYWxpemVkIGVsZW1lbnQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5p b24gVyB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRl bGVtX2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXI6ICgpCi0tICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg YXJyYXkgPSBXIHsgb3RoZXI6ICgpIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVm YXVsdDogJGVsZW1fdHkgPSBEZWZhdWx0OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG5vdGU6IGFycmF5Lm90aGVyIGlzIHRoZSBhY3RpdmUgbWVtYmVyIGFuZAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCBzbyB3ZSBjYW4gdGFr ZSBhIHJlZmVyZW5jZSB0byBpdDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHAg PSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm11dCBhcnJheS5v dGhlciBhcyAqbXV0ICgpIGFzICptdXQgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZTogZGVmYXVsdCBp cyBhIHZhbGlkIGJpdC1wYXR0ZXJuIGZvcgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyAkZWxlbV90eToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OndyaXRlKHAud3JhcHBpbmdf YWRkKGkpLCBkZWZhdWx0KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiB0 aGUgYXJyYXkgdmFyaWFudCBvZiB0aGUgdW5pb24gaXMgcHJvcGVybHkKLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBpbml0aWFsaXplZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IGFycmF5ID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXku YXJyYXkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFycmF5WzBdID0gJG5vbl9kZWZhdWx0X2FycmF5OwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ZWMgPSB2ZWMucmVwbGFjZSgwLCAkbm9uX2RlZmF1bHRfdmVjKTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjX2Zyb21fYXJyYXkgPSAkaWQ6OmZyb20oYXJy YXkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjX2Zyb21fYXJyYXks IHZlYyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFycmF5X2Zyb21fdmVjCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgID0gPFskZWxlbV90eTsgJGVsZW1fY291bnRdPjo6ZnJv bSh2ZWMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIGZv ciBhcnJheXMgd2l0aCBtb3JlIHRoYW4gMzIKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBl bGVtZW50cy4KLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3Vu dCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyYXlfZnJvbV92 ZWNbaV0sIGFycmF5W2ldKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHZlY19mcm9tX2ludG9fYXJyYXk6ICRpZCA9IGFycmF5Lmlu dG8oKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZlY19mcm9tX2ludG9f YXJyYXksIHZlYyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFycmF5X2Zyb21faW50 b192ZWM6IFskZWxlbV90eTsgJGVsZW1fY291bnRdCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gdmVjLmludG8oKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV29y a2Fyb3VuZCBmb3IgYXJyYXlzIHdpdGggbW9yZSB0aGFuIDMyCi0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gZWxlbWVudHMuCi0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFy cmF5X2Zyb21faW50b192ZWNbaV0sIGFycmF5W2ldKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5ycwkxOTcwLTAxLTAxIDAzOjAw OjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjcgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIGBG cm9tYCBhbmQgYEludG9gIGZvciB2ZWN0b3IgdHlwZXMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxf ZnJvbV92ZWN0b3IgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQKLS0gICAgIHwgJHNvdXJjZTppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCBGcm9tPCRzb3VyY2U+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGZyb20oc291cmNlOiAkc291cmNlKSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgZm4gc3RhdGljX2Fzc2VydF9zYW1lX251bWJlcl9vZl9sYW5lczxULCBVPigp Ci0tICAgICAgICAgICAgICAgIHdoZXJlCi0tICAgICAgICAgICAgICAgICAgICBUOiBjcmF0ZTo6 c2VhbGVkOjpTaW1kLAotLSAgICAgICAgICAgICAgICAgICAgVTogY3JhdGU6OnNlYWxlZDo6U2lt ZDxMYW5lc1R5cGUgPSBUOjpMYW5lc1R5cGU+LAotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2Nhc3Q7 Ci0tICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnRfc2FtZV9udW1iZXJfb2ZfbGFuZXM6Ojwk aWQsICRzb3VyY2U+KCk7Ci0tICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9jYXN0 KHNvdXJjZS4wKSB9KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIC8v IEZJWE1FOiBgSW50bzo6aW50b2AgaXMgbm90IGlubGluZSwgYnV0IGR1ZSB0byB0aGUgYmxhbmtl dCBpbXBsIGluCi0tICAgICAgICAvLyBgc3RkYCwgd2hpY2ggaXMgbm90IG1hcmtlZCBgZGVmYXVs dGAsIHdlIGNhbm5vdCBvdmVycmlkZSBpdCBoZXJlCi0tICAgICAgICAvLyB3aXRoIHNwZWNpYWxp emF0aW9uLgotLQotLSAgICAgICAgLyoKLS0gICAgICAgICAgIGltcGwgSW50bzwkaWQ+IGZvciAk c291cmNlIHsKLS0gICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICBmbiBp bnRvKHNlbGYpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNpbWRfY2Fz dChzZWxmKSB9Ci0tICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgfQotLSAgICAgICAgKi8K LS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9t XyAkc291cmNlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBmcm9tKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGlkOjpsYW5lcygpLCAkc291 cmNlOjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc291cmNlOiAkc291 cmNlID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWM6ICRpZCA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgZSA9ICRpZDo6ZnJvbShzb3VyY2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZSwgdmVjKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZTogJGlk ID0gc291cmNlLmludG8oKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGUs IHZlYyk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBs X2Zyb21fdmVjdG9ycyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dAotLSAgICAgfCAkKCRzb3VyY2U6aWRlbnQpLCopID0+ IHsKLS0gICAgICAgICQoCi0tICAgICAgICAgICAgaW1wbF9mcm9tX3ZlY3RvciEoCi0tICAgICAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fY291bnRdOiAkaWQgfCAkdGVzdF90dCB8ICRzb3Vy Y2UKLS0gICAgICAgICAgICApOwotLSAgICAgICAgKSoKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zy b20ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDcgKzAsMCBA QAotLS8vISBJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGBGcm9tYCBhbmQgYEludG9gIHRyYWl0cwot LQotLSNbbWFjcm9fdXNlXQotLW1vZCBmcm9tX2FycmF5OwotLQotLSNbbWFjcm9fdXNlXQotLW1v ZCBmcm9tX3ZlY3RvcjsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaGFzaC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9o YXNoLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaGFzaC5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2hhc2gucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDQ5ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBgSGFzaGAgZm9y IHZlY3RvciB0eXBlcy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9oYXNoIHsKLS0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpoYXNoOjpIYXNoIGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGhhc2g8SDogY3JhdGU6Omhhc2g6Okhhc2hl cj4oJnNlbGYsIHN0YXRlOiAmbXV0IEgpIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0g ICAgICAgICAgICAgICAgICAgIHVuaW9uIEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE6IFskZWxlbV90eTsgJGlkOjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB2 ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIEEg eyB2ZWM6ICpzZWxmIH0uZGF0YS5oYXNoKHN0YXRlKQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX2hhc2g+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gaGFzaCgpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omhhc2g6OntIYXNoLCBIYXNoZXJ9OwotLSAg ICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coZGVwcmVjYXRlZCldCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7U2lwSGFzaGVyMTN9OwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGUgQSA9IFskZWxlbV90eTsgJGlkOjpsYW5lcygpXTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgYTogQSA9IFs0MiBhcyAkZWxlbV90eTsgJGlkOjpsYW5lcygp XTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8QT4oKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRpZD4oKQotLSAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhkZXByZWNh dGVkKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFfaGFzaCA9IFNpcEhhc2hl cjEzOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZfaGFzaCA9IGFf aGFzaC5jbG9uZSgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGEuaGFzaCgmbXV0IGFfaGFz aCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW50ZWdlciB3aXRoaW4gbWFudGlz c2FeMSByYW5nZS4KLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Zmxv YXRfY21wKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoNDIg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHYuaGFzaCgmbXV0IHZfaGFz aCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhX2hhc2guZmluaXNoKCks IHZfaGFzaC5maW5pc2goKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9z cGVjaWZpYy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2Jp dHMvYXJjaF9zcGVjaWZpYy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAw MDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv aW50b19iaXRzL2FyY2hfc3BlY2lmaWMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDM0NSArMCwwIEBACi0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2Ag YmV0d2VlbiBwb3J0YWJsZSB2ZWN0b3IgdHlwZXMgYW5kIHRoZQotLS8vISBhcmNoaXRlY3R1cmUt c3BlY2lmaWMgdmVjdG9yIHR5cGVzLgotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS0vLyBGSVhNRTog TUlQUyBGcm9tQml0cy9JbnRvQml0cwotLQotLSNbYWxsb3codW51c2VkKV0KLS11c2UgY3JhdGU6 Oio7Ci0tCi0tLy8vIFRoaXMgbWFjcm8gaW1wbGVtZW50cyBGcm9tQml0cyBmb3IgdGhlIHBvcnRh YmxlIGFuZCB0aGUgYXJjaGl0ZWN0dXJlCi0tLy8vIHNwZWNpZmljIHZlY3RvciB0eXBlcy4KLS0v Ly8KLS0vLy8gVGhlICJsZWFmIiBjYXNlIGlzIGF0IHRoZSBib3R0b20sIGFuZCB0aGUgbW9zdCBn ZW5lcmljIGNhc2UgaXMgYXQgdGhlIHRvcC4KLS0vLy8gVGhlIGdlbmVyaWMgY2FzZSBpcyBzcGxp dCBpbnRvIHNtYWxsZXIgY2FzZXMgcmVjdXJzaXZlbHkuCi0tbWFjcm9fcnVsZXMhIGltcGxfYXJj aCB7Ci0tICAgIChbJGFyY2hfaGVhZF9pOmlkZW50WyRhcmNoX2hlYWRfdHQ6dHRdOiAkKCRhcmNo X2hlYWRfdHk6aWRlbnQpLCpdLAotLSAgICAgJChbJGFyY2hfdGFpbF9pOmlkZW50WyRhcmNoX3Rh aWxfdHQ6dHRdOiAkKCRhcmNoX3RhaWxfdHk6aWRlbnQpLCpdKSwqIHwKLS0gICAgIGZyb206ICQo JGZyb21fdHk6aWRlbnQpLCogfCBpbnRvOiAkKCRpbnRvX3R5OmlkZW50KSwqIHwKLS0gICAgIHRl c3Q6ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsX2FyY2ghKAotLSAgICAgICAgICAg IFskYXJjaF9oZWFkX2lbJGFyY2hfaGVhZF90dF06ICQoJGFyY2hfaGVhZF90eSksKl0gfAotLSAg ICAgICAgICAgIGZyb206ICQoJGZyb21fdHkpLCogfAotLSAgICAgICAgICAgIGludG86ICQoJGlu dG9fdHkpLCogfAotLSAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAg ICAgICAgaW1wbF9hcmNoISgKLS0gICAgICAgICAgICAkKFskYXJjaF90YWlsX2lbJGFyY2hfdGFp bF90dF06ICQoJGFyY2hfdGFpbF90eSksKl0pLCogfAotLSAgICAgICAgICAgIGZyb206ICQoJGZy b21fdHkpLCogfAotLSAgICAgICAgICAgIGludG86ICQoJGludG9fdHkpLCogfAotLSAgICAgICAg ICAgIHRlc3Q6ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICB9OwotLSAgICAoWyRhcmNoOmlk ZW50WyRhcmNoX3R0OnR0XTogJCgkYXJjaF90eTppZGVudCksKl0gfAotLSAgICAgZnJvbTogJCgk ZnJvbV90eTppZGVudCksKiB8IGludG86ICQoJGludG9fdHk6aWRlbnQpLCogfAotLSAgICAgdGVz dDogJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIC8vIG5vdGU6IGlmIHRhcmdldCBpcyAiYXJt IiwgIit2NywrbmVvbiIgbXVzdCBiZSBlbmFibGVkCi0tICAgICAgICAvLyBhbmQgdGhlIHN0ZCBs aWJyYXJ5IG11c3QgYmUgcmVjb21waWxlZCB3aXRoIHRoZW0KLS0gICAgICAgICNbY2ZnKGFueSgK LS0gICAgICAgICAgICBub3QodGFyZ2V0X2FyY2ggPSAiYXJtIiksCi0tICAgICAgICAgICAgYWxs KHRhcmdldF9mZWF0dXJlID0gInY3IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAg ICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKQotLSAg ICAgICAgKV0KLS0gICAgICAgIC8vIG5vdGU6IGlmIHRhcmdldCBpcyAicG93ZXJwYyIsICJhbHRp dmVjIiBtdXN0IGJlIGVuYWJsZWQKLS0gICAgICAgIC8vIGFuZCB0aGUgc3RkIGxpYnJhcnkgbXVz dCBiZSByZWNvbXBpbGVkIHdpdGggaXQKLS0gICAgICAgICNbY2ZnKGFueSgKLS0gICAgICAgICAg ICBub3QodGFyZ2V0X2FyY2ggPSAicG93ZXJwYyIpLAotLSAgICAgICAgICAgIGFsbCh0YXJnZXRf ZmVhdHVyZSA9ICJhbHRpdmVjIiwgZmVhdHVyZSA9ICJjb3JlX2FyY2giKSwKLS0gICAgICAgICkp XQotLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAkYXJjaF90dCldCi0tICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6OiRhcmNoOjp7Ci0tICAgICAgICAgICAgJCgkYXJjaF90eSksKgotLSAgICAg ICAgfTsKLS0KLS0gICAgICAgICNbY2ZnKGFueSgKLS0gICAgICAgICAgICBub3QodGFyZ2V0X2Fy Y2ggPSAiYXJtIiksCi0tICAgICAgICAgICAgYWxsKHRhcmdldF9mZWF0dXJlID0gInY3IiwgdGFy Z2V0X2ZlYXR1cmUgPSAibmVvbiIsCi0tICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNv cmVfYXJjaCIsIGxpYmNvcmVfbmVvbikpKQotLSAgICAgICAgKV0KLS0gICAgICAgICNbY2ZnKGFu eSgKLS0gICAgICAgICAgICBub3QodGFyZ2V0X2FyY2ggPSAicG93ZXJwYyIpLAotLSAgICAgICAg ICAgIGFsbCh0YXJnZXRfZmVhdHVyZSA9ICJhbHRpdmVjIiwgZmVhdHVyZSA9ICJjb3JlX2FyY2gi KSwKLS0gICAgICAgICkpXQotLSAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAkYXJjaF90dCld Ci0tICAgICAgICBpbXBsX2FyY2ghKCQoJGFyY2hfdHkpLCogfCAkKCRmcm9tX3R5KSwqIHwgJCgk aW50b190eSksKiB8Ci0tICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0KTsKLS0gICAg fTsKLS0gICAgKCRhcmNoX2hlYWQ6aWRlbnQsICQoJGFyY2hfdGFpbDppZGVudCksKiB8ICQoJGZy b21fdHk6aWRlbnQpLCoKLS0gICAgIHwgJCgkaW50b190eTppZGVudCksKiB8IHRlc3Q6ICR0ZXN0 X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsX2FyY2ghKCRhcmNoX2hlYWQgfCAkKCRmcm9tX3R5 KSwqIHwgJCgkaW50b190eSksKiB8Ci0tICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0 KTsKLS0gICAgICAgIGltcGxfYXJjaCEoJCgkYXJjaF90YWlsKSwqIHwgJCgkZnJvbV90eSksKiB8 ICQoJGludG9fdHkpLCogfAotLSAgICAgICAgICAgICAgICAgICB0ZXN0OiAkdGVzdF90dCk7Ci0t ICAgIH07Ci0tICAgICgkYXJjaF9oZWFkOmlkZW50IHwgJCgkZnJvbV90eTppZGVudCksKiB8ICQo JGludG9fdHk6aWRlbnQpLCogfAotLSAgICAgdGVzdDogJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAg ICAgIGltcGxfZnJvbV9iaXRzISgkYXJjaF9oZWFkWyR0ZXN0X3R0XTogJCgkZnJvbV90eSksKik7 Ci0tICAgICAgICBpbXBsX2ludG9fYml0cyEoJGFyY2hfaGVhZFskdGVzdF90dF06ICQoJGludG9f dHkpLCopOwotLSAgICB9OwotLX0KLS0KLS0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLS8vIElt cGxlbWVudGF0aW9ucyBmb3IgdGhlIDY0LWJpdCB3aWRlIHZlY3RvciB0eXBlczoKLS0KLS0vLyBG SVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHR5cGVzCi0tLy8gRklYTUU6IGFybS9hYXJjaCBm bG9hdDE2eDRfdCBtaXNzaW5nCi0taW1wbF9hcmNoISgKLS0gICAgWwotLSAgICAgICAgYXJtWyJh cm0iXTogaW50OHg4X3QsCi0tICAgICAgICB1aW50OHg4X3QsCi0tICAgICAgICBwb2x5OHg4X3Qs Ci0tICAgICAgICBpbnQxNng0X3QsCi0tICAgICAgICB1aW50MTZ4NF90LAotLSAgICAgICAgcG9s eTE2eDRfdCwKLS0gICAgICAgIGludDMyeDJfdCwKLS0gICAgICAgIHVpbnQzMngyX3QsCi0tICAg ICAgICBmbG9hdDMyeDJfdCwKLS0gICAgICAgIGludDY0eDFfdCwKLS0gICAgICAgIHVpbnQ2NHgx X3QKLS0gICAgXSwKLS0gICAgWwotLSAgICAgICAgYWFyY2g2NFsiYWFyY2g2NCJdOiBpbnQ4eDhf dCwKLS0gICAgICAgIHVpbnQ4eDhfdCwKLS0gICAgICAgIHBvbHk4eDhfdCwKLS0gICAgICAgIGlu dDE2eDRfdCwKLS0gICAgICAgIHVpbnQxNng0X3QsCi0tICAgICAgICBwb2x5MTZ4NF90LAotLSAg ICAgICAgaW50MzJ4Ml90LAotLSAgICAgICAgdWludDMyeDJfdCwKLS0gICAgICAgIGZsb2F0MzJ4 Ml90LAotLSAgICAgICAgaW50NjR4MV90LAotLSAgICAgICAgdWludDY0eDFfdCwKLS0gICAgICAg IGZsb2F0NjR4MV90Ci0tICAgIF0gfCBmcm9tOiBpOHg4LAotLSAgICB1OHg4LAotLSAgICBtOHg4 LAotLSAgICBpMTZ4NCwKLS0gICAgdTE2eDQsCi0tICAgIG0xNng0LAotLSAgICBpMzJ4MiwKLS0g ICAgdTMyeDIsCi0tICAgIGYzMngyLAotLSAgICBtMzJ4MiB8IGludG86IGk4eDgsCi0tICAgIHU4 eDgsCi0tICAgIGkxNng0LAotLSAgICB1MTZ4NCwKLS0gICAgaTMyeDIsCi0tICAgIHUzMngyLAot LSAgICBmMzJ4MiB8IHRlc3Q6IHRlc3RfdjY0Ci0tKTsKLS0KLS0vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLwotLS8vIEltcGxlbWVudGF0aW9ucyBmb3IgdGhlIDEyOC1iaXQgd2lkZSB2ZWN0b3IgdHlw ZXM6Ci0tCi0tLy8gRklYTUU6IGFybS9hYXJjaCBmbG9hdDE2eDhfdCBtaXNzaW5nCi0tLy8gRklY TUU6IHBwYyB2ZWN0b3JfcGl4ZWwgbWlzc2luZwotLS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3JfRmxv YXQxNiBtaXNzaW5nCi0tLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl9zaWduZWRfbG9uZ19sb25nIG1p c3NpbmcKLS0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX3Vuc2lnbmVkX2xvbmdfbG9uZyBtaXNzaW5n Ci0tLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl9ib29sX2xvbmdfbG9uZyBtaXNzaW5nCi0tLy8gRklY TUU6IHBwYzY0IHZlY3Rvcl9zaWduZWRfX19pbnQxMjggbWlzc2luZwotLS8vIEZJWE1FOiBwcGM2 NCB2ZWN0b3JfdW5zaWduZWRfX19pbnQxMjggbWlzc2luZwotLWltcGxfYXJjaCEoCi0tICAgIFt4 ODZbIng4NiJdOiBfX20xMjgsIF9fbTEyOGksIF9fbTEyOGRdLAotLSAgICBbeDg2XzY0WyJ4ODZf NjQiXTogX19tMTI4LCBfX20xMjhpLCBfX20xMjhkXSwKLS0gICAgWwotLSAgICAgICAgYXJtWyJh cm0iXTogaW50OHgxNl90LAotLSAgICAgICAgdWludDh4MTZfdCwKLS0gICAgICAgIHBvbHk4eDE2 X3QsCi0tICAgICAgICBpbnQxNng4X3QsCi0tICAgICAgICB1aW50MTZ4OF90LAotLSAgICAgICAg cG9seTE2eDhfdCwKLS0gICAgICAgIGludDMyeDRfdCwKLS0gICAgICAgIHVpbnQzMng0X3QsCi0t ICAgICAgICBmbG9hdDMyeDRfdCwKLS0gICAgICAgIGludDY0eDJfdCwKLS0gICAgICAgIHVpbnQ2 NHgyX3QKLS0gICAgXSwKLS0gICAgWwotLSAgICAgICAgYWFyY2g2NFsiYWFyY2g2NCJdOiBpbnQ4 eDE2X3QsCi0tICAgICAgICB1aW50OHgxNl90LAotLSAgICAgICAgcG9seTh4MTZfdCwKLS0gICAg ICAgIGludDE2eDhfdCwKLS0gICAgICAgIHVpbnQxNng4X3QsCi0tICAgICAgICBwb2x5MTZ4OF90 LAotLSAgICAgICAgaW50MzJ4NF90LAotLSAgICAgICAgdWludDMyeDRfdCwKLS0gICAgICAgIGZs b2F0MzJ4NF90LAotLSAgICAgICAgaW50NjR4Ml90LAotLSAgICAgICAgdWludDY0eDJfdCwKLS0g ICAgICAgIGZsb2F0NjR4Ml90Ci0tICAgIF0sCi0tICAgIFsKLS0gICAgICAgIHBvd2VycGNbInBv d2VycGMiXTogdmVjdG9yX3NpZ25lZF9jaGFyLAotLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2No YXIsCi0tICAgICAgICB2ZWN0b3Jfc2lnbmVkX3Nob3J0LAotLSAgICAgICAgdmVjdG9yX3Vuc2ln bmVkX3Nob3J0LAotLSAgICAgICAgdmVjdG9yX3NpZ25lZF9pbnQsCi0tICAgICAgICB2ZWN0b3Jf dW5zaWduZWRfaW50LAotLSAgICAgICAgdmVjdG9yX2Zsb2F0Ci0tICAgIF0sCi0tICAgIFsKLS0g ICAgICAgIHBvd2VycGM2NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9zaWduZWRfY2hhciwKLS0gICAg ICAgIHZlY3Rvcl91bnNpZ25lZF9jaGFyLAotLSAgICAgICAgdmVjdG9yX3NpZ25lZF9zaG9ydCwK LS0gICAgICAgIHZlY3Rvcl91bnNpZ25lZF9zaG9ydCwKLS0gICAgICAgIHZlY3Rvcl9zaWduZWRf aW50LAotLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2ludCwKLS0gICAgICAgIHZlY3Rvcl9mbG9h dCwKLS0gICAgICAgIHZlY3Rvcl9zaWduZWRfbG9uZywKLS0gICAgICAgIHZlY3Rvcl91bnNpZ25l ZF9sb25nLAotLSAgICAgICAgdmVjdG9yX2RvdWJsZQotLSAgICBdIHwgZnJvbTogaTh4MTYsCi0t ICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBt MTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQs Ci0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAg ICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxIHwgaW50bzogaTh4MTYsCi0tICAg IHU4eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4 NCwKLS0gICAgZjMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0t ICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxIHwgdGVzdDogdGVzdF92MTI4Ci0tKTsKLS0KLS1pbXBs X2FyY2ghKAotLSAgICBbcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0b3JfYm9vbF9jaGFyXSwKLS0g ICAgW3Bvd2VycGM2NFsicG93ZXJwYzY0Il06IHZlY3Rvcl9ib29sX2NoYXJdIHwgZnJvbTogbTh4 MTYsCi0tICAgIG0xNng4LAotLSAgICBtMzJ4NCwKLS0gICAgbTY0eDIsCi0tICAgIG0xMjh4MSB8 IGludG86IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAg ICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0 eDIsCi0tICAgIGY2NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgLy8gTWFz a3M6Ci0tICAgIG04eDE2IHwgdGVzdDogdGVzdF92MTI4Ci0tKTsKLS0KLS1pbXBsX2FyY2ghKAot LSAgICBbcG93ZXJwY1sicG93ZXJwYyJdOiB2ZWN0b3JfYm9vbF9zaG9ydF0sCi0tICAgIFtwb3dl cnBjNjRbInBvd2VycGM2NCJdOiB2ZWN0b3JfYm9vbF9zaG9ydF0gfCBmcm9tOiBtMTZ4OCwKLS0g ICAgbTMyeDQsCi0tICAgIG02NHgyLAotLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKLS0gICAg dTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0 LAotLSAgICBmMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0g ICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIC8vIE1hc2tzOgotLSAgICBtOHgxNiwKLS0g ICAgbTE2eDggfCB0ZXN0OiB0ZXN0X3YxMjgKLS0pOwotLQotLWltcGxfYXJjaCEoCi0tICAgIFtw b3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX2ludF0sCi0tICAgIFtwb3dlcnBjNjRbInBv d2VycGM2NCJdOiB2ZWN0b3JfYm9vbF9pbnRdIHwgZnJvbTogbTMyeDQsCi0tICAgIG02NHgyLAot LSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIGkxNng4LAotLSAg ICB1MTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgaTY0 eDIsCi0tICAgIHU2NHgyLAotLSAgICBmNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEs Ci0tICAgIC8vIE1hc2tzOgotLSAgICBtOHgxNiwKLS0gICAgbTE2eDgsCi0tICAgIG0zMng0IHwg dGVzdDogdGVzdF92MTI4Ci0tKTsKLS0KLS1pbXBsX2FyY2ghKAotLSAgICBbcG93ZXJwYzY0WyJw b3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xfbG9uZ10gfCBmcm9tOiBtNjR4MiwKLS0gICAgbTEyOHgx IHwgaW50bzogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0t ICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1 NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIGkxMjh4MSwKLS0gICAgdTEyOHgxLAotLSAgICAvLyBN YXNrczoKLS0gICAgbTh4MTYsCi0tICAgIG0xNng4LAotLSAgICBtMzJ4NCwKLS0gICAgbTY0eDIg fCB0ZXN0OiB0ZXN0X3YxMjgKLS0pOwotLQotLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi0tLy8g SW1wbGVtZW50YXRpb25zIGZvciB0aGUgMjU2LWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLQotLWlt cGxfYXJjaCEoCi0tICAgIFt4ODZbIng4NiJdOiBfX20yNTYsIF9fbTI1NmksIF9fbTI1NmRdLAot LSAgICBbeDg2XzY0WyJ4ODZfNjQiXTogX19tMjU2LCBfX20yNTZpLCBfX20yNTZkXSB8IGZyb206 IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2 eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgs Ci0tICAgIG0zMng4LAotLSAgICBpNjR4NCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0LAotLSAg ICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MiB8IGludG86 IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIGkz Mng4LAotLSAgICB1MzJ4OCwKLS0gICAgZjMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwK LS0gICAgZjY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyIHwgdGVzdDogdGVzdF92MjU2 Ci0tKTsKLS0KLS0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotLS8vIEZJWE1FOiBJbXBsZW1lbnRh dGlvbnMgZm9yIHRoZSA1MTItYml0IHdpZGUgdmVjdG9yIHR5cGVzCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNyb3MucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9tYWNy b3MucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3NCArMCwwIEBACi0tLy8hIE1hY3Jv cyBpbXBsZW1lbnRpbmcgYEZyb21CaXRzYAotLQotLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21fYml0 c18gewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJGZyb21fdHk6aWRlbnQpID0+IHsK LS0gICAgICAgIGltcGwgY3JhdGU6OmFwaTo6aW50b19iaXRzOjpGcm9tQml0czwkZnJvbV90eT4g Zm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZnJvbV9i aXRzKHg6ICRmcm9tX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHgpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0t ICAgICAgICB0ZXN0X2lmISB7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfZnJvbV9iaXRz XyAkZnJvbV90eT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gdGVzdCgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHRyOjp7cmVhZF91bmFsaWduZWR9LAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZW06OntzaXplX29mLCB6ZXJvZWR9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OkludG9CaXRzOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc2l6ZV9vZjo6PCRpZD4oKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfb2Y6OjwkZnJvbV90eT4oKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1c2Ugd2UgbmV2ZXIg Y3JlYXRlIGEgcmVmZXJlbmNlIHRvCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW5pbml0 aWFsaXplZCBtZW1vcnk6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICRmcm9tX3R5 ID0gdW5zYWZlIHsgemVyb2VkKCkgfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg Yl8wOiAkaWQgPSBjcmF0ZTo6RnJvbUJpdHM6OmZyb21fYml0cyhhKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYl8xOiAkaWQgPSBhLmludG9fYml0cygpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlc2UgYXJlIGJ5dGUtd2lzZSBlcXVhbCwgdGhh dCBpcywKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZSBiaXQgcGF0dGVybnMg YXJlIGlkZW50aWNhbDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi5zaXpl X29mOjo8JGlkPigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBz YWZlIGJlY2F1c2Ugd2Ugb25seSByZWFkIGluaXRpYWxpemVkCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG1lbW9yeSBpbiBib3VuZHMuIEFsc28sIHRha2luZyBhIHJlZmVyZW5jZSB0 bwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgYl9pYCBpcyBvayBiZWNhdXNlIHRo ZSBmaWVsZHMgYXJlIGluaXRpYWxpemVkLgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJfMF92OiB1OCA9 IHJlYWRfdW5hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgm Yl8wIGFzICpjb25zdCAkaWQgYXMgKmNvbnN0IHU4KQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAud3JhcHBpbmdfYWRkKGkpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJfMV92 OiB1OCA9IHJlYWRfdW5hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgmYl8xIGFzICpjb25zdCAkaWQgYXMgKmNvbnN0IHU4KQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAud3JhcHBpbmdfYWRkKGkpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShiXzBfdiwgYl8xX3YpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0K LS1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2JpdHMgewotLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0 OnR0XTogJCgkZnJvbV90eTppZGVudCksKikgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAg ICBpbXBsX2Zyb21fYml0c18hKCRpZFskdGVzdF90dF06ICRmcm9tX3R5KTsKLS0gICAgICAgICkq Ci0tICAgIH0KLS19Ci0tCi0tI1thbGxvdyh1bnVzZWQpXQotLW1hY3JvX3J1bGVzISBpbXBsX2lu dG9fYml0cyB7Ci0tICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50 KSwqKSA9PiB7Ci0tICAgICAgICAkKAotLSAgICAgICAgICAgIGltcGxfZnJvbV9iaXRzXyEoJGZy b21fdHlbJHRlc3RfdHRdOiAkaWQpOwotLSAgICAgICAgKSoKLS0gICAgfQotLX0KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxMjgu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YxMjgu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMv djEyOC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTI4LnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyMzIgKzAsMCBAQAotLS8vISBgRnJv bUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMTI4LWJp dCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tI1thbGxvdyh1bnVzZWQpXSAg Ly8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9tX2JpdHMh KAotLSAgICBpOHgxNlt0ZXN0X3YxMjhdOiB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4 LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0g ICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2 NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0xMjh4 MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1OHgxNlt0ZXN0X3YxMjhdOiBpOHgxNiwK LS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAg IGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4 MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAot LSAgICB1MTI4eDEsCi0tICAgIG0xMjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG04eDE2W3Rl c3RfdjEyOF06IG0xNng4LCBtMzJ4NCwgbTY0eDIsIG0xMjh4MSk7Ci0tCi0taW1wbF9mcm9tX2Jp dHMhKAotLSAgICBpMTZ4OFt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04 eDE2LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwK LS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBpNjR4MiwKLS0gICAgdTY0eDIsCi0tICAg IGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0x Mjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1MTZ4OFt0ZXN0X3YxMjhdOiBpOHgx NiwKLS0gICAgdTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgbTE2eDgsCi0t ICAgIGkzMng0LAotLSAgICB1MzJ4NCwKLS0gICAgZjMyeDQsCi0tICAgIG0zMng0LAotLSAgICBp NjR4MiwKLS0gICAgdTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgx LAotLSAgICB1MTI4eDEsCi0tICAgIG0xMjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG0xNng4 W3Rlc3RfdjEyOF06IG0zMng0LCBtNjR4MiwgbTEyOHgxKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEo Ci0tICAgIGkzMng0W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYs Ci0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIHUzMng0LAotLSAg ICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0 eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgx Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIHUzMng0W3Rlc3RfdjEyOF06IGk4eDE2LAot LSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkxNng4LAotLSAgICB1MTZ4OCwKLS0gICAg bTE2eDgsCi0tICAgIGkzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgy LAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0t ICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGYz Mng0W3Rlc3RfdjEyOF06IGk4eDE2LAotLSAgICB1OHgxNiwKLS0gICAgbTh4MTYsCi0tICAgIGkx Nng4LAotLSAgICB1MTZ4OCwKLS0gICAgbTE2eDgsCi0tICAgIGkzMng0LAotLSAgICB1MzJ4NCwK LS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAg IG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIHUxMjh4MSwKLS0gICAgbTEyOHgxCi0tKTsKLS1p bXBsX2Zyb21fYml0cyEobTMyeDRbdGVzdF92MTI4XTogbTY0eDIsIG0xMjh4MSk7Ci0tCi0taW1w bF9mcm9tX2JpdHMhKAotLSAgICBpNjR4Mlt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYs Ci0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAg ICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgdTY0 eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEs Ci0tICAgIG0xMjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1NjR4Mlt0ZXN0X3Yx MjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04eDE2LAotLSAgICBpMTZ4OCwKLS0gICAg dTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwKLS0gICAgdTMyeDQsCi0tICAgIGYzMng0 LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAgIGY2NHgyLAotLSAgICBtNjR4MiwKLS0g ICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0xMjh4MQotLSk7Ci0taW1wbF9mcm9tX2Jp dHMhKAotLSAgICBmNjR4Mlt0ZXN0X3YxMjhdOiBpOHgxNiwKLS0gICAgdTh4MTYsCi0tICAgIG04 eDE2LAotLSAgICBpMTZ4OCwKLS0gICAgdTE2eDgsCi0tICAgIG0xNng4LAotLSAgICBpMzJ4NCwK LS0gICAgdTMyeDQsCi0tICAgIGYzMng0LAotLSAgICBtMzJ4NCwKLS0gICAgaTY0eDIsCi0tICAg IHU2NHgyLAotLSAgICBtNjR4MiwKLS0gICAgaTEyOHgxLAotLSAgICB1MTI4eDEsCi0tICAgIG0x Mjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKG02NHgyW3Rlc3RfdjEyOF06IG0xMjh4MSk7Ci0t Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBpMTI4eDFbdGVzdF92MTI4XTogaTh4MTYsCi0tICAg IHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgsCi0tICAgIHUxNng4LAotLSAgICBtMTZ4 OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAgICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0t ICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0eDIsCi0tICAgIG02NHgyLAotLSAgICB1 MTI4eDEsCi0tICAgIG0xMjh4MQotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1MTI4eDFb dGVzdF92MTI4XTogaTh4MTYsCi0tICAgIHU4eDE2LAotLSAgICBtOHgxNiwKLS0gICAgaTE2eDgs Ci0tICAgIHUxNng4LAotLSAgICBtMTZ4OCwKLS0gICAgaTMyeDQsCi0tICAgIHUzMng0LAotLSAg ICBmMzJ4NCwKLS0gICAgbTMyeDQsCi0tICAgIGk2NHgyLAotLSAgICB1NjR4MiwKLS0gICAgZjY0 eDIsCi0tICAgIG02NHgyLAotLSAgICBpMTI4eDEsCi0tICAgIG0xMjh4MQotLSk7Ci0tLy8gbm90 ZTogbTEyOHgxIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCB0aGUgb3RoZXIgbWFza3Mg Yml0IHBhdHRlcm5zIGluCi0tLy8gaGVyZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjE2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjE2LnJzCTIwMjUtMDQtMjAgMTk6Mjg6 MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvaW50b19iaXRzL3YxNi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsOSArMCwwIEBACi0tLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVt ZW50YXRpb25zIGZvciBwb3J0YWJsZSAxNi1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpz a2lwXQotLQotLSNbYWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNy YXRlOjoqOwotLQotLWltcGxfZnJvbV9iaXRzIShpOHgyW3Rlc3RfdjE2XTogdTh4MiwgbTh4Mik7 Ci0taW1wbF9mcm9tX2JpdHMhKHU4eDJbdGVzdF92MTZdOiBpOHgyLCBtOHgyKTsKLS0vLyBub3Rl OiBtOHgyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCBpOHgyIG9yIHU4eDIgYml0IHBh dHRlcm5zCi1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92MjU2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92MjU2LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvaW50b19iaXRzL3YyNTYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMv djI1Ni5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjMyICsw LDAgQEAKLS0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9y IHBvcnRhYmxlIDI1Ni1iaXQgd2lkZSB2ZWN0b3JzCi0tI1tydXN0Zm10Ojpza2lwXQotLQotLSNb YWxsb3codW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0Ci0tdXNlIGNyYXRlOjoqOwotLQot LWltcGxfZnJvbV9iaXRzISgKLS0gICAgaTh4MzJbdGVzdF92MjU2XTogdTh4MzIsCi0tICAgIG04 eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4 OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0t ICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAgbTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAg dTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0gICAgdTh4MzJb dGVzdF92MjU2XTogaTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngx NiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAot LSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAotLSAgICBmNjR4NCwKLS0gICAg bTY0eDQsCi0tICAgIGkxMjh4MiwKLS0gICAgdTEyOHgyLAotLSAgICBtMTI4eDIKLS0pOwotLWlt cGxfZnJvbV9iaXRzIShtOHgzMlt0ZXN0X3YyNTZdOiBtMTZ4MTYsIG0zMng4LCBtNjR4NCwgbTEy OHgyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkxNngxNlt0ZXN0X3YyNTZdOiBpOHgz MiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwK LS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAg IGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4 eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0t ICAgIHUxNngxNlt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAot LSAgICBpMTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAg ICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0 eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgy Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTE2eDE2W3Rlc3RfdjI1Nl06IG0zMng4LCBtNjR4NCwg bTEyOHgyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkzMng4W3Rlc3RfdjI1Nl06IGk4 eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2 LAotLSAgICBtMTZ4MTYsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0t ICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBp MTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEo Ci0tICAgIHUzMng4W3Rlc3RfdjI1Nl06IGk4eDMyLAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIs Ci0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAotLSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAot LSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAg ZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEy OHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGYzMng4W3Rlc3RfdjI1Nl06IGk4eDMy LAotLSAgICB1OHgzMiwKLS0gICAgbTh4MzIsCi0tICAgIGkxNngxNiwKLS0gICAgdTE2eDE2LAot LSAgICBtMTZ4MTYsCi0tICAgIGkzMng4LAotLSAgICB1MzJ4OCwKLS0gICAgbTMyeDgsCi0tICAg IGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICBpMTI4 eDIsCi0tICAgIHUxMjh4MiwKLS0gICAgbTEyOHgyCi0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTMy eDhbdGVzdF92MjU2XTogbTY0eDQsIG0xMjh4Mik7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKAotLSAg ICBpNjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAg ICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAg dTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgdTY0eDQsCi0tICAgIGY2NHg0 LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4Mgot LSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1NjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0g ICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBpMTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAg bTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMyeDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4 OCwKLS0gICAgaTY0eDQsCi0tICAgIGY2NHg0LAotLSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAot LSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBm NjR4NFt0ZXN0X3YyNTZdOiBpOHgzMiwKLS0gICAgdTh4MzIsCi0tICAgIG04eDMyLAotLSAgICBp MTZ4MTYsCi0tICAgIHUxNngxNiwKLS0gICAgbTE2eDE2LAotLSAgICBpMzJ4OCwKLS0gICAgdTMy eDgsCi0tICAgIGYzMng4LAotLSAgICBtMzJ4OCwKLS0gICAgaTY0eDQsCi0tICAgIHU2NHg0LAot LSAgICBtNjR4NCwKLS0gICAgaTEyOHgyLAotLSAgICB1MTI4eDIsCi0tICAgIG0xMjh4MgotLSk7 Ci0taW1wbF9mcm9tX2JpdHMhKG02NHg0W3Rlc3RfdjI1Nl06IG0xMjh4Mik7Ci0tCi0taW1wbF9m cm9tX2JpdHMhKAotLSAgICBpMTI4eDJbdGVzdF92MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAot LSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAgICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0g ICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBmMzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2 NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQsCi0tICAgIG02NHg0LAotLSAgICB1MTI4eDIs Ci0tICAgIG0xMjh4MgotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1MTI4eDJbdGVzdF92 MjU2XTogaTh4MzIsCi0tICAgIHU4eDMyLAotLSAgICBtOHgzMiwKLS0gICAgaTE2eDE2LAotLSAg ICB1MTZ4MTYsCi0tICAgIG0xNngxNiwKLS0gICAgaTMyeDgsCi0tICAgIHUzMng4LAotLSAgICBm MzJ4OCwKLS0gICAgbTMyeDgsCi0tICAgIGk2NHg0LAotLSAgICB1NjR4NCwKLS0gICAgZjY0eDQs Ci0tICAgIG02NHg0LAotLSAgICBpMTI4eDIsCi0tICAgIG0xMjh4MgotLSk7Ci0tLy8gbm90ZTog bTEyOHgyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCB0aGUgb3RoZXIgbWFza3MgYml0 IHBhdHRlcm5zIGluCi0tLy8gaGVyZQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MzIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvaW50b19iaXRzL3YzMi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMTMgKzAsMCBAQAotLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVu dGF0aW9ucyBmb3IgcG9ydGFibGUgMzItYml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tp cF0KLS0KLS0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAotLXVzZSBjcmF0 ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0cyEoaTh4NFt0ZXN0X3YzMl06IHU4eDQsIG04eDQsIGkx NngyLCB1MTZ4MiwgbTE2eDIpOwotLWltcGxfZnJvbV9iaXRzISh1OHg0W3Rlc3RfdjMyXTogaTh4 NCwgbTh4NCwgaTE2eDIsIHUxNngyLCBtMTZ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKG04eDRbdGVz dF92MzJdOiBtMTZ4Mik7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKGkxNngyW3Rlc3RfdjMyXTogaTh4 NCwgdTh4NCwgbTh4NCwgdTE2eDIsIG0xNngyKTsKLS1pbXBsX2Zyb21fYml0cyEodTE2eDJbdGVz dF92MzJdOiBpOHg0LCB1OHg0LCBtOHg0LCBpMTZ4MiwgbTE2eDIpOwotLS8vIG5vdGU6IG0xNngy IGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCBtOHg0IGJpdCBwYXR0ZXJucwotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjUx Mi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjUx Mi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0 cy92NTEyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3Y1MTIucnMJMTk3MC0w MS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIzMiArMCwwIEBACi0tLy8hIGBG cm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSA1MTIt Yml0IHdpZGUgdmVjdG9ycwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS0jW2FsbG93KHVudXNlZCld ICAvLyB3YXNtX2JpbmRnZW5fdGVzdAotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2Zyb21fYml0 cyEoCi0tICAgIGk4eDY0W3Rlc3RfdjUxMl06IHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2 eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4 MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgs Ci0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0t ICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1OHg2NFt0ZXN0X3Y1MTJd OiBpOHg2NCwKLS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAgICBt MTZ4MzIsCi0tICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0z MngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgs Ci0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJv bV9iaXRzIShtOHg2NFt0ZXN0X3Y1MTJdOiBtMTZ4MzIsIG0zMngxNiwgbTY0eDgsIG0xMjh4NCk7 Ci0tCi0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBpMTZ4MzJbdGVzdF92NTEyXTogaTh4NjQsCi0t ICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgdTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAg IGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0zMngxNiwKLS0gICAg aTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgsCi0tICAgIGkxMjh4 NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJvbV9iaXRzISgKLS0g ICAgdTE2eDMyW3Rlc3RfdjUxMl06IGk4eDY0LAotLSAgICB1OHg2NCwKLS0gICAgbTh4NjQsCi0t ICAgIGkxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0g ICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAg ZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4NCwKLS0gICAgbTEy OHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTE2eDMyW3Rlc3RfdjUxMl06IG0zMngxNiwgbTY0 eDgsIG0xMjh4NCk7Ci0tCi0taW1wbF9mcm9tX2JpdHMhKAotLSAgICBpMzJ4MTZbdGVzdF92NTEy XTogaTh4NjQsCi0tICAgIHU4eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1 MTZ4MzIsCi0tICAgIG0xNngzMiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0z MngxNiwKLS0gICAgaTY0eDgsCi0tICAgIHU2NHg4LAotLSAgICBmNjR4OCwKLS0gICAgbTY0eDgs Ci0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLWltcGxfZnJv bV9iaXRzISgKLS0gICAgdTMyeDE2W3Rlc3RfdjUxMl06IGk4eDY0LAotLSAgICB1OHg2NCwKLS0g ICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAgICBtMTZ4MzIsCi0tICAg IGkzMngxNiwKLS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1 NjR4OCwKLS0gICAgZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0tICAgIHUxMjh4 NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGYzMngxNlt0ZXN0 X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0t ICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0g ICAgbTMyeDE2LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBt NjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1w bF9mcm9tX2JpdHMhKG0zMngxNlt0ZXN0X3Y1MTJdOiBtNjR4OCwgbTEyOHg0KTsKLS0KLS1pbXBs X2Zyb21fYml0cyEoCi0tICAgIGk2NHg4W3Rlc3RfdjUxMl06IGk4eDY0LAotLSAgICB1OHg2NCwK LS0gICAgbTh4NjQsCi0tICAgIGkxNngzMiwKLS0gICAgdTE2eDMyLAotLSAgICBtMTZ4MzIsCi0t ICAgIGkzMngxNiwKLS0gICAgdTMyeDE2LAotLSAgICBmMzJ4MTYsCi0tICAgIG0zMngxNiwKLS0g ICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAgaTEyOHg0LAotLSAgICB1 MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1wbF9mcm9tX2JpdHMhKAotLSAgICB1NjR4OFt0 ZXN0X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIs Ci0tICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwK LS0gICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICBmNjR4OCwKLS0g ICAgbTY0eDgsCi0tICAgIGkxMjh4NCwKLS0gICAgdTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwot LWltcGxfZnJvbV9iaXRzISgKLS0gICAgZjY0eDhbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4 eDY0LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngz MiwKLS0gICAgaTMyeDE2LAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2 LAotLSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIG02NHg4LAotLSAgICBpMTI4eDQsCi0t ICAgIHUxMjh4NCwKLS0gICAgbTEyOHg0Ci0tKTsKLS1pbXBsX2Zyb21fYml0cyEobTY0eDhbdGVz dF92NTEyXTogbTEyOHg0KTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoCi0tICAgIGkxMjh4NFt0ZXN0 X3Y1MTJdOiBpOHg2NCwKLS0gICAgdTh4NjQsCi0tICAgIG04eDY0LAotLSAgICBpMTZ4MzIsCi0t ICAgIHUxNngzMiwKLS0gICAgbTE2eDMyLAotLSAgICBpMzJ4MTYsCi0tICAgIHUzMngxNiwKLS0g ICAgZjMyeDE2LAotLSAgICBtMzJ4MTYsCi0tICAgIGk2NHg4LAotLSAgICB1NjR4OCwKLS0gICAg ZjY0eDgsCi0tICAgIG02NHg4LAotLSAgICB1MTI4eDQsCi0tICAgIG0xMjh4NAotLSk7Ci0taW1w bF9mcm9tX2JpdHMhKAotLSAgICB1MTI4eDRbdGVzdF92NTEyXTogaTh4NjQsCi0tICAgIHU4eDY0 LAotLSAgICBtOHg2NCwKLS0gICAgaTE2eDMyLAotLSAgICB1MTZ4MzIsCi0tICAgIG0xNngzMiwK LS0gICAgaTMyeDE2LAotLSAgICB1MzJ4MTYsCi0tICAgIGYzMngxNiwKLS0gICAgbTMyeDE2LAot LSAgICBpNjR4OCwKLS0gICAgdTY0eDgsCi0tICAgIGY2NHg4LAotLSAgICBtNjR4OCwKLS0gICAg aTEyOHg0LAotLSAgICBtMTI4eDQKLS0pOwotLS8vIG5vdGU6IG0xMjh4NCBjYW5ub3QgYmUgY29u c3RydWN0ZWQgZnJvbSBhbGwgdGhlIG90aGVyIG1hc2tzIGJpdCBwYXR0ZXJucyBpbgotLS8vIGhl cmUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRv X2JpdHMvdjY0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv aW50b19iaXRzL3Y2NC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NjQucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE4ICswLDAgQEAKLS0v LyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxl IDY0LWJpdCB3aWRlIHZlY3RvcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tI1thbGxvdyh1bnVz ZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9mcm9t X2JpdHMhKGk4eDhbdGVzdF92NjRdOiB1OHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCBp MzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKHU4eDhbdGVzdF92 NjRdOiBpOHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngy LCBtMzJ4Mik7Ci0taW1wbF9mcm9tX2JpdHMhKG04eDhbdGVzdF92NjRdOiBtMTZ4NCwgbTMyeDIp OwotLQotLWltcGxfZnJvbV9iaXRzIShpMTZ4NFt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgs IHUxNng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9i aXRzISh1MTZ4NFt0ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIGkxNng0LCBtMTZ4NCwgaTMy eDIsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOwotLWltcGxfZnJvbV9iaXRzIShtMTZ4NFt0ZXN0X3Y2 NF06IG0zMngyKTsKLS0KLS1pbXBsX2Zyb21fYml0cyEoaTMyeDJbdGVzdF92NjRdOiBpOHg4LCB1 OHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKLS1p bXBsX2Zyb21fYml0cyEodTMyeDJbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBtOHg4LCBpMTZ4NCwg dTE2eDQsIG0xNng0LCBpMzJ4MiwgZjMyeDIsIG0zMngyKTsKLS1pbXBsX2Zyb21fYml0cyEoZjMy eDJbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCBpMzJ4 MiwgdTMyeDIsIG0zMngyKTsKLS0vLyBub3RlOiBtMzJ4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQg ZnJvbSBhbGwgbTE2eDQgb3IgbTh4OCBiaXQgcGF0dGVybnMKLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2ludG9fYml0cy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsNTkgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRhdGlvbiBvZiBgRnJvbUJpdHNgIGFuZCBgSW50 b0JpdHNgLgotLQotLS8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2UgY29udmVyc2lvbiBmcm9tIGBU YCB0byBgU2VsZmAuCi0tI1tjZmdfYXR0cihkb2NfY2ZnLCBkb2MoY2ZnKGZlYXR1cmUgPSAiaW50 b19iaXRzIikpKV0KLS1wdWIgdHJhaXQgRnJvbUJpdHM8VD46IGNyYXRlOjptYXJrZXI6OlNpemVk IHsKLS0gICAgLy8vIFNhZmUgbG9zc2xlc3MgYml0d2lzZSB0cmFuc211dGUgZnJvbSBgVGAgdG8g YFNlbGZgLgotLSAgICBmbiBmcm9tX2JpdHModDogVCkgLT4gU2VsZjsKLS19Ci0tCi0tLy8vIFNh ZmUgbG9zc2xlc3MgYml0d2lzZSBjb252ZXJzaW9uIGZyb20gYFNlbGZgIHRvIGBUYC4KLS0jW2Nm Z19hdHRyKGRvY19jZmcsIGRvYyhjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKSkpXQotLXB1YiB0 cmFpdCBJbnRvQml0czxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgewotLSAgICAvLy8gU2FmZSBs b3NzbGVzcyBiaXR3aXNlIHRyYW5zbXV0ZSBmcm9tIGBzZWxmYCB0byBgVGAuCi0tICAgIGZuIGlu dG9fYml0cyhzZWxmKSAtPiBUOwotLX0KLS0KLS0vLy8gYEZyb21CaXRzYCBpbXBsaWVzIGBJbnRv Qml0c2AuCi0taW1wbDxULCBVPiBJbnRvQml0czxVPiBmb3IgVAotLXdoZXJlCi0tICAgIFU6IEZy b21CaXRzPFQ+LAotLXsKLS0gICAgI1tpbmxpbmVdCi0tICAgIGZuIGludG9fYml0cyhzZWxmKSAt PiBVIHsKLS0gICAgICAgIGRlYnVnX2Fzc2VydCEoY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+ KCkgPT0gY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFU+KCkpOwotLSAgICAgICAgVTo6ZnJvbV9iaXRz KHNlbGYpCi0tICAgIH0KLS19Ci0tCi0tLy8vIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgYXJl IHJlZmxleGl2ZQotLWltcGw8VD4gRnJvbUJpdHM8VD4gZm9yIFQgewotLSAgICAjW2lubGluZV0K LS0gICAgZm4gZnJvbV9iaXRzKHQ6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgdAotLSAgICB9 Ci0tfQotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBtYWNyb3M7Ci0tCi0tbW9kIHYxNjsKLS1wdWIg dXNlIHNlbGY6OnYxNjo6KjsKLS0KLS1tb2QgdjMyOwotLXB1YiB1c2Ugc2VsZjo6djMyOjoqOwot LQotLW1vZCB2NjQ7Ci0tcHViIHVzZSBzZWxmOjp2NjQ6Oio7Ci0tCi0tbW9kIHYxMjg7Ci0tcHVi IHVzZSBzZWxmOjp2MTI4OjoqOwotLQotLW1vZCB2MjU2OwotLXB1YiB1c2Ugc2VsZjo6djI1Njo6 KjsKLS0KLS1tb2QgdjUxMjsKLS1wdWIgdXNlIHNlbGY6OnY1MTI6Oio7Ci0tCi0tbW9kIGFyY2hf c3BlY2lmaWM7Ci0tcHViIHVzZSBzZWxmOjphcmNoX3NwZWNpZmljOjoqOwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJz LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMxICswLDAgQEAKLS0vLyEgSW1wbGVtZW50 cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgYWJzYC4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9tYXRoX2Zsb2F0X2FicyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1w bCAkaWQgewotLSAgICAgICAgICAgIC8vLyBBYnNvbHV0ZSB2YWx1ZS4KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gYWJzKHNlbGYpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjphYnM6OkFiczsKLS0g ICAgICAgICAgICAgICAgQWJzOjphYnMoc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRo X2Ficz5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBhYnMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobywgby5hYnMoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG1vID0gJGlkOjpzcGxhdCgtMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvLCBtby5hYnMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L2NvbnN0cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0L2NvbnN0cy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgvZmxvYXQvY29uc3RzLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAw ICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9jb25zdHMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0x LDc0ICswLDAgQEAKLS1tYWNyb19ydWxlcyEgaW1wbF9mbG9hdF9jb25zdHMgewotLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50KSA9PiB7Ci0tICAgICAg ICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIE1hY2hpbmUgZXBzaWxvbiB2YWx1ZS4KLS0g ICAgICAgICAgICBwdWIgY29uc3QgRVBTSUxPTjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxl bV90eTo6RVBTSUxPTik7Ci0tCi0tICAgICAgICAgICAgLy8vIFNtYWxsZXN0IGZpbml0ZSB2YWx1 ZS4KLS0gICAgICAgICAgICBwdWIgY29uc3QgTUlOOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRl bGVtX3R5OjpNSU4pOwotLQotLSAgICAgICAgICAgIC8vLyBTbWFsbGVzdCBwb3NpdGl2ZSBub3Jt YWwgdmFsdWUuCi0tICAgICAgICAgICAgcHViIGNvbnN0IE1JTl9QT1NJVElWRTogJGlkID0gJGlk OjpzcGxhdChjb3JlOjokZWxlbV90eTo6TUlOX1BPU0lUSVZFKTsKLS0KLS0gICAgICAgICAgICAv Ly8gTGFyZ2VzdCBmaW5pdGUgdmFsdWUuCi0tICAgICAgICAgICAgcHViIGNvbnN0IE1BWDogJGlk ID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6TUFYKTsKLS0KLS0gICAgICAgICAgICAvLy8g Tm90IGEgTnVtYmVyIChOYU4pLgotLSAgICAgICAgICAgIHB1YiBjb25zdCBOQU46ICRpZCA9ICRp ZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok5BTik7Ci0tCi0tICAgICAgICAgICAgLy8vIEluZmlu aXR5ICjiiJ4pLgotLSAgICAgICAgICAgIHB1YiBjb25zdCBJTkZJTklUWTogJGlkID0gJGlkOjpz cGxhdChjb3JlOjokZWxlbV90eTo6SU5GSU5JVFkpOwotLQotLSAgICAgICAgICAgIC8vLyBOZWdh dGl2ZSBpbmZpbml0eSAoLeKInikuCi0tICAgICAgICAgICAgcHViIGNvbnN0IE5FR19JTkZJTklU WTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6TkVHX0lORklOSVRZKTsKLS0KLS0g ICAgICAgICAgICAvLy8gQXJjaGltZWRlcycgY29uc3RhbnQgKM+AKQotLSAgICAgICAgICAgIHB1 YiBjb25zdCBQSTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpQSSk7 Ci0tCi0tICAgICAgICAgICAgLy8vIM+ALzIKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19Q SV8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfMik7 Ci0tCi0tICAgICAgICAgICAgLy8vIM+ALzMKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19Q SV8zOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfMyk7 Ci0tCi0tICAgICAgICAgICAgLy8vIM+ALzQKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19Q SV80OiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfNCk7 Ci0tCi0tICAgICAgICAgICAgLy8vIM+ALzYKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19Q SV82OiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfNik7 Ci0tCi0tICAgICAgICAgICAgLy8vIM+ALzgKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ19Q SV84OiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfUElfOCk7 Ci0tCi0tICAgICAgICAgICAgLy8vIDEvz4AKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ18x X1BJOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfMV9QSSk7 Ci0tCi0tICAgICAgICAgICAgLy8vIDIvz4AKLS0gICAgICAgICAgICBwdWIgY29uc3QgRlJBQ18y X1BJOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNfMl9QSSk7 Ci0tCi0tICAgICAgICAgICAgLy8vIDIvc3FydCjPgCkKLS0gICAgICAgICAgICBwdWIgY29uc3Qg RlJBQ18yX1NRUlRfUEk6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6 RlJBQ18yX1NRUlRfUEkpOwotLQotLSAgICAgICAgICAgIC8vLyBzcXJ0KDIpCi0tICAgICAgICAg ICAgcHViIGNvbnN0IFNRUlRfMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29u c3RzOjpTUVJUXzIpOwotLQotLSAgICAgICAgICAgIC8vLyAxL3NxcnQoMikKLS0gICAgICAgICAg ICBwdWIgY29uc3QgRlJBQ18xX1NRUlRfMjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90 eTo6Y29uc3RzOjpGUkFDXzFfU1FSVF8yKTsKLS0KLS0gICAgICAgICAgICAvLy8gRXVsZXIncyBu dW1iZXIgKGUpCi0tICAgICAgICAgICAgcHViIGNvbnN0IEU6ICRpZCA9ICRpZDo6c3BsYXQoY29y ZTo6JGVsZW1fdHk6OmNvbnN0czo6RSk7Ci0tCi0tICAgICAgICAgICAgLy8vIGxvZzxzdWI+Mjwv c3ViPihlKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBMT0cyX0U6ICRpZCA9ICRpZDo6c3BsYXQo Y29yZTo6JGVsZW1fdHk6OmNvbnN0czo6TE9HMl9FKTsKLS0KLS0gICAgICAgICAgICAvLy8gbG9n PHN1Yj4xMDwvc3ViPihlKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBMT0cxMF9FOiAkaWQgPSAk aWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxPRzEwX0UpOwotLQotLSAgICAgICAg ICAgIC8vLyBsbigyKQotLSAgICAgICAgICAgIHB1YiBjb25zdCBMTl8yOiAkaWQgPSAkaWQ6OnNw bGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkxOXzIpOwotLQotLSAgICAgICAgICAgIC8vLyBs bigxMCkKLS0gICAgICAgICAgICBwdWIgY29uc3QgTE5fMTA6ICRpZCA9ICRpZDo6c3BsYXQoY29y ZTo6JGVsZW1fdHk6OmNvbnN0czo6TE5fMTApOwotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9jb3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9h dC9jb3MucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L2Nvcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29zLnJzCTE5 NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NCArMCwwIEBACi0tLy8h IEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYGNvc2AuCi0t Ci0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9jb3MgewotLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0g ICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gQ29zaW5lLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBjb3Moc2VsZikgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmNvczo6Q29zOwot LSAgICAgICAgICAgICAgICBDb3M6OmNvcyhzZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAvLy8gQ29zaW5lIG9mIGBzZWxmICogUElgLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIHB1YiBmbiBjb3NfcGkoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OmNvc19waTo6Q29zUGk7Ci0t ICAgICAgICAgICAgICAgIENvc1BpOjpjb3NfcGkoc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9tYXRoX2Nvcz5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBjb3MoKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpQSTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBwID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHBoID0gJGlkOjpzcGxhdChQSSBhcyAkZWxlbV90eSAv IDIuKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgel9yID0gJGlkOjpzcGxhdCgoUEkg YXMgJGVsZW1fdHkgLyAyLikuY29zKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBv X3IgPSAkaWQ6OnNwbGF0KChQSSBhcyAkZWxlbV90eSkuY29zKCkpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobywgei5jb3MoKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6X3IsIHBoLmNvcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG9fciwgcC5jb3MoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQot ZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L2V4cC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zs b2F0L2V4cC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvZXhwLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMzICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgZXhwYC4K LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X2V4cCB7Ci0tICAgIChbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewot LSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBleHBvbmVu dGlhbCBmdW5jdGlvbiBvZiBgc2VsZmA6IGBlXihzZWxmKWAuCi0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgcHViIGZuIGV4cChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6ZXhwOjpFeHA7Ci0tICAgICAg ICAgICAgICAgIEV4cDo6ZXhwKHNlbGYpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9leHA+ XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gZXhwKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6 ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvLCB6LmV4cCgpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZSA9ICRpZDo6c3BsYXQoY3JhdGU6OmY2NDo6Y29uc3RzOjpFIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoKGUgLSBvLmV4cCgpKS5h YnMoKS5sZSh0b2wpLmFsbCgpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbG4u cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv bG4ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzMyArMCwwIEBACi0tLy8hIEltcGxlbWVu dHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYGxuYC4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9tYXRoX2Zsb2F0X2xuIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBs ICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG5hdHVyYWwgbG9nYXJpdGhtIG9m IGBzZWxmYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbG4o c2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0 aDo6ZmxvYXQ6OmxuOjpMbjsKLS0gICAgICAgICAgICAgICAgTG46OmxuKHNlbGYpCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfbWF0aF9sbj5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBsbigpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgby5sbigpKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRpZDo6c3BsYXQoY3JhdGU6OmY2NDo6Y29uc3Rz OjpFIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlk OjpzcGxhdCgyLjRlLTQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEoKG8gLSBlLmxuKCkpLmFicygpLmxlKHRvbCkuYWxsKCkpOwotLSAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZC5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21hdGgvZmxvYXQvbXVsX2FkZC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsNDQgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5l LXdpc2UpIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9t YXRoX2Zsb2F0X211bF9hZGQgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsK LS0gICAgICAgICAgICAvLy8gRnVzZWQgbXVsdGlwbHkgYWRkOiBgc2VsZiAqIHkgKyB6YAotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtdWxfYWRkKHNlbGYsIHk6 IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNv ZGVnZW46Om1hdGg6OmZsb2F0OjptdWxfYWRkOjpNdWxBZGQ7Ci0tICAgICAgICAgICAgICAgIE11 bEFkZDo6bXVsX2FkZChzZWxmLCB5LCB6KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfbXVs X2FkZD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBtdWxfYWRkKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB0MyA9ICRpZDo6c3BsYXQoMyBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgei5tdWxfYWRkKHosIHop KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ubXVsX2FkZChvLCB6 KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLm11bF9hZGQoeiwg bykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgei5tdWxfYWRkKG8s IG8pKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIG8ubXVsX2Fk ZChvLCBvKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCBvLm11bF9h ZGQodCwgeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgdC5tdWxf YWRkKG8sIHopKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQu bXVsX2FkZCh0LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLCB0 Lm11bF9hZGQobywgdCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodDMs IHQubXVsX2FkZChvLCBvKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L211bF9h ZGRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQv bXVsX2FkZGUucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0L211bF9hZGRlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9t dWxfYWRkZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDgg KzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBv aW50IGBtdWxfYWRkZWAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9tdWxfYWRk ZSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8v LyBGdXNlZCBtdWx0aXBseSBhZGQgZXN0aW1hdGU6IH49IGBzZWxmICogeSArIHpgCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFdoaWxlIGZ1c2VkIG11bHRpcGx5LWFkZCAoYGZt YWApIGhhcyBpbmZpbml0ZSBwcmVjaXNpb24sCi0tICAgICAgICAgICAgLy8vIGBtdWxfYWRkZWAg aGFzIF9hdCB3b3JzdF8gdGhlIHNhbWUgcHJlY2lzaW9uIG9mIGEgbXVsdGlwbHkgZm9sbG93ZWQg YnkgYW4gYWRkLgotLSAgICAgICAgICAgIC8vLyBUaGlzIG1pZ2h0IGJlIG1vcmUgZWZmaWNpZW50 IG9uIGFyY2hpdGVjdHVyZXMgdGhhdCBkbyBub3QgaGF2ZSBhbiBgZm1hYCBpbnN0cnVjdGlvbi4K LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbXVsX2FkZGUoc2Vs ZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6Om11bF9hZGRlOjpNdWxBZGRFOwotLSAgICAgICAgICAg ICAgICBNdWxBZGRFOjptdWxfYWRkZShzZWxmLCB5LCB6KQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X21hdGhfbXVsX2FkZGU+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gbXVsX2FkZGUoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQzID0gJGlkOjpzcGxhdCgzIGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAk ZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCB6Lm11 bF9hZGRlKHosIHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8u bXVsX2FkZGUobywgeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywg by5tdWxfYWRkZSh6LCBvKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv LCB6Lm11bF9hZGRlKG8sIG8pKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQsIG8ubXVsX2FkZGUobywgbykpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCwgby5tdWxfYWRkZSh0LCB6KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0LCB0Lm11bF9hZGRlKG8sIHopKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYsIHQubXVsX2FkZGUodCwgeikpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoZiwgdC5tdWxfYWRkZShvLCB0KSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0MywgdC5tdWxfYWRkZShvLCBvKSk7Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9wb3dmLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwzNiArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRp bmctcG9pbnQgYHBvd2ZgLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfcG93ZiB7 Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBS YWlzZXMgYHNlbGZgIG51bWJlciB0byB0aGUgZmxvYXRpbmcgcG9pbnQgcG93ZXIgb2YgYHhgLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBwb3dmKHNlbGYsIHg6 IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1h dGg6OmZsb2F0Ojpwb3dmOjpQb3dmOwotLSAgICAgICAgICAgICAgICBQb3dmOjpwb3dmKHNlbGYs IHgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0t ICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9wb3dmPl0gewotLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0g Indhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHBv d2YoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMg JGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgx IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3Bs YXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv LCBvLnBvd2YoeikpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgdC5w b3dmKHopKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ucG93Zihv KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCB0LnBvd2YobykpOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQucG93Zih0KSk7 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JlY3ByZS5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yZWNwcmUucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM2ICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyB2 ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgcmVjcHJlYC4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3JlY3ByZSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAg aW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBSZWNpcHJvY2FsIGVzdGltYXRlOiBgfj0gMS4g LyBzZWxmYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gRklYTUU6IFRoZSBw cmVjaXNpb24gb2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRseSB1bnNwZWNpZmllZC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gcmVjcHJlKHNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KDEuKSAvIHNlbGYKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9tYXRoX3JlY3ByZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiByZWNwcmUoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00IGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKG8gLSBvLnJl Y3ByZSgpKS5hYnMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxl KHRvbCkuYWxsKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpz cGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9IDAu NTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAoZSAtIHQucmVjcHJlKCkp LmFicygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5h bGwoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRl LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQwICswLDAgQEAKLS0vLyEgSW1wbGVt ZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgcnNxcnRlYC4KLS0KLS1t YWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3JzcXJ0ZSB7Ci0tICAgIChbJGVsZW1fdHk6aWRl bnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAg ICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBSZWNpcHJvY2FsIHNxdWFyZS1yb290 IGVzdGltYXRlOiBgfj0gMS4gLyBzZWxmLnNxcnQoKWAuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIEZJWE1FOiBUaGUgcHJlY2lzaW9uIG9mIHRoZSBlc3RpbWF0ZSBpcyBjdXJy ZW50bHkgdW5zcGVjaWZpZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg cHViIGZuIHJzcXJ0ZShzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9mc3FydDsKLS0gICAg ICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMS4pIC8gU2ltZChzaW1kX2ZzcXJ0KHNlbGYuMCkp Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3JzcXJ0ZT5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiByc3FydGUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJUXzI7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKG8gLSBvLnJzcXJ0ZSgpKS5hYnMoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9IDEuIC8gU1FSVF8yOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChlIC0gdC5yc3FydGUoKSkuYWJzKCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc2luLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc2luLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4ucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsNTAgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdp c2UpIGZsb2F0aW5nLXBvaW50IGBzaW5gLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxv YXRfc2luIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAg ICAgLy8vIFNpbmUuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IHNpbihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2Vu OjptYXRoOjpmbG9hdDo6c2luOjpTaW47Ci0tICAgICAgICAgICAgICAgIFNpbjo6c2luKHNlbGYp Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBTaW5lIG9mIGBzZWxmICogUElg LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBzaW5fcGkoc2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6 ZmxvYXQ6OnNpbl9waTo6U2luUGk7Ci0tICAgICAgICAgICAgICAgIFNpblBpOjpzaW5fcGkoc2Vs ZikKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFNpbmUgYW5kIGNvc2luZSBv ZiBgc2VsZiAqIFBJYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gc2luX2Nvc19waShzZWxmKSAtPiAoU2VsZiwgU2VsZikgewotLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzaW5fY29zX3BpOjpTaW5Db3NQaTsKLS0g ICAgICAgICAgICAgICAgU2luQ29zUGk6OnNpbl9jb3NfcGkoc2VsZikKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9tYXRoX3Npbj5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaW4oKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpQSTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHAgPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGggPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5 IC8gMi4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvX3IgPSAkaWQ6OnNwbGF0KChQ SSBhcyAkZWxlbV90eSAvIDIuKS5zaW4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHpfciA9ICRpZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5KS5zaW4oKSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCB6LnNpbigpKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG9fciwgcGguc2luKCkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoel9yLCBwLnNpbigpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19 Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgv ZmxvYXQvc3FydC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo L2Zsb2F0L3NxcnQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9tYXRoL2Zsb2F0L3NxcnQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Nx cnQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM1ICswLDAg QEAKLS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBg c3FydGAuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zcXJ0IHsKLS0gICAgKFsk ZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0 KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgcHViIGZuIHNxcnQoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnNxcnQ6OlNxcnQ7Ci0tICAgICAgICAgICAg ICAgIFNxcnQ6OnNxcnQoc2VsZikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3NxcnQ+XSB7 Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAg ICAgICAgICAgICAgZm4gc3FydCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiwgei5zcXJ0KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEobywgby5zcXJ0KCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgZSA9ICRpZDo6c3BsYXQoU1FSVF8yKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGUsIHQuc3FydCgpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvc3FydGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9m bG9hdC9zcXJ0ZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvc3FydGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Nx cnRlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0NCArMCww IEBACi0tLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQg YHNxcnRlYC4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X3NxcnRlIHsKLS0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0 OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFNxdWFyZS1y b290IGVzdGltYXRlLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBGSVhNRTog VGhlIHByZWNpc2lvbiBvZiB0aGUgZXN0aW1hdGUgaXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBzcXJ0ZShzZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9h dDo6c3FydGU6OlNxcnRlOwotLSAgICAgICAgICAgICAgICBTcXJ0ZTo6c3FydGUoc2VsZikKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAg ICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9tYXRoX3NxcnRlPl0gewotLSAgICAgICAgICAgICAgICAgICAg dXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNxcnRlKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6JGVsZW1fdHk6OmNvbnN0czo6 U1FSVF8yOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wgPSAkaWQ6OnNwbGF0KDIu NGUtNCBhcyAkZWxlbV90eSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAk aWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBl cnJvciA9ICh6IC0gei5zcXJ0ZSgpKS5hYnMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnQhKGVycm9yLmxlKHRvbCkuYWxsKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgZXJyb3IgPSAobyAtIG8uc3FydGUoKSkuYWJzKCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KFNRUlRfMiBhcyAkZWxlbV90eSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKGUgLSB0LnNxcnRlKCkpLmFicygp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwo KSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvbWF0aC9mbG9hdC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsNjEgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IG1h dGggb3BlcmF0aW9ucy4KLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgYWJzOwotLQotLSNbbWFjcm9f dXNlXQotLW1vZCBjb25zdHM7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGNvczsKLS0KLS0jW21h Y3JvX3VzZV0KLS1tb2QgZXhwOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBwb3dmOwotLQotLSNb bWFjcm9fdXNlXQotLW1vZCBsbjsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgbXVsX2FkZDsKLS0K LS0jW21hY3JvX3VzZV0KLS1tb2QgbXVsX2FkZGU7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHJl Y3ByZTsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgcnNxcnRlOwotLQotLSNbbWFjcm9fdXNlXQot LW1vZCBzaW47Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHNxcnQ7Ci0tCi0tI1ttYWNyb191c2Vd Ci0tbW9kIHNxcnRlOwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2Zsb2F0X2NhdGVnb3J5IHsKLS0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1hc2tf dHk6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBwdWIgZm4gaXNfbmFuKHNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAg ICAgICAgICAgICAgc2VsZi5uZShzZWxmKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gaXNfaW5maW5pdGUoc2VsZikgLT4gJG1h c2tfdHkgewotLSAgICAgICAgICAgICAgICBzZWxmLmVxKFNlbGY6OklORklOSVRZKSB8IHNlbGYu ZXEoU2VsZjo6TkVHX0lORklOSVRZKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gaXNfZmluaXRlKHNlbGYpIC0+ICRtYXNrX3R5 IHsKLS0gICAgICAgICAgICAgICAgIShzZWxmLmlzX25hbigpIHwgc2VsZi5pc19pbmZpbml0ZSgp KQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRo LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw0ICswLDAgQEAK LS0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCBtYXRoIG9wZXJhdGlvbnMKLS0KLS0jW21hY3JvX3Vz ZV0KLS1tb2QgZmxvYXQ7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21pbmltYWwvaXVmLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL21pbmltYWwvaXVmLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvbWluaW1hbC9pdWYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFsL2l1 Zi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTY5ICswLDAg QEAKLS0vLyEgTWluaW1hbCBBUEkgb2Ygc2lnbmVkIGludGVnZXIsIHVuc2lnbmVkIGludGVnZXIs IGFuZCBmbG9hdGluZy1wb2ludAotLS8vISB2ZWN0b3JzLgotLQotLW1hY3JvX3J1bGVzISBpbXBs X21pbmltYWxfaXVmIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudCB8Ci0tICAgICAkdGVzdF90dDp0dCB8ICQoJGVs ZW1fbmFtZTppZGVudCksKyB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0KLS0gICAgICAgICQo I1skZG9jXSkqCi0tICAgICAgICBwdWIgdHlwZSAkaWQgPSBTaW1kPFskZWxlbV90eTsgJGVsZW1f Y291bnRdPjsKLS0KLS0gICAgICAgIGltcGwgc2VhbGVkOjpTaW1kIGZvciAkaWQgewotLSAgICAg ICAgICAgIHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5OwotLSAgICAgICAgICAgIGNvbnN0IExBTkVT OiB1c2l6ZSA9ICRlbGVtX2NvdW50OwotLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3Uz MjsgJGVsZW1fY291bnRdOwotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCAkaWQgewotLSAg ICAgICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCB2ZWN0b3IgZWxl bWVudHMgaW5pdGlhbGl6ZWQKLS0gICAgICAgICAgICAvLy8gd2l0aCB0aGUgcHJvdmlkZWQgdmFs dWVzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5 Ojp0b29fbWFueV9hcmd1bWVudHMpXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBuZXcoJCgk ZWxlbV9uYW1lOiAkZWxlbV90eSksKikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNpbWQo Y29kZWdlbjo6JGlkKCQoJGVsZW1fbmFtZSBhcyAkaWVsZW1fdHkpLCopKQotLSAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHZlY3RvciBsYW5l cy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgY29uc3QgZm4gbGFu ZXMoKSAtPiB1c2l6ZSB7Ci0tICAgICAgICAgICAgICAgICRlbGVtX2NvdW50Ci0tICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIHdpdGgg ZWFjaCBlbGVtZW50IGluaXRpYWxpemVkIHRvCi0tICAgICAgICAgICAgLy8vIGB2YWx1ZWAuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGNvbnN0IGZuIHNwbGF0KHZh bHVlOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6 JGlkKCQoewotLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhub25fY2FtZWxfY2FzZV90eXBl cywgZGVhZF9jb2RlKV0KLS0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCAkZWxlbV9uYW1lOwot LSAgICAgICAgICAgICAgICAgICAgdmFsdWUgYXMgJGllbGVtX3R5Ci0tICAgICAgICAgICAgICAg IH0pLCopKQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhl IHZhbHVlIGF0IGBpbmRleGAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMg UGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBT ZWxmOjpsYW5lcygpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gZXh0cmFjdChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAg ICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5z YWZlIHsgc2VsZi5leHRyYWN0X3VuY2hlY2tlZChpbmRleCkgfQotLSAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3Ig aXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1 bnNhZmUgZm4gZXh0cmFjdF91bmNoZWNrZWQoc2VsZiwgaW5kZXg6IHVzaXplKSAtPiAkZWxlbV90 eSB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9leHRyYWN0OwotLSAg ICAgICAgICAgICAgICBsZXQgZTogJGllbGVtX3R5ID0gc2ltZF9leHRyYWN0KHNlbGYuMCwgaW5k ZXggYXMgdTMyKTsKLS0gICAgICAgICAgICAgICAgZSBhcyAkZWxlbV90eQotLSAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hlcmUgdGhlIHZh bHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWAuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICAjW211c3RfdXNlID0gInJlcGxhY2UgZG9lcyBub3QgbW9kaWZ5 IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGl0IHJl dHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgotLSAgICAgICAgICAg IF0KLS0gICAgICAgICAgICBwdWIgZm4gcmVwbGFjZShzZWxmLCBpbmRleDogdXNpemUsIG5ld192 YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4 IDwgJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLnJlcGxhY2Vf dW5jaGVja2VkKGluZGV4LCBuZXdfdmFsdWUpIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAg ICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhg IGlzIHJlcGxhY2VkIGJ5IGBuZXdfdmFsdWVgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBg aW5kZXggPj0gU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW211c3RfdXNlID0gInJlcGxhY2VfdW5j aGVja2VkIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2YWx1ZSBh dCBgaW5kZXhgIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5IGBuZXdf dmFsdWVgZCIKLS0gICAgICAgICAgICBdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiByZXBs YWNlX3VuY2hlY2tlZCgKLS0gICAgICAgICAgICAgICAgc2VsZiwKLS0gICAgICAgICAgICAgICAg aW5kZXg6IHVzaXplLAotLSAgICAgICAgICAgICAgICBuZXdfdmFsdWU6ICRlbGVtX3R5LAotLSAg ICAgICAgICAgICkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6 c2ltZF9pbnNlcnQ7Ci0tICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9pbnNlcnQoc2VsZi4wLCBp bmRleCBhcyB1MzIsIG5ld192YWx1ZSBhcyAkaWVsZW1fdHkpKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIC8vIENvbXBhcmlz b25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAg ICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg Zm4gbWluaW1hbCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBsYW5lczoKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCRlbGVtX2NvdW50LCAkaWQ6OmxhbmVzKCkp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwbGF0IGFuZCBleHRyYWN0IC8gZXh0 cmFjdF91bmNoZWNrZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVkFMOiAkZWxl bV90eSA9IDcgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVkVD OiAkaWQgPSAkaWQ6OnNwbGF0KFZBTCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShWQUwsIFZFQy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZBTCwgdW5zYWZl IHsgVkVDLmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCi0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG5ld192ZWMgPSBWRUMucmVwbGFjZSgwLCA0MiBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoNDIgYXMgJGVsZW1fdHksIG5ld192ZWMuZXh0cmFjdChpKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTCwgbmV3X3ZlYy5leHRyYWN0KGkpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3X3ZlYyA9IHVuc2FmZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFZFQy5yZXBsYWNlX3VuY2hlY2tlZCgwLCA0MiBhcyAkZWxl bV90eSkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGkgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKDQyIGFzICRlbGVtX3R5LCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShWQUwsIG5ld192ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRl c3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAg ICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFu aWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiBleHRyYWN0X3BhbmljX29vYigpIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRlbGVtX3R5ID0gNyBhcyAkZWxlbV90eTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWRUM6ICRpZCA9ICRpZDo6c3BsYXQoVkFM KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IFZFQy5leHRyYWN0KCRpZDo6bGFu ZXMoKSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10K LS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAg ICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiByZXBsYWNl X3BhbmljX29vYigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWQUw6ICRlbGVt X3R5ID0gNyBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWRUM6 ICRpZCA9ICRpZDo6c3BsYXQoVkFMKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9 IFZFQy5yZXBsYWNlKCRpZDo6bGFuZXMoKSwgNDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9taW5pbWFsL21hc2sucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWluaW1hbC9tYXNrLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvbWluaW1hbC9tYXNrLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9t YXNrLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNzYgKzAs MCBAQAotLS8vISBNaW5pbWFsIEFQSSBvZiBtYXNrIHZlY3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMh IGltcGxfbWluaW1hbF9tYXNrIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6 ZXhwcl06ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudAotLSAgICB8ICR0ZXN0X3R0OnR0IHwg JCgkZWxlbV9uYW1lOmlkZW50KSwrIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4gewotLSAgICAgICAg JCgjWyRkb2NdKSoKLS0gICAgICAgIHB1YiB0eXBlICRpZCA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxl bV9jb3VudF0+OwotLQotLSAgICAgICAgaW1wbCBzZWFsZWQ6OlNpbWQgZm9yICRpZCB7Ci0tICAg ICAgICAgICAgdHlwZSBFbGVtZW50ID0gJGVsZW1fdHk7Ci0tICAgICAgICAgICAgY29uc3QgTEFO RVM6IHVzaXplID0gJGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBb dTMyOyAkZWxlbV9jb3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsICRpZCB7Ci0t ICAgICAgICAgICAgLy8vIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBl bGVtZW50cyBpbml0aWFsaXplZAotLSAgICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2 YWx1ZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlw cHk6OnRvb19tYW55X2FyZ3VtZW50cyldCi0tICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygk KCRlbGVtX25hbWU6IGJvb2wpLCopIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBTaW1kKGNv ZGVnZW46OiRpZCgkKFNlbGY6OmJvb2xfdG9faW50ZXJuYWwoJGVsZW1fbmFtZSkpLCopKQotLSAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gQ29udmVydHMgYSBib29sZWFuIHR5cGUg aW50byB0aGUgdHlwZSBvZiB0aGUgdmVjdG9yIGxhbmVzLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjppbmRleGluZ19zbGljaW5nKV0KLS0gICAg ICAgICAgICBjb25zdCBmbiBib29sX3RvX2ludGVybmFsKHg6IGJvb2wpIC0+ICRpZWxlbV90eSB7 Ci0tICAgICAgICAgICAgICAgIFswIGFzICRpZWxlbV90eSwgISgwIGFzICRpZWxlbV90eSldW3gg YXMgdXNpemVdCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRo ZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHB1YiBjb25zdCBmbiBsYW5lcygpIC0+IHVzaXplIHsKLS0gICAgICAgICAgICAgICAg JGVsZW1fY291bnQKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnN0cnVj dHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQgaW5pdGlhbGl6ZWQgdG8KLS0gICAg ICAgICAgICAvLy8gYHZhbHVlYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgY29uc3QgZm4gc3BsYXQodmFsdWU6IGJvb2wpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICBTaW1kKGNvZGVnZW46OiRpZCgkKHsKLS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3co bm9uX2NhbWVsX2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCi0tICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgJGVsZW1fbmFtZTsKLS0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmJvb2xfdG9faW50 ZXJuYWwodmFsdWUpCi0tICAgICAgICAgICAgICAgIH0pLCopKQotLSAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZXh0cmFjdChzZWxmLCBpbmRleDogdXNp emUpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291 bnQpOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLmV4dHJhY3RfdW5jaGVja2VkKGlu ZGV4KSB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUg dmFsdWUgYXQgYGluZGV4YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBT YWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNl bGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBleHRyYWN0X3VuY2hlY2tlZChzZWxm LCBpbmRleDogdXNpemUpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxs dm06OnNpbWRfZXh0cmFjdDsKLS0gICAgICAgICAgICAgICAgbGV0IHg6ICRpZWxlbV90eSA9IHNp bWRfZXh0cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMik7Ci0tICAgICAgICAgICAgICAgIHggIT0g MAotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0 b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkKLS0gICAgICAgICAg ICAvLy8gYG5ld192YWx1ZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMg UGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBT ZWxmOjpsYW5lcygpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW211 c3RfdXNlID0gInJlcGxhY2UgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGgg dGhlIHZhbHVlIGF0IGBpbmRleGAgXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFj ZWQgYnkgYG5ld192YWx1ZWBkIgotLSAgICAgICAgICAgIF0KLS0gICAgICAgICAgICBwdWIgZm4g cmVwbGFjZShzZWxmLCBpbmRleDogdXNpemUsIG5ld192YWx1ZTogYm9vbCkgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7IHNlbGYucmVwbGFjZV91bmNoZWNrZWQoaW5kZXgsIG5ld192YWx1ZSkg fQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0 b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkKLS0gICAgICAgICAg ICAvLy8gYG5ld192YWx1ZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMg U2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBT ZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZV91bmNoZWNrZWQgZG9l cyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAg XAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgot LSAgICAgICAgICAgIF0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlcGxhY2VfdW5jaGVj a2VkKAotLSAgICAgICAgICAgICAgICBzZWxmLAotLSAgICAgICAgICAgICAgICBpbmRleDogdXNp emUsCi0tICAgICAgICAgICAgICAgIG5ld192YWx1ZTogYm9vbCwKLS0gICAgICAgICAgICApIC0+ IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfaW5zZXJ0Owot LSAgICAgICAgICAgICAgICBTaW1kKHNpbWRfaW5zZXJ0KHNlbGYuMCwgaW5kZXggYXMgdTMyLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGY6OmJvb2xfdG9faW50ZXJuYWwo bmV3X3ZhbHVlKSkpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVz dF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgZm4gbWluaW1hbCgpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBUT0RPOiB0ZXN0IG5ldwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IGxhbmVzOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGVsZW1fY291bnQs ICRpZDo6bGFuZXMoKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5k IGV4dHJhY3QgLyBleHRyYWN0X3VuY2hlY2tlZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdmVjID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHRydWUsIHZlYy5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0cnVlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7IHZlYy5leHRyYWN0X3VuY2hlY2tlZChpKSB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgLyByZXBsYWNlX3VuY2hlY2tlZAotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gdmVjLnJlcGxhY2UoMCwgZmFsc2UpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGZhbHNlLCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0cnVlLCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmVjLnJlcGxhY2VfdW5jaGVja2VkKDAsIGZhbHNlKQotLSAgICAgICAg ICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmFsc2UsIG5ld192 ZWMuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRydWUsIG5ld192ZWMu ZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3No b3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAg ICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bh bmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZXh0cmFjdF9wYW5pY19vb2IoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoZmFsc2UpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBfID0gdmVjLmV4dHJhY3QoJGlkOjpsYW5lcygpKTsKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNt LWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAg ICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0 XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAg ICAgICBmbiByZXBsYWNlX3BhbmljX29vYigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdmVjID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IF8gPSB2ZWMucmVwbGFjZSgkaWQ6OmxhbmVzKCksIHRydWUpOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9taW5pbWFsL3B0ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t aW5pbWFsL3B0ci5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21pbmltYWwvcHRyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9wdHIucnMJMTk3 MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzNzMgKzAsMCBAQAotLS8v ISBNaW5pbWFsIEFQSSBvZiBwb2ludGVyIHZlY3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxf bWluaW1hbF9wIHsKLS0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDpp ZGVudCwgJG1hc2tfdHk6aWRlbnQsCi0tICAgICAkdXNpemVfdHk6aWRlbnQsICRpc2l6ZV90eTpp ZGVudCB8ICRyZWY6aWRlbnQgfCAkdGVzdF90dDp0dAotLSAgICAgfCAkKCRlbGVtX25hbWU6aWRl bnQpLCsgfCAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpIHwKLS0gICAgICQoI1skZG9jOm1ldGFd KSopID0+IHsKLS0KLS0gICAgICAgICQoI1skZG9jXSkqCi0tICAgICAgICBwdWIgdHlwZSAkaWQ8 VD4gPSBTaW1kPFskZWxlbV90eTsgJGVsZW1fY291bnRdPjsKLS0KLS0gICAgICAgIGltcGw8VD4g c2VhbGVkOjpTaW1kIGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgIHR5cGUgRWxlbWVudCA9ICRl bGVtX3R5OwotLSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1c2l6ZSA9ICRlbGVtX2NvdW50Owot LSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVsZW1fY291bnRdOwotLSAgICAg ICAgfQotLQotLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4gewotLSAgICAgICAgICAgIC8vLyBDcmVh dGVzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCB2ZWN0b3IgZWxlbWVudHMgaW5pdGlhbGl6ZWQK LS0gICAgICAgICAgICAvLy8gd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWVzLgotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp0b29fbWFueV9hcmd1bWVu dHMpXQotLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBuZXcoJCgkZWxlbV9uYW1lOiAkZWxlbV90 eSksKikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIFNpbWQoY29kZWdlbjo6JGlkKCQoJGVs ZW1fbmFtZSksKikpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5z IHRoZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBjb25zdCBmbiBsYW5lcygpIC0+IHVzaXplIHsKLS0gICAgICAgICAgICAg ICAgJGVsZW1fY291bnQKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnN0 cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQgaW5pdGlhbGl6ZWQgdG8KLS0g ICAgICAgICAgICAvLy8gYHZhbHVlYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBwdWIgY29uc3QgZm4gc3BsYXQodmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAg ICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCh7Ci0tICAgICAgICAgICAgICAgICAgICAj W2FsbG93KG5vbl9jYW1lbF9jYXNlX3R5cGVzLCBkZWFkX2NvZGUpXQotLSAgICAgICAgICAgICAg ICAgICAgc3RydWN0ICRlbGVtX25hbWU7Ci0tICAgICAgICAgICAgICAgICAgICB2YWx1ZQotLSAg ICAgICAgICAgICAgICB9KSwqKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8v IENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQgaW5pdGlhbGl6ZWQg dG8KLS0gICAgICAgICAgICAvLy8gYG51bGxgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBjb25zdCBmbiBudWxsKCkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg IFNlbGY6OnNwbGF0KGNyYXRlOjpwdHI6Om51bGxfbXV0KCkgYXMgJGVsZW1fdHkpCi0tICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbWFzayB0aGF0IHNlbGVjdHMg dGhvc2UgbGFuZXMgdGhhdCBjb250YWluIGBudWxsYAotLSAgICAgICAgICAgIC8vLyBwb2ludGVy cy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gaXNfbnVsbChz ZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuZXEoU2VsZjo6bnVsbCgp KQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVl IGF0IGBpbmRleGAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgUGFuaWNz Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjps YW5lcygpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZXh0 cmFjdChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAg YXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsg c2VsZi5leHRyYWN0X3VuY2hlY2tlZChpbmRleCkgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCi0tICAgICAgICAgICAg Ly8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5k ZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUg Zm4gZXh0cmFjdF91bmNoZWNrZWQoc2VsZiwgaW5kZXg6IHVzaXplKSAtPiAkZWxlbV90eSB7Ci0t ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9leHRyYWN0OwotLSAgICAgICAg ICAgICAgICBzaW1kX2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBhcyB1MzIpCi0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3aGVyZSB0aGUgdmFs dWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQotLSAgICAgICAgICAgIC8vLyBgbmV3X3ZhbHVl YC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFj ZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0gXAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGlu ZGV4YCBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVl YGQiCi0tICAgICAgICAgICAgXQotLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojpub3RfdW5z YWZlX3B0cl9hcmdfZGVyZWYpXQotLSAgICAgICAgICAgIHB1YiBmbiByZXBsYWNlKHNlbGYsIGlu ZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAg ICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IHNlbGYucmVwbGFjZV91bmNoZWNrZWQoaW5kZXgsIG5ld192YWx1ZSkgfQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hlcmUgdGhl IHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWAuCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMg dW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbbXVzdF91 c2UgPSAicmVwbGFjZV91bmNoZWNrZWQgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1 ZSAtIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9y IHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg cmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgotLSAgICAgICAgICAgIF0KLS0gICAgICAgICAgICBw dWIgdW5zYWZlIGZuIHJlcGxhY2VfdW5jaGVja2VkKAotLSAgICAgICAgICAgICAgICBzZWxmLAot LSAgICAgICAgICAgICAgICBpbmRleDogdXNpemUsCi0tICAgICAgICAgICAgICAgIG5ld192YWx1 ZTogJGVsZW1fdHksCi0tICAgICAgICAgICAgKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjpsbHZtOjpzaW1kX2luc2VydDsKLS0gICAgICAgICAgICAgICAgU2ltZChzaW1k X2luc2VydChzZWxmLjAsIGluZGV4IGFzIHUzMiwgbmV3X3ZhbHVlKSkKLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tCi0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVz dF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9taW5pbWFsPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBm biBtaW5pbWFsKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmVzOgotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGVsZW1fY291bnQsICRpZDo6PGkzMj46Omxh bmVzKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwbGF0IGFuZCBleHRyYWN0 IC8gZXh0cmFjdF91bmNoZWNrZWQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDc6 IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gJHJlZiEoNyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDQy OiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICA9ICRyZWYhKDQyKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkVD OiAkaWQ8aTMyPiA9ICRpZDo6c3BsYXQoVkFMNyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoVkFMNywgVkVDLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVkFMNywgdW5zYWZlIHsgVkVDLmV4dHJhY3RfdW5jaGVja2VkKGkpIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSAvIHJlcGxhY2VfdW5jaGVja2VkCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSBWRUMucmVwbGFjZSgwLCBWQUw0Mik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDQyLCBuZXdfdmVjLmV4dHJhY3Qo aSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUw3LCBuZXdfdmVjLmV4dHJhY3QoaSkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gdW5zYWZlIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDLnJlcGxhY2VfdW5jaGVja2VkKDAsIFZBTDQy KQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGkgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKFZBTDQyLCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShWQUw3LCBuZXdfdmVjLmV4dHJhY3QoaSkpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgbiA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpzcGxhdCh1bnNhZmUgeyBjcmF0 ZTo6bWVtOjp6ZXJvZWQoKSB9KQotLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShuLmlzX251bGwoKS5hbGwoKSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbiA9IG4ucmVwbGFjZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgMCwgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpIH0KLS0gICAgICAg ICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIW4u aXNfbnVsbCgpLmFsbCgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OjxpMzI+ OjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobi5p c19udWxsKCkuYW55KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIW4uaXNfbnVsbCgpLmFueSgpKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3Vw cG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp KV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNb c2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZXh0cmFjdF9wYW5pY19vb2Io KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDogPCRpZDxpMzI+IGFzIHNlYWxl ZDo6U2ltZD46OkVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAkcmVmISg3 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkVDOiAkaWQ8aTMyPiA9ICRpZDo6c3Bs YXQoVkFMKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IFZFQy5leHRyYWN0KCRp ZDo6PGkzMj46OmxhbmVzKCkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQg I1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0t ICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3Vs ZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxhY2VfcGFuaWNfb29iKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWQUw6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNp bWQ+OjpFbGVtZW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJlZiEoNyk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDQyOiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpT aW1kPjo6RWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYhKDQyKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkVDOiAkaWQ8aTMyPiA9ICRpZDo6c3BsYXQo VkFMKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IFZFQy5yZXBsYWNlKCRpZDo6 PGkzMj46OmxhbmVzKCksIFZBTDQyKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8 VD4gY3JhdGU6OmZtdDo6RGVidWcgZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCi0tICAgICAgICAgICAgZm4g Zm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRlcjwnXz4pCi0tICAgICAgICAg ICAgICAgICAgIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7Ci0tICAgICAgICAgICAgICAgIHdyaXRl ISgKLS0gICAgICAgICAgICAgICAgICAgIGYsCi0tICAgICAgICAgICAgICAgICAgICAie308e30+ KCIsCi0tICAgICAgICAgICAgICAgICAgICBzdHJpbmdpZnkhKCRpZCksCi0tICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6aW50cmluc2ljczo6dHlwZV9uYW1lOjo8VD4oKQotLSAgICAgICAgICAg ICAgICApPzsKLS0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAg ICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHdy aXRlIShmLCAiLCAiKT87Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICB3cml0ZSEoZiwgIikiKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0K LS0gICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAg ICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfZGVi dWc+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGRlYnVnKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5VmVj fTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0cmlu ZzxbdTg7IDUxMl0+OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Zm10 OjpXcml0ZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6PGkzMj46OmRl ZmF1bHQoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3RyaW5n OjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezo/fSIs IHYpLnVud3JhcCgpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0g VGlueVN0cmluZzo6bmV3KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQg YmVnLCAie308aTMyPigiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuc3Rh cnRzX3dpdGgoYmVnLmFzX3N0cigpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInMg PSB7fSAoc2hvdWxkIHN0YXJ0IHdpdGggPSB7fSkiLCBzLCBiZWcKLS0gICAgICAgICAgICAgICAg ICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgo IikiKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3Ry aW5nOyA2NF0+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5h c19zdHIoKSwgIiIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCIpIiwg IiIpLnNwbGl0KCIsIikKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlu eVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53cmFwKCkpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC5jb2xsZWN0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShz LmxlbigpLCAkaWQ6OjxpMzI+OjpsYW5lcygpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAiezo/fSIsIHYuZXh0cmFjdChp bmRleCkpLnVud3JhcCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHNzLCBlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgfQotLQot LSAgICAgICAgaW1wbDxUPiBEZWZhdWx0IGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgLy8gRklYTUU6IHB0cnMgZG8gbm90IGltcGxlbWVudCBkZWZhdWx0Ci0tICAgICAgICAgICAg ICAgIFNlbGY6Om51bGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2RlZmF1bHQ+XSB7Ci0tICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGRlZmF1bHQoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhLmV4dHJhY3QoaSksIHVuc2FmZSB7IGNyYXRlOjptZW06Onplcm9lZCgpIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7Ci0tICAgICAgICAg ICAgLy8vIExhbmUtd2lzZSBlcXVhbGl0eSBjb21wYXJpc29uLgotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBlcShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tf dHkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpsbHZtOjpzaW1kX2VxOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6 ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAg IGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOwotLSAgICAg ICAgICAgICAgICAgICAgU2ltZChzaW1kX2VxKGEuMCwgYi4wKSkKLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGluZXF1YWxp dHkgY29tcGFyaXNvbi4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gbmUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAg dW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9uZTsK LS0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2lt ZF9uZShhLjAsIGIuMCkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4gY29tcGFyaXNvbi4KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbHQoc2VsZiwgb3RoZXI6IFNlbGYp IC0+ICRtYXNrX3R5IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9sdDsKLS0gICAgICAgICAgICAgICAgICAgIGxl dCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAg ICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVy KTsKLS0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9sdChhLjAsIGIuMCkpCi0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIExhbmUtd2lz ZSBsZXNzLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgcHViIGZuIGxlKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OnNpbWRfbGU7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5 ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0 IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7Ci0tICAgICAgICAg ICAgICAgICAgICBTaW1kKHNpbWRfbGUoYS4wLCBiLjApKQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZ3JlYXRlci10aGFu IGNvbXBhcmlzb24uCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZu IGd0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZ3Q7Ci0t ICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRl OjptZW06OnRyYW5zbXV0ZShvdGhlcik7Ci0tICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRf Z3QoYS4wLCBiLjApKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZ3JlYXRlci10aGFuLW9yLWVxdWFscyBjb21wYXJpc29u LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBnZShzZWxmLCBv dGhlcjogU2VsZikgLT4gJG1hc2tfdHkgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2dlOwotLSAgICAgICAgICAg ICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsK LS0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUob3RoZXIpOwotLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX2dlKGEuMCwgYi4w KSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF92ZXJ0aWNh bD5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gY21wKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVsbCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3BsYXQodW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHIgPSBhLmx0KGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJG1hc2tf dHk6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEubGUoYik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgciA9IGEuZ3QoYik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShy ID09IGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5nZShiKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHIgPSBhLmVxKGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo ciA9PSBlKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSBhOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IGI7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBlID0gZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg aSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBs YWNlKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KDBfaXNpemUpIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpIH0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlID0gZS5yZXBsYWNlKGksIHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFj ZSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgx X2lzaXplKSB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgwX2lzaXplKSB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZSA9IGUucmVwbGFjZShpLCBmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHIgPSBhLmx0KGIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEociA9PSBl KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFf bmVfaW1wbCldCi0tICAgICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6OlBhcnRpYWxFcTwkaWQ8VD4+ IGZvciAkaWQ8VD4gewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGVx KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAkaWQ6OjxU Pjo6ZXEoKnNlbGYsICpvdGhlcikuYWxsKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9v bCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6PFQ+OjpuZSgqc2VsZiwgKm90aGVyKS5hbnkoKQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlwcHkvaXNzdWVzLzI4OTIKLS0g ICAgICAgICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCi0tICAgICAgICBpbXBs PFQ+IGNyYXRlOjpjbXA6OlBhcnRpYWxFcTxMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPFQ+ Pj4KLS0gICAgICAgICAgICBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZDxUPj4KLS0g ICAgICAgIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBlcSgmc2Vs Ziwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wID09IG90 aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAg IHNlbGYuMCAhPSBvdGhlci4wCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6 Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfY21wX1BhcnRpYWxFcT5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gcGFydGlhbF9lcSgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46OnNwbGF0KHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgxX2lzaXpl KQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoYSAhPSBiKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEo YSA9PSBiKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGEpKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBpZiAkaWQ6OjxpMzI+OjpsYW5lcygpID4gMSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVsbCgpLnJlcGxhY2UoMCwgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5z bXV0ZSgxX2lzaXplKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OjxpMzI+OjpzcGxhdCh1bnNhZmUgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFf aXNpemUpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoIShhID09IGIpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShhID09IGEpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEo YSAhPSBhKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQot LSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Y21wOjpFcSBmb3IgJGlkPFQ+IHt9Ci0tICAgICAgICBp bXBsPFQ+IGNyYXRlOjpjbXA6OkVxIGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPFQ+ PiB7fQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf Y21wX2VxPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBlcSgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBmbiBmb288RTogY3JhdGU6OmNtcDo6RXE+KF86IEUpIHt9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgZm9vKGEpOwotLSAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgaW1wbDxUPiBGcm9tPFskZWxlbV90eTsgJGVsZW1fY291bnRdPiBmb3IgJGlkPFQ+IHsKLS0g ICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBmcm9tKGFycmF5OiBbJGVsZW1f dHk7ICRlbGVtX2NvdW50XSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogdW5uZWNlc3NhcnkgemVyb2luZzsgYmV0dGVy IHRoYW4gVUIuCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHU6IFNlbGYgPSBjcmF0ZTo6 bWVtOjp6ZXJvZWQoKTsKLS0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9u b3ZlcmxhcHBpbmcoCi0tICAgICAgICAgICAgICAgICAgICAgICAgJmFycmF5IGFzICpjb25zdCBb JGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyAqY29uc3QgdTgsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgJm11dCB1IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4LAotLSAgICAgICAgICAgICAgICAg ICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpCi0tICAgICAgICAgICAgICAgICAg ICApOwotLSAgICAgICAgICAgICAgICAgICAgdQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbDxUPiBJbnRvPFskZWxlbV90eTsgJGVs ZW1fY291bnRdPiBmb3IgJGlkPFQ+IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBpbnRvKHNlbGYpIC0+IFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB1bm5lY2Vz c2FyeSB6ZXJvaW5nOyBiZXR0ZXIgdGhhbiBVQi4KLS0gICAgICAgICAgICAgICAgICAgIGxldCBt dXQgdTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gPSBjcmF0ZTo6bWVtOjp6ZXJvZWQoKTsKLS0g ICAgICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCi0tICAg ICAgICAgICAgICAgICAgICAgICAgJnNlbGYgYXMgKmNvbnN0ICRpZDxUPiBhcyAqY29uc3QgdTgs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgJm11dCB1IGFzICptdXQgWyRlbGVtX3R5OyAkZWxl bV9jb3VudF0gYXMgKm11dCB1OCwKLS0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVt OjpzaXplX29mOjo8U2VsZj4oKQotLSAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAg ICAgICAgICAgIHUKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Zy b20+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIGFycmF5KCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBbMV9pMzI7ICRlbGVtX2NvdW50XTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZlYzogJGlkPGkzMj4gPSBEZWZh dWx0OjpkZWZhdWx0KCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJheSA9 IFsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8aTMyPjo6bnVsbCgpLmV4dHJh Y3QoMCk7ICRlbGVtX2NvdW50Ci0tICAgICAgICAgICAgICAgICAgICAgICAgXTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSAmdmFsdWVzW2ldIGFzICpjb25zdCBpMzIgYXMg Km11dCBpMzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYyA9IHZlYy5yZXBsYWNl KGksIHB0cik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5W2ldID0gcHRyOwot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBGSVhNRTogdGhlcmUgaXMgbm8gaW1wbCBvZiBGcm9tPCRpZDxUPj4gZm9yIFskZWxlbV90eTsg Tl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgYTAgPSBGcm9tOjpmcm9tKHZlYyk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXNzZXJ0X2VxIShhMCwgYXJyYXkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3codW51c2VkX2Fzc2lnbm1lbnRzKV0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGExID0gYXJyYXk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYTEgPSB2ZWMuaW50bygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoYTEsIGFycmF5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjA6ICRp ZDxpMzI+ID0gRnJvbTo6ZnJvbShhcnJheSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2MCwgdmVjKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjE6ICRpZDxp MzI+ID0gYXJyYXkuaW50bygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo djEsIHZlYyk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7Ci0t ICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVz IG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBh bmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkg PCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3QgYWxpZ25lZAotLSAgICAgICAg ICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3VuZGFyeS4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZnJvbV9zbGljZV9hbGlnbmVkKHNsaWNl OiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0g ICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCk7Ci0tICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl dF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSkKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPT0gMAotLSAgICAgICAgICAgICAgICAgICAgKTsKLS0g ICAgICAgICAgICAgICAgICAgIFNlbGY6OmZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xp Y2UpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg Ly8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xp Y2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5l cygpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZnJvbV9z bGljZV91bmFsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkg Pj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV91 bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGgg dGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNs aWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90IGFsaWduZWQK LS0gICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnksIHRo ZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIHVuc2FmZSBmbiBmcm9tX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNsaWNlOiAm WyRlbGVtX3R5XSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojpj YXN0X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAgICAqKHNsaWNlLmFzX3B0cigpLmNh c3QoKSkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBh IG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3Ig aXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1 bnNhZmUgZm4gZnJvbV9zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKAotLSAgICAgICAgICAgICAg ICBzbGljZTogJlskZWxlbV90eV0sCi0tICAgICAgICAgICAgKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjptZW06OnNpemVfb2Y7Ci0tICAgICAgICAgICAgICAgIGxldCB0 YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCkuY2FzdCgpOwotLSAgICAgICAgICAgICAgICBsZXQg bXV0IHggPSBTZWxmOjpzcGxhdChjcmF0ZTo6cHRyOjpudWxsX211dCgpIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgbGV0IHNlbGZfcHRyID0gJm11dCB4IGFzICptdXQgU2VsZiBhcyAq bXV0IHU4OwotLSAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5n KAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ciwKLS0gICAgICAgICAgICAgICAgICAg IHNlbGZfcHRyLAotLSAgICAgICAgICAgICAgICAgICAgc2l6ZV9vZjo6PFNlbGY+KCksCi0tICAg ICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9zbGljZV9mcm9tX3NsaWNlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoq OwotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjppdGVyOjpJdGVyYXRvcjsKLS0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJv bV9zbGljZV91bmFsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxs LCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLQotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBub25fbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDEKLS0gICAgICAgICAgICAgICAgICAg ICAgICBdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxpZ25lZFswXSA9IG51bGw7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6PGkzMj46OmZyb21fc2xpY2Vf dW5hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdW5hbGlnbmVkWzEuLl0K LS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQuaXRlcigpLmVudW1lcmF0ZSgpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShiLCBub25fbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGIsIHZlYy5leHRyYWN0KGluZGV4IC0gMSkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0 IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAv LyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAg ICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21f c2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChf bnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdW5hbGlnbmVkID0gW25vbl9udWxsOyAkaWQ6OjxpMzI+OjpsYW5lcygpICsg MV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBl bm91Z2ggPT4gcGFuaWMKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3ZlYyA9ICRpZDo6 PGkzMj46OmZyb21fc2xpY2VfdW5hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmdW5hbGlnbmVkWzIuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gQSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YTogWzwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVt ZW50OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogJGlkOjo8aTMyPjo6bGFu ZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzogJGlkPGkzMj4sCi0tICAgICAg ICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0s Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+OjpsYW5lcygp Li4oMiAqICRpZDo6PGkzMj46OmxhbmVzKCkpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduZWQuZGF0 YVtpXSA9IG5vbl9udWxsOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMg PSB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+Ojpmcm9t X3NsaWNlX2FsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25l ZC5kYXRhWyRpZDo6PGkzMj46OmxhbmVzKCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIChpbmRleCwgJmIpIGluIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFsaWduZWQuZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPCAkaWQ6Ojxp MzI+OjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYiwgbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG5vbl9udWxsKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAkaWQ6OjxpMzI+ OjpsYW5lcygpKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNt LWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAg ICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0 XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAg ICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgKF9udWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE6IFtub25fbnVsbDsgMiAqICRpZDo6PGkzMj46OmxhbmVzKCld LAotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgX3ZlYyA9IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6PGkzMj46OmZyb21fc2xpY2VfYWxpZ25lZCgKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhbGlnbmVkLmRhdGFbMiAqICRpZDo6PGkzMj46OmxhbmVzKCkuLl0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0g ICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAg I1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAg ICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAg ICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxfYWxpZ24oKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IChudWxsLCBfbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250IG9mIGRhdGEKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHB0ciA9IGFsaWduZWQuZGF0YS5hc19wdHIoKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IHBvaW50ZXIgYnkgb25lIGVsZW1lbnQKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHB0ci5hbGlnbl9vZmZzZXQoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PCRp ZDxpMzI+PigpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgPT0gMCB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyBwcm9wZXJseSBhbGln bmVkLCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZnJvbV9zbGljZV9h bGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLiB0aGlzCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBTbyB3ZSBwYW5pYyB0byBtYWtl Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgInNob3VsZF9mYWlsIiB0 ZXN0IHBhc3M6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5pYyEoIm9rIik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNhZmUsIGJlY2F1c2UgdGhlCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzIG9mIHRoZSBzbGljZSBleGlz dCwgYXJlIHByb3Blcmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWxp emVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHMgPSBzbGljZTo6ZnJvbV9yYXdfcGFydHMoCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwdHIsICRpZDo6PGkzMj46OmxhbmVzKCkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzaG91bGQgYWx3 YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWxpZ25tZW50Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBmb3IgdGhlIHZlY3RvciB0eXBlOgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3ZlYyA9ICRpZDo6PGkzMj46OmZyb21fc2xp Y2VfYWxpZ25lZChzKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7Ci0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0 aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vICMgUGFuaWNzCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlz IG5vdAotLSAgICAgICAgICAgIC8vLyBhbGlnbmVkIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClg IGJvdW5kYXJ5LgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB3 cml0ZV90b19zbGljZV9hbGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKLS0g ICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xp Y2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdl dF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRl OjptZW06OmFsaWduX29mOjo8U2VsZj4oKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg PT0gMAotLSAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYu d3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2UpOwotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVl cyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJ ZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKHNlbGYsIHNsaWNl OiAmbXV0IFskZWxlbV90eV0pIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAg ICAgICAgICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNs aWNlKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3Ig YCZzbGljZVswXWAgaXMgbm90Ci0tICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWdu X29mOjo8U2VsZj4oKWAgYm91bmRhcnksIHRoZSBiZWhhdmlvciBpcwotLSAgICAgICAgICAgIC8v LyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVu c2FmZSBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tlZCgKLS0gICAgICAgICAgICAg ICAgc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSwKLS0gICAgICAgICAgICApIHsKLS0gICAg ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCi0tICAgICAg ICAgICAgICAgICooc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKSkgPSBzZWxmOwotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3Rv ciB0byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBT YWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigp IDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHdyaXRlX3RvX3NsaWNlX3Vu YWxpZ25lZF91bmNoZWNrZWQoCi0tICAgICAgICAgICAgICAgIHNlbGYsIHNsaWNlOiAmbXV0IFsk ZWxlbV90eV0sCi0tICAgICAgICAgICAgKSB7Ci0tICAgICAgICAgICAgICAgIGxldCB0YXJnZXRf cHRyID0gc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgbGV0IHNl bGZfcHRyID0gJnNlbGYgYXMgKmNvbnN0IFNlbGYgYXMgKmNvbnN0IHU4OwotLSAgICAgICAgICAg ICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKAotLSAgICAgICAgICAgICAgICAg ICAgc2VsZl9wdHIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfcHRyLAotLSAgICAgICAg ICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCksCi0tICAgICAgICAgICAg ICAgICk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7 Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0g ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2Vfd3JpdGVfdG9fc2xpY2U+XSB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOwotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV91bmFsaWduZWQoKSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFs cyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVk ID0gW251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAxXTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCB1bmFsaWduZWRb MS4uXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuYWxp Z25lZC5pdGVyKCkuZW51bWVyYXRlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpbmRleCA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYiwgbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG5vbl9udWxsKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3Qo aW5kZXggLSAxKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3No b3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAg ICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bh bmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX2Zh aWwoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBw dHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5h bGlnbmVkID0gW251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAxXTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFyZ2UgZW5vdWdoID0+IHBh bmljCi0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25l ZCgmbXV0IHVuYWxpZ25lZFsyLi5dKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgIHVuaW9uIEEgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6 IFs8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudDsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMiAqICRpZDo6PGkzMj46OmxhbmVzKCldLAotLSAgICAgICAgICAgICAg ICAgICAgICAgIF92ZWM6ICRpZDxpMzI+LAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0 ZV90b19zbGljZV9hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobnVs bCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+ OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFsaWduZWQuZGF0YVskaWQ6Ojxp MzI+OjpsYW5lcygpLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgs ICZiKSBpbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBhbGlnbmVkLmRh dGEuaXRlcigpLmVudW1lcmF0ZSgpIH0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpbmRleCA8ICRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo Yiwgbm9uX251bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChp bmRleCAtICRpZDo6PGkzMj46OmxhbmVzKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAg ICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRf cGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAg ICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10K LS0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5l cygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0 cl92YWxzISgkaWQ8aTMyPik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGln bmVkID0gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICog JGlkOjo8aTMyPjo6bGFuZXMoKV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251bGwp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3QgbGFyZ2UgZW5v dWdoID0+IHBhbmljCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQoCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFsaWduZWQuZGF0YVsyICogJGlkOjo8aTMy Pjo6bGFuZXMoKS4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0tICAgICAgICAg ICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNb c2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAg ICAgICAgICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRf cGFuaWNdCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX2Zh aWxfYWxpZ24oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBub25fbnVs bCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6Ojxp MzI+OjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQgb2Yg ZGF0YQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gYWxpZ25lZC5kYXRh LmFzX211dF9wdHIoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IHBv aW50ZXIgYnkgb25lIGVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0 ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIHB0ci5hbGlnbl9vZmZzZXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cmF0ZTo6bWVtOjphbGlnbl9vZjo6PCRpZDxpMzI+PigpCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUg cG9pbnRlciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUuZy4K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FuIGhhcHBlbiBmb3Ig aTEyOHgxKS4gU28gd2UgcGFuaWMgdG8KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG1ha2UgdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFuaWMhKCJvayIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNlIC0g dGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBlbGVtZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9wZXJseQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gc2xpY2U6OmZyb21fcmF3X3BhcnRz X211dCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciwgJGlkOjo8aTMyPjo6 bGFuZXMoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMgcGFuaWMgYmVjYXVzZSB0aGUgc2xp Y2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25tZW50IGRvZXMgbm90IG1h dGNoIHRoZSBhbGlnbm1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVxdWly ZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVkKHMpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8VD4gY3JhdGU6 Omhhc2g6Okhhc2ggZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gaGFzaDxIOiBjcmF0ZTo6aGFzaDo6SGFzaGVyPigmc2VsZiwgc3RhdGU6ICZtdXQg SCkgewotLSAgICAgICAgICAgICAgICBsZXQgczogJHVzaXplX3R5ID0gdW5zYWZlIHsgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKCpzZWxmKSB9OwotLSAgICAgICAgICAgICAgICBzLmhhc2goc3RhdGUp Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAg ICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2hhc2g+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIGhhc2goKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRl OjpoYXNoOjp7SGFzaCwgSGFzaGVyfTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93 KGRlcHJlY2F0ZWQpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aGFzaDo6 e1NpcEhhc2hlcjEzfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWVzID0g WzFfaTMyOyAkZWxlbV9jb3VudF07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCB2ZWM6ICRpZDxpMzI+ID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYXJyYXkgPSBbCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp ZDo6PGkzMj46Om51bGwoKS5leHRyYWN0KDApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkZWxlbV9jb3VudAotLSAgICAgICAgICAgICAgICAgICAgICAgIF07Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgcHRyID0gJnZhbHVlc1tpXSBhcyAqY29uc3QgaTMyIGFzICptdXQg aTMyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMgPSB2ZWMucmVwbGFjZShpLCBw dHIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheVtpXSA9IHB0cjsKLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxv dyhkZXByZWNhdGVkKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFfaGFzaCA9 IFNpcEhhc2hlcjEzOjpuZXcoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZf aGFzaCA9IGFfaGFzaC5jbG9uZSgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5Lmhh c2goJm11dCBhX2hhc2gpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy5oYXNoKCZtdXQg dl9oYXNoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGFfaGFzaC5maW5p c2goKSwgdl9oYXNoLmZpbmlzaCgpKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8 VD4gJGlkPFQ+IHsKLS0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRlcyB0aGUgb2Zmc2V0IGZyb20g YSBwb2ludGVyLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlz IGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIGAzYCByZXByZXNlbnRzIGEKLS0gICAg ICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMu Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlv bnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlzCi0tICAgICAgICAgICAgLy8vIFVuZGVmaW5l ZCBCZWhhdmlvcjoKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBCb3RoIHRo ZSBzdGFydGluZyBhbmQgcmVzdWx0aW5nIHBvaW50ZXIgbXVzdCBiZSBlaXRoZXIgaW4KLS0gICAg ICAgICAgICAvLy8gYm91bmRzIG9yIG9uZSBieXRlIHBhc3QgdGhlIGVuZCBvZiBhbiBhbGxvY2F0 ZWQgb2JqZWN0LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBjb21w dXRlZCBvZmZzZXQsIGluIGJ5dGVzLCBjYW5ub3Qgb3ZlcmZsb3cgYW4gYGlzaXplYC4KLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUgb2Zmc2V0IGJlaW5nIGluIGJvdW5k cyBjYW5ub3QgcmVseSBvbiAid3JhcHBpbmcgYXJvdW5kIgotLSAgICAgICAgICAgIC8vLyB0aGUg YWRkcmVzcyBzcGFjZS4gVGhhdCBpcywgdGhlIGluZmluaXRlLXByZWNpc2lvbiBzdW0sIGluIGJ5 dGVzCi0tICAgICAgICAgICAgLy8vIG11c3QgZml0IGluIGEgYHVzaXplYC4KLS0gICAgICAgICAg ICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5 IGdlbmVyYWxseSB0cmllcyB0byBlbnN1cmUKLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbnMg bmV2ZXIgcmVhY2ggYSBzaXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgotLSAg ICAgICAgICAgIC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVy IGFsbG9jYXRlIG1vcmUgdGhhbgotLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMs IHNvIGB2ZWMuYXNfcHRyKCkub2Zmc2V0KHZlYy5sZW4oKSBhcyBpc2l6ZSlgCi0tICAgICAgICAg ICAgLy8vIGlzIGFsd2F5cyBzYWZlLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8v LyBNb3N0IHBsYXRmb3JtcyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2gg YW4KLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2 NC1iaXQgcGxhdGZvcm0gY2FuIGV2ZXIKLS0gICAgICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0 IGZvciAyNjMgYnl0ZXMgZHVlIHRvIHBhZ2UtdGFibGUgbGltaXRhdGlvbnMgb3IKLS0gICAgICAg ICAgICAvLy8gc3BsaXR0aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBIb3dldmVyLCBzb21lIDMyLWJp dCBhbmQgMTYtYml0Ci0tICAgICAgICAgICAgLy8vIHBsYXRmb3JtcyBtYXkgc3VjY2Vzc2Z1bGx5 IHNlcnZlIGEgcmVxdWVzdCBmb3IgbW9yZSB0aGFuCi0tICAgICAgICAgICAgLy8vIGBpc2l6ZTo6 TUFYYCBieXRlcyB3aXRoIHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFkZHJlc3MgRXh0ZW5zaW9uLgot LSAgICAgICAgICAgIC8vLyBBcyBzdWNoLCBtZW1vcnkgYWNxdWlyZWQgZGlyZWN0bHkgZnJvbSBh bGxvY2F0b3JzIG9yIG1lbW9yeQotLSAgICAgICAgICAgIC8vLyBtYXBwZWQgZmlsZXMgbWF5IGJl IHRvbyBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzIGZ1bmN0aW9uLgotLSAgICAgICAgICAgIC8v LwotLSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3JhcHBpbmdfb2Zmc2V0YCBpbnN0 ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCi0tICAgICAgICAgICAgLy8vIGFyZSBkaWZmaWN1bHQg dG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMgbWV0aG9kIGlzCi0tICAgICAg ICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3NpdmUgY29tcGlsZXIgb3B0aW1p emF0aW9ucy4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgdW5zYWZl IGZuIG9mZnNldChzZWxmLCBjb3VudDogJGlzaXplX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgTExWTSdzIGBhZGQgbnN3IG51d2AKLS0gICAgICAg ICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXQoY291bnQpCi0tICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgdXNp bmcgd3JhcHBpbmcgYXJpdGhtZXRpYy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBgVGA7IGUuZy4gYSBjb3VudCBvZiBgM2AgcmVwcmVz ZW50cyBhCi0tICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6 PFQ+KClgIGJ5dGVzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0 eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgcmVzdWx0aW5nIHBvaW50 ZXIgZG9lcyBub3QgbmVlZCB0byBiZSBpbiBib3VuZHMsIGJ1dCBpdCBpcwotLSAgICAgICAgICAg IC8vLyBwb3RlbnRpYWxseSBoYXphcmRvdXMgdG8gZGVyZWZlcmVuY2UgKHdoaWNoIHJlcXVpcmVz IHVuc2FmZSkuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIEFsd2F5cyB1c2Ug YC5vZmZzZXQoY291bnQpYCBpbnN0ZWFkIHdoZW4gcG9zc2libGUsIGJlY2F1c2UKLS0gICAgICAg ICAgICAvLy8gb2Zmc2V0IGFsbG93cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgYmV0dGVyLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19vZmZz ZXQoc2VsZiwgY291bnQ6ICRpc2l6ZV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeDogJGlzaXplX3R5ID0gY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgLy8gbm90ZTogeyssKn0g Y3VycmVudGx5IHBlcmZvcm1zIGEgYHdyYXBwaW5nX3thZGQsIG11bH1gCi0tICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoCi0tICAgICAgICAgICAgICAgICAgICAgICAg eCArIChjb3VudCAqIGNyYXRlOjptZW06OnNpemVfb2Y6OjxUPigpIGFzIGlzaXplKQotLSAgICAg ICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIHR3byBwb2lu dGVycy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIHJldHVybmVkIHZh bHVlIGlzIGluIHVuaXRzIG9mIGBUYDogdGhlIGRpc3RhbmNlIGluIGJ5dGVzIGlzCi0tICAgICAg ICAgICAgLy8vIGRpdmlkZWQgYnkgYG1lbTo6c2l6ZV9vZjo6PFQ+KClgLgotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBpbnZlcnNlIG9mIG9m ZnNldC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAvLy8gVW5k ZWZpbmVkIEJlaGF2aW9yOgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIEJv dGggdGhlIHN0YXJ0aW5nIGFuZCBvdGhlciBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGluIGJvdW5k cwotLSAgICAgICAgICAgIC8vLyBvciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgdGhlIHNhbWUg YWxsb2NhdGVkIG9iamVjdC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBU aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcG9pbnRlcnMsIGluIGJ5dGVzLCBjYW5ub3Qgb3ZlcmZs b3cKLS0gICAgICAgICAgICAvLy8gYW4gYGlzaXplYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAg ICAgICAgICAvLy8gKiBUaGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcG9pbnRlcnMsIGluIGJ5dGVz LCBtdXN0IGJlIGFuIGV4YWN0Ci0tICAgICAgICAgICAgLy8vIG11bHRpcGxlIG9mIHRoZSBzaXpl IG9mIGBUYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUgZGlzdGFu Y2UgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCi0tICAg ICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLgotLSAgICAgICAgICAgIC8vLwotLSAgICAg ICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxpYnJhcnkgZ2VuZXJhbGx5IHRy eSB0byBlbnN1cmUKLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbnMgbmV2ZXIgcmVhY2ggYSBz aXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgotLSAgICAgICAgICAgIC8vLyBp bnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVyIGFsbG9jYXRlIG1vcmUg dGhhbgotLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMsIHNvIGBwdHJfaW50b192 ZWMub2Zmc2V0X2Zyb20odmVjLmFzX3B0cigpKWAKLS0gICAgICAgICAgICAvLy8gaXMgYWx3YXlz IHNhZmUuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE1vc3QgcGxhdGZvcm1z IGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3VjaCBhbgotLSAgICAgICAgICAg IC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3duIDY0LWJpdCBwbGF0Zm9ybSBj YW4gZXZlcgotLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVlc3QgZm9yIDI2MyBieXRlcyBk dWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgotLSAgICAgICAgICAgIC8vLyBzcGxpdHRp bmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzItYml0IGFuZCAxNi1iaXQKLS0g ICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVsbHkgc2VydmUgYSByZXF1ZXN0 IGZvciBtb3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzIHdpdGgg dGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb24uCi0tICAgICAgICAgICAgLy8v IEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9tIGFsbG9jYXRvcnMgb3IgbWVt b3J5Ci0tICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBtYXkgYmUgdG9vIGxhcmdlIHRvIGhh bmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRfZnJvbWAgaW5zdGVhZCBpZiB0aGVz ZSBjb25zdHJhaW50cwotLSAgICAgICAgICAgIC8vLyBhcmUgZGlmZmljdWx0IHRvIHNhdGlzZnku IFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcwotLSAgICAgICAgICAgIC8vLyB0 aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dyZXNzaXZlIGNvbXBpbGVyIG9wdGltaXphdGlvbnMuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBvZmZzZXRf ZnJvbShzZWxmLCBvcmlnaW46IFNlbGYpIC0+ICRpc2l6ZV90eSB7Ci0tICAgICAgICAgICAgICAg IC8vIEZJWE1FOiBzaG91bGQgdXNlIExMVk0ncyBgc3ViIG5zdyBudXdgLgotLSAgICAgICAgICAg ICAgICBzZWxmLndyYXBwaW5nX29mZnNldF9mcm9tKG9yaWdpbikKLS0gICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdHdvIHBv aW50ZXJzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgcmV0dXJuZWQg dmFsdWUgaXMgaW4gdW5pdHMgb2YgYFRgOiB0aGUgZGlzdGFuY2UgaW4gYnl0ZXMgaXMKLS0gICAg ICAgICAgICAvLy8gZGl2aWRlZCBieSBgbWVtOjpzaXplX29mOjo8VD4oKWAuCi0tICAgICAgICAg ICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIHRoZSBhZGRyZXNzIGRpZmZlcmVudCBiZXR3ZWVu IHRoZSB0d28gcG9pbnRlcnMgaXMgbm90IGEKLS0gICAgICAgICAgICAvLy8gbXVsdGlwbGUgb2Yg YG1lbTo6c2l6ZV9vZjo6PFQ+KClgIHRoZW4gdGhlIHJlc3VsdCBvZiB0aGUKLS0gICAgICAgICAg ICAvLy8gZGl2aXNpb24gaXMgcm91bmRlZCB0b3dhcmRzIHplcm8uCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vIFRob3VnaCB0aGlzIG1ldGhvZCBpcyBzYWZlIGZvciBhbnkgdHdv IHBvaW50ZXJzLCBub3RlIHRoYXQgaXRzCi0tICAgICAgICAgICAgLy8vIHJlc3VsdCB3aWxsIGJl IG1vc3RseSB1c2VsZXNzIGlmIHRoZSB0d28gcG9pbnRlcnMgYXJlbid0IGludG8KLS0gICAgICAg ICAgICAvLy8gdGhlIHNhbWUgYWxsb2NhdGVkIG9iamVjdCwgZm9yIGV4YW1wbGUgaWYgdGhleSBw b2ludCB0byB0d28KLS0gICAgICAgICAgICAvLy8gZGlmZmVyZW50IGxvY2FsIHZhcmlhYmxlcy4K LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdfb2Zm c2V0X2Zyb20oc2VsZiwgb3JpZ2luOiBTZWxmKSAtPiAkaXNpemVfdHkgewotLSAgICAgICAgICAg ICAgICBsZXQgeDogJGlzaXplX3R5ID0gdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNl bGYpIH07Ci0tICAgICAgICAgICAgICAgIGxldCB5OiAkaXNpemVfdHkgPSB1bnNhZmUgeyBjcmF0 ZTo6bWVtOjp0cmFuc211dGUob3JpZ2luKSB9OwotLSAgICAgICAgICAgICAgICAvLyBub3RlOiB7 LSwvfSBjdXJyZW50bHkgcGVyZm9ybSB3cmFwcGluZ197c3ViLCBkaXZ9Ci0tICAgICAgICAgICAg ICAgICh5IC0geCkgLyAoY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFQ+KCkgYXMgaXNpemUpCi0tICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJv bSBhIHBvaW50ZXIgKGNvbnZlbmllbmNlIGZvcgotLSAgICAgICAgICAgIC8vLyBgLm9mZnNldChj b3VudCBhcyBpc2l6ZSlgKS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gYGNv dW50YCBpcyBpbiB1bml0cyBvZiBgVGA7IGUuZy4gYSBjb3VudCBvZiAzIHJlcHJlc2VudHMgYQot LSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAqIHNpemVfb2Y6OjxUPigpYCBi eXRlcy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBTYWZldHkKLS0gICAg ICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKLS0gICAgICAgICAgICAvLy8gVW5k ZWZpbmVkIEJlaGF2aW9yOgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIEJv dGggdGhlIHN0YXJ0aW5nIGFuZCByZXN1bHRpbmcgcG9pbnRlciBtdXN0IGJlIGVpdGhlciBpbgot LSAgICAgICAgICAgIC8vLyBib3VuZHMgb3Igb25lIGJ5dGUgcGFzdCB0aGUgZW5kIG9mIGFuIGFs bG9jYXRlZCBvYmplY3QuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogVGhl IGNvbXB1dGVkIG9mZnNldCwgaW4gYnl0ZXMsIGNhbm5vdCBvdmVyZmxvdyBhbiBgaXNpemVgLgot LSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAqIFRoZSBvZmZzZXQgYmVpbmcgaW4g Ym91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQiCi0tICAgICAgICAgICAgLy8v IHRoZSBhZGRyZXNzIHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5pdGUtcHJlY2lzaW9uIHN1bSBt dXN0IGZpdAotLSAgICAgICAgICAgIC8vLyBpbiBhIGB1c2l6ZWAuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3RhbmRhcmQgbGlicmFyeSBnZW5l cmFsbHkgdHJpZXMgdG8gZW5zdXJlCi0tICAgICAgICAgICAgLy8vIGFsbG9jYXRpb25zIG5ldmVy IHJlYWNoIGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQgaXMgYSBjb25jZXJuLiBGb3IKLS0gICAgICAg ICAgICAvLy8gaW5zdGFuY2UsIGBWZWNgIGFuZCBgQm94YCBlbnN1cmUgdGhleSBuZXZlciBhbGxv Y2F0ZSBtb3JlIHRoYW4KLS0gICAgICAgICAgICAvLy8gYGlzaXplOjpNQVhgIGJ5dGVzLCBzbyBg dmVjLmFzX3B0cigpLmFkZCh2ZWMubGVuKCkpYCBpcyBhbHdheXMKLS0gICAgICAgICAgICAvLy8g c2FmZS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTW9zdCBwbGF0Zm9ybXMg ZnVuZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNoIGFuCi0tICAgICAgICAgICAg Ly8vIGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24gNjQtYml0IHBsYXRmb3JtIGNh biBldmVyCi0tICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVzdCBmb3IgMjYzIGJ5dGVzIGR1 ZSB0byBwYWdlLXRhYmxlIGxpbWl0YXRpb25zIG9yCi0tICAgICAgICAgICAgLy8vIHNwbGl0dGlu ZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1iaXQgYW5kIDE2LWJpdAotLSAg ICAgICAgICAgIC8vLyBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxseSBzZXJ2ZSBhIHJlcXVlc3Qg Zm9yIG1vcmUgdGhhbgotLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMgd2l0aCB0 aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lvbi4KLS0gICAgICAgICAgICAvLy8g QXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20gYWxsb2NhdG9ycyBvciBtZW1v cnkKLS0gICAgICAgICAgICAvLy8gbWFwcGVkIGZpbGVzIG1heSBiZSB0b28gbGFyZ2UgdG8gaGFu ZGxlIHdpdGggdGhpcyBmdW5jdGlvbi4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gQ29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldGAgaW5zdGVhZCBpZiB0aGVzZSBjb25z dHJhaW50cwotLSAgICAgICAgICAgIC8vLyBhcmUgZGlmZmljdWx0IHRvIHNhdGlzZnkuIFRoZSBv bmx5IGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcwotLSAgICAgICAgICAgIC8vLyB0aGF0IGl0 IGVuYWJsZXMgbW9yZSBhZ2dyZXNzaXZlIGNvbXBpbGVyIG9wdGltaXphdGlvbnMuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnNob3VsZF9pbXBs ZW1lbnRfdHJhaXQpXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gYWRkKHNlbGYsIGNvdW50 OiAkdXNpemVfdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmLm9mZnNldChjb3Vu dC5jYXN0KCkpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVz IHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgKGNvbnZlbmllbmNlIGZvcgotLSAgICAgICAgICAg IC8vLyBgLm9mZnNldCgoY291bnQgYXMgaXNpemUpLndyYXBwaW5nX25lZygpKWApLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIFQ7IGUu Zy4gYSBgY291bnRgIG9mIDMgcmVwcmVzZW50cyBhCi0tICAgICAgICAgICAgLy8vIHBvaW50ZXIg b2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgotLSAgICAgICAgICAgIC8vLwot LSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAg IC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB2aW9sYXRlZCwgdGhl IHJlc3VsdCBpcwotLSAgICAgICAgICAgIC8vLyBVbmRlZmluZWQgQmVoYXZpb3I6Ci0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vICogQm90aCB0aGUgc3RhcnRpbmcgYW5kIHJlc3Vs dGluZyBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGluCi0tICAgICAgICAgICAgLy8vIGJvdW5kcyBv ciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgYW4gYWxsb2NhdGVkIG9iamVjdC4KLS0gICAgICAg ICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gKiBUaGUgY29tcHV0ZWQgb2Zmc2V0IGNhbm5vdCBl eGNlZWQgYGlzaXplOjpNQVhgICoqYnl0ZXMqKi4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gKiBUaGUgb2Zmc2V0IGJlaW5nIGluIGJvdW5kcyBjYW5ub3QgcmVseSBvbiAid3Jh cHBpbmcgYXJvdW5kIgotLSAgICAgICAgICAgIC8vLyB0aGUgYWRkcmVzcyBzcGFjZS4gVGhhdCBp cywgdGhlIGluZmluaXRlLXByZWNpc2lvbiBzdW0gbXVzdCBmaXQKLS0gICAgICAgICAgICAvLy8g aW4gYSB1c2l6ZS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIGNvbXBp bGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5IGdlbmVyYWxseSB0cmllcyB0byBlbnN1cmUKLS0gICAg ICAgICAgICAvLy8gYWxsb2NhdGlvbnMgbmV2ZXIgcmVhY2ggYSBzaXplIHdoZXJlIGFuIG9mZnNl dCBpcyBhIGNvbmNlcm4uIEZvcgotLSAgICAgICAgICAgIC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5k IGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVyIGFsbG9jYXRlIG1vcmUgdGhhbgotLSAgICAgICAgICAg IC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMsIHNvCi0tICAgICAgICAgICAgLy8vIGB2ZWMuYXNfcHRy KCkuYWRkKHZlYy5sZW4oKSkuc3ViKHZlYy5sZW4oKSlgIGlzIGFsd2F5cyBzYWZlLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRmb3JtcyBmdW5kYW1lbnRhbGx5 IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4KLS0gICAgICAgICAgICAvLy8gYWxsb2NhdGlv bi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZvcm0gY2FuIGV2ZXIKLS0gICAg ICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZvciAyPHN1cD42Mzwvc3VwPiBieXRlcyBkdWUg dG8gcGFnZS10YWJsZQotLSAgICAgICAgICAgIC8vLyBsaW1pdGF0aW9ucyBvciBzcGxpdHRpbmcg dGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzItYml0Ci0tICAgICAgICAgICAgLy8v IGFuZCAxNi1iaXQgcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVsbHkgc2VydmUgYSByZXF1ZXN0IGZv ciBtb3JlCi0tICAgICAgICAgICAgLy8vIHRoYW4gYGlzaXplOjpNQVhgIGJ5dGVzIHdpdGggdGhp bmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcwotLSAgICAgICAgICAgIC8vLyBFeHRlbnNpb24uIEFz IHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9tIGFsbG9jYXRvcnMgb3IKLS0gICAg ICAgICAgICAvLy8gbWVtb3J5IG1hcHBlZCBmaWxlcyAqbWF5KiBiZSB0b28gbGFyZ2UgdG8gaGFu ZGxlIHdpdGggdGhpcwotLSAgICAgICAgICAgIC8vLyBmdW5jdGlvbi4KLS0gICAgICAgICAgICAv Ly8KLS0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldGAgaW5z dGVhZCBpZiB0aGVzZSBjb25zdHJhaW50cwotLSAgICAgICAgICAgIC8vLyBhcmUgZGlmZmljdWx0 IHRvIHNhdGlzZnkuIFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcwotLSAgICAg ICAgICAgIC8vLyB0aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dyZXNzaXZlIGNvbXBpbGVyIG9wdGlt aXphdGlvbnMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6OnNob3VsZF9pbXBsZW1lbnRfdHJhaXQpXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUg Zm4gc3ViKHNlbGYsIGNvdW50OiAkdXNpemVfdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICBsZXQgeDogJGlzaXplX3R5ID0gY291bnQuY2FzdCgpOwotLSAgICAgICAgICAgICAgICAvLyBu b3RlOiAtIGlzIGN1cnJlbnRseSB3cmFwcGluZ19uZWcKLS0gICAgICAgICAgICAgICAgc2VsZi5v ZmZzZXQoLXgpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVz IHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgdXNpbmcgd3JhcHBpbmcgYXJpdGhtZXRpYy4KLS0g ICAgICAgICAgICAvLy8gKGNvbnZlbmllbmNlIGZvciBgLndyYXBwaW5nX29mZnNldChjb3VudCBh cyBpc2l6ZSlgKQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlz IGluIHVuaXRzIG9mIFQ7IGUuZy4gYSBgY291bnRgIG9mIDMgcmVwcmVzZW50cyBhCi0tICAgICAg ICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgot LSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAg IC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgcmVzdWx0aW5nIHBvaW50ZXIgZG9lcyBub3QgbmVl ZCB0byBiZSBpbiBib3VuZHMsIGJ1dCBpdCBpcwotLSAgICAgICAgICAgIC8vLyBwb3RlbnRpYWxs eSBoYXphcmRvdXMgdG8gZGVyZWZlcmVuY2UgKHdoaWNoIHJlcXVpcmVzIGB1bnNhZmVgKS4KLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gQWx3YXlzIHVzZSBgLmFkZChjb3VudClg IGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVjYXVzZSBgYWRkYAotLSAgICAgICAgICAgIC8vLyBh bGxvd3MgdGhlIGNvbXBpbGVyIHRvIG9wdGltaXplIGJldHRlci4KLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdfYWRkKHNlbGYsIGNvdW50OiAkdXNp emVfdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBzZWxmLndyYXBwaW5nX29mZnNldChj b3VudC5jYXN0KCkpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDYWxjdWxh dGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgdXNpbmcgd3JhcHBpbmcgYXJpdGhtZXRpYy4K LS0gICAgICAgICAgICAvLy8gKGNvbnZlbmllbmNlIGZvciBgLndyYXBwaW5nX29mZnNldCgoY291 bnQgYXMKLS0gICAgICAgICAgICAvLy8gaXNpemUpLndyYXBwaW5nX3N1YigpKWApCi0tICAgICAg ICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMgaW4gdW5pdHMgb2YgVDsgZS5n LiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKLS0gICAgICAgICAgICAvLy8gcG9pbnRlciBv ZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCi0tICAgICAgICAgICAgLy8vCi0t ICAgICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBuZWVkIHRvIGJlIGluIGJvdW5kcywg YnV0IGl0IGlzCi0tICAgICAgICAgICAgLy8vIHBvdGVudGlhbGx5IGhhemFyZG91cyB0byBkZXJl ZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgYHVuc2FmZWApLgotLSAgICAgICAgICAgIC8vLwotLSAg ICAgICAgICAgIC8vLyBBbHdheXMgdXNlIGAuc3ViKGNvdW50KWAgaW5zdGVhZCB3aGVuIHBvc3Np YmxlLCBiZWNhdXNlIGBzdWJgCi0tICAgICAgICAgICAgLy8vIGFsbG93cyB0aGUgY29tcGlsZXIg dG8gb3B0aW1pemUgYmV0dGVyLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IHB1YiBmbiB3cmFwcGluZ19zdWIoc2VsZiwgY291bnQ6ICR1c2l6ZV90eSkgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSBjb3VudC5jYXN0KCk7Ci0tICAgICAg ICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0KC0xICogeCkKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7Ci0tICAgICAgICAgICAgLy8v IFNodWZmbGUgdmVjdG9yIGVsZW1lbnRzIGFjY29yZGluZyB0byBgaW5kaWNlc2AuCi0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHNodWZmbGUxX2R5bjxJPihzZWxm LCBpbmRpY2VzOiBJKSAtPiBTZWxmCi0tICAgICAgICAgICAgICAgIHdoZXJlCi0tICAgICAgICAg ICAgICAgIFNlbGY6IGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW48SW5kaWNlcyA9 IEk+LAotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgY29kZWdlbjo6c2h1ZmZsZTFf ZHluOjpTaHVmZmxlMUR5bjo6c2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXMpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICAg ICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9zaHVmZmxlMV9keW4+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIHNodWZmbGUxX2R5bigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYWx0ZXJuYXRpbmcgPSBbbm9uX251bGwsIG51bGwsIG5vbl9udWxs LCBudWxsLCAuLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbHRlcm5hdGlu ZyA9ICRpZDo6PGkzMj46OnNwbGF0KG51bGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFs dGVybmF0aW5nID0gYWx0ZXJuYXRpbmcucmVwbGFjZShpLCBub25fbnVsbCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPCRpZDxpMzI+Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW4+ OjpJbmRpY2VzOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGV2ZW4gPSBbMCwgMCwgMiwg MiwgNCwgNCwgLi5dCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW4gPSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0KDApOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5l cygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgKGkg YXMgdTgpLmludG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBh cyB1OCAtIDEpLmludG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdgotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gb2RkID0gWzEsIDEsIDMsIDMsIDUsIDUsIC4uLl0KLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgb2RkID0gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSBJbmRpY2VzOjpzcGxhdCgwKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4ICsgMSkuaW50bygpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9keW4oZXZlbiksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0KG5vbl9udWxsKQotLSAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjo8 aTMyPjo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZs ZTFfZHluKG9kZCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+ OjpzcGxhdChudWxsKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9taW5pbWFsLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw2ICswLDAgQEAKLS0jW21hY3JvX3VzZV0KLS1tb2QgaXVmOwotLSNbbWFjcm9fdXNlXQot LW1vZCBtYXNrOwotLSNbbWFjcm9fdXNlXQotLW1vZCBwdHI7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRobWV0 aWMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2Nh bGFyX2FyaXRobWV0aWMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2FyaXRo bWV0aWMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIwMyAr MCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci1zY2FsYXIgLyBzY2FsYXIt dmVjdG9yIGFyaXRobWV0aWMgb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNf c2NhbGFyX2FyaXRobWV0aWMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6 Om9wczo6QWRkPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9 IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYWRkKHNlbGYs IG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgKyAkaWQ6 OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6QWRkPCRpZD4gZm9yICRlbGVtX3R5IHsKLS0gICAgICAgICAgICB0eXBlIE91 dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBhZGQo c2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChz ZWxmKSArIG90aGVyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpTdWI8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUg T3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBz dWIoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2Vs ZiAtICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWI8JGlkPiBmb3IgJGVsZW1fdHkgewotLSAgICAgICAgICAg IHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IGZuIHN1YihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6 OnNwbGF0KHNlbGYpIC0gb3RoZXIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAg ICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bDwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIG11bChzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICBzZWxmICogJGlkOjpzcGxhdChvdGhlcikKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bDwkaWQ+IGZvciAkZWxlbV90eSB7Ci0tICAg ICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgZm4gbXVsKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7Ci0tICAgICAgICAgICAg ICAgICRpZDo6c3BsYXQoc2VsZikgKiBvdGhlcgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2PCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0g ICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gZGl2KHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHNlbGYgLyAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2PCRpZD4gZm9yICRlbGVtX3R5 IHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBkaXYoc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAg ICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAvIG90aGVyCi0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW08JGVsZW1fdHk+IGZvciAk aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiByZW0oc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgc2VsZiAlICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW08JGlkPiBmb3Ig JGVsZW1fdHkgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHJlbShzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQg ewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICUgb3RoZXIKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZEFzc2lnbjwk ZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gYWRkX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmICsgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpTdWJBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1Yl9hc3NpZ24oJm11 dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2Vs ZiAtIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6TXVsQXNzaWduPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBtdWxfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRl bGVtX3R5KSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgKiBvdGhlcjsKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkRpdkFz c2lnbjwkZWxlbV90eT4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gZGl2X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAg ICAgICAgICAgICAqc2VsZiA9ICpzZWxmIC8gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpSZW1Bc3NpZ248JGVsZW1fdHk+IGZv ciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHJlbV9hc3Np Z24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYg PSAqc2VsZiAlIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAg IHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjpp dGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfYXJpdGg+ XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gb3BzX3NjYWxhcl9hcml0aG1ldGljKCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB6aSA9IDAgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG9pID0gMSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdGkgPSAyIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaSA9 IDQgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNw bGF0KHppKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQob2kp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KGZpKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBhZGQKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHppICsgeiwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICsg emksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgKyB6LCBvKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gKyB6aSwgbyk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSArIHosIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCArIHppLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHRpICsgdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0ICsgdGksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YgotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgLSB6LCB6KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogLSB6aSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvaSAtIHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEobyAtIHppLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRp IC0geiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC0gemksIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgLSB0LCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgLSB0aSwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC0gbyAtIG8sIHQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiAtIG9pIC0gb2ksIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIG11bAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgKiB6LCB6 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiB6aSwgeik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAqIG8sIHopOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIG9pLCB6KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHppICogdCwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6ICogdGksIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo b2kgKiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gKiB0aSwg dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAqIHQsIGYpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAqIHRpLCBmKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBkaXYKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHppIC8gbywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC8gb2ks IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgLyBvLCB0KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLyBvaSwgdCk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAvIG8sIGYpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiAvIG9pLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHRpIC8gdCwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0IC8gdGksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgLyB0 LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgLyB0aSwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtCi0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShvaSAlIG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobyAlIG9pLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpICUg dCwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICUgdGksIHopOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiArPSBvaTsgLy8gYWRkX2Fz c2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2IC09IG9pOyAvLyBzdWJfYXNzaWduCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYgPSB0OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICo9IG9p OyAvLyBtdWxfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgKj0gdGk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgLz0gb2k7IC8vIGRpdl9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAv PSB0aTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAlPSB0aTsgLy8gcmVtX2Fzc2lnbgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2JpdHdpc2Uu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFy X2JpdHdpc2UucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2JpdHdpc2UucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE2MiArMCwwIEBACi0t Ly8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci1zY2FsYXIgLyBzY2FsYXItdmVjdG9yIGJp dHdpc2Ugb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX2JpdHdp c2UgewotLSAgICAoCi0tICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OgotLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAotLSAgICAgICAgKCR0cnVlOmV4 cHIsICRmYWxzZTpleHByKQotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6 Qml0WG9yPCRlbGVtX3R5PiBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNl bGY7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYs IG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHNlbGYgXiAkaWQ6 OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6Qml0WG9yPCRpZD4gZm9yICRlbGVtX3R5IHsKLS0gICAgICAgICAgICB0eXBl IE91dHB1dCA9ICRpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBi aXR4b3Ioc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpz cGxhdChzZWxmKSBeIG90aGVyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQ8JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgc2VsZiAmICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQ8JGlkPiBmb3IgJGVsZW1fdHkg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAg ICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICYgb3RoZXIKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRlbGVtX3R5PiBm b3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiB8ICRpZDo6c3BsYXQob3RoZXIpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjwk aWQ+IGZvciAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6ICRp ZCkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSB8IG90aGVyCi0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmRBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkp IHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOwotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ248JGVs ZW1fdHk+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgewotLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmIHwgb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3JBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdHhvcl9hc3NpZ24o Jm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAq c2VsZiBeIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRl c3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfYml0d2lzZT5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICBmbiBvcHNfc2NhbGFyX2JpdHdpc2UoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHppID0gMCBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgb2kgPSAxIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0aSA9IDIgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAk aWQ6OnNwbGF0KHppKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQob2kpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0QW5kOgotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEob2kgJiBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8gJiBvaSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvaSAmIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAm IHppLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICYgbywgeik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgb2ksIHopOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgJiB6LCB6KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogJiB6aSwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0aSAmIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCAmIHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpICYgbywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgb2ks IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgJiB0LCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB0aSwgeik7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQml0T3I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvaSB8IG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo byB8IG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIHwgeiwg byk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwgemksIG8pOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgfCBvLCBvKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCBvaSwgbyk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSB8IHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiB8IHppLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHRpIHwgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwg dGksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgfCB0LCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCB0aSwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSB8IHosIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCB8IHppLCB0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBCaXRYT1I6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSBe IG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBeIG9pLCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIF4geiwgeik7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gemksIHopOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgXiBvLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogXiBvaSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvaSBeIHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBe IHppLCBvKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4gdCwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdGksIHopOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB6LCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB6aSwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSBeIHQsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiBeIHRpLCB0KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZEFzc2lnbjoKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg diAmPSB0aTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiB8PSBvaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBv KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgXj0gb2k7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9 OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX21hc2tfYml0d2lzZS5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfbWFza19iaXR3aXNlLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNDAgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAo bGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19y dWxlcyEgaW1wbF9vcHNfc2NhbGFyX21hc2tfYml0d2lzZSB7Ci0tICAgICgKLS0gICAgICAgIFsk ZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRlbnQgfCAk dGVzdF90dDp0dCB8Ci0tICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCi0tICAgICkg PT4gewotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8Ym9vbD4gZm9yICRpZCB7Ci0t ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogYm9vbCkgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHNlbGYgXiAkaWQ6OnNwbGF0KG90aGVyKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yPCRpZD4gZm9yIGJvb2wg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOwotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgewotLSAg ICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIF4gb3RoZXIKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFuZDxib29sPiBmb3Ig JGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBib29sKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgc2VsZiAmICRpZDo6c3BsYXQob3RoZXIpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQ8JGlkPiBm b3IgYm9vbCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiAkaWQpIC0+ICRp ZCB7Ci0tICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgJiBvdGhlcgotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3I8Ym9v bD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiBib29sKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiB8ICRpZDo6c3BsYXQob3RoZXIpCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjwk aWQ+IGZvciBib29sIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBvdGhlcjogJGlkKSAt PiAkaWQgewotLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIHwgb3RoZXIKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZEFzc2lnbjxib29sPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBmbiBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IGJvb2wpIHsKLS0gICAgICAg ICAgICAgICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ248Ym9vbD4gZm9yICRpZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3JfYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6IGJvb2wpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiB8 IG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6 Om9wczo6Qml0WG9yQXNzaWduPGJvb2w+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGJpdHhvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogYm9vbCkg ewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3Rf dHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1v ZCBbPCRpZCBfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2U+XSB7Ci0tICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3Nj YWxhcl9tYXNrX2JpdHdpc2UoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRpID0g dHJ1ZTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmkgPSBmYWxzZTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQodGkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdChmaSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISh0ICE9IGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoISh0 ID09IGYpKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRBbmQ6Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAmIGYsIGYpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCAmIGZpLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGZpICYgdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmICYgdGksIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkg JiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgJiB0aSwgdCk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAmIGYsIGYpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIGZpLCBmKTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBCaXRPcjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHRpIHwgZiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwg ZmksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgfCB0LCB0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCB0aSwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSB8IHQsIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCB8IHRpLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGZpIHwgZiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmIHwgZmksIGYpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4gZiwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gZmksIHQpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZmkgXiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYgXiB0aSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0aSBeIHQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBe IHRpLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIF4gZiwgZik7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4gZmksIGYpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g QW5kQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBmOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHRpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIE9yQXNzaWduOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBm OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IHRpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFhPUkFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2 ID0gZjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSB0aTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0cy5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2FsYXJfc2hpZnRz LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEwNiArMCwwIEBACi0tLy8hIFZlcnRp Y2FsIChsYW5lLXdpc2UpIHZlY3Rvci1zY2FsYXIgc2hpZnRzIG9wZXJhdGlvbnMuCi0tCi0tbWFj cm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9zaGlmdHMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAg ICAgIGltcGwgY3JhdGU6Om9wczo6U2hsPHUzMj4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlw ZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZu IHNobChzZWxmLCBvdGhlcjogdTMyKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZiA8 PCAkaWQ6OnNwbGF0KG90aGVyIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyPHUzMj4gZm9yICRpZCB7Ci0tICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIGZuIHNocihzZWxmLCBvdGhlcjogdTMyKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgc2VsZiA+PiAkaWQ6OnNwbGF0KG90aGVyIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsQXNzaWduPHUzMj4g Zm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hsX2Fz c2lnbigmbXV0IHNlbGYsIG90aGVyOiB1MzIpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAq c2VsZiA8PCBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBs IGNyYXRlOjpvcHM6OlNockFzc2lnbjx1MzI+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIHNocl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogdTMyKSB7 Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgPj4gb3RoZXI7Ci0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6 Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfb3BzX3NjYWxhcl9zaGlmdHM+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihhbnkodGFy Z2V0X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0IiksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFsbG93KHVucmVhY2hhYmxlX2NvZGUsIHVudXNlZF92YXJp YWJsZXMpCi0tICAgICAgICAgICAgICAgICAgICApXQotLSAgICAgICAgICAgICAgICAgICAgI1tj Zmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgICAgICAv L35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kL2lzc3Vl cy8zMTcKLS0gICAgICAgICAgICAgICAgICAgIGZuIG9wc19zY2FsYXJfc2hpZnRzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFz ICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB6aSA9IDAgYXMgdTMyOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgb2kgPSAxIGFzIHUzMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHRpID0gMiBhcyB1MzI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXhp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IChtZW06OnNpemVfb2Y6OjwkZWxl bV90eT4oKSAqIDggLSAxKSBhcyB1MzI7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHNocgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gemks IHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gb2ksIHop OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gdGksIHopOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gdGksIHopOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyhhbnkodGFyZ2V0X2FyY2ggPSAiczM5 MHgiLCB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0IikpXSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5 L3BhY2tlZF9zaW1kL2lzc3Vlcy8xMwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyA+PiB6aSwgbyk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiB6aSwgdCk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiB6aSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoZiA+PiBtYXhpLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShvID4+IG9pLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ID4+IG9pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0ID4+IHRpLCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShmID4+IG9pLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShmID4+IHRpLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmID4+IG1heGksIHopOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBz aGwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IDw8IHppLCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8IHppLCBvKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IDw8IHppLCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IHppLCBmKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIDw8IG1heGksIHopOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgb2ksIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgdGksIGYpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgPDwgb2ksIGYpOwotLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7ICAvLyBzaHJfYXNzaWduCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiA+Pj0gb2k7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsgIC8vIHNobF9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 IDw8PSBvaTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg dCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1ldGlj LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rv cl9hcml0aG1ldGljLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1l dGljLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNDggKzAs MCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIGFyaXRobWV0aWMg b3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMg ewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6QWRkIGZvciAkaWQg ewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBhZGQoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewotLSAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfYWRkOwotLSAgICAgICAgICAgICAg ICB1bnNhZmUgeyBTaW1kKHNpbWRfYWRkKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlN1YiBmb3IgJGlk IHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgZm4gc3ViKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3N1YjsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsgU2ltZChzaW1kX3N1YihzZWxmLjAsIG90aGVyLjApKSB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWwgZm9yICRp ZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIGZuIG11bChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9tdWw7Ci0tICAgICAgICAgICAg ICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9tdWwoc2VsZi4wLCBvdGhlci4wKSkgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6RGl2IGZvciAk aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBkaXYoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZGl2OwotLSAgICAgICAgICAg ICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfZGl2KHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbSBmb3Ig JGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gcmVtKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlbTsKLS0gICAgICAgICAg ICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3JlbShzZWxmLjAsIG90aGVyLjApKSB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGRBc3Np Z24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYWRk X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxm ID0gKnNlbGYgKyBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6OlN1YkFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBzdWJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYp IHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAtIG90aGVyOwotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TXVsQXNzaWduIGZv ciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG11bF9hc3Np Z24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewotLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpz ZWxmICogb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1w bCBjcmF0ZTo6b3BzOjpEaXZBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgZm4gZGl2X2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0t ICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgLyBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlJlbUFzc2lnbiBmb3IgJGlk IHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiByZW1fYXNzaWduKCZt dXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAl IG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYh ewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0t ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9hcml0aD5dIHsKLS0gICAg ICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg ICAgICBmbiBvcHNfdmVjdG9yX2FyaXRobWV0aWMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiArIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo byArIHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCArIHosIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCArIHQsIGYpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHN1YgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiAtIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAt IHosIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAtIHosIHQpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAtIHQsIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAtIG8gLSBvLCB0KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBtdWwKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHog KiB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiBvLCB6KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogKiB0LCB6KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gKiB0LCB0KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHQgKiB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAv LyBkaXYKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogLyBvLCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgLyBvLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgLyBvLCBmKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgLyB0LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGYgLyB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyByZW0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJSBvLCB6KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGYgJSB0LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgKz0gbzsgLy8gYWRkX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHYsIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2IC09IG87IC8vIHN1Yl9hc3NpZ24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHQ7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgKj0gbzsgLy8gbXVsX2Fzc2lnbgotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ICo9IHQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodiwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLz0gbzsgLy8gZGl2X2Fz c2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2IC89IHQ7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg JT0gdDsgLy8gcmVtX2Fzc2lnbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYsIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy92ZWN0b3JfYml0d2lzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAg KzAzMDAKLUBAIC0xLDEyOSArMCwwIEBACi0tLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rv ci12ZWN0b3IgYml0d2lzZSBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192 ZWN0b3JfYml0d2lzZSB7Ci0tICAgICgKLS0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8Ci0tICAgICAg ICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCi0tICAgICkgPT4gewotLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpOb3QgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxm OwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG5vdChzZWxmKSAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoJHRydWUpIF4gc2VsZgotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yIGZv ciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfeG9yOwotLSAgICAg ICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfeG9yKHNlbGYuMCwgb3RoZXIuMCkpIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZCBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBTZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2FuZDsKLS0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2FuZChzZWxmLjAsIG90aGVyLjApKSB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRPciBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6IFNlbGYp IC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfb3I7Ci0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9vcihzZWxmLjAsIG90aGVyLjApKSB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmRBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAg ICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWduIGZvciAkaWQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYs IG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgfCBvdGhlcjsK LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJp dFhvckFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBmbiBiaXR4b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0gICAgICAgICAg ICAgICAgKnNlbGYgPSAqc2VsZiBeIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0OgotLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192 ZWN0b3JfYml0d2lzZT5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBvcHNfdmVjdG9yX2JpdHdpc2UoKSB7Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1f dHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRl bGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSAkaWQ6OnNwbGF0 KCF6LmV4dHJhY3QoMCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdDoKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCF6LCBtKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKCFtLCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBCaXRBbmQ6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgbywg byk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICYgeiwgeik7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgbywgeik7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgeiwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0ICYgdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0ICYgbywgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv ICYgdCwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0T3I6Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwgbywgbyk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShvIHwgeiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh6IHwgbywgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6IHwgeiwgeik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwg dCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IHwgdCwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgeiwgdCk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQml0WE9SOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEobyBeIG8sIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiBeIHosIHopOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiBeIG8sIG8p OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBeIHosIG8pOwotLQotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHQsIHopOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHosIHQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoeiBeIHQsIHQpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5kQXNzaWduOgotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ICY9IHQ7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwg eik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAg IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3JBc3NpZ246Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgfD0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2 LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgXj0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh2LCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9vcHMvdmVjdG9yX2Zsb2F0X21pbl9tYXgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzCi0tLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzCTE5NzAtMDEt MDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3NCArMCwwIEBACi0tLy8hIFZlcnRp Y2FsIChsYW5lLXdpc2UpIHZlY3RvciBgbWluYCBhbmQgYG1heGAgZm9yIGZsb2F0aW5nLXBvaW50 IHZlY3RvcnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9mbG9hdF9taW5fbWF4 IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8 ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8v IE1pbmltdW0gb2YgdHdvIHZlY3RvcnMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAg Ly8vIFJldHVybnMgYSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbmltdW0gdmFsdWUgb2Yg ZWFjaCBvZgotLSAgICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxhbmVzLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtaW4oc2VsZiwgeDogU2VsZikg LT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9mbWluOwot LSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfZm1pbihzZWxmLjAsIHguMCkpIH0K LS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIE1heGltdW0gb2YgdHdvIHZlY3Rv cnMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVj dG9yIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWUgb2YgZWFjaCBvZgotLSAgICAgICAgICAg IC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxhbmVzLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAg ICAgICAgICAgIHB1YiBmbiBtYXgoc2VsZiwgeDogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9mbWF4OwotLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyBTaW1kKHNpbWRfZm1heChzZWxmLjAsIHguMCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QoYW55KAot LSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjIzCi0tICAgICAgICAgICAgICAgICAgICBh bGwodGFyZ2V0X2FyY2ggPSAibWlwcyIsIHRhcmdldF9lbmRpYW4gPSAiYmlnIiksCi0tICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJtaXBzNjQiLAotLSAgICAgICAgICAgICAgICAp KSldCi0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfbWluX21heD5d IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBtaW5fbWF4KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBuID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG8gPSAkaWQ6OnNwbGF0KDEuIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdCA9ICRpZDo6c3BsYXQoMi4gYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgbSA9IG87IC8vIFsxLiwgMi4sIDEuLCAyLiwgLi4uXQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgb24gPSBvOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGkgJSAyID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9 IG0ucmVwbGFjZShpLCAyLiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvbiA9IG9uLnJlcGxhY2UoaSwgbik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShvLm1pbih0KSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh0Lm1pbihvKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShtLm1pbihvKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv Lm1pbihtKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1pbih0 KSwgbSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1pbihtKSwgbSk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heCh0KSwgdCk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1heChvKSwgdCk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heChvKSwgbSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heChtKSwgbSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShtLm1heCh0KSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh0Lm1heChtKSwgdCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvbi5taW4obyksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoby5taW4ob24pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9u Lm1heChvKSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heChv biksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9pbnRfbWluX21heC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5f bWF4LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3Zl Y3Rvcl9pbnRfbWluX21heC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfaW50 X21pbl9tYXgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDU3 ICswLDAgQEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yIGBtaW5gIGFuZCBgbWF4 YCBmb3IgaW50ZWdlciB2ZWN0b3JzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3Jf aW50X21pbl9tYXggewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAg ICAgICAgICAvLy8gTWluaW11bSBvZiB0d28gdmVjdG9ycy4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWluaW11 bSB2YWx1ZSBvZiBlYWNoIG9mCi0tICAgICAgICAgICAgLy8vIHRoZSBpbnB1dCB2ZWN0b3IgbGFu ZXMuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG1pbihzZWxm LCB4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgc2VsZi5sdCh4KS5zZWxlY3Qo c2VsZiwgeCkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIE1heGltdW0gb2Yg dHdvIHZlY3RvcnMuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIFJldHVybnMg YSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWUgb2YgZWFjaCBvZgotLSAg ICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxhbmVzLgotLSAgICAgICAgICAgICNbaW5s aW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBtYXgoc2VsZiwgeDogU2VsZikgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIHNlbGYuZ3QoeCkuc2VsZWN0KHNlbGYsIHgpCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9pZiF7JHRlc3RfdHQ6Ci0tICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3JfbWluX21h eD5dIHsKLS0gICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAg ICAgICBmbiBtaW5fbWF4KCkgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNw bGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNw bGF0KDIgYXMgJGVsZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtID0g bzsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG0gPSBtLnJlcGxhY2UoaSwgMiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvLm1pbih0KSwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQubWluKG8pLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5taW4o byksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1pbihtKSwgbyk7Ci0t ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKHQpLCBtKTsKLS0gICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodC5taW4obSksIG0pOwotLQotLSAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvLm1heCh0KSwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQubWF4KG8pLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5tYXgo byksIG0pOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heChtKSwgbSk7Ci0t ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KHQpLCB0KTsKLS0gICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodC5tYXgobSksIHQpOwotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9t YXNrX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3Bz L3ZlY3Rvcl9tYXNrX2JpdHdpc2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxMTYgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2 ZWN0b3ItdmVjdG9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9v cHNfdmVjdG9yX21hc2tfYml0d2lzZSB7Ci0tICAgICgKLS0gICAgICAgIFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8 Ci0tICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpCi0tICAgICkgPT4gewotLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpOb3QgZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRw dXQgPSBTZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIG5vdChz ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgU2VsZjo6c3BsYXQoJHRydWUpIF4gc2Vs ZgotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6 Qml0WG9yIGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBiaXR4b3Ioc2VsZiwgb3RoZXI6IFNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfeG9y OwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfeG9yKHNlbGYuMCwgb3RoZXIu MCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OkJpdEFuZCBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVy OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1k X2FuZDsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX2FuZChzZWxmLjAsIG90 aGVyLjApKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpCaXRPciBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3Ro ZXI6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfb3I7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9vcihzZWxmLjAsIG90 aGVyLjApKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6b3BzOjpCaXRBbmRBc3NpZ24gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gYml0YW5kX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0t ICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJiBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yQXNzaWduIGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGJpdG9yX2Fzc2lnbigm bXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYg fCBvdGhlcjsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OkJpdFhvckFzc2lnbiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBiaXR4b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKLS0g ICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiBeIG90aGVyOwotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhewotLSAgICAgICAgICAgICR0ZXN0X3R0Ogot LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX29wc192ZWN0b3JfbWFza19iaXR3aXNlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192ZWN0b3Jf bWFza19iaXR3aXNlKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpz cGxhdCh0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQo ZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodCAhPSBmKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCEodCA9PSBmKSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gTm90OgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo IXQsIGYpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgIWYpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdEFuZDoKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgJiBmLCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGYgJiB0LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQg JiB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgJiBmLCBmKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRPcjoKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHQgfCBmLCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGYgfCB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgfCB0LCB0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCBmLCBm KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRYT1I6Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gZiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmIF4gdCwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0IF4gdCwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4g ZiwgZik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBBbmRBc3NpZ246Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgdiA9IGY7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgJj0gdDsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB2ID0gZjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiB8PSB0OwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gZjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSB0Owot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbmVnLnJz Ci0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9u ZWcucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25lZy5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDMgKzAsMCBAQAotLS8vISBWZXJ0aWNh bCAobGFuZS13aXNlKSB2ZWN0b3IgYE5lZ2AuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfb3BzX3Zl Y3Rvcl9uZWcgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlk OmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6TmVn IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKLS0gICAgICAgICAg ICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBuZWcoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAgICAgICAgIFNlbGY6OnNwbGF0KC0xIGFzICRlbGVtX3R5KSAqIHNlbGYKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmIXsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9k IFs8JGlkIF9vcHNfdmVjdG9yX25lZz5dIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBuZWcoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVs ZW1fdHkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBueiA9ICRpZDo6c3BsYXQo LSgwIGFzICRlbGVtX3R5KSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vID0gJGlk OjpzcGxhdCgtKDEgYXMgJGVsZW1fdHkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bnQgPSAkaWQ6OnNwbGF0KC0oMiBhcyAkZWxlbV90eSkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBuZiA9ICRpZDo6c3BsYXQoLSg0IGFzICRlbGVtX3R5KSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgteiwgbnopOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoLW8sIG5vKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKC10LCBudCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgtZiwgbmYp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgLW56KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIC1ubyk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0LCAtbnQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiwgLW5mKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfcm90YXRl cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3Jv dGF0ZXMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv dmVjdG9yX3JvdGF0ZXMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3JvdGF0 ZXMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDkyICswLDAg QEAKLS0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yIHJvdGF0ZXMgb3BlcmF0aW9ucy4K LS0jIVthbGxvdyh1bnVzZWQpXQotLQotLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3Jfcm90 YXRlcyB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRl bnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAg IC8vLyBTaGlmdHMgdGhlIGJpdHMgb2YgZWFjaCBsYW5lIHRvIHRoZSBsZWZ0IGJ5IHRoZSBzcGVj aWZpZWQKLS0gICAgICAgICAgICAvLy8gYW1vdW50IGluIHRoZSBjb3JyZXNwb25kaW5nIGxhbmUg b2YgYG5gLCB3cmFwcGluZyB0aGUKLS0gICAgICAgICAgICAvLy8gdHJ1bmNhdGVkIGJpdHMgdG8g dGhlIGVuZCBvZiB0aGUgcmVzdWx0aW5nIGludGVnZXIuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vIE5vdGU6IHRoaXMgaXMgbmVpdGhlciB0aGUgc2FtZSBvcGVyYXRpb24gYXMg YDw8YCBub3IgZXF1aXZhbGVudAotLSAgICAgICAgICAgIC8vLyB0byBgc2xpY2U6OnJvdGF0ZV9s ZWZ0YC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gcm90YXRl X2xlZnQoc2VsZiwgbjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBjb25zdCBMQU5F X1dJRFRIOiAkZWxlbV90eSA9Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXpl X29mOjo8JGVsZW1fdHk+KCkgYXMgJGVsZW1fdHkgKiA4OwotLSAgICAgICAgICAgICAgICAvLyBQ cm90ZWN0IGFnYWluc3QgdW5kZWZpbmVkIGJlaGF2aW9yIGZvciBvdmVyLWxvbmcgYml0IHNoaWZ0 cwotLSAgICAgICAgICAgICAgICBsZXQgbiA9IG4gJSBMQU5FX1dJRFRIOwotLSAgICAgICAgICAg ICAgICAoc2VsZiA8PCBuKSB8IChzZWxmID4+ICgoTEFORV9XSURUSCAtIG4pICUgTEFORV9XSURU SCkpCi0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBTaGlmdHMgdGhlIGJpdHMg b2YgZWFjaCBsYW5lIHRvIHRoZSByaWdodCBieSB0aGUgc3BlY2lmaWVkCi0tICAgICAgICAgICAg Ly8vIGFtb3VudCBpbiB0aGUgY29ycmVzcG9uZGluZyBsYW5lIG9mIGBuYCwgd3JhcHBpbmcgdGhl Ci0tICAgICAgICAgICAgLy8vIHRydW5jYXRlZCBiaXRzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl IHJlc3VsdGluZyBpbnRlZ2VyLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBO b3RlOiB0aGlzIGlzIG5laXRoZXIgdGhlIHNhbWUgb3BlcmF0aW9uIGFzIGA+PmAgbm9yIGVxdWl2 YWxlbnQKLS0gICAgICAgICAgICAvLy8gdG8gYHNsaWNlOjpyb3RhdGVfcmlnaHRgLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiByb3RhdGVfcmlnaHQoc2VsZiwg bjogJGlkKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBjb25zdCBMQU5FX1dJRFRIOiAkZWxl bV90eSA9Ci0tICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8JGVsZW1f dHk+KCkgYXMgJGVsZW1fdHkgKiA4OwotLSAgICAgICAgICAgICAgICAvLyBQcm90ZWN0IGFnYWlu c3QgdW5kZWZpbmVkIGJlaGF2aW9yIGZvciBvdmVyLWxvbmcgYml0IHNoaWZ0cwotLSAgICAgICAg ICAgICAgICBsZXQgbiA9IG4gJSBMQU5FX1dJRFRIOwotLSAgICAgICAgICAgICAgICAoc2VsZiA+ PiBuKSB8IChzZWxmIDw8ICgoTEFORV9XSURUSCAtIG4pICUgTEFORV9XSURUSCkpCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAg JHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAg Ly8gRklYTUU6Ci0tICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNzUKLS0gICAgICAgICAgICAgICAgI1tjZmco bm90KGFueSgKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInMzOTB4IiwKLS0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInNwYXJjNjQiLAotLSAgICAgICAgICAg ICAgICApKSldCi0tICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192ZWN0b3Jfcm90 YXRlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQot LSAgICAgICAgICAgICAgICAgICAgLy9+XiBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9wYWNrZWRfc2ltZC9pc3N1ZXMvMzE3Ci0tICAgICAgICAgICAgICAgICAgICBmbiByb3Rh dGVfb3BzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgw IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6 OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0g JGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbWF4ID0gJGlkOjpzcGxhdCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbTo6 c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEpIGFzICRlbGVtX3R5KTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAvLyByb3RhdGVfcmlnaHQKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHoucm90YXRlX3JpZ2h0KHopLCB6KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHoucm90YXRlX3JpZ2h0KG8pLCB6KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHoucm90YXRlX3JpZ2h0KHQpLCB6KTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX3JpZ2h0KHopLCBvKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRlX3JpZ2h0KHopLCB0KTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX3JpZ2h0KHopLCBmKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX3JpZ2h0KG1heCksIGYg PDwgMSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9y aWdodChvKSwgbyA8PCBtYXgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dC5yb3RhdGVfcmlnaHQobyksIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodC5yb3RhdGVfcmlnaHQodCksIG8gPDwgbWF4KTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYucm90YXRlX3JpZ2h0KG8pLCB0KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGYucm90YXRlX3JpZ2h0KHQpLCBvKTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyByb3RhdGVfbGVmdAotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoei5yb3RhdGVfbGVmdCh6KSwgeik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0KHopLCBvKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHQucm90YXRlX2xlZnQoeiksIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoZi5yb3RhdGVfbGVmdCh6KSwgZik7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9sZWZ0KG1heCksIHQpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfbGVmdChvKSwgdCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0KHQpLCBmKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRlX2xlZnQobyksIGYpOwotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3NoaWZ0cy5ycwkyMDI1LTA0LTIwIDE5 OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxMDYgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2 ZWN0b3ItdmVjdG9yIHNoaWZ0cyBvcGVyYXRpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX29w c192ZWN0b3Jfc2hpZnRzIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsIGNyYXRlOjpv cHM6OlNobDwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaGwoc2VsZiwgb3RoZXI6 IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRf c2hsOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfc2hsKHNlbGYuMCwgb3Ro ZXIuMCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OlNocjwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2Vs ZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHIoc2VsZiwgb3Ro ZXI6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfc2hyOwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfc2hyKHNlbGYuMCwg b3RoZXIuMCkpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIGNy YXRlOjpvcHM6OlNobEFzc2lnbjwkaWQ+IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIHNobF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgewot LSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIDw8IG90aGVyOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hyQXNzaWduPCRpZD4gZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2hyX2Fzc2ln bigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7Ci0tICAgICAgICAgICAgICAgICpzZWxmID0gKnNl bGYgPj4gb3RoZXI7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgdGVzdF9p ZiF7Ci0tICAgICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsK LS0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9zaGlmdHM+XSB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihhbnkodGFyZ2V0X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRfYXJj aCA9ICJzcGFyYzY0IiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93KHVu cmVhY2hhYmxlX2NvZGUsIHVudXNlZF92YXJpYWJsZXMpCi0tICAgICAgICAgICAgICAgICAgICAp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQi KSldCi0tICAgICAgICAgICAgICAgICAgICAvL35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL3BhY2tlZF9zaW1kL2lzc3Vlcy8zMTcKLS0gICAgICAgICAgICAgICAgICAgIGZu IG9wc192ZWN0b3Jfc2hpZnRzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0g JGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg byA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbWF4ID0kaWQ6OnNwbGF0KAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgJGVsZW1fdHkKLS0g ICAgICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHNocgotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB6LCB6KTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gbywgeik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ID4+IHQsIHopOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiA+PiB0LCB6KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAjW2NmZyhhbnkodGFyZ2V0X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0 IikpXSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBydXN0IHByb2R1 Y2VzIGJhZCBjb2RlZ2VuIGZvciBzaGlmdHM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvMTMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8g Pj4geiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHosIHQp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiB6LCBmKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbWF4LCB6KTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPj4gbywgeik7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IG8sIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCA+PiB0LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGYgPj4gbywgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+ IHQsIG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBtYXgsIHop OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNobAotLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoeiA8PCB6LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8gPDwgeiwgbyk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0IDw8IHosIHQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCB6 LCBmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgbWF4LCB6KTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgbywgdCk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIDw8IHQsIGYpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCA8PCBvLCBmKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNocl9hc3NpZ24KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiA+Pj0gbzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2LCB6KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaGxfYXNzaWdu Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPDw9IG87Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodiwgdCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvb3BzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMzIgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRhdGlvbiBvZiB0aGUg YG9wc2AgdHJhaXRzCi0tI1ttYWNyb191c2VdCi0tbW9kIHZlY3Rvcl9tYXNrX2JpdHdpc2U7Ci0t I1ttYWNyb191c2VdCi0tbW9kIHNjYWxhcl9tYXNrX2JpdHdpc2U7Ci0tCi0tI1ttYWNyb191c2Vd Ci0tbW9kIHZlY3Rvcl9hcml0aG1ldGljOwotLSNbbWFjcm9fdXNlXQotLW1vZCBzY2FsYXJfYXJp dGhtZXRpYzsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX2JpdHdpc2U7Ci0tI1ttYWNy b191c2VdCi0tbW9kIHNjYWxhcl9iaXR3aXNlOwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0 b3Jfc2hpZnRzOwotLSNbbWFjcm9fdXNlXQotLW1vZCBzY2FsYXJfc2hpZnRzOwotLQotLSNbbWFj cm9fdXNlXQotLW1vZCB2ZWN0b3Jfcm90YXRlczsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgdmVj dG9yX25lZzsKLS0KLS0jW21hY3JvX3VzZV0KLS1tb2QgdmVjdG9yX2ludF9taW5fbWF4OwotLQot LSNbbWFjcm9fdXNlXQotLW1vZCB2ZWN0b3JfZmxvYXRfbWluX21heDsKLWRpZmYgLU5yYnUgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhlcl9zY2F0dGVyLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRl ci5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRo ZXJfc2NhdHRlci5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci9nYXRoZXJfc2NhdHRlci5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjE2ICswLDAgQEAK LS0vLyEgSW1wbGVtZW50cyBtYXNrZWQgZ2F0aGVyIGFuZCBzY2F0dGVycyBmb3IgdmVjdG9ycyBv ZiBwb2ludGVycwotLQotLW1hY3JvX3J1bGVzISBpbXBsX3B0cl9yZWFkIHsKLS0gICAgKFskZWxl bV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKLS0g ICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+Ci0tICAgICAg ICB3aGVyZQotLSAgICAgICAgICAgIFtUOyAkZWxlbV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5 LAotLSAgICAgICAgewotLSAgICAgICAgICAgIC8vLyBSZWFkcyBzZWxlY3RlZCB2ZWN0b3IgZWxl bWVudHMgZnJvbSBtZW1vcnkuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElu c3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3IgYnkgcmVhZGluZyB0aGUgdmFsdWVzIGZyb20gYHNlbGZg IGZvcgotLSAgICAgICAgICAgIC8vLyB0aG9zZSBsYW5lcyB3aG9zZSBgbWFza2AgaXMgYHRydWVg LCBhbmQgdXNpbmcgdGhlIGVsZW1lbnRzIG9mCi0tICAgICAgICAgICAgLy8vIGB2YWx1ZWAgb3Ro ZXJ3aXNlLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBObyBtZW1vcnkgaXMg YWNjZXNzZWQgZm9yIHRob3NlIGxhbmVzIG9mIGBzZWxmYCB3aG9zZSBgbWFza2AgaXMKLS0gICAg ICAgICAgICAvLy8gYGZhbHNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g IyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhpcyBtZXRob2Qg aXMgdW5zYWZlIGJlY2F1c2UgaXQgZGVyZWZlcmVuY2VzIHJhdyBwb2ludGVycy4gVGhlCi0tICAg ICAgICAgICAgLy8vIHBvaW50ZXJzIG11c3QgYmUgYWxpZ25lZCB0byBgbWVtOjphbGlnbl9vZjo6 PFQ+KClgLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUg Zm4gcmVhZDxNPigKLS0gICAgICAgICAgICAgICAgc2VsZiwKLS0gICAgICAgICAgICAgICAgbWFz azogU2ltZDxbTTsgJGVsZW1fY291bnRdPiwKLS0gICAgICAgICAgICAgICAgdmFsdWU6IFNpbWQ8 W1Q7ICRlbGVtX2NvdW50XT4sCi0tICAgICAgICAgICAgKSAtPiBTaW1kPFtUOyAkZWxlbV9jb3Vu dF0+Ci0tICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAgICAgTTogc2VhbGVkOjpNYXNr LAotLSAgICAgICAgICAgICAgICBbTTsgJGVsZW1fY291bnRdOiBzZWFsZWQ6OlNpbWRBcnJheSwK LS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9n YXRoZXI7Ci0tICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9nYXRoZXIodmFsdWUuMCwgc2VsZi4w LCBtYXNrLjApKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3Rf aWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEg ewotLSAgICAgICAgICAgICAgICBtb2QgWzwkaWQgX3JlYWQ+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCi0tICAgICAg ICAgICAgICAgICAgICBmbiByZWFkKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgdiA9IFswX2kzMjsgJGVsZW1fY291bnRdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBpIGluIDAuLiRlbGVtX2NvdW50IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdltp XSA9IGkgYXMgaTMyOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbXV0IHB0ciA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0ciA9IHB0ci5yZXBsYWNlKGksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmdltpXSBhcyAqY29uc3QgaTMyIGFzICptdXQgaTMyCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsbCBtYXNrIGVsZW1lbnRzIGFyZSB0cnVlOgot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gJG1hc2tfdHk6OnNwbGF0KHRydWUp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWYgPSBTaW1kOjo8W2kzMjsgJGVsZW1f Y291bnRdPjo6c3BsYXQoNDJfaTMyKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjog U2ltZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHRyLnJlYWQobWFzaywgZGVmKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltZDo6PFtpMzI7 ICRlbGVtX2NvdW50XT46OmZyb21fc2xpY2VfdW5hbGlnbmVkKAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnYKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBtYXNrID0gbWFzazsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxl bV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyICE9IDAgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzayA9IG1hc2sucmVwbGFjZShpLCBm YWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXZlbiBtYXNrIGVsZW1l bnRzIGFyZSB0cnVlLCBvZGQgb25lcyBhcmUgZmFsc2U6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHI6IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9IHVuc2FmZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRlZikKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IHY7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGVbaV0gPSA0MjsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTaW1kOjo8W2kzMjsgJGVsZW1fY291bnRdPjo6ZnJvbV9zbGljZV91bmFs aWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBhbGwgbWFzayBlbGVtZW50cyBhcmUgZmFsc2U6Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG1hc2sgPSAkbWFza190eTo6c3BsYXQoZmFsc2UpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWYgPSBTaW1kOjo8W2kzMjsgJGVsZW1fY291 bnRdPjo6c3BsYXQoNDJfaTMyKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcjogU2lt ZDxbaTMyOyAkZWxlbV9jb3VudF0+ID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHRyLnJlYWQobWFzaywgZGVmKSB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEociwgZGVmKTsKLS0gICAgICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfcHRyX3dyaXRlIHsKLS0gICAg KFskZWxlbV90eTp0eTsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1hc2tfdHk6aWRl bnQKLS0gICAgIHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIGltcGw8VD4gJGlkPFQ+Ci0t ICAgICAgICB3aGVyZQotLSAgICAgICAgICAgIFtUOyAkZWxlbV9jb3VudF06IHNlYWxlZDo6U2lt ZEFycmF5LAotLSAgICAgICAgewotLSAgICAgICAgICAgIC8vLyBXcml0ZXMgc2VsZWN0ZWQgdmVj dG9yIGVsZW1lbnRzIHRvIG1lbW9yeS4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gV3JpdGVzIHRoZSBsYW5lcyBvZiBgdmFsdWVzYCBmb3Igd2hpY2ggdGhlIG1hc2sgaXMgYHRy dWVgIHRvCi0tICAgICAgICAgICAgLy8vIHRoZWlyIGNvcnJlc3BvbmRpbmcgbWVtb3J5IGFkZHJl c3NlcyBpbiBgc2VsZmAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE5vIG1l bW9yeSBpcyBhY2Nlc3NlZCBmb3IgdGhvc2UgbGFuZXMgb2YgYHNlbGZgIHdob3NlIGBtYXNrYCBp cwotLSAgICAgICAgICAgIC8vLyBgZmFsc2VgLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyBPdmVybGFwcGluZyBtZW1vcnkgYWRkcmVzc2VzIG9mIGBzZWxmYCBhcmUgd3JpdHRl biB0byBpbiBvcmRlcgotLSAgICAgICAgICAgIC8vLyBmcm9tIHRoZSBsZXN0LXNpZ25pZmljYW50 IHRvIHRoZSBtb3N0LXNpZ25pZmljYW50IGVsZW1lbnQuCi0tICAgICAgICAgICAgLy8vCi0tICAg ICAgICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8v IFRoaXMgbWV0aG9kIGlzIHVuc2FmZSBiZWNhdXNlIGl0IGRlcmVmZXJlbmNlcyByYXcgcG9pbnRl cnMuIFRoZQotLSAgICAgICAgICAgIC8vLyBwb2ludGVycyBtdXN0IGJlIGFsaWduZWQgdG8gYG1l bTo6YWxpZ25fb2Y6OjxUPigpYC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgdW5zYWZlIGZuIHdyaXRlPE0+KHNlbGYsIG1hc2s6IFNpbWQ8W007ICRlbGVtX2NvdW50 XT4sIHZhbHVlOiBTaW1kPFtUOyAkZWxlbV9jb3VudF0+KQotLSAgICAgICAgICAgIHdoZXJlCi0t ICAgICAgICAgICAgICAgIE06IHNlYWxlZDo6TWFzaywKLS0gICAgICAgICAgICAgICAgW007ICRl bGVtX2NvdW50XTogc2VhbGVkOjpTaW1kQXJyYXksCi0tICAgICAgICAgICAgewotLSAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2NhdHRlcjsKLS0gICAgICAgICAgICAgICAg c2ltZF9zY2F0dGVyKHZhbHVlLjAsIHNlbGYuMCwgbWFzay4wKQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoK LS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBtb2QgWzwkaWQg X3dyaXRlPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAg ICAgICAgICAgICAgI1t0ZXN0XQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGUoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9ydHlfdHdvID0gWzQyLCA0MiwgNDIsIC4uLl0K LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZm9ydHlfdHdvCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgID0gU2ltZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OnNwbGF0KDQyX2kzMik7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IHdpbGwgd3JpdGUgdG8g dGhpcyBhcnJheQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJyID0gWzBfaTMy OyAkZWxlbV9jb3VudF07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVs ZW1fY291bnQgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJbaV0gPSBpIGFzIGkz MjsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYXJyID0gWzAsIDEsIDIsIC4uLl0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHB0ciA9ICRpZDo6PGkzMj46Om51bGwoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0 ciA9IHB0ci5yZXBsYWNlKGksIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcnIuYXNfcHRyKCkuYWRkKGkpIGFzICptdXQgaTMyCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBwdHIgPSBbJmFyclswXSwgJmFyclsxXSwgLi4uXQotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHdyaXRlIGBmb3J0eV90d29gIHRvIGFsbCBlbGVtZW50cyBvZiBg dmAKLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBiYWNrdXAgPSBhcnI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIud3JpdGUoJG1hc2tfdHk6 OnNwbGF0KHRydWUpLCBmb3J0eV90d28pCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyLCBbNDJfaTMyOyAk ZWxlbV9jb3VudF0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnIgPSBiYWNrdXA7 ICAvLyBhcnIgPSBbMCwgMSwgMiwgLi4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSA0MiB0byBldmVuIGVsZW1lbnRzIG9m IGFycjoKLS0gICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHNldCBvZGQgZWxlbWVudHMgb2YgdGhlIG1hc2sgdG8gZmFsc2UKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtYXNrID0gJG1hc2tfdHk6OnNwbGF0KHRydWUp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrID0gbWFzay5yZXBsYWNlKGksIGZh bHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXNrID0g W3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgLi4uXQotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBleHBlY3RlZCByZXN1bHQgciA9IFs0MiwgMSwgNDIsIDMsIDQyLCA1LCAuLi5d Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgciA9IGFycjsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcltpXSA9IDQyOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBiYWNrdXAgPSBhcnI7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2FmZSB7IHB0ci53cml0ZShtYXNrLCBmb3J0eV90d28pIH07Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyLCByKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXJyID0gYmFja3VwOyAgLy8gYXJyID0gWzAsIDEsIDIsIDMsIC4uLl0K LS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg Ly8gd3JpdGUgNDIgdG8gbm8gZWxlbWVudHMgb2YgYXJyCi0tICAgICAgICAgICAgICAgICAgICAg ICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmFja3VwID0gYXJyOwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHRyLndyaXRlKCRtYXNrX3R5OjpzcGxhdChmYWxzZSksIGZvcnR5X3R3bykK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShhcnIsIGJhY2t1cCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL3B0ci5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL3B0ci5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNCArMCwwIEBACi0tLy8hIFZlY3RvciBvZiBw b2ludGVycwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBnYXRoZXJfc2NhdHRlcjsKLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3 aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMv Yml0d2lzZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3Jl ZHVjdGlvbnMvYml0d2lzZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAot KysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvYml0 d2lzZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTUxICsw LDAgQEAKLS0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIGJpdHdpc2UgdmVjdG9y IHJlZHVjdGlvbnMuCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9y ZWR1Y3Rpb25fYml0d2lzZSB7Ci0tICAgICgKLS0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06Ci0tICAgICAgICAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQgfCAk dGVzdF90dDp0dCB8Ci0tICAgICAgICAoJGNvbnZlcnQ6ZXhwcikgfAotLSAgICAgICAgKCR0cnVl OmV4cHIsICRmYWxzZTpleHByKQotLSAgICApID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0g ICAgICAgICAgICAvLy8gTGFuZS13aXNlIGJpdHdpc2UgYGFuZGAgb2YgdGhlIHZlY3RvciBlbGVt ZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gTm90ZTogaWYgdGhlIHZl Y3RvciBoYXMgb25lIGxhbmUsIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZQotLSAgICAgICAgICAg IC8vLyB2ZWN0b3IgaXMgcmV0dXJuZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIGFuZChzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FuZDsKLS0g ICAgICAgICAgICAgICAgICAgIGxldCByOiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVj ZV9hbmQoc2VsZi4wKSB9OwotLSAgICAgICAgICAgICAgICAgICAgJGNvbnZlcnQocikKLS0gICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJj aDY0IildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiBicm9rZW4gb24gYWFyY2g2NAotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQotLSAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OwotLSAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB4ICY9IHNlbGYuZXh0cmFjdChpKSBhcyAkZWxlbV90eTsKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIHgKLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGJpdHdpc2Ug YG9yYCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAg ICAgIC8vLyBOb3RlOiBpZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFuZSwgdGhlIGZpcnN0IGVsZW1l bnQgb2YgdGhlCi0tICAgICAgICAgICAgLy8vIHZlY3RvciBpcyByZXR1cm5lZC4KLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gb3Ioc2VsZikgLT4gJGVsZW1fdHkg ewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0K LS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX3JlZHVjZV9vcjsKLS0gICAgICAgICAgICAgICAgICAgIGxldCByOiAkaWVsZW1fdHkg PSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9vcihzZWxmLjApIH07Ci0tICAgICAgICAgICAgICAgICAg ICAkY29udmVydChyKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBhYXJjaDY0Ci0tICAgICAgICAgICAgICAg ICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv aXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3Qo MCkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHggfD0gc2VsZi5leHRyYWN0KGkpIGFz ICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg eAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8v LyBMYW5lLXdpc2UgYml0d2lzZSBgeG9yYCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAg ICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBOb3RlOiBpZiB0aGUgdmVjdG9yIGhhcyBvbmUg bGFuZSwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCi0tICAgICAgICAgICAgLy8vIHZlY3RvciBp cyByZXR1cm5lZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4g eG9yKHNlbGYpIC0+ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9hcmNoID0gImFhcmNoNjQiKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfeG9yOwotLSAgICAgICAgICAgICAg ICAgICAgbGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX3hvcihzZWxmLjAp IH07Ci0tICAgICAgICAgICAgICAgICAgICAkY29udmVydChyKQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAg ICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBh YXJjaDY0Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IHggXj0gc2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiF7Ci0tICAgICAgICAgICAgJHRl c3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfcmVkdWN0aW9uX2JpdHdpc2U+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gYW5kKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwgJGZhbHNlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5hbmQoKSwgJHRydWUpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICR0cnVlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5h bmQoKSwgJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOwotLQotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIG9yKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFsc2UpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigpLCAkZmFsc2UpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgdiA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdiA9IHYucmVwbGFjZSgwLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh2Lm9yKCksICR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9 ICRpZDo6c3BsYXQoJHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5y ZXBsYWNlKDAsICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5l cygpID4gMSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5vcigp LCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICRmYWxzZSk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAg ICAgICAgICAgICAgICAgIGZuIHhvcigpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6c3BsYXQoJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYueG9yKCksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAk aWQ6OnNwbGF0KCR0cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVz KCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lnhvcigp LCAkZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6 c3BsYXQoJGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFj ZSgwLCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lnhvcigp LCAkdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCR0 cnVlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgwLCAkZmFs c2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0cnVlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYueG9yKCksICRmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGljLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvZmxvYXRf YXJpdGhtZXRpYy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3Jl ZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAw MCArMDMwMAotQEAgLTEsMzEzICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jp em9udGFsIGZsb2F0IHZlY3RvciBhcml0aG1ldGljIHJlZHVjdGlvbnMuCi0tCi0tbWFjcm9fcnVs ZXMhIGltcGxfcmVkdWN0aW9uX2Zsb2F0X2FyaXRobWV0aWMgewotLSAgICAoWyRlbGVtX3R5Omlk ZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0g ICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCBzdW0gb2YgdGhl IHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhl IGludHJpbnNpYyBwZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVu dHMuCi0tICAgICAgICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgot LSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyA+ICgoeDAgKyB4MSkgKyAoeDIgKyB4 MykpICsgKCh4NCArIHg1KSArICh4NiArIHg3KSkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAg ICAgICAvLy8gSWYgb25lIG9mIHRoZSB2ZWN0b3IgZWxlbWVudCBpcyBgTmFOYCB0aGUgcmVkdWN0 aW9uIHJldHVybnMKLS0gICAgICAgICAgICAvLy8gYE5hTmAuIFRoZSByZXN1bHRpbmcgYE5hTmAg aXMgbm90IHJlcXVpcmVkIHRvIGJlIGVxdWFsIHRvIGFueQotLSAgICAgICAgICAgIC8vLyBvZiB0 aGUgYE5hTmBzIGluIHRoZSB2ZWN0b3IuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIHN1bShzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FkZF9vcmRl cmVkOwotLSAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYWRkX29yZGVy ZWQoc2VsZi4wLCAwIGFzICRlbGVtX3R5KSB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAgICAgICAg ICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKLS0g ICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9 IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCArPSBzZWxm LmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgLy8vIEhvcml6b250YWwgcHJvZHVjdCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRz LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZv cm1zIGEgdHJlZS1yZWR1Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KLS0gICAgICAgICAg ICAvLy8gVGhhdCBpcywgZm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6Ci0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vID4gKCh4MCAqIHgxKSAqICh4MiAqIHgzKSkgKiAoKHg0ICogeDUp ICogKHg2ICogeDcpKQotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBvbmUg b2YgdGhlIHZlY3RvciBlbGVtZW50IGlzIGBOYU5gIHRoZSByZWR1Y3Rpb24gcmV0dXJucwotLSAg ICAgICAgICAgIC8vLyBgTmFOYC4gVGhlIHJlc3VsdGluZyBgTmFOYCBpcyBub3QgcmVxdWlyZWQg dG8gYmUgZXF1YWwgdG8gYW55Ci0tICAgICAgICAgICAgLy8vIG9mIHRoZSBgTmFOYHMgaW4gdGhl IHZlY3Rvci4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gcHJv ZHVjdChzZWxmKSAtPiAkZWxlbV90eSB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJn ZXRfYXJjaCA9ICJhYXJjaDY0IikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX211bF9vcmRlcmVkOwotLSAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQoc2VsZi4wLCAx IGFzICRlbGVtX3R5KSB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tj ZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKLS0gICAgICAgICAgICAg ICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2lt ZC9pc3N1ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFj dCgwKSBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6 bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgeCAqPSBzZWxmLmV4dHJhY3QoaSkg YXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0t ICAgICAgICBpbXBsIGNyYXRlOjppdGVyOjpTdW0gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAkaWQ+PihpdGVy OiBJKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgwLiks IGNyYXRlOjpvcHM6OkFkZDo6YWRkKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0g ICAgICAgIGltcGwgY3JhdGU6Oml0ZXI6OlByb2R1Y3QgZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJGlk Pj4oaXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3Bs YXQoMS4pLCBjcmF0ZTo6b3BzOjpNdWw6Om11bCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICBpbXBsPCdhPiBjcmF0ZTo6aXRlcjo6U3VtPCYnYSAkaWQ+IGZvciAkaWQg ewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRv cjxJdGVtID0gJidhICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Ci0tICAgICAgICAgICAgICAgIGl0 ZXIuZm9sZCgkaWQ6OnNwbGF0KDAuKSwgfGEsIGJ8IGNyYXRlOjpvcHM6OkFkZDo6YWRkKGEsICpi KSkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsPCdhPiBjcmF0 ZTo6aXRlcjo6UHJvZHVjdDwmJ2EgJGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGlu ZV0KLS0gICAgICAgICAgICBmbiBwcm9kdWN0PEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4o aXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQo MS4pLCB8YSwgYnwgY3JhdGU6Om9wczo6TXVsOjptdWwoYSwgKmIpKQotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90 dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAvLyBDb21w YXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KLS0gICAg ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX3JlZHVjdGlvbl9mbG9hdF9hcml0aD5dIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgIGZuIGFsdGVybmF0aW5n KHg6IHVzaXplKSAtPiAkaWQgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9 ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg aSAlIHggPT0gMCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBs YWNlKGksIDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIHYKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQot LSAgICAgICAgICAgICAgICAgICAgZm4gc3VtKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYuc3VtKCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYuc3VtKCksICRpZDo6bGFuZXMoKSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZygyKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2LnN1bSgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGlkOjpsYW5l cygpIC8gMiArICRpZDo6bGFuZXMoKSkgYXMgJGVsZW1fdHkKLS0gICAgICAgICAgICAgICAgICAg ICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiBwcm9kdWN0KCkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYucHJvZHVjdCgpLCAwIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnByb2R1Y3QoKSwgMSBh cyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSBtYXRjaCAkaWQ6 OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA2NCA9PiAxNiwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgMzIgPT4gOCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMTYgPT4gNCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXyA9PiAyLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYg PSBhbHRlcm5hdGluZyhmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnByb2R1Y3QoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDJfdXNpemUucG93KCgkaWQ6OmxhbmVzKCkgLyBmKSBhcyB1MzIpCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcyAkZWxlbV90eSkKLS0gICAgICAgICAgICAg ICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVucmVhY2hhYmxl X2NvZGUpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc3VtX25hbigpIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLmxsdm0ub3JnL3Nob3dfYnVnLmNn aT9pZD0zNjczMgotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNgotLSAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbjAgPSBj cmF0ZTo6JGVsZW1fdHk6Ok5BTjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdjAgPSAk aWQ6OnNwbGF0KC0zLjApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRp ZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYw LnJlcGxhY2UoaSwgbjApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUg dmVjdG9yIGNvbnRhaW5zIGEgTmFOIHRoZSByZXN1bHQgaXMgTmFOOgotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg di5zdW0oKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW4g YXQge30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnN1bSgpLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaiwgbjApOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnN1bSgpLmlzX25hbigpKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQobjApOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEodi5zdW0oKS5pc19uYW4oKSwgImFsbCBuYW5zIHwgezo/fSIs IHYpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVucmVhY2hhYmxlX2NvZGUpXQot LSAgICAgICAgICAgICAgICAgICAgZm4gcHJvZHVjdF9uYW4oKSB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 MzY3MzIKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzYKLS0gICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm47Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4wID0gY3JhdGU6 OiRlbGVtX3R5OjpOQU47Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpz cGxhdCgtMy4wKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6Omxh bmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB2MC5yZXBs YWNlKGksIG4wKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3Rv ciBjb250YWlucyBhIE5hTiB0aGUgcmVzdWx0IGlzIE5hTjoKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJv ZHVjdCgpLmlzX25hbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbiBh dCB7fSA9PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYucHJvZHVjdCgpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaiwgbjApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnByb2R1Y3QoKS5pc19uYW4oKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KG4wKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHYucHJvZHVjdCgpLmlzX25hbigpLCAiYWxsIG5h bnMgfCB7Oj99Iiwgdik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbYWxsb3codW51c2VkLCBk ZWFkX2NvZGUpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc3VtX3JvdW5kb2ZmKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFBlcmZvcm1zIGEgdHJlZS1yZWR1Y3Rpb24KLS0gICAg ICAgICAgICAgICAgICAgICAgICBmbiB0cmVlX3JlZHVjZV9zdW0oYTogJlskZWxlbV90eV0pIC0+ ICRlbGVtX3R5IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5pc19l bXB0eSgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYS5sZW4oKSA9PSAxIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbMF0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIGlmIGEubGVuKCkgPT0gMiB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhWzBdICsgYVsxXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pZCA9IGEubGVu KCkgLyAyOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChsZWZ0LCByaWdo dCkgPSBhLnNwbGl0X2F0KG1pZCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 cmVlX3JlZHVjZV9zdW0obGVmdCkgKyB0cmVlX3JlZHVjZV9zdW0ocmlnaHQpCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzdGFydCA9IGNyYXRlOjokZWxlbV90eTo6RVBT SUxPTjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHNjYWxhcl9yZWR1Y3Rpb24g PSAwLiBhcyAkZWxlbV90eTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYg PSAkaWQ6OnNwbGF0KDAuIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBm b3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYyA9IGlmIGkgJSAyID09IDAgeyAxZTMgfSBlbHNlIHsgLTEuIH07Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXJ0ICo9IDo6Y29yZTo6JGVsZW1fdHk6OmNvbnN0czo6UEkgKiBj OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJfcmVkdWN0aW9uICs9IHN0YXJ0 OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIHN0YXJ0KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHNpbWRfcmVkdWN0aW9uID0gdi5zdW0oKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGEgPSBbMC4gYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMoKV07Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgdi53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCBhKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdHJlZV9yZWR1Y3Rpb24gPSB0cmVlX3JlZHVjZV9zdW0oJmEp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvbGVyYXRlIDEgVUxQIGRpZmZlcmVu Y2U6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZF9iaXRzID0gc2ltZF9yZWR1Y3Rp b24udG9fYml0cygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmVlX2JpdHMgPSB0 cmVlX3JlZHVjdGlvbi50b19iaXRzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 ISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVkX2JpdHMgPiB0cmVlX2JpdHMg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkX2JpdHMgLSB0cmVlX2JpdHMK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRyZWVfYml0cyAtIHJlZF9iaXRzCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gPCAyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yOiB7 Oj99IHwgc2ltZF9yZWR1Y3Rpb246IHs6P30gfCBcCi0tdHJlZV9yZWR1Y3Rpb246IHt9IHwgc2Nh bGFyX3JlZHVjdGlvbjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaW1kX3JlZHVjdGlvbiwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHJlZV9yZWR1Y3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNjYWxhcl9yZWR1Y3Rpb24KLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICAjW2FsbG93KHVudXNlZCwgZGVhZF9jb2RlKV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIHByb2R1Y3Rfcm91bmRvZmYoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdXNlIDo6Y29yZTo6Y29udmVydDo6VHJ5SW50bzsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBQZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uCi0tICAgICAgICAgICAgICAgICAgICAgICAg Zm4gdHJlZV9yZWR1Y2VfcHJvZHVjdChhOiAmWyRlbGVtX3R5XSkgLT4gJGVsZW1fdHkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmlzX2VtcHR5KCkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBhLmxlbigpID09IDEgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYVswXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgaWYgYS5sZW4oKSA9PSAyIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFb MF0gKiBhWzFdCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlkID0gYS5sZW4oKSAvIDI7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgKGxlZnQsIHJpZ2h0KSA9IGEuc3BsaXRfYXQo bWlkKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfcmVkdWNlX3Byb2R1 Y3QobGVmdCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRyZWVfcmVk dWNlX3Byb2R1Y3QocmlnaHQpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBzdGFydCA9IGNyYXRlOjokZWxlbV90eTo6RVBTSUxPTjsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IHNjYWxhcl9yZWR1Y3Rpb24gPSAxLiBhcyAkZWxlbV90eTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAuIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9IGlmIGkgJSAyID09IDAgeyAxZTMg fSBlbHNlIHsgLTEuIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ICo9IDo6 Y29yZTo6JGVsZW1fdHk6OmNvbnN0czo6UEkgKiBjOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzY2FsYXJfcmVkdWN0aW9uICo9IHN0YXJ0OwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ID0gdi5yZXBsYWNlKGksIHN0YXJ0KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNpbWRfcmVkdWN0aW9uID0gdi5wcm9kdWN0 KCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gWzAuIGFzICRlbGVt X3R5OyAkaWQ6OmxhbmVzKCldOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHYud3JpdGVfdG9f c2xpY2VfdW5hbGlnbmVkKCZtdXQgYSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRy ZWVfcmVkdWN0aW9uID0gdHJlZV9yZWR1Y2VfcHJvZHVjdCgmYSk7Ci0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IFRvbyBpbXByZWNpc2UsIGV2ZW4gb25seSBmb3IgcHJvZHVj dChmMzJ4OCkuCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmlndXJlIG91dCBob3cgdG8g bmFycm93IHRoaXMgZG93bi4KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdWxwX2xpbWl0 ID0gJGlkOjpsYW5lcygpIC8gMjsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkX2Jp dHMgPSBzaW1kX3JlZHVjdGlvbi50b19iaXRzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHRyZWVfYml0cyA9IHRyZWVfcmVkdWN0aW9uLnRvX2JpdHMoKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWRf Yml0cyA+IHRyZWVfYml0cyB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRf Yml0cyAtIHRyZWVfYml0cwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlZV9iaXRzIC0gcmVkX2JpdHMKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSA8IHVscF9saW1pdC50cnlfaW50bygpLnVud3Jh cCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVjdG9yOiB7Oj99IHwgc2ltZF9y ZWR1Y3Rpb246IHs6P30gfCBcCi0tdHJlZV9yZWR1Y3Rpb246IHt9IHwgc2NhbGFyX3JlZHVjdGlv bjoge30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaW1kX3JlZHVjdGlvbiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJlZV9yZWR1Y3Rpb24sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcl9y ZWR1Y3Rpb24KLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9pbnRlZ2VyX2FyaXRobWV0aWMucnMKLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2ludGVnZXJf YXJpdGhtZXRpYy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9h cml0aG1ldGljLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwx OTMgKzAsMCBAQAotLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgaW50ZWdlciB2 ZWN0b3IgYXJpdGhtZXRpYyByZWR1Y3Rpb25zLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVj dGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9j b3VudDpleHByXTogJGlkOmlkZW50IHwgJGllbGVtX3R5OmlkZW50Ci0tICAgICB8ICR0ZXN0X3R0 OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIEhvcml6b250 YWwgd3JhcHBpbmcgc3VtIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAgICAgICAgICAgLy8v Ci0tICAgICAgICAgICAgLy8vIFRoZSBpbnRyaW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlv biBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgotLSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3Ig YW4gOCBlbGVtZW50IHZlY3RvcjoKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g PiAoKHgwICsgeDEpICsgKHgyICsgeDMpKSArICgoeDQgKyB4NSkgKyAoeDYgKyB4NykpCi0tICAg ICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGFuIG9wZXJhdGlvbiBvdmVyZmxvd3Mg aXQgcmV0dXJucyB0aGUgbWF0aGVtYXRpY2FsIHJlc3VsdAotLSAgICAgICAgICAgIC8vLyBtb2R1 bG8gYDJebmAgd2hlcmUgYG5gIGlzIHRoZSBudW1iZXIgb2YgdGltZXMgaXQgb3ZlcmZsb3dzLgot LSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19zdW0o c2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2Fy Y2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hZGRfb3JkZXJlZDsKLS0gICAgICAgICAg ICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkgPSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9hZGRfb3Jk ZXJlZChzZWxmLjAsIDAgYXMgJGllbGVtX3R5KSB9OwotLSAgICAgICAgICAgICAgICAgICAgdiBh cyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0Ci0tICAgICAgICAgICAgICAgICAg ICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE1Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkg YXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVz KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHggPSB4LndyYXBwaW5nX2FkZChzZWxmLmV4 dHJhY3QoaSkgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHdyYXBwaW5nIHByb2R1Y3Qgb2YgdGhlIHZlY3RvciBl bGVtZW50cy4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNp YyBwZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCi0tICAg ICAgICAgICAgLy8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyA+ICgoeDAgKiB4MSkgKiAoeDIgKiB4MykpICogKCh4 NCAqIHg1KSAqICh4NiAqIHg3KSkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8g SWYgYW4gb3BlcmF0aW9uIG92ZXJmbG93cyBpdCByZXR1cm5zIHRoZSBtYXRoZW1hdGljYWwgcmVz dWx0Ci0tICAgICAgICAgICAgLy8vIG1vZHVsbyBgMl5uYCB3aGVyZSBgbmAgaXMgdGhlIG51bWJl ciBvZiB0aW1lcyBpdCBvdmVyZmxvd3MuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgcHViIGZuIHdyYXBwaW5nX3Byb2R1Y3Qoc2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KLS0gICAgICAg ICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3Jl ZHVjZV9tdWxfb3JkZXJlZDsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB2OiAkaWVsZW1fdHkg PSB1bnNhZmUgeyBzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZChzZWxmLjAsIDEgYXMgJGllbGVtX3R5 KSB9OwotLSAgICAgICAgICAgICAgICAgICAgdiBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS0g ICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBv biBBQXJjaDY0Ci0tICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1Ci0tICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgIHggPSB4LndyYXBwaW5nX211bChzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHkpOwotLSAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBjcmF0 ZTo6aXRlcjo6U3VtIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlkIHsKLS0g ICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMCksIGNyYXRlOjpvcHM6OkFkZDo6 YWRkKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6 Oml0ZXI6OlByb2R1Y3QgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjogSSkgLT4gJGlk IHsKLS0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMSksIGNyYXRlOjpvcHM6 Ok11bDo6bXVsKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8 J2E+IGNyYXRlOjppdGVyOjpTdW08JidhICRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gc3VtPEk6IEl0ZXJhdG9yPEl0ZW0gPSAmJ2EgJGlkPj4o aXRlcjogSSkgLT4gJGlkIHsKLS0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQo MCksIHxhLCBifCBjcmF0ZTo6b3BzOjpBZGQ6OmFkZChhLCAqYikpCi0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6OlByb2R1Y3Q8Jidh ICRpZD4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4g cHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7Ci0t ICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDEpLCB8YSwgYnwgY3JhdGU6Om9w czo6TXVsOjptdWwoYSwgKmIpKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAg ICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25faW50 X2FyaXRoPl0gewotLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLQotLSAgICAg ICAgICAgICAgICAgICAgZm4gYWx0ZXJuYXRpbmcoeDogdXNpemUpIC0+ICRpZCB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgeCA9PSAwIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoaSwgMiBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cmFw cGluZ19zdW0oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0 KDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53 cmFwcGluZ19zdW0oKSwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19zdW0oKSwgJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKDIpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdi53cmFwcGluZ19zdW0oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgkaWQ6OmxhbmVzKCkgLyAyICsgJGlkOjpsYW5lcygpKSBhcyAkZWxlbV90eQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2LndyYXBwaW5nX3N1bSgpLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMiBhcyAkZWxlbV90eQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4g d3JhcHBpbmdfc3VtX292ZXJmbG93KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz dGFydCA9ICRlbGVtX3R5OjptYXhfdmFsdWUoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtICgkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkgLyAyKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoc3RhcnQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2d3JhcHBpbmdfc3VtID0gdi53cmFwcGluZ19zdW0oKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHdyYXBwaW5nX3N1bSA9IHN0YXJ0Owot LSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBfIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwaW5nX3N1bSA9IHdyYXBwaW5nX3N1bS53cmFw cGluZ19hZGQoc3RhcnQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHdyYXBwaW5nX3N1bSwgdndyYXBwaW5nX3N1bSwgInYg PSB7Oj99Iiwgdik7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHdyYXBwaW5nX3Byb2R1Y3Qo KSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi53cmFwcGluZ19w cm9kdWN0KCksIDAgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKHYud3JhcHBpbmdfcHJvZHVjdCgpLCAxIGFzICRlbGVtX3R5KTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZiA9IG1hdGNoICRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDY0ID0+IDE2LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAzMiA9PiA4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNiA9PiA0LAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfID0+IDIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IGFsdGVybmF0aW5nKGYpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdi53cmFwcGluZ19wcm9kdWN0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoMl91c2l6ZS5wb3coKCRpZDo6bGFuZXMoKSAvIGYpIGFzIHUzMikKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcyAkZWxlbV90eSkKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdi53cmFwcGluZ19wcm9kdWN0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAyIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICBmbiB3cmFw cGluZ19wcm9kdWN0X292ZXJmbG93KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz dGFydCA9ICRlbGVtX3R5OjptYXhfdmFsdWUoKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtICgkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkgLyAyKTsKLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoc3RhcnQgYXMgJGVsZW1fdHkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2bXVsID0gdi53cmFwcGluZ19wcm9kdWN0KCk7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtdWwgPSBzdGFydDsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgXyBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtdWwgPSBtdWwud3JhcHBpbmdfbXVsKHN0YXJ0KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtdWwsIHZt dWwsICJ2ID0gezo/fSIsIHYpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5y YnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9tYXNr LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWFz ay5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlv bnMvbWFzay5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWFzay5ycwkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsODkgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgbWFzayByZWR1Y3Rpb25zLgotLQotLW1hY3Jv X3J1bGVzISBpbXBsX3JlZHVjdGlvbl9tYXNrIHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBp bXBsICRpZCB7Ci0tICAgICAgICAgICAgLy8vIEFyZSBgYWxsYCB2ZWN0b3IgbGFuZXMgYHRydWVg PwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBhbGwoc2VsZikg LT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjpjb2RlZ2VuOjpyZWR1 Y3Rpb25zOjptYXNrOjpBbGw6OmFsbChzZWxmKSB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIC8vLyBJcyBgYW55YCB2ZWN0b3IgbGFuZSBgdHJ1ZWA/Ci0tICAgICAgICAgICAgI1tpbmxp bmVdCi0tICAgICAgICAgICAgcHViIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgdW5zYWZlIHsgY3JhdGU6OmNvZGVnZW46OnJlZHVjdGlvbnM6Om1hc2s6OkFueTo6YW55 KHNlbGYpIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgLy8vIEFyZSBgYWxsYCB2ZWN0 b3IgbGFuZXMgYGZhbHNlYD8KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBw dWIgZm4gbm9uZShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgIXNlbGYuYW55KCkK LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICB0ZXN0X2lmISB7Ci0tICAg ICAgICAgICAgJHRlc3RfdHQ6Ci0tICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKLS0gICAgICAg ICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9uPl0gewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAg ICAgICAgICAgICAgICBmbiBhbGwoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEg PSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYS5h bGwoKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKCFhLmFsbCgpKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIGZhbHNlKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuYWxsKCkpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIHRydWUpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5hbGwoKSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIGFueSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IShhLmFueSgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQo ZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuYW55KCkpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgZmFsc2UpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFueSgpKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRpZDo6c3BsYXQoZmFsc2Up OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCB0cnVl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYS5hbnkoKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIG5vbmUoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEoIWEubm9uZSgpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6 c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYS5ub25lKCkp OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdCh0cnVl KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgPSBhLnJlcGxhY2UoaSwgZmFs c2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5ub25lKCkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhID0gJGlkOjpzcGxh dChmYWxzZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNl KGksIHRydWUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5u b25lKCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWluX21heC5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMv bWluX21heC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWluX21heC5ycwkx OTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzYwICswLDAgQEAKLS0v LyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIHZlY3RvciBtaW4vbWF4IHJlZHVjdGlv bnMuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfcmVkdWN0aW9uX21pbl9tYXggewotLSAgICAoWyRl bGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50Ci0tICAgICB8ICRpZWxl bV90eTppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBsICRpZCB7Ci0tICAg ICAgICAgICAgLy8vIExhcmdlc3QgdmVjdG9yIGVsZW1lbnQgdmFsdWUuCi0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIG1heF9lbGVtZW50KHNlbGYpIC0+ICRlbGVt X3R5IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KGFueSgKLS0gICAgICAgICAgICAgICAg ICAgIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0 X2FyY2ggPSAiYXJtIiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2Vy cGM2NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLAotLSAg ICAgICAgICAgICAgICApKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfbWF4OwotLSAgICAgICAgICAgICAgICAg ICAgbGV0IHY6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX21heChzZWxmLjApIH07 Ci0tICAgICAgICAgICAgICAgICAgICB2IGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0 X2FyY2ggPSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJh cm0iLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwKLS0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCi0tICAgICAgICAgICAg ICAgICkpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhN RTogYnJva2VuIG9uIEFBcmNoNjQKLS0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKLS0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gV0FTTTMyCi0tICAgICAgICAgICAgICAg ICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv aXNzdWVzLzkxCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3Qo MCk7Ci0tICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIHggPSB4Lm1heChzZWxmLmV4dHJhY3QoaSkpOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBTbWFsbGVzdCB2ZWN0b3Ig ZWxlbWVudCB2YWx1ZS4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIg Zm4gbWluX2VsZW1lbnQoc2VsZikgLT4gJGVsZW1fdHkgewotLSAgICAgICAgICAgICAgICAjW2Nm Zyhub3QoYW55KAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIs Ci0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAotLSAgICAgICAgICAg ICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gIng4NiIsIG5vdCh0YXJnZXRfZmVhdHVyZSA9ICJz c2UyIikpLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwK LS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCi0tICAgICAgICAg ICAgICAgICksKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfbWluOwotLSAgICAgICAgICAgICAgICAgICAgbGV0 IHY6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX21pbihzZWxmLjApIH07Ci0tICAg ICAgICAgICAgICAgICAgICB2IGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgI1tjZmcoYW55KAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2gg PSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAot LSAgICAgICAgICAgICAgICAgICAgYWxsKHRhcmdldF9hcmNoID0gIng4NiIsIG5vdCh0YXJnZXRf ZmVhdHVyZSA9ICJzc2UyIikpLAotLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAi cG93ZXJwYzY0IiwKLS0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIs Ci0tICAgICAgICAgICAgICAgICkpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAg ICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIEFBcmNoNjQKLS0gICAgICAgICAgICAgICAgICAg IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvMTUKLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gaTU4Ni11bmtu b3duLWxpbnV4LWdudQotLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMgotLSAgICAgICAgICAgICAg ICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBXQVNNMzIKLS0gICAgICAgICAgICAgICAgICAgIC8v IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv OTEKLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKTsKLS0g ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgeCA9IHgubWluKHNlbGYuZXh0cmFjdChpKSk7Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICB0ZXN0X2lmISB7JHRlc3RfdHQ6Ci0t ICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBp bnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgotLSAgICAgICAgICAgICNbYWxs b3coY2xpcHB5OjpmbG9hdF9jbXApXQotLSAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3JlZHVj dGlvbl9taW5fbWF4Pl0gewotLSAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K LS0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgIHB1YiBmbiBtYXhfZWxlbWVudCgpIHsK LS0gICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsK LS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAwIGFzICRl bGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewotLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkp OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5tYXhfZWxlbWVudCgpLCAx IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsIDIgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDIgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAg IHB1YiBmbiBtaW5fZWxlbWVudCgpIHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlk OjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo di5taW5fZWxlbWVudCgpLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIGlm ICRpZDo6bGFuZXMoKSA+IDEgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5y ZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodi5taW5fZWxlbWVudCgpLCAwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVt X3R5KTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsIDIgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIDEgYXMgJGVs ZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMiBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkg PiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMiBhcyAk ZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwg MSBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1p bl9lbGVtZW50KCksIDEgYXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9yZWR1Y3Rpb25fZmxvYXRfbWluX21h eCB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4gewotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAgICAgICR0 ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAgICAgIC8v IENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJhbmdlLgot LSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9uX21pbl9tYXhfbmFuPl0gewotLSAgICAgICAg ICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCld Ci0tICAgICAgICAgICAgICAgICAgICBmbiBtaW5fZWxlbWVudF90ZXN0KCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBuID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShuLm1pbigtMy4pLCAtMy4pOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoKC0zLiBhcyAkZWxlbV90eSkubWluKG4pLCAtMy4p OwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRpZDo6c3BsYXQoLTMuKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3Rf bGFuZV9uYW4gPSAhY2ZnIShhbnkoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdl dF9hcmNoID0gImFybSIsIHRhcmdldF9hcmNoID0gImFhcmNoNjQiLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbGwodGFyZ2V0X2FyY2ggPSAieDg2IiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5vdCh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIikKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0 X2FyY2ggPSAicG93ZXJwYzY0IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICApKTsKLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmVjdG9yIGlzIGluaXRpYWxpemVkIHRvIGAtMy5g czogWy0zLCAtMywgLTMsIC0zXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHJlcGxh Y2UgdGhlIGktdGggZWxlbWVudCBvZiB0aGUgdmVjdG9yIHdpdGgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gYE5hTmA6IFstMywgLTMsIC0zLCBOYU5dCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYwLnJlcGxhY2UoaSwgbik7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBOYU4gaXMgaW4gdGhlIGxhc3QgcGxhY2UsIHRo ZSBMTFZNCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG9m IHRoZXNlIG1ldGhvZHMgaXMgYnJva2VuIG9uIHNvbWUKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdGFyZ2V0czoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAk aWQ6OmxhbmVzKCkgLSAxICYmCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJn ZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5lX25hbiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQV06IG5hbiBhdCB7fSA9PiB7fSB8 IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwg di5taW5fZWxlbWVudCgpLCB2KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIElmIHdlIHJlcGxhY2UgYWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBg TmFOYHMsIHRoZSByZXN1bHQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlz IHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9mCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmVjdG9yIGFyZSBgTmFOYHM6Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGogPT0gaS0xIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0JdOiBuYW4gYXQg e30gPT4ge30gfCB7Oj99IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30i LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5f ZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBXZSBhcmUgZG9uZSBoZXJlLCBzaW5jZSB3ZSB3ZXJlIGluIHRoZSBs YXN0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsYW5lIHdoaWNoIGlzIHRo ZSBsYXN0IGl0ZXJhdGlvbiBvZiB0aGUgbG9vcC4KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJyZWFrCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIG5vdCBpbiB0aGUgbGFzdCBsYW5lLCBhbmQg dGhlcmUgaXMgb25seQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvbmUgYE5hTmAg aW4gdGhlIHZlY3Rvci4KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhl IHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSByZXN1bHQgaXMgYE5hTmA6Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA9PSAxIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydCEodi5taW5fZWxlbWVudCgpLmlzX25hbigpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0NdOiBhbGwgbmFucyB8IHY9ezo/ fSB8IG1pbj17fSB8IFwKLS1pc19uYW46IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiwgdi5taW5fZWxlbWVudCgpLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCkKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBBbmQgd2UgYXJlIGRvbmUsIHNpbmNlIHRoZSB2ZWN0b3Igb25seSBoYXMKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uZSBsYW5lIGFueXdheXMuCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgdmVjdG9yIGhh cyBtb3JlIHRoYW4gb25lIGxhbmUsIHNpbmNlIHRoZXJlIGlzCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIG9ubHkgb25lIGBOYU5gIGluIHRoZSB2ZWN0b3IsIHRoZSByZXN1bHQgaXMK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIGAtM2AuCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltEXTogbmFuIGF0IHt9ID0+IHt9 IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5t aW5fZWxlbWVudCgpLCB2KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYg d2UgcmVwbGFjZSBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gdXAtdG8gdGhlIGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUg cmVzdWx0IGlzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0aWxsIGFsd2F5cyBg LTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9mIHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB2ZWN0b3IgYXJlIGBOYU5gczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGogaW4gMC4uaSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5y ZXBsYWNlKGosIG4pOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9 PSAkaWQ6OmxhbmVzKCkgLSAxICYmIGogPT0gaSAtIDEgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIEFsbCBlbGVtZW50cyBvZiB0aGUgdmVjdG9yIGFyZSBgTmFOYHMs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmVmb3JlIHRoZSBy ZXN1bHQgaXMgTmFOIGFzIHdlbGwuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUg I2xhbmVzIG9mIHRoZSB2ZWN0b3IgaXMgPiAxLCBzbwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vICJpIC0gMSIgZG9lcyBub3Qgb3ZlcmZsb3cuCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0VdOiBhbGwg bmFucyB8IHY9ezo/fSB8IG1pbj17fSB8IFwKLS1pc19uYW46IHt9IiwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYsIHYubWluX2VsZW1lbnQoKSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYubWluX2VsZW1lbnQoKS5p c19uYW4oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlIGFyZSBub24tYE5hTmAg ZWxlbWVudHMgaW4gdGhlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g dmVjdG9yLCB0aGVyZWZvcmUgdGhlIHJlc3VsdCBpcyBgLTMuYDoKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltGXTogbmFuIGF0 IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2 ZWN0b3IgY29udGFpbnMgYWxsIE5hTnMgdGhlIHJlc3VsdCBpcyBOYU46Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISgkaWQ6OnNwbGF0KG4pLm1pbl9lbGVtZW50KCkuaXNfbmFuKCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxsIG5hbnMgfCB2PXs6P30gfCBt aW49e30gfCBpc19uYW46IHt9IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRp ZDo6c3BsYXQobiksICRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKS5pc19uYW4oKSk7 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K LS0gICAgICAgICAgICAgICAgICAgIGZuIG1heF9lbGVtZW50X3Rlc3QoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG4ubWF4KC0zLiksIC0zLik7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgoLTMuIGFzICRlbGVtX3R5KS5tYXgobiksIC0zLik7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgtMy4pOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9s YW5lX25hbiA9ICFjZmchKGFueSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0 X2FyY2ggPSAiYXJtIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInBvd2VycGM2NCIsIHRhcmdldF9hcmNoID0gIndh c20zMiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gVGhlIHZlY3RvciBpcyBpbml0aWFsaXplZCB0byBgLTMuYHM6IFstMywgLTMs IC0zLCAtM10KLS0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVz KCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSByZXBsYWNlIHRoZSBpLXRo IGVsZW1lbnQgb2YgdGhlIHZlY3RvciB3aXRoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGBOYU5gOiBbLTMsIC0zLCAtMywgTmFOXQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHYgPSB2MC5yZXBsYWNlKGksIG4pOwotLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvLyBJZiB0aGUgTmFOIGlzIGluIHRoZSBsYXN0IHBsYWNlLCB0aGUgTExWTQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZSBtZXRo b2RzIGlzIGJyb2tlbiBvbiBzb21lCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRh cmdldHM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5lcygp IC0gMSAmJgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF93aXRoX2Jyb2tl bl9sYXN0X2xhbmVfbmFuIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJbQV06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1heF9lbGVtZW50KCksIHYpOwotLQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFjZSBhbGwgdGhl IGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHVwLXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3VsdAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgc3RpbGwgYWx3YXlzIGAtMy5gIHVubGVz cyBhbGwgZWxlbWVudHMgb2YKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo ZSB2ZWN0b3IgYXJlIGBOYU5gczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBqIGluIDAuLmkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2 LnJlcGxhY2Uoaiwgbik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg aiA9PSBpLTEgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWluX2VsZW1lbnQoKSwgdik7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCks IC0zLiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06 IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgZG9uZSBoZXJl LCBzaW5jZSB3ZSB3ZXJlIGluIHRoZSBsYXN0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBsYW5lIHdoaWNoIGlzIHRoZSBsYXN0IGl0ZXJhdGlvbiBvZiB0aGUgbG9vcC4KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgYXJlIG5v dCBpbiB0aGUgbGFzdCBsYW5lLCBhbmQgdGhlcmUgaXMgb25seQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBvbmUgYE5hTmAgaW4gdGhlIHZlY3Rvci4KLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBoYXMgb25lIGxhbmUsIHRoZSByZXN1bHQg aXMgYE5hTmA6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA9 PSAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5tYXhfZWxl bWVudCgpLmlzX25hbigpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiW0NdOiBhbGwgbmFucyB8IHY9ezo/fSB8IG1pbj17fSB8IFwKLS1pc19uYW46IHt9IiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwgdi5tYXhfZWxlbWVudCgp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Lm1heF9lbGVtZW50 KCkuaXNfbmFuKCkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5k IHdlIGFyZSBkb25lLCBzaW5jZSB0aGUgdmVjdG9yIG9ubHkgaGFzCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBvbmUgbGFuZSBhbnl3YXlzLgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhlIHZlY3RvciBoYXMgbW9yZSB0aGFu IG9uZSBsYW5lLCBzaW5jZSB0aGVyZSBpcwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBvbmx5IG9uZSBgTmFOYCBpbiB0aGUgdmVjdG9yLCB0aGUgcmVzdWx0IGlzCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBgLTNgLgotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJbRF06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30iLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQo KSwgdik7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIHJlcGxhY2Ug YWxsIHRoZSBlbGVtZW50cyBpbiB0aGUgdmVjdG9yCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHVwLXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3VsdCBpcwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNz IGFsbCBlbGVtZW50cyBvZiB0aGUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVj dG9yIGFyZSBgTmFOYHM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIDAu LmkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBu KTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gJGlkOjpsYW5l cygpIC0gMSAmJiBqID09IGkgLSAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBBbGwgZWxlbWVudHMgb2YgdGhlIHZlY3RvciBhcmUgYE5hTmBzLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZXJlZm9yZSB0aGUgcmVzdWx0IGlzIE5h TiBhcyB3ZWxsLgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZTogdGhlICNsYW5lcyBvZiB0 aGUgdmVjdG9yIGlzID4gMSwgc28KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyAiaSAtIDEiIGRvZXMgbm90IG92ZXJmbG93LgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEodi5tYXhfZWxlbWVudCgpLmlzX25hbigpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltFXTogYWxsIG5hbnMgfCB2PXs6 P30gfCBtYXg9e30gfCBcCi0taXNfbmFuOiB7fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2LCB2Lm1heF9lbGVtZW50KCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBhcmUgbm9uLWBOYU5gIGVsZW1lbnRzIGlu IHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciwgdGhl cmVmb3JlIHRoZSByZXN1bHQgaXMgYC0zLmA6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIC0zLiwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRl06IG5hbiBhdCB7fSA9PiB7fSB8 IHs6P30iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aSwgdi5tYXhfZWxlbWVudCgpLCB2KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGNvbnRh aW5zIGFsbCBOYU5zIHRoZSByZXN1bHQgaXMgTmFOOgotLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoJGlkOjpzcGxhdChuKS5tYXhfZWxlbWVudCgpLmlzX25hbigpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImFsbCBuYW5zIHwgdj17Oj99IHwgbWF4PXt9IHwgaXNf bmFuOiB7fSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KG4p LCAkaWQ6OnNwbGF0KG4pLm1heF9lbGVtZW50KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OnNwbGF0KG4pLm1heF9lbGVtZW50KCkuaXNfbmFuKCkpOwotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9yZWR1Y3Rpb25zLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvcmVkdWN0aW9ucy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMw MAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEyICswLDAgQEAK LS0vLyEgUmVkdWN0aW9ucwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCBmbG9hdF9hcml0aG1ldGlj OwotLSNbbWFjcm9fdXNlXQotLW1vZCBpbnRlZ2VyX2FyaXRobWV0aWM7Ci0tI1ttYWNyb191c2Vd Ci0tbW9kIGJpdHdpc2U7Ci0tI1ttYWNyb191c2VdCi0tbW9kIG1hc2s7Ci0tI1ttYWNyb191c2Vd Ci0tbW9kIG1pbl9tYXg7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL3NlbGVjdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9zZWxlY3QucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9z ZWxlY3QucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zZWxlY3QucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDczICswLDAgQEAKLS0vLyEgSW1wbGVtZW50cyBt YXNrJ3MgYHNlbGVjdGAuCi0tCi0tLy8vIEltcGxlbWVudHMgbWFzayBzZWxlY3QgbWV0aG9kCi0t bWFjcm9fcnVsZXMhIGltcGxfc2VsZWN0IHsKLS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7Ci0tICAgICAgICBpbXBs ICRpZCB7Ci0tICAgICAgICAgICAgLy8vIFNlbGVjdHMgZWxlbWVudHMgb2YgYGFgIGFuZCBgYmAg dXNpbmcgbWFzay4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gVGhlIGxhbmVz IG9mIHRoZSByZXN1bHQgZm9yIHdoaWNoIHRoZSBtYXNrIGlzIGB0cnVlYCBjb250YWluCi0tICAg ICAgICAgICAgLy8vIHRoZSB2YWx1ZXMgb2YgYGFgLiBUaGUgcmVtYWluaW5nIGxhbmVzIGNvbnRh aW4gdGhlIHZhbHVlcyBvZgotLSAgICAgICAgICAgIC8vLyBgYmAuCi0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHNlbGVjdDxUPihzZWxmLCBhOiBTaW1kPFQ+LCBi OiBTaW1kPFQ+KSAtPiBTaW1kPFQ+Ci0tICAgICAgICAgICAgd2hlcmUKLS0gICAgICAgICAgICAg ICAgVDogc2VhbGVkOjpTaW1kQXJyYXk8TlQgPSA8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gYXMg c2VhbGVkOjpTaW1kQXJyYXk+OjpOVD4sCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2VsZWN0OwotLSAgICAgICAgICAgICAgICBTaW1kKHVu c2FmZSB7IHNpbWRfc2VsZWN0KHNlbGYuMCwgYS4wLCBiLjApIH0pCi0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9zZWxlY3QhKGJvb2wsICRpZCwgJGlkLCAoZmFs c2UsIHRydWUpIHwgJHRlc3RfdHQpOwotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVz dF9zZWxlY3QgewotLSAgICAoCi0tICAgICAgICAkZWxlbV90eTppZGVudCwKLS0gICAgICAgICRt YXNrX3R5OmlkZW50LAotLSAgICAgICAgJHZlY190eTppZGVudCwoJHNtYWxsOmV4cHIsICRsYXJn ZTpleHByKSB8Ci0tICAgICAgICAkdGVzdF90dDp0dAotLSAgICApID0+IHsKLS0gICAgICAgIHRl c3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRl bSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JHZlY190eSBfc2VsZWN0Pl0gewotLSAg ICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwotLQotLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAg ICAgICAgICAgIGZuIHNlbGVjdCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9 ICRzbWFsbCBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRs YXJnZSBhcyAkZWxlbV90eTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICR2 ZWNfdHk6OnNwbGF0KG8pOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJHZlY190 eTo6c3BsYXQodCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBhLmx0KGIpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxlY3QoYSwgYiksIGEpOwot LQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0gYi5sdChhKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0uc2VsZWN0KGIsIGEpLCBhKTsKLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IGMgPSBhOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgZCA9IGI7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBtX2UgPSAk bWFza190eTo6c3BsYXQoZmFsc2UpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiR2ZWNfdHk6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBp ICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjX3RtcCA9 IGMuZXh0cmFjdChpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjLnJl cGxhY2UoaSwgZC5leHRyYWN0KGkpKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGQgPSBkLnJlcGxhY2UoaSwgY190bXApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9lID0gbV9lLnJlcGxh Y2UoaSwgdHJ1ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBjLmx0 KGQpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobV9lLCBtKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0uc2VsZWN0KGMsIGQpLCBhKTsKLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvc2h1ZmZsZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL3NodWZmbGUucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVmZmxlLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxODQgKzAsMCBAQAotLS8vISBJ bXBsZW1lbnRzIHBvcnRhYmxlIHZlY3RvciBzaHVmZmxlcyB3aXRoIGltbWVkaWF0ZSBpbmRpY2Vz LgotLQotLS8vIEZJWE1FOiBjb21wcmVoZW5zaXZlIHRlc3RzCi0tLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8yMAotLQotLS8vLyBTaHVm ZmxlcyB2ZWN0b3IgZWxlbWVudHMuCi0tLy8vCi0tLy8vIFRoaXMgbWFjcm8gcmV0dXJucyBhIG5l dyB2ZWN0b3IgdGhhdCBjb250YWlucyBhIHNodWZmbGUgb2YgdGhlIGVsZW1lbnRzIGluCi0tLy8v IG9uZSAoYHNodWZmbGUhKHZlYywgW2luZGljZXMuLi5dKWApIG9yIHR3byAoYHNodWZmbGUhKHZl YzAsIHZlYzEsCi0tLy8vIFtpbmRpY2VzLi4uXSlgKSBpbnB1dCB2ZWN0b3JzLgotLS8vLwotLS8v LyBUaGUgdHlwZSBvZiBgdmVjMGAgYW5kIGB2ZWMxYCBtdXN0IGJlIGVxdWFsLCBhbmQgdGhlIGVs ZW1lbnQgdHlwZSBvZiB0aGUKLS0vLy8gcmVzdWx0aW5nIHZlY3RvciBpcyB0aGUgZWxlbWVudCB0 eXBlIG9mIHRoZSBpbnB1dCB2ZWN0b3IuCi0tLy8vCi0tLy8vIFRoZSBudW1iZXIgb2YgYGluZGlj ZXNgIG11c3QgYmUgYSBwb3dlci1vZi10d28gaW4gcmFuZ2UgYFswLCA2NClgLCBzaW5jZQotLS8v LyBjdXJyZW50bHksIHRoZSBsYXJnZXN0IHZlY3RvciBzdXBwb3J0ZWQgYnkgdGhlIGxpYnJhcnkg aGFzIDY0IGxhbmVzLiBUaGUKLS0vLy8gbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yIGVx dWFscyB0aGUgbnVtYmVyIG9mIGluZGljZXMgcHJvdmlkZWQuCi0tLy8vCi0tLy8vIFRoZSBpbmRp Y2VzIG11c3QgYmUgaW4gcmFuZ2UgYFswLCBNICogTilgIHdoZXJlIGBNYCBpcyB0aGUgbnVtYmVy IG9mIGlucHV0Ci0tLy8vIHZlY3RvcnMgKGAxYCBvciBgMmApIGFuZCBgTmAgaXMgdGhlIG51bWJl ciBvZiBsYW5lcyBvZiB0aGUgaW5wdXQgdmVjdG9ycy4KLS0vLy8gVGhlIGluZGljZXMgYGlgIGlu IHJhbmdlIGBbMCwgTilgIHJlZmVyIHRvIHRoZSBgaWAtdGggZWxlbWVudCBvZiBgdmVjMGAsCi0t Ly8vIHdoaWxlIHRoZSBpbmRpY2VzIGluIHJhbmdlIGBbTiwgMipOKWAgcmVmZXIgdG8gdGhlIGBp IC0gTmAtdGggZWxlbWVudCBvZgotLS8vLyBgdmVjMWAuCi0tLy8vCi0tLy8vICMgRXhhbXBsZXMK LS0vLy8KLS0vLy8gU2h1ZmZsaW5nIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzOgotLS8vLwotLS8v LyBgYGAKLS0vLy8gIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8vICMgZm4gbWFpbigpIHsKLS0v Ly8gLy8gU2h1ZmZsZSBhbGxvd3MgcmVvcmRlcmluZyB0aGUgZWxlbWVudHM6Ci0tLy8vIGxldCB4 ID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKLS0vLy8gbGV0IHkgPSBpMzJ4NDo6bmV3KDUsIDYs IDcsIDgpOwotLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIHksIFs0LCAwLCA1LCAxXSk7Ci0tLy8v IGFzc2VydF9lcSEociwgaTMyeDQ6Om5ldyg1LCAxLCA2LCAyKSk7Ci0tLy8vCi0tLy8vIC8vIFRo ZSByZXN1bHRpbmcgdmVjdG9yIGNhbiBhbHMgYmUgc21hbGxlciB0aGFuIHRoZSBpbnB1dDoKLS0v Ly8gbGV0IHIgPSBzaHVmZmxlISh4LCB5LCBbMSwgNl0pOwotLS8vLyBhc3NlcnRfZXEhKHIsIGkz MngyOjpuZXcoMiwgNykpOwotLS8vLwotLS8vLyAvLyBPciBsYXJnZXI6Ci0tLy8vIGxldCByID0g c2h1ZmZsZSEoeCwgeSwgWzEsIDMsIDQsIDIsIDEsIDcsIDIsIDJdKTsKLS0vLy8gYXNzZXJ0X2Vx IShyLCBpMzJ4ODo6bmV3KDIsIDQsIDUsIDMsIDIsIDgsIDMsIDMpKTsKLS0vLy8gLy8gQXQgbW9z dCAyICogdGhlIG51bWJlciBvZiBsYW5lcyBpbiB0aGUgaW5wdXQgdmVjdG9yLgotLS8vLyAjIH0K LS0vLy8gYGBgCi0tLy8vCi0tLy8vIFNodWZmbGluZyBlbGVtZW50cyBvZiBvbmUgdmVjdG9yOgot LS8vLwotLS8vLyBgYGAKLS0vLy8gIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8vICMgZm4gbWFp bigpIHsKLS0vLy8gLy8gU2h1ZmZsZSBhbGxvd3MgcmVvcmRlcmluZyB0aGUgZWxlbWVudHMgb2Yg YSB2ZWN0b3I6Ci0tLy8vIGxldCB4ID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKLS0vLy8gbGV0 IHIgPSBzaHVmZmxlISh4LCBbMiwgMSwgMywgMF0pOwotLS8vLyBhc3NlcnRfZXEhKHIsIGkzMng0 OjpuZXcoMywgMiwgNCwgMSkpOwotLS8vLwotLS8vLyAvLyBUaGUgcmVzdWx0aW5nIHZlY3RvciBj YW4gYmUgc21hbGxlciB0aGFuIHRoZSBpbnB1dDoKLS0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBb MSwgM10pOwotLS8vLyBhc3NlcnRfZXEhKHIsIGkzMngyOjpuZXcoMiwgNCkpOwotLS8vLwotLS8v LyAvLyBFcXVhbDoKLS0vLy8gbGV0IHIgPSBzaHVmZmxlISh4LCBbMSwgMywgMiwgMF0pOwotLS8v LyBhc3NlcnRfZXEhKHIsIGkzMng0OjpuZXcoMiwgNCwgMywgMSkpOwotLS8vLwotLS8vLyAvLyBP ciBsYXJnZXI6Ci0tLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgWzEsIDMsIDIsIDIsIDEsIDMsIDIs IDJdKTsKLS0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4ODo6bmV3KDIsIDQsIDMsIDMsIDIsIDQsIDMs IDMpKTsKLS0vLy8gLy8gQXQgbW9zdCAyICogdGhlIG51bWJlciBvZiBsYW5lcyBpbiB0aGUgaW5w dXQgdmVjdG9yLgotLS8vLyAjIH0KLS0vLy8gYGBgCi0tI1ttYWNyb19leHBvcnRdCi0tbWFjcm9f cnVsZXMhIHNodWZmbGUgewotLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwgWyRsMDpleHBy LCAkbDE6ZXhwcl0pID0+IHt7Ci0tICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQotLSAg ICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZm bGVfdmVjdG9yMjo6PHtbJGwwLCAkbDFdfSwgXywgXz4oCi0tICAgICAgICAgICAgICAgICR2ZWMw LjAsCi0tICAgICAgICAgICAgICAgICR2ZWMxLjAsCi0tICAgICAgICAgICAgKSkKLS0gICAgICAg IH0KLS0gICAgfX07Ci0tICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLCBbJGwwOmV4cHIsICRs MTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHJdKSA9PiB7ewotLSAgICAgICAgI1thbGxvdyh1bnVz ZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgJGNyYXRlOjpTaW1k KCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjQ6Ojx7WyRsMCwgJGwxLCAkbDIsICRsM119LCBfLCBf PigKLS0gICAgICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEuMCwK LS0gICAgICAgICAgICApKQotLSAgICAgICAgfQotLSAgICB9fTsKLS0gICAgKCR2ZWMwOmV4cHIs ICR2ZWMxOmV4cHIsCi0tICAgICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4 cHIsCi0tICAgICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHJdKSA9PiB7 ewotLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KLS0gICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3Rvcjg6Ojx7WyRs MCwgJGwxLCAkbDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3XX0sIF8sIF8+KAotLSAgICAgICAg ICAgICAgICAkdmVjMC4wLAotLSAgICAgICAgICAgICAgICAkdmVjMS4wLAotLSAgICAgICAgICAg ICkpCi0tICAgICAgICB9Ci0tICAgIH19OwotLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwK LS0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKLS0gICAgICAk bDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwciwKLS0gICAgICAkbDg6ZXhwciwg JGw5OmV4cHIsICRsMTA6ZXhwciwgJGwxMTpleHByLAotLSAgICAgICRsMTI6ZXhwciwgJGwxMzpl eHByLCAkbDE0OmV4cHIsICRsMTU6ZXhwcl0pID0+IHt7Ci0tICAgICAgICAjW2FsbG93KHVudXNl ZF91bnNhZmUpXQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAkY3JhdGU6OlNpbWQo JGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yMTY6Ojx7Ci0tICAgICAgICAgICAgICAgIFsKLS0gICAg ICAgICAgICAgICAgICAgICRsMCwgJGwxLCAkbDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAk bDgsICRsOSwgJGwxMCwKLS0gICAgICAgICAgICAgICAgICAgICRsMTEsICRsMTIsICRsMTMsICRs MTQsICRsMTUsCi0tICAgICAgICAgICAgICAgIF0KLS0gICAgICAgICAgICB9LCBfLCBfPigKLS0g ICAgICAgICAgICAgICAgJHZlYzAuMCwKLS0gICAgICAgICAgICAgICAgJHZlYzEuMCwKLS0gICAg ICAgICAgICApKQotLSAgICAgICAgfQotLSAgICB9fTsKLS0gICAgKCR2ZWMwOmV4cHIsICR2ZWMx OmV4cHIsCi0tICAgICBbJGwwOmV4cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCi0t ICAgICAgJGw0OmV4cHIsICRsNTpleHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCi0tICAgICAgJGw4 OmV4cHIsICRsOTpleHByLCAkbDEwOmV4cHIsICRsMTE6ZXhwciwKLS0gICAgICAkbDEyOmV4cHIs ICRsMTM6ZXhwciwgJGwxNDpleHByLCAkbDE1OmV4cHIsCi0tICAgICAgJGwxNjpleHByLCAkbDE3 OmV4cHIsICRsMTg6ZXhwciwgJGwxOTpleHByLAotLSAgICAgICRsMjA6ZXhwciwgJGwyMTpleHBy LCAkbDIyOmV4cHIsICRsMjM6ZXhwciwKLS0gICAgICAkbDI0OmV4cHIsICRsMjU6ZXhwciwgJGwy NjpleHByLCAkbDI3OmV4cHIsCi0tICAgICAgJGwyODpleHByLCAkbDI5OmV4cHIsICRsMzA6ZXhw ciwgJGwzMTpleHByXSkgPT4ge3sKLS0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCi0t ICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1 ZmZsZV92ZWN0b3IzMjo6PHsKLS0gICAgICAgICAgICAgICAgWwotLSAgICAgICAgICAgICAgICAg ICAgJGwwLCAkbDEsICRsMiwgJGwzLCAkbDQsICRsNSwgJGw2LCAkbDcsICRsOCwgJGw5LCAkbDEw LAotLSAgICAgICAgICAgICAgICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwgJGwx NiwgJGwxNywgJGwxOCwgJGwxOSwKLS0gICAgICAgICAgICAgICAgICAgICRsMjAsICRsMjEsICRs MjIsICRsMjMsICRsMjQsICRsMjUsICRsMjYsICRsMjcsICRsMjgsCi0tICAgICAgICAgICAgICAg ICAgICAkbDI5LCAkbDMwLCAkbDMxLAotLSAgICAgICAgICAgICAgICBdCi0tICAgICAgICAgICAg fSwgXywgXz4oCi0tICAgICAgICAgICAgICAgICR2ZWMwLjAsCi0tICAgICAgICAgICAgICAgICR2 ZWMxLjAsCi0tICAgICAgICAgICAgKSkKLS0gICAgICAgIH0KLS0gICAgfX07Ci0tICAgICgkdmVj MDpleHByLCAkdmVjMTpleHByLAotLSAgICAgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIs ICRsMzpleHByLAotLSAgICAgICRsNDpleHByLCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHBy LAotLSAgICAgICRsODpleHByLCAkbDk6ZXhwciwgJGwxMDpleHByLCAkbDExOmV4cHIsCi0tICAg ICAgJGwxMjpleHByLCAkbDEzOmV4cHIsICRsMTQ6ZXhwciwgJGwxNTpleHByLAotLSAgICAgICRs MTY6ZXhwciwgJGwxNzpleHByLCAkbDE4OmV4cHIsICRsMTk6ZXhwciwKLS0gICAgICAkbDIwOmV4 cHIsICRsMjE6ZXhwciwgJGwyMjpleHByLCAkbDIzOmV4cHIsCi0tICAgICAgJGwyNDpleHByLCAk bDI1OmV4cHIsICRsMjY6ZXhwciwgJGwyNzpleHByLAotLSAgICAgICRsMjg6ZXhwciwgJGwyOTpl eHByLCAkbDMwOmV4cHIsICRsMzE6ZXhwciwKLS0gICAgICAkbDMyOmV4cHIsICRsMzM6ZXhwciwg JGwzNDpleHByLCAkbDM1OmV4cHIsCi0tICAgICAgJGwzNjpleHByLCAkbDM3OmV4cHIsICRsMzg6 ZXhwciwgJGwzOTpleHByLAotLSAgICAgICRsNDA6ZXhwciwgJGw0MTpleHByLCAkbDQyOmV4cHIs ICRsNDM6ZXhwciwKLS0gICAgICAkbDQ0OmV4cHIsICRsNDU6ZXhwciwgJGw0NjpleHByLCAkbDQ3 OmV4cHIsCi0tICAgICAgJGw0ODpleHByLCAkbDQ5OmV4cHIsICRsNTA6ZXhwciwgJGw1MTpleHBy LAotLSAgICAgICRsNTI6ZXhwciwgJGw1MzpleHByLCAkbDU0OmV4cHIsICRsNTU6ZXhwciwKLS0g ICAgICAkbDU2OmV4cHIsICRsNTc6ZXhwciwgJGw1ODpleHByLCAkbDU5OmV4cHIsCi0tICAgICAg JGw2MDpleHByLCAkbDYxOmV4cHIsICRsNjI6ZXhwciwgJGw2MzpleHByXSkgPT4ge3sKLS0gICAg ICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCi0tICAgICAgICB1bnNhZmUgewotLSAgICAgICAg ICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3I2NDo6PHtbCi0tICAgICAg ICAgICAgICAgICRsMCwgJGwxLCAkbDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRs OSwgJGwxMCwKLS0gICAgICAgICAgICAgICAgJGwxMSwgJGwxMiwgJGwxMywgJGwxNCwgJGwxNSwg JGwxNiwgJGwxNywgJGwxOCwgJGwxOSwKLS0gICAgICAgICAgICAgICAgJGwyMCwgJGwyMSwgJGwy MiwgJGwyMywgJGwyNCwgJGwyNSwgJGwyNiwgJGwyNywgJGwyOCwKLS0gICAgICAgICAgICAgICAg JGwyOSwgJGwzMCwgJGwzMSwgJGwzMiwgJGwzMywgJGwzNCwgJGwzNSwgJGwzNiwgJGwzNywKLS0g ICAgICAgICAgICAgICAgJGwzOCwgJGwzOSwgJGw0MCwgJGw0MSwgJGw0MiwgJGw0MywgJGw0NCwg JGw0NSwgJGw0NiwKLS0gICAgICAgICAgICAgICAgJGw0NywgJGw0OCwgJGw0OSwgJGw1MCwgJGw1 MSwgJGw1MiwgJGw1MywgJGw1NCwgJGw1NSwKLS0gICAgICAgICAgICAgICAgJGw1NiwgJGw1Nywg JGw1OCwgJGw1OSwgJGw2MCwgJGw2MSwgJGw2MiwgJGw2MywKLS0gICAgICAgICAgICBdfSwgXywg Xz4oCi0tICAgICAgICAgICAgICAgICR2ZWMwLjAsCi0tICAgICAgICAgICAgICAgICR2ZWMxLjAs Ci0tICAgICAgICAgICAgKSkKLS0gICAgICAgIH0KLS0gICAgIH19OwotLSAgICAoJHZlYzpleHBy LCBbJCgkbDpleHByKSwqXSkgPT4gewotLSAgICAgICAgbWF0Y2ggJHZlYyB7Ci0tICAgICAgICAg ICAgdiA9PiBzaHVmZmxlISh2LCB2LCBbJCgkbCksKl0pCi0tICAgICAgICB9Ci0tICAgIH07Ci0t fQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zaHVm ZmxlMV9keW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZs ZTFfZHluLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1 ZmZsZTFfZHluLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZTFfZHluLnJzCTE5NzAt MDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwxNTkgKzAsMCBAQAotLS8vISBT aHVmZmxlIHZlY3RvciBlbGVtZW50cyBhY2NvcmRpbmcgdG8gYSBkeW5hbWljIHZlY3RvciBvZiBp bmRpY2VzLgotLQotLW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUxX2R5biB7Ci0tICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4gewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBTaHVmZmxlIHZlY3Rv ciBlbGVtZW50cyBhY2NvcmRpbmcgdG8gYGluZGljZXNgLgotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIHB1YiBmbiBzaHVmZmxlMV9keW48ST4oc2VsZiwgaW5kaWNlczogSSkg LT4gU2VsZgotLSAgICAgICAgICAgIHdoZXJlCi0tICAgICAgICAgICAgICAgIFNlbGY6IGNvZGVn ZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW48SW5kaWNlcyA9IEk+LAotLSAgICAgICAgICAg IHsKLS0gICAgICAgICAgICAgICAgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjo6 c2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXMpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgdGVzdF9zaHVmZmxlMV9keW4gewotLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoKLS0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9zaHVmZmxlMV9keW4+XSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Ci0t ICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBpbmNyZWFzaW5nID0gewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCBpIGFzICRlbGVtX3R5 KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgZGVjcmVhc2luZyA9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGlk OjpsYW5lcygpIC0gMSAtIGkpIGFzICRlbGVtX3R5Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYKLS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IDwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGlkIGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW4KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgPjo6SW5kaWNlczsKLS0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgaW5jcmVhc2luZ19pZHM6IEluZGljZXMgPSBpbmNyZWFzaW5nLmNhc3QoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVjcmVhc2luZ19pZHM6IEluZGljZXMgPSBkZWNy ZWFzaW5nLmNhc3QoKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZWFzaW5nLnNodWZmbGUxX2R5bihpbmNy ZWFzaW5nX2lkcyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoaSxpKT0+aSIKLS0gICAgICAgICAgICAgICAg ICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGluY3JlYXNpbmdf aWRzKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIihkLGkpPT5kIgotLSAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5jcmVhc2luZy5zaHVmZmxlMV9keW4oZGVjcmVhc2luZ19pZHMpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiKGksZCk9PmQiCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkZWNyZWFzaW5nLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIoZCxkKT0+aSIKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2X2lkczogSW5kaWNlcwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPSAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpLmNhc3QoKTsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShpbmNyZWFzaW5nLnNodWZmbGUxX2R5 bih2X2lkcyksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpz cGxhdChpbmNyZWFzaW5nLmV4dHJhY3QoaSkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZGVjcmVhc2luZy5z aHVmZmxlMV9keW4odl9pZHMpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRpZDo6c3BsYXQoZGVjcmVhc2luZy5leHRyYWN0KGkpKQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChpIGFzICRlbGVtX3R5 KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaHVmZmxlMV9keW4oaW5j cmVhc2luZ19pZHMpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxh dChpIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGlkOjpzcGxhdChpIGFzICRlbGVtX3R5KQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC5zaHVmZmxlMV9keW4oZGVjcmVhc2luZ19pZHMpLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChpIGFzICRlbGVtX3R5KQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIHRlc3Rfc2h1ZmZs ZTFfZHluX21hc2sgewotLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAg ICAgICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9zaHVmZmxlMV9keW4+XSB7Ci0tICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1 ZmZsZTFfZHluKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsdGVybmF0aW5nID0g W3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgLi4uXQotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgYWx0ZXJuYXRpbmcgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFsdGVybmF0aW5nID0gYWx0ZXJuYXRpbmcucmVwbGFjZShpLCB0cnVlKTsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRpZCBhcyBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZmbGUxRHluCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OkluZGljZXM7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgLy8gZXZlbiA9IFswLCAwLCAyLCAyLCA0LCA0LCAuLl0KLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZXZlbiA9IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpICUgMiA9PSAwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4IC0gMSkuaW50bygpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyBvZGQgPSBbMSwgMSwgMywgMywgNSwgNSwg Li4uXQotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvZGQgPSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0KDApOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCkuaW50bygpKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCArIDEpLmlu dG8oKSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdgotLSAgICAg ICAgICAgICAgICAgICAgICAgIH07Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcuc2h1ZmZsZTFf ZHluKGV2ZW4pLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHRydWUp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBp ZiAkaWQ6OmxhbmVzKCkgPiAxIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aW5nLnNodWZm bGUxX2R5bihvZGQpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxh dChmYWxzZSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3NsaWNlLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS9mcm9tX3Ns aWNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjAyICswLDAgQEAKLS0vLyEgSW1w bGVtZW50cyBtZXRob2RzIHRvIHJlYWQgYSB2ZWN0b3IgdHlwZSBmcm9tIGEgc2xpY2UuCi0tCi0t bWFjcm9fcnVsZXMhIGltcGxfc2xpY2VfZnJvbV9zbGljZSB7Ci0tICAgIChbJGVsZW1fdHk6aWRl bnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4gewotLSAg ICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVj dG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0g ICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90 IGFsaWduZWQKLS0gICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91 bmRhcnkuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIGZyb21f c2xpY2VfYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgewotLSAgICAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+ PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNs aWNlLmFzX3B0cigpOwotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0YXJnZXRfcHRy LmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAwKTsKLS0gICAg ICAgICAgICAgICAgICAgIFNlbGY6OmZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2Up Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8v IEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2Vg LgotLSAgICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwotLSAgICAgICAg ICAgIC8vLwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygp YC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gZnJvbV9zbGlj ZV91bmFsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0g JGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9zbGljZV91bmFs aWduZWRfdW5jaGVja2VkKHNsaWNlKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIHdpdGggdGhl IHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAv Ly8gIyBTYWZldHkKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNl LmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90IGFsaWduZWQKLS0g ICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnksIHRoZSBi ZWhhdmlvciBpcyB1bmRlZmluZWQuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgcHViIHVuc2FmZSBmbiBmcm9tX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNsaWNlOiAmWyRl bGVtX3R5XSkgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydCEoc2xpY2Uu bGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9 IHNsaWNlLmFzX3B0cigpOwotLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRfZXEhKHRhcmdl dF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSksIDApOwot LQotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0K LS0gICAgICAgICAgICAgICAgKih0YXJnZXRfcHRyIGFzICpjb25zdCBTZWxmKQotLSAgICAgICAg ICAgIH0KLS0KLS0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZlY3RvciB3aXRo IHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAg ICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElmIGBz bGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCi0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBmcm9tX3Ns aWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnNpemVfb2Y7Ci0tICAgICAgICAgICAgICAg IGRlYnVnX2Fzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAg ICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX3B0cigpLmNhc3QoKTsKLS0gICAgICAgICAg ICAgICAgbGV0IG11dCB4ID0gU2VsZjo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAg ICAgICAgIGxldCBzZWxmX3B0ciA9ICZtdXQgeCBhcyAqbXV0IFNlbGYgYXMgKm11dCB1ODsKLS0g ICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyh0YXJnZXRfcHRy LCBzZWxmX3B0ciwgc2l6ZV9vZjo6PFNlbGY+KCkpOwotLSAgICAgICAgICAgICAgICB4Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgdGVzdF9pZiEgewotLSAgICAgICAg ICAgICR0ZXN0X3R0OgotLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7Ci0tICAgICAgICAgICAg ICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNzYV4xIHJh bmdlLgotLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0KLS0gICAg ICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2VfZnJvbV9zbGljZT5dIHsKLS0gICAgICAg ICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6aXRlcjo6SXRlcmF0b3I7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0g ICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkKCkgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzQyIGFzICRlbGVtX3R5OyAkaWQ6 OmxhbmVzKCkgKyAxXTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWduZWRbMF0gPSAw IGFzICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OmZy b21fc2xpY2VfdW5hbGlnbmVkKCZ1bmFsaWduZWRbMS4uXSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAvLyBG SVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10K LS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KLS0gICAgICAgICAgICAgICAg ICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAg ICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWRfZmFpbCgpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFs0MiBhcyAkZWxlbV90eTsgJGlk OjpsYW5lcygpICsgMV07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5hbGlnbmVkWzBdID0g MCBhcyAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgc2xpY2UgaXMg bm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBf dmVjID0gJGlkOjpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmdW5hbGlnbmVkWzIuLl0pOwotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gQSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YTogWyRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwK LS0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgICAg ICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZCgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTog WzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gJGlkOjpsYW5lcygpLi4o MiAqICRpZDo6bGFuZXMoKSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZC5kYXRhW2ldID0gNDIg YXMgJGVsZW1fdHk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9IHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6ZnJvbV9zbGljZV9hbGln bmVkKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsaWduZWQuZGF0YVskaWQ6 OmxhbmVzKCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAg ICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIp IGluCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGFsaWduZWQuZGF0YS5p dGVyKCkuZW51bWVyYXRlKCkgfSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlu ZGV4IDwgJGlkOjpsYW5lcygpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIs IDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiwgdmVjLmV4dHJh Y3QoaW5kZXggLSAkaWQ6OmxhbmVzKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAg Ly8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFu aWNdCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAg ICAgICAgICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0g ICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2xhbmVzKCkgewot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwK LS0gICAgICAgICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBfdmVjID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpmcm9t X3NsaWNlX2FsaWduZWQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxpZ25l ZC5kYXRhWzIgKiAkaWQ6OmxhbmVzKCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KQotLSAgICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBu b3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAg ICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpKV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAg ICAgICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9h bGlnbmVkX2ZhaWxfYWxpZ24oKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjps YW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQgb2YgZGF0YQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyOiAqY29uc3QgJGVsZW1fdHkgPSBh bGlnbmVkLmRhdGEuYXNfcHRyKCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz ICpjb25zdCAkZWxlbV90eTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0 IHBvaW50ZXIgYnkgb25lIGVsZW1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHB0ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHB0ci5hbGlnbl9vZmZzZXQoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PCRpZD4oKQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApID09IDAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBv aW50ZXIgaXMgcHJvcGVybHkgYWxpZ25lZCwgc28KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGZyb21fc2xpY2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUuZy4gdGhpcwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuIGhhcHBlbiBmb3IgaTEyOHgx KS4gU28gd2UgcGFuaWMgdG8gbWFrZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFuaWMhKCJvayIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBp cyBzYWZlLCBiZWNhdXNlIHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVt ZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9wZXJseQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiAmWyRlbGVtX3R5XSA9IHNsaWNlOjpmcm9tX3Jh d19wYXJ0cygKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciwgJGlkOjpsYW5l cygpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRoZSBzbGljZQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBub3QgbWF0Y2gg dGhlIGFsaWdubWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXF1aXJlbWVu dHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IF92ZWMgPSAkaWQ6OmZyb21fc2xpY2VfYWxpZ25lZChzKTsKLS0gICAgICAgICAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90b19zbGljZS5y cwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL3dyaXRl X3RvX3NsaWNlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xpY2Uu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE5NiArMCwwIEBA Ci0tLy8hIEltcGxlbWVudHMgbWV0aG9kcyB0byB3cml0ZSBhIHZlY3RvciB0eXBlIHRvIGEgc2xp Y2UuCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc2xpY2Vfd3JpdGVfdG9fc2xpY2UgewotLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKLS0gICAgICAgIGltcGwgJGlkIHsKLS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRo ZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8K LS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAg ICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMg bm90Ci0tICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAg Ym91bmRhcnkuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdy aXRlX3RvX3NsaWNlX2FsaWduZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewotLSAg ICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGlj ZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0 X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKLS0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigp KSwgMCk7Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3RvX3NsaWNlX2FsaWduZWRf dW5jaGVja2VkKHNsaWNlKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0K LS0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUg YHNsaWNlYC4KLS0gICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKLS0g ICAgICAgICAgICAvLy8KLS0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6 bGFuZXMoKWAuCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgcHViIGZuIHdy aXRlX3RvX3NsaWNlX3VuYWxpZ25lZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNs aWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYud3Jp dGVfdG9fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZChzbGljZSk7Ci0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVz IG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAg ICAgICAgLy8vICMgU2FmZXR5Ci0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIElm IGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9yIGAmc2xpY2VbMF1gIGlzIG5vdAotLSAg ICAgICAgICAgIC8vLyBhbGlnbmVkIHRvIGFuIGBhbGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5 LCB0aGUgYmVoYXZpb3IgaXMKLS0gICAgICAgICAgICAvLy8gdW5kZWZpbmVkLgotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2Vf YWxpZ25lZF91bmNoZWNrZWQoc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSkgewotLSAgICAg ICAgICAgICAgICBkZWJ1Z19hc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKLS0g ICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCk7Ci0tICAg ICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEodGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3Jh dGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7Ci0tCi0tICAgICAgICAgICAgICAgICNb YWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAgICAjW2Fs bG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KLS0gICAgICAgICAgICAgICAgI1thbGxv dyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCi0tICAgICAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQotLSAgICAgICAgICAgICAgICAqKHRhcmdldF9w dHIgYXMgKm11dCBTZWxmKSA9IHNlbGY7Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg IC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgotLSAg ICAgICAgICAgIC8vLwotLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQotLSAgICAgICAgICAgIC8v LwotLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCB0aGUg YmVoYXZpb3IgaXMgdW5kZWZpbmVkLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZChzZWxm LCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7Ci0tICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2Vy dCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwotLSAgICAgICAgICAgICAgICBsZXQgdGFy Z2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKS5jYXN0KCk7Ci0tICAgICAgICAgICAgICAgIGxl dCBzZWxmX3B0ciA9ICZzZWxmIGFzICpjb25zdCBTZWxmIGFzICpjb25zdCB1ODsKLS0gICAgICAg ICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhzZWxmX3B0ciwgdGFyZ2V0 X3B0ciwgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+KCkpOwotLSAgICAgICAgICAgIH0KLS0g ICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAgICAgICAkdGVzdF90dDoK LS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAgICAgICAvLyBDb21wYXJp c29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KLS0gICAgICAg ICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCi0tICAgICAgICAgICAgICAgIHB1 YiBtb2QgWzwkaWQgX3NsaWNlX3dyaXRlX3RvX3NsaWNlPl0gewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOwotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjppdGVyOjpJ dGVyYXRvcjsKLS0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAg ICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCkgewotLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzAgYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMo KSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQy IGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xp Y2VfdW5hbGlnbmVkKCZtdXQgdW5hbGlnbmVkWzEuLl0pOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQuaXRlcigpLmVudW1lcmF0ZSgpIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gMCB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDAgYXMgJGVsZW1fdHkpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShiLCA0MiBhcyAkZWxlbV90eSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIHZlYy5leHRyYWN0KGluZGV4IC0gMSkpOwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgLy8gRklY TUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCi0t ICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg ICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCi0tICAgICAgICAgICAgICAgICAg ICAjW3Rlc3RdCi0tICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAg ICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF9mYWlsKCkgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzAgYXMgJGVsZW1fdHk7ICRp ZDo6bGFuZXMoKSArIDFdOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6 OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3Jp dGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgdW5hbGlnbmVkWzIuLl0pOwotLSAgICAgICAgICAg ICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gQSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YTogWyRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQsCi0tICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IHdyaXRlX3RvX3NsaWNlX2FsaWduZWQoKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFsw IGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWyRpZDo6bGFuZXMoKS4u XQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmb3IgKGlkeCwgJmIpIGluIGFsaWduZWQuZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkg ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaWR4IDwgJGlkOjpsYW5lcygp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDAg YXMgJGVsZW1fdHkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDQyIGFz ICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLCB2ZWMuZXh0 cmFjdChpZHggLSAkaWQ6OmxhbmVzKCkpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJp bmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQotLSAgICAgICAgICAg ICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQotLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQot LSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCi0tICAgICAgICAgICAgICAgICAg ICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX2ZhaWxfbGFuZXMoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICB9OwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAk aWQ6OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxp Z25lZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxpZ25lZC5kYXRh WzIgKiAkaWQ6OmxhbmVzKCkuLl0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAg ICAgICAgICAgICAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3Vw cG9ydCAjW3Nob3VsZF9wYW5pY10KLS0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIo bm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3Qp XQotLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp KV0KLS0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KLS0gICAgICAgICAgICAgICAgICAgICNb c2hvdWxkX3BhbmljXQotLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxp Z25lZF9mYWlsX2FsaWduKCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYWxpZ25lZCA9IEEgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6 OmxhbmVzKCldLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwotLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2ludGVyIHRvIHRoZSBmcm9udCBvZiBkYXRh Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHI6ICptdXQgJGVsZW1fdHkKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gYWxpZ25lZC5kYXRhLmFzX211dF9wdHIo KSBhcyAqbXV0ICRlbGVtX3R5OwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvZmZz ZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PCRpZD4oKSkK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IDAgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gdGhlIHBvaW50ZXIgaXMgcHJvcGVybHkgYWxpZ25lZCwgc28K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlX3RvX3NsaWNlX2FsaWdu ZWQgd29uJ3QgZmFpbCBoZXJlIChlLmcuCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyB0aGlzIGNhbiBoYXBwZW4gZm9yIGkxMjh4MSkuIFNvIHdlIHBhbmljIHRvCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHRoZSAic2hvdWxkX2ZhaWwiIHRlc3Qg cGFzczoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmljISgib2siKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBjcmVhdGUgYSBzbGljZSAtIHRoaXMgaXMgc2FmZSwgYmVjYXVzZSB0aGUKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBh cmUgcHJvcGVybHkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5pdGlhbGl6ZWQs IGFuZCBwcm9wZXJseSBhbGlnbmVkOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg czogJm11dCBbJGVsZW1fdHldCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHNs aWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQocHRyLCAkaWQ6OmxhbmVzKCkpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMgcGFuaWMgYmVjYXVzZSB0aGUg c2xpY2UKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxpZ25tZW50IGRvZXMgbm90 IG1hdGNoIHRoZSBhbGlnbm1lbnQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVx dWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNlX2FsaWduZWQocyk7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3NsaWNlLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw3ICsw LDAgQEAKLS0vLyEgU2xpY2UgZnJvbS90byBtZXRob2RzCi0tCi0tI1ttYWNyb191c2VdCi0tbW9k IGZyb21fc2xpY2U7Ci0tCi0tI1ttYWNyb191c2VdCi0tbW9kIHdyaXRlX3RvX3NsaWNlOwotZGlm ZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zd2FwX2J5dGVz LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3N3YXBfYnl0ZXMucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zd2FwX2J5dGVzLnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc3dhcF9ieXRlcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTkyICswLDAgQEAKLS0vLyEgSG9yaXpvbnRhbCBzd2Fw IGJ5dGVzCi0tCi0tbWFjcm9fcnVsZXMhIGltcGxfc3dhcF9ieXRlcyB7Ci0tICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4g ewotLSAgICAgICAgaW1wbCAkaWQgewotLSAgICAgICAgICAgIC8vLyBSZXZlcnNlcyB0aGUgYnl0 ZSBvcmRlciBvZiB0aGUgdmVjdG9yLgotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIHB1YiBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBz dXBlcjo6Y29kZWdlbjo6c3dhcF9ieXRlczo6U3dhcEJ5dGVzOjpzd2FwX2J5dGVzKHNlbGYpCi0t ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIC8vLyBDb252ZXJ0cyBzZWxmIHRvIGxpdHRs ZSBlbmRpYW4gZnJvbSB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KLS0gICAgICAgICAgICAvLy8K LS0gICAgICAgICAgICAvLy8gT24gbGl0dGxlIGVuZGlhbiB0aGlzIGlzIGEgbm8tb3AuIE9uIGJp ZyBlbmRpYW4gdGhlIGJ5dGVzIGFyZQotLSAgICAgICAgICAgIC8vLyBzd2FwcGVkLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB0b19sZShzZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KLS0g ICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgc2VsZgotLSAgICAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRs ZSIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zd2Fw X2J5dGVzKCkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAvLy8gQ29udmVydHMgc2VsZiB0byBiaWcgZW5kaWFuIGZyb20gdGhlIHRhcmdldCdzIGVu ZGlhbm5lc3MuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE9uIGJpZyBlbmRp YW4gdGhpcyBpcyBhIG5vLW9wLiBPbiBsaXR0bGUgZW5kaWFuIHRoZSBieXRlcyBhcmUKLS0gICAg ICAgICAgICAvLy8gc3dhcHBlZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICBwdWIgZm4gdG9fYmUoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9lbmRpYW4gPSAiYmlnIildCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICAgICAgIHNlbGYKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyhu b3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSldCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgICAgIHNlbGYuc3dhcF9ieXRlcygpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLy8vIENvbnZlcnRzIGEgdmVjdG9yIGZyb20gbGl0 dGxlIGVuZGlhbiB0byB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KLS0gICAgICAgICAgICAvLy8K LS0gICAgICAgICAgICAvLy8gT24gbGl0dGxlIGVuZGlhbiB0aGlzIGlzIGEgbm8tb3AuIE9uIGJp ZyBlbmRpYW4gdGhlIGJ5dGVzIGFyZQotLSAgICAgICAgICAgIC8vLyBzd2FwcGVkLgotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiBmcm9tX2xlKHg6IFNlbGYpIC0+ IFNlbGYgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIp XQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB4Ci0tICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0 dGxlIikpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICB4LnN3YXBf Ynl0ZXMoKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8vLyBDb252ZXJ0cyBhIHZlY3RvciBmcm9tIGJpZyBlbmRpYW4gdG8gdGhlIHRhcmdldCdz IGVuZGlhbm5lc3MuCi0tICAgICAgICAgICAgLy8vCi0tICAgICAgICAgICAgLy8vIE9uIGJpZyBl bmRpYW4gdGhpcyBpcyBhIG5vLW9wLiBPbiBsaXR0bGUgZW5kaWFuIHRoZSBieXRlcyBhcmUKLS0g ICAgICAgICAgICAvLy8gc3dhcHBlZC4KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAg ICAgICBwdWIgZm4gZnJvbV9iZSh4OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAg I1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJiaWciKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAg ICAgICAgICAgICAgICAgeAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICNb Y2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICAgICAgeC5zd2FwX2J5dGVzKCkKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIHRlc3RfaWYhIHsKLS0gICAgICAg ICAgICAkdGVzdF90dDoKLS0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewotLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9zd2FwX2J5dGVzPl0gewotLSAgICAgICAgICAgICAgICAgICAg dXNlIHN1cGVyOjoqOwotLQotLSAgICAgICAgICAgICAgICAgICAgY29uc3QgQllURVM6IFt1ODsg NjRdID0gWwotLSAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMx LAotLSAgICAgICAgICAgICAgICAgICAgICAgIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAz OSwKLS0gICAgICAgICAgICAgICAgICAgICAgICA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0Niwg NDcsCi0tICAgICAgICAgICAgICAgICAgICAgICAgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQs IDU1LAotLSAgICAgICAgICAgICAgICAgICAgICAgIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYy LCA2MywKLS0gICAgICAgICAgICAgICAgICAgIF07Ci0tCi0tICAgICAgICAgICAgICAgICAgICBt YWNyb19ydWxlcyEgc3dhcCB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKCRmdW5jOiBpZGVu dCkgPT4ge3sKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2F0Y2ggcG9zc2libGUg ZnV0dXJlID41MTIgdmVjdG9ycwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KG1lbTo6c2l6ZV9vZjo6PCRpZD4oKSA8PSA2NCk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgYWN0dWFsID0gQllURVM7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBlbGVtczogJm11dCBbJGVsZW1fdHldID0gdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsLmFzX211dF9wdHIoKSBhcyAqbXV0ICRl bGVtX3R5LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6bGFuZXMo KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9 ICRpZDo6ZnJvbV9zbGljZV91bmFsaWduZWQoZWxlbXMpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OiRmdW5jKHZlYykud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKGVsZW1zKTsK LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgfX07Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAg ICAgICBtYWNyb19ydWxlcyEgdGVzdF9zd2FwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAo JGZ1bmM6IGlkZW50KSA9PiB7ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0 dWFsID0gc3dhcCEoJGZ1bmMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhw ZWN0ZWQgPQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURVMuaXRlcigpLnJl digpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2tpcCg2NCAtIGNyYXRlOjpt ZW06OnNpemVfb2Y6OjwkaWQ+KCkpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKGFjdHVhbC5pdGVyKCkuemlwKGV4cGVjdGVkKQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC5hbGwofCh4LCB5KXwgeCA9PSB5KSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgfX07Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAg ICBtYWNyb19ydWxlcyEgdGVzdF9ub19zd2FwIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAo JGZ1bmM6IGlkZW50KSA9PiB7ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0 dWFsID0gc3dhcCEoJGZ1bmMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXhw ZWN0ZWQgPSBCWVRFUy5pdGVyKCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50 YWtlKG1lbTo6c2l6ZV9vZjo6PCRpZD4oKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoYWN0dWFsLml0ZXIoKS56aXAoZXhwZWN0ZWQpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLmFsbCh8KHgsIHkpfCB4ID09IHkpKTsKLS0gICAgICAgICAg ICAgICAgICAgICAgICB9fTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0t ICAgICAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKCkgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3Rfc3dhcCEoc3dhcF9ieXRlcyk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0t Ci0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gdG9fbGUoKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKV0KLS0gICAgICAg ICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfbm9f c3dhcCEodG9fbGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCi0tICAgICAg ICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3 YXAhKHRvX2xlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gdG9fYmUoKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJiaWciKV0KLS0g ICAgICAgICAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl c3Rfbm9fc3dhcCEodG9fYmUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSldCi0tICAg ICAgICAgICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X3N3YXAhKHRvX2JlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMy Iiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9sZSgp IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRs ZSIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9ub19zd2FwIShmcm9tX2xlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0 dGxlIikpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF9zd2FwIShmcm9tX2xlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQotLSAgICAgICAgICAgICAgICAg ICAgZm4gZnJvbV9iZSgpIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRf ZW5kaWFuID0gImJpZyIpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9ub19zd2FwIShmcm9tX2JlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9l bmRpYW4gPSAiYmlnIikpXQotLSAgICAgICAgICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9zd2FwIShmcm9tX2JlKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMJMTk3MC0wMS0wMSAwMzowMDowMC4w MDAwMDAwMDAgKzAzMDAKLUBAIC0xLDMwOCArMCwwIEBACi0tLy8hIEltcGxlbWVudHMgdGhlIFNp bWQ8W1Q7IE5dPiBBUElzCi0tCi0tI1ttYWNyb191c2VdCi0tbW9kIGJpdG1hc2s7Ci0tcHViKGNy YXRlKSBtb2QgY2FzdDsKLS0jW21hY3JvX3VzZV0KLS1tb2QgY21wOwotLSNbbWFjcm9fdXNlXQot LW1vZCBkZWZhdWx0OwotLSNbbWFjcm9fdXNlXQotLW1vZCBmbXQ7Ci0tI1ttYWNyb191c2VdCi0t bW9kIGZyb207Ci0tI1ttYWNyb191c2VdCi0tbW9kIGhhc2g7Ci0tI1ttYWNyb191c2VdCi0tbW9k IG1hdGg7Ci0tI1ttYWNyb191c2VdCi0tbW9kIG1pbmltYWw7Ci0tI1ttYWNyb191c2VdCi0tbW9k IG9wczsKLS0jW21hY3JvX3VzZV0KLS1tb2QgcHRyOwotLSNbbWFjcm9fdXNlXQotLW1vZCByZWR1 Y3Rpb25zOwotLSNbbWFjcm9fdXNlXQotLW1vZCBzZWxlY3Q7Ci0tI1ttYWNyb191c2VdCi0tbW9k IHNodWZmbGU7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHNodWZmbGUxX2R5bjsKLS0jW21hY3JvX3Vz ZV0KLS1tb2Qgc2xpY2U7Ci0tI1ttYWNyb191c2VdCi0tbW9kIHN3YXBfYnl0ZXM7Ci0tI1ttYWNy b191c2VdCi0tbW9kIGJpdF9tYW5pcDsKLS0KLS0jW2NmZyhmZWF0dXJlID0gImludG9fYml0cyIp XQotLXB1YihjcmF0ZSkgbW9kIGludG9fYml0czsKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9pIHsK LS0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAk bWFza190eTppZGVudAotLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQsICRpYml0bWFza190eTppZGVu dCB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKLS0gICAgIHwgRnJvbTogJCgk ZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAgICBp bXBsX21pbmltYWxfaXVmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1f dHkgfCAkdGVzdF90dAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAkKCRlbGVtX2lkcyks KiB8ICQoI1skZG9jXSkqKTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9hcml0aG1ldGljIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X29wc19zY2FsYXJfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2JpdHdpc2UhKAotLSAgICAgICAg ICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKCEoMCBhcyAk ZWxlbV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2JpdHdp c2UhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0IHwgKCEoMCBhcyAkZWxlbV90eSksIDApCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9v cHNfdmVjdG9yX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQpOwotLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX3NoaWZ0cyEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX3JvdGF0 ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfb3BzX3ZlY3Rvcl9uZWchKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9pbnRfbWluX21heCEoCi0tICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAg ICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9pbnRlZ2VyX2FyaXRobWV0aWMhKAotLSAgICAg ICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0 X3R0Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWluX21heCEoCi0tICAg ICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRl c3RfdHQKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9iaXR3aXNlISgKLS0g ICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAk dGVzdF90dAotLSAgICAgICAgICAgIHwgKHx4fHsgeCBhcyAkZWxlbV90eSB9KSB8ICghKDAgYXMg JGVsZW1fdHkpLCAwKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZm10X2RlYnVnIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2Zt dF9sb3dlcl9oZXghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK LS0gICAgICAgIGltcGxfZm10X3VwcGVyX2hleCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfb2N0YWwhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X2JpbmFyeSEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1w bF9mcm9tX2FycmF5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8 ICgxLCAxKSk7Ci0tICAgICAgICBpbXBsX2Zyb21fdmVjdG9ycyEoCi0tICAgICAgICAgICAgWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAkKCRmcm9tX3ZlY190eSks KgotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZGVmYXVsdCEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9oYXNoIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3NsaWNlX2Zy b21fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0g ICAgICAgIGltcGxfc2xpY2Vfd3JpdGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9iaXRfbWFu aXAhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAg IGltcGxfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7Ci0tICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX2VxISgKLS0gICAgICAgICAgICBbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKQotLSAgICAgICAg KTsKLS0gICAgICAgIGltcGxfY21wX2VxIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCB8ICgwLCAxKSk7Ci0tICAgICAgICBpbXBsX2NtcF92ZXJ0aWNhbCEoCi0tICAg ICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgZmFsc2Us ICgxLCAwKSB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlh bF9vcmQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAg ICAgIGltcGxfY21wX29yZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQgfCAoMCwgMSkpOwotLSAgICAgICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQgfCAkaWJpdG1h c2tfdHkgfCAoLTEsIDApIHwgJHRlc3RfdHQpOwotLQotLSAgICAgICAgdGVzdF9zZWxlY3QhKCRl bGVtX3R5LCAkbWFza190eSwgJHR1cGxlX2lkLCAoMSwgMikgfCAkdGVzdF90dCk7Ci0tICAgICAg ICB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9pbnQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIHRlc3Rfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVs ZXMhIGltcGxfdSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX246ZXhwcl06ICR0dXBs ZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5OmlkZW50LCAkaWJp dG1hc2tfdHk6aWRlbnQgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCi0tICAg ICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4g ewotLSAgICAgICAgaW1wbF9taW5pbWFsX2l1ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIHwg JCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKik7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3Jf YXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9iaXR3aXNl ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfb3Bz X3NjYWxhcl9iaXR3aXNlISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQotLSAgICAgICAgKTsKLS0g ICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9zaGlmdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9zaGlmdHMhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3Bz X3ZlY3Rvcl9yb3RhdGVzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfaW50X21pbl9tYXghKAotLSAgICAgICAgICAg IFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwot LSAgICAgICAgaW1wbF9yZWR1Y3Rpb25faW50ZWdlcl9hcml0aG1ldGljISgKLS0gICAgICAgICAg ICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAot LSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX21pbl9tYXghKAotLSAgICAgICAg ICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0 Ci0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fYml0d2lzZSEoCi0tICAgICAg ICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3Rf dHQKLS0gICAgICAgICAgICB8ICh8eHx7IHggYXMgJGVsZW1fdHkgfSkgfCAoISgwIGFzICRlbGVt X3R5KSwgMCkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2ZtdF9kZWJ1ZyEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9mbXRfbG93 ZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX2ZtdF91cHBlcl9oZXghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZm10X29jdGFsIShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2ZtdF9iaW5hcnkhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfZnJv bV9hcnJheSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMSwg MSkpOwotLSAgICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMhKAotLSAgICAgICAgICAgIFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNfdHkpLCoKLS0g ICAgICAgICk7Ci0tICAgICAgICBpbXBsX2RlZmF1bHQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfaGFzaCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9zbGljZV9mcm9tX3Ns aWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAg ICBpbXBsX3NsaWNlX3dyaXRlX3RvX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfYml0X21hbmlwIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQp OwotLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9lcSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMSwgMCkKLS0gICAgICAgICk7Ci0t ICAgICAgICBpbXBsX2NtcF9lcSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQgfCAoMCwgMSkpOwotLSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAotLSAgICAgICAg ICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHksIGZhbHNlLCAoMSwg MCkgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfb3Jk IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBp bXBsX2NtcF9vcmQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwg KDAsIDEpKTsKLS0gICAgICAgIGltcGxfYml0bWFzayEoJHR1cGxlX2lkIHwgJGliaXRtYXNrX3R5 IHwgKCRpZWxlbV90eTo6bWF4X3ZhbHVlKCksIDApIHwKLS0gICAgICAgICAgICAgICAgICAgICAg JHRlc3RfdHQpOwotLQotLSAgICAgICAgdGVzdF9zZWxlY3QhKCRlbGVtX3R5LCAkbWFza190eSwg JHR1cGxlX2lkLCAoMSwgMikgfCAkdGVzdF90dCk7Ci0tICAgICAgICB0ZXN0X2NtcF9wYXJ0aWFs X29yZF9pbnQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0g ICAgICAgIHRlc3Rfc2h1ZmZsZTFfZHluIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7Ci0tICAgIH0KLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZiB7Ci0tICAg IChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tf dHk6aWRlbnQKLS0gICAgIHwgJGllbGVtX3R5OmlkZW50IHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVt X2lkczppZGVudCksKgotLSAgICAgfCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKiB8ICQo I1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGltcGxfbWluaW1hbF9pdWYhKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwqIHwgJCgjWyRkb2NdKSopOwotLSAgICAg ICAgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9hcml0aG1ldGljIShb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X29wc192ZWN0b3JfbmVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfZmxvYXRfbWluX21heCEoCi0tICAgICAgICAg ICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAgICk7 Ci0tICAgICAgICBpbXBsX3JlZHVjdGlvbl9mbG9hdF9hcml0aG1ldGljISgKLS0gICAgICAgICAg ICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBp bXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAotLSAgICAgICAgKTsKLS0gICAgICAg IGltcGxfZm10X2RlYnVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7Ci0tICAgICAgICBpbXBsX2Zyb21fYXJyYXkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0IHwgKDEuLCAxLikpOwotLSAgICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMh KAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0 IHwgJCgkZnJvbV92ZWNfdHkpLCoKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2RlZmF1bHQh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGlt cGxfY21wX3BhcnRpYWxfZXEhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEuLCAwLikKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBs X3NsaWNlX2Zyb21fc2xpY2UhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0KTsKLS0gICAgICAgIGltcGxfc2xpY2Vfd3JpdGVfdG9fc2xpY2UhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfc2h1ZmZsZTFfZHlu IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tCi0tICAgICAg ICBpbXBsX2Zsb2F0X2NvbnN0cyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkKTsKLS0g ICAgICAgIGltcGxfZmxvYXRfY2F0ZWdvcnkhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCwgJG1hc2tfdHkpOwotLQotLSAgICAgICAgLy8gZmxvYXRpbmctcG9pbnQgbWF0aAotLSAgICAg ICAgaW1wbF9tYXRoX2Zsb2F0X2FicyEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2NvcyEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X2V4 cCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg aW1wbF9tYXRoX2Zsb2F0X2xuIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7Ci0tICAgICAgICBpbXBsX21hdGhfZmxvYXRfbXVsX2FkZCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X211 bF9hZGRlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAg ICAgICBpbXBsX21hdGhfZmxvYXRfcG93ZiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3JlY3ByZSEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zs b2F0X3JzcXJ0ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3NpbiEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1wbF9tYXRoX2Zsb2F0X3NxcnQhKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGltcGxfbWF0aF9m bG9hdF9zcXJ0ZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHksIGZhbHNlLCAoMS4sIDAuKQotLSAgICAgICAgICAg ICAgICB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLQotLSAgICAgICAgdGVzdF9zZWxlY3QhKCRl bGVtX3R5LCAkbWFza190eSwgJHR1cGxlX2lkLCAoMS4sIDIuKSB8ICR0ZXN0X3R0KTsKLS0gICAg ICAgIHRlc3RfcmVkdWN0aW9uX2Zsb2F0X21pbl9tYXghKAotLSAgICAgICAgICAgIFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0Ci0tICAgICAgICApOwotLSAgICAgICAg dGVzdF9zaHVmZmxlMV9keW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0 X3R0KTsKLS0gICAgfQotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tIHsKLS0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50Ci0tICAgICB8ICRpZWxl bV90eTppZGVudCwgJGliaXRtYXNrX3R5OmlkZW50Ci0tICAgICB8ICR0ZXN0X3R0OnR0IHwgJCgk ZWxlbV9pZHM6aWRlbnQpLCogfCBGcm9tOiAkKCRmcm9tX3ZlY190eTppZGVudCksKgotLSAgICAg fCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAgICBpbXBsX21pbmltYWxfbWFzayEoCi0t ICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwg JHRlc3RfdHQKLS0gICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwqIHwgJCgjWyRkb2NdKSoKLS0g ICAgICAgICk7Ci0tICAgICAgICBpbXBsX29wc192ZWN0b3JfbWFza19iaXR3aXNlISgKLS0gICAg ICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICh0cnVl LCBmYWxzZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX29wc19zY2FsYXJfbWFza19iaXR3 aXNlISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCB8ICh0cnVlLCBmYWxzZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3JlZHVjdGlv bl9iaXR3aXNlISgKLS0gICAgICAgICAgICBbYm9vbDsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRp ZWxlbV90eSB8ICR0ZXN0X3R0Ci0tICAgICAgICAgICAgICAgIHwgKHx4fHsgeCAhPSAwIH0pIHwg KHRydWUsIGZhbHNlKQotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfcmVkdWN0aW9uX21hc2sh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0gICAgICAgIGlt cGxfZm10X2RlYnVnIShbYm9vbDsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKLS0g ICAgICAgIGltcGxfZnJvbV9hcnJheSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQKLS0gICAgICAgICAgICB8IChjcmF0ZTo6JGVsZW1fdHk6 Om5ldyh0cnVlKSwgdHJ1ZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX2Zyb21fdmVjdG9y cyEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3Rf dHQgfCAkKCRmcm9tX3ZlY190eSksKgotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfZGVmYXVs dCEoW2Jvb2w7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBs X2NtcF9wYXJ0aWFsX2VxISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCB8ICh0cnVlLCBmYWxzZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBp bXBsX2NtcF9lcSEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQgfCAodHJ1ZSwgZmFsc2UpCi0tICAgICAgICApOwotLSAgICAgICAgaW1wbF9j bXBfdmVydGljYWwhKAotLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCwgJHR1cGxlX2lkLCB0cnVlLCAodHJ1ZSwgZmFsc2UpCi0tICAgICAgICAgICAgfCAkdGVzdF90 dAotLSAgICAgICAgKTsKLS0gICAgICAgIGltcGxfc2VsZWN0IShbJGVsZW1fdHk7ICRlbGVtX25d OiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX29yZCEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAgaW1w bF9jbXBfb3JkISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCB8IChmYWxzZSwgdHJ1ZSkKLS0gICAgICAgICk7Ci0tICAgICAgICBpbXBsX3No dWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwot LSAgICAgICAgaW1wbF9iaXRtYXNrISgkdHVwbGVfaWQgfCAkaWJpdG1hc2tfdHkgfCAodHJ1ZSwg ZmFsc2UpIHwgJHRlc3RfdHQpOwotLQotLSAgICAgICAgdGVzdF9jbXBfcGFydGlhbF9vcmRfbWFz ayEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwotLSAgICAgICAg dGVzdF9zaHVmZmxlMV9keW5fbWFzayEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwg JHRlc3RfdHQpOwotLSAgICB9Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX2NvbnN0X3Agewot LSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNr X3R5OmlkZW50LAotLSAgICAgJHVzaXplX3R5OmlkZW50LCAkaXNpemVfdHk6aWRlbnQKLS0gICAg IHwgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgotLSAgICAgfCBGcm9tOiAkKCRm cm9tX3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKLS0gICAgICAgIGlt cGxfbWluaW1hbF9wISgKLS0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVf aWQsICRtYXNrX3R5LCAkdXNpemVfdHksICRpc2l6ZV90eQotLSAgICAgICAgICAgICAgICB8IHJl Zl8gfCAkdGVzdF90dCB8ICQoJGVsZW1faWRzKSwqCi0tICAgICAgICAgICAgICAgIHwgKDEgYXMg JGVsZW1fdHksIDAgYXMgJGVsZW1fdHkpIHwgJCgjWyRkb2NdKSoKLS0gICAgICAgICk7Ci0tICAg ICAgICBpbXBsX3B0cl9yZWFkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNr X3R5IHwgJHRlc3RfdHQpOwotLSAgICB9Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBsX211dF9w IHsKLS0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAk bWFza190eTppZGVudCwKLS0gICAgICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5OmlkZW50Ci0t ICAgICB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKLS0gICAgIHwgRnJvbTog JCgkZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7Ci0tICAgICAg ICBpbXBsX21pbmltYWxfcCEoCi0tICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1 cGxlX2lkLCAkbWFza190eSwgJHVzaXplX3R5LCAkaXNpemVfdHkKLS0gICAgICAgICAgICAgICAg fCByZWZfbXV0XyB8ICR0ZXN0X3R0IHwgJCgkZWxlbV9pZHMpLCoKLS0gICAgICAgICAgICAgICAg fCAoMSBhcyAkZWxlbV90eSwgMCBhcyAkZWxlbV90eSkgfCAkKCNbJGRvY10pKgotLSAgICAgICAg KTsKLS0gICAgICAgIGltcGxfcHRyX3JlYWQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9p ZCwgJG1hc2tfdHkgfCAkdGVzdF90dCk7Ci0tICAgICAgICBpbXBsX3B0cl93cml0ZSEoWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSB8ICR0ZXN0X3R0KTsKLS0gICAgfQot LX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L2JpdF9tYW5pcC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v Yml0X21hbmlwLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL2JpdF9tYW5pcC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysr IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9iaXRfbWFuaXAucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM0NyArMCwwIEBACi0t Ly8hIExMVk0gYml0IG1hbmlwdWxhdGlvbiBpbnRyaW5zaWNzLgotLSNbcnVzdGZtdDo6c2tpcF0K LS0KLS1wdWIoY3JhdGUpIHVzZSBjcmF0ZTo6KjsKLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBl cywgZGVhZF9jb2RlKV0KLS1leHRlcm4gIkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dGx6LnYyaTgiXQotLSAgICBmbiBjdGx6X3U4eDIoeDogdTh4MiwgaXNfemVyb191bmRlZjogYm9v bCkgLT4gdTh4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY0aTgiXQotLSAgICBm biBjdGx6X3U4eDQoeDogdTh4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4NDsKLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY4aTgiXQotLSAgICBmbiBjdGx6X3U4eDgoeDogdTh4 OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdGx6LnYxNmk4Il0KLS0gICAgZm4gY3Rsel91OHgxNih4OiB1OHgxNiwgaXNfemVyb191bmRl ZjogYm9vbCkgLT4gdTh4MTY7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MzJpOCJd Ci0tICAgIGZuIGN0bHpfdTh4MzIoeDogdTh4MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4 eDMyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjY0aTgiXQotLSAgICBmbiBjdGx6 X3U4eDY0KHg6IHU4eDY0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg2NDsKLS0KLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYyaTE2Il0KLS0gICAgZm4gY3Rsel91MTZ4Mih4OiB1 MTZ4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDI7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rsei52NGkxNiJdCi0tICAgIGZuIGN0bHpfdTE2eDQoeDogdTE2eDQsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHUxNng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhp MTYiXQotLSAgICBmbiBjdGx6X3UxNng4KHg6IHUxNng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1MTZ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYxNmkxNiJdCi0tICAgIGZu IGN0bHpfdTE2eDE2KHg6IHUxNngxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDE2Owot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjMyaTE2Il0KLS0gICAgZm4gY3Rsel91MTZ4 MzIoeDogdTE2eDMyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MzI7Ci0tCi0tICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rsei52MmkzMiJdCi0tICAgIGZuIGN0bHpfdTMyeDIoeDogdTMy eDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0bHoudjRpMzIiXQotLSAgICBmbiBjdGx6X3UzMng0KHg6IHUzMng0LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1MzJ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY4aTMy Il0KLS0gICAgZm4gY3Rsel91MzJ4OCh4OiB1MzJ4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4g dTMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52MTZpMzIiXQotLSAgICBmbiBj dGx6X3UzMngxNih4OiB1MzJ4MTYsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMngxNjsKLS0K LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYyaTY0Il0KLS0gICAgZm4gY3Rsel91NjR4 Mih4OiB1NjR4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDI7Ci0tICAgICNbbGlua19u YW1lID0gImxsdm0uY3Rsei52NGk2NCJdCi0tICAgIGZuIGN0bHpfdTY0eDQoeDogdTY0eDQsIGlz X3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 bHoudjhpNjQiXQotLSAgICBmbiBjdGx6X3U2NHg4KHg6IHU2NHg4LCBpc196ZXJvX3VuZGVmOiBi b29sKSAtPiB1NjR4ODsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYxaTEyOCJd Ci0tICAgIGZuIGN0bHpfdTEyOHgxKHg6IHUxMjh4MSwgaXNfemVyb191bmRlZjogYm9vbCkgLT4g dTEyOHgxOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjJpMTI4Il0KLS0gICAgZm4g Y3Rsel91MTI4eDIoeDogdTEyOHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDI7Ci0t ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NGkxMjgiXQotLSAgICBmbiBjdGx6X3UxMjh4 NCh4OiB1MTI4eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4NDsKLS0KLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTgiXQotLSAgICBmbiBjdHR6X3U4eDIoeDogdTh4Miwg aXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHR6LnY0aTgiXQotLSAgICBmbiBjdHR6X3U4eDQoeDogdTh4NCwgaXNfemVyb191bmRlZjogYm9v bCkgLT4gdTh4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY4aTgiXQotLSAgICBm biBjdHR6X3U4eDgoeDogdTh4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4ODsKLS0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYxNmk4Il0KLS0gICAgZm4gY3R0el91OHgxNih4OiB1 OHgxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MTY7Ci0tICAgICNbbGlua19uYW1lID0g Imxsdm0uY3R0ei52MzJpOCJdCi0tICAgIGZuIGN0dHpfdTh4MzIoeDogdTh4MzIsIGlzX3plcm9f dW5kZWY6IGJvb2wpIC0+IHU4eDMyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjY0 aTgiXQotLSAgICBmbiBjdHR6X3U4eDY0KHg6IHU4eDY0LCBpc196ZXJvX3VuZGVmOiBib29sKSAt PiB1OHg2NDsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTE2Il0KLS0gICAg Zm4gY3R0el91MTZ4Mih4OiB1MTZ4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDI7Ci0t ICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NGkxNiJdCi0tICAgIGZuIGN0dHpfdTE2eDQo eDogdTE2eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNng0OwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmN0dHoudjhpMTYiXQotLSAgICBmbiBjdHR6X3UxNng4KHg6IHUxNng4LCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6 LnYxNmkxNiJdCi0tICAgIGZuIGN0dHpfdTE2eDE2KHg6IHUxNngxNiwgaXNfemVyb191bmRlZjog Ym9vbCkgLT4gdTE2eDE2OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjMyaTE2Il0K LS0gICAgZm4gY3R0el91MTZ4MzIoeDogdTE2eDMyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1 MTZ4MzI7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MmkzMiJdCi0tICAgIGZu IGN0dHpfdTMyeDIoeDogdTMyeDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMngyOwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjRpMzIiXQotLSAgICBmbiBjdHR6X3UzMng0KHg6 IHUzMng0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4NDsKLS0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdHR6LnY4aTMyIl0KLS0gICAgZm4gY3R0el91MzJ4OCh4OiB1MzJ4OCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52 MTZpMzIiXQotLSAgICBmbiBjdHR6X3UzMngxNih4OiB1MzJ4MTYsIGlzX3plcm9fdW5kZWY6IGJv b2wpIC0+IHUzMngxNjsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTY0Il0K LS0gICAgZm4gY3R0el91NjR4Mih4OiB1NjR4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0 eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NGk2NCJdCi0tICAgIGZuIGN0dHpf dTY0eDQoeDogdTY0eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg0OwotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpNjQiXQotLSAgICBmbiBjdHR6X3U2NHg4KHg6IHU2NHg4 LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4ODsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5jdHR6LnYxaTEyOCJdCi0tICAgIGZuIGN0dHpfdTEyOHgxKHg6IHUxMjh4MSwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTEyOHgxOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHou djJpMTI4Il0KLS0gICAgZm4gY3R0el91MTI4eDIoeDogdTEyOHgyLCBpc196ZXJvX3VuZGVmOiBi b29sKSAtPiB1MTI4eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52NGkxMjgiXQot LSAgICBmbiBjdHR6X3UxMjh4NCh4OiB1MTI4eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUx Mjh4NDsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52Mmk4Il0KLS0gICAgZm4g Y3Rwb3BfdTh4Mih4OiB1OHgyKSAtPiB1OHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 cG9wLnY0aTgiXQotLSAgICBmbiBjdHBvcF91OHg0KHg6IHU4eDQpIC0+IHU4eDQ7Ci0tICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rwb3AudjhpOCJdCi0tICAgIGZuIGN0cG9wX3U4eDgoeDogdTh4 OCkgLT4gdTh4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MTZpOCJdCi0tICAg IGZuIGN0cG9wX3U4eDE2KHg6IHU4eDE2KSAtPiB1OHgxNjsKLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5jdHBvcC52MzJpOCJdCi0tICAgIGZuIGN0cG9wX3U4eDMyKHg6IHU4eDMyKSAtPiB1OHgz MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52NjRpOCJdCi0tICAgIGZuIGN0cG9w X3U4eDY0KHg6IHU4eDY0KSAtPiB1OHg2NDsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dHBvcC52MmkxNiJdCi0tICAgIGZuIGN0cG9wX3UxNngyKHg6IHUxNngyKSAtPiB1MTZ4MjsKLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52NGkxNiJdCi0tICAgIGZuIGN0cG9wX3UxNng0 KHg6IHUxNng0KSAtPiB1MTZ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52OGkx NiJdCi0tICAgIGZuIGN0cG9wX3UxNng4KHg6IHUxNng4KSAtPiB1MTZ4ODsKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jdHBvcC52MTZpMTYiXQotLSAgICBmbiBjdHBvcF91MTZ4MTYoeDogdTE2 eDE2KSAtPiB1MTZ4MTY7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjMyaTE2Il0K LS0gICAgZm4gY3Rwb3BfdTE2eDMyKHg6IHUxNngzMikgLT4gdTE2eDMyOwotLQotLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTMyIl0KLS0gICAgZm4gY3Rwb3BfdTMyeDIoeDogdTMy eDIpIC0+IHUzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTMyIl0KLS0g ICAgZm4gY3Rwb3BfdTMyeDQoeDogdTMyeDQpIC0+IHUzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0cG9wLnY4aTMyIl0KLS0gICAgZm4gY3Rwb3BfdTMyeDgoeDogdTMyeDgpIC0+IHUz Mng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYxNmkzMiJdCi0tICAgIGZuIGN0 cG9wX3UzMngxNih4OiB1MzJ4MTYpIC0+IHUzMngxNjsKLS0KLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5jdHBvcC52Mmk2NCJdCi0tICAgIGZuIGN0cG9wX3U2NHgyKHg6IHU2NHgyKSAtPiB1NjR4 MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52NGk2NCJdCi0tICAgIGZuIGN0cG9w X3U2NHg0KHg6IHU2NHg0KSAtPiB1NjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBv cC52OGk2NCJdCi0tICAgIGZuIGN0cG9wX3U2NHg4KHg6IHU2NHg4KSAtPiB1NjR4ODsKLS0KLS0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MWkxMjgiXQotLSAgICBmbiBjdHBvcF91MTI4 eDEoeDogdTEyOHgxKSAtPiB1MTI4eDE7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3Au djJpMTI4Il0KLS0gICAgZm4gY3Rwb3BfdTEyOHgyKHg6IHUxMjh4MikgLT4gdTEyOHgyOwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTEyOCJdCi0tICAgIGZuIGN0cG9wX3UxMjh4 NCh4OiB1MTI4eDQpIC0+IHUxMjh4NDsKLS19Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBCaXRNYW5p cCB7Ci0tICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGY7Ci0tICAgIGZuIGN0bHooc2VsZikgLT4g U2VsZjsKLS0gICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmOwotLX0KLS0KLS1tYWNyb19ydWxlcyEg aW1wbF9iaXRfbWFuaXAgewotLSAgICAoaW5uZXI6ICR0eTppZGVudCwgJHNjYWxhcjp0eSwgJHV0 eTppZGVudCwKLS0gICAgICRjdHBvcDppZGVudCwgJGN0bHo6aWRlbnQsICRjdHR6OmlkZW50KSA9 PiB7Ci0tICAgICAgICAvLyBGSVhNRTogc2V2ZXJhbCBMTFZNIGludHJpbnNpY3MgYnJlYWsgb24g czM5MHggaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lz c3Vlcy8xOTIKLS0gICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildCi0tICAgICAg ICBpbXBsX2JpdF9tYW5pcCEgeyBzY2FsYXI6ICR0eSwgJHNjYWxhciB9Ci0tICAgICAgICAjW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCi0tICAgICAgICBpbXBsIEJpdE1hbmlwIGZv ciAkdHkgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0cG9wKHNl bGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgp OwotLSAgICAgICAgICAgICAgICB1bnNhZmUgeyAkY3Rwb3AoeSkuY2FzdCgpIH0KLS0gICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY3Rseihz ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3Qo KTsKLS0gICAgICAgICAgICAgICAgLy8gdGhlIGN0eHggaW50cmluc2ljcyBuZWVkIGNvbXBpbGUt dGltZSBjb25zdGFudAotLSAgICAgICAgICAgICAgICAvLyBgaXNfemVyb191bmRlZmAKLS0gICAg ICAgICAgICAgICAgdW5zYWZlIHsgJGN0bHooeSwgZmFsc2UpLmNhc3QoKSB9Ci0tICAgICAgICAg ICAgfQotLQotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIGN0dHooc2Vs ZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7 Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7ICRjdHR6KHksIGZhbHNlKS5jYXN0KCkgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHNpemVkX2lubmVyOiAkdHk6 aWRlbnQsICRzY2FsYXI6dHksICR1dHk6aWRlbnQpID0+IHsKLS0gICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gInMzOTB4IildCi0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzY2FsYXI6ICR0 eSwgJHNjYWxhciB9Ci0tICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSld Ci0tICAgICAgICBpbXBsIEJpdE1hbmlwIGZvciAkdHkgewotLSAgICAgICAgICAgICNbaW5saW5l XQotLSAgICAgICAgICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAg ICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOwotLSAgICAgICAgICAgICAgICAkdXR5OjpjdHBv cCh5KS5jYXN0KCkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gY3RseihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0 IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgJHV0eTo6Y3Rseih5KS5j YXN0KCkKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IHk6ICR1 dHkgPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgJHV0eTo6Y3R0eih5KS5jYXN0KCkK LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIChzY2FsYXI6ICR0eTpp ZGVudCwgJHNjYWxhcjp0eSkgPT4gewotLSAgICAgICAgaW1wbCBCaXRNYW5pcCBmb3IgJHR5IHsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdHBvcChzZWxmKSAtPiBT ZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IG11dCBvbmVzID0gc2VsZjsKLS0gICAgICAgICAg ICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICBv bmVzID0gb25lcy5yZXBsYWNlKGksIHNlbGYuZXh0cmFjdChpKS5jb3VudF9vbmVzKCkgYXMgJHNj YWxhcik7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgb25lcwotLSAgICAg ICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBjdGx6 KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgbXV0IGx6ID0gc2VsZjsKLS0g ICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAg ICAgICAgICBseiA9IGx6LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGkpLmxlYWRpbmdfemVyb3Mo KSBhcyAkc2NhbGFyKTsKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBsegot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBjdHR6KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICBsZXQgbXV0IHR6ID0gc2Vs ZjsKLS0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFuZXMoKSB7Ci0tICAgICAg ICAgICAgICAgICAgICB0eiA9IHR6LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGkpLnRyYWlsaW5n X3plcm9zKCkgYXMgJHNjYWxhcik7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgdHoKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICgkdXR5Omlk ZW50LCAkdXNjYWxhcjp0eSwgJGl0eTppZGVudCwgJGlzY2FsYXI6dHksCi0tICAgICAkY3Rwb3A6 aWRlbnQsICRjdGx6OmlkZW50LCAkY3R0ejppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9iaXRf bWFuaXAhIHsgaW5uZXI6ICR1dHksICR1c2NhbGFyLCAkdXR5LCAkY3Rwb3AsICRjdGx6LCAkY3R0 eiB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBpbm5lcjogJGl0eSwgJGlzY2FsYXIsICR1 dHksICRjdHBvcCwgJGN0bHosICRjdHR6IH0KLS0gICAgfTsKLS0gICAgKHNpemVkOiAkdXNpemU6 aWRlbnQsICR1c2NhbGFyOnR5LCAkaXNpemU6aWRlbnQsCi0tICAgICAkaXNjYWxhcjp0eSwgJHR5 OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZF9pbm5lcjogJHVz aXplLCAkdXNjYWxhciwgJHR5IH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkX2lu bmVyOiAkaXNpemUsICRpc2NhbGFyLCAkdHkgfQotLSAgICB9OwotLX0KLS0KLS1pbXBsX2JpdF9t YW5pcCEgeyB1OHgyICAgLCAgIHU4LCBpOHgyLCBpOCwgICBjdHBvcF91OHgyLCAgIGN0bHpfdTh4 MiwgICBjdHR6X3U4eDIgICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTh4NCAgICwgICB1OCwgaTh4 NCwgaTgsICAgY3Rwb3BfdTh4NCwgICBjdGx6X3U4eDQsICAgY3R0el91OHg0ICAgfQotLSNbY2Zn KG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXSAvLyBzZWUgYmVsb3cKLS1pbXBsX2JpdF9t YW5pcCEgeyB1OHg4ICAgLCAgIHU4LCBpOHg4LCBpOCwgICBjdHBvcF91OHg4LCAgIGN0bHpfdTh4 OCwgICBjdHR6X3U4eDggICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTh4MTYgICwgIHU4LCBpOHgx NiwgaTgsICBjdHBvcF91OHgxNiwgIGN0bHpfdTh4MTYsICBjdHR6X3U4eDE2ICB9Ci0taW1wbF9i aXRfbWFuaXAhIHsgdTh4MzIgICwgIHU4LCBpOHgzMiwgaTgsICBjdHBvcF91OHgzMiwgIGN0bHpf dTh4MzIsICBjdHR6X3U4eDMyICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTh4NjQgICwgIHU4LCBp OHg2NCwgaTgsICBjdHBvcF91OHg2NCwgIGN0bHpfdTh4NjQsICBjdHR6X3U4eDY0ICB9Ci0taW1w bF9iaXRfbWFuaXAhIHsgdTE2eDIgICwgIHUxNiwgaTE2eDIsIGkxNiwgIGN0cG9wX3UxNngyLCAg Y3Rsel91MTZ4MiwgIGN0dHpfdTE2eDIgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4NCAgLCAg dTE2LCBpMTZ4NCwgaTE2LCAgY3Rwb3BfdTE2eDQsICBjdGx6X3UxNng0LCAgY3R0el91MTZ4NCAg fQotLWltcGxfYml0X21hbmlwISB7IHUxNng4ICAsICB1MTYsIGkxNng4LCBpMTYsICBjdHBvcF91 MTZ4OCwgIGN0bHpfdTE2eDgsICBjdHR6X3UxNng4ICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTE2 eDE2ICwgdTE2LCBpMTZ4MTYsIGkxNiwgY3Rwb3BfdTE2eDE2LCBjdGx6X3UxNngxNiwgY3R0el91 MTZ4MTYgfQotLWltcGxfYml0X21hbmlwISB7IHUxNngzMiAsIHUxNiwgaTE2eDMyLCBpMTYsIGN0 cG9wX3UxNngzMiwgY3Rsel91MTZ4MzIsIGN0dHpfdTE2eDMyIH0KLS1pbXBsX2JpdF9tYW5pcCEg eyB1MzJ4MiAgLCAgdTMyLCBpMzJ4MiwgaTMyLCAgY3Rwb3BfdTMyeDIsICBjdGx6X3UzMngyLCAg Y3R0el91MzJ4MiAgfQotLWltcGxfYml0X21hbmlwISB7IHUzMng0ICAsICB1MzIsIGkzMng0LCBp MzIsICBjdHBvcF91MzJ4NCwgIGN0bHpfdTMyeDQsICBjdHR6X3UzMng0ICB9Ci0taW1wbF9iaXRf bWFuaXAhIHsgdTMyeDggICwgIHUzMiwgaTMyeDgsIGkzMiwgIGN0cG9wX3UzMng4LCAgY3Rsel91 MzJ4OCwgIGN0dHpfdTMyeDggIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1MzJ4MTYgLCB1MzIsIGkz MngxNiwgaTMyLCBjdHBvcF91MzJ4MTYsIGN0bHpfdTMyeDE2LCBjdHR6X3UzMngxNiB9Ci0taW1w bF9iaXRfbWFuaXAhIHsgdTY0eDIgICwgIHU2NCwgaTY0eDIsIGk2NCwgIGN0cG9wX3U2NHgyLCAg Y3Rsel91NjR4MiwgIGN0dHpfdTY0eDIgIH0KLS1pbXBsX2JpdF9tYW5pcCEgeyB1NjR4NCAgLCAg dTY0LCBpNjR4NCwgaTY0LCAgY3Rwb3BfdTY0eDQsICBjdGx6X3U2NHg0LCAgY3R0el91NjR4NCAg fQotLWltcGxfYml0X21hbmlwISB7IHU2NHg4ICAsICB1NjQsIGk2NHg4LCBpNjQsICBjdHBvcF91 NjR4OCwgIGN0bHpfdTY0eDgsICBjdHR6X3U2NHg4ICB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTEy OHgxICwgdTEyOCwgaTEyOHgxLCBpMTI4LCBjdHBvcF91MTI4eDEsIGN0bHpfdTEyOHgxLCBjdHR6 X3UxMjh4MSB9Ci0taW1wbF9iaXRfbWFuaXAhIHsgdTEyOHgyICwgdTEyOCwgaTEyOHgyLCBpMTI4 LCBjdHBvcF91MTI4eDIsIGN0bHpfdTEyOHgyLCBjdHR6X3UxMjh4MiB9Ci0taW1wbF9iaXRfbWFu aXAhIHsgdTEyOHg0ICwgdTEyOCwgaTEyOHg0LCBpMTI4LCBjdHBvcF91MTI4eDQsIGN0bHpfdTEy OHg0LCBjdHR6X3UxMjh4NCB9Ci0tCi0tI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQot LWltcGwgQml0TWFuaXAgZm9yIHU4eDggewotLSAgICAjW2lubGluZV0KLS0gICAgZm4gY3Rwb3Ao c2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICBsZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOwotLSAg ICAgICAgdW5zYWZlIHsgY3Rwb3BfdTh4OCh5KS5jYXN0KCkgfQotLSAgICB9Ci0tCi0tICAgICNb aW5saW5lXQotLSAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgbGV0IHk6IHU4 eDggPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgIHVuc2FmZSB7IGN0bHpfdTh4OCh5LCBmYWxzZSku Y2FzdCgpIH0KLS0gICAgfQotLQotLSAgICAjW2lubGluZV0KLS0gICAgZm4gY3R0eihzZWxmKSAt PiBTZWxmIHsKLS0gICAgICAgIC8vIEZJWE1FOiBMTFZNIGN0dHoudjhpOCBicm9rZW4gb24gYWFy Y2g2NCBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE5MQotLSAgICAgICAgLy8gT1BUSU1JWkU6IGFkYXB0IHRoZSBhbGdvcml0aG0gdXNlZCBm b3IgdjhpMTYvZXRjIHRvIFJ1c3QncyBhYXJjaDY0Ci0tICAgICAgICAvLyBpbnRyaW5zaWNzCi0t ICAgICAgICBsZXQgbXV0IHR6ID0gc2VsZjsKLS0gICAgICAgIGZvciBpIGluIDAuLlNlbGY6Omxh bmVzKCkgewotLSAgICAgICAgICAgIHR6ID0gdHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSku dHJhaWxpbmdfemVyb3MoKSBhcyB1OCk7Ci0tICAgICAgICB9Ci0tICAgICAgICB0egotLSAgICB9 Ci0tfQotLSNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KLS1pbXBsIEJpdE1hbmlwIGZv ciBpOHg4IHsKLS0gICAgI1tpbmxpbmVdCi0tICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgewot LSAgICAgICAgbGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsKLS0gICAgICAgIHVuc2FmZSB7IGN0 cG9wX3U4eDgoeSkuY2FzdCgpIH0KLS0gICAgfQotLQotLSAgICAjW2lubGluZV0KLS0gICAgZm4g Y3RseihzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgIGxldCB5OiB1OHg4ID0gc2VsZi5jYXN0KCk7 Ci0tICAgICAgICB1bnNhZmUgeyBjdGx6X3U4eDgoeSwgZmFsc2UpLmNhc3QoKSB9Ci0tICAgIH0K LS0KLS0gICAgI1tpbmxpbmVdCi0tICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZiB7Ci0tICAgICAg ICAvLyBGSVhNRTogTExWTSBjdHR6LnY4aTggYnJva2VuIG9uIGFhcmNoNjQgaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOTEKLS0gICAgICAg IC8vIE9QVElNSVpFOiBhZGFwdCB0aGUgYWxnb3JpdGhtIHVzZWQgZm9yIHY4aTE2L2V0YyB0byBS dXN0J3MgYWFyY2g2NAotLSAgICAgICAgLy8gaW50cmluc2ljcwotLSAgICAgICAgbGV0IG11dCB0 eiA9IHNlbGY7Ci0tICAgICAgICBmb3IgaSBpbiAwLi5TZWxmOjpsYW5lcygpIHsKLS0gICAgICAg ICAgICB0eiA9IHR6LnJlcGxhY2UoaSwgc2VsZi5leHRyYWN0KGkpLnRyYWlsaW5nX3plcm9zKCkg YXMgaTgpOwotLSAgICAgICAgfQotLSAgICAgICAgdHoKLS0gICAgfQotLX0KLS0KLS1jZmdfaWYh IHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiOCIpXSB7Ci0tICAgICAg ICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4MiwgdXNpemUsIGlzaXpleDIsIGlzaXpl LCB1OHgyIH0KLS0gICAgICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6 ZSwgaXNpemV4NCwgaXNpemUsIHU4eDQgfQotLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6 ZWQ6IHVzaXpleDgsIHVzaXplLCBpc2l6ZXg4LCBpc2l6ZSwgdTh4OCB9Ci0tICAgIH0gZWxzZSBp ZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxNiIpXSB7Ci0tICAgICAgICBpbXBsX2Jp dF9tYW5pcCEgeyBzaXplZDogdXNpemV4MiwgdXNpemUsIGlzaXpleDIsIGlzaXplLCB1MTZ4MiB9 Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4NCwgdXNpemUsIGlzaXpl eDQsIGlzaXplLCB1MTZ4NCB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNp emV4OCwgdXNpemUsIGlzaXpleDgsIGlzaXplLCB1MTZ4OCB9Ci0tICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5p cCEgeyBzaXplZDogdXNpemV4MiwgdXNpemUsIGlzaXpleDIsIGlzaXplLCB1MzJ4MiB9Ci0tICAg ICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4NCwgdXNpemUsIGlzaXpleDQsIGlz aXplLCB1MzJ4NCB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwg dXNpemUsIGlzaXpleDgsIGlzaXplLCB1MzJ4OCB9Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJn ZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBz aXplZDogdXNpemV4MiwgdXNpemUsIGlzaXpleDIsIGlzaXplLCB1NjR4MiB9Ci0tICAgICAgICBp bXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4NCwgdXNpemUsIGlzaXpleDQsIGlzaXplLCB1 NjR4NCB9Ci0tICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNpemUs IGlzaXpleDgsIGlzaXplLCB1NjR4OCB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBjb21waWxl X2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgfQotLX0K LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xs dm0ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0ucnMK LS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbGx2bS5ycwky MDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZtLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSwxMjIgKzAsMCBAQAotLS8vISBMTFZNJ3MgcGxhdGZvcm0gaW50 cmluc2ljcwotLSMhW2FsbG93KGRlYWRfY29kZSldCi0tCi0tdXNlIGNyYXRlOjpzZWFsZWQ6OlNo dWZmbGU7Ci0tI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldIC8vIEZJWE1FOiBzcHVyaW91cyB3YXJu aW5nPwotLXVzZSBjcmF0ZTo6c2VhbGVkOjpTaW1kOwotLQotLWV4dGVybiAicGxhdGZvcm0taW50 cmluc2ljIiB7Ci0tICAgIGZuIHNpbWRfc2h1ZmZsZTxULCBJLCBVPih4OiBULCB5OiBULCBpZHg6 IEkpIC0+IFU7Ci0tfQotLQotLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3NhZmV0eV9kb2MpXQot LSNbaW5saW5lXQotLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3RvcjI8Y29uc3QgSURYOiBb dTMyOyAyXSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQotLXdoZXJlCi0tICAgIFQ6IFNpbWQsCi0t ICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7IDJdLCBPdXRwdXQgPSBVPiwK LS17Ci0tICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCi0tfQotLQotLSNbYWxsb3coY2xpcHB5 OjptaXNzaW5nX3NhZmV0eV9kb2MpXQotLSNbaW5saW5lXQotLXB1YiB1bnNhZmUgZm4gX19zaHVm ZmxlX3ZlY3RvcjQ8Y29uc3QgSURYOiBbdTMyOyA0XSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQot LXdoZXJlCi0tICAgIFQ6IFNpbWQsCi0tICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxl PFt1MzI7IDRdLCBPdXRwdXQgPSBVPiwKLS17Ci0tICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgp Ci0tfQotLQotLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3NhZmV0eV9kb2MpXQotLSNbaW5saW5l XQotLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3Rvcjg8Y29uc3QgSURYOiBbdTMyOyA4XSwg VCwgVT4oeDogVCwgeTogVCkgLT4gVQotLXdoZXJlCi0tICAgIFQ6IFNpbWQsCi0tICAgIDxUIGFz IFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7IDhdLCBPdXRwdXQgPSBVPiwKLS17Ci0tICAg IHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCi0tfQotLQotLSNbYWxsb3coY2xpcHB5OjptaXNzaW5n X3NhZmV0eV9kb2MpXQotLSNbaW5saW5lXQotLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3Rv cjE2PGNvbnN0IElEWDogW3UzMjsgMTZdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCi0td2hlcmUK LS0gICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsg MTZdLCBPdXRwdXQgPSBVPiwKLS17Ci0tICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCi0tfQot LQotLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3NhZmV0eV9kb2MpXQotLSNbaW5saW5lXQotLXB1 YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3RvcjMyPGNvbnN0IElEWDogW3UzMjsgMzJdLCBULCBV Pih4OiBULCB5OiBUKSAtPiBVCi0td2hlcmUKLS0gICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2lt ZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgMzJdLCBPdXRwdXQgPSBVPiwKLS17Ci0tICAgIHNp bWRfc2h1ZmZsZSh4LCB5LCBJRFgpCi0tfQotLQotLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3Nh ZmV0eV9kb2MpXQotLSNbaW5saW5lXQotLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3RvcjY0 PGNvbnN0IElEWDogW3UzMjsgNjRdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCi0td2hlcmUKLS0g ICAgVDogU2ltZCwKLS0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgNjRd LCBPdXRwdXQgPSBVPiwKLS17Ci0tICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCi0tfQotLQot LWV4dGVybiAicGxhdGZvcm0taW50cmluc2ljIiB7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9l cTxULCBVPih4OiBULCB5OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbmU8VCwg VT4oeDogVCwgeTogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2x0PFQsIFU+KHg6 IFQsIHk6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9sZTxULCBVPih4OiBULCB5 OiBUKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZ3Q8VCwgVT4oeDogVCwgeTogVCkg LT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2dlPFQsIFU+KHg6IFQsIHk6IFQpIC0+IFU7 Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9pbnNlcnQ8VCwgVT4oeDogVCwgaWR4OiB1MzIs IHZhbDogVSkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2V4dHJhY3Q8VCwgVT4oeDog VCwgaWR4OiB1MzIpIC0+IFU7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9jYXN0PFQsIFU+ KHg6IFQpIC0+IFU7Ci0tCi0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9hZGQ8VD4oeDogVCwgeTog VCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3N1YjxUPih4OiBULCB5OiBUKSAtPiBU OwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbXVsPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAg IHB1YihjcmF0ZSkgZm4gc2ltZF9kaXY8VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNy YXRlKSBmbiBzaW1kX3JlbTxUPih4OiBULCB5OiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfc2hsPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9z aHI8VD4oeDogVCwgeTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2FuZDxUPih4 OiBULCB5OiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfb3I8VD4oeDogVCwgeTog VCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3hvcjxUPih4OiBULCB5OiBUKSAtPiBU OwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2FkZF91bm9yZGVyZWQ8VCwgVT4o eDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9tdWxfdW5vcmRlcmVk PFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYWRkX29y ZGVyZWQ8VCwgVT4oeDogVCwgYWNjOiBVKSAtPiBVOwotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf cmVkdWNlX211bF9vcmRlcmVkPFQsIFU+KHg6IFQsIGFjYzogVSkgLT4gVTsKLS0gICAgcHViKGNy YXRlKSBmbiBzaW1kX3JlZHVjZV9taW48VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3JlZHVjZV9tYXg8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBm biBzaW1kX3JlZHVjZV9taW5fbmFubGVzczxULCBVPih4OiBUKSAtPiBVOwotLSAgICBwdWIoY3Jh dGUpIGZuIHNpbWRfcmVkdWNlX21heF9uYW5sZXNzPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1 YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYW5kPFQsIFU+KHg6IFQpIC0+IFU7Ci0tICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2Vfb3I8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3JlZHVjZV94b3I8VCwgVT4oeDogVCkgLT4gVTsKLS0gICAgcHViKGNyYXRlKSBm biBzaW1kX3JlZHVjZV9hbGw8VD4oeDogVCkgLT4gYm9vbDsKLS0gICAgcHViKGNyYXRlKSBmbiBz aW1kX3JlZHVjZV9hbnk8VD4oeDogVCkgLT4gYm9vbDsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBz aW1kX3NlbGVjdDxNLCBUPihtOiBNLCBhOiBULCBiOiBUKSAtPiBUOwotLQotLSAgICBwdWIoY3Jh dGUpIGZuIHNpbWRfZm1pbjxUPihhOiBULCBiOiBUKSAtPiBUOwotLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfZm1heDxUPihhOiBULCBiOiBUKSAtPiBUOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfZnNxcnQ8VD4oYTogVCkgLT4gVDsKLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2ZtYTxUPihh OiBULCBiOiBULCBjOiBUKSAtPiBUOwotLQotLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZ2F0aGVy PFQsIFAsIE0+KHZhbHVlOiBULCBwb2ludGVyczogUCwgbWFzazogTSkgLT4gVDsKLS0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX3NjYXR0ZXI8VCwgUCwgTT4odmFsdWU6IFQsIHBvaW50ZXJzOiBQLCBt YXNrOiBNKTsKLS0KLS0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2JpdG1hc2s8VCwgVT4odmFsdWU6 IFQpIC0+IFU7Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSwxMDMgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2lu dCBgZmFic2AKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0g dmVjdG9ycyBmYWJzCi0tCi0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgQWJz IHsKLS0gICAgZm4gYWJzKHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLSNbYWxsb3coaW1wcm9wZXJf Y3R5cGVzKV0KLS1leHRlcm4gIkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnYy ZjMyIl0KLS0gICAgZm4gZmFic192MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZmFicy52NGYzMiJdCi0tICAgIGZuIGZhYnNfdjRmMzIoeDogZjMyeDQp IC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjhmMzIiXQotLSAgICBm biBmYWJzX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5mYWJzLnYxNmYzMiJdCi0tICAgIGZuIGZhYnNfdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2 OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgZmFic2dsZSBlbGVtIHZlY3RvcnMKLS0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5mYWJzLnYxZjY0Il0KLS0gICAgZm4gZmFic192MWY2NCh4OiBmNjR4MSkg LT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMudjJmNjQi XQotLSAgICBmbiBmYWJzX3YyZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mYWJzLnY0ZjY0Il0KLS0gICAgZm4gZmFic192NGY2NCh4OiBmNjR4NCkgLT4g ZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52OGY2NCJdCi0tICAgIGZuIGZh YnNfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmZhYnMuZjMyIl0KLS0gICAgZm4gZmFic19mMzIoeDogZjMyKSAtPiBmMzI7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uZmFicy5mNjQiXQotLSAgICBmbiBmYWJzX2Y2NCh4OiBmNjQpIC0+IGY2 NDsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKEFicywgYWJzKTsKLS0KLS1jZmdfaWYh IHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewotLSAgICAgICAgLy8g RklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9p c3N1ZXMvMTQKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGZhYnNfZjMyKTsK LS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IGZhYnNfZjMyKTsKLS0gICAgICAg IGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGZhYnNfZjMyKTsKLS0gICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltmMzI7IDE2XTogZmFic19mMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDJbZjY0OyAyXTogZmFic19mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZjY0 OyA0XTogZmFic19mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4XTogZmFi c19mNjQpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIs IGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwot LSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9mYWJzZjRfYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZmFic2Y4X2F2eDIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZmFic2Q0X2F2eDIpOwotLQot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZmFic2Y0X2F2eDIxMjgp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfZmFic2Y4X2F2eDIp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZmFic2QyX2F2eDIx MjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfZmFic2Q0X2F2 eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngi KV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xl ZWZfZmFic2Y0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9 PiBmMzJ4OF06IFNsZWVmX2ZhYnNmOF9hdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZmFic2Q0X2F2eCk7Ci0tCi0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9mYWJzZjRfc3NlNCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9mYWJzZjhfYXZ4KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2ZhYnNkMl9zc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2ZhYnNkNF9hdngpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2Zh YnNmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4 Ml06IFNsZWVmX2ZhYnNkMl9zc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX2ZhYnNmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2ZhYnNkMl9zc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2ZhYnNkMl9zc2U0KTsKLS0gICAg ICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7 IDJdOiBmYWJzX2YzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogZmFi c192MTZmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogZmFic192OGY2 NCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBmYWJzX3Y0ZjMyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGZhYnNfdjhmMzIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogZmFic192MmY2NCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHg0OiBmYWJzX3Y0ZjY0KTsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJd OiBmYWJzX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogZmFic192NGYzMik7Ci0t ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZmFic192OGYzMik7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4MTY6IGZhYnNfdjE2ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBmYWJzX3YyZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBmYWJzX3Y0ZjY0KTsK LS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBmYWJzX3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRp ZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgv ZmxvYXQvY29zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L2Nvcy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L2Nvcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCAr MDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L2Nvcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEs MTAzICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGNvc2AKLS0jIVthbGxv dyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9yIGNvcwotLQotLXVz ZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IENvcyB7Ci0tICAgIGZuIGNvcyhzZWxm KSAtPiBTZWxmOwotLX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0ZXJuICJD IiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnYyZjMyIl0KLS0gICAgZm4gY29zX3Yy ZjMyKHg6IGYzMngyKSAtPiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjRm MzIiXQotLSAgICBmbiBjb3NfdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmNvcy52OGYzMiJdCi0tICAgIGZuIGNvc192OGYzMih4OiBmMzJ4OCkgLT4g ZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnYxNmYzMiJdCi0tICAgIGZuIGNv c192MTZmMzIoeDogZjMyeDE2KSAtPiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBjb3Nn bGUgZWxlbSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnYxZjY0Il0KLS0g ICAgZm4gY29zX3YxZjY0KHg6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlu a19uYW1lID0gImxsdm0uY29zLnYyZjY0Il0KLS0gICAgZm4gY29zX3YyZjY0KHg6IGY2NHgyKSAt PiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjRmNjQiXQotLSAgICBmbiBj b3NfdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNv cy52OGY2NCJdCi0tICAgIGZuIGNvc192OGY2NCh4OiBmNjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAg ICNbbGlua19uYW1lID0gImxsdm0uY29zLmYzMiJdCi0tICAgIGZuIGNvc19mMzIoeDogZjMyKSAt PiBmMzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLmY2NCJdCi0tICAgIGZuIGNvc19m NjQoeDogZjY0KSAtPiBmNjQ7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShDb3MsIGNv cyk7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4Iild IHsKLS0gICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7 IDJdOiBjb3NfZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IGNvc19m MzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbZjMyOyA4XTogY29zX2YzMik7Ci0tICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZjMyOyAxNl06IGNvc19mMzIpOwotLQotLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogY29zX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4NFtmNjQ7IDRdOiBjb3NfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2Y2 NDsgOF06IGNvc19mNjQpOwotLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0g Ing4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZf c3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngy W3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9jb3NmOF91MTBhdngyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2Nvc2Q0 X3UxMGF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZf Y29zZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBT bGVlZl9jb3NmOF91MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX2Nvc2QyX3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfY29zZDRfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9jb3NmOF91MTBhdngpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29z ZDRfdTEwYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X2Nvc2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xl ZWZfY29zZjhfdTEwYXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNs ZWVmX2Nvc2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDog U2xlZWZfY29zZDRfdTEwYXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfY29zZDJf dTEwc3NlNCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9j b3NmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBm MzJ4NF06IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogU2xlZWZfY29zZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKLS0gICAgICAgICAg ICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBj b3NfZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBjb3NfdjE2ZjMy KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGNvc192OGY2NCk7Ci0tCi0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBjb3NfdjRmMzIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogY29zX3Y4ZjMyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDI6IGNvc192MmY2NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHg0OiBjb3NfdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fSBlbHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19mMzIpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGNvc192NGYzMik7Ci0tICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4ODogY29zX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogY29z X3YxNmYzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogY29zX3YyZjY0KTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBjb3NfdjRmNjQpOwotLSAgICAgICAgaW1wbF91bmFy eSEoZjY0eDg6IGNvc192OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3NfcGku cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9jb3NfcGkucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3Nf cGkucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDg3ICswLDAg QEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGNvc2AKLS0jIVthbGxvdyh1bnVzZWQp XQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBjb3NfcGkKLS0KLS11c2UgY3Jh dGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBDb3NQaSB7Ci0tICAgIGZuIGNvc19waShzZWxm KSAtPiBTZWxmOwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoQ29zUGksIGNvc19waSk7 Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKLS0gICAgKCR2aWQ6aWRlbnQsICRQSTpwYXRo KSA9PiB7Ci0tICAgICAgICBpbXBsIENvc1BpIGZvciAkdmlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBmbiBjb3NfcGkoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIChzZWxmICogU2VsZjo6c3BsYXQoJFBJKSkuY29zKCkKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsKLS0gICAg KCR2aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjMyOjpj b25zdHM6OlBJKTsKLS0gICAgfTsKLS19Ci0tbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQgewotLSAg ICAoJHZpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRlOjpmNjQ6 OmNvbnN0czo6UEkpOwotLSAgICB9OwotLX0KLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmco YWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7Ci0t ICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAg ICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3UwNWF2eDIxMjgp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVm X2Nvc3BpZjhfdTA1YXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2gg PT4gZjY0eDRdOiBTbGVlZl9jb3NwaWQ0X3UwNWF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVhdngyMTI4KTsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4Mik7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NwaWQyX3UwNWF2eDIxMjgpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfY29zcGlkNF91MDVhdngy KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4Iild IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVm X2Nvc3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNlto ID0+IGYzMng4XTogU2xlZWZfY29zcGlmOF91MDVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29zcGlkNF91MDVhdngpOwotLQotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zcGlmNF91MDVzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2Nvc3BpZDJfdTA1 c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NwaWQ0 X3UwNWF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0g InNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9jb3NwaWQyX3UwNXNz ZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zcGlm NF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4 NF06IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHgyOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsKLS0gICAgICAg ICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7Ci0tICAg ICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDgpOwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwotLQot LSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICAgICAgICAgIGlt cGxfZGVmNjQhKGY2NHg0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxf ZGVmMzIhKGYzMngyKTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMng0KTsKLS0gICAgICAgIGlt cGxfZGVmMzIhKGYzMng4KTsKLS0gICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7Ci0tCi0tICAg ICAgICBpbXBsX2RlZjY0IShmNjR4Mik7Ci0tICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Ci0t ICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7Ci0tICAgIH0KLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2V4cC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAu cnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9leHAucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAucnMJ MTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDExMiArMCwwIEBACi0t Ly8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBleHBgCi0tIyFbYWxsb3codW51c2VkKV0KLS0K LS0vLyBGSVhNRSA2NC1iaXQgZXhwZ2xlIGVsZW0gdmVjdG9ycyBtaXNleHBnCi0tCi0tdXNlIGNy YXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgRXhwIHsKLS0gICAgZm4gZXhwKHNlbGYpIC0+ IFNlbGY7Ci0tfQotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMiIHsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjJmMzIiXQotLSAgICBmbiBleHBfdjJmMzIo eDogZjMyeDIpIC0+IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52NGYzMiJd Ci0tICAgIGZuIGV4cF92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7Ci0tICAgICNbbGlua19uYW1l ID0gImxsdm0uZXhwLnY4ZjMyIl0KLS0gICAgZm4gZXhwX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4 ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjE2ZjMyIl0KLS0gICAgZm4gZXhwX3Yx NmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklYTUUgNjQtYml0IGV4cGdsZSBl bGVtIHZlY3RvcnMKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjFmNjQiXQotLSAgICBm biBleHBfdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5leHAudjJmNjQiXQotLSAgICBmbiBleHBfdjJmNjQoeDogZjY0eDIpIC0+IGY2 NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52NGY2NCJdCi0tICAgIGZuIGV4cF92 NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY4 ZjY0Il0KLS0gICAgZm4gZXhwX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKLS0KLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5leHAuZjMyIl0KLS0gICAgZm4gZXhwX2YzMih4OiBmMzIpIC0+IGYz MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAuZjY0Il0KLS0gICAgZm4gZXhwX2Y2NCh4 OiBmNjQpIC0+IGY2NDsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKEV4cCwgZXhwKTsK LS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewot LSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTQKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IGV4cF9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogZXhwX2YzMik7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBleHBfZjMyKTsKLS0gICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogZXhwX2YzMik7Ci0tCi0tICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBleHBfZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHg0W2Y2NDsgNF06IGV4cF9mNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4 XTogZXhwX2Y2NCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2 XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6 Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9 PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2V4cGY4X3UxMGF2eDIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZXhwZDRfdTEw YXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9leHBm NF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVm X2V4cGY4X3UxMGF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xl ZWZfZXhwZDJfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0 OiBTbGVlZl9leHBkNF91MTBhdngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2V4cGY4X3UxMGF2eCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9leHBkNF91 MTBhdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfZXhw ZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9l eHBmOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf ZXhwZDJfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVl Zl9leHBkNF91MTBhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9leHBkMl91MTBz c2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2V4cGY0 X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBTbGVlZl9leHBkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTQpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTIpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2V4 cGY0X3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2 NHgyXTogU2xlZWZfZXhwZDJfdTEwc3NlMik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng0OiBTbGVlZl9leHBmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZXhwZDJfdTEwc3NlMik7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9leHBkMl91MTBz c2UyKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MltmMzI7IDJdOiBleHBfZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2OiBleHBfdjE2ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6 IGV4cF92OGY2NCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBleHBf djRmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZXhwX3Y4ZjMyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGV4cF92MmY2NCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBleHBfdjRmNjQpOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2Yz MjsgMl06IGV4cF9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IGV4cF92NGYzMik7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZXhwX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGYzMngxNjogZXhwX3YxNmYzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogZXhwX3YyZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBleHBfdjRmNjQpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGV4cF92OGY2NCk7Ci0tICAgIH0KLS19Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zs b2F0L2xuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L2xuLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvbG4ucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9sbi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTEyICsw LDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYGxuYAotLSMhW2FsbG93KHVudXNl ZCldCi0tCi0tLy8gRklYTUUgNjQtYml0IGxuZ2xlIGVsZW0gdmVjdG9ycyBtaXNsbmcKLS0KLS11 c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBMbiB7Ci0tICAgIGZuIGxuKHNlbGYp IC0+IFNlbGY7Ci0tfQotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4gIkMi IHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjJmMzIiXQotLSAgICBmbiBsbl92MmYz Mih4OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY0ZjMy Il0KLS0gICAgZm4gbG5fdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OwotLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmxvZy52OGYzMiJdCi0tICAgIGZuIGxuX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4 ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjE2ZjMyIl0KLS0gICAgZm4gbG5fdjE2 ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgbG5nbGUgZWxl bSB2ZWN0b3JzCi0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnYxZjY0Il0KLS0gICAgZm4g bG5fdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOwotLSAgICAgKi8KLS0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5sb2cudjJmNjQiXQotLSAgICBmbiBsbl92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7 Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY0ZjY0Il0KLS0gICAgZm4gbG5fdjRmNjQo eDogZjY0eDQpIC0+IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52OGY2NCJd Ci0tICAgIGZuIGxuX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKLS0KLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5sb2cuZjMyIl0KLS0gICAgZm4gbG5fZjMyKHg6IGYzMikgLT4gZjMyOwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy5mNjQiXQotLSAgICBmbiBsbl9mNjQoeDogZjY0KSAt PiBmNjQ7Ci0tfQotLQotLWdlbl91bmFyeV9pbXBsX3RhYmxlIShMbiwgbG4pOwotLQotLWNmZ19p ZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAgICAgICAv LyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8xNAotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogbG5fZjMyKTsK LS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IGxuX2YzMik7Ci0tICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBsbl9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDE2W2YzMjsgMTZdOiBsbl9mMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJb ZjY0OyAyXTogbG5fZjY0KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IGxu X2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBsbl9mNjQpOwotLSAg ICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAi c2xlZWYtc3lzIikpXSB7Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2Zn X2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9s b2dmNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2gg PT4gZjMyeDhdOiBTbGVlZl9sb2dmOF91MTBhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2xvZ2Q0X3UxMGF2eDIpOwotLQotLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfbG9nZjRfdTEwYXZ4MjEyOCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9sb2dmOF91MTBhdngyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMGF2eDIx MjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfbG9nZDRfdTEw YXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2 eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBT bGVlZl9sb2dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 W2ggPT4gZjMyeDhdOiBTbGVlZl9sb2dmOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfbG9nZDRfdTEwYXZ4KTsKLS0KLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfbG9nZjhfdTEwYXZ4KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfbG9nZDRfdTEwYXZ4KTsK LS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIild IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVm X2xvZ2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9 PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfbG9nZDJfdTEwc3NlNCk7Ci0tCi0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3Ux MHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJf dTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJd OiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngyW3QgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2UyKTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2xvZ2Qy X3UxMHNzZTIpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZf bG9nZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4g ZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMHNzZTIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfbG9nZDJfdTEwc3NlMik7Ci0tICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTog bG5fZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBsbl92MTZmMzIp OwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogbG5fdjhmNjQpOwotLQotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogbG5fdjRmMzIpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogbG5fdjhmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogbG5fdjJmNjQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogbG5fdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBlbHNl IHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGxuX2YzMik7Ci0tICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4NDogbG5fdjRmMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDg6IGxuX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogbG5fdjE2ZjMyKTsK LS0KLS0gICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBsbl92MmY2NCk7Ci0tICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NDogbG5fdjRmNjQpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGxu X3Y4ZjY0KTsKLS0gICAgfQotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L21hY3Jvcy5ycwotLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L21hY3Jvcy5y cwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L21hY3Jvcy5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNDcwICswLDAgQEAKLS0vLyEgVXRp bGl0eSBtYWNyb3MKLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLW1hY3JvX3J1bGVzISBpbXBsX3Vu YXJ5XyB7Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxCi0tICAgICh2ZWMgfCAk dHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAg ICAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChz ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoJGZ1bih0cmFuc211dGUoc2VsZikpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBt YXBwaW5nIDE6MSBmb3Igd2hlbiBgJGZ1bmAgaXMgYSBnZW5lcmljIGZ1bmN0aW9uCi0tICAgIC8v IGxpa2Ugc29tZSBvZiB0aGUgZnAgbWF0aCBydXN0YyBpbnRyaW5zaWNzIChlLmcuIGBmbiBmdW48 VD4oeDogVCkgLT4gVGApLgotLSAgICAoZ2VuIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0 aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJGZ1bjppZGVudCkgPT4gewotLSAgICAg ICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQot LSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJh bnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4oc2VsZi4wKSkKLS0g ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0g ICAgKHNjYWxhciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwKLS0gICAg ICR2ZWNfaWQ6aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJdLCAkZnVuOmlkZW50KSA9 PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICBzY2FsYXJzOiBbJHNpZDsgJHNjb3VudF0sCi0tICAgICAgICAgICAgICAgICAg ICB9Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHNjYWxhcnMgPSBVIHsgdmVjOiBzZWxm IH0uc2NhbGFyczsKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluICZtdXQgc2NhbGFycyB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgKmkgPSAkZnVuKCppKTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIFUgeyBzY2FsYXJzIH0udmVjCi0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8v IGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIHR3aWNlIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBo YWx2ZXM6Ci0tICAgIChoYWx2ZXMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRl bnQsICR2ZWNfaWQ6aWRlbnQsCi0tICAgICAkdmVjaF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4g ewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZikgLT4gU2VsZiB7Ci0t ICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAg IGhhbHZlczogWyR2ZWNoX2lkOyAyXSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsK LS0KLS0gICAgICAgICAgICAgICAgICAgICpoYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0 cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRfdW5jaGVja2VkKDApKSkpOwotLSAg ICAgICAgICAgICAgICAgICAgKmhhbHZlcy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0 ZSgkZnVuKHRyYW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpKSk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICBVIHsgaGFsdmVzIH0udmVjCi0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIGNh bGxpbmcgZnVuIGZvdXIgdGltZXMgb24gZWFjaCBvZiB0aGUgdmVjdG9yIHF1YXJ0ZXJzOgotLSAg ICAocXVhcnRlciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19p ZDppZGVudCwKLS0gICAgICR2ZWNxX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAg ICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFu c211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6 IFskdmVjcV9pZDsgNF0sCi0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHF1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOwotLQot LSAgICAgICAgICAgICAgICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJh bnNtdXRlKCRmdW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSkpOwotLSAg ICAgICAgICAgICAgICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNt dXRlKCRmdW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSkpOwotLSAgICAg ICAgICAgICAgICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJhbnNtdXRl KCRmdW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSkpOwotLSAgICAgICAg ICAgICAgICAgICAgKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDMpID0gdHJhbnNtdXRlKCRm dW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSkpOwotLQotLSAgICAgICAg ICAgICAgICAgICAgVSB7IHF1YXJ0ZXJzIH0udmVjCi0tICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIGNh bGxpbmcgZnVuIG9uY2Ugb24gYSB2ZWN0b3IgdHdpY2UgYXMgbGFyZ2U6Ci0tICAgICh0d2ljZSB8 ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0g ICAgICR2ZWN0X2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFp dF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg Zm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZl IHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmlu aXRpYWxpemVkfTsKLS0KLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAg ICAgICAgICAgICAgICAgIHZlYzogWyR2ZWNfaWQ7IDJdLAotLSAgICAgICAgICAgICAgICAgICAg ICAgIHR3aWNlOiAkdmVjdF9pZCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgIGxldCB0d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCld IH0udHdpY2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2UgPSB0cmFuc211dGUoJGZ1 bih0cmFuc211dGUodHdpY2UpKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqKFUgeyB0d2lj ZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgZ2VuX3VuYXJ5 X2ltcGxfdGFibGUgewotLSAgICAoJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50 KSA9PiB7Ci0tICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF91bmFyeSB7Ci0tICAgICAgICAgICAg KCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eV8hKHZlYyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7Ci0tICAgICAg ICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtnXTogJGZ1bjppZGVudCkgPT4gewot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEoZ2VuIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0 aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAgICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlk ZW50WyRzaWQ6aWRlbnQ7ICRzYzpleHByXTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlk LCBbJHNpZDsgJHNjXSwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZp ZDppZGVudFtzXTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKLS0gICAg ICAgICAgICB9OwotLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTog JGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEoaGFsdmVzIHwg JHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX2gsICRmdW4pOwotLSAgICAgICAg ICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbcSA9PiAkdmlkX3E6aWRlbnRdOiAkZnVu OmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShxdWFydGVyIHwgJHRy YWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3EsICRmdW4pOwotLSAgICAgICAgICAg IH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6aWRlbnRdOiAkZnVuOmlk ZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfISh0d2ljZSB8ICR0cmFpdF9p ZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKLS0gICAgICAgICAgICB9Owot LSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1wbF90ZXJ0aWFyeV8g ewotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBtYXBwaW5nIDE6MQotLSAgICAodmVjIHwgJHRyYWl0 X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJGZ1 bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAg ICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwg eTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0t ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAg ICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNlbGYpLCB0cmFuc211dGUoeSks IHRyYW5zbXV0ZSh6KSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9t ZXRob2Q6aWRlbnQsCi0tICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsgJHNjb3VudDpl eHByXSwgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNf aWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRo b2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgIHVu c2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyczog WyRzaWQ7ICRzY291bnRdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB4ID0gVSB7IHZlYzogc2VsZiB9LnNjYWxhcnM7Ci0tICAgICAgICAgICAg ICAgICAgICBsZXQgeSA9IFUgeyB2ZWM6IHkgfS5zY2FsYXJzOwotLSAgICAgICAgICAgICAgICAg ICAgbGV0IHogPSBVIHsgdmVjOiB6IH0uc2NhbGFyczsKLS0gICAgICAgICAgICAgICAgICAgIGZv ciAoeCwgKHksIHopKSBpbiAoJm11dCBzY2FsYXJzKS56aXAoJnkpLnppcCgmeikgewotLSAgICAg ICAgICAgICAgICAgICAgICAgICppID0gJGZ1bigqaSwgKnksICp6KTsKLS0gICAgICAgICAgICAg ICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIFUgeyB2ZWM6IHggfS52ZWMKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8g aW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhh bHZlczoKLS0gICAgKGhhbHZlcyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVu dCwgJHZlY19pZDppZGVudCwKLS0gICAgICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7 Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBT ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1 bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZlY2hfaWQ7IDJdLAotLSAgICAgICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4X2hhbHZlcyA9IFUgeyB2 ZWM6IHNlbGYgfS5oYWx2ZXM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeV9oYWx2ZXMgPSBV IHsgdmVjOiB5IH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHpfaGFsdmVzID0g VSB7IHZlYzogeiB9LmhhbHZlczsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZlcy5n ZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfaGFsdmVzLmdldF91bmNoZWNrZWQo MCkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tICAgICAgICAgICAgICAgICAgICAqeF9o YWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bigKLS0gICAgICAgICAg ICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgx KSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X2hhbHZlcy5nZXRfdW5j aGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgVSB7IGhhbHZlczogeF9oYWx2ZXMgfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24g Y2FsbGluZyBmdW4gZm91ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6Ci0t ICAgIChxdWFydGVyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVj X2lkOmlkZW50LAotLSAgICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAg ICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+ IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUg ewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICBxdWFydGVyczogWyR2ZWNxX2lkOyA0XSwKLS0gICAgICAgICAgICAgICAgICAg IH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9xdWFydGVycyA9IFUgeyB2ZWM6 IHNlbGYgfS5xdWFydGVyczsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB5X3F1YXJ0ZXJzID0g VSB7IHZlYzogeSB9LnF1YXJ0ZXJzOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHpfcXVhcnRl cnMgPSBVIHsgdmVjOiB6IH0ucXVhcnRlcnM7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqeF9x dWFydGVycy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAg ICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hl Y2tlZCgwKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWQoMCkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0 ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5n ZXRfdW5jaGVja2VkKDEpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJh bnNtdXRlKCp6X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAg ICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2Vk X211dCgyKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5z bXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpLAot LSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAqeF9xdWFy dGVycy5nZXRfdW5jaGVja2VkX211dCgzKSA9IHRyYW5zbXV0ZSgkZnVuKAotLSAgICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tl ZCgzKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp6X3F1YXJ0ZXJzLmdl dF91bmNoZWNrZWQoMykpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAgICAg ICAgICAgICAgICBVIHsgcXVhcnRlcnM6IHhfcXVhcnRlcnMgfS52ZWMKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVt ZW50YXRpb24gY2FsbGluZyBmdW4gb25jZSBvbiBhIHZlY3RvciB0d2ljZSBhcyBsYXJnZToKLS0g ICAgKHR3aWNlIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lk OmlkZW50LAotLSAgICAgJHZlY3RfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAg IGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OwotLQotLSAgICAgICAgICAg ICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiBbJHZlY19p ZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2ZWN0X2lkLAotLSAgICAg ICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHhfdHdpY2UgPSBV IHsgdmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOwotLSAgICAgICAgICAgICAg ICAgICAgbGV0IHlfdHdpY2UgPSBVIHsgdmVjOiBbeSwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNl OwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHpfdHdpY2UgPSBVIHsgdmVjOiBbeiwgdW5pbml0 aWFsaXplZCgpXSB9LnR3aWNlOwotLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlOiAkdmVj dF9pZCA9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRl KHhfdHdpY2UpLCB0cmFuc211dGUoeV90d2ljZSksIHRyYW5zbXV0ZSh6X3R3aWNlKSkpOwotLQot LSAgICAgICAgICAgICAgICAgICAgKihVIHsgdHdpY2UgfS52ZWMuZ2V0X3VuY2hlY2tlZCgwKSkK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS19Ci0tCi0tbWFjcm9fcnVsZXMhIGdlbl90ZXJ0aWFyeV9pbXBsX3RhYmxlIHsKLS0gICAgKCR0 cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCkgPT4gewotLSAgICAgICAgbWFjcm9f cnVsZXMhIGltcGxfdGVydGlhcnkgewotLSAgICAgICAgICAgICgkdmlkOmlkZW50OiAkZnVuOmlk ZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfISh2ZWMgfCAkdHJhaXRf aWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAg ICAgICAgKCR2aWQ6aWRlbnRbJHNpZDppZGVudDsgJHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0 cmFpdF9tZXRob2QsICR2aWQsIFskc2lkOyAkc2NdLCAkZnVuKTsKLS0gICAgICAgICAgICB9Owot LSAgICAgICAgICAgICgkdmlkOmlkZW50W3NdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2Qs ICR2aWQsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRb aCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnlfIShoYWx2ZXMgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2 aWRfaCwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtx ID0+ICR2aWRfcTppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1w bF90ZXJ0aWFyeV8hKHF1YXJ0ZXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2 aWRfcSwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFt0 ID0+ICR2aWRfdDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1w bF90ZXJ0aWFyeV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlk X3QsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQot LW1hY3JvX3J1bGVzISBpbXBsX2JpbmFyeV8gewotLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBtYXBw aW5nIDE6MQotLSAgICAodmVjIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50 LCAkdmVjX2lkOmlkZW50LAotLSAgICAgJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCAk dHJhaXRfaWQgZm9yICR2ZWNfaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAg ICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJh bnNtdXRlOwotLSAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKHNl bGYpLCB0cmFuc211dGUoeSkpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQot LSAgICAgICAgfQotLSAgICB9OwotLSAgICAoc2NhbGFyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJh aXRfbWV0aG9kOmlkZW50LAotLSAgICAgJHZlY19pZDppZGVudCwgWyRzaWQ6aWRlbnQ7ICRzY291 bnQ6ZXhwcl0sICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAk dmVjX2lkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiAkdHJhaXRf bWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgewotLSAgICAgICAgICAgICAgICB1bnNhZmUg ewotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgdmVjOiAkdmVjX2lkLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhcnM6IFskc2lk OyAkc2NvdW50XSwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAg IGxldCBtdXQgeCA9IFUgeyB2ZWM6IHNlbGYgfS5zY2FsYXJzOwotLSAgICAgICAgICAgICAgICAg ICAgbGV0IHkgPSBVIHsgdmVjOiB5IH0uc2NhbGFyczsKLS0gICAgICAgICAgICAgICAgICAgIGZv ciAoeCwgeSkgaW4geC5pdGVyX211dCgpLnppcCgmeSkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICp4ID0gJGZ1bigqeCwgKnkpOwotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgVSB7IHNjYWxhcnM6IHggfS52ZWMKLS0gICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgLy8gaW1wbGVtZW50YXRpb24g Y2FsbGluZyBmdW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhhbHZlczoKLS0gICAgKGhh bHZlcyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVu dCwKLS0gICAgICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBs ICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0 cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVz OiBbJHZlY2hfaWQ7IDJdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB4X2hhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7Ci0tICAg ICAgICAgICAgICAgICAgICBsZXQgeV9oYWx2ZXMgPSBVIHsgdmVjOiB5IH0uaGFsdmVzOwotLQot LSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJh bnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X2hhbHZl cy5nZXRfdW5jaGVja2VkKDApKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUo KnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0t ICAgICAgICAgICAgICAgICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFu c211dGUoJGZ1bigKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVz LmdldF91bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgq eV9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgIFUgeyBoYWx2ZXM6IHhfaGFsdmVzIH0udmVjCi0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8v IGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIGZvdXIgdGltZXMgb24gZWFjaCBvZiB0aGUgdmVj dG9yIHF1YXJ0ZXJzOgotLSAgICAocXVhcnRlciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21l dGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAgICR2ZWNxX2lkOmlkZW50LCAkZnVuOmlk ZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBT ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgICAgICB1 bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNfaWQsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6IFskdmVjcV9pZDsgNF0sCi0tICAgICAgICAgICAg ICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHhfcXVhcnRlcnMgPSBV IHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgeV9xdWFy dGVycyA9IFUgeyB2ZWM6IHkgfS5xdWFydGVyczsKLS0KLS0gICAgICAgICAgICAgICAgICAgICp4 X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCi0tICAgICAg ICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkp LAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5j aGVja2VkKDApKSwKLS0gICAgICAgICAgICAgICAgICAgICkpOwotLQotLSAgICAgICAgICAgICAg ICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bigK LS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hl Y2tlZCgxKSksCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJz LmdldF91bmNoZWNrZWQoMSkpLAotLSAgICAgICAgICAgICAgICAgICAgKSk7Ci0tCi0tICAgICAg ICAgICAgICAgICAgICAqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkX211dCgyKSA9IHRyYW5zbXV0 ZSgkZnVuKAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5n ZXRfdW5jaGVja2VkKDIpKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlf cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCi0tICAgICAgICAgICAgICAgICAgICApKTsKLS0K LS0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDMpID0g dHJhbnNtdXRlKCRmdW4oCi0tICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1 YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5z bXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKLS0gICAgICAgICAgICAgICAgICAg ICkpOwotLQotLSAgICAgICAgICAgICAgICAgICAgVSB7IHF1YXJ0ZXJzOiB4X3F1YXJ0ZXJzIH0u dmVjCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tICAgIC8vIGltcGxlbWVudGF0aW9uIGNhbGxpbmcgZnVuIG9uY2Ugb24gYSB2ZWN0b3Ig dHdpY2UgYXMgbGFyZ2U6Ci0tICAgICh0d2ljZSB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21l dGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKLS0gICAgICR2ZWN0X2lkOmlkZW50LCAkZnVuOmlk ZW50KSA9PiB7Ci0tICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBT ZWxmKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmluaXRpYWxpemVkfTsKLS0KLS0g ICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIHZl YzogWyR2ZWNfaWQ7IDJdLAotLSAgICAgICAgICAgICAgICAgICAgICAgIHR3aWNlOiAkdmVjdF9p ZCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCB4 X3R3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKLS0gICAg ICAgICAgICAgICAgICAgIGxldCB5X3R3aWNlID0gVSB7IHZlYzogW3ksIHVuaW5pdGlhbGl6ZWQo KV0gfS50d2ljZTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZTogJHZlY3RfaWQgPSB0 cmFuc211dGUoJGZ1bih0cmFuc211dGUoeF90d2ljZSksIHRyYW5zbXV0ZSh5X3R3aWNlKSkpOwot LQotLSAgICAgICAgICAgICAgICAgICAgKihVIHsgdHdpY2UgfS52ZWMuZ2V0X3VuY2hlY2tlZCgw KSkKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAg fTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGdlbl9iaW5hcnlfaW1wbF90YWJsZSB7Ci0tICAgICgk dHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQpID0+IHsKLS0gICAgICAgIG1hY3Jv X3J1bGVzISBpbXBsX2JpbmFyeSB7Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRl bnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfISh2ZWMgfCAkdHJhaXRfaWQs ICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAg ICAgKCR2aWQ6aWRlbnRbJHNpZDppZGVudDsgJHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7Ci0t ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRf bWV0aG9kLCAkdmlkLCBbJHNpZDsgJHNjXSwgJGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAg ICAgICAgICAoJHZpZDppZGVudFtzXTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgICAgICAg ICBpbXBsX2JpbmFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwg JGZ1bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtoID0+ICR2 aWRfaDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5h cnlfIShoYWx2ZXMgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfaCwgJGZ1 bik7Ci0tICAgICAgICAgICAgfTsKLS0gICAgICAgICAgICAoJHZpZDppZGVudFtxID0+ICR2aWRf cTppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlf IShxdWFydGVyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkdmlkX3EsICRmdW4p OwotLSAgICAgICAgICAgIH07Ci0tICAgICAgICAgICAgKCR2aWQ6aWRlbnRbdCA9PiAkdmlkX3Q6 aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5XyEo dHdpY2UgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfdCwgJGZ1bik7Ci0t ICAgICAgICAgICAgfTsKLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv bXVsX2FkZC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L211bF9hZGQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAz MDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9tdWxfYWRkLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAt MSwxMDkgKzAsMCBAQAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgbXVsX2FkZGAKLS0j IVthbGxvdyh1bnVzZWQpXQotLXVzZSBjcmF0ZTo6KjsKLS0KLS0vLyBGSVhNRTogNjQtYml0IDEg ZWxlbWVudCBtdWxfYWRkCi0tCi0tcHViKGNyYXRlKSB0cmFpdCBNdWxBZGQgewotLSAgICBmbiBt dWxfYWRkKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLSNbY2ZnKG5v dCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0t ZXh0ZXJuICJDIiB7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnYyZjMyIl0KLS0gICAg Zm4gZm1hX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4MiwgejogZjMyeDIpIC0+IGYzMngyOwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52NGYzMiJdCi0tICAgIGZuIGZtYV92NGYzMih4OiBm MzJ4NCwgeTogZjMyeDQsIHo6IGYzMng0KSAtPiBmMzJ4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5mbWEudjhmMzIiXQotLSAgICBmbiBmbWFfdjhmMzIoeDogZjMyeDgsIHk6IGYzMng4LCB6 OiBmMzJ4OCkgLT4gZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnYxNmYzMiJd Ci0tICAgIGZuIGZtYV92MTZmMzIoeDogZjMyeDE2LCB5OiBmMzJ4MTYsIHo6IGYzMngxNikgLT4g ZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQgc2luZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52MWY2NCJdCi0tICAgIGZuIGZtYV92MWY2NCh4OiBmNjR4 MSwgeTogZjY0eDEsIHo6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgKi8KLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mbWEudjJmNjQiXQotLSAgICBmbiBmbWFfdjJmNjQoeDogZjY0eDIsIHk6IGY2 NHgyLCB6OiBmNjR4MikgLT4gZjY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnY0 ZjY0Il0KLS0gICAgZm4gZm1hX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCwgejogZjY0eDQpIC0+ IGY2NHg0OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52OGY2NCJdCi0tICAgIGZuIGZt YV92OGY2NCh4OiBmNjR4OCwgeTogZjY0eDgsIHo6IGY2NHg4KSAtPiBmNjR4ODsKLS19Ci0tCi0t Z2VuX3RlcnRpYXJ5X2ltcGxfdGFibGUhKE11bEFkZCwgbXVsX2FkZCk7Ci0tCi0tY2ZnX2lmISB7 Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAgIC8vIEZJ WE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE0Ci0tICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF9icm9rZW4gewotLSAgICAgICAgICAg ICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgICAgICAgICAgaW1wbCBNdWxBZGQgZm9yICRpZCB7 Ci0tICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZu IG11bF9hZGQoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZiAqIHkgKyB6Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICB9OwotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1w bF9icm9rZW4hKGYzMngyKTsKLS0gICAgICAgIGltcGxfYnJva2VuIShmMzJ4NCk7Ci0tICAgICAg ICBpbXBsX2Jyb2tlbiEoZjMyeDgpOwotLSAgICAgICAgaW1wbF9icm9rZW4hKGYzMngxNik7Ci0t Ci0tICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDIpOwotLSAgICAgICAgaW1wbF9icm9rZW4hKGY2 NHg0KTsKLS0gICAgICAgIGltcGxfYnJva2VuIShmNjR4OCk7Ci0tICAgIH0gZWxzZSBpZiAjW2Nm ZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsK LS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAg ICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X2F2eDIxMjgp OwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX2ZtYWY4X2F2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4OFto ID0+IGY2NHg0XTogU2xlZWZfZm1hZDRfYXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxf dGVydGlhcnkhKGYzMng0OiBTbGVlZl9mbWFmNF9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjMyeDg6IFNsZWVmX2ZtYWY4X2F2eDIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogU2xlZWZfZm1hZDJfYXZ4MjEyOCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0OiBTbGVlZl9mbWFkNF9hdngyKTsKLS0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAg ICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X3Nz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06 IFNsZWVmX2ZtYWY4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4 W2ggPT4gZjY0eDRdOiBTbGVlZl9mbWFkNF9hdngpOwotLQotLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4NDogU2xlZWZfZm1hZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnkhKGYzMng4OiBTbGVlZl9mbWFmOF9hdngpOwotLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5IShmNjR4MjogU2xlZWZfZm1hZDJfc3NlNCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdGVydGlhcnkhKGY2NHg0OiBTbGVlZl9mbWFkNF9hdngpOwotLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAg ICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xl ZWZfZm1hZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4W3Eg PT4gZjY0eDJdOiBTbGVlZl9mbWFkMl9zc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeSEoZjMyeDQ6IFNsZWVmX2ZtYWY0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBTbGVlZl9mbWFkMl9zc2U0KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2ZtYWQy X3NzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVy dGlhcnkhKGYzMngyOiBmbWFfdjJmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5 IShmMzJ4MTY6IGZtYV92MTZmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShm NjR4ODogZm1hX3Y4ZjY0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMy eDQ6IGZtYV92NGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng4OiBm bWFfdjhmMzIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogZm1hX3Yy ZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDQ6IGZtYV92NGY2NCk7 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9IGVsc2UgewotLSAgICAgICAgaW1w bF90ZXJ0aWFyeSEoZjMyeDI6IGZtYV92MmYzMik7Ci0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShm MzJ4NDogZm1hX3Y0ZjMyKTsKLS0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng4OiBmbWFfdjhm MzIpOwotLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2OiBmbWFfdjE2ZjMyKTsKLS0gICAg ICAgIC8vIGltcGxfdGVydGlhcnkhKGY2NHgxOiBmbWFfdjFmNjQpOyAvLyBGSVhNRSA2NC1iaXQg Zm1hZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IGZtYV92 MmY2NCk7Ci0tICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogZm1hX3Y0ZjY0KTsKLS0gICAg ICAgIGltcGxfdGVydGlhcnkhKGY2NHg4OiBmbWFfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9tdWxfYWRkZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9tdWxfYWRkZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L211bF9hZGRlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZGUucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLUBAIC0xLDYwICswLDAgQEAKLS0vLyEgQXBwcm94aW1hdGlvbiBmb3IgZmxvYXRp bmctcG9pbnQgYG11bF9hZGRgCi0tdXNlIGNyYXRlOjoqOwotLQotLS8vIEZJWE1FOiA2NC1iaXQg MSBlbGVtZW50IG11bF9hZGRlCi0tCi0tcHViKGNyYXRlKSB0cmFpdCBNdWxBZGRFIHsKLS0gICAg Zm4gbXVsX2FkZGUoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1tj Zmcobm90KHRhcmdldF9hcmNoID0gInMzOTB4IikpXQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVz KV0KLS1leHRlcm4gIkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnYyZjMy Il0KLS0gICAgZm4gZm11bGFkZF92MmYzMih4OiBmMzJ4MiwgeTogZjMyeDIsIHo6IGYzMngyKSAt PiBmMzJ4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnY0ZjMyIl0KLS0gICAg Zm4gZm11bGFkZF92NGYzMih4OiBmMzJ4NCwgeTogZjMyeDQsIHo6IGYzMng0KSAtPiBmMzJ4NDsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnY4ZjMyIl0KLS0gICAgZm4gZm11bGFk ZF92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgsIHo6IGYzMng4KSAtPiBmMzJ4ODsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnYxNmYzMiJdCi0tICAgIGZuIGZtdWxhZGRfdjE2ZjMy KHg6IGYzMngxNiwgeTogZjMyeDE2LCB6OiBmMzJ4MTYpIC0+IGYzMngxNjsKLS0gICAgLyogRklY TUUgNjQtYml0IHNpbmdsZSBlbGVtIHZlY3RvcnMKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5m bXVsYWRkLnYxZjY0Il0KLS0gICAgZm4gZm11bGFkZF92MWY2NCh4OiBmNjR4MSwgeTogZjY0eDEs IHo6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgKi8KLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5m bXVsYWRkLnYyZjY0Il0KLS0gICAgZm4gZm11bGFkZF92MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIs IHo6IGY2NHgyKSAtPiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnY0 ZjY0Il0KLS0gICAgZm4gZm11bGFkZF92NGY2NCh4OiBmNjR4NCwgeTogZjY0eDQsIHo6IGY2NHg0 KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnY4ZjY0Il0KLS0g ICAgZm4gZm11bGFkZF92OGY2NCh4OiBmNjR4OCwgeTogZjY0eDgsIHo6IGY2NHg4KSAtPiBmNjR4 ODsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfbXVsX2FkZGUgewotLSAgICAoJGlkOmlkZW50 IDogJGZuOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIE11bEFkZEUgZm9yICRpZCB7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbXVsX2FkZGUoc2VsZiwgeTogU2Vs ZiwgejogU2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRf YXJjaCA9ICJzMzkweCIpKV0KLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IHRyYW5zbXV0ZSgkZm4odHJhbnNtdXRlKHNlbGYpLCB0cmFuc211dGUoeSksIHRyYW5zbXV0 ZSh6KSkpIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJzMzkweCIpXQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAgICAgICAgICAgICAgICAgc2VsZiAqIHkgKyB6Ci0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQot LQotLWltcGxfbXVsX2FkZGUhKGYzMngyOiBmbXVsYWRkX3YyZjMyKTsKLS1pbXBsX211bF9hZGRl IShmMzJ4NDogZm11bGFkZF92NGYzMik7Ci0taW1wbF9tdWxfYWRkZSEoZjMyeDg6IGZtdWxhZGRf djhmMzIpOwotLWltcGxfbXVsX2FkZGUhKGYzMngxNjogZm11bGFkZF92MTZmMzIpOwotLS8vIGlt cGxfbXVsX2FkZGUhKGY2NHgxOiBmbWFfdjFmNjQpOyAvLyBGSVhNRSA2NC1iaXQgZm1hZ2xlIGVs ZW0gdmVjdG9ycwotLWltcGxfbXVsX2FkZGUhKGY2NHgyOiBmbXVsYWRkX3YyZjY0KTsKLS1pbXBs X211bF9hZGRlIShmNjR4NDogZm11bGFkZF92NGY2NCk7Ci0taW1wbF9tdWxfYWRkZSEoZjY0eDg6 IGZtdWxhZGRfdjhmNjQpOwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMKLS0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvcG93Zi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTEyICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRp bmctcG9pbnQgYHBvd2ZgCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQg cG93ZmdsZSBlbGVtIHZlY3RvcnMgbWlzcG93ZmcKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHVi KGNyYXRlKSB0cmFpdCBQb3dmIHsKLS0gICAgZm4gcG93ZihzZWxmLCB4OiBTZWxmKSAtPiBTZWxm OwotLX0KLS0KLS0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCi0tZXh0ZXJuICJDIiB7Ci0tICAg ICNbbGlua19uYW1lID0gImxsdm0ucG93LnYyZjMyIl0KLS0gICAgZm4gcG93Zl92MmYzMih4OiBm MzJ4MiwgeTogZjMyeDIpIC0+IGYzMngyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52 NGYzMiJdCi0tICAgIGZuIHBvd2ZfdjRmMzIoeDogZjMyeDQsIHk6IGYzMng0KSAtPiBmMzJ4NDsK LS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjhmMzIiXQotLSAgICBmbiBwb3dmX3Y4ZjMy KHg6IGYzMng4LCB5OiBmMzJ4OCkgLT4gZjMyeDg7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0u cG93LnYxNmYzMiJdCi0tICAgIGZuIHBvd2ZfdjE2ZjMyKHg6IGYzMngxNiwgeTogZjMyeDE2KSAt PiBmMzJ4MTY7Ci0tICAgIC8qIEZJWE1FIDY0LWJpdCBwb3dmZ2xlIGVsZW0gdmVjdG9ycwotLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MWY2NCJdCi0tICAgIGZuIHBvd2ZfdjFmNjQoeDog ZjY0eDEsIHk6IGY2NHgxKSAtPiBmNjR4MTsKLS0gICAgICovCi0tICAgICNbbGlua19uYW1lID0g Imxsdm0ucG93LnYyZjY0Il0KLS0gICAgZm4gcG93Zl92MmY2NCh4OiBmNjR4MiwgeTogZjY0eDIp IC0+IGY2NHgyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52NGY2NCJdCi0tICAgIGZu IHBvd2ZfdjRmNjQoeDogZjY0eDQsIHk6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5wb3cudjhmNjQiXQotLSAgICBmbiBwb3dmX3Y4ZjY0KHg6IGY2NHg4LCB5OiBm NjR4OCkgLT4gZjY0eDg7Ci0tCi0tICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LmYzMiJdCi0t ICAgIGZuIHBvd2ZfZjMyKHg6IGYzMiwgeTogZjMyKSAtPiBmMzI7Ci0tICAgICNbbGlua19uYW1l ID0gImxsdm0ucG93LmY2NCJdCi0tICAgIGZuIHBvd2ZfZjY0KHg6IGY2NCwgeTogZjY0KSAtPiBm NjQ7Ci0tfQotLQotLWdlbl9iaW5hcnlfaW1wbF90YWJsZSEoUG93ZiwgcG93Zik7Ci0tCi0tY2Zn X2lmISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKLS0gICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3Np bWQvaXNzdWVzLzE0Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbZjMyOyAyXTogcG93Zl9m MzIpOwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0W2YzMjsgNF06IHBvd2ZfZjMyKTsKLS0g ICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFtmMzI7IDhdOiBwb3dmX2YzMik7Ci0tICAgICAgICBp bXBsX2JpbmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBwb3dmX2YzMik7Ci0tCi0tICAgICAgICBpbXBs X2JpbmFyeSEoZjY0eDJbZjY0OyAyXTogcG93Zl9mNjQpOwotLSAgICAgICAgaW1wbF9iaW5hcnkh KGY2NHg0W2Y2NDsgNF06IHBvd2ZfZjY0KTsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtm NjQ7IDhdOiBwb3dmX2Y2NCk7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2gg PSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVl Zl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJn ZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYz MngyW3QgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfcG93ZjhfdTEwYXZ4Mik7 Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZf cG93ZDRfdTEwYXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDog U2xlZWZfcG93ZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShm MzJ4ODogU2xlZWZfcG93ZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmNjR4MjogU2xlZWZfcG93ZDJfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmNjR4NDogU2xlZWZfcG93ZDRfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGlt cGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3Bvd2Y4 X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4OFtoID0+IGY2NHg0 XTogU2xlZWZfcG93ZDRfdTEwYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkh KGYzMng0OiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5h cnkhKGYzMng4OiBTbGVlZl9wb3dmOF91MTBhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX2Jp bmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X2JpbmFyeSEoZjY0eDQ6IFNsZWVmX3Bvd2Q0X3UxMGF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAg IGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlNCk7Ci0t ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3Bv d2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDhbcSA9PiBm NjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX2Jp bmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X2JpbmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOwotLSAgICAg ICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMHNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3Bvd2Qy X3UxMHNzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9 ICJzc2UyIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW3QgPT4gZjMy eDRdOiBTbGVlZl9wb3dmNF91MTBzc2UyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkh KGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfYmluYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEwc3NlMik7 Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEw c3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4OFtoID0+IGYzMng0XTog U2xlZWZfcG93ZjRfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmNjR4 MjogU2xlZWZfcG93ZDJfdTEwc3NlMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShm NjR4NFtoID0+IGY2NHgyXTogU2xlZWZfcG93ZDJfdTEwc3NlMik7Ci0tICAgICAgICAgICAgfSBl bHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngyW2YzMjsgMl06IHBvd2Zf ZjMyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBwb3dmX3Y0ZjMyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBwb3dmX3Y4ZjMyKTsKLS0gICAg ICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNjogcG93Zl92MTZmMzIpOwotLQotLSAgICAg ICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IHBvd2ZfdjJmNjQpOwotLSAgICAgICAgICAg ICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IHBvd2ZfdjRmNjQpOwotLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjY0eDg6IHBvd2ZfdjhmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MltmMzI7IDJdOiBw b3dmX2YzMik7Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IHBvd2ZfdjRmMzIpOwotLSAg ICAgICAgaW1wbF9iaW5hcnkhKGYzMng4OiBwb3dmX3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfYmlu YXJ5IShmMzJ4MTY6IHBvd2ZfdjE2ZjMyKTsKLS0KLS0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4 MjogcG93Zl92MmY2NCk7Ci0tICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IHBvd2ZfdjRmNjQp OwotLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4OiBwb3dmX3Y4ZjY0KTsKLS0gICAgfQotLX0K LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvc2luLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0L3Npbi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L3Npbi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsMTAzICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbmAKLS0jIVth bGxvdyh1bnVzZWQpXQotLQotLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW4KLS0K LS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBTaW4gewotLSAgICBmbiBzaW4o c2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQotLWV4dGVy biAiQyIgewotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MmYzMiJdCi0tICAgIGZuIHNp bl92MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2lu LnY0ZjMyIl0KLS0gICAgZm4gc2luX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKLS0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5zaW4udjhmMzIiXQotLSAgICBmbiBzaW5fdjhmMzIoeDogZjMyeDgp IC0+IGYzMng4OwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MTZmMzIiXQotLSAgICBm biBzaW5fdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2NC1iaXQg c2luZ2xlIGVsZW0gdmVjdG9ycwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MWY2NCJd Ci0tICAgIGZuIHNpbl92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICAqLwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MmY2NCJdCi0tICAgIGZuIHNpbl92MmY2NCh4OiBmNjR4 MikgLT4gZjY0eDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnY0ZjY0Il0KLS0gICAg Zm4gc2luX3Y0ZjY0KHg6IGY2NHg0KSAtPiBmNjR4NDsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5zaW4udjhmNjQiXQotLSAgICBmbiBzaW5fdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OwotLQot LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi5mMzIiXQotLSAgICBmbiBzaW5fZjMyKHg6IGYz MikgLT4gZjMyOwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi5mNjQiXQotLSAgICBmbiBz aW5fZjY0KHg6IGY2NCkgLT4gZjY0OwotLX0KLS0KLS1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU2lu LCBzaW4pOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkw eCIpXSB7Ci0tICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJb ZjMyOyAyXTogc2luX2YzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBz aW5fZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IHNpbl9mMzIpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBzaW5fZjMyKTsKLS0KLS0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyW2Y2NDsgMl06IHNpbl9mNjQpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDRbZjY0OyA0XTogc2luX2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 OFtmNjQ7IDhdOiBzaW5fZjY0KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0gewotLSAgICAgICAgdXNlIHNs ZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwYXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2luZjhfdTEwYXZ4Mik7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9z aW5kNF91MTBhdngyKTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNs ZWVmX3NpbmY0X3UxMGF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogU2xlZWZfc2luZjhfdTEwYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBTbGVlZl9zaW5kMl91MTBhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDQ6IFNsZWVmX3NpbmQ0X3UxMGF2eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2luZjhfdTEwYXZ4 KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVm X3NpbmQ0X3UxMGF2eCk7Ci0tCi0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBT bGVlZl9zaW5mNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6 IFNsZWVmX3NpbmY4X3UxMGF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBTbGVlZl9zaW5kMl91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDQ6IFNsZWVmX3NpbmQ0X3UxMGF2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3Np bmQyX3UxMHNzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xl ZWZfc2luZjRfdTEwc3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2gg PT4gZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX3NpbmQyX3UxMHNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xlZWZfc2luZDJfdTEwc3NlNCk7Ci0tICAgICAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAy XTogc2luX2YzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc2luX3Yx NmYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBzaW5fdjhmNjQpOwot LQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc2luX3Y0ZjMyKTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IHNpbl92OGYzMik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBzaW5fdjJmNjQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NDogc2luX3Y0ZjY0KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0t ICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMy KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBzaW5fdjRmMzIpOwotLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDg6IHNpbl92OGYzMik7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6 IHNpbl92MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNpbl92MmY2NCk7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogc2luX3Y0ZjY0KTsKLS0gICAgICAgIGltcGxf dW5hcnkhKGY2NHg4OiBzaW5fdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fY29zX3Bp LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0 L3Npbl9jb3NfcGkucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC9mbG9hdC9zaW5fY29zX3BpLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvc2luX2Nvc19waS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsMTg4ICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNp bl9jb3NgCi0tIyFbYWxsb3codW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZl Y3RvcnMgc2luX2NvcwotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFNp bkNvc1BpOiBTaXplZCB7Ci0tICAgIHR5cGUgT3V0cHV0OwotLSAgICBmbiBzaW5fY29zX3BpKHNl bGYpIC0+IFNlbGY6Ok91dHB1dDsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZGVmIHsKLS0g ICAgKCR2aWQ6aWRlbnQsICRQSTpwYXRoKSA9PiB7Ci0tICAgICAgICBpbXBsIFNpbkNvc1BpIGZv ciAkdmlkIHsKLS0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKLS0gICAg ICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNl bGY6Ok91dHB1dCB7Ci0tICAgICAgICAgICAgICAgIGxldCB2ID0gc2VsZiAqIFNlbGY6OnNwbGF0 KCRQSSk7Ci0tICAgICAgICAgICAgICAgICh2LnNpbigpLCB2LmNvcygpKQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVsZXMhIGltcGxfZGVmMzIg ewotLSAgICAoJHZpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRl OjpmMzI6OmNvbnN0czo6UEkpOwotLSAgICB9OwotLX0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWY2 NCB7Ci0tICAgICgkdmlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3Jh dGU6OmY2NDo6Y29uc3RzOjpQSSk7Ci0tICAgIH07Ci0tfQotLQotLW1hY3JvX3J1bGVzISBpbXBs X3VuYXJ5X3QgewotLSAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAg aW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7Ci0tICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2Vs ZiwgU2VsZik7Ci0tICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRw dXQgewotLSAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKLS0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgk ZnVuKHRyYW5zbXV0ZShzZWxmKSkpCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90OmlkZW50 XTogJGZ1bjppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3IgJHZpZCB7Ci0t ICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7Ci0tICAgICAgICAgICAgZm4g c2luX2Nvc19waShzZWxmKSAtPiBTZWxmOjpPdXRwdXQgewotLSAgICAgICAgICAgICAgICB1bnNh ZmUgewotLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVu aW5pdGlhbGl6ZWR9OwotLQotLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgdmVjOiBbJHZpZDsgMl0sCi0tICAgICAgICAgICAgICAgICAgICAg ICAgdHdpY2U6ICR2aWRfdCwKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAg ICAgICAgICAgIGxldCB0d2ljZSA9IFUgeyB2ZWM6IFtzZWxmLCB1bmluaXRpYWxpemVkKCldIH0u dHdpY2U7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2UgPSB0cmFuc211dGUoJGZ1bih0 cmFuc211dGUodHdpY2UpKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICB0d2ljZTogKCR2aWRfdCwgJHZpZF90KSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICB2ZWNzOiAoWyR2aWQ7IDJdLCBbJHZpZDsgMl0pLAotLSAgICAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBSIHsgdHdpY2UgfS52 ZWNzOwotLSAgICAgICAgICAgICAgICAgICAgKCpyLjAuZ2V0X3VuY2hlY2tlZCgwKSwgKnIuMC5n ZXRfdW5jaGVja2VkKDEpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLSAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDppZGVudF06ICRm dW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgewotLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOwotLSAgICAgICAgICAgIGZuIHNpbl9j b3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKLS0gICAgICAgICAgICAgICAgdW5zYWZlIHsK LS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tCi0tICAg ICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6 ICR2aWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZpZF9oOyAyXSwKLS0g ICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMg PSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLQotLSAgICAgICAgICAgICAgICAgICAgbGV0IHJl c18wOiAoJHZpZF9oLCAkdmlkX2gpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRlKCpoYWx2ZXMu Z2V0X3VuY2hlY2tlZCgwKSkpKTsKLS0gICAgICAgICAgICAgICAgICAgIGxldCByZXNfMTogKCR2 aWRfaCwgJHZpZF9oKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqaGFsdmVzLmdldF91bmNo ZWNrZWQoMSkpKSk7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBSIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICByZXN1bHQ6ICgkdmlkLCAkdmlkKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICBoYWx2ZXM6IChbJHZpZF9oOyAyXSwgWyR2aWRfaDsgMl0pLAotLSAgICAgICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgUiB7IGhhbHZlczogKFtyZXNfMC4wLCBy ZXNfMS4wXSwgW3Jlc18wLjEsIHJlc18xLjFdKSB9LnJlc3VsdAotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAoJHZpZDppZGVudFtx ID0+ICR2aWRfcTppZGVudF06ICRmdW46aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgU2luQ29z UGkgZm9yICR2aWQgewotLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOwot LSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKLS0gICAg ICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVt Ojp0cmFuc211dGU7Ci0tCi0tICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICB2ZWM6ICR2aWQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgcXVh cnRlcnM6IFskdmlkX3E7IDRdLAotLSAgICAgICAgICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgICAgICAgICAgbGV0IHF1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0ZXJzOwotLQot LSAgICAgICAgICAgICAgICAgICAgbGV0IHJlc18wOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNt dXRlKCRmdW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSkpOwotLSAgICAg ICAgICAgICAgICAgICAgbGV0IHJlc18xOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRm dW4odHJhbnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSkpOwotLSAgICAgICAgICAg ICAgICAgICAgbGV0IHJlc18yOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSkpOwotLSAgICAgICAgICAgICAgICAg ICAgbGV0IHJlc18zOiAoJHZpZF9xLCAkdmlkX3EpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNtdXRl KCpxdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSkpOwotLQotLSAgICAgICAgICAgICAgICAgICAg dW5pb24gUiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiAoJHZpZCwgJHZpZCks Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6IChbJHZpZF9xOyA0XSwgWyR2aWRf cTsgNF0pLAotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgUiB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcXVhcnRlcnM6ICgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgW3Jlc18wLjAsIHJlc18xLjAsIHJlc18yLjAsIHJlc18zLjBdLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBbcmVzXzAuMSwgcmVzXzEuMSwgcmVzXzIuMSwgcmVzXzMu MV0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgKSwKLS0gICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIC5yZXN1bHQKLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlm ICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIp KV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAg ICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3NwaWY0 X3UwNWF2eDIxMjgpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMngxNltoID0+ IGYzMng4XTogU2xlZWZfc2luY29zcGlmOF91MDVhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeV90IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luY29zcGlkNF91MDVhdngyKTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlm NF91MDVhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4ODogU2xl ZWZfc2luY29zcGlmOF91MDVhdngyKTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShm NjR4MjogU2xlZWZfc2luY29zcGlkMl91MDVhdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeV90IShmNjR4NDogU2xlZWZfc2luY29zcGlkNF91MDVhdngyKTsKLS0gICAgICAgICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeV90IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91 MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZbaCA9PiBmMzJ4 OF06IFNsZWVmX3NpbmNvc3BpZjhfdTA1YXZ4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFy eV90IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2luY29zcGlkNF91MDVhdngpOwotLQotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNz ZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4OiBTbGVlZl9zaW5jb3Nw aWY4X3UwNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDI6IFNsZWVm X3NpbmNvc3BpZDJfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0 eDQ6IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeV90IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3Np bmNvc3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDhb cSA9PiBmNjR4Ml06IFNsZWVmX3NpbmNvc3BpZDJfdTA1c3NlNCk7Ci0tCi0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNv c3BpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0eDI6IFNs ZWVmX3NpbmNvc3BpZDJfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEo ZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NpbmNvc3BpZDJfdTA1c3NlNCk7Ci0tICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOwotLSAgICAg ICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVm MzIhKGYzMng4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKLS0KLS0g ICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOwotLSAgICAgICAgICAgICAgICBpbXBs X2RlZjY0IShmNjR4NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBpbXBsX2Rl ZjMyIShmMzJ4Mik7Ci0tICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7Ci0tICAgICAgICBpbXBs X2RlZjMyIShmMzJ4OCk7Ci0tICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwotLQotLSAgICAg ICAgaW1wbF9kZWY2NCEoZjY0eDIpOwotLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQpOwotLSAg ICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fcGkucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2lu X3BpLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvc2luX3BpLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0r KysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQv c2luX3BpLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSw4NyAr MCwwIEBACi0tLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzaW5fcGlgCi0tIyFbYWxsb3co dW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgc2luX3BpCi0tCi0t dXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJhaXQgU2luUGkgewotLSAgICBmbiBzaW5f cGkoc2VsZikgLT4gU2VsZjsKLS19Ci0tCi0tZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKFNpblBpLCBz aW5fcGkpOwotLQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZiB7Ci0tICAgICgkdmlkOmlkZW50LCAk UEk6cGF0aCkgPT4gewotLSAgICAgICAgaW1wbCBTaW5QaSBmb3IgJHZpZCB7Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gc2luX3BpKHNlbGYpIC0+IFNlbGYgewotLSAg ICAgICAgICAgICAgICAoc2VsZiAqIFNlbGY6OnNwbGF0KCRQSSkpLnNpbigpCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS1tYWNyb19ydWxlcyEgaW1wbF9kZWYzMiB7 Ci0tICAgICgkdmlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6 OmYzMjo6Y29uc3RzOjpQSSk7Ci0tICAgIH07Ci0tfQotLW1hY3JvX3J1bGVzISBpbXBsX2RlZjY0 IHsKLS0gICAgKCR2aWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0 ZTo6ZjY0Ojpjb25zdHM6OlBJKTsKLS0gICAgfTsKLS19Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlm ICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIp KV0gewotLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKLS0gICAgICAgIGNmZ19pZiEgewotLSAg ICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVh dngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhd OiBTbGVlZl9zaW5waWY4X3UwNWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lucGlkNF91MDVhdngyKTsKLS0KLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbnBpZjRfdTA1YXZ4MjEyOCk7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zaW5waWY4X3UwNWF2eDIpOwot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc2lucGlkMl91MDVhdngy MTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NpbnBpZDRf dTA1YXZ4Mik7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0g ImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRd OiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbnBpZjhfdTA1YXZ4KTsKLS0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbnBpZDRfdTA1YXZ4KTsK LS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbnBpZjRfdTA1 c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zaW5waWY4 X3UwNWF2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5w aWQyX3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZf c2lucGlkNF91MDVhdngpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2U0LjIiKV0gewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc2lucGlk Ml91MDVzc2U0KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X3NpbnBpZjRfdTA1c3NlNCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2gg PT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogU2xlZWZfc2lucGlkMl91MDVzc2U0KTsKLS0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NpbnBpZDJfdTA1c3NlNCk7Ci0t ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIp OwotLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfZGVmMzIhKGYzMng4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2 KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOwotLSAgICAgICAgICAg ICAgICBpbXBsX2RlZjY0IShmNjR4NCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2 NHg4KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAg ICBpbXBsX2RlZjMyIShmMzJ4Mik7Ci0tICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7Ci0tICAg ICAgICBpbXBsX2RlZjMyIShmMzJ4OCk7Ci0tICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOwot LQotLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOwotLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0 eDQpOwotLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9z cXJ0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zs b2F0L3NxcnQucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9zcXJ0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvc3FydC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTAz ICswLDAgQEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNxcnRgCi0tIyFbYWxsb3co dW51c2VkKV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgc3FydAotLQotLXVz ZSBjcmF0ZTo6KjsKLS0KLS1wdWIoY3JhdGUpIHRyYWl0IFNxcnQgewotLSAgICBmbiBzcXJ0KHNl bGYpIC0+IFNlbGY7Ci0tfQotLQotLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KLS1leHRlcm4g IkMiIHsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnYyZjMyIl0KLS0gICAgZm4gc3Fy dF92MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc3Fy dC52NGYzMiJdCi0tICAgIGZuIHNxcnRfdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OwotLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjhmMzIiXQotLSAgICBmbiBzcXJ0X3Y4ZjMyKHg6IGYz Mng4KSAtPiBmMzJ4ODsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnYxNmYzMiJdCi0t ICAgIGZuIHNxcnRfdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2OwotLSAgICAvKiBGSVhNRSA2 NC1iaXQgc3FydGdsZSBlbGVtIHZlY3RvcnMKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0 LnYxZjY0Il0KLS0gICAgZm4gc3FydF92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7Ci0tICAgICAq LwotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjJmNjQiXQotLSAgICBmbiBzcXJ0X3Yy ZjY0KHg6IGY2NHgyKSAtPiBmNjR4MjsKLS0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY0 ZjY0Il0KLS0gICAgZm4gc3FydF92NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7Ci0tICAgICNbbGlu a19uYW1lID0gImxsdm0uc3FydC52OGY2NCJdCi0tICAgIGZuIHNxcnRfdjhmNjQoeDogZjY0eDgp IC0+IGY2NHg4OwotLQotLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQuZjMyIl0KLS0gICAg Zm4gc3FydF9mMzIoeDogZjMyKSAtPiBmMzI7Ci0tICAgICNbbGlua19uYW1lID0gImxsdm0uc3Fy dC5mNjQiXQotLSAgICBmbiBzcXJ0X2Y2NCh4OiBmNjQpIC0+IGY2NDsKLS19Ci0tCi0tZ2VuX3Vu YXJ5X2ltcGxfdGFibGUhKFNxcnQsIHNxcnQpOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7Ci0tICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAotLSAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc3FydF9mMzIpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDRbZjMyOyA0XTogc3FydF9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDhbZjMyOyA4XTogc3FydF9mMzIpOwotLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsg MTZdOiBzcXJ0X2YzMik7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBz cXJ0X2Y2NCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtmNjQ7IDRdOiBzcXJ0X2Y2NCk7 Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBzcXJ0X2Y2NCk7Ci0tICAgIH0g ZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVl Zi1zeXMiKSldIHsKLS0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7Ci0tICAgICAgICBjZmdfaWYh IHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRm NF9hdngyMTI4KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMy eDhdOiBTbGVlZl9zcXJ0ZjhfYXZ4Mik7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2 NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zcXJ0ZDRfYXZ4Mik7Ci0tCi0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfYXZ4MjEyOCk7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfYXZ4Mik7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfYXZ4MjEyOCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfYXZ4Mik7Ci0tICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZf c3FydGY4X2F2eCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0 eDRdOiBTbGVlZl9zcXJ0ZDRfYXZ4KTsKLS0KLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX3NxcnRmNF9zc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IFNsZWVmX3NxcnRmOF9hdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfc3FydGQyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfc3FydGQ0X2F2eCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Ci0tICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3NzZTQpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfc3FydGQy X3NzZTQpOwotLQotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3Fy dGY0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0 XTogU2xlZWZfc3FydGY0X3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogU2xlZWZfc3FydGQyX3NzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfc3FydGQyX3NzZTQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7 Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNxcnRfZjMyKTsK LS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBzcXJ0X3YxNmYzMik7Ci0tICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBzcXJ0X3Y4ZjY0KTsKLS0KLS0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IHNxcnRfdjRmMzIpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4ODogc3FydF92OGYzMik7Ci0tICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHgyOiBzcXJ0X3YyZjY0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDQ6IHNxcnRfdjRmNjQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfSBl bHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IHNxcnRfZjMyKTsKLS0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBzcXJ0X3Y0ZjMyKTsKLS0gICAgICAgIGltcGxfdW5h cnkhKGYzMng4OiBzcXJ0X3Y4ZjMyKTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc3Fy dF92MTZmMzIpOwotLQotLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNxcnRfdjJmNjQpOwot LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IHNxcnRfdjRmNjQpOwotLSAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDg6IHNxcnRfdjhmNjQpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0ZS5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zcXJ0 ZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRo L2Zsb2F0L3NxcnRlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3Fy dGUucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY3ICswLDAg QEAKLS0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNxcnRgCi0tIyFbYWxsb3codW51c2Vk KV0KLS0KLS0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgc3FydGUKLS0KLS11c2UgY3Jh dGU6Omxsdm06OnNpbWRfZnNxcnQ7Ci0tdXNlIGNyYXRlOjoqOwotLQotLXB1YihjcmF0ZSkgdHJh aXQgU3FydGUgewotLSAgICBmbiBzcXJ0ZShzZWxmKSAtPiBTZWxmOwotLX0KLS0KLS1nZW5fdW5h cnlfaW1wbF90YWJsZSEoU3FydGUsIHNxcnRlKTsKLS0KLS1jZmdfaWYhIHsKLS0gICAgaWYgI1tj ZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7 Ci0tICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOwotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAg ICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1YXZ4MjEy OCk7Ci0tICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xl ZWZfc3FydGY4X3UzNWF2eDIpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFto ID0+IGY2NHg0XTogU2xlZWZfc3FydGQ0X3UzNWF2eDIpOwotLQotLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3UzNWF2eDIxMjgpOwotLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc3FydGY4X3UzNWF2eDIpOwotLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc3FydGQyX3UzNWF2eDIxMjgpOwotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfc3FydGQ0X3UzNWF2eDIpOwot LSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewot LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3Fy dGY0X3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBm MzJ4OF06IFNsZWVmX3NxcnRmOF91MzVhdngpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc3FydGQ0X3UzNWF2eCk7Ci0tCi0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfdTM1YXZ4KTsKLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF91MzVhdngpOwot LSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0g ewotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZf c3FydGY0X3UzNXNzZTQpOwotLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9 PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKLS0KLS0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsKLS0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRm NF91MzVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3Nx cnRkMl91MzVzc2U0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBm NjR4Ml06IFNsZWVmX3NxcnRkMl91MzVzc2U0KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltnXTogc2ltZF9mc3FydCk7Ci0tICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ddOiBzaW1kX2ZzcXJ0KTsKLS0KLS0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4OFtnXTogc2ltZF9mc3FydCk7Ci0tICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHgyW2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDRbZ106IHNpbWRfZnNxcnQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0K LS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2ddOiBzaW1kX2ZzcXJ0 KTsKLS0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAg IGltcGxfdW5hcnkhKGYzMng4W2ddOiBzaW1kX2ZzcXJ0KTsKLS0gICAgICAgIGltcGxfdW5hcnkh KGYzMngxNltnXTogc2ltZF9mc3FydCk7Ci0tCi0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mltn XTogc2ltZF9mc3FydCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtnXTogc2ltZF9mc3Fy dCk7Ci0tICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtnXTogc2ltZF9mc3FydCk7Ci0tICAgIH0K LS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9tYXRoL2Zsb2F0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL21hdGgvZmxvYXQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAK LSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTggKzAsMCBA QAotLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBtYXRoIG9wZXJhdGlvbnMuCi0tIyFbYWxs b3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCi0tCi0tI1ttYWNyb191c2VdCi0tcHViKGNy YXRlKSBtb2QgbWFjcm9zOwotLXB1YihjcmF0ZSkgbW9kIGFiczsKLS1wdWIoY3JhdGUpIG1vZCBj b3M7Ci0tcHViKGNyYXRlKSBtb2QgY29zX3BpOwotLXB1YihjcmF0ZSkgbW9kIGV4cDsKLS1wdWIo Y3JhdGUpIG1vZCBsbjsKLS1wdWIoY3JhdGUpIG1vZCBtdWxfYWRkOwotLXB1YihjcmF0ZSkgbW9k IG11bF9hZGRlOwotLXB1YihjcmF0ZSkgbW9kIHBvd2Y7Ci0tcHViKGNyYXRlKSBtb2Qgc2luOwot LXB1YihjcmF0ZSkgbW9kIHNpbl9jb3NfcGk7Ci0tcHViKGNyYXRlKSBtb2Qgc2luX3BpOwotLXB1 YihjcmF0ZSkgbW9kIHNxcnQ7Ci0tcHViKGNyYXRlKSBtb2Qgc3FydGU7Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAot QEAgLTEsMyArMCwwIEBACi0tLy8hIFZlcnRpY2FsIG1hdGggb3BlcmF0aW9ucwotLQotLXB1Yihj cmF0ZSkgbW9kIGZsb2F0OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJzCTIw MjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJzCTE5NzAtMDEtMDEg MDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyOCArMCwwIEBACi0tLy8hIFByb3ZpZGVz IGBpc2l6ZWAgYW5kIGB1c2l6ZWAKLS0KLS11c2UgY2ZnX2lmOjpjZmdfaWY7Ci0tCi0tY2ZnX2lm ISB7Ci0tICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjgiKV0gewotLSAgICAg ICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGk4OwotLSAgICAgICAgcHViKGNyYXRlKSB0eXBl IHVzaXplXyA9IHU4OwotLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGgg PSAiMTYiKV0gewotLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGkxNjsKLS0gICAg ICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MTY7Ci0tICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUg aXNpemVfID0gaTMyOwotLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIHVzaXplXyA9IHUzMjsKLS0K LS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0g ICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpNjQ7Ci0tICAgICAgICBwdWIoY3JhdGUp IHR5cGUgdXNpemVfID0gdTY0OwotLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJf d2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgcHViKGNyYXRlKSB0eXBlIGlzaXplXyA9IGk2NDsK LS0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1NjQ7Ci0tICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxMjgiKV0gewotLSAgICAgICAgcHViKGNyYXRl KSB0eXBlIGlzaXplXyA9IGkxMjg7Ci0tICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0g dTEyODsKLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRl ZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FhcmNo NjQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay9hYXJjaDY0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hYXJjaDY0LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hYXJjaDY0LnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAw MDAwMDAwICswMzAwCi1AQCAtMSw4MSArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBs ZW1lbnRhdGlvbiBmb3IgYGFhcmNoNjRgIHRhcmdldHMKLS0KLS0vLy8gMTI4LWJpdCB3aWRlIHZl Y3RvcnMKLS1tYWNyb19ydWxlcyEgYWFyY2g2NF8xMjhfbmVvbl9pbXBsIHsKLS0gICAgKCRpZDpp ZGVudCwgJHZtaW46aWRlbnQsICR2bWF4OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBm b3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9m ZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxm KSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphYXJjaDY0Ojok dm1pbjsKLS0gICAgICAgICAgICAgICAgJHZtaW4oY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYp KSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVh dHVyZShlbmFibGUgPSAibmVvbiIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikg LT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YWFyY2g2NDo6JHZt YXg7Ci0tICAgICAgICAgICAgICAgICR2bWF4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkg IT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8vIDY0 LWJpdCB3aWRlIHZlY3RvcnMKLS1tYWNyb19ydWxlcyEgYWFyY2g2NF82NF9uZW9uX2ltcGwgewot LSAgICAoJGlkOmlkZW50LCAkdmVjMTI4OmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBm b3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9m ZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxm KSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgLy8gRHVwbGljYXRlcyB0aGUgNjQtYml0IHZl Y3RvciBpbnRvIGEgMTI4LWJpdCBvbmUgYW5kCi0tICAgICAgICAgICAgICAgIC8vIGNhbGxzIGFs bCBvbiB0aGF0LgotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAg ICAgIGhhbHZlczogKCRpZCwgJGlkKSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJHZlYzEy OCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBVIHsgaGFsdmVzOiAoc2Vs Ziwgc2VsZikgfS52ZWMuYWxsKCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAg ICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCi0tICAgICAgICAgICAgdW5zYWZl IGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAg ICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaWQsICRpZCksCi0tICAgICAgICAgICAgICAgICAg ICB2ZWM6ICR2ZWMxMjgsCi0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgVSB7 IGhhbHZlczogKHNlbGYsIHNlbGYpIH0udmVjLmFueSgpCi0tICAgICAgICAgICAgfQotLSAgICAg ICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gTWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRpb24g Zm9yIGBhYXJjaDY0YCB0YXJnZXRzCi0tbWFjcm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25z IHsKLS0gICAgLy8gNjQtYml0IHdpZGUgbWFza3MKLS0gICAgKG04eDgpID0+IHsKLS0gICAgICAg IGFhcmNoNjRfNjRfbmVvbl9pbXBsIShtOHg4LCBtOHgxNik7Ci0tICAgIH07Ci0tICAgIChtMTZ4 NCkgPT4gewotLSAgICAgICAgYWFyY2g2NF82NF9uZW9uX2ltcGwhKG0xNng0LCBtMTZ4OCk7Ci0t ICAgIH07Ci0tICAgIChtMzJ4MikgPT4gewotLSAgICAgICAgYWFyY2g2NF82NF9uZW9uX2ltcGwh KG0zMngyLCBtMzJ4NCk7Ci0tICAgIH07Ci0tICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNrcwotLSAg ICAobTh4MTYpID0+IHsKLS0gICAgICAgIGFhcmNoNjRfMTI4X25lb25faW1wbCEobTh4MTYsIHZt aW52cV91OCwgdm1heHZxX3U4KTsKLS0gICAgfTsKLS0gICAgKG0xNng4KSA9PiB7Ci0tICAgICAg ICBhYXJjaDY0XzEyOF9uZW9uX2ltcGwhKG0xNng4LCB2bWludnFfdTE2LCB2bWF4dnFfdTE2KTsK LS0gICAgfTsKLS0gICAgKG0zMng0KSA9PiB7Ci0tICAgICAgICBhYXJjaDY0XzEyOF9uZW9uX2lt cGwhKG0zMng0LCB2bWludnFfdTMyLCB2bWF4dnFfdTMyKTsKLS0gICAgfTsKLS0gICAgLy8gRmFs bGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1nZW5lcmF0aW9uOgotLSAgICAoJGlkOmlkZW50 KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOwotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay9hcm0ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay9hcm0ucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycwkyMDI1LTA0LTIwIDE5OjI4OjEz LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAw MDAwICswMzAwCi1AQCAtMSw1NiArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1l bnRhdGlvbiBmb3IgYGFybWAgdGFyZ2V0cwotLQotLS8vLyBJbXBsZW1lbnRhdGlvbiBmb3IgQVJN ICsgdjcgKyBORU9OIGZvciA2NC1iaXQgb3IgMTI4LWJpdCB3aWRlIHZlY3RvcnMgd2l0aAotLS8v LyBtb3JlIHRoYW4gdHdvIGVsZW1lbnRzLgotLW1hY3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25f aW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQsICRoYWxmOmlkZW50LCAkdnBtaW46aWRlbnQsICR2cG1h eDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAidjcsbmVv biIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjokdnBtaW47Ci0tICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Ci0tICAgICAgICAgICAgICAgIHVuaW9uIFUgewot LSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAoJGhhbGYsICRoYWxmKSwKLS0gICAgICAgICAg ICAgICAgICAgIHZlYzogJGlkLAotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOwotLSAgICAgICAgICAgICAgICBs ZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWluKHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5z bXV0ZShoYWx2ZXMuMSkpKTsKLS0gICAgICAgICAgICAgICAgaC5hbGwoKQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInY3LG5l b24iKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFybTo6JHZwbWF4OwotLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwotLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsK LS0gICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCRoYWxmLCAkaGFsZiksCi0tICAgICAgICAg ICAgICAgICAgICB2ZWM6ICRpZCwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAg ICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKLS0gICAgICAgICAgICAgICAg bGV0IGg6ICRoYWxmID0gdHJhbnNtdXRlKCR2cG1heCh0cmFuc211dGUoaGFsdmVzLjApLCB0cmFu c211dGUoaGFsdmVzLjEpKSk7Ci0tICAgICAgICAgICAgICAgIGguYW55KCkKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBs ZW1lbnRhdGlvbiBmb3IgYGFybWAgdGFyZ2V0cwotLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVk dWN0aW9ucyB7Ci0tICAgIC8vIDEyOC1iaXQgd2lkZSBtYXNrcwotLSAgICAobTh4MTYpID0+IHsK LS0gICAgICAgIGFybV8xMjhfdjdfbmVvbl9pbXBsIShtOHgxNiwgbTh4OCwgdnBtaW5fdTgsIHZw bWF4X3U4KTsKLS0gICAgfTsKLS0gICAgKG0xNng4KSA9PiB7Ci0tICAgICAgICBhcm1fMTI4X3Y3 X25lb25faW1wbCEobTE2eDgsIG0xNng0LCB2cG1pbl91MTYsIHZwbWF4X3UxNik7Ci0tICAgIH07 Ci0tICAgIChtMzJ4NCkgPT4gewotLSAgICAgICAgYXJtXzEyOF92N19uZW9uX2ltcGwhKG0zMng0 LCBtMzJ4MiwgdnBtaW5fdTMyLCB2cG1heF91MzIpOwotLSAgICB9OwotLSAgICAvLyBGYWxsYmFj ayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVyYXRpb246Ci0tICAgICgkaWQ6aWRlbnQpID0+ IHsKLS0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJi dSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL2ZhbGxiYWNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzCTIwMjUtMDQt MjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFjay5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOCArMCwwIEBACi0tLy8hIERlZmF1bHQg bWFzayByZWR1Y3Rpb24gaW1wbGVtZW50YXRpb25zLgotLQotLS8vLyBEZWZhdWx0IG1hc2sgcmVk dWN0aW9uIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIGltcGxfbWFza19yZWR1Y3Rpb25z IHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsK LS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2tfaW1wbC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2lt cGwucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v cmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDIzNyArMCwwIEBACi0tLy8hIERlZmF1bHQgaW1wbGVtZW50YXRp b24gb2YgYSBtYXNrIHJlZHVjdGlvbiBmb3IgYW55IHRhcmdldC4KLS0KLS1tYWNyb19ydWxlcyEg ZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQsICRvdGhlcjppZGVudCkg PT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVd Ci0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAg ICAgICAgbGV0IG06ICRvdGhlciA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAg ICAgICAgICAgICAgbS5hbGwoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAg IGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBtOiAk b3RoZXIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIG0u YW55KCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyBG YWxsYmFjayBpbXBsZW1lbnRhdGlvbi4KLS1tYWNyb19ydWxlcyEgZmFsbGJhY2tfaW1wbCB7Ci0t ICAgIC8vIDE2LWJpdCB3aWRlIG1hc2tzOgotLSAgICAobTh4MikgPT4gewotLSAgICAgICAgaW1w bCBBbGwgZm9yIG04eDIgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiB1MTYg PSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGkgPT0gdTE2 OjptYXhfdmFsdWUoKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwg QW55IGZvciBtOHgyIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNh ZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICBsZXQgaTogdTE2ID0g Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICBpICE9IDAKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIC8vIDMyLWJpdCB3aWRlIG1h c2tzCi0tICAgIChtOHg0KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4NCB7Ci0tICAg ICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBi b29sIHsKLS0gICAgICAgICAgICAgICAgbGV0IGk6IHUzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0 ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgaSA9PSB1MzI6Om1heF92YWx1ZSgpCi0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDQgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9v bCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiB1MzIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZik7Ci0tICAgICAgICAgICAgICAgIGkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS0gICAgKG0xNngyKSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhl cl9pbXBsIShtMTZ4MiwgbTh4NCk7Ci0tICAgIH07Ci0tICAgIC8vIDY0LWJpdCB3aWRlIG1hc2tz OgotLSAgICAobTh4OCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDggewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9v bCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiB1NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZik7Ci0tICAgICAgICAgICAgICAgIGkgPT0gdTY0OjptYXhfdmFsdWUoKQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciBtOHg4IHsKLS0gICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wg ewotLSAgICAgICAgICAgICAgICBsZXQgaTogdTY0ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNl bGYpOwotLSAgICAgICAgICAgICAgICBpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tICAgIChtMTZ4NCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJf aW1wbCEobTE2eDQsIG04eDgpOwotLSAgICB9OwotLSAgICAobTMyeDIpID0+IHsKLS0gICAgICAg IGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0zMngyLCBtMTZ4NCk7Ci0tICAgIH07Ci0tICAgIC8v IEZJWE1FOiA2NHgxIG1heGsKLS0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzOgotLSAgICAobTh4 MTYpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHgxNiB7Ci0tICAgICAgICAgICAgI1tp bmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAg ICAgICAgICAgICAgbGV0IGk6IHUxMjggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0t ICAgICAgICAgICAgICAgIGkgPT0gdTEyODo6bWF4X3ZhbHVlKCkKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgbTh4MTYgewotLSAgICAgICAgICAgICNb aW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAg ICAgICAgICAgICAgIGxldCBpOiB1MTI4ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwot LSAgICAgICAgICAgICAgICBpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tICAgIChtMTZ4OCkgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEo bTE2eDgsIG04eDE2KTsKLS0gICAgfTsKLS0gICAgKG0zMng0KSA9PiB7Ci0tICAgICAgICBmYWxs YmFja190b19vdGhlcl9pbXBsIShtMzJ4NCwgbTE2eDgpOwotLSAgICB9OwotLSAgICAobTY0eDIp ID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG02NHgyLCBtMzJ4NCk7Ci0t ICAgIH07Ci0tICAgIChtMTI4eDEpID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2lt cGwhKG0xMjh4MSwgbTY0eDIpOwotLSAgICB9OwotLSAgICAvLyAyNTYtYml0IHdpZGUgbWFza3MK LS0gICAgKG04eDMyKSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgbTh4MzIgewotLSAgICAg ICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9v bCB7Ci0tICAgICAgICAgICAgICAgIGxldCBpOiBbdTEyODsgMl0gPSBjcmF0ZTo6bWVtOjp0cmFu c211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgIGxldCBvOiBbdTEyODsgMl0gPSBbdTEyODo6 bWF4X3ZhbHVlKCk7IDJdOwotLSAgICAgICAgICAgICAgICBpID09IG8KLS0gICAgICAgICAgICB9 Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgbTh4MzIgewotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0t ICAgICAgICAgICAgICAgIGxldCBpOiBbdTEyODsgMl0gPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZik7Ci0tICAgICAgICAgICAgICAgIGxldCBvOiBbdTEyODsgMl0gPSBbMDsgMl07Ci0tICAg ICAgICAgICAgICAgIGkgIT0gbwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsK LS0gICAgKG0xNngxNikgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTE2 eDE2LCBtOHgzMik7Ci0tICAgIH07Ci0tICAgIChtMzJ4OCkgPT4gewotLSAgICAgICAgZmFsbGJh Y2tfdG9fb3RoZXJfaW1wbCEobTMyeDgsIG0xNngxNik7Ci0tICAgIH07Ci0tICAgIChtNjR4NCkg PT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTY0eDQsIG0zMng4KTsKLS0g ICAgfTsKLS0gICAgKG0xMjh4MikgPT4gewotLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCEobTEyOHgyLCBtNjR4NCk7Ci0tICAgIH07Ci0tICAgIC8vIDUxMi1iaXQgd2lkZSBtYXNrcwot LSAgICAobTh4NjQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciBtOHg2NCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29s IHsKLS0gICAgICAgICAgICAgICAgbGV0IGk6IFt1MTI4OyA0XSA9IGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgbGV0IG86IFt1MTI4OyA0XSA9IFt1MTI4Ojpt YXhfdmFsdWUoKTsgNF07Ci0tICAgICAgICAgICAgICAgIGkgPT0gbwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciBtOHg2NCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKLS0g ICAgICAgICAgICAgICAgbGV0IGk6IFt1MTI4OyA0XSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShz ZWxmKTsKLS0gICAgICAgICAgICAgICAgbGV0IG86IFt1MTI4OyA0XSA9IFswOyA0XTsKLS0gICAg ICAgICAgICAgICAgaSAhPSBvCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Owot LSAgICAobTE2eDMyKSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4 MzIsIG04eDY0KTsKLS0gICAgfTsKLS0gICAgKG0zMngxNikgPT4gewotLSAgICAgICAgZmFsbGJh Y2tfdG9fb3RoZXJfaW1wbCEobTMyeDE2LCBtMTZ4MzIpOwotLSAgICB9OwotLSAgICAobTY0eDgp ID0+IHsKLS0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG02NHg4LCBtMzJ4MTYpOwot LSAgICB9OwotLSAgICAobTEyOHg0KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja190b19vdGhlcl9p bXBsIShtMTI4eDQsIG02NHg4KTsKLS0gICAgfTsKLS0gICAgLy8gTWFza3Mgd2l0aCBwb2ludGVy LXNpemVkIGVsZW1lbnRzNjQKLS0gICAgKG1zaXpleDIpID0+IHsKLS0gICAgICAgIGNmZ19pZiEg ewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsK LS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTY0eDIp OwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIz MiIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIs IG0zMngyKTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBjb21waWxl X2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgICAgICAg ICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgIChtc2l6ZXg0KSA9PiB7Ci0tICAgICAgICBj ZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2 NCIpXSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQs IG02NHg0KTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lk dGggPSAiMzIiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsISht c2l6ZXg0LCBtMzJ4NCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAg Y29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAobXNpemV4OCkgPT4gewotLSAg ICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lk dGggPSAiNjQiKV0gewotLSAgICAgICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsISht c2l6ZXg4LCBtNjR4OCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2lu dGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJf aW1wbCEobXNpemV4OCwgbTMyeDgpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAg ICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIp OwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tbWFjcm9fcnVs ZXMhIHJlY3Vyc2VfaGFsZiB7Ci0tICAgICgkdmlkOmlkZW50LCAkdmlkX2g6aWRlbnQpID0+IHsK LS0gICAgICAgIGltcGwgQWxsIGZvciAkdmlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAg ICB1bmlvbiBVIHsKLS0gICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCR2aWRfaCwgJHZpZF9o KSwKLS0gICAgICAgICAgICAgICAgICAgIHZlYzogJHZpZCwKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKLS0g ICAgICAgICAgICAgICAgaGFsdmVzLjAuYWxsKCkgJiYgaGFsdmVzLjEuYWxsKCkKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJHZpZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29s IHsKLS0gICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAgICAgICAgICAgICBoYWx2 ZXM6ICgkdmlkX2gsICR2aWRfaCksCi0tICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2aWQsCi0t ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6 IHNlbGYgfS5oYWx2ZXM7Ci0tICAgICAgICAgICAgICAgIGhhbHZlcy4wLmFueSgpIHx8IGhhbHZl cy4xLmFueSgpCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYg LU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay94ODYvYXZ4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycwkyMDI1LTA0 LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycwkxOTcwLTAxLTAx IDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOTUgKzAsMCBAQAotLS8vISBNYXNrIHJl ZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdp dGggYEFWWGAKLS0KLS0vLy8gYHg4NmAvYHg4Nl82NGAgMjU2LWJpdCBgQVZYYCBpbXBsZW1lbnRh dGlvbgotLS8vLyBGSVhNRTogaXQgbWlnaHQgYmUgZmFzdGVyIGhlcmUgdG8gZG8gdHdvIGBfbW1f bW92bWFza19lcGk4YAotLSNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXQotLW1hY3JvX3J1 bGVzISB4ODZfbTh4MzJfYXZ4X2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAg ICBpbXBsIEFsbCBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJhdngiKV0KLS0gICAgICAgICAgICB1bnNhZmUg Zm4gYWxsKHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJj aCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1 Nl90ZXN0Y19zaTI1NjsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2 XzY0IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZf dGVzdGNfc2kyNTY7Ci0tICAgICAgICAgICAgICAgIF9tbTI1Nl90ZXN0Y19zaTI1NihjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZiksIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgkaWQ6OnNwbGF0KHRy dWUpKSkgIT0gMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55 IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0 X2ZlYXR1cmUoZW5hYmxlID0gImF2eCIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2Vs ZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIp XQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X3Rlc3R6X3Np MjU2OwotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl90ZXN0el9zaTI1 NjsKLS0gICAgICAgICAgICAgICAgX21tMjU2X3Rlc3R6X3NpMjU2KGNyYXRlOjptZW06OnRyYW5z bXV0ZShzZWxmKSwgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwCi0tICAgICAgICAg ICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8gYHg4NmAvYHg4Nl82NGAgMjU2 LWJpdCBtMzJ4OCBgQVZYYCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTMyeDhf YXZ4X2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0 dXJlKGVuYWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wczsK LS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfcHM7Ci0t ICAgICAgICAgICAgICAgIC8vIF9tbTI1Nl9tb3ZlbWFza19wcyhhKSBjcmVhdGVzIGEgOGJpdCBt YXNrIGNvbnRhaW5pbmcgdGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQg Yml0IG9mIGVhY2ggbGFuZSBvZiBgYWAuIElmIGFsbCBiaXRzIGFyZQotLSAgICAgICAgICAgICAg ICAvLyBzZXQsIHRoZW4gYWxsIDggbGFuZXMgb2YgdGhlIG1hc2sgYXJlIHRydWUuCi0tICAgICAg ICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikp ID09IDBiXzExMTFfMTExMV9pMzIKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAg ICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAg ICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUg Zm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJj aCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1 Nl9tb3ZlbWFza19wczsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2 XzY0IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZf bW92ZW1hc2tfcHM7Ci0tCi0tICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19wcyhjcmF0 ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tICAgIH07Ci0tfQotLQotLS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IG02NHg0IGBBVlhg IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tNjR4NF9hdnhfaW1wbCB7Ci0tICAg ICgkaWQ6aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZSIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX3BkOwotLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKLS0gICAgICAgICAgICAgICAg Ly8gX21tMjU2X21vdmVtYXNrX3BkKGEpIGNyZWF0ZXMgYSA0Yml0IG1hc2sgY29udGFpbmluZyB0 aGUKLS0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5l IG9mIGBhYC4gSWYgYWxsIGJpdHMgYXJlCi0tICAgICAgICAgICAgICAgIC8vIHNldCwgdGhlbiBh bGwgNCBsYW5lcyBvZiB0aGUgbWFzayBhcmUgdHJ1ZS4KLS0gICAgICAgICAgICAgICAgX21tMjU2 X21vdmVtYXNrX3BkKGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV9pMzIK LS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVu YWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wg ewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKLS0gICAg ICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfcGQ7Ci0tCi0tICAg ICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19wZChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs ZikpICE9IDAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrL3g4Ni9hdngyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngyLnJzCTIwMjUt MDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvYXZ4Mi5ycwkxOTcwLTAx LTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzUgKzAsMCBAQAotLS8vISBNYXNr IHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRz IHdpdGggYEFWWDJgLgotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8vIHg4Ni94ODZfNjQgMjU2 LWJpdCBtOHgzMiBBVlgyIGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9h dngyX2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3Ig JGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0 dXJlKGVuYWJsZSA9ICJzc2UyIildCi0tICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAt PiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0t ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW0yNTZfbW92ZW1hc2tfZXBp ODsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAg ICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfZXBp ODsKLS0gICAgICAgICAgICAgICAgLy8gX21tMjU2X21vdmVtYXNrX2VwaTgoYSkgY3JlYXRlcyBh IDMyYml0IG1hc2sgY29udGFpbmluZyB0aGUKLS0gICAgICAgICAgICAgICAgLy8gbW9zdCBzaWdu aWZpY2FudCBiaXQgb2YgZWFjaCBieXRlIG9mIGBhYC4gSWYgYWxsCi0tICAgICAgICAgICAgICAg IC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgMzIgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCi0tICAg ICAgICAgICAgICAgIC8vIHRydWUuCi0tICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19l cGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gLTFfaTMyCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAg I1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlMiIp XQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAg ICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX2VwaTg7Ci0tICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX2VwaTg7Ci0tCi0tICAgICAgICAgICAg ICAgIF9tbTI1Nl9tb3ZlbWFza19lcGk4KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgIT0g MAotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sv eDg2L3NzZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMJMTk3MC0wMS0wMSAwMzowMDow MC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM1ICswLDAgQEAKLS0vLyEgTWFzayByZWR1Y3Rpb25z IGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cyB3aXRoIGBTU0Vg LgotLSMhW2FsbG93KHVudXNlZCldCi0tCi0tLy8vIGB4ODZgL2B4ODZfNjRgIDEyOC1iaXQgYG0z Mng0YCBgU1NFYCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTMyeDRfc3NlX2lt cGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsK LS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVu YWJsZSA9ICJzc2UiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wg ewotLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wczsKLS0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcHM7Ci0tICAgICAgICAgICAg ICAgIC8vIF9tbV9tb3ZlbWFza19wcyhhKSBjcmVhdGVzIGEgNGJpdCBtYXNrIGNvbnRhaW5pbmcg dGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggbGFu ZSBvZiBgYWAuIElmIGFsbAotLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBzZXQsIHRoZW4g YWxsIDQgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCi0tICAgICAgICAgICAgICAgIC8vIHRydWUuCi0t ICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs ZikpID09IDBiXzExMTFfaTMyCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAg aW1wbCBBbnkgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAg I1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAgICAgdW5zYWZlIGZu IGFueShzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2gg PSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92 ZW1hc2tfcHM7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIp XQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNr X3BzOwotLQotLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJh bnNtdXRlKHNlbGYpKSAhPSAwCi0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Owot LX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3JlZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYvc3Nl Mi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L3NzZTIu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY4ICswLDAgQEAK LS0vLyEgTWFzayByZWR1Y3Rpb25zIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82 NGAgdGFyZ2V0cyB3aXRoIGBTU0UyYC4KLS0jIVthbGxvdyh1bnVzZWQpXQotLQotLS8vLyBgeDg2 YC9geDg2XzY0YCAxMjgtYml0IG02NHgyIGBTU0UyYCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1 bGVzISB4ODZfbTY0eDJfc3NlMl9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAg ICAgaW1wbCBBbGwgZm9yICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAg ICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCi0tICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2Fy Y2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1f bW92ZW1hc2tfcGQ7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82 NCIpXQotLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVt YXNrX3BkOwotLSAgICAgICAgICAgICAgICAvLyBfbW1fbW92ZW1hc2tfcGQoYSkgY3JlYXRlcyBh IDJiaXQgbWFzayBjb250YWluaW5nIHRoZQotLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25p ZmljYW50IGJpdCBvZiBlYWNoIGxhbmUgb2YgYGFgLiBJZiBhbGwKLS0gICAgICAgICAgICAgICAg Ly8gYml0cyBhcmUgc2V0LCB0aGVuIGFsbCAyIGxhbmVzIG9mIHRoZSBtYXNrIGFyZQotLSAgICAg ICAgICAgICAgICAvLyB0cnVlLgotLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcGQoY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwYl8xMV9pMzIKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KLS0g ICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wZDsKLS0gICAgICAgICAgICAgICAgI1tjZmcodGFy Z2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6 eDg2XzY0OjpfbW1fbW92ZW1hc2tfcGQ7Ci0tCi0tICAgICAgICAgICAgICAgIF9tbV9tb3ZlbWFz a19wZChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyBgeDg2YC9geDg2XzY0YCAxMjgtYml0IG04 eDE2IGBTU0UyYCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTh4MTZfc3NlMl9p bXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShl bmFibGUgPSAic3NlMiIpXQotLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9v bCB7Ci0tICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQotLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX21vdmVtYXNrX2VwaTg7Ci0tICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQotLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX2VwaTg7Ci0tICAgICAg ICAgICAgICAgIC8vIF9tbV9tb3ZlbWFza19lcGk4KGEpIGNyZWF0ZXMgYSAxNmJpdCBtYXNrIGNv bnRhaW5pbmcgdGhlCi0tICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9m IGVhY2ggYnl0ZSBvZiBgYWAuIElmIGFsbAotLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBz ZXQsIHRoZW4gYWxsIDE2IGxhbmVzIG9mIHRoZSBtYXNrIGFyZQotLSAgICAgICAgICAgICAgICAv LyB0cnVlLgotLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZikpID09IGkzMjo6ZnJvbSh1MTY6Om1heF92YWx1ZSgpKQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewotLSAgICAgICAg ICAgICNbaW5saW5lXQotLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNz ZTIiKV0KLS0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgewotLSAgICAg ICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KLS0gICAgICAgICAgICAgICAg dXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19lcGk4OwotLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KLS0gICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19lcGk4OwotLQotLSAgICAgICAgICAgICAg ICBfbW1fbW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKLS0g ICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotZGlmZiAtTnJidSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL3g4Ni5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICsw MzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVj dGlvbnMvbWFzay94ODYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDIxNiArMCwwIEBACi0tLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3Ig YHg4NmAgYW5kIGB4ODZfNjRgIHRhcmdldHMKLS0KLS0jW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJz c2UiKV0KLS0jW21hY3JvX3VzZV0KLS1tb2Qgc3NlOwotLQotLSNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTIiKV0KLS0jW21hY3JvX3VzZV0KLS1tb2Qgc3NlMjsKLS0KLS0jW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0KLS0jW21hY3JvX3VzZV0KLS1tb2QgYXZ4OwotLQotLSNbY2ZnKHRh cmdldF9mZWF0dXJlID0gImF2eDIiKV0KLS0jW21hY3JvX3VzZV0KLS1tb2QgYXZ4MjsKLS0KLS0v Ly8geDg2IDY0LWJpdCBtOHg4IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tOHg4 X2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja19pbXBsISgk aWQpOwotLSAgICB9OwotLX0KLS0KLS0vLy8geDg2IDEyOC1iaXQgbTh4MTYgaW1wbGVtZW50YXRp b24KLS1tYWNyb19ydWxlcyEgeDg2X204eDE2X2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9PiB7 Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVy ZSA9ICJzc2UyIildIHsKLS0gICAgICAgICAgICAgICAgeDg2X204eDE2X3NzZTJfaW1wbCEoJGlk KTsKLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBs ISgkaWQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8v IHg4NiAxMjgtYml0IG0zMng0IGltcGxlbWVudGF0aW9uCi0tbWFjcm9fcnVsZXMhIHg4Nl9tMzJ4 NF9pbXBsIHsKLS0gICAgKCRpZDppZGVudCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAg ICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlIildIHsKLS0gICAgICAgICAg ICAgICAgeDg2X20zMng0X3NzZV9pbXBsISgkaWQpOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8geDg2IDEyOC1iaXQgbTY0eDIgaW1wbGVtZW50 YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X202NHgyX2ltcGwgewotLSAgICAoJGlkOmlkZW50KSA9 PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2UyIildIHsKLS0gICAgICAgICAgICAgICAgeDg2X202NHgyX3NzZTJfaW1wbCEo JGlkKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3Nl IildIHsKLS0gICAgICAgICAgICAgICAgeDg2X20zMng0X3NzZV9pbXBsISgkaWQpOwotLSAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7Ci0t ICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS0vLy8geDg2IDI1Ni1i aXQgbTh4MzIgaW1wbGVtZW50YXRpb24KLS1tYWNyb19ydWxlcyEgeDg2X204eDMyX2ltcGwgewot LSAgICAoJGlkOmlkZW50LCAkaGFsZl9pZDppZGVudCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7 Ci0tICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7Ci0tICAg ICAgICAgICAgICAgIHg4Nl9tOHgzMl9hdngyX2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAgfSBl bHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Ci0tICAgICAgICAgICAgICAg IHg4Nl9tOHgzMl9hdnhfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmco dGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7Ci0tICAgICAgICAgICAgICAgIHJlY3Vyc2VfaGFs ZiEoJGlkLCAkaGFsZl9pZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAg ICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAg IH07Ci0tfQotLQotLS8vLyB4ODYgMjU2LWJpdCBtMzJ4OCBpbXBsZW1lbnRhdGlvbgotLW1hY3Jv X3J1bGVzISB4ODZfbTMyeDhfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50 KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0gewotLSAgICAgICAgICAgICAgICB4ODZfbTMyeDhfYXZ4X2ltcGwh KCRpZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNz ZSIpXSB7Ci0tICAgICAgICAgICAgICAgIHJlY3Vyc2VfaGFsZiEoJGlkLCAkaGFsZl9pZCk7Ci0t ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlk KTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyB4ODYg MjU2LWJpdCBtNjR4NCBpbXBsZW1lbnRhdGlvbgotLW1hY3JvX3J1bGVzISB4ODZfbTY0eDRfaW1w bCB7Ci0tICAgICgkaWQ6aWRlbnQsICRoYWxmX2lkOmlkZW50KSA9PiB7Ci0tICAgICAgICBjZmdf aWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0gewot LSAgICAgICAgICAgICAgICB4ODZfbTY0eDRfYXZ4X2ltcGwhKCRpZCk7Ci0tICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXSB7Ci0tICAgICAgICAgICAg ICAgIHJlY3Vyc2VfaGFsZiEoJGlkLCAkaGFsZl9pZCk7Ci0tICAgICAgICAgICAgfSBlbHNlIHsK LS0gICAgICAgICAgICAgICAgZmFsbGJhY2tfaW1wbCEoJGlkKTsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLS8vLyBGYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4K LS1tYWNyb19ydWxlcyEgeDg2X2ludHJfaW1wbCB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0g ICAgICAgIGltcGwgQWxsIGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAg ICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWxsOwotLSAgICAgICAgICAgICAgICBzaW1kX3Jl ZHVjZV9hbGwoc2VsZi4wKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgICAgIGlt cGwgQW55IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6c2ltZF9yZWR1Y2VfYW55OwotLSAgICAgICAgICAgICAgICBzaW1kX3JlZHVjZV9hbnko c2VsZi4wKQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0tLy8v IE1hc2sgcmVkdWN0aW9uIGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFy Z2V0cwotLW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVkdWN0aW9ucyB7Ci0tICAgIC8vIDY0LWJp dCB3aWRlIG1hc2tzCi0tICAgIChtOHg4KSA9PiB7Ci0tICAgICAgICB4ODZfbTh4OF9pbXBsISht OHg4KTsKLS0gICAgfTsKLS0gICAgKG0xNng0KSA9PiB7Ci0tICAgICAgICB4ODZfbTh4OF9pbXBs IShtMTZ4NCk7Ci0tICAgIH07Ci0tICAgIChtMzJ4MikgPT4gewotLSAgICAgICAgeDg2X204eDhf aW1wbCEobTMyeDIpOwotLSAgICB9OwotLSAgICAvLyAxMjgtYml0IHdpZGUgbWFza3MKLS0gICAg KG04eDE2KSA9PiB7Ci0tICAgICAgICB4ODZfbTh4MTZfaW1wbCEobTh4MTYpOwotLSAgICB9Owot LSAgICAobTE2eDgpID0+IHsKLS0gICAgICAgIHg4Nl9tOHgxNl9pbXBsIShtMTZ4OCk7Ci0tICAg IH07Ci0tICAgIChtMzJ4NCkgPT4gewotLSAgICAgICAgeDg2X20zMng0X2ltcGwhKG0zMng0KTsK LS0gICAgfTsKLS0gICAgKG02NHgyKSA9PiB7Ci0tICAgICAgICB4ODZfbTY0eDJfaW1wbCEobTY0 eDIpOwotLSAgICB9OwotLSAgICAobTEyOHgxKSA9PiB7Ci0tICAgICAgICB4ODZfaW50cl9pbXBs IShtMTI4eDEpOwotLSAgICB9OwotLSAgICAvLyAyNTYtYml0IHdpZGUgbWFza3M6Ci0tICAgICht OHgzMikgPT4gewotLSAgICAgICAgeDg2X204eDMyX2ltcGwhKG04eDMyLCBtOHgxNik7Ci0tICAg IH07Ci0tICAgIChtMTZ4MTYpID0+IHsKLS0gICAgICAgIHg4Nl9tOHgzMl9pbXBsIShtMTZ4MTYs IG0xNng4KTsKLS0gICAgfTsKLS0gICAgKG0zMng4KSA9PiB7Ci0tICAgICAgICB4ODZfbTMyeDhf aW1wbCEobTMyeDgsIG0zMng0KTsKLS0gICAgfTsKLS0gICAgKG02NHg0KSA9PiB7Ci0tICAgICAg ICB4ODZfbTY0eDRfaW1wbCEobTY0eDQsIG02NHgyKTsKLS0gICAgfTsKLS0gICAgKG0xMjh4Mikg PT4gewotLSAgICAgICAgeDg2X2ludHJfaW1wbCEobTEyOHgyKTsKLS0gICAgfTsKLS0gICAgKG1z aXpleDIpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKHRh cmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgICAgICAgICAgZmFsbGJhY2tf dG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTY0eDIpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAj W2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICAgICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG0zMngyKTsKLS0gICAgICAgICAgICB9IGVs c2UgewotLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0 X3BvaW50ZXJfd2lkdGgiKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0t ICAgIChtc2l6ZXg0KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAj W2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7Ci0tICAgICAgICAgICAgICAgIGZh bGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG02NHg0KTsKLS0gICAgICAgICAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0gewotLSAgICAgICAgICAg ICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtMzJ4NCk7Ci0tICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVk IHRhcmdldF9wb2ludGVyX3dpZHRoIik7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAg ICB9OwotLSAgICAobXNpemV4OCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0tICAgICAgICAg ICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0gewotLSAgICAgICAgICAg ICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtNjR4OCk7Ci0tICAgICAgICAg ICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKLS0gICAg ICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTMyeDgpOwotLSAg ICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1 cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0gICAgfTsKLS0KLS0gICAgLy8gRmFsbGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1n ZW5lcmF0aW9uOgotLSAgICAoJGlkOmlkZW50KSA9PiB7Ci0tICAgICAgICBmYWxsYmFja19pbXBs ISgkaWQpOwotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycwkyMDI1 LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDY5ICswLDAgQEAKLS0vLyEgQ29kZSBnZW5lcmF0 aW9uIHdvcmthcm91bmQgZm9yIGBhbGwoKWAgbWFzayBob3Jpem9udGFsIHJlZHVjdGlvbi4KLS0v LyEKLS0vLyEgV29ya3MgYXJvdW5kIFtMTFZNIGJ1ZyAzNjcwMl0uCi0tLy8hCi0tLy8hIFtMTFZN IGJ1ZyAzNjcwMl06IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY3MDIK LS0jIVthbGxvdyh1bnVzZWRfbWFjcm9zKV0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNy YXRlKSB0cmFpdCBBbGw6IGNyYXRlOjptYXJrZXI6OlNpemVkIHsKLS0gICAgdW5zYWZlIGZuIGFs bChzZWxmKSAtPiBib29sOwotLX0KLS0KLS1wdWIoY3JhdGUpIHRyYWl0IEFueTogY3JhdGU6Om1h cmtlcjo6U2l6ZWQgewotLSAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2w7Ci0tfQotLQot LSNbbWFjcm9fdXNlXQotLW1vZCBmYWxsYmFja19pbXBsOwotLQotLWNmZ19pZiEgewotLSAgICBp ZiAjW2NmZyhhbnkodGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0Iikp XSB7Ci0tICAgICAgICAjW21hY3JvX3VzZV0KLS0gICAgICAgIG1vZCB4ODY7Ci0tICAgIH0gZWxz ZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiYXJtIiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjci LAotLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAotLSAg ICAgICAgICAgICAgICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVf bmVvbikpKV0gewotLSAgICAgICAgI1ttYWNyb191c2VdCi0tICAgICAgICBtb2QgYXJtOwotLSAg ICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFhcmNoNjQiLCB0YXJnZXRfZmVh dHVyZSA9ICJuZW9uIikpXSB7Ci0tICAgICAgICAjW21hY3JvX3VzZV0KLS0gICAgICAgIG1vZCBh YXJjaDY0OwotLSAgICB9IGVsc2UgewotLSAgICAgICAgI1ttYWNyb191c2VdCi0tICAgICAgICBt b2QgZmFsbGJhY2s7Ci0tICAgIH0KLS19Ci0tCi0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDIp OwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg0KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEo bTh4OCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG04eDE2KTsKLS1pbXBsX21hc2tfcmVkdWN0 aW9ucyEobTh4MzIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHg2NCk7Ci0tCi0taW1wbF9t YXNrX3JlZHVjdGlvbnMhKG0xNngyKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDQpOwot LWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4OCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0x NngxNik7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xNngzMik7Ci0tCi0taW1wbF9tYXNrX3Jl ZHVjdGlvbnMhKG0zMngyKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDQpOwotLWltcGxf bWFza19yZWR1Y3Rpb25zIShtMzJ4OCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0zMngxNik7 Ci0tCi0tLy8gRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKLS0vLyBpbXBsX21h c2tfcmVkdWN0aW9ucyEobTY0eDEpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4Mik7Ci0t aW1wbF9tYXNrX3JlZHVjdGlvbnMhKG02NHg0KTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTY0 eDgpOwotLQotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTI4eDEpOwotLWltcGxfbWFza19yZWR1 Y3Rpb25zIShtMTI4eDIpOwotLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTI4eDQpOwotLQotLWlt cGxfbWFza19yZWR1Y3Rpb25zIShtc2l6ZXgyKTsKLS1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNp emV4NCk7Ci0taW1wbF9tYXNrX3JlZHVjdGlvbnMhKG1zaXpleDgpOwotZGlmZiAtTnJidSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJz CTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xICswLDAgQEAKLS1wdWIoY3JhdGUpIG1vZCBtYXNr OwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v c2h1ZmZsZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vc2h1 ZmZsZS5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9z aHVmZmxlLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUucnMJMTk3MC0wMS0w MSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDE1MCArMCwwIEBACi0tLy8hIEltcGxl bWVudGF0aW9ucyBvZiB0aGUgYFNodWZmbGVSZXN1bHRgIHRyYWl0IGZvciB0aGUgZGlmZmVyZW50 IG51bWJlcnMgb2YKLS0vLyEgbGFuZXMgYW5kIHZlY3RvciBlbGVtZW50IHR5cGVzLgotLQotLXVz ZSBjcmF0ZTo6bWFza3M6Oio7Ci0tdXNlIGNyYXRlOjpzZWFsZWQ6OntTZWFsLCBTaHVmZmxlfTsK LS0KLS1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlIHsKLS0gICAgKCRhcnJheTp0eSwgJGJhc2U6 dHksICRvdXQ6dHkpID0+IHsKLS0gICAgICAgIGltcGwgU2VhbDwkYXJyYXk+IGZvciAkYmFzZSB7 fQotLSAgICAgICAgaW1wbCBTaHVmZmxlPCRhcnJheT4gZm9yICRiYXNlIHsKLS0gICAgICAgICAg ICB0eXBlIE91dHB1dCA9ICRvdXQ7Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tfQotLQotLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyAyXSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHgyIH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4NCB9Ci0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDhdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDggfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAxNl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MTYgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAzMl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MzIgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyA2NF0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4NjQgfQotLQotLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAyXSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHgyIH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4NCB9Ci0taW1wbF9zaHVmZmxl ISB7IFt1MzI7IDhdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDggfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAxNl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MTYgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAzMl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MzIgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA2NF0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4NjQgfQotLQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHgyIH0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgNF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4NCB9Ci0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDhdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDggfQotLWltcGxfc2h1ZmZsZSEgeyBb dTMyOyAxNl0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MTYgfQotLWltcGxfc2h1ZmZsZSEgeyBb dTMyOyAzMl0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MzIgfQotLWltcGxfc2h1ZmZsZSEgeyBb dTMyOyA2NF0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4NjQgfQotLQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAyXSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDIgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA0XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDQgfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyA4XSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDggfQotLWltcGxfc2h1ZmZsZSEg eyBbdTMyOyAxNl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngxNiB9Ci0taW1wbF9zaHVmZmxl ISB7IFt1MzI7IDMyXSwgaTE2LCBjcmF0ZTo6Y29kZWdlbjo6aTE2eDMyIH0KLS0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngyIH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNng0IH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgOF0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNng4IH0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMTZdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MTYgfQotLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyAzMl0sIHUxNiwgY3JhdGU6OmNvZGVnZW46OnUxNngzMiB9Ci0tCi0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4MiB9Ci0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4NCB9Ci0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtMTYsIGNyYXRlOjpjb2RlZ2VuOjptMTZ4OCB9Ci0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2eDE2IH0K LS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMngy IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMng0 IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGkzMiwgY3JhdGU6OmNvZGVnZW46OmkzMng4 IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBpMzIsIGNyYXRlOjpjb2RlZ2VuOjppMzJ4 MTYgfQotLQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6 dTMyeDIgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6 dTMyeDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTMyLCBjcmF0ZTo6Y29kZWdlbjo6 dTMyeDggfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIHUzMiwgY3JhdGU6OmNvZGVnZW46 OnUzMngxNiB9Ci0tCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBmMzIsIGNyYXRlOjpjb2Rl Z2VuOjpmMzJ4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBmMzIsIGNyYXRlOjpjb2Rl Z2VuOjpmMzJ4NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBmMzIsIGNyYXRlOjpjb2Rl Z2VuOjpmMzJ4OCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgZjMyLCBjcmF0ZTo6Y29k ZWdlbjo6ZjMyeDE2IH0KLS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG0zMiwgY3JhdGU6 OmNvZGVnZW46Om0zMngyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIG0zMiwgY3JhdGU6 OmNvZGVnZW46Om0zMng0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIG0zMiwgY3JhdGU6 OmNvZGVnZW46Om0zMng4IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCBtMzIsIGNyYXRl Ojpjb2RlZ2VuOjptMzJ4MTYgfQotLQotLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQg dmVjdG9yCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjpp NjR4MSB9Ci0tKi8KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGk2NCwgY3JhdGU6OmNvZGVn ZW46Omk2NHgyIH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGk2NCwgY3JhdGU6OmNvZGVn ZW46Omk2NHg0IH0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGk2NCwgY3JhdGU6OmNvZGVn ZW46Omk2NHg4IH0KLS0KLS0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3Rvcgot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEgfQot LSovCi0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1NjR4 MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1NjR4 NCB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1NjQsIGNyYXRlOjpjb2RlZ2VuOjp1NjR4 OCB9Ci0tCi0tLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2ZWN0b3IKLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2NHgxIH0KLS0qLwotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDIgfQotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDQgfQotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgZjY0LCBjcmF0ZTo6Y29kZWdlbjo6ZjY0eDggfQotLQot LS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCi0taW1wbF9zaHVmZmxlISB7 IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9Ci0tKi8KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMl0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHgyIH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNF0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHg0IH0KLS1pbXBsX3NodWZm bGUhIHsgW3UzMjsgOF0sIG02NCwgY3JhdGU6OmNvZGVnZW46Om02NHg4IH0KLS0KLS1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMl0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6aXNpemV4MiB9Ci0taW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDQgfQot LWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6ZXg4 IH0KLS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHVzaXplLCBjcmF0ZTo6Y29kZWdlbjo6 dXNpemV4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1c2l6ZSwgY3JhdGU6OmNvZGVn ZW46OnVzaXpleDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdXNpemUsIGNyYXRlOjpj b2RlZ2VuOjp1c2l6ZXg4IH0KLS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG1zaXplLCBj cmF0ZTo6Y29kZWdlbjo6bXNpemV4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtc2l6 ZSwgY3JhdGU6OmNvZGVnZW46Om1zaXpleDQgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwg bXNpemUsIGNyYXRlOjpjb2RlZ2VuOjptc2l6ZXg4IH0KLS0KLS1pbXBsPFQ+IFNlYWw8W3UzMjsg Ml0+IGZvciAqY29uc3QgVCB7fQotLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyAyXT4gZm9yICpjb25z dCBUIHsKLS0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6Y3B0cngyPFQ+OwotLX0K LS1pbXBsPFQ+IFNlYWw8W3UzMjsgNF0+IGZvciAqY29uc3QgVCB7fQotLWltcGw8VD4gU2h1ZmZs ZTxbdTMyOyA0XT4gZm9yICpjb25zdCBUIHsKLS0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29k ZWdlbjo6Y3B0cng0PFQ+OwotLX0KLS1pbXBsPFQ+IFNlYWw8W3UzMjsgOF0+IGZvciAqY29uc3Qg VCB7fQotLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyA4XT4gZm9yICpjb25zdCBUIHsKLS0gICAgdHlw ZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6Y3B0cng4PFQ+OwotLX0KLS0KLS1pbXBsPFQ+IFNl YWw8W3UzMjsgMl0+IGZvciAqbXV0IFQge30KLS1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgMl0+IGZv ciAqbXV0IFQgewotLSAgICB0eXBlIE91dHB1dCA9IGNyYXRlOjpjb2RlZ2VuOjptcHRyeDI8VD47 Ci0tfQotLWltcGw8VD4gU2VhbDxbdTMyOyA0XT4gZm9yICptdXQgVCB7fQotLWltcGw8VD4gU2h1 ZmZsZTxbdTMyOyA0XT4gZm9yICptdXQgVCB7Ci0tICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNv ZGVnZW46Om1wdHJ4NDxUPjsKLS19Ci0taW1wbDxUPiBTZWFsPFt1MzI7IDhdPiBmb3IgKm11dCBU IHt9Ci0taW1wbDxUPiBTaHVmZmxlPFt1MzI7IDhdPiBmb3IgKm11dCBUIHsKLS0gICAgdHlwZSBP dXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6bXB0cng4PFQ+OwotLX0KLS0KLS1pbXBsX3NodWZmbGUh IHsgW3UzMjsgMV0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDEgfQotLWltcGxfc2h1ZmZs ZSEgeyBbdTMyOyAyXSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4MiB9Ci0taW1wbF9zaHVm ZmxlISB7IFt1MzI7IDRdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHg0IH0KLS0KLS1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMV0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4eDEgfQotLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUxMjh4MiB9Ci0t aW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHg0IH0K LS0KLS1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIG0xMjgsIGNyYXRlOjpjb2RlZ2VuOjptMTI4 eDEgfQotLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTEyOCwgY3JhdGU6OmNvZGVnZW46Om0x Mjh4MiB9Ci0taW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMTI4LCBjcmF0ZTo6Y29kZWdlbjo6 bTEyOHg0IH0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3NodWZmbGUxX2R5bi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vc2h1ZmZsZTFfZHluLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUxX2R5bi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAw MDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdl bi9zaHVmZmxlMV9keW4ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDQwOCArMCwwIEBACi0tLy8hIFNodWZmbGUgdmVjdG9yIGxhbmVzIHdpdGggcnVuLXRpbWUg aW5kaWNlcy4KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViIHRyYWl0IFNodWZmbGUxRHluIHsK LS0gICAgdHlwZSBJbmRpY2VzOwotLSAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgXzogU2VsZjo6 SW5kaWNlcykgLT4gU2VsZjsKLS19Ci0tCi0tLy8gRmFsbGJhY2sgaW1wbGVtZW50YXRpb24KLS1t YWNyb19ydWxlcyEgaW1wbF9mYWxsYmFjayB7Ci0tICAgICgkaWQ6aWRlbnQpID0+IHsKLS0gICAg ICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yICRpZCB7Ci0tICAgICAgICAgICAgdHlwZSBJbmRpY2Vz ID0gU2VsZjsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBzaHVmZmxl MV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgIGxldCBtdXQgcmVzdWx0ID0gU2VsZjo6c3BsYXQoMCk7Ci0tICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Ci0tICAgICAgICAgICAgICAgICAgICByZXN1bHQg PSByZXN1bHQucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaW5kaWNlcy5leHRyYWN0KGkpIGFzIHVz aXplKSk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgcmVzdWx0Ci0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1tYWNyb19ydWxlcyEgaW1w bF9zaHVmZmxlMV9keW4gewotLSAgICAodTh4OCkgPT4gewotLSAgICAgICAgY2ZnX2lmISB7Ci0t ICAgICAgICAgICAgaWYgI1tjZmcoYWxsKAotLSAgICAgICAgICAgICAgICBhbnkoCi0tICAgICAg ICAgICAgICAgICAgICBhbGwodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsIHRhcmdldF9mZWF0dXJl ID0gIm5lb24iKSwKLS0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9ICJkb2Vz bm90ZXhpc3QiLCB0YXJnZXRfZmVhdHVyZSA9ICJ2NyIsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIpCi0tICAgICAgICAgICAgICAgICksCi0tICAgICAg ICAgICAgICAgIGFueShmZWF0dXJlID0gImNvcmVfYXJjaCIsIGxpYmNvcmVfbmVvbikKLS0gICAg ICAgICAgICApCi0tICAgICAgICAgICAgKV0gewotLSAgICAgICAgICAgICAgICBpbXBsIFNodWZm bGUxRHluIGZvciB1OHg4IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNl bGY7Ci0tICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAg IGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iild Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjphYXJjaDY0Ojp2dGJs MV91ODsKLS0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJkb2Vz bm90ZXhpc3QiKV0KLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFy bTo6dnRibDFfdTg7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZl IGJlY2F1c2UgdGhlIGJpbmFyeSBpcyBjb21waWxlZCB3aXRoCi0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gbmVvbiBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBhbmQgY2FuIHRoZXJlZm9yZSBv bmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9uIENQVXMgdGhhdCBoYXZlIGl0 IGVuYWJsZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0ZSgKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZ0YmwxX3U4KG1lbTo6dHJhbnNtdXRlKHNlbGYuMCksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShp bmRpY2VzLjApKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApKQotLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAg fQotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGxfZmFsbGJhY2sh KHU4eDgpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHU4eDE2 KSA9PiB7Ci0tICAgICAgICBjZmdfaWYhIHsKLS0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoYW55 KHRhcmdldF9hcmNoID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82NCIpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJzc3NlMyIpKV0gewotLSAgICAgICAg ICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1OHgxNiB7Ci0tICAgICAgICAgICAgICAgICAg ICB0eXBlIEluZGljZXMgPSBTZWxmOwotLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0t ICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6 SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0 X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojp4ODY6Ol9tbV9zaHVmZmxlX2VwaTg7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9zaHVmZmxlX2VwaTg7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhlIGJpbmFyeSBpcyBjb21waWxlZCB3aXRo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3NzZTMgZW5hYmxlZCBhdCBjb21waWxlLXRp bWUgYW5kIGNhbiB0aGVyZWZvcmUgb25seQotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1 biBvbiBDUFVzIHRoYXQgaGF2ZSBpdCBlbmFibGVkLgotLSAgICAgICAgICAgICAgICAgICAgICAg IHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbWQobWVtOjp0cmFuc211 dGUoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2h1ZmZsZV9lcGk4KG1l bTo6dHJhbnNtdXRlKHNlbGYuMCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGljZXMpKQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0gZWxz ZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsIHRhcmdldF9mZWF0dXJlID0g Im5lb24iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAi Y29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpXSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1 ZmZsZTFEeW4gZm9yIHU4eDE2IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9 IFNlbGY7Ci0tICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAg ICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFhcmNoNjQ6OnZx dGJsMXFfdTg7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJl Y2F1c2UgdGhlIGJpbmFyeSBpcyBjb21waWxlZCB3aXRoCi0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gbmVvbiBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBhbmQgY2FuIHRoZXJlZm9yZSBvbmx5 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9uIENQVXMgdGhhdCBoYXZlIGl0IGVu YWJsZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0ZSgKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZxdGJsMXFfdTgobWVtOjp0cmFuc211dGUoc2VsZi4wKSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUo aW5kaWNlcy4wKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKLS0gICAgICAgICAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImRvZXNu b3RleGlzdCIsIHRhcmdldF9mZWF0dXJlID0gInY3IiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpXSB7 Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU4eDE2IHsKLS0gICAgICAg ICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAgICAgICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRp Y2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OmFyY2g6OmFybTo6dnRibDJfdTg7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1c2UgdGhlIGJpbmFyeSBpcyBjb21waWxlZCB3aXRoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmVvbiBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBh bmQgY2FuIHRoZXJlZm9yZSBvbmx5Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9u IENQVXMgdGhhdCBoYXZlIGl0IGVuYWJsZWQuCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBqOiB1OHgxNiwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHM6ICh1OHg4LCB1OHg4KSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg fQotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgKGkwLCBpMSkgPSBVIHsgajog eSB9LnM7Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByMCA9IHZ0YmwyX3U4 KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtOjp0cmFuc211dGUoeCksCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaTAp Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCByMSA9IHZ0YmwyX3U4KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWVtOjp0cmFuc211dGUoeCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cmF0ZTo6bWVtOjp0cmFuc211dGUoaTEpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7 Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gVSB7IHM6IChyMCwgcjEp IH0uajsKLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0 ZShyKSkKLS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAg ICAgICBpbXBsX2ZhbGxiYWNrISh1OHgxNik7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQot LSAgICB9OwotLSAgICAodTE2eDgpID0+IHsKLS0gICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9y IHUxNng4IHsKLS0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwotLSAgICAgICAgICAg ICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBT ZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4 eDggPSAoaW5kaWNlcyAqIDIpLmNhc3QoKTsKLS0gICAgICAgICAgICAgICAgbGV0IGluZGljZXM6 IHU4eDE2ID0gc2h1ZmZsZSEoaW5kaWNlcywgWzAsIDAsIDEsIDEsIDIsIDIsIDMsIDMsIDQsIDQs IDUsIDUsIDYsIDYsIDcsIDddKTsKLS0gICAgICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6bmV3 KDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEpOwotLSAgICAg ICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGluZGljZXMgKyB2OwotLSAgICAgICAgICAgICAgICB1 bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgbGV0IHM6IHU4eDE2ID0gY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHMuc2h1ZmZsZTFfZHluKGluZGljZXMpKQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLSAgICAodTMyeDQpID0+IHsKLS0gICAgICAg IGNmZ19pZiEgewotLSAgICAgICAgICAgIGlmICNbY2ZnKGFsbChhbnkodGFyZ2V0X2FyY2ggPSAi eDg2IiwgdGFyZ2V0X2FyY2ggPSAieDg2XzY0IiksCi0tICAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldF9mZWF0dXJlID0gImF2eCIpKV0gewotLSAgICAgICAgICAgICAgICBpbXBsIFNodWZm bGUxRHluIGZvciB1MzJ4NCB7Ci0tICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBT ZWxmOwotLSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICAg ICBmbiBzaHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0t ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6OntfbW1fcGVybXV0 ZXZhcl9wc307Ci0tICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi eDg2XzY0IildCi0tICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZf NjQ6OntfbW1fcGVybXV0ZXZhcl9wc307Ci0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgdW5z YWZlIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3Blcm11dGV2YXJfcHMoCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYuMCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1l bTo6dHJhbnNtdXRlKGluZGljZXMuMCkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotLSAgICAgICAgICAgICAgICAgICAg ICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUz Mng0IHsKLS0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7Ci0tICAgICAg ICAgICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUx X2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4NCA9IChpbmRpY2VzICogNCkuY2FzdCgpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUhKAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMiwgMiwgMiwgMiwgMywgMywgMywg M10KLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ID0gdTh4MTY6Om5ldygKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwg MiwgMywgMCwgMSwgMiwgMywgMCwgMSwgMiwgMywgMCwgMSwgMiwgMwotLSAgICAgICAgICAgICAg ICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRp Y2VzICsgdjsKLS0gICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgczogdTh4MTYgPWNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxm KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocy5z aHVmZmxlMV9keW4oaW5kaWNlcykpCi0tICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfQotLSAgICB9OwotLSAgICAodTY0eDIpID0+IHsKLS0gICAgICAgIGNmZ19pZiEgewot LSAgICAgICAgICAgIGlmICNbY2ZnKGFsbChhbnkodGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0 X2FyY2ggPSAieDg2XzY0IiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0 dXJlID0gImF2eCIpKV0gewotLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1 NjR4MiB7Ci0tICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwotLSAgICAg ICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICAgICBmbiBzaHVmZmxl MV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCi0tICAgICAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6OntfbW1fcGVybXV0ZXZhcl9wZH07Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCi0t ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6OntfbW1fcGVy bXV0ZXZhcl9wZH07Ci0tICAgICAgICAgICAgICAgICAgICAgICAgLy8gX21tX3Blcm11dGV2YXJf cGQgdXNlcyB0aGUgX3NlY29uZF8gYml0IG9mIGVhY2gKLS0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBlbGVtZW50IHRvIHBlcmZvcm0gdGhlIHNlbGVjdGlvbiwgdGhhdCBpczogMGIwMCA9PiAw LAotLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIDBiMTAgPT4gMToKLS0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgaW5kaWNlcyA9IGluZGljZXMgPDwgMTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fcGVybXV0 ZXZhcl9wZCgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVt Ojp0cmFuc211dGUoc2VsZiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGljZXMpCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICBpbXBsIFNodWZmbGUxRHlu IGZvciB1NjR4MiB7Ci0tICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOwot LSAgICAgICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICAgICBmbiBz aHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGluZGljZXM6IHU4eDIgPSAoaW5kaWNlcyAqIDgpLmNh c3QoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4MTYgPSBzaHVm ZmxlISgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlcywKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDEsIDEsIDEsIDEs IDEsIDEsIDFdCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcKLS0gICAgICAg ICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2Vz ID0gaW5kaWNlcyArIHY7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6IHU4eDE2ID1jcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHMuc2h1ZmZsZTFfZHluKGluZGljZXMpKQotLSAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg IH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS0gICAgKHUxMjh4MSkgPT4gewotLSAgICAgICAgaW1w bCBTaHVmZmxlMUR5biBmb3IgdTEyOHgxIHsKLS0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSBT ZWxmOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5 bihzZWxmLCBfaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAgICAgICAgICAg ICAgIHNlbGYKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07Ci0tICAgICgkaWQ6 aWRlbnQpID0+IHsKLS0gICAgICAgIGltcGxfZmFsbGJhY2shKCRpZCk7Ci0tICAgIH07Ci0tfQot LQotLWltcGxfc2h1ZmZsZTFfZHluISh1OHgyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTh4NCk7 Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU4eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1OHgxNik7 Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU4eDMyKTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTh4NjQp OwotLQotLWltcGxfc2h1ZmZsZTFfZHluISh1MTZ4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUx Nng0KTsKLS1pbXBsX3NodWZmbGUxX2R5biEodTE2eDgpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1 MTZ4MTYpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1MTZ4MzIpOwotLQotLWltcGxfc2h1ZmZsZTFf ZHluISh1MzJ4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHUzMng0KTsKLS1pbXBsX3NodWZmbGUx X2R5biEodTMyeDgpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1MzJ4MTYpOwotLQotLWltcGxfc2h1 ZmZsZTFfZHluISh1NjR4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHU2NHg0KTsKLS1pbXBsX3No dWZmbGUxX2R5biEodTY0eDgpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluISh1c2l6ZXgyKTsKLS1p bXBsX3NodWZmbGUxX2R5biEodXNpemV4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW4hKHVzaXpleDgp OwotLQotLWltcGxfc2h1ZmZsZTFfZHluISh1MTI4eDEpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1 MTI4eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluISh1MTI4eDQpOwotLQotLS8vIEltcGxlbWVudGF0 aW9uIGZvciBub24tdW5zaWduZWQgdmVjdG9yIHR5cGVzCi0tbWFjcm9fcnVsZXMhIGltcGxfc2h1 ZmZsZTFfZHluX25vbl91IHsKLS0gICAgKCRpZDppZGVudCwgJHVpZDppZGVudCkgPT4gewotLSAg ICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgJGlkIHsKLS0gICAgICAgICAgICB0eXBlIEluZGlj ZXMgPSAkdWlkOwotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHNodWZm bGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKLS0gICAgICAg ICAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAgICAgICAgICAgIGxldCB1OiAkdWlkID0gY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHUuc2h1ZmZsZTFfZHluKGluZGljZXMpKQotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLS0KLS1pbXBsX3NodWZm bGUxX2R5bl9ub25fdSEoaTh4MiwgdTh4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGk4 eDQsIHU4eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHg4LCB1OHg4KTsKLS1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTh4MTYsIHU4eDE2KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEoaTh4MzIsIHU4eDMyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4NjQsIHU4 eDY0KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDIsIHUxNngyKTsKLS1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDQsIHUxNng0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEoaTE2eDgsIHUxNng4KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTE2eDE2LCB1 MTZ4MTYpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4MzIsIHUxNngzMik7Ci0tCi0t aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkzMngyLCB1MzJ4Mik7Ci0taW1wbF9zaHVmZmxlMV9k eW5fbm9uX3UhKGkzMng0LCB1MzJ4NCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkzMng4 LCB1MzJ4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkzMngxNiwgdTMyeDE2KTsKLS0K LS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTY0eDIsIHU2NHgyKTsKLS1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEoaTY0eDQsIHU2NHg0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTY0 eDgsIHU2NHg4KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaXNpemV4MiwgdXNpemV4 Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGlzaXpleDQsIHVzaXpleDQpOwotLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShpc2l6ZXg4LCB1c2l6ZXg4KTsKLS0KLS1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEoaTEyOHgxLCB1MTI4eDEpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShp MTI4eDIsIHUxMjh4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxMjh4NCwgdTEyOHg0 KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTh4MiwgdTh4Mik7Ci0taW1wbF9zaHVm ZmxlMV9keW5fbm9uX3UhKG04eDQsIHU4eDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91ISht OHg4LCB1OHg4KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTh4MTYsIHU4eDE2KTsKLS1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTh4MzIsIHU4eDMyKTsKLS1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEobTh4NjQsIHU4eDY0KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTE2 eDIsIHUxNngyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTE2eDQsIHUxNng0KTsKLS1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTE2eDgsIHUxNng4KTsKLS1pbXBsX3NodWZmbGUxX2R5 bl9ub25fdSEobTE2eDE2LCB1MTZ4MTYpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4 MzIsIHUxNngzMik7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0zMngyLCB1MzJ4Mik7 Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0zMng0LCB1MzJ4NCk7Ci0taW1wbF9zaHVmZmxl MV9keW5fbm9uX3UhKG0zMng4LCB1MzJ4OCk7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0z MngxNiwgdTMyeDE2KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTY0eDIsIHU2NHgy KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTY0eDQsIHU2NHg0KTsKLS1pbXBsX3NodWZm bGUxX2R5bl9ub25fdSEobTY0eDgsIHU2NHg4KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25f dSEobXNpemV4MiwgdXNpemV4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG1zaXpleDQs IHVzaXpleDQpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtc2l6ZXg4LCB1c2l6ZXg4KTsK LS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTEyOHgxLCB1MTI4eDEpOwotLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShtMTI4eDIsIHUxMjh4Mik7Ci0taW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKG0xMjh4NCwgdTEyOHg0KTsKLS0KLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjMyeDIs IHUzMngyKTsKLS1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoZjMyeDQsIHUzMng0KTsKLS1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoZjMyeDgsIHUzMng4KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEoZjMyeDE2LCB1MzJ4MTYpOwotLQotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmNjR4 MiwgdTY0eDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmNjR4NCwgdTY0eDQpOwotLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShmNjR4OCwgdTY0eDgpOwotLQotLS8vIEltcGxlbWVudGF0 aW9uIGZvciBub24tdW5zaWduZWQgdmVjdG9yIHR5cGVzCi0tbWFjcm9fcnVsZXMhIGltcGxfc2h1 ZmZsZTFfZHluX3B0ciB7Ci0tICAgICgkaWQ6aWRlbnQsICR1aWQ6aWRlbnQpID0+IHsKLS0gICAg ICAgIGltcGw8VD4gU2h1ZmZsZTFEeW4gZm9yICRpZDxUPiB7Ci0tICAgICAgICAgICAgdHlwZSBJ bmRpY2VzID0gJHVpZDsKLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBmbiBz aHVmZmxlMV9keW4oc2VsZiwgaW5kaWNlczogU2VsZjo6SW5kaWNlcykgLT4gU2VsZiB7Ci0tICAg ICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICBsZXQgdTogJHVpZCA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgIGNyYXRl OjptZW06OnRyYW5zbXV0ZSh1LnNodWZmbGUxX2R5bihpbmRpY2VzKSkKLS0gICAgICAgICAgICAg ICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfTsKLS19Ci0tCi0taW1wbF9z aHVmZmxlMV9keW5fcHRyIShjcHRyeDIsIHVzaXpleDIpOwotLWltcGxfc2h1ZmZsZTFfZHluX3B0 ciEoY3B0cng0LCB1c2l6ZXg0KTsKLS1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKGNwdHJ4OCwgdXNp emV4OCk7Ci0tCi0taW1wbF9zaHVmZmxlMV9keW5fcHRyIShtcHRyeDIsIHVzaXpleDIpOwotLWlt cGxfc2h1ZmZsZTFfZHluX3B0ciEobXB0cng0LCB1c2l6ZXg0KTsKLS1pbXBsX3NodWZmbGUxX2R5 bl9wdHIhKG1wdHJ4OCwgdXNpemV4OCk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2FwX2J5dGVzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2FwX2J5dGVzLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0ZXMucnMJMjAyNS0wNC0yMCAxOToy ODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vc3dhcF9ieXRlcy5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsMTQ5ICswLDAgQEAKLS0vLyEgSG9yaXpvbnRhbCBzd2FwIGJ5dGVzIHJlZHVj dGlvbnMuCi0tCi0tLy8gRklYTUU6IGludmVzdGlnYXRlIHVzaW5nIGBsbHZtLmJzd2FwYAotLS8v IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMv MTkKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0tcHViKGNyYXRlKSB0cmFpdCBTd2FwQnl0ZXMgewot LSAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGY7Ci0tfQotLQotLW1hY3JvX3J1bGVzISBp bXBsX3N3YXBfYnl0ZXMgewotLSAgICAodjE2OiAkKCRpZDppZGVudCwpKykgPT4gewotLSAgICAg ICAgJCgKLS0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKLS0gICAgICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4g U2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICBzaHVmZmxlIShzZWxmLCBbMSwgMF0pCi0tICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tICAgICAgICApKwotLSAgICB9OwotLSAg ICAodjMyOiAkKCRpZDppZGVudCwpKykgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBp bXBsIFN3YXBCeXRlcyBmb3IgJGlkIHsKLS0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAg ICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCi0tICAgICAg ICAgICAgICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAg ICAgICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4NCA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgcmVzdWx0OiB1OHg0ID0gc2h1ZmZsZSEoYnl0ZXMsIFszLCAyLCAxLCAwXSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkKLS0gICAgICAg ICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAg ICAgICkrCi0tICAgIH07Ci0tICAgICh2NjQ6ICQoJGlkOmlkZW50LCkrKSA9PiB7Ci0tICAgICAg ICAkKAotLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgewotLSAgICAgICAgICAg ICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3Nf dHJhbnNtdXRlKV0KLS0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxm IHsKLS0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGJ5dGVzOiB1OHg4ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6IHU4eDggPSBzaHVmZmxlISgKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnl0ZXMsIFs3LCA2LCA1LCA0LCAzLCAyLCAxLCAwXQotLSAg ICAgICAgICAgICAgICAgICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKHJlc3VsdCkKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICkrCi0tICAgIH07Ci0tICAgICh2 MTI4OiAkKCRpZDppZGVudCwpKykgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBs IFN3YXBCeXRlcyBmb3IgJGlkIHsKLS0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAg ICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCi0tICAgICAgICAg ICAgICAgIGZuIHN3YXBfYnl0ZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4MTYgPSBj cmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHJlc3VsdDogdTh4MTYgPSBzaHVmZmxlIShieXRlcywgWwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCi0tICAgICAgICAgICAgICAgICAgICAg ICAgXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJl c3VsdCkKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgICkrCi0tICAgIH07Ci0tICAgICh2MjU2OiAkKCRpZDppZGVudCwp KykgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlk IHsKLS0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCi0tICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0 ZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4MzIgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4MzIgPSBz aHVmZmxlIShieXRlcywgWwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMSwgMzAsIDI5 LCAyOCwgMjcsIDI2LCAyNSwgMjQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLCAy MiwgMjEsIDIwLCAxOSwgMTgsIDE3LCAxNiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgIDgsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsICAwCi0tICAgICAgICAgICAgICAgICAgICAg ICAgXSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHJl c3VsdCkKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgIH0KLS0gICAgICAgICkrCi0tICAgIH07Ci0tICAgICh2NTEyOiAkKCRpZDppZGVudCwp KykgPT4gewotLSAgICAgICAgJCgKLS0gICAgICAgICAgICBpbXBsIFN3YXBCeXRlcyBmb3IgJGlk IHsKLS0gICAgICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5Ojp1c2VsZXNzX3RyYW5zbXV0ZSldCi0tICAgICAgICAgICAgICAgIGZuIHN3YXBfYnl0 ZXMoc2VsZikgLT4gU2VsZiB7Ci0tICAgICAgICAgICAgICAgICAgICB1bnNhZmUgewotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBieXRlczogdTh4NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdDogdTh4NjQgPSBz aHVmZmxlIShieXRlcywgWwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MywgNjIsIDYx LCA2MCwgNTksIDU4LCA1NywgNTYsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU1LCA1 NCwgNTMsIDUyLCA1MSwgNTAsIDQ5LCA0OCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg NDcsIDQ2LCA0NSwgNDQsIDQzLCA0MiwgNDEsIDQwLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAzOSwgMzgsIDM3LCAzNiwgMzUsIDM0LCAzMywgMzIsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDMxLCAzMCwgMjksIDI4LCAyNywgMjYsIDI1LCAyNCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgMjMsIDIyLCAyMSwgMjAsIDE5LCAxOCwgMTcsIDE2LAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCAgOCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgIDAKLS0g ICAgICAgICAgICAgICAgICAgICAgICBdKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0 ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQotLSAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgKSsKLS0gICAgfTsKLS19Ci0t Ci0taW1wbF9zd2FwX2J5dGVzISh2MTY6IHU4eDIsIGk4eDIsKTsKLS1pbXBsX3N3YXBfYnl0ZXMh KHYzMjogdTh4NCwgaTh4NCwgdTE2eDIsIGkxNngyLCk7Ci0tLy8gRklYTUU6IDY0LWJpdCBzaW5n bGUgZWxlbWVudCB2ZWN0b3IKLS1pbXBsX3N3YXBfYnl0ZXMhKHY2NDogdTh4OCwgaTh4OCwgdTE2 eDQsIGkxNng0LCB1MzJ4MiwgaTMyeDIgLyogdTY0eDEsIGk2NHgxLCAqLywpOwotLQotLWltcGxf c3dhcF9ieXRlcyEodjEyODogdTh4MTYsIGk4eDE2LCB1MTZ4OCwgaTE2eDgsIHUzMng0LCBpMzJ4 NCwgdTY0eDIsIGk2NHgyLCB1MTI4eDEsIGkxMjh4MSwpOwotLWltcGxfc3dhcF9ieXRlcyEodjI1 NjogdTh4MzIsIGk4eDMyLCB1MTZ4MTYsIGkxNngxNiwgdTMyeDgsIGkzMng4LCB1NjR4NCwgaTY0 eDQsIHUxMjh4MiwgaTEyOHgyLCk7Ci0tCi0taW1wbF9zd2FwX2J5dGVzISh2NTEyOiB1OHg2NCwg aTh4NjQsIHUxNngzMiwgaTE2eDMyLCB1MzJ4MTYsIGkzMngxNiwgdTY0eDgsIGk2NHg4LCB1MTI4 eDQsIGkxMjh4NCwpOwotLQotLWNmZ19pZiEgewotLSAgICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRl cl93aWR0aCA9ICI4IildIHsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjE2OiBpc2l6ZXgy LCB1c2l6ZXgyLCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYzMjogaXNpemV4NCwgdXNp emV4NCwpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2NjQ6IGlzaXpleDgsIHVzaXpleDgs KTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjE2IildIHsK LS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjMyOiBpc2l6ZXgyLCB1c2l6ZXgyLCk7Ci0tICAg ICAgICBpbXBsX3N3YXBfYnl0ZXMhKHY2NDogaXNpemV4NCwgdXNpemV4NCwpOwotLSAgICAgICAg aW1wbF9zd2FwX2J5dGVzISh2MTI4OiBpc2l6ZXg4LCB1c2l6ZXg4LCk7Ci0tICAgIH0gZWxzZSBp ZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Ci0tICAgICAgICBpbXBsX3N3 YXBfYnl0ZXMhKHY2NDogaXNpemV4MiwgdXNpemV4MiwpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5 dGVzISh2MTI4OiBpc2l6ZXg0LCB1c2l6ZXg0LCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMh KHYyNTY6IGlzaXpleDgsIHVzaXpleDgsKTsKLS0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9w b2ludGVyX3dpZHRoID0gIjY0IildIHsKLS0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjEyODog aXNpemV4MiwgdXNpemV4MiwpOwotLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MjU2OiBpc2l6 ZXg0LCB1c2l6ZXg0LCk7Ci0tICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHY1MTI6IGlzaXpleDgs IHVzaXpleDgsKTsKLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1 cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOwotLSAgICB9Ci0tfQotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEyOC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEyOC5ycwotLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCTIwMjUtMDQtMjAgMTk6 Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3YxMjgucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAK LUBAIC0xLDQ2ICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgMTI4LWJpdCB3aWRlIHZlY3RvciB0eXBl cwotLQotLXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxf c2ltZF9hcnJheSEoCi0tICAgIFtpODsgMTZdOiBpOHgxNiB8Ci0tICAgIGk4LCBpOCwgaTgsIGk4 LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBp OCwgaTgsIGk4Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0g ICAgW3U4OyAxNl06IHU4eDE2IHwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwg dTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgKLS0pOwot LSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbbTg7IDE2XTogbTh4 MTYgfAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4 LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOAotLSk7Ci0tCi0taW1wbF9zaW1kX2Fy cmF5IShbaTE2OyA4XTogaTE2eDggfCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYs IGkxNik7Ci0taW1wbF9zaW1kX2FycmF5IShbdTE2OyA4XTogdTE2eDggfCB1MTYsIHUxNiwgdTE2 LCB1MTYsIHUxNiwgdTE2LCB1MTYsIHUxNik7Ci0taW1wbF9zaW1kX2FycmF5IShbbTE2OyA4XTog bTE2eDggfCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNik7Ci0tCi0taW1w bF9zaW1kX2FycmF5IShbaTMyOyA0XTogaTMyeDQgfCBpMzIsIGkzMiwgaTMyLCBpMzIpOwotLWlt cGxfc2ltZF9hcnJheSEoW3UzMjsgNF06IHUzMng0IHwgdTMyLCB1MzIsIHUzMiwgdTMyKTsKLS1p bXBsX3NpbWRfYXJyYXkhKFtmMzI7IDRdOiBmMzJ4NCB8IGYzMiwgZjMyLCBmMzIsIGYzMik7Ci0t aW1wbF9zaW1kX2FycmF5IShbbTMyOyA0XTogbTMyeDQgfCBpMzIsIGkzMiwgaTMyLCBpMzIpOwot LQotLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgMl06IGk2NHgyIHwgaTY0LCBpNjQpOwotLWltcGxf c2ltZF9hcnJheSEoW3U2NDsgMl06IHU2NHgyIHwgdTY0LCB1NjQpOwotLWltcGxfc2ltZF9hcnJh eSEoW2Y2NDsgMl06IGY2NHgyIHwgZjY0LCBmNjQpOwotLWltcGxfc2ltZF9hcnJheSEoW202NDsg Ml06IG02NHgyIHwgaTY0LCBpNjQpOwotLQotLWltcGxfc2ltZF9hcnJheSEoW2kxMjg7IDFdOiBp MTI4eDEgfCBpMTI4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1MTI4OyAxXTogdTEyOHgxIHwgdTEy OCk7Ci0taW1wbF9zaW1kX2FycmF5IShbbTEyODsgMV06IG0xMjh4MSB8IGkxMjgpOwotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjE2LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTYucnMKLS0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjE2LnJzCTIwMjUtMDQtMjAg MTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3YxNi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMw MAotQEAgLTEsNyArMCwwIEBACi0tLy8hIEludGVybmFsIDE2LWJpdCB3aWRlIHZlY3RvciB0eXBl cwotLQotLXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTg7IDJd OiBpOHgyIHwgaTgsIGk4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1ODsgMl06IHU4eDIgfCB1OCwg dTgpOwotLWltcGxfc2ltZF9hcnJheSEoW204OyAyXTogbTh4MiB8IGk4LCBpOCk7Ci1kaWZmIC1O cmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YyNTYucnMJMjAyNS0wNC0y MCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2NvZGVnZW4vdjI1Ni5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCAr MDMwMAotQEAgLTEsNzggKzAsMCBAQAotLS8vISBJbnRlcm5hbCAyNTYtYml0IHdpZGUgdmVjdG9y IHR5cGVzCi0tCi0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS0jW3J1c3RmbXQ6OnNraXBdCi0t aW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW2k4OyAzMl06IGk4eDMyIHwKLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAg aTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBp OCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4Ci0tKTsKLS0jW3J1 c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW3U4OyAzMl06IHU4eDMyIHwK LS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgs IHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAg ICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgs IHU4Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW204 OyAzMl06IG04eDMyIHwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4 LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBp OCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2Fy cmF5ISgKLS0gICAgW2kxNjsgMTZdOiBpMTZ4MTYgfAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYs Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAg ICBpMTYsIGkxNiwgaTE2LCBpMTYKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBsX3NpbWRf YXJyYXkhKAotLSAgICBbdTE2OyAxNl06IHUxNngxNiB8Ci0tICAgIHUxNiwgdTE2LCB1MTYsIHUx NiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0t ICAgIHUxNiwgdTE2LCB1MTYsIHUxNgotLSk7Ci0tI1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2lt ZF9hcnJheSEoCi0tICAgIFttMTY7IDE2XTogbTE2eDE2IHwKLS0gICAgaTE2LCBpMTYsIGkxNiwg aTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwK LS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2Ci0tKTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMzI7 IDhdOiBpMzJ4OCB8IGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyKTsKLS1p bXBsX3NpbWRfYXJyYXkhKFt1MzI7IDhdOiB1MzJ4OCB8IHUzMiwgdTMyLCB1MzIsIHUzMiwgdTMy LCB1MzIsIHUzMiwgdTMyKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtmMzI7IDhdOiBmMzJ4OCB8IGYz MiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyKTsKLS1pbXBsX3NpbWRfYXJyYXkh KFttMzI7IDhdOiBtMzJ4OCB8IGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMy KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDRdOiBpNjR4NCB8IGk2NCwgaTY0LCBpNjQs IGk2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTY0OyA0XTogdTY0eDQgfCB1NjQsIHU2NCwgdTY0 LCB1NjQpOwotLWltcGxfc2ltZF9hcnJheSEoW2Y2NDsgNF06IGY2NHg0IHwgZjY0LCBmNjQsIGY2 NCwgZjY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttNjQ7IDRdOiBtNjR4NCB8IGk2NCwgaTY0LCBp NjQsIGk2NCk7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTEyODsgMl06IGkxMjh4MiB8IGkxMjgs IGkxMjgpOwotLWltcGxfc2ltZF9hcnJheSEoW3UxMjg7IDJdOiB1MTI4eDIgfCB1MTI4LCB1MTI4 KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttMTI4OyAyXTogbTEyOHgyIHwgaTEyOCwgaTEyOCk7Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MzIu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycwotLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MzIucnMJMjAyNS0w NC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2NvZGVnZW4vdjMyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAw ICswMzAwCi1AQCAtMSwxMSArMCwwIEBACi0tLy8hIEludGVybmFsIDMyLWJpdCB3aWRlIHZlY3Rv ciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShb aTg7IDRdOiBpOHg0IHwgaTgsIGk4LCBpOCwgaTgpOwotLWltcGxfc2ltZF9hcnJheSEoW3U4OyA0 XTogdTh4NCB8IHU4LCB1OCwgdTgsIHU4KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFttODsgNF06IG04 eDQgfCBpOCwgaTgsIGk4LCBpOCk7Ci0tCi0taW1wbF9zaW1kX2FycmF5IShbaTE2OyAyXTogaTE2 eDIgfCBpMTYsIGkxNik7Ci0taW1wbF9zaW1kX2FycmF5IShbdTE2OyAyXTogdTE2eDIgfCB1MTYs IHUxNik7Ci0taW1wbF9zaW1kX2FycmF5IShbbTE2OyAyXTogbTE2eDIgfCBpMTYsIGkxNik7Ci1k aWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NTEy LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NTEyLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y1MTIucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAw MDAwMCArMDMwMAotQEAgLTEsMTQ1ICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgNTEyLWJpdCB3aWRl IHZlY3RvciB0eXBlcwotLQotLXVzZSBjcmF0ZTo6bWFza3M6Oio7Ci0tCi0tI1tydXN0Zm10Ojpz a2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFtpODsgNjRdOiBpOHg2NCB8Ci0tICAgIGk4 LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgs Ci0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4 LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0K LS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgs IGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAg ICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgs IGk4Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW3U4 OyA2NF06IHU4eDY0IHwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4 LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1 OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgsCi0t ICAgIHU4LCB1OCwgdTgsIHU4LAotLQotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0gICAgdTgsIHU4 LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4LCB1OCwKLS0g ICAgdTgsIHU4LCB1OCwgdTgsCi0tICAgIHU4LCB1OCwgdTgsIHU4LAotLSAgICB1OCwgdTgsIHU4 LCB1OCwKLS0gICAgdTgsIHU4LCB1OCwgdTgKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0KLS1pbXBs X3NpbWRfYXJyYXkhKAotLSAgICBbbTg7IDY0XTogbTh4NjQgfAotLSAgICBpOCwgaTgsIGk4LCBp OCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwg aTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAot LSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0tCi0tICAgIGk4LCBp OCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBpOCwgaTgsCi0t ICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOCwKLS0gICAgaTgsIGk4LCBp OCwgaTgsCi0tICAgIGk4LCBpOCwgaTgsIGk4LAotLSAgICBpOCwgaTgsIGk4LCBpOAotLSk7Ci0t I1tydXN0Zm10Ojpza2lwXQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFtpMTY7IDMyXTogaTE2 eDMyIHwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYs Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAg ICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2 LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKLS0pOwotLSNbcnVzdGZt dDo6c2tpcF0KLS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbdTE2OyAzMl06IHUxNngzMiB8Ci0t ICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAotLSAgICB1 MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKLS0gICAgdTE2LCB1 MTYsIHUxNiwgdTE2LAotLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCi0tICAgIHUxNiwgdTE2LCB1 MTYsIHUxNiwKLS0gICAgdTE2LCB1MTYsIHUxNiwgdTE2Ci0tKTsKLS0jW3J1c3RmbXQ6OnNraXBd Ci0taW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW20xNjsgMzJdOiBtMTZ4MzIgfAotLSAgICBpMTYs IGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKLS0gICAgaTE2LCBpMTYs IGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCi0tICAgIGkxNiwgaTE2LCBpMTYs IGkxNiwKLS0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAotLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYs Ci0tICAgIGkxNiwgaTE2LCBpMTYsIGkxNgotLSk7Ci0tCi0tI1tydXN0Zm10Ojpza2lwXQotLWlt cGxfc2ltZF9hcnJheSEoCi0tICAgIFtpMzI7IDE2XTogaTMyeDE2IHwKLS0gICAgaTMyLCBpMzIs IGkzMiwgaTMyLAotLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCi0tICAgIGkzMiwgaTMyLCBpMzIs IGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMyCi0tKTsKLS0jW3J1c3RmbXQ6OnNraXBdCi0t aW1wbF9zaW1kX2FycmF5ISgKLS0gICAgW3UzMjsgMTZdOiB1MzJ4MTYgfAotLSAgICB1MzIsIHUz MiwgdTMyLCB1MzIsCi0tICAgIHUzMiwgdTMyLCB1MzIsIHUzMiwKLS0gICAgdTMyLCB1MzIsIHUz MiwgdTMyLAotLSAgICB1MzIsIHUzMiwgdTMyLCB1MzIKLS0pOwotLSNbcnVzdGZtdDo6c2tpcF0K LS1pbXBsX3NpbWRfYXJyYXkhKAotLSAgICBbZjMyOyAxNl06IGYzMngxNiB8Ci0tICAgIGYzMiwg ZjMyLCBmMzIsIGYzMiwKLS0gICAgZjMyLCBmMzIsIGYzMiwgZjMyLAotLSAgICBmMzIsIGYzMiwg ZjMyLCBmMzIsCi0tICAgIGYzMiwgZjMyLCBmMzIsIGYzMgotLSk7Ci0tI1tydXN0Zm10Ojpza2lw XQotLWltcGxfc2ltZF9hcnJheSEoCi0tICAgIFttMzI7IDE2XTogbTMyeDE2IHwKLS0gICAgaTMy LCBpMzIsIGkzMiwgaTMyLAotLSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCi0tICAgIGkzMiwgaTMy LCBpMzIsIGkzMiwKLS0gICAgaTMyLCBpMzIsIGkzMiwgaTMyCi0tKTsKLS0KLS1pbXBsX3NpbWRf YXJyYXkhKFtpNjQ7IDhdOiBpNjR4OCB8IGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2 NCwgaTY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDhdOiB1NjR4OCB8IHU2NCwgdTY0LCB1 NjQsIHU2NCwgdTY0LCB1NjQsIHU2NCwgdTY0KTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtmNjQ7IDhd OiBmNjR4OCB8IGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0KTsKLS1pbXBs X3NpbWRfYXJyYXkhKFttNjQ7IDhdOiBtNjR4OCB8IGk2NCwgaTY0LCBpNjQsIGk2NCwgaTY0LCBp NjQsIGk2NCwgaTY0KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMTI4OyA0XTogaTEyOHg0IHwg aTEyOCwgaTEyOCwgaTEyOCwgaTEyOCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTEyODsgNF06IHUx Mjh4NCB8IHUxMjgsIHUxMjgsIHUxMjgsIHUxMjgpOwotLWltcGxfc2ltZF9hcnJheSEoW20xMjg7 IDRdOiBtMTI4eDQgfCBpMTI4LCBpMTI4LCBpMTI4LCBpMTI4KTsKLWRpZmYgLU5yYnUgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjY0LnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi92NjQucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDIx ICswLDAgQEAKLS0vLyEgSW50ZXJuYWwgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tCi0tdXNl IGNyYXRlOjptYXNrczo6KjsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpODsgOF06IGk4eDggfCBp OCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgpOwotLWltcGxfc2ltZF9hcnJheSEoW3U4OyA4 XTogdTh4OCB8IHU4LCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4LCB1OCk7Ci0taW1wbF9zaW1kX2Fy cmF5IShbbTg7IDhdOiBtOHg4IHwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4KTsKLS0K LS1pbXBsX3NpbWRfYXJyYXkhKFtpMTY7IDRdOiBpMTZ4NCB8IGkxNiwgaTE2LCBpMTYsIGkxNik7 Ci0taW1wbF9zaW1kX2FycmF5IShbdTE2OyA0XTogdTE2eDQgfCB1MTYsIHUxNiwgdTE2LCB1MTYp OwotLWltcGxfc2ltZF9hcnJheSEoW20xNjsgNF06IG0xNng0IHwgaTE2LCBpMTYsIGkxNiwgaTE2 KTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpMzI7IDJdOiBpMzJ4MiB8IGkzMiwgaTMyKTsKLS1p bXBsX3NpbWRfYXJyYXkhKFt1MzI7IDJdOiB1MzJ4MiB8IHUzMiwgdTMyKTsKLS1pbXBsX3NpbWRf YXJyYXkhKFtmMzI7IDJdOiBmMzJ4MiB8IGYzMiwgZjMyKTsKLS1pbXBsX3NpbWRfYXJyYXkhKFtt MzI7IDJdOiBtMzJ4MiB8IGkzMiwgaTMyKTsKLS0KLS1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDFd OiBpNjR4MSB8IGk2NCk7Ci0taW1wbF9zaW1kX2FycmF5IShbdTY0OyAxXTogdTY0eDEgfCB1NjQp OwotLWltcGxfc2ltZF9hcnJheSEoW2Y2NDsgMV06IGY2NHgxIHwgZjY0KTsKLS1pbXBsX3NpbWRf YXJyYXkhKFttNjQ7IDFdOiBtNjR4MSB8IGk2NCk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92UHRyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi92UHRyLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZQdHIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v dlB0ci5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMzUgKzAs MCBAQAotLS8vISBQb2ludGVyIHZlY3RvciB0eXBlcwotLQotLW1hY3JvX3J1bGVzISBpbXBsX3Np bWRfcHRyIHsKLS0gICAgKFskcHRyX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJHR1cGxlX2lk OmlkZW50IHwgJHR5OmlkZW50Ci0tICAgICB8ICQoJHR5czp0eSksKikgPT4gewotLSAgICAgICAg I1tkZXJpdmUoQ29weSwgQ2xvbmUpXQotLSAgICAgICAgI1tyZXByKHNpbWQpXQotLSAgICAgICAg cHViIHN0cnVjdCAkdHVwbGVfaWQ8JHR5PigkKHB1YihjcmF0ZSkgJHR5cyksKik7Ci0tICAgICAg ICAvL15eXl5eXl4gbGVha2VkIHRocm91Z2ggU2ltZEFycmF5Ci0tCi0tICAgICAgICBpbXBsPCR0 eT4gY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3IgWyRwdHJfdHk7ICRlbGVtX2NvdW50XSB7fQotLSAg ICAgICAgaW1wbDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNpbWRBcnJheSBmb3IgWyRwdHJfdHk7ICRl bGVtX2NvdW50XSB7Ci0tICAgICAgICAgICAgdHlwZSBUdXBsZSA9ICR0dXBsZV9pZDwkcHRyX3R5 PjsKLS0gICAgICAgICAgICB0eXBlIFQgPSAkcHRyX3R5OwotLSAgICAgICAgICAgIGNvbnN0IE46 IHVzaXplID0gJGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBOVCA9IFt1MzI7ICRlbGVt X2NvdW50XTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVk OjpTZWFsIGZvciAkdHVwbGVfaWQ8JHB0cl90eT4ge30KLS0gICAgICAgIGltcGw8JHR5PiBjcmF0 ZTo6c2VhbGVkOjpTaW1kIGZvciAkdHVwbGVfaWQ8JHB0cl90eT4gewotLSAgICAgICAgICAgIHR5 cGUgRWxlbWVudCA9ICRwdHJfdHk7Ci0tICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0g JGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9j b3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgIH0KLS19Ci0tCi0taW1wbF9zaW1kX3B0ciEoWypj b25zdCBUOyAyXTogY3B0cngyIHwgVCB8IFQsIFQpOwotLWltcGxfc2ltZF9wdHIhKFsqY29uc3Qg VDsgNF06IGNwdHJ4NCB8IFQgfCBULCBULCBULCBUKTsKLS1pbXBsX3NpbWRfcHRyIShbKmNvbnN0 IFQ7IDhdOiBjcHRyeDggfCBUIHwgVCwgVCwgVCwgVCwgVCwgVCwgVCwgVCk7Ci0tCi0taW1wbF9z aW1kX3B0ciEoWyptdXQgVDsgMl06IG1wdHJ4MiB8IFQgfCBULCBUKTsKLS1pbXBsX3NpbWRfcHRy IShbKm11dCBUOyA0XTogbXB0cng0IHwgVCB8IFQsIFQsIFQsIFQpOwotLWltcGxfc2ltZF9wdHIh KFsqbXV0IFQ7IDhdOiBtcHRyeDggfCBUIHwgVCwgVCwgVCwgVCwgVCwgVCwgVCwgVCk7Ci1kaWZm IC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92U2l6ZS5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlNpemUucnMKLS0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlNpemUucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdlNpemUucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAw MDAwMDAgKzAzMDAKLUBAIC0xLDE2ICswLDAgQEAKLS0vLyEgVmVjdG9yIHR5cGVzIHdpdGggcG9p bnRlci1zaXplZCBlbGVtZW50cwotLQotLXVzZSBjcmF0ZTo6Y29kZWdlbjo6cG9pbnRlcl9zaXpl ZF9pbnQ6Ontpc2l6ZV8sIHVzaXplX307Ci0tdXNlIGNyYXRlOjptYXNrczo6KjsKLS0KLS1pbXBs X3NpbWRfYXJyYXkhKFtpc2l6ZTsgMl06IGlzaXpleDIgfCBpc2l6ZV8sIGlzaXplXyk7Ci0taW1w bF9zaW1kX2FycmF5IShbdXNpemU7IDJdOiB1c2l6ZXgyIHwgdXNpemVfLCB1c2l6ZV8pOwotLWlt cGxfc2ltZF9hcnJheSEoW21zaXplOyAyXTogbXNpemV4MiB8IGlzaXplXywgaXNpemVfKTsKLS0K LS1pbXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsgNF06IGlzaXpleDQgfCBpc2l6ZV8sIGlzaXplXywg aXNpemVfLCBpc2l6ZV8pOwotLWltcGxfc2ltZF9hcnJheSEoW3VzaXplOyA0XTogdXNpemV4NCB8 IHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXyk7Ci0taW1wbF9zaW1kX2FycmF5IShbbXNp emU7IDRdOiBtc2l6ZXg0IHwgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKLS0KLS1p bXBsX3NpbWRfYXJyYXkhKFtpc2l6ZTsgOF06IGlzaXpleDggfCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXyk7Ci0taW1wbF9zaW1k X2FycmF5IShbdXNpemU7IDhdOiB1c2l6ZXg4IHwgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNp emVfLCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8pOwotLWltcGxfc2ltZF9hcnJheSEo W21zaXplOyA4XTogbXNpemV4OCB8IGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNp emVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi5ycwkxOTcwLTAxLTAxIDAz OjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjIgKzAsMCBAQAotLS8vISBDb2RlLWdlbmVy YXRpb24gdXRpbGl0aWVzCi0tCi0tcHViKGNyYXRlKSBtb2QgYml0X21hbmlwOwotLXB1YihjcmF0 ZSkgbW9kIGxsdm07Ci0tcHViKGNyYXRlKSBtb2QgbWF0aDsKLS1wdWIoY3JhdGUpIG1vZCByZWR1 Y3Rpb25zOwotLXB1YihjcmF0ZSkgbW9kIHNodWZmbGU7Ci0tcHViKGNyYXRlKSBtb2Qgc2h1ZmZs ZTFfZHluOwotLXB1YihjcmF0ZSkgbW9kIHN3YXBfYnl0ZXM7Ci0tCi0tbWFjcm9fcnVsZXMhIGlt cGxfc2ltZF9hcnJheSB7Ci0tICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OgotLSAgICAgJHR1cGxlX2lkOmlkZW50IHwgJCgkZWxlbV90eXM6aWRlbnQpLCopID0+IHsKLS0g ICAgICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KLS0gICAgICAgICNbcmVwcihzaW1kKV0KLS0g ICAgICAgIHB1YiBzdHJ1Y3QgJHR1cGxlX2lkKCQocHViKGNyYXRlKSAkZWxlbV90eXMpLCopOwot LSAgICAgICAgLy9eXl5eXl5eIGxlYWtlZCB0aHJvdWdoIFNpbWRBcnJheQotLQotLSAgICAgICAg aW1wbCBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSB7fQot LQotLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpTaW1kQXJyYXkgZm9yIFskZWxlbV90eTsg JGVsZW1fY291bnRdIHsKLS0gICAgICAgICAgICB0eXBlIFR1cGxlID0gJHR1cGxlX2lkOwotLSAg ICAgICAgICAgIHR5cGUgVCA9ICRlbGVtX3R5OwotLSAgICAgICAgICAgIGNvbnN0IE46IHVzaXpl ID0gJGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBOVCA9IFt1MzI7ICRlbGVtX2NvdW50 XTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OnNlYWxlZDo6U2VhbCBmb3Ig JHR1cGxlX2lkIHt9Ci0tICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNpbWQgZm9yICR0dXBs ZV9pZCB7Ci0tICAgICAgICAgICAgdHlwZSBFbGVtZW50ID0gJGVsZW1fdHk7Ci0tICAgICAgICAg ICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1fY291bnQ7Ci0tICAgICAgICAgICAgdHlwZSBM YW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07Ci0tICAgICAgICB9Ci0tCi0tICAgIH0KLS19 Ci0tCi0tcHViKGNyYXRlKSBtb2QgcG9pbnRlcl9zaXplZF9pbnQ7Ci0tCi0tcHViKGNyYXRlKSBt b2QgdjE2OwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYxNjo6KjsKLS0KLS1wdWIoY3JhdGUpIG1v ZCB2MzI7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6djMyOjoqOwotLQotLXB1YihjcmF0ZSkgbW9k IHY2NDsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2NjQ6Oio7Ci0tCi0tcHViKGNyYXRlKSBtb2Qg djEyODsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MTI4OjoqOwotLQotLXB1YihjcmF0ZSkgbW9k IHYyNTY7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6djI1Njo6KjsKLS0KLS1wdWIoY3JhdGUpIG1v ZCB2NTEyOwotLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnY1MTI6Oio7Ci0tCi0tcHViKGNyYXRlKSBt b2QgdlNpemU7Ci0tcHViKGNyYXRlKSB1c2Ugc2VsZjo6dlNpemU6Oio7Ci0tCi0tcHViKGNyYXRl KSBtb2QgdlB0cjsKLS1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2UHRyOjoqOwotZGlmZiAtTnJidSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2xpYi5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvbGliLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAwMDAwICswMzAwCi0rKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9saWIucnMJMTk3MC0wMS0wMSAwMzow MDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDM0OCArMCwwIEBACi0tLy8hICMgUG9ydGFibGUg cGFja2VkIFNJTUQgdmVjdG9ycwotLS8vIQotLS8vISBUaGlzIGNyYXRlIGlzIHByb3Bvc2VkIGZv ciBzdGFiaWxpemF0aW9uIGFzIGBzdGQ6OnBhY2tlZF9zaW1kYCBpbiBbUkZDMjM2NjoKLS0vLyEg YHN0ZDo6c2ltZGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZjcy9wdWxsLzIzNjYp IC4KLS0vLyEKLS0vLyEgVGhlIGV4YW1wbGVzIGF2YWlsYWJsZSBpbiB0aGUKLS0vLyEgW2BleGFt cGxlcy9gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv dHJlZS9tYXN0ZXIvZXhhbXBsZXMpCi0tLy8hIHN1Yi1kaXJlY3Rvcnkgb2YgdGhlIGNyYXRlIHNo b3djYXNlIGhvdyB0byB1c2UgdGhlIGxpYnJhcnkgaW4gcHJhY3RpY2UuCi0tLy8hCi0tLy8hICMj IFRhYmxlIG9mIGNvbnRlbnRzCi0tLy8hCi0tLy8hIC0gW0ludHJvZHVjdGlvbl0oI2ludHJvZHVj dGlvbikKLS0vLyEgLSBbVmVjdG9yIHR5cGVzXSgjdmVjdG9yLXR5cGVzKQotLS8vISAtIFtDb25k aXRpb25hbCBvcGVyYXRpb25zXSgjY29uZGl0aW9uYWwtb3BlcmF0aW9ucykKLS0vLyEgLSBbQ29u dmVyc2lvbnNdKCNjb252ZXJzaW9ucykKLS0vLyEgLSBbSGFyZHdhcmUgRmVhdHVyZXNdKCNoYXJk d2FyZS1mZWF0dXJlcykKLS0vLyEgLSBbUGVyZm9ybWFuY2UgZ3VpZGVdKGh0dHBzOi8vcnVzdC1s YW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvKQotLS8vIQotLS8v ISAjIyBJbnRyb2R1Y3Rpb24KLS0vLyEKLS0vLyEgVGhpcyBjcmF0ZSBleHBvcnRzIFtgU2ltZDxb VDsgTl0+YF1bYFNpbWRgXTogYSBwYWNrZWQgdmVjdG9yIG9mIGBOYAotLS8vISBlbGVtZW50cyBv ZiB0eXBlIGBUYCBhcyB3ZWxsIGFzIG1hbnkgdHlwZSBhbGlhc2VzIGZvciB0aGlzIHR5cGU6IGZv cgotLS8vISBleGFtcGxlLCBbYGYzMng0YF0sIHdoaWNoIGlzIGp1c3QgYW4gYWxpYXMgZm9yIGBT aW1kPFtmMzI7IDRdPmAuCi0tLy8hCi0tLy8hIFRoZSBvcGVyYXRpb25zIG9uIHBhY2tlZCB2ZWN0 b3JzIGFyZSwgYnkgZGVmYXVsdCwgInZlcnRpY2FsIiwgdGhhdCBpcywgdGhleQotLS8vISBhcmUg YXBwbGllZCB0byBlYWNoIHZlY3RvciBsYW5lIGluIGlzb2xhdGlvbiBvZiB0aGUgb3RoZXJzOgot LS8vIQotLS8vISBgYGAKLS0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8hIGxldCBhID0g aTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKLS0vLyEgbGV0IGIgPSBpMzJ4NDo6bmV3KDUsIDYsIDcs IDgpOwotLS8vISBhc3NlcnRfZXEhKGEgKyBiLCBpMzJ4NDo6bmV3KDYsIDgsIDEwLCAxMikpOwot LS8vISBgYGAKLS0vLyEKLS0vLyEgTWFueSAiaG9yaXpvbnRhbCIgb3BlcmF0aW9ucyBhcmUgYWxz byBwcm92aWRlZDoKLS0vLyEKLS0vLyEgYGBgCi0tLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOwot LS8vISAjIGxldCBhID0gaTMyeDQ6Om5ldygxLCAyLCAzLCA0KTsKLS0vLyEgYXNzZXJ0X2VxIShh LndyYXBwaW5nX3N1bSgpLCAxMCk7Ci0tLy8hIGBgYAotLS8vIQotLS8vISBJbiB2aXJ0dWFsbHkg YWxsIGFyY2hpdGVjdHVyZXMgdmVydGljYWwgb3BlcmF0aW9ucyBhcmUgZmFzdCwgd2hpbGUKLS0v LyEgaG9yaXpvbnRhbCBvcGVyYXRpb25zIGFyZSwgYnkgY29tcGFyaXNvbiwgbXVjaCBzbG93ZXIu IFRoYXQgaXMsIHRoZQotLS8vISBtb3N0IHBvcnRhYmx5LWVmZmljaWVudCB3YXkgb2YgcGVyZm9y bWluZyBhIHJlZHVjdGlvbiBvdmVyIGEgc2xpY2UKLS0vLyEgaXMgdG8gY29sbGVjdCB0aGUgcmVz dWx0cyBpbnRvIGEgdmVjdG9yIHVzaW5nIHZlcnRpY2FsIG9wZXJhdGlvbnMsCi0tLy8hIGFuZCBw ZXJmb3JtaW5nIGEgc2luZ2xlIGhvcml6b250YWwgb3BlcmF0aW9uIGF0IHRoZSBlbmQ6Ci0tLy8h Ci0tLy8hIGBgYAotLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKLS0vLyEgZm4gcmVkdWNlKHg6 ICZbaTMyXSkgLT4gaTMyIHsKLS0vLyEgICAgIGFzc2VydF9lcSEoeC5sZW4oKSAlIDQsIDApOwot LS8vISAgICAgbGV0IG11dCBzdW0gPSBpMzJ4NDo6c3BsYXQoMCk7IC8vIFswLCAwLCAwLCAwXQot LS8vISAgICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0ZXBfYnkoNCkgewotLS8vISAgICAgICAg IHN1bSArPSBpMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJnhbaS4uXSk7Ci0tLy8hICAgICB9 Ci0tLy8hICAgICBzdW0ud3JhcHBpbmdfc3VtKCkKLS0vLyEgfQotLS8vIQotLS8vISBsZXQgeCA9 IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3XTsKLS0vLyEgYXNzZXJ0X2VxIShyZWR1Y2UoJngpLCAy OCk7Ci0tLy8hIGBgYAotLS8vIQotLS8vISAjIyBWZWN0b3IgdHlwZXMKLS0vLyEKLS0vLyEgVGhl IHZlY3RvciB0eXBlIGFsaWFzZXMgYXJlIG5hbWVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5n IHNjaGVtZToKLS0vLyEKLS0vLyEgPiBge2VsZW1lbnRfdHlwZX14e251bWJlcl9vZl9sYW5lc30g PT0gU2ltZDxbZWxlbWVudF90eXBlOwotLS8vISBudW1iZXJfb2ZfbGFuZXNdPmAKLS0vLyEKLS0v LyEgd2hlcmUgdGhlIGZvbGxvd2luZyBlbGVtZW50IHR5cGVzIGFyZSBzdXBwb3J0ZWQ6Ci0tLy8h Ci0tLy8hICogYGl7ZWxlbWVudF93aWR0aH1gOiBzaWduZWQgaW50ZWdlcgotLS8vISAqIGB1e2Vs ZW1lbnRfd2lkdGh9YDogdW5zaWduZWQgaW50ZWdlcgotLS8vISAqIGBme2VsZW1lbnRfd2lkdGh9 YDogZmxvYXQKLS0vLyEgKiBgbXtlbGVtZW50X3dpZHRofWA6IG1hc2sgKHNlZSBiZWxvdykKLS0v LyEgKiBgKntjb25zdCxtdXR9IFRgOiBgY29uc3RgIGFuZCBgbXV0YCBwb2ludGVycwotLS8vIQot LS8vISAjIyBCYXNpYyBvcGVyYXRpb25zCi0tLy8hCi0tLy8hIGBgYAotLS8vISAjIHVzZSBwYWNr ZWRfc2ltZDo6KjsKLS0vLyEgLy8gU2V0cyBhbGwgZWxlbWVudHMgdG8gYDBgOgotLS8vISBsZXQg YSA9IGkzMng0OjpzcGxhdCgwKTsKLS0vLyEKLS0vLyEgLy8gUmVhZHMgYSB2ZWN0b3IgZnJvbSBh IHNsaWNlOgotLS8vISBsZXQgbXV0IGFyciA9IFswLCAwLCAwLCAxLCAyLCAzLCA0LCA1XTsKLS0v LyEgbGV0IGIgPSBpMzJ4NDo6ZnJvbV9zbGljZV91bmFsaWduZWQoJmFycik7Ci0tLy8hCi0tLy8h IC8vIFJlYWRzIHRoZSA0LXRoIGVsZW1lbnQgb2YgYSB2ZWN0b3I6Ci0tLy8hIGFzc2VydF9lcSEo Yi5leHRyYWN0KDMpLCAxKTsKLS0vLyEKLS0vLyEgLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hl cmUgdGhlIDQtdGggZWxlbWVudCBpcyByZXBsYWNlZCB3aXRoIGAxYDoKLS0vLyEgbGV0IGEgPSBh LnJlcGxhY2UoMywgMSk7Ci0tLy8hIGFzc2VydF9lcSEoYSwgYik7Ci0tLy8hCi0tLy8hIC8vIFdy aXRlcyBhIHZlY3RvciB0byBhIHNsaWNlOgotLS8vISBsZXQgYSA9IGEucmVwbGFjZSgyLCAxKTsK LS0vLyEgYS53cml0ZV90b19zbGljZV91bmFsaWduZWQoJm11dCBhcnJbNC4uXSk7Ci0tLy8hIGFz c2VydF9lcSEoYXJyLCBbMCwgMCwgMCwgMSwgMCwgMCwgMSwgMV0pOwotLS8vISBgYGAKLS0vLyEK LS0vLyEgIyMgQ29uZGl0aW9uYWwgb3BlcmF0aW9ucwotLS8vIQotLS8vISBPbmUgb2Z0ZW4gbmVl ZHMgdG8gcGVyZm9ybSBhbiBvcGVyYXRpb24gb24gc29tZSBsYW5lcyBvZiB0aGUgdmVjdG9yLiBW ZWN0b3IKLS0vLyEgbWFza3MsIGxpa2UgYG0zMng0YCwgYWxsb3cgc2VsZWN0aW5nIG9uIHdoaWNo IHZlY3RvciBsYW5lcyBhbiBvcGVyYXRpb24gaXMKLS0vLyEgdG8gYmUgcGVyZm9ybWVkOgotLS8v IQotLS8vISBgYGAKLS0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8hIGxldCBhID0gaTMy eDQ6Om5ldygxLCAxLCAyLCAyKTsKLS0vLyEKLS0vLyEgLy8gQWRkIGAxYCB0byB0aGUgZmlyc3Qg dHdvIGxhbmVzIG9mIHRoZSB2ZWN0b3IuCi0tLy8hIGxldCBtID0gbTE2eDQ6Om5ldyh0cnVlLCB0 cnVlLCBmYWxzZSwgZmFsc2UpOwotLS8vISBsZXQgYSA9IG0uc2VsZWN0KGEgKyAxLCBhKTsKLS0v LyEgYXNzZXJ0X2VxIShhLCBpMzJ4NDo6c3BsYXQoMikpOwotLS8vISBgYGAKLS0vLyEKLS0vLyEg VGhlIGVsZW1lbnRzIG9mIGEgdmVjdG9yIG1hc2sgYXJlIGVpdGhlciBgdHJ1ZWAgb3IgYGZhbHNl YC4gSGVyZSBgdHJ1ZWAKLS0vLyEgbWVhbnMgdGhhdCBhIGxhbmUgaXMgInNlbGVjdGVkIiwgd2hp bGUgYGZhbHNlYCBtZWFucyB0aGF0IGEgbGFuZSBpcyBub3QKLS0vLyEgc2VsZWN0ZWQuCi0tLy8h Ci0tLy8hIEFsbCB2ZWN0b3IgbWFza3MgaW1wbGVtZW50IGEgYG1hc2suc2VsZWN0KGE6IFQsIGI6 IFQpIC0+IFRgIG1ldGhvZCB0aGF0Ci0tLy8hIHdvcmtzIG9uIGFsbCB2ZWN0b3JzIHRoYXQgaGF2 ZSB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMgYXMgdGhlIG1hc2suIFRoZQotLS8vISByZXN1bHRp bmcgdmVjdG9yIGNvbnRhaW5zIHRoZSBlbGVtZW50cyBvZiBgYWAgZm9yIHRob3NlIGxhbmVzIGZv ciB3aGljaCB0aGUKLS0vLyEgbWFzayBpcyBgdHJ1ZWAsIGFuZCB0aGUgZWxlbWVudHMgb2YgYGJg IG90aGVyd2lzZS4KLS0vLyEKLS0vLyEgVGhlIGV4YW1wbGUgY29uc3RydWN0cyBhIG1hc2sgd2l0 aCB0aGUgZmlyc3QgdHdvIGxhbmVzIHNldCB0byBgdHJ1ZWAgYW5kCi0tLy8hIHRoZSBsYXN0IHR3 byBsYW5lcyBzZXQgdG8gYGZhbHNlYC4gVGhpcyBzZWxlY3RzIHRoZSBmaXJzdCB0d28gbGFuZXMg b2YgYGEgKwotLS8vISAxYCBhbmQgdGhlIGxhc3QgdHdvIGxhbmVzIG9mIGBhYCwgcHJvZHVjaW5n IGEgdmVjdG9yIHdoZXJlIHRoZSBmaXJzdCB0d28KLS0vLyEgbGFuZXMgaGF2ZSBiZWVuIGluY3Jl bWVudGVkIGJ5IGAxYC4KLS0vLyEKLS0vLyEgPiBub3RlOiBtYXNrIGBzZWxlY3RgIGNhbiBiZSB1 c2VkIG9uIHZlY3RvciB0eXBlcyB0aGF0IGhhdmUgdGhlIHNhbWUgbnVtYmVyCi0tLy8hID4gb2Yg bGFuZXMgYXMgdGhlIG1hc2suIFRoZSBleGFtcGxlIHNob3dzIHRoaXMgYnkgdXNpbmcgW2BtMTZ4 NGBdIGluc3RlYWQKLS0vLyEgPiBvZiBbYG0zMng0YF0uIEl0IGlzIF90eXBpY2FsbHlfIG1vcmUg cGVyZm9ybWFudCB0byB1c2UgYSBtYXNrIGVsZW1lbnQKLS0vLyEgPiB3aWR0aCBlcXVhbCB0byB0 aGUgZWxlbWVudCB3aWR0aCBvZiB0aGUgdmVjdG9ycyBiZWluZyBvcGVyYXRlZCB1cG9uLgotLS8v ISA+IFRoaXMgaXMsIGhvd2V2ZXIsIG5vdCB0cnVlIGZvciA1MTItYml0IHdpZGUgdmVjdG9ycyB3 aGVuIHRhcmdldGluZwotLS8vISA+IEFWWC01MTIsIHdoZXJlIHRoZSBtb3N0IGVmZmljaWVudCBt YXNrcyB1c2Ugb25seSAxLWJpdCBwZXIgZWxlbWVudC4KLS0vLyEKLS0vLyEgQWxsIHZlcnRpY2Fs IGNvbXBhcmlzb24gb3BlcmF0aW9ucyByZXR1cm5zIG1hc2tzOgotLS8vIQotLS8vISBgYGAKLS0v LyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7Ci0tLy8hIGxldCBhID0gaTMyeDQ6Om5ldygxLCAxLCAz LCAzKTsKLS0vLyEgbGV0IGIgPSBpMzJ4NDo6bmV3KDIsIDIsIDAsIDApOwotLS8vIQotLS8vISAv LyBnZTogPj0gKEdyZWF0ZXIgRWVxdWFsOyBzZWUgYWxzbyBsdCwgbGUsIGd0LCBlcSwgbmUpLgot LS8vISBsZXQgbSA9IGEuZ2UoaTMyeDQ6OnNwbGF0KDIpKTsKLS0vLyEKLS0vLyEgaWYgbS5hbnko KSB7Ci0tLy8hICAgICAvLyBhbGwgLyBhbnkgLyBub25lIGFsbG93IGNvaGVyZW50IGNvbnRyb2wg ZmxvdwotLS8vISAgICAgbGV0IGQgPSBtLnNlbGVjdChhLCBiKTsKLS0vLyEgICAgIGFzc2VydF9l cSEoZCwgaTMyeDQ6Om5ldygyLCAyLCAzLCAzKSk7Ci0tLy8hIH0KLS0vLyEgYGBgCi0tLy8hCi0t Ly8hICMjIENvbnZlcnNpb25zCi0tLy8hCi0tLy8hICogKipsb3NzbGVzcyB3aWRlbmluZyBjb252 ZXJzaW9ucyoqOiBbYEZyb21gXS9bYEludG9gXSBhcmUgaW1wbGVtZW50ZWQgZm9yCi0tLy8hICAg dmVjdG9ycyB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcyB3aGVuIHRoZSBjb252ZXJzaW9u IGlzIHZhbHVlCi0tLy8hIHByZXNlcnZpbmcgICAoc2FtZSBhcyBpbiBgc3RkYCkuCi0tLy8hCi0t Ly8hICogKipzYWZlIGJpdHdpc2UgY29udmVyc2lvbnMqKjogVGhlIGNhcmdvIGZlYXR1cmUgYGlu dG9fYml0c2AgcHJvdmlkZXMgdGhlCi0tLy8hICAgYEludG9CaXRzL0Zyb21CaXRzYCB0cmFpdHMg KGB4LmludG9fYml0cygpYCkuIFRoZXNlIHBlcmZvcm0gc2FmZSBiaXR3aXNlCi0tLy8hICAgYHRy YW5zbXV0ZWBzIHdoZW4gYWxsIGJpdCBwYXR0ZXJucyBvZiB0aGUgc291cmNlIHR5cGUgYXJlIHZh bGlkIGJpdAotLS8vISAgIHBhdHRlcm5zIG9mIHRoZSB0YXJnZXQgdHlwZSBhbmQgYXJlIGFsc28g aW1wbGVtZW50ZWQgZm9yIHRoZQotLS8vISAgIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB2ZWN0b3Ig dHlwZXMgb2YgYHN0ZDo6YXJjaGAuIEZvciBleGFtcGxlLCBgbGV0IHg6Ci0tLy8hICAgdTh4OCA9 IG04eDg6OnNwbGF0KHRydWUpLmludG9fYml0cygpO2AgaXMgcHJvdmlkZWQgYmVjYXVzZSBhbGwg YG04eDhgIGJpdAotLS8vISAgIHBhdHRlcm5zIGFyZSB2YWxpZCBgdTh4OGAgYml0IHBhdHRlcm5z LiBIb3dldmVyLCB0aGUgb3Bwb3NpdGUgaXMgbm90Ci0tLy8hIHRydWUsICAgbm90IGFsbCBgdTh4 OGAgYml0IHBhdHRlcm5zIGFyZSB2YWxpZCBgbTh4OGAgYml0LXBhdHRlcm5zLCBzbyB0aGlzCi0t Ly8hICAgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgc2FmZWx5IHVzaW5nIGB4LmludG9f Yml0cygpYDsgb25lIG5lZWRzIHRvCi0tLy8hICAgdXNlIGB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoeCkgfWAgZm9yIHRoYXQsIG1ha2luZyBzdXJlIHRoYXQgdGhlCi0tLy8hICAgdmFs dWUgaW4gdGhlIGB1OHg4YCBpcyBhIHZhbGlkIGJpdC1wYXR0ZXJuIG9mIGBtOHg4YC4KLS0vLyEK LS0vLyEgKiAqKm51bWVyaWMgY2FzdHMqKiAoYGFzYCk6IGFyZSBwZXJmb3JtZWQgdXNpbmcgW2BG cm9tQ2FzdGBdL1tgQ2FzdGBdCi0tLy8hIChgeC5jYXN0KClgKSwganVzdCBsaWtlIGBhc2A6Ci0t Ly8hCi0tLy8hICAgKiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5lIHR5cGVzIGhh dmUgdGhlIHNhbWUgc2l6ZSAoZS5nLgotLS8vISBgaTMyeE5gICAgICAtPiBgdTMyeE5gKSBpcyBh ICoqbm8tb3AqKiwKLS0vLyEKLS0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBpbnRlZ2Vy IHRvIGEgc21hbGxlciBpbnRlZ2VyIChlLmcuIGB1MzJ4TmAgLT4KLS0vLyEgYHU4eE5gKSAgICAg d2lsbCAqKnRydW5jYXRlKiosCi0tLy8hCi0tLy8hICAgKiBjYXN0aW5nIGZyb20gYSBzbWFsbGVy IGludGVnZXIgdG8gYSBsYXJnZXIgaW50ZWdlciAgICAgKGUuZy4gYHU4eE5gIC0+Ci0tLy8hICAg ICBgdTMyeE5gKSB3aWxsOgotLS8vISAgICAgICAgKiAqKnplcm8tZXh0ZW5kKiogaWYgdGhlIHNv dXJjZSBpcyB1bnNpZ25lZCwgb3IKLS0vLyEgICAgICAgICogKipzaWduLWV4dGVuZCoqIGlmIHRo ZSBzb3VyY2UgaXMgc2lnbmVkLAotLS8vIQotLS8vISAgICogY2FzdGluZyBmcm9tIGEgZmxvYXQg dG8gYW4gaW50ZWdlciB3aWxsICoqcm91bmQgdGhlIGZsb2F0IHRvd2FyZHMKLS0vLyEgemVybyoq LAotLS8vIQotLS8vISAgICogY2FzdGluZyBmcm9tIGFuIGludGVnZXIgdG8gZmxvYXQgd2lsbCBw cm9kdWNlIHRoZSBmbG9hdGluZyBwb2ludAotLS8vISAgICAgcmVwcmVzZW50YXRpb24gb2YgdGhl IGludGVnZXIsICoqcm91bmRpbmcgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiosCi0tLy8hCi0t Ly8hICAgKiBjYXN0aW5nIGZyb20gYW4gYGYzMmAgdG8gYW4gYGY2NGAgaXMgcGVyZmVjdCBhbmQg bG9zc2xlc3MsCi0tLy8hCi0tLy8hICAgKiBjYXN0aW5nIGZyb20gYW4gYGY2NGAgdG8gYW4gYGYz MmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiouCi0tLy8hCi0tLy8hICAgTnVt ZXJpYyBjYXN0cyBhcmUgbm90IHZlcnkgInByZWNpc2UiOiBzb21ldGltZXMgbG9zc3ksIHNvbWV0 aW1lcyB2YWx1ZQotLS8vISAgIHByZXNlcnZpbmcsIGV0Yy4KLS0vLyEKLS0vLyEgIyMgSGFyZHdh cmUgRmVhdHVyZXMKLS0vLyEKLS0vLyEgVGhpcyBjcmF0ZSBjYW4gdXNlIGRpZmZlcmVudCBoYXJk d2FyZSBmZWF0dXJlcyBiYXNlZCBvbiB5b3VyIGNvbmZpZ3VyZWQKLS0vLyEgYFJVU1RGTEFHU2Au IEZvciBleGFtcGxlLCB3aXRoIG5vIGNvbmZpZ3VyZWQgYFJVU1RGTEFHU2AsIGB1NjR4OGAgb24K LS0vLyEgeDg2XzY0IHdpbGwgdXNlIFNTRTIgb3BlcmF0aW9ucyBsaWtlIGBQQ01QRVFEYC4gSWYg eW91IGNvbmZpZ3VyZQotLS8vISBgUlVTVEZMQUdTPSctQyB0YXJnZXQtZmVhdHVyZT0rYXZ4Miwr YXZ4J2Agb24gc3VwcG9ydGVkIHg4Nl82NCBoYXJkd2FyZQotLS8vISB0aGUgc2FtZSBgdTY0eDhg IG1heSB1c2Ugd2lkZXIgQVZYMiBvcGVyYXRpb25zIGxpa2UgYFZQQ01QRVFRYC4gSXQgaXMKLS0v LyEgaW1wb3J0YW50IGZvciBwZXJmb3JtYW5jZSBhbmQgZm9yIGhhcmR3YXJlIHN1cHBvcnQgcmVx dWlyZW1lbnRzIHRoYXQKLS0vLyEgeW91IGNob29zZSBhbiBhcHByb3ByaWF0ZSBzZXQgb2YgYHRh cmdldC1mZWF0dXJlYCBhbmQgYHRhcmdldC1jcHVgCi0tLy8hIG9wdGlvbnMgZHVyaW5nIGJ1aWxk cy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgW1BlcmZvcm1hbmNlCi0tLy8hIGd1aWRl XShodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9wYWNrZWRfc2ltZC9wZXJmLWd1 aWRlLykKLS0KLS0jIVtmZWF0dXJlKAotLSAgICBhZHRfY29uc3RfcGFyYW1zLAotLSAgICByZXBy X3NpbWQsCi0tICAgIHJ1c3RjX2F0dHJzLAotLSAgICBwbGF0Zm9ybV9pbnRyaW5zaWNzLAotLSAg ICBzdGRzaW1kLAotLSAgICBhcm1fdGFyZ2V0X2ZlYXR1cmUsCi0tICAgIGxpbmtfbGx2bV9pbnRy aW5zaWNzLAotLSAgICBjb3JlX2ludHJpbnNpY3MsCi0tICAgIHN0bXRfZXhwcl9hdHRyaWJ1dGVz LAotLSAgICBjdXN0b21faW5uZXJfYXR0cmlidXRlcywKLS0pXQotLSMhW2FsbG93KG5vbl9jYW1l bF9jYXNlX3R5cGVzLCBub25fc25ha2VfY2FzZSwKLS0gICAgICAgIC8vIEZJWE1FOiB0aGVzZSB0 eXBlcyBhcmUgdW5zb3VuZCBpbiBDIEZGSSBhbHJlYWR5Ci0tICAgICAgICAvLyBTZWUgaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0L2lzc3Vlcy81MzM0NgotLSAgICAgICAgaW1wcm9w ZXJfY3R5cGVzX2RlZmluaXRpb25zLAotLSAgICAgICAgaW5jb21wbGV0ZV9mZWF0dXJlcywKLS0g ICAgICAgIGNsaXBweTo6Y2FzdF9wb3NzaWJsZV90cnVuY2F0aW9uLAotLSAgICAgICAgY2xpcHB5 OjpjYXN0X2xvc3NsZXNzLAotLSAgICAgICAgY2xpcHB5OjpjYXN0X3Bvc3NpYmxlX3dyYXAsCi0t ICAgICAgICBjbGlwcHk6OmNhc3RfcHJlY2lzaW9uX2xvc3MsCi0tICAgICAgICAvLyBUT0RPOiBt YW51YWxseSBhZGQgdGhlIGAjW211c3RfdXNlXWAgYXR0cmlidXRlIHdoZXJlIGFwcHJvcHJpYXRl Ci0tICAgICAgICBjbGlwcHk6Om11c3RfdXNlX2NhbmRpZGF0ZSwKLS0gICAgICAgIC8vIFRoaXMg bGludCBpcyBjdXJyZW50bHkgYnJva2VuIGZvciBnZW5lcmljIGNvZGUKLS0gICAgICAgIC8vIFNl ZSBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QtY2xpcHB5L2lzc3Vlcy8zNDEwCi0t ICAgICAgICBjbGlwcHk6OnVzZV9zZWxmLAotLSAgICAgICAgY2xpcHB5Ojp3cm9uZ19zZWxmX2Nv bnZlbnRpb24sCi0tICAgICAgICBjbGlwcHk6OmZyb21fb3Zlcl9pbnRvLAotLSldCi0tIyFbY2Zn X2F0dHIodGVzdCwgZmVhdHVyZShoYXNobWFwX2ludGVybmFscykpXQotLSMhW2NmZ19hdHRyKGRv Y19jZmcsIGZlYXR1cmUoZG9jX2NmZykpXQotLSMhW2RlbnkocnVzdF8yMDE4X2lkaW9tcywgY2xp cHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQotLSMhW25vX3N0ZF0KLS0KLS11 c2UgY2ZnX2lmOjpjZmdfaWY7Ci0tCi0tY2ZnX2lmISB7Ci0tICAgIGlmICNbY2ZnKGZlYXR1cmUg PSAiY29yZV9hcmNoIildIHsKLS0gICAgICAgICNbYWxsb3codW51c2VkX2ltcG9ydHMpXQotLSAg ICAgICAgdXNlIGNvcmVfYXJjaCBhcyBhcmNoOwotLSAgICB9IGVsc2UgewotLSAgICAgICAgI1th bGxvdyh1bnVzZWRfaW1wb3J0cyldCi0tICAgICAgICB1c2UgY29yZTo6YXJjaDsKLS0gICAgfQot LX0KLS0KLS0jW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgdGVzdCkpXQotLXVzZSB3 YXNtX2JpbmRnZW5fdGVzdDo6KjsKLS0KLS0jW2FsbG93KHVudXNlZF9pbXBvcnRzKV0KLS11c2Ug Y29yZTo6ewotLSAgICAvKiBhcmNoIChoYW5kbGVkIGFib3ZlKSwgKi8gY21wLCBmMzIsIGY2NCwg Zm10LCBoYXNoLCBoaW50LCBpMTI4LCBpMTYsIGkzMiwgaTY0LCBpOCwgaW50cmluc2ljcywKLS0g ICAgaXNpemUsIGl0ZXIsIG1hcmtlciwgbWVtLCBvcHMsIHB0ciwgc2xpY2UsIHUxMjgsIHUxNiwg dTMyLCB1NjQsIHU4LCB1c2l6ZSwKLS19OwotLQotLSNbbWFjcm9fdXNlXQotLW1vZCB0ZXN0aW5n OwotLSNbbWFjcm9fdXNlXQotLW1vZCBhcGk7Ci0tbW9kIGNvZGVnZW47Ci0tbW9kIHNlYWxlZDsK LS0KLS1wdWIgdXNlIGNyYXRlOjpzZWFsZWQ6OntNYXNrLCBTaHVmZmxlLCBTaW1kIGFzIFNpbWRW ZWN0b3IsIFNpbWRBcnJheX07Ci0tCi0tLy8vIFBhY2tlZCBTSU1EIHZlY3RvciB0eXBlLgotLS8v LwotLS8vLyAjIEV4YW1wbGVzCi0tLy8vCi0tLy8vIGBgYAotLS8vLyAjIHVzZSBwYWNrZWRfc2lt ZDo6U2ltZDsKLS0vLy8gbGV0IHYgPSBTaW1kOjo8W2kzMjsgNF0+OjpuZXcoMCwgMSwgMiwgMyk7 Ci0tLy8vIGFzc2VydF9lcSEodi5leHRyYWN0KDIpLCAyKTsKLS0vLy8gYGBgCi0tI1tyZXByKHRy YW5zcGFyZW50KV0KLS0jW2Rlcml2ZShDb3B5LCBDbG9uZSldCi0tcHViIHN0cnVjdCBTaW1kPEE6 IHNlYWxlZDo6U2ltZEFycmF5PigKLS0gICAgLy8gRklYTUU6IHRoaXMgdHlwZSBzaG91bGQgYmUg cHJpdmF0ZSwKLS0gICAgLy8gYnV0IGl0IGN1cnJlbnRseSBtdXN0IGJlIHB1YmxpYyBmb3IgdGhl Ci0tICAgIC8vIGBzaHVmZmxlIWAgbWFjcm8gdG8gd29yazogaXQgbmVlZHMgdG8KLS0gICAgLy8g YWNjZXNzIHRoZSBpbnRlcm5hbCBgcmVwcihzaW1kKWAgdHlwZQotLSAgICAvLyB0byBjYWxsIHRo ZSBzaHVmZmxlIGludHJpbnNpY3MuCi0tICAgICNbZG9jKGhpZGRlbildIHB1YiA8QSBhcyBzZWFs ZWQ6OlNpbWRBcnJheT46OlR1cGxlLAotLSk7Ci0tCi0taW1wbDxBOiBzZWFsZWQ6OlNpbWRBcnJh eT4gc2VhbGVkOjpTZWFsIGZvciBTaW1kPEE+IHt9Ci0tCi0tLy8vIFdyYXBwZXIgb3ZlciBgVGAg aW1wbGVtZW50aW5nIGEgbGV4aWNvcmFwaGljYWwgb3JkZXIgdmlhIHRoZSBgUGFydGlhbE9yZGAK LS0vLy8gYW5kL29yIGBPcmRgIHRyYWl0cy4KLS0jW3JlcHIodHJhbnNwYXJlbnQpXQotLSNbZGVy aXZlKENvcHksIENsb25lLCBEZWJ1ZyldCi0tI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5l X2luX3B1YmxpY19pdGVtcyldCi0tcHViIHN0cnVjdCBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8 VD4oVCk7Ci0tCi0tbW9kIG1hc2tzOwotLXB1YiB1c2Ugc2VsZjo6bWFza3M6Oio7Ci0tCi0tbW9k IHYxNjsKLS1wdWIgdXNlIHNlbGY6OnYxNjo6KjsKLS0KLS1tb2QgdjMyOwotLXB1YiB1c2Ugc2Vs Zjo6djMyOjoqOwotLQotLW1vZCB2NjQ7Ci0tcHViIHVzZSBzZWxmOjp2NjQ6Oio7Ci0tCi0tbW9k IHYxMjg7Ci0tcHViIHVzZSBzZWxmOjp2MTI4OjoqOwotLQotLW1vZCB2MjU2OwotLXB1YiB1c2Ug c2VsZjo6djI1Njo6KjsKLS0KLS1tb2QgdjUxMjsKLS1wdWIgdXNlIHNlbGY6OnY1MTI6Oio7Ci0t Ci0tbW9kIHZTaXplOwotLXB1YiB1c2Ugc2VsZjo6dlNpemU6Oio7Ci0tCi0tbW9kIHZQdHI7Ci0t cHViIHVzZSBzZWxmOjp2UHRyOjoqOwotLQotLXB1YiB1c2Ugc2VsZjo6YXBpOjpjYXN0OjoqOwot LQotLSNbY2ZnKGZlYXR1cmUgPSAiaW50b19iaXRzIildCi0tcHViIHVzZSBzZWxmOjphcGk6Omlu dG9fYml0czo6KjsKLS0KLS0vLyBSZS1leHBvcnQgdGhlIHNodWZmbGUgaW50cmluc2ljcyByZXF1 aXJlZCBieSB0aGUgYHNodWZmbGUhYCBtYWNyby4KLS0jW2RvYyhoaWRkZW4pXQotLXB1YiB1c2Ug c2VsZjo6Y29kZWdlbjo6bGx2bTo6ewotLSAgICBfX3NodWZmbGVfdmVjdG9yMTYsIF9fc2h1ZmZs ZV92ZWN0b3IyLCBfX3NodWZmbGVfdmVjdG9yMzIsIF9fc2h1ZmZsZV92ZWN0b3I0LCBfX3NodWZm bGVfdmVjdG9yNjQsCi0tICAgIF9fc2h1ZmZsZV92ZWN0b3I4LAotLX07Ci0tCi0tcHViKGNyYXRl KSBtb2QgbGx2bSB7Ci0tICAgIHB1YihjcmF0ZSkgdXNlIGNyYXRlOjpjb2RlZ2VuOjpsbHZtOjoq OwotLX0KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNr cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL21hc2tzLnJzCi0tLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9tYXNrcy5ycwkyMDI1LTA0LTIwIDE5OjI4 OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvbWFza3MucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEy NiArMCwwIEBACi0tLy8hIE1hc2sgdHlwZXMKLS0KLS1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3R5 IHsKLS0gICAgKCRpZDppZGVudCA6ICRlbGVtX3R5OmlkZW50IHwgI1skZG9jOm1ldGFdKSA9PiB7 Ci0tICAgICAgICAjWyRkb2NdCi0tICAgICAgICAjW2Rlcml2ZShDb3B5LCBDbG9uZSldCi0tICAg ICAgICBwdWIgc3RydWN0ICRpZCgkZWxlbV90eSk7Ci0tCi0tICAgICAgICBpbXBsIGNyYXRlOjpz ZWFsZWQ6OlNlYWwgZm9yICRpZCB7fQotLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpNYXNr IGZvciAkaWQgewotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIGZuIHRlc3Qo JnNlbGYpIC0+IGJvb2wgewotLSAgICAgICAgICAgICAgICAkaWQ6OnRlc3Qoc2VsZikKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsICRpZCB7Ci0tICAgICAgICAg ICAgLy8vIEluc3RhbnRpYXRlIGEgbWFzayB3aXRoIGB2YWx1ZWAKLS0gICAgICAgICAgICAjW2lu bGluZV0KLS0gICAgICAgICAgICBwdWIgZm4gbmV3KHg6IGJvb2wpIC0+IFNlbGYgewotLSAgICAg ICAgICAgICAgICBpZiB4IHsKLS0gICAgICAgICAgICAgICAgICAgICRpZCghMCkKLS0gICAgICAg ICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgICAgICRpZCgwKQotLSAgICAgICAg ICAgICAgICB9Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgICAgIC8vLyBUZXN0IGlmIHRoZSBt YXNrIGlzIHNldAotLSAgICAgICAgICAgICNbaW5saW5lXQotLSAgICAgICAgICAgIHB1YiBmbiB0 ZXN0KCZzZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wICE9IDAKLS0gICAg ICAgICAgICB9Ci0tICAgICAgICB9Ci0tCi0tICAgICAgICBpbXBsIERlZmF1bHQgZm9yICRpZCB7 Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNl bGYgewotLSAgICAgICAgICAgICAgICAkaWQoMCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 Ci0tCi0tICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQotLSAgICAg ICAgaW1wbCBQYXJ0aWFsRXE8JGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAg ICAgICAgICAgICAgc2VsZi4wID09IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4g Ym9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuMCAhPSBvdGhlci4wCi0tICAgICAgICAgICAg fQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBFcSBmb3IgJGlkIHt9Ci0tCi0tICAgICAg ICBpbXBsIFBhcnRpYWxPcmQ8JGlkPiBmb3IgJGlkIHsKLS0gICAgICAgICAgICAjW2lubGluZV0K LS0gICAgICAgICAgICBmbiBwYXJ0aWFsX2NtcCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBPcHRp b248Y3JhdGU6OmNtcDo6T3JkZXJpbmc+IHsKLS0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpj bXA6Ok9yZGVyaW5nOwotLSAgICAgICAgICAgICAgICBpZiBzZWxmID09IG90aGVyIHsKLS0gICAg ICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKQotLSAgICAgICAgICAgICAgICB9 IGVsc2UgaWYgc2VsZi4wID4gb3RoZXIuMCB7Ci0tICAgICAgICAgICAgICAgICAgICAvLyBOb3Rl OgotLSAgICAgICAgICAgICAgICAgICAgLy8gICogZmFsc2UgPSAwX2kKLS0gICAgICAgICAgICAg ICAgICAgIC8vICAqIHRydWUgPT0gITBfaSA9PSAtMV9pCi0tICAgICAgICAgICAgICAgICAgICBT b21lKE9yZGVyaW5nOjpMZXNzKQotLSAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAg ICAgICAgICAgICAgU29tZShPcmRlcmluZzo6R3JlYXRlcikKLS0gICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0gICAgICAgICAgICBm biBsdCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAgICAgICAgICAgc2Vs Zi4wID4gb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAjW2lubGluZV0KLS0g ICAgICAgICAgICBmbiBndCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKLS0gICAgICAg ICAgICAgICAgc2VsZi4wIDwgb3RoZXIuMAotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAj W2lubGluZV0KLS0gICAgICAgICAgICBmbiBsZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29s IHsKLS0gICAgICAgICAgICAgICAgc2VsZi4wID49IG90aGVyLjAKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZ2UoJnNlbGYsIG90aGVyOiAm U2VsZikgLT4gYm9vbCB7Ci0tICAgICAgICAgICAgICAgIHNlbGYuMCA8PSBvdGhlci4wCi0tICAg ICAgICAgICAgfQotLSAgICAgICAgfQotLQotLSAgICAgICAgaW1wbCBPcmQgZm9yICRpZCB7Ci0t ICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gY21wKCZzZWxmLCBvdGhlcjog JlNlbGYpIC0+IGNyYXRlOjpjbXA6Ok9yZGVyaW5nIHsKLS0gICAgICAgICAgICAgICAgbWF0Y2gg c2VsZi5wYXJ0aWFsX2NtcChvdGhlcikgewotLSAgICAgICAgICAgICAgICAgICAgU29tZSh4KSA9 PiB4LAotLSAgICAgICAgICAgICAgICAgICAgTm9uZSA9PiB1bnNhZmUgeyBjcmF0ZTo6aGludDo6 dW5yZWFjaGFibGVfdW5jaGVja2VkKCkgfSwKLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6Omhhc2g6Okhhc2ggZm9y ICRpZCB7Ci0tICAgICAgICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gaGFzaDxIOiBj cmF0ZTo6aGFzaDo6SGFzaGVyPigmc2VsZiwgc3RhdGU6ICZtdXQgSCkgewotLSAgICAgICAgICAg ICAgICAoc2VsZi4wICE9IDApLmhhc2goc3RhdGUpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAg IH0KLS0KLS0gICAgICAgIGltcGwgY3JhdGU6OmZtdDo6RGVidWcgZm9yICRpZCB7Ci0tICAgICAg ICAgICAgI1tpbmxpbmVdCi0tICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmbXR0ZXI6ICZtdXQg Y3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gUmVzdWx0PCgpLCBjcmF0ZTo6Zm10OjpFcnJv cj4gewotLSAgICAgICAgICAgICAgICB3cml0ZSEoZm10dGVyLCAie30oe30pIiwgc3RyaW5naWZ5 ISgkaWQpLCBzZWxmLjAgIT0gMCkKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH07 Ci0tfQotLQotLWltcGxfbWFza190eSEobTg6IGk4IHwgLy8vIDgtYml0IHdpZGUgbWFzay4KLS0p OwotLWltcGxfbWFza190eSEobTE2OiBpMTYgfCAvLy8gMTYtYml0IHdpZGUgbWFzay4KLS0pOwot LWltcGxfbWFza190eSEobTMyOiBpMzIgfCAvLy8gMzItYml0IHdpZGUgbWFzay4KLS0pOwotLWlt cGxfbWFza190eSEobTY0OiBpNjQgfCAvLy8gNjQtYml0IHdpZGUgbWFzay4KLS0pOwotLWltcGxf bWFza190eSEobTEyODogaTEyOCB8IC8vLyAxMjgtYml0IHdpZGUgbWFzay4KLS0pOwotLWltcGxf bWFza190eSEobXNpemU6IGlzaXplIHwgLy8vIGlzaXplLXdpZGUgbWFzay4KLS0pOwotZGlmZiAt TnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvc2VhbGVkLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMuMDAwMDAw MDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9zZWFsZWQu cnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDQyICswLDAgQEAK LS0vLyEgU2VhbGVkIHRyYWl0cwotLQotLS8vLyBBIHNlYWxlZCB0cmFpdCwgdGhpcyBpcyBsb2dp Y2FsbHkgcHJpdmF0ZSB0byB0aGUgY3JhdGUKLS0vLy8gYW5kIHdpbGwgcHJldmVudCBpbXBsZW1l bnRhdGlvbnMgZnJvbSBvdXRzaWRlIHRoZSBjcmF0ZQotLXB1YiB0cmFpdCBTZWFsPFQgPSAoKT4g e30KLS0KLS0vLy8gVHJhaXQgaW1wbGVtZW50ZWQgYnkgYXJyYXlzIHRoYXQgY2FuIGJlIFNJTUQg dHlwZXMuCi0tcHViIHRyYWl0IFNpbWRBcnJheTogU2VhbCB7Ci0tICAgIC8vLyBUaGUgdHlwZSBv ZiB0aGUgI1tyZXByKHNpbWQpXSB0eXBlLgotLSAgICB0eXBlIFR1cGxlOiBDb3B5ICsgQ2xvbmU7 Ci0tICAgIC8vLyBUaGUgZWxlbWVudCB0eXBlIG9mIHRoZSB2ZWN0b3IuCi0tICAgIHR5cGUgVDsK LS0gICAgLy8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5LgotLSAgICBjb25z dCBOOiB1c2l6ZTsKLS0gICAgLy8vIFRoZSB0eXBlOiBgW3UzMjsgU2VsZjo6Tl1gLgotLSAgICB0 eXBlIE5UOwotLX0KLS0KLS0vLy8gVGhpcyB0cmFpdHMgaXMgdXNlZCB0byBjb25zdHJhaW50IHRo ZSBhcmd1bWVudHMKLS0vLy8gYW5kIHJlc3VsdCB0eXBlIG9mIHRoZSBwb3J0YWJsZSBzaHVmZmxl cy4KLS0jW2RvYyhoaWRkZW4pXQotLXB1YiB0cmFpdCBTaHVmZmxlPExhbmVzPjogU2VhbDxMYW5l cz4gewotLSAgICAvLyBMYW5lcyBpcyBhIGBbdTMyOyBOXWAgd2hlcmUgYE5gIGlzIHRoZSBudW1i ZXIgb2YgdmVjdG9yIGxhbmVzCi0tCi0tICAgIC8vLyBUaGUgcmVzdWx0IHR5cGUgb2YgdGhlIHNo dWZmbGUuCi0tICAgIHR5cGUgT3V0cHV0OwotLX0KLS0KLS0vLy8gVGhpcyB0cmFpdCBpcyBpbXBs ZW1lbnRlZCBieSBhbGwgU0lNRCB2ZWN0b3IgdHlwZXMuCi0tcHViIHRyYWl0IFNpbWQ6IFNlYWwg ewotLSAgICAvLy8gRWxlbWVudCB0eXBlIG9mIHRoZSBTSU1EIHZlY3RvcgotLSAgICB0eXBlIEVs ZW1lbnQ7Ci0tICAgIC8vLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBTSU1EIHZlY3Rv ci4KLS0gICAgY29uc3QgTEFORVM6IHVzaXplOwotLSAgICAvLy8gVGhlIHR5cGU6IGBbdTMyOyBT ZWxmOjpOXWAuCi0tICAgIHR5cGUgTGFuZXNUeXBlOwotLX0KLS0KLS0vLy8gVGhpcyB0cmFpdCBp cyBpbXBsZW1lbnRlZCBieSBhbGwgbWFzayB0eXBlcwotLXB1YiB0cmFpdCBNYXNrOiBTZWFsIHsK LS0gICAgZm4gdGVzdCgmc2VsZikgLT4gYm9vbDsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3MucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycwotLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy9tYWNyb3MucnMJMjAyNS0wNC0yMCAxOToyODox My4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L3Rlc3RpbmcvbWFjcm9zLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1A QCAtMSw0NCArMCwwIEBACi0tLy8hIFRlc3RpbmcgbWFjcm9zCi0tCi0tbWFjcm9fcnVsZXMhIHRl c3RfaWYgewotLSAgICAoJGNmZ190dDp0dDogJGl0Oml0ZW0pID0+IHsKLS0gICAgICAgICNbY2Zn KGFueSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBUZXN0IGV2ZXJ5dGhpbmcgaWY6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAqIHRlc3Rz IGFyZSBlbmFibGVkLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vICogbm8gZmVhdHVyZXMgYWJvdXQgZXhjbHVzaXZlbHkgdGVz dGluZwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vICAgc3BlY2lmaWMgdmVjdG9yIGNsYXNzZXMgYXJlIGVuYWJsZWQKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bGwodGVzdCwgbm90KGFueSgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92MTYsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjMyLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXN0X3Y2NCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF92MTI4LAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3YyNTYs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRlc3RfdjUxMiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub25lLCAgLy8gZGlzYWJsZXMgYWxs IHRlc3RzCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFRlc3QgaWY6Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAqIHRlc3Rz IGFyZSBlbmFibGVkCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gKiBhIHBhcnRpY3VsYXIgY2ZnIHRva2VuIHRyZWUgcmV0dXJu cyB0cnVlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWxsKHRlc3QsICRjZmdfdHQpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSldCi0tICAgICAgICAkaXQKLS0gICAg fTsKLS19Ci0tCi0tI1tjZmcodGVzdCldCi0tI1thbGxvdyh1bnVzZWQpXQotLW1hY3JvX3J1bGVz ISByZWZfIHsKLS0gICAgKCRhbnl0aGluZzp0dCkgPT4gewotLSAgICAgICAgJiRhbnl0aGluZwot LSAgICB9OwotLX0KLS0KLS0jW2NmZyh0ZXN0KV0KLS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9f cnVsZXMhIHJlZl9tdXRfIHsKLS0gICAgKCRhbnl0aGluZzp0dCkgPT4gewotLSAgICAgICAgJm11 dCAkYW55dGhpbmcKLS0gICAgfTsKLS19Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvdGVzdGluZy91dGlscy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3Rlc3RpbmcvdXRpbHMucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3Rlc3RpbmcvdXRpbHMucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAg KzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvdXRp bHMucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDEzMCArMCww IEBACi0tLy8hIFRlc3RpbmcgdXRpbGl0aWVzCi0tCi0tIyFbYWxsb3coZGVhZF9jb2RlKV0KLS0v LyBGSVhNRTogT3IgZG9uJ3QuIEJ1dCBpdCdzIHRydWUgdGhpcyBpcyBhIHByb2JsZW1hdGljIGNv bXBhcmlzb24uCi0tIyFbYWxsb3coY2xpcHB5OjpuZWdfY21wX29wX29uX3BhcnRpYWxfb3JkKV0K LS0KLS11c2UgY3JhdGU6OntjbXA6OlBhcnRpYWxPcmQsIGZtdDo6RGVidWcsIExleGljb2dyYXBo aWNhbGx5T3JkZXJlZH07Ci0tCi0tLy8vIFRlc3RzIFBhcnRpYWxPcmQgZm9yIGBhYCBhbmQgYGJg IHdoZXJlIGBhIDwgYmAgaXMgdHJ1ZS4KLS1wdWIgZm4gdGVzdF9sdDxUPihhOiBMZXhpY29ncmFw aGljYWxseU9yZGVyZWQ8VD4sIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPikKLS13aGVy ZQotLSAgICBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD46IERlYnVnICsgUGFydGlhbE9yZCwK LS17Ci0tICAgIGFzc2VydCEoYSA8IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgIGFzc2Vy dCEoYiA+IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tCi0tICAgIGFzc2VydCEoIShhID09IGIp LCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBhc3NlcnRfbmUhKGEsIGIsICJ7Oj99LCB7Oj99 IiwgYSwgYik7Ci0tCi0tICAgIGFzc2VydCEoYSA8PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOwot LSAgICBhc3NlcnQhKGIgPj0gYSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0KLS0gICAgLy8gVGhl IGVsZWdhbmNlIG9mIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbiBvZiBpcnJlZmxleGl2aXR5 IGlzIG1vcmUKLS0gICAgLy8gdGhhbiBjbGlwcHkgY2FuIGhhbmRsZS4KLS0gICAgI1thbGxvdyhj bGlwcHk6OmVxX29wKV0KLS0gICAgewotLSAgICAgICAgLy8gSXJyZWZsZXhpdml0eQotLSAgICAg ICAgYXNzZXJ0ISghKGEgPCBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgIGFzc2Vy dCEoIShiIDwgYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICBhc3NlcnQhKCEoYSA+ IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgYXNzZXJ0ISghKGIgPiBiKSwgIns6 P30sIHs6P30iLCBhLCBiKTsKLS0KLS0gICAgICAgIGFzc2VydCEoYSA8PSBhLCAiezo/fSwgezo/ fSIsIGEsIGIpOwotLSAgICAgICAgYXNzZXJ0IShiIDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7 Ci0tICAgIH0KLS19Ci0tCi0tLy8vIFRlc3RzIFBhcnRpYWxPcmQgZm9yIGBhYCBhbmQgYGJgIHdo ZXJlIGBhIDw9IGJgIGlzIHRydWUuCi0tcHViIGZuIHRlc3RfbGU8VD4oYTogTGV4aWNvZ3JhcGhp Y2FsbHlPcmRlcmVkPFQ+LCBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4pCi0td2hlcmUK LS0gICAgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+OiBEZWJ1ZyArIFBhcnRpYWxPcmQsCi0t ewotLSAgICBhc3NlcnQhKGEgPD0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgYXNzZXJ0 IShiID49IGEsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tCi0tICAgIGFzc2VydCEoYSA8PSBiLCAi ezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBhc3NlcnQhKGIgPj0gYSwgIns6P30sIHs6P30iLCBh LCBiKTsKLS0KLS0gICAgaWYgYSA9PSBiIHsKLS0gICAgICAgIGFzc2VydCEoIShhIDwgYiksICJ7 Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICBhc3NlcnQhKCEoYiA+IGEpLCAiezo/fSwgezo/ fSIsIGEsIGIpOwotLQotLSAgICAgICAgYXNzZXJ0ISghKGEgIT0gYiksICJ7Oj99LCB7Oj99Iiwg YSwgYik7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBhc3NlcnRfbmUhKGEsIGIsICJ7Oj99LCB7 Oj99IiwgYSwgYik7Ci0tICAgICAgICB0ZXN0X2x0KGEsIGIpOwotLSAgICB9Ci0tfQotLQotLS8v LyBUZXN0IFBhcnRpYWxPcmQ6OnBhcnRpYWxfY21wIGZvciBgYWAgYW5kIGBiYCByZXR1cm5pbmcg YE9yZGVyaW5nYAotLXB1YiBmbiB0ZXN0X2NtcDxUPigKLS0gICAgYTogTGV4aWNvZ3JhcGhpY2Fs bHlPcmRlcmVkPFQ+LAotLSAgICBiOiBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sCi0tICAg IG86IE9wdGlvbjxjcmF0ZTo6Y21wOjpPcmRlcmluZz4sCi0tKSB3aGVyZQotLSAgICBMZXhpY29n cmFwaGljYWxseU9yZGVyZWQ8VD46IFBhcnRpYWxPcmQgKyBEZWJ1ZywKLS0gICAgVDogRGVidWcg KyBjcmF0ZTo6c2VhbGVkOjpTaW1kICsgQ29weSArIENsb25lLAotLSAgICA8VCBhcyBjcmF0ZTo6 c2VhbGVkOjpTaW1kPjo6RWxlbWVudDogRGVmYXVsdCArIENvcHkgKyBDbG9uZSArIFBhcnRpYWxP cmQsCi0tewotLSAgICBhc3NlcnQhKFQ6OkxBTkVTIDw9IDY0LCAiYXJyYXkgbGVuZ3RoIGluIHRo ZXNlIHR3byBhcnJheXMgbmVlZHMgdXBkYXRpbmciKTsKLS0gICAgbGV0IG11dCBhcnJfYTogW1Q6 OkVsZW1lbnQ7IDY0XSA9IFtEZWZhdWx0OjpkZWZhdWx0KCk7IDY0XTsKLS0gICAgbGV0IG11dCBh cnJfYjogW1Q6OkVsZW1lbnQ7IDY0XSA9IFtEZWZhdWx0OjpkZWZhdWx0KCk7IDY0XTsKLS0KLS0g ICAgdW5zYWZlIHsgY3JhdGU6OnB0cjo6d3JpdGVfdW5hbGlnbmVkKGFycl9hLmFzX211dF9wdHIo KSBhcyAqbXV0IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwgYSkgfQotLSAgICB1bnNhZmUg eyBjcmF0ZTo6cHRyOjp3cml0ZV91bmFsaWduZWQoYXJyX2IuYXNfbXV0X3B0cigpIGFzICptdXQg TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBiKSB9Ci0tICAgIGxldCBleHBlY3RlZCA9IGFy cl9hWzAuLlQ6OkxBTkVTXS5wYXJ0aWFsX2NtcCgmYXJyX2JbMC4uVDo6TEFORVNdKTsKLS0gICAg bGV0IHJlc3VsdCA9IGEucGFydGlhbF9jbXAoJmIpOwotLSAgICBhc3NlcnRfZXEhKGV4cGVjdGVk LCByZXN1bHQsICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgIGFzc2VydF9lcSEobywgcmVzdWx0 LCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICBtYXRjaCBvIHsKLS0gICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpID0+IHsKLS0gICAgICAgICAgICB0ZXN0X2x0KGEsIGIp OwotLSAgICAgICAgICAgIHRlc3RfbGUoYSwgYik7Ci0tICAgICAgICB9Ci0tICAgICAgICBTb21l KGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSA9PiB7Ci0tICAgICAgICAgICAgdGVzdF9s dChiLCBhKTsKLS0gICAgICAgICAgICB0ZXN0X2xlKGIsIGEpOwotLSAgICAgICAgfQotLSAgICAg ICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpID0+IHsKLS0gICAgICAgICAgICBh c3NlcnQhKGEgPT0gYiwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQh KCEoYSAhPSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEo YSA8IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEoIShiIDwg YSksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGEgPiBiKSwg Ins6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3NlcnQhKCEoYiA+IGEpLCAiezo/ fSwgezo/fSIsIGEsIGIpOwotLQotLSAgICAgICAgICAgIHRlc3RfbGUoYSwgYik7Ci0tICAgICAg ICAgICAgdGVzdF9sZShiLCBhKTsKLS0gICAgICAgIH0KLS0gICAgICAgIE5vbmUgPT4gewotLSAg ICAgICAgICAgIGFzc2VydCEoIShhID09IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAg ICAgICAgIGFzc2VydCEoIShhICE9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAg ICAgIGFzc2VydCEoIShhIDwgYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAg YXNzZXJ0ISghKGEgPiBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKLS0gICAgICAgICAgICBhc3Nl cnQhKCEoYiA8IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOwotLSAgICAgICAgICAgIGFzc2VydCEo IShiID4gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGEg PD0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIgPD0g YSksICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGEgPj0gYiks ICJ7Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICAgICAgYXNzZXJ0ISghKGIgPj0gYSksICJ7 Oj99LCB7Oj99IiwgYSwgYik7Ci0tICAgICAgICB9Ci0tICAgIH0KLS19Ci0tCi0tLy8gUmV0dXJu cyBhIHR1cGxlIGNvbnRhaW5pbmcgdHdvIGRpc3RpbmN0IHBvaW50ZXIgdmFsdWVzIG9mIHRoZSBz YW1lIHR5cGUgYXMKLS0vLyB0aGUgZWxlbWVudCB0eXBlIG9mIHRoZSBTaW1kIHZlY3RvciBgJGlk YC4KLS0jW2FsbG93KHVudXNlZCldCi0tbWFjcm9fcnVsZXMhIHB0cl92YWxzIHsKLS0gICAgKCRp ZDp0eSkgPT4gewotLSAgICAgICAgLy8gZXhwYW5kcyB0byBhbiBleHByZXNzaW9uCi0tICAgICAg ICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQotLSAgICAgICAgdW5zYWZlIHsKLS0gICAgICAgICAg ICAvLyBhbGwgYml0cyBjbGVhcmVkCi0tICAgICAgICAgICAgbGV0IGNsZWFyOiA8JGlkIGFzIHNl YWxlZDo6U2ltZD46OkVsZW1lbnQgPSBjcmF0ZTo6bWVtOjp6ZXJvZWQoKTsKLS0gICAgICAgICAg ICAvLyBhbGwgYml0cyBzZXQKLS0gICAgICAgICAgICBsZXQgc2V0OiA8JGlkIGFzIHNlYWxlZDo6 U2ltZD46OkVsZW1lbnQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoLTFfaXNpemUpOwotLSAgICAg ICAgICAgIChjbGVhciwgc2V0KQotLSAgICAgICAgfQotLSAgICB9OwotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5ycwotLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAw MCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsOCArMCwwIEBACi0t Ly8hIFRlc3RpbmcgbWFjcm9zIGFuZCBvdGhlciB1dGlsaXRpZXMuCi0tCi0tI1ttYWNyb191c2Vd Ci0tbW9kIG1hY3JvczsKLS0KLS0jW2NmZyh0ZXN0KV0KLS0jW21hY3JvX3VzZV0KLS1wdWIoY3Jh dGUpIG1vZCB1dGlsczsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycwot LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjEyOC5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvdjEyOC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAg LTEsODAgKzAsMCBAQAotLS8vISAxMjgtYml0IHdpZGUgdmVjdG9yIHR5cGVzCi0tI1tydXN0Zm10 Ojpza2lwXQotLQotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpODsgMTZdOiBpOHgxNiwg bTh4MTYgfCBpOCwgdTE2IHwgdGVzdF92MTI4IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0g ICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMTYgYGk4 YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U4OyAxNl06IHU4eDE2LCBtOHgxNiB8IHU4LCB1MTYg fCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAgRnJvbTogfAot LSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxNiBgdThgIGxhbmVzLgotLSk7Ci0t aW1wbF9tIShbbTg7IDE2XTogbTh4MTYgfCBpOCwgdTE2IHwgdGVzdF92MTI4IHwKLS0gICAgICAg IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4 MTMsIHgxNCwgeDE1IHwKLS0gICAgICAgIEZyb206IG0xNngxNiB8Ci0tICAgICAgICAvLy8gQSAx MjgtYml0IHZlY3RvciBtYXNrIHdpdGggMTYgYG04YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEo W2kxNjsgOF06IGkxNng4LCBtMTZ4OCB8IGkxNiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCB8Ci0tICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDggYGkxNmAgbGFuZXMuCi0tKTsKLS1pbXBs X3UhKFt1MTY7IDhdOiB1MTZ4OCwgbTE2eDggfCB1MTYsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgx LCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IHU4eDggfAotLSAgICAg ICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA4IGB1MTZgIGxhbmVzLgotLSk7Ci0taW1wbF9t IShbbTE2OyA4XTogbTE2eDggfCBpMTYsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxLCB4MiwgeDMs IHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IG04eDgsIG0zMng4IHwKLS0gICAgICAg IC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtMTZgIGxhbmVzLgotLSk7Ci0tCi0t aW1wbF9pIShbaTMyOyA0XTogaTMyeDQsIG0zMng0IHwgaTMyLCB1OCB8IHRlc3RfdjEyOCB8IHgw LCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCAg fAotLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMzJgIGxhbmVzLgotLSk7 Ci0taW1wbF91IShbdTMyOyA0XTogdTMyeDQsIG0zMng0IHwgdTMyLCB1OCB8IHRlc3RfdjEyOCB8 IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IHU4eDQsIHUxNng0IHwKLS0gICAgICAg IC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggNCBgdTMyYCBsYW5lcy4KLS0pOwotLWltcGxfZiEo W2YzMjsgNF06IGYzMng0LCBtMzJ4NCB8IGYzMiB8IHRlc3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgz IHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0LCB1MTZ4NCB8Ci0tICAgICAgICAv Ly8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYGYzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFtt MzI7IDRdOiBtMzJ4NCB8IGkzMiwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MyB8Ci0t ICAgICAgICBGcm9tOiBtOHg0LCBtMTZ4NCwgbTY0eDQgfAotLSAgICAgICAgLy8vIEEgMTI4LWJp dCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0zMmAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpNjQ7 IDJdOiBpNjR4MiwgbTY0eDIgfCBpNjQsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxIHwKLS0gICAg ICAgIEZyb206IGk4eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiwgaTMyeDIsIHUzMngyIHwKLS0gICAg ICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMiBgaTY0YCBsYW5lcy4KLS0pOwotLWltcGxf dSEoW3U2NDsgMl06IHU2NHgyLCBtNjR4MiB8IHU2NCwgdTggfCB0ZXN0X3YxMjggfCB4MCwgeDEg fAotLSAgICAgICAgRnJvbTogdTh4MiwgdTE2eDIsIHUzMngyIHwKLS0gICAgICAgIC8vLyBBIDEy OC1iaXQgdmVjdG9yIHdpdGggMiBgdTY0YCBsYW5lcy4KLS0pOwotLWltcGxfZiEoW2Y2NDsgMl06 IGY2NHgyLCBtNjR4MiB8IGY2NCB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9t OiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngyLCB1MzJ4MiwgZjMyeDIgfAotLSAgICAg ICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAyIGBmNjRgIGxhbmVzLgotLSk7Ci0taW1wbF9t IShbbTY0OyAyXTogbTY0eDIgfCBpNjQsIHU4IHwgdGVzdF92MTI4IHwgeDAsIHgxIHwKLS0gICAg ICAgIEZyb206IG04eDIsIG0xNngyLCBtMzJ4MiwgbTEyOHgyIHwKLS0gICAgICAgIC8vLyBBIDEy OC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtNjRgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShb aTEyODsgMV06IGkxMjh4MSwgbTEyOHgxIHwgaTEyOCwgdTggfCB0ZXN0X3YxMjggfCB4MCB8Ci0t ICAgICAgICBGcm9tOiAvKmk4eDEsIHU4eDEsIGkxNngxLCB1MTZ4MSwgaTMyeDEsIHUzMngxLCBp NjR4MSwgdTY0eDEgKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCi0tICAg ICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDEgYGkxMjhgIGxhbmUuCi0tKTsKLS1pbXBs X3UhKFt1MTI4OyAxXTogdTEyOHgxLCBtMTI4eDEgfCB1MTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgw IHwKLS0gICAgICAgIEZyb206IC8qdTh4MSwgdTE2eDEsIHUzMngxLCB1NjR4MSAqLyB8IC8vIEZJ WE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKLS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVj dG9yIHdpdGggMSBgdTEyOGAgbGFuZS4KLS0pOwotLWltcGxfbSEoW20xMjg7IDFdOiBtMTI4eDEg fCBpMTI4LCB1OCB8IHRlc3RfdjEyOCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8qbTh4MSwgbTE2 eDEsIG0zMngxLCBtNjR4MSAqLyB8IC8vIEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMK LS0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAxIGBtMTI4YCBsYW5lLgot LSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjE2LnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTYucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAw MDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxNi5y cwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMTYgKzAsMCBAQAot LS8vISAxNi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1w bF9pIShbaTg7IDJdOiBpOHgyLCBtOHgyIHwgaTgsIHU4IHwgdGVzdF92MTYgfCB4MCwgeDEgfAot LSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciB3aXRoIDIgYGk4 YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3U4OyAyXTogdTh4MiwgbTh4MiB8IHU4LCB1OCB8IHRl c3RfdjE2IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDE2LWJp dCB2ZWN0b3Igd2l0aCAyIGB1OGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttODsgMl06IG04eDIg fCBpOCwgdTggfCB0ZXN0X3YxNiB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBtMTZ4MiwgbTMy eDIsIG02NHgyLCBtMTI4eDIgfAotLSAgICAgICAgLy8vIEEgMTYtYml0IHZlY3RvciBtYXNrIHdp dGggMiBgbThgIGxhbmVzLgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvdjI1Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Yy NTYucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YyNTYucnMJMjAy NS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL3YyNTYucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAz MDAKLUBAIC0xLDg2ICswLDAgQEAKLS0vLyEgMjU2LWJpdCB3aWRlIHZlY3RvciB0eXBlcwotLSNb cnVzdGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0taW1wbF9pIShbaTg7IDMyXTog aTh4MzIsIG04eDMyIHwgaTgsIHUzMiB8IHRlc3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgx NSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQs IHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8Ci0tICAgICAgICBGcm9tOiB8Ci0t ICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDMyIGBpOGAgbGFuZXMuCi0tKTsKLS1p bXBsX3UhKFt1ODsgMzJdOiB1OHgzMiwgbTh4MzIgfCB1OCwgdTMyIHwgdGVzdF92MjU2IHwKLS0g ICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwg eDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgy MSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKLS0g ICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMzIgYHU4 YCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW204OyAzMl06IG04eDMyIHwgaTgsIHUzMiB8IHRlc3Rf djI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwg eDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgx OSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAs IHgzMSB8Ci0tICAgICAgICBGcm9tOiAgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Ig bWFzayB3aXRoIDMyIGBtOGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTY7IDE2XTogaTE2 eDE2LCBtMTZ4MTYgfCBpMTYsIHUxNiB8IHRlc3RfdjI1NiB8Ci0tICAgICAgICB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgx NSB8Ci0tICAgICAgICBGcm9tOiBpOHgxNiwgdTh4MTYgfAotLSAgICAgICAgLy8vIEEgMjU2LWJp dCB2ZWN0b3Igd2l0aCAxNiBgaTE2YCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3UxNjsgMTZdOiB1 MTZ4MTYsIG0xNngxNiB8IHUxNiwgdTE2IHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwg eDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwg eDE1IHwKLS0gICAgICAgIEZyb206IHU4eDE2IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVj dG9yIHdpdGggMTYgYHUxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttMTY7IDE2XTogbTE2eDE2 IHwgaTE2LCB1MTYgfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAg ICAgRnJvbTogbTh4MTYgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRo IDE2IGBtMTZgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTMyOyA4XTogaTMyeDgsIG0zMng4 IHwgaTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyAg fAotLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4IHwKLS0gICAgICAgIC8v LyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggOCBgaTMyYCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3Uz MjsgOF06IHUzMng4LCBtMzJ4OCB8IHUzMiwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4 MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogdTh4OCwgdTE2eDggfAotLSAgICAg ICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA4IGB1MzJgIGxhbmVzLgotLSk7Ci0taW1wbF9m IShbZjMyOyA4XTogZjMyeDgsIG0zMng4IHwgZjMyIHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4Miwg eDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZyb206IGk4eDgsIHU4eDgsIGkxNng4LCB1 MTZ4OCB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDggYGYzMmAgbGFuZXMu Ci0tKTsKLS1pbXBsX20hKFttMzI7IDhdOiBtMzJ4OCB8IGkzMiwgdTggfCB0ZXN0X3YyNTYgfCB4 MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogbTh4OCwgbTE2 eDggfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG0zMmAgbGFu ZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpNjQ7IDRdOiBpNjR4NCwgbTY0eDQgfCBpNjQsIHU4IHwg dGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwg aTE2eDQsIHUxNng0LCBpMzJ4NCwgdTMyeDQgfAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0 b3Igd2l0aCA0IGBpNjRgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTY0OyA0XTogdTY0eDQsIG02 NHg0IHwgdTY0LCB1OCB8IHRlc3RfdjI1NiB8IHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZy b206IHU4eDQsIHUxNng0LCB1MzJ4NCB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3 aXRoIDQgYHU2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX2YhKFtmNjQ7IDRdOiBmNjR4NCwgbTY0eDQg fCBmNjQgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0 LCB1OHg0LCBpMTZ4NCwgdTE2eDQsIGkzMng0LCB1MzJ4NCwgZjMyeDQgfAotLSAgICAgICAgLy8v IEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA0IGBmNjRgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTY0 OyA0XTogbTY0eDQgfCBpNjQsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMgfAotLSAg ICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG0zMng0IHwKLS0gICAgICAgIC8vLyBBIDI1Ni1iaXQg dmVjdG9yIG1hc2sgd2l0aCA0IGBtNjRgIGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTEyODsg Ml06IGkxMjh4MiwgbTEyOHgyIHwgaTEyOCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAotLSAg ICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUxNngyLCBpMzJ4MiwgdTMyeDIsIGk2NHgy LCB1NjR4MiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDIgYGkxMjhgIGxh bmVzLgotLSk7Ci0taW1wbF91IShbdTEyODsgMl06IHUxMjh4MiwgbTEyOHgyIHwgdTEyOCwgdTgg fCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogdTh4MiwgdTE2eDIsIHUzMngy LCB1NjR4MiB8Ci0tICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDIgYHUxMjhgIGxh bmVzLgotLSk7Ci0taW1wbF9tIShbbTEyODsgMl06IG0xMjh4MiB8IGkxMjgsIHU4IHwgdGVzdF92 MjU2IHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IG04eDIsIG0xNngyLCBtMzJ4MiwgbTY0eDIg fAotLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDIgYG0xMjhgIGxhbmVz LgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMy LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMyLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MzIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Yz Mi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsMjkgKzAsMCBA QAotLS8vISAzMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0KLS11c2UgY3JhdGU6Oio7Ci0tCi0t aW1wbF9pIShbaTg7IDRdOiBpOHg0LCBtOHg0IHwgaTgsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEs IHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSAzMi1iaXQgdmVjdG9y IHdpdGggNCBgaThgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTg7IDRdOiB1OHg0LCBtOHg0IHwg dTgsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiB8Ci0t ICAgICAgICAvLy8gQSAzMi1iaXQgdmVjdG9yIHdpdGggNCBgdThgIGxhbmVzLgotLSk7Ci0taW1w bF9tIShbbTg7IDRdOiBtOHg0IHwgaTgsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEsIHgyLCB4MyB8 Ci0tICAgICAgICBGcm9tOiBtMTZ4NCwgbTMyeDQsIG02NHg0IHwKLS0gICAgICAgIC8vLyBBIDMy LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG04YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2kx NjsgMl06IGkxNngyLCBtMTZ4MiB8IGkxNiwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSB8Ci0tICAg ICAgICBGcm9tOiBpOHgyLCB1OHgyIHwKLS0gICAgICAgIC8vLyBBIDMyLWJpdCB2ZWN0b3Igd2l0 aCAyIGBpMTZgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTE2OyAyXTogdTE2eDIsIG0xNngyIHwg dTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKLS0gICAgICAgIEZyb206IHU4eDIgfAotLSAg ICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDIgYHUxNmAgbGFuZXMuCi0tKTsKLS1pbXBs X20hKFttMTY7IDJdOiBtMTZ4MiB8IGkxNiwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4MSB8Ci0tICAg ICAgICBGcm9tOiBtOHgyLCBtMzJ4MiwgbTY0eDIsIG0xMjh4MiB8Ci0tICAgICAgICAvLy8gQSAz Mi1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtMTZgIGxhbmVzLgotLSk7Ci1kaWZmIC1OcmJ1IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL3Y1MTIucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3Y1MTIucnMJMjAyNS0wNC0yMCAxOToyODoxMy4wMDAwMDAwMDAgKzAzMDAKLSsr KyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y1MTIucnMJMTk3MC0wMS0wMSAw MzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBAIC0xLDk5ICswLDAgQEAKLS0vLyEgNTEyLWJpdCB3 aWRlIHZlY3RvciB0eXBlcwotLSNbcnVzdGZtdDo6c2tpcF0KLS0KLS11c2UgY3JhdGU6Oio7Ci0t Ci0taW1wbF9pIShbaTg7IDY0XTogaTh4NjQsIG04eDY0IHwgaTgsIHU2NCB8IHRlc3RfdjUxMiB8 Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4 MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIw LCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSwK LS0gICAgICAgIHgzMiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0 MSwgeDQyLCB4NDMsIHg0NCwgeDQ1LCB4NDYsIHg0NywKLS0gICAgICAgIHg0OCwgeDQ5LCB4NTAs IHg1MSwgeDUyLCB4NTMsIHg1NCwgeDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4 NjIsIHg2MyB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3Rv ciB3aXRoIDY0IGBpOGAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1ODsgNjRdOiB1OHg2NCwgbTh4 NjQgfCB1OCwgdTY0IHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwg eDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAg ICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYs IHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAotLSAgICAgICAgeDMyLCB4MzMsIHgzNCwgeDM1LCB4 MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0MywgeDQ0LCB4NDUsIHg0NiwgeDQ3 LAotLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1MywgeDU0LCB4NTUsIHg1Niwg eDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKLS0gICAgICAgIEZyb206IHwKLS0g ICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggNjQgYHU4YCBsYW5lcy4KLS0pOwotLWlt cGxfbSEoW204OyA2NF06IG04eDY0IHwgaTgsIHU2NCB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4 MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEz LCB4MTQsIHgxNSwKLS0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwg eDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSwKLS0gICAgICAgIHgz MiwgeDMzLCB4MzQsIHgzNSwgeDM2LCB4MzcsIHgzOCwgeDM5LCB4NDAsIHg0MSwgeDQyLCB4NDMs IHg0NCwgeDQ1LCB4NDYsIHg0NywKLS0gICAgICAgIHg0OCwgeDQ5LCB4NTAsIHg1MSwgeDUyLCB4 NTMsIHg1NCwgeDU1LCB4NTYsIHg1NywgeDU4LCB4NTksIHg2MCwgeDYxLCB4NjIsIHg2MyB8Ci0t ICAgICAgICBGcm9tOiAgfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRo IDY0IGBtOGAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpMTY7IDMyXTogaTE2eDMyLCBtMTZ4 MzIgfCBpMTYsIHUzMiB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQs IHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKLS0gICAg ICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2 LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8Ci0tICAgICAgICBGcm9tOiBpOHgzMiwgdTh4MzIg fAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAzMiBgaTE2YCBsYW5lcy4KLS0p OwotLWltcGxfdSEoW3UxNjsgMzJdOiB1MTZ4MzIsIG0xNngzMiB8IHUxNiwgdTMyIHwgdGVzdF92 NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4 MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAotLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5 LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwg eDMxIHwKLS0gICAgICAgIEZyb206IHU4eDMyIHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVj dG9yIHdpdGggMzIgYHUxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttMTY7IDMyXTogbTE2eDMy IHwgaTE2LCB1MzIgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCi0tICAgICAg ICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwg eDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAotLSAgICAgICAgRnJvbTogbTh4MzIgfAotLSAgICAg ICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDMyIGBtMTZgIGxhbmVzLgotLSk7Ci0t Ci0taW1wbF9pIShbaTMyOyAxNl06IGkzMngxNiwgbTMyeDE2IHwgaTMyLCB1MTYgfCB0ZXN0X3Y1 MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgx MCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAgRnJvbTogaTh4MTYsIHU4eDE2 LCBpMTZ4MTYsIHUxNngxNiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDE2 IGBpMzJgIGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTMyOyAxNl06IHUzMngxNiwgbTMyeDE2IHwg dTMyLCB1MTYgfCB0ZXN0X3Y1MTIgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwg eDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAotLSAgICAgICAg RnJvbTogdTh4MTYsIHUxNngxNiB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRo IDE2IGB1MzJgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjMyOyAxNl06IGYzMngxNiwgbTMyeDE2 IHwgZjMyIHwgdGVzdF92NTEyIHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2 LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKLS0gICAgICAgIEZy b206IGk4eDE2LCB1OHgxNiwgaTE2eDE2LCB1MTZ4MTYgfAotLSAgICAgICAgLy8vIEEgNTEyLWJp dCB2ZWN0b3Igd2l0aCAxNiBgZjMyYCBsYW5lcy4KLS0pOwotLWltcGxfbSEoW20zMjsgMTZdOiBt MzJ4MTYgfCBpMzIsIHUxNiB8IHRlc3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4Mywg eDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8Ci0t ICAgICAgICBGcm9tOiBtOHgxNiwgbTE2eDE2IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVj dG9yIG1hc2sgd2l0aCAxNiBgbTMyYCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEoW2k2NDsgOF06 IGk2NHg4LCBtNjR4OCB8IGk2NCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQs IHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogaTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4LCBp MzJ4OCwgdTMyeDggfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA4IGBpNjRg IGxhbmVzLgotLSk7Ci0taW1wbF91IShbdTY0OyA4XTogdTY0eDgsIG02NHg4IHwgdTY0LCB1OCB8 IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBG cm9tOiB1OHg4LCB1MTZ4OCwgdTMyeDggfAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Ig d2l0aCA4IGB1NjRgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjY0OyA4XTogZjY0eDgsIG02NHg4 IHwgZjY0IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0g ICAgICAgIEZyb206IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4OCwgaTMyeDgsIHUzMng4LCBmMzJ4 OCB8Ci0tICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYGY2NGAgbGFuZXMuCi0t KTsKLS1pbXBsX20hKFttNjQ7IDhdOiBtNjR4OCB8IGk2NCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwg eDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogbTh4OCwgbTE2eDgs IG0zMng4IHwKLS0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCA4IGBtNjRg IGxhbmVzLgotLSk7Ci0tCi0taW1wbF9pIShbaTEyODsgNF06IGkxMjh4NCwgbTEyOHg0IHwgaTEy OCwgdTggfCB0ZXN0X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBpOHg0 LCB1OHg0LCBpMTZ4NCwgdTE2eDQsIGkzMng0LCB1MzJ4NCwgaTY0eDQsIHU2NHg0IHwKLS0gICAg ICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggNCBgaTEyOGAgbGFuZXMuCi0tKTsKLS1pbXBs X3UhKFt1MTI4OyA0XTogdTEyOHg0LCBtMTI4eDQgfCB1MTI4LCB1OCB8IHRlc3RfdjUxMiB8IHgw LCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IHU4eDQsIHUxNng0LCB1MzJ4NCwgdTY0eDQg fAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCA0IGB1MTI4YCBsYW5lcy4KLS0p OwotLWltcGxfbSEoW20xMjg7IDRdOiBtMTI4eDQgfCBpMTI4LCB1OCB8IHRlc3RfdjUxMiB8IHgw LCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IG04eDQsIG0xNng0LCBtMzJ4NCwgbTY0eDQg fAotLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG0xMjhgIGxhbmVz LgotLSk7Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0 LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMJMjAyNS0wNC0yMCAxOToyODoxMy4w MDAwMDAwMDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y2 NC5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotQEAgLTEsNjYgKzAsMCBA QAotLS8vISA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0t dXNlIHN1cGVyOjoqOwotLQotLWltcGxfaSEoW2k4OyA4XTogaTh4OCwgbTh4OCB8IGk4LCB1OCB8 IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKLS0gICAgICAgIEZy b206IHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCA4IGBpOGAgbGFuZXMuCi0t KTsKLS1pbXBsX3UhKFt1ODsgOF06IHU4eDgsIG04eDggfCB1OCwgdTggfCB0ZXN0X3Y2NCB8IHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8Ci0tICAgICAgICBGcm9tOiB8Ci0tICAgICAg ICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggOCBgdThgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShb bTg7IDhdOiBtOHg4IHwgaTgsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1 LCB4NiwgeDcgfAotLSAgICAgICAgRnJvbTogbTE2eDgsIG0zMng4IHwKLS0gICAgICAgIC8vLyBB IDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG04YCBsYW5lcy4KLS0pOwotLQotLWltcGxfaSEo W2kxNjsgNF06IGkxNng0LCBtMTZ4NCB8IGkxNiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIs IHgzIHwKLS0gICAgICAgIEZyb206IGk4eDQsIHU4eDQgfAotLSAgICAgICAgLy8vIEEgNjQtYml0 IHZlY3RvciB3aXRoIDQgYGkxNmAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1MTY7IDRdOiB1MTZ4 NCwgbTE2eDQgfCB1MTYsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAg ICBGcm9tOiB1OHg0IHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCA0IGB1MTZg IGxhbmVzLgotLSk7Ci0taW1wbF9tIShbbTE2OyA0XTogbTE2eDQgfCBpMTYsIHU4IHwgdGVzdF92 NjQgfCB4MCwgeDEsIHgyLCB4MyB8Ci0tICAgICAgICBGcm9tOiBtOHg0LCBtMzJ4NCwgbTY0eDQg fAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTE2YCBsYW5lcy4K LS0pOwotLQotLWltcGxfaSEoW2kzMjsgMl06IGkzMngyLCBtMzJ4MiB8IGkzMiwgdTggfCB0ZXN0 X3Y2NCB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIg fAotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDIgYGkzMmAgbGFuZXMuCi0tKTsK LS1pbXBsX3UhKFt1MzI7IDJdOiB1MzJ4MiwgbTMyeDIgfCB1MzIsIHU4IHwgdGVzdF92NjQgfCB4 MCwgeDEgfAotLSAgICAgICAgRnJvbTogdTh4MiwgdTE2eDIgfAotLSAgICAgICAgLy8vIEEgNjQt Yml0IHZlY3RvciB3aXRoIDIgYHUzMmAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttMzI7IDJdOiBt MzJ4MiB8IGkzMiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSB8Ci0tICAgICAgICBGcm9tOiBtOHgy LCBtMTZ4MiwgbTY0eDIsIG0xMjh4MiB8Ci0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1h c2sgd2l0aCAyIGBtMzJgIGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjMyOyAyXTogZjMyeDIsIG0z MngyIHwgZjMyIHwgdGVzdF92NjQgfCB4MCwgeDEgfAotLSAgICAgICAgRnJvbTogaTh4MiwgdTh4 MiwgaTE2eDIsIHUxNngyIHwKLS0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCAyIGBm MzJgIGxhbmVzLgotLSk7Ci0tCi0tLyoKLS1pbXBsX2khKFtpNjQ7IDFdOiBpNjR4MSwgbTY0eDEg fCBpNjQsIHU4IHwgdGVzdF92NjQgfCB4MCB8Ci0tICAgICAgICBGcm9tOiAvKmk4eDEsIHU4eDEs IGkxNngxLCB1MTZ4MSwgaTMyeDEsIHUzMngxKi8gfCAgLy8gRklYTUU6IHByaW1pdGl2ZSB0byB2 ZWN0b3IgY29udmVyc2lvbgotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDEgYGk2 NGAgbGFuZXMuCi0tKTsKLS1pbXBsX3UhKFt1NjQ7IDFdOiB1NjR4MSwgbTY0eDEgfCB1NjQsIHU4 IHwgdGVzdF92NjQgfCB4MCB8Ci0tICAgICAgICBGcm9tOiAvKnU4eDEsIHUxNngxLCB1MzJ4MSov IHwgLy8gRklYTUU6IHByaW1pdGl2ZSB0byB2ZWN0b3IgY29udmVyc2lvbgotLSAgICAgICAgLy8v IEEgNjQtYml0IHZlY3RvciB3aXRoIDEgYHU2NGAgbGFuZXMuCi0tKTsKLS1pbXBsX20hKFttNjQ7 IDFdOiBtNjR4MSB8IGk2NCwgdTggfCB0ZXN0X3Y2NCB8IHgwIHwKLS0gICAgICAgIEZyb206IC8q bTh4MSwgbTE2eDEsIG0zMngxLCAqLyBtMTI4eDEgfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVj dG9yIHR5cGVzCi0tICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1hc2sgd2l0aCAxIGBtNjRg IGxhbmVzLgotLSk7Ci0taW1wbF9mIShbZjY0OyAxXTogZjY0eDEsIG02NHgxIHwgZjY0IHwgdGVz dF92NjQgfCB4MCB8Ci0tICAgICAgICBGcm9tOiAvKmk4eDEsIHU4eDEsIGkxNngxLCB1MTZ4MSwg aTMyeDEsIHUzMngxLCBmMzJ4MSovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxsIHZlY3RvciB0eXBl cwotLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciB3aXRoIDEgYGY2NGAgbGFuZXMuCi0tKTsK LS0qLwotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZQdHIu cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92UHRyLnJzCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92UHRyLnJzCTIwMjUtMDQtMjAgMTk6Mjg6MTMu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92 UHRyLnJzCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwzNCArMCww IEBACi0tLy8hIFZlY3RvcnMgb2YgcG9pbnRlcnMKLS0jW3J1c3RmbXQ6OnNraXBdCi0tCi0tdXNl IGNyYXRlOjoqOwotLQotLWltcGxfY29uc3RfcCEoCi0tICAgIFsqY29uc3QgVDsgMl06IGNwdHJ4 MiwgbXNpemV4MiwgdXNpemV4MiwgaXNpemV4MiB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8IEZyb206 IHwKLS0gICAgLy8vIEEgdmVjdG9yIHdpdGggMiBgKmNvbnN0IFRgIGxhbmVzCi0tKTsKLS0KLS1p bXBsX211dF9wISgKLS0gICAgWyptdXQgVDsgMl06IG1wdHJ4MiwgbXNpemV4MiwgdXNpemV4Miwg aXNpemV4MiB8IHRlc3RfdjEyOCB8IHgwLCB4MSB8IEZyb206IHwKLS0gICAgLy8vIEEgdmVjdG9y IHdpdGggMiBgKm11dCBUYCBsYW5lcwotLSk7Ci0tCi0taW1wbF9jb25zdF9wISgKLS0gICAgWypj b25zdCBUOyA0XTogY3B0cng0LCBtc2l6ZXg0LCB1c2l6ZXg0LCBpc2l6ZXg0IHwgdGVzdF92MjU2 IHwgeDAsIHgxLCB4MiwgeDMgfCBGcm9tOiB8Ci0tICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYCpj b25zdCBUYCBsYW5lcwotLSk7Ci0tCi0taW1wbF9tdXRfcCEoCi0tICAgIFsqbXV0IFQ7IDRdOiBt cHRyeDQsIG1zaXpleDQsIHVzaXpleDQsIGlzaXpleDQgfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgy LCB4MyB8IEZyb206IHwKLS0gICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgKm11dCBUYCBsYW5lcwot LSk7Ci0tCi0taW1wbF9jb25zdF9wISgKLS0gICAgWypjb25zdCBUOyA4XTogY3B0cng4LCBtc2l6 ZXg4LCB1c2l6ZXg4LCBpc2l6ZXg4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4 NSwgeDYsIHg3IHwgRnJvbTogfAotLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGAqY29uc3QgVGAg bGFuZXMKLS0pOwotLQotLWltcGxfbXV0X3AhKAotLSAgICBbKm11dCBUOyA4XTogbXB0cng4LCBt c2l6ZXg4LCB1c2l6ZXg4LCBpc2l6ZXg4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMsIHg0 LCB4NSwgeDYsIHg3IHwgRnJvbTogfAotLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGAqbXV0IFRg IGxhbmVzCi0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy92U2l6ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3ZTaXplLnJzCi0t LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92U2l6ZS5ycwkyMDI1LTA0LTIw IDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvdlNpemUucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLUBA IC0xLDUzICswLDAgQEAKLS0vLyEgVmVjdG9ycyB3aXRoIHBvaW50ZXItc2l6ZWQgZWxlbWVudHMK LS0KLS11c2UgY3JhdGU6OmNvZGVnZW46OnBvaW50ZXJfc2l6ZWRfaW50Ojp7aXNpemVfLCB1c2l6 ZV99OwotLXVzZSBjcmF0ZTo6KjsKLS0KLS1pbXBsX2khKFtpc2l6ZTsgMl06IGlzaXpleDIsIG1z aXpleDIgfCBpc2l6ZV8sIHU4IHwgdGVzdF92MTI4IHwKLS0gICAgICAgIHgwLCB4MXwKLS0gICAg ICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDIgYGlzaXplYCBsYW5lcy4K LS0pOwotLQotLWltcGxfdSEoW3VzaXplOyAyXTogdXNpemV4MiwgbXNpemV4MiB8IHVzaXplXywg dTggfCB0ZXN0X3YxMjggfAotLSAgICAgICAgeDAsIHgxfAotLSAgICAgICAgRnJvbTogfAotLSAg ICAgICAgLy8vIEEgdmVjdG9yIHdpdGggMiBgdXNpemVgIGxhbmVzLgotLSk7Ci0taW1wbF9tIShb bXNpemU7IDJdOiBtc2l6ZXgyIHwgaXNpemVfLCB1OCB8IHRlc3RfdjEyOCB8Ci0tICAgICAgICB4 MCwgeDEgfAotLSAgICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIG1hc2sgd2l0 aCAyIGBtc2l6ZWAgbGFuZXMuCi0tKTsKLS0KLS1pbXBsX2khKFtpc2l6ZTsgNF06IGlzaXpleDQs IG1zaXpleDQgfCBpc2l6ZV8sIHU4IHwgdGVzdF92MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIs IHgzIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAgICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYGlz aXplYCBsYW5lcy4KLS0pOwotLWltcGxfdSEoW3VzaXplOyA0XTogdXNpemV4NCwgbXNpemV4NCB8 IHVzaXplXywgdTggfCB0ZXN0X3YyNTYgfAotLSAgICAgICAgeDAsIHgxLCB4MiwgeDN8Ci0tICAg ICAgICBGcm9tOiB8Ci0tICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGB1c2l6ZWAgbGFuZXMu Ci0tKTsKLS1pbXBsX20hKFttc2l6ZTsgNF06IG1zaXpleDQgfCBpc2l6ZV8sIHU4IHwgdGVzdF92 MjU2IHwKLS0gICAgICAgIHgwLCB4MSwgeDIsIHgzIHwKLS0gICAgICAgIEZyb206IHwKLS0gICAg ICAgIC8vLyBBIHZlY3RvciBtYXNrIHdpdGggNCBgbXNpemVgIGxhbmVzLgotLSk7Ci0tCi0taW1w bF9pIShbaXNpemU7IDhdOiBpc2l6ZXg4LCBtc2l6ZXg4IHwgaXNpemVfLCB1OCB8IHRlc3RfdjUx MiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAgICAg RnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgaXNpemVgIGxhbmVzLgotLSk7 Ci0taW1wbF91IShbdXNpemU7IDhdOiB1c2l6ZXg4LCBtc2l6ZXg4IHwgdXNpemVfLCB1OCB8IHRl c3RfdjUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAg ICAgICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgdXNpemVgIGxhbmVz LgotLSk7Ci0taW1wbF9tIShbbXNpemU7IDhdOiBtc2l6ZXg4IHwgaXNpemVfLCB1OCB8IHRlc3Rf djUxMiB8Ci0tICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAotLSAgICAg ICAgRnJvbTogfAotLSAgICAgICAgLy8vIEEgdmVjdG9yIG1hc2sgd2l0aCA4IGBtc2l6ZWAgbGFu ZXMuCi0tKTsKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3Rz L2VuZGlhbm5lc3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3RzL2VuZGlh bm5lc3MucnMKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFu bmVzcy5ycwkyMDI1LTA0LTIwIDE5OjI4OjEzLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC90ZXN0cy9lbmRpYW5uZXNzLnJzCTE5NzAtMDEtMDEgMDM6 MDA6MDAuMDAwMDAwMDAwICswMzAwCi1AQCAtMSwyNjggKzAsMCBAQAotLSNbY2ZnKHRhcmdldF9h cmNoID0gIndhc20zMiIpXQotLXVzZSB3YXNtX2JpbmRnZW5fdGVzdDo6KjsKLS0KLS11c2UgcGFj a2VkX3NpbWQ6Oio7Ci0tdXNlIHN0ZDo6e21lbSwgc2xpY2V9OwotLQotLSNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0jW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS1mbiBlbmRpYW5faW5kZXhpbmcoKSB7 Ci0tICAgIGxldCB2ID0gaTMyeDQ6Om5ldygwLCAxLCAyLCAzKTsKLS0gICAgYXNzZXJ0X2VxISh2 LmV4dHJhY3QoMCksIDApOwotLSAgICBhc3NlcnRfZXEhKHYuZXh0cmFjdCgxKSwgMSk7Ci0tICAg IGFzc2VydF9lcSEodi5leHRyYWN0KDIpLCAyKTsKLS0gICAgYXNzZXJ0X2VxISh2LmV4dHJhY3Qo MyksIDMpOwotLX0KLS0KLS0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldCi0tI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCi0tZm4gZW5kaWFuX2JpdGNhc3RzKCkgewotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0t ICAgIGxldCB4ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcs Ci0tICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBs ZXQgdDogaTE2eDggPSB1bnNhZmUgeyBtZW06OnRyYW5zbXV0ZSh4KSB9OwotLSAgICBsZXQgZTog aTE2eDggPSBpZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgewotLSAgICAgICAgaTE2 eDg6Om5ldygyNTYsIDc3MCwgMTI4NCwgMTc5OCwgMjMxMiwgMjgyNiwgMzM0MCwgMzg1NCkKLS0g ICAgfSBlbHNlIHsKLS0gICAgICAgIGkxNng4OjpuZXcoMSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3 LCAyNTcxLCAzMDg1LCAzNTk5KQotLSAgICB9OwotLSAgICBhc3NlcnRfZXEhKHQsIGUpOwotLX0K LS0KLS0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCi0tI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCi0tZm4g ZW5kaWFuX2Nhc3RzKCkgewotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB4ID0gaTh4 MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5 LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBsZXQgdDogaTE2eDE2ID0g eC5pbnRvKCk7IC8vIHNpbWRfY2FzdAotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCBl ID0gaTE2eDE2OjpuZXcoCi0tICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAg ICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKLS0gICAgKTsKLS0gICAgYXNzZXJ0X2Vx ISh0LCBlKTsKLS19Ci0tCi0tI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQotLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2Vu X3Rlc3QpXQotLWZuIGVuZGlhbl9sb2FkX2FuZF9zdG9yZXMoKSB7Ci0tICAgICNbcnVzdGZtdDo6 c2tpcF0KLS0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAotLSAgICAgICAgMCwgMSwgMiwgMywgNCwg NSwgNiwgNywKLS0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCi0tICAgICk7 Ci0tICAgIGxldCBtdXQgeTogW2kxNjsgOF0gPSBbMDsgOF07Ci0tICAgIHgud3JpdGVfdG9fc2xp Y2VfdW5hbGlnbmVkKHVuc2FmZSB7IHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQoJm11dCB5IGFz ICptdXQgXyBhcyAqbXV0IGk4LCAxNikgfSk7Ci0tCi0tICAgIGxldCBlOiBbaTE2OyA4XSA9IGlm IGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7Ci0tICAgICAgICBbMjU2LCA3NzAsIDEy ODQsIDE3OTgsIDIzMTIsIDI4MjYsIDMzNDAsIDM4NTRdCi0tICAgIH0gZWxzZSB7Ci0tICAgICAg ICBbMSwgNTE1LCAxMDI5LCAxNTQzLCAyMDU3LCAyNTcxLCAzMDg1LCAzNTk5XQotLSAgICB9Owot LSAgICBhc3NlcnRfZXEhKHksIGUpOwotLQotLSAgICBsZXQgeiA9IGk4eDE2Ojpmcm9tX3NsaWNl X3VuYWxpZ25lZCh1bnNhZmUgeyBzbGljZTo6ZnJvbV9yYXdfcGFydHMoJnkgYXMgKmNvbnN0IF8g YXMgKmNvbnN0IGk4LCAxNikgfSk7Ci0tICAgIGFzc2VydF9lcSEoeiwgeCk7Ci0tfQotLQotLSNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KLS0jW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KLS1mbiBlbmRpYW5f YXJyYXlfdW5pb24oKSB7Ci0tICAgIHVuaW9uIEEgewotLSAgICAgICAgZGF0YTogW2YzMjsgNF0s Ci0tICAgICAgICB2ZWM6IGYzMng0LAotLSAgICB9Ci0tICAgIGxldCB4OiBbZjMyOyA0XSA9IHVu c2FmZSB7IEEgeyB2ZWM6IGYzMng0OjpuZXcoMC4sIDEuLCAyLiwgMy4pIH0uZGF0YSB9OwotLSAg ICAvLyBBcyBhbGwgb2YgdGhlc2UgYXJlIGludGVnZXIgdmFsdWVzIHdpdGhpbiB0aGUgbWFudGlz c2FeMSByYW5nZSwgaXQKLS0gICAgLy8gd291bGQgYmUgdmVyeSB1bnVzdWFsIGZvciB0aGVtIHRv IGFjdHVhbGx5IGZhaWwgdG8gY29tcGFyZS4KLS0gICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2Nt cCldCi0tICAgIHsKLS0gICAgICAgIGFzc2VydF9lcSEoeFswXSwgMF9mMzIpOwotLSAgICAgICAg YXNzZXJ0X2VxISh4WzFdLCAxX2YzMik7Ci0tICAgICAgICBhc3NlcnRfZXEhKHhbMl0sIDJfZjMy KTsKLS0gICAgICAgIGFzc2VydF9lcSEoeFszXSwgM19mMzIpOwotLSAgICB9Ci0tICAgIGxldCB5 OiBmMzJ4NCA9IHVuc2FmZSB7IEEgeyBkYXRhOiBbMy4sIDIuLCAxLiwgMC5dIH0udmVjIH07Ci0t ICAgIGFzc2VydF9lcSEoeSwgZjMyeDQ6Om5ldygzLiwgMi4sIDEuLCAwLikpOwotLQotLSAgICB1 bmlvbiBCIHsKLS0gICAgICAgIGRhdGE6IFtpODsgMTZdLAotLSAgICAgICAgdmVjOiBpOHgxNiwK LS0gICAgfQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB4ID0gaTh4MTY6Om5ldygK LS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAxMCwgMTEs IDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBsZXQgeDogW2k4OyAxNl0gPSB1bnNhZmUg eyBCIHsgdmVjOiB4IH0uZGF0YSB9OwotLQotLSAgICBmb3IgKGksIHYpIGluIHguaXRlcigpLmVu dW1lcmF0ZSgpIHsKLS0gICAgICAgIGFzc2VydF9lcSEoaSBhcyBpOCwgKnYpOwotLSAgICB9Ci0t Ci0tICAgICNbcnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IHkgPSBbCi0tICAgICAgICAxNSwgMTQs IDEzLCAxMiwgMTEsIDE5LCA5LCA4LAotLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwgMSwgMAot LSAgICBdOwotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCBlID0gaTh4MTY6Om5ldygK LS0gICAgICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTksIDksIDgsCi0tICAgICAgICA3LCA2LCA1 LCA0LCAzLCAyLCAxLCAwCi0tICAgICk7Ci0tICAgIGxldCB6ID0gdW5zYWZlIHsgQiB7IGRhdGE6 IHkgfS52ZWMgfTsKLS0gICAgYXNzZXJ0X2VxISh6LCBlKTsKLS0KLS0gICAgdW5pb24gQyB7Ci0t ICAgICAgICBkYXRhOiBbaTE2OyA4XSwKLS0gICAgICAgIHZlYzogaTh4MTYsCi0tICAgIH0KLS0g ICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCi0tICAgICAgICAw LCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0 LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IHg6IFtpMTY7IDhdID0gdW5zYWZlIHsgQyB7IHZlYzog eCB9LmRhdGEgfTsKLS0KLS0gICAgbGV0IGU6IFtpMTY7IDhdID0gaWYgY2ZnISh0YXJnZXRfZW5k aWFuID0gImxpdHRsZSIpIHsKLS0gICAgICAgIFsyNTYsIDc3MCwgMTI4NCwgMTc5OCwgMjMxMiwg MjgyNiwgMzM0MCwgMzg1NF0KLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIFsxLCA1MTUsIDEwMjks IDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1OTldCi0tICAgIH07Ci0tICAgIGFzc2VydF9lcSEo eCwgZSk7Ci0tfQotLQotLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0KLS0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KLS1mbiBlbmRpYW5fdHVwbGVfYWNjZXNzKCkgewotLSAgICB0eXBlIEYzMng0VCA9IChm MzIsIGYzMiwgZjMyLCBmMzIpOwotLSAgICB1bmlvbiBBIHsKLS0gICAgICAgIGRhdGE6IEYzMng0 VCwKLS0gICAgICAgIHZlYzogZjMyeDQsCi0tICAgIH0KLS0gICAgbGV0IHg6IEYzMng0VCA9IHVu c2FmZSB7IEEgeyB2ZWM6IGYzMng0OjpuZXcoMC4sIDEuLCAyLiwgMy4pIH0uZGF0YSB9OwotLSAg ICAvLyBBcyBhbGwgb2YgdGhlc2UgYXJlIGludGVnZXIgdmFsdWVzIHdpdGhpbiB0aGUgbWFudGlz c2FeMSByYW5nZSwgaXQKLS0gICAgLy8gd291bGQgYmUgdmVyeSB1bnVzdWFsIGZvciB0aGVtIHRv IGFjdHVhbGx5IGZhaWwgdG8gY29tcGFyZS4KLS0gICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2Nt cCldCi0tICAgIHsKLS0gICAgICAgIGFzc2VydF9lcSEoeC4wLCAwX2YzMik7Ci0tICAgICAgICBh c3NlcnRfZXEhKHguMSwgMV9mMzIpOwotLSAgICAgICAgYXNzZXJ0X2VxISh4LjIsIDJfZjMyKTsK LS0gICAgICAgIGFzc2VydF9lcSEoeC4zLCAzX2YzMik7Ci0tICAgIH0KLS0gICAgbGV0IHk6IGYz Mng0ID0gdW5zYWZlIHsgQSB7IGRhdGE6ICgzLiwgMi4sIDEuLCAwLikgfS52ZWMgfTsKLS0gICAg YXNzZXJ0X2VxISh5LCBmMzJ4NDo6bmV3KDMuLCAyLiwgMS4sIDAuKSk7Ci0tCi0tICAgICNbcnVz dGZtdDo6c2tpcF0KLS0gICAgdHlwZSBJOHgxNlQgPSAoaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwg aTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgpOwotLSAgICB1bmlvbiBCIHsK LS0gICAgICAgIGRhdGE6IEk4eDE2VCwKLS0gICAgICAgIHZlYzogaTh4MTYsCi0tICAgIH0KLS0K LS0gICAgI1tydXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCi0tICAgICAg ICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LAotLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMs IDE0LCAxNSwKLS0gICAgKTsKLS0gICAgbGV0IHg6IEk4eDE2VCA9IHVuc2FmZSB7IEIgeyB2ZWM6 IHggfS5kYXRhIH07Ci0tCi0tICAgIGFzc2VydF9lcSEoeC4wLCAwKTsKLS0gICAgYXNzZXJ0X2Vx ISh4LjEsIDEpOwotLSAgICBhc3NlcnRfZXEhKHguMiwgMik7Ci0tICAgIGFzc2VydF9lcSEoeC4z LCAzKTsKLS0gICAgYXNzZXJ0X2VxISh4LjQsIDQpOwotLSAgICBhc3NlcnRfZXEhKHguNSwgNSk7 Ci0tICAgIGFzc2VydF9lcSEoeC42LCA2KTsKLS0gICAgYXNzZXJ0X2VxISh4LjcsIDcpOwotLSAg ICBhc3NlcnRfZXEhKHguOCwgOCk7Ci0tICAgIGFzc2VydF9lcSEoeC45LCA5KTsKLS0gICAgYXNz ZXJ0X2VxISh4LjEwLCAxMCk7Ci0tICAgIGFzc2VydF9lcSEoeC4xMSwgMTEpOwotLSAgICBhc3Nl cnRfZXEhKHguMTIsIDEyKTsKLS0gICAgYXNzZXJ0X2VxISh4LjEzLCAxMyk7Ci0tICAgIGFzc2Vy dF9lcSEoeC4xNCwgMTQpOwotLSAgICBhc3NlcnRfZXEhKHguMTUsIDE1KTsKLS0KLS0gICAgI1ty dXN0Zm10Ojpza2lwXQotLSAgICBsZXQgeSA9ICgKLS0gICAgICAgIDE1LCAxNCwgMTMsIDEyLCAx MSwgMTAsIDksIDgsCi0tICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwCi0tICAgICk7Ci0t ICAgIGxldCB6OiBpOHgxNiA9IHVuc2FmZSB7IEIgeyBkYXRhOiB5IH0udmVjIH07Ci0tICAgICNb cnVzdGZtdDo6c2tpcF0KLS0gICAgbGV0IGUgPSBpOHgxNjo6bmV3KAotLSAgICAgICAgMTUsIDE0 LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKLS0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAK LS0gICAgKTsKLS0gICAgYXNzZXJ0X2VxIShlLCB6KTsKLS0KLS0gICAgI1tydXN0Zm10Ojpza2lw XQotLSAgICB0eXBlIEkxNng4VCA9IChpMTYsIGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYs IGkxNik7Ci0tICAgIHVuaW9uIEMgewotLSAgICAgICAgZGF0YTogSTE2eDhULAotLSAgICAgICAg dmVjOiBpOHgxNiwKLS0gICAgfQotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB4 ID0gaTh4MTY6Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAg ICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBsZXQgeDogSTE2 eDhUID0gdW5zYWZlIHsgQyB7IHZlYzogeCB9LmRhdGEgfTsKLS0KLS0gICAgbGV0IGU6IFtpMTY7 IDhdID0gaWYgY2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKLS0gICAgICAgIFsyNTYs IDc3MCwgMTI4NCwgMTc5OCwgMjMxMiwgMjgyNiwgMzM0MCwgMzg1NF0KLS0gICAgfSBlbHNlIHsK LS0gICAgICAgIFsxLCA1MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1OTldCi0t ICAgIH07Ci0tICAgIGFzc2VydF9lcSEoeC4wLCBlWzBdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjEs IGVbMV0pOwotLSAgICBhc3NlcnRfZXEhKHguMiwgZVsyXSk7Ci0tICAgIGFzc2VydF9lcSEoeC4z LCBlWzNdKTsKLS0gICAgYXNzZXJ0X2VxISh4LjQsIGVbNF0pOwotLSAgICBhc3NlcnRfZXEhKHgu NSwgZVs1XSk7Ci0tICAgIGFzc2VydF9lcSEoeC42LCBlWzZdKTsKLS0gICAgYXNzZXJ0X2VxISh4 LjcsIGVbN10pOwotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgICNbcmVwcihDKV0KLS0g ICAgI1tkZXJpdmUoQ29weSAsQ2xvbmUpXQotLSAgICBwdWIgc3RydWN0IFR1cChwdWIgaTgsIHB1 YiBpOCwgcHViIGkxNiwgcHViIGk4LCBwdWIgaTgsIHB1YiBpMTYsCi0tICAgICAgICAgICAgICAg ICAgIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2LCBwdWIgaTgsIHB1YiBpOCwgcHViIGkxNik7Ci0t Ci0tICAgIHVuaW9uIEQgewotLSAgICAgICAgZGF0YTogVHVwLAotLSAgICAgICAgdmVjOiBpOHgx NiwKLS0gICAgfQotLQotLSAgICAjW3J1c3RmbXQ6OnNraXBdCi0tICAgIGxldCB4ID0gaTh4MTY6 Om5ldygKLS0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCi0tICAgICAgICA4LCA5LCAx MCwgMTEsIDEyLCAxMywgMTQsIDE1LAotLSAgICApOwotLSAgICBsZXQgeDogVHVwID0gdW5zYWZl IHsgRCB7IHZlYzogeCB9LmRhdGEgfTsKLS0KLS0gICAgbGV0IGU6IFtpMTY7IDEyXSA9IGlmIGNm ZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7Ci0tICAgICAgICBbMCwgMSwgNzcwLCA0LCA1 LCAxNzk4LCA4LCA5LCAyODI2LCAxMiwgMTMsIDM4NTRdCi0tICAgIH0gZWxzZSB7Ci0tICAgICAg ICBbMCwgMSwgNTE1LCA0LCA1LCAxNTQzLCA4LCA5LCAyNTcxLCAxMiwgMTMsIDM1OTldCi0tICAg IH07Ci0tICAgIGFzc2VydF9lcSEoeC4wIGFzIGkxNiwgZVswXSk7Ci0tICAgIGFzc2VydF9lcSEo eC4xIGFzIGkxNiwgZVsxXSk7Ci0tICAgIGFzc2VydF9lcSEoeC4yIGFzIGkxNiwgZVsyXSk7Ci0t ICAgIGFzc2VydF9lcSEoeC4zIGFzIGkxNiwgZVszXSk7Ci0tICAgIGFzc2VydF9lcSEoeC40IGFz IGkxNiwgZVs0XSk7Ci0tICAgIGFzc2VydF9lcSEoeC41IGFzIGkxNiwgZVs1XSk7Ci0tICAgIGFz c2VydF9lcSEoeC42IGFzIGkxNiwgZVs2XSk7Ci0tICAgIGFzc2VydF9lcSEoeC43IGFzIGkxNiwg ZVs3XSk7Ci0tICAgIGFzc2VydF9lcSEoeC44IGFzIGkxNiwgZVs4XSk7Ci0tICAgIGFzc2VydF9l cSEoeC45IGFzIGkxNiwgZVs5XSk7Ci0tICAgIGFzc2VydF9lcSEoeC4xMCBhcyBpMTYsIGVbMTBd KTsKLS0gICAgYXNzZXJ0X2VxISh4LjExIGFzIGkxNiwgZVsxMV0pOwotLX0KLWRpZmYgLU5yYnUg YS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90 aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svLmNhcmdvLWNoZWNrc3VtLmpzb24KLS0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbgkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92 ZXJzaW9uX2NoZWNrLy5jYXJnby1jaGVja3N1bS5qc29uCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA1 Nzk1NTk4ICswMzAwCi1AQCAtMCwwICsxIEBACi0reyJmaWxlcyI6eyJDYXJnby50b21sIjoiZjI1 ZDg4MDQ0OTE0Y2IzNDY2ZGY0M2JjMzlhMTk5ZTE1ODlkZGExYWFkMzIyNmM5YzdlN2FjNGQyZjg3 NTFkMCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYwZWVhODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlm ZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3NTlmMiIsIkxJQ0VOU0UtTUlUIjoiYjdlNjUwZjNm Y2U1YzUzMjQ5ZDFjZGM2MDhiNTRkZjE1NmE5N2VkZDYzNmNmOWQyMzQ5OGQwY2ZlN2FlYzYzZSIs IlJFQURNRS5tZCI6ImFjMmEwYTM2MDgxMjQzNmJkNTc5OGY1ZmUyYWZmZTdkNmVkOWViN2YxNWQ2 ZTRkNzM5MzFlOTViNDM3NTYwZjIiLCJzcmMvY2hhbm5lbC5ycyI6ImQyNDQzZDUwM2Q0Y2M0Njlh MTcxYTUxYTI2ZWNhM2VjMGQyYTU4YjVmNzM3NWE4NDU0MmMzNmYxNDIxNzY2YTgiLCJzcmMvZGF0 ZS5ycyI6IjA5NTgwYTBhMjAwOGZhZDJjY2JjNDNmYjQyYTg4ZjQyMjIxYjk4YjAxNjkyNzAyMDIy YTI5NmRjOWM4NmJmMzciLCJzcmMvbGliLnJzIjoiNzYwZjBkMjk1NjdlY2FhNjEyODcwODhjZjIz Y2Y3NGIzYzBlZmJiY2QzMDc3Y2VhNWZiN2M4ODM1OWU5NmM3ZSIsInNyYy92ZXJzaW9uLnJzIjoi ZGJhMThhMjU5ODNlYzZlMzdiOTUyZjRjZGM1MjE5YzllNWFiYmEyYzNhNzZjZWY4NzQ2NWUxZmJh NmY4YWM4OSJ9LCJwYWNrYWdlIjoiNDk4NzRiNTE2N2I2NWQ3MTkzYjhhYmExNTY3ZjVjN2Q5M2Qw MDFjYWZjMzQ2MDBjZWUwMDNlZGE3ODdlNDgzZiJ9Ci1cIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9t bCBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9DYXJnby50b21sCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9tbAkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0Nh cmdvLnRvbWwJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDU3OTU1OTggKzAzMDAKLUBAIC0wLDAgKzEs MjQgQEAKLSsjIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTwot KyMKLSsjIFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBh dXRvbWF0aWNhbGx5Ci0rIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFs IGNvbXBhdGliaWxpdHkKLSsjIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJl d3JpdGUgYHBhdGhgIGRlcGVuZGVuY2llcwotKyMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5p bykgZGVwZW5kZW5jaWVzLgotKyMKLSsjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUg YXdhcmUgdGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAotKyMgd2lsbCBsaWtlbHkgbG9vayB2 ZXJ5IGRpZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KLSsjIFNlZSBDYXJnby50 b21sLm9yaWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KLSsKLStbcGFja2FnZV0KLStuYW1l ID0gInZlcnNpb25fY2hlY2siCi0rdmVyc2lvbiA9ICIwLjkuNCIKLSthdXRob3JzID0gWyJTZXJn aW8gQmVuaXRleiA8c2JAc2VyZ2lvLmJ6PiJdCi0rZXhjbHVkZSA9IFsic3RhdGljIl0KLStkZXNj cmlwdGlvbiA9ICJUaW55IGNyYXRlIHRvIGNoZWNrIHRoZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxs ZWQvcnVubmluZyBydXN0Yy4iCi0rZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvdmVy c2lvbl9jaGVjay8iCi0rcmVhZG1lID0gIlJFQURNRS5tZCIKLStrZXl3b3JkcyA9IFsidmVyc2lv biIsICJydXN0YyIsICJtaW5pbXVtIiwgImNoZWNrIl0KLStsaWNlbnNlID0gIk1JVC9BcGFjaGUt Mi4wIgotK3JlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL1Nlcmdpb0Jlbml0ZXovdmVy c2lvbl9jaGVjayIKLSsKLStbZGVwZW5kZW5jaWVzXQotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5 L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRSBiL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRQotLS0tIGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9u X2NoZWNrL0xJQ0VOU0UtQVBBQ0hFCTE5NzAtMDEtMDEgMDM6MDA6MDAuMDAwMDAwMDAwICswMzAw Ci0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1BUEFDSEUJMjAy NS0wOS0xNyAxNzo0MTo0Ny41MDU3OTU1OTggKzAzMDAKLUBAIC0wLDAgKzEsMjAxIEBACi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKLSsgICAgICAgICAgICAg ICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0Ci0rICAgICAgICAgICAgICAgICAg ICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLwotKwotK1RFUk1TIEFORCBDT05ESVRJ T05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgotKwotKzEuIERlZmlu aXRpb25zLgotKwotKyAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0 aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCi0rICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZp bmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCi0rCi0rICAgIkxp Y2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6 ZWQgYnkKLSsgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vu c2UuCi0rCi0rICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFj dGluZyBlbnRpdHkgYW5kIGFsbAotKyAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJl IGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KLSsgICBjb250cm9sIHdpdGggdGhh dCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAotKyAgICJjb250 cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRo ZQotKyAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5 IGNvbnRyYWN0IG9yCi0rICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBw ZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCi0rICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAo aWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KLSsKLSsgICAiWW91IiAo b3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5Ci0rICAg ZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KLSsKLSsgICAi U291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9k aWZpY2F0aW9ucywKLSsgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNv dXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCi0rICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBm aWxlcy4KLSsKLSsgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5n IGZyb20gbWVjaGFuaWNhbAotKyAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEg U291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKLSsgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBv YmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCi0rICAgYW5kIGNvbnZlcnNpb25z IHRvIG90aGVyIG1lZGlhIHR5cGVzLgotKwotKyAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3Jr IG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCi0rICAgT2JqZWN0IGZvcm0sIG1h ZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQotKyAgIGNv cHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29y awotKyAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCi0r Ci0rICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4g U291cmNlIG9yIE9iamVjdAotKyAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQg ZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKLSsgICBlZGl0b3JpYWwgcmV2aXNpb25z LCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCi0rICAg cmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZv ciB0aGUgcHVycG9zZXMKLSsgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hh bGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KLSsgICBzZXBhcmFibGUgZnJvbSwgb3Ig bWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCi0rICAg dGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KLSsKLSsgICAiQ29udHJpYnV0 aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwotKyAgIHRo ZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBh ZGRpdGlvbnMKLSsgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0 aGF0IGlzIGludGVudGlvbmFsbHkKLSsgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1 c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCi0rICAgb3IgYnkgYW4gaW5k aXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9m Ci0rICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmlu aXRpb24sICJzdWJtaXR0ZWQiCi0rICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVy YmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAotKyAgIHRvIHRoZSBMaWNlbnNvciBv ciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi0rICAg Y29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNv bnRyb2wgc3lzdGVtcywKLSsgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBt YW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQotKyAgIExpY2Vuc29yIGZvciB0aGUgcHVy cG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAotKyAgIGV4Y2x1 ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3 aXNlCi0rICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMg Ik5vdCBhIENvbnRyaWJ1dGlvbi4iCi0rCi0rICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExp Y2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKLSsgICBvbiBiZWhhbGYg b2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQK LSsgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KLSsKLSsyLiBH cmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgb2YKLSsgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50 cyB0byBZb3UgYSBwZXJwZXR1YWwsCi0rICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1j aGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKLSsgICBjb3B5cmlnaHQgbGljZW5zZSB0 byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKLSsgICBwdWJsaWNseSBk aXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUK LSsgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBm b3JtLgotKwotKzMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJt cyBhbmQgY29uZGl0aW9ucyBvZgotKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBo ZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKLSsgICB3b3JsZHdpZGUsIG5vbi1leGNs dXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQotKyAgIChleGNlcHQg YXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBt YWRlLAotKyAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNl IHRyYW5zZmVyIHRoZSBXb3JrLAotKyAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkg dG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCi0rICAgYnkgc3VjaCBDb250cmlidXRv ciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKLSsgICBDb250cmlidXRp b24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCi0r ICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0 dGVkLiBJZiBZb3UKLSsgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkg ZW50aXR5IChpbmNsdWRpbmcgYQotKyAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBh IGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKLSsgICBvciBhIENvbnRyaWJ1dGlvbiBp bmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAotKyAgIG9yIGNv bnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMK LSsgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFs bCB0ZXJtaW5hdGUKLSsgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQu Ci0rCi0rNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRl IGNvcGllcyBvZiB0aGUKLSsgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBh bnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKLSsgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291 cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQotKyAgIG1lZXQgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgotKwotKyAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNp cGllbnRzIG9mIHRoZSBXb3JrIG9yCi0rICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9m IHRoaXMgTGljZW5zZTsgYW5kCi0rCi0rICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmll ZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwotKyAgICAgICBzdGF0aW5nIHRoYXQg WW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKLSsKLSsgICAoYykgWW91IG11c3QgcmV0YWluLCBp biB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKLSsgICAgICAgdGhhdCBZ b3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAotKyAg ICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3Jr LAotKyAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRv IGFueSBwYXJ0IG9mCi0rICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKLSsKLSsgICAo ZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBp dHMKLSsgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQg WW91IGRpc3RyaWJ1dGUgbXVzdAotKyAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0 aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKLSsgICAgICAgd2l0aGluIHN1Y2ggTk9U SUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90Ci0rICAgICAgIHBl cnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9u ZQotKyAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQg ZmlsZSBkaXN0cmlidXRlZAotKyAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtz OyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCi0rICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHBy b3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAotKyAgICAgICB3aXRo aW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCi0r ICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIu IFRoZSBjb250ZW50cwotKyAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1h dGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCi0rICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vu c2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCi0rICAgICAgIG5vdGljZXMgd2l0 aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCi0rICAg ICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBw cm92aWRlZAotKyAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2Vz IGNhbm5vdCBiZSBjb25zdHJ1ZWQKLSsgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgot KwotKyAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBt b2RpZmljYXRpb25zIGFuZAotKyAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50 IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKLSsgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24s IG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCi0rICAgZm9yIGFueSBz dWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCi0rICAg cmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21w bGllcyB3aXRoCi0rICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KLSsK LSs1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBz dGF0ZSBvdGhlcndpc2UsCi0rICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1p dHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCi0rICAgYnkgWW91IHRvIHRoZSBMaWNlbnNv ciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKLSsgICB0aGlzIExp Y2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KLSsgICBO b3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUg b3IgbW9kaWZ5Ci0rICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVu dCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKLSsgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNo IENvbnRyaWJ1dGlvbnMuCi0rCi0rNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90 IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQotKyAgIG5hbWVzLCB0cmFkZW1hcmtz LCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKLSsgICBl eGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVz Y3JpYmluZyB0aGUKLSsgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBj b250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KLSsKLSs3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5 LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKLSsgICBhZ3JlZWQgdG8gaW4g d3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCi0rICAgQ29udHJp YnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0r ICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBl eHByZXNzIG9yCi0rICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFu eSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKLSsgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVO VCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCi0rICAgUEFSVElDVUxBUiBQVVJQ T1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCi0rICAg YXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBh c3N1bWUgYW55Ci0rICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVy bWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgotKwotKzguIExpbWl0YXRpb24gb2YgTGlhYmls aXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAotKyAgIHdoZXRoZXIg aW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAot KyAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRl IGFuZCBncm9zc2x5Ci0rICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5n LCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKLSsgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2Vz LCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi0rICAgaW5jaWRlbnRh bCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBh Ci0rICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxp dHkgdG8gdXNlIHRoZQotKyAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFt YWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKLSsgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBm YWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAotKyAgIG90aGVyIGNvbW1lcmNp YWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKLSsgICBoYXMg YmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCi0rCi0rOS4g QWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3Ry aWJ1dGluZwotKyAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1h eSBjaG9vc2UgdG8gb2ZmZXIsCi0rICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ug b2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKLSsgICBvciBvdGhlciBsaWFiaWxpdHkg b2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcwotKyAgIExpY2Vu c2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBv bmx5Ci0rICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxp dHksIG5vdCBvbiBiZWhhbGYKLSsgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5 IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCi0rICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENv bnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5Ci0rICAgaW5jdXJyZWQgYnksIG9y IGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgotKyAg IG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmls aXR5LgotKwotK0VORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwotKwotK0FQUEVORElYOiBIb3cg dG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KLSsKLSsgICBUbyBhcHBs eSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxvd2luZwot KyAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNr ZXRzICJbXSIKLSsgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0 aW9uLiAoRG9uJ3QgaW5jbHVkZQotKyAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBzaG91bGQg YmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCi0rICAgY29tbWVudCBzeW50YXggZm9yIHRo ZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCi0rICAgZmlsZSBvciBjbGFz cyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQotKyAg IHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgot KyAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KLSsKLStDb3B5 cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KLSsKLStMaWNlbnNlZCB1bmRl ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLSt5b3Ug bWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vu c2UuCi0rWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0rCi0rCWh0dHA6 Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotKwotK1VubGVzcyByZXF1aXJl ZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLStk aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMi IEJBU0lTLAotK1dJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBl aXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotK1NlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNp ZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLStsaW1pdGF0aW9ucyB1bmRl ciB0aGUgTGljZW5zZS4KLWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hl Y2svTElDRU5TRS1NSVQgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svTElDRU5TRS1N SVQKLS0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVAkxOTcw LTAxLTAxIDAzOjAwOjAwLjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92 ZXJzaW9uX2NoZWNrL0xJQ0VOU0UtTUlUCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA1Nzk1NTk4ICsw MzAwCi1AQCAtMCwwICsxLDE5IEBACi0rVGhlIE1JVCBMaWNlbnNlIChNSVQpCi0rQ29weXJpZ2h0 IChjKSAyMDE3LTIwMTggU2VyZ2lvIEJlbml0ZXoKLSsKLStQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9m Ci0rdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KLSt0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvCi0rdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YKLSt0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sCi0rc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0rCi0rVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCi0rY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSsKLStUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgotK0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTCi0rRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9S Ci0rQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSCi0rSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KLStDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLgotZGlmZiAtTnJidSBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9SRUFETUUu bWQgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svUkVBRE1FLm1kCi0tLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svUkVBRE1FLm1kCTE5NzAtMDEtMDEgMDM6MDA6MDAu MDAwMDAwMDAwICswMzAwCi0rKysgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svUkVB RE1FLm1kCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA3Nzk1NTIyICswMzAwCi1AQCAtMCwwICsxLDgw IEBACi0rIyB2ZXJzaW9uXF9jaGVjawotKwotK1shW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRo dWIuY29tL1Nlcmdpb0Jlbml0ZXovdmVyc2lvbl9jaGVjay93b3JrZmxvd3MvQ0kvYmFkZ2Uuc3Zn KV0oaHR0cHM6Ly9naXRodWIuY29tL1Nlcmdpb0Jlbml0ZXovdmVyc2lvbl9jaGVjay9hY3Rpb25z KQotK1shW0N1cnJlbnQgQ3JhdGVzLmlvIFZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8v Y3JhdGVzL3YvdmVyc2lvbl9jaGVjay5zdmcpXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvdmVy c2lvbl9jaGVjaykKLStbIVtydXN0ZG9jcyBvbiBkb2NzLnJzXShodHRwczovL2RvY3MucnMvdmVy c2lvbl9jaGVjay9iYWRnZS5zdmcpXShodHRwczovL2RvY3MucnMvdmVyc2lvbl9jaGVjaykKLSsK LStUaGlzIHRpbnkgY3JhdGUgY2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBy dXN0Y2AgbWVldHMgc29tZSB2ZXJzaW9uCi0rcmVxdWlyZW1lbnRzLiBUaGUgdmVyc2lvbiBpcyBx dWVyaWVkIGJ5IGNhbGxpbmcgdGhlIFJ1c3QgY29tcGlsZXIgd2l0aAotK2AtLXZlcnNpb25gLiBU aGUgcGF0aCB0byB0aGUgY29tcGlsZXIgaXMgZGV0ZXJtaW5lZCBmaXJzdCB2aWEgdGhlIGBSVVNU Q2AKLStlbnZpcm9ubWVudCB2YXJpYWJsZS4gSWYgaXQgaXMgbm90IHNldCwgdGhlbiBgcnVzdGNg IGlzIHVzZWQuIElmIHRoYXQgZmFpbHMsIG5vCi0rZGV0ZXJtaW5hdGlvbiBpcyBtYWRlLCBhbmQg Y2FsbHMgcmV0dXJuIGBOb25lYC4KLSsKLSsjIyBVc2FnZQotKwotK0FkZCB0byB5b3VyIGBDYXJn by50b21sYCBmaWxlLCB0eXBpY2FsbHkgYXMgYSBidWlsZCBkZXBlbmRlbmN5OgotKwotK2BgYHRv bWwKLStbYnVpbGQtZGVwZW5kZW5jaWVzXQotK3ZlcnNpb25fY2hlY2sgPSAiMC45IgotK2BgYAot KwotK2B2ZXJzaW9uX2NoZWNrYCBpcyBjb21wYXRpYmxlIGFuZCBjb21waWxlcyB3aXRoIFJ1c3Qg MS4wLjAgYW5kIGJleW9uZC4KLSsKLSsjIyBFeGFtcGxlcwotKwotK1NldCBhIGBjZmdgIGZsYWcg aW4gYGJ1aWxkLnJzYCBpZiB0aGUgcnVubmluZyBjb21waWxlciB3YXMgZGV0ZXJtaW5lZCB0byBi ZQotK2F0IGxlYXN0IHZlcnNpb24gYDEuMTMuMGA6Ci0rCi0rYGBgcnVzdAotK2V4dGVybiBjcmF0 ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOwotKwotK2lmIHJ1c3RjOjppc19taW5fdmVyc2lvbigi MS4xMy4wIikudW53cmFwX29yKGZhbHNlKSB7Ci0rICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1j Zmc9cXVlc3Rpb25fbWFya19vcGVyYXRvciIpOwotK30KLStgYGAKLSsKLStDaGVjayB0aGF0IHRo ZSBydW5uaW5nIGNvbXBpbGVyIHdhcyByZWxlYXNlZCBvbiBvciBhZnRlciBgMjAxOC0xMi0xOGA6 Ci0rCi0rYGBgcnVzdAotK2V4dGVybiBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOwotKwot K21hdGNoIHJ1c3RjOjppc19taW5fZGF0ZSgiMjAxOC0xMi0xOCIpIHsKLSsgICAgU29tZSh0cnVl KSA9PiAiWWVwISBJdCdzIHJlY2VudCEiLAotKyAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0J3Mg b2xkZXIuIiwKLSsgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJtaW5lIHRoZSBydXN0YyB2ZXJz aW9uLiIKLSt9OwotK2BgYAotKwotK0NoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3Vw cG9ydHMgZmVhdHVyZSBmbGFnczoKLSsKLStgYGBydXN0Ci0rZXh0ZXJuIGNyYXRlIHZlcnNpb25f Y2hlY2sgYXMgcnVzdGM7Ci0rCi0rbWF0Y2ggcnVzdGM6OmlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkg ewotKyAgICBTb21lKHRydWUpID0+ICJZZXMhIEl0J3MgYSBkZXYgb3IgbmlnaHRseSByZWxlYXNl ISIsCi0rICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBzdGFibGUgb3IgYmV0YS4iLAotKyAg ICBOb25lID0+ICJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24uIgotK307Ci0r YGBgCi0rCi0rU2VlIHRoZSBbcnVzdGRvY3NdKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNr KSBmb3IgbW9yZSBleGFtcGxlcyBhbmQgY29tcGxldGUKLStkb2N1bWVudGF0aW9uLgotKwotKyMj IEFsdGVybmF0aXZlcwotKwotK1RoaXMgY3JhdGUgaXMgZGVhZCBzaW1wbGUgd2l0aCBubyBkZXBl bmRlbmNpZXMuIElmIHlvdSBuZWVkIHNvbWV0aGluZyBtb3JlIGFuZAotK2Rvbid0IGNhcmUgYWJv dXQgcGFuaWNraW5nIGlmIHRoZSB2ZXJzaW9uIGNhbm5vdCBiZSBvYnRhaW5lZCwgb3IgaWYgeW91 IGRvbid0Ci0rbWluZCBhZGRpbmcgZGVwZW5kZW5jaWVzLCBzZWUgW3J1c3RjX3ZlcnNpb25dLiBJ ZiB5b3UnZCBpbnN0ZWFkIHByZWZlciBhIGZlYXR1cmUKLStkZXRlY3Rpb24gbGlicmFyeSB0aGF0 IHdvcmtzIGJ5IGR5bmFtaWNhbGx5IGludm9raW5nIGBydXN0Y2Agd2l0aCBhCi0rcmVwcmVzZW50 YXRpdmUgY29kZSBzYW1wbGUsIHNlZSBbYXV0b2NmZ10uCi0rCi0rW3J1c3RjX3ZlcnNpb25dOiBo dHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdGNfdmVyc2lvbgotK1thdXRvY2ZnXTogaHR0cHM6 Ly9jcmF0ZXMuaW8vY3JhdGVzL2F1dG9jZmcKLSsKLSsjIyBMaWNlbnNlCi0rCi0rYHZlcnNpb25f Y2hlY2tgIGlzIGxpY2Vuc2VkIHVuZGVyIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nLCBhdCB5b3Vy IG9wdGlvbjoKLSsKLSsgKiBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAsIChbTElDRU5TRS1B UEFDSEVdKExJQ0VOU0UtQVBBQ0hFKSBvciBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMv TElDRU5TRS0yLjApCi0rICogTUlUIExpY2Vuc2UgKFtMSUNFTlNFLU1JVF0oTElDRU5TRS1NSVQp IG9yIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQpCi1kaWZmIC1OcmJ1IGEvdGhp cmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9jaGFubmVsLnJzIGIvdGhpcmRfcGFydHkv cnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9jaGFubmVsLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svc3JjL2NoYW5uZWwucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAw MDAgKzAzMDAKLSsrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvY2hhbm5l bC5ycwkyMDI1LTA5LTE3IDE3OjQxOjQ3LjUwNzc5NTUyMiArMDMwMAotQEAgLTAsMCArMSwxOTMg QEAKLSt1c2Ugc3RkOjpmbXQ7Ci0rCi0rI1tkZXJpdmUoRGVidWcsIFBhcnRpYWxFcSwgRXEsIENv cHksIENsb25lKV0KLStlbnVtIEtpbmQgewotKyAgICBEZXYsCi0rICAgIE5pZ2h0bHksCi0rICAg IEJldGEsCi0rICAgIFN0YWJsZSwKLSt9Ci0rCi0rLy8vIFJlbGVhc2UgY2hhbm5lbDogImRldiIs ICJuaWdodGx5IiwgImJldGEiLCBvciAic3RhYmxlIi4KLSsjW2Rlcml2ZShEZWJ1ZywgUGFydGlh bEVxLCBFcSwgQ29weSwgQ2xvbmUpXQotK3B1YiBzdHJ1Y3QgQ2hhbm5lbChLaW5kKTsKLSsKLStp bXBsIENoYW5uZWwgewotKyAgICAvLy8gUmVhZHMgdGhlIHJlbGVhc2UgY2hhbm5lbCBvZiB0aGUg cnVubmluZyBjb21waWxlci4gSWYgaXQgY2Fubm90IGJlCi0rICAgIC8vLyBkZXRlcm1pbmVkIChz ZWUgdGhlIFt0b3AtbGV2ZWwgZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAu Ci0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVz dAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAv Ly8gbWF0Y2ggQ2hhbm5lbDo6cmVhZCgpIHsKLSsgICAgLy8vICAgICBTb21lKGMpID0+IGZvcm1h dCEoIlRoZSBjaGFubmVsIGlzOiB7fSIsIGMpLAotKyAgICAvLy8gICAgIE5vbmUgPT4gZm9ybWF0 ISgiRmFpbGVkIHRvIHJlYWQgdGhlIHJlbGVhc2UgY2hhbm5lbC4iKQotKyAgICAvLy8gfTsKLSsg ICAgLy8vIGBgYAotKyAgICBwdWIgZm4gcmVhZCgpIC0+IE9wdGlvbjxDaGFubmVsPiB7Ci0rICAg ICAgICA6OmdldF92ZXJzaW9uX2FuZF9kYXRlKCkKLSsgICAgICAgICAgICAuYW5kX3RoZW4ofCh2 ZXJzaW9uLCBfKXwgdmVyc2lvbikKLSsgICAgICAgICAgICAuYW5kX3RoZW4ofHZlcnNpb258IENo YW5uZWw6OnBhcnNlKCZ2ZXJzaW9uKSkKLSsgICAgfQotKwotKyAgICAvLy8gUGFyc2UgYSBSdXN0 IHJlbGVhc2UgY2hhbm5lbCBmcm9tIGEgUnVzdCByZWxlYXNlIHZlcnNpb24gc3RyaW5nIChvZiB0 aGUKLSsgICAgLy8vIGZvcm0gYG1ham9yWy5taW5vclsucGF0Y2hbLWNoYW5uZWxdXV1gKS4gUmV0 dXJucyBgTm9uZWAgaWYgYHZlcnNpb25gIGlzCi0rICAgIC8vLyBub3QgYSB2YWxpZCBSdXN0IHZl cnNpb24gc3RyaW5nLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsg ICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOwotKyAg ICAvLy8KLSsgICAgLy8vIGxldCBkZXYgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtZGV2IikudW53 cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKGRldi5pc19kZXYoKSk7Ci0rICAgIC8vLwotKyAgICAv Ly8gbGV0IG5pZ2h0bHkgPSBDaGFubmVsOjpwYXJzZSgiMS40Mi4yLW5pZ2h0bHkiKS51bndyYXAo KTsKLSsgICAgLy8vIGFzc2VydCEobmlnaHRseS5pc19uaWdodGx5KCkpOwotKyAgICAvLy8KLSsg ICAgLy8vIGxldCBiZXRhID0gQ2hhbm5lbDo6cGFyc2UoIjEuMzIuMC1iZXRhIikudW53cmFwKCk7 Ci0rICAgIC8vLyBhc3NlcnQhKGJldGEuaXNfYmV0YSgpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBs ZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuNC4wIikudW53cmFwKCk7Ci0rICAgIC8vLyBh c3NlcnQhKHN0YWJsZS5pc19zdGFibGUoKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIHBh cnNlKHZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxDaGFubmVsPiB7Ci0rICAgICAgICBsZXQgdmVy c2lvbiA9IHZlcnNpb24udHJpbSgpOwotKyAgICAgICAgaWYgdmVyc2lvbi5jb250YWlucygiLWRl diIpIHx8IHZlcnNpb24gPT0gImRldiIgewotKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5k OjpEZXYpKQotKyAgICAgICAgfSBlbHNlIGlmIHZlcnNpb24uY29udGFpbnMoIi1uaWdodGx5Iikg fHwgdmVyc2lvbiA9PSAibmlnaHRseSIgewotKyAgICAgICAgICAgIFNvbWUoQ2hhbm5lbChLaW5k OjpOaWdodGx5KSkKLSsgICAgICAgIH0gZWxzZSBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItYmV0YSIp IHx8IHZlcnNpb24gPT0gImJldGEiIHsKLSsgICAgICAgICAgICBTb21lKENoYW5uZWwoS2luZDo6 QmV0YSkpCi0rICAgICAgICB9IGVsc2UgaWYgIXZlcnNpb24uY29udGFpbnMoIi0iKSB7Ci0rICAg ICAgICAgICAgU29tZShDaGFubmVsKEtpbmQ6OlN0YWJsZSkpCi0rICAgICAgICB9IGVsc2Ugewot KyAgICAgICAgICAgIE5vbmUKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJu cyB0aGUgbmFtZSBvZiB0aGUgcmVsZWFzZSBjaGFubmVsLgotKyAgICBmbiBhc19zdHIoJnNlbGYp IC0+ICYnc3RhdGljIHN0ciB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewotKyAgICAgICAgICAg IEtpbmQ6OkRldiA9PiAiZGV2IiwKLSsgICAgICAgICAgICBLaW5kOjpCZXRhID0+ICJiZXRhIiwK LSsgICAgICAgICAgICBLaW5kOjpOaWdodGx5ID0+ICJuaWdodGx5IiwKLSsgICAgICAgICAgICBL aW5kOjpTdGFibGUgPT4gInN0YWJsZSIsCi0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgLy8v IFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzLiBJ biBvdGhlciB3b3JkcywKLSsgICAgLy8vIHJldHVybnMgYHRydWVgIGlmIHRoZSBjaGFubmVsIGlz IGVpdGhlciBgZGV2YCBvciBgbmlnaHRseWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxl Ci0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6 OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIx LjMuMC1kZXYiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoZGV2LnN1cHBvcnRzX2ZlYXR1 cmVzKCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBuaWdodGx5ID0gQ2hhbm5lbDo6cGFyc2Uo IjEuNDIuMi1uaWdodGx5IikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3NlcnQhKG5pZ2h0bHkuc3Vw cG9ydHNfZmVhdHVyZXMoKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVs OjpwYXJzZSgiMS4zMi4wLWJldGEiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoIWJldGEu c3VwcG9ydHNfZmVhdHVyZXMoKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHN0YWJsZSA9IENo YW5uZWw6OnBhcnNlKCIxLjQuMCIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxl LnN1cHBvcnRzX2ZlYXR1cmVzKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBzdXBwb3J0 c19mZWF0dXJlcygmc2VsZikgLT4gYm9vbCB7Ci0rICAgICAgICBtYXRjaCBzZWxmLjAgewotKyAg ICAgICAgICAgIEtpbmQ6OkRldiB8IEtpbmQ6Ok5pZ2h0bHkgPT4gdHJ1ZSwKLSsgICAgICAgICAg ICBLaW5kOjpCZXRhIHwgS2luZDo6U3RhYmxlID0+IGZhbHNlCi0rICAgICAgICB9Ci0rICAgIH0K LSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBgZGV2YCBhbmQg YGZhbHNlYCBvdGhlcndpc2UuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8v LwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkNoYW5uZWw7 Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGRldiA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1kZXYi KS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoZGV2LmlzX2RldigpKTsKLSsgICAgLy8vCi0r ICAgIC8vLyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7Ci0r ICAgIC8vLyBhc3NlcnQhKCFzdGFibGUuaXNfZGV2KCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1 YiBmbiBpc19kZXYoJnNlbGYpIC0+IGJvb2wgewotKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKLSsg ICAgICAgICAgICBLaW5kOjpEZXYgPT4gdHJ1ZSwKLSsgICAgICAgICAgICBfID0+IGZhbHNlCi0r ICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hh bm5lbCBpcyBgbmlnaHRseWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotKyAgICAvLy8KLSsgICAg Ly8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2 ZXJzaW9uX2NoZWNrOjpDaGFubmVsOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBuaWdodGx5ID0g Q2hhbm5lbDo6cGFyc2UoIjEuMy4wLW5pZ2h0bHkiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2Vy dCEobmlnaHRseS5pc19uaWdodGx5KCkpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBzdGFibGUg PSBDaGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEoIXN0 YWJsZS5pc19uaWdodGx5KCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBpc19uaWdodGx5 KCZzZWxmKSAtPiBib29sIHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAgICAgICAg S2luZDo6TmlnaHRseSA9PiB0cnVlLAotKyAgICAgICAgICAgIF8gPT4gZmFsc2UKLSsgICAgICAg IH0KLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlz IGBiZXRhYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFt cGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hl Y2s6OkNoYW5uZWw7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IGJldGEgPSBDaGFubmVsOjpwYXJz ZSgiMS4zLjAtYmV0YSIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0IShiZXRhLmlzX2JldGEo KSk7Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAu MCIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNzZXJ0ISghc3RhYmxlLmlzX2JldGEoKSk7Ci0rICAg IC8vLyBgYGAKLSsgICAgcHViIGZuIGlzX2JldGEoJnNlbGYpIC0+IGJvb2wgewotKyAgICAgICAg bWF0Y2ggc2VsZi4wIHsKLSsgICAgICAgICAgICBLaW5kOjpCZXRhID0+IHRydWUsCi0rICAgICAg ICAgICAgXyA9PiBmYWxzZQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5z IGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgaXMgYHN0YWJsZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNl LgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1 c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOwotKyAgICAvLy8KLSsgICAg Ly8vIGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS4wLjAiKS51bndyYXAoKTsKLSsgICAg Ly8vIGFzc2VydCEoc3RhYmxlLmlzX3N0YWJsZSgpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBsZXQg YmV0YSA9IENoYW5uZWw6OnBhcnNlKCIxLjMuMC1iZXRhIikudW53cmFwKCk7Ci0rICAgIC8vLyBh c3NlcnQhKCFiZXRhLmlzX3N0YWJsZSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gaXNf c3RhYmxlKCZzZWxmKSAtPiBib29sIHsKLSsgICAgICAgIG1hdGNoIHNlbGYuMCB7Ci0rICAgICAg ICAgICAgS2luZDo6U3RhYmxlID0+IHRydWUsCi0rICAgICAgICAgICAgXyA9PiBmYWxzZQotKyAg ICAgICAgfQotKyAgICB9Ci0rfQotKwotK2ltcGwgZm10OjpEaXNwbGF5IGZvciBDaGFubmVsIHsK LSsgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3Vs dCB7Ci0rICAgICAgICB3cml0ZSEoZiwgInt9Iiwgc2VsZi5hc19zdHIoKSkKLSsgICAgfQotK30K LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2RhdGUucnMKLS0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvZGF0ZS5ycwkxOTcwLTAxLTAxIDAzOjAwOjAw LjAwMDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3Ny Yy9kYXRlLnJzCTIwMjUtMDktMTcgMTc6NDE6NDcuNTA3Nzk1NTIyICswMzAwCi1AQCAtMCwwICsx LDIwMyBAQAotK3VzZSBzdGQ6OmZtdDsKLSsKLSsvLy8gUmVsZWFzZSBkYXRlIGluY2x1ZGluZyB5 ZWFyLCBtb250aCwgYW5kIGRheS4KLSsvLyBJbnRlcm5hbCBzdG9yYWdlIGlzOiB5WzMxLi45XSB8 IG1bOC4uNV0gfCBkWzUuLi4wXS4KLSsjW2Rlcml2ZShEZWJ1ZywgUGFydGlhbEVxLCBFcSwgQ29w eSwgQ2xvbmUsIFBhcnRpYWxPcmQsIE9yZCldCi0rcHViIHN0cnVjdCBEYXRlKHUzMik7Ci0rCi0r aW1wbCBEYXRlIHsKLSsgICAgLy8vIFJlYWRzIHRoZSByZWxlYXNlIGRhdGUgb2YgdGhlIHJ1bm5p bmcgY29tcGlsZXIuIElmIGl0IGNhbm5vdCBiZQotKyAgICAvLy8gZGV0ZXJtaW5lZCAoc2VlIHRo ZSBbdG9wLWxldmVsIGRvY3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVybnMgYE5vbmVgLgotKyAg ICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsg ICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOwotKyAgICAvLy8KLSsgICAgLy8vIG1hdGNo IERhdGU6OnJlYWQoKSB7Ci0rICAgIC8vLyAgICAgU29tZShkKSA9PiBmb3JtYXQhKCJUaGUgcmVs ZWFzZSBkYXRlIGlzOiB7fSIsIGQpLAotKyAgICAvLy8gICAgIE5vbmUgPT4gZm9ybWF0ISgiRmFp bGVkIHRvIHJlYWQgdGhlIHJlbGVhc2UgZGF0ZS4iKQotKyAgICAvLy8gfTsKLSsgICAgLy8vIGBg YAotKyAgICBwdWIgZm4gcmVhZCgpIC0+IE9wdGlvbjxEYXRlPiB7Ci0rICAgICAgICA6OmdldF92 ZXJzaW9uX2FuZF9kYXRlKCkKLSsgICAgICAgICAgICAuYW5kX3RoZW4ofChfLCBkYXRlKXwgZGF0 ZSkKLSsgICAgICAgICAgICAuYW5kX3RoZW4ofGRhdGV8IERhdGU6OnBhcnNlKCZkYXRlKSkKLSsg ICAgfQotKwotKyAgICAvLy8gUGFyc2UgYSByZWxlYXNlIGRhdGUgb2YgdGhlIGZvcm0gYCVZLSVt LSVkYC4gUmV0dXJucyBgTm9uZWAgaWYgYGRhdGVgIGlzCi0rICAgIC8vLyBub3QgaW4gYCVZLSVt LSVkYCBmb3JtYXQuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAg ICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7Ci0rICAgIC8v LwotKyAgICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgiMjAxNi0wNC0yMCIpLnVud3JhcCgp OwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9sZWFzdCgiMjAxNi0wMS0xMCIp KTsKLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9tb3N0KCIyMDE2LTA0LTIwIikpOwotKyAgICAv Ly8gYXNzZXJ0IShkYXRlLmV4YWN0bHkoIjIwMTYtMDQtMjAiKSk7Ci0rICAgIC8vLwotKyAgICAv Ly8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMS0xMi0zMSIpLnVud3JhcCgpLmV4YWN0bHkoIjIw MjEtMTItMzEiKSk7Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiTWFy Y2ggMTMsIDIwMTgiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgi MS0yLTMtNC01IikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIw MjAtMzAwLTIzMTIwIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2Uo IjIwMjAtMTItMTIgMSIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNl KCIyMDIwLTEwIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIw MjAiKS5pc19ub25lKCkpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBwYXJzZShkYXRlOiAm c3RyKSAtPiBPcHRpb248RGF0ZT4gewotKyAgICAgICAgbGV0IG11dCB5bWQgPSBbMHUxNjsgM107 Ci0rICAgICAgICBmb3IgKGksIHNwbGl0KSBpbiBkYXRlLnNwbGl0KCctJykubWFwKHxzfCBzLnBh cnNlOjo8dTE2PigpKS5lbnVtZXJhdGUoKSB7Ci0rICAgICAgICAgICAgeW1kW2ldID0gbWF0Y2gg KGksIHNwbGl0KSB7Ci0rICAgICAgICAgICAgICAgICgzLCBfKSB8IChfLCBFcnIoXykpID0+IHJl dHVybiBOb25lLAotKyAgICAgICAgICAgICAgICAoXywgT2sodikpID0+IHYsCi0rICAgICAgICAg ICAgfTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGxldCAoeWVhciwgbW9udGgsIGRheSkgPSAo eW1kWzBdLCB5bWRbMV0sIHltZFsyXSk7Ci0rICAgICAgICBpZiB5ZWFyID09IDAgfHwgbW9udGgg PT0gMCB8fCBtb250aCA+IDEyIHx8IGRheSA9PSAwIHx8IGRheSA+IDMxIHsKLSsgICAgICAgICAg ICByZXR1cm4gTm9uZTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIFNvbWUoRGF0ZTo6ZnJvbV95 bWQoeWVhciwgbW9udGggYXMgdTgsIGRheSBhcyB1OCkpCi0rICAgIH0KLSsKLSsgICAgLy8vIENy ZWF0ZXMgYSBgRGF0ZWAgZnJvbSBgKHllYXIsIG1vbnRoLCBkYXkpYCBkYXRlIGNvbXBvbmVudHMu Ci0rICAgIC8vLwotKyAgICAvLy8gRG9lcyBub3QgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIGB5ZWFy YCwgYG1vbnRoYCwgb3IgYGRheWAsIGJ1dCBgeWVhcmAgaXMKLSsgICAgLy8vIHRydW5jYXRlZCB0 byAyMyBiaXRzICglIDgsMzg4LDYwOCksIGBtb250aGAgdG8gNCBiaXRzICglIDE2KSwgYW5kIGBk YXlgCi0rICAgIC8vLyB0byA1IGJpdHMgKCUgMzIpLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhh bXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2No ZWNrOjpEYXRlOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjAy MSwgNywgMzApLmV4YWN0bHkoIjIwMjEtMDctMzAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKERhdGU6 OmZyb21feW1kKDIwMTAsIDMsIDIzKS5leGFjdGx5KCIyMDEwLTAzLTIzIikpOwotKyAgICAvLy8g YXNzZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDkwLCAxLCAzMSkuZXhhY3RseSgiMjA5MC0wMS0zMSIp KTsKLSsgICAgLy8vCi0rICAgIC8vLyAvLyBUcnVuY2F0aW9uOiAzMyAlIDMyID09IDB4MjEgJiAw eDFGID09IDEuCi0rICAgIC8vLyBhc3NlcnQhKERhdGU6OmZyb21feW1kKDIwOTAsIDEsIDMzKS5l eGFjdGx5KCIyMDkwLTAxLTAxIikpOwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiBmcm9tX3lt ZCh5ZWFyOiB1MTYsIG1vbnRoOiB1OCwgZGF5OiB1OCkgLT4gRGF0ZSB7Ci0rICAgICAgICBsZXQg eWVhciA9ICh5ZWFyIGFzIHUzMikgPDwgOTsKLSsgICAgICAgIGxldCBtb250aCA9ICgobW9udGgg YXMgdTMyKSAmIDB4RikgPDwgNTsKLSsgICAgICAgIGxldCBkYXkgPSAoZGF5IGFzIHUzMikgJiAw eDFGOwotKyAgICAgICAgRGF0ZSh5ZWFyIHwgbW9udGggfCBkYXkpCi0rICAgIH0KLSsKLSsgICAg Ly8vIFJldHVybiB0aGUgb3JpZ2luYWwgKFlZWVksIE1NLCBERCkuCi0rICAgIGZuIHRvX3ltZCgm c2VsZikgLT4gKHUxNiwgdTgsIHU4KSB7Ci0rICAgICAgICBsZXQgeSA9IHNlbGYuMCA+PiA5Owot KyAgICAgICAgbGV0IG0gPSAoc2VsZi4wID4+IDUpICYgMHhGOwotKyAgICAgICAgbGV0IGQgPSBz ZWxmLjAgJiAweDFGOwotKyAgICAgICAgKHkgYXMgdTE2LCBtIGFzIHU4LCBkIGFzIHU4KQotKyAg ICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgb2NjdXJzIG9uIG9yIGFm dGVyIGBkYXRlYC4KLSsgICAgLy8vCi0rICAgIC8vLyBJZiBgZGF0ZWAgb2NjdXJzIGJlZm9yZSBg c2VsZmAsIG9yIGlmIGBkYXRlYCBpcyBub3QgaW4gYCVZLSVtLSVkYAotKyAgICAvLy8gZm9ybWF0 LCByZXR1cm5zIGBmYWxzZWAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8v LwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7Ci0r ICAgIC8vLwotKyAgICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpwYXJzZSgiMjAyMC0wMS0wMSIpLnVu d3JhcCgpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9sZWFzdCgiMjAxOS0x Mi0zMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9sZWFzdCgiMjAyMC0wMS0wMSIpKTsK LSsgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9sZWFzdCgiMjAxNC0wNC0zMSIpKTsKLSsgICAgLy8v Ci0rICAgIC8vLyBhc3NlcnQhKCFkYXRlLmF0X2xlYXN0KCIyMDIwLTAxLTAyIikpOwotKyAgICAv Ly8gYXNzZXJ0ISghZGF0ZS5hdF9sZWFzdCgiMjAyNC0wOC0xOCIpKTsKLSsgICAgLy8vIGBgYAot KyAgICBwdWIgZm4gYXRfbGVhc3QoJnNlbGYsIGRhdGU6ICZzdHIpIC0+IGJvb2wgewotKyAgICAg ICAgRGF0ZTo6cGFyc2UoZGF0ZSkKLSsgICAgICAgICAgICAubWFwKHxkYXRlfCBzZWxmID49ICZk YXRlKQotKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCi0rICAgIH0KLSsKLSsgICAgLy8v IFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBvY2N1cnMgb24gb3IgYmVmb3JlIGBkYXRlYC4KLSsg ICAgLy8vCi0rICAgIC8vLyBJZiBgZGF0ZWAgb2NjdXJzIGFmdGVyIGBzZWxmYCwgb3IgaWYgYGRh dGVgIGlzIG5vdCBpbiBgJVktJW0tJWRgCi0rICAgIC8vLyBmb3JtYXQsIHJldHVybnMgYGZhbHNl YC4KLSsgICAgLy8vCi0rICAgIC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBy dXN0Ci0rICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6RGF0ZTsKLSsgICAgLy8vCi0rICAgIC8v LyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDIwLTAxLTAxIikudW53cmFwKCk7Ci0rICAgIC8v LwotKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21vc3QoIjIwMjAtMDEtMDEiKSk7Ci0rICAgIC8v LyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgiMjAyMC0wMS0wMiIpKTsKLSsgICAgLy8vIGFzc2VydCEo ZGF0ZS5hdF9tb3N0KCIyMDI0LTA4LTE4IikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEo IWRhdGUuYXRfbW9zdCgiMjAxOS0xMi0zMSIpKTsKLSsgICAgLy8vIGFzc2VydCEoIWRhdGUuYXRf bW9zdCgiMjAxNC0wNC0zMSIpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gYXRfbW9zdCgm c2VsZiwgZGF0ZTogJnN0cikgLT4gYm9vbCB7Ci0rICAgICAgICBEYXRlOjpwYXJzZShkYXRlKQot KyAgICAgICAgICAgIC5tYXAofGRhdGV8IHNlbGYgPD0gJmRhdGUpCi0rICAgICAgICAgICAgLnVu d3JhcF9vcihmYWxzZSkKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNl bGZgIG9jY3VycyBleGFjdGx5IG9uIGBkYXRlYC4KLSsgICAgLy8vCi0rICAgIC8vLyBJZiBgZGF0 ZWAgaXMgbm90IGV4YWN0bHkgYHNlbGZgLCBvciBpZiBgZGF0ZWAgaXMgbm90IGluIGAlWS0lbS0l ZGAKLSsgICAgLy8vIGZvcm1hdCwgcmV0dXJucyBgZmFsc2VgLgotKyAgICAvLy8KLSsgICAgLy8v ICMgRXhhbXBsZQotKyAgICAvLy8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJz aW9uX2NoZWNrOjpEYXRlOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCBkYXRlID0gRGF0ZTo6cGFy c2UoIjIwMjAtMDEtMDEiKS51bndyYXAoKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKGRh dGUuZXhhY3RseSgiMjAyMC0wMS0wMSIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKCFk YXRlLmV4YWN0bHkoIjIwMTktMTItMzEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCFkYXRlLmV4YWN0 bHkoIjIwMTQtMDQtMzEiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCFkYXRlLmV4YWN0bHkoIjIwMjAt MDEtMDIiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKCFkYXRlLmV4YWN0bHkoIjIwMjQtMDgtMTgiKSk7 Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGV4YWN0bHkoJnNlbGYsIGRhdGU6ICZzdHIpIC0+ IGJvb2wgewotKyAgICAgICAgRGF0ZTo6cGFyc2UoZGF0ZSkKLSsgICAgICAgICAgICAubWFwKHxk YXRlfCBzZWxmID09ICZkYXRlKQotKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCi0rICAg IH0KLSt9Ci0rCi0raW1wbCBmbXQ6OkRpc3BsYXkgZm9yIERhdGUgewotKyAgICBmbiBmbXQoJnNl bGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKLSsgICAgICAgIGxl dCAoeSwgbSwgZCkgPSBzZWxmLnRvX3ltZCgpOwotKyAgICAgICAgd3JpdGUhKGYsICJ7fS17OjAy fS17OjAyfSIsIHksIG0sIGQpCi0rICAgIH0KLSt9Ci0rCi0rI1tjZmcodGVzdCldCi0rbW9kIHRl c3RzIHsKLSsgICAgdXNlIHN1cGVyOjpEYXRlOwotKwotKyAgICBtYWNyb19ydWxlcyEgcmVmbGV4 aXZlX2Rpc3BsYXkgewotKyAgICAgICAgKCRzdHJpbmc6ZXhwcikgPT4gKAotKyAgICAgICAgICAg IGFzc2VydF9lcSEoRGF0ZTo6cGFyc2UoJHN0cmluZykudW53cmFwKCkudG9fc3RyaW5nKCksICRz dHJpbmcpOwotKyAgICAgICAgKQotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gZGlz cGxheSgpIHsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjAxOS0wNS0wOCIpOwotKyAg ICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDAwLTAxLTAxIik7Ci0rICAgICAgICByZWZsZXhp dmVfZGlzcGxheSEoIjIwMDAtMTItMzEiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgi MjA5MC0xMi0zMSIpOwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxOTk5LTAyLTE5Iik7 Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjk5OTktMTItMzEiKTsKLSsgICAgfQotK30K LWRpZmYgLU5yYnUgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvbGliLnJzCi0tLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycwkxOTcwLTAxLTAxIDAzOjAwOjAwLjAw MDAwMDAwMCArMDMwMAotKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9s aWIucnMJMjAyNS0wOS0xNyAxNzo0MTo0Ny41MDc3OTU1MjIgKzAzMDAKLUBAIC0wLDAgKzEsNDkz IEBACi0rLy8hIFRoaXMgdGlueSBjcmF0ZSBjaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0 YWxsZWQgYHJ1c3RjYCBtZWV0cyBzb21lCi0rLy8hIHZlcnNpb24gcmVxdWlyZW1lbnRzLiBUaGUg dmVyc2lvbiBpcyBxdWVyaWVkIGJ5IGNhbGxpbmcgdGhlIFJ1c3QgY29tcGlsZXIKLSsvLyEgd2l0 aCBgLS12ZXJzaW9uYC4gVGhlIHBhdGggdG8gdGhlIGNvbXBpbGVyIGlzIGRldGVybWluZWQgZmly c3QgdmlhIHRoZQotKy8vISBgUlVTVENgIGVudmlyb25tZW50IHZhcmlhYmxlLiBJZiBpdCBpcyBu b3Qgc2V0LCB0aGVuIGBydXN0Y2AgaXMgdXNlZC4gSWYKLSsvLyEgdGhhdCBmYWlscywgbm8gZGV0 ZXJtaW5hdGlvbiBpcyBtYWRlLCBhbmQgY2FsbHMgcmV0dXJuIGBOb25lYC4KLSsvLyEKLSsvLyEg IyBFeGFtcGxlcwotKy8vIQotKy8vISAqIFNldCBhIGBjZmdgIGZsYWcgaW4gYGJ1aWxkLnJzYCBp ZiB0aGUgcnVubmluZyBjb21waWxlciB3YXMgZGV0ZXJtaW5lZCB0bwotKy8vISAgIGJlIGF0IGxl YXN0IHZlcnNpb24gYDEuMTMuMGA6Ci0rLy8hCi0rLy8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVy biBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOwotKy8vIQotKy8vISAgIGlmIHJ1c3RjOjpp c19taW5fdmVyc2lvbigiMS4xMy4wIikudW53cmFwX29yKGZhbHNlKSB7Ci0rLy8hICAgICAgIHBy aW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9cXVlc3Rpb25fbWFya19vcGVyYXRvciIpOwotKy8vISAg IH0KLSsvLyEgICBgYGAKLSsvLyEKLSsvLyEgICBTZWUgW2Bpc19tYXhfdmVyc2lvbmBdIG9yIFtg aXNfZXhhY3RfdmVyc2lvbmBdIHRvIGNoZWNrIGlmIHRoZSBjb21waWxlcgotKy8vISAgIGlzIF9h dCBtb3N0XyBvciBfZXhhY3RseV8gYSBjZXJ0YWluIHZlcnNpb24uCi0rLy8hCi0rLy8hICogQ2hl Y2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciB3YXMgcmVsZWFzZWQgb24gb3IgYWZ0ZXIgYDIw MTgtMTItMThgOgotKy8vIQotKy8vISAgIGBgYHJ1c3QKLSsvLyEgICBleHRlcm4gY3JhdGUgdmVy c2lvbl9jaGVjayBhcyBydXN0YzsKLSsvLyEKLSsvLyEgICBtYXRjaCBydXN0Yzo6aXNfbWluX2Rh dGUoIjIwMTgtMTItMTgiKSB7Ci0rLy8hICAgICAgIFNvbWUodHJ1ZSkgPT4gIlllcCEgSXQncyBy ZWNlbnQhIiwKLSsvLyEgICAgICAgU29tZShmYWxzZSkgPT4gIk5vLCBpdCdzIG9sZGVyLiIsCi0r Ly8hICAgICAgIE5vbmUgPT4gIkNvdWxkbid0IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4i Ci0rLy8hICAgfTsKLSsvLyEgICBgYGAKLSsvLyEKLSsvLyEgICBTZWUgW2Bpc19tYXhfZGF0ZWBd IG9yIFtgaXNfZXhhY3RfZGF0ZWBdIHRvIGNoZWNrIGlmIHRoZSBjb21waWxlciB3YXMKLSsvLyEg ICByZWxlYXNlZCBfcHJpb3IgdG9fIG9yIF9leGFjdGx5IG9uXyBhIGNlcnRhaW4gZGF0ZS4KLSsv LyEKLSsvLyEgKiBDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHN1cHBvcnRzIGZlYXR1 cmUgZmxhZ3M6Ci0rLy8hCi0rLy8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJz aW9uX2NoZWNrIGFzIHJ1c3RjOwotKy8vIQotKy8vISAgIG1hdGNoIHJ1c3RjOjppc19mZWF0dXJl X2ZsYWdnYWJsZSgpIHsKLSsvLyEgICAgICAgU29tZSh0cnVlKSA9PiAiWWVzISBJdCdzIGEgZGV2 IG9yIG5pZ2h0bHkgcmVsZWFzZSEiLAotKy8vISAgICAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0 J3Mgc3RhYmxlIG9yIGJldGEuIiwKLSsvLyEgICAgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJt aW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKLSsvLyEgICB9OwotKy8vISAgIGBgYAotKy8vIQotKy8v ISAqIENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgYSBzcGVjaWZpYyBm ZWF0dXJlOgotKy8vIQotKy8vISAgIGBgYHJ1c3QKLSsvLyEgICBleHRlcm4gY3JhdGUgdmVyc2lv bl9jaGVjayBhcyBydXN0YzsKLSsvLyEKLSsvLyEgICBpZiBsZXQgU29tZSh0cnVlKSA9IHJ1c3Rj OjpzdXBwb3J0c19mZWF0dXJlKCJkb2NfY2ZnIikgewotKy8vISAgICAgIHByaW50bG4hKCJjYXJn bzpydXN0Yy1jZmc9aGFzX2RvY19jZmciKTsKLSsvLyEgICB9Ci0rLy8hICAgYGBgCi0rLy8hCi0r Ly8hICogQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBpcyBvbiB0aGUgc3RhYmxlIGNo YW5uZWw6Ci0rLy8hCi0rLy8hICAgYGBgcnVzdAotKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9u X2NoZWNrIGFzIHJ1c3RjOwotKy8vIQotKy8vISAgIG1hdGNoIHJ1c3RjOjpDaGFubmVsOjpyZWFk KCkgewotKy8vISAgICAgICBTb21lKGMpIGlmIGMuaXNfc3RhYmxlKCkgPT4gZm9ybWF0ISgiWWVz ISBJdCdzIHN0YWJsZS4iKSwKLSsvLyEgICAgICAgU29tZShjKSA9PiBmb3JtYXQhKCJObywgdGhl IGNoYW5uZWwge30gaXMgbm90IHN0YWJsZS4iLCBjKSwKLSsvLyEgICAgICAgTm9uZSA9PiBmb3Jt YXQhKCJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24uIikKLSsvLyEgICB9Owot Ky8vISAgIGBgYAotKy8vIQotKy8vISBUbyBpbnRlcmFjdCB3aXRoIHRoZSB2ZXJzaW9uLCByZWxl YXNlIGRhdGUsIGFuZCByZWxlYXNlIGNoYW5uZWwgYXMgc3RydWN0cywKLSsvLyEgdXNlIFtgVmVy c2lvbmBdLCBbYERhdGVgXSwgYW5kIFtgQ2hhbm5lbGBdLCByZXNwZWN0aXZlbHkuIFRoZSBbYHRy aXBsZSgpYF0KLSsvLyEgZnVuY3Rpb24gcmV0dXJucyBhbGwgdGhyZWUgdmFsdWVzIGVmZmljaWVu dGx5LgotKy8vIQotKy8vISAjIEFsdGVybmF0aXZlcwotKy8vIQotKy8vISBUaGlzIGNyYXRlIGlz IGRlYWQgc2ltcGxlIHdpdGggbm8gZGVwZW5kZW5jaWVzLiBJZiB5b3UgbmVlZCBzb21ldGhpbmcg bW9yZQotKy8vISBhbmQgZG9uJ3QgY2FyZSBhYm91dCBwYW5pY2tpbmcgaWYgdGhlIHZlcnNpb24g Y2Fubm90IGJlIG9idGFpbmVkLCBvciBpZiB5b3UKLSsvLyEgZG9uJ3QgbWluZCBhZGRpbmcgZGVw ZW5kZW5jaWVzLCBzZWUKLSsvLyEgW3J1c3RjX3ZlcnNpb25dKGh0dHBzOi8vY3JhdGVzLmlvL2Ny YXRlcy9ydXN0Y192ZXJzaW9uKS4KLSsKLSsjIVthbGxvdyhkZXByZWNhdGVkKV0KLSsKLSttb2Qg dmVyc2lvbjsKLSttb2QgY2hhbm5lbDsKLSttb2QgZGF0ZTsKLSsKLSt1c2Ugc3RkOjplbnY7Ci0r dXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKLSsKLSsjW2RvYyhpbmxpbmUpXSBwdWIgdXNlIHZl cnNpb246Oio7Ci0rI1tkb2MoaW5saW5lKV0gcHViIHVzZSBjaGFubmVsOjoqOwotKyNbZG9jKGlu bGluZSldIHB1YiB1c2UgZGF0ZTo6KjsKLSsKLSsvLy8gUGFyc2VzICh2ZXJzaW9uLCBkYXRlKSBh cyBhdmFpbGFibGUgZnJvbSBydXN0YyB2ZXJzaW9uIHN0cmluZy4KLStmbiB2ZXJzaW9uX2FuZF9k YXRlX2Zyb21fcnVzdGNfdmVyc2lvbihzOiAmc3RyKSAtPiAoT3B0aW9uPFN0cmluZz4sIE9wdGlv bjxTdHJpbmc+KSB7Ci0rICAgIGxldCBsYXN0X2xpbmUgPSBzLmxpbmVzKCkubGFzdCgpLnVud3Jh cF9vcihzKTsKLSsgICAgbGV0IG11dCBjb21wb25lbnRzID0gbGFzdF9saW5lLnRyaW0oKS5zcGxp dCgiICIpOwotKyAgICBsZXQgdmVyc2lvbiA9IGNvbXBvbmVudHMubnRoKDEpOwotKyAgICBsZXQg ZGF0ZSA9IGNvbXBvbmVudHMuZmlsdGVyKHxjfCBjLmVuZHNfd2l0aCgnKScpKS5uZXh0KCkKLSsg ICAgICAgIC5tYXAofHN8IHMudHJpbV9yaWdodCgpLnRyaW1fcmlnaHRfbWF0Y2hlcygiKSIpLnRy aW1fbGVmdCgpLnRyaW1fbGVmdF9tYXRjaGVzKCcoJykpOwotKyAgICAodmVyc2lvbi5tYXAofHN8 IHMudG9fc3RyaW5nKCkpLCBkYXRlLm1hcCh8c3wgcy50b19zdHJpbmcoKSkpCi0rfQotKwotKy8v LyBQYXJzZXMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9tIHJ1c3RjIHZlcmJvc2Ug dmVyc2lvbiBvdXRwdXQuCi0rZm4gdmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcmJvc2Vf dmVyc2lvbihzOiAmc3RyKSAtPiAoT3B0aW9uPFN0cmluZz4sIE9wdGlvbjxTdHJpbmc+KSB7Ci0r ICAgIGxldCAobXV0IHZlcnNpb24sIG11dCBkYXRlKSA9IChOb25lLCBOb25lKTsKLSsgICAgZm9y IGxpbmUgaW4gcy5saW5lcygpIHsKLSsgICAgICAgIGxldCBzcGxpdCA9IHxzOiAmc3RyfCBzLnNw bGl0bigyLCAiOiIpLm50aCgxKS5tYXAofHN8IHMudHJpbSgpLnRvX3N0cmluZygpKTsKLSsgICAg ICAgIG1hdGNoIGxpbmUudHJpbSgpLnNwbGl0KCIgIikubnRoKDApIHsKLSsgICAgICAgICAgICBT b21lKCJydXN0YyIpID0+IHsKLSsgICAgICAgICAgICAgICAgbGV0ICh2LCBkKSA9IHZlcnNpb25f YW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJzaW9uKGxpbmUpOwotKyAgICAgICAgICAgICAgICB2ZXJz aW9uID0gdmVyc2lvbi5vcih2KTsKLSsgICAgICAgICAgICAgICAgZGF0ZSA9IGRhdGUub3IoZCk7 Ci0rICAgICAgICAgICAgfSwKLSsgICAgICAgICAgICBTb21lKCJyZWxlYXNlOiIpID0+IHZlcnNp b24gPSBzcGxpdChsaW5lKSwKLSsgICAgICAgICAgICBTb21lKCJjb21taXQtZGF0ZToiKSBpZiBs aW5lLmVuZHNfd2l0aCgidW5rbm93biIpID0+IGRhdGUgPSBOb25lLAotKyAgICAgICAgICAgIFNv bWUoImNvbW1pdC1kYXRlOiIpID0+IGRhdGUgPSBzcGxpdChsaW5lKSwKLSsgICAgICAgICAgICBf ID0+IGNvbnRpbnVlCi0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgKHZlcnNpb24sIGRhdGUp Ci0rfQotKwotKy8vLyBSZXR1cm5zICh2ZXJzaW9uLCBkYXRlKSBhcyBhdmFpbGFibGUgZnJvbSBg cnVzdGMgLS12ZXJzaW9uYC4KLStmbiBnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpIC0+IE9wdGlvbjwo T3B0aW9uPFN0cmluZz4sIE9wdGlvbjxTdHJpbmc+KT4gewotKyAgICBsZXQgcnVzdGMgPSBlbnY6 OnZhcigiUlVTVEMiKS51bndyYXBfb3JfZWxzZSh8X3wgInJ1c3RjIi50b19zdHJpbmcoKSk7Ci0r ICAgIENvbW1hbmQ6Om5ldyhydXN0YykuYXJnKCItLXZlcmJvc2UiKS5hcmcoIi0tdmVyc2lvbiIp Lm91dHB1dCgpLm9rKCkKLSsgICAgICAgIC5hbmRfdGhlbih8b3V0cHV0fCBTdHJpbmc6OmZyb21f dXRmOChvdXRwdXQuc3Rkb3V0KS5vaygpKQotKyAgICAgICAgLm1hcCh8c3wgdmVyc2lvbl9hbmRf ZGF0ZV9mcm9tX3J1c3RjX3ZlcmJvc2VfdmVyc2lvbigmcykpCi0rfQotKwotKy8vLyBSZWFkcyB0 aGUgdHJpcGxlIG9mIFtgVmVyc2lvbmBdLCBbYENoYW5uZWxgXSwgYW5kIFtgRGF0ZWBdIG9mIHRo ZSBpbnN0YWxsZWQKLSsvLy8gb3IgcnVubmluZyBgcnVzdGNgLgotKy8vLwotKy8vLyBJZiBhbnkg YXR0cmlidXRlIGNhbm5vdCBiZSBkZXRlcm1pbmVkIChzZWUgdGhlIFt0b3AtbGV2ZWwKLSsvLy8g ZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCi0rLy8vCi0rLy8vIFRvIG9i dGFpbiBvbmx5IG9uZSBvZiB0aHJlZSBhdHRyaWJ1dGVzLCB1c2UgW2BWZXJzaW9uOjpyZWFkKClg XSwKLSsvLy8gW2BDaGFubmVsOjpyZWFkKClgXSwgb3IgW2BEYXRlOjpyZWFkKClgXS4KLStwdWIg Zm4gdHJpcGxlKCkgLT4gT3B0aW9uPChWZXJzaW9uLCBDaGFubmVsLCBEYXRlKT4gewotKyAgICBs ZXQgKHZlcnNpb25fc3RyLCBkYXRlX3N0cikgPSBtYXRjaCBnZXRfdmVyc2lvbl9hbmRfZGF0ZSgp IHsKLSsgICAgICAgIFNvbWUoKFNvbWUodmVyc2lvbiksIFNvbWUoZGF0ZSkpKSA9PiAodmVyc2lv biwgZGF0ZSksCi0rICAgICAgICBfID0+IHJldHVybiBOb25lCi0rICAgIH07Ci0rCi0rICAgIC8v IENhbid0IHVzZSBgP2Agb3IgYHRyeSFgIGZvciBgT3B0aW9uYCBpbiAxLjAuMC4KLSsgICAgbWF0 Y2ggVmVyc2lvbjo6cGFyc2UoJnZlcnNpb25fc3RyKSB7Ci0rICAgICAgICBTb21lKHZlcnNpb24p ID0+IG1hdGNoIENoYW5uZWw6OnBhcnNlKCZ2ZXJzaW9uX3N0cikgewotKyAgICAgICAgICAgIFNv bWUoY2hhbm5lbCkgPT4gbWF0Y2ggRGF0ZTo6cGFyc2UoJmRhdGVfc3RyKSB7Ci0rICAgICAgICAg ICAgICAgIFNvbWUoZGF0ZSkgPT4gU29tZSgodmVyc2lvbiwgY2hhbm5lbCwgZGF0ZSkpLAotKyAg ICAgICAgICAgICAgICBfID0+IE5vbmUsCi0rICAgICAgICAgICAgfSwKLSsgICAgICAgICAgICBf ID0+IE5vbmUsCi0rICAgICAgICB9LAotKyAgICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0r Ci0rLy8vIENoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHdhcyBy ZWxlYXNlZCAqKm9uIG9yIGFmdGVyKioKLSsvLy8gc29tZSBkYXRlLgotKy8vLwotKy8vLyBUaGUg Zm9ybWF0IG9mIGBtaW5fZGF0ZWAgbXVzdCBiZSBZWVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAy MDE2LTEyLTIwYCBvcgotKy8vLyBgMjAxNy0wMS0wOWAuCi0rLy8vCi0rLy8vIElmIHRoZSBkYXRl IGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWluX2RhdGVgIGNvdWxkIG5v dCBiZQotKy8vLyBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1 ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCi0rLy8vIHdhcyByZWxlYXNlIG9uIG9yIGFmdGVy IGBtaW5fZGF0ZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgotK3B1YiBmbiBpc19taW5fZGF0ZSht aW5fZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKLSsgICAgbWF0Y2ggKERhdGU6OnJlYWQo KSwgRGF0ZTo6cGFyc2UobWluX2RhdGUpKSB7Ci0rICAgICAgICAoU29tZShydXN0Y19kYXRlKSwg U29tZShtaW5fZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA+PSBtaW5fZGF0ZSksCi0rICAgICAg ICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcg b3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2VkICoqb24gb3IgYmVmb3JlKioKLSsvLy8g c29tZSBkYXRlLgotKy8vLwotKy8vLyBUaGUgZm9ybWF0IG9mIGBtYXhfZGF0ZWAgbXVzdCBiZSBZ WVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAyMDE2LTEyLTIwYCBvcgotKy8vLyBgMjAxNy0wMS0w OWAuCi0rLy8vCi0rLy8vIElmIHRoZSBkYXRlIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2Vk LCBvciBpZiBgbWF4X2RhdGVgIGNvdWxkIG5vdCBiZQotKy8vLyBwYXJzZWQsIHJldHVybnMgYE5v bmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCi0r Ly8vIHdhcyByZWxlYXNlIG9uIG9yIGJlZm9yZSBgbWF4X2RhdGVgIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KLStwdWIgZm4gaXNfbWF4X2RhdGUobWF4X2RhdGU6ICZzdHIpIC0+IE9wdGlvbjxib29s PiB7Ci0rICAgIG1hdGNoIChEYXRlOjpyZWFkKCksIERhdGU6OnBhcnNlKG1heF9kYXRlKSkgewot KyAgICAgICAgKFNvbWUocnVzdGNfZGF0ZSksIFNvbWUobWF4X2RhdGUpKSA9PiBTb21lKHJ1c3Rj X2RhdGUgPD0gbWF4X2RhdGUpLAotKyAgICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0rCi0r Ly8vIENoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHdhcyByZWxl YXNlZCAqKmV4YWN0bHkqKiBvbgotKy8vLyBzb21lIGRhdGUuCi0rLy8vCi0rLy8vIFRoZSBmb3Jt YXQgb2YgYGRhdGVgIG11c3QgYmUgWVlZWS1NTS1ERC4gRm9yIGluc3RhbmNlOiBgMjAxNi0xMi0y MGAgb3IKLSsvLy8gYDIwMTctMDEtMDlgLgotKy8vLwotKy8vLyBJZiB0aGUgZGF0ZSBjYW5ub3Qg YmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYGRhdGVgIGNvdWxkIG5vdCBiZSBwYXJzZWQs Ci0rLy8vIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGlu c3RhbGxlZCBgcnVzdGNgIHdhcwotKy8vLyByZWxlYXNlIG9uIGBkYXRlYCBhbmQgYGZhbHNlYCBv dGhlcndpc2UuCi0rcHViIGZuIGlzX2V4YWN0X2RhdGUoZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJv b2w+IHsKLSsgICAgbWF0Y2ggKERhdGU6OnJlYWQoKSwgRGF0ZTo6cGFyc2UoZGF0ZSkpIHsKLSsg ICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21lKGRhdGUpKSA9PiBTb21lKHJ1c3RjX2RhdGUg PT0gZGF0ZSksCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tz IHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2AgaXMgKiphdCBsZWFzdCoqIHNv bWUgbWluaW11bQotKy8vLyB2ZXJzaW9uLgotKy8vLwotKy8vLyBUaGUgZm9ybWF0IG9mIGBtaW5f dmVyc2lvbmAgaXMgYSBzZW1hbnRpYyB2ZXJzaW9uOiBgMS4zLjBgLCBgMS4xNS4wLWJldGFgLAot Ky8vLyBgMS4xNC4wYCwgYDEuMTYuMC1uaWdodGx5YCwgZXRjLgotKy8vLwotKy8vLyBJZiB0aGUg dmVyc2lvbiBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYG1pbl92ZXJzaW9u YCBjb3VsZCBub3QKLSsvLy8gYmUgcGFyc2VkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJl dHVybnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3RjYAotKy8vLyBpcyBhdCBsZWFzdCBg bWluX3ZlcnNpb25gIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLStwdWIgZm4gaXNfbWluX3ZlcnNp b24obWluX3ZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7Ci0rICAgIG1hdGNoIChWZXJz aW9uOjpyZWFkKCksIFZlcnNpb246OnBhcnNlKG1pbl92ZXJzaW9uKSkgewotKyAgICAgICAgKFNv bWUocnVzdGNfdmVyKSwgU29tZShtaW5fdmVyKSkgPT4gU29tZShydXN0Y192ZXIgPj0gbWluX3Zl ciksCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hlY2tzIHRoYXQg dGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2AgaXMgKiphdCBtb3N0Kiogc29tZSBtYXhp bXVtCi0rLy8vIHZlcnNpb24uCi0rLy8vCi0rLy8vIFRoZSBmb3JtYXQgb2YgYG1heF92ZXJzaW9u YCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAtYmV0YWAsCi0rLy8vIGAx LjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMuCi0rLy8vCi0rLy8vIElmIHRoZSB2ZXJzaW9u IGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWF4X3ZlcnNpb25gIGNvdWxk IG5vdAotKy8vLyBiZSBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBg dHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCi0rLy8vIGlzIGF0IG1vc3QgYG1heF92ZXJz aW9uYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rcHViIGZuIGlzX21heF92ZXJzaW9uKG1heF92 ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAgICBtYXRjaCAoVmVyc2lvbjo6cmVh ZCgpLCBWZXJzaW9uOjpwYXJzZShtYXhfdmVyc2lvbikpIHsKLSsgICAgICAgIChTb21lKHJ1c3Rj X3ZlciksIFNvbWUobWF4X3ZlcikpID0+IFNvbWUocnVzdGNfdmVyIDw9IG1heF92ZXIpLAotKyAg ICAgICAgXyA9PiBOb25lCi0rICAgIH0KLSt9Ci0rCi0rLy8vIENoZWNrcyB0aGF0IHRoZSBydW5u aW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIGlzICoqZXhhY3RseSoqIHNvbWUgdmVyc2lvbi4KLSsv Ly8KLSsvLy8gVGhlIGZvcm1hdCBvZiBgdmVyc2lvbmAgaXMgYSBzZW1hbnRpYyB2ZXJzaW9uOiBg MS4zLjBgLCBgMS4xNS4wLWJldGFgLAotKy8vLyBgMS4xNC4wYCwgYDEuMTYuMC1uaWdodGx5YCwg ZXRjLgotKy8vLwotKy8vLyBJZiB0aGUgdmVyc2lvbiBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBh cnNlZCwgb3IgaWYgYHZlcnNpb25gIGNvdWxkIG5vdCBiZQotKy8vLyBwYXJzZWQsIHJldHVybnMg YE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNg IGlzCi0rLy8vIGV4YWN0bHkgYHZlcnNpb25gIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KLStwdWIg Zm4gaXNfZXhhY3RfdmVyc2lvbih2ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4gewotKyAg ICBtYXRjaCAoVmVyc2lvbjo6cmVhZCgpLCBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKSkgewotKyAg ICAgICAgKFNvbWUocnVzdGNfdmVyKSwgU29tZSh2ZXJzaW9uKSkgPT4gU29tZShydXN0Y192ZXIg PT0gdmVyc2lvbiksCi0rICAgICAgICBfID0+IE5vbmUKLSsgICAgfQotK30KLSsKLSsvLy8gQ2hl Y2tzIHdoZXRoZXIgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agc3VwcG9ydHMgZmVh dHVyZSBmbGFncy4KLSsvLy8KLSsvLy8gSW4gb3RoZXIgd29yZHMsIGlmIHRoZSBjaGFubmVsIGlz IGVpdGhlciAibmlnaHRseSIgb3IgImRldiIuCi0rLy8vCi0rLy8vIE5vdGUgdGhhdCBzdXBwb3J0 IGZvciBzcGVjaWZpYyBgcnVzdGNgIGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVk Ci0rLy8vIHZpYSB0aGUgYGFsbG93LWZlYXR1cmVzYCBjb21waWxlciBmbGFnLCB3aGljaCB0aGlz IGZ1bmN0aW9uIF9kb2VzIG5vdF8KLSsvLy8gY2hlY2suIFRoYXQgaXMsIHRoaXMgZnVuY3Rpb24g X2RvZXMgbm90XyBjaGVjayB3aGV0aGVyIGEgX3NwZWNpZmljXyBmZWF0dXJlCi0rLy8vIGlzIHN1 cHBvcnRlZCwgYnV0IGluc3RlYWQgd2hldGhlciBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkIGF0IGFs bC4gVG8gY2hlY2sKLSsvLy8gZm9yIHN1cHBvcnQgZm9yIGEgc3BlY2lmaWMgZmVhdHVyZSwgdXNl IFtgc3VwcG9ydHNfZmVhdHVyZSgpYF0uCi0rLy8vCi0rLy8vIElmIHRoZSB2ZXJzaW9uIGNvdWxk IG5vdCBiZSBkZXRlcm1pbmVkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMKLSsv Ly8gYHRydWVgIGlmIHRoZSBydW5uaW5nIHZlcnNpb24gc3VwcG9ydHMgZmVhdHVyZSBmbGFncyBh bmQgYGZhbHNlYCBvdGhlcndpc2UuCi0rcHViIGZuIGlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgLT4g T3B0aW9uPGJvb2w+IHsKLSsgICAgQ2hhbm5lbDo6cmVhZCgpLm1hcCh8Y3wgYy5zdXBwb3J0c19m ZWF0dXJlcygpKQotK30KLSsKLSsvLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIHJ1bm5pbmcgb3IgaW5z dGFsbGVkIGBydXN0Y2Agc3VwcG9ydHMgYGZlYXR1cmVgLgotKy8vLwotKy8vLyBSZXR1cm5zIF90 cnVlXyBfaWZmXyBbYGlzX2ZlYXR1cmVfZmxhZ2dhYmxlKClgXSByZXR1cm5zIGB0cnVlYCBfYW5k XyB0aGUKLSsvLy8gZmVhdHVyZSBpcyBub3QgZGlzYWJsZWQgdmlhIGV4Y2x1c2lvbiBpbiBgYWxs b3ctZmVhdHVyZXNgIHZpYSBgUlVTVEZMQUdTYCBvcgotKy8vLyBgQ0FSR09fRU5DT0RFRF9SVVNU RkxBR1NgLiBJZiB0aGUgdmVyc2lvbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCwgcmV0dXJucwot Ky8vLyBgTm9uZWAuCi0rLy8vCi0rLy8vICMgRXhhbXBsZQotKy8vLwotKy8vLyBgYGBydXN0Ci0r Ly8vIHVzZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOwotKy8vLwotKy8vLyBpZiBsZXQgU29tZSh0 cnVlKSA9IHJ1c3RjOjpzdXBwb3J0c19mZWF0dXJlKCJkb2NfY2ZnIikgewotKy8vLyAgICBwcmlu dGxuISgiY2FyZ286cnVzdGMtY2ZnPWhhc19kb2NfY2ZnIik7Ci0rLy8vIH0KLSsvLy8gYGBgCi0r cHViIGZuIHN1cHBvcnRzX2ZlYXR1cmUoZmVhdHVyZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsK LSsgICAgbWF0Y2ggaXNfZmVhdHVyZV9mbGFnZ2FibGUoKSB7Ci0rICAgICAgICBTb21lKHRydWUp ID0+IHsgLyogY29udGludWUgKi8gfQotKyAgICAgICAgU29tZShmYWxzZSkgPT4gcmV0dXJuIFNv bWUoZmFsc2UpLAotKyAgICAgICAgTm9uZSA9PiByZXR1cm4gTm9uZSwKLSsgICAgfQotKwotKyAg ICBsZXQgZW52X2ZsYWdzID0gZW52Ojp2YXJfb3MoIkNBUkdPX0VOQ09ERURfUlVTVEZMQUdTIikK LSsgICAgICAgIC5tYXAofGZsYWdzfCAoZmxhZ3MsICdceDFmJykpCi0rICAgICAgICAub3JfZWxz ZSh8fCBlbnY6OnZhcl9vcygiUlVTVEZMQUdTIikubWFwKHxmbGFnc3wgKGZsYWdzLCAnICcpKSk7 Ci0rCi0rICAgIGlmIGxldCBTb21lKChmbGFncywgZGVsaW0pKSA9IGVudl9mbGFncyB7Ci0rICAg ICAgICBjb25zdCBBTExPV19GRUFUVVJFUzogJidzdGF0aWMgc3RyID0gImFsbG93LWZlYXR1cmVz PSI7Ci0rCi0rICAgICAgICBsZXQgcnVzdGZsYWdzID0gZmxhZ3MudG9fc3RyaW5nX2xvc3N5KCk7 Ci0rICAgICAgICBsZXQgYWxsb3dfZmVhdHVyZXMgPSBydXN0ZmxhZ3Muc3BsaXQoZGVsaW0pCi0r ICAgICAgICAgICAgLm1hcCh8ZmxhZ3wgZmxhZy50cmltX2xlZnRfbWF0Y2hlcygiLVoiKS50cmlt KCkpCi0rICAgICAgICAgICAgLmZpbHRlcih8ZmxhZ3wgZmxhZy5zdGFydHNfd2l0aChBTExPV19G RUFUVVJFUykpCi0rICAgICAgICAgICAgLm1hcCh8ZmxhZ3wgJmZsYWdbQUxMT1dfRkVBVFVSRVMu bGVuKCkuLl0pOwotKwotKyAgICAgICAgaWYgbGV0IFNvbWUoYWxsb3dfZmVhdHVyZXMpID0gYWxs b3dfZmVhdHVyZXMubGFzdCgpIHsKLSsgICAgICAgICAgICByZXR1cm4gU29tZShhbGxvd19mZWF0 dXJlcy5zcGxpdCgnLCcpLmFueSh8ZnwgZi50cmltKCkgPT0gZmVhdHVyZSkpOwotKyAgICAgICAg fQotKyAgICB9Ci0rCi0rICAgIC8vIElmIHRoZXJlIGFyZSBubyBgUlVTVEZMQUdTYCBvciBgQ0FS R09fRU5DT0RFRF9SVVNURkxBR1NgIG9yIHRoZXkgZG9uJ3QKLSsgICAgLy8gY29udGFpbiBhbiBg YWxsb3ctZmVhdHVyZXNgIGZsYWcsIGFzc3VtZSBjb21waWxlciBhbGxvd3MgYWxsIGZlYXR1cmVz LgotKyAgICBTb21lKHRydWUpCi0rfQotKwotKyNbY2ZnKHRlc3QpXQotK21vZCB0ZXN0cyB7Ci0r ICAgIHVzZSBzdGQ6OntlbnYsIGZzfTsKLSsKLSsgICAgdXNlIHN1cGVyOjp2ZXJzaW9uX2FuZF9k YXRlX2Zyb21fcnVzdGNfdmVyc2lvbjsKLSsgICAgdXNlIHN1cGVyOjp2ZXJzaW9uX2FuZF9kYXRl X2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJzaW9uOwotKwotKyAgICBtYWNyb19ydWxlcyEgY2hlY2tf cGFyc2UgewotKyAgICAgICAgKEAgJGY6ZXhwciwgJHM6ZXhwciA9PiAkdjpleHByLCAkZDpleHBy KSA9PiAoewotKyAgICAgICAgICAgIGlmIGxldCAoU29tZSh2KSwgZCkgPSAkZigmJHMpIHsKLSsg ICAgICAgICAgICAgICAgbGV0IGVfZDogT3B0aW9uPCZzdHI+ID0gJGQuaW50bygpOwotKyAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKCh2LCBkKSwgKCR2LnRvX3N0cmluZygpLCBlX2QubWFwKHxz fCBzLmludG8oKSkpKTsKLSsgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICBw YW5pYyEoIns6P30gZGlkbid0IHBhcnNlIGZvciB2ZXJzaW9uIHRlc3RpbmcuIiwgJHMpOwotKyAg ICAgICAgICAgIH0KLSsgICAgICAgIH0pOwotKyAgICAgICAgKCRmOmV4cHIsICRzOmV4cHIgPT4g JHY6ZXhwciwgJGQ6ZXhwcikgPT4gKHsKLSsgICAgICAgICAgICBsZXQgd2FybiA9ICJ3YXJuaW5n OiBpbnZhbGlkIGxvZ2dpbmcgc3BlYyAnd2FybmluZycsIGlnbm9yaW5nIGl0IjsKLSsgICAgICAg ICAgICBsZXQgd2FybjIgPSAid2FybmluZzogc29ycnksIHNvbWV0aGluZyB3ZW50IHdyb25nIDoo c2FkKSI7Ci0rICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICRzID0+ICR2LCAkZCk7Ci0r ICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICZmb3JtYXQhKCJ7fVxue30iLCB3YXJuLCAk cykgPT4gJHYsICRkKTsKLSsgICAgICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEo Int9XG57fSIsIHdhcm4yLCAkcykgPT4gJHYsICRkKTsKLSsgICAgICAgICAgICBjaGVja19wYXJz ZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fVxue30iLCB3YXJuLCB3YXJuMiwgJHMpID0+ICR2LCAk ZCk7Ci0rICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICZmb3JtYXQhKCJ7fVxue31cbnt9 Iiwgd2FybjIsIHdhcm4sICRzKSA9PiAkdiwgJGQpOwotKyAgICAgICAgfSkKLSsgICAgfQotKwot KyAgICBtYWNyb19ydWxlcyEgY2hlY2tfdGVyc2VfcGFyc2UgewotKyAgICAgICAgKCQoJHM6ZXhw ciA9PiAkdjpleHByLCAkZDpleHByLCkrKSA9PiB7JCgKLSsgICAgICAgICAgICBjaGVja19wYXJz ZSEodmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb24sICRzID0+ICR2LCAkZCk7Ci0r ICAgICAgICApK30KLSsgICAgfQotKwotKyAgICBtYWNyb19ydWxlcyEgY2hlY2tfdmVyYm9zZV9w YXJzZSB7Ci0rICAgICAgICAoJCgkczpleHByID0+ICR2OmV4cHIsICRkOmV4cHIsKSspID0+IHsk KAotKyAgICAgICAgICAgIGNoZWNrX3BhcnNlISh2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNf dmVyYm9zZV92ZXJzaW9uLCAkcyA9PiAkdiwgJGQpOwotKyAgICAgICAgKSt9Ci0rICAgIH0KLSsK LSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X3ZlcnNpb25fcGFyc2UoKSB7Ci0rICAgICAgICBj aGVja190ZXJzZV9wYXJzZSEgewotKyAgICAgICAgICAgICJydXN0YyAxLjE4LjAiID0+ICIxLjE4 LjAiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAxLjguMCIgPT4gIjEuOC4wIiwgTm9uZSwK LSsgICAgICAgICAgICAicnVzdGMgMS4yMC4wLW5pZ2h0bHkiID0+ICIxLjIwLjAtbmlnaHRseSIs IE5vbmUsCi0rICAgICAgICAgICAgInJ1c3RjIDEuMjAiID0+ICIxLjIwIiwgTm9uZSwKLSsgICAg ICAgICAgICAicnVzdGMgMS4zIiA9PiAiMS4zIiwgTm9uZSwKLSsgICAgICAgICAgICAicnVzdGMg MSIgPT4gIjEiLCBOb25lLAotKyAgICAgICAgICAgICJydXN0YyAxLjUuMS1iZXRhIiA9PiAiMS41 LjEtYmV0YSIsIE5vbmUsCi0rICAgICAgICAgICAgInJ1c3RjIDEuMjAuMCAoMjAxNy0wNy0wOSki ID0+ICIxLjIwLjAiLCBTb21lKCIyMDE3LTA3LTA5IiksCi0rICAgICAgICAgICAgInJ1c3RjIDEu MjAuMC1kZXYgKDIwMTctMDctMDkpIiA9PiAiMS4yMC4wLWRldiIsIFNvbWUoIjIwMTctMDctMDki KSwKLSsgICAgICAgICAgICAicnVzdGMgMS4yMC4wLW5pZ2h0bHkgKGQ4NDY5M2I5MyAyMDE3LTA3 LTA5KSIgPT4gIjEuMjAuMC1uaWdodGx5IiwgU29tZSgiMjAxNy0wNy0wOSIpLAotKyAgICAgICAg ICAgICJydXN0YyAxLjIwLjAgKGQ4NDY5M2I5MyAyMDE3LTA3LTA5KSIgPT4gIjEuMjAuMCIsIFNv bWUoIjIwMTctMDctMDkiKSwKLSsgICAgICAgICAgICAicnVzdGMgMS4zMC4wLW5pZ2h0bHkgKDNi YzJjYTdlNCAyMDE4LTA5LTIwKSIgPT4gIjEuMzAuMC1uaWdodGx5IiwgU29tZSgiMjAxOC0wOS0y MCIpLAotKyAgICAgICAgfTsKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0rICAgIGZuIHRlc3Rf dmVyYm9zZV92ZXJzaW9uX3BhcnNlKCkgewotKyAgICAgICAgY2hlY2tfdmVyYm9zZV9wYXJzZSEg ewotKyAgICAgICAgICAgICJydXN0YyAxLjAuMCAoYTU5ZGUzN2U5IDIwMTUtMDUtMTMpIChidWls dCAyMDE1LTA1LTE0KVxuXAotKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCi0rICAg ICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiBhNTlkZTM3ZTk5MDYwMTYyYTI2NzRlM2ZmNDU0MDlh YzczNTk1YzBlXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiAyMDE1LTA1LTEzXG5c Ci0rICAgICAgICAgICAgICAgIGJ1aWxkLWRhdGU6IDIwMTUtMDUtMTRcblwKLSsgICAgICAgICAg ICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAgICAg IHJlbGVhc2U6IDEuMC4wIiA9PiAiMS4wLjAiLCBTb21lKCIyMDE1LTA1LTEzIiksCi0rCi0rICAg ICAgICAgICAgInJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIwMTUt MDUtMTQpXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiBhNTlkZTM3ZTk5MDYwMTYy YTI2NzRlM2ZmNDU0MDlhYzczNTk1YzBlXG5cCi0rICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRl OiAyMDE1LTA1LTEzXG5cCi0rICAgICAgICAgICAgICAgIGJ1aWxkLWRhdGU6IDIwMTUtMDUtMTRc blwKLSsgICAgICAgICAgICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0r ICAgICAgICAgICAgICAgIHJlbGVhc2U6IDEuMC4wIiA9PiAiMS4wLjAiLCBTb21lKCIyMDE1LTA1 LTEzIiksCi0rCi0rICAgICAgICAgICAgInJ1c3RjIDEuNTAuMCAoY2I3NWFkNWRiIDIwMjEtMDIt MTApXG5cCi0rICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAgICAgICAg ICAgY29tbWl0LWhhc2g6IGNiNzVhZDVkYjAyNzgzZThiMDIyMmZlZTM2M2M1ZjYzZjdlMmNmNWJc blwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMjEtMDItMTBcblwKLSsgICAgICAg ICAgICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAg ICAgIHJlbGVhc2U6IDEuNTAuMCIgPT4gIjEuNTAuMCIsIFNvbWUoIjIwMjEtMDItMTAiKSwKLSsK LSsgICAgICAgICAgICAicnVzdGMgMS41Mi4wLW5pZ2h0bHkgKDIzNDc4MWFmZSAyMDIxLTAzLTA3 KVxuXAotKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCi0rICAgICAgICAgICAgICAg IGNvbW1pdC1oYXNoOiAyMzQ3ODFhZmUzM2QzZjMzOWIwMDJmODVmOTQ4MDQ2ZDg0NzZjZmM5XG5c Ci0rICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiAyMDIxLTAzLTA3XG5cCi0rICAgICAgICAg ICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAotKyAgICAgICAgICAgICAg ICByZWxlYXNlOiAxLjUyLjAtbmlnaHRseVxuXAotKyAgICAgICAgICAgICAgICBMTFZNIHZlcnNp b246IDEyLjAuMCIgPT4gIjEuNTIuMC1uaWdodGx5IiwgU29tZSgiMjAyMS0wMy0wNyIpLAotKwot KyAgICAgICAgICAgICJydXN0YyAxLjQxLjFcblwKLSsgICAgICAgICAgICAgICAgYmluYXJ5OiBy dXN0Y1xuXAotKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAotKyAgICAg ICAgICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAotKyAgICAgICAgICAgICAgICBob3N0 OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKLSsgICAgICAgICAgICAgICAgcmVsZWFzZTog MS40MS4xXG5cCi0rICAgICAgICAgICAgICAgIExMVk0gdmVyc2lvbjogNy4wIiA9PiAiMS40MS4x IiwgTm9uZSwKLSsKLSsgICAgICAgICAgICAicnVzdGMgMS40OS4wXG5cCi0rICAgICAgICAgICAg ICAgIGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IHVua25v d25cblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IHVua25vd25cblwKLSsgICAgICAg ICAgICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAg ICAgIHJlbGVhc2U6IDEuNDkuMCIgPT4gIjEuNDkuMCIsIE5vbmUsCi0rCi0rICAgICAgICAgICAg InJ1c3RjIDEuNTAuMCAoRmVkb3JhIDEuNTAuMC0xLmZjMzMpXG5cCi0rICAgICAgICAgICAgICAg IGJpbmFyeTogcnVzdGNcblwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IHVua25vd25c blwKLSsgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IHVua25vd25cblwKLSsgICAgICAgICAg ICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCi0rICAgICAgICAgICAgICAg IHJlbGVhc2U6IDEuNTAuMCIgPT4gIjEuNTAuMCIsIE5vbmUsCi0rICAgICAgICB9OwotKyAgICB9 Ci0rCi0rICAgIGZuIHJlYWRfc3RhdGljKHZlcmJvc2U6IGJvb2wsIGNoYW5uZWw6ICZzdHIsIG1p bm9yOiB1c2l6ZSkgLT4gU3RyaW5nIHsKLSsgICAgICAgIHVzZSBzdGQ6OmZzOjpGaWxlOwotKyAg ICAgICAgdXNlIHN0ZDo6cGF0aDo6UGF0aDsKLSsgICAgICAgIHVzZSBzdGQ6OmlvOjp7QnVmUmVh ZGVyLCBSZWFkfTsKLSsKLSsgICAgICAgIGxldCBzdWJkaXIgPSBpZiB2ZXJib3NlIHsgInZlcmJv c2UiIH0gZWxzZSB7ICJ0ZXJzZSIgfTsKLSsgICAgICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KFNU QVRJQ19QQVRIKQotKyAgICAgICAgICAgIC5qb2luKGNoYW5uZWwpCi0rICAgICAgICAgICAgLmpv aW4oc3ViZGlyKQotKyAgICAgICAgICAgIC5qb2luKGZvcm1hdCEoInJ1c3RjLTEue30uMCIsIG1p bm9yKSk7Ci0rCi0rICAgICAgICBsZXQgZmlsZSA9IEZpbGU6Om9wZW4ocGF0aCkudW53cmFwKCk7 Ci0rICAgICAgICBsZXQgbXV0IGJ1Zl9yZWFkZXIgPSBCdWZSZWFkZXI6Om5ldyhmaWxlKTsKLSsg ICAgICAgIGxldCBtdXQgY29udGVudHMgPSBTdHJpbmc6Om5ldygpOwotKyAgICAgICAgYnVmX3Jl YWRlci5yZWFkX3RvX3N0cmluZygmbXV0IGNvbnRlbnRzKS51bndyYXAoKTsKLSsgICAgICAgIGNv bnRlbnRzCi0rICAgIH0KLSsKLSsgICAgc3RhdGljIFNUQVRJQ19QQVRIOiAmJ3N0YXRpYyBzdHIg PSBjb25jYXQhKGVudiEoIkNBUkdPX01BTklGRVNUX0RJUiIpLCAiL3N0YXRpYyIpOwotKwotKyAg ICBzdGF0aWMgREFURVM6IFsmJ3N0YXRpYyBzdHI7IDUxXSA9IFsKLSsgICAgICAgICIyMDE1LTA1 LTEzIiwgIjIwMTUtMDYtMTkiLCAiMjAxNS0wOC0wMyIsICIyMDE1LTA5LTE1IiwgIjIwMTUtMTAt MjciLAotKyAgICAgICAgIjIwMTUtMTItMDQiLCAiMjAxNi0wMS0xOSIsICIyMDE2LTAyLTI5Iiwg IjIwMTYtMDQtMTEiLCAiMjAxNi0wNS0xOCIsCi0rICAgICAgICAiMjAxNi0wNy0wMyIsICIyMDE2 LTA4LTE1IiwgIjIwMTYtMDktMjMiLCAiMjAxNi0xMS0wNyIsICIyMDE2LTEyLTE2IiwKLSsgICAg ICAgICIyMDE3LTAxLTE5IiwgIjIwMTctMDMtMTAiLCAiMjAxNy0wNC0yNCIsICIyMDE3LTA2LTA2 IiwgIjIwMTctMDctMTciLAotKyAgICAgICAgIjIwMTctMDgtMjciLCAiMjAxNy0xMC0wOSIsICIy MDE3LTExLTIwIiwgIjIwMTgtMDEtMDEiLCAiMjAxOC0wMi0xMiIsCi0rICAgICAgICAiMjAxOC0w My0yNSIsICIyMDE4LTA1LTA3IiwgIjIwMTgtMDYtMTkiLCAiMjAxOC0wNy0zMCIsICIyMDE4LTA5 LTExIiwKLSsgICAgICAgICIyMDE4LTEwLTI0IiwgIjIwMTgtMTItMDQiLCAiMjAxOS0wMS0xNiIs ICIyMDE5LTAyLTI4IiwgIjIwMTktMDQtMTAiLAotKyAgICAgICAgIjIwMTktMDUtMjAiLCAiMjAx OS0wNy0wMyIsICIyMDE5LTA4LTEzIiwgIjIwMTktMDktMjMiLCAiMjAxOS0xMS0wNCIsCi0rICAg ICAgICAiMjAxOS0xMi0xNiIsICIyMDIwLTAxLTI3IiwgIjIwMjAtMDMtMDkiLCAiMjAyMC0wNC0y MCIsICIyMDIwLTA2LTAxIiwKLSsgICAgICAgICIyMDIwLTA3LTEzIiwgIjIwMjAtMDgtMjQiLCAi MjAyMC0xMC0wNyIsICIyMDIwLTExLTE2IiwgIjIwMjAtMTItMjkiLAotKyAgICAgICAgIjIwMjEt MDItMTAiLAotKyAgICBdOwotKwotKyAgICAjW3Rlc3RdCi0rICAgIGZuIHRlc3Rfc3RhYmxlX2Nv bXBhdGliaWxpdHkoKSB7Ci0rICAgICAgICBpZiBlbnY6OnZhcl9vcygiRk9SQ0VfU1RBVElDIiku aXNfbm9uZSgpICYmIGZzOjptZXRhZGF0YShTVEFUSUNfUEFUSCkuaXNfZXJyKCkgewotKyAgICAg ICAgICAgIC8vIFdlIGV4Y2x1ZGUgYC9zdGF0aWNgIHdoZW4gd2UgcGFja2FnZSBgdmVyc2lvbl9j aGVja2AsIHNvIGRvbid0Ci0rICAgICAgICAgICAgLy8gcnVuIGlmIHN0YXRpYyBmaWxlcyBhcmVu J3QgcHJlc2VudCB1bmxlc3Mgd2Uga25vdyB0aGV5IHNob3VsZCBiZS4KLSsgICAgICAgICAgICBy ZXR1cm47Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICAvLyBFbnN1cmUgd2UgY2FuIHBhcnNlIGFs bCBvdXRwdXQgZnJvbSBhbGwgTGludXggc3RhYmxlIHJlbGVhc2VzLgotKyAgICAgICAgZm9yIHYg aW4gMC4uREFURVMubGVuKCkgewotKyAgICAgICAgICAgIGxldCAodmVyc2lvbiwgZGF0ZSkgPSAo JmZvcm1hdCEoIjEue30uMCIsIHYpLCBTb21lKERBVEVTW3ZdKSk7Ci0rICAgICAgICAgICAgY2hl Y2tfdGVyc2VfcGFyc2UhKHJlYWRfc3RhdGljKGZhbHNlLCAic3RhYmxlIiwgdikgPT4gdmVyc2lv biwgZGF0ZSwpOwotKyAgICAgICAgICAgIGNoZWNrX3ZlcmJvc2VfcGFyc2UhKHJlYWRfc3RhdGlj KHRydWUsICJzdGFibGUiLCB2KSA9PiB2ZXJzaW9uLCBkYXRlLCk7Ci0rICAgICAgICB9Ci0rICAg IH0KLSsKLSsgICAgI1t0ZXN0XQotKyAgICBmbiB0ZXN0X3BhcnNlX2N1cnJlbnQoKSB7Ci0rICAg ICAgICBsZXQgKHZlcnNpb24sIGNoYW5uZWwpID0gKDo6VmVyc2lvbjo6cmVhZCgpLCA6OkNoYW5u ZWw6OnJlYWQoKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uaXNfc29tZSgpKTsKLSsgICAg ICAgIGFzc2VydCEoY2hhbm5lbC5pc19zb21lKCkpOwotKwotKyAgICAgICAgaWYgbGV0IE9rKGtu b3duX2NoYW5uZWwpID0gZW52Ojp2YXIoIktOT1dOX0NIQU5ORUwiKSB7Ci0rICAgICAgICAgICAg YXNzZXJ0X2VxIShjaGFubmVsLCA6OkNoYW5uZWw6OnBhcnNlKCZrbm93bl9jaGFubmVsKSk7Ci0r ICAgICAgICB9Ci0rICAgIH0KLSt9Ci1kaWZmIC1OcmJ1IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJz aW9uX2NoZWNrL3NyYy92ZXJzaW9uLnJzIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L3NyYy92ZXJzaW9uLnJzCi0tLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3Jj L3ZlcnNpb24ucnMJMTk3MC0wMS0wMSAwMzowMDowMC4wMDAwMDAwMDAgKzAzMDAKLSsrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9zcmMvdmVyc2lvbi5ycwkyMDI1LTA5LTE3IDE3 OjQxOjQ3LjUwNzc5NTUyMiArMDMwMAotQEAgLTAsMCArMSwzMTYgQEAKLSt1c2Ugc3RkOjpmbXQ7 Ci0rCi0rLy8vIFZlcnNpb24gbnVtYmVyOiBgbWFqb3IubWlub3IucGF0Y2hgLCBpZ25vcmluZyBy ZWxlYXNlIGNoYW5uZWwuCi0rI1tkZXJpdmUoUGFydGlhbEVxLCBFcSwgQ29weSwgQ2xvbmUsIFBh cnRpYWxPcmQsIE9yZCldCi0rcHViIHN0cnVjdCBWZXJzaW9uKHU2NCk7Ci0rCi0raW1wbCBWZXJz aW9uIHsKLSsgICAgLy8vIFJlYWRzIHRoZSB2ZXJzaW9uIG9mIHRoZSBydW5uaW5nIGNvbXBpbGVy LiBJZiBpdCBjYW5ub3QgYmUgZGV0ZXJtaW5lZAotKyAgICAvLy8gKHNlZSB0aGUgW3RvcC1sZXZl bCBkb2N1bWVudGF0aW9uXShjcmF0ZSkpLCByZXR1cm5zIGBOb25lYC4KLSsgICAgLy8vCi0rICAg IC8vLyAjIEV4YW1wbGUKLSsgICAgLy8vCi0rICAgIC8vLyBgYGBydXN0Ci0rICAgIC8vLyB1c2Ug dmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKLSsgICAgLy8vCi0rICAgIC8vLyBtYXRjaCBWZXJzaW9u OjpyZWFkKCkgewotKyAgICAvLy8gICAgIFNvbWUoZCkgPT4gZm9ybWF0ISgiVmVyc2lvbiBpczog e30iLCBkKSwKLSsgICAgLy8vICAgICBOb25lID0+IGZvcm1hdCEoIkZhaWxlZCB0byByZWFkIHRo ZSB2ZXJzaW9uLiIpCi0rICAgIC8vLyB9OwotKyAgICAvLy8gYGBgCi0rICAgIHB1YiBmbiByZWFk KCkgLT4gT3B0aW9uPFZlcnNpb24+IHsKLSsgICAgICAgIDo6Z2V0X3ZlcnNpb25fYW5kX2RhdGUo KQotKyAgICAgICAgICAgIC5hbmRfdGhlbih8KHZlcnNpb24sIF8pfCB2ZXJzaW9uKQotKyAgICAg ICAgICAgIC5hbmRfdGhlbih8dmVyc2lvbnwgVmVyc2lvbjo6cGFyc2UoJnZlcnNpb24pKQotKyAg ICB9Ci0rCi0rCi0rICAgIC8vLyBQYXJzZSBhIFJ1c3QgcmVsZWFzZSB2ZXJzaW9uIChvZiB0aGUg Zm9ybQotKyAgICAvLy8gYG1ham9yWy5taW5vclsucGF0Y2hbLWNoYW5uZWxdXV1gKSwgaWdub3Jp bmcgdGhlIHJlbGVhc2UgY2hhbm5lbCwgaWYKLSsgICAgLy8vIGFueS4gUmV0dXJucyBgTm9uZWAg aWYgYHZlcnNpb25gIGlzIG5vdCBhIHZhbGlkIFJ1c3QgdmVyc2lvbiBzdHJpbmcuCi0rICAgIC8v LwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAv Ly8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZl cnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4xOC4wIikudW53cmFwKCk7Ci0rICAgIC8vLyBhc3Nl cnQhKHZlcnNpb24uZXhhY3RseSgiMS4xOC4wIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCB2 ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMjAuMC1uaWdodGx5IikudW53cmFwKCk7Ci0rICAg IC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4yMC4wIikpOwotKyAgICAvLy8gYXNzZXJ0 ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMjAuMC1iZXRhIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGxl dCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMyIpLnVud3JhcCgpOwotKyAgICAvLy8gYXNz ZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMy4wIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGxldCB2 ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEiKS51bndyYXAoKTsKLSsgICAgLy8vIGFzc2VydCEo dmVyc2lvbi5leGFjdGx5KCIxLjAuMCIpKTsKLSsgICAgLy8vCi0rICAgIC8vLyBhc3NlcnQhKFZl cnNpb246OnBhcnNlKCJvbmUudHdvLnRocmVlIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2Vy dCEoVmVyc2lvbjo6cGFyc2UoIjEuNjU1MzYuMiIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3Nl cnQhKFZlcnNpb246OnBhcnNlKCIxLiAyIikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGFzc2VydCEo VmVyc2lvbjo6cGFyc2UoIiIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246 OnBhcnNlKCIxLiIpLmlzX25vbmUoKSk7Ci0rICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OnBhcnNl KCIxLjIuMy40IikuaXNfbm9uZSgpKTsKLSsgICAgLy8vIGBgYAotKyAgICBwdWIgZm4gcGFyc2Uo dmVyc2lvbjogJnN0cikgLT4gT3B0aW9uPFZlcnNpb24+IHsKLSsgICAgICAgIGxldCBzcGxpdHMg PSB2ZXJzaW9uLnNwbGl0KCctJykKLSsgICAgICAgICAgICAubnRoKDApCi0rICAgICAgICAgICAg LnVud3JhcF9vcigiIikKLSsgICAgICAgICAgICAuc3BsaXQoJy4nKQotKyAgICAgICAgICAgIC5t YXAofHN8IHMucGFyc2U6Ojx1MTY+KCkpOwotKwotKyAgICAgICAgbGV0IG11dCBtbXAgPSBbMHUx NjsgM107Ci0rICAgICAgICBmb3IgKGksIHNwbGl0KSBpbiBzcGxpdHMuZW51bWVyYXRlKCkgewot KyAgICAgICAgICAgIG1tcFtpXSA9IG1hdGNoIChpLCBzcGxpdCkgewotKyAgICAgICAgICAgICAg ICAoMywgXykgfCAoXywgRXJyKF8pKSA9PiByZXR1cm4gTm9uZSwKLSsgICAgICAgICAgICAgICAg KF8sIE9rKHYpKSA9PiB2LAotKyAgICAgICAgICAgIH07Ci0rICAgICAgICB9Ci0rCi0rICAgICAg ICBsZXQgKG1haiwgbWluLCBwYXRjaCkgPSAobW1wWzBdLCBtbXBbMV0sIG1tcFsyXSk7Ci0rICAg ICAgICBTb21lKFZlcnNpb246OmZyb21fbW1wKG1haiwgbWluLCBwYXRjaCkpCi0rICAgIH0KLSsK LSsgICAgLy8vIENyZWF0ZXMgYSBgVmVyc2lvbmAgZnJvbSBgKG1ham9yLCBtaW5vciwgcGF0Y2gp YCB2ZXJzaW9uIGNvbXBvbmVudHMuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAg IC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNp b247Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpmcm9tX21tcCgxLCAzNSwg MCkuZXhhY3RseSgiMS4zNS4wIikpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpmcm9tX21t cCgxLCAzMywgMCkuZXhhY3RseSgiMS4zMy4wIikpOwotKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9u Ojpmcm9tX21tcCgxLCAzNSwgMSkuZXhhY3RseSgiMS4zNS4xIikpOwotKyAgICAvLy8gYXNzZXJ0 IShWZXJzaW9uOjpmcm9tX21tcCgxLCAxMywgMikuZXhhY3RseSgiMS4xMy4yIikpOwotKyAgICAv Ly8gYGBgCi0rICAgIHB1YiBmbiBmcm9tX21tcChtYWpvcjogdTE2LCBtaW5vcjogdTE2LCBwYXRj aDogdTE2KSAtPiBWZXJzaW9uIHsKLSsgICAgICAgIFZlcnNpb24oKChtYWpvciBhcyB1NjQpIDw8 IDMyKSB8ICgobWlub3IgYXMgdTY0KSA8PCAxNikgfCBwYXRjaCBhcyB1NjQpCi0rICAgIH0KLSsK LSsgICAgLy8vIFJldHVybnMgdGhlIGAobWFqb3IsIG1pbm9yLCBwYXRjaClgIHZlcnNpb24gY29t cG9uZW50cyBvZiBgc2VsZmAuCi0rICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8v LwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247 Ci0rICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIiku dW53cmFwKCkudG9fbW1wKCksICgxLCAzNSwgMCkpOwotKyAgICAvLy8gYXNzZXJ0X2VxIShWZXJz aW9uOjpwYXJzZSgiMS4zMy4wIikudW53cmFwKCkudG9fbW1wKCksICgxLCAzMywgMCkpOwotKyAg ICAvLy8gYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgiMS4zNS4xIikudW53cmFwKCkudG9fbW1w KCksICgxLCAzNSwgMSkpOwotKyAgICAvLy8gYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgiMS4x My4yIikudW53cmFwKCkudG9fbW1wKCksICgxLCAxMywgMikpOwotKyAgICAvLy8gYGBgCi0rICAg IHB1YiBmbiB0b19tbXAoJnNlbGYpIC0+ICh1MTYsIHUxNiwgdTE2KSB7Ci0rICAgICAgICBsZXQg bWFqb3IgPSBzZWxmLjAgPj4gMzI7Ci0rICAgICAgICBsZXQgbWlub3IgPSBzZWxmLjAgPj4gMTY7 Ci0rICAgICAgICBsZXQgcGF0Y2ggPSBzZWxmLjA7Ci0rICAgICAgICAobWFqb3IgYXMgdTE2LCBt aW5vciBhcyB1MTYsIHBhdGNoIGFzIHUxNikKLSsgICAgfQotKwotKyAgICAvLy8gUmV0dXJucyBg dHJ1ZWAgaWYgYHNlbGZgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgdmVyc2lvbmAuCi0r ICAgIC8vLwotKyAgICAvLy8gSWYgYHZlcnNpb25gIGlzIGdyZWF0ZXIgdGhhbiBgc2VsZmAsIG9y IGlmIGB2ZXJzaW9uYCBpcyBub3QgYSB2YWxpZCBSdXN0Ci0rICAgIC8vLyB2ZXJzaW9uIHN0cmlu ZywgcmV0dXJucyBgZmFsc2VgLgotKyAgICAvLy8KLSsgICAgLy8vICMgRXhhbXBsZQotKyAgICAv Ly8KLSsgICAgLy8vIGBgYHJ1c3QKLSsgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9u OwotKyAgICAvLy8KLSsgICAgLy8vIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEuMzUu MCIpLnVud3JhcCgpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEodmVyc2lvbi5hdF9sZWFz dCgiMS4zMy4wIikpOwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjM1LjAi KSk7Ci0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTMuMiIpKTsKLSsgICAg Ly8vCi0rICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0X2xlYXN0KCIxLjM1LjEiKSk7Ci0rICAg IC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0X2xlYXN0KCIxLjU1LjAiKSk7Ci0rICAgIC8vLwotKyAg ICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4xMi41IikudW53cmFwKCk7Ci0r ICAgIC8vLwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjEyLjAiKSk7Ci0r ICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmF0X2xlYXN0KCIxLjM1LjAiKSk7Ci0rICAgIC8vLyBg YGAKLSsgICAgcHViIGZuIGF0X2xlYXN0KCZzZWxmLCB2ZXJzaW9uOiAmc3RyKSAtPiBib29sIHsK LSsgICAgICAgIFZlcnNpb246OnBhcnNlKHZlcnNpb24pCi0rICAgICAgICAgICAgLm1hcCh8dmVy c2lvbnwgc2VsZiA+PSAmdmVyc2lvbikKLSsgICAgICAgICAgICAudW53cmFwX29yKGZhbHNlKQot KyAgICB9Ci0rCi0rICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgaXMgbGVzcyB0aGFu IG9yIGVxdWFsIHRvIGB2ZXJzaW9uYC4KLSsgICAgLy8vCi0rICAgIC8vLyBJZiBgdmVyc2lvbmAg aXMgbGVzcyB0aGFuIGBzZWxmYCwgb3IgaWYgYHZlcnNpb25gIGlzIG5vdCBhIHZhbGlkIFJ1c3QK LSsgICAgLy8vIHZlcnNpb24gc3RyaW5nLCByZXR1cm5zIGBmYWxzZWAuCi0rICAgIC8vLwotKyAg ICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAotKyAgICAvLy8gdXNl IHZlcnNpb25fY2hlY2s6OlZlcnNpb247Ci0rICAgIC8vLwotKyAgICAvLy8gbGV0IHZlcnNpb24g PSBWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIikudW53cmFwKCk7Ci0rICAgIC8vLwotKyAgICAvLy8g YXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEuMzUuMSIpKTsKLSsgICAgLy8vIGFzc2VydCEodmVy c2lvbi5hdF9tb3N0KCIxLjU1LjAiKSk7Ci0rICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbW9z dCgiMS4zNS4wIikpOwotKyAgICAvLy8KLSsgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbW9z dCgiMS4zMy4wIikpOwotKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5hdF9tb3N0KCIxLjEzLjIi KSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGF0X21vc3QoJnNlbGYsIHZlcnNpb246ICZz dHIpIC0+IGJvb2wgewotKyAgICAgICAgVmVyc2lvbjo6cGFyc2UodmVyc2lvbikKLSsgICAgICAg ICAgICAubWFwKHx2ZXJzaW9ufCBzZWxmIDw9ICZ2ZXJzaW9uKQotKyAgICAgICAgICAgIC51bndy YXBfb3IoZmFsc2UpCi0rICAgIH0KLSsKLSsgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxm YCBpcyBleGFjdGx5IGVxdWFsIHRvIGB2ZXJzaW9uYC4KLSsgICAgLy8vCi0rICAgIC8vLyBJZiBg dmVyc2lvbmAgaXMgbm90IGVxdWFsIHRvIGBzZWxmYCwgb3IgaWYgYHZlcnNpb25gIGlzIG5vdCBh IHZhbGlkIFJ1c3QKLSsgICAgLy8vIHZlcnNpb24gc3RyaW5nLCByZXR1cm5zIGBmYWxzZWAuCi0r ICAgIC8vLwotKyAgICAvLy8gIyBFeGFtcGxlCi0rICAgIC8vLwotKyAgICAvLy8gYGBgcnVzdAot KyAgICAvLy8gdXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247Ci0rICAgIC8vLwotKyAgICAvLy8g bGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIikudW53cmFwKCk7Ci0rICAgIC8v LwotKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMzUuMCIpKTsKLSsgICAgLy8v Ci0rICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMzMuMCIpKTsKLSsgICAgLy8v IGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4zNS4xIikpOwotKyAgICAvLy8gYXNzZXJ0ISgh dmVyc2lvbi5leGFjdGx5KCIxLjEzLjIiKSk7Ci0rICAgIC8vLyBgYGAKLSsgICAgcHViIGZuIGV4 YWN0bHkoJnNlbGYsIHZlcnNpb246ICZzdHIpIC0+IGJvb2wgewotKyAgICAgICAgVmVyc2lvbjo6 cGFyc2UodmVyc2lvbikKLSsgICAgICAgICAgICAubWFwKHx2ZXJzaW9ufCBzZWxmID09ICZ2ZXJz aW9uKQotKyAgICAgICAgICAgIC51bndyYXBfb3IoZmFsc2UpCi0rICAgIH0KLSt9Ci0rCi0raW1w bCBmbXQ6OkRpc3BsYXkgZm9yIFZlcnNpb24gewotKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQg Zm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKLSsgICAgICAgIGxldCAobWFqb3IsIG1p bm9yLCBwYXRjaCkgPSBzZWxmLnRvX21tcCgpOwotKyAgICAgICAgd3JpdGUhKGYsICJ7fS57fS57 fSIsIG1ham9yLCBtaW5vciwgcGF0Y2gpCi0rICAgIH0KLSt9Ci0rCi0raW1wbCBmbXQ6OkRlYnVn IGZvciBWZXJzaW9uIHsKLSsgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZtdDo6Rm9ybWF0dGVy KSAtPiBmbXQ6OlJlc3VsdCB7Ci0rICAgICAgICAvLyBXZSBkb24ndCB1c2UgYGRlYnVnXypgIGJl Y2F1c2UgaXQncyBub3QgYXZhaWxhYmxlIGluIGAxLjAuMGAuCi0rICAgICAgICB3cml0ZSEoZiwg IlZlcnNpb24oezo/fSwgezo/fSkiLCBzZWxmLjAsIHNlbGYudG9fbW1wKCkpCi0rICAgIH0KLSt9 Ci0rCi0rI1tjZmcodGVzdCldCi0rbW9kIHRlc3RzIHsKLSsgICAgdXNlIHN1cGVyOjpWZXJzaW9u OwotKwotKyAgICBtYWNyb19ydWxlcyEgYXNzZXJ0X3RvX21tcCB7Ci0rICAgICAgICAvLyBXZSBk b24ndCB1c2UgYC5pbnRvOjo8T3B0aW9uPF8+PmAgYmVjYXVzZSBpdCdzIG5vdCBhdmFpbGFibGUg aW4gMS4wLgotKyAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIHRoZSBtZXNzYWdlIHBhcnQgb2YgYGFz c2VydCFgIGZvciB0aGUgc2FtZSByZWFzb24uCi0rICAgICAgICAoJHM6ZXhwciwgTm9uZSkgPT4g KAotKyAgICAgICAgICAgIGFzc2VydF9lcSEoVmVyc2lvbjo6cGFyc2UoJHMpLCBOb25lKTsKLSsg ICAgICAgICk7Ci0rICAgICAgICAoJHM6ZXhwciwgJG1tcDpleHByKSA9PiAoCi0rICAgICAgICAg ICAgYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgkcykubWFwKHx2fCB2LnRvX21tcCgpKSwgU29t ZSgkbW1wKSk7Ci0rICAgICAgICApCi0rICAgIH0KLSsKLSsgICAgbWFjcm9fcnVsZXMhIGFzc2Vy dF9mcm9tX21tcCB7Ci0rICAgICAgICAoKCR4OmV4cHIsICR5OmV4cHIsICR6OmV4cHIpID0+ICRz OmV4cHIpID0+IHsKLSsgICAgICAgICAgICBhc3NlcnRfZXEhKFNvbWUoVmVyc2lvbjo6ZnJvbV9t bXAoJHgsICR5LCAkeikpLCBWZXJzaW9uOjpwYXJzZSgkcykpOwotKyAgICAgICAgfTsKLSsgICAg fQotKwotKyAgICAjW3Rlc3RdCi0rICAgIGZuIHRlc3Rfc3RyX3RvX21tcCgpIHsKLSsgICAgICAg IGFzc2VydF90b19tbXAhKCIxIiwgKDEsIDAsIDApKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAh KCIxLjIiLCAoMSwgMiwgMCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTguMCIsICgx LCAxOCwgMCkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjMuMTkuMCIsICgzLCAxOSwgMCkp OwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMTkuMC1uaWdodGx5IiwgKDEsIDE5LCAwKSk7 Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xMi4yMzQ5IiwgKDEsIDEyLCAyMzQ5KSk7Ci0r ICAgICAgICBhc3NlcnRfdG9fbW1wISgiMC4xMiIsICgwLCAxMiwgMCkpOwotKyAgICAgICAgYXNz ZXJ0X3RvX21tcCEoIjEuMTIuNSIsICgxLCAxMiwgNSkpOwotKyAgICAgICAgYXNzZXJ0X3RvX21t cCEoIjEuMTIiLCAoMSwgMTIsIDApKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxIiwgKDEs IDAsIDApKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjQuNC1uaWdodGx5IChkODQ2OTNi OTMgMjAxNy0wNy0wOSkpIiwgKDEsIDQsIDQpKTsKLSsgICAgICAgIGFzc2VydF90b19tbXAhKCIx LjU4ODc5LjQ0NzgtZGV2IiwgKDEsIDU4ODc5LCA0NDc4KSk7Ci0rICAgICAgICBhc3NlcnRfdG9f bW1wISgiMS41ODg3OS40NDc4LWRldiAoZDg0NjkzYjkzIDIwMTctMDctMDkpKSIsICgxLCA1ODg3 OSwgNDQ3OCkpOwotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAgZm4gdGVzdF9tYWxmb3Jt ZWQoKSB7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS42NTUzNi4yIiwgTm9uZSk7Ci0rICAg ICAgICBhc3NlcnRfdG9fbW1wISgiLTEuMi4zIiwgTm9uZSk7Ci0rICAgICAgICBhc3NlcnRfdG9f bW1wISgiMS4gMiIsIE5vbmUpOwotKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIiIsIE5vbmUpOwot KyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIiAiLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19t bXAhKCIuIiwgTm9uZSk7Ci0rICAgICAgICBhc3NlcnRfdG9fbW1wISgib25lIiwgTm9uZSk7Ci0r ICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4iLCBOb25lKTsKLSsgICAgICAgIGFzc2VydF90b19t bXAhKCIxLjIuMy40LjUuNiIsIE5vbmUpOwotKyAgICB9Ci0rCi0rICAgICNbdGVzdF0KLSsgICAg Zm4gdGVzdF9mcm9tX21tcCgpIHsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDE4LCAw KSA9PiAiMS4xOC4wIik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgzLCAxOSwgMCkgPT4g IjMuMTkuMCIpOwotKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMTksIDApID0+ICIxLjE5 LjAiKTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDEyLCAyMzQ5KSA9PiAiMS4xMi4y MzQ5Iik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9tbXAhKCgwLCAxMiwgMCkgPT4gIjAuMTIiKTsK LSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDEyLCA1KSA9PiAiMS4xMi41Iik7Ci0rICAg ICAgICBhc3NlcnRfZnJvbV9tbXAhKCgxLCAxMiwgMCkgPT4gIjEuMTIiKTsKLSsgICAgICAgIGFz c2VydF9mcm9tX21tcCEoKDEsIDAsIDApID0+ICIxIik7Ci0rICAgICAgICBhc3NlcnRfZnJvbV9t bXAhKCgxLCA0LCA0KSA9PiAiMS40LjQiKTsKLSsgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEs IDU4ODc5LCA0NDc4KSA9PiAiMS41ODg3OS40NDc4Iik7Ci0rICAgIH0KLSsKLSsgICAgI1t0ZXN0 XQotKyAgICBmbiB0ZXN0X2NvbXBhcmlzb25zKCkgewotKyAgICAgICAgbGV0IHZlcnNpb24gPSBW ZXJzaW9uOjpwYXJzZSgiMS4xOC4wIikudW53cmFwKCk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNp b24uZXhhY3RseSgiMS4xOC4wIikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0 KCIxLjEyLjAiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTIiKSk7 Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEiKSk7Ci0rICAgICAgICBhc3Nl cnQhKHZlcnNpb24uYXRfbW9zdCgiMS4xOC4xIikpOwotKyAgICAgICAgYXNzZXJ0ISghdmVyc2lv bi5leGFjdGx5KCIxLjE5LjAiKSk7Ci0rICAgICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHko IjEuMTguMSIpKTsKLSsKLSsgICAgICAgIGxldCB2ZXJzaW9uID0gVmVyc2lvbjo6cGFyc2UoIjEu MjAuMC1uaWdodGx5IikudW53cmFwKCk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3Rs eSgiMS4yMC4wLWJldGEiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4y MC4wLW5pZ2h0bHkiKSk7Ci0rICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4yMC4w IikpOwotKyAgICAgICAgYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjE5IikpOwotKwotKyAg ICAgICAgbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zIikudW53cmFwKCk7Ci0rICAg ICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4zLjAiKSk7Ci0rICAgICAgICBhc3NlcnQh KHZlcnNpb24uZXhhY3RseSgiMS4zLjAtc3RhYmxlIikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJz aW9uLmV4YWN0bHkoIjEuMyIpKTsKLSsgICAgICAgIGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgi MS41LjAtc3RhYmxlIikpOwotKwotKyAgICAgICAgbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJz ZSgiMSIpLnVud3JhcCgpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMC4w IikpOwotKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMCIpKTsKLSsgICAgICAg IGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxIikpOwotKwotKyAgICAgICAgYXNzZXJ0IShWZXJz aW9uOjpwYXJzZSgib25lLnR3by50aHJlZSIpLmlzX25vbmUoKSk7Ci0rICAgIH0KLSsKLSsgICAg bWFjcm9fcnVsZXMhIHJlZmxleGl2ZV9kaXNwbGF5IHsKLSsgICAgICAgICgkczpleHByKSA9PiAo Ci0rICAgICAgICAgICAgYXNzZXJ0X2VxIShWZXJzaW9uOjpwYXJzZSgkcykudW53cmFwKCkudG9f c3RyaW5nKCksICRzKTsKLSsgICAgICAgICkKLSsgICAgfQotKwotKyAgICAjW3Rlc3RdCi0rICAg IGZuIGRpc3BsYXkoKSB7Ci0rICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjEuMC4wIik7Ci0r ICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjEuMi4zIik7Ci0rICAgICAgICByZWZsZXhpdmVf ZGlzcGxheSEoIjEuMTIuMTQzOCIpOwotKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIxLjQ0 LjAiKTsKLSsgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMi40NC4wIik7Ci0rICAgICAgICBy ZWZsZXhpdmVfZGlzcGxheSEoIjIzNDU5LjI4OTIzLjM0ODMiKTsKLSsgICAgfQotK30KCmRpZmYg LS1naXQgYS9zZWFtb25rZXktMi41My4yNC1tb3ppbGxhLTE4NjYxOTEucGF0Y2ggYi9zZWFtb25r ZXktMi41My4yNC1tb3ppbGxhLTE4NjYxOTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNTE3MWFiMQotLS0gL2Rldi9udWxsCisrKyBiL3NlYW1vbmtleS0yLjUzLjI0 LW1vemlsbGEtMTg2NjE5MS5wYXRjaApAQCAtMCwwICsxLDEzODggQEAKKworIyBIRyBjaGFuZ2Vz ZXQgcGF0Y2gKKyMgVXNlciBIZW5yaSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4KKyMg RGF0ZSAxNzI5ODUyODk1IDAKKyMgTm9kZSBJRCA4ZWM2Y2NkNjQ0N2FhMmY4ZWQxNzVjMTZiMjcy YWM3ZGQ0NmU5NDZiCisjIFBhcmVudCAgYTBhNTNhM2ZlNmIwZTQ3MjA0MDdhOGY3ZmVhODVlOGNm Y2JiZDA5MworQnVnIDE4NjYxOTEgLSBJbXBsZW1lbnQgR0IxODAzMC0yMDIyIGNoYW5nZXMgdG8g dGhlIEVuY29kaW5nIFN0YW5kYXJkLiByPXN1cHBseS1jaGFpbi1yZXZpZXdlcnMsZW1rCisKK0Rp ZmZlcmVudGlhbCBSZXZpc2lvbjogaHR0cHM6Ly9waGFicmljYXRvci5zZXJ2aWNlcy5tb3ppbGxh LmNvbS9EMjIyOTI4CisKK2RpZmYgLS1naXQgYS9DYXJnby5sb2NrIGIvQ2FyZ28ubG9jaworLS0t IGEvQ2FyZ28ubG9jaworKysrIGIvQ2FyZ28ubG9jaworQEAgLTYxNCwxOSArNjE0LDE5IEBAIHZl cnNpb24gPSAiMC4xLjAiCisgZGVwZW5kZW5jaWVzID0gWworICAiZW5jb2RpbmdfcnMiLAorICAi bnNlcnJvciIsCisgICJuc3N0cmluZyIsCisgXQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJl bmNvZGluZ19ycyIKKy12ZXJzaW9uID0gIjAuOC4zNCIKKyt2ZXJzaW9uID0gIjAuOC4zNSIKKyBz b3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8t aW5kZXgiCistY2hlY2tzdW0gPSAiYjQ1ZGU5MDRhYTBiMDEwYmNlMmFiNDUyNjRkMDYzMTY4MTg0 N2ZhN2I2ZjJlYWE3ZGFiNzYxOTk0M2JjNGY1OSIKKytjaGVja3N1bSA9ICI3NTAzMGYzYzRmNDVk YWZkNzU4NmRkNjc4MDk2NWE4YzdlOGUyODVhNWVjYjg2NzEzZTYzYTc5YzViMjc2NmYzIgorIGRl cGVuZGVuY2llcyA9IFsKKyAgImFueV9hbGxfd29ya2Fyb3VuZCIsCisgICJjZmctaWYgMS4wLjAi LAorIF0KKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUgPSAiZW52X2xvZ2dlciIKKyB2ZXJzaW9uID0g IjAuNS4xMyIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJn by1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hl Y2tzdW0uanNvbgorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hl Y2tzdW0uanNvbgorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy8uY2FyZ28tY2hl Y2tzdW0uanNvbgorQEAgLTEsMSArMSwxIEBACisteyJmaWxlcyI6eyJDT05UUklCVVRJTkcubWQi OiJjYTE5MDFmM2U4NTMyZmI0Y2VjODk0ZmQzNjY0ZjBlYWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1 NGVhY2YzNjJhIiwiQ09QWVJJR0hUIjoiMTE3ODlmNDViYjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4 ZGRiNTczYTExMTA1ZTMwNzY4YzMwOGE2YWRkMDE5MCIsIkNhcmdvLnRvbWwiOiIyMmE0ZDIxMGM5 MmRhZTlmMzJjNjk0NGVmMzQwZWU4ZmRkMDI3Zjk5YzA4MTU3N2U4OTA3MTIzZTJhOTMzODNlIiwi SWRlYXMubWQiOiJiNzQ1Mjg5M2Y1MDAxNjM4NjhkOGRlNTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAy ZTg5MmM0NjdlZDdlYzM5ZGJkIiwiTElDRU5TRS1BUEFDSEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMz YzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwiTElDRU5TRS1N SVQiOiIzZmE0Y2E4M2RjYzkyMzc4MzliMWJkZWIyZTZkMTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4 YmJmMGRjYmVmNzJjIiwiTElDRU5TRS1XSEFUV0ciOiI4MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVk MTNlMWM3ZjNlYmY4OGJlOTEzMTljN2MxZDc3YzE4ZTk4N2QxYTUwIiwiUkVBRE1FLm1kIjoiMWQw OGFlZmNiOTJhZmE4MWIxODE1NDA0OWM5YWJiY2FkNDU0MGEyM2Y3MTcyZTlmOWJiZWQ1YWYzM2Yx YTA4NyIsImNpL21pcmkuc2giOiI0M2NiOGQ4MmY0OWUzYmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4 OGNjZWYwY2VjYzA0MDgyOTg4M2NmZGJlZTI1IiwiZG9jL0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2 YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0YTIzNDk1MDM3OGFjZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRv Yy9FVUMtSlAudHh0IjoiZWUyODE4YjkwN2QwMTM3ZjQwYTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRi NmNmMGMxNTdhNjU2NTY2YmFlNGJmMSIsImRvYy9FVUMtS1IudHh0IjoiNzFkOWUyY2NmM2IxMjRl OGJkZmI0MzNjOGNmMjc3M2ZkODc4MDc3MDM4ZDBjZWMzYzcyMzdhNTBmNGE3OGEzMCIsImRvYy9H QksudHh0IjoiYzFiNTIyYjVhNzk5ODg0ZTUwMDFkYTY2MWY0MmM1YThmNGQwYWNiOWVmMWQ3NGIy MDZmMjJiNWY2NTM2NTYwNiIsImRvYy9JQk04NjYudHh0IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUw MTUxNzlmYmMxZDliMGVhZjFmNzk2MGVmY2QwNDA5M2UxMzZiNTFmYmQwZSIsImRvYy9JU08tMjAy Mi1KUC50eHQiOiJhZjg2Njg0ZjVhOGYwZTI4NjhkN2IyYzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNh MDkxZjFiMjgxOThlOGUyZmU2IiwiZG9jL0lTTy04ODU5LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNh MTc2ODk1MTAxZWQ4MWExZGI3ZGYxMDYwZDY0ZTI2Mjg4MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2Mv SVNPLTg4NTktMTMudHh0IjoiMzk1MWRkODljZjkzZjc3MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4 OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJlOTNmYSIsImRvYy9JU08tODg1OS0xNC50eHQiOiIzZDMzMDc4 NGEwMzc0ZmQyNTVhMzhiNDc5NDk2NzVjYzcxNjhjODAwNTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRj IiwiZG9jL0lTTy04ODU5LTE1LnR4dCI6IjI0YjEwODRhYWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2 OTRkMGEzNjE1ZjUzYjVjZTIzNjgzZjk3Y2Y2NmM0N2EiLCJkb2MvSVNPLTg4NTktMTYudHh0Ijoi Y2UwMjcyNTU5YjkyYmE3NmQ3YTdlNDc2ZjY0MjRhZTRhNWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0 YWRkNGQyNSIsImRvYy9JU08tODg1OS0yLnR4dCI6IjE4Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTli MWUzZGU0ODkwNDVjNGMzZDJkZDdlODUyN2MxMjVjNzVkNTRhYWQiLCJkb2MvSVNPLTg4NTktMy50 eHQiOiIyMTc5ODQwNGM2OGY0ZjVkYjU5MjIzMzYyZjI0OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNj Y2U3ZDI4NDlhMTMwIiwiZG9jL0lTTy04ODU5LTQudHh0IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3 NmI3MWQwODFjZGIzYmNjZGUxNjIyYmIzZTQyMGQ1NjgwZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1 OS01LnR4dCI6ImExMGVjOGQ2ZWE3YTc4YWQxNWRhNzI3NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFm NmQwZDU4MzA1MDEzMDNmM2EiLCJkb2MvSVNPLTg4NTktNi50eHQiOiJjY2RhOGEyZWZjOTYxMTUz MzZiZGQ3Nzc3NjYzN2I5NzEyNDI1ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lT Ty04ODU5LTcudHh0IjoiMTc5MDBmYTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2Vl NDQ5MmFhNjgwYzdjMTUwMGJhYjg1ZSIsImRvYy9JU08tODg1OS04LUkudHh0IjoiODM1NzU1NTY0 NmQ1NDI2NWE5YjlmZmEzZTY4YjA4ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIs ImRvYy9JU08tODg1OS04LnR4dCI6IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBi Nzc1NWQ3MmM4NmM4NzBlNTJmYzNlYmE4NmM4YWYiLCJkb2MvS09JOC1SLnR4dCI6IjgzOWNmMTlh MzhkYTk5NDQ4ODAwNGVkNzgxNGIxZjYxNTE2NDAxNTZhOWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYi LCJkb2MvS09JOC1VLnR4dCI6IjBjYzc2NjI0ZWQxZjAyNDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcw YzhjYTA2ZTBmYzRlNmYzNTNmNTBhNTA1NGYiLCJkb2MvU2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQx ODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4YTc5YmU4YWQxNDhkNTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2Yi LCJkb2MvVVRGLTE2QkUudHh0IjoiZTJlMjgwZDhhY2JhYTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1 ZjJiYWEwZGYzMzYzZGQ4NTUzN2NkNWExZWY4ZiIsImRvYy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3 MGUzZmM1Mjk4YmE2OGYxMDEyNWZiNWVlYjhiMDc3MDM2Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMx IiwiZG9jL1VURi04LnR4dCI6ImVhN2JhZTc0MmU2MTMwMTBjZWQwMDJjZjRiNjAxYTczN2QyMjAz ZmFkNjVlMTE1NjExNDUxYmM0NDI4ZjU0OGEiLCJkb2MvZ2IxODAzMC50eHQiOiJkYzcxMzc4YThm MDdhMmQ4NjU5ZjY5ZWU4MWZiODc5MWZlZjU2YmE4NmYxMjRiNDI5OTc4Mjg1MjM3YmI0YTdiIiwi ZG9jL21hY2ludG9zaC50eHQiOiI1NzQ5MWU1Mzg2NjcxMWI0NjcyZDliOWZmMzUzODBiOWRhYzll MGQ4ZTNkNmMyMGJkZDYxNDA2MDM2ODdjMDIzIiwiZG9jL3JlcGxhY2VtZW50LnR4dCI6IjRiNmMz YmJkNzk5OWQ5ZDQxMDhhMjgxNTk0YmQwMmQxMzYwN2UzMzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYw ZTQiLCJkb2Mvd2luZG93cy0xMjUwLnR4dCI6IjYxMjk2YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJh NDM0Y2I4MmRlNWFjM2JjODhkNTg3MTBkMmYxMjVlMjhkMzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4 dCI6IjdkZWVhMWM2MWRlYTE0ODVjOGZmMDJkYjJjN2Q1NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0 YjUxNTg2NDY4OWUiLCJkb2Mvd2luZG93cy0xMjUyLnR4dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJi OWYxYTFhYThiNDc0MjNkMjU4N2JiZTQ3NWIxOTAyOGQwYTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93 cy0xMjUzLnR4dCI6IjFhMzg3NDhiODhlOTkwNzFhNWM3YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1 MGQ2NThiZTEwNWJjMTEzNzE0ZGUiLCJkb2Mvd2luZG93cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZm OGQ2NDI1NjNjZDZkZGMwMjUyNjA1NTMyOTJhMzk0MjNkZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJk b2Mvd2luZG93cy0xMjU1LnR4dCI6IjRlNTg1MjQ5NDczMDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFi YmNkZDhjZTIyZWJjMjE4Y2EyZWZlOWU5MDQ5M2QiLCJkb2Mvd2luZG93cy0xMjU2LnR4dCI6ImMw ODc5YzUxNzJhYmVkZWFkMzAyYTQwNmU4ZjYwZDljZDk1OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3 YjhlYTEiLCJkb2Mvd2luZG93cy0xMjU3LnR4dCI6ImMyOGEwYzlmOTY0ZmNiMmI0NmQyMWY1Mzdj NDAyNDQ2NTAxYTI4MDA2NzA0ODFkNmFiZjlmZDllOTAxOGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4 LnR4dCI6IjUwMTlhZTRkNjE4MDVjNzlhYWNiZjE3YzkzNzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNi YzNlMmM2ZDZhMjM2MDIiLCJkb2Mvd2luZG93cy04NzQudHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIx N2FlZTE4MTg2MDJlZDQ0YjM2Y2E4NDc1ZGI3NzFjZTJmYzE2ZDM5MmNhYmVjYyIsImRvYy94LW1h Yy1jeXJpbGxpYy50eHQiOiI1OGJlMTU0ZDhhODg4Y2EzZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFi MjdmMTRkOTBjYTlhODU2ZjUwNTBhOGJkIiwiZG9jL3gtdXNlci1kZWZpbmVkLnR4dCI6ImY5Y2Qw N2M0MzIxYmY1Y2ZiMGJlNGJkZGRkMjUxMDcyOTk5YjA0YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFm ZmMiLCJnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5IjoiYmU5ODlkZDI1YzZiOTQ2ZTNlODc0NWZk YzhlOGE4MGZjZjI0YjNiZTk5YWQwYjRiNzgxNTNiYTNmNmFiNjMxMCIsInJ1c3RmbXQudG9tbCI6 Ijg1YzFhM2I0MzgyZmQ4OWU5OTFjYmI4MWI3MGZiNTI3ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1 NmUwYTIwMzAiLCJzcmMvYXNjaWkucnMiOiI1ODhlMzhiMDFlNjY2ZDVlNzQ2MjYxN2VhN2U5MGEx MDhkNjA4ZGVjOWUwMTZmM2QyNzNhYzA3NDRhZjJlMDVkIiwic3JjL2JpZzUucnMiOiJlYzZlMjkx MzAxMWEzOGU5YTNlODI1YTE3MzFmMTM5YTdjYTFkNWIyNjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5 Iiwic3JjL2RhdGEucnMiOiI4YTYxN2NjNTcwMzIwOTJkNjU4NTBlYjI3ZTAwZGU2ODdjODBhZWEz Mjk5ZTgzOWExZjU4YjQyZDBiMzVhYmYzIiwic3JjL2V1Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4 YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMv ZXVjX2tyLnJzIjoiOWIyNWFmYzcyZDkzNzg3MDBlZWNmYWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2Rl MmMyOWMwODIwMGVmMmRlNmJiOSIsInNyYy9nYjE4MDMwLnJzIjoiODA4NTg3MTY4ZDczZjBjODBm ODUyMGYwY2E5YjE2MTg2NmVkMmVmZWIxN2EwNWU4NWZkZjNiOGVmZTdiYTI4YSIsInNyYy9oYW5k bGVzLnJzIjoiYjA4Y2VmMWY1Nzg1YmI2YTQ4MjJmMmU4NDRjNmRmMWIwNDZiNzM3YjdhMDc1ZTQ1 OTNlYWE4YzQyMDhlOWZlMiIsInNyYy9pc29fMjAyMl9qcC5ycyI6IjliYjQ4NWU4MjU3NGY0Yjdk NGIyMzY0ZjBmZjI3NmFjYjZhMGJjMTExNzU4NDIwYTNiMGVjNWUwNGMxOTY2NTIiLCJzcmMvbGli LnJzIjoiODM0ZjQ0YjY3MGVjNDhlZTgyYzBlMTIyMjNkMTU2NzMxM2ZkZDlmODhiY2E1ZjRiMTE3 YzgyYzE4MjhmNTU5ZiIsInNyYy9tYWNyb3MucnMiOiIyMDA5OTdmODg3MGRlOGJmZDhjZGM0NzVl OTIxMTVkZjQyMTA4YzBkZjY2MWU0OWQzZDFjYmMzMjA1NmUxZDk5Iiwic3JjL21lbS5ycyI6Ijk0 ODU3MTEzN2QzYjE1MWRmOGRiNGZiMmM3MzNlNzRhZTU5NWQwNTVjZGYwYWQ4M2FiY2FiOTM0MWQ2 YWRhYmUiLCJzcmMvcmVwbGFjZW1lbnQucnMiOiI3NjYwYjM0YTUzZjhjMWNhMmJkZmEwZTUxZTg0 M2VjMjgzMjY5NTA5NTJhZDhiYzk2NTY5ZmViOTNhYzYyMzA4Iiwic3JjL3NoaWZ0X2ppcy5ycyI6 IjY5NTFhZTY3ZTM2YjFhMTJmYTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0YWUwZTJiZGU1MjA2MGIyOWJk MGYxNmQ5ZDkiLCJzcmMvc2ltZF9mdW5jcy5ycyI6IjA1YzZlNzdhZjc0YmZlNzNjZDM5YTc1MjA2 N2MxMTQyNWQ2YjQ2ZTVkYTQxOTkxMGY1NGJmNzVhNWMwMmE5ODQiLCJzcmMvc2luZ2xlX2J5dGUu cnMiOiIzYWQ4NzExNmZiMzM5NDM0YTRiNThlOGYyYjE1NDg1ZjJiNjZiOWY3ODE0ZDcwOGYxNjE5 NGVkMDhmNmQ2Y2NmIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4dCI6IjRjNWE4NjkxZjhkYzcx NzMxMTg4OWM2Mzg5NDAyNmQyZmI2MjcyNWE4NmM0MjA4Y2EyNzRhOWNjOGQ0MmE1MDMiLCJzcmMv dGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dCI6Ijk5ZDM5OWUxNzc1MGNmOWM3Y2YzMGJiMjUzZGJm ZTM1YjgxYzRmY2JkZWFkOTNjZmE0OGIxNDI5MjEzNDczYzciLCJzcmMvdGVzdF9kYXRhL2JpZzVf b3V0LnR4dCI6IjYxOTNjYTk3YzI5N2FhMjBlMDkzOTYwMzhkMThlOTM4YmI3ZWEzMzFjMjZmMGYy NDU0MDk3Mjk2NzIzYTBiMTMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50eHQiOiIzNjU2 NzY5MWY1NTdkZjE0NGY2Y2M1MjAwMTVhODcwMzhkZmExNTZmMjk2ZmNmMTAzYjU2YWU5YTcxOGJl MWZjIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IjoiYzg2YTcyMjRmMzIxNWZhMGQwNGU2 ODU2MjJhNzUyZmRjNzI3NjNlOGFlMDc2MjMwYzdmZDYyZGU1N2VjNDA3NCIsInNyYy90ZXN0X2Rh dGEvZXVjX2tyX2luX3JlZi50eHQiOiIxZjQxOWY0Y2E0N2Q3MDhiNTRjNzNjNDYxNTQ1YTAyMmFl MmUyMDQ5OGZkYmY4MDA1YTQ4M2Q3NTJhMjA0ODgzIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0 LnR4dCI6ImU3ZjMyZTAyNmY3MGJlMWUxYjU4ZTAwNDdiYWY3ZDNkMmM1MjAyNjljNGY5Yjk5OTJl MTU4YjRkZWNiMGExYTMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dCI6ImM5OTA3 ODU3OTgwYjIwYjhlOWUzYjU4NDQ4MmVkNjU2N2EyYmU2MTg1ZDcyMjM3YjYzMjJmMDQwNDk0NDky NGUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IjoiYWI3MjMxYjJkM2U5YWZhY2RiZDdk N2YzYjllNTM2MWE3ZmY5ZjdlMWNmZGI0ZjNiZDkwNWI5MzYyYjMwOWU1MyIsInNyYy90ZXN0X2Rh dGEvZ2IxODAzMF9pbl9yZWYudHh0IjoiZGM1MDY5NDIxYWRjYTIwNDNjNTVmNTAxMmI1NWE3NmZk ZmY2NTFkMjJlNmU2OTlmZDA5NzhmOGQ1NzA2ODE1YyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9v dXQudHh0IjoiZjAyMDhkNTI3ZjVjYTYzZGU3ZDlhMDMyM2JlOGQ1Y2YxMmQ4YTEwNGIyOTQzZDky YzI3MDFmMGMzMzY0ZGFjMSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dCI6IjY4 MTlmZTQ3NjI3ZTRlYTAxMDI3MDAzZmM1MTRiOWYyMWExMzIyZTczMmQ3ZjFmYjkyY2M2YzU0NTVi YzZjMDciLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4dCI6ImNkMjRiYmRjYjE4MzRl MjVkYjU0NjQ2ZmJmNGM0MTU2MGExM2RjNzU0MGY2YmUzZGJhNGY1ZDk3ZDQ0NTEzYWYiLCJzcmMv dGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQiOiIzZGM0ZTZhNWUwNjQ3MTk0MmQwODZi MTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJjZGY1Iiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9vdXQudHh0IjoiOWI2ZjAxNTMyOWRkYTZjM2Y5ZWU1Y2U2ZGJkNmZhOWM4 OWFjYzIxMjgzZTg4NjgzNmM3OGI4ZDgzMzQ4MGMyMSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJf anBfb3V0X3JlZi50eHQiOiI3OGNiMjYwMDkzYTIwMTE2YWQ5YTQyZjQzYjA1ZDE4NDhjNWFiMTAw YjZiOWE4NTA3NDk4MDllOTQzODg0YjM1Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjA4X2luLnR4dCI6 IjZkZjMwMzA1NTNmZmIwYTY2MTViYjMzZGM4ZWE5ZGNhNmQ5NjIzYTkwMjhlMmZmZWM3NTRjZTNj M2RhODI0Y2MiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2 NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJz cmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dCI6IjRlYzI0NDc3ZTE2NzVjZTc1MDczM2JkYzNj NWFkZDFjZDI3YjZiZDRjZTFmMDkyODk1NjQ2NDZlOTY1NGU4NTciLCJzcmMvdGVzdF9kYXRhL2pp czAyMDhfb3V0X3JlZi50eHQiOiJjM2UxY2VmNTAzMmIyYjFkOTNhNDA2ZjMxZmY5NDBjNGUyZGZl ODg1OWI4YjE3Y2EyNzYxZmVlN2E3NWEwZTQ4Iiwic3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4 dCI6ImMwMTFmMGRkNzJiZDdjOGNkOTIyZGY5Mzc0ZWY4ZDI3NjlhNzcxOTA1MTRjNzdmNmM2MmI0 MTU4NTJlZWI5ZmUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5fcmVmLnR4dCI6IjdkOTQ1OGIz ZDJmNzNlNzA5MmE3ZjUwNWMwOGNlMWQyMzNkZGUxOGFhNjc5ZmJjZjk4ODkyNTYyMzljYzllMDYi LCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQiOiIwMmUzODljY2VmMGRkMjEyMmU2M2Y1 MDM4OTk0MDJjYjdmNzk3OTEyYzI0NDRjYzgwYWI5MzEzMTExNmM1NTI0Iiwic3JjL3Rlc3RfZGF0 YS9zaGlmdF9qaXNfaW5fcmVmLnR4dCI6IjUxMmY5ODU5NTBjYTkwMmU2NDNjODg2ODJkYmE5NzA4 YjdjMzhkM2M1ZWMyOTI1MTY4YWIwMGFjOTRhYjE5ZjkiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2pp c19vdXQudHh0IjoiNWZiYzQ0ZGE3YmY2MzliZjZjZmUwZmExZmQzZWJhNzEwMmI4OGY4MTkxOWM5 ZWE5OTEzMDI3MTJmNjk0MjZmYiIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dF9yZWYudHh0 IjoiNDY2MzIyYzZmZWQ4Mjg2YzY0NTgyNzMxNzU1MjkwYzIyOTY1MDhlZmRkMjU4ODI2ZTYyNzk2 ODY2NDliNDgxZiIsInNyYy90ZXN0X2xhYmVsc19uYW1lcy5ycyI6IjIzYTJlMTFiMDJiM2I4ZDE1 ZmI1NjEzYTYyNWUzZWRiMmM2MWU3MGUzYzU4MWFiZmQ2Mzg3MTlhNDA4ODIwMGQiLCJzcmMvdGVz dGluZy5ycyI6ImY1OWU2NzFlOTVhOThhNTZmNmI1NzNlOGM2YmU0ZDcxZTY3MGJmNTJmN2UyMGVi MTYwNWQ5OTBhYWZhMTg5NGUiLCJzcmMvdXRmXzE2LnJzIjoiYzA3MWExNDdmYWQzOGQ3NTBjMmMy NDdlMTQxYjc2YjkyOWE0ODAwN2I5OWYyNmIyOTIyYjljYWVjZGFmMmYyNSIsInNyYy91dGZfOC5y cyI6IjdiN2Q4ODdiMzQ3ZjFhZWZhMDMyNDZiMDI4YTM2YTcyNzU4YTRjZTc2YzI4ZjNiNDVjMTk0 Njc4NTFhYTc4MzkiLCJzcmMvdmFyaWFudC5ycyI6IjFmYWI1MzYzNTg4YTE1NTRhNzE2OWRlODcz MWVhOWNkZWQ3YWM2M2VhMzVjYWFiZGQxYzI3YThkZGU2OGMyN2IiLCJzcmMveF91c2VyX2RlZmlu ZWQucnMiOiI5NDU2Y2E0NjE2OGVmODZjOTgzOTlhMjUzNmY1NzdlZjdiZTNjZGRlOTBjMGM1MTM5 MmQ4YWM0ODUxOWQzZmFlIn0sInBhY2thZ2UiOiJiNDVkZTkwNGFhMGIwMTBiY2UyYWI0NTI2NGQw NjMxNjgxODQ3ZmE3YjZmMmVhYTdkYWI3NjE5OTQzYmM0ZjU5In0KK1wgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorK3siZmlsZXMiOnsiQ09OVFJJQlVUSU5HLm1kIjoiY2ExOTAxZjNlODUzMmZi NGNlYzg5NGZkMzY2NGYwZWFhODk4YzBjNGI5NjFkMWI5OTJkMWVkNTRlYWNmMzYyYSIsIkNPUFlS SUdIVCI6IjExNzg5ZjQ1YmIxODA4NDFjZDM2MmE1ZWVlNjc4OWM2OGRkYjU3M2ExMTEwNWUzMDc2 OGMzMDhhNmFkZDAxOTAiLCJDYXJnby50b21sIjoiZDc0MDVkMmJjZjk5Y2Y5NzI5MDc1NDczYzQ1 ZjY3NzYzMGY0YzE5NDdjOGJhOTc1N2RiNjA3ZjIwMjVhN2RhMiIsIklkZWFzLm1kIjoiYjc0NTI4 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 cmMveF91c2VyX2RlZmluZWQucnMiOiI5NDU2Y2E0NjE2OGVmODZjOTgzOTlhMjUzNmY1NzdlZjdi ZTNjZGRlOTBjMGM1MTM5MmQ4YWM0ODUxOWQzZmFlIn0sInBhY2thZ2UiOiI3NTAzMGYzYzRmNDVk YWZkNzU4NmRkNjc4MDk2NWE4YzdlOGUyODVhNWVjYjg2NzEzZTYzYTc5YzViMjc2NmYzIn0KK1wg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2Fy Z28udG9tbAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCisr KysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKK0BAIC04LDE4ICs4 LDIzIEBACisgIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3YXJlIHRoYXQgdGhl IG9yaWdpbmFsIENhcmdvLnRvbWwKKyAjIHdpbGwgbGlrZWx5IGxvb2sgdmVyeSBkaWZmZXJlbnQg KGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCisgIyBTZWUgQ2FyZ28udG9tbC5vcmlnIGZvciB0 aGUgb3JpZ2luYWwgY29udGVudHMuCisgCisgW3BhY2thZ2VdCisgZWRpdGlvbiA9ICIyMDE4Igor IHJ1c3QtdmVyc2lvbiA9ICIxLjM2IgorIG5hbWUgPSAiZW5jb2RpbmdfcnMiCistdmVyc2lvbiA9 ICIwLjguMzQiCisrdmVyc2lvbiA9ICIwLjguMzUiCisgYXV0aG9ycyA9IFsiSGVucmkgU2l2b25l biA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+Il0KKytidWlsZCA9IGZhbHNlCisrYXV0b2JpbnMgPSBm YWxzZQorK2F1dG9leGFtcGxlcyA9IGZhbHNlCisrYXV0b3Rlc3RzID0gZmFsc2UKKythdXRvYmVu Y2hlcyA9IGZhbHNlCisgZGVzY3JpcHRpb24gPSAiQSBHZWNrby1vcmllbnRlZCBpbXBsZW1lbnRh dGlvbiBvZiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQiCisgaG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2Nz LnJzL2VuY29kaW5nX3JzLyIKKyBkb2N1bWVudGF0aW9uID0gImh0dHBzOi8vZG9jcy5ycy9lbmNv ZGluZ19ycy8iCisgcmVhZG1lID0gIlJFQURNRS5tZCIKKyBrZXl3b3JkcyA9IFsKKyAgICAgImVu Y29kaW5nIiwKKyAgICAgIndlYiIsCisgICAgICJ1bmljb2RlIiwKK0BAIC0zMiwxNiArMzcsMjAg QEAgY2F0ZWdvcmllcyA9IFsKKyAgICAgImludGVybmF0aW9uYWxpemF0aW9uIiwKKyBdCisgbGlj ZW5zZSA9ICIoQXBhY2hlLTIuMCBPUiBNSVQpIEFORCBCU0QtMy1DbGF1c2UiCisgcmVwb3NpdG9y eSA9ICJodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vZW5jb2RpbmdfcnMiCisgCisgW3Byb2Zp bGUucmVsZWFzZV0KKyBsdG8gPSB0cnVlCisgCisrW2xpYl0KKytuYW1lID0gImVuY29kaW5nX3Jz IgorK3BhdGggPSAic3JjL2xpYi5ycyIKKysKKyBbZGVwZW5kZW5jaWVzLmFueV9hbGxfd29ya2Fy b3VuZF0KKyB2ZXJzaW9uID0gIjAuMS4wIgorIG9wdGlvbmFsID0gdHJ1ZQorIAorIFtkZXBlbmRl bmNpZXMuY2ZnLWlmXQorIHZlcnNpb24gPSAiMS4wIgorIAorIFtkZXBlbmRlbmNpZXMuc2VyZGVd CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9SRUFETUUubWQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvUkVBRE1FLm1kCitAQCAtMTAzLDE3ICsxMDMsMTcgQEAgRm9yIG1hcHBpbmdzIHRvIGFu ZCBmcm9tIFdpbmRvd3MgY29kZSBwYQorIFRoaXMgY3JhdGUgZG9lcyBub3Qgc3VwcG9ydCBzaW5n bGUtYnl0ZSBET1MgZW5jb2RpbmdzIHRoYXQgYXJlbid0IHJlcXVpcmVkIGJ5CisgdGhlIFdlYiBQ bGF0Zm9ybSwgYnV0IHRoZSBbYG9lbV9jcGBdKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9vZW1f Y3ApIGNyYXRlIGRvZXMuCisgCisgIyMgUHJlcGFyaW5nIFRleHQgZm9yIHRoZSBFbmNvZGVycwor IAorIE5vcm1hbGl6aW5nIHRleHQgaW50byBVbmljb2RlIE5vcm1hbGl6YXRpb24gRm9ybSBDIHBy aW9yIHRvIGVuY29kaW5nIHRleHQgaW50bworIGEgbGVnYWN5IGVuY29kaW5nIG1pbmltaXplcyB1 bm1hcHBhYmxlIGNoYXJhY3RlcnMuIFRleHQgY2FuIGJlIG5vcm1hbGl6ZWQgdG8KKyBVbmljb2Rl IE5vcm1hbGl6YXRpb24gRm9ybSBDIHVzaW5nIHRoZQorLVtgdW5pYy1ub3JtYWxgXShodHRwczov L2NyYXRlcy5pby9jcmF0ZXMvdW5pYy1ub3JtYWwpIGNyYXRlLgorK1tgaWN1X25vcm1hbGl6ZXJg XShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvaWN1X25vcm1hbGl6ZXIpIGNyYXRlLgorIAorIFRo ZSBleGNlcHRpb24gaXMgd2luZG93cy0xMjU4LCB3aGljaCBhZnRlciBub3JtYWxpemluZyB0byBV bmljb2RlIE5vcm1hbGl6YXRpb24KKyBGb3JtIEMgcmVxdWlyZXMgdG9uZSBtYXJrcyB0byBiZSBk ZWNvbXBvc2VkIGluIG9yZGVyIHRvIG1pbmltaXplIHVubWFwcGFibGUKKyBjaGFyYWN0ZXJzLiBW aWV0bmFtZXNlIHRvbmUgbWFya3MgY2FuIGJlIGRlY29tcG9zZWQgdXNpbmcgdGhlCisgW2BkZXRv bmVgXShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvZGV0b25lKSBjcmF0ZS4KKyAKKyAjIyBMaWNl bnNpbmcKKyAKK0BAIC0zODYsMjAgKzM4NiwxOSBAQCBUbyByZWdlbmVyYXRlIHRoZSBnZW5lcmF0 ZWQgY29kZToKKyAKKyAgKiBIYXZlIFB5dGhvbiAyIGluc3RhbGxlZC4KKyAgKiBDbG9uZSBbYGh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19jYF0oaHR0cHM6Ly9naXRodWIuY29t L2hzaXZvbmVuL2VuY29kaW5nX2MpCisgICAgbmV4dCB0byB0aGUgYGVuY29kaW5nX3JzYCBkaXJl Y3RvcnkuCisgICogQ2xvbmUgW2BodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vY29kZXBhZ2Vg XShodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4vY29kZXBhZ2UpCisgICAgbmV4dCB0byB0aGUg YGVuY29kaW5nX3JzYCBkaXJlY3RvcnkuCisgICogQ2xvbmUgW2BodHRwczovL2dpdGh1Yi5jb20v d2hhdHdnL2VuY29kaW5nYF0oaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy9lbmNvZGluZykKKyAg ICBuZXh0IHRvIHRoZSBgZW5jb2RpbmdfcnNgIGRpcmVjdG9yeS4KKy0gKiBDaGVja291dCByZXZp c2lvbiBgYmUzMzM3NDUwZTdkZjFjNDlkY2E3ODcyMTUzYzRjNDY3MGRkODI1NmAgb2YgdGhlIGBl bmNvZGluZ2AgcmVwby4KKysgKiBDaGVja291dCByZXZpc2lvbiBgMWQ1MTliZjhlNTU1NWNlZjY0 Y2YzYTcxMjQ4NWY0MWNkMWE2YTk5MGAgb2YgdGhlIGBlbmNvZGluZ2AgcmVwby4KKyAgICAoTm90 ZTogYGYzODEzODlgIHdhcyB0aGUgcmV2aXNpb24gb2YgYGVuY29kaW5nYCB1c2VkIGZyb20gYmVm b3JlIHRoZSBgZW5jb2RpbmdgIHJlcG8KKy0gICBsaWNlbnNlIGNoYW5nZS4gU28gZmFyLCBvbmx5 IG91dHB1dCBjaGFuZ2VkIHNpbmNlIHRoZW4gaGFzIGJlZW4gdXBkYXRlZCB0bworLSAgIHRoZSBu ZXcgbGljZW5zZSBsZWdlbmQuKQorKyAgIGxpY2Vuc2UgY2hhbmdlLikKKyAgKiBXaXRoIHRoZSBg ZW5jb2RpbmdfcnNgIGRpcmVjdG9yeSBhcyB0aGUgd29ya2luZyBkaXJlY3RvcnksIHJ1bgorICAg IGBweXRob24gZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weWAuCisgCisgIyMgUm9hZG1hcAorIAor IC0gW3hdIERlc2lnbiB0aGUgbG93LWxldmVsIEFQSS4KKyAtIFt4XSBQcm92aWRlIFJ1c3Qtb25s eSBjb252ZW5pZW5jZSBmZWF0dXJlcy4KKyAtIFt4XSBQcm92aWRlIGFuIHN0bC9nc2wtZmxhdm9y ZWQgQysrIEFQSS4KK0BAIC00MzMsMTYgKzQzMiwyMCBAQCBUbyByZWdlbmVyYXRlIHRoZSBnZW5l cmF0ZWQgY29kZToKKyAtIFt4XSBBZGQgYWN0dWFsbHkgZmFzdCBDSksgZW5jb2RlIG9wdGlvbnMu CisgLSBbIF0gfkludmVzdGlnYXRlIFtCb2IgU3RlYWdhbGwncyBsb29rdXAgdGFibGUgYWNjZWxl cmF0aW9uIGZvciBVVEYtOF0oaHR0cHM6Ly9naXRodWIuY29tL0JvYlN0ZWFnYWxsL0NwcE5vdzIw MTgvYmxvYi9tYXN0ZXIvRmFzdENvbnZlcnNpb25Gcm9tVVRGLTgvRmFzdCUyMENvbnZlcnNpb24l MjBGcm9tJTIwVVRGLTglMjB3aXRoJTIwQyUyQiUyQiUyQyUyMERGQXMlMkMlMjBhbmQlMjBTU0Ul MjBJbnRyaW5zaWNzJTIwLSUyMEJvYiUyMFN0ZWFnYWxsJTIwLSUyMEMlMkIlMkJOb3clMjAyMDE4 LnBkZikufgorIC0gW3hdIFByb3ZpZGUgYSBidWlsZCBtb2RlIHRoYXQgd29ya3Mgd2l0aG91dCBg YWxsb2NgICh3aXRoIGxlc3NlciBBUEkgc3VyZmFjZSkuCisgLSBbeF0gTWlncmF0ZSB0byBgc3Rk OjpzaW1kYCB+b25jZSBpdCBpcyBzdGFibGUgYW5kIGRlY2xhcmUgMS4wLn4KKyAtIFsgXSBNaWdy YXRlIGB1bnNhZmVgIHNsaWNlIGFjY2VzcyBieSBsYXJnZXIgdHlwZXMgdGhhbiBgdThgL2B1MTZg IHRvIGBhbGlnbl90b2AuCisgCisgIyMgUmVsZWFzZSBOb3RlcworIAorKyMjIyAwLjguMzUKKysK KysqIEltcGxlbWVudCBjaGFuZ2VzIGZvciBHQjE4MDMwLTIwMjIuIChJbnRlbnRpb25hbGx5IG5v dCB0cmVhdGVkIGFzIGEgc2VtdmVyIGJyZWFrIGluIHByYWN0aWNlIGV2ZW4gaWYgdGhpcyBjb3Vs ZCBiZSBhcmd1ZWQgdG8gYmUgYSBicmVha2luZyBjaGFuZ2UgaW4gdGhlb3J5LikKKysKKyAjIyMg MC44LjM0CisgCisgKiBVc2UgdGhlIGBwb3J0YWJsZV9zaW1kYCBuaWdodGx5IGZlYXR1cmUgb2Yg dGhlIHN0YW5kYXJkIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgYHBhY2tlZF9zaW1kYCBjcmF0ZS4g T25seSBhZmZlY3RzIHRoZSBgc2ltZC1hY2NlbGAgb3B0aW9uYWwgbmlnaHRseSBmZWF0dXJlLgor ICogSW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMgYW5kIG1pbm9yIGNvZGUgaW1w cm92ZW1lbnRzIGFyb3VuZCBgdW5zYWZlYC4KKyAqIEFkZGVkIGBydXN0LXZlcnNpb25gIHRvIGBD YXJnby50b21sYC4KKyAKKyAjIyMgMC44LjMzCisgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9kb2MvR0JLLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvZG9jL0dCSy50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvZG9jL0dC Sy50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvZG9jL0dCSy50eHQKK0BA IC0xLDEzICsxLDE0IEBACisgLy8vIFRoZSBkZWNvZGVyIGZvciB0aGlzIGVuY29kaW5nIGlzIHRo ZSBzYW1lIGFzIHRoZSBkZWNvZGVyIGZvciBnYjE4MDMwLgorIC8vLyBUaGUgZW5jb2RlciBzaWRl IG9mIHRoaXMgZW5jb2RpbmcgaXMgR0JLIHdpdGggV2luZG93cyBjb2RlIHBhZ2UgOTM2IGV1cm8K Ky0vLy8gc2lnbiBiZWhhdmlvci4gR0JLIGV4dGVuZHMgR0IyMzEyLTgwIHRvIGNvdmVyIHRoZSBD SksgVW5pZmllZCBJZGVvZ3JhcGhzCistLy8vIFVuaWNvZGUgYmxvY2sgYXMgd2VsbCBhcyBhIGhh bmRmdWwgb2YgaWRlb2dyYXBocyBmcm9tIHRoZSBDSksgVW5pZmllZAorLS8vLyBJZGVvZ3JhcGhz IEV4dGVuc2lvbiBBIGFuZCBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIGJsb2Nrcy4KKysv Ly8gc2lnbiBiZWhhdmlvciBhbmQgd2l0aCB0aGUgY2hhbmdlcyB0byB0d28tYnl0ZSBzZXF1ZW5j ZXMgbWFkZSBpbiBHQjE4MDMwLTIwMjIuCisrLy8vIEdCSyBleHRlbmRzIEdCMjMxMi04MCB0byBj b3ZlciB0aGUgQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBVbmljb2RlIGJsb2NrIGFzCisrLy8vIHdl bGwgYXMgYSBoYW5kZnVsIG9mIGlkZW9ncmFwaHMgZnJvbSB0aGUgQ0pLIFVuaWZpZWQgSWRlb2dy YXBocyBFeHRlbnNpb24gQQorKy8vLyBhbmQgQ0pLIENvbXBhdGliaWxpdHkgSWRlb2dyYXBocyBi bG9ja3MuCisgLy8vCisgLy8vIFVubGlrZSBlLmcuIGluIHRoZSBjYXNlIG9mIElTTy04ODU5LTEg YW5kIHdpbmRvd3MtMTI1MiwgR0JLIGVuY29kZXIgd2Fzbid0CisgLy8vIHVuaWZpZWQgd2l0aCB0 aGUgZ2IxODAzMCBlbmNvZGVyIGluIHRoZSBFbmNvZGluZyBTdGFuZGFyZCBvdXQgb2YgY29uY2Vy bgorIC8vLyB0aGF0IHNlcnZlcnMgdGhhdCBleHBlY3QgR0JLIGZvcm0gc3VibWlzc2lvbnMgbWln aHQgbm90IGJlIGFibGUgdG8gaGFuZGxlCisgLy8vIHRoZSBmb3VyLWJ5dGUgc2VxdWVuY2VzLgor IC8vLworIC8vLyBbSW5kZXggdmlzdWFsaXphdGlvbiBmb3IgdGhlIHR3by1ieXRlIHNlcXVlbmNl c10oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC5odG1sKSwKKyAvLy8g W1Zpc3VhbGl6YXRpb24gb2YgQk1QIGNvdmVyYWdlIG9mIHRoZSB0d28tYnl0ZSBpbmRleF0oaHR0 cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC1ibXAuaHRtbCkKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL2RvYy9nYjE4MDMwLnR4dCBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvZG9jL2diMTgwMzAudHh0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL2RvYy9nYjE4MDMwLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9kb2MvZ2IxODAzMC50eHQKK0BAIC0xLDkgKzEsMTAgQEAKKy0vLy8gVGhp cyBlbmNvZGluZyBtYXRjaGVzIEdCMTgwMzAtMjAwNSBleGNlcHQgdGhlIHR3by1ieXRlIHNlcXVl bmNlIDB4QTMgMHhBMAorLS8vLyBtYXBzIHRvIFUrMzAwMCBmb3IgY29tcGF0aWJpbGl0eSB3aXRo IGV4aXN0aW5nIFdlYiBjb250ZW50LiBBcyBhIHJlc3VsdCwKKy0vLy8gdGhpcyBlbmNvZGluZyBj YW4gcmVwcmVzZW50IGFsbCBvZiBVbmljb2RlIGV4Y2VwdCBmb3IgdGhlIHByaXZhdGUtdXNlCist Ly8vIGNoYXJhY3RlciBVK0U1RTUuCisrLy8vIFRoaXMgZW5jb2RpbmcgbWF0Y2hlcyBHQjE4MDMw LTIwMjIgZXhjZXB0IHRoZSB0d28tYnl0ZSBzZXF1ZW5jZSAweEEzIDB4QTAKKysvLy8gbWFwcyB0 byBVKzMwMDAgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBXZWIgY29udGVudCBhbmQg dGhlIGZvdXItYnl0ZQorKy8vLyBzZXF1ZW5jZXMgZm9yIHRoZSBub24tUFVBIGNoYXJhY3RlcnMg dGhhdCBnb3QgdHdvLWJ5dGUgc2VxdWVuY2VzIHN0aWxsIGRlY29kZQorKy8vLyB0byB0aGUgc2Ft ZSBub24tUFVBIGNoYXJhY3RlcnMgYXMgaW4gR0IxODAzMC0yMDA1LiBBcyBhIHJlc3VsdCwgdGhp cyBlbmNvZGluZworKy8vLyBjYW4gcmVwcmVzZW50IGFsbCBvZiBVbmljb2RlIGV4Y2VwdCBmb3Ig MTkgcHJpdmF0ZS11c2UgY2hhcmFjdGVycy4KKyAvLy8KKyAvLy8gW0luZGV4IHZpc3VhbGl6YXRp b24gZm9yIHRoZSB0d28tYnl0ZSBzZXF1ZW5jZXNdKGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0 d2cub3JnL2diMTgwMzAuaHRtbCksCisgLy8vIFtWaXN1YWxpemF0aW9uIG9mIEJNUCBjb3ZlcmFn ZSBvZiB0aGUgdHdvLWJ5dGUgaW5kZXhdKGh0dHBzOi8vZW5jb2Rpbmcuc3BlYy53aGF0d2cub3Jn L2diMTgwMzAtYm1wLmh0bWwpCisgLy8vCisgLy8vIFRoaXMgZW5jb2RpbmcgbWF0Y2hlcyB0aGUg V2luZG93cyBjb2RlIHBhZ2UgNTQ5MzYuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9nZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5IGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9nZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzL2dlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvZ2VuZXJhdGUtZW5jb2RpbmctZGF0YS5weQorQEAgLTEwLDE3 ICsxMCwxNyBAQAorICMgZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKyAKKyBpbXBv cnQganNvbgorIGltcG9ydCBzdWJwcm9jZXNzCisgaW1wb3J0IHN5cworIGltcG9ydCBvcy5wYXRo CisgCisgaWYgKG5vdCBvcy5wYXRoLmlzZmlsZSgiLi4vZW5jb2RpbmcvZW5jb2RpbmdzLmpzb24i KSkgb3IgKG5vdCBvcy5wYXRoLmlzZmlsZSgiLi4vZW5jb2RpbmcvaW5kZXhlcy5qc29uIikpOgor LSAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBzY3JpcHQgbmVlZHMgYSBjbG9uZSBvZiBodHRwczov L2dpdGh1Yi5jb20vd2hhdHdnL2VuY29kaW5nLyAocHJlZmVyYWJseSBhdCByZXZpc2lvbiBmMzgx Mzg5KSBuZXh0IHRvIHRoZSBlbmNvZGluZ19ycyBkaXJlY3RvcnkuXG4iKTsKKysgIHN5cy5zdGRl cnIud3JpdGUoIlRoaXMgc2NyaXB0IG5lZWRzIGEgY2xvbmUgb2YgaHR0cHM6Ly9naXRodWIuY29t L3doYXR3Zy9lbmNvZGluZy8gKHByZWZlcmFibHkgYXQgcmV2aXNpb24gMWQ1MTliZjhlNTU1NWNl ZjY0Y2YzYTcxMjQ4NWY0MWNkMWE2YTk5MCApIG5leHQgdG8gdGhlIGVuY29kaW5nX3JzIGRpcmVj dG9yeS5cbiIpOworICAgc3lzLmV4aXQoLTEpCisgCisgaWYgbm90IG9zLnBhdGguaXNmaWxlKCIu Li9lbmNvZGluZ19jL3NyYy9saWIucnMiKToKKyAgIHN5cy5zdGRlcnIud3JpdGUoIlRoaXMgc2Ny aXB0IGFsc28gd3JpdGVzIHRoZSBnZW5lcmF0ZWQgcGFydHMgb2YgdGhlIGVuY29kaW5nX2MgY3Jh dGUgYW5kIG5lZWRzIGEgY2xvbmUgb2YgaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29k aW5nX2MgbmV4dCB0byB0aGUgZW5jb2RpbmdfcnMgZGlyZWN0b3J5LlxuIik7CisgICBzeXMuZXhp dCgtMSkKKyAKKyBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoIi4uL2NvZGVwYWdlL3NyYy9saWIucnMi KToKKyAgIHN5cy5zdGRlcnIud3JpdGUoIlRoaXMgc2NyaXB0IGFsc28gd3JpdGVzIHRoZSBnZW5l cmF0ZWQgcGFydHMgb2YgdGhlIGNvZGVwYWdlIGNyYXRlIGFuZCBuZWVkcyBhIGNsb25lIG9mIGh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9jb2RlcGFnZSBuZXh0IHRvIHRoZSBlbmNvZGluZ19y cyBkaXJlY3RvcnkuXG4iKTsKK0BAIC0xNjA3LDE4ICsxNjA3LDE3IEBAIHV0Zl84X2ZpbGUud3Jp dGUoIiIiCisgCisgIiIiKQorIAorIHV0Zl84X2ZpbGUud3JpdGUodXRmXzhfcnNfZW5kKQorIHV0 Zl84X2ZpbGUuY2xvc2UoKQorIAorICMgVW5pdCB0ZXN0cworIAorLVRFU1RfSEVBREVSID0gJycn QW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRp Y2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv cHVibGljZG9tYWluL3plcm8vMS4wLworK1RFU1RfSEVBREVSID0gJycnR2VuZXJhdGVkIGZyb20g V0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBn ZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdl bmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyAnJycKKyAKKyBpbmRleCA9 IGluZGV4ZXNbImppczAyMDgiXQorIAorIGppczAyMDhfaW5fZmlsZSA9IG9wZW4oInNyYy90ZXN0 X2RhdGEvamlzMDIwOF9pbi50eHQiLCAidyIpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvZGF0YS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL2RhdGEucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2RhdGEu cnMKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2RhdGEucnMKK0BAIC0y LDE2ICsyLDQ3IEBACisgLy8gZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlz IGRpc3RyaWJ1dGlvbi4KKyAvLworIC8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5z ZSwgVmVyc2lvbiAyLjAgPExJQ0VOU0UtQVBBQ0hFIG9yCisgLy8gaHR0cHM6Ly93d3cuYXBhY2hl Lm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCisgLy8gPExJQ0VO U0UtTUlUIG9yIGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgor IC8vIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlz dHJpYnV0ZWQKKyAvLyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorIAorKy8vIFRo ZSBhYm92ZSBsaWNlbnNlIGFwcGxpZXMgdG8gY29kZSBpbiB0aGlzIGZpbGUuIFRoZSBkYXRhIGlu IHRoaXMKKysvLyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIFdIQVRXRydzIGluZGV4ZXMuanNvbiwg d2hpY2ggY2FtZSB1bmRlcgorKy8vIHRoZSBmb2xsb3dpbmcgbGljZW5zZToKKysKKysvLyBDb3B5 cmlnaHQgwqkgV0hBVFdHIChBcHBsZSwgR29vZ2xlLCBNb3ppbGxhLCBNaWNyb3NvZnQpLgorKy8v CisrLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg d2l0aCBvciB3aXRob3V0CisrLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisrLy8KKysvLyAxLiBSZWRp c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo dCBub3RpY2UsIHRoaXMKKysvLyAgICBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp bmcgZGlzY2xhaW1lci4KKysvLworKy8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKysvLyAgICB0aGlz IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk b2N1bWVudGF0aW9uCisrLy8gICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo IHRoZSBkaXN0cmlidXRpb24uCisrLy8KKysvLyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBj b3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzCisrLy8gICAgY29udHJpYnV0b3Jz IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K KysvLyAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt aXNzaW9uLgorKy8vCisrLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCisrLy8gQU5EIEFOWSBFWFBSRVNT IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI RQorKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorKy8vIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKysv LyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS WSwgT1IgQ09OU0VRVUVOVElBTAorKy8vIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisrLy8gU0VSVklDRVM7 IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p IEhPV0VWRVIKKysvLyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorKy8vIE9SIFRPUlQgKElOQ0xVRElO RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg VVNFCisrLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ TElUWSBPRiBTVUNIIERBTUFHRS4KKysKKyAvLyBCRUdJTiBHRU5FUkFURUQgQ09ERS4gUExFQVNF IERPIE5PVCBFRElULgorIC8vIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVy YXRlLWVuY29kaW5nLWRhdGEucHkKKyAKKyAjW3JlcHIoYWxpZ24oNjQpKV0gLy8gQWxpZ24gdG8g Y2FjaGUgbGluZXMKKyBwdWIgc3RydWN0IFNpbmdsZUJ5dGVEYXRhIHsKKyAgICAgcHViIGlibTg2 NjogW3UxNjsgMTI4XSwKKyAgICAgcHViIGlzb184ODU5XzI6IFt1MTY7IDEyOF0sCisgICAgIHB1 YiBpc29fODg1OV8zOiBbdTE2OyAxMjhdLAorQEAgLTg4MDU2LDIzICs4ODA4NywyMyBAQCBwdWIg c3RhdGljIEdCS19PVEhFUl9VTlNPUlRFRF9PRkZTRVRTOiBbCisgICAgIDB4MjI5NSwgMHgzMDEy LCAweDMwMUQsIDB4RTdCQywgMHgzMDIxLCAweDMyQTMsIDB4MzM4RSwgMHgzMzlDLCAweDMzQTEs IDB4MzNDNCwgMHgzM0NFLCAweDMzRDEsCisgICAgIDB4MzNENSwgMHhGRTMwLCAweEZGRTIsIDB4 RkZFNCwgMHhFN0UyLCAweDIxMjEsIDB4MzIzMSwgMHhFN0UzLCAweDIwMTAsIDB4RTdFNCwgMHgz MEZDLCAweDMwOUIsCisgICAgIDB4MzBGRCwgMHgzMDA2LCAweDMwOUQsIDB4RkU0OSwgMHhGRTU0 LCAweEZFNTksIDB4RkU2OCwgMHgzMDNFLCAweDJGRjAsIDB4MzAwNywgMHhFN0Y0LAorIF07Cisg CisgcHViIHN0YXRpYyBHQktfQk9UVE9NOiBbdTE2OyAxMDFdID0gWworICAgICAweEY5MkMsIDB4 Rjk3OSwgMHhGOTk1LCAweEY5RTcsIDB4RjlGMSwgMHhGQTBDLCAweEZBMEQsIDB4RkEwRSwgMHhG QTBGLCAweEZBMTEsIDB4RkExMywgMHhGQTE0LAorICAgICAweEZBMTgsIDB4RkExRiwgMHhGQTIw LCAweEZBMjEsIDB4RkEyMywgMHhGQTI0LCAweEZBMjcsIDB4RkEyOCwgMHhGQTI5LCAweDJFODEs IDB4RTgxNiwgMHhFODE3LAorLSAgICAweEU4MTgsIDB4MkU4NCwgMHgzNDczLCAweDM0NDcsIDB4 MkU4OCwgMHgyRThCLCAweEU4MUUsIDB4MzU5RSwgMHgzNjFBLCAweDM2MEUsIDB4MkU4QywgMHgy RTk3LAorLSAgICAweDM5NkUsIDB4MzkxOCwgMHhFODI2LCAweDM5Q0YsIDB4MzlERiwgMHgzQTcz LCAweDM5RDAsIDB4RTgyQiwgMHhFODJDLCAweDNCNEUsIDB4M0M2RSwgMHgzQ0UwLAorLSAgICAw eDJFQTcsIDB4RTgzMSwgMHhFODMyLCAweDJFQUEsIDB4NDA1NiwgMHg0MTVGLCAweDJFQUUsIDB4 NDMzNywgMHgyRUIzLCAweDJFQjYsIDB4MkVCNywgMHhFODNCLAorLSAgICAweDQzQjEsIDB4NDNB QywgMHgyRUJCLCAweDQzREQsIDB4NDRENiwgMHg0NjYxLCAweDQ2NEMsIDB4RTg0MywgMHg0NzIz LCAweDQ3MjksIDB4NDc3QywgMHg0NzhELAorKyAgICAweEU4MTgsIDB4MkU4NCwgMHgzNDczLCAw eDM0NDcsIDB4MkU4OCwgMHgyRThCLCAweDlGQjQsIDB4MzU5RSwgMHgzNjFBLCAweDM2MEUsIDB4 MkU4QywgMHgyRTk3LAorKyAgICAweDM5NkUsIDB4MzkxOCwgMHg5RkI1LCAweDM5Q0YsIDB4MzlE RiwgMHgzQTczLCAweDM5RDAsIDB4OUZCNiwgMHg5RkI3LCAweDNCNEUsIDB4M0M2RSwgMHgzQ0Uw LAorKyAgICAweDJFQTcsIDB4RTgzMSwgMHg5RkI4LCAweDJFQUEsIDB4NDA1NiwgMHg0MTVGLCAw eDJFQUUsIDB4NDMzNywgMHgyRUIzLCAweDJFQjYsIDB4MkVCNywgMHhFODNCLAorKyAgICAweDQz QjEsIDB4NDNBQywgMHgyRUJCLCAweDQzREQsIDB4NDRENiwgMHg0NjYxLCAweDQ2NEMsIDB4OUZC OSwgMHg0NzIzLCAweDQ3MjksIDB4NDc3QywgMHg0NzhELAorICAgICAweDJFQ0EsIDB4NDk0Nywg MHg0OTdBLCAweDQ5N0QsIDB4NDk4MiwgMHg0OTgzLCAweDQ5ODUsIDB4NDk4NiwgMHg0OTlGLCAw eDQ5OUIsIDB4NDlCNywgMHg0OUI2LAorLSAgICAweEU4NTQsIDB4RTg1NSwgMHg0Q0EzLCAweDRD OUYsIDB4NENBMCwgMHg0Q0ExLCAweDRDNzcsIDB4NENBMiwgMHg0RDEzLCAweDREMTQsIDB4NEQx NSwgMHg0RDE2LAorLSAgICAweDREMTcsIDB4NEQxOCwgMHg0RDE5LCAweDREQUUsIDB4RTg2NCwK KysgICAgMHg5RkJBLCAweEU4NTUsIDB4NENBMywgMHg0QzlGLCAweDRDQTAsIDB4NENBMSwgMHg0 Qzc3LCAweDRDQTIsIDB4NEQxMywgMHg0RDE0LCAweDREMTUsIDB4NEQxNiwKKysgICAgMHg0RDE3 LCAweDREMTgsIDB4NEQxOSwgMHg0REFFLCAweDlGQkIsCisgXTsKKyAKKyBwdWIgc3RhdGljIEdC MjMxMl9IQU5aSTogW3UxNjsgNjc2OF0gPSBbCisgICAgIDB4NTU0QSwgMHg5NjNGLCAweDU3QzMs IDB4NjMyOCwgMHg1NENFLCAweDU1MDksIDB4NTRDMCwgMHg3NjkxLCAweDc2NEMsIDB4ODUzQywg MHg3N0VFLCAweDgyN0UsCisgICAgIDB4Nzg4RCwgMHg3MjMxLCAweDk2OTgsIDB4OTc4RCwgMHg2 QzI4LCAweDVCODksIDB4NEZGQSwgMHg2MzA5LCAweDY2OTcsIDB4NUNCOCwgMHg4MEZBLCAweDY4 NDgsCisgICAgIDB4ODBBRSwgMHg2NjAyLCAweDc2Q0UsIDB4NTFGOSwgMHg2NTU2LCAweDcxQUMs IDB4N0ZGMSwgMHg4ODg0LCAweDUwQjIsIDB4NTk2NSwgMHg2MUNBLCAweDZGQjMsCisgICAgIDB4 ODJBRCwgMHg2MzRDLCAweDYyNTIsIDB4NTNFRCwgMHg1NDI3LCAweDdCMDYsIDB4NTE2QiwgMHg3 NUE0LCAweDVERjQsIDB4NjJENCwgMHg4RENCLCAweDk3NzYsCisgICAgIDB4NjI4QSwgMHg4MDE5 LCAweDU3NUQsIDB4OTczOCwgMHg3RjYyLCAweDcyMzgsIDB4NzY3RCwgMHg2N0NGLCAweDc2N0Us IDB4NjQ0NiwgMHg0RjcwLCAweDhEMjUsCitAQCAtODg2NDUsMzcgKzg4Njc2LDM3IEBAIHB1YiBz dGF0aWMgR0IyMzEyX1NZTUJPTFM6IFt1MTY7IDk0XSA9IFsKKyAgICAgMHgyMjk5LCAweDIyMkIs IDB4MjIyRSwgMHgyMjYxLCAweDIyNEMsIDB4MjI0OCwgMHgyMjNELCAweDIyMUQsIDB4MjI2MCwg MHgyMjZFLCAweDIyNkYsIDB4MjI2NCwKKyAgICAgMHgyMjY1LCAweDIyMUUsIDB4MjIzNSwgMHgy MjM0LCAweDI2NDIsIDB4MjY0MCwgMHgwMEIwLCAweDIwMzIsIDB4MjAzMywgMHgyMTAzLCAweEZG MDQsIDB4MDBBNCwKKyAgICAgMHhGRkUwLCAweEZGRTEsIDB4MjAzMCwgMHgwMEE3LCAweDIxMTYs IDB4MjYwNiwgMHgyNjA1LCAweDI1Q0IsIDB4MjVDRiwgMHgyNUNFLCAweDI1QzcsIDB4MjVDNiwK KyAgICAgMHgyNUExLCAweDI1QTAsIDB4MjVCMywgMHgyNUIyLCAweDIwM0IsIDB4MjE5MiwgMHgy MTkwLCAweDIxOTEsIDB4MjE5MywgMHgzMDEzLAorIF07CisgCisgcHViIHN0YXRpYyBHQjIzMTJf U1lNQk9MU19BRlRFUl9HUkVFSzogW3UxNjsgMjJdID0gWworICAgICAweEZFMzUsIDB4RkUzNiwg MHhGRTM5LCAweEZFM0EsIDB4RkUzRiwgMHhGRTQwLCAweEZFM0QsIDB4RkUzRSwgMHhGRTQxLCAw eEZFNDIsIDB4RkU0MywgMHhGRTQ0LAorLSAgICAweEU3OTQsIDB4RTc5NSwgMHhGRTNCLCAweEZF M0MsIDB4RkUzNywgMHhGRTM4LCAweEZFMzEsIDB4RTc5NiwgMHhGRTMzLCAweEZFMzQsCisrICAg IDB4RkUxNywgMHhGRTE4LCAweEZFM0IsIDB4RkUzQywgMHhGRTM3LCAweEZFMzgsIDB4RkUzMSwg MHhGRTE5LCAweEZFMzMsIDB4RkUzNCwKKyBdOworIAorIHB1YiBzdGF0aWMgR0IyMzEyX1BJTllJ TjogW3UxNjsgMzJdID0gWworICAgICAweDAxMDEsIDB4MDBFMSwgMHgwMUNFLCAweDAwRTAsIDB4 MDExMywgMHgwMEU5LCAweDAxMUIsIDB4MDBFOCwgMHgwMTJCLCAweDAwRUQsIDB4MDFEMCwgMHgw MEVDLAorICAgICAweDAxNEQsIDB4MDBGMywgMHgwMUQyLCAweDAwRjIsIDB4MDE2QiwgMHgwMEZB LCAweDAxRDQsIDB4MDBGOSwgMHgwMUQ2LCAweDAxRDgsIDB4MDFEQSwgMHgwMURDLAorICAgICAw eDAwRkMsIDB4MDBFQSwgMHgwMjUxLCAweDFFM0YsIDB4MDE0NCwgMHgwMTQ4LCAweDAxRjksIDB4 MDI2MSwKKyBdOworIAorLXB1YiBzdGF0aWMgR0IyMzEyX09USEVSX1BPSU5URVJTOiBbdTE2OyA0 NF0gPSBbCisrcHViIHN0YXRpYyBHQjIzMTJfT1RIRVJfUE9JTlRFUlM6IFt1MTY7IDQ3XSA9IFsK KyAgICAgMHgwMDAwLCAweDAwMEEsIDB4MDAxMCwgMHgwMDI0LCAweDAwMzgsIDB4MDA0MiwgMHgw MDQzLCAweDAwNDQsIDB4MDA0RSwgMHgwMDUwLCAweDAwNUMsIDB4MDA1RSwKKyAgICAgMHgwMDYx LCAweDAwNjIsIDB4MDBCQiwgMHgwMEJDLCAweDAxMEYsIDB4MDExQSwgMHgwMTcwLCAweDAxNzgs IDB4MDE4OSwgMHgwMTkwLCAweDAxOTgsIDB4MDFBOSwKKy0gICAgMHgwMUIwLCAweDAxQjcsIDB4 MDFDRCwgMHgwMUQ2LCAweDAxREMsIDB4MDFERCwgMHgwMUY3LCAweDAyMDYsIDB4MDIwQywgMHgw MjBELCAweDAyMjcsIDB4MDIzNCwKKy0gICAgMHgwMjU0LCAweDAyNTgsIDB4MDI3RCwgMHgwMjky LCAweDAyOTUsIDB4MDJFMSwgMHgwMkYwLCAweDA1MjQsCisrICAgIDB4MDFCMCwgMHgwMUIxLCAw eDAxQjIsIDB4MDFCMywgMHgwMUI3LCAweDAxQ0QsIDB4MDFENiwgMHgwMURDLCAweDAxREQsIDB4 MDFGNywgMHgwMjA2LCAweDAyMEMsCisrICAgIDB4MDIwRCwgMHgwMjI3LCAweDAyMzQsIDB4MDI1 NCwgMHgwMjU4LCAweDAyN0QsIDB4MDI5MiwgMHgwMjk1LCAweDAyRTEsIDB4MDJGMCwgMHgwNTI0 LAorIF07CisgCistcHViIHN0YXRpYyBHQjIzMTJfT1RIRVJfVU5TT1JURURfT0ZGU0VUUzogW3Ux NjsgNDNdID0gWworK3B1YiBzdGF0aWMgR0IyMzEyX09USEVSX1VOU09SVEVEX09GRlNFVFM6IFt1 MTY7IDQ2XSA9IFsKKyAgICAgMHgyMTcwLCAweEU3NjYsIDB4MjQ4OCwgMHgyNDc0LCAweDI0NjAs IDB4MjBBQywgMHhFNzZELCAweDMyMjAsIDB4RTc2RSwgMHgyMTYwLCAweEU3NzAsIDB4RkYwMSwK KyAgICAgMHhGRkU1LCAweEZGMDUsIDB4RkZFMywgMHgzMDQxLCAweEU3NzIsIDB4MzBBMSwgMHhF NzdELCAweDAzOTEsIDB4MDNBMywgMHhFNzg1LCAweDAzQjEsIDB4MDNDMywKKy0gICAgMHhFNzhE LCAweDAwMDAsIDB4RTc5NywgMHgwNDEwLCAweDA0MDEsIDB4MDQxNiwgMHhFN0EwLCAweDA0MzAs IDB4MDQ1MSwgMHgwNDM2LCAweEU3QUYsIDB4MDAwMCwKKy0gICAgMHhFN0M5LCAweDMxMDUsIDB4 RTdDRCwgMHhFN0ZFLCAweDI1MDAsIDB4RTgwMSwgMHhFMDAwLAorKyAgICAweEZFMTAsIDB4RkUx MiwgMHhGRTExLCAweEZFMTMsIDB4MDAwMCwgMHhFNzk3LCAweDA0MTAsIDB4MDQwMSwgMHgwNDE2 LCAweEU3QTAsIDB4MDQzMCwgMHgwNDUxLAorKyAgICAweDA0MzYsIDB4RTdBRiwgMHgwMDAwLCAw eEU3QzksIDB4MzEwNSwgMHhFN0NELCAweEU3RkUsIDB4MjUwMCwgMHhFODAxLCAweEUwMDAsCisg XTsKKyAKKyBwdWIgc3RhdGljIEdCMTgwMzBfUkFOR0VfUE9JTlRFUlM6IFt1MTY7IDIwNl0gPSBb CisgICAgIDB4MDAwMCwgMHgwMDI0LCAweDAwMjYsIDB4MDAyRCwgMHgwMDMyLCAweDAwNTEsIDB4 MDA1OSwgMHgwMDVGLCAweDAwNjAsIDB4MDA2NCwgMHgwMDY3LCAweDAwNjgsCisgICAgIDB4MDA2 OSwgMHgwMDZELCAweDAwN0UsIDB4MDA4NSwgMHgwMDk0LCAweDAwQUMsIDB4MDBBRiwgMHgwMEIz LCAweDAwRDAsIDB4MDEzMiwgMHgwMTMzLCAweDAxMzQsCisgICAgIDB4MDEzNSwgMHgwMTM2LCAw eDAxMzcsIDB4MDEzOCwgMHgwMTM5LCAweDAxNTUsIDB4MDFBQywgMHgwMUJCLCAweDAyMjAsIDB4 MDIyMSwgMHgwMjJFLCAweDAyRTUsCisgICAgIDB4MDJFNiwgMHgwMkVELCAweDAyRUUsIDB4MDMy NSwgMHgwMzMzLCAweDAzMzQsIDB4MUVGMiwgMHgxRUY0LCAweDFFRjUsIDB4MUVGNywgMHgxRUZF LCAweDFGMDcsCisgICAgIDB4MUYwOCwgMHgxRjA5LCAweDFGMEUsIDB4MUY3RSwgMHgxRkQ0LCAw eDFGRDUsIDB4MUZEOCwgMHgxRkU0LCAweDFGRUUsIDB4MjAyQywgMHgyMDMwLCAweDIwNDYsCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvZ2IxODAzMC5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2diMTgwMzAucnMKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2diMTgwMzAucnMKKysrKyBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2diMTgwMzAucnMKK0BAIC00LDE2ICs0LDE3IEBACisgLy8g TGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1B UEFDSEUgb3IKKyAvLyBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4w PiBvciB0aGUgTUlUIGxpY2Vuc2UKKyAvLyA8TElDRU5TRS1NSVQgb3IgaHR0cHM6Ly9vcGVuc291 cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCisgLy8gb3B0aW9uLiBUaGlzIGZpbGUgbWF5 IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorIC8vIGV4Y2VwdCBhY2Nv cmRpbmcgdG8gdGhvc2UgdGVybXMuCisgCisgdXNlIHN1cGVyOjoqOworIHVzZSBjcmF0ZTo6ZGF0 YTo6KjsKKyt1c2UgY3JhdGU6OmdiMTgwMzBfMjAyMjo6KjsKKyB1c2UgY3JhdGU6OmhhbmRsZXM6 Oio7CisgdXNlIGNyYXRlOjp2YXJpYW50OjoqOworIC8vIFJ1c3QgMS4xNC4wIHJlcXVpcmVzIHRo ZSBmb2xsb3dpbmcgZGVzcGl0ZSB0aGUgYXN0ZXJpc2sgYWJvdmUuCisgdXNlIHN1cGVyOjppbl9p bmNsdXNpdmVfcmFuZ2UxNjsKKyB1c2Ugc3VwZXI6OmluX3JhbmdlMTY7CisgCisgZW51bSBHYjE4 MDMwUGVuZGluZyB7CisgICAgIE5vbmUsCitAQCAtMzQyLDE4ICszNDMsMjUgQEAgZm4gZ2JrX2Vu Y29kZV9ub25fdW5pZmllZChibXA6IHUxNikgLT4gTworICAgICAgICAgeworICAgICAgICAgICAg IC8vIERpYWNyaXRpY3MgYW5kIExhdGluIDEgc3ltYm9scworICAgICAgICAgICAgIGlmIGxldCBT b21lKHBvcykgPSBwb3NpdGlvbigmR0IyMzEyX1NZTUJPTFNbMy4uKDB4QUMgLSAweDYwKV0sIGJt cCkgeworICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoMHhBMSwgcG9zICsgMHhBMSArIDMp KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICByZXR1cm4gTm9uZTsKKyAg ICAgfQorLSAgICBpZiBibXAgPj0gMHhFNzk0IHsKKy0gICAgICAgIC8vIFZhcmlvdXMgYnJhY2tl dHMsIGFsbCBpbiBQVUEgb3IgZnVsbC13aWR0aCByZWdpb25zCisrCisrICAgIGlmIGluX2luY2x1 c2l2ZV9yYW5nZTE2KGJtcCwgMHhFNzhELCAweEU4NjQpIHsKKysgICAgICAgIC8vIFRoZSBhcnJh eSBpcyBzb3J0ZWQgYnV0IHNob3J0LCBzbyBsZXQncyBkbyBsaW5lYXIgc2VhcmNoLgorKyAgICAg ICAgaWYgbGV0IFNvbWUocG9zKSA9IHBvc2l0aW9uKCZHQjE4MDMwXzIwMjJfT1ZFUlJJREVfUFVB Wy4uXSwgYm1wKSB7CisrICAgICAgICAgICAgbGV0IHBhaXIgPSAmR0IxODAzMF8yMDIyX09WRVJS SURFX0JZVEVTW3Bvc107CisrICAgICAgICAgICAgcmV0dXJuIFNvbWUoKHBhaXJbMF0uaW50bygp LCBwYWlyWzFdLmludG8oKSkpOworKyAgICAgICAgfQorKyAgICB9IGVsc2UgaWYgYm1wID49IDB4 RkUxNyB7CisrICAgICAgICAvLyBWYXJpb3VzIGJyYWNrZXRzLCBhbGwgaW4gZnVsbC13aWR0aCBy ZWdpb25zCisgICAgICAgICBpZiBsZXQgU29tZShwb3MpID0gcG9zaXRpb24oJkdCMjMxMl9TWU1C T0xTX0FGVEVSX0dSRUVLWy4uXSwgYm1wKSB7CisgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKDB4 QTYsIHBvcyArICgweDlGIC0gMHg2MCArIDB4QTEpKSk7CisgICAgICAgICB9CisgICAgIH0gZWxz ZSBpZiBibXAgPT0gMHgxRTNGIHsKKyAgICAgICAgIC8vIFRoZSBvbmUgUGlueWluIHBsYWNlZCBl bHNld2hlcmUgb24gdGhlIEJNUAorICAgICAgICAgcmV0dXJuIFNvbWUoKDB4QTgsIDB4N0IgLSAw eDYwICsgMHhBMSkpOworICAgICB9IGVsc2UgaWYgaW5fcmFuZ2UxNihibXAsIDB4QTAwMCwgMHhE ODAwKSB7CisgICAgICAgICAvLyBTaW5jZSBLb3JlYW4gaGFzIHVzYWdlIGluIENoaW5hLCBsZXQn cyBzcGVuZCBhIGJyYW5jaCB0byBmYXN0LXRyYWNrCitAQCAtMzc1LDE4ICszODMsMjEgQEAgZm4g Z2JrX2VuY29kZV9ub25fdW5pZmllZChibXA6IHUxNikgLT4gTworICAgICB9CisgICAgIC8vIEdC SyBvdGhlciAoZXhjZXB0IHJhZGljYWxzIGFuZCBQVUEgaW4gR0JLX0JPVFRPTSkuCisgICAgIGlm IGxldCBTb21lKG90aGVyX3BvaW50ZXIpID0gZ2JrX290aGVyX2VuY29kZShibXApIHsKKyAgICAg ICAgIGxldCBvdGhlcl9sZWFkID0gb3RoZXJfcG9pbnRlciBhcyB1c2l6ZSAvICgxOTAgLSA5NCk7 CisgICAgICAgICBsZXQgb3RoZXJfdHJhaWwgPSBvdGhlcl9wb2ludGVyIGFzIHVzaXplICUgKDE5 MCAtIDk0KTsKKyAgICAgICAgIGxldCBvZmZzZXQgPSBpZiBvdGhlcl90cmFpbCA8IDB4M0YgeyAw eDQwIH0gZWxzZSB7IDB4NDEgfTsKKyAgICAgICAgIHJldHVybiBTb21lKChvdGhlcl9sZWFkICsg KDB4ODEgKyAweDIwKSwgb3RoZXJfdHJhaWwgKyBvZmZzZXQpKTsKKyAgICAgfQorLSAgICAvLyBD SksgUmFkaWNhbHMgU3VwcGxlbWVudCBvciBQVUEgaW4gR0JLX0JPVFRPTQorLSAgICBpZiBpbl9p bmNsdXNpdmVfcmFuZ2UxNihibXAsIDB4MkU4MSwgMHgyRUNBKSB8fCBpbl9pbmNsdXNpdmVfcmFu Z2UxNihibXAsIDB4RTgxNiwgMHhFODY0KSB7CisrICAgIC8vIENKSyBSYWRpY2FscyBTdXBwbGVt ZW50LCBQVUEsIGFuZCBVKzlGQnggaWRlb2dyYXBocyBpbiBHQktfQk9UVE9NCisrICAgIGlmIGlu X2luY2x1c2l2ZV9yYW5nZTE2KGJtcCwgMHgyRTgxLCAweDJFQ0EpCisrICAgICAgICB8fCBpbl9p bmNsdXNpdmVfcmFuZ2UxNihibXAsIDB4OUZCNCwgMHg5RkJCKQorKyAgICAgICAgfHwgaW5faW5j bHVzaXZlX3JhbmdlMTYoYm1wLCAweEU4MTYsIDB4RTg1NSkKKysgICAgeworICAgICAgICAgaWYg bGV0IFNvbWUocG9zKSA9IHBvc2l0aW9uKCZHQktfQk9UVE9NWzIxLi5dLCBibXApIHsKKyAgICAg ICAgICAgICBsZXQgdHJhaWwgPSBwb3MgKyAxNjsKKyAgICAgICAgICAgICBsZXQgb2Zmc2V0ID0g aWYgdHJhaWwgPCAweDNGIHsgMHg0MCB9IGVsc2UgeyAweDQxIH07CisgICAgICAgICAgICAgcmV0 dXJuIFNvbWUoKDB4RkUsIHRyYWlsICsgb2Zmc2V0KSk7CisgICAgICAgICB9CisgICAgIH0KKyAg ICAgLy8gR0IyMzEyIGJvdHRvbSBQVUEKKyAgICAgbGV0IGJtcF9taW51c19nYjIzMTJfYm90dG9t X3B1YSA9IGJtcC53cmFwcGluZ19zdWIoMHhFMjM0KTsKK0BAIC02MDIsMjEgKzYxMywyOCBAQCBt b2QgdGVzdHMgeworIAorICAgICAgICAgLy8gdHdvIGJ5dGVzCisgICAgICAgICBkZWNvZGVfZ2Ix ODAzMChiIlx4ODFceDQwIiwgIlx1ezRFMDJ9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChi Ilx4ODFceDdFIiwgIlx1ezRFOEF9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4ODFc eDdGIiwgIlx1e0ZGRkR9XHV7MDA3Rn0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4 MVx4ODAiLCAiXHV7NEU5MH0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4MVx4RkUi LCAiXHV7NEZBMn0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRVx4NDAiLCAiXHV7 RkEwQ30iKTsKKy0gICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRVx4N0UiLCAiXHV7RTg0M30i KTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHhGRVx4N0YiLCAiXHV7RkZGRH1cdXswMDdG fSIpOworICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHg4MCIsICJcdXs0NzIzfSIpOwor ICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZFXHhGRSIsICJcdXtFNEM1fSIpOworIAorKyAg ICAgICAgLy8gQ2hhbmdlcyBiZXR3ZWVuIEdCMTgwMzAtMjAwNSBhbmQgR0IxODAzMC0yMDIyCisr ICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4RkVceDdFIiwgIlx1ezlGQjl9Iik7CisrICAgICAg ICBkZWNvZGVfZ2IxODAzMChiIlx4QTZceEREIiwgIlx1e0ZFMTR9Iik7CisrCisrICAgICAgICAv LyBUaGVzZSBtYXBwaW5ncyByZW1haW4gaW4gcGxhY2UgdGhlIEdCMTgwMzAtMjAwNSB3YXkgZGVz cGl0ZSBHQjE4MDMwLTIwMjIKKysgICAgICAgIGRlY29kZV9nYjE4MDMwKGIiXHg4Mlx4MzVceDkx XHgzMiIsICJcdXs5RkI5fSIpOworKyAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceDg0XHgzMVx4 ODNceDMwIiwgIlx1e0ZFMTR9Iik7CisrCisgICAgICAgICAvLyBUaGUgZGlmZmVyZW5jZSBmcm9t IHRoZSBvcmlnaW5hbCBHQjE4MDMwCisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4QTNceEEw IiwgIlx1ezMwMDB9Iik7CisgICAgICAgICBkZWNvZGVfZ2IxODAzMChiIlx4QTFceEExIiwgIlx1 ezMwMDB9Iik7CisgCisgICAgICAgICAvLyAweEZGCisgICAgICAgICBkZWNvZGVfZ2IxODAzMChi Ilx4RkZceDQwIiwgIlx1e0ZGRkR9XHV7MDA0MH0iKTsKKyAgICAgICAgIGRlY29kZV9nYjE4MDMw KGIiXHhFM1x4RkZceDlBXHgzMyIsICJcdXtGRkZEfVx1e0ZGRkR9Iik7IC8vIG5vdCBcdXtGRkZE fVx1e0ZGRkR9XHV7MDAzM30gIQorICAgICAgICAgZGVjb2RlX2diMTgwMzAoYiJceEZGXHgzMlx4 OUFceDMzIiwgIlx1e0ZGRkR9XHV7MDAzMn1cdXtGRkZEfSIpOyAvLyBub3QgXHV7RkZGRH1cdXsw MDMyfVx1e0ZGRkR9XHV7MDAzM30gIQorQEAgLTY3NCwxNiArNjkyLDI1IEBAIG1vZCB0ZXN0cyB7 CisgICAgICAgICAgICAgLy8gTWlyaSBpcyB0b28gc2xvdworICAgICAgICAgICAgIGVuY29kZV9n YjE4MDMwKCJcdXsyNjAzfSIsIGIiXHg4MVx4MzdceEEzXHgzMCIpOworICAgICAgICAgICAgIGVu Y29kZV9nYjE4MDMwKCJcdXsxRjRBOX0iLCBiIlx4OTRceDM5XHhEQVx4MzMiKTsKKyAgICAgICAg ICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7MTBGRkZGfSIsIGIiXHhFM1x4MzJceDlBXHgzNSIpOwor ICAgICAgICAgfQorIAorICAgICAgICAgLy8gRWRnZSBjYXNlcworICAgICAgICAgZW5jb2RlX2di MTgwMzAoIlx1ezAwRjd9IiwgYiJceEExXHhDMiIpOworKworKyAgICAgICAgLy8gR0IxODAzMC0y MDIyCisrICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7OUZCOX0iLCBiIlx4RkVceDdFIik7Cisr ICAgICAgICBlbmNvZGVfZ2IxODAzMCgiXHV7RkUxNH0iLCBiIlx4QTZceEREIik7CisrICAgICAg ICBlbmNvZGVfZ2IxODAzMCgiXHV7RTg0M30iLCBiIlx4RkVceDdFIik7CisrICAgICAgICBlbmNv ZGVfZ2IxODAzMCgiXHV7RTc5MX0iLCBiIlx4QTZceEREIik7CisrCisrICAgICAgICAvLyBOb24t Y2hhbmdlIGluIEdCMTgwMzAtMjAyMgorKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1e0U4MTd9 IiwgYiJceEZFXHg1MiIpOworICAgICB9CisgCisgICAgICNbdGVzdF0KKyAgICAgZm4gdGVzdF9n YmtfZW5jb2RlKCkgeworICAgICAgICAgLy8gRW1wdHkKKyAgICAgICAgIGVuY29kZV9nYmsoIiIs IGIiIik7CisgCisgICAgICAgICAvLyBBU0NJSQorQEAgLTcxNiwxNiArNzQzLDI1IEBAIG1vZCB0 ZXN0cyB7CisgICAgICAgICAgICAgLy8gTWlyaSBpcyB0b28gc2xvdworICAgICAgICAgICAgIGVu Y29kZV9nYmsoIlx1ezI2MDN9IiwgYiImIzk3MzE7Iik7CisgICAgICAgICAgICAgZW5jb2RlX2di aygiXHV7MUY0QTl9IiwgYiImIzEyODE2OTsiKTsKKyAgICAgICAgICAgICBlbmNvZGVfZ2JrKCJc dXsxMEZGRkZ9IiwgYiImIzExMTQxMTE7Iik7CisgICAgICAgICB9CisgCisgICAgICAgICAvLyBF ZGdlIGNhc2VzCisgICAgICAgICBlbmNvZGVfZ2JrKCJcdXswMEY3fSIsIGIiXHhBMVx4QzIiKTsK KysKKysgICAgICAgIC8vIEdCMTgwMzAtMjAyMgorKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1 ezlGQjl9IiwgYiJceEZFXHg3RSIpOworKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1e0ZFMTR9 IiwgYiJceEE2XHhERCIpOworKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1e0U4NDN9IiwgYiJc eEZFXHg3RSIpOworKyAgICAgICAgZW5jb2RlX2diMTgwMzAoIlx1e0U3OTF9IiwgYiJceEE2XHhE RCIpOworKworKyAgICAgICAgLy8gTm9uLWNoYW5nZSBpbiBHQjE4MDMwLTIwMjIKKysgICAgICAg IGVuY29kZV9nYjE4MDMwKCJcdXtFODE3fSIsIGIiXHhGRVx4NTIiKTsKKyAgICAgfQorIAorICAg ICAjW3Rlc3RdCisgICAgICNbY2ZnX2F0dHIobWlyaSwgaWdub3JlKV0gLy8gTWlyaSBpcyB0b28g c2xvdworICAgICBmbiB0ZXN0X2diMTgwMzBfZGVjb2RlX2FsbCgpIHsKKyAgICAgICAgIGxldCBp bnB1dCA9IGluY2x1ZGVfYnl0ZXMhKCJ0ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiKTsKKyAgICAg ICAgIGxldCBleHBlY3RhdGlvbiA9IGluY2x1ZGVfc3RyISgidGVzdF9kYXRhL2diMTgwMzBfaW5f cmVmLnR4dCIpOworICAgICAgICAgbGV0IChjb3csIGhhZF9lcnJvcnMpID0gR0IxODAzMC5kZWNv ZGVfd2l0aG91dF9ib21faGFuZGxpbmcoaW5wdXQpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2diMTgwMzBfMjAyMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL2diMTgwMzBfMjAyMi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0t LSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2diMTgw MzBfMjAyMi5ycworQEAgLTAsMCArMSw1NCBAQAorKy8vIENvcHlyaWdodCDCqSBXSEFUV0cgKEFw cGxlLCBHb29nbGUsIE1vemlsbGEsIE1pY3Jvc29mdCkuCisrLy8KKysvLyBSZWRpc3RyaWJ1dGlv biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKysv LyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgYXJlIG1ldDoKKysvLworKy8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpcworKy8v ICAgIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKy8v CisrLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorKy8vICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKysvLyAg ICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K KysvLworKy8vIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9y IHRoZSBuYW1lcyBvZiBpdHMKKysvLyAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorKy8vICAgIHRoaXMgc29mdHdh cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisrLy8KKysvLyBU SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O VFJJQlVUT1JTICJBUyBJUyIKKysvLyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisrLy8gSU1QTElFRCBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UgQVJFCisrLy8gRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI VCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorKy8vIEZPUiBBTlkgRElSRUNULCBJ TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM CisrLy8gREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKysvLyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorKy8vIENBVVNF RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU UklDVCBMSUFCSUxJVFksCisrLy8gT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKysvLyBPRiBUSElTIFNP RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF LgorKworKy8vLyBUaGUgUFVBIGNvZGUgcG9pbnRzIHNwZWNpYWwtY2FzZWQgaW4gdGhlIEdCMTgw MzAgZW5jb2Rlci4KKytwdWIoY3JhdGUpIHN0YXRpYyBHQjE4MDMwXzIwMjJfT1ZFUlJJREVfUFVB OiBbdTE2OyAxOF0gPSBbCisrICAgIDB4RTc4RCwgMHhFNzhFLCAweEU3OEYsIDB4RTc5MCwgMHhF NzkxLCAweEU3OTIsIDB4RTc5MywgMHhFNzk0LCAweEU3OTUsIDB4RTc5NiwgMHhFODFFLCAweEU4 MjYsCisrICAgIDB4RTgyQiwgMHhFODJDLCAweEU4MzIsIDB4RTg0MywgMHhFODU0LCAweEU4NjQs CisrXTsKKysKKysvLy8gVGhlIGJ5dGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFBVQSBjb2RlIHBv aW50cyBzcGVjaWFsLWNhc2VkIGluIHRoZSBHQjE4MDMwIGVuY29kZXIuCisrcHViKGNyYXRlKSBz dGF0aWMgR0IxODAzMF8yMDIyX09WRVJSSURFX0JZVEVTOiBbW3U4OyAyXTsgMThdID0gWworKyAg ICBbMHhBNiwgMHhEOV0sCisrICAgIFsweEE2LCAweERBXSwKKysgICAgWzB4QTYsIDB4REJdLAor KyAgICBbMHhBNiwgMHhEQ10sCisrICAgIFsweEE2LCAweEREXSwKKysgICAgWzB4QTYsIDB4REVd LAorKyAgICBbMHhBNiwgMHhERl0sCisrICAgIFsweEE2LCAweEVDXSwKKysgICAgWzB4QTYsIDB4 RURdLAorKyAgICBbMHhBNiwgMHhGM10sCisrICAgIFsweEZFLCAweDU5XSwKKysgICAgWzB4RkUs IDB4NjFdLAorKyAgICBbMHhGRSwgMHg2Nl0sCisrICAgIFsweEZFLCAweDY3XSwKKysgICAgWzB4 RkUsIDB4NkRdLAorKyAgICBbMHhGRSwgMHg3RV0sCisrICAgIFsweEZFLCAweDkwXSwKKysgICAg WzB4RkUsIDB4QTBdLAorK107CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvbGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJz CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMKKysrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2xpYi5ycworQEAgLTIsMTYgKzIsNDcgQEAK KyAvLyBmaWxlIGF0IHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoaXMgZGlzdHJpYnV0aW9u LgorIC8vCisgLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIu MCA8TElDRU5TRS1BUEFDSEUgb3IKKyAvLyBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz L0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKyAvLyA8TElDRU5TRS1NSVQgb3IgaHR0 cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQ+LCBhdCB5b3VyCisgLy8gb3B0aW9uLiBU aGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorIC8v IGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCisgCisrLy8gVGhlIGFib3ZlIGxpY2Vu c2UgYXBwbGllcyB0byBjb2RlIGluIHRoaXMgZmlsZS4gVGhlIGxhYmVsIGRhdGEgaW4KKysvLyB0 aGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gV0hBVFdHJ3MgZW5jb2RpbmdzLmpzb24sIHdoaWNo IGNhbWUgdW5kZXIKKysvLyB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6CisrCisrLy8gQ29weXJpZ2h0 IMKpIFdIQVRXRyAoQXBwbGUsIEdvb2dsZSwgTW96aWxsYSwgTWljcm9zb2Z0KS4KKysvLworKy8v IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAorKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0 IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorKy8vCisrLy8gMS4gUmVkaXN0cmli dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlLCB0aGlzCisrLy8gICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIuCisrLy8KKysvLyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisrLy8gICAgdGhpcyBsaXN0 IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l bnRhdGlvbgorKy8vICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg ZGlzdHJpYnV0aW9uLgorKy8vCisrLy8gMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgY29weXJp Z2h0IGhvbGRlciBub3IgdGhlIG5hbWVzIG9mIGl0cworKy8vICAgIGNvbnRyaWJ1dG9ycyBtYXkg YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisrLy8g ICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv bi4KKysvLworKy8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI T0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorKy8vIEFORCBBTlkgRVhQUkVTUyBPUiBJ TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKysv LyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKysvLyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisrLy8gRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S IENPTlNFUVVFTlRJQUwKKysvLyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorKy8vIFNFUlZJQ0VTOyBMT1NT IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF VkVSCisrLy8gQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKysvLyBPUiBUT1JUIChJTkNMVURJTkcgTkVH TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor Ky8vIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg T0YgU1VDSCBEQU1BR0UuCisrCisgIyFbY2ZnX2F0dHIoCisgICAgIGZlYXR1cmUgPSAiY2FyZ28t Y2xpcHB5IiwKKyAgICAgYWxsb3coZG9jX21hcmtkb3duLCBpbmxpbmVfYWx3YXlzLCBuZXdfcmV0 X25vX3NlbGYpCisgKV0KKyAKKyAvLyEgZW5jb2RpbmdfcnMgaXMgYSBHZWNrby1vcmllbnRlZCBG cmVlIFNvZnR3YXJlIC8gT3BlbiBTb3VyY2UgaW1wbGVtZW50YXRpb24KKyAvLyEgb2YgdGhlIFtF bmNvZGluZyBTdGFuZGFyZF0oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvKSBpbiBS dXN0LgorIC8vISBHZWNrby1vcmllbnRlZCBtZWFucyB0aGF0IGNvbnZlcnRpbmcgdG8gYW5kIGZy b20gVVRGLTE2IGlzIHN1cHBvcnRlZCBpbgorQEAgLTcyNSwxNiArNzU2LDE3IEBAIG1vZCBzaW1k X2Z1bmNzOworIAorICNbY2ZnKGFsbCh0ZXN0LCBmZWF0dXJlID0gImFsbG9jIikpXQorIG1vZCB0 ZXN0aW5nOworIAorIG1vZCBiaWc1OworIG1vZCBldWNfanA7CisgbW9kIGV1Y19rcjsKKyBtb2Qg Z2IxODAzMDsKKyttb2QgZ2IxODAzMF8yMDIyOworIG1vZCBpc29fMjAyMl9qcDsKKyBtb2QgcmVw bGFjZW1lbnQ7CisgbW9kIHNoaWZ0X2ppczsKKyBtb2Qgc2luZ2xlX2J5dGU7CisgbW9kIHV0Zl8x NjsKKyBtb2QgdXRmXzg7CisgbW9kIHhfdXNlcl9kZWZpbmVkOworIAorQEAgLTkwOSwxOSArOTQx LDIwIEBAIHB1YiBzdGF0aWMgR0JLX0lOSVQ6IEVuY29kaW5nID0gRW5jb2RpbmcKKyAgICAgbmFt ZTogIkdCSyIsCisgICAgIHZhcmlhbnQ6IFZhcmlhbnRFbmNvZGluZzo6R2JrLAorIH07CisgCisg Ly8vIFRoZSBHQksgZW5jb2RpbmcuCisgLy8vCisgLy8vIFRoZSBkZWNvZGVyIGZvciB0aGlzIGVu Y29kaW5nIGlzIHRoZSBzYW1lIGFzIHRoZSBkZWNvZGVyIGZvciBnYjE4MDMwLgorIC8vLyBUaGUg ZW5jb2RlciBzaWRlIG9mIHRoaXMgZW5jb2RpbmcgaXMgR0JLIHdpdGggV2luZG93cyBjb2RlIHBh Z2UgOTM2IGV1cm8KKy0vLy8gc2lnbiBiZWhhdmlvci4gR0JLIGV4dGVuZHMgR0IyMzEyLTgwIHRv IGNvdmVyIHRoZSBDSksgVW5pZmllZCBJZGVvZ3JhcGhzCistLy8vIFVuaWNvZGUgYmxvY2sgYXMg d2VsbCBhcyBhIGhhbmRmdWwgb2YgaWRlb2dyYXBocyBmcm9tIHRoZSBDSksgVW5pZmllZAorLS8v LyBJZGVvZ3JhcGhzIEV4dGVuc2lvbiBBIGFuZCBDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhz IGJsb2Nrcy4KKysvLy8gc2lnbiBiZWhhdmlvciBhbmQgd2l0aCB0aGUgY2hhbmdlcyB0byB0d28t Ynl0ZSBzZXF1ZW5jZXMgbWFkZSBpbiBHQjE4MDMwLTIwMjIuCisrLy8vIEdCSyBleHRlbmRzIEdC MjMxMi04MCB0byBjb3ZlciB0aGUgQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBVbmljb2RlIGJsb2Nr IGFzCisrLy8vIHdlbGwgYXMgYSBoYW5kZnVsIG9mIGlkZW9ncmFwaHMgZnJvbSB0aGUgQ0pLIFVu aWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQQorKy8vLyBhbmQgQ0pLIENvbXBhdGliaWxpdHkg SWRlb2dyYXBocyBibG9ja3MuCisgLy8vCisgLy8vIFVubGlrZSBlLmcuIGluIHRoZSBjYXNlIG9m IElTTy04ODU5LTEgYW5kIHdpbmRvd3MtMTI1MiwgR0JLIGVuY29kZXIgd2Fzbid0CisgLy8vIHVu aWZpZWQgd2l0aCB0aGUgZ2IxODAzMCBlbmNvZGVyIGluIHRoZSBFbmNvZGluZyBTdGFuZGFyZCBv dXQgb2YgY29uY2VybgorIC8vLyB0aGF0IHNlcnZlcnMgdGhhdCBleHBlY3QgR0JLIGZvcm0gc3Vi bWlzc2lvbnMgbWlnaHQgbm90IGJlIGFibGUgdG8gaGFuZGxlCisgLy8vIHRoZSBmb3VyLWJ5dGUg c2VxdWVuY2VzLgorIC8vLworIC8vLyBbSW5kZXggdmlzdWFsaXphdGlvbiBmb3IgdGhlIHR3by1i eXRlIHNlcXVlbmNlc10oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC5o dG1sKSwKKyAvLy8gW1Zpc3VhbGl6YXRpb24gb2YgQk1QIGNvdmVyYWdlIG9mIHRoZSB0d28tYnl0 ZSBpbmRleF0oaHR0cHM6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvZ2IxODAzMC1ibXAuaHRt bCkKK0BAIC0xNjUzLDIwICsxNjg2LDIxIEBAIHB1YiBzdGF0aWMgVVRGXzg6ICYnc3RhdGljIEVu Y29kaW5nID0gJlUKKyAvLy8gaXRlbXMuCisgcHViIHN0YXRpYyBHQjE4MDMwX0lOSVQ6IEVuY29k aW5nID0gRW5jb2RpbmcgeworICAgICBuYW1lOiAiZ2IxODAzMCIsCisgICAgIHZhcmlhbnQ6IFZh cmlhbnRFbmNvZGluZzo6R2IxODAzMCwKKyB9OworIAorIC8vLyBUaGUgZ2IxODAzMCBlbmNvZGlu Zy4KKyAvLy8KKy0vLy8gVGhpcyBlbmNvZGluZyBtYXRjaGVzIEdCMTgwMzAtMjAwNSBleGNlcHQg dGhlIHR3by1ieXRlIHNlcXVlbmNlIDB4QTMgMHhBMAorLS8vLyBtYXBzIHRvIFUrMzAwMCBmb3Ig Y29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIFdlYiBjb250ZW50LiBBcyBhIHJlc3VsdCwKKy0v Ly8gdGhpcyBlbmNvZGluZyBjYW4gcmVwcmVzZW50IGFsbCBvZiBVbmljb2RlIGV4Y2VwdCBmb3Ig dGhlIHByaXZhdGUtdXNlCistLy8vIGNoYXJhY3RlciBVK0U1RTUuCisrLy8vIFRoaXMgZW5jb2Rp bmcgbWF0Y2hlcyBHQjE4MDMwLTIwMjIgZXhjZXB0IHRoZSB0d28tYnl0ZSBzZXF1ZW5jZSAweEEz IDB4QTAKKysvLy8gbWFwcyB0byBVKzMwMDAgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGlu ZyBXZWIgY29udGVudCBhbmQgdGhlIGZvdXItYnl0ZQorKy8vLyBzZXF1ZW5jZXMgZm9yIHRoZSBu b24tUFVBIGNoYXJhY3RlcnMgdGhhdCBnb3QgdHdvLWJ5dGUgc2VxdWVuY2VzIHN0aWxsIGRlY29k ZQorKy8vLyB0byB0aGUgc2FtZSBub24tUFVBIGNoYXJhY3RlcnMgYXMgaW4gR0IxODAzMC0yMDA1 LiBBcyBhIHJlc3VsdCwgdGhpcyBlbmNvZGluZworKy8vLyBjYW4gcmVwcmVzZW50IGFsbCBvZiBV bmljb2RlIGV4Y2VwdCBmb3IgMTkgcHJpdmF0ZS11c2UgY2hhcmFjdGVycy4KKyAvLy8KKyAvLy8g W0luZGV4IHZpc3VhbGl6YXRpb24gZm9yIHRoZSB0d28tYnl0ZSBzZXF1ZW5jZXNdKGh0dHBzOi8v ZW5jb2Rpbmcuc3BlYy53aGF0d2cub3JnL2diMTgwMzAuaHRtbCksCisgLy8vIFtWaXN1YWxpemF0 aW9uIG9mIEJNUCBjb3ZlcmFnZSBvZiB0aGUgdHdvLWJ5dGUgaW5kZXhdKGh0dHBzOi8vZW5jb2Rp bmcuc3BlYy53aGF0d2cub3JnL2diMTgwMzAtYm1wLmh0bWwpCisgLy8vCisgLy8vIFRoaXMgZW5j b2RpbmcgbWF0Y2hlcyB0aGUgV2luZG93cyBjb2RlIHBhZ2UgNTQ5MzYuCisgLy8vCisgLy8vIFRo aXMgd2lsbCBjaGFuZ2UgZnJvbSBgc3RhdGljYCB0byBgY29uc3RgIGlmIFJ1c3QgY2hhbmdlcwor IC8vLyB0byBtYWtlIHRoZSByZWZlcmVudCBvZiBgcHViIGNvbnN0IEZPTzogJidzdGF0aWMgRW5j b2RpbmdgCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL2JpZzVfaW4udHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVz dF9kYXRhL2JpZzVfaW4udHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvYmlnNV9pbi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvc3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5 cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRv IHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2Rv bWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUg TElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8g bm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5j b2RpbmctZGF0YS5weQorIO+/vUAKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfaW5f cmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1 X2luX3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9iaWc1X2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL3Rlc3RfZGF0YS9iaWc1X2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29w eXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0 byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNk b21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2Vl IExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRv IG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVu Y29kaW5nLWRhdGEucHkKKyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9iaWc1X291 dC50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9v dXQudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEv YmlnNV9vdXQudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0 X2RhdGEvYmlnNV9vdXQudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0 aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVi bGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8v MS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdI QVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4K KyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRh LnB5Cisg44CACisg77yMCisg44CBCisg44CCCisg77yOCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfb3V0X3JlZi50eHQgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2JpZzVfb3V0 X3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9iaWc1X291dF9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0 aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVi bGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8v MS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdI QVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4K KyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRh LnB5Cisg77+9QAorIO+/vUEKKyDvv71CCisg77+9QworIO+/vUQKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2luLnR4dCBiL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX2lu LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1 Y19rcl9pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0 IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9t YWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisr R2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgor IAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3Rl YWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDv v71BCisg77+9QgorIO+/vUMKKyDvv71ECisg77+9RQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9p bl9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvZXVjX2tyX2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRv IHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1Q dWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVy by8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0Ut V0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0 LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRh dGEucHkKKyDqsIIKKyDqsIMKKyDqsIUKKyDqsIYKKyDqsIsKK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZXVjX2tyX291dC50eHQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0 LnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1 Y19rcl9vdXQudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVz dCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERv bWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLwor K0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4K KyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0 ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg 6rCCCisg6rCDCisg6rCFCisg6rCGCisg6rCLCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXRfcmVmLnR4dCBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0X3JlZi50eHQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9ldWNfa3Jfb3V0 X3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9ldWNfa3Jfb3V0X3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRv IHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1Q dWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVy by8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0Ut V0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0 LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRh dGEucHkKKyDvv71BCisg77+9QgorIO+/vUMKKyDvv71ECisg77+9RQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4dCBi L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luLnR4 dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgw MzBfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2Rh dGEvZ2IxODAzMF9pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRo ZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJs aWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8x LjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hB VFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0Lgor IEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEu cHkKKyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQg Yi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9y ZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEv Z2IxODAzMF9pbl9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNv cHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQg dG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGlj ZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNl ZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBk byBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1l bmNvZGluZy1kYXRhLnB5Cisg5LiCCisg5LiECisg5LiFCisg5LiGCisg5LiPCitAQCAtNzE4MCw0 MyArNzE3OSw0MyBAQCBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0Cisg z4EKKyDPgworIM+ECisgz4UKKyDPhgorIM+HCisgz4gKKyDPiQorLe6ejQorLe6ejgorLe6ejwor Le6ekAorLe6ekQorLe6ekgorLe6ekworK++4kAorK++4kgorK++4kQorK++4kworK++4lAorK++4 lQorK++4lgorIO+4tQorIO+4tgorIO+4uQorIO+4ugorIO+4vworIO+5gAorIO+4vQorIO+4vgor IO+5gQorIO+5ggorIO+5gworIO+5hAorLe6elAorLe6elQorK++4lworK++4mAorIO+4uworIO+4 vAorIO+4tworIO+4uAorIO+4sQorLe6elgorK++4mQorIO+4sworIO+4tAorIO6elworIO6emAor IO6emQorIO6emgorIO6emworIO6enAorQEAgLTIzNzczLDg3ICsyMzc3Miw4NyBAQCBJbnN0ZWFk LCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0Cisg7qCWCisg7qCXCisg7qCYCisg4rqE Cisg45GzCisg45GHCisg4rqICisg4rqLCist7qCeCisr6b60Cisg45aeCisg45iaCisg45iOCisg 4rqMCisg4rqXCisg46WuCisg46SYCist7qCmCisr6b61Cisg46ePCisg46efCisg46mzCisg46eQ Cist7qCrCist7qCsCisr6b62Cisr6b63Cisg462OCisg47GuCisg47OgCisg4rqnCisg7qCxCist 7qCyCisr6b64Cisg4rqqCisg5IGWCisg5IWfCisg4rquCisg5Iy3Cisg4rqzCisg4rq2Cisg4rq3 Cisg7qC7Cisg5I6xCisg5I6sCisg4rq7Cisg5I+dCisg5JOWCisg5JmhCisg5JmMCist7qGDCisr 6b65Cisg5JyjCisg5JypCisg5J28Cisg5J6NCisg4ruKCisg5KWHCisg5KW6Cisg5KW9Cisg5KaC Cisg5KaDCisg5KaFCisg5KaGCisg5KafCisg5KabCisg5Ka3Cisg5Ka2Cist7qGUCisr6b66Cisg 7qGVCisg5LKjCisg5LKfCisg5LKgCisg5LKhCisg5LG3Cisg5LKiCisg5LSTCisg5LSUCisg5LSV Cisg5LSWCisg5LSXCisg5LSYCisg5LSZCisg5LauCist7qGkCisr6b67Cisg7pGoCisg7pGpCisg 7pGqCisg7pGrCisg7pGsCisg7pGtCisg7pGuCisg7pGvCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgwMzBfb3V0LnR4dCBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dC50eHQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291 dC50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9n YjE4MDMwX291dC50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0 ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMg RG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAv CisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdH LgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkK KyDkuIIKKyDkuIQKKyDkuIUKKyDkuIYKKyDkuI8KK0BAIC03MTc5LDQzICs3MTc4LDQzIEBAIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXQKKyDPgQorIM+DCisgz4QKKyDP hQorIM+GCisgz4cKKyDPiAorIM+JCist7p6NCist7p6OCist7p6PCist7p6QCist7p6RCist7p6S Cist7p6TCisr77iQCisr77iSCisr77iRCisr77iTCisr77iUCisr77iVCisr77iWCisg77i1Cisg 77i2Cisg77i5Cisg77i6Cisg77i/Cisg77mACisg77i9Cisg77i+Cisg77mBCisg77mCCisg77mD Cisg77mECist7p6UCist7p6VCisr77iXCisr77iYCisg77i7Cisg77i8Cisg77i3Cisg77i4Cisg 77ixCist7p6WCisr77iZCisg77izCisg77i0Cisg7p6XCisg7p6YCisg7p6ZCisg7p6aCisg7p6b Cisg7p6cCitAQCAtMjM3NzIsODcgKzIzNzcxLDg3IEBAIEluc3RlYWQsIHBsZWFzZSByZWdlbmVy YXRlIHVzaW5nIGdlbmVyYXQKKyDuoJYKKyDuoJcKKyDuoJgKKyDiuoQKKyDjkbMKKyDjkYcKKyDi uogKKyDiuosKKy3uoJ4KKyvpvrQKKyDjlp4KKyDjmJoKKyDjmI4KKyDiuowKKyDiupcKKyDjpa4K KyDjpJgKKy3uoKYKKyvpvrUKKyDjp48KKyDjp58KKyDjqbMKKyDjp5AKKy3uoKsKKy3uoKwKKyvp vrYKKyvpvrcKKyDjrY4KKyDjsa4KKyDjs6AKKyDiuqcKKyDuoLEKKy3uoLIKKyvpvrgKKyDiuqoK KyDkgZYKKyDkhZ8KKyDiuq4KKyDkjLcKKyDiurMKKyDiurYKKyDiurcKKyDuoLsKKyDkjrEKKyDk jqwKKyDiursKKyDkj50KKyDkk5YKKyDkmaEKKyDkmYwKKy3uoYMKKyvpvrkKKyDknKMKKyDknKkK KyDknbwKKyDkno0KKyDiu4oKKyDkpYcKKyDkpboKKyDkpb0KKyDkpoIKKyDkpoMKKyDkpoUKKyDk poYKKyDkpp8KKyDkppsKKyDkprcKKyDkprYKKy3uoZQKKyvpvroKKyDuoZUKKyDksqMKKyDksp8K KyDksqAKKyDksqEKKyDksbcKKyDksqIKKyDktJMKKyDktJQKKyDktJUKKyDktJYKKyDktJcKKyDk tJgKKyDktJkKKyDktq4KKy3uoaQKKyvpvrsKKyDukagKKyDukakKKyDukaoKKyDukasKKyDukawK KyDuka0KKyDuka4KKyDuka8KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvZ2IxODAzMF9vdXRfcmVmLnR4 dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2diMTgw MzBfb3V0X3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0 ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMg RG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAv CisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdH LgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIElu c3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkK KyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbi50eHQgYi90 aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4u dHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNv XzIwMjJfanBfaW4udHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90 ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHly aWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8g dGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9t YWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBM SUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBu b3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNv ZGluZy1kYXRhLnB5CisgGyRCISEbKEIKKyAbJEIhIhsoQgorIBskQiEjGyhCCisgGyRCISQbKEIK KyAbJEIhJRsoQgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYudHh0IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9pbl9yZWYu dHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNv XzIwMjJfanBfaW5fcmVmLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8g dGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1 YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJv LzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1X SEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQu CisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0 YS5weQorIOOAgAorIOOAgQorIOOAggorIO+8jAorIO+8jgorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXQudHh0IGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291 dC50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9p c29fMjAyMl9qcF9vdXQudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0LnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBj b3B5cmlnaHQgdG8gdGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVk IHRvIHRoZQorLVB1YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1Ymxp Y2RvbWFpbi96ZXJvLzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBz ZWUgTElDRU5TRS1XSEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2Ug ZG8gbm90IGVkaXQuCisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUt ZW5jb2RpbmctZGF0YS5weQorIOOAgAorIOOAgQorIOOAggorIO+8jAorIO+8jgorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9q cF9vdXRfcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGlu Z19ycy9zcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dF9yZWYudHh0CisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50 eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVs b3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVk IGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMg aXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFz ZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyAbJEIhIRsoQgor IBskQiEiGyhCCisgGyRCISMbKEIKKyAbJEIhJBsoQgorIBskQiElGyhCCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0 IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4u dHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlz MDIwOF9pbi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X2luLnR4dAorQEAgLTEsMTAgKzEsOSBAQAorLUFueSBjb3B5cmlnaHQgdG8g dGhlIHRlc3QgY29kZSBiZWxvdyB0aGlzIGNvbW1lbnQgaXMgZGVkaWNhdGVkIHRvIHRoZQorLVB1 YmxpYyBEb21haW4uIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJv LzEuMC8KKytHZW5lcmF0ZWQgZnJvbSBXSEFUV0cgaW5kZXhlcy5qc29uOyBzZWUgTElDRU5TRS1X SEFUV0cuCisgCisgVGhpcyBpcyBhIGdlbmVyYXRlZCBmaWxlLiBQbGVhc2UgZG8gbm90IGVkaXQu CisgSW5zdGVhZCwgcGxlYXNlIHJlZ2VuZXJhdGUgdXNpbmcgZ2VuZXJhdGUtZW5jb2RpbmctZGF0 YS5weQorIO+/ve+/vQorIO+/ve+/vQorIO+/ve+/vQorIO+/ve+/vQorIO+/ve+/vQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4 X2luX3JlZi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEv amlzMDIwOF9pbl9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0CitAQCAtMSwxMCArMSw5 IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93IHRoaXMgY29tbWVudCBp cyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDovL2NyZWF0aXZlY29tbW9u cy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBmcm9tIFdIQVRXRyBpbmRl eGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlzIGEgZ2VuZXJhdGVkIGZp bGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2UgcmVnZW5lcmF0ZSB1c2lu ZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg44CACisg44CBCisg44CCCisg77yMCisg77yO CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRh L2ppczAyMDhfb3V0LnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X291dC50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjA4X291dC50eHQKK0BAIC0xLDEwICsxLDkgQEAK Ky1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRl ZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9y Zy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMu anNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4g UGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdl bmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDjgIEKKyDjgIIKKyDvvIwKKyDvvI4KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlz MDIwOF9vdXRfcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9qaXMwMjA4X291dF9yZWYudHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dAorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQKK0BAIC0x LDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBj b21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRp dmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hB VFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5l cmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVy YXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDvv73vv70KKyDvv73vv70KKyDv v73vv70KKyDvv73vv70KKyDvv73vv70KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQgYi90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvamlzMDIxMl9pbi50eHQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luLnR4dAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0 CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2RlIGJlbG93 IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4gaHR0cDov L2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVyYXRlZCBm cm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBUaGlzIGlz IGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBwbGVhc2Ug cmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg77+977+977+9Cisg 77+977+977+9Cisg77+977+977+9Cisg77+977+977+9Cisg77+977+977+9CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5f cmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMw MjEyX2luX3JlZi50eHQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rl c3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rp bmdfcnMvc3JjL3Rlc3RfZGF0YS9qaXMwMjEyX2luX3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAK Ky1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRl ZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9y Zy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMu anNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4g UGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdl bmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDvv70KKyDvv70KKyDvv70KKyDvv70KKyDvv70KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hp ZnRfamlzX2luLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9zaGlmdF9qaXNfaW4udHh0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQKK0BAIC0xLDEwICsxLDkgQEAK Ky1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRl ZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9y Zy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMu anNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4g UGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdl bmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9 RAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0 YS9zaGlmdF9qaXNfaW5fcmVmLnR4dCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3Jj L3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0CisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luX3JlZi50 eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJpZ2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVs b3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0aGUKKy1QdWJsaWMgRG9tYWluLiBodHRw Oi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvCisrR2VuZXJhdGVk IGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJQ0VOU0UtV0hBVFdHLgorIAorIFRoaXMg aXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5vdCBlZGl0LgorIEluc3RlYWQsIHBsZWFz ZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29kaW5nLWRhdGEucHkKKyDjgIAKKyDjgIEK KyDjgIIKKyDvvIwKKyDvvI4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50eHQgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50eHQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0LnR4dAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19v dXQudHh0CitAQCAtMSwxMCArMSw5IEBACistQW55IGNvcHlyaWdodCB0byB0aGUgdGVzdCBjb2Rl IGJlbG93IHRoaXMgY29tbWVudCBpcyBkZWRpY2F0ZWQgdG8gdGhlCistUHVibGljIERvbWFpbi4g aHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLworK0dlbmVy YXRlZCBmcm9tIFdIQVRXRyBpbmRleGVzLmpzb247IHNlZSBMSUNFTlNFLVdIQVRXRy4KKyAKKyBU aGlzIGlzIGEgZ2VuZXJhdGVkIGZpbGUuIFBsZWFzZSBkbyBub3QgZWRpdC4KKyBJbnN0ZWFkLCBw bGVhc2UgcmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5Cisg44CACisg 44CBCisg44CCCisg77yMCisg77yOCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19vdXRfcmVmLnR4dCBiL3RoaXJkX3BhcnR5 L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNf b3V0X3JlZi50eHQKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3Rlc3Rf ZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQKK0BAIC0xLDEwICsxLDkgQEAKKy1BbnkgY29weXJp Z2h0IHRvIHRoZSB0ZXN0IGNvZGUgYmVsb3cgdGhpcyBjb21tZW50IGlzIGRlZGljYXRlZCB0byB0 aGUKKy1QdWJsaWMgRG9tYWluLiBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21h aW4vemVyby8xLjAvCisrR2VuZXJhdGVkIGZyb20gV0hBVFdHIGluZGV4ZXMuanNvbjsgc2VlIExJ Q0VOU0UtV0hBVFdHLgorIAorIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZS4gUGxlYXNlIGRvIG5v dCBlZGl0LgorIEluc3RlYWQsIHBsZWFzZSByZWdlbmVyYXRlIHVzaW5nIGdlbmVyYXRlLWVuY29k aW5nLWRhdGEucHkKKyDvv71ACisg77+9QQorIO+/vUIKKyDvv71DCisg77+9RAoKZGlmZiAtLWdp dCBhL3NlYW1vbmtleS0yLjUzLjI0LW1vemlsbGEtMTg4MjIwOS5wYXRjaCBiL3NlYW1vbmtleS0y LjUzLjI0LW1vemlsbGEtMTg4MjIwOS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi45MGMxOTc4Ci0tLSAvZGV2L251bGwKKysrIGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96 aWxsYS0xODgyMjA5LnBhdGNoCkBAIC0wLDAgKzEsMjUzODQgQEAKKyMgSEcgY2hhbmdlc2V0IHBh dGNoCisjIFVzZXIgSGVucmkgU2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+CisjIERhdGUg MTcxNDQ2MjE4NCAwCisjIE5vZGUgSUQgMWRiMmVmMTI2YTZhODU1NWRiZjUwMzQ1ZTE2NDkyYzk3 N2I0MmU5MgorIyBQYXJlbnQgIDc4N2Q5Y2QwNjI0MTJhNDI2NDlhOGM2MTYxOWI5NWFiMjA0YWI1 NzEKK0J1ZyAxODgyMjA5IC0gVXBkYXRlIGVuY29kaW5nX3JzIHRvIDAuOC4zNCB0byBkZWFsIHdp dGggcnVzdGMgY2hhbmdlcy4gcj1nbGFuZGl1bSxzdXBwbHktY2hhaW4tcmV2aWV3ZXJzCisKK0Rp ZmZlcmVudGlhbCBSZXZpc2lvbjogaHR0cHM6Ly9waGFicmljYXRvci5zZXJ2aWNlcy5tb3ppbGxh LmNvbS9EMjA3MTY3CisKK2RpZmYgLS1naXQgYS8uY2FyZ28vY29uZmlnLmluIGIvLmNhcmdvL2Nv bmZpZy5pbgorLS0tIGEvLmNhcmdvL2NvbmZpZy5pbgorKysrIGIvLmNhcmdvL2NvbmZpZy5pbgor QEAgLTIsMTUgKzIsMTUgQEAKKyByZWdpc3RyeSA9ICdodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nL2NyYXRlcy5pby1pbmRleCcKKyByZXBsYWNlLXdpdGggPSAndmVuZG9yZWQtc291cmNlcycK KyAKKyBbc291cmNlLiJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vc2VyZGUiXQorIGdpdCA9ICJo dHRwczovL2dpdGh1Yi5jb20vc2Vydm8vc2VyZGUiCisgYnJhbmNoID0gImRlc2VyaWFsaXplX2Zy b21fZW51bXM4IgorIHJlcGxhY2Utd2l0aCA9ICJ2ZW5kb3JlZC1zb3VyY2VzIgorIAorLVtzb3Vy Y2UuImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCJdCistZ2l0ID0gImh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCIKKytbc291cmNlLiJnaXQraHR0 cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fyb3VuZD9yZXY9N2ZiMWI3MDM0 YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4YWY4MCJdCisrZ2l0ID0gImh0dHBzOi8vZ2l0aHVi LmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmthcm91bmQiCisrcmV2ID0gIjdmYjFiNzAzNGM5ZjE3 MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiCisgcmVwbGFjZS13aXRoID0gInZlbmRvcmVkLXNv dXJjZXMiCistcmV2ID0gImU1ODhjZWI1Njg4NzhlMWEzMTU2ZWE5Y2U1NTFkNWI2M2VmMGNkYzQi CisgCisgW3NvdXJjZS52ZW5kb3JlZC1zb3VyY2VzXQorIGRpcmVjdG9yeSA9ICdAdG9wX3NyY2Rp ckAvdGhpcmRfcGFydHkvcnVzdCcKK2RpZmYgLS1naXQgYS9DYXJnby5sb2NrIGIvQ2FyZ28ubG9j aworLS0tIGEvQ2FyZ28ubG9jaworKysrIGIvQ2FyZ28ubG9jaworQEAgLTE2LDE2ICsxNiwyNSBA QCBuYW1lID0gImFuc2lfdGVybSIKKyB2ZXJzaW9uID0gIjAuMTEuMCIKKyBzb3VyY2UgPSAicmVn aXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hl Y2tzdW0gPSAiZWU0OWJhZjZjYjYxN2I4NTNhYThkOTNiZjQyMGRiMjM4M2ZhYjQ2ZDMxNDQ4MmNh MjgwM2I0MGQ1ZmRlOTc5YiIKKyBkZXBlbmRlbmNpZXMgPSBbCisgICJ3aW5hcGkgMC4zLjciLAor IF0KKyAKKyBbW3BhY2thZ2VdXQorK25hbWUgPSAiYW55X2FsbF93b3JrYXJvdW5kIgorK3ZlcnNp b24gPSAiMC4xLjAiCisrc291cmNlID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vaHNpdm9uZW4v YW55X2FsbF93b3JrYXJvdW5kP3Jldj03ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhh NDhhZjgwIzdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAiCisrZGVwZW5k ZW5jaWVzID0gWworKyAiY2ZnLWlmIDEuMC4wIiwKKysgInZlcnNpb25fY2hlY2siLAorK10KKysK KytbW3BhY2thZ2VdXQorIG5hbWUgPSAiYXBwX3VuaXRzIgorIHZlcnNpb24gPSAiMC43LjAiCisg c291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlv LWluZGV4IgorIGNoZWNrc3VtID0gIjlkYWRjNjY4MzkwYjM3M2U3M2U0YWJiZmMxZjA3MjM4YjA5 YTI1ODU4ZjJmMzljMDZjZWJjNmQ4ZTE0MWQ3NzQiCisgZGVwZW5kZW5jaWVzID0gWworICAibnVt LXRyYWl0cyIsCisgICJzZXJkZSIsCisgXQorQEAgLTYwNSwyMiArNjE0LDIyIEBAIHZlcnNpb24g PSAiMC4xLjAiCisgZGVwZW5kZW5jaWVzID0gWworICAiZW5jb2RpbmdfcnMiLAorICAibnNlcnJv ciIsCisgICJuc3N0cmluZyIsCisgXQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJlbmNvZGlu Z19ycyIKKy12ZXJzaW9uID0gIjAuOC4zMyIKKyt2ZXJzaW9uID0gIjAuOC4zNCIKKyBzb3VyY2Ug PSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgi CistY2hlY2tzdW0gPSAiNzI2OGIzODYyOTZhMDI1ZTQ3NGQ1MTQwNjc4Zjc1ZDZkZTk0OTNhZTU1 YTVkNzA5ZWViOWRkMDgxNDk5NDVlMSIKKytjaGVja3N1bSA9ICJiNDVkZTkwNGFhMGIwMTBiY2Uy YWI0NTI2NGQwNjMxNjgxODQ3ZmE3YjZmMmVhYTdkYWI3NjE5OTQzYmM0ZjU5IgorIGRlcGVuZGVu Y2llcyA9IFsKKysgImFueV9hbGxfd29ya2Fyb3VuZCIsCisgICJjZmctaWYgMS4wLjAiLAorLSAi cGFja2VkX3NpbWQiLAorIF0KKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUgPSAiZW52X2xvZ2dlciIK KyB2ZXJzaW9uID0gIjAuNS4xMyIKKyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0gPSAiMTViMGE0ZDJlMzlm ODQyMDIxMGJlOGIyN2VlZGEyODAyOTcyOWUyZmQ0MjkxMDE5NDU1MDE2YzM0ODI0MGMzOCIKKyBk ZXBlbmRlbmNpZXMgPSBbCitAQCAtMTMyNCwyNSArMTMzMywxNiBAQCBuYW1lID0gIm93bmluZ19y ZWYiCisgdmVyc2lvbiA9ICIwLjQuMCIKKyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0gPSAiNDlhNGI4ZWEy MTc5ZTZhMmUyNzQxMWQzYmNhMDljYTZkZDYzMDgyMWNmNjg5NGM2YzdjODQ2N2E4ZWU3ZWYxMyIK KyBkZXBlbmRlbmNpZXMgPSBbCisgICJzdGFibGVfZGVyZWZfdHJhaXQiLAorIF0KKyAKKyBbW3Bh Y2thZ2VdXQorLW5hbWUgPSAicGFja2VkX3NpbWQiCistdmVyc2lvbiA9ICIwLjMuOSIKKy1zb3Vy Y2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZD9yZXY9ZTU4 OGNlYjU2ODg3OGUxYTMxNTZlYTljZTU1MWQ1YjYzZWYwY2RjNCNlNTg4Y2ViNTY4ODc4ZTFhMzE1 NmVhOWNlNTUxZDViNjNlZjBjZGM0IgorLWRlcGVuZGVuY2llcyA9IFsKKy0gImNmZy1pZiAxLjAu MCIsCistICJudW0tdHJhaXRzIiwKKy1dCistCistW1twYWNrYWdlXV0KKyBuYW1lID0gInBhcmtp bmdfbG90IgorIHZlcnNpb24gPSAiMC44LjAiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gImZhNzc2 NzgxNzcwMWNjZTcwMWQ1NTg1YjljNGRiM2NkZDAyMDg2Mzk4MzIyYzFkN2U4YmY1MDk0YTk2YTJj ZTciCisgZGVwZW5kZW5jaWVzID0gWworICAibG9ja19hcGkiLAorICAicGFya2luZ19sb3RfY29y ZSIsCisgICJydXN0Y192ZXJzaW9uIiwKK0BAIC0yMzY2LDE2ICsyMzY2LDIyIEBAIGNoZWNrc3Vt ID0gIjAyNWNlNDBhMDA3ZTE5MDdlNThkNWJjMWE1OTQKKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUg PSAidmVjX21hcCIKKyB2ZXJzaW9uID0gIjAuOC4wIgorIHNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKyBjaGVja3N1bSA9ICI4 ODdiNWI2MzFjMmFkMDE2MjhiYmJhYTdkZDRjODY5ZjgwZDMxODY2ODhmOGQwYjZmNTg3NzRmYmUz MjQ5ODhjIgorIAorIFtbcGFja2FnZV1dCisrbmFtZSA9ICJ2ZXJzaW9uX2NoZWNrIgorK3ZlcnNp b24gPSAiMC45LjQiCisrc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorK2NoZWNrc3VtID0gIjQ5ODc0YjUxNjdiNjVkNzE5M2I4 YWJhMTU2N2Y1YzdkOTNkMDAxY2FmYzM0NjAwY2VlMDAzZWRhNzg3ZTQ4M2YiCisrCisrW1twYWNr YWdlXV0KKyBuYW1lID0gInZvaWQiCisgdmVyc2lvbiA9ICIxLjAuMiIKKyBzb3VyY2UgPSAicmVn aXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCisgY2hl Y2tzdW0gPSAiNmEwMmU0ODg1ZWQzYmMwZjJkZTkwZWE2ZGQ0NWViY2JiNjZkYWNmZmUwMzU0N2Zh ZGJiMGVlYWUyNzcwODg3ZCIKKyAKKyBbW3BhY2thZ2VdXQorIG5hbWUgPSAid2Fsa2RpciIKKyB2 ZXJzaW9uID0gIjIuMS40IgorZGlmZiAtLWdpdCBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCist LS0gYS9DYXJnby50b21sCisrKysgYi9DYXJnby50b21sCitAQCAtNDgsOSArNDgsOSBAQCBvcHQt bGV2ZWwgPSAyCisgcnBhdGggPSBmYWxzZQorIGRlYnVnLWFzc2VydGlvbnMgPSBmYWxzZQorIHBh bmljID0gImFib3J0IgorIGNvZGVnZW4tdW5pdHMgPSAxCisgCisgW3BhdGNoLmNyYXRlcy1pb10K KyBsaWJ1ZGV2LXN5cyA9IHsgcGF0aCA9ICJkb20vd2ViYXV0aG4vbGlidWRldi1zeXMiIH0KKyBz ZXJkZV9kZXJpdmUgPSB7IGdpdCA9ICJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vc2VyZGUiLCBi cmFuY2ggPSAiZGVzZXJpYWxpemVfZnJvbV9lbnVtczgiIH0KKy1wYWNrZWRfc2ltZCA9IHsgZ2l0 ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9wYWNrZWRfc2ltZCIsIHJldiA9ICJlNTg4 Y2ViNTY4ODc4ZTFhMzE1NmVhOWNlNTUxZDViNjNlZjBjZGM0IiB9CisrYW55X2FsbF93b3JrYXJv dW5kID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2FueV9hbGxfd29ya2Fy b3VuZCIsIHJldiA9ICI3ZmIxYjcwMzRjOWYxNzJhYWRlMjFlZTFjODU1NGU4ZDhhNDhhZjgwIiB9 CitkaWZmIC0tZ2l0IGEvY29uZmlnL21ha2VmaWxlcy9ydXN0Lm1rIGIvY29uZmlnL21ha2VmaWxl cy9ydXN0Lm1rCistLS0gYS9jb25maWcvbWFrZWZpbGVzL3J1c3QubWsKKysrKyBiL2NvbmZpZy9t YWtlZmlsZXMvcnVzdC5taworQEAgLTYxLDE3ICs2MSwxNyBAQCBlbmRpZgorIGVuZGlmCisgZW5k aWYKKyAKKyBpZm5kZWYgUlVTVENfQk9PVFNUUkFQCisgaWZlcSAoLCQoZmlsdGVyIDEuNDcuJSAx LjQ4LiUgMS40OS4lLCQoUlVTVENfVkVSU0lPTikpKQorICMgUlVTVENfQk9PVFNUUkFQIDo9IGdr cnVzdF9zaGFyZWQscWNtcyBmb3IgbGF0ZXIKKyBSVVNUQ19CT09UU1RSQVAgOj0gZ2tydXN0X3No YXJlZAorIGlmZGVmIE1PWl9SVVNUX1NJTUQKKy1SVVNUQ19CT09UU1RSQVAgOj0gJChSVVNUQ19C T09UU1RSQVApLGVuY29kaW5nX3JzLHBhY2tlZF9zaW1kCisrUlVTVENfQk9PVFNUUkFQIDo9ICQo UlVTVENfQk9PVFNUUkFQKSxlbmNvZGluZ19ycyxhbnlfYWxsX3dvcmthcm91bmQKKyBlbmRpZgor IGV4cG9ydCBSVVNUQ19CT09UU1RSQVAKKyBlbmRpZgorIGVuZGlmCisgCisgaWZkZWYgQ0FSR09f SU5DUkVNRU5UQUwKKyBleHBvcnQgQ0FSR09fSU5DUkVNRU5UQUwKKyBlbmRpZgorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kLy5jYXJnby1jaGVja3N1bS5q c29uIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvLmNhcmdvLWNoZWNrc3Vt Lmpzb24KK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC8uY2FyZ28tY2hlY2tzdW0uanNvbgorQEAgLTAs MCArMSwxIEBACisreyJmaWxlcyI6eyJDYXJnby50b21sIjoiZjhjMTI3NDQ5ZGM5NDMyZDQwNGMy MWM5OTgzM2U0NjE3YWI4OGE3OTc0NDVhZjI0OWE3ZmUzYzk4OTk4NWQ2ZCIsIkxJQ0VOU0UtQVBB Q0hFIjoiYTYwZWVhODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlmZTE0ZDA1OWQzMjQ5ZTBiYzkz YjM2ZGU0NWY3NTlmMiIsIkxJQ0VOU0UtTUlUIjoiNjQ4NWI4ZWQzMTBkM2YwMzQwYmYxYWQxZjQ3 NjQ1MDY5Y2U0MDY5ZGNjNmJiNDZjN2Q1YzZmYWY0MWRlMWZkYiIsIkxJQ0VOU0UtTUlULVFDTVMi OiIzNmQ4NDdhZTg4MmY2NTc0ZWJjNzJmNTZhNGYzNTRlNGYxMDRmZGU0YTU4NDM3MzQ5NjQ4MmU5 N2Q1MmQzMWJjIiwiUkVBRE1FLm1kIjoiNGM2MTdiOGNlZDNhMjdiN2VkZWNmMGU1ZTQxZWQ0NTFj MDRlODhkYWI1MjllN2EzNWZjY2M0ZTE1NTFlZmJkNyIsImJ1aWxkLnJzIjoiNTZiMjlhYjZkYTNl NDkwNzViZmQwYTdiNjkwMjY3YzgwMTYyOThiZjBkMzMyZTJlNjhiYmFmMTlkZWNiYmY3MSIsInNy Yy9saWIucnMiOiI3MTE4MTA2NjkwYjlkMjVjNWQwYTNlMjA3OWZlYjgzZDc2ZjFkNDM0ZDBkYTM2 YjlkMDM1MTgwNmQyN2M4NTBkIn0sInBhY2thZ2UiOm51bGx9CitcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3Vu ZC9DYXJnby50b21sIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvQ2FyZ28u dG9tbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0NhcmdvLnRvbWwKK0BAIC0wLDAgKzEsMjggQEAK KysjIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTworKyMKKysj IFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBhdXRvbWF0 aWNhbGx5CisrIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFsIGNvbXBh dGliaWxpdHkKKysjIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJld3JpdGUg YHBhdGhgIGRlcGVuZGVuY2llcworKyMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5pbykgZGVw ZW5kZW5jaWVzLgorKyMKKysjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUgYXdhcmUg dGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAorKyMgd2lsbCBsaWtlbHkgbG9vayB2ZXJ5IGRp ZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKysjIFNlZSBDYXJnby50b21sLm9y aWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KKysKKytbcGFja2FnZV0KKytlZGl0aW9uID0g IjIwMjEiCisrbmFtZSA9ICJhbnlfYWxsX3dvcmthcm91bmQiCisrdmVyc2lvbiA9ICIwLjEuMCIK KythdXRob3JzID0gWyJIZW5yaSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4iXQorK2Rl c2NyaXB0aW9uID0gIldvcmthcm91bmQgZm9yIGJhZCBMTFZNIGNvZGVnZW4gZm9yIGJvb2xlYW4g cmVkdWN0aW9ucyBvbiAzMi1iaXQgQVJNIgorK2hvbWVwYWdlID0gImh0dHBzOi8vZG9jcy5ycy9h bnlfYWxsX3dvcmthcm91bmQvIgorK2RvY3VtZW50YXRpb24gPSAiaHR0cHM6Ly9kb2NzLnJzL2Fu eV9hbGxfd29ya2Fyb3VuZC8iCisrcmVhZG1lID0gIlJFQURNRS5tZCIKKytsaWNlbnNlID0gIk1J VCBPUiBBcGFjaGUtMi4wIgorK3JlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZv bmVuL2FueV9hbGxfd29ya2Fyb3VuZCIKKysKKytbZGVwZW5kZW5jaWVzXQorK2NmZy1pZiA9ICIx LjAiCisrCisrW2J1aWxkLWRlcGVuZGVuY2llc10KKyt2ZXJzaW9uX2NoZWNrID0gIjAuOSIKK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLUFQ QUNIRSBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtQVBBQ0hF CituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1BUEFDSEUKK0BAIC0wLDAgKzEsMjAxIEBA CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKysgICAgICAg ICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisrICAgICAgICAgICAg ICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworKworK1RFUk1TIEFORCBD T05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorKworKzEu IERlZmluaXRpb25zLgorKworKyAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisrICAgYW5kIGRpc3RyaWJ1dGlvbiBh cyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisrCisr ICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1 dGhvcml6ZWQgYnkKKysgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhl IExpY2Vuc2UuCisrCisrICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2Yg dGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorKyAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJv bCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKysgICBjb250cm9sIHdp dGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorKyAg ICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNh dXNlIHRoZQorKyAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0 aGVyIGJ5IGNvbnRyYWN0IG9yCisrICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBm aWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisrICAgb3V0c3RhbmRpbmcgc2hhcmVz LCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKysKKysgICAi WW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5 CisrICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKysK KysgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtp bmcgbW9kaWZpY2F0aW9ucywKKysgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3 YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisrICAgc291cmNlLCBhbmQgY29uZmlndXJh dGlvbiBmaWxlcy4KKysKKysgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVz dWx0aW5nIGZyb20gbWVjaGFuaWNhbAorKyAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9u IG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKysgICBub3QgbGltaXRlZCB0byBjb21w aWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisrICAgYW5kIGNvbnZl cnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorKworKyAgICJXb3JrIiBzaGFsbCBtZWFuIHRo ZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisrICAgT2JqZWN0IGZv cm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQor KyAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0 aGUgd29yaworKyAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxv dykuCisrCisrICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRo ZXIgaW4gU291cmNlIG9yIE9iamVjdAorKyAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRl cml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKysgICBlZGl0b3JpYWwgcmV2 aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25z CisrICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNo aXAuIEZvciB0aGUgcHVycG9zZXMKKysgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29y a3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKysgICBzZXBhcmFibGUgZnJv bSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2Ys CisrICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKysKKysgICAiQ29u dHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZwor KyAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9u cyBvciBhZGRpdGlvbnMKKysgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVy ZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKysgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9y IGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisrICAgb3IgYnkg YW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVo YWxmIG9mCisrICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlz IGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisrICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25p YywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorKyAgIHRvIHRoZSBMaWNl bnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRv CisrICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBj b2RlIGNvbnRyb2wgc3lzdGVtcywKKysgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0 IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorKyAgIExpY2Vuc29yIGZvciB0 aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorKyAg IGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Ig b3RoZXJ3aXNlCisrICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3du ZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisrCisrICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBt ZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKysgICBvbiBi ZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNv ciBhbmQKKysgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKysK KysyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5 IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisrICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZl LCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKysgICBjb3B5cmlnaHQgbGlj ZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKysgICBwdWJs aWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0 ZSB0aGUKKysgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9i amVjdCBmb3JtLgorKworKzMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmli dXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKysgICB3b3JsZHdpZGUsIG5v bi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorKyAgIChl eGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwg aGF2ZSBtYWRlLAorKyAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3Ro ZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorKyAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVz IG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisrICAgYnkgc3VjaCBDb250 cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKysgICBDb250 cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9u KHMpCisrICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMg c3VibWl0dGVkLiBJZiBZb3UKKysgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5z dCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorKyAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFp bSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKysgICBvciBhIENvbnRyaWJ1 dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorKyAg IG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGlj ZW5zZXMKKysgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29y ayBzaGFsbCB0ZXJtaW5hdGUKKysgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMg ZmlsZWQuCisrCisrNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0 cmlidXRlIGNvcGllcyBvZiB0aGUKKysgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVv ZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKysgICBtb2RpZmljYXRpb25zLCBhbmQg aW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorKyAgIG1lZXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgorKworKyAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhl ciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisrICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBj b3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisrCisrICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBt b2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworKyAgICAgICBzdGF0aW5n IHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKysKKysgICAoYykgWW91IG11c3QgcmV0 YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKysgICAgICAg dGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFu ZAorKyAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRo ZSBXb3JrLAorKyAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0 YWluIHRvIGFueSBwYXJ0IG9mCisrICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKysK KysgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFy dCBvZiBpdHMKKysgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtz IHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorKyAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29w eSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKysgICAgICAgd2l0aGluIHN1 Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisrICAg ICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxl YXN0IG9uZQorKyAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNF IHRleHQgZmlsZSBkaXN0cmlidXRlZAorKyAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZl IFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisrICAgICAgIGRvY3VtZW50YXRpb24s IGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorKyAgICAg ICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYg YW5kCisrICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBh cHBlYXIuIFRoZSBjb250ZW50cworKyAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBp bmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisrICAgICAgIGRvIG5vdCBtb2RpZnkgdGhl IExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisrICAgICAgIG5vdGlj ZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRl CisrICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBX b3JrLCBwcm92aWRlZAorKyAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBu b3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKysgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNl bnNlLgorKworKyAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8g WW91ciBtb2RpZmljYXRpb25zIGFuZAorKyAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlm ZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKysgICBmb3IgdXNlLCByZXByb2R1 Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisrICAgZm9y IGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2Us CisrICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lz ZSBjb21wbGllcyB3aXRoCisrICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5z ZS4KKysKKys1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGlj aXRseSBzdGF0ZSBvdGhlcndpc2UsCisrICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5 IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisrICAgYnkgWW91IHRvIHRoZSBM aWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0 aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4K KysgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBl cnNlZGUgb3IgbW9kaWZ5CisrICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFn cmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKysgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGlu ZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisrCisrNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRv ZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorKyAgIG5hbWVzLCB0cmFk ZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwK KysgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2Ug aW4gZGVzY3JpYmluZyB0aGUKKysgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5n IHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKysKKys3LiBEaXNjbGFpbWVyIG9mIFdh cnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKysgICBhZ3JlZWQg dG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisrICAg Q29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFT SVMsCisrICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVp dGhlciBleHByZXNzIG9yCisrICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRp b24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKysgICBvZiBUSVRMRSwgTk9OLUlORlJJ TkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisrICAgUEFSVElDVUxB UiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhl CisrICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3Jr IGFuZCBhc3N1bWUgYW55CisrICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ug b2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorKworKzguIExpbWl0YXRpb24gb2Yg TGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorKyAgIHdo ZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3 aXNlLAorKyAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxp YmVyYXRlIGFuZCBncm9zc2x5CisrICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3 cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKysgICBsaWFibGUgdG8gWW91IGZvciBk YW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisrICAgaW5j aWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2lu ZyBhcyBhCisrICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBp bmFiaWxpdHkgdG8gdXNlIHRoZQorKyAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQg dG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKysgICB3b3JrIHN0b3BwYWdlLCBjb21w dXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorKyAgIG90aGVyIGNv bW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKysg ICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisr CisrOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSBy ZWRpc3RyaWJ1dGluZworKyAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwg WW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisrICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2Vw dGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKysgICBvciBvdGhlciBsaWFi aWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworKyAg IExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5 IGFjdCBvbmx5CisrICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9u c2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKysgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFu ZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisrICAgZGVmZW5kLCBhbmQgaG9sZCBl YWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisrICAgaW5jdXJyZWQg YnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNv bgorKyAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwg bGlhYmlsaXR5LgorKworK0VORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworKworK0FQUEVORElY OiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKysKKysgICBU byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLCBhdHRhY2ggdGhlIGZvbGxv d2luZworKyAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5 IGJyYWNrZXRzICJbXSIKKysgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGlu Zm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorKyAgIHRoZSBicmFja2V0cyEpICBUaGUgdGV4dCBz aG91bGQgYmUgZW5jbG9zZWQgaW4gdGhlIGFwcHJvcHJpYXRlCisrICAgY29tbWVudCBzeW50YXgg Zm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisrICAgZmlsZSBv ciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRo ZQorKyAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVh c2llcgorKyAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKysK KytDb3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKysKKytMaWNlbnNl ZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsK Kyt5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhl IExpY2Vuc2UuCisrWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisrCisr CWh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKworK1VubGVzcyBy ZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdh cmUKKytkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAi QVMgSVMiIEJBU0lTLAorK1dJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBL SU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorK1NlZSB0aGUgTGljZW5zZSBmb3IgdGhl IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKytsaW1pdGF0aW9u cyB1bmRlciB0aGUgTGljZW5zZS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2FueV9h bGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVCBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3Jr YXJvdW5kL0xJQ0VOU0UtTUlUCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQKK0BA IC0wLDAgKzEsMjUgQEAKKytDb3B5cmlnaHQgKGMpIDIwMTQgVGhlIFJ1c3QgUHJvamVjdCBEZXZl bG9wZXJzCisrCisrUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2Us IHRvIGFueQorK3BlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQKKytkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwg aW4gdGhlCisrU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQK KytsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLAorK3B1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZgorK3Ro ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlCisr aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKKytjb25kaXRp b25zOgorKworK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlCisrc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucworK29mIHRoZSBTb2Z0d2FyZS4KKysKKytUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRgorK0FOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJ RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKKytUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEKKytQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQKKytTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWQorK0NMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKytPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SCisrSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisrREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL0xJQ0VOU0UtTUlU LVFDTVMgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9MSUNFTlNFLU1JVC1R Q01TCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFy dHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvTElDRU5TRS1NSVQtUUNNUworQEAgLTAsMCArMSwy MSBAQAorK3FjbXMKKytDb3B5cmlnaHQgKEMpIDIwMDktMjAyNCBNb3ppbGxhIENvcnBvcmF0aW9u CisrQ29weXJpZ2h0IChDKSAxOTk4LTIwMDcgTWFydGkgTWFyaWEKKysKKytQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg CisrYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLCAKKyt0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIAorK3RoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLCAKKythbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgCisraXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysKKytUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBp biAKKythbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K KysKKytUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgCisrRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIAorK1RIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIAorK05PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQg U0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgCisrTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiAKKytPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gCisrV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9hbnlfYWxsX3dvcmthcm91bmQvUkVBRE1FLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxs X3dvcmthcm91bmQvUkVBRE1FLm1kCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVs bAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvUkVBRE1FLm1kCitA QCAtMCwwICsxLDEzIEBACisrIyBhbnlfYWxsX3dvcmthcm91bmQKKysKKytUaGlzIGlzIGEgd29y a2Fyb3VuZCBmb3IgYmFkIGNvZGVnZW4gKFtSdXN0IGJ1Z10oaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9wb3J0YWJsZS1zaW1kL2lzc3Vlcy8xNDYpLCBbTExWTSBidWddKGh0dHBzOi8vZ2l0 aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9pc3N1ZXMvNTA0NjYpKSBmb3IgdGhlIGBhbnkoKWAg YW5kIGBhbGwoKWAgcmVkdWN0aW9ucyBmb3IgTkVPTi1iYWNrZWQgU0lNRCB2ZWN0b3JzIG9uIDMy LWJpdCBBUk0uIE9uIG90aGVyIHBsYXRmb3JtcyB0aGVzZSBkZWxlZ2F0ZSB0byBgYW55KClgIGFu ZCBgYWxsKClgIGluIGBjb3JlOjpzaW1kYC4KKysKKytUaGUgcGxhbiBpcyB0byBhYmFuZG9uIHRo aXMgY3JhdGUgb25jZSB0aGUgTExWTSBidWcgaXMgZml4ZWQgb3IgYGNvcmU6OnNpbWRgIHdvcmtz IGFyb3VuZCB0aGUgTExWTSBidWcuCisrCisrVGhlIGNvZGUgaXMgZm9ya2VkIGZyb20gdGhlIFtg cGFja2VkX3NpbWRgIGNyYXRlXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vaHNp dm9uZW4vcGFja2VkX3NpbWQvZDkzOGUzOWJlZTliYzVjMjIyZjVmMmYyYTBkZjllNTNiNWNlMzZh ZS9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svYXJtLnJzKS4KKysKKytUaGlzIGNyYXRlIHJl cXVpcmVzIE5pZ2h0bHkgUnVzdCBhcyBpdCBkZXBlbmRzIG9uIHRoZSBgcG9ydGFibGVfc2ltZGAg ZmVhdHVyZS4KKysKKysjIExpY2Vuc2UKKysKKytgTUlUIE9SIEFwYWNoZS0yLjBgLCBzaW5jZSB0 aGF0J3MgaG93IGBwYWNrZWRfc2ltZGAgaXMgbGljZW5zZWQuIChUaGUgQVJNIGludHJpbnNpY3Mg UnVzdCB2ZXJzaW9uIHdvcmthcm91bmQgaXMgZnJvbSBxY21zLCBzZWUgTElDRU5TRS1NSVQtUUNN Uy4pCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvYnVp bGQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2FueV9hbGxfd29ya2Fyb3VuZC9idWlsZC5ycworbmV3 IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3Qv YW55X2FsbF93b3JrYXJvdW5kL2J1aWxkLnJzCitAQCAtMCwwICsxLDcgQEAKKytleHRlcm4gY3Jh dGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysKKytmbiBtYWluKCkgeworKyAgICBpZiBydXN0 Yzo6aXNfbWluX3ZlcnNpb24oIjEuNzguMCIpLnVud3JhcF9vcihmYWxzZSkgeworKyAgICAgICAg cHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1zdGRzaW1kX3NwbGl0Iik7CisrICAgIH0KKyt9Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9hbnlfYWxsX3dvcmthcm91bmQvc3JjL2xpYi5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvYW55X2FsbF93b3JrYXJvdW5kL3NyYy9saWIucnMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2Fu eV9hbGxfd29ya2Fyb3VuZC9zcmMvbGliLnJzCitAQCAtMCwwICsxLDExMCBAQAorKy8vIFRoaXMg Y29kZSBiZWdhbiBhcyBhIGZvcmsgb2YKKysvLyBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu dC5jb20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kL2Q5MzhlMzliZWU5YmM1YzIyMmY1ZjJmMmEwZGY5 ZTUzYjVjZTM2YWUvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2FybS5ycworKy8vIHdoaWNo IGRpZG4ndCBoYXZlIGEgbGljZW5zZSBoZWFkZXIgb24gdGhlIGZpbGUsIGJ1dCBDYXJnby50b21s IHNhaWQgIk1JVCBPUiBBcGFjaGUtMi4wIi4KKysvLyBTZWUgTElDRU5TRS1NSVQgYW5kIExJQ0VO U0UtQVBBQ0hFLgorKworKyMhW25vX3N0ZF0KKysjIVtmZWF0dXJlKHBvcnRhYmxlX3NpbWQpXQor KyMhW2NmZ19hdHRyKAorKyAgICBhbGwoCisrICAgICAgICBzdGRzaW1kX3NwbGl0LAorKyAgICAg ICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwKKysgICAgICAgIHRhcmdldF9lbmRpYW4gPSAibGl0dGxl IiwKKysgICAgICAgIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLAorKyAgICAgICAgdGFyZ2V0X2Zl YXR1cmUgPSAidjciCisrICAgICksCisrICAgIGZlYXR1cmUoc3RkYXJjaF9hcm1fbmVvbl9pbnRy aW5zaWNzKQorKyldCisrIyFbY2ZnX2F0dHIoCisrICAgIGFsbCgKKysgICAgICAgIG5vdChzdGRz aW1kX3NwbGl0KSwKKysgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCisrICAgICAgICB0YXJn ZXRfZW5kaWFuID0gImxpdHRsZSIsCisrICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwK KysgICAgICAgIHRhcmdldF9mZWF0dXJlID0gInY3IgorKyAgICApLAorKyAgICBmZWF0dXJlKHN0 ZHNpbWQpCisrKV0KKysKKyt1c2UgY2ZnX2lmOjpjZmdfaWY7CisrdXNlIGNvcmU6OnNpbWQ6Om1h c2sxNng4OworK3VzZSBjb3JlOjpzaW1kOjptYXNrMzJ4NDsKKyt1c2UgY29yZTo6c2ltZDo6bWFz azh4MTY7CisrCisrY2ZnX2lmISB7CisrICAgIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJh cm0iLCB0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iLCB0 YXJnZXRfZmVhdHVyZSA9ICJ2NyIpKV0geworKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6Om1hc2s4 eDg7CisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6bWFzazE2eDQ7CisrICAgICAgICB1c2UgY29y ZTo6c2ltZDo6bWFzazMyeDI7CisrICAgICAgICBtYWNyb19ydWxlcyEgYXJtXzEyOF92N19uZW9u X2ltcGwgeworKyAgICAgICAgICAgICgkYWxsOmlkZW50LCAkYW55OmlkZW50LCAkaWQ6aWRlbnQs ICRoYWxmOmlkZW50LCAkdnBtaW46aWRlbnQsICR2cG1heDppZGVudCkgPT4geworKyAgICAgICAg ICAgICAgICAjW2lubGluZV0KKysgICAgICAgICAgICAgICAgcHViIGZuICRhbGwoczogJGlkKSAt PiBib29sIHsKKysgICAgICAgICAgICAgICAgICAgIHVzZSBjb3JlOjphcmNoOjphcm06OiR2cG1p bjsKKysgICAgICAgICAgICAgICAgICAgIHVzZSBjb3JlOjptZW06OnRyYW5zbXV0ZTsKKysgICAg ICAgICAgICAgICAgICAgIHVuc2FmZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgdW5pb24g VSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCRoYWxmLCAkaGFsZiks CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorKyAgICAgICAgICAgICAg ICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZl YzogcyB9LmhhbHZlczsKKysgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0 cmFuc211dGUoJHZwbWluKHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkp KTsKKysgICAgICAgICAgICAgICAgICAgICAgICBoLmFsbCgpCisrICAgICAgICAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgI1tpbmxpbmVdCisrICAg ICAgICAgICAgICAgIHB1YiBmbiAkYW55KHM6ICRpZCkgLT4gYm9vbCB7CisrICAgICAgICAgICAg ICAgICAgICB1c2UgY29yZTo6YXJjaDo6YXJtOjokdnBtYXg7CisrICAgICAgICAgICAgICAgICAg ICB1c2UgY29yZTo6bWVtOjp0cmFuc211dGU7CisrICAgICAgICAgICAgICAgICAgICB1bnNhZmUg eworKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBoYWx2ZXM6ICgkaGFsZiwgJGhhbGYpLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2ZWM6ICRpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHMgfS5oYWx2ZXM7CisrICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGg6ICRoYWxmID0gdHJhbnNtdXRlKCR2cG1heCh0cmFuc211 dGUoaGFsdmVzLjApLCB0cmFuc211dGUoaGFsdmVzLjEpKSk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgaC5hbnkoKQorKyAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICB9 CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9IGVsc2UgeworKyAgICAgICAgbWFj cm9fcnVsZXMhIGFybV8xMjhfdjdfbmVvbl9pbXBsIHsKKysgICAgICAgICAgICAoJGFsbDppZGVu dCwgJGFueTppZGVudCwgJGlkOmlkZW50LCAkaGFsZjppZGVudCwgJHZwbWluOmlkZW50LCAkdnBt YXg6aWRlbnQpID0+IHsKKysgICAgICAgICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKysgICAg ICAgICAgICAgICAgcHViIGZuICRhbGwoczogJGlkKSAtPiBib29sIHsKKysgICAgICAgICAgICAg ICAgICAgIHMuYWxsKCkKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorKyAgICAgICAgICAgICAgICBwdWIgZm4gJGFueShzOiAkaWQpIC0+IGJv b2wgeworKyAgICAgICAgICAgICAgICAgICAgcy5hbnkoKQorKyAgICAgICAgICAgICAgICB9Cisr ICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrfQorKworK2FybV8xMjhfdjdfbmVv bl9pbXBsISgKKysgICAgYWxsX21hc2s4eDE2LAorKyAgICBhbnlfbWFzazh4MTYsCisrICAgIG1h c2s4eDE2LAorKyAgICBtYXNrOHg4LAorKyAgICB2cG1pbl91OCwKKysgICAgdnBtYXhfdTgKKysp OworK2FybV8xMjhfdjdfbmVvbl9pbXBsISgKKysgICAgYWxsX21hc2sxNng4LAorKyAgICBhbnlf bWFzazE2eDgsCisrICAgIG1hc2sxNng4LAorKyAgICBtYXNrMTZ4NCwKKysgICAgdnBtaW5fdTE2 LAorKyAgICB2cG1heF91MTYKKyspOworK2FybV8xMjhfdjdfbmVvbl9pbXBsISgKKysgICAgYWxs X21hc2szMng0LAorKyAgICBhbnlfbWFzazMyeDQsCisrICAgIG1hc2szMng0LAorKyAgICBtYXNr MzJ4MiwKKysgICAgdnBtaW5fdTMyLAorKyAgICB2cG1heF91MzIKKyspOworZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uCitAQCAtMSwxICsx LDEgQEAKKy17ImZpbGVzIjp7IkNPTlRSSUJVVElORy5tZCI6ImNhMTkwMWYzZTg1MzJmYjRjZWM4 OTRmZDM2NjRmMGVhYTg5OGMwYzRiOTYxZDFiOTkyZDFlZDU0ZWFjZjM2MmEiLCJDT1BZUklHSFQi OiIxMTc4OWY0NWJiMTgwODQxY2QzNjJhNWVlZTY3ODljNjhkZGI1NzNhMTExMDVlMzA3NjhjMzA4 YTZhZGQwMTkwIiwiQ2FyZ28udG9tbCI6IjQyZmE4MzMyMmFhOWZkNjcyM2I3N2QzNWQwY2FjYjky Y2JiNmU3ZjU3M2NlMTFjNTVmNTIyNTI5Mjg2NmY4ZjQiLCJJZGVhcy5tZCI6ImI3NDUyODkzZjUw MDE2Mzg2OGQ4ZGU1MmMwOWFkZGFmOTFlMTYzMjQ1NGVkMDJlODkyYzQ2N2VkN2VjMzlkYmQiLCJM SUNFTlNFLUFQQUNIRSI6ImNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4 NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLCJMSUNFTlNFLU1JVCI6IjNmYTRjYTgzZGNjOTIzNzgz OWIxYmRlYjJlNmQxNmJkZmI1ZWMwYzVjZTQyYjI0Njk0ZDhiYmYwZGNiZWY3MmMiLCJMSUNFTlNF LVdIQVRXRyI6IjgzODExODM4OGZlNWMyZTdmMWRiYmFlZWQxM2UxYzdmM2ViZjg4YmU5MTMxOWM3 YzFkNzdjMThlOTg3ZDFhNTAiLCJSRUFETUUubWQiOiJkOTM4ZThhYjBiOWFiNjdlNzRhMWE0ZjQ4 ZjIzZmRjZTk1NmQwYWQzYTNmNjE0N2FlNzYxMmE5Mjc2M2M4OGQ1IiwiY2kvbWlyaS5zaCI6IjQz Y2I4ZDgyZjQ5ZTNiZmUyZDIyNzRiNmNjZDZmMDcxNGE0MTg4Y2NlZjBjZWNjMDQwODI5ODgzY2Zk YmVlMjUiLCJkb2MvQmlnNS50eHQiOiJmNzNhMmVkYzVjYjZjMmQxNDBiYTZlMDdmNDU0MmUxYzRh MjM0OTUwMzc4YWNkZTFkZjkzNDgwZjBjYTBiZTBiIiwiZG9jL0VVQy1KUC50eHQiOiJlZTI4MThi OTA3ZDAxMzdmNDBhOWFiOWZkNTI1ZmM3MDBhNDRkYmRkZGI2Y2YwYzE1N2E2NTY1NjZiYWU0YmYx IiwiZG9jL0VVQy1LUi50eHQiOiI3MWQ5ZTJjY2YzYjEyNGU4YmRmYjQzM2M4Y2YyNzczZmQ4Nzgw NzcwMzhkMGNlYzNjNzIzN2E1MGY0YTc4YTMwIiwiZG9jL0dCSy50eHQiOiJjMWI1MjJiNWE3OTk4 ODRlNTAwMWRhNjYxZjQyYzVhOGY0ZDBhY2I5ZWYxZDc0YjIwNmYyMmI1ZjY1MzY1NjA2IiwiZG9j L0lCTTg2Ni50eHQiOiJhNWE0MzNlODA0ZDBmODNhZjc4NTAxNTE3OWZiYzFkOWIwZWFmMWY3OTYw ZWZjZDA0MDkzZTEzNmI1MWZiZDBlIiwiZG9jL0lTTy0yMDIyLUpQLnR4dCI6ImFmODY2ODRmNWE4 ZjBlMjg2OGQ3YjJjMjkyODYwMTQwYzNkMmU1NTI3NTMwY2EwOTFmMWIyODE5OGU4ZTJmZTYiLCJk b2MvSVNPLTg4NTktMTAudHh0IjoiNmQzOTQ5YWQ3YzgxY2ExNzY4OTUxMDFlZDgxYTFkYjdkZjEw NjBkNjRlMjYyODgwYjk0YmQzMWJiMzQ0YWI0ZCIsImRvYy9JU08tODg1OS0xMy50eHQiOiIzOTUx ZGQ4OWNmOTNmNzcyOTE0ODA5MTY4M2NmODUxMWY0NTI5Mzg4YjdkYzhkY2QwZDYyZWFlZDU1YmU5 M2ZhIiwiZG9jL0lTTy04ODU5LTE0LnR4dCI6IjNkMzMwNzg0YTAzNzRmZDI1NWEzOGI0Nzk0OTY3 NWNjNzE2OGM4MDA1MzA1MzRiMGEwMWNhYzZlZGM2MjNhZGMiLCJkb2MvSVNPLTg4NTktMTUudHh0 IjoiMjRiMTA4NGFhYjUxMjdhODVhYWI5OTE1M2Y4NmUyNDY5NGQwYTM2MTVmNTNiNWNlMjM2ODNm OTdjZjY2YzQ3YSIsImRvYy9JU08tODg1OS0xNi50eHQiOiJjZTAyNzI1NTliOTJiYTc2ZDdhN2U0 NzZmNjQyNGFlNGE1Y2M3MmU3NWIxODM2MTFiMDgzOTJlNDRhZGQ0ZDI1IiwiZG9jL0lTTy04ODU5 LTIudHh0IjoiMThjZWZmODhjMTNkMWI1YmE0NTVhMzkxOWIxZTNkZTQ4OTA0NWM0YzNkMmRkN2U4 NTI3YzEyNWM3NWQ1NGFhZCIsImRvYy9JU08tODg1OS0zLnR4dCI6IjIxNzk4NDA0YzY4ZjRmNWRi NTkyMjMzNjJmMjQ5OTlkYTk2OTY4YzA2Mjg0MjczMjFmY2NjZTdkMjg0OWExMzAiLCJkb2MvSVNP LTg4NTktNC50eHQiOiJkMjdmNjUyMGM2YzViZmJjYzE5MTc2YjcxZDA4MWNkYjNiY2NkZTE2MjJi YjNlNDIwZDU2ODBlODEyNjMyZDUzIiwiZG9jL0lTTy04ODU5LTUudHh0IjoiYTEwZWM4ZDZlYTdh NzhhZDE1ZGE3Mjc1ZjZjYjFhMzM2NTExODUyN2UyOGY5YWY2ZDBkNTgzMDUwMTMwM2YzYSIsImRv Yy9JU08tODg1OS02LnR4dCI6ImNjZGE4YTJlZmM5NjExNTMzNmJkZDc3Nzc2NjM3Yjk3MTI0MjVl NDRmYmNmNzQ1MzUzYjkwNTdmYmVmMTQ0ZTciLCJkb2MvSVNPLTg4NTktNy50eHQiOiIxNzkwMGZh MWYyN2E0NDU5NThmMGE3N2Q3ZDkwNTZiZTM3NWE2YmQ3ZWU0NDkyYWE2ODBjN2MxNTAwYmFiODVl IiwiZG9jL0lTTy04ODU5LTgtSS50eHQiOiI4MzU3NTU1NjQ2ZDU0MjY1YTliOWZmYTNlNjhiMDhk MTMyMzEyZjE1NjFjNjAxMDhmZjliOGIxMTY3YjZlY2YyIiwiZG9jL0lTTy04ODU5LTgudHh0Ijoi NzJjZDZmM2FmYjdiNGE5YzE2YTY2YTM2MjQ3MzMxNTc3MGI3NzU1ZDcyYzg2Yzg3MGU1MmZjM2Vi YTg2YzhhZiIsImRvYy9LT0k4LVIudHh0IjoiODM5Y2YxOWEzOGRhOTk0NDg4MDA0ZWQ3ODE0YjFm NjE1MTY0MDE1NmE5YTJhZjAyYmYyZWZjYTc0NWZiNTk2NiIsImRvYy9LT0k4LVUudHh0IjoiMGNj NzY2MjRlZDFmMDI0MTgzZTIyOThiN2UwMTk5NTdkYTJjNzBjOGNhMDZlMGZjNGU2ZjM1M2Y1MGE1 MDU0ZiIsImRvYy9TaGlmdF9KSVMudHh0IjoiMzRjNDkxNDE4MThjYjlkZGJjZjU5Y2M4NThmNzhh NzliZThhZDE0OGQ1NjNmMjY0MTUxMDhhZTFmMTQ4NDQzZiIsImRvYy9VVEYtMTZCRS50eHQiOiJl MmUyODBkOGFjYmFhNmQyYTZiMzU2OWQ2MGUxNzUwMGEyODVmMmJhYTBkZjMzNjNkZDg1NTM3Y2Q1 YTFlZjhmIiwiZG9jL1VURi0xNkxFLnR4dCI6IjcwYmRjMTcwZTNmYzUyOThiYTY4ZjEwMTI1ZmI1 ZWViOGIwNzcwMzZjYzk2YmI0NDE2YzRkZTM5NmY2ZDc2YzEiLCJkb2MvVVRGLTgudHh0IjoiZWE3 YmFlNzQyZTYxMzAxMGNlZDAwMmNmNGI2MDFhNzM3ZDIyMDNmYWQ2NWUxMTU2MTE0NTFiYzQ0Mjhm NTQ4YSIsImRvYy9nYjE4MDMwLnR4dCI6ImRjNzEzNzhhOGYwN2EyZDg2NTlmNjllZTgxZmI4Nzkx ZmVmNTZiYTg2ZjEyNGI0Mjk5NzgyODUyMzdiYjRhN2IiLCJkb2MvbWFjaW50b3NoLnR4dCI6IjU3 NDkxZTUzODY2NzExYjQ2NzJkOWI5ZmYzNTM4MGI5ZGFjOWUwZDhlM2Q2YzIwYmRkNjE0MDYwMzY4 N2MwMjMiLCJkb2MvcmVwbGFjZW1lbnQudHh0IjoiNGI2YzNiYmQ3OTk5ZDlkNDEwOGEyODE1OTRi ZDAyZDEzNjA3ZTMzNGE5NTQ2NWFmZmY4YzJjMDhkMzk1ZjBlNCIsImRvYy93aW5kb3dzLTEyNTAu dHh0IjoiNjEyOTZiYjZhMjFjZGFiNjAyMzAwZDMyZWNmYmE0MzRjYjgyZGU1YWMzYmM4OGQ1ODcx MGQyZjEyNWUyOGQzOSIsImRvYy93aW5kb3dzLTEyNTEudHh0IjoiN2RlZWExYzYxZGVhMTQ4NWM4 ZmYwMmRiMmM3ZDU3OGRiN2E5YWFiNjNhYjFjZmQwMmVjMDRiNTE1ODY0Njg5ZSIsImRvYy93aW5k b3dzLTEyNTIudHh0IjoiOTMzZWYzYmRkZGZjZTVlZTEzMmI5ZjFhMWFhOGI0NzQyM2QyNTg3YmJl NDc1YjE5MDI4ZDBhNmQzOGUxODBiNiIsImRvYy93aW5kb3dzLTEyNTMudHh0IjoiMWEzODc0OGI4 OGU5OTA3MWE1YzdiM2Q1NDU2ZWFkNGNhZWRlYWJhYjUwZDUwZDY1OGJlMTA1YmMxMTM3MTRkZSIs ImRvYy93aW5kb3dzLTEyNTQudHh0IjoiZjgzNzJmODZjNmY4ZDY0MjU2M2NkNmRkYzAyNTI2MDU1 MzI5MmEzOTQyM2RmMTY4M2E5ODY3MGJkN2JmMmI0NyIsImRvYy93aW5kb3dzLTEyNTUudHh0Ijoi NGU1ODUyNDk0NzMwMDU0ZTJkYTI1OGE3NGUxYjlkNzgwYWJiY2RkOGNlMjJlYmMyMThjYTJlZmU5 ZTkwNDkzZCIsImRvYy93aW5kb3dzLTEyNTYudHh0IjoiYzA4NzljNTE3MmFiZWRlYWQzMDJhNDA2 ZThmNjBkOWNkOTU5ODY5NGEwZmZhNGZkMjg4ZmZlNGZlZjdiOGVhMSIsImRvYy93aW5kb3dzLTEy NTcudHh0IjoiYzI4YTBjOWY5NjRmY2IyYjQ2ZDIxZjUzN2M0MDI0NDY1MDFhMjgwMDY3MDQ4MWQ2 YWJmOWZkOWU5MDE4ZDUyMyIsImRvYy93aW5kb3dzLTEyNTgudHh0IjoiNTAxOWFlNGQ2MTgwNWM3 OWFhY2JmMTdjOTM3OTMzNDJkYmIwOThkNjVhMTgzNzc4M2JjM2UyYzZkNmEyMzYwMiIsImRvYy93 aW5kb3dzLTg3NC50eHQiOiI0ZWYwZTQ1MDFjNWZlYmE4YjE3YWVlMTgxODYwMmVkNDRiMzZjYTg0 NzVkYjc3MWNlMmZjMTZkMzkyY2FiZWNjIiwiZG9jL3gtbWFjLWN5cmlsbGljLnR4dCI6IjU4YmUx NTRkOGE4ODhjYTNkNDg0YjgzYjQ0Zjc0OTgyM2VmMzM5YWIyN2YxNGQ5MGNhOWE4NTZmNTA1MGE4 YmQiLCJkb2MveC11c2VyLWRlZmluZWQudHh0IjoiZjljZDA3YzQzMjFiZjVjZmIwYmU0YmRkZGQy NTEwNzI5OTliMDRhNmNmN2E2ZjViYzYzNzA5YTg0ZTJjMWZmYyIsImdlbmVyYXRlLWVuY29kaW5n LWRhdGEucHkiOiJiZTk4OWRkMjVjNmI5NDZlM2U4NzQ1ZmRjOGU4YTgwZmNmMjRiM2JlOTlhZDBi NGI3ODE1M2JhM2Y2YWI2MzEwIiwicnVzdGZtdC50b21sIjoiODVjMWEzYjQzODJmZDg5ZTk5MWNi YjgxYjcwZmI1Mjc4MDQ3MmVkYzA2NGM5NjM5NDNjZGFhYTU2ZTBhMjAzMCIsInNyYy9hc2NpaS5y cyI6ImM0NGMwMDI2NDFhZGI1ZWJjNDM2ODcwN2E4Y2MwYTA3NmQyZjMzZTZhNWMyN2IxYjY5OTg4 ZWI1MTVmNTY1M2QiLCJzcmMvYmlnNS5ycyI6ImVjNmUyOTEzMDExYTM4ZTlhM2U4MjVhMTczMWYx MzlhN2NhMWQ1YjI2NGZlZmFlNTFhM2NjMWE2OGE1N2NlZjkiLCJzcmMvZGF0YS5ycyI6IjhhNjE3 Y2M1NzAzMjA5MmQ2NTg1MGViMjdlMDBkZTY4N2M4MGFlYTMyOTllODM5YTFmNThiNDJkMGIzNWFi ZjMiLCJzcmMvZXVjX2pwLnJzIjoiMzIwNDdmNWI1NDAxODhjNGNiMTljMDcxNjVmODQ2Yjk3ODZh MDlmMThlMzE1ZWQzZTliZGExMjkzZGFlNTJhYSIsInNyYy9ldWNfa3IucnMiOiI5YjI1YWZjNzJk OTM3ODcwMGVlY2ZhYzU4ZDU1YWQxYzU5NDZkNmNkMGNjZGUyYzI5YzA4MjAwZWYyZGU2YmI5Iiwi c3JjL2diMTgwMzAucnMiOiI4MDg1ODcxNjhkNzNmMGM4MGY4NTIwZjBjYTliMTYxODY2ZWQyZWZl YjE3YTA1ZTg1ZmRmM2I4ZWZlN2JhMjhhIiwic3JjL2hhbmRsZXMucnMiOiJjYzgzZGMwNzU0NzUx ZDY3ZjU2ODhhNjVjNWUwMTkxY2JhMDJmNmJhY2NlODFhMDgxM2EyNDNjYmE1NWVlZjdhIiwic3Jj L2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRiN2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMx MTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9saWIucnMiOiIxZGMwN2I4MThlNDU4NDZi MTZkZGNhZjBkZTQ2Yzg4NjJkZDdkZjgwOTkxMjNlYzM4Yjk1YzNmOGFkOWM5MWVjIiwic3JjL21h Y3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5 ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoiMGJmMzQxMDNlMGFkMWI4NDJhMTNhMDgy ZGVlMmI5MjBiMDVjZjRmYjBmMTQ1YzllZTdmNjA4ZjRjYjRhNTQ0ZiIsInNyYy9yZXBsYWNlbWVu dC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFlODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1 NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJzIjoiNjk1MWFlNjdlMzZiMWExMmZhM2Ez MDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1 bmNzLnJzIjoiMjYxMmFiYTg2ZTFkMjAxMDk2ZDdlNDdhODU5YmMzNDQ0Zjg1OTM0Y2M4MmQ4YWRj NmQzOWE0MzA0ZDllZWNmYyIsInNyYy9zaW5nbGVfYnl0ZS5ycyI6IjNjOWU5YzFmOTQ2YWU2MjJj NzI1YmE5NDIxMjQwYzFmYWE5YTA1ZTk1ZmExMGRkNDY0MmEyNWNiMjc2YTFlZGMiLCJzcmMvdGVz dF9kYXRhL2JpZzVfaW4udHh0IjoiNGM1YTg2OTFmOGRjNzE3MzExODg5YzYzODk0MDI2ZDJmYjYy NzI1YTg2YzQyMDhjYTI3NGE5Y2M4ZDQyYTUwMyIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYu dHh0IjoiOTlkMzk5ZTE3NzUwY2Y5YzdjZjMwYmIyNTNkYmZlMzViODFjNGZjYmRlYWQ5M2NmYTQ4 YjE0MjkyMTM0NzNjNyIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXQudHh0IjoiNjE5M2NhOTdjMjk3 YWEyMGUwOTM5NjAzOGQxOGU5MzhiYjdlYTMzMWMyNmYwZjI0NTQwOTcyOTY3MjNhMGIxMyIsInNy Yy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjM2NTY3NjkxZjU1N2RmMTQ0ZjZjYzUyMDAx NWE4NzAzOGRmYTE1NmYyOTZmY2YxMDNiNTZhZTlhNzE4YmUxZmMiLCJzcmMvdGVzdF9kYXRhL2V1 Y19rcl9pbi50eHQiOiJjODZhNzIyNGYzMjE1ZmEwZDA0ZTY4NTYyMmE3NTJmZGM3Mjc2M2U4YWUw NzYyMzBjN2ZkNjJkZTU3ZWM0MDc0Iiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6 IjFmNDE5ZjRjYTQ3ZDcwOGI1NGM3M2M0NjE1NDVhMDIyYWUyZTIwNDk4ZmRiZjgwMDVhNDgzZDc1 MmEyMDQ4ODMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0IjoiZTdmMzJlMDI2ZjcwYmUx ZTFiNThlMDA0N2JhZjdkM2QyYzUyMDI2OWM0ZjliOTk5MmUxNThiNGRlY2IwYTFhMyIsInNyYy90 ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYzk5MDc4NTc5ODBiMjBiOGU5ZTNiNTg0NDgy ZWQ2NTY3YTJiZTYxODVkNzIyMzdiNjMyMmYwNDA0OTQ0OTI0ZSIsInNyYy90ZXN0X2RhdGEvZ2Ix ODAzMF9pbi50eHQiOiJhYjcyMzFiMmQzZTlhZmFjZGJkN2Q3ZjNiOWU1MzYxYTdmZjlmN2UxY2Zk YjRmM2JkOTA1YjkzNjJiMzA5ZTUzIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQi OiJkYzUwNjk0MjFhZGNhMjA0M2M1NWY1MDEyYjU1YTc2ZmRmZjY1MWQyMmU2ZTY5OWZkMDk3OGY4 ZDU3MDY4MTVjIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dC50eHQiOiJmMDIwOGQ1MjdmNWNh NjNkZTdkOWEwMzIzYmU4ZDVjZjEyZDhhMTA0YjI5NDNkOTJjMjcwMWYwYzMzNjRkYWMxIiwic3Jj L3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IjoiNjgxOWZlNDc2MjdlNGVhMDEwMjcwMDNm YzUxNGI5ZjIxYTEzMjJlNzMyZDdmMWZiOTJjYzZjNTQ1NWJjNmMwNyIsInNyYy90ZXN0X2RhdGEv aXNvXzIwMjJfanBfaW4udHh0IjoiY2QyNGJiZGNiMTgzNGUyNWRiNTQ2NDZmYmY0YzQxNTYwYTEz ZGM3NTQwZjZiZTNkYmE0ZjVkOTdkNDQ1MTNhZiIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBf aW5fcmVmLnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0 N2U0MzcxN2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQi OiI5YjZmMDE1MzI5ZGRhNmMzZjllZTVjZTZkYmQ2ZmE5Yzg5YWNjMjEyODNlODg2ODM2Yzc4Yjhk ODMzNDgwYzIxIiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dCI6Ijc4Y2Iy NjAwOTNhMjAxMTZhZDlhNDJmNDNiMDVkMTg0OGM1YWIxMDBiNmI5YTg1MDc0OTgwOWU5NDM4ODRi MzUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0IjoiNmRmMzAzMDU1M2ZmYjBhNjYxNWJi MzNkYzhlYTlkY2E2ZDk2MjNhOTAyOGUyZmZlYzc1NGNlM2MzZGE4MjRjYyIsInNyYy90ZXN0X2Rh dGEvamlzMDIwOF9pbl9yZWYudHh0IjoiM2RjNGU2YTVlMDY0NzE5NDJkMDg2YjE2Yzk0NDA5NDVl Nzg0MTVmNmYzZjQ3ZTQzNzE3ZTRiYzJlYWMyY2RmNSIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9v dXQudHh0IjoiNGVjMjQ0NzdlMTY3NWNlNzUwNzMzYmRjM2M1YWRkMWNkMjdiNmJkNGNlMWYwOTI4 OTU2NDY0NmU5NjU0ZTg1NyIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dCI6ImMz ZTFjZWY1MDMyYjJiMWQ5M2E0MDZmMzFmZjk0MGM0ZTJkZmU4ODU5YjhiMTdjYTI3NjFmZWU3YTc1 YTBlNDgiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0IjoiYzAxMWYwZGQ3MmJkN2M4Y2Q5 MjJkZjkzNzRlZjhkMjc2OWE3NzE5MDUxNGM3N2Y2YzYyYjQxNTg1MmVlYjlmZSIsInNyYy90ZXN0 X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiN2Q5NDU4YjNkMmY3M2U3MDkyYTdmNTA1YzA4Y2Ux ZDIzM2RkZTE4YWE2NzlmYmNmOTg4OTI1NjIzOWNjOWUwNiIsInNyYy90ZXN0X2RhdGEvc2hpZnRf amlzX2luLnR4dCI6IjAyZTM4OWNjZWYwZGQyMTIyZTYzZjUwMzg5OTQwMmNiN2Y3OTc5MTJjMjQ0 NGNjODBhYjkzMTMxMTE2YzU1MjQiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0 IjoiNTEyZjk4NTk1MGNhOTAyZTY0M2M4ODY4MmRiYTk3MDhiN2MzOGQzYzVlYzI5MjUxNjhhYjAw YWM5NGFiMTlmOSIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291dC50eHQiOiI1ZmJjNDRkYTdi ZjYzOWJmNmNmZTBmYTFmZDNlYmE3MTAyYjg4ZjgxOTE5YzllYTk5MTMwMjcxMmY2OTQyNmZiIiwi c3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQiOiI0NjYzMjJjNmZlZDgyODZjNjQ1 ODI3MzE3NTUyOTBjMjI5NjUwOGVmZGQyNTg4MjZlNjI3OTY4NjY0OWI0ODFmIiwic3JjL3Rlc3Rf bGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhkMTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcw ZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5 OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIwZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNy Yy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMyYzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5 ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEw MzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMxOTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJp YW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJk ZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVmaW5lZC5ycyI6ImM5YzAxMDczMGRmYjlm MTQxZDRmZWQxOTM1MGMwOGEyMWFmMjQwOTEzYTU0YmI2NGY1Y2E4OWZmOTNiNmI3ZDEifSwicGFj a2FnZSI6IjcyNjhiMzg2Mjk2YTAyNWU0NzRkNTE0MDY3OGY3NWQ2ZGU5NDkzYWU1NWE1ZDcwOWVl YjlkZDA4MTQ5OTQ1ZTEifQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisreyJmaWxlcyI6 eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0Y2VjODk0ZmQzNjY0ZjBlYWE4OThj MGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJR0hUIjoiMTE3ODlmNDViYjE4MDg0 MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4YzMwOGE2YWRkMDE5MCIsIkNhcmdv LnRvbWwiOiIyMmE0ZDIxMGM5MmRhZTlmMzJjNjk0NGVmMzQwZWU4ZmRkMDI3Zjk5YzA4MTU3N2U4 OTA3MTIzZTJhOTMzODNlIiwiSWRlYXMubWQiOiJiNzQ1Mjg5M2Y1MDAxNjM4NjhkOGRlNTJjMDlh ZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJkIiwiTElDRU5TRS1BUEFDSEUiOiJj ZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQxN2Jj NTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzkyMzc4MzliMWJkZWIyZTZkMTZiZGZi NWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElDRU5TRS1XSEFUV0ciOiI4MzgxMTgz ODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEzMTljN2MxZDc3YzE4ZTk4N2QxYTUw IiwiUkVBRE1FLm1kIjoiMWQwOGFlZmNiOTJhZmE4MWIxODE1NDA0OWM5YWJiY2FkNDU0MGEyM2Y3 MTcyZTlmOWJiZWQ1YWYzM2YxYTA4NyIsImNpL21pcmkuc2giOiI0M2NiOGQ4MmY0OWUzYmZlMmQy Mjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4M2NmZGJlZTI1IiwiZG9jL0JpZzUu dHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0YTIzNDk1MDM3OGFjZGUxZGY5 MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUyODE4YjkwN2QwMTM3ZjQwYTlhYjlm ZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFlNGJmMSIsImRvYy9FVUMtS1IudHh0 IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2ZkODc4MDc3MDM4ZDBjZWMzYzcyMzdh NTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiYzFiNTIyYjVhNzk5ODg0ZTUwMDFkYTY2MWY0MmM1 YThmNGQwYWNiOWVmMWQ3NGIyMDZmMjJiNWY2NTM2NTYwNiIsImRvYy9JQk04NjYudHh0IjoiYTVh NDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFmNzk2MGVmY2QwNDA5M2UxMzZiNTFm YmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0ZjVhOGYwZTI4NjhkN2IyYzI5Mjg2 MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2IiwiZG9jL0lTTy04ODU5LTEwLnR4 dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3ZGYxMDYwZDY0ZTI2Mjg4MGI5NGJk MzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0IjoiMzk1MWRkODljZjkzZjc3MjkxNDgw OTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJlOTNmYSIsImRvYy9JU08tODg1 OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5NDk2NzVjYzcxNjhjODAwNTMwNTM0 YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1LnR4dCI6IjI0YjEwODRhYWI1MTI3 YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIzNjgzZjk3Y2Y2NmM0N2EiLCJkb2Mv SVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3YTdlNDc2ZjY0MjRhZTRhNWNjNzJl NzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08tODg1OS0yLnR4dCI6IjE4Y2VmZjg4 YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJkZDdlODUyN2MxMjVjNzVkNTRhYWQi LCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0ZjVkYjU5MjIzMzYyZjI0OTk5ZGE5 Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9jL0lTTy04ODU5LTQudHh0IjoiZDI3 ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUxNjIyYmIzZTQyMGQ1NjgwZTgxMjYz MmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2ZWE3YTc4YWQxNWRhNzI3NWY2Y2Ix YTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2EiLCJkb2MvSVNPLTg4NTktNi50eHQi OiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEyNDI1ZTQ0ZmJjZjc0NTM1M2I5MDU3 ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5MDBmYTFmMjdhNDQ1OTU4ZjBhNzdk N2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJhYjg1ZSIsImRvYy9JU08tODg1OS04 LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4YjA4ZDEzMjMxMmYxNTYxYzYwMTA4 ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4dCI6IjcyY2Q2ZjNhZmI3YjRhOWMx NmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJmYzNlYmE4NmM4YWYiLCJkb2MvS09J OC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgxNGIxZjYxNTE2NDAxNTZhOWEyYWYw MmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6IjBjYzc2NjI0ZWQxZjAyNDE4M2Uy Mjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNmNTBhNTA1NGYiLCJkb2MvU2hpZnRf SklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4YTc5YmU4YWQxNDhkNTYzZjI2 NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0IjoiZTJlMjgwZDhhY2JhYTZkMmE2 YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUzN2NkNWExZWY4ZiIsImRvYy9VVEYt MTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEyNWZiNWVlYjhiMDc3MDM2Y2M5NmJi NDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6ImVhN2JhZTc0MmU2MTMwMTBjZWQw MDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0NDI4ZjU0OGEiLCJkb2MvZ2IxODAz MC50eHQiOiJkYzcxMzc4YThmMDdhMmQ4NjU5ZjY5ZWU4MWZiODc5MWZlZjU2YmE4NmYxMjRiNDI5 OTc4Mjg1MjM3YmI0YTdiIiwiZG9jL21hY2ludG9zaC50eHQiOiI1NzQ5MWU1Mzg2NjcxMWI0Njcy ZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2MDM2ODdjMDIzIiwiZG9jL3JlcGxh Y2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgxNTk0YmQwMmQxMzYwN2UzMzRhOTU0 NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0xMjUwLnR4dCI6IjYxMjk2YmI2YTIx Y2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhkNTg3MTBkMmYxMjVlMjhkMzkiLCJk b2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0ODVjOGZmMDJkYjJjN2Q1NzhkYjdh OWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mvd2luZG93cy0xMjUyLnR4dCI6Ijkz M2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4N2JiZTQ3NWIxOTAyOGQwYTZkMzhl MTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3NDhiODhlOTkwNzFhNWM3YjNkNTQ1 NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0ZGUiLCJkb2Mvd2luZG93cy0xMjU0 LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUyNjA1NTMyOTJhMzk0MjNkZjE2ODNh OTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4dCI6IjRlNTg1MjQ5NDczMDA1NGUy ZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2EyZWZlOWU5MDQ5M2QiLCJkb2Mvd2lu ZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAyYTQwNmU4ZjYwZDljZDk1OTg2OTRh MGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93cy0xMjU3LnR4dCI6ImMyOGEwYzlm OTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0ODFkNmFiZjlmZDllOTAxOGQ1MjMi LCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4MDVjNzlhYWNiZjE3YzkzNzkzMzQy ZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJkb2Mvd2luZG93cy04NzQudHh0Ijoi NGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2Y2E4NDc1ZGI3NzFjZTJmYzE2ZDM5 MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1OGJlMTU0ZDhhODg4Y2EzZDQ4NGI4 M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUwNTBhOGJkIiwiZG9jL3gtdXNlci1k ZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJkZGRkMjUxMDcyOTk5YjA0YTZjZjdh NmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5IjoiYmU5ODlk ZDI1YzZiOTQ2ZTNlODc0NWZkYzhlOGE4MGZjZjI0YjNiZTk5YWQwYjRiNzgxNTNiYTNmNmFiNjMx MCIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5OTFjYmI4MWI3MGZiNTI3ODA0NzJl ZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNjaWkucnMiOiI1ODhlMzhiMDFlNjY2 ZDVlNzQ2MjYxN2VhN2U5MGExMDhkNjA4ZGVjOWUwMTZmM2QyNzNhYzA3NDRhZjJlMDVkIiwic3Jj L2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3MzFmMTM5YTdjYTFkNWIyNjRmZWZh ZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiI4YTYxN2NjNTcwMzIwOTJkNjU4NTBl YjI3ZTAwZGU2ODdjODBhZWEzMjk5ZTgzOWExZjU4YjQyZDBiMzVhYmYzIiwic3JjL2V1Y19qcC5y cyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2YTA5ZjE4ZTMxNWVkM2U5YmRh MTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFmYzcyZDkzNzg3MDBlZWNmYWM1OGQ1 NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJiOSIsInNyYy9nYjE4MDMwLnJzIjoi ODA4NTg3MTY4ZDczZjBjODBmODUyMGYwY2E5YjE2MTg2NmVkMmVmZWIxN2EwNWU4NWZkZjNiOGVm ZTdiYTI4YSIsInNyYy9oYW5kbGVzLnJzIjoiYjA4Y2VmMWY1Nzg1YmI2YTQ4MjJmMmU4NDRjNmRm MWIwNDZiNzM3YjdhMDc1ZTQ1OTNlYWE4YzQyMDhlOWZlMiIsInNyYy9pc29fMjAyMl9qcC5ycyI6 IjliYjQ4NWU4MjU3NGY0YjdkNGIyMzY0ZjBmZjI3NmFjYjZhMGJjMTExNzU4NDIwYTNiMGVjNWUw NGMxOTY2NTIiLCJzcmMvbGliLnJzIjoiODM0ZjQ0YjY3MGVjNDhlZTgyYzBlMTIyMjNkMTU2NzMx M2ZkZDlmODhiY2E1ZjRiMTE3YzgyYzE4MjhmNTU5ZiIsInNyYy9tYWNyb3MucnMiOiIyMDA5OTdm ODg3MGRlOGJmZDhjZGM0NzVlOTIxMTVkZjQyMTA4YzBkZjY2MWU0OWQzZDFjYmMzMjA1NmUxZDk5 Iiwic3JjL21lbS5ycyI6Ijk0ODU3MTEzN2QzYjE1MWRmOGRiNGZiMmM3MzNlNzRhZTU5NWQwNTVj ZGYwYWQ4M2FiY2FiOTM0MWQ2YWRhYmUiLCJzcmMvcmVwbGFjZW1lbnQucnMiOiI3NjYwYjM0YTUz ZjhjMWNhMmJkZmEwZTUxZTg0M2VjMjgzMjY5NTA5NTJhZDhiYzk2NTY5ZmViOTNhYzYyMzA4Iiwi c3JjL3NoaWZ0X2ppcy5ycyI6IjY5NTFhZTY3ZTM2YjFhMTJmYTNhMzA3MzQ5NTdmNDQ0ZDhiMWI0 YWUwZTJiZGU1MjA2MGIyOWJkMGYxNmQ5ZDkiLCJzcmMvc2ltZF9mdW5jcy5ycyI6IjA1YzZlNzdh Zjc0YmZlNzNjZDM5YTc1MjA2N2MxMTQyNWQ2YjQ2ZTVkYTQxOTkxMGY1NGJmNzVhNWMwMmE5ODQi LCJzcmMvc2luZ2xlX2J5dGUucnMiOiIzYWQ4NzExNmZiMzM5NDM0YTRiNThlOGYyYjE1NDg1ZjJi NjZiOWY3ODE0ZDcwOGYxNjE5NGVkMDhmNmQ2Y2NmIiwic3JjL3Rlc3RfZGF0YS9iaWc1X2luLnR4 dCI6IjRjNWE4NjkxZjhkYzcxNzMxMTg4OWM2Mzg5NDAyNmQyZmI2MjcyNWE4NmM0MjA4Y2EyNzRh OWNjOGQ0MmE1MDMiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW5fcmVmLnR4dCI6Ijk5ZDM5OWUxNzc1 MGNmOWM3Y2YzMGJiMjUzZGJmZTM1YjgxYzRmY2JkZWFkOTNjZmE0OGIxNDI5MjEzNDczYzciLCJz cmMvdGVzdF9kYXRhL2JpZzVfb3V0LnR4dCI6IjYxOTNjYTk3YzI5N2FhMjBlMDkzOTYwMzhkMThl OTM4YmI3ZWEzMzFjMjZmMGYyNDU0MDk3Mjk2NzIzYTBiMTMiLCJzcmMvdGVzdF9kYXRhL2JpZzVf b3V0X3JlZi50eHQiOiIzNjU2NzY5MWY1NTdkZjE0NGY2Y2M1MjAwMTVhODcwMzhkZmExNTZmMjk2 ZmNmMTAzYjU2YWU5YTcxOGJlMWZjIiwic3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW4udHh0IjoiYzg2 YTcyMjRmMzIxNWZhMGQwNGU2ODU2MjJhNzUyZmRjNzI3NjNlOGFlMDc2MjMwYzdmZDYyZGU1N2Vj NDA3NCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX2luX3JlZi50eHQiOiIxZjQxOWY0Y2E0N2Q3MDhi NTRjNzNjNDYxNTQ1YTAyMmFlMmUyMDQ5OGZkYmY4MDA1YTQ4M2Q3NTJhMjA0ODgzIiwic3JjL3Rl c3RfZGF0YS9ldWNfa3Jfb3V0LnR4dCI6ImU3ZjMyZTAyNmY3MGJlMWUxYjU4ZTAwNDdiYWY3ZDNk MmM1MjAyNjljNGY5Yjk5OTJlMTU4YjRkZWNiMGExYTMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9v dXRfcmVmLnR4dCI6ImM5OTA3ODU3OTgwYjIwYjhlOWUzYjU4NDQ4MmVkNjU2N2EyYmU2MTg1ZDcy MjM3YjYzMjJmMDQwNDk0NDkyNGUiLCJzcmMvdGVzdF9kYXRhL2diMTgwMzBfaW4udHh0IjoiYWI3 MjMxYjJkM2U5YWZhY2RiZDdkN2YzYjllNTM2MWE3ZmY5ZjdlMWNmZGI0ZjNiZDkwNWI5MzYyYjMw OWU1MyIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbl9yZWYudHh0IjoiZGM1MDY5NDIxYWRjYTIw NDNjNTVmNTAxMmI1NWE3NmZkZmY2NTFkMjJlNmU2OTlmZDA5NzhmOGQ1NzA2ODE1YyIsInNyYy90 ZXN0X2RhdGEvZ2IxODAzMF9vdXQudHh0IjoiZjAyMDhkNTI3ZjVjYTYzZGU3ZDlhMDMyM2JlOGQ1 Y2YxMmQ4YTEwNGIyOTQzZDkyYzI3MDFmMGMzMzY0ZGFjMSIsInNyYy90ZXN0X2RhdGEvZ2IxODAz MF9vdXRfcmVmLnR4dCI6IjY4MTlmZTQ3NjI3ZTRlYTAxMDI3MDAzZmM1MTRiOWYyMWExMzIyZTcz MmQ3ZjFmYjkyY2M2YzU0NTViYzZjMDciLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luLnR4 dCI6ImNkMjRiYmRjYjE4MzRlMjVkYjU0NjQ2ZmJmNGM0MTU2MGExM2RjNzU0MGY2YmUzZGJhNGY1 ZDk3ZDQ0NTEzYWYiLCJzcmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX2luX3JlZi50eHQiOiIzZGM0 ZTZhNWUwNjQ3MTk0MmQwODZiMTZjOTQ0MDk0NWU3ODQxNWY2ZjNmNDdlNDM3MTdlNGJjMmVhYzJj ZGY1Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9vdXQudHh0IjoiOWI2ZjAxNTMyOWRkYTZj M2Y5ZWU1Y2U2ZGJkNmZhOWM4OWFjYzIxMjgzZTg4NjgzNmM3OGI4ZDgzMzQ4MGMyMSIsInNyYy90 ZXN0X2RhdGEvaXNvXzIwMjJfanBfb3V0X3JlZi50eHQiOiI3OGNiMjYwMDkzYTIwMTE2YWQ5YTQy ZjQzYjA1ZDE4NDhjNWFiMTAwYjZiOWE4NTA3NDk4MDllOTQzODg0YjM1Iiwic3JjL3Rlc3RfZGF0 YS9qaXMwMjA4X2luLnR4dCI6IjZkZjMwMzA1NTNmZmIwYTY2MTViYjMzZGM4ZWE5ZGNhNmQ5NjIz YTkwMjhlMmZmZWM3NTRjZTNjM2RhODI0Y2MiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW5fcmVm LnR4dCI6IjNkYzRlNmE1ZTA2NDcxOTQyZDA4NmIxNmM5NDQwOTQ1ZTc4NDE1ZjZmM2Y0N2U0Mzcx N2U0YmMyZWFjMmNkZjUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0LnR4dCI6IjRlYzI0NDc3 ZTE2NzVjZTc1MDczM2JkYzNjNWFkZDFjZDI3YjZiZDRjZTFmMDkyODk1NjQ2NDZlOTY1NGU4NTci LCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfb3V0X3JlZi50eHQiOiJjM2UxY2VmNTAzMmIyYjFkOTNh NDA2ZjMxZmY5NDBjNGUyZGZlODg1OWI4YjE3Y2EyNzYxZmVlN2E3NWEwZTQ4Iiwic3JjL3Rlc3Rf ZGF0YS9qaXMwMjEyX2luLnR4dCI6ImMwMTFmMGRkNzJiZDdjOGNkOTIyZGY5Mzc0ZWY4ZDI3Njlh NzcxOTA1MTRjNzdmNmM2MmI0MTU4NTJlZWI5ZmUiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW5f cmVmLnR4dCI6IjdkOTQ1OGIzZDJmNzNlNzA5MmE3ZjUwNWMwOGNlMWQyMzNkZGUxOGFhNjc5ZmJj Zjk4ODkyNTYyMzljYzllMDYiLCJzcmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbi50eHQiOiIwMmUz ODljY2VmMGRkMjEyMmU2M2Y1MDM4OTk0MDJjYjdmNzk3OTEyYzI0NDRjYzgwYWI5MzEzMTExNmM1 NTI0Iiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfaW5fcmVmLnR4dCI6IjUxMmY5ODU5NTBjYTkw MmU2NDNjODg2ODJkYmE5NzA4YjdjMzhkM2M1ZWMyOTI1MTY4YWIwMGFjOTRhYjE5ZjkiLCJzcmMv dGVzdF9kYXRhL3NoaWZ0X2ppc19vdXQudHh0IjoiNWZiYzQ0ZGE3YmY2MzliZjZjZmUwZmExZmQz ZWJhNzEwMmI4OGY4MTkxOWM5ZWE5OTEzMDI3MTJmNjk0MjZmYiIsInNyYy90ZXN0X2RhdGEvc2hp ZnRfamlzX291dF9yZWYudHh0IjoiNDY2MzIyYzZmZWQ4Mjg2YzY0NTgyNzMxNzU1MjkwYzIyOTY1 MDhlZmRkMjU4ODI2ZTYyNzk2ODY2NDliNDgxZiIsInNyYy90ZXN0X2xhYmVsc19uYW1lcy5ycyI6 IjIzYTJlMTFiMDJiM2I4ZDE1ZmI1NjEzYTYyNWUzZWRiMmM2MWU3MGUzYzU4MWFiZmQ2Mzg3MTlh NDA4ODIwMGQiLCJzcmMvdGVzdGluZy5ycyI6ImY1OWU2NzFlOTVhOThhNTZmNmI1NzNlOGM2YmU0 ZDcxZTY3MGJmNTJmN2UyMGViMTYwNWQ5OTBhYWZhMTg5NGUiLCJzcmMvdXRmXzE2LnJzIjoiYzA3 MWExNDdmYWQzOGQ3NTBjMmMyNDdlMTQxYjc2YjkyOWE0ODAwN2I5OWYyNmIyOTIyYjljYWVjZGFm MmYyNSIsInNyYy91dGZfOC5ycyI6IjdiN2Q4ODdiMzQ3ZjFhZWZhMDMyNDZiMDI4YTM2YTcyNzU4 YTRjZTc2YzI4ZjNiNDVjMTk0Njc4NTFhYTc4MzkiLCJzcmMvdmFyaWFudC5ycyI6IjFmYWI1MzYz NTg4YTE1NTRhNzE2OWRlODczMWVhOWNkZWQ3YWM2M2VhMzVjYWFiZGQxYzI3YThkZGU2OGMyN2Ii LCJzcmMveF91c2VyX2RlZmluZWQucnMiOiI5NDU2Y2E0NjE2OGVmODZjOTgzOTlhMjUzNmY1Nzdl ZjdiZTNjZGRlOTBjMGM1MTM5MmQ4YWM0ODUxOWQzZmFlIn0sInBhY2thZ2UiOiJiNDVkZTkwNGFh MGIwMTBiY2UyYWI0NTI2NGQwNjMxNjgxODQ3ZmE3YjZmMmVhYTdkYWI3NjE5OTQzYmM0ZjU5In0K K1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv Q2FyZ28udG9tbAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21s CisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKK0BAIC02LDE4 ICs2LDE5IEBACisgIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRlbmNpZXMu CisgIworICMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0IHRoZSBv cmlnaW5hbCBDYXJnby50b21sCisgIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVyZW50IChh bmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorICMgU2VlIENhcmdvLnRvbWwub3JpZyBmb3IgdGhl IG9yaWdpbmFsIGNvbnRlbnRzLgorIAorIFtwYWNrYWdlXQorIGVkaXRpb24gPSAiMjAxOCIKKyty dXN0LXZlcnNpb24gPSAiMS4zNiIKKyBuYW1lID0gImVuY29kaW5nX3JzIgorLXZlcnNpb24gPSAi MC44LjMzIgorK3ZlcnNpb24gPSAiMC44LjM0IgorIGF1dGhvcnMgPSBbIkhlbnJpIFNpdm9uZW4g PGhzaXZvbmVuQGhzaXZvbmVuLmZpPiJdCisgZGVzY3JpcHRpb24gPSAiQSBHZWNrby1vcmllbnRl ZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQiCisgaG9tZXBhZ2UgPSAi aHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5nX3JzLyIKKyBkb2N1bWVudGF0aW9uID0gImh0dHBzOi8v ZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgcmVhZG1lID0gIlJFQURNRS5tZCIKKyBrZXl3b3JkcyA9 IFsKKyAgICAgImVuY29kaW5nIiwKKyAgICAgIndlYiIsCitAQCAtMzEsMjMgKzMyLDIzIEBAIGNh dGVnb3JpZXMgPSBbCisgICAgICJpbnRlcm5hdGlvbmFsaXphdGlvbiIsCisgXQorIGxpY2Vuc2Ug PSAiKEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQgQlNELTMtQ2xhdXNlIgorIHJlcG9zaXRvcnkgPSAi aHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2VuY29kaW5nX3JzIgorIAorIFtwcm9maWxlLnJl bGVhc2VdCisgbHRvID0gdHJ1ZQorIAorK1tkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5k XQorK3ZlcnNpb24gPSAiMC4xLjAiCisrb3B0aW9uYWwgPSB0cnVlCisrCisgW2RlcGVuZGVuY2ll cy5jZmctaWZdCisgdmVyc2lvbiA9ICIxLjAiCisgCistW2RlcGVuZGVuY2llcy5wYWNrZWRfc2lt ZF0KKy12ZXJzaW9uID0gIjAuMy45IgorLW9wdGlvbmFsID0gdHJ1ZQorLQorIFtkZXBlbmRlbmNp ZXMuc2VyZGVdCisgdmVyc2lvbiA9ICIxLjAiCisgb3B0aW9uYWwgPSB0cnVlCisgCisgW2Rldi1k ZXBlbmRlbmNpZXMuYmluY29kZV0KKyB2ZXJzaW9uID0gIjEuMCIKKyAKKyBbZGV2LWRlcGVuZGVu Y2llcy5zZXJkZV9kZXJpdmVdCitAQCAtNjksMTUgKzcwLDkgQEAgZmFzdC1sZWdhY3ktZW5jb2Rl ID0gWworICAgICAiZmFzdC1oYW5qYS1lbmNvZGUiLAorICAgICAiZmFzdC1rYW5qaS1lbmNvZGUi LAorICAgICAiZmFzdC1nYi1oYW56aS1lbmNvZGUiLAorICAgICAiZmFzdC1iaWc1LWhhbnppLWVu Y29kZSIsCisgXQorIGxlc3Mtc2xvdy1iaWc1LWhhbnppLWVuY29kZSA9IFtdCisgbGVzcy1zbG93 LWdiLWhhbnppLWVuY29kZSA9IFtdCisgbGVzcy1zbG93LWthbmppLWVuY29kZSA9IFtdCistc2lt ZC1hY2NlbCA9IFsKKy0gICAgInBhY2tlZF9zaW1kIiwKKy0gICAgInBhY2tlZF9zaW1kL2ludG9f Yml0cyIsCistXQorLQorLVtiYWRnZXMudHJhdmlzLWNpXQorLXJlcG9zaXRvcnkgPSAiaHNpdm9u ZW4vZW5jb2RpbmdfcnMiCisrc2ltZC1hY2NlbCA9IFsiYW55X2FsbF93b3JrYXJvdW5kIl0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL1JFQURNRS5tZCBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvUkVBRE1FLm1kCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L2VuY29kaW5nX3JzL1JFQURNRS5tZAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9SRUFETUUubWQKK0BAIC0xNjIsNTAgKzE2MiwzNiBAQCB3cmFwcGVycy4KKyAqIFtDKytdKGh0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9yZWNvZGVfY3BwKQorIAorICMjIE9wdGlvbmFsIGZl YXR1cmVzCisgCisgVGhlcmUgYXJlIGN1cnJlbnRseSB0aGVzZSBvcHRpb25hbCBjYXJnbyBmZWF0 dXJlczoKKyAKKyAjIyMgYHNpbWQtYWNjZWxgCisgCistRW5hYmxlcyBTSU1EIGFjY2VsZXJhdGlv biB1c2luZyB0aGUgbmlnaHRseS1kZXBlbmRlbnQgYHBhY2tlZF9zaW1kYCBjcmF0ZS4KKytFbmFi bGVzIFNJTUQgYWNjZWxlcmF0aW9uIHVzaW5nIHRoZSBuaWdodGx5LWRlcGVuZGVudCBgcG9ydGFi bGVfc2ltZGAgc3RhbmRhcmQKKytsaWJyYXJ5IGZlYXR1cmUuCisgCisgVGhpcyBpcyBhbiBvcHQt aW4gZmVhdHVyZSwgYmVjYXVzZSBlbmFibGluZyB0aGlzIGZlYXR1cmUgX29wdHMgb3V0XyBvZiBS dXN0J3MKKyBndWFyYW50ZWVzIG9mIGZ1dHVyZSBjb21waWxlcnMgY29tcGlsaW5nIG9sZCBjb2Rl IChha2EuICJzdGFiaWxpdHkgc3RvcnkiKS4KKyAKKyBDdXJyZW50bHksIHRoaXMgaGFzIG5vdCBi ZWVuIHRlc3RlZCB0byBiZSBhbiBpbXByb3ZlbWVudCBleGNlcHQgZm9yIHRoZXNlCistdGFyZ2V0 czoKKyt0YXJnZXRzIGFuZCBlbmFibGluZyB0aGUgYHNpbWQtYWNjZWxgIGZlYXR1cmUgaXMgZXhw ZWN0ZWQgdG8gYnJlYWsgdGhlIGJ1aWxkCisrb24gb3RoZXIgdGFyZ2V0czoKKyAKKyAqIHg4Nl82 NAorICogaTY4NgorICogYWFyY2g2NAorICogdGh1bWJ2N25lb24KKyAKKyBJZiB5b3UgdXNlIG5p Z2h0bHkgUnVzdCwgeW91IHVzZSB0YXJnZXRzIHdob3NlIGZpcnN0IGNvbXBvbmVudCBpcyBvbmUg b2YgdGhlCisgYWJvdmUsIGFuZCB5b3UgYXJlIHByZXBhcmVkIF90byBoYXZlIHRvIHJldmlzZSB5 b3VyIGNvbmZpZ3VyYXRpb24gd2hlbiB1cGRhdGluZworIFJ1c3RfLCB5b3Ugc2hvdWxkIGVuYWJs ZSB0aGlzIGZlYXR1cmUuIE90aGVyd2lzZSwgcGxlYXNlIF9kbyBub3RfIGVuYWJsZSB0aGlzCisg ZmVhdHVyZS4KKyAKKy1fTm90ZSFfIElmIHlvdSBhcmUgY29tcGlsaW5nIGZvciBhIHRhcmdldCB0 aGF0IGRvZXMgbm90IGhhdmUgMTI4LWJpdCBTSU1ECistZW5hYmxlZCBhcyBwYXJ0IG9mIHRoZSB0 YXJnZXQgZGVmaW5pdGlvbiBhbmQgeW91IGFyZSBlbmFibGluZyAxMjgtYml0IFNJTUQKKy11c2lu ZyBgLUMgdGFyZ2V0X2ZlYXR1cmVgLCB5b3UgbmVlZCB0byBlbmFibGUgdGhlIGBjb3JlX2FyY2hg IENhcmdvIGZlYXR1cmUKKy1mb3IgYHBhY2tlZF9zaW1kYCB0byBjb21waWxlIGEgY3JhdGVzLmlv IHNuYXBzaG90IG9mIGBjb3JlX2FyY2hgIGluc3RlYWQgb2YKKy11c2luZyB0aGUgc3RhbmRhcmQt bGlicmFyeSBjb3B5IG9mIGBjb3JlOjphcmNoYCwgYmVjYXVzZSB0aGUgYGNvcmU6OmFyY2hgCist bW9kdWxlIG9mIHRoZSBwcmUtY29tcGlsZWQgc3RhbmRhcmQgbGlicmFyeSBoYXMgYmVlbiBjb21w aWxlZCB3aXRoIHRoZQorLWFzc3VtcHRpb24gdGhhdCB0aGUgQ1BVIGRvZXNuJ3QgaGF2ZSAxMjgt Yml0IFNJTUQuIEF0IHByZXNlbnQgdGhpcyBhcHBsaWVzCistbWFpbmx5IHRvIDMyLWJpdCBBUk0g dGFyZ2V0cyB3aG9zZSBmaXJzdCBjb21wb25lbnQgZG9lcyBub3QgaW5jbHVkZSB0aGUKKy1zdWJz dHJpbmcgYG5lb25gLgorLQorLVRoZSBlbmNvZGluZ19ycyBzaWRlIG9mIHRoaW5ncyBoYXMgbm90 IGJlZW4gcHJvcGVybHkgc2V0IHVwIGZvciBQT1dFUiwKKy1Qb3dlclBDLCBNSVBTLCBldGMuLCBT SU1EIGF0IHRoaXMgdGltZSwgc28gZXZlbiBpZiB5b3Ugd2VyZSB0byBmb2xsb3cKKy10aGUgYWR2 aWNlIGZyb20gdGhlIHByZXZpb3VzIHBhcmFncmFwaCwgeW91IHByb2JhYmx5IHNob3VsZG4ndCB1 c2UKKy10aGUgYHNpbWQtYWNjZWxgIG9wdGlvbiBvbiB0aGUgbGVzcyBtYWluc3RyZWFtIGFyY2hp dGVjdHVyZXMgYXQgdGhpcworLXRpbWUuCistCisgVXNlZCBieSBGaXJlZm94LgorIAorICMjIyBg c2VyZGVgCisgCisgRW5hYmxlcyBzdXBwb3J0IGZvciBzZXJpYWxpemluZyBhbmQgZGVzZXJpYWxp emluZyBgJidzdGF0aWMgRW5jb2RpbmdgLXR5cGVkCisgc3RydWN0IGZpZWxkcyB1c2luZyBbU2Vy ZGVdWzFdLgorIAorIFsxXTogaHR0cHM6Ly9zZXJkZS5ycy8KK0BAIC0zNzYsMTggKzM2MiwxOSBA QCBJdCBpcyBhIGdvYWwgdG8gc3VwcG9ydCB0aGUgbGF0ZXN0IHN0YWJsCisgdGhlIHZlcnNpb24g b2YgUnVzdCB0aGF0J3MgdXNlZCBmb3IgRmlyZWZveCBOaWdodGx5LgorIAorIEF0IHRoaXMgdGlt ZSwgdGhlcmUgaXMgbm8gZmlybSBjb21taXRtZW50IHRvIHN1cHBvcnQgYSB2ZXJzaW9uIG9sZGVy IHRoYW4KKyB3aGF0J3MgcmVxdWlyZWQgYnkgRmlyZWZveCwgYW5kIHRoZXJlIGlzIG5vIGNvbW1p dG1lbnQgdG8gdHJlYXQgTVNSViBjaGFuZ2VzCisgYXMgc2VtdmVyLWJyZWFraW5nLCBiZWNhdXNl IHRoaXMgY3JhdGUgZGVwZW5kcyBvbiBgY2ZnLWlmYCwgd2hpY2ggZG9lc24ndAorIGFwcGVhciB0 byB0cmVhdCBNU1JWIGNoYW5nZXMgYXMgc2VtdmVyLWJyZWFraW5nLCBzbyBpdCB3b3VsZCBiZSB1 c2VsZXNzIGZvcgorIHRoaXMgY3JhdGUgdG8gdHJlYXQgTVNSViBjaGFuZ2VzIGFzIHNlbXZlci1i cmVha2luZy4KKyAKKy1BcyBvZiAyMDIxLTAyLTA0LCBNU1JWIGFwcGVhcnMgdG8gYmUgUnVzdCAx LjM2LjAgZm9yIHVzaW5nIHRoZSBjcmF0ZSBhbmQKKytBcyBvZiAyMDI0LTA0LTA0LCBNU1JWIGFw cGVhcnMgdG8gYmUgUnVzdCAxLjM2LjAgZm9yIHVzaW5nIHRoZSBjcmF0ZSBhbmQKKyAxLjQyLjAg Zm9yIGRvYyB0ZXN0cyB0byBwYXNzIHdpdGhvdXQgZXJyb3JzIGFib3V0IHRoZSBnbG9iYWwgYWxs b2NhdG9yLgorK1dpdGggdGhlIGBzaW1kLWFjY2VsYCBmZWF0dXJlLCB0aGUgTVNSViBpcyBldmVu IGhpZ2hlci4KKyAKKyAjIyBDb21wYXRpYmlsaXR5IHdpdGggcnVzdC1lbmNvZGluZworIAorIEEg Y29tcGF0aWJpbGl0eSBsYXllciB0aGF0IGltcGxlbWVudHMgdGhlIHJ1c3QtZW5jb2RpbmcgQVBJ IG9uIHRvcCBvZgorIGVuY29kaW5nX3JzIGlzCisgW3Byb3ZpZGVkIGFzIGEgc2VwYXJhdGUgY3Jh dGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19yc19jb21wYXQpCisgKGNh bm5vdCBiZSB1cGxvYWRlZCB0byBjcmF0ZXMuaW8pLiBUaGUgY29tcGF0aWJpbGl0eSBsYXllciB3 YXMgb3JpZ2luYWxseQorIHdyaXR0ZW4gd2l0aCB0aGUgYXNzdXB0aW9uIHRoYXQgRmlyZWZveCB3 b3VsZCBuZWVkIGl0LCBidXQgaXQgaXMgbm90IGN1cnJlbnRseQorQEAgLTQ0MSwyMCArNDI4LDI3 IEBAIFRvIHJlZ2VuZXJhdGUgdGhlIGdlbmVyYXRlZCBjb2RlOgorIC0gW3hdIEltcGxlbWVudCB0 aGUgcnVzdC1lbmNvZGluZyBBUEkgaW4gdGVybXMgb2YgZW5jb2RpbmdfcnMuCisgLSBbeF0gQWRk IFNJTUQgYWNjZWxlcmF0aW9uIGZvciBBYXJjaDY0LgorIC0gW3hdIEludmVzdGlnYXRlIHRoZSB1 c2Ugb2YgTkVPTiBvbiAzMi1iaXQgQVJNLgorIC0gWyBdIH5JbnZlc3RpZ2F0ZSBCasO2cm4gSMO2 aHJtYW5uJ3MgbG9va3VwIHRhYmxlIGFjY2VsZXJhdGlvbiBmb3IgVVRGLTggYXMKKyAgICAgICBh ZGFwdGVkIHRvIFJ1c3QgaW4gcnVzdC1lbmNvZGluZy5+CisgLSBbeF0gQWRkIGFjdHVhbGx5IGZh c3QgQ0pLIGVuY29kZSBvcHRpb25zLgorIC0gWyBdIH5JbnZlc3RpZ2F0ZSBbQm9iIFN0ZWFnYWxs J3MgbG9va3VwIHRhYmxlIGFjY2VsZXJhdGlvbiBmb3IgVVRGLThdKGh0dHBzOi8vZ2l0aHViLmNv bS9Cb2JTdGVhZ2FsbC9DcHBOb3cyMDE4L2Jsb2IvbWFzdGVyL0Zhc3RDb252ZXJzaW9uRnJvbVVU Ri04L0Zhc3QlMjBDb252ZXJzaW9uJTIwRnJvbSUyMFVURi04JTIwd2l0aCUyMEMlMkIlMkIlMkMl MjBERkFzJTJDJTIwYW5kJTIwU1NFJTIwSW50cmluc2ljcyUyMC0lMjBCb2IlMjBTdGVhZ2FsbCUy MC0lMjBDJTJCJTJCTm93JTIwMjAxOC5wZGYpLn4KKyAtIFt4XSBQcm92aWRlIGEgYnVpbGQgbW9k ZSB0aGF0IHdvcmtzIHdpdGhvdXQgYGFsbG9jYCAod2l0aCBsZXNzZXIgQVBJIHN1cmZhY2UpLgor LS0gWyBdIE1pZ3JhdGUgdG8gYHN0ZDo6c2ltZGAgb25jZSBpdCBpcyBzdGFibGUgYW5kIGRlY2xh cmUgMS4wLgorKy0gW3hdIE1pZ3JhdGUgdG8gYHN0ZDo6c2ltZGAgfm9uY2UgaXQgaXMgc3RhYmxl IGFuZCBkZWNsYXJlIDEuMC5+CisrLSBbIF0gTWlncmF0ZSBgdW5zYWZlYCBzbGljZSBhY2Nlc3Mg YnkgbGFyZ2VyIHR5cGVzIHRoYW4gYHU4YC9gdTE2YCB0byBgYWxpZ25fdG9gLgorIAorICMjIFJl bGVhc2UgTm90ZXMKKyAKKysjIyMgMC44LjM0CisrCisrKiBVc2UgdGhlIGBwb3J0YWJsZV9zaW1k YCBuaWdodGx5IGZlYXR1cmUgb2YgdGhlIHN0YW5kYXJkIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUg YHBhY2tlZF9zaW1kYCBjcmF0ZS4gT25seSBhZmZlY3RzIHRoZSBgc2ltZC1hY2NlbGAgb3B0aW9u YWwgbmlnaHRseSBmZWF0dXJlLgorKyogSW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVu dHMgYW5kIG1pbm9yIGNvZGUgaW1wcm92ZW1lbnRzIGFyb3VuZCBgdW5zYWZlYC4KKysqIEFkZGVk IGBydXN0LXZlcnNpb25gIHRvIGBDYXJnby50b21sYC4KKysKKyAjIyMgMC44LjMzCisgCisgKiBV c2UgYHBhY2tlZF9zaW1kYCBpbnN0ZWFkIG9mIGBwYWNrZWRfc2ltZF8yYCBhZ2FpbiBub3cgdGhh dCB1cGRhdGVzIGFyZSBiYWNrIHVuZGVyIHRoZSBgcGFja2VkX3NpbWRgIG5hbWUuIE9ubHkgYWZm ZWN0cyB0aGUgYHNpbWQtYWNjZWxgIG9wdGlvbmFsIG5pZ2h0bHkgZmVhdHVyZS4KKyAKKyAjIyMg MC44LjMyCisgCisgKiBSZW1vdmVkIGBidWlsZC5yc2AuIChUaGlzIHJlbW92YWwgc2hvdWxkIHJl c29sdmUgZmFsc2UgcG9zaXRpdmVzIHJlcG9ydGVkIGJ5IHNvbWUgYW50aXZpcnVzIHByb2R1Y3Rz LiBUaGlzIG1heSBicmVhayBzb21lIGJ1aWxkIGNvbmZpZ3VyYXRpb25zIHRoYXQgaGF2ZSBvcHRl ZCBvdXQgb2YgUnVzdCdzIGd1YXJhbnRlZXMgYWdhaW5zdCBmdXR1cmUgYnVpbGQgYnJlYWthZ2Uu KQorICogSW50ZXJuYWwgY2hhbmdlIHRvIHdoYXQgQVBJIGlzIHVzZWQgZm9yIHJlaW50ZXJwcmV0 aW5nIHRoZSBsYW5lIGNvbmZpZ3VyYXRpb24gb2YgU0lNRCB2ZWN0b3JzLgorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL2FzY2lpLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9zcmMvYXNjaWkucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5j b2RpbmdfcnMvc3JjL2FzY2lpLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9hc2NpaS5ycworQEAgLTQ2LDcxICs0Niw4NyBAQCBjZmdfaWYhIHsKKyAgICAgICAgICNb YWxsb3coZGVhZF9jb2RlKV0KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBm biBsaWtlbHkoYjogYm9vbCkgLT4gYm9vbCB7CisgICAgICAgICAgICAgYgorICAgICAgICAgfQor ICAgICB9CisgfQorIAorKy8vIFNhZmV0eSBpbnZhcmlhbnRzIGZvciBtYXNrczogZGF0YSAmIG1h c2sgPSAwIGZvciB2YWxpZCBBU0NJSSBvciBiYXNpYyBsYXRpbiB1dGYtMTYKKysKKyAvLyBgYXNg IHRydW5jYXRlcywgc28gd29ya3Mgb24gMzItYml0LCB0b28uCisgI1thbGxvdyhkZWFkX2NvZGUp XQorIHB1YiBjb25zdCBBU0NJSV9NQVNLOiB1c2l6ZSA9IDB4ODA4MF84MDgwXzgwODBfODA4MHU2 NCBhcyB1c2l6ZTsKKyAKKyAvLyBgYXNgIHRydW5jYXRlcywgc28gd29ya3Mgb24gMzItYml0LCB0 b28uCisgI1thbGxvdyhkZWFkX2NvZGUpXQorIHB1YiBjb25zdCBCQVNJQ19MQVRJTl9NQVNLOiB1 c2l6ZSA9IDB4RkY4MF9GRjgwX0ZGODBfRkY4MHU2NCBhcyB1c2l6ZTsKKyAKKyAjW2FsbG93KHVu dXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBhc2NpaV9uYWl2ZSB7CisgICAgICgkbmFtZTpp ZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3VuaXQ6dHkpID0+IHsKKysgICAgICAgIC8vLyBTYWZl dHk6IHNyYyBhbmQgZHN0IG11c3QgaGF2ZSBsZW5fdW5pdCBlbGVtZW50cyBhbmQgYmUgYWxpZ25l ZAorKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBTb21l KCkgd2hlbiBpdCBmYWlscworKyAgICAgICAgLy8vIHRvIGNvbnZlcnQuIFRoZSBmaXJzdCB2YWx1 ZSB3aWxsIGJlIGEgdTggdGhhdCBpcyA+IDEyNy4KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyld CisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0 ICRzcmNfdW5pdCwKKyAgICAgICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAg ICAgIGxlbjogdXNpemUsCisgICAgICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+ IHsKKyAgICAgICAgICAgICAvLyBZZXMsIG1hbnVhbGx5IG9taXR0aW5nIHRoZSBib3VuZCBjaGVj ayBoZXJlIG1hdHRlcnMKKyAgICAgICAgICAgICAvLyBhIGxvdCBmb3IgcGVyZi4KKyAgICAgICAg ICAgICBmb3IgaSBpbiAwLi5sZW4geworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGxlbiBp bnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNy Yy5hZGQoaSkpOworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFVwaG9sZHMgc2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgICAgICBpZiBjb2RlX3VuaXQgPiAxMjcg eworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgaSkpOworICAg ICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVuIGludmFyaWFu dCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgKihkc3QuYWRkKGkpKSA9IGNvZGVfdW5pdCBh cyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHJldHVybiBOb25lOwor ICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1h Y3JvX3J1bGVzISBhc2NpaV9hbHUgeworICAgICAoJG5hbWU6aWRlbnQsCisrICAgICAvLyBzYWZl dHkgaW52YXJpYW50OiBzcmMvZHN0IE1VU1QgYmUgdTgKKyAgICAgICRzcmNfdW5pdDp0eSwKKyAg ICAgICRkc3RfdW5pdDp0eSwKKysgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHN0cmlkZV9mbiBt dXN0IGNvbnN1bWUgYW5kIHByb2R1Y2UgdHdvIHVzaXplcywgYW5kIHJldHVybiB0aGUgaW5kZXgg b2YgdGhlIGZpcnN0IG5vbi1hc2NpaSB3aGVuIGl0IGZhaWxzCisgICAgICAkc3RyaWRlX2ZuOmlk ZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGhhdmUgbGVu IGVsZW1lbnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBpcyB2YWxpZCBmb3IKKysgICAg ICAgIC8vLyB3cml0ZQorKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxs IHJldHVybiBTb21lKCkgd2hlbiBpdCBmYWlscworKyAgICAgICAgLy8vIHRvIGNvbnZlcnQuIFRo ZSBmaXJzdCB2YWx1ZSB3aWxsIGJlIGEgdTggdGhhdCBpcyA+IDEyNy4KKyAgICAgICAgICNbY2Zn X2F0dHIoZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLCBhbGxvdyhuZXZlcl9sb29wLCBjYXN0X3B0 cl9hbGlnbm1lbnQpKV0KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIg dW5zYWZlIGZuICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKKyAg ICAgICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAgIGxlbjogdXNpemUs CisgICAgICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKKyAgICAgICAgICAg ICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKyAgICAgICAgICAgICAvLyBUaGlzIGxvb3AgaXMg b25seSBicm9rZW4gb3V0IG9mIGFzIGEgYGdvdG9gIGZvcndhcmQKKyAgICAgICAgICAgICBsb29w IHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1bnRpbF9hbGlnbm1lbnQgYmVjb21lcyB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHdlIG5lZWQgdG8gbXVuY2ggdW50aWwgd2UgYXJlIGFsaWduZWQg dG8gdXNpemUKKyAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSB7Cisg ICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgb3RoZXIgdW5pdCBhbGlnbnMgaWYg d2UgbW92ZSB0aGUgbmFycm93ZXIgdW5pdAorICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYWxp Z25tZW50LgorICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICBpZiA6OmNvcmU6 Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKSA9PSA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRk c3RfdW5pdD4oKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBhc2NpaV90b19hc2NpaQorICAg ICAgICAgICAgICAgICAgICAgbGV0IHNyY19hbGlnbm1lbnQgPSAoc3JjIGFzIHVzaXplKSAmIEFM VV9BTElHTk1FTlRfTUFTSzsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBkc3RfYWxpZ25tZW50 ID0gKGRzdCBhcyB1c2l6ZSkgJiBBTFVfQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAg ICAgICBpZiBzcmNfYWxpZ25tZW50ICE9IGRzdF9hbGlnbm1lbnQgeworKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogYmFpbHMgZWFybHkgYW5kIGVuZHMgdXAgaW4gdGhlIG5hw692 ZSBicmFuY2ggd2hlcmUgdXNpemUtYWxpZ25tZW50IGRvZXNuJ3QgbWF0dGVyCisgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICAoQUxVX0FMSUdOTUVOVCAtIHNyY19hbGlnbm1lbnQpICYgQUxVX0FMSUdOTUVO VF9NQVNLCisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgIH0gZWxzZSBpZiA6 OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKSA8IDo6Y29yZTo6bWVtOjpzaXplX29m Ojo8JGRzdF91bml0PigpIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFzY2lpX3RvX2Jhc2lj X2xhdGluCisgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICBsZXQgc3Jj X3VudGlsX2FsaWdubWVudCA9IChBTElHTk1FTlQgLSAoKHNyYyBhcyB1c2l6ZSkgJiBBTElHTk1F TlRfTUFTSykpICYgQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAgICAgICAvLyAgICAg ICAgICAgICAgICAgICBpZiAoZHN0LmFkZChzcmNfdW50aWxfYWxpZ25tZW50KSBhcyB1c2l6ZSkg JiBBTElHTk1FTlRfTUFTSyAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsKK0BAIC0xMjksNzQgKzE0NSwxMDQgQEAgbWFjcm9fcnVsZXMh IGFzY2lpX2FsdSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBNb3ZpbmcgcG9pbnRlcnMgdG8g YWxpZ25tZW50IHNlZW1zIHRvIGJlIGEgcGVzc2ltaXphdGlvbiBvbgorICAgICAgICAgICAgICAg ICAgICAgLy8geDg2XzY0IGZvciBvcGVyYXRpb25zIHRoYXQgaGF2ZSBVVEYtMTYgYXMgdGhlIGlu dGVybmFsCisgICAgICAgICAgICAgICAgICAgICAvLyBVbmljb2RlIHJlcHJlc2VudGF0aW9uLiBI b3dldmVyLCBzaW5jZSBpdCBzZWVtcyB0byBiZSBhIHdpbgorICAgICAgICAgICAgICAgICAgICAg Ly8gb24gQVJNICh0ZXN0ZWQgQVJNdjcgY29kZSBydW5uaW5nIG9uIEFSTXY4IFtycGkzXSksIGV4 Y2VwdAorICAgICAgICAgICAgICAgICAgICAgLy8gbWl4ZWQgcmVzdWx0cyB3aGVuIGVuY29kaW5n IGZyb20gVVRGLTE2IGFuZCBzaW5jZSB4ODYgYW5kCisgICAgICAgICAgICAgICAgICAgICAvLyB4 ODZfNjQgc2hvdWxkIGJlIHVzaW5nIFNTRTIgaW4gZHVlIGNvdXJzZSwga2VlcGluZyB0aGUgbW92 ZQorICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYWxpZ25tZW50IGhlcmUuIEl0IHdvdWxkIGJl IGdvb2QgdG8gdGVzdCBvbiBtb3JlIEFSTSBDUFVzCisgICAgICAgICAgICAgICAgICAgICAvLyBh bmQgb24gcmVhbCBNSVBTIGFuZCBQT1dFUiBoYXJkd2FyZS4KKysgICAgICAgICAgICAgICAgICAg IC8vCisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBj b2RlIG9uY2UgYWdhaW4sIGZvciBgdW50aWxfYWxpZ25tZW50YCBieXRlcworICAgICAgICAgICAg ICAgICAgICAgd2hpbGUgdW50aWxfYWxpZ25tZW50ICE9IDAgeworICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBVcGhvbGRzIHNhZmV0eS11c2FibGUgaW52YXJpYW50IGhlcmUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0 KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg ICooZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyBj b3BpZWQgc28gZmFyCisgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7CisgICAg ICAgICAgICAgICAgICAgICAgICAgdW50aWxfYWxpZ25tZW50IC09IDE7CisgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxl biAtIEFMVV9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbnVtX2FzY2lpIGlzIGtub3duIHRvIGJlIGEg Ynl0ZSBpbmRleCBvZiBhIG5vbi1hc2NpaSBieXRlIGR1ZSB0byBzdHJpZGVfZm4ncyBpbnZhcmlh bnQKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShudW1fYXNjaWkpID0gJHN0 cmlkZV9mbigKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGVzZSBh cmUga25vd24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2luY2Ugd2UgaGF2ZSBhdAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVfU1RSSURFX1NJWkUgZGF0YSBpbiB0 aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNvIGZhciwgd2hpY2ggYWNjb3JkaW5n IHRvIHRoZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1bnRpbF9hbGlnbm1lbnQg Y2FsY3VsYXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNyYyBhbmQgZHN0IHRvIGJlCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQgdG8gdXNpemUgYWZ0ZXIgdGhpcyBh ZGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFkZChvZmZzZXQpIGFzICpjb25z dCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0LmFkZChvZmZzZXQpIGFz ICptdXQgdXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgKSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBudW1fYXNjaWk7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGludmFyaWFudCBoZXJl IGJ5IGluZGV4aW5nIGludG8gbm9uLWFzY2lpIGJ5dGUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKCooc3JjLmFkZChvZmZzZXQpKSwgb2Zmc2V0KSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog b2Zmc2V0IGNvbnRpbnVlcyB0byBiZSB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIs IGFuZAorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1haW50YWlucyB1c2l6ZSBhbGlnbm1l bnQgZm9yIHRoZSBuZXh0IGxvb3AgaXRlcmF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IEFMVV9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZS4gVGhpcyBsb29wIHdpbGwgY29u dGludWUgYXMgbG9uZyBhcworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBvZmZzZXQgPD0g bGVuIC0gc3RyaWRlYCwgd2hpY2ggbWVhbnMgdGhlcmUgYXJlIGBzdHJpZGVgIGJ5dGVzIHRvIHN0 aWxsIGJlIHJlYWQuCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21p bnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisrCisrICAg ICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIHRoZSBuYcOvdmUgY29kZSwgc2FtZSBhcyBhc2Np aV9uYWl2ZSwgYW5kIGhhcyBubyByZXF1aXJlbWVudHMKKysgICAgICAgICAgICAvLyBvdGhlciB0 aGFuIHNyYy9kc3QgYmVpbmcgdmFsaWQgZm9yIHRoZSB0aGUgcmlnaHQgbGVucworICAgICAgICAg ICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbGVu IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICoo c3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsK KysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHktdXNhYmxlIGlu dmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0 LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgICooZHN0LmFkZChv ZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNl dCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9Cisg ICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGJh c2ljX2xhdGluX2FsdSB7CisgICAgICgkbmFtZTppZGVudCwKKysgICAgLy8gc2FmZXR5IGludmFy aWFudDogdXNlIHU4IGZvciBzcmMvZGVzdCBmb3IgYXNjaWksIGFuZCB1MTYgZm9yIGJhc2ljX2xh dGluCisgICAgICAkc3JjX3VuaXQ6dHksCisgICAgICAkZHN0X3VuaXQ6dHksCisrICAgIC8vIHNh ZmV0eSBpbnZhcmlhbnQ6IHN0cmlkZSBmdW5jdGlvbiBtdXN0IG11bmNoIEFMVV9TVFJJREVfU0la RSpzaXplKHNyY191bml0KSBieXRlcyBvZmYgb2Ygc3JjIGFuZAorKyAgICAvLyB3cml0ZSBBTFVf U1RSSURFX1NJWkUqc2l6ZShkc3RfdW5pdCkgYnl0ZXMgdG8gZHN0CisgICAgICAkc3RyaWRlX2Zu OmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGhhdmUg bGVuIGVsZW1lbnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBpcyB2YWxpZCBmb3IKKysg ICAgICAgIC8vLyB3cml0ZQorKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3 aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBmYWlscworKyAgICAgICAgLy8vIHRvIGNvbnZlcnQu IFRoZSBmaXJzdCB2YWx1ZSB3aWxsIGJlIGEgdTggdGhhdCBpcyA+IDEyNy4KKyAgICAgICAgICNb Y2ZnX2F0dHIoCisgICAgICAgICAgICAgZmVhdHVyZSA9ICJjYXJnby1jbGlwcHkiLAorICAgICAg ICAgICAgIGFsbG93KG5ldmVyX2xvb3AsIGNhc3RfcHRyX2FsaWdubWVudCwgY2FzdF9sb3NzbGVz cykKKyAgICAgICAgICldCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHVi IHVuc2FmZSBmbiAkbmFtZSgKKyAgICAgICAgICAgICBzcmM6ICpjb25zdCAkc3JjX3VuaXQsCisg ICAgICAgICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKKyAgICAgICAgICAgICBsZW46IHVzaXpl LAorICAgICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNpemUpPiB7CisgICAgICAgICAg ICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisgICAgICAgICAgICAgLy8gVGhpcyBsb29wIGlz IG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGBnb3RvYCBmb3J3YXJkCisgICAgICAgICAgICAgbG9v cCB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdW50aWxfYWxpZ25tZW50IGJlY29tZXMg dGhlIG51bWJlciBvZiBieXRlcyB3ZSBuZWVkIHRvIG11bmNoIGZyb20gc3JjL2Rlc3QgdW50aWwg d2UgYXJlIGFsaWduZWQgdG8gdXNpemUKKysgICAgICAgICAgICAgICAgLy8gV2UgZW5zdXJlIGJh c2ljLWxhdGluIGhhcyB0aGUgc2FtZSBhbGlnbm1lbnQgYXMgYXNjaWksIHN0YXJ0aW5nIHdpdGgg YXNjaWkgc2luY2UgaXQgaXMgc21hbGxlci4KKyAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRp bF9hbGlnbm1lbnQgPSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgb3Ro ZXIgdW5pdCBhbGlnbnMgaWYgd2UgbW92ZSB0aGUgbmFycm93ZXIgdW5pdAorICAgICAgICAgICAg ICAgICAgICAgLy8gdG8gYWxpZ25tZW50LgorICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAg ICAgICAgICBpZiA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKSA9PSA6OmNvcmU6 Om1lbTo6c2l6ZV9vZjo6PCRkc3RfdW5pdD4oKSB7CisgICAgICAgICAgICAgICAgICAgICAvLyBh c2NpaV90b19hc2NpaQorICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAg bGV0IHNyY19hbGlnbm1lbnQgPSAoc3JjIGFzIHVzaXplKSAmIEFMSUdOTUVOVF9NQVNLOworICAg ICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgbGV0IGRzdF9hbGlnbm1lbnQg PSAoZHN0IGFzIHVzaXplKSAmIEFMSUdOTUVOVF9NQVNLOworICAgICAgICAgICAgICAgICAgICAg Ly8gICAgICAgICAgICAgICAgICAgaWYgc3JjX2FsaWdubWVudCAhPSBkc3RfYWxpZ25tZW50IHsK K0BAIC0yMzIsNjYgKzI3OCw4OSBAQCBtYWNyb19ydWxlcyEgYmFzaWNfbGF0aW5fYWx1IHsKKyAg ICAgICAgICAgICAgICAgICAgIC8vIE1vdmluZyBwb2ludGVycyB0byBhbGlnbm1lbnQgc2VlbXMg dG8gYmUgYSBwZXNzaW1pemF0aW9uIG9uCisgICAgICAgICAgICAgICAgICAgICAvLyB4ODZfNjQg Zm9yIG9wZXJhdGlvbnMgdGhhdCBoYXZlIFVURi0xNiBhcyB0aGUgaW50ZXJuYWwKKyAgICAgICAg ICAgICAgICAgICAgIC8vIFVuaWNvZGUgcmVwcmVzZW50YXRpb24uIEhvd2V2ZXIsIHNpbmNlIGl0 IHNlZW1zIHRvIGJlIGEgd2luCisgICAgICAgICAgICAgICAgICAgICAvLyBvbiBBUk0gKHRlc3Rl ZCBBUk12NyBjb2RlIHJ1bm5pbmcgb24gQVJNdjggW3JwaTNdKSwgZXhjZXB0CisgICAgICAgICAg ICAgICAgICAgICAvLyBtaXhlZCByZXN1bHRzIHdoZW4gZW5jb2RpbmcgZnJvbSBVVEYtMTYgYW5k IHNpbmNlIHg4NiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIC8vIHg4Nl82NCBzaG91bGQgYmUg dXNpbmcgU1NFMiBpbiBkdWUgY291cnNlLCBrZWVwaW5nIHRoZSBtb3ZlCisgICAgICAgICAgICAg ICAgICAgICAvLyB0byBhbGlnbm1lbnQgaGVyZS4gSXQgd291bGQgYmUgZ29vZCB0byB0ZXN0IG9u IG1vcmUgQVJNIENQVXMKKyAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBvbiByZWFsIE1JUFMg YW5kIFBPV0VSIGhhcmR3YXJlLgorKyAgICAgICAgICAgICAgICAgICAgLy8KKysgICAgICAgICAg ICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2Fpbiwg Zm9yIGB1bnRpbF9hbGlnbm1lbnRgIGJ5dGVzCisgICAgICAgICAgICAgICAgICAgICB3aGlsZSB1 bnRpbF9hbGlnbm1lbnQgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVf dW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBj b2RlX3VuaXQgPiAxMjcgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgKihkc3QuYWRkKG9mZnNl dCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKysgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGllZCBzbyBmYXIKKyAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gQUxVX1NUUklERV9T SVpFOworICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgISRzdHJpZGVfZm4oCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhlc2UgYXJlIGtub3duIHRvIGJlIHZhbGlkIGFuZCBhbGlnbmVkIHNpbmNlIHdlIGhhdmUg YXQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGVhc3QgQUxVX1NUUklERV9TSVpF IGRhdGEgaW4gdGhlc2UgYnVmZmVycywgYW5kIG9mZnNldCBpcyB0aGUKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gbnVtYmVyIG9mIGVsZW1lbnRzIGNvcGllZCBzbyBmYXIsIHdoaWNo IGFjY29yZGluZyB0byB0aGUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdW50aWxf YWxpZ25tZW50IGNhbGN1bGF0aW9uIGFib3ZlIHdpbGwgY2F1c2UgYm90aCBzcmMgYW5kIGRzdCB0 byBiZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbmVkIHRvIHVzaXplIGFm dGVyIHRoaXMgYWRkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYy5hZGQob2Zmc2V0 KSBhcyAqY29uc3QgdXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRzdC5hZGQo b2Zmc2V0KSBhcyAqbXV0IHVzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICkgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvZmZzZXQgY29udGludWVz IHRvIGJlIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIHNvIGZhciwgYW5kCisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gbWFpbnRhaW5zIHVzaXplIGFsaWdubWVudCBmb3IgdGhlIG5leHQg bG9vcCBpdGVyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gQUxVX1NU UklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBg b2Zmc2V0ID4gbGVuIC0gc3RyaWRlLiBUaGlzIGxvb3Agd2lsbCBjb250aW51ZSBhcyBsb25nIGFz CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gYG9mZnNldCA8PSBsZW4gLSBzdHJpZGVgLCB3 aGljaCBtZWFucyB0aGVyZSBhcmUgYHN0cmlkZWAgYnl0ZXMgdG8gc3RpbGwgYmUgcmVhZC4KKyAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvLyBTYWZldHk6 IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdhaW4sIGZvciBsZWZ0b3ZlciBieXRlcwor ICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogbGVuIGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVf dW5pdCA9ICooc3JjLmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0 ID4gMTI3IHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVXBob2xkcyBzYWZldHkt dXNhYmxlIGludmFyaWFudCBoZXJlCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgo Y29kZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IGxlbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgICAgICoo ZHN0LmFkZChvZmZzZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAg ICAgIG9mZnNldCArPSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAg ICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9f cnVsZXMhIGxhdGluMV9hbHUgeworKyAgICAvLyBzYWZldHkgaW52YXJpYW50OiBzdHJpZGUgZnVu Y3Rpb24gbXVzdCBtdW5jaCBBTFVfU1RSSURFX1NJWkUqc2l6ZShzcmNfdW5pdCkgYnl0ZXMgb2Zm IG9mIHNyYyBhbmQKKysgICAgLy8gd3JpdGUgQUxVX1NUUklERV9TSVpFKnNpemUoZHN0X3VuaXQp IGJ5dGVzIHRvIGRzdAorICAgICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRzdF91bml0 OnR5LCAkc3RyaWRlX2ZuOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5k IGRzdCBtdXN0IGhhdmUgbGVuIGVsZW1lbnRzLCBzcmMgaXMgdmFsaWQgZm9yIHJlYWQsIGRzdCBp cyB2YWxpZCBmb3IKKysgICAgICAgIC8vLyB3cml0ZQorICAgICAgICAgI1tjZmdfYXR0cigKKyAg ICAgICAgICAgICBmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsCisgICAgICAgICAgICAgYWxsb3co bmV2ZXJfbG9vcCwgY2FzdF9wdHJfYWxpZ25tZW50LCBjYXN0X2xvc3NsZXNzKQorICAgICAgICAg KV0KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRu YW1lKHNyYzogKmNvbnN0ICRzcmNfdW5pdCwgZHN0OiAqbXV0ICRkc3RfdW5pdCwgbGVuOiB1c2l6 ZSkgeworICAgICAgICAgICAgIGxldCBtdXQgb2Zmc2V0ID0gMHVzaXplOworICAgICAgICAgICAg IC8vIFRoaXMgbG9vcCBpcyBvbmx5IGJyb2tlbiBvdXQgb2YgYXMgYSBgZ290b2AgZm9yd2FyZAor ICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVudGlsX2Fs aWdubWVudCBiZWNvbWVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgbmVlZCB0byBtdW5jaCBmcm9t IHNyYy9kZXN0IHVudGlsIHdlIGFyZSBhbGlnbmVkIHRvIHVzaXplCisrICAgICAgICAgICAgICAg IC8vIFdlIGVuc3VyZSB0aGUgVVRGLTE2IHNpZGUgaGFzIHRoZSBzYW1lIGFsaWdubWVudCBhcyB0 aGUgTGF0aW4tMSBzaWRlLCBzdGFydGluZyB3aXRoIExhdGluLTEgc2luY2UgaXQgaXMgc21hbGxl ci4KKyAgICAgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSB7CisgICAgICAg ICAgICAgICAgICAgICBpZiA6OmNvcmU6Om1lbTo6c2l6ZV9vZjo6PCRzcmNfdW5pdD4oKSA8IDo6 Y29yZTo6bWVtOjpzaXplX29mOjo8JGRzdF91bml0PigpIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAvLyB1bnBhY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3JjX3VudGlsX2Fs aWdubWVudCA9IChBTFVfQUxJR05NRU5UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0g KChzcmMgYXMgdXNpemUpICYgQUxVX0FMSUdOTUVOVF9NQVNLKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJiBBTFVfQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKGRzdC53cmFwcGluZ19hZGQoc3JjX3VudGlsX2FsaWdubWVudCkgYXMgdXNpemUpICYg QUxVX0FMSUdOTUVOVF9NQVNLCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICE9IDAKK0BA IC0zMDgsMzczICszNzcsNDg1IEBAIG1hY3JvX3J1bGVzISBsYXRpbjFfYWx1IHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIGRzdF91bnRpbF9hbGlnbm1lbnQKKyAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAg aWYgdW50aWxfYWxpZ25tZW50ICsgQUxVX1NUUklERV9TSVpFIDw9IGxlbiB7CisrICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgdGhlIG5hw692ZSBjb2RlIG9uY2UgYWdhaW4s IGZvciBgdW50aWxfYWxpZ25tZW50YCBieXRlcworICAgICAgICAgICAgICAgICAgICAgd2hpbGUg dW50aWxfYWxpZ25tZW50ICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2Rl X3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgKihk c3QuYWRkKG9mZnNldCkpID0gY29kZV91bml0IGFzICRkc3RfdW5pdDsKKysgICAgICAgICAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBpcyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGNvcGll ZCBzbyBmYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKKyAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0g QUxVX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisgICAgICAgICAg ICAgICAgICAgICAgICAgJHN0cmlkZV9mbigKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiBUaGVzZSBhcmUga25vd24gdG8gYmUgdmFsaWQgYW5kIGFsaWduZWQgc2luY2Ug d2UgaGF2ZSBhdAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZWFzdCBBTFVfU1RS SURFX1NJWkUgZGF0YSBpbiB0aGVzZSBidWZmZXJzLCBhbmQgb2Zmc2V0IGlzIHRoZQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBudW1iZXIgb2YgZWxlbWVudHMgY29waWVkIHNvIGZh ciwgd2hpY2ggYWNjb3JkaW5nIHRvIHRoZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB1bnRpbF9hbGlnbm1lbnQgY2FsY3VsYXRpb24gYWJvdmUgd2lsbCBjYXVzZSBib3RoIHNyYyBh bmQgZHN0IHRvIGJlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsaWduZWQgdG8g dXNpemUgYWZ0ZXIgdGhpcyBhZGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjLmFk ZChvZmZzZXQpIGFzICpjb25zdCB1c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZHN0LmFkZChvZmZzZXQpIGFzICptdXQgdXNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9mZnNldCBjb250aW51ZXMg dG8gYmUgdGhlIG51bWJlciBvZiBieXRlcyBjb3BpZWQgc28gZmFyLCBhbmQKKysgICAgICAgICAg ICAgICAgICAgICAgICAvLyBtYWludGFpbnMgdXNpemUgYWxpZ25tZW50IGZvciB0aGUgbmV4dCBs b29wIGl0ZXJhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBBTFVfU1RS SURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBv ZmZzZXQgPiBsZW4gLSBzdHJpZGUuIFRoaXMgbG9vcCB3aWxsIGNvbnRpbnVlIGFzIGxvbmcgYXMK KysgICAgICAgICAgICAgICAgICAgICAgICAvLyBgb2Zmc2V0IDw9IGxlbiAtIHN0cmlkZWAsIHdo aWNoIG1lYW5zIHRoZXJlIGFyZSBgc3RyaWRlYCBieXRlcyB0byBzdGlsbCBiZSByZWFkLgorICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8vIFNhZmV0eTog VGhpcyBpcyB0aGUgbmHDr3ZlIGNvZGUgb25jZSBhZ2FpbiwgZm9yIGxlZnRvdmVyIGJ5dGVzCisg ICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBsZW4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICAgICBsZXQgY29kZV91 bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zm c2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxs b3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX3NpbWRfY2hlY2tfYWxpZ24g eworICAgICAoCisgICAgICAgICAkbmFtZTppZGVudCwKKyAgICAgICAgICRzcmNfdW5pdDp0eSwK KyAgICAgICAgICRkc3RfdW5pdDp0eSwKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlv biBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGlu Zy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRz dHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0 aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxp ZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQK KyAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6 IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVuYWxpZ25lZC9hbGlnbmVkIHNyYy9kZXN0IHRo YXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5p dC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9kc3RfYWxpZ25lZDppZGVudCwKKysgICAgICAg IC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkIHNyYy9kZXN0 IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNf dW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQ6aWRlbnQKKyAg ICAgKSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0IG11c3QgYmUgdmFsaWQgZm9y IHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVpciB1bml0cy4KKysgICAgICAg IC8vLworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxsIHJldHVybiBT b21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0aCB0aGUgZmlyc3QgZWxlbWVu dCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1YXJhbnRlZWQgdG8gYmUgbm9uLUFT Q0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBvZmZzZXQgd2hlcmUgaXQgaXMg Zm91bmQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZu ICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5pdCwKKyAgICAgICAgICAg ICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAgIGxlbjogdXNpemUsCisgICAgICAg ICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKKyAgICAgICAgICAgICBsZXQgbXV0 IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sg c3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBgU0lNRF9T VFJJREVfU0laRWAgZWxlbWVudHMuCisgICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8 PSBsZW4geworICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJ TURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgIC8vIFhYWCBTaG91bGQgd2UgZmlyc3Qg cHJvY2VzcyBvbmUgc3RyaWRlIHVuY29uZGl0aW9uYWxseSBhcyB1bmFsaWduZWQgdG8KKyAgICAg ICAgICAgICAgICAgLy8gYXZvaWQgdGhlIGNvc3Qgb2YgdGhlIGJyYW5jaGluZXNzIGJlbG93IGlm IHRoZSBmaXJzdCBzdHJpZGUgZmFpbHMgYW55d2F5PworICAgICAgICAgICAgICAgICAvLyBYWFgg U2hvdWxkIHdlIGp1c3QgdXNlIHVuYWxpZ25lZCBTU0UyIGFjY2VzcyB1bmNvbmRpdGlvbmFsbHk/ IEl0IHNlZW1zIHRoYXQKKyAgICAgICAgICAgICAgICAgLy8gb24gSGFzd2VsbCwgaXQgd291bGQg bWFrZSBzZW5zZSB0byBqdXN0IHVzZSB1bmFsaWduZWQgYW5kIG5vdCBib3RoZXIKKyAgICAgICAg ICAgICAgICAgLy8gY2hlY2tpbmcuIE5lZWQgdG8gYmVuY2htYXJrIG9sZGVyIGFyY2hpdGVjdHVy ZXMgYmVmb3JlIGRlY2lkaW5nLgorICAgICAgICAgICAgICAgICBsZXQgZHN0X21hc2tlZCA9IChk c3QgYXMgdXNpemUpICYgU0lNRF9BTElHTk1FTlRfTUFTSzsKKysgICAgICAgICAgICAgICAgLy8g U2FmZXR5OiBjaGVja2luZyB3aGV0aGVyIHNyYyBpcyBhbGlnbmVkCisgICAgICAgICAgICAgICAg IGlmICgoc3JjIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spID09IDAgeworKyAgICAg ICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBDaGVja2luZyB3aGV0aGVyIGRzdCBpcyBhbGlnbmVk CisgICAgICAgICAgICAgICAgICAgICBpZiBkc3RfbWFza2VkID09IDAgeworICAgICAgICAgICAg ICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBh bmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50cworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAhJHN0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRk KG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgIHdo aWNoIG1lYW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGBTSU1EX1NUUklERV9TSVpFYCBlbGVt ZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFdlJ3JlIHZhbGlkIHRvIHJlYWQvd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50 cyBhbmQgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgYWxpZ25tZW50cworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAhJHN0cmlkZV9zcmNfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5h ZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAg d2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVs ZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNrZWQgPT0gMCB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogV2UncmUgdmFsaWQgdG8gcmVhZC93cml0ZSBTSU1EX1NUUklERV9TSVpF IGVsZW1lbnRzIGFuZCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhbGlnbm1lbnRzCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX2RzdF9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0 KSwgZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklE RV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVf U0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCB0byByZWFkL3dyaXRlIFNJTURfU1RSSURFX1NJ WkUgZWxlbWVudHMgYW5kIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGFsaWdubWVudHMKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1E X1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9T VFJJREVfU0laRWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHdoaWxlIG9m ZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogdXNlcyBsZW4gaW52YXJp YW50IGhlcmUgYW5kIGJlbG93CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSAqKHNy Yy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIGlmIGNvZGVfdW5pdCA+IDEyNyB7Cisr ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHVwaG9sZHMgc2FmZXR5LXVzYWJsZSBpbnZh cmlhbnQKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNl dCkpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZz ZXQpKSA9IGNvZGVfdW5pdCBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAgIG9mZnNldCAr PSAxOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBOb25lCisgICAgICAgICB9CisgICAg IH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lp X3NpbWRfY2hlY2tfYWxpZ25fdW5yb2xsZWQgeworICAgICAoCisgICAgICAgICAkbmFtZTppZGVu dCwKKyAgICAgICAgICRzcmNfdW5pdDp0eSwKKyAgICAgICAgICRkc3RfdW5pdDp0eSwKKysgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZCBzcmMvZGVz dCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RSSURFX1NJWkUgc3Jj X3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfYm90aF9hbGlnbmVkOmlkZW50LAorKyAg ICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkL3VuYWxp Z25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURfU1RS SURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfc3JjX2FsaWduZWQ6 aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIHVu YWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURf U1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfbmVpdGhlcl9h bGlnbmVkOmlkZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVx dWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcg MipTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkZG91YmxlX3N0 cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rp b24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZhbGlk IGZvciByZWFkaW5nL3dyaXRpbmcgMipTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2RzdF91bml0 CisgICAgICAgICAkZG91YmxlX3N0cmlkZV9zcmNfYWxpZ25lZDppZGVudAorICAgICApID0+IHsK Ky0gICAgICAgICNbaW5saW5lKGFsd2F5cyldCisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMvZHN0 IG11c3QgYmUgdmFsaWQgZm9yIHJlYWRzL3dyaXRlcyBvZiBgbGVuYCBlbGVtZW50cyBvZiB0aGVp ciB1bml0cy4KKysgICAgICAgIC8vLworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50OiB3aWxsIHJldHVybiBTb21lKCkgd2hlbiBpdCBlbmNvdW50ZXJzIG5vbi1BU0NJSSwgd2l0 aCB0aGUgZmlyc3QgZWxlbWVudCBpbiB0aGUgU29tZSBiZWluZworKyAgICAgICAgLy8vIGd1YXJh bnRlZWQgdG8gYmUgbm9uLUFTQ0lJICg+IDEyNyksIGFuZCB0aGUgc2Vjb25kIGJlaW5nIHRoZSBv ZmZzZXQgd2hlcmUgaXQgaXMgZm91bmQgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAg ICBwdWIgdW5zYWZlIGZuICRuYW1lKAorICAgICAgICAgICAgIHNyYzogKmNvbnN0ICRzcmNfdW5p dCwKKyAgICAgICAgICAgICBkc3Q6ICptdXQgJGRzdF91bml0LAorICAgICAgICAgICAgIGxlbjog dXNpemUsCisgICAgICAgICApIC0+IE9wdGlvbjwoJHNyY191bml0LCB1c2l6ZSk+IHsKKyAgICAg ICAgICAgICBsZXQgdW5pdF9zaXplID0gOjpjb3JlOjptZW06OnNpemVfb2Y6Ojwkc3JjX3VuaXQ+ KCk7CisgICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisgICAgICAgICAgICAg Ly8gVGhpcyBsb29wIGlzIG9ubHkgYnJva2VuIG91dCBvZiBhcyBhIGdvdG8gZm9yd2FyZCB3aXRo b3V0CisgICAgICAgICAgICAgLy8gYWN0dWFsbHkgbG9vcGluZworICAgICAgICAgICAgICdvdXRl cjogbG9vcCB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNj ZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IGBTSU1EX1NUUklE RV9TSVpFYCBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8 PSBsZW4geworICAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QsIHByb2Nlc3Mgb25lIHVuYWxp Z25lZAorKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGlzIHNhZmUgdG8gY2Fs bCBzaW5jZSB3ZSdyZSB2YWxpZCBmb3IgdGhpcyByZWFkL3dyaXRlCisgICAgICAgICAgICAgICAg ICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWduZWQoc3JjLCBkc3QpIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhayAnb3V0ZXI7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICBvZmZzZXQgPSBTSU1EX1NUUklERV9TSVpFOworIAorICAgICAgICAg ICAgICAgICAgICAgLy8gV2UgaGF2ZSBub3cgc2VlbiAxNiBBU0NJSSBieXRlcy4gTGV0J3MgZ3Vl c3MgdGhhdAorICAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2lsbCBiZSBlbm91Z2ggbW9y ZSB0byBqdXN0aWZ5IG1vcmUgZXhwZW5zZQorICAgICAgICAgICAgICAgICAgICAgLy8gaW4gdGhl IGNhc2Ugb2Ygbm9uLUFTQ0lJLgorICAgICAgICAgICAgICAgICAgICAgLy8gVXNlIGFsaWduZWQg cmVhZHMgZm9yIHRoZSBzYWtlIG9mIG9sZCBtaWNyb2FjaGl0ZWN0dXJlcy4KKysgICAgICAgICAg ICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgY29ycmVj dGx5IGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzcmNfdW5pdHMgdGhhdCBuZWVkIHRvIGJlIHJl YWQgYmVmb3JlIHRoZSByZW1haW5pbmcgbGlzdCBpcyBhbGlnbmVkLgorKyAgICAgICAgICAgICAg ICAgICAgLy8gVGhpcyBpcyBsZXNzIHRoYXQgU0lNRF9BTElHTk1FTlQsIHdoaWNoIGlzIGFsc28g U0lNRF9TVFJJREVfU0laRSAoYXMgZG9jdW1lbnRlZCkKKyAgICAgICAgICAgICAgICAgICAgIGxl dCB1bnRpbF9hbGlnbm1lbnQgPSAoKFNJTURfQUxJR05NRU5UCisgICAgICAgICAgICAgICAgICAg ICAgICAgLSAoKHNyYy5hZGQob2Zmc2V0KSBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNL KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAmIFNJTURfQUxJR05NRU5UX01BU0spCisgICAg ICAgICAgICAgICAgICAgICAgICAgLyB1bml0X3NpemU7CistICAgICAgICAgICAgICAgICAgICAv LyBUaGlzIGFkZGl0aW9uIHdvbid0IG92ZXJmbG93LCBiZWNhdXNlIGV2ZW4gaW4gdGhlIDMyLWJp dCBQQUUgY2FzZSB0aGUKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBhZGRp dGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBldmVuIGluIHRoZSAzMi1iaXQgUEFFIGNhc2Ug dGhlCisgICAgICAgICAgICAgICAgICAgICAvLyBhZGRyZXNzIHNwYWNlIGhvbGRzIGVub3VnaCBj b2RlIHRoYXQgdGhlIHNsaWNlIGxlbmd0aCBjYW4ndCBiZSB0aGF0CisgICAgICAgICAgICAgICAg ICAgICAvLyBjbG9zZSB0byBhZGRyZXNzIHNwYWNlIHNpemUuCisgICAgICAgICAgICAgICAgICAg ICAvLyBvZmZzZXQgbm93IGVxdWFscyBTSU1EX1NUUklERV9TSVpFLCBoZW5jZSB0aW1lcyAzIGJl bG93LgorKyAgICAgICAgICAgICAgICAgICAgLy8KKysgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0 aW5nIGF0IGxlYXN0IGAyICogU0lNRF9TVFJJREVfU0laRWAgZWxlbWVudHMgcGx1cyBgdW50aWxf YWxpZ25tZW50YC4KKysgICAgICAgICAgICAgICAgICAgIC8vIFRoZSBleHRyYSBTSU1EX1NUUklE RV9TSVpFIGluIHRoZSBjb25kaXRpb24gaXMgYmVjYXVzZSBgb2Zmc2V0YCBpcyBhbHJlYWR5IGBT SU1EX1NUUklERV9TSVpFYC4KKyAgICAgICAgICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVu dCArIChTSU1EX1NUUklERV9TSVpFICogMykgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICBpZiB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogdGhpcyBpcyBzYWZlIHRvIGNhbGwgc2luY2Ugd2UncmUgdmFsaWQgZm9y IHRoaXMgcmVhZC93cml0ZSAoYW5kIG1vcmUpLCBhbmQgZG9uJ3QgY2FyZSBhYm91dCBhbGlnbm1l bnQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGNvcHkgb3ZlciBi eXRlcyB0aGF0IGdldCBkZWNvZGVkIHR3aWNlIHNpbmNlIGl0J3Mgbm90IGluY3JlbWVudGluZyBg b2Zmc2V0YCBieSBTSU1EX1NUUklERV9TSVpFLiBUaGlzIGlzIGZpbmUuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICEkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMuYWRkKG9mZnNl dCksIGRzdC5hZGQob2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IHVudGlsX2FsaWdubWVudDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBBdCB0aGlzIHBv aW50IHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgMipTSU1EX1NUUklERV9TSVpFIGVs ZW1lbnRzCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBOb3cgYG9mZnNldGAg aXMgYWxpZ25lZCBmb3IgYHNyY2AKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21p bnVzX3N0cmlkZV90aW1lc190d28gPSBsZW4gLSAoU0lNRF9TVFJJREVfU0laRSAqIDIpOworKyAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyB3aGV0aGVyIGRzdCBpcyBh bGlnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRzdF9tYXNrZWQgPSAoZHN0LmFk ZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0s7CisgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IGJvdGggYXJlIGFsaWduZWQsIHdlIGNhbiBjYWxsIHRoZSBhbGlnbmVkIGZ1bmN0aW9uLiBXZSdy ZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIGRvdWJsZSBzdHJpZGUgZnJvbSB0aGUgaW5pdGlh bCBjb25kaXRpb24KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUg bG9vcCBicmVhayBjb25kaXRpb24gYmVsb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGxldCBTb21lKGFkdmFuY2UpID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkZG91YmxlX3N0cmlkZV9ib3RoX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3Qu YWRkKG9mZnNldCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGFkdmFuY2U7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3JjLmFkZChv ZmZzZXQpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IHVzZXMgc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgb24gYXNjaWlfdG9fYXNjaWlfc2ltZF9kb3Vi bGVfc3RyaWRlIHRvIHJldHVybgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGd1YXJhbnRlZWQgbm9uLWFzY2lpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKGNvZGVfdW5pdCwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gU0lNRF9TVFJJREVfU0laRSAqIDI7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9T SVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURF X1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5leHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIGZvciByZWFk aW5nL3dyaXRpbmcgb25lIG1vcmUsIGFuZCBjYW4gc3RpbGwgYXNzdW1lIGFsaWdubWVudAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpFIDw9 IGxlbiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9ib3Ro X2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayAnb3V0ZXI7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5 OiBvbmx5IHNyYyBpcyBhbGlnbmVkIGhlcmUuIFdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRp bmcgZG91YmxlIHN0cmlkZSBmcm9tIHRoZSBpbml0aWFsIGNvbmRpdGlvbgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSBsb29wIGJyZWFrIGNvbmRpdGlvbiBiZWxv dworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUoYWR2YW5jZSkg PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkb3VibGVfc3RyaWRlX3Ny Y19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBhZHZhbmNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBjb2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB1c2VzIHNhZmV0eS11c2FibGUgaW52YXJp YW50IG9uIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSB0byByZXR1cm4KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBndWFyYW50ZWVkIG5vbi1hc2NpaQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3Vu aXQsIG9mZnNldCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKiAy OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBv ZmZzZXQgPiBsZW4gLSAyICogU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlz IGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1EX1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBu ZXh0IHRpbWUuCisrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQg PiBsZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byB7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBXZSdyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIG9uZSBtb3JlLCBh bmQgY2FuIHN0aWxsIGFzc3VtZSBhbGlnbm1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfc3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQp LCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhayAnb3V0ZXI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gQXQgbW9zdCB0d28gaXRlcmF0aW9ucywgc28gdW5yb2xsCisgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgb2Zmc2V0ICsgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZSBjaGVjayBhYm92ZSBlbnN1cmVzIHdl J3JlIGFsbG93ZWQgdG8gcmVhZC93cml0ZSB0aGlzLCBhbmQgd2UgZG9uJ3QgdXNlIGFsaWdubWVu dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhJHN0cmlkZV9uZWl0aGVyX2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgKyBTSU1EX1NUUklERV9TSVpF IDw9IGxlbiB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRo ZSBjaGVjayBhYm92ZSBlbnN1cmVzIHdlJ3JlIGFsbG93ZWQgdG8gcmVhZC93cml0ZSB0aGlzLCBh bmQgd2UgZG9uJ3QgdXNlIGFsaWdubWVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgISRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChv ZmZzZXQpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBicmVhayAnb3V0 ZXI7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7Cisr ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogcmVsaWVzIHN0cmFpZ2h0Zm9yd2FyZGx5IG9uIHRo ZSBgbGVuYCBpbnZhcmlhbnQKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3Jj LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJl CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkg PSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsK KyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorICAgICB9Owor IH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBsYXRpbjFfc2lt ZF9jaGVja19hbGlnbiB7CisgICAgICgKKyAgICAgICAgICRuYW1lOmlkZW50LAorICAgICAgICAg JHNyY191bml0OnR5LAorICAgICAgICAgJGRzdF91bml0OnR5LAorKyAgICAgICAgLy8gU2FmZXR5 OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSBhbGlnbmVkIHNyYy9kZXN0IHRoYXQgYXJlIHZh bGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNfdW5pdC9kc3RfdW5p dAorICAgICAgICAgJHN0cmlkZV9ib3RoX2FsaWduZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZl dHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQvdW5hbGlnbmVkIHNyYy9kZXN0 IHRoYXQgYXJlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgU0lNRF9TVFJJREVfU0laRSBzcmNf dW5pdC9kc3RfdW5pdAorICAgICAgICAgJHN0cmlkZV9zcmNfYWxpZ25lZDppZGVudCwKKysgICAg ICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgdW5hbGlnbmVkL2FsaWdu ZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklE RV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkOmlk ZW50LAorKyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFs aWduZWQgc3JjL2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NU UklERV9TSVpFIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxp Z25lZDppZGVudAorKworICAgICApID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYy9kc3Qg bXVzdCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW5gIGVsZW1lbnRzIG9mIHRoZWly IHVuaXRzLgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUg Zm4gJG5hbWUoc3JjOiAqY29uc3QgJHNyY191bml0LCBkc3Q6ICptdXQgJGRzdF91bml0LCBsZW46 IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisrICAgICAg ICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciBy ZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzLgorICAg ICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAg bGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4gLSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAg ICAgICAgICAvLyBXaGV0aGVyIGRzdCBpcyBhbGlnbmVkCisgICAgICAgICAgICAgICAgIGxldCBk c3RfbWFza2VkID0gKGRzdCBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLOworKyAgICAg ICAgICAgICAgICAvLyBXaGV0aGVyIHNyYyBpcyBhbGlnbmVkCisgICAgICAgICAgICAgICAgIGlm ICgoc3JjIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01BU0spID09IDAgeworICAgICAgICAg ICAgICAgICAgICAgaWYgZHN0X21hc2tlZCA9PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAg ICBsb29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBCb3RoIHdl cmUgYWxpZ25lZCwgd2UgY2FuIHVzZSB0aGUgYWxpZ25lZCBmdW5jdGlvbgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRz dC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBT SU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIFNJTURfU1RSSURFX1NJWkVgLCB3aGljaCBtZWFucyBp biB0aGUgbmV4dCBpdGVyYXRpb24gd2UncmUgdmFsaWQgZm9yCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHJlYWRpbmcvd3JpdGluZyBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVs ZW1lbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWlu dXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBs b29wIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgd2FzIGFs aWduZWQsIGRzdCB3YXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVf c3JjX2FsaWduZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBT SU1EX1NUUklERV9TSVpFYCwgd2hpY2ggbWVhbnMgaW4gdGhlIG5leHQgaXRlcmF0aW9uIHdlJ3Jl IHZhbGlkIGZvcgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWFkaW5nL3dyaXRp bmcgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIGRzdF9tYXNr ZWQgPT0gMCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHdhcyBhbGlnbmVkLCBkc3Qgd2FzIG5vdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX2RzdF9hbGlnbmVkKHNyYy5hZGQo b2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdo aWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiB3ZSdyZSB2YWxpZCBmb3IKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGluZy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RS SURFX1NJWkUgZWxlbWVudHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNl dCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg ICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IE5laXRoZXIgd2VyZSBhbGlnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJp ZGVfbmVpdGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4g bGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNoIG1lYW5zIGluIHRoZSBuZXh0IGl0ZXJhdGlv biB3ZSdyZSB2YWxpZCBmb3IKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVhZGlu Zy93cml0aW5nIGF0IGxlYXN0IFNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMuCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hp bGUgb2Zmc2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiByZWxpZXMgc3Ry YWlnaHRmb3J3YXJkbHkgb24gdGhlIGBsZW5gIGludmFyaWFudAorICAgICAgICAgICAgICAgICBs ZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAqKGRz dC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgICAg ICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH07CisgfQor IAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGxhdGluMV9zaW1kX2No ZWNrX2FsaWduX3Vucm9sbGVkIHsKKyAgICAgKAorICAgICAgICAgJG5hbWU6aWRlbnQsCisgICAg ICAgICAkc3JjX3VuaXQ6dHksCisgICAgICAgICAkZHN0X3VuaXQ6dHksCisrICAgICAgICAvLyBT YWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJlIGFsaWduZWQgc3JjL2Rlc3QgdGhhdCBh cmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpFIHNyY191bml0L2Rz dF91bml0CisgICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZDppZGVudCwKKysgICAgICAgIC8v IFNhZmV0eTogVGhpcyBmdW5jdGlvbiBtdXN0IHJlcXVpcmUgYWxpZ25lZC91bmFsaWduZWQgc3Jj L2Rlc3QgdGhhdCBhcmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBTSU1EX1NUUklERV9TSVpF IHNyY191bml0L2RzdF91bml0CisgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkOmlkZW50LAor KyAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGZ1bmN0aW9uIG11c3QgcmVxdWlyZSB1bmFsaWduZWQv YWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJTURf U1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfZHN0X2FsaWdu ZWQ6aWRlbnQsCisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgZnVuY3Rpb24gbXVzdCByZXF1aXJl IHVuYWxpZ25lZCBzcmMvZGVzdCB0aGF0IGFyZSB2YWxpZCBmb3IgcmVhZGluZy93cml0aW5nIFNJ TURfU1RSSURFX1NJWkUgc3JjX3VuaXQvZHN0X3VuaXQKKyAgICAgICAgICRzdHJpZGVfbmVpdGhl cl9hbGlnbmVkOmlkZW50CisgICAgICkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjL2Rz dCBtdXN0IGJlIHZhbGlkIGZvciByZWFkcy93cml0ZXMgb2YgYGxlbmAgZWxlbWVudHMgb2YgdGhl aXIgdW5pdHMuCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2Fm ZSBmbiAkbmFtZShzcmM6ICpjb25zdCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxl bjogdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgdW5pdF9zaXplID0gOjpjb3JlOjptZW06OnNp emVfb2Y6Ojwkc3JjX3VuaXQ+KCk7CisgICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNp emU7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3Jl IHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYFNJTURfU1RSSURFX1NJWkVgIGVs ZW1lbnRzLgorICAgICAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGNvcnJlY3RseSBjYWxjdWxhdGVzIHRoZSBudW1i ZXIgb2Ygc3JjX3VuaXRzIHRoYXQgbmVlZCB0byBiZSByZWFkIGJlZm9yZSB0aGUgcmVtYWluaW5n IGxpc3QgaXMgYWxpZ25lZC4KKysgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBieSBkZWZpbml0 aW9uIGxlc3MgdGhhbiBTSU1EX1NUUklERV9TSVpFLgorICAgICAgICAgICAgICAgICBsZXQgbXV0 IHVudGlsX2FsaWdubWVudCA9ICgoU0lNRF9TVFJJREVfU0laRQorICAgICAgICAgICAgICAgICAg ICAgLSAoKHNyYyBhcyB1c2l6ZSkgJiBTSU1EX0FMSUdOTUVOVF9NQVNLKSkKKyAgICAgICAgICAg ICAgICAgICAgICYgU0lNRF9BTElHTk1FTlRfTUFTSykKKyAgICAgICAgICAgICAgICAgICAgIC8g dW5pdF9zaXplOworICAgICAgICAgICAgICAgICB3aGlsZSB1bnRpbF9hbGlnbm1lbnQgIT0gMCB7 CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYSBzdHJhaWdodGZvcndh cmQgY29weSwgc2luY2UgdW50aWxfYWxpZ25tZW50IGlzIDwgU0lNRF9TVFJJREVfU0laRSA8IGxl biwgdGhpcyBpcyBpbi1ib3VuZHMKKyAgICAgICAgICAgICAgICAgICAgICooZHN0LmFkZChvZmZz ZXQpKSA9ICooc3JjLmFkZChvZmZzZXQpKSBhcyAkZHN0X3VuaXQ7CisgICAgICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgIHVudGlsX2FsaWdubWVudCAt PSAxOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaGVy ZSBvZmZzZXQgd2lsbCBiZSBgdW50aWxfYWxpZ25tZW50YCwgaS5lLiBlbm91Z2ggdG8gYWxpZ24g YHNyY2AuCisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0gU0lN RF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNr IHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYDIgKiBT SU1EX1NUUklERV9TSVpFYCBlbGVtZW50cy4KKyAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsg U0lNRF9TVFJJREVfU0laRSAqIDIgPD0gbGVuIHsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBs ZW5fbWludXNfc3RyaWRlX3RpbWVzX3R3byA9IGxlbl9taW51c19zdHJpZGUgLSBTSU1EX1NUUklE RV9TSVpFOworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBhdCB0aGlzIHBvaW50IHNy YyBpcyBrbm93biB0byBiZSBhbGlnbmVkIGF0IG9mZnNldCwgZHN0IGlzIG5vdC4KKyAgICAgICAg ICAgICAgICAgICAgIGlmIChkc3QuYWRkKG9mZnNldCkgYXMgdXNpemUpICYgU0lNRF9BTElHTk1F TlRfTUFTSyA9PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBjaGVja2VkIGFsaWdubWVudCBvZiBk c3QgYWJvdmUsIHdlIGNhbiB1c2UgdGhlIGFsaWdubWVudCBmdW5jdGlvbnMuIFdlJ3JlIGFsbG93 ZWQgdG8gcmVhZC93cml0ZSAyKlNJTURfU1RSSURFX1NJWkUgZWxlbWVudHMsIHdoaWNoIHdlIGRv LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMu YWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkc3RyaWRlX2JvdGhfYWxpZ25lZChzcmMuYWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0 KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9T SVpFOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9m ZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMg aGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5l eHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21p bnVzX3N0cmlkZV90aW1lc190d28geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg ICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IHdlIGVuc3VyZWQgYWxpZ25tZW50IG9mIHNyYyBhbHJlYWR5LgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChv ZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RS SURFX1NJWkU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdHJpZGVfc3JjX2FsaWdu ZWQoc3JjLmFkZChvZmZzZXQpLCBkc3QuYWRkKG9mZnNldCkpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSAyICogU0lNRF9T VFJJREVfU0laRWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVhc3QgYDIgKiBTSU1E X1NUUklERV9TSVpFYCBlbGVtZW50cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGVfdGltZXNfdHdvIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAgd2hpY2ggbWVhbnMg d2UgYXJlIHZhbGlkIHRvIG11bmNoIFNJTURfU1RSSURFX1NJWkUgbW9yZSBlbGVtZW50cywgd2hp Y2ggd2UgZG8KKyAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0IDwgbGVuX21pbnVzX3N0cmlkZSB7 CisgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX3NyY19hbGlnbmVkKHNyYy5hZGQob2Zmc2V0 KSwgZHN0LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1E X1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIHdoaWxlIG9mZnNldCA8IGxlbiB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog dXNlcyBsZW4gaW52YXJpYW50IGhlcmUgYW5kIGJlbG93CisgICAgICAgICAgICAgICAgIGxldCBj b2RlX3VuaXQgPSAqKHNyYy5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgIC8vIE9uIHg4 Nl82NCwgdGhpcyBsb29wIGF1dG92ZWN0b3JpemVzIGJ1dCBpbiB0aGUgcGFjaworICAgICAgICAg ICAgICAgICAvLyBjYXNlIHRoZXJlIGFyZSBpbnN0cnVjdGlvbnMgd2hvc2UgcHVycG9zZSBpcyB0 byBtYWtlIHN1cmUKKyAgICAgICAgICAgICAgICAgLy8gZWFjaCB1MTYgaW4gdGhlIHZlY3RvciBp cyB0cnVuY2F0ZWQgYmVmb3JlIHBhY2tpbmcuIEhvd2V2ZXIsCisgICAgICAgICAgICAgICAgIC8v IHNpbmNlIHdlIGRvbid0IGNhcmUgYWJvdXQgc2F0dXJhdGluZyBiZWhhdmlvciBvZiBTU0UyIHBh Y2tpbmcKKyAgICAgICAgICAgICAgICAgLy8gd2hlbiB0aGUgaW5wdXQgaXNuJ3QgTGF0aW4xLCB0 aG9zZSBpbnN0cnVjdGlvbnMgYXJlIHVzZWxlc3MuCisgICAgICAgICAgICAgICAgIC8vIFVuZm9y dHVuYXRlbHksIHVzaW5nIHRoZSBgYXNzdW1lYCBpbnRyaW5zaWMgdG8gbGllIHRvIHRoZQorICAg ICAgICAgICAgICAgICAvLyBvcHRpbWl6ZXIgZG9lc24ndCBtYWtlIExMVk0gb21pdCB0aGUgdHJ1 bmN0YXRpb24gdGhhdCB3ZQorQEAgLTY4OCwxMzggKzg2OSwxODAgQEAgbWFjcm9fcnVsZXMhIGxh dGluMV9zaW1kX2NoZWNrX2FsaWduX3VucgorICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsK KyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51 c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lpX3NpbWRfdW5hbGlnbiB7CisrICAgIC8v IFNhZmV0eTogc3RyaWRlX25laXRoZXJfYWxpZ25lZCBtdXN0IGJlIGEgZnVuY3Rpb24gdGhhdCBy ZXF1aXJlcyBzcmMvZGVzdCBiZSB2YWxpZCBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRlcyBmb3Ig U0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBvZiB0eXBlIHNyY191bml0L2Rlc3RfdW5pdAorICAg ICAoJG5hbWU6aWRlbnQsICRzcmNfdW5pdDp0eSwgJGRzdF91bml0OnR5LCAkc3RyaWRlX25laXRo ZXJfYWxpZ25lZDppZGVudCkgPT4geworKyAgICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3Qg bXVzdCBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGxlbiBlbGVtZW50cyBvZiB0eXBlIHNy Y191bml0L2RzdF91bml0CisrICAgICAgICAvLy8KKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxl IGludmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVND SUksIHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKKysgICAgICAgIC8v LyBndWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWlu ZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kCisgICAgICAgICAjW2lubGluZShhbHdheXMp XQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZSgKKyAgICAgICAgICAgICBzcmM6ICpjb25z dCAkc3JjX3VuaXQsCisgICAgICAgICAgICAgZHN0OiAqbXV0ICRkc3RfdW5pdCwKKyAgICAgICAg ICAgICBsZW46IHVzaXplLAorICAgICAgICAgKSAtPiBPcHRpb248KCRzcmNfdW5pdCwgdXNpemUp PiB7CisgICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7CisrICAgICAgICAgICAg Ly8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZhbGlkIGZvciByZWFkaW5n L3dyaXRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMuCisgICAgICAgICAgICAgaWYgU0lN RF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0 cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAgICAgICAgIGxvb3Agewor KyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBrbm93IHdlJ3JlIHZhbGlkIGZvciBg c3RyaWRlYCByZWFkcy93cml0ZXMsIHNvIHdlIGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24uIFdlIGRv bid0IG5lZWQgYWxpZ25tZW50LgorICAgICAgICAgICAgICAgICAgICAgaWYgISRzdHJpZGVfbmVp dGhlcl9hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSwgZHN0LmFkZChvZmZzZXQpKSB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgICAgICBvZmZzZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAg ICAgICAgIC8vIFRoaXMgaXMgYG9mZnNldCA+IGxlbiAtIHN0cmlkZWAgd2hpY2ggbWVhbnMgd2Ug YWx3YXlzIGhhdmUgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1l LgorICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zm c2V0IDwgbGVuIHsKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBVc2VzIGxlbiBpbnZhcmlh bnQgaGVyZSBhbmQgYmVsb3cKKyAgICAgICAgICAgICAgICAgbGV0IGNvZGVfdW5pdCA9ICooc3Jj LmFkZChvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJl CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAqKGRzdC5hZGQob2Zmc2V0KSkg PSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsK KyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorICAgICB9Owor IH0KKyAKKyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBsYXRpbjFfc2lt ZF91bmFsaWduIHsKKysgICAgLy8gU2FmZXR5OiBzdHJpZGVfbmVpdGhlcl9hbGlnbmVkIG11c3Qg YmUgYSBmdW5jdGlvbiB0aGF0IHJlcXVpcmVzIHNyYy9kZXN0IGJlIHZhbGlkIGZvciB1bmFsaWdu ZWQgcmVhZHMvd3JpdGVzIGZvciBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzIG9mIHR5cGUgc3Jj X3VuaXQvZGVzdF91bml0CisgICAgICgkbmFtZTppZGVudCwgJHNyY191bml0OnR5LCAkZHN0X3Vu aXQ6dHksICRzdHJpZGVfbmVpdGhlcl9hbGlnbmVkOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8g U2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZvciB1bmFsaWduZWQgcmVhZHMvd3Jp dGVzIG9mIGxlbiBlbGVtZW50cyBvZiB0eXBlIHNyY191bml0L2RzdF91bml0CisgICAgICAgICAj W2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25z dCAkc3JjX3VuaXQsIGRzdDogKm11dCAkZHN0X3VuaXQsIGxlbjogdXNpemUpIHsKKyAgICAgICAg ICAgICBsZXQgbXV0IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGlm IHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcvd3JpdGluZyBhdCBs ZWFzdCBgc3RyaWRlYCBlbGVtZW50cy4KKyAgICAgICAgICAgICBpZiBTSU1EX1NUUklERV9TSVpF IDw9IGxlbiB7CisgICAgICAgICAgICAgICAgIGxldCBsZW5fbWludXNfc3RyaWRlID0gbGVuIC0g U0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgICAgICAgICAgbG9vcCB7CisrICAgICAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IFdlIGtub3cgd2UncmUgdmFsaWQgZm9yIGBzdHJpZGVgIHJlYWRz L3dyaXRlcywgc28gd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbi4gV2UgZG9uJ3QgbmVlZCBhbGln bm1lbnQuCisgICAgICAgICAgICAgICAgICAgICAkc3RyaWRlX25laXRoZXJfYWxpZ25lZChzcmMu YWRkKG9mZnNldCksIGRzdC5hZGQob2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICBvZmZz ZXQgKz0gU0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg YG9mZnNldCA+IGxlbiAtIHN0cmlkZWAgd2hpY2ggbWVhbnMgd2UgYWx3YXlzIGhhdmUgYXQgbGVh c3QgYHN0cmlkZWAgZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAg ICAgICAgaWYgb2Zmc2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiBVc2VzIGxlbiBpbnZhcmlhbnQgaGVyZQorICAgICAgICAg ICAgICAgICBsZXQgY29kZV91bml0ID0gKihzcmMuYWRkKG9mZnNldCkpOworICAgICAgICAgICAg ICAgICAqKGRzdC5hZGQob2Zmc2V0KSkgPSBjb2RlX3VuaXQgYXMgJGRzdF91bml0OworICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAg IH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9fcnVsZXMhIGFzY2lp X3RvX2FzY2lpX3NpbWRfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3JlIG11c3Qg YmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1bmFsaWdu ZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxpZ25lZClg IGZ1bmN0aW9ucykKKyAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3JlOmlkZW50 KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZhbGlkIGZv ciAxNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bworKyAgICAgICAgLy8vIHRoZSAk bG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRzL3dyaXRl cyBvciByZXF1aXJlCisrICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4 eDE2LgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNhZmUgZm4g JG5hbWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1OCkgLT4gYm9vbCB7CisgICAgICAgICAg ICAgbGV0IHNpbWQgPSAkbG9hZChzcmMpOworICAgICAgICAgICAgIGlmICFzaW1kX2lzX2FzY2lp KHNpbWQpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAkc3RvcmUoZHN0LCBzaW1kKTsKKyAgICAgICAgICAgICB0cnVlCisgICAg ICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFjcm9f cnVsZXMhIGFzY2lpX3RvX2FzY2lpX3NpbWRfZG91YmxlX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0 eTogc3RvcmUgbXVzdCBiZSB2YWxpZCBmb3IgMzIgYnl0ZXMgb2Ygd3JpdGUsIHdoaWNoIG1heSBi ZSB1bmFsaWduZWQgKGNhbmRpZGF0ZXM6IGBzdG9yZSg4fDE2KV8oYWxpZ25lZHx1bmFsaWduZWQp YCkKKyAgICAgKCRuYW1lOmlkZW50LCAkc3RvcmU6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBT YWZldHk6IHNyYyBtdXN0IGJlIHZhbGlkIGZvciAzMiBieXRlcyBvZiBhbGlnbmVkIHU4eDE2IHJl YWQKKysgICAgICAgIC8vLyBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMzIgYnl0ZXMgb2YgdW5hbGln bmVkIHdyaXRlIGFjY29yZGluZyB0bworKyAgICAgICAgLy8vIHRoZSAkc3RvcmUgZm4sIHdoaWNo IG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHdyaXRlcyBvciByZXF1aXJlCisrICAgICAgICAvLy8g YWxpZ25tZW50IHRvIGVpdGhlciAxNng4IG9yIHU4eDE2LgorKyAgICAgICAgLy8vCisrICAgICAg ICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IFJldHVybnMgU29tZShpbmRleCkgaWYgdGhl IGVsZW1lbnQgYXQgYGluZGV4YCBpcyBpbnZhbGlkIEFTQ0lJCisgICAgICAgICAjW2lubGluZShh bHdheXMpXQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0 OiAqbXV0IHU4KSAtPiBPcHRpb248dXNpemU+IHsKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSBs b2FkMTZfYWxpZ25lZChzcmMpOworICAgICAgICAgICAgIGxldCBzZWNvbmQgPSBsb2FkMTZfYWxp Z25lZChzcmMuYWRkKFNJTURfU1RSSURFX1NJWkUpKTsKKyAgICAgICAgICAgICAkc3RvcmUoZHN0 LCBmaXJzdCk7CisgICAgICAgICAgICAgaWYgdW5saWtlbHkoIXNpbWRfaXNfYXNjaWkoZmlyc3Qg fCBzZWNvbmQpKSB7CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogbWFza19hc2NpaSBwcm9k dWNlcyBhIG1hc2sgb2YgYWxsIHRoZSBoaWdoIGJpdHMuCisgICAgICAgICAgICAgICAgIGxldCBt YXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJzdCk7CisgICAgICAgICAgICAgICAgIGlmIG1hc2tf Zmlyc3QgIT0gMCB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBl bmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcworKyAg ICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBmaXJzdCBub24tYXNjaWksIGkuZS4gdmFs aWQgZm9yIGluZGV4aW5nIHNyYworKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyBTQUZFVFk6 IFdoYXQgYWJvdXQgYmlnLWVuZGlhbiBzeXN0ZW1zPworICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIFNvbWUobWFza19maXJzdC50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplKTsKKyAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9T SVpFKSwgc2Vjb25kKTsKKyAgICAgICAgICAgICAgICAgbGV0IG1hc2tfc2Vjb25kID0gbWFza19h c2NpaShzZWNvbmQpOworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG9uIGxpdHRsZSBlbmRp YW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2NpaSBieXRlcworKyAgICAg ICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZpcnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3Ig aW5kZXhpbmcgc3JjCisgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKFNJTURfU1RSSURFX1NJ WkUgKyBtYXNrX3NlY29uZC50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplKTsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoU0lNRF9TVFJJREVfU0laRSksIHNlY29u ZCk7CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorICAgICB9OworIH0KKyAKKyAjW2Fs bG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBhc2NpaV90b19iYXNpY19sYXRpbl9z aW1kX3N0cmlkZSB7CisrICAgIC8vIFNhZmV0eTogbG9hZC9zdG9yZSBtdXN0IGJlIHZhbGlkIGZv ciAxNiBieXRlcyBvZiByZWFkL3dyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkLiAoY2FuZGlk YXRlczogYChsb2FkfHN0b3JlKSgxNnw4KV8odW5hbGlnbmVkfGFsaWduZWQpYCBmdW5jdGlvbnMp CisgICAgICgkbmFtZTppZGVudCwgJGxvYWQ6aWRlbnQsICRzdG9yZTppZGVudCkgPT4geworKyAg ICAgICAgLy8vIFNhZmV0eTogc3JjIGFuZCBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMTYvMzIgYnl0 ZXMgb2YgcmVhZC93cml0ZSBhY2NvcmRpbmcgdG8KKysgICAgICAgIC8vLyB0aGUgJGxvYWQvJHN0 b3JlIGZuLCB3aGljaCBtYXkgYWxsb3cgZm9yIHVuYWxpZ25lZCByZWFkcy93cml0ZXMgb3IgcmVx dWlyZQorKyAgICAgICAgLy8vIGFsaWdubWVudCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KKyAg ICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgdW5zYWZlIGZuICRuYW1lKHNy YzogKmNvbnN0IHU4LCBkc3Q6ICptdXQgdTE2KSAtPiBib29sIHsKKyAgICAgICAgICAgICBsZXQg c2ltZCA9ICRsb2FkKHNyYyk7CisgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYXNjaWkoc2ltZCkg eworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIGxldCAoZmlyc3QsIHNlY29uZCkgPSBzaW1kX3VucGFjayhzaW1kKTsKKyAgICAgICAg ICAgICAkc3RvcmUoZHN0LCBmaXJzdCk7CisgICAgICAgICAgICAgJHN0b3JlKGRzdC5hZGQoOCks IHNlY29uZCk7CisgICAgICAgICAgICAgdHJ1ZQorICAgICAgICAgfQorICAgICB9OworIH0KKyAK KyAjW2FsbG93KHVudXNlZF9tYWNyb3MpXQorIG1hY3JvX3J1bGVzISBhc2NpaV90b19iYXNpY19s YXRpbl9zaW1kX2RvdWJsZV9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IHN0b3JlIG11c3QgYmUg dmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHdyaXRlLCB3aGljaCBtYXkgYmUgdW5hbGlnbmVkCisgICAg ICgkbmFtZTppZGVudCwgJHN0b3JlOmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBz cmMgbXVzdCBiZSB2YWxpZCBmb3IgMipTSU1EX1NUUklERV9TSVpFIGJ5dGVzIG9mIGFsaWduZWQg cmVhZHMsCisrICAgICAgICAvLy8gYWxpZ25lZCB0byBlaXRoZXIgMTZ4OCBvciB1OHgxNi4KKysg ICAgICAgIC8vLyBkc3QgbXVzdCBiZSB2YWxpZCBmb3IgMipTSU1EX1NUUklERV9TSVpFIGJ5dGVz IG9mIGFsaWduZWQgb3IgdW5hbGlnbmVkIHJlYWRzCisgICAgICAgICAjW2lubGluZShhbHdheXMp XQorICAgICAgICAgcHViIHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1OCwgZHN0OiAqbXV0 IHUxNikgLT4gT3B0aW9uPHVzaXplPiB7CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0gbG9hZDE2 X2FsaWduZWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kID0gbG9hZDE2X2FsaWduZWQo c3JjLmFkZChTSU1EX1NUUklERV9TSVpFKSk7CisgICAgICAgICAgICAgbGV0IChhLCBiKSA9IHNp bWRfdW5wYWNrKGZpcnN0KTsKKyAgICAgICAgICAgICAkc3RvcmUoZHN0LCBhKTsKKysgICAgICAg ICAgICAvLyBTYWZldHk6IGRpdmlkZSBieSAyIHNpbmNlIGl0J3MgYSB1MTYgcG9pbnRlcgorICAg ICAgICAgICAgICRzdG9yZShkc3QuYWRkKFNJTURfU1RSSURFX1NJWkUgLyAyKSwgYik7CisgICAg ICAgICAgICAgaWYgdW5saWtlbHkoIXNpbWRfaXNfYXNjaWkoZmlyc3QgfCBzZWNvbmQpKSB7Cisg ICAgICAgICAgICAgICAgIGxldCBtYXNrX2ZpcnN0ID0gbWFza19hc2NpaShmaXJzdCk7CisgICAg ICAgICAgICAgICAgIGlmIG1hc2tfZmlyc3QgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gU29tZShtYXNrX2ZpcnN0LnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemUpOworICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIGxldCAoYywgZCkgPSBzaW1kX3VucGFjayhz ZWNvbmQpOworICAgICAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9TSVpF KSwgYyk7CitAQCAtODMyLDQ3ICsxMDU1LDU5IEBAIG1hY3JvX3J1bGVzISBhc2NpaV90b19iYXNp Y19sYXRpbl9zaW1kX2QKKyAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZChTSU1EX1NUUklERV9T SVpFICsgKFNJTURfU1RSSURFX1NJWkUgLyAyKSksIGQpOworICAgICAgICAgICAgIE5vbmUKKyAg ICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNy b19ydWxlcyEgdW5wYWNrX3NpbWRfc3RyaWRlIHsKKysgICAgLy8gU2FmZXR5OiBsb2FkL3N0b3Jl IG11c3QgYmUgdmFsaWQgZm9yIDE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUsIHdoaWNoIG1heSBiZSB1 bmFsaWduZWQuIChjYW5kaWRhdGVzOiBgKGxvYWR8c3RvcmUpKDE2fDgpXyh1bmFsaWduZWR8YWxp Z25lZClgIGZ1bmN0aW9ucykKKyAgICAgKCRuYW1lOmlkZW50LCAkbG9hZDppZGVudCwgJHN0b3Jl OmlkZW50KSA9PiB7CisrICAgICAgICAvLy8gU2FmZXR5OiBzcmMgYW5kIGRzdCBtdXN0IGJlIHZh bGlkIGZvciAxNiBieXRlcyBvZiByZWFkL3dyaXRlIGFjY29yZGluZyB0bworKyAgICAgICAgLy8v IHRoZSAkbG9hZC8kc3RvcmUgZm4sIHdoaWNoIG1heSBhbGxvdyBmb3IgdW5hbGlnbmVkIHJlYWRz L3dyaXRlcyBvciByZXF1aXJlCisrICAgICAgICAvLy8gYWxpZ25tZW50IHRvIGVpdGhlciAxNng4 IG9yIHU4eDE2LgorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiB1bnNh ZmUgZm4gJG5hbWUoc3JjOiAqY29uc3QgdTgsIGRzdDogKm11dCB1MTYpIHsKKyAgICAgICAgICAg ICBsZXQgc2ltZCA9ICRsb2FkKHNyYyk7CisgICAgICAgICAgICAgbGV0IChmaXJzdCwgc2Vjb25k KSA9IHNpbWRfdW5wYWNrKHNpbWQpOworICAgICAgICAgICAgICRzdG9yZShkc3QsIGZpcnN0KTsK KyAgICAgICAgICAgICAkc3RvcmUoZHN0LmFkZCg4KSwgc2Vjb25kKTsKKyAgICAgICAgIH0KKyAg ICAgfTsKKyB9CisgCisgI1thbGxvdyh1bnVzZWRfbWFjcm9zKV0KKyBtYWNyb19ydWxlcyEgYmFz aWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3Rv cmUgbXVzdCBiZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJl IHVuYWxpZ25lZC4gKGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxh bGlnbmVkKWAgZnVuY3Rpb25zKQorICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3Rv cmU6aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUg dmFsaWQgZm9yIDMyLzE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAg ICAvLy8gdGhlICRsb2FkLyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQg cmVhZHMvd3JpdGVzIG9yIHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVy IDE2eDggb3IgdTh4MTYuCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHVi IHVuc2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1MTYsIGRzdDogKm11dCB1OCkgLT4gYm9vbCB7 CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0gJGxvYWQoc3JjKTsKKyAgICAgICAgICAgICBsZXQg c2Vjb25kID0gJGxvYWQoc3JjLmFkZCg4KSk7CisgICAgICAgICAgICAgaWYgc2ltZF9pc19iYXNp Y19sYXRpbihmaXJzdCB8IHNlY29uZCkgeworICAgICAgICAgICAgICAgICAkc3RvcmUoZHN0LCBz aW1kX3BhY2soZmlyc3QsIHNlY29uZCkpOworICAgICAgICAgICAgICAgICB0cnVlCisgICAgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgICAgICB9Cisg ICAgICAgICB9CisgICAgIH07CisgfQorIAorICNbYWxsb3codW51c2VkX21hY3JvcyldCisgbWFj cm9fcnVsZXMhIHBhY2tfc2ltZF9zdHJpZGUgeworKyAgICAvLyBTYWZldHk6IGxvYWQvc3RvcmUg bXVzdCBiZSB2YWxpZCBmb3IgMTYgYnl0ZXMgb2YgcmVhZC93cml0ZSwgd2hpY2ggbWF5IGJlIHVu YWxpZ25lZC4gKGNhbmRpZGF0ZXM6IGAobG9hZHxzdG9yZSkoMTZ8OClfKHVuYWxpZ25lZHxhbGln bmVkKWAgZnVuY3Rpb25zKQorICAgICAoJG5hbWU6aWRlbnQsICRsb2FkOmlkZW50LCAkc3RvcmU6 aWRlbnQpID0+IHsKKysgICAgICAgIC8vLyBTYWZldHk6IHNyYyBhbmQgZHN0IG11c3QgYmUgdmFs aWQgZm9yIDMyLzE2IGJ5dGVzIG9mIHJlYWQvd3JpdGUgYWNjb3JkaW5nIHRvCisrICAgICAgICAv Ly8gdGhlICRsb2FkLyRzdG9yZSBmbiwgd2hpY2ggbWF5IGFsbG93IGZvciB1bmFsaWduZWQgcmVh ZHMvd3JpdGVzIG9yIHJlcXVpcmUKKysgICAgICAgIC8vLyBhbGlnbm1lbnQgdG8gZWl0aGVyIDE2 eDggb3IgdTh4MTYuCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIHVu c2FmZSBmbiAkbmFtZShzcmM6ICpjb25zdCB1MTYsIGRzdDogKm11dCB1OCkgeworICAgICAgICAg ICAgIGxldCBmaXJzdCA9ICRsb2FkKHNyYyk7CisgICAgICAgICAgICAgbGV0IHNlY29uZCA9ICRs b2FkKHNyYy5hZGQoOCkpOworICAgICAgICAgICAgICRzdG9yZShkc3QsIHNpbWRfcGFjayhmaXJz dCwgc2Vjb25kKSk7CisgICAgICAgICB9CisgICAgIH07CisgfQorQEAgLTg4OCwyNCArMTEyMywy OCBAQCBjZmdfaWYhIHsKKyAvLyAgICAgICAgcHViIGNvbnN0IEFMSUdOTUVOVDogdXNpemUgPSA4 OworIAorICAgICAgICAgcHViIGNvbnN0IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKKyAK KyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6ZSA9IDg7CisgCisgICAgICAg ICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDc7CisgCisrICAgICAgICAv LyBTYWZldHkgZm9yIHN0cmlkZSBtYWNyb3M6IFdlIHN0aWNrIHRvIHRoZSBsb2FkOF9hbGlnbmVk L2V0YyBmYW1pbHkgb2YgZnVuY3Rpb25zLiBXZSBjb25zaXN0ZW50bHkgcHJvZHVjZQorKyAgICAg ICAgLy8gbmVpdGhlcl91bmFsaWduZWQgdmFyaWFudHMgdXNpbmcgb25seSB1bmFsaWduZWQgaW5w dXRzLgorICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lp X3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGln bmVkKTsKKyAKKyAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfc3RyaWRlIShhc2Np aV90b19iYXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVk LCBzdG9yZThfdW5hbGlnbmVkKTsKKyAgICAgICAgIHVucGFja19zaW1kX3N0cmlkZSEodW5wYWNr X3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0b3JlOF91bmFsaWdu ZWQpOworIAorICAgICAgICAgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGJhc2lj X2xhdGluX3RvX2FzY2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwg c3RvcmUxNl91bmFsaWduZWQpOworICAgICAgICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJp ZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsK KyAKKysgICAgICAgIC8vIFNhZmV0eSBmb3IgY29udmVyc2lvbiBtYWNyb3M6IFdlIHVzZSB0aGUg dW5hbGlnbiBtYWNybyB3aXRoIHVuYWxpZ24gZnVuY3Rpb25zIGFib3ZlLiBBbGwgc3RyaWRlIGZ1 bmN0aW9ucyB3ZXJlIHByb2R1Y2VkCisrICAgICAgICAvLyBieSBzdHJpZGUgbWFjcm9zIHRoYXQg dW5pdmVyc2FsbHkgbXVuY2ggYSBzaW5nbGUgU0lNRF9TVFJJREVfU0laRSB3b3J0aCBvZiBlbGVt ZW50cy4KKyAgICAgICAgIGFzY2lpX3NpbWRfdW5hbGlnbiEoYXNjaWlfdG9fYXNjaWksIHU4LCB1 OCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBhc2Np aV9zaW1kX3VuYWxpZ24hKGFzY2lpX3RvX2Jhc2ljX2xhdGluLCB1OCwgdTE2LCBhc2NpaV90b19i YXNpY19sYXRpbl9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3NpbWRf dW5hbGlnbiEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgsIGJhc2ljX2xhdGluX3RvX2Fz Y2lpX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgbGF0aW4xX3NpbWRfdW5hbGln biEodW5wYWNrX2xhdGluMSwgdTgsIHUxNiwgdW5wYWNrX3N0cmlkZV9uZWl0aGVyX2FsaWduZWQp OworICAgICAgICAgbGF0aW4xX3NpbWRfdW5hbGlnbiEocGFja19sYXRpbjEsIHUxNiwgdTgsIHBh Y2tfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwoZmVh dHVyZSA9ICJzaW1kLWFjY2VsIiwgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfZmVh dHVyZSA9ICJuZW9uIikpXSB7CisgICAgICAgICAvLyBTSU1EIHdpdGggZGlmZmVyZW50IGluc3Ry dWN0aW9ucyBmb3IgYWxpZ25lZCBhbmQgdW5hbGlnbmVkIGxvYWRzIGFuZCBzdG9yZXMuCisgICAg ICAgICAvLworQEAgLTkxNCwxNiArMTE1MywxOSBAQCBjZmdfaWYhIHsKKyAgICAgICAgIC8vIGJ1 dCB0aGUgYmVuY2htYXJrIHJlc3VsdHMgSSBzZWUgZG9uJ3QgYWdyZWUuCisgCisgICAgICAgICBw dWIgY29uc3QgU0lNRF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKKyAKKyAgICAgICAgIHB1YiBj b25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXplID0gMTY7CisgCisgICAgICAgICBwdWIgY29uc3Qg U0lNRF9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAxNTsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBm b3Igc3RyaWRlIG1hY3JvczogV2Ugc3RpY2sgdG8gdGhlIGxvYWQ4X2FsaWduZWQvZXRjIGZhbWls eSBvZiBmdW5jdGlvbnMuIFdlIGNvbnNpc3RlbnRseSBuYW1lCisrICAgICAgICAvLyBhbGlnbmVk L3VuYWxpZ25lZCBmdW5jdGlvbnMgYWNjb3JkaW5nIHRvIHNyYy9kc3QgYmVpbmcgYWxpZ25lZC91 bmFsaWduZWQKKysKKyAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90 b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmUxNl9hbGln bmVkKTsKKyAgICAgICAgIGFzY2lpX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShhc2NpaV90b19hc2Np aV9zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7 CisgICAgICAgICBhc2NpaV90b19hc2NpaV9zaW1kX3N0cmlkZSEoYXNjaWlfdG9fYXNjaWlfc3Ry aWRlX2RzdF9hbGlnbmVkLCBsb2FkMTZfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAg ICAgICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9u ZWl0aGVyX2FsaWduZWQsIGxvYWQxNl91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAK KyAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3NpbWRfc3RyaWRlIShhc2NpaV90b19iYXNp Y19sYXRpbl9zdHJpZGVfYm90aF9hbGlnbmVkLCBsb2FkMTZfYWxpZ25lZCwgc3RvcmU4X2FsaWdu ZWQpOworICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFzY2lpX3Rv X2Jhc2ljX2xhdGluX3N0cmlkZV9zcmNfYWxpZ25lZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlOF91 bmFsaWduZWQpOworICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9zdHJpZGUhKGFz Y2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9kc3RfYWxpZ25lZCwgbG9hZDE2X3VuYWxpZ25lZCwg c3RvcmU4X2FsaWduZWQpOworQEAgLTkzOSwzNiArMTE4MSw0MyBAQCBjZmdfaWYhIHsKKyAgICAg ICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90b19hc2Np aV9zdHJpZGVfZHN0X2FsaWduZWQsIGxvYWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsK KyAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90 b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZf dW5hbGlnbmVkKTsKKyAKKyAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX2Jv dGhfYWxpZ25lZCwgbG9hZDhfYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAgICAgICAgIHBh Y2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX3NyY19hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBz dG9yZTE2X3VuYWxpZ25lZCk7CisgICAgICAgICBwYWNrX3NpbWRfc3RyaWRlIShwYWNrX3N0cmlk ZV9kc3RfYWxpZ25lZCwgbG9hZDhfdW5hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAg ICAgcGFja19zaW1kX3N0cmlkZSEocGFja19zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBsb2FkOF91 bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBmb3Ig Y29udmVyc2lvbiBtYWNyb3M6IFdlIHVzZSB0aGUgY29ycmVjdCBwYXR0ZXJuIG9mIGJvdGgvc3Jj L2RzdC9uZWl0aGVyIGhlcmUuIEFsbCBzdHJpZGUgZnVuY3Rpb25zIHdlcmUgcHJvZHVjZWQKKysg ICAgICAgIC8vIGJ5IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2ZXJzYWxseSBtdW5jaCBhIHNpbmds ZSBTSU1EX1NUUklERV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRzLgorKworICAgICAgICAgYXNjaWlf c2ltZF9jaGVja19hbGlnbiEoYXNjaWlfdG9fYXNjaWksIHU4LCB1OCwgYXNjaWlfdG9fYXNjaWlf c3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBh c2NpaV90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9u ZWl0aGVyX2FsaWduZWQpOworICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19hbGlnbiEoYXNjaWlf dG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9ib3Ro X2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9zcmNfYWxpZ25lZCwgYXNjaWlf dG9fYmFzaWNfbGF0aW5fc3RyaWRlX2RzdF9hbGlnbmVkLCBhc2NpaV90b19iYXNpY19sYXRpbl9z dHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGFzY2lpX3NpbWRfY2hlY2tfYWxpZ24h KGJhc2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJp ZGVfYm90aF9hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQs IGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxpZ25lZCwgYmFzaWNfbGF0aW5fdG9f YXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgICAgICBsYXRpbjFfc2ltZF9jaGVj a19hbGlnbiEodW5wYWNrX2xhdGluMSwgdTgsIHUxNiwgdW5wYWNrX3N0cmlkZV9ib3RoX2FsaWdu ZWQsIHVucGFja19zdHJpZGVfc3JjX2FsaWduZWQsIHVucGFja19zdHJpZGVfZHN0X2FsaWduZWQs IHVucGFja19zdHJpZGVfbmVpdGhlcl9hbGlnbmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1kX2No ZWNrX2FsaWduIShwYWNrX2xhdGluMSwgdTE2LCB1OCwgcGFja19zdHJpZGVfYm90aF9hbGlnbmVk LCBwYWNrX3N0cmlkZV9zcmNfYWxpZ25lZCwgcGFja19zdHJpZGVfZHN0X2FsaWduZWQsIHBhY2tf c3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwoZmVhdHVy ZSA9ICJzaW1kLWFjY2VsIiwgdGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpKV0geworICAgICAgICAg Ly8gU0lNRCB3aXRoIGRpZmZlcmVudCBpbnN0cnVjdGlvbnMgZm9yIGFsaWduZWQgYW5kIHVuYWxp Z25lZCBsb2FkcyBhbmQgc3RvcmVzLgorICAgICAgICAgLy8KKyAgICAgICAgIC8vIE5ld2VyIG1p Y3JvYXJjaGl0ZWN0dXJlcyBhcmUgbm90IHN1cHBvc2VkIHRvIGhhdmUgYSBwZXJmb3JtYW5jZSBk aWZmZXJlbmNlIGJldHdlZW4KKyAgICAgICAgIC8vIGFsaWduZWQgYW5kIHVuYWxpZ25lZCBTU0Uy IGxvYWRzIGFuZCBzdG9yZXMgd2hlbiB0aGUgYWRkcmVzcyBpcyBhY3R1YWxseSBhbGlnbmVkLAor ICAgICAgICAgLy8gYnV0IHRoZSBiZW5jaG1hcmsgcmVzdWx0cyBJIHNlZSBkb24ndCBhZ3JlZS4K KyAKKyAgICAgICAgIHB1YiBjb25zdCBTSU1EX1NUUklERV9TSVpFOiB1c2l6ZSA9IDE2OworIAor KyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBUaGlzIHNob3VsZCBiZSBpZGVu dGljYWwgdG8gU0lNRF9TVFJJREVfU0laRSAodXNlZCBieSBhc2NpaV9zaW1kX2NoZWNrX2FsaWdu X3Vucm9sbGVkKQorICAgICAgICAgcHViIGNvbnN0IFNJTURfQUxJR05NRU5UOiB1c2l6ZSA9IDE2 OworIAorICAgICAgICAgcHViIGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKKyAK KyAgICAgICAgIHB1YiBjb25zdCBTSU1EX0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDE1OworIAor KyAgICAgICAgLy8gU2FmZXR5IGZvciBzdHJpZGUgbWFjcm9zOiBXZSBzdGljayB0byB0aGUgbG9h ZDhfYWxpZ25lZC9ldGMgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2UgY29uc2lzdGVudGx5IG5hbWUK KysgICAgICAgIC8vIGFsaWduZWQvdW5hbGlnbmVkIGZ1bmN0aW9ucyBhY2NvcmRpbmcgdG8gc3Jj L2RzdCBiZWluZyBhbGlnbmVkL3VuYWxpZ25lZAorKworICAgICAgICAgYXNjaWlfdG9fYXNjaWlf c2ltZF9kb3VibGVfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGVfYm90 aF9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAgYXNjaWlfdG9fYXNjaWlfc2lt ZF9kb3VibGVfc3RyaWRlIShhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJpZGVfc3JjX2Fs aWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAKKyAgICAgICAgIGFzY2lpX3RvX2Jhc2ljX2xh dGluX3NpbWRfZG91YmxlX3N0cmlkZSEoYXNjaWlfdG9fYmFzaWNfbGF0aW5fc2ltZF9kb3VibGVf c3RyaWRlX2JvdGhfYWxpZ25lZCwgc3RvcmU4X2FsaWduZWQpOworICAgICAgICAgYXNjaWlfdG9f YmFzaWNfbGF0aW5fc2ltZF9kb3VibGVfc3RyaWRlIShhc2NpaV90b19iYXNpY19sYXRpbl9zaW1k X2RvdWJsZV9zdHJpZGVfc3JjX2FsaWduZWQsIHN0b3JlOF91bmFsaWduZWQpOworIAorICAgICAg ICAgYXNjaWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9ib3Ro X2FsaWduZWQsIGxvYWQxNl9hbGlnbmVkLCBzdG9yZTE2X2FsaWduZWQpOworICAgICAgICAgYXNj aWlfdG9fYXNjaWlfc2ltZF9zdHJpZGUhKGFzY2lpX3RvX2FzY2lpX3N0cmlkZV9zcmNfYWxpZ25l ZCwgbG9hZDE2X2FsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKK0BAIC05ODQsMzMgKzEyMzMs NDMgQEAgY2ZnX2lmISB7CisgICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaV9zaW1kX3N0cmlk ZSEoYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX2JvdGhfYWxpZ25lZCwgbG9hZDhfYWxpZ25l ZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lpX3NpbWRf c3RyaWRlIShiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfc3JjX2FsaWduZWQsIGxvYWQ4X2Fs aWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAgICAgICAgIGJhc2ljX2xhdGluX3RvX2FzY2lp X3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfZHN0X2FsaWduZWQsIGxv YWQ4X3VuYWxpZ25lZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAgICAgICAgIGJhc2ljX2xhdGluX3Rv X2FzY2lpX3NpbWRfc3RyaWRlIShiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9h bGlnbmVkLCBsb2FkOF91bmFsaWduZWQsIHN0b3JlMTZfdW5hbGlnbmVkKTsKKyAKKyAgICAgICAg IHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3RyaWRlX2JvdGhfYWxpZ25lZCwgbG9hZDhfYWxpZ25l ZCwgc3RvcmUxNl9hbGlnbmVkKTsKKyAgICAgICAgIHBhY2tfc2ltZF9zdHJpZGUhKHBhY2tfc3Ry aWRlX3NyY19hbGlnbmVkLCBsb2FkOF9hbGlnbmVkLCBzdG9yZTE2X3VuYWxpZ25lZCk7CisgCisr ICAgICAgICAvLyBTYWZldHkgZm9yIGNvbnZlcnNpb24gbWFjcm9zOiBXZSB1c2UgdGhlIGNvcnJl Y3QgcGF0dGVybiBvZiBib3RoL3NyYy9kc3QvbmVpdGhlci9kb3VibGVfYm90aC9kb3VibGVfc3Jj IGhlcmUuIEFsbCBzdHJpZGUgZnVuY3Rpb25zIHdlcmUgcHJvZHVjZWQKKysgICAgICAgIC8vIGJ5 IHN0cmlkZSBtYWNyb3MgdGhhdCB1bml2ZXJzYWxseSBtdW5jaCBhIHNpbmdsZSBTSU1EX1NUUklE RV9TSVpFIHdvcnRoIG9mIGVsZW1lbnRzLgorKworICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19h bGlnbl91bnJvbGxlZCEoYXNjaWlfdG9fYXNjaWksIHU4LCB1OCwgYXNjaWlfdG9fYXNjaWlfc3Ry aWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYXNjaWlfc3RyaWRlX3NyY19hbGlnbmVkLCBhc2Np aV90b19hc2NpaV9zdHJpZGVfbmVpdGhlcl9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zaW1kX2Rv dWJsZV9zdHJpZGVfYm90aF9hbGlnbmVkLCBhc2NpaV90b19hc2NpaV9zaW1kX2RvdWJsZV9zdHJp ZGVfc3JjX2FsaWduZWQpOworICAgICAgICAgYXNjaWlfc2ltZF9jaGVja19hbGlnbl91bnJvbGxl ZCEoYXNjaWlfdG9fYmFzaWNfbGF0aW4sIHU4LCB1MTYsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0 cmlkZV9ib3RoX2FsaWduZWQsIGFzY2lpX3RvX2Jhc2ljX2xhdGluX3N0cmlkZV9zcmNfYWxpZ25l ZCwgYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX25laXRoZXJfYWxpZ25lZCwgYXNjaWlfdG9f YmFzaWNfbGF0aW5fc2ltZF9kb3VibGVfc3RyaWRlX2JvdGhfYWxpZ25lZCwgYXNjaWlfdG9fYmFz aWNfbGF0aW5fc2ltZF9kb3VibGVfc3RyaWRlX3NyY19hbGlnbmVkKTsKKyAKKyAgICAgICAgIGFz Y2lpX3NpbWRfY2hlY2tfYWxpZ24hKGJhc2ljX2xhdGluX3RvX2FzY2lpLCB1MTYsIHU4LCBiYXNp Y19sYXRpbl90b19hc2NpaV9zdHJpZGVfYm90aF9hbGlnbmVkLCBiYXNpY19sYXRpbl90b19hc2Np aV9zdHJpZGVfc3JjX2FsaWduZWQsIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9kc3RfYWxp Z25lZCwgYmFzaWNfbGF0aW5fdG9fYXNjaWlfc3RyaWRlX25laXRoZXJfYWxpZ25lZCk7CisgICAg ICAgICBsYXRpbjFfc2ltZF9jaGVja19hbGlnbl91bnJvbGxlZCEodW5wYWNrX2xhdGluMSwgdTgs IHUxNiwgdW5wYWNrX3N0cmlkZV9ib3RoX2FsaWduZWQsIHVucGFja19zdHJpZGVfc3JjX2FsaWdu ZWQsIHVucGFja19zdHJpZGVfZHN0X2FsaWduZWQsIHVucGFja19zdHJpZGVfbmVpdGhlcl9hbGln bmVkKTsKKyAgICAgICAgIGxhdGluMV9zaW1kX2NoZWNrX2FsaWduX3Vucm9sbGVkIShwYWNrX2xh dGluMSwgdTE2LCB1OCwgcGFja19zdHJpZGVfYm90aF9hbGlnbmVkLCBwYWNrX3N0cmlkZV9zcmNf YWxpZ25lZCwgcGFja19zdHJpZGVfZHN0X2FsaWduZWQsIHBhY2tfc3RyaWRlX25laXRoZXJfYWxp Z25lZCk7CisgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUi LCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpKV0geworICAgICAgICAgLy8gQWxpZ25lZCBB TFUgd29yZCwgbGl0dGxlLWVuZGlhbiwgNjQtYml0CisgCisrICAgICAgICAvLy8gU2FmZXR5IGlu dmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1bWVkIGJ5CisrICAgICAg ICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBwb2ludGVyIHdpZHRoLCBh cyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgorKyAgICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUg bnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgorKyAgICAgICAgLy8vIFRoaXMg aXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1Y2VkL2NvbnN1bWVkIGJ5 IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgcHViIGNvbnN0IEFM VV9TVFJJREVfU0laRTogdXNpemUgPSAxNjsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RS SURFX1NJWkU6IHVzaXplID0gMTY7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0 aGlzIGlzIHRoZSBwb2ludGVyIHdpZHRoIGluIGJ5dGVzCisgICAgICAgICBwdWIgY29uc3QgQUxV X0FMSUdOTUVOVDogdXNpemUgPSA4OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDog dGhpcyBpcyBhIG1hc2sgZm9yIGdldHRpbmcgdGhlIGJpdHMgb2YgYSBwb2ludGVyIG5vdCBhbGln bmVkIHRvIEFMVV9BTElHTk1FTlQKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01B U0s6IHVzaXplID0gNzsKKyAKKysgICAgICAgIC8vLyBTYWZldHk6IGRzdCBtdXN0IHBvaW50IHRv IHZhbGlkIHNwYWNlIGZvciB3cml0aW5nIGZvdXIgYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5l KGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gdW5wYWNrX2FsdSh3b3JkOiB1c2l6ZSwgc2Vj b25kX3dvcmQ6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgZmly c3QgPSAoKDB4MDAwMF8wMDAwX0ZGMDBfMDAwMHVzaXplICYgd29yZCkgPDwgMjQpIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVzaXplICYgd29yZCkg PDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwMDBfRkYw MHVzaXplICYgd29yZCkgPDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBf MDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIHdvcmQpOworICAgICAgICAgICAgIGxldCBzZWNvbmQgPSAo KDB4RkYwMF8wMDAwXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gOCkgfAorICAgICAgICAgICAg ICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gMTYp IHwKK0BAIC0xMDE5LDIyICsxMjc4LDI0IEBAIGNmZ19pZiEgeworICAgICAgICAgICAgIGxldCB0 aGlyZCA9ICgoMHgwMDAwXzAwMDBfRkYwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgMjQp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVzaXpl ICYgc2Vjb25kX3dvcmQpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw MDBfMDAwMF8wMDAwX0ZGMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA8PCA4KSB8CisgICAgICAgICAg ICAgICAgICAgICAgICAgKDB4MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgc2Vjb25kX3dvcmQp OworICAgICAgICAgICAgIGxldCBmb3VydGggPSAoKDB4RkYwMF8wMDAwXzAwMDBfMDAwMHVzaXpl ICYgc2Vjb25kX3dvcmQpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw RkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAxNikgfAorICAgICAgICAg ICAgICAgICAgICAgICAgICAoKDB4MDAwMF9GRjAwXzAwMDBfMDAwMHVzaXplICYgc2Vjb25kX3dv cmQpID4+IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZfMDAw MF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMzIpOworKyAgICAgICAgICAgIC8vIFNhZmV0 eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3QgPSBmaXJzdDsKKyAg ICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kOworICAgICAgICAgICAgICooZHN0LmFk ZCgyKSkgPSB0aGlyZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMykpID0gZm91cnRoOworICAg ICAgICAgfQorIAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQg c3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdheXMp XQorICAgICAgICAgdW5zYWZlIGZuIHBhY2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vjb25kOiB1c2l6 ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAg ICAgICAgICBsZXQgd29yZCA9ICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmQp IDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZfMDAwMF8wMDAw dXNpemUgJiBzZWNvbmQpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAw MF8wMDAwXzAwRkZfMDAwMHVzaXplICYgc2Vjb25kKSA8PCAyNCkgfAorICAgICAgICAgICAgICAg ICAgICAgICAgKCgweDAwMDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIHNlY29uZCkgPDwgMzIpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMEZGXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBm aXJzdCkgPj4gMjQpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwRkZfMDAw MF8wMDAwdXNpemUgJiBmaXJzdCkgPj4gMTYpIHwKK0BAIC0xMDQzLDcwICsxMzA0LDg4IEBAIGNm Z19pZiEgeworICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICgoMHgwMEZGXzAwMDBfMDAw MF8wMDAwdXNpemUgJiBmb3VydGgpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKDB4MDAwMF8wMEZGXzAwMDBfMDAwMHVzaXplICYgZm91cnRoKSA8PCAxNikgfAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUg JiBmb3VydGgpIDw8IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw MDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIGZvdXJ0aCkgPDwgMzIpIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAwMHVzaXplICYgdGhpcmQpID4+ IDI0KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAw XzAwMDB1c2l6ZSAmIHRoaXJkKSA+PiAxNikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgoMHgwMDAwXzAwMDBfMDBGRl8wMDAwdXNpemUgJiB0aGlyZCkgPj4gOCkgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDAwMF8wMDAwXzAwRkZ1c2l6ZSAmIHRo aXJkKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGZuIGludmFyaWFudCB1c2VkIGhlcmUKKyAg ICAgICAgICAgICAqZHN0ID0gd29yZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vj b25kX3dvcmQ7CisgICAgICAgICB9CisgICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2Vu ZGlhbiA9ICJsaXR0bGUiLCB0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpKV0geworICAgICAg ICAgLy8gQWxpZ25lZCBBTFUgd29yZCwgbGl0dGxlLWVuZGlhbiwgMzItYml0CisgCisrICAgICAg ICAvLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBpcyB0aGUgYW1vdW50IG9mIGJ5dGVzIGNvbnN1 bWVkIGJ5CisrICAgICAgICAvLy8gdW5wYWNrX2FsdS4gVGhpcyB3aWxsIGJlIHR3aWNlIHRoZSBw b2ludGVyIHdpZHRoLCBhcyBpdCBjb25zdW1lcyB0d28gdXNpemVzLgorKyAgICAgICAgLy8vIFRo aXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHByb2R1Y2VkIGJ5IHBhY2tfYWx1LgorKyAg ICAgICAgLy8vIFRoaXMgaXMgYWxzbyB0aGUgbnVtYmVyIG9mIHUxNiBjb2RlIHVuaXRzIHByb2R1 Y2VkL2NvbnN1bWVkIGJ5IHVucGFja19hbHUvcGFja19hbHUgcmVzcGVjdGl2ZWx5LgorICAgICAg ICAgcHViIGNvbnN0IEFMVV9TVFJJREVfU0laRTogdXNpemUgPSA4OworIAorICAgICAgICAgcHVi IGNvbnN0IE1BWF9TVFJJREVfU0laRTogdXNpemUgPSA4OworIAorKyAgICAgICAgLy8gU2FmZXR5 IGludmFyaWFudDogdGhpcyBpcyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcworICAgICAgICAg cHViIGNvbnN0IEFMVV9BTElHTk1FTlQ6IHVzaXplID0gNDsKKyAKKysgICAgICAgIC8vIFNhZmV0 eSBpbnZhcmlhbnQ6IHRoaXMgaXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9p bnRlciBub3QgYWxpZ25lZCB0byBBTFVfQUxJR05NRU5UCisgICAgICAgICBwdWIgY29uc3QgQUxV X0FMSUdOTUVOVF9NQVNLOiB1c2l6ZSA9IDM7CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3Qg bXVzdCBwb2ludCB0byB2YWxpZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCisgICAg ICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29y ZDogdXNpemUsIHNlY29uZF93b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisgICAgICAg ICAgICAgbGV0IGZpcnN0ID0gKCgweDAwMDBfRkYwMHVzaXplICYgd29yZCkgPDwgOCkgfAorICAg ICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgd29yZCk7CisgICAgICAg ICAgICAgbGV0IHNlY29uZCA9ICgoMHhGRjAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDgpIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYgd29yZCkgPj4gMTYp OworICAgICAgICAgICAgIGxldCB0aGlyZCA9ICgoMHgwMDAwX0ZGMDB1c2l6ZSAmIHNlY29uZF93 b3JkKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUg JiBzZWNvbmRfd29yZCk7CisgICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICgoMHhGRjAwXzAwMDB1 c2l6ZSAmIHNlY29uZF93b3JkKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgo MHgwMEZGXzAwMDB1c2l6ZSAmIHNlY29uZF93b3JkKSA+PiAxNik7CisrICAgICAgICAgICAgLy8g U2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IGZpcnN0 OworICAgICAgICAgICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmQ7CisgICAgICAgICAgICAgKihk c3QuYWRkKDIpKSA9IHRoaXJkOworICAgICAgICAgICAgICooZHN0LmFkZCgzKSkgPSBmb3VydGg7 CisgICAgICAgICB9CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2 YWxpZCBzcGFjZSBmb3Igd3JpdGluZyB0d28gYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFs d2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gcGFja19hbHUoZmlyc3Q6IHVzaXplLCBzZWNvbmQ6 IHVzaXplLCB0aGlyZDogdXNpemUsIGZvdXJ0aDogdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewor ICAgICAgICAgICAgIGxldCB3b3JkID0gKCgweDAwRkZfMDAwMHVzaXplICYgc2Vjb25kKSA8PCA4 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmQp IDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiBm aXJzdCkgPj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUg JiBmaXJzdCk7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93b3JkID0gKCgweDAwRkZfMDAwMHVz aXplICYgZm91cnRoKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwMDBfMDBGRnVzaXplICYgZm91cnRoKSA8PCAxNikgfAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHRoaXJkKSA+PiA4KSB8CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiB0aGlyZCk7CisrICAgICAg ICAgICAgLy8gU2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRz dCA9IHdvcmQ7CisgICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOworICAg ICAgICAgfQorICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRpYW4gPSAiYmlnIiwg dGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKSldIHsKKyAgICAgICAgIC8vIEFsaWduZWQgQUxV IHdvcmQsIGJpZy1lbmRpYW4sIDY0LWJpdAorIAorKyAgICAgICAgLy8vIFNhZmV0eSBpbnZhcmlh bnQ6IHRoaXMgaXMgdGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQorKyAgICAgICAgLy8v IHVucGFja19hbHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3aWR0aCwgYXMgaXQg Y29uc3VtZXMgdHdvIHVzaXplcy4KKysgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJl ciBvZiBieXRlcyBwcm9kdWNlZCBieSBwYWNrX2FsdS4KKysgICAgICAgIC8vLyBUaGlzIGlzIGFs c28gdGhlIG51bWJlciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25zdW1lZCBieSB1bnBh Y2tfYWx1L3BhY2tfYWx1IHJlc3BlY3RpdmVseS4KKyAgICAgICAgIHB1YiBjb25zdCBBTFVfU1RS SURFX1NJWkU6IHVzaXplID0gMTY7CisgCisgICAgICAgICBwdWIgY29uc3QgTUFYX1NUUklERV9T SVpFOiB1c2l6ZSA9IDE2OworIAorKyAgICAgICAgLy8gU2FmZXR5IGludmFyaWFudDogdGhpcyBp cyB0aGUgcG9pbnRlciB3aWR0aCBpbiBieXRlcworICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElH Tk1FTlQ6IHVzaXplID0gODsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMg aXMgYSBtYXNrIGZvciBnZXR0aW5nIHRoZSBiaXRzIG9mIGEgcG9pbnRlciBub3QgYWxpZ25lZCB0 byBBTFVfQUxJR05NRU5UCisgICAgICAgICBwdWIgY29uc3QgQUxVX0FMSUdOTUVOVF9NQVNLOiB1 c2l6ZSA9IDc7CisgCisrICAgICAgICAvLy8gU2FmZXR5OiBkc3QgbXVzdCBwb2ludCB0byB2YWxp ZCBzcGFjZSBmb3Igd3JpdGluZyBmb3VyIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdh eXMpXQorICAgICAgICAgdW5zYWZlIGZuIHVucGFja19hbHUod29yZDogdXNpemUsIHNlY29uZF93 b3JkOiB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7CisgICAgICAgICAgICAgbGV0IGZpcnN0ID0g KCgweEZGMDBfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDgpIHwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMF8wMDAwXzAwMDB1c2l6ZSAmIHdvcmQpID4+IDE2 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwX0ZGMDBfMDAwMF8wMDAwdXNp emUgJiB3b3JkKSA+PiAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8w MEZGXzAwMDBfMDAwMHVzaXplICYgd29yZCkgPj4gMzIpOworICAgICAgICAgICAgIGxldCBzZWNv bmQgPSAoKDB4MDAwMF8wMDAwX0ZGMDBfMDAwMHVzaXplICYgd29yZCkgPDwgMjQpIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVzaXplICYgd29yZCkg PDwgMTYpIHwKK0BAIC0xMTE1LDIyICsxMzk0LDI0IEBAIGNmZ19pZiEgeworICAgICAgICAgICAg IGxldCB0aGlyZCA9ICgoMHhGRjAwXzAwMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkg Pj4gOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDBGRl8wMDAwXzAwMDBfMDAw MHVzaXplICYgc2Vjb25kX3dvcmQpID4+IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAg ICgoMHgwMDAwX0ZGMDBfMDAwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMjQpIHwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRl8wMDAwXzAwMDB1c2l6ZSAmIHNl Y29uZF93b3JkKSA+PiAzMik7CisgICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICgoMHgwMDAwXzAw MDBfRkYwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPDwgMjQpIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAoKDB4MDAwMF8wMDAwXzAwRkZfMDAwMHVzaXplICYgc2Vjb25kX3dvcmQpIDw8 IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDAwMF8wMDAwX0ZGMDB1 c2l6ZSAmIHNlY29uZF93b3JkKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgKDB4 MDAwMF8wMDAwXzAwMDBfMDBGRnVzaXplICYgc2Vjb25kX3dvcmQpOworKyAgICAgICAgICAgIC8v IFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3QgPSBmaXJz dDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMSkpID0gc2Vjb25kOworICAgICAgICAgICAgICoo ZHN0LmFkZCgyKSkgPSB0aGlyZDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMykpID0gZm91cnRo OworICAgICAgICAgfQorIAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8g dmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGluZShh bHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHBhY2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vjb25k OiB1c2l6ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsK KyAgICAgICAgICAgICBsZXQgd29yZCA9ICgoMHgwMEZGMDAwMF8wMDAwMDAwMHVzaXplICYgZmly c3QpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDBGRl8wMDAwMDAw MHVzaXplICYgZmlyc3QpIDw8IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAoKDB4MDAw MDAwMDBfMDBGRjAwMDB1c2l6ZSAmIGZpcnN0KSA8PCAyNCkgfAorICAgICAgICAgICAgICAgICAg ICAgICAgKCgweDAwMDAwMDAwXzAwMDAwMEZGdXNpemUgJiBmaXJzdCkgPDwgMzIpIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICgoMHgwMEZGMDAwMF8wMDAwMDAwMHVzaXplICYgc2Vjb25kKSA+ PiAyNCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMEZGXzAwMDAwMDAwdXNp emUgJiBzZWNvbmQpID4+IDE2KSB8CitAQCAtMTEzOSw2NyArMTQyMCw4MCBAQCBjZmdfaWYhIHsK KyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAoKDB4MDBGRjAwMDBfMDAwMDAwMDB1c2l6 ZSAmIHRoaXJkKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw MDAwMEZGXzAwMDAwMDAwdXNpemUgJiB0aGlyZCkgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoKDB4MDAwMDAwMDBfMDBGRjAwMDB1c2l6ZSAmIHRoaXJkKSA8PCAyNCkg fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoMHgwMDAwMDAwMF8wMDAwMDBGRnVz aXplICYgdGhpcmQpIDw8IDMyKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgw eDAwRkYwMDAwXzAwMDAwMDAwdXNpemUgJiBmb3VydGgpID4+IDI0KSB8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMEZGXzAwMDAwMDAwdXNpemUgJiBmb3VydGgpID4+ IDE2KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDAwMDAwXzAwRkYw MDAwdXNpemUgJiBmb3VydGgpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoMHgwMDAwMDAwMF8wMDAwMDBGRnVzaXplICYgIGZvdXJ0aCk7CisrICAgICAgICAgICAgLy8g U2FmZXR5OiBmbiBpbnZhcmlhbnQgdXNlZCBoZXJlCisgICAgICAgICAgICAgKmRzdCA9IHdvcmQ7 CisgICAgICAgICAgICAgKihkc3QuYWRkKDEpKSA9IHNlY29uZF93b3JkOworICAgICAgICAgfQor ICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9lbmRpYW4gPSAiYmlnIiwgdGFyZ2V0X3Bv aW50ZXJfd2lkdGggPSAiMzIiKSldIHsKKyAgICAgICAgIC8vIEFsaWduZWQgQUxVIHdvcmQsIGJp Zy1lbmRpYW4sIDMyLWJpdAorIAorKyAgICAgICAgLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMg aXMgdGhlIGFtb3VudCBvZiBieXRlcyBjb25zdW1lZCBieQorKyAgICAgICAgLy8vIHVucGFja19h bHUuIFRoaXMgd2lsbCBiZSB0d2ljZSB0aGUgcG9pbnRlciB3aWR0aCwgYXMgaXQgY29uc3VtZXMg dHdvIHVzaXplcy4KKysgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51bWJlciBvZiBieXRl cyBwcm9kdWNlZCBieSBwYWNrX2FsdS4KKysgICAgICAgIC8vLyBUaGlzIGlzIGFsc28gdGhlIG51 bWJlciBvZiB1MTYgY29kZSB1bml0cyBwcm9kdWNlZC9jb25zdW1lZCBieSB1bnBhY2tfYWx1L3Bh Y2tfYWx1IHJlc3BlY3RpdmVseS4KKyAgICAgICAgIHB1YiBjb25zdCBBTFVfU1RSSURFX1NJWkU6 IHVzaXplID0gODsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBNQVhfU1RSSURFX1NJWkU6IHVzaXpl ID0gODsKKyAKKysgICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHRoaXMgaXMgdGhlIHBvaW50 ZXIgd2lkdGggaW4gYnl0ZXMKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UOiB1c2l6 ZSA9IDQ7CisgCisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50OiB0aGlzIGlzIGEgbWFzayBm b3IgZ2V0dGluZyB0aGUgYml0cyBvZiBhIHBvaW50ZXIgbm90IGFsaWduZWQgdG8gQUxVX0FMSUdO TUVOVAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAzOwor IAorKyAgICAgICAgLy8vIFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9y IHdyaXRpbmcgZm91ciBgdXNpemVgcworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAg ICAgIHVuc2FmZSBmbiB1bnBhY2tfYWx1KHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUs IGRzdDogKm11dCB1c2l6ZSkgeworICAgICAgICAgICAgIGxldCBmaXJzdCA9ICgoMHhGRjAwXzAw MDB1c2l6ZSAmIHdvcmQpID4+IDgpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAw RkZfMDAwMHVzaXplICYgd29yZCkgPj4gMTYpOworICAgICAgICAgICAgIGxldCBzZWNvbmQgPSAo KDB4MDAwMF9GRjAwdXNpemUgJiB3b3JkKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAg ICAgKDB4MDAwMF8wMEZGdXNpemUgJiB3b3JkKTsKKyAgICAgICAgICAgICBsZXQgdGhpcmQgPSAo KDB4RkYwMF8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gOCkgfAorICAgICAgICAgICAgICAg ICAgICAgICAgICAoKDB4MDBGRl8wMDAwdXNpemUgJiBzZWNvbmRfd29yZCkgPj4gMTYpOworICAg ICAgICAgICAgIGxldCBmb3VydGggPSAoKDB4MDAwMF9GRjAwdXNpemUgJiBzZWNvbmRfd29yZCkg PDwgOCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICgweDAwMDBfMDBGRnVzaXplICYgc2Vj b25kX3dvcmQpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50IHVzZWQgaGVy ZQorICAgICAgICAgICAgICpkc3QgPSBmaXJzdDsKKyAgICAgICAgICAgICAqKGRzdC5hZGQoMSkp ID0gc2Vjb25kOworICAgICAgICAgICAgICooZHN0LmFkZCgyKSkgPSB0aGlyZDsKKyAgICAgICAg ICAgICAqKGRzdC5hZGQoMykpID0gZm91cnRoOworICAgICAgICAgfQorIAorKyAgICAgICAgLy8v IFNhZmV0eTogZHN0IG11c3QgcG9pbnQgdG8gdmFsaWQgc3BhY2UgZm9yIHdyaXRpbmcgdHdvIGB1 c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHBh Y2tfYWx1KGZpcnN0OiB1c2l6ZSwgc2Vjb25kOiB1c2l6ZSwgdGhpcmQ6IHVzaXplLCBmb3VydGg6 IHVzaXplLCBkc3Q6ICptdXQgdXNpemUpIHsKKyAgICAgICAgICAgICBsZXQgd29yZCA9ICgoMHgw MEZGXzAwMDB1c2l6ZSAmIGZpcnN0KSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAo KDB4MDAwMF8wMEZGdXNpemUgJiBmaXJzdCkgPDwgMTYpIHwKKyAgICAgICAgICAgICAgICAgICAg ICAgICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHNlY29uZCkgPj4gOCkgfAorICAgICAgICAgICAgICAg ICAgICAgICAgKDB4MDAwMF8wMEZGdXNpemUgJiBzZWNvbmQpOworICAgICAgICAgICAgIGxldCBz ZWNvbmRfd29yZCA9ICgoMHgwMEZGXzAwMDB1c2l6ZSAmIHRoaXJkKSA8PCA4KSB8CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwMDBfMDBGRnVzaXplICYgdGhpcmQpIDw8IDE2 KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgweDAwRkZfMDAwMHVzaXplICYg Zm91cnRoKSA+PiA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMF8w MEZGdXNpemUgJiBmb3VydGgpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogZm4gaW52YXJpYW50 IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3QgPSB3b3JkOworICAgICAgICAgICAgICooZHN0 LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKKyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAg ICAgIGFzY2lpX25haXZlIShhc2NpaV90b19hc2NpaSwgdTgsIHU4KTsKKyAgICAgICAgIGFzY2lp X25haXZlIShhc2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNik7CisgICAgICAgICBhc2NpaV9u YWl2ZSEoYmFzaWNfbGF0aW5fdG9fYXNjaWksIHUxNiwgdTgpOworICAgICB9CisgfQorIAorIGNm Z19pZiEgeworKyAgICAvLyBTYWZldHktdXNhYmxlIGludmFyaWFudDogdGhpcyBjb3VudHMgdGhl IHplcm9lcyBmcm9tIHRoZSAiZmlyc3QgYnl0ZSIgb2YgdXRmLTggZGF0YSBwYWNrZWQgaW50byBh IHVzaXplCisrICAgIC8vIHdpdGggdGhlIHRhcmdldCBlbmRpYW5uZXNzCisgICAgIGlmICNbY2Zn KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildIHsKKyAgICAgICAgICNbYWxsb3coZGVhZF9jb2Rl KV0KKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICBmbiBjb3VudF96ZXJvcyh3 b3JkOiB1c2l6ZSkgLT4gdTMyIHsKKyAgICAgICAgICAgICB3b3JkLnRyYWlsaW5nX3plcm9zKCkK KyAgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgICAgICNbYWxsb3coZGVhZF9jb2RlKV0K K0BAIC0xMjA3LDIwOCArMTUwMSwyNzIgQEAgY2ZnX2lmISB7CisgICAgICAgICBmbiBjb3VudF96 ZXJvcyh3b3JkOiB1c2l6ZSkgLT4gdTMyIHsKKyAgICAgICAgICAgICB3b3JkLmxlYWRpbmdfemVy b3MoKQorICAgICAgICAgfQorICAgICB9CisgfQorIAorIGNmZ19pZiEgeworICAgICBpZiAjW2Nm ZyhhbGwoZmVhdHVyZSA9ICJzaW1kLWFjY2VsIiwgdGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiLCB0 YXJnZXRfYXJjaCA9ICJkaXNhYmxlZCIpKV0geworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUg aW52YXJpYW50OiBXaWxsIHJldHVybiB0aGUgdmFsdWUgYW5kIHBvc2l0aW9uIG9mIHRoZSBmaXJz dCBub24tQVNDSUkgYnl0ZSBpbiB0aGUgc2xpY2UgaW4gYSBTb21lIGlmIGZvdW5kLgorKyAgICAg ICAgLy8vIEluIG90aGVyIHdvcmRzLCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgU29tZSBpcyBh bHdheXMgYD4gMTI3YAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBm biB2YWxpZGF0ZV9hc2NpaShzbGljZTogJlt1OF0pIC0+IE9wdGlvbjwodTgsIHVzaXplKT4gewor ICAgICAgICAgICAgIGxldCBzcmMgPSBzbGljZS5hc19wdHIoKTsKKyAgICAgICAgICAgICBsZXQg bGVuID0gc2xpY2UubGVuKCk7CisgICAgICAgICAgICAgbGV0IG11dCBvZmZzZXQgPSAwdXNpemU7 CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBpZiB0aGlzIGNoZWNrIHN1Y2NlZWRzIHdlJ3JlIHZh bGlkIGZvciByZWFkaW5nL3dyaXRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVudHMuCisgICAg ICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAgICAgICAgICBs ZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkU7CisgICAgICAgICAg ICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgYXQgb2Zm c2V0IGlzIHZhbGlkIGZvciBhIGBTSU1EX1NUUklERV9TSVpFYCByZWFkCisgICAgICAgICAgICAg ICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZz ZXQpKSB9OworICAgICAgICAgICAgICAgICAgICAgaWYgIXNpbWRfaXNfYXNjaWkoc2ltZCkgewor ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkU7CisrICAgICAg ICAgICAgICAgICAgICAvLyBUaGlzIGlzIGBvZmZzZXQgPiBsZW4gLSBTSU1EX1NUUklERV9TSVpF YCB3aGljaCBtZWFucyB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAg ZWxlbWVudHMgdG8gbXVuY2ggbmV4dCB0aW1lLgorICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ID4gbGVuX21pbnVzX3N0cmlkZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDwgbGVuIHsKKyAgICAgICAgICAgICAgICAg bGV0IGNvZGVfdW5pdCA9IHNsaWNlW29mZnNldF07CisgICAgICAgICAgICAgICAgIGlmIGNvZGVf dW5pdCA+IDEyNyB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFNhZmV0eS11c2Fi bGUgaW52YXJpYW50IHVwaGVsZCBoZXJlCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29t ZSgoY29kZV91bml0LCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgTm9uZQorICAg ICAgICAgfQorICAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIs IHRhcmdldF9mZWF0dXJlID0gInNzZTIiKSldIHsKKysgICAgICAgIC8vLyBTYWZldHktdXNhYmxl IGludmFyaWFudDogd2lsbCByZXR1cm4gU29tZSgpIHdoZW4gaXQgZW5jb3VudGVycyBub24tQVND SUksIHdpdGggdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIFNvbWUgYmVpbmcKKysgICAgICAgIC8v LyBndWFyYW50ZWVkIHRvIGJlIG5vbi1BU0NJSSAoPiAxMjcpLCBhbmQgdGhlIHNlY29uZCBiZWlu ZyB0aGUgb2Zmc2V0IHdoZXJlIGl0IGlzIGZvdW5kCisgICAgICAgICAjW2lubGluZShhbHdheXMp XQorICAgICAgICAgcHViIGZuIHZhbGlkYXRlX2FzY2lpKHNsaWNlOiAmW3U4XSkgLT4gT3B0aW9u PCh1OCwgdXNpemUpPiB7CisgICAgICAgICAgICAgbGV0IHNyYyA9IHNsaWNlLmFzX3B0cigpOwor ICAgICAgICAgICAgIGxldCBsZW4gPSBzbGljZS5sZW4oKTsKKyAgICAgICAgICAgICBsZXQgbXV0 IG9mZnNldCA9IDB1c2l6ZTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hlY2sg c3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYHN0cmlkZWAgZWxlbWVu dHMuCisgICAgICAgICAgICAgaWYgU0lNRF9TVFJJREVfU0laRSA8PSBsZW4geworICAgICAgICAg ICAgICAgICAvLyBGaXJzdCwgcHJvY2VzcyBvbmUgdW5hbGlnbmVkIHZlY3RvcgorKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHNyYyBpcyB2YWxpZCBmb3IgYSBgU0lNRF9TVFJJREVfU0laRWAg cmVhZAorICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl91bmFsaWdu ZWQoc3JjKSB9OworICAgICAgICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7 CisgICAgICAgICAgICAgICAgIGlmIG1hc2sgIT0gMCB7CisgICAgICAgICAgICAgICAgICAgICBv ZmZzZXQgPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7CisgICAgICAgICAgICAgICAg ICAgICBsZXQgbm9uX2FzY2lpID0gdW5zYWZlIHsgKnNyYy5hZGQob2Zmc2V0KSB9OworICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gU0lNRF9TVFJJREVfU0laRTsK KysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBOb3cgdGhhdCBvZmZzZXQgaGFzIGNoYW5nZWQg d2UgZG9uJ3QgeWV0IGtub3cgaG93IG11Y2ggaXQgaXMgdmFsaWQgZm9yCisgCisgICAgICAgICAg ICAgICAgIC8vIFdlIGhhdmUgbm93IHNlZW4gMTYgQVNDSUkgYnl0ZXMuIExldCdzIGd1ZXNzIHRo YXQKKyAgICAgICAgICAgICAgICAgLy8gdGhlcmUgd2lsbCBiZSBlbm91Z2ggbW9yZSB0byBqdXN0 aWZ5IG1vcmUgZXhwZW5zZQorICAgICAgICAgICAgICAgICAvLyBpbiB0aGUgY2FzZSBvZiBub24t QVNDSUkuCisgICAgICAgICAgICAgICAgIC8vIFVzZSBhbGlnbmVkIHJlYWRzIGZvciB0aGUgc2Fr ZSBvZiBvbGQgbWljcm9hY2hpdGVjdHVyZXMuCisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog dGhpcyBjb3JyZWN0bHkgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIHNyY191bml0cyB0aGF0IG5l ZWQgdG8gYmUgcmVhZCBiZWZvcmUgdGhlIHJlbWFpbmluZyBsaXN0IGlzIGFsaWduZWQuCisrICAg ICAgICAgICAgICAgIC8vIFRoaXMgaXMgYnkgZGVmaW5pdGlvbiBsZXNzIHRoYW4gU0lNRF9BTElH Tk1FTlQsIHdoaWNoIGlzIGRlZmluZWQgdG8gYmUgZXF1YWwgdG8gU0lNRF9TVFJJREVfU0laRS4K KyAgICAgICAgICAgICAgICAgbGV0IHVudGlsX2FsaWdubWVudCA9IHVuc2FmZSB7IChTSU1EX0FM SUdOTUVOVCAtICgoc3JjLmFkZChvZmZzZXQpIGFzIHVzaXplKSAmIFNJTURfQUxJR05NRU5UX01B U0spKSAmIFNJTURfQUxJR05NRU5UX01BU0sgfTsKKyAgICAgICAgICAgICAgICAgLy8gVGhpcyBh ZGRpdGlvbiB3b24ndCBvdmVyZmxvdywgYmVjYXVzZSBldmVuIGluIHRoZSAzMi1iaXQgUEFFIGNh c2UgdGhlCisgICAgICAgICAgICAgICAgIC8vIGFkZHJlc3Mgc3BhY2UgaG9sZHMgZW5vdWdoIGNv ZGUgdGhhdCB0aGUgc2xpY2UgbGVuZ3RoIGNhbid0IGJlIHRoYXQKKyAgICAgICAgICAgICAgICAg Ly8gY2xvc2UgdG8gYWRkcmVzcyBzcGFjZSBzaXplLgorICAgICAgICAgICAgICAgICAvLyBvZmZz ZXQgbm93IGVxdWFscyBTSU1EX1NUUklERV9TSVpFLCBoZW5jZSB0aW1lcyAzIGJlbG93LgorKyAg ICAgICAgICAgICAgICAvLworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlmIHRoaXMgY2hl Y2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYDIgKiBTSU1EX1NU UklERV9TSVpFYCBlbGVtZW50cyBwbHVzIGB1bnRpbF9hbGlnbm1lbnRgLgorKyAgICAgICAgICAg ICAgICAvLyBUaGUgZXh0cmEgU0lNRF9TVFJJREVfU0laRSBpbiB0aGUgY29uZGl0aW9uIGlzIGJl Y2F1c2UgYG9mZnNldGAgaXMgYWxyZWFkeSBgU0lNRF9TVFJJREVfU0laRWAuCisgICAgICAgICAg ICAgICAgIGlmIHVudGlsX2FsaWdubWVudCArIChTSU1EX1NUUklERV9TSVpFICogMykgPD0gbGVu IHsKKyAgICAgICAgICAgICAgICAgICAgIGlmIHVudGlsX2FsaWdubWVudCAhPSAwIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoaXMgaXMgc2FmZSB0byBjYWxsIHNpbmNl IHdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQgKGFuZCBtb3JlKSwgYW5kIGRvbid0IGNhcmUgYWJv dXQgYWxpZ25tZW50CisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGNvcHkg b3ZlciBieXRlcyB0aGF0IGdldCBkZWNvZGVkIHR3aWNlIHNpbmNlIGl0J3Mgbm90IGluY3JlbWVu dGluZyBgb2Zmc2V0YCBieSBTSU1EX1NUUklERV9TSVpFLiBUaGlzIGlzIGZpbmUuCisgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNy Yy5hZGQob2Zmc2V0KSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFzayA9IG1h c2tfYXNjaWkoc2ltZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFzayAhPSAwIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IG1hc2sudHJhaWxpbmdfemVy b3MoKSBhcyB1c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2Np aSA9IHVuc2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB1bnRpbF9hbGln bm1lbnQ7CisgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IEF0IHRoaXMgcG9pbnQgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgMipTSU1EX1NUUklE RV9TSVpFIGVsZW1lbnRzCisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IE5vdyBgb2Zm c2V0YCBpcyBhbGlnbmVkIGZvciBgc3JjYAorICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9t aW51c19zdHJpZGVfdGltZXNfdHdvID0gbGVuIC0gKFNJTURfU1RSSURFX1NJWkUgKiAyKTsKKyAg ICAgICAgICAgICAgICAgICAgIGxvb3AgeworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNh ZmV0eTogV2Ugd2VyZSB2YWxpZCBmb3IgdGhpcyByZWFkLCBhbmQgd2VyZSBhbGlnbmVkLgorICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVk KHNyYy5hZGQob2Zmc2V0KSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25k ID0gdW5zYWZlIHsgbG9hZDE2X2FsaWduZWQoc3JjLmFkZChvZmZzZXQgKyBTSU1EX1NUUklERV9T SVpFKSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAhc2ltZF9pc19hc2NpaShmaXJz dCB8IHNlY29uZCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG1h c2tfYXNjaWkgcHJvZHVjZXMgYSBtYXNrIG9mIGFsbCB0aGUgaGlnaCBiaXRzLgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbWFza19maXJzdCA9IG1hc2tfYXNjaWkoZmlyc3QpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXNrX2ZpcnN0ICE9IDAgeworKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBvbiBsaXR0bGUgZW5kaWFuIHN5 c3RlbXMgdGhpcyB3aWxsIGJlIHRoZSBudW1iZXIgb2YgYXNjaWkgYnl0ZXMKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGJlZm9yZSB0aGUgZmlyc3Qgbm9uLWFzY2lpLCBpLmUu IHZhbGlkIGZvciBpbmRleGluZyBzcmMKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIFRPRE8gU0FGRVRZOiBXaGF0IGFib3V0IGJpZy1lbmRpYW4gc3lzdGVtcz8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBtYXNrX2ZpcnN0LnRyYWlsaW5nX3pl cm9zKCkgYXMgdXNpemU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFza19zZWNvbmQgPSBtYXNrX2Fz Y2lpKHNlY29uZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6 IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBhc2Np aSBieXRlcworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVmb3JlIHRoZSBm aXJzdCBub24tYXNjaWksIGkuZS4gdmFsaWQgZm9yIGluZGV4aW5nIHNyYworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgKyBtYXNrX3Nl Y29uZC50cmFpbGluZ196ZXJvcygpIGFzIHVzaXplOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2Uga25vdyB0 aGlzIGlzIG5vbi1BU0NJSSwgYW5kIGNhbiB1cGhvbGQgdGhlIHNhZmV0eS11c2FibGUgaW52YXJp YW50IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVu c2FmZSB7ICpzcmMuYWRkKG9mZnNldCkgfTsKKysKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9T SVpFICogMjsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoaXMgaXMgYG9m ZnNldCA+IGxlbiAtIDIgKiBTSU1EX1NUUklERV9TSVpFYCB3aGljaCBtZWFucyB3ZSBhbHdheXMg aGF2ZSBhdCBsZWFzdCBgMiAqIFNJTURfU1RSSURFX1NJWkVgIGVsZW1lbnRzIHRvIG11bmNoIG5l eHQgdGltZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBsZW5fbWludXNf c3RyaWRlX3RpbWVzX3R3byB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKysgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdyZSB2 YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKKyAgICAgICAgICAg ICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfYWxpZ25lZChzcmMu YWRkKG9mZnNldCkpIH07CistICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0gbWFz a19hc2NpaShzaW1kKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIHdl cmUgdmFsaWQgZm9yIHRoaXMgcmVhZCwgYW5kIHdlcmUgYWxpZ25lZC4KKysgICAgICAgICAgICAg ICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7IGxvYWQxNl9hbGlnbmVkKHNyYy5hZGQob2Zm c2V0KSkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG1hc2tfYXNjaWkg cHJvZHVjZXMgYSBtYXNrIG9mIGFsbCB0aGUgaGlnaCBiaXRzLgorKyAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtYXNrID0gbWFza19hc2NpaShzaW1kKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBtYXNrICE9IDAgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZl dHk6IG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcyB0aGlzIHdpbGwgYmUgdGhlIG51bWJlciBvZiBh c2NpaSBieXRlcworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiZWZvcmUgdGhlIGZp cnN0IG5vbi1hc2NpaSwgaS5lLiB2YWxpZCBmb3IgaW5kZXhpbmcgc3JjCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9mZnNldCArPSBtYXNrLnRyYWlsaW5nX3plcm9zKCkgYXMgdXNpemU7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAq c3JjLmFkZChvZmZzZXQpIH07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0 eTogV2Uga25vdyB0aGlzIGlzIG5vbi1BU0NJSSwgYW5kIGNhbiB1cGhvbGQgdGhlIHNhZmV0eS11 c2FibGUgaW52YXJpYW50IGhlcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IFNvbWUoKG5vbl9hc2NpaSwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAg ICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGlzIGlzIHRoZSB1bmFsaWduZWQgYnJhbmNoCisgICAg ICAgICAgICAgICAgICAgICAvLyBBdCBtb3N0IHR3byBpdGVyYXRpb25zLCBzbyB1bnJvbGwKKysg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogaWYgdGhpcyBjaGVjayBzdWNjZWVkcyB3ZSdy ZSB2YWxpZCBmb3IgcmVhZGluZyBhdCBsZWFzdCBgU0lNRF9TVFJJREVfU0laRWAKKyAgICAgICAg ICAgICAgICAgICAgIGlmIG9mZnNldCArIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQg YnV0IG11c3QgdXNlIGFuIHVuYWxpZ25lZCByZWFkCisgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHNpbWQgPSB1bnNhZmUgeyBsb2FkMTZfdW5hbGlnbmVkKHNyYy5hZGQob2Zmc2V0KSkgfTsK KyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFzayA9IG1hc2tfYXNjaWkoc2ltZCk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWFzayAhPSAwIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0ICs9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5vbl9hc2NpaSA9IHVuc2FmZSB7ICpzcmMu YWRkKG9mZnNldCkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5LXVz YWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUgKHNhbWUgYXMgYWJvdmUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOworICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g U0lNRF9TVFJJREVfU0laRTsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IGlm IHRoaXMgY2hlY2sgc3VjY2VlZHMgd2UncmUgdmFsaWQgZm9yIHJlYWRpbmcgYXQgbGVhc3QgYFNJ TURfU1RSSURFX1NJWkVgCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ICsgU0lN RF9TVFJJREVfU0laRSA8PSBsZW4geworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBT YWZldHk6IFdlJ3JlIHZhbGlkIGZvciB0aGlzIHJlYWQgYnV0IG11c3QgdXNlIGFuIHVuYWxpZ25l ZCByZWFkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2ltZCA9IHVuc2FmZSB7 IGxvYWQxNl91bmFsaWduZWQoc3JjLmFkZChvZmZzZXQpKSB9OworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG1hc2sgPSBtYXNrX2FzY2lpKHNpbWQpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBtYXNrICE9IDAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb2Zmc2V0ICs9IG1hc2sudHJhaWxpbmdfemVyb3MoKSBhcyB1c2l6ZTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub25fYXNjaWkgPSB1bnNhZmUgeyAqc3JjLmFk ZChvZmZzZXQpIH07CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHkt dXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZSAoc2FtZSBhcyBhYm92ZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChub25fYXNjaWksIG9mZnNldCkpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworKyAgICAgICAgICAgICAg ICAvLyBTYWZldHk6IHJlbGllcyBzdHJhaWdodGZvcndhcmRseSBvbiB0aGUgYGxlbmAgaW52YXJp YW50CisgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSB1bnNhZmUgeyAqKHNyYy5hZGQo b2Zmc2V0KSkgfTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50IHVwaGVsZCBoZXJlCisg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBvZmZzZXQpKTsKKyAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMTsKKyAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgTm9uZQorICAgICAgICAgfQorICAgICB9IGVsc2UgeworKyAg ICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHJldHVybnMgYnl0ZSBpbmRleCBvZiBm aXJzdCBub24tYXNjaWkgYnl0ZQorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAg IGZuIGZpbmRfbm9uX2FzY2lpKHdvcmQ6IHVzaXplLCBzZWNvbmRfd29yZDogdXNpemUpIC0+IE9w dGlvbjx1c2l6ZT4geworICAgICAgICAgICAgIGxldCB3b3JkX21hc2tlZCA9IHdvcmQgJiBBU0NJ SV9NQVNLOworICAgICAgICAgICAgIGxldCBzZWNvbmRfbWFza2VkID0gc2Vjb25kX3dvcmQgJiBB U0NJSV9NQVNLOworICAgICAgICAgICAgIGlmICh3b3JkX21hc2tlZCB8IHNlY29uZF9tYXNrZWQp ID09IDAgeworKyAgICAgICAgICAgICAgICAvLyBCb3RoIGFyZSBhc2NpaSwgaW52YXJpYW50IHVw aGVsZAorICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgaWYgd29yZF9tYXNrZWQgIT0gMCB7CisgICAgICAgICAgICAgICAgIGxldCB6ZXJv cyA9IGNvdW50X3plcm9zKHdvcmRfbWFza2VkKTsKKy0gICAgICAgICAgICAgICAgLy8gYHplcm9z YCBub3cgY29udGFpbnMgNyAoZm9yIHRoZSBzZXZlbiBiaXRzIG9mIG5vbi1BU0NJSSkKKysgICAg ICAgICAgICAgICAgLy8gYHplcm9zYCBub3cgY29udGFpbnMgMCB0byA3IChmb3IgdGhlIHNldmVu IGJpdHMgb2YgbWFza2VkIEFTQ0lJIGluIGxpdHRsZSBlbmRpYW4sCisrICAgICAgICAgICAgICAg IC8vIG9yIHVwIHRvIDcgYml0cyBvZiBub24tQVNDSUkgaW4gYmlnIGVuZGlhbiBpZiB0aGUgZmly c3QgYnl0ZSBpcyBub24tQVNDSUkpCisgICAgICAgICAgICAgICAgIC8vIHBsdXMgOCB0aW1lcyB0 aGUgbnVtYmVyIG9mIEFTQ0lJIGluIHRleHQgb3JkZXIgYmVmb3JlIHRoZQorICAgICAgICAgICAg ICAgICAvLyBub24tQVNDSUkgYnl0ZSBpbiB0aGUgbGl0dGxlLWVuZGlhbiBjYXNlIG9yIDggdGlt ZXMgdGhlIG51bWJlciBvZiBBU0NJSSBpbgorICAgICAgICAgICAgICAgICAvLyB0ZXh0IG9yZGVy IGJlZm9yZSB0aGUgbm9uLUFTQ0lJIGJ5dGUgaW4gdGhlIGJpZy1lbmRpYW4gY2FzZS4KKyAgICAg ICAgICAgICAgICAgbGV0IG51bV9hc2NpaSA9ICh6ZXJvcyA+PiAzKSBhcyB1c2l6ZTsKKysgICAg ICAgICAgICAgICAgLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgdXBoZWxkIGhlcmUKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIFNvbWUobnVtX2FzY2lpKTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgbGV0IHplcm9zID0gY291bnRfemVyb3Moc2Vjb25kX21hc2tlZCk7CistICAgICAg ICAgICAgLy8gYHplcm9zYCBub3cgY29udGFpbnMgNyAoZm9yIHRoZSBzZXZlbiBiaXRzIG9mIG5v bi1BU0NJSSkKKysgICAgICAgICAgICAvLyBgemVyb3NgIG5vdyBjb250YWlucyAwIHRvIDcgKGZv ciB0aGUgc2V2ZW4gYml0cyBvZiBtYXNrZWQgQVNDSUkgaW4gbGl0dGxlIGVuZGlhbiwKKysgICAg ICAgICAgICAvLyBvciB1cCB0byA3IGJpdHMgb2Ygbm9uLUFTQ0lJIGluIGJpZyBlbmRpYW4gaWYg dGhlIGZpcnN0IGJ5dGUgaXMgbm9uLUFTQ0lJKQorICAgICAgICAgICAgIC8vIHBsdXMgOCB0aW1l cyB0aGUgbnVtYmVyIG9mIEFTQ0lJIGluIHRleHQgb3JkZXIgYmVmb3JlIHRoZQorICAgICAgICAg ICAgIC8vIG5vbi1BU0NJSSBieXRlIGluIHRoZSBsaXR0bGUtZW5kaWFuIGNhc2Ugb3IgOCB0aW1l cyB0aGUgbnVtYmVyIG9mIEFTQ0lJIGluCisgICAgICAgICAgICAgLy8gdGV4dCBvcmRlciBiZWZv cmUgdGhlIG5vbi1BU0NJSSBieXRlIGluIHRoZSBiaWctZW5kaWFuIGNhc2UuCisgICAgICAgICAg ICAgbGV0IG51bV9hc2NpaSA9ICh6ZXJvcyA+PiAzKSBhcyB1c2l6ZTsKKysgICAgICAgICAgICAv LyBTYWZldHktdXNhYmxlIGludmFyaWFudCB1cGhlbGQgaGVyZQorICAgICAgICAgICAgIFNvbWUo QUxVX0FMSUdOTUVOVCArIG51bV9hc2NpaSkKKyAgICAgICAgIH0KKyAKKysgICAgICAgIC8vLyBT YWZldHk6IGBzcmNgIG11c3QgYmUgdmFsaWQgZm9yIHRoZSByZWFkcyBvZiB0d28gYHVzaXplYHMK KysgICAgICAgIC8vLworKyAgICAgICAgLy8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiB3aWxs IHJldHVybiBieXRlIGluZGV4IG9mIGZpcnN0IG5vbi1hc2NpaSBieXRlCisgICAgICAgICAjW2lu bGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZlIGZuIHZhbGlkYXRlX2FzY2lpX3N0cmlkZShz cmM6ICpjb25zdCB1c2l6ZSkgLT4gT3B0aW9uPHVzaXplPiB7CisgICAgICAgICAgICAgbGV0IHdv cmQgPSAqc3JjOworICAgICAgICAgICAgIGxldCBzZWNvbmRfd29yZCA9ICooc3JjLmFkZCgxKSk7 CisgICAgICAgICAgICAgZmluZF9ub25fYXNjaWkod29yZCwgc2Vjb25kX3dvcmQpCisgICAgICAg ICB9CisgCisrICAgICAgICAvLy8gU2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQ6IHdpbGwgcmV0dXJu IFNvbWUoKSB3aGVuIGl0IGVuY291bnRlcnMgbm9uLUFTQ0lJLCB3aXRoIHRoZSBmaXJzdCBlbGVt ZW50IGluIHRoZSBTb21lIGJlaW5nCisrICAgICAgICAvLy8gZ3VhcmFudGVlZCB0byBiZSBub24t QVNDSUkgKD4gMTI3KSwgYW5kIHRoZSBzZWNvbmQgYmVpbmcgdGhlIG9mZnNldCB3aGVyZSBpdCBp cyBmb3VuZAorICAgICAgICAgI1tjZmdfYXR0cihmZWF0dXJlID0gImNhcmdvLWNsaXBweSIsIGFs bG93KGNhc3RfcHRyX2FsaWdubWVudCkpXQorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICAgICAgIHB1YiBmbiB2YWxpZGF0ZV9hc2NpaShzbGljZTogJlt1OF0pIC0+IE9wdGlvbjwodTgs IHVzaXplKT4geworICAgICAgICAgICAgIGxldCBzcmMgPSBzbGljZS5hc19wdHIoKTsKKyAgICAg ICAgICAgICBsZXQgbGVuID0gc2xpY2UubGVuKCk7CisgICAgICAgICAgICAgbGV0IG11dCBvZmZz ZXQgPSAwdXNpemU7CisgICAgICAgICAgICAgbGV0IG11dCB1bnRpbF9hbGlnbm1lbnQgPSAoQUxV X0FMSUdOTUVOVCAtICgoc3JjIGFzIHVzaXplKSAmIEFMVV9BTElHTk1FTlRfTUFTSykpICYgQUxV X0FMSUdOTUVOVF9NQVNLOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogSWYgdGhpcyBjaGVjayBm YWlscyB3ZSdyZSB2YWxpZCB0byByZWFkIGB1bnRpbF9hbGlnbm1lbnQgKyBBTFVfU1RSSURFX1NJ WkVgIGVsZW1lbnRzCisgICAgICAgICAgICAgaWYgdW50aWxfYWxpZ25tZW50ICsgQUxVX1NUUklE RV9TSVpFIDw9IGxlbiB7CisgICAgICAgICAgICAgICAgIHdoaWxlIHVudGlsX2FsaWdubWVudCAh PSAwIHsKKyAgICAgICAgICAgICAgICAgICAgIGxldCBjb2RlX3VuaXQgPSBzbGljZVtvZmZzZXRd OworICAgICAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4gMTI3IHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHktdXNhYmxlIGludmFpcmFudCB1cGhlbGQgaGVyZQorICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKChjb2RlX3VuaXQsIG9mZnNldCkpOwor ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDE7 CisgICAgICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1lbnQgLT0gMTsKKyAgICAgICAgICAg ICAgICAgfQorKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IEF0IHRoaXMgcG9pbnQgd2UgaGF2 ZSByZWFkIHVudGlsX2FsaWdubWVudCBlbGVtZW50cyBhbmQKKysgICAgICAgICAgICAgICAgLy8g YXJlIHZhbGlkIGZvciBgQUxVX1NUUklERV9TSVpFYCBtb3JlLgorICAgICAgICAgICAgICAgICBs ZXQgbGVuX21pbnVzX3N0cmlkZSA9IGxlbiAtIEFMVV9TVFJJREVfU0laRTsKKyAgICAgICAgICAg ICAgICAgbG9vcCB7CisrICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHdlIHdlcmUgdmFs aWQgZm9yIHRoaXMgcmVhZAorICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IHVuc2FmZSB7 IHNyYy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgdXNpemUgfTsKKyAgICAgICAgICAgICAgICAgICAg IGlmIGxldCBTb21lKG51bV9hc2NpaSkgPSB1bnNhZmUgeyB2YWxpZGF0ZV9hc2NpaV9zdHJpZGUo cHRyKSB9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gbnVtX2FzY2lpOwor KyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YWlyYW50IHVwaGVs ZCBoZXJlIHVzaW5nIHRoZSBpbnZhcmlhbnQgZnJvbSB2YWxpZGF0ZV9hc2NpaV9zdHJpZGUoKQor ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTb21lKCh1bnNhZmUgeyAqKHNyYy5hZGQo b2Zmc2V0KSkgfSwgb2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgICBvZmZzZXQgKz0gQUxVX1NUUklERV9TSVpFOworKyAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiBUaGlzIGlzIGBvZmZzZXQgPiBBTFVfU1RSSURFX1NJWkVgIHdoaWNoIG1l YW5zIHdlIGFsd2F5cyBoYXZlIGF0IGxlYXN0IGAyICogQUxVX1NUUklERV9TSVpFYCBlbGVtZW50 cyB0byBtdW5jaCBuZXh0IHRpbWUuCisgICAgICAgICAgICAgICAgICAgICBpZiBvZmZzZXQgPiBs ZW5fbWludXNfc3RyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICB3aGlsZSBvZmZzZXQgPCBsZW4geworICAgICAgICAgICAgICAgICBsZXQgY29k ZV91bml0ID0gc2xpY2Vbb2Zmc2V0XTsKKyAgICAgICAgICAgICAgICAgaWYgY29kZV91bml0ID4g MTI3IHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YWlyYW50IHVw aGVsZCBoZXJlCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU29tZSgoY29kZV91bml0LCBv ZmZzZXQpKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBvZmZzZXQgKz0g MTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIE5vbmUKKyAgICAgICAgIH0KKyAKKyAgICAg fQorQEAgLTE0MjMsNzAgKzE3ODEsODggQEAgY2ZnX2lmISB7CisgICAgICAgICAvLyB2ZWN0b3Ig cmVhZHMgd2l0aG91dCB2ZWN0b3Igd3JpdGVzLgorIAorICAgICAgICAgcHViIGNvbnN0IEFMVV9T VFJJREVfU0laRTogdXNpemUgPSA4OworIAorICAgICAgICAgcHViIGNvbnN0IEFMVV9BTElHTk1F TlQ6IHVzaXplID0gNDsKKyAKKyAgICAgICAgIHB1YiBjb25zdCBBTFVfQUxJR05NRU5UX01BU0s6 IHVzaXplID0gMzsKKyAgICAgfSBlbHNlIHsKKysgICAgICAgIC8vIFNhZmV0eTogc3JjIHBvaW50 cyB0byB0d28gdmFsaWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gZm91ciB2YWxpZCBgdXNpemVg cworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiB1bnBhY2tf bGF0aW4xX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgewor KyAgICAgICAgICAgIC8vIFNhZmV0eTogc3JjIHNhZmV0eSBpbnZhcmlhbnQgdXNlZCBoZXJlCisg ICAgICAgICAgICAgbGV0IHdvcmQgPSAqc3JjOworICAgICAgICAgICAgIGxldCBzZWNvbmRfd29y ZCA9ICooc3JjLmFkZCgxKSk7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBkc3Qgc2FmZXR5IGlu dmFyaWFudCBwYXNzZWQgZG93bgorICAgICAgICAgICAgIHVucGFja19hbHUod29yZCwgc2Vjb25k X3dvcmQsIGRzdCk7CisgICAgICAgICB9CisgCisrICAgICAgICAvLyBTYWZldHk6IHNyYyBwb2lu dHMgdG8gZm91ciB2YWxpZCBgdXNpemVgcywgZHN0IHBvaW50cyB0byB0d28gdmFsaWQgYHVzaXpl YHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAgICB1bnNhZmUgZm4gcGFja19s YXRpbjFfc3RyaWRlX2FsdShzcmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSB7Cisr ICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUKKyAg ICAgICAgICAgICBsZXQgZmlyc3QgPSAqc3JjOworICAgICAgICAgICAgIGxldCBzZWNvbmQgPSAq KHNyYy5hZGQoMSkpOworICAgICAgICAgICAgIGxldCB0aGlyZCA9ICooc3JjLmFkZCgyKSk7Cisg ICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICooc3JjLmFkZCgzKSk7CisrICAgICAgICAgICAgLy8g U2FmZXR5OiBkc3Qgc2FmZXR5IGludmFyaWFudCBwYXNzZWQgZG93bgorICAgICAgICAgICAgIHBh Y2tfYWx1KGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgsIGRzdCk7CisgICAgICAgICB9Cisg CisrICAgICAgICAvLyBTYWZldHk6IHNyYyBwb2ludHMgdG8gdHdvIHZhbGlkIGB1c2l6ZWBzLCBk c3QgcG9pbnRzIHRvIGZvdXIgdmFsaWQgYHVzaXplYHMKKyAgICAgICAgICNbaW5saW5lKGFsd2F5 cyldCisgICAgICAgICB1bnNhZmUgZm4gYXNjaWlfdG9fYmFzaWNfbGF0aW5fc3RyaWRlX2FsdShz cmM6ICpjb25zdCB1c2l6ZSwgZHN0OiAqbXV0IHVzaXplKSAtPiBib29sIHsKKysgICAgICAgICAg ICAvLyBTYWZldHk6IHNyYyBzYWZldHkgaW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAg IGxldCB3b3JkID0gKnNyYzsKKyAgICAgICAgICAgICBsZXQgc2Vjb25kX3dvcmQgPSAqKHNyYy5h ZGQoMSkpOworICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSB3b3JkcyBjb250YWlucyBub24t QVNDSUkKKyAgICAgICAgICAgICBpZiAod29yZCAmIEFTQ0lJX01BU0spIHwgKHNlY29uZF93b3Jk ICYgQVNDSUlfTUFTSykgIT0gMCB7CisgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICB9CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBkc3Qgc2FmZXR5IGludmFyaWFu dCBwYXNzZWQgZG93bgorICAgICAgICAgICAgIHVucGFja19hbHUod29yZCwgc2Vjb25kX3dvcmQs IGRzdCk7CisgICAgICAgICAgICAgdHJ1ZQorICAgICAgICAgfQorIAorKyAgICAgICAgLy8gU2Fm ZXR5OiBzcmMgcG9pbnRzIGZvdXIgdmFsaWQgYHVzaXplYHMsIGRzdCBwb2ludHMgdG8gdHdvIHZh bGlkIGB1c2l6ZWBzCisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgdW5zYWZl IGZuIGJhc2ljX2xhdGluX3RvX2FzY2lpX3N0cmlkZV9hbHUoc3JjOiAqY29uc3QgdXNpemUsIGRz dDogKm11dCB1c2l6ZSkgLT4gYm9vbCB7CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2Fm ZXR5IGludmFyaWFudCB1c2VkIGhlcmUKKyAgICAgICAgICAgICBsZXQgZmlyc3QgPSAqc3JjOwor ICAgICAgICAgICAgIGxldCBzZWNvbmQgPSAqKHNyYy5hZGQoMSkpOworICAgICAgICAgICAgIGxl dCB0aGlyZCA9ICooc3JjLmFkZCgyKSk7CisgICAgICAgICAgICAgbGV0IGZvdXJ0aCA9ICooc3Jj LmFkZCgzKSk7CisgICAgICAgICAgICAgaWYgKGZpcnN0ICYgQkFTSUNfTEFUSU5fTUFTSykgfCAo c2Vjb25kICYgQkFTSUNfTEFUSU5fTUFTSykgfCAodGhpcmQgJiBCQVNJQ19MQVRJTl9NQVNLKSB8 IChmb3VydGggJiBCQVNJQ19MQVRJTl9NQVNLKSAhPSAwIHsKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvLyBTYWZldHk6IGRzdCBz YWZldHkgaW52YXJpYW50IHBhc3NlZCBkb3duCisgICAgICAgICAgICAgcGFja19hbHUoZmlyc3Qs IHNlY29uZCwgdGhpcmQsIGZvdXJ0aCwgZHN0KTsKKyAgICAgICAgICAgICB0cnVlCisgICAgICAg ICB9CisgCisrICAgICAgICAvLyBTYWZldHk6IHNyYywgZHN0IGJvdGggcG9pbnQgdG8gdHdvIHZh bGlkIGB1c2l6ZWBzIGVhY2gKKysgICAgICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBX aWxsIHJldHVybiBieXRlIGluZGV4IG9mIGZpcnN0IG5vbi1hc2NpaSBieXRlLgorICAgICAgICAg I1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHVuc2FmZSBmbiBhc2NpaV90b19hc2NpaV9zdHJp ZGUoc3JjOiAqY29uc3QgdXNpemUsIGRzdDogKm11dCB1c2l6ZSkgLT4gT3B0aW9uPHVzaXplPiB7 CisrICAgICAgICAgICAgLy8gU2FmZXR5OiBzcmMgc2FmZXR5IGludmFyaWFudCB1c2VkIGhlcmUK KyAgICAgICAgICAgICBsZXQgd29yZCA9ICpzcmM7CisgICAgICAgICAgICAgbGV0IHNlY29uZF93 b3JkID0gKihzcmMuYWRkKDEpKTsKKysgICAgICAgICAgICAvLyBTYWZldHk6IHNyYyBzYWZldHkg aW52YXJpYW50IHVzZWQgaGVyZQorICAgICAgICAgICAgICpkc3QgPSB3b3JkOworICAgICAgICAg ICAgICooZHN0LmFkZCgxKSkgPSBzZWNvbmRfd29yZDsKKysgICAgICAgICAgICAvLyBSZWxpZXMg b24gc2FmZXR5LXVzYWJsZSBpbnZhcmlhbnQgaGVyZQorICAgICAgICAgICAgIGZpbmRfbm9uX2Fz Y2lpKHdvcmQsIHNlY29uZF93b3JkKQorICAgICAgICAgfQorIAorICAgICAgICAgYmFzaWNfbGF0 aW5fYWx1IShhc2NpaV90b19iYXNpY19sYXRpbiwgdTgsIHUxNiwgYXNjaWlfdG9fYmFzaWNfbGF0 aW5fc3RyaWRlX2FsdSk7CisgICAgICAgICBiYXNpY19sYXRpbl9hbHUhKGJhc2ljX2xhdGluX3Rv X2FzY2lpLCB1MTYsIHU4LCBiYXNpY19sYXRpbl90b19hc2NpaV9zdHJpZGVfYWx1KTsKKyAgICAg ICAgIGxhdGluMV9hbHUhKHVucGFja19sYXRpbjEsIHU4LCB1MTYsIHVucGFja19sYXRpbjFfc3Ry aWRlX2FsdSk7CisgICAgICAgICBsYXRpbjFfYWx1IShwYWNrX2xhdGluMSwgdTE2LCB1OCwgcGFj a19sYXRpbjFfc3RyaWRlX2FsdSk7CisrICAgICAgICAvLyBTYWZldHkgaW52YXJpYW50IHVwaGVs ZDogYXNjaWlfdG9fYXNjaWlfc3RyaWRlIHdpbGwgcmV0dXJuIGJ5dGUgaW5kZXggb2YgZmlyc3Qg bm9uLWFzY2lpIGlmIGZvdW5kCisgICAgICAgICBhc2NpaV9hbHUhKGFzY2lpX3RvX2FzY2lpLCB1 OCwgdTgsIGFzY2lpX3RvX2FzY2lpX3N0cmlkZSk7CisgICAgIH0KKyB9CisgCisgcHViIGZuIGFz Y2lpX3ZhbGlkX3VwX3RvKGJ5dGVzOiAmW3U4XSkgLT4gdXNpemUgeworICAgICBtYXRjaCB2YWxp ZGF0ZV9hc2NpaShieXRlcykgeworICAgICAgICAgTm9uZSA9PiBieXRlcy5sZW4oKSwKKyAgICAg ICAgIFNvbWUoKF8sIG51bV92YWxpZCkpID0+IG51bV92YWxpZCwKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9oYW5kbGVzLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvaGFuZGxlcy5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNv ZGluZ19ycy9zcmMvaGFuZGxlcy5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19y cy9zcmMvaGFuZGxlcy5ycworQEAgLTI5LDE3ICsyOSwxNyBAQCB1c2UgY3JhdGU6OnNpbWRfZnVu Y3M6Oio7CisgI1tjZmcoYWxsKAorICAgICBmZWF0dXJlID0gInNpbWQtYWNjZWwiLAorICAgICBh bnkoCisgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIiwKKyAgICAgICAgIGFsbCh0YXJn ZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSwKKyAgICAgICAg IGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9mZWF0dXJlID0gIm5lb24iKQor ICAgICApCisgKSldCistdXNlIHBhY2tlZF9zaW1kOjp1MTZ4ODsKKyt1c2UgY29yZTo6c2ltZDo6 dTE2eDg7CisgCisgdXNlIHN1cGVyOjpEZWNvZGVyUmVzdWx0OworIHVzZSBzdXBlcjo6RW5jb2Rl clJlc3VsdDsKKyB1c2UgY3JhdGU6OmFzY2lpOjoqOworIHVzZSBjcmF0ZTo6dXRmXzg6OmNvbnZl cnRfdXRmOF90b191dGYxNl91cF90b19pbnZhbGlkOworIHVzZSBjcmF0ZTo6dXRmXzg6OnV0Zjhf dmFsaWRfdXBfdG87CisgCisgcHViIGVudW0gU3BhY2U8VD4geworQEAgLTg1LDg0ICs4NSwxMDAg QEAgaW1wbCBFbmRpYW4gZm9yIExpdHRsZUVuZGlhbiB7CisgICAgIGNvbnN0IE9QUE9TSVRFX0VO RElBTjogYm9vbCA9IGZhbHNlOworIAorICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJpZyIp XQorICAgICBjb25zdCBPUFBPU0lURV9FTkRJQU46IGJvb2wgPSB0cnVlOworIH0KKyAKKyAjW2Rl cml2ZShEZWJ1ZywgQ29weSwgQ2xvbmUpXQorIHN0cnVjdCBVbmFsaWduZWRVMTZTbGljZSB7Cisr ICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciByZWFkaW5nIDIq bGVuIGJ5dGVzCisgICAgIHB0cjogKmNvbnN0IHU4LAorICAgICBsZW46IHVzaXplLAorIH0KKyAK KyBpbXBsIFVuYWxpZ25lZFUxNlNsaWNlIHsKKysgICAgLy8vIFNhZmV0eTogcHRyIG11c3QgYmUg dmFsaWQgZm9yIHJlYWRpbmcgMipsZW4gYnl0ZXMKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICAgcHViIHVuc2FmZSBmbiBuZXcocHRyOiAqY29uc3QgdTgsIGxlbjogdXNpemUpIC0+IFVuYWxp Z25lZFUxNlNsaWNlIHsKKysgICAgICAgIC8vIFNhZmV0eTogZmllbGQgaW52YXJpYW50IHBhc3Nl ZCB1cCB0byBjYWxsZXIgaGVyZQorICAgICAgICAgVW5hbGlnbmVkVTE2U2xpY2UgeyBwdHIsIGxl biB9CisgICAgIH0KKyAKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgcHViIGZuIHRyaW1f bGFzdCgmbXV0IHNlbGYpIHsKKyAgICAgICAgIGFzc2VydCEoc2VsZi5sZW4gPiAwKTsKKysgICAg ICAgIC8vIFNhZmV0eTogaW52YXJpYW50IHVwaGVsZCBoZXJlOiBhIHNsaWNlIGlzIHN0aWxsIHZh bGlkIHdpdGggYSBzaG9ydGVyIGxlbgorICAgICAgICAgc2VsZi5sZW4gLT0gMTsKKyAgICAgfQor IAorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBwdWIgZm4gYXQoJnNlbGYsIGk6IHVzaXpl KSAtPiB1MTYgeworICAgICAgICAgdXNlIGNvcmU6Om1lbTo6TWF5YmVVbmluaXQ7CisgCisgICAg ICAgICBhc3NlcnQhKGkgPCBzZWxmLmxlbik7CisgICAgICAgICB1bnNhZmUgeworICAgICAgICAg ICAgIGxldCBtdXQgdTogTWF5YmVVbmluaXQ8dTE2PiA9IE1heWJlVW5pbml0Ojp1bmluaXQoKTsK KysgICAgICAgICAgICAvLyBTYWZldHk6IGkgaXMgYXQgbW9zdCBsZW4gLSAxLCB3aGljaCB3b3Jr cyBoZXJlCisgICAgICAgICAgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoc2Vs Zi5wdHIuYWRkKGkgKiAyKSwgdS5hc19tdXRfcHRyKCkgYXMgKm11dCB1OCwgMik7CisrICAgICAg ICAgICAgLy8gU2FmZXR5OiB2YWxpZCByZWFkIGFib3ZlIGxldHMgdXMgZG8gdGhpcworICAgICAg ICAgICAgIHUuYXNzdW1lX2luaXQoKQorICAgICAgICAgfQorICAgICB9CisgCisgICAgICNbY2Zn KGZlYXR1cmUgPSAic2ltZC1hY2NlbCIpXQorICAgICAjW2lubGluZShhbHdheXMpXQorICAgICBw dWIgZm4gc2ltZF9hdCgmc2VsZiwgaTogdXNpemUpIC0+IHUxNng4IHsKKysgICAgICAgIC8vIFNh ZmV0eTogaS9sZW4gYXJlIG9uIHRoZSBzY2FsZSBvZiB1MTZzLCBlYWNoIG9uZSBjb3JyZXNwb25k cyB0byAyIHU4cworICAgICAgICAgYXNzZXJ0IShpICsgU0lNRF9TVFJJREVfU0laRSAvIDIgPD0g c2VsZi5sZW4pOworICAgICAgICAgbGV0IGJ5dGVfaW5kZXggPSBpICogMjsKKysgICAgICAgIC8v IFNhZmV0eTogbG9hZDE2X3VuYWxpZ25lZCBuZWVkcyBTSU1EX1NUUklERV9TSVpFPTE2IHU4IGVs ZW1lbnRzIHRvIHJlYWQsCisrICAgICAgICAvLyBvciAxNi8yID0gOCB1MTYgZWxlbWVudHMgdG8g cmVhZC4KKysgICAgICAgIC8vIFdlIGhhdmUgY2hlY2tlZCB0aGF0IHdlIGhhdmUgYXQgbGVhc3Qg dGhhdCBtYW55IGFib3ZlLgorKworICAgICAgICAgdW5zYWZlIHsgdG9fdTE2X2xhbmVzKGxvYWQx Nl91bmFsaWduZWQoc2VsZi5wdHIuYWRkKGJ5dGVfaW5kZXgpKSkgfQorICAgICB9CisgCisgICAg ICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1YiBmbiBsZW4oJnNlbGYpIC0+IHVzaXplIHsKKyAg ICAgICAgIHNlbGYubGVuCisgICAgIH0KKyAKKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAg cHViIGZuIHRhaWwoJnNlbGYsIGZyb206IHVzaXplKSAtPiBVbmFsaWduZWRVMTZTbGljZSB7Cisg ICAgICAgICAvLyBYWFggdGhlIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgcmVzdHJpY3RlZCBub3Qg dG8KKyAgICAgICAgIC8vIG91dGxpdmUgc2VsZi4KKyAgICAgICAgIGFzc2VydCEoZnJvbSA8PSBz ZWxmLmxlbik7CisrICAgICAgICAvLyBTYWZldHk6IFRoaXMgdXBob2xkcyB0aGUgc2FtZSBpbnZh cmlhbnQ6IGBmcm9tYCBpcyBpbiBib3VuZHMgYW5kIHdlJ3JlIHJldHVybmluZyBhIHNob3J0ZXIg c2xpY2UKKyAgICAgICAgIHVuc2FmZSB7IFVuYWxpZ25lZFUxNlNsaWNlOjpuZXcoc2VsZi5wdHIu YWRkKGZyb20gKiAyKSwgc2VsZi5sZW4gLSBmcm9tKSB9CisgICAgIH0KKyAKKyAgICAgI1tjZmco ZmVhdHVyZSA9ICJzaW1kLWFjY2VsIildCisgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1 YiBmbiBjb3B5X2JtcF90bzxFOiBFbmRpYW4+KCZzZWxmLCBvdGhlcjogJm11dCBbdTE2XSkgLT4g T3B0aW9uPCh1MTYsIHVzaXplKT4geworICAgICAgICAgYXNzZXJ0IShzZWxmLmxlbiA8PSBvdGhl ci5sZW4oKSk7CisgICAgICAgICBsZXQgbXV0IG9mZnNldCA9IDA7CisrICAgICAgICAvLyBTYWZl dHk6IFNJTURfU1RSSURFX1NJWkUgaXMgbWVhc3VyZWQgaW4gYnl0ZXMsIHdoZXJlYXMgbGVuIGlz IGluIHUxNnMuIFdlIGNoZWNrIHdlIGNhbgorKyAgICAgICAgLy8gbXVuY2ggU0lNRF9TVFJJREVf U0laRSAvIDIgdTE2cyB3aGljaCBtZWFucyB3ZSBjYW4gd3JpdGUgU0lNRF9TVFJJREVfU0laRSB1 OHMKKyAgICAgICAgIGlmIFNJTURfU1RSSURFX1NJWkUgLyAyIDw9IHNlbGYubGVuIHsKKyAgICAg ICAgICAgICBsZXQgbGVuX21pbnVzX3N0cmlkZSA9IHNlbGYubGVuIC0gU0lNRF9TVFJJREVfU0la RSAvIDI7CisgICAgICAgICAgICAgbG9vcCB7CisgICAgICAgICAgICAgICAgIGxldCBtdXQgc2lt ZCA9IHNlbGYuc2ltZF9hdChvZmZzZXQpOworICAgICAgICAgICAgICAgICBpZiBFOjpPUFBPU0lU RV9FTkRJQU4geworICAgICAgICAgICAgICAgICAgICAgc2ltZCA9IHNpbWRfYnl0ZV9zd2FwKHNp bWQpOworICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2Ug aGF2ZSBlbm91Z2ggc3BhY2Ugb24gdGhlIG90aGVyIHNpZGUgdG8gd3JpdGUgdGhpcworICAgICAg ICAgICAgICAgICB1bnNhZmUgeworICAgICAgICAgICAgICAgICAgICAgc3RvcmU4X3VuYWxpZ25l ZChvdGhlci5hc19tdXRfcHRyKCkuYWRkKG9mZnNldCksIHNpbWQpOworICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgIGlmIGNvbnRhaW5zX3N1cnJvZ2F0ZXMoc2ltZCkgeworICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgLyAyOworKyAgICAgICAgICAgICAgICAv LyBTYWZldHk6IFRoaXMgZW5zdXJlcyB3ZSBzdGlsbCBoYXZlIHNwYWNlIGZvciB3cml0aW5nIFNJ TURfU1RSSURFX1NJWkUgdThzCisgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+IGxlbl9taW51 c19zdHJpZGUgeworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICB3aGlsZSBvZmZzZXQgPCBz ZWxmLmxlbiB7CisgICAgICAgICAgICAgbGV0IHVuaXQgPSBzd2FwX2lmX29wcG9zaXRlX2VuZGlh bjo6PEU+KHNlbGYuYXQob2Zmc2V0KSk7CisgICAgICAgICAgICAgb3RoZXJbb2Zmc2V0XSA9IHVu aXQ7CitAQCAtMjMxLDMzICsyNDcsMzcgQEAgZm4gY29weV91bmFsaWduZWRfYmFzaWNfbGF0aW5f dG9fYXNjaWk8RQorICNbY2ZnKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIpXQorICNbaW5saW5lKGFs d2F5cyldCisgZm4gY29weV91bmFsaWduZWRfYmFzaWNfbGF0aW5fdG9fYXNjaWk8RTogRW5kaWFu PigKKyAgICAgc3JjOiBVbmFsaWduZWRVMTZTbGljZSwKKyAgICAgZHN0OiAmbXV0IFt1OF0sCisg KSAtPiBDb3B5QXNjaWlSZXN1bHQ8dXNpemUsICh1MTYsIHVzaXplKT4geworICAgICBsZXQgbGVu ID0gOjpjb3JlOjpjbXA6Om1pbihzcmMubGVuKCksIGRzdC5sZW4oKSk7CisgICAgIGxldCBtdXQg b2Zmc2V0ID0gMDsKKysgICAgLy8gU2FmZXR5OiBUaGlzIGNoZWNrIGVuc3VyZXMgd2UgYXJlIGFi bGUgdG8gcmVhZC93cml0ZSBhdCBsZWFzdCBTSU1EX1NUUklERV9TSVpFIGVsZW1lbnRzCisgICAg IGlmIFNJTURfU1RSSURFX1NJWkUgPD0gbGVuIHsKKyAgICAgICAgIGxldCBsZW5fbWludXNfc3Ry aWRlID0gbGVuIC0gU0lNRF9TVFJJREVfU0laRTsKKyAgICAgICAgIGxvb3AgeworICAgICAgICAg ICAgIGxldCBtdXQgZmlyc3QgPSBzcmMuc2ltZF9hdChvZmZzZXQpOworICAgICAgICAgICAgIGxl dCBtdXQgc2Vjb25kID0gc3JjLnNpbWRfYXQob2Zmc2V0ICsgKFNJTURfU1RSSURFX1NJWkUgLyAy KSk7CisgICAgICAgICAgICAgaWYgRTo6T1BQT1NJVEVfRU5ESUFOIHsKKyAgICAgICAgICAgICAg ICAgZmlyc3QgPSBzaW1kX2J5dGVfc3dhcChmaXJzdCk7CisgICAgICAgICAgICAgICAgIHNlY29u ZCA9IHNpbWRfYnl0ZV9zd2FwKHNlY29uZCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAg IGlmICFzaW1kX2lzX2Jhc2ljX2xhdGluKGZpcnN0IHwgc2Vjb25kKSB7CisgICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBsZXQgcGFja2VkID0gc2lt ZF9wYWNrKGZpcnN0LCBzZWNvbmQpOworKyAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgYXJlIGFi bGUgdG8gd3JpdGUgU0lNRF9TVFJJREVfU0laRSBlbGVtZW50cyBpbiB0aGlzIGl0ZXJhdGlvbgor ICAgICAgICAgICAgIHVuc2FmZSB7CisgICAgICAgICAgICAgICAgIHN0b3JlMTZfdW5hbGlnbmVk KGRzdC5hc19tdXRfcHRyKCkuYWRkKG9mZnNldCksIHBhY2tlZCk7CisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIG9mZnNldCArPSBTSU1EX1NUUklERV9TSVpFOworKyAgICAgICAgICAgIC8v IFNhZmV0eTogVGhpcyBpcyBgb2Zmc2V0ID4gbGVuIC0gU0lNRF9TVFJJREVfU0laRWAsIHdoaWNo IGVuc3VyZXMgdGhhdCB3ZSBjYW4gd3JpdGUgYXQgbGVhc3QgU0lNRF9TVFJJREVfU0laRSBlbGVt ZW50cworKyAgICAgICAgICAgIC8vIGluIHRoZSBuZXh0IGl0ZXJhdGlvbgorICAgICAgICAgICAg IGlmIG9mZnNldCA+IGxlbl9taW51c19zdHJpZGUgeworICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KKyAgICAgY29weV91bmFsaWduZWRf YmFzaWNfbGF0aW5fdG9fYXNjaWlfYWx1Ojo8RT4oc3JjLnRhaWwob2Zmc2V0KSwgJm11dCBkc3Rb b2Zmc2V0Li5dLCBvZmZzZXQpCisgfQorIAorQEAgLTYzMiw5NCArNjUyLDEwNiBAQCBpbXBsPCdh PiBVdGYxNkRlc3RpbmF0aW9uPCdhPiB7CisgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIGZu IHdyaXRlX2FzdHJhbCgmbXV0IHNlbGYsIGFzdHJhbDogdTMyKSB7CisgICAgICAgICBkZWJ1Z19h c3NlcnQhKGFzdHJhbCA+IDB4RkZGRik7CisgICAgICAgICBkZWJ1Z19hc3NlcnQhKGFzdHJhbCA8 PSAweDEwX0ZGRkYpOworICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQoKDB4RDdDMCArIChh c3RyYWwgPj4gMTApKSBhcyB1MTYpOworICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQoKDB4 REMwMCArIChhc3RyYWwgJiAweDNGRikpIGFzIHUxNik7CisgICAgIH0KKyAgICAgI1tpbmxpbmUo YWx3YXlzKV0KKy0gICAgcHViIGZuIHdyaXRlX3N1cnJvZ2F0ZV9wYWlyKCZtdXQgc2VsZiwgaGln aDogdTE2LCBsb3c6IHUxNikgeworKyAgICBmbiB3cml0ZV9zdXJyb2dhdGVfcGFpcigmbXV0IHNl bGYsIGhpZ2g6IHUxNiwgbG93OiB1MTYpIHsKKyAgICAgICAgIHNlbGYud3JpdGVfY29kZV91bml0 KGhpZ2gpOworICAgICAgICAgc2VsZi53cml0ZV9jb2RlX3VuaXQobG93KTsKKyAgICAgfQorICAg ICAjW2lubGluZShhbHdheXMpXQorICAgICBmbiB3cml0ZV9iaWc1X2NvbWJpbmF0aW9uKCZtdXQg c2VsZiwgY29tYmluZWQ6IHUxNiwgY29tYmluaW5nOiB1MTYpIHsKKyAgICAgICAgIHNlbGYud3Jp dGVfYm1wX2V4Y2xfYXNjaWkoY29tYmluZWQpOworICAgICAgICAgc2VsZi53cml0ZV9ibXBfZXhj bF9hc2NpaShjb21iaW5pbmcpOworICAgICB9CisrICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJp YW50OiBDb3B5QXNjaWlSZXN1bHQ6OkdvT24gd2lsbCBvbmx5IGNvbnRhaW4gYnl0ZXMgPj0weDgw CisgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgIHB1YiBmbiBjb3B5X2FzY2lpX2Zyb21fY2hl Y2tfc3BhY2VfYm1wPCdiPigKKyAgICAgICAgICYnYiBtdXQgc2VsZiwKKyAgICAgICAgIHNvdXJj ZTogJm11dCBCeXRlU291cmNlLAorICAgICApIC0+IENvcHlBc2NpaVJlc3VsdDwoRGVjb2RlclJl c3VsdCwgdXNpemUsIHVzaXplKSwgKHU4LCBVdGYxNkJtcEhhbmRsZTwnYiwgJ2E+KT4geworICAg ICAgICAgbGV0IG5vbl9hc2NpaV9yZXQgPSB7CisgICAgICAgICAgICAgbGV0IHNyY19yZW1haW5p bmcgPSAmc291cmNlLnNsaWNlW3NvdXJjZS5wb3MuLl07CisgICAgICAgICAgICAgbGV0IGRzdF9y ZW1haW5pbmcgPSAmbXV0IHNlbGYuc2xpY2Vbc2VsZi5wb3MuLl07CisgICAgICAgICAgICAgbGV0 IChwZW5kaW5nLCBsZW5ndGgpID0gaWYgZHN0X3JlbWFpbmluZy5sZW4oKSA8IHNyY19yZW1haW5p bmcubGVuKCkgeworICAgICAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6T3V0cHV0RnVsbCwg ZHN0X3JlbWFpbmluZy5sZW4oKSkKKyAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg ICAgICAoRGVjb2RlclJlc3VsdDo6SW5wdXRFbXB0eSwgc3JjX3JlbWFpbmluZy5sZW4oKSkKKyAg ICAgICAgICAgICB9OworKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBmdW5jdGlvbiBpcyBk b2N1bWVudGVkIGFzIG5lZWRpbmcgdmFsaWQgcG9pbnRlcnMgZm9yIHNyYy9kZXN0IGFuZCBsZW4s IHdoaWNoCisrICAgICAgICAgICAgLy8gaXMgdHJ1ZSBzaW5jZSB3ZSd2ZSBwYXNzZWQgdGhlIG1p bnVtdW0gbGVuZ3RoIG9mIHRoZSB0d28KKyAgICAgICAgICAgICBtYXRjaCB1bnNhZmUgeworICAg ICAgICAgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbihzcmNfcmVtYWluaW5nLmFzX3B0cigp LCBkc3RfcmVtYWluaW5nLmFzX211dF9wdHIoKSwgbGVuZ3RoKQorICAgICAgICAgICAgIH0gewor ICAgICAgICAgICAgICAgICBOb25lID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5w b3MgKz0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICAgc2VsZi5wb3MgKz0gbGVuZ3RoOwor ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2NpaVJlc3VsdDo6U3RvcCgocGVuZGlu Zywgc291cmNlLnBvcywgc2VsZi5wb3MpKTsKKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAg ICAgICAgICAvLyBTYWZldHk6IHRoZSBmdW5jdGlvbiBpcyBkb2N1bWVudGVkIGFzIHJldHVybmlu ZyBieXRlcyA+PTB4ODAgaW4gdGhlIFNvbWUKKyAgICAgICAgICAgICAgICAgU29tZSgobm9uX2Fz Y2lpLCBjb25zdW1lZCkpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0g Y29uc3VtZWQ7CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnBvcyArPSBjb25zdW1lZDsKKyAg ICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MgKz0gMTsgLy8gKzEgZm9yIG5vbl9hc2NpaQor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IG5vbi1hc2Np aSBidWJibGVkIG91dCBoZXJlCisgICAgICAgICAgICAgICAgICAgICBub25fYXNjaWkKKyAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgIH07CisrICAgICAgICAvLyBT YWZldHk6IG5vbi1hc2NpaSByZXR1cm5lZCBoZXJlCisgICAgICAgICBDb3B5QXNjaWlSZXN1bHQ6 OkdvT24oKG5vbl9hc2NpaV9yZXQsIFV0ZjE2Qm1wSGFuZGxlOjpuZXcoc2VsZikpKQorICAgICB9 CisrICAgIC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBDb3B5QXNjaWlSZXN1bHQ6OkdvT24g d2lsbCBvbmx5IGNvbnRhaW4gYnl0ZXMgPj0weDgwCisgICAgICNbaW5saW5lKGFsd2F5cyldCisg ICAgIHB1YiBmbiBjb3B5X2FzY2lpX2Zyb21fY2hlY2tfc3BhY2VfYXN0cmFsPCdiPigKKyAgICAg ICAgICYnYiBtdXQgc2VsZiwKKyAgICAgICAgIHNvdXJjZTogJm11dCBCeXRlU291cmNlLAorICAg ICApIC0+IENvcHlBc2NpaVJlc3VsdDwoRGVjb2RlclJlc3VsdCwgdXNpemUsIHVzaXplKSwgKHU4 LCBVdGYxNkFzdHJhbEhhbmRsZTwnYiwgJ2E+KT4geworICAgICAgICAgbGV0IG5vbl9hc2NpaV9y ZXQgPSB7CisgICAgICAgICAgICAgbGV0IGRzdF9sZW4gPSBzZWxmLnNsaWNlLmxlbigpOworICAg ICAgICAgICAgIGxldCBzcmNfcmVtYWluaW5nID0gJnNvdXJjZS5zbGljZVtzb3VyY2UucG9zLi5d OworICAgICAgICAgICAgIGxldCBkc3RfcmVtYWluaW5nID0gJm11dCBzZWxmLnNsaWNlW3NlbGYu cG9zLi5dOworICAgICAgICAgICAgIGxldCAocGVuZGluZywgbGVuZ3RoKSA9IGlmIGRzdF9yZW1h aW5pbmcubGVuKCkgPCBzcmNfcmVtYWluaW5nLmxlbigpIHsKKyAgICAgICAgICAgICAgICAgKERl Y29kZXJSZXN1bHQ6Ok91dHB1dEZ1bGwsIGRzdF9yZW1haW5pbmcubGVuKCkpCisgICAgICAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgKERlY29kZXJSZXN1bHQ6OklucHV0RW1wdHks IHNyY19yZW1haW5pbmcubGVuKCkpCisgICAgICAgICAgICAgfTsKKysgICAgICAgICAgICAvLyBT YWZldHk6IFRoaXMgZnVuY3Rpb24gaXMgZG9jdW1lbnRlZCBhcyBuZWVkaW5nIHZhbGlkIHBvaW50 ZXJzIGZvciBzcmMvZGVzdCBhbmQgbGVuLCB3aGljaAorKyAgICAgICAgICAgIC8vIGlzIHRydWUg c2luY2Ugd2UndmUgcGFzc2VkIHRoZSBtaW51bXVtIGxlbmd0aCBvZiB0aGUgdHdvCisgICAgICAg ICAgICAgbWF0Y2ggdW5zYWZlIHsKKyAgICAgICAgICAgICAgICAgYXNjaWlfdG9fYmFzaWNfbGF0 aW4oc3JjX3JlbWFpbmluZy5hc19wdHIoKSwgZHN0X3JlbWFpbmluZy5hc19tdXRfcHRyKCksIGxl bmd0aCkKKyAgICAgICAgICAgICB9IHsKKyAgICAgICAgICAgICAgICAgTm9uZSA9PiB7CisgICAg ICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAg ICAgIHNlbGYucG9zICs9IGxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb3B5 QXNjaWlSZXN1bHQ6OlN0b3AoKHBlbmRpbmcsIHNvdXJjZS5wb3MsIHNlbGYucG9zKSk7CisgICAg ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgZnVuY3Rpb24g aXMgZG9jdW1lbnRlZCBhcyByZXR1cm5pbmcgYnl0ZXMgPj0weDgwIGluIHRoZSBTb21lCisgICAg ICAgICAgICAgICAgIFNvbWUoKG5vbl9hc2NpaSwgY29uc3VtZWQpKSA9PiB7CisgICAgICAgICAg ICAgICAgICAgICBzb3VyY2UucG9zICs9IGNvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAg c2VsZi5wb3MgKz0gY29uc3VtZWQ7CisgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnBvcyAr IDEgPCBkc3RfbGVuIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UucG9zICs9IDE7 IC8vICsxIGZvciBub25fYXNjaWkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lpIGJ1YmJsZWQgb3V0IGhlcmUKKyAgICAgICAgICAg ICAgICAgICAgICAgICBub25fYXNjaWkKKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvcHlBc2NpaVJlc3VsdDo6U3RvcCgoCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY29kZXJSZXN1bHQ6Ok91dHB1dEZ1bGwsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5wb3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYucG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICkpOworICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQor ICAgICAgICAgfTsKKysgICAgICAgIC8vIFNhZmV0eTogbm9uLWFzY2lpIHJldHVybmVkIGhlcmUK KyAgICAgICAgIENvcHlBc2NpaVJlc3VsdDo6R29Pbigobm9uX2FzY2lpX3JldCwgVXRmMTZBc3Ry YWxIYW5kbGU6Om5ldyhzZWxmKSkpCisgICAgIH0KKyAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICAgcHViIGZuIGNvcHlfdXRmOF91cF90b19pbnZhbGlkX2Zyb20oJm11dCBzZWxmLCBzb3VyY2U6 ICZtdXQgQnl0ZVNvdXJjZSkgeworICAgICAgICAgbGV0IHNyY19yZW1haW5pbmcgPSAmc291cmNl LnNsaWNlW3NvdXJjZS5wb3MuLl07CisgICAgICAgICBsZXQgZHN0X3JlbWFpbmluZyA9ICZtdXQg c2VsZi5zbGljZVtzZWxmLnBvcy4uXTsKKyAgICAgICAgIGxldCAocmVhZCwgd3JpdHRlbikgPSBj b252ZXJ0X3V0ZjhfdG9fdXRmMTZfdXBfdG9faW52YWxpZChzcmNfcmVtYWluaW5nLCBkc3RfcmVt YWluaW5nKTsKKyAgICAgICAgIHNvdXJjZS5wb3MgKz0gcmVhZDsKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9saWIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2Vu Y29kaW5nX3JzL3NyYy9saWIucnMKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMv c3JjL2xpYi5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvbGliLnJz CitAQCAtNjg0LDM3ICs2ODQsMjYgQEAKKyAvLyEgPHRyPjx0ZD5USVMtNjIwPC90ZD48dGQ+d2lu ZG93cy04NzQ8L3RkPjwvdHI+CisgLy8hIDwvdGJvZHk+CisgLy8hIDwvdGFibGU+CisgLy8hCisg Ly8hIFNlZSB0aGUgc2VjdGlvbiBbX1VURi0xNkxFLCBVVEYtMTZCRSBhbmQgVW5pY29kZSBFbmNv ZGluZyBTY2hlbWVzX10oI3V0Zi0xNmxlLXV0Zi0xNmJlLWFuZC11bmljb2RlLWVuY29kaW5nLXNj aGVtZXMpCisgLy8hIGZvciBkaXNjdXNzaW9uIGFib3V0IHRoZSBVVEYtMTYgZmFtaWx5LgorIAor ICMhW25vX3N0ZF0KKy0jIVtjZmdfYXR0cihmZWF0dXJlID0gInNpbWQtYWNjZWwiLCBmZWF0dXJl KGNvcmVfaW50cmluc2ljcykpXQorKyMhW2NmZ19hdHRyKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIs IGZlYXR1cmUoY29yZV9pbnRyaW5zaWNzLCBwb3J0YWJsZV9zaW1kKSldCisgCisgI1tjZmcoZmVh dHVyZSA9ICJhbGxvYyIpXQorICNbY2ZnX2F0dHIodGVzdCwgbWFjcm9fdXNlKV0KKyBleHRlcm4g Y3JhdGUgYWxsb2M7CisgCisgZXh0ZXJuIGNyYXRlIGNvcmU7CisgI1ttYWNyb191c2VdCisgZXh0 ZXJuIGNyYXRlIGNmZ19pZjsKKyAKKy0jW2NmZyhhbGwoCistICAgIGZlYXR1cmUgPSAic2ltZC1h Y2NlbCIsCistICAgIGFueSgKKy0gICAgICAgIHRhcmdldF9mZWF0dXJlID0gInNzZTIiLAorLSAg ICAgICAgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2FyY2ggPSAiYWFyY2g2 NCIpLAorLSAgICAgICAgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1 cmUgPSAibmVvbiIpCistICAgICkKKy0pKV0KKy0jW21hY3JvX3VzZShzaHVmZmxlKV0KKy1leHRl cm4gY3JhdGUgcGFja2VkX3NpbWQ7CistCisgI1tjZmcoZmVhdHVyZSA9ICJzZXJkZSIpXQorIGV4 dGVybiBjcmF0ZSBzZXJkZTsKKyAKKyAjW2NmZyhhbGwodGVzdCwgZmVhdHVyZSA9ICJzZXJkZSIp KV0KKyBleHRlcm4gY3JhdGUgYmluY29kZTsKKyAjW2NmZyhhbGwodGVzdCwgZmVhdHVyZSA9ICJz ZXJkZSIpKV0KKyAjW21hY3JvX3VzZV0KKyBleHRlcm4gY3JhdGUgc2VyZGVfZGVyaXZlOworZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL21lbS5ycworLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9lbmNvZGluZ19ycy9zcmMvbWVtLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy9tZW0ucnMKK0BAIC0xMTEsMTYgKzExMSwyMSBAQCBtYWNyb19ydWxlcyEgYnlfdW5p dF9jaGVja19hbHUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbF9hbGlnbm1l bnQgLT0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgYWNjdSA+PSAkYm91bmQgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c19zdHJpZGUgPSBsZW4g LSBBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplOworICAgICAgICAgICAgICAgICAgICAgaWYgb2Zm c2V0ICsgKDQgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpIDw9IGxlbiB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiB0aGUgYWJvdmUgY2hlY2sgbGV0cyB1cyBwZXJm b3JtIDQgY29uc2VjdXRpdmUgcmVhZHMgb2YKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBs ZW5ndGggQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZS4gQUxVX0FMSUdOTUVOVCBpcyB0aGUgc2l6 ZSBvZiB1c2l6ZSwgYW5kIHVuaXRfc2l6ZQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlz IHRoZSBzaXplIG9mIHRoZSBgc3JjYCBwb2ludGVyLCBzbyB0aGlzIGlzIGVxdWFsIHRvIHBlcmZv cm1pbmcgZm91ciB1c2l6ZSByZWFkcy4KKysgICAgICAgICAgICAgICAgICAgICAgICAvLworKyAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaW52YXJpYW50IGlzIHVwaGVsZCBvbiBhbGwg bG9vcCBpdGVyYXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxlbl9taW51c191 bnJvbGwgPSBsZW4gLSAoNCAqIChBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplKSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgbG9vcCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB1bnJvbGxfYWNjdSA9IHVuc2FmZSB7ICooc3JjLmFkZChvZmZzZXQpIGFzICpjb25zdCB1c2l6 ZSkgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1bnNhZmUgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICooc3JjLmFkZChvZmZzZXQgKyAoQUxVX0FM SUdOTUVOVCAvIHVuaXRfc2l6ZSkpIGFzICpjb25zdCB1c2l6ZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdW5z YWZlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKHNyYy5hZGQob2Zm c2V0ICsgKDIgKiAoQUxVX0FMSUdOTUVOVCAvIHVuaXRfc2l6ZSkpKQorQEAgLTEyOSwyMiArMTM0 LDI0IEBAIG1hY3JvX3J1bGVzISBieV91bml0X2NoZWNrX2FsdSB7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHVuc2FmZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKihzcmMuYWRkKG9mZnNldCArICgzICogKEFMVV9BTElHTk1FTlQgLyB1bml0X3Np emUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNvbnN0 IHVzaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgdW5yb2xsX2FjY3UgJiAkbWFzayAhPSAwIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gNCAq IChBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gU2FmZXR5OiB0aGlzIGNoZWNrIGxldHMgdXMgY29udGludWUgdG8gcGVyZm9ybSB0aGUg NCByZWFkcyBlYXJsaWVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9mZnNldCA+ IGxlbl9taW51c191bnJvbGwgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB3aGls ZSBvZmZzZXQgPD0gbGVuX21pbnVzX3N0cmlkZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAg Ly8gU2FmZXR5OiB0aGUgYWJvdmUgY2hlY2sgbGV0cyB1cyBwZXJmb3JtIG9uZSB1c2l6ZSByZWFk LgorICAgICAgICAgICAgICAgICAgICAgICAgIGFjY3UgfD0gdW5zYWZlIHsgKihzcmMuYWRkKG9m ZnNldCkgYXMgKmNvbnN0IHVzaXplKSB9OworICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNl dCArPSBBTFVfQUxJR05NRU5UIC8gdW5pdF9zaXplOworICAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGZvciAmdW5p dCBpbiAmYnVmZmVyW29mZnNldC4uXSB7CisgICAgICAgICAgICAgICAgIGFjY3UgfD0gdW5pdCBh cyB1c2l6ZTsKKyAgICAgICAgICAgICB9CitAQCAtMTg0LDE2ICsxOTEsMjEgQEAgbWFjcm9fcnVs ZXMhIGJ5X3VuaXRfY2hlY2tfc2ltZCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu dGlsX2FsaWdubWVudCAtPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBhY2N1ID49ICRib3VuZCB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3N0 cmlkZSA9IGxlbiAtIFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemU7CisgICAgICAgICAgICAg ICAgICAgICBpZiBvZmZzZXQgKyAoNCAqIChTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplKSkg PD0gbGVuIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IHRoZSBhYm92ZSBj aGVjayBsZXRzIHVzIHBlcmZvcm0gNCBjb25zZWN1dGl2ZSByZWFkcyBvZgorKyAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGxlbmd0aCBTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplLiBTSU1E X1NUUklERV9TSVpFIGlzIHRoZSBzaXplIG9mICRzaW1kX3R5LCBhbmQgdW5pdF9zaXplCisrICAg ICAgICAgICAgICAgICAgICAgICAgLy8gaXMgdGhlIHNpemUgb2YgdGhlIGBzcmNgIHBvaW50ZXIs IHNvIHRoaXMgaXMgZXF1YWwgdG8gcGVyZm9ybWluZyBmb3VyICRzaW1kX3R5IHJlYWRzLgorKyAg ICAgICAgICAgICAgICAgICAgICAgIC8vCisrICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhp cyBpbnZhcmlhbnQgaXMgdXBoZWxkIG9uIGFsbCBsb29wIGl0ZXJhdGlvbnMKKyAgICAgICAgICAg ICAgICAgICAgICAgICBsZXQgbGVuX21pbnVzX3Vucm9sbCA9IGxlbiAtICg0ICogKFNJTURfU1RS SURFX1NJWkUgLyB1bml0X3NpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb29wIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVucm9sbF9hY2N1ID0gdW5zYWZlIHsg KihzcmMuYWRkKG9mZnNldCkgYXMgKmNvbnN0ICRzaW1kX3R5KSB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHVuc2FmZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKihzcmMuYWRkKG9mZnNldCArIChTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXpl KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgKmNvbnN0ICRz aW1kX3R5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCB1bnNhZmUgeworQEAgLTIwMywyMyArMjE1LDI1IEBAIG1h Y3JvX3J1bGVzISBieV91bml0X2NoZWNrX3NpbWQgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB1bnNhZmUgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICooc3JjLmFkZChvZmZzZXQgKyAoMyAqIChTSU1EX1NUUklERV9TSVpFIC8gdW5pdF9zaXplKSkp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzICpjb25zdCAkc2lt ZF90eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICEkZnVuYyh1bnJvbGxfYWNjdSkgeworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSA0ICogKFNJTURf U1RSSURFX1NJWkUgLyB1bml0X3NpemUpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBTYWZldHk6IHRoaXMgY2hlY2sgbGV0cyB1cyBjb250aW51ZSB0byBwZXJmb3JtIHRoZSA0IHJl YWRzIGVhcmxpZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2Zmc2V0ID4gbGVu X21pbnVzX3Vucm9sbCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg c2ltZF9hY2N1ID0gJHNwbGF0OworICAgICAgICAgICAgICAgICAgICAgd2hpbGUgb2Zmc2V0IDw9 IGxlbl9taW51c19zdHJpZGUgeworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog dGhlIGFib3ZlIGNoZWNrIGxldHMgdXMgcGVyZm9ybSBvbmUgJHNpbWRfdHkgcmVhZC4KKyAgICAg ICAgICAgICAgICAgICAgICAgICBzaW1kX2FjY3UgPSBzaW1kX2FjY3UgfCB1bnNhZmUgeyAqKHNy Yy5hZGQob2Zmc2V0KSBhcyAqY29uc3QgJHNpbWRfdHkpIH07CisgICAgICAgICAgICAgICAgICAg ICAgICAgb2Zmc2V0ICs9IFNJTURfU1RSSURFX1NJWkUgLyB1bml0X3NpemU7CisgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBpZiAhJGZ1bmMoc2ltZF9hY2N1KSB7 CisgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorQEAgLTIyOSwxOCAr MjQzLDE4IEBAIG1hY3JvX3J1bGVzISBieV91bml0X2NoZWNrX3NpbWQgeworICAgICAgICAgICAg IGFjY3UgPCAkYm91bmQKKyAgICAgICAgIH0KKyAgICAgfTsKKyB9CisgCisgY2ZnX2lmISB7Cisg ICAgIGlmICNbY2ZnKGFsbChmZWF0dXJlID0gInNpbWQtYWNjZWwiLCBhbnkodGFyZ2V0X2ZlYXR1 cmUgPSAic3NlMiIsIGFsbCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIsIHRhcmdldF9hcmNoID0g ImFhcmNoNjQiKSwgYWxsKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIiwgdGFyZ2V0X2ZlYXR1cmUg PSAibmVvbiIpKSkpXSB7CisgICAgICAgICB1c2UgY3JhdGU6OnNpbWRfZnVuY3M6Oio7CistICAg ICAgICB1c2UgcGFja2VkX3NpbWQ6OnU4eDE2OworLSAgICAgICAgdXNlIHBhY2tlZF9zaW1kOjp1 MTZ4ODsKKysgICAgICAgIHVzZSBjb3JlOjpzaW1kOjp1OHgxNjsKKysgICAgICAgIHVzZSBjb3Jl OjpzaW1kOjp1MTZ4ODsKKyAKKyAgICAgICAgIGNvbnN0IFNJTURfQUxJR05NRU5UOiB1c2l6ZSA9 IDE2OworIAorICAgICAgICAgY29uc3QgU0lNRF9BTElHTk1FTlRfTUFTSzogdXNpemUgPSAxNTsK KyAKKyAgICAgICAgIGJ5X3VuaXRfY2hlY2tfc2ltZCEoaXNfYXNjaWlfaW1wbCwgdTgsIHU4eDE2 OjpzcGxhdCgwKSwgdTh4MTYsIDB4ODAsIHNpbWRfaXNfYXNjaWkpOworICAgICAgICAgYnlfdW5p dF9jaGVja19zaW1kIShpc19iYXNpY19sYXRpbl9pbXBsLCB1MTYsIHUxNng4OjpzcGxhdCgwKSwg dTE2eDgsIDB4ODAsIHNpbWRfaXNfYmFzaWNfbGF0aW4pOworICAgICAgICAgYnlfdW5pdF9jaGVj a19zaW1kIShpc191dGYxNl9sYXRpbjFfaW1wbCwgdTE2LCB1MTZ4ODo6c3BsYXQoMCksIHUxNng4 LCAweDEwMCwgc2ltZF9pc19sYXRpbjEpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv ZW5jb2RpbmdfcnMvc3JjL3NpbWRfZnVuY3MucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5n X3JzL3NyYy9zaW1kX2Z1bmNzLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3Jz L3NyYy9zaW1kX2Z1bmNzLnJzCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3Ny Yy9zaW1kX2Z1bmNzLnJzCitAQCAtMiw2NSArMiw4NCBAQAorIC8vIGZpbGUgYXQgdGhlIHRvcC1s ZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24uCisgLy8KKyAvLyBMaWNlbnNlZCB1 bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgor IC8vIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBN SVQgbGljZW5zZQorIC8vIDxMSUNFTlNFLU1JVCBvciBodHRwczovL29wZW5zb3VyY2Uub3JnL2xp Y2Vuc2VzL01JVD4sIGF0IHlvdXIKKyAvLyBvcHRpb24uIFRoaXMgZmlsZSBtYXkgbm90IGJlIGNv cGllZCwgbW9kaWZpZWQsIG9yIGRpc3RyaWJ1dGVkCisgLy8gZXhjZXB0IGFjY29yZGluZyB0byB0 aG9zZSB0ZXJtcy4KKyAKKy11c2UgcGFja2VkX3NpbWQ6OnUxNng4OworLXVzZSBwYWNrZWRfc2lt ZDo6dTh4MTY7CistdXNlIHBhY2tlZF9zaW1kOjpJbnRvQml0czsKKyt1c2UgYW55X2FsbF93b3Jr YXJvdW5kOjphbGxfbWFzazE2eDg7CisrdXNlIGFueV9hbGxfd29ya2Fyb3VuZDo6YWxsX21hc2s4 eDE2OworK3VzZSBhbnlfYWxsX3dvcmthcm91bmQ6OmFueV9tYXNrMTZ4ODsKKyt1c2UgYW55X2Fs bF93b3JrYXJvdW5kOjphbnlfbWFzazh4MTY7CisrdXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBh cnRpYWxFcTsKKyt1c2UgY29yZTo6c2ltZDo6Y21wOjpTaW1kUGFydGlhbE9yZDsKKyt1c2UgY29y ZTo6c2ltZDo6bWFzazE2eDg7CisrdXNlIGNvcmU6OnNpbWQ6Om1hc2s4eDE2OworK3VzZSBjb3Jl OjpzaW1kOjpzaW1kX3N3aXp6bGU7CisrdXNlIGNvcmU6OnNpbWQ6OnUxNng4OworK3VzZSBjb3Jl OjpzaW1kOjp1OHgxNjsKKyt1c2UgY29yZTo6c2ltZDo6VG9CeXRlczsKKyAKKyAvLyBUT0RPOiBN aWdyYXRlIHVuYWxpZ25lZCBhY2Nlc3MgdG8gc3RkbGliIGNvZGUgaWYvd2hlbiB0aGUgUkZDCisg Ly8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMTcyNSBpcyBpbXBsZW1l bnRlZC4KKyAKKysvLy8gU2FmZXR5IGludmFyaWFudDogcHRyIG11c3QgYmUgdmFsaWQgZm9yIGFu IHVuYWxpZ25lZCByZWFkIG9mIDE2IGJ5dGVzCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5z YWZlIGZuIGxvYWQxNl91bmFsaWduZWQocHRyOiAqY29uc3QgdTgpIC0+IHU4eDE2IHsKKy0gICAg bGV0IG11dCBzaW1kID0gOjpjb3JlOjptZW06OnVuaW5pdGlhbGl6ZWQoKTsKKy0gICAgOjpjb3Jl OjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcocHRyLCAmbXV0IHNpbWQgYXMgKm11dCB1OHgxNiBh cyAqbXV0IHU4LCAxNik7CistICAgIHNpbWQKKysgICAgbGV0IG11dCBzaW1kID0gOjpjb3JlOjpt ZW06Ok1heWJlVW5pbml0Ojo8dTh4MTY+Ojp1bmluaXQoKTsKKysgICAgOjpjb3JlOjpwdHI6OmNv cHlfbm9ub3ZlcmxhcHBpbmcocHRyLCBzaW1kLmFzX211dF9wdHIoKSBhcyAqbXV0IHU4LCAxNik7 CisrICAgIC8vIFNhZmV0eTogY29waWVkIDE2IGJ5dGVzIG9mIGluaXRpYWxpemVkIG1lbW9yeSBp bnRvIHRoaXMsIGl0IGlzIG5vdyBpbml0aWFsaXplZAorKyAgICBzaW1kLmFzc3VtZV9pbml0KCkK KyB9CisgCisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBh bGlnbmVkLWZvci11OHgxNiByZWFkIG9mIDE2IGJ5dGVzCisgI1thbGxvdyhkZWFkX2NvZGUpXQor ICNbaW5saW5lKGFsd2F5cyldCisgcHViIHVuc2FmZSBmbiBsb2FkMTZfYWxpZ25lZChwdHI6ICpj b25zdCB1OCkgLT4gdTh4MTYgeworICAgICAqKHB0ciBhcyAqY29uc3QgdTh4MTYpCisgfQorIAor Ky8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVk IHN0b3JlIG9mIDE2IGJ5dGVzCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIHN0 b3JlMTZfdW5hbGlnbmVkKHB0cjogKm11dCB1OCwgczogdTh4MTYpIHsKKyAgICAgOjpjb3JlOjpw dHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoJnMgYXMgKmNvbnN0IHU4eDE2IGFzICpjb25zdCB1OCwg cHRyLCAxNik7CisgfQorIAorKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIgbXVzdCBiZSB2YWxp ZCBmb3IgYW4gYWxpZ25lZC1mb3ItdTh4MTYgc3RvcmUgb2YgMTYgYnl0ZXMKKyAjW2FsbG93KGRl YWRfY29kZSldCisgI1tpbmxpbmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIHN0b3JlMTZfYWxp Z25lZChwdHI6ICptdXQgdTgsIHM6IHU4eDE2KSB7CisgICAgICoocHRyIGFzICptdXQgdTh4MTYp ID0gczsKKyB9CisgCisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZv ciBhbiB1bmFsaWduZWQgcmVhZCBvZiAxNiBieXRlcworICNbaW5saW5lKGFsd2F5cyldCisgcHVi IHVuc2FmZSBmbiBsb2FkOF91bmFsaWduZWQocHRyOiAqY29uc3QgdTE2KSAtPiB1MTZ4OCB7Cist ICAgIGxldCBtdXQgc2ltZCA9IDo6Y29yZTo6bWVtOjp1bmluaXRpYWxpemVkKCk7CistICAgIDo6 Y29yZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKHB0ciBhcyAqY29uc3QgdTgsICZtdXQgc2lt ZCBhcyAqbXV0IHUxNng4IGFzICptdXQgdTgsIDE2KTsKKy0gICAgc2ltZAorKyAgICBsZXQgbXV0 IHNpbWQgPSA6OmNvcmU6Om1lbTo6TWF5YmVVbmluaXQ6Ojx1MTZ4OD46OnVuaW5pdCgpOworKyAg ICA6OmNvcmU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyhwdHIgYXMgKmNvbnN0IHU4LCBzaW1k LmFzX211dF9wdHIoKSBhcyAqbXV0IHU4LCAxNik7CisrICAgIC8vIFNhZmV0eTogY29waWVkIDE2 IGJ5dGVzIG9mIGluaXRpYWxpemVkIG1lbW9yeSBpbnRvIHRoaXMsIGl0IGlzIG5vdyBpbml0aWFs aXplZAorKyAgICBzaW1kLmFzc3VtZV9pbml0KCkKKyB9CisgCisrLy8vIFNhZmV0eSBpbnZhcmlh bnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBhbGlnbmVkLWZvci11MTZ4OCByZWFkIG9mIDE2 IGJ5dGVzCisgI1thbGxvdyhkZWFkX2NvZGUpXQorICNbaW5saW5lKGFsd2F5cyldCisgcHViIHVu c2FmZSBmbiBsb2FkOF9hbGlnbmVkKHB0cjogKmNvbnN0IHUxNikgLT4gdTE2eDggeworICAgICAq KHB0ciBhcyAqY29uc3QgdTE2eDgpCisgfQorIAorKy8vLyBTYWZldHkgaW52YXJpYW50OiBwdHIg bXVzdCBiZSB2YWxpZCBmb3IgYW4gdW5hbGlnbmVkIHN0b3JlIG9mIDE2IGJ5dGVzCisgI1tpbmxp bmUoYWx3YXlzKV0KKyBwdWIgdW5zYWZlIGZuIHN0b3JlOF91bmFsaWduZWQocHRyOiAqbXV0IHUx NiwgczogdTE2eDgpIHsKKyAgICAgOjpjb3JlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoJnMg YXMgKmNvbnN0IHUxNng4IGFzICpjb25zdCB1OCwgcHRyIGFzICptdXQgdTgsIDE2KTsKKyB9Cisg CisrLy8vIFNhZmV0eSBpbnZhcmlhbnQ6IHB0ciBtdXN0IGJlIHZhbGlkIGZvciBhbiBhbGlnbmVk LWZvci11MTZ4OCBzdG9yZSBvZiAxNiBieXRlcworICNbYWxsb3coZGVhZF9jb2RlKV0KKyAjW2lu bGluZShhbHdheXMpXQorIHB1YiB1bnNhZmUgZm4gc3RvcmU4X2FsaWduZWQocHRyOiAqbXV0IHUx NiwgczogdTE2eDgpIHsKKyAgICAgKihwdHIgYXMgKm11dCB1MTZ4OCkgPSBzOworIH0KKyAKKyBj ZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcoYWxsKHRhcmdldF9mZWF0dXJlID0gInNzZTIiLCB0YXJn ZXRfYXJjaCA9ICJ4ODZfNjQiKSldIHsKK0BAIC05NSwyMzQgKzExNCwyNDEgQEAgY2ZnX2lmISB7 CisgcHViIGZuIHNpbWRfYnl0ZV9zd2FwKHM6IHUxNng4KSAtPiB1MTZ4OCB7CisgICAgIGxldCBs ZWZ0ID0gcyA8PCA4OworICAgICBsZXQgcmlnaHQgPSBzID4+IDg7CisgICAgIGxlZnQgfCByaWdo dAorIH0KKyAKKyAjW2lubGluZShhbHdheXMpXQorIHB1YiBmbiB0b191MTZfbGFuZXMoczogdTh4 MTYpIC0+IHUxNng4IHsKKy0gICAgcy5pbnRvX2JpdHMoKQorKyAgICB1MTZ4ODo6ZnJvbV9uZV9i eXRlcyhzKQorIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAic3NlMiIpXSB7CisgCisgICAgICAgICAvLyBFeHBvc2UgbG93LWxldmVsIG1hc2sgaW5zdGVh ZCBvZiBoaWdoZXItbGV2ZWwgY29uY2x1c2lvbiwKKyAgICAgICAgIC8vIGJlY2F1c2UgdGhlIG5v bi1BU0NJSSBjYXNlIHdvdWxkIHBlcmZvcm0gbGVzcyB3ZWxsIG90aGVyd2lzZS4KKysgICAgICAg IC8vIFNhZmV0eS11c2FibGUgaW52YXJpYW50OiBUaGlzIHJldHVybmVkIHZhbHVlIGlzIHdoZXRo ZXIgZWFjaCBoaWdoIGJpdCBpcyBzZXQKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAg ICAgICBwdWIgZm4gbWFza19hc2NpaShzOiB1OHgxNikgLT4gaTMyIHsKKyAgICAgICAgICAgICB1 bnNhZmUgeworLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG9fYml0cygp KQorKyAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG8oKSkKKyAgICAgICAg ICAgICB9CisgICAgICAgICB9CisgCisgICAgIH0gZWxzZSB7CisgCisgICAgIH0KKyB9CisgCisg Y2ZnX2lmISB7CisgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworICAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lzX2FzY2lpKHM6 IHU4eDE2KSAtPiBib29sIHsKKyAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAg ICBfbW1fbW92ZW1hc2tfZXBpOChzLmludG9fYml0cygpKSA9PSAwCisrICAgICAgICAgICAgICAg IC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysgICAgICAg ICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgocy5pbnRvKCkpID09IDAKKyAgICAgICAgICAgICB9 CisgICAgICAgICB9CisgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IildeworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lz X2FzY2lpKHM6IHU4eDE2KSAtPiBib29sIHsKKyAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICB2bWF4dnFfdTgocy5pbnRvX2JpdHMoKSkgPCAweDgwCisrICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogV2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysgICAg ICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50bygpKSA8IDB4ODAKKyAgICAgICAgICAgICB9Cisg ICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAg ICAgICAgcHViIGZuIHNpbWRfaXNfYXNjaWkoczogdTh4MTYpIC0+IGJvb2wgeworICAgICAgICAg ICAgIC8vIFRoaXMgb3B0aW1pemVzIGJldHRlciBvbiBBUk0gdGhhbgorICAgICAgICAgICAgIC8v IHRoZSBsdCBmb3JtdWxhdGlvbi4KKyAgICAgICAgICAgICBsZXQgaGlnaGVzdF9hc2NpaSA9IHU4 eDE2OjpzcGxhdCgweDdGKTsKKy0gICAgICAgICAgICAhcy5ndChoaWdoZXN0X2FzY2lpKS5hbnko KQorKyAgICAgICAgICAgICFhbnlfbWFzazh4MTYocy5zaW1kX2d0KGhpZ2hlc3RfYXNjaWkpKQor ICAgICAgICAgfQorICAgICB9CisgfQorIAorIGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJn ZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAg ICAgICBwdWIgZm4gc2ltZF9pc19zdHJfbGF0aW4xKHM6IHU4eDE2KSAtPiBib29sIHsKKyAgICAg ICAgICAgICBpZiBzaW1kX2lzX2FzY2lpKHMpIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGxldCBhYm92ZV9zdHJfbGF0aW4xID0g dTh4MTY6OnNwbGF0KDB4QzQpOworLSAgICAgICAgICAgIHMubHQoYWJvdmVfc3RyX2xhdGluMSku YWxsKCkKKysgICAgICAgICAgICBzLnNpbWRfbHQoYWJvdmVfc3RyX2xhdGluMSkuYWxsKCkKKyAg ICAgICAgIH0KKyAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV17 CisgICAgICAgICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfc3Ry X2xhdGluMShzOiB1OHgxNikgLT4gYm9vbCB7CisgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAg ICAgICAgICAgICAgdm1heHZxX3U4KHMuaW50b19iaXRzKCkpIDwgMHhDNAorKyAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3JtCisrICAg ICAgICAgICAgICAgIHZtYXh2cV91OChzLmludG8oKSkgPCAweEM0CisgICAgICAgICAgICAgfQor ICAgICAgICAgfQorICAgICB9IGVsc2UgeworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAg ICAgICAgIHB1YiBmbiBzaW1kX2lzX3N0cl9sYXRpbjEoczogdTh4MTYpIC0+IGJvb2wgeworICAg ICAgICAgICAgIGxldCBhYm92ZV9zdHJfbGF0aW4xID0gdTh4MTY6OnNwbGF0KDB4QzQpOworLSAg ICAgICAgICAgIHMubHQoYWJvdmVfc3RyX2xhdGluMSkuYWxsKCkKKysgICAgICAgICAgICBhbGxf bWFzazh4MTYocy5zaW1kX2x0KGFib3ZlX3N0cl9sYXRpbjEpKQorICAgICAgICAgfQorICAgICB9 CisgfQorIAorIGNmZ19pZiEgeworICAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IildeworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lz X2Jhc2ljX2xhdGluKHM6IHUxNng4KSAtPiBib29sIHsKKyAgICAgICAgICAgICB1bnNhZmUgewor LSAgICAgICAgICAgICAgICB2bWF4dnFfdTE2KHMuaW50b19iaXRzKCkpIDwgMHg4MAorKyAgICAg ICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3JyZWN0IHBsYXRmb3Jt CisrICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvKCkpIDwgMHg4MAorICAgICAgICAg ICAgIH0KKyAgICAgICAgIH0KKyAKKyAgICAgICAgICNbaW5saW5lKGFsd2F5cyldCisgICAgICAg ICBwdWIgZm4gc2ltZF9pc19sYXRpbjEoczogdTE2eDgpIC0+IGJvb2wgeworICAgICAgICAgICAg IHVuc2FmZSB7CistICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvX2JpdHMoKSkgPCAw eDEwMAorKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGhhdmUgY2ZnKClkIHRoZSBjb3Jy ZWN0IHBsYXRmb3JtCisrICAgICAgICAgICAgICAgIHZtYXh2cV91MTYocy5pbnRvKCkpIDwgMHgx MDAKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgICAj W2lubGluZShhbHdheXMpXQorICAgICAgICAgcHViIGZuIHNpbWRfaXNfYmFzaWNfbGF0aW4oczog dTE2eDgpIC0+IGJvb2wgeworICAgICAgICAgICAgIGxldCBhYm92ZV9hc2NpaSA9IHUxNng4Ojpz cGxhdCgweDgwKTsKKy0gICAgICAgICAgICBzLmx0KGFib3ZlX2FzY2lpKS5hbGwoKQorKyAgICAg ICAgICAgIGFsbF9tYXNrMTZ4OChzLnNpbWRfbHQoYWJvdmVfYXNjaWkpKQorICAgICAgICAgfQor IAorICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX2lzX2xh dGluMShzOiB1MTZ4OCkgLT4gYm9vbCB7CisgICAgICAgICAgICAgLy8gRm9yIHNvbWUgcmVhc29u LCBvbiBTU0UyIHRoaXMgZm9ybXVsYXRpb24KKyAgICAgICAgICAgICAvLyBzZWVtcyBmYXN0ZXIg aW4gdGhpcyBjYXNlIHdoaWxlIHRoZSBhYm92ZQorICAgICAgICAgICAgIC8vIGZ1bmN0aW9uIGlz IGJldHRlciB0aGUgb3RoZXIgd2F5IHJvdW5kLi4uCisgICAgICAgICAgICAgbGV0IGhpZ2hlc3Rf bGF0aW4xID0gdTE2eDg6OnNwbGF0KDB4RkYpOworLSAgICAgICAgICAgICFzLmd0KGhpZ2hlc3Rf bGF0aW4xKS5hbnkoKQorKyAgICAgICAgICAgICFhbnlfbWFzazE2eDgocy5zaW1kX2d0KGhpZ2hl c3RfbGF0aW4xKSkKKyAgICAgICAgIH0KKyAgICAgfQorIH0KKyAKKyAjW2lubGluZShhbHdheXMp XQorIHB1YiBmbiBjb250YWluc19zdXJyb2dhdGVzKHM6IHUxNng4KSAtPiBib29sIHsKKyAgICAg bGV0IG1hc2sgPSB1MTZ4ODo6c3BsYXQoMHhGODAwKTsKKyAgICAgbGV0IHN1cnJvZ2F0ZV9iaXRz ID0gdTE2eDg6OnNwbGF0KDB4RDgwMCk7CistICAgIChzICYgbWFzaykuZXEoc3Vycm9nYXRlX2Jp dHMpLmFueSgpCisrICAgIGFueV9tYXNrMTZ4OCgocyAmIG1hc2spLnNpbWRfZXEoc3Vycm9nYXRl X2JpdHMpKQorIH0KKyAKKyBjZmdfaWYhIHsKKyAgICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAi YWFyY2g2NCIpXXsKKyAgICAgICAgIG1hY3JvX3J1bGVzISBhYXJjaDY0X3JldHVybl9mYWxzZV9p Zl9iZWxvd19oZWJyZXcgeworICAgICAgICAgICAgICgkczppZGVudCkgPT4gKHsKKyAgICAgICAg ICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIHZtYXh2cV91MTYoJHMu aW50b19iaXRzKCkpIDwgMHgwNTkwIHsKKysgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog V2UgaGF2ZSBjZmcoKWQgdGhlIGNvcnJlY3QgcGxhdGZvcm0KKysgICAgICAgICAgICAgICAgICAg IGlmIHZtYXh2cV91MTYoJHMuaW50bygpKSA8IDB4MDU5MCB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgfSkKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIG1hY3JvX3J1 bGVzISBub25fYWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYWxsIHsKKyAgICAgICAgICAgICAoJHM6 aWRlbnQpID0+ICgpCisgICAgICAgICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgICBtYWNyb19y dWxlcyEgYWFyY2g2NF9yZXR1cm5fZmFsc2VfaWZfYmVsb3dfaGVicmV3IHsKKyAgICAgICAgICAg ICAoJHM6aWRlbnQpID0+ICgpCisgICAgICAgICB9CisgCisgICAgICAgICBtYWNyb19ydWxlcyEg bm9uX2FhcmNoNjRfcmV0dXJuX2ZhbHNlX2lmX2FsbCB7CisgICAgICAgICAgICAgKCRzOmlkZW50 KSA9PiAoeworLSAgICAgICAgICAgICAgICBpZiAkcy5hbGwoKSB7CisrICAgICAgICAgICAgICAg IGlmIGFsbF9tYXNrMTZ4OCgkcykgeworICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfSkKKyAgICAgICAgIH0KKyAgICAg fQorIH0KKyAKKyBtYWNyb19ydWxlcyEgaW5fcmFuZ2UxNng4IHsKKyAgICAgKCRzOmlkZW50LCAk c3RhcnQ6ZXhwciwgJGVuZDpleHByKSA9PiB7eworICAgICAgICAgLy8gU0lNRCBzdWIgaXMgd3Jh cHBpbmcKKy0gICAgICAgICgkcyAtIHUxNng4OjpzcGxhdCgkc3RhcnQpKS5sdCh1MTZ4ODo6c3Bs YXQoJGVuZCAtICRzdGFydCkpCisrICAgICAgICAoJHMgLSB1MTZ4ODo6c3BsYXQoJHN0YXJ0KSku c2ltZF9sdCh1MTZ4ODo6c3BsYXQoJGVuZCAtICRzdGFydCkpCisgICAgIH19OworIH0KKyAKKyAj W2lubGluZShhbHdheXMpXQorIHB1YiBmbiBpc191MTZ4OF9iaWRpKHM6IHUxNng4KSAtPiBib29s IHsKKyAgICAgLy8gV2UgdHJ5IHRvIGZpcnN0IHF1aWNrbHkgcmVmdXRlIHRoZSBSVExuZXNzIG9m IHRoZSB2ZWN0b3IuIElmIHRoYXQKKyAgICAgLy8gZmFpbHMsIHdlIGRvIHRoZSByZWFsIFJUTCBj aGVjaywgc28gaW4gdGhhdCBjYXNlIHdlIGVuZCB1cCB3YXN0aW5nCisgICAgIC8vIHRoZSB3b3Jr IGZvciB0aGUgdXAtZnJvbnQgcXVpY2sgY2hlY2tzLiBFdmVuIHRoZSBxdWljay1jaGVjayBpcwor ICAgICAvLyB0d28tZm9sZCBpbiBvcmRlciB0byByZXR1cm4gYGZhbHNlYCBBU0FQIGlmIGV2ZXJ5 dGhpbmcgaXMgYmVsb3cKKyAgICAgLy8gSGVicmV3LgorIAorICAgICBhYXJjaDY0X3JldHVybl9m YWxzZV9pZl9iZWxvd19oZWJyZXchKHMpOworIAorLSAgICBsZXQgYmVsb3dfaGVicmV3ID0gcy5s dCh1MTZ4ODo6c3BsYXQoMHgwNTkwKSk7CisrICAgIGxldCBiZWxvd19oZWJyZXcgPSBzLnNpbWRf bHQodTE2eDg6OnNwbGF0KDB4MDU5MCkpOworIAorICAgICBub25fYWFyY2g2NF9yZXR1cm5fZmFs c2VfaWZfYWxsIShiZWxvd19oZWJyZXcpOworIAorLSAgICBpZiAoYmVsb3dfaGVicmV3IHwgaW5f cmFuZ2UxNng4IShzLCAweDA5MDAsIDB4MjAwRikgfCBpbl9yYW5nZTE2eDghKHMsIDB4MjA2OCwg MHhEODAyKSkuYWxsKCkgeworKyAgICBpZiBhbGxfbWFzazE2eDgoCisrICAgICAgICBiZWxvd19o ZWJyZXcgfCBpbl9yYW5nZTE2eDghKHMsIDB4MDkwMCwgMHgyMDBGKSB8IGluX3JhbmdlMTZ4OCEo cywgMHgyMDY4LCAweEQ4MDIpLAorKyAgICApIHsKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgfQorIAorICAgICAvLyBRdWljayByZWZ1dGF0aW9uIGZhaWxlZC4gTGV0J3MgZG8gdGhlIGZ1 bGwgY2hlY2suCisgCistICAgIChpbl9yYW5nZTE2eDghKHMsIDB4MDU5MCwgMHgwOTAwKQorLSAg ICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RkIxRCwgMHhGRTAwKQorLSAgICAgICAgfCBpbl9y YW5nZTE2eDghKHMsIDB4RkU3MCwgMHhGRUZGKQorLSAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMs IDB4RDgwMiwgMHhEODA0KQorLSAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RDgzQSwgMHhE ODNDKQorLSAgICAgICAgfCBzLmVxKHUxNng4OjpzcGxhdCgweDIwMEYpKQorLSAgICAgICAgfCBz LmVxKHUxNng4OjpzcGxhdCgweDIwMkIpKQorLSAgICAgICAgfCBzLmVxKHUxNng4OjpzcGxhdCgw eDIwMkUpKQorLSAgICAgICAgfCBzLmVxKHUxNng4OjpzcGxhdCgweDIwNjcpKSkKKy0gICAgLmFu eSgpCisrICAgIGFueV9tYXNrMTZ4OCgKKysgICAgICAgIChpbl9yYW5nZTE2eDghKHMsIDB4MDU5 MCwgMHgwOTAwKQorKyAgICAgICAgICAgIHwgaW5fcmFuZ2UxNng4IShzLCAweEZCMUQsIDB4RkUw MCkKKysgICAgICAgICAgICB8IGluX3JhbmdlMTZ4OCEocywgMHhGRTcwLCAweEZFRkYpCisrICAg ICAgICAgICAgfCBpbl9yYW5nZTE2eDghKHMsIDB4RDgwMiwgMHhEODA0KQorKyAgICAgICAgICAg IHwgaW5fcmFuZ2UxNng4IShzLCAweEQ4M0EsIDB4RDgzQykKKysgICAgICAgICAgICB8IHMuc2lt ZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDBGKSkKKysgICAgICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4 ODo6c3BsYXQoMHgyMDJCKSkKKysgICAgICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQo MHgyMDJFKSkKKysgICAgICAgICAgICB8IHMuc2ltZF9lcSh1MTZ4ODo6c3BsYXQoMHgyMDY3KSkp LAorKyAgICApCisgfQorIAorICNbaW5saW5lKGFsd2F5cyldCisgcHViIGZuIHNpbWRfdW5wYWNr KHM6IHU4eDE2KSAtPiAodTE2eDgsIHUxNng4KSB7CistICAgIHVuc2FmZSB7CistICAgICAgICBs ZXQgZmlyc3Q6IHU4eDE2ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgcywKKy0gICAgICAgICAg ICB1OHgxNjo6c3BsYXQoMCksCistICAgICAgICAgICAgWzAsIDE2LCAxLCAxNywgMiwgMTgsIDMs IDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyM10KKy0gICAgICAgICk7CistICAgICAgICBs ZXQgc2Vjb25kOiB1OHgxNiA9IHNodWZmbGUhKAorLSAgICAgICAgICAgIHMsCistICAgICAgICAg ICAgdTh4MTY6OnNwbGF0KDApLAorLSAgICAgICAgICAgIFs4LCAyNCwgOSwgMjUsIDEwLCAyNiwg MTEsIDI3LCAxMiwgMjgsIDEzLCAyOSwgMTQsIDMwLCAxNSwgMzFdCistICAgICAgICApOworLSAg ICAgICAgKGZpcnN0LmludG9fYml0cygpLCBzZWNvbmQuaW50b19iaXRzKCkpCistICAgIH0KKysg ICAgbGV0IGZpcnN0OiB1OHgxNiA9IHNpbWRfc3dpenpsZSEoCisrICAgICAgICBzLAorKyAgICAg ICAgdTh4MTY6OnNwbGF0KDApLAorKyAgICAgICAgWzAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5 LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyM10KKysgICAgKTsKKysgICAgbGV0IHNlY29uZDog dTh4MTYgPSBzaW1kX3N3aXp6bGUhKAorKyAgICAgICAgcywKKysgICAgICAgIHU4eDE2OjpzcGxh dCgwKSwKKysgICAgICAgIFs4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3LCAxMiwgMjgsIDEz LCAyOSwgMTQsIDMwLCAxNSwgMzFdCisrICAgICk7CisrICAgICh1MTZ4ODo6ZnJvbV9uZV9ieXRl cyhmaXJzdCksIHUxNng4Ojpmcm9tX25lX2J5dGVzKHNlY29uZCkpCisgfQorIAorIGNmZ19pZiEg eworICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKyAgICAgICAgICNb aW5saW5lKGFsd2F5cyldCisgICAgICAgICBwdWIgZm4gc2ltZF9wYWNrKGE6IHUxNng4LCBiOiB1 MTZ4OCkgLT4gdTh4MTYgeworICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg IF9tbV9wYWNrdXNfZXBpMTYoYS5pbnRvX2JpdHMoKSwgYi5pbnRvX2JpdHMoKSkuaW50b19iaXRz KCkKKysgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBXZSBoYXZlIGNmZygpZCB0aGUgY29ycmVj dCBwbGF0Zm9ybQorKyAgICAgICAgICAgICAgICBfbW1fcGFja3VzX2VwaTE2KGEuaW50bygpLCBi LmludG8oKSkuaW50bygpCisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICB9IGVsc2Ug eworICAgICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIHB1YiBmbiBzaW1kX3BhY2so YTogdTE2eDgsIGI6IHUxNng4KSAtPiB1OHgxNiB7CistICAgICAgICAgICAgdW5zYWZlIHsKKy0g ICAgICAgICAgICAgICAgbGV0IGZpcnN0OiB1OHgxNiA9IGEuaW50b19iaXRzKCk7CistICAgICAg ICAgICAgICAgIGxldCBzZWNvbmQ6IHU4eDE2ID0gYi5pbnRvX2JpdHMoKTsKKy0gICAgICAgICAg ICAgICAgc2h1ZmZsZSEoCistICAgICAgICAgICAgICAgICAgICBmaXJzdCwKKy0gICAgICAgICAg ICAgICAgICAgIHNlY29uZCwKKy0gICAgICAgICAgICAgICAgICAgIFswLCAyLCA0LCA2LCA4LCAx MCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzBdCistICAgICAgICAgICAg ICAgICkKKy0gICAgICAgICAgICB9CisrICAgICAgICAgICAgbGV0IGZpcnN0OiB1OHgxNiA9IGEu dG9fbmVfYnl0ZXMoKTsKKysgICAgICAgICAgICBsZXQgc2Vjb25kOiB1OHgxNiA9IGIudG9fbmVf Ynl0ZXMoKTsKKysgICAgICAgICAgICBzaW1kX3N3aXp6bGUhKAorKyAgICAgICAgICAgICAgICBm aXJzdCwKKysgICAgICAgICAgICAgICAgc2Vjb25kLAorKyAgICAgICAgICAgICAgICBbMCwgMiwg NCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwXQorKyAg ICAgICAgICAgICkKKyAgICAgICAgIH0KKyAgICAgfQorIH0KKyAKKyAjW2NmZyh0ZXN0KV0KKyBt b2QgdGVzdHMgeworICAgICB1c2Ugc3VwZXI6Oio7CisgICAgIHVzZSBhbGxvYzo6dmVjOjpWZWM7 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5 dGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy9zaW5nbGVfYnl0ZS5ycwor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMvc2luZ2xlX2J5dGUucnMKKysr KyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3NpbmdsZV9ieXRlLnJzCitAQCAt NDgsMTYgKzQ4LDE5IEBAIGltcGwgU2luZ2xlQnl0ZURlY29kZXIgeworICAgICAgICAgICAgICAg ICBDb3B5QXNjaWlSZXN1bHQ6OkdvT24oKG11dCBub25fYXNjaWksIG11dCBoYW5kbGUpKSA9PiAn bWlkZGxlOiBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IG5vbi1ib2lsZXJw bGF0ZQorICAgICAgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgIC8vIFNp bmNlIHRoZSBub24tQVNDSUluZXNzIG9mIGBub25fYXNjaWlgIGlzIGhpZGRlbiBmcm9tCisgICAg ICAgICAgICAgICAgICAgICAvLyB0aGUgb3B0aW1pemVyLCBpdCBjYW4ndCBmaWd1cmUgb3V0IHRo YXQgaXQncyBPSyB0bworICAgICAgICAgICAgICAgICAgICAgLy8gc3RhdGljYWxseSBvbWl0IHRo ZSBib3VuZCBjaGVjayB3aGVuIGFjY2Vzc2luZworICAgICAgICAgICAgICAgICAgICAgLy8gYFt1 MTY7IDEyOF1gIHdpdGggYW4gaW5kZXgKKyAgICAgICAgICAgICAgICAgICAgIC8vIGBub25fYXNj aWkgYXMgdXNpemUgLSAweDgwdXNpemVgLgorKyAgICAgICAgICAgICAgICAgICAgLy8KKysgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYG5vbl9hc2NpaWAgaXMgYSB1OCBieXRlID49MHg4 MCwgZnJvbSB0aGUgaW52YXJpYW50cworKyAgICAgICAgICAgICAgICAgICAgLy8gb24gVXRmOERl c3RpbmF0aW9uOjpjb3B5X2FzY2lpX2Zyb21fY2hlY2tfc3BhY2VfYm1wKCkKKyAgICAgICAgICAg ICAgICAgICAgIGxldCBtYXBwZWQgPQorICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7 ICooc2VsZi50YWJsZS5nZXRfdW5jaGVja2VkKG5vbl9hc2NpaSBhcyB1c2l6ZSAtIDB4ODB1c2l6 ZSkpIH07CisgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgbWFwcGVkID0gc2VsZi50YWJsZVtu b25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemVdOworICAgICAgICAgICAgICAgICAgICAgaWYg bWFwcGVkID09IDB1MTYgeworICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERlY29kZXJSZXN1bHQ6Ok1hbGZvcm1lZCgxLCAwKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLmNvbnN1bWVkKCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZS53cml0dGVuKCksCitAQCAtMTQ2LDgyICsxNDks MTAzIEBAIGltcGwgU2luZ2xlQnl0ZURlY29kZXIgeworICAgICAgICAgZHN0OiAmbXV0IFt1MTZd LAorICAgICAgICAgX2xhc3Q6IGJvb2wsCisgICAgICkgLT4gKERlY29kZXJSZXN1bHQsIHVzaXpl LCB1c2l6ZSkgeworICAgICAgICAgbGV0IChwZW5kaW5nLCBsZW5ndGgpID0gaWYgZHN0Lmxlbigp IDwgc3JjLmxlbigpIHsKKyAgICAgICAgICAgICAoRGVjb2RlclJlc3VsdDo6T3V0cHV0RnVsbCwg ZHN0LmxlbigpKQorICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAoRGVjb2RlclJlc3Vs dDo6SW5wdXRFbXB0eSwgc3JjLmxlbigpKQorICAgICAgICAgfTsKKysgICAgICAgIC8vIFNhZmV0 eSBpbnZhcmlhbnQ6IGNvbnZlcnRlZCA8PSBsZW5ndGguIFF1aXRlIG9mdGVuIHdlIGhhdmUgYGNv bnZlcnRlZCA8IGxlbmd0aGAKKysgICAgICAgIC8vIHdoaWNoIHdpbGwgYmUgc2VwYXJhdGVseSBt YXJrZWQuCisgICAgICAgICBsZXQgbXV0IGNvbnZlcnRlZCA9IDB1c2l6ZTsKKyAgICAgICAgICdv dXRlcm1vc3Q6IGxvb3AgeworICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7CisrICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogbGVuZ3RoIGlzIHRoZSBtaW5pbXVtIGxlbmd0aCwgYHNyYy9kc3Qg KyB4YCB3aWxsIGFsd2F5cyBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW4gLSB4YAor ICAgICAgICAgICAgICAgICBhc2NpaV90b19iYXNpY19sYXRpbigKKyAgICAgICAgICAgICAgICAg ICAgIHNyYy5hc19wdHIoKS5hZGQoY29udmVydGVkKSwKKyAgICAgICAgICAgICAgICAgICAgIGRz dC5hc19tdXRfcHRyKCkuYWRkKGNvbnZlcnRlZCksCisgICAgICAgICAgICAgICAgICAgICBsZW5n dGggLSBjb252ZXJ0ZWQsCisgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICB9IHsKKyAg ICAgICAgICAgICAgICAgTm9uZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBl bmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICBTb21lKChtdXQgbm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKKysgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQs IHNpbmNlIHRoaXMgY2FuIG9ubHkgY29uc3VtZQorKyAgICAgICAgICAgICAgICAgICAgLy8gdXAg dG8gYGxlbmd0aCAtIGNvbnZlcnRlZGAgYnl0ZXMuCisrICAgICAgICAgICAgICAgICAgICAvLwor KyAgICAgICAgICAgICAgICAgICAgLy8gRnVydGhlcm1vcmUsIGluIHRoaXMgY29udGV4dCwKKysg ICAgICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBhc3N1bWUgYGNvbnZlcnRlZCA8IGxlbmd0aGAg c2luY2UgdGhpcyBicmFuY2ggaXMgb25seSBldmVyIGhpdCB3aGVuCisrICAgICAgICAgICAgICAg ICAgICAvLyBhc2NpaV90b19iYXNpY19sYXRpbiBmYWlscyB0byBjb25zdW1lIHRoZSBlbnRpcmUg c2xpY2UKKyAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArPSBjb25zdW1lZDsKKyAgICAg ICAgICAgICAgICAgICAgICdtaWRkbGU6IGxvb3AgeworICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGBjb252ZXJ0ZWRgIGRvZXNuJ3QgY291bnQgdGhlIHJlYWRpbmcgb2YgYG5vbl9hc2NpaWAg eWV0LgorICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNpbmNlIHRoZSBub24tQVNDSUluZXNz IG9mIGBub25fYXNjaWlgIGlzIGhpZGRlbiBmcm9tCisgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlIG9wdGltaXplciwgaXQgY2FuJ3QgZmlndXJlIG91dCB0aGF0IGl0J3MgT0sgdG8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBzdGF0aWNhbGx5IG9taXQgdGhlIGJvdW5kIGNoZWNr IHdoZW4gYWNjZXNzaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYFt1MTY7IDEyOF1g IHdpdGggYW4gaW5kZXgKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgbm9uX2FzY2lpIGFz IHVzaXplIC0gMHg4MHVzaXplYC4KKysgICAgICAgICAgICAgICAgICAgICAgICAvLworKyAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogV2UgY2FuIHJlbHkgb24gYG5vbl9hc2NpaWAg YmVpbmcgYmV0d2VlbiBgMHg4MGAgYW5kIGAweEZGYCBkdWUgdG8KKysgICAgICAgICAgICAgICAg ICAgICAgICAvLyB0aGUgaW52YXJpYW50cyBvZiBgYXNjaWlfdG9fYmFzaWNfbGF0aW4oKWAsIGFu ZCBvdXIgdGFibGUgaGFzIGVub3VnaCBzcGFjZSBmb3IgdGhhdC4KKyAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbWFwcGVkID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZl IHsgKihzZWxmLnRhYmxlLmdldF91bmNoZWNrZWQobm9uX2FzY2lpIGFzIHVzaXplIC0gMHg4MHVz aXplKSkgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgbWFwcGVkID0gc2VsZi50 YWJsZVtub25fYXNjaWkgYXMgdXNpemUgLSAweDgwdXNpemVdOworICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG1hcHBlZCA9PSAwdTE2IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY29kZXJSZXN1bHQ6 Ok1hbGZvcm1lZCgxLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZl cnRlZCArIDEsIC8vICsxIGBmb3Igbm9uX2FzY2lpYAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udmVydGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgYm91bmQgY2hlY2sgaGFzIGFs cmVhZHkgYmVlbiBwZXJmb3JtZWQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2Fm ZXR5OiBBcyBtZW50aW9uZWQgYWJvdmUsIGBjb252ZXJ0ZWQgPCBsZW5ndGhgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0g bWFwcGVkOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAg ICAgICAvLyBTYWZldHk6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNpbmNlIGBjb252 ZXJ0ZWQgPCBsZW5ndGhgIGJlZm9yZSB0aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgY29u dmVydGVkICs9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmV4dCwgaGFuZGxlIEFT Q0lJIHB1bmN0dWF0aW9uIGFuZCBub24tQVNDSUkgd2l0aG91dAorICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGdvaW5nIGJhY2sgdG8gQVNDSUkgYWNjZWxlcmF0aW9uLiBOb24tQVNDSUkgc2Ny aXB0cworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZSBBU0NJSSBwdW5jdHVhdGlvbiwg c28gdGhpcyBhdm9pZCBnb2luZyB0bworICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFjY2Vs ZXJhdGlvbiBqdXN0IGZvciBwdW5jdHVhdGlvbi9zcGFjZSBhbmQgdGhlbgorICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIGZhaWxpbmcuIFRoaXMgaXMgYSBzaWduaWZpY2FudCBib29zdCB0byBu b24tQVNDSUkKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzY3JpcHRzLgorICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFRPRE86IFNwbGl0IG91dCBMYXRpbiBjb252ZXJ0ZXJzIHdpdGhv dXQgdGhpcyBwYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBzdHVmZiBtYWtl cyBMYXRpbiBzY3JpcHQtY29udmVyc2lvbiBzbG93ZXIuCisgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgY29udmVydGVkID09IGxlbmd0aCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAocGVuZGluZywgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGFyZSBiYWNrIHRv IGBjb252ZXJ0ZWQgPCBsZW5ndGhgIGJlY2F1c2Ugb2YgdGhlID09IGFib3ZlCisrICAgICAgICAg ICAgICAgICAgICAgICAgLy8gYW5kIGNhbiBwZXJmb3JtIHRoaXMgY2hlY2suCisgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCBiID0gdW5zYWZlIHsgKihzcmMuZ2V0X3VuY2hlY2tlZChj b252ZXJ0ZWQpKSB9OworKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogYGNvbnZl cnRlZCA8IGxlbmd0aGAgaXMgdXBoZWxkIGZvciB0aGlzIGxvb3AKKyAgICAgICAgICAgICAgICAg ICAgICAgICAnaW5uZXJtb3N0OiBsb29wIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgYiA+IDEyNyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25fYXNjaWkg PSBiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgJ21pZGRsZTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBUZXN0aW5nIG9uIEhhc3dlbGwgc2F5cyB0aGF0IHdlIHNob3VsZCB3cml0ZSB0aGUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnl0ZSB1bmNvbmRpdGlvbmFsbHkgaW5z dGVhZCBvZiB0cnlpbmcgdG8gdW5yZWFkIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHRvIG1ha2UgaXQgcGFydCBvZiB0aGUgbmV4dCBTSU1EIHN0cmlkZS4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogYGNvbnZlcnRlZCA8IGxlbmd0aGAgaXMgdHJ1ZSBmb3IgdGhpcyBsb29w CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKGRzdC5nZXRfdW5jaGVja2VkX211 dChjb252ZXJ0ZWQpKSA9IHUxNjo6ZnJvbShiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGFyZSBub3cg YXQgYGNvbnZlcnRlZCA8PSBsZW5ndGhgLiBXZSBzaG91bGQgKm5vdCogYGNvbnRpbnVlYAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgbG9vcCB3aXRob3V0IHJldmVyaWZ5aW5n CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArPSAxOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBiIDwgNjAgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gV2UndmUgZ290IHB1bmN0dWF0aW9uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBjb252ZXJ0ZWQgPT0gbGVuZ3RoIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRpbmcsIGxlbmd0aCwgbGVuZ3RoKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNhZmV0eTogd2UncmUgYmFjayB0byBgY29udmVydGVkIDw9IGxlbmd0aGAgYmVj YXVzZSBvZiB0aGUgPT0gYWJvdmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIg PSB1bnNhZmUgeyAqKHNyYy5nZXRfdW5jaGVja2VkKGNvbnZlcnRlZCkpIH07CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFRoZSBsb29wIGNvbnRpbnVlcyBhcyBg Y29udmVydGVkIDwgbGVuZ3RoYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGludWUgJ2lubmVybW9zdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3QgbWFya3VwIG9yIEFTQ0lJIHRleHQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgJ291dGVybW9zdDsKKyAgICAg ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICB9CitAQCAtMjI5LDE2ICsyNTMsMTggQEAgaW1wbCBTaW5n bGVCeXRlRGVjb2RlciB7CisgICAgIH0KKyAKKyAgICAgcHViIGZuIGxhdGluMV9ieXRlX2NvbXBh dGlibGVfdXBfdG8oJnNlbGYsIGJ1ZmZlcjogJlt1OF0pIC0+IHVzaXplIHsKKyAgICAgICAgIGxl dCBtdXQgYnl0ZXMgPSBidWZmZXI7CisgICAgICAgICBsZXQgbXV0IHRvdGFsID0gMDsKKyAgICAg ICAgIGxvb3AgeworICAgICAgICAgICAgIGlmIGxldCBTb21lKChub25fYXNjaWksIG9mZnNldCkp ID0gdmFsaWRhdGVfYXNjaWkoYnl0ZXMpIHsKKyAgICAgICAgICAgICAgICAgdG90YWwgKz0gb2Zm c2V0OworKyAgICAgICAgICAgICAgICAvLyBTYWZldHk6IFdlIGNhbiByZWx5IG9uIGBub25fYXNj aWlgIGJlaW5nIGJldHdlZW4gYDB4ODBgIGFuZCBgMHhGRmAgZHVlIHRvCisrICAgICAgICAgICAg ICAgIC8vIHRoZSBpbnZhcmlhbnRzIG9mIGBhc2NpaV90b19iYXNpY19sYXRpbigpYCwgYW5kIG91 ciB0YWJsZSBoYXMgZW5vdWdoIHNwYWNlIGZvciB0aGF0LgorICAgICAgICAgICAgICAgICBsZXQg bWFwcGVkID0gdW5zYWZlIHsgKihzZWxmLnRhYmxlLmdldF91bmNoZWNrZWQobm9uX2FzY2lpIGFz IHVzaXplIC0gMHg4MHVzaXplKSkgfTsKKyAgICAgICAgICAgICAgICAgaWYgbWFwcGVkICE9IHUx Njo6ZnJvbShub25fYXNjaWkpIHsKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB0b3RhbCArPSAxOworICAgICAg ICAgICAgICAgICBieXRlcyA9ICZieXRlc1tvZmZzZXQgKyAxLi5dOworICAgICAgICAgICAgIH0g ZWxzZSB7CisgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsKK0BAIC0zNzksNjQgKzQwNSw4 OSBAQCBpbXBsIFNpbmdsZUJ5dGVFbmNvZGVyIHsKKyAgICAgICAgIGRzdDogJm11dCBbdThdLAor ICAgICAgICAgX2xhc3Q6IGJvb2wsCisgICAgICkgLT4gKEVuY29kZXJSZXN1bHQsIHVzaXplLCB1 c2l6ZSkgeworICAgICAgICAgbGV0IChwZW5kaW5nLCBsZW5ndGgpID0gaWYgZHN0LmxlbigpIDwg c3JjLmxlbigpIHsKKyAgICAgICAgICAgICAoRW5jb2RlclJlc3VsdDo6T3V0cHV0RnVsbCwgZHN0 LmxlbigpKQorICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAoRW5jb2RlclJlc3VsdDo6 SW5wdXRFbXB0eSwgc3JjLmxlbigpKQorICAgICAgICAgfTsKKysgICAgICAgIC8vIFNhZmV0eSBp bnZhcmlhbnQ6IGNvbnZlcnRlZCA8PSBsZW5ndGguIFF1aXRlIG9mdGVuIHdlIGhhdmUgYGNvbnZl cnRlZCA8IGxlbmd0aGAKKysgICAgICAgIC8vIHdoaWNoIHdpbGwgYmUgc2VwYXJhdGVseSBtYXJr ZWQuCisgICAgICAgICBsZXQgbXV0IGNvbnZlcnRlZCA9IDB1c2l6ZTsKKyAgICAgICAgICdvdXRl cm1vc3Q6IGxvb3AgeworICAgICAgICAgICAgIG1hdGNoIHVuc2FmZSB7CisrICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogbGVuZ3RoIGlzIHRoZSBtaW5pbXVtIGxlbmd0aCwgYHNyYy9kc3QgKyB4 YCB3aWxsIGFsd2F5cyBiZSB2YWxpZCBmb3IgcmVhZHMvd3JpdGVzIG9mIGBsZW4gLSB4YAorICAg ICAgICAgICAgICAgICBiYXNpY19sYXRpbl90b19hc2NpaSgKKyAgICAgICAgICAgICAgICAgICAg IHNyYy5hc19wdHIoKS5hZGQoY29udmVydGVkKSwKKyAgICAgICAgICAgICAgICAgICAgIGRzdC5h c19tdXRfcHRyKCkuYWRkKGNvbnZlcnRlZCksCisgICAgICAgICAgICAgICAgICAgICBsZW5ndGgg LSBjb252ZXJ0ZWQsCisgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICB9IHsKKyAgICAg ICAgICAgICAgICAgTm9uZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBlbmRp bmcsIGxlbmd0aCwgbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICBTb21lKChtdXQgbm9uX2FzY2lpLCBjb25zdW1lZCkpID0+IHsKKysgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eSBpbnZhcmlhbnQ6IGBjb252ZXJ0ZWQgPD0gbGVuZ3RoYCB1cGhlbGQsIHNp bmNlIHRoaXMgY2FuIG9ubHkgY29uc3VtZQorKyAgICAgICAgICAgICAgICAgICAgLy8gdXAgdG8g YGxlbmd0aCAtIGNvbnZlcnRlZGAgYnl0ZXMuCisrICAgICAgICAgICAgICAgICAgICAvLworKyAg ICAgICAgICAgICAgICAgICAgLy8gRnVydGhlcm1vcmUsIGluIHRoaXMgY29udGV4dCwKKysgICAg ICAgICAgICAgICAgICAgIC8vIHdlIGNhbiBhc3N1bWUgYGNvbnZlcnRlZCA8IGxlbmd0aGAgc2lu Y2UgdGhpcyBicmFuY2ggaXMgb25seSBldmVyIGhpdCB3aGVuCisrICAgICAgICAgICAgICAgICAg ICAvLyBhc2NpaV90b19iYXNpY19sYXRpbiBmYWlscyB0byBjb25zdW1lIHRoZSBlbnRpcmUgc2xp Y2UKKyAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCArPSBjb25zdW1lZDsKKyAgICAgICAg ICAgICAgICAgICAgICdtaWRkbGU6IGxvb3AgeworICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGBjb252ZXJ0ZWRgIGRvZXNuJ3QgY291bnQgdGhlIHJlYWRpbmcgb2YgYG5vbl9hc2NpaWAgeWV0 LgorICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNlbGYuZW5jb2RlX3UxNihub25fYXNj aWkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShieXRlKSA9PiB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogd2UncmUgYWxsb3dlZCB0aGlzIGFjY2VzcyBz aW5jZSBgY29udmVydGVkIDwgbGVuZ3RoYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICooZHN0LmdldF91bmNoZWNrZWRfbXV0KGNvbnZlcnRlZCkpID0gYnl0ZTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnZlcnRlZCArPSAxOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYGNvbnZlcnRlZCA8PSBsZW5ndGhgIG5vdworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUgPT4geworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgbmVlZCB0byBrbm93IGlm IHdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIGEgc3Vycm9nYXRl LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhpZ2hfYml0cyA9IG5vbl9h c2NpaSAmIDB4RkMwMHUxNjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGhp Z2hfYml0cyA9PSAweEQ4MDB1MTYgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIGhpZ2ggc3Vycm9nYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgY29udmVydGVkICsgMSA9PSBsZW5ndGggeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBFbmQgb2YgYnVmZmVyLiBUaGlzIHN1cnJvZ2F0ZSBpcyB1bnBh aXJlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuY29kZXJSZXN1 bHQ6OlVubWFwcGFibGUoJ1x1e0ZGRkR9JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKyAxLCAvLyArMSBgZm9yIG5vbl9hc2NpaWAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gU2FmZXR5OiBjb252ZXJlZCA8IGxlbmd0aCBmcm9tIG91dHNpZGUgdGhlIG1hdGNo LCBhbmQgYGNvbnZlcnRlZCArIDEgIT0gbGVuZ3RoYCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTbyBgY29udmVydGVkICsgMSA8IGxlbmd0aGAgYXMgd2VsbC4gV2Un cmUgaW4gYm91bmRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNl Y29uZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMjo6ZnJv bSh1bnNhZmUgeyAqc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkICsgMSkgfSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Vjb25kICYgMHhGQzAwdTMyICE9IDB4 REMwMHUzMiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmNvZGVy UmVzdWx0OjpVbm1hcHBhYmxlKCdcdXtGRkZEfScpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICsgMSwgLy8gKzEgYGZvciBub25fYXNjaWlg CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFRoZSBuZXh0IGNvZGUgdW5pdCBpcyBhIGxvdyBzdXJyb2dhdGUuCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFzdHJhbDogY2hhciA9IHVuc2Fm ZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTog V2UgY2FuIHJlbHkgb24gbm9uX2FzY2lpIGJlaW5nIDB4RDgwMC0weERCRkYgc2luY2UgdGhlIGhp Z2ggYml0cyBhcmUgMHhEODAwCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoZW4sIChub25fYXNjaWkgPDwgMTAgLSAweEQ4MDAgPDwgMTApIGJlY29tZXMgYmV0 d2VlbiAoMCB0byAweDNGRikgPDwgMTAsIHdoaWNoIGlzIGJldHdlZW4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMHg0MDAgdG8gMHhmZmMwMC4gQWRkaW5nIHRo ZSAweDEwMDAwIGdpdmVzIGEgcmFuZ2Ugb2YgMHgxMDQwMCB0byAweDEwZmMwMC4gU3VidHJhY3Rp bmcgdGhlIDB4REMwMAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBnaXZlcyAweDI4MDAgdG8gMHgxMDIwMDAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gVGhlIHNlY29uZCB0ZXJtIGlzIGJldHdlZW4gMHhEQzAwIGFuZCAweERG RkYgZnJvbSB0aGUgY2hlY2sgYWJvdmUuIFRoaXMgZ2l2ZXMgYSBtYXhpbXVtCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBvc3NpYmxlIHJhbmdlIG9mICgweDEw NDAwICsgMHhEQzAwKSB0byAoMHgxMDIwMDAgKyAweERGRkYpIHdoaWNoIGlzIDB4MUUwMDAgdG8g MHgxMGZmZmYuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRo aXMgaXMgaW4gcmFuZ2UuCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZyb20gYSBV bmljb2RlIHByaW5jaXBsZXMgcGVyc3BlY3RpdmUgdGhpcyBjYW4gYWxzbyBiZSB2ZXJpZmllZCBh cyB3ZSBoYXZlIGNoZWNrZWQgdGhhdCBgbm9uX2FzY2lpYCBpcyBhIGhpZ2ggc3Vycm9nYXRlCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICgweEQ4MDAuLj0weERC RkYpLCBhbmQgdGhhdCBgc2Vjb25kYCBpcyBhIGxvdyBzdXJyb2dhdGUgKGAweERDMDAuLj0weERG RkZgKSwgYW5kIHdlIGFyZSBhcHBseWluZyByZXZlcnNlIG9mIHRoZSBVVEMxNiB0cmFuc2Zvcm1h dGlvbgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGdvcml0 aG0gPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VURi0xNiNDb2RlX3BvaW50c19mcm9t X1UrMDEwMDAwX3RvX1UrMTBGRkZGPiwgYnkgYXBwbHlpbmcgdGhlIGhpZ2ggc3Vycm9nYXRlIC0g MHhEODAwIHRvIHRoZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBoaWdoIHRlbiBiaXRzLCBhbmQgdGhlIGxvdyBzdXJyb2dhdGUgLSAweERjMDAgdG8gdGhlIGxv dyB0ZW4gYml0cywgYW5kIHRoZW4gYWRkaW5nIDB4MTAwMDAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOjpjb3JlOjpjaGFyOjpmcm9tX3UzMl91bmNoZWNrZWQoCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodTMyOjpmcm9tKG5v bl9hc2NpaSkgPDwgMTApICsgc2Vjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLSAoKCgweEQ4MDB1MzIgPDwgMTApIC0gMHgxXzAwMDB1MzIpICsg MHhEQzAwdTMyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRW5jb2RlclJlc3VsdDo6VW5tYXBwYWJsZShhc3RyYWwpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWQgKyAyLCAvLyArMiBg Zm9yIG5vbl9hc2NpaWAgYW5kIGBzZWNvbmRgCitAQCAtNDUxLDUyICs1MDIsNjMgQEAgaW1wbCBT aW5nbGVCeXRlRW5jb2RlciB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnZlcnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBFbmNvZGVyUmVzdWx0Ojp1bm1hcHBhYmxlX2Zyb21fYm1wKG5vbl9hc2NpaSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVkICsgMSwgLy8gKzEgYGZvciBu b25fYXNjaWlgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydGVk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBicmFuY2ggZGl2ZXJnZXMsIHNvIG5vIG5l ZWQgdG8gdXBob2xkIGludmFyaWFudHMgb24gYGNvbnZlcnRlZGAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBOZXh0LCBoYW5kbGUgQVNDSUkgcHVuY3R1YXRpb24gYW5kIG5vbi1BU0NJ SSB3aXRob3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ29pbmcgYmFjayB0byBBU0NJ SSBhY2NlbGVyYXRpb24uIE5vbi1BU0NJSSBzY3JpcHRzCisgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdXNlIEFTQ0lJIHB1bmN0dWF0aW9uLCBzbyB0aGlzIGF2b2lkIGdvaW5nIHRvCisgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gYWNjZWxlcmF0aW9uIGp1c3QgZm9yIHB1bmN0dWF0aW9u L3NwYWNlIGFuZCB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZmFpbGluZy4gVGhp cyBpcyBhIHNpZ25pZmljYW50IGJvb3N0IHRvIG5vbi1BU0NJSQorICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHNjcmlwdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogU3Bs aXQgb3V0IExhdGluIGNvbnZlcnRlcnMgd2l0aG91dCB0aGlzIHBhcnQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB0aGlzIHN0dWZmIG1ha2VzIExhdGluIHNjcmlwdC1jb252ZXJzaW9uIHNs b3dlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb252ZXJ0ZWQgPT0gbGVuZ3RoIHsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nLCBsZW5ndGgsIGxl bmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFNhZmV0eTogd2UncmUgYmFjayB0byBgY29udmVydGVkIDwgbGVuZ3RoYCBkdWUgdG8g dGhlID09IGFib3ZlIGFuZCBjYW4gcGVyZm9ybQorKyAgICAgICAgICAgICAgICAgICAgICAgIC8v IHRoZSB1bmNoZWNrZWQgcmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5p dCA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNoZWNrZWQoY29udmVydGVkKSkgfTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAnaW5uZXJtb3N0OiBsb29wIHsKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBUaGlzIGxvb3AgYWx3YXlzIGJlZ2lucyB3aXRoIGBjb252ZXJ0 ZWQgPCBsZW5ndGhgLCBzZWUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGlu dmFyaWFudCBvdXRzaWRlIGFuZCB0aGUgY29tbWVudCBvbiB0aGUgY29udGludWUgYmVsb3cKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdW5pdCA+IDEyNyB7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBub25fYXNjaWkgPSB1bml0OworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWUgJ21pZGRsZTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUZXN0aW5nIG9uIEhhc3dl bGwgc2F5cyB0aGF0IHdlIHNob3VsZCB3cml0ZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gYnl0ZSB1bmNvbmRpdGlvbmFsbHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gdW5yZWFk IGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIG1ha2UgaXQgcGFydCBvZiB0 aGUgbmV4dCBTSU1EIHN0cmlkZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZl IHsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmV0eTogQ2FuIHJlbHkg b24gY29udmVydGVkIDwgbGVuZ3RoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq KGRzdC5nZXRfdW5jaGVja2VkX211dChjb252ZXJ0ZWQpKSA9IHVuaXQgYXMgdTg7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dmVydGVkICs9IDE7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGBjb252ZXJ0ZWQg PD0gbGVuZ3RoYCBoZXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVuaXQgPCA2 MCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3QgcHVuY3R1 YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbnZlcnRlZCA9PSBs ZW5ndGggeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAocGVu ZGluZywgbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2FmZXR5OiBgY29udmVydGVk IDwgbGVuZ3RoYCBkdWUgdG8gdGhlID09IGFib3ZlLiBUaGUgcmVhZCBpcyBzYWZlLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCA9IHVuc2FmZSB7ICooc3JjLmdldF91bmNo ZWNrZWQoY29udmVydGVkKSkgfTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFNhZmV0eTogVGhpcyBvbmx5IGhhcHBlbnMgaWYgYGNvbnZlcnRlZCA8IGxlbmd0aGAsIG1haW50 YWluaW5nIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnaW5u ZXJtb3N0OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBtYXJrdXAgb3IgQVNDSUkgdGV4dAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAnb3V0ZXJtb3N0OworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBTYWZldHk6IEFsbCBvdGhlciByb3V0ZXMgdG8gaGVyZSBkaXZlcmdl IHNvIHRoZSBjb250aW51ZSBpcyB0aGUgb25seQorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyB3YXkgdG8gcnVuIHRoZSBpbm5lcm1vc3QgbG9vcC4KKyAgICAgICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KKyB9CisgCitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJfZGVmaW5lZC5ycworLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2VyX2RlZmluZWQucnMKKysrKyBiL3RoaXJkX3Bh cnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9kZWZpbmVkLnJzCitAQCAtOSwyMiArOSwy MyBAQAorIAorIHVzZSBzdXBlcjo6KjsKKyB1c2UgY3JhdGU6OmhhbmRsZXM6Oio7CisgdXNlIGNy YXRlOjp2YXJpYW50OjoqOworIAorIGNmZ19pZiEgeworICAgICBpZiAjW2NmZyhmZWF0dXJlID0g InNpbWQtYWNjZWwiKV0geworICAgICAgICAgdXNlIHNpbWRfZnVuY3M6Oio7CistICAgICAgICB1 c2UgcGFja2VkX3NpbWQ6OnUxNng4OworKyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OnUxNng4Owor KyAgICAgICAgdXNlIGNvcmU6OnNpbWQ6OmNtcDo6U2ltZFBhcnRpYWxPcmQ7CisgCisgICAgICAg ICAjW2lubGluZShhbHdheXMpXQorICAgICAgICAgZm4gc2hpZnRfdXBwZXIodW5wYWNrZWQ6IHUx Nng4KSAtPiB1MTZ4OCB7CisgICAgICAgICAgICAgbGV0IGhpZ2hlc3RfYXNjaWkgPSB1MTZ4ODo6 c3BsYXQoMHg3Rik7CistICAgICAgICAgICAgdW5wYWNrZWQgKyB1bnBhY2tlZC5ndChoaWdoZXN0 X2FzY2lpKS5zZWxlY3QodTE2eDg6OnNwbGF0KDB4RjcwMCksIHUxNng4OjpzcGxhdCgwKSkgICAg ICAgIH0KKysgICAgICAgICAgICB1bnBhY2tlZCArIHVucGFja2VkLnNpbWRfZ3QoaGlnaGVzdF9h c2NpaSkuc2VsZWN0KHUxNng4OjpzcGxhdCgweEY3MDApLCB1MTZ4ODo6c3BsYXQoMCkpICAgICAg ICB9CisgICAgIH0gZWxzZSB7CisgICAgIH0KKyB9CisgCisgcHViIHN0cnVjdCBVc2VyRGVmaW5l ZERlY29kZXI7CisgCisgaW1wbCBVc2VyRGVmaW5lZERlY29kZXIgeworICAgICBwdWIgZm4gbmV3 KCkgLT4gVmFyaWFudERlY29kZXIgeworQEAgLTExMSwyMCArMTEyLDI1IEBAIGltcGwgVXNlckRl ZmluZWREZWNvZGVyIHsKKyAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgKERlY29kZXJS ZXN1bHQ6OklucHV0RW1wdHksIHNyYy5sZW4oKSkKKyAgICAgICAgIH07CisgICAgICAgICAvLyBO b3QgYm90aGVyaW5nIHdpdGggYWxpZ25tZW50CisgICAgICAgICBsZXQgdGFpbF9zdGFydCA9IGxl bmd0aCAmICEweEY7CisgICAgICAgICBsZXQgc2ltZF9pdGVyYXRpb25zID0gbGVuZ3RoID4+IDQ7 CisgICAgICAgICBsZXQgc3JjX3B0ciA9IHNyYy5hc19wdHIoKTsKKyAgICAgICAgIGxldCBkc3Rf cHRyID0gZHN0LmFzX211dF9wdHIoKTsKKysgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBgZm9y IGkgaW4gMC4ubGVuZ3RoIC8gMTZgCisgICAgICAgICBmb3IgaSBpbiAwLi5zaW1kX2l0ZXJhdGlv bnMgeworKyAgICAgICAgICAgIC8vIFNhZmV0eTogVGhpcyBpcyBpbiBib3VuZHM6IGxlbmd0aCBp cyB0aGUgbWludW11bSB2YWxpZCBsZW5ndGggZm9yIGJvdGggc3JjL2RzdAorKyAgICAgICAgICAg IC8vIGFuZCBpIHJhbmdlcyB0byBsZW5ndGgvMTYsIHNvIG11bHRpcGx5aW5nIGJ5IDE2IHdpbGwg YWx3YXlzIGJlIGA8IGxlbmd0aGAgYW5kIGNhbiBkbworKyAgICAgICAgICAgIC8vIGEgMTYgYnl0 ZSByZWFkCisgICAgICAgICAgICAgbGV0IGlucHV0ID0gdW5zYWZlIHsgbG9hZDE2X3VuYWxpZ25l ZChzcmNfcHRyLmFkZChpICogMTYpKSB9OworICAgICAgICAgICAgIGxldCAoZmlyc3QsIHNlY29u ZCkgPSBzaW1kX3VucGFjayhpbnB1dCk7CisgICAgICAgICAgICAgdW5zYWZlIHsKKysgICAgICAg ICAgICAgICAgLy8gU2FmZXR5OiBzYW1lIGFzIGFib3ZlLCBidXQgdGhpcyBpcyB0d28gY29uc2Vj dXRpdmUgOC1ieXRlIHJlYWRzCisgICAgICAgICAgICAgICAgIHN0b3JlOF91bmFsaWduZWQoZHN0 X3B0ci5hZGQoaSAqIDE2KSwgc2hpZnRfdXBwZXIoZmlyc3QpKTsKKyAgICAgICAgICAgICAgICAg c3RvcmU4X3VuYWxpZ25lZChkc3RfcHRyLmFkZCgoaSAqIDE2KSArIDgpLCBzaGlmdF91cHBlcihz ZWNvbmQpKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgICAgICBsZXQgc3JjX3Rh aWwgPSAmc3JjW3RhaWxfc3RhcnQuLmxlbmd0aF07CisgICAgICAgICBsZXQgZHN0X3RhaWwgPSAm bXV0IGRzdFt0YWlsX3N0YXJ0Li5sZW5ndGhdOworICAgICAgICAgc3JjX3RhaWwKKyAgICAgICAg ICAgICAuaXRlcigpCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8u YXBwdmV5b3IueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uYXBwdmV5b3IueW1s CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvLmFwcHZleW9yLnltbAorKysrIC9kZXYvbnVsbAorQEAgLTEsNTkgKzAsMCBAQAorLW1h dHJpeDoKKy0gIGFsbG93X2ZhaWx1cmVzOgorLSAgICAjIEZJWE1FOiBodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzcyCistICAgIC0gVEFSR0VU OiBpNjg2LXBjLXdpbmRvd3MtbXN2YworLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLWdu dQorLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRvd3MtZ251CistICBmYXN0X2ZpbmlzaDog dHJ1ZQorLQorLWVudmlyb25tZW50OgorLSAgbWF0cml4OgorLSAgICAtIFRBUkdFVDogeDg2XzY0 LXBjLXdpbmRvd3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy0gICAgICBOT1ZFUklG WTogIjEiCistICAgIC0gVEFSR0VUOiB4ODZfNjQtcGMtd2luZG93cy1tc3ZjCistICAgICAgTVNZ U1RFTTogTUlOR1c2NAorLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPStzc2U0 LjIiCistICAgICAgTk9WRVJJRlk6ICIxIgorLSAgICAtIFRBUkdFVDogeDg2XzY0LXBjLXdpbmRv d3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy0gICAgICBSVVNURkxBR1M6ICItQyB0 YXJnZXQtZmVhdHVyZT0rYXZ4IgorLSAgICAgIE5PVkVSSUZZOiAiMSIKKy0gICAgLSBUQVJHRVQ6 IHg4Nl82NC1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzY0CistICAgICAg UlVTVEZMQUdTOiAiLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCistICAgICAgTk9WRVJJRlk6ICIx IgorLQorLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVN OiBNSU5HVzMyCistICAgICAgTk9WRVJJRlk6ICIxIgorLSAgICAtIFRBUkdFVDogaTY4Ni1wYy13 aW5kb3dzLW1zdmMKKy0gICAgICBNU1lTVEVNOiBNSU5HVzMyCistICAgICAgUlVTVEZMQUdTOiAi LUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTQuMiIKKy0gICAgICBOT1ZFUklGWTogIjEiCistICAgIC0g VEFSR0VUOiBpNjg2LXBjLXdpbmRvd3MtbXN2YworLSAgICAgIE1TWVNURU06IE1JTkdXMzIKKy0g ICAgICBSVVNURkxBR1M6ICItQyB0YXJnZXQtZmVhdHVyZT0rYXZ4IgorLSAgICAgIE5PVkVSSUZZ OiAiMSIKKy0gICAgLSBUQVJHRVQ6IGk2ODYtcGMtd2luZG93cy1tc3ZjCistICAgICAgTVNZU1RF TTogTUlOR1czMgorLSAgICAgIFJVU1RGTEFHUzogIi1DIHRhcmdldC1mZWF0dXJlPSthdngyIgor LSAgICAgIE5PVkVSSUZZOiAiMSIKKy0KKy0gICAgLSBUQVJHRVQ6IHg4Nl82NC1wYy13aW5kb3dz LWdudQorLSAgICAgIE1TWVNURU06IE1JTkdXNjQKKy0KKy0gICAgLSBUQVJHRVQ6IGk2ODYtcGMt d2luZG93cy1nbnUKKy0gICAgICBNU1lTVEVNOiBNSU5HVzMyCistICAgIC0gVEFSR0VUOiB4ODZf NjQtcGMtd2luZG93cy1nbnUKKy0gICAgICBNU1lTVEVNOiBNSU5HVzY0CistaW5zdGFsbDoKKy0g IC0gcHM6IGlmIChscyAtciAuIC1maSAiKi5ycyIgfCBzbHMgImB0IikgeyB0aHJvdyAiRm91bmQg dGFiIGNoYXJhY3RlciIgfQorLSAgLSBwczogU3RhcnQtRmlsZURvd25sb2FkICJodHRwczovL3N0 YXRpYy5ydXN0LWxhbmcub3JnL2Rpc3QvcnVzdC1uaWdodGx5LSR7ZW52OlRBUkdFVH0uZXhlIiAt RmlsZU5hbWUgInJ1c3QtaW5zdGFsbC5leGUiCistICAtIHBzOiAuXHJ1c3QtaW5zdGFsbC5leGUg L1ZFUllTSUxFTlQgL05PUkVTVEFSVCAvRElSPSJDOlxydXN0IiB8IE91dC1OdWxsCistICAtIHBz OiAkZW52OlBBVEg9IiRlbnY6UEFUSDtDOlxydXN0XGJpbiIKKy0gIC0gc2V0IFBBVEg9YzpcbXN5 czY0XCVNU1lTVEVNJVxiaW47YzpcbXN5czY0XHVzclxiaW47JVBBVEglCistICAtIHJ1c3RjIC12 VgorLSAgLSBjYXJnbyAtdlYKKy1idWlsZDogZmFsc2UKKy10ZXN0X3NjcmlwdDogYmFzaCAtYyAi Y2kvcnVuLnNoIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmNh cmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5jYXJnby1j aGVja3N1bS5qc29uCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvLmNhcmdvLWNoZWNrc3VtLmpzb24KKysrKyAvZGV2L251bGwKK0BA IC0xLDEgKzAsMCBAQAorLXsiZmlsZXMiOnsiLmFwcHZleW9yLnltbCI6ImYxZWQwMTg1MGUwZDcy NWY5NDk4ZjUyYTFhNjNkZGY0MDcwMmFkNmUwYmY1YjJkN2M0YzA0ZDc2ZTk2Nzk0YTMiLCIuZ2l0 aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbCI6ImQwNDlmMDE2ZGM1MzgzMGEzZmNjNzM1ODMz ZWNhMTY4ZGYyZTQ5MWYzM2I2YjQ0Y2U3ZTRkNWQxZGQ0NTM4NTQiLCIuZ2l0aHViL3dvcmtmbG93 cy9jaS55bWwiOiIxNzBhMjA3NGFkZDU3ZGRjOGY4OGI3ODAxNDllNDkzMDE2MmM2ZWU0NzE4YWRk NDM2OWRjYThlM2ZkNmMwMjJhIiwiLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwiOiI4NmY3ZWI2 NTJjOTAwNjI0ZTRkZWI3NjMyMGNkOTIxNzVkYjFmYTcyOTVhNzZmMjhmMzAzMzZmZjBmYWQxNjA0 IiwiLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwiOiJkODQ3YmUyOTNmOWVjMTcw MzhlNDUwNjUyYjFlYjdiZGMyMGI4MDVjMThjNWRiYWIzNGQxZDlmZjdhOWM4OTQwIiwiLnRyYXZp cy55bWwiOiIzMGE2MWE1ZWM1MzM1NWZjMWYzNTg1ZTE2OTAyODAzMDhjMmI3OTYxNzAxYWJjMTFl ODM4OWIyMzViNjQ3MTc4IiwiQ2FyZ28udG9tbCI6IjAyMTUxYzQxNWYyNjdhNmFlYjg2NTExNTg0 NzI3NDRkNzFlMWQ5ZGE4ODgzZGQyMGJlMjU3MzFhNDJlNTIwZjQiLCJMSUNFTlNFLUFQQUNIRSI6 ImE2MGVlYTgxNzUxNDUzMTY2OGQ3ZTAwNzY1NzMxNDQ5ZmUxNGQwNTlkMzI0OWUwYmM5M2IzNmRl NDVmNzU5ZjIiLCJMSUNFTlNFLU1JVCI6IjY0ODViOGVkMzEwZDNmMDM0MGJmMWFkMWY0NzY0NTA2 OWNlNDA2OWRjYzZiYjQ2YzdkNWM2ZmFmNDFkZTFmZGIiLCJSRUFETUUubWQiOiJjNGFjNzAyN2E5 YWI3ZDc4NThhYTg5NTdkNzQ1NGRiZmNkYmI4MWU2MDViNmExNzFmMDUzMTBjYzNjYWQzNzYyIiwi Ym9ycy50b21sIjoiZGVlODgxZGM2OWI5Yjc4MzRlNGViYTVkOTVjM2VkNWE0MTZkNDYyODgxNWEx NjdkNmEyMmQ0Y2I0ZmIwNjRiOCIsImJ1aWxkLnJzIjoiMDE5ZWQyOWM0Mzk4OTc4MmQ4ZWVjM2E5 NjE2NTRjZmMxNzJkN2E3ODk4ZGE0ZWNhOGY2NTQ3MDBhZjdlMTk4OCIsImNpL2FsbC5zaCI6IjJh ZTZiMjQ0NWI0ZGI4MzgzM2U0MGIzN2VmZDAwMTZjNmI5ODc5ZWU5ODhiOWIzZWY5NGRiNTQzOWEz ZTE2MDYiLCJjaS9hbmRyb2lkLWluc3RhbGwtbmRrLnNoIjoiYmRjZjkzYmE5MDQzYWMxMTg0ZTJj NTA0YTNkNDBjNDdjNmMxNjAxZDg4MmUwZjBhMjdhOGViNTZmYmFiY2I1ZiIsImNpL2FuZHJvaWQt aW5zdGFsbC1zZGsuc2giOiIzNDkwNDMyMDIyYzVjOGY1YTExNWMwODRmN2E5YWNhMTYyNmY5NmMw Yzg3ZmZiNjIwMTkyMjhjNDM0NmI0N2U0IiwiY2kvYW5kcm9pZC1zeXNpbWFnZS5zaCI6ImViZjRl NWRhYTFmMGZlMWIyMDkyYjc5ZjBmM2YxNjFjNGM0Mjc1Y2I3NDRlNTIzNTJjNGQ4MWFiNDUxZTRj NWEiLCJjaS9iZW5jaG1hcmsuc2giOiJiNjFkMTllZjZiOTBkZWJhOGZiNzlkZWU3NGM4YjA2MmQ5 NDg0NDY3NjI5M2RhMzQ2ZGE4N2JiNzhhOWE0OWE0IiwiY2kvZGVwbG95X2FuZF9ydW5fb25faW9z X3NpbXVsYXRvci5ycyI6ImVjOGVjZjgyZDkyMDcyNjc2YWE0N2YwZDFhM2QwMjFiNjBhN2FlMzUz MTE1M2VmMTJkMmZmNDU0MWZjMjk0ZGMiLCJjaS9kb2NrZXIvYWFyY2g2NC1saW51eC1hbmRyb2lk L0RvY2tlcmZpbGUiOiJhY2UyZTdkMzNjODdiYzBmNmQzOTYyYTRhMzQwOGMwNDU1NzY0NmY3ZjUx YWI5OWNmYmY1NzQ5MDY3OTZiMDE2IiwiY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1n bnUvRG9ja2VyZmlsZSI6ImRhODhjMGQ1MGYxNmRjMDg0NDhjN2ZkZjFmYTVlZDJjYmU1NzZhY2Y5 ZTdkZDg1YjViODE4NjIxYjJhOGM3MDIiLCJjaS9kb2NrZXIvYXJtLXVua25vd24tbGludXgtZ251 ZWFiaS9Eb2NrZXJmaWxlIjoiYmI1ZjhhZTg5MDcwN2MxMjg2NTIyOTBmZmM1NDQ0NDc2NDNiZjEy MDM3ZGRkNzNjNmFkNjk4OWY4NDhjYjM4MCIsImNpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1n bnVlYWJpaGYvRG9ja2VyZmlsZSI6IjFhZmFlZmNiYzA1Yjc0MDg1OWFjZDRlMDY3YmM5MjQzOWJl NmJjYmU4ZjJlOTY3ODQ3NGZiNDM0YmNkMzk4ZDkiLCJjaS9kb2NrZXIvYXJtdjctbGludXgtYW5k cm9pZGVhYmkvRG9ja2VyZmlsZSI6IjM3MGU1NWQzMzMwYTQxM2EzY2NmNjc3YjNhZmIzZTBlZjkw MThhNWZhYjI2M2ZhYTk3YWU4YWMwMTdmYzIyODYiLCJjaS9kb2NrZXIvYXJtdjctdW5rbm93bi1s aW51eC1nbnVlYWJpaGYvRG9ja2VyZmlsZSI6IjgyODJlYTcwN2E5NDEwOWJlZWQ0N2E1NzU3NDc1 NWUyZDU4NDAxNzM1OTA0YTAzZjg1ZmI2NGM1NzhjNTNiNGYiLCJjaS9kb2NrZXIvaTU4Ni11bmtu b3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIjoiNDk3OTI5MjIyNjlmMzcxYmQyOWRhNDcyN2U5MDg1 MTAxYjI3YmU2N2E2Yjk3NzU1ZDAxOTZjNjMzMTdmN2FiYiIsImNpL2RvY2tlci9pNjg2LXVua25v d24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI0OTc5MjkyMjI2OWYzNzFiZDI5ZGE0NzI3ZTkwODUx MDFiMjdiZTY3YTZiOTc3NTVkMDE5NmM2MzMxN2Y3YWJiIiwiY2kvZG9ja2VyL21pcHMtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImIyZWJjMjU3OTc2MTJjNGY4Mzk1ZmU5ZDQwNzcyNTE1 NjA0NDk1NWJmYmNmNDQyMDM2YjdmNTViNDNhNWY5ZGEiLCJjaS9kb2NrZXIvbWlwczY0LXVua25v d24tbGludXgtZ251YWJpNjQvRG9ja2VyZmlsZSI6ImIwYzE2OTJhYzY1YmM1NmRkMzA0OTRiMTk5 M2Q4ZTkyOWM0OGNjOWM0YjkyMDI5YjdjNzU5MmFmNmQ0ZjkyMjAiLCJjaS9kb2NrZXIvbWlwczY0 ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlIjoiNGU5MjQ5YzE3OTMwMDEzODE0 MWQwYjJiNzQwMWIxMTg5N2Y2NGFlZDY5ZjU0MWYwNzhjMWRiNDU5NGRmMjgyNyIsImNpL2RvY2tl ci9taXBzZWwtdW5rbm93bi1saW51eC1tdXNsL0RvY2tlcmZpbGUiOiIzMTY0YzUyYjBkY2JiMDFh ZmE3ODI5MmIxNWI1YzQzNTAzY2NmMDQ5MWNmNmViODAxZWMyYmYyMmFlMjc0ZTUyIiwiY2kvZG9j a2VyL3Bvd2VycGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6ImFlODI3NDMwOTkyODYy MGE1ZGQyMzJhNDYyNjRlMDUzOTliYjc0NjI4OGViZWUzODQzYTcxYzQxNjIyMDhjYzMiLCJjaS9k b2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiJiYTVmYmM0YmYz YmI5MWNkNTBiNDA3MjQ4ZGEzMTIyNTY4MWVmYzhmMmJlNzYxOGY0YTBhYjEyMTliMzg5NTA4Iiwi Y2kvZG9ja2VyL3Bvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI1M2Y5 N2Y4YjliNWFjYTc1MzRiOWJmOWVhNDhmMzUxNzUwNTJjZDJhNTYwYTEwN2UwMWFkMjcwNzMxYzAz MmZjIiwiY2kvZG9ja2VyL3MzOTB4LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUiOiI4OWY1 NDIxY2YwNmQ4MTdhZTk0MDkyOTg3ZTkxNDQ3MmVmMzg0YWQyZDFmZmYyNzM1YmUzZDg3ODZiYTEx MjE0IiwiY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZSI6Ijgz ZWJhMTk1NzY0ODZmOWQxMGQ3YzAzN2Q2NjlkNzJiMzFhNjU1NjVhNDc5ZjMwYjIyYWFiMzZhYWEy ZmY4ZGMiLCJjaS9kb2NrZXIvdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmkvRG9ja2VyZmls ZSI6ImMyZGVjZDU1OTFiZDdhMDkzNzg5MDFiZWY2MjljZDk0NGFjZjA1MmViNTVlNGYzNWI3OWVi OWNiNGQ2MjI0NmEiLCJjaS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJp aGYvRG9ja2VyZmlsZSI6IjUxOTU1YThiZjNjNGQ0NDBmNDczODJhZjZmNTQyNmViZmY5NGFiMDFh MDRkYTM2MTc1YmFiZGE5YTA1Nzc0MGYiLCJjaS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93 bi9Eb2NrZXJmaWxlIjoiYjk4MmI0MjFjNzBkYjQ3NjkwMGRmNWI2MGUxOWVmODgxNWU2YzdkYWUy MjY4NzIyNTAwMjc4MGNhYjdiMGE3NiIsImNpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9E b2NrZXJmaWxlIjoiYTE3ZWJkYjE4NmNlMmRkNmI2MjEwMGI1YTQzOWUwNWExYWI5YWRhYjExM2Uy NTA4ODQzZTEyMWFhZWE1Mjk5MiIsImNpL2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUt ZW11bGF0ZWQvRG9ja2VyZmlsZSI6IjQ0YjYyMDNkOTI5MGJmZGM1M2Q4MTIxOWYwOTM3ZTExMTA4 NDdhMjNkZDk4MmVjOGM0ZGUzODgzNTRmMDE1MzYiLCJjaS9kb2NrZXIveDg2XzY0LXVua25vd24t bGludXgtZ251L0RvY2tlcmZpbGUiOiI3ZjRlM2NhNWZhMjg4ZWE3MGVkYjRkMWY3NTMwOTcwOGNk MzBiMTkyZTJlNDQ0NGU2MWM0ZDViM2I1OGY4OWNmIiwiY2kvZG94LnNoIjoiNDM0ZTk2MTFjNTJl Mzg5MzEyZDJiMDM1NjRhZGYwOTQyOWYxMGNjNzZmZTY2YTg2NDRhZGIxMDQ5MDNiODdiNyIsImNp L2xpbnV4LXMzOTB4LnNoIjoiZDZiNzMyZDc3OTViNGJhMTMxMzI2YWZmODkzYmNhNjIyOGE3ZDJl YjBlOTQwMmYxMzU3MDU0MTNkYmJlMGRjZSIsImNpL2xpbnV4LXNwYXJjNjQuc2giOiJjOTI5NjY4 MzhiMWFiN2FkM2I3YTM0NDgzM2VlNzI2YWJhNmI2NDdjZjU5NTJlNTZmMGFkMWJhNDIwYjEzMzI1 IiwiY2kvbGxkLXNoaW0ucnMiOiIzZDdmNzFlYzIzYTQ5ZTJiNjdmNjk0YTAxNjg3ODZmOWE5NTRk ZGExNWY1YTEzODgxNWQ5NjY2NDNmZDNmY2MzIiwiY2kvbWF4X2xpbmVfd2lkdGguc2giOiIwYTE1 MThiYmE0YzllY2FhNTU2OTRjYjJlOTkzMGQwZTE5YzI2NWJhYWJmNzMxNDNmMTdmOWNmMjg1YWFh NWJiIiwiY2kvcnVuLWRvY2tlci5zaCI6IjkyZTAzNjM5MGFkOWIwZDE2ZjEwOTU3OWRmMWI1Y2Vk MmU3MmU5YWZlYTQwYzdkMDExNDAwZWJkM2EyYTkwZGUiLCJjaS9ydW4uc2giOiI5YWZhYmM5NjFl MGVlODNiODcyMDFmM2ZkNTU0YzE5ZTViMGMzNmYzYTk1ZDAxMzU5NWUyNzZjOTg4MmRkMGE0Iiwi Y2kvcnVuX2V4YW1wbGVzLnNoIjoiZDFhMjNjNmMzNTM3NGEwNjc4YmE1MTE0YjliOGZlZmQ4YmUw YTc5ZTc3NDg3MmE4YmYwODk4ZDFiYWNhMThkMCIsImNpL3J1bnRlc3QtYW5kcm9pZC5ycyI6IjE0 NWE4ZTk3OTlhNTIyMzk3NTA2MWZlN2U1ODZhZGU1NjY5ZWU0ODc3YTdkN2E0Y2Y2YjRhYjQ4ZThl MzZjN2MiLCJjaS9zZXR1cF9iZW5jaG1hcmtzLnNoIjoiZmFlMzk2MDAyM2Y2ZjNkMTM4OGNkMmFk MjJmZGJhYjRiMDc1ZjFmMjlkZDQyOTJkNzk5NGEyMDc4M2JlYjZjZiIsImNpL3Rlc3QtcnVubmVy LWxpbnV4IjoiYzhhYTYwMjVjZmY1MzA2ZjRmMzFkMGM2MWRjNWY5ZDRkZDVhMWQxODlhYjYxM2Vm OGQ0YzM2N2M2OTRkOWNjZCIsImNvbnRyaWJ1dGluZy5tZCI6IjJkMjYyOTMxMGFkNGQ0NjRjNDgy YmRiYjU4MTlmMGQ2Y2UyMjNjNTc2YWVlZjJjZGNlNmExZjY4NTcwODVlYTUiLCJwZXJmLWd1aWRl Ly5naXRpZ25vcmUiOiJmZTgyYzdkYTU1MTA3OWQ4MzJjZjc0MjAwYjBiMzU5YjRkZjk4MjhjYjRh MDQxNmZhNzM4NGYwN2EyYWU2YTEzIiwicGVyZi1ndWlkZS9ib29rLnRvbWwiOiIxMTVhOTgyODQx MjZjNmIxODAxNzhiNDQ3MTMzMTRjYzQ5NGYwOGE3MTY2MmVlMmNlMTVjZjY3ZjE3YTUxMDY0Iiwi cGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZCI6IjNlMDNiZmZjOTkxZmRjMjA1MGYzZDUxODQyZDcy ZDlkMjFlYTZhYmFiNTZhM2JhZjNiMmQ1OTczYTc4Yjg5ZTEiLCJwZXJmLWd1aWRlL3NyYy9hc2Np aS5jc3MiOiIyOWFmYjA4ODMzYjJmZTIyNTBmMDQxMmUxZmExMTYxYTI0MzJhMDgyMGExNDk1M2M4 NzEyNDQwNzQxN2M3NDFhIiwicGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kIjoiNWU0OTkx ZmY1OGExODNlZjBjZDlmZGMxZmViNGNkMTJkMDgzYjQ0YmRmODczOTNiYmIwOTI3ODA4ZWYzY2U3 ZCIsInBlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvYXBwcm94Lm1kIjoiOGMwOTAzMmZhMmQ3OTVh MGM1ZGIxNzc1ODI2Yzg1MGQyOGViMjYyNzg0NmQwOTY1YzYwZWU3MmRlNjM3MzVhZCIsInBlcmYt Z3VpZGUvc3JjL2Zsb2F0LW1hdGgvZm1hLm1kIjoiMzExMDc2YmE0Yjc0MWQ2MDRhODJlNzRiODNh OGQ3ZThjMzE4ZmNiZDdmNjRjNDM5MmQxY2Y1YWY5NWM2MDI0MyIsInBlcmYtZ3VpZGUvc3JjL2Zs b2F0LW1hdGgvZnAubWQiOiIwNDE1M2U3NzVhYjZlNGYwZDc4MzdiY2M1MTUyMzBkMzI3YjA0ZWRm YTM0Yzg0Y2U5YzllMTBlYmFlZWYyYmU4IiwicGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9zdm1s Lm1kIjoiMDc5ODg3M2I4ZWVkYWVkYTVmZWQ2MmRjOTE2NDViNTdjMjA3NzVhMDJkM2NkNzRkOGJk MDY5NThmMTUxNjUwNiIsInBlcmYtZ3VpZGUvc3JjL2ludHJvZHVjdGlvbi5tZCI6IjlmNWExOWU5 ZTY3NTFmMjVkMmRhYWQzOTg5MWEwY2M2MDA5NzQ1MjdlYzRjODMwNTg0M2Y5NjE4OTEwNjcxYmQi LCJwZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1kIjoiNDQ3NzMxZWI1ZGU3ZDY5MTY2NzI4ZmRi YzVlY2IwYzBjOWRiNjc4ZWE0OTNiNDVhNTkyZDY3ZGQwMDIxODRjMCIsInBlcmYtZ3VpZGUvc3Jj L3Byb2YvbWNhLm1kIjoiZjU2ZDU0ZjNkMjBlN2FhNGQzMjA1MjE4NmU4MjM3YjAzZDY1OTcxZWI1 ZDExMjgwMmI0NDI1NzBmZjExZDM0NCIsInBlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1k IjoiOGE2NTBjMGZkNmVkZTA5NjQ3ODliYjY1Nzc1NTdlZWVmMWQ4MjI2YTg5Njc4ODYwMmNlNjE1 MjhlMjYwZTQzYyIsInBlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZCI6 IjYxNWY4OGRjYTBhNzA3YjZjNDE2ZmE2MDU0MzVkZDZlMWZiNTM2MWNjNjM5NDI5Y2JmNjhjZDg3 NjI0YmQ3OGIiLCJwZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9mZWF0dXJlcy5tZCI6IjE3 MDc3NzYwZmYyNGMwMDZiNjA2ZGQyMTg4OWM1M2Q4NzIyOGY0MzExZjNiYTNhNTc0ZjlhZmRlYWNk ODYxNjUiLCJwZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9pbmxpbmluZy5tZCI6IjdlZDFk NzA2OGQ4MTczYTAwZDg0YzE2Y2ZlNTg3MWNkNjhiOWYwNGY4ZDBjY2EyZDAxZWJjODQ5NTdlYmYy ZjYiLCJwZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZCI6ImM0YjM3MTg0 MmUwMDg2ZGYxNzg0ODhmZWM5N2YyMGRlZjhmMGM2MmVlNTg4YmNkMjVmZDk0OGI5YjFmYTIyN2Ui LCJwZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydW50aW1lLm1kIjoiODM1NDI1ZjVlZTU5 N2ZiM2U1MWQzNmU3MjVhODFlYmVlMjlmNDU2MTIzMWQxOTU2M2NkNGRhODFkYmIxY2ZjYiIsInBl cmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1c3RmbGFncy5tZCI6IjAxMTk3YWNmNmYwYWRl YzhkYjMyYjg1OTE4MTFmNjljZWNiNjU1NWEyYjA1ZGM1ZDVlYzI3ZDBlM2Y3YjA2NWUiLCJwZXJm LWd1aWRlL3NyYy92ZXJ0LWhvci1vcHMubWQiOiJjNjIxMWMwZWU5MWU2MDU1MmVjNTkyZDg5ZDlk OTU3ZWVkYzIxZGVlM2NiZDg5ZTFhZDY3NjVlYTA2YTI3NDcxIiwicnVzdGZtdC50b21sIjoiZDk5 YTQzZjNmOGVmOWU0MjVjZjAxYzMzM2ZiYTlmMDA1MWY4ODhmNWQ4N2FiNGU4ZjYzYzJmN2QwZmU2 NjIwZiIsInNyYy9hcGkucnMiOiJiYjE3OTVlOTY1N2E4Mjk4ZDM3ZDIzNDliNDU0NDNmMDhlOWU0 NTUzOTlhZDRiNzI3MDE4NjAwNzI4NDc4YzEwIiwic3JjL2FwaS9iaXRfbWFuaXAucnMiOiIyN2Yz MDk3ZmMwYTExZTNjNDEwNzA0OWQ5Nzc5ZTY4MGRjZDY3NDA3YTA2NjcwNDAwOGE2YjljNGZkNTI5 ZTA1Iiwic3JjL2FwaS9iaXRtYXNrLnJzIjoiMDU4ZWJjMzhhMmUwMzYzZjA3YTQ0MWQzZTlhNDc3 NWFhZWM1N2NjYjE3MGEwZTVkNWVmYTVkYzQ3NDNhYjA3YiIsInNyYy9hcGkvY2FzdC5ycyI6IjAz Yjk0YTNkMzE2YWM3YjdiZTcwNjg4MTAwNDQ5MTFlOTY1ZTg4OWEwYWNlN2JhZTc2Mjc0OWNhNzRh OTI3NDciLCJzcmMvYXBpL2Nhc3QvbWFjcm9zLnJzIjoiYjBhMTRkMGM4M2FkMmViYjdhMjc1MTgw ZjZkOWUzZjJiYzMxMmJhNTdhN2QzZDZjMzlmYWQ0ZTBmMjBmOTQwOCIsInNyYy9hcGkvY2FzdC92 MTI4LnJzIjoiZWRkMDk5NGVmYWM0Mzc5ZGZmMjZlMTc4NDIzYTUyZGJiM2ZmZWIzOGIxZmM5N2Nh ZTk3NWQ3NDRjMDBiNGZiNiIsInNyYy9hcGkvY2FzdC92MTYucnMiOiI5NmJkOThjMmQyMWIwNjYz YWJlNmMwYWIzMzAwNWIxZmE2OTNmM2RiN2VlNjc5NTM1MTM5MTM0Mzg2MzQ4NGRhIiwic3JjL2Fw aS9jYXN0L3YyNTYucnMiOiI4YzMxZmU5MWY1ZTc4ZWY3MzdkZmJhNjk3OWNjMTI0MDIxMGNiMDk0 YTg5ZDI4NGZlNDU5YmY4YTk5MWNhMjRiIiwic3JjL2FwaS9jYXN0L3YzMi5ycyI6ImE5OWE3OWRk ODRkMmE1ZTZhZGY5ZGI5ODcwNTY3NTkxNWJkMDNmZDEyODdkNDg5YzdmZTM4ZTg0ZDdlNGEwODYi LCJzcmMvYXBpL2Nhc3QvdjUxMi5ycyI6ImMwZGQ1MjZmNDFlZDdiOGE3MWMzNzQzZDkxMjY3NTU0 ZWMwYTBjNzU4MzRjY2MyZTNlY2IwZWYzMDA0YWY2NDIiLCJzcmMvYXBpL2Nhc3QvdjY0LnJzIjoi NjU3MmZkYmEyYTEyNDFhNmNkNjY2ZDNmMGNjZTMzMDZjZDJjYjdlNWUyMzYxNzJlNTlkNWQ0MzUx YzhhODhhZiIsInNyYy9hcGkvY21wLnJzIjoiMzU3YzNhMmEwOWM2ZDQ2MTFjMzJkZDdmYTk1YmUy ZmFlOTMzZDUxM2UyMjkwMjZlYzliNDQ0NTFhNzdiODg0ZSIsInNyYy9hcGkvY21wL2VxLnJzIjoi NjBmNzBmMzU1YmFlNGNiNWIxN2RiNTMyMDRjYWNjMzg5MGY3MDY3MDYxMWMxN2RmNjM4ZDRjMDRm N2NjODA3NSIsInNyYy9hcGkvY21wL29yZC5ycyI6IjU4OWY3MjM0NzYxYzI5NGZhNWRmOGY1MjVi YzRhY2Q1YTQ3Y2RiNjAyMjA3ZDUyNGEwZDRlMTk4MDRjZDk2OTUiLCJzcmMvYXBpL2NtcC9wYXJ0 aWFsX2VxLnJzIjoiOTAyY2NiOGFhMDFmZDU3MzhiMzBiYTBiNzEyNjY5YzIxZDQ4MDE5NTg5MDdl MDNiYWQyMzQzMmM3ZGJhMDE5OCIsInNyYy9hcGkvY21wL3BhcnRpYWxfb3JkLnJzIjoiOWRiMGMz N2Q3NDM0Y2RmYzYyZDhkNjY5MTJlOTcyZmEzZDhjMTE1YWIyYWYwNTFhNmY0NWU0MTRiZDNlNGYx YyIsInNyYy9hcGkvY21wL3ZlcnRpY2FsLnJzIjoiZGUzZDYyZjM4ZWJhODE3Mjk5YWExNmYxZTE5 Mzk5NTRjOWE0NDdlMzE2NTA5Mzk3NDY1YzI4MzA4NTJiYTA1MyIsInNyYy9hcGkvZGVmYXVsdC5y cyI6IjY3YmYyMWMxMzQxMjdkMTJhNzAyOGM4Yjg4YTU3ZjBjZWVlOGNjYmQ3NDk3NmRhOGNhNzRl YjlmMTZhMTc0ZDUiLCJzcmMvYXBpL2ZtdC5ycyI6IjY3ZmI4MDRiYjg2YjZjZDc3Y2Y4Y2Q0OTJi NTczM2NlNDM3MDcxYjY2ZmUzMjk3Mjc4YjhhNjU1MmMzMjVkZGEiLCJzcmMvYXBpL2ZtdC9iaW5h cnkucnMiOiIwMmIyYjI4N2Y3NDA0ZjhhOTgzODEzY2Y3MGM4NzEwOGM4ZGEzODM1NTc4YjYzYWIz MDMxMTY4ODVmNjA5NDEzIiwic3JjL2FwaS9mbXQvZGVidWcucnMiOiI1NmUxYzNiZGMwOTI3NDcz NDRmZmZhYWZmZjlkYTcxNjNlZTc4Mjc4NTdmNmZiN2NiMWM5OTIzZWNhNGY2ZmEwIiwic3JjL2Fw aS9mbXQvbG93ZXJfaGV4LnJzIjoiNTU4ZmQ1OTJmN2Y0ODU3MTJmYjA1MTUwOWNlY2M3MTc0YTIx ZTZiZjYyZTVjZTY0NzY2ZTc1YWZjOTdiYjhlMSIsInNyYy9hcGkvZm10L29jdGFsLnJzIjoiM2Iy ZTcwODc3YTRmMzY4Yzc3MDRmOGUyNTQyMzZjMDE0YzM2NWM3NGQ5MzM3MWMxZmViNWYwMzBlNmM2 NjQyMiIsInNyYy9hcGkvZm10L3VwcGVyX2hleC5ycyI6IjJhNDQyZjY2NmJjODBlMjJkNDFmOTAz Zjg4MTIzOGZlMTE0ZGQ0OTM0NGMzZWQ2OTg0OTI1MGU4NTNjYWZjNWQiLCJzcmMvYXBpL2Zyb20u cnMiOiIyZTU5OWQ4MzI5Y2IwNWVhZjA2MjI0Y2M0NDEzNTVjNGI3YjUxMjU0ZmMxOTI1NjYxOTMz M2JlOGMxNDlkNDQ0Iiwic3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMiOiI1ZDJjYzcwMDU2ODM3 NmJmNmVlMWZlNWU0MDZkYTNiYzJkNDg4ZmYxNTU2NDRiZjczZDA2YTEzNDliNzNmYzUzIiwic3Jj L2FwaS9mcm9tL2Zyb21fdmVjdG9yLnJzIjoiOTc2NDM3MWFhOWU2MDA1YWFjZTc0ZGVhMTRmNTll NTYxMWEwOTViN2NmNDI3MDc5NDA5MjQ3NDkyODJjNTJmMCIsInNyYy9hcGkvaGFzaC5ycyI6IjUw NzZlY2U4Nzk2OTU5MmM4NzY0ODZmNWIxZWE4YWZmYmVhZWMzNzlkMWExNGEzMDg1OWUwYWE1NTky MDE5ZGUiLCJzcmMvYXBpL2ludG9fYml0cy5ycyI6IjhmODAxMTYyNzI1MGUyM2U2NmI1YzBjYTY0 MWFmYjA3OWQ4MjMyNjc0YmIxMzU0MTQwYjUzNmJkYmVhNjNlNTUiLCJzcmMvYXBpL2ludG9fYml0 cy9hcmNoX3NwZWNpZmljLnJzIjoiZTc0NDUwMjFmMzkwODMyNmJmZWU3NTg4MzVlNWZjNWFkNTZh YTFiYWE3N2ZjMWM1OGFiZTQzNTBjNjZjNjcwYSIsInNyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5y cyI6ImJiNGZlOTliZTJhZjZhMjFkODA1ZWZhYjQ0YzhlNGU2MWE3YjJhZGI0MmE2NTUwNGEwY2Yy NmQxM2VmZGFkY2QiLCJzcmMvYXBpL2ludG9fYml0cy92MTI4LnJzIjoiMTQ1YTQ0OTIyYjA5YTVj YTViNjJkODhhNDYxZDMyN2QzOTlhOTk3YTE1ZGI0YjExZDdiMTdlNTU0YTlmYTRjMCIsInNyYy9h cGkvaW50b19iaXRzL3YxNi5ycyI6ImY0ZjRmNjFiYTg4YWE1MWIxNThlYzU2Y2EzZGNlMjM0MzQ5 YWVhMGRhZjJiMzAyOWExNGFiNTEyNWQxZTQxZTUiLCJzcmMvYXBpL2ludG9fYml0cy92MjU2LnJz IjoiOGNlYTljNWQ5ODA5ZjExMzIzY2I3Y2RjNTNiODNkZjU5M2ZkMTdjYWY5MjYyNTFlNDEyYWU5 Nzc3YmVkNTQ3ZiIsInNyYy9hcGkvaW50b19iaXRzL3YzMi5ycyI6IjkwNWJhNjgzZDM0MmZhMzJm NDIwMmI4MGJiNDY1MzA4MDdiZDBhNWI1ODhmNmMyZThjOWY0NzUyMjNjNDc3NzUiLCJzcmMvYXBp L2ludG9fYml0cy92NTEyLnJzIjoiZTI1YWZhMWZiZjA4OGE1ZDU4ZTdkNzVkMTk3YjZjZDRjNTY2 MzdlYTI4NTQyYmExOGU0NmE0NTFmMjlkMDRlNyIsInNyYy9hcGkvaW50b19iaXRzL3Y2NC5ycyI6 ImQ2MjM4MDIyY2NmZjdiOTJlNTViM2Y2MDE3ZmMyNjlhY2I2ZjM2MzMwYTZkN2U4ZmIzODk4NTNh MGYxYjY0NzgiLCJzcmMvYXBpL21hdGgucnMiOiI4YjJhMmZjNjUxOTE3YTg1MDUzOWY5OTNhYTBi OWU1YmY0ZGE2N2IxMTY4NTI4NWI4ZGU4Y2RjYTMxMTcxOWVjIiwic3JjL2FwaS9tYXRoL2Zsb2F0 LnJzIjoiNjFkMjc5NGQ2ODI2MmExMDkwYWU0NzNiZDMwNzkzYjVmNjVjZjczMmYzMmE2Njk0YTNh ZjJjZTVkOTIyNTYxNiIsInNyYy9hcGkvbWF0aC9mbG9hdC9hYnMucnMiOiI1YjZiMjcwMWUyZTEx MTM1YjdjZTU4YTA1MDUyZWE4MTIwZTEwZTQ3MDJjOTVkMDQ2YjlkMjFiODI3YjI2YmY4Iiwic3Jj L2FwaS9tYXRoL2Zsb2F0L2NvbnN0cy5ycyI6IjYzMDJjOTI2MWRhNDI5MWQxNDRkNWJiNTM0OTNj ZGQwNzM0OThmZWI0MDk1NWZiNjg2MGVhM2M0ZDA2Yzk3OGEiLCJzcmMvYXBpL21hdGgvZmxvYXQv Y29zLnJzIjoiNGMyZGQ3MTczNzI4ZWYxODkzMTRmMTU3NmM5NDg2ZTAzYmUyMWI3ZGE5ODg0M2Iy ZjkwMTEyODJhNzk3OWUzMSIsInNyYy9hcGkvbWF0aC9mbG9hdC9leHAucnMiOiI3YzZkNWYxZTMw NGY0OThhMDFjZmEyM2I5MjM4MGM4MTVkN2RhMGFkOTRlYWUzNDgzNzgzYmMzNzdkMjg3ZWVmIiwi c3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJzIjoiNTRjNzU4M2YzZGY3OTNiMzlmZjU3NTM0ZmFkZTI3 YjQxYmI5OTI0MzllNWRjMTc4MjUyZjVjYTMxOTBhM2U1NCIsInNyYy9hcGkvbWF0aC9mbG9hdC9t dWxfYWRkLnJzIjoiNjJjYWM3NzY2MGQyMDE1OTI3NmQ0YzllZjA2NmViOTBjODFjYmRkYjgwOGU4 ZTE1NzE4MmM2MDc2MjVhZDJlYiIsInNyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkZS5ycyI6ImJh ZTA1NmVlOWYzYTcwZGYzOWVjM2MzYjJmNjQzN2M2NTMwMzg4OGE3Yjg0M2VmMWE1YmNmMWY1YWNh MGU2MDIiLCJzcmMvYXBpL21hdGgvZmxvYXQvcG93Zi5ycyI6IjlkZGI5Mzg5ODRiMzZkMzlkODJh ODJmODYyZjgwZGY4ZjdmYjAxM2YxZDIyMmQ0NTY5OGQ0MWQ4ODQ3MmY1NjgiLCJzcmMvYXBpL21h dGgvZmxvYXQvcmVjcHJlLnJzIjoiNTg5MjI1Nzk0ZmYxZGJmMzExNThkZmY2NjBlNmQ0NTA5ZWNj OGJlZmJiNTdjNjMzOTAwZGVhNWFjMGI4NDBkNiIsInNyYy9hcGkvbWF0aC9mbG9hdC9yc3FydGUu cnMiOiJhMzJhYmRjYzMxOGQ3Y2NjODQ0ODIzMWY1NGQ3NWI4ODRiN2NiZWIwM2E3ZDU5NTcxM2Fi NjI0MzAzNmY0ZGJmIiwic3JjL2FwaS9tYXRoL2Zsb2F0L3Npbi5ycyI6ImNiZDM2MjJiN2RmNzRm MTk2OTE3NDMwMDFjOGNmNzQ3YTIwMWY4OTc3YWQ5MDU0MmZlZTkxNWYzN2RjZDFlNDkiLCJzcmMv YXBpL21hdGgvZmxvYXQvc3FydC5ycyI6IjBjNjZkNWQ2M2ZiMDhlNGQ5OWM2YjgyYTg4MjhlNDEx NzNhZmYxYWM5ZmExYTI3NjRhMTFmYWMyMTdjY2YyYWMiLCJzcmMvYXBpL21hdGgvZmxvYXQvc3Fy dGUucnMiOiI3MzFlMWM5ZjMyMWI2NjJhY2NkZDI3ZGFjYjNhYWMyZTgwNDNiN2FlY2IyZjIxNjFk ZGU3MzNiZDlmMDI1MzYyIiwic3JjL2FwaS9taW5pbWFsLnJzIjoiMWYyMmJjYzUyODU1NTQ0NGU3 NmRlNTY5ZWMwYWUyMDI5YjlhZTlkMDQ4MDVlZmVhZmE5MzM2OWM4MDk4MDM2YiIsInNyYy9hcGkv bWluaW1hbC9pdWYucnMiOiI4MTljZmYyNmQzZTE5NmY4MDc2NDViY2MxZDc5ZWIyN2Q5ZjE3NWVk Yjg5OTEwZjIyNzRkNTJhMWU5MTNjZDExIiwic3JjL2FwaS9taW5pbWFsL21hc2sucnMiOiIwY2Fl MTBhZTFmYzY1ZjUwNzBlNjg2YzBjNzliZmJhMjdiODZiMzNkNmMzOTkzNjdiZDQ4NDhmYjM2N2Rj ZWM0Iiwic3JjL2FwaS9taW5pbWFsL3B0ci5ycyI6ImY3NGQ3YTQ5MjVkNzIwOWZhZWJjMjZlYTgz MTUyNTljYjJjMDhlYzY1Nzg5YTcwODY5ZTU5NTY0OWE5YmMzOWEiLCJzcmMvYXBpL29wcy5ycyI6 IjNlMjczYjI3N2EwZjMwMTlkNDJjM2M1OWNhOTRhNWFmZDQ4ODVkNWFlNmQyMTgyZTUwODliYmVl YzlkZTQyZWUiLCJzcmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycyI6ImQyZDVhZDg5N2E1 OWRkMDc4NzU0NGY5MjdlMGU3Y2E0MDcyYzNlNThiMGY0YTIzMjQwODMzMTJiMGQ1YTIxZDciLCJz cmMvYXBpL29wcy9zY2FsYXJfYml0d2lzZS5ycyI6IjQ4MjIwNGU0NTljYTZiZTc5NTY4ZTFjOWY3 MGFkYmUyZDIxNTE0MTJkZGYxMjJmYjIxNjFiZThlYmI1MWM0MGMiLCJzcmMvYXBpL29wcy9zY2Fs YXJfbWFza19iaXR3aXNlLnJzIjoiYzI1MGY1MjA0MmUzN2IyMmQ1NzI1NmM4MGQ0NjA0MTA0Y2Zk MmZiZTJhMmUxMjdjNjc2MjY3MjcwY2E1ZDM1MCIsInNyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMu cnMiOiJjNDc3M2Q0MzVjM2Y5ZGE0NDU0MzI3ZTZmYmIyYjViNDFhMWMwZWJiMWNjYTczNzJlNjlk YzdhMzQ0YTFiNmU0Iiwic3JjL2FwaS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMiOiJkZGNhMTVk MDlkZGVlZjUwMmMyZWQ2NjExN2E2MjMwMGNhNjVkODdlOTU5ZThiNjIyZDc2N2JkZjFjMzA3OTEw Iiwic3JjL2FwaS9vcHMvdmVjdG9yX2JpdHdpc2UucnMiOiJiMzk2OGY3MDA1YjY0OWVkY2MyMmE1 NGUyMzc5YjE0ZDVlZTE5MDQ1ZjJlNzg0MDI5ODA1NzgxYWUwNDNiNWVlIiwic3JjL2FwaS9vcHMv dmVjdG9yX2Zsb2F0X21pbl9tYXgucnMiOiI3NmJmOGNiNjA3ZTJjNDQyOTIzYzFkYTEwNjFhNmI4 MGQ3NDJkNjA3NDA4MDMzYzJhMzc2MTE2MTExNGNmMmEwIiwic3JjL2FwaS9vcHMvdmVjdG9yX2lu dF9taW5fbWF4LnJzIjoiYTM3ODc4OWM2ZmY5YjMyYTUxZmJkMGE5N2ZmZDM2ZWQxMDJjZDFmZTZh MDY3ZDJiMDIwMTdjMWRmMzQyZGVmNiIsInNyYy9hcGkvb3BzL3ZlY3Rvcl9tYXNrX2JpdHdpc2Uu cnMiOiI1MDUyZDE4NTE3ZDc2NTQxNWQ0MDMyN2U2ZThlNTVhMzEyZGFhY2EwYTVlMmFlYzk1OWJm YTU0YjE2NzVmOWM4Iiwic3JjL2FwaS9vcHMvdmVjdG9yX25lZy5ycyI6IjVjNjJmNmIwMjIxOTgz Y2RiZDIzY2QwYTNhZjM2NzJlNmJhMTI1NWYwZGZlOGIxOWFhZTZmYmQ2NTAzZTIzMWIiLCJzcmMv YXBpL29wcy92ZWN0b3Jfcm90YXRlcy5ycyI6IjZjM2Y3NjFkOWQ1NTFmNjM2NWE4YTk1NTM5Y2Vh Y2U0YjFhMDJlMGIxMmQxNDRmMzRlZDY4ZGI5NGU4OGNmZjQiLCJzcmMvYXBpL29wcy92ZWN0b3Jf c2hpZnRzLnJzIjoiZTUxMGJlMTQxMjdjMGZmZDU4YTI1NzNhMzk3MDFkYTM1NTdkNjZiZWRlYzA5 ODM3YWM4YmJkNDRkNTc5ZGEwMCIsInNyYy9hcGkvcHRyLnJzIjoiOGE3OTMyNTFiZWQ2MTMwZGNm YjJmMTUxOWNlYWExOGI3NTFiYmIxNTg3NTkyOGQwZmI2ZGViNWE1ZTA3NTIzYSIsInNyYy9hcGkv cHRyL2dhdGhlcl9zY2F0dGVyLnJzIjoiM2Q2MTRmOWQ1YjRjYTIwMWE5ZjdlNDZhZjQ0MDVlMWQy YzI4ZWNlZTE2MjAyOTdjMjNiNTJlMzdiOTJjYzBlYSIsInNyYy9hcGkvcmVkdWN0aW9ucy5ycyI6 ImFlNWJhY2E4MTM1MmVjZDQ0NTI2ZDZjMzBjMGExZmVlZGE0NzVlYzczZGRkM2MzZWM2YjE0ZTk0 NGU1NDQ4ZWUiLCJzcmMvYXBpL3JlZHVjdGlvbnMvYml0d2lzZS5ycyI6IjhiZjkxMGFlMjI2MTg4 YmQxNWZjN2UxMjVmMDU4Y2QyNTY2YjYxODZmY2QwY2Q4ZmQwMjBmMzUyYzM5Y2UxMzkiLCJzcmMv YXBpL3JlZHVjdGlvbnMvZmxvYXRfYXJpdGhtZXRpYy5ycyI6IjQ3YTU2Nzk4OTZkYjJjYmI1NmMz MTM3MmZlNDIxNDNkYTAxNWI2YmVhZTdkYjVkMmYzYTAzMDlkZGY0MjdhZTEiLCJzcmMvYXBpL3Jl ZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzIjoiYzJkZjNjZjc0OTNjY2E0MTc0ZjJjNjVh ZWE0MjJhM2QyMGQ4YTIzYWYwM2Y4ZDU3Y2VmNzJjMTlmZWU4ZjIwZCIsInNyYy9hcGkvcmVkdWN0 aW9ucy9tYXNrLnJzIjoiZGI4MzMyN2E5NTBlMzNhMzE3ZjM3ZmQzM2NhNGUyMGMzNDdmYjQxNTk3 NWVjMDI0ZjNlMjNkYTg1MDk0MjVhZiIsInNyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4LnJzIjoi NmFmOGM5YWE0NWM2OTk2MWIxYjZmYzIwNTM5NWY0NzY3ZDQ0MjE4NjlmYjEwNWZiM2Q1NjNjNTYw NWZjMTNjZCIsInNyYy9hcGkvc2VsZWN0LnJzIjoiNmIwN2U3ZTgwMjZkZjU2MWY3MzA3MjIxYTg5 NmYwZmJiMjcyNTM2ZjQxYjkxMDkwNDBhYzA5NGMyNGM2OTMzMSIsInNyYy9hcGkvc2h1ZmZsZS5y cyI6ImJlN2ZhZmY5YjU5NjU0OTI2ZGYxMjg5N2IyZjk4YTRiYWE3ZDZhY2YyYWYxYWFmOTNkMzg4 YmE2ZTk2ZjgzZWMiLCJzcmMvYXBpL3NodWZmbGUxX2R5bi5ycyI6ImJmZWE1YTkxOTA1YjMxNDQ0 ZTllZjdjYTZlZGRiN2E5NjA2YjdlMjJkM2Y3MWJiODQyZWIyNzk1YTAzNDY2MjAiLCJzcmMvYXBp L3NsaWNlLnJzIjoiZWU4NzQ4NGU4YWYzMjk1NDdiOWE1ZDRmMmE2OWU4YmVkNmVhMTBiYmQ5NjI3 MGQ3MDYwODM4NDNkNGVlYTJhYyIsInNyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycyI6IjM3MzUz NjMwMDA3MzcxMDRhOGZjNWYzOTRhZDhjMzFlYzE0ZTg4NTk1MmJkNTc2NDdkZDJhODQwMDFhZWUw YTYiLCJzcmMvYXBpL3NsaWNlL3dyaXRlX3RvX3NsaWNlLnJzIjoiNzlkMDljNjRkMDA3MjQ3ODNj NzdjNDJlNDU4M2VlZWM5N2IxOGRiOTRjZjJhZTE0NmI1NjRjM2Y4NWNmZWZkNiIsInNyYy9hcGkv c3dhcF9ieXRlcy5ycyI6IjA1YjQyNjJlYWFkZTJmNjNlNmNkM2I3ODBjMTlhMDNhZWNkMjQ1OWQ0 Y2M0MzYwMDUxZmMwODg4ODcxNzlhNmUiLCJzcmMvY29kZWdlbi5ycyI6ImRiNGYyMzJmYjlmNTcy OGRiMzEwYjg3ZGM4YzQ3MzNiZTQ4YWZhY2FiMTA1Mzc5OGMwNjEwNmJlZjlhNDJiMDUiLCJzcmMv Y29kZWdlbi9iaXRfbWFuaXAucnMiOiI1MjVlYTZmZjdhZDFlMDQzYjZmNjEzNjk5MjE2NmYxODAz ZWQ1NTYzYjdmNmZjMjkyYzFjNDAyNTdkMjBlMjY0Iiwic3JjL2NvZGVnZW4vbGx2bS5ycyI6IjEy ZTc0OGI0OTI4YzNiZTZjYzEyYjQxNjVjMzA0MWEzZDBlZmNjZjYxOTUzMzhlY2QzZDg4YjhmZGIw YmJjYzciLCJzcmMvY29kZWdlbi9tYXRoLnJzIjoiZGZjZjAyYWQzNGUyZmRmZTIyYzNmMWNjMjgy MjAwMWNjODk1ZTY1MDMxYjRkMDZlNTg1ZTUwNDc4MzlmZWJiNyIsInNyYy9jb2RlZ2VuL21hdGgv ZmxvYXQucnMiOiIyYzFjYmNlMTU1YmM1MjdjZTM0ZDQ3MmMwZmVmNmJjM2RhZGI3OWNkN2EzNTdk ZDdhYTViMWViZWIxZDc3YTEzIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9hYnMucnMiOiJkNWFh YWRjZjU0MGJkYjliNDI2NGRjYTY0NzFhMjU1ZmQ3YmY1MDllNzYzYmVmMDIzOWMwMTQ0YTY4NDY2 ZmVhIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9jb3MucnMiOiIxN2YyOGQyOTAwYzg1MmRjYTIy MWZhOWM5MmE5Y2Q1ZmU3ZmQyZGY4ZDQyN2JiYzYwMjE2Yzc0OWIyYmUwMTNkIiwic3JjL2NvZGVn ZW4vbWF0aC9mbG9hdC9jb3NfcGkucnMiOiJkYmFmOWY0NDNmOTg0NmE0OTFkNGVjNTIyMTBhN2I1 ODM1ZGQ1OTNiMDMzNjZlMzEzNWIwNWMzN2Q3MGY5ZDZjIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9leHAucnMiOiJkMzAwMDU4YTRiY2M3YWU3OTc2ZjIxNmY4MTkwMmNkNzNhOWU2MDNhZDYzODgw ZGZmM2JiYzg2NmMyN2E5ZjM3Iiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9sbi5ycyI6ImM4NTFl MjExZTQzZjgyNTYwOTNiYTc1YjAzYWUwYzMwN2M5OTYyZWU2NmQ5NGYwOWI0ZGQ4MDA2ODE5MGNi ZGYiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L21hY3Jvcy5ycyI6ImZjOTkyNDg2OWVkODVlNDc5 NTk4M2FmMjI4Y2FjZjIzMTU4ZjRmMzU5MTlhZGNlMTZjOTIwYWQ0YTNmMGEwMDkiLCJzcmMvY29k ZWdlbi9tYXRoL2Zsb2F0L211bF9hZGQucnMiOiIwNDFhNWI2OWQ1OTkxZDkzZWY3OTUzNTFiMTc1 NjBjMTBmYWY4MGI3OGZkMjZhZDdkZjQyYTIzOWIzMmNmOWRlIiwic3JjL2NvZGVnZW4vbWF0aC9m bG9hdC9tdWxfYWRkZS5ycyI6ImQ3MWQ1ZjBmMzMzM2I2MmE3NDM5YjgyM2NiN2FkZjUzNDBlYTE1 NTVjZTgyMGZiNGEzZjRjYjkyMmY3M2Y1ZjUiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2Yu cnMiOiI5NzQyYzM4NzdmMWE1NTA5Y2E1Yzk0OTJhNDA4ODRiNjU3OWJhNmRkMTFjMjZiNzExMmU2 M2Y3MDY2NmIzOTVkIiwic3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMiOiIwZTk4NjhkMzU1 MzE1NjY1MDlmM2EwMWQ4NWQ1MjUzMDQ1ZWI0YWZhODUyNWQ4NDA3ZGNjMWY1ZjMzYzU2MDM2Iiwi c3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fY29zX3BpLnJzIjoiOGU2YjYxNDJkN2RkMjQwY2Ri MzY2Njk3MjJlODJhYjk4MTBhMjI2MWU4NmU2NTlmN2Q5N2E5NDJhZDhiMTI1OCIsInNyYy9jb2Rl Z2VuL21hdGgvZmxvYXQvc2luX3BpLnJzIjoiYmI2ZDM5ZGI4ZjkyMWUwM2EzMDFmYzUyMDZhYzFh NjFhOTdkZWY4YTJjYjgzYjg3Y2NmMTg5ZjNmYzQ4ZDU0OCIsInNyYy9jb2RlZ2VuL21hdGgvZmxv YXQvc3FydC5ycyI6ImU2ZWJiMGM1ZjQyOGVmYWQxZjY3MmI5YThmZTRlNTg1MzRkYmYxZWE1YThm ZTA5MmNlNWNlNzZiNTJmZTg5Y2IiLCJzcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnRlLnJzIjoi MjNhY2ZhZWEzOGQwZTA4MWE2ZDkwMjFjMTA5NGU4MTNkMGNmZDEyYzU4YzFlY2E5NjYyYWFkZTVl NjI1ZDUxYyIsInNyYy9jb2RlZ2VuL3BvaW50ZXJfc2l6ZWRfaW50LnJzIjoiNmNhMTNjMjE0YjZj ZjdlMDkyOWRiZTE4ZTk2YTE2ZmMwYmI3ZDg3OTk2MDhkZjI5YzRjODExNTQ5MGY5OWUwMSIsInNy Yy9jb2RlZ2VuL3JlZHVjdGlvbnMucnMiOiI4ZWIxOGViYWM3Njk4NWQyYWEzMDI2MmEyZWRkOGNi MDA0MjMwYjUxMWE3NjVkNjU3NTI1ZjY3N2E1ODVjMTJjIiwic3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrLnJzIjoiZTY3ZjM1YTFmNGQxNTZhNDg5NGEyZDZlYTVhOTM1YjRkODk4Y2Y3MGVlZmIy NzE1ZjVjMWNjMTY1ZTc3NmMxMSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hYXJjaDY0 LnJzIjoiODRiMTAxYzE3Y2FkMWVkZTRlYjZkMzhjYWRhMGFjN2RhMjM5ZGJhOGNlYTNiYWRkMzgy OWI5NjdlNTU4NDMxZiIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMiOiJhYWEw NzEyOWJkMDc4YWU3ZTY3N2NmOGI4ZTY3ZWM5ZjMwNTM2NjA2YTBjN2VkMWJhYWExOGZkMTc5M2Ji MjE4Iiwic3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzIjoiM2ViOTMxOWQy YzdjZjE5MjE2YjYwN2I4NDU5NjEyYzRlMDI3YjY0M2NmMTFiMDM2OTM3ZDM2ODk2YmY3Njc4NiIs InNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzIjoiNzY1NDdmMzk2 ZTU1ZWY0MDMzMjdjNzdjMzE0Y2Y4ZGI4YzdhNWM5Yjk4MTliZmI5MjVhYmVhY2YxMzAyNDllNSIs InNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYucnMiOiIzNmRjZDhhZjRhYjk5NzMwYTA3 OGVkMTEzZDM5NTVmNzRlYjFhMjg3NmUyZTZkOWYyMjRlMGZmNDYyYzIxNmQxIiwic3JjL2NvZGVn ZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngucnMiOiIzYTQwODY4YjM4Yzg2ZTM1YWVmYjk2ZDc1 NzhkZTYzMjJlZmU4OWQ4MTM1ZTAzNjYzNTliNTRkZGQwNmY4NjFhIiwic3JjL2NvZGVnZW4vcmVk dWN0aW9ucy9tYXNrL3g4Ni9hdngyLnJzIjoiNjc3YWVkM2YwNTYyODUyODVkYWEzYWRmZjhiYzY1 ZTczOTYzMGI0NDI0ZGVmYTZkOTY2NWUxNjBmMDI3NTA3ZSIsInNyYy9jb2RlZ2VuL3JlZHVjdGlv bnMvbWFzay94ODYvc3NlLnJzIjoiODUyMmY2ZWQwM2Y2YzMyZGQ1NzdkNDI5OGRmNDc3YzA4YWVh YWEzODU2MzcwNmYyOTA5NmUxOTExZWQ3MzFmMiIsInNyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFz ay94ODYvc3NlMi5ycyI6IjU0ZWM1NmU0OWIwYzY4NDFlY2NiNzE5ZTRmMzEwZDY1ZmU3NjdjMDQx MzZiMmVjMjBiZDhiOWQ3ZDk4OTdiOWUiLCJzcmMvY29kZWdlbi9zaHVmZmxlLnJzIjoiMWVjMjkz MGY0ZTFhY2M0M2FjMzBiNTE4YWYyOThkNDY2YTc5ZTllNzU3MzRhNTFjMzgwYjc4MTBlZmQxYTI3 ZiIsInNyYy9jb2RlZ2VuL3NodWZmbGUxX2R5bi5ycyI6IjNmMTNjYTE1OTczNzg3NThkMDUxMDZi ZjVmZjM3MTVlZWU1MzFmM2NiNmQ4OGY0OGI5MTgyYmQ2YzkzODZiNTEiLCJzcmMvY29kZWdlbi9z d2FwX2J5dGVzLnJzIjoiYzY3Yzg2ZTkxY2EzZmM3NzUzOWUwZWZjZWEwODFhM2M2MjU0OGNjY2Y1 MDM5NjNhZTQwOGYyZTg2ZjRlNmEyMSIsInNyYy9jb2RlZ2VuL3YxMjgucnMiOiI5NDIyNmIzMWVj NDAzZDE4ZDlkMmZlMDY3MTNmMTQ3YzljNzllOWI1ZjkxMDUwODkwODgyNjYzMTNmODQzMTg1Iiwi c3JjL2NvZGVnZW4vdjE2LnJzIjoiZGRlYzRmZmI2NmI2ZjdhYWZmYjlhMTc4MGM1ZGRiYTgyNTU3 YWJkNzRmNDUwNzNkMzM1MDQ3ZTA0Y2Y3NDkyNCIsInNyYy9jb2RlZ2VuL3YyNTYucnMiOiI2YjYz OTE3ZjA0NDQxMThkNmIxNTk1YmZmMjA0NWU1OWI5N2M0ZDI0MDEyYmQ1NzVmNjlmMWYwZWZjNWEw MjQxIiwic3JjL2NvZGVnZW4vdjMyLnJzIjoiMzQ3N2IzYzU1NDBhZWQ4NmU2MWUyZjU4MDdkZDMx ZGI5NDc0MTNjZWM5MTgxYzU4N2Q5M2VkNmVjNzRmMGViYSIsInNyYy9jb2RlZ2VuL3Y1MTIucnMi OiI1ODU0Zjk5ZDNhYWJjNGNkNDJiMjhhMjBkOWNlNDQ3NzU2ZGMyYmEwMjRhNDA5YTY5YjZhOGFl MWYxODQyZmM1Iiwic3JjL2NvZGVnZW4vdjY0LnJzIjoiZTllODljYWViZmU2M2QxMGMwY2JjYTYx ZTRkZmRiYTNiN2UwMmVlMDk4OTE3MGY4MGJlZWQyMzIzN2RkZDk1MCIsInNyYy9jb2RlZ2VuL3ZQ dHIucnMiOiJmMDc1M2I0MDVjZGM4NjViZGY4ZTgyYzY1MDVmMjk5ZWExZjk2MTM2MjM5ZWJiYWY3 ZjljZTkzZDMxMDc2NGI4Iiwic3JjL2NvZGVnZW4vdlNpemUucnMiOiJjODlmNWZkZWIyOGFjNGM4 MjcyZWQxODE2ZmNlMDNkOWQ5NTMwOGNjMzJiYjI1MzNiZDhiMjBjZDVhYzEwMmFjIiwic3JjL2xp Yi5ycyI6IjA1MDQ4YzZhODVlYzY1Y2Y5MDJkOWRkOGY3NTdhM2Y3NjM5MmI3MDNhNjc5NGVhNzFm MGQ0MTUwMGE4OWY3OGYiLCJzcmMvbWFza3MucnMiOiI3MGZjMGFiZTRjMjkwN2NlMmE0OTFjNTc0 ZTFjZmI5ZjM0MjMzODVkYTJlMWE5MjNhNDhjOWMxM2Y4YmE2ZWQ4Iiwic3JjL3NlYWxlZC5ycyI6 ImFlN2ZkZWFmNWQ4NGNkNzcxMGVkNzMwY2E3MmNhN2VhYmE5M2RmNmNiMGFjYjE4M2U1YzBhNzMy N2FjZjE5N2YiLCJzcmMvdGVzdGluZy5ycyI6Ijg5NjY2OWMwOGQ4YzgwMTQ0OGE0ZDJmYWRjOWQ2 MzNlZGEwZmJlODc5ZDIyOTk5N2UyYTE4MmUzMTI3OGU0NjkiLCJzcmMvdGVzdGluZy9tYWNyb3Mu cnMiOiI0MDNiYmM1ZWNiN2M3ODZmZTM2MTU2ZGYzMDJkMGMwN2E4MTIyNDA4ZGJiMTVmNzQ3NGQ3 NjgyMjI0YmExMTA2Iiwic3JjL3Rlc3RpbmcvdXRpbHMucnMiOiI0MTkxMmE5MjI2NmRmZTg4NDY0 N2ZjMDM1ZTQyNDJmZDc0NjEwMGRmOGU4Mzk4MDhhZTAzOTdhZjM3NTlhM2M4Iiwic3JjL3YxMjgu cnMiOiIxNmNmOWE4ZTcxNTZiODk5ZWU5YjljZDNmMmRiYTlkMTNlYzYzMjg5YmVhOGMzZWU5YWUy ZTQzYWQ5NTEwMjg4Iiwic3JjL3YxNi5ycyI6ImNiNjQ2NWNmMWUwMGJmNTMwMTgzYWYxODE5Yjlm ZTNkN2VlYzk3OGY4NzY1ZDVlODVkOWI1OGEzOWE0YjQwNDUiLCJzcmMvdjI1Ni5ycyI6ImZlMjM1 MDE3ZGExOGM3ZjNjMzYxODMxYzYwZTMxNzNhZDMwNGQ4ZWExZTk1ZDY0ZWJlYmM3OWRhMmQ3MDg1 MTEiLCJzcmMvdjMyLnJzIjoiMTQ1ZDM0Nzg1NWJhYzU5YjJkZTY1MDhmOWU1OTQ2NTRlNmMzMzA0 MjNhZjllZGMwZTJhYzhmNGQxYWJkZjQ1ZSIsInNyYy92NTEyLnJzIjoiZjM3MmYyNzdmM2U2MmVi NWM5NDViYjFjNDYwMzMzZmRiMTdiNjk3NGZjYzg3NjYzMzc4OGZmNTNiZGVkOTU5OSIsInNyYy92 NjQucnMiOiIwYjgwNzk4ODFiNzE1NzVlMzQxNGJlMGI3ZjhmN2VhYmE2NTI4MWJhNjczMmYyYjJm NjFmNzNlOTViNmY0OGY3Iiwic3JjL3ZQdHIucnMiOiI4YjNlNDMzZDQ4NzE4MGJiNDMwNGZmNzEy NDVlY2FkOTBmMDAxMGY0M2UxMzlhNzIwMjdiNjcyYWJlNThmYWNjIiwic3JjL3ZTaXplLnJzIjoi ZWRhNWFhMDIwNzA2Y2JmOTRkMTViYWRhNDFhMGMyYTM1ZmM4ZjNmMzdjYjdjMmNkNmYzNGQyMDEz OTlhNDk1ZSIsInRlc3RzL2VuZGlhbm5lc3MucnMiOiI1MTQ3Zjg2ZDIyNGM0YzU0MGI3NzIwMzNk YTJmOTk0Y2FkOWJjOWMwMzVmMzhlYzIxZTIzYmM0ZTU1ZjhhNzU5In0sInBhY2thZ2UiOm51bGx9 CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9iZW5jaG1hcmtzLnltbAor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kLy5naXRodWIvd29ya2Zsb3dzL2JlbmNobWFya3MueW1sCisrKysgL2Rldi9udWxsCitAQCAt MSwzMSArMCwwIEBACistbmFtZTogYmVuY2htYXJrcworLQorLW9uOgorLSAgcHVzaDoKKy0gICAg YnJhbmNoZXM6CistICAgICAgLSBtYXN0ZXIKKy0gIHB1bGxfcmVxdWVzdDoKKy0gIHdvcmtmbG93 X2Rpc3BhdGNoOgorLQorLWpvYnM6CistICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnU6CistICAg IHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgd2l0aDoK Ky0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHNldHVwX3Nj cmlwdDogY2kvc2V0dXBfYmVuY2htYXJrcy5zaAorLSAgICAgIHNjcmlwdDogY2kvYmVuY2htYXJr LnNoCistICAgICAgbm9ydW46IDEKKy0gICAgICB2ZXJpZnk6IDEKKy0gICAgICAjIEZJWE1FOiBm aWd1cmUgb3V0IGhvdyB0byBhZGQgZG93bmxvYWRlZCBpc3BjIHRvIFBBVEgKKy0gICAgICAjIGZl YXR1cmVzOiBpc3BjCistICB4ODZfNjQtYXBwbGUtZGFyd2luOgorLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0 OiB4ODZfNjQtYXBwbGUtZGFyd2luCistICAgICAgcnVubmVyOiBtYWNvcy1sYXRlc3QKKy0gICAg ICBzZXR1cF9zY3JpcHQ6IGNpL3NldHVwX2JlbmNobWFya3Muc2gKKy0gICAgICBzY3JpcHQ6IGNp L2JlbmNobWFyay5zaAorLSAgICAgIG5vcnVuOiAxCistICAgICAgdmVyaWZ5OiAxCistICAgICAg IyBGSVhNRTogZmlndXJlIG91dCBob3cgdG8gYWRkIGRvd25sb2FkZWQgaXNwYyB0byBQQVRICist ICAgICAgIyBmZWF0dXJlczogaXNwYworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvY2kueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9jaS55bWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9j aS55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDIxOCArMCwwIEBACistbmFtZTogY2kKKy0KKy0j IHRyaWdnZXIgZm9yIGFsbCBQUnMgYW5kIGNoYW5nZXMgdG8gbWFzdGVyCistb246CistICBwdXNo OgorLSAgICBicmFuY2hlczoKKy0gICAgICAtIG1hc3RlcgorLSAgcHVsbF9yZXF1ZXN0OgorLQor LWpvYnM6CistICBydXN0Zm10OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1j aS1zY3JpcHQueW1sCistICAgIHdpdGg6CistICAgICAgc2NyaXB0OiBjaS9hbGwuc2ggY2hlY2tf Zm10IHx8IHRydWUKKy0gIHg4Nl82NC11bmtub3duLWxpbnV4LWFuZHJvaWQ6CistICAgIHVzZXM6 IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6Cist ICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB4ODZfNjQt bGludXgtYW5kcm9pZAorLSAgYXJtdjctbGludXgtYW5kcm9pZGVhYmk6CistICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAg ICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBhcm12Ny1saW51 eC1hbmRyb2lkZWFiaQorLSAgYWFyY2g2NC11bmtub3duLWxpbnV4LWFuZHJvaWQtTkVPTjoKKy0g ICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJh dGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6 IGFhcmNoNjQtbGludXgtYW5kcm9pZAorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVy ZT0rbmVvbgorLSAgdGh1bWJ2N25lb24tbGludXgtYW5kcm9pZGVhYmk6CistICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAg ICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogdGh1bWJ2N25l b24tbGludXgtYW5kcm9pZGVhYmkKKy0gIGk1ODYtdW5rbm93bi1saW51eC1nbnU6CistICAgIHVz ZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6 CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogaTU4 Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0aW9uLW1vZGVs PXN0YXRpYworLSAgaTU4Ni11bmtub3duLWxpbnV4LWdudS1TU0U6CistICAgIHVzZXM6IC4vLmdp dGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAg ZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogaTU4Ni11bmtub3du LWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0aW9uLW1vZGVsPXN0YXRpYyAt Q3RhcmdldC1mZWF0dXJlPStzc2UKKy0gIGk1ODYtdW5rbm93bi1saW51eC1nbnUtU1NFMjoKKy0g ICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJh dGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0 OiBpNTg2LXVua25vd24tbGludXgtZ251CistICAgICAgcnVzdGZsYWdzOiAtQ3JlbG9jYXRpb24t bW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9K3NzZTIKKy0gIGk2ODYtdW5rbm93bi1saW51 eC1nbnU6CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwK Ky0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAg ICAgIHRhcmdldDogaTY4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUNy ZWxvY2F0aW9uLW1vZGVsPXN0YXRpYworLSAgaTY4Ni11bmtub3duLWxpbnV4LWdudS1TU0U0XzI6 CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAg c3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRh cmdldDogaTY4Ni11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUNyZWxvY2F0 aW9uLW1vZGVsPXN0YXRpYyAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKKy0gIGk2ODYtdW5rbm93 bi1saW51eC1nbnUtQVZYMjoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2kt c2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAg IHdpdGg6CistICAgICAgdGFyZ2V0OiBpNjg2LXVua25vd24tbGludXgtZ251CistICAgICAgcnVz dGZsYWdzOiAtQ3JlbG9jYXRpb24tbW9kZWw9c3RhdGljIC1DdGFyZ2V0LWZlYXR1cmU9K2F2eDIK Ky0gIHg4Nl82NC11bmtub3duLWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtm bG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6 IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4LWdu dQorLSAgeDg2XzY0LXVua25vd24tbGludXgtZ251LVNTRTRfMjoKKy0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBm YWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3du LWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rc3NlNC4yCist ICB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUtQVZYMjoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZh c3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4 LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rYXZ4MgorLSAgYXJtLXVu a25vd24tbGludXgtZ251ZWFiaWhmOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQor LSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmCist ICBhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZjoKKy0gICAgdXNlczogLi8uZ2l0aHViL3dv cmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZh c3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6IGFybXY3LXVua25vd24tbGludXgt Z251ZWFiaWhmCistICBhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi1ORU9OOgorLSAgICB1 c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5 OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogYXJt djctdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZl YXR1cmU9K25lb24KKy0gIHRodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmOgorLSAg ICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0 ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAgICB0YXJnZXQ6 IHRodW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmCistICBhYXJjaDY0LXVua25vd24t bGludXgtZ251LU5FT046CistICAgIHVzZXM6IC4vLmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNj cmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdp dGg6CistICAgICAgdGFyZ2V0OiBhYXJjaDY0LXVua25vd24tbGludXgtZ251CistICAgICAgcnVz dGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStuZW9uCistICBwb3dlcnBjLXVua25vd24tbGludXgt Z251OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCist ICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogZmFsc2UKKy0gICAgd2l0aDoKKy0gICAg ICB0YXJnZXQ6IHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKKy0gIHBvd2VycGM2NC11bmtub3du LWxpbnV4LWdudToKKy0gICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0 LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6 CistICAgICAgdGFyZ2V0OiBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKKy0gIHBvd2VycGM2 NGxlLXVua25vd24tbGludXgtZ251OgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dzL3J1 bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1ZQor LSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUK Ky0gIHBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251LUFMVElWRUM6CistICAgIHVzZXM6IC4v LmdpdGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAg ICAgZmFpbC1mYXN0OiB0cnVlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiBwb3dlcnBjNjRs ZS11bmtub3duLWxpbnV4LWdudQorLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0r YWx0aXZlYworLSAgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUtVlNYOgorLSAgICB1c2Vz OiAuLy5naXRodWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5Ogor LSAgICAgIGZhaWwtZmFzdDogdHJ1ZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogcG93ZXJw YzY0bGUtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBydXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1 cmU9K3ZzeAorLSAgczM5MHgtdW5rbm93bi1saW51eC1nbnU6CistICAgIHVzZXM6IC4vLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAgZmFp bC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogczM5MHgtdW5rbm93bi1s aW51eC1nbnUKKy0gIHNwYXJjNjQtdW5rbm93bi1saW51eC1nbnU6CistICAgIHVzZXM6IC4vLmdp dGh1Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKKy0gICAgc3RyYXRlZ3k6CistICAgICAg ZmFpbC1mYXN0OiBmYWxzZQorLSAgICB3aXRoOgorLSAgICAgIHRhcmdldDogc3BhcmM2NC11bmtu b3duLWxpbnV4LWdudQorLSAgd2FzbTMyLXVua25vd24tdW5rbm93bjoKKy0gICAgdXNlczogLi8u Z2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAg ICBmYWlsLWZhc3Q6IGZhbHNlCistICAgIHdpdGg6CistICAgICAgdGFyZ2V0OiB3YXNtMzItdW5r bm93bi11bmtub3duCistICB4ODZfNjQtYXBwbGUtZGFyd2luLVNTRTRfMjoKKy0gICAgdXNlczog Li8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0g ICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICBydW5uZXI6IG1hY29zLWxh dGVzdAorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgdGFyZ2V0OiB4ODZfNjQtYXBw bGUtZGFyd2luCistICAgICAgcnVzdGZsYWdzOiAtQ3RhcmdldC1mZWF0dXJlPStzc2U0LjIKKy0g IHg4Nl82NC1hcHBsZS1kYXJ3aW4tQVZYOgorLSAgICB1c2VzOiAuLy5naXRodWIvd29ya2Zsb3dz L3J1bi1jaS1zY3JpcHQueW1sCistICAgIHN0cmF0ZWd5OgorLSAgICAgIGZhaWwtZmFzdDogdHJ1 ZQorLSAgICB3aXRoOgorLSAgICAgIHJ1bm5lcjogbWFjb3MtbGF0ZXN0CistICAgICAgc2NyaXB0 OiBjaS9ydW4uc2gKKy0gICAgICB0YXJnZXQ6IHg4Nl82NC1hcHBsZS1kYXJ3aW4KKy0gICAgICBy dXN0ZmxhZ3M6IC1DdGFyZ2V0LWZlYXR1cmU9K2F2eAorLSAgeDg2XzY0LWFwcGxlLWlvczoKKy0g ICAgdXNlczogLi8uZ2l0aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJh dGVneToKKy0gICAgICBmYWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICBydW5uZXI6 IG1hY29zLWxhdGVzdAorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgdGFyZ2V0OiB4 ODZfNjQtYXBwbGUtaW9zCistICBhYXJjaDY0LWFwcGxlLWlvczoKKy0gICAgdXNlczogLi8uZ2l0 aHViL3dvcmtmbG93cy9ydW4tY2ktc2NyaXB0LnltbAorLSAgICBzdHJhdGVneToKKy0gICAgICBm YWlsLWZhc3Q6IHRydWUKKy0gICAgd2l0aDoKKy0gICAgICBydW5uZXI6IG1hY29zLWxhdGVzdAor LSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgdGFyZ2V0OiBhYXJjaDY0LWFwcGxlLWlv cworLSAgICAgIHJ1c3RmbGFnczogLUN0YXJnZXQtZmVhdHVyZT0rbmVvbgorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kLy5naXRodWIvd29ya2Zsb3dzL2RvY3MueW1s CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvLmdpdGh1Yi93b3JrZmxvd3MvZG9jcy55bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDEz ICswLDAgQEAKKy1uYW1lOiBkb2NzCistCistb246CistICBwdXNoOgorLSAgICBicmFuY2hlczoK Ky0gICAgICAtIG1hc3RlcgorLQorLWpvYnM6CistICBkb2NzOgorLSAgICB1c2VzOiAuLy5naXRo dWIvd29ya2Zsb3dzL3J1bi1jaS1zY3JpcHQueW1sCistICAgIHdpdGg6CistICAgICAgc2V0dXBf c2NyaXB0OiBjYXJnbyBpbnN0YWxsIG1kYm9vaworLSAgICAgIHNjcmlwdDogY2kvZG94LnNoCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93 cy9ydW4tY2ktc2NyaXB0LnltbCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvLmdpdGh1 Yi93b3JrZmxvd3MvcnVuLWNpLXNjcmlwdC55bWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8uZ2l0aHViL3dvcmtmbG93cy9ydW4t Y2ktc2NyaXB0LnltbAorKysrIC9kZXYvbnVsbAorQEAgLTEsODYgKzAsMCBAQAorLW5hbWU6IHJ1 bi1jaS1zY3JpcHQKKy0KKy1vbjoKKy0gIHdvcmtmbG93X2NhbGw6CistICAgIGlucHV0czoKKy0g ICAgICBydW5uZXI6CistICAgICAgICByZXF1aXJlZDogZmFsc2UKKy0gICAgICAgIHR5cGU6IHN0 cmluZworLSAgICAgICAgZGVmYXVsdDogdWJ1bnR1LWxhdGVzdAorLSAgICAgIHRhcmdldDoKKy0g ICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3RyaW5nCistICAgICAgICBk ZWZhdWx0OiAnJworLSAgICAgIHJ1c3RmbGFnczoKKy0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQor LSAgICAgICAgdHlwZTogc3RyaW5nCistICAgICAgICBkZWZhdWx0OiAnJworLSAgICAgIHNjcmlw dDoKKy0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3RyaW5nCistICAg ICAgICBkZWZhdWx0OiBjaS9ydW4tZG9ja2VyLnNoCistICAgICAgc2V0dXBfc2NyaXB0OgorLSAg ICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcKKy0gICAgICBub3J1 bjoKKy0gICAgICAgIHJlcXVpcmVkOiBmYWxzZQorLSAgICAgICAgdHlwZTogc3RyaW5nCistICAg ICAgICBkZWZhdWx0OiAnJworLSAgICAgIHZlcmlmeToKKy0gICAgICAgIHJlcXVpcmVkOiBmYWxz ZQorLSAgICAgICAgdHlwZTogc3RyaW5nCistICAgICAgICBkZWZhdWx0OiAnJworLSAgICAgIGZl YXR1cmVzOgorLSAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCistICAgICAgICB0eXBlOiBzdHJpbmcK Ky0gICAgICAgIGRlZmF1bHQ6ICcnCistCistam9iczoKKy0gIHJ1bi1jaS1zY3JpcHQ6CistICAg IHJ1bnMtb246ICR7eyBpbnB1dHMucnVubmVyIH19CistICAgIHN0ZXBzOgorLSAgICAgIC0gbmFt ZTogQ2hlY2tvdXQKKy0gICAgICAgIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKKy0gICAgICAt IG5hbWU6IEluaXQgUnVzdHVwIENhY2hlCistICAgICAgICB1c2VzOiBhY3Rpb25zL2NhY2hlQHYy CistICAgICAgICB3aXRoOgorLSAgICAgICAgICBwYXRoOiB8CistICAgICAgICAgICAgfi8ucnVz dHVwL3Rvb2xjaGFpbnMKKy0gICAgICAgICAga2V5OiAke3sgcnVubmVyLm9zIH19LWNhcmdvLSR7 eyBoYXNoRmlsZXMoJyoqL3J1c3QtdG9vbGNoYWluJykgfX0KKy0gICAgICAtIG5hbWU6IEluc3Rh bGwgVG9vbGNoYWluCistICAgICAgICB1c2VzOiBkdG9sbmF5L3J1c3QtdG9vbGNoYWluQG5pZ2h0 bHkKKy0gICAgICAgIHdpdGg6CistICAgICAgICAgICMgRklYTUU6IGNoYW5nZSB0byBuaWdodGx5 IG9uY2UgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9wdWxsLzM1MCBp cyBtZXJnZWQKKy0gICAgICAgICAgIyBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUg dG9vbGNoYWluIGZpbGVzCistICAgICAgICAgIHRhcmdldHM6ICR7eyBpbnB1dHMudGFyZ2V0IH19 CistICAgICAgICAgIGNvbXBvbmVudHM6IHJ1c3RmbXQKKy0gICAgICAtIG5hbWU6IEdlbmVyYXRl IExvY2tmaWxlCistICAgICAgICBydW46IGNhcmdvIGdlbmVyYXRlLWxvY2tmaWxlCistICAgICAg LSBuYW1lOiBJbml0IENhcmdvIENhY2hlCistICAgICAgICB1c2VzOiBhY3Rpb25zL2NhY2hlQHYy CistICAgICAgICB3aXRoOgorLSAgICAgICAgICBwYXRoOiB8CistICAgICAgICAgICAgfi8uY2Fy Z28vYmluLworLSAgICAgICAgICAgIH4vLmNhcmdvL3JlZ2lzdHJ5L2luZGV4LworLSAgICAgICAg ICAgIH4vLmNhcmdvL3JlZ2lzdHJ5L2NhY2hlLworLSAgICAgICAgICAgIH4vLmNhcmdvL2dpdC9k Yi8KKy0gICAgICAgICAgICB0YXJnZXQvCistICAgICAgICAgIGtleTogJHt7IHJ1bm5lci5vcyB9 fS1jYXJnby0ke3sgaGFzaEZpbGVzKCcqKi9DYXJnby5sb2NrJykgfX0KKy0gICAgICAtIG5hbWU6 IFNldHVwCistICAgICAgICBpZjogJHt7IGlucHV0cy5zZXR1cF9zY3JpcHQgIT0gJycgfX0KKy0g ICAgICAgIHJ1bjogJHt7IGlucHV0cy5zZXR1cF9zY3JpcHQgfX0KKy0gICAgICAgIGVudjoKKy0g ICAgICAgICAgVEFSR0VUOiAke3sgaW5wdXRzLnRhcmdldCB9fQorLSAgICAgICAgICBSVVNURkxB R1M6ICR7eyBpbnB1dHMucnVzdGZsYWdzIH19CistICAgICAgICAgIE5PUlVOOiAke3sgaW5wdXRz Lm5vcnVuIH19CistICAgICAgICAgIFZFUklGWTogJHt7IGlucHV0cy52ZXJpZnkgfX0KKy0gICAg ICAgICAgRkVBVFVSRVM6ICR7eyBpbnB1dHMuZmVhdHVyZXMgfX0KKy0gICAgICAtIG5hbWU6IFJ1 biBDSSBTY3JpcHQKKy0gICAgICAgIHRpbWVvdXQtbWludXRlczogMzAKKy0gICAgICAgIHJ1bjog JHt7IGlucHV0cy5zY3JpcHQgfX0KKy0gICAgICAgIGVudjoKKy0gICAgICAgICAgVEFSR0VUOiAk e3sgaW5wdXRzLnRhcmdldCB9fQorLSAgICAgICAgICBSVVNURkxBR1M6ICR7eyBpbnB1dHMucnVz dGZsYWdzIH19CistICAgICAgICAgIE5PUlVOOiAke3sgaW5wdXRzLm5vcnVuIH19CistICAgICAg ICAgIFZFUklGWTogJHt7IGlucHV0cy52ZXJpZnkgfX0KKy0gICAgICAgICAgRkVBVFVSRVM6ICR7 eyBpbnB1dHMuZmVhdHVyZXMgfX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kLy50cmF2aXMueW1sIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC8udHJhdmlz LnltbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kLy50cmF2aXMueW1sCisrKysgL2Rldi9udWxsCitAQCAtMSwyMTIgKzAsMCBAQAor LWxhbmd1YWdlOiBydXN0CistcnVzdDogbmlnaHRseQorLW9zOiBsaW51eAorLWRpc3Q6IGZvY2Fs CistCistc3RhZ2VzOgorLSAgLSB0b29scworLSAgLSBidWlsZC10ZXN0LXZlcmlmeSAjIFBhc3Nl cyBmdWxsIHRlc3Qgc3VpdGUsIHBlcm1pdCBubyByZWdyZXNzaW9ucyAodW5sZXNzIGl0J3MgcnVz dHVwIDovKQorLSAgLSAzMmJpdC10aWVyMQorLSAgLSA2NGJpdC10aWVyMgorLSAgLSAzMmJpdC10 aWVyMgorLQorLWpvYnM6CistICBmYXN0X2ZpbmlzaDogdHJ1ZQorLSAgaW5jbHVkZToKKy0gICAg IyBBbmRyb2lkOgorLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC1saW51eC1hbmRyb2lkCistICAg ICAgbmFtZTogIng4Nl82NC11bmtub3duLWxpbnV4LWFuZHJvaWQgKyBTU0UyIgorLSAgICAgIHN0 YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAtIGVudjogVEFSR0VUPWFybS1saW51eC1hbmRy b2lkZWFiaQorLSAgICAgIG5hbWU6ICJhcm0tbGludXgtYW5kcm9pZGVhYmkiCistICAgICAgc3Rh Z2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gbmFtZTogImFhcmNoNjQtdW5rbm93bi1saW51 eC1hbmRyb2lkICsgTkVPTiIKKy0gICAgICBlbnY6IFRBUkdFVD1hYXJjaDY0LWxpbnV4LWFuZHJv aWQgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rbmVvbiIKKy0gICAgICBzdGFnZTogYnVp bGQtdGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD0idGh1bWJ2N25lb24tbGludXgtYW5k cm9pZGVhYmkiCistICAgICAgbmFtZTogInRodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpIgor LSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAjIExpbnV4OgorLSAgICAtIGVudjogVEFS R0VUPWk1ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBuYW1lOiAiaTU4Ni11bmtub3duLWxp bnV4LWdudSIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRBUkdFVD1p NTg2LXVua25vd24tbGludXgtZ251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZSIK Ky0gICAgICBuYW1lOiAiaTU4Ni11bmtub3duLWxpbnV4LWdudSArIFNTRSIKKy0gICAgICBzdGFn ZTogMzJiaXQtdGllcjIKKy0gICAgLSBlbnY6IFRBUkdFVD1pNTg2LXVua25vd24tbGludXgtZ251 IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K3NzZTIiCistICAgICAgbmFtZTogImk1ODYt dW5rbm93bi1saW51eC1nbnUgKyBTU0UyIgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAg ICAtIGVudjogVEFSR0VUPWk2ODYtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBuYW1lOiAiaTY4 Ni11bmtub3duLWxpbnV4LWdudSArIFNTRTIiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIxCist ICAgIC0gZW52OiBUQVJHRVQ9aTY4Ni11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRh cmdldC1mZWF0dXJlPStzc2U0LjIiCistICAgICAgbmFtZTogImk2ODYtdW5rbm93bi1saW51eC1n bnUgKyBTU0U0LjIiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIxCistICAgIC0gZW52OiBUQVJH RVQ9aTY4Ni11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPSth dngyIgorLSAgICAgIG5hbWU6ICJpNjg2LXVua25vd24tbGludXgtZ251ICsgQVZYMiIKKy0gICAg ICBzdGFnZTogMzJiaXQtdGllcjEKKy0gICAgLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1s aW51eC1nbnUgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0rc3NlNC4yIgorLSAgICAgIG5h bWU6ICJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUgKyBTU0U0LjIiCistICAgICAgc3RhZ2U6IGJ1 aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9eDg2XzY0LXVua25vd24tbGludXgt Z251IFJVU1RGTEFHUz0iLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDIiCistICAgICAgbmFtZTogIng4 Nl82NC11bmtub3duLWxpbnV4LWdudSArIEFWWDIiCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3Qt dmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9YXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmCist ICAgICAgbmFtZTogImFybS11bmtub3duLWxpbnV4LWdudWVhYmloZiIKKy0gICAgICBzdGFnZTog YnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD1hcm12Ny11bmtub3duLWxpbnV4 LWdudWVhYmloZgorLSAgICAgIG5hbWU6ICJhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZiIK Ky0gICAgICBzdGFnZTogYnVpbGQtdGVzdC12ZXJpZnkKKy0gICAgLSBlbnY6IFRBUkdFVD1hcm12 Ny11bmtub3duLWxpbnV4LWdudWVhYmloZiBSVVNURkxBR1M9Ii1DIHRhcmdldC1mZWF0dXJlPStu ZW9uIgorLSAgICAgIG5hbWU6ICJhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZiArIE5FT04i CistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0gZW52OiBUQVJHRVQ9InRo dW1idjduZW9uLXVua25vd24tbGludXgtZ251ZWFiaWhmIgorLSAgICAgIG5hbWU6ICJ0aHVtYnY3 bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZiIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIK Ky0gICAgLSBuYW1lOiAiYWFyY2g2NC11bmtub3duLWxpbnV4LWdudSArIE5FT04iCistICAgICAg ZW52OiBUQVJHRVQ9YWFyY2g2NC11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRhcmdl dC1mZWF0dXJlPStuZW9uIgorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAt IGVudjogVEFSR0VUPW1pcHMtdW5rbm93bi1saW51eC1nbnUKKy0gICAgICBuYW1lOiAibWlwcy11 bmtub3duLWxpbnV4LWdudSIKKy0gICAgICBzdGFnZTogMzJiaXQtdGllcjIKKy0gICAgLSBlbnY6 IFRBUkdFVD1taXBzZWwtdW5rbm93bi1saW51eC1tdXNsCistICAgICAgbmFtZTogIm1pcHNlbC11 bmtub3duLWxpbnV4LW11c2wiCistICAgICAgc3RhZ2U6IDMyYml0LXRpZXIyCistICAgIC0gZW52 OiBUQVJHRVQ9bWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQKKy0gICAgICBuYW1lOiAibWlw czY0LXVua25vd24tbGludXgtZ251YWJpNjQiCistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCist ICAgIC0gZW52OiBUQVJHRVQ9bWlwczY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NAorLSAgICAg IG5hbWU6ICJtaXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0IgorLSAgICAgIHN0YWdlOiA2 NGJpdC10aWVyMgorLSAgICAgICMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmct bnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTgKKy0gICAgICAjIGVudjogVEFSR0VUPW1pcHM2 NGVsLXVua25vd24tbGludXgtZ251YWJpNjQgUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0r bXNhIC1DIHRhcmdldC1jcHU9bWlwczY0cjYiCistICAgIC0gZW52OiBUQVJHRVQ9cG93ZXJwYy11 bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJwb3dlcnBjLXVua25vd24tbGludXgtZ251 IgorLSAgICAgIHN0YWdlOiAzMmJpdC10aWVyMgorLSAgICAtIGVudjogVEFSR0VUPXBvd2VycGM2 NC11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJwb3dlcnBjNjQtdW5rbm93bi1saW51 eC1nbnUiCistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCistICAgIC0gbmFtZTogInBvd2VycGM2 NGxlLXVua25vd24tbGludXgtZ251IgorLSAgICAgIGVudjogVEFSR0VUPXBvd2VycGM2NGxlLXVu a25vd24tbGludXgtZ251CistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5CistICAgIC0g bmFtZTogInBvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251ICsgQUxUSVZFQyIKKy0gICAgICBl bnY6IFRBUkdFVD1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1DIHRh cmdldC1mZWF0dXJlPSthbHRpdmVjIgorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQor LSAgICAtIG5hbWU6ICJwb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSArIFZTWCIKKy0gICAg ICBlbnY6IFRBUkdFVD1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudSBSVVNURkxBR1M9Ii1D IHRhcmdldC1mZWF0dXJlPSt2c3giCistICAgICAgc3RhZ2U6IGJ1aWxkLXRlc3QtdmVyaWZ5Cist ICAgIC0gbmFtZTogInMzOTB4LXVua25vd24tbGludXgtZ251IgorLSAgICAgIGVudjogVEFSR0VU PXMzOTB4LXVua25vd24tbGludXgtZ251CistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIyCistICAg IC0gZW52OiBUQVJHRVQ9c3BhcmM2NC11bmtub3duLWxpbnV4LWdudQorLSAgICAgIG5hbWU6ICJz cGFyYzY0LXVua25vd24tbGludXgtZ251IgorLSAgICAgIHN0YWdlOiA2NGJpdC10aWVyMgorLSAg ICAjIFdlYkFzc2VtYmx5OgorLSAgICAtIGVudjogVEFSR0VUPXdhc20zMi11bmtub3duLXVua25v d24KKy0gICAgICBuYW1lOiAid2FzbTMyLXVua25vd24tdW5rbm93biIKKy0gICAgICBzdGFnZTog MzJiaXQtdGllcjIKKy0gICAgIyBNYWNPU1g6CistICAgIC0gb3M6IG9zeAorLSAgICAgIGVudjog VEFSR0VUPXg4Nl82NC1hcHBsZS1kYXJ3aW4gUlVTVEZMQUdTPSItQyB0YXJnZXQtZmVhdHVyZT0r c3NlNC4yIgorLSAgICAgIG5hbWU6ICJ4ODZfNjQtYXBwbGUtZGFyd2luICsgU1NFNC4yIgorLSAg ICAgIGluc3RhbGw6IHRydWUKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAgIG9zeF9p bWFnZTogeGNvZGUxMAorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlmeQorLSAgICAgICMg VHJhdmlzLUNJIE9TWCBidWlsZCBib3RzIGRvIG5vdCBzdXBwb3J0IEFWWDI6CistICAgIC0gb3M6 IG9zeAorLSAgICAgIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1kYXJ3aW4gUlVTVEZMQUdTPSIt QyB0YXJnZXQtZmVhdHVyZT0rYXZ4IgorLSAgICAgIG5hbWU6ICJ4ODZfNjQtYXBwbGUtZGFyd2lu ICsgQVZYIgorLSAgICAgIGluc3RhbGw6IHRydWUKKy0gICAgICBzY3JpcHQ6IGNpL3J1bi5zaAor LSAgICAgIG9zeF9pbWFnZTogeGNvZGUxMAorLSAgICAgIHN0YWdlOiBidWlsZC10ZXN0LXZlcmlm eQorLSAgICAjICpCU0RzOgorLSAgICAjLSBlbnY6IFRBUkdFVD1pNjg2LXVua25vd24tZnJlZWJz ZCBOT1JVTj0xCistICAgICMgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICMtIGVudjogVEFSR0VU PXg4Nl82NC11bmtub3duLWZyZWVic2QgTk9SVU49MQorLSAgICAjICBzY3JpcHQ6IGNpL3J1bi5z aAorLSAgICAjLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5rbm93bi1uZXRic2QgTk9SVU49MQorLSAg ICAjICBzY3JpcHQ6IGNpL3J1bi5zaAorLSAgICAjIFNvbGFyaXM6CistICAgICMtIGVudjogVEFS R0VUPXg4Nl82NC1zdW4tc29sYXJpcyBOT1JVTj0xCistICAgICMgIHNjcmlwdDogY2kvcnVuLnNo CistICAgICMgaU9TOgorLSAgICAtIG9zOiBvc3gKKy0gICAgICBlbnY6IFRBUkdFVD14ODZfNjQt YXBwbGUtaW9zCistICAgICAgbmFtZTogIng4Nl82NC1hcHBsZS1pb3MgKyBTU0UyIgorLSAgICAg IHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgb3N4X2ltYWdlOiB4Y29kZTkuNAorLSAgICAgIHN0 YWdlOiA2NGJpdC10aWVyMgorLSAgICAtIG5hbWU6ICJhYXJjaDY0LWFwcGxlLWlvcyArIE5FT04i CistICAgICAgZW52OiBUQVJHRVQ9YWFyY2g2NC1hcHBsZS1pb3MgUlVTVEZMQUdTPSItQyB0YXJn ZXQtZmVhdHVyZT0rbmVvbiIKKy0gICAgICBvczogb3N4CistICAgICAgb3N4X2ltYWdlOiB4Y29k ZTkuNAorLSAgICAgIHNjcmlwdDogY2kvcnVuLnNoCistICAgICAgc3RhZ2U6IDY0Yml0LXRpZXIy CistICAgICMgQkVOQ0hNQVJLUzoKKy0gICAgLSBuYW1lOiAiQmVuY2htYXJrcyAtIHg4Nl82NC11 bmtub3duLWxpbnV4LWdudSIKKy0gICAgICBpbnN0YWxsOiBUQVJHRVQ9eDg2XzY0LXVua25vd24t bGludXgtZ251IC4vY2kvc2V0dXBfYmVuY2htYXJrcy5zaAorLSAgICAgICMgRklYTUU6IFVzZSBg Y29yZV9hcmNoLHNsZWVmLXN5c2AgZmVhdHVyZXMgb25jZSB0aGV5IHdvcmtzIGFnYWluCistICAg ICAgc2NyaXB0OiBQQVRIPSQocHdkKTokUEFUSCBOT1JVTj0xIFZFUklGWT0xIEZFQVRVUkVTPWlz cGMgY2kvYmVuY2htYXJrLnNoCistICAgICAgc3RhZ2U6IHRvb2xzCistICAgIC0gbmFtZTogIkJl bmNobWFya3MgLSB4ODZfNjQtYXBwbGUtZGFyd2luIgorLSAgICAgIGluc3RhbGw6IFRBUkdFVD14 ODZfNjQtYXBwbGUtZGFyd2luIC4vY2kvc2V0dXBfYmVuY2htYXJrcy5zaAorLSAgICAgICMgRklY TUU6IFVzZSBgY29yZV9hcmNoLHNsZWVmLXN5c2AgZmVhdHVyZXMgb25jZSB0aGV5IHdvcmtzIGFn YWluCistICAgICAgc2NyaXB0OiBQQVRIPSQocHdkKTokUEFUSCBOT1JVTj0xIFZFUklGWT0xIEZF QVRVUkVTPWlzcGMgY2kvYmVuY2htYXJrLnNoCistICAgICAgb3M6IG9zeAorLSAgICAgIG9zeF9p bWFnZTogeGNvZGU5LjQKKy0gICAgICBzdGFnZTogdG9vbHMKKy0gICAgIyBUT09MUzoKKy0gICAg LSBuYW1lOiAiRG9jdW1lbnRhdGlvbiIKKy0gICAgICBiZWZvcmVfaW5zdGFsbDoKKy0gICAgICAg IC0gc3VkbyBhZGQtYXB0LXJlcG9zaXRvcnkgLXkgcHBhOmRlYWRzbmFrZXMvcHBhCistICAgICAg ICAtIHN1ZG8gYXB0LWdldCB1cGRhdGUgLXkKKy0gICAgICAgIC0gc3VkbyBhcHQtZ2V0IGluc3Rh bGwgLXkgcHl0aG9uMy45CistICAgICAgaW5zdGFsbDoKKy0gICAgICAgIC0gY2FyZ28gaW5zdGFs bCBtZGJvb2sKKy0gICAgICBzY3JpcHQ6IGNpL2RveC5zaAorLSAgICAgIHN0YWdlOiB0b29scwor LSAgICAtIG5hbWU6ICJydXN0Zm10IgorLSAgICAgIGluc3RhbGw6IHRydWUKKy0gICAgICBzY3Jp cHQ6IHwKKy0gICAgICAgIHJ1c3R1cCB0b29sY2hhaW4gaW5zdGFsbCBuaWdodGx5IC1jIHJ1c3Rm bXQgLS1hbGxvdy1kb3duZ3JhZGUKKy0gICAgICAgIGNpL2FsbC5zaCBjaGVja19mbXQgfHwgdHJ1 ZQorLSAgICAgIHN0YWdlOiB0b29scworLQorLSAgYWxsb3dfZmFpbHVyZXM6CistICAgICMgRklY TUU6IElTUEMgY2Fubm90IGJlIGZvdW5kPworLSAgICAtIG5hbWU6ICJCZW5jaG1hcmtzIC0geDg2 XzY0LWFwcGxlLWRhcndpbiIKKy0gICAgIyBGSVhNRTogaTY4NiBmYWlscyBpbiBpbmxpbmluZywg YXBwYXJlbnRseQorLSAgICAtIHN0YWdlOiAzMmJpdC10aWVyMQorLSAgICAjLSBlbnY6IFRBUkdF VD1pNjg2LXVua25vd24tZnJlZWJzZCBOT1JVTj0xCistICAgICMtIGVudjogVEFSR0VUPXg4Nl82 NC11bmtub3duLWZyZWVic2QgTk9SVU49MQorLSAgICAjLSBlbnY6IFRBUkdFVD14ODZfNjQtdW5r bm93bi1uZXRic2QgTk9SVU49MQorLSAgICAjLSBlbnY6IFRBUkdFVD14ODZfNjQtc3VuLXNvbGFy aXMgTk9SVU49MQorLQorLSAgICAjIEZJWE1FOiBUQkQKKy0gICAgLSBzdGFnZTogNjRiaXQtdGll cjIKKy0gICAgLSBzdGFnZTogMzJiaXQtdGllcjIKKy0KKy0gICAgIyBGSVhNRTogaU9TCistICAg ICMgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vl cy8yNgorLSAgICAtIGVudjogVEFSR0VUPXg4Nl82NC1hcHBsZS1pb3MKKy0gICAgIyBJcyB0aGlz IHJlbGF0ZWQgdG8gdGhlIGFib3ZlPyBNeXN0ZXJpb3VzIHRlc3QgZmFpbHVyZQorLSAgICAtIG5h bWU6ICJhYXJjaDY0LWFwcGxlLWlvcyArIE5FT04iCistCistaW5zdGFsbDogdHJhdmlzX3JldHJ5 IHJ1c3R1cCB0YXJnZXQgYWRkICRUQVJHRVQKKy1iZWZvcmVfc2NyaXB0OiBjYXJnbyBnZW5lcmF0 ZS1sb2NrZmlsZQorLXNjcmlwdDogdHJhdmlzX3dhaXQgNTAgY2kvcnVuLWRvY2tlci5zaAorLWFm dGVyX3NjcmlwdDogc2xlZXAgNQorLQorLWVudjoKKy0gIGdsb2JhbDoKKy0gICAgc2VjdXJlOiAi bFBIdjdzNitBeFFZTmFGbmN5Y1ZGUXQrK1kxYXNRbU1oT2lrUVUxenRsUDhDSzcraG4ybTk4Y2cv ZXVPSnl6SU9iMmlKM1pYNGNHWmt6dzRsYzU5TVFCQnliMUd0RGJhelFvVU96VkRiVmZlOUJERDJm OEpWb0lGaDFDTWZqUEtRN0dnL3JKcVdsd3JVbFNkNUdOeFBDdXRLalk3cVpoSnVSNlNRYkpqbFdh R04yVmQ0ZlZDektYejhmSFJYZ01FWlMrZCtDUjROc3JrYjgzSjNaNHM1a1NkSm1oWXhKNjFBV2p1 ekpWd1VoNGwzL0hFWWxTTDVYWHB1aDVSMmk3VzE2aDFQbE5kYVRVZ2tabGkxbEh6TzgrNlE4THpY OStYaUxJRVZYOWx3M0EyTmRJS0d6OEUvKzdRczVvWU9rd1loalJPc0RReElLN3hrU00zMGJRdU43 Y3dNQnliQVZJeU9QSmtxWFExZFF5cDgzS1Nkc09qN0pNeUREUnZjRURMSTZlaFJsbTVFY2RIN1ly UmV1Ym9OODFpVW8wU2E3VnN1VW1najVoakVSQ3Q5cjMwZjlhV3VpdEFCYWk3dktSdGpnbGc3U3A1 Q3JFVlBBNFBRczZQcUtDQ1JvZ29nZ2JYSi9aNUR5dy9SWmFYUGVOUjkrcUlLTjFWam05R2V3MXNS TjJKSy8zK3ZYVEt0eUpYSC91QnhnSnQ0alFsYnVTaE9KdUYrQlNmVEY4OHNNZTY3YS8zNTdTU09J YjRKa2FDeWQwZmxEQ1dZRTg1NzZrYUhQbFZWTVQycGVYZWUwTGVSWG0xZTEzbkczTmEwdDNMUy9v ckpMUEhPU2hOUUdvRGo3cUFQNWFFS2dnUnlhODk2Skd3dHZsYUJISFRtU1FoNjVHN2N5TkVyWm89 IgorLWJyYW5jaGVzOgorLSAgb25seToKKy0gICAgLSBzdGFnaW5nICMgYm9ycyByKworLSAgICAt IHRyeWluZyAgIyBib3JzIHRyeQorLSAgICAtIG1hc3RlcgorLW5vdGlmaWNhdGlvbnM6CistICBl bWFpbDoKKy0gICAgb25fc3VjY2VzczogbmV2ZXIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL0NhcmdvLnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L0NhcmdvLnRvbWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9DYXJnby50b21sCisrKysgL2Rldi9udWxsCitAQCAtMSw4MCArMCww IEBACistIyBUSElTIEZJTEUgSVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQgQlkgQ0FSR08KKy0j CistIyBXaGVuIHVwbG9hZGluZyBjcmF0ZXMgdG8gdGhlIHJlZ2lzdHJ5IENhcmdvIHdpbGwgYXV0 b21hdGljYWxseQorLSMgIm5vcm1hbGl6ZSIgQ2FyZ28udG9tbCBmaWxlcyBmb3IgbWF4aW1hbCBj b21wYXRpYmlsaXR5CistIyB3aXRoIGFsbCB2ZXJzaW9ucyBvZiBDYXJnbyBhbmQgYWxzbyByZXdy aXRlIGBwYXRoYCBkZXBlbmRlbmNpZXMKKy0jIHRvIHJlZ2lzdHJ5IChlLmcuLCBjcmF0ZXMuaW8p IGRlcGVuZGVuY2llcy4KKy0jCistIyBJZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBmaWxlIGJlIGF3 YXJlIHRoYXQgdGhlIG9yaWdpbmFsIENhcmdvLnRvbWwKKy0jIHdpbGwgbGlrZWx5IGxvb2sgdmVy eSBkaWZmZXJlbnQgKGFuZCBtdWNoIG1vcmUgcmVhc29uYWJsZSkuCistIyBTZWUgQ2FyZ28udG9t bC5vcmlnIGZvciB0aGUgb3JpZ2luYWwgY29udGVudHMuCistCistW3BhY2thZ2VdCistZWRpdGlv biA9ICIyMDE4IgorLW5hbWUgPSAicGFja2VkX3NpbWQiCistdmVyc2lvbiA9ICIwLjMuOSIKKy1i dWlsZCA9ICJidWlsZC5ycyIKKy1kZXNjcmlwdGlvbiA9ICJQb3J0YWJsZSBQYWNrZWQgU0lNRCB2 ZWN0b3JzIgorLWhvbWVwYWdlID0gImh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGFja2Vk X3NpbWQiCistZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvY3JhdGUvcGFja2VkX3Np bWQvIgorLXJlYWRtZSA9ICJSRUFETUUubWQiCista2V5d29yZHMgPSBbCistICAgICJzaW1kIiwK Ky0gICAgInZlY3RvciIsCistICAgICJwb3J0YWJpbGl0eSIsCistXQorLWNhdGVnb3JpZXMgPSBb CistICAgICJoYXJkd2FyZS1zdXBwb3J0IiwKKy0gICAgImNvbmN1cnJlbmN5IiwKKy0gICAgIm5v LXN0ZCIsCistICAgICJkYXRhLXN0cnVjdHVyZXMiLAorLV0KKy1saWNlbnNlID0gIk1JVCBPUiBB cGFjaGUtMi4wIgorLXJlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9w YWNrZWRfc2ltZCIKKy0KKy1bcGFja2FnZS5tZXRhZGF0YS5kb2NzLnJzXQorLWZlYXR1cmVzID0g WyJpbnRvX2JpdHMiXQorLXJ1c3Rkb2MtYXJncyA9IFsKKy0gICAgIi0tY2ZnIiwKKy0gICAgImRv Y19jZmciLAorLV0KKy0KKy1bZGVwZW5kZW5jaWVzXQorLWNmZy1pZiA9ICIxLjAuMCIKKy0KKy1b ZGVwZW5kZW5jaWVzLmNvcmVfYXJjaF0KKy12ZXJzaW9uID0gIjAuMS41IgorLW9wdGlvbmFsID0g dHJ1ZQorLQorLVtkZXBlbmRlbmNpZXMubnVtLXRyYWl0c10KKy12ZXJzaW9uID0gIjAuMi4xNCIK Ky1kZWZhdWx0LWZlYXR1cmVzID0gZmFsc2UKKy0KKy1bZGV2LWRlcGVuZGVuY2llc10KKy1wYXN0 ZSA9ICJeMSIKKy0KKy1bZGV2LWRlcGVuZGVuY2llcy5hcnJheXZlY10KKy12ZXJzaW9uID0gIl4w LjUiCistZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlCistCistW2ZlYXR1cmVzXQorLWRlZmF1bHQg PSBbXQorLWludG9fYml0cyA9IFtdCistbGliY29yZV9uZW9uID0gW10KKy0KKy1bdGFyZ2V0LiJj ZmcodGFyZ2V0X2FyY2ggPSBcIng4Nl82NFwiKSIuZGVwZW5kZW5jaWVzLnNsZWVmLXN5c10KKy12 ZXJzaW9uID0gIjAuMS4yIgorLW9wdGlvbmFsID0gdHJ1ZQorLQorLVt0YXJnZXQud2FzbTMyLXVu a25vd24tdW5rbm93bi5kZXYtZGVwZW5kZW5jaWVzXQorLXdhc20tYmluZGdlbiA9ICI9MC4yLjg3 IgorLXdhc20tYmluZGdlbi10ZXN0ID0gIj0wLjMuMzciCistCistW2JhZGdlcy5pcy1pdC1tYWlu dGFpbmVkLWlzc3VlLXJlc29sdXRpb25dCistcmVwb3NpdG9yeSA9ICJydXN0LWxhbmcvcGFja2Vk X3NpbWQiCistCistW2JhZGdlcy5pcy1pdC1tYWludGFpbmVkLW9wZW4taXNzdWVzXQorLXJlcG9z aXRvcnkgPSAicnVzdC1sYW5nL3BhY2tlZF9zaW1kIgorLQorLVtiYWRnZXMubWFpbnRlbmFuY2Vd Cistc3RhdHVzID0gImV4cGVyaW1lbnRhbCIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9MSUNFTlNFLUFQQUNIRQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL0xJQ0VOU0UtQVBBQ0hFCisrKysgL2Rldi9udWxsCitAQCAt MSwyMDEgKzAsMCBAQAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNl bnNlCistICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAor LSAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKy0K Ky1URVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklC VVRJT04KKy0KKy0xLiBEZWZpbml0aW9ucy4KKy0KKy0gICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0 aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorLSAgIGFuZCBk aXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRv Y3VtZW50LgorLQorLSAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVy IG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CistICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlz IGdyYW50aW5nIHRoZSBMaWNlbnNlLgorLQorLSAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4g dGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKy0gICBvdGhlciBlbnRpdGll cyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCist ICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVm aW5pdGlvbiwKKy0gICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGlu ZGlyZWN0LCB0byBjYXVzZSB0aGUKKy0gICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNo IGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorLSAgIG90aGVyd2lzZSwgb3IgKGlpKSBv d25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorLSAgIG91dHN0 YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRp dHkuCistCistICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9y IExlZ2FsIEVudGl0eQorLSAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlz IExpY2Vuc2UuCistCistICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQg Zm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCistICAgaW5jbHVkaW5nIGJ1dCBub3QgbGlt aXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorLSAgIHNvdXJjZSwg YW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCistCistICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFu IGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKy0gICB0cmFuc2Zvcm1hdGlvbiBv ciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CistICAgbm90IGxp bWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAor LSAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKy0KKy0gICAiV29yayIg c2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgor LSAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5k aWNhdGVkIGJ5IGEKKy0gICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3Ig YXR0YWNoZWQgdG8gdGhlIHdvcmsKKy0gICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUg QXBwZW5kaXggYmVsb3cpLgorLQorLSAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFu eSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKy0gICBmb3JtLCB0aGF0IGlzIGJh c2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCistICAg ZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIg bW9kaWZpY2F0aW9ucworLSAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29y ayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCistICAgb2YgdGhpcyBMaWNlbnNlLCBE ZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCistICAg c2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBp bnRlcmZhY2VzIG9mLAorLSAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2Yu CistCistICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlw LCBpbmNsdWRpbmcKKy0gICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55 IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCistICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRp dmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CistICAgc3VibWl0dGVkIHRv IExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25l cgorLSAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8g c3VibWl0IG9uIGJlaGFsZiBvZgorLSAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVy cG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorLSAgIG1lYW5zIGFueSBmb3Jt IG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKy0g ICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBu b3QgbGltaXRlZCB0bworLSAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxp c3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCistICAgYW5kIGlzc3VlIHRyYWNraW5n IHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKy0gICBM aWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBX b3JrLCBidXQKKy0gICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3Vz bHkgbWFya2VkIG9yIG90aGVyd2lzZQorLSAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUg Y29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorLQorLSAgICJDb250cmli dXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50 aXR5CistICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2 ZWQgYnkgTGljZW5zb3IgYW5kCistICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4g dGhlIFdvcmsuCistCistMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8g dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCistICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRy aWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorLSAgIHdvcmxkd2lkZSwg bm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCistICAg Y29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mg b2YsCistICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwg YW5kIGRpc3RyaWJ1dGUgdGhlCistICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGlu IFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKy0KKy0zLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4g U3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKy0gICB0aGlzIExpY2Vuc2Us IGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCistICAg d29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZv Y2FibGUKKy0gICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNl bnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKy0gICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGlt cG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKy0gICB3aGVyZSBzdWNoIGxp Y2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorLSAg IGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRo ZWlyCistICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWly IENvbnRyaWJ1dGlvbihzKQorLSAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmli dXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CistICAgaW5zdGl0dXRlIHBhdGVudCBsaXRp Z2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKy0gICBjcm9zcy1jbGFpbSBv ciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCistICAg b3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRl cyBkaXJlY3QKKy0gICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBh bnkgcGF0ZW50IGxpY2Vuc2VzCistICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNl IGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCistICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBs aXRpZ2F0aW9uIGlzIGZpbGVkLgorLQorLTQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJv ZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCistICAgV29yayBvciBEZXJpdmF0aXZl IFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CistICAgbW9kaWZp Y2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UK Ky0gICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKy0KKy0gICAoYSkgWW91IG11c3Qg Z2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorLSAgICAgICBEZXJpdmF0 aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorLQorLSAgIChiKSBZb3UgbXVz dCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKy0g ICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCistCistICAgKGMp IFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdv cmtzCistICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwg dHJhZGVtYXJrLCBhbmQKKy0gICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3Vy Y2UgZm9ybSBvZiB0aGUgV29yaywKKy0gICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhh dCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorLSAgICAgICB0aGUgRGVyaXZhdGl2ZSBX b3JrczsgYW5kCistCistICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4 dCBmaWxlIGFzIHBhcnQgb2YgaXRzCistICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVy aXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKy0gICAgICAgaW5jbHVkZSBh IHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCistICAg ICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0 IGRvIG5vdAorLSAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdv cmtzLCBpbiBhdCBsZWFzdCBvbmUKKy0gICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdp dGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKy0gICAgICAgYXMgcGFydCBvZiB0 aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorLSAgICAgICBk b2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtz OyBvciwKKy0gICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRp dmUgV29ya3MsIGlmIGFuZAorLSAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGlj ZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKy0gICAgICAgb2YgdGhlIE5PVElDRSBm aWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorLSAgICAgICBkbyBu b3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgor LSAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1 dGUsIGFsb25nc2lkZQorLSAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRl eHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKy0gICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwg YXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCistICAgICAgIGFzIG1vZGlm eWluZyB0aGUgTGljZW5zZS4KKy0KKy0gICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQg c3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKy0gICBtYXkgcHJvdmlkZSBhZGRp dGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCistICAgZm9y IHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25z LCBvcgorLSAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3Zp ZGVkIFlvdXIgdXNlLAorLSAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUg V29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorLSAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBp biB0aGlzIExpY2Vuc2UuCistCistNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxl c3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorLSAgIGFueSBDb250cmlidXRpb24g aW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworLSAgIGJ5 IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRp b25zIG9mCistICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9y IGNvbmRpdGlvbnMuCistICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJl aW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorLSAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJh dGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCistICAgd2l0aCBMaWNl bnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorLQorLTYuIFRyYWRlbWFya3MuIFRo aXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKy0g ICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0 aGUgTGljZW5zb3IsCistICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBj dXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCistICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFu ZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCistCistNy4gRGlz Y2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y CistICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChh bmQgZWFjaAorLSAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBh biAiQVMgSVMiIEJBU0lTLAorLSAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9G IEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorLSAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0 aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCistICAgb2YgVElU TEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQor LSAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRl dGVybWluaW5nIHRoZQorLSAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1 dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorLSAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZ b3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKy0KKy04LiBM aW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRo ZW9yeSwKKy0gICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJh Y3QsIG9yIG90aGVyd2lzZSwKKy0gICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg KHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorLSAgIG5lZ2xpZ2VudCBhY3RzKSBvciBh Z3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCistICAgbGlhYmxl IHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVj aWFsLAorLSAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hh cmFjdGVyIGFyaXNpbmcgYXMgYQorLSAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9m IHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKy0gICBXb3JrIChpbmNsdWRpbmcgYnV0 IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCistICAgd29yayBz dG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwK Ky0gICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENv bnRyaWJ1dG9yCistICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3Vj aCBkYW1hZ2VzLgorLQorLTkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJp bGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKy0gICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdv cmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorLSAgIGFuZCBjaGFyZ2UgYSBm ZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCistICAg b3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3 aXRoIHRoaXMKKy0gICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0 aW9ucywgWW91IG1heSBhY3Qgb25seQorLSAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91 ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCistICAgb2YgYW55IG90aGVyIENv bnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorLSAgIGRlZmVu ZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQor LSAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmli dXRvciBieSByZWFzb24KKy0gICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBv ciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKy0KKy1FTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMK Ky0KKy1BUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdv cmsuCistCistICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0 YWNoIHRoZSBmb2xsb3dpbmcKKy0gICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxk cyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCistICAgcmVwbGFjZWQgd2l0aCB5b3VyIG93biBp ZGVudGlmeWluZyBpbmZvcm1hdGlvbi4gKERvbid0IGluY2x1ZGUKKy0gICB0aGUgYnJhY2tldHMh KSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorLSAgIGNv bW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQg YQorLSAgIGZpbGUgb3IgY2xhc3MgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgcHVycG9zZSBiZSBp bmNsdWRlZCBvbiB0aGUKKy0gICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQg bm90aWNlIGZvciBlYXNpZXIKKy0gICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkg YXJjaGl2ZXMuCistCistQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJd CistCistTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl ICJMaWNlbnNlIik7CisteW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxp YW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLVlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj ZW5zZSBhdAorLQorLQlodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAK Ky0KKy1Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdy aXRpbmcsIHNvZnR3YXJlCistZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp YnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy1XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU SU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy1TZWUgdGhlIExp Y2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5k CistbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLU1JVCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvTElDRU5TRS1NSVQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9MSUNFTlNFLU1JVAorKysrIC9kZXYvbnVsbAorQEAgLTEs MjUgKzAsMCBAQAorLUNvcHlyaWdodCAoYykgMjAxNCBUaGUgUnVzdCBQcm9qZWN0IERldmVsb3Bl cnMKKy0KKy1QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55CistcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZAorLWRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0 aGUKKy1Tb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAorLWxp bWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCistcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCistdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUKKy1pcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZworLWNvbmRpdGlvbnM6 CistCistVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3Rp Y2UKKy1zaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zCistb2YgdGhlIFNvZnR3YXJlLgorLQorLVRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GCistQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRAorLVRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwgRklUTkVTUyBGT1IgQQorLVBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiBJTiBOTyBFVkVOVAorLVNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xE RVJTIEJFIExJQUJMRSBGT1IgQU5ZCistQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTgorLU9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwg QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IKKy1JTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIKKy1ERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9SRUFETUUubWQgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL1JFQURNRS5tZAorKysrIC9kZXYvbnVs bAorQEAgLTEsMTQ0ICswLDAgQEAKKy0jIGBTaW1kPFtUOyBOXT5gCistCistIyMgSW1wbGVtZW50 YXRpb24gb2YgW1J1c3QgUkZDICMyMzY2OiBgc3RkOjpzaW1kYF1bcmZjMjM2Nl0KKy0KKy1bIVtM YXRlc3QgVmVyc2lvbl1dW2NyYXRlcy5pb10gWyFbZG9jc11dW21hc3Rlcl9kb2NzXQorLQorLSoq V0FSTklORyoqOiB0aGlzIGNyYXRlIG9ubHkgc3VwcG9ydHMgdGhlIG1vc3QgcmVjZW50IG5pZ2h0 bHkgUnVzdCB0b29sY2hhaW4KKy1hbmQgd2lsbCBiZSBzdXBlcnNlZGVkIGJ5IFtgIyFbZmVhdHVy ZShwb3J0YWJsZV9zaW1kKV1gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BvcnRhYmxl LXNpbWQpLgorLQorLSMjIERvY3VtZW50YXRpb24KKy0KKy0qIFtBUEkgZG9jcyAoYG1hc3RlcmAg YnJhbmNoKV1bbWFzdGVyX2RvY3NdCistKiBbUGVyZm9ybWFuY2UgZ3VpZGVdW3BlcmZfZ3VpZGVd CistKiBbQVBJIGRvY3MgKGBkb2NzLnJzYCldW2RvY3MucnNdCistKiBbUkZDMjM2NiBgc3RkOjpz aW1kYF1bcmZjMjM2Nl06IC0gY29udGFpbnMgbW90aXZhdGlvbiwgZGVzaWduIHJhdGlvbmFsZSwK Ky0gIGRpc2N1c3Npb24sIGV0Yy4KKy0KKy0jIyBFeGFtcGxlcworLQorLU1vc3Qgb2YgdGhlIGV4 YW1wbGVzIGNvbWUgd2l0aCBib3RoIGEgc2NhbGFyIGFuZCBhIHZlY3Rvcml6ZWQgaW1wbGVtZW50 YXRpb24uCistCistKiBbYGFvYmVuY2hgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51 cnNlcnkvcGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvYW9iZW5jaCkKKy0qIFtgZmFu bmt1Y2hfcmVkdXhgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2Vk X3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvZmFubmt1Y2hfcmVkdXgpCistKiBbYG1hdHJpeCBp bnZlcnNlYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L3RyZWUvbWFzdGVyL2V4YW1wbGVzL21hdHJpeF9pbnZlcnNlKQorLSogW2BtYW5kZWxicm90YF0o aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFz dGVyL2V4YW1wbGVzL21hbmRlbGJyb3QpCistKiBbYG4tYm9keWBdKGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9uYm9k eSkKKy0qIFtgb3B0aW9uc19wcmljaW5nYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFzdGVyL2V4YW1wbGVzL29wdGlvbnNfcHJpY2luZykK Ky0qIFtgc3BlY3RyYWxfbm9ybWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy9zcGVjdHJhbF9ub3JtKQorLSogW2B0 cmlhbmdsZSB0cmFuc2Zvcm1gXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkv cGFja2VkX3NpbWQvdHJlZS9tYXN0ZXIvZXhhbXBsZXMvdHJpYW5nbGVfeGZvcm0pCistKiBbYHN0 ZW5jaWxgXShodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv dHJlZS9tYXN0ZXIvZXhhbXBsZXMvc3RlbmNpbCkKKy0qIFtgdmVjdG9yIGRvdCBwcm9kdWN0YF0o aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL3RyZWUvbWFz dGVyL2V4YW1wbGVzL2RvdF9wcm9kdWN0KQorLQorLSMjIENhcmdvIGZlYXR1cmVzCistCistKiBg aW50b19iaXRzYCAoZGVmYXVsdDogZGlzYWJsZWQpOiBlbmFibGVzIGBGcm9tQml0c2AvYEludG9C aXRzYCB0cmFpdAorLSAgaW1wbGVtZW50YXRpb25zIGZvciB0aGUgdmVjdG9yIHR5cGVzLiBUaGVz ZSBhbGxvdyByZWludGVycHJldGluZyB0aGUgYml0cyBvZiBhCistICB2ZWN0b3IgdHlwZSBhcyB0 aG9zZSBvZiBhbm90aGVyIHZlY3RvciB0eXBlIHNhZmVseSBieSBqdXN0IHVzaW5nIHRoZQorLSAg YC5pbnRvX2JpdHMoKWAgbWV0aG9kLgorLQorLSMjIFBlcmZvcm1hbmNlCistCistVGhlIGZvbGxv d2luZyBbSVNQQ10gZXhhbXBsZXMgYXJlIGFsc28gcGFydCBvZiBgcGFja2VkX3NpbWRgJ3MKKy1b YGV4YW1wbGVzL2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRf c2ltZC90cmVlL21hc3Rlci9leGFtcGxlcy8pCistZGlyZWN0b3J5LCB3aGVyZSBgcGFja2VkX3Np bWRgK1tgcmF5b25gXVtyYXlvbl0gYXJlIHVzZWQgdG8gZW11bGF0ZSBbSVNQQ10ncworLVNpbmds ZS1Qcm9ncmFtLU11bHRpcGxlLURhdGEgKFNQTUQpIHByb2dyYW1taW5nIG1vZGVsLiBUaGUgcGVy Zm9ybWFuY2UgcmVzdWx0cworLW9uIGRpZmZlcmVudCBoYXJkd2FyZSBpcyBzaG93biBpbiB0aGUg YHJlYWRtZS5tZGAgb2YgZWFjaCBleGFtcGxlLiBUaGUgZm9sbG93aW5nCistdGFibGUgc3VtbWFy aXplcyB0aGUgcGVyZm9ybWFuY2UgcmFuZ2VzLCB3aGVyZSBgK2AgbWVhbnMgc3BlZWQtdXAgYW5k IGAtYAorLXNsb3dkb3duOgorLQorLSogYGFvYmVuY2hgOiBgWy0xLjAyeCwgKzEuNTN4XWAsCist KiBgc3RlbmNpbGA6IGBbKzEuMDZ4LCArMS43MnhdYCwKKy0qIGBtYW5kZWxicm90YDogYFstMS43 NHgsICsxLjJ4XWAsCistKiBgb3B0aW9uc19wcmljaW5nYDoKKy0gICAqIGBibGFja19zY2hvbGVz YDogYCsxLjB4YAorLSAgICogYGJpbm9taWFsX3B1dGA6IGArMS40eGAKKy0KKy0gV2hpbGUgU1BN RCBpcyBub3QgdGhlIGludGVuZGVkIHVzZSBjYXNlIGZvciBgcGFja2VkX3NpbWRgLCBpdCBpcyBw b3NzaWJsZSB0bworLSBjb21iaW5lIHRoZSBsaWJyYXJ5IHdpdGggW2ByYXlvbmBdW3JheW9uXSB0 byBwb29ybHkgZW11bGF0ZSBbSVNQQ10ncyBTUE1EIHByb2dyYW1taW5nCistIG1vZGVsIGluIFJ1 c3QuIFdyaXRpbmcgcGVyZm9ybWFudCBjb2RlIGlzIG5vdCBhcyBzdHJhaWdodGZvcndhcmQgYXMg d2l0aAorLSBbSVNQQ10sIGJ1dCB3aXRoIHNvbWUgY2FyZSAoZS5nLiBzZWUgdGhlIFtQZXJmb3Jt YW5jZSBHdWlkZV1bcGVyZl9ndWlkZV0pIG9uZQorLSBjYW4gZWFzaWx5IG1hdGNoIGFuZCBvZnRl biBvdXQtcGVyZm9ybSBbSVNQQ10ncyAiZGVmYXVsdCBwZXJmb3JtYW5jZSIuCistCistIyMgUGxh dGZvcm0gc3VwcG9ydAorLQorLVRoZSBmb2xsb3dpbmcgdGFibGUgZGVzY3JpYmVzIHRoZSBzdXBw b3J0ZWQgcGxhdGZvcm1zOiBgYnVpbGRgIHNob3dzIHdoZXRoZXIKKy10aGUgbGlicmFyeSBjb21w aWxlcyB3aXRob3V0IGlzc3VlcyBmb3IgYSBnaXZlbiB0YXJnZXQsIHdoaWxlIGBydW5gIHNob3dz Cistd2hldGhlciB0aGUgdGVzdCBzdWl0ZSBwYXNzZXMgZm9yIGEgZ2l2ZW4gdGFyZ2V0LgorLQor LXwgKipMaW51eCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqYnVpbGQqKiB8ICoq cnVuKiogfAorLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0t LS0tLS18LS0tLS0tLS0tfAorLXwgYGk1ODYtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgICAg ICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGBpNjg2LXVua25vd24tbGludXgtZ251 YCAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8CistfCBgeDg2XzY0LXVu a25vd24tbGludXgtZ251YCAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAor LXwgYGFybS11bmtub3duLWxpbnV4LWdudWVhYmloZmAgICAgICAgICB8IOKckyAgICAgICAgIHwg 4pyTICAgICAgIHwKKy18IGBhcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmlgICAgICAgICAgfCDi nJMgICAgICAgICB8IOKckyAgICAgICB8CistfCBgYWFyY2g2NC11bmtub3duLWxpbnV4LWdudWAg ICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAgfAorLXwgYHBvd2VycGMtdW5rbm93 bi1saW51eC1nbnVgICAgICAgICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGBw b3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnVgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAg ICAgICB8CistfCBgcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnVgICAgICAgIHwg4pyTICAg ICAgICAgfCDinJMgICAgICAgfAorLXwgYHMzOTB4LXVua25vd24tbGludXgtZ251YCAgICAgICAg ICAgICB8IOKckyAgICAgICAgIHwg4pyXICAgICAgIHwKKy18IGBzcGFyYzY0LXVua25vd24tbGlu dXgtZ251YCAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKclyAgICAgICB8CistfCBgdGh1bWJ2 N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJpaGZgIHwg4pyTICAgICAgICAgfCDinJMgICAgICAg fAorLXwgKipNYWNPU1gqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICoqYnVpbGQqKiB8 ICoqcnVuKiogfAorLXwgYHg4Nl82NC1hcHBsZS1kYXJ3aW5gICAgICAgICAgICAgICAgICB8IOKc kyAgICAgICAgIHwg4pyTICAgICAgIHwKKy18ICoqQW5kcm9pZCoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAqKmJ1aWxkKiogfCAqKnJ1bioqIHwKKy18IGB4ODZfNjQtbGludXgtYW5kcm9p ZGAgICAgICAgICAgICAgICAgfCDinJMgICAgICAgICB8IOKckyAgICAgICB8CistfCBgYXJtdjct bGludXgtYW5kcm9pZGVhYmlgICAgICAgICAgICAgIHwg4pyTICAgICAgICAgfCDinJcgICAgICAg fAorLXwgYGFhcmNoNjQtbGludXgtYW5kcm9pZGAgICAgICAgICAgICAgICB8IOKckyAgICAgICAg IHwg4pyXICAgICAgIHwKKy18IGB0aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaWAgICAgICAg fCDinJMgICAgICAgICB8IOKclyAgICAgICB8CistfCAqKmlPUyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgKipidWlsZCoqIHwgKipydW4qKiB8CistfCBgeDg2XzY0LWFwcGxlLWlv c2AgICAgICAgICAgICAgICAgICAgIHwg4pyXICAgICAgICAgfCDinJcgICAgICAgfAorLXwgYGFh cmNoNjQtYXBwbGUtaW9zYCAgICAgICAgICAgICAgICAgICB8IOKclyAgICAgICAgIHwg4pyXICAg ICAgIHwKKy0KKy0KKy0jIyBNYWNoaW5lIGNvZGUgdmVyaWZpY2F0aW9uCistCistVGhlCistW2B2 ZXJpZnkvYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L3RyZWUvbWFzdGVyL3ZlcmlmeSkKKy1jcmF0ZSB0ZXN0cyBkaXNhc3NlbWJsZXMgdGhlIHBvcnRh YmxlIHBhY2tlZCB2ZWN0b3IgQVBJcyBhdCBydW4tdGltZSBhbmQKKy1jb21wYXJlcyB0aGUgZ2Vu ZXJhdGVkIG1hY2hpbmUgY29kZSBhZ2FpbnN0IHRoZSBkZXNpcmVkIG9uZSB0byBtYWtlIHN1cmUg dGhhdAorLXRoaXMgY3JhdGUgcmVtYWlucyBlZmZpY2llbnQuCistCistIyMgTGljZW5zZQorLQor LVRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciBlaXRoZXIgb2YKKy0KKy0qIFtBcGFjaGUg TGljZW5zZSwgVmVyc2lvbiAyLjBdKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF TlNFLTIuMCkKKy0gIChbTElDRU5TRS1BUEFDSEVdKExJQ0VOU0UtQVBBQ0hFKSkKKy0KKy0qIFtN SVQgTGljZW5zZV0oaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCkKKy0gIChbTElD RU5TRS1NSVRdKExJQ0VOU0UtTUlUKSkKKy0KKy1hdCB5b3VyIG9wdGlvbi4KKy0KKy0jIyBDb250 cmlidXRpbmcKKy0KKy1XZSB3ZWxjb21lIGFsbCBwZW9wbGUgd2hvIHdhbnQgdG8gY29udHJpYnV0 ZS4KKy1QbGVhc2Ugc2VlIHRoZSBbY29udHJpYnV0aW5nIGluc3RydWN0aW9uc10gZm9yIG1vcmUg aW5mb3JtYXRpb24uCistCistQ29udHJpYnV0aW9ucyBpbiBhbnkgZm9ybSAoaXNzdWVzLCBwdWxs IHJlcXVlc3RzLCBldGMuKSB0byB0aGlzIHByb2plY3QKKy1tdXN0IGFkaGVyZSB0byBSdXN0J3Mg W0NvZGUgb2YgQ29uZHVjdF0uCistCistVW5sZXNzIHlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVy d2lzZSwgYW55IGNvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZAorLWZvciBpbmNs dXNpb24gaW4gYHBhY2tlZF9zaW1kYCBieSB5b3UsIGFzIGRlZmluZWQgaW4gdGhlIEFwYWNoZS0y LjAgbGljZW5zZSwgc2hhbGwgYmUKKy1kdWFsIGxpY2Vuc2VkIGFzIGFib3ZlLCB3aXRob3V0IGFu eSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCistCistW3RyYXZpc106IGh0dHBzOi8v dHJhdmlzLWNpLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQKKy1bVHJhdmlzLUNJIFN0YXR1c106 IGh0dHBzOi8vdHJhdmlzLWNpLmNvbS9ydXN0LWxhbmcvcGFja2VkX3NpbWQuc3ZnP2JyYW5jaD1t YXN0ZXIKKy1bYXBwdmV5b3JdOiBodHRwczovL2NpLmFwcHZleW9yLmNvbS9wcm9qZWN0L2duemxi Zy9wYWNrZWQtc2ltZAorLVtBcHB2ZXlvciBTdGF0dXNdOiBodHRwczovL2NpLmFwcHZleW9yLmNv bS9hcGkvcHJvamVjdHMvc3RhdHVzL2hkN3Y5ZHZyNDQyaGdkaXg/c3ZnPXRydWUKKy1bTGF0ZXN0 IFZlcnNpb25dOiBodHRwczovL2ltZy5zaGllbGRzLmlvL2NyYXRlcy92L3BhY2tlZF9zaW1kLnN2 ZworLVtjcmF0ZXMuaW9dOiBodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcGFja2VkX3NpbWQKKy1b ZG9jc106IGh0dHBzOi8vZG9jcy5ycy9wYWNrZWRfc2ltZC9iYWRnZS5zdmcKKy1bZG9jcy5yc106 IGh0dHBzOi8vZG9jcy5ycy9wYWNrZWRfc2ltZAorLVttYXN0ZXJfZG9jc106IGh0dHBzOi8vcnVz dC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BhY2tlZF9zaW1kLworLVtwZXJm X2d1aWRlXTogaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQv cGVyZi1ndWlkZS8KKy1bcmZjMjM2Nl06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZj cy9wdWxsLzIzNjYKKy1bSVNQQ106IGh0dHBzOi8vaXNwYy5naXRodWIuaW8vCistW3JheW9uXTog aHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3JheW9uCistW2Jvb3N0X2xpY2Vuc2VdOiBodHRwczov L3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0CistW1NMRUVGXTogaHR0cHM6Ly9zbGVlZi5v cmcvCistW3NsZWVmX3N5c106IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9zbGVlZi1zeXMKKy1b Y29udHJpYnV0aW5nIGluc3RydWN0aW9uc106IGNvbnRyaWJ1dGluZy5tZAorLVtDb2RlIG9mIENv bmR1Y3RdOiBodHRwczovL3d3dy5ydXN0LWxhbmcub3JnL2VuLVVTL2NvbmR1Y3QuaHRtbAorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYm9ycy50b21sIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9ib3JzLnRvbWwKKysrKyAvZGV2 L251bGwKK0BAIC0xLDMgKzAsMCBAQAorLXN0YXR1cyA9IFsKKy0gICAgImNvbnRpbnVvdXMtaW50 ZWdyYXRpb24vdHJhdmlzLWNpL3B1c2giCistXQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9idWlsZC5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvYnVpbGQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9idWlsZC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsNiArMCwwIEBACistZm4gbWFpbigpIHsKKy0gICAgbGV0IHRhcmdldCA9 IHN0ZDo6ZW52Ojp2YXIoIlRBUkdFVCIpLmV4cGVjdCgiVEFSR0VUIGVudmlyb25tZW50IHZhcmlh YmxlIG5vdCBkZWZpbmVkIik7CistICAgIGlmIHRhcmdldC5jb250YWlucygibmVvbiIpIHsKKy0g ICAgICAgIHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9bGliY29yZV9uZW9uIik7CistICAgIH0K Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbGwuc2gg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaAorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FsbC5zaAor KysrIC9kZXYvbnVsbAorQEAgLTEsNzEgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IGJhc2gKKy0j CistIyBQZXJmb3JtcyBhbiBvcGVyYXRpb24gb24gYWxsIHRhcmdldHMKKy0KKy1zZXQgLWV4Cist CistOiAiJHsxP1RoZSBhbGwuc2ggc2NyaXB0IHJlcXVpcmVzIG9uZSBhcmd1bWVudC59IgorLQor LW9wPSQxCistCistY2FyZ29fY2xlYW4oKSB7CistICAgIGNhcmdvIGNsZWFuCistfQorLQorLWNh cmdvX2NoZWNrX2ZtdCgpIHsKKy0gICAgY2FyZ28gZm10IC0tYWxsIC0tIC0tY2hlY2sKKy19Cist CistY2FyZ29fZm10KCkgeworLSAgICBjYXJnbyBmbXQgLS1hbGwKKy19CistCistY2FyZ29fY2xp cHB5KCkgeworLSAgICBjYXJnbyBjbGlwcHkgLS1hbGwgLS0gLUQgY2xpcHB5OjpwZXJmCistfQor LQorLUNNRD0iLTEiCistCistY2FzZSAkb3AgaW4KKy0gICAgY2xlYW4qKQorLSAgICAgICAgQ01E PWNhcmdvX2NsZWFuCistICAgICAgICA7OworLSAgICBjaGVja19mbXQqKQorLSAgICAgICAgQ01E PWNhcmdvX2NoZWNrX2ZtdAorLSAgICAgICAgOzsKKy0gICAgZm10KikKKy0gICAgICAgIENNRD1j YXJnb19mbXQKKy0gICAgICAgIDs7CistICAgIGNsaXBweSkKKy0gICAgICAgIENNRD1jYXJnb19j bGlwcHkKKy0gICAgICAgIDs7CistICAgICopCistICAgICAgICBlY2hvICJVbmtub3duIG9wZXJh dGlvbjogXCIke29wfVwiIgorLSAgICAgICAgZXhpdCAxCistICAgICAgICA7OworLWVzYWMKKy0K Ky1lY2hvICJPcGVyYXRpb24gaXM6ICR7Q01EfSIKKy0KKy0jIE9uIHNyYy8KKy0kQ01ECistCist IyBDaGVjayBleGFtcGxlcy8KKy1mb3IgZGlyIGluIGV4YW1wbGVzLyovCistZG8KKy0gICAgZGly PSR7ZGlyJSovfQorLSAgICAoCistICAgICAgICBjZCAiJHtkaXIlKi99IgorLSAgICAgICAgJENN RAorLSAgICApCistZG9uZQorLQorLSgKKy0gICAgY2QgdmVyaWZ5L3ZlcmlmeQorLSAgICAkQ01E CistKQorLQorLSgKKy0gICAgY2QgbWljcm9fYmVuY2htYXJrcworLSAgICAkQ01ECistKQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxs LW5kay5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvYW5kcm9pZC1pbnN0YWxs LW5kay5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2gKKysrKyAvZGV2L251bGwKK0BA IC0xLDIxICswLDAgQEAKKy0jIS91c3IvYmluL2VudiBzaAorLSMgQ29weXJpZ2h0IDIwMTYgVGhl IFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJzLiBTZWUgdGhlIENPUFlSSUdIVAorLSMgZmlsZSBhdCB0 aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKKy0jIGh0 dHA6Ly9ydXN0LWxhbmcub3JnL0NPUFlSSUdIVC4KKy0jCistIyBMaWNlbnNlZCB1bmRlciB0aGUg QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wIDxMSUNFTlNFLUFQQUNIRSBvcgorLSMgaHR0cDov L3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UK Ky0jIDxMSUNFTlNFLU1JVCBvciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwg YXQgeW91cgorLSMgb3B0aW9uLiBUaGlzIGZpbGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVk LCBvciBkaXN0cmlidXRlZAorLSMgZXhjZXB0IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKy0K Ky1zZXQgLWV4CistCistQU5EUk9JRF9OREtfVVJMPWh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRy b2lkL3JlcG9zaXRvcnkKKy1BTkRST0lEX05ES19BUkNISVZFPWFuZHJvaWQtbmRrLXIyNWItbGlu dXguemlwCistCistY3VybCAtZk8gIiRBTkRST0lEX05ES19VUkwvJEFORFJPSURfTkRLX0FSQ0hJ VkUiCistdW56aXAgLXEgJEFORFJPSURfTkRLX0FSQ0hJVkUKKy1ybSAkQU5EUk9JRF9OREtfQVJD SElWRQorLW12IGFuZHJvaWQtbmRrLSogbmRrCistcm0gLXJmIGFuZHJvaWQtbmRrLSoKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1z ZGsuc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtaW5zdGFsbC1z ZGsuc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9hbmRyb2lkLWluc3RhbGwtc2RrLnNoCisrKysgL2Rldi9udWxsCitAQCAt MSw2MCArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgc2gKKy0jIENvcHlyaWdodCAyMDE2IFRoZSBS dXN0IFByb2plY3QgRGV2ZWxvcGVycy4gU2VlIHRoZSBDT1BZUklHSFQKKy0jIGZpbGUgYXQgdGhl IHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhpcyBkaXN0cmlidXRpb24gYW5kIGF0CistIyBodHRw Oi8vcnVzdC1sYW5nLm9yZy9DT1BZUklHSFQuCistIworLSMgTGljZW5zZWQgdW5kZXIgdGhlIEFw YWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKKy0jIGh0dHA6Ly93 d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMD4gb3IgdGhlIE1JVCBsaWNlbnNlCist IyA8TElDRU5TRS1NSVQgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD4sIGF0 IHlvdXIKKy0jIG9wdGlvbi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwg b3IgZGlzdHJpYnV0ZWQKKy0jIGV4Y2VwdCBhY2NvcmRpbmcgdG8gdGhvc2UgdGVybXMuCistCist c2V0IC1leAorLQorLSMgUHJlcCB0aGUgU0RLIGFuZCBlbXVsYXRvcgorLSMKKy0jIE5vdGUgdGhh dCB0aGUgdXBkYXRlIHByb2Nlc3MgcmVxdWlyZXMgdGhhdCB3ZSBhY2NlcHQgYSBidW5jaCBvZiBs aWNlbnNlcywgYW5kCistIyB3ZSBjYW4ndCBqdXN0IHBpcGUgYHllc2AgaW50byBpdCBmb3Igc29t ZSByZWFzb24sIHNvIHdlIHRha2UgdGhlIHNhbWUgc3RyYXRlZ3kKKy0jIGxvY2F0ZWQgaW4gaHR0 cHM6Ly9naXRodWIuY29tL2FwcHVuaXRlL2RvY2tlciBieSBqdXN0IHdyYXBwaW5nIGl0IGluIGEg c2NyaXB0CistIyB3aGljaCBhcHBhcmVudGx5IG1hZ2ljYWxseSBhY2NlcHRzIHRoZSBsaWNlbnNl cy4KKy0KKy1ta2RpciBzZGsKKy1jdXJsIC0tcmV0cnkgNSBodHRwczovL2RsLmdvb2dsZS5jb20v YW5kcm9pZC9yZXBvc2l0b3J5L3Nkay10b29scy1saW51eC0zODU5Mzk3LnppcCAtTworLXVuemlw IC1kIHNkayBzZGstdG9vbHMtbGludXgtMzg1OTM5Ny56aXAKKy0KKy1jYXNlICIkMSIgaW4KKy0g IGFybSB8IGFybXY3KQorLSAgICBhYmk9YXJtZWFiaS12N2EKKy0gICAgOzsKKy0KKy0gIGFhcmNo NjQpCistICAgIGFiaT1hcm02NC12OGEKKy0gICAgOzsKKy0KKy0gIGk2ODYpCistICAgIGFiaT14 ODYKKy0gICAgOzsKKy0KKy0gIHg4Nl82NCkKKy0gICAgYWJpPXg4Nl82NAorLSAgICA7OworLQor LSAgKikKKy0gICAgZWNobyAiaW52YWxpZCBhcmNoOiAkMSIKKy0gICAgZXhpdCAxCistICAgIDs7 CistZXNhYzsKKy0KKy0jIC0tbm9faHR0cHMgYXZvaWRzCistICAgICAjIGphdmF4Lm5ldC5zc2wu U1NMSGFuZHNoYWtlRXhjZXB0aW9uOiBzdW4uc2VjdXJpdHkudmFsaWRhdG9yLlZhbGlkYXRvckV4 Y2VwdGlvbjogTm8gdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBmb3VuZAorLXllcyB8IC4vc2RrL3Rvb2xz L2Jpbi9zZGttYW5hZ2VyIC0tbGljZW5zZXMgLS1ub19odHRwcworLXllcyB8IC4vc2RrL3Rvb2xz L2Jpbi9zZGttYW5hZ2VyIC0tbm9faHR0cHMgXAorLSAgICAgICAgImVtdWxhdG9yIiBcCistICAg ICAgICAicGxhdGZvcm0tdG9vbHMiIFwKKy0gICAgICAgICJwbGF0Zm9ybXM7YW5kcm9pZC0yNCIg XAorLSAgICAgICAgInN5c3RlbS1pbWFnZXM7YW5kcm9pZC0yNDtkZWZhdWx0OyRhYmkiCistCist ZWNobyAibm8iIHwKKy0gICAgLi9zZGsvdG9vbHMvYmluL2F2ZG1hbmFnZXIgY3JlYXRlIGF2ZCBc CistICAgICAgICAtLW5hbWUgIiR7MX0iIFwKKy0gICAgICAgIC0tcGFja2FnZSAic3lzdGVtLWlt YWdlczthbmRyb2lkLTI0O2RlZmF1bHQ7JGFiaSIKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2FuZHJvaWQtc3lzaW1hZ2Uuc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9hbmRyb2lkLXN5c2lt YWdlLnNoCisrKysgL2Rldi9udWxsCitAQCAtMSw1NiArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYg YmFzaAorLQorLSMgQ29weXJpZ2h0IDIwMTcgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJzLiBT ZWUgdGhlIENPUFlSSUdIVAorLSMgZmlsZSBhdCB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0 aGlzIGRpc3RyaWJ1dGlvbiBhbmQgYXQKKy0jIGh0dHA6Ly9ydXN0LWxhbmcub3JnL0NPUFlSSUdI VC4KKy0jCistIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w IDxMSUNFTlNFLUFQQUNIRSBvcgorLSMgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJ Q0VOU0UtMi4wPiBvciB0aGUgTUlUIGxpY2Vuc2UKKy0jIDxMSUNFTlNFLU1JVCBvciBodHRwOi8v b3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgorLSMgb3B0aW9uLiBUaGlzIGZp bGUgbWF5IG5vdCBiZSBjb3BpZWQsIG1vZGlmaWVkLCBvciBkaXN0cmlidXRlZAorLSMgZXhjZXB0 IGFjY29yZGluZyB0byB0aG9zZSB0ZXJtcy4KKy0KKy1zZXQgLWV4CistCistVVJMPWh0dHBzOi8v ZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL3JlcG9zaXRvcnkvc3lzLWltZy9hbmRyb2lkCistCistbWFp bigpIHsKKy0gICAgbG9jYWwgYXJjaD0iJHsxfSIKKy0gICAgbG9jYWwgbmFtZT0iJHsyfSIKKy0g ICAgbG9jYWwgZGVzdD0vc3lzdGVtCistICAgIGxvY2FsIHRkCistICAgIHRkPSIkKG1rdGVtcCAt ZCkiCistCistICAgIGFwdC1nZXQgaW5zdGFsbCAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBlMnRv b2xzCistCistICAgIHB1c2hkICIke3RkfSIKKy0gICAgY3VybCAtLXJldHJ5IDUgLU8gIiR7VVJM fS8ke25hbWV9IgorLSAgICB1bnppcCAtcSAiJHtuYW1lfSIKKy0KKy0gICAgbG9jYWwgc3lzdGVt CistICAgIHN5c3RlbT0iJChmaW5kIC4gLW5hbWUgc3lzdGVtLmltZykiCistICAgIG1rZGlyIC1w ICR7ZGVzdH0ve2JpbixsaWIsbGliNjR9CistCistICAgICMgRXh0cmFjdCBhbmRyb2lkIGxpbmtl ciBhbmQgbGlicmFyaWVzIHRvIC9zeXN0ZW0KKy0gICAgIyBUaGlzIGFsbG93cyBhbmRyb2lkIGV4 ZWN1dGFibGVzIHRvIGJlIHJ1biBkaXJlY3RseSAob3Igd2l0aCBxZW11KQorLSAgICBpZiBbICIk e2FyY2h9IiA9ICJ4ODZfNjQiIF0gfHwgWyAiJHthcmNofSIgPSAiYXJtNjQiIF07IHRoZW4KKy0g ICAgICAgIGUyY3AgLXAgIiR7c3lzdGVtfTovYmluL2xpbmtlcjY0IiAiJHtkZXN0fS9iaW4vIgor LSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWI2NC9saWJkbC5zbyIgIiR7ZGVzdH0vbGli NjQvIgorLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9saWI2NC9saWJjLnNvIiAiJHtkZXN0 fS9saWI2NC8iCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06L2xpYjY0L2xpYm0uc28iICIk e2Rlc3R9L2xpYjY0LyIKKy0gICAgZWxzZQorLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9i aW4vbGlua2VyIiAiJHtkZXN0fS9iaW4vIgorLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19Oi9s aWIvbGliZGwuc28iICIke2Rlc3R9L2xpYi8iCistICAgICAgICBlMmNwIC1wICIke3N5c3RlbX06 L2xpYi9saWJjLnNvIiAiJHtkZXN0fS9saWIvIgorLSAgICAgICAgZTJjcCAtcCAiJHtzeXN0ZW19 Oi9saWIvbGlibS5zbyIgIiR7ZGVzdH0vbGliLyIKKy0gICAgZmkKKy0KKy0gICAgIyBjbGVhbiB1 cAorLSAgICBhcHQtZ2V0IHB1cmdlIC0tYXV0by1yZW1vdmUgLXkgZTJ0b29scworLQorLSAgICBw b3BkCistCistICAgIHJtIC1yZiAiJHt0ZH0iCistfQorLQorLW1haW4gIiR7QH0iCitkaWZmIC0t Z2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9iZW5jaG1hcmsuc2ggYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFyay5zaAorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2JlbmNobWFy ay5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMzIgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IGJh c2gKKy0jCistIyBSdW5zIGFsbCBiZW5jaG1hcmtzLiBDb250cm9sbGVkIGJ5IHRoZSBmb2xsb3dp bmcgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorLSMKKy0jIEZFQVRVUkVTPXt9IC0gY2FyZ28gZmVh dHVyZXMgdG8gcGFzcyB0byBhbGwgYmVuY2htYXJrcyAoZS5nLiBjb3JlX2FyY2gsc2xlZWYtc3lz LGlzcGMpCistIyBOT1JVTj17MX0gICAtIG9ubHkgYnVpbGRzIHRoZSBiZW5jaG1hcmtzCistCist c2V0IC1leAorLQorLWlmIFtbICR7Tk9SVU59ICE9IDEgXV07IHRoZW4KKy0gICAgIyBNb3N0IGJl bmNobWFya3MgcmVxdWlyZSBoeXBlcmZpbmU7IHJlcXVpcmUgaXQgdXBmcm9udC4KKy0gICAgaGFz aCBoeXBlcmZpbmUgMj4vZGV2L251bGwgfHwgeyBlY2hvID4mMiAiaHlwZXJmaW5lIGlzIG5vdCBp biBQQVRILiI7IGV4aXQgMTsgfQorLWZpCistCistCistIyBJZiB0aGUgaXNwYyBiZW5jaG1hcmsg ZmVhdHVyZSBpcyBlbmFibGVkLCBpc3BjIG11c3QgYmUgaW4gdGhlIHBhdGggb2YgdGhlCistIyBi ZW5jaG1hcmtzLiAKKy1pZiBlY2hvICIkRkVBVFVSRVMiIHwgZ3JlcCAtcSAiaXNwYyI7IHRoZW4K Ky0gICAgaGFzaCBpc3BjIDI+L2Rldi9udWxsIHx8IHsgZWNobyA+JjIgImlzcGMgaXMgbm90IGlu IFBBVEguIjsgZXhpdCAxOyB9CistZmkKKy0KKy0jIEFuIGV4YW1wbGUgd2l0aCBhIGJlbmNobWFy ay5zaCBpcyBhIGJlbmNobWFyazoKKy1mb3IgZGlyIGluIGV4YW1wbGVzLyovCistZG8KKy0gICAg ZGlyPSR7ZGlyJSovfQorLSAgICBjZCAke2RpciUqL30KKy0gICAgaWYgWyAtZiAiYmVuY2htYXJr LnNoIiBdOyB0aGVuCistICAgICAgICAuL2JlbmNobWFyay5zaAorLSAgICBmaQorLSAgICBjZCAt CistZG9uZQorLQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZGVwbG95X2FuZF9ydW5fb25faW9zX3NpbXVsYXRvci5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rl cGxveV9hbmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE3 NiArMCwwIEBACistLy8gQ29weXJpZ2h0IDIwMTcgVGhlIFJ1c3QgUHJvamVjdCBEZXZlbG9wZXJz LiBTZWUgdGhlIENPUFlSSUdIVAorLS8vIGZpbGUgYXQgdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkg b2YgdGhpcyBkaXN0cmlidXRpb24gYW5kIGF0CistLy8gaHR0cDovL3J1c3QtbGFuZy5vcmcvQ09Q WVJJR0hULgorLS8vCistLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJz aW9uIDIuMCA8TElDRU5TRS1BUEFDSEUgb3IKKy0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGlj ZW5zZXMvTElDRU5TRS0yLjA+IG9yIHRoZSBNSVQgbGljZW5zZQorLS8vIDxMSUNFTlNFLU1JVCBv ciBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUPiwgYXQgeW91cgorLS8vIG9wdGlv bi4gVGhpcyBmaWxlIG1heSBub3QgYmUgY29waWVkLCBtb2RpZmllZCwgb3IgZGlzdHJpYnV0ZWQK Ky0vLyBleGNlcHQgYWNjb3JkaW5nIHRvIHRob3NlIHRlcm1zLgorLQorLS8vIFRoaXMgaXMgYSBz Y3JpcHQgdG8gZGVwbG95IGFuZCBleGVjdXRlIGEgYmluYXJ5IG9uIGFuIGlPUyBzaW11bGF0b3Iu CistLy8gVGhlIHByaW1hcnkgdXNlIG9mIHRoaXMgaXMgdG8gYmUgYWJsZSB0byBydW4gdW5pdCB0 ZXN0cyBvbiB0aGUgc2ltdWxhdG9yIGFuZAorLS8vIHJldHJpZXZlIHRoZSByZXN1bHRzLgorLS8v CistLy8gVG8gZG8gdGhpcyB0aHJvdWdoIENhcmdvIGluc3RlYWQsIHVzZSBEaW5naHkKKy0vLyAo aHR0cHM6Ly9naXRodWIuY29tL3NuaXBzY28vZGluZ2h5KTogY2FyZ28gZGluZ2h5IGluc3RhbGws IHRoZW4gY2FyZ28gZGluZ2h5CistLy8gdGVzdC4KKy0KKy11c2Ugc3RkOjplbnY7CistdXNlIHN0 ZDo6ZnM6OntzZWxmLCBGaWxlfTsKKy11c2Ugc3RkOjppbzo6V3JpdGU7CistdXNlIHN0ZDo6cGF0 aDo6UGF0aDsKKy11c2Ugc3RkOjpwcm9jZXNzOworLXVzZSBzdGQ6OnByb2Nlc3M6OkNvbW1hbmQ7 CistCistbWFjcm9fcnVsZXMhIHQgeworLSAgICAoJGU6ZXhwcikgPT4gKG1hdGNoICRlIHsKKy0g ICAgICAgIE9rKGUpID0+IGUsCistICAgICAgICBFcnIoZSkgPT4gcGFuaWMhKCJ7fSBmYWlsZWQg d2l0aDoge30iLCBzdHJpbmdpZnkhKCRlKSwgZSksCistICAgIH0pCistfQorLQorLS8vIFN0ZXAg b25lOiBXcmFwIGFzIGFuIGFwcAorLWZuIHBhY2thZ2VfYXNfc2ltdWxhdG9yX2FwcChjcmF0ZV9u YW1lOiAmc3RyLCB0ZXN0X2JpbmFyeV9wYXRoOiAmUGF0aCkgeworLSAgICBwcmludGxuISgiUGFj a2FnaW5nIHNpbXVsYXRvciBhcHAiKTsKKy0gICAgZHJvcChmczo6cmVtb3ZlX2Rpcl9hbGwoImlv c19zaW11bGF0b3JfYXBwIikpOworLSAgICB0IShmczo6Y3JlYXRlX2RpcigiaW9zX3NpbXVsYXRv cl9hcHAiKSk7CistICAgIHQhKGZzOjpjb3B5KHRlc3RfYmluYXJ5X3BhdGgsCistICAgICAgICAg ICAgICAgIFBhdGg6Om5ldygiaW9zX3NpbXVsYXRvcl9hcHAiKS5qb2luKGNyYXRlX25hbWUpKSk7 CistCistICAgIGxldCBtdXQgZiA9IHQhKEZpbGU6OmNyZWF0ZSgiaW9zX3NpbXVsYXRvcl9hcHAv SW5mby5wbGlzdCIpKTsKKy0gICAgdCEoZi53cml0ZV9hbGwoZm9ybWF0IShyIyIKKy0gICAgICAg IDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CistICAgICAgICA8IURPQ1RZ UEUgcGxpc3QgUFVCTElDCistICAgICAgICAgICAgICAgICItLy9BcHBsZS8vRFREIFBMSVNUIDEu MC8vRU4iCistICAgICAgICAgICAgICAgICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3Bl cnR5TGlzdC0xLjAuZHRkIj4KKy0gICAgICAgIDxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorLSAgICAg ICAgICAgIDxkaWN0PgorLSAgICAgICAgICAgICAgICA8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwv a2V5PgorLSAgICAgICAgICAgICAgICA8c3RyaW5nPnt9PC9zdHJpbmc+CistICAgICAgICAgICAg ICAgIDxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+CistICAgICAgICAgICAgICAgIDxzdHJp bmc+Y29tLnJ1c3QudW5pdHRlc3RzPC9zdHJpbmc+CistICAgICAgICAgICAgPC9kaWN0PgorLSAg ICAgICAgPC9wbGlzdD4KKy0gICAgIiMsIGNyYXRlX25hbWUpLmFzX2J5dGVzKCkpKTsKKy19Cist CistLy8gU3RlcCB0d286IFN0YXJ0IHRoZSBpT1Mgc2ltdWxhdG9yCistZm4gc3RhcnRfc2ltdWxh dG9yKCkgeworLSAgICBwcmludGxuISgiTG9va2luZyBmb3IgaU9TIHNpbXVsYXRvciIpOworLSAg ICBsZXQgb3V0cHV0ID0gdCEoQ29tbWFuZDo6bmV3KCJ4Y3J1biIpLmFyZygic2ltY3RsIikuYXJn KCJsaXN0Iikub3V0cHV0KCkpOworLSAgICBhc3NlcnQhKG91dHB1dC5zdGF0dXMuc3VjY2Vzcygp KTsKKy0gICAgbGV0IG11dCBzaW11bGF0b3JfZXhpc3RzID0gZmFsc2U7CistICAgIGxldCBtdXQg c2ltdWxhdG9yX2Jvb3RlZCA9IGZhbHNlOworLSAgICBsZXQgbXV0IGZvdW5kX3J1c3Rfc2ltID0g ZmFsc2U7CistICAgIGxldCBzdGRvdXQgPSB0IShTdHJpbmc6OmZyb21fdXRmOChvdXRwdXQuc3Rk b3V0KSk7CistICAgIGZvciBsaW5lIGluIHN0ZG91dC5saW5lcygpIHsKKy0gICAgICAgIGlmIGxp bmUuY29udGFpbnMoInJ1c3RfaW9zIikgeworLSAgICAgICAgICAgIGlmIGZvdW5kX3J1c3Rfc2lt IHsKKy0gICAgICAgICAgICAgICAgcGFuaWMhKCJEdXBsaWNhdGUgcnVzdF9pb3Mgc2ltdWxhdG9y cyBmb3VuZC4gUGxlYXNlIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUtY2hlY2sg eGNydW4gc2ltY3RsIGxpc3QuIik7CistICAgICAgICAgICAgfQorLSAgICAgICAgICAgIHNpbXVs YXRvcl9leGlzdHMgPSB0cnVlOworLSAgICAgICAgICAgIHNpbXVsYXRvcl9ib290ZWQgPSBsaW5l LmNvbnRhaW5zKCIoQm9vdGVkKSIpOworLSAgICAgICAgICAgIGZvdW5kX3J1c3Rfc2ltID0gdHJ1 ZTsKKy0gICAgICAgIH0KKy0gICAgfQorLQorLSAgICBpZiBzaW11bGF0b3JfZXhpc3RzID09IGZh bHNlIHsKKy0gICAgICAgIHByaW50bG4hKCJDcmVhdGluZyBpT1Mgc2ltdWxhdG9yIik7CistICAg ICAgICBDb21tYW5kOjpuZXcoInhjcnVuIikKKy0gICAgICAgICAgICAgICAgLmFyZygic2ltY3Rs IikKKy0gICAgICAgICAgICAgICAgLmFyZygiY3JlYXRlIikKKy0gICAgICAgICAgICAgICAgLmFy ZygicnVzdF9pb3MiKQorLSAgICAgICAgICAgICAgICAuYXJnKCJjb20uYXBwbGUuQ29yZVNpbXVs YXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS1TRSIpCistICAgICAgICAgICAgICAgIC5hcmcoImNv bS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbVJ1bnRpbWUuaU9TLTEwLTIiKQorLSAgICAgICAgICAg ICAgICAuY2hlY2tfc3RhdHVzKCk7CistICAgIH0gZWxzZSBpZiBzaW11bGF0b3JfYm9vdGVkID09 IHRydWUgeworLSAgICAgICAgcHJpbnRsbiEoIlNodXR0aW5nIGRvd24gYWxyZWFkeS1ib290ZWQg c2ltdWxhdG9yIik7CistICAgICAgICBDb21tYW5kOjpuZXcoInhjcnVuIikKKy0gICAgICAgICAg ICAgICAgLmFyZygic2ltY3RsIikKKy0gICAgICAgICAgICAgICAgLmFyZygic2h1dGRvd24iKQor LSAgICAgICAgICAgICAgICAuYXJnKCJydXN0X2lvcyIpCistICAgICAgICAgICAgICAgIC5jaGVj a19zdGF0dXMoKTsKKy0gICAgfQorLQorLSAgICBwcmludGxuISgiU3RhcnRpbmcgaU9TIHNpbXVs YXRvciIpOworLSAgICAvLyBXZSBjYW4ndCB1bmluc3RhbGwgdGhlIGFwcCAoaWYgcHJlc2VudCkg YXMgdGhhdCB3aWxsIGhhbmcgaWYgdGhlCistICAgIC8vIHNpbXVsYXRvciBpc24ndCBjb21wbGV0 ZWx5IGJvb3RlZDsganVzdCBlcmFzZSB0aGUgc2ltdWxhdG9yIGluc3RlYWQuCistICAgIENvbW1h bmQ6Om5ldygieGNydW4iKS5hcmcoInNpbWN0bCIpLmFyZygiZXJhc2UiKS5hcmcoInJ1c3RfaW9z IikuY2hlY2tfc3RhdHVzKCk7CistICAgIENvbW1hbmQ6Om5ldygieGNydW4iKS5hcmcoInNpbWN0 bCIpLmFyZygiYm9vdCIpLmFyZygicnVzdF9pb3MiKS5jaGVja19zdGF0dXMoKTsKKy19CistCist Ly8gU3RlcCB0aHJlZTogSW5zdGFsbCB0aGUgYXBwCistZm4gaW5zdGFsbF9hcHBfdG9fc2ltdWxh dG9yKCkgeworLSAgICBwcmludGxuISgiSW5zdGFsbGluZyBhcHAgdG8gc2ltdWxhdG9yIik7Cist ICAgIENvbW1hbmQ6Om5ldygieGNydW4iKQorLSAgICAgICAgICAgIC5hcmcoInNpbWN0bCIpCist ICAgICAgICAgICAgLmFyZygiaW5zdGFsbCIpCistICAgICAgICAgICAgLmFyZygiYm9vdGVkIikK Ky0gICAgICAgICAgICAuYXJnKCJpb3Nfc2ltdWxhdG9yX2FwcC8iKQorLSAgICAgICAgICAgIC5j aGVja19zdGF0dXMoKTsKKy19CistCistLy8gU3RlcCBmb3VyOiBSdW4gdGhlIGFwcAorLWZuIHJ1 bl9hcHBfb25fc2ltdWxhdG9yKCkgeworLSAgICBwcmludGxuISgiUnVubmluZyBhcHAiKTsKKy0g ICAgbGV0IG91dHB1dCA9IHQhKENvbW1hbmQ6Om5ldygieGNydW4iKQorLSAgICAgICAgICAgICAg ICAgICAgLmFyZygic2ltY3RsIikKKy0gICAgICAgICAgICAgICAgICAgIC5hcmcoImxhdW5jaCIp CistICAgICAgICAgICAgICAgICAgICAuYXJnKCItLWNvbnNvbGUiKQorLSAgICAgICAgICAgICAg ICAgICAgLmFyZygiYm9vdGVkIikKKy0gICAgICAgICAgICAgICAgICAgIC5hcmcoImNvbS5ydXN0 LnVuaXR0ZXN0cyIpCistICAgICAgICAgICAgICAgICAgICAub3V0cHV0KCkpOworLQorLSAgICBw cmludGxuISgic3Rkb3V0IC0tXG57fVxuIiwgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1 dC5zdGRvdXQpKTsKKy0gICAgcHJpbnRsbiEoInN0ZGVyciAtLVxue31cbiIsIFN0cmluZzo6ZnJv bV91dGY4X2xvc3N5KCZvdXRwdXQuc3RkZXJyKSk7CistCistICAgIGxldCBzdGRvdXQgPSBTdHJp bmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZG91dCk7CistICAgIGxldCBmYWlsZWQgPSBz dGRvdXQubGluZXMoKQorLSAgICAgICAgLmZpbmQofGx8IGwuY29udGFpbnMoIkZBSUxFRCIpKQor LSAgICAgICAgLm1hcCh8bHwgbC5jb250YWlucygiRkFJTEVEIikpCistICAgICAgICAudW53cmFw X29yKGZhbHNlKTsKKy0KKy0gICAgbGV0IHBhc3NlZCA9IHN0ZG91dC5saW5lcygpCistICAgICAg ICAuZmluZCh8bHwgbC5jb250YWlucygidGVzdCByZXN1bHQ6IG9rIikpCistICAgICAgICAubWFw KHxsfCBsLmNvbnRhaW5zKCJ0ZXN0IHJlc3VsdDogb2siKSkKKy0gICAgICAgIC51bndyYXBfb3Io ZmFsc2UpOworLQorLSAgICBwcmludGxuISgiU2h1dHRpbmcgZG93biBzaW11bGF0b3IiKTsKKy0g ICAgQ29tbWFuZDo6bmV3KCJ4Y3J1biIpCistICAgICAgICAuYXJnKCJzaW1jdGwiKQorLSAgICAg ICAgLmFyZygic2h1dGRvd24iKQorLSAgICAgICAgLmFyZygicnVzdF9pb3MiKQorLSAgICAgICAg LmNoZWNrX3N0YXR1cygpOworLSAgICBpZiAhKHBhc3NlZCAmJiAhZmFpbGVkKSB7CistICAgICAg ICBwYW5pYyEoInRlc3RzIGRpZG4ndCBwYXNzIik7CistICAgIH0KKy19CistCistdHJhaXQgQ2hl Y2tTdGF0dXMgeworLSAgICBmbiBjaGVja19zdGF0dXMoJm11dCBzZWxmKTsKKy19CistCistaW1w bCBDaGVja1N0YXR1cyBmb3IgQ29tbWFuZCB7CistICAgIGZuIGNoZWNrX3N0YXR1cygmbXV0IHNl bGYpIHsKKy0gICAgICAgIHByaW50bG4hKCJcdHJ1bm5pbmc6IHs6P30iLCBzZWxmKTsKKy0gICAg ICAgIGFzc2VydCEodCEoc2VsZi5zdGF0dXMoKSkuc3VjY2VzcygpKTsKKy0gICAgfQorLX0KKy0K Ky1mbiBtYWluKCkgeworLSAgICBsZXQgYXJnczogVmVjPFN0cmluZz4gPSBlbnY6OmFyZ3MoKS5j b2xsZWN0KCk7CistICAgIGlmIGFyZ3MubGVuKCkgIT0gMiB7CistICAgICAgICBwcmludGxuISgi VXNhZ2U6IHt9IDxleGVjdXRhYmxlPiIsIGFyZ3NbMF0pOworLSAgICAgICAgcHJvY2Vzczo6ZXhp dCgtMSk7CistICAgIH0KKy0KKy0gICAgbGV0IHRlc3RfYmluYXJ5X3BhdGggPSBQYXRoOjpuZXco JmFyZ3NbMV0pOworLSAgICBsZXQgY3JhdGVfbmFtZSA9IHRlc3RfYmluYXJ5X3BhdGguZmlsZV9u YW1lKCkudW53cmFwKCk7CistCistICAgIHBhY2thZ2VfYXNfc2ltdWxhdG9yX2FwcChjcmF0ZV9u YW1lLnRvX3N0cigpLnVud3JhcCgpLCB0ZXN0X2JpbmFyeV9wYXRoKTsKKy0gICAgc3RhcnRfc2lt dWxhdG9yKCk7CistICAgIGluc3RhbGxfYXBwX3RvX3NpbXVsYXRvcigpOworLSAgICBydW5fYXBw X29uX3NpbXVsYXRvcigpOworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9hYXJjaDY0LWxpbnV4LWFuZHJvaWQvRG9ja2VyZmlsZSBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9E b2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJmaWxl CisrKysgL2Rldi9udWxsCitAQCAtMSw0NyArMCwwIEBACistRlJPTSB1YnVudHU6MTYuMDQKKy0K Ky1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1cmUgaTM4NiAmJiBcCistICAgIGFwdC1nZXQgdXBk YXRlICYmIFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRz IFwKKy0gIGZpbGUgXAorLSAgbWFrZSBcCistICBjdXJsIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBc CistICBweXRob24gXAorLSAgdW56aXAgXAorLSAgZXhwZWN0IFwKKy0gIG9wZW5qZGstOS1qcmUg XAorLSAgbGlic3RkYysrNjppMzg2IFwKKy0gIGxpYnB1bHNlMCBcCistICBnY2MgXAorLSAgbGli YzYtZGV2CistCistV09SS0RJUiAvYW5kcm9pZC8KKy1DT1BZIGFuZHJvaWQqIC9hbmRyb2lkLwor LQorLUVOViBBTkRST0lEX0FSQ0g9YWFyY2g2NAorLUVOViBQQVRIPSRQQVRIOi9hbmRyb2lkL25k ay0kQU5EUk9JRF9BUkNIL2JpbjovYW5kcm9pZC9zZGsvdG9vbHM6L2FuZHJvaWQvc2RrL3BsYXRm b3JtLXRvb2xzCistCistUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1uZGsuc2ggJEFO RFJPSURfQVJDSAorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtc2RrLnNoICRBTkRS T0lEX0FSQ0gKKy1SVU4gbXYgL3Jvb3QvLmFuZHJvaWQgL3RtcAorLVJVTiBjaG1vZCA3NzcgLVIg L3RtcC8uYW5kcm9pZAorLVJVTiBjaG1vZCA3NTUgL2FuZHJvaWQvc2RrL3Rvb2xzLyogL2FuZHJv aWQvc2RrL2VtdWxhdG9yL3FlbXUvbGludXgteDg2XzY0LyoKKy0KKy1FTlYgUEFUSD0kUEFUSDov cnVzdC9iaW4gXAorLSAgICBDQVJHT19UQVJHRVRfQUFSQ0g2NF9MSU5VWF9BTkRST0lEX0xJTktF Uj1hYXJjaDY0LWxpbnV4LWFuZHJvaWQtZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX0FBUkNINjRf TElOVVhfQU5EUk9JRF9SVU5ORVI9L3RtcC9ydW50ZXN0IFwKKy0gICAgT0JKRFVNUD1hYXJjaDY0 LWxpbnV4LWFuZHJvaWQtb2JqZHVtcCBcCistICAgIEhPTUU9L3RtcAorLQorLUFERCBydW50ZXN0 LWFuZHJvaWQucnMgL3RtcC9ydW50ZXN0LnJzCistRU5UUllQT0lOVCBbIFwKKy0gICJiYXNoIiwg XAorLSAgIi1jIiwgXAorLSAgIyBzZXQgU0hFTEwgc28gYW5kcm9pZCBjYW4gZGV0ZWN0IGEgNjRi aXRzIHN5c3RlbSwgc2VlCistICAjIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNzg5MTQ0 CistICAiU0hFTEw9L2Jpbi9kYXNoIC9hbmRyb2lkL3Nkay9lbXVsYXRvci9lbXVsYXRvciBAYWFy Y2g2NCAtbm8td2luZG93ICYgXAorLSAgIHJ1c3RjIC90bXAvcnVudGVzdC5ycyAtbyAvdG1wL3J1 bnRlc3QgJiYgXAorLSAgIGV4ZWMgXCIkQFwiIiwgXAorLSAgIi0tIiBcCistXQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2FhcmNoNjQtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL2FhcmNoNjQtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tl ci9hYXJjaDY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BA IC0xLDE0ICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAm JiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjIFwK Ky0gIGNhLWNlcnRpZmljYXRlcyBcCistICBsaWJjNi1kZXYgXAorLSAgZ2NjLWFhcmNoNjQtbGlu dXgtZ251IFwKKy0gIGxpYmM2LWRldi1hcm02NC1jcm9zcyBcCistICBxZW11LXVzZXIgXAorLSAg bWFrZSBcCistICBmaWxlCistCistRU5WIENBUkdPX1RBUkdFVF9BQVJDSDY0X1VOS05PV05fTElO VVhfR05VX0xJTktFUj1hYXJjaDY0LWxpbnV4LWdudS1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRf QUFSQ0g2NF9VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtYWFyY2g2NCAtTCAvdXNyL2Fh cmNoNjQtbGludXgtZ251IiBcCistICAgIE9CSkRVTVA9YWFyY2g2NC1saW51eC1nbnUtb2JqZHVt cAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2Fy bS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL2FybS11bmtub3duLWxpbnV4LWdudWVhYmkvRG9ja2VyZmlsZQor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpL0RvY2tlcmZpbGUKKysrKyAv ZGV2L251bGwKK0BAIC0xLDE1ICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLVJVTiBhcHQt Z2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg XAorLSAgZ2NjIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICBsaWJjNi1kZXYgXAorLSAgbGli YzYtYXJtZWwtY3Jvc3MgXAorLSAgbGliYzYtZGV2LWFybWVsLWNyb3NzIFwKKy0gIGJpbnV0aWxz LWFybS1saW51eC1nbnVlYWJpIFwKKy0gIGdjYy1hcm0tbGludXgtZ251ZWFiaSBcCistICBxZW11 LXVzZXIgXAorLSAgbWFrZSBcCistICBmaWxlCistRU5WIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9X Tl9MSU5VWF9HTlVFQUJJX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaS1nY2MgXAorLSAgICBDQVJH T19UQVJHRVRfQVJNX1VOS05PV05fTElOVVhfR05VRUFCSV9SVU5ORVI9InFlbXUtYXJtIC1MIC91 c3IvYXJtLWxpbnV4LWdudWVhYmkiIFwKKy0gICAgT0JKRFVNUD1hcm0tbGludXgtZ251ZWFiaS1v YmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2Nr ZXIvYXJtLXVua25vd24tbGludXgtZ251ZWFiaWhmL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9j a2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2Vy ZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLUZST00gdWJ1bnR1OjE4LjA0 CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwt cmVjb21tZW5kcyBcCistICBnY2MgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwKKy0gIGxpYmM2LWRl diBcCistICBnY2MtYXJtLWxpbnV4LWdudWVhYmloZiBcCistICBsaWJjNi1kZXYtYXJtaGYtY3Jv c3MgXAorLSAgcWVtdS11c2VyIFwKKy0gIG1ha2UgXAorLSAgZmlsZQorLUVOViBDQVJHT19UQVJH RVRfQVJNX1VOS05PV05fTElOVVhfR05VRUFCSUhGX0xJTktFUj1hcm0tbGludXgtZ251ZWFiaWhm LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9BUk1fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfUlVO TkVSPSJxZW11LWFybSAtTCAvdXNyL2FybS1saW51eC1nbnVlYWJpaGYiIFwKKy0gICAgT0JKRFVN UD1hcm0tbGludXgtZ251ZWFiaWhmLW9iamR1bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJm aWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctbGludXgt YW5kcm9pZGVhYmkvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny1saW51eC1hbmRyb2lk ZWFiaS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSw0NyArMCwwIEBACistRlJPTSB1 YnVudHU6MTYuMDQKKy0KKy1SVU4gZHBrZyAtLWFkZC1hcmNoaXRlY3R1cmUgaTM4NiAmJiBcCist ICAgIGFwdC1nZXQgdXBkYXRlICYmIFwKKy0gICAgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5z dGFsbC1yZWNvbW1lbmRzIFwKKy0gIGZpbGUgXAorLSAgbWFrZSBcCistICBjdXJsIFwKKy0gIGNh LWNlcnRpZmljYXRlcyBcCistICBweXRob24gXAorLSAgdW56aXAgXAorLSAgZXhwZWN0IFwKKy0g IG9wZW5qZGstOS1qcmUgXAorLSAgbGlic3RkYysrNjppMzg2IFwKKy0gIGxpYnB1bHNlMCBcCist ICBnY2MgXAorLSAgbGliYzYtZGV2CistCistV09SS0RJUiAvYW5kcm9pZC8KKy1DT1BZIGFuZHJv aWQqIC9hbmRyb2lkLworLQorLUVOViBBTkRST0lEX0FSQ0g9YXJtCistRU5WIFBBVEg9JFBBVEg6 L2FuZHJvaWQvbmRrLSRBTkRST0lEX0FSQ0gvYmluOi9hbmRyb2lkL3Nkay90b29sczovYW5kcm9p ZC9zZGsvcGxhdGZvcm0tdG9vbHMKKy0KKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxs LW5kay5zaCAkQU5EUk9JRF9BUkNICistUlVOIHNoIC9hbmRyb2lkL2FuZHJvaWQtaW5zdGFsbC1z ZGsuc2ggJEFORFJPSURfQVJDSAorLVJVTiBtdiAvcm9vdC8uYW5kcm9pZCAvdG1wCistUlVOIGNo bW9kIDc3NyAtUiAvdG1wLy5hbmRyb2lkCistUlVOIGNobW9kIDc1NSAvYW5kcm9pZC9zZGsvdG9v bHMvKiAvYW5kcm9pZC9zZGsvZW11bGF0b3IvcWVtdS9saW51eC14ODZfNjQvKgorLQorLUVOViBQ QVRIPSRQQVRIOi9ydXN0L2JpbiBcCistICAgIENBUkdPX1RBUkdFVF9BUk1fTElOVVhfQU5EUk9J REVBQklfTElOS0VSPWFybS1saW51eC1hbmRyb2lkZWFiaS1nY2MgXAorLSAgICBDQVJHT19UQVJH RVRfQVJNX0xJTlVYX0FORFJPSURFQUJJX1JVTk5FUj0vdG1wL3J1bnRlc3QgXAorLSAgICBPQkpE VU1QPWFybS1saW51eC1hbmRyb2lkZWFiaS1vYmpkdW1wIFwKKy0gICAgSE9NRT0vdG1wCistCist QUREIHJ1bnRlc3QtYW5kcm9pZC5ycyAvdG1wL3J1bnRlc3QucnMKKy1FTlRSWVBPSU5UIFsgXAor LSAgImJhc2giLCBcCistICAiLWMiLCBcCistICAjIHNldCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBk ZXRlY3QgYSA2NGJpdHMgc3lzdGVtLCBzZWUKKy0gICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29t L2EvNDE3ODkxNDQKKy0gICJTSEVMTD0vYmluL2Rhc2ggL2FuZHJvaWQvc2RrL2VtdWxhdG9yL2Vt dWxhdG9yIEBhcm0gLW5vLXdpbmRvdyAmIFwKKy0gICBydXN0YyAvdG1wL3J1bnRlc3QucnMgLW8g L3RtcC9ydW50ZXN0ICYmIFwKKy0gICBleGVjIFwiJEBcIiIsIFwKKy0gICItLSIgXAorLV0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9hcm12Ny11 bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYvRG9ja2VyZmls ZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci9hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxl CisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy1S VU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNv bW1lbmRzIFwKKy0gIGdjYyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgbGliYzYtZGV2IFwK Ky0gIGdjYy1hcm0tbGludXgtZ251ZWFiaWhmIFwKKy0gIGxpYmM2LWRldi1hcm1oZi1jcm9zcyBc CistICBxZW11LXVzZXIgXAorLSAgbWFrZSBcCistICBmaWxlCistRU5WIENBUkdPX1RBUkdFVF9B Uk1WN19VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9MSU5LRVI9YXJtLWxpbnV4LWdudWVhYmloZi1n Y2MgXAorLSAgICBDQVJHT19UQVJHRVRfQVJNVjdfVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfUlVO TkVSPSJxZW11LWFybSAtTCAvdXNyL2FybS1saW51eC1nbnVlYWJpaGYiIFwKKy0gICAgT0JKRFVN UD1hcm0tbGludXgtZ251ZWFiaWhmLW9iamR1bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24tbGludXgtZ251L0RvY2tlcmZp bGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9pNTg2LXVua25vd24t bGludXgtZ251L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTU4Ni11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSw3ICswLDAgQEAKKy1GUk9NIHVidW50 dToxOC4wNAorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1p bnN0YWxsLXJlY29tbWVuZHMgXAorLSAgZ2NjLW11bHRpbGliIFwKKy0gIGxpYmM2LWRldiBcCist ICBmaWxlIFwKKy0gIG1ha2UgXAorLSAgY2EtY2VydGlmaWNhdGVzCitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4Ni11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvaTY4 Ni11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL2k2ODYtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsNyArMCwwIEBACist RlJPTSB1YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxs IC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gIGdjYy1tdWx0aWxpYiBcCistICBsaWJj Ni1kZXYgXAorLSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGNhLWNlcnRpZmljYXRlcworZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHMtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kv ZG9ja2VyL21pcHMtdW5rbm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9t aXBzLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEz ICswLDAgQEAKKy1GUk9NIHVidW50dToxOC4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBh cHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICAgICAgZ2Nj IGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgICAgIGdjYy1taXBz LWxpbnV4LWdudSBsaWJjNi1kZXYtbWlwcy1jcm9zcyBcCistICAgICAgICBxZW11LXN5c3RlbS1t aXBzIFwKKy0gICAgICAgIHFlbXUtdXNlciBcCistICAgICAgICBtYWtlIFwKKy0gICAgICAgIGZp bGUKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX01JUFNfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPW1p cHMtbGludXgtZ251LWdjYyBcCistICAgIENBUkdPX1RBUkdFVF9NSVBTX1VOS05PV05fTElOVVhf R05VX1JVTk5FUj0icWVtdS1taXBzIC1MIC91c3IvbWlwcy1saW51eC1nbnUiIFwKKy0gICAgT0JK RFVNUD1taXBzLWxpbnV4LWdudS1vYmpkdW1wCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBz NjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlwczY0LXVua25vd24tbGludXgtZ251YWJpNjQvRG9ja2Vy ZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjQtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJm aWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxMCArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQK Ky0KKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFs bC1yZWNvbW1lbmRzIFwKKy0gICAgICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRp ZmljYXRlcyBcCistICAgICAgICBnY2MtbWlwczY0LWxpbnV4LWdudWFiaTY0IGxpYmM2LWRldi1t aXBzNjQtY3Jvc3MgXAorLSAgICAgICAgcWVtdS1zeXN0ZW0tbWlwczY0IHFlbXUtdXNlcgorLQor LUVOViBDQVJHT19UQVJHRVRfTUlQUzY0X1VOS05PV05fTElOVVhfR05VQUJJNjRfTElOS0VSPW1p cHM2NC1saW51eC1nbnVhYmk2NC1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfTUlQUzY0X1VOS05P V05fTElOVVhfR05VQUJJNjRfUlVOTkVSPSJxZW11LW1pcHM2NCAtTCAvdXNyL21pcHM2NC1saW51 eC1nbnVhYmk2NCIgXAorLSAgICBPQkpEVU1QPW1pcHM2NC1saW51eC1nbnVhYmk2NC1vYmpkdW1w CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzNjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0 L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBz NjRlbC11bmtub3duLWxpbnV4LWdudWFiaTY0L0RvY2tlcmZpbGUKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvbWlw czY0ZWwtdW5rbm93bi1saW51eC1nbnVhYmk2NC9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitA QCAtMSwxMCArMCwwIEBACistRlJPTSB1YnVudHU6MTguMDQKKy0KKy1SVU4gYXB0LWdldCB1cGRh dGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gICAg ICAgIGdjYyBsaWJjNi1kZXYgcWVtdS11c2VyIGNhLWNlcnRpZmljYXRlcyBcCistICAgICAgICBn Y2MtbWlwczY0ZWwtbGludXgtZ251YWJpNjQgbGliYzYtZGV2LW1pcHM2NGVsLWNyb3NzIFwKKy0g ICAgICAgIHFlbXUtc3lzdGVtLW1pcHM2NGVsCistCistRU5WIENBUkdPX1RBUkdFVF9NSVBTNjRF TF9VTktOT1dOX0xJTlVYX0dOVUFCSTY0X0xJTktFUj1taXBzNjRlbC1saW51eC1nbnVhYmk2NC1n Y2MgXAorLSAgICBDQVJHT19UQVJHRVRfTUlQUzY0RUxfVU5LTk9XTl9MSU5VWF9HTlVBQkk2NF9S VU5ORVI9InFlbXUtbWlwczY0ZWwgLUwgL3Vzci9taXBzNjRlbC1saW51eC1nbnVhYmk2NCIgXAor LSAgICBPQkpEVU1QPW1pcHM2NGVsLWxpbnV4LWdudWFiaTY0LW9iamR1bXAKK1wgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11c2wvRG9ja2VyZmlsZSBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL21pcHNlbC11bmtub3duLWxpbnV4LW11 c2wvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9taXBzZWwtdW5rbm93bi1saW51eC1tdXNsL0Rv Y2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDI1ICswLDAgQEAKKy1GUk9NIHVidW50dTox OC4xMAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBcCistICAgIGFwdC1nZXQgaW5zdGFsbCAt eSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgIGNhLWNlcnRpZmljYXRlcyBcCistICAg IGdjYyBcCistICAgIGxpYmM2LWRldiBcCistICAgIG1ha2UgXAorLSAgICBxZW11LXVzZXIgXAor LSAgICBxZW11LXN5c3RlbS1taXBzIFwKKy0gICAgYnppcDIgXAorLSAgICBjdXJsIFwKKy0gICAg ZmlsZQorLQorLVJVTiBta2RpciAvdG9vbGNoYWluCistCistIyBOb3RlIHRoYXQgdGhpcyBvcmln aW5hbGx5IGNhbWUgZnJvbToKKy0jIGh0dHBzOi8vZG93bmxvYWRzLm9wZW53cnQub3JnL3NuYXBz aG90cy90cnVuay9tYWx0YS9nZW5lcmljL09wZW5XcnQtVG9vbGNoYWluLW1hbHRhLWxlX2djYy01 LjMuMF9tdXNsLTEuMS4xNS5MaW51eC14ODZfNjQudGFyLmJ6MgorLVJVTiBjdXJsIC1MIGh0dHBz Oi8vY2ktbWlycm9ycy5ydXN0LWxhbmcub3JnL2xpYmMvT3BlbldydC1Ub29sY2hhaW4tbWFsdGEt bGVfZ2NjLTUuMy4wX211c2wtMS4xLjE1LkxpbnV4LXg4Nl82NC50YXIuYnoyIHwgXAorLSAgICAg IHRhciB4amYgLSAtQyAvdG9vbGNoYWluIC0tc3RyaXAtY29tcG9uZW50cz0yCistCistRU5WIFBB VEg9JFBBVEg6L3J1c3QvYmluOi90b29sY2hhaW4vYmluIFwKKy0gICAgQ0NfbWlwc2VsX3Vua25v d25fbGludXhfbXVzbD1taXBzZWwtb3BlbndydC1saW51eC1nY2MgXAorLSAgICBDQVJHT19UQVJH RVRfTUlQU0VMX1VOS05PV05fTElOVVhfTVVTTF9MSU5LRVI9bWlwc2VsLW9wZW53cnQtbGludXgt Z2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX01JUFNFTF9VTktOT1dOX0xJTlVYX01VU0xfUlVOTkVS PSJxZW11LW1pcHNlbCAtTCAvdG9vbGNoYWluIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGMtdW5rbm93bi1saW51eC1nbnUvRG9ja2Vy ZmlsZSBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGMtdW5r bm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9wb3dlcnBjLXVua25vd24t bGludXgtZ251L0RvY2tlcmZpbGUKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzICswLDAgQEAKKy1G Uk9NIHVidW50dToyMi4wNAorLQorLVJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3Rh bGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICAgICAgZ2NjIGxpYmM2LWRldiBx ZW11LXVzZXIgY2EtY2VydGlmaWNhdGVzIFwKKy0gICAgICAgIGdjYy1wb3dlcnBjLWxpbnV4LWdu dSBsaWJjNi1kZXYtcG93ZXJwYy1jcm9zcyBcCistICAgICAgICBxZW11LXN5c3RlbS1wcGMgXAor LSAgICAgICAgbWFrZSBcCistICAgICAgICBmaWxlCistCistRU5WIENBUkdPX1RBUkdFVF9QT1dF UlBDX1VOS05PV05fTElOVVhfR05VX0xJTktFUj1wb3dlcnBjLWxpbnV4LWdudS1nY2MgXAorLSAg ICBDQVJHT19UQVJHRVRfUE9XRVJQQ19VTktOT1dOX0xJTlVYX0dOVV9SVU5ORVI9InFlbXUtcHBj IC1jcHUgVmdlciAtTCAvdXNyL3Bvd2VycGMtbGludXgtZ251IiBcCistICAgIENDPXBvd2VycGMt bGludXgtZ251LWdjYyBcCistICAgIE9CSkRVTVA9cG93ZXJwYy1saW51eC1nbnUtb2JqZHVtcAor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2Vy cGM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9jaS9kb2NrZXIvcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKKysr KyAvZGV2L251bGwKK0BAIC0xLDE3ICswLDAgQEAKKy1GUk9NIHVidW50dToyMi4wNAorLQorLVJV TiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29t bWVuZHMgXAorLSAgICBnY2MgXAorLSAgICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgICBsaWJjNi1k ZXYgXAorLSAgICBnY2MtcG93ZXJwYzY0LWxpbnV4LWdudSBcCistICAgIGxpYmM2LWRldi1wcGM2 NC1jcm9zcyBcCistICAgIHFlbXUtdXNlciAgXAorLSAgICBxZW11LXN5c3RlbS1wcGMgXAorLSAg ICBtYWtlIFwKKy0gICAgZmlsZSAKKy0KKy1FTlYgQ0FSR09fVEFSR0VUX1BPV0VSUEM2NF9VTktO T1dOX0xJTlVYX0dOVV9MSU5LRVI9cG93ZXJwYzY0LWxpbnV4LWdudS1nY2MgXAorLSAgICBDQVJH T19UQVJHRVRfUE9XRVJQQzY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0icWVtdS1wcGM2NCAt TCAvdXNyL3Bvd2VycGM2NC1saW51eC1nbnUiIFwKKy0gICAgQ0M9cG93ZXJwYzY0LWxpbnV4LWdu dS1nY2MgXAorLSAgICBPQkpEVU1QPXBvd2VycGM2NC1saW51eC1nbnUtb2JqZHVtcAorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3Bvd2VycGM2NGxl LXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL2NpL2RvY2tlci9wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3Bvd2VycGM2NGxlLXVua25vd24tbGludXgtZ251L0RvY2tlcmZpbGUKKysr KyAvZGV2L251bGwKK0BAIC0xLDExICswLDAgQEAKKy1GUk9NIHVidW50dToyMi4wNAorLQorLVJV TiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29t bWVuZHMgXAorLSAgICAgICAgZ2NjIGxpYmM2LWRldiBxZW11LXVzZXIgY2EtY2VydGlmaWNhdGVz IFwKKy0gICAgICAgIGdjYy1wb3dlcnBjNjRsZS1saW51eC1nbnUgbGliYzYtZGV2LXBwYzY0ZWwt Y3Jvc3MgXAorLSAgICAgICAgcWVtdS1zeXN0ZW0tcHBjIGZpbGUgbWFrZQorLQorLUVOViBDQVJH T19UQVJHRVRfUE9XRVJQQzY0TEVfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXBvd2VycGM2NGxl LWxpbnV4LWdudS1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfUE9XRVJQQzY0TEVfVU5LTk9XTl9M SU5VWF9HTlVfUlVOTkVSPSJxZW11LXBwYzY0bGUgLUwgL3Vzci9wb3dlcnBjNjRsZS1saW51eC1n bnUiIFwKKy0gICAgQ0M9cG93ZXJwYzY0bGUtbGludXgtZ251LWdjYyBcCistICAgIE9CSkRVTVA9 cG93ZXJwYzY0bGUtbGludXgtZ251LW9iamR1bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJm aWxlIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvczM5MHgtdW5rbm93 bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci9zMzkweC11bmtub3duLWxpbnV4 LWdudS9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwyMCArMCwwIEBACistRlJPTSB1 YnVudHU6MjIuMDQKKy0KKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgXAorLSAgICBhcHQtZ2V0IGlu c3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAorLSAgICBjYS1jZXJ0aWZpY2F0ZXMg XAorLSAgICBjdXJsIFwKKy0gICAgY21ha2UgXAorLSAgICBnY2MgXAorLSAgICBsaWJjNi1kZXYg XAorLSAgICBnKystczM5MHgtbGludXgtZ251IFwKKy0gICAgbGliYzYtZGV2LXMzOTB4LWNyb3Nz IFwKKy0gICAgcWVtdS11c2VyIFwKKy0gICAgbWFrZSBcCistICAgIGZpbGUKKy0KKy1FTlYgQ0FS R09fVEFSR0VUX1MzOTBYX1VOS05PV05fTElOVVhfR05VX0xJTktFUj1zMzkweC1saW51eC1nbnUt Z2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX1MzOTBYX1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0i cWVtdS1zMzkweCAtTCAvdXNyL3MzOTB4LWxpbnV4LWdudSIgXAorLSAgICBDQ19zMzkweF91bmtu b3duX2xpbnV4X2dudT1zMzkweC1saW51eC1nbnUtZ2NjIFwKKy0gICAgQ1hYX3MzOTB4X3Vua25v d25fbGludXhfZ251PXMzOTB4LWxpbnV4LWdudS1nKysgXAorLSAgICBPQkpEVU1QPXMzOTB4LWxp bnV4LWdudS1vYmpkdW1wCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4LWdudS9Eb2NrZXJmaWxlIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvc3BhcmM2NC11bmtub3duLWxpbnV4LWdu dS9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3NwYXJjNjQtdW5rbm93bi1saW51eC1nbnUvRG9j a2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTggKzAsMCBAQAorLUZST00gZGViaWFuOmJv b2t3b3JtCistCistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5v LWluc3RhbGwtcmVjb21tZW5kcyBcCistICAgICAgICBjdXJsIGNhLWNlcnRpZmljYXRlcyBcCist ICAgICAgICBnY2MgbGliYzYtZGV2IFwKKy0gICAgICAgIGdjYy1zcGFyYzY0LWxpbnV4LWdudSBs aWJjNi1kZXYtc3BhcmM2NC1jcm9zcyBcCistICAgICAgICBxZW11LXN5c3RlbS1zcGFyYzY0IG9w ZW5iaW9zLXNwYXJjIHNlYWJpb3MgaXB4ZS1xZW11IFwKKy0gICAgICAgIHA3emlwLWZ1bGwgY3Bp bworLQorLUNPUFkgbGludXgtc3BhcmM2NC5zaCAvCistUlVOIGJhc2ggL2xpbnV4LXNwYXJjNjQu c2gKKy0KKy1DT1BZIHRlc3QtcnVubmVyLWxpbnV4IC8KKy0KKy1FTlYgQ0FSR09fVEFSR0VUX1NQ QVJDNjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPXNwYXJjNjQtbGludXgtZ251LWdjYyBcCist ICAgIENBUkdPX1RBUkdFVF9TUEFSQzY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0iL3Rlc3Qt cnVubmVyLWxpbnV4IHNwYXJjNjQiIFwKKy0gICAgQ0Nfc3BhcmM2NF91bmtub3duX2xpbnV4X2du dT1zcGFyYzY0LWxpbnV4LWdudS1nY2MgXAorLSAgICBQQVRIPSRQQVRIOi9ydXN0L2JpbgorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3RodW1idjdu ZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi1saW51eC1hbmRyb2lkZWFiaS9Eb2NrZXJmaWxl CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvY2kvZG9ja2VyL3RodW1idjduZW9uLWxpbnV4LWFuZHJvaWRlYWJpL0RvY2tlcmZpbGUK KysrKyAvZGV2L251bGwKK0BAIC0xLDQ3ICswLDAgQEAKKy1GUk9NIHVidW50dToxNi4wNAorLQor LVJVTiBkcGtnIC0tYWRkLWFyY2hpdGVjdHVyZSBpMzg2ICYmIFwKKy0gICAgYXB0LWdldCB1cGRh dGUgJiYgXAorLSAgICBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMg XAorLSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGN1cmwgXAorLSAgY2EtY2VydGlmaWNhdGVzIFwK Ky0gIHB5dGhvbiBcCistICB1bnppcCBcCistICBleHBlY3QgXAorLSAgb3Blbmpkay05LWpyZSBc CistICBsaWJzdGRjKys2OmkzODYgXAorLSAgbGlicHVsc2UwIFwKKy0gIGdjYyBcCistICBsaWJj Ni1kZXYKKy0KKy1XT1JLRElSIC9hbmRyb2lkLworLUNPUFkgYW5kcm9pZCogL2FuZHJvaWQvCist CistRU5WIEFORFJPSURfQVJDSD1hcm0KKy1FTlYgUEFUSD0kUEFUSDovYW5kcm9pZC9uZGstJEFO RFJPSURfQVJDSC9iaW46L2FuZHJvaWQvc2RrL3Rvb2xzOi9hbmRyb2lkL3Nkay9wbGF0Zm9ybS10 b29scworLQorLVJVTiBzaCAvYW5kcm9pZC9hbmRyb2lkLWluc3RhbGwtbmRrLnNoICRBTkRST0lE X0FSQ0gKKy1SVU4gc2ggL2FuZHJvaWQvYW5kcm9pZC1pbnN0YWxsLXNkay5zaCAkQU5EUk9JRF9B UkNICistUlVOIG12IC9yb290Ly5hbmRyb2lkIC90bXAKKy1SVU4gY2htb2QgNzc3IC1SIC90bXAv LmFuZHJvaWQKKy1SVU4gY2htb2QgNzU1IC9hbmRyb2lkL3Nkay90b29scy8qIC9hbmRyb2lkL3Nk ay9lbXVsYXRvci9xZW11L2xpbnV4LXg4Nl82NC8qCistCistRU5WIFBBVEg9JFBBVEg6L3J1c3Qv YmluIFwKKy0gICAgQ0FSR09fVEFSR0VUX1RIVU1CVjdORU9OX0xJTlVYX0FORFJPSURFQUJJX0xJ TktFUj1hcm0tbGludXgtYW5kcm9pZGVhYmktZ2NjIFwKKy0gICAgQ0FSR09fVEFSR0VUX1RIVU1C VjdORU9OX0xJTlVYX0FORFJPSURFQUJJX1JVTk5FUj0vdG1wL3J1bnRlc3QgXAorLSAgICBPQkpE VU1QPWFybS1saW51eC1hbmRyb2lkZWFiaS1vYmpkdW1wIFwKKy0gICAgSE9NRT0vdG1wCistCist QUREIHJ1bnRlc3QtYW5kcm9pZC5ycyAvdG1wL3J1bnRlc3QucnMKKy1FTlRSWVBPSU5UIFsgXAor LSAgImJhc2giLCBcCistICAiLWMiLCBcCistICAjIHNldCBTSEVMTCBzbyBhbmRyb2lkIGNhbiBk ZXRlY3QgYSA2NGJpdHMgc3lzdGVtLCBzZWUKKy0gICMgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29t L2EvNDE3ODkxNDQKKy0gICJTSEVMTD0vYmluL2Rhc2ggL2FuZHJvaWQvc2RrL2VtdWxhdG9yL2Vt dWxhdG9yIEBhcm0gLW5vLXdpbmRvdyAmIFwKKy0gICBydXN0YyAvdG1wL3J1bnRlc3QucnMgLW8g L3RtcC9ydW50ZXN0ICYmIFwKKy0gICBleGVjIFwiJEBcIiIsIFwKKy0gICItLSIgXAorLV0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3 bmVvbi11bmtub3duLWxpbnV4LWdudWVhYmloZi9Eb2NrZXJmaWxlIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIvdGh1bWJ2N25lb24tdW5rbm93bi1saW51eC1nbnVlYWJp aGYvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci90aHVtYnY3bmVvbi11bmtub3duLWxpbnV4LWdu dWVhYmloZi9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBACistRlJP TSB1YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15 IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gIGdjYyBcCistICBjYS1jZXJ0aWZpY2F0ZXMg XAorLSAgbGliYzYtZGV2IFwKKy0gIGdjYy1hcm0tbGludXgtZ251ZWFiaWhmIFwKKy0gIGxpYmM2 LWRldi1hcm1oZi1jcm9zcyBcCistICBxZW11LXVzZXIgXAorLSAgbWFrZSBcCistICBmaWxlCist RU5WIENBUkdPX1RBUkdFVF9USFVNQlY3TkVPTl9VTktOT1dOX0xJTlVYX0dOVUVBQklIRl9MSU5L RVI9YXJtLWxpbnV4LWdudWVhYmloZi1nY2MgXAorLSAgICBDQVJHT19UQVJHRVRfVEhVTUJWN05F T05fVU5LTk9XTl9MSU5VWF9HTlVFQUJJSEZfUlVOTkVSPSJxZW11LWFybSAtTCAvdXNyL2FybS1s aW51eC1nbnVlYWJpaGYiIFwKKy0gICAgT0JKRFVNUD1hcm0tbGludXgtZ251ZWFiaWhmLW9iamR1 bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci93 YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2RvY2tlci93YXNtMzItdW5rbm93bi11bmtub3duL0RvY2tlcmZpbGUKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9j aS9kb2NrZXIvd2FzbTMyLXVua25vd24tdW5rbm93bi9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxs CitAQCAtMSwzOSArMCwwIEBACistRlJPTSB1YnVudHU6MjIuMDQKKy0KKy1SVU4gYXB0LWdldCB1 cGRhdGUgLXkgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwK Ky0gIGNhLWNlcnRpZmljYXRlcyBcCistICBjbGFuZyBcCistICBjbWFrZSBcCistICBjdXJsIFwK Ky0gIGdpdCBcCistICBsaWJjNi1kZXYgXAorLSAgbWFrZSBcCistICBuaW5qYS1idWlsZCBcCist ICBweXRob24taXMtcHl0aG9uMyBcCistICB4ei11dGlscworLQorLSMgSW5zdGFsbCBgd2FzbTJ3 YXRgCistUlVOIGdpdCBjbG9uZSAtLXJlY3Vyc2l2ZSBodHRwczovL2dpdGh1Yi5jb20vV2ViQXNz ZW1ibHkvd2FidAorLVJVTiBtYWtlIC1DIHdhYnQgLWokKG5wcm9jKQorLUVOViBQQVRIPSRQQVRI Oi93YWJ0L2JpbgorLQorLSMgSW5zdGFsbCBgd2FzbS1iaW5kZ2VuLXRlc3QtcnVubmVyYAorLVJV TiBjdXJsIC1MIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0d2FzbS93YXNtLWJpbmRnZW4vcmVsZWFz ZXMvZG93bmxvYWQvMC4yLjg3L3dhc20tYmluZGdlbi0wLjIuODcteDg2XzY0LXVua25vd24tbGlu dXgtbXVzbC50YXIuZ3ogXAorLSAgfCB0YXIgeHpmIC0KKy0jIEtlZXAgaW4gc3luYyB3aXRoIHRo ZSB2ZXJzaW9uIG9uIENhcmdvLnRvbWwuCistRU5WIFBBVEg9JFBBVEg6L3dhc20tYmluZGdlbi0w LjIuODcteDg2XzY0LXVua25vd24tbGludXgtbXVzbAorLUVOViBDQVJHT19UQVJHRVRfV0FTTTMy X1VOS05PV05fVU5LTk9XTl9SVU5ORVI9d2FzbS1iaW5kZ2VuLXRlc3QtcnVubmVyCistCistIyBJ bnN0YWxsIGBub2RlYAorLVJVTiBjdXJsIGh0dHBzOi8vbm9kZWpzLm9yZy9kaXN0L3YxNC4xNi4w L25vZGUtdjE0LjE2LjAtbGludXgteDY0LnRhci54eiB8IHRhciB4SmYgLQorLUVOViBQQVRIPSRQ QVRIOi9ub2RlLXYxNC4xNi4wLWxpbnV4LXg2NC9iaW4KKy0KKy0jIFdlIHVzZSBhIHNoaW0gbGlu a2VyIHRoYXQgcmVtb3ZlcyBgLS1zdHJpcC1kZWJ1Z2Agd2hlbiBwYXNzZWQgdG8gTExELiBXaGls ZQorLSMgdGhpcyB0eXBpY2FsbHkgcmVzdWx0cyBpbiBpbnZhbGlkIGRlYnVnIGluZm9ybWF0aW9u IGluIHJlbGVhc2UgbW9kZSBpdCBkb2Vzbid0CistIyByZXN1bHQgaW4gYW4gaW52YWxpZCBuYW1l cyBzZWN0aW9uIHdoaWNoIGlzIHdoYXQgd2UncmUgaW50ZXJlc3RlZCBpbi4KKy1DT1BZIGxsZC1z aGltLnJzIC8KKy1FTlYgQ0FSR09fVEFSR0VUX1dBU00zMl9VTktOT1dOX1VOS05PV05fTElOS0VS PS90bXAvbGxkLXNoaW0KKy0KKy0jIFJ1c3RjIGlzbid0IGF2YWlsYWJsZSB1bnRpbCB0aGlzIGNv bnRhaW5lciBzdGFydHMsIHNvIGRlZmVyIGNvbXBpbGF0aW9uIG9mIHRoZQorLSMgc2hpbS4KKy1F TlRSWVBPSU5UIC9ydXN0L2Jpbi9ydXN0YyAvbGxkLXNoaW0ucnMgLW8gL3RtcC9sbGQtc2hpbSAm JiBleGVjIGJhc2ggIiRAIgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtbGludXgtYW5kcm9pZC9Eb2NrZXJm aWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC1saW51eC1hbmRyb2lkL0RvY2tlcmZpbGUKKysrKyAv ZGV2L251bGwKK0BAIC0xLDMxICswLDAgQEAKKy1GUk9NIHVidW50dToyMC4wNAorLQorLVJVTiBh cHQtZ2V0IHVwZGF0ZSAmJiBcCistICAgIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwt cmVjb21tZW5kcyBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgY3VybCBcCistICBnY2MgXAor LSAgbGliYy1kZXYgXAorLSAgcHl0aG9uIFwKKy0gIHVuemlwIFwKKy0gIGZpbGUgXAorLSAgbWFr ZQorLQorLVdPUktESVIgL2FuZHJvaWQvCistRU5WIEFORFJPSURfQVJDSD14ODZfNjQKKy1DT1BZ IGFuZHJvaWQtaW5zdGFsbC1uZGsuc2ggL2FuZHJvaWQvCistUlVOIHNoIC9hbmRyb2lkL2FuZHJv aWQtaW5zdGFsbC1uZGsuc2gKKy0KKy1FTlYgU1REQVJDSF9BU1NFUlRfSU5TVFJfTElNSVQ9MzAK Ky0KKy0jIFdlIGRvIG5vdCBydW4geDg2XzY0LWxpbnV4LWFuZHJvaWQgdGVzdHMgb24gYW4gYW5k cm9pZCBlbXVsYXRvci4KKy0jIFNlZSBjaS9hbmRyb2lkLXN5c2ltYWdlLnNoIGZvciBpbmZvcm1h dGlvbnMgYWJvdXQgaG93IHRlc3RzIGFyZSBydW4uCistQ09QWSBhbmRyb2lkLXN5c2ltYWdlLnNo IC9hbmRyb2lkLworLVJVTiBiYXNoIC9hbmRyb2lkL2FuZHJvaWQtc3lzaW1hZ2Uuc2ggeDg2XzY0 IHg4Nl82NC0yNF9yMDcuemlwCistCistRU5WIFBBVEg9JFBBVEg6L3J1c3QvYmluOi9hbmRyb2lk L25kay90b29sY2hhaW5zL2xsdm0vcHJlYnVpbHQvbGludXgteDg2XzY0L2JpbiBcCistICAgIENB UkdPX1RBUkdFVF9YODZfNjRfTElOVVhfQU5EUk9JRF9MSU5LRVI9eDg2XzY0LWxpbnV4LWFuZHJv aWQyMS1jbGFuZyBcCistICAgIENDX3g4Nl82NF9saW51eF9hbmRyb2lkPXg4Nl82NC1saW51eC1h bmRyb2lkMjEtY2xhbmcgXAorLSAgICBDWFhfeDg2XzY0X2xpbnV4X2FuZHJvaWQ9eDg2XzY0LWxp bnV4LWFuZHJvaWQyMS1jbGFuZysrIFwKKy0gICAgT0JKRFVNUD1sbHZtLW9iamR1bXAgXAorLSAg ICBIT01FPS90bXAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L2RvY2tlci94ODZfNjQtdW5rbm93bi1saW51eC1nbnUtZW11bGF0ZWQvRG9ja2VyZmlsZSBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxpbnV4 LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvZG9ja2VyL3g4Nl82NC11bmtub3duLWxp bnV4LWdudS1lbXVsYXRlZC9Eb2NrZXJmaWxlCisrKysgL2Rldi9udWxsCitAQCAtMSwxNiArMCww IEBACistRlJPTSB1YnVudHU6MTguMDQKKy1SVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBp bnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKKy0gIGdjYyBcCistICBsaWJjNi1k ZXYgXAorLSAgZmlsZSBcCistICBtYWtlIFwKKy0gIGNhLWNlcnRpZmljYXRlcyBcCistICB3Z2V0 IFwKKy0gIGJ6aXAyIFwKKy0gIGNtYWtlIFwKKy0gIGxpYmNsYW5nLWRldiBcCistICBjbGFuZwor LQorLVJVTiB3Z2V0IGh0dHBzOi8vZ2l0aHViLmNvbS9nbnpsYmcvaW50ZWxfc2RlL3Jhdy9tYXN0 ZXIvc2RlLWV4dGVybmFsLTguMTYuMC0yMDE4LTAxLTMwLWxpbi50YXIuYnoyCistUlVOIHRhciAt eGpmIHNkZS1leHRlcm5hbC04LjE2LjAtMjAxOC0wMS0zMC1saW4udGFyLmJ6MgorLUVOViBDQVJH T19UQVJHRVRfWDg2XzY0X1VOS05PV05fTElOVVhfR05VX1JVTk5FUj0iL3NkZS1leHRlcm5hbC04 LjE2LjAtMjAxOC0wMS0zMC1saW4vc2RlNjQgLS0iCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9jaS9kb2NrZXIveDg2XzY0LXVua25vd24tbGludXgtZ251L0RvY2tl cmZpbGUgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5r bm93bi1saW51eC1nbnUvRG9ja2VyZmlsZQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2RvY2tlci94ODZfNjQtdW5rbm93bi1s aW51eC1nbnUvRG9ja2VyZmlsZQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTAgKzAsMCBAQAorLUZS T00gdWJ1bnR1OjE4LjA0CistUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAt eSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCistICBnY2MgXAorLSAgbGliYzYtZGV2IFwKKy0g IGZpbGUgXAorLSAgbWFrZSBcCistICBjYS1jZXJ0aWZpY2F0ZXMgXAorLSAgY21ha2UgXAorLSAg bGliY2xhbmctZGV2IFwKKy0gIGNsYW5nCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9jaS9kb3guc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2Rv eC5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2RveC5zaAorKysrIC9kZXYvbnVsbAorQEAgLTEsMjcgKzAsMCBAQAorLSMh L2Jpbi9zaAorLQorLXNldCAtZXgKKy0KKy1ybSAtcmYgdGFyZ2V0L2RvYworLW1rZGlyIC1wIHRh cmdldC9kb2MKKy0KKy0jIEJ1aWxkIEFQSSBkb2N1bWVudGF0aW9uCistY2FyZ28gZG9jIC0tZmVh dHVyZXM9aW50b19iaXRzCistCistIyBCdWlsZCBQZXJmb3JtYW5jZSBHdWlkZQorLSMgRklYTUU6 IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9tZEJvb2svaXNzdWVzLzc4MAor LSMgbWRib29rIGJ1aWxkIHBlcmYtZ3VpZGUgLWQgdGFyZ2V0L2RvYy9wZXJmLWd1aWRlCistY2Qg cGVyZi1ndWlkZQorLW1kYm9vayBidWlsZAorLWNkIC0KKy1jcCAtciBwZXJmLWd1aWRlL2Jvb2sg dGFyZ2V0L2RvYy9wZXJmLWd1aWRlCistCistIyBJZiB3ZSdyZSBvbiB0cmF2aXMsIG5vdCBhIFBS LCBhbmQgb24gdGhlIHJpZ2h0IGJyYW5jaCwgcHVibGlzaCEKKy1pZiBbICIkVFJBVklTX1BVTExf UkVRVUVTVCIgPSAiZmFsc2UiIF0gJiYgWyAiJFRSQVZJU19CUkFOQ0giID0gIm1hc3RlciIgXTsg dGhlbgorLSAgcHl0aG9uMyAtdlYKKy0gIHBpcCAtdlYKKy0gIHB5dGhvbjMuOSAtdlYKKy0gIHBp cCBpbnN0YWxsIGdocF9pbXBvcnQgLS11c2VyCistICBnaHAtaW1wb3J0IC1uIHRhcmdldC9kb2MK Ky0gIGdpdCBwdXNoIC1xZiBodHRwczovLyR7R0hfUEFHRVN9QGdpdGh1Yi5jb20vJHtUUkFWSVNf UkVQT19TTFVHfS5naXQgZ2gtcGFnZXMKKy1maQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvY2kvbGludXgtczM5MHguc2ggYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL2NpL2xpbnV4LXMzOTB4LnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtczM5MHguc2gKKysrKyAvZGV2 L251bGwKK0BAIC0xLDE4ICswLDAgQEAKKy1zZXQgLWV4CistCistbWtkaXIgLW0gNzc3IC9xZW11 CistY2QgL3FlbXUKKy0KKy1jdXJsIC1MTyBodHRwczovL2dpdGh1Yi5jb20vcWVtdS9xZW11L3Jh dy9tYXN0ZXIvcGMtYmlvcy9zMzkwLWNjdy5pbWcKKy1jdXJsIC1MTyBodHRwOi8vZnRwLmRlYmlh bi5vcmcvZGViaWFuL2Rpc3RzL3Rlc3RpbmcvbWFpbi9pbnN0YWxsZXItczM5MHgvMjAxNzA4Mjgv aW1hZ2VzL2dlbmVyaWMva2VybmVsLmRlYmlhbgorLWN1cmwgLUxPIGh0dHA6Ly9mdHAuZGViaWFu Lm9yZy9kZWJpYW4vZGlzdHMvdGVzdGluZy9tYWluL2luc3RhbGxlci1zMzkweC8yMDE3MDgyOC9p bWFnZXMvZ2VuZXJpYy9pbml0cmQuZGViaWFuCistCistbXYga2VybmVsLmRlYmlhbiBrZXJuZWwK Ky1tdiBpbml0cmQuZGViaWFuIGluaXRyZC5negorLQorLW1rZGlyIGluaXQKKy1jZCBpbml0Cist Z3VuemlwIC1jIC4uL2luaXRyZC5neiB8IGNwaW8gLWlkCistcm0gLi4vaW5pdHJkLmd6CistY3Ag L3Vzci9zMzkweC1saW51eC1nbnUvbGliL2xpYmdjY19zLnNvLjEgdXNyL2xpYi8KKy1jaG1vZCBh K3cgLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgt c3BhcmM2NC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvbGludXgtc3BhcmM2 NC5zaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL2NpL2xpbnV4LXNwYXJjNjQuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDE3ICsw LDAgQEAKKy1zZXQgLWV4CistCistbWtkaXIgLW0gNzc3IC9xZW11CistY2QgL3FlbXUKKy0KKy1j dXJsIC1MTyBodHRwczovL2NkaW1hZ2UuZGViaWFuLm9yZy9jZGltYWdlL3BvcnRzLzkuMC9zcGFy YzY0L2lzby1jZC9kZWJpYW4tOS4wLXNwYXJjNjQtTkVUSU5TVC0xLmlzbworLTd6IGUgZGViaWFu LTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28gYm9vdC9pbml0cmQuZ3oKKy03eiBlIGRlYmlhbi05 LjAtc3BhcmM2NC1ORVRJTlNULTEuaXNvIGJvb3Qvc3BhcmM2NAorLW12IHNwYXJjNjQga2VybmVs Cistcm0gZGViaWFuLTkuMC1zcGFyYzY0LU5FVElOU1QtMS5pc28KKy0KKy1ta2RpciBpbml0Cist Y2QgaW5pdAorLWd1bnppcCAtYyAuLi9pbml0cmQuZ3ogfCBjcGlvIC1pZAorLXJtIC4uL2luaXRy ZC5negorLWNwIC91c3Ivc3BhcmM2NC1saW51eC1nbnUvbGliL2xpYmdjY19zLnNvLjEgdXNyL2xp Yi8KKy1jaG1vZCBhK3cgLgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvbGxkLXNoaW0ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL2xsZC1z aGltLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvY2kvbGxkLXNoaW0ucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDExICswLDAg QEAKKy11c2Ugc3RkOjpvczo6dW5peDo6cHJlbHVkZTo6KjsKKy11c2Ugc3RkOjpwcm9jZXNzOjpD b21tYW5kOworLXVzZSBzdGQ6OmVudjsKKy0KKy1mbiBtYWluKCkgeworLSAgICBsZXQgYXJncyA9 IGVudjo6YXJncygpCistICAgICAgICAuc2tpcCgxKQorLSAgICAgICAgLmZpbHRlcih8c3wgcyAh PSAiLS1zdHJpcC1kZWJ1ZyIpCistICAgICAgICAuY29sbGVjdDo6PFZlYzxfPj4oKTsKKy0gICAg cGFuaWMhKCJmYWlsZWQgdG8gZXhlYzoge30iLCBDb21tYW5kOjpuZXcoInJ1c3QtbGxkIikuYXJn cygmYXJncykuZXhlYygpKTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0aC5zaCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvbWF4X2xpbmVfd2lkdGguc2gKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9tYXhfbGluZV93aWR0aC5zaAorKysrIC9k ZXYvbnVsbAorQEAgLTEsMTcgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IHNoCistCistc2V0IC14 CistCistZXhwb3J0IHN1Y2Nlc3M9dHJ1ZQorLQorLWZpbmQgLiAtaW5hbWUgJyoucnMnIHwgd2hp bGUgcmVhZCAtciBmaWxlOyBkbworLSAgICByZXN1bHQ9JChncmVwICcuXHs3OVx9JyAiJHtmaWxl fSIgfCBncmVwIC0taW52ZXJ0ICdodHRwJykKKy0gICAgaWYgWyAiJHtyZXN1bHR9IiA9ICIiIF0K Ky0gICAgdGhlbgorLSAgICAgICAgOgorLSAgICBlbHNlCistICAgICAgICBlY2hvICJmaWxlIFwi JHtmaWxlfVwiOiAkcmVzdWx0IgorLSAgICAgICAgZXhpdCAxCistICAgIGZpCistZG9uZQorLQor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tlci5z aCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuLWRvY2tlci5zaAorZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2Np L3J1bi1kb2NrZXIuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDM4ICswLDAgQEAKKy0jIFNtYWxs IHNjcmlwdCB0byBydW4gdGVzdHMgZm9yIGEgdGFyZ2V0IChvciBhbGwgdGFyZ2V0cykgaW5zaWRl IGFsbCB0aGUKKy0jIHJlc3BlY3RpdmUgZG9ja2VyIGltYWdlcy4KKy0KKy1zZXQgLWV4CistCist cnVuKCkgeworLSAgICBlY2hvICJCdWlsZGluZyBkb2NrZXIgY29udGFpbmVyIGZvciBUQVJHRVQ9 JHtUQVJHRVR9IFJVU1RGTEFHUz0ke1JVU1RGTEFHU30iCistICAgIGRvY2tlciBidWlsZCAtdCBw YWNrZWRfc2ltZCAtZiBjaS9kb2NrZXIvJHtUQVJHRVR9L0RvY2tlcmZpbGUgY2kvCistICAgIG1r ZGlyIC1wIHRhcmdldAorLSAgICB0YXJnZXQ9JChlY2hvICIke1RBUkdFVH0iIHwgc2VkICdzLy1l bXVsYXRlZC8vJykKKy0gICAgZWNobyAiUnVubmluZyBkb2NrZXIiCistICAgIGRvY2tlciBydW4g XAorLSAgICAgIC0tdXNlciBgaWQgLXVgOmBpZCAtZ2AgXAorLSAgICAgIC0tcm0gXAorLSAgICAg IC0taW5pdCBcCistICAgICAgLS12b2x1bWUgJEhPTUUvLmNhcmdvOi9jYXJnbyBcCistICAgICAg LS1lbnYgQ0FSR09fSE9NRT0vY2FyZ28gXAorLSAgICAgIC0tdm9sdW1lIGBydXN0YyAtLXByaW50 IHN5c3Jvb3RgOi9ydXN0OnJvIFwKKy0gICAgICAtLWVudiBUQVJHRVQ9JHRhcmdldCBcCistICAg ICAgLS1lbnYgTk9SVU4gXAorLSAgICAgIC0tZW52IE5PVkVSSUZZIFwKKy0gICAgICAtLWVudiBS VVNURkxBR1MgXAorLSAgICAgIC0tdm9sdW1lIGBwd2RgOi9jaGVja291dDpybyBcCistICAgICAg LS12b2x1bWUgYHB3ZGAvdGFyZ2V0Oi9jaGVja291dC90YXJnZXQgXAorLSAgICAgIC0td29ya2Rp ciAvY2hlY2tvdXQgXAorLSAgICAgIC0tcHJpdmlsZWdlZCBcCistICAgICAgcGFja2VkX3NpbWQg XAorLSAgICAgIGJhc2ggXAorLSAgICAgIC1jICdQQVRIPSRQQVRIOi9ydXN0L2JpbiBleGVjIGNp L3J1bi5zaCcKKy19CistCistaWYgWyAteiAiJHtUQVJHRVR9IiBdOyB0aGVuCistICBmb3IgZCBp biBgbHMgY2kvZG9ja2VyL2A7IGRvCistICAgIHJ1biAkZAorLSAgZG9uZQorLWVsc2UKKy0gIHJ1 biAke1RBUkdFVH0KKy1maQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvY2kvcnVuLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW4uc2gKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9jaS9ydW4uc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDk5ICswLDAgQEAKKy0jIS91c3IvYmlu L2VudiBiYXNoCistCistc2V0IC1leAorLQorLTogJHtUQVJHRVQ/IlRoZSBUQVJHRVQgZW52aXJv bm1lbnQgdmFyaWFibGUgbXVzdCBiZSBzZXQuIn0KKy0KKy0jIFRlc3RzIGFyZSBhbGwgc3VwZXIg ZmFzdCBhbnl3YXksIGFuZCB0aGV5IGZhdWx0IG9mdGVuIGVub3VnaCBvbiB0cmF2aXMgdGhhdAor LSMgaGF2aW5nIG9ubHkgb25lIHRocmVhZCBpbmNyZWFzZXMgZGVidWdnYWJpbGl0eSB0byBiZSB3 b3J0aCBpdC4KKy0jZXhwb3J0IFJVU1RfVEVTVF9USFJFQURTPTEKKy0jZXhwb3J0IFJVU1RfQkFD S1RSQUNFPWZ1bGwKKy0jZXhwb3J0IFJVU1RfVEVTVF9OT0NBUFRVUkU9MQorLQorLSMgU29tZSBh cHB2ZXlvciBidWlsZHMgcnVuIG91dC1vZi1tZW1vcnk7IHRoaXMgYXR0ZW1wdHMgdG8gbWl0aWdh dGUgdGhhdDoKKy0jIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRf c2ltZC9pc3N1ZXMvMzkKKy0jIGV4cG9ydCBSVVNURkxBR1M9IiR7UlVTVEZMQUdTfSAtQyBjb2Rl Z2VuLXVuaXRzPTEiCistIyBleHBvcnQgQ0FSR09fQlVJTERfSk9CUz0xCistCistZXhwb3J0IENB UkdPX1NVQkNNRD10ZXN0CistaWYgW1sgIiR7Tk9SVU59IiA9PSAiMSIgXV07IHRoZW4KKy0gICAg ZXhwb3J0IENBUkdPX1NVQkNNRD1idWlsZAorLWZpCistCistaWYgW1sgJHtUQVJHRVR9ID09ICJ4 ODZfNjQtYXBwbGUtaW9zIiBdXSB8fCBbWyAke1RBUkdFVH0gPT0gImkzODYtYXBwbGUtaW9zIiBd XTsgdGhlbgorLSAgICBleHBvcnQgUlVTVEZMQUdTPSIke1JVU1RGTEFHU30gLUNsaW5rLWFyZz0t bWlvcy1zaW11bGF0b3ItdmVyc2lvbi1taW49Ny4wIgorLSAgICBydXN0YyAuL2NpL2RlcGxveV9h bmRfcnVuX29uX2lvc19zaW11bGF0b3IucnMgLW8gJEhPTUUvcnVudGVzdAorLSAgICBleHBvcnQg Q0FSR09fVEFSR0VUX1g4Nl82NF9BUFBMRV9JT1NfUlVOTkVSPSRIT01FL3J1bnRlc3QKKy0gICAg ZXhwb3J0IENBUkdPX1RBUkdFVF9JMzg2X0FQUExFX0lPU19SVU5ORVI9JEhPTUUvcnVudGVzdAor LWZpCistCistIyBUaGUgc291cmNlIGRpcmVjdG9yeSBpcyByZWFkLW9ubHkuIE5lZWQgdG8gY29w eSBpbnRlcm5hbCBjcmF0ZXMgdG8gdGhlIHRhcmdldAorLSMgZGlyZWN0b3J5IGZvciB0aGVpciBD YXJnby5sb2NrIHRvIGJlIHByb3Blcmx5IHdyaXR0ZW4uCistbWtkaXIgdGFyZ2V0IHx8IHRydWUK Ky0KKy1ydXN0YyAtLXZlcnNpb24KKy1jYXJnbyAtLXZlcnNpb24KKy1lY2hvICJUQVJHRVQ9JHtU QVJHRVR9IgorLWVjaG8gIkhPU1Q9JHtIT1NUfSIKKy1lY2hvICJSVVNURkxBR1M9JHtSVVNURkxB R1N9IgorLWVjaG8gIk5PUlVOPSR7Tk9SVU59IgorLWVjaG8gIk5PVkVSSUZZPSR7Tk9WRVJJRll9 IgorLWVjaG8gIkNBUkdPX1NVQkNNRD0ke0NBUkdPX1NVQkNNRH0iCistZWNobyAiQ0FSR09fQlVJ TERfSk9CUz0ke0NBUkdPX0JVSUxEX0pPQlN9IgorLWVjaG8gIkNBUkdPX0lOQ1JFTUVOVEFMPSR7 Q0FSR09fSU5DUkVNRU5UQUx9IgorLWVjaG8gIlJVU1RfVEVTVF9USFJFQURTPSR7UlVTVF9URVNU X1RIUkVBRFN9IgorLWVjaG8gIlJVU1RfQkFDS1RSQUNFPSR7UlVTVF9CQUNLVFJBQ0V9IgorLWVj aG8gIlJVU1RfVEVTVF9OT0NBUFRVUkU9JHtSVVNUX1RFU1RfTk9DQVBUVVJFfSIKKy0KKy1jYXJn b190ZXN0KCkgeworLSAgICBjbWQ9ImNhcmdvICR7Q0FSR09fU1VCQ01EfSAtLXZlcmJvc2UgLS10 YXJnZXQ9JHtUQVJHRVR9ICR7QH0iCistICAgIGlmIFsgIiR7Tk9SVU59IiAhPSAiMSIgXQorLSAg ICB0aGVuCistICAgICAgICBpZiBbICIkVEFSR0VUIiAhPSAid2FzbTMyLXVua25vd24tdW5rbm93 biIgXQorLSAgICAgICAgdGhlbgorLSAgICAgICAgICAgIGNtZD0iJGNtZCAtLSAtLXF1aWV0Igor LSAgICAgICAgZmkKKy0gICAgZmkKKy0gICAgbWtkaXIgdGFyZ2V0IHx8IHRydWUKKy0gICAgJHtj bWR9IDI+JjEgfCB0ZWUgPiB0YXJnZXQvb3V0cHV0CistICAgIGlmIFtbICR7UElQRVNUQVRVU1sw XX0gIT0gMCBdXTsgdGhlbgorLSAgICAgICAgY2F0IHRhcmdldC9vdXRwdXQKKy0gICAgICAgIHJl dHVybiAxCistICAgIGZpCistfQorLQorLWNhcmdvX3Rlc3RfaW1wbCgpIHsKKy0gICAgT1JJR0lO QUxfUlVTVEZMQUdTPSR7UlVTVEZMQUdTfQorLSAgICBSVVNURkxBR1M9IiR7T1JJR0lOQUxfUlVT VEZMQUdTfSAtLWNmZyB0ZXN0X3YxNiAgLS1jZmcgdGVzdF92MzIgLS1jZmcgdGVzdF92NjQiIGNh cmdvX3Rlc3QgJHtAfQorLSAgICBSVVNURkxBR1M9IiR7T1JJR0lOQUxfUlVTVEZMQUdTfSAtLWNm ZyB0ZXN0X3YxMjggLS1jZmcgdGVzdF92MjU2IiBjYXJnb190ZXN0ICR7QH0KKy0gICAgUlVTVEZM QUdTPSIke09SSUdJTkFMX1JVU1RGTEFHU30gLS1jZmcgdGVzdF92NTEyIiBjYXJnb190ZXN0ICR7 QH0KKy0gICAgUlVTVEZMQUdTPSR7T1JJR0lOQUxfUlVTVEZMQUdTfQorLX0KKy0KKy0jIERlYnVn IHJ1bjoKKy1pZiBbWyAiJHtUQVJHRVR9IiAhPSAid2FzbTMyLXVua25vd24tdW5rbm93biIgXV07 IHRoZW4KKy0gICAjIFJ1biB3YXNtMzItdW5rbm93bi11bmtub3duIGluIHJlbGVhc2UgbW9kZSBv bmx5CistICAgY2FyZ29fdGVzdF9pbXBsCistZmkKKy0KKy1pZiBbWyAiJHtUQVJHRVR9IiA9PSAi eDg2XzY0LXVua25vd24tbGludXgtZ251IiBdXSB8fCBbWyAiJHtUQVJHRVR9IiA9PSAieDg2XzY0 LXBjLXdpbmRvd3MtbXN2YyIgXV07IHRoZW4KKy0gICAgIyB1c2Ugc2xlZWYgb24gbGludXggYW5k IHdpbmRvd3MgeDg2XzY0IGJ1aWxkcworLSAgICAjIEZJWE1FOiBVc2UgYGNvcmVfYXJjaCxzbGVl Zi1zeXNgIGZlYXR1cmVzIG9uY2UgdGhleSB3b3JrcyBhZ2FpbgorLSAgICBjYXJnb190ZXN0X2lt cGwgLS1yZWxlYXNlIC0tZmVhdHVyZXM9aW50b19iaXRzCistZWxzZQorLSAgICAjIEZJWE1FOiBV c2UgYGNvcmVfYXJjaGAgZmVhdHVyZSBvbmNlIGl0IHdvcmtzIGFnYWluCistICAgIGNhcmdvX3Rl c3RfaW1wbCAtLXJlbGVhc2UgLS1mZWF0dXJlcz1pbnRvX2JpdHMKKy1maQorLQorLSMgVmVyaWZ5 IGNvZGUgZ2VuZXJhdGlvbgorLWlmIFtbICIke05PVkVSSUZZfSIgIT0gIjEiIF1dOyB0aGVuCist ICAgIGNwIC1yIHZlcmlmeS92ZXJpZnkgdGFyZ2V0L3ZlcmlmeQorLSAgICBleHBvcnQgU1REU0lN RF9BU1NFUlRfSU5TVFJfTElNSVQ9MzAKKy0gICAgaWYgW1sgIiR7VEFSR0VUfSIgPT0gImk1ODYt dW5rbm93bi1saW51eC1nbnUiIF1dOyB0aGVuCistICAgICAgICBleHBvcnQgU1REU0lNRF9BU1NF UlRfSU5TVFJfTElNSVQ9NTAKKy0gICAgZmkKKy0gICAgY2FyZ29fdGVzdCAtLXJlbGVhc2UgLS1t YW5pZmVzdC1wYXRoPXRhcmdldC92ZXJpZnkvQ2FyZ28udG9tbAorLWZpCistCistIyBGSVhNRTog RmlndXJlIG91dCB3aGljaCBleGFtcGxlcyB0YWtlIHRvbyBsb25nIHRvIHJ1biBhbmQgaWdub3Jl IG9yIGFkanVzdCB0aG9zZQorLSMuIGNpL3J1bl9leGFtcGxlcy5zaAorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVuX2V4YW1wbGVzLnNoIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBsZXMuc2gKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9ydW5fZXhhbXBs ZXMuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDUxICswLDAgQEAKKy0jIFJ1bnMgYWxsIGV4YW1w bGVzLgorLQorLSMgRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvNTUKKy0jIEFsbCBleGFtcGxlcyBmYWlsIHRvIGJ1aWxkIGZvciBg YXJtdjctYXBwbGUtaW9zYC4KKy1pZiBbWyAke1RBUkdFVH0gPT0gImFybXY3LWFwcGxlLWlvcyIg XV07IHRoZW4KKy0gICAgZXhpdCAwCistZmkKKy0KKy0jIEZJWE1FOiB0cmF2aXMgZXhjZWVkcyA1 MCBtaW51dGVzIG9uIHRoZXNlIHRhcmdldHMKKy0jIFNraXBwaW5nIHRoZSBleGFtcGxlcyBpcyBh biBhdHRlbXB0IGF0IHByZXZlbnRpbmcgdHJhdmlzIGZyb20gdGltaW5nLW91dAorLWlmIFtbICR7 VEFSR0VUfSA9PSAiYXJtLWxpbnV4LWFuZHJvaWRhYmkiIF1dIHx8IFtbICR7VEFSR0VUfSA9PSAi YWFyY2g2NC1saW51eC1hbmRyb2lkYWJpIiBdXSBcCistICAgIHx8IFtbICR7VEFSR0VUfSA9PSAi c3BhcmM2NC11bmtub3duLWxpbnV4LWdudSIgXV07IHRoZW4KKy0gICAgZXhpdCAwCistZmkKKy0K Ky1pZiBbWyAke1RBUkdFVH0gPT0gIndhc20zMi11bmtub3duLXVua25vd24iIF1dOyB0aGVuCist ICAgIGV4aXQgMAorLWZpCistCistY3AgLXIgZXhhbXBsZXMvYW9iZW5jaCB0YXJnZXQvYW9iZW5j aAorLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9hb2JlbmNoL0NhcmdvLnRvbWwg LS1yZWxlYXNlIC0tbm8tZGVmYXVsdC1mZWF0dXJlcworLWNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1w YXRoPXRhcmdldC9hb2JlbmNoL0NhcmdvLnRvbWwgLS1yZWxlYXNlIC0tZmVhdHVyZXM9MjU2Yml0 CistCistY3AgLXIgZXhhbXBsZXMvZG90X3Byb2R1Y3QgdGFyZ2V0L2RvdF9wcm9kdWN0CistY2Fy Z29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2RvdF9wcm9kdWN0L0NhcmdvLnRvbWwgLS1y ZWxlYXNlCistCistY3AgLXIgZXhhbXBsZXMvZmFubmt1Y2hfcmVkdXggdGFyZ2V0L2Zhbm5rdWNo X3JlZHV4CistY2FyZ29fdGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L2Zhbm5rdWNoX3JlZHV4 L0NhcmdvLnRvbWwgLS1yZWxlYXNlCistCistIyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy81NgorLWlmIFtbICR7VEFSR0VUfSAh PSAiaTU4Ni11bmtub3duLWxpbnV4LWdudSIgXV07IHRoZW4KKy0gICAgY3AgLXIgZXhhbXBsZXMv bWFuZGVsYnJvdCB0YXJnZXQvbWFuZGVsYnJvdAorLSAgICBjYXJnb190ZXN0IC0tbWFuaWZlc3Qt cGF0aD10YXJnZXQvbWFuZGVsYnJvdC9DYXJnby50b21sIC0tcmVsZWFzZQorLWZpCistCistY3Ag LXIgZXhhbXBsZXMvbWF0cml4X2ludmVyc2UgdGFyZ2V0L21hdHJpeF9pbnZlcnNlCistY2FyZ29f dGVzdCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L21hdHJpeF9pbnZlcnNlL0NhcmdvLnRvbWwgLS1y ZWxlYXNlCistCistY3AgLXIgZXhhbXBsZXMvbmJvZHkgdGFyZ2V0L25ib2R5CistY2FyZ29fdGVz dCAtLW1hbmlmZXN0LXBhdGg9dGFyZ2V0L25ib2R5L0NhcmdvLnRvbWwgLS1yZWxlYXNlCistCist Y3AgLXIgZXhhbXBsZXMvc3BlY3RyYWxfbm9ybSB0YXJnZXQvc3BlY3RyYWxfbm9ybQorLWNhcmdv X3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9zcGVjdHJhbF9ub3JtL0NhcmdvLnRvbWwgLS1y ZWxlYXNlCistCistaWYgW1sgJHtUQVJHRVR9ICE9ICJpNTg2LXVua25vd24tbGludXgtZ251IiBd XTsgdGhlbgorLSAgICBjcCAtciBleGFtcGxlcy9zdGVuY2lsIHRhcmdldC9zdGVuY2lsCistICAg IGNhcmdvX3Rlc3QgLS1tYW5pZmVzdC1wYXRoPXRhcmdldC9zdGVuY2lsL0NhcmdvLnRvbWwgLS1y ZWxlYXNlCistZmkKKy0KKy1jcCAtciBleGFtcGxlcy90cmlhbmdsZV94Zm9ybSB0YXJnZXQvdHJp YW5nbGVfeGZvcm0KKy1jYXJnb190ZXN0IC0tbWFuaWZlc3QtcGF0aD10YXJnZXQvdHJpYW5nbGVf eGZvcm0vQ2FyZ28udG9tbCAtLXJlbGVhc2UKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL2NpL3J1bnRlc3QtYW5kcm9pZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvY2kvcnVudGVzdC1hbmRyb2lkLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvY2kvcnVudGVzdC1hbmRyb2lkLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0NSArMCwwIEBACistdXNlIHN0ZDo6ZW52OworLXVzZSBz dGQ6OnByb2Nlc3M6OkNvbW1hbmQ7CistdXNlIHN0ZDo6cGF0aDo6e1BhdGgsIFBhdGhCdWZ9Owor LQorLWZuIG1haW4oKSB7CistICAgIGxldCBhcmdzID0gZW52OjphcmdzX29zKCkKKy0gICAgICAg IC5za2lwKDEpCistICAgICAgICAuZmlsdGVyKHxhcmd8IGFyZyAhPSAiLS1xdWlldCIpCistICAg ICAgICAuY29sbGVjdDo6PFZlYzxfPj4oKTsKKy0gICAgYXNzZXJ0X2VxIShhcmdzLmxlbigpLCAx KTsKKy0gICAgbGV0IHRlc3QgPSBQYXRoQnVmOjpmcm9tKCZhcmdzWzBdKTsKKy0gICAgbGV0IGRz dCA9IFBhdGg6Om5ldygiL2RhdGEvbG9jYWwvdG1wIikuam9pbih0ZXN0LmZpbGVfbmFtZSgpLnVu d3JhcCgpKTsKKy0KKy0gICAgbGV0IHN0YXR1cyA9IENvbW1hbmQ6Om5ldygiYWRiIikKKy0gICAg ICAgIC5hcmcoIndhaXQtZm9yLWRldmljZSIpCistICAgICAgICAuc3RhdHVzKCkKKy0gICAgICAg IC5leHBlY3QoImZhaWxlZCB0byBydW46IGFkYiB3YWl0LWZvci1kZXZpY2UiKTsKKy0gICAgYXNz ZXJ0IShzdGF0dXMuc3VjY2VzcygpKTsKKy0KKy0gICAgbGV0IHN0YXR1cyA9IENvbW1hbmQ6Om5l dygiYWRiIikKKy0gICAgICAgIC5hcmcoInB1c2giKQorLSAgICAgICAgLmFyZygmdGVzdCkKKy0g ICAgICAgIC5hcmcoJmRzdCkKKy0gICAgICAgIC5zdGF0dXMoKQorLSAgICAgICAgLmV4cGVjdCgi ZmFpbGVkIHRvIHJ1bjogYWRiIHB1c2hyIik7CistICAgIGFzc2VydCEoc3RhdHVzLnN1Y2Nlc3Mo KSk7CistCistICAgIGxldCBvdXRwdXQgPSBDb21tYW5kOjpuZXcoImFkYiIpCistICAgICAgICAu YXJnKCJzaGVsbCIpCistICAgICAgICAuYXJnKCZkc3QpCistICAgICAgICAub3V0cHV0KCkKKy0g ICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBydW46IGFkYiBzaGVsbCIpOworLSAgICBhc3NlcnQh KHN0YXR1cy5zdWNjZXNzKCkpOworLQorLSAgICBwcmludGxuISgic3RhdHVzOiB7fVxuc3Rkb3V0 IC0tLVxue31cbnN0ZGVyciAtLS1cbnt9IiwKKy0gICAgICAgICAgICAgb3V0cHV0LnN0YXR1cywK Ky0gICAgICAgICAgICAgU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRvdXQpLAor LSAgICAgICAgICAgICBTdHJpbmc6OmZyb21fdXRmOF9sb3NzeSgmb3V0cHV0LnN0ZGVycikpOwor LQorLSAgICBsZXQgc3Rkb3V0ID0gU3RyaW5nOjpmcm9tX3V0ZjhfbG9zc3koJm91dHB1dC5zdGRv dXQpOworLSAgICBsZXQgbXV0IGxpbmVzID0gc3Rkb3V0LmxpbmVzKCkuZmlsdGVyKHxsfCBsLnN0 YXJ0c193aXRoKCJ0ZXN0IHJlc3VsdCIpKTsKKy0gICAgaWYgIWxpbmVzLmFsbCh8bHwgbC5jb250 YWlucygidGVzdCByZXN1bHQ6IG9rIikgJiYgbC5jb250YWlucygiMCBmYWlsZWQiKSkgeworLSAg ICAgICAgcGFuaWMhKCJmYWlsZWQgdG8gZmluZCBzdWNjZXNzZnVsIHRlc3QgcnVuIik7CistICAg IH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9zZXR1 cF9iZW5jaG1hcmtzLnNoIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jaS9zZXR1cF9i ZW5jaG1hcmtzLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY2kvc2V0dXBfYmVuY2htYXJrcy5zaAorKysrIC9kZXYvbnVsbAor QEAgLTEsNyArMCwwIEBACistIyEvdXNyL2Jpbi9lbnYgYmFzaAorLQorLXNldCAtZXgKKy0KKy0j IEdldCBsYXRlc3QgSVNQQyBiaW5hcnkgZm9yIHRoZSB0YXJnZXQgYW5kIHB1dCBpdCBpbiB0aGUg cGF0aAorLWdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5jb20vZ256bGJnL2lzcGMtYmluYXJpZXMK Ky1jcCBpc3BjLWJpbmFyaWVzL2lzcGMtJHtUQVJHRVR9IGlzcGMKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3Rlc3QtcnVubmVyLWxpbnV4IGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9jaS90ZXN0LXJ1bm5lci1saW51eAorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL2NpL3Rlc3QtcnVu bmVyLWxpbnV4CisrKysgL2Rldi9udWxsCitAQCAtMSwyNCArMCwwIEBACistIyEvYmluL3NoCist Cistc2V0IC1lCistCistYXJjaD0kMQorLXByb2c9JDIKKy0KKy1jZCAvcWVtdS9pbml0CistY3Ag LWYgJDIgcHJvZworLWZpbmQgLiB8IGNwaW8gLS1jcmVhdGUgLS1mb3JtYXQ9J25ld2MnIC0tcXVp ZXQgfCBnemlwID4gLi4vaW5pdHJkLmd6CistY2QgLi4KKy0KKy10aW1lb3V0IDMwcyBxZW11LXN5 c3RlbS0kYXJjaCBcCistICAgICAgICAtbSAxMDI0IFwKKy0gICAgICAgIC1ub2dyYXBoaWMgXAor LSAgICAgICAgLWtlcm5lbCBrZXJuZWwgXAorLSAgICAgICAgLWluaXRyZCBpbml0cmQuZ3ogXAor LSAgICAgICAgLWFwcGVuZCBpbml0PS9wcm9nID4gb3V0cHV0IHx8IHRydWUKKy0KKy0jIHJlbW92 ZSBrZXJuZWwgbWVzc2FnZXMKKy10ciAtZCAnXHInIDwgb3V0cHV0IHwgZWdyZXAgLXYgJ15cWycK Ky0KKy0jIGlmIHRoZSBvdXRwdXQgY29udGFpbnMgYSBmYWlsdXJlLCByZXR1cm4gZXJyb3IKKy0h IGdyZXAgRkFJTEVEIG91dHB1dCA+IC9kZXYvbnVsbAorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvY29udHJpYnV0aW5nLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9jb250cmlidXRpbmcubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9jb250cmlidXRpbmcubWQKKysrKyAvZGV2L251 bGwKK0BAIC0xLDY3ICswLDAgQEAKKy0jIENvbnRyaWJ1dGluZyB0byBgcGFja2VkX3NpbWRgCist CistV2VsY29tZSEgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZG9jdW1lbnQsIGl0IG1lYW5zIHlv dSBhcmUgaW50ZXJlc3RlZCBpbiBjb250cmlidXRpbmcKKy10byB0aGUgYHBhY2tlZF9zaW1kYCBj cmF0ZS4KKy0KKy0jIyBSZXBvcnRpbmcgaXNzdWVzCistCistQWxsIGlzc3VlcyB3aXRoIHRoaXMg Y3JhdGUgYXJlIHRyYWNrZWQgdXNpbmcgR2l0SHViJ3MgW0lzc3VlIFRyYWNrZXJdLgorLQorLVlv dSBjYW4gdXNlIGlzc3VlcyB0byBicmluZyBidWdzIHRvIHRoZSBhdHRlbnRpb24gb2YgdGhlIG1h aW50YWluZXJzLCB0byBkaXNjdXNzCistY2VydGFpbiBwcm9ibGVtcyBlbmNvdW50ZXJlZCB3aXRo IHRoZSBjcmF0ZSwgb3IgdG8gcmVxdWVzdCBuZXcgZmVhdHVyZXMgKGFsdGhvdWdoCistZmVhdHVy ZSByZXF1ZXN0cyBzaG91bGQgYmUgbGltaXRlZCB0byB0aGluZ3MgbWVudGlvbmVkIGluIHRoZSBb UkZDXSkuCistCistT25lIHRoaW5nIHRvIGtlZXAgaW4gbWluZCBpcyB0byBhbHdheXMgdXNlIHRo ZSAqKmxhdGVzdCoqIG5pZ2h0bHkgdG9vbGNoYWluIHdoZW4KKy13b3JraW5nIG9uIHRoaXMgY3Jh dGUuIER1ZSB0byB0aGUgbmF0dXJlIG9mIHRoaXMgcHJvamVjdCwgd2UgdXNlIGEgbG90IG9mIHVu c3RhYmxlCistZmVhdHVyZXMsIG1lYW5pbmcgYnJlYWthZ2UgaGFwcGVucyBvZnRlbi4KKy0KKy1b SXNzdWUgVHJhY2tlcl06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNr ZWRfc2ltZC9pc3N1ZXMKKy1bUkZDXTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNz L3B1bGwvMjM2NgorLQorLSMjIyBMTFZNIGlzc3VlcworLQorLVRoZSBSdXN0IGNvbXBpbGVyIHJl bGllcyBvbiBbTExWTV0oaHR0cHM6Ly9sbHZtLm9yZy8pIGZvciBtYWNoaW5lIGNvZGUgZ2VuZXJh dGlvbiwKKy1hbmQgcXVpdGUgYSBmZXcgTExWTSBidWdzIGhhdmUgYmVlbiBkaXNjb3ZlcmVkIGR1 cmluZyB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBwcm9qZWN0LgorLQorLUlmIHlvdSBlbmNvdW50 ZXIgaXNzdWVzIHdpdGggaW5jb3JyZWN0L3N1Ym9wdGltYWwgY29kZWdlbiwgd2hpY2ggeW91IGRv IG5vdCBlbmNvdW50ZXIKKy13aGVuIHVzaW5nIHRoZSBbU0lNRCB2ZW5kb3IgaW50cmluc2ljc10o aHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9uaWdodGx5L3N0ZC9hcmNoLyksCistaXQgaXMgbGlr ZWx5IHRoZSBpc3N1ZSBpcyB3aXRoIExMVk0sIG9yIHRoaXMgY3JhdGUncyBpbnRlcmFjdGlvbiB3 aXRoIGl0LgorLQorLVlvdSBzaG91bGQgZmlyc3Qgb3BlbiBhbiBpc3N1ZSAqKmluIHRoaXMgcmVw byoqIHRvIGhlbHAgdXMgdHJhY2sgdGhlIHByb2JsZW0sIGFuZCB3ZQorLXdpbGwgaGVscCBkZXRl cm1pbmUgd2hhdCBpcyB0aGUgZXhhY3QgY2F1c2Ugb2YgdGhlIHByb2JsZW0uCistSWYgTExWTSBp cyBpbmRlZWQgdGhlIGNhdXNlLCB0aGUgaXNzdWUgd2lsbCBiZSByZXBvcnRlZCB1cHN0cmVhbSB0 byB0aGUKKy1bTExWTSBidWd0cmFja2VyXShodHRwczovL2J1Z3MubGx2bS5vcmcvKS4KKy0KKy0j IyBTdWJtaXR0aW5nIFB1bGwgUmVxdWVzdHMKKy0KKy1OZXcgY29kZSBpcyBzdWJtaXR0ZWQgdG8g dGhlIGNyYXRlIHVzaW5nIEdpdEh1YidzIFtwdWxsIHJlcXVlc3RdIG1lY2hhbmlzbS4KKy1Zb3Ug c2hvdWxkIGZpcnN0IGZvcmsgdGhpcyByZXBvc2l0b3J5LCBtYWtlIHlvdXIgY2hhbmdlcyAocHJl ZmVyYWJseSBpbiBhIG5ldworLWJyYW5jaCksIHRoZW4gdXNlIEdpdEh1YidzIHdlYiBVSSB0byBj cmVhdGUgYSBuZXcgUFIuCistCistW3B1bGwgcmVxdWVzdF06IGh0dHBzOi8vaGVscC5naXRodWIu Y29tL2FydGljbGVzL2Fib3V0LXB1bGwtcmVxdWVzdHMvCistCistIyMjIEV4YW1wbGVzCistCist VGhlIGBleGFtcGxlc2AgZGlyZWN0b3J5IGNvbnRhaW5zIGNvZGUgc2hvd2Nhc2luZyBTSU1EIGNv ZGUgd3JpdHRlbiB3aXRoIHRoaXMgY3JhdGUsCistdXN1YWxseSBpbiBjb21wYXJpc29uIHRvIHNj YWxhciBvciBJU1BDIGNvZGUuIElmIHlvdSBoYXZlIGEgcHJvamVjdCAvIGlkZWEgd2hpY2gKKy11 c2VzIFNJTUQsIHdlJ2QgbG92ZSB0byBhZGQgaXQgdG8gdGhlIGV4YW1wbGVzIGxpc3QuCistCist RXZlcnkgZXhhbXBsZSBzaG91bGQgaW5jbHVkZSBhIHNtYWxsIGBSRUFETUVgLCBkZXNjcmliaW5n IHRoZSBleGFtcGxlIGNvZGUncyBwdXJwb3NlLgorLUlmIHlvdXIgZXhhbXBsZSBjb3VsZCBwb3Rl bnRpYWxseSB3b3JrIGFzIGEgYmVuY2htYXJrLCB0aGVuIGFkZCBhIGBiZW5jaG1hcmsuc2hgCist c2NyaXB0IHRvIGFsbG93IHJ1bm5pbmcgdGhlIGV4YW1wbGUgYmVuY2htYXJrIGNvZGUgaW4gQ0ku IFNlZSBhbiBleGlzdGluZyBleGFtcGxlJ3MKKy1bYGJlbmNobWFyay5zaGBdKGV4YW1wbGVzL2Fv YmVuY2gvYmVuY2htYXJrLnNoKSBmb3IgYSBzYW1wbGUuCistCistRG9uJ3QgZm9yZ2V0IHRvIHVw ZGF0ZSB0aGUgY3JhdGUncyB0b3AtbGV2ZWwgYFJFQURNRWAgd2l0aCBhIGxpbmsgdG8geW91ciBl eGFtcGxlLgorLQorLSMjIyBQZXJmIGd1aWRlCistCistVGhlIG9iamVjdGl2ZSBvZiB0aGUgW3Bl cmZvcm1hbmNlIGd1aWRlXVtwZXJmLWd1aWRlXSBpcyB0byBiZSBhIGNvbXByZWhlbnNpdmUKKy1y ZXNvdXJjZSBkZXRhaWxpbmcgdGhlIHByb2Nlc3Mgb2Ygb3B0aW1pemluZyBSdXN0IGNvZGUgd2l0 aCBTSU1EIHN1cHBvcnQuCistCistSWYgeW91IGJlbGlldmUgYSBjZXJ0YWluIHNlY3Rpb24gY291 bGQgYmUgcmV3b3JkZWQsIG9yIGlmIHlvdSBoYXZlIGFueSB0aXBzICYgdHJpY2tzCistcmVsYXRl ZCB0byBTSU1EIHdoaWNoIHlvdSdkIGxpa2UgdG8gc2hhcmUsIHBsZWFzZSBvcGVuIGEgUFIuCist CistW21kQm9va10gaXMgdXNlZCB0byBtYW5hZ2UgdGhlIGZvcm1hdHRpbmcgb2YgdGhlIGd1aWRl IGFzIGEgYm9vay4KKy0KKy1bcGVyZi1ndWlkZV06IGh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnku Z2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvCistW21kQm9va106IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9tZEJvb2sKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvLmdpdGlnbm9yZSBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8uZ2l0aWdub3JlCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8uZ2l0 aWdub3JlCisrKysgL2Rldi9udWxsCitAQCAtMSwxICswLDAgQEAKKy0vYm9vaworZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9ib29rLnRvbWwgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvYm9vay50b21sCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9ib29rLnRvbWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyICswLDAgQEAKKy1bYm9v a10KKy1hdXRob3JzID0gWyJHb256YWxvIEJyaXRvIEdhZGVzY2hpIiwgIkdhYnJpZWwgTWFqZXJp Il0KKy1tdWx0aWxpbmd1YWwgPSBmYWxzZQorLXNyYyA9ICJzcmMiCistdGl0bGUgPSAiUnVzdCBT SU1EIFBlcmZvcm1hbmNlIEd1aWRlIgorLWRlc2NyaXB0aW9uID0gIlRoaXMgYm9vayBkZXNjcmli ZXMgaG93IHRvIHdyaXRlIHBlcmZvcm1hbnQgU0lNRCBjb2RlIGluIFJ1c3QuIgorLQorLVtidWls ZF0KKy1jcmVhdGUtbWlzc2luZyA9IGZhbHNlCistCistW291dHB1dC5odG1sXQorLWFkZGl0aW9u YWwtY3NzID0gWyIuL3NyYy9hc2NpaS5jc3MiXQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvU1VNTUFSWS5tZAorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL1NVTU1BUlkubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDIxICswLDAgQEAKKy0jIFN1bW1h cnkKKy0KKy1bSW50cm9kdWN0aW9uXSguL2ludHJvZHVjdGlvbi5tZCkKKy0KKy0tIFtGbG9hdGlu Zy1wb2ludCBNYXRoXSguL2Zsb2F0LW1hdGgvZnAubWQpCistICAtIFtTaG9ydC12ZWN0b3IgTWF0 aCBMaWJyYXJ5XSguL2Zsb2F0LW1hdGgvc3ZtbC5tZCkKKy0gIC0gW0FwcHJveGltYXRlIGZ1bmN0 aW9uc10oLi9mbG9hdC1tYXRoL2FwcHJveC5tZCkKKy0gIC0gW0Z1c2VkIG11bHRpcGx5LWFjY3Vt dWxhdGVdKC4vZmxvYXQtbWF0aC9mbWEubWQpCistCistLSBbVGFyZ2V0IGZlYXR1cmVzXSguL3Rh cmdldC1mZWF0dXJlL2ZlYXR1cmVzLm1kKQorLSAgLSBbVXNpbmcgYFJVU1RGTEFHU2BdKC4vdGFy Z2V0LWZlYXR1cmUvcnVzdGZsYWdzLm1kKQorLSAgLSBbVXNpbmcgdGhlIGB0YXJnZXRfZmVhdHVy ZWAgYXR0cmlidXRlXSguL3RhcmdldC1mZWF0dXJlL2F0dHJpYnV0ZS5tZCkKKy0gIC0gW0ludGVy YWN0aW9uIHdpdGggaW5saW5pbmddKC4vdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQpCistICAt IFtEZXRlY3RpbmcgZmVhdHVyZXMgYXQgcnVudGltZV0oLi90YXJnZXQtZmVhdHVyZS9ydW50aW1l Lm1kKQorLQorLS0gW0JvdW5kcyBjaGVja2luZ10oLi9ib3VuZF9jaGVja3MubWQpCistLSBbVmVy dGljYWwgYW5kIGhvcml6b250YWwgb3BlcmF0aW9uc10oLi92ZXJ0LWhvci1vcHMubWQpCistCist LSBbUGVyZm9ybWFuY2UgcHJvZmlsaW5nXSguL3Byb2YvcHJvZmlsaW5nLm1kKQorLSAgLSBbUHJv ZmlsaW5nIG9uIExpbnV4XSguL3Byb2YvbGludXgubWQpCistICAtIFtVc2luZyBtYWNoaW5lIGNv ZGUgYW5hbHl6ZXJzXSguL3Byb2YvbWNhLm1kKQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvYXNjaWkuY3NzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9hc2NpaS5jc3MKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9hc2NpaS5jc3MKKysrKyAvZGV2L251bGwKK0BAIC0xLDQgKzAsMCBAQAorLWNvZGUgeworLSAg ICAvKiAiU291cmNlIENvZGUgUHJvIiBicmVha3MgQVNDSUkgYXJ0ICovCistICAgIGZvbnQtZmFt aWx5OiBDb25zb2xhcywgIlVidW50dSBNb25vIiwgTWVubG8sICJEZWphVnUgU2FucyBNb25vIiwg bW9ub3NwYWNlOworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3BlcmYtZ3VpZGUvc3JjL2JvdW5kX2NoZWNrcy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvcGVyZi1ndWlkZS9zcmMvYm91bmRfY2hlY2tzLm1kCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv Ym91bmRfY2hlY2tzLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwyMiArMCwwIEBACistIyBCb3Vu ZHMgY2hlY2tpbmcKKy0KKy1SZWFkaW5nIGFuZCB3cml0aW5nIHBhY2tlZCB2ZWN0b3JzIHRvL2Zy b20gc2xpY2VzIGlzIGNoZWNrZWQgYnkgZGVmYXVsdC4KKy1JbmRlcGVuZGVudGx5IG9mIHRoZSBj b25maWd1cmF0aW9uIG9wdGlvbnMgdXNlZCwgdGhlIHNhZmUgZnVuY3Rpb25zOgorLQorLSogYFNp bWQ8W1Q7IE5dPjo6ZnJvbV9zbGljZV9hbGlnbmVkKCYgc1suLl0pYAorLSogYFNpbWQ8W1Q7IE5d Pjo6d3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgmbXV0IHNbLi5dKWAKKy0KKy1hbHdheXMgY2hlY2sg dGhhdDoKKy0KKy0qIHRoZSBzbGljZSBpcyBiaWcgZW5vdWdoIHRvIGhvbGQgdGhlIHZlY3Rvcgor LSogdGhlIHNsaWNlIGlzIHN1aXRhYmx5IGFsaWduZWQgdG8gcGVyZm9ybSBhbiBhbGlnbmVkIGxv YWQvc3RvcmUgZm9yIGEgYFNpbWQ8W1Q7CistICBOXT5gICh0aGlzIGFsaWdubWVudCBpcyBvZnRl biBtdWNoIGxhcmdlciB0aGFuIHRoYXQgb2YgYFRgKS4KKy0KKy1UaGVyZSBhcmUgYF91bmFsaWdu ZWRgIHZlcnNpb25zIHRoYXQgdXNlIHVuYWxpZ25lZCBsb2FkIGFuZCBzdG9yZXMsIGFzIHdlbGwg YXMKKy1gdW5zYWZlYCBgX3VuY2hlY2tlZGAgdGhhdCBkbyBub3QgcGVyZm9ybSBhbnkgY2hlY2tz IGlmZiBgZGVidWctYXNzZXJ0aW9ucyA9CistZmFsc2VgIC8gYGRlYnVnID0gZmFsc2VgLiBUaGF0 IGlzLCB0aGUgYF91bmNoZWNrZWRgIG1ldGhvZHMgZG8gc3RpbGwgYXNzZXJ0IHNpemUKKy1hbmQg YWxpZ25tZW50IGluIGRlYnVnIGJ1aWxkcyBhbmQgY291bGQgYWxzbyBkbyBzbyBpbiByZWxlYXNl IGJ1aWxkcyBkZXBlbmRpbmcKKy1vbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLgorLQorLVRo ZXNlIGFzc2VydGlvbnMgZG8gb2Z0ZW4gc2lnbmlmaWNhbnRseSBpbXBhY3QgcGVyZm9ybWFuY2Ug YW5kIHlvdSBzaG91bGQgYmUKKy1hd2FyZSBvZiB0aGVtLgorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgv YXBwcm94Lm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9hcHByb3gubWQKKysrKyAv ZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLSMgQXBwcm94aW1hdGUgZnVuY3Rpb25zCistCist PCEtLSBUT0RPOgorLQorLUV4cGxhaW4gdGhhdCB0aGV5IGV4aXN0cywgdGhhdCB0aGV5IGFyZSBv ZnRlbiBfbXVjaF8gZmFzdGVyLCBob3cgdG8gdXNlIHRoZW0sCistdGhhdCBwZW9wbGUgc2hvdWxk IGNoZWNrIHdoZXRoZXIgdGhlIGVycm9yIGlzIGdvb2QgZW5vdWdoIGZvciB0aGVpcgorLWFwcGxp Y2F0aW9ucy4gRXhwbGFpbiB0aGF0IHRoaXMgZXJyb3IgaXMgY3VycmVudGx5IHVuc3RhYmxlIGFu ZCBtaWdodCBjaGFuZ2UuCistLS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZCBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mbWEubWQKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZtYS5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNiArMCww IEBACistIyBGdXNlZCBNdWx0aXBseSBBZGQKKy0KKy08IS0tIFRPRE86CistRXhwbGFpbiB0aGF0 IHRoaXMgaXMgYSBjb21wb3VuZCBvcGVyYXRpb24sIGluZmluaXRlIHByZWNpc2lvbiwgZGlmZmVy ZW5jZQorLWJldHdlZW4gYG11bF9hZGRgIGFuZCBgbXVsX2FkZGVgLCB0aGF0IExMVk0gY2Fubm90 IGRvIHRoaXMgYnkgaXRzZWxmLCBldGMuCistLS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZwLm1kIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9mbG9hdC1tYXRoL2ZwLm1kCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvcGVyZi1ndWlkZS9zcmMvZmxvYXQtbWF0aC9mcC5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEs MyArMCwwIEBACistIyBGbG9hdGluZy1wb2ludCBtYXRoCistCistVGhpcyBjaGFwdGVyIGNvbnRh aW5zIGluZm9ybWF0aW9uIHBlcnRhaW5pbmcgdG8gd29ya2luZyB3aXRoIGZsb2F0aW5nLXBvaW50 IG51bWJlcnMuCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJm LWd1aWRlL3NyYy9mbG9hdC1tYXRoL3N2bWwubWQgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3BlcmYtZ3VpZGUvc3JjL2Zsb2F0LW1hdGgvc3ZtbC5tZAorZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3Jj L2Zsb2F0LW1hdGgvc3ZtbC5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNyArMCwwIEBACistIyBT aG9ydCBWZWN0b3IgTWF0aCBMaWJyYXJ5CistCistPCEtLSBUT0RPOgorLUV4cGxhaW4gaG93IGlz IHNob3J0LXZlY3RvciBtYXRoIHBlcmZvcm1lZCBieSBkZWZhdWx0IChqdXN0IHNjYWxhcml6ZWQg bGlibSBjYWxscykuCistCistRXhwbGFpbiBob3cgdG8gZW5hYmxlIGBzbGVlZmAsIGV0Yy4KKy0t LT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUv c3JjL2ludHJvZHVjdGlvbi5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1n dWlkZS9zcmMvaW50cm9kdWN0aW9uLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvaW50cm9kdWN0aW9u Lm1kCisrKysgL2Rldi9udWxsCitAQCAtMSwyNiArMCwwIEBACistIyBJbnRyb2R1Y3Rpb24KKy0K Ky0jIyBXaGF0IGlzIFNJTUQKKy0KKy08IS0tIFRPRE86CistZGVzY3JpYmUgd2hhdCBTSU1EIGlz LCB3aGljaCBhbGdvcml0aG1zIGNhbiBiZW5lZml0IGZyb20gaXQsCistZ2l2ZSB1c2FnZSBleGFt cGxlcworLS0tPgorLQorLSMjIEhpc3Rvcnkgb2YgU0lNRCBpbiBSdXN0CistCistPCEtLSBUT0RP OgorLWRpc2N1c3MgaGlzdG9yeSBvZiB1bnN0YWJsZSBzdGQ6OnNpbWQsCistc3RhYmlsaXphdGlv biBvZiBzdGQ6OmFyY2gsIGV0Yy4KKy0tLT4KKy0KKy0jIyBEaXNjb3ZlciBwYWNrZWRfc2ltZAor LQorLTwhLS0gVE9ETzogZGVzY3JpYmUgc2NvcGUgb2YgdGhpcyBwcm9qZWN0IC0tPgorLQorLVdy aXRpbmcgZmFzdCBhbmQgcG9ydGFibGUgU0lNRCBhbGdvcml0aG1zIHVzaW5nIGBwYWNrZWRfc2lt ZGAgaXMsIHVuZm9ydHVuYXRlbHksCistbm90IHRyaXZpYWwuIFRoZXJlIGFyZSBtYW55IHBpdGZh bHMgdGhhdCBvbmUgc2hvdWxkIGJlIGF3YXJlIG9mLCBhbmQgc29tZSBpZGlvbXMKKy10aGF0IGhl bHAgYXZvaWQgdGhvc2UgcGl0ZmFsbHMuCistCistVGhpcyBib29rIGF0dGVtcHRzIHRvIGRvY3Vt ZW50IHRoZXNlIGJlc3QgcHJhY3RpY2VzIGFuZCBwcm92aWRlcyBwcmFjdGljYWwgZXhhbXBsZXMK Ky1vbiBob3cgdG8gYXBwbHkgdGhlIHRpcHMgdG8gX3lvdXJfIGNvZGUuCitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4Lm1k IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL2xpbnV4 Lm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvcHJvZi9saW51eC5tZAorKysrIC9kZXYvbnVsbAorQEAg LTEsMTA3ICswLDAgQEAKKy0jIFBlcmZvcm1hbmNlIHByb2ZpbGluZyBvbiBMaW51eAorLQorLSMj IFVzaW5nIGBwZXJmYAorLQorLVtwZXJmXShodHRwczovL3BlcmYud2lraS5rZXJuZWwub3JnLykg aXMgdGhlIG1vc3QgcG93ZXJmdWwgcGVyZm9ybWFuY2UgcHJvZmlsZXIKKy1mb3IgTGludXgsIGZl YXR1cmluZyBzdXBwb3J0IGZvciB2YXJpb3VzIGhhcmR3YXJlIFBlcmZvcm1hbmNlIE1vbml0b3Jp bmcgVW5pdHMsCistYXMgd2VsbCBhcyBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBrZXJuZWwncyBwZXJm b3JtYW5jZSBldmVudHMgZnJhbWV3b3JrLgorLQorLVdlIHdpbGwgb25seSBsb29rIGF0IGhvdyBj YW4gdGhlIGBwZXJmYCBjb21tYW5kIGNhbiBiZSB1c2VkIHRvIHByb2ZpbGUgU0lNRCBjb2RlLgor LUZ1bGwgc3lzdGVtIHByb2ZpbGluZyBpcyBvdXRzaWRlIG9mIHRoZSBzY29wZSBvZiB0aGlzIGJv b2suCistCistIyMjIFJlY29yZGluZworLQorLVRoZSBmaXJzdCBzdGVwIGlzIHRvIHJlY29yZCBh IHByb2dyYW0ncyBleGVjdXRpb24gZHVyaW5nIGFuIGF2ZXJhZ2Ugd29ya2xvYWQuCistSXQgaGVs cHMgaWYgeW91IGNhbiBpc29sYXRlIHRoZSBwYXJ0cyBvZiB5b3VyIHByb2dyYW0gd2hpY2ggaGF2 ZSBwZXJmb3JtYW5jZQorLWlzc3VlcywgYW5kIHNldCB1cCBhIGJlbmNobWFyayB3aGljaCBjYW4g YmUgZWFzaWx5IChyZSlydW4uCistCistQnVpbGQgdGhlIGJlbmNobWFyayBiaW5hcnkgaW4gcmVs ZWFzZSBtb2RlLCBhZnRlciBoYXZpbmcgZW5hYmxlZCBkZWJ1ZyBpbmZvOgorLQorLWBgYHNoCist JCBjYXJnbyBidWlsZCAtLXJlbGVhc2UKKy1GaW5pc2hlZCByZWxlYXNlIFtvcHRpbWl6ZWQgKyBk ZWJ1Z2luZm9dIHRhcmdldChzKSBpbiAwLjAycworLWBgYAorLQorLVRoZW4gdXNlIHRoZSBgcGVy ZiByZWNvcmRgIHN1YmNvbW1hbmQ6CistCistYGBgc2gKKy0kIHBlcmYgcmVjb3JkIC0tY2FsbC1n cmFwaD1kd2FyZiAuL3RhcmdldC9yZWxlYXNlL215LXByb2dyYW0KKy1bIHBlcmYgcmVjb3JkOiBX b2tlbiB1cCAxMCB0aW1lcyB0byB3cml0ZSBkYXRhIF0KKy1bIHBlcmYgcmVjb3JkOiBDYXB0dXJl ZCBhbmQgd3JvdGUgMiwzNTYgTUIgcGVyZi5kYXRhICgyOTIgc2FtcGxlcykgXQorLWBgYAorLQor LUluc3RlYWQgb2YgdXNpbmcgYC0tY2FsbC1ncmFwaD1kd2FyZmAsIHdoaWNoIGNhbiBiZWNvbWUg cHJldHR5IHNsb3csIHlvdSBjYW4gdXNlCistYC0tY2FsbC1ncmFwaD1sYnJgIGlmIHlvdSBoYXZl IGEgcHJvY2Vzc29yIHdpdGggc3VwcG9ydCBmb3IgTGFzdCBCcmFuY2ggUmVjb3JkCistKGkuZS4g SW50ZWwgSGFzd2VsbCBhbmQgbmV3ZXIpLgorLQorLWBwZXJmYCB3aWxsLCBieSBkZWZhdWx0LCBy ZWNvcmQgdGhlIGNvdW50IG9mIENQVSBjeWNsZXMgaXQgdGFrZXMgdG8gZXhlY3V0ZQorLXZhcmlv dXMgcGFydHMgb2YgeW91ciBwcm9ncmFtLiBZb3UgY2FuIHVzZSB0aGUgYC1lYCBjb21tYW5kIGxp bmUgb3B0aW9uCistdG8gZW5hYmxlIG90aGVyIHBlcmZvcm1hbmNlIGV2ZW50cywgc3VjaCBhcyBg Y2FjaGUtbWlzc2VzYC4gVXNlIGBwZXJmIGxpc3RgCistdG8gZ2V0IGEgbGlzdCBvZiBhbGwgaGFy ZHdhcmUgY291bnRlcnMgc3VwcG9ydGVkIGJ5IHlvdXIgQ1BVLgorLQorLSMjIyBWaWV3aW5nIHRo ZSByZXBvcnQKKy0KKy1UaGUgbmV4dCBzdGVwIGlzIGdldHRpbmcgYSBiaXJkJ3MgZXllIHZpZXcg b2YgdGhlIHByb2dyYW0ncyBleGVjdXRpb24uCistYHBlcmZgIHByb3ZpZGVzIGEgYG5jdXJzZXNg LWJhc2VkIGludGVyZmFjZSB3aGljaCB3aWxsIGdldCB5b3Ugc3RhcnRlZC4KKy0KKy1Vc2UgYHBl cmYgcmVwb3J0YCB0byBvcGVuIGEgdmlzdWFsaXphdGlvbiBvZiB5b3VyIHByb2dyYW0ncyBwZXJm b3JtYW5jZToKKy0KKy1gYGBzaAorLXBlcmYgcmVwb3J0IC0taGllcmFyY2h5IC1NIGludGVsCist YGBgCistCistYC0taGllcmFyY2h5YCB3aWxsIGRpc3BsYXkgYSB0cmVlLWxpa2Ugc3RydWN0dXJl IG9mIHdoZXJlIHlvdXIgcHJvZ3JhbSBzcGVudAorLW1vc3Qgb2YgaXRzIHRpbWUuIGAtTSBpbnRl bGAgZW5hYmxlcyBkaXNhc3NlbWJseSBvdXRwdXQgd2l0aCBJbnRlbCBzeW50YXgsIHdoaWNoCist aXMgc3ViamVjdGl2ZWx5IG1vcmUgcmVhZGFibGUgdGhhbiB0aGUgZGVmYXVsdCBBVCZUIHN5bnRh eC4KKy0KKy1IZXJlIGlzIHRoZSBvdXRwdXQgZnJvbSBwcm9maWxpbmcgdGhlIGBuYm9keWAgYmVu Y2htYXJrOgorLQorLWBgYAorLS0gMTAwLDAwJSBuYm9keQorLSAgLSA5NCwxOCUgbmJvZHkKKy0g ICAgKyA5Myw0OCUgWy5dIG5ib2R5X2xpYjo6c2ltZDo6YWR2YW5jZQorLSAgICArIDAsNzAlIFsu XSBuYm9keV9saWI6OnJ1bgorLSAgICArIDUsMDYlIGxpYmMtMi4yOC5zbworLWBgYAorLQorLUlm IHlvdSBtb3ZlIHdpdGggdGhlIGFycm93IGtleXMgdG8gYW55IG5vZGUgaW4gdGhlIHRyZWUsIHlv dSBjYW4gdGhlIHByZXNzIGBhYAorLXRvIGhhdmUgYHBlcmZgIF9hbm5vdGF0ZV8gdGhhdCBub2Rl LiBUaGlzIG1lYW5zIGl0IHdpbGw6CistCistLSBkaXNhc3NlbWJsZSB0aGUgZnVuY3Rpb24KKy0K Ky0tIGFzc29jaWF0ZSBldmVyeSBpbnN0cnVjdGlvbiB3aXRoIHRoZSBwZXJjZW50YWdlIG9mIHRp bWUgd2hpY2ggd2FzIHNwZW50IGV4ZWN1dGluZyBpdAorLQorLS0gaW50ZXJsZWF2ZXMgdGhlIGRp c2Fzc2VtYmx5IHdpdGggdGhlIHNvdXJjZSBjb2RlLAorLSAgYXNzdW1pbmcgaXQgZm91bmQgdGhl IGRlYnVnIHN5bWJvbHMKKy0gICh5b3UgY2FuIHVzZSBgc2AgdG8gdG9nZ2xlIHRoaXMgYmVoYXZp b3VyKQorLQorLWBwZXJmYCB3aWxsLCBieSBkZWZhdWx0LCBvcGVuIHRoZSBpbnN0cnVjdGlvbiB3 aGljaCBpdCBpZGVudGlmaWVkIGFzIGJlaW5nIHRoZQorLWhvdHRlc3Qgc3BvdCBpbiB0aGUgZnVu Y3Rpb246CistCistYGBgCistMCw3NiAg4pSCIG1vdmFwZCB4bW0yLHhtbTAKKy0wLDM4ICDilIIg bW92aGxwcyB4bW0yLHhtbTAKKy0gICAgICDilIIgYWRkcGQgIHhtbTIseG1tMAorLSAgICAgIOKU giB1bnBja2xwZCB4bW0xLHhtbTIKKy0xMiw1MCDilIIgc3FydHBkIHhtbTAseG1tMQorLTEsNTIg IOKUgiBtdWxwZCAgeG1tMCx4bW0xCistYGBgCistCistSW4gdGhpcyBjYXNlLCBgc3FydHBkYCB3 aWxsIGJlIGhpZ2hsaWdodGVkIGluIHJlZCwgc2luY2UgdGhhdCdzIHRoZSBpbnN0cnVjdGlvbgor LXdoaWNoIHRoZSBDUFUgc3BlbmRzIG1vc3Qgb2YgaXRzIHRpbWUgZXhlY3V0aW5nLgorLQorLSMj IFVzaW5nIFZhbGdyaW5kCistCistVmFsZ3JpbmQgaXMgYSBzZXQgb2YgdG9vbHMgd2hpY2ggaW5p dGlhbGx5IGhlbHBlZCBDL0MrKyBwcm9ncmFtbWVycyBmaW5kIHVuc2FmZQorLW1lbW9yeSBhY2Nl c3NlcyBpbiB0aGVpciBjb2RlLiBOb3dhZGF5cyB0aGUgcHJvamVjdCBhbHNvIGhhcworLQorLS0g YSBoZWFwIHByb2ZpbGVyIGNhbGxlZCBgbWFzc2lmYAorLQorLS0gYSBjYWNoZSB1dGlsaXphdGlv biBwcm9maWxlciBjYWxsZWQgYGNhY2hlZ3JpbmRgCistCistLSBhIGNhbGwtZ3JhcGggcGVyZm9y bWFuY2UgcHJvZmlsZXIgY2FsbGVkIGBjYWxsZ3JpbmRgCistCistPCEtLQorLVRPRE86IGV4cGxh aW4gdmFsZ3JpbmQncyBkeW5hbWljIGJpbmFyeSB0cmFuc2xhdGlvbiwgd2FybiBhYm91dCBtYXNz aXZlCistc2xvd2Rvd24sIHRhbGsgYWJvdXQgYGtjYWNoZWdyaW5kYCBmb3IgYSBHVUkKKy0tLT4K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3Jj L3Byb2YvbWNhLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy9wcm9mL21jYS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvbWNhLm1kCisrKysgL2Rldi9u dWxsCitAQCAtMSwxMDAgKzAsMCBAQAorLSMgTWFjaGluZSBjb2RlIGFuYWx5c2lzIHRvb2xzCist CistIyMgVGhlIG1pY3JvYXJjaGl0ZWN0dXJlIG9mIG1vZGVybiBDUFVzCistCistV2hpbGUgeW91 IG1pZ2h0IGhhdmUgaGVhcmQgb2YgSW5zdHJ1Y3Rpb24gU2V0IEFyY2hpdGVjdHVyZXMsIHN1Y2gg YXMgYHg4NmAgb3IKKy1gYXJtYCBvciBgbWlwc2AsIHRoZSB0ZXJtIF9taWNyb2FyY2hpdGVjdHVy ZV8gKGFsc28gd3JpdHRlbiBoZXJlIGFzIF/CtS1hcmNoXyksCistcmVmZXJzIHRvIHRoZSBpbnRl cm5hbCBkZXRhaWxzIG9mIGFuIGFjdHVhbCBmYW1pbHkgb2YgQ1BVcywgc3VjaCBhcyBJbnRlbCdz CistX0hhc3dlbGxfIG9yIEFNRCdzIF9KYWd1YXJfLgorLQorLVJlcGxhY2luZyBzY2FsYXIgY29k ZSB3aXRoIFNJTUQgY29kZSB3aWxsIGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gYWxsIENQVXMKKy1z dXBwb3J0aW5nIHRoZSByZXF1aXJlZCB2ZWN0b3IgZXh0ZW5zaW9ucy4KKy1Ib3dldmVyLCBkdWUg dG8gbWljcm9hcmNoaXRlY3R1cmFsIGRpZmZlcmVuY2VzLCB0aGUgYWN0dWFsIHNwZWVkLXVwIGF0 CistcnVudGltZSBtaWdodCB2YXJ5LgorLQorLSoqRXhhbXBsZSoqOiBhIHNpbXBsZSBleGFtcGxl IGFyaXNlcyB3aGVuIG9wdGltaXppbmcgZm9yIEFNRCBLOCBDUFVzLgorLVRoZSBhc3NlbWJseSBn ZW5lcmF0ZWQgZm9yIGFuIGVtcHR5IGZ1bmN0aW9uIHNob3VsZCBsb29rIGxpa2UgdGhpczoKKy0K Ky1gYGBhc20KKy1ub3AKKy1yZXQKKy1gYGAKKy0KKy1UaGUgYG5vcGAgaXMgdXNlZCB0byBhbGln biB0aGUgYHJldGAgaW5zdHJ1Y3Rpb24gZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KKy1Ib3dldmVy LCB0aGUgY29tcGlsZXIgd2lsbCBhY3R1YWxseSBnZW5lcmF0ZWQgdGhlIGZvbGxvd2luZyBjb2Rl OgorLQorLWBgYGFzbQorLXJlcHogcmV0CistYGBgCistCistVGhlIGByZXB6YCBpbnN0cnVjdGlv biB3aWxsIHJlcGVhdCB0aGUgZm9sbG93aW5nIGluc3RydWN0aW9uIHVudGlsIGEgY2VydGFpbgor LWNvbmRpdGlvbi4gT2YgY291cnNlLCBpbiB0aGlzIHNpdHVhdGlvbiwgdGhlIGZ1bmN0aW9uIHdp bGwgc2ltcGx5IGltbWVkaWF0ZWx5CistcmV0dXJuLCBhbmQgdGhlIGByZXRgIGluc3RydWN0aW9u IGlzIHN0aWxsIGFsaWduZWQuCistSG93ZXZlciwgQU1EIEs4J3MgYnJhbmNoIHByZWRpY3RvciBw ZXJmb3JtcyBiZXR0ZXIgd2l0aCB0aGUgbGF0dGVyIGNvZGUuCistCistRm9yIHRob3NlIGxvb2tp bmcgdG8gYWJzb2x1dGVseSBtYXhpbWl6ZSBwZXJmb3JtYW5jZSBmb3IgYSBjZXJ0YWluIHRhcmdl dCDCtS1hcmNoLAorLXlvdSB3aWxsIGhhdmUgdG8gcmVhZCBzb21lIENQVSBtYW51YWxzLCBvciBh c2sgdGhlIGNvbXBpbGVyIHRvIGRvIGl0IGZvciB5b3UKKy13aXRoIGAtQyB0YXJnZXQtY3B1YC4K Ky0KKy0jIyMgU3VtbWFyeSBvZiBDUFUgaW50ZXJuYWxzCistCistTW9kZXJuIHByb2Nlc3NvcnMg YXJlIGFibGUgdG8gZXhlY3V0ZSBpbnN0cnVjdGlvbnMgb3V0LW9mLW9yZGVyIGZvciBiZXR0ZXIg cGVyZm9ybWFuY2UsCistYnkgdXRpbGl6aW5nIHRyaWNrcyBzdWNoIGFzIFticmFuY2ggcHJlZGlj dGlvbl0sIFtpbnN0cnVjdGlvbiBwaXBlbGluaW5nXSwKKy1vciBbc3VwZXJzY2FsYXIgZXhlY3V0 aW9uXS4KKy0KKy1bYnJhbmNoIHByZWRpY3Rpb25dOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcv d2lraS9CcmFuY2hfcHJlZGljdG9yCistW2luc3RydWN0aW9uIHBpcGVsaW5pbmddOiBodHRwczov L2VuLndpa2lwZWRpYS5vcmcvd2lraS9JbnN0cnVjdGlvbl9waXBlbGluaW5nCistW3N1cGVyc2Nh bGFyIGV4ZWN1dGlvbl06IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1N1cGVyc2NhbGFy X3Byb2Nlc3NvcgorLQorLVNJTUQgaW5zdHJ1Y3Rpb25zIGFyZSBhbHNvIHN1YmplY3QgdG8gdGhl c2Ugb3B0aW1pemF0aW9ucywgbWVhbmluZyBpdCBjYW4gZ2V0IHByZXR0eQorLWRpZmZpY3VsdCB0 byBkZXRlcm1pbmUgd2hlcmUgdGhlIHNsb3dkb3duIGhhcHBlbnMuCistRm9yIGV4YW1wbGUsIGlm IHRoZSBwcm9maWxlciByZXBvcnRzIGEgc3RvcmUgb3BlcmF0aW9uIGlzIHNsb3csIG9uZSBvZiB0 d28gdGhpbmdzCistY291bGQgYmUgaGFwcGVuaW5nOgorLQorLS0gdGhlIHN0b3JlIGlzIGxpbWl0 ZWQgYnkgdGhlIENQVSdzIG1lbW9yeSBiYW5kd2lkdGgsIHdoaWNoIGlzIGFjdHVhbGx5IGFuIGlk ZWFsCistICBzY2VuYXJpbywgYWxsIHRoaW5ncyBjb25zaWRlcmVkOworLQorLS0gbWVtb3J5IGJh bmR3aWR0aCBpcyBub3doZXJlIG5lYXIgaXRzIHBlYWssIGJ1dCB0aGUgdmFsdWUgdG8gYmUgc3Rv cmVkIGlzIGF0IHRoZQorLSAgZW5kIG9mIGEgbG9uZyBjaGFpbiBvZiBvcGVyYXRpb25zLCBhbmQg dGhpcyBzdG9yZSBpcyB3aGVyZSB0aGUgcHJvZmlsZXIKKy0gIGVuY291bnRlcmVkIHRoZSBwaXBl bGluZSBzdGFsbDsKKy0KKy1TaW5jZSBtb3N0IHByb2ZpbGVycyBhcmUgc2ltcGxlIHRvb2xzIHdo aWNoIGRvbid0IHVuZGVyc3RhbmQgdGhlIHN1YnRsZXRpZXMgb2YKKy1pbnN0cnVjdGlvbiBzY2hl ZHVsaW5nLCB5b3UKKy0KKy0jIyBBbmFseXppbmcgdGhlIG1hY2hpbmUgY29kZQorLQorLUNlcnRh aW4gdG9vbHMgaGF2ZSBrbm93bGVkZ2Ugb2YgaW50ZXJuYWwgQ1BVIG1pY3JvYXJjaGl0ZWN0dXJl LCBpLmUuIHRoZXkga25vdworLQorLS0gaG93IG1hbnkgcGh5c2ljYWwgW3JlZ2lzdGVyIGZpbGVz XSBhIENQVSBhY3R1YWxseSBoYXMKKy0KKy0tIHdoYXQgaXMgdGhlIGxhdGVuY3kgLyB0aHJvdWdo dHB1dCBvZiBhbiBpbnN0cnVjdGlvbgorLQorLS0gd2hhdCBbwrUtb3BzXSBhcmUgZ2VuZXJhdGVk IGZvciBhIHNldCBvZiBpbnN0cnVjdGlvbnMKKy0KKy1hbmQgbWFueSBvdGhlciBhcmNoaXRlY3R1 cmFsIGRldGFpbHMuCistCistW3JlZ2lzdGVyIGZpbGVzXTogaHR0cHM6Ly9lbi53aWtpcGVkaWEu b3JnL3dpa2kvUmVnaXN0ZXJfZmlsZQorLVvCtS1vcHNdOiBodHRwczovL2VuLndpa2lwZWRpYS5v cmcvd2lraS9NaWNyby1vcGVyYXRpb24KKy0KKy1UaGVzZSB0b29scyBhcmUgdGhlcmVmb3JlIGFi bGUgdG8gcHJvdmlkZSBhY2N1cmF0ZSBpbmZvcm1hdGlvbiBhcyB0byB3aHkgc29tZQorLWluc3Ry dWN0aW9ucyBhcmUgaW5lZmZpY2llbnQsIGFuZCB3aGVyZSB0aGUgYm90dGxlbmVjayBpcy4KKy0K Ky1UaGUgZGlzYWR2YW50YWdlIGlzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGVzZSB0b29scyByZXF1 aXJlcyBhZHZhbmNlZCBrbm93bGVkZ2UKKy1vZiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSB0byB1 bmRlcnN0YW5kLCBpLmUuIHRoZXkgKipjYW5ub3QqKiBwb2ludCBvdXQgd2hhdAorLXRoZSBjYXVz ZSBvZiB0aGUgaXNzdWUgaXMgZXhwbGljaXRseS4KKy0KKy0jIyBJbnRlbCdzIEFyY2hpdGVjdHVy ZSBDb2RlIEFuYWx5emVyIChJQUNBKQorLQorLVtJQUNBXSBpcyBhIGZyZWUgdG9vbCBvZmZlcmVk IGJ5IEludGVsIGZvciBhbmFseXppbmcgdGhlIHBlcmZvcm1hbmNlIG9mIHZhcmlvdXMKKy1jb21w dXRhdGlvbmFsIGtlcm5lbHMuCistCistQmVpbmcgYSBwcm9wcmlldGFyeSwgY2xvc2VkIHNvdXJj ZSB0b29sLCBpdCBfb25seV8gc3VwcG9ydHMgSW50ZWwncyDCtS1hcmNoZXMuCistCistW0lBQ0Fd OiBodHRwczovL3NvZnR3YXJlLmludGVsLmNvbS9lbi11cy9hcnRpY2xlcy9pbnRlbC1hcmNoaXRl Y3R1cmUtY29kZS1hbmFseXplcgorLQorLSMjIGxsdm0tbWNhCistCistPCEtLQorLVRPRE86IG9u Y2UgTExWTSA3IGdldHMgcmVsZWFzZWQsIHdyaXRlIGEgY2hhcHRlciBvbiB1c2luZyBsbHZtLW1j YQorLXdpdGggU0lNRCBkaXNhc3NlbWJseS4KKy0tLT4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy9wcm9mL3Byb2ZpbGluZy5t ZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3Byb2YvcHJvZmlsaW5nLm1kCisrKysgL2Rldi9udWxsCitA QCAtMSwxNCArMCwwIEBACistIyBQZXJmb3JtYW5jZSBwcm9maWxpbmcKKy0KKy1XaGlsZSB0aGUg cmVzdCBvZiB0aGUgYm9vayBwcm92aWRlcyBwcmFjdGljYWwgYWR2aWNlIG9uIGhvdyB0byBpbXBy b3ZlIHRoZSBwZXJmb3JtYW5jZQorLW9mIFNJTUQgY29kZSwgdGhpcyBjaGFwdGVyIGlzIGRlZGlj YXRlZCB0byBbKipwZXJmb3JtYW5jZSBwcm9maWxpbmcqKl1bcHJvZmlsaW5nXS4KKy1Qcm9maWxp bmcgY29uc2lzdHMgb2YgcmVjb3JkaW5nIGEgcHJvZ3JhbSdzIGV4ZWN1dGlvbiBpbiBvcmRlciB0 byBpZGVudGlmeSBwcm9ncmFtCistaG90c3BvdHMuCistCistKipJbXBvcnRhbnQqKjogbW9zdCBw cm9maWxlcnMgcmVxdWlyZSBkZWJ1ZyBpbmZvcm1hdGlvbiBpbiBvcmRlciB0byBhY2N1cmF0ZWx5 CistbGluayB0aGUgcHJvZ3JhbSBob3RzcG90cyBiYWNrIHRvIHRoZSBjb3JyZXNwb25kaW5nIHNv dXJjZSBjb2RlIGxpbmVzLiBSdXN0IHdpbGwKKy1kaXNhYmxlIGRlYnVnIGluZm8gZ2VuZXJhdGlv biBieSBkZWZhdWx0IGZvciBvcHRpbWl6ZWQgYnVpbGRzLCBidXQgeW91IGNhbiBjaGFuZ2UKKy10 aGF0IFtpbiB5b3VyIGBDYXJnby50b21sYF1bY2FyZ28tcmVmXS4KKy0KKy1bcHJvZmlsaW5nXTog aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUHJvZmlsaW5nXyhjb21wdXRlcl9wcm9ncmFt bWluZykKKy1bY2FyZ28tcmVmXTogaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9jYXJnby9yZWZl cmVuY2UvbWFuaWZlc3QuaHRtbCN0aGUtcHJvZmlsZS1zZWN0aW9ucworZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUv YXR0cmlidXRlLm1kIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3Ny Yy90YXJnZXQtZmVhdHVyZS9hdHRyaWJ1dGUubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQt ZmVhdHVyZS9hdHRyaWJ1dGUubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDUgKzAsMCBAQAorLSMg VGhlIGB0YXJnZXRfZmVhdHVyZWAgYXR0cmlidXRlCistCistPCEtLSBUT0RPOgorLUV4cGxhaW4g dGhlIGAjW3RhcmdldF9mZWF0dXJlXWAgYXR0cmlidXRlCistLS0+CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9m ZWF0dXJlcy5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMv dGFyZ2V0LWZlYXR1cmUvZmVhdHVyZXMubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVh dHVyZS9mZWF0dXJlcy5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsMTMgKzAsMCBAQAorLSMgRW5h YmxpbmcgdGFyZ2V0IGZlYXR1cmVzCistCistTm90IGFsbCBwcm9jZXNzb3JzIG9mIGEgY2VydGFp biBhcmNoaXRlY3R1cmUgd2lsbCBoYXZlIFNJTUQgcHJvY2Vzc2luZyB1bml0cywKKy1hbmQgdXNp bmcgYSBTSU1EIGluc3RydWN0aW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgd2lsbCB0cmlnZ2Vy IHVuZGVmaW5lZCBiZWhhdmlvci4KKy0KKy1UbyBhbGxvdyBidWlsZGluZyBzYWZlLCBwb3J0YWJs ZSBwcm9ncmFtcywgdGhlIFJ1c3QgY29tcGlsZXIgd2lsbCAqKm5vdCoqLCBieSBkZWZhdWx0LAor LWdlbmVyYXRlIGFueSBzb3J0IG9mIHZlY3RvciBpbnN0cnVjdGlvbnMsIHVubGVzcyBpdCBjYW4g c3RhdGljYWxseSBkZXRlcm1pbmUKKy10aGV5IGFyZSBzdXBwb3J0ZWQuIEZvciBleGFtcGxlLCBv biBBTUQ2NCwgU1NFMiBzdXBwb3J0IGlzIGFyY2hpdGVjdHVyYWxseSBndWFyYW50ZWVkLgorLVRo ZSBgeDg2XzY0LWFwcGxlLWRhcndpbmAgdGFyZ2V0IGVuYWJsZXMgdXAgdG8gU1NTRTMuIFRoZSBn ZXQgYSBkZWZpbnRpdmUgbGlzdCBvZgorLXdoaWNoIGZlYXR1cmVzIGFyZSBlbmFibGVkIGJ5IGRl ZmF1bHQgb24gdmFyaW91cyBwbGF0Zm9ybXMsIHJlZmVyIHRvIHRoZSB0YXJnZXQKKy1zcGVjaWZp Y2F0aW9ucyBbaW4gdGhlIGNvbXBpbGVyJ3Mgc291cmNlIGNvZGVdW3RhcmdldHNdLgorLQorLVt0 YXJnZXRzXTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0L3RyZWUvbWFzdGVyL3Ny Yy9saWJydXN0Y190YXJnZXQvc3BlYworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL2lu bGluaW5nLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUvaW5saW5pbmcubWQK KysrKyAvZGV2L251bGwKK0BAIC0xLDUgKzAsMCBAQAorLSMgSW5saW5pbmcKKy0KKy08IS0tIFRP RE86CistRXhwbGFpbiBob3cgdGhlIGAjW3RhcmdldF9mZWF0dXJlXWAgYXR0cmlidXRlIGludGVy YWN0cyB3aXRoIGlubGluaW5nCistLS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5tZCBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1cmUv cHJhY3RpY2UubWQKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9wcmFjdGljZS5t ZAorKysrIC9kZXYvbnVsbAorQEAgLTEsMzEgKzAsMCBAQAorLSMgVGFyZ2V0IGZlYXR1cmVzIGlu IHByYWN0aWNlCistCistVXNpbmcgYFJVU1RGTEFHU2Agd2lsbCBhbGxvdyB0aGUgY3JhdGUgYmVp bmcgY29tcGlsZWQsIGFzIHdlbGwgYXMgYWxsIGl0cworLXRyYW5zaXRpdmUgZGVwZW5kZW5jaWVz IHRvIHVzZSBjZXJ0YWluIHRhcmdldCBmZWF0dXJlcy4KKy0KKy1BIHRlaG5pcXVlIHVzZWQgdG8g YXZvaWQgdW5kZWZpbmVkIGJlaGF2aW9yIGF0IHJ1bnRpbWUgaXMgdG8gY29tcGlsZSBhbmQKKy1z aGlwIG11bHRpcGxlIGJpbmFyaWVzLCBlYWNoIGNvbXBpbGVkIHdpdGggYSBjZXJ0YWluIHNldCBv ZiBmZWF0dXJlcy4KKy1UaGlzIG1pZ2h0IG5vdCBiZSBmZWFzaWJsZSBpbiBzb21lIGNhc2VzLCBh bmQgY2FuIHF1aWNrbHkgZ2V0IG91dCBvZiBoYW5kCistYXMgbW9yZSBhbmQgbW9yZSB2ZWN0b3Ig ZXh0ZW5zaW9ucyBhcmUgYWRkZWQgdG8gYW4gYXJjaGl0ZWN0dXJlLgorLQorLVJ1c3QgY2FuIGJl IG1vcmUgZmxleGlibGU6IHlvdSBjYW4gYnVpbGQgYSBzaW5nbGUgYmluYXJ5L2xpYnJhcnkgd2hp Y2ggYXV0b21hdGljYWxseQorLXBpY2tzIHRoZSBiZXN0IHN1cHBvcnRlZCB2ZWN0b3IgaW5zdHJ1 Y3Rpb25zIGRlcGVuZGluZyBvbiB0aGUgaG9zdCBtYWNoaW5lLgorLVRoZSB0cmljayBjb25zaXN0 cyBvZiBtb25vbW9ycGhpemluZyBwYXJ0cyBvZiB0aGUgY29kZSBkdXJpbmcgYnVpbGRpbmcsIGFu ZCB0aGVuCistdXNpbmcgcnVuLXRpbWUgZmVhdHVyZSBkZXRlY3Rpb24gdG8gc2VsZWN0IHRoZSBy aWdodCBjb2RlIHBhdGggd2hlbiBydW5uaW5nLgorLQorLTwhLS0gVE9ETworLUV4cGxhaW4gaG93 IHRvIGNyZWF0ZSBlZmZpY2llbnQgZnVuY3Rpb25zIHRoYXQgZGlzcGF0Y2ggdG8gZGlmZmVyZW50 CistaW1wbGVtZW50YXRpb25zIGF0IHJ1bi10aW1lIHdpdGhvdXQgaXNzdWVzIChlLmcuIHVzaW5n IGAjW2lubGluZShhbHdheXMpXWAgZm9yCistdGhlIGltcGxzLCB3cmFwcGluZyBpbiBgI1t0YXJn ZXRfZmVhdHVyZV1gLCBhbmQgdGhlIHdyYXBwaW5nIHRob3NlIGluIGEgZnVuY3Rpb24KKy10aGF0 IGRvZXMgcnVuLXRpbWUgZmVhdHVyZSBkZXRlY3Rpb24pLgorLS0tPgorLQorLSoqTk9URSoqICh4 ODYgc3BlY2lmaWMpOiBiZWNhdXNlIHRoZSBBVlggKDI1Ni1iaXQpIHJlZ2lzdGVycyBleHRlbmQg dGhlIGV4aXN0aW5nCistU1NFICgxMjgtYml0KSByZWdpc3RlcnMsIG1peGluZyBTU0UgYW5kIEFW WCBpbnN0cnVjdGlvbnMgaW4gYSBwcm9ncmFtIGNhbiBjYXVzZQorLXBlcmZvcm1hbmNlIGlzc3Vl cy4KKy0KKy1UaGUgc29sdXRpb24gaXMgdG8gY29tcGlsZSBhbGwgY29kZSwgZXZlbiB0aGUgY29k ZSB3cml0dGVuIHdpdGggMTI4LWJpdCB2ZWN0b3JzLAorLXdpdGggdGhlIEFWWCB0YXJnZXQgZmVh dHVyZSBlbmFibGVkLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGNvbXBpbGVyIHRvIHByZWZpeCB0aGUK Ky1nZW5lcmF0ZWQgaW5zdHJ1Y3Rpb25zIHdpdGggdGhlIFtWRVhdIHByZWZpeC4KKy0KKy1bVkVY XTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVkVYX3ByZWZpeAorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdGFyZ2V0LWZlYXR1 cmUvcnVudGltZS5tZCBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9z cmMvdGFyZ2V0LWZlYXR1cmUvcnVudGltZS5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1m ZWF0dXJlL3J1bnRpbWUubWQKKysrKyAvZGV2L251bGwKK0BAIC0xLDUgKzAsMCBAQAorLSMgRGV0 ZWN0aW5nIGhvc3QgZmVhdHVyZXMgYXQgcnVudGltZQorLQorLTwhLS0gVE9ETzoKKy1FeHBsYWlu IGNvc3QgKGhvdyBpdCB3b3JrcykuCistLS0+CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9wZXJmLWd1aWRlL3NyYy90YXJnZXQtZmVhdHVyZS9ydXN0ZmxhZ3MubWQg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0 dXJlL3J1c3RmbGFncy5tZAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3RhcmdldC1mZWF0dXJlL3J1c3Rm bGFncy5tZAorKysrIC9kZXYvbnVsbAorQEAgLTEsNzcgKzAsMCBAQAorLSMgVXNpbmcgUlVTVEZM QUdTCistCistT25lIG9mIHRoZSBlYXNpZXN0IHdheXMgdG8gYmVuZWZpdCBmcm9tIFNJTUQgaXMg dG8gYWxsb3cgdGhlIGNvbXBpbGVyCistdG8gZ2VuZXJhdGUgY29kZSB1c2luZyBjZXJ0YWluIHZl Y3RvciBpbnN0cnVjdGlvbiBleHRlbnNpb25zLgorLQorLVRoZSBlbnZpcm9ubWVudCB2YXJpYWJs ZSBgUlVTVEZMQUdTYCBjYW4gYmUgdXNlZCB0byBwYXNzIG9wdGlvbnMgZm9yIGNvZGUKKy1nZW5l cmF0aW9uIHRvIHRoZSBSdXN0IGNvbXBpbGVyLiBUaGVzZSBmbGFncyB3aWxsIGFmZmVjdCAqKmFs bCoqIGNvbXBpbGVkIGNyYXRlcy4KKy0KKy1UaGVyZSBhcmUgdHdvIGZsYWdzIHdoaWNoIGNhbiBi ZSB1c2VkIHRvIGVuYWJsZSBzcGVjaWZpYyB2ZWN0b3IgZXh0ZW5zaW9uczoKKy0KKy0jIyB0YXJn ZXQtZmVhdHVyZQorLQorLS0gU3ludGF4OiBgLUMgdGFyZ2V0LWZlYXR1cmU9PGZlYXR1cmVzPmAK Ky0KKy0tIFByb3ZpZGVzIHRoZSBjb21waWxlciB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIHNldCBv ZiBpbnN0cnVjdGlvbiBleHRlbnNpb25zCistICB0byBlbmFibGUuCistCistICAqKkV4YW1wbGUq KjogVXNlIGAtQyB0YXJnZXQtZmVhdHVyZT0rc3NlMywrYXZ4YCB0byBlbmFibGUgZ2VuZXJhdGlu ZyBpbnN0cnVjdGlvbnMKKy0gIGZvciBbU3RyZWFtaW5nIFNJTUQgRXh0ZW5zaW9ucyAzXShodHRw czovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TU0UzKSBhbmQKKy0gIFtBZHZhbmNlZCBWZWN0b3Ig RXh0ZW5zaW9uc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQWR2YW5jZWRfVmVjdG9y X0V4dGVuc2lvbnMpLgorLQorLS0gVG8gbGlzdCB0YXJnZXQgdHJpcGxlcyBmb3IgYWxsIHRhcmdl dHMgc3VwcG9ydGVkIGJ5IFJ1c3QsIHVzZToKKy0KKy0gIGBgYHNoCistICBydXN0YyAtLXByaW50 IHRhcmdldC1saXN0CistICBgYGAKKy0KKy0tIFRvIGxpc3QgYWxsIHN1cHBvcnQgdGFyZ2V0IGZl YXR1cmVzIGZvciBhIGNlcnRhaW4gdGFyZ2V0IHRyaXBsZSwgdXNlOgorLQorLSAgYGBgc2gKKy0g IHJ1c3RjIC0tdGFyZ2V0PSR7VFJJUExFfSAtLXByaW50IHRhcmdldC1mZWF0dXJlcworLSAgYGBg CistCistLSBOb3RlIHRoYXQgYWxsIENQVSBmZWF0dXJlcyBhcmUgaW5kZXBlbmRlbnQsIGFuZCB3 aWxsIGhhdmUgdG8gYmUgZW5hYmxlZCBpbmRpdmlkdWFsbHkuCistCistICAqKkV4YW1wbGUqKjog U2V0dGluZyBgLUMgdGFyZ2V0LWZlYXR1cmU9K2F2eDJgIHdpbGwgX25vdF8gZW5hYmxlIGBmbWFg LCBldmVuIHRob3VnaAorLSAgYWxsIENQVXMgd2hpY2ggc3VwcG9ydCBBVlgyIGFsc28gc3VwcG9y dCBGTUEuIFRvIGVuYWJsZSBib3RoLCBvbmUgaGFzIHRvIHVzZQorLSAgYC1DIHRhcmdldC1mZWF0 dXJlPSthdngyLCtmbWFgCistCistLSBTb21lIGZlYXR1cmVzIGFsc28gZGVwZW5kIG9uIG90aGVy IGZlYXR1cmVzLCB3aGljaCBuZWVkIHRvIGJlIGVuYWJsZWQgZm9yIHRoZQorLSAgdGFyZ2V0IGlu c3RydWN0aW9ucyB0byBiZSBnZW5lcmF0ZWQuCistCistICAqKkV4YW1wbGUqKjogVW5sZXNzIGB2 N2AgaXMgc3BlY2lmaWVkIGFzIHRoZSB0YXJnZXQgQ1BVIChzZWUgYmVsb3cpLCB0byBlbmFibGUK Ky0gIE5FT04gb24gQVJNIGl0IGlzIG5lY2Vzc2FyeSB0byB1c2UgYC1DIHRhcmdldC1mZWF0dXJl PSt2NywrbmVvbmAuCistCistIyMgdGFyZ2V0LWNwdQorLQorLS0gU3ludGF4OiBgLUMgdGFyZ2V0 LWNwdT08Y3B1PmAKKy0KKy0tIFNldHMgdGhlIGlkZW50aWZpZXIgb2YgYSBDUFUgZmFtaWx5IC8g bW9kZWwgZm9yIHdoaWNoIHRvIGJ1aWxkIGFuZCBvcHRpbWl6ZSB0aGUgY29kZS4KKy0KKy0gICoq RXhhbXBsZSoqOiBgUlVTVEZMQUdTPSctQyB0YXJnZXQtY3B1PWNvcnRleC1hNzUnYAorLQorLS0g VG8gbGlzdCBhbGwgc3VwcG9ydGVkIHRhcmdldCBDUFVzIGZvciBhIGNlcnRhaW4gdGFyZ2V0IHRy aXBsZSwgdXNlOgorLQorLSAgYGBgc2gKKy0gIHJ1c3RjIC0tdGFyZ2V0PSR7VFJJUExFfSAtLXBy aW50IHRhcmdldC1jcHVzCistICBgYGAKKy0KKy0gICoqRXhhbXBsZSoqOgorLQorLSAgYGBgc2gK Ky0gIHJ1c3RjIC0tdGFyZ2V0PWk2ODYtcGMtd2luZG93cy1tc3ZjIC0tcHJpbnQgdGFyZ2V0LWNw dXMKKy0gIGBgYAorLQorLS0gVGhlIGNvbXBpbGVyIHdpbGwgdHJhbnNsYXRlIHRoaXMgaW50byBh IGxpc3Qgb2YgdGFyZ2V0IGZlYXR1cmVzLiBUaGVyZWZvcmUsCistICBpbmRpdmlkdWFsIGZlYXR1 cmUgY2hlY2tzIChgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiLi4uIildYCkgd2lsbCBzdGlsbAor LSAgd29yayBwcm9wZXJseS4KKy0KKy0tIEl0IHdpbGwgY2F1c2UgdGhlIGNvZGUgZ2VuZXJhdG9y IHRvIG9wdGltaXplIHRoZSBnZW5lcmF0ZWQgY29kZSBmb3IgdGhhdAorLSAgc3BlY2lmaWMgQ1BV IG1vZGVsLgorLQorLS0gVXNpbmcgYG5hdGl2ZWAgYXMgdGhlIENQVSBtb2RlbCB3aWxsIGNhdXNl IFJ1c3QgdG8gZ2VuZXJhdGUgYW5kIG9wdGltaXplIGNvZGUKKy0gIGZvciB0aGUgQ1BVIHJ1bm5p bmcgdGhlIGNvbXBpbGVyLiBJdCBpcyB1c2VmdWwgd2hlbiBidWlsZGluZyBwcm9ncmFtcyB3aGlj aCB5b3UKKy0gIHBsYW4gdG8gb25seSB1c2UgbG9jYWxseS4gVGhpcyBzaG91bGQgbmV2ZXIgYmUg dXNlZCB3aGVuIHRoZSBnZW5lcmF0ZWQgcHJvZ3JhbXMKKy0gIGFyZSBtZWFudCB0byBiZSBydW4g b24gb3RoZXIgY29tcHV0ZXJzLCBzdWNoIGFzIHdoZW4gcGFja2FnaW5nIGZvciBkaXN0cmlidXRp b24KKy0gIG9yIGNyb3NzLWNvbXBpbGluZy4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3BlcmYtZ3VpZGUvc3JjL3ZlcnQtaG9yLW9wcy5tZCBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvcGVyZi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvcGVy Zi1ndWlkZS9zcmMvdmVydC1ob3Itb3BzLm1kCisrKysgL2Rldi9udWxsCitAQCAtMSw3NiArMCww IEBACistIyBWZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBvcGVyYXRpb25zCistCistSW4gU0lNRCB0 ZXJtaW5vbG9neSwgZWFjaCB2ZWN0b3IgaGFzIGEgY2VydGFpbiAid2lkdGgiIChudW1iZXIgb2Yg bGFuZXMpLgorLUEgdmVjdG9yIHByb2Nlc3NvciBpcyBhYmxlIHRvIHBlcmZvcm0gdHdvIGtpbmRz IG9mIG9wZXJhdGlvbnMgb24gYSB2ZWN0b3I6CistCistLSBWZXJ0aWNhbCBvcGVyYXRpb25zOgor LSAgb3BlcmF0ZSBvbiB0d28gdmVjdG9ycyBvZiB0aGUgc2FtZSB3aWR0aCwgcmVzdWx0IGhhcyBz YW1lIHdpZHRoCistCistKipFeGFtcGxlKio6IHZlcnRpY2FsIGFkZGl0aW9uIG9mIHR3byBgZjMy eDRgIHZlY3RvcnMKKy0KKy0gICAgICAlMCAgICAgPT0gfCAyIHwgLTMuNSB8ICAwIHwgNyB8Cist ICAgICAgICAgICAgICAgICAgKyAgICAgKyAgICAgKyAgICsKKy0gICAgICAlMSAgICAgPT0gfCA0 IHwgIDEuNSB8IC0xIHwgMCB8CistICAgICAgICAgICAgICAgICAgPSAgICAgPSAgICAgPSAgID0K Ky0gICAgJTAgKyAlMSAgPT0gfCA2IHwgIC0yICB8IC0xIHwgNyB8CistCistLSBIb3Jpem9udGFs IG9wZXJhdGlvbnM6CistICByZWR1Y2UgdGhlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzIGluIHNv bWUgd2F5LAorLSAgdGhlIHJlc3VsdCdzIGVsZW1lbnRzIGNvbWJpbmUgaW5mb3JtYXRpb24gZnJv bSB0aGUgdHdvIG9yaWdpbmFsIG9uZXMKKy0KKy0qKkV4YW1wbGUqKjogaG9yaXpvbnRhbCBhZGRp dGlvbiBvZiB0d28gYHU2NHgyYCB2ZWN0b3JzCistCistICAgICAgJTAgICAgID09IHwgMSB8ICAz IHwKKy0gICAgICAgICAgICAgICAgICDilJTilIAr4pSA4pSA4pSA4pSYCistICAgICAgICAgICAg ICAgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilJAKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAg4pSCCistICAgICAgJTEgICAgID09IHwgNCB8IC0xIHwgIOKUggorLSAgICAgICAg ICAgICAgICAgIOKUlOKUgCvilIDilIDilJggICAg4pSCCistICAgICAgICAgICAgICAgICAgICDi lJTilIDilIDilIDilJAgICDilIIKKy0gICAgICAgICAgICAgICAgICAgICAgICDilIIgICDilIIK Ky0gICAgICAgICAgICAgICAgICDilIzilIDilIDilIDilIDilIDilILilIDilIDilIDilJgKKy0g ICAgICAgICAgICAgICAgICDilrwgICAgIOKWvAorLSAgICAlMCArICUxICA9PSB8IDQgfCAgIDMg fAorLQorLSMjIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb24gb2YgaG9yaXpvbnRhbCBvcGVyYXRp b25zCistCistVGhlIHJlc3VsdCBvZiB2ZXJ0aWNhbCBvcGVyYXRpb25zLCBsaWtlIHZlY3RvciBu ZWdhdGlvbjogYC1hYCwgZm9yIGEgZ2l2ZW4gbGFuZSwKKy1kb2VzIG5vdCBkZXBlbmQgb24gdGhl IHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uIGZvciB0aGUgb3RoZXIgbGFuZXMuIFRoZSByZXN1bHQK Ky1vZiBob3Jpem9udGFsIG9wZXJhdGlvbnMsIGxpa2UgdGhlIHZlY3RvciBgc3VtYCByZWR1Y3Rp b246IGBhLnN1bSgpYCwgZGVwZW5kcyBvbgorLXRoZSB2YWx1ZSBvZiBhbGwgdmVjdG9yIGxhbmVz LgorLQorLUluIHZpcnR1YWxseSBhbGwgYXJjaGl0ZWN0dXJlcyB2ZXJ0aWNhbCBvcGVyYXRpb25z IGFyZSBmYXN0LCB3aGlsZSBob3Jpem9udGFsCistb3BlcmF0aW9ucyBhcmUsIGJ5IGNvbXBhcmlz b24sIHZlcnkgc2xvdy4KKy0KKy1Db25zaWRlciB0aGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMg Zm9yIGNvbXB1dGluZyB0aGUgc3VtIG9mIGFsbCBgZjMyYCB2YWx1ZXMKKy1pbiBhIHNsaWNlOgor LQorLWBgYHJ1c3QKKy1mbiBmYXN0X3N1bSh4OiAmW2YzMl0pIC0+IGYzMiB7CistICAgIGFzc2Vy dCEoeC5sZW4oKSAlIDQgPT0gMCk7CistICAgIGxldCBtdXQgc3VtID0gZjMyeDQ6OnNwbGF0KDAu KTsgLy8gWzAuLCAwLiwgMC4sIDAuXQorLSAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9i eSg0KSB7CistICAgICAgICBzdW0gKz0gZjMyeDQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ4W2ku Ll0pOworLSAgICB9CistICAgIHN1bS5zdW0oKQorLX0KKy0KKy1mbiBzbG93X3N1bSh4OiAmW2Yz Ml0pIC0+IGYzMiB7CistICAgIGFzc2VydCEoeC5sZW4oKSAlIDQgPT0gMCk7CistICAgIGxldCBt dXQgc3VtOiBmMzIgPSAwLjsKKy0gICAgZm9yIGkgaW4gKDAuLngubGVuKCkpLnN0ZXBfYnkoNCkg eworLSAgICAgICAgc3VtICs9IGYzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKS5z dW0oKTsKKy0gICAgfQorLSAgICBzdW0KKy19CistYGBgCistCistVGhlIGlubmVyIGxvb3Agb3Zl ciB0aGUgc2xpY2UgaXMgd2hlcmUgdGhlIGJ1bGsgb2YgdGhlIHdvcmsgYWN0dWFsbHkgaGFwcGVu cy4KKy1UaGVyZSwgdGhlIGBmYXN0X3N1bWAgZnVuY3Rpb24gcGVyZm9ybSB2ZXJ0aWNhbCBvcGVy YXRpb25zIGludG8gYSB2ZWN0b3IsIGRvaW5nCistYSBzaW5nbGUgaG9yaXpvbnRhbCByZWR1Y3Rp b24gYXQgdGhlIGVuZCwgd2hpbGUgdGhlIGBzbG93X3N1bWAgZnVuY3Rpb24gcGVyZm9ybXMKKy1o b3Jpem9udGFsIHZlY3RvciBvcGVyYXRpb25zIGluc2lkZSBvZiB0aGUgbG9vcC4KKy0KKy1PbiBh bGwgd2lkZWx5LXVzZWQgYXJjaGl0ZWN0dXJlcywgYGZhc3Rfc3VtYCBpcyBhIGxhcmdlIGNvbnN0 YW50IGZhY3RvciBmYXN0ZXIKKy10aGFuIGBzbG93X3N1bWAuIFlvdSBjYW4gcnVuIHRoZSBbc2xp Y2Vfc3VtXSgpIGV4YW1wbGUgYW5kIHNlZSBmb3IgeW91cnNlbGYuIE9uCistdGhlIHBhcnRpY3Vs YXIgbWFjaGluZSB0ZXN0ZWQgdGhlcmUgdGhlIGFsZ29yaXRobSB1c2luZyB0aGUgaG9yaXpvbnRh bCB2ZWN0b3IKKy1hZGRpdGlvbiBpcyAyLjd4IHNsb3dlciB0aGFuIHRoZSBvbmUgdXNpbmcgdmVy dGljYWwgdmVjdG9yIG9wZXJhdGlvbnMhCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9ydXN0Zm10LnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3J1 c3RmbXQudG9tbAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3J1c3RmbXQudG9tbAorKysrIC9kZXYvbnVsbAorQEAgLTEsNSArMCww IEBACistbWF4X3dpZHRoID0gMTEwCistdXNlX3NtYWxsX2hldXJpc3RpY3MgPSAiTWF4IgorLXdy YXBfY29tbWVudHMgPSB0cnVlCistZWRpdGlvbiA9ICIyMDE4IgorLWVycm9yX29uX2xpbmVfb3Zl cmZsb3cgPSB0cnVlCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSwzMDggKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHRoZSBTaW1kPFtUOyBOXT4gQVBJcwor LQorLSNbbWFjcm9fdXNlXQorLW1vZCBiaXRtYXNrOworLXB1YihjcmF0ZSkgbW9kIGNhc3Q7Cist I1ttYWNyb191c2VdCistbW9kIGNtcDsKKy0jW21hY3JvX3VzZV0KKy1tb2QgZGVmYXVsdDsKKy0j W21hY3JvX3VzZV0KKy1tb2QgZm10OworLSNbbWFjcm9fdXNlXQorLW1vZCBmcm9tOworLSNbbWFj cm9fdXNlXQorLW1vZCBoYXNoOworLSNbbWFjcm9fdXNlXQorLW1vZCBtYXRoOworLSNbbWFjcm9f dXNlXQorLW1vZCBtaW5pbWFsOworLSNbbWFjcm9fdXNlXQorLW1vZCBvcHM7CistI1ttYWNyb191 c2VdCistbW9kIHB0cjsKKy0jW21hY3JvX3VzZV0KKy1tb2QgcmVkdWN0aW9uczsKKy0jW21hY3Jv X3VzZV0KKy1tb2Qgc2VsZWN0OworLSNbbWFjcm9fdXNlXQorLW1vZCBzaHVmZmxlOworLSNbbWFj cm9fdXNlXQorLW1vZCBzaHVmZmxlMV9keW47CistI1ttYWNyb191c2VdCistbW9kIHNsaWNlOwor LSNbbWFjcm9fdXNlXQorLW1vZCBzd2FwX2J5dGVzOworLSNbbWFjcm9fdXNlXQorLW1vZCBiaXRf bWFuaXA7CistCistI1tjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKV0KKy1wdWIoY3JhdGUpIG1v ZCBpbnRvX2JpdHM7CistCistbWFjcm9fcnVsZXMhIGltcGxfaSB7CistICAgIChbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQKKy0g ICAgIHwgJGllbGVtX3R5OmlkZW50LCAkaWJpdG1hc2tfdHk6aWRlbnQgfCAkdGVzdF90dDp0dCB8 ICQoJGVsZW1faWRzOmlkZW50KSwqCistICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5OmlkZW50 KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4geworLSAgICAgICAgaW1wbF9taW5pbWFsX2l1ZiEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgIHwgJCgkZWxlbV9pZHMpLCogfCAkKCNbJGRvY10pKik7 CistICAgICAgICBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX2FyaXRo bWV0aWMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAg ICAgIGltcGxfb3BzX3ZlY3Rvcl9iaXR3aXNlISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICghKDAgYXMgJGVsZW1fdHkpLCAwKQorLSAg ICAgICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3NjYWxhcl9iaXR3aXNlISgKKy0gICAgICAgICAg ICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICghKDAgYXMgJGVs ZW1fdHkpLCAwKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9zaGlmdHMh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGlt cGxfb3BzX3NjYWxhcl9zaGlmdHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rvcl9yb3RhdGVzIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3Jf bmVnIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAg ICBpbXBsX29wc192ZWN0b3JfaW50X21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1w bF9yZWR1Y3Rpb25faW50ZWdlcl9hcml0aG1ldGljISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgKTsK Ky0gICAgICAgIGltcGxfcmVkdWN0aW9uX21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICAp OworLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fYml0d2lzZSEoCistICAgICAgICAgICAgWyRlbGVt X3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAg ICAgICB8ICh8eHx7IHggYXMgJGVsZW1fdHkgfSkgfCAoISgwIGFzICRlbGVtX3R5KSwgMCkKKy0g ICAgICAgICk7CistICAgICAgICBpbXBsX2ZtdF9kZWJ1ZyEoWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mbXRfbG93ZXJfaGV4IShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2Zt dF91cHBlcl9oZXghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK Ky0gICAgICAgIGltcGxfZm10X29jdGFsIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2ZtdF9iaW5hcnkhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZnJvbV9hcnJheSEoWyRl bGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMSwgMSkpOworLSAgICAg ICAgaW1wbF9mcm9tX3ZlY3RvcnMhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06 ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNfdHkpLCoKKy0gICAgICAgICk7Cist ICAgICAgICBpbXBsX2RlZmF1bHQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfaGFzaCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxl X2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9zbGljZV9mcm9tX3NsaWNlIShbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NsaWNl X3dyaXRlX3RvX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfYml0X21hbmlwIShbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NodWZmbGUxX2R5 biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAg aW1wbF9jbXBfcGFydGlhbF9lcSEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTog JHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwgMSkKKy0gICAgICAgICk7CistICAgICAgICBpbXBs X2NtcF9lcSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoMCwg MSkpOworLSAgICAgICAgaW1wbF9jbXBfdmVydGljYWwhKAorLSAgICAgICAgICAgIFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHksIGZhbHNlLCAoMSwgMCkgfCAkdGVzdF90 dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfY21wX3BhcnRpYWxfb3JkIShbJGVsZW1fdHk7 ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9vcmQh KFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpKTsKKy0g ICAgICAgIGltcGxfYml0bWFzayEoJHR1cGxlX2lkIHwgJGliaXRtYXNrX3R5IHwgKC0xLCAwKSB8 ICR0ZXN0X3R0KTsKKy0KKy0gICAgICAgIHRlc3Rfc2VsZWN0ISgkZWxlbV90eSwgJG1hc2tfdHks ICR0dXBsZV9pZCwgKDEsIDIpIHwgJHRlc3RfdHQpOworLSAgICAgICAgdGVzdF9jbXBfcGFydGlh bF9vcmRfaW50IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7Cist ICAgICAgICB0ZXN0X3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lk IHwgJHRlc3RfdHQpOworLSAgICB9CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3UgeworLSAg ICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNr X3R5OmlkZW50CistICAgICB8ICRpZWxlbV90eTppZGVudCwgJGliaXRtYXNrX3R5OmlkZW50IHwg JHRlc3RfdHQ6dHQgfCAkKCRlbGVtX2lkczppZGVudCksKgorLSAgICAgfCBGcm9tOiAkKCRmcm9t X3ZlY190eTppZGVudCksKiB8ICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0gICAgICAgIGltcGxf bWluaW1hbF9pdWYhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8 ICR0ZXN0X3R0CistICAgICAgICAgICAgICAgICAgICAgICAgICB8ICQoJGVsZW1faWRzKSwqIHwg JCgjWyRkb2NdKSopOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX2FyaXRobWV0aWMhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfb3Bz X3NjYWxhcl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVz dF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3JfYml0d2lzZSEoCistICAgICAgICAgICAg WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoISgwIGFzICRlbGVt X3R5KSwgMCkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX29wc19zY2FsYXJfYml0d2lzZSEo CistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQg fCAoISgwIGFzICRlbGVtX3R5KSwgMCkKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX29wc192 ZWN0b3Jfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 CistICAgICAgICBpbXBsX29wc19zY2FsYXJfc2hpZnRzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX29wc192ZWN0b3Jfcm90YXRlcyEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1w bF9vcHNfdmVjdG9yX2ludF9taW5fbWF4ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfcmVk dWN0aW9uX2ludGVnZXJfYXJpdGhtZXRpYyEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJGllbGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAg ICAgICBpbXBsX3JlZHVjdGlvbl9taW5fbWF4ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0g ICAgICAgIGltcGxfcmVkdWN0aW9uX2JpdHdpc2UhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsg JGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAgICAgICAg fCAofHh8eyB4IGFzICRlbGVtX3R5IH0pIHwgKCEoMCBhcyAkZWxlbV90eSksIDApCistICAgICAg ICApOworLSAgICAgICAgaW1wbF9mbXRfZGVidWchKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfZm10X2xvd2VyX2hleCEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9mbXRfdXBw ZXJfaGV4IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAg ICAgICBpbXBsX2ZtdF9vY3RhbCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9mbXRfYmluYXJ5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAk dHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2Zyb21fYXJyYXkhKFskZWxlbV90 eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDEsIDEpKTsKKy0gICAgICAgIGlt cGxfZnJvbV92ZWN0b3JzISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVjX3R5KSwqCistICAgICAgICApOworLSAgICAg ICAgaW1wbF9kZWZhdWx0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCk7CistICAgICAgICBpbXBsX2hhc2ghKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfc2xpY2VfZnJvbV9zbGljZSEoWyRlbGVtX3R5OyAk ZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9zbGljZV93cml0 ZV90b19zbGljZSEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOwor LSAgICAgICAgaW1wbF9zd2FwX2J5dGVzIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9zaHVmZmxlMV9keW4hKFsk ZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxf Y21wX3BhcnRpYWxfZXEhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0IHwgKDEsIDApCistICAgICAgICApOworLSAgICAgICAgaW1wbF9jbXBf ZXEhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKDAsIDEpKTsK Ky0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRl bGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5LCBmYWxzZSwgKDEsIDApIHwgJHRlc3RfdHQKKy0g ICAgICAgICk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX29yZCEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfb3JkIShbJGVs ZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICgwLCAxKSk7CistICAgICAg ICBpbXBsX2JpdG1hc2shKCR0dXBsZV9pZCB8ICRpYml0bWFza190eSB8ICgkaWVsZW1fdHk6Om1h eF92YWx1ZSgpLCAwKSB8CistICAgICAgICAgICAgICAgICAgICAgICR0ZXN0X3R0KTsKKy0KKy0g ICAgICAgIHRlc3Rfc2VsZWN0ISgkZWxlbV90eSwgJG1hc2tfdHksICR0dXBsZV9pZCwgKDEsIDIp IHwgJHRlc3RfdHQpOworLSAgICAgICAgdGVzdF9jbXBfcGFydGlhbF9vcmRfaW50IShbJGVsZW1f dHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICB0ZXN0X3NodWZm bGUxX2R5biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAg ICB9CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2YgeworLSAgICAoWyRlbGVtX3R5OmlkZW50 OyAkZWxlbV9uOmV4cHJdOiAkdHVwbGVfaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50CistICAgICB8 ICRpZWxlbV90eTppZGVudCB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxlbV9pZHM6aWRlbnQpLCoKKy0g ICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCogfCAkKCNbJGRvYzptZXRhXSkqKSA9 PiB7CistICAgICAgICBpbXBsX21pbmltYWxfaXVmIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90dAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg fCAkKCRlbGVtX2lkcyksKiB8ICQoI1skZG9jXSkqKTsKKy0gICAgICAgIGltcGxfb3BzX3ZlY3Rv cl9hcml0aG1ldGljIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7 CistICAgICAgICBpbXBsX29wc19zY2FsYXJfYXJpdGhtZXRpYyEoWyRlbGVtX3R5OyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9vcHNfdmVjdG9yX25lZyEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1w bF9vcHNfdmVjdG9yX2Zsb2F0X21pbl9tYXghKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0CistICAgICAgICApOworLSAgICAgICAgaW1wbF9y ZWR1Y3Rpb25fZmxvYXRfYXJpdGhtZXRpYyEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fbWlu X21heCEoCistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJGll bGVtX3R5IHwgJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2ZtdF9kZWJ1ZyEo WyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1w bF9mcm9tX2FycmF5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8 ICgxLiwgMS4pKTsKKy0gICAgICAgIGltcGxfZnJvbV92ZWN0b3JzISgKKy0gICAgICAgICAgICBb JGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCB8ICQoJGZyb21fdmVjX3R5 KSwqCistICAgICAgICApOworLSAgICAgICAgaW1wbF9kZWZhdWx0IShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2NtcF9wYXJ0aWFsX2Vx ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90 dCB8ICgxLiwgMC4pCistICAgICAgICApOworLSAgICAgICAgaW1wbF9zbGljZV9mcm9tX3NsaWNl IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBp bXBsX3NsaWNlX3dyaXRlX3RvX3NsaWNlIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQg fCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX3NodWZmbGUxX2R5biEoWyRlbGVtX3R5OyAkZWxl bV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLQorLSAgICAgICAgaW1wbF9mbG9hdF9jb25z dHMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCk7CistICAgICAgICBpbXBsX2Zsb2F0 X2NhdGVnb3J5IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5KTsKKy0K Ky0gICAgICAgIC8vIGZsb2F0aW5nLXBvaW50IG1hdGgKKy0gICAgICAgIGltcGxfbWF0aF9mbG9h dF9hYnMhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAg ICAgIGltcGxfbWF0aF9mbG9hdF9jb3MhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9leHAhKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9s biEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAg aW1wbF9tYXRoX2Zsb2F0X211bF9hZGQhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8 ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9tdWxfYWRkZSEoWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9tYXRoX2Zs b2F0X3Bvd2YhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0g ICAgICAgIGltcGxfbWF0aF9mbG9hdF9yZWNwcmUhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBs ZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9yc3FydGUhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfbWF0 aF9mbG9hdF9zaW4hKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsK Ky0gICAgICAgIGltcGxfbWF0aF9mbG9hdF9zcXJ0IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX21hdGhfZmxvYXRfc3FydGUhKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21w X3ZlcnRpY2FsISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQs ICRtYXNrX3R5LCBmYWxzZSwgKDEuLCAwLikKKy0gICAgICAgICAgICAgICAgfCAkdGVzdF90dAor LSAgICAgICAgKTsKKy0KKy0gICAgICAgIHRlc3Rfc2VsZWN0ISgkZWxlbV90eSwgJG1hc2tfdHks ICR0dXBsZV9pZCwgKDEuLCAyLikgfCAkdGVzdF90dCk7CistICAgICAgICB0ZXN0X3JlZHVjdGlv bl9mbG9hdF9taW5fbWF4ISgKKy0gICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVw bGVfaWQgfCAkdGVzdF90dAorLSAgICAgICAgKTsKKy0gICAgICAgIHRlc3Rfc2h1ZmZsZTFfZHlu IShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgIH0KKy19 CistCistbWFjcm9fcnVsZXMhIGltcGxfbSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X246ZXhwcl06ICR0dXBsZV9pZDppZGVudAorLSAgICAgfCAkaWVsZW1fdHk6aWRlbnQsICRpYml0 bWFza190eTppZGVudAorLSAgICAgfCAkdGVzdF90dDp0dCB8ICQoJGVsZW1faWRzOmlkZW50KSwq IHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQpLCoKKy0gICAgIHwgJCgjWyRkb2M6bWV0YV0p KikgPT4geworLSAgICAgICAgaW1wbF9taW5pbWFsX21hc2shKAorLSAgICAgICAgICAgIFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICRpZWxlbV90eSB8ICR0ZXN0X3R0CistICAgICAg ICAgICAgfCAkKCRlbGVtX2lkcyksKiB8ICQoI1skZG9jXSkqCistICAgICAgICApOworLSAgICAg ICAgaW1wbF9vcHNfdmVjdG9yX21hc2tfYml0d2lzZSEoCistICAgICAgICAgICAgWyRlbGVtX3R5 OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAodHJ1ZSwgZmFsc2UpCistICAgICAg ICApOworLSAgICAgICAgaW1wbF9vcHNfc2NhbGFyX21hc2tfYml0d2lzZSEoCistICAgICAgICAg ICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAodHJ1ZSwgZmFs c2UpCistICAgICAgICApOworLSAgICAgICAgaW1wbF9yZWR1Y3Rpb25fYml0d2lzZSEoCistICAg ICAgICAgICAgW2Jvb2w7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkaWVsZW1fdHkgfCAkdGVzdF90 dAorLSAgICAgICAgICAgICAgICB8ICh8eHx7IHggIT0gMCB9KSB8ICh0cnVlLCBmYWxzZSkKKy0g ICAgICAgICk7CistICAgICAgICBpbXBsX3JlZHVjdGlvbl9tYXNrIShbJGVsZW1fdHk7ICRlbGVt X25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2ZtdF9kZWJ1ZyEoW2Jv b2w7ICRlbGVtX25dOiAkdHVwbGVfaWQgfCAkdGVzdF90dCk7CistICAgICAgICBpbXBsX2Zyb21f YXJyYXkhKAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0 ZXN0X3R0CistICAgICAgICAgICAgfCAoY3JhdGU6OiRlbGVtX3R5OjpuZXcodHJ1ZSksIHRydWUp CistICAgICAgICApOworLSAgICAgICAgaW1wbF9mcm9tX3ZlY3RvcnMhKAorLSAgICAgICAgICAg IFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgJCgkZnJvbV92ZWNf dHkpLCoKKy0gICAgICAgICk7CistICAgICAgICBpbXBsX2RlZmF1bHQhKFtib29sOyAkZWxlbV9u XTogJHR1cGxlX2lkIHwgJHRlc3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9lcSEo CistICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQg fCAodHJ1ZSwgZmFsc2UpCistICAgICAgICApOworLSAgICAgICAgaW1wbF9jbXBfZXEhKAorLSAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0IHwgKHRy dWUsIGZhbHNlKQorLSAgICAgICAgKTsKKy0gICAgICAgIGltcGxfY21wX3ZlcnRpY2FsISgKKy0g ICAgICAgICAgICBbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICR0dXBsZV9pZCwgdHJ1 ZSwgKHRydWUsIGZhbHNlKQorLSAgICAgICAgICAgIHwgJHRlc3RfdHQKKy0gICAgICAgICk7Cist ICAgICAgICBpbXBsX3NlbGVjdCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9jbXBfcGFydGlhbF9vcmQhKFskZWxlbV90eTsgJGVsZW1f bl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfY21wX29yZCEoCistICAg ICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkIHwgJHRlc3RfdHQgfCAoZmFs c2UsIHRydWUpCistICAgICAgICApOworLSAgICAgICAgaW1wbF9zaHVmZmxlMV9keW4hKFskZWxl bV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIGltcGxfYml0 bWFzayEoJHR1cGxlX2lkIHwgJGliaXRtYXNrX3R5IHwgKHRydWUsIGZhbHNlKSB8ICR0ZXN0X3R0 KTsKKy0KKy0gICAgICAgIHRlc3RfY21wX3BhcnRpYWxfb3JkX21hc2shKFskZWxlbV90eTsgJGVs ZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAgICAgIHRlc3Rfc2h1ZmZsZTFfZHlu X21hc2shKFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCB8ICR0ZXN0X3R0KTsKKy0gICAg fQorLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9jb25zdF9wIHsKKy0gICAgKFskZWxlbV90eTp0 eTsgJGVsZW1fbjpleHByXTogJHR1cGxlX2lkOmlkZW50LCAkbWFza190eTppZGVudCwKKy0gICAg ICR1c2l6ZV90eTppZGVudCwgJGlzaXplX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0IHwg JCgkZWxlbV9pZHM6aWRlbnQpLCoKKy0gICAgIHwgRnJvbTogJCgkZnJvbV92ZWNfdHk6aWRlbnQp LCogfCAkKCNbJGRvYzptZXRhXSkqKSA9PiB7CistICAgICAgICBpbXBsX21pbmltYWxfcCEoCist ICAgICAgICAgICAgWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSwgJHVz aXplX3R5LCAkaXNpemVfdHkKKy0gICAgICAgICAgICAgICAgfCByZWZfIHwgJHRlc3RfdHQgfCAk KCRlbGVtX2lkcyksKgorLSAgICAgICAgICAgICAgICB8ICgxIGFzICRlbGVtX3R5LCAwIGFzICRl bGVtX3R5KSB8ICQoI1skZG9jXSkqCistICAgICAgICApOworLSAgICAgICAgaW1wbF9wdHJfcmVh ZCEoWyRlbGVtX3R5OyAkZWxlbV9uXTogJHR1cGxlX2lkLCAkbWFza190eSB8ICR0ZXN0X3R0KTsK Ky0gICAgfQorLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tdXRfcCB7CistICAgIChbJGVsZW1f dHk6dHk7ICRlbGVtX246ZXhwcl06ICR0dXBsZV9pZDppZGVudCwgJG1hc2tfdHk6aWRlbnQsCist ICAgICAkdXNpemVfdHk6aWRlbnQsICRpc2l6ZV90eTppZGVudAorLSAgICAgfCAkdGVzdF90dDp0 dCB8ICQoJGVsZW1faWRzOmlkZW50KSwqCistICAgICB8IEZyb206ICQoJGZyb21fdmVjX3R5Omlk ZW50KSwqIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4geworLSAgICAgICAgaW1wbF9taW5pbWFsX3Ah KAorLSAgICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fbl06ICR0dXBsZV9pZCwgJG1hc2tfdHks ICR1c2l6ZV90eSwgJGlzaXplX3R5CistICAgICAgICAgICAgICAgIHwgcmVmX211dF8gfCAkdGVz dF90dCB8ICQoJGVsZW1faWRzKSwqCistICAgICAgICAgICAgICAgIHwgKDEgYXMgJGVsZW1fdHks IDAgYXMgJGVsZW1fdHkpIHwgJCgjWyRkb2NdKSoKKy0gICAgICAgICk7CistICAgICAgICBpbXBs X3B0cl9yZWFkIShbJGVsZW1fdHk7ICRlbGVtX25dOiAkdHVwbGVfaWQsICRtYXNrX3R5IHwgJHRl c3RfdHQpOworLSAgICAgICAgaW1wbF9wdHJfd3JpdGUhKFskZWxlbV90eTsgJGVsZW1fbl06ICR0 dXBsZV9pZCwgJG1hc2tfdHkgfCAkdGVzdF90dCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdF9tYW5pcC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9iaXRfbWFuaXAucnMKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2JpdF9tYW5pcC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTI5ICswLDAgQEAKKy0vLyEgQml0 IG1hbmlwdWxhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfYml0X21hbmlwIHsKKy0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFJldHVybnMg dGhlIG51bWJlciBvZiBvbmVzIGluIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YKKy0gICAg ICAgICAgICAvLy8gdGhlIGxhbmVzIG9mIGBzZWxmYC4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBwdWIgZm4gY291bnRfb25lcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgc3VwZXI6OmNvZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0cG9wKHNlbGYp CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIg b2YgemVyb3MgaW4gdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZgorLSAgICAgICAgICAgIC8v LyB0aGUgbGFuZXMgb2YgYHNlbGZgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBjb3VudF96ZXJvcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg c3VwZXI6OmNvZGVnZW46OmJpdF9tYW5pcDo6Qml0TWFuaXA6OmN0cG9wKCFzZWxmKQorLSAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxlYWRp bmcgemVyb3MgaW4gdGhlIGJpbmFyeQorLSAgICAgICAgICAgIC8vLyByZXByZXNlbnRhdGlvbiBv ZiB0aGUgbGFuZXMgb2YgYHNlbGZgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBsZWFkaW5nX3plcm9zKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICBzdXBlcjo6Y29kZWdlbjo6Yml0X21hbmlwOjpCaXRNYW5pcDo6Y3RseihzZWxmKQorLSAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRyYWls aW5nIHplcm9zIGluIHRoZSBiaW5hcnkKKy0gICAgICAgICAgICAvLy8gcmVwcmVzZW50YXRpb24g b2YgdGhlIGxhbmVzIG9mIGBzZWxmYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBwdWIgZm4gdHJhaWxpbmdfemVyb3Moc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHN1cGVyOjpjb2RlZ2VuOjpiaXRfbWFuaXA6OkJpdE1hbmlwOjpjdHR6KHNlbGYpCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgICNbYWxsb3cob3ZlcmZsb3dpbmdfbGl0ZXJhbHMpXQorLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9iaXRfbWFuaXA+XSB7CistICAgICAgICAgICAgICAgICAgICAjIVthbGxvdyhj b25zdF9pdGVtX211dGF0aW9uKV0KKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0KKy0gICAgICAgICAgICAgICAgICAgIGNvbnN0IExBTkVfV0lEVEg6IHVzaXplID0gbWVtOjpz aXplX29mOjo8JGVsZW1fdHk+KCkgKiA4OworLQorLSAgICAgICAgICAgICAgICAgICAgbWFjcm9f cnVsZXMhIHRlc3RfZnVuYyB7CistICAgICAgICAgICAgICAgICAgICAgICAgKCR4OmV4cHIsICRm dW5jOmlkZW50KSA9PiB7eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFj dHVhbCA9ICR4OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsID0gYWN0 dWFsLnJlcGxhY2UoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkeC5leHRyYWN0KGkpLiRmdW5jKCkg YXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGV4cGVjdGVkID0gJHguJGZ1bmMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShhY3R1YWwsIGV4cGVjdGVkKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9fTsK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJZ VEVTOiBbdTg7IDY0XSA9IFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0 LCA1LCA2LCA3LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEz LCAxNCwgMTUsCistICAgICAgICAgICAgICAgICAgICAgICAgMTYsIDE3LCAxOCwgMTksIDIwLCAy MSwgMjIsIDIzLAorLSAgICAgICAgICAgICAgICAgICAgICAgIDI0LCAyNSwgMjYsIDI3LCAyOCwg MjksIDMwLCAzMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAzMiwgMzMsIDM0LCAzNSwgMzYs IDM3LCAzOCwgMzksCistICAgICAgICAgICAgICAgICAgICAgICAgNDAsIDQxLCA0MiwgNDMsIDQ0 LCA0NSwgNDYsIDQ3LAorLSAgICAgICAgICAgICAgICAgICAgICAgIDQ4LCA0OSwgNTAsIDUxLCA1 MiwgNTMsIDU0LCA1NSwKKy0gICAgICAgICAgICAgICAgICAgICAgICA1NiwgNTcsIDU4LCA1OSwg NjAsIDYxLCA2MiwgNjMsCistICAgICAgICAgICAgICAgICAgICBdOworLQorLSAgICAgICAgICAg ICAgICAgICAgZm4gbG9hZF9ieXRlcygpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGVsZW1zOiAmbXV0IFskZWxlbV90eV0gPSB1bnNhZmUgeworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzbGljZTo6ZnJvbV9yYXdfcGFydHNfbXV0KAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQllURVMuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OmxhbmVzKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAg ICAgICAgICAgICAgICAgICAgICRpZDo6ZnJvbV9zbGljZV91bmFsaWduZWQoZWxlbXMpCistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIGNvdW50X29uZXMoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9mdW5jISgkaWQ6OnNwbGF0KDApLCBjb3VudF9vbmVzKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoITApLCBjb3VudF9vbmVzKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMoKSwgY291bnRfb25l cyk7CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGNvdW50X3plcm9zKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwgY291bnRfemVyb3MpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCghMCksIGNvdW50 X3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKGxvYWRfYnl0ZXMo KSwgY291bnRfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBsZWFkaW5nX3plcm9z KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwKSwg bGVhZGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9mdW5jISgkaWQ6 OnNwbGF0KDEpLCBsZWFkaW5nX3plcm9zKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBz b21lIGltcGxlbWVudGF0aW9ucyB1c2UgYHBzaHVmYmAgd2hpY2ggaGFzIHVuaXF1ZQorLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGJlaGF2aW9yIHdoZW4gdGhlIDh0aCBiaXQgaXMgc2V0Lgor LSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEoJGlkOjpzcGxhdCgwYjEwMDBfMDAx MCksIGxlYWRpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZnVuYyEo JGlkOjpzcGxhdCghMCksIGxlYWRpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAgICAgICAg IHRlc3RfZnVuYyEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMSA8 PCAoTEFORV9XSURUSCAtIDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVhZGlu Z196ZXJvcworLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9mdW5jIShsb2FkX2J5dGVzKCksIGxlYWRpbmdfemVyb3MpOworLSAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAg ICAgICAgICAgICAgICBmbiB0cmFpbGluZ196ZXJvcygpIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMCksIHRyYWlsaW5nX3plcm9zKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMSksIHRyYWlsaW5nX3plcm9z KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMhKCRpZDo6c3BsYXQoMGIxMDAw XzAwMTApLCB0cmFpbGluZ196ZXJvcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9m dW5jISgkaWQ6OnNwbGF0KCEwKSwgdHJhaWxpbmdfemVyb3MpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfZnVuYyEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3Bs YXQoMSA8PCAoTEFORV9XSURUSCAtIDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dHJhaWxpbmdfemVyb3MKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHRlc3RfZnVuYyEobG9hZF9ieXRlcygpLCB0cmFpbGluZ196ZXJvcyk7Cist ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9iaXRtYXNrLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2JpdG1hc2sucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2JpdG1hc2sucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDc5ICswLDAgQEAKKy0vLyEgQml0bWFzayBBUEkKKy0KKy1tYWNyb19ydWxl cyEgaW1wbF9iaXRtYXNrIHsKKy0gICAgKCRpZDppZGVudCB8ICRpYml0bWFza190eTppZGVudCB8 ICgkc2V0OmV4cHIsICRjbGVhcjpleHByKQorLSAgICAgfCAkdGVzdF90dDp0dCkgPT4geworLSAg ICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBDcmVhdGVzIGEgYml0bWFzayB3aXRo IHRoZSBNU0Igb2YgZWFjaCB2ZWN0b3IgbGFuZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gSWYgdGhlIHZlY3RvciBoYXMgbGVzcyB0aGFuIDggbGFuZXMsIHRoZSBiaXRzIHRo YXQgZG8gbm90CistICAgICAgICAgICAgLy8vIGNvcnJlc3BvbmQgdG8gYW55IHZlY3RvciBsYW5l cyBhcmUgY2xlYXJlZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg Zm4gYml0bWFzayhzZWxmKSAtPiAkaWJpdG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeyBjb2RlZ2VuOjpsbHZtOjpzaW1kX2JpdG1hc2soc2VsZi4wKSB9CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgICNbY2Zn KG5vdCgKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzIxMAorLSAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0X2VuZGlhbiA9ICJiaWciCistICAgICAgICAgICAgICAgICkpXQorLSAgICAg ICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9iaXRtYXNrPl0geworLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAg ICAgICAgICAgICAgICBmbiBiaXRtYXNrKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IGNsZWFyIGFsbCBsYW5lcworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6 OnNwbGF0KCRjbGVhciBhcyBfKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYml0bWFz azogJGliaXRtYXNrX3R5ID0gMDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHZlYy5iaXRtYXNrKCksIGJpdG1hc2spOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHNldCBldmVuIGxhbmVzCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ZWMgPSAk aWQ6OnNwbGF0KCRjbGVhciBhcyBfKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUg MiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYyA9IHZlYy5yZXBs YWNlKGksICRzZXQgYXMgXyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRl IGJpdG1hc2sgd2l0aCBldmVuIGxhbmVzIHNldDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGJpdG1hc2s6ICRpYml0bWFza190eSA9IDA7CistICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRt YXNrIHw9IDEgPDwgaTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHZl Yy5iaXRtYXNrKCksIGJpdG1hc2spOworLQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHNldCBvZGQgbGFuZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZlYyA9ICRp ZDo6c3BsYXQoJGNsZWFyIGFzIF8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAy ICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjID0gdmVjLnJlcGxh Y2UoaSwgJHNldCBhcyBfKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUg Yml0bWFzayB3aXRoIG9kZCBsYW5lcyBzZXQ6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBiaXRtYXNrOiAkaWJpdG1hc2tfdHkgPSAwOworLSAgICAgICAgICAgICAgICAgICAgICAg IGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSAyICE9IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFz ayB8PSAxIDw8IGk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWMu Yml0bWFzaygpLCBiaXRtYXNrKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQg YWxsIGxhbmVzCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQo JHNldCBhcyBfKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJpdG1hc2s6ICRp Yml0bWFza190eSA9IDA7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlk OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFzayB8PSAxIDw8 IGk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodmVjLmJpdG1hc2soKSwgYml0bWFzayk7CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9jYXN0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL2Nhc3QucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwOCArMCwwIEBACist Ly8hIEltcGxlbWVudGF0aW9uIG9mIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAuCistIyFbYWxs b3coY2xpcHB5Ojptb2R1bGVfbmFtZV9yZXBldGl0aW9ucyldCistCistLy8vIE51bWVyaWMgY2Fz dCBmcm9tIGBUYCB0byBgU2VsZmAuCistLy8vCistLy8vID4gTm90ZTogVGhpcyBpcyBhIHRlbXBv cmFyeSB3b3JrYXJvdW5kIHVudGlsIHRoZSBjb252ZXJzaW9uIHRyYWl0cworLS8vLyBzcGVjaWZp ZWQgPiBpbiBbUkZDMjQ4NF0gYXJlIGltcGxlbWVudGVkLgorLS8vLworLS8vLyBOdW1lcmljIGNh c3QgYmV0d2VlbiB2ZWN0b3JzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzLCBzdWNoIHRo YXQ6CistLy8vCistLy8vICogY2FzdGluZyBpbnRlZ2VyIHZlY3RvcnMgd2hvc2UgbGFuZSB0eXBl cyBoYXZlIHRoZSBzYW1lIHNpemUgKGUuZy4gYGkzMnhOYAorLS8vLyAtPiBgdTMyeE5gKSBpcyBh ICoqbm8tb3AqKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYSBsYXJnZXIgaW50ZWdlciB0 byBhIHNtYWxsZXIgaW50ZWdlciAoZS5nLiBgdTMyeE5gIC0+CistLy8vIGB1OHhOYCkgd2lsbCAq KnRydW5jYXRlKiosCistLy8vCistLy8vICogY2FzdGluZyBmcm9tIGEgc21hbGxlciBpbnRlZ2Vy IHRvIGEgbGFyZ2VyIGludGVnZXIgICAoZS5nLiBgdTh4TmAgLT4KKy0vLy8gICBgdTMyeE5gKSB3 aWxsOgorLS8vLyAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHVuc2lnbmVk LCBvcgorLS8vLyAgICAqICoqc2lnbi1leHRlbmQqKiBpZiB0aGUgc291cmNlIGlzIHNpZ25lZCwK Ky0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYSBmbG9hdCB0byBhbiBpbnRlZ2VyIHdpbGwgKipy b3VuZCB0aGUgZmxvYXQgdG93YXJkcyB6ZXJvKiosCistLy8vCistLy8vICogY2FzdGluZyBmcm9t IGFuIGludGVnZXIgdG8gZmxvYXQgd2lsbCBwcm9kdWNlIHRoZSBmbG9hdGluZyBwb2ludAorLS8v LyByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW50ZWdlciwgKipyb3VuZGluZyB0byBuZWFyZXN0LCB0 aWVzIHRvIGV2ZW4qKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGYzMmAgdG8gYW4g YGY2NGAgaXMgcGVyZmVjdCBhbmQgbG9zc2xlc3MsCistLy8vCistLy8vICogY2FzdGluZyBmcm9t IGFuIGBmNjRgIHRvIGFuIGBmMzJgICoqcm91bmRzIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZlbioq LgorLS8vLworLS8vLyBbUkZDMjQ4NF06IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcmZj cy9wdWxsLzI0ODQKKy1wdWIgdHJhaXQgRnJvbUNhc3Q8VD46IGNyYXRlOjptYXJrZXI6OlNpemVk IHsKKy0gICAgLy8vIE51bWVyaWMgY2FzdCBmcm9tIGBUYCB0byBgU2VsZmAuCistICAgIGZuIGZy b21fY2FzdChfOiBUKSAtPiBTZWxmOworLX0KKy0KKy0vLy8gTnVtZXJpYyBjYXN0IGZyb20gYFNl bGZgIHRvIGBUYC4KKy0vLy8KKy0vLy8gPiBOb3RlOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IHdvcmth cm91bmQgdW50aWwgdGhlIGNvbnZlcnNpb24gdHJhaXRzCistLy8vIHNwZWNpZmllZCA+IGluIFtS RkMyNDg0XSBhcmUgaW1wbGVtZW50ZWQuCistLy8vCistLy8vIE51bWVyaWMgY2FzdCBiZXR3ZWVu IHZlY3RvcnMgd2l0aCB0aGUgc2FtZSBudW1iZXIgb2YgbGFuZXMsIHN1Y2ggdGhhdDoKKy0vLy8K Ky0vLy8gKiBjYXN0aW5nIGludGVnZXIgdmVjdG9ycyB3aG9zZSBsYW5lIHR5cGVzIGhhdmUgdGhl IHNhbWUgc2l6ZSAoZS5nLiBgaTMyeE5gCistLy8vIC0+IGB1MzJ4TmApIGlzIGEgKipuby1vcCoq LAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhIGxhcmdlciBpbnRlZ2VyIHRvIGEgc21hbGxl ciBpbnRlZ2VyIChlLmcuIGB1MzJ4TmAgLT4KKy0vLy8gYHU4eE5gKSB3aWxsICoqdHJ1bmNhdGUq KiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYSBzbWFsbGVyIGludGVnZXIgdG8gYSBsYXJn ZXIgaW50ZWdlciAgIChlLmcuIGB1OHhOYCAtPgorLS8vLyAgIGB1MzJ4TmApIHdpbGw6CistLy8v ICAgICogKip6ZXJvLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgdW5zaWduZWQsIG9yCistLy8v ICAgICogKipzaWduLWV4dGVuZCoqIGlmIHRoZSBzb3VyY2UgaXMgc2lnbmVkLAorLS8vLworLS8v LyAqIGNhc3RpbmcgZnJvbSBhIGZsb2F0IHRvIGFuIGludGVnZXIgd2lsbCAqKnJvdW5kIHRoZSBm bG9hdCB0b3dhcmRzIHplcm8qKiwKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4gaW50ZWdl ciB0byBmbG9hdCB3aWxsIHByb2R1Y2UgdGhlIGZsb2F0aW5nIHBvaW50CistLy8vIHJlcHJlc2Vu dGF0aW9uIG9mIHRoZSBpbnRlZ2VyLCAqKnJvdW5kaW5nIHRvIG5lYXJlc3QsIHRpZXMgdG8gZXZl bioqLAorLS8vLworLS8vLyAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0byBhbiBgZjY0YCBpcyBw ZXJmZWN0IGFuZCBsb3NzbGVzcywKKy0vLy8KKy0vLy8gKiBjYXN0aW5nIGZyb20gYW4gYGY2NGAg dG8gYW4gYGYzMmAgKipyb3VuZHMgdG8gbmVhcmVzdCwgdGllcyB0byBldmVuKiouCistLy8vCist Ly8vIFtSRkMyNDg0XTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjQ4 NAorLXB1YiB0cmFpdCBDYXN0PFQ+OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7CistICAgIC8vLyBO dW1lcmljIGNhc3QgZnJvbSBgc2VsZmAgdG8gYFRgLgorLSAgICBmbiBjYXN0KHNlbGYpIC0+IFQ7 CistfQorLQorLS8vLyBgRnJvbUNhc3RgIGltcGxpZXMgYENhc3RgLgorLWltcGw8VCwgVT4gQ2Fz dDxVPiBmb3IgVAorLXdoZXJlCistICAgIFU6IEZyb21DYXN0PFQ+LAorLXsKKy0gICAgI1tpbmxp bmVdCistICAgIGZuIGNhc3Qoc2VsZikgLT4gVSB7CistICAgICAgICBVOjpmcm9tX2Nhc3Qoc2Vs ZikKKy0gICAgfQorLX0KKy0KKy0vLy8gYEZyb21DYXN0YCBhbmQgYENhc3RgIGFyZSByZWZsZXhp dmUKKy1pbXBsPFQ+IEZyb21DYXN0PFQ+IGZvciBUIHsKKy0gICAgI1tpbmxpbmVdCistICAgIGZu IGZyb21fY2FzdCh0OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIHQKKy0gICAgfQorLX0KKy0K Ky0jW21hY3JvX3VzZV0KKy1tb2QgbWFjcm9zOworLQorLW1vZCB2MTY7CistcHViIHVzZSBzZWxm Ojp2MTY6Oio7CistCistbW9kIHYzMjsKKy1wdWIgdXNlIHNlbGY6OnYzMjo6KjsKKy0KKy1tb2Qg djY0OworLXB1YiB1c2Ugc2VsZjo6djY0OjoqOworLQorLW1vZCB2MTI4OworLXB1YiB1c2Ugc2Vs Zjo6djEyODo6KjsKKy0KKy1tb2QgdjI1NjsKKy1wdWIgdXNlIHNlbGY6OnYyNTY6Oio7CistCist bW9kIHY1MTI7CistcHViIHVzZSBzZWxmOjp2NTEyOjoqOworZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L21hY3Jvcy5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2Fz dC9tYWNyb3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDgyICswLDAgQEAKKy0vLyEgTWFjcm9z IGltcGxlbWVudGluZyBgRnJvbUNhc3RgCistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0 XyB7CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkZnJvbV90eTppZGVudCkgPT4gewor LSAgICAgICAgaW1wbCBjcmF0ZTo6YXBpOjpjYXN0OjpGcm9tQ2FzdDwkZnJvbV90eT4gZm9yICRp ZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZnJvbV9jYXN0KHg6 ICRmcm9tX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpz aW1kX2Nhc3Q7CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEoJGZyb21fdHk6Omxh bmVzKCksICRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2lt ZF9jYXN0KHguMCkgfSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0 ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRl bSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9tX2Nhc3RfICRmcm9tX3R5 Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIGZuIHRlc3QoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRmcm9tX3R5OjpsYW5lcygpKTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfZnJvbV9jYXN0IHsKKy0gICAgKCRp ZDppZGVudFskdGVzdF90dDp0dF06ICQoJGZyb21fdHk6aWRlbnQpLCopID0+IHsKKy0gICAgICAg ICQoCistICAgICAgICAgICAgaW1wbF9mcm9tX2Nhc3RfISgkaWRbJHRlc3RfdHRdOiAkZnJvbV90 eSk7CistICAgICAgICApKgorLSAgICB9CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zyb21f Y2FzdF9tYXNrXyB7CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkZnJvbV90eTppZGVu dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6YXBpOjpjYXN0OjpGcm9tQ2FzdDwkZnJvbV90 eT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gZnJv bV9jYXN0KHg6ICRmcm9tX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgZGVidWdfYXNz ZXJ0X2VxISgkZnJvbV90eTo6bGFuZXMoKSwgJGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAg ICAgeC5uZSgkZnJvbV90eTo6ZGVmYXVsdCgpKQorLSAgICAgICAgICAgICAgICAgICAgLnNlbGVj dCgkaWQ6OnNwbGF0KHRydWUpLCAkaWQ6OnNwbGF0KGZhbHNlKSkKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoK Ky0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9mcm9tX2Nhc3RfICRmcm9tX3R5Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHRlc3QoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgkaWQ6OmxhbmVzKCksICRmcm9tX3R5Ojps YW5lcygpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeCA9ICRmcm9tX3R5Ojpk ZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG06ICRpZCA9IHguY2FzdCgp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobS5ub25lKCkpOworLSAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2Nhc3RfbWFzayB7 CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRmcm9tX3R5OmlkZW50KSwqKSA9PiB7 CistICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGxfZnJvbV9jYXN0X21hc2tfISgkaWRbJHRl c3RfdHRdOiAkZnJvbV90eSk7CistICAgICAgICApKgorLSAgICB9CistfQorLQorLSNbYWxsb3co dW51c2VkKV0KKy1tYWNyb19ydWxlcyEgaW1wbF9pbnRvX2Nhc3QgeworLSAgICAoJGlkOmlkZW50 WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVudCksKikgPT4geworLSAgICAgICAgJCgKKy0g ICAgICAgICAgICBpbXBsX2Zyb21fY2FzdF8hKCRmcm9tX3R5WyR0ZXN0X3R0XTogJGlkKTsKKy0g ICAgICAgICkqCistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9jYXN0L3YxMjgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjEyOC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMzAyICswLDAgQEAKKy0vLyEgYEZyb21DYXN0YCBhbmQgYEludG9DYXN0 YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDEyOC1iaXQgd2lkZSB2ZWN0b3JzCistI1ty dXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoaTh4 MTZbdGVzdF92MTI4XTogdTh4MTYsIG04eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4 MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9jYXN0ISh1OHgxNlt0ZXN0 X3YxMjhdOiBpOHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgdTMy eDE2LCBmMzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEobTh4MTZbdGVzdF92 MTI4XTogaTh4MTYsIHU4eDE2LCBpMTZ4MTYsIHUxNngxNiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngx NiwgZjMyeDE2LCBtMzJ4MTYpOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTE2eDhbdGVz dF92MTI4XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgdTE2eDgsCistICAg IG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4 OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCist ICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJv bV9jYXN0ISgKKy0gICAgdTE2eDhbdGVzdF92MTI4XTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAg bTh4OCwKKy0gICAgaTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgs CistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAg ICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAg IG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtMTZ4OFt0ZXN0X3Yx MjhdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2 eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAor LSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAg aXNpemV4OCwKKy0gICAgdXNpemV4OCwKKy0gICAgbXNpemV4OAorLSk7CistCistaW1wbF9mcm9t X2Nhc3QhKAorLSAgICBpMzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBt OHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICB1MzJ4NCwK Ky0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAg IGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0x Mjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7Cist aW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1MzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAorLSAgICB1OHg0 LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAg ICBpMzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0 eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQs CistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4 NAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBmMzJ4NFt0ZXN0X3YxMjhdOiBpOHg0LAor LSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0x Nng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwK Ky0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAg ICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0g ICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG0zMng0W3Rlc3Rf djEyOF06IGk4eDQsCistICAgIHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICB1 MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQs CistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAg ICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAg ICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAg IGk2NHgyW3Rlc3RfdjEyOF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkx NngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwK Ky0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAg IG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBp c2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2Fz dCEoCistICAgIHU2NHgyW3Rlc3RfdjEyOF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIs CistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAorLSAg ICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgZjY0 eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgy LAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBs X2Zyb21fY2FzdCEoCistICAgIGY2NHgyW3Rlc3RfdjEyOF06IGk4eDIsCistICAgIHU4eDIsCist ICAgIG04eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkz MngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwK Ky0gICAgdTY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0g ICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCist KTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTY0eDJbdGVzdF92MTI4XTogaTh4MiwK Ky0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBt MTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIs CistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIGkxMjh4MiwKKy0g ICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCist ICAgIG1zaXpleDIKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaXNpemV4Mlt0ZXN0 X3YxMjhdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAg dTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngy LAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0g ICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAg IHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdXNp emV4Mlt0ZXN0X3YxMjhdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4 MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCist ICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBm NjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4 eDIsCistICAgIGlzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0X21h c2shKAorLSAgICBtc2l6ZXgyW3Rlc3RfdjEyOF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04 eDIsCistICAgIGkxNngyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIGkzMngyLAor LSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAg dTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4 eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MgorLSk7CistCist Ly8gRklYTUVbdGVzdF92MTI4XTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcnMgaW50b19j YXN0IGltcGxzCistaW1wbF9mcm9tX2Nhc3QhKGkxMjh4MVt0ZXN0X3YxMjhdOiB1MTI4eDEsIG0x Mjh4MSk7CistaW1wbF9mcm9tX2Nhc3QhKHUxMjh4MVt0ZXN0X3YxMjhdOiBpMTI4eDEsIG0xMjh4 MSk7CistaW1wbF9mcm9tX2Nhc3QhKG0xMjh4MVt0ZXN0X3YxMjhdOiBpMTI4eDEsIHUxMjh4MSk7 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3Qv djE2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjE2LnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9jYXN0L3YxNi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjggKzAsMCBA QAorLS8vISBgRnJvbUNhc3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9y dGFibGUgMTYtYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3Jh dGU6Oio7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpOHgyW3Rlc3RfdjE2XTogdTh4MiwK Ky0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAg aTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgy LAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCist ICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAor LSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHU4eDJbdGVzdF92MTZd OiBpOHgyLAorLSAgICBtOHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngy LAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0g ICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkx Mjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVz aXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBt OHgyW3Rlc3RfdjE2XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngy LAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0g ICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02 NHgyLAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6 ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MjU2LnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjI1Ni5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2Fz dC92MjU2LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyOTggKzAsMCBAQAorLS8vISBgRnJvbUNh c3RgIGFuZCBgSW50b0Nhc3RgIGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMjU2LWJpdCB3 aWRlIHZlY3RvcnMKKy0jW3J1c3RmbXQ6OnNraXBdCistCistdXNlIGNyYXRlOjoqOworLQorLWlt cGxfZnJvbV9jYXN0IShpOHgzMlt0ZXN0X3YyNTZdOiB1OHgzMiwgbTh4MzIsIGkxNngzMiwgdTE2 eDMyLCBtMTZ4MzIpOworLWltcGxfZnJvbV9jYXN0ISh1OHgzMlt0ZXN0X3YyNTZdOiBpOHgzMiwg bTh4MzIsIGkxNngzMiwgdTE2eDMyLCBtMTZ4MzIpOworLWltcGxfZnJvbV9jYXN0X21hc2shKG04 eDMyW3Rlc3RfdjI1Nl06IGk4eDMyLCB1OHgzMiwgaTE2eDMyLCB1MTZ4MzIsIG0xNngzMik7Cist CistaW1wbF9mcm9tX2Nhc3QhKGkxNngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYsIG04eDE2 LCB1MTZ4MTYsIG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy1pbXBs X2Zyb21fY2FzdCEodTE2eDE2W3Rlc3RfdjI1Nl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngx NiwgbTE2eDE2LCBpMzJ4MTYsIHUzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9j YXN0X21hc2shKG0xNngxNlt0ZXN0X3YyNTZdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBpMTZ4MTYs IHUxNngxNiwgaTMyeDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy0KKy1pbXBsX2Zyb21f Y2FzdCEoCistICAgIGkzMng4W3Rlc3RfdjI1Nl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04 eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIHUzMng4LAor LSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAg ZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBt c2l6ZXg4CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHUzMng4W3Rlc3RfdjI1Nl06IGk4 eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0g ICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2 NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4 LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCist ICAgIGYzMng4W3Rlc3RfdjI1Nl06IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAg IGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAgICB1MzJ4 OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCist ICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICB1c2l6ZXg4LAorLSAgICBtc2l6ZXg4Cist KTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTMyeDhbdGVzdF92MjU2XTogaTh4OCwK Ky0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBt MTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgaTY0eDgs CistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCist ICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0g ICAgaTY0eDRbdGVzdF92MjU2XTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAg aTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0 LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0g ICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCistICAg IGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWltcGxfZnJvbV9j YXN0ISgKKy0gICAgdTY0eDRbdGVzdF92MjU2XTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4 NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCist ICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICBm NjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4 eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWlt cGxfZnJvbV9jYXN0ISgKKy0gICAgZjY0eDRbdGVzdF92MjU2XTogaTh4NCwKKy0gICAgdTh4NCwK Ky0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAg aTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0 LAorLSAgICB1NjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAor LSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQK Ky0pOworLWltcGxfZnJvbV9jYXN0X21hc2shKAorLSAgICBtNjR4NFt0ZXN0X3YyNTZdOiBpOHg0 LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAg IG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4 NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgaTEyOHg0LAor LSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwK Ky0gICAgbXNpemV4NAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMTI4eDJbdGVz dF92MjU2XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAg IHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4 MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCist ICAgIG02NHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0g ICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1 MTI4eDJbdGVzdF92MjU2XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2 eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAor LSAgICBmMzJ4MiwKKy0gICAgbTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAg ZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNp emV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3Rf bWFzayEoCistICAgIG0xMjh4Mlt0ZXN0X3YyNTZdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBt OHgyLAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwK Ky0gICAgdTMyeDIsCistICAgIGYzMngyLAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAg IHU2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgZjY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEy OHgyLAorLSAgICBpc2l6ZXgyLAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy0K Ky1pbXBsX2Zyb21fY2FzdCEoCistICAgIGlzaXpleDRbdGVzdF92MjU2XTogaTh4NCwKKy0gICAg dTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwK Ky0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAg IGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4 eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6 ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHVzaXpleDRbdGVzdF92MjU2XTogaTh4 NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCistICAgIHUxNng0LAorLSAg ICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMy eDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAor LSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAor LSAgICBtc2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbXNpemV4NFt0 ZXN0X3YyNTZdOiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0g ICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYz Mng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4NCwK Ky0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQsCist ICAgIGlzaXpleDQsCistICAgIHVzaXpleDQKKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3YzMi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92MzIucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDEzMiArMCwwIEBACistLy8hIGBGcm9tQ2FzdGAgYW5kIGBJ bnRvQ2FzdGAgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAzMi1iaXQgd2lkZSB2ZWN0b3Jz CistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2Zyb21fY2Fz dCEoCistICAgIGk4eDRbdGVzdF92MzJdOiB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwK Ky0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAg IGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBmNjR4 NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQs CistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAgIG1zaXpleDQKKy0pOworLWltcGxf ZnJvbV9jYXN0ISgKKy0gICAgdTh4NFt0ZXN0X3YzMl06IGk4eDQsCistICAgIG04eDQsCistICAg IGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1MzJ4 NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCist ICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAg IG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7 CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG04eDRbdGVzdF92MzJdOiBpOHg0LAorLSAg ICB1OHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4 NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCist ICAgIHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4NCwKKy0gICAg dTEyOHg0LAorLSAgICBtMTI4eDQsCistICAgIGlzaXpleDQsCistICAgIHVzaXpleDQsCistICAg IG1zaXpleDQKKy0pOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgaTE2eDJbdGVzdF92MzJd OiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAgICB1MTZ4MiwKKy0gICAgbTE2eDIs CistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyLAorLSAg ICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEy OHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNp emV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1MTZ4Mlt0 ZXN0X3YzMl06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAorLSAg ICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgbTMy eDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAor LSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgyLAor LSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgK Ky0gICAgbTE2eDJbdGVzdF92MzJdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgyLAorLSAg ICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIGkzMngyLAorLSAgICB1MzJ4MiwKKy0gICAgZjMy eDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAor LSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MiwKKy0g ICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Nhc3QvdjUxMi5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y1MTIucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2Nhc3QvdjUxMi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjA5ICswLDAgQEAKKy0vLyEg YEZyb21DYXN0YCBhbmQgYEludG9DYXN0YCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDUx Mi1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsK Ky0KKy1pbXBsX2Zyb21fY2FzdCEoaTh4NjRbdGVzdF92NTEyXTogdTh4NjQsIG04eDY0KTsKKy1p bXBsX2Zyb21fY2FzdCEodTh4NjRbdGVzdF92NTEyXTogaTh4NjQsIG04eDY0KTsKKy1pbXBsX2Zy b21fY2FzdF9tYXNrIShtOHg2NFt0ZXN0X3Y1MTJdOiBpOHg2NCwgdTh4NjQpOworLQorLWltcGxf ZnJvbV9jYXN0IShpMTZ4MzJbdGVzdF92NTEyXTogaTh4MzIsIHU4eDMyLCBtOHgzMiwgdTE2eDMy LCBtMTZ4MzIpOworLWltcGxfZnJvbV9jYXN0ISh1MTZ4MzJbdGVzdF92NTEyXTogaTh4MzIsIHU4 eDMyLCBtOHgzMiwgaTE2eDMyLCBtMTZ4MzIpOworLWltcGxfZnJvbV9jYXN0X21hc2shKG0xNngz Mlt0ZXN0X3Y1MTJdOiBpOHgzMiwgdTh4MzIsIG04eDMyLCBpMTZ4MzIsIHUxNngzMik7CistCist aW1wbF9mcm9tX2Nhc3QhKGkzMngxNlt0ZXN0X3Y1MTJdOiBpOHgxNiwgdTh4MTYsIG04eDE2LCBp MTZ4MTYsIHUxNngxNiwgbTE2eDE2LCB1MzJ4MTYsIGYzMngxNiwgbTMyeDE2KTsKKy1pbXBsX2Zy b21fY2FzdCEodTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwg dTE2eDE2LCBtMTZ4MTYsIGkzMngxNiwgZjMyeDE2LCBtMzJ4MTYpOworLWltcGxfZnJvbV9jYXN0 IShmMzJ4MTZbdGVzdF92NTEyXTogaTh4MTYsIHU4eDE2LCBtOHgxNiwgaTE2eDE2LCB1MTZ4MTYs IG0xNngxNiwgaTMyeDE2LCB1MzJ4MTYsIG0zMngxNik7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEo bTMyeDE2W3Rlc3RfdjUxMl06IGk4eDE2LCB1OHgxNiwgbTh4MTYsIGkxNngxNiwgdTE2eDE2LCBt MTZ4MTYsIGkzMngxNiwgdTMyeDE2LCBmMzJ4MTYpOworLQorLWltcGxfZnJvbV9jYXN0ISgKKy0g ICAgaTY0eDhbdGVzdF92NTEyXTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAg aTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4 LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0g ICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0p OworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTY0eDhbdGVzdF92NTEyXTogaTh4OCwKKy0gICAg dTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwK Ky0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAg IGk2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVz aXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxfZnJvbV9jYXN0ISgKKy0gICAgZjY0eDhb dGVzdF92NTEyXTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCist ICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBm MzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgbTY0eDgs CistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLWltcGxf ZnJvbV9jYXN0X21hc2shKAorLSAgICBtNjR4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1OHg4 LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAg ICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAgaTY0 eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4 OCwKKy0gICAgbXNpemV4OAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMTI4eDRb dGVzdF92NTEyXTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAgaTE2eDQsCist ICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBm MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQs CistICAgIG02NHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwK Ky0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAg ICB1MTI4eDRbdGVzdF92NTEyXTogaTh4NCwKKy0gICAgdTh4NCwKKy0gICAgbTh4NCwKKy0gICAg aTE2eDQsCistICAgIHUxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0 LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0g ICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAg aXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAorLSk7CistaW1wbF9mcm9tX2Nh c3RfbWFzayEoCistICAgIG0xMjh4NFt0ZXN0X3Y1MTJdOiBpOHg0LAorLSAgICB1OHg0LAorLSAg ICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQsCistICAgIG0xNng0LAorLSAgICBpMzJ4 NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDQsCist ICAgIHU2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgZjY0eDQsCistICAgIGkxMjh4NCwKKy0gICAg dTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBtc2l6ZXg0CistKTsK Ky0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIGlzaXpleDhbdGVzdF92NTEyXTogaTh4OCwKKy0g ICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4 OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCist ICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICB1 c2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCistICAgIHVzaXpl eDhbdGVzdF92NTEyXTogaTh4OCwKKy0gICAgdTh4OCwKKy0gICAgbTh4OCwKKy0gICAgaTE2eDgs CistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAg ICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0 eDgsCistICAgIG02NHg4LAorLSAgICBpc2l6ZXg4LAorLSAgICBtc2l6ZXg4CistKTsKKy1pbXBs X2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbXNpemV4OFt0ZXN0X3Y1MTJdOiBpOHg4LAorLSAgICB1 OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAor LSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBtMzJ4OCwKKy0gICAg aTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGlzaXpl eDgsCistICAgIHVzaXpleDgKKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jYXN0L3Y2NC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9jYXN0L3Y2NC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY2FzdC92NjQucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDIwOCArMCwwIEBACistLy8hIGBGcm9tQ2FzdGAgYW5kIGBJbnRvQ2FzdGAg aW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSA2NC1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0 Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2Zyb21fY2FzdCEoCistICAg IGk4eDhbdGVzdF92NjRdOiB1OHg4LAorLSAgICBtOHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2 eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAor LSAgICBtMzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAg bTY0eDgsCistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOwor LWltcGxfZnJvbV9jYXN0ISgKKy0gICAgdTh4OFt0ZXN0X3Y2NF06IGk4eDgsCistICAgIG04eDgs CistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng4LAorLSAg ICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4OCwKKy0gICAgdTY0 eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAgaXNpemV4OCwKKy0gICAgdXNpemV4 OCwKKy0gICAgbXNpemV4OAorLSk7CistaW1wbF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG04eDhb dGVzdF92NjRdOiBpOHg4LAorLSAgICB1OHg4LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCist ICAgIG0xNng4LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgsCistICAgIGYzMng4LAorLSAgICBt MzJ4OCwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgs CistICAgIGlzaXpleDgsCistICAgIHVzaXpleDgsCistICAgIG1zaXpleDgKKy0pOworLQorLWlt cGxfZnJvbV9jYXN0ISgKKy0gICAgaTE2eDRbdGVzdF92NjRdOiBpOHg0LAorLSAgICB1OHg0LAor LSAgICBtOHg0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMng0LAorLSAgICB1 MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQs CistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCist ICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNpemV4NCwKKy0gICAgbXNpemV4NAor LSk7CistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICB1MTZ4NFt0ZXN0X3Y2NF06IGk4eDQsCistICAg IHU4eDQsCistICAgIG04eDQsCistICAgIGkxNng0LAorLSAgICBtMTZ4NCwKKy0gICAgaTMyeDQs CistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHg0LAorLSAg ICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDQsCistICAgIHUx Mjh4NCwKKy0gICAgbTEyOHg0LAorLSAgICBpc2l6ZXg0LAorLSAgICB1c2l6ZXg0LAorLSAgICBt c2l6ZXg0CistKTsKKy1pbXBsX2Zyb21fY2FzdF9tYXNrISgKKy0gICAgbTE2eDRbdGVzdF92NjRd OiBpOHg0LAorLSAgICB1OHg0LAorLSAgICBtOHg0LAorLSAgICBpMTZ4NCwKKy0gICAgdTE2eDQs CistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAg ICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEy OHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NCwKKy0gICAgaXNpemV4NCwKKy0gICAgdXNp emV4NCwKKy0gICAgbXNpemV4NAorLSk7CistCistaW1wbF9mcm9tX2Nhc3QhKAorLSAgICBpMzJ4 Mlt0ZXN0X3Y2NF06IGk4eDIsCistICAgIHU4eDIsCistICAgIG04eDIsCistICAgIGkxNngyLAor LSAgICB1MTZ4MiwKKy0gICAgbTE2eDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAg bTMyeDIsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgy LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyLAorLSAgICBpc2l6ZXgy LAorLSAgICB1c2l6ZXgyLAorLSAgICBtc2l6ZXgyCistKTsKKy1pbXBsX2Zyb21fY2FzdCEoCist ICAgIHUzMngyW3Rlc3RfdjY0XTogaTh4MiwKKy0gICAgdTh4MiwKKy0gICAgbTh4MiwKKy0gICAg aTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0gICAgaTMyeDIsCistICAgIGYzMngy LAorLSAgICBtMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0g ICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIsCistICAg IGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpleDIKKy0pOworLWltcGxfZnJvbV9j YXN0ISgKKy0gICAgZjMyeDJbdGVzdF92NjRdOiBpOHgyLAorLSAgICB1OHgyLAorLSAgICBtOHgy LAorLSAgICBpMTZ4MiwKKy0gICAgdTE2eDIsCistICAgIG0xNngyLAorLSAgICBpMzJ4MiwKKy0g ICAgdTMyeDIsCistICAgIG0zMngyLAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2 NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4 MiwKKy0gICAgaXNpemV4MiwKKy0gICAgdXNpemV4MiwKKy0gICAgbXNpemV4MgorLSk7CistaW1w bF9mcm9tX2Nhc3RfbWFzayEoCistICAgIG0zMngyW3Rlc3RfdjY0XTogaTh4MiwKKy0gICAgdTh4 MiwKKy0gICAgbTh4MiwKKy0gICAgaTE2eDIsCistICAgIHUxNngyLAorLSAgICBtMTZ4MiwKKy0g ICAgaTMyeDIsCistICAgIHUzMngyLAorLSAgICBmMzJ4MiwKKy0gICAgaTY0eDIsCistICAgIHU2 NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgy LAorLSAgICBtMTI4eDIsCistICAgIGlzaXpleDIsCistICAgIHVzaXpleDIsCistICAgIG1zaXpl eDIKKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9jbXAucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9jbXAucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2ICswLDAgQEAKKy0vLyEg SW1wbGVtZW50IGNtcCB0cmFpdHMgZm9yIHZlY3RvciB0eXBlcworLQorLSNbbWFjcm9fdXNlXQor LW1vZCBwYXJ0aWFsX2VxOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBlcTsKKy0KKy0jW21hY3Jv X3VzZV0KKy1tb2QgcGFydGlhbF9vcmQ7CistCistI1ttYWNyb191c2VdCistbW9kIG9yZDsKKy0K Ky0jW21hY3JvX3VzZV0KKy1tb2QgdmVydGljYWw7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9lcS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9jbXAvZXEucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9lcS5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsMjcgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBFcWAgZm9yIHZlY3Rv ciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9jbXBfZXEgeworLSAgICAoCistICAgICAg ICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAgICAgJGlkOmlkZW50 IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQorLSAg ICApID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6RXEgZm9yICRpZCB7fQorLSAgICAg ICAgaW1wbCBjcmF0ZTo6Y21wOjpFcSBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4g e30KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAg ICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2Nt cF9lcT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAg ICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0g I1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCist ICAgICAgICAgICAgICAgICAgICBmbiBlcSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBm biBmb288RTogY3JhdGU6OmNtcDo6RXE+KF86IEUpIHt9CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg Zm9vKGEpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL29yZC5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvb3JkLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0MyArMCwwIEBACistLy8hIEltcGxlbWVudHMgYE9yZGAg Zm9yIHZlY3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9jbXBfb3JkIHsKKy0gICAg KAorLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXToKKy0gICAgICAg ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0IHwKKy0gICAgICAgICgkdHJ1ZTpleHByLCAkZmFsc2U6 ZXhwcikKKy0gICAgKSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8v IFJldHVybnMgYSB3cmFwcGVyIHRoYXQgaW1wbGVtZW50cyBgT3JkYC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbGV4X29yZCgmc2VsZikgLT4gTGV4aWNvZ3Jh cGhpY2FsbHlPcmRlcmVkPCRpZD4geworLSAgICAgICAgICAgICAgICBMZXhpY29ncmFwaGljYWxs eU9yZGVyZWQoKnNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAg aW1wbCBjcmF0ZTo6Y21wOjpPcmQgZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBjbXAoJnNlbGYsIG90aGVy OiAmU2VsZikgLT4gY3JhdGU6OmNtcDo6T3JkZXJpbmcgeworLSAgICAgICAgICAgICAgICBtYXRj aCBzZWxmLnBhcnRpYWxfY21wKG90aGVyKSB7CistICAgICAgICAgICAgICAgICAgICBTb21lKHgp ID0+IHgsCistICAgICAgICAgICAgICAgICAgICBOb25lID0+IHVuc2FmZSB7IGNyYXRlOjpoaW50 Ojp1bnJlYWNoYWJsZV91bmNoZWNrZWQoKSB9LAorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfY21wX29yZD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBlcSgpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBmbiBmb288RTogY3JhdGU6OmNtcDo6T3JkPihfOiBFKSB7fQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvbyhhLnBhcnRpYWxfbGV4X29yZCgpKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBmb28oYS5sZXhfb3JkKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21w L3BhcnRpYWxfZXEucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21w L3BhcnRpYWxfZXEucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX2VxLnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw2NSArMCwwIEBACistLy8hIEltcGxlbWVudHMgYFBhcnRpYWxFcWAgZm9yIHZl Y3RvciB0eXBlcy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9jbXBfcGFydGlhbF9lcSB7CistICAg ICgKKy0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAg ICAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNl OmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmctbnVyc2VyeS9ydXN0LWNsaXBweS9pc3N1ZXMvMjg5MgorLSAgICAgICAgI1th bGxvdyhjbGlwcHk6OnBhcnRpYWxlcV9uZV9pbXBsKV0KKy0gICAgICAgIGltcGwgY3JhdGU6OmNt cDo6UGFydGlhbEVxPCRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAg ICAgICAgICRpZDo6ZXEoKnNlbGYsICpvdGhlcikuYWxsKCkKKy0gICAgICAgICAgICB9CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2Vs ZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICRpZDo6bmUoKnNlbGYsICpvdGhlcikuYW55 KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICAvLyBGSVhNRTogaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3J1c3QtY2xpcHB5L2lzc3Vlcy8yODky CistICAgICAgICAjW2FsbG93KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQorLSAgICAgICAg aW1wbCBjcmF0ZTo6Y21wOjpQYXJ0aWFsRXE8TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPCRpZD4+ IGZvciBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8JGlkPiB7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gZXEoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7Cist ICAgICAgICAgICAgICAgIHNlbGYuMCA9PSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG5lKCZzZWxmLCBvdGhlcjogJlNlbGYp IC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBzZWxmLjAgIT0gb3RoZXIuMAorLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9jbXBfUGFydGlhbEVxPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0 YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAg ICAgICAgICBmbiBwYXJ0aWFsX2VxKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBh ID0gJGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0g JGlkOjpzcGxhdCgkdHJ1ZSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShh ICE9IGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhID09IGIpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgPT0gYSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg YSA9ICRpZDo6c3BsYXQoJGZhbHNlKS5yZXBsYWNlKDAsICR0cnVlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhICE9IGIpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoYSA9PSBhKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgh KGEgIT0gYSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL2NtcC9wYXJ0aWFsX29yZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9jbXAvcGFydGlhbF9vcmQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2NtcC9wYXJ0aWFsX29yZC5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsMjMwICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBgUGFydGlh bE9yZGAgZm9yIHZlY3RvciB0eXBlcy4KKy0vLyEKKy0vLyEgVGhpcyBpbXBsZW1lbnRzIGEgbGV4 aWNvZ3JhcGhpY2FsIG9yZGVyLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX2NtcF9wYXJ0aWFsX29y ZCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQg fCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8v LyBSZXR1cm5zIGEgd3JhcHBlciB0aGF0IGltcGxlbWVudHMgYFBhcnRpYWxPcmRgLgorLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBwYXJ0aWFsX2xleF9vcmQoJnNl bGYpIC0+IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsKKy0gICAgICAgICAgICAgICAg TGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkKCpzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6OmNtcDo6UGFydGlhbE9yZDxMZXhpY29ncmFwaGlj YWxseU9yZGVyZWQ8JGlkPj4gZm9yIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDwkaWQ+IHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBwYXJ0aWFsX2NtcCgmc2VsZiwg b3RoZXI6ICZTZWxmKSAtPiBPcHRpb248Y3JhdGU6OmNtcDo6T3JkZXJpbmc+IHsKKy0gICAgICAg ICAgICAgICAgaWYgUGFydGlhbEVxOjplcShzZWxmLCBvdGhlcikgeworLSAgICAgICAgICAgICAg ICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpCistICAgICAgICAgICAgICAg IH0gZWxzZSBpZiBQYXJ0aWFsT3JkOjpsdChzZWxmLCBvdGhlcikgeworLSAgICAgICAgICAgICAg ICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykKKy0gICAgICAgICAgICAgICAg fSBlbHNlIGlmIFBhcnRpYWxPcmQ6Omd0KHNlbGYsIG90aGVyKSB7CistICAgICAgICAgICAgICAg ICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKQorLSAgICAgICAgICAgICAg ICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgTm9uZQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGx0KCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBsZXQg bV9sdCA9IHNlbGYuMC5sdChvdGhlci4wKTsKKy0gICAgICAgICAgICAgICAgbGV0IG1fZXEgPSBz ZWxmLjAuZXEob3RoZXIuMCk7CistICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICBpZiBtX2VxLmV4dHJhY3QoaSkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1fbHQuZXh0cmFjdChpKTsKKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICBmYWxzZQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBsZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBi b29sIHsKKy0gICAgICAgICAgICAgICAgc2VsZi5sdChvdGhlcikgfCBQYXJ0aWFsRXE6OmVxKHNl bGYsIG90aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBnZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAg ICAgICAgc2VsZi5ndChvdGhlcikgfCBQYXJ0aWFsRXE6OmVxKHNlbGYsIG90aGVyKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBndCgmc2Vs Ziwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IG1fZ3QgPSBz ZWxmLjAuZ3Qob3RoZXIuMCk7CistICAgICAgICAgICAgICAgIGxldCBtX2VxID0gc2VsZi4wLmVx KG90aGVyLjApOworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewor LSAgICAgICAgICAgICAgICAgICAgaWYgbV9lcS5leHRyYWN0KGkpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgICAgIHJldHVybiBtX2d0LmV4dHJhY3QoaSk7CistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgZmFsc2UKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorLQorLW1hY3JvX3J1bGVzISB0ZXN0X2NtcF9wYXJ0aWFsX29yZF9pbnQgeworLSAgICAo WyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6 dHQpID0+IHsKKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X2NtcF9QYXJ0aWFsT3JkPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfbGV4X29yZCgpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnRlc3Rpbmc6OnV0aWxzOjp7dGVzdF9j bXB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0YW50IHZhbHVlcworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYiA9ICRpZDo6c3BsYXQoMSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVy aW5nOjpMZXNzKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFs X2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFs X2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRl OjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf Y21wKGIucGFydGlhbF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwp KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2YWx1ZXM6IGEgPSBb MCwgMSwgMiwgM107IGIgPSBbMywgMiwgMSwgMF0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYiA9ICRpZDo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4g MC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGEucmVw bGFjZShpLCBpIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9 IGIucmVwbGFjZShpLCAoJGlkOjpsYW5lcygpIC0gaSkgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBh cnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRp YWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3Jh dGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkVx dWFsKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9v cmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczogYSA9IFswLCAxLCAyLCAzXTsgYiA9IFsw LCAxLCAyLCA0XQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IGE7CistICAg ICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGlkOjpsYW5lcygpIC0gMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YS5leHRyYWN0KCRpZDo6bGFuZXMoKSAtIDEpICsgMSBhcyAkZWxlbV90eQorLSAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYS5wYXJ0 aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFs X2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRl OjpjbXA6Ok9yZGVyaW5nOjpHcmVhdGVyKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVz dF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVh bCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3Jk KCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAyIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gdmFyaWFibGUgdmFsdWVzIGEgPSBbMCwgMSwgMCwgMF07IGIgPSBbMCwgMSwgMiwg M10KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSBhOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KDApOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhID0gYS5yZXBsYWNlKDEsIDEgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBh cnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT b21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpMZXNzKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoY3JhdGU6OmNtcDo6 T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9j bXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1 YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xl eF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6RXF1YWwpKTsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOiBhID0gWzAsIDEsIDIs IDNdOyBiID0gWzAsIDEsIDMsIDJdCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYiA9IGE7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBiLnJlcGxhY2UoCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCBhLmV4dHJhY3QoJGlkOjpsYW5lcygp IC0gMSkgKyAxIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCks IGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9v cmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShjcmF0ZTo6 Y21wOjpPcmRlcmluZzo6R3JlYXRlcikpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5n OjpFcXVhbCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRp YWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCist bWFjcm9fcnVsZXMhIHRlc3RfY21wX3BhcnRpYWxfb3JkX21hc2sgeworLSAgICAoWyRlbGVtX3R5 OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsK Ky0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF9QYXJ0 aWFsT3JkPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIHBhcnRpYWxfbGV4X29yZCgpIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB1c2UgY3JhdGU6OnRlc3Rpbmc6OnV0aWxzOjp7dGVzdF9jbXB9OworLSAg ICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y21wOjpPcmRlcmluZzsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBjb25zdGFudCB2YWx1ZXMKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBiID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6Okxlc3MpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBh cnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChh LnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5wYXJ0aWFsX2xleF9v cmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpF cXVhbCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhcmlhYmxlIHZhbHVlczoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhID0gW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBiID0gW2ZhbHNlLCBmYWxzZSwgZmFs c2UsIHRydWVdCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KGZh bHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGIgPSAkaWQ6OnNwbGF0KGZh bHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNlKCRpZDo6bGFuZXMo KSAtIDEsIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlh bF9sZXhfb3JkKCksIGIucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU29tZShPcmRlcmluZzo6TGVzcykpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEucGFydGlhbF9sZXhfb3JkKCksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6R3JlYXRlcikp OworLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGEucGFydGlhbF9sZXhfb3JkKCks IGEucGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Nt cChiLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gdmFyaWFibGUgdmFsdWVzOgorLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGEgPSBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2VdOworLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGIgPSBbdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgbXV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBiID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhID0gYS5yZXBsYWNlKCRpZDo6bGFuZXMoKSAtIDEsIGZhbHNlKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4 X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6 Okxlc3MpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2NtcChiLnBhcnRpYWxfbGV4 X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBhLnBhcnRpYWxfbGV4X29yZCgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvbWUoT3JkZXJpbmc6OkVxdWFsKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQoKSwgYi5w YXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21l KE9yZGVyaW5nOjpFcXVhbCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6 bGFuZXMoKSA+IDIgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXJpYWJsZSB2 YWx1ZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSA9IFtmYWxzZSwgdHJ1ZSwg ZmFsc2UsIGZhbHNlXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYiA9IFtmYWxz ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBtdXQgYiA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGEgPSBhLnJlcGxhY2UoMSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIg PSBiLnJlcGxhY2UoMCwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0 X2NtcChhLnBhcnRpYWxfbGV4X29yZCgpLCBiLnBhcnRpYWxfbGV4X29yZCgpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpMZXNzKSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY21wKGIucGFydGlhbF9sZXhfb3JkKCksIGEu cGFydGlhbF9sZXhfb3JkKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFNvbWUoT3JkZXJpbmc6OkdyZWF0ZXIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dGVzdF9jbXAoYS5wYXJ0aWFsX2xleF9vcmQoKSwgYS5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9jbXAoYi5wYXJ0aWFsX2xleF9vcmQo KSwgYi5wYXJ0aWFsX2xleF9vcmQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU29tZShPcmRlcmluZzo6RXF1YWwpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVydGljYWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvY21wL3ZlcnRpY2FsLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9jbXAvdmVy dGljYWwucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDExNCArMCwwIEBACistLy8hIFZlcnRpY2Fs IChsYW5lLXdpc2UpIHZlY3RvciBjb21wYXJpc29ucyByZXR1cm5pbmcgdmVjdG9yIG1hc2tzLgor LQorLW1hY3JvX3J1bGVzISBpbXBsX2NtcF92ZXJ0aWNhbCB7CistICAgICgKKy0gICAgICAgIFsk ZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAgICAkaWQ6aWRlbnQsCist ICAgICAgICAkbWFza190eTppZGVudCwKKy0gICAgICAgICRpc19tYXNrOmV4cHIsKCR0cnVlOmV4 cHIsICRmYWxzZTpleHByKSB8ICR0ZXN0X3R0OnR0CistICAgICkgPT4geworLSAgICAgICAgaW1w bCAkaWQgeworLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZXF1YWxpdHkgY29tcGFyaXNvbi4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZXEoc2VsZiwgb3Ro ZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZt OjpzaW1kX2VxOworLSAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfZXEoc2VsZi4w LCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gTGFuZS13 aXNlIGluZXF1YWxpdHkgY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gbmUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX25lOworLSAgICAgICAgICAgICAgICBT aW1kKHVuc2FmZSB7IHNpbWRfbmUoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgIH0K Ky0KKy0gICAgICAgICAgICAvLy8gTGFuZS13aXNlIGxlc3MtdGhhbiBjb21wYXJpc29uLgorLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBsdChzZWxmLCBvdGhlcjog U2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06Ontz aW1kX2d0LCBzaW1kX2x0fTsKKy0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sgeworLSAgICAg ICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2d0KHNlbGYuMCwgb3RoZXIuMCkgfSkK Ky0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5z YWZlIHsgc2ltZF9sdChzZWxmLjAsIG90aGVyLjApIH0pCistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4tb3It ZXF1YWxzIGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg cHViIGZuIGxlKHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6e3NpbWRfZ2UsIHNpbWRfbGV9OworLSAgICAgICAgICAgICAg ICBpZiAkaXNfbWFzayB7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRf Z2Uoc2VsZi4wLCBvdGhlci4wKSB9KQorLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgICAgICAgICAgU2ltZCh1bnNhZmUgeyBzaW1kX2xlKHNlbGYuMCwgb3RoZXIuMCkgfSkK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g TGFuZS13aXNlIGdyZWF0ZXItdGhhbiBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBmbiBndChzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkg eworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OntzaW1kX2d0LCBzaW1kX2x0fTsK Ky0gICAgICAgICAgICAgICAgaWYgJGlzX21hc2sgeworLSAgICAgICAgICAgICAgICAgICAgU2lt ZCh1bnNhZmUgeyBzaW1kX2x0KHNlbGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9ndChzZWxm LjAsIG90aGVyLjApIH0pCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCist ICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBncmVhdGVyLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmlz b24uCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGdlKHNlbGYs IG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 bGx2bTo6e3NpbWRfZ2UsIHNpbWRfbGV9OworLSAgICAgICAgICAgICAgICBpZiAkaXNfbWFzayB7 CistICAgICAgICAgICAgICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfbGUoc2VsZi4wLCBvdGhl ci4wKSB9KQorLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg U2ltZCh1bnNhZmUgeyBzaW1kX2dlKHNlbGYuMCwgb3RoZXIuMCkgfSkKKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIHRlc3RfaWYheworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2NtcF92ZXJ0aWNhbD5dIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBj bXAoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KCRmYWxz ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OnNwbGF0KCR0cnVlKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEubHQoYik7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6c3BsYXQodHJ1ZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCByID0gYS5sZShiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0g ZSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGUgPSAkbWFza190eTo6c3BsYXQo ZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gYS5ndChiKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHIgPSBhLmdlKGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo ciA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZXEoYik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgYSA9IGE7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBiID0gYjsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBlOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYSA9IGEucmVwbGFjZShpLCAkZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZShpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlID0gZS5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YSA9IGEucmVwbGFjZShpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiID0gYi5yZXBsYWNlKGksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlID0gZS5yZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgciA9IGEubHQoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09 IGUpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZGVmYXVsdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9kZWZhdWx0LnJzCisr KysgL2Rldi9udWxsCitAQCAtMSwzMCArMCwwIEBACistLy8hIEltcGxlbWVudHMgYERlZmF1bHRg IGZvciB2ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxfZGVmYXVsdCB7CistICAg IChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90 dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBEZWZhdWx0IGZvciAkaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgU2VsZjo6c3BsYXQoJGVsZW1fdHk6OmRlZmF1bHQoKSkKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90 dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICAvLyBDb21w YXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFudGlzc2FeMSByYW5nZS4KKy0gICAg ICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2NtcCldCistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX2RlZmF1bHQ+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZGVmYXVsdCgpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6ZGVmYXVsdCgpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYS5leHRyYWN0KGkpLCAkZWxlbV90eTo6ZGVmYXVs dCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9m bXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10LnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9mbXQucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyICswLDAgQEAKKy0vLyEgSW1w bGVtZW50cyBmb3JtYXR0aW5nIEFQSXMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZGVidWc7Cist I1ttYWNyb191c2VdCistbW9kIGxvd2VyX2hleDsKKy0jW21hY3JvX3VzZV0KKy1tb2QgdXBwZXJf aGV4OworLSNbbWFjcm9fdXNlXQorLW1vZCBvY3RhbDsKKy0jW21hY3JvX3VzZV0KKy1tb2QgYmlu YXJ5OworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9m bXQvYmluYXJ5LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9i aW5hcnkucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ZtdC9iaW5hcnkucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDU0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50IE9jdGFsIGZvcm1hdHRpbmcKKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9mbXRfYmluYXJ5IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291 bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNy YXRlOjpmbXQ6OkJpbmFyeSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6 bWlzc2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0gICAgICAgICAgICBmbiBmbXQoJnNl bGYsIGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVz dWx0IHsKKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkp PzsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAg ICAgICAgICAgICAgaWYgaSA+IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIShm LCAiLCAiKT87CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBz ZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB3cml0ZSEoZiwgIikiKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAg IHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6 aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mbXRfYmluYXJ5Pl0gewor LSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAg I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRn ZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBiaW5hcnkoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgdXNlIGFycmF5dmVjOjp7QXJyYXlTdHJpbmcsQXJyYXlWZWN9OworLSAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGUgVGlueVN0cmluZyA9IEFycmF5U3RyaW5nPFt1ODsg NTEyXT47CistCistICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpmbXQ6OldyaXRl OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZWxlbV90eTo6 ZGVmYXVsdCgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHMgPSBUaW55U3Ry aW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBzLCAiezoj Yn0iLCB2KS51bndyYXAoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGJl ZyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgm bXV0IGJlZywgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSkudW53cmFwKCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0IShzLnN0YXJ0c193aXRoKGJlZy5hc19zdHIoKSkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHM6IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKCIpIiwgIiIpLnNwbGl0KCIsIikKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRy aW0oKSkudW53cmFwKCkpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OmxhbmVz KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsIHNzKSBpbiBzLmludG9f aXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11 dCBlID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdy aXRlISgmbXV0IGUsICJ7OiNifSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvZGVidWcucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L2RlYnVnLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9m bXQvZGVidWcucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDYwICswLDAgQEAKKy0vLyEgSW1wbGVt ZW50IGRlYnVnIGZvcm1hdHRpbmcKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mbXRfZGVidWdfdGVz dHMgeworLSAgICAoWyRlbGVtX3R5OnR5OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9mbXRfZGVidWc+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIGRlYnVnKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0Fy cmF5U3RyaW5nLEFycmF5VmVjfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlT dHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9 IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0 IHMsICJ7Oj99IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3 cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkpKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRdPgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCksICIi KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgiKSIsICIiKS5zcGxpdCgi LCIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6OmZy b20odi50cmltKCkpLnVud3JhcCgpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY29s bGVjdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwgJGlk OjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4g cy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3cml0ZSEoJm11dCBlLCAiezo/fSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3Jv X3J1bGVzISBpbXBsX2ZtdF9kZWJ1ZyB7CistICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50 OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0 ZTo6Zm10OjpEZWJ1ZyBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6bWlz c2luZ19pbmxpbmVfaW5fcHVibGljX2l0ZW1zKV0KKy0gICAgICAgICAgICBmbiBmbXQoJnNlbGYs IGY6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gY3JhdGU6OmZtdDo6UmVzdWx0 IHsKKy0gICAgICAgICAgICAgICAgd3JpdGUhKGYsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpPzsK Ky0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAg ICAgICAgICAgaWYgaSA+IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlIShmLCAi LCAiKT87CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBzZWxm LmV4dHJhY3QoaSkuZm10KGYpPzsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB3cml0ZSEoZiwgIikiKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGlt cGxfZm10X2RlYnVnX3Rlc3RzIShbJGVsZW1fdHk7ICRlbGVtX2NvdW50XTogJGlkIHwgJHRlc3Rf dHQpOworLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvZm10L2xvd2VyX2hleC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvbG93ZXJfaGV4LnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw1NCArMCwwIEBACistLy8hIEltcGxlbWVudCBgTG93ZXJI ZXhgIGZvcm1hdHRpbmcKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mbXRfbG93ZXJfaGV4IHsKKy0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpmbXQ6Okxvd2VySGV4IGZvciAkaWQg eworLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNf aXRlbXMpXQorLSAgICAgICAgICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpG b3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6Zm10OjpSZXN1bHQgeworLSAgICAgICAgICAgICAgICB3 cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lmeSEoJGlkKSk/OworLSAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKGYsICIsICIpPzsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/Owor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX2ZtdF9sb3dlcl9oZXg+XSB7CistICAgICAgICAgICAgICAgICAgICB1 c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRf YXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIGxvd2VyX2hleCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug YXJyYXl2ZWM6OntBcnJheVN0cmluZyxBcnJheVZlY307CistICAgICAgICAgICAgICAgICAgICAg ICAgdHlwZSBUaW55U3RyaW5nID0gQXJyYXlTdHJpbmc8W3U4OyA1MTJdPjsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmZtdDo6V3JpdGU7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IHMsICJ7OiN4fSIsIHYpLnVud3JhcCgpOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3 KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3Ry aW5naWZ5ISgkaWQpKS51bndyYXAoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQh KHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg czogQXJyYXlWZWM8W1RpbnlTdHJpbmc7IDY0XT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0cigpLCAiIikucmVwbGFjZSgiKSIsICIiKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoIiwiKQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAubWFwKHx2fCBUaW55U3RyaW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHMubGVuKCksICRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIChpbmRleCwgc3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpu ZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6I3h9 Iiwgdi5leHRyYWN0KGluZGV4KSkudW53cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShzcywgZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvZm10L29jdGFsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2ZtdC9vY3RhbC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L29jdGFsLnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSw1NCArMCwwIEBACistLy8hIEltcGxlbWVudCBPY3RhbCBmb3JtYXR0aW5nCist CistbWFjcm9fcnVsZXMhIGltcGxfZm10X29jdGFsIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsg JGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAg ICBpbXBsIGNyYXRlOjpmbXQ6Ok9jdGFsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQorLSAgICAgICAgICAgIGZu IGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6 Zm10OjpSZXN1bHQgeworLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lm eSEoJGlkKSk/OworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Cist ICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg d3JpdGUhKGYsICIsICIpPzsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF9vY3Rh bD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb2N0YWxfaGV4KCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0FycmF5U3RyaW5nLEFycmF5 VmVjfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlTdHJpbmcgPSBBcnJheVN0 cmluZzxbdTg7IDUxMl0+OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6 Zm10OjpXcml0ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQo JGVsZW1fdHk6OmRlZmF1bHQoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBz ID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGUhKCZt dXQgcywgIns6I299IiwgdikudW53cmFwKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBiZWcgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB3cml0ZSEoJm11dCBiZWcsICJ7fSgiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3JhcCgpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEocy5zdGFydHNfd2l0aChiZWcuYXNfc3RyKCkp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuZW5kc193aXRoKCIpIikpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiBBcnJheVZlYzxbVGlueVN0cmluZzsgNjRd PgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHMucmVwbGFjZShiZWcuYXNfc3RyKCks ICIiKS5yZXBsYWNlKCIpIiwgIiIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxp dCgiLCIpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofHZ8IFRpbnlTdHJpbmc6 OmZyb20odi50cmltKCkpLnVud3JhcCgpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAu Y29sbGVjdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEocy5sZW4oKSwg JGlkOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykg aW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgZSA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3cml0ZSEoJm11dCBlLCAiezojb30iLCB2LmV4dHJhY3QoaW5kZXgpKS51bndyYXAo KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShzcywgZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZm10L3VwcGVyX2hl eC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4 LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9mbXQvdXBwZXJfaGV4LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw1 NCArMCwwIEBACistLy8hIEltcGxlbWVudCBgVXBwZXJIZXhgIGZvcm1hdHRpbmcKKy0KKy1tYWNy b19ydWxlcyEgaW1wbF9mbXRfdXBwZXJfaGV4IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBp bXBsIGNyYXRlOjpmbXQ6OlVwcGVySGV4IGZvciAkaWQgeworLSAgICAgICAgICAgICNbYWxsb3co Y2xpcHB5OjptaXNzaW5nX2lubGluZV9pbl9wdWJsaWNfaXRlbXMpXQorLSAgICAgICAgICAgIGZu IGZtdCgmc2VsZiwgZjogJm11dCBjcmF0ZTo6Zm10OjpGb3JtYXR0ZXI8J18+KSAtPiBjcmF0ZTo6 Zm10OjpSZXN1bHQgeworLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgInt9KCIsIHN0cmluZ2lm eSEoJGlkKSk/OworLSAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7Cist ICAgICAgICAgICAgICAgICAgICBpZiBpID4gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg d3JpdGUhKGYsICIsICIpPzsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIHNlbGYuZXh0cmFjdChpKS5mbXQoZik/OworLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIHdyaXRlIShmLCAiKSIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAg IHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2ZtdF91cHBl cl9oZXg+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHVwcGVyX2hleCgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgYXJyYXl2ZWM6OntBcnJheVN0cmluZyxB cnJheVZlY307CistICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBUaW55U3RyaW5nID0gQXJy YXlTdHJpbmc8W3U4OyA1MTJdPjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmZtdDo6V3JpdGU7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNw bGF0KCRlbGVtX3R5OjpkZWZhdWx0KCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgcyA9IFRpbnlTdHJpbmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRl ISgmbXV0IHMsICJ7OiNYfSIsIHYpLnVud3JhcCgpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie30oIiwgc3RyaW5naWZ5ISgkaWQpKS51bndyYXAoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0 cigpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzLmVuZHNfd2l0aCgiKSIp KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgczogQXJyYXlWZWM8W1RpbnlTdHJpbmc7 IDY0XT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzLnJlcGxhY2UoYmVnLmFzX3N0 cigpLCAiIikucmVwbGFjZSgiKSIsICIiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAu c3BsaXQoIiwiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKHx2fCBUaW55U3Ry aW5nOjpmcm9tKHYudHJpbSgpKS51bndyYXAoKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLmNvbGxlY3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHMubGVu KCksICRpZDo6bGFuZXMoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwg c3MpIGluIHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGUgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGUhKCZtdXQgZSwgIns6I1h9Iiwgdi5leHRyYWN0KGluZGV4KSkudW53 cmFwKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc3MsIGUpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2Zyb20ucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvZnJvbS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNyArMCwwIEBACistLy8hIEltcGxlbWVu dGF0aW9ucyBvZiB0aGUgYEZyb21gIGFuZCBgSW50b2AgdHJhaXRzCistCistI1ttYWNyb191c2Vd CistbW9kIGZyb21fYXJyYXk7CistCistI1ttYWNyb191c2VdCistbW9kIGZyb21fdmVjdG9yOwor ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zy b21fYXJyYXkucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9m cm9tX2FycmF5LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9mcm9tL2Zyb21fYXJyYXkucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDEyNCArMCwwIEBACistLy8hIEltcGxlbWVudHMgYEZyb208W1Q7IE5dPmAgYW5k IGBJbnRvPFtUOyBOXT5gIGZvciB2ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxf ZnJvbV9hcnJheSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dAorLSAgICAgfCAoJG5vbl9kZWZhdWx0X2FycmF5OmV4cHIs ICRub25fZGVmYXVsdF92ZWM6ZXhwcikpID0+IHsKKy0gICAgICAgIGltcGwgRnJvbTxbJGVsZW1f dHk7ICRlbGVtX2NvdW50XT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gZnJvbShhcnJheTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0pIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGFycmF5 OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSwKKy0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlk LAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyBhcnJh eSB9LnZlYyB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBG cm9tPCRpZD4gZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBmcm9tKHZlYzogJGlkKSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBhcnJheTogWyRlbGVtX3R5 OyAkZWxlbV9jb3VudF0sCistICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBVIHsgdmVjIH0uYXJyYXkgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIC8vIEZJWE1FOiBgSW50bzo6 aW50b2AgaXMgbm90IGlubGluZSwgYnV0IGR1ZSB0bworLSAgICAgICAgLy8gdGhlIGJsYW5rZXQg aW1wbCBpbiBgc3RkYCwgd2hpY2ggaXMgbm90CistICAgICAgICAvLyBtYXJrZWQgYGRlZmF1bHRg LCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgaXQgaGVyZSB3aXRoCistICAgICAgICAvLyBzcGVjaWFsaXph dGlvbi4KKy0gICAgICAgIC8qCistICAgICAgICBpbXBsIEludG88WyRlbGVtX3R5OyAkZWxlbV9j b3VudF0+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGludG8oc2VsZikgLT4gWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0geworLSAgICAgICAgICAgICAg ICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGFycmF5OiBbJGVsZW1fdHk7ICRlbGVt X2NvdW50XSwKKy0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFUgeyB2ZWM6IHNlbGYgfS5hcnJheSB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBJbnRvPCRpZD4gZm9y IFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBpbnRvKHNlbGYpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIHVuaW9uIFUg eworLSAgICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAor LSAgICAgICAgICAgICAgICAgICAgdmVjOiAkaWQsCistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgdW5zYWZlIHsgVSB7IGFycmF5OiBzZWxmIH0udmVjIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgICAgICAqLworLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50aXNz YV4xIHJhbmdlLgorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21wKV0K Ky0gICAgICAgICAgICAgICAgbW9kIFs8JGlkIF9mcm9tPl0geworLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihtaXJpLCBpZ25vcmUpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gYXJyYXkoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYzogJGlkID0g RGVmYXVsdDo6ZGVmYXVsdCgpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiBXb3JrYXJvdW5kIGZvciBhcnJheXMgd2l0aCBtb3JlIHRoYW4gMzIKKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBlbGVtZW50cy4KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFNhZmUgYmVjYXVzZSB3ZSBuZXZlciB0YWtlIGEgcmVm ZXJlbmNlIHRvIGFueQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVuaW5pdGlhbGl6ZWQg ZWxlbWVudC4KKy0gICAgICAgICAgICAgICAgICAgICAgICB1bmlvbiBXIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXJyYXk6IFskZWxlbV90eTsgJGVsZW1fY291bnRdLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvdGhlcjogKCkKKy0gICAgICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhcnJheSA9IFcgeyBvdGhlcjog KCkgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWZhdWx0OiAkZWxlbV90eSA9IERl ZmF1bHQ6OmRlZmF1bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZTog YXJyYXkub3RoZXIgaXMgdGhlIGFjdGl2ZSBtZW1iZXIgYW5kCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGluaXRpYWxpemVkIHNvIHdlIGNhbiB0YWtlIGEgcmVmZXJlbmNlIHRvIGl0 OgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcCA9IHVuc2FmZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFycmF5Lm90aGVyIGFzICptdXQgKCkgYXMg Km11dCAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBub3RlOiBkZWZhdWx0IGlzIGEgdmFsaWQgYml0LXBhdHRl cm4gZm9yCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICRlbGVtX3R5OgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3JhdGU6OnB0cjo6d3JpdGUocC53cmFwcGluZ19hZGQoaSksIGRlZmF1bHQpCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vdGU6IHRoZSBhcnJheSB2YXJpYW50IG9m IHRoZSB1bmlvbiBpcyBwcm9wZXJseQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluaXRp YWxpemVkOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJyYXkgPSB1bnNhZmUg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5hcnJheQorLSAgICAgICAgICAg ICAgICAgICAgICAgIH07CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlbMF0gPSAk bm9uX2RlZmF1bHRfYXJyYXk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9IHZl Yy5yZXBsYWNlKDAsICRub25fZGVmYXVsdF92ZWMpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ZWNfZnJvbV9hcnJheSA9ICRpZDo6ZnJvbShhcnJheSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2ZWNfZnJvbV9hcnJheSwgdmVjKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgYXJyYXlfZnJvbV92ZWMKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgPSA8WyRlbGVtX3R5OyAkZWxlbV9jb3VudF0+Ojpmcm9tKHZlYyk7CistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gRklYTUU6IFdvcmthcm91bmQgZm9yIGFycmF5cyB3aXRoIG1vcmUg dGhhbiAzMgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRzLgorLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShhcnJheV9mcm9tX3ZlY1tpXSwgYXJyYXlbaV0pOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdmVjX2Zyb21faW50b19hcnJheTogJGlkID0gYXJyYXkuaW50bygpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodmVjX2Zyb21faW50b19hcnJheSwgdmVjKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgYXJyYXlfZnJvbV9pbnRvX3ZlYzogWyRlbGVtX3R5OyAk ZWxlbV9jb3VudF0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSB2ZWMuaW50bygpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXb3JrYXJvdW5kIGZvciBhcnJheXMg d2l0aCBtb3JlIHRoYW4gMzIKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cy4K Ky0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyYXlfZnJvbV9pbnRvX3ZlY1tp XSwgYXJyYXlbaV0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL2Zyb20vZnJvbV92ZWN0b3IucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rvci5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvZnJvbS9mcm9tX3ZlY3Rv ci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjcgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIGBG cm9tYCBhbmQgYEludG9gIGZvciB2ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxf ZnJvbV92ZWN0b3IgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTog JGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQKKy0gICAgIHwgJHNvdXJjZTppZGVudCkgPT4geworLSAg ICAgICAgaW1wbCBGcm9tPCRzb3VyY2U+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIGZyb20oc291cmNlOiAkc291cmNlKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgZm4gc3RhdGljX2Fzc2VydF9zYW1lX251bWJlcl9vZl9sYW5lczxULCBVPigp CistICAgICAgICAgICAgICAgIHdoZXJlCistICAgICAgICAgICAgICAgICAgICBUOiBjcmF0ZTo6 c2VhbGVkOjpTaW1kLAorLSAgICAgICAgICAgICAgICAgICAgVTogY3JhdGU6OnNlYWxlZDo6U2lt ZDxMYW5lc1R5cGUgPSBUOjpMYW5lc1R5cGU+LAorLSAgICAgICAgICAgICAgICB7CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2Nhc3Q7 CistICAgICAgICAgICAgICAgIHN0YXRpY19hc3NlcnRfc2FtZV9udW1iZXJfb2ZfbGFuZXM6Ojwk aWQsICRzb3VyY2U+KCk7CistICAgICAgICAgICAgICAgIFNpbWQodW5zYWZlIHsgc2ltZF9jYXN0 KHNvdXJjZS4wKSB9KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIC8v IEZJWE1FOiBgSW50bzo6aW50b2AgaXMgbm90IGlubGluZSwgYnV0IGR1ZSB0byB0aGUgYmxhbmtl dCBpbXBsIGluCistICAgICAgICAvLyBgc3RkYCwgd2hpY2ggaXMgbm90IG1hcmtlZCBgZGVmYXVs dGAsIHdlIGNhbm5vdCBvdmVycmlkZSBpdCBoZXJlCistICAgICAgICAvLyB3aXRoIHNwZWNpYWxp emF0aW9uLgorLQorLSAgICAgICAgLyoKKy0gICAgICAgICAgIGltcGwgSW50bzwkaWQ+IGZvciAk c291cmNlIHsKKy0gICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICBmbiBp bnRvKHNlbGYpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNpbWRfY2Fz dChzZWxmKSB9CistICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgfQorLSAgICAgICAgKi8K Ky0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9mcm9t XyAkc291cmNlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGlkOjpsYW5lcygpLCAkc291 cmNlOjpsYW5lcygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc291cmNlOiAkc291 cmNlID0gRGVmYXVsdDo6ZGVmYXVsdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2 ZWM6ICRpZCA9IERlZmF1bHQ6OmRlZmF1bHQoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgZSA9ICRpZDo6ZnJvbShzb3VyY2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZSwgdmVjKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZTogJGlk ID0gc291cmNlLmludG8oKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGUs IHZlYyk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBs X2Zyb21fdmVjdG9ycyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dAorLSAgICAgfCAkKCRzb3VyY2U6aWRlbnQpLCopID0+ IHsKKy0gICAgICAgICQoCistICAgICAgICAgICAgaW1wbF9mcm9tX3ZlY3RvciEoCistICAgICAg ICAgICAgICAgIFskZWxlbV90eTsgJGVsZW1fY291bnRdOiAkaWQgfCAkdGVzdF90dCB8ICRzb3Vy Y2UKKy0gICAgICAgICAgICApOworLSAgICAgICAgKSoKKy0gICAgfQorLX0KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaGFzaC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9oYXNoLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0OSArMCwwIEBACistLy8hIEltcGxlbWVudHMgYEhhc2hg IGZvciB2ZWN0b3IgdHlwZXMuCistCistbWFjcm9fcnVsZXMhIGltcGxfaGFzaCB7CistICAgIChb JGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0 dCkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6aGFzaDo6SGFzaCBmb3IgJGlkIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBoYXNoPEg6IGNyYXRlOjpoYXNoOjpI YXNoZXI+KCZzZWxmLCBzdGF0ZTogJm11dCBIKSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBkYXRhOiBbJGVsZW1fdHk7ICRpZDo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAg ICAgdmVjOiAkaWQsCistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICBBIHsgdmVjOiAqc2VsZiB9LmRhdGEuaGFzaChzdGF0ZSkKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAg ICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9oYXNoPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGhhc2goKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7SGFzaCwgSGFzaGVyfTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQorLSAgICAgICAg ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6aGFzaDo6e1NpcEhhc2hlcjEzfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0eXBlIEEgPSBbJGVsZW1fdHk7ICRpZDo6bGFuZXMoKV07CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGE6IEEgPSBbNDIgYXMgJGVsZW1fdHk7ICRpZDo6bGFu ZXMoKV07CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PEE+KCksCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjwkaWQ+KCkKKy0gICAgICAg ICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3coZGVw cmVjYXRlZCldCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhX2hhc2ggPSBTaXBI YXNoZXIxMzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2X2hhc2gg PSBhX2hhc2guY2xvbmUoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhLmhhc2goJm11dCBh X2hhc2gpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludGVnZXIgd2l0aGluIG1h bnRpc3NhXjEgcmFuZ2UuCistICAgICAgICAgICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6 OmZsb2F0X2NtcCldCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0 KDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2Lmhhc2goJm11dCB2 X2hhc2gpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYV9oYXNoLmZpbmlz aCgpLCB2X2hhc2guZmluaXNoKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvaW50b19iaXRzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw1OSArMCwwIEBACist Ly8hIEltcGxlbWVudGF0aW9uIG9mIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AuCistCistLy8v IFNhZmUgbG9zc2xlc3MgYml0d2lzZSBjb252ZXJzaW9uIGZyb20gYFRgIHRvIGBTZWxmYC4KKy0j W2NmZ19hdHRyKGRvY19jZmcsIGRvYyhjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKSkpXQorLXB1 YiB0cmFpdCBGcm9tQml0czxUPjogY3JhdGU6Om1hcmtlcjo6U2l6ZWQgeworLSAgICAvLy8gU2Fm ZSBsb3NzbGVzcyBiaXR3aXNlIHRyYW5zbXV0ZSBmcm9tIGBUYCB0byBgU2VsZmAuCistICAgIGZu IGZyb21fYml0cyh0OiBUKSAtPiBTZWxmOworLX0KKy0KKy0vLy8gU2FmZSBsb3NzbGVzcyBiaXR3 aXNlIGNvbnZlcnNpb24gZnJvbSBgU2VsZmAgdG8gYFRgLgorLSNbY2ZnX2F0dHIoZG9jX2NmZywg ZG9jKGNmZyhmZWF0dXJlID0gImludG9fYml0cyIpKSldCistcHViIHRyYWl0IEludG9CaXRzPFQ+ OiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7CistICAgIC8vLyBTYWZlIGxvc3NsZXNzIGJpdHdpc2Ug dHJhbnNtdXRlIGZyb20gYHNlbGZgIHRvIGBUYC4KKy0gICAgZm4gaW50b19iaXRzKHNlbGYpIC0+ IFQ7CistfQorLQorLS8vLyBgRnJvbUJpdHNgIGltcGxpZXMgYEludG9CaXRzYC4KKy1pbXBsPFQs IFU+IEludG9CaXRzPFU+IGZvciBUCistd2hlcmUKKy0gICAgVTogRnJvbUJpdHM8VD4sCistewor LSAgICAjW2lubGluZV0KKy0gICAgZm4gaW50b19iaXRzKHNlbGYpIC0+IFUgeworLSAgICAgICAg ZGVidWdfYXNzZXJ0IShjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKSA9PSBjcmF0ZTo6bWVt OjpzaXplX29mOjo8VT4oKSk7CistICAgICAgICBVOjpmcm9tX2JpdHMoc2VsZikKKy0gICAgfQor LX0KKy0KKy0vLy8gYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBhcmUgcmVmbGV4aXZlCistaW1w bDxUPiBGcm9tQml0czxUPiBmb3IgVCB7CistICAgICNbaW5saW5lXQorLSAgICBmbiBmcm9tX2Jp dHModDogU2VsZikgLT4gU2VsZiB7CistICAgICAgICB0CistICAgIH0KKy19CistCistI1ttYWNy b191c2VdCistbW9kIG1hY3JvczsKKy0KKy1tb2QgdjE2OworLXB1YiB1c2Ugc2VsZjo6djE2Ojoq OworLQorLW1vZCB2MzI7CistcHViIHVzZSBzZWxmOjp2MzI6Oio7CistCistbW9kIHY2NDsKKy1w dWIgdXNlIHNlbGY6OnY2NDo6KjsKKy0KKy1tb2QgdjEyODsKKy1wdWIgdXNlIHNlbGY6OnYxMjg6 Oio7CistCistbW9kIHYyNTY7CistcHViIHVzZSBzZWxmOjp2MjU2OjoqOworLQorLW1vZCB2NTEy OworLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsKKy0KKy1tb2QgYXJjaF9zcGVjaWZpYzsKKy1wdWIg dXNlIHNlbGY6OmFyY2hfc3BlY2lmaWM6Oio7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy9hcmNoX3NwZWNpZmljLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvYXJjaF9zcGVjaWZpYy5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsMzQ1ICswLDAgQEAKKy0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBiZXR3ZWVu IHBvcnRhYmxlIHZlY3RvciB0eXBlcyBhbmQgdGhlCistLy8hIGFyY2hpdGVjdHVyZS1zcGVjaWZp YyB2ZWN0b3IgdHlwZXMuCistI1tydXN0Zm10Ojpza2lwXQorLQorLS8vIEZJWE1FOiBNSVBTIEZy b21CaXRzL0ludG9CaXRzCistCistI1thbGxvdyh1bnVzZWQpXQorLXVzZSBjcmF0ZTo6KjsKKy0K Ky0vLy8gVGhpcyBtYWNybyBpbXBsZW1lbnRzIEZyb21CaXRzIGZvciB0aGUgcG9ydGFibGUgYW5k IHRoZSBhcmNoaXRlY3R1cmUKKy0vLy8gc3BlY2lmaWMgdmVjdG9yIHR5cGVzLgorLS8vLworLS8v LyBUaGUgImxlYWYiIGNhc2UgaXMgYXQgdGhlIGJvdHRvbSwgYW5kIHRoZSBtb3N0IGdlbmVyaWMg Y2FzZSBpcyBhdCB0aGUgdG9wLgorLS8vLyBUaGUgZ2VuZXJpYyBjYXNlIGlzIHNwbGl0IGludG8g c21hbGxlciBjYXNlcyByZWN1cnNpdmVseS4KKy1tYWNyb19ydWxlcyEgaW1wbF9hcmNoIHsKKy0g ICAgKFskYXJjaF9oZWFkX2k6aWRlbnRbJGFyY2hfaGVhZF90dDp0dF06ICQoJGFyY2hfaGVhZF90 eTppZGVudCksKl0sCistICAgICAkKFskYXJjaF90YWlsX2k6aWRlbnRbJGFyY2hfdGFpbF90dDp0 dF06ICQoJGFyY2hfdGFpbF90eTppZGVudCksKl0pLCogfAorLSAgICAgZnJvbTogJCgkZnJvbV90 eTppZGVudCksKiB8IGludG86ICQoJGludG9fdHk6aWRlbnQpLCogfAorLSAgICAgdGVzdDogJHRl c3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGxfYXJjaCEoCistICAgICAgICAgICAgWyRhcmNo X2hlYWRfaVskYXJjaF9oZWFkX3R0XTogJCgkYXJjaF9oZWFkX3R5KSwqXSB8CistICAgICAgICAg ICAgZnJvbTogJCgkZnJvbV90eSksKiB8CistICAgICAgICAgICAgaW50bzogJCgkaW50b190eSks KiB8CistICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgICAgICBp bXBsX2FyY2ghKAorLSAgICAgICAgICAgICQoWyRhcmNoX3RhaWxfaVskYXJjaF90YWlsX3R0XTog JCgkYXJjaF90YWlsX3R5KSwqXSksKiB8CistICAgICAgICAgICAgZnJvbTogJCgkZnJvbV90eSks KiB8CistICAgICAgICAgICAgaW50bzogJCgkaW50b190eSksKiB8CistICAgICAgICAgICAgdGVz dDogJHRlc3RfdHQKKy0gICAgICAgICk7CistICAgIH07CistICAgIChbJGFyY2g6aWRlbnRbJGFy Y2hfdHQ6dHRdOiAkKCRhcmNoX3R5OmlkZW50KSwqXSB8CistICAgICBmcm9tOiAkKCRmcm9tX3R5 OmlkZW50KSwqIHwgaW50bzogJCgkaW50b190eTppZGVudCksKiB8CistICAgICB0ZXN0OiAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgLy8gbm90ZTogaWYgdGFyZ2V0IGlzICJhcm0iLCAiK3Y3 LCtuZW9uIiBtdXN0IGJlIGVuYWJsZWQKKy0gICAgICAgIC8vIGFuZCB0aGUgc3RkIGxpYnJhcnkg bXVzdCBiZSByZWNvbXBpbGVkIHdpdGggdGhlbQorLSAgICAgICAgI1tjZmcoYW55KAorLSAgICAg ICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9ICJhcm0iKSwKKy0gICAgICAgICAgICBhbGwodGFyZ2V0 X2ZlYXR1cmUgPSAidjciLCB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwKKy0gICAgICAgICAgICAg ICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNoIiwgbGliY29yZV9uZW9uKSkpCistICAgICAgICAp XQorLSAgICAgICAgLy8gbm90ZTogaWYgdGFyZ2V0IGlzICJwb3dlcnBjIiwgImFsdGl2ZWMiIG11 c3QgYmUgZW5hYmxlZAorLSAgICAgICAgLy8gYW5kIHRoZSBzdGQgbGlicmFyeSBtdXN0IGJlIHJl Y29tcGlsZWQgd2l0aCBpdAorLSAgICAgICAgI1tjZmcoYW55KAorLSAgICAgICAgICAgIG5vdCh0 YXJnZXRfYXJjaCA9ICJwb3dlcnBjIiksCistICAgICAgICAgICAgYWxsKHRhcmdldF9mZWF0dXJl ID0gImFsdGl2ZWMiLCBmZWF0dXJlID0gImNvcmVfYXJjaCIpLAorLSAgICAgICAgKSldCistICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICRhcmNoX3R0KV0KKy0gICAgICAgIHVzZSBjcmF0ZTo6 YXJjaDo6JGFyY2g6OnsKKy0gICAgICAgICAgICAkKCRhcmNoX3R5KSwqCistICAgICAgICB9Owor LQorLSAgICAgICAgI1tjZmcoYW55KAorLSAgICAgICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9ICJh cm0iKSwKKy0gICAgICAgICAgICBhbGwodGFyZ2V0X2ZlYXR1cmUgPSAidjciLCB0YXJnZXRfZmVh dHVyZSA9ICJuZW9uIiwKKy0gICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9hcmNo IiwgbGliY29yZV9uZW9uKSkpCistICAgICAgICApXQorLSAgICAgICAgI1tjZmcoYW55KAorLSAg ICAgICAgICAgIG5vdCh0YXJnZXRfYXJjaCA9ICJwb3dlcnBjIiksCistICAgICAgICAgICAgYWxs KHRhcmdldF9mZWF0dXJlID0gImFsdGl2ZWMiLCBmZWF0dXJlID0gImNvcmVfYXJjaCIpLAorLSAg ICAgICAgKSldCistICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICRhcmNoX3R0KV0KKy0gICAg ICAgIGltcGxfYXJjaCEoJCgkYXJjaF90eSksKiB8ICQoJGZyb21fdHkpLCogfCAkKCRpbnRvX3R5 KSwqIHwKKy0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOworLSAgICB9OworLSAg ICAoJGFyY2hfaGVhZDppZGVudCwgJCgkYXJjaF90YWlsOmlkZW50KSwqIHwgJCgkZnJvbV90eTpp ZGVudCksKgorLSAgICAgfCAkKCRpbnRvX3R5OmlkZW50KSwqIHwgdGVzdDogJHRlc3RfdHQ6dHQp ID0+IHsKKy0gICAgICAgIGltcGxfYXJjaCEoJGFyY2hfaGVhZCB8ICQoJGZyb21fdHkpLCogfCAk KCRpbnRvX3R5KSwqIHwKKy0gICAgICAgICAgICAgICAgICAgdGVzdDogJHRlc3RfdHQpOworLSAg ICAgICAgaW1wbF9hcmNoISgkKCRhcmNoX3RhaWwpLCogfCAkKCRmcm9tX3R5KSwqIHwgJCgkaW50 b190eSksKiB8CistICAgICAgICAgICAgICAgICAgIHRlc3Q6ICR0ZXN0X3R0KTsKKy0gICAgfTsK Ky0gICAgKCRhcmNoX2hlYWQ6aWRlbnQgfCAkKCRmcm9tX3R5OmlkZW50KSwqIHwgJCgkaW50b190 eTppZGVudCksKiB8CistICAgICB0ZXN0OiAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1w bF9mcm9tX2JpdHMhKCRhcmNoX2hlYWRbJHRlc3RfdHRdOiAkKCRmcm9tX3R5KSwqKTsKKy0gICAg ICAgIGltcGxfaW50b19iaXRzISgkYXJjaF9oZWFkWyR0ZXN0X3R0XTogJCgkaW50b190eSksKik7 CistICAgIH07CistfQorLQorLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCistLy8gSW1wbGVtZW50 YXRpb25zIGZvciB0aGUgNjQtYml0IHdpZGUgdmVjdG9yIHR5cGVzOgorLQorLS8vIEZJWE1FOiA2 NC1iaXQgc2luZ2xlIGVsZW1lbnQgdHlwZXMKKy0vLyBGSVhNRTogYXJtL2FhcmNoIGZsb2F0MTZ4 NF90IG1pc3NpbmcKKy1pbXBsX2FyY2ghKAorLSAgICBbCistICAgICAgICBhcm1bImFybSJdOiBp bnQ4eDhfdCwKKy0gICAgICAgIHVpbnQ4eDhfdCwKKy0gICAgICAgIHBvbHk4eDhfdCwKKy0gICAg ICAgIGludDE2eDRfdCwKKy0gICAgICAgIHVpbnQxNng0X3QsCistICAgICAgICBwb2x5MTZ4NF90 LAorLSAgICAgICAgaW50MzJ4Ml90LAorLSAgICAgICAgdWludDMyeDJfdCwKKy0gICAgICAgIGZs b2F0MzJ4Ml90LAorLSAgICAgICAgaW50NjR4MV90LAorLSAgICAgICAgdWludDY0eDFfdAorLSAg ICBdLAorLSAgICBbCistICAgICAgICBhYXJjaDY0WyJhYXJjaDY0Il06IGludDh4OF90LAorLSAg ICAgICAgdWludDh4OF90LAorLSAgICAgICAgcG9seTh4OF90LAorLSAgICAgICAgaW50MTZ4NF90 LAorLSAgICAgICAgdWludDE2eDRfdCwKKy0gICAgICAgIHBvbHkxNng0X3QsCistICAgICAgICBp bnQzMngyX3QsCistICAgICAgICB1aW50MzJ4Ml90LAorLSAgICAgICAgZmxvYXQzMngyX3QsCist ICAgICAgICBpbnQ2NHgxX3QsCistICAgICAgICB1aW50NjR4MV90LAorLSAgICAgICAgZmxvYXQ2 NHgxX3QKKy0gICAgXSB8IGZyb206IGk4eDgsCistICAgIHU4eDgsCistICAgIG04eDgsCistICAg IGkxNng0LAorLSAgICB1MTZ4NCwKKy0gICAgbTE2eDQsCistICAgIGkzMngyLAorLSAgICB1MzJ4 MiwKKy0gICAgZjMyeDIsCistICAgIG0zMngyIHwgaW50bzogaTh4OCwKKy0gICAgdTh4OCwKKy0g ICAgaTE2eDQsCistICAgIHUxNng0LAorLSAgICBpMzJ4MiwKKy0gICAgdTMyeDIsCistICAgIGYz MngyIHwgdGVzdDogdGVzdF92NjQKKy0pOworLQorLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCist Ly8gSW1wbGVtZW50YXRpb25zIGZvciB0aGUgMTI4LWJpdCB3aWRlIHZlY3RvciB0eXBlczoKKy0K Ky0vLyBGSVhNRTogYXJtL2FhcmNoIGZsb2F0MTZ4OF90IG1pc3NpbmcKKy0vLyBGSVhNRTogcHBj IHZlY3Rvcl9waXhlbCBtaXNzaW5nCistLy8gRklYTUU6IHBwYzY0IHZlY3Rvcl9GbG9hdDE2IG1p c3NpbmcKKy0vLyBGSVhNRTogcHBjNjQgdmVjdG9yX3NpZ25lZF9sb25nX2xvbmcgbWlzc2luZwor LS8vIEZJWE1FOiBwcGM2NCB2ZWN0b3JfdW5zaWduZWRfbG9uZ19sb25nIG1pc3NpbmcKKy0vLyBG SVhNRTogcHBjNjQgdmVjdG9yX2Jvb2xfbG9uZ19sb25nIG1pc3NpbmcKKy0vLyBGSVhNRTogcHBj NjQgdmVjdG9yX3NpZ25lZF9fX2ludDEyOCBtaXNzaW5nCistLy8gRklYTUU6IHBwYzY0IHZlY3Rv cl91bnNpZ25lZF9fX2ludDEyOCBtaXNzaW5nCistaW1wbF9hcmNoISgKKy0gICAgW3g4NlsieDg2 Il06IF9fbTEyOCwgX19tMTI4aSwgX19tMTI4ZF0sCistICAgIFt4ODZfNjRbIng4Nl82NCJdOiBf X20xMjgsIF9fbTEyOGksIF9fbTEyOGRdLAorLSAgICBbCistICAgICAgICBhcm1bImFybSJdOiBp bnQ4eDE2X3QsCistICAgICAgICB1aW50OHgxNl90LAorLSAgICAgICAgcG9seTh4MTZfdCwKKy0g ICAgICAgIGludDE2eDhfdCwKKy0gICAgICAgIHVpbnQxNng4X3QsCistICAgICAgICBwb2x5MTZ4 OF90LAorLSAgICAgICAgaW50MzJ4NF90LAorLSAgICAgICAgdWludDMyeDRfdCwKKy0gICAgICAg IGZsb2F0MzJ4NF90LAorLSAgICAgICAgaW50NjR4Ml90LAorLSAgICAgICAgdWludDY0eDJfdAor LSAgICBdLAorLSAgICBbCistICAgICAgICBhYXJjaDY0WyJhYXJjaDY0Il06IGludDh4MTZfdCwK Ky0gICAgICAgIHVpbnQ4eDE2X3QsCistICAgICAgICBwb2x5OHgxNl90LAorLSAgICAgICAgaW50 MTZ4OF90LAorLSAgICAgICAgdWludDE2eDhfdCwKKy0gICAgICAgIHBvbHkxNng4X3QsCistICAg ICAgICBpbnQzMng0X3QsCistICAgICAgICB1aW50MzJ4NF90LAorLSAgICAgICAgZmxvYXQzMng0 X3QsCistICAgICAgICBpbnQ2NHgyX3QsCistICAgICAgICB1aW50NjR4Ml90LAorLSAgICAgICAg ZmxvYXQ2NHgyX3QKKy0gICAgXSwKKy0gICAgWworLSAgICAgICAgcG93ZXJwY1sicG93ZXJwYyJd OiB2ZWN0b3Jfc2lnbmVkX2NoYXIsCistICAgICAgICB2ZWN0b3JfdW5zaWduZWRfY2hhciwKKy0g ICAgICAgIHZlY3Rvcl9zaWduZWRfc2hvcnQsCistICAgICAgICB2ZWN0b3JfdW5zaWduZWRfc2hv cnQsCistICAgICAgICB2ZWN0b3Jfc2lnbmVkX2ludCwKKy0gICAgICAgIHZlY3Rvcl91bnNpZ25l ZF9pbnQsCistICAgICAgICB2ZWN0b3JfZmxvYXQKKy0gICAgXSwKKy0gICAgWworLSAgICAgICAg cG93ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVjdG9yX3NpZ25lZF9jaGFyLAorLSAgICAgICAgdmVj dG9yX3Vuc2lnbmVkX2NoYXIsCistICAgICAgICB2ZWN0b3Jfc2lnbmVkX3Nob3J0LAorLSAgICAg ICAgdmVjdG9yX3Vuc2lnbmVkX3Nob3J0LAorLSAgICAgICAgdmVjdG9yX3NpZ25lZF9pbnQsCist ICAgICAgICB2ZWN0b3JfdW5zaWduZWRfaW50LAorLSAgICAgICAgdmVjdG9yX2Zsb2F0LAorLSAg ICAgICAgdmVjdG9yX3NpZ25lZF9sb25nLAorLSAgICAgICAgdmVjdG9yX3Vuc2lnbmVkX2xvbmcs CistICAgICAgICB2ZWN0b3JfZG91YmxlCistICAgIF0gfCBmcm9tOiBpOHgxNiwKKy0gICAgdTh4 MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAor LSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAg aTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgbTY0eDIsCistICAgIGkxMjh4 MSwKKy0gICAgdTEyOHgxLAorLSAgICBtMTI4eDEgfCBpbnRvOiBpOHgxNiwKKy0gICAgdTh4MTYs CistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAg ICBmMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBmNjR4MiwKKy0gICAgaTEy OHgxLAorLSAgICB1MTI4eDEgfCB0ZXN0OiB0ZXN0X3YxMjgKKy0pOworLQorLWltcGxfYXJjaCEo CistICAgIFtwb3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX2NoYXJdLAorLSAgICBbcG93 ZXJwYzY0WyJwb3dlcnBjNjQiXTogdmVjdG9yX2Jvb2xfY2hhcl0gfCBmcm9tOiBtOHgxNiwKKy0g ICAgbTE2eDgsCistICAgIG0zMng0LAorLSAgICBtNjR4MiwKKy0gICAgbTEyOHgxIHwgaW50bzog aTh4MTYsCistICAgIHU4eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIGkzMng0 LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0g ICAgZjY0eDIsCistICAgIGkxMjh4MSwKKy0gICAgdTEyOHgxLAorLSAgICAvLyBNYXNrczoKKy0g ICAgbTh4MTYgfCB0ZXN0OiB0ZXN0X3YxMjgKKy0pOworLQorLWltcGxfYXJjaCEoCistICAgIFtw b3dlcnBjWyJwb3dlcnBjIl06IHZlY3Rvcl9ib29sX3Nob3J0XSwKKy0gICAgW3Bvd2VycGM2NFsi cG93ZXJwYzY0Il06IHZlY3Rvcl9ib29sX3Nob3J0XSB8IGZyb206IG0xNng4LAorLSAgICBtMzJ4 NCwKKy0gICAgbTY0eDIsCistICAgIG0xMjh4MSB8IGludG86IGk4eDE2LAorLSAgICB1OHgxNiwK Ky0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAg IGYzMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBpMTI4 eDEsCistICAgIHUxMjh4MSwKKy0gICAgLy8gTWFza3M6CistICAgIG04eDE2LAorLSAgICBtMTZ4 OCB8IHRlc3Q6IHRlc3RfdjEyOAorLSk7CistCistaW1wbF9hcmNoISgKKy0gICAgW3Bvd2VycGNb InBvd2VycGMiXTogdmVjdG9yX2Jvb2xfaW50XSwKKy0gICAgW3Bvd2VycGM2NFsicG93ZXJwYzY0 Il06IHZlY3Rvcl9ib29sX2ludF0gfCBmcm9tOiBtMzJ4NCwKKy0gICAgbTY0eDIsCistICAgIG0x Mjh4MSB8IGludG86IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4 LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBpNjR4MiwKKy0g ICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAg Ly8gTWFza3M6CistICAgIG04eDE2LAorLSAgICBtMTZ4OCwKKy0gICAgbTMyeDQgfCB0ZXN0OiB0 ZXN0X3YxMjgKKy0pOworLQorLWltcGxfYXJjaCEoCistICAgIFtwb3dlcnBjNjRbInBvd2VycGM2 NCJdOiB2ZWN0b3JfYm9vbF9sb25nXSB8IGZyb206IG02NHgyLAorLSAgICBtMTI4eDEgfCBpbnRv OiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgaTMy eDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAor LSAgICBmNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIC8vIE1hc2tzOgor LSAgICBtOHgxNiwKKy0gICAgbTE2eDgsCistICAgIG0zMng0LAorLSAgICBtNjR4MiB8IHRlc3Q6 IHRlc3RfdjEyOAorLSk7CistCistLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy0vLyBJbXBsZW1l bnRhdGlvbnMgZm9yIHRoZSAyNTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistaW1wbF9hcmNo ISgKKy0gICAgW3g4NlsieDg2Il06IF9fbTI1NiwgX19tMjU2aSwgX19tMjU2ZF0sCistICAgIFt4 ODZfNjRbIng4Nl82NCJdOiBfX20yNTYsIF9fbTI1NmksIF9fbTI1NmRdIHwgZnJvbTogaTh4MzIs CistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCist ICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAg bTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0 LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyIHwgaW50bzogaTh4MzIs CistICAgIHU4eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgaTMyeDgsCist ICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgaTY0eDQsCistICAgIHU2NHg0LAorLSAgICBm NjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIgfCB0ZXN0OiB0ZXN0X3YyNTYKKy0pOwor LQorLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCistLy8gRklYTUU6IEltcGxlbWVudGF0aW9ucyBm b3IgdGhlIDUxMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL21hY3Jvcy5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9pbnRvX2JpdHMvbWFjcm9zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3NCArMCwwIEBA CistLy8hIE1hY3JvcyBpbXBsZW1lbnRpbmcgYEZyb21CaXRzYAorLQorLW1hY3JvX3J1bGVzISBp bXBsX2Zyb21fYml0c18geworLSAgICAoJGlkOmlkZW50WyR0ZXN0X3R0OnR0XTogJGZyb21fdHk6 aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6OmFwaTo6aW50b19iaXRzOjpGcm9tQml0 czwkZnJvbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gZnJvbV9iaXRzKHg6ICRmcm9tX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHgpIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfZnJvbV9iaXRzXyAkZnJvbV90eT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBl cjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OnsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyOjp7cmVhZF91bmFsaWduZWR9LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtZW06OntzaXplX29mLCB6ZXJvZWR9CistICAgICAgICAg ICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oklu dG9CaXRzOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoc2l6ZV9vZjo6PCRp ZD4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfb2Y6OjwkZnJv bV90eT4oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGJlY2F1 c2Ugd2UgbmV2ZXIgY3JlYXRlIGEgcmVmZXJlbmNlIHRvCistICAgICAgICAgICAgICAgICAgICAg ICAgLy8gdW5pbml0aWFsaXplZCBtZW1vcnk6CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGE6ICRmcm9tX3R5ID0gdW5zYWZlIHsgemVyb2VkKCkgfTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgYl8wOiAkaWQgPSBjcmF0ZTo6RnJvbUJpdHM6OmZyb21fYml0cyhhKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYl8xOiAkaWQgPSBhLmludG9fYml0cygpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlc2UgYXJlIGJ5dGUtd2lz ZSBlcXVhbCwgdGhhdCBpcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHRoZSBi aXQgcGF0dGVybnMgYXJlIGlkZW50aWNhbDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi5zaXplX29mOjo8JGlkPigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gVGhpcyBpcyBzYWZlIGJlY2F1c2Ugd2Ugb25seSByZWFkIGluaXRpYWxpemVkCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIG1lbW9yeSBpbiBib3VuZHMuIEFsc28sIHRha2luZyBh IHJlZmVyZW5jZSB0bworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBgYl9pYCBpcyBv ayBiZWNhdXNlIHRoZSBmaWVsZHMgYXJlIGluaXRpYWxpemVkLgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGJfMF92OiB1OCA9IHJlYWRfdW5hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgmYl8wIGFzICpjb25zdCAkaWQgYXMgKmNvbnN0IHU4KQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAud3JhcHBpbmdfYWRkKGkpCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGJfMV92OiB1OCA9IHJlYWRfdW5hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgmYl8xIGFzICpjb25zdCAkaWQgYXMgKmNvbnN0IHU4KQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAud3JhcHBpbmdfYWRkKGkpCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShiXzBfdiwgYl8xX3YpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAg ICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9mcm9tX2JpdHMgeworLSAgICAoJGlkOmlk ZW50WyR0ZXN0X3R0OnR0XTogJCgkZnJvbV90eTppZGVudCksKikgPT4geworLSAgICAgICAgJCgK Ky0gICAgICAgICAgICBpbXBsX2Zyb21fYml0c18hKCRpZFskdGVzdF90dF06ICRmcm9tX3R5KTsK Ky0gICAgICAgICkqCistICAgIH0KKy19CistCistI1thbGxvdyh1bnVzZWQpXQorLW1hY3JvX3J1 bGVzISBpbXBsX2ludG9fYml0cyB7CistICAgICgkaWQ6aWRlbnRbJHRlc3RfdHQ6dHRdOiAkKCRm cm9tX3R5OmlkZW50KSwqKSA9PiB7CistICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGxfZnJv bV9iaXRzXyEoJGZyb21fdHlbJHRlc3RfdHRdOiAkaWQpOworLSAgICAgICAgKSoKKy0gICAgfQor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL3YxMjgucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50 b19iaXRzL3YxMjgucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTI4LnJzCisrKysgL2Rldi9u dWxsCitAQCAtMSwyMzIgKzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGlt cGxlbWVudGF0aW9ucyBmb3IgcG9ydGFibGUgMTI4LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3Rm bXQ6OnNraXBdCistCistI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKKy11 c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpOHgxNlt0ZXN0X3YxMjhd OiB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2 eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0LAor LSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAg aTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistaW1wbF9mcm9tX2JpdHMh KAorLSAgICB1OHgxNlt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4 LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0g ICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2 NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4 MQorLSk7CistaW1wbF9mcm9tX2JpdHMhKG04eDE2W3Rlc3RfdjEyOF06IG0xNng4LCBtMzJ4NCwg bTY0eDIsIG0xMjh4MSk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMTZ4OFt0ZXN0X3Yx MjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICB1MTZ4OCwKKy0gICAg bTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgZjMyeDQsCistICAgIG0zMng0 LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0g ICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistaW1wbF9mcm9tX2Jp dHMhKAorLSAgICB1MTZ4OFt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04 eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwK Ky0gICAgZjMyeDQsCistICAgIG0zMng0LAorLSAgICBpNjR4MiwKKy0gICAgdTY0eDIsCistICAg IGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0x Mjh4MQorLSk7CistaW1wbF9mcm9tX2JpdHMhKG0xNng4W3Rlc3RfdjEyOF06IG0zMng0LCBtNjR4 MiwgbTEyOHgxKTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkzMng0W3Rlc3RfdjEyOF06 IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4 OCwKKy0gICAgbTE2eDgsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCist ICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBp MTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEo CistICAgIHUzMng0W3Rlc3RfdjEyOF06IGk4eDE2LAorLSAgICB1OHgxNiwKKy0gICAgbTh4MTYs CistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAgbTE2eDgsCistICAgIGkzMng0LAorLSAg ICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0 eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCistICAgIHUxMjh4MSwKKy0gICAgbTEyOHgx CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGYzMng0W3Rlc3RfdjEyOF06IGk4eDE2LAor LSAgICB1OHgxNiwKKy0gICAgbTh4MTYsCistICAgIGkxNng4LAorLSAgICB1MTZ4OCwKKy0gICAg bTE2eDgsCistICAgIGkzMng0LAorLSAgICB1MzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgy LAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBpMTI4eDEsCist ICAgIHUxMjh4MSwKKy0gICAgbTEyOHgxCistKTsKKy1pbXBsX2Zyb21fYml0cyEobTMyeDRbdGVz dF92MTI4XTogbTY0eDIsIG0xMjh4MSk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpNjR4 Mlt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4 OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCist ICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgdTY0eDIsCistICAgIGY2NHgyLAorLSAgICBt NjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistaW1w bF9mcm9tX2JpdHMhKAorLSAgICB1NjR4Mlt0ZXN0X3YxMjhdOiBpOHgxNiwKKy0gICAgdTh4MTYs CistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAgdTE2eDgsCistICAgIG0xNng4LAorLSAg ICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0 eDIsCistICAgIGY2NHgyLAorLSAgICBtNjR4MiwKKy0gICAgaTEyOHgxLAorLSAgICB1MTI4eDEs CistICAgIG0xMjh4MQorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBmNjR4Mlt0ZXN0X3Yx MjhdOiBpOHgxNiwKKy0gICAgdTh4MTYsCistICAgIG04eDE2LAorLSAgICBpMTZ4OCwKKy0gICAg dTE2eDgsCistICAgIG0xNng4LAorLSAgICBpMzJ4NCwKKy0gICAgdTMyeDQsCistICAgIGYzMng0 LAorLSAgICBtMzJ4NCwKKy0gICAgaTY0eDIsCistICAgIHU2NHgyLAorLSAgICBtNjR4MiwKKy0g ICAgaTEyOHgxLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistaW1wbF9mcm9tX2Jp dHMhKG02NHgyW3Rlc3RfdjEyOF06IG0xMjh4MSk7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAg ICBpMTI4eDFbdGVzdF92MTI4XTogaTh4MTYsCistICAgIHU4eDE2LAorLSAgICBtOHgxNiwKKy0g ICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4OCwKKy0gICAgaTMyeDQsCistICAgIHUz Mng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCistICAgIGk2NHgyLAorLSAgICB1NjR4MiwK Ky0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICB1MTI4eDEsCistICAgIG0xMjh4MQorLSk7 CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1MTI4eDFbdGVzdF92MTI4XTogaTh4MTYsCistICAg IHU4eDE2LAorLSAgICBtOHgxNiwKKy0gICAgaTE2eDgsCistICAgIHUxNng4LAorLSAgICBtMTZ4 OCwKKy0gICAgaTMyeDQsCistICAgIHUzMng0LAorLSAgICBmMzJ4NCwKKy0gICAgbTMyeDQsCist ICAgIGk2NHgyLAorLSAgICB1NjR4MiwKKy0gICAgZjY0eDIsCistICAgIG02NHgyLAorLSAgICBp MTI4eDEsCistICAgIG0xMjh4MQorLSk7CistLy8gbm90ZTogbTEyOHgxIGNhbm5vdCBiZSBjb25z dHJ1Y3RlZCBmcm9tIGFsbCB0aGUgb3RoZXIgbWFza3MgYml0IHBhdHRlcm5zIGluCistLy8gaGVy ZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRv X2JpdHMvdjE2LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9f Yml0cy92MTYucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92MTYucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDkgKzAsMCBAQAorLS8vISBgRnJvbUJpdHNgIGFuZCBgSW50b0JpdHNgIGltcGxlbWVu dGF0aW9ucyBmb3IgcG9ydGFibGUgMTYtYml0IHdpZGUgdmVjdG9ycworLSNbcnVzdGZtdDo6c2tp cF0KKy0KKy0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAorLXVzZSBjcmF0 ZTo6KjsKKy0KKy1pbXBsX2Zyb21fYml0cyEoaTh4Mlt0ZXN0X3YxNl06IHU4eDIsIG04eDIpOwor LWltcGxfZnJvbV9iaXRzISh1OHgyW3Rlc3RfdjE2XTogaTh4MiwgbTh4Mik7CistLy8gbm90ZTog bTh4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgaTh4MiBvciB1OHgyIGJpdCBwYXR0 ZXJucworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9p bnRvX2JpdHMvdjI1Ni5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9p bnRvX2JpdHMvdjI1Ni5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YyNTYucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDIzMiArMCwwIEBACistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2Ag aW1wbGVtZW50YXRpb25zIGZvciBwb3J0YWJsZSAyNTYtYml0IHdpZGUgdmVjdG9ycworLSNbcnVz dGZtdDo6c2tpcF0KKy0KKy0jW2FsbG93KHVudXNlZCldICAvLyB3YXNtX2JpbmRnZW5fdGVzdAor LXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGk4eDMyW3Rlc3RfdjI1 Nl06IHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAg IG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMy eDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwKKy0gICAgZjY0eDQsCistICAgIG02NHg0LAor LSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0gICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21f Yml0cyEoCistICAgIHU4eDMyW3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICBtOHgzMiwKKy0gICAg aTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUz Mng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICB1NjR4NCwK Ky0gICAgZjY0eDQsCistICAgIG02NHg0LAorLSAgICBpMTI4eDIsCistICAgIHUxMjh4MiwKKy0g ICAgbTEyOHgyCistKTsKKy1pbXBsX2Zyb21fYml0cyEobTh4MzJbdGVzdF92MjU2XTogbTE2eDE2 LCBtMzJ4OCwgbTY0eDQsIG0xMjh4Mik7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBpMTZ4 MTZbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgdTE2 eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgs CistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAg ICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7Cist aW1wbF9mcm9tX2JpdHMhKAorLSAgICB1MTZ4MTZbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4 eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4 LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0g ICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1 MTI4eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKG0xNngxNlt0ZXN0X3Yy NTZdOiBtMzJ4OCwgbTY0eDQsIG0xMjh4Mik7CistCistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBp MzJ4OFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICBp MTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICB1MzJ4OCwKKy0gICAgZjMy eDgsCistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAor LSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7 CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICB1MzJ4OFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAg dTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2 eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4NCwK Ky0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAg ICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBmMzJ4 OFt0ZXN0X3YyNTZdOiBpOHgzMiwKKy0gICAgdTh4MzIsCistICAgIG04eDMyLAorLSAgICBpMTZ4 MTYsCistICAgIHUxNngxNiwKKy0gICAgbTE2eDE2LAorLSAgICBpMzJ4OCwKKy0gICAgdTMyeDgs CistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAg ICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICB1MTI4eDIsCistICAgIG0xMjh4MgorLSk7Cist aW1wbF9mcm9tX2JpdHMhKG0zMng4W3Rlc3RfdjI1Nl06IG02NHg0LCBtMTI4eDIpOworLQorLWlt cGxfZnJvbV9iaXRzISgKKy0gICAgaTY0eDRbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMy LAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwK Ky0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAg IHU2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEy OHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgdTY0eDRbdGVz dF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAorLSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAor LSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0gICAgaTMyeDgsCistICAgIHUzMng4LAorLSAg ICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2NHg0LAorLSAgICBmNjR4NCwKKy0gICAgbTY0 eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxf ZnJvbV9iaXRzISgKKy0gICAgZjY0eDRbdGVzdF92MjU2XTogaTh4MzIsCistICAgIHU4eDMyLAor LSAgICBtOHgzMiwKKy0gICAgaTE2eDE2LAorLSAgICB1MTZ4MTYsCistICAgIG0xNngxNiwKKy0g ICAgaTMyeDgsCistICAgIHUzMng4LAorLSAgICBmMzJ4OCwKKy0gICAgbTMyeDgsCistICAgIGk2 NHg0LAorLSAgICB1NjR4NCwKKy0gICAgbTY0eDQsCistICAgIGkxMjh4MiwKKy0gICAgdTEyOHgy LAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzIShtNjR4NFt0ZXN0X3YyNTZdOiBt MTI4eDIpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTEyOHgyW3Rlc3RfdjI1Nl06IGk4 eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIsCistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2 LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAorLSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCist ICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAgdTY0eDQsCistICAgIGY2NHg0LAorLSAgICBt NjR4NCwKKy0gICAgdTEyOHgyLAorLSAgICBtMTI4eDIKKy0pOworLWltcGxfZnJvbV9iaXRzISgK Ky0gICAgdTEyOHgyW3Rlc3RfdjI1Nl06IGk4eDMyLAorLSAgICB1OHgzMiwKKy0gICAgbTh4MzIs CistICAgIGkxNngxNiwKKy0gICAgdTE2eDE2LAorLSAgICBtMTZ4MTYsCistICAgIGkzMng4LAor LSAgICB1MzJ4OCwKKy0gICAgZjMyeDgsCistICAgIG0zMng4LAorLSAgICBpNjR4NCwKKy0gICAg dTY0eDQsCistICAgIGY2NHg0LAorLSAgICBtNjR4NCwKKy0gICAgaTEyOHgyLAorLSAgICBtMTI4 eDIKKy0pOworLS8vIG5vdGU6IG0xMjh4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwg dGhlIG90aGVyIG1hc2tzIGJpdCBwYXR0ZXJucyBpbgorLS8vIGhlcmUKK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvaW50b19iaXRzL3YzMi5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9pbnRvX2JpdHMvdjMyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMyArMCwwIEBA CistLy8hIGBGcm9tQml0c2AgYW5kIGBJbnRvQml0c2AgaW1wbGVtZW50YXRpb25zIGZvciBwb3J0 YWJsZSAzMi1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLSNbYWxsb3co dW51c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0CistdXNlIGNyYXRlOjoqOworLQorLWltcGxf ZnJvbV9iaXRzIShpOHg0W3Rlc3RfdjMyXTogdTh4NCwgbTh4NCwgaTE2eDIsIHUxNngyLCBtMTZ4 Mik7CistaW1wbF9mcm9tX2JpdHMhKHU4eDRbdGVzdF92MzJdOiBpOHg0LCBtOHg0LCBpMTZ4Miwg dTE2eDIsIG0xNngyKTsKKy1pbXBsX2Zyb21fYml0cyEobTh4NFt0ZXN0X3YzMl06IG0xNngyKTsK Ky0KKy1pbXBsX2Zyb21fYml0cyEoaTE2eDJbdGVzdF92MzJdOiBpOHg0LCB1OHg0LCBtOHg0LCB1 MTZ4MiwgbTE2eDIpOworLWltcGxfZnJvbV9iaXRzISh1MTZ4Mlt0ZXN0X3YzMl06IGk4eDQsIHU4 eDQsIG04eDQsIGkxNngyLCBtMTZ4Mik7CistLy8gbm90ZTogbTE2eDIgY2Fubm90IGJlIGNvbnN0 cnVjdGVkIGZyb20gYWxsIG04eDQgYml0IHBhdHRlcm5zCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NTEyLnJzCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9pbnRvX2JpdHMvdjUxMi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjMyICswLDAgQEAKKy0v LyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxl IDUxMi1iaXQgd2lkZSB2ZWN0b3JzCistI1tydXN0Zm10Ojpza2lwXQorLQorLSNbYWxsb3codW51 c2VkKV0gIC8vIHdhc21fYmluZGdlbl90ZXN0CistdXNlIGNyYXRlOjoqOworLQorLWltcGxfZnJv bV9iaXRzISgKKy0gICAgaTh4NjRbdGVzdF92NTEyXTogdTh4NjQsCistICAgIG04eDY0LAorLSAg ICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAg IHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1 NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4 NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIHU4eDY0W3Rlc3Rf djUxMl06IGk4eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIsCist ICAgIG0xNngzMiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0g ICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBt NjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAorLSk7CistaW1w bF9mcm9tX2JpdHMhKG04eDY0W3Rlc3RfdjUxMl06IG0xNngzMiwgbTMyeDE2LCBtNjR4OCwgbTEy OHg0KTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkxNngzMlt0ZXN0X3Y1MTJdOiBpOHg2 NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAorLSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwK Ky0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0gICAgbTMyeDE2LAor LSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBtNjR4OCwKKy0gICAg aTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAorLSk7CistaW1wbF9mcm9tX2JpdHMh KAorLSAgICB1MTZ4MzJbdGVzdF92NTEyXTogaTh4NjQsCistICAgIHU4eDY0LAorLSAgICBtOHg2 NCwKKy0gICAgaTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2 LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAor LSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAgdTEyOHg0LAorLSAg ICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRzIShtMTZ4MzJbdGVzdF92NTEyXTogbTMyeDE2 LCBtNjR4OCwgbTEyOHg0KTsKKy0KKy1pbXBsX2Zyb21fYml0cyEoCistICAgIGkzMngxNlt0ZXN0 X3Y1MTJdOiBpOHg2NCwKKy0gICAgdTh4NjQsCistICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCist ICAgIHUxNngzMiwKKy0gICAgbTE2eDMyLAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0g ICAgbTMyeDE2LAorLSAgICBpNjR4OCwKKy0gICAgdTY0eDgsCistICAgIGY2NHg4LAorLSAgICBt NjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAorLSk7CistaW1w bF9mcm9tX2JpdHMhKAorLSAgICB1MzJ4MTZbdGVzdF92NTEyXTogaTh4NjQsCistICAgIHU4eDY0 LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIsCistICAgIG0xNngzMiwK Ky0gICAgaTMyeDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCist ICAgIHU2NHg4LAorLSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4NCwKKy0gICAg dTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRzISgKKy0gICAgZjMyeDE2 W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngz MiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2 LAorLSAgICBtMzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCist ICAgIG02NHg4LAorLSAgICBpMTI4eDQsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsK Ky1pbXBsX2Zyb21fYml0cyEobTMyeDE2W3Rlc3RfdjUxMl06IG02NHg4LCBtMTI4eDQpOworLQor LWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTY0eDhbdGVzdF92NTEyXTogaTh4NjQsCistICAgIHU4 eDY0LAorLSAgICBtOHg2NCwKKy0gICAgaTE2eDMyLAorLSAgICB1MTZ4MzIsCistICAgIG0xNngz MiwKKy0gICAgaTMyeDE2LAorLSAgICB1MzJ4MTYsCistICAgIGYzMngxNiwKKy0gICAgbTMyeDE2 LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAorLSAgICBpMTI4eDQsCist ICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsKKy1pbXBsX2Zyb21fYml0cyEoCistICAgIHU2 NHg4W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkx NngzMiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMy eDE2LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIGY2NHg4 LAorLSAgICBtNjR4OCwKKy0gICAgaTEyOHg0LAorLSAgICB1MTI4eDQsCistICAgIG0xMjh4NAor LSk7CistaW1wbF9mcm9tX2JpdHMhKAorLSAgICBmNjR4OFt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0g ICAgdTh4NjQsCistICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAg bTE2eDMyLAorLSAgICBpMzJ4MTYsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBt MzJ4MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgbTY0eDgsCistICAgIGkxMjh4 NCwKKy0gICAgdTEyOHg0LAorLSAgICBtMTI4eDQKKy0pOworLWltcGxfZnJvbV9iaXRzIShtNjR4 OFt0ZXN0X3Y1MTJdOiBtMTI4eDQpOworLQorLWltcGxfZnJvbV9iaXRzISgKKy0gICAgaTEyOHg0 W3Rlc3RfdjUxMl06IGk4eDY0LAorLSAgICB1OHg2NCwKKy0gICAgbTh4NjQsCistICAgIGkxNngz MiwKKy0gICAgdTE2eDMyLAorLSAgICBtMTZ4MzIsCistICAgIGkzMngxNiwKKy0gICAgdTMyeDE2 LAorLSAgICBmMzJ4MTYsCistICAgIG0zMngxNiwKKy0gICAgaTY0eDgsCistICAgIHU2NHg4LAor LSAgICBmNjR4OCwKKy0gICAgbTY0eDgsCistICAgIHUxMjh4NCwKKy0gICAgbTEyOHg0CistKTsK Ky1pbXBsX2Zyb21fYml0cyEoCistICAgIHUxMjh4NFt0ZXN0X3Y1MTJdOiBpOHg2NCwKKy0gICAg dTh4NjQsCistICAgIG04eDY0LAorLSAgICBpMTZ4MzIsCistICAgIHUxNngzMiwKKy0gICAgbTE2 eDMyLAorLSAgICBpMzJ4MTYsCistICAgIHUzMngxNiwKKy0gICAgZjMyeDE2LAorLSAgICBtMzJ4 MTYsCistICAgIGk2NHg4LAorLSAgICB1NjR4OCwKKy0gICAgZjY0eDgsCistICAgIG02NHg4LAor LSAgICBpMTI4eDQsCistICAgIG0xMjh4NAorLSk7CistLy8gbm90ZTogbTEyOHg0IGNhbm5vdCBi ZSBjb25zdHJ1Y3RlZCBmcm9tIGFsbCB0aGUgb3RoZXIgbWFza3MgYml0IHBhdHRlcm5zIGluCist Ly8gaGVyZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9pbnRvX2JpdHMvdjY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L2ludG9fYml0cy92NjQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL2ludG9fYml0cy92NjQucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDE4ICswLDAgQEAKKy0vLyEgYEZyb21CaXRzYCBhbmQgYEludG9CaXRzYCBp bXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRhYmxlIDY0LWJpdCB3aWRlIHZlY3RvcnMKKy0jW3J1c3Rm bXQ6OnNraXBdCistCistI1thbGxvdyh1bnVzZWQpXSAgLy8gd2FzbV9iaW5kZ2VuX3Rlc3QKKy11 c2UgY3JhdGU6Oio7CistCistaW1wbF9mcm9tX2JpdHMhKGk4eDhbdGVzdF92NjRdOiB1OHg4LCBt OHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7Cist aW1wbF9mcm9tX2JpdHMhKHU4eDhbdGVzdF92NjRdOiBpOHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQs IG0xNng0LCBpMzJ4MiwgdTMyeDIsIGYzMngyLCBtMzJ4Mik7CistaW1wbF9mcm9tX2JpdHMhKG04 eDhbdGVzdF92NjRdOiBtMTZ4NCwgbTMyeDIpOworLQorLWltcGxfZnJvbV9iaXRzIShpMTZ4NFt0 ZXN0X3Y2NF06IGk4eDgsIHU4eDgsIG04eDgsIHUxNng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBm MzJ4MiwgbTMyeDIpOworLWltcGxfZnJvbV9iaXRzISh1MTZ4NFt0ZXN0X3Y2NF06IGk4eDgsIHU4 eDgsIG04eDgsIGkxNng0LCBtMTZ4NCwgaTMyeDIsIHUzMngyLCBmMzJ4MiwgbTMyeDIpOworLWlt cGxfZnJvbV9iaXRzIShtMTZ4NFt0ZXN0X3Y2NF06IG0zMngyKTsKKy0KKy1pbXBsX2Zyb21fYml0 cyEoaTMyeDJbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0 LCB1MzJ4MiwgZjMyeDIsIG0zMngyKTsKKy1pbXBsX2Zyb21fYml0cyEodTMyeDJbdGVzdF92NjRd OiBpOHg4LCB1OHg4LCBtOHg4LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCBpMzJ4MiwgZjMyeDIsIG0z MngyKTsKKy1pbXBsX2Zyb21fYml0cyEoZjMyeDJbdGVzdF92NjRdOiBpOHg4LCB1OHg4LCBtOHg4 LCBpMTZ4NCwgdTE2eDQsIG0xNng0LCBpMzJ4MiwgdTMyeDIsIG0zMngyKTsKKy0vLyBub3RlOiBt MzJ4MiBjYW5ub3QgYmUgY29uc3RydWN0ZWQgZnJvbSBhbGwgbTE2eDQgb3IgbTh4OCBiaXQgcGF0 dGVybnMKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0ICswLDAgQEAKKy0vLyEg SW1wbGVtZW50cyB2ZXJ0aWNhbCBtYXRoIG9wZXJhdGlvbnMKKy0KKy0jW21hY3JvX3VzZV0KKy1t b2QgZmxvYXQ7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL21hdGgvZmxvYXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv bWF0aC9mbG9hdC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsNjEgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIGZsb2F0aW5nLXBvaW50 IG1hdGggb3BlcmF0aW9ucy4KKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgYWJzOworLQorLSNbbWFj cm9fdXNlXQorLW1vZCBjb25zdHM7CistCistI1ttYWNyb191c2VdCistbW9kIGNvczsKKy0KKy0j W21hY3JvX3VzZV0KKy1tb2QgZXhwOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCBwb3dmOworLQor LSNbbWFjcm9fdXNlXQorLW1vZCBsbjsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgbXVsX2FkZDsK Ky0KKy0jW21hY3JvX3VzZV0KKy1tb2QgbXVsX2FkZGU7CistCistI1ttYWNyb191c2VdCistbW9k IHJlY3ByZTsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgcnNxcnRlOworLQorLSNbbWFjcm9fdXNl XQorLW1vZCBzaW47CistCistI1ttYWNyb191c2VdCistbW9kIHNxcnQ7CistCistI1ttYWNyb191 c2VdCistbW9kIHNxcnRlOworLQorLW1hY3JvX3J1bGVzISBpbXBsX2Zsb2F0X2NhdGVnb3J5IHsK Ky0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1h c2tfdHk6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gaXNfbmFuKHNlbGYpIC0+ICRtYXNrX3R5IHsKKy0g ICAgICAgICAgICAgICAgc2VsZi5uZShzZWxmKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gaXNfaW5maW5pdGUoc2VsZikgLT4g JG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICBzZWxmLmVxKFNlbGY6OklORklOSVRZKSB8IHNl bGYuZXEoU2VsZjo6TkVHX0lORklOSVRZKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gaXNfZmluaXRlKHNlbGYpIC0+ICRtYXNr X3R5IHsKKy0gICAgICAgICAgICAgICAgIShzZWxmLmlzX25hbigpIHwgc2VsZi5pc19pbmZpbml0 ZSgpKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvYWJzLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Ficy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzEg KzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBv aW50IGBhYnNgLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfYWJzIHsKKy0gICAg KFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0 OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEFic29sdXRl IHZhbHVlLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBhYnMo c2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0 aDo6ZmxvYXQ6OmFiczo6QWJzOworLSAgICAgICAgICAgICAgICBBYnM6OmFicyhzZWxmKQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAg ICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAg ICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfYWJzPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGFicygpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCBvLmFicygpKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW8gPSAkaWQ6OnNwbGF0KC0xIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG1vLmFicygpKTsKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29uc3RzLnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvY29uc3RzLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0L2NvbnN0cy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzQgKzAsMCBAQAorLW1h Y3JvX3J1bGVzISBpbXBsX2Zsb2F0X2NvbnN0cyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0g ICAgICAgICAgICAvLy8gTWFjaGluZSBlcHNpbG9uIHZhbHVlLgorLSAgICAgICAgICAgIHB1YiBj b25zdCBFUFNJTE9OOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5OjpFUFNJTE9OKTsK Ky0KKy0gICAgICAgICAgICAvLy8gU21hbGxlc3QgZmluaXRlIHZhbHVlLgorLSAgICAgICAgICAg IHB1YiBjb25zdCBNSU46ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1fdHk6Ok1JTik7Cist CistICAgICAgICAgICAgLy8vIFNtYWxsZXN0IHBvc2l0aXZlIG5vcm1hbCB2YWx1ZS4KKy0gICAg ICAgICAgICBwdWIgY29uc3QgTUlOX1BPU0lUSVZFOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRl bGVtX3R5OjpNSU5fUE9TSVRJVkUpOworLQorLSAgICAgICAgICAgIC8vLyBMYXJnZXN0IGZpbml0 ZSB2YWx1ZS4KKy0gICAgICAgICAgICBwdWIgY29uc3QgTUFYOiAkaWQgPSAkaWQ6OnNwbGF0KGNv cmU6OiRlbGVtX3R5OjpNQVgpOworLQorLSAgICAgICAgICAgIC8vLyBOb3QgYSBOdW1iZXIgKE5h TikuCistICAgICAgICAgICAgcHViIGNvbnN0IE5BTjogJGlkID0gJGlkOjpzcGxhdChjb3JlOjok ZWxlbV90eTo6TkFOKTsKKy0KKy0gICAgICAgICAgICAvLy8gSW5maW5pdHkgKOKInikuCistICAg ICAgICAgICAgcHViIGNvbnN0IElORklOSVRZOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVt X3R5OjpJTkZJTklUWSk7CistCistICAgICAgICAgICAgLy8vIE5lZ2F0aXZlIGluZmluaXR5ICgt 4oieKS4KKy0gICAgICAgICAgICBwdWIgY29uc3QgTkVHX0lORklOSVRZOiAkaWQgPSAkaWQ6OnNw bGF0KGNvcmU6OiRlbGVtX3R5OjpORUdfSU5GSU5JVFkpOworLQorLSAgICAgICAgICAgIC8vLyBB cmNoaW1lZGVzJyBjb25zdGFudCAoz4ApCistICAgICAgICAgICAgcHViIGNvbnN0IFBJOiAkaWQg PSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJKTsKKy0KKy0gICAgICAgICAg ICAvLy8gz4AvMgorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzI6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV8yKTsKKy0KKy0gICAgICAgICAg ICAvLy8gz4AvMworLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzM6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV8zKTsKKy0KKy0gICAgICAgICAg ICAvLy8gz4AvNAorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzQ6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV80KTsKKy0KKy0gICAgICAgICAg ICAvLy8gz4AvNgorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzY6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV82KTsKKy0KKy0gICAgICAgICAg ICAvLy8gz4AvOAorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDX1BJXzg6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ19QSV84KTsKKy0KKy0gICAgICAgICAg ICAvLy8gMS/PgAorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzFfUEk6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18xX1BJKTsKKy0KKy0gICAgICAgICAg ICAvLy8gMi/PgAorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzJfUEk6ICRpZCA9ICRpZDo6 c3BsYXQoY29yZTo6JGVsZW1fdHk6OmNvbnN0czo6RlJBQ18yX1BJKTsKKy0KKy0gICAgICAgICAg ICAvLy8gMi9zcXJ0KM+AKQorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFDXzJfU1FSVF9QSTog JGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29uc3RzOjpGUkFDXzJfU1FSVF9QSSk7 CistCistICAgICAgICAgICAgLy8vIHNxcnQoMikKKy0gICAgICAgICAgICBwdWIgY29uc3QgU1FS VF8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMik7Cist CistICAgICAgICAgICAgLy8vIDEvc3FydCgyKQorLSAgICAgICAgICAgIHB1YiBjb25zdCBGUkFD XzFfU1FSVF8yOiAkaWQgPSAkaWQ6OnNwbGF0KGNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OkZSQUNf MV9TUVJUXzIpOworLQorLSAgICAgICAgICAgIC8vLyBFdWxlcidzIG51bWJlciAoZSkKKy0gICAg ICAgICAgICBwdWIgY29uc3QgRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29u c3RzOjpFKTsKKy0KKy0gICAgICAgICAgICAvLy8gbG9nPHN1Yj4yPC9zdWI+KGUpCistICAgICAg ICAgICAgcHViIGNvbnN0IExPRzJfRTogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6 Y29uc3RzOjpMT0cyX0UpOworLQorLSAgICAgICAgICAgIC8vLyBsb2c8c3ViPjEwPC9zdWI+KGUp CistICAgICAgICAgICAgcHViIGNvbnN0IExPRzEwX0U6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6 JGVsZW1fdHk6OmNvbnN0czo6TE9HMTBfRSk7CistCistICAgICAgICAgICAgLy8vIGxuKDIpCist ICAgICAgICAgICAgcHViIGNvbnN0IExOXzI6ICRpZCA9ICRpZDo6c3BsYXQoY29yZTo6JGVsZW1f dHk6OmNvbnN0czo6TE5fMik7CistCistICAgICAgICAgICAgLy8vIGxuKDEwKQorLSAgICAgICAg ICAgIHB1YiBjb25zdCBMTl8xMDogJGlkID0gJGlkOjpzcGxhdChjb3JlOjokZWxlbV90eTo6Y29u c3RzOjpMTl8xMCk7CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nvcy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2Nvcy5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWF0aC9mbG9hdC9jb3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ0ICswLDAgQEAK Ky0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgY29z YC4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXRoX2Zsb2F0X2NvcyB7CistICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4g eworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBDb3NpbmUuCistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGNvcyhzZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6Y29zOjpD b3M7CistICAgICAgICAgICAgICAgIENvczo6Y29zKHNlbGYpCistICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgIC8vLyBDb3NpbmUgb2YgYHNlbGYgKiBQSWAuCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGNvc19waShzZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6Y29zX3BpOjpDb3NQ aTsKKy0gICAgICAgICAgICAgICAgQ29zUGk6OmNvc19waShzZWxmKQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX21hdGhfY29zPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOwor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdl bl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGNvcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHAgPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGggPSAkaWQ6OnNwbGF0KFBJIGFzICRlbGVt X3R5IC8gMi4pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6X3IgPSAkaWQ6OnNwbGF0 KChQSSBhcyAkZWxlbV90eSAvIDIuKS5jb3MoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG9fciA9ICRpZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5KS5jb3MoKSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB6LmNvcygpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHpfciwgcGguY29zKCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEob19yLCBwLmNvcygpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvZXhwLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21h dGgvZmxvYXQvZXhwLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2V4cC5ycworKysrIC9kZXYv bnVsbAorQEAgLTEsMzMgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdp c2UpIGZsb2F0aW5nLXBvaW50IGBleHBgLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxv YXRfZXhwIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDpp ZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAg ICAgLy8vIFJldHVybnMgdGhlIGV4cG9uZW50aWFsIGZ1bmN0aW9uIG9mIGBzZWxmYDogYGVeKHNl bGYpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZXhwKHNl bGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6 OmZsb2F0OjpleHA6OkV4cDsKKy0gICAgICAgICAgICAgICAgRXhwOjpleHAoc2VsZikKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAg ICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9tYXRoX2V4cD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBleHAoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIHouZXhwKCkpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJGlkOjpzcGxhdChjcmF0ZTo6ZjY0Ojpj b25zdHM6OkUgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2wg PSAkaWQ6OnNwbGF0KDIuNGUtNCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISgoZSAtIG8uZXhwKCkpLmFicygpLmxlKHRvbCkuYWxsKCkpOworLSAgICAgICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9sbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0t LSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L2xuLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwzMyArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGlj YWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYGxuYC4KKy0KKy1tYWNyb19ydWxlcyEgaW1w bF9tYXRoX2Zsb2F0X2xuIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7Cist ICAgICAgICAgICAgLy8vIFJldHVybnMgdGhlIG5hdHVyYWwgbG9nYXJpdGhtIG9mIGBzZWxmYC4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbG4oc2VsZikgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6 OmxuOjpMbjsKKy0gICAgICAgICAgICAgICAgTG46OmxuKHNlbGYpCistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6 CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBb PCRpZCBfbWF0aF9sbj5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBsbigpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiwgby5sbigpKTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgZSA9ICRpZDo6c3BsYXQoY3JhdGU6OmY2NDo6Y29uc3RzOjpFIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlkOjpzcGxhdCgy LjRlLTQgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoKG8g LSBlLmxuKCkpLmFicygpLmxlKHRvbCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Owor LX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9tdWxfYWRkLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvbXVsX2FkZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0NCArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGlj YWwgKGxhbmUtd2lzZSkgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRgLgorLQorLW1hY3JvX3J1bGVz ISBpbXBsX21hdGhfZmxvYXRfbXVsX2FkZCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1w bCAkaWQgeworLSAgICAgICAgICAgIC8vLyBGdXNlZCBtdWx0aXBseSBhZGQ6IGBzZWxmICogeSAr IHpgCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIG11bF9hZGQo c2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6Om11bF9hZGQ6Ok11bEFkZDsKKy0gICAgICAgICAg ICAgICAgTXVsQWRkOjptdWxfYWRkKHNlbGYsIHksIHopCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAg ICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBf bWF0aF9tdWxfYWRkPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG11bF9hZGQoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQzID0gJGlkOjpzcGxhdCgzIGFzICRlbGVtX3R5 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxl bV90eSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6LCB6Lm11bF9h ZGQoeiwgeikpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxf YWRkKG8sIHopKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ubXVs X2FkZCh6LCBvKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB6Lm11 bF9hZGQobywgbykpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwg by5tdWxfYWRkKG8sIG8pKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQs IG8ubXVsX2FkZCh0LCB6KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0 LCB0Lm11bF9hZGQobywgeikpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoZiwgdC5tdWxfYWRkKHQsIHopKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKGYsIHQubXVsX2FkZChvLCB0KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh0MywgdC5tdWxfYWRkKG8sIG8pKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxv YXQvbXVsX2FkZGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0 aC9mbG9hdC9tdWxfYWRkZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9tdWxfYWRkZS5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsNDggKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2Fs IChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGBtdWxfYWRkZWAuCistCistbWFjcm9fcnVsZXMh IGltcGxfbWF0aF9mbG9hdF9tdWxfYWRkZSB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1w bCAkaWQgeworLSAgICAgICAgICAgIC8vLyBGdXNlZCBtdWx0aXBseSBhZGQgZXN0aW1hdGU6IH49 IGBzZWxmICogeSArIHpgCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFdoaWxl IGZ1c2VkIG11bHRpcGx5LWFkZCAoYGZtYWApIGhhcyBpbmZpbml0ZSBwcmVjaXNpb24sCistICAg ICAgICAgICAgLy8vIGBtdWxfYWRkZWAgaGFzIF9hdCB3b3JzdF8gdGhlIHNhbWUgcHJlY2lzaW9u IG9mIGEgbXVsdGlwbHkgZm9sbG93ZWQgYnkgYW4gYWRkLgorLSAgICAgICAgICAgIC8vLyBUaGlz IG1pZ2h0IGJlIG1vcmUgZWZmaWNpZW50IG9uIGFyY2hpdGVjdHVyZXMgdGhhdCBkbyBub3QgaGF2 ZSBhbiBgZm1hYCBpbnN0cnVjdGlvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBwdWIgZm4gbXVsX2FkZGUoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6Om11bF9hZGRl OjpNdWxBZGRFOworLSAgICAgICAgICAgICAgICBNdWxBZGRFOjptdWxfYWRkZShzZWxmLCB5LCB6 KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAg ICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAg ICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfbXVsX2FkZGU+XSB7CistICAgICAgICAgICAg ICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g bXVsX2FkZGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0 KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpz cGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRp ZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQz ID0gJGlkOjpzcGxhdCgzIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6LCB6Lm11bF9hZGRlKHosIHopKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8sIG8ubXVsX2FkZGUobywgeikpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEobywgby5tdWxfYWRkZSh6LCBvKSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB6Lm11bF9hZGRlKG8sIG8pKTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIG8ubXVsX2FkZGUobywgbykpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgby5tdWxfYWRkZSh0LCB6KSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0LCB0Lm11bF9hZGRlKG8sIHopKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYsIHQubXVsX2FkZGUodCwgeikp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5tdWxfYWRkZShvLCB0 KSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0MywgdC5tdWxfYWRkZShv LCBvKSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9wb3dmLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9tYXRoL2Zsb2F0L3Bvd2YucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM2ICswLDAgQEAK Ky0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAobGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgcG93 ZmAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9wb3dmIHsKKy0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFJhaXNlcyBgc2VsZmAg bnVtYmVyIHRvIHRoZSBmbG9hdGluZyBwb2ludCBwb3dlciBvZiBgeGAuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHBvd2Yoc2VsZiwgeDogU2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29kZWdlbjo6bWF0aDo6ZmxvYXQ6OnBv d2Y6OlBvd2Y7CistICAgICAgICAgICAgICAgIFBvd2Y6OnBvd2Yoc2VsZiwgeCkKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9tYXRoX3Bvd2Y+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcG93ZigpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVt X3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8sIG8ucG93Zih6KSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCB0LnBvd2YoeikpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobywgby5wb3dmKG8pKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsIHQucG93ZihvKSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KDQgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiwgdC5wb3dmKHQpKTsKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcmVjcHJlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0 L3JlY3ByZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzYgKzAsMCBAQAorLS8vISBJbXBsZW1l bnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5nLXBvaW50IGByZWNwcmVgLgorLQorLW1h Y3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfcmVjcHJlIHsKKy0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAg ICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFJlY2lwcm9jYWwgZXN0aW1hdGU6IGB+ PSAxLiAvIHNlbGZgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBGSVhNRTog VGhlIHByZWNpc2lvbiBvZiB0aGUgZXN0aW1hdGUgaXMgY3VycmVudGx5IHVuc3BlY2lmaWVkLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiByZWNwcmUoc2VsZikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoMS4pIC8gc2VsZgorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX21hdGhfcmVjcHJlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNl IHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHJlY3ByZSgpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgx IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAobyAt IG8ucmVjcHJlKCkpLmFicygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJy b3IubGUodG9sKS5hbGwoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAk aWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBl ID0gMC41OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChlIC0gdC5yZWNw cmUoKSkuYWJzKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShlcnJvci5sZSh0 b2wpLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvcnNxcnRlLnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9tYXRoL2Zsb2F0L3JzcXJ0ZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs NDAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHZlcnRpY2FsIChsYW5lLXdpc2UpIGZsb2F0aW5n LXBvaW50IGByc3FydGVgLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfcnNxcnRl IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8 ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8v IFJlY2lwcm9jYWwgc3F1YXJlLXJvb3QgZXN0aW1hdGU6IGB+PSAxLiAvIHNlbGYuc3FydCgpYC4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gRklYTUU6IFRoZSBwcmVjaXNpb24g b2YgdGhlIGVzdGltYXRlIGlzIGN1cnJlbnRseSB1bnNwZWNpZmllZC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gcnNxcnRlKHNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjps bHZtOjpzaW1kX2ZzcXJ0OworLSAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdCgxLikgLyBT aW1kKHNpbWRfZnNxcnQoc2VsZi4wKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0 X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBt b2QgWzwkaWQgX21hdGhfcnNxcnRlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVy OjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHJzcXJ0ZSgpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlNRUlRfMjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9sID0gJGlkOjpzcGxhdCgyLjRlLTQgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgx IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSAobyAt IG8ucnNxcnRlKCkpLmFicygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJy b3IubGUodG9sKS5hbGwoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAk aWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBl ID0gMS4gLyBTUVJUXzI7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKGUg LSB0LnJzcXJ0ZSgpKS5hYnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVy cm9yLmxlKHRvbCkuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4u cnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zaW4u cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc2luLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw1 MCArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmct cG9pbnQgYHNpbmAuCistCistbWFjcm9fcnVsZXMhIGltcGxfbWF0aF9mbG9hdF9zaW4geworLSAg ICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwgJHRlc3Rf dHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gU2luZS4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gc2luKHNlbGYpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0 OjpzaW46OlNpbjsKKy0gICAgICAgICAgICAgICAgU2luOjpzaW4oc2VsZikKKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIFNpbmUgb2YgYHNlbGYgKiBQSWAuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNpbl9waShzZWxmKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjb2RlZ2VuOjptYXRoOjpmbG9hdDo6c2luX3Bp OjpTaW5QaTsKKy0gICAgICAgICAgICAgICAgU2luUGk6OnNpbl9waShzZWxmKQorLSAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gU2luZSBhbmQgY29zaW5lIG9mIGBzZWxmICogUElg LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBzaW5fY29zX3Bp KHNlbGYpIC0+IChTZWxmLCBTZWxmKSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6Y29k ZWdlbjo6bWF0aDo6ZmxvYXQ6OnNpbl9jb3NfcGk6OlNpbkNvc1BpOworLSAgICAgICAgICAgICAg ICBTaW5Db3NQaTo6c2luX2Nvc19waShzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAg ICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhf c2luPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIHNpbigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1 c2UgY3JhdGU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgcCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBwaCA9ICRpZDo6c3BsYXQoUEkgYXMgJGVsZW1fdHkgLyAyLik7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG9fciA9ICRpZDo6c3BsYXQoKFBJIGFzICRlbGVtX3R5 IC8gMi4pLnNpbigpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgel9yID0gJGlkOjpz cGxhdCgoUEkgYXMgJGVsZW1fdHkpLnNpbigpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHosIHouc2luKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEob19yLCBwaC5zaW4oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh6X3IsIHAuc2luKCkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydC5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvbWF0aC9mbG9hdC9zcXJ0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwz NSArMCwwIEBACistLy8hIEltcGxlbWVudHMgdmVydGljYWwgKGxhbmUtd2lzZSkgZmxvYXRpbmct cG9pbnQgYHNxcnRgLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX21hdGhfZmxvYXRfc3FydCB7Cist ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIHB1YiBmbiBzcXJ0KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzcXJ0OjpTcXJ0OworLSAgICAg ICAgICAgICAgICBTcXJ0OjpzcXJ0KHNlbGYpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAg ICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWF0aF9z cXJ0Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIHNxcnQoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg dXNlIGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJUXzI7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHogPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIHouc3FydCgpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKG8sIG8uc3FydCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGUgPSAkaWQ6OnNwbGF0KFNRUlRfMik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShlLCB0LnNxcnQoKSk7CistCistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9t YXRoL2Zsb2F0L3NxcnRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L21hdGgvZmxvYXQvc3FydGUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21hdGgvZmxvYXQvc3FydGUucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDQ0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyB2ZXJ0aWNhbCAo bGFuZS13aXNlKSBmbG9hdGluZy1wb2ludCBgc3FydGVgLgorLQorLW1hY3JvX3J1bGVzISBpbXBs X21hdGhfZmxvYXRfc3FydGUgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsK Ky0gICAgICAgICAgICAvLy8gU3F1YXJlLXJvb3QgZXN0aW1hdGUuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIEZJWE1FOiBUaGUgcHJlY2lzaW9uIG9mIHRoZSBlc3RpbWF0ZSBp cyBjdXJyZW50bHkgdW5zcGVjaWZpZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgcHViIGZuIHNxcnRlKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmNvZGVnZW46Om1hdGg6OmZsb2F0OjpzcXJ0ZTo6U3FydGU7CistICAgICAgICAgICAg ICAgIFNxcnRlOjpzcXJ0ZShzZWxmKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0g ICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBh c3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21hdGhfc3FydGU+ XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAg ICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gc3FydGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjokZWxlbV90eTo6Y29uc3RzOjpTUVJUXzI7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHRvbCA9ICRpZDo6c3BsYXQoMi40ZS00IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgeiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0gKHogLSB6LnNxcnRlKCkpLmFicygpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoZXJyb3IubGUodG9sKS5hbGwoKSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1f dHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlcnJvciA9IChvIC0gby5zcXJ0ZSgp KS5hYnMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGVycm9yLmxlKHRvbCku YWxsKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgy IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZSA9ICRpZDo6c3Bs YXQoU1FSVF8yIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXJy b3IgPSAoZSAtIHQuc3FydGUoKSkuYWJzKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShlcnJvci5sZSh0b2wpLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19 CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmlt YWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9hcGkvbWluaW1hbC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNiArMCwwIEBACist I1ttYWNyb191c2VdCistbW9kIGl1ZjsKKy0jW21hY3JvX3VzZV0KKy1tb2QgbWFzazsKKy0jW21h Y3JvX3VzZV0KKy1tb2QgcHRyOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL2FwaS9taW5pbWFsL2l1Zi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9taW5pbWFsL2l1Zi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9pdWYucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDE2OSArMCwwIEBACistLy8hIE1pbmltYWwgQVBJIG9mIHNpZ25l ZCBpbnRlZ2VyLCB1bnNpZ25lZCBpbnRlZ2VyLCBhbmQgZmxvYXRpbmctcG9pbnQKKy0vLyEgdmVj dG9ycy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9taW5pbWFsX2l1ZiB7CistICAgIChbJGVsZW1f dHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkaWVsZW1fdHk6aWRlbnQg fAorLSAgICAgJHRlc3RfdHQ6dHQgfCAkKCRlbGVtX25hbWU6aWRlbnQpLCsgfCAkKCNbJGRvYzpt ZXRhXSkqKSA9PiB7CistCistICAgICAgICAkKCNbJGRvY10pKgorLSAgICAgICAgcHViIHR5cGUg JGlkID0gU2ltZDxbJGVsZW1fdHk7ICRlbGVtX2NvdW50XT47CistCistICAgICAgICBpbXBsIHNl YWxlZDo6U2ltZCBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIEVsZW1lbnQgPSAkZWxlbV90 eTsKKy0gICAgICAgICAgICBjb25zdCBMQU5FUzogdXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAg ICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1MzI7ICRlbGVtX2NvdW50XTsKKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gQ3JlYXRlcyBhIG5ldyBp bnN0YW5jZSB3aXRoIGVhY2ggdmVjdG9yIGVsZW1lbnRzIGluaXRpYWxpemVkCistICAgICAgICAg ICAgLy8vIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlcy4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dG9vX21hbnlfYXJndW1lbnRzKV0KKy0gICAg ICAgICAgICBwdWIgY29uc3QgZm4gbmV3KCQoJGVsZW1fbmFtZTogJGVsZW1fdHkpLCopIC0+IFNl bGYgeworLSAgICAgICAgICAgICAgICBTaW1kKGNvZGVnZW46OiRpZCgkKCRlbGVtX25hbWUgYXMg JGllbGVtX3R5KSwqKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVy bnMgdGhlIG51bWJlciBvZiB2ZWN0b3IgbGFuZXMuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGNvbnN0IGZuIGxhbmVzKCkgLT4gdXNpemUgeworLSAgICAgICAgICAg ICAgICAkZWxlbV9jb3VudAorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29u c3RydWN0cyBhIG5ldyBpbnN0YW5jZSB3aXRoIGVhY2ggZWxlbWVudCBpbml0aWFsaXplZCB0bwor LSAgICAgICAgICAgIC8vLyBgdmFsdWVgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiBjb25zdCBmbiBzcGxhdCh2YWx1ZTogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBTaW1kKGNvZGVnZW46OiRpZCgkKHsKKy0gICAgICAgICAgICAgICAgICAg ICNbYWxsb3cobm9uX2NhbWVsX2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCistICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgJGVsZW1fbmFtZTsKKy0gICAgICAgICAgICAgICAgICAgIHZhbHVlIGFz ICRpZWxlbV90eQorLSAgICAgICAgICAgICAgICB9KSwqKSkKKy0gICAgICAgICAgICB9CistCist ICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRoZSB2YWx1ZSBhdCBgaW5kZXhgLgorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6bGFuZXMoKWAuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGV4dHJhY3Qoc2VsZiwgaW5kZXg6IHVzaXpl KSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9j b3VudCk7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYuZXh0cmFjdF91bmNoZWNrZWQo aW5kZXgpIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIEV4dHJhY3RzIHRo ZSB2YWx1ZSBhdCBgaW5kZXhgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAj IFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0g U2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIGV4dHJhY3RfdW5jaGVja2VkKHNl bGYsIGluZGV4OiB1c2l6ZSkgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OnNpbWRfZXh0cmFjdDsKKy0gICAgICAgICAgICAgICAgbGV0IGU6ICRpZWxlbV90 eSA9IHNpbWRfZXh0cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMik7CistICAgICAgICAgICAgICAg IGUgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIFJldHVy bnMgYSBuZXcgdmVjdG9yIHdoZXJlIHRoZSB2YWx1ZSBhdCBgaW5kZXhgIGlzIHJlcGxhY2VkIGJ5 IGBuZXdfdmFsdWVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmlj cworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgaW5kZXggPj0gU2VsZjo6 bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1ttdXN0X3Vz ZSA9ICJyZXBsYWNlIGRvZXMgbm90IG1vZGlmeSB0aGUgb3JpZ2luYWwgdmFsdWUgLSBcCistICAg ICAgICAgICAgICAgICAgICAgICAgICBpdCByZXR1cm5zIGEgbmV3IHZlY3RvciB3aXRoIHRoZSB2 YWx1ZSBhdCBgaW5kZXhgIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkIGJ5 IGBuZXdfdmFsdWVgZCIKKy0gICAgICAgICAgICBdCistICAgICAgICAgICAgcHViIGZuIHJlcGxh Y2Uoc2VsZiwgaW5kZXg6IHVzaXplLCBuZXdfdmFsdWU6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAg ICAgICAgdW5zYWZlIHsgc2VsZi5yZXBsYWNlX3VuY2hlY2tlZChpbmRleCwgbmV3X3ZhbHVlKSB9 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3Rv ciB3aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYC4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6OmxhbmVzKClgIHRoZSBi ZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgI1ttdXN0X3VzZSA9ICJyZXBsYWNlX3VuY2hlY2tlZCBkb2VzIG5vdCBtb2RpZnkgdGhlIG9y aWdpbmFsIHZhbHVlIC0gXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBh IG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAgICAgICAgICAg ICAgICAgICAgICByZXBsYWNlZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAgICAgXQorLSAg ICAgICAgICAgIHB1YiB1bnNhZmUgZm4gcmVwbGFjZV91bmNoZWNrZWQoCistICAgICAgICAgICAg ICAgIHNlbGYsCistICAgICAgICAgICAgICAgIGluZGV4OiB1c2l6ZSwKKy0gICAgICAgICAgICAg ICAgbmV3X3ZhbHVlOiAkZWxlbV90eSwKKy0gICAgICAgICAgICApIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfaW5zZXJ0OworLSAgICAgICAgICAgICAg ICBTaW1kKHNpbWRfaW5zZXJ0KHNlbGYuMCwgaW5kZXggYXMgdTMyLCBuZXdfdmFsdWUgYXMgJGll bGVtX3R5KSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lm IXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4g bWFudGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0 X2NtcCldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX21pbmltYWw+XSB7CistICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG1pbmltYWwoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gbGFuZXM6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISgkZWxlbV9jb3VudCwgJGlkOjpsYW5lcygpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBzcGxhdCBhbmQgZXh0cmFjdCAvIGV4dHJhY3RfdW5jaGVja2VkOgorLSAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IFZBTDogJGVsZW1fdHkgPSA3IGFzICRlbGVtX3R5OworLSAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IFZFQzogJGlkID0gJGlkOjpzcGxhdChWQUwpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMLCBWRUMuZXh0cmFjdChpKSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBWQUwsIHVuc2FmZSB7IFZFQy5leHRyYWN0X3VuY2hlY2tlZChpKSB9 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcGxhY2UgLyByZXBsYWNlX3Vu Y2hlY2tlZAorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gVkVDLnJlcGxh Y2UoMCwgNDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu IDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKDQyIGFzICRl bGVtX3R5LCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShW QUwsIG5ld192ZWMuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG5ld192ZWMgPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRUMucmVw bGFjZV91bmNoZWNrZWQoMCwgNDIgYXMgJGVsZW1fdHkpCistICAgICAgICAgICAgICAgICAgICAg ICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09IDAgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISg0MiBhcyAkZWxlbV90eSwgbmV3X3ZlYy5l eHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMLCBuZXdfdmVjLmV4dHJh Y3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRf cGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAg ICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4g ZXh0cmFjdF9wYW5pY19vb2IoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVkFM OiAkZWxlbV90eSA9IDcgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgVkVDOiAkaWQgPSAkaWQ6OnNwbGF0KFZBTCk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IF8gPSBWRUMuZXh0cmFjdCgkaWQ6OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMg bm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAg ICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gcmVwbGFjZV9wYW5pY19vb2IoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgVkFMOiAkZWxlbV90eSA9IDcgYXMgJGVsZW1fdHk7CistICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgVkVDOiAkaWQgPSAkaWQ6OnNwbGF0KFZBTCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IF8gPSBWRUMucmVwbGFjZSgkaWQ6OmxhbmVzKCksIDQy IGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9tYXNrLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL21pbmltYWwvbWFzay5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvbWluaW1hbC9tYXNrLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNzYgKzAsMCBAQAor LS8vISBNaW5pbWFsIEFQSSBvZiBtYXNrIHZlY3RvcnMuCistCistbWFjcm9fcnVsZXMhIGltcGxf bWluaW1hbF9tYXNrIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudAorLSAgICB8ICR0ZXN0X3R0OnR0IHwgJCgkZWxl bV9uYW1lOmlkZW50KSwrIHwgJCgjWyRkb2M6bWV0YV0pKikgPT4geworLSAgICAgICAgJCgjWyRk b2NdKSoKKy0gICAgICAgIHB1YiB0eXBlICRpZCA9IFNpbWQ8WyRlbGVtX3R5OyAkZWxlbV9jb3Vu dF0+OworLQorLSAgICAgICAgaW1wbCBzZWFsZWQ6OlNpbWQgZm9yICRpZCB7CistICAgICAgICAg ICAgdHlwZSBFbGVtZW50ID0gJGVsZW1fdHk7CistICAgICAgICAgICAgY29uc3QgTEFORVM6IHVz aXplID0gJGVsZW1fY291bnQ7CistICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAk ZWxlbV9jb3VudF07CistICAgICAgICB9CistCistICAgICAgICBpbXBsICRpZCB7CistICAgICAg ICAgICAgLy8vIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIHZlY3RvciBlbGVtZW50 cyBpbml0aWFsaXplZAorLSAgICAgICAgICAgIC8vLyB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZXMu CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnRv b19tYW55X2FyZ3VtZW50cyldCistICAgICAgICAgICAgcHViIGNvbnN0IGZuIG5ldygkKCRlbGVt X25hbWU6IGJvb2wpLCopIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBTaW1kKGNvZGVnZW46 OiRpZCgkKFNlbGY6OmJvb2xfdG9faW50ZXJuYWwoJGVsZW1fbmFtZSkpLCopKQorLSAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gQ29udmVydHMgYSBib29sZWFuIHR5cGUgaW50byB0 aGUgdHlwZSBvZiB0aGUgdmVjdG9yIGxhbmVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgICNbYWxsb3coY2xpcHB5OjppbmRleGluZ19zbGljaW5nKV0KKy0gICAgICAgICAg ICBjb25zdCBmbiBib29sX3RvX2ludGVybmFsKHg6IGJvb2wpIC0+ICRpZWxlbV90eSB7CistICAg ICAgICAgICAgICAgIFswIGFzICRpZWxlbV90eSwgISgwIGFzICRpZWxlbV90eSldW3ggYXMgdXNp emVdCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1i ZXIgb2YgdmVjdG9yIGxhbmVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiBjb25zdCBmbiBsYW5lcygpIC0+IHVzaXplIHsKKy0gICAgICAgICAgICAgICAgJGVsZW1f Y291bnQKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENvbnN0cnVjdHMgYSBu ZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQgaW5pdGlhbGl6ZWQgdG8KKy0gICAgICAgICAg ICAvLy8gYHZhbHVlYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg Y29uc3QgZm4gc3BsYXQodmFsdWU6IGJvb2wpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBT aW1kKGNvZGVnZW46OiRpZCgkKHsKKy0gICAgICAgICAgICAgICAgICAgICNbYWxsb3cobm9uX2Nh bWVsX2Nhc2VfdHlwZXMsIGRlYWRfY29kZSldCistICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg JGVsZW1fbmFtZTsKKy0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmJvb2xfdG9faW50ZXJuYWwo dmFsdWUpCistICAgICAgICAgICAgICAgIH0pLCopKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZXh0cmFjdChzZWxmLCBpbmRleDogdXNpemUpIC0+ IGJvb2wgeworLSAgICAgICAgICAgICAgICBhc3NlcnQhKGluZGV4IDwgJGVsZW1fY291bnQpOwor LSAgICAgICAgICAgICAgICB1bnNhZmUgeyBzZWxmLmV4dHJhY3RfdW5jaGVja2VkKGluZGV4KSB9 CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBFeHRyYWN0cyB0aGUgdmFsdWUg YXQgYGluZGV4YC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkK Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49IFNlbGY6Omxh bmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBleHRyYWN0X3VuY2hlY2tlZChzZWxmLCBpbmRl eDogdXNpemUpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNp bWRfZXh0cmFjdDsKKy0gICAgICAgICAgICAgICAgbGV0IHg6ICRpZWxlbV90eSA9IHNpbWRfZXh0 cmFjdChzZWxmLjAsIGluZGV4IGFzIHUzMik7CistICAgICAgICAgICAgICAgIHggIT0gMAorLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hl cmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkKKy0gICAgICAgICAgICAvLy8g YG5ld192YWx1ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNz CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjps YW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW211c3RfdXNl ID0gInJlcGxhY2UgZG9lcyBub3QgbW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgIGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZh bHVlIGF0IGBpbmRleGAgXAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkg YG5ld192YWx1ZWBkIgorLSAgICAgICAgICAgIF0KKy0gICAgICAgICAgICBwdWIgZm4gcmVwbGFj ZShzZWxmLCBpbmRleDogdXNpemUsIG5ld192YWx1ZTogYm9vbCkgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAg IHVuc2FmZSB7IHNlbGYucmVwbGFjZV91bmNoZWNrZWQoaW5kZXgsIG5ld192YWx1ZSkgfQorLSAg ICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5ldyB2ZWN0b3Igd2hl cmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkKKy0gICAgICAgICAgICAvLy8g YG5ld192YWx1ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5 CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjps YW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZV91bmNoZWNrZWQgZG9lcyBub3Qg bW9kaWZ5IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg IGl0IHJldHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgorLSAgICAg ICAgICAgIF0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlcGxhY2VfdW5jaGVja2VkKAor LSAgICAgICAgICAgICAgICBzZWxmLAorLSAgICAgICAgICAgICAgICBpbmRleDogdXNpemUsCist ICAgICAgICAgICAgICAgIG5ld192YWx1ZTogYm9vbCwKKy0gICAgICAgICAgICApIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfaW5zZXJ0OworLSAgICAg ICAgICAgICAgICBTaW1kKHNpbWRfaW5zZXJ0KHNlbGYuMCwgaW5kZXggYXMgdTMyLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGY6OmJvb2xfdG9faW50ZXJuYWwobmV3X3Zh bHVlKSkpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7 CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0g ICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfbWluaW1hbD5dIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgZm4gbWluaW1hbCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAvLyBUT0RPOiB0ZXN0IG5ldworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmVz OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGVsZW1fY291bnQsICRpZDo6 bGFuZXMoKSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3BsYXQgYW5kIGV4dHJh Y3QgLyBleHRyYWN0X3VuY2hlY2tlZDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVj ID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRydWUsIHZlYy5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0cnVlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2FmZSB7IHZlYy5leHRyYWN0X3VuY2hlY2tlZChpKSB9CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHJlcGxhY2UgLyByZXBsYWNlX3VuY2hlY2tlZAorLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBuZXdfdmVjID0gdmVjLnJlcGxhY2UoMCwgZmFsc2UpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGZhbHNlLCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh0cnVlLCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBuZXdfdmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmVjLnJlcGxhY2VfdW5jaGVja2VkKDAsIGZhbHNlKQorLSAgICAgICAgICAgICAg ICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjps YW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAwIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmFsc2UsIG5ld192ZWMuZXh0 cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRydWUsIG5ld192ZWMuZXh0cmFj dChpKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9w YW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAg ICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAg ICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQor LSAgICAgICAgICAgICAgICAgICAgZm4gZXh0cmFjdF9wYW5pY19vb2IoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBfID0gdmVjLmV4dHJhY3QoJGlkOjpsYW5lcygpKTsKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRn ZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAg ICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAg ICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBm biByZXBsYWNlX3BhbmljX29vYigpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVj ID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF8gPSB2 ZWMucmVwbGFjZSgkaWQ6OmxhbmVzKCksIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5p bWFsL3B0ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9taW5pbWFs L3B0ci5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvbWluaW1hbC9wdHIucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDEzNzMgKzAsMCBAQAorLS8vISBNaW5pbWFsIEFQSSBvZiBwb2ludGVyIHZlY3RvcnMuCistCist bWFjcm9fcnVsZXMhIGltcGxfbWluaW1hbF9wIHsKKy0gICAgKFskZWxlbV90eTp0eTsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCwgJG1hc2tfdHk6aWRlbnQsCistICAgICAkdXNpemVfdHk6 aWRlbnQsICRpc2l6ZV90eTppZGVudCB8ICRyZWY6aWRlbnQgfCAkdGVzdF90dDp0dAorLSAgICAg fCAkKCRlbGVtX25hbWU6aWRlbnQpLCsgfCAoJHRydWU6ZXhwciwgJGZhbHNlOmV4cHIpIHwKKy0g ICAgICQoI1skZG9jOm1ldGFdKSopID0+IHsKKy0KKy0gICAgICAgICQoI1skZG9jXSkqCistICAg ICAgICBwdWIgdHlwZSAkaWQ8VD4gPSBTaW1kPFskZWxlbV90eTsgJGVsZW1fY291bnRdPjsKKy0K Ky0gICAgICAgIGltcGw8VD4gc2VhbGVkOjpTaW1kIGZvciAkaWQ8VD4geworLSAgICAgICAgICAg IHR5cGUgRWxlbWVudCA9ICRlbGVtX3R5OworLSAgICAgICAgICAgIGNvbnN0IExBTkVTOiB1c2l6 ZSA9ICRlbGVtX2NvdW50OworLSAgICAgICAgICAgIHR5cGUgTGFuZXNUeXBlID0gW3UzMjsgJGVs ZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiAkaWQ8VD4geworLSAg ICAgICAgICAgIC8vLyBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIHdpdGggZWFjaCB2ZWN0b3IgZWxl bWVudHMgaW5pdGlhbGl6ZWQKKy0gICAgICAgICAgICAvLy8gd2l0aCB0aGUgcHJvdmlkZWQgdmFs dWVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbYWxsb3coY2xpcHB5 Ojp0b29fbWFueV9hcmd1bWVudHMpXQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBuZXcoJCgk ZWxlbV9uYW1lOiAkZWxlbV90eSksKikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNpbWQo Y29kZWdlbjo6JGlkKCQoJGVsZW1fbmFtZSksKikpCistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgIC8vLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBsYW5lcygpIC0+IHVzaXpl IHsKKy0gICAgICAgICAgICAgICAgJGVsZW1fY291bnQKKy0gICAgICAgICAgICB9CistCistICAg ICAgICAgICAgLy8vIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVsZW1lbnQg aW5pdGlhbGl6ZWQgdG8KKy0gICAgICAgICAgICAvLy8gYHZhbHVlYC4KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgY29uc3QgZm4gc3BsYXQodmFsdWU6ICRlbGVtX3R5 KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgU2ltZChjb2RlZ2VuOjokaWQoJCh7CistICAg ICAgICAgICAgICAgICAgICAjW2FsbG93KG5vbl9jYW1lbF9jYXNlX3R5cGVzLCBkZWFkX2NvZGUp XQorLSAgICAgICAgICAgICAgICAgICAgc3RydWN0ICRlbGVtX25hbWU7CistICAgICAgICAgICAg ICAgICAgICB2YWx1ZQorLSAgICAgICAgICAgICAgICB9KSwqKSkKKy0gICAgICAgICAgICB9Cist CistICAgICAgICAgICAgLy8vIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugd2l0aCBlYWNoIGVs ZW1lbnQgaW5pdGlhbGl6ZWQgdG8KKy0gICAgICAgICAgICAvLy8gYG51bGxgLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBjb25zdCBmbiBudWxsKCkgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgIFNlbGY6OnNwbGF0KGNyYXRlOjpwdHI6Om51bGxfbXV0KCkgYXMg JGVsZW1fdHkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEg bWFzayB0aGF0IHNlbGVjdHMgdGhvc2UgbGFuZXMgdGhhdCBjb250YWluIGBudWxsYAorLSAgICAg ICAgICAgIC8vLyBwb2ludGVycy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBwdWIgZm4gaXNfbnVsbChzZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHNl bGYuZXEoU2VsZjo6bnVsbCgpKQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g RXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRleGAuCistICAgICAgICAgICAgLy8vCistICAgICAg ICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElm IGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gZXh0cmFjdChzZWxmLCBpbmRleDogdXNpemUpIC0+ICRlbGVtX3R5IHsK Ky0gICAgICAgICAgICAgICAgYXNzZXJ0IShpbmRleCA8ICRlbGVtX2NvdW50KTsKKy0gICAgICAg ICAgICAgICAgdW5zYWZlIHsgc2VsZi5leHRyYWN0X3VuY2hlY2tlZChpbmRleCkgfQorLSAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gRXh0cmFjdHMgdGhlIHZhbHVlIGF0IGBpbmRl eGAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygpYCB0 aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiB1bnNhZmUgZm4gZXh0cmFjdF91bmNoZWNrZWQoc2VsZiwgaW5kZXg6IHVzaXpl KSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9l eHRyYWN0OworLSAgICAgICAgICAgICAgICBzaW1kX2V4dHJhY3Qoc2VsZi4wLCBpbmRleCBhcyB1 MzIpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZl Y3RvciB3aGVyZSB0aGUgdmFsdWUgYXQgYGluZGV4YCBpcyByZXBsYWNlZCBieQorLSAgICAgICAg ICAgIC8vLyBgbmV3X3ZhbHVlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g IyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYGluZGV4ID49 IFNlbGY6OmxhbmVzKClgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNb bXVzdF91c2UgPSAicmVwbGFjZSBkb2VzIG5vdCBtb2RpZnkgdGhlIG9yaWdpbmFsIHZhbHVlIC0g XAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXQgcmV0dXJucyBhIG5ldyB2ZWN0b3Igd2l0 aCB0aGUgdmFsdWUgYXQgYGluZGV4YCBcCistICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs YWNlZCBieSBgbmV3X3ZhbHVlYGQiCistICAgICAgICAgICAgXQorLSAgICAgICAgICAgICNbYWxs b3coY2xpcHB5Ojpub3RfdW5zYWZlX3B0cl9hcmdfZGVyZWYpXQorLSAgICAgICAgICAgIHB1YiBm biByZXBsYWNlKHNlbGYsIGluZGV4OiB1c2l6ZSwgbmV3X3ZhbHVlOiAkZWxlbV90eSkgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIGFzc2VydCEoaW5kZXggPCAkZWxlbV9jb3VudCk7CistICAg ICAgICAgICAgICAgIHVuc2FmZSB7IHNlbGYucmVwbGFjZV91bmNoZWNrZWQoaW5kZXgsIG5ld192 YWx1ZSkgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gUmV0dXJucyBhIG5l dyB2ZWN0b3Igd2hlcmUgdGhlIHZhbHVlIGF0IGBpbmRleGAgaXMgcmVwbGFjZWQgYnkgYG5ld192 YWx1ZWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAg ICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBpbmRleCA+PSBTZWxmOjpsYW5lcygp YCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgICNbbXVzdF91c2UgPSAicmVwbGFjZV91bmNoZWNrZWQgZG9lcyBub3QgbW9kaWZ5 IHRoZSBvcmlnaW5hbCB2YWx1ZSAtIFwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIGl0IHJl dHVybnMgYSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlIGF0IGBpbmRleGAgXAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVwbGFjZWQgYnkgYG5ld192YWx1ZWBkIgorLSAgICAgICAgICAg IF0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlcGxhY2VfdW5jaGVja2VkKAorLSAgICAg ICAgICAgICAgICBzZWxmLAorLSAgICAgICAgICAgICAgICBpbmRleDogdXNpemUsCistICAgICAg ICAgICAgICAgIG5ld192YWx1ZTogJGVsZW1fdHksCistICAgICAgICAgICAgKSAtPiBTZWxmIHsK Ky0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2luc2VydDsKKy0gICAgICAg ICAgICAgICAgU2ltZChzaW1kX2luc2VydChzZWxmLjAsIGluZGV4IGFzIHUzMiwgbmV3X3ZhbHVl KSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistCistICAgICAgICB0ZXN0X2lmIXsK Ky0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAg ICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9taW5pbWFsPl0geworLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3Qo dGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICBmbiBtaW5pbWFsKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIGxhbmVzOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoJGVsZW1fY291 bnQsICRpZDo6PGkzMj46OmxhbmVzKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IHNwbGF0IGFuZCBleHRyYWN0IC8gZXh0cmFjdF91bmNoZWNrZWQ6CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IFZBTDc6IDwkaWQ8aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gJHJlZiEoNyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IFZBTDQyOiA8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICRyZWYhKDQyKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgVkVDOiAkaWQ8aTMyPiA9ICRpZDo6c3BsYXQoVkFMNyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoVkFMNywgVkVDLmV4dHJhY3QoaSkp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVkFMNywgdW5zYWZlIHsgVkVDLmV4dHJhY3RfdW5jaGVja2Vk KGkpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSAvIHJlcGxh Y2VfdW5jaGVja2VkCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5ld192ZWMgPSBWRUMu cmVwbGFjZSgwLCBWQUw0Mik7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkg PT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDQy LCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUw3LCBu ZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdf dmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDLnJlcGxhY2Vf dW5jaGVja2VkKDAsIFZBTDQyKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgPT0gMCB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKFZBTDQyLCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShWQUw3LCBuZXdfdmVjLmV4dHJhY3QoaSkpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbiA9ICRpZDo6PGkzMj46Om51bGwoKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OjxpMzI+Ojpz cGxhdCh1bnNhZmUgeyBjcmF0ZTo6bWVtOjp6ZXJvZWQoKSB9KQorLSAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShuLmlzX251bGwoKS5h bGwoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbiA9IG4ucmVwbGFjZSgKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCwgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFf aXNpemUpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoIW4uaXNfbnVsbCgpLmFsbCgpKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBpZiAkaWQ6OjxpMzI+OjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEobi5pc19udWxsKCkuYW55KCkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIW4uaXNf bnVsbCgpLmFueSgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2Vu LXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAg ICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAg ICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4g ZXh0cmFjdF9wYW5pY19vb2IoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDog PCRpZDxpMzI+IGFzIHNlYWxlZDo6U2ltZD46OkVsZW1lbnQKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAkcmVmISg3KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkVDOiAk aWQ8aTMyPiA9ICRpZDo6c3BsYXQoVkFMKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg XyA9IFZFQy5leHRyYWN0KCRpZDo6PGkzMj46OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAg ICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0 IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAv LyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAg ICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHJlcGxh Y2VfcGFuaWNfb29iKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBWQUw6IDwkaWQ8 aTMyPiBhcyBzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gJHJlZiEoNyk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFZBTDQyOiA8JGlk PGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9ICRyZWYhKDQyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgVkVDOiAkaWQ8 aTMyPiA9ICRpZDo6c3BsYXQoVkFMKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9 IFZFQy5yZXBsYWNlKCRpZDo6PGkzMj46OmxhbmVzKCksIFZBTDQyKTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIGltcGw8VD4gY3JhdGU6OmZtdDo6RGVidWcgZm9yICRpZDxUPiB7CistICAg ICAgICAgICAgI1thbGxvdyhjbGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyld CistICAgICAgICAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGNyYXRlOjpmbXQ6OkZvcm1hdHRl cjwnXz4pCistICAgICAgICAgICAgICAgICAgIC0+IGNyYXRlOjpmbXQ6OlJlc3VsdCB7CistICAg ICAgICAgICAgICAgIHdyaXRlISgKKy0gICAgICAgICAgICAgICAgICAgIGYsCistICAgICAgICAg ICAgICAgICAgICAie308e30+KCIsCistICAgICAgICAgICAgICAgICAgICBzdHJpbmdpZnkhKCRp ZCksCistICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6aW50cmluc2ljczo6dHlwZV9uYW1lOjo8 VD4oKQorLSAgICAgICAgICAgICAgICApPzsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgaWYgaSA+IDAgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIHdyaXRlIShmLCAiLCAiKT87CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhY3QoaSkuZm10KGYpPzsKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB3cml0ZSEoZiwgIikiKQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9mbXRfZGVidWc+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIGRlYnVnKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBhcnJheXZlYzo6e0Fy cmF5U3RyaW5nLEFycmF5VmVjfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIFRpbnlT dHJpbmcgPSBBcnJheVN0cmluZzxbdTg7IDUxMl0+OworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6Zm10OjpXcml0ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg diA9ICRpZDo6PGkzMj46OmRlZmF1bHQoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHMgPSBUaW55U3RyaW5nOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZSEoJm11dCBzLCAiezo/fSIsIHYpLnVud3JhcCgpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtdXQgYmVnID0gVGlueVN0cmluZzo6bmV3KCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgd3JpdGUhKCZtdXQgYmVnLCAie308aTMyPigiLCBzdHJpbmdpZnkhKCRpZCkpLnVud3Jh cCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHMuc3RhcnRzX3dpdGgoYmVnLmFzX3N0cigpKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgInMgPSB7fSAoc2hvdWxkIHN0YXJ0IHdpdGggPSB7fSkiLCBzLCBiZWcK Ky0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydCEocy5lbmRzX3dpdGgoIikiKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHM6 IEFycmF5VmVjPFtUaW55U3RyaW5nOyA2NF0+CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ID0gcy5yZXBsYWNlKGJlZy5hc19zdHIoKSwgIiIpCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5yZXBsYWNlKCIpIiwgIiIpLnNwbGl0KCIsIikKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLm1hcCh8dnwgVGlueVN0cmluZzo6ZnJvbSh2LnRyaW0oKSkudW53cmFwKCkpCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC5jb2xsZWN0KCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShzLmxlbigpLCAkaWQ6OjxpMzI+OjpsYW5lcygpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgKGluZGV4LCBzcykgaW4gcy5pbnRvX2l0ZXIoKS5lbnVtZXJh dGUoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgZSA9IFRpbnlTdHJp bmc6Om5ldygpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBlLCAi ezo/fSIsIHYuZXh0cmFjdChpbmRleCkpLnVud3JhcCgpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHNzLCBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistICAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiBEZWZhdWx0IGZvciAkaWQ8VD4gewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHB0cnMgZG8gbm90IGltcGxlbWVudCBkZWZh dWx0CistICAgICAgICAgICAgICAgIFNlbGY6Om51bGwoKQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAg ICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQg X2RlZmF1bHQ+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGRlZmF1bHQo KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OjxpMzI+OjpkZWZhdWx0 KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhLmV4dHJhY3QoaSksIHVuc2FmZSB7IGNyYXRlOjpt ZW06Onplcm9lZCgpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsPFQ+ICRp ZDxUPiB7CistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBlcXVhbGl0eSBjb21wYXJpc29uLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBlcShzZWxmLCBvdGhl cjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAg ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX2VxOworLSAgICAgICAgICAgICAg ICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0g ICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUob3RoZXIpOworLSAgICAgICAgICAgICAgICAgICAgU2ltZChzaW1kX2VxKGEuMCwgYi4wKSkK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8g TGFuZS13aXNlIGluZXF1YWxpdHkgY29tcGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBwdWIgZm4gbmUoc2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsK Ky0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6bGx2bTo6c2ltZF9uZTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkg PSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgICAgICBsZXQg YjogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKG90aGVyKTsKKy0gICAgICAgICAg ICAgICAgICAgIFNpbWQoc2ltZF9uZShhLjAsIGIuMCkpCistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4gY29t cGFyaXNvbi4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbHQo c2VsZiwgb3RoZXI6IFNlbGYpIC0+ICRtYXNrX3R5IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9sdDsKKy0gICAg ICAgICAgICAgICAgICAgIGxldCBhOiAkdXNpemVfdHkgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZik7CistICAgICAgICAgICAgICAgICAgICBsZXQgYjogJHVzaXplX3R5ID0gY3JhdGU6Om1l bTo6dHJhbnNtdXRlKG90aGVyKTsKKy0gICAgICAgICAgICAgICAgICAgIFNpbWQoc2ltZF9sdChh LjAsIGIuMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAg ICAgICAgLy8vIExhbmUtd2lzZSBsZXNzLXRoYW4tb3ItZXF1YWxzIGNvbXBhcmlzb24uCistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGxlKHNlbGYsIG90aGVyOiBT ZWxmKSAtPiAkbWFza190eSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfbGU7CistICAgICAgICAgICAgICAgICAg ICBsZXQgYTogJHVzaXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAg ICAgICAgICAgICAgICAgbGV0IGI6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShv dGhlcik7CistICAgICAgICAgICAgICAgICAgICBTaW1kKHNpbWRfbGUoYS4wLCBiLjApKQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5l LXdpc2UgZ3JlYXRlci10aGFuIGNvbXBhcmlzb24uCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIGZuIGd0KHNlbGYsIG90aGVyOiBTZWxmKSAtPiAkbWFza190eSB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6 Omxsdm06OnNpbWRfZ3Q7CistICAgICAgICAgICAgICAgICAgICBsZXQgYTogJHVzaXplX3R5ID0g Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgbGV0IGI6 ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShvdGhlcik7CistICAgICAgICAgICAg ICAgICAgICBTaW1kKHNpbWRfZ3QoYS4wLCBiLjApKQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgZ3JlYXRlci10aGFuLW9y LWVxdWFscyBjb21wYXJpc29uLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHB1YiBmbiBnZShzZWxmLCBvdGhlcjogU2VsZikgLT4gJG1hc2tfdHkgeworLSAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1k X2dlOworLSAgICAgICAgICAgICAgICAgICAgbGV0IGE6ICR1c2l6ZV90eSA9IGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCBiOiAkdXNpemVfdHkg PSBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3RoZXIpOworLSAgICAgICAgICAgICAgICAgICAgU2lt ZChzaW1kX2dlKGEuMCwgYi4wKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0 OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX2NtcF92ZXJ0aWNhbD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndh c20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAg Zm4gY21wKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6 bnVsbCgpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBiID0gJGlkOjo8aTMyPjo6c3Bs YXQodW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJh bnNtdXRlKDFfaXNpemUpCistICAgICAgICAgICAgICAgICAgICAgICAgfSk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmx0KGIpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEu bGUoYik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShyID09IGUpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBlID0gJG1hc2tfdHk6OnNwbGF0KGZhbHNlKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgciA9IGEuZ3QoYik7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0IShyID09IGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBy ID0gYS5nZShiKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHIgPT0gZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmVxKGIpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydCEociA9PSBlKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IGEgPSBhOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYiA9IGI7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBlID0gZTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaSAlIDIgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhID0gYS5yZXBsYWNlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3Jh dGU6Om1lbTo6dHJhbnNtdXRlKDBfaXNpemUpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gYi5yZXBsYWNl KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKDFf aXNpemUpIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlID0gZS5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYSA9IGEucmVwbGFjZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRl OjptZW06OnRyYW5zbXV0ZSgxX2lzaXplKSB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGIucmVwbGFjZSgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgwX2lz aXplKSB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZSA9IGUucmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHIgPSBhLmx0KGIpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEociA9PSBlKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgICNbYWxsb3co Y2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1wbCldCistICAgICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6 OlBhcnRpYWxFcTwkaWQ8VD4+IGZvciAkaWQ8VD4geworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGVxKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGJvb2wgeworLSAgICAg ICAgICAgICAgICAkaWQ6OjxUPjo6ZXEoKnNlbGYsICpvdGhlcikuYWxsKCkKKy0gICAgICAgICAg ICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90 aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICRpZDo6PFQ+OjpuZSgqc2Vs ZiwgKm90aGVyKS5hbnkoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IC8vIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlw cHkvaXNzdWVzLzI4OTIKKy0gICAgICAgICNbYWxsb3coY2xpcHB5OjpwYXJ0aWFsZXFfbmVfaW1w bCldCistICAgICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6OlBhcnRpYWxFcTxMZXhpY29ncmFwaGlj YWxseU9yZGVyZWQ8JGlkPFQ+Pj4KKy0gICAgICAgICAgICBmb3IgTGV4aWNvZ3JhcGhpY2FsbHlP cmRlcmVkPCRpZDxUPj4KKy0gICAgICAgIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBlcSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAg ICAgICAgc2VsZi4wID09IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7 CistICAgICAgICAgICAgICAgIHNlbGYuMCAhPSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRp ZCBfY21wX1BhcnRpYWxFcT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsK Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g cGFydGlhbF9lcSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6PGkz Mj46Om51bGwoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYiA9ICRpZDo6PGkzMj46 OnNwbGF0KHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06 OnRyYW5zbXV0ZSgxX2lzaXplKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0pOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYSAhPSBiKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKCEoYSA9PSBiKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0IShhID09IGEpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhICE9IGEp KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OjxpMzI+OjpsYW5lcygpID4g MSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhID0gJGlkOjo8aTMyPjo6bnVs bCgpLnJlcGxhY2UoMCwgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgxX2lzaXplKQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGIgPSAkaWQ6OjxpMzI+ OjpzcGxhdCh1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKDFfaXNpemUpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0p OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKGEgIT0gYik7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIShhID09IGIpKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhID09IGEpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKCEoYSAhPSBhKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiBjcmF0ZTo6Y21wOjpFcSBmb3IgJGlk PFQ+IHt9CistICAgICAgICBpbXBsPFQ+IGNyYXRlOjpjbXA6OkVxIGZvciBMZXhpY29ncmFwaGlj YWxseU9yZGVyZWQ8JGlkPFQ+PiB7fQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAg ICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAg ICAgcHViIG1vZCBbPCRpZCBfY21wX2VxPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAg ICAgICBmbiBlcSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmbiBmb288RTogY3JhdGU6 OmNtcDo6RXE+KF86IEUpIHt9CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6 OjxpMzI+OjpudWxsKCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9vKGEpOworLSAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgaW1wbDxUPiBGcm9tPFskZWxlbV90eTsgJGVsZW1fY291bnRd PiBmb3IgJGlkPFQ+IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBm cm9tKGFycmF5OiBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSkgLT4gU2VsZiB7CistICAgICAgICAg ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogdW5uZWNlc3Nh cnkgemVyb2luZzsgYmV0dGVyIHRoYW4gVUIuCistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHU6IFNlbGYgPSBjcmF0ZTo6bWVtOjp6ZXJvZWQoKTsKKy0gICAgICAgICAgICAgICAgICAgIGNy YXRlOjpwdHI6OmNvcHlfbm9ub3ZlcmxhcHBpbmcoCistICAgICAgICAgICAgICAgICAgICAgICAg JmFycmF5IGFzICpjb25zdCBbJGVsZW1fdHk7ICRlbGVtX2NvdW50XSBhcyAqY29uc3QgdTgsCist ICAgICAgICAgICAgICAgICAgICAgICAgJm11dCB1IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4LAor LSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnNpemVfb2Y6OjxTZWxmPigpCist ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgdQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbDxUPiBJ bnRvPFskZWxlbV90eTsgJGVsZW1fY291bnRdPiBmb3IgJGlkPFQ+IHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBpbnRvKHNlbGYpIC0+IFskZWxlbV90eTsgJGVsZW1f Y291bnRdIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg IC8vIEZJWE1FOiB1bm5lY2Vzc2FyeSB6ZXJvaW5nOyBiZXR0ZXIgdGhhbiBVQi4KKy0gICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdTogWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gPSBjcmF0ZTo6 bWVtOjp6ZXJvZWQoKTsKKy0gICAgICAgICAgICAgICAgICAgIGNyYXRlOjpwdHI6OmNvcHlfbm9u b3ZlcmxhcHBpbmcoCistICAgICAgICAgICAgICAgICAgICAgICAgJnNlbGYgYXMgKmNvbnN0ICRp ZDxUPiBhcyAqY29uc3QgdTgsCistICAgICAgICAgICAgICAgICAgICAgICAgJm11dCB1IGFzICpt dXQgWyRlbGVtX3R5OyAkZWxlbV9jb3VudF0gYXMgKm11dCB1OCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8U2VsZj4oKQorLSAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgIHUKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYheworLSAgICAgICAgICAg ICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAg IHB1YiBtb2QgWzwkaWQgX2Zyb20+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6 Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIGFycmF5KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZXMgPSBbMV9p MzI7ICRlbGVtX2NvdW50XTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHZl YzogJGlkPGkzMj4gPSBEZWZhdWx0OjpkZWZhdWx0KCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhcnJheSA9IFsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjo8 aTMyPjo6bnVsbCgpLmV4dHJhY3QoMCk7ICRlbGVtX2NvdW50CistICAgICAgICAgICAgICAgICAg ICAgICAgXTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9j b3VudCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdHIgPSAmdmFsdWVzW2ld IGFzICpjb25zdCBpMzIgYXMgKm11dCBpMzI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZlYyA9IHZlYy5yZXBsYWNlKGksIHB0cik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFycmF5W2ldID0gcHRyOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogdGhlcmUgaXMgbm8gaW1wbCBvZiBGcm9tPCRpZDxU Pj4gZm9yIFskZWxlbV90eTsgTl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBsZXQgYTAg PSBGcm9tOjpmcm9tKHZlYyk7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXNzZXJ0X2Vx IShhMCwgYXJyYXkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICNbYWxsb3codW51c2VkX2Fz c2lnbm1lbnRzKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGExID0gYXJyYXk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYTEgPSB2ZWMuaW50bygpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoYTEsIGFycmF5KTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdjA6ICRpZDxpMzI+ID0gRnJvbTo6ZnJvbShhcnJheSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2MCwgdmVjKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdjE6ICRpZDxpMzI+ID0gYXJyYXkuaW50bygpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodjEsIHZlYyk7CistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsPFQ+ICRpZDxUPiB7CistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0 b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYCBvciBgJnNsaWNlWzBdYCBpcyBub3Qg YWxpZ25lZAorLSAgICAgICAgICAgIC8vLyB0byBhbiBgYWxpZ25fb2Y6OjxTZWxmPigpYCBib3Vu ZGFyeS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gZnJvbV9z bGljZV9hbGlnbmVkKHNsaWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49 ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xp Y2UuYXNfcHRyKCk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnQhKAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29m Ojo8U2VsZj4oKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gMAorLSAgICAgICAg ICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmZyb21fc2xpY2VfYWxp Z25lZF91bmNoZWNrZWQoc2xpY2UpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9 CistCistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUg dmFsdWVzIG9mIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2Uu bGVuKCkgPCBTZWxmOjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBwdWIgZm4gZnJvbV9zbGljZV91bmFsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGFz c2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICAgICAg U2VsZjo6ZnJvbV9zbGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlKQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMg YSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVsw XWAgaXMgbm90IGFsaWduZWQKKy0gICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2Vs Zj4oKWAgYm91bmRhcnksIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBmcm9tX3NsaWNlX2FsaWduZWRf dW5jaGVja2VkKHNsaWNlOiAmWyRlbGVtX3R5XSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg ICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQorLSAgICAgICAgICAgICAgICAq KHNsaWNlLmFzX3B0cigpLmNhc3QoKSkKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAg Ly8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRoZSBgc2xp Y2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5l cygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gZnJvbV9zbGljZV91bmFsaWduZWRfdW5jaGVja2Vk KAorLSAgICAgICAgICAgICAgICBzbGljZTogJlskZWxlbV90eV0sCistICAgICAgICAgICAgKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnNpemVfb2Y7CistICAg ICAgICAgICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfcHRyKCkuY2FzdCgpOworLSAg ICAgICAgICAgICAgICBsZXQgbXV0IHggPSBTZWxmOjpzcGxhdChjcmF0ZTo6cHRyOjpudWxsX211 dCgpIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgbGV0IHNlbGZfcHRyID0gJm11dCB4 IGFzICptdXQgU2VsZiBhcyAqbXV0IHU4OworLSAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpj b3B5X25vbm92ZXJsYXBwaW5nKAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3B0ciwKKy0g ICAgICAgICAgICAgICAgICAgIHNlbGZfcHRyLAorLSAgICAgICAgICAgICAgICAgICAgc2l6ZV9v Zjo6PFNlbGY+KCksCistICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgIHgKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAg ICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAg ICAgICBwdWIgbW9kIFs8JGlkIF9zbGljZV9mcm9tX3NsaWNlPl0geworLSAgICAgICAgICAgICAg ICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjppdGVy OjpJdGVyYXRvcjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdl dF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWQoKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBub25fbnVsbDsgJGlkOjo8aTMyPjo6bGFuZXMoKSArIDEKKy0g ICAgICAgICAgICAgICAgICAgICAgICBdOworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuYWxp Z25lZFswXSA9IG51bGw7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlYyA9ICRpZDo6 PGkzMj46OmZyb21fc2xpY2VfdW5hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmdW5hbGlnbmVkWzEuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQuaXRlcigpLmVudW1l cmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gMCB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIG51bGwpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIHZlYy5leHRyYWN0KGluZGV4IC0gMSkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6 IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAg ICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNb Y2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAgICAgICAgICAgICAgICAgICAj W3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAg ICAgICAgICAgIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IChfbnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdW5hbGlnbmVkID0gW25vbl9udWxsOyAkaWQ6 OjxpMzI+OjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHNs aWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFuaWMKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgX3ZlYyA9ICRpZDo6PGkzMj46OmZyb21fc2xpY2VfdW5hbGlnbmVkKAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmdW5hbGlnbmVkWzIuLl0KKy0gICAgICAgICAgICAgICAgICAg ICAgICApOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg dW5pb24gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWzwkaWQ8aTMyPiBhcyBz ZWFsZWQ6OlNpbWQ+OjpFbGVtZW50OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy ICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgX3ZlYzog JGlkPGkzMj4sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZCgp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92 YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVk ID0gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICogJGlk Ojo8aTMyPjo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBmb3IgaSBpbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAk aWQ6OjxpMzI+OjpsYW5lcygpLi4oMiAqICRpZDo6PGkzMj46OmxhbmVzKCkpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFsaWduZWQuZGF0YVtpXSA9IG5vbl9udWxsOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ZWMgPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkaWQ6OjxpMzI+Ojpmcm9tX3NsaWNlX2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmYWxpZ25lZC5kYXRhWyRpZDo6PGkzMj46OmxhbmVzKCkuLl0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuc2FmZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFsaWduZWQuZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgaW5kZXggPCAkaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGIsIG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiwgdmVjLmV4dHJhY3Qo aW5kZXggLSAkaWQ6OjxpMzI+OjpsYW5lcygpKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxk X3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0X2Fy Y2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAgICAg ICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFuaWNd CistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX3NsaWNlX2FsaWduZWRfZmFpbF9sYW5lcygp IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKF9udWxsLCBub25fbnVsbCkgPSBwdHJf dmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0g QSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtub25fbnVsbDsgMiAqICRp ZDo6PGkzMj46OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gdGhlIHNsaWNlIGlzIG5vdCBsYXJnZSBlbm91Z2ggPT4gcGFu aWMKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3ZlYyA9IHVuc2FmZSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OmZyb21fc2xpY2VfYWxpZ25lZCgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhbGlnbmVkLmRhdGFbMiAqICRpZDo6PGkz Mj46OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAg ICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAg ICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAj W3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNb Y2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0g ICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxk X3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV9hbGlnbmVkX2ZhaWxf YWxpZ24oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBfbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxp MzI+KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFtudWxsOyAyICogJGlkOjo8aTMy Pjo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CistCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGdldCBhIHBvaW50ZXIgdG8gdGhlIGZyb250IG9mIGRh dGEKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IGFsaWduZWQuZGF0YS5h c19wdHIoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IHBvaW50ZXIg Ynkgb25lIGVsZW1lbnQKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB0ciA9IHB0 ci53cmFwcGluZ19hZGQoMSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHB0 ci5hbGlnbl9vZmZzZXQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6 bWVtOjphbGlnbl9vZjo6PCRpZDxpMzI+PigpCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgcG9pbnRl ciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZnJvbV9zbGljZV9hbGlnbmVkIHdvbid0IGZhaWwgaGVyZSAoZS5nLiB0aGlzCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYW4gaGFwcGVuIGZvciBpMTI4eDEpLiBT byB3ZSBwYW5pYyB0byBtYWtlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0 aGUgInNob3VsZF9mYWlsIiB0ZXN0IHBhc3M6CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYW5pYyEoIm9rIik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc2xpY2UgLSB0aGlzIGlzIHNh ZmUsIGJlY2F1c2UgdGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnRz IG9mIHRoZSBzbGljZSBleGlzdCwgYXJlIHByb3Blcmx5CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGluaXRpYWxpemVkLCBhbmQgcHJvcGVybHkgYWxpZ25lZDoKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHMgPSBzbGljZTo6ZnJvbV9yYXdfcGFydHMoCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIsICRpZDo6PGkzMj46OmxhbmVzKCkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhpcyBzaG91bGQgYWx3YXlzIHBhbmljIGJlY2F1c2UgdGhlIHNsaWNlCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGFsaWdubWVudCBkb2VzIG5vdCBtYXRjaCB0aGUgYWxpZ25t ZW50CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyBmb3IgdGhl IHZlY3RvciB0eXBlOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgX3ZlYyA9ICRp ZDo6PGkzMj46OmZyb21fc2xpY2VfYWxpZ25lZChzKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7CistICAgICAg ICAgICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgUGFuaWNzCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClg IG9yIGAmc2xpY2VbMF1gIGlzIG5vdAorLSAgICAgICAgICAgIC8vLyBhbGlnbmVkIHRvIGFuIGBh bGlnbl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0 IFskZWxlbV90eV0pIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAg ICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBzbGljZS5hc19tdXRfcHRyKCk7CistICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9wdHIu YWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4oKSkKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgPT0gMAorLSAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAg ICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2xpY2Up OworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8v LyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVjdG9yIHRvIHRoZSBgc2xpY2VgLgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcworLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxmOjpsYW5lcygpYC4KKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gd3JpdGVfdG9fc2xpY2VfdW5h bGlnbmVkKHNlbGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0pIHsKKy0gICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVs ZW1fY291bnQpOworLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV90b19zbGljZV91bmFs aWduZWRfdW5jaGVja2VkKHNsaWNlKTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0 byB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBTYWZl dHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwg U2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90CistICAgICAgICAgICAgLy8vIGFs aWduZWQgdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnksIHRoZSBiZWhhdmlvciBp cworLSAgICAgICAgICAgIC8vLyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX3VuY2hlY2tl ZCgKKy0gICAgICAgICAgICAgICAgc2VsZiwgc2xpY2U6ICZtdXQgWyRlbGVtX3R5XSwKKy0gICAg ICAgICAgICApIHsKKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2Fs aWdubWVudCldCistICAgICAgICAgICAgICAgICooc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKSkg PSBzZWxmOworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2 YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgdGhlIGJlaGF2aW9yIGlzIHVuZGVm aW5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgdW5zYWZlIGZu IHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoCistICAgICAgICAgICAgICAgIHNl bGYsIHNsaWNlOiAmbXV0IFskZWxlbV90eV0sCistICAgICAgICAgICAgKSB7CistICAgICAgICAg ICAgICAgIGxldCB0YXJnZXRfcHRyID0gc2xpY2UuYXNfbXV0X3B0cigpLmNhc3QoKTsKKy0gICAg ICAgICAgICAgICAgbGV0IHNlbGZfcHRyID0gJnNlbGYgYXMgKmNvbnN0IFNlbGYgYXMgKmNvbnN0 IHU4OworLSAgICAgICAgICAgICAgICBjcmF0ZTo6cHRyOjpjb3B5X25vbm92ZXJsYXBwaW5nKAor LSAgICAgICAgICAgICAgICAgICAgc2VsZl9wdHIsCistICAgICAgICAgICAgICAgICAgICB0YXJn ZXRfcHRyLAorLSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+ KCksCistICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQor LSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2Vfd3Jp dGVfdG9fc2xpY2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAg ICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Oml0ZXI6Okl0ZXJhdG9yOworLQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3Qp XQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19z bGljZV91bmFsaWduZWQoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChudWxsLCBu b25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtdXQgdW5hbGlnbmVkID0gW251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAxXTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQobm9uX251 bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV91bmFsaWdu ZWQoJm11dCB1bmFsaWduZWRbMS4uXSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChp bmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoYiwgbnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGIsIG5vbl9udWxsKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEoYiwgdmVjLmV4dHJhY3QoaW5kZXggLSAxKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9l cyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNb Y2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAg ICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAg ICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9f c2xpY2VfdW5hbGlnbmVkX2ZhaWwoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChu dWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gW251bGw7ICRpZDo6PGkzMj46OmxhbmVzKCkgKyAx XTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMyPjo6c3BsYXQo bm9uX251bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGljZSBpcyBub3Qg bGFyZ2UgZW5vdWdoID0+IHBhbmljCistICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRl X3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IHVuYWxpZ25lZFsyLi5dKTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIEEgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE6IFs8JGlkPGkzMj4gYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudDsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqICRpZDo6PGkzMj46OmxhbmVzKCld LAorLSAgICAgICAgICAgICAgICAgICAgICAgIF92ZWM6ICRpZDxpMzI+LAorLSAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAg ICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkKCkgeworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCAobnVsbCwgbm9uX251bGwpID0gcHRyX3ZhbHMhKCRpZDxpMzI+KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YTogW251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3Rv X3NsaWNlX2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFs aWduZWQuZGF0YVskaWQ6OjxpMzI+OjpsYW5lcygpLi5dCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciAoaW5kZXgsICZiKSBpbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNhZmUgeyBhbGlnbmVkLmRhdGEuaXRlcigpLmVudW1lcmF0ZSgpIH0geworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiBpbmRleCA8ICRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCBudWxsKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoYiwgbm9uX251bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiLCB2ZWMuZXh0cmFjdChpbmRleCAtICRpZDo6PGkzMj46OmxhbmVzKCkpCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90 IHN1cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAg ICAgICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAg ICAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNl X2FsaWduZWRfZmFpbF9sYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgKG51 bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMyPik7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGE6IFtudWxsOyAyICogJGlkOjo8aTMyPjo6bGFuZXMoKV0sCistICAgICAgICAgICAgICAg ICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjo8aTMy Pjo6c3BsYXQobm9uX251bGwpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBzbGlj ZSBpcyBub3QgbGFyZ2UgZW5vdWdoID0+IHBhbmljCistICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNl X2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXV0IGFsaWduZWQu ZGF0YVsyICogJGlkOjo8aTMyPjo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBk b2VzIG5vdCBzdXBwb3J0ICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8g I1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgLy8gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIikpXQorLSAgICAgICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAg ICAgICAgICAgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90 b19zbGljZV9hbGlnbmVkX2ZhaWxfYWxpZ24oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IChudWxsLCBub25fbnVsbCkgPSBwdHJfdmFscyEoJGlkPGkzMj4pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTog W251bGw7IDIgKiAkaWQ6OjxpMzI+OjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9pbnRl ciB0byB0aGUgZnJvbnQgb2YgZGF0YQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg cHRyID0gYWxpZ25lZC5kYXRhLmFzX211dF9wdHIoKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gb2Zmc2V0IHBvaW50ZXIgYnkgb25lIGVsZW1lbnQKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHB0ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIHB0ci5hbGlnbl9vZmZzZXQoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PCRpZDxpMzI+PigpCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkgPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyB0aGUgcG9pbnRlciBpcyBwcm9wZXJseSBhbGlnbmVkLCBzbworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZCB3b24n dCBmYWlsIGhlcmUgKGUuZy4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRo aXMgY2FuIGhhcHBlbiBmb3IgaTEyOHgxKS4gU28gd2UgcGFuaWMgdG8KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIG1ha2UgdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFuaWMhKCJvayIpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IGNyZWF0ZSBhIHNsaWNlIC0gdGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRoZQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBlbGVtZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9w ZXJseQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHBy b3Blcmx5IGFsaWduZWQ6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gc2xp Y2U6OmZyb21fcmF3X3BhcnRzX211dCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHB0ciwgJGlkOjo8aTMyPjo6bGFuZXMoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBhbHdheXMgcGFu aWMgYmVjYXVzZSB0aGUgc2xpY2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxp Z25tZW50IGRvZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OjxpMzI+OjpzcGxhdChub25fbnVsbCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYy53cml0ZV90b19zbGljZV9hbGlnbmVk KHMpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIGltcGw8VD4gY3JhdGU6Omhhc2g6Okhhc2ggZm9yICRpZDxUPiB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gaGFzaDxIOiBjcmF0ZTo6aGFzaDo6SGFzaGVyPigm c2VsZiwgc3RhdGU6ICZtdXQgSCkgeworLSAgICAgICAgICAgICAgICBsZXQgczogJHVzaXplX3R5 ID0gdW5zYWZlIHsgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKCpzZWxmKSB9OworLSAgICAgICAgICAg ICAgICBzLmhhc2goc3RhdGUpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3Rl OjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX2hhc2g+XSB7CistICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGhhc2goKSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjpoYXNoOjp7SGFzaCwgSGFzaGVyfTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQorLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6aGFzaDo6e1NpcEhhc2hlcjEzfTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdmFsdWVzID0gWzFfaTMyOyAkZWxlbV9jb3VudF07CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB2ZWM6ICRpZDxpMzI+ID0gRGVmYXVsdDo6ZGVmYXVsdCgpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXJyYXkgPSBbCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRpZDo6PGkzMj46Om51bGwoKS5leHRyYWN0KDApOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkZWxlbV9jb3VudAorLSAgICAgICAgICAgICAgICAgICAgICAg IF07CistCistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gJnZhbHVlc1tpXSBhcyAq Y29uc3QgaTMyIGFzICptdXQgaTMyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMg PSB2ZWMucmVwbGFjZShpLCBwdHIpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJh eVtpXSA9IHB0cjsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAg ICAgICAgICAgICAgI1thbGxvdyhkZXByZWNhdGVkKV0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IGFfaGFzaCA9IFNpcEhhc2hlcjEzOjpuZXcoKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHZfaGFzaCA9IGFfaGFzaC5jbG9uZSgpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFycmF5Lmhhc2goJm11dCBhX2hhc2gpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIHZlYy5oYXNoKCZtdXQgdl9oYXNoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGFfaGFzaC5maW5pc2goKSwgdl9oYXNoLmZpbmlzaCgpKTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIGltcGw8VD4gJGlkPFQ+IHsKKy0gICAgICAgICAgICAvLy8gQ2FsY3VsYXRl cyB0aGUgb2Zmc2V0IGZyb20gYSBwb2ludGVyLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIGBUYDsgZS5nLiBhIGNvdW50IG9mIGAzYCBy ZXByZXNlbnRzIGEKKy0gICAgICAgICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXpl X29mOjo8VD4oKWAgYnl0ZXMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMg U2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIGFueSBvZiB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHZpb2xhdGVkLCB0aGUgcmVzdWx0IGlzCistICAgICAg ICAgICAgLy8vIFVuZGVmaW5lZCBCZWhhdmlvcjoKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gKiBCb3RoIHRoZSBzdGFydGluZyBhbmQgcmVzdWx0aW5nIHBvaW50ZXIgbXVzdCBi ZSBlaXRoZXIgaW4KKy0gICAgICAgICAgICAvLy8gYm91bmRzIG9yIG9uZSBieXRlIHBhc3QgdGhl IGVuZCBvZiBhbiBhbGxvY2F0ZWQgb2JqZWN0LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyAqIFRoZSBjb21wdXRlZCBvZmZzZXQsIGluIGJ5dGVzLCBjYW5ub3Qgb3ZlcmZsb3cg YW4gYGlzaXplYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBUaGUgb2Zm c2V0IGJlaW5nIGluIGJvdW5kcyBjYW5ub3QgcmVseSBvbiAid3JhcHBpbmcgYXJvdW5kIgorLSAg ICAgICAgICAgIC8vLyB0aGUgYWRkcmVzcyBzcGFjZS4gVGhhdCBpcywgdGhlIGluZmluaXRlLXBy ZWNpc2lvbiBzdW0sIGluIGJ5dGVzCistICAgICAgICAgICAgLy8vIG11c3QgZml0IGluIGEgYHVz aXplYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGNvbXBpbGVyIGFu ZCBzdGFuZGFyZCBsaWJyYXJ5IGdlbmVyYWxseSB0cmllcyB0byBlbnN1cmUKKy0gICAgICAgICAg ICAvLy8gYWxsb2NhdGlvbnMgbmV2ZXIgcmVhY2ggYSBzaXplIHdoZXJlIGFuIG9mZnNldCBpcyBh IGNvbmNlcm4uIEZvcgorLSAgICAgICAgICAgIC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hg IGVuc3VyZSB0aGV5IG5ldmVyIGFsbG9jYXRlIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBg aXNpemU6Ok1BWGAgYnl0ZXMsIHNvIGB2ZWMuYXNfcHRyKCkub2Zmc2V0KHZlYy5sZW4oKSBhcyBp c2l6ZSlgCistICAgICAgICAgICAgLy8vIGlzIGFsd2F5cyBzYWZlLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRmb3JtcyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2 ZW4gY29uc3RydWN0IHN1Y2ggYW4KKy0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbi4gRm9yIGlu c3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZvcm0gY2FuIGV2ZXIKKy0gICAgICAgICAgICAv Ly8gc2VydmUgYSByZXF1ZXN0IGZvciAyNjMgYnl0ZXMgZHVlIHRvIHBhZ2UtdGFibGUgbGltaXRh dGlvbnMgb3IKKy0gICAgICAgICAgICAvLy8gc3BsaXR0aW5nIHRoZSBhZGRyZXNzIHNwYWNlLiBI b3dldmVyLCBzb21lIDMyLWJpdCBhbmQgMTYtYml0CistICAgICAgICAgICAgLy8vIHBsYXRmb3Jt cyBtYXkgc3VjY2Vzc2Z1bGx5IHNlcnZlIGEgcmVxdWVzdCBmb3IgbW9yZSB0aGFuCistICAgICAg ICAgICAgLy8vIGBpc2l6ZTo6TUFYYCBieXRlcyB3aXRoIHRoaW5ncyBsaWtlIFBoeXNpY2FsIEFk ZHJlc3MgRXh0ZW5zaW9uLgorLSAgICAgICAgICAgIC8vLyBBcyBzdWNoLCBtZW1vcnkgYWNxdWly ZWQgZGlyZWN0bHkgZnJvbSBhbGxvY2F0b3JzIG9yIG1lbW9yeQorLSAgICAgICAgICAgIC8vLyBt YXBwZWQgZmlsZXMgbWF5IGJlIHRvbyBsYXJnZSB0byBoYW5kbGUgd2l0aCB0aGlzIGZ1bmN0aW9u LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBDb25zaWRlciB1c2luZyBgd3Jh cHBpbmdfb2Zmc2V0YCBpbnN0ZWFkIGlmIHRoZXNlIGNvbnN0cmFpbnRzCistICAgICAgICAgICAg Ly8vIGFyZSBkaWZmaWN1bHQgdG8gc2F0aXNmeS4gVGhlIG9ubHkgYWR2YW50YWdlIG9mIHRoaXMg bWV0aG9kIGlzCistICAgICAgICAgICAgLy8vIHRoYXQgaXQgZW5hYmxlcyBtb3JlIGFnZ3Jlc3Np dmUgY29tcGlsZXIgb3B0aW1pemF0aW9ucy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgdW5zYWZlIGZuIG9mZnNldChzZWxmLCBjb3VudDogJGlzaXplX3R5KSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgTExWTSdzIGBhZGQg bnN3IG51d2AKKy0gICAgICAgICAgICAgICAgc2VsZi53cmFwcGluZ19vZmZzZXQoY291bnQpCist ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQg ZnJvbSBhIHBvaW50ZXIgdXNpbmcgd3JhcHBpbmcgYXJpdGhtZXRpYy4KKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBgVGA7IGUuZy4gYSBj b3VudCBvZiBgM2AgcmVwcmVzZW50cyBhCistICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0 IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgorLSAgICAgICAgICAgIC8vLworLSAgICAg ICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBU aGUgcmVzdWx0aW5nIHBvaW50ZXIgZG9lcyBub3QgbmVlZCB0byBiZSBpbiBib3VuZHMsIGJ1dCBp dCBpcworLSAgICAgICAgICAgIC8vLyBwb3RlbnRpYWxseSBoYXphcmRvdXMgdG8gZGVyZWZlcmVu Y2UgKHdoaWNoIHJlcXVpcmVzIHVuc2FmZSkuCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIEFsd2F5cyB1c2UgYC5vZmZzZXQoY291bnQpYCBpbnN0ZWFkIHdoZW4gcG9zc2libGUs IGJlY2F1c2UKKy0gICAgICAgICAgICAvLy8gb2Zmc2V0IGFsbG93cyB0aGUgY29tcGlsZXIgdG8g b3B0aW1pemUgYmV0dGVyLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1 YiBmbiB3cmFwcGluZ19vZmZzZXQoc2VsZiwgY291bnQ6ICRpc2l6ZV90eSkgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBsZXQgeDogJGlz aXplX3R5ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAg ICAgLy8gbm90ZTogeyssKn0gY3VycmVudGx5IHBlcmZvcm1zIGEgYHdyYXBwaW5nX3thZGQsIG11 bH1gCistICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoCistICAgICAg ICAgICAgICAgICAgICAgICAgeCArIChjb3VudCAqIGNyYXRlOjptZW06OnNpemVfb2Y6OjxUPigp IGFzIGlzaXplKQorLSAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBkaXN0YW5j ZSBiZXR3ZWVuIHR3byBwb2ludGVycy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gVGhlIHJldHVybmVkIHZhbHVlIGlzIGluIHVuaXRzIG9mIGBUYDogdGhlIGRpc3RhbmNlIGlu IGJ5dGVzIGlzCistICAgICAgICAgICAgLy8vIGRpdmlkZWQgYnkgYG1lbTo6c2l6ZV9vZjo6PFQ+ KClgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGlzIGZ1bmN0aW9uIGlz IHRoZSBpbnZlcnNlIG9mIG9mZnNldC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW55IG9m IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKKy0g ICAgICAgICAgICAvLy8gVW5kZWZpbmVkIEJlaGF2aW9yOgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyAqIEJvdGggdGhlIHN0YXJ0aW5nIGFuZCBvdGhlciBwb2ludGVyIG11c3Qg YmUgZWl0aGVyIGluIGJvdW5kcworLSAgICAgICAgICAgIC8vLyBvciBvbmUgYnl0ZSBwYXN0IHRo ZSBlbmQgb2YgdGhlIHNhbWUgYWxsb2NhdGVkIG9iamVjdC4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gKiBUaGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgcG9pbnRlcnMsIGluIGJ5 dGVzLCBjYW5ub3Qgb3ZlcmZsb3cKKy0gICAgICAgICAgICAvLy8gYW4gYGlzaXplYC4KKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBUaGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUg cG9pbnRlcnMsIGluIGJ5dGVzLCBtdXN0IGJlIGFuIGV4YWN0CistICAgICAgICAgICAgLy8vIG11 bHRpcGxlIG9mIHRoZSBzaXplIG9mIGBUYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gKiBUaGUgZGlzdGFuY2UgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFw cGluZyBhcm91bmQiCistICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLgorLSAgICAg ICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgY29tcGlsZXIgYW5kIHN0YW5kYXJkIGxp YnJhcnkgZ2VuZXJhbGx5IHRyeSB0byBlbnN1cmUKKy0gICAgICAgICAgICAvLy8gYWxsb2NhdGlv bnMgbmV2ZXIgcmVhY2ggYSBzaXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgor LSAgICAgICAgICAgIC8vLyBpbnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5l dmVyIGFsbG9jYXRlIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0 ZXMsIHNvIGBwdHJfaW50b192ZWMub2Zmc2V0X2Zyb20odmVjLmFzX3B0cigpKWAKKy0gICAgICAg ICAgICAvLy8gaXMgYWx3YXlzIHNhZmUuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIE1vc3QgcGxhdGZvcm1zIGZ1bmRhbWVudGFsbHkgY2FuJ3QgZXZlbiBjb25zdHJ1Y3Qgc3Vj aCBhbgorLSAgICAgICAgICAgIC8vLyBhbGxvY2F0aW9uLiBGb3IgaW5zdGFuY2UsIG5vIGtub3du IDY0LWJpdCBwbGF0Zm9ybSBjYW4gZXZlcgorLSAgICAgICAgICAgIC8vLyBzZXJ2ZSBhIHJlcXVl c3QgZm9yIDI2MyBieXRlcyBkdWUgdG8gcGFnZS10YWJsZSBsaW1pdGF0aW9ucyBvcgorLSAgICAg ICAgICAgIC8vLyBzcGxpdHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzIt Yml0IGFuZCAxNi1iaXQKKy0gICAgICAgICAgICAvLy8gcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVs bHkgc2VydmUgYSByZXF1ZXN0IGZvciBtb3JlIHRoYW4KKy0gICAgICAgICAgICAvLy8gYGlzaXpl OjpNQVhgIGJ5dGVzIHdpdGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcyBFeHRlbnNpb24u CistICAgICAgICAgICAgLy8vIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9t IGFsbG9jYXRvcnMgb3IgbWVtb3J5CistICAgICAgICAgICAgLy8vIG1hcHBlZCBmaWxlcyBtYXkg YmUgdG9vIGxhcmdlIHRvIGhhbmRsZSB3aXRoIHRoaXMgZnVuY3Rpb24uCistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vIENvbnNpZGVyIHVzaW5nIGB3cmFwcGluZ19vZmZzZXRfZnJv bWAgaW5zdGVhZCBpZiB0aGVzZSBjb25zdHJhaW50cworLSAgICAgICAgICAgIC8vLyBhcmUgZGlm ZmljdWx0IHRvIHNhdGlzZnkuIFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcwor LSAgICAgICAgICAgIC8vLyB0aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dyZXNzaXZlIGNvbXBpbGVy IG9wdGltaXphdGlvbnMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IHVuc2FmZSBmbiBvZmZzZXRfZnJvbShzZWxmLCBvcmlnaW46IFNlbGYpIC0+ICRpc2l6ZV90eSB7 CistICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIExMVk0ncyBgc3ViIG5zdyBu dXdgLgorLSAgICAgICAgICAgICAgICBzZWxmLndyYXBwaW5nX29mZnNldF9mcm9tKG9yaWdpbikK Ky0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENhbGN1bGF0ZXMgdGhlIGRpc3Rh bmNlIGJldHdlZW4gdHdvIHBvaW50ZXJzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAg IC8vLyBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgaW4gdW5pdHMgb2YgYFRgOiB0aGUgZGlzdGFuY2Ug aW4gYnl0ZXMgaXMKKy0gICAgICAgICAgICAvLy8gZGl2aWRlZCBieSBgbWVtOjpzaXplX29mOjo8 VD4oKWAuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIElmIHRoZSBhZGRyZXNz IGRpZmZlcmVudCBiZXR3ZWVuIHRoZSB0d28gcG9pbnRlcnMgaXMgbm90IGEKKy0gICAgICAgICAg ICAvLy8gbXVsdGlwbGUgb2YgYG1lbTo6c2l6ZV9vZjo6PFQ+KClgIHRoZW4gdGhlIHJlc3VsdCBv ZiB0aGUKKy0gICAgICAgICAgICAvLy8gZGl2aXNpb24gaXMgcm91bmRlZCB0b3dhcmRzIHplcm8u CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRob3VnaCB0aGlzIG1ldGhvZCBp cyBzYWZlIGZvciBhbnkgdHdvIHBvaW50ZXJzLCBub3RlIHRoYXQgaXRzCistICAgICAgICAgICAg Ly8vIHJlc3VsdCB3aWxsIGJlIG1vc3RseSB1c2VsZXNzIGlmIHRoZSB0d28gcG9pbnRlcnMgYXJl bid0IGludG8KKy0gICAgICAgICAgICAvLy8gdGhlIHNhbWUgYWxsb2NhdGVkIG9iamVjdCwgZm9y IGV4YW1wbGUgaWYgdGhleSBwb2ludCB0byB0d28KKy0gICAgICAgICAgICAvLy8gZGlmZmVyZW50 IGxvY2FsIHZhcmlhYmxlcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gd3JhcHBpbmdfb2Zmc2V0X2Zyb20oc2VsZiwgb3JpZ2luOiBTZWxmKSAtPiAkaXNpemVf dHkgeworLSAgICAgICAgICAgICAgICBsZXQgeDogJGlzaXplX3R5ID0gdW5zYWZlIHsgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKHNlbGYpIH07CistICAgICAgICAgICAgICAgIGxldCB5OiAkaXNpemVf dHkgPSB1bnNhZmUgeyBjcmF0ZTo6bWVtOjp0cmFuc211dGUob3JpZ2luKSB9OworLSAgICAgICAg ICAgICAgICAvLyBub3RlOiB7LSwvfSBjdXJyZW50bHkgcGVyZm9ybSB3cmFwcGluZ197c3ViLCBk aXZ9CistICAgICAgICAgICAgICAgICh5IC0geCkgLyAoY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFQ+ KCkgYXMgaXNpemUpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDYWxjdWxh dGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgKGNvbnZlbmllbmNlIGZvcgorLSAgICAgICAg ICAgIC8vLyBgLm9mZnNldChjb3VudCBhcyBpc2l6ZSlgKS4KKy0gICAgICAgICAgICAvLy8KKy0g ICAgICAgICAgICAvLy8gYGNvdW50YCBpcyBpbiB1bml0cyBvZiBgVGA7IGUuZy4gYSBjb3VudCBv ZiAzIHJlcHJlc2VudHMgYQorLSAgICAgICAgICAgIC8vLyBwb2ludGVyIG9mZnNldCBvZiBgMyAq IHNpemVfb2Y6OjxUPigpYCBieXRlcy4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYW55IG9m IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdmlvbGF0ZWQsIHRoZSByZXN1bHQgaXMKKy0g ICAgICAgICAgICAvLy8gVW5kZWZpbmVkIEJlaGF2aW9yOgorLSAgICAgICAgICAgIC8vLworLSAg ICAgICAgICAgIC8vLyAqIEJvdGggdGhlIHN0YXJ0aW5nIGFuZCByZXN1bHRpbmcgcG9pbnRlciBt dXN0IGJlIGVpdGhlciBpbgorLSAgICAgICAgICAgIC8vLyBib3VuZHMgb3Igb25lIGJ5dGUgcGFz dCB0aGUgZW5kIG9mIGFuIGFsbG9jYXRlZCBvYmplY3QuCistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vICogVGhlIGNvbXB1dGVkIG9mZnNldCwgaW4gYnl0ZXMsIGNhbm5vdCBvdmVy ZmxvdyBhbiBgaXNpemVgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAqIFRo ZSBvZmZzZXQgYmVpbmcgaW4gYm91bmRzIGNhbm5vdCByZWx5IG9uICJ3cmFwcGluZyBhcm91bmQi CistICAgICAgICAgICAgLy8vIHRoZSBhZGRyZXNzIHNwYWNlLiBUaGF0IGlzLCB0aGUgaW5maW5p dGUtcHJlY2lzaW9uIHN1bSBtdXN0IGZpdAorLSAgICAgICAgICAgIC8vLyBpbiBhIGB1c2l6ZWAu CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBjb21waWxlciBhbmQgc3Rh bmRhcmQgbGlicmFyeSBnZW5lcmFsbHkgdHJpZXMgdG8gZW5zdXJlCistICAgICAgICAgICAgLy8v IGFsbG9jYXRpb25zIG5ldmVyIHJlYWNoIGEgc2l6ZSB3aGVyZSBhbiBvZmZzZXQgaXMgYSBjb25j ZXJuLiBGb3IKKy0gICAgICAgICAgICAvLy8gaW5zdGFuY2UsIGBWZWNgIGFuZCBgQm94YCBlbnN1 cmUgdGhleSBuZXZlciBhbGxvY2F0ZSBtb3JlIHRoYW4KKy0gICAgICAgICAgICAvLy8gYGlzaXpl OjpNQVhgIGJ5dGVzLCBzbyBgdmVjLmFzX3B0cigpLmFkZCh2ZWMubGVuKCkpYCBpcyBhbHdheXMK Ky0gICAgICAgICAgICAvLy8gc2FmZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAv Ly8gTW9zdCBwbGF0Zm9ybXMgZnVuZGFtZW50YWxseSBjYW4ndCBldmVuIGNvbnN0cnVjdCBzdWNo IGFuCistICAgICAgICAgICAgLy8vIGFsbG9jYXRpb24uIEZvciBpbnN0YW5jZSwgbm8ga25vd24g NjQtYml0IHBsYXRmb3JtIGNhbiBldmVyCistICAgICAgICAgICAgLy8vIHNlcnZlIGEgcmVxdWVz dCBmb3IgMjYzIGJ5dGVzIGR1ZSB0byBwYWdlLXRhYmxlIGxpbWl0YXRpb25zIG9yCistICAgICAg ICAgICAgLy8vIHNwbGl0dGluZyB0aGUgYWRkcmVzcyBzcGFjZS4gSG93ZXZlciwgc29tZSAzMi1i aXQgYW5kIDE2LWJpdAorLSAgICAgICAgICAgIC8vLyBwbGF0Zm9ybXMgbWF5IHN1Y2Nlc3NmdWxs eSBzZXJ2ZSBhIHJlcXVlc3QgZm9yIG1vcmUgdGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6 Ok1BWGAgYnl0ZXMgd2l0aCB0aGluZ3MgbGlrZSBQaHlzaWNhbCBBZGRyZXNzIEV4dGVuc2lvbi4K Ky0gICAgICAgICAgICAvLy8gQXMgc3VjaCwgbWVtb3J5IGFjcXVpcmVkIGRpcmVjdGx5IGZyb20g YWxsb2NhdG9ycyBvciBtZW1vcnkKKy0gICAgICAgICAgICAvLy8gbWFwcGVkIGZpbGVzIG1heSBi ZSB0b28gbGFyZ2UgdG8gaGFuZGxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKy0gICAgICAgICAgICAv Ly8KKy0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNpbmcgYHdyYXBwaW5nX29mZnNldGAgaW5z dGVhZCBpZiB0aGVzZSBjb25zdHJhaW50cworLSAgICAgICAgICAgIC8vLyBhcmUgZGlmZmljdWx0 IHRvIHNhdGlzZnkuIFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0aGlzIG1ldGhvZCBpcworLSAgICAg ICAgICAgIC8vLyB0aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dyZXNzaXZlIGNvbXBpbGVyIG9wdGlt aXphdGlvbnMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1thbGxvdyhj bGlwcHk6OnNob3VsZF9pbXBsZW1lbnRfdHJhaXQpXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUg Zm4gYWRkKHNlbGYsIGNvdW50OiAkdXNpemVfdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICBzZWxmLm9mZnNldChjb3VudC5jYXN0KCkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgKGNvbnZlbmllbmNl IGZvcgorLSAgICAgICAgICAgIC8vLyBgLm9mZnNldCgoY291bnQgYXMgaXNpemUpLndyYXBwaW5n X25lZygpKWApLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBgY291bnRgIGlz IGluIHVuaXRzIG9mIFQ7IGUuZy4gYSBgY291bnRgIG9mIDMgcmVwcmVzZW50cyBhCistICAgICAg ICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9vZjo6PFQ+KClgIGJ5dGVzLgor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z IGFyZSB2aW9sYXRlZCwgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgIC8vLyBVbmRlZmluZWQg QmVoYXZpb3I6CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICogQm90aCB0aGUg c3RhcnRpbmcgYW5kIHJlc3VsdGluZyBwb2ludGVyIG11c3QgYmUgZWl0aGVyIGluCistICAgICAg ICAgICAgLy8vIGJvdW5kcyBvciBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQgb2YgYW4gYWxsb2NhdGVk IG9iamVjdC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBUaGUgY29tcHV0 ZWQgb2Zmc2V0IGNhbm5vdCBleGNlZWQgYGlzaXplOjpNQVhgICoqYnl0ZXMqKi4KKy0gICAgICAg ICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gKiBUaGUgb2Zmc2V0IGJlaW5nIGluIGJvdW5kcyBj YW5ub3QgcmVseSBvbiAid3JhcHBpbmcgYXJvdW5kIgorLSAgICAgICAgICAgIC8vLyB0aGUgYWRk cmVzcyBzcGFjZS4gVGhhdCBpcywgdGhlIGluZmluaXRlLXByZWNpc2lvbiBzdW0gbXVzdCBmaXQK Ky0gICAgICAgICAgICAvLy8gaW4gYSB1c2l6ZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAg ICAgICAvLy8gVGhlIGNvbXBpbGVyIGFuZCBzdGFuZGFyZCBsaWJyYXJ5IGdlbmVyYWxseSB0cmll cyB0byBlbnN1cmUKKy0gICAgICAgICAgICAvLy8gYWxsb2NhdGlvbnMgbmV2ZXIgcmVhY2ggYSBz aXplIHdoZXJlIGFuIG9mZnNldCBpcyBhIGNvbmNlcm4uIEZvcgorLSAgICAgICAgICAgIC8vLyBp bnN0YW5jZSwgYFZlY2AgYW5kIGBCb3hgIGVuc3VyZSB0aGV5IG5ldmVyIGFsbG9jYXRlIG1vcmUg dGhhbgorLSAgICAgICAgICAgIC8vLyBgaXNpemU6Ok1BWGAgYnl0ZXMsIHNvCistICAgICAgICAg ICAgLy8vIGB2ZWMuYXNfcHRyKCkuYWRkKHZlYy5sZW4oKSkuc3ViKHZlYy5sZW4oKSlgIGlzIGFs d2F5cyBzYWZlLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBNb3N0IHBsYXRm b3JtcyBmdW5kYW1lbnRhbGx5IGNhbid0IGV2ZW4gY29uc3RydWN0IHN1Y2ggYW4KKy0gICAgICAg ICAgICAvLy8gYWxsb2NhdGlvbi4gRm9yIGluc3RhbmNlLCBubyBrbm93biA2NC1iaXQgcGxhdGZv cm0gY2FuIGV2ZXIKKy0gICAgICAgICAgICAvLy8gc2VydmUgYSByZXF1ZXN0IGZvciAyPHN1cD42 Mzwvc3VwPiBieXRlcyBkdWUgdG8gcGFnZS10YWJsZQorLSAgICAgICAgICAgIC8vLyBsaW1pdGF0 aW9ucyBvciBzcGxpdHRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UuIEhvd2V2ZXIsIHNvbWUgMzItYml0 CistICAgICAgICAgICAgLy8vIGFuZCAxNi1iaXQgcGxhdGZvcm1zIG1heSBzdWNjZXNzZnVsbHkg c2VydmUgYSByZXF1ZXN0IGZvciBtb3JlCistICAgICAgICAgICAgLy8vIHRoYW4gYGlzaXplOjpN QVhgIGJ5dGVzIHdpdGggdGhpbmdzIGxpa2UgUGh5c2ljYWwgQWRkcmVzcworLSAgICAgICAgICAg IC8vLyBFeHRlbnNpb24uIEFzIHN1Y2gsIG1lbW9yeSBhY3F1aXJlZCBkaXJlY3RseSBmcm9tIGFs bG9jYXRvcnMgb3IKKy0gICAgICAgICAgICAvLy8gbWVtb3J5IG1hcHBlZCBmaWxlcyAqbWF5KiBi ZSB0b28gbGFyZ2UgdG8gaGFuZGxlIHdpdGggdGhpcworLSAgICAgICAgICAgIC8vLyBmdW5jdGlv bi4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gQ29uc2lkZXIgdXNpbmcgYHdy YXBwaW5nX29mZnNldGAgaW5zdGVhZCBpZiB0aGVzZSBjb25zdHJhaW50cworLSAgICAgICAgICAg IC8vLyBhcmUgZGlmZmljdWx0IHRvIHNhdGlzZnkuIFRoZSBvbmx5IGFkdmFudGFnZSBvZiB0aGlz IG1ldGhvZCBpcworLSAgICAgICAgICAgIC8vLyB0aGF0IGl0IGVuYWJsZXMgbW9yZSBhZ2dyZXNz aXZlIGNvbXBpbGVyIG9wdGltaXphdGlvbnMuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnNob3VsZF9pbXBsZW1lbnRfdHJhaXQpXQorLSAgICAg ICAgICAgIHB1YiB1bnNhZmUgZm4gc3ViKHNlbGYsIGNvdW50OiAkdXNpemVfdHkpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICBsZXQgeDogJGlzaXplX3R5ID0gY291bnQuY2FzdCgpOworLSAg ICAgICAgICAgICAgICAvLyBub3RlOiAtIGlzIGN1cnJlbnRseSB3cmFwcGluZ19uZWcKKy0gICAg ICAgICAgICAgICAgc2VsZi5vZmZzZXQoLXgpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAg ICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgdXNpbmcgd3JhcHBp bmcgYXJpdGhtZXRpYy4KKy0gICAgICAgICAgICAvLy8gKGNvbnZlbmllbmNlIGZvciBgLndyYXBw aW5nX29mZnNldChjb3VudCBhcyBpc2l6ZSlgKQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAg ICAgIC8vLyBgY291bnRgIGlzIGluIHVuaXRzIG9mIFQ7IGUuZy4gYSBgY291bnRgIG9mIDMgcmVw cmVzZW50cyBhCistICAgICAgICAgICAgLy8vIHBvaW50ZXIgb2Zmc2V0IG9mIGAzICogc2l6ZV9v Zjo6PFQ+KClgIGJ5dGVzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNh ZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgcmVzdWx0aW5nIHBv aW50ZXIgZG9lcyBub3QgbmVlZCB0byBiZSBpbiBib3VuZHMsIGJ1dCBpdCBpcworLSAgICAgICAg ICAgIC8vLyBwb3RlbnRpYWxseSBoYXphcmRvdXMgdG8gZGVyZWZlcmVuY2UgKHdoaWNoIHJlcXVp cmVzIGB1bnNhZmVgKS4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gQWx3YXlz IHVzZSBgLmFkZChjb3VudClgIGluc3RlYWQgd2hlbiBwb3NzaWJsZSwgYmVjYXVzZSBgYWRkYAor LSAgICAgICAgICAgIC8vLyBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIG9wdGltaXplIGJldHRlci4K Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdfYWRk KHNlbGYsIGNvdW50OiAkdXNpemVfdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxm LndyYXBwaW5nX29mZnNldChjb3VudC5jYXN0KCkpCistICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgIC8vLyBDYWxjdWxhdGVzIHRoZSBvZmZzZXQgZnJvbSBhIHBvaW50ZXIgdXNpbmcgd3Jh cHBpbmcgYXJpdGhtZXRpYy4KKy0gICAgICAgICAgICAvLy8gKGNvbnZlbmllbmNlIGZvciBgLndy YXBwaW5nX29mZnNldCgoY291bnQgYXMKKy0gICAgICAgICAgICAvLy8gaXNpemUpLndyYXBwaW5n X3N1YigpKWApCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIGBjb3VudGAgaXMg aW4gdW5pdHMgb2YgVDsgZS5nLiBhIGBjb3VudGAgb2YgMyByZXByZXNlbnRzIGEKKy0gICAgICAg ICAgICAvLy8gcG9pbnRlciBvZmZzZXQgb2YgYDMgKiBzaXplX29mOjo8VD4oKWAgYnl0ZXMuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vIFRoZSByZXN1bHRpbmcgcG9pbnRlciBkb2VzIG5vdCBuZWVk IHRvIGJlIGluIGJvdW5kcywgYnV0IGl0IGlzCistICAgICAgICAgICAgLy8vIHBvdGVudGlhbGx5 IGhhemFyZG91cyB0byBkZXJlZmVyZW5jZSAod2hpY2ggcmVxdWlyZXMgYHVuc2FmZWApLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBBbHdheXMgdXNlIGAuc3ViKGNvdW50KWAg aW5zdGVhZCB3aGVuIHBvc3NpYmxlLCBiZWNhdXNlIGBzdWJgCistICAgICAgICAgICAgLy8vIGFs bG93cyB0aGUgY29tcGlsZXIgdG8gb3B0aW1pemUgYmV0dGVyLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19zdWIoc2VsZiwgY291bnQ6ICR1c2l6 ZV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGxldCB4OiAkaXNpemVfdHkgPSBjb3Vu dC5jYXN0KCk7CistICAgICAgICAgICAgICAgIHNlbGYud3JhcHBpbmdfb2Zmc2V0KC0xICogeCkK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsPFQ+ICRpZDxUPiB7 CistICAgICAgICAgICAgLy8vIFNodWZmbGUgdmVjdG9yIGVsZW1lbnRzIGFjY29yZGluZyB0byBg aW5kaWNlc2AuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNo dWZmbGUxX2R5bjxJPihzZWxmLCBpbmRpY2VzOiBJKSAtPiBTZWxmCistICAgICAgICAgICAgICAg IHdoZXJlCistICAgICAgICAgICAgICAgIFNlbGY6IGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1 ZmZsZTFEeW48SW5kaWNlcyA9IEk+LAorLSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAg Y29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVmZmxlMUR5bjo6c2h1ZmZsZTFfZHluKHNlbGYsIGlu ZGljZXMpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEg eworLSAgICAgICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEg eworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zaHVmZmxlMV9keW4+XSB7CistICAg ICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bigpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgKG51bGwsIG5vbl9udWxsKSA9IHB0cl92YWxzISgkaWQ8aTMy Pik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx0ZXJuYXRpbmcgPSBbbm9uX251 bGwsIG51bGwsIG5vbl9udWxsLCBudWxsLCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBhbHRlcm5hdGluZyA9ICRpZDo6PGkzMj46OnNwbGF0KG51bGwpOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6PGkzMj46OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFsdGVybmF0aW5nID0gYWx0ZXJuYXRpbmcucmVwbGFjZShpLCBub25f bnVsbCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gPCRp ZDxpMzI+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIGNvZGVnZW46OnNodWZmbGUx X2R5bjo6U2h1ZmZsZTFEeW4+OjpJbmRpY2VzOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IGV2ZW4gPSBbMCwgMCwgMiwgMiwgNCwgNCwgLi5dCistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGV2ZW4gPSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IElu ZGljZXM6OnNwbGF0KDApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAw Li4kaWQ6OjxpMzI+OjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg PSB2LnJlcGxhY2UoaSwgKGkgYXMgdTgpLmludG8oKSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9 IHYucmVwbGFjZShpLCAoaSBhcyB1OCAtIDEpLmludG8oKSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgdgorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gb2RkID0gWzEsIDEsIDMsIDMsIDUsIDUsIC4uLl0KKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2RkID0geworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IHYgPSBJbmRpY2VzOjpzcGxhdCgwKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjo8aTMyPjo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4ICsgMSkuaW50 bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAg ICAgICAgICAgICAgICAgICAgfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGluZy5zaHVmZmxlMV9k eW4oZXZlbiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6PGkzMj46OnNwbGF0 KG5vbl9udWxsKQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAg ICAgICAgICAgaWYgJGlkOjo8aTMyPjo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWx0ZXJuYXRpbmcuc2h1ZmZsZTFfZHluKG9kZCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaWQ6OjxpMzI+OjpzcGxhdChudWxsKQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L29wcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMucnMKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvYXBpL29wcy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzIgKzAsMCBAQAorLS8vISBJ bXBsZW1lbnRhdGlvbiBvZiB0aGUgYG9wc2AgdHJhaXRzCistI1ttYWNyb191c2VdCistbW9kIHZl Y3Rvcl9tYXNrX2JpdHdpc2U7CistI1ttYWNyb191c2VdCistbW9kIHNjYWxhcl9tYXNrX2JpdHdp c2U7CistCistI1ttYWNyb191c2VdCistbW9kIHZlY3Rvcl9hcml0aG1ldGljOworLSNbbWFjcm9f dXNlXQorLW1vZCBzY2FsYXJfYXJpdGhtZXRpYzsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVj dG9yX2JpdHdpc2U7CistI1ttYWNyb191c2VdCistbW9kIHNjYWxhcl9iaXR3aXNlOworLQorLSNb bWFjcm9fdXNlXQorLW1vZCB2ZWN0b3Jfc2hpZnRzOworLSNbbWFjcm9fdXNlXQorLW1vZCBzY2Fs YXJfc2hpZnRzOworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3Jfcm90YXRlczsKKy0KKy0j W21hY3JvX3VzZV0KKy1tb2QgdmVjdG9yX25lZzsKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgdmVj dG9yX2ludF9taW5fbWF4OworLQorLSNbbWFjcm9fdXNlXQorLW1vZCB2ZWN0b3JfZmxvYXRfbWlu X21heDsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3NjYWxhcl9hcml0aG1ldGljLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvYXBpL29wcy9zY2FsYXJfYXJpdGhtZXRpYy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9h cml0aG1ldGljLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwyMDMgKzAsMCBAQAorLS8vISBWZXJ0 aWNhbCAobGFuZS13aXNlKSB2ZWN0b3Itc2NhbGFyIC8gc2NhbGFyLXZlY3RvciBhcml0aG1ldGlj IG9wZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9hcml0aG1ldGlj IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8 ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZDwkZWxlbV90 eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGFkZChzZWxmLCBvdGhlcjogJGVsZW1fdHkp IC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmICsgJGlkOjpzcGxhdChvdGhlcikKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZDwk aWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYWRkKHNlbGYsIG90aGVyOiAkaWQp IC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgKyBvdGhlcgorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U3Vi PCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc3ViKHNlbGYsIG90aGVyOiAk ZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgLSAkaWQ6OnNwbGF0KG90 aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6U3ViPCRpZD4gZm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRp ZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzdWIoc2VsZiwgb3Ro ZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSAtIG90 aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpNdWw8JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g U2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBtdWwoc2VsZiwg b3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiAqICRpZDo6 c3BsYXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBj cmF0ZTo6b3BzOjpNdWw8JGlkPiBmb3IgJGVsZW1fdHkgeworLSAgICAgICAgICAgIHR5cGUgT3V0 cHV0ID0gJGlkOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIG11bChz ZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNl bGYpICogb3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBs IGNyYXRlOjpvcHM6OkRpdjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBP dXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGRp dihzZWxmLCBvdGhlcjogJGVsZW1fdHkpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxm IC8gJGlkOjpzcGxhdChvdGhlcikKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAg ICBpbXBsIGNyYXRlOjpvcHM6OkRpdjwkaWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAg dHlwZSBPdXRwdXQgPSAkaWQ7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gZGl2KHNlbGYsIG90aGVyOiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6 c3BsYXQoc2VsZikgLyBvdGhlcgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAg ICAgIGltcGwgY3JhdGU6Om9wczo6UmVtPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAg ICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgZm4gcmVtKHNlbGYsIG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHNlbGYgJSAkaWQ6OnNwbGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtPCRpZD4gZm9yICRlbGVtX3R5IHsKKy0gICAg ICAgICAgICB0eXBlIE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiByZW0oc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAg ICAgJGlkOjpzcGxhdChzZWxmKSAlIG90aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGRBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQg eworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGFkZF9hc3NpZ24oJm11 dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2Vs ZiArIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6U3ViQXNzaWduPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBzdWJfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6ICRl bGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgLSBvdGhlcjsKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bEFz c2lnbjwkZWxlbV90eT4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gbXVsX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgeworLSAgICAg ICAgICAgICAgICAqc2VsZiA9ICpzZWxmICogb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXZBc3NpZ248JGVsZW1fdHk+IGZv ciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGRpdl9hc3Np Z24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYg PSAqc2VsZiAvIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAg IGltcGwgY3JhdGU6Om9wczo6UmVtQXNzaWduPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiByZW1fYXNzaWduKCZtdXQgc2VsZiwgb3Ro ZXI6ICRlbGVtX3R5KSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgJSBvdGhlcjsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAg ICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAg ICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfc2NhbGFyX2FyaXRoPl0geworLSAgICAgICAgICAg ICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihu b3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNo ID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZu IG9wc19zY2FsYXJfYXJpdGhtZXRpYygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg emkgPSAwIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvaSA9IDEg YXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRpID0gMiBhcyAkZWxl bV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmkgPSA0IGFzICRlbGVtX3R5Owor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCh6aSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KG9pKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQodGkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBmID0gJGlkOjpzcGxhdChmaSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg Ly8gYWRkCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSArIHosIHopOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiArIHppLCB6KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICsgeiwgbyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShvICsgemksIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodGkgKyB6LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHQgKyB6aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAr IHQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCArIHRpLCBmKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWIKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHppIC0geiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh6IC0gemksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kg LSB6LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gLSB6aSwgbyk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAtIHosIHQpOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAtIHppLCB0KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKGZpIC0gdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmIC0gdGksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoZiAtIG8gLSBvLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgLSBvaSAtIG9pLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBtdWwKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICogeiwgeik7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICogemksIHopOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoemkgKiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHogKiBvaSwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6 aSAqIHQsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHRpLCB6 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pICogdCwgdCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICogdGksIHQpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgKiB0LCBmKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHQgKiB0aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgLy8g ZGl2CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6aSAvIG8sIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAvIG9pLCB6KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIC8gbywgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0IC8gb2ksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZmkgLyBvLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGYgLyBvaSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAvIHQs IG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAvIHRpLCBvKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIC8gdCwgdCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC8gdGksIHQpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIHJlbQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgJSBv LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJSBvaSwgeik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAlIHQsIHopOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAlIHRpLCB6KTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYgKz0gb2k7IC8vIGFkZF9hc3NpZ24KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBvKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiAtPSBvaTsgLy8gc3ViX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0g dDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAqPSBvaTsgLy8gbXVsX2Fzc2lnbgor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ICo9IHRpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHYsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IC89IG9p OyAvLyBkaXZfYXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLz0gdGk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYgJT0gdGk7IC8vIHJlbV9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9iaXR3aXNlLnJzCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9v cHMvc2NhbGFyX2JpdHdpc2UucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2MiArMCwwIEBACist Ly8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci1zY2FsYXIgLyBzY2FsYXItdmVjdG9yIGJp dHdpc2Ugb3BlcmF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX2JpdHdp c2UgeworLSAgICAoCistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJd OgorLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVlOmV4 cHIsICRmYWxzZTpleHByKQorLSAgICApID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6 Qml0WG9yPCRlbGVtX3R5PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNl bGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYs IG90aGVyOiAkZWxlbV90eSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgXiAkaWQ6 OnNwbGF0KG90aGVyKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwg Y3JhdGU6Om9wczo6Qml0WG9yPCRpZD4gZm9yICRlbGVtX3R5IHsKKy0gICAgICAgICAgICB0eXBl IE91dHB1dCA9ICRpZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBi aXR4b3Ioc2VsZiwgb3RoZXI6ICRpZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpz cGxhdChzZWxmKSBeIG90aGVyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQ8JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBiaXRhbmQoc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAtPiBTZWxmIHsKKy0gICAgICAg ICAgICAgICAgc2VsZiAmICRpZDo6c3BsYXQob3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQ8JGlkPiBmb3IgJGVsZW1fdHkg eworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogJGlkKSAtPiAkaWQgeworLSAg ICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpICYgb3RoZXIKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdE9yPCRlbGVtX3R5PiBm b3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6ICRlbGVtX3R5KSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiB8ICRpZDo6c3BsYXQob3RoZXIpCistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPcjwk aWQ+IGZvciAkZWxlbV90eSB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0b3Ioc2VsZiwgb3RoZXI6ICRp ZCkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgJGlkOjpzcGxhdChzZWxmKSB8IG90aGVyCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmRBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkp IHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOworLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ248JGVs ZW1fdHk+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IGJpdG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiAkZWxlbV90eSkgeworLSAgICAgICAgICAg ICAgICAqc2VsZiA9ICpzZWxmIHwgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3JBc3NpZ248JGVsZW1fdHk+IGZvciAkaWQg eworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcl9hc3NpZ24o Jm11dCBzZWxmLCBvdGhlcjogJGVsZW1fdHkpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAq c2VsZiBeIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRl c3RfaWYheworLSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVt ISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc19zY2FsYXJfYml0d2lzZT5d IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICBmbiBvcHNfc2NhbGFyX2JpdHdpc2UoKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHppID0gMCBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgb2kgPSAxIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0aSA9IDIgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHogPSAk aWQ6OnNwbGF0KHppKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3Bs YXQob2kpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCh0aSk7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gQml0QW5kOgorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEob2kgJiBvLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8gJiBvaSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvaSAmIHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAm IHppLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppICYgbywgeik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICYgb2ksIHopOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgJiB6LCB6KTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogJiB6aSwgeik7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0aSAmIHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCAmIHRpLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHRpICYgbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgb2ks IHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEob2kgJiB0LCB6KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gJiB0aSwgeik7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gQml0T3I6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvaSB8IG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo byB8IG9pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG9pIHwgeiwg byk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIHwgemksIG8pOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgfCBvLCBvKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCBvaSwgbyk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSB8IHosIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiB8IHppLCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHRpIHwgdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwg dGksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoemkgfCB0LCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogfCB0aSwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSB8IHosIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCB8IHppLCB0KTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAvLyBCaXRYT1I6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvaSBe IG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBeIG9pLCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHppIF4geiwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IF4gemksIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoemkgXiBvLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogXiBvaSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShvaSBeIHosIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyBe IHppLCBvKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4gdCwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gdGksIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGkgXiB6LCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB6aSwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6aSBeIHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoeiBeIHRpLCB0KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZEFzc2lnbjoKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg diAmPSB0aTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPckFzc2lnbjoKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiB8PSBvaTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBv KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBYT1JBc3NpZ246CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHo7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYgXj0gb2k7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo diwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzL3NjYWxhcl9tYXNrX2JpdHdpc2UucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy9zY2Fs YXJfbWFza19iaXR3aXNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNDAgKzAsMCBAQAorLS8v ISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4K Ky0KKy1tYWNyb19ydWxlcyEgaW1wbF9vcHNfc2NhbGFyX21hc2tfYml0d2lzZSB7CistICAgICgK Ky0gICAgICAgIFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06CistICAgICAgICAk aWQ6aWRlbnQgfCAkdGVzdF90dDp0dCB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZhbHNlOmV4 cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3I8Ym9vbD4g Zm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogYm9vbCkgLT4g U2VsZiB7CistICAgICAgICAgICAgICAgIHNlbGYgXiAkaWQ6OnNwbGF0KG90aGVyKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0WG9yPCRp ZD4gZm9yIGJvb2wgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gJGlkOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcihzZWxmLCBvdGhlcjogJGlkKSAt PiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIF4gb3RoZXIKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdEFu ZDxib29sPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVyOiBi b29sKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiAmICRpZDo6c3BsYXQob3RoZXIp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmQ8JGlkPiBmb3IgYm9vbCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAkaWQ7Cist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0YW5kKHNlbGYsIG90aGVy OiAkaWQpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgICRpZDo6c3BsYXQoc2VsZikgJiBvdGhl cgorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0T3I8Ym9vbD4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxm OworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90 aGVyOiBib29sKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiB8ICRpZDo6c3BsYXQo b3RoZXIpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6 b3BzOjpCaXRPcjwkaWQ+IGZvciBib29sIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9ICRp ZDsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcihzZWxmLCBv dGhlcjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICAkaWQ6OnNwbGF0KHNlbGYpIHwg b3RoZXIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRl OjpvcHM6OkJpdEFuZEFzc2lnbjxib29sPiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiBiaXRhbmRfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IGJvb2wp IHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiAmIG90aGVyOworLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3JBc3NpZ248Ym9v bD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0 b3JfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IGJvb2wpIHsKKy0gICAgICAgICAgICAgICAgKnNl bGYgPSAqc2VsZiB8IG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAg IGltcGwgY3JhdGU6Om9wczo6Qml0WG9yQXNzaWduPGJvb2w+IGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdHhvcl9hc3NpZ24oJm11dCBzZWxmLCBv dGhlcjogYm9vbCkgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIF4gb3RoZXI7Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAg ICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAg ICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2U+XSB7CistICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gb3BzX3NjYWxhcl9tYXNrX2JpdHdpc2UoKSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHRpID0gdHJ1ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmkgPSBmYWxz ZTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQodGkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdChmaSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0ISh0ICE9IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoISh0ID09IGYpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRB bmQ6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSAmIGYsIGYpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCAmIGZpLCBmKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpICYgdCwgZik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmICYgdGksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodGkgJiB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgJiB0aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmaSAmIGYs IGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAmIGZpLCBmKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAvLyBCaXRPcjoKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHRpIHwgZiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh0IHwgZmksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo ZmkgfCB0LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgfCB0aSwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0aSB8IHQsIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCB8IHRpLCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGZpIHwgZiwgZik7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxIShmIHwgZmksIGYpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IC8vIEJpdFhPUjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHRpIF4gZiwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IF4gZmksIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZmkgXiB0LCB0KTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgXiB0aSwgdCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh0aSBeIHQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodCBeIHRpLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGZpIF4gZiwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIF4gZmks IGYpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gQW5kQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHYgPSBmOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHRpOworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIGYpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIE9yQXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHYgPSBmOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHw9IHRpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHQpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIFhPUkFzc2lnbjoKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCB2ID0gZjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBePSB0aTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3NoaWZ0 cy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvc2NhbGFyX3No aWZ0cy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3NjYWxhcl9zaGlmdHMucnMKKysrKyAvZGV2L251bGwK K0BAIC0xLDEwNiArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci1zY2Fs YXIgc2hpZnRzIG9wZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3NjYWxhcl9z aGlmdHMgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlk ZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U2hsPHUz Mj4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNobChzZWxmLCBvdGhlcjogdTMyKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiA8PCAkaWQ6OnNwbGF0KG90aGVyIGFzICRlbGVt X3R5KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6U2hyPHUzMj4gZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOwor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNocihzZWxmLCBvdGhlcjog dTMyKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZiA+PiAkaWQ6OnNwbGF0KG90aGVy IGFzICRlbGVtX3R5KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlt cGwgY3JhdGU6Om9wczo6U2hsQXNzaWduPHUzMj4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gc2hsX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiB1MzIp IHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiA8PCBvdGhlcjsKKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNockFzc2lnbjx1MzI+ IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHNocl9h c3NpZ24oJm11dCBzZWxmLCBvdGhlcjogdTMyKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0g KnNlbGYgPj4gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVz dF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfb3BzX3NjYWxhcl9zaGlmdHM+XSB7 CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmdfYXR0cihhbnkodGFyZ2V0X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRf YXJjaCA9ICJzcGFyYzY0IiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93 KHVucmVhY2hhYmxlX2NvZGUsIHVudXNlZF92YXJpYWJsZXMpCistICAgICAgICAgICAgICAgICAg ICApXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNo NjQiKSldCistICAgICAgICAgICAgICAgICAgICAvL35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5j b20vcnVzdC1sYW5nL3BhY2tlZF9zaW1kL2lzc3Vlcy8zMTcKKy0gICAgICAgICAgICAgICAgICAg IGZuIG9wc19zY2FsYXJfc2hpZnRzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6 ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6aSA9IDAg YXMgdTMyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb2kgPSAxIGFzIHUzMjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRpID0gMiBhcyB1MzI7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXhpCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA9IChtZW06OnNpemVfb2Y6OjwkZWxlbV90eT4oKSAqIDggLSAxKSBhcyB1MzI7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNocgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKHogPj4gemksIHopOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHogPj4gb2ksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHogPj4gdGksIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKHogPj4gdGksIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjW2NmZyhhbnkodGFyZ2V0X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0 IikpXSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6 Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xMworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo byA+PiB6aSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+ PiB6aSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiB6 aSwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBtYXhp LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvID4+IG9p LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IG9pLCBv KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHRpLCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG9pLCB0KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IHRpLCBvKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IG1heGksIHopOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaGwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh6IDw8IHppLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvIDw8IHppLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISh0IDw8IHppLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShmIDw8IHppLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxIShmIDw8IG1heGksIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKG8gPDwgb2ksIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKG8gPDwgdGksIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHQgPDwgb2ksIGYpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAvLyBzaHJf YXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBvOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA+Pj0gb2k7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHopOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgIC8vIHNobF9hc3Np Z24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IDw8PSBvaTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9vcHMvdmVjdG9yX2FyaXRobWV0aWMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvb3BzL3ZlY3Rvcl9hcml0aG1ldGljLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9y X2FyaXRobWV0aWMucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0OCArMCwwIEBACistLy8hIFZl cnRpY2FsIChsYW5lLXdpc2UpIHZlY3Rvci12ZWN0b3IgYXJpdGhtZXRpYyBvcGVyYXRpb25zLgor LQorLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3JfYXJpdGhtZXRpYyB7CistICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4geworLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpBZGQgZm9yICRpZCB7CistICAgICAgICAg ICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIGZuIGFkZChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9hZGQ7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNp bWQoc2ltZF9hZGQoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6U3ViIGZvciAkaWQgeworLSAgICAgICAg ICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICBmbiBzdWIoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc3ViOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBT aW1kKHNpbWRfc3ViKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6Ok11bCBmb3IgJGlkIHsKKy0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gbXVsKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAg ICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX211bDsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsg U2ltZChzaW1kX211bChzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpEaXYgZm9yICRpZCB7CistICAgICAg ICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGRpdihzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9kaXY7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 IFNpbWQoc2ltZF9kaXYoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtIGZvciAkaWQgeworLSAgICAg ICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiByZW0oc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVtOworLSAgICAgICAgICAgICAgICB1bnNhZmUg eyBTaW1kKHNpbWRfcmVtKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkFkZEFzc2lnbiBmb3IgJGlkIHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBhZGRfYXNzaWduKCZtdXQg c2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAgICAgKnNlbGYgPSAqc2VsZiArIG90 aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwgY3JhdGU6 Om9wczo6U3ViQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIHN1Yl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAg ICAgICAgICAqc2VsZiA9ICpzZWxmIC0gb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpNdWxBc3NpZ24gZm9yICRpZCB7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbXVsX2Fzc2lnbigmbXV0IHNlbGYs IG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgKiBvdGhlcjsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6 OkRpdkFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBkaXZfYXNzaWduKCZtdXQgc2VsZiwgb3RoZXI6IFNlbGYpIHsKKy0gICAgICAgICAgICAg ICAgKnNlbGYgPSAqc2VsZiAvIG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6UmVtQXNzaWduIGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHJlbV9hc3NpZ24oJm11dCBzZWxmLCBvdGhl cjogU2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmICUgb3RoZXI7CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAg ICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAg ICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX2FyaXRoPl0geworLSAgICAgICAgICAgICAgICAg ICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndh c20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192 ZWN0b3JfYXJpdGhtZXRpYygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeiA9ICRp ZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG8g PSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBsZXQgZiA9ICRpZDo6c3BsYXQoNCBhcyAkZWxlbV90eSk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgLy8gYWRkCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6ICsg eiwgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvICsgeiwgbyk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgeiwgdCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICsgdCwgZik7CistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gc3ViCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh6IC0geiwg eik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvIC0geiwgbyk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IC0geiwgdCk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShmIC0gdCwgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShmIC0gbyAtIG8sIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IG11bAorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHosIHopOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIG8sIHopOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAqIHQsIHopOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEobyAqIHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCAqIHQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpdgorLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAvIG8sIHopOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCAvIG8sIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoZiAvIG8sIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodCAvIHQsIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiAvIHQs IHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbQorLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEobyAlIG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEoZiAlIHQsIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gejsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiArPSBvOyAvLyBhZGRfYXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFz c2VydF9lcSEodiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgLT0gbzsgLy8g c3ViX2Fzc2lnbgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYsIHop OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ID0gdDsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgdiAqPSBvOyAvLyBtdWxfYXNzaWduCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYg Kj0gdDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCBmKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAvPSBvOyAvLyBkaXZfYXNzaWduCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgZik7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYgLz0gdDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiAlPSB0OyAvLyByZW1f YXNzaWduCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgeik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2Rp ZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rv cl9iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92 ZWN0b3JfYml0d2lzZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9iaXR3aXNlLnJzCisrKysg L2Rldi9udWxsCitAQCAtMSwxMjkgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2 ZWN0b3ItdmVjdG9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9v cHNfdmVjdG9yX2JpdHdpc2UgeworLSAgICAoCistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOgorLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAg ICAgICAgKCR0cnVlOmV4cHIsICRmYWxzZTpleHByKQorLSAgICApID0+IHsKKy0gICAgICAgIGlt cGwgY3JhdGU6Om9wczo6Tm90IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0g U2VsZjsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBub3Qoc2VsZikg LT4gU2VsZiB7CistICAgICAgICAgICAgICAgIFNlbGY6OnNwbGF0KCR0cnVlKSBeIHNlbGYKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhv ciBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiBTZWxmKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3hvcjsKKy0g ICAgICAgICAgICAgICAgdW5zYWZlIHsgU2ltZChzaW1kX3hvcihzZWxmLjAsIG90aGVyLjApKSB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpC aXRBbmQgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogU2Vs ZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9hbmQ7 CistICAgICAgICAgICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9hbmQoc2VsZi4wLCBvdGhlci4w KSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0T3IgZm9yICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiBT ZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX29y OworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfb3Ioc2VsZi4wLCBvdGhlci4w KSkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Qml0QW5kQXNzaWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIGZuIGJpdGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAg ICAgICAgICAgICAqc2VsZiA9ICpzZWxmICYgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbiBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcl9hc3NpZ24oJm11dCBz ZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIHwgb3Ro ZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3Bz OjpCaXRYb3JBc3NpZ24gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gYml0eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAg ICAgICAgICAgICpzZWxmID0gKnNlbGYgXiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAg ICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9v cHNfdmVjdG9yX2JpdHdpc2U+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7 CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3BzX3ZlY3Rvcl9iaXR3aXNlKCkg eworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0gJGlkOjpz cGxhdCghei5leHRyYWN0KDApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb3Q6 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgheiwgbSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISghbSwgeik7CistCistICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQml0QW5kOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAm IG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyAmIHosIHopOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAmIG8sIHopOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiAmIHosIHopOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodCAmIHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEodCAmIG8sIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEobyAmIHQsIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdE9yOgorLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobyB8IG8sIG8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEobyB8IHosIG8pOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoeiB8IG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoeiB8IHosIHopOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo dCB8IHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoeiB8IHQsIHQp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCB8IHosIHQpOworLQorLSAg ICAgICAgICAgICAgICAgICAgICAgIC8vIEJpdFhPUjoKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG8gXiBvLCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHogXiB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHogXiBv LCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gXiB6LCBvKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB0LCB6KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQgXiB6LCB0KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHogXiB0LCB0KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZEFzc2lnbjoKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gbzsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiAmPSB0OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE9yQXNzaWduOgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2IHw9IG87CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWE9SQXNzaWduOgorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB6OworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2IF49IG87CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodiwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvb3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfZmxvYXRfbWluX21heC5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv b3BzL3ZlY3Rvcl9mbG9hdF9taW5fbWF4LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw3NCArMCww IEBACistLy8hIFZlcnRpY2FsIChsYW5lLXdpc2UpIHZlY3RvciBgbWluYCBhbmQgYG1heGAgZm9y IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rv cl9mbG9hdF9taW5fbWF4IHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhw cl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7Cist ICAgICAgICAgICAgLy8vIE1pbmltdW0gb2YgdHdvIHZlY3RvcnMuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1p bmltdW0gdmFsdWUgb2YgZWFjaCBvZgorLSAgICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9y IGxhbmVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtaW4o c2VsZiwgeDogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2 bTo6c2ltZF9mbWluOworLSAgICAgICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfZm1pbihz ZWxmLjAsIHguMCkpIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIE1heGlt dW0gb2YgdHdvIHZlY3RvcnMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFJl dHVybnMgYSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWUgb2YgZWFjaCBv ZgorLSAgICAgICAgICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxhbmVzLgorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtYXgoc2VsZiwgeDogU2VsZikgLT4gU2Vs ZiB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9mbWF4OworLSAgICAg ICAgICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfZm1heChzZWxmLjAsIHguMCkpIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAk dGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICAj W2NmZyhub3QoYW55KAorLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjIzCistICAgICAg ICAgICAgICAgICAgICBhbGwodGFyZ2V0X2FyY2ggPSAibWlwcyIsIHRhcmdldF9lbmRpYW4gPSAi YmlnIiksCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJtaXBzNjQiLAorLSAg ICAgICAgICAgICAgICApKSldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX29wc192 ZWN0b3JfbWluX21heD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBtaW5fbWF4KCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBuID0gY3JhdGU6OiRlbGVtX3R5OjpOQU47CistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IG8gPSAkaWQ6OnNwbGF0KDEuIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQoMi4gYXMgJGVsZW1fdHkpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbSA9IG87IC8vIFsxLiwgMi4sIDEuLCAy LiwgLi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgb24gPSBvOworLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIGkgJSAyID09IDAgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbSA9IG0ucmVwbGFjZShpLCAyLiBhcyAkZWxlbV90eSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvbiA9IG9uLnJlcGxhY2UoaSwgbik7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1pbih0KSwgbyk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1pbihvKSwgbyk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxIShtLm1pbihvKSwgbyk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvLm1pbihtKSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShtLm1pbih0KSwgbSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0Lm1pbihtKSwgbSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShv Lm1heCh0KSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1heChv KSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heChvKSwgbSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLm1heChtKSwgbSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShtLm1heCh0KSwgdCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1heChtKSwgdCk7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxIShvbi5taW4obyksIG8pOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoby5taW4ob24pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG9uLm1heChvKSwgbyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxIShvLm1heChvbiksIG8pOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9p bnRfbWluX21heC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMv dmVjdG9yX2ludF9taW5fbWF4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX2ludF9taW5fbWF4 LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw1NyArMCwwIEBACistLy8hIFZlcnRpY2FsIChsYW5l LXdpc2UpIHZlY3RvciBgbWluYCBhbmQgYG1heGAgZm9yIGludGVnZXIgdmVjdG9ycy4KKy0KKy1t YWNyb19ydWxlcyEgaW1wbF9vcHNfdmVjdG9yX2ludF9taW5fbWF4IHsKKy0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIE1pbmltdW0gb2YgdHdvIHZl Y3RvcnMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFJldHVybnMgYSBuZXcg dmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbmltdW0gdmFsdWUgb2YgZWFjaCBvZgorLSAgICAgICAg ICAgIC8vLyB0aGUgaW5wdXQgdmVjdG9yIGxhbmVzLgorLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgIHB1YiBmbiBtaW4oc2VsZiwgeDogU2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIHNlbGYubHQoeCkuc2VsZWN0KHNlbGYsIHgpCistICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgIC8vLyBNYXhpbXVtIG9mIHR3byB2ZWN0b3JzLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBSZXR1cm5zIGEgbmV3IHZlY3RvciBjb250YWluaW5nIHRoZSBt YXhpbXVtIHZhbHVlIG9mIGVhY2ggb2YKKy0gICAgICAgICAgICAvLy8gdGhlIGlucHV0IHZlY3Rv ciBsYW5lcy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbWF4 KHNlbGYsIHg6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBzZWxmLmd0KHgpLnNl bGVjdChzZWxmLCB4KQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIHRlc3Rf aWYheyR0ZXN0X3R0OgorLSAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9vcHNfdmVjdG9yX21pbl9tYXg+XSB7CistICAgICAgICAgICAgICAgIHVzZSBz dXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAi d2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21f YmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgZm4gbWluX21heCgpIHsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCBvID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCB0ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0KKy0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgbSA9IG87CistICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAy ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtID0gbS5yZXBsYWNlKGksIDIg YXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5taW4odCksIG8pOwor LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1pbihvKSwgbyk7CistICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWluKG8pLCBvKTsKKy0gICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoby5taW4obSksIG8pOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShtLm1pbih0KSwgbSk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWluKG0p LCBtKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5tYXgodCksIHQpOwor LSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0Lm1heChvKSwgdCk7CistICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG0ubWF4KG8pLCBtKTsKKy0gICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEoby5tYXgobSksIG0pOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx IShtLm1heCh0KSwgdCk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQubWF4KG0p LCB0KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL29wcy92ZWN0b3JfbWFza19iaXR3aXNlLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2FwaS9vcHMvdmVjdG9yX21hc2tfYml0d2lzZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs MTE2ICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yLXZlY3RvciBiaXR3 aXNlIG9wZXJhdGlvbnMuCistCistbWFjcm9fcnVsZXMhIGltcGxfb3BzX3ZlY3Rvcl9tYXNrX2Jp dHdpc2UgeworLSAgICAoCistICAgICAgICBbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4 cHJdOgorLSAgICAgICAgJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQgfAorLSAgICAgICAgKCR0cnVl OmV4cHIsICRmYWxzZTpleHByKQorLSAgICApID0+IHsKKy0gICAgICAgIGltcGwgY3JhdGU6Om9w czo6Tm90IGZvciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBub3Qoc2VsZikgLT4gU2VsZiB7Cist ICAgICAgICAgICAgICAgIFNlbGY6OnNwbGF0KCR0cnVlKSBeIHNlbGYKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OkJpdFhvciBmb3IgJGlkIHsK Ky0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gYml0eG9yKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3hvcjsKKy0gICAgICAgICAgICAg ICAgdW5zYWZlIHsgU2ltZChzaW1kX3hvcihzZWxmLjAsIG90aGVyLjApKSB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRBbmQgZm9yICRp ZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGJpdGFuZChzZWxmLCBvdGhlcjogU2VsZikgLT4gU2VsZiB7 CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9hbmQ7CistICAgICAgICAg ICAgICAgIHVuc2FmZSB7IFNpbWQoc2ltZF9hbmQoc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0T3IgZm9y ICRpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSBTZWxmOworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIGJpdG9yKHNlbGYsIG90aGVyOiBTZWxmKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX29yOworLSAgICAgICAg ICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfb3Ioc2VsZi4wLCBvdGhlci4wKSkgfQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgY3JhdGU6Om9wczo6Qml0QW5kQXNz aWduIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGJp dGFuZF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAq c2VsZiA9ICpzZWxmICYgb3RoZXI7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAg ICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRPckFzc2lnbiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBiaXRvcl9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjog U2VsZikgeworLSAgICAgICAgICAgICAgICAqc2VsZiA9ICpzZWxmIHwgb3RoZXI7CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBjcmF0ZTo6b3BzOjpCaXRYb3JBc3Np Z24gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gYml0 eG9yX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVyOiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpz ZWxmID0gKnNlbGYgXiBvdGhlcjsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0 ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9vcHNfdmVjdG9yX21h c2tfYml0d2lzZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICBmbiBvcHNfdmVjdG9yX21hc2tfYml0d2lzZSgpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdCA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnQhKHQgIT0gZik7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0ISghKHQgPT0gZikpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5v dDoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKCF0LCBmKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQsICFmKTsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBCaXRBbmQ6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0 ICYgZiwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICYgdCwgZik7 CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ICYgdCwgdCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmICYgZiwgZik7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gQml0T3I6CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0IHwgZiwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIHwgdCwg dCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IHwgdCwgdCk7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmIHwgZiwgZik7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgLy8gQml0WE9SOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCBeIGYsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiBe IHQsIHQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCBeIHQsIGYpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiBeIGYsIGYpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQW5k QXNzaWduOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBmOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ICY9IHQ7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEodiwgZik7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g T3JBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgfD0gdDsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBYT1JBc3NpZ246CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IGY7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgXj0gdDsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25lZy5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX25lZy5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3Bz L3ZlY3Rvcl9uZWcucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQzICswLDAgQEAKKy0vLyEgVmVy dGljYWwgKGxhbmUtd2lzZSkgdmVjdG9yIGBOZWdgLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29w c192ZWN0b3JfbmVnIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06 ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6 Ok5lZyBmb3IgJGlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IFNlbGY7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbmVnKHNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBTZWxmOjpzcGxhdCgtMSBhcyAkZWxlbV90eSkgKiBzZWxmCistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAgJHRl c3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHVi IG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9uZWc+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwg d2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gbmVnKCkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFz ICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbnogPSAkaWQ6OnNw bGF0KC0oMCBhcyAkZWxlbV90eSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBubyA9 ICRpZDo6c3BsYXQoLSgxIGFzICRlbGVtX3R5KSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG50ID0gJGlkOjpzcGxhdCgtKDIgYXMgJGVsZW1fdHkpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbmYgPSAkaWQ6OnNwbGF0KC0oNCBhcyAkZWxlbV90eSkpOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoLXosIG56KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKC1vLCBubyk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISgtdCwgbnQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoLWYs IG5mKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHosIC1ueik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLCAtbm8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodCwgLW50KTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYsIC1uZik7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3Jv dGF0ZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rv cl9yb3RhdGVzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9vcHMvdmVjdG9yX3JvdGF0ZXMucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDkyICswLDAgQEAKKy0vLyEgVmVydGljYWwgKGxhbmUtd2lzZSkgdmVjdG9y IHJvdGF0ZXMgb3BlcmF0aW9ucy4KKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLW1hY3JvX3J1bGVz ISBpbXBsX29wc192ZWN0b3Jfcm90YXRlcyB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVt X2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkgPT4geworLSAgICAgICAgaW1w bCAkaWQgeworLSAgICAgICAgICAgIC8vLyBTaGlmdHMgdGhlIGJpdHMgb2YgZWFjaCBsYW5lIHRv IHRoZSBsZWZ0IGJ5IHRoZSBzcGVjaWZpZWQKKy0gICAgICAgICAgICAvLy8gYW1vdW50IGluIHRo ZSBjb3JyZXNwb25kaW5nIGxhbmUgb2YgYG5gLCB3cmFwcGluZyB0aGUKKy0gICAgICAgICAgICAv Ly8gdHJ1bmNhdGVkIGJpdHMgdG8gdGhlIGVuZCBvZiB0aGUgcmVzdWx0aW5nIGludGVnZXIuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE5vdGU6IHRoaXMgaXMgbmVpdGhlciB0 aGUgc2FtZSBvcGVyYXRpb24gYXMgYDw8YCBub3IgZXF1aXZhbGVudAorLSAgICAgICAgICAgIC8v LyB0byBgc2xpY2U6OnJvdGF0ZV9sZWZ0YC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gcm90YXRlX2xlZnQoc2VsZiwgbjogJGlkKSAtPiAkaWQgeworLSAgICAg ICAgICAgICAgICBjb25zdCBMQU5FX1dJRFRIOiAkZWxlbV90eSA9CistICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgYXMgJGVsZW1fdHkgKiA4Owor LSAgICAgICAgICAgICAgICAvLyBQcm90ZWN0IGFnYWluc3QgdW5kZWZpbmVkIGJlaGF2aW9yIGZv ciBvdmVyLWxvbmcgYml0IHNoaWZ0cworLSAgICAgICAgICAgICAgICBsZXQgbiA9IG4gJSBMQU5F X1dJRFRIOworLSAgICAgICAgICAgICAgICAoc2VsZiA8PCBuKSB8IChzZWxmID4+ICgoTEFORV9X SURUSCAtIG4pICUgTEFORV9XSURUSCkpCistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg IC8vLyBTaGlmdHMgdGhlIGJpdHMgb2YgZWFjaCBsYW5lIHRvIHRoZSByaWdodCBieSB0aGUgc3Bl Y2lmaWVkCistICAgICAgICAgICAgLy8vIGFtb3VudCBpbiB0aGUgY29ycmVzcG9uZGluZyBsYW5l IG9mIGBuYCwgd3JhcHBpbmcgdGhlCistICAgICAgICAgICAgLy8vIHRydW5jYXRlZCBiaXRzIHRv IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJlc3VsdGluZyBpbnRlZ2VyLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBOb3RlOiB0aGlzIGlzIG5laXRoZXIgdGhlIHNhbWUgb3BlcmF0 aW9uIGFzIGA+PmAgbm9yIGVxdWl2YWxlbnQKKy0gICAgICAgICAgICAvLy8gdG8gYHNsaWNlOjpy b3RhdGVfcmlnaHRgLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBm biByb3RhdGVfcmlnaHQoc2VsZiwgbjogJGlkKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICBj b25zdCBMQU5FX1dJRFRIOiAkZWxlbV90eSA9CistICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6 bWVtOjpzaXplX29mOjo8JGVsZW1fdHk+KCkgYXMgJGVsZW1fdHkgKiA4OworLSAgICAgICAgICAg ICAgICAvLyBQcm90ZWN0IGFnYWluc3QgdW5kZWZpbmVkIGJlaGF2aW9yIGZvciBvdmVyLWxvbmcg Yml0IHNoaWZ0cworLSAgICAgICAgICAgICAgICBsZXQgbiA9IG4gJSBMQU5FX1dJRFRIOworLSAg ICAgICAgICAgICAgICAoc2VsZiA+PiBuKSB8IChzZWxmIDw8ICgoTEFORV9XSURUSCAtIG4pICUg TEFORV9XSURUSCkpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVz dF9pZiF7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0h IHsKKy0gICAgICAgICAgICAgICAgLy8gRklYTUU6CistICAgICAgICAgICAgICAgIC8vIGh0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvNzUKKy0g ICAgICAgICAgICAgICAgI1tjZmcobm90KGFueSgKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdl dF9hcmNoID0gInMzOTB4IiwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gInNw YXJjNjQiLAorLSAgICAgICAgICAgICAgICApKSldCistICAgICAgICAgICAgICAgIHB1YiBtb2Qg WzwkaWQgX29wc192ZWN0b3Jfcm90YXRlPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1 cGVyOjoqOworLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdh c21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRf YXJjaCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAgICAgICAgICAgICAgLy9+XiBGSVhNRTogaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9wYWNrZWRfc2ltZC9pc3N1ZXMvMzE3CistICAgICAg ICAgICAgICAgICAgICBmbiByb3RhdGVfb3BzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBmID0gJGlkOjpzcGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbWF4ID0gJGlkOjpzcGxhdCgKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG1lbTo6c2l6ZV9vZjo6PCRlbGVtX3R5PigpICogOCAtIDEpIGFzICRl bGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyByb3RhdGVfcmlnaHQKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHoucm90YXRlX3JpZ2h0KHopLCB6KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHoucm90YXRlX3JpZ2h0KG8pLCB6 KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHoucm90YXRlX3JpZ2h0KHQp LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8ucm90YXRlX3Jp Z2h0KHopLCBvKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRl X3JpZ2h0KHopLCB0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90 YXRlX3JpZ2h0KHopLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYu cm90YXRlX3JpZ2h0KG1heCksIGYgPDwgMSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxIShvLnJvdGF0ZV9yaWdodChvKSwgbyA8PCBtYXgpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfcmlnaHQobyksIG8pOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEodC5yb3RhdGVfcmlnaHQodCksIG8gPDwgbWF4KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX3JpZ2h0KG8pLCB0KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYucm90YXRlX3JpZ2h0KHQpLCBv KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyByb3RhdGVfbGVmdAorLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoei5yb3RhdGVfbGVmdCh6KSwgeik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0KHopLCBvKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRlX2xlZnQoeiksIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZi5yb3RhdGVfbGVmdCh6KSwgZik7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmLnJvdGF0ZV9sZWZ0KG1heCksIHQp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoby5yb3RhdGVfbGVmdChv KSwgdCk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShvLnJvdGF0ZV9sZWZ0 KHQpLCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHQucm90YXRlX2xl ZnQobyksIGYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMgYi90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvb3BzL3ZlY3Rvcl9zaGlmdHMucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvYXBpL29wcy92ZWN0b3Jfc2hpZnRzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwx MDYgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCAobGFuZS13aXNlKSB2ZWN0b3ItdmVjdG9yIHNoaWZ0 cyBvcGVyYXRpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX29wc192ZWN0b3Jfc2hpZnRzIHsK Ky0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0 ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNobDwkaWQ+IGZvciAk aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICBmbiBzaGwoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2hsOworLSAgICAgICAgICAg ICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfc2hsKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNocjwkaWQ+IGZv ciAkaWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gU2VsZjsKKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBzaHIoc2VsZiwgb3RoZXI6IFNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2hyOworLSAgICAgICAg ICAgICAgICB1bnNhZmUgeyBTaW1kKHNpbWRfc2hyKHNlbGYuMCwgb3RoZXIuMCkpIH0KKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIGNyYXRlOjpvcHM6OlNobEFzc2ln bjwkaWQ+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu IHNobF9hc3NpZ24oJm11dCBzZWxmLCBvdGhlcjogU2VsZikgeworLSAgICAgICAgICAgICAgICAq c2VsZiA9ICpzZWxmIDw8IG90aGVyOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg ICAgIGltcGwgY3JhdGU6Om9wczo6U2hyQXNzaWduPCRpZD4gZm9yICRpZCB7CistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2hyX2Fzc2lnbigmbXV0IHNlbGYsIG90aGVy OiBTZWxmKSB7CistICAgICAgICAgICAgICAgICpzZWxmID0gKnNlbGYgPj4gb3RoZXI7CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgdGVzdF9pZiF7CistICAgICAgICAgICAg JHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAg cHViIG1vZCBbPCRpZCBfb3BzX3ZlY3Rvcl9zaGlmdHM+XSB7CistICAgICAgICAgICAgICAgICAg ICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0 cihhbnkodGFyZ2V0X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0IiksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93KHVucmVhY2hhYmxlX2NvZGUsIHVu dXNlZF92YXJpYWJsZXMpCistICAgICAgICAgICAgICAgICAgICApXQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAg ICAgICAgICAvL35eIEZJWE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3BhY2tlZF9z aW1kL2lzc3Vlcy8zMTcKKy0gICAgICAgICAgICAgICAgICAgIGZuIG9wc192ZWN0b3Jfc2hpZnRz KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB6ID0gJGlkOjpzcGxhdCgwIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbyA9ICRpZDo6c3BsYXQoMSBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSAkaWQ6OnNwbGF0 KDIgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gJGlkOjpz cGxhdCg0IGFzICRlbGVtX3R5KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWF4 ID0kaWQ6OnNwbGF0KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtOjpzaXplX29m Ojo8JGVsZW1fdHk+KCkgKiA4IC0gMSkgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAg ICAgICApOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNocgorLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydF9lcSEoeiA+PiB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHogPj4gbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0X2VxISh6ID4+IHQsIHopOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiA+PiB0LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyhhbnkodGFyZ2V0 X2FyY2ggPSAiczM5MHgiLCB0YXJnZXRfYXJjaCA9ICJzcGFyYzY0IikpXSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBydXN0IHByb2R1Y2VzIGJhZCBjb2RlZ2VuIGZv ciBzaGlmdHM6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTMKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPj4geiwgbyk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0ID4+IHosIHQpOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiB6LCBmKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKGYgPj4gbWF4LCB6KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKG8gPj4gbywgeik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx ISh0ID4+IG8sIG8pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodCA+PiB0 LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPj4gbywgdCk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShmID4+IHQsIG8pOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA+PiBtYXgsIHopOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHNobAorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo eiA8PCB6LCB6KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgeiwg byk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0IDw8IHosIHQpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZiA8PCB6LCBmKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKGYgPDwgbWF4LCB6KTsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKG8gPDwgbywgdCk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxIShvIDw8IHQsIGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodCA8PCBvLCBmKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIHNocl9hc3NpZ24KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB2ID0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA+ Pj0gbzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LCB6KTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaGxfYXNzaWduCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgdiA9IG87CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHYgPDw9IG87CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodiwgdCk7 CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3B0ci5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvcHRyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0ICswLDAgQEAKKy0vLyEgVmVjdG9yIG9m IHBvaW50ZXJzCistCistI1ttYWNyb191c2VdCistbW9kIGdhdGhlcl9zY2F0dGVyOworZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3Nj YXR0ZXIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcHRyL2dhdGhl cl9zY2F0dGVyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9wdHIvZ2F0aGVyX3NjYXR0ZXIucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDIxNiArMCwwIEBACistLy8hIEltcGxlbWVudHMgbWFza2VkIGdhdGhlciBh bmQgc2NhdHRlcnMgZm9yIHZlY3RvcnMgb2YgcG9pbnRlcnMKKy0KKy1tYWNyb19ydWxlcyEgaW1w bF9wdHJfcmVhZCB7CistICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6 aWRlbnQsICRtYXNrX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAg ICBpbXBsPFQ+ICRpZDxUPgorLSAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICBbVDsgJGVsZW1f Y291bnRdOiBzZWFsZWQ6OlNpbWRBcnJheSwKKy0gICAgICAgIHsKKy0gICAgICAgICAgICAvLy8g UmVhZHMgc2VsZWN0ZWQgdmVjdG9yIGVsZW1lbnRzIGZyb20gbWVtb3J5LgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9yIGJ5IHJlYWRp bmcgdGhlIHZhbHVlcyBmcm9tIGBzZWxmYCBmb3IKKy0gICAgICAgICAgICAvLy8gdGhvc2UgbGFu ZXMgd2hvc2UgYG1hc2tgIGlzIGB0cnVlYCwgYW5kIHVzaW5nIHRoZSBlbGVtZW50cyBvZgorLSAg ICAgICAgICAgIC8vLyBgdmFsdWVgIG90aGVyd2lzZS4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gTm8gbWVtb3J5IGlzIGFjY2Vzc2VkIGZvciB0aG9zZSBsYW5lcyBvZiBgc2Vs ZmAgd2hvc2UgYG1hc2tgIGlzCistICAgICAgICAgICAgLy8vIGBmYWxzZWAuCistICAgICAgICAg ICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAg ICAgICAgICAgLy8vIFRoaXMgbWV0aG9kIGlzIHVuc2FmZSBiZWNhdXNlIGl0IGRlcmVmZXJlbmNl cyByYXcgcG9pbnRlcnMuIFRoZQorLSAgICAgICAgICAgIC8vLyBwb2ludGVycyBtdXN0IGJlIGFs aWduZWQgdG8gYG1lbTo6YWxpZ25fb2Y6OjxUPigpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICBwdWIgdW5zYWZlIGZuIHJlYWQ8TT4oCistICAgICAgICAgICAgICAgIHNl bGYsCistICAgICAgICAgICAgICAgIG1hc2s6IFNpbWQ8W007ICRlbGVtX2NvdW50XT4sCistICAg ICAgICAgICAgICAgIHZhbHVlOiBTaW1kPFtUOyAkZWxlbV9jb3VudF0+LAorLSAgICAgICAgICAg ICkgLT4gU2ltZDxbVDsgJGVsZW1fY291bnRdPgorLSAgICAgICAgICAgIHdoZXJlCistICAgICAg ICAgICAgICAgIE06IHNlYWxlZDo6TWFzaywKKy0gICAgICAgICAgICAgICAgW007ICRlbGVtX2Nv dW50XTogc2VhbGVkOjpTaW1kQXJyYXksCistICAgICAgICAgICAgeworLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfZ2F0aGVyOworLSAgICAgICAgICAgICAgICBTaW1kKHNp bWRfZ2F0aGVyKHZhbHVlLjAsIHNlbGYuMCwgbWFzay4wKSkKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6Cist ICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgbW9kIFs8JGlkIF9y ZWFkPl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAg ICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgZm4gcmVhZCgpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSBbMF9pMzI7ICRlbGVtX2NvdW50XTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kZWxlbV9jb3VudCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZbaV0gPSBpIGFzIGkzMjsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBwdHIgPSAkaWQ6 OjxpMzI+OjpudWxsKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u JGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIgPSBwdHIucmVw bGFjZShpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnZbaV0gYXMgKmNvbnN0 IGkzMiBhcyAqbXV0IGkzMgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGwg bWFzayBlbGVtZW50cyBhcmUgdHJ1ZToKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFz ayA9ICRtYXNrX3R5OjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQg ZGVmID0gU2ltZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OnNwbGF0KDQyX2kzMik7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHI6IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9IHVuc2Fm ZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRlZikKKy0g ICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNpbWQ6OjxbaTMyOyAkZWxlbV9jb3VudF0+Ojpmcm9tX3NsaWNlX3VuYWxp Z25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAgICAgICApOworLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbWFzayA9IG1hc2s7CistICAgICAgICAgICAgICAg ICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiBpICUgMiAhPSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1hc2sgPSBtYXNrLnJlcGxhY2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGV2ZW4gbWFzayBlbGVtZW50cyBhcmUgdHJ1ZSwgb2RkIG9uZXMgYXJlIGZhbHNl OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByOiBTaW1kPFtpMzI7ICRlbGVtX2NvdW50 XT4gPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIucmVhZChtYXNr LCBkZWYpCistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGUgPSB2OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0g MCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlW2ldID0gNDI7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2ltZDo6PFtpMzI7ICRlbGVt X2NvdW50XT46OmZyb21fc2xpY2VfdW5hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAg ICAgICAgICAgICAgICk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWxsIG1hc2sg ZWxlbWVudHMgYXJlIGZhbHNlOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXNrID0g JG1hc2tfdHk6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVm ID0gU2ltZDo6PFtpMzI7ICRlbGVtX2NvdW50XT46OnNwbGF0KDQyX2kzMik7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHI6IFNpbWQ8W2kzMjsgJGVsZW1fY291bnRdPiA9IHVuc2FmZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ci5yZWFkKG1hc2ssIGRlZikgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHIsIGRlZik7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVz ISBpbXBsX3B0cl93cml0ZSB7CistICAgIChbJGVsZW1fdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJd OiAkaWQ6aWRlbnQsICRtYXNrX3R5OmlkZW50CistICAgICB8ICR0ZXN0X3R0OnR0KSA9PiB7Cist ICAgICAgICBpbXBsPFQ+ICRpZDxUPgorLSAgICAgICAgd2hlcmUKKy0gICAgICAgICAgICBbVDsg JGVsZW1fY291bnRdOiBzZWFsZWQ6OlNpbWRBcnJheSwKKy0gICAgICAgIHsKKy0gICAgICAgICAg ICAvLy8gV3JpdGVzIHNlbGVjdGVkIHZlY3RvciBlbGVtZW50cyB0byBtZW1vcnkuCistICAgICAg ICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFdyaXRlcyB0aGUgbGFuZXMgb2YgYHZhbHVlc2Ag Zm9yIHdoaWNoIHRoZSBtYXNrIGlzIGB0cnVlYCB0bworLSAgICAgICAgICAgIC8vLyB0aGVpciBj b3JyZXNwb25kaW5nIG1lbW9yeSBhZGRyZXNzZXMgaW4gYHNlbGZgLgorLSAgICAgICAgICAgIC8v LworLSAgICAgICAgICAgIC8vLyBObyBtZW1vcnkgaXMgYWNjZXNzZWQgZm9yIHRob3NlIGxhbmVz IG9mIGBzZWxmYCB3aG9zZSBgbWFza2AgaXMKKy0gICAgICAgICAgICAvLy8gYGZhbHNlYC4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gT3ZlcmxhcHBpbmcgbWVtb3J5IGFkZHJl c3NlcyBvZiBgc2VsZmAgYXJlIHdyaXR0ZW4gdG8gaW4gb3JkZXIKKy0gICAgICAgICAgICAvLy8g ZnJvbSB0aGUgbGVzdC1zaWduaWZpY2FudCB0byB0aGUgbW9zdC1zaWduaWZpY2FudCBlbGVtZW50 LgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFNhZmV0eQorLSAgICAgICAg ICAgIC8vLworLSAgICAgICAgICAgIC8vLyBUaGlzIG1ldGhvZCBpcyB1bnNhZmUgYmVjYXVzZSBp dCBkZXJlZmVyZW5jZXMgcmF3IHBvaW50ZXJzLiBUaGUKKy0gICAgICAgICAgICAvLy8gcG9pbnRl cnMgbXVzdCBiZSBhbGlnbmVkIHRvIGBtZW06OmFsaWduX29mOjo8VD4oKWAuCistICAgICAgICAg ICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBmbiB3cml0ZTxNPihzZWxmLCBt YXNrOiBTaW1kPFtNOyAkZWxlbV9jb3VudF0+LCB2YWx1ZTogU2ltZDxbVDsgJGVsZW1fY291bnRd PikKKy0gICAgICAgICAgICB3aGVyZQorLSAgICAgICAgICAgICAgICBNOiBzZWFsZWQ6Ok1hc2ss CistICAgICAgICAgICAgICAgIFtNOyAkZWxlbV9jb3VudF06IHNlYWxlZDo6U2ltZEFycmF5LAor LSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3Nj YXR0ZXI7CistICAgICAgICAgICAgICAgIHNpbWRfc2NhdHRlcih2YWx1ZS4wLCBzZWxmLjAsIG1h c2suMCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7 CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0g ICAgICAgICAgICAgICAgbW9kIFs8JGlkIF93cml0ZT5dIHsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAg ICAgICAgICAgIGZuIHdyaXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvcnR5 X3R3byA9IFs0MiwgNDIsIDQyLCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZv cnR5X3R3bworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFNpbWQ6OjxbaTMyOyAkZWxl bV9jb3VudF0+OjpzcGxhdCg0Ml9pMzIpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIC8v IFRoaXMgdGVzdCB3aWxsIHdyaXRlIHRvIHRoaXMgYXJyYXkKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgbXV0IGFyciA9IFswX2kzMjsgJGVsZW1fY291bnRdOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXJyW2ldID0gaSBhcyBpMzI7CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFyciA9IFswLCAxLCAyLCAuLi5dCistCistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBwdHIgPSAkaWQ6OjxpMzI+OjpudWxsKCk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwdHIgPSBwdHIucmVwbGFjZShpLCB1bnNhZmUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyLmFzX3B0cigpLmFkZChpKSBhcyAqbXV0 IGkzMgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHRyID0gWyZhcnJbMF0sICZh cnJbMV0sIC4uLl0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB3cml0ZSBgZm9ydHlf dHdvYCB0byBhbGwgZWxlbWVudHMgb2YgYHZgCistICAgICAgICAgICAgICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmFja3VwID0gYXJyOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHRyLndyaXRlKCRtYXNrX3R5OjpzcGxhdCh0cnVlKSwgZm9ydHlfdHdvKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKGFyciwgWzQyX2kzMjsgJGVsZW1fY291bnRdKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJyID0gYmFja3VwOyAgLy8gYXJyID0gWzAsIDEsIDIsIC4uLl0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gd3Jp dGUgNDIgdG8gZXZlbiBlbGVtZW50cyBvZiBhcnI6CistICAgICAgICAgICAgICAgICAgICAgICAg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzZXQgb2RkIGVsZW1lbnRzIG9mIHRo ZSBtYXNrIHRvIGZhbHNlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbWFz ayA9ICRtYXNrX3R5OjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGkgaW4gMC4uJGVsZW1fY291bnQgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaSAlIDIgIT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bWFzayA9IG1hc2sucmVwbGFjZShpLCBmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgLy8gbWFzayA9IFt0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIC4uLl0K Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXhwZWN0ZWQgcmVzdWx0IHIgPSBb NDIsIDEsIDQyLCAzLCA0MiwgNSwgLi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbXV0IHIgPSBhcnI7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAu LiRlbGVtX2NvdW50IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgJSAy ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbaV0gPSA0MjsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYmFja3VwID0g YXJyOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeyBwdHIud3JpdGUobWFz aywgZm9ydHlfdHdvKSB9OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KGFyciwgcik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyciA9IGJhY2t1cDsgIC8v IGFyciA9IFswLCAxLCAyLCAzLCAuLi5dCistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdyaXRlIDQyIHRvIG5vIGVsZW1lbnRzIG9mIGFy cgorLSAgICAgICAgICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IGJhY2t1cCA9IGFycjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ci53cml0ZSgkbWFza190eTo6 c3BsYXQoZmFsc2UpLCBmb3J0eV90d28pCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYXJyLCBiYWNrdXApOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlv bnMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTIgKzAs MCBAQAorLS8vISBSZWR1Y3Rpb25zCistCistI1ttYWNyb191c2VdCistbW9kIGZsb2F0X2FyaXRo bWV0aWM7CistI1ttYWNyb191c2VdCistbW9kIGludGVnZXJfYXJpdGhtZXRpYzsKKy0jW21hY3Jv X3VzZV0KKy1tb2QgYml0d2lzZTsKKy0jW21hY3JvX3VzZV0KKy1tb2QgbWFzazsKKy0jW21hY3Jv X3VzZV0KKy1tb2QgbWluX21heDsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9iaXR3aXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvYml0d2lzZS5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVk dWN0aW9ucy9iaXR3aXNlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNTEgKzAsMCBAQAorLS8v ISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgYml0d2lzZSB2ZWN0b3IgcmVkdWN0aW9u cy4KKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVjdGlvbl9i aXR3aXNlIHsKKy0gICAgKAorLSAgICAgICAgWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpl eHByXToKKy0gICAgICAgICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudCB8ICR0ZXN0X3R0OnR0 IHwKKy0gICAgICAgICgkY29udmVydDpleHByKSB8CistICAgICAgICAoJHRydWU6ZXhwciwgJGZh bHNlOmV4cHIpCistICAgICkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAg IC8vLyBMYW5lLXdpc2UgYml0d2lzZSBgYW5kYCBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAg ICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBOb3RlOiBpZiB0aGUgdmVjdG9yIGhhcyBv bmUgbGFuZSwgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlCistICAgICAgICAgICAgLy8vIHZlY3Rv ciBpcyByZXR1cm5lZC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIg Zm4gYW5kKHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRh cmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAg ICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYW5kOworLSAgICAgICAgICAg ICAgICAgICAgbGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7IHNpbWRfcmVkdWNlX2FuZChzZWxm LjApIH07CistICAgICAgICAgICAgICAgICAgICAkY29udmVydChyKQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0g ICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBv biBhYXJjaDY0CistICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAg ICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAg ICAgIHggJj0gc2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBMYW5lLXdpc2UgYml0d2lzZSBgb3JgIG9mIHRo ZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIE5v dGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUK Ky0gICAgICAgICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVkLgorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBvcihzZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAg ICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IikpXQorLSAgICAgICAg ICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVk dWNlX29yOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHI6ICRpZWxlbV90eSA9IHVuc2FmZSB7 IHNpbWRfcmVkdWNlX29yKHNlbGYuMCkgfTsKKy0gICAgICAgICAgICAgICAgICAgICRjb252ZXJ0 KHIpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2Fy Y2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAg ICAvLyBGSVhNRTogYnJva2VuIG9uIGFhcmNoNjQKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUK Ky0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxl bV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgeCB8PSBzZWxmLmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7 CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB4CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIExhbmUtd2lz ZSBiaXR3aXNlIGB4b3JgIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8v CistICAgICAgICAgICAgLy8vIE5vdGU6IGlmIHRoZSB2ZWN0b3IgaGFzIG9uZSBsYW5lLCB0aGUg Zmlyc3QgZWxlbWVudCBvZiB0aGUKKy0gICAgICAgICAgICAvLy8gdmVjdG9yIGlzIHJldHVybmVk LgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB4b3Ioc2VsZikg LT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAi YWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNl IGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV94b3I7CistICAgICAgICAgICAgICAgICAgICBsZXQg cjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfeG9yKHNlbGYuMCkgfTsKKy0gICAg ICAgICAgICAgICAgICAgICRjb252ZXJ0KHIpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLSAgICAgICAgICAgICAg ICB7CistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogYnJva2VuIG9uIGFhcmNoNjQKKy0g ICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2Vy eS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTUKKy0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9 IHNlbGYuZXh0cmFjdCgwKSBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgeCBePSBzZWxm LmV4dHJhY3QoaSkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistCistICAgICAgICB0ZXN0X2lmIXsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0g ICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlk IF9yZWR1Y3Rpb25fYml0d2lzZT5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6 KjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0g Indhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBhbmQoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkZmFsc2UpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYuYW5kKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LmFuZCgpLCAkdHJ1 ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ID0gJGlkOjpzcGxhdCgkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHYgPSB2LnJlcGxhY2UoMCwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYuYW5kKCksICRmYWxzZSk7CistCistICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwg dGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gb3IoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KCRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2Lm9yKCksICRmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IHYgPSAkaWQ6OnNwbGF0KCR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYub3IoKSwgJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g JGlkOjpzcGxhdCgkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5y ZXBsYWNlKDAsICR0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYu b3IoKSwgJHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxh dCgkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwg JGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm9yKCksICR0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYub3IoKSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgZm4geG9yKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpz cGxhdCgkZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3Io KSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQo JHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICRmYWxzZSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X2VxISh2LnhvcigpLCAkdHJ1ZSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgkZmFs c2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICR0cnVl KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYueG9yKCksICR0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoJHRydWUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdi5yZXBsYWNlKDAsICRmYWxzZSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi54b3IoKSwgJHRydWUpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dF9lcSEodi54b3IoKSwgJGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9mbG9hdF9hcml0aG1ldGlj LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFj a2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25zL2Zsb2F0X2FyaXRobWV0aWMucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDMxMyArMCwwIEBACistLy8hIEltcGxlbWVudHMgcG9ydGFibGUgaG9yaXpv bnRhbCBmbG9hdCB2ZWN0b3IgYXJpdGhtZXRpYyByZWR1Y3Rpb25zLgorLQorLW1hY3JvX3J1bGVz ISBpbXBsX3JlZHVjdGlvbl9mbG9hdF9hcml0aG1ldGljIHsKKy0gICAgKFskZWxlbV90eTppZGVu dDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAg ICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEhvcml6b250YWwgc3VtIG9mIHRoZSB2 ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBp bnRyaW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVjdG9yIGVsZW1lbnRz LgorLSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50IHZlY3RvcjoKKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gPiAoKHgwICsgeDEpICsgKHgyICsgeDMp KSArICgoeDQgKyB4NSkgKyAoeDYgKyB4NykpCistICAgICAgICAgICAgLy8vCistICAgICAgICAg ICAgLy8vIElmIG9uZSBvZiB0aGUgdmVjdG9yIGVsZW1lbnQgaXMgYE5hTmAgdGhlIHJlZHVjdGlv biByZXR1cm5zCistICAgICAgICAgICAgLy8vIGBOYU5gLiBUaGUgcmVzdWx0aW5nIGBOYU5gIGlz IG5vdCByZXF1aXJlZCB0byBiZSBlcXVhbCB0byBhbnkKKy0gICAgICAgICAgICAvLy8gb2YgdGhl IGBOYU5gcyBpbiB0aGUgdmVjdG9yLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHB1YiBmbiBzdW0oc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAg ICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9hZGRfb3JkZXJl ZDsKKy0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IHNpbWRfcmVkdWNlX2FkZF9vcmRlcmVk KHNlbGYuMCwgMCBhcyAkZWxlbV90eSkgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAgICAg eworLSAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0CistICAg ICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkv cGFja2VkX3NpbWQvaXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBz ZWxmLmV4dHJhY3QoMCkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAxLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggKz0gc2VsZi5l eHRyYWN0KGkpIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgeAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgIC8vLyBIb3Jpem9udGFsIHByb2R1Y3Qgb2YgdGhlIHZlY3RvciBlbGVtZW50cy4K Ky0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gVGhlIGludHJpbnNpYyBwZXJmb3Jt cyBhIHRyZWUtcmVkdWN0aW9uIG9mIHRoZSB2ZWN0b3IgZWxlbWVudHMuCistICAgICAgICAgICAg Ly8vIFRoYXQgaXMsIGZvciBhbiA4IGVsZW1lbnQgdmVjdG9yOgorLSAgICAgICAgICAgIC8vLwor LSAgICAgICAgICAgIC8vLyA+ICgoeDAgKiB4MSkgKiAoeDIgKiB4MykpICogKCh4NCAqIHg1KSAq ICh4NiAqIHg3KSkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgb25lIG9m IHRoZSB2ZWN0b3IgZWxlbWVudCBpcyBgTmFOYCB0aGUgcmVkdWN0aW9uIHJldHVybnMKKy0gICAg ICAgICAgICAvLy8gYE5hTmAuIFRoZSByZXN1bHRpbmcgYE5hTmAgaXMgbm90IHJlcXVpcmVkIHRv IGJlIGVxdWFsIHRvIGFueQorLSAgICAgICAgICAgIC8vLyBvZiB0aGUgYE5hTmBzIGluIHRoZSB2 ZWN0b3IuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHByb2R1 Y3Qoc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0 X2FyY2ggPSAiYWFyY2g2NCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjpsbHZtOjpzaW1kX3JlZHVjZV9tdWxfb3JkZXJlZDsKKy0gICAgICAg ICAgICAgICAgICAgIHVuc2FmZSB7IHNpbWRfcmVkdWNlX211bF9vcmRlcmVkKHNlbGYuMCwgMSBh cyAkZWxlbV90eSkgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBBQXJjaDY0CistICAgICAgICAgICAgICAg ICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQv aXNzdWVzLzE1CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHggPSBzZWxmLmV4dHJhY3Qo MCkgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAxLi4kaWQ6Omxh bmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHggKj0gc2VsZi5leHRyYWN0KGkpIGFz ICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg eAorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAg ICAgICAgaW1wbCBjcmF0ZTo6aXRlcjo6U3VtIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJGlkPj4oaXRlcjog SSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgaXRlci5mb2xkKCRpZDo6c3BsYXQoMC4pLCBj cmF0ZTo6b3BzOjpBZGQ6OmFkZCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAg ICAgICBpbXBsIGNyYXRlOjppdGVyOjpQcm9kdWN0IGZvciAkaWQgeworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+ KGl0ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0 KDEuKSwgY3JhdGU6Om9wczo6TXVsOjptdWwpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LQorLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6Oml0ZXI6OlN1bTwmJ2EgJGlkPiBmb3IgJGlkIHsK Ky0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8 SXRlbSA9ICYnYSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQgeworLSAgICAgICAgICAgICAgICBpdGVy LmZvbGQoJGlkOjpzcGxhdCgwLiksIHxhLCBifCBjcmF0ZTo6b3BzOjpBZGQ6OmFkZChhLCAqYikp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDwnYT4gY3JhdGU6 Oml0ZXI6OlByb2R1Y3Q8JidhICRpZD4gZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gcHJvZHVjdDxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRpZD4+KGl0 ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDEu KSwgfGEsIGJ8IGNyYXRlOjpvcHM6Ok11bDo6bXVsKGEsICpiKSkKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistCistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6 CistICAgICAgICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgLy8gQ29tcGFy aXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCistICAgICAg ICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICAgICAgICAgICAgICBw dWIgbW9kIFs8JGlkIF9yZWR1Y3Rpb25fZmxvYXRfYXJpdGg+XSB7CistICAgICAgICAgICAgICAg ICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICBmbiBhbHRlcm5hdGluZyh4 OiB1c2l6ZSkgLT4gJGlkIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAk aWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBp IGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkg JSB4ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFj ZShpLCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB2CistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5v dCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAj W2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIHN1bSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LnN1bSgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnN1bSgpLCAkaWQ6OmxhbmVzKCkgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gYWx0ZXJuYXRpbmcoMik7CistICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgdi5zdW0oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRpZDo6bGFuZXMo KSAvIDIgKyAkaWQ6OmxhbmVzKCkpIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gcHJvZHVjdCgpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgdiA9ICRpZDo6c3BsYXQoMCBhcyAkZWxlbV90eSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2LnByb2R1Y3QoKSwgMCBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodi5wcm9kdWN0KCksIDEgYXMg JGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmID0gbWF0Y2ggJGlkOjps YW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNjQgPT4gMTYsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDMyID0+IDgsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDE2ID0+IDQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4gMiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0g YWx0ZXJuYXRpbmcoZik7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5wcm9kdWN0KCksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgyX3VzaXplLnBvdygoJGlkOjpsYW5lcygpIC8gZikgYXMgdTMyKQorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgJGVsZW1fdHkpCistICAgICAgICAgICAgICAg ICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAg ICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9i aW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnJlYWNoYWJsZV9j b2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHN1bV9uYW4oKSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MzY3MzIKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzYKKy0gICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm47CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG4wID0gY3Jh dGU6OiRlbGVtX3R5OjpOQU47CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYwID0gJGlk OjpzcGxhdCgtMy4wKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6 OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSB2MC5y ZXBsYWNlKGksIG4wKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZl Y3RvciBjb250YWlucyBhIE5hTiB0aGUgcmVzdWx0IGlzIE5hTjoKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYu c3VtKCkuaXNfbmFuKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFuIGF0 IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5zdW0oKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4wKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5zdW0oKS5pc19uYW4oKSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KG4wKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBhc3NlcnQhKHYuc3VtKCkuaXNfbmFuKCksICJhbGwgbmFucyB8IHs6P30iLCB2 KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rl c3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1thbGxvdyh1bnJlYWNoYWJsZV9jb2RlKV0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIHByb2R1Y3RfbmFuKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTM2 NzMyCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy82CistICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuMCA9IGNyYXRlOjok ZWxlbV90eTo6TkFOOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2MCA9ICRpZDo6c3Bs YXQoLTMuMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5l cygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gdjAucmVwbGFj ZShpLCBuMCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3Ig Y29udGFpbnMgYSBOYU4gdGhlIHJlc3VsdCBpcyBOYU46CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnByb2R1 Y3QoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW4gYXQg e30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LnByb2R1Y3QoKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4wKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5wcm9kdWN0KCkuaXNfbmFuKCkpOworLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdChuMCk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2LnByb2R1Y3QoKS5pc19uYW4oKSwgImFsbCBuYW5z IHwgezo/fSIsIHYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2FsbG93KHVudXNlZCwgZGVh ZF9jb2RlKV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHN1bV9yb3VuZG9mZigpIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAvLyBQZXJmb3JtcyBhIHRyZWUtcmVkdWN0aW9uCistICAgICAg ICAgICAgICAgICAgICAgICAgZm4gdHJlZV9yZWR1Y2Vfc3VtKGE6ICZbJGVsZW1fdHldKSAtPiAk ZWxlbV90eSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEuaXNfZW1w dHkoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGEubGVuKCkgPT0gMSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzBdCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSBpZiBhLmxlbigpID09IDIgeworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYVswXSArIGFbMV0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaWQgPSBhLmxlbigp IC8gMjsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCAobGVmdCwgcmlnaHQp ID0gYS5zcGxpdF9hdChtaWQpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJl ZV9yZWR1Y2Vfc3VtKGxlZnQpICsgdHJlZV9yZWR1Y2Vfc3VtKHJpZ2h0KQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGxldCBtdXQgc3RhcnQgPSBjcmF0ZTo6JGVsZW1fdHk6OkVQU0lM T047CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBzY2FsYXJfcmVkdWN0aW9uID0g MC4gYXMgJGVsZW1fdHk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0g JGlkOjpzcGxhdCgwLiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9y IGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IGMgPSBpZiBpICUgMiA9PSAwIHsgMWUzIH0gZWxzZSB7IC0xLiB9OworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGFydCAqPSA6OmNvcmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJICogYzsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX3JlZHVjdGlvbiArPSBzdGFydDsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCBzdGFydCk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBz aW1kX3JlZHVjdGlvbiA9IHYuc3VtKCk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBhID0gWzAuIGFzICRlbGVtX3R5OyAkaWQ6OmxhbmVzKCldOworLSAgICAgICAgICAgICAg ICAgICAgICAgIHYud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgYSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHRyZWVfcmVkdWN0aW9uID0gdHJlZV9yZWR1Y2Vfc3VtKCZhKTsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0b2xlcmF0ZSAxIFVMUCBkaWZmZXJlbmNl OgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWRfYml0cyA9IHNpbWRfcmVkdWN0aW9u LnRvX2JpdHMoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJlZV9iaXRzID0gdHJl ZV9yZWR1Y3Rpb24udG9fYml0cygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEo CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlZF9iaXRzID4gdHJlZV9iaXRzIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZF9iaXRzIC0gdHJlZV9iaXRzCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0cmVlX2JpdHMgLSByZWRfYml0cworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IDwgMiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcjogezo/ fSB8IHNpbWRfcmVkdWN0aW9uOiB7Oj99IHwgXAorLXRyZWVfcmVkdWN0aW9uOiB7fSB8IHNjYWxh cl9yZWR1Y3Rpb246IHt9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2ltZF9yZWR1Y3Rpb24sCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRyZWVfcmVkdWN0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2FsYXJfcmVkdWN0aW9uCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAg ICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRh cmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAg ICAgICAgICAgICAgICAgI1thbGxvdyh1bnVzZWQsIGRlYWRfY29kZSldCistICAgICAgICAgICAg ICAgICAgICBmbiBwcm9kdWN0X3JvdW5kb2ZmKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAg IHVzZSA6OmNvcmU6OmNvbnZlcnQ6OlRyeUludG87CistICAgICAgICAgICAgICAgICAgICAgICAg Ly8gUGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbgorLSAgICAgICAgICAgICAgICAgICAgICAgIGZu IHRyZWVfcmVkdWNlX3Byb2R1Y3QoYTogJlskZWxlbV90eV0pIC0+ICRlbGVtX3R5IHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISghYS5pc19lbXB0eSgpKTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgYS5sZW4oKSA9PSAxIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFbMF0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl IGlmIGEubGVuKCkgPT0gMiB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhWzBd ICogYVsxXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pZCA9IGEubGVuKCkgLyAyOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChsZWZ0LCByaWdodCkgPSBhLnNwbGl0X2F0KG1p ZCk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVlX3JlZHVjZV9wcm9kdWN0 KGxlZnQpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0cmVlX3JlZHVj ZV9wcm9kdWN0KHJpZ2h0KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQg c3RhcnQgPSBjcmF0ZTo6JGVsZW1fdHk6OkVQU0lMT047CistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBzY2FsYXJfcmVkdWN0aW9uID0gMS4gYXMgJGVsZW1fdHk7CistCistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgwLiBhcyAkZWxlbV90eSk7 CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGMgPSBpZiBpICUgMiA9PSAwIHsgMWUzIH0g ZWxzZSB7IC0xLiB9OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCAqPSA6OmNv cmU6OiRlbGVtX3R5Ojpjb25zdHM6OlBJICogYzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NhbGFyX3JlZHVjdGlvbiAqPSBzdGFydDsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdiA9IHYucmVwbGFjZShpLCBzdGFydCk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaW1kX3JlZHVjdGlvbiA9IHYucHJvZHVjdCgp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9IFswLiBhcyAkZWxlbV90 eTsgJGlkOjpsYW5lcygpXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2LndyaXRlX3RvX3Ns aWNlX3VuYWxpZ25lZCgmbXV0IGEpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmVl X3JlZHVjdGlvbiA9IHRyZWVfcmVkdWNlX3Byb2R1Y3QoJmEpOworLQorLSAgICAgICAgICAgICAg ICAgICAgICAgIC8vIEZJWE1FOiBUb28gaW1wcmVjaXNlLCBldmVuIG9ubHkgZm9yIHByb2R1Y3Qo ZjMyeDgpLgorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZpZ3VyZSBvdXQgaG93IHRvIG5h cnJvdyB0aGlzIGRvd24uCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVscF9saW1pdCA9 ICRpZDo6bGFuZXMoKSAvIDI7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZF9iaXRz ID0gc2ltZF9yZWR1Y3Rpb24udG9fYml0cygpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB0cmVlX2JpdHMgPSB0cmVlX3JlZHVjdGlvbi50b19iaXRzKCk7CistICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0ISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVkX2Jp dHMgPiB0cmVlX2JpdHMgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkX2Jp dHMgLSB0cmVlX2JpdHMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVfYml0cyAtIHJlZF9iaXRzCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0gPCB1bHBfbGltaXQudHJ5X2ludG8oKS51bndyYXAo KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlY3Rvcjogezo/fSB8IHNpbWRfcmVk dWN0aW9uOiB7Oj99IHwgXAorLXRyZWVfcmVkdWN0aW9uOiB7fSB8IHNjYWxhcl9yZWR1Y3Rpb246 IHt9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2ltZF9yZWR1Y3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRyZWVfcmVkdWN0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJfcmVk dWN0aW9uCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBp L3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvaW50ZWdlcl9hcml0aG1ldGljLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2FwaS9yZWR1Y3Rpb25zL2ludGVnZXJfYXJpdGhtZXRpYy5ycworKysrIC9kZXYvbnVsbAorQEAg LTEsMTkzICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBwb3J0YWJsZSBob3Jpem9udGFsIGludGVn ZXIgdmVjdG9yIGFyaXRobWV0aWMgcmVkdWN0aW9ucy4KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9y ZWR1Y3Rpb25faW50ZWdlcl9hcml0aG1ldGljIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVs ZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICRpZWxlbV90eTppZGVudAorLSAgICAgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBIb3Jp em9udGFsIHdyYXBwaW5nIHN1bSBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgorLSAgICAgICAgICAg IC8vLworLSAgICAgICAgICAgIC8vLyBUaGUgaW50cmluc2ljIHBlcmZvcm1zIGEgdHJlZS1yZWR1 Y3Rpb24gb2YgdGhlIHZlY3RvciBlbGVtZW50cy4KKy0gICAgICAgICAgICAvLy8gVGhhdCBpcywg Zm9yIGFuIDggZWxlbWVudCB2ZWN0b3I6CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vID4gKCh4MCArIHgxKSArICh4MiArIHgzKSkgKyAoKHg0ICsgeDUpICsgKHg2ICsgeDcpKQor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBhbiBvcGVyYXRpb24gb3ZlcmZs b3dzIGl0IHJldHVybnMgdGhlIG1hdGhlbWF0aWNhbCByZXN1bHQKKy0gICAgICAgICAgICAvLy8g bW9kdWxvIGAyXm5gIHdoZXJlIGBuYCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0IG92ZXJmbG93 cy4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gd3JhcHBpbmdf c3VtKHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdl dF9hcmNoID0gImFhcmNoNjQiKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2ltZF9yZWR1Y2VfYWRkX29yZGVyZWQ7CistICAgICAg ICAgICAgICAgICAgICBsZXQgdjogJGllbGVtX3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfYWRk X29yZGVyZWQoc2VsZi4wLCAwIGFzICRpZWxlbV90eSkgfTsKKy0gICAgICAgICAgICAgICAgICAg IHYgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IildCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFyY2g2NAorLSAgICAgICAgICAgICAg ICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1k L2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0 KDApIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjps YW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4ID0geC53cmFwcGluZ19hZGQoc2Vs Zi5leHRyYWN0KGkpIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAvLy8gSG9yaXpvbnRhbCB3cmFwcGluZyBwcm9kdWN0IG9mIHRoZSB2ZWN0 b3IgZWxlbWVudHMuCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vIFRoZSBpbnRy aW5zaWMgcGVyZm9ybXMgYSB0cmVlLXJlZHVjdGlvbiBvZiB0aGUgdmVjdG9yIGVsZW1lbnRzLgor LSAgICAgICAgICAgIC8vLyBUaGF0IGlzLCBmb3IgYW4gOCBlbGVtZW50IHZlY3RvcjoKKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gPiAoKHgwICogeDEpICogKHgyICogeDMpKSAq ICgoeDQgKiB4NSkgKiAoeDYgKiB4NykpCistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIElmIGFuIG9wZXJhdGlvbiBvdmVyZmxvd3MgaXQgcmV0dXJucyB0aGUgbWF0aGVtYXRpY2Fs IHJlc3VsdAorLSAgICAgICAgICAgIC8vLyBtb2R1bG8gYDJebmAgd2hlcmUgYG5gIGlzIHRoZSBu dW1iZXIgb2YgdGltZXMgaXQgb3ZlcmZsb3dzLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHB1YiBmbiB3cmFwcGluZ19wcm9kdWN0KHNlbGYpIC0+ICRlbGVtX3R5IHsKKy0g ICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKSldCistICAg ICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bGx2bTo6c2lt ZF9yZWR1Y2VfbXVsX29yZGVyZWQ7CistICAgICAgICAgICAgICAgICAgICBsZXQgdjogJGllbGVt X3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbXVsX29yZGVyZWQoc2VsZi4wLCAxIGFzICRpZWxl bV90eSkgfTsKKy0gICAgICAgICAgICAgICAgICAgIHYgYXMgJGVsZW1fdHkKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0Iild CistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9r ZW4gb24gQUFyY2g2NAorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApIGFzICRlbGVtX3R5OworLSAgICAgICAg ICAgICAgICAgICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB4ID0geC53cmFwcGluZ19tdWwoc2VsZi5leHRyYWN0KGkpIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwg Y3JhdGU6Oml0ZXI6OlN1bSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiBzdW08STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0ZXI6IEkpIC0+ICRpZCB7 CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDApLCBjcmF0ZTo6b3BzOjpB ZGQ6OmFkZCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBpbXBsIGNy YXRlOjppdGVyOjpQcm9kdWN0IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICRpZD4+KGl0ZXI6IEkpIC0+ ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNwbGF0KDEpLCBjcmF0ZTo6 b3BzOjpNdWw6Om11bCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICBp bXBsPCdhPiBjcmF0ZTo6aXRlcjo6U3VtPCYnYSAkaWQ+IGZvciAkaWQgeworLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHN1bTxJOiBJdGVyYXRvcjxJdGVtID0gJidhICRp ZD4+KGl0ZXI6IEkpIC0+ICRpZCB7CistICAgICAgICAgICAgICAgIGl0ZXIuZm9sZCgkaWQ6OnNw bGF0KDApLCB8YSwgYnwgY3JhdGU6Om9wczo6QWRkOjphZGQoYSwgKmIpKQorLSAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGw8J2E+IGNyYXRlOjppdGVyOjpQcm9kdWN0 PCYnYSAkaWQ+IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuIHByb2R1Y3Q8STogSXRlcmF0b3I8SXRlbSA9ICYnYSAkaWQ+PihpdGVyOiBJKSAtPiAkaWQg eworLSAgICAgICAgICAgICAgICBpdGVyLmZvbGQoJGlkOjpzcGxhdCgxKSwgfGEsIGJ8IGNyYXRl OjpvcHM6Ok11bDo6bXVsKGEsICpiKSkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9u X2ludF9hcml0aD5dIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0KKy0g ICAgICAgICAgICAgICAgICAgIGZuIGFsdGVybmF0aW5nKHg6IHVzaXplKSAtPiAkaWQgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIHggPT0gMCB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIDIgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g d3JhcHBpbmdfc3VtKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpz cGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYud3JhcHBpbmdfc3VtKCksIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCB2ID0gJGlkOjpzcGxhdCgxIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKHYud3JhcHBpbmdfc3VtKCksICRpZDo6bGFuZXMoKSBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZygyKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYud3JhcHBpbmdfc3VtKCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoJGlkOjpsYW5lcygpIC8gMiArICRpZDo6bGFuZXMoKSkgYXMgJGVsZW1fdHkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi53cmFwcGluZ19zdW0oKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDIgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3 YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9h cmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAg IGZuIHdyYXBwaW5nX3N1bV9vdmVyZmxvdygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgc3RhcnQgPSAkZWxlbV90eTo6bWF4X3ZhbHVlKCkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLSAoJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5IC8gMik7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KHN0YXJ0IGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdndyYXBwaW5nX3N1bSA9IHYud3JhcHBpbmdfc3VtKCk7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB3cmFwcGluZ19zdW0gPSBzdGFy dDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgXyBpbiAxLi4kaWQ6OmxhbmVzKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGluZ19zdW0gPSB3cmFwcGluZ19zdW0u d3JhcHBpbmdfYWRkKHN0YXJ0KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh3cmFwcGluZ19zdW0sIHZ3cmFwcGluZ19zdW0s ICJ2ID0gezo/fSIsIHYpOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQor LSAgICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3 YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiB3cmFwcGluZ19wcm9k dWN0KCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgwIGFz ICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYud3JhcHBp bmdfcHJvZHVjdCgpLCAwIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgdiA9ICRpZDo6c3BsYXQoMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2LndyYXBwaW5nX3Byb2R1Y3QoKSwgMSBhcyAkZWxlbV90eSk7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IGYgPSBtYXRjaCAkaWQ6OmxhbmVzKCkgeworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICA2NCA9PiAxNiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgMzIgPT4gOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYgPT4gNCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgXyA9PiAyLAorLSAgICAgICAgICAgICAgICAgICAg ICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSBhbHRlcm5hdGluZyhmKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHYud3JhcHBpbmdfcHJvZHVjdCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDJfdXNpemUucG93KCgkaWQ6OmxhbmVzKCkgLyBmKSBhcyB1MzIpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgJGVsZW1fdHkpCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYud3JhcHBpbmdfcHJvZHVjdCgpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMiBhcyAkZWxlbV90eQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2gg PSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4g d3JhcHBpbmdfcHJvZHVjdF9vdmVyZmxvdygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgc3RhcnQgPSAkZWxlbV90eTo6bWF4X3ZhbHVlKCkKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgLSAoJGlkOjpsYW5lcygpIGFzICRlbGVtX3R5IC8gMik7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KHN0YXJ0IGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdm11bCA9IHYud3JhcHBpbmdfcHJvZHVjdCgpOworLQor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgbXVsID0gc3RhcnQ7CistICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIF8gaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgbXVsID0gbXVsLndyYXBwaW5nX211bChzdGFydCk7CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobXVs LCB2bXVsLCAidiA9IHs6P30iLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMv bWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9yZWR1Y3Rpb25z L21hc2sucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvYXBpL3JlZHVjdGlvbnMvbWFzay5ycworKysrIC9kZXYvbnVsbAor QEAgLTEsODkgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHBvcnRhYmxlIGhvcml6b250YWwgbWFz ayByZWR1Y3Rpb25zLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3JlZHVjdGlvbl9tYXNrIHsKKy0g ICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0 X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEFyZSBg YWxsYCB2ZWN0b3IgbGFuZXMgYHRydWVgPworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgIHB1YiBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVuc2Fm ZSB7IGNyYXRlOjpjb2RlZ2VuOjpyZWR1Y3Rpb25zOjptYXNrOjpBbGw6OmFsbChzZWxmKSB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIC8vLyBJcyBgYW55YCB2ZWN0b3IgbGFuZSBgdHJ1 ZWA/CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIGFueShzZWxm KSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgY3JhdGU6OmNvZGVnZW46OnJl ZHVjdGlvbnM6Om1hc2s6OkFueTo6YW55KHNlbGYpIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICAgICAgLy8vIEFyZSBgYWxsYCB2ZWN0b3IgbGFuZXMgYGZhbHNlYD8KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4gbm9uZShzZWxmKSAtPiBib29sIHsKKy0gICAg ICAgICAgICAgICAgIXNlbGYuYW55KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCist ICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAgICAgICAg cGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9u Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAg ICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAg ICAgICAgICAgICAgICAgICAgI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNt X2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBhbGwoKSB7CistICAgICAg ICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGFzc2VydCEoYS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IGEgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKCFhLmFsbCgpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVz KCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjps YW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYSA9ICRp ZDo6c3BsYXQodHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhID0gYS5y ZXBsYWNlKGksIGZhbHNlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy dCEoIWEuYWxsKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh ID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh ID0gYS5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISghYS5hbGwoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCld CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIs IHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGFueSgpIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQodHJ1ZSk7CistICAgICAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhLmFueSgpKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCEoIWEuYW55KCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICRpZDo6 bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4k aWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh ID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEg PSBhLnJlcGxhY2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IShhLmFueSgpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYSA9IGEucmVwbGFjZShpLCB0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydCEoYS5hbnkoKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVz dCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIG5vbmUoKSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGEgPSAkaWQ6OnNwbGF0KHRydWUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoIWEubm9uZSgpKTsKKy0gICAgICAgICAgICAg ICAgICAgICAgICBsZXQgYSA9ICRpZDo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydCEoYS5ub25lKCkpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGlm ICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBp biAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCBhID0gJGlkOjpzcGxhdCh0cnVlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGEgPSBhLnJlcGxhY2UoaSwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0ISghYS5ub25lKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBhID0gJGlkOjpzcGxhdChmYWxzZSk7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhID0gYS5yZXBsYWNlKGksIHRydWUpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0ISghYS5ub25lKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg fQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv cmVkdWN0aW9ucy9taW5fbWF4LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv YXBpL3JlZHVjdGlvbnMvbWluX21heC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvcmVkdWN0aW9ucy9taW5fbWF4 LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwzNjAgKzAsMCBAQAorLS8vISBJbXBsZW1lbnRzIHBv cnRhYmxlIGhvcml6b250YWwgdmVjdG9yIG1pbi9tYXggcmVkdWN0aW9ucy4KKy0KKy1tYWNyb19y dWxlcyEgaW1wbF9yZWR1Y3Rpb25fbWluX21heCB7CistICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRl bGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQKKy0gICAgIHwgJGllbGVtX3R5OmlkZW50IHwgJHRl c3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0gICAgICAgICAgICAvLy8gTGFy Z2VzdCB2ZWN0b3IgZWxlbWVudCB2YWx1ZS4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBwdWIgZm4gbWF4X2VsZW1lbnQoc2VsZikgLT4gJGVsZW1fdHkgeworLSAgICAgICAg ICAgICAgICAjW2NmZyhub3QoYW55KAorLSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2gg PSAiYWFyY2g2NCIsCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLAor LSAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAicG93ZXJwYzY0IiwKKy0gICAgICAg ICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gIndhc20zMiIsCistICAgICAgICAgICAgICAgICkp KV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjps bHZtOjpzaW1kX3JlZHVjZV9tYXg7CistICAgICAgICAgICAgICAgICAgICBsZXQgdjogJGllbGVt X3R5ID0gdW5zYWZlIHsgc2ltZF9yZWR1Y2VfbWF4KHNlbGYuMCkgfTsKKy0gICAgICAgICAgICAg ICAgICAgIHYgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAjW2NmZyhhbnkoCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IiwKKy0gICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCistICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAorLSAgICAgICAgICAgICAgICAg ICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKKy0gICAgICAgICAgICAgICAgKSldCistICAgICAg ICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBicm9rZW4gb24gQUFy Y2g2NAorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAgICAgICAgICAgICAgLy8g RklYTUU6IGJyb2tlbiBvbiBXQVNNMzIKKy0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvOTEKKy0gICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgeCA9IHNlbGYuZXh0cmFjdCgwKTsKKy0gICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDEuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgeCA9IHgubWF4KHNlbGYuZXh0cmFjdChpKSk7CistICAgICAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgICAgICAgICB4CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICB9CistCistICAgICAgICAgICAgLy8vIFNtYWxsZXN0IHZlY3RvciBlbGVtZW50IHZhbHVlLgor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBtaW5fZWxlbWVudChz ZWxmKSAtPiAkZWxlbV90eSB7CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdChhbnkoCistICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKKy0gICAgICAgICAgICAg ICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCistICAgICAgICAgICAgICAgICAgICBhbGwodGFy Z2V0X2FyY2ggPSAieDg2Iiwgbm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKSksCistICAgICAg ICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAorLSAgICAgICAgICAgICAg ICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKKy0gICAgICAgICAgICAgICAgKSwpKV0KKy0g ICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpsbHZtOjpz aW1kX3JlZHVjZV9taW47CistICAgICAgICAgICAgICAgICAgICBsZXQgdjogJGllbGVtX3R5ID0g dW5zYWZlIHsgc2ltZF9yZWR1Y2VfbWluKHNlbGYuMCkgfTsKKy0gICAgICAgICAgICAgICAgICAg IHYgYXMgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAjW2Nm ZyhhbnkoCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKKy0g ICAgICAgICAgICAgICAgICAgIHRhcmdldF9hcmNoID0gImFybSIsCistICAgICAgICAgICAgICAg ICAgICBhbGwodGFyZ2V0X2FyY2ggPSAieDg2Iiwgbm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIi KSksCistICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBjNjQiLAorLSAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKKy0gICAgICAgICAgICAg ICAgKSldCistICAgICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1F OiBicm9rZW4gb24gQUFyY2g2NAorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNQorLSAgICAgICAg ICAgICAgICAgICAgLy8gRklYTUU6IGJyb2tlbiBvbiBpNTg2LXVua25vd24tbGludXgtZ251Cist ICAgICAgICAgICAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNl cnkvcGFja2VkX3NpbWQvaXNzdWVzLzIyCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog YnJva2VuIG9uIFdBU00zMgorLSAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy85MQorLSAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB4ID0gc2VsZi5leHRyYWN0KDApOworLSAgICAgICAgICAgICAgICAg ICAgZm9yIGkgaW4gMS4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB4 ID0geC5taW4oc2VsZi5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgICAgIHRlc3RfaWYhIHskdGVzdF90dDoKKy0gICAgICAgIHBhc3RlOjpp dGVtISB7CistICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNlIGludGVnZXIgY2FzdHMgd2l0 aGluIG1hbnRpc3NhXjEgcmFuZ2UuCistICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0 X2NtcCldCistICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfcmVkdWN0aW9uX21pbl9tYXg+XSB7 CistICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgcHViIGZuIG1heF9lbGVtZW50KCkgeworLSAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAg ICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDAgYXMgJGVsZW1fdHkpOworLSAgICAg ICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4gMSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwgMSBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVtZW50KCksIDEgYXMgJGVsZW1fdHkpOwor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJl cGxhY2UoMCwgMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYubWF4X2VsZW1lbnQoKSwgMiBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiks IHRlc3QpXQorLSAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20z MiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAgcHViIGZuIG1pbl9lbGVt ZW50KCkgeworLSAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVs ZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCks IDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID4g MSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMSwgMSBhcyAk ZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVt ZW50KCksIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSAkaWQ6OnNwbGF0KDEgYXMgJGVsZW1fdHkpOworLSAgICAgICAg ICAgICAgICAgICAgbGV0IHYgPSB2LnJlcGxhY2UoMCwgMiBhcyAkZWxlbV90eSk7CistICAgICAg ICAgICAgICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMSBhcyAkZWxlbV90eSk7CistICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5taW5fZWxlbWVudCgpLCAyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIGlmICRpZDo6bGFuZXMoKSA+IDEgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCB2ID0gJGlkOjpzcGxhdCgyIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgdiA9IHYucmVwbGFjZSgxLCAxIGFzICRlbGVtX3R5KTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWluX2VsZW1lbnQoKSwgMSBh cyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQor LW1hY3JvX3J1bGVzISB0ZXN0X3JlZHVjdGlvbl9mbG9hdF9taW5fbWF4IHsKKy0gICAgKFskZWxl bV90eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9 PiB7CistICAgICAgICB0ZXN0X2lmISB7CistICAgICAgICAgICAgJHRlc3RfdHQ6CistICAgICAg ICAgICAgcGFzdGU6Oml0ZW0hIHsKKy0gICAgICAgICAgICAgICAgLy8gQ29tcGFyaXNvbnMgdXNl IGludGVnZXIgY2FzdHMgd2l0aGluIG1hbnRpc3NhXjEgcmFuZ2UuCistICAgICAgICAgICAgICAg ICNbYWxsb3coY2xpcHB5OjpmbG9hdF9jbXApXQorLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8 JGlkIF9yZWR1Y3Rpb25fbWluX21heF9uYW4+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ug c3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJj aCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKHRh cmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAg ICAgICAgIGZuIG1pbl9lbGVtZW50X3Rlc3QoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG4gPSBjcmF0ZTo6JGVsZW1fdHk6Ok5BTjsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAg ICBhc3NlcnRfZXEhKG4ubWluKC0zLiksIC0zLik7CistICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0X2VxISgoLTMuIGFzICRlbGVtX3R5KS5taW4obiksIC0zLik7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IHYwID0gJGlkOjpzcGxhdCgtMy4pOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB0YXJnZXRfd2l0aF9icm9rZW5fbGFzdF9sYW5lX25hbiA9ICFjZmch KGFueSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2FyY2ggPSAiYXJtIiwg dGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFs bCh0YXJnZXRfYXJjaCA9ICJ4ODYiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bm90KHRhcmdldF9mZWF0dXJlID0gInNzZTIiKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJwb3dlcnBj NjQiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LAorLSAgICAgICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRoZSB2ZWN0b3IgaXMgaW5pdGlhbGl6ZWQgdG8gYC0zLmBzOiBbLTMsIC0zLCAtMywg LTNdCistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgcmVwbGFjZSB0aGUgaS10aCBlbGVt ZW50IG9mIHRoZSB2ZWN0b3Igd2l0aAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBg TmFOYDogWy0zLCAtMywgLTMsIE5hTl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG11dCB2ID0gdjAucmVwbGFjZShpLCBuKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gSWYgdGhlIE5hTiBpcyBpbiB0aGUgbGFzdCBwbGFjZSwgdGhlIExMVk0KKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gaW1wbGVtZW50YXRpb24gb2YgdGhlc2UgbWV0aG9kcyBp cyBicm9rZW4gb24gc29tZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0YXJnZXRz OgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAtIDEg JiYKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF93aXRoX2Jyb2tlbl9s YXN0X2xhbmVfbmFuIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKHYubWluX2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIltBXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCks IHYpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFj ZSBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIHVwLXRvIHRoZSBgaS10aGAgbGFuZSB3aXRoIGBOYU5gcywgdGhlIHJlc3Vs dAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaXMgc3RpbGwgYWx3YXlzIGAt My5gIHVubGVzcyBhbGwgZWxlbWVudHMgb2YKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIHRoZSB2ZWN0b3IgYXJlIGBOYU5gczoKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBqIGluIDAuLmkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgaiA9PSBpLTEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQl06IG5hbiBhdCB7fSA9PiB7fSB8IHs6P30i LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5taW5f ZWxlbWVudCgpLCB2KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEh KHYubWluX2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYpOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v IFdlIGFyZSBkb25lIGhlcmUsIHNpbmNlIHdlIHdlcmUgaW4gdGhlIGxhc3QKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmUgd2hpY2ggaXMgdGhlIGxhc3QgaXRlcmF0aW9u IG9mIHRoZSBsb29wLgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLyBXZSBhcmUgbm90IGluIHRoZSBsYXN0IGxhbmUsIGFuZCB0aGVyZSBpcyBvbmx5Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uZSBgTmFOYCBpbiB0aGUgdmVjdG9yLgor LQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdmVjdG9yIGhhcyBvbmUg bGFuZSwgdGhlIHJlc3VsdCBpcyBgTmFOYDoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgJGlkOjpsYW5lcygpID09IDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0ISh2Lm1pbl9lbGVtZW50KCkuaXNfbmFuKCksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJbQ106IGFsbCBuYW5zIHwgdj17Oj99IHwgbWluPXt9IHwgXAor LWlzX25hbjoge30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 LCB2Lm1pbl9lbGVtZW50KCksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYubWluX2VsZW1lbnQoKS5pc19uYW4oKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZCB3ZSBh cmUgZG9uZSwgc2luY2UgdGhlIHZlY3RvciBvbmx5IGhhcworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gb25lIGxhbmUgYW55d2F5cy4KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2ZWN0b3IgaGFzIG1vcmUgdGhhbiBvbmUg bGFuZSwgc2luY2UgdGhlcmUgaXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25s eSBvbmUgYE5hTmAgaW4gdGhlIHZlY3RvciwgdGhlIHJlc3VsdCBpcworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBhbHdheXMgYC0zYC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISh2Lm1pbl9lbGVtZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiW0RdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1pbl9lbGVtZW50KCksIHYp OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0 aGUgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyB1cC10byB0aGUgYGktdGhgIGxhbmUgd2l0aCBgTmFOYHMsIHRoZSByZXN1bHQgaXMKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RpbGwgYWx3YXlzIGAtMy5gIHVubGVzcyBhbGwg ZWxlbWVudHMgb2YgdGhlCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZlY3RvciBh cmUgYE5hTmBzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiAwLi5pIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2Uoaiwgbik7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpID09ICRpZDo6bGFuZXMoKSAt IDEgJiYgaiA9PSBpIC0gMSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gQWxsIGVsZW1lbnRzIG9mIHRoZSB2ZWN0b3IgYXJlIGBOYU5gcywKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGVyZWZvcmUgdGhlIHJlc3VsdCBpcyBOYU4gYXMg d2VsbC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSAjbGFuZXMgb2YgdGhlIHZl Y3RvciBpcyA+IDEsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g ImkgLSAxIiBkb2VzIG5vdCBvdmVyZmxvdy4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnQhKHYubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRV06IGFsbCBuYW5zIHwgdj17Oj99IHwg bWluPXt9IHwgXAorLWlzX25hbjoge30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdiwgdi5taW5fZWxlbWVudCgpLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi5taW5fZWxlbWVudCgpLmlzX25hbigpKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlIG5vbi1gTmFOYCBlbGVtZW50cyBpbiB0aGUK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3IsIHRoZXJlZm9y ZSB0aGUgcmVzdWx0IGlzIGAtMy5gOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEodi5taW5fZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0ZdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99 IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIHYu bWluX2VsZW1lbnQoKSwgdik7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9 CistCistICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHZlY3RvciBjb250YWlucyBh bGwgTmFOcyB0aGUgcmVzdWx0IGlzIE5hTjoKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnQhKCRpZDo6c3BsYXQobikubWluX2VsZW1lbnQoKS5pc19uYW4oKSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJhbGwgbmFucyB8IHY9ezo/fSB8IG1pbj17fSB8IGlzX25hbjog e30iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChuKSwgJGlk OjpzcGxhdChuKS5taW5fZWxlbWVudCgpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGlkOjpzcGxhdChuKS5taW5fZWxlbWVudCgpLmlzX25hbigpKTsKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNo ID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFy Z2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAg ICAgICAgZm4gbWF4X2VsZW1lbnRfdGVzdCgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBs ZXQgbiA9IGNyYXRlOjokZWxlbV90eTo6TkFOOworLQorLSAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydF9lcSEobi5tYXgoLTMuKSwgLTMuKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBh c3NlcnRfZXEhKCgtMy4gYXMgJGVsZW1fdHkpLm1heChuKSwgLTMuKTsKKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgdjAgPSAkaWQ6OnNwbGF0KC0zLik7CistCistICAgICAgICAgICAg ICAgICAgICAgICAgbGV0IHRhcmdldF93aXRoX2Jyb2tlbl9sYXN0X2xhbmVfbmFuID0gIWNmZyEo YW55KAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfYXJjaCA9ICJhcm0iLCB0 YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFy Z2V0X2FyY2ggPSAicG93ZXJwYzY0IiwgdGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUg dmVjdG9yIGlzIGluaXRpYWxpemVkIHRvIGAtMy5gczogWy0zLCAtMywgLTMsIC0zXQorLSAgICAg ICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFdlIHJlcGxhY2UgdGhlIGktdGggZWxlbWVudCBvZiB0aGUg dmVjdG9yIHdpdGgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYE5hTmA6IFstMywg LTMsIC0zLCBOYU5dCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IHYw LnJlcGxhY2UoaSwgbik7CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRo ZSBOYU4gaXMgaW4gdGhlIGxhc3QgcGxhY2UsIHRoZSBMTFZNCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIG9mIHRoZXNlIG1ldGhvZHMgaXMgYnJva2VuIG9u IHNvbWUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGFyZ2V0czoKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkgLSAxICYmCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X3dpdGhfYnJva2VuX2xhc3RfbGFuZV9uYW4g eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh2Lm1heF9lbGVt ZW50KCksIC0zLiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltB XTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGksIHYubWF4X2VsZW1lbnQoKSwgdik7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZXBsYWNlIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhl IHZlY3RvcgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAtdG8gdGhlIGBp LXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBpcyBzdGlsbCBhbHdheXMgYC0zLmAgdW5sZXNzIGFsbCBlbGVtZW50cyBv ZgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHZlY3RvciBhcmUgYE5h TmBzOgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShqLCBuKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBqID09IGktMSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEodi5taW5fZWxlbWVu dCgpLmlzX25hbigpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi W0JdOiBuYW4gYXQge30gPT4ge30gfCB7Oj99IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaSwgdi5taW5fZWxlbWVudCgpLCB2KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhc3NlcnRfZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltCXTogbmFuIGF0IHt9ID0+IHt9 IHwgezo/fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp LCB2Lm1heF9lbGVtZW50KCksIHYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGFyZSBkb25lIGhlcmUsIHNpbmNlIHdlIHdlcmUg aW4gdGhlIGxhc3QKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhbmUgd2hp Y2ggaXMgdGhlIGxhc3QgaXRlcmF0aW9uIG9mIHRoZSBsb29wLgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IGluIHRoZSBsYXN0IGxh bmUsIGFuZCB0aGVyZSBpcyBvbmx5CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9u ZSBgTmFOYCBpbiB0aGUgdmVjdG9yLgorLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBJZiB0aGUgdmVjdG9yIGhhcyBvbmUgbGFuZSwgdGhlIHJlc3VsdCBpcyBgTmFOYDoKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGlkOjpsYW5lcygpID09IDEgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISh2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbQ106IGFsbCBuYW5z IHwgdj17Oj99IHwgbWluPXt9IHwgXAorLWlzX25hbjoge30iLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2LCB2Lm1heF9lbGVtZW50KCksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7Cist CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbmQgd2UgYXJlIGRvbmUsIHNp bmNlIHRoZSB2ZWN0b3Igb25seSBoYXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIG9uZSBsYW5lIGFueXdheXMuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBUaGUgdmVjdG9yIGhhcyBtb3JlIHRoYW4gb25lIGxhbmUsIHNpbmNl IHRoZXJlIGlzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgb25lIGBOYU5g IGluIHRoZSB2ZWN0b3IsIHRoZSByZXN1bHQgaXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gYWx3YXlzIGAtM2AuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l cSEodi5tYXhfZWxlbWVudCgpLCAtMy4sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIltEXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaSwgdi5tYXhfZWxlbWVudCgpLCB2KTsKKy0KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVwbGFjZSBhbGwgdGhlIGVsZW1lbnRz IGluIHRoZSB2ZWN0b3IKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdXAtdG8gdGhl IGBpLXRoYCBsYW5lIHdpdGggYE5hTmBzLCB0aGUgcmVzdWx0IGlzCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHN0aWxsIGFsd2F5cyBgLTMuYCB1bmxlc3MgYWxsIGVsZW1lbnRzIG9m IHRoZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2ZWN0b3IgYXJlIGBOYU5gczoK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGogaW4gMC4uaSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGosIG4pOworLQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAkaWQ6OmxhbmVzKCkgLSAxICYmIGogPT0g aSAtIDEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFsbCBlbGVt ZW50cyBvZiB0aGUgdmVjdG9yIGFyZSBgTmFOYHMsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLy8gdGhlcmVmb3JlIHRoZSByZXN1bHQgaXMgTmFOIGFzIHdlbGwuCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgI2xhbmVzIG9mIHRoZSB2ZWN0b3IgaXMgPiAx LCBzbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICJpIC0gMSIgZG9l cyBub3Qgb3ZlcmZsb3cuCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNz ZXJ0ISh2Lm1heF9lbGVtZW50KCkuaXNfbmFuKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiW0VdOiBhbGwgbmFucyB8IHY9ezo/fSB8IG1heD17fSB8IFwK Ky1pc19uYW46IHt9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHYsIHYubWF4X2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHYubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIFRoZXJlIGFyZSBub24tYE5hTmAgZWxlbWVudHMgaW4gdGhlCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmVjdG9yLCB0aGVyZWZvcmUgdGhlIHJlc3Vs dCBpcyBgLTMuYDoKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf ZXEhKHYubWF4X2VsZW1lbnQoKSwgLTMuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIltGXTogbmFuIGF0IHt9ID0+IHt9IHwgezo/fSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpLCB2Lm1heF9lbGVtZW50 KCksIHYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSB2ZWN0b3IgY29udGFpbnMgYWxsIE5hTnMgdGhl IHJlc3VsdCBpcyBOYU46CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ISgkaWQ6OnNw bGF0KG4pLm1heF9lbGVtZW50KCkuaXNfbmFuKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYWxsIG5hbnMgfCB2PXs6P30gfCBtYXg9e30gfCBpc19uYW46IHt9IiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3BsYXQobiksICRpZDo6c3BsYXQobiku bWF4X2VsZW1lbnQoKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6c3Bs YXQobikubWF4X2VsZW1lbnQoKS5pc19uYW4oKSk7CistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zZWxl Y3QucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2VsZWN0LnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2FwaS9zZWxlY3QucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDczICswLDAgQEAKKy0v LyEgSW1wbGVtZW50cyBtYXNrJ3MgYHNlbGVjdGAuCistCistLy8vIEltcGxlbWVudHMgbWFzayBz ZWxlY3QgbWV0aG9kCistbWFjcm9fcnVsZXMhIGltcGxfc2VsZWN0IHsKKy0gICAgKFskZWxlbV90 eTppZGVudDsgJGVsZW1fY291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7 CistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIFNlbGVjdHMgZWxlbWVudHMg b2YgYGFgIGFuZCBgYmAgdXNpbmcgbWFzay4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAg ICAvLy8gVGhlIGxhbmVzIG9mIHRoZSByZXN1bHQgZm9yIHdoaWNoIHRoZSBtYXNrIGlzIGB0cnVl YCBjb250YWluCistICAgICAgICAgICAgLy8vIHRoZSB2YWx1ZXMgb2YgYGFgLiBUaGUgcmVtYWlu aW5nIGxhbmVzIGNvbnRhaW4gdGhlIHZhbHVlcyBvZgorLSAgICAgICAgICAgIC8vLyBgYmAuCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHNlbGVjdDxUPihzZWxm LCBhOiBTaW1kPFQ+LCBiOiBTaW1kPFQ+KSAtPiBTaW1kPFQ+CistICAgICAgICAgICAgd2hlcmUK Ky0gICAgICAgICAgICAgICAgVDogc2VhbGVkOjpTaW1kQXJyYXk8TlQgPSA8WyRlbGVtX3R5OyAk ZWxlbV9jb3VudF0gYXMgc2VhbGVkOjpTaW1kQXJyYXk+OjpOVD4sCistICAgICAgICAgICAgewor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfc2VsZWN0OworLSAgICAgICAg ICAgICAgICBTaW1kKHVuc2FmZSB7IHNpbWRfc2VsZWN0KHNlbGYuMCwgYS4wLCBiLjApIH0pCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9zZWxlY3QhKGJvb2ws ICRpZCwgJGlkLCAoZmFsc2UsIHRydWUpIHwgJHRlc3RfdHQpOworLSAgICB9OworLX0KKy0KKy1t YWNyb19ydWxlcyEgdGVzdF9zZWxlY3QgeworLSAgICAoCistICAgICAgICAkZWxlbV90eTppZGVu dCwKKy0gICAgICAgICRtYXNrX3R5OmlkZW50LAorLSAgICAgICAgJHZlY190eTppZGVudCwoJHNt YWxsOmV4cHIsICRsYXJnZTpleHByKSB8CistICAgICAgICAkdGVzdF90dDp0dAorLSAgICApID0+ IHsKKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAg ICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JHZlY190eSBf c2VsZWN0Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLQorLSAgICAg ICAgICAgICAgICAgICAgI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRl c3QpXSAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNlbGVjdCgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbyA9ICRzbWFsbCBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgdCA9ICRsYXJnZSBhcyAkZWxlbV90eTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICBsZXQgYSA9ICR2ZWNfdHk6OnNwbGF0KG8pOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBiID0gJHZlY190eTo6c3BsYXQodCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG0gPSBhLmx0KGIpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEobS5zZWxl Y3QoYSwgYiksIGEpOworLQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtID0gYi5sdChh KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0uc2VsZWN0KGIsIGEpLCBh KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGMgPSBhOworLSAgICAgICAg ICAgICAgICAgICAgICAgIGxldCBtdXQgZCA9IGI7CistICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBtX2UgPSAkbWFza190eTo6c3BsYXQoZmFsc2UpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIGZvciBpIGluIDAuLiR2ZWNfdHk6OmxhbmVzKCkgeworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBjX3RtcCA9IGMuZXh0cmFjdChpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGMgPSBjLnJlcGxhY2UoaSwgZC5leHRyYWN0KGkpKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGQgPSBkLnJlcGxhY2UoaSwgY190bXApOworLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bV9lID0gbV9lLnJlcGxhY2UoaSwgdHJ1ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG0gPSBjLmx0KGQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo bV9lLCBtKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKG0uc2VsZWN0KGMs IGQpLCBhKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUucnMgYi90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZS5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsMTg0ICswLDAgQEAKKy0vLyEgSW1wbGVtZW50cyBwb3J0 YWJsZSB2ZWN0b3Igc2h1ZmZsZXMgd2l0aCBpbW1lZGlhdGUgaW5kaWNlcy4KKy0KKy0vLyBGSVhN RTogY29tcHJlaGVuc2l2ZSB0ZXN0cworLS8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmct bnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMjAKKy0KKy0vLy8gU2h1ZmZsZXMgdmVjdG9yIGVs ZW1lbnRzLgorLS8vLworLS8vLyBUaGlzIG1hY3JvIHJldHVybnMgYSBuZXcgdmVjdG9yIHRoYXQg Y29udGFpbnMgYSBzaHVmZmxlIG9mIHRoZSBlbGVtZW50cyBpbgorLS8vLyBvbmUgKGBzaHVmZmxl ISh2ZWMsIFtpbmRpY2VzLi4uXSlgKSBvciB0d28gKGBzaHVmZmxlISh2ZWMwLCB2ZWMxLAorLS8v LyBbaW5kaWNlcy4uLl0pYCkgaW5wdXQgdmVjdG9ycy4KKy0vLy8KKy0vLy8gVGhlIHR5cGUgb2Yg YHZlYzBgIGFuZCBgdmVjMWAgbXVzdCBiZSBlcXVhbCwgYW5kIHRoZSBlbGVtZW50IHR5cGUgb2Yg dGhlCistLy8vIHJlc3VsdGluZyB2ZWN0b3IgaXMgdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgaW5w dXQgdmVjdG9yLgorLS8vLworLS8vLyBUaGUgbnVtYmVyIG9mIGBpbmRpY2VzYCBtdXN0IGJlIGEg cG93ZXItb2YtdHdvIGluIHJhbmdlIGBbMCwgNjQpYCwgc2luY2UKKy0vLy8gY3VycmVudGx5LCB0 aGUgbGFyZ2VzdCB2ZWN0b3Igc3VwcG9ydGVkIGJ5IHRoZSBsaWJyYXJ5IGhhcyA2NCBsYW5lcy4g VGhlCistLy8vIGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHZlY3RvciBlcXVhbHMgdGhlIG51bWJl ciBvZiBpbmRpY2VzIHByb3ZpZGVkLgorLS8vLworLS8vLyBUaGUgaW5kaWNlcyBtdXN0IGJlIGlu IHJhbmdlIGBbMCwgTSAqIE4pYCB3aGVyZSBgTWAgaXMgdGhlIG51bWJlciBvZiBpbnB1dAorLS8v LyB2ZWN0b3JzIChgMWAgb3IgYDJgKSBhbmQgYE5gIGlzIHRoZSBudW1iZXIgb2YgbGFuZXMgb2Yg dGhlIGlucHV0IHZlY3RvcnMuCistLy8vIFRoZSBpbmRpY2VzIGBpYCBpbiByYW5nZSBgWzAsIE4p YCByZWZlciB0byB0aGUgYGlgLXRoIGVsZW1lbnQgb2YgYHZlYzBgLAorLS8vLyB3aGlsZSB0aGUg aW5kaWNlcyBpbiByYW5nZSBgW04sIDIqTilgIHJlZmVyIHRvIHRoZSBgaSAtIE5gLXRoIGVsZW1l bnQgb2YKKy0vLy8gYHZlYzFgLgorLS8vLworLS8vLyAjIEV4YW1wbGVzCistLy8vCistLy8vIFNo dWZmbGluZyBlbGVtZW50cyBvZiB0d28gdmVjdG9yczoKKy0vLy8KKy0vLy8gYGBgCistLy8vICMg dXNlIHBhY2tlZF9zaW1kOjoqOworLS8vLyAjIGZuIG1haW4oKSB7CistLy8vIC8vIFNodWZmbGUg YWxsb3dzIHJlb3JkZXJpbmcgdGhlIGVsZW1lbnRzOgorLS8vLyBsZXQgeCA9IGkzMng0OjpuZXco MSwgMiwgMywgNCk7CistLy8vIGxldCB5ID0gaTMyeDQ6Om5ldyg1LCA2LCA3LCA4KTsKKy0vLy8g bGV0IHIgPSBzaHVmZmxlISh4LCB5LCBbNCwgMCwgNSwgMV0pOworLS8vLyBhc3NlcnRfZXEhKHIs IGkzMng0OjpuZXcoNSwgMSwgNiwgMikpOworLS8vLworLS8vLyAvLyBUaGUgcmVzdWx0aW5nIHZl Y3RvciBjYW4gYWxzIGJlIHNtYWxsZXIgdGhhbiB0aGUgaW5wdXQ6CistLy8vIGxldCByID0gc2h1 ZmZsZSEoeCwgeSwgWzEsIDZdKTsKKy0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4Mjo6bmV3KDIsIDcp KTsKKy0vLy8KKy0vLy8gLy8gT3IgbGFyZ2VyOgorLS8vLyBsZXQgciA9IHNodWZmbGUhKHgsIHks IFsxLCAzLCA0LCAyLCAxLCA3LCAyLCAyXSk7CistLy8vIGFzc2VydF9lcSEociwgaTMyeDg6Om5l dygyLCA0LCA1LCAzLCAyLCA4LCAzLCAzKSk7CistLy8vIC8vIEF0IG1vc3QgMiAqIHRoZSBudW1i ZXIgb2YgbGFuZXMgaW4gdGhlIGlucHV0IHZlY3Rvci4KKy0vLy8gIyB9CistLy8vIGBgYAorLS8v LworLS8vLyBTaHVmZmxpbmcgZWxlbWVudHMgb2Ygb25lIHZlY3RvcjoKKy0vLy8KKy0vLy8gYGBg CistLy8vICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vLyAjIGZuIG1haW4oKSB7CistLy8vIC8v IFNodWZmbGUgYWxsb3dzIHJlb3JkZXJpbmcgdGhlIGVsZW1lbnRzIG9mIGEgdmVjdG9yOgorLS8v LyBsZXQgeCA9IGkzMng0OjpuZXcoMSwgMiwgMywgNCk7CistLy8vIGxldCByID0gc2h1ZmZsZSEo eCwgWzIsIDEsIDMsIDBdKTsKKy0vLy8gYXNzZXJ0X2VxIShyLCBpMzJ4NDo6bmV3KDMsIDIsIDQs IDEpKTsKKy0vLy8KKy0vLy8gLy8gVGhlIHJlc3VsdGluZyB2ZWN0b3IgY2FuIGJlIHNtYWxsZXIg dGhhbiB0aGUgaW5wdXQ6CistLy8vIGxldCByID0gc2h1ZmZsZSEoeCwgWzEsIDNdKTsKKy0vLy8g YXNzZXJ0X2VxIShyLCBpMzJ4Mjo6bmV3KDIsIDQpKTsKKy0vLy8KKy0vLy8gLy8gRXF1YWw6Cist Ly8vIGxldCByID0gc2h1ZmZsZSEoeCwgWzEsIDMsIDIsIDBdKTsKKy0vLy8gYXNzZXJ0X2VxIShy LCBpMzJ4NDo6bmV3KDIsIDQsIDMsIDEpKTsKKy0vLy8KKy0vLy8gLy8gT3IgbGFyZ2VyOgorLS8v LyBsZXQgciA9IHNodWZmbGUhKHgsIFsxLCAzLCAyLCAyLCAxLCAzLCAyLCAyXSk7CistLy8vIGFz c2VydF9lcSEociwgaTMyeDg6Om5ldygyLCA0LCAzLCAzLCAyLCA0LCAzLCAzKSk7CistLy8vIC8v IEF0IG1vc3QgMiAqIHRoZSBudW1iZXIgb2YgbGFuZXMgaW4gdGhlIGlucHV0IHZlY3Rvci4KKy0v Ly8gIyB9CistLy8vIGBgYAorLSNbbWFjcm9fZXhwb3J0XQorLW1hY3JvX3J1bGVzISBzaHVmZmxl IHsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsIFskbDA6ZXhwciwgJGwxOmV4cHJdKSA9 PiB7eworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KKy0gICAgICAgIHVuc2FmZSB7 CistICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVmZmxlX3ZlY3RvcjI6Ojx7 WyRsMCwgJGwxXX0sIF8sIF8+KAorLSAgICAgICAgICAgICAgICAkdmVjMC4wLAorLSAgICAgICAg ICAgICAgICAkdmVjMS4wLAorLSAgICAgICAgICAgICkpCistICAgICAgICB9CistICAgIH19Owor LSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6ZXhwciwgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4 cHIsICRsMzpleHByXSkgPT4ge3sKKy0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCist ICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICRjcmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1 ZmZsZV92ZWN0b3I0Ojo8e1skbDAsICRsMSwgJGwyLCAkbDNdfSwgXywgXz4oCistICAgICAgICAg ICAgICAgICR2ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAgICAg KSkKKy0gICAgICAgIH0KKy0gICAgfX07CistICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLAor LSAgICAgWyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAorLSAgICAgICRs NDpleHByLCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByXSkgPT4ge3sKKy0gICAgICAgICNb YWxsb3codW51c2VkX3Vuc2FmZSldCistICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICRj cmF0ZTo6U2ltZCgkY3JhdGU6Ol9fc2h1ZmZsZV92ZWN0b3I4Ojo8e1skbDAsICRsMSwgJGwyLCAk bDMsICRsNCwgJGw1LCAkbDYsICRsN119LCBfLCBfPigKKy0gICAgICAgICAgICAgICAgJHZlYzAu MCwKKy0gICAgICAgICAgICAgICAgJHZlYzEuMCwKKy0gICAgICAgICAgICApKQorLSAgICAgICAg fQorLSAgICB9fTsKKy0gICAgKCR2ZWMwOmV4cHIsICR2ZWMxOmV4cHIsCistICAgICBbJGwwOmV4 cHIsICRsMTpleHByLCAkbDI6ZXhwciwgJGwzOmV4cHIsCistICAgICAgJGw0OmV4cHIsICRsNTpl eHByLCAkbDY6ZXhwciwgJGw3OmV4cHIsCistICAgICAgJGw4OmV4cHIsICRsOTpleHByLCAkbDEw OmV4cHIsICRsMTE6ZXhwciwKKy0gICAgICAkbDEyOmV4cHIsICRsMTM6ZXhwciwgJGwxNDpleHBy LCAkbDE1OmV4cHJdKSA9PiB7eworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfdW5zYWZlKV0KKy0g ICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgJGNyYXRlOjpTaW1kKCRjcmF0ZTo6X19zaHVm ZmxlX3ZlY3RvcjE2Ojo8eworLSAgICAgICAgICAgICAgICBbCistICAgICAgICAgICAgICAgICAg ICAkbDAsICRsMSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRsNywgJGw4LCAkbDksICRsMTAs CistICAgICAgICAgICAgICAgICAgICAkbDExLCAkbDEyLCAkbDEzLCAkbDE0LCAkbDE1LAorLSAg ICAgICAgICAgICAgICBdCistICAgICAgICAgICAgfSwgXywgXz4oCistICAgICAgICAgICAgICAg ICR2ZWMwLjAsCistICAgICAgICAgICAgICAgICR2ZWMxLjAsCistICAgICAgICAgICAgKSkKKy0g ICAgICAgIH0KKy0gICAgfX07CistICAgICgkdmVjMDpleHByLCAkdmVjMTpleHByLAorLSAgICAg WyRsMDpleHByLCAkbDE6ZXhwciwgJGwyOmV4cHIsICRsMzpleHByLAorLSAgICAgICRsNDpleHBy LCAkbDU6ZXhwciwgJGw2OmV4cHIsICRsNzpleHByLAorLSAgICAgICRsODpleHByLCAkbDk6ZXhw ciwgJGwxMDpleHByLCAkbDExOmV4cHIsCistICAgICAgJGwxMjpleHByLCAkbDEzOmV4cHIsICRs MTQ6ZXhwciwgJGwxNTpleHByLAorLSAgICAgICRsMTY6ZXhwciwgJGwxNzpleHByLCAkbDE4OmV4 cHIsICRsMTk6ZXhwciwKKy0gICAgICAkbDIwOmV4cHIsICRsMjE6ZXhwciwgJGwyMjpleHByLCAk bDIzOmV4cHIsCistICAgICAgJGwyNDpleHByLCAkbDI1OmV4cHIsICRsMjY6ZXhwciwgJGwyNzpl eHByLAorLSAgICAgICRsMjg6ZXhwciwgJGwyOTpleHByLCAkbDMwOmV4cHIsICRsMzE6ZXhwcl0p ID0+IHt7CistICAgICAgICAjW2FsbG93KHVudXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAkY3JhdGU6OlNpbWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yMzI6 Ojx7CistICAgICAgICAgICAgICAgIFsKKy0gICAgICAgICAgICAgICAgICAgICRsMCwgJGwxLCAk bDIsICRsMywgJGw0LCAkbDUsICRsNiwgJGw3LCAkbDgsICRsOSwgJGwxMCwKKy0gICAgICAgICAg ICAgICAgICAgICRsMTEsICRsMTIsICRsMTMsICRsMTQsICRsMTUsICRsMTYsICRsMTcsICRsMTgs ICRsMTksCistICAgICAgICAgICAgICAgICAgICAkbDIwLCAkbDIxLCAkbDIyLCAkbDIzLCAkbDI0 LCAkbDI1LCAkbDI2LCAkbDI3LCAkbDI4LAorLSAgICAgICAgICAgICAgICAgICAgJGwyOSwgJGwz MCwgJGwzMSwKKy0gICAgICAgICAgICAgICAgXQorLSAgICAgICAgICAgIH0sIF8sIF8+KAorLSAg ICAgICAgICAgICAgICAkdmVjMC4wLAorLSAgICAgICAgICAgICAgICAkdmVjMS4wLAorLSAgICAg ICAgICAgICkpCistICAgICAgICB9CistICAgIH19OworLSAgICAoJHZlYzA6ZXhwciwgJHZlYzE6 ZXhwciwKKy0gICAgIFskbDA6ZXhwciwgJGwxOmV4cHIsICRsMjpleHByLCAkbDM6ZXhwciwKKy0g ICAgICAkbDQ6ZXhwciwgJGw1OmV4cHIsICRsNjpleHByLCAkbDc6ZXhwciwKKy0gICAgICAkbDg6 ZXhwciwgJGw5OmV4cHIsICRsMTA6ZXhwciwgJGwxMTpleHByLAorLSAgICAgICRsMTI6ZXhwciwg JGwxMzpleHByLCAkbDE0OmV4cHIsICRsMTU6ZXhwciwKKy0gICAgICAkbDE2OmV4cHIsICRsMTc6 ZXhwciwgJGwxODpleHByLCAkbDE5OmV4cHIsCistICAgICAgJGwyMDpleHByLCAkbDIxOmV4cHIs ICRsMjI6ZXhwciwgJGwyMzpleHByLAorLSAgICAgICRsMjQ6ZXhwciwgJGwyNTpleHByLCAkbDI2 OmV4cHIsICRsMjc6ZXhwciwKKy0gICAgICAkbDI4OmV4cHIsICRsMjk6ZXhwciwgJGwzMDpleHBy LCAkbDMxOmV4cHIsCistICAgICAgJGwzMjpleHByLCAkbDMzOmV4cHIsICRsMzQ6ZXhwciwgJGwz NTpleHByLAorLSAgICAgICRsMzY6ZXhwciwgJGwzNzpleHByLCAkbDM4OmV4cHIsICRsMzk6ZXhw ciwKKy0gICAgICAkbDQwOmV4cHIsICRsNDE6ZXhwciwgJGw0MjpleHByLCAkbDQzOmV4cHIsCist ICAgICAgJGw0NDpleHByLCAkbDQ1OmV4cHIsICRsNDY6ZXhwciwgJGw0NzpleHByLAorLSAgICAg ICRsNDg6ZXhwciwgJGw0OTpleHByLCAkbDUwOmV4cHIsICRsNTE6ZXhwciwKKy0gICAgICAkbDUy OmV4cHIsICRsNTM6ZXhwciwgJGw1NDpleHByLCAkbDU1OmV4cHIsCistICAgICAgJGw1NjpleHBy LCAkbDU3OmV4cHIsICRsNTg6ZXhwciwgJGw1OTpleHByLAorLSAgICAgICRsNjA6ZXhwciwgJGw2 MTpleHByLCAkbDYyOmV4cHIsICRsNjM6ZXhwcl0pID0+IHt7CistICAgICAgICAjW2FsbG93KHVu dXNlZF91bnNhZmUpXQorLSAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAkY3JhdGU6OlNp bWQoJGNyYXRlOjpfX3NodWZmbGVfdmVjdG9yNjQ6Ojx7WworLSAgICAgICAgICAgICAgICAkbDAs ICRsMSwgJGwyLCAkbDMsICRsNCwgJGw1LCAkbDYsICRsNywgJGw4LCAkbDksICRsMTAsCistICAg ICAgICAgICAgICAgICRsMTEsICRsMTIsICRsMTMsICRsMTQsICRsMTUsICRsMTYsICRsMTcsICRs MTgsICRsMTksCistICAgICAgICAgICAgICAgICRsMjAsICRsMjEsICRsMjIsICRsMjMsICRsMjQs ICRsMjUsICRsMjYsICRsMjcsICRsMjgsCistICAgICAgICAgICAgICAgICRsMjksICRsMzAsICRs MzEsICRsMzIsICRsMzMsICRsMzQsICRsMzUsICRsMzYsICRsMzcsCistICAgICAgICAgICAgICAg ICRsMzgsICRsMzksICRsNDAsICRsNDEsICRsNDIsICRsNDMsICRsNDQsICRsNDUsICRsNDYsCist ICAgICAgICAgICAgICAgICRsNDcsICRsNDgsICRsNDksICRsNTAsICRsNTEsICRsNTIsICRsNTMs ICRsNTQsICRsNTUsCistICAgICAgICAgICAgICAgICRsNTYsICRsNTcsICRsNTgsICRsNTksICRs NjAsICRsNjEsICRsNjIsICRsNjMsCistICAgICAgICAgICAgXX0sIF8sIF8+KAorLSAgICAgICAg ICAgICAgICAkdmVjMC4wLAorLSAgICAgICAgICAgICAgICAkdmVjMS4wLAorLSAgICAgICAgICAg ICkpCistICAgICAgICB9CistICAgICB9fTsKKy0gICAgKCR2ZWM6ZXhwciwgWyQoJGw6ZXhwciks Kl0pID0+IHsKKy0gICAgICAgIG1hdGNoICR2ZWMgeworLSAgICAgICAgICAgIHYgPT4gc2h1ZmZs ZSEodiwgdiwgWyQoJGwpLCpdKQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2h1ZmZsZTFfZHluLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NodWZmbGUxX2R5bi5ycworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9hcGkvc2h1ZmZsZTFfZHluLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNTkgKzAsMCBA QAorLS8vISBTaHVmZmxlIHZlY3RvciBlbGVtZW50cyBhY2NvcmRpbmcgdG8gYSBkeW5hbWljIHZl Y3RvciBvZiBpbmRpY2VzLgorLQorLW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUxX2R5biB7Cist ICAgIChbJGVsZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVz dF90dDp0dCkgPT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBTaHVm ZmxlIHZlY3RvciBlbGVtZW50cyBhY2NvcmRpbmcgdG8gYGluZGljZXNgLgorLSAgICAgICAgICAg ICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBzaHVmZmxlMV9keW48ST4oc2VsZiwgaW5k aWNlczogSSkgLT4gU2VsZgorLSAgICAgICAgICAgIHdoZXJlCistICAgICAgICAgICAgICAgIFNl bGY6IGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFEeW48SW5kaWNlcyA9IEk+LAorLSAg ICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgY29kZWdlbjo6c2h1ZmZsZTFfZHluOjpTaHVm ZmxlMUR5bjo6c2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXMpCistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgdGVzdF9zaHVmZmxlMV9keW4g eworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHByXTogJGlkOmlkZW50IHwg JHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIHRlc3RfaWYhIHsKKy0gICAgICAgICAgICAkdGVz dF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAgICAgICAgICAgICAgICBwdWIg bW9kIFs8JGlkIF9zaHVmZmxlMV9keW4+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3Vw ZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9 ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmNyZWFzaW5nID0geworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHYgPSAkaWQ6OnNwbGF0KDAgYXMgJGVsZW1fdHkp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCBpIGFz ICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICBsZXQgZGVjcmVhc2luZyA9IHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IG11dCB2ID0gJGlkOjpzcGxhdCgwIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoJGlkOjpsYW5lcygpIC0gMSAtIGkpIGFzICRlbGVtX3R5CistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHYKKy0gICAgICAgICAgICAgICAgICAgICAgICB9Owor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IDwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgJGlkIGFzIGNvZGVnZW46OnNodWZmbGUxX2R5bjo6U2h1ZmZsZTFE eW4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjo6SW5kaWNlczsKKy0gICAgICAgICAg ICAgICAgICAgICAgICBsZXQgaW5jcmVhc2luZ19pZHM6IEluZGljZXMgPSBpbmNyZWFzaW5nLmNh c3QoKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVjcmVhc2luZ19pZHM6IEluZGlj ZXMgPSBkZWNyZWFzaW5nLmNhc3QoKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyZWFzaW5nLnNodWZmbGUx X2R5bihpbmNyZWFzaW5nX2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3Jl YXNpbmcsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoaSxpKT0+aSIKKy0gICAgICAg ICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEo CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY3JlYXNpbmcuc2h1ZmZsZTFfZHluKGlu Y3JlYXNpbmdfaWRzKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjcmVhc2luZywK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIihkLGkpPT5kIgorLSAgICAgICAgICAgICAg ICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISgKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5jcmVhc2luZy5zaHVmZmxlMV9keW4oZGVjcmVhc2lu Z19pZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiKGksZCk9PmQiCistICAgICAgICAgICAgICAgICAgICAg ICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZWNyZWFzaW5nLnNodWZmbGUxX2R5bihkZWNyZWFzaW5nX2lkcyks CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3JlYXNpbmcsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIoZCxkKT0+aSIKKy0gICAgICAgICAgICAgICAgICAgICAgICApOwor LQorLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2X2lkczogSW5kaWNlcworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPSAkaWQ6OnNwbGF0KGkgYXMgJGVsZW1fdHkpLmNhc3Qo KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShpbmNyZWFzaW5nLnNo dWZmbGUxX2R5bih2X2lkcyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJGlkOjpzcGxhdChpbmNyZWFzaW5nLmV4dHJhY3QoaSkpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoZGVj cmVhc2luZy5zaHVmZmxlMV9keW4odl9pZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRpZDo6c3BsYXQoZGVjcmVhc2luZy5leHRyYWN0KGkpKQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChpIGFz ICRlbGVtX3R5KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaHVmZmxl MV9keW4oaW5jcmVhc2luZ19pZHMpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JGlkOjpzcGxhdChpIGFzICRlbGVtX3R5KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChpIGFzICRlbGVtX3R5KQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaHVmZmxlMV9keW4oZGVjcmVhc2luZ19pZHMp LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpzcGxhdChpIGFzICRlbGVt X3R5KQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIHRl c3Rfc2h1ZmZsZTFfZHluX21hc2sgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3Vu dDpleHByXTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIHRlc3RfaWYh IHsKKy0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgewor LSAgICAgICAgICAgICAgICBwdWIgbW9kIFs8JGlkIF9zaHVmZmxlMV9keW4+XSB7CistICAgICAg ICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7CistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldICNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gc2h1ZmZsZTFfZHluKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsdGVy bmF0aW5nID0gW3RydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgLi4uXQorLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtdXQgYWx0ZXJuYXRpbmcgPSAkaWQ6OnNwbGF0KGZhbHNlKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsdGVybmF0aW5nID0gYWx0ZXJuYXRpbmcucmVwbGFjZShpLCB0cnVlKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlIEluZGljZXMgPSA8CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRpZCBhcyBjb2RlZ2VuOjpzaHVmZmxlMV9keW46OlNodWZm bGUxRHluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgID46OkluZGljZXM7CistICAgICAg ICAgICAgICAgICAgICAgICAgLy8gZXZlbiA9IFswLCAwLCAyLCAyLCA0LCA0LCAuLl0KKy0gICAg ICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbiA9IHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IG11dCB2ID0gSW5kaWNlczo6c3BsYXQoMCk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvciBpIGluIDAuLiRpZDo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBpICUgMiA9PSAwIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4KS5pbnRvKCkpOworLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKGksIChpIGFzIHU4IC0gMSkuaW50bygpKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CistICAgICAgICAgICAgICAg ICAgICAgICAgfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBvZGQgPSBbMSwgMSwgMywg MywgNSwgNSwgLi4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvZGQgPSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdiA9IEluZGljZXM6OnNwbGF0KDApOwor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiAwLi4kaWQ6OmxhbmVzKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaSAlIDIgIT0gMCB7CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1OCku aW50bygpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA9IHYucmVwbGFjZShpLCAoaSBhcyB1 OCArIDEpLmludG8oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg dgorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistCistICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJuYXRpbmcu c2h1ZmZsZTFfZHluKGV2ZW4pLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaWQ6OnNw bGF0KHRydWUpCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBpZiAkaWQ6OmxhbmVzKCkgPiAxIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXNzZXJ0X2VxISgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0 aW5nLnNodWZmbGUxX2R5bihvZGQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JGlkOjpzcGxhdChmYWxzZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycyBiL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkv c2xpY2UucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDcgKzAsMCBAQAorLS8vISBTbGljZSBmcm9t L3RvIG1ldGhvZHMKKy0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZnJvbV9zbGljZTsKKy0KKy0jW21h Y3JvX3VzZV0KKy1tb2Qgd3JpdGVfdG9fc2xpY2U7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvYXBpL3NsaWNlL2Zyb21fc2xpY2UucnMgYi90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2UvZnJvbV9zbGljZS5ycworZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9h cGkvc2xpY2UvZnJvbV9zbGljZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjAyICswLDAgQEAK Ky0vLyEgSW1wbGVtZW50cyBtZXRob2RzIHRvIHJlYWQgYSB2ZWN0b3IgdHlwZSBmcm9tIGEgc2xp Y2UuCistCistbWFjcm9fcnVsZXMhIGltcGxfc2xpY2VfZnJvbV9zbGljZSB7CistICAgIChbJGVs ZW1fdHk6aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOiAkaWQ6aWRlbnQgfCAkdGVzdF90dDp0dCkg PT4geworLSAgICAgICAgaW1wbCAkaWQgeworLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMg YSBuZXcgdmVjdG9yIHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAg ICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVsw XWAgaXMgbm90IGFsaWduZWQKKy0gICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2Vs Zj4oKWAgYm91bmRhcnkuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHVi IGZuIGZyb21fc2xpY2VfYWxpZ25lZChzbGljZTogJlskZWxlbV90eV0pIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShzbGlj ZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0 X3B0ciA9IHNsaWNlLmFzX3B0cigpOworLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxISh0 YXJnZXRfcHRyLmFsaWduX29mZnNldChjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PFNlbGY+KCkpLCAw KTsKKy0gICAgICAgICAgICAgICAgICAgIFNlbGY6OmZyb21fc2xpY2VfYWxpZ25lZF91bmNoZWNr ZWQoc2xpY2UpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAg ICAgICAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyB2ZWN0b3Igd2l0aCB0aGUgdmFsdWVzIG9mIHRo ZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAjIFBhbmljcwor LSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVuKCkgPCBTZWxm OjpsYW5lcygpYC4KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBwdWIgZm4g ZnJvbV9zbGljZV91bmFsaWduZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBTZWxmIHsKKy0gICAg ICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIGFzc2VydCEoc2xpY2Uu bGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICAgICAgU2VsZjo6ZnJvbV9z bGljZV91bmFsaWduZWRfdW5jaGVja2VkKHNsaWNlKQorLSAgICAgICAgICAgICAgICB9CistICAg ICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBJbnN0YW50aWF0ZXMgYSBuZXcgdmVjdG9y IHdpdGggdGhlIHZhbHVlcyBvZiB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gIyBTYWZldHkKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g SWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90IGFs aWduZWQKKy0gICAgICAgICAgICAvLy8gdG8gYW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRh cnksIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgcHViIHVuc2FmZSBmbiBmcm9tX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNs aWNlOiAmWyRlbGVtX3R5XSkgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2Vy dCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAgICAgICAgICAgICAgICBsZXQgdGFy Z2V0X3B0ciA9IHNsaWNlLmFzX3B0cigpOworLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnRf ZXEhKHRhcmdldF9wdHIuYWxpZ25fb2Zmc2V0KGNyYXRlOjptZW06OmFsaWduX29mOjo8U2VsZj4o KSksIDApOworLQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxp Z25tZW50KV0KKy0gICAgICAgICAgICAgICAgKih0YXJnZXRfcHRyIGFzICpjb25zdCBTZWxmKQor LSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZl Y3RvciB3aXRoIHRoZSB2YWx1ZXMgb2YgdGhlIGBzbGljZWAuCistICAgICAgICAgICAgLy8vCist ICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAgLy8vCistICAgICAgICAgICAg Ly8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIHRoZSBiZWhhdmlvciBpcyB1bmRl ZmluZWQuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIHVuc2FmZSBm biBmcm9tX3NsaWNlX3VuYWxpZ25lZF91bmNoZWNrZWQoc2xpY2U6ICZbJGVsZW1fdHldKSAtPiBT ZWxmIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnNpemVfb2Y7CistICAgICAg ICAgICAgICAgIGRlYnVnX2Fzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOworLSAg ICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX3B0cigpLmNhc3QoKTsKKy0g ICAgICAgICAgICAgICAgbGV0IG11dCB4ID0gU2VsZjo6c3BsYXQoMCBhcyAkZWxlbV90eSk7Cist ICAgICAgICAgICAgICAgIGxldCBzZWxmX3B0ciA9ICZtdXQgeCBhcyAqbXV0IFNlbGYgYXMgKm11 dCB1ODsKKy0gICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVybGFwcGluZyh0 YXJnZXRfcHRyLCBzZWxmX3B0ciwgc2l6ZV9vZjo6PFNlbGY+KCkpOworLSAgICAgICAgICAgICAg ICB4CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgewor LSAgICAgICAgICAgICR0ZXN0X3R0OgorLSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAg ICAgICAgICAgICAgIC8vIENvbXBhcmlzb25zIHVzZSBpbnRlZ2VyIGNhc3RzIHdpdGhpbiBtYW50 aXNzYV4xIHJhbmdlLgorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6ZmxvYXRfY21w KV0KKy0gICAgICAgICAgICAgICAgcHViIG1vZCBbPCRpZCBfc2xpY2VfZnJvbV9zbGljZT5dIHsK Ky0gICAgICAgICAgICAgICAgICAgIHVzZSBzdXBlcjo6KjsKKy0gICAgICAgICAgICAgICAgICAg IHVzZSBjcmF0ZTo6aXRlcjo6SXRlcmF0b3I7CistCistICAgICAgICAgICAgICAgICAgICAjW2Nm Z19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAg ICAgICAgICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90 ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfdW5hbGlnbmVkKCkgewor LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzQyIGFzICRlbGVt X3R5OyAkaWQ6OmxhbmVzKCkgKyAxXTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB1bmFsaWdu ZWRbMF0gPSAwIGFzICRlbGVtX3R5OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMg PSAkaWQ6OmZyb21fc2xpY2VfdW5hbGlnbmVkKCZ1bmFsaWduZWRbMS4uXSk7CistICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIChpbmRleCwgJmIpIGluIHVuYWxpZ25lZC5pdGVyKCkuZW51bWVy YXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIHsKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90 eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcSEoYiwgdmVjLmV4dHJhY3QoaW5k ZXggLSAxKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAg ICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3Vs ZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0 dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAg ICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAg ICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3Bhbmlj XQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJvbV9zbGljZV91bmFsaWduZWRfZmFpbCgpIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHVuYWxpZ25lZCA9IFs0MiBhcyAkZWxl bV90eTsgJGlkOjpsYW5lcygpICsgMV07CistICAgICAgICAgICAgICAgICAgICAgICAgdW5hbGln bmVkWzBdID0gMCBhcyAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUg c2xpY2UgaXMgbm90IGxhcmdlIGVub3VnaCA9PiBwYW5pYworLSAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBfdmVjID0gJGlkOjpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmdW5hbGlnbmVkWzIuLl0p OworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24g QSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWyRlbGVtX3R5OyAyICogJGlkOjps YW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQsCistICAgICAgICAg ICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19h dHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZCgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgbXV0IGFsaWduZWQgPSBBIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YTogWzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gJGlkOjps YW5lcygpLi4oMiAqICRpZDo6bGFuZXMoKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZC5kYXRh W2ldID0gNDIgYXMgJGVsZW1fdHk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IHZlYyA9IHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6ZnJvbV9z bGljZV9hbGlnbmVkKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsaWduZWQu ZGF0YVskaWQ6OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorLSAg ICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChp bmRleCwgJmIpIGluCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7IGFsaWdu ZWQuZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkgfSB7CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIGluZGV4IDwgJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzc2VydF9lcSEoYiwgMCBhcyAkZWxlbV90eSk7CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Nl cnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFzc2VydF9lcSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiwg dmVjLmV4dHJhY3QoaW5kZXggLSAkaWQ6OmxhbmVzKCkpCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAg ICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1cHBvcnQgI1tz aG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRyKG5vdCh0YXJn ZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAgICAvLyAjW2Nm Z19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSldCistICAg ICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAjW3Nob3VsZF9w YW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIGZyb21fc2xpY2VfYWxpZ25lZF9mYWlsX2xh bmVzKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGlnbmVkID0gQSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjps YW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBfdmVjID0gdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg JGlkOjpmcm9tX3NsaWNlX2FsaWduZWQoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmYWxpZ25lZC5kYXRhWzIgKiAkaWQ6OmxhbmVzKCkuLl0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1iaW5kZ2VuLXRl c3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAg IC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAg ICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2Fz bV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0KKy0gICAgICAg ICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgZm4gZnJv bV9zbGljZV9hbGlnbmVkX2ZhaWxfYWxpZ24oKSB7CistICAgICAgICAgICAgICAgICAgICAgICAg dW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFsaWduZWQgPSBBIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAy ICogJGlkOjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZnJvbnQg b2YgZGF0YQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyOiAqY29uc3QgJGVs ZW1fdHkgPSBhbGlnbmVkLmRhdGEuYXNfcHRyKCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFzICpjb25zdCAkZWxlbV90eTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gb2Zmc2V0IHBvaW50ZXIgYnkgb25lIGVsZW1lbnQKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHB0ciA9IHB0ci53cmFwcGluZ19hZGQoMSk7CistCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIHB0ci5hbGlnbl9vZmZzZXQoCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjcmF0ZTo6bWVtOjphbGlnbl9vZjo6PCRpZD4oKQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICApID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gdGhlIHBvaW50ZXIgaXMgcHJvcGVybHkgYWxpZ25lZCwgc28KKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIGZyb21fc2xpY2VfYWxpZ25lZCB3b24ndCBmYWlsIGhlcmUgKGUu Zy4gdGhpcworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2FuIGhhcHBlbiBm b3IgaTEyOHgxKS4gU28gd2UgcGFuaWMgdG8gbWFrZQorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gdGhlICJzaG91bGRfZmFpbCIgdGVzdCBwYXNzOgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFuaWMhKCJvayIpOworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHNsaWNl IC0gdGhpcyBpcyBzYWZlLCBiZWNhdXNlIHRoZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBlbGVtZW50cyBvZiB0aGUgc2xpY2UgZXhpc3QsIGFyZSBwcm9wZXJseQorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsaXplZCwgYW5kIHByb3Blcmx5IGFsaWduZWQ6 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiAmWyRlbGVtX3R5XSA9IHNsaWNl Ojpmcm9tX3Jhd19wYXJ0cygKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciwg JGlkOjpsYW5lcygpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGFsd2F5cyBwYW5pYyBiZWNhdXNlIHRo ZSBzbGljZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbGlnbm1lbnQgZG9lcyBu b3QgbWF0Y2ggdGhlIGFsaWdubWVudAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBy ZXF1aXJlbWVudHMgZm9yIHRoZSB2ZWN0b3IgdHlwZToKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IF92ZWMgPSAkaWQ6OmZyb21fc2xpY2VfYWxpZ25lZChzKTsKKy0gICAgICAgICAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90b19zbGlj ZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zbGljZS93cml0ZV90 b19zbGljZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9hcGkvc2xpY2Uvd3JpdGVfdG9fc2xpY2UucnMKKysrKyAvZGV2 L251bGwKK0BAIC0xLDE5NiArMCwwIEBACistLy8hIEltcGxlbWVudHMgbWV0aG9kcyB0byB3cml0 ZSBhIHZlY3RvciB0eXBlIHRvIGEgc2xpY2UuCistCistbWFjcm9fcnVsZXMhIGltcGxfc2xpY2Vf d3JpdGVfdG9fc2xpY2UgeworLSAgICAoWyRlbGVtX3R5OmlkZW50OyAkZWxlbV9jb3VudDpleHBy XTogJGlkOmlkZW50IHwgJHRlc3RfdHQ6dHQpID0+IHsKKy0gICAgICAgIGltcGwgJGlkIHsKKy0g ICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNs aWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gSWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFu ZXMoKWAgb3IgYCZzbGljZVswXWAgaXMgbm90CistICAgICAgICAgICAgLy8vIGFsaWduZWQgdG8g YW4gYGFsaWduX29mOjo8U2VsZj4oKWAgYm91bmRhcnkuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQoc2VsZiwgc2xpY2U6 ICZtdXQgWyRlbGVtX3R5XSkgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAg ICAgICAgICAgICAgYXNzZXJ0IShzbGljZS5sZW4oKSA+PSAkZWxlbV9jb3VudCk7CistICAgICAg ICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKTsKKy0gICAg ICAgICAgICAgICAgICAgIGFzc2VydF9lcSEodGFyZ2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6 Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7CistICAgICAgICAgICAgICAgICAgICBzZWxm LndyaXRlX3RvX3NsaWNlX2FsaWduZWRfdW5jaGVja2VkKHNsaWNlKTsKKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAvLy8gV3JpdGVzIHRoZSB2YWx1 ZXMgb2YgdGhlIHZlY3RvciB0byB0aGUgYHNsaWNlYC4KKy0gICAgICAgICAgICAvLy8KKy0gICAg ICAgICAgICAvLy8gIyBQYW5pY3MKKy0gICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8g SWYgYHNsaWNlLmxlbigpIDwgU2VsZjo6bGFuZXMoKWAuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIHdyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZChzZWxmLCBzbGlj ZTogJm11dCBbJGVsZW1fdHldKSB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAg ICAgICAgICAgICAgICBhc3NlcnQhKHNsaWNlLmxlbigpID49ICRlbGVtX2NvdW50KTsKKy0gICAg ICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkX3VuY2hlY2tlZChz bGljZSk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAg ICAgLy8vIFdyaXRlcyB0aGUgdmFsdWVzIG9mIHRoZSB2ZWN0b3IgdG8gdGhlIGBzbGljZWAuCist ICAgICAgICAgICAgLy8vCistICAgICAgICAgICAgLy8vICMgU2FmZXR5CistICAgICAgICAgICAg Ly8vCistICAgICAgICAgICAgLy8vIElmIGBzbGljZS5sZW4oKSA8IFNlbGY6OmxhbmVzKClgIG9y IGAmc2xpY2VbMF1gIGlzIG5vdAorLSAgICAgICAgICAgIC8vLyBhbGlnbmVkIHRvIGFuIGBhbGln bl9vZjo6PFNlbGY+KClgIGJvdW5kYXJ5LCB0aGUgYmVoYXZpb3IgaXMKKy0gICAgICAgICAgICAv Ly8gdW5kZWZpbmVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1 bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF91bmNoZWNrZWQoc2VsZiwgc2xpY2U6ICZt dXQgWyRlbGVtX3R5XSkgeworLSAgICAgICAgICAgICAgICBkZWJ1Z19hc3NlcnQhKHNsaWNlLmxl bigpID49ICRlbGVtX2NvdW50KTsKKy0gICAgICAgICAgICAgICAgbGV0IHRhcmdldF9wdHIgPSBz bGljZS5hc19tdXRfcHRyKCk7CistICAgICAgICAgICAgICAgIGRlYnVnX2Fzc2VydF9lcSEodGFy Z2V0X3B0ci5hbGlnbl9vZmZzZXQoY3JhdGU6Om1lbTo6YWxpZ25fb2Y6OjxTZWxmPigpKSwgMCk7 CistCistICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQp XQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0K Ky0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCist ICAgICAgICAgICAgICAgICNbYWxsb3coY2xpcHB5OjpjYXN0X3B0cl9hbGlnbm1lbnQpXQorLSAg ICAgICAgICAgICAgICAqKHRhcmdldF9wdHIgYXMgKm11dCBTZWxmKSA9IHNlbGY7CistICAgICAg ICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBXcml0ZXMgdGhlIHZhbHVlcyBvZiB0aGUgdmVj dG9yIHRvIHRoZSBgc2xpY2VgLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyAj IFNhZmV0eQorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8vLyBJZiBgc2xpY2UubGVu KCkgPCBTZWxmOjpsYW5lcygpYCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiB1bnNhZmUgZm4gd3JpdGVfdG9fc2xpY2Vf dW5hbGlnbmVkX3VuY2hlY2tlZChzZWxmLCBzbGljZTogJm11dCBbJGVsZW1fdHldKSB7CistICAg ICAgICAgICAgICAgIGRlYnVnX2Fzc2VydCEoc2xpY2UubGVuKCkgPj0gJGVsZW1fY291bnQpOwor LSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0X3B0ciA9IHNsaWNlLmFzX211dF9wdHIoKS5jYXN0 KCk7CistICAgICAgICAgICAgICAgIGxldCBzZWxmX3B0ciA9ICZzZWxmIGFzICpjb25zdCBTZWxm IGFzICpjb25zdCB1ODsKKy0gICAgICAgICAgICAgICAgY3JhdGU6OnB0cjo6Y29weV9ub25vdmVy bGFwcGluZyhzZWxmX3B0ciwgdGFyZ2V0X3B0ciwgY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PFNlbGY+ KCkpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIHRlc3RfaWYhIHsK Ky0gICAgICAgICAgICAkdGVzdF90dDoKKy0gICAgICAgICAgICBwYXN0ZTo6aXRlbSEgeworLSAg ICAgICAgICAgICAgICAvLyBDb21wYXJpc29ucyB1c2UgaW50ZWdlciBjYXN0cyB3aXRoaW4gbWFu dGlzc2FeMSByYW5nZS4KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmZsb2F0X2Nt cCldCistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwkaWQgX3NsaWNlX3dyaXRlX3RvX3NsaWNl Pl0geworLSAgICAgICAgICAgICAgICAgICAgdXNlIHN1cGVyOjoqOworLSAgICAgICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjppdGVyOjpJdGVyYXRvcjsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0KKy0gICAgICAg ICAgICAgICAgICAgICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgZm4gd3JpdGVfdG9fc2xpY2VfdW5hbGln bmVkKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGlnbmVkID0gWzAg YXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgdW5hbGlnbmVkWzEuLl0p OworLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW5kZXgsICZiKSBpbiB1bmFsaWduZWQu aXRlcigpLmVudW1lcmF0ZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5k ZXggPT0gMCB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIs IDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxIShiLCA0MiBhcyAkZWxl bV90eSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKGIsIHZl Yy5leHRyYWN0KGluZGV4IC0gMSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAg ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHdhc20tYmluZGdlbi10ZXN0IGRvZXMgbm90IHN1 cHBvcnQgI1tzaG91bGRfcGFuaWNdCistICAgICAgICAgICAgICAgICAgICAvLyAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAvLyAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi KSldCistICAgICAgICAgICAgICAgICAgICAjW3Rlc3RdCistICAgICAgICAgICAgICAgICAgICAj W3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX3Vu YWxpZ25lZF9mYWlsKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtdXQgdW5hbGln bmVkID0gWzAgYXMgJGVsZW1fdHk7ICRpZDo6bGFuZXMoKSArIDFdOworLSAgICAgICAgICAgICAg ICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9fc2xpY2VfdW5hbGlnbmVkKCZtdXQgdW5hbGln bmVkWzIuLl0pOworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgdW5pb24gQSB7CistICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogWyRlbGVtX3R5OyAy ICogJGlkOjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBfdmVjOiAkaWQsCist ICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAjW2NmZ19hdHRy KG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiKSwgdGVzdCldCistICAgICAgICAgICAgICAgICAg ICAjW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQoKSB7CistICAg ICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICogJGlkOjpsYW5lcygpXSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAgICAgICAgICAgICAgIGxl dCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWMud3JpdGVfdG9f c2xpY2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgYWxp Z25lZC5kYXRhWyRpZDo6bGFuZXMoKS4uXQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAp OworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlkeCwgJmIpIGluIGFsaWduZWQu ZGF0YS5pdGVyKCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgaWR4IDwgJGlkOjpsYW5lcygpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhc3NlcnRfZXEhKGIsIDAgYXMgJGVsZW1fdHkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhc3NlcnRfZXEhKGIsIDQyIGFzICRlbGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhc3NlcnRfZXEhKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiLCB2ZWMuZXh0cmFjdChpZHggLSAkaWQ6OmxhbmVzKCkpCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgIC8vIEZJWE1FOiB3YXNtLWJpbmRnZW4tdGVzdCBkb2VzIG5vdCBzdXBwb3J0ICNbc2hv dWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdfYXR0cihub3QodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgLy8gI1tjZmdf YXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAg ICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIikpXQorLSAgICAg ICAgICAgICAgICAgICAgI1t0ZXN0XQorLSAgICAgICAgICAgICAgICAgICAgI1tzaG91bGRfcGFu aWNdCistICAgICAgICAgICAgICAgICAgICBmbiB3cml0ZV90b19zbGljZV9hbGlnbmVkX2ZhaWxf bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBhbGlnbmVkID0gQSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IFswIGFzICRlbGVtX3R5OyAyICog JGlkOjpsYW5lcygpXSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9OworLSAgICAgICAgICAg ICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFzICRlbGVtX3R5KTsKKy0gICAg ICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ZWMud3JpdGVfdG9fc2xpY2VfYWxpZ25lZCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZtdXQgYWxpZ25lZC5kYXRhWzIgKiAkaWQ6OmxhbmVzKCkuLl0KKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH07CistICAgICAg ICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogd2FzbS1i aW5kZ2VuLXRlc3QgZG9lcyBub3Qgc3VwcG9ydCAjW3Nob3VsZF9wYW5pY10KKy0gICAgICAgICAg ICAgICAgICAgIC8vICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0 KV0KKy0gICAgICAgICAgICAgICAgICAgIC8vICNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2Fz bTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmcobm90 KHRhcmdldF9hcmNoID0gIndhc20zMiIpKV0KKy0gICAgICAgICAgICAgICAgICAgICNbdGVzdF0K Ky0gICAgICAgICAgICAgICAgICAgICNbc2hvdWxkX3BhbmljXQorLSAgICAgICAgICAgICAgICAg ICAgZm4gd3JpdGVfdG9fc2xpY2VfYWxpZ25lZF9mYWlsX2FsaWduKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBt dXQgYWxpZ25lZCA9IEEgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTog WzAgYXMgJGVsZW1fdHk7IDIgKiAkaWQ6OmxhbmVzKCldLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9OworLQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgYSBwb2lu dGVyIHRvIHRoZSBmcm9udCBvZiBkYXRhCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl dCBwdHI6ICptdXQgJGVsZW1fdHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g YWxpZ25lZC5kYXRhLmFzX211dF9wdHIoKSBhcyAqbXV0ICRlbGVtX3R5OworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgcG9pbnRlciBieSBvbmUgZWxlbWVudAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHRyID0gcHRyLndyYXBwaW5nX2FkZCgxKTsKKy0K Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHRyLmFsaWduX29mZnNldChjcmF0ZTo6 bWVtOjphbGlnbl9vZjo6PCRpZD4oKSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID09IDAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBvaW50ZXIg aXMgcHJvcGVybHkgYWxpZ25lZCwgc28KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIHdyaXRlX3RvX3NsaWNlX2FsaWduZWQgd29uJ3QgZmFpbCBoZXJlIChlLmcuCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGNhbiBoYXBwZW4gZm9yIGkxMjh4MSku IFNvIHdlIHBhbmljIHRvCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtl IHRoZSAic2hvdWxkX2ZhaWwiIHRlc3QgcGFzczoKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhbmljISgib2siKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorLQor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjcmVhdGUgYSBzbGljZSAtIHRoaXMgaXMg c2FmZSwgYmVjYXVzZSB0aGUKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVu dHMgb2YgdGhlIHNsaWNlIGV4aXN0LCBhcmUgcHJvcGVybHkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgLy8gaW5pdGlhbGl6ZWQsIGFuZCBwcm9wZXJseSBhbGlnbmVkOgorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXQgczogJm11dCBbJGVsZW1fdHldCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA9IHNsaWNlOjpmcm9tX3Jhd19wYXJ0c19tdXQocHRyLCAkaWQ6 OmxhbmVzKCkpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHNob3VsZCBh bHdheXMgcGFuaWMgYmVjYXVzZSB0aGUgc2xpY2UKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gYWxpZ25tZW50IGRvZXMgbm90IG1hdGNoIHRoZSBhbGlnbm1lbnQKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgLy8gcmVxdWlyZW1lbnRzIGZvciB0aGUgdmVjdG9yIHR5cGU6Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ZWMgPSAkaWQ6OnNwbGF0KDQyIGFzICRl bGVtX3R5KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjLndyaXRlX3RvX3NsaWNl X2FsaWduZWQocyk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9hcGkvc3dhcF9ieXRlcy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Fw aS9zd2FwX2J5dGVzLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2FwaS9zd2FwX2J5dGVzLnJzCisrKysgL2Rldi9udWxs CitAQCAtMSwxOTIgKzAsMCBAQAorLS8vISBIb3Jpem9udGFsIHN3YXAgYnl0ZXMKKy0KKy1tYWNy b19ydWxlcyEgaW1wbF9zd2FwX2J5dGVzIHsKKy0gICAgKFskZWxlbV90eTppZGVudDsgJGVsZW1f Y291bnQ6ZXhwcl06ICRpZDppZGVudCB8ICR0ZXN0X3R0OnR0KSA9PiB7CistICAgICAgICBpbXBs ICRpZCB7CistICAgICAgICAgICAgLy8vIFJldmVyc2VzIHRoZSBieXRlIG9yZGVyIG9mIHRoZSB2 ZWN0b3IuCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgcHViIGZuIHN3YXBf Ynl0ZXMoc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHN1cGVyOjpjb2RlZ2VuOjpz d2FwX2J5dGVzOjpTd2FwQnl0ZXM6OnN3YXBfYnl0ZXMoc2VsZikKKy0gICAgICAgICAgICB9Cist CistICAgICAgICAgICAgLy8vIENvbnZlcnRzIHNlbGYgdG8gbGl0dGxlIGVuZGlhbiBmcm9tIHRo ZSB0YXJnZXQncyBlbmRpYW5uZXNzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBPbiBsaXR0bGUgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gYmlnIGVuZGlhbiB0aGUgYnl0 ZXMgYXJlCistICAgICAgICAgICAgLy8vIHN3YXBwZWQuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIHRvX2xlKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQorLSAgICAgICAgICAgICAgICB7 CistICAgICAgICAgICAgICAgICAgICBzZWxmCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgI1tjZmcobm90KHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikpXQorLSAgICAgICAg ICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICBzZWxmLnN3YXBfYnl0ZXMoKQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgIC8vLyBDb252ZXJ0 cyBzZWxmIHRvIGJpZyBlbmRpYW4gZnJvbSB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KKy0gICAg ICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gT24gYmlnIGVuZGlhbiB0aGlzIGlzIGEgbm8t b3AuIE9uIGxpdHRsZSBlbmRpYW4gdGhlIGJ5dGVzIGFyZQorLSAgICAgICAgICAgIC8vLyBzd2Fw cGVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB0b19iZShz ZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2VuZGlhbiA9ICJi aWciKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgc2VsZgorLSAg ICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFu ID0gImJpZyIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zd2FwX2J5dGVzKCkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAvLy8gQ29udmVydHMgYSB2ZWN0b3IgZnJvbSBsaXR0bGUgZW5kaWFuIHRvIHRo ZSB0YXJnZXQncyBlbmRpYW5uZXNzLgorLSAgICAgICAgICAgIC8vLworLSAgICAgICAgICAgIC8v LyBPbiBsaXR0bGUgZW5kaWFuIHRoaXMgaXMgYSBuby1vcC4gT24gYmlnIGVuZGlhbiB0aGUgYnl0 ZXMgYXJlCistICAgICAgICAgICAgLy8vIHN3YXBwZWQuCistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgcHViIGZuIGZyb21fbGUoeDogU2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCistICAgICAgICAgICAg ICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHgKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCistICAgICAg ICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHguc3dhcF9ieXRlcygpCistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgLy8vIENvbnZlcnRz IGEgdmVjdG9yIGZyb20gYmlnIGVuZGlhbiB0byB0aGUgdGFyZ2V0J3MgZW5kaWFubmVzcy4KKy0g ICAgICAgICAgICAvLy8KKy0gICAgICAgICAgICAvLy8gT24gYmlnIGVuZGlhbiB0aGlzIGlzIGEg bm8tb3AuIE9uIGxpdHRsZSBlbmRpYW4gdGhlIGJ5dGVzIGFyZQorLSAgICAgICAgICAgIC8vLyBz d2FwcGVkLgorLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiBmcm9t X2JlKHg6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfZW5k aWFuID0gImJpZyIpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICB4 CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgI1tjZmcobm90KHRhcmdldF9l bmRpYW4gPSAiYmlnIikpXQorLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAg ICB4LnN3YXBfYnl0ZXMoKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAg ICAgICAgfQorLQorLSAgICAgICAgdGVzdF9pZiEgeworLSAgICAgICAgICAgICR0ZXN0X3R0Ogor LSAgICAgICAgICAgIHBhc3RlOjppdGVtISB7CistICAgICAgICAgICAgICAgIHB1YiBtb2QgWzwk aWQgX3N3YXBfYnl0ZXM+XSB7CistICAgICAgICAgICAgICAgICAgICB1c2Ugc3VwZXI6Oio7Cist CistICAgICAgICAgICAgICAgICAgICBjb25zdCBCWVRFUzogW3U4OyA2NF0gPSBbCistICAgICAg ICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgICAgICAg ICAgICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICAgICAgICAgICAg ICAgICAgICAgIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywKKy0gICAgICAgICAgICAg ICAgICAgICAgICAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsCistICAgICAgICAgICAg ICAgICAgICAgICAgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LAorLSAgICAgICAgICAg ICAgICAgICAgICAgIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywKKy0gICAgICAgICAg ICAgICAgICAgICAgICA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsCistICAgICAgICAg ICAgICAgICAgICAgICAgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLAorLSAgICAgICAg ICAgICAgICAgICAgXTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVzISBzd2Fw IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAoJGZ1bmM6IGlkZW50KSA9PiB7eworLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXRjaCBwb3NzaWJsZSBmdXR1cmUgPjUxMiB2ZWN0 b3JzCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEobWVtOjpzaXplX29mOjo8 JGlkPigpIDw9IDY0KTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG11dCBh Y3R1YWwgPSBCWVRFUzsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZW1zOiAm bXV0IFskZWxlbV90eV0gPSB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhY3R1YWwuYXNfbXV0X3B0cigpIGFzICptdXQgJGVsZW1fdHksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkOjpsYW5lcygpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owor LQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmVjID0gJGlkOjpmcm9tX3NsaWNl X3VuYWxpZ25lZChlbGVtcyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpZDo6JGZ1 bmModmVjKS53cml0ZV90b19zbGljZV91bmFsaWduZWQoZWxlbXMpOworLQorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhY3R1YWwKKy0gICAgICAgICAgICAgICAgICAgICAgICB9fTsKKy0g ICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVz ISB0ZXN0X3N3YXAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVuYzogaWRlbnQpID0+ IHt7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBzd2FwISgkZnVu Yyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZCA9CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCWVRFUy5pdGVyKCkucmV2KCkKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC5za2lwKDY0IC0gY3JhdGU6Om1lbTo6c2l6ZV9vZjo6PCRp ZD4oKSk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCEoYWN0dWFsLml0ZXIo KS56aXAoZXhwZWN0ZWQpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFs bCh8KHgsIHkpfCB4ID09IHkpKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICB9fTsKKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIG1hY3JvX3J1bGVzISB0 ZXN0X25vX3N3YXAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICgkZnVuYzogaWRlbnQpID0+ IHt7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWwgPSBzd2FwISgkZnVu Yyk7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHBlY3RlZCA9IEJZVEVTLml0 ZXIoKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRha2UobWVtOjpzaXplX29m Ojo8JGlkPigpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IShhY3R1 YWwuaXRlcigpLnppcChleHBlY3RlZCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAuYWxsKHwoeCwgeSl8IHggPT0geSkpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH19 OworLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgI1tjZmdf YXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXSAjW2NmZ19hdHRyKHRhcmdl dF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0KKy0gICAgICAgICAgICAgICAg ICAgIGZuIHN3YXBfYnl0ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9zd2Fw IShzd2FwX2J5dGVzKTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAg ICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tj ZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAg ICAgICAgICAgICAgICAgICBmbiB0b19sZSgpIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAj W2NmZyh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpXQorLSAgICAgICAgICAgICAgICAgICAgICAg IHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub19zd2FwISh0b19sZSk7Cist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpKV0KKy0gICAgICAgICAgICAgICAgICAgICAg ICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEodG9fbGUpOworLSAg ICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAg ICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0 ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5fdGVz dCldCistICAgICAgICAgICAgICAgICAgICBmbiB0b19iZSgpIHsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAjW2NmZyh0YXJnZXRfZW5kaWFuID0gImJpZyIpXQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9ub19zd2FwISh0b19i ZSk7CistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgICAg ICNbY2ZnKG5vdCh0YXJnZXRfZW5kaWFuID0gImJpZyIpKV0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rfc3dhcCEodG9fYmUpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIp LCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2JpbmRnZW5f dGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX2xlKCkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIildCistICAgICAgICAg ICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X25vX3N3 YXAhKGZyb21fbGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSldCistICAgICAg ICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3N3 YXAhKGZyb21fbGUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgICNbY2ZnX2F0dHIobm90KHRhcmdldF9h cmNoID0gIndhc20zMiIpLCB0ZXN0KV0gI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIi LCB3YXNtX2JpbmRnZW5fdGVzdCldCistICAgICAgICAgICAgICAgICAgICBmbiBmcm9tX2JlKCkg eworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9lbmRpYW4gPSAiYmlnIild CistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X25vX3N3YXAhKGZyb21fYmUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2VuZGlhbiA9ICJiaWciKSld CistICAgICAgICAgICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0ZXN0X3N3YXAhKGZyb21fYmUpOworLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNjIg KzAsMCBAQAorLS8vISBDb2RlLWdlbmVyYXRpb24gdXRpbGl0aWVzCistCistcHViKGNyYXRlKSBt b2QgYml0X21hbmlwOworLXB1YihjcmF0ZSkgbW9kIGxsdm07CistcHViKGNyYXRlKSBtb2QgbWF0 aDsKKy1wdWIoY3JhdGUpIG1vZCByZWR1Y3Rpb25zOworLXB1YihjcmF0ZSkgbW9kIHNodWZmbGU7 CistcHViKGNyYXRlKSBtb2Qgc2h1ZmZsZTFfZHluOworLXB1YihjcmF0ZSkgbW9kIHN3YXBfYnl0 ZXM7CistCistbWFjcm9fcnVsZXMhIGltcGxfc2ltZF9hcnJheSB7CistICAgIChbJGVsZW1fdHk6 aWRlbnQ7ICRlbGVtX2NvdW50OmV4cHJdOgorLSAgICAgJHR1cGxlX2lkOmlkZW50IHwgJCgkZWxl bV90eXM6aWRlbnQpLCopID0+IHsKKy0gICAgICAgICNbZGVyaXZlKENvcHksIENsb25lKV0KKy0g ICAgICAgICNbcmVwcihzaW1kKV0KKy0gICAgICAgIHB1YiBzdHJ1Y3QgJHR1cGxlX2lkKCQocHVi KGNyYXRlKSAkZWxlbV90eXMpLCopOworLSAgICAgICAgLy9eXl5eXl5eIGxlYWtlZCB0aHJvdWdo IFNpbWRBcnJheQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciBbJGVs ZW1fdHk7ICRlbGVtX2NvdW50XSB7fQorLQorLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpT aW1kQXJyYXkgZm9yIFskZWxlbV90eTsgJGVsZW1fY291bnRdIHsKKy0gICAgICAgICAgICB0eXBl IFR1cGxlID0gJHR1cGxlX2lkOworLSAgICAgICAgICAgIHR5cGUgVCA9ICRlbGVtX3R5OworLSAg ICAgICAgICAgIGNvbnN0IE46IHVzaXplID0gJGVsZW1fY291bnQ7CistICAgICAgICAgICAgdHlw ZSBOVCA9IFt1MzI7ICRlbGVtX2NvdW50XTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwg Y3JhdGU6OnNlYWxlZDo6U2VhbCBmb3IgJHR1cGxlX2lkIHt9CistICAgICAgICBpbXBsIGNyYXRl OjpzZWFsZWQ6OlNpbWQgZm9yICR0dXBsZV9pZCB7CistICAgICAgICAgICAgdHlwZSBFbGVtZW50 ID0gJGVsZW1fdHk7CistICAgICAgICAgICAgY29uc3QgTEFORVM6IHVzaXplID0gJGVsZW1fY291 bnQ7CistICAgICAgICAgICAgdHlwZSBMYW5lc1R5cGUgPSBbdTMyOyAkZWxlbV9jb3VudF07Cist ICAgICAgICB9CistCistICAgIH0KKy19CistCistcHViKGNyYXRlKSBtb2QgcG9pbnRlcl9zaXpl ZF9pbnQ7CistCistcHViKGNyYXRlKSBtb2QgdjE2OworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnYx Njo6KjsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2MzI7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6djMy OjoqOworLQorLXB1YihjcmF0ZSkgbW9kIHY2NDsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2NjQ6 Oio7CistCistcHViKGNyYXRlKSBtb2QgdjEyODsKKy1wdWIoY3JhdGUpIHVzZSBzZWxmOjp2MTI4 OjoqOworLQorLXB1YihjcmF0ZSkgbW9kIHYyNTY7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6djI1 Njo6KjsKKy0KKy1wdWIoY3JhdGUpIG1vZCB2NTEyOworLXB1YihjcmF0ZSkgdXNlIHNlbGY6OnY1 MTI6Oio7CistCistcHViKGNyYXRlKSBtb2QgdlNpemU7CistcHViKGNyYXRlKSB1c2Ugc2VsZjo6 dlNpemU6Oio7CistCistcHViKGNyYXRlKSBtb2QgdlB0cjsKKy1wdWIoY3JhdGUpIHVzZSBzZWxm Ojp2UHRyOjoqOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2NvZGVnZW4vYml0X21hbmlwLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9iaXRfbWFuaXAucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhp cmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9iaXRfbWFuaXAucnMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDM0NyArMCwwIEBACistLy8hIExMVk0gYml0IG1hbmlwdWxhdGlvbiBp bnRyaW5zaWNzLgorLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy1wdWIoY3JhdGUpIHVzZSBjcmF0ZTo6 KjsKKy0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcywgZGVhZF9jb2RlKV0KKy1leHRlcm4gIkMi IHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYyaTgiXQorLSAgICBmbiBjdGx6X3U4 eDIoeDogdTh4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MjsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdGx6LnY0aTgiXQorLSAgICBmbiBjdGx6X3U4eDQoeDogdTh4NCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTh4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY4 aTgiXQorLSAgICBmbiBjdGx6X3U4eDgoeDogdTh4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4g dTh4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYxNmk4Il0KKy0gICAgZm4gY3Rs el91OHgxNih4OiB1OHgxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4MTY7CistICAgICNb bGlua19uYW1lID0gImxsdm0uY3Rsei52MzJpOCJdCistICAgIGZuIGN0bHpfdTh4MzIoeDogdTh4 MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0bHoudjY0aTgiXQorLSAgICBmbiBjdGx6X3U4eDY0KHg6IHU4eDY0LCBpc196ZXJvX3Vu ZGVmOiBib29sKSAtPiB1OHg2NDsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnYy aTE2Il0KKy0gICAgZm4gY3Rsel91MTZ4Mih4OiB1MTZ4MiwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTE2eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NGkxNiJdCistICAgIGZu IGN0bHpfdTE2eDQoeDogdTE2eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxNng0OworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpMTYiXQorLSAgICBmbiBjdGx6X3UxNng4KHg6 IHUxNng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4ODsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdGx6LnYxNmkxNiJdCistICAgIGZuIGN0bHpfdTE2eDE2KHg6IHUxNngxNiwgaXNf emVyb191bmRlZjogYm9vbCkgLT4gdTE2eDE2OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0 bHoudjMyaTE2Il0KKy0gICAgZm4gY3Rsel91MTZ4MzIoeDogdTE2eDMyLCBpc196ZXJvX3VuZGVm OiBib29sKSAtPiB1MTZ4MzI7CistCistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52Mmkz MiJdCistICAgIGZuIGN0bHpfdTMyeDIoeDogdTMyeDIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+ IHUzMngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjRpMzIiXQorLSAgICBmbiBj dGx6X3UzMng0KHg6IHUzMng0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MzJ4NDsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdGx6LnY4aTMyIl0KKy0gICAgZm4gY3Rsel91MzJ4OCh4OiB1 MzJ4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDg7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uY3Rsei52MTZpMzIiXQorLSAgICBmbiBjdGx6X3UzMngxNih4OiB1MzJ4MTYsIGlzX3pl cm9fdW5kZWY6IGJvb2wpIC0+IHUzMngxNjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5j dGx6LnYyaTY0Il0KKy0gICAgZm4gY3Rsel91NjR4Mih4OiB1NjR4MiwgaXNfemVyb191bmRlZjog Ym9vbCkgLT4gdTY0eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rsei52NGk2NCJdCist ICAgIGZuIGN0bHpfdTY0eDQoeDogdTY0eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU2NHg0 OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0bHoudjhpNjQiXQorLSAgICBmbiBjdGx6X3U2 NHg4KHg6IHU2NHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1NjR4ODsKKy0KKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jdGx6LnYxaTEyOCJdCistICAgIGZuIGN0bHpfdTEyOHgxKHg6IHUx Mjh4MSwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHgxOworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLmN0bHoudjJpMTI4Il0KKy0gICAgZm4gY3Rsel91MTI4eDIoeDogdTEyOHgyLCBpc196 ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rs ei52NGkxMjgiXQorLSAgICBmbiBjdGx6X3UxMjh4NCh4OiB1MTI4eDQsIGlzX3plcm9fdW5kZWY6 IGJvb2wpIC0+IHUxMjh4NDsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTgi XQorLSAgICBmbiBjdHR6X3U4eDIoeDogdTh4MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4 MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY0aTgiXQorLSAgICBmbiBjdHR6X3U4 eDQoeDogdTh4NCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTh4NDsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdHR6LnY4aTgiXQorLSAgICBmbiBjdHR6X3U4eDgoeDogdTh4OCwgaXNfemVy b191bmRlZjogYm9vbCkgLT4gdTh4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYx Nmk4Il0KKy0gICAgZm4gY3R0el91OHgxNih4OiB1OHgxNiwgaXNfemVyb191bmRlZjogYm9vbCkg LT4gdTh4MTY7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MzJpOCJdCistICAgIGZu IGN0dHpfdTh4MzIoeDogdTh4MzIsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHU4eDMyOworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjY0aTgiXQorLSAgICBmbiBjdHR6X3U4eDY0KHg6 IHU4eDY0LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1OHg2NDsKKy0KKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdHR6LnYyaTE2Il0KKy0gICAgZm4gY3R0el91MTZ4Mih4OiB1MTZ4MiwgaXNf emVyb191bmRlZjogYm9vbCkgLT4gdTE2eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0 ei52NGkxNiJdCistICAgIGZuIGN0dHpfdTE2eDQoeDogdTE2eDQsIGlzX3plcm9fdW5kZWY6IGJv b2wpIC0+IHUxNng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpMTYiXQorLSAg ICBmbiBjdHR6X3UxNng4KHg6IHUxNng4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4ODsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYxNmkxNiJdCistICAgIGZuIGN0dHpfdTE2 eDE2KHg6IHUxNngxNiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTE2eDE2OworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmN0dHoudjMyaTE2Il0KKy0gICAgZm4gY3R0el91MTZ4MzIoeDogdTE2 eDMyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTZ4MzI7CistCistICAgICNbbGlua19uYW1l ID0gImxsdm0uY3R0ei52MmkzMiJdCistICAgIGZuIGN0dHpfdTMyeDIoeDogdTMyeDIsIGlzX3pl cm9fdW5kZWY6IGJvb2wpIC0+IHUzMngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHou djRpMzIiXQorLSAgICBmbiBjdHR6X3UzMng0KHg6IHUzMng0LCBpc196ZXJvX3VuZGVmOiBib29s KSAtPiB1MzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnY4aTMyIl0KKy0gICAg Zm4gY3R0el91MzJ4OCh4OiB1MzJ4OCwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTMyeDg7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3R0ei52MTZpMzIiXQorLSAgICBmbiBjdHR6X3UzMngx Nih4OiB1MzJ4MTYsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUzMngxNjsKKy0KKy0gICAgI1ts aW5rX25hbWUgPSAibGx2bS5jdHR6LnYyaTY0Il0KKy0gICAgZm4gY3R0el91NjR4Mih4OiB1NjR4 MiwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTY0eDI7CistICAgICNbbGlua19uYW1lID0gImxs dm0uY3R0ei52NGk2NCJdCistICAgIGZuIGN0dHpfdTY0eDQoeDogdTY0eDQsIGlzX3plcm9fdW5k ZWY6IGJvb2wpIC0+IHU2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjhpNjQi XQorLSAgICBmbiBjdHR6X3U2NHg4KHg6IHU2NHg4LCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1 NjR4ODsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHR6LnYxaTEyOCJdCistICAgIGZu IGN0dHpfdTEyOHgxKHg6IHUxMjh4MSwgaXNfemVyb191bmRlZjogYm9vbCkgLT4gdTEyOHgxOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0dHoudjJpMTI4Il0KKy0gICAgZm4gY3R0el91MTI4 eDIoeDogdTEyOHgyLCBpc196ZXJvX3VuZGVmOiBib29sKSAtPiB1MTI4eDI7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY3R0ei52NGkxMjgiXQorLSAgICBmbiBjdHR6X3UxMjh4NCh4OiB1MTI4 eDQsIGlzX3plcm9fdW5kZWY6IGJvb2wpIC0+IHUxMjh4NDsKKy0KKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5jdHBvcC52Mmk4Il0KKy0gICAgZm4gY3Rwb3BfdTh4Mih4OiB1OHgyKSAtPiB1OHgy OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY0aTgiXQorLSAgICBmbiBjdHBvcF91 OHg0KHg6IHU4eDQpIC0+IHU4eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3Audjhp OCJdCistICAgIGZuIGN0cG9wX3U4eDgoeDogdTh4OCkgLT4gdTh4ODsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jdHBvcC52MTZpOCJdCistICAgIGZuIGN0cG9wX3U4eDE2KHg6IHU4eDE2KSAt PiB1OHgxNjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MzJpOCJdCistICAgIGZu IGN0cG9wX3U4eDMyKHg6IHU4eDMyKSAtPiB1OHgzMjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdHBvcC52NjRpOCJdCistICAgIGZuIGN0cG9wX3U4eDY0KHg6IHU4eDY0KSAtPiB1OHg2NDsK Ky0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MmkxNiJdCistICAgIGZuIGN0cG9w X3UxNngyKHg6IHUxNngyKSAtPiB1MTZ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBv cC52NGkxNiJdCistICAgIGZuIGN0cG9wX3UxNng0KHg6IHUxNng0KSAtPiB1MTZ4NDsKKy0gICAg I1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52OGkxNiJdCistICAgIGZuIGN0cG9wX3UxNng4KHg6 IHUxNng4KSAtPiB1MTZ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52MTZpMTYi XQorLSAgICBmbiBjdHBvcF91MTZ4MTYoeDogdTE2eDE2KSAtPiB1MTZ4MTY7CistICAgICNbbGlu a19uYW1lID0gImxsdm0uY3Rwb3AudjMyaTE2Il0KKy0gICAgZm4gY3Rwb3BfdTE2eDMyKHg6IHUx NngzMikgLT4gdTE2eDMyOworLQorLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnYyaTMy Il0KKy0gICAgZm4gY3Rwb3BfdTMyeDIoeDogdTMyeDIpIC0+IHUzMngyOworLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLmN0cG9wLnY0aTMyIl0KKy0gICAgZm4gY3Rwb3BfdTMyeDQoeDogdTMyeDQp IC0+IHUzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9wLnY4aTMyIl0KKy0gICAg Zm4gY3Rwb3BfdTMyeDgoeDogdTMyeDgpIC0+IHUzMng4OworLSAgICAjW2xpbmtfbmFtZSA9ICJs bHZtLmN0cG9wLnYxNmkzMiJdCistICAgIGZuIGN0cG9wX3UzMngxNih4OiB1MzJ4MTYpIC0+IHUz MngxNjsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52Mmk2NCJdCistICAgIGZu IGN0cG9wX3U2NHgyKHg6IHU2NHgyKSAtPiB1NjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jdHBvcC52NGk2NCJdCistICAgIGZuIGN0cG9wX3U2NHg0KHg6IHU2NHg0KSAtPiB1NjR4NDsK Ky0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBvcC52OGk2NCJdCistICAgIGZuIGN0cG9wX3U2 NHg4KHg6IHU2NHg4KSAtPiB1NjR4ODsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jdHBv cC52MWkxMjgiXQorLSAgICBmbiBjdHBvcF91MTI4eDEoeDogdTEyOHgxKSAtPiB1MTI4eDE7Cist ICAgICNbbGlua19uYW1lID0gImxsdm0uY3Rwb3AudjJpMTI4Il0KKy0gICAgZm4gY3Rwb3BfdTEy OHgyKHg6IHUxMjh4MikgLT4gdTEyOHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmN0cG9w LnY0aTEyOCJdCistICAgIGZuIGN0cG9wX3UxMjh4NCh4OiB1MTI4eDQpIC0+IHUxMjh4NDsKKy19 CistCistcHViKGNyYXRlKSB0cmFpdCBCaXRNYW5pcCB7CistICAgIGZuIGN0cG9wKHNlbGYpIC0+ IFNlbGY7CistICAgIGZuIGN0bHooc2VsZikgLT4gU2VsZjsKKy0gICAgZm4gY3R0eihzZWxmKSAt PiBTZWxmOworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9iaXRfbWFuaXAgeworLSAgICAoaW5u ZXI6ICR0eTppZGVudCwgJHNjYWxhcjp0eSwgJHV0eTppZGVudCwKKy0gICAgICRjdHBvcDppZGVu dCwgJGN0bHo6aWRlbnQsICRjdHR6OmlkZW50KSA9PiB7CistICAgICAgICAvLyBGSVhNRTogc2V2 ZXJhbCBMTFZNIGludHJpbnNpY3MgYnJlYWsgb24gczM5MHggaHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOTIKKy0gICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gInMzOTB4IildCistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzY2FsYXI6 ICR0eSwgJHNjYWxhciB9CistICAgICAgICAjW2NmZyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgi KSldCistICAgICAgICBpbXBsIEJpdE1hbmlwIGZvciAkdHkgeworLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgICAgICAgICB1bnNhZmUg eyAkY3Rwb3AoeSkuY2FzdCgpIH0KKy0gICAgICAgICAgICB9CistCistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gY3RseihzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKKy0gICAgICAgICAgICAgICAgLy8gdGhl IGN0eHggaW50cmluc2ljcyBuZWVkIGNvbXBpbGUtdGltZSBjb25zdGFudAorLSAgICAgICAgICAg ICAgICAvLyBgaXNfemVyb191bmRlZmAKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsgJGN0bHoo eSwgZmFsc2UpLmNhc3QoKSB9CistICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgIGZuIGN0dHooc2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgIGxldCB5OiAkdXR5ID0gc2VsZi5jYXN0KCk7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7 ICRjdHR6KHksIGZhbHNlKS5jYXN0KCkgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgfTsKKy0gICAgKHNpemVkX2lubmVyOiAkdHk6aWRlbnQsICRzY2FsYXI6dHksICR1dHk6aWRl bnQpID0+IHsKKy0gICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildCistICAgICAg ICBpbXBsX2JpdF9tYW5pcCEgeyBzY2FsYXI6ICR0eSwgJHNjYWxhciB9CistICAgICAgICAjW2Nm Zyhub3QodGFyZ2V0X2FyY2ggPSAiczM5MHgiKSldCistICAgICAgICBpbXBsIEJpdE1hbmlwIGZv ciAkdHkgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIGN0cG9wKHNl bGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBsZXQgeTogJHV0eSA9IHNlbGYuY2FzdCgp OworLSAgICAgICAgICAgICAgICAkdXR5OjpjdHBvcCh5KS5jYXN0KCkKKy0gICAgICAgICAgICB9 CistCistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY3RseihzZWxmKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKKy0g ICAgICAgICAgICAgICAgJHV0eTo6Y3Rseih5KS5jYXN0KCkKKy0gICAgICAgICAgICB9CistCist ICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gY3R0eihzZWxmKSAtPiBTZWxm IHsKKy0gICAgICAgICAgICAgICAgbGV0IHk6ICR1dHkgPSBzZWxmLmNhc3QoKTsKKy0gICAgICAg ICAgICAgICAgJHV0eTo6Y3R0eih5KS5jYXN0KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistICAgIH07CistICAgIChzY2FsYXI6ICR0eTppZGVudCwgJHNjYWxhcjp0eSkgPT4geworLSAg ICAgICAgaW1wbCBCaXRNYW5pcCBmb3IgJHR5IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiBjdHBvcChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0 IG11dCBvbmVzID0gc2VsZjsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uU2VsZjo6bGFu ZXMoKSB7CistICAgICAgICAgICAgICAgICAgICBvbmVzID0gb25lcy5yZXBsYWNlKGksIHNlbGYu ZXh0cmFjdChpKS5jb3VudF9vbmVzKCkgYXMgJHNjYWxhcik7CistICAgICAgICAgICAgICAgIH0K Ky0gICAgICAgICAgICAgICAgb25lcworLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAj W2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdGx6KHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAg ICAgICAgICBsZXQgbXV0IGx6ID0gc2VsZjsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4u U2VsZjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICBseiA9IGx6LnJlcGxhY2UoaSwg c2VsZi5leHRyYWN0KGkpLmxlYWRpbmdfemVyb3MoKSBhcyAkc2NhbGFyKTsKKy0gICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICBsegorLSAgICAgICAgICAgIH0KKy0KKy0gICAgICAg ICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBjdHR6KHNlbGYpIC0+IFNlbGYgeworLSAg ICAgICAgICAgICAgICBsZXQgbXV0IHR6ID0gc2VsZjsKKy0gICAgICAgICAgICAgICAgZm9yIGkg aW4gMC4uU2VsZjo6bGFuZXMoKSB7CistICAgICAgICAgICAgICAgICAgICB0eiA9IHR6LnJlcGxh Y2UoaSwgc2VsZi5leHRyYWN0KGkpLnRyYWlsaW5nX3plcm9zKCkgYXMgJHNjYWxhcik7CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgdHoKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistICAgICgkdXR5OmlkZW50LCAkdXNjYWxhcjp0eSwgJGl0eTppZGVu dCwgJGlzY2FsYXI6dHksCistICAgICAkY3Rwb3A6aWRlbnQsICRjdGx6OmlkZW50LCAkY3R0ejpp ZGVudCkgPT4geworLSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgaW5uZXI6ICR1dHksICR1c2Nh bGFyLCAkdXR5LCAkY3Rwb3AsICRjdGx6LCAkY3R0eiB9CistICAgICAgICBpbXBsX2JpdF9tYW5p cCEgeyBpbm5lcjogJGl0eSwgJGlzY2FsYXIsICR1dHksICRjdHBvcCwgJGN0bHosICRjdHR6IH0K Ky0gICAgfTsKKy0gICAgKHNpemVkOiAkdXNpemU6aWRlbnQsICR1c2NhbGFyOnR5LCAkaXNpemU6 aWRlbnQsCistICAgICAkaXNjYWxhcjp0eSwgJHR5OmlkZW50KSA9PiB7CistICAgICAgICBpbXBs X2JpdF9tYW5pcCEgeyBzaXplZF9pbm5lcjogJHVzaXplLCAkdXNjYWxhciwgJHR5IH0KKy0gICAg ICAgIGltcGxfYml0X21hbmlwISB7IHNpemVkX2lubmVyOiAkaXNpemUsICRpc2NhbGFyLCAkdHkg fQorLSAgICB9OworLX0KKy0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1OHgyICAgLCAgIHU4LCBpOHgy LCBpOCwgICBjdHBvcF91OHgyLCAgIGN0bHpfdTh4MiwgICBjdHR6X3U4eDIgICB9CistaW1wbF9i aXRfbWFuaXAhIHsgdTh4NCAgICwgICB1OCwgaTh4NCwgaTgsICAgY3Rwb3BfdTh4NCwgICBjdGx6 X3U4eDQsICAgY3R0el91OHg0ICAgfQorLSNbY2ZnKG5vdCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0 IikpXSAvLyBzZWUgYmVsb3cKKy1pbXBsX2JpdF9tYW5pcCEgeyB1OHg4ICAgLCAgIHU4LCBpOHg4 LCBpOCwgICBjdHBvcF91OHg4LCAgIGN0bHpfdTh4OCwgICBjdHR6X3U4eDggICB9CistaW1wbF9i aXRfbWFuaXAhIHsgdTh4MTYgICwgIHU4LCBpOHgxNiwgaTgsICBjdHBvcF91OHgxNiwgIGN0bHpf dTh4MTYsICBjdHR6X3U4eDE2ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTh4MzIgICwgIHU4LCBp OHgzMiwgaTgsICBjdHBvcF91OHgzMiwgIGN0bHpfdTh4MzIsICBjdHR6X3U4eDMyICB9CistaW1w bF9iaXRfbWFuaXAhIHsgdTh4NjQgICwgIHU4LCBpOHg2NCwgaTgsICBjdHBvcF91OHg2NCwgIGN0 bHpfdTh4NjQsICBjdHR6X3U4eDY0ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2eDIgICwgIHUx NiwgaTE2eDIsIGkxNiwgIGN0cG9wX3UxNngyLCAgY3Rsel91MTZ4MiwgIGN0dHpfdTE2eDIgIH0K Ky1pbXBsX2JpdF9tYW5pcCEgeyB1MTZ4NCAgLCAgdTE2LCBpMTZ4NCwgaTE2LCAgY3Rwb3BfdTE2 eDQsICBjdGx6X3UxNng0LCAgY3R0el91MTZ4NCAgfQorLWltcGxfYml0X21hbmlwISB7IHUxNng4 ICAsICB1MTYsIGkxNng4LCBpMTYsICBjdHBvcF91MTZ4OCwgIGN0bHpfdTE2eDgsICBjdHR6X3Ux Nng4ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTE2eDE2ICwgdTE2LCBpMTZ4MTYsIGkxNiwgY3Rw b3BfdTE2eDE2LCBjdGx6X3UxNngxNiwgY3R0el91MTZ4MTYgfQorLWltcGxfYml0X21hbmlwISB7 IHUxNngzMiAsIHUxNiwgaTE2eDMyLCBpMTYsIGN0cG9wX3UxNngzMiwgY3Rsel91MTZ4MzIsIGN0 dHpfdTE2eDMyIH0KKy1pbXBsX2JpdF9tYW5pcCEgeyB1MzJ4MiAgLCAgdTMyLCBpMzJ4MiwgaTMy LCAgY3Rwb3BfdTMyeDIsICBjdGx6X3UzMngyLCAgY3R0el91MzJ4MiAgfQorLWltcGxfYml0X21h bmlwISB7IHUzMng0ICAsICB1MzIsIGkzMng0LCBpMzIsICBjdHBvcF91MzJ4NCwgIGN0bHpfdTMy eDQsICBjdHR6X3UzMng0ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTMyeDggICwgIHUzMiwgaTMy eDgsIGkzMiwgIGN0cG9wX3UzMng4LCAgY3Rsel91MzJ4OCwgIGN0dHpfdTMyeDggIH0KKy1pbXBs X2JpdF9tYW5pcCEgeyB1MzJ4MTYgLCB1MzIsIGkzMngxNiwgaTMyLCBjdHBvcF91MzJ4MTYsIGN0 bHpfdTMyeDE2LCBjdHR6X3UzMngxNiB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTY0eDIgICwgIHU2 NCwgaTY0eDIsIGk2NCwgIGN0cG9wX3U2NHgyLCAgY3Rsel91NjR4MiwgIGN0dHpfdTY0eDIgIH0K Ky1pbXBsX2JpdF9tYW5pcCEgeyB1NjR4NCAgLCAgdTY0LCBpNjR4NCwgaTY0LCAgY3Rwb3BfdTY0 eDQsICBjdGx6X3U2NHg0LCAgY3R0el91NjR4NCAgfQorLWltcGxfYml0X21hbmlwISB7IHU2NHg4 ICAsICB1NjQsIGk2NHg4LCBpNjQsICBjdHBvcF91NjR4OCwgIGN0bHpfdTY0eDgsICBjdHR6X3U2 NHg4ICB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTEyOHgxICwgdTEyOCwgaTEyOHgxLCBpMTI4LCBj dHBvcF91MTI4eDEsIGN0bHpfdTEyOHgxLCBjdHR6X3UxMjh4MSB9CistaW1wbF9iaXRfbWFuaXAh IHsgdTEyOHgyICwgdTEyOCwgaTEyOHgyLCBpMTI4LCBjdHBvcF91MTI4eDIsIGN0bHpfdTEyOHgy LCBjdHR6X3UxMjh4MiB9CistaW1wbF9iaXRfbWFuaXAhIHsgdTEyOHg0ICwgdTEyOCwgaTEyOHg0 LCBpMTI4LCBjdHBvcF91MTI4eDQsIGN0bHpfdTEyOHg0LCBjdHR6X3UxMjh4NCB9CistCistI1tj ZmcodGFyZ2V0X2FyY2ggPSAiYWFyY2g2NCIpXQorLWltcGwgQml0TWFuaXAgZm9yIHU4eDggewor LSAgICAjW2lubGluZV0KKy0gICAgZm4gY3Rwb3Aoc2VsZikgLT4gU2VsZiB7CistICAgICAgICBs ZXQgeTogdTh4OCA9IHNlbGYuY2FzdCgpOworLSAgICAgICAgdW5zYWZlIHsgY3Rwb3BfdTh4OCh5 KS5jYXN0KCkgfQorLSAgICB9CistCistICAgICNbaW5saW5lXQorLSAgICBmbiBjdGx6KHNlbGYp IC0+IFNlbGYgeworLSAgICAgICAgbGV0IHk6IHU4eDggPSBzZWxmLmNhc3QoKTsKKy0gICAgICAg IHVuc2FmZSB7IGN0bHpfdTh4OCh5LCBmYWxzZSkuY2FzdCgpIH0KKy0gICAgfQorLQorLSAgICAj W2lubGluZV0KKy0gICAgZm4gY3R0eihzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgIC8vIEZJWE1F OiBMTFZNIGN0dHoudjhpOCBicm9rZW4gb24gYWFyY2g2NCBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNzdWVzLzE5MQorLSAgICAgICAgLy8gT1BUSU1J WkU6IGFkYXB0IHRoZSBhbGdvcml0aG0gdXNlZCBmb3IgdjhpMTYvZXRjIHRvIFJ1c3QncyBhYXJj aDY0CistICAgICAgICAvLyBpbnRyaW5zaWNzCistICAgICAgICBsZXQgbXV0IHR6ID0gc2VsZjsK Ky0gICAgICAgIGZvciBpIGluIDAuLlNlbGY6OmxhbmVzKCkgeworLSAgICAgICAgICAgIHR6ID0g dHoucmVwbGFjZShpLCBzZWxmLmV4dHJhY3QoaSkudHJhaWxpbmdfemVyb3MoKSBhcyB1OCk7Cist ICAgICAgICB9CistICAgICAgICB0egorLSAgICB9CistfQorLSNbY2ZnKHRhcmdldF9hcmNoID0g ImFhcmNoNjQiKV0KKy1pbXBsIEJpdE1hbmlwIGZvciBpOHg4IHsKKy0gICAgI1tpbmxpbmVdCist ICAgIGZuIGN0cG9wKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgbGV0IHk6IHU4eDggPSBzZWxm LmNhc3QoKTsKKy0gICAgICAgIHVuc2FmZSB7IGN0cG9wX3U4eDgoeSkuY2FzdCgpIH0KKy0gICAg fQorLQorLSAgICAjW2lubGluZV0KKy0gICAgZm4gY3RseihzZWxmKSAtPiBTZWxmIHsKKy0gICAg ICAgIGxldCB5OiB1OHg4ID0gc2VsZi5jYXN0KCk7CistICAgICAgICB1bnNhZmUgeyBjdGx6X3U4 eDgoeSwgZmFsc2UpLmNhc3QoKSB9CistICAgIH0KKy0KKy0gICAgI1tpbmxpbmVdCistICAgIGZu IGN0dHooc2VsZikgLT4gU2VsZiB7CistICAgICAgICAvLyBGSVhNRTogTExWTSBjdHR6LnY4aTgg YnJva2VuIG9uIGFhcmNoNjQgaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3Bh Y2tlZF9zaW1kL2lzc3Vlcy8xOTEKKy0gICAgICAgIC8vIE9QVElNSVpFOiBhZGFwdCB0aGUgYWxn b3JpdGhtIHVzZWQgZm9yIHY4aTE2L2V0YyB0byBSdXN0J3MgYWFyY2g2NAorLSAgICAgICAgLy8g aW50cmluc2ljcworLSAgICAgICAgbGV0IG11dCB0eiA9IHNlbGY7CistICAgICAgICBmb3IgaSBp biAwLi5TZWxmOjpsYW5lcygpIHsKKy0gICAgICAgICAgICB0eiA9IHR6LnJlcGxhY2UoaSwgc2Vs Zi5leHRyYWN0KGkpLnRyYWlsaW5nX3plcm9zKCkgYXMgaTgpOworLSAgICAgICAgfQorLSAgICAg ICAgdHoKKy0gICAgfQorLX0KKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X3Bv aW50ZXJfd2lkdGggPSAiOCIpXSB7CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDog dXNpemV4MiwgdXNpemUsIGlzaXpleDIsIGlzaXplLCB1OHgyIH0KKy0gICAgICAgIGltcGxfYml0 X21hbmlwISB7IHNpemVkOiB1c2l6ZXg0LCB1c2l6ZSwgaXNpemV4NCwgaXNpemUsIHU4eDQgfQor LSAgICAgICAgaW1wbF9iaXRfbWFuaXAhIHsgc2l6ZWQ6IHVzaXpleDgsIHVzaXplLCBpc2l6ZXg4 LCBpc2l6ZSwgdTh4OCB9CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0 aCA9ICIxNiIpXSB7CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4Miwg dXNpemUsIGlzaXpleDIsIGlzaXplLCB1MTZ4MiB9CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEg eyBzaXplZDogdXNpemV4NCwgdXNpemUsIGlzaXpleDQsIGlzaXplLCB1MTZ4NCB9CistICAgICAg ICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNpemUsIGlzaXpleDgsIGlzaXpl LCB1MTZ4OCB9CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIz MiIpXSB7CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4MiwgdXNpemUs IGlzaXpleDIsIGlzaXplLCB1MzJ4MiB9CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXpl ZDogdXNpemV4NCwgdXNpemUsIGlzaXpleDQsIGlzaXplLCB1MzJ4NCB9CistICAgICAgICBpbXBs X2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNpemUsIGlzaXpleDgsIGlzaXplLCB1MzJ4 OCB9CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7 CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNpemV4MiwgdXNpemUsIGlzaXpl eDIsIGlzaXplLCB1NjR4MiB9CistICAgICAgICBpbXBsX2JpdF9tYW5pcCEgeyBzaXplZDogdXNp emV4NCwgdXNpemUsIGlzaXpleDQsIGlzaXplLCB1NjR4NCB9CistICAgICAgICBpbXBsX2JpdF9t YW5pcCEgeyBzaXplZDogdXNpemV4OCwgdXNpemUsIGlzaXpleDgsIGlzaXplLCB1NjR4OCB9Cist ICAgIH0gZWxzZSB7CistICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQgdGFyZ2V0 X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL2xsdm0ucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9sbHZtLnJzCisr KysgL2Rldi9udWxsCitAQCAtMSwxMjIgKzAsMCBAQAorLS8vISBMTFZNJ3MgcGxhdGZvcm0gaW50 cmluc2ljcworLSMhW2FsbG93KGRlYWRfY29kZSldCistCistdXNlIGNyYXRlOjpzZWFsZWQ6OlNo dWZmbGU7CistI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldIC8vIEZJWE1FOiBzcHVyaW91cyB3YXJu aW5nPworLXVzZSBjcmF0ZTo6c2VhbGVkOjpTaW1kOworLQorLWV4dGVybiAicGxhdGZvcm0taW50 cmluc2ljIiB7CistICAgIGZuIHNpbWRfc2h1ZmZsZTxULCBJLCBVPih4OiBULCB5OiBULCBpZHg6 IEkpIC0+IFU7CistfQorLQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3NhZmV0eV9kb2MpXQor LSNbaW5saW5lXQorLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3RvcjI8Y29uc3QgSURYOiBb dTMyOyAyXSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQorLXdoZXJlCistICAgIFQ6IFNpbWQsCist ICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7IDJdLCBPdXRwdXQgPSBVPiwK Ky17CistICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCistfQorLQorLSNbYWxsb3coY2xpcHB5 OjptaXNzaW5nX3NhZmV0eV9kb2MpXQorLSNbaW5saW5lXQorLXB1YiB1bnNhZmUgZm4gX19zaHVm ZmxlX3ZlY3RvcjQ8Y29uc3QgSURYOiBbdTMyOyA0XSwgVCwgVT4oeDogVCwgeTogVCkgLT4gVQor LXdoZXJlCistICAgIFQ6IFNpbWQsCistICAgIDxUIGFzIFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxl PFt1MzI7IDRdLCBPdXRwdXQgPSBVPiwKKy17CistICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgp CistfQorLQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3NhZmV0eV9kb2MpXQorLSNbaW5saW5l XQorLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3Rvcjg8Y29uc3QgSURYOiBbdTMyOyA4XSwg VCwgVT4oeDogVCwgeTogVCkgLT4gVQorLXdoZXJlCistICAgIFQ6IFNpbWQsCistICAgIDxUIGFz IFNpbWQ+OjpFbGVtZW50OiBTaHVmZmxlPFt1MzI7IDhdLCBPdXRwdXQgPSBVPiwKKy17CistICAg IHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCistfQorLQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5n X3NhZmV0eV9kb2MpXQorLSNbaW5saW5lXQorLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3Rv cjE2PGNvbnN0IElEWDogW3UzMjsgMTZdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCistd2hlcmUK Ky0gICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsg MTZdLCBPdXRwdXQgPSBVPiwKKy17CistICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCistfQor LQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3NhZmV0eV9kb2MpXQorLSNbaW5saW5lXQorLXB1 YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3RvcjMyPGNvbnN0IElEWDogW3UzMjsgMzJdLCBULCBV Pih4OiBULCB5OiBUKSAtPiBVCistd2hlcmUKKy0gICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2lt ZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgMzJdLCBPdXRwdXQgPSBVPiwKKy17CistICAgIHNp bWRfc2h1ZmZsZSh4LCB5LCBJRFgpCistfQorLQorLSNbYWxsb3coY2xpcHB5OjptaXNzaW5nX3Nh ZmV0eV9kb2MpXQorLSNbaW5saW5lXQorLXB1YiB1bnNhZmUgZm4gX19zaHVmZmxlX3ZlY3RvcjY0 PGNvbnN0IElEWDogW3UzMjsgNjRdLCBULCBVPih4OiBULCB5OiBUKSAtPiBVCistd2hlcmUKKy0g ICAgVDogU2ltZCwKKy0gICAgPFQgYXMgU2ltZD46OkVsZW1lbnQ6IFNodWZmbGU8W3UzMjsgNjRd LCBPdXRwdXQgPSBVPiwKKy17CistICAgIHNpbWRfc2h1ZmZsZSh4LCB5LCBJRFgpCistfQorLQor LWV4dGVybiAicGxhdGZvcm0taW50cmluc2ljIiB7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9l cTxULCBVPih4OiBULCB5OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbmU8VCwg VT4oeDogVCwgeTogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2x0PFQsIFU+KHg6 IFQsIHk6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9sZTxULCBVPih4OiBULCB5 OiBUKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZ3Q8VCwgVT4oeDogVCwgeTogVCkg LT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2dlPFQsIFU+KHg6IFQsIHk6IFQpIC0+IFU7 CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9pbnNlcnQ8VCwgVT4oeDogVCwgaWR4OiB1MzIs IHZhbDogVSkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2V4dHJhY3Q8VCwgVT4oeDog VCwgaWR4OiB1MzIpIC0+IFU7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9jYXN0PFQsIFU+ KHg6IFQpIC0+IFU7CistCistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9hZGQ8VD4oeDogVCwgeTog VCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3N1YjxUPih4OiBULCB5OiBUKSAtPiBU OworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfbXVsPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAg IHB1YihjcmF0ZSkgZm4gc2ltZF9kaXY8VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNy YXRlKSBmbiBzaW1kX3JlbTxUPih4OiBULCB5OiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfc2hsPFQ+KHg6IFQsIHk6IFQpIC0+IFQ7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9z aHI8VD4oeDogVCwgeTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2FuZDxUPih4 OiBULCB5OiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfb3I8VD4oeDogVCwgeTog VCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3hvcjxUPih4OiBULCB5OiBUKSAtPiBU OworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfcmVkdWNlX2FkZF91bm9yZGVyZWQ8VCwgVT4o eDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX3JlZHVjZV9tdWxfdW5vcmRlcmVk PFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYWRkX29y ZGVyZWQ8VCwgVT4oeDogVCwgYWNjOiBVKSAtPiBVOworLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRf cmVkdWNlX211bF9vcmRlcmVkPFQsIFU+KHg6IFQsIGFjYzogVSkgLT4gVTsKKy0gICAgcHViKGNy YXRlKSBmbiBzaW1kX3JlZHVjZV9taW48VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3JlZHVjZV9tYXg8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBm biBzaW1kX3JlZHVjZV9taW5fbmFubGVzczxULCBVPih4OiBUKSAtPiBVOworLSAgICBwdWIoY3Jh dGUpIGZuIHNpbWRfcmVkdWNlX21heF9uYW5sZXNzPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1 YihjcmF0ZSkgZm4gc2ltZF9yZWR1Y2VfYW5kPFQsIFU+KHg6IFQpIC0+IFU7CistICAgIHB1Yihj cmF0ZSkgZm4gc2ltZF9yZWR1Y2Vfb3I8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRl KSBmbiBzaW1kX3JlZHVjZV94b3I8VCwgVT4oeDogVCkgLT4gVTsKKy0gICAgcHViKGNyYXRlKSBm biBzaW1kX3JlZHVjZV9hbGw8VD4oeDogVCkgLT4gYm9vbDsKKy0gICAgcHViKGNyYXRlKSBmbiBz aW1kX3JlZHVjZV9hbnk8VD4oeDogVCkgLT4gYm9vbDsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBz aW1kX3NlbGVjdDxNLCBUPihtOiBNLCBhOiBULCBiOiBUKSAtPiBUOworLQorLSAgICBwdWIoY3Jh dGUpIGZuIHNpbWRfZm1pbjxUPihhOiBULCBiOiBUKSAtPiBUOworLSAgICBwdWIoY3JhdGUpIGZu IHNpbWRfZm1heDxUPihhOiBULCBiOiBUKSAtPiBUOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNp bWRfZnNxcnQ8VD4oYTogVCkgLT4gVDsKKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2ZtYTxUPihh OiBULCBiOiBULCBjOiBUKSAtPiBUOworLQorLSAgICBwdWIoY3JhdGUpIGZuIHNpbWRfZ2F0aGVy PFQsIFAsIE0+KHZhbHVlOiBULCBwb2ludGVyczogUCwgbWFzazogTSkgLT4gVDsKKy0gICAgcHVi KGNyYXRlKSBmbiBzaW1kX3NjYXR0ZXI8VCwgUCwgTT4odmFsdWU6IFQsIHBvaW50ZXJzOiBQLCBt YXNrOiBNKTsKKy0KKy0gICAgcHViKGNyYXRlKSBmbiBzaW1kX2JpdG1hc2s8VCwgVT4odmFsdWU6 IFQpIC0+IFU7CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vbWF0aC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2Nv ZGVnZW4vbWF0aC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0 eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgucnMKKysrKyAvZGV2L251bGwKK0BA IC0xLDMgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBtYXRoIG9wZXJhdGlvbnMKKy0KKy1wdWIoY3Jh dGUpIG1vZCBmbG9hdDsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0t IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0LnJz CisrKysgL2Rldi9udWxsCitAQCAtMSwxOCArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5n LXBvaW50IG1hdGggb3BlcmF0aW9ucy4KKy0jIVthbGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNt dXRlKV0KKy0KKy0jW21hY3JvX3VzZV0KKy1wdWIoY3JhdGUpIG1vZCBtYWNyb3M7CistcHViKGNy YXRlKSBtb2QgYWJzOworLXB1YihjcmF0ZSkgbW9kIGNvczsKKy1wdWIoY3JhdGUpIG1vZCBjb3Nf cGk7CistcHViKGNyYXRlKSBtb2QgZXhwOworLXB1YihjcmF0ZSkgbW9kIGxuOworLXB1YihjcmF0 ZSkgbW9kIG11bF9hZGQ7CistcHViKGNyYXRlKSBtb2QgbXVsX2FkZGU7CistcHViKGNyYXRlKSBt b2QgcG93ZjsKKy1wdWIoY3JhdGUpIG1vZCBzaW47CistcHViKGNyYXRlKSBtb2Qgc2luX2Nvc19w aTsKKy1wdWIoY3JhdGUpIG1vZCBzaW5fcGk7CistcHViKGNyYXRlKSBtb2Qgc3FydDsKKy1wdWIo Y3JhdGUpIG1vZCBzcXJ0ZTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvYWJzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Ficy5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvYWJzLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDMgKzAsMCBAQAorLS8vISBW ZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgZmFic2AKKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8v IEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBmYWJzCistCistdXNlIGNyYXRlOjoqOworLQor LXB1YihjcmF0ZSkgdHJhaXQgQWJzIHsKKy0gICAgZm4gYWJzKHNlbGYpIC0+IFNlbGY7CistfQor LQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5mYWJzLnYyZjMyIl0KKy0gICAgZm4gZmFic192MmYzMih4OiBmMzJ4Mikg LT4gZjMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy52NGYzMiJdCistICAgIGZu IGZhYnNfdjRmMzIoeDogZjMyeDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmZhYnMudjhmMzIiXQorLSAgICBmbiBmYWJzX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnYxNmYzMiJdCistICAgIGZuIGZhYnNfdjE2ZjMy KHg6IGYzMngxNikgLT4gZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQgZmFic2dsZSBlbGVt IHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnYxZjY0Il0KKy0gICAgZm4g ZmFic192MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICAqLworLSAgICAjW2xpbmtfbmFt ZSA9ICJsbHZtLmZhYnMudjJmNjQiXQorLSAgICBmbiBmYWJzX3YyZjY0KHg6IGY2NHgyKSAtPiBm NjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mYWJzLnY0ZjY0Il0KKy0gICAgZm4gZmFi c192NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFi cy52OGY2NCJdCistICAgIGZuIGZhYnNfdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQorLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZhYnMuZjMyIl0KKy0gICAgZm4gZmFic19mMzIoeDogZjMy KSAtPiBmMzI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZmFicy5mNjQiXQorLSAgICBmbiBm YWJzX2Y2NCh4OiBmNjQpIC0+IGY2NDsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKEFi cywgYWJzKTsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5 MHgiKV0geworLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmct bnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngy W2YzMjsgMl06IGZhYnNfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06 IGZhYnNfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IGZhYnNfZjMy KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogZmFic19mMzIpOworLQor LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogZmFic19mNjQpOworLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDRbZjY0OyA0XTogZmFic19mNjQpOworLSAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbZjY0OyA4XTogZmFic19mNjQpOworLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRh cmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAg ICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYg I1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9mYWJzZjRfYXZ4MjEyOCk7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfZmFic2Y4X2F2 eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xl ZWZfZmFic2Q0X2F2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDog U2xlZWZfZmFic2Y0X2F2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 ODogU2xlZWZfZmFic2Y4X2F2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogU2xlZWZfZmFic2QyX2F2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfZmFic2Q0X2F2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0 YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2ZhYnNmOF9hdngpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfZmFic2Q0X2F2 eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9mYWJzZjRf c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9mYWJzZjhf YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2ZhYnNkMl9z c2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2ZhYnNkNF9h dngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0 LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTog U2xlZWZfZmFic2Y0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZb cSA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2ZhYnNkMl9zc2U0KTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2ZhYnNmNF9zc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2ZhYnNmNF9zc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2ZhYnNkMl9zc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVm X2ZhYnNkMl9zc2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBmYWJzX2YzMik7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMngxNjogZmFic192MTZmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4ODogZmFic192OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng0OiBmYWJzX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6 IGZhYnNfdjhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogZmFic192 MmY2NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBmYWJzX3Y0ZjY0KTsK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBmYWJzX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4NDogZmFic192NGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZmFic192OGYz Mik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGZhYnNfdjE2ZjMyKTsKKy0KKy0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBmYWJzX3YyZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkh KGY2NHg0OiBmYWJzX3Y0ZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBmYWJzX3Y4 ZjY0KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvcy5ycworZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21h dGgvZmxvYXQvY29zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxMDMgKzAsMCBAQAorLS8vISBW ZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgY29zYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8g RklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0b3IgY29zCistCistdXNlIGNyYXRlOjoqOworLQorLXB1 YihjcmF0ZSkgdHJhaXQgQ29zIHsKKy0gICAgZm4gY29zKHNlbGYpIC0+IFNlbGY7CistfQorLQor LSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5jb3MudjJmMzIiXQorLSAgICBmbiBjb3NfdjJmMzIoeDogZjMyeDIpIC0+IGYz MngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmNvcy52NGYzMiJdCistICAgIGZuIGNvc192 NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnY4 ZjMyIl0KKy0gICAgZm4gY29zX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKKy0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jb3MudjE2ZjMyIl0KKy0gICAgZm4gY29zX3YxNmYzMih4OiBmMzJ4MTYp IC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUgNjQtYml0IGNvc2dsZSBlbGVtIHZlY3RvcnMKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3MudjFmNjQiXQorLSAgICBmbiBjb3NfdjFmNjQoeDog ZjY0eDEpIC0+IGY2NHgxOworLSAgICAgKi8KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5jb3Mu djJmNjQiXQorLSAgICBmbiBjb3NfdjJmNjQoeDogZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLmNvcy52NGY2NCJdCistICAgIGZuIGNvc192NGY2NCh4OiBmNjR4NCkg LT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0uY29zLnY4ZjY0Il0KKy0gICAgZm4g Y29zX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5jb3MuZjMyIl0KKy0gICAgZm4gY29zX2YzMih4OiBmMzIpIC0+IGYzMjsKKy0gICAgI1tsaW5r X25hbWUgPSAibGx2bS5jb3MuZjY0Il0KKy0gICAgZm4gY29zX2Y2NCh4OiBmNjQpIC0+IGY2NDsK Ky19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKENvcywgY29zKTsKKy0KKy1jZmdfaWYhIHsK Ky0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0geworLSAgICAgICAgLy8gRklY TUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1 ZXMvMTQKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19mMzIpOworLSAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0XTogY29zX2YzMik7CistICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBjb3NfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYz MngxNltmMzI7IDE2XTogY29zX2YzMik7CistCistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mltm NjQ7IDJdOiBjb3NfZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IGNv c19mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbZjY0OyA4XTogY29zX2Y2NCk7Cist ICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9 ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBj ZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIild IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVm X2Nvc2Y0X3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZb aCA9PiBmMzJ4OF06IFNsZWVmX2Nvc2Y4X3UxMGF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfY29zZDRfdTEwYXZ4Mik7CistCistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9jb3NmNF91MTBhdngyMTI4KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX2Nvc2Y4X3UxMGF2eDIp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zZDJfdTEwYXZ4 MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NkNF91 MTBhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAi YXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2Nvc2Y4X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9jb3NkNF91MTBhdngpOworLQorLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfY29zZjRfdTEwc3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NmOF91MTBhdngpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zZDJfdTEwc3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9jb3NkNF91MTBhdngp OworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIi KV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xl ZWZfY29zZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltx ID0+IGYzMng0XTogU2xlZWZfY29zZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9jb3NkMl91MTBzc2U0KTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc2Y0X3UxMHNzZTQpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfY29zZjRf dTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3Nk Ml91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4 Ml06IFNsZWVmX2Nvc2QyX3UxMHNzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAg ICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06IGNvc19mMzIpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IGNvc192MTZmMzIpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4ODogY29zX3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDQ6IGNvc192NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBjb3NfdjhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjog Y29zX3YyZjY0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IGNvc192NGY2 NCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogY29zX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4NDogY29zX3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBjb3Nfdjhm MzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2OiBjb3NfdjE2ZjMyKTsKKy0KKy0gICAg ICAgIGltcGxfdW5hcnkhKGY2NHgyOiBjb3NfdjJmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDQ6IGNvc192NGY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4ODogY29zX3Y4ZjY0 KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvY29zX3BpLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L2Nvc19waS5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L21hdGgvZmxvYXQvY29zX3BpLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw4NyArMCwwIEBACist Ly8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBjb3NgCistIyFbYWxsb3codW51c2VkKV0KKy0K Ky0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMgY29zX3BpCistCistdXNlIGNyYXRlOjoq OworLQorLXB1YihjcmF0ZSkgdHJhaXQgQ29zUGkgeworLSAgICBmbiBjb3NfcGkoc2VsZikgLT4g U2VsZjsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUhKENvc1BpLCBjb3NfcGkpOworLQor LW1hY3JvX3J1bGVzISBpbXBsX2RlZiB7CistICAgICgkdmlkOmlkZW50LCAkUEk6cGF0aCkgPT4g eworLSAgICAgICAgaW1wbCBDb3NQaSBmb3IgJHZpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gY29zX3BpKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICAoc2VsZiAqIFNlbGY6OnNwbGF0KCRQSSkpLmNvcygpCistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLX0KKy1tYWNyb19ydWxlcyEgaW1wbF9kZWYzMiB7CistICAgICgkdmlk OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2RlZiEoJHZpZCwgY3JhdGU6OmYzMjo6Y29uc3Rz OjpQSSk7CistICAgIH07CistfQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZjY0IHsKKy0gICAgKCR2 aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6ZjY0Ojpjb25z dHM6OlBJKTsKKy0gICAgfTsKKy19CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKGFsbCh0 YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAg ICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlm ICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfY29zcGlmNF91MDVhdngyMTI4KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9jb3Nw aWY4X3UwNWF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2 NHg0XTogU2xlZWZfY29zcGlkNF91MDVhdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc3BpZjRfdTA1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NwaWY4X3UwNWF2eDIpOworLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfY29zcGlkMl91MDVhdngyMTI4KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX2Nvc3BpZDRfdTA1YXZ4Mik7Cist ICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9jb3Nw aWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBm MzJ4OF06IFNsZWVmX2Nvc3BpZjhfdTA1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX2Nvc3BpZDRfdTA1YXZ4KTsKKy0KKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc3BpZjRfdTA1c3NlNCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9jb3NwaWY4X3UwNWF2eCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9jb3NwaWQyX3UwNXNzZTQp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xlZWZfY29zcGlkNF91MDVh dngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0 LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTog U2xlZWZfY29zcGlmNF91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9jb3NwaWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsK Ky0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX2Nvc3BpZjRfdTA1 c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBT bGVlZl9jb3NwaWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MjogU2xlZWZfY29zcGlkMl91MDVzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2Nvc3BpZDJfdTA1c3NlNCk7CistICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDIpOworLSAgICAgICAg ICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIh KGYzMng4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX2Rl ZjY0IShmNjR4NCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX2RlZjMy IShmMzJ4Mik7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7CistICAgICAgICBpbXBsX2Rl ZjMyIShmMzJ4OCk7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4MTYpOworLQorLSAgICAgICAg aW1wbF9kZWY2NCEoZjY0eDIpOworLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDQpOworLSAgICAg ICAgaW1wbF9kZWY2NCEoZjY0eDgpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvZXhwLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9leHAucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEx MiArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBleHBgCistIyFbYWxsb3co dW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgZXhwZ2xlIGVsZW0gdmVjdG9ycyBtaXNleHBn CistCistdXNlIGNyYXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgRXhwIHsKKy0gICAgZm4g ZXhwKHNlbGYpIC0+IFNlbGY7CistfQorLQorLSNbYWxsb3coaW1wcm9wZXJfY3R5cGVzKV0KKy1l eHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjJmMzIiXQorLSAgICBm biBleHBfdjJmMzIoeDogZjMyeDIpIC0+IGYzMngyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZt LmV4cC52NGYzMiJdCistICAgIGZuIGV4cF92NGYzMih4OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uZXhwLnY4ZjMyIl0KKy0gICAgZm4gZXhwX3Y4ZjMyKHg6IGYz Mng4KSAtPiBmMzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjE2ZjMyIl0KKy0g ICAgZm4gZXhwX3YxNmYzMih4OiBmMzJ4MTYpIC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUgNjQt Yml0IGV4cGdsZSBlbGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjFm NjQiXQorLSAgICBmbiBleHBfdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgxOworLSAgICAgKi8KKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAudjJmNjQiXQorLSAgICBmbiBleHBfdjJmNjQoeDog ZjY0eDIpIC0+IGY2NHgyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmV4cC52NGY2NCJdCist ICAgIGZuIGV4cF92NGY2NCh4OiBmNjR4NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0g Imxsdm0uZXhwLnY4ZjY0Il0KKy0gICAgZm4gZXhwX3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsK Ky0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAuZjMyIl0KKy0gICAgZm4gZXhwX2YzMih4 OiBmMzIpIC0+IGYzMjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5leHAuZjY0Il0KKy0gICAg Zm4gZXhwX2Y2NCh4OiBmNjQpIC0+IGY2NDsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUh KEV4cCwgZXhwKTsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAi czM5MHgiKV0geworLSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmctbnVyc2VyeS9wYWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgIGltcGxfdW5hcnkhKGYz MngyW2YzMjsgMl06IGV4cF9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDRbZjMyOyA0 XTogZXhwX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBleHBfZjMy KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogZXhwX2YzMik7CistCist ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MltmNjQ7IDJdOiBleHBfZjY0KTsKKy0gICAgICAgIGlt cGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IGV4cF9mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDhbZjY0OyA4XTogZXhwX2Y2NCk7CistICAgIH0gZWxzZSBpZiAjW2NmZyhhbGwodGFyZ2V0 X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsKKy0gICAgICAgIHVz ZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMGF2eDIxMjgpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2V4cGY4X3UxMGF2 eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xl ZWZfZXhwZDRfdTEwYXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBTbGVlZl9leHBmNF91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDg6IFNsZWVmX2V4cGY4X3UxMGF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4MjogU2xlZWZfZXhwZDJfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGY2NHg0OiBTbGVlZl9leHBkNF91MTBhdngyKTsKKy0gICAgICAgICAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgaW1w bF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTQpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX2V4cGY4X3Ux MGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBT bGVlZl9leHBkNF91MTBhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfZXhwZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz Mng4OiBTbGVlZl9leHBmOF91MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4MjogU2xlZWZfZXhwZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGY2NHg0OiBTbGVlZl9leHBkNF91MTBhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3Nl NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVl Zl9leHBkMl91MTBzc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6 IFNsZWVmX2V4cGY0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 OFtoID0+IGYzMng0XTogU2xlZWZfZXhwZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9leHBkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2V4cGQyX3UxMHNzZTQpOworLSAg ICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UyIildIHsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0 X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4 NF06IFNsZWVmX2V4cGY0X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4OFtxID0+IGY2NHgyXTogU2xlZWZfZXhwZDJfdTEwc3NlMik7CistCistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9leHBmNF91MTBzc2UyKTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX2V4cGY0X3UxMHNzZTIp OworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfZXhwZDJfdTEwc3Nl Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVl Zl9leHBkMl91MTBzc2UyKTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBleHBfZjMyKTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2OiBleHBfdjE2ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDg6IGV4cF92OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng0OiBleHBfdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODog ZXhwX3Y4ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IGV4cF92MmY2 NCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBleHBfdjRmNjQpOworLSAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfdW5h cnkhKGYzMngyW2YzMjsgMl06IGV4cF9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6 IGV4cF92NGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogZXhwX3Y4ZjMyKTsKKy0g ICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogZXhwX3YxNmYzMik7CistCistICAgICAgICBpbXBs X3VuYXJ5IShmNjR4MjogZXhwX3YyZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBl eHBfdjRmNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGV4cF92OGY2NCk7CistICAg IH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9tYXRoL2Zsb2F0L2xuLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L2xuLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9sbi5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsMTEyICswLDAgQEAKKy0vLyEgVmVydGljYWwgZmxvYXRp bmctcG9pbnQgYGxuYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklYTUUgNjQtYml0IGxu Z2xlIGVsZW0gdmVjdG9ycyBtaXNsbmcKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRl KSB0cmFpdCBMbiB7CistICAgIGZuIGxuKHNlbGYpIC0+IFNlbGY7CistfQorLQorLSNbYWxsb3co aW1wcm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5sb2cudjJmMzIiXQorLSAgICBmbiBsbl92MmYzMih4OiBmMzJ4MikgLT4gZjMyeDI7CistICAg ICNbbGlua19uYW1lID0gImxsdm0ubG9nLnY0ZjMyIl0KKy0gICAgZm4gbG5fdjRmMzIoeDogZjMy eDQpIC0+IGYzMng0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52OGYzMiJdCistICAg IGZuIGxuX3Y4ZjMyKHg6IGYzMng4KSAtPiBmMzJ4ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5sb2cudjE2ZjMyIl0KKy0gICAgZm4gbG5fdjE2ZjMyKHg6IGYzMngxNikgLT4gZjMyeDE2Owor LSAgICAvKiBGSVhNRSA2NC1iaXQgbG5nbGUgZWxlbSB2ZWN0b3JzCistICAgICNbbGlua19uYW1l ID0gImxsdm0ubG9nLnYxZjY0Il0KKy0gICAgZm4gbG5fdjFmNjQoeDogZjY0eDEpIC0+IGY2NHgx OworLSAgICAgKi8KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cudjJmNjQiXQorLSAgICBm biBsbl92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0u bG9nLnY0ZjY0Il0KKy0gICAgZm4gbG5fdjRmNjQoeDogZjY0eDQpIC0+IGY2NHg0OworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmxvZy52OGY2NCJdCistICAgIGZuIGxuX3Y4ZjY0KHg6IGY2NHg4 KSAtPiBmNjR4ODsKKy0KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5sb2cuZjMyIl0KKy0gICAg Zm4gbG5fZjMyKHg6IGYzMikgLT4gZjMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmxvZy5m NjQiXQorLSAgICBmbiBsbl9mNjQoeDogZjY0KSAtPiBmNjQ7CistfQorLQorLWdlbl91bmFyeV9p bXBsX3RhYmxlIShMbiwgbG4pOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRf YXJjaCA9ICJzMzkweCIpXSB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbZjMyOyAyXTogbG5fZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0 W2YzMjsgNF06IGxuX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4OFtmMzI7IDhdOiBs bl9mMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBsbl9mMzIpOwor LQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogbG5fZjY0KTsKKy0gICAgICAg IGltcGxfdW5hcnkhKGY2NHg0W2Y2NDsgNF06IGxuX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4OFtmNjQ7IDhdOiBsbl9mNjQpOworLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdl dF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1 c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBhdngyMTI4KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9sb2dmOF91MTBh dngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNs ZWVmX2xvZ2Q0X3UxMGF2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4 NDogU2xlZWZfbG9nZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMng4OiBTbGVlZl9sb2dmOF91MTBhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmNjR4NDogU2xlZWZfbG9nZDRfdTEwYXZ4Mik7CistICAgICAgICAgICAgfSBlbHNl IGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9sb2dmOF91 MTBhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTog U2xlZWZfbG9nZDRfdTEwYXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4ODogU2xlZWZfbG9nZjhfdTEwYXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmNjR4NDogU2xlZWZfbG9nZDRfdTEwYXZ4KTsKKy0gICAgICAgICAgICB9IGVsc2UgaWYgI1tj ZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTogU2xl ZWZfbG9nZDJfdTEwc3NlNCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0 OiBTbGVlZl9sb2dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDhbaCA9PiBmMzJ4NF06IFNsZWVmX2xvZ2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfbG9nZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9sb2dkMl91MTBzc2U0KTsKKy0g ICAgICAgICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4gZjMyeDRdOiBTbGVlZl9sb2dm NF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMy eDRdOiBTbGVlZl9sb2dmNF91MTBzc2UyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX2xvZ2QyX3UxMHNzZTIpOworLQorLSAgICAgICAgICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfbG9nZjRfdTEwc3NlMik7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9sb2dmNF91MTBzc2Uy KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX2xvZ2QyX3UxMHNz ZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NFtoID0+IGY2NHgyXTogU2xl ZWZfbG9nZDJfdTEwc3NlMik7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogbG5fZjMyKTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDE2OiBsbl92MTZmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4ODogbG5fdjhmNjQpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4NDogbG5fdjRmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogbG5f djhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogbG5fdjJmNjQpOwor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogbG5fdjRmNjQpOworLSAgICAgICAg ICAgIH0KKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYz MngyW2YzMjsgMl06IGxuX2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogbG5fdjRm MzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IGxuX3Y4ZjMyKTsKKy0gICAgICAgIGlt cGxfdW5hcnkhKGYzMngxNjogbG5fdjE2ZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5hcnkhKGY2 NHgyOiBsbl92MmY2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogbG5fdjRmNjQpOwor LSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDg6IGxuX3Y4ZjY0KTsKKy0gICAgfQorLX0KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxv YXQvbWFjcm9zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9t YXRoL2Zsb2F0L21hY3Jvcy5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbWFjcm9zLnJz CisrKysgL2Rldi9udWxsCitAQCAtMSw0NzAgKzAsMCBAQAorLS8vISBVdGlsaXR5IG1hY3Jvcwor LSMhW2FsbG93KHVudXNlZCldCistCistbWFjcm9fcnVsZXMhIGltcGxfdW5hcnlfIHsKKy0gICAg Ly8gaW1wbGVtZW50YXRpb24gbWFwcGluZyAxOjEKKy0gICAgKHZlYyB8ICR0cmFpdF9pZDppZGVu dCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDppZGVudCwKKy0gICAgICRmdW46aWRlbnQp ID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgkZnVu KHRyYW5zbXV0ZShzZWxmKSkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgIH07CistICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxIGZv ciB3aGVuIGAkZnVuYCBpcyBhIGdlbmVyaWMgZnVuY3Rpb24KKy0gICAgLy8gbGlrZSBzb21lIG9m IHRoZSBmcCBtYXRoIHJ1c3RjIGludHJpbnNpY3MgKGUuZy4gYGZuIGZ1bjxUPih4OiBUKSAtPiBU YCkuCistICAgIChnZW4gfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2 ZWNfaWQ6aWRlbnQsCistICAgICAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFp dF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg Zm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bihzZWxmLjApKQorLSAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAoc2NhbGFyIHwg JHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LAorLSAgICAgJHZlY19pZDppZGVu dCwgWyRzaWQ6aWRlbnQ7ICRzY291bnQ6ZXhwcl0sICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAg IGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHNj YWxhcnM6IFskc2lkOyAkc2NvdW50XSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICAgICAgICAgIGxldCBtdXQgc2NhbGFycyA9IFUgeyB2ZWM6IHNlbGYgfS5zY2FsYXJzOwor LSAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4gJm11dCBzY2FsYXJzIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAqaSA9ICRmdW4oKmkpOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgVSB7IHNjYWxhcnMgfS52ZWMKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRp b24gY2FsbGluZyBmdW4gdHdpY2Ugb24gZWFjaCBvZiB0aGUgdmVjdG9yIGhhbHZlczoKKy0gICAg KGhhbHZlcyB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwgJHZlY19pZDpp ZGVudCwKKy0gICAgICR2ZWNoX2lkOmlkZW50LCAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBp bXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAg ICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211 dGU7CistICAgICAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICB2ZWM6ICR2ZWNfaWQsCistICAgICAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiBbJHZl Y2hfaWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAg ICAgbGV0IG11dCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0uaGFsdmVzOworLQorLSAgICAgICAg ICAgICAgICAgICAgKmhhbHZlcy5nZXRfdW5jaGVja2VkX211dCgwKSA9IHRyYW5zbXV0ZSgkZnVu KHRyYW5zbXV0ZSgqaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpKSk7CistICAgICAgICAgICAgICAg ICAgICAqaGFsdmVzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4odHJhbnNt dXRlKCpoYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg IFUgeyBoYWx2ZXMgfS52ZWMKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gZm91 ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6CistICAgIChxdWFydGVyIHwg JHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAg ICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0 X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBm biAkdHJhaXRfbWV0aG9kKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUg eworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAg ICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzog JHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBxdWFydGVyczogWyR2ZWNxX2lkOyA0 XSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCBt dXQgcXVhcnRlcnMgPSBVIHsgdmVjOiBzZWxmIH0ucXVhcnRlcnM7CistCistICAgICAgICAgICAg ICAgICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bih0 cmFuc211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpKSk7CistICAgICAgICAgICAgICAg ICAgICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMSkgPSB0cmFuc211dGUoJGZ1bih0cmFu c211dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMSkpKSk7CistICAgICAgICAgICAgICAgICAg ICAqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMikgPSB0cmFuc211dGUoJGZ1bih0cmFuc211 dGUoKnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMikpKSk7CistICAgICAgICAgICAgICAgICAgICAq cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUo KnF1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpKSk7CistCistICAgICAgICAgICAgICAgICAgICBV IHsgcXVhcnRlcnMgfS52ZWMKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gb25j ZSBvbiBhIHZlY3RvciB0d2ljZSBhcyBsYXJnZToKKy0gICAgKHR3aWNlIHwgJHRyYWl0X2lkOmlk ZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJHZlY3RfaWQ6 aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVj X2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0 aG9kKHNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9Owor LQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgdmVjOiBbJHZlY19pZDsgMl0sCistICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2 ZWN0X2lkLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAg bGV0IHR3aWNlID0gVSB7IHZlYzogW3NlbGYsIHVuaW5pdGlhbGl6ZWQoKV0gfS50d2ljZTsKKy0g ICAgICAgICAgICAgICAgICAgIGxldCB0d2ljZSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSh0 d2ljZSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICooVSB7IHR3aWNlIH0udmVjLmdldF91 bmNoZWNrZWQoMCkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBnZW5fdW5hcnlfaW1wbF90YWJsZSB7 CistICAgICgkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQpID0+IHsKKy0gICAg ICAgIG1hY3JvX3J1bGVzISBpbXBsX3VuYXJ5IHsKKy0gICAgICAgICAgICAoJHZpZDppZGVudDog JGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5XyEodmVjIHwgJHRy YWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAg ICAgICAgICAgICgkdmlkOmlkZW50W2ddOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnlfIShnZW4gfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRm dW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAgKCR2aWQ6aWRlbnRbJHNpZDppZGVu dDsgJHNjOmV4cHJdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsIFskc2lkOyAkc2Nd LCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W3NdOiAk ZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShzY2FsYXIgfCAk dHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICRmdW4pOworLSAgICAgICAgICAgIH07Cist ICAgICAgICAgICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVuOmlkZW50KSA9 PiB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfIShoYWx2ZXMgfCAkdHJhaXRfaWQsICR0 cmFpdF9tZXRob2QsICR2aWQsICR2aWRfaCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAg ICAgICAgICAoJHZpZDppZGVudFtxID0+ICR2aWRfcTppZGVudF06ICRmdW46aWRlbnQpID0+IHsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHF1YXJ0ZXIgfCAkdHJhaXRfaWQsICR0cmFp dF9tZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAg ICAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeV8hKHR3aWNlIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0 aG9kLCAkdmlkLCAkdmlkX3QsICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICB9Cist ICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3RlcnRpYXJ5XyB7CistICAgIC8vIGlt cGxlbWVudGF0aW9uIG1hcHBpbmcgMToxCistICAgICh2ZWMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0 cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAgICAkZnVuOmlkZW50KSA9PiB7 CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAgICAgICAgI1tp bmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBTZWxmLCB6OiBT ZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAgICAgICAgICAgICB0 cmFuc211dGUoJGZ1bih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0ZSh5KSwgdHJhbnNtdXRlKHop KSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAg fTsKKy0gICAgKHNjYWxhciB8ICR0cmFpdF9pZDppZGVudCwgJHRyYWl0X21ldGhvZDppZGVudCwK Ky0gICAgICR2ZWNfaWQ6aWRlbnQsIFskc2lkOmlkZW50OyAkc2NvdW50OmV4cHJdLCAkZnVuOmlk ZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3IgJHZlY19pZCB7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0X21ldGhvZChzZWxmLCB5OiBT ZWxmLCB6OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAg ICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZlYzog JHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXJzOiBbJHNpZDsgJHNjb3Vu dF0sCistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBsZXQgbXV0 IHggPSBVIHsgdmVjOiBzZWxmIH0uc2NhbGFyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5 ID0gVSB7IHZlYzogeSB9LnNjYWxhcnM7CistICAgICAgICAgICAgICAgICAgICBsZXQgeiA9IFUg eyB2ZWM6IHogfS5zY2FsYXJzOworLSAgICAgICAgICAgICAgICAgICAgZm9yICh4LCAoeSwgeikp IGluICgmbXV0IHNjYWxhcnMpLnppcCgmeSkuemlwKCZ6KSB7CistICAgICAgICAgICAgICAgICAg ICAgICAgKmkgPSAkZnVuKCppLCAqeSwgKnopOworLSAgICAgICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICAgICAgVSB7IHZlYzogeCB9LnZlYworLSAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlv biBjYWxsaW5nIGZ1biB0d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgorLSAgICAo aGFsdmVzIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlk ZW50LAorLSAgICAgJHZlY2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGlt cGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICBoYWx2ZXM6IFskdmVjaF9pZDsgMl0sCistICAgICAgICAgICAgICAgICAgICB9CistCist ICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IHhfaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9Lmhh bHZlczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5X2hhbHZlcyA9IFUgeyB2ZWM6IHkgfS5o YWx2ZXM7CistICAgICAgICAgICAgICAgICAgICBsZXQgel9oYWx2ZXMgPSBVIHsgdmVjOiB6IH0u aGFsdmVzOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhfaGFsdmVzLmdldF91bmNoZWNrZWRf bXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNt dXRlKCp4X2hhbHZlcy5nZXRfdW5jaGVja2VkKDApKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0cmFuc211dGUoKnlfaGFsdmVzLmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zbXV0ZSgqel9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAg ICAgICAgICAgICAgICApKTsKKy0gICAgICAgICAgICAgICAgICAgICp4X2hhbHZlcy5nZXRfdW5j aGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAgICAgICAgICAgICAg IHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZCgxKSksCistICAgICAgICAgICAgICAg ICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRfdW5jaGVja2VkKDEpKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfaGFsdmVzLmdldF91bmNoZWNrZWQoMSkpLAor LSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICBVIHsgaGFs dmVzOiB4X2hhbHZlcyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biBm b3VyIHRpbWVzIG9uIGVhY2ggb2YgdGhlIHZlY3RvciBxdWFydGVyczoKKy0gICAgKHF1YXJ0ZXIg fCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCist ICAgICAkdmVjcV9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJh aXRfaWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IGZuICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAg ICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1l bTo6dHJhbnNtdXRlOworLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgdmVjOiAkdmVjX2lkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHF1 YXJ0ZXJzOiBbJHZlY3FfaWQ7IDRdLAorLSAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAg ICAgICAgICAgICAgICAgbGV0IG11dCB4X3F1YXJ0ZXJzID0gVSB7IHZlYzogc2VsZiB9LnF1YXJ0 ZXJzOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHlfcXVhcnRlcnMgPSBVIHsgdmVjOiB5IH0u cXVhcnRlcnM7CistICAgICAgICAgICAgICAgICAgICBsZXQgel9xdWFydGVycyA9IFUgeyB2ZWM6 IHogfS5xdWFydGVyczsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91 bmNoZWNrZWRfbXV0KDApID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAg ICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDApKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tl ZCgwKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDEpID0gdHJhbnNtdXRlKCRmdW4oCistICAg ICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQo MSkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRf dW5jaGVja2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVh cnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJh bnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0 ZXJzLmdldF91bmNoZWNrZWQoMikpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0 ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDIpKSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSksCistICAgICAgICAgICAg ICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICp4X3F1YXJ0ZXJzLmdldF91bmNo ZWNrZWRfbXV0KDMpID0gdHJhbnNtdXRlKCRmdW4oCistICAgICAgICAgICAgICAgICAgICAgICAg dHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMykpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRfdW5jaGVja2VkKDMpKSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnpfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgz KSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIFUg eyBxdWFydGVyczogeF9xdWFydGVycyB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxs aW5nIGZ1biBvbmNlIG9uIGEgdmVjdG9yIHR3aWNlIGFzIGxhcmdlOgorLSAgICAodHdpY2UgfCAk dHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRlbnQsCistICAg ICAkdmVjdF9pZDppZGVudCwgJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRf aWQgZm9yICR2ZWNfaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZu ICR0cmFpdF9tZXRob2Qoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAgICAg ICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6 e3RyYW5zbXV0ZSwgdW5pbml0aWFsaXplZH07CistCistICAgICAgICAgICAgICAgICAgICB1bmlv biBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6IFskdmVjX2lkOyAyXSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICB0d2ljZTogJHZlY3RfaWQsCistICAgICAgICAgICAgICAgICAg ICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQgeF90d2ljZSA9IFUgeyB2ZWM6IFtzZWxm LCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7CistICAgICAgICAgICAgICAgICAgICBsZXQgeV90 d2ljZSA9IFUgeyB2ZWM6IFt5LCB1bmluaXRpYWxpemVkKCldIH0udHdpY2U7CistICAgICAgICAg ICAgICAgICAgICBsZXQgel90d2ljZSA9IFUgeyB2ZWM6IFt6LCB1bmluaXRpYWxpemVkKCldIH0u dHdpY2U7CistICAgICAgICAgICAgICAgICAgICBsZXQgdHdpY2U6ICR2ZWN0X2lkID0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoeF90d2ljZSksIHRy YW5zbXV0ZSh5X3R3aWNlKSwgdHJhbnNtdXRlKHpfdHdpY2UpKSk7CistCistICAgICAgICAgICAg ICAgICAgICAqKFUgeyB0d2ljZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1tYWNy b19ydWxlcyEgZ2VuX3RlcnRpYXJ5X2ltcGxfdGFibGUgeworLSAgICAoJHRyYWl0X2lkOmlkZW50 LCAkdHJhaXRfbWV0aG9kOmlkZW50KSA9PiB7CistICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF90 ZXJ0aWFyeSB7CistICAgICAgICAgICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQpID0+IHsKKy0g ICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeV8hKHZlYyB8ICR0cmFpdF9pZCwgJHRyYWl0X21l dGhvZCwgJHZpZCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDpp ZGVudFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAg ICAgICAgaW1wbF90ZXJ0aWFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwg JHZpZCwgWyRzaWQ7ICRzY10sICRmdW4pOworLSAgICAgICAgICAgIH07CistICAgICAgICAgICAg KCR2aWQ6aWRlbnRbc106ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeV8hKHNjYWxhciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJGZ1bik7 CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFtoID0+ICR2aWRfaDpp ZGVudF06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeV8h KGhhbHZlcyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsK Ky0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlk ZW50XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEo cXVhcnRlciB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9xLCAkZnVuKTsK Ky0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W3QgPT4gJHZpZF90Omlk ZW50XTogJGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5XyEo dHdpY2UgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfdCwgJGZ1bik7Cist ICAgICAgICAgICAgfTsKKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMh IGltcGxfYmluYXJ5XyB7CistICAgIC8vIGltcGxlbWVudGF0aW9uIG1hcHBpbmcgMToxCistICAg ICh2ZWMgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRlbnQsICR2ZWNfaWQ6aWRl bnQsCistICAgICAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsICR0cmFpdF9pZCBmb3Ig JHZlY19pZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gJHRyYWl0 X21ldGhvZChzZWxmLCB5OiBTZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAg ICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoc2VsZiksIHRyYW5zbXV0 ZSh5KSkpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistICAgIChzY2FsYXIgfCAkdHJhaXRfaWQ6aWRlbnQsICR0cmFpdF9tZXRob2Q6aWRl bnQsCistICAgICAkdmVjX2lkOmlkZW50LCBbJHNpZDppZGVudDsgJHNjb3VudDpleHByXSwgJGZ1 bjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCAkdHJhaXRfaWQgZm9yICR2ZWNfaWQgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuICR0cmFpdF9tZXRob2Qoc2VsZiwg eTogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAg ICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWNf aWQsCistICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyczogWyRzaWQ7ICRzY291bnRdLAor LSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB4ID0g VSB7IHZlYzogc2VsZiB9LnNjYWxhcnM7CistICAgICAgICAgICAgICAgICAgICBsZXQgeSA9IFUg eyB2ZWM6IHkgfS5zY2FsYXJzOworLSAgICAgICAgICAgICAgICAgICAgZm9yICh4LCB5KSBpbiB4 Lml0ZXJfbXV0KCkuemlwKCZ5KSB7CistICAgICAgICAgICAgICAgICAgICAgICAgKnggPSAkZnVu KCp4LCAqeSk7CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICBV IHsgc2NhbGFyczogeCB9LnZlYworLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGZ1biB0 d2ljZSBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgaGFsdmVzOgorLSAgICAoaGFsdmVzIHwgJHRyYWl0 X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAkdmVjX2lkOmlkZW50LAorLSAgICAgJHZl Y2hfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgJHRyYWl0X2lkIGZv ciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiAkdHJh aXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNh ZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0g ICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHZl YzogJHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6IFskdmVjaF9pZDsg Ml0sCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQg bXV0IHhfaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKKy0gICAgICAgICAgICAgICAg ICAgIGxldCB5X2hhbHZlcyA9IFUgeyB2ZWM6IHkgfS5oYWx2ZXM7CistCistICAgICAgICAgICAg ICAgICAgICAqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfaGFsdmVzLmdldF91bmNoZWNr ZWQoMCkpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9oYWx2ZXMuZ2V0 X3VuY2hlY2tlZCgwKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0gICAgICAgICAgICAg ICAgICAgICp4X2hhbHZlcy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAor LSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9oYWx2ZXMuZ2V0X3VuY2hlY2tl ZCgxKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X2hhbHZlcy5nZXRf dW5jaGVja2VkKDEpKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAg ICAgICAgICAgVSB7IGhhbHZlczogeF9oYWx2ZXMgfS52ZWMKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8gaW1wbGVtZW50YXRp b24gY2FsbGluZyBmdW4gZm91ciB0aW1lcyBvbiBlYWNoIG9mIHRoZSB2ZWN0b3IgcXVhcnRlcnM6 CistICAgIChxdWFydGVyIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAk dmVjX2lkOmlkZW50LAorLSAgICAgJHZlY3FfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIHZlYzogJHZlY19pZCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICBxdWFydGVyczogWyR2ZWNxX2lkOyA0XSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0K Ky0gICAgICAgICAgICAgICAgICAgIGxldCBtdXQgeF9xdWFydGVycyA9IFUgeyB2ZWM6IHNlbGYg fS5xdWFydGVyczsKKy0gICAgICAgICAgICAgICAgICAgIGxldCB5X3F1YXJ0ZXJzID0gVSB7IHZl YzogeSB9LnF1YXJ0ZXJzOworLQorLSAgICAgICAgICAgICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0 X3VuY2hlY2tlZF9tdXQoMCkgPSB0cmFuc211dGUoJGZ1bigKKy0gICAgICAgICAgICAgICAgICAg ICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSksCistICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQoMCkpLAor LSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAgICAgICAgICAgICAgICAgICAqeF9xdWFy dGVycy5nZXRfdW5jaGVja2VkX211dCgxKSA9IHRyYW5zbXV0ZSgkZnVuKAorLSAgICAgICAgICAg ICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeF9xdWFydGVycy5nZXRfdW5jaGVja2VkKDEpKSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnlfcXVhcnRlcnMuZ2V0X3VuY2hlY2tl ZCgxKSksCistICAgICAgICAgICAgICAgICAgICApKTsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWRfbXV0KDIpID0gdHJhbnNtdXRlKCRmdW4oCistICAg ICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp4X3F1YXJ0ZXJzLmdldF91bmNoZWNrZWQo MikpLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbXV0ZSgqeV9xdWFydGVycy5nZXRf dW5jaGVja2VkKDIpKSwKKy0gICAgICAgICAgICAgICAgICAgICkpOworLQorLSAgICAgICAgICAg ICAgICAgICAgKnhfcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZF9tdXQoMykgPSB0cmFuc211dGUoJGZ1 bigKKy0gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoKnhfcXVhcnRlcnMuZ2V0X3Vu Y2hlY2tlZCgzKSksCistICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNtdXRlKCp5X3F1YXJ0 ZXJzLmdldF91bmNoZWNrZWQoMykpLAorLSAgICAgICAgICAgICAgICAgICAgKSk7CistCistICAg ICAgICAgICAgICAgICAgICBVIHsgcXVhcnRlcnM6IHhfcXVhcnRlcnMgfS52ZWMKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgLy8g aW1wbGVtZW50YXRpb24gY2FsbGluZyBmdW4gb25jZSBvbiBhIHZlY3RvciB0d2ljZSBhcyBsYXJn ZToKKy0gICAgKHR3aWNlIHwgJHRyYWl0X2lkOmlkZW50LCAkdHJhaXRfbWV0aG9kOmlkZW50LCAk dmVjX2lkOmlkZW50LAorLSAgICAgJHZlY3RfaWQ6aWRlbnQsICRmdW46aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGwgJHRyYWl0X2lkIGZvciAkdmVjX2lkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICBmbiAkdHJhaXRfbWV0aG9kKHNlbGYsIHk6IFNlbGYpIC0+IFNlbGYg eworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgdXNlIGNy YXRlOjptZW06Ont0cmFuc211dGUsIHVuaW5pdGlhbGl6ZWR9OworLQorLSAgICAgICAgICAgICAg ICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiBbJHZlY19pZDsg Ml0sCistICAgICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICR2ZWN0X2lkLAorLSAgICAgICAg ICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgbGV0IHhfdHdpY2UgPSBVIHsg dmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOworLSAgICAgICAgICAgICAgICAg ICAgbGV0IHlfdHdpY2UgPSBVIHsgdmVjOiBbeSwgdW5pbml0aWFsaXplZCgpXSB9LnR3aWNlOwor LSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlOiAkdmVjdF9pZCA9IHRyYW5zbXV0ZSgkZnVu KHRyYW5zbXV0ZSh4X3R3aWNlKSwgdHJhbnNtdXRlKHlfdHdpY2UpKSk7CistCistICAgICAgICAg ICAgICAgICAgICAqKFUgeyB0d2ljZSB9LnZlYy5nZXRfdW5jaGVja2VkKDApKQorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy1t YWNyb19ydWxlcyEgZ2VuX2JpbmFyeV9pbXBsX3RhYmxlIHsKKy0gICAgKCR0cmFpdF9pZDppZGVu dCwgJHRyYWl0X21ldGhvZDppZGVudCkgPT4geworLSAgICAgICAgbWFjcm9fcnVsZXMhIGltcGxf YmluYXJ5IHsKKy0gICAgICAgICAgICAoJHZpZDppZGVudDogJGZ1bjppZGVudCkgPT4geworLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHZlYyB8ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhv ZCwgJHZpZCwgJGZ1bik7CistICAgICAgICAgICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVu dFskc2lkOmlkZW50OyAkc2M6ZXhwcl06ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnlfIShzY2FsYXIgfCAkdHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQs IFskc2lkOyAkc2NdLCAkZnVuKTsKKy0gICAgICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlk OmlkZW50W3NdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 XyEoc2NhbGFyIHwgJHRyYWl0X2lkLCAkdHJhaXRfbWV0aG9kLCAkdmlkLCAkZnVuKTsKKy0gICAg ICAgICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W2ggPT4gJHZpZF9oOmlkZW50XTog JGZ1bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKGhhbHZlcyB8 ICR0cmFpdF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF9oLCAkZnVuKTsKKy0gICAgICAg ICAgICB9OworLSAgICAgICAgICAgICgkdmlkOmlkZW50W3EgPT4gJHZpZF9xOmlkZW50XTogJGZ1 bjppZGVudCkgPT4geworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeV8hKHF1YXJ0ZXIgfCAk dHJhaXRfaWQsICR0cmFpdF9tZXRob2QsICR2aWQsICR2aWRfcSwgJGZ1bik7CistICAgICAgICAg ICAgfTsKKy0gICAgICAgICAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVudF06ICRmdW46 aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnlfISh0d2ljZSB8ICR0cmFp dF9pZCwgJHRyYWl0X21ldGhvZCwgJHZpZCwgJHZpZF90LCAkZnVuKTsKKy0gICAgICAgICAgICB9 OworLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2FkZC5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9tdWxfYWRkLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSwxMDkgKzAsMCBAQAorLS8vISBWZXJ0aWNhbCBmbG9hdGluZy1wb2ludCBgbXVsX2FkZGAKKy0j IVthbGxvdyh1bnVzZWQpXQorLXVzZSBjcmF0ZTo6KjsKKy0KKy0vLyBGSVhNRTogNjQtYml0IDEg ZWxlbWVudCBtdWxfYWRkCistCistcHViKGNyYXRlKSB0cmFpdCBNdWxBZGQgeworLSAgICBmbiBt dWxfYWRkKHNlbGYsIHk6IFNlbGYsIHo6IFNlbGYpIC0+IFNlbGY7CistfQorLQorLSNbY2ZnKG5v dCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KKy0jW2FsbG93KGltcHJvcGVyX2N0eXBlcyldCist ZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnYyZjMyIl0KKy0gICAg Zm4gZm1hX3YyZjMyKHg6IGYzMngyLCB5OiBmMzJ4MiwgejogZjMyeDIpIC0+IGYzMngyOworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52NGYzMiJdCistICAgIGZuIGZtYV92NGYzMih4OiBm MzJ4NCwgeTogZjMyeDQsIHo6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5mbWEudjhmMzIiXQorLSAgICBmbiBmbWFfdjhmMzIoeDogZjMyeDgsIHk6IGYzMng4LCB6 OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnYxNmYzMiJd CistICAgIGZuIGZtYV92MTZmMzIoeDogZjMyeDE2LCB5OiBmMzJ4MTYsIHo6IGYzMngxNikgLT4g ZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQgc2luZ2xlIGVsZW0gdmVjdG9ycworLSAgICAj W2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52MWY2NCJdCistICAgIGZuIGZtYV92MWY2NCh4OiBmNjR4 MSwgeTogZjY0eDEsIHo6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgKi8KKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mbWEudjJmNjQiXQorLSAgICBmbiBmbWFfdjJmNjQoeDogZjY0eDIsIHk6IGY2 NHgyLCB6OiBmNjR4MikgLT4gZjY0eDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uZm1hLnY0 ZjY0Il0KKy0gICAgZm4gZm1hX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4NCwgejogZjY0eDQpIC0+ IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLmZtYS52OGY2NCJdCistICAgIGZuIGZt YV92OGY2NCh4OiBmNjR4OCwgeTogZjY0eDgsIHo6IGY2NHg4KSAtPiBmNjR4ODsKKy19CistCist Z2VuX3RlcnRpYXJ5X2ltcGxfdGFibGUhKE11bEFkZCwgbXVsX2FkZCk7CistCistY2ZnX2lmISB7 CistICAgIGlmICNbY2ZnKHRhcmdldF9hcmNoID0gInMzOTB4IildIHsKKy0gICAgICAgIC8vIEZJ WE1FOiBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGFja2VkX3NpbWQvaXNz dWVzLzE0CistICAgICAgICBtYWNyb19ydWxlcyEgaW1wbF9icm9rZW4geworLSAgICAgICAgICAg ICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgICAgICAgICAgaW1wbCBNdWxBZGQgZm9yICRpZCB7 CistICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAgICAgIGZu IG11bF9hZGQoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZiAqIHkgKyB6CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICB9OworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1w bF9icm9rZW4hKGYzMngyKTsKKy0gICAgICAgIGltcGxfYnJva2VuIShmMzJ4NCk7CistICAgICAg ICBpbXBsX2Jyb2tlbiEoZjMyeDgpOworLSAgICAgICAgaW1wbF9icm9rZW4hKGYzMngxNik7Cist CistICAgICAgICBpbXBsX2Jyb2tlbiEoZjY0eDIpOworLSAgICAgICAgaW1wbF9icm9rZW4hKGY2 NHg0KTsKKy0gICAgICAgIGltcGxfYnJva2VuIShmNjR4OCk7CistICAgIH0gZWxzZSBpZiAjW2Nm ZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSldIHsK Ky0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAg ICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAgICAg ICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X2F2eDIxMjgp OworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNs ZWVmX2ZtYWY4X2F2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4OFto ID0+IGY2NHg0XTogU2xlZWZfZm1hZDRfYXZ4Mik7CistCistICAgICAgICAgICAgICAgIGltcGxf dGVydGlhcnkhKGYzMng0OiBTbGVlZl9mbWFmNF9hdngyMTI4KTsKKy0gICAgICAgICAgICAgICAg aW1wbF90ZXJ0aWFyeSEoZjMyeDg6IFNsZWVmX2ZtYWY4X2F2eDIpOworLSAgICAgICAgICAgICAg ICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogU2xlZWZfZm1hZDJfYXZ4MjEyOCk7CistICAgICAgICAg ICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg0OiBTbGVlZl9mbWFkNF9hdngyKTsKKy0gICAgICAg ICAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAg ICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX2ZtYWY0X3Nz ZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06 IFNsZWVmX2ZtYWY4X2F2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4 W2ggPT4gZjY0eDRdOiBTbGVlZl9mbWFkNF9hdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4NDogU2xlZWZfZm1hZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGlt cGxfdGVydGlhcnkhKGYzMng4OiBTbGVlZl9mbWFmOF9hdngpOworLSAgICAgICAgICAgICAgICBp bXBsX3RlcnRpYXJ5IShmNjR4MjogU2xlZWZfZm1hZDJfc3NlNCk7CistICAgICAgICAgICAgICAg IGltcGxfdGVydGlhcnkhKGY2NHg0OiBTbGVlZl9mbWFkNF9hdngpOworLSAgICAgICAgICAgIH0g ZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAg ICAgICBpbXBsX3RlcnRpYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMngxNltxID0+IGYzMng0XTogU2xl ZWZfZm1hZjRfc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHg4W3Eg PT4gZjY0eDJdOiBTbGVlZl9mbWFkMl9zc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF90 ZXJ0aWFyeSEoZjMyeDQ6IFNsZWVmX2ZtYWY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3RlcnRpYXJ5IShmMzJ4OFtoID0+IGYzMng0XTogU2xlZWZfZm1hZjRfc3NlNCk7CistICAgICAg ICAgICAgICAgIGltcGxfdGVydGlhcnkhKGY2NHgyOiBTbGVlZl9mbWFkMl9zc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX2ZtYWQy X3NzZTQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfdGVy dGlhcnkhKGYzMngyOiBmbWFfdjJmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5 IShmMzJ4MTY6IGZtYV92MTZmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShm NjR4ODogZm1hX3Y4ZjY0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMy eDQ6IGZtYV92NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng4OiBm bWFfdjhmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4MjogZm1hX3Yy ZjY0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDQ6IGZtYV92NGY2NCk7 CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1w bF90ZXJ0aWFyeSEoZjMyeDI6IGZtYV92MmYzMik7CistICAgICAgICBpbXBsX3RlcnRpYXJ5IShm MzJ4NDogZm1hX3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfdGVydGlhcnkhKGYzMng4OiBmbWFfdjhm MzIpOworLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjMyeDE2OiBmbWFfdjE2ZjMyKTsKKy0gICAg ICAgIC8vIGltcGxfdGVydGlhcnkhKGY2NHgxOiBmbWFfdjFmNjQpOyAvLyBGSVhNRSA2NC1iaXQg Zm1hZ2xlIGVsZW0gdmVjdG9ycworLSAgICAgICAgaW1wbF90ZXJ0aWFyeSEoZjY0eDI6IGZtYV92 MmY2NCk7CistICAgICAgICBpbXBsX3RlcnRpYXJ5IShmNjR4NDogZm1hX3Y0ZjY0KTsKKy0gICAg ICAgIGltcGxfdGVydGlhcnkhKGY2NHg4OiBmbWFfdjhmNjQpOworLSAgICB9CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9h dC9tdWxfYWRkZS5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9tdWxfYWRkZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvbXVsX2Fk ZGUucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDYwICswLDAgQEAKKy0vLyEgQXBwcm94aW1hdGlv biBmb3IgZmxvYXRpbmctcG9pbnQgYG11bF9hZGRgCistdXNlIGNyYXRlOjoqOworLQorLS8vIEZJ WE1FOiA2NC1iaXQgMSBlbGVtZW50IG11bF9hZGRlCistCistcHViKGNyYXRlKSB0cmFpdCBNdWxB ZGRFIHsKKy0gICAgZm4gbXVsX2FkZGUoc2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZjsK Ky19CistCistI1tjZmcobm90KHRhcmdldF9hcmNoID0gInMzOTB4IikpXQorLSNbYWxsb3coaW1w cm9wZXJfY3R5cGVzKV0KKy1leHRlcm4gIkMiIHsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5m bXVsYWRkLnYyZjMyIl0KKy0gICAgZm4gZm11bGFkZF92MmYzMih4OiBmMzJ4MiwgeTogZjMyeDIs IHo6IGYzMngyKSAtPiBmMzJ4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnY0 ZjMyIl0KKy0gICAgZm4gZm11bGFkZF92NGYzMih4OiBmMzJ4NCwgeTogZjMyeDQsIHo6IGYzMng0 KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnY4ZjMyIl0KKy0g ICAgZm4gZm11bGFkZF92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgsIHo6IGYzMng4KSAtPiBmMzJ4 ODsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRkLnYxNmYzMiJdCistICAgIGZuIGZt dWxhZGRfdjE2ZjMyKHg6IGYzMngxNiwgeTogZjMyeDE2LCB6OiBmMzJ4MTYpIC0+IGYzMngxNjsK Ky0gICAgLyogRklYTUUgNjQtYml0IHNpbmdsZSBlbGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mbXVsYWRkLnYxZjY0Il0KKy0gICAgZm4gZm11bGFkZF92MWY2NCh4OiBmNjR4 MSwgeTogZjY0eDEsIHo6IGY2NHgxKSAtPiBmNjR4MTsKKy0gICAgKi8KKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5mbXVsYWRkLnYyZjY0Il0KKy0gICAgZm4gZm11bGFkZF92MmY2NCh4OiBmNjR4 MiwgeTogZjY0eDIsIHo6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2 bS5mbXVsYWRkLnY0ZjY0Il0KKy0gICAgZm4gZm11bGFkZF92NGY2NCh4OiBmNjR4NCwgeTogZjY0 eDQsIHo6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5mbXVsYWRk LnY4ZjY0Il0KKy0gICAgZm4gZm11bGFkZF92OGY2NCh4OiBmNjR4OCwgeTogZjY0eDgsIHo6IGY2 NHg4KSAtPiBmNjR4ODsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfbXVsX2FkZGUgeworLSAg ICAoJGlkOmlkZW50IDogJGZuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIE11bEFkZEUgZm9y ICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gbXVsX2FkZGUo c2VsZiwgeTogU2VsZiwgejogU2VsZikgLT4gU2VsZiB7CistICAgICAgICAgICAgICAgICNbY2Zn KG5vdCh0YXJnZXRfYXJjaCA9ICJzMzkweCIpKV0KKy0gICAgICAgICAgICAgICAgeworLSAgICAg ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjptZW06OnRyYW5zbXV0ZTsKKy0gICAgICAgICAgICAg ICAgICAgIHVuc2FmZSB7IHRyYW5zbXV0ZSgkZm4odHJhbnNtdXRlKHNlbGYpLCB0cmFuc211dGUo eSksIHRyYW5zbXV0ZSh6KSkpIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXQorLSAgICAgICAgICAgICAgICB7CistICAg ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1u dXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgICAgICAgICAgICAgc2VsZiAq IHkgKyB6CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorLQorLWltcGxfbXVsX2FkZGUhKGYzMngyOiBmbXVsYWRkX3YyZjMyKTsKKy1p bXBsX211bF9hZGRlIShmMzJ4NDogZm11bGFkZF92NGYzMik7CistaW1wbF9tdWxfYWRkZSEoZjMy eDg6IGZtdWxhZGRfdjhmMzIpOworLWltcGxfbXVsX2FkZGUhKGYzMngxNjogZm11bGFkZF92MTZm MzIpOworLS8vIGltcGxfbXVsX2FkZGUhKGY2NHgxOiBmbWFfdjFmNjQpOyAvLyBGSVhNRSA2NC1i aXQgZm1hZ2xlIGVsZW0gdmVjdG9ycworLWltcGxfbXVsX2FkZGUhKGY2NHgyOiBmbXVsYWRkX3Yy ZjY0KTsKKy1pbXBsX211bF9hZGRlIShmNjR4NDogZm11bGFkZF92NGY2NCk7CistaW1wbF9tdWxf YWRkZSEoZjY0eDg6IGZtdWxhZGRfdjhmNjQpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9wb3dmLnJzIGIvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Bvd2YucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDExMiAr MCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBwb3dmYAorLSMhW2FsbG93KHVu dXNlZCldCistCistLy8gRklYTUUgNjQtYml0IHBvd2ZnbGUgZWxlbSB2ZWN0b3JzIG1pc3Bvd2Zn CistCistdXNlIGNyYXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgUG93ZiB7CistICAgIGZu IHBvd2Yoc2VsZiwgeDogU2VsZikgLT4gU2VsZjsKKy19CistCistI1thbGxvdyhpbXByb3Blcl9j dHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MmYz MiJdCistICAgIGZuIHBvd2ZfdjJmMzIoeDogZjMyeDIsIHk6IGYzMngyKSAtPiBmMzJ4MjsKKy0g ICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjRmMzIiXQorLSAgICBmbiBwb3dmX3Y0ZjMyKHg6 IGYzMng0LCB5OiBmMzJ4NCkgLT4gZjMyeDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93 LnY4ZjMyIl0KKy0gICAgZm4gcG93Zl92OGYzMih4OiBmMzJ4OCwgeTogZjMyeDgpIC0+IGYzMng4 OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MTZmMzIiXQorLSAgICBmbiBwb3dmX3Yx NmYzMih4OiBmMzJ4MTYsIHk6IGYzMngxNikgLT4gZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1i aXQgcG93ZmdsZSBlbGVtIHZlY3RvcnMKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5wb3cudjFm NjQiXQorLSAgICBmbiBwb3dmX3YxZjY0KHg6IGY2NHgxLCB5OiBmNjR4MSkgLT4gZjY0eDE7Cist ICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy52MmY2NCJdCistICAgIGZuIHBv d2ZfdjJmNjQoeDogZjY0eDIsIHk6IGY2NHgyKSAtPiBmNjR4MjsKKy0gICAgI1tsaW5rX25hbWUg PSAibGx2bS5wb3cudjRmNjQiXQorLSAgICBmbiBwb3dmX3Y0ZjY0KHg6IGY2NHg0LCB5OiBmNjR4 NCkgLT4gZjY0eDQ7CistICAgICNbbGlua19uYW1lID0gImxsdm0ucG93LnY4ZjY0Il0KKy0gICAg Zm4gcG93Zl92OGY2NCh4OiBmNjR4OCwgeTogZjY0eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xp bmtfbmFtZSA9ICJsbHZtLnBvdy5mMzIiXQorLSAgICBmbiBwb3dmX2YzMih4OiBmMzIsIHk6IGYz MikgLT4gZjMyOworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnBvdy5mNjQiXQorLSAgICBmbiBw b3dmX2Y2NCh4OiBmNjQsIHk6IGY2NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fYmluYXJ5X2ltcGxf dGFibGUhKFBvd2YsIHBvd2YpOworLQorLWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRf YXJjaCA9ICJzMzkweCIpXSB7CistICAgICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF9i aW5hcnkhKGYzMngyW2YzMjsgMl06IHBvd2ZfZjMyKTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShm MzJ4NFtmMzI7IDRdOiBwb3dmX2YzMik7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDhbZjMy OyA4XTogcG93Zl9mMzIpOworLSAgICAgICAgaW1wbF9iaW5hcnkhKGYzMngxNltmMzI7IDE2XTog cG93Zl9mMzIpOworLQorLSAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyW2Y2NDsgMl06IHBvd2Zf ZjY0KTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4NFtmNjQ7IDRdOiBwb3dmX2Y2NCk7Cist ICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDhbZjY0OyA4XTogcG93Zl9mNjQpOworLSAgICB9IGVs c2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYt c3lzIikpXSB7CistICAgICAgICB1c2Ugc2xlZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7 CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAg ICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRf dTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbaCA9PiBm MzJ4OF06IFNsZWVmX3Bvd2Y4X3UxMGF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFy eSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3Bvd2Q0X3UxMGF2eDIpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0X3UxMGF2eDIxMjgpOworLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDg6IFNsZWVmX3Bvd2Y4X3UxMGF2eDIpOwor LSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMGF2eDIx MjgpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDQ6IFNsZWVmX3Bvd2Q0X3Ux MGF2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJh dngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06 IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMy eDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9wb3dmOF91MTBhdngpOworLSAgICAgICAgICAgICAgICBp bXBsX2JpbmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3Bvd2Q0X3UxMGF2eCk7CistCist ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4NDogU2xlZWZfcG93ZjRfdTEwc3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4ODogU2xlZWZfcG93ZjhfdTEwYXZ4 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgyOiBTbGVlZl9wb3dkMl91MTBz c2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0OiBTbGVlZl9wb3dkNF91 MTBhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJz c2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDJbdCA9PiBmMzJ4 NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEo ZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9wb3dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAg ICAgaW1wbF9iaW5hcnkhKGY2NHg4W3EgPT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2U0KTsK Ky0KKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng0OiBTbGVlZl9wb3dmNF91MTBz c2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBT bGVlZl9wb3dmNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgy OiBTbGVlZl9wb3dkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2 NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9wb3dkMl91MTBzc2U0KTsKKy0gICAgICAgICAgICB9IGVs c2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlMiIpXSB7CistICAgICAgICAgICAgICAg IGltcGxfYmluYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfcG93ZjRfdTEwc3NlMik7Cist ICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4NF06IFNsZWVmX3Bv d2Y0X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDhbcSA9PiBm NjR4Ml06IFNsZWVmX3Bvd2QyX3UxMHNzZTIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX2Jp bmFyeSEoZjMyeDQ6IFNsZWVmX3Bvd2Y0X3UxMHNzZTIpOworLSAgICAgICAgICAgICAgICBpbXBs X2JpbmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3Bvd2Y0X3UxMHNzZTIpOworLSAgICAg ICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IFNsZWVmX3Bvd2QyX3UxMHNzZTIpOworLSAg ICAgICAgICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3Bvd2Qy X3UxMHNzZTIpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmMzJ4MltmMzI7IDJdOiBwb3dmX2YzMik7CistICAgICAgICAgICAgICAgIGltcGxf YmluYXJ5IShmMzJ4NDogcG93Zl92NGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5 IShmMzJ4ODogcG93Zl92OGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfYmluYXJ5IShmMzJ4 MTY6IHBvd2ZfdjE2ZjMyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHgy OiBwb3dmX3YyZjY0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg0OiBwb3dm X3Y0ZjY0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9iaW5hcnkhKGY2NHg4OiBwb3dmX3Y4ZjY0 KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBp bXBsX2JpbmFyeSEoZjMyeDJbZjMyOyAyXTogcG93Zl9mMzIpOworLSAgICAgICAgaW1wbF9iaW5h cnkhKGYzMng0OiBwb3dmX3Y0ZjMyKTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmMzJ4ODogcG93 Zl92OGYzMik7CistICAgICAgICBpbXBsX2JpbmFyeSEoZjMyeDE2OiBwb3dmX3YxNmYzMik7Cist CistICAgICAgICBpbXBsX2JpbmFyeSEoZjY0eDI6IHBvd2ZfdjJmNjQpOworLSAgICAgICAgaW1w bF9iaW5hcnkhKGY2NHg0OiBwb3dmX3Y0ZjY0KTsKKy0gICAgICAgIGltcGxfYmluYXJ5IShmNjR4 ODogcG93Zl92OGY2NCk7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW4ucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9tYXRoL2Zsb2F0L3Npbi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMTAzICswLDAg QEAKKy0vLyEgVmVydGljYWwgZmxvYXRpbmctcG9pbnQgYHNpbmAKKy0jIVthbGxvdyh1bnVzZWQp XQorLQorLS8vIEZJWE1FIDY0LWJpdCAxIGVsZW0gdmVjdG9ycyBzaW4KKy0KKy11c2UgY3JhdGU6 Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBTaW4geworLSAgICBmbiBzaW4oc2VsZikgLT4gU2Vs ZjsKKy19CistCistI1thbGxvdyhpbXByb3Blcl9jdHlwZXMpXQorLWV4dGVybiAiQyIgeworLSAg ICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MmYzMiJdCistICAgIGZuIHNpbl92MmYzMih4OiBm MzJ4MikgLT4gZjMyeDI7CistICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnY0ZjMyIl0KKy0g ICAgZm4gc2luX3Y0ZjMyKHg6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAi bGx2bS5zaW4udjhmMzIiXQorLSAgICBmbiBzaW5fdjhmMzIoeDogZjMyeDgpIC0+IGYzMng4Owor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MTZmMzIiXQorLSAgICBmbiBzaW5fdjE2ZjMy KHg6IGYzMngxNikgLT4gZjMyeDE2OworLSAgICAvKiBGSVhNRSA2NC1iaXQgc2luZ2xlIGVsZW0g dmVjdG9ycworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi52MWY2NCJdCistICAgIGZuIHNp bl92MWY2NCh4OiBmNjR4MSkgLT4gZjY0eDE7CistICAgICAqLworLSAgICAjW2xpbmtfbmFtZSA9 ICJsbHZtLnNpbi52MmY2NCJdCistICAgIGZuIHNpbl92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7 CistICAgICNbbGlua19uYW1lID0gImxsdm0uc2luLnY0ZjY0Il0KKy0gICAgZm4gc2luX3Y0ZjY0 KHg6IGY2NHg0KSAtPiBmNjR4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zaW4udjhmNjQi XQorLSAgICBmbiBzaW5fdjhmNjQoeDogZjY0eDgpIC0+IGY2NHg4OworLQorLSAgICAjW2xpbmtf bmFtZSA9ICJsbHZtLnNpbi5mMzIiXQorLSAgICBmbiBzaW5fZjMyKHg6IGYzMikgLT4gZjMyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNpbi5mNjQiXQorLSAgICBmbiBzaW5fZjY0KHg6IGY2 NCkgLT4gZjY0OworLX0KKy0KKy1nZW5fdW5hcnlfaW1wbF90YWJsZSEoU2luLCBzaW4pOworLQor LWNmZ19pZiEgeworLSAgICBpZiAjW2NmZyh0YXJnZXRfYXJjaCA9ICJzMzkweCIpXSB7CistICAg ICAgICAvLyBGSVhNRTogaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tl ZF9zaW1kL2lzc3Vlcy8xNAorLSAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc2lu X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NFtmMzI7IDRdOiBzaW5fZjMyKTsKKy0g ICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IHNpbl9mMzIpOworLSAgICAgICAgaW1w bF91bmFyeSEoZjMyeDE2W2YzMjsgMTZdOiBzaW5fZjMyKTsKKy0KKy0gICAgICAgIGltcGxfdW5h cnkhKGY2NHgyW2Y2NDsgMl06IHNpbl9mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRb ZjY0OyA0XTogc2luX2Y2NCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtmNjQ7IDhdOiBz aW5fZjY0KTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQi LCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsK Ky0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYz Mng0XTogU2xlZWZfc2luZjRfdTEwYXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2luZjhfdTEwYXZ4Mik7CistICAgICAgICAg ICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W2ggPT4gZjY0eDRdOiBTbGVlZl9zaW5kNF91MTBhdngy KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbmY0X3Ux MGF2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZfc2lu ZjhfdTEwYXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9z aW5kMl91MTBhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNs ZWVmX3NpbmQ0X3UxMGF2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRf ZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0 ID0+IGYzMng0XTogU2xlZWZfc2luZjRfdTEwc3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc2luZjhfdTEwYXZ4KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmQ0X3UxMGF2 eCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zaW5mNF91 MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IFNsZWVmX3NpbmY4 X3UxMGF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zaW5k Ml91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3Np bmQ0X3UxMGF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJl ID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngyW3QgPT4g ZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zaW5mNF91MTBzc2U0KTsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjY0eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3NpbmQyX3UxMHNzZTQp OworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc2luZjRfdTEw c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBT bGVlZl9zaW5mNF91MTBzc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6 IFNsZWVmX3NpbmQyX3UxMHNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NFtoID0+IGY2NHgyXTogU2xlZWZfc2luZDJfdTEwc3NlNCk7CistICAgICAgICAgICAgfSBlbHNl IHsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDJbZjMyOyAyXTogc2luX2YzMik7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngxNjogc2luX3YxNmYzMik7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBzaW5fdjhmNjQpOworLQorLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc2luX3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDg6IHNpbl92OGYzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGY2NHgyOiBzaW5fdjJmNjQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 NDogc2luX3Y0ZjY0KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltmMzI7IDJdOiBzaW5fZjMyKTsKKy0gICAgICAg IGltcGxfdW5hcnkhKGYzMng0OiBzaW5fdjRmMzIpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjMy eDg6IHNpbl92OGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IHNpbl92MTZmMzIp OworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IHNpbl92MmY2NCk7CistICAgICAgICBp bXBsX3VuYXJ5IShmNjR4NDogc2luX3Y0ZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4 OiBzaW5fdjhmNjQpOworLSAgICB9CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vbWF0aC9mbG9hdC9zaW5fY29zX3BpLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGku cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9jb3NfcGkucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDE4OCArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzaW5f Y29zYAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklYTUUgNjQtYml0IDEgZWxlbSB2ZWN0 b3JzIHNpbl9jb3MKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0cmFpdCBTaW5D b3NQaTogU2l6ZWQgeworLSAgICB0eXBlIE91dHB1dDsKKy0gICAgZm4gc2luX2Nvc19waShzZWxm KSAtPiBTZWxmOjpPdXRwdXQ7CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZiB7CistICAg ICgkdmlkOmlkZW50LCAkUEk6cGF0aCkgPT4geworLSAgICAgICAgaW1wbCBTaW5Db3NQaSBmb3Ig JHZpZCB7CistICAgICAgICAgICAgdHlwZSBPdXRwdXQgPSAoU2VsZiwgU2VsZik7CistICAgICAg ICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2luX2Nvc19waShzZWxmKSAtPiBTZWxm OjpPdXRwdXQgeworLSAgICAgICAgICAgICAgICBsZXQgdiA9IHNlbGYgKiBTZWxmOjpzcGxhdCgk UEkpOworLSAgICAgICAgICAgICAgICAodi5zaW4oKSwgdi5jb3MoKSkKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZjMyIHsK Ky0gICAgKCR2aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVmISgkdmlkLCBjcmF0ZTo6 ZjMyOjpjb25zdHM6OlBJKTsKKy0gICAgfTsKKy19CistbWFjcm9fcnVsZXMhIGltcGxfZGVmNjQg eworLSAgICAoJHZpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9kZWYhKCR2aWQsIGNyYXRl OjpmNjQ6OmNvbnN0czo6UEkpOworLSAgICB9OworLX0KKy0KKy1tYWNyb19ydWxlcyEgaW1wbF91 bmFyeV90IHsKKy0gICAgKCR2aWQ6aWRlbnQ6ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGlt cGwgU2luQ29zUGkgZm9yICR2aWQgeworLSAgICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYs IFNlbGYpOworLSAgICAgICAgICAgIGZuIHNpbl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0 IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6bWVtOjp0cmFuc211dGU7CistICAgICAgICAgICAgICAgICAgICB0cmFuc211dGUoJGZ1 bih0cmFuc211dGUoc2VsZikpKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgfQorLSAgICB9OworLSAgICAoJHZpZDppZGVudFt0ID0+ICR2aWRfdDppZGVudF06 ICRmdW46aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgU2luQ29zUGkgZm9yICR2aWQgeworLSAg ICAgICAgICAgIHR5cGUgT3V0cHV0ID0gKFNlbGYsIFNlbGYpOworLSAgICAgICAgICAgIGZuIHNp bl9jb3NfcGkoc2VsZikgLT4gU2VsZjo6T3V0cHV0IHsKKy0gICAgICAgICAgICAgICAgdW5zYWZl IHsKKy0gICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp7dHJhbnNtdXRlLCB1bmlu aXRpYWxpemVkfTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIHZlYzogWyR2aWQ7IDJdLAorLSAgICAgICAgICAgICAgICAgICAgICAg IHR3aWNlOiAkdmlkX3QsCistICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAg ICAgICAgICBsZXQgdHdpY2UgPSBVIHsgdmVjOiBbc2VsZiwgdW5pbml0aWFsaXplZCgpXSB9LnR3 aWNlOworLSAgICAgICAgICAgICAgICAgICAgbGV0IHR3aWNlID0gdHJhbnNtdXRlKCRmdW4odHJh bnNtdXRlKHR3aWNlKSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gUiB7CistICAg ICAgICAgICAgICAgICAgICAgICAgdHdpY2U6ICgkdmlkX3QsICR2aWRfdCksCistICAgICAgICAg ICAgICAgICAgICAgICAgdmVjczogKFskdmlkOyAyXSwgWyR2aWQ7IDJdKSwKKy0gICAgICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIGxldCByID0gUiB7IHR3aWNlIH0udmVj czsKKy0gICAgICAgICAgICAgICAgICAgICgqci4wLmdldF91bmNoZWNrZWQoMCksICpyLjAuZ2V0 X3VuY2hlY2tlZCgxKSkKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy0gICAgKCR2aWQ6aWRlbnRbaCA9PiAkdmlkX2g6aWRlbnRdOiAkZnVu OmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIFNpbkNvc1BpIGZvciAkdmlkIHsKKy0gICAgICAg ICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKKy0gICAgICAgICAgICBmbiBzaW5fY29z X3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7Cist ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOworLQorLSAgICAg ICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdmVjOiAk dmlkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIGhhbHZlczogWyR2aWRfaDsgMl0sCistICAg ICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0g VSB7IHZlYzogc2VsZiB9LmhhbHZlczsKKy0KKy0gICAgICAgICAgICAgICAgICAgIGxldCByZXNf MDogKCR2aWRfaCwgJHZpZF9oKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgqaGFsdmVzLmdl dF91bmNoZWNrZWQoMCkpKSk7CistICAgICAgICAgICAgICAgICAgICBsZXQgcmVzXzE6ICgkdmlk X2gsICR2aWRfaCkgPSB0cmFuc211dGUoJGZ1bih0cmFuc211dGUoKmhhbHZlcy5nZXRfdW5jaGVj a2VkKDEpKSkpOworLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gUiB7CistICAgICAgICAg ICAgICAgICAgICAgICAgcmVzdWx0OiAoJHZpZCwgJHZpZCksCistICAgICAgICAgICAgICAgICAg ICAgICAgaGFsdmVzOiAoWyR2aWRfaDsgMl0sIFskdmlkX2g7IDJdKSwKKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIFIgeyBoYWx2ZXM6IChbcmVzXzAuMCwgcmVz XzEuMF0sIFtyZXNfMC4xLCByZXNfMS4xXSkgfS5yZXN1bHQKKy0gICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKCR2aWQ6aWRlbnRbcSA9 PiAkdmlkX3E6aWRlbnRdOiAkZnVuOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIFNpbkNvc1Bp IGZvciAkdmlkIHsKKy0gICAgICAgICAgICB0eXBlIE91dHB1dCA9IChTZWxmLCBTZWxmKTsKKy0g ICAgICAgICAgICBmbiBzaW5fY29zX3BpKHNlbGYpIC0+IFNlbGY6Ok91dHB1dCB7CistICAgICAg ICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6 dHJhbnNtdXRlOworLQorLSAgICAgICAgICAgICAgICAgICAgdW5pb24gVSB7CistICAgICAgICAg ICAgICAgICAgICAgICAgdmVjOiAkdmlkLAorLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0 ZXJzOiBbJHZpZF9xOyA0XSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0KKy0gICAgICAgICAg ICAgICAgICAgIGxldCBxdWFydGVycyA9IFUgeyB2ZWM6IHNlbGYgfS5xdWFydGVyczsKKy0KKy0g ICAgICAgICAgICAgICAgICAgIGxldCByZXNfMDogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0 ZSgkZnVuKHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgwKSkpKTsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCByZXNfMTogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0ZSgkZnVu KHRyYW5zbXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgxKSkpKTsKKy0gICAgICAgICAgICAg ICAgICAgIGxldCByZXNfMjogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5z bXV0ZSgqcXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgyKSkpKTsKKy0gICAgICAgICAgICAgICAgICAg IGxldCByZXNfMzogKCR2aWRfcSwgJHZpZF9xKSA9IHRyYW5zbXV0ZSgkZnVuKHRyYW5zbXV0ZSgq cXVhcnRlcnMuZ2V0X3VuY2hlY2tlZCgzKSkpKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgIHVu aW9uIFIgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogKCR2aWQsICR2aWQpLAor LSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiAoWyR2aWRfcTsgNF0sIFskdmlkX3E7 IDRdKSwKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIFIgewor LSAgICAgICAgICAgICAgICAgICAgICAgIHF1YXJ0ZXJzOiAoCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtyZXNfMC4wLCByZXNfMS4wLCByZXNfMi4wLCByZXNfMy4wXSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgW3Jlc18wLjEsIHJlc18xLjEsIHJlc18yLjEsIHJlc18zLjFd LAorLSAgICAgICAgICAgICAgICAgICAgICAgICksCistICAgICAgICAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgICAgICAgICAucmVzdWx0CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLWNmZ19pZiEgeworLSAgICBpZiAj W2NmZyhhbGwodGFyZ2V0X2FyY2ggPSAieDg2XzY0IiwgZmVhdHVyZSA9ICJzbGVlZi1zeXMiKSld IHsKKy0gICAgICAgIHVzZSBzbGVlZl9zeXM6Oio7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAg ICAgICAgICBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildIHsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeV90IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2luY29zcGlmNF91 MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4MTZbaCA9PiBm MzJ4OF06IFNsZWVmX3NpbmNvc3BpZjhfdTA1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnlfdCEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4Mik7Cist CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDQ6IFNsZWVmX3NpbmNvc3BpZjRf dTA1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDg6IFNsZWVm X3NpbmNvc3BpZjhfdTA1YXZ4Mik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjY0 eDI6IFNsZWVmX3NpbmNvc3BpZDJfdTA1YXZ4MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxf dW5hcnlfdCEoZjY0eDQ6IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4Mik7CistICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAg ICAgIGltcGxfdW5hcnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1 c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W2ggPT4gZjMyeDhd OiBTbGVlZl9zaW5jb3NwaWY4X3UwNWF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnlf dCEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbmNvc3BpZDRfdTA1YXZ4KTsKKy0KKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4NDogU2xlZWZfc2luY29zcGlmNF91MDVzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeV90IShmMzJ4ODogU2xlZWZfc2luY29zcGlm OF91MDVhdngpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHgyOiBTbGVlZl9z aW5jb3NwaWQyX3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHg0 OiBTbGVlZl9zaW5jb3NwaWQ0X3UwNWF2eCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gInNzZTQuMiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnlfdCEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NpbmNvc3BpZjRfdTA1c3NlNCk7CistICAg ICAgICAgICAgICAgIGltcGxfdW5hcnlfdCEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zaW5j b3NwaWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHg4W3Eg PT4gZjY0eDJdOiBTbGVlZl9zaW5jb3NwaWQyX3UwNXNzZTQpOworLQorLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5X3QhKGYzMng0OiBTbGVlZl9zaW5jb3NwaWY0X3UwNXNzZTQpOworLSAgICAg ICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9zaW5jb3Nw aWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2NHgyOiBTbGVl Zl9zaW5jb3NwaWQyX3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5X3QhKGY2 NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9zaW5jb3NwaWQyX3UwNXNzZTQpOworLSAgICAgICAgICAg IH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngyKTsKKy0gICAgICAg ICAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMy IShmMzJ4OCk7CistICAgICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMngxNik7CistCistICAg ICAgICAgICAgICAgIGltcGxfZGVmNjQhKGY2NHgyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF9k ZWY2NCEoZjY0eDQpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4OCk7CistICAg ICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaW1wbF9kZWYz MiEoZjMyeDIpOworLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDQpOworLSAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDgpOworLSAgICAgICAgaW1wbF9kZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAgICAg IGltcGxfZGVmNjQhKGY2NHgyKTsKKy0gICAgICAgIGltcGxfZGVmNjQhKGY2NHg0KTsKKy0gICAg ICAgIGltcGxfZGVmNjQhKGY2NHg4KTsKKy0gICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX3BpLnJzIGIv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3Npbl9w aS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3Bh Y2tlZF9zaW1kL3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc2luX3BpLnJzCisrKysgL2Rldi9udWxs CitAQCAtMSw4NyArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0aW5nLXBvaW50IGBzaW5fcGlg CistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLyBGSVhNRSA2NC1iaXQgMSBlbGVtIHZlY3RvcnMg c2luX3BpCistCistdXNlIGNyYXRlOjoqOworLQorLXB1YihjcmF0ZSkgdHJhaXQgU2luUGkgewor LSAgICBmbiBzaW5fcGkoc2VsZikgLT4gU2VsZjsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFi bGUhKFNpblBpLCBzaW5fcGkpOworLQorLW1hY3JvX3J1bGVzISBpbXBsX2RlZiB7CistICAgICgk dmlkOmlkZW50LCAkUEk6cGF0aCkgPT4geworLSAgICAgICAgaW1wbCBTaW5QaSBmb3IgJHZpZCB7 CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2luX3BpKHNlbGYpIC0+ IFNlbGYgeworLSAgICAgICAgICAgICAgICAoc2VsZiAqIFNlbGY6OnNwbGF0KCRQSSkpLnNpbigp CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy1tYWNyb19ydWxlcyEg aW1wbF9kZWYzMiB7CistICAgICgkdmlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsX2RlZiEo JHZpZCwgY3JhdGU6OmYzMjo6Y29uc3RzOjpQSSk7CistICAgIH07CistfQorLW1hY3JvX3J1bGVz ISBpbXBsX2RlZjY0IHsKKy0gICAgKCR2aWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGxfZGVm ISgkdmlkLCBjcmF0ZTo6ZjY0Ojpjb25zdHM6OlBJKTsKKy0gICAgfTsKKy19CistCistY2ZnX2lm ISB7CistICAgIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0g InNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNlIHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNm Z19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0g eworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZf c2lucGlmNF91MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2 W2ggPT4gZjMyeDhdOiBTbGVlZl9zaW5waWY4X3UwNWF2eDIpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc2lucGlkNF91MDVhdngyKTsKKy0K Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NpbnBpZjRfdTA1YXZ4 MjEyOCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zaW5waWY4 X3UwNWF2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc2lu cGlkMl91MDVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNs ZWVmX3NpbnBpZDRfdTA1YXZ4Mik7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdl dF9mZWF0dXJlID0gImF2eCIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMngy W3QgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NpbnBpZjhfdTA1YXZ4KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNsZWVmX3NpbnBp ZDRfdTA1YXZ4KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVm X3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBT bGVlZl9zaW5waWY4X3UwNWF2eCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgy OiBTbGVlZl9zaW5waWQyX3UwNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShm NjR4NDogU2xlZWZfc2lucGlkNF91MDVhdngpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc2lucGlmNF91MDVzc2U0KTsKKy0gICAgICAg ICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3Uw NXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtxID0+IGY2NHgyXTog U2xlZWZfc2lucGlkMl91MDVzc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDQ6IFNsZWVmX3NpbnBpZjRfdTA1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9zaW5waWY0X3UwNXNzZTQpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZfc2lucGlkMl91MDVzc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NpbnBpZDJf dTA1c3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDIpOworLSAgICAgICAgICAgICAgICBpbXBsX2RlZjMyIShmMzJ4NCk7CistICAg ICAgICAgICAgICAgIGltcGxfZGVmMzIhKGYzMng4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF9k ZWYzMiEoZjMyeDE2KTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOwor LSAgICAgICAgICAgICAgICBpbXBsX2RlZjY0IShmNjR4NCk7CistICAgICAgICAgICAgICAgIGlt cGxfZGVmNjQhKGY2NHg4KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxz ZSB7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4Mik7CistICAgICAgICBpbXBsX2RlZjMyIShm MzJ4NCk7CistICAgICAgICBpbXBsX2RlZjMyIShmMzJ4OCk7CistICAgICAgICBpbXBsX2RlZjMy IShmMzJ4MTYpOworLQorLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDIpOworLSAgICAgICAgaW1w bF9kZWY2NCEoZjY0eDQpOworLSAgICAgICAgaW1wbF9kZWY2NCEoZjY0eDgpOworLSAgICB9Cist fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v bWF0aC9mbG9hdC9zcXJ0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29k ZWdlbi9tYXRoL2Zsb2F0L3NxcnQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEv dGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zsb2F0L3NxcnQu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEwMyArMCwwIEBACistLy8hIFZlcnRpY2FsIGZsb2F0 aW5nLXBvaW50IGBzcXJ0YAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklYTUUgNjQtYml0 IDEgZWxlbSB2ZWN0b3JzIHNxcnQKKy0KKy11c2UgY3JhdGU6Oio7CistCistcHViKGNyYXRlKSB0 cmFpdCBTcXJ0IHsKKy0gICAgZm4gc3FydChzZWxmKSAtPiBTZWxmOworLX0KKy0KKy0jW2FsbG93 KGltcHJvcGVyX2N0eXBlcyldCistZXh0ZXJuICJDIiB7CistICAgICNbbGlua19uYW1lID0gImxs dm0uc3FydC52MmYzMiJdCistICAgIGZuIHNxcnRfdjJmMzIoeDogZjMyeDIpIC0+IGYzMngyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjRmMzIiXQorLSAgICBmbiBzcXJ0X3Y0ZjMy KHg6IGYzMng0KSAtPiBmMzJ4NDsKKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5zcXJ0LnY4ZjMy Il0KKy0gICAgZm4gc3FydF92OGYzMih4OiBmMzJ4OCkgLT4gZjMyeDg7CistICAgICNbbGlua19u YW1lID0gImxsdm0uc3FydC52MTZmMzIiXQorLSAgICBmbiBzcXJ0X3YxNmYzMih4OiBmMzJ4MTYp IC0+IGYzMngxNjsKKy0gICAgLyogRklYTUUgNjQtYml0IHNxcnRnbGUgZWxlbSB2ZWN0b3JzCist ICAgICNbbGlua19uYW1lID0gImxsdm0uc3FydC52MWY2NCJdCistICAgIGZuIHNxcnRfdjFmNjQo eDogZjY0eDEpIC0+IGY2NHgxOworLSAgICAgKi8KKy0gICAgI1tsaW5rX25hbWUgPSAibGx2bS5z cXJ0LnYyZjY0Il0KKy0gICAgZm4gc3FydF92MmY2NCh4OiBmNjR4MikgLT4gZjY0eDI7CistICAg ICNbbGlua19uYW1lID0gImxsdm0uc3FydC52NGY2NCJdCistICAgIGZuIHNxcnRfdjRmNjQoeDog ZjY0eDQpIC0+IGY2NHg0OworLSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQudjhmNjQiXQor LSAgICBmbiBzcXJ0X3Y4ZjY0KHg6IGY2NHg4KSAtPiBmNjR4ODsKKy0KKy0gICAgI1tsaW5rX25h bWUgPSAibGx2bS5zcXJ0LmYzMiJdCistICAgIGZuIHNxcnRfZjMyKHg6IGYzMikgLT4gZjMyOwor LSAgICAjW2xpbmtfbmFtZSA9ICJsbHZtLnNxcnQuZjY0Il0KKy0gICAgZm4gc3FydF9mNjQoeDog ZjY0KSAtPiBmNjQ7CistfQorLQorLWdlbl91bmFyeV9pbXBsX3RhYmxlIShTcXJ0LCBzcXJ0KTsK Ky0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcodGFyZ2V0X2FyY2ggPSAiczM5MHgiKV0gewor LSAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9w YWNrZWRfc2ltZC9pc3N1ZXMvMTQKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMngyW2YzMjsgMl06 IHNxcnRfZjMyKTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng0W2YzMjsgNF06IHNxcnRfZjMy KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGYzMng4W2YzMjsgOF06IHNxcnRfZjMyKTsKKy0gICAg ICAgIGltcGxfdW5hcnkhKGYzMngxNltmMzI7IDE2XTogc3FydF9mMzIpOworLQorLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDJbZjY0OyAyXTogc3FydF9mNjQpOworLSAgICAgICAgaW1wbF91bmFy eSEoZjY0eDRbZjY0OyA0XTogc3FydF9mNjQpOworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhb ZjY0OyA4XTogc3FydF9mNjQpOworLSAgICB9IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNo ID0gIng4Nl82NCIsIGZlYXR1cmUgPSAic2xlZWYtc3lzIikpXSB7CistICAgICAgICB1c2Ugc2xl ZWZfc3lzOjoqOworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4MiIpXSB7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYz MngyW3QgPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfYXZ4MjEyOCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMngxNltoID0+IGYzMng4XTogU2xlZWZfc3FydGY4X2F2eDIpOworLSAg ICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc3FydGQ0 X2F2eDIpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogU2xlZWZfc3Fy dGY0X2F2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogU2xlZWZf c3FydGY4X2F2eDIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4MjogU2xlZWZf c3FydGQyX2F2eDIxMjgpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4NDogU2xl ZWZfc3FydGQ0X2F2eDIpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+ IGYzMng0XTogU2xlZWZfc3FydGY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NxcnRmOF9hdngpOworLSAgICAgICAgICAgICAg ICBpbXBsX3VuYXJ5IShmNjR4OFtoID0+IGY2NHg0XTogU2xlZWZfc3FydGQ0X2F2eCk7CistCist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfc3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng4OiBTbGVlZl9zcXJ0ZjhfYXZ4KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl9zc2U0KTsKKy0g ICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF9hdngpOworLSAg ICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2U0LjIiKV0gewor LSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3Fy dGY0X3NzZTQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbcSA9PiBmMzJ4 NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0 eDhbcSA9PiBmNjR4Ml06IFNsZWVmX3NxcnRkMl9zc2U0KTsKKy0KKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDQ6IFNsZWVmX3NxcnRmNF9zc2U0KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDhbaCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF9zc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl9zc2U0KTsKKy0gICAg ICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbaCA9PiBmNjR4Ml06IFNsZWVmX3NxcnRkMl9z c2U0KTsKKy0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4MltmMzI7IDJdOiBzcXJ0X2YzMik7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkh KGYzMngxNjogc3FydF92MTZmMzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 ODogc3FydF92OGY2NCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGYzMng0OiBz cXJ0X3Y0ZjMyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDg6IHNxcnRfdjhm MzIpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4Mjogc3FydF92MmY2NCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBzcXJ0X3Y0ZjY0KTsKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7CistICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4MltmMzI7IDJdOiBzcXJ0X2YzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4NDogc3Fy dF92NGYzMik7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4ODogc3FydF92OGYzMik7CistICAg ICAgICBpbXBsX3VuYXJ5IShmMzJ4MTY6IHNxcnRfdjE2ZjMyKTsKKy0KKy0gICAgICAgIGltcGxf dW5hcnkhKGY2NHgyOiBzcXJ0X3YyZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg0OiBz cXJ0X3Y0ZjY0KTsKKy0gICAgICAgIGltcGxfdW5hcnkhKGY2NHg4OiBzcXJ0X3Y4ZjY0KTsKKy0g ICAgfQorLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL21hdGgvZmxvYXQvc3FydGUucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9tYXRoL2Zs b2F0L3NxcnRlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2NyArMCwwIEBACistLy8hIFZlcnRp Y2FsIGZsb2F0aW5nLXBvaW50IGBzcXJ0YAorLSMhW2FsbG93KHVudXNlZCldCistCistLy8gRklY TUUgNjQtYml0IDEgZWxlbSB2ZWN0b3JzIHNxcnRlCistCistdXNlIGNyYXRlOjpsbHZtOjpzaW1k X2ZzcXJ0OworLXVzZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFNxcnRlIHsKKy0g ICAgZm4gc3FydGUoc2VsZikgLT4gU2VsZjsKKy19CistCistZ2VuX3VuYXJ5X2ltcGxfdGFibGUh KFNxcnRlLCBzcXJ0ZSk7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKGFsbCh0YXJnZXRf YXJjaCA9ICJ4ODZfNjQiLCBmZWF0dXJlID0gInNsZWVmLXN5cyIpKV0geworLSAgICAgICAgdXNl IHNsZWVmX3N5czo6KjsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNbY2Zn KHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0geworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5 IShmMzJ4Mlt0ID0+IGYzMng0XTogU2xlZWZfc3FydGY0X3UzNWF2eDIxMjgpOworLSAgICAgICAg ICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbaCA9PiBmMzJ4OF06IFNsZWVmX3NxcnRmOF91MzVh dngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBmNjR4NF06IFNs ZWVmX3NxcnRkNF91MzVhdngyKTsKKy0KKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMy eDQ6IFNsZWVmX3NxcnRmNF91MzVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFy eSEoZjMyeDg6IFNsZWVmX3NxcnRmOF91MzVhdngyKTsKKy0gICAgICAgICAgICAgICAgaW1wbF91 bmFyeSEoZjY0eDI6IFNsZWVmX3NxcnRkMl91MzVhdngyMTI4KTsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjY0eDQ6IFNsZWVmX3NxcnRkNF91MzVhdngyKTsKKy0gICAgICAgICAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAg ICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVzc2U0KTsK Ky0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W2ggPT4gZjMyeDhdOiBTbGVlZl9z cXJ0ZjhfdTM1YXZ4KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjY0eDhbaCA9PiBm NjR4NF06IFNsZWVmX3NxcnRkNF91MzVhdngpOworLQorLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmMzJ4NDogU2xlZWZfc3FydGY0X3UzNXNzZTQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4ODogU2xlZWZfc3FydGY4X3UzNWF2eCk7CistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfdTM1c3NlNCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGY2NHg0OiBTbGVlZl9zcXJ0ZDRfdTM1YXZ4KTsKKy0gICAgICAgICAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAic3NlNC4yIildIHsKKy0gICAgICAgICAg ICAgICAgaW1wbF91bmFyeSEoZjMyeDJbdCA9PiBmMzJ4NF06IFNsZWVmX3NxcnRmNF91MzVzc2U0 KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEoZjMyeDE2W3EgPT4gZjMyeDRdOiBTbGVl Zl9zcXJ0ZjRfdTM1c3NlNCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg4W3Eg PT4gZjY0eDJdOiBTbGVlZl9zcXJ0ZDJfdTM1c3NlNCk7CistCistICAgICAgICAgICAgICAgIGlt cGxfdW5hcnkhKGYzMng0OiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7CistICAgICAgICAgICAgICAg IGltcGxfdW5hcnkhKGYzMng4W2ggPT4gZjMyeDRdOiBTbGVlZl9zcXJ0ZjRfdTM1c3NlNCk7Cist ICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHgyOiBTbGVlZl9zcXJ0ZDJfdTM1c3NlNCk7 CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2ggPT4gZjY0eDJdOiBTbGVlZl9z cXJ0ZDJfdTM1c3NlNCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAg aW1wbF91bmFyeSEoZjMyeDJbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgICAgICAgICBpbXBs X3VuYXJ5IShmMzJ4MTZbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgICAgICAgICBpbXBsX3Vu YXJ5IShmNjR4OFtnXTogc2ltZF9mc3FydCk7CistCistICAgICAgICAgICAgICAgIGltcGxfdW5h cnkhKGYzMng0W2ddOiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgICAgICAgICAgaW1wbF91bmFyeSEo ZjMyeDhbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAgICAgICAgICBpbXBsX3VuYXJ5IShmNjR4 MltnXTogc2ltZF9mc3FydCk7CistICAgICAgICAgICAgICAgIGltcGxfdW5hcnkhKGY2NHg0W2dd OiBzaW1kX2ZzcXJ0KTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH0gZWxzZSB7 CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MltnXTogc2ltZF9mc3FydCk7CistICAgICAgICBp bXBsX3VuYXJ5IShmMzJ4NFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICBpbXBsX3VuYXJ5IShm MzJ4OFtnXTogc2ltZF9mc3FydCk7CistICAgICAgICBpbXBsX3VuYXJ5IShmMzJ4MTZbZ106IHNp bWRfZnNxcnQpOworLQorLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDJbZ106IHNpbWRfZnNxcnQp OworLSAgICAgICAgaW1wbF91bmFyeSEoZjY0eDRbZ106IHNpbWRfZnNxcnQpOworLSAgICAgICAg aW1wbF91bmFyeSEoZjY0eDhbZ106IHNpbWRfZnNxcnQpOworLSAgICB9CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXpl ZF9pbnQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3BvaW50 ZXJfc2l6ZWRfaW50LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcG9pbnRlcl9zaXplZF9pbnQucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDI4ICswLDAgQEAKKy0vLyEgUHJvdmlkZXMgYGlzaXplYCBhbmQg YHVzaXplYAorLQorLXVzZSBjZmdfaWY6OmNmZ19pZjsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYg I1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiOCIpXSB7CistICAgICAgICBwdWIoY3JhdGUp IHR5cGUgaXNpemVfID0gaTg7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTg7 CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIxNiIpXSB7Cist ICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTE2OworLSAgICAgICAgcHViKGNyYXRl KSB0eXBlIHVzaXplXyA9IHUxNjsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVy X3dpZHRoID0gIjMyIildIHsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSBpc2l6ZV8gPSBpMzI7 CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgdXNpemVfID0gdTMyOworLQorLSAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgcHViKGNy YXRlKSB0eXBlIGlzaXplXyA9IGk2NDsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8g PSB1NjQ7CistICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIp XSB7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVfID0gaTY0OworLSAgICAgICAgcHVi KGNyYXRlKSB0eXBlIHVzaXplXyA9IHU2NDsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9w b2ludGVyX3dpZHRoID0gIjEyOCIpXSB7CistICAgICAgICBwdWIoY3JhdGUpIHR5cGUgaXNpemVf ID0gaTEyODsKKy0gICAgICAgIHB1YihjcmF0ZSkgdHlwZSB1c2l6ZV8gPSB1MTI4OworLSAgICB9 IGVsc2UgeworLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRhcmdldF9wb2lu dGVyX3dpZHRoIik7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zLnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVk dWN0aW9ucy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMSArMCwwIEBACistcHViKGNyYXRlKSBt b2QgbWFzazsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9u cy9tYXNrLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2OSArMCwwIEBACistLy8hIENvZGUgZ2Vu ZXJhdGlvbiB3b3JrYXJvdW5kIGZvciBgYWxsKClgIG1hc2sgaG9yaXpvbnRhbCByZWR1Y3Rpb24u CistLy8hCistLy8hIFdvcmtzIGFyb3VuZCBbTExWTSBidWcgMzY3MDJdLgorLS8vIQorLS8vISBb TExWTSBidWcgMzY3MDJdOiBodHRwczovL2J1Z3MubGx2bS5vcmcvc2hvd19idWcuY2dpP2lkPTM2 NzAyCistIyFbYWxsb3codW51c2VkX21hY3JvcyldCistCistdXNlIGNyYXRlOjoqOworLQorLXB1 YihjcmF0ZSkgdHJhaXQgQWxsOiBjcmF0ZTo6bWFya2VyOjpTaXplZCB7CistICAgIHVuc2FmZSBm biBhbGwoc2VsZikgLT4gYm9vbDsKKy19CistCistcHViKGNyYXRlKSB0cmFpdCBBbnk6IGNyYXRl OjptYXJrZXI6OlNpemVkIHsKKy0gICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sOworLX0K Ky0KKy0jW21hY3JvX3VzZV0KKy1tb2QgZmFsbGJhY2tfaW1wbDsKKy0KKy1jZmdfaWYhIHsKKy0g ICAgaWYgI1tjZmcoYW55KHRhcmdldF9hcmNoID0gIng4NiIsIHRhcmdldF9hcmNoID0gIng4Nl82 NCIpKV0geworLSAgICAgICAgI1ttYWNyb191c2VdCistICAgICAgICBtb2QgeDg2OworLSAgICB9 IGVsc2UgaWYgI1tjZmcoYWxsKHRhcmdldF9hcmNoID0gImFybSIsIHRhcmdldF9mZWF0dXJlID0g InY3IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJj b3JlX25lb24pKSldIHsKKy0gICAgICAgICNbbWFjcm9fdXNlXQorLSAgICAgICAgbW9kIGFybTsK Ky0gICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJhYXJjaDY0IiwgdGFyZ2V0 X2ZlYXR1cmUgPSAibmVvbiIpKV0geworLSAgICAgICAgI1ttYWNyb191c2VdCistICAgICAgICBt b2QgYWFyY2g2NDsKKy0gICAgfSBlbHNlIHsKKy0gICAgICAgICNbbWFjcm9fdXNlXQorLSAgICAg ICAgbW9kIGZhbGxiYWNrOworLSAgICB9CistfQorLQorLWltcGxfbWFza19yZWR1Y3Rpb25zISht OHgyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4NCk7CistaW1wbF9tYXNrX3JlZHVjdGlv bnMhKG04eDgpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtOHgxNik7CistaW1wbF9tYXNrX3Jl ZHVjdGlvbnMhKG04eDMyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTh4NjQpOworLQorLWlt cGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4Mik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0xNng0 KTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTE2eDgpOworLWltcGxfbWFza19yZWR1Y3Rpb25z IShtMTZ4MTYpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMTZ4MzIpOworLQorLWltcGxfbWFz a19yZWR1Y3Rpb25zIShtMzJ4Mik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMhKG0zMng0KTsKKy1p bXBsX21hc2tfcmVkdWN0aW9ucyEobTMyeDgpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtMzJ4 MTYpOworLQorLS8vIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCistLy8gaW1w bF9tYXNrX3JlZHVjdGlvbnMhKG02NHgxKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTY0eDIp OworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtNjR4NCk7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMh KG02NHg4KTsKKy0KKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTEyOHgxKTsKKy1pbXBsX21hc2tf cmVkdWN0aW9ucyEobTEyOHgyKTsKKy1pbXBsX21hc2tfcmVkdWN0aW9ucyEobTEyOHg0KTsKKy0K Ky1pbXBsX21hc2tfcmVkdWN0aW9ucyEobXNpemV4Mik7CistaW1wbF9tYXNrX3JlZHVjdGlvbnMh KG1zaXpleDQpOworLWltcGxfbWFza19yZWR1Y3Rpb25zIShtc2l6ZXg4KTsKK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFz ay9hYXJjaDY0LnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2svYWFyY2g2NC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0g YS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFz ay9hYXJjaDY0LnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw4MSArMCwwIEBACistLy8hIE1hc2sg cmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYGFhcmNoNjRgIHRhcmdldHMKKy0KKy0vLy8g MTI4LWJpdCB3aWRlIHZlY3RvcnMKKy1tYWNyb19ydWxlcyEgYWFyY2g2NF8xMjhfbmVvbl9pbXBs IHsKKy0gICAgKCRpZDppZGVudCwgJHZtaW46aWRlbnQsICR2bWF4OmlkZW50KSA9PiB7CistICAg ICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCistICAgICAgICAgICAgdW5z YWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjph cmNoOjphYXJjaDY0Ojokdm1pbjsKKy0gICAgICAgICAgICAgICAgJHZtaW4oY3JhdGU6Om1lbTo6 dHJhbnNtdXRlKHNlbGYpKSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAg ICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAibmVvbiIpXQorLSAgICAgICAgICAgIHVuc2Fm ZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJj aDo6YWFyY2g2NDo6JHZtYXg7CistICAgICAgICAgICAgICAgICR2bWF4KGNyYXRlOjptZW06OnRy YW5zbXV0ZShzZWxmKSkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsK Ky19CistCistLy8vIDY0LWJpdCB3aWRlIHZlY3RvcnMKKy1tYWNyb19ydWxlcyEgYWFyY2g2NF82 NF9uZW9uX2ltcGwgeworLSAgICAoJGlkOmlkZW50LCAkdmVjMTI4OmlkZW50KSA9PiB7CistICAg ICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAg ICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCistICAgICAgICAgICAgdW5z YWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgLy8gRHVwbGljYXRl cyB0aGUgNjQtYml0IHZlY3RvciBpbnRvIGEgMTI4LWJpdCBvbmUgYW5kCistICAgICAgICAgICAg ICAgIC8vIGNhbGxzIGFsbCBvbiB0aGF0LgorLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0g ICAgICAgICAgICAgICAgICAgIGhhbHZlczogKCRpZCwgJGlkKSwKKy0gICAgICAgICAgICAgICAg ICAgIHZlYzogJHZlYzEyOCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBV IHsgaGFsdmVzOiAoc2VsZiwgc2VsZikgfS52ZWMuYWxsKCkKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGlu ZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJuZW9uIildCistICAg ICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg dW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkaWQsICRpZCksCistICAg ICAgICAgICAgICAgICAgICB2ZWM6ICR2ZWMxMjgsCistICAgICAgICAgICAgICAgIH0KKy0gICAg ICAgICAgICAgICAgVSB7IGhhbHZlczogKHNlbGYsIHNlbGYpIH0udmVjLmFueSgpCistICAgICAg ICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8gTWFzayByZWR1Y3Rpb24g aW1wbGVtZW50YXRpb24gZm9yIGBhYXJjaDY0YCB0YXJnZXRzCistbWFjcm9fcnVsZXMhIGltcGxf bWFza19yZWR1Y3Rpb25zIHsKKy0gICAgLy8gNjQtYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDgp ID0+IHsKKy0gICAgICAgIGFhcmNoNjRfNjRfbmVvbl9pbXBsIShtOHg4LCBtOHgxNik7CistICAg IH07CistICAgIChtMTZ4NCkgPT4geworLSAgICAgICAgYWFyY2g2NF82NF9uZW9uX2ltcGwhKG0x Nng0LCBtMTZ4OCk7CistICAgIH07CistICAgIChtMzJ4MikgPT4geworLSAgICAgICAgYWFyY2g2 NF82NF9uZW9uX2ltcGwhKG0zMngyLCBtMzJ4NCk7CistICAgIH07CistICAgIC8vIDEyOC1iaXQg d2lkZSBtYXNrcworLSAgICAobTh4MTYpID0+IHsKKy0gICAgICAgIGFhcmNoNjRfMTI4X25lb25f aW1wbCEobTh4MTYsIHZtaW52cV91OCwgdm1heHZxX3U4KTsKKy0gICAgfTsKKy0gICAgKG0xNng4 KSA9PiB7CistICAgICAgICBhYXJjaDY0XzEyOF9uZW9uX2ltcGwhKG0xNng4LCB2bWludnFfdTE2 LCB2bWF4dnFfdTE2KTsKKy0gICAgfTsKKy0gICAgKG0zMng0KSA9PiB7CistICAgICAgICBhYXJj aDY0XzEyOF9uZW9uX2ltcGwhKG0zMng0LCB2bWludnFfdTMyLCB2bWF4dnFfdTMyKTsKKy0gICAg fTsKKy0gICAgLy8gRmFsbGJhY2sgdG8gTExWTSdzIGRlZmF1bHQgY29kZS1nZW5lcmF0aW9uOgor LSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAg ICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9hcm0ucnMKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9y ZWR1Y3Rpb25zL21hc2svYXJtLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw1NiArMCwwIEBACist Ly8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYGFybWAgdGFyZ2V0cworLQor LS8vLyBJbXBsZW1lbnRhdGlvbiBmb3IgQVJNICsgdjcgKyBORU9OIGZvciA2NC1iaXQgb3IgMTI4 LWJpdCB3aWRlIHZlY3RvcnMgd2l0aAorLS8vLyBtb3JlIHRoYW4gdHdvIGVsZW1lbnRzLgorLW1h Y3JvX3J1bGVzISBhcm1fMTI4X3Y3X25lb25faW1wbCB7CistICAgICgkaWQ6aWRlbnQsICRoYWxm OmlkZW50LCAkdnBtaW46aWRlbnQsICR2cG1heDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBB bGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJn ZXRfZmVhdHVyZShlbmFibGUgPSAidjcsbmVvbiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBh bGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJt OjokdnBtaW47CistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6bWVtOjp0cmFuc211dGU7Cist ICAgICAgICAgICAgICAgIHVuaW9uIFUgeworLSAgICAgICAgICAgICAgICAgICAgaGFsdmVzOiAo JGhhbGYsICRoYWxmKSwKKy0gICAgICAgICAgICAgICAgICAgIHZlYzogJGlkLAorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgICAgIGxldCBoYWx2ZXMgPSBVIHsgdmVjOiBzZWxmIH0u aGFsdmVzOworLSAgICAgICAgICAgICAgICBsZXQgaDogJGhhbGYgPSB0cmFuc211dGUoJHZwbWlu KHRyYW5zbXV0ZShoYWx2ZXMuMCksIHRyYW5zbXV0ZShoYWx2ZXMuMSkpKTsKKy0gICAgICAgICAg ICAgICAgaC5hbGwoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwg QW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFy Z2V0X2ZlYXR1cmUoZW5hYmxlID0gInY3LG5lb24iKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4g YW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6OmFy bTo6JHZwbWF4OworLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6Om1lbTo6dHJhbnNtdXRlOwor LSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgIGhhbHZlczog KCRoYWxmLCAkaGFsZiksCistICAgICAgICAgICAgICAgICAgICB2ZWM6ICRpZCwKKy0gICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBsZXQgaGFsdmVzID0gVSB7IHZlYzogc2VsZiB9 LmhhbHZlczsKKy0gICAgICAgICAgICAgICAgbGV0IGg6ICRoYWxmID0gdHJhbnNtdXRlKCR2cG1h eCh0cmFuc211dGUoaGFsdmVzLjApLCB0cmFuc211dGUoaGFsdmVzLjEpKSk7CistICAgICAgICAg ICAgICAgIGguYW55KCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQor LQorLS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IgYGFybWAgdGFyZ2V0cwor LW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVkdWN0aW9ucyB7CistICAgIC8vIDEyOC1iaXQgd2lk ZSBtYXNrcworLSAgICAobTh4MTYpID0+IHsKKy0gICAgICAgIGFybV8xMjhfdjdfbmVvbl9pbXBs IShtOHgxNiwgbTh4OCwgdnBtaW5fdTgsIHZwbWF4X3U4KTsKKy0gICAgfTsKKy0gICAgKG0xNng4 KSA9PiB7CistICAgICAgICBhcm1fMTI4X3Y3X25lb25faW1wbCEobTE2eDgsIG0xNng0LCB2cG1p bl91MTYsIHZwbWF4X3UxNik7CistICAgIH07CistICAgIChtMzJ4NCkgPT4geworLSAgICAgICAg YXJtXzEyOF92N19uZW9uX2ltcGwhKG0zMng0LCBtMzJ4MiwgdnBtaW5fdTMyLCB2cG1heF91MzIp OworLSAgICB9OworLSAgICAvLyBGYWxsYmFjayB0byBMTFZNJ3MgZGVmYXVsdCBjb2RlLWdlbmVy YXRpb246CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRp ZCk7CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRf c2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2svZmFsbGJhY2sucnMKKysrKyAvZGV2L251 bGwKK0BAIC0xLDggKzAsMCBAQAorLS8vISBEZWZhdWx0IG1hc2sgcmVkdWN0aW9uIGltcGxlbWVu dGF0aW9ucy4KKy0KKy0vLy8gRGVmYXVsdCBtYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbgor LW1hY3JvX3J1bGVzISBpbXBsX21hc2tfcmVkdWN0aW9ucyB7CistICAgICgkaWQ6aWRlbnQpID0+ IHsKKy0gICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgIH07CistfQorZGlmZiAtLWdp dCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9t YXNrL2ZhbGxiYWNrX2ltcGwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3JlZHVjdGlvbnMvbWFzay9mYWxsYmFja19pbXBsLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v cmVkdWN0aW9ucy9tYXNrL2ZhbGxiYWNrX2ltcGwucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDIz NyArMCwwIEBACistLy8hIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYSBtYXNrIHJlZHVjdGlv biBmb3IgYW55IHRhcmdldC4KKy0KKy1tYWNyb19ydWxlcyEgZmFsbGJhY2tfdG9fb3RoZXJfaW1w bCB7CistICAgICgkaWQ6aWRlbnQsICRvdGhlcjppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBB bGwgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgdW5zYWZl IGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IG06ICRvdGhlciA9 IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgbS5hbGwoKQor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgewor LSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikg LT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBtOiAkb3RoZXIgPSBjcmF0ZTo6bWVtOjp0 cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIG0uYW55KCkKKy0gICAgICAgICAgICB9 CistICAgICAgICB9CistICAgIH07CistfQorLQorLS8vLyBGYWxsYmFjayBpbXBsZW1lbnRhdGlv bi4KKy1tYWNyb19ydWxlcyEgZmFsbGJhY2tfaW1wbCB7CistICAgIC8vIDE2LWJpdCB3aWRlIG1h c2tzOgorLSAgICAobTh4MikgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDIgeworLSAg ICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4g Ym9vbCB7CistICAgICAgICAgICAgICAgIGxldCBpOiB1MTYgPSBjcmF0ZTo6bWVtOjp0cmFuc211 dGUoc2VsZik7CistICAgICAgICAgICAgICAgIGkgPT0gdTE2OjptYXhfdmFsdWUoKQorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciBtOHgyIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJv b2wgeworLSAgICAgICAgICAgICAgICBsZXQgaTogdTE2ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRl KHNlbGYpOworLSAgICAgICAgICAgICAgICBpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAg ICB9CistICAgIH07CistICAgIC8vIDMyLWJpdCB3aWRlIG1hc2tzCistICAgIChtOHg0KSA9PiB7 CistICAgICAgICBpbXBsIEFsbCBmb3IgbTh4NCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAg ICAgbGV0IGk6IHUzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAg ICAgICAgaSA9PSB1MzI6Om1heF92YWx1ZSgpCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgaW1wbCBBbnkgZm9yIG04eDQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAg IGxldCBpOiB1MzIgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAg ICAgIGkgIT0gMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0x NngyKSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4MiwgbTh4NCk7 CistICAgIH07CistICAgIC8vIDY0LWJpdCB3aWRlIG1hc2tzOgorLSAgICAobTh4OCkgPT4gewor LSAgICAgICAgaW1wbCBBbGwgZm9yIG04eDggeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAg IGxldCBpOiB1NjQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAg ICAgIGkgPT0gdTY0OjptYXhfdmFsdWUoKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0g ICAgICAgIGltcGwgQW55IGZvciBtOHg4IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICBs ZXQgaTogdTY0ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAg ICBpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIChtMTZ4 NCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTE2eDQsIG04eDgpOwor LSAgICB9OworLSAgICAobTMyeDIpID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2lt cGwhKG0zMngyLCBtMTZ4NCk7CistICAgIH07CistICAgIC8vIEZJWE1FOiA2NHgxIG1heGsKKy0g ICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzOgorLSAgICAobTh4MTYpID0+IHsKKy0gICAgICAgIGlt cGwgQWxsIGZvciBtOHgxNiB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAg dW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6IHUx MjggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAgIGkgPT0g dTEyODo6bWF4X3ZhbHVlKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBp bXBsIEFueSBmb3IgbTh4MTYgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBpOiB1 MTI4ID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICBpICE9 IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgIChtMTZ4OCkgPT4g eworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTE2eDgsIG04eDE2KTsKKy0gICAg fTsKKy0gICAgKG0zMng0KSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsISht MzJ4NCwgbTE2eDgpOworLSAgICB9OworLSAgICAobTY0eDIpID0+IHsKKy0gICAgICAgIGZhbGxi YWNrX3RvX290aGVyX2ltcGwhKG02NHgyLCBtMzJ4NCk7CistICAgIH07CistICAgIChtMTI4eDEp ID0+IHsKKy0gICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG0xMjh4MSwgbTY0eDIpOwor LSAgICB9OworLSAgICAvLyAyNTYtYml0IHdpZGUgbWFza3MKKy0gICAgKG04eDMyKSA9PiB7Cist ICAgICAgICBpbXBsIEFsbCBmb3IgbTh4MzIgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAg IGxldCBpOiBbdTEyODsgMl0gPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAg ICAgICAgICAgIGxldCBvOiBbdTEyODsgMl0gPSBbdTEyODo6bWF4X3ZhbHVlKCk7IDJdOworLSAg ICAgICAgICAgICAgICBpID09IG8KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAg ICBpbXBsIEFueSBmb3IgbTh4MzIgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAg ICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgIGxldCBp OiBbdTEyODsgMl0gPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAg ICAgIGxldCBvOiBbdTEyODsgMl0gPSBbMDsgMl07CistICAgICAgICAgICAgICAgIGkgIT0gbwor LSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy0gICAgKG0xNngxNikgPT4gewor LSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTE2eDE2LCBtOHgzMik7CistICAgIH07 CistICAgIChtMzJ4OCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTMy eDgsIG0xNngxNik7CistICAgIH07CistICAgIChtNjR4NCkgPT4geworLSAgICAgICAgZmFsbGJh Y2tfdG9fb3RoZXJfaW1wbCEobTY0eDQsIG0zMng4KTsKKy0gICAgfTsKKy0gICAgKG0xMjh4Mikg PT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTEyOHgyLCBtNjR4NCk7Cist ICAgIH07CistICAgIC8vIDUxMi1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4NjQpID0+IHsKKy0g ICAgICAgIGltcGwgQWxsIGZvciBtOHg2NCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgdW5zYWZlIGZuIGFsbChzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg bGV0IGk6IFt1MTI4OyA0XSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAg ICAgICAgICAgbGV0IG86IFt1MTI4OyA0XSA9IFt1MTI4OjptYXhfdmFsdWUoKTsgNF07CistICAg ICAgICAgICAgICAgIGkgPT0gbworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAg IGltcGwgQW55IGZvciBtOHg2NCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAg ICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgbGV0IGk6 IFt1MTI4OyA0XSA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAg ICAgbGV0IG86IFt1MTI4OyA0XSA9IFswOyA0XTsKKy0gICAgICAgICAgICAgICAgaSAhPSBvCist ICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAobTE2eDMyKSA9PiB7Cist ICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTZ4MzIsIG04eDY0KTsKKy0gICAgfTsK Ky0gICAgKG0zMngxNikgPT4geworLSAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobTMy eDE2LCBtMTZ4MzIpOworLSAgICB9OworLSAgICAobTY0eDgpID0+IHsKKy0gICAgICAgIGZhbGxi YWNrX3RvX290aGVyX2ltcGwhKG02NHg4LCBtMzJ4MTYpOworLSAgICB9OworLSAgICAobTEyOHg0 KSA9PiB7CistICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtMTI4eDQsIG02NHg4KTsK Ky0gICAgfTsKKy0gICAgLy8gTWFza3Mgd2l0aCBwb2ludGVyLXNpemVkIGVsZW1lbnRzNjQKKy0g ICAgKG1zaXpleDIpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAgICAgICAgIGlmICNb Y2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAgICAgICAgICAgZmFs bGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4MiwgbTY0eDIpOworLSAgICAgICAgICAgIH0gZWxz ZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7CistICAgICAgICAgICAg ICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG0zMngyKTsKKy0gICAgICAgICAg ICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgidW5zdXBwb3J0ZWQg dGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAg IH07CistICAgIChtc2l6ZXg0KSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAg ICBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAgICAg ICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDQsIG02NHg0KTsKKy0gICAgICAgICAg ICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAg ICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtMzJ4NCk7CistICAg ICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3Vw cG9ydGVkIHRhcmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLSAgICAobXNpemV4OCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAg ICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAg ICAgICAgICAgICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg4LCBtNjR4OCk7CistICAg ICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsK Ky0gICAgICAgICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTMyeDgp OworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3Ih KCJ1bnN1cHBvcnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKy0gICAgfTsKKy19CistCistbWFjcm9fcnVsZXMhIHJlY3Vyc2VfaGFsZiB7Cist ICAgICgkdmlkOmlkZW50LCAkdmlkX2g6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZv ciAkdmlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4g YWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1bmlvbiBVIHsKKy0gICAgICAg ICAgICAgICAgICAgIGhhbHZlczogKCR2aWRfaCwgJHZpZF9oKSwKKy0gICAgICAgICAgICAgICAg ICAgIHZlYzogJHZpZCwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBsZXQg aGFsdmVzID0gVSB7IHZlYzogc2VsZiB9LmhhbHZlczsKKy0gICAgICAgICAgICAgICAgaGFsdmVz LjAuYWxsKCkgJiYgaGFsdmVzLjEuYWxsKCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgICAgICBpbXBsIEFueSBmb3IgJHZpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg dW5pb24gVSB7CistICAgICAgICAgICAgICAgICAgICBoYWx2ZXM6ICgkdmlkX2gsICR2aWRfaCks CistICAgICAgICAgICAgICAgICAgICB2ZWM6ICR2aWQsCistICAgICAgICAgICAgICAgIH0KKy0g ICAgICAgICAgICAgICAgbGV0IGhhbHZlcyA9IFUgeyB2ZWM6IHNlbGYgfS5oYWx2ZXM7CistICAg ICAgICAgICAgICAgIGhhbHZlcy4wLmFueSgpIHx8IGhhbHZlcy4xLmFueSgpCistICAgICAgICAg ICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFzay94ODYu cnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2LnJzCisrKysgL2Rldi9udWxs CitAQCAtMSwyMTYgKzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50YXRpb24g Zm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzCistCistI1tjZmcodGFyZ2V0X2ZlYXR1cmUg PSAic3NlIildCistI1ttYWNyb191c2VdCistbW9kIHNzZTsKKy0KKy0jW2NmZyh0YXJnZXRfZmVh dHVyZSA9ICJzc2UyIildCistI1ttYWNyb191c2VdCistbW9kIHNzZTI7CistCistI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildCistI1ttYWNyb191c2VdCistbW9kIGF2eDsKKy0KKy0jW2Nm Zyh0YXJnZXRfZmVhdHVyZSA9ICJhdngyIildCistI1ttYWNyb191c2VdCistbW9kIGF2eDI7Cist CistLy8vIHg4NiA2NC1iaXQgbTh4OCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZf bTh4OF9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgZmFsbGJhY2tfaW1w bCEoJGlkKTsKKy0gICAgfTsKKy19CistCistLy8vIHg4NiAxMjgtYml0IG04eDE2IGltcGxlbWVu dGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgxNl9pbXBsIHsKKy0gICAgKCRpZDppZGVudCkg PT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2Zl YXR1cmUgPSAic3NlMiIpXSB7CistICAgICAgICAgICAgICAgIHg4Nl9tOHgxNl9zc2UyX2ltcGwh KCRpZCk7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZmFsbGJhY2tf aW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQor LS8vLyB4ODYgMTI4LWJpdCBtMzJ4NCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZf bTMyeDRfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgewor LSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZSIpXSB7CistICAgICAg ICAgICAgICAgIHg4Nl9tMzJ4NF9zc2VfaW1wbCEoJGlkKTsKKy0gICAgICAgICAgICB9IGVsc2Ug eworLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQpOworLSAgICAgICAgICAgIH0K Ky0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIHg4NiAxMjgtYml0IG02NHgyIGltcGxl bWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tNjR4Ml9pbXBsIHsKKy0gICAgKCRpZDppZGVu dCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0 X2ZlYXR1cmUgPSAic3NlMiIpXSB7CistICAgICAgICAgICAgICAgIHg4Nl9tNjR4Ml9zc2UyX2lt cGwhKCRpZCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0g InNzZSIpXSB7CistICAgICAgICAgICAgICAgIHg4Nl9tMzJ4NF9zc2VfaW1wbCEoJGlkKTsKKy0g ICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmYWxsYmFja19pbXBsISgkaWQp OworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgfTsKKy19CistCistLy8vIHg4NiAy NTYtYml0IG04eDMyIGltcGxlbWVudGF0aW9uCistbWFjcm9fcnVsZXMhIHg4Nl9tOHgzMl9pbXBs IHsKKy0gICAgKCRpZDppZGVudCwgJGhhbGZfaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGNmZ19p ZiEgeworLSAgICAgICAgICAgIGlmICNbY2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eDIiKV0gewor LSAgICAgICAgICAgICAgICB4ODZfbTh4MzJfYXZ4Ml9pbXBsISgkaWQpOworLSAgICAgICAgICAg IH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJhdngiKV0geworLSAgICAgICAgICAg ICAgICB4ODZfbTh4MzJfYXZ4X2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfSBlbHNlIGlmICNb Y2ZnKHRhcmdldF9mZWF0dXJlID0gInNzZTIiKV0geworLSAgICAgICAgICAgICAgICByZWN1cnNl X2hhbGYhKCRpZCwgJGhhbGZfaWQpOworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAg ICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KKy0KKy0vLy8geDg2IDI1Ni1iaXQgbTMyeDggaW1wbGVtZW50YXRpb24KKy1t YWNyb19ydWxlcyEgeDg2X20zMng4X2ltcGwgeworLSAgICAoJGlkOmlkZW50LCAkaGFsZl9pZDpp ZGVudCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFy Z2V0X2ZlYXR1cmUgPSAiYXZ4IildIHsKKy0gICAgICAgICAgICAgICAgeDg2X20zMng4X2F2eF9p bXBsISgkaWQpOworLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9 ICJzc2UiKV0geworLSAgICAgICAgICAgICAgICByZWN1cnNlX2hhbGYhKCRpZCwgJGhhbGZfaWQp OworLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwh KCRpZCk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8g eDg2IDI1Ni1iaXQgbTY0eDQgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X202NHg0 X2ltcGwgeworLSAgICAoJGlkOmlkZW50LCAkaGFsZl9pZDppZGVudCkgPT4geworLSAgICAgICAg Y2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcodGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4Iild IHsKKy0gICAgICAgICAgICAgICAgeDg2X202NHg0X2F2eF9pbXBsISgkaWQpOworLSAgICAgICAg ICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfZmVhdHVyZSA9ICJzc2UiKV0geworLSAgICAgICAg ICAgICAgICByZWN1cnNlX2hhbGYhKCRpZCwgJGhhbGZfaWQpOworLSAgICAgICAgICAgIH0gZWxz ZSB7CistICAgICAgICAgICAgICAgIGZhbGxiYWNrX2ltcGwhKCRpZCk7CistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8gRmFsbGJhY2sgaW1wbGVtZW50YXRp b24uCistbWFjcm9fcnVsZXMhIHg4Nl9pbnRyX2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7 CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0g ICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6Omxsdm06OnNpbWRfcmVkdWNlX2FsbDsKKy0gICAgICAgICAgICAgICAgc2lt ZF9yZWR1Y2VfYWxsKHNlbGYuMCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAg ICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6Omxsdm06OnNpbWRfcmVkdWNlX2FueTsKKy0gICAgICAgICAgICAgICAgc2ltZF9yZWR1Y2Vf YW55KHNlbGYuMCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQor LS8vLyBNYXNrIHJlZHVjdGlvbiBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4ODZfNjRg IHRhcmdldHMKKy1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3JlZHVjdGlvbnMgeworLSAgICAvLyA2 NC1iaXQgd2lkZSBtYXNrcworLSAgICAobTh4OCkgPT4geworLSAgICAgICAgeDg2X204eDhfaW1w bCEobTh4OCk7CistICAgIH07CistICAgIChtMTZ4NCkgPT4geworLSAgICAgICAgeDg2X204eDhf aW1wbCEobTE2eDQpOworLSAgICB9OworLSAgICAobTMyeDIpID0+IHsKKy0gICAgICAgIHg4Nl9t OHg4X2ltcGwhKG0zMngyKTsKKy0gICAgfTsKKy0gICAgLy8gMTI4LWJpdCB3aWRlIG1hc2tzCist ICAgIChtOHgxNikgPT4geworLSAgICAgICAgeDg2X204eDE2X2ltcGwhKG04eDE2KTsKKy0gICAg fTsKKy0gICAgKG0xNng4KSA9PiB7CistICAgICAgICB4ODZfbTh4MTZfaW1wbCEobTE2eDgpOwor LSAgICB9OworLSAgICAobTMyeDQpID0+IHsKKy0gICAgICAgIHg4Nl9tMzJ4NF9pbXBsIShtMzJ4 NCk7CistICAgIH07CistICAgIChtNjR4MikgPT4geworLSAgICAgICAgeDg2X202NHgyX2ltcGwh KG02NHgyKTsKKy0gICAgfTsKKy0gICAgKG0xMjh4MSkgPT4geworLSAgICAgICAgeDg2X2ludHJf aW1wbCEobTEyOHgxKTsKKy0gICAgfTsKKy0gICAgLy8gMjU2LWJpdCB3aWRlIG1hc2tzOgorLSAg ICAobTh4MzIpID0+IHsKKy0gICAgICAgIHg4Nl9tOHgzMl9pbXBsIShtOHgzMiwgbTh4MTYpOwor LSAgICB9OworLSAgICAobTE2eDE2KSA9PiB7CistICAgICAgICB4ODZfbTh4MzJfaW1wbCEobTE2 eDE2LCBtMTZ4OCk7CistICAgIH07CistICAgIChtMzJ4OCkgPT4geworLSAgICAgICAgeDg2X20z Mng4X2ltcGwhKG0zMng4LCBtMzJ4NCk7CistICAgIH07CistICAgIChtNjR4NCkgPT4geworLSAg ICAgICAgeDg2X202NHg0X2ltcGwhKG02NHg0LCBtNjR4Mik7CistICAgIH07CistICAgIChtMTI4 eDIpID0+IHsKKy0gICAgICAgIHg4Nl9pbnRyX2ltcGwhKG0xMjh4Mik7CistICAgIH07CistICAg IChtc2l6ZXgyKSA9PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2Nm Zyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICI2NCIpXSB7CistICAgICAgICAgICAgICAgIGZhbGxi YWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDIsIG02NHgyKTsKKy0gICAgICAgICAgICB9IGVsc2Ug aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMzIiKV0geworLSAgICAgICAgICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXgyLCBtMzJ4Mik7CistICAgICAgICAgICAg fSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRh cmdldF9wb2ludGVyX3dpZHRoIik7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9 OworLSAgICAobXNpemV4NCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAg aWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiNjQiKV0geworLSAgICAgICAgICAgICAg ICBmYWxsYmFja190b19vdGhlcl9pbXBsIShtc2l6ZXg0LCBtNjR4NCk7CistICAgICAgICAgICAg fSBlbHNlIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAg ICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4NCwgbTMyeDQpOworLSAgICAg ICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGNvbXBpbGVfZXJyb3IhKCJ1bnN1cHBv cnRlZCB0YXJnZXRfcG9pbnRlcl93aWR0aCIpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0K Ky0gICAgfTsKKy0gICAgKG1zaXpleDgpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAgICAg ICAgICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0gIjY0IildIHsKKy0gICAgICAg ICAgICAgICAgZmFsbGJhY2tfdG9fb3RoZXJfaW1wbCEobXNpemV4OCwgbTY0eDgpOworLSAgICAg ICAgICAgIH0gZWxzZSBpZiAjW2NmZyh0YXJnZXRfcG9pbnRlcl93aWR0aCA9ICIzMiIpXSB7Cist ICAgICAgICAgICAgICAgIGZhbGxiYWNrX3RvX290aGVyX2ltcGwhKG1zaXpleDgsIG0zMng4KTsK Ky0gICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBjb21waWxlX2Vycm9yISgi dW5zdXBwb3J0ZWQgdGFyZ2V0X3BvaW50ZXJfd2lkdGgiKTsKKy0gICAgICAgICAgICB9CistICAg ICAgICB9CistICAgIH07CistCistICAgIC8vIEZhbGxiYWNrIHRvIExMVk0ncyBkZWZhdWx0IGNv ZGUtZ2VuZXJhdGlvbjoKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgZmFsbGJhY2tf aW1wbCEoJGlkKTsKKy0gICAgfTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9h dngucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eC5ycworKysrIC9k ZXYvbnVsbAorQEAgLTEsOTUgKzAsMCBAQAorLS8vISBNYXNrIHJlZHVjdGlvbnMgaW1wbGVtZW50 YXRpb24gZm9yIGB4ODZgIGFuZCBgeDg2XzY0YCB0YXJnZXRzIHdpdGggYEFWWGAKKy0KKy0vLy8g YHg4NmAvYHg4Nl82NGAgMjU2LWJpdCBgQVZYYCBpbXBsZW1lbnRhdGlvbgorLS8vLyBGSVhNRTog aXQgbWlnaHQgYmUgZmFzdGVyIGhlcmUgdG8gZG8gdHdvIGBfbW1fbW92bWFza19lcGk4YAorLSNb Y2ZnKHRhcmdldF9mZWF0dXJlID0gImF2eCIpXQorLW1hY3JvX3J1bGVzISB4ODZfbTh4MzJfYXZ4 X2ltcGwgeworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlk IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJl KGVuYWJsZSA9ICJhdngiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJv b2wgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl90ZXN0Y19zaTI1NjsKKy0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfdGVzdGNfc2kyNTY7CistICAg ICAgICAgICAgICAgIF9tbTI1Nl90ZXN0Y19zaTI1NihjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2Vs ZiksIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgkaWQ6OnNwbGF0KHRydWUpKSkgIT0gMAorLSAgICAg ICAgICAgIH0KKy0gICAgICAgIH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAg ICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0g ImF2eCIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbnkoc2VsZikgLT4gYm9vbCB7CistICAg ICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X3Rlc3R6X3NpMjU2OworLSAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbTI1Nl90ZXN0el9zaTI1NjsKKy0gICAgICAgICAgICAg ICAgX21tMjU2X3Rlc3R6X3NpMjU2KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSwgY3JhdGU6 Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSA9PSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICB9OworLX0KKy0KKy0vLy8gYHg4NmAvYHg4Nl82NGAgMjU2LWJpdCBtMzJ4OCBgQVZYYCBp bXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTMyeDhfYXZ4X2ltcGwgeworLSAgICAo JGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0gICAgICAgICAg ICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2Ui KV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAg ICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNl IGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wczsKKy0gICAgICAgICAgICAgICAg I1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0 ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfcHM7CistICAgICAgICAgICAgICAgIC8v IF9tbTI1Nl9tb3ZlbWFza19wcyhhKSBjcmVhdGVzIGEgOGJpdCBtYXNrIGNvbnRhaW5pbmcgdGhl CistICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggbGFuZSBv ZiBgYWAuIElmIGFsbCBiaXRzIGFyZQorLSAgICAgICAgICAgICAgICAvLyBzZXQsIHRoZW4gYWxs IDggbGFuZXMgb2YgdGhlIG1hc2sgYXJlIHRydWUuCistICAgICAgICAgICAgICAgIF9tbTI1Nl9t b3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpID09IDBiXzExMTFfMTExMV9p MzIKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlk IHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJl KGVuYWJsZSA9ICJzc2UiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJv b2wgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAg ICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wczsKKy0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfcHM7CistCist ICAgICAgICAgICAgICAgIF9tbTI1Nl9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUo c2VsZikpICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQor LS8vLyBgeDg2YC9geDg2XzY0YCAyNTYtYml0IG02NHg0IGBBVlhgIGltcGxlbWVudGF0aW9uCist bWFjcm9fcnVsZXMhIHg4Nl9tNjR4NF9hdnhfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsK Ky0gICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAg ICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAgICAgICAgICAg IHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRh cmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4 Njo6X21tMjU2X21vdmVtYXNrX3BkOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJj aCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6 Ol9tbTI1Nl9tb3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgLy8gX21tMjU2X21vdmVtYXNr X3BkKGEpIGNyZWF0ZXMgYSA0Yml0IG1hc2sgY29udGFpbmluZyB0aGUKKy0gICAgICAgICAgICAg ICAgLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxsIGJp dHMgYXJlCistICAgICAgICAgICAgICAgIC8vIHNldCwgdGhlbiBhbGwgNCBsYW5lcyBvZiB0aGUg bWFzayBhcmUgdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21tMjU2X21vdmVtYXNrX3BkKGNyYXRl OjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTExMV9pMzIKKy0gICAgICAgICAgICB9Cist ICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9ICJzc2UiKV0KKy0g ICAgICAgICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAg ICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRl OjphcmNoOjp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgI1tjZmco dGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJj aDo6eDg2XzY0OjpfbW0yNTZfbW92ZW1hc2tfcGQ7CistCistICAgICAgICAgICAgICAgIF9tbTI1 Nl9tb3ZlbWFza19wZChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9hdngyLnJz IGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21h c2sveDg2L2F2eDIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi9yZWR1Y3Rpb25zL21hc2sveDg2L2F2eDIu cnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDM1ICswLDAgQEAKKy0vLyEgTWFzayByZWR1Y3Rpb25z IGltcGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cyB3aXRoIGBBVlgy YC4KKy0jIVthbGxvdyh1bnVzZWQpXQorLQorLS8vLyB4ODYveDg2XzY0IDI1Ni1iaXQgbTh4MzIg QVZYMiBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTh4MzJfYXZ4Ml9pbXBsIHsK Ky0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBBbGwgZm9yICRpZCB7CistICAg ICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUg PSAic3NlMiIpXQorLSAgICAgICAgICAgIHVuc2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7Cist ICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tMjU2X21vdmVtYXNrX2VwaTg7CistICAgICAg ICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAg ICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tMjU2X21vdmVtYXNrX2VwaTg7CistICAgICAg ICAgICAgICAgIC8vIF9tbTI1Nl9tb3ZlbWFza19lcGk4KGEpIGNyZWF0ZXMgYSAzMmJpdCBtYXNr IGNvbnRhaW5pbmcgdGhlCistICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0 IG9mIGVhY2ggYnl0ZSBvZiBgYWAuIElmIGFsbAorLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFy ZSBzZXQsIHRoZW4gYWxsIDMyIGxhbmVzIG9mIHRoZSBtYXNrIGFyZQorLSAgICAgICAgICAgICAg ICAvLyB0cnVlLgorLSAgICAgICAgICAgICAgICBfbW0yNTZfbW92ZW1hc2tfZXBpOChjcmF0ZTo6 bWVtOjp0cmFuc211dGUoc2VsZikpID09IC0xX2kzMgorLSAgICAgICAgICAgIH0KKy0gICAgICAg IH0KKy0gICAgICAgIGltcGwgQW55IGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQor LSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZTIiKV0KKy0gICAgICAg ICAgICB1bnNhZmUgZm4gYW55KHNlbGYpIC0+IGJvb2wgeworLSAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNo Ojp4ODY6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJn ZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4 ODZfNjQ6Ol9tbTI1Nl9tb3ZlbWFza19lcGk4OworLQorLSAgICAgICAgICAgICAgICBfbW0yNTZf bW92ZW1hc2tfZXBpOChjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikpICE9IDAKKy0gICAgICAg ICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3JlZHVjdGlvbnMvbWFz ay94ODYvc3NlLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5 L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UucnMK KysrKyAvZGV2L251bGwKK0BAIC0xLDM1ICswLDAgQEAKKy0vLyEgTWFzayByZWR1Y3Rpb25zIGlt cGxlbWVudGF0aW9uIGZvciBgeDg2YCBhbmQgYHg4Nl82NGAgdGFyZ2V0cyB3aXRoIGBTU0VgLgor LSMhW2FsbG93KHVudXNlZCldCistCistLy8vIGB4ODZgL2B4ODZfNjRgIDEyOC1iaXQgYG0zMng0 YCBgU1NFYCBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISB4ODZfbTMyeDRfc3NlX2ltcGwg eworLSAgICAoJGlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIEFsbCBmb3IgJGlkIHsKKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJs ZSA9ICJzc2UiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+IGJvb2wgewor LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAg ICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19wczsKKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfcHM7CistICAgICAgICAgICAgICAg IC8vIF9tbV9tb3ZlbWFza19wcyhhKSBjcmVhdGVzIGEgNGJpdCBtYXNrIGNvbnRhaW5pbmcgdGhl CistICAgICAgICAgICAgICAgIC8vIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGVhY2ggbGFuZSBv ZiBgYWAuIElmIGFsbAorLSAgICAgICAgICAgICAgICAvLyBiaXRzIGFyZSBzZXQsIHRoZW4gYWxs IDQgbGFuZXMgb2YgdGhlIG1hc2sgYXJlCistICAgICAgICAgICAgICAgIC8vIHRydWUuCistICAg ICAgICAgICAgICAgIF9tbV9tb3ZlbWFza19wcyhjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZikp ID09IDBiXzExMTFfaTMyCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaW1w bCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgI1t0 YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFu eShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAi eDg2IildCistICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1h c2tfcHM7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQor LSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX3Bz OworLQorLSAgICAgICAgICAgICAgICBfbW1fbW92ZW1hc2tfcHMoY3JhdGU6Om1lbTo6dHJhbnNt dXRlKHNlbGYpKSAhPSAwCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0K K2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Jl ZHVjdGlvbnMvbWFzay94ODYvc3NlMi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL2NvZGVnZW4vcmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzCitkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4v cmVkdWN0aW9ucy9tYXNrL3g4Ni9zc2UyLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw2OCArMCww IEBACistLy8hIE1hc2sgcmVkdWN0aW9ucyBpbXBsZW1lbnRhdGlvbiBmb3IgYHg4NmAgYW5kIGB4 ODZfNjRgIHRhcmdldHMgd2l0aCBgU1NFMmAuCistIyFbYWxsb3codW51c2VkKV0KKy0KKy0vLy8g YHg4NmAvYHg4Nl82NGAgMTI4LWJpdCBtNjR4MiBgU1NFMmAgaW1wbGVtZW50YXRpb24KKy1tYWNy b19ydWxlcyEgeDg2X202NHgyX3NzZTJfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0g ICAgICAgIGltcGwgQWxsIGZvciAkaWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgICNbdGFyZ2V0X2ZlYXR1cmUoZW5hYmxlID0gInNzZSIpXQorLSAgICAgICAgICAgIHVu c2FmZSBmbiBhbGwoc2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAgICAgICNbY2ZnKHRhcmdl dF9hcmNoID0gIng4NiIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6 X21tX21vdmVtYXNrX3BkOworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4 ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9t b3ZlbWFza19wZDsKKy0gICAgICAgICAgICAgICAgLy8gX21tX21vdmVtYXNrX3BkKGEpIGNyZWF0 ZXMgYSAyYml0IG1hc2sgY29udGFpbmluZyB0aGUKKy0gICAgICAgICAgICAgICAgLy8gbW9zdCBz aWduaWZpY2FudCBiaXQgb2YgZWFjaCBsYW5lIG9mIGBhYC4gSWYgYWxsCistICAgICAgICAgICAg ICAgIC8vIGJpdHMgYXJlIHNldCwgdGhlbiBhbGwgMiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKKy0g ICAgICAgICAgICAgICAgLy8gdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX3Bk KGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSkgPT0gMGJfMTFfaTMyCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICAgICAgaW1wbCBBbnkgZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgI1t0YXJnZXRfZmVhdHVyZShlbmFibGUgPSAic3NlIild CistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAgICAgIHVzZSBj cmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfcGQ7CistICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9hcmNoID0gIng4Nl82NCIpXQorLSAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFy Y2g6Ong4Nl82NDo6X21tX21vdmVtYXNrX3BkOworLQorLSAgICAgICAgICAgICAgICBfbW1fbW92 ZW1hc2tfcGQoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAwCistICAgICAgICAgICAg fQorLSAgICAgICAgfQorLSAgICB9OworLX0KKy0KKy0vLy8gYHg4NmAvYHg4Nl82NGAgMTI4LWJp dCBtOHgxNiBgU1NFMmAgaW1wbGVtZW50YXRpb24KKy1tYWNyb19ydWxlcyEgeDg2X204eDE2X3Nz ZTJfaW1wbCB7CistICAgICgkaWQ6aWRlbnQpID0+IHsKKy0gICAgICAgIGltcGwgQWxsIGZvciAk aWQgeworLSAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICNbdGFyZ2V0X2ZlYXR1 cmUoZW5hYmxlID0gInNzZTIiKV0KKy0gICAgICAgICAgICB1bnNhZmUgZm4gYWxsKHNlbGYpIC0+ IGJvb2wgeworLSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0g ICAgICAgICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODY6Ol9tbV9tb3ZlbWFza19lcGk4Owor LSAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAg ICAgICAgICAgdXNlIGNyYXRlOjphcmNoOjp4ODZfNjQ6Ol9tbV9tb3ZlbWFza19lcGk4OworLSAg ICAgICAgICAgICAgICAvLyBfbW1fbW92ZW1hc2tfZXBpOChhKSBjcmVhdGVzIGEgMTZiaXQgbWFz ayBjb250YWluaW5nIHRoZQorLSAgICAgICAgICAgICAgICAvLyBtb3N0IHNpZ25pZmljYW50IGJp dCBvZiBlYWNoIGJ5dGUgb2YgYGFgLiBJZiBhbGwKKy0gICAgICAgICAgICAgICAgLy8gYml0cyBh cmUgc2V0LCB0aGVuIGFsbCAxNiBsYW5lcyBvZiB0aGUgbWFzayBhcmUKKy0gICAgICAgICAgICAg ICAgLy8gdHJ1ZS4KKy0gICAgICAgICAgICAgICAgX21tX21vdmVtYXNrX2VwaTgoY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpKSA9PSBpMzI6OmZyb20odTE2OjptYXhfdmFsdWUoKSkKKy0gICAg ICAgICAgICB9CistICAgICAgICB9CistICAgICAgICBpbXBsIEFueSBmb3IgJGlkIHsKKy0gICAg ICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAjW3RhcmdldF9mZWF0dXJlKGVuYWJsZSA9 ICJzc2UyIildCistICAgICAgICAgICAgdW5zYWZlIGZuIGFueShzZWxmKSAtPiBib29sIHsKKy0g ICAgICAgICAgICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2IildCistICAgICAgICAgICAg ICAgIHVzZSBjcmF0ZTo6YXJjaDo6eDg2OjpfbW1fbW92ZW1hc2tfZXBpODsKKy0gICAgICAgICAg ICAgICAgI1tjZmcodGFyZ2V0X2FyY2ggPSAieDg2XzY0IildCistICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6eDg2XzY0OjpfbW1fbW92ZW1hc2tfZXBpODsKKy0KKy0gICAgICAgICAg ICAgICAgX21tX21vdmVtYXNrX2VwaTgoY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpKSAhPSAw CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLX0KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUucnMKK2RlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi9zaHVmZmxlLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwxNTAgKzAsMCBAQAorLS8v ISBJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGBTaHVmZmxlUmVzdWx0YCB0cmFpdCBmb3IgdGhlIGRp ZmZlcmVudCBudW1iZXJzIG9mCistLy8hIGxhbmVzIGFuZCB2ZWN0b3IgZWxlbWVudCB0eXBlcy4K Ky0KKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLXVzZSBjcmF0ZTo6c2VhbGVkOjp7U2VhbCwgU2h1 ZmZsZX07CistCistbWFjcm9fcnVsZXMhIGltcGxfc2h1ZmZsZSB7CistICAgICgkYXJyYXk6dHks ICRiYXNlOnR5LCAkb3V0OnR5KSA9PiB7CistICAgICAgICBpbXBsIFNlYWw8JGFycmF5PiBmb3Ig JGJhc2Uge30KKy0gICAgICAgIGltcGwgU2h1ZmZsZTwkYXJyYXk+IGZvciAkYmFzZSB7CistICAg ICAgICAgICAgdHlwZSBPdXRwdXQgPSAkb3V0OworLSAgICAgICAgfQorLSAgICB9OworLX0KKy0K Ky1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGk4LCBjcmF0ZTo6Y29kZWdlbjo6aTh4MiB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDQgfQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgaTgsIGNyYXRlOjpjb2RlZ2VuOjppOHg4IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMTZdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDE2IH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMzJdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDMyIH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgNjRdLCBpOCwgY3JhdGU6OmNvZGVnZW46Omk4eDY0IH0KKy0KKy1p bXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHU4LCBjcmF0ZTo6Y29kZWdlbjo6dTh4MiB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDQgfQorLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTgsIGNyYXRlOjpjb2RlZ2VuOjp1OHg4IH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMTZdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDE2IH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMzJdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDMyIH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNjRdLCB1OCwgY3JhdGU6OmNvZGVnZW46OnU4eDY0IH0KKy0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIG04LCBjcmF0ZTo6Y29kZWdlbjo6bTh4MiB9CistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDRdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDQgfQorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyA4XSwgbTgsIGNyYXRlOjpjb2RlZ2VuOjptOHg4IH0KKy1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMTZdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDE2IH0KKy1pbXBsX3NodWZm bGUhIHsgW3UzMjsgMzJdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDMyIH0KKy1pbXBsX3NodWZm bGUhIHsgW3UzMjsgNjRdLCBtOCwgY3JhdGU6OmNvZGVnZW46Om04eDY0IH0KKy0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngyIH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgNF0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNng0IH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgOF0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNng4IH0KKy1pbXBsX3No dWZmbGUhIHsgW3UzMjsgMTZdLCBpMTYsIGNyYXRlOjpjb2RlZ2VuOjppMTZ4MTYgfQorLWltcGxf c2h1ZmZsZSEgeyBbdTMyOyAzMl0sIGkxNiwgY3JhdGU6OmNvZGVnZW46OmkxNngzMiB9CistCist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MiB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4NCB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4OCB9Cist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgdTE2LCBjcmF0ZTo6Y29kZWdlbjo6dTE2eDE2IH0K Ky1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMzJdLCB1MTYsIGNyYXRlOjpjb2RlZ2VuOjp1MTZ4MzIg fQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2 eDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2 eDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgbTE2LCBjcmF0ZTo6Y29kZWdlbjo6bTE2 eDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIG0xNiwgY3JhdGU6OmNvZGVnZW46Om0x NngxNiB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpMzIsIGNyYXRlOjpjb2RlZ2Vu OjppMzJ4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpMzIsIGNyYXRlOjpjb2RlZ2Vu OjppMzJ4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpMzIsIGNyYXRlOjpjb2RlZ2Vu OjppMzJ4OCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgaTMyLCBjcmF0ZTo6Y29kZWdl bjo6aTMyeDE2IH0KKy0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHUzMiwgY3JhdGU6OmNv ZGVnZW46OnUzMngyIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIHUzMiwgY3JhdGU6OmNv ZGVnZW46OnUzMng0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHUzMiwgY3JhdGU6OmNv ZGVnZW46OnUzMng4IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMTZdLCB1MzIsIGNyYXRlOjpj b2RlZ2VuOjp1MzJ4MTYgfQorLQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgZjMyLCBjcmF0 ZTo6Y29kZWdlbjo6ZjMyeDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgZjMyLCBjcmF0 ZTo6Y29kZWdlbjo6ZjMyeDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgZjMyLCBjcmF0 ZTo6Y29kZWdlbjo6ZjMyeDggfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxNl0sIGYzMiwgY3Jh dGU6OmNvZGVnZW46OmYzMngxNiB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtMzIs IGNyYXRlOjpjb2RlZ2VuOjptMzJ4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtMzIs IGNyYXRlOjpjb2RlZ2VuOjptMzJ4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtMzIs IGNyYXRlOjpjb2RlZ2VuOjptMzJ4OCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDE2XSwgbTMy LCBjcmF0ZTo6Y29kZWdlbjo6bTMyeDE2IH0KKy0KKy0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBl bGVtZW50IHZlY3RvcgorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29k ZWdlbjo6aTY0eDEgfQorLSovCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpNjQsIGNyYXRl Ojpjb2RlZ2VuOjppNjR4MiB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDRdLCBpNjQsIGNyYXRl Ojpjb2RlZ2VuOjppNjR4NCB9CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDhdLCBpNjQsIGNyYXRl Ojpjb2RlZ2VuOjppNjR4OCB9CistCistLyogRklYTUU6IDY0LWJpdCBzaW5nbGUgZWxlbWVudCB2 ZWN0b3IKKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMV0sIGk2NCwgY3JhdGU6OmNvZGVnZW46Omk2 NHgxIH0KKy0qLworLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyAyXSwgdTY0LCBjcmF0ZTo6Y29kZWdl bjo6dTY0eDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTY0LCBjcmF0ZTo6Y29kZWdl bjo6dTY0eDQgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA4XSwgdTY0LCBjcmF0ZTo6Y29kZWdl bjo6dTY0eDggfQorLQorLS8qIEZJWE1FOiA2NC1iaXQgc2luZ2xlIGVsZW1lbnQgdmVjdG9yCist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBpNjQsIGNyYXRlOjpjb2RlZ2VuOjppNjR4MSB9Cist Ki8KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIGY2NCwgY3JhdGU6OmNvZGVnZW46OmY2NHgy IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgNF0sIGY2NCwgY3JhdGU6OmNvZGVnZW46OmY2NHg0 IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGY2NCwgY3JhdGU6OmNvZGVnZW46OmY2NHg4 IH0KKy0KKy0vKiBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50IHZlY3RvcgorLWltcGxfc2h1 ZmZsZSEgeyBbdTMyOyAxXSwgaTY0LCBjcmF0ZTo6Y29kZWdlbjo6aTY0eDEgfQorLSovCistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDJdLCBtNjQsIGNyYXRlOjpjb2RlZ2VuOjptNjR4MiB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDRdLCBtNjQsIGNyYXRlOjpjb2RlZ2VuOjptNjR4NCB9CistaW1w bF9zaHVmZmxlISB7IFt1MzI7IDhdLCBtNjQsIGNyYXRlOjpjb2RlZ2VuOjptNjR4OCB9CistCist aW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBpc2l6ZSwgY3JhdGU6OmNvZGVnZW46OmlzaXpleDIg fQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaXNpemUsIGNyYXRlOjpjb2RlZ2VuOjppc2l6 ZXg0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIGlzaXplLCBjcmF0ZTo6Y29kZWdlbjo6 aXNpemV4OCB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCB1c2l6ZSwgY3JhdGU6OmNv ZGVnZW46OnVzaXpleDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdXNpemUsIGNyYXRl Ojpjb2RlZ2VuOjp1c2l6ZXg0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgOF0sIHVzaXplLCBj cmF0ZTo6Y29kZWdlbjo6dXNpemV4OCB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDJdLCBt c2l6ZSwgY3JhdGU6OmNvZGVnZW46Om1zaXpleDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0 XSwgbXNpemUsIGNyYXRlOjpjb2RlZ2VuOjptc2l6ZXg0IH0KKy1pbXBsX3NodWZmbGUhIHsgW3Uz MjsgOF0sIG1zaXplLCBjcmF0ZTo6Y29kZWdlbjo6bXNpemV4OCB9CistCistaW1wbDxUPiBTZWFs PFt1MzI7IDJdPiBmb3IgKmNvbnN0IFQge30KKy1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgMl0+IGZv ciAqY29uc3QgVCB7CistICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46OmNwdHJ4MjxU PjsKKy19CistaW1wbDxUPiBTZWFsPFt1MzI7IDRdPiBmb3IgKmNvbnN0IFQge30KKy1pbXBsPFQ+ IFNodWZmbGU8W3UzMjsgNF0+IGZvciAqY29uc3QgVCB7CistICAgIHR5cGUgT3V0cHV0ID0gY3Jh dGU6OmNvZGVnZW46OmNwdHJ4NDxUPjsKKy19CistaW1wbDxUPiBTZWFsPFt1MzI7IDhdPiBmb3Ig KmNvbnN0IFQge30KKy1pbXBsPFQ+IFNodWZmbGU8W3UzMjsgOF0+IGZvciAqY29uc3QgVCB7Cist ICAgIHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46OmNwdHJ4ODxUPjsKKy19CistCistaW1w bDxUPiBTZWFsPFt1MzI7IDJdPiBmb3IgKm11dCBUIHt9CistaW1wbDxUPiBTaHVmZmxlPFt1MzI7 IDJdPiBmb3IgKm11dCBUIHsKKy0gICAgdHlwZSBPdXRwdXQgPSBjcmF0ZTo6Y29kZWdlbjo6bXB0 cngyPFQ+OworLX0KKy1pbXBsPFQ+IFNlYWw8W3UzMjsgNF0+IGZvciAqbXV0IFQge30KKy1pbXBs PFQ+IFNodWZmbGU8W3UzMjsgNF0+IGZvciAqbXV0IFQgeworLSAgICB0eXBlIE91dHB1dCA9IGNy YXRlOjpjb2RlZ2VuOjptcHRyeDQ8VD47CistfQorLWltcGw8VD4gU2VhbDxbdTMyOyA4XT4gZm9y ICptdXQgVCB7fQorLWltcGw8VD4gU2h1ZmZsZTxbdTMyOyA4XT4gZm9yICptdXQgVCB7CistICAg IHR5cGUgT3V0cHV0ID0gY3JhdGU6OmNvZGVnZW46Om1wdHJ4ODxUPjsKKy19CistCistaW1wbF9z aHVmZmxlISB7IFt1MzI7IDFdLCBpMTI4LCBjcmF0ZTo6Y29kZWdlbjo6aTEyOHgxIH0KKy1pbXBs X3NodWZmbGUhIHsgW3UzMjsgMl0sIGkxMjgsIGNyYXRlOjpjb2RlZ2VuOjppMTI4eDIgfQorLWlt cGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgaTEyOCwgY3JhdGU6OmNvZGVnZW46OmkxMjh4NCB9Cist CistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCB1MTI4LCBjcmF0ZTo6Y29kZWdlbjo6dTEyOHgx IH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIHUxMjgsIGNyYXRlOjpjb2RlZ2VuOjp1MTI4 eDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgdTEyOCwgY3JhdGU6OmNvZGVnZW46OnUx Mjh4NCB9CistCistaW1wbF9zaHVmZmxlISB7IFt1MzI7IDFdLCBtMTI4LCBjcmF0ZTo6Y29kZWdl bjo6bTEyOHgxIH0KKy1pbXBsX3NodWZmbGUhIHsgW3UzMjsgMl0sIG0xMjgsIGNyYXRlOjpjb2Rl Z2VuOjptMTI4eDIgfQorLWltcGxfc2h1ZmZsZSEgeyBbdTMyOyA0XSwgbTEyOCwgY3JhdGU6OmNv ZGVnZW46Om0xMjh4NCB9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2lt ZC9zcmMvY29kZWdlbi9zaHVmZmxlMV9keW4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUxX2R5bi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3NodWZmbGUx X2R5bi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNDA4ICswLDAgQEAKKy0vLyEgU2h1ZmZsZSB2 ZWN0b3IgbGFuZXMgd2l0aCBydW4tdGltZSBpbmRpY2VzLgorLQorLXVzZSBjcmF0ZTo6KjsKKy0K Ky1wdWIgdHJhaXQgU2h1ZmZsZTFEeW4geworLSAgICB0eXBlIEluZGljZXM7CistICAgIGZuIHNo dWZmbGUxX2R5bihzZWxmLCBfOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmOworLX0KKy0KKy0vLyBG YWxsYmFjayBpbXBsZW1lbnRhdGlvbgorLW1hY3JvX3J1bGVzISBpbXBsX2ZhbGxiYWNrIHsKKy0g ICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgJGlkIHsK Ky0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSBTZWxmOworLSAgICAgICAgICAgICNbaW5saW5l XQorLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRp Y2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgbGV0IG11dCByZXN1bHQgPSBTZWxmOjpz cGxhdCgwKTsKKy0gICAgICAgICAgICAgICAgZm9yIGkgaW4gMC4uJGlkOjpsYW5lcygpIHsKKy0g ICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKGksIHNlbGYuZXh0cmFj dChpbmRpY2VzLmV4dHJhY3QoaSkgYXMgdXNpemUpKTsKKy0gICAgICAgICAgICAgICAgfQorLSAg ICAgICAgICAgICAgICByZXN1bHQKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07 CistfQorLQorLW1hY3JvX3J1bGVzISBpbXBsX3NodWZmbGUxX2R5biB7CistICAgICh1OHg4KSA9 PiB7CistICAgICAgICBjZmdfaWYhIHsKKy0gICAgICAgICAgICBpZiAjW2NmZyhhbGwoCistICAg ICAgICAgICAgICAgIGFueSgKKy0gICAgICAgICAgICAgICAgICAgIGFsbCh0YXJnZXRfYXJjaCA9 ICJhYXJjaDY0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIpLAorLSAgICAgICAgICAgICAgICAg ICAgYWxsKHRhcmdldF9hcmNoID0gImRvZXNub3RleGlzdCIsIHRhcmdldF9mZWF0dXJlID0gInY3 IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZmVhdHVyZSA9ICJuZW9uIikKKy0g ICAgICAgICAgICAgICAgKSwKKy0gICAgICAgICAgICAgICAgYW55KGZlYXR1cmUgPSAiY29yZV9h cmNoIiwgbGliY29yZV9uZW9uKQorLSAgICAgICAgICAgICkKKy0gICAgICAgICAgICApXSB7Cist ICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU4eDggeworLSAgICAgICAgICAg ICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6 IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgICNbY2Zn KHRhcmdldF9hcmNoID0gImFhcmNoNjQiKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2Ug Y3JhdGU6OmFyY2g6OmFhcmNoNjQ6OnZ0YmwxX3U4OworLSAgICAgICAgICAgICAgICAgICAgICAg ICNbY2ZnKHRhcmdldF9hcmNoID0gImRvZXNub3RleGlzdCIpXQorLSAgICAgICAgICAgICAgICAg ICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjp2dGJsMV91ODsKKy0KKy0gICAgICAgICAgICAg ICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVk IHdpdGgKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZW9uIGVuYWJsZWQgYXQgY29tcGls ZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAv LyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KKy0gICAgICAgICAgICAgICAgICAg ICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kKG1lbTo6dHJh bnNtdXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnRibDFfdTgobWVtOjp0 cmFuc211dGUoc2VsZi4wKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKGluZGljZXMuMCkpCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkpCistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg ICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICAgICAgaW1wbF9mYWxsYmFjayEodTh4OCk7CistICAgICAgICAgICAgfQorLSAgICAg ICAgfQorLSAgICB9OworLSAgICAodTh4MTYpID0+IHsKKy0gICAgICAgIGNmZ19pZiEgeworLSAg ICAgICAgICAgIGlmICNbY2ZnKGFsbChhbnkodGFyZ2V0X2FyY2ggPSAieDg2IiwgdGFyZ2V0X2Fy Y2ggPSAieDg2XzY0IiksCistICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mZWF0dXJl ID0gInNzc2UzIikpXSB7CistICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU4 eDE2IHsKKy0gICAgICAgICAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAg ICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUx X2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAg ICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAg ICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Njo6X21tX3NodWZmbGVfZXBpODsKKy0gICAg ICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAg ICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6X21tX3NodWZmbGVf ZXBpODsKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0 aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBz c3NlMyBlbmFibGVkIGF0IGNvbXBpbGUtdGltZSBhbmQgY2FuIHRoZXJlZm9yZSBvbmx5CistICAg ICAgICAgICAgICAgICAgICAgICAgLy8gcnVuIG9uIENQVXMgdGhhdCBoYXZlIGl0IGVuYWJsZWQu CistICAgICAgICAgICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2ltZChtZW06OnRyYW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9tbV9zaHVmZmxlX2VwaTgobWVtOjp0cmFuc211dGUoc2VsZi4wKSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFu c211dGUoaW5kaWNlcykpCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCistICAgICAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAg ICAgICB9CistICAgICAgICAgICAgfSBlbHNlIGlmICNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJh YXJjaDY0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAibmVvbiIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3JlX2FyY2giLCBsaWJjb3JlX25lb24pKSldIHsK Ky0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTh4MTYgeworLSAgICAgICAg ICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGlj ZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgIHVz ZSBjcmF0ZTo6YXJjaDo6YWFyY2g2NDo6dnF0YmwxcV91ODsKKy0KKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgYmluYXJ5IGlzIGNvbXBpbGVkIHdp dGgKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZW9uIGVuYWJsZWQgYXQgY29tcGlsZS10 aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBy dW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KKy0gICAgICAgICAgICAgICAgICAgICAg ICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW1kKG1lbTo6dHJhbnNt dXRlKAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnF0YmwxcV91OChtZW06OnRy YW5zbXV0ZShzZWxmLjApLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpbmRpY2VzLjApKQorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICApKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSBpZiAjW2Nm ZyhhbGwodGFyZ2V0X2FyY2ggPSAiZG9lc25vdGV4aXN0IiwgdGFyZ2V0X2ZlYXR1cmUgPSAidjci LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAibmVv biIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkoZmVhdHVyZSA9ICJjb3Jl X2FyY2giLCBsaWJjb3JlX25lb24pKSldIHsKKy0gICAgICAgICAgICAgICAgaW1wbCBTaHVmZmxl MUR5biBmb3IgdTh4MTYgeworLSAgICAgICAgICAgICAgICAgICAgdHlwZSBJbmRpY2VzID0gU2Vs ZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAgICAgICAgICAgICAgICAg Zm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgewor LSAgICAgICAgICAgICAgICAgICAgICAgIHVzZSBjcmF0ZTo6YXJjaDo6YXJtOjp2dGJsMl91ODsK Ky0KKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUg YmluYXJ5IGlzIGNvbXBpbGVkIHdpdGgKKy0gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZW9u IGVuYWJsZWQgYXQgY29tcGlsZS10aW1lIGFuZCBjYW4gdGhlcmVmb3JlIG9ubHkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAvLyBydW4gb24gQ1BVcyB0aGF0IGhhdmUgaXQgZW5hYmxlZC4KKy0g ICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bmlvbiBVIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGo6IHU4eDE2 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczogKHU4eDgsIHU4eDgpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9CistCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCAoaTAsIGkxKSA9IFUgeyBqOiB5IH0uczsKKy0KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHIwID0gdnRibDJfdTgoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtZW06OnRyYW5zbXV0ZSh4KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZShpMCkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHIxID0gdnRibDJfdTgoCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW06OnRyYW5zbXV0ZSh4KSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShpMSkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHIgPSBVIHsgczogKHIwLCByMSkgfS5qOworLQorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTaW1kKG1lbTo6dHJhbnNtdXRlKHIpKQorLSAgICAgICAgICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgIGltcGxfZmFsbGJhY2shKHU4eDE2KTsKKy0g ICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgICh1MTZ4OCkgPT4geworLSAg ICAgICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTE2eDggeworLSAgICAgICAgICAgIHR5cGUgSW5k aWNlcyA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAgICAgICAgZm4gc2h1 ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGljZXMpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4OCA9IChpbmRpY2VzICogMikuY2FzdCgpOworLSAg ICAgICAgICAgICAgICBsZXQgaW5kaWNlczogdTh4MTYgPSBzaHVmZmxlIShpbmRpY2VzLCBbMCwg MCwgMSwgMSwgMiwgMiwgMywgMywgNCwgNCwgNSwgNSwgNiwgNiwgNywgN10pOworLSAgICAgICAg ICAgICAgICBsZXQgdiA9IHU4eDE2OjpuZXcoMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSk7CistICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzID0gaW5kaWNl cyArIHY7CistICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICBs ZXQgczogdTh4MTYgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocy5zaHVmZmxlMV9keW4oaW5kaWNlcykpCist ICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07Cist ICAgICh1MzJ4NCkgPT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tj ZmcoYWxsKGFueSh0YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IikpXSB7Cist ICAgICAgICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHUzMng0IHsKKy0gICAgICAgICAg ICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2Vz OiBTZWxmOjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2Nm Zyh0YXJnZXRfYXJjaCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Njo6e19tbV9wZXJtdXRldmFyX3BzfTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAjW2NmZyh0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgICAg ICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4Nl82NDo6e19tbV9wZXJtdXRldmFyX3BzfTsKKy0KKy0g ICAgICAgICAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfbW1fcGVybXV0ZXZhcl9wcygKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZi4wKSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcy4wKQorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCistICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAg ICAgaW1wbCBTaHVmZmxlMUR5biBmb3IgdTMyeDQgeworLSAgICAgICAgICAgICAgICAgICAgdHlw ZSBJbmRpY2VzID0gU2VsZjsKKy0gICAgICAgICAgICAgICAgICAgICNbaW5saW5lXQorLSAgICAg ICAgICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6OkluZGlj ZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzOiB1OHg0 ID0gKGluZGljZXMgKiA0KS5jYXN0KCk7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlu ZGljZXM6IHU4eDE2ID0gc2h1ZmZsZSEoCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu ZGljZXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAwLCAwLCAxLCAxLCAx LCAxLCAyLCAyLCAyLCAyLCAzLCAzLCAzLCAzXQorLSAgICAgICAgICAgICAgICAgICAgICAgICk7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHYgPSB1OHgxNjo6bmV3KAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzLCAw LCAxLCAyLCAzCistICAgICAgICAgICAgICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBsZXQgaW5kaWNlcyA9IGluZGljZXMgKyB2OworLSAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzOiB1OHgxNiA9 Y3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzLnNodWZmbGUxX2R5bihpbmRpY2VzKSkKKy0gICAgICAg ICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistICAgICh1NjR4Mikg PT4geworLSAgICAgICAgY2ZnX2lmISB7CistICAgICAgICAgICAgaWYgI1tjZmcoYWxsKGFueSh0 YXJnZXRfYXJjaCA9ICJ4ODYiLCB0YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgdGFyZ2V0X2ZlYXR1cmUgPSAiYXZ4IikpXSB7CistICAgICAgICAgICAg ICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU2NHgyIHsKKy0gICAgICAgICAgICAgICAgICAgIHR5 cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAg ICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxmOjpJbmRp Y2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0YXJnZXRfYXJj aCA9ICJ4ODYiKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3JhdGU6OmFyY2g6Ong4 Njo6e19tbV9wZXJtdXRldmFyX3BkfTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAjW2NmZyh0 YXJnZXRfYXJjaCA9ICJ4ODZfNjQiKV0KKy0gICAgICAgICAgICAgICAgICAgICAgICB1c2UgY3Jh dGU6OmFyY2g6Ong4Nl82NDo6e19tbV9wZXJtdXRldmFyX3BkfTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICAvLyBfbW1fcGVybXV0ZXZhcl9wZCB1c2VzIHRoZSBfc2Vjb25kXyBiaXQgb2YgZWFj aAorLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVsZW1lbnQgdG8gcGVyZm9ybSB0aGUgc2Vs ZWN0aW9uLCB0aGF0IGlzOiAwYjAwID0+IDAsCistICAgICAgICAgICAgICAgICAgICAgICAgLy8g MGIxMCA9PiAxOgorLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzID0gaW5kaWNl cyA8PCAxOworLSAgICAgICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZSgKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9tbV9wZXJtdXRldmFyX3BkKAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUoaW5kaWNlcykK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQorLSAgICAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAg ICAgICAgICAgIGltcGwgU2h1ZmZsZTFEeW4gZm9yIHU2NHgyIHsKKy0gICAgICAgICAgICAgICAg ICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgICAgICAgICAjW2lubGluZV0K Ky0gICAgICAgICAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxm OjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaW5kaWNl czogdTh4MiA9IChpbmRpY2VzICogOCkuY2FzdCgpOworLSAgICAgICAgICAgICAgICAgICAgICAg IGxldCBpbmRpY2VzOiB1OHgxNiA9IHNodWZmbGUhKAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbmRpY2VzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMCwgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMV0KKy0gICAgICAgICAgICAgICAgICAg ICAgICApOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2ID0gdTh4MTY6Om5ldygKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgMCwgMSwg MiwgMywgNCwgNSwgNiwgNworLSAgICAgICAgICAgICAgICAgICAgICAgICk7CistICAgICAgICAg ICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBpbmRpY2VzICsgdjsKKy0gICAgICAgICAgICAg ICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgczog dTh4MTYgPWNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocy5zaHVmZmxlMV9keW4oaW5kaWNlcykpCist ICAgICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICB9OworLSAgICAo dTEyOHgxKSA9PiB7CistICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciB1MTI4eDEgeworLSAg ICAgICAgICAgIHR5cGUgSW5kaWNlcyA9IFNlbGY7CistICAgICAgICAgICAgI1tpbmxpbmVdCist ICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIF9pbmRpY2VzOiBTZWxmOjpJbmRpY2Vz KSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgc2VsZgorLSAgICAgICAgICAgIH0KKy0gICAg ICAgIH0KKy0gICAgfTsKKy0gICAgKCRpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbF9mYWxs YmFjayEoJGlkKTsKKy0gICAgfTsKKy19CistCistaW1wbF9zaHVmZmxlMV9keW4hKHU4eDIpOwor LWltcGxfc2h1ZmZsZTFfZHluISh1OHg0KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTh4OCk7Cist aW1wbF9zaHVmZmxlMV9keW4hKHU4eDE2KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTh4MzIpOwor LWltcGxfc2h1ZmZsZTFfZHluISh1OHg2NCk7CistCistaW1wbF9zaHVmZmxlMV9keW4hKHUxNngy KTsKKy1pbXBsX3NodWZmbGUxX2R5biEodTE2eDQpOworLWltcGxfc2h1ZmZsZTFfZHluISh1MTZ4 OCk7CistaW1wbF9zaHVmZmxlMV9keW4hKHUxNngxNik7CistaW1wbF9zaHVmZmxlMV9keW4hKHUx NngzMik7CistCistaW1wbF9zaHVmZmxlMV9keW4hKHUzMngyKTsKKy1pbXBsX3NodWZmbGUxX2R5 biEodTMyeDQpOworLWltcGxfc2h1ZmZsZTFfZHluISh1MzJ4OCk7CistaW1wbF9zaHVmZmxlMV9k eW4hKHUzMngxNik7CistCistaW1wbF9zaHVmZmxlMV9keW4hKHU2NHgyKTsKKy1pbXBsX3NodWZm bGUxX2R5biEodTY0eDQpOworLWltcGxfc2h1ZmZsZTFfZHluISh1NjR4OCk7CistCistaW1wbF9z aHVmZmxlMV9keW4hKHVzaXpleDIpOworLWltcGxfc2h1ZmZsZTFfZHluISh1c2l6ZXg0KTsKKy1p bXBsX3NodWZmbGUxX2R5biEodXNpemV4OCk7CistCistaW1wbF9zaHVmZmxlMV9keW4hKHUxMjh4 MSk7CistaW1wbF9zaHVmZmxlMV9keW4hKHUxMjh4Mik7CistaW1wbF9zaHVmZmxlMV9keW4hKHUx Mjh4NCk7CistCistLy8gSW1wbGVtZW50YXRpb24gZm9yIG5vbi11bnNpZ25lZCB2ZWN0b3IgdHlw ZXMKKy1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UgeworLSAgICAoJGlkOmlk ZW50LCAkdWlkOmlkZW50KSA9PiB7CistICAgICAgICBpbXBsIFNodWZmbGUxRHluIGZvciAkaWQg eworLSAgICAgICAgICAgIHR5cGUgSW5kaWNlcyA9ICR1aWQ7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gc2h1ZmZsZTFfZHluKHNlbGYsIGluZGljZXM6IFNlbGY6Oklu ZGljZXMpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICB1bnNhZmUgeworLSAgICAgICAgICAg ICAgICAgICAgbGV0IHU6ICR1aWQgPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAg ICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUodS5zaHVmZmxlMV9keW4oaW5k aWNlcykpCistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9CistICAgICAgICB9Cist ICAgIH07CistfQorLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHgyLCB1OHgyKTsKKy1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTh4NCwgdTh4NCk7CistaW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKGk4eDgsIHU4eDgpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHgxNiwgdTh4 MTYpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpOHgzMiwgdTh4MzIpOworLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShpOHg2NCwgdTh4NjQpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShpMTZ4MiwgdTE2eDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4NCwgdTE2 eDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTZ4OCwgdTE2eDgpOworLWltcGxfc2h1 ZmZsZTFfZHluX25vbl91IShpMTZ4MTYsIHUxNngxNik7CistaW1wbF9zaHVmZmxlMV9keW5fbm9u X3UhKGkxNngzMiwgdTE2eDMyKTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDIs IHUzMngyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDQsIHUzMng0KTsKKy1pbXBs X3NodWZmbGUxX2R5bl9ub25fdSEoaTMyeDgsIHUzMng4KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9u b25fdSEoaTMyeDE2LCB1MzJ4MTYpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4 MiwgdTY0eDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4NCwgdTY0eDQpOworLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShpNjR4OCwgdTY0eDgpOworLQorLWltcGxfc2h1ZmZsZTFf ZHluX25vbl91IShpc2l6ZXgyLCB1c2l6ZXgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEo aXNpemV4NCwgdXNpemV4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGlzaXpleDgsIHVz aXpleDgpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShpMTI4eDEsIHUxMjh4MSk7Cist aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGkxMjh4MiwgdTEyOHgyKTsKKy1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEoaTEyOHg0LCB1MTI4eDQpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91 IShtOHgyLCB1OHgyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTh4NCwgdTh4NCk7Cist aW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG04eDgsIHU4eDgpOworLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtOHgxNiwgdTh4MTYpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHgzMiwg dTh4MzIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtOHg2NCwgdTh4NjQpOworLQorLWlt cGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4MiwgdTE2eDIpOworLWltcGxfc2h1ZmZsZTFfZHlu X25vbl91IShtMTZ4NCwgdTE2eDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4OCwg dTE2eDgpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtMTZ4MTYsIHUxNngxNik7CistaW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xNngzMiwgdTE2eDMyKTsKKy0KKy1pbXBsX3NodWZmbGUx X2R5bl9ub25fdSEobTMyeDIsIHUzMngyKTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMy eDQsIHUzMng0KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDgsIHUzMng4KTsKKy1p bXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTMyeDE2LCB1MzJ4MTYpOworLQorLWltcGxfc2h1ZmZs ZTFfZHluX25vbl91IShtNjR4MiwgdTY0eDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91ISht NjR4NCwgdTY0eDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtNjR4OCwgdTY0eDgpOwor LQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShtc2l6ZXgyLCB1c2l6ZXgyKTsKKy1pbXBsX3No dWZmbGUxX2R5bl9ub25fdSEobXNpemV4NCwgdXNpemV4NCk7CistaW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKG1zaXpleDgsIHVzaXpleDgpOworLQorLWltcGxfc2h1ZmZsZTFfZHluX25vbl91ISht MTI4eDEsIHUxMjh4MSk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKG0xMjh4MiwgdTEyOHgy KTsKKy1pbXBsX3NodWZmbGUxX2R5bl9ub25fdSEobTEyOHg0LCB1MTI4eDQpOworLQorLWltcGxf c2h1ZmZsZTFfZHluX25vbl91IShmMzJ4MiwgdTMyeDIpOworLWltcGxfc2h1ZmZsZTFfZHluX25v bl91IShmMzJ4NCwgdTMyeDQpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmMzJ4OCwgdTMy eDgpOworLWltcGxfc2h1ZmZsZTFfZHluX25vbl91IShmMzJ4MTYsIHUzMngxNik7CistCistaW1w bF9zaHVmZmxlMV9keW5fbm9uX3UhKGY2NHgyLCB1NjR4Mik7CistaW1wbF9zaHVmZmxlMV9keW5f bm9uX3UhKGY2NHg0LCB1NjR4NCk7CistaW1wbF9zaHVmZmxlMV9keW5fbm9uX3UhKGY2NHg4LCB1 NjR4OCk7CistCistLy8gSW1wbGVtZW50YXRpb24gZm9yIG5vbi11bnNpZ25lZCB2ZWN0b3IgdHlw ZXMKKy1tYWNyb19ydWxlcyEgaW1wbF9zaHVmZmxlMV9keW5fcHRyIHsKKy0gICAgKCRpZDppZGVu dCwgJHVpZDppZGVudCkgPT4geworLSAgICAgICAgaW1wbDxUPiBTaHVmZmxlMUR5biBmb3IgJGlk PFQ+IHsKKy0gICAgICAgICAgICB0eXBlIEluZGljZXMgPSAkdWlkOworLSAgICAgICAgICAgICNb aW5saW5lXQorLSAgICAgICAgICAgIGZuIHNodWZmbGUxX2R5bihzZWxmLCBpbmRpY2VzOiBTZWxm OjpJbmRpY2VzKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAg ICAgICAgICAgICAgIGxldCB1OiAkdWlkID0gY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHNlbGYpOwor LSAgICAgICAgICAgICAgICAgICAgY3JhdGU6Om1lbTo6dHJhbnNtdXRlKHUuc2h1ZmZsZTFfZHlu KGluZGljZXMpKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLSAgICB9OworLX0KKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9wdHIhKGNwdHJ4MiwgdXNpemV4 Mik7CistaW1wbF9zaHVmZmxlMV9keW5fcHRyIShjcHRyeDQsIHVzaXpleDQpOworLWltcGxfc2h1 ZmZsZTFfZHluX3B0ciEoY3B0cng4LCB1c2l6ZXg4KTsKKy0KKy1pbXBsX3NodWZmbGUxX2R5bl9w dHIhKG1wdHJ4MiwgdXNpemV4Mik7CistaW1wbF9zaHVmZmxlMV9keW5fcHRyIShtcHRyeDQsIHVz aXpleDQpOworLWltcGxfc2h1ZmZsZTFfZHluX3B0ciEobXB0cng4LCB1c2l6ZXg4KTsKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0 ZXMucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3N3YXBfYnl0 ZXMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9w YWNrZWRfc2ltZC9zcmMvY29kZWdlbi9zd2FwX2J5dGVzLnJzCisrKysgL2Rldi9udWxsCitAQCAt MSwxNDkgKzAsMCBAQAorLS8vISBIb3Jpem9udGFsIHN3YXAgYnl0ZXMgcmVkdWN0aW9ucy4KKy0K Ky0vLyBGSVhNRTogaW52ZXN0aWdhdGUgdXNpbmcgYGxsdm0uYnN3YXBgCistLy8gaHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L3BhY2tlZF9zaW1kL2lzc3Vlcy8xOQorLQorLXVz ZSBjcmF0ZTo6KjsKKy0KKy1wdWIoY3JhdGUpIHRyYWl0IFN3YXBCeXRlcyB7CistICAgIGZuIHN3 YXBfYnl0ZXMoc2VsZikgLT4gU2VsZjsKKy19CistCistbWFjcm9fcnVsZXMhIGltcGxfc3dhcF9i eXRlcyB7CistICAgICh2MTY6ICQoJGlkOmlkZW50LCkrKSA9PiB7CistICAgICAgICAkKAorLSAg ICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgeworLSAgICAgICAgICAgICAgICAjW2lu bGluZV0KKy0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKKy0g ICAgICAgICAgICAgICAgICAgIHNodWZmbGUhKHNlbGYsIFsxLCAwXSkKKy0gICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICkrCistICAgIH07CistICAgICh2MzI6ICQo JGlkOmlkZW50LCkrKSA9PiB7CistICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGwgU3dhcEJ5 dGVzIGZvciAkaWQgeworLSAgICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAg ICAgI1thbGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KKy0gICAgICAgICAgICAgICAg Zm4gc3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgIHVuc2Fm ZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHg0ID0gY3JhdGU6Om1l bTo6dHJhbnNtdXRlKHNlbGYpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXN1bHQ6 IHU4eDQgPSBzaHVmZmxlIShieXRlcywgWzMsIDIsIDEsIDBdKTsKKy0gICAgICAgICAgICAgICAg ICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQorLSAgICAgICAgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQorLSAgICAgICAgKSsKKy0g ICAgfTsKKy0gICAgKHY2NDogJCgkaWQ6aWRlbnQsKSspID0+IHsKKy0gICAgICAgICQoCistICAg ICAgICAgICAgaW1wbCBTd2FwQnl0ZXMgZm9yICRpZCB7CistICAgICAgICAgICAgICAgICNbaW5s aW5lXQorLSAgICAgICAgICAgICAgICAjW2FsbG93KGNsaXBweTo6dXNlbGVzc190cmFuc211dGUp XQorLSAgICAgICAgICAgICAgICBmbiBzd2FwX2J5dGVzKHNlbGYpIC0+IFNlbGYgeworLSAgICAg ICAgICAgICAgICAgICAgdW5zYWZlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnl0 ZXM6IHU4eDggPSBjcmF0ZTo6bWVtOjp0cmFuc211dGUoc2VsZik7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IHJlc3VsdDogdTh4OCA9IHNodWZmbGUhKAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBieXRlcywgWzcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdCistICAgICAgICAgICAg ICAgICAgICAgICAgKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFu c211dGUocmVzdWx0KQorLSAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9 CistICAgICAgICAgICAgfQorLSAgICAgICAgKSsKKy0gICAgfTsKKy0gICAgKHYxMjg6ICQoJGlk OmlkZW50LCkrKSA9PiB7CistICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVz IGZvciAkaWQgeworLSAgICAgICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAg I1thbGxvdyhjbGlwcHk6OnVzZWxlc3NfdHJhbnNtdXRlKV0KKy0gICAgICAgICAgICAgICAgZm4g c3dhcF9ieXRlcyhzZWxmKSAtPiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7 CistICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5dGVzOiB1OHgxNiA9IGNyYXRlOjptZW06 OnRyYW5zbXV0ZShzZWxmKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1 OHgxNiA9IHNodWZmbGUhKGJ5dGVzLCBbCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1 LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg IDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKKy0gICAgICAgICAgICAgICAgICAgICAgICBdKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQorLSAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgKSsKKy0gICAgfTsKKy0gICAgKHYyNTY6ICQoJGlkOmlkZW50LCkrKSA9PiB7Cist ICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgeworLSAgICAg ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVz ZWxlc3NfdHJhbnNtdXRlKV0KKy0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGJ5dGVzOiB1OHgzMiA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHgzMiA9IHNodWZmbGUhKGJ5 dGVzLCBbCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxLCAzMCwgMjksIDI4LCAyNywg MjYsIDI1LCAyNCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsIDIyLCAyMSwgMjAs IDE5LCAxOCwgMTcsIDE2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNSwgMTQsIDEz LCAxMiwgMTEsIDEwLCA5LCAgOCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYs ICA1LCAgNCwgIDMsICAyLCAgMSwgIDAKKy0gICAgICAgICAgICAgICAgICAgICAgICBdKTsKKy0g ICAgICAgICAgICAgICAgICAgICAgICBjcmF0ZTo6bWVtOjp0cmFuc211dGUocmVzdWx0KQorLSAg ICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgfQor LSAgICAgICAgKSsKKy0gICAgfTsKKy0gICAgKHY1MTI6ICQoJGlkOmlkZW50LCkrKSA9PiB7Cist ICAgICAgICAkKAorLSAgICAgICAgICAgIGltcGwgU3dhcEJ5dGVzIGZvciAkaWQgeworLSAgICAg ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVz ZWxlc3NfdHJhbnNtdXRlKV0KKy0gICAgICAgICAgICAgICAgZm4gc3dhcF9ieXRlcyhzZWxmKSAt PiBTZWxmIHsKKy0gICAgICAgICAgICAgICAgICAgIHVuc2FmZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgbGV0IGJ5dGVzOiB1OHg2NCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZShzZWxmKTsK Ky0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0OiB1OHg2NCA9IHNodWZmbGUhKGJ5 dGVzLCBbCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzLCA2MiwgNjEsIDYwLCA1OSwg NTgsIDU3LCA1NiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgNTUsIDU0LCA1MywgNTIs IDUxLCA1MCwgNDksIDQ4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NywgNDYsIDQ1 LCA0NCwgNDMsIDQyLCA0MSwgNDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM5LCAz OCwgMzcsIDM2LCAzNSwgMzQsIDMzLCAzMiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg MzEsIDMwLCAyOSwgMjgsIDI3LCAyNiwgMjUsIDI0LAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAyMywgMjIsIDIxLCAyMCwgMTksIDE4LCAxNywgMTYsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksICA4LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAgMAorLSAgICAgICAgICAg ICAgICAgICAgICAgIF0pOworLSAgICAgICAgICAgICAgICAgICAgICAgIGNyYXRlOjptZW06OnRy YW5zbXV0ZShyZXN1bHQpCistICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICB9CistICAgICAgICApKworLSAgICB9OworLX0KKy0KKy1pbXBsX3N3 YXBfYnl0ZXMhKHYxNjogdTh4MiwgaTh4MiwpOworLWltcGxfc3dhcF9ieXRlcyEodjMyOiB1OHg0 LCBpOHg0LCB1MTZ4MiwgaTE2eDIsKTsKKy0vLyBGSVhNRTogNjQtYml0IHNpbmdsZSBlbGVtZW50 IHZlY3RvcgorLWltcGxfc3dhcF9ieXRlcyEodjY0OiB1OHg4LCBpOHg4LCB1MTZ4NCwgaTE2eDQs IHUzMngyLCBpMzJ4MiAvKiB1NjR4MSwgaTY0eDEsICovLCk7CistCistaW1wbF9zd2FwX2J5dGVz ISh2MTI4OiB1OHgxNiwgaTh4MTYsIHUxNng4LCBpMTZ4OCwgdTMyeDQsIGkzMng0LCB1NjR4Miwg aTY0eDIsIHUxMjh4MSwgaTEyOHgxLCk7CistaW1wbF9zd2FwX2J5dGVzISh2MjU2OiB1OHgzMiwg aTh4MzIsIHUxNngxNiwgaTE2eDE2LCB1MzJ4OCwgaTMyeDgsIHU2NHg0LCBpNjR4NCwgdTEyOHgy LCBpMTI4eDIsKTsKKy0KKy1pbXBsX3N3YXBfYnl0ZXMhKHY1MTI6IHU4eDY0LCBpOHg2NCwgdTE2 eDMyLCBpMTZ4MzIsIHUzMngxNiwgaTMyeDE2LCB1NjR4OCwgaTY0eDgsIHUxMjh4NCwgaTEyOHg0 LCk7CistCistY2ZnX2lmISB7CistICAgIGlmICNbY2ZnKHRhcmdldF9wb2ludGVyX3dpZHRoID0g IjgiKV0geworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MTY6IGlzaXpleDIsIHVzaXpleDIs KTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjMyOiBpc2l6ZXg0LCB1c2l6ZXg0LCk7Cist ICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHY2NDogaXNpemV4OCwgdXNpemV4OCwpOworLSAgICB9 IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lkdGggPSAiMTYiKV0geworLSAgICAgICAg aW1wbF9zd2FwX2J5dGVzISh2MzI6IGlzaXpleDIsIHVzaXpleDIsKTsKKy0gICAgICAgIGltcGxf c3dhcF9ieXRlcyEodjY0OiBpc2l6ZXg0LCB1c2l6ZXg0LCk7CistICAgICAgICBpbXBsX3N3YXBf Ynl0ZXMhKHYxMjg6IGlzaXpleDgsIHVzaXpleDgsKTsKKy0gICAgfSBlbHNlIGlmICNbY2ZnKHRh cmdldF9wb2ludGVyX3dpZHRoID0gIjMyIildIHsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEo djY0OiBpc2l6ZXgyLCB1c2l6ZXgyLCk7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYxMjg6 IGlzaXpleDQsIHVzaXpleDQsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjI1NjogaXNp emV4OCwgdXNpemV4OCwpOworLSAgICB9IGVsc2UgaWYgI1tjZmcodGFyZ2V0X3BvaW50ZXJfd2lk dGggPSAiNjQiKV0geworLSAgICAgICAgaW1wbF9zd2FwX2J5dGVzISh2MTI4OiBpc2l6ZXgyLCB1 c2l6ZXgyLCk7CistICAgICAgICBpbXBsX3N3YXBfYnl0ZXMhKHYyNTY6IGlzaXpleDQsIHVzaXpl eDQsKTsKKy0gICAgICAgIGltcGxfc3dhcF9ieXRlcyEodjUxMjogaXNpemV4OCwgdXNpemV4OCwp OworLSAgICB9IGVsc2UgeworLSAgICAgICAgY29tcGlsZV9lcnJvciEoInVuc3VwcG9ydGVkIHRh cmdldF9wb2ludGVyX3dpZHRoIik7CistICAgIH0KKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzIGIvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MTI4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjEyOC5y cworKysrIC9kZXYvbnVsbAorQEAgLTEsNDYgKzAsMCBAQAorLS8vISBJbnRlcm5hbCAxMjgtYml0 IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRlOjptYXNrczo6KjsKKy0KKy0jW3J1c3Rm bXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW2k4OyAxNl06IGk4eDE2IHwKKy0g ICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4 LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBs X3NpbWRfYXJyYXkhKAorLSAgICBbdTg7IDE2XTogdTh4MTYgfAorLSAgICB1OCwgdTgsIHU4LCB1 OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwg dTgsIHU4LCB1OAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCist ICAgIFttODsgMTZdOiBtOHgxNiB8CistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgs IGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4CistKTsK Ky0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMTY7IDhdOiBpMTZ4OCB8IGkxNiwgaTE2LCBpMTYsIGkx NiwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1MTY7IDhdOiB1MTZ4 OCB8IHUxNiwgdTE2LCB1MTYsIHUxNiwgdTE2LCB1MTYsIHUxNiwgdTE2KTsKKy1pbXBsX3NpbWRf YXJyYXkhKFttMTY7IDhdOiBtMTZ4OCB8IGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYsIGkx NiwgaTE2KTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpMzI7IDRdOiBpMzJ4NCB8IGkzMiwgaTMy LCBpMzIsIGkzMik7CistaW1wbF9zaW1kX2FycmF5IShbdTMyOyA0XTogdTMyeDQgfCB1MzIsIHUz MiwgdTMyLCB1MzIpOworLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgNF06IGYzMng0IHwgZjMyLCBm MzIsIGYzMiwgZjMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttMzI7IDRdOiBtMzJ4NCB8IGkzMiwg aTMyLCBpMzIsIGkzMik7CistCistaW1wbF9zaW1kX2FycmF5IShbaTY0OyAyXTogaTY0eDIgfCBp NjQsIGk2NCk7CistaW1wbF9zaW1kX2FycmF5IShbdTY0OyAyXTogdTY0eDIgfCB1NjQsIHU2NCk7 CistaW1wbF9zaW1kX2FycmF5IShbZjY0OyAyXTogZjY0eDIgfCBmNjQsIGY2NCk7CistaW1wbF9z aW1kX2FycmF5IShbbTY0OyAyXTogbTY0eDIgfCBpNjQsIGk2NCk7CistCistaW1wbF9zaW1kX2Fy cmF5IShbaTEyODsgMV06IGkxMjh4MSB8IGkxMjgpOworLWltcGxfc2ltZF9hcnJheSEoW3UxMjg7 IDFdOiB1MTI4eDEgfCB1MTI4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttMTI4OyAxXTogbTEyOHgx IHwgaTEyOCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv Y29kZWdlbi92MTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3YxNi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YxNi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNyAr MCwwIEBACistLy8hIEludGVybmFsIDE2LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLQorLXVzZSBj cmF0ZTo6bWFza3M6Oio7CistCistaW1wbF9zaW1kX2FycmF5IShbaTg7IDJdOiBpOHgyIHwgaTgs IGk4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1ODsgMl06IHU4eDIgfCB1OCwgdTgpOworLWltcGxf c2ltZF9hcnJheSEoW204OyAyXTogbTh4MiB8IGk4LCBpOCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJzIGIvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92MjU2LnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjI1 Ni5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNzggKzAsMCBAQAorLS8vISBJbnRlcm5hbCAyNTYt Yml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRlOjptYXNrczo6KjsKKy0KKy0jW3J1 c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW2k4OyAzMl06IGk4eDMyIHwK Ky0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgs IGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAg ICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgs IGk4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW3U4 OyAzMl06IHU4eDMyIHwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4 LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1 OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCist ICAgIHU4LCB1OCwgdTgsIHU4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2Fy cmF5ISgKKy0gICAgW204OyAzMl06IG04eDMyIHwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAg IGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwg aTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgs IGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4CistKTsKKy0jW3J1c3RmbXQ6OnNraXBd CistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW2kxNjsgMTZdOiBpMTZ4MTYgfAorLSAgICBpMTYs IGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYs IGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKKy0pOworLSNbcnVzdGZtdDo6c2tp cF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbdTE2OyAxNl06IHUxNngxNiB8CistICAgIHUx NiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUx NiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNgorLSk7CistI1tydXN0Zm10Ojpz a2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFttMTY7IDE2XTogbTE2eDE2IHwKKy0gICAg aTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwg aTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2CistKTsKKy0KKy1pbXBsX3Np bWRfYXJyYXkhKFtpMzI7IDhdOiBpMzJ4OCB8IGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMyLCBpMzIs IGkzMiwgaTMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1MzI7IDhdOiB1MzJ4OCB8IHUzMiwgdTMy LCB1MzIsIHUzMiwgdTMyLCB1MzIsIHUzMiwgdTMyKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFtmMzI7 IDhdOiBmMzJ4OCB8IGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyLCBmMzIsIGYzMiwgZjMyKTsKKy1p bXBsX3NpbWRfYXJyYXkhKFttMzI7IDhdOiBtMzJ4OCB8IGkzMiwgaTMyLCBpMzIsIGkzMiwgaTMy LCBpMzIsIGkzMiwgaTMyKTsKKy0KKy1pbXBsX3NpbWRfYXJyYXkhKFtpNjQ7IDRdOiBpNjR4NCB8 IGk2NCwgaTY0LCBpNjQsIGk2NCk7CistaW1wbF9zaW1kX2FycmF5IShbdTY0OyA0XTogdTY0eDQg fCB1NjQsIHU2NCwgdTY0LCB1NjQpOworLWltcGxfc2ltZF9hcnJheSEoW2Y2NDsgNF06IGY2NHg0 IHwgZjY0LCBmNjQsIGY2NCwgZjY0KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttNjQ7IDRdOiBtNjR4 NCB8IGk2NCwgaTY0LCBpNjQsIGk2NCk7CistCistaW1wbF9zaW1kX2FycmF5IShbaTEyODsgMl06 IGkxMjh4MiB8IGkxMjgsIGkxMjgpOworLWltcGxfc2ltZF9hcnJheSEoW3UxMjg7IDJdOiB1MTI4 eDIgfCB1MTI4LCB1MTI4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttMTI4OyAyXTogbTEyOHgyIHwg aTEyOCwgaTEyOCk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvY29kZWdlbi92MzIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3YzMi5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9y dXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3YzMi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs MTEgKzAsMCBAQAorLS8vISBJbnRlcm5hbCAzMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11 c2UgY3JhdGU6Om1hc2tzOjoqOworLQorLWltcGxfc2ltZF9hcnJheSEoW2k4OyA0XTogaTh4NCB8 IGk4LCBpOCwgaTgsIGk4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFt1ODsgNF06IHU4eDQgfCB1OCwg dTgsIHU4LCB1OCk7CistaW1wbF9zaW1kX2FycmF5IShbbTg7IDRdOiBtOHg0IHwgaTgsIGk4LCBp OCwgaTgpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2kxNjsgMl06IGkxNngyIHwgaTE2LCBpMTYp OworLWltcGxfc2ltZF9hcnJheSEoW3UxNjsgMl06IHUxNngyIHwgdTE2LCB1MTYpOworLWltcGxf c2ltZF9hcnJheSEoW20xNjsgMl06IG0xNngyIHwgaTE2LCBpMTYpOworZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL2NvZGVnZW4vdjUxMi5ycworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2Vu L3Y1MTIucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE0NSArMCwwIEBACistLy8hIEludGVybmFs IDUxMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6Om1hc2tzOjoqOworLQor LSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbaTg7IDY0XTogaTh4 NjQgfAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4 LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgs CistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4 LCBpOCwgaTgsCistCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwK Ky0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgs IGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAg ICBpOCwgaTgsIGk4LCBpOAorLSk7CistI1tydXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJh eSEoCistICAgIFt1ODsgNjRdOiB1OHg2NCB8CistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1 OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4 LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1 OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0KKy0gICAgdTgsIHU4LCB1OCwgdTgs CistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0gICAgdTgsIHU4 LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4LAorLSAgICB1OCwgdTgsIHU4LCB1OCwKKy0g ICAgdTgsIHU4LCB1OCwgdTgsCistICAgIHU4LCB1OCwgdTgsIHU4CistKTsKKy0jW3J1c3RmbXQ6 OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW204OyA2NF06IG04eDY0IHwKKy0gICAg aTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBp OCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwg aTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBpOCwgaTgsIGk4LAor LQorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCistICAgIGk4LCBp OCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBpOCwgaTgsCist ICAgIGk4LCBpOCwgaTgsIGk4LAorLSAgICBpOCwgaTgsIGk4LCBpOCwKKy0gICAgaTgsIGk4LCBp OCwgaTgKKy0pOworLSNbcnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBb aTE2OyAzMl06IGkxNngzMiB8CistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBp MTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBp MTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBp MTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2Cist KTsKKy0jW3J1c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW3UxNjsgMzJd OiB1MTZ4MzIgfAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYs IHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAgICB1MTYsIHUxNiwgdTE2LCB1MTYs CistICAgIHUxNiwgdTE2LCB1MTYsIHUxNiwKKy0gICAgdTE2LCB1MTYsIHUxNiwgdTE2LAorLSAg ICB1MTYsIHUxNiwgdTE2LCB1MTYsCistICAgIHUxNiwgdTE2LCB1MTYsIHUxNgorLSk7CistI1ty dXN0Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFttMTY7IDMyXTogbTE2eDMy IHwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYsCist ICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBpMTYsIGkxNiwgaTE2LAorLSAgICBp MTYsIGkxNiwgaTE2LCBpMTYsCistICAgIGkxNiwgaTE2LCBpMTYsIGkxNiwKKy0gICAgaTE2LCBp MTYsIGkxNiwgaTE2LAorLSAgICBpMTYsIGkxNiwgaTE2LCBpMTYKKy0pOworLQorLSNbcnVzdGZt dDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbaTMyOyAxNl06IGkzMngxNiB8Cist ICAgIGkzMiwgaTMyLCBpMzIsIGkzMiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAorLSAgICBp MzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwgaTMyLCBpMzIsIGkzMgorLSk7CistI1tydXN0 Zm10Ojpza2lwXQorLWltcGxfc2ltZF9hcnJheSEoCistICAgIFt1MzI7IDE2XTogdTMyeDE2IHwK Ky0gICAgdTMyLCB1MzIsIHUzMiwgdTMyLAorLSAgICB1MzIsIHUzMiwgdTMyLCB1MzIsCistICAg IHUzMiwgdTMyLCB1MzIsIHUzMiwKKy0gICAgdTMyLCB1MzIsIHUzMiwgdTMyCistKTsKKy0jW3J1 c3RmbXQ6OnNraXBdCistaW1wbF9zaW1kX2FycmF5ISgKKy0gICAgW2YzMjsgMTZdOiBmMzJ4MTYg fAorLSAgICBmMzIsIGYzMiwgZjMyLCBmMzIsCistICAgIGYzMiwgZjMyLCBmMzIsIGYzMiwKKy0g ICAgZjMyLCBmMzIsIGYzMiwgZjMyLAorLSAgICBmMzIsIGYzMiwgZjMyLCBmMzIKKy0pOworLSNb cnVzdGZtdDo6c2tpcF0KKy1pbXBsX3NpbWRfYXJyYXkhKAorLSAgICBbbTMyOyAxNl06IG0zMngx NiB8CistICAgIGkzMiwgaTMyLCBpMzIsIGkzMiwKKy0gICAgaTMyLCBpMzIsIGkzMiwgaTMyLAor LSAgICBpMzIsIGkzMiwgaTMyLCBpMzIsCistICAgIGkzMiwgaTMyLCBpMzIsIGkzMgorLSk7Cist CistaW1wbF9zaW1kX2FycmF5IShbaTY0OyA4XTogaTY0eDggfCBpNjQsIGk2NCwgaTY0LCBpNjQs IGk2NCwgaTY0LCBpNjQsIGk2NCk7CistaW1wbF9zaW1kX2FycmF5IShbdTY0OyA4XTogdTY0eDgg fCB1NjQsIHU2NCwgdTY0LCB1NjQsIHU2NCwgdTY0LCB1NjQsIHU2NCk7CistaW1wbF9zaW1kX2Fy cmF5IShbZjY0OyA4XTogZjY0eDggfCBmNjQsIGY2NCwgZjY0LCBmNjQsIGY2NCwgZjY0LCBmNjQs IGY2NCk7CistaW1wbF9zaW1kX2FycmF5IShbbTY0OyA4XTogbTY0eDggfCBpNjQsIGk2NCwgaTY0 LCBpNjQsIGk2NCwgaTY0LCBpNjQsIGk2NCk7CistCistaW1wbF9zaW1kX2FycmF5IShbaTEyODsg NF06IGkxMjh4NCB8IGkxMjgsIGkxMjgsIGkxMjgsIGkxMjgpOworLWltcGxfc2ltZF9hcnJheSEo W3UxMjg7IDRdOiB1MTI4eDQgfCB1MTI4LCB1MTI4LCB1MTI4LCB1MTI4KTsKKy1pbXBsX3NpbWRf YXJyYXkhKFttMTI4OyA0XTogbTEyOHg0IHwgaTEyOCwgaTEyOCwgaTEyOCwgaTEyOCk7CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92NjQucnMg Yi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3Y2NC5ycworZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Ny Yy9jb2RlZ2VuL3Y2NC5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMjEgKzAsMCBAQAorLS8vISBJ bnRlcm5hbCA2NC1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6Om1hc2tzOjoq OworLQorLWltcGxfc2ltZF9hcnJheSEoW2k4OyA4XTogaTh4OCB8IGk4LCBpOCwgaTgsIGk4LCBp OCwgaTgsIGk4LCBpOCk7CistaW1wbF9zaW1kX2FycmF5IShbdTg7IDhdOiB1OHg4IHwgdTgsIHU4 LCB1OCwgdTgsIHU4LCB1OCwgdTgsIHU4KTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttODsgOF06IG04 eDggfCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgpOworLQorLWltcGxfc2ltZF9hcnJh eSEoW2kxNjsgNF06IGkxNng0IHwgaTE2LCBpMTYsIGkxNiwgaTE2KTsKKy1pbXBsX3NpbWRfYXJy YXkhKFt1MTY7IDRdOiB1MTZ4NCB8IHUxNiwgdTE2LCB1MTYsIHUxNik7CistaW1wbF9zaW1kX2Fy cmF5IShbbTE2OyA0XTogbTE2eDQgfCBpMTYsIGkxNiwgaTE2LCBpMTYpOworLQorLWltcGxfc2lt ZF9hcnJheSEoW2kzMjsgMl06IGkzMngyIHwgaTMyLCBpMzIpOworLWltcGxfc2ltZF9hcnJheSEo W3UzMjsgMl06IHUzMngyIHwgdTMyLCB1MzIpOworLWltcGxfc2ltZF9hcnJheSEoW2YzMjsgMl06 IGYzMngyIHwgZjMyLCBmMzIpOworLWltcGxfc2ltZF9hcnJheSEoW20zMjsgMl06IG0zMngyIHwg aTMyLCBpMzIpOworLQorLWltcGxfc2ltZF9hcnJheSEoW2k2NDsgMV06IGk2NHgxIHwgaTY0KTsK Ky1pbXBsX3NpbWRfYXJyYXkhKFt1NjQ7IDFdOiB1NjR4MSB8IHU2NCk7CistaW1wbF9zaW1kX2Fy cmF5IShbZjY0OyAxXTogZjY0eDEgfCBmNjQpOworLWltcGxfc2ltZF9hcnJheSEoW202NDsgMV06 IG02NHgxIHwgaTY0KTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1k L3NyYy9jb2RlZ2VuL3ZQdHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9j b2RlZ2VuL3ZQdHIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFy dHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92UHRyLnJzCisrKysgL2Rldi9udWxsCitA QCAtMSwzNSArMCwwIEBACistLy8hIFBvaW50ZXIgdmVjdG9yIHR5cGVzCistCistbWFjcm9fcnVs ZXMhIGltcGxfc2ltZF9wdHIgeworLSAgICAoWyRwdHJfdHk6dHk7ICRlbGVtX2NvdW50OmV4cHJd OiAkdHVwbGVfaWQ6aWRlbnQgfCAkdHk6aWRlbnQKKy0gICAgIHwgJCgkdHlzOnR5KSwqKSA9PiB7 CistICAgICAgICAjW2Rlcml2ZShDb3B5LCBDbG9uZSldCistICAgICAgICAjW3JlcHIoc2ltZCld CistICAgICAgICBwdWIgc3RydWN0ICR0dXBsZV9pZDwkdHk+KCQocHViKGNyYXRlKSAkdHlzKSwq KTsKKy0gICAgICAgIC8vXl5eXl5eXiBsZWFrZWQgdGhyb3VnaCBTaW1kQXJyYXkKKy0KKy0gICAg ICAgIGltcGw8JHR5PiBjcmF0ZTo6c2VhbGVkOjpTZWFsIGZvciBbJHB0cl90eTsgJGVsZW1fY291 bnRdIHt9CistICAgICAgICBpbXBsPCR0eT4gY3JhdGU6OnNlYWxlZDo6U2ltZEFycmF5IGZvciBb JHB0cl90eTsgJGVsZW1fY291bnRdIHsKKy0gICAgICAgICAgICB0eXBlIFR1cGxlID0gJHR1cGxl X2lkPCRwdHJfdHk+OworLSAgICAgICAgICAgIHR5cGUgVCA9ICRwdHJfdHk7CistICAgICAgICAg ICAgY29uc3QgTjogdXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAgICB0eXBlIE5UID0g W3UzMjsgJGVsZW1fY291bnRdOworLSAgICAgICAgfQorLQorLSAgICAgICAgaW1wbDwkdHk+IGNy YXRlOjpzZWFsZWQ6OlNlYWwgZm9yICR0dXBsZV9pZDwkcHRyX3R5PiB7fQorLSAgICAgICAgaW1w bDwkdHk+IGNyYXRlOjpzZWFsZWQ6OlNpbWQgZm9yICR0dXBsZV9pZDwkcHRyX3R5PiB7CistICAg ICAgICAgICAgdHlwZSBFbGVtZW50ID0gJHB0cl90eTsKKy0gICAgICAgICAgICBjb25zdCBMQU5F UzogdXNpemUgPSAkZWxlbV9jb3VudDsKKy0gICAgICAgICAgICB0eXBlIExhbmVzVHlwZSA9IFt1 MzI7ICRlbGVtX2NvdW50XTsKKy0gICAgICAgIH0KKy0KKy0gICAgfQorLX0KKy0KKy1pbXBsX3Np bWRfcHRyIShbKmNvbnN0IFQ7IDJdOiBjcHRyeDIgfCBUIHwgVCwgVCk7CistaW1wbF9zaW1kX3B0 ciEoWypjb25zdCBUOyA0XTogY3B0cng0IHwgVCB8IFQsIFQsIFQsIFQpOworLWltcGxfc2ltZF9w dHIhKFsqY29uc3QgVDsgOF06IGNwdHJ4OCB8IFQgfCBULCBULCBULCBULCBULCBULCBULCBUKTsK Ky0KKy1pbXBsX3NpbWRfcHRyIShbKm11dCBUOyAyXTogbXB0cngyIHwgVCB8IFQsIFQpOworLWlt cGxfc2ltZF9wdHIhKFsqbXV0IFQ7IDRdOiBtcHRyeDQgfCBUIHwgVCwgVCwgVCwgVCk7CistaW1w bF9zaW1kX3B0ciEoWyptdXQgVDsgOF06IG1wdHJ4OCB8IFQgfCBULCBULCBULCBULCBULCBULCBU LCBUKTsKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9jb2Rl Z2VuL3ZTaXplLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvY29kZWdlbi92 U2l6ZS5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0 L3BhY2tlZF9zaW1kL3NyYy9jb2RlZ2VuL3ZTaXplLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSwx NiArMCwwIEBACistLy8hIFZlY3RvciB0eXBlcyB3aXRoIHBvaW50ZXItc2l6ZWQgZWxlbWVudHMK Ky0KKy11c2UgY3JhdGU6OmNvZGVnZW46OnBvaW50ZXJfc2l6ZWRfaW50Ojp7aXNpemVfLCB1c2l6 ZV99OworLXVzZSBjcmF0ZTo6bWFza3M6Oio7CistCistaW1wbF9zaW1kX2FycmF5IShbaXNpemU7 IDJdOiBpc2l6ZXgyIHwgaXNpemVfLCBpc2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEoW3VzaXpl OyAyXTogdXNpemV4MiB8IHVzaXplXywgdXNpemVfKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttc2l6 ZTsgMl06IG1zaXpleDIgfCBpc2l6ZV8sIGlzaXplXyk7CistCistaW1wbF9zaW1kX2FycmF5IShb aXNpemU7IDRdOiBpc2l6ZXg0IHwgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfKTsKKy1p bXBsX3NpbWRfYXJyYXkhKFt1c2l6ZTsgNF06IHVzaXpleDQgfCB1c2l6ZV8sIHVzaXplXywgdXNp emVfLCB1c2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEoW21zaXplOyA0XTogbXNpemV4NCB8IGlz aXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXyk7CistCistaW1wbF9zaW1kX2FycmF5IShbaXNp emU7IDhdOiBpc2l6ZXg4IHwgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8s IGlzaXplXywgaXNpemVfLCBpc2l6ZV8pOworLWltcGxfc2ltZF9hcnJheSEoW3VzaXplOyA4XTog dXNpemV4OCB8IHVzaXplXywgdXNpemVfLCB1c2l6ZV8sIHVzaXplXywgdXNpemVfLCB1c2l6ZV8s IHVzaXplXywgdXNpemVfKTsKKy1pbXBsX3NpbWRfYXJyYXkhKFttc2l6ZTsgOF06IG1zaXpleDgg fCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8sIGlzaXplXywgaXNpemVfLCBpc2l6ZV8s IGlzaXplXyk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMv bGliLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbGliLnJzCitkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3Jj L2xpYi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzQ4ICswLDAgQEAKKy0vLyEgIyBQb3J0YWJs ZSBwYWNrZWQgU0lNRCB2ZWN0b3JzCistLy8hCistLy8hIFRoaXMgY3JhdGUgaXMgcHJvcG9zZWQg Zm9yIHN0YWJpbGl6YXRpb24gYXMgYHN0ZDo6cGFja2VkX3NpbWRgIGluIFtSRkMyMzY2OgorLS8v ISBgc3RkOjpzaW1kYF0oaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9yZmNzL3B1bGwvMjM2 NikgLgorLS8vIQorLS8vISBUaGUgZXhhbXBsZXMgYXZhaWxhYmxlIGluIHRoZQorLS8vISBbYGV4 YW1wbGVzL2BdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmctbnVyc2VyeS9wYWNrZWRfc2lt ZC90cmVlL21hc3Rlci9leGFtcGxlcykKKy0vLyEgc3ViLWRpcmVjdG9yeSBvZiB0aGUgY3JhdGUg c2hvd2Nhc2UgaG93IHRvIHVzZSB0aGUgbGlicmFyeSBpbiBwcmFjdGljZS4KKy0vLyEKKy0vLyEg IyMgVGFibGUgb2YgY29udGVudHMKKy0vLyEKKy0vLyEgLSBbSW50cm9kdWN0aW9uXSgjaW50cm9k dWN0aW9uKQorLS8vISAtIFtWZWN0b3IgdHlwZXNdKCN2ZWN0b3ItdHlwZXMpCistLy8hIC0gW0Nv bmRpdGlvbmFsIG9wZXJhdGlvbnNdKCNjb25kaXRpb25hbC1vcGVyYXRpb25zKQorLS8vISAtIFtD b252ZXJzaW9uc10oI2NvbnZlcnNpb25zKQorLS8vISAtIFtIYXJkd2FyZSBGZWF0dXJlc10oI2hh cmR3YXJlLWZlYXR1cmVzKQorLS8vISAtIFtQZXJmb3JtYW5jZSBndWlkZV0oaHR0cHM6Ly9ydXN0 LWxhbmctbnVyc2VyeS5naXRodWIuaW8vcGFja2VkX3NpbWQvcGVyZi1ndWlkZS8pCistLy8hCist Ly8hICMjIEludHJvZHVjdGlvbgorLS8vIQorLS8vISBUaGlzIGNyYXRlIGV4cG9ydHMgW2BTaW1k PFtUOyBOXT5gXVtgU2ltZGBdOiBhIHBhY2tlZCB2ZWN0b3Igb2YgYE5gCistLy8hIGVsZW1lbnRz IG9mIHR5cGUgYFRgIGFzIHdlbGwgYXMgbWFueSB0eXBlIGFsaWFzZXMgZm9yIHRoaXMgdHlwZTog Zm9yCistLy8hIGV4YW1wbGUsIFtgZjMyeDRgXSwgd2hpY2ggaXMganVzdCBhbiBhbGlhcyBmb3Ig YFNpbWQ8W2YzMjsgNF0+YC4KKy0vLyEKKy0vLyEgVGhlIG9wZXJhdGlvbnMgb24gcGFja2VkIHZl Y3RvcnMgYXJlLCBieSBkZWZhdWx0LCAidmVydGljYWwiLCB0aGF0IGlzLCB0aGV5CistLy8hIGFy ZSBhcHBsaWVkIHRvIGVhY2ggdmVjdG9yIGxhbmUgaW4gaXNvbGF0aW9uIG9mIHRoZSBvdGhlcnM6 CistLy8hCistLy8hIGBgYAorLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLyEgbGV0IGEg PSBpMzJ4NDo6bmV3KDEsIDIsIDMsIDQpOworLS8vISBsZXQgYiA9IGkzMng0OjpuZXcoNSwgNiwg NywgOCk7CistLy8hIGFzc2VydF9lcSEoYSArIGIsIGkzMng0OjpuZXcoNiwgOCwgMTAsIDEyKSk7 CistLy8hIGBgYAorLS8vIQorLS8vISBNYW55ICJob3Jpem9udGFsIiBvcGVyYXRpb25zIGFyZSBh bHNvIHByb3ZpZGVkOgorLS8vIQorLS8vISBgYGAKKy0vLyEgIyB1c2UgcGFja2VkX3NpbWQ6Oio7 CistLy8hICMgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDIsIDMsIDQpOworLS8vISBhc3NlcnRfZXEh KGEud3JhcHBpbmdfc3VtKCksIDEwKTsKKy0vLyEgYGBgCistLy8hCistLy8hIEluIHZpcnR1YWxs eSBhbGwgYXJjaGl0ZWN0dXJlcyB2ZXJ0aWNhbCBvcGVyYXRpb25zIGFyZSBmYXN0LCB3aGlsZQor LS8vISBob3Jpem9udGFsIG9wZXJhdGlvbnMgYXJlLCBieSBjb21wYXJpc29uLCBtdWNoIHNsb3dl ci4gVGhhdCBpcywgdGhlCistLy8hIG1vc3QgcG9ydGFibHktZWZmaWNpZW50IHdheSBvZiBwZXJm b3JtaW5nIGEgcmVkdWN0aW9uIG92ZXIgYSBzbGljZQorLS8vISBpcyB0byBjb2xsZWN0IHRoZSBy ZXN1bHRzIGludG8gYSB2ZWN0b3IgdXNpbmcgdmVydGljYWwgb3BlcmF0aW9ucywKKy0vLyEgYW5k IHBlcmZvcm1pbmcgYSBzaW5nbGUgaG9yaXpvbnRhbCBvcGVyYXRpb24gYXQgdGhlIGVuZDoKKy0v LyEKKy0vLyEgYGBgCistLy8hICMgdXNlIHBhY2tlZF9zaW1kOjoqOworLS8vISBmbiByZWR1Y2Uo eDogJltpMzJdKSAtPiBpMzIgeworLS8vISAgICAgYXNzZXJ0X2VxISh4LmxlbigpICUgNCwgMCk7 CistLy8hICAgICBsZXQgbXV0IHN1bSA9IGkzMng0OjpzcGxhdCgwKTsgLy8gWzAsIDAsIDAsIDBd CistLy8hICAgICBmb3IgaSBpbiAoMC4ueC5sZW4oKSkuc3RlcF9ieSg0KSB7CistLy8hICAgICAg ICAgc3VtICs9IGkzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmeFtpLi5dKTsKKy0vLyEgICAg IH0KKy0vLyEgICAgIHN1bS53cmFwcGluZ19zdW0oKQorLS8vISB9CistLy8hCistLy8hIGxldCB4 ID0gWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDddOworLS8vISBhc3NlcnRfZXEhKHJlZHVjZSgmeCks IDI4KTsKKy0vLyEgYGBgCistLy8hCistLy8hICMjIFZlY3RvciB0eXBlcworLS8vIQorLS8vISBU aGUgdmVjdG9yIHR5cGUgYWxpYXNlcyBhcmUgbmFtZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dp bmcgc2NoZW1lOgorLS8vIQorLS8vISA+IGB7ZWxlbWVudF90eXBlfXh7bnVtYmVyX29mX2xhbmVz fSA9PSBTaW1kPFtlbGVtZW50X3R5cGU7CistLy8hIG51bWJlcl9vZl9sYW5lc10+YAorLS8vIQor LS8vISB3aGVyZSB0aGUgZm9sbG93aW5nIGVsZW1lbnQgdHlwZXMgYXJlIHN1cHBvcnRlZDoKKy0v LyEKKy0vLyEgKiBgaXtlbGVtZW50X3dpZHRofWA6IHNpZ25lZCBpbnRlZ2VyCistLy8hICogYHV7 ZWxlbWVudF93aWR0aH1gOiB1bnNpZ25lZCBpbnRlZ2VyCistLy8hICogYGZ7ZWxlbWVudF93aWR0 aH1gOiBmbG9hdAorLS8vISAqIGBte2VsZW1lbnRfd2lkdGh9YDogbWFzayAoc2VlIGJlbG93KQor LS8vISAqIGAqe2NvbnN0LG11dH0gVGA6IGBjb25zdGAgYW5kIGBtdXRgIHBvaW50ZXJzCistLy8h CistLy8hICMjIEJhc2ljIG9wZXJhdGlvbnMKKy0vLyEKKy0vLyEgYGBgCistLy8hICMgdXNlIHBh Y2tlZF9zaW1kOjoqOworLS8vISAvLyBTZXRzIGFsbCBlbGVtZW50cyB0byBgMGA6CistLy8hIGxl dCBhID0gaTMyeDQ6OnNwbGF0KDApOworLS8vIQorLS8vISAvLyBSZWFkcyBhIHZlY3RvciBmcm9t IGEgc2xpY2U6CistLy8hIGxldCBtdXQgYXJyID0gWzAsIDAsIDAsIDEsIDIsIDMsIDQsIDVdOwor LS8vISBsZXQgYiA9IGkzMng0Ojpmcm9tX3NsaWNlX3VuYWxpZ25lZCgmYXJyKTsKKy0vLyEKKy0v LyEgLy8gUmVhZHMgdGhlIDQtdGggZWxlbWVudCBvZiBhIHZlY3RvcjoKKy0vLyEgYXNzZXJ0X2Vx IShiLmV4dHJhY3QoMyksIDEpOworLS8vIQorLS8vISAvLyBSZXR1cm5zIGEgbmV3IHZlY3RvciB3 aGVyZSB0aGUgNC10aCBlbGVtZW50IGlzIHJlcGxhY2VkIHdpdGggYDFgOgorLS8vISBsZXQgYSA9 IGEucmVwbGFjZSgzLCAxKTsKKy0vLyEgYXNzZXJ0X2VxIShhLCBiKTsKKy0vLyEKKy0vLyEgLy8g V3JpdGVzIGEgdmVjdG9yIHRvIGEgc2xpY2U6CistLy8hIGxldCBhID0gYS5yZXBsYWNlKDIsIDEp OworLS8vISBhLndyaXRlX3RvX3NsaWNlX3VuYWxpZ25lZCgmbXV0IGFycls0Li5dKTsKKy0vLyEg YXNzZXJ0X2VxIShhcnIsIFswLCAwLCAwLCAxLCAwLCAwLCAxLCAxXSk7CistLy8hIGBgYAorLS8v IQorLS8vISAjIyBDb25kaXRpb25hbCBvcGVyYXRpb25zCistLy8hCistLy8hIE9uZSBvZnRlbiBu ZWVkcyB0byBwZXJmb3JtIGFuIG9wZXJhdGlvbiBvbiBzb21lIGxhbmVzIG9mIHRoZSB2ZWN0b3Iu IFZlY3RvcgorLS8vISBtYXNrcywgbGlrZSBgbTMyeDRgLCBhbGxvdyBzZWxlY3Rpbmcgb24gd2hp Y2ggdmVjdG9yIGxhbmVzIGFuIG9wZXJhdGlvbiBpcworLS8vISB0byBiZSBwZXJmb3JtZWQ6Cist Ly8hCistLy8hIGBgYAorLS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLyEgbGV0IGEgPSBp MzJ4NDo6bmV3KDEsIDEsIDIsIDIpOworLS8vIQorLS8vISAvLyBBZGQgYDFgIHRvIHRoZSBmaXJz dCB0d28gbGFuZXMgb2YgdGhlIHZlY3Rvci4KKy0vLyEgbGV0IG0gPSBtMTZ4NDo6bmV3KHRydWUs IHRydWUsIGZhbHNlLCBmYWxzZSk7CistLy8hIGxldCBhID0gbS5zZWxlY3QoYSArIDEsIGEpOwor LS8vISBhc3NlcnRfZXEhKGEsIGkzMng0OjpzcGxhdCgyKSk7CistLy8hIGBgYAorLS8vIQorLS8v ISBUaGUgZWxlbWVudHMgb2YgYSB2ZWN0b3IgbWFzayBhcmUgZWl0aGVyIGB0cnVlYCBvciBgZmFs c2VgLiBIZXJlIGB0cnVlYAorLS8vISBtZWFucyB0aGF0IGEgbGFuZSBpcyAic2VsZWN0ZWQiLCB3 aGlsZSBgZmFsc2VgIG1lYW5zIHRoYXQgYSBsYW5lIGlzIG5vdAorLS8vISBzZWxlY3RlZC4KKy0v LyEKKy0vLyEgQWxsIHZlY3RvciBtYXNrcyBpbXBsZW1lbnQgYSBgbWFzay5zZWxlY3QoYTogVCwg YjogVCkgLT4gVGAgbWV0aG9kIHRoYXQKKy0vLyEgd29ya3Mgb24gYWxsIHZlY3RvcnMgdGhhdCBo YXZlIHRoZSBzYW1lIG51bWJlciBvZiBsYW5lcyBhcyB0aGUgbWFzay4gVGhlCistLy8hIHJlc3Vs dGluZyB2ZWN0b3IgY29udGFpbnMgdGhlIGVsZW1lbnRzIG9mIGBhYCBmb3IgdGhvc2UgbGFuZXMg Zm9yIHdoaWNoIHRoZQorLS8vISBtYXNrIGlzIGB0cnVlYCwgYW5kIHRoZSBlbGVtZW50cyBvZiBg YmAgb3RoZXJ3aXNlLgorLS8vIQorLS8vISBUaGUgZXhhbXBsZSBjb25zdHJ1Y3RzIGEgbWFzayB3 aXRoIHRoZSBmaXJzdCB0d28gbGFuZXMgc2V0IHRvIGB0cnVlYCBhbmQKKy0vLyEgdGhlIGxhc3Qg dHdvIGxhbmVzIHNldCB0byBgZmFsc2VgLiBUaGlzIHNlbGVjdHMgdGhlIGZpcnN0IHR3byBsYW5l cyBvZiBgYSArCistLy8hIDFgIGFuZCB0aGUgbGFzdCB0d28gbGFuZXMgb2YgYGFgLCBwcm9kdWNp bmcgYSB2ZWN0b3Igd2hlcmUgdGhlIGZpcnN0IHR3bworLS8vISBsYW5lcyBoYXZlIGJlZW4gaW5j cmVtZW50ZWQgYnkgYDFgLgorLS8vIQorLS8vISA+IG5vdGU6IG1hc2sgYHNlbGVjdGAgY2FuIGJl IHVzZWQgb24gdmVjdG9yIHR5cGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBudW1iZXIKKy0vLyEgPiBv ZiBsYW5lcyBhcyB0aGUgbWFzay4gVGhlIGV4YW1wbGUgc2hvd3MgdGhpcyBieSB1c2luZyBbYG0x Nng0YF0gaW5zdGVhZAorLS8vISA+IG9mIFtgbTMyeDRgXS4gSXQgaXMgX3R5cGljYWxseV8gbW9y ZSBwZXJmb3JtYW50IHRvIHVzZSBhIG1hc2sgZWxlbWVudAorLS8vISA+IHdpZHRoIGVxdWFsIHRv IHRoZSBlbGVtZW50IHdpZHRoIG9mIHRoZSB2ZWN0b3JzIGJlaW5nIG9wZXJhdGVkIHVwb24uCist Ly8hID4gVGhpcyBpcywgaG93ZXZlciwgbm90IHRydWUgZm9yIDUxMi1iaXQgd2lkZSB2ZWN0b3Jz IHdoZW4gdGFyZ2V0aW5nCistLy8hID4gQVZYLTUxMiwgd2hlcmUgdGhlIG1vc3QgZWZmaWNpZW50 IG1hc2tzIHVzZSBvbmx5IDEtYml0IHBlciBlbGVtZW50LgorLS8vIQorLS8vISBBbGwgdmVydGlj YWwgY29tcGFyaXNvbiBvcGVyYXRpb25zIHJldHVybnMgbWFza3M6CistLy8hCistLy8hIGBgYAor LS8vISAjIHVzZSBwYWNrZWRfc2ltZDo6KjsKKy0vLyEgbGV0IGEgPSBpMzJ4NDo6bmV3KDEsIDEs IDMsIDMpOworLS8vISBsZXQgYiA9IGkzMng0OjpuZXcoMiwgMiwgMCwgMCk7CistLy8hCistLy8h IC8vIGdlOiA+PSAoR3JlYXRlciBFZXF1YWw7IHNlZSBhbHNvIGx0LCBsZSwgZ3QsIGVxLCBuZSku CistLy8hIGxldCBtID0gYS5nZShpMzJ4NDo6c3BsYXQoMikpOworLS8vIQorLS8vISBpZiBtLmFu eSgpIHsKKy0vLyEgICAgIC8vIGFsbCAvIGFueSAvIG5vbmUgYWxsb3cgY29oZXJlbnQgY29udHJv bCBmbG93CistLy8hICAgICBsZXQgZCA9IG0uc2VsZWN0KGEsIGIpOworLS8vISAgICAgYXNzZXJ0 X2VxIShkLCBpMzJ4NDo6bmV3KDIsIDIsIDMsIDMpKTsKKy0vLyEgfQorLS8vISBgYGAKKy0vLyEK Ky0vLyEgIyMgQ29udmVyc2lvbnMKKy0vLyEKKy0vLyEgKiAqKmxvc3NsZXNzIHdpZGVuaW5nIGNv bnZlcnNpb25zKio6IFtgRnJvbWBdL1tgSW50b2BdIGFyZSBpbXBsZW1lbnRlZCBmb3IKKy0vLyEg ICB2ZWN0b3JzIHdpdGggdGhlIHNhbWUgbnVtYmVyIG9mIGxhbmVzIHdoZW4gdGhlIGNvbnZlcnNp b24gaXMgdmFsdWUKKy0vLyEgcHJlc2VydmluZyAgIChzYW1lIGFzIGluIGBzdGRgKS4KKy0vLyEK Ky0vLyEgKiAqKnNhZmUgYml0d2lzZSBjb252ZXJzaW9ucyoqOiBUaGUgY2FyZ28gZmVhdHVyZSBg aW50b19iaXRzYCBwcm92aWRlcyB0aGUKKy0vLyEgICBgSW50b0JpdHMvRnJvbUJpdHNgIHRyYWl0 cyAoYHguaW50b19iaXRzKClgKS4gVGhlc2UgcGVyZm9ybSBzYWZlIGJpdHdpc2UKKy0vLyEgICBg dHJhbnNtdXRlYHMgd2hlbiBhbGwgYml0IHBhdHRlcm5zIG9mIHRoZSBzb3VyY2UgdHlwZSBhcmUg dmFsaWQgYml0CistLy8hICAgcGF0dGVybnMgb2YgdGhlIHRhcmdldCB0eXBlIGFuZCBhcmUgYWxz byBpbXBsZW1lbnRlZCBmb3IgdGhlCistLy8hICAgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIHZlY3Rv ciB0eXBlcyBvZiBgc3RkOjphcmNoYC4gRm9yIGV4YW1wbGUsIGBsZXQgeDoKKy0vLyEgICB1OHg4 ID0gbTh4ODo6c3BsYXQodHJ1ZSkuaW50b19iaXRzKCk7YCBpcyBwcm92aWRlZCBiZWNhdXNlIGFs bCBgbTh4OGAgYml0CistLy8hICAgcGF0dGVybnMgYXJlIHZhbGlkIGB1OHg4YCBiaXQgcGF0dGVy bnMuIEhvd2V2ZXIsIHRoZSBvcHBvc2l0ZSBpcyBub3QKKy0vLyEgdHJ1ZSwgICBub3QgYWxsIGB1 OHg4YCBiaXQgcGF0dGVybnMgYXJlIHZhbGlkIGBtOHg4YCBiaXQtcGF0dGVybnMsIHNvIHRoaXMK Ky0vLyEgICBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZCBzYWZlbHkgdXNpbmcgYHguaW50 b19iaXRzKClgOyBvbmUgbmVlZHMgdG8KKy0vLyEgICB1c2UgYHVuc2FmZSB7IGNyYXRlOjptZW06 OnRyYW5zbXV0ZSh4KSB9YCBmb3IgdGhhdCwgbWFraW5nIHN1cmUgdGhhdCB0aGUKKy0vLyEgICB2 YWx1ZSBpbiB0aGUgYHU4eDhgIGlzIGEgdmFsaWQgYml0LXBhdHRlcm4gb2YgYG04eDhgLgorLS8v IQorLS8vISAqICoqbnVtZXJpYyBjYXN0cyoqIChgYXNgKTogYXJlIHBlcmZvcm1lZCB1c2luZyBb YEZyb21DYXN0YF0vW2BDYXN0YF0KKy0vLyEgKGB4LmNhc3QoKWApLCBqdXN0IGxpa2UgYGFzYDoK Ky0vLyEKKy0vLyEgICAqIGNhc3RpbmcgaW50ZWdlciB2ZWN0b3JzIHdob3NlIGxhbmUgdHlwZXMg aGF2ZSB0aGUgc2FtZSBzaXplIChlLmcuCistLy8hIGBpMzJ4TmAgICAgIC0+IGB1MzJ4TmApIGlz IGEgKipuby1vcCoqLAorLS8vIQorLS8vISAgICogY2FzdGluZyBmcm9tIGEgbGFyZ2VyIGludGVn ZXIgdG8gYSBzbWFsbGVyIGludGVnZXIgKGUuZy4gYHUzMnhOYCAtPgorLS8vISBgdTh4TmApICAg ICB3aWxsICoqdHJ1bmNhdGUqKiwKKy0vLyEKKy0vLyEgICAqIGNhc3RpbmcgZnJvbSBhIHNtYWxs ZXIgaW50ZWdlciB0byBhIGxhcmdlciBpbnRlZ2VyICAgICAoZS5nLiBgdTh4TmAgLT4KKy0vLyEg ICAgIGB1MzJ4TmApIHdpbGw6CistLy8hICAgICAgICAqICoqemVyby1leHRlbmQqKiBpZiB0aGUg c291cmNlIGlzIHVuc2lnbmVkLCBvcgorLS8vISAgICAgICAgKiAqKnNpZ24tZXh0ZW5kKiogaWYg dGhlIHNvdXJjZSBpcyBzaWduZWQsCistLy8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYSBmbG9h dCB0byBhbiBpbnRlZ2VyIHdpbGwgKipyb3VuZCB0aGUgZmxvYXQgdG93YXJkcworLS8vISB6ZXJv KiosCistLy8hCistLy8hICAgKiBjYXN0aW5nIGZyb20gYW4gaW50ZWdlciB0byBmbG9hdCB3aWxs IHByb2R1Y2UgdGhlIGZsb2F0aW5nIHBvaW50CistLy8hICAgICByZXByZXNlbnRhdGlvbiBvZiB0 aGUgaW50ZWdlciwgKipyb3VuZGluZyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKiwKKy0vLyEK Ky0vLyEgICAqIGNhc3RpbmcgZnJvbSBhbiBgZjMyYCB0byBhbiBgZjY0YCBpcyBwZXJmZWN0IGFu ZCBsb3NzbGVzcywKKy0vLyEKKy0vLyEgICAqIGNhc3RpbmcgZnJvbSBhbiBgZjY0YCB0byBhbiBg ZjMyYCAqKnJvdW5kcyB0byBuZWFyZXN0LCB0aWVzIHRvIGV2ZW4qKi4KKy0vLyEKKy0vLyEgICBO dW1lcmljIGNhc3RzIGFyZSBub3QgdmVyeSAicHJlY2lzZSI6IHNvbWV0aW1lcyBsb3NzeSwgc29t ZXRpbWVzIHZhbHVlCistLy8hICAgcHJlc2VydmluZywgZXRjLgorLS8vIQorLS8vISAjIyBIYXJk d2FyZSBGZWF0dXJlcworLS8vIQorLS8vISBUaGlzIGNyYXRlIGNhbiB1c2UgZGlmZmVyZW50IGhh cmR3YXJlIGZlYXR1cmVzIGJhc2VkIG9uIHlvdXIgY29uZmlndXJlZAorLS8vISBgUlVTVEZMQUdT YC4gRm9yIGV4YW1wbGUsIHdpdGggbm8gY29uZmlndXJlZCBgUlVTVEZMQUdTYCwgYHU2NHg4YCBv bgorLS8vISB4ODZfNjQgd2lsbCB1c2UgU1NFMiBvcGVyYXRpb25zIGxpa2UgYFBDTVBFUURgLiBJ ZiB5b3UgY29uZmlndXJlCistLy8hIGBSVVNURkxBR1M9Jy1DIHRhcmdldC1mZWF0dXJlPSthdngy LCthdngnYCBvbiBzdXBwb3J0ZWQgeDg2XzY0IGhhcmR3YXJlCistLy8hIHRoZSBzYW1lIGB1NjR4 OGAgbWF5IHVzZSB3aWRlciBBVlgyIG9wZXJhdGlvbnMgbGlrZSBgVlBDTVBFUVFgLiBJdCBpcwor LS8vISBpbXBvcnRhbnQgZm9yIHBlcmZvcm1hbmNlIGFuZCBmb3IgaGFyZHdhcmUgc3VwcG9ydCBy ZXF1aXJlbWVudHMgdGhhdAorLS8vISB5b3UgY2hvb3NlIGFuIGFwcHJvcHJpYXRlIHNldCBvZiBg dGFyZ2V0LWZlYXR1cmVgIGFuZCBgdGFyZ2V0LWNwdWAKKy0vLyEgb3B0aW9ucyBkdXJpbmcgYnVp bGRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBbUGVyZm9ybWFuY2UKKy0vLyEgZ3Vp ZGVdKGh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL3BhY2tlZF9zaW1kL3BlcmYt Z3VpZGUvKQorLQorLSMhW2ZlYXR1cmUoCistICAgIGFkdF9jb25zdF9wYXJhbXMsCistICAgIHJl cHJfc2ltZCwKKy0gICAgcnVzdGNfYXR0cnMsCistICAgIHBsYXRmb3JtX2ludHJpbnNpY3MsCist ICAgIHN0ZHNpbWQsCistICAgIGFybV90YXJnZXRfZmVhdHVyZSwKKy0gICAgbGlua19sbHZtX2lu dHJpbnNpY3MsCistICAgIGNvcmVfaW50cmluc2ljcywKKy0gICAgc3RtdF9leHByX2F0dHJpYnV0 ZXMsCistICAgIGN1c3RvbV9pbm5lcl9hdHRyaWJ1dGVzLAorLSldCistIyFbYWxsb3cobm9uX2Nh bWVsX2Nhc2VfdHlwZXMsIG5vbl9zbmFrZV9jYXNlLAorLSAgICAgICAgLy8gRklYTUU6IHRoZXNl IHR5cGVzIGFyZSB1bnNvdW5kIGluIEMgRkZJIGFscmVhZHkKKy0gICAgICAgIC8vIFNlZSBodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QvaXNzdWVzLzUzMzQ2CistICAgICAgICBpbXBy b3Blcl9jdHlwZXNfZGVmaW5pdGlvbnMsCistICAgICAgICBpbmNvbXBsZXRlX2ZlYXR1cmVzLAor LSAgICAgICAgY2xpcHB5OjpjYXN0X3Bvc3NpYmxlX3RydW5jYXRpb24sCistICAgICAgICBjbGlw cHk6OmNhc3RfbG9zc2xlc3MsCistICAgICAgICBjbGlwcHk6OmNhc3RfcG9zc2libGVfd3JhcCwK Ky0gICAgICAgIGNsaXBweTo6Y2FzdF9wcmVjaXNpb25fbG9zcywKKy0gICAgICAgIC8vIFRPRE86 IG1hbnVhbGx5IGFkZCB0aGUgYCNbbXVzdF91c2VdYCBhdHRyaWJ1dGUgd2hlcmUgYXBwcm9wcmlh dGUKKy0gICAgICAgIGNsaXBweTo6bXVzdF91c2VfY2FuZGlkYXRlLAorLSAgICAgICAgLy8gVGhp cyBsaW50IGlzIGN1cnJlbnRseSBicm9rZW4gZm9yIGdlbmVyaWMgY29kZQorLSAgICAgICAgLy8g U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcnVzdC1jbGlwcHkvaXNzdWVzLzM0MTAK Ky0gICAgICAgIGNsaXBweTo6dXNlX3NlbGYsCistICAgICAgICBjbGlwcHk6Ondyb25nX3NlbGZf Y29udmVudGlvbiwKKy0gICAgICAgIGNsaXBweTo6ZnJvbV9vdmVyX2ludG8sCistKV0KKy0jIVtj ZmdfYXR0cih0ZXN0LCBmZWF0dXJlKGhhc2htYXBfaW50ZXJuYWxzKSldCistIyFbY2ZnX2F0dHIo ZG9jX2NmZywgZmVhdHVyZShkb2NfY2ZnKSldCistIyFbZGVueShydXN0XzIwMThfaWRpb21zLCBj bGlwcHk6Om1pc3NpbmdfaW5saW5lX2luX3B1YmxpY19pdGVtcyldCistIyFbbm9fc3RkXQorLQor LXVzZSBjZmdfaWY6OmNmZ19pZjsKKy0KKy1jZmdfaWYhIHsKKy0gICAgaWYgI1tjZmcoZmVhdHVy ZSA9ICJjb3JlX2FyY2giKV0geworLSAgICAgICAgI1thbGxvdyh1bnVzZWRfaW1wb3J0cyldCist ICAgICAgICB1c2UgY29yZV9hcmNoIGFzIGFyY2g7CistICAgIH0gZWxzZSB7CistICAgICAgICAj W2FsbG93KHVudXNlZF9pbXBvcnRzKV0KKy0gICAgICAgIHVzZSBjb3JlOjphcmNoOworLSAgICB9 CistfQorLQorLSNbY2ZnKGFsbCh0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB0ZXN0KSldCistdXNl IHdhc21fYmluZGdlbl90ZXN0OjoqOworLQorLSNbYWxsb3codW51c2VkX2ltcG9ydHMpXQorLXVz ZSBjb3JlOjp7CistICAgIC8qIGFyY2ggKGhhbmRsZWQgYWJvdmUpLCAqLyBjbXAsIGYzMiwgZjY0 LCBmbXQsIGhhc2gsIGhpbnQsIGkxMjgsIGkxNiwgaTMyLCBpNjQsIGk4LCBpbnRyaW5zaWNzLAor LSAgICBpc2l6ZSwgaXRlciwgbWFya2VyLCBtZW0sIG9wcywgcHRyLCBzbGljZSwgdTEyOCwgdTE2 LCB1MzIsIHU2NCwgdTgsIHVzaXplLAorLX07CistCistI1ttYWNyb191c2VdCistbW9kIHRlc3Rp bmc7CistI1ttYWNyb191c2VdCistbW9kIGFwaTsKKy1tb2QgY29kZWdlbjsKKy1tb2Qgc2VhbGVk OworLQorLXB1YiB1c2UgY3JhdGU6OnNlYWxlZDo6e01hc2ssIFNodWZmbGUsIFNpbWQgYXMgU2lt ZFZlY3RvciwgU2ltZEFycmF5fTsKKy0KKy0vLy8gUGFja2VkIFNJTUQgdmVjdG9yIHR5cGUuCist Ly8vCistLy8vICMgRXhhbXBsZXMKKy0vLy8KKy0vLy8gYGBgCistLy8vICMgdXNlIHBhY2tlZF9z aW1kOjpTaW1kOworLS8vLyBsZXQgdiA9IFNpbWQ6OjxbaTMyOyA0XT46Om5ldygwLCAxLCAyLCAz KTsKKy0vLy8gYXNzZXJ0X2VxISh2LmV4dHJhY3QoMiksIDIpOworLS8vLyBgYGAKKy0jW3JlcHIo dHJhbnNwYXJlbnQpXQorLSNbZGVyaXZlKENvcHksIENsb25lKV0KKy1wdWIgc3RydWN0IFNpbWQ8 QTogc2VhbGVkOjpTaW1kQXJyYXk+KAorLSAgICAvLyBGSVhNRTogdGhpcyB0eXBlIHNob3VsZCBi ZSBwcml2YXRlLAorLSAgICAvLyBidXQgaXQgY3VycmVudGx5IG11c3QgYmUgcHVibGljIGZvciB0 aGUKKy0gICAgLy8gYHNodWZmbGUhYCBtYWNybyB0byB3b3JrOiBpdCBuZWVkcyB0bworLSAgICAv LyBhY2Nlc3MgdGhlIGludGVybmFsIGByZXByKHNpbWQpYCB0eXBlCistICAgIC8vIHRvIGNhbGwg dGhlIHNodWZmbGUgaW50cmluc2ljcy4KKy0gICAgI1tkb2MoaGlkZGVuKV0gcHViIDxBIGFzIHNl YWxlZDo6U2ltZEFycmF5Pjo6VHVwbGUsCistKTsKKy0KKy1pbXBsPEE6IHNlYWxlZDo6U2ltZEFy cmF5PiBzZWFsZWQ6OlNlYWwgZm9yIFNpbWQ8QT4ge30KKy0KKy0vLy8gV3JhcHBlciBvdmVyIGBU YCBpbXBsZW1lbnRpbmcgYSBsZXhpY29yYXBoaWNhbCBvcmRlciB2aWEgdGhlIGBQYXJ0aWFsT3Jk YAorLS8vLyBhbmQvb3IgYE9yZGAgdHJhaXRzLgorLSNbcmVwcih0cmFuc3BhcmVudCldCistI1tk ZXJpdmUoQ29weSwgQ2xvbmUsIERlYnVnKV0KKy0jW2FsbG93KGNsaXBweTo6bWlzc2luZ19pbmxp bmVfaW5fcHVibGljX2l0ZW1zKV0KKy1wdWIgc3RydWN0IExleGljb2dyYXBoaWNhbGx5T3JkZXJl ZDxUPihUKTsKKy0KKy1tb2QgbWFza3M7CistcHViIHVzZSBzZWxmOjptYXNrczo6KjsKKy0KKy1t b2QgdjE2OworLXB1YiB1c2Ugc2VsZjo6djE2OjoqOworLQorLW1vZCB2MzI7CistcHViIHVzZSBz ZWxmOjp2MzI6Oio7CistCistbW9kIHY2NDsKKy1wdWIgdXNlIHNlbGY6OnY2NDo6KjsKKy0KKy1t b2QgdjEyODsKKy1wdWIgdXNlIHNlbGY6OnYxMjg6Oio7CistCistbW9kIHYyNTY7CistcHViIHVz ZSBzZWxmOjp2MjU2OjoqOworLQorLW1vZCB2NTEyOworLXB1YiB1c2Ugc2VsZjo6djUxMjo6KjsK Ky0KKy1tb2QgdlNpemU7CistcHViIHVzZSBzZWxmOjp2U2l6ZTo6KjsKKy0KKy1tb2QgdlB0cjsK Ky1wdWIgdXNlIHNlbGY6OnZQdHI6Oio7CistCistcHViIHVzZSBzZWxmOjphcGk6OmNhc3Q6Oio7 CistCistI1tjZmcoZmVhdHVyZSA9ICJpbnRvX2JpdHMiKV0KKy1wdWIgdXNlIHNlbGY6OmFwaTo6 aW50b19iaXRzOjoqOworLQorLS8vIFJlLWV4cG9ydCB0aGUgc2h1ZmZsZSBpbnRyaW5zaWNzIHJl cXVpcmVkIGJ5IHRoZSBgc2h1ZmZsZSFgIG1hY3JvLgorLSNbZG9jKGhpZGRlbildCistcHViIHVz ZSBzZWxmOjpjb2RlZ2VuOjpsbHZtOjp7CistICAgIF9fc2h1ZmZsZV92ZWN0b3IxNiwgX19zaHVm ZmxlX3ZlY3RvcjIsIF9fc2h1ZmZsZV92ZWN0b3IzMiwgX19zaHVmZmxlX3ZlY3RvcjQsIF9fc2h1 ZmZsZV92ZWN0b3I2NCwKKy0gICAgX19zaHVmZmxlX3ZlY3RvcjgsCistfTsKKy0KKy1wdWIoY3Jh dGUpIG1vZCBsbHZtIHsKKy0gICAgcHViKGNyYXRlKSB1c2UgY3JhdGU6OmNvZGVnZW46Omxsdm06 Oio7CistfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL21h c2tzLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvbWFza3MucnMKK2RlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvbWFza3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDEyNiArMCwwIEBACistLy8hIE1hc2sg dHlwZXMKKy0KKy1tYWNyb19ydWxlcyEgaW1wbF9tYXNrX3R5IHsKKy0gICAgKCRpZDppZGVudCA6 ICRlbGVtX3R5OmlkZW50IHwgI1skZG9jOm1ldGFdKSA9PiB7CistICAgICAgICAjWyRkb2NdCist ICAgICAgICAjW2Rlcml2ZShDb3B5LCBDbG9uZSldCistICAgICAgICBwdWIgc3RydWN0ICRpZCgk ZWxlbV90eSk7CistCistICAgICAgICBpbXBsIGNyYXRlOjpzZWFsZWQ6OlNlYWwgZm9yICRpZCB7 fQorLSAgICAgICAgaW1wbCBjcmF0ZTo6c2VhbGVkOjpNYXNrIGZvciAkaWQgeworLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIGZuIHRlc3QoJnNlbGYpIC0+IGJvb2wgeworLSAg ICAgICAgICAgICAgICAkaWQ6OnRlc3Qoc2VsZikKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBpbXBsICRpZCB7CistICAgICAgICAgICAgLy8vIEluc3RhbnRpYXRlIGEg bWFzayB3aXRoIGB2YWx1ZWAKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBw dWIgZm4gbmV3KHg6IGJvb2wpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAgICBpZiB4IHsKKy0g ICAgICAgICAgICAgICAgICAgICRpZCghMCkKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0g ICAgICAgICAgICAgICAgICAgICRpZCgwKQorLSAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIC8vLyBUZXN0IGlmIHRoZSBtYXNrIGlzIHNldAorLSAgICAgICAg ICAgICNbaW5saW5lXQorLSAgICAgICAgICAgIHB1YiBmbiB0ZXN0KCZzZWxmKSAtPiBib29sIHsK Ky0gICAgICAgICAgICAgICAgc2VsZi4wICE9IDAKKy0gICAgICAgICAgICB9CistICAgICAgICB9 CistCistICAgICAgICBpbXBsIERlZmF1bHQgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxp bmVdCistICAgICAgICAgICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgeworLSAgICAgICAgICAgICAg ICAkaWQoMCkKKy0gICAgICAgICAgICB9CistICAgICAgICB9CistCistICAgICAgICAjW2FsbG93 KGNsaXBweTo6cGFydGlhbGVxX25lX2ltcGwpXQorLSAgICAgICAgaW1wbCBQYXJ0aWFsRXE8JGlk PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBlcSgm c2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgc2VsZi4wID09 IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAgICAg ICAgICAgZm4gbmUoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAgICAgICAgICAg ICAgIHNlbGYuMCAhPSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLQorLSAg ICAgICAgaW1wbCBFcSBmb3IgJGlkIHt9CistCistICAgICAgICBpbXBsIFBhcnRpYWxPcmQ8JGlk PiBmb3IgJGlkIHsKKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBwYXJ0 aWFsX2NtcCgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBPcHRpb248Y3JhdGU6OmNtcDo6T3JkZXJp bmc+IHsKKy0gICAgICAgICAgICAgICAgdXNlIGNyYXRlOjpjbXA6Ok9yZGVyaW5nOworLSAgICAg ICAgICAgICAgICBpZiBzZWxmID09IG90aGVyIHsKKy0gICAgICAgICAgICAgICAgICAgIFNvbWUo T3JkZXJpbmc6OkVxdWFsKQorLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgc2VsZi4wID4gb3Ro ZXIuMCB7CistICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOgorLSAgICAgICAgICAgICAgICAg ICAgLy8gICogZmFsc2UgPSAwX2kKKy0gICAgICAgICAgICAgICAgICAgIC8vICAqIHRydWUgPT0g ITBfaSA9PSAtMV9pCistICAgICAgICAgICAgICAgICAgICBTb21lKE9yZGVyaW5nOjpMZXNzKQor LSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAgU29tZShPcmRl cmluZzo6R3JlYXRlcikKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0KKy0g ICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBsdCgmc2VsZiwgb3RoZXI6ICZT ZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgc2VsZi4wID4gb3RoZXIuMAorLSAgICAg ICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAgICBmbiBndCgmc2Vs Ziwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAgc2VsZi4wIDwgb3Ro ZXIuMAorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAjW2lubGluZV0KKy0gICAgICAgICAg ICBmbiBsZSgmc2VsZiwgb3RoZXI6ICZTZWxmKSAtPiBib29sIHsKKy0gICAgICAgICAgICAgICAg c2VsZi4wID49IG90aGVyLjAKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gZ2UoJnNlbGYsIG90aGVyOiAmU2VsZikgLT4gYm9vbCB7CistICAg ICAgICAgICAgICAgIHNlbGYuMCA8PSBvdGhlci4wCistICAgICAgICAgICAgfQorLSAgICAgICAg fQorLQorLSAgICAgICAgaW1wbCBPcmQgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVd CistICAgICAgICAgICAgZm4gY21wKCZzZWxmLCBvdGhlcjogJlNlbGYpIC0+IGNyYXRlOjpjbXA6 Ok9yZGVyaW5nIHsKKy0gICAgICAgICAgICAgICAgbWF0Y2ggc2VsZi5wYXJ0aWFsX2NtcChvdGhl cikgeworLSAgICAgICAgICAgICAgICAgICAgU29tZSh4KSA9PiB4LAorLSAgICAgICAgICAgICAg ICAgICAgTm9uZSA9PiB1bnNhZmUgeyBjcmF0ZTo6aGludDo6dW5yZWFjaGFibGVfdW5jaGVja2Vk KCkgfSwKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGltcGwgY3JhdGU6Omhhc2g6Okhhc2ggZm9yICRpZCB7CistICAgICAgICAgICAg I1tpbmxpbmVdCistICAgICAgICAgICAgZm4gaGFzaDxIOiBjcmF0ZTo6aGFzaDo6SGFzaGVyPigm c2VsZiwgc3RhdGU6ICZtdXQgSCkgeworLSAgICAgICAgICAgICAgICAoc2VsZi4wICE9IDApLmhh c2goc3RhdGUpOworLSAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGltcGwg Y3JhdGU6OmZtdDo6RGVidWcgZm9yICRpZCB7CistICAgICAgICAgICAgI1tpbmxpbmVdCistICAg ICAgICAgICAgZm4gZm10KCZzZWxmLCBmbXR0ZXI6ICZtdXQgY3JhdGU6OmZtdDo6Rm9ybWF0dGVy PCdfPikgLT4gUmVzdWx0PCgpLCBjcmF0ZTo6Zm10OjpFcnJvcj4geworLSAgICAgICAgICAgICAg ICB3cml0ZSEoZm10dGVyLCAie30oe30pIiwgc3RyaW5naWZ5ISgkaWQpLCBzZWxmLjAgIT0gMCkK Ky0gICAgICAgICAgICB9CistICAgICAgICB9CistICAgIH07CistfQorLQorLWltcGxfbWFza190 eSEobTg6IGk4IHwgLy8vIDgtYml0IHdpZGUgbWFzay4KKy0pOworLWltcGxfbWFza190eSEobTE2 OiBpMTYgfCAvLy8gMTYtYml0IHdpZGUgbWFzay4KKy0pOworLWltcGxfbWFza190eSEobTMyOiBp MzIgfCAvLy8gMzItYml0IHdpZGUgbWFzay4KKy0pOworLWltcGxfbWFza190eSEobTY0OiBpNjQg fCAvLy8gNjQtYml0IHdpZGUgbWFzay4KKy0pOworLWltcGxfbWFza190eSEobTEyODogaTEyOCB8 IC8vLyAxMjgtYml0IHdpZGUgbWFzay4KKy0pOworLWltcGxfbWFza190eSEobXNpemU6IGlzaXpl IHwgLy8vIGlzaXplLXdpZGUgbWFzay4KKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1 c3QvcGFja2VkX3NpbWQvc3JjL3NlYWxlZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL3NlYWxlZC5ycworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy9zZWFsZWQucnMKKysrKyAvZGV2L251bGwKK0BAIC0x LDQyICswLDAgQEAKKy0vLyEgU2VhbGVkIHRyYWl0cworLQorLS8vLyBBIHNlYWxlZCB0cmFpdCwg dGhpcyBpcyBsb2dpY2FsbHkgcHJpdmF0ZSB0byB0aGUgY3JhdGUKKy0vLy8gYW5kIHdpbGwgcHJl dmVudCBpbXBsZW1lbnRhdGlvbnMgZnJvbSBvdXRzaWRlIHRoZSBjcmF0ZQorLXB1YiB0cmFpdCBT ZWFsPFQgPSAoKT4ge30KKy0KKy0vLy8gVHJhaXQgaW1wbGVtZW50ZWQgYnkgYXJyYXlzIHRoYXQg Y2FuIGJlIFNJTUQgdHlwZXMuCistcHViIHRyYWl0IFNpbWRBcnJheTogU2VhbCB7CistICAgIC8v LyBUaGUgdHlwZSBvZiB0aGUgI1tyZXByKHNpbWQpXSB0eXBlLgorLSAgICB0eXBlIFR1cGxlOiBD b3B5ICsgQ2xvbmU7CistICAgIC8vLyBUaGUgZWxlbWVudCB0eXBlIG9mIHRoZSB2ZWN0b3IuCist ICAgIHR5cGUgVDsKKy0gICAgLy8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5 LgorLSAgICBjb25zdCBOOiB1c2l6ZTsKKy0gICAgLy8vIFRoZSB0eXBlOiBgW3UzMjsgU2VsZjo6 Tl1gLgorLSAgICB0eXBlIE5UOworLX0KKy0KKy0vLy8gVGhpcyB0cmFpdHMgaXMgdXNlZCB0byBj b25zdHJhaW50IHRoZSBhcmd1bWVudHMKKy0vLy8gYW5kIHJlc3VsdCB0eXBlIG9mIHRoZSBwb3J0 YWJsZSBzaHVmZmxlcy4KKy0jW2RvYyhoaWRkZW4pXQorLXB1YiB0cmFpdCBTaHVmZmxlPExhbmVz PjogU2VhbDxMYW5lcz4geworLSAgICAvLyBMYW5lcyBpcyBhIGBbdTMyOyBOXWAgd2hlcmUgYE5g IGlzIHRoZSBudW1iZXIgb2YgdmVjdG9yIGxhbmVzCistCistICAgIC8vLyBUaGUgcmVzdWx0IHR5 cGUgb2YgdGhlIHNodWZmbGUuCistICAgIHR5cGUgT3V0cHV0OworLX0KKy0KKy0vLy8gVGhpcyB0 cmFpdCBpcyBpbXBsZW1lbnRlZCBieSBhbGwgU0lNRCB2ZWN0b3IgdHlwZXMuCistcHViIHRyYWl0 IFNpbWQ6IFNlYWwgeworLSAgICAvLy8gRWxlbWVudCB0eXBlIG9mIHRoZSBTSU1EIHZlY3Rvcgor LSAgICB0eXBlIEVsZW1lbnQ7CistICAgIC8vLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRo ZSBTSU1EIHZlY3Rvci4KKy0gICAgY29uc3QgTEFORVM6IHVzaXplOworLSAgICAvLy8gVGhlIHR5 cGU6IGBbdTMyOyBTZWxmOjpOXWAuCistICAgIHR5cGUgTGFuZXNUeXBlOworLX0KKy0KKy0vLy8g VGhpcyB0cmFpdCBpcyBpbXBsZW1lbnRlZCBieSBhbGwgbWFzayB0eXBlcworLXB1YiB0cmFpdCBN YXNrOiBTZWFsIHsKKy0gICAgZm4gdGVzdCgmc2VsZikgLT4gYm9vbDsKKy19CitkaWZmIC0tZ2l0 IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5ycyBiL3RoaXJkX3Bh cnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy5ycwor KysrIC9kZXYvbnVsbAorQEAgLTEsOCArMCwwIEBACistLy8hIFRlc3RpbmcgbWFjcm9zIGFuZCBv dGhlciB1dGlsaXRpZXMuCistCistI1ttYWNyb191c2VdCistbW9kIG1hY3JvczsKKy0KKy0jW2Nm Zyh0ZXN0KV0KKy0jW21hY3JvX3VzZV0KKy1wdWIoY3JhdGUpIG1vZCB1dGlsczsKK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy90ZXN0aW5nL21hY3Jvcy5ycyBi L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3RpbmcvbWFjcm9zLnJzCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL3Rlc3RpbmcvbWFjcm9zLnJzCisrKysgL2Rldi9udWxsCitAQCAtMSw0NCArMCwwIEBACist Ly8hIFRlc3RpbmcgbWFjcm9zCistCistbWFjcm9fcnVsZXMhIHRlc3RfaWYgeworLSAgICAoJGNm Z190dDp0dDogJGl0Oml0ZW0pID0+IHsKKy0gICAgICAgICNbY2ZnKGFueSgKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUZXN0 IGV2ZXJ5dGhpbmcgaWY6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAqIHRlc3RzIGFyZSBlbmFibGVkLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vICogbm8gZmVhdHVyZXMgYWJvdXQgZXhjbHVzaXZlbHkgdGVzdGluZworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgc3Bl Y2lmaWMgdmVjdG9yIGNsYXNzZXMgYXJlIGVuYWJsZWQKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwodGVzdCwgbm90KGFueSgK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF92MTYsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjMyLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Y2NCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGVzdF92MTI4LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3YyNTYsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdjUx MiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGVzdF9ub25lLCAgLy8gZGlzYWJsZXMgYWxsIHRlc3RzCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8vIFRlc3QgaWY6CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAqIHRlc3RzIGFyZSBlbmFibGVkCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ly8gKiBhIHBhcnRpY3VsYXIgY2ZnIHRva2VuIHRyZWUgcmV0dXJucyB0cnVlCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsKHRl c3QsICRjZmdfdHQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKSldCistICAgICAgICAkaXQKKy0gICAgfTsKKy19CistCistI1tjZmco dGVzdCldCistI1thbGxvdyh1bnVzZWQpXQorLW1hY3JvX3J1bGVzISByZWZfIHsKKy0gICAgKCRh bnl0aGluZzp0dCkgPT4geworLSAgICAgICAgJiRhbnl0aGluZworLSAgICB9OworLX0KKy0KKy0j W2NmZyh0ZXN0KV0KKy0jW2FsbG93KHVudXNlZCldCistbWFjcm9fcnVsZXMhIHJlZl9tdXRfIHsK Ky0gICAgKCRhbnl0aGluZzp0dCkgPT4geworLSAgICAgICAgJm11dCAkYW55dGhpbmcKKy0gICAg fTsKKy19CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdGVz dGluZy91dGlscy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Rlc3Rpbmcv dXRpbHMucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvdGVzdGluZy91dGlscy5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs MTMwICswLDAgQEAKKy0vLyEgVGVzdGluZyB1dGlsaXRpZXMKKy0KKy0jIVthbGxvdyhkZWFkX2Nv ZGUpXQorLS8vIEZJWE1FOiBPciBkb24ndC4gQnV0IGl0J3MgdHJ1ZSB0aGlzIGlzIGEgcHJvYmxl bWF0aWMgY29tcGFyaXNvbi4KKy0jIVthbGxvdyhjbGlwcHk6Om5lZ19jbXBfb3Bfb25fcGFydGlh bF9vcmQpXQorLQorLXVzZSBjcmF0ZTo6e2NtcDo6UGFydGlhbE9yZCwgZm10OjpEZWJ1ZywgTGV4 aWNvZ3JhcGhpY2FsbHlPcmRlcmVkfTsKKy0KKy0vLy8gVGVzdHMgUGFydGlhbE9yZCBmb3IgYGFg IGFuZCBgYmAgd2hlcmUgYGEgPCBiYCBpcyB0cnVlLgorLXB1YiBmbiB0ZXN0X2x0PFQ+KGE6IExl eGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPiwgYjogTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+ KQorLXdoZXJlCistICAgIExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPjogRGVidWcgKyBQYXJ0 aWFsT3JkLAorLXsKKy0gICAgYXNzZXJ0IShhIDwgYiwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0g ICAgYXNzZXJ0IShiID4gYSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0KKy0gICAgYXNzZXJ0ISgh KGEgPT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgIGFzc2VydF9uZSEoYSwgYiwgIns6 P30sIHs6P30iLCBhLCBiKTsKKy0KKy0gICAgYXNzZXJ0IShhIDw9IGIsICJ7Oj99LCB7Oj99Iiwg YSwgYik7CistICAgIGFzc2VydCEoYiA+PSBhLCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAg ICAvLyBUaGUgZWxlZ2FuY2Ugb2YgdGhlIG1hdGhlbWF0aWNhbCBleHByZXNzaW9uIG9mIGlycmVm bGV4aXZpdHkgaXMgbW9yZQorLSAgICAvLyB0aGFuIGNsaXBweSBjYW4gaGFuZGxlLgorLSAgICAj W2FsbG93KGNsaXBweTo6ZXFfb3ApXQorLSAgICB7CistICAgICAgICAvLyBJcnJlZmxleGl2aXR5 CistICAgICAgICBhc3NlcnQhKCEoYSA8IGEpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAg ICAgYXNzZXJ0ISghKGIgPCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgIGFzc2Vy dCEoIShhID4gYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICBhc3NlcnQhKCEoYiA+ IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLQorLSAgICAgICAgYXNzZXJ0IShhIDw9IGEsICJ7 Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICBhc3NlcnQhKGIgPD0gYiwgIns6P30sIHs6P30i LCBhLCBiKTsKKy0gICAgfQorLX0KKy0KKy0vLy8gVGVzdHMgUGFydGlhbE9yZCBmb3IgYGFgIGFu ZCBgYmAgd2hlcmUgYGEgPD0gYmAgaXMgdHJ1ZS4KKy1wdWIgZm4gdGVzdF9sZTxUPihhOiBMZXhp Y29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPikK Ky13aGVyZQorLSAgICBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD46IERlYnVnICsgUGFydGlh bE9yZCwKKy17CistICAgIGFzc2VydCEoYSA8PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAg ICBhc3NlcnQhKGIgPj0gYSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0KKy0gICAgYXNzZXJ0IShh IDw9IGIsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgIGFzc2VydCEoYiA+PSBhLCAiezo/fSwg ezo/fSIsIGEsIGIpOworLQorLSAgICBpZiBhID09IGIgeworLSAgICAgICAgYXNzZXJ0ISghKGEg PCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgIGFzc2VydCEoIShiID4gYSksICJ7 Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgICAgICBhc3NlcnQhKCEoYSAhPSBiKSwgIns6P30s IHs6P30iLCBhLCBiKTsKKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGFzc2VydF9uZSEoYSwgYiwg Ins6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgIHRlc3RfbHQoYSwgYik7CistICAgIH0KKy19 CistCistLy8vIFRlc3QgUGFydGlhbE9yZDo6cGFydGlhbF9jbXAgZm9yIGBhYCBhbmQgYGJgIHJl dHVybmluZyBgT3JkZXJpbmdgCistcHViIGZuIHRlc3RfY21wPFQ+KAorLSAgICBhOiBMZXhpY29n cmFwaGljYWxseU9yZGVyZWQ8VD4sCistICAgIGI6IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxU PiwKKy0gICAgbzogT3B0aW9uPGNyYXRlOjpjbXA6Ok9yZGVyaW5nPiwKKy0pIHdoZXJlCistICAg IExleGljb2dyYXBoaWNhbGx5T3JkZXJlZDxUPjogUGFydGlhbE9yZCArIERlYnVnLAorLSAgICBU OiBEZWJ1ZyArIGNyYXRlOjpzZWFsZWQ6OlNpbWQgKyBDb3B5ICsgQ2xvbmUsCistICAgIDxUIGFz IGNyYXRlOjpzZWFsZWQ6OlNpbWQ+OjpFbGVtZW50OiBEZWZhdWx0ICsgQ29weSArIENsb25lICsg UGFydGlhbE9yZCwKKy17CistICAgIGFzc2VydCEoVDo6TEFORVMgPD0gNjQsICJhcnJheSBsZW5n dGggaW4gdGhlc2UgdHdvIGFycmF5cyBuZWVkcyB1cGRhdGluZyIpOworLSAgICBsZXQgbXV0IGFy cl9hOiBbVDo6RWxlbWVudDsgNjRdID0gW0RlZmF1bHQ6OmRlZmF1bHQoKTsgNjRdOworLSAgICBs ZXQgbXV0IGFycl9iOiBbVDo6RWxlbWVudDsgNjRdID0gW0RlZmF1bHQ6OmRlZmF1bHQoKTsgNjRd OworLQorLSAgICB1bnNhZmUgeyBjcmF0ZTo6cHRyOjp3cml0ZV91bmFsaWduZWQoYXJyX2EuYXNf bXV0X3B0cigpIGFzICptdXQgTGV4aWNvZ3JhcGhpY2FsbHlPcmRlcmVkPFQ+LCBhKSB9CistICAg IHVuc2FmZSB7IGNyYXRlOjpwdHI6OndyaXRlX3VuYWxpZ25lZChhcnJfYi5hc19tdXRfcHRyKCkg YXMgKm11dCBMZXhpY29ncmFwaGljYWxseU9yZGVyZWQ8VD4sIGIpIH0KKy0gICAgbGV0IGV4cGVj dGVkID0gYXJyX2FbMC4uVDo6TEFORVNdLnBhcnRpYWxfY21wKCZhcnJfYlswLi5UOjpMQU5FU10p OworLSAgICBsZXQgcmVzdWx0ID0gYS5wYXJ0aWFsX2NtcCgmYik7CistICAgIGFzc2VydF9lcSEo ZXhwZWN0ZWQsIHJlc3VsdCwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgYXNzZXJ0X2VxIShv LCByZXN1bHQsICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgIG1hdGNoIG8geworLSAgICAgICAg U29tZShjcmF0ZTo6Y21wOjpPcmRlcmluZzo6TGVzcykgPT4geworLSAgICAgICAgICAgIHRlc3Rf bHQoYSwgYik7CistICAgICAgICAgICAgdGVzdF9sZShhLCBiKTsKKy0gICAgICAgIH0KKy0gICAg ICAgIFNvbWUoY3JhdGU6OmNtcDo6T3JkZXJpbmc6OkdyZWF0ZXIpID0+IHsKKy0gICAgICAgICAg ICB0ZXN0X2x0KGIsIGEpOworLSAgICAgICAgICAgIHRlc3RfbGUoYiwgYSk7CistICAgICAgICB9 CistICAgICAgICBTb21lKGNyYXRlOjpjbXA6Ok9yZGVyaW5nOjpFcXVhbCkgPT4geworLSAgICAg ICAgICAgIGFzc2VydCEoYSA9PSBiLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAg IGFzc2VydCEoIShhICE9IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFz c2VydCEoIShhIDwgYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAgYXNzZXJ0 ISghKGIgPCBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEo YSA+IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAgICAgIGFzc2VydCEoIShiID4g YSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistCistICAgICAgICAgICAgdGVzdF9sZShhLCBiKTsK Ky0gICAgICAgICAgICB0ZXN0X2xlKGIsIGEpOworLSAgICAgICAgfQorLSAgICAgICAgTm9uZSA9 PiB7CistICAgICAgICAgICAgYXNzZXJ0ISghKGEgPT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7 CistICAgICAgICAgICAgYXNzZXJ0ISghKGEgIT0gYiksICJ7Oj99LCB7Oj99IiwgYSwgYik7Cist ICAgICAgICAgICAgYXNzZXJ0ISghKGEgPCBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAg ICAgICAgICBhc3NlcnQhKCEoYSA+IGIpLCAiezo/fSwgezo/fSIsIGEsIGIpOworLSAgICAgICAg ICAgIGFzc2VydCEoIShiIDwgYSksICJ7Oj99LCB7Oj99IiwgYSwgYik7CistICAgICAgICAgICAg YXNzZXJ0ISghKGIgPiBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3Nl cnQhKCEoYSA8PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQh KCEoYiA8PSBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEo YSA+PSBiKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgICAgICBhc3NlcnQhKCEoYiA+ PSBhKSwgIns6P30sIHs6P30iLCBhLCBiKTsKKy0gICAgICAgIH0KKy0gICAgfQorLX0KKy0KKy0v LyBSZXR1cm5zIGEgdHVwbGUgY29udGFpbmluZyB0d28gZGlzdGluY3QgcG9pbnRlciB2YWx1ZXMg b2YgdGhlIHNhbWUgdHlwZSBhcworLS8vIHRoZSBlbGVtZW50IHR5cGUgb2YgdGhlIFNpbWQgdmVj dG9yIGAkaWRgLgorLSNbYWxsb3codW51c2VkKV0KKy1tYWNyb19ydWxlcyEgcHRyX3ZhbHMgewor LSAgICAoJGlkOnR5KSA9PiB7CistICAgICAgICAvLyBleHBhbmRzIHRvIGFuIGV4cHJlc3Npb24K Ky0gICAgICAgICNbYWxsb3codW51c2VkX3Vuc2FmZSldCistICAgICAgICB1bnNhZmUgeworLSAg ICAgICAgICAgIC8vIGFsbCBiaXRzIGNsZWFyZWQKKy0gICAgICAgICAgICBsZXQgY2xlYXI6IDwk aWQgYXMgc2VhbGVkOjpTaW1kPjo6RWxlbWVudCA9IGNyYXRlOjptZW06Onplcm9lZCgpOworLSAg ICAgICAgICAgIC8vIGFsbCBiaXRzIHNldAorLSAgICAgICAgICAgIGxldCBzZXQ6IDwkaWQgYXMg c2VhbGVkOjpTaW1kPjo6RWxlbWVudCA9IGNyYXRlOjptZW06OnRyYW5zbXV0ZSgtMV9pc2l6ZSk7 CistICAgICAgICAgICAgKGNsZWFyLCBzZXQpCistICAgICAgICB9CistICAgIH07CistfQorZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxMjgucnMgYi90aGly ZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MTI4LnJzCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxMjgucnMKKysr KyAvZGV2L251bGwKK0BAIC0xLDgwICswLDAgQEAKKy0vLyEgMTI4LWJpdCB3aWRlIHZlY3RvciB0 eXBlcworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3JhdGU6Oio7CistCistaW1wbF9pIShb aTg7IDE2XTogaTh4MTYsIG04eDE2IHwgaTgsIHUxNiB8IHRlc3RfdjEyOCB8CistICAgICAgICB4 MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEz LCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZl Y3RvciB3aXRoIDE2IGBpOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgMTZdOiB1OHgxNiwg bTh4MTYgfCB1OCwgdTE2IHwgdGVzdF92MTI4IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0g ICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMTYgYHU4 YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW204OyAxNl06IG04eDE2IHwgaTgsIHUxNiB8IHRlc3Rf djEyOCB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwg eDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiBtMTZ4MTYgfAor LSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDE2IGBtOGAgbGFuZXMuCist KTsKKy0KKy1pbXBsX2khKFtpMTY7IDhdOiBpMTZ4OCwgbTE2eDggfCBpMTYsIHU4IHwgdGVzdF92 MTI4IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IGk4 eDgsIHU4eDggfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA4IGBpMTZgIGxh bmVzLgorLSk7CistaW1wbF91IShbdTE2OyA4XTogdTE2eDgsIG0xNng4IHwgdTE2LCB1OCB8IHRl c3RfdjEyOCB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9t OiB1OHg4IHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggOCBgdTE2YCBsYW5l cy4KKy0pOworLWltcGxfbSEoW20xNjsgOF06IG0xNng4IHwgaTE2LCB1OCB8IHRlc3RfdjEyOCB8 IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiBtOHg4LCBt MzJ4OCB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggOCBgbTE2YCBs YW5lcy4KKy0pOworLQorLWltcGxfaSEoW2kzMjsgNF06IGkzMng0LCBtMzJ4NCB8IGkzMiwgdTgg fCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiBpOHg0LCB1OHg0 LCBpMTZ4NCwgdTE2eDQgIHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggNCBg aTMyYCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3UzMjsgNF06IHUzMng0LCBtMzJ4NCB8IHUzMiwg dTggfCB0ZXN0X3YxMjggfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiB1OHg0LCB1 MTZ4NCB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDQgYHUzMmAgbGFuZXMu CistKTsKKy1pbXBsX2YhKFtmMzI7IDRdOiBmMzJ4NCwgbTMyeDQgfCBmMzIgfCB0ZXN0X3YxMjgg fCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2 eDQgfAorLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCA0IGBmMzJgIGxhbmVzLgor LSk7CistaW1wbF9tIShbbTMyOyA0XTogbTMyeDQgfCBpMzIsIHU4IHwgdGVzdF92MTI4IHwgeDAs IHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG02NHg0IHwKKy0gICAg ICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtMzJgIGxhbmVzLgorLSk7Cist CistaW1wbF9pIShbaTY0OyAyXTogaTY0eDIsIG02NHgyIHwgaTY0LCB1OCB8IHRlc3RfdjEyOCB8 IHgwLCB4MSB8CistICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIsIGkzMngy LCB1MzJ4MiB8CistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDIgYGk2NGAgbGFu ZXMuCistKTsKKy1pbXBsX3UhKFt1NjQ7IDJdOiB1NjR4MiwgbTY0eDIgfCB1NjQsIHU4IHwgdGVz dF92MTI4IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IHU4eDIsIHUxNngyLCB1MzJ4MiB8Cist ICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDIgYHU2NGAgbGFuZXMuCistKTsKKy1p bXBsX2YhKFtmNjQ7IDJdOiBmNjR4MiwgbTY0eDIgfCBmNjQgfCB0ZXN0X3YxMjggfCB4MCwgeDEg fAorLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2eDIsIHUxNngyLCBpMzJ4MiwgdTMyeDIs IGYzMngyIHwKKy0gICAgICAgIC8vLyBBIDEyOC1iaXQgdmVjdG9yIHdpdGggMiBgZjY0YCBsYW5l cy4KKy0pOworLWltcGxfbSEoW202NDsgMl06IG02NHgyIHwgaTY0LCB1OCB8IHRlc3RfdjEyOCB8 IHgwLCB4MSB8CistICAgICAgICBGcm9tOiBtOHgyLCBtMTZ4MiwgbTMyeDIsIG0xMjh4MiB8Cist ICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGggMiBgbTY0YCBsYW5lcy4KKy0p OworLQorLWltcGxfaSEoW2kxMjg7IDFdOiBpMTI4eDEsIG0xMjh4MSB8IGkxMjgsIHU4IHwgdGVz dF92MTI4IHwgeDAgfAorLSAgICAgICAgRnJvbTogLyppOHgxLCB1OHgxLCBpMTZ4MSwgdTE2eDEs IGkzMngxLCB1MzJ4MSwgaTY0eDEsIHU2NHgxICovIHwgLy8gRklYTUU6IHVuYXJ5IHNtYWxsIHZl Y3RvciB0eXBlcworLSAgICAgICAgLy8vIEEgMTI4LWJpdCB2ZWN0b3Igd2l0aCAxIGBpMTI4YCBs YW5lLgorLSk7CistaW1wbF91IShbdTEyODsgMV06IHUxMjh4MSwgbTEyOHgxIHwgdTEyOCwgdTgg fCB0ZXN0X3YxMjggfCB4MCB8CistICAgICAgICBGcm9tOiAvKnU4eDEsIHUxNngxLCB1MzJ4MSwg dTY0eDEgKi8gfCAvLyBGSVhNRTogdW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCistICAgICAgICAv Ly8gQSAxMjgtYml0IHZlY3RvciB3aXRoIDEgYHUxMjhgIGxhbmUuCistKTsKKy1pbXBsX20hKFtt MTI4OyAxXTogbTEyOHgxIHwgaTEyOCwgdTggfCB0ZXN0X3YxMjggfCB4MCB8CistICAgICAgICBG cm9tOiAvKm04eDEsIG0xNngxLCBtMzJ4MSwgbTY0eDEgKi8gfCAvLyBGSVhNRTogdW5hcnkgc21h bGwgdmVjdG9yIHR5cGVzCistICAgICAgICAvLy8gQSAxMjgtYml0IHZlY3RvciBtYXNrIHdpdGgg MSBgbTEyOGAgbGFuZS4KKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3YxNi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YxNi5y cworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tl ZF9zaW1kL3NyYy92MTYucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDE2ICswLDAgQEAKKy0vLyEg MTYtYml0IHdpZGUgdmVjdG9yIHR5cGVzCistCistdXNlIGNyYXRlOjoqOworLQorLWltcGxfaSEo W2k4OyAyXTogaTh4MiwgbTh4MiB8IGk4LCB1OCB8IHRlc3RfdjE2IHwgeDAsIHgxIHwKKy0gICAg ICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDE2LWJpdCB2ZWN0b3Igd2l0aCAyIGBpOGAgbGFu ZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgMl06IHU4eDIsIG04eDIgfCB1OCwgdTggfCB0ZXN0X3Yx NiB8IHgwLCB4MSB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSAxNi1iaXQgdmVj dG9yIHdpdGggMiBgdThgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTg7IDJdOiBtOHgyIHwgaTgs IHU4IHwgdGVzdF92MTYgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogbTE2eDIsIG0zMngyLCBt NjR4MiwgbTEyOHgyIHwKKy0gICAgICAgIC8vLyBBIDE2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDIg YG04YCBsYW5lcy4KKy0pOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3Np bWQvc3JjL3YyNTYucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92MjU2LnJz CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJkX3BhcnR5L3J1c3QvcGFja2Vk X3NpbWQvc3JjL3YyNTYucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDg2ICswLDAgQEAKKy0vLyEg MjU2LWJpdCB3aWRlIHZlY3RvciB0eXBlcworLSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2UgY3Jh dGU6Oio7CistCistaW1wbF9pIShbaTg7IDMyXTogaTh4MzIsIG04eDMyIHwgaTgsIHUzMiB8IHRl c3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgs IHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4 MzAsIHgzMSB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3Rv ciB3aXRoIDMyIGBpOGAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1ODsgMzJdOiB1OHgzMiwgbTh4 MzIgfCB1OCwgdTMyIHwgdGVzdF92MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwg eDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAg ICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYs IHgyNywgeDI4LCB4MjksIHgzMCwgeDMxIHwKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAgIC8v LyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMzIgYHU4YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW204 OyAzMl06IG04eDMyIHwgaTgsIHUzMiB8IHRlc3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgy LCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgx NSwKKy0gICAgICAgIHgxNiwgeDE3LCB4MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQs IHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5LCB4MzAsIHgzMSB8CistICAgICAgICBGcm9tOiAgfAor LSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDMyIGBtOGAgbGFuZXMuCist KTsKKy0KKy1pbXBsX2khKFtpMTY7IDE2XTogaTE2eDE2LCBtMTZ4MTYgfCBpMTYsIHUxNiB8IHRl c3RfdjI1NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiBpOHgxNiwg dTh4MTYgfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCAxNiBgaTE2YCBsYW5l cy4KKy0pOworLWltcGxfdSEoW3UxNjsgMTZdOiB1MTZ4MTYsIG0xNngxNiB8IHUxNiwgdTE2IHwg dGVzdF92MjU2IHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgs IHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206IHU4eDE2 IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggMTYgYHUxNmAgbGFuZXMuCist KTsKKy1pbXBsX20hKFttMTY7IDE2XTogbTE2eDE2IHwgaTE2LCB1MTYgfCB0ZXN0X3YyNTYgfAor LSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDEx LCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogbTh4MTYgfAorLSAgICAgICAg Ly8vIEEgMjU2LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDE2IGBtMTZgIGxhbmVzLgorLSk7CistCist aW1wbF9pIShbaTMyOyA4XTogaTMyeDgsIG0zMng4IHwgaTMyLCB1OCB8IHRlc3RfdjI1NiB8IHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyAgfAorLSAgICAgICAgRnJvbTogaTh4OCwgdTh4 OCwgaTE2eDgsIHUxNng4IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIHdpdGggOCBg aTMyYCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3UzMjsgOF06IHUzMng4LCBtMzJ4OCB8IHUzMiwg dTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAg ICAgRnJvbTogdTh4OCwgdTE2eDggfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0 aCA4IGB1MzJgIGxhbmVzLgorLSk7CistaW1wbF9mIShbZjMyOyA4XTogZjMyeDgsIG0zMng4IHwg ZjMyIHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAg ICAgIEZyb206IGk4eDgsIHU4eDgsIGkxNng4LCB1MTZ4OCB8CistICAgICAgICAvLy8gQSAyNTYt Yml0IHZlY3RvciB3aXRoIDggYGYzMmAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMzI7IDhdOiBt MzJ4OCB8IGkzMiwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4Niwg eDcgfAorLSAgICAgICAgRnJvbTogbTh4OCwgbTE2eDggfAorLSAgICAgICAgLy8vIEEgMjU2LWJp dCB2ZWN0b3IgbWFzayB3aXRoIDggYG0zMmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpNjQ7 IDRdOiBpNjR4NCwgbTY0eDQgfCBpNjQsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4MiwgeDMg fAorLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCwgaTE2eDQsIHUxNng0LCBpMzJ4NCwgdTMyeDQg fAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA0IGBpNjRgIGxhbmVzLgorLSk7 CistaW1wbF91IShbdTY0OyA0XTogdTY0eDQsIG02NHg0IHwgdTY0LCB1OCB8IHRlc3RfdjI1NiB8 IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHU4eDQsIHUxNng0LCB1MzJ4NCB8Cist ICAgICAgICAvLy8gQSAyNTYtYml0IHZlY3RvciB3aXRoIDQgYHU2NGAgbGFuZXMuCistKTsKKy1p bXBsX2YhKFtmNjQ7IDRdOiBmNjR4NCwgbTY0eDQgfCBmNjQgfCB0ZXN0X3YyNTYgfCB4MCwgeDEs IHgyLCB4MyB8CistICAgICAgICBGcm9tOiBpOHg0LCB1OHg0LCBpMTZ4NCwgdTE2eDQsIGkzMng0 LCB1MzJ4NCwgZjMyeDQgfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2ZWN0b3Igd2l0aCA0IGBm NjRgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTY0OyA0XTogbTY0eDQgfCBpNjQsIHU4IHwgdGVz dF92MjU2IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG0z Mng0IHwKKy0gICAgICAgIC8vLyBBIDI1Ni1iaXQgdmVjdG9yIG1hc2sgd2l0aCA0IGBtNjRgIGxh bmVzLgorLSk7CistCistaW1wbF9pIShbaTEyODsgMl06IGkxMjh4MiwgbTEyOHgyIHwgaTEyOCwg dTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAorLSAgICAgICAgRnJvbTogaTh4MiwgdTh4MiwgaTE2 eDIsIHUxNngyLCBpMzJ4MiwgdTMyeDIsIGk2NHgyLCB1NjR4MiB8CistICAgICAgICAvLy8gQSAy NTYtYml0IHZlY3RvciB3aXRoIDIgYGkxMjhgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTEyODsg Ml06IHUxMjh4MiwgbTEyOHgyIHwgdTEyOCwgdTggfCB0ZXN0X3YyNTYgfCB4MCwgeDEgfAorLSAg ICAgICAgRnJvbTogdTh4MiwgdTE2eDIsIHUzMngyLCB1NjR4MiB8CistICAgICAgICAvLy8gQSAy NTYtYml0IHZlY3RvciB3aXRoIDIgYHUxMjhgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTEyODsg Ml06IG0xMjh4MiB8IGkxMjgsIHU4IHwgdGVzdF92MjU2IHwgeDAsIHgxIHwKKy0gICAgICAgIEZy b206IG04eDIsIG0xNngyLCBtMzJ4MiwgbTY0eDIgfAorLSAgICAgICAgLy8vIEEgMjU2LWJpdCB2 ZWN0b3IgbWFzayB3aXRoIDIgYG0xMjhgIGxhbmVzLgorLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjMyLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9wYWNr ZWRfc2ltZC9zcmMvdjMyLnJzCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKKy0tLSBhL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3YzMi5ycworKysrIC9kZXYvbnVsbAorQEAgLTEs MjkgKzAsMCBAQAorLS8vISAzMi1iaXQgd2lkZSB2ZWN0b3IgdHlwZXMKKy0KKy11c2UgY3JhdGU6 Oio7CistCistaW1wbF9pIShbaTg7IDRdOiBpOHg0LCBtOHg0IHwgaTgsIHU4IHwgdGVzdF92MzIg fCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSAzMi1i aXQgdmVjdG9yIHdpdGggNCBgaThgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTg7IDRdOiB1OHg0 LCBtOHg0IHwgdTgsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEsIHgyLCB4MyB8CistICAgICAgICBG cm9tOiB8CistICAgICAgICAvLy8gQSAzMi1iaXQgdmVjdG9yIHdpdGggNCBgdThgIGxhbmVzLgor LSk7CistaW1wbF9tIShbbTg7IDRdOiBtOHg0IHwgaTgsIHU4IHwgdGVzdF92MzIgfCB4MCwgeDEs IHgyLCB4MyB8CistICAgICAgICBGcm9tOiBtMTZ4NCwgbTMyeDQsIG02NHg0IHwKKy0gICAgICAg IC8vLyBBIDMyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDQgYG04YCBsYW5lcy4KKy0pOworLQorLWlt cGxfaSEoW2kxNjsgMl06IGkxNngyLCBtMTZ4MiB8IGkxNiwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4 MSB8CistICAgICAgICBGcm9tOiBpOHgyLCB1OHgyIHwKKy0gICAgICAgIC8vLyBBIDMyLWJpdCB2 ZWN0b3Igd2l0aCAyIGBpMTZgIGxhbmVzLgorLSk7CistaW1wbF91IShbdTE2OyAyXTogdTE2eDIs IG0xNngyIHwgdTE2LCB1OCB8IHRlc3RfdjMyIHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IHU4 eDIgfAorLSAgICAgICAgLy8vIEEgMzItYml0IHZlY3RvciB3aXRoIDIgYHUxNmAgbGFuZXMuCist KTsKKy1pbXBsX20hKFttMTY7IDJdOiBtMTZ4MiB8IGkxNiwgdTggfCB0ZXN0X3YzMiB8IHgwLCB4 MSB8CistICAgICAgICBGcm9tOiBtOHgyLCBtMzJ4MiwgbTY0eDIsIG0xMjh4MiB8CistICAgICAg ICAvLy8gQSAzMi1iaXQgdmVjdG9yIG1hc2sgd2l0aCAyIGBtMTZgIGxhbmVzLgorLSk7CitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvc3JjL3Y1MTIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjUxMi5ycworKysr IC9kZXYvbnVsbAorQEAgLTEsOTkgKzAsMCBAQAorLS8vISA1MTItYml0IHdpZGUgdmVjdG9yIHR5 cGVzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVzZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2khKFtp ODsgNjRdOiBpOHg2NCwgbTh4NjQgfCBpOCwgdTY0IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMs IHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4 MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAorLSAgICAgICAgeDMy LCB4MzMsIHgzNCwgeDM1LCB4MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0Mywg eDQ0LCB4NDUsIHg0NiwgeDQ3LAorLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1 MywgeDU0LCB4NTUsIHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKKy0g ICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggNjQgYGk4 YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyA2NF06IHU4eDY0LCBtOHg2NCB8IHU4LCB1NjQg fCB0ZXN0X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4 OCwgeDksIHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgxNywg eDE4LCB4MTksIHgyMCwgeDIxLCB4MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgy OSwgeDMwLCB4MzEsCistICAgICAgICB4MzIsIHgzMywgeDM0LCB4MzUsIHgzNiwgeDM3LCB4Mzgs IHgzOSwgeDQwLCB4NDEsIHg0MiwgeDQzLCB4NDQsIHg0NSwgeDQ2LCB4NDcsCistICAgICAgICB4 NDgsIHg0OSwgeDUwLCB4NTEsIHg1MiwgeDUzLCB4NTQsIHg1NSwgeDU2LCB4NTcsIHg1OCwgeDU5 LCB4NjAsIHg2MSwgeDYyLCB4NjMgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEg NTEyLWJpdCB2ZWN0b3Igd2l0aCA2NCBgdThgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTg7IDY0 XTogbTh4NjQgfCBpOCwgdTY0IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgz LCB4NCwgeDUsIHg2LCB4NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAor LSAgICAgICAgeDE2LCB4MTcsIHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1 LCB4MjYsIHgyNywgeDI4LCB4MjksIHgzMCwgeDMxLAorLSAgICAgICAgeDMyLCB4MzMsIHgzNCwg eDM1LCB4MzYsIHgzNywgeDM4LCB4MzksIHg0MCwgeDQxLCB4NDIsIHg0MywgeDQ0LCB4NDUsIHg0 NiwgeDQ3LAorLSAgICAgICAgeDQ4LCB4NDksIHg1MCwgeDUxLCB4NTIsIHg1MywgeDU0LCB4NTUs IHg1NiwgeDU3LCB4NTgsIHg1OSwgeDYwLCB4NjEsIHg2MiwgeDYzIHwKKy0gICAgICAgIEZyb206 ICB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggNjQgYG04YCBsYW5l cy4KKy0pOworLQorLWltcGxfaSEoW2kxNjsgMzJdOiBpMTZ4MzIsIG0xNngzMiB8IGkxNiwgdTMy IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4Nywg eDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1LAorLSAgICAgICAgeDE2LCB4MTcs IHgxOCwgeDE5LCB4MjAsIHgyMSwgeDIyLCB4MjMsIHgyNCwgeDI1LCB4MjYsIHgyNywgeDI4LCB4 MjksIHgzMCwgeDMxIHwKKy0gICAgICAgIEZyb206IGk4eDMyLCB1OHgzMiB8CistICAgICAgICAv Ly8gQSA1MTItYml0IHZlY3RvciB3aXRoIDMyIGBpMTZgIGxhbmVzLgorLSk7CistaW1wbF91IShb dTE2OyAzMl06IHUxNngzMiwgbTE2eDMyIHwgdTE2LCB1MzIgfCB0ZXN0X3Y1MTIgfAorLSAgICAg ICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDksIHgxMCwgeDExLCB4MTIs IHgxMywgeDE0LCB4MTUsCistICAgICAgICB4MTYsIHgxNywgeDE4LCB4MTksIHgyMCwgeDIxLCB4 MjIsIHgyMywgeDI0LCB4MjUsIHgyNiwgeDI3LCB4MjgsIHgyOSwgeDMwLCB4MzEgfAorLSAgICAg ICAgRnJvbTogdTh4MzIgfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3Igd2l0aCAzMiBg dTE2YCBsYW5lcy4KKy0pOworLWltcGxfbSEoW20xNjsgMzJdOiBtMTZ4MzIgfCBpMTYsIHUzMiB8 IHRlc3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4 LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSwKKy0gICAgICAgIHgxNiwgeDE3LCB4 MTgsIHgxOSwgeDIwLCB4MjEsIHgyMiwgeDIzLCB4MjQsIHgyNSwgeDI2LCB4MjcsIHgyOCwgeDI5 LCB4MzAsIHgzMSB8CistICAgICAgICBGcm9tOiBtOHgzMiB8CistICAgICAgICAvLy8gQSA1MTIt Yml0IHZlY3RvciBtYXNrIHdpdGggMzIgYG0xNmAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtp MzI7IDE2XTogaTMyeDE2LCBtMzJ4MTYgfCBpMzIsIHUxNiB8IHRlc3RfdjUxMiB8CistICAgICAg ICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwg eDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiBpOHgxNiwgdTh4MTYsIGkxNngxNiwgdTE2 eDE2IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYgYGkzMmAgbGFuZXMu CistKTsKKy1pbXBsX3UhKFt1MzI7IDE2XTogdTMyeDE2LCBtMzJ4MTYgfCB1MzIsIHUxNiB8IHRl c3RfdjUxMiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4 OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNSB8CistICAgICAgICBGcm9tOiB1OHgxNiwg dTE2eDE2IHwKKy0gICAgICAgIC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggMTYgYHUzMmAgbGFu ZXMuCistKTsKKy1pbXBsX2YhKFtmMzI7IDE2XTogZjMyeDE2LCBtMzJ4MTYgfCBmMzIgfCB0ZXN0 X3Y1MTIgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3LCB4OCwgeDks IHgxMCwgeDExLCB4MTIsIHgxMywgeDE0LCB4MTUgfAorLSAgICAgICAgRnJvbTogaTh4MTYsIHU4 eDE2LCBpMTZ4MTYsIHUxNngxNiB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRo IDE2IGBmMzJgIGxhbmVzLgorLSk7CistaW1wbF9tIShbbTMyOyAxNl06IG0zMngxNiB8IGkzMiwg dTE2IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4 NywgeDgsIHg5LCB4MTAsIHgxMSwgeDEyLCB4MTMsIHgxNCwgeDE1IHwKKy0gICAgICAgIEZyb206 IG04eDE2LCBtMTZ4MTYgfAorLSAgICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRo IDE2IGBtMzJgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShbaTY0OyA4XTogaTY0eDgsIG02NHg4 IHwgaTY0LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8 CistICAgICAgICBGcm9tOiBpOHg4LCB1OHg4LCBpMTZ4OCwgdTE2eDgsIGkzMng4LCB1MzJ4OCB8 CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYGk2NGAgbGFuZXMuCistKTsK Ky1pbXBsX3UhKFt1NjQ7IDhdOiB1NjR4OCwgbTY0eDggfCB1NjQsIHU4IHwgdGVzdF92NTEyIHwg eDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0gICAgICAgIEZyb206IHU4eDgsIHUx Nng4LCB1MzJ4OCB8CistICAgICAgICAvLy8gQSA1MTItYml0IHZlY3RvciB3aXRoIDggYHU2NGAg bGFuZXMuCistKTsKKy1pbXBsX2YhKFtmNjQ7IDhdOiBmNjR4OCwgbTY0eDggfCBmNjQgfCB0ZXN0 X3Y1MTIgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTog aTh4OCwgdTh4OCwgaTE2eDgsIHUxNng4LCBpMzJ4OCwgdTMyeDgsIGYzMng4IHwKKy0gICAgICAg IC8vLyBBIDUxMi1iaXQgdmVjdG9yIHdpdGggOCBgZjY0YCBsYW5lcy4KKy0pOworLWltcGxfbSEo W202NDsgOF06IG02NHg4IHwgaTY0LCB1OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiBtOHg4LCBtMTZ4OCwgbTMyeDggfAorLSAg ICAgICAgLy8vIEEgNTEyLWJpdCB2ZWN0b3IgbWFzayB3aXRoIDggYG02NGAgbGFuZXMuCistKTsK Ky0KKy1pbXBsX2khKFtpMTI4OyA0XTogaTEyOHg0LCBtMTI4eDQgfCBpMTI4LCB1OCB8IHRlc3Rf djUxMiB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IGk4eDQsIHU4eDQsIGkxNng0 LCB1MTZ4NCwgaTMyeDQsIHUzMng0LCBpNjR4NCwgdTY0eDQgfAorLSAgICAgICAgLy8vIEEgNTEy LWJpdCB2ZWN0b3Igd2l0aCA0IGBpMTI4YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3UxMjg7IDRd OiB1MTI4eDQsIG0xMjh4NCB8IHUxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMg fAorLSAgICAgICAgRnJvbTogdTh4NCwgdTE2eDQsIHUzMng0LCB1NjR4NCB8CistICAgICAgICAv Ly8gQSA1MTItYml0IHZlY3RvciB3aXRoIDQgYHUxMjhgIGxhbmVzLgorLSk7CistaW1wbF9tIShb bTEyODsgNF06IG0xMjh4NCB8IGkxMjgsIHU4IHwgdGVzdF92NTEyIHwgeDAsIHgxLCB4MiwgeDMg fAorLSAgICAgICAgRnJvbTogbTh4NCwgbTE2eDQsIG0zMng0LCBtNjR4NCB8CistICAgICAgICAv Ly8gQSA1MTItYml0IHZlY3RvciBtYXNrIHdpdGggNCBgbTEyOGAgbGFuZXMuCistKTsKK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMgYi90aGlyZF9w YXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92NjQucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9zcmMvdjY0LnJzCisrKysgL2Rl di9udWxsCitAQCAtMSw2NiArMCwwIEBACistLy8hIDY0LWJpdCB3aWRlIHZlY3RvciB0eXBlcwor LSNbcnVzdGZtdDo6c2tpcF0KKy0KKy11c2Ugc3VwZXI6Oio7CistCistaW1wbF9pIShbaTg7IDhd OiBpOHg4LCBtOHg4IHwgaTgsIHU4IHwgdGVzdF92NjQgfCB4MCwgeDEsIHgyLCB4MywgeDQsIHg1 LCB4NiwgeDcgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3Rv ciB3aXRoIDggYGk4YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U4OyA4XTogdTh4OCwgbTh4OCB8 IHU4LCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMsIHg0LCB4NSwgeDYsIHg3IHwKKy0g ICAgICAgIEZyb206IHwKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2ZWN0b3Igd2l0aCA4IGB1OGAg bGFuZXMuCistKTsKKy1pbXBsX20hKFttODsgOF06IG04eDggfCBpOCwgdTggfCB0ZXN0X3Y2NCB8 IHgwLCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiBtMTZ4OCwg bTMyeDggfAorLSAgICAgICAgLy8vIEEgNjQtYml0IHZlY3RvciBtYXNrIHdpdGggOCBgbThgIGxh bmVzLgorLSk7CistCistaW1wbF9pIShbaTE2OyA0XTogaTE2eDQsIG0xNng0IHwgaTE2LCB1OCB8 IHRlc3RfdjY0IHwgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogaTh4NCwgdTh4NCB8 CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggNCBgaTE2YCBsYW5lcy4KKy0pOwor LWltcGxfdSEoW3UxNjsgNF06IHUxNng0LCBtMTZ4NCB8IHUxNiwgdTggfCB0ZXN0X3Y2NCB8IHgw LCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZyb206IHU4eDQgfAorLSAgICAgICAgLy8vIEEgNjQt Yml0IHZlY3RvciB3aXRoIDQgYHUxNmAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttMTY7IDRdOiBt MTZ4NCB8IGkxNiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSwgeDIsIHgzIHwKKy0gICAgICAgIEZy b206IG04eDQsIG0zMng0LCBtNjR4NCB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIG1h c2sgd2l0aCA0IGBtMTZgIGxhbmVzLgorLSk7CistCistaW1wbF9pIShbaTMyOyAyXTogaTMyeDIs IG0zMngyIHwgaTMyLCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgxIHwKKy0gICAgICAgIEZyb206IGk4 eDIsIHU4eDIsIGkxNngyLCB1MTZ4MiB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdp dGggMiBgaTMyYCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3UzMjsgMl06IHUzMngyLCBtMzJ4MiB8 IHUzMiwgdTggfCB0ZXN0X3Y2NCB8IHgwLCB4MSB8CistICAgICAgICBGcm9tOiB1OHgyLCB1MTZ4 MiB8CistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggMiBgdTMyYCBsYW5lcy4KKy0p OworLWltcGxfbSEoW20zMjsgMl06IG0zMngyIHwgaTMyLCB1OCB8IHRlc3RfdjY0IHwgeDAsIHgx IHwKKy0gICAgICAgIEZyb206IG04eDIsIG0xNngyLCBtNjR4MiwgbTEyOHgyIHwKKy0gICAgICAg IC8vLyBBIDY0LWJpdCB2ZWN0b3IgbWFzayB3aXRoIDIgYG0zMmAgbGFuZXMuCistKTsKKy1pbXBs X2YhKFtmMzI7IDJdOiBmMzJ4MiwgbTMyeDIgfCBmMzIgfCB0ZXN0X3Y2NCB8IHgwLCB4MSB8Cist ICAgICAgICBGcm9tOiBpOHgyLCB1OHgyLCBpMTZ4MiwgdTE2eDIgfAorLSAgICAgICAgLy8vIEEg NjQtYml0IHZlY3RvciB3aXRoIDIgYGYzMmAgbGFuZXMuCistKTsKKy0KKy0vKgorLWltcGxfaSEo W2k2NDsgMV06IGk2NHgxLCBtNjR4MSB8IGk2NCwgdTggfCB0ZXN0X3Y2NCB8IHgwIHwKKy0gICAg ICAgIEZyb206IC8qaTh4MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBpMzJ4MSwgdTMyeDEqLyB8ICAv LyBGSVhNRTogcHJpbWl0aXZlIHRvIHZlY3RvciBjb252ZXJzaW9uCistICAgICAgICAvLy8gQSA2 NC1iaXQgdmVjdG9yIHdpdGggMSBgaTY0YCBsYW5lcy4KKy0pOworLWltcGxfdSEoW3U2NDsgMV06 IHU2NHgxLCBtNjR4MSB8IHU2NCwgdTggfCB0ZXN0X3Y2NCB8IHgwIHwKKy0gICAgICAgIEZyb206 IC8qdTh4MSwgdTE2eDEsIHUzMngxKi8gfCAvLyBGSVhNRTogcHJpbWl0aXZlIHRvIHZlY3RvciBj b252ZXJzaW9uCistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdpdGggMSBgdTY0YCBsYW5l cy4KKy0pOworLWltcGxfbSEoW202NDsgMV06IG02NHgxIHwgaTY0LCB1OCB8IHRlc3RfdjY0IHwg eDAgfAorLSAgICAgICAgRnJvbTogLyptOHgxLCBtMTZ4MSwgbTMyeDEsICovIG0xMjh4MSB8IC8v IEZJWE1FOiB1bmFyeSBzbWFsbCB2ZWN0b3IgdHlwZXMKKy0gICAgICAgIC8vLyBBIDY0LWJpdCB2 ZWN0b3IgbWFzayB3aXRoIDEgYG02NGAgbGFuZXMuCistKTsKKy1pbXBsX2YhKFtmNjQ7IDFdOiBm NjR4MSwgbTY0eDEgfCBmNjQgfCB0ZXN0X3Y2NCB8IHgwIHwKKy0gICAgICAgIEZyb206IC8qaTh4 MSwgdTh4MSwgaTE2eDEsIHUxNngxLCBpMzJ4MSwgdTMyeDEsIGYzMngxKi8gfCAvLyBGSVhNRTog dW5hcnkgc21hbGwgdmVjdG9yIHR5cGVzCistICAgICAgICAvLy8gQSA2NC1iaXQgdmVjdG9yIHdp dGggMSBgZjY0YCBsYW5lcy4KKy0pOworLSovCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQv c3JjL3ZQdHIucnMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAorLS0tIGEvdGhpcmRfcGFydHkv cnVzdC9wYWNrZWRfc2ltZC9zcmMvdlB0ci5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsMzQgKzAs MCBAQAorLS8vISBWZWN0b3JzIG9mIHBvaW50ZXJzCistI1tydXN0Zm10Ojpza2lwXQorLQorLXVz ZSBjcmF0ZTo6KjsKKy0KKy1pbXBsX2NvbnN0X3AhKAorLSAgICBbKmNvbnN0IFQ7IDJdOiBjcHRy eDIsIG1zaXpleDIsIHVzaXpleDIsIGlzaXpleDIgfCB0ZXN0X3YxMjggfCB4MCwgeDEgfCBGcm9t OiB8CistICAgIC8vLyBBIHZlY3RvciB3aXRoIDIgYCpjb25zdCBUYCBsYW5lcworLSk7CistCist aW1wbF9tdXRfcCEoCistICAgIFsqbXV0IFQ7IDJdOiBtcHRyeDIsIG1zaXpleDIsIHVzaXpleDIs IGlzaXpleDIgfCB0ZXN0X3YxMjggfCB4MCwgeDEgfCBGcm9tOiB8CistICAgIC8vLyBBIHZlY3Rv ciB3aXRoIDIgYCptdXQgVGAgbGFuZXMKKy0pOworLQorLWltcGxfY29uc3RfcCEoCistICAgIFsq Y29uc3QgVDsgNF06IGNwdHJ4NCwgbXNpemV4NCwgdXNpemV4NCwgaXNpemV4NCB8IHRlc3RfdjI1 NiB8IHgwLCB4MSwgeDIsIHgzIHwgRnJvbTogfAorLSAgICAvLy8gQSB2ZWN0b3Igd2l0aCA0IGAq Y29uc3QgVGAgbGFuZXMKKy0pOworLQorLWltcGxfbXV0X3AhKAorLSAgICBbKm11dCBUOyA0XTog bXB0cng0LCBtc2l6ZXg0LCB1c2l6ZXg0LCBpc2l6ZXg0IHwgdGVzdF92MjU2IHwgeDAsIHgxLCB4 MiwgeDMgfCBGcm9tOiB8CistICAgIC8vLyBBIHZlY3RvciB3aXRoIDQgYCptdXQgVGAgbGFuZXMK Ky0pOworLQorLWltcGxfY29uc3RfcCEoCistICAgIFsqY29uc3QgVDsgOF06IGNwdHJ4OCwgbXNp emV4OCwgdXNpemV4OCwgaXNpemV4OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4NCwg eDUsIHg2LCB4NyB8IEZyb206IHwKKy0gICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgKmNvbnN0IFRg IGxhbmVzCistKTsKKy0KKy1pbXBsX211dF9wISgKKy0gICAgWyptdXQgVDsgOF06IG1wdHJ4OCwg bXNpemV4OCwgdXNpemV4OCwgaXNpemV4OCB8IHRlc3RfdjUxMiB8IHgwLCB4MSwgeDIsIHgzLCB4 NCwgeDUsIHg2LCB4NyB8IEZyb206IHwKKy0gICAgLy8vIEEgdmVjdG9yIHdpdGggOCBgKm11dCBU YCBsYW5lcworLSk7CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9wYWNrZWRfc2ltZC9z cmMvdlNpemUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3NyYy92U2l6ZS5ycwor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9z aW1kL3NyYy92U2l6ZS5ycworKysrIC9kZXYvbnVsbAorQEAgLTEsNTMgKzAsMCBAQAorLS8vISBW ZWN0b3JzIHdpdGggcG9pbnRlci1zaXplZCBlbGVtZW50cworLQorLXVzZSBjcmF0ZTo6Y29kZWdl bjo6cG9pbnRlcl9zaXplZF9pbnQ6Ontpc2l6ZV8sIHVzaXplX307CistdXNlIGNyYXRlOjoqOwor LQorLWltcGxfaSEoW2lzaXplOyAyXTogaXNpemV4MiwgbXNpemV4MiB8IGlzaXplXywgdTggfCB0 ZXN0X3YxMjggfAorLSAgICAgICAgeDAsIHgxfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAg Ly8vIEEgdmVjdG9yIHdpdGggMiBgaXNpemVgIGxhbmVzLgorLSk7CistCistaW1wbF91IShbdXNp emU7IDJdOiB1c2l6ZXgyLCBtc2l6ZXgyIHwgdXNpemVfLCB1OCB8IHRlc3RfdjEyOCB8CistICAg ICAgICB4MCwgeDF8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8gQSB2ZWN0b3Igd2l0 aCAyIGB1c2l6ZWAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttc2l6ZTsgMl06IG1zaXpleDIgfCBp c2l6ZV8sIHU4IHwgdGVzdF92MTI4IHwKKy0gICAgICAgIHgwLCB4MSB8CistICAgICAgICBGcm9t OiB8CistICAgICAgICAvLy8gQSB2ZWN0b3IgbWFzayB3aXRoIDIgYG1zaXplYCBsYW5lcy4KKy0p OworLQorLWltcGxfaSEoW2lzaXplOyA0XTogaXNpemV4NCwgbXNpemV4NCB8IGlzaXplXywgdTgg fCB0ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgxLCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTog fAorLSAgICAgICAgLy8vIEEgdmVjdG9yIHdpdGggNCBgaXNpemVgIGxhbmVzLgorLSk7CistaW1w bF91IShbdXNpemU7IDRdOiB1c2l6ZXg0LCBtc2l6ZXg0IHwgdXNpemVfLCB1OCB8IHRlc3RfdjI1 NiB8CistICAgICAgICB4MCwgeDEsIHgyLCB4M3wKKy0gICAgICAgIEZyb206IHwKKy0gICAgICAg IC8vLyBBIHZlY3RvciB3aXRoIDQgYHVzaXplYCBsYW5lcy4KKy0pOworLWltcGxfbSEoW21zaXpl OyA0XTogbXNpemV4NCB8IGlzaXplXywgdTggfCB0ZXN0X3YyNTYgfAorLSAgICAgICAgeDAsIHgx LCB4MiwgeDMgfAorLSAgICAgICAgRnJvbTogfAorLSAgICAgICAgLy8vIEEgdmVjdG9yIG1hc2sg d2l0aCA0IGBtc2l6ZWAgbGFuZXMuCistKTsKKy0KKy1pbXBsX2khKFtpc2l6ZTsgOF06IGlzaXpl eDgsIG1zaXpleDggfCBpc2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4MSwg eDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAvLy8g QSB2ZWN0b3Igd2l0aCA4IGBpc2l6ZWAgbGFuZXMuCistKTsKKy1pbXBsX3UhKFt1c2l6ZTsgOF06 IHVzaXpleDgsIG1zaXpleDggfCB1c2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgw LCB4MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiB8CistICAgICAg ICAvLy8gQSB2ZWN0b3Igd2l0aCA4IGB1c2l6ZWAgbGFuZXMuCistKTsKKy1pbXBsX20hKFttc2l6 ZTsgOF06IG1zaXpleDggfCBpc2l6ZV8sIHU4IHwgdGVzdF92NTEyIHwKKy0gICAgICAgIHgwLCB4 MSwgeDIsIHgzLCB4NCwgeDUsIHg2LCB4NyB8CistICAgICAgICBGcm9tOiB8CistICAgICAgICAv Ly8gQSB2ZWN0b3IgbWFzayB3aXRoIDggYG1zaXplYCBsYW5lcy4KKy0pOworZGlmZiAtLWdpdCBh L3RoaXJkX3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVzcy5ycyBiL3RoaXJk X3BhcnR5L3J1c3QvcGFja2VkX3NpbWQvdGVzdHMvZW5kaWFubmVzcy5ycworZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L3BhY2tlZF9zaW1kL3Rlc3RzL2Vu ZGlhbm5lc3MucnMKKysrKyAvZGV2L251bGwKK0BAIC0xLDI2OCArMCwwIEBACistI1tjZmcodGFy Z2V0X2FyY2ggPSAid2FzbTMyIildCistdXNlIHdhc21fYmluZGdlbl90ZXN0OjoqOworLQorLXVz ZSBwYWNrZWRfc2ltZDo6KjsKKy11c2Ugc3RkOjp7bWVtLCBzbGljZX07CistCistI1tjZmdfYXR0 cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSNbY2ZnX2F0dHIodGFyZ2V0 X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLWZuIGVuZGlhbl9pbmRleGlu ZygpIHsKKy0gICAgbGV0IHYgPSBpMzJ4NDo6bmV3KDAsIDEsIDIsIDMpOworLSAgICBhc3NlcnRf ZXEhKHYuZXh0cmFjdCgwKSwgMCk7CistICAgIGFzc2VydF9lcSEodi5leHRyYWN0KDEpLCAxKTsK Ky0gICAgYXNzZXJ0X2VxISh2LmV4dHJhY3QoMiksIDIpOworLSAgICBhc3NlcnRfZXEhKHYuZXh0 cmFjdCgzKSwgMyk7CistfQorLQorLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20z MiIpLCB0ZXN0KV0KKy0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmlu ZGdlbl90ZXN0KV0KKy1mbiBlbmRpYW5fYml0Y2FzdHMoKSB7CistICAgICNbcnVzdGZtdDo6c2tp cF0KKy0gICAgbGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwg NiwgNywKKy0gICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7Cist ICAgIGxldCB0OiBpMTZ4OCA9IHVuc2FmZSB7IG1lbTo6dHJhbnNtdXRlKHgpIH07CistICAgIGxl dCBlOiBpMTZ4OCA9IGlmIGNmZyEodGFyZ2V0X2VuZGlhbiA9ICJsaXR0bGUiKSB7CistICAgICAg ICBpMTZ4ODo6bmV3KDI1NiwgNzcwLCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0 KQorLSAgICB9IGVsc2UgeworLSAgICAgICAgaTE2eDg6Om5ldygxLCA1MTUsIDEwMjksIDE1NDMs IDIwNTcsIDI1NzEsIDMwODUsIDM1OTkpCistICAgIH07CistICAgIGFzc2VydF9lcSEodCwgZSk7 CistfQorLQorLSNbY2ZnX2F0dHIobm90KHRhcmdldF9hcmNoID0gIndhc20zMiIpLCB0ZXN0KV0K Ky0jW2NmZ19hdHRyKHRhcmdldF9hcmNoID0gIndhc20zMiIsIHdhc21fYmluZGdlbl90ZXN0KV0K Ky1mbiBlbmRpYW5fY2FzdHMoKSB7CistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHgg PSBpOHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAg IDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7CistICAgIGxldCB0OiBpMTZ4 MTYgPSB4LmludG8oKTsgLy8gc2ltZF9jYXN0CistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAg bGV0IGUgPSBpMTZ4MTY6Om5ldygKKy0gICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCist ICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBhc3Nl cnRfZXEhKHQsIGUpOworLX0KKy0KKy0jW2NmZ19hdHRyKG5vdCh0YXJnZXRfYXJjaCA9ICJ3YXNt MzIiKSwgdGVzdCldCistI1tjZmdfYXR0cih0YXJnZXRfYXJjaCA9ICJ3YXNtMzIiLCB3YXNtX2Jp bmRnZW5fdGVzdCldCistZm4gZW5kaWFuX2xvYWRfYW5kX3N0b3JlcygpIHsKKy0gICAgI1tydXN0 Zm10Ojpza2lwXQorLSAgICBsZXQgeCA9IGk4eDE2OjpuZXcoCistICAgICAgICAwLCAxLCAyLCAz LCA0LCA1LCA2LCA3LAorLSAgICAgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKKy0g ICAgKTsKKy0gICAgbGV0IG11dCB5OiBbaTE2OyA4XSA9IFswOyA4XTsKKy0gICAgeC53cml0ZV90 b19zbGljZV91bmFsaWduZWQodW5zYWZlIHsgc2xpY2U6OmZyb21fcmF3X3BhcnRzX211dCgmbXV0 IHkgYXMgKm11dCBfIGFzICptdXQgaTgsIDE2KSB9KTsKKy0KKy0gICAgbGV0IGU6IFtpMTY7IDhd ID0gaWYgY2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKKy0gICAgICAgIFsyNTYsIDc3 MCwgMTI4NCwgMTc5OCwgMjMxMiwgMjgyNiwgMzM0MCwgMzg1NF0KKy0gICAgfSBlbHNlIHsKKy0g ICAgICAgIFsxLCA1MTUsIDEwMjksIDE1NDMsIDIwNTcsIDI1NzEsIDMwODUsIDM1OTldCistICAg IH07CistICAgIGFzc2VydF9lcSEoeSwgZSk7CistCistICAgIGxldCB6ID0gaTh4MTY6OmZyb21f c2xpY2VfdW5hbGlnbmVkKHVuc2FmZSB7IHNsaWNlOjpmcm9tX3Jhd19wYXJ0cygmeSBhcyAqY29u c3QgXyBhcyAqY29uc3QgaTgsIDE2KSB9KTsKKy0gICAgYXNzZXJ0X2VxISh6LCB4KTsKKy19Cist CistI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiksIHRlc3QpXQorLSNbY2Zn X2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5kZ2VuX3Rlc3QpXQorLWZuIGVu ZGlhbl9hcnJheV91bmlvbigpIHsKKy0gICAgdW5pb24gQSB7CistICAgICAgICBkYXRhOiBbZjMy OyA0XSwKKy0gICAgICAgIHZlYzogZjMyeDQsCistICAgIH0KKy0gICAgbGV0IHg6IFtmMzI7IDRd ID0gdW5zYWZlIHsgQSB7IHZlYzogZjMyeDQ6Om5ldygwLiwgMS4sIDIuLCAzLikgfS5kYXRhIH07 CistICAgIC8vIEFzIGFsbCBvZiB0aGVzZSBhcmUgaW50ZWdlciB2YWx1ZXMgd2l0aGluIHRoZSBt YW50aXNzYV4xIHJhbmdlLCBpdAorLSAgICAvLyB3b3VsZCBiZSB2ZXJ5IHVudXN1YWwgZm9yIHRo ZW0gdG8gYWN0dWFsbHkgZmFpbCB0byBjb21wYXJlLgorLSAgICAjW2FsbG93KGNsaXBweTo6Zmxv YXRfY21wKV0KKy0gICAgeworLSAgICAgICAgYXNzZXJ0X2VxISh4WzBdLCAwX2YzMik7CistICAg ICAgICBhc3NlcnRfZXEhKHhbMV0sIDFfZjMyKTsKKy0gICAgICAgIGFzc2VydF9lcSEoeFsyXSwg Ml9mMzIpOworLSAgICAgICAgYXNzZXJ0X2VxISh4WzNdLCAzX2YzMik7CistICAgIH0KKy0gICAg bGV0IHk6IGYzMng0ID0gdW5zYWZlIHsgQSB7IGRhdGE6IFszLiwgMi4sIDEuLCAwLl0gfS52ZWMg fTsKKy0gICAgYXNzZXJ0X2VxISh5LCBmMzJ4NDo6bmV3KDMuLCAyLiwgMS4sIDAuKSk7CistCist ICAgIHVuaW9uIEIgeworLSAgICAgICAgZGF0YTogW2k4OyAxNl0sCistICAgICAgICB2ZWM6IGk4 eDE2LAorLSAgICB9CistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHggPSBpOHgxNjo6 bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgsIDksIDEw LCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7CistICAgIGxldCB4OiBbaTg7IDE2XSA9IHVu c2FmZSB7IEIgeyB2ZWM6IHggfS5kYXRhIH07CistCistICAgIGZvciAoaSwgdikgaW4geC5pdGVy KCkuZW51bWVyYXRlKCkgeworLSAgICAgICAgYXNzZXJ0X2VxIShpIGFzIGk4LCAqdik7CistICAg IH0KKy0KKy0gICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgeSA9IFsKKy0gICAgICAgIDE1 LCAxNCwgMTMsIDEyLCAxMSwgMTksIDksIDgsCistICAgICAgICA3LCA2LCA1LCA0LCAzLCAyLCAx LCAwCistICAgIF07CistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IGUgPSBpOHgxNjo6 bmV3KAorLSAgICAgICAgMTUsIDE0LCAxMywgMTIsIDExLCAxOSwgOSwgOCwKKy0gICAgICAgIDcs IDYsIDUsIDQsIDMsIDIsIDEsIDAKKy0gICAgKTsKKy0gICAgbGV0IHogPSB1bnNhZmUgeyBCIHsg ZGF0YTogeSB9LnZlYyB9OworLSAgICBhc3NlcnRfZXEhKHosIGUpOworLQorLSAgICB1bmlvbiBD IHsKKy0gICAgICAgIGRhdGE6IFtpMTY7IDhdLAorLSAgICAgICAgdmVjOiBpOHgxNiwKKy0gICAg fQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCB4ID0gaTh4MTY6Om5ldygKKy0gICAg ICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAgICAgICA4LCA5LCAxMCwgMTEsIDEyLCAx MywgMTQsIDE1LAorLSAgICApOworLSAgICBsZXQgeDogW2kxNjsgOF0gPSB1bnNhZmUgeyBDIHsg dmVjOiB4IH0uZGF0YSB9OworLQorLSAgICBsZXQgZTogW2kxNjsgOF0gPSBpZiBjZmchKHRhcmdl dF9lbmRpYW4gPSAibGl0dGxlIikgeworLSAgICAgICAgWzI1NiwgNzcwLCAxMjg0LCAxNzk4LCAy MzEyLCAyODI2LCAzMzQwLCAzODU0XQorLSAgICB9IGVsc2UgeworLSAgICAgICAgWzEsIDUxNSwg MTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5OV0KKy0gICAgfTsKKy0gICAgYXNzZXJ0 X2VxISh4LCBlKTsKKy19CistCistI1tjZmdfYXR0cihub3QodGFyZ2V0X2FyY2ggPSAid2FzbTMy IiksIHRlc3QpXQorLSNbY2ZnX2F0dHIodGFyZ2V0X2FyY2ggPSAid2FzbTMyIiwgd2FzbV9iaW5k Z2VuX3Rlc3QpXQorLWZuIGVuZGlhbl90dXBsZV9hY2Nlc3MoKSB7CistICAgIHR5cGUgRjMyeDRU ID0gKGYzMiwgZjMyLCBmMzIsIGYzMik7CistICAgIHVuaW9uIEEgeworLSAgICAgICAgZGF0YTog RjMyeDRULAorLSAgICAgICAgdmVjOiBmMzJ4NCwKKy0gICAgfQorLSAgICBsZXQgeDogRjMyeDRU ID0gdW5zYWZlIHsgQSB7IHZlYzogZjMyeDQ6Om5ldygwLiwgMS4sIDIuLCAzLikgfS5kYXRhIH07 CistICAgIC8vIEFzIGFsbCBvZiB0aGVzZSBhcmUgaW50ZWdlciB2YWx1ZXMgd2l0aGluIHRoZSBt YW50aXNzYV4xIHJhbmdlLCBpdAorLSAgICAvLyB3b3VsZCBiZSB2ZXJ5IHVudXN1YWwgZm9yIHRo ZW0gdG8gYWN0dWFsbHkgZmFpbCB0byBjb21wYXJlLgorLSAgICAjW2FsbG93KGNsaXBweTo6Zmxv YXRfY21wKV0KKy0gICAgeworLSAgICAgICAgYXNzZXJ0X2VxISh4LjAsIDBfZjMyKTsKKy0gICAg ICAgIGFzc2VydF9lcSEoeC4xLCAxX2YzMik7CistICAgICAgICBhc3NlcnRfZXEhKHguMiwgMl9m MzIpOworLSAgICAgICAgYXNzZXJ0X2VxISh4LjMsIDNfZjMyKTsKKy0gICAgfQorLSAgICBsZXQg eTogZjMyeDQgPSB1bnNhZmUgeyBBIHsgZGF0YTogKDMuLCAyLiwgMS4sIDAuKSB9LnZlYyB9Owor LSAgICBhc3NlcnRfZXEhKHksIGYzMng0OjpuZXcoMy4sIDIuLCAxLiwgMC4pKTsKKy0KKy0gICAg I1tydXN0Zm10Ojpza2lwXQorLSAgICB0eXBlIEk4eDE2VCA9IChpOCwgaTgsIGk4LCBpOCwgaTgs IGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCwgaTgsIGk4LCBpOCk7CistICAgIHVuaW9u IEIgeworLSAgICAgICAgZGF0YTogSTh4MTZULAorLSAgICAgICAgdmVjOiBpOHgxNiwKKy0gICAg fQorLQorLSAgICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCB4ID0gaTh4MTY6Om5ldygKKy0g ICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsCistICAgICAgICA4LCA5LCAxMCwgMTEsIDEy LCAxMywgMTQsIDE1LAorLSAgICApOworLSAgICBsZXQgeDogSTh4MTZUID0gdW5zYWZlIHsgQiB7 IHZlYzogeCB9LmRhdGEgfTsKKy0KKy0gICAgYXNzZXJ0X2VxISh4LjAsIDApOworLSAgICBhc3Nl cnRfZXEhKHguMSwgMSk7CistICAgIGFzc2VydF9lcSEoeC4yLCAyKTsKKy0gICAgYXNzZXJ0X2Vx ISh4LjMsIDMpOworLSAgICBhc3NlcnRfZXEhKHguNCwgNCk7CistICAgIGFzc2VydF9lcSEoeC41 LCA1KTsKKy0gICAgYXNzZXJ0X2VxISh4LjYsIDYpOworLSAgICBhc3NlcnRfZXEhKHguNywgNyk7 CistICAgIGFzc2VydF9lcSEoeC44LCA4KTsKKy0gICAgYXNzZXJ0X2VxISh4LjksIDkpOworLSAg ICBhc3NlcnRfZXEhKHguMTAsIDEwKTsKKy0gICAgYXNzZXJ0X2VxISh4LjExLCAxMSk7CistICAg IGFzc2VydF9lcSEoeC4xMiwgMTIpOworLSAgICBhc3NlcnRfZXEhKHguMTMsIDEzKTsKKy0gICAg YXNzZXJ0X2VxISh4LjE0LCAxNCk7CistICAgIGFzc2VydF9lcSEoeC4xNSwgMTUpOworLQorLSAg ICAjW3J1c3RmbXQ6OnNraXBdCistICAgIGxldCB5ID0gKAorLSAgICAgICAgMTUsIDE0LCAxMywg MTIsIDExLCAxMCwgOSwgOCwKKy0gICAgICAgIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAKKy0gICAg KTsKKy0gICAgbGV0IHo6IGk4eDE2ID0gdW5zYWZlIHsgQiB7IGRhdGE6IHkgfS52ZWMgfTsKKy0g ICAgI1tydXN0Zm10Ojpza2lwXQorLSAgICBsZXQgZSA9IGk4eDE2OjpuZXcoCistICAgICAgICAx NSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAorLSAgICAgICAgNywgNiwgNSwgNCwgMywgMiwg MSwgMAorLSAgICApOworLSAgICBhc3NlcnRfZXEhKGUsIHopOworLQorLSAgICAjW3J1c3RmbXQ6 OnNraXBdCistICAgIHR5cGUgSTE2eDhUID0gKGkxNiwgaTE2LCBpMTYsIGkxNiwgaTE2LCBpMTYs IGkxNiwgaTE2KTsKKy0gICAgdW5pb24gQyB7CistICAgICAgICBkYXRhOiBJMTZ4OFQsCistICAg ICAgICB2ZWM6IGk4eDE2LAorLSAgICB9CistCistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAg bGV0IHggPSBpOHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0g ICAgICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7CistICAgIGxldCB4 OiBJMTZ4OFQgPSB1bnNhZmUgeyBDIHsgdmVjOiB4IH0uZGF0YSB9OworLQorLSAgICBsZXQgZTog W2kxNjsgOF0gPSBpZiBjZmchKHRhcmdldF9lbmRpYW4gPSAibGl0dGxlIikgeworLSAgICAgICAg WzI1NiwgNzcwLCAxMjg0LCAxNzk4LCAyMzEyLCAyODI2LCAzMzQwLCAzODU0XQorLSAgICB9IGVs c2UgeworLSAgICAgICAgWzEsIDUxNSwgMTAyOSwgMTU0MywgMjA1NywgMjU3MSwgMzA4NSwgMzU5 OV0KKy0gICAgfTsKKy0gICAgYXNzZXJ0X2VxISh4LjAsIGVbMF0pOworLSAgICBhc3NlcnRfZXEh KHguMSwgZVsxXSk7CistICAgIGFzc2VydF9lcSEoeC4yLCBlWzJdKTsKKy0gICAgYXNzZXJ0X2Vx ISh4LjMsIGVbM10pOworLSAgICBhc3NlcnRfZXEhKHguNCwgZVs0XSk7CistICAgIGFzc2VydF9l cSEoeC41LCBlWzVdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjYsIGVbNl0pOworLSAgICBhc3NlcnRf ZXEhKHguNywgZVs3XSk7CistCistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgI1tyZXByKEMp XQorLSAgICAjW2Rlcml2ZShDb3B5ICxDbG9uZSldCistICAgIHB1YiBzdHJ1Y3QgVHVwKHB1YiBp OCwgcHViIGk4LCBwdWIgaTE2LCBwdWIgaTgsIHB1YiBpOCwgcHViIGkxNiwKKy0gICAgICAgICAg ICAgICAgICAgcHViIGk4LCBwdWIgaTgsIHB1YiBpMTYsIHB1YiBpOCwgcHViIGk4LCBwdWIgaTE2 KTsKKy0KKy0gICAgdW5pb24gRCB7CistICAgICAgICBkYXRhOiBUdXAsCistICAgICAgICB2ZWM6 IGk4eDE2LAorLSAgICB9CistCistICAgICNbcnVzdGZtdDo6c2tpcF0KKy0gICAgbGV0IHggPSBp OHgxNjo6bmV3KAorLSAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKKy0gICAgICAgIDgs IDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsCistICAgICk7CistICAgIGxldCB4OiBUdXAgPSB1 bnNhZmUgeyBEIHsgdmVjOiB4IH0uZGF0YSB9OworLQorLSAgICBsZXQgZTogW2kxNjsgMTJdID0g aWYgY2ZnISh0YXJnZXRfZW5kaWFuID0gImxpdHRsZSIpIHsKKy0gICAgICAgIFswLCAxLCA3NzAs IDQsIDUsIDE3OTgsIDgsIDksIDI4MjYsIDEyLCAxMywgMzg1NF0KKy0gICAgfSBlbHNlIHsKKy0g ICAgICAgIFswLCAxLCA1MTUsIDQsIDUsIDE1NDMsIDgsIDksIDI1NzEsIDEyLCAxMywgMzU5OV0K Ky0gICAgfTsKKy0gICAgYXNzZXJ0X2VxISh4LjAgYXMgaTE2LCBlWzBdKTsKKy0gICAgYXNzZXJ0 X2VxISh4LjEgYXMgaTE2LCBlWzFdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjIgYXMgaTE2LCBlWzJd KTsKKy0gICAgYXNzZXJ0X2VxISh4LjMgYXMgaTE2LCBlWzNdKTsKKy0gICAgYXNzZXJ0X2VxISh4 LjQgYXMgaTE2LCBlWzRdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjUgYXMgaTE2LCBlWzVdKTsKKy0g ICAgYXNzZXJ0X2VxISh4LjYgYXMgaTE2LCBlWzZdKTsKKy0gICAgYXNzZXJ0X2VxISh4LjcgYXMg aTE2LCBlWzddKTsKKy0gICAgYXNzZXJ0X2VxISh4LjggYXMgaTE2LCBlWzhdKTsKKy0gICAgYXNz ZXJ0X2VxISh4LjkgYXMgaTE2LCBlWzldKTsKKy0gICAgYXNzZXJ0X2VxISh4LjEwIGFzIGkxNiwg ZVsxMF0pOworLSAgICBhc3NlcnRfZXEhKHguMTEgYXMgaTE2LCBlWzExXSk7CistfQorZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNv biBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbgor bmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1 c3QvdmVyc2lvbl9jaGVjay8uY2FyZ28tY2hlY2tzdW0uanNvbgorQEAgLTAsMCArMSwxIEBACisr eyJmaWxlcyI6eyJDYXJnby50b21sIjoiZjI1ZDg4MDQ0OTE0Y2IzNDY2ZGY0M2JjMzlhMTk5ZTE1 ODlkZGExYWFkMzIyNmM5YzdlN2FjNGQyZjg3NTFkMCIsIkxJQ0VOU0UtQVBBQ0hFIjoiYTYwZWVh ODE3NTE0NTMxNjY4ZDdlMDA3NjU3MzE0NDlmZTE0ZDA1OWQzMjQ5ZTBiYzkzYjM2ZGU0NWY3NTlm MiIsIkxJQ0VOU0UtTUlUIjoiYjdlNjUwZjNmY2U1YzUzMjQ5ZDFjZGM2MDhiNTRkZjE1NmE5N2Vk ZDYzNmNmOWQyMzQ5OGQwY2ZlN2FlYzYzZSIsIlJFQURNRS5tZCI6ImFjMmEwYTM2MDgxMjQzNmJk NTc5OGY1ZmUyYWZmZTdkNmVkOWViN2YxNWQ2ZTRkNzM5MzFlOTViNDM3NTYwZjIiLCJzcmMvY2hh bm5lbC5ycyI6ImQyNDQzZDUwM2Q0Y2M0NjlhMTcxYTUxYTI2ZWNhM2VjMGQyYTU4YjVmNzM3NWE4 NDU0MmMzNmYxNDIxNzY2YTgiLCJzcmMvZGF0ZS5ycyI6IjA5NTgwYTBhMjAwOGZhZDJjY2JjNDNm YjQyYTg4ZjQyMjIxYjk4YjAxNjkyNzAyMDIyYTI5NmRjOWM4NmJmMzciLCJzcmMvbGliLnJzIjoi NzYwZjBkMjk1NjdlY2FhNjEyODcwODhjZjIzY2Y3NGIzYzBlZmJiY2QzMDc3Y2VhNWZiN2M4ODM1 OWU5NmM3ZSIsInNyYy92ZXJzaW9uLnJzIjoiZGJhMThhMjU5ODNlYzZlMzdiOTUyZjRjZGM1MjE5 YzllNWFiYmEyYzNhNzZjZWY4NzQ2NWUxZmJhNmY4YWM4OSJ9LCJwYWNrYWdlIjoiNDk4NzRiNTE2 N2I2NWQ3MTkzYjhhYmExNTY3ZjVjN2Q5M2QwMDFjYWZjMzQ2MDBjZWUwMDNlZGE3ODdlNDgzZiJ9 CitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3ZlcnNpb25fY2hlY2svQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9j aGVjay9DYXJnby50b21sCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL0NhcmdvLnRvbWwKK0BAIC0wLDAgKzEs MjQgQEAKKysjIFRISVMgRklMRSBJUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCBCWSBDQVJHTwor KyMKKysjIFdoZW4gdXBsb2FkaW5nIGNyYXRlcyB0byB0aGUgcmVnaXN0cnkgQ2FyZ28gd2lsbCBh dXRvbWF0aWNhbGx5CisrIyAibm9ybWFsaXplIiBDYXJnby50b21sIGZpbGVzIGZvciBtYXhpbWFs IGNvbXBhdGliaWxpdHkKKysjIHdpdGggYWxsIHZlcnNpb25zIG9mIENhcmdvIGFuZCBhbHNvIHJl d3JpdGUgYHBhdGhgIGRlcGVuZGVuY2llcworKyMgdG8gcmVnaXN0cnkgKGUuZy4sIGNyYXRlcy5p bykgZGVwZW5kZW5jaWVzLgorKyMKKysjIElmIHlvdSBhcmUgcmVhZGluZyB0aGlzIGZpbGUgYmUg YXdhcmUgdGhhdCB0aGUgb3JpZ2luYWwgQ2FyZ28udG9tbAorKyMgd2lsbCBsaWtlbHkgbG9vayB2 ZXJ5IGRpZmZlcmVudCAoYW5kIG11Y2ggbW9yZSByZWFzb25hYmxlKS4KKysjIFNlZSBDYXJnby50 b21sLm9yaWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KKysKKytbcGFja2FnZV0KKytuYW1l ID0gInZlcnNpb25fY2hlY2siCisrdmVyc2lvbiA9ICIwLjkuNCIKKythdXRob3JzID0gWyJTZXJn aW8gQmVuaXRleiA8c2JAc2VyZ2lvLmJ6PiJdCisrZXhjbHVkZSA9IFsic3RhdGljIl0KKytkZXNj cmlwdGlvbiA9ICJUaW55IGNyYXRlIHRvIGNoZWNrIHRoZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxs ZWQvcnVubmluZyBydXN0Yy4iCisrZG9jdW1lbnRhdGlvbiA9ICJodHRwczovL2RvY3MucnMvdmVy c2lvbl9jaGVjay8iCisrcmVhZG1lID0gIlJFQURNRS5tZCIKKytrZXl3b3JkcyA9IFsidmVyc2lv biIsICJydXN0YyIsICJtaW5pbXVtIiwgImNoZWNrIl0KKytsaWNlbnNlID0gIk1JVC9BcGFjaGUt Mi4wIgorK3JlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL1Nlcmdpb0Jlbml0ZXovdmVy c2lvbl9jaGVjayIKKysKKytbZGVwZW5kZW5jaWVzXQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRSBiL3RoaXJkX3BhcnR5L3J1c3QvdmVy c2lvbl9jaGVjay9MSUNFTlNFLUFQQUNIRQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2 L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLUFQQUNI RQorQEAgLTAsMCArMSwyMDEgQEAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFj aGUgTGljZW5zZQorKyAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5 IDIwMDQKKysgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z ZXMvCisrCisrVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQg RElTVFJJQlVUSU9OCisrCisrMS4gRGVmaW5pdGlvbnMuCisrCisrICAgIkxpY2Vuc2UiIHNoYWxs IG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKysg ICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2Yg dGhpcyBkb2N1bWVudC4KKysKKysgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdo dCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIg dGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKysKKysgICAiTGVnYWwgRW50aXR5IiBzaGFs bCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisrICAgb3RoZXIg ZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNv bW1vbgorKyAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0 aGlzIGRlZmluaXRpb24sCisrICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVj dCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisrICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQg b2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKysgICBvdGhlcndpc2UsIG9y IChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKysg ICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1 Y2ggZW50aXR5LgorKworKyAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZp ZHVhbCBvciBMZWdhbCBFbnRpdHkKKysgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQg YnkgdGhpcyBMaWNlbnNlLgorKworKyAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJl ZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorKyAgIGluY2x1ZGluZyBidXQg bm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKysgICBz b3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorKworKyAgICJPYmplY3QiIGZvcm0gc2hh bGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisrICAgdHJhbnNmb3Jt YXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorKyAg IG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRh dGlvbiwKKysgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisrCisrICAg IldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3Vy Y2Ugb3IKKysgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2Us IGFzIGluZGljYXRlZCBieSBhCisrICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVk IGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisrICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQg aW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKysKKysgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwg bWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisrICAgZm9ybSwgdGhh dCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRo ZQorKyAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9y IG90aGVyIG1vZGlmaWNhdGlvbnMKKysgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdp bmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworKyAgIG9mIHRoaXMgTGlj ZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFp bgorKyAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0 byB0aGUgaW50ZXJmYWNlcyBvZiwKKysgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0 aGVyZW9mLgorKworKyAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0 aG9yc2hpcCwgaW5jbHVkaW5nCisrICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsg YW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworKyAgIHRvIHRoYXQgV29yayBvciBE ZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorKyAgIHN1Ym1p dHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmln aHQgb3duZXIKKysgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3Jp emVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKysgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3Ig dGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKysgICBtZWFucyBh bnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBz ZW50CisrICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGlu ZyBidXQgbm90IGxpbWl0ZWQgdG8KKysgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFp bGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorKyAgIGFuZCBpc3N1ZSB0 cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhl CisrICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmlu ZyB0aGUgV29yaywgYnV0CisrICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25z cGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKysgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcg YnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKysKKysgICAi Q29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExl Z2FsIEVudGl0eQorKyAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVu IHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorKyAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQg d2l0aGluIHRoZSBXb3JrLgorKworKzIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJq ZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgZWFj aCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKysgICB3b3Js ZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJs ZQorKyAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZl IFdvcmtzIG9mLAorKyAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1Ymxp Y2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorKyAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBX b3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisrCisrMy4gR3JhbnQgb2YgUGF0ZW50IExp Y2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBM aWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFs LAorKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUs IGlycmV2b2NhYmxlCisrICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRl bnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisrICAgdXNlLCBvZmZlciB0byBzZWxsLCBz ZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisrICAgd2hlcmUg c3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2Fi bGUKKysgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdl ZCBieSB0aGVpcgorKyAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBv ZiB0aGVpciBDb250cmlidXRpb24ocykKKysgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2gg Q29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorKyAgIGluc3RpdHV0ZSBwYXRl bnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisrICAgY3Jvc3Mt Y2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29y aworKyAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29u c3RpdHV0ZXMgZGlyZWN0CisrICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQs IHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworKyAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMg TGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorKyAgIGFzIG9mIHRoZSBkYXRl IHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKysKKys0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1h eSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorKyAgIFdvcmsgb3IgRGVy aXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorKyAg IG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRo YXQgWW91CisrICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisrCisrICAgKGEpIFlv dSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKysgICAgICAg RGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKysKKysgICAoYikg WW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3Rp Y2VzCisrICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorKwor KyAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZh dGl2ZSBXb3JrcworKyAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBw YXRlbnQsIHRyYWRlbWFyaywgYW5kCisrICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0 aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisrICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3Rp Y2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKysgICAgICAgdGhlIERlcml2 YXRpdmUgV29ya3M7IGFuZAorKworKyAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJ Q0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworKyAgICAgICBkaXN0cmlidXRpb24sIHRoZW4g YW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisrICAgICAgIGlu Y2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5l ZAorKyAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGlj ZXMgdGhhdCBkbyBub3QKKysgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZh dGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisrICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxh Y2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisrICAgICAgIGFzIHBh cnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKysg ICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2 ZSBXb3Jrczsgb3IsCisrICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBE ZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKysgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0 eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisrICAgICAgIG9mIHRoZSBO T1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKysgICAg ICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmli dXRpb24KKysgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBk aXN0cmlidXRlLCBhbG9uZ3NpZGUKKysgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5P VElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisrICAgICAgIHRoYXQgc3VjaCBhZGRp dGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorKyAgICAgICBh cyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisrCisrICAgWW91IG1heSBhZGQgWW91ciBvd24gY29w eXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisrICAgbWF5IHByb3Zp ZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwor KyAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZp Y2F0aW9ucywgb3IKKysgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xl LCBwcm92aWRlZCBZb3VyIHVzZSwKKysgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24g b2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKysgICB0aGUgY29uZGl0aW9ucyBz dGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorKworKzUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9u cy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKysgICBhbnkgQ29udHJp YnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsK KysgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQg Y29uZGl0aW9ucyBvZgorKyAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0 ZXJtcyBvciBjb25kaXRpb25zLgorKyAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhp bmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKysgICB0aGUgdGVybXMgb2YgYW55 IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorKyAgIHdp dGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKysKKys2LiBUcmFkZW1h cmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRy YWRlCisrICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFt ZXMgb2YgdGhlIExpY2Vuc29yLAorKyAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJs ZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorKyAgIG9yaWdpbiBvZiB0aGUg V29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorKwor KzcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxl IGxhdyBvcgorKyAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUg V29yayAoYW5kIGVhY2gKKysgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9u cykgb24gYW4gIkFTIElTIiBCQVNJUywKKysgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU SU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKysgICBpbXBsaWVkLCBpbmNsdWRp bmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworKyAg IG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1Mg Rk9SIEEKKysgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxl IGZvciBkZXRlcm1pbmluZyB0aGUKKysgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVk aXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKysgICByaXNrcyBhc3NvY2lhdGVk IHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisr CisrOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBs ZWdhbCB0aGVvcnksCisrICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSks IGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisrICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi bGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKysgICBuZWdsaWdlbnQgYWN0 cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorKyAg IGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVj dCwgc3BlY2lhbCwKKysgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2Yg YW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKysgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9y IG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisrICAgV29yayAoaW5jbHVk aW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorKyAg IHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBh bmQgYWxsCisrICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYg c3VjaCBDb250cmlidXRvcgorKyAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5 IG9mIHN1Y2ggZGFtYWdlcy4KKysKKys5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25h bCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisrICAgdGhlIFdvcmsgb3IgRGVyaXZh dGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKysgICBhbmQgY2hh cmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5 LAorKyAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNp c3RlbnQgd2l0aCB0aGlzCisrICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2gg b2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKysgICBvbiBZb3VyIG93biBiZWhhbGYgYW5k IG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorKyAgIG9mIGFueSBv dGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKysg ICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFi aWxpdHkKKysgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2gg Q29udHJpYnV0b3IgYnkgcmVhc29uCisrICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2Fy cmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisrCisrRU5EIE9GIFRFUk1TIEFORCBDT05E SVRJT05TCisrCisrQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8g eW91ciB3b3JrLgorKworKyAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdv cmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisrICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRo ZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgorKyAgIHJlcGxhY2VkIHdpdGggeW91 ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCisrICAgdGhlIGJy YWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUK KysgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVu ZCB0aGF0IGEKKysgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBv c2UgYmUgaW5jbHVkZWQgb24gdGhlCisrICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29w eXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisrICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJk LXBhcnR5IGFyY2hpdmVzLgorKworK0NvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0 IG93bmVyXQorKworK0xpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAy LjAgKHRoZSAiTGljZW5zZSIpOworK3lvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu IGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKytZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2Yg dGhlIExpY2Vuc2UgYXQKKysKKysJaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO U0UtMi4wCisrCisrVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0 byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz IGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisrV0lUSE9VVCBXQVJSQU5USUVTIE9S IENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisrU2Vl IHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np b25zIGFuZAorK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVCBiL3RoaXJkX3BhcnR5L3J1 c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1JVAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAv ZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVjay9MSUNFTlNFLU1J VAorQEAgLTAsMCArMSwxOSBAQAorK1RoZSBNSVQgTGljZW5zZSAoTUlUKQorK0NvcHlyaWdodCAo YykgMjAxNy0yMDE4IFNlcmdpbyBCZW5pdGV6CisrCisrUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZgor K3RoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT b2Z0d2FyZSIpLCB0byBkZWFsIGluCisrdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0bworK3VzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNl bGwgY29waWVzIG9mCisrdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLAorK3N1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorKworK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorK2NvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisrCisrVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKKytJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUworK0ZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUgor K0NPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSIExJQUJJTElUWSwgV0hFVEhFUgorK0lOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisrQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FS RS4KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svUkVBRE1FLm1k IGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL1JFQURNRS5tZAorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9j aGVjay9SRUFETUUubWQKK0BAIC0wLDAgKzEsODAgQEAKKysjIHZlcnNpb25cX2NoZWNrCisrCisr WyFbQnVpbGQgU3RhdHVzXShodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVuaXRlei92ZXJzaW9u X2NoZWNrL3dvcmtmbG93cy9DSS9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lv QmVuaXRlei92ZXJzaW9uX2NoZWNrL2FjdGlvbnMpCisrWyFbQ3VycmVudCBDcmF0ZXMuaW8gVmVy c2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9jcmF0ZXMvdi92ZXJzaW9uX2NoZWNrLnN2Zyld KGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy92ZXJzaW9uX2NoZWNrKQorK1shW3J1c3Rkb2NzIG9u IGRvY3MucnNdKGh0dHBzOi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrL2JhZGdlLnN2ZyldKGh0dHBz Oi8vZG9jcy5ycy92ZXJzaW9uX2NoZWNrKQorKworK1RoaXMgdGlueSBjcmF0ZSBjaGVja3MgdGhh dCB0aGUgcnVubmluZyBvciBpbnN0YWxsZWQgYHJ1c3RjYCBtZWV0cyBzb21lIHZlcnNpb24KKyty ZXF1aXJlbWVudHMuIFRoZSB2ZXJzaW9uIGlzIHF1ZXJpZWQgYnkgY2FsbGluZyB0aGUgUnVzdCBj b21waWxlciB3aXRoCisrYC0tdmVyc2lvbmAuIFRoZSBwYXRoIHRvIHRoZSBjb21waWxlciBpcyBk ZXRlcm1pbmVkIGZpcnN0IHZpYSB0aGUgYFJVU1RDYAorK2Vudmlyb25tZW50IHZhcmlhYmxlLiBJ ZiBpdCBpcyBub3Qgc2V0LCB0aGVuIGBydXN0Y2AgaXMgdXNlZC4gSWYgdGhhdCBmYWlscywgbm8K KytkZXRlcm1pbmF0aW9uIGlzIG1hZGUsIGFuZCBjYWxscyByZXR1cm4gYE5vbmVgLgorKworKyMj IFVzYWdlCisrCisrQWRkIHRvIHlvdXIgYENhcmdvLnRvbWxgIGZpbGUsIHR5cGljYWxseSBhcyBh IGJ1aWxkIGRlcGVuZGVuY3k6CisrCisrYGBgdG9tbAorK1tidWlsZC1kZXBlbmRlbmNpZXNdCisr dmVyc2lvbl9jaGVjayA9ICIwLjkiCisrYGBgCisrCisrYHZlcnNpb25fY2hlY2tgIGlzIGNvbXBh dGlibGUgYW5kIGNvbXBpbGVzIHdpdGggUnVzdCAxLjAuMCBhbmQgYmV5b25kLgorKworKyMjIEV4 YW1wbGVzCisrCisrU2V0IGEgYGNmZ2AgZmxhZyBpbiBgYnVpbGQucnNgIGlmIHRoZSBydW5uaW5n IGNvbXBpbGVyIHdhcyBkZXRlcm1pbmVkIHRvIGJlCisrYXQgbGVhc3QgdmVyc2lvbiBgMS4xMy4w YDoKKysKKytgYGBydXN0CisrZXh0ZXJuIGNyYXRlIHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7Cisr CisraWYgcnVzdGM6OmlzX21pbl92ZXJzaW9uKCIxLjEzLjAiKS51bndyYXBfb3IoZmFsc2UpIHsK KysgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNmZz1xdWVzdGlvbl9tYXJrX29wZXJhdG9yIik7 CisrfQorK2BgYAorKworK0NoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgd2FzIHJlbGVh c2VkIG9uIG9yIGFmdGVyIGAyMDE4LTEyLTE4YDoKKysKKytgYGBydXN0CisrZXh0ZXJuIGNyYXRl IHZlcnNpb25fY2hlY2sgYXMgcnVzdGM7CisrCisrbWF0Y2ggcnVzdGM6OmlzX21pbl9kYXRlKCIy MDE4LTEyLTE4IikgeworKyAgICBTb21lKHRydWUpID0+ICJZZXAhIEl0J3MgcmVjZW50ISIsCisr ICAgIFNvbWUoZmFsc2UpID0+ICJObywgaXQncyBvbGRlci4iLAorKyAgICBOb25lID0+ICJDb3Vs ZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24uIgorK307CisrYGBgCisrCisrQ2hlY2sg dGhhdCB0aGUgcnVubmluZyBjb21waWxlciBzdXBwb3J0cyBmZWF0dXJlIGZsYWdzOgorKworK2Bg YHJ1c3QKKytleHRlcm4gY3JhdGUgdmVyc2lvbl9jaGVjayBhcyBydXN0YzsKKysKKyttYXRjaCBy dXN0Yzo6aXNfZmVhdHVyZV9mbGFnZ2FibGUoKSB7CisrICAgIFNvbWUodHJ1ZSkgPT4gIlllcyEg SXQncyBhIGRldiBvciBuaWdodGx5IHJlbGVhc2UhIiwKKysgICAgU29tZShmYWxzZSkgPT4gIk5v LCBpdCdzIHN0YWJsZSBvciBiZXRhLiIsCisrICAgIE5vbmUgPT4gIkNvdWxkbid0IGRldGVybWlu ZSB0aGUgcnVzdGMgdmVyc2lvbi4iCisrfTsKKytgYGAKKysKKytTZWUgdGhlIFtydXN0ZG9jc10o aHR0cHM6Ly9kb2NzLnJzL3ZlcnNpb25fY2hlY2spIGZvciBtb3JlIGV4YW1wbGVzIGFuZCBjb21w bGV0ZQorK2RvY3VtZW50YXRpb24uCisrCisrIyMgQWx0ZXJuYXRpdmVzCisrCisrVGhpcyBjcmF0 ZSBpcyBkZWFkIHNpbXBsZSB3aXRoIG5vIGRlcGVuZGVuY2llcy4gSWYgeW91IG5lZWQgc29tZXRo aW5nIG1vcmUgYW5kCisrZG9uJ3QgY2FyZSBhYm91dCBwYW5pY2tpbmcgaWYgdGhlIHZlcnNpb24g Y2Fubm90IGJlIG9idGFpbmVkLCBvciBpZiB5b3UgZG9uJ3QKKyttaW5kIGFkZGluZyBkZXBlbmRl bmNpZXMsIHNlZSBbcnVzdGNfdmVyc2lvbl0uIElmIHlvdSdkIGluc3RlYWQgcHJlZmVyIGEgZmVh dHVyZQorK2RldGVjdGlvbiBsaWJyYXJ5IHRoYXQgd29ya3MgYnkgZHluYW1pY2FsbHkgaW52b2tp bmcgYHJ1c3RjYCB3aXRoIGEKKytyZXByZXNlbnRhdGl2ZSBjb2RlIHNhbXBsZSwgc2VlIFthdXRv Y2ZnXS4KKysKKytbcnVzdGNfdmVyc2lvbl06IGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9ydXN0 Y192ZXJzaW9uCisrW2F1dG9jZmddOiBodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvYXV0b2NmZwor KworKyMjIExpY2Vuc2UKKysKKytgdmVyc2lvbl9jaGVja2AgaXMgbGljZW5zZWQgdW5kZXIgZWl0 aGVyIG9mIHRoZSBmb2xsb3dpbmcsIGF0IHlvdXIgb3B0aW9uOgorKworKyAqIEFwYWNoZSBMaWNl bnNlLCBWZXJzaW9uIDIuMCwgKFtMSUNFTlNFLUFQQUNIRV0oTElDRU5TRS1BUEFDSEUpIG9yIGh0 dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCkKKysgKiBNSVQgTGljZW5z ZSAoW0xJQ0VOU0UtTUlUXShMSUNFTlNFLU1JVCkgb3IgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xp Y2Vuc2VzL01JVCkKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2sv c3JjL2NoYW5uZWwucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2NoYW5u ZWwucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L3ZlcnNpb25fY2hlY2svc3JjL2NoYW5uZWwucnMKK0BAIC0wLDAgKzEsMTkzIEBA CisrdXNlIHN0ZDo6Zm10OworKworKyNbZGVyaXZlKERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBDb3B5 LCBDbG9uZSldCisrZW51bSBLaW5kIHsKKysgICAgRGV2LAorKyAgICBOaWdodGx5LAorKyAgICBC ZXRhLAorKyAgICBTdGFibGUsCisrfQorKworKy8vLyBSZWxlYXNlIGNoYW5uZWw6ICJkZXYiLCAi bmlnaHRseSIsICJiZXRhIiwgb3IgInN0YWJsZSIuCisrI1tkZXJpdmUoRGVidWcsIFBhcnRpYWxF cSwgRXEsIENvcHksIENsb25lKV0KKytwdWIgc3RydWN0IENoYW5uZWwoS2luZCk7CisrCisraW1w bCBDaGFubmVsIHsKKysgICAgLy8vIFJlYWRzIHRoZSByZWxlYXNlIGNoYW5uZWwgb2YgdGhlIHJ1 bm5pbmcgY29tcGlsZXIuIElmIGl0IGNhbm5vdCBiZQorKyAgICAvLy8gZGV0ZXJtaW5lZCAoc2Vl IHRoZSBbdG9wLWxldmVsIGRvY3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVybnMgYE5vbmVgLgor KyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QK KysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOworKyAgICAvLy8KKysgICAgLy8v IG1hdGNoIENoYW5uZWw6OnJlYWQoKSB7CisrICAgIC8vLyAgICAgU29tZShjKSA9PiBmb3JtYXQh KCJUaGUgY2hhbm5lbCBpczoge30iLCBjKSwKKysgICAgLy8vICAgICBOb25lID0+IGZvcm1hdCEo IkZhaWxlZCB0byByZWFkIHRoZSByZWxlYXNlIGNoYW5uZWwuIikKKysgICAgLy8vIH07CisrICAg IC8vLyBgYGAKKysgICAgcHViIGZuIHJlYWQoKSAtPiBPcHRpb248Q2hhbm5lbD4geworKyAgICAg ICAgOjpnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCisrICAgICAgICAgICAgLmFuZF90aGVuKHwodmVy c2lvbiwgXyl8IHZlcnNpb24pCisrICAgICAgICAgICAgLmFuZF90aGVuKHx2ZXJzaW9ufCBDaGFu bmVsOjpwYXJzZSgmdmVyc2lvbikpCisrICAgIH0KKysKKysgICAgLy8vIFBhcnNlIGEgUnVzdCBy ZWxlYXNlIGNoYW5uZWwgZnJvbSBhIFJ1c3QgcmVsZWFzZSB2ZXJzaW9uIHN0cmluZyAob2YgdGhl CisrICAgIC8vLyBmb3JtIGBtYWpvclsubWlub3JbLnBhdGNoWy1jaGFubmVsXV1dYCkuIFJldHVy bnMgYE5vbmVgIGlmIGB2ZXJzaW9uYCBpcworKyAgICAvLy8gbm90IGEgdmFsaWQgUnVzdCB2ZXJz aW9uIHN0cmluZy4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAg IC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKKysgICAg Ly8vCisrICAgIC8vLyBsZXQgZGV2ID0gQ2hhbm5lbDo6cGFyc2UoIjEuMy4wLWRldiIpLnVud3Jh cCgpOworKyAgICAvLy8gYXNzZXJ0IShkZXYuaXNfZGV2KCkpOworKyAgICAvLy8KKysgICAgLy8v IGxldCBuaWdodGx5ID0gQ2hhbm5lbDo6cGFyc2UoIjEuNDIuMi1uaWdodGx5IikudW53cmFwKCk7 CisrICAgIC8vLyBhc3NlcnQhKG5pZ2h0bHkuaXNfbmlnaHRseSgpKTsKKysgICAgLy8vCisrICAg IC8vLyBsZXQgYmV0YSA9IENoYW5uZWw6OnBhcnNlKCIxLjMyLjAtYmV0YSIpLnVud3JhcCgpOwor KyAgICAvLy8gYXNzZXJ0IShiZXRhLmlzX2JldGEoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0 IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjQuMCIpLnVud3JhcCgpOworKyAgICAvLy8gYXNz ZXJ0IShzdGFibGUuaXNfc3RhYmxlKCkpOworKyAgICAvLy8gYGBgCisrICAgIHB1YiBmbiBwYXJz ZSh2ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Q2hhbm5lbD4geworKyAgICAgICAgbGV0IHZlcnNp b24gPSB2ZXJzaW9uLnRyaW0oKTsKKysgICAgICAgIGlmIHZlcnNpb24uY29udGFpbnMoIi1kZXYi KSB8fCB2ZXJzaW9uID09ICJkZXYiIHsKKysgICAgICAgICAgICBTb21lKENoYW5uZWwoS2luZDo6 RGV2KSkKKysgICAgICAgIH0gZWxzZSBpZiB2ZXJzaW9uLmNvbnRhaW5zKCItbmlnaHRseSIpIHx8 IHZlcnNpb24gPT0gIm5pZ2h0bHkiIHsKKysgICAgICAgICAgICBTb21lKENoYW5uZWwoS2luZDo6 TmlnaHRseSkpCisrICAgICAgICB9IGVsc2UgaWYgdmVyc2lvbi5jb250YWlucygiLWJldGEiKSB8 fCB2ZXJzaW9uID09ICJiZXRhIiB7CisrICAgICAgICAgICAgU29tZShDaGFubmVsKEtpbmQ6OkJl dGEpKQorKyAgICAgICAgfSBlbHNlIGlmICF2ZXJzaW9uLmNvbnRhaW5zKCItIikgeworKyAgICAg ICAgICAgIFNvbWUoQ2hhbm5lbChLaW5kOjpTdGFibGUpKQorKyAgICAgICAgfSBlbHNlIHsKKysg ICAgICAgICAgICBOb25lCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMg dGhlIG5hbWUgb2YgdGhlIHJlbGVhc2UgY2hhbm5lbC4KKysgICAgZm4gYXNfc3RyKCZzZWxmKSAt PiAmJ3N0YXRpYyBzdHIgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysgICAgICAgICAgICBL aW5kOjpEZXYgPT4gImRldiIsCisrICAgICAgICAgICAgS2luZDo6QmV0YSA9PiAiYmV0YSIsCisr ICAgICAgICAgICAgS2luZDo6TmlnaHRseSA9PiAibmlnaHRseSIsCisrICAgICAgICAgICAgS2lu ZDo6U3RhYmxlID0+ICJzdGFibGUiLAorKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8vLyBS ZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgc3VwcG9ydHMgZmVhdHVyZSBmbGFncy4gSW4g b3RoZXIgd29yZHMsCisrICAgIC8vLyByZXR1cm5zIGB0cnVlYCBpZiB0aGUgY2hhbm5lbCBpcyBl aXRoZXIgYGRldmAgb3IgYG5pZ2h0bHlgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQor KyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpD aGFubmVsOworKyAgICAvLy8KKysgICAgLy8vIGxldCBkZXYgPSBDaGFubmVsOjpwYXJzZSgiMS4z LjAtZGV2IikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKGRldi5zdXBwb3J0c19mZWF0dXJl cygpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgbmlnaHRseSA9IENoYW5uZWw6OnBhcnNlKCIx LjQyLjItbmlnaHRseSIpLnVud3JhcCgpOworKyAgICAvLy8gYXNzZXJ0IShuaWdodGx5LnN1cHBv cnRzX2ZlYXR1cmVzKCkpOworKyAgICAvLy8KKysgICAgLy8vIGxldCBiZXRhID0gQ2hhbm5lbDo6 cGFyc2UoIjEuMzIuMC1iZXRhIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKCFiZXRhLnN1 cHBvcnRzX2ZlYXR1cmVzKCkpOworKyAgICAvLy8KKysgICAgLy8vIGxldCBzdGFibGUgPSBDaGFu bmVsOjpwYXJzZSgiMS40LjAiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoIXN0YWJsZS5z dXBwb3J0c19mZWF0dXJlcygpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gc3VwcG9ydHNf ZmVhdHVyZXMoJnNlbGYpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggc2VsZi4wIHsKKysgICAg ICAgICAgICBLaW5kOjpEZXYgfCBLaW5kOjpOaWdodGx5ID0+IHRydWUsCisrICAgICAgICAgICAg S2luZDo6QmV0YSB8IEtpbmQ6OlN0YWJsZSA9PiBmYWxzZQorKyAgICAgICAgfQorKyAgICB9Cisr CisrICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5uZWwgaXMgYGRldmAgYW5kIGBm YWxzZWAgb3RoZXJ3aXNlLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8K KysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpDaGFubmVsOwor KyAgICAvLy8KKysgICAgLy8vIGxldCBkZXYgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtZGV2Iiku dW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKGRldi5pc19kZXYoKSk7CisrICAgIC8vLworKyAg ICAvLy8gbGV0IHN0YWJsZSA9IENoYW5uZWw6OnBhcnNlKCIxLjAuMCIpLnVud3JhcCgpOworKyAg ICAvLy8gYXNzZXJ0ISghc3RhYmxlLmlzX2RldigpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIg Zm4gaXNfZGV2KCZzZWxmKSAtPiBib29sIHsKKysgICAgICAgIG1hdGNoIHNlbGYuMCB7CisrICAg ICAgICAgICAgS2luZDo6RGV2ID0+IHRydWUsCisrICAgICAgICAgICAgXyA9PiBmYWxzZQorKyAg ICAgICAgfQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIGNoYW5u ZWwgaXMgYG5pZ2h0bHlgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKysgICAgLy8vCisrICAgIC8v LyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVy c2lvbl9jaGVjazo6Q2hhbm5lbDsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgbmlnaHRseSA9IENo YW5uZWw6OnBhcnNlKCIxLjMuMC1uaWdodGx5IikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQh KG5pZ2h0bHkuaXNfbmlnaHRseSgpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgc3RhYmxlID0g Q2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKCFzdGFi bGUuaXNfbmlnaHRseSgpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gaXNfbmlnaHRseSgm c2VsZikgLT4gYm9vbCB7CisrICAgICAgICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAgICAgIEtp bmQ6Ok5pZ2h0bHkgPT4gdHJ1ZSwKKysgICAgICAgICAgICBfID0+IGZhbHNlCisrICAgICAgICB9 CisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIHRoaXMgY2hhbm5lbCBpcyBg YmV0YWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBs ZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNr OjpDaGFubmVsOworKyAgICAvLy8KKysgICAgLy8vIGxldCBiZXRhID0gQ2hhbm5lbDo6cGFyc2Uo IjEuMy4wLWJldGEiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoYmV0YS5pc19iZXRhKCkp OworKyAgICAvLy8KKysgICAgLy8vIGxldCBzdGFibGUgPSBDaGFubmVsOjpwYXJzZSgiMS4wLjAi KS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEoIXN0YWJsZS5pc19iZXRhKCkpOworKyAgICAv Ly8gYGBgCisrICAgIHB1YiBmbiBpc19iZXRhKCZzZWxmKSAtPiBib29sIHsKKysgICAgICAgIG1h dGNoIHNlbGYuMCB7CisrICAgICAgICAgICAgS2luZDo6QmV0YSA9PiB0cnVlLAorKyAgICAgICAg ICAgIF8gPT4gZmFsc2UKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyBg dHJ1ZWAgaWYgdGhpcyBjaGFubmVsIGlzIGBzdGFibGVgIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4K KysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0 CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6Q2hhbm5lbDsKKysgICAgLy8vCisrICAgIC8v LyBsZXQgc3RhYmxlID0gQ2hhbm5lbDo6cGFyc2UoIjEuMC4wIikudW53cmFwKCk7CisrICAgIC8v LyBhc3NlcnQhKHN0YWJsZS5pc19zdGFibGUoKSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGJl dGEgPSBDaGFubmVsOjpwYXJzZSgiMS4zLjAtYmV0YSIpLnVud3JhcCgpOworKyAgICAvLy8gYXNz ZXJ0ISghYmV0YS5pc19zdGFibGUoKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGlzX3N0 YWJsZSgmc2VsZikgLT4gYm9vbCB7CisrICAgICAgICBtYXRjaCBzZWxmLjAgeworKyAgICAgICAg ICAgIEtpbmQ6OlN0YWJsZSA9PiB0cnVlLAorKyAgICAgICAgICAgIF8gPT4gZmFsc2UKKysgICAg ICAgIH0KKysgICAgfQorK30KKysKKytpbXBsIGZtdDo6RGlzcGxheSBmb3IgQ2hhbm5lbCB7Cisr ICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQg eworKyAgICAgICAgd3JpdGUhKGYsICJ7fSIsIHNlbGYuYXNfc3RyKCkpCisrICAgIH0KKyt9Citk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9kYXRlLnJzIGIv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9kYXRlLnJzCituZXcgZmlsZSBtb2Rl IDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2No ZWNrL3NyYy9kYXRlLnJzCitAQCAtMCwwICsxLDIwMyBAQAorK3VzZSBzdGQ6OmZtdDsKKysKKysv Ly8gUmVsZWFzZSBkYXRlIGluY2x1ZGluZyB5ZWFyLCBtb250aCwgYW5kIGRheS4KKysvLyBJbnRl cm5hbCBzdG9yYWdlIGlzOiB5WzMxLi45XSB8IG1bOC4uNV0gfCBkWzUuLi4wXS4KKysjW2Rlcml2 ZShEZWJ1ZywgUGFydGlhbEVxLCBFcSwgQ29weSwgQ2xvbmUsIFBhcnRpYWxPcmQsIE9yZCldCisr cHViIHN0cnVjdCBEYXRlKHUzMik7CisrCisraW1wbCBEYXRlIHsKKysgICAgLy8vIFJlYWRzIHRo ZSByZWxlYXNlIGRhdGUgb2YgdGhlIHJ1bm5pbmcgY29tcGlsZXIuIElmIGl0IGNhbm5vdCBiZQor KyAgICAvLy8gZGV0ZXJtaW5lZCAoc2VlIHRoZSBbdG9wLWxldmVsIGRvY3VtZW50YXRpb25dKGNy YXRlKSksIHJldHVybnMgYE5vbmVgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAg ICAvLy8KKysgICAgLy8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRl OworKyAgICAvLy8KKysgICAgLy8vIG1hdGNoIERhdGU6OnJlYWQoKSB7CisrICAgIC8vLyAgICAg U29tZShkKSA9PiBmb3JtYXQhKCJUaGUgcmVsZWFzZSBkYXRlIGlzOiB7fSIsIGQpLAorKyAgICAv Ly8gICAgIE5vbmUgPT4gZm9ybWF0ISgiRmFpbGVkIHRvIHJlYWQgdGhlIHJlbGVhc2UgZGF0ZS4i KQorKyAgICAvLy8gfTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gcmVhZCgpIC0+IE9wdGlv bjxEYXRlPiB7CisrICAgICAgICA6OmdldF92ZXJzaW9uX2FuZF9kYXRlKCkKKysgICAgICAgICAg ICAuYW5kX3RoZW4ofChfLCBkYXRlKXwgZGF0ZSkKKysgICAgICAgICAgICAuYW5kX3RoZW4ofGRh dGV8IERhdGU6OnBhcnNlKCZkYXRlKSkKKysgICAgfQorKworKyAgICAvLy8gUGFyc2UgYSByZWxl YXNlIGRhdGUgb2YgdGhlIGZvcm0gYCVZLSVtLSVkYC4gUmV0dXJucyBgTm9uZWAgaWYgYGRhdGVg IGlzCisrICAgIC8vLyBub3QgaW4gYCVZLSVtLSVkYCBmb3JtYXQuCisrICAgIC8vLworKyAgICAv Ly8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8gdXNlIHZl cnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGRhdGUgPSBEYXRlOjpw YXJzZSgiMjAxNi0wNC0yMCIpLnVud3JhcCgpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEo ZGF0ZS5hdF9sZWFzdCgiMjAxNi0wMS0xMCIpKTsKKysgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9t b3N0KCIyMDE2LTA0LTIwIikpOworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmV4YWN0bHkoIjIwMTYt MDQtMjAiKSk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMjAyMS0x Mi0zMSIpLnVud3JhcCgpLmV4YWN0bHkoIjIwMjEtMTItMzEiKSk7CisrICAgIC8vLworKyAgICAv Ly8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiTWFyY2ggMTMsIDIwMTgiKS5pc19ub25lKCkpOworKyAg ICAvLy8gYXNzZXJ0IShEYXRlOjpwYXJzZSgiMS0yLTMtNC01IikuaXNfbm9uZSgpKTsKKysgICAg Ly8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIwMjAtMzAwLTIzMTIwIikuaXNfbm9uZSgpKTsKKysg ICAgLy8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIwMjAtMTItMTIgMSIpLmlzX25vbmUoKSk7Cisr ICAgIC8vLyBhc3NlcnQhKERhdGU6OnBhcnNlKCIyMDIwLTEwIikuaXNfbm9uZSgpKTsKKysgICAg Ly8vIGFzc2VydCEoRGF0ZTo6cGFyc2UoIjIwMjAiKS5pc19ub25lKCkpOworKyAgICAvLy8gYGBg CisrICAgIHB1YiBmbiBwYXJzZShkYXRlOiAmc3RyKSAtPiBPcHRpb248RGF0ZT4geworKyAgICAg ICAgbGV0IG11dCB5bWQgPSBbMHUxNjsgM107CisrICAgICAgICBmb3IgKGksIHNwbGl0KSBpbiBk YXRlLnNwbGl0KCctJykubWFwKHxzfCBzLnBhcnNlOjo8dTE2PigpKS5lbnVtZXJhdGUoKSB7Cisr ICAgICAgICAgICAgeW1kW2ldID0gbWF0Y2ggKGksIHNwbGl0KSB7CisrICAgICAgICAgICAgICAg ICgzLCBfKSB8IChfLCBFcnIoXykpID0+IHJldHVybiBOb25lLAorKyAgICAgICAgICAgICAgICAo XywgT2sodikpID0+IHYsCisrICAgICAgICAgICAgfTsKKysgICAgICAgIH0KKysKKysgICAgICAg IGxldCAoeWVhciwgbW9udGgsIGRheSkgPSAoeW1kWzBdLCB5bWRbMV0sIHltZFsyXSk7CisrICAg ICAgICBpZiB5ZWFyID09IDAgfHwgbW9udGggPT0gMCB8fCBtb250aCA+IDEyIHx8IGRheSA9PSAw IHx8IGRheSA+IDMxIHsKKysgICAgICAgICAgICByZXR1cm4gTm9uZTsKKysgICAgICAgIH0KKysK KysgICAgICAgIFNvbWUoRGF0ZTo6ZnJvbV95bWQoeWVhciwgbW9udGggYXMgdTgsIGRheSBhcyB1 OCkpCisrICAgIH0KKysKKysgICAgLy8vIENyZWF0ZXMgYSBgRGF0ZWAgZnJvbSBgKHllYXIsIG1v bnRoLCBkYXkpYCBkYXRlIGNvbXBvbmVudHMuCisrICAgIC8vLworKyAgICAvLy8gRG9lcyBub3Qg Y2hlY2sgdGhlIHZhbGlkaXR5IG9mIGB5ZWFyYCwgYG1vbnRoYCwgb3IgYGRheWAsIGJ1dCBgeWVh cmAgaXMKKysgICAgLy8vIHRydW5jYXRlZCB0byAyMyBiaXRzICglIDgsMzg4LDYwOCksIGBtb250 aGAgdG8gNCBiaXRzICglIDE2KSwgYW5kIGBkYXlgCisrICAgIC8vLyB0byA1IGJpdHMgKCUgMzIp LgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8vIGBgYHJ1 c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOworKyAgICAvLy8KKysgICAgLy8v IGFzc2VydCEoRGF0ZTo6ZnJvbV95bWQoMjAyMSwgNywgMzApLmV4YWN0bHkoIjIwMjEtMDctMzAi KSk7CisrICAgIC8vLyBhc3NlcnQhKERhdGU6OmZyb21feW1kKDIwMTAsIDMsIDIzKS5leGFjdGx5 KCIyMDEwLTAzLTIzIikpOworKyAgICAvLy8gYXNzZXJ0IShEYXRlOjpmcm9tX3ltZCgyMDkwLCAx LCAzMSkuZXhhY3RseSgiMjA5MC0wMS0zMSIpKTsKKysgICAgLy8vCisrICAgIC8vLyAvLyBUcnVu Y2F0aW9uOiAzMyAlIDMyID09IDB4MjEgJiAweDFGID09IDEuCisrICAgIC8vLyBhc3NlcnQhKERh dGU6OmZyb21feW1kKDIwOTAsIDEsIDMzKS5leGFjdGx5KCIyMDkwLTAxLTAxIikpOworKyAgICAv Ly8gYGBgCisrICAgIHB1YiBmbiBmcm9tX3ltZCh5ZWFyOiB1MTYsIG1vbnRoOiB1OCwgZGF5OiB1 OCkgLT4gRGF0ZSB7CisrICAgICAgICBsZXQgeWVhciA9ICh5ZWFyIGFzIHUzMikgPDwgOTsKKysg ICAgICAgIGxldCBtb250aCA9ICgobW9udGggYXMgdTMyKSAmIDB4RikgPDwgNTsKKysgICAgICAg IGxldCBkYXkgPSAoZGF5IGFzIHUzMikgJiAweDFGOworKyAgICAgICAgRGF0ZSh5ZWFyIHwgbW9u dGggfCBkYXkpCisrICAgIH0KKysKKysgICAgLy8vIFJldHVybiB0aGUgb3JpZ2luYWwgKFlZWVks IE1NLCBERCkuCisrICAgIGZuIHRvX3ltZCgmc2VsZikgLT4gKHUxNiwgdTgsIHU4KSB7CisrICAg ICAgICBsZXQgeSA9IHNlbGYuMCA+PiA5OworKyAgICAgICAgbGV0IG0gPSAoc2VsZi4wID4+IDUp ICYgMHhGOworKyAgICAgICAgbGV0IGQgPSBzZWxmLjAgJiAweDFGOworKyAgICAgICAgKHkgYXMg dTE2LCBtIGFzIHU4LCBkIGFzIHU4KQorKyAgICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVl YCBpZiBgc2VsZmAgb2NjdXJzIG9uIG9yIGFmdGVyIGBkYXRlYC4KKysgICAgLy8vCisrICAgIC8v LyBJZiBgZGF0ZWAgb2NjdXJzIGJlZm9yZSBgc2VsZmAsIG9yIGlmIGBkYXRlYCBpcyBub3QgaW4g YCVZLSVtLSVkYAorKyAgICAvLy8gZm9ybWF0LCByZXR1cm5zIGBmYWxzZWAuCisrICAgIC8vLwor KyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8g dXNlIHZlcnNpb25fY2hlY2s6OkRhdGU7CisrICAgIC8vLworKyAgICAvLy8gbGV0IGRhdGUgPSBE YXRlOjpwYXJzZSgiMjAyMC0wMS0wMSIpLnVud3JhcCgpOworKyAgICAvLy8KKysgICAgLy8vIGFz c2VydCEoZGF0ZS5hdF9sZWFzdCgiMjAxOS0xMi0zMSIpKTsKKysgICAgLy8vIGFzc2VydCEoZGF0 ZS5hdF9sZWFzdCgiMjAyMC0wMS0wMSIpKTsKKysgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9sZWFz dCgiMjAxNC0wNC0zMSIpKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKCFkYXRlLmF0X2xl YXN0KCIyMDIwLTAxLTAyIikpOworKyAgICAvLy8gYXNzZXJ0ISghZGF0ZS5hdF9sZWFzdCgiMjAy NC0wOC0xOCIpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gYXRfbGVhc3QoJnNlbGYsIGRh dGU6ICZzdHIpIC0+IGJvb2wgeworKyAgICAgICAgRGF0ZTo6cGFyc2UoZGF0ZSkKKysgICAgICAg ICAgICAubWFwKHxkYXRlfCBzZWxmID49ICZkYXRlKQorKyAgICAgICAgICAgIC51bndyYXBfb3Io ZmFsc2UpCisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRydWVgIGlmIGBzZWxmYCBvY2N1 cnMgb24gb3IgYmVmb3JlIGBkYXRlYC4KKysgICAgLy8vCisrICAgIC8vLyBJZiBgZGF0ZWAgb2Nj dXJzIGFmdGVyIGBzZWxmYCwgb3IgaWYgYGRhdGVgIGlzIG5vdCBpbiBgJVktJW0tJWRgCisrICAg IC8vLyBmb3JtYXQsIHJldHVybnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1w bGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVj azo6RGF0ZTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgZGF0ZSA9IERhdGU6OnBhcnNlKCIyMDIw LTAxLTAxIikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAvLy8gYXNzZXJ0IShkYXRlLmF0X21v c3QoIjIwMjAtMDEtMDEiKSk7CisrICAgIC8vLyBhc3NlcnQhKGRhdGUuYXRfbW9zdCgiMjAyMC0w MS0wMiIpKTsKKysgICAgLy8vIGFzc2VydCEoZGF0ZS5hdF9tb3N0KCIyMDI0LTA4LTE4IikpOwor KyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbW9zdCgiMjAxOS0xMi0zMSIpKTsK KysgICAgLy8vIGFzc2VydCEoIWRhdGUuYXRfbW9zdCgiMjAxNC0wNC0zMSIpKTsKKysgICAgLy8v IGBgYAorKyAgICBwdWIgZm4gYXRfbW9zdCgmc2VsZiwgZGF0ZTogJnN0cikgLT4gYm9vbCB7Cisr ICAgICAgICBEYXRlOjpwYXJzZShkYXRlKQorKyAgICAgICAgICAgIC5tYXAofGRhdGV8IHNlbGYg PD0gJmRhdGUpCisrICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKKysgICAgfQorKworKyAg ICAvLy8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIG9jY3VycyBleGFjdGx5IG9uIGBkYXRlYC4K KysgICAgLy8vCisrICAgIC8vLyBJZiBgZGF0ZWAgaXMgbm90IGV4YWN0bHkgYHNlbGZgLCBvciBp ZiBgZGF0ZWAgaXMgbm90IGluIGAlWS0lbS0lZGAKKysgICAgLy8vIGZvcm1hdCwgcmV0dXJucyBg ZmFsc2VgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAgLy8v IGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpEYXRlOworKyAgICAvLy8KKysg ICAgLy8vIGxldCBkYXRlID0gRGF0ZTo6cGFyc2UoIjIwMjAtMDEtMDEiKS51bndyYXAoKTsKKysg ICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKGRhdGUuZXhhY3RseSgiMjAyMC0wMS0wMSIpKTsKKysg ICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKCFkYXRlLmV4YWN0bHkoIjIwMTktMTItMzEiKSk7Cisr ICAgIC8vLyBhc3NlcnQhKCFkYXRlLmV4YWN0bHkoIjIwMTQtMDQtMzEiKSk7CisrICAgIC8vLyBh c3NlcnQhKCFkYXRlLmV4YWN0bHkoIjIwMjAtMDEtMDIiKSk7CisrICAgIC8vLyBhc3NlcnQhKCFk YXRlLmV4YWN0bHkoIjIwMjQtMDgtMTgiKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGV4 YWN0bHkoJnNlbGYsIGRhdGU6ICZzdHIpIC0+IGJvb2wgeworKyAgICAgICAgRGF0ZTo6cGFyc2Uo ZGF0ZSkKKysgICAgICAgICAgICAubWFwKHxkYXRlfCBzZWxmID09ICZkYXRlKQorKyAgICAgICAg ICAgIC51bndyYXBfb3IoZmFsc2UpCisrICAgIH0KKyt9CisrCisraW1wbCBmbXQ6OkRpc3BsYXkg Zm9yIERhdGUgeworKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+ IGZtdDo6UmVzdWx0IHsKKysgICAgICAgIGxldCAoeSwgbSwgZCkgPSBzZWxmLnRvX3ltZCgpOwor KyAgICAgICAgd3JpdGUhKGYsICJ7fS17OjAyfS17OjAyfSIsIHksIG0sIGQpCisrICAgIH0KKyt9 CisrCisrI1tjZmcodGVzdCldCisrbW9kIHRlc3RzIHsKKysgICAgdXNlIHN1cGVyOjpEYXRlOwor KworKyAgICBtYWNyb19ydWxlcyEgcmVmbGV4aXZlX2Rpc3BsYXkgeworKyAgICAgICAgKCRzdHJp bmc6ZXhwcikgPT4gKAorKyAgICAgICAgICAgIGFzc2VydF9lcSEoRGF0ZTo6cGFyc2UoJHN0cmlu ZykudW53cmFwKCkudG9fc3RyaW5nKCksICRzdHJpbmcpOworKyAgICAgICAgKQorKyAgICB9Cisr CisrICAgICNbdGVzdF0KKysgICAgZm4gZGlzcGxheSgpIHsKKysgICAgICAgIHJlZmxleGl2ZV9k aXNwbGF5ISgiMjAxOS0wNS0wOCIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3BsYXkhKCIyMDAw LTAxLTAxIik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEoIjIwMDAtMTItMzEiKTsKKysg ICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjA5MC0xMi0zMSIpOworKyAgICAgICAgcmVmbGV4 aXZlX2Rpc3BsYXkhKCIxOTk5LTAyLTE5Iik7CisrICAgICAgICByZWZsZXhpdmVfZGlzcGxheSEo Ijk5OTktMTItMzEiKTsKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0 L3ZlcnNpb25fY2hlY2svc3JjL2xpYi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvdmVyc2lvbl9jaGVj ay9zcmMvbGliLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIv dGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy9saWIucnMKK0BAIC0wLDAgKzEsNDkz IEBACisrLy8hIFRoaXMgdGlueSBjcmF0ZSBjaGVja3MgdGhhdCB0aGUgcnVubmluZyBvciBpbnN0 YWxsZWQgYHJ1c3RjYCBtZWV0cyBzb21lCisrLy8hIHZlcnNpb24gcmVxdWlyZW1lbnRzLiBUaGUg dmVyc2lvbiBpcyBxdWVyaWVkIGJ5IGNhbGxpbmcgdGhlIFJ1c3QgY29tcGlsZXIKKysvLyEgd2l0 aCBgLS12ZXJzaW9uYC4gVGhlIHBhdGggdG8gdGhlIGNvbXBpbGVyIGlzIGRldGVybWluZWQgZmly c3QgdmlhIHRoZQorKy8vISBgUlVTVENgIGVudmlyb25tZW50IHZhcmlhYmxlLiBJZiBpdCBpcyBu b3Qgc2V0LCB0aGVuIGBydXN0Y2AgaXMgdXNlZC4gSWYKKysvLyEgdGhhdCBmYWlscywgbm8gZGV0 ZXJtaW5hdGlvbiBpcyBtYWRlLCBhbmQgY2FsbHMgcmV0dXJuIGBOb25lYC4KKysvLyEKKysvLyEg IyBFeGFtcGxlcworKy8vIQorKy8vISAqIFNldCBhIGBjZmdgIGZsYWcgaW4gYGJ1aWxkLnJzYCBp ZiB0aGUgcnVubmluZyBjb21waWxlciB3YXMgZGV0ZXJtaW5lZCB0bworKy8vISAgIGJlIGF0IGxl YXN0IHZlcnNpb24gYDEuMTMuMGA6CisrLy8hCisrLy8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVy biBjcmF0ZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOworKy8vIQorKy8vISAgIGlmIHJ1c3RjOjpp c19taW5fdmVyc2lvbigiMS4xMy4wIikudW53cmFwX29yKGZhbHNlKSB7CisrLy8hICAgICAgIHBy aW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9cXVlc3Rpb25fbWFya19vcGVyYXRvciIpOworKy8vISAg IH0KKysvLyEgICBgYGAKKysvLyEKKysvLyEgICBTZWUgW2Bpc19tYXhfdmVyc2lvbmBdIG9yIFtg aXNfZXhhY3RfdmVyc2lvbmBdIHRvIGNoZWNrIGlmIHRoZSBjb21waWxlcgorKy8vISAgIGlzIF9h dCBtb3N0XyBvciBfZXhhY3RseV8gYSBjZXJ0YWluIHZlcnNpb24uCisrLy8hCisrLy8hICogQ2hl Y2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciB3YXMgcmVsZWFzZWQgb24gb3IgYWZ0ZXIgYDIw MTgtMTItMThgOgorKy8vIQorKy8vISAgIGBgYHJ1c3QKKysvLyEgICBleHRlcm4gY3JhdGUgdmVy c2lvbl9jaGVjayBhcyBydXN0YzsKKysvLyEKKysvLyEgICBtYXRjaCBydXN0Yzo6aXNfbWluX2Rh dGUoIjIwMTgtMTItMTgiKSB7CisrLy8hICAgICAgIFNvbWUodHJ1ZSkgPT4gIlllcCEgSXQncyBy ZWNlbnQhIiwKKysvLyEgICAgICAgU29tZShmYWxzZSkgPT4gIk5vLCBpdCdzIG9sZGVyLiIsCisr Ly8hICAgICAgIE5vbmUgPT4gIkNvdWxkbid0IGRldGVybWluZSB0aGUgcnVzdGMgdmVyc2lvbi4i CisrLy8hICAgfTsKKysvLyEgICBgYGAKKysvLyEKKysvLyEgICBTZWUgW2Bpc19tYXhfZGF0ZWBd IG9yIFtgaXNfZXhhY3RfZGF0ZWBdIHRvIGNoZWNrIGlmIHRoZSBjb21waWxlciB3YXMKKysvLyEg ICByZWxlYXNlZCBfcHJpb3IgdG9fIG9yIF9leGFjdGx5IG9uXyBhIGNlcnRhaW4gZGF0ZS4KKysv LyEKKysvLyEgKiBDaGVjayB0aGF0IHRoZSBydW5uaW5nIGNvbXBpbGVyIHN1cHBvcnRzIGZlYXR1 cmUgZmxhZ3M6CisrLy8hCisrLy8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJz aW9uX2NoZWNrIGFzIHJ1c3RjOworKy8vIQorKy8vISAgIG1hdGNoIHJ1c3RjOjppc19mZWF0dXJl X2ZsYWdnYWJsZSgpIHsKKysvLyEgICAgICAgU29tZSh0cnVlKSA9PiAiWWVzISBJdCdzIGEgZGV2 IG9yIG5pZ2h0bHkgcmVsZWFzZSEiLAorKy8vISAgICAgICBTb21lKGZhbHNlKSA9PiAiTm8sIGl0 J3Mgc3RhYmxlIG9yIGJldGEuIiwKKysvLyEgICAgICAgTm9uZSA9PiAiQ291bGRuJ3QgZGV0ZXJt aW5lIHRoZSBydXN0YyB2ZXJzaW9uLiIKKysvLyEgICB9OworKy8vISAgIGBgYAorKy8vIQorKy8v ISAqIENoZWNrIHRoYXQgdGhlIHJ1bm5pbmcgY29tcGlsZXIgc3VwcG9ydHMgYSBzcGVjaWZpYyBm ZWF0dXJlOgorKy8vIQorKy8vISAgIGBgYHJ1c3QKKysvLyEgICBleHRlcm4gY3JhdGUgdmVyc2lv bl9jaGVjayBhcyBydXN0YzsKKysvLyEKKysvLyEgICBpZiBsZXQgU29tZSh0cnVlKSA9IHJ1c3Rj OjpzdXBwb3J0c19mZWF0dXJlKCJkb2NfY2ZnIikgeworKy8vISAgICAgIHByaW50bG4hKCJjYXJn bzpydXN0Yy1jZmc9aGFzX2RvY19jZmciKTsKKysvLyEgICB9CisrLy8hICAgYGBgCisrLy8hCisr Ly8hICogQ2hlY2sgdGhhdCB0aGUgcnVubmluZyBjb21waWxlciBpcyBvbiB0aGUgc3RhYmxlIGNo YW5uZWw6CisrLy8hCisrLy8hICAgYGBgcnVzdAorKy8vISAgIGV4dGVybiBjcmF0ZSB2ZXJzaW9u X2NoZWNrIGFzIHJ1c3RjOworKy8vIQorKy8vISAgIG1hdGNoIHJ1c3RjOjpDaGFubmVsOjpyZWFk KCkgeworKy8vISAgICAgICBTb21lKGMpIGlmIGMuaXNfc3RhYmxlKCkgPT4gZm9ybWF0ISgiWWVz ISBJdCdzIHN0YWJsZS4iKSwKKysvLyEgICAgICAgU29tZShjKSA9PiBmb3JtYXQhKCJObywgdGhl IGNoYW5uZWwge30gaXMgbm90IHN0YWJsZS4iLCBjKSwKKysvLyEgICAgICAgTm9uZSA9PiBmb3Jt YXQhKCJDb3VsZG4ndCBkZXRlcm1pbmUgdGhlIHJ1c3RjIHZlcnNpb24uIikKKysvLyEgICB9Owor Ky8vISAgIGBgYAorKy8vIQorKy8vISBUbyBpbnRlcmFjdCB3aXRoIHRoZSB2ZXJzaW9uLCByZWxl YXNlIGRhdGUsIGFuZCByZWxlYXNlIGNoYW5uZWwgYXMgc3RydWN0cywKKysvLyEgdXNlIFtgVmVy c2lvbmBdLCBbYERhdGVgXSwgYW5kIFtgQ2hhbm5lbGBdLCByZXNwZWN0aXZlbHkuIFRoZSBbYHRy aXBsZSgpYF0KKysvLyEgZnVuY3Rpb24gcmV0dXJucyBhbGwgdGhyZWUgdmFsdWVzIGVmZmljaWVu dGx5LgorKy8vIQorKy8vISAjIEFsdGVybmF0aXZlcworKy8vIQorKy8vISBUaGlzIGNyYXRlIGlz IGRlYWQgc2ltcGxlIHdpdGggbm8gZGVwZW5kZW5jaWVzLiBJZiB5b3UgbmVlZCBzb21ldGhpbmcg bW9yZQorKy8vISBhbmQgZG9uJ3QgY2FyZSBhYm91dCBwYW5pY2tpbmcgaWYgdGhlIHZlcnNpb24g Y2Fubm90IGJlIG9idGFpbmVkLCBvciBpZiB5b3UKKysvLyEgZG9uJ3QgbWluZCBhZGRpbmcgZGVw ZW5kZW5jaWVzLCBzZWUKKysvLyEgW3J1c3RjX3ZlcnNpb25dKGh0dHBzOi8vY3JhdGVzLmlvL2Ny YXRlcy9ydXN0Y192ZXJzaW9uKS4KKysKKysjIVthbGxvdyhkZXByZWNhdGVkKV0KKysKKyttb2Qg dmVyc2lvbjsKKyttb2QgY2hhbm5lbDsKKyttb2QgZGF0ZTsKKysKKyt1c2Ugc3RkOjplbnY7Cisr dXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKKysKKysjW2RvYyhpbmxpbmUpXSBwdWIgdXNlIHZl cnNpb246Oio7CisrI1tkb2MoaW5saW5lKV0gcHViIHVzZSBjaGFubmVsOjoqOworKyNbZG9jKGlu bGluZSldIHB1YiB1c2UgZGF0ZTo6KjsKKysKKysvLy8gUGFyc2VzICh2ZXJzaW9uLCBkYXRlKSBh cyBhdmFpbGFibGUgZnJvbSBydXN0YyB2ZXJzaW9uIHN0cmluZy4KKytmbiB2ZXJzaW9uX2FuZF9k YXRlX2Zyb21fcnVzdGNfdmVyc2lvbihzOiAmc3RyKSAtPiAoT3B0aW9uPFN0cmluZz4sIE9wdGlv bjxTdHJpbmc+KSB7CisrICAgIGxldCBsYXN0X2xpbmUgPSBzLmxpbmVzKCkubGFzdCgpLnVud3Jh cF9vcihzKTsKKysgICAgbGV0IG11dCBjb21wb25lbnRzID0gbGFzdF9saW5lLnRyaW0oKS5zcGxp dCgiICIpOworKyAgICBsZXQgdmVyc2lvbiA9IGNvbXBvbmVudHMubnRoKDEpOworKyAgICBsZXQg ZGF0ZSA9IGNvbXBvbmVudHMuZmlsdGVyKHxjfCBjLmVuZHNfd2l0aCgnKScpKS5uZXh0KCkKKysg ICAgICAgIC5tYXAofHN8IHMudHJpbV9yaWdodCgpLnRyaW1fcmlnaHRfbWF0Y2hlcygiKSIpLnRy aW1fbGVmdCgpLnRyaW1fbGVmdF9tYXRjaGVzKCcoJykpOworKyAgICAodmVyc2lvbi5tYXAofHN8 IHMudG9fc3RyaW5nKCkpLCBkYXRlLm1hcCh8c3wgcy50b19zdHJpbmcoKSkpCisrfQorKworKy8v LyBQYXJzZXMgKHZlcnNpb24sIGRhdGUpIGFzIGF2YWlsYWJsZSBmcm9tIHJ1c3RjIHZlcmJvc2Ug dmVyc2lvbiBvdXRwdXQuCisrZm4gdmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcmJvc2Vf dmVyc2lvbihzOiAmc3RyKSAtPiAoT3B0aW9uPFN0cmluZz4sIE9wdGlvbjxTdHJpbmc+KSB7Cisr ICAgIGxldCAobXV0IHZlcnNpb24sIG11dCBkYXRlKSA9IChOb25lLCBOb25lKTsKKysgICAgZm9y IGxpbmUgaW4gcy5saW5lcygpIHsKKysgICAgICAgIGxldCBzcGxpdCA9IHxzOiAmc3RyfCBzLnNw bGl0bigyLCAiOiIpLm50aCgxKS5tYXAofHN8IHMudHJpbSgpLnRvX3N0cmluZygpKTsKKysgICAg ICAgIG1hdGNoIGxpbmUudHJpbSgpLnNwbGl0KCIgIikubnRoKDApIHsKKysgICAgICAgICAgICBT b21lKCJydXN0YyIpID0+IHsKKysgICAgICAgICAgICAgICAgbGV0ICh2LCBkKSA9IHZlcnNpb25f YW5kX2RhdGVfZnJvbV9ydXN0Y192ZXJzaW9uKGxpbmUpOworKyAgICAgICAgICAgICAgICB2ZXJz aW9uID0gdmVyc2lvbi5vcih2KTsKKysgICAgICAgICAgICAgICAgZGF0ZSA9IGRhdGUub3IoZCk7 CisrICAgICAgICAgICAgfSwKKysgICAgICAgICAgICBTb21lKCJyZWxlYXNlOiIpID0+IHZlcnNp b24gPSBzcGxpdChsaW5lKSwKKysgICAgICAgICAgICBTb21lKCJjb21taXQtZGF0ZToiKSBpZiBs aW5lLmVuZHNfd2l0aCgidW5rbm93biIpID0+IGRhdGUgPSBOb25lLAorKyAgICAgICAgICAgIFNv bWUoImNvbW1pdC1kYXRlOiIpID0+IGRhdGUgPSBzcGxpdChsaW5lKSwKKysgICAgICAgICAgICBf ID0+IGNvbnRpbnVlCisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgKHZlcnNpb24sIGRhdGUp CisrfQorKworKy8vLyBSZXR1cm5zICh2ZXJzaW9uLCBkYXRlKSBhcyBhdmFpbGFibGUgZnJvbSBg cnVzdGMgLS12ZXJzaW9uYC4KKytmbiBnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpIC0+IE9wdGlvbjwo T3B0aW9uPFN0cmluZz4sIE9wdGlvbjxTdHJpbmc+KT4geworKyAgICBsZXQgcnVzdGMgPSBlbnY6 OnZhcigiUlVTVEMiKS51bndyYXBfb3JfZWxzZSh8X3wgInJ1c3RjIi50b19zdHJpbmcoKSk7Cisr ICAgIENvbW1hbmQ6Om5ldyhydXN0YykuYXJnKCItLXZlcmJvc2UiKS5hcmcoIi0tdmVyc2lvbiIp Lm91dHB1dCgpLm9rKCkKKysgICAgICAgIC5hbmRfdGhlbih8b3V0cHV0fCBTdHJpbmc6OmZyb21f dXRmOChvdXRwdXQuc3Rkb3V0KS5vaygpKQorKyAgICAgICAgLm1hcCh8c3wgdmVyc2lvbl9hbmRf ZGF0ZV9mcm9tX3J1c3RjX3ZlcmJvc2VfdmVyc2lvbigmcykpCisrfQorKworKy8vLyBSZWFkcyB0 aGUgdHJpcGxlIG9mIFtgVmVyc2lvbmBdLCBbYENoYW5uZWxgXSwgYW5kIFtgRGF0ZWBdIG9mIHRo ZSBpbnN0YWxsZWQKKysvLy8gb3IgcnVubmluZyBgcnVzdGNgLgorKy8vLworKy8vLyBJZiBhbnkg YXR0cmlidXRlIGNhbm5vdCBiZSBkZXRlcm1pbmVkIChzZWUgdGhlIFt0b3AtbGV2ZWwKKysvLy8g ZG9jdW1lbnRhdGlvbl0oY3JhdGUpKSwgcmV0dXJucyBgTm9uZWAuCisrLy8vCisrLy8vIFRvIG9i dGFpbiBvbmx5IG9uZSBvZiB0aHJlZSBhdHRyaWJ1dGVzLCB1c2UgW2BWZXJzaW9uOjpyZWFkKClg XSwKKysvLy8gW2BDaGFubmVsOjpyZWFkKClgXSwgb3IgW2BEYXRlOjpyZWFkKClgXS4KKytwdWIg Zm4gdHJpcGxlKCkgLT4gT3B0aW9uPChWZXJzaW9uLCBDaGFubmVsLCBEYXRlKT4geworKyAgICBs ZXQgKHZlcnNpb25fc3RyLCBkYXRlX3N0cikgPSBtYXRjaCBnZXRfdmVyc2lvbl9hbmRfZGF0ZSgp IHsKKysgICAgICAgIFNvbWUoKFNvbWUodmVyc2lvbiksIFNvbWUoZGF0ZSkpKSA9PiAodmVyc2lv biwgZGF0ZSksCisrICAgICAgICBfID0+IHJldHVybiBOb25lCisrICAgIH07CisrCisrICAgIC8v IENhbid0IHVzZSBgP2Agb3IgYHRyeSFgIGZvciBgT3B0aW9uYCBpbiAxLjAuMC4KKysgICAgbWF0 Y2ggVmVyc2lvbjo6cGFyc2UoJnZlcnNpb25fc3RyKSB7CisrICAgICAgICBTb21lKHZlcnNpb24p ID0+IG1hdGNoIENoYW5uZWw6OnBhcnNlKCZ2ZXJzaW9uX3N0cikgeworKyAgICAgICAgICAgIFNv bWUoY2hhbm5lbCkgPT4gbWF0Y2ggRGF0ZTo6cGFyc2UoJmRhdGVfc3RyKSB7CisrICAgICAgICAg ICAgICAgIFNvbWUoZGF0ZSkgPT4gU29tZSgodmVyc2lvbiwgY2hhbm5lbCwgZGF0ZSkpLAorKyAg ICAgICAgICAgICAgICBfID0+IE5vbmUsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICAgICBf ID0+IE5vbmUsCisrICAgICAgICB9LAorKyAgICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9Cisr CisrLy8vIENoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHdhcyBy ZWxlYXNlZCAqKm9uIG9yIGFmdGVyKioKKysvLy8gc29tZSBkYXRlLgorKy8vLworKy8vLyBUaGUg Zm9ybWF0IG9mIGBtaW5fZGF0ZWAgbXVzdCBiZSBZWVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAy MDE2LTEyLTIwYCBvcgorKy8vLyBgMjAxNy0wMS0wOWAuCisrLy8vCisrLy8vIElmIHRoZSBkYXRl IGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWluX2RhdGVgIGNvdWxkIG5v dCBiZQorKy8vLyBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1 ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCisrLy8vIHdhcyByZWxlYXNlIG9uIG9yIGFmdGVy IGBtaW5fZGF0ZWAgYW5kIGBmYWxzZWAgb3RoZXJ3aXNlLgorK3B1YiBmbiBpc19taW5fZGF0ZSht aW5fZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsKKysgICAgbWF0Y2ggKERhdGU6OnJlYWQo KSwgRGF0ZTo6cGFyc2UobWluX2RhdGUpKSB7CisrICAgICAgICAoU29tZShydXN0Y19kYXRlKSwg U29tZShtaW5fZGF0ZSkpID0+IFNvbWUocnVzdGNfZGF0ZSA+PSBtaW5fZGF0ZSksCisrICAgICAg ICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hlY2tzIHRoYXQgdGhlIHJ1bm5pbmcg b3IgaW5zdGFsbGVkIGBydXN0Y2Agd2FzIHJlbGVhc2VkICoqb24gb3IgYmVmb3JlKioKKysvLy8g c29tZSBkYXRlLgorKy8vLworKy8vLyBUaGUgZm9ybWF0IG9mIGBtYXhfZGF0ZWAgbXVzdCBiZSBZ WVlZLU1NLURELiBGb3IgaW5zdGFuY2U6IGAyMDE2LTEyLTIwYCBvcgorKy8vLyBgMjAxNy0wMS0w OWAuCisrLy8vCisrLy8vIElmIHRoZSBkYXRlIGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2Vk LCBvciBpZiBgbWF4X2RhdGVgIGNvdWxkIG5vdCBiZQorKy8vLyBwYXJzZWQsIHJldHVybnMgYE5v bmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCisr Ly8vIHdhcyByZWxlYXNlIG9uIG9yIGJlZm9yZSBgbWF4X2RhdGVgIGFuZCBgZmFsc2VgIG90aGVy d2lzZS4KKytwdWIgZm4gaXNfbWF4X2RhdGUobWF4X2RhdGU6ICZzdHIpIC0+IE9wdGlvbjxib29s PiB7CisrICAgIG1hdGNoIChEYXRlOjpyZWFkKCksIERhdGU6OnBhcnNlKG1heF9kYXRlKSkgewor KyAgICAgICAgKFNvbWUocnVzdGNfZGF0ZSksIFNvbWUobWF4X2RhdGUpKSA9PiBTb21lKHJ1c3Rj X2RhdGUgPD0gbWF4X2RhdGUpLAorKyAgICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9CisrCisr Ly8vIENoZWNrcyB0aGF0IHRoZSBydW5uaW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIHdhcyByZWxl YXNlZCAqKmV4YWN0bHkqKiBvbgorKy8vLyBzb21lIGRhdGUuCisrLy8vCisrLy8vIFRoZSBmb3Jt YXQgb2YgYGRhdGVgIG11c3QgYmUgWVlZWS1NTS1ERC4gRm9yIGluc3RhbmNlOiBgMjAxNi0xMi0y MGAgb3IKKysvLy8gYDIwMTctMDEtMDlgLgorKy8vLworKy8vLyBJZiB0aGUgZGF0ZSBjYW5ub3Qg YmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYGRhdGVgIGNvdWxkIG5vdCBiZSBwYXJzZWQs CisrLy8vIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGlu c3RhbGxlZCBgcnVzdGNgIHdhcworKy8vLyByZWxlYXNlIG9uIGBkYXRlYCBhbmQgYGZhbHNlYCBv dGhlcndpc2UuCisrcHViIGZuIGlzX2V4YWN0X2RhdGUoZGF0ZTogJnN0cikgLT4gT3B0aW9uPGJv b2w+IHsKKysgICAgbWF0Y2ggKERhdGU6OnJlYWQoKSwgRGF0ZTo6cGFyc2UoZGF0ZSkpIHsKKysg ICAgICAgIChTb21lKHJ1c3RjX2RhdGUpLCBTb21lKGRhdGUpKSA9PiBTb21lKHJ1c3RjX2RhdGUg PT0gZGF0ZSksCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hlY2tz IHRoYXQgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2AgaXMgKiphdCBsZWFzdCoqIHNv bWUgbWluaW11bQorKy8vLyB2ZXJzaW9uLgorKy8vLworKy8vLyBUaGUgZm9ybWF0IG9mIGBtaW5f dmVyc2lvbmAgaXMgYSBzZW1hbnRpYyB2ZXJzaW9uOiBgMS4zLjBgLCBgMS4xNS4wLWJldGFgLAor Ky8vLyBgMS4xNC4wYCwgYDEuMTYuMC1uaWdodGx5YCwgZXRjLgorKy8vLworKy8vLyBJZiB0aGUg dmVyc2lvbiBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBhcnNlZCwgb3IgaWYgYG1pbl92ZXJzaW9u YCBjb3VsZCBub3QKKysvLy8gYmUgcGFyc2VkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJl dHVybnMgYHRydWVgIGlmIHRoZSBpbnN0YWxsZWQgYHJ1c3RjYAorKy8vLyBpcyBhdCBsZWFzdCBg bWluX3ZlcnNpb25gIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKytwdWIgZm4gaXNfbWluX3ZlcnNp b24obWluX3ZlcnNpb246ICZzdHIpIC0+IE9wdGlvbjxib29sPiB7CisrICAgIG1hdGNoIChWZXJz aW9uOjpyZWFkKCksIFZlcnNpb246OnBhcnNlKG1pbl92ZXJzaW9uKSkgeworKyAgICAgICAgKFNv bWUocnVzdGNfdmVyKSwgU29tZShtaW5fdmVyKSkgPT4gU29tZShydXN0Y192ZXIgPj0gbWluX3Zl ciksCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hlY2tzIHRoYXQg dGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2AgaXMgKiphdCBtb3N0Kiogc29tZSBtYXhp bXVtCisrLy8vIHZlcnNpb24uCisrLy8vCisrLy8vIFRoZSBmb3JtYXQgb2YgYG1heF92ZXJzaW9u YCBpcyBhIHNlbWFudGljIHZlcnNpb246IGAxLjMuMGAsIGAxLjE1LjAtYmV0YWAsCisrLy8vIGAx LjE0LjBgLCBgMS4xNi4wLW5pZ2h0bHlgLCBldGMuCisrLy8vCisrLy8vIElmIHRoZSB2ZXJzaW9u IGNhbm5vdCBiZSByZXRyaWV2ZWQgb3IgcGFyc2VkLCBvciBpZiBgbWF4X3ZlcnNpb25gIGNvdWxk IG5vdAorKy8vLyBiZSBwYXJzZWQsIHJldHVybnMgYE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBg dHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNgCisrLy8vIGlzIGF0IG1vc3QgYG1heF92ZXJz aW9uYCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuCisrcHViIGZuIGlzX21heF92ZXJzaW9uKG1heF92 ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAgICBtYXRjaCAoVmVyc2lvbjo6cmVh ZCgpLCBWZXJzaW9uOjpwYXJzZShtYXhfdmVyc2lvbikpIHsKKysgICAgICAgIChTb21lKHJ1c3Rj X3ZlciksIFNvbWUobWF4X3ZlcikpID0+IFNvbWUocnVzdGNfdmVyIDw9IG1heF92ZXIpLAorKyAg ICAgICAgXyA9PiBOb25lCisrICAgIH0KKyt9CisrCisrLy8vIENoZWNrcyB0aGF0IHRoZSBydW5u aW5nIG9yIGluc3RhbGxlZCBgcnVzdGNgIGlzICoqZXhhY3RseSoqIHNvbWUgdmVyc2lvbi4KKysv Ly8KKysvLy8gVGhlIGZvcm1hdCBvZiBgdmVyc2lvbmAgaXMgYSBzZW1hbnRpYyB2ZXJzaW9uOiBg MS4zLjBgLCBgMS4xNS4wLWJldGFgLAorKy8vLyBgMS4xNC4wYCwgYDEuMTYuMC1uaWdodGx5YCwg ZXRjLgorKy8vLworKy8vLyBJZiB0aGUgdmVyc2lvbiBjYW5ub3QgYmUgcmV0cmlldmVkIG9yIHBh cnNlZCwgb3IgaWYgYHZlcnNpb25gIGNvdWxkIG5vdCBiZQorKy8vLyBwYXJzZWQsIHJldHVybnMg YE5vbmVgLiBPdGhlcndpc2UgcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGluc3RhbGxlZCBgcnVzdGNg IGlzCisrLy8vIGV4YWN0bHkgYHZlcnNpb25gIGFuZCBgZmFsc2VgIG90aGVyd2lzZS4KKytwdWIg Zm4gaXNfZXhhY3RfdmVyc2lvbih2ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248Ym9vbD4geworKyAg ICBtYXRjaCAoVmVyc2lvbjo6cmVhZCgpLCBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKSkgeworKyAg ICAgICAgKFNvbWUocnVzdGNfdmVyKSwgU29tZSh2ZXJzaW9uKSkgPT4gU29tZShydXN0Y192ZXIg PT0gdmVyc2lvbiksCisrICAgICAgICBfID0+IE5vbmUKKysgICAgfQorK30KKysKKysvLy8gQ2hl Y2tzIHdoZXRoZXIgdGhlIHJ1bm5pbmcgb3IgaW5zdGFsbGVkIGBydXN0Y2Agc3VwcG9ydHMgZmVh dHVyZSBmbGFncy4KKysvLy8KKysvLy8gSW4gb3RoZXIgd29yZHMsIGlmIHRoZSBjaGFubmVsIGlz IGVpdGhlciAibmlnaHRseSIgb3IgImRldiIuCisrLy8vCisrLy8vIE5vdGUgdGhhdCBzdXBwb3J0 IGZvciBzcGVjaWZpYyBgcnVzdGNgIGZlYXR1cmVzIGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVk CisrLy8vIHZpYSB0aGUgYGFsbG93LWZlYXR1cmVzYCBjb21waWxlciBmbGFnLCB3aGljaCB0aGlz IGZ1bmN0aW9uIF9kb2VzIG5vdF8KKysvLy8gY2hlY2suIFRoYXQgaXMsIHRoaXMgZnVuY3Rpb24g X2RvZXMgbm90XyBjaGVjayB3aGV0aGVyIGEgX3NwZWNpZmljXyBmZWF0dXJlCisrLy8vIGlzIHN1 cHBvcnRlZCwgYnV0IGluc3RlYWQgd2hldGhlciBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkIGF0IGFs bC4gVG8gY2hlY2sKKysvLy8gZm9yIHN1cHBvcnQgZm9yIGEgc3BlY2lmaWMgZmVhdHVyZSwgdXNl IFtgc3VwcG9ydHNfZmVhdHVyZSgpYF0uCisrLy8vCisrLy8vIElmIHRoZSB2ZXJzaW9uIGNvdWxk IG5vdCBiZSBkZXRlcm1pbmVkLCByZXR1cm5zIGBOb25lYC4gT3RoZXJ3aXNlIHJldHVybnMKKysv Ly8gYHRydWVgIGlmIHRoZSBydW5uaW5nIHZlcnNpb24gc3VwcG9ydHMgZmVhdHVyZSBmbGFncyBh bmQgYGZhbHNlYCBvdGhlcndpc2UuCisrcHViIGZuIGlzX2ZlYXR1cmVfZmxhZ2dhYmxlKCkgLT4g T3B0aW9uPGJvb2w+IHsKKysgICAgQ2hhbm5lbDo6cmVhZCgpLm1hcCh8Y3wgYy5zdXBwb3J0c19m ZWF0dXJlcygpKQorK30KKysKKysvLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIHJ1bm5pbmcgb3IgaW5z dGFsbGVkIGBydXN0Y2Agc3VwcG9ydHMgYGZlYXR1cmVgLgorKy8vLworKy8vLyBSZXR1cm5zIF90 cnVlXyBfaWZmXyBbYGlzX2ZlYXR1cmVfZmxhZ2dhYmxlKClgXSByZXR1cm5zIGB0cnVlYCBfYW5k XyB0aGUKKysvLy8gZmVhdHVyZSBpcyBub3QgZGlzYWJsZWQgdmlhIGV4Y2x1c2lvbiBpbiBgYWxs b3ctZmVhdHVyZXNgIHZpYSBgUlVTVEZMQUdTYCBvcgorKy8vLyBgQ0FSR09fRU5DT0RFRF9SVVNU RkxBR1NgLiBJZiB0aGUgdmVyc2lvbiBjb3VsZCBub3QgYmUgZGV0ZXJtaW5lZCwgcmV0dXJucwor Ky8vLyBgTm9uZWAuCisrLy8vCisrLy8vICMgRXhhbXBsZQorKy8vLworKy8vLyBgYGBydXN0Cisr Ly8vIHVzZSB2ZXJzaW9uX2NoZWNrIGFzIHJ1c3RjOworKy8vLworKy8vLyBpZiBsZXQgU29tZSh0 cnVlKSA9IHJ1c3RjOjpzdXBwb3J0c19mZWF0dXJlKCJkb2NfY2ZnIikgeworKy8vLyAgICBwcmlu dGxuISgiY2FyZ286cnVzdGMtY2ZnPWhhc19kb2NfY2ZnIik7CisrLy8vIH0KKysvLy8gYGBgCisr cHViIGZuIHN1cHBvcnRzX2ZlYXR1cmUoZmVhdHVyZTogJnN0cikgLT4gT3B0aW9uPGJvb2w+IHsK KysgICAgbWF0Y2ggaXNfZmVhdHVyZV9mbGFnZ2FibGUoKSB7CisrICAgICAgICBTb21lKHRydWUp ID0+IHsgLyogY29udGludWUgKi8gfQorKyAgICAgICAgU29tZShmYWxzZSkgPT4gcmV0dXJuIFNv bWUoZmFsc2UpLAorKyAgICAgICAgTm9uZSA9PiByZXR1cm4gTm9uZSwKKysgICAgfQorKworKyAg ICBsZXQgZW52X2ZsYWdzID0gZW52Ojp2YXJfb3MoIkNBUkdPX0VOQ09ERURfUlVTVEZMQUdTIikK KysgICAgICAgIC5tYXAofGZsYWdzfCAoZmxhZ3MsICdceDFmJykpCisrICAgICAgICAub3JfZWxz ZSh8fCBlbnY6OnZhcl9vcygiUlVTVEZMQUdTIikubWFwKHxmbGFnc3wgKGZsYWdzLCAnICcpKSk7 CisrCisrICAgIGlmIGxldCBTb21lKChmbGFncywgZGVsaW0pKSA9IGVudl9mbGFncyB7CisrICAg ICAgICBjb25zdCBBTExPV19GRUFUVVJFUzogJidzdGF0aWMgc3RyID0gImFsbG93LWZlYXR1cmVz PSI7CisrCisrICAgICAgICBsZXQgcnVzdGZsYWdzID0gZmxhZ3MudG9fc3RyaW5nX2xvc3N5KCk7 CisrICAgICAgICBsZXQgYWxsb3dfZmVhdHVyZXMgPSBydXN0ZmxhZ3Muc3BsaXQoZGVsaW0pCisr ICAgICAgICAgICAgLm1hcCh8ZmxhZ3wgZmxhZy50cmltX2xlZnRfbWF0Y2hlcygiLVoiKS50cmlt KCkpCisrICAgICAgICAgICAgLmZpbHRlcih8ZmxhZ3wgZmxhZy5zdGFydHNfd2l0aChBTExPV19G RUFUVVJFUykpCisrICAgICAgICAgICAgLm1hcCh8ZmxhZ3wgJmZsYWdbQUxMT1dfRkVBVFVSRVMu bGVuKCkuLl0pOworKworKyAgICAgICAgaWYgbGV0IFNvbWUoYWxsb3dfZmVhdHVyZXMpID0gYWxs b3dfZmVhdHVyZXMubGFzdCgpIHsKKysgICAgICAgICAgICByZXR1cm4gU29tZShhbGxvd19mZWF0 dXJlcy5zcGxpdCgnLCcpLmFueSh8ZnwgZi50cmltKCkgPT0gZmVhdHVyZSkpOworKyAgICAgICAg fQorKyAgICB9CisrCisrICAgIC8vIElmIHRoZXJlIGFyZSBubyBgUlVTVEZMQUdTYCBvciBgQ0FS R09fRU5DT0RFRF9SVVNURkxBR1NgIG9yIHRoZXkgZG9uJ3QKKysgICAgLy8gY29udGFpbiBhbiBg YWxsb3ctZmVhdHVyZXNgIGZsYWcsIGFzc3VtZSBjb21waWxlciBhbGxvd3MgYWxsIGZlYXR1cmVz LgorKyAgICBTb21lKHRydWUpCisrfQorKworKyNbY2ZnKHRlc3QpXQorK21vZCB0ZXN0cyB7Cisr ICAgIHVzZSBzdGQ6OntlbnYsIGZzfTsKKysKKysgICAgdXNlIHN1cGVyOjp2ZXJzaW9uX2FuZF9k YXRlX2Zyb21fcnVzdGNfdmVyc2lvbjsKKysgICAgdXNlIHN1cGVyOjp2ZXJzaW9uX2FuZF9kYXRl X2Zyb21fcnVzdGNfdmVyYm9zZV92ZXJzaW9uOworKworKyAgICBtYWNyb19ydWxlcyEgY2hlY2tf cGFyc2UgeworKyAgICAgICAgKEAgJGY6ZXhwciwgJHM6ZXhwciA9PiAkdjpleHByLCAkZDpleHBy KSA9PiAoeworKyAgICAgICAgICAgIGlmIGxldCAoU29tZSh2KSwgZCkgPSAkZigmJHMpIHsKKysg ICAgICAgICAgICAgICAgbGV0IGVfZDogT3B0aW9uPCZzdHI+ID0gJGQuaW50bygpOworKyAgICAg ICAgICAgICAgICBhc3NlcnRfZXEhKCh2LCBkKSwgKCR2LnRvX3N0cmluZygpLCBlX2QubWFwKHxz fCBzLmludG8oKSkpKTsKKysgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICBw YW5pYyEoIns6P30gZGlkbid0IHBhcnNlIGZvciB2ZXJzaW9uIHRlc3RpbmcuIiwgJHMpOworKyAg ICAgICAgICAgIH0KKysgICAgICAgIH0pOworKyAgICAgICAgKCRmOmV4cHIsICRzOmV4cHIgPT4g JHY6ZXhwciwgJGQ6ZXhwcikgPT4gKHsKKysgICAgICAgICAgICBsZXQgd2FybiA9ICJ3YXJuaW5n OiBpbnZhbGlkIGxvZ2dpbmcgc3BlYyAnd2FybmluZycsIGlnbm9yaW5nIGl0IjsKKysgICAgICAg ICAgICBsZXQgd2FybjIgPSAid2FybmluZzogc29ycnksIHNvbWV0aGluZyB3ZW50IHdyb25nIDoo c2FkKSI7CisrICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICRzID0+ICR2LCAkZCk7Cisr ICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICZmb3JtYXQhKCJ7fVxue30iLCB3YXJuLCAk cykgPT4gJHYsICRkKTsKKysgICAgICAgICAgICBjaGVja19wYXJzZSEoQCAkZiwgJmZvcm1hdCEo Int9XG57fSIsIHdhcm4yLCAkcykgPT4gJHYsICRkKTsKKysgICAgICAgICAgICBjaGVja19wYXJz ZSEoQCAkZiwgJmZvcm1hdCEoInt9XG57fVxue30iLCB3YXJuLCB3YXJuMiwgJHMpID0+ICR2LCAk ZCk7CisrICAgICAgICAgICAgY2hlY2tfcGFyc2UhKEAgJGYsICZmb3JtYXQhKCJ7fVxue31cbnt9 Iiwgd2FybjIsIHdhcm4sICRzKSA9PiAkdiwgJGQpOworKyAgICAgICAgfSkKKysgICAgfQorKwor KyAgICBtYWNyb19ydWxlcyEgY2hlY2tfdGVyc2VfcGFyc2UgeworKyAgICAgICAgKCQoJHM6ZXhw ciA9PiAkdjpleHByLCAkZDpleHByLCkrKSA9PiB7JCgKKysgICAgICAgICAgICBjaGVja19wYXJz ZSEodmVyc2lvbl9hbmRfZGF0ZV9mcm9tX3J1c3RjX3ZlcnNpb24sICRzID0+ICR2LCAkZCk7Cisr ICAgICAgICApK30KKysgICAgfQorKworKyAgICBtYWNyb19ydWxlcyEgY2hlY2tfdmVyYm9zZV9w YXJzZSB7CisrICAgICAgICAoJCgkczpleHByID0+ICR2OmV4cHIsICRkOmV4cHIsKSspID0+IHsk KAorKyAgICAgICAgICAgIGNoZWNrX3BhcnNlISh2ZXJzaW9uX2FuZF9kYXRlX2Zyb21fcnVzdGNf dmVyYm9zZV92ZXJzaW9uLCAkcyA9PiAkdiwgJGQpOworKyAgICAgICAgKSt9CisrICAgIH0KKysK KysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X3ZlcnNpb25fcGFyc2UoKSB7CisrICAgICAgICBj aGVja190ZXJzZV9wYXJzZSEgeworKyAgICAgICAgICAgICJydXN0YyAxLjE4LjAiID0+ICIxLjE4 LjAiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAxLjguMCIgPT4gIjEuOC4wIiwgTm9uZSwK KysgICAgICAgICAgICAicnVzdGMgMS4yMC4wLW5pZ2h0bHkiID0+ICIxLjIwLjAtbmlnaHRseSIs IE5vbmUsCisrICAgICAgICAgICAgInJ1c3RjIDEuMjAiID0+ICIxLjIwIiwgTm9uZSwKKysgICAg ICAgICAgICAicnVzdGMgMS4zIiA9PiAiMS4zIiwgTm9uZSwKKysgICAgICAgICAgICAicnVzdGMg MSIgPT4gIjEiLCBOb25lLAorKyAgICAgICAgICAgICJydXN0YyAxLjUuMS1iZXRhIiA9PiAiMS41 LjEtYmV0YSIsIE5vbmUsCisrICAgICAgICAgICAgInJ1c3RjIDEuMjAuMCAoMjAxNy0wNy0wOSki ID0+ICIxLjIwLjAiLCBTb21lKCIyMDE3LTA3LTA5IiksCisrICAgICAgICAgICAgInJ1c3RjIDEu MjAuMC1kZXYgKDIwMTctMDctMDkpIiA9PiAiMS4yMC4wLWRldiIsIFNvbWUoIjIwMTctMDctMDki KSwKKysgICAgICAgICAgICAicnVzdGMgMS4yMC4wLW5pZ2h0bHkgKGQ4NDY5M2I5MyAyMDE3LTA3 LTA5KSIgPT4gIjEuMjAuMC1uaWdodGx5IiwgU29tZSgiMjAxNy0wNy0wOSIpLAorKyAgICAgICAg ICAgICJydXN0YyAxLjIwLjAgKGQ4NDY5M2I5MyAyMDE3LTA3LTA5KSIgPT4gIjEuMjAuMCIsIFNv bWUoIjIwMTctMDctMDkiKSwKKysgICAgICAgICAgICAicnVzdGMgMS4zMC4wLW5pZ2h0bHkgKDNi YzJjYTdlNCAyMDE4LTA5LTIwKSIgPT4gIjEuMzAuMC1uaWdodGx5IiwgU29tZSgiMjAxOC0wOS0y MCIpLAorKyAgICAgICAgfTsKKysgICAgfQorKworKyAgICAjW3Rlc3RdCisrICAgIGZuIHRlc3Rf dmVyYm9zZV92ZXJzaW9uX3BhcnNlKCkgeworKyAgICAgICAgY2hlY2tfdmVyYm9zZV9wYXJzZSEg eworKyAgICAgICAgICAgICJydXN0YyAxLjAuMCAoYTU5ZGUzN2U5IDIwMTUtMDUtMTMpIChidWls dCAyMDE1LTA1LTE0KVxuXAorKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCisrICAg ICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiBhNTlkZTM3ZTk5MDYwMTYyYTI2NzRlM2ZmNDU0MDlh YzczNTk1YzBlXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiAyMDE1LTA1LTEzXG5c CisrICAgICAgICAgICAgICAgIGJ1aWxkLWRhdGU6IDIwMTUtMDUtMTRcblwKKysgICAgICAgICAg ICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAgICAg IHJlbGVhc2U6IDEuMC4wIiA9PiAiMS4wLjAiLCBTb21lKCIyMDE1LTA1LTEzIiksCisrCisrICAg ICAgICAgICAgInJ1c3RjIDEuMC4wIChhNTlkZTM3ZTkgMjAxNS0wNS0xMykgKGJ1aWx0IDIwMTUt MDUtMTQpXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1oYXNoOiBhNTlkZTM3ZTk5MDYwMTYy YTI2NzRlM2ZmNDU0MDlhYzczNTk1YzBlXG5cCisrICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRl OiAyMDE1LTA1LTEzXG5cCisrICAgICAgICAgICAgICAgIGJ1aWxkLWRhdGU6IDIwMTUtMDUtMTRc blwKKysgICAgICAgICAgICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisr ICAgICAgICAgICAgICAgIHJlbGVhc2U6IDEuMC4wIiA9PiAiMS4wLjAiLCBTb21lKCIyMDE1LTA1 LTEzIiksCisrCisrICAgICAgICAgICAgInJ1c3RjIDEuNTAuMCAoY2I3NWFkNWRiIDIwMjEtMDIt MTApXG5cCisrICAgICAgICAgICAgICAgIGJpbmFyeTogcnVzdGNcblwKKysgICAgICAgICAgICAg ICAgY29tbWl0LWhhc2g6IGNiNzVhZDVkYjAyNzgzZThiMDIyMmZlZTM2M2M1ZjYzZjdlMmNmNWJc blwKKysgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IDIwMjEtMDItMTBcblwKKysgICAgICAg ICAgICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAg ICAgIHJlbGVhc2U6IDEuNTAuMCIgPT4gIjEuNTAuMCIsIFNvbWUoIjIwMjEtMDItMTAiKSwKKysK KysgICAgICAgICAgICAicnVzdGMgMS41Mi4wLW5pZ2h0bHkgKDIzNDc4MWFmZSAyMDIxLTAzLTA3 KVxuXAorKyAgICAgICAgICAgICAgICBiaW5hcnk6IHJ1c3RjXG5cCisrICAgICAgICAgICAgICAg IGNvbW1pdC1oYXNoOiAyMzQ3ODFhZmUzM2QzZjMzOWIwMDJmODVmOTQ4MDQ2ZDg0NzZjZmM5XG5c CisrICAgICAgICAgICAgICAgIGNvbW1pdC1kYXRlOiAyMDIxLTAzLTA3XG5cCisrICAgICAgICAg ICAgICAgIGhvc3Q6IHg4Nl82NC11bmtub3duLWxpbnV4LWdudVxuXAorKyAgICAgICAgICAgICAg ICByZWxlYXNlOiAxLjUyLjAtbmlnaHRseVxuXAorKyAgICAgICAgICAgICAgICBMTFZNIHZlcnNp b246IDEyLjAuMCIgPT4gIjEuNTIuMC1uaWdodGx5IiwgU29tZSgiMjAyMS0wMy0wNyIpLAorKwor KyAgICAgICAgICAgICJydXN0YyAxLjQxLjFcblwKKysgICAgICAgICAgICAgICAgYmluYXJ5OiBy dXN0Y1xuXAorKyAgICAgICAgICAgICAgICBjb21taXQtaGFzaDogdW5rbm93blxuXAorKyAgICAg ICAgICAgICAgICBjb21taXQtZGF0ZTogdW5rbm93blxuXAorKyAgICAgICAgICAgICAgICBob3N0 OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnVcblwKKysgICAgICAgICAgICAgICAgcmVsZWFzZTog MS40MS4xXG5cCisrICAgICAgICAgICAgICAgIExMVk0gdmVyc2lvbjogNy4wIiA9PiAiMS40MS4x IiwgTm9uZSwKKysKKysgICAgICAgICAgICAicnVzdGMgMS40OS4wXG5cCisrICAgICAgICAgICAg ICAgIGJpbmFyeTogcnVzdGNcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IHVua25v d25cblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IHVua25vd25cblwKKysgICAgICAg ICAgICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAg ICAgIHJlbGVhc2U6IDEuNDkuMCIgPT4gIjEuNDkuMCIsIE5vbmUsCisrCisrICAgICAgICAgICAg InJ1c3RjIDEuNTAuMCAoRmVkb3JhIDEuNTAuMC0xLmZjMzMpXG5cCisrICAgICAgICAgICAgICAg IGJpbmFyeTogcnVzdGNcblwKKysgICAgICAgICAgICAgICAgY29tbWl0LWhhc2g6IHVua25vd25c blwKKysgICAgICAgICAgICAgICAgY29tbWl0LWRhdGU6IHVua25vd25cblwKKysgICAgICAgICAg ICAgICAgaG9zdDogeDg2XzY0LXVua25vd24tbGludXgtZ251XG5cCisrICAgICAgICAgICAgICAg IHJlbGVhc2U6IDEuNTAuMCIgPT4gIjEuNTAuMCIsIE5vbmUsCisrICAgICAgICB9OworKyAgICB9 CisrCisrICAgIGZuIHJlYWRfc3RhdGljKHZlcmJvc2U6IGJvb2wsIGNoYW5uZWw6ICZzdHIsIG1p bm9yOiB1c2l6ZSkgLT4gU3RyaW5nIHsKKysgICAgICAgIHVzZSBzdGQ6OmZzOjpGaWxlOworKyAg ICAgICAgdXNlIHN0ZDo6cGF0aDo6UGF0aDsKKysgICAgICAgIHVzZSBzdGQ6OmlvOjp7QnVmUmVh ZGVyLCBSZWFkfTsKKysKKysgICAgICAgIGxldCBzdWJkaXIgPSBpZiB2ZXJib3NlIHsgInZlcmJv c2UiIH0gZWxzZSB7ICJ0ZXJzZSIgfTsKKysgICAgICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KFNU QVRJQ19QQVRIKQorKyAgICAgICAgICAgIC5qb2luKGNoYW5uZWwpCisrICAgICAgICAgICAgLmpv aW4oc3ViZGlyKQorKyAgICAgICAgICAgIC5qb2luKGZvcm1hdCEoInJ1c3RjLTEue30uMCIsIG1p bm9yKSk7CisrCisrICAgICAgICBsZXQgZmlsZSA9IEZpbGU6Om9wZW4ocGF0aCkudW53cmFwKCk7 CisrICAgICAgICBsZXQgbXV0IGJ1Zl9yZWFkZXIgPSBCdWZSZWFkZXI6Om5ldyhmaWxlKTsKKysg ICAgICAgIGxldCBtdXQgY29udGVudHMgPSBTdHJpbmc6Om5ldygpOworKyAgICAgICAgYnVmX3Jl YWRlci5yZWFkX3RvX3N0cmluZygmbXV0IGNvbnRlbnRzKS51bndyYXAoKTsKKysgICAgICAgIGNv bnRlbnRzCisrICAgIH0KKysKKysgICAgc3RhdGljIFNUQVRJQ19QQVRIOiAmJ3N0YXRpYyBzdHIg PSBjb25jYXQhKGVudiEoIkNBUkdPX01BTklGRVNUX0RJUiIpLCAiL3N0YXRpYyIpOworKworKyAg ICBzdGF0aWMgREFURVM6IFsmJ3N0YXRpYyBzdHI7IDUxXSA9IFsKKysgICAgICAgICIyMDE1LTA1 LTEzIiwgIjIwMTUtMDYtMTkiLCAiMjAxNS0wOC0wMyIsICIyMDE1LTA5LTE1IiwgIjIwMTUtMTAt MjciLAorKyAgICAgICAgIjIwMTUtMTItMDQiLCAiMjAxNi0wMS0xOSIsICIyMDE2LTAyLTI5Iiwg IjIwMTYtMDQtMTEiLCAiMjAxNi0wNS0xOCIsCisrICAgICAgICAiMjAxNi0wNy0wMyIsICIyMDE2 LTA4LTE1IiwgIjIwMTYtMDktMjMiLCAiMjAxNi0xMS0wNyIsICIyMDE2LTEyLTE2IiwKKysgICAg ICAgICIyMDE3LTAxLTE5IiwgIjIwMTctMDMtMTAiLCAiMjAxNy0wNC0yNCIsICIyMDE3LTA2LTA2 IiwgIjIwMTctMDctMTciLAorKyAgICAgICAgIjIwMTctMDgtMjciLCAiMjAxNy0xMC0wOSIsICIy MDE3LTExLTIwIiwgIjIwMTgtMDEtMDEiLCAiMjAxOC0wMi0xMiIsCisrICAgICAgICAiMjAxOC0w My0yNSIsICIyMDE4LTA1LTA3IiwgIjIwMTgtMDYtMTkiLCAiMjAxOC0wNy0zMCIsICIyMDE4LTA5 LTExIiwKKysgICAgICAgICIyMDE4LTEwLTI0IiwgIjIwMTgtMTItMDQiLCAiMjAxOS0wMS0xNiIs ICIyMDE5LTAyLTI4IiwgIjIwMTktMDQtMTAiLAorKyAgICAgICAgIjIwMTktMDUtMjAiLCAiMjAx OS0wNy0wMyIsICIyMDE5LTA4LTEzIiwgIjIwMTktMDktMjMiLCAiMjAxOS0xMS0wNCIsCisrICAg ICAgICAiMjAxOS0xMi0xNiIsICIyMDIwLTAxLTI3IiwgIjIwMjAtMDMtMDkiLCAiMjAyMC0wNC0y MCIsICIyMDIwLTA2LTAxIiwKKysgICAgICAgICIyMDIwLTA3LTEzIiwgIjIwMjAtMDgtMjQiLCAi MjAyMC0xMC0wNyIsICIyMDIwLTExLTE2IiwgIjIwMjAtMTItMjkiLAorKyAgICAgICAgIjIwMjEt MDItMTAiLAorKyAgICBdOworKworKyAgICAjW3Rlc3RdCisrICAgIGZuIHRlc3Rfc3RhYmxlX2Nv bXBhdGliaWxpdHkoKSB7CisrICAgICAgICBpZiBlbnY6OnZhcl9vcygiRk9SQ0VfU1RBVElDIiku aXNfbm9uZSgpICYmIGZzOjptZXRhZGF0YShTVEFUSUNfUEFUSCkuaXNfZXJyKCkgeworKyAgICAg ICAgICAgIC8vIFdlIGV4Y2x1ZGUgYC9zdGF0aWNgIHdoZW4gd2UgcGFja2FnZSBgdmVyc2lvbl9j aGVja2AsIHNvIGRvbid0CisrICAgICAgICAgICAgLy8gcnVuIGlmIHN0YXRpYyBmaWxlcyBhcmVu J3QgcHJlc2VudCB1bmxlc3Mgd2Uga25vdyB0aGV5IHNob3VsZCBiZS4KKysgICAgICAgICAgICBy ZXR1cm47CisrICAgICAgICB9CisrCisrICAgICAgICAvLyBFbnN1cmUgd2UgY2FuIHBhcnNlIGFs bCBvdXRwdXQgZnJvbSBhbGwgTGludXggc3RhYmxlIHJlbGVhc2VzLgorKyAgICAgICAgZm9yIHYg aW4gMC4uREFURVMubGVuKCkgeworKyAgICAgICAgICAgIGxldCAodmVyc2lvbiwgZGF0ZSkgPSAo JmZvcm1hdCEoIjEue30uMCIsIHYpLCBTb21lKERBVEVTW3ZdKSk7CisrICAgICAgICAgICAgY2hl Y2tfdGVyc2VfcGFyc2UhKHJlYWRfc3RhdGljKGZhbHNlLCAic3RhYmxlIiwgdikgPT4gdmVyc2lv biwgZGF0ZSwpOworKyAgICAgICAgICAgIGNoZWNrX3ZlcmJvc2VfcGFyc2UhKHJlYWRfc3RhdGlj KHRydWUsICJzdGFibGUiLCB2KSA9PiB2ZXJzaW9uLCBkYXRlLCk7CisrICAgICAgICB9CisrICAg IH0KKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X3BhcnNlX2N1cnJlbnQoKSB7CisrICAg ICAgICBsZXQgKHZlcnNpb24sIGNoYW5uZWwpID0gKDo6VmVyc2lvbjo6cmVhZCgpLCA6OkNoYW5u ZWw6OnJlYWQoKSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uaXNfc29tZSgpKTsKKysgICAg ICAgIGFzc2VydCEoY2hhbm5lbC5pc19zb21lKCkpOworKworKyAgICAgICAgaWYgbGV0IE9rKGtu b3duX2NoYW5uZWwpID0gZW52Ojp2YXIoIktOT1dOX0NIQU5ORUwiKSB7CisrICAgICAgICAgICAg YXNzZXJ0X2VxIShjaGFubmVsLCA6OkNoYW5uZWw6OnBhcnNlKCZrbm93bl9jaGFubmVsKSk7Cisr ICAgICAgICB9CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC92ZXJz aW9uX2NoZWNrL3NyYy92ZXJzaW9uLnJzIGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNr L3NyYy92ZXJzaW9uLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC92ZXJzaW9uX2NoZWNrL3NyYy92ZXJzaW9uLnJzCitAQCAtMCww ICsxLDMxNiBAQAorK3VzZSBzdGQ6OmZtdDsKKysKKysvLy8gVmVyc2lvbiBudW1iZXI6IGBtYWpv ci5taW5vci5wYXRjaGAsIGlnbm9yaW5nIHJlbGVhc2UgY2hhbm5lbC4KKysjW2Rlcml2ZShQYXJ0 aWFsRXEsIEVxLCBDb3B5LCBDbG9uZSwgUGFydGlhbE9yZCwgT3JkKV0KKytwdWIgc3RydWN0IFZl cnNpb24odTY0KTsKKysKKytpbXBsIFZlcnNpb24geworKyAgICAvLy8gUmVhZHMgdGhlIHZlcnNp b24gb2YgdGhlIHJ1bm5pbmcgY29tcGlsZXIuIElmIGl0IGNhbm5vdCBiZSBkZXRlcm1pbmVkCisr ICAgIC8vLyAoc2VlIHRoZSBbdG9wLWxldmVsIGRvY3VtZW50YXRpb25dKGNyYXRlKSksIHJldHVy bnMgYE5vbmVgLgorKyAgICAvLy8KKysgICAgLy8vICMgRXhhbXBsZQorKyAgICAvLy8KKysgICAg Ly8vIGBgYHJ1c3QKKysgICAgLy8vIHVzZSB2ZXJzaW9uX2NoZWNrOjpWZXJzaW9uOworKyAgICAv Ly8KKysgICAgLy8vIG1hdGNoIFZlcnNpb246OnJlYWQoKSB7CisrICAgIC8vLyAgICAgU29tZShk KSA9PiBmb3JtYXQhKCJWZXJzaW9uIGlzOiB7fSIsIGQpLAorKyAgICAvLy8gICAgIE5vbmUgPT4g Zm9ybWF0ISgiRmFpbGVkIHRvIHJlYWQgdGhlIHZlcnNpb24uIikKKysgICAgLy8vIH07CisrICAg IC8vLyBgYGAKKysgICAgcHViIGZuIHJlYWQoKSAtPiBPcHRpb248VmVyc2lvbj4geworKyAgICAg ICAgOjpnZXRfdmVyc2lvbl9hbmRfZGF0ZSgpCisrICAgICAgICAgICAgLmFuZF90aGVuKHwodmVy c2lvbiwgXyl8IHZlcnNpb24pCisrICAgICAgICAgICAgLmFuZF90aGVuKHx2ZXJzaW9ufCBWZXJz aW9uOjpwYXJzZSgmdmVyc2lvbikpCisrICAgIH0KKysKKysKKysgICAgLy8vIFBhcnNlIGEgUnVz dCByZWxlYXNlIHZlcnNpb24gKG9mIHRoZSBmb3JtCisrICAgIC8vLyBgbWFqb3JbLm1pbm9yWy5w YXRjaFstY2hhbm5lbF1dXWApLCBpZ25vcmluZyB0aGUgcmVsZWFzZSBjaGFubmVsLCBpZgorKyAg ICAvLy8gYW55LiBSZXR1cm5zIGBOb25lYCBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVz dCB2ZXJzaW9uIHN0cmluZy4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8v CisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsK KysgICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjE4LjAi KS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjE4LjAiKSk7 CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4yMC4w LW5pZ2h0bHkiKS51bndyYXAoKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIx LjIwLjAiKSk7CisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4yMC4wLWJldGEi KSk7CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4z IikudW53cmFwKCk7CisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4zLjAiKSk7 CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMSIpLnVu d3JhcCgpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEuMC4wIikpOworKyAg ICAvLy8KKysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIm9uZS50d28udGhyZWUiKS5p c19ub25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiMS42NTUzNi4yIiku aXNfbm9uZSgpKTsKKysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEuIDIiKS5pc19u b25lKCkpOworKyAgICAvLy8gYXNzZXJ0IShWZXJzaW9uOjpwYXJzZSgiIikuaXNfbm9uZSgpKTsK KysgICAgLy8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEuIikuaXNfbm9uZSgpKTsKKysgICAg Ly8vIGFzc2VydCEoVmVyc2lvbjo6cGFyc2UoIjEuMi4zLjQiKS5pc19ub25lKCkpOworKyAgICAv Ly8gYGBgCisrICAgIHB1YiBmbiBwYXJzZSh2ZXJzaW9uOiAmc3RyKSAtPiBPcHRpb248VmVyc2lv bj4geworKyAgICAgICAgbGV0IHNwbGl0cyA9IHZlcnNpb24uc3BsaXQoJy0nKQorKyAgICAgICAg ICAgIC5udGgoMCkKKysgICAgICAgICAgICAudW53cmFwX29yKCIiKQorKyAgICAgICAgICAgIC5z cGxpdCgnLicpCisrICAgICAgICAgICAgLm1hcCh8c3wgcy5wYXJzZTo6PHUxNj4oKSk7CisrCisr ICAgICAgICBsZXQgbXV0IG1tcCA9IFswdTE2OyAzXTsKKysgICAgICAgIGZvciAoaSwgc3BsaXQp IGluIHNwbGl0cy5lbnVtZXJhdGUoKSB7CisrICAgICAgICAgICAgbW1wW2ldID0gbWF0Y2ggKGks IHNwbGl0KSB7CisrICAgICAgICAgICAgICAgICgzLCBfKSB8IChfLCBFcnIoXykpID0+IHJldHVy biBOb25lLAorKyAgICAgICAgICAgICAgICAoXywgT2sodikpID0+IHYsCisrICAgICAgICAgICAg fTsKKysgICAgICAgIH0KKysKKysgICAgICAgIGxldCAobWFqLCBtaW4sIHBhdGNoKSA9IChtbXBb MF0sIG1tcFsxXSwgbW1wWzJdKTsKKysgICAgICAgIFNvbWUoVmVyc2lvbjo6ZnJvbV9tbXAobWFq LCBtaW4sIHBhdGNoKSkKKysgICAgfQorKworKyAgICAvLy8gQ3JlYXRlcyBhIGBWZXJzaW9uYCBm cm9tIGAobWFqb3IsIG1pbm9yLCBwYXRjaClgIHZlcnNpb24gY29tcG9uZW50cy4KKysgICAgLy8v CisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8v LyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQh KFZlcnNpb246OmZyb21fbW1wKDEsIDM1LCAwKS5leGFjdGx5KCIxLjM1LjAiKSk7CisrICAgIC8v LyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDMzLCAwKS5leGFjdGx5KCIxLjMzLjAiKSk7 CisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDM1LCAxKS5leGFjdGx5KCIx LjM1LjEiKSk7CisrICAgIC8vLyBhc3NlcnQhKFZlcnNpb246OmZyb21fbW1wKDEsIDEzLCAyKS5l eGFjdGx5KCIxLjEzLjIiKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIGZyb21fbW1wKG1h am9yOiB1MTYsIG1pbm9yOiB1MTYsIHBhdGNoOiB1MTYpIC0+IFZlcnNpb24geworKyAgICAgICAg VmVyc2lvbigoKG1ham9yIGFzIHU2NCkgPDwgMzIpIHwgKChtaW5vciBhcyB1NjQpIDw8IDE2KSB8 IHBhdGNoIGFzIHU2NCkKKysgICAgfQorKworKyAgICAvLy8gUmV0dXJucyB0aGUgYChtYWpvciwg bWlub3IsIHBhdGNoKWAgdmVyc2lvbiBjb21wb25lbnRzIG9mIGBzZWxmYC4KKysgICAgLy8vCisr ICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1 c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnRfZXEh KFZlcnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndyYXAoKS50b19tbXAoKSwgKDEsIDM1LCAwKSk7 CisrICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjMzLjAiKS51bndyYXAoKS50 b19tbXAoKSwgKDEsIDMzLCAwKSk7CisrICAgIC8vLyBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNl KCIxLjM1LjEiKS51bndyYXAoKS50b19tbXAoKSwgKDEsIDM1LCAxKSk7CisrICAgIC8vLyBhc3Nl cnRfZXEhKFZlcnNpb246OnBhcnNlKCIxLjEzLjIiKS51bndyYXAoKS50b19tbXAoKSwgKDEsIDEz LCAyKSk7CisrICAgIC8vLyBgYGAKKysgICAgcHViIGZuIHRvX21tcCgmc2VsZikgLT4gKHUxNiwg dTE2LCB1MTYpIHsKKysgICAgICAgIGxldCBtYWpvciA9IHNlbGYuMCA+PiAzMjsKKysgICAgICAg IGxldCBtaW5vciA9IHNlbGYuMCA+PiAxNjsKKysgICAgICAgIGxldCBwYXRjaCA9IHNlbGYuMDsK KysgICAgICAgIChtYWpvciBhcyB1MTYsIG1pbm9yIGFzIHUxNiwgcGF0Y2ggYXMgdTE2KQorKyAg ICB9CisrCisrICAgIC8vLyBSZXR1cm5zIGB0cnVlYCBpZiBgc2VsZmAgaXMgZ3JlYXRlciB0aGFu IG9yIGVxdWFsIHRvIGB2ZXJzaW9uYC4KKysgICAgLy8vCisrICAgIC8vLyBJZiBgdmVyc2lvbmAg aXMgZ3JlYXRlciB0aGFuIGBzZWxmYCwgb3IgaWYgYHZlcnNpb25gIGlzIG5vdCBhIHZhbGlkIFJ1 c3QKKysgICAgLy8vIHZlcnNpb24gc3RyaW5nLCByZXR1cm5zIGBmYWxzZWAuCisrICAgIC8vLwor KyAgICAvLy8gIyBFeGFtcGxlCisrICAgIC8vLworKyAgICAvLy8gYGBgcnVzdAorKyAgICAvLy8g dXNlIHZlcnNpb25fY2hlY2s6OlZlcnNpb247CisrICAgIC8vLworKyAgICAvLy8gbGV0IHZlcnNp b24gPSBWZXJzaW9uOjpwYXJzZSgiMS4zNS4wIikudW53cmFwKCk7CisrICAgIC8vLworKyAgICAv Ly8gYXNzZXJ0ISh2ZXJzaW9uLmF0X2xlYXN0KCIxLjMzLjAiKSk7CisrICAgIC8vLyBhc3NlcnQh KHZlcnNpb24uYXRfbGVhc3QoIjEuMzUuMCIpKTsKKysgICAgLy8vIGFzc2VydCEodmVyc2lvbi5h dF9sZWFzdCgiMS4xMy4yIikpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24u YXRfbGVhc3QoIjEuMzUuMSIpKTsKKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbGVhc3Qo IjEuNTUuMCIpKTsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBh cnNlKCIxLjEyLjUiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKHZlcnNp b24uYXRfbGVhc3QoIjEuMTIuMCIpKTsKKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uYXRfbGVh c3QoIjEuMzUuMCIpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4gYXRfbGVhc3QoJnNlbGYs IHZlcnNpb246ICZzdHIpIC0+IGJvb2wgeworKyAgICAgICAgVmVyc2lvbjo6cGFyc2UodmVyc2lv bikKKysgICAgICAgICAgICAubWFwKHx2ZXJzaW9ufCBzZWxmID49ICZ2ZXJzaW9uKQorKyAgICAg ICAgICAgIC51bndyYXBfb3IoZmFsc2UpCisrICAgIH0KKysKKysgICAgLy8vIFJldHVybnMgYHRy dWVgIGlmIGBzZWxmYCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYHZlcnNpb25gLgorKyAgICAv Ly8KKysgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBsZXNzIHRoYW4gYHNlbGZgLCBvciBpZiBgdmVy c2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAorKyAgICAvLy8gdmVyc2lvbiBzdHJpbmcsIHJldHVy bnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysgICAgLy8vCisrICAg IC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVyc2lvbjsKKysgICAg Ly8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjM1LjAiKS51bndy YXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uYXRfbW9zdCgiMS4zNS4x IikpOworKyAgICAvLy8gYXNzZXJ0ISh2ZXJzaW9uLmF0X21vc3QoIjEuNTUuMCIpKTsKKysgICAg Ly8vIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjM1LjAiKSk7CisrICAgIC8vLworKyAgICAv Ly8gYXNzZXJ0ISghdmVyc2lvbi5hdF9tb3N0KCIxLjMzLjAiKSk7CisrICAgIC8vLyBhc3NlcnQh KCF2ZXJzaW9uLmF0X21vc3QoIjEuMTMuMiIpKTsKKysgICAgLy8vIGBgYAorKyAgICBwdWIgZm4g YXRfbW9zdCgmc2VsZiwgdmVyc2lvbjogJnN0cikgLT4gYm9vbCB7CisrICAgICAgICBWZXJzaW9u OjpwYXJzZSh2ZXJzaW9uKQorKyAgICAgICAgICAgIC5tYXAofHZlcnNpb258IHNlbGYgPD0gJnZl cnNpb24pCisrICAgICAgICAgICAgLnVud3JhcF9vcihmYWxzZSkKKysgICAgfQorKworKyAgICAv Ly8gUmV0dXJucyBgdHJ1ZWAgaWYgYHNlbGZgIGlzIGV4YWN0bHkgZXF1YWwgdG8gYHZlcnNpb25g LgorKyAgICAvLy8KKysgICAgLy8vIElmIGB2ZXJzaW9uYCBpcyBub3QgZXF1YWwgdG8gYHNlbGZg LCBvciBpZiBgdmVyc2lvbmAgaXMgbm90IGEgdmFsaWQgUnVzdAorKyAgICAvLy8gdmVyc2lvbiBz dHJpbmcsIHJldHVybnMgYGZhbHNlYC4KKysgICAgLy8vCisrICAgIC8vLyAjIEV4YW1wbGUKKysg ICAgLy8vCisrICAgIC8vLyBgYGBydXN0CisrICAgIC8vLyB1c2UgdmVyc2lvbl9jaGVjazo6VmVy c2lvbjsKKysgICAgLy8vCisrICAgIC8vLyBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIx LjM1LjAiKS51bndyYXAoKTsKKysgICAgLy8vCisrICAgIC8vLyBhc3NlcnQhKHZlcnNpb24uZXhh Y3RseSgiMS4zNS4wIikpOworKyAgICAvLy8KKysgICAgLy8vIGFzc2VydCEoIXZlcnNpb24uZXhh Y3RseSgiMS4zMy4wIikpOworKyAgICAvLy8gYXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjM1 LjEiKSk7CisrICAgIC8vLyBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMTMuMiIpKTsKKysg ICAgLy8vIGBgYAorKyAgICBwdWIgZm4gZXhhY3RseSgmc2VsZiwgdmVyc2lvbjogJnN0cikgLT4g Ym9vbCB7CisrICAgICAgICBWZXJzaW9uOjpwYXJzZSh2ZXJzaW9uKQorKyAgICAgICAgICAgIC5t YXAofHZlcnNpb258IHNlbGYgPT0gJnZlcnNpb24pCisrICAgICAgICAgICAgLnVud3JhcF9vcihm YWxzZSkKKysgICAgfQorK30KKysKKytpbXBsIGZtdDo6RGlzcGxheSBmb3IgVmVyc2lvbiB7Cisr ICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQg eworKyAgICAgICAgbGV0IChtYWpvciwgbWlub3IsIHBhdGNoKSA9IHNlbGYudG9fbW1wKCk7Cisr ICAgICAgICB3cml0ZSEoZiwgInt9Lnt9Lnt9IiwgbWFqb3IsIG1pbm9yLCBwYXRjaCkKKysgICAg fQorK30KKysKKytpbXBsIGZtdDo6RGVidWcgZm9yIFZlcnNpb24geworKyAgICBmbiBmbXQoJnNl bGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKKysgICAgICAgIC8v IFdlIGRvbid0IHVzZSBgZGVidWdfKmAgYmVjYXVzZSBpdCdzIG5vdCBhdmFpbGFibGUgaW4gYDEu MC4wYC4KKysgICAgICAgIHdyaXRlIShmLCAiVmVyc2lvbih7Oj99LCB7Oj99KSIsIHNlbGYuMCwg c2VsZi50b19tbXAoKSkKKysgICAgfQorK30KKysKKysjW2NmZyh0ZXN0KV0KKyttb2QgdGVzdHMg eworKyAgICB1c2Ugc3VwZXI6OlZlcnNpb247CisrCisrICAgIG1hY3JvX3J1bGVzISBhc3NlcnRf dG9fbW1wIHsKKysgICAgICAgIC8vIFdlIGRvbid0IHVzZSBgLmludG86OjxPcHRpb248Xz4+YCBi ZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiAxLjAuCisrICAgICAgICAvLyBXZSBkb24ndCB1 c2UgdGhlIG1lc3NhZ2UgcGFydCBvZiBgYXNzZXJ0IWAgZm9yIHRoZSBzYW1lIHJlYXNvbi4KKysg ICAgICAgICgkczpleHByLCBOb25lKSA9PiAoCisrICAgICAgICAgICAgYXNzZXJ0X2VxIShWZXJz aW9uOjpwYXJzZSgkcyksIE5vbmUpOworKyAgICAgICAgKTsKKysgICAgICAgICgkczpleHByLCAk bW1wOmV4cHIpID0+ICgKKysgICAgICAgICAgICBhc3NlcnRfZXEhKFZlcnNpb246OnBhcnNlKCRz KS5tYXAofHZ8IHYudG9fbW1wKCkpLCBTb21lKCRtbXApKTsKKysgICAgICAgICkKKysgICAgfQor KworKyAgICBtYWNyb19ydWxlcyEgYXNzZXJ0X2Zyb21fbW1wIHsKKysgICAgICAgICgoJHg6ZXhw ciwgJHk6ZXhwciwgJHo6ZXhwcikgPT4gJHM6ZXhwcikgPT4geworKyAgICAgICAgICAgIGFzc2Vy dF9lcSEoU29tZShWZXJzaW9uOjpmcm9tX21tcCgkeCwgJHksICR6KSksIFZlcnNpb246OnBhcnNl KCRzKSk7CisrICAgICAgICB9OworKyAgICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gdGVz dF9zdHJfdG9fbW1wKCkgeworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEiLCAoMSwgMCwgMCkp OworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMiIsICgxLCAyLCAwKSk7CisrICAgICAgICBh c3NlcnRfdG9fbW1wISgiMS4xOC4wIiwgKDEsIDE4LCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9f bW1wISgiMy4xOS4wIiwgKDMsIDE5LCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4x OS4wLW5pZ2h0bHkiLCAoMSwgMTksIDApKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjEy LjIzNDkiLCAoMSwgMTIsIDIzNDkpKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIwLjEyIiwg KDAsIDEyLCAwKSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xMi41IiwgKDEsIDEyLCA1 KSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiMS4xMiIsICgxLCAxMiwgMCkpOworKyAgICAg ICAgYXNzZXJ0X3RvX21tcCEoIjEiLCAoMSwgMCwgMCkpOworKyAgICAgICAgYXNzZXJ0X3RvX21t cCEoIjEuNC40LW5pZ2h0bHkgKGQ4NDY5M2I5MyAyMDE3LTA3LTA5KSkiLCAoMSwgNCwgNCkpOwor KyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuNTg4NzkuNDQ3OC1kZXYiLCAoMSwgNTg4NzksIDQ0 NzgpKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLjU4ODc5LjQ0NzgtZGV2IChkODQ2OTNi OTMgMjAxNy0wNy0wOSkpIiwgKDEsIDU4ODc5LCA0NDc4KSk7CisrICAgIH0KKysKKysgICAgI1t0 ZXN0XQorKyAgICBmbiB0ZXN0X21hbGZvcm1lZCgpIHsKKysgICAgICAgIGFzc2VydF90b19tbXAh KCIxLjY1NTM2LjIiLCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCItMS4yLjMiLCBO b25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLiAyIiwgTm9uZSk7CisrICAgICAgICBh c3NlcnRfdG9fbW1wISgiIiwgTm9uZSk7CisrICAgICAgICBhc3NlcnRfdG9fbW1wISgiICIsIE5v bmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIi4iLCBOb25lKTsKKysgICAgICAgIGFzc2Vy dF90b19tbXAhKCJvbmUiLCBOb25lKTsKKysgICAgICAgIGFzc2VydF90b19tbXAhKCIxLiIsIE5v bmUpOworKyAgICAgICAgYXNzZXJ0X3RvX21tcCEoIjEuMi4zLjQuNS42IiwgTm9uZSk7CisrICAg IH0KKysKKysgICAgI1t0ZXN0XQorKyAgICBmbiB0ZXN0X2Zyb21fbW1wKCkgeworKyAgICAgICAg YXNzZXJ0X2Zyb21fbW1wISgoMSwgMTgsIDApID0+ICIxLjE4LjAiKTsKKysgICAgICAgIGFzc2Vy dF9mcm9tX21tcCEoKDMsIDE5LCAwKSA9PiAiMy4xOS4wIik7CisrICAgICAgICBhc3NlcnRfZnJv bV9tbXAhKCgxLCAxOSwgMCkgPT4gIjEuMTkuMCIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1w ISgoMSwgMTIsIDIzNDkpID0+ICIxLjEyLjIzNDkiKTsKKysgICAgICAgIGFzc2VydF9mcm9tX21t cCEoKDAsIDEyLCAwKSA9PiAiMC4xMiIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwg MTIsIDUpID0+ICIxLjEyLjUiKTsKKysgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDEyLCAw KSA9PiAiMS4xMiIpOworKyAgICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgMCwgMCkgPT4gIjEi KTsKKysgICAgICAgIGFzc2VydF9mcm9tX21tcCEoKDEsIDQsIDQpID0+ICIxLjQuNCIpOworKyAg ICAgICAgYXNzZXJ0X2Zyb21fbW1wISgoMSwgNTg4NzksIDQ0NzgpID0+ICIxLjU4ODc5LjQ0Nzgi KTsKKysgICAgfQorKworKyAgICAjW3Rlc3RdCisrICAgIGZuIHRlc3RfY29tcGFyaXNvbnMoKSB7 CisrICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxLjE4LjAiKS51bndyYXAo KTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjE4LjAiKSk7CisrICAgICAg ICBhc3NlcnQhKHZlcnNpb24uYXRfbGVhc3QoIjEuMTIuMCIpKTsKKysgICAgICAgIGFzc2VydCEo dmVyc2lvbi5hdF9sZWFzdCgiMS4xMiIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9s ZWFzdCgiMSIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5hdF9tb3N0KCIxLjE4LjEiKSk7 CisrICAgICAgICBhc3NlcnQhKCF2ZXJzaW9uLmV4YWN0bHkoIjEuMTkuMCIpKTsKKysgICAgICAg IGFzc2VydCEoIXZlcnNpb24uZXhhY3RseSgiMS4xOC4xIikpOworKworKyAgICAgICAgbGV0IHZl cnNpb24gPSBWZXJzaW9uOjpwYXJzZSgiMS4yMC4wLW5pZ2h0bHkiKS51bndyYXAoKTsKKysgICAg ICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtYmV0YSIpKTsKKysgICAgICAgIGFz c2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAtbmlnaHRseSIpKTsKKysgICAgICAgIGFzc2Vy dCEodmVyc2lvbi5leGFjdGx5KCIxLjIwLjAiKSk7CisrICAgICAgICBhc3NlcnQhKCF2ZXJzaW9u LmV4YWN0bHkoIjEuMTkiKSk7CisrCisrICAgICAgICBsZXQgdmVyc2lvbiA9IFZlcnNpb246OnBh cnNlKCIxLjMiKS51bndyYXAoKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIx LjMuMCIpKTsKKysgICAgICAgIGFzc2VydCEodmVyc2lvbi5leGFjdGx5KCIxLjMuMC1zdGFibGUi KSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24uZXhhY3RseSgiMS4zIikpOworKyAgICAgICAg YXNzZXJ0ISghdmVyc2lvbi5leGFjdGx5KCIxLjUuMC1zdGFibGUiKSk7CisrCisrICAgICAgICBs ZXQgdmVyc2lvbiA9IFZlcnNpb246OnBhcnNlKCIxIikudW53cmFwKCk7CisrICAgICAgICBhc3Nl cnQhKHZlcnNpb24uZXhhY3RseSgiMS4wLjAiKSk7CisrICAgICAgICBhc3NlcnQhKHZlcnNpb24u ZXhhY3RseSgiMS4wIikpOworKyAgICAgICAgYXNzZXJ0ISh2ZXJzaW9uLmV4YWN0bHkoIjEiKSk7 CisrCisrICAgICAgICBhc3NlcnQhKFZlcnNpb246OnBhcnNlKCJvbmUudHdvLnRocmVlIikuaXNf bm9uZSgpKTsKKysgICAgfQorKworKyAgICBtYWNyb19ydWxlcyEgcmVmbGV4aXZlX2Rpc3BsYXkg eworKyAgICAgICAgKCRzOmV4cHIpID0+ICgKKysgICAgICAgICAgICBhc3NlcnRfZXEhKFZlcnNp b246OnBhcnNlKCRzKS51bndyYXAoKS50b19zdHJpbmcoKSwgJHMpOworKyAgICAgICAgKQorKyAg ICB9CisrCisrICAgICNbdGVzdF0KKysgICAgZm4gZGlzcGxheSgpIHsKKysgICAgICAgIHJlZmxl eGl2ZV9kaXNwbGF5ISgiMS4wLjAiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMS4y LjMiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMS4xMi4xNDM4Iik7CisrICAgICAg ICByZWZsZXhpdmVfZGlzcGxheSEoIjEuNDQuMCIpOworKyAgICAgICAgcmVmbGV4aXZlX2Rpc3Bs YXkhKCIyLjQ0LjAiKTsKKysgICAgICAgIHJlZmxleGl2ZV9kaXNwbGF5ISgiMjM0NTkuMjg5MjMu MzQ4MyIpOworKyAgICB9CisrfQoKZGlmZiAtLWdpdCBhL3NlYW1vbmtleS0yLjUzLjI0LW1vemls bGEtMjAzMzI3OS5wYXRjaCBiL3NlYW1vbmtleS0yLjUzLjI0LW1vemlsbGEtMjAzMzI3OS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Nzk3Mzc0Ci0tLSAvZGV2L251 bGwKKysrIGIvc2VhbW9ua2V5LTIuNTMuMjQtbW96aWxsYS0yMDMzMjc5LnBhdGNoCkBAIC0wLDAg KzEsMTk3IEBACisjIEhHIGNoYW5nZXNldCBwYXRjaAorIyBVc2VyIEhlbnJpIFNpdm9uZW4gPGhz aXZvbmVuQGhzaXZvbmVuLmZpPgorIyBEYXRlIDE3NzY3NTUzNjAgMAorIyBOb2RlIElEIGVjMWRk MDVmZDU3ODU5ODViN2JkOTYzNjQwNTY4OGQxZDYxYTk1ZDkKKyMgUGFyZW50ICA3NTc3YzQ3MmMz ZjE4Y2E0OTdhYjkyYjE1ZGY3YTAxZTcxOTRmZmQ2CitCdWcgMjAzMzI3OSAtIE1ha2UgLS1lbmFi bGUtcnVzdC1zaW1kIHdvcmsgd2l0aCBSdXN0IDEuOTUuIHI9ZmlyZWZveC1idWlsZC1zeXN0ZW0t cmV2aWV3ZXJzLHN1cHBseS1jaGFpbi1yZXZpZXdlcnMsYWhvY2hoZWlkZW4KKworRGlmZmVyZW50 aWFsIFJldmlzaW9uOiBodHRwczovL3BoYWJyaWNhdG9yLnNlcnZpY2VzLm1vemlsbGEuY29tL0Qy OTUyODcKKworZGlmZiAtLWdpdCBhLy5jYXJnby9jb25maWcuaW4gYi8uY2FyZ28vY29uZmlnLmlu CistLS0gYS8uY2FyZ28vY29uZmlnLmluCisrKysgYi8uY2FyZ28vY29uZmlnLmluCitAQCAtNywx MCArNywxNSBAQCBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3NlcmRlIgorIGJyYW5j aCA9ICJkZXNlcmlhbGl6ZV9mcm9tX2VudW1zOCIKKyByZXBsYWNlLXdpdGggPSAidmVuZG9yZWQt c291cmNlcyIKKyAKKyBbc291cmNlLiJnaXQraHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVuL2Fu eV9hbGxfd29ya2Fyb3VuZD9yZXY9N2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4 YWY4MCJdCisgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxsX3dvcmth cm91bmQiCisgcmV2ID0gIjdmYjFiNzAzNGM5ZjE3MmFhZGUyMWVlMWM4NTU0ZThkOGE0OGFmODAi CisgcmVwbGFjZS13aXRoID0gInZlbmRvcmVkLXNvdXJjZXMiCisgCisrW3NvdXJjZS4iZ2l0K2h0 dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19ycz9yZXY9MTIzNmQxYmM0MjNlNmJh MzVhMDY0ODVmNzRhNjMwNGRiMmQ3MDNiNSJdCisrZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9o c2l2b25lbi9lbmNvZGluZ19ycyIKKytyZXYgPSAiMTIzNmQxYmM0MjNlNmJhMzVhMDY0ODVmNzRh NjMwNGRiMmQ3MDNiNSIKKytyZXBsYWNlLXdpdGggPSAidmVuZG9yZWQtc291cmNlcyIKKysKKyBb c291cmNlLnZlbmRvcmVkLXNvdXJjZXNdCisgZGlyZWN0b3J5ID0gJ0B0b3Bfc3JjZGlyQC90aGly ZF9wYXJ0eS9ydXN0JworZGlmZiAtLWdpdCBhL0NhcmdvLmxvY2sgYi9DYXJnby5sb2NrCistLS0g YS9DYXJnby5sb2NrCisrKysgYi9DYXJnby5sb2NrCitAQCAtNjE1LDIxICs2MTUsMjEgQEAgZGVw ZW5kZW5jaWVzID0gWworICAiZW5jb2RpbmdfcnMiLAorICAibnNlcnJvciIsCisgICJuc3N0cmlu ZyIsCisgXQorIAorIFtbcGFja2FnZV1dCisgbmFtZSA9ICJlbmNvZGluZ19ycyIKKyB2ZXJzaW9u ID0gIjAuOC4zNSIKKy1zb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCistY2hlY2tzdW0gPSAiNzUwMzBmM2M0ZjQ1ZGFmZDc1ODZk ZDY3ODA5NjVhOGM3ZThlMjg1YTVlY2I4NjcxM2U2M2E3OWM1YjI3NjZmMyIKKytzb3VyY2UgPSAi Z2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9lbmNvZGluZ19ycz9yZXY9MTIzNmQxYmM0 MjNlNmJhMzVhMDY0ODVmNzRhNjMwNGRiMmQ3MDNiNSMxMjM2ZDFiYzQyM2U2YmEzNWEwNjQ4NWY3 NGE2MzA0ZGIyZDcwM2I1IgorIGRlcGVuZGVuY2llcyA9IFsKKyAgImFueV9hbGxfd29ya2Fyb3Vu ZCIsCisgICJjZmctaWYgMS4wLjAiLAorKyAicnVzdHZlcnNpb24iLAorIF0KKyAKKyBbW3BhY2th Z2VdXQorIG5hbWUgPSAiZW52X2xvZ2dlciIKKyB2ZXJzaW9uID0gIjAuNS4xMyIKKyBzb3VyY2Ug PSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgi CisgY2hlY2tzdW0gPSAiMTViMGE0ZDJlMzlmODQyMDIxMGJlOGIyN2VlZGEyODAyOTcyOWUyZmQ0 MjkxMDE5NDU1MDE2YzM0ODI0MGMzOCIKKyBkZXBlbmRlbmNpZXMgPSBbCitkaWZmIC0tZ2l0IGEv Q2FyZ28udG9tbCBiL0NhcmdvLnRvbWwKKy0tLSBhL0NhcmdvLnRvbWwKKysrKyBiL0NhcmdvLnRv bWwKK0BAIC00OSw4ICs0OSwxMCBAQCBycGF0aCA9IGZhbHNlCisgZGVidWctYXNzZXJ0aW9ucyA9 IGZhbHNlCisgcGFuaWMgPSAiYWJvcnQiCisgY29kZWdlbi11bml0cyA9IDEKKyAKKyBbcGF0Y2gu Y3JhdGVzLWlvXQorIGxpYnVkZXYtc3lzID0geyBwYXRoID0gImRvbS93ZWJhdXRobi9saWJ1ZGV2 LXN5cyIgfQorIHNlcmRlX2Rlcml2ZSA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJ2 by9zZXJkZSIsIGJyYW5jaCA9ICJkZXNlcmlhbGl6ZV9mcm9tX2VudW1zOCIgfQorIGFueV9hbGxf d29ya2Fyb3VuZCA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2b25lbi9hbnlfYWxs X3dvcmthcm91bmQiLCByZXYgPSAiN2ZiMWI3MDM0YzlmMTcyYWFkZTIxZWUxYzg1NTRlOGQ4YTQ4 YWY4MCIgfQorKyMgTWFrZSAtLWVuYWJsZS1ydXN0LXNpbWQgY29tcGF0aWJsZSB3aXRoIFJ1c3Qg MS45NQorK2VuY29kaW5nX3JzID0geyBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL2hzaXZvbmVu L2VuY29kaW5nX3JzIiwgcmV2ID0gIjEyMzZkMWJjNDIzZTZiYTM1YTA2NDg1Zjc0YTYzMDRkYjJk NzAzYjUiIH0KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0Nhcmdv LnRvbWwgYi90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKKy0tLSBhL3Ro aXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCitAQCAtMTEsMTYgKzExLDE3IEBACisgCisgW3Bh Y2thZ2VdCisgZWRpdGlvbiA9ICIyMDE4IgorIHJ1c3QtdmVyc2lvbiA9ICIxLjM2IgorIG5hbWUg PSAiZW5jb2RpbmdfcnMiCisgdmVyc2lvbiA9ICIwLjguMzUiCisgYXV0aG9ycyA9IFsiSGVucmkg U2l2b25lbiA8aHNpdm9uZW5AaHNpdm9uZW4uZmk+Il0KKyBidWlsZCA9IGZhbHNlCisrYXV0b2xp YiA9IGZhbHNlCisgYXV0b2JpbnMgPSBmYWxzZQorIGF1dG9leGFtcGxlcyA9IGZhbHNlCisgYXV0 b3Rlc3RzID0gZmFsc2UKKyBhdXRvYmVuY2hlcyA9IGZhbHNlCisgZGVzY3JpcHRpb24gPSAiQSBH ZWNrby1vcmllbnRlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRW5jb2RpbmcgU3RhbmRhcmQiCisg aG9tZXBhZ2UgPSAiaHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5nX3JzLyIKKyBkb2N1bWVudGF0aW9u ID0gImh0dHBzOi8vZG9jcy5ycy9lbmNvZGluZ19ycy8iCisgcmVhZG1lID0gIlJFQURNRS5tZCIK K0BAIC0zNCw0MyArMzUsMTYgQEAgY2F0ZWdvcmllcyA9IFsKKyAgICAgInRleHQtcHJvY2Vzc2lu ZyIsCisgICAgICJlbmNvZGluZyIsCisgICAgICJ3ZWItcHJvZ3JhbW1pbmciLAorICAgICAiaW50 ZXJuYXRpb25hbGl6YXRpb24iLAorIF0KKyBsaWNlbnNlID0gIihBcGFjaGUtMi4wIE9SIE1JVCkg QU5EIEJTRC0zLUNsYXVzZSIKKyByZXBvc2l0b3J5ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9oc2l2 b25lbi9lbmNvZGluZ19ycyIKKyAKKy1bcHJvZmlsZS5yZWxlYXNlXQorLWx0byA9IHRydWUKKy0K Ky1bbGliXQorLW5hbWUgPSAiZW5jb2RpbmdfcnMiCistcGF0aCA9ICJzcmMvbGliLnJzIgorLQor LVtkZXBlbmRlbmNpZXMuYW55X2FsbF93b3JrYXJvdW5kXQorLXZlcnNpb24gPSAiMC4xLjAiCist b3B0aW9uYWwgPSB0cnVlCistCistW2RlcGVuZGVuY2llcy5jZmctaWZdCistdmVyc2lvbiA9ICIx LjAiCistCistW2RlcGVuZGVuY2llcy5zZXJkZV0KKy12ZXJzaW9uID0gIjEuMCIKKy1vcHRpb25h bCA9IHRydWUKKy0KKy1bZGV2LWRlcGVuZGVuY2llcy5iaW5jb2RlXQorLXZlcnNpb24gPSAiMS4w IgorLQorLVtkZXYtZGVwZW5kZW5jaWVzLnNlcmRlX2Rlcml2ZV0KKy12ZXJzaW9uID0gIjEuMCIK Ky0KKy1bZGV2LWRlcGVuZGVuY2llcy5zZXJkZV9qc29uXQorLXZlcnNpb24gPSAiMS4wIgorLQor IFtmZWF0dXJlc10KKyBhbGxvYyA9IFtdCisgZGVmYXVsdCA9IFsiYWxsb2MiXQorIGZhc3QtYmln NS1oYW56aS1lbmNvZGUgPSBbXQorIGZhc3QtZ2ItaGFuemktZW5jb2RlID0gW10KKyBmYXN0LWhh bmd1bC1lbmNvZGUgPSBbXQorIGZhc3QtaGFuamEtZW5jb2RlID0gW10KKyBmYXN0LWthbmppLWVu Y29kZSA9IFtdCitAQCAtNzksOSArNTMsMzkgQEAgZmFzdC1sZWdhY3ktZW5jb2RlID0gWworICAg ICAiZmFzdC1oYW5qYS1lbmNvZGUiLAorICAgICAiZmFzdC1rYW5qaS1lbmNvZGUiLAorICAgICAi ZmFzdC1nYi1oYW56aS1lbmNvZGUiLAorICAgICAiZmFzdC1iaWc1LWhhbnppLWVuY29kZSIsCisg XQorIGxlc3Mtc2xvdy1iaWc1LWhhbnppLWVuY29kZSA9IFtdCisgbGVzcy1zbG93LWdiLWhhbnpp LWVuY29kZSA9IFtdCisgbGVzcy1zbG93LWthbmppLWVuY29kZSA9IFtdCistc2ltZC1hY2NlbCA9 IFsiYW55X2FsbF93b3JrYXJvdW5kIl0KKytzaW1kLWFjY2VsID0gWworKyAgICAiYW55X2FsbF93 b3JrYXJvdW5kIiwKKysgICAgInJ1c3R2ZXJzaW9uIiwKKytdCisrCisrW2xpYl0KKytuYW1lID0g ImVuY29kaW5nX3JzIgorK3BhdGggPSAic3JjL2xpYi5ycyIKKysKKytbZGVwZW5kZW5jaWVzXQor K2NmZy1pZiA9ICIxLjAiCisrCisrW2RlcGVuZGVuY2llcy5hbnlfYWxsX3dvcmthcm91bmRdCisr dmVyc2lvbiA9ICIwLjEuMCIKKytvcHRpb25hbCA9IHRydWUKKysKKytbZGVwZW5kZW5jaWVzLnJ1 c3R2ZXJzaW9uXQorK3ZlcnNpb24gPSAiMS4wLjE5IgorK29wdGlvbmFsID0gdHJ1ZQorKworK1tk ZXBlbmRlbmNpZXMuc2VyZGVdCisrdmVyc2lvbiA9ICIxLjAiCisrb3B0aW9uYWwgPSB0cnVlCisr CisrW2Rldi1kZXBlbmRlbmNpZXNdCisrYmluY29kZSA9ICIxLjAiCisrc2VyZGVfZGVyaXZlID0g IjEuMCIKKytzZXJkZV9qc29uID0gIjEuMCIKKysKKytbcHJvZmlsZS5yZWxlYXNlXQorK2x0byA9 IHRydWUKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3Vz ZXJfZGVmaW5lZC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvc3JjL3hfdXNlcl9k ZWZpbmVkLnJzCistLS0gYS90aGlyZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL3NyYy94X3VzZXJf ZGVmaW5lZC5ycworKysrIGIvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9zcmMveF91c2Vy X2RlZmluZWQucnMKK0BAIC0xMSwxNiArMTEsMTggQEAgdXNlIHN1cGVyOjoqOworIHVzZSBjcmF0 ZTo6aGFuZGxlczo6KjsKKyB1c2UgY3JhdGU6OnZhcmlhbnQ6Oio7CisgCisgY2ZnX2lmISB7Cisg ICAgIGlmICNbY2ZnKGZlYXR1cmUgPSAic2ltZC1hY2NlbCIpXSB7CisgICAgICAgICB1c2Ugc2lt ZF9mdW5jczo6KjsKKyAgICAgICAgIHVzZSBjb3JlOjpzaW1kOjp1MTZ4ODsKKyAgICAgICAgIHVz ZSBjb3JlOjpzaW1kOjpjbXA6OlNpbWRQYXJ0aWFsT3JkOworKyAgICAgICAgI1tydXN0dmVyc2lv bjo6c2luY2UoMS45NSldCisrICAgICAgICB1c2UgY29yZTo6c2ltZDo6U2VsZWN0OworIAorICAg ICAgICAgI1tpbmxpbmUoYWx3YXlzKV0KKyAgICAgICAgIGZuIHNoaWZ0X3VwcGVyKHVucGFja2Vk OiB1MTZ4OCkgLT4gdTE2eDggeworICAgICAgICAgICAgIGxldCBoaWdoZXN0X2FzY2lpID0gdTE2 eDg6OnNwbGF0KDB4N0YpOworICAgICAgICAgICAgIHVucGFja2VkICsgdW5wYWNrZWQuc2ltZF9n dChoaWdoZXN0X2FzY2lpKS5zZWxlY3QodTE2eDg6OnNwbGF0KDB4RjcwMCksIHUxNng4OjpzcGxh dCgwKSkgICAgICAgIH0KKyAgICAgfSBlbHNlIHsKKyAgICAgfQorIH0KCmRpZmYgLS1naXQgYS9z ZWFtb25rZXktMi41My4yNC1ydXN0X3UyZmhpZC5wYXRjaCBiL3NlYW1vbmtleS0yLjUzLjI0LXJ1 c3RfdTJmaGlkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0MzQ0 Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9zZWFtb25rZXktMi41My4yNC1ydXN0X3UyZmhpZC5wYXRj aApAQCAtMCwwICsxLDI1IEBACisjIEhHIGNoYW5nZXNldCBwYXRjaAorIyBVc2VyIEZyYW5rLVJh aW5lciBHcmFobCA8ZnJncmFobEBnbXgubmV0PgorIyBEYXRlIDE3ODUxMDgxMTkgLTcyMDAKKyMg UGFyZW50ICBkNmMwZmY3YjBjMDVhMGNiY2IwYTc0OWE4NjEwODFkYzg0ODUzOWJkCitObyBCdWcg LSBGaXggdTJmaGlkIGZvciBsYXRlciBydXN0IHZlcnNpb25zLiByPW1lIGE9bWUKKworZGlmZiAt LWdpdCBhL2RvbS93ZWJhdXRobi91MmYtaGlkLXJzL3NyYy93aW5kb3dzL3dpbmFwaS5ycyBiL2Rv bS93ZWJhdXRobi91MmYtaGlkLXJzL3NyYy93aW5kb3dzL3dpbmFwaS5ycworLS0tIGEvZG9tL3dl YmF1dGhuL3UyZi1oaWQtcnMvc3JjL3dpbmRvd3Mvd2luYXBpLnJzCisrKysgYi9kb20vd2ViYXV0 aG4vdTJmLWhpZC1ycy9zcmMvd2luZG93cy93aW5hcGkucnMKK0BAIC0xLDEyICsxLDE1IEBACisg LyogVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBN b3ppbGxhIFB1YmxpYworICAqIExpY2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwg d2FzIG5vdCBkaXN0cmlidXRlZCB3aXRoIHRoaXMKKyAgKiBmaWxlLCBZb3UgY2FuIG9idGFpbiBv bmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLiAqLworIAorKy8vIFllcyBpdCBpcyBi YWQgYnV0IHdlIGRvbid0IHVzZSB3ZWJhdXRobiBjdXJyZW50bHkgYW55d2F5LgorKyMhW3dhcm4o ZGVyZWZfbnVsbHB0cildCisrCisgdXNlIHN0ZDo6aW87CisgdXNlIHN0ZDo6bWVtOworIHVzZSBz dGQ6OnB0cjsKKyB1c2Ugc3RkOjpzbGljZTsKKyAKKyB1c2Ugc3RkOjpmZmk6Ok9zU3RyaW5nOwor IHVzZSBzdGQ6Om9zOjp3aW5kb3dzOjpmZmk6Ok9zU3RyaW5nRXh0OworIAoKZGlmZiAtLWdpdCBh L3NlYW1vbmtleS0yLjUzLjI0LXJ1c3RfdmVyc2lvbi5wYXRjaCBiL3NlYW1vbmtleS0yLjUzLjI0 LXJ1c3RfdmVyc2lvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5i OWE4YTkzCi0tLSAvZGV2L251bGwKKysrIGIvc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF92ZXJzaW9u LnBhdGNoCkBAIC0wLDAgKzEsMjI3NiBAQAorIyBIRyBjaGFuZ2VzZXQgcGF0Y2gKKyMgVXNlciBG cmFuay1SYWluZXIgR3JhaGwgPGZyZ3JhaGxAZ214Lm5ldD4KKyMgRGF0ZSAxNzg1MTA4MDMyIC03 MjAwCisjIFBhcmVudCAgOWRmZmQ3ODYxMWQwODAzNGFkYWJhNzAyZDIwOGVhODk3OWJkN2M0MAor Tm8gQnVnIC0gQWRkIHJ1c3QgdmVyc2lvbiBjcmF0ZS4gcj1tZSBhPW1lCisKK2RpZmYgLS1naXQg YS9DYXJnby5sb2NrIGIvQ2FyZ28ubG9jaworLS0tIGEvQ2FyZ28ubG9jaworKysrIGIvQ2FyZ28u bG9jaworQEAgLTE3MTQsMTYgKzE3MTQsMjIgQEAgbmFtZSA9ICJydXN0Y192ZXJzaW9uIgorIHZl cnNpb24gPSAiMC4yLjEiCisgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgorIGNoZWNrc3VtID0gImI5NzQzYTc2NzBkODhkNWQ1 Mjk1MDQwOGVjZGI3YzcxZDg5ODYyNTFhYjYwNGQ0Njg5ZGQyY2EyNWM5YmNhNjkiCisgZGVwZW5k ZW5jaWVzID0gWworICAic2VtdmVyIiwKKyBdCisgCisgW1twYWNrYWdlXV0KKytuYW1lID0gInJ1 c3R2ZXJzaW9uIgorK3ZlcnNpb24gPSAiMS4wLjIzIgorK3NvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKKytjaGVja3N1bSA9ICJj ZjU0NzE1YTU3M2I5OWFjODBkZjBiYzIwNmRhMDIyYmNkNDQyYzk3NDk1MmM3Yjk3MjAwNjkzNzA4 NTJlMjFmIgorKworK1tbcGFja2FnZV1dCisgbmFtZSA9ICJzYW1lLWZpbGUiCisgdmVyc2lvbiA9 ICIxLjAuMiIKKyBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9jcmF0ZXMuaW8taW5kZXgiCisgY2hlY2tzdW0gPSAiY2ZiNmVkZWQwYjA2YTBiNTEyYzhkZGJj ZjA0MDg5MTM4YzliNDM2MmMyZjY5NmYzYzNkNzYwMzlkNjhmMzYzNyIKKyBkZXBlbmRlbmNpZXMg PSBbCisgICJ3aW5hcGkgMC4zLjciLAorIF0KKyAKK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L2VuY29kaW5nX3JzLy5jYXJnby1jaGVja3N1bS5qc29uIGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgorLS0tIGEvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9l bmNvZGluZ19ycy8uY2FyZ28tY2hlY2tzdW0uanNvbgorQEAgLTEsMSArMSwxIEBACisteyJmaWxl cyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0Y2VjODk0ZmQzNjY0ZjBlYWE4 OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJR0hUIjoiMTE3ODlmNDViYjE4 MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4YzMwOGE2YWRkMDE5MCIsIkNh cmdvLnRvbWwiOiJkNzQwNWQyYmNmOTljZjk3MjkwNzU0NzNjNDVmNjc3NjMwZjRjMTk0N2M4YmE5 NzU3ZGI2MDdmMjAyNWE3ZGEyIiwiSWRlYXMubWQiOiJiNzQ1Mjg5M2Y1MDAxNjM4NjhkOGRlNTJj MDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJkIiwiTElDRU5TRS1BUEFDSEUi OiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQx N2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzkyMzc4MzliMWJkZWIyZTZkMTZi ZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElDRU5TRS1XSEFUV0ciOiI4Mzgx MTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEzMTljN2MxZDc3YzE4ZTk4N2Qx YTUwIiwiUkVBRE1FLm1kIjoiOTgyNjEzN2VkNDI5N2JlM2IyMDE5Yjc0YThmNjExMWE3OTZmZjUw N2JkZTQxZGYyZjIwNzEyNTM5NzA0YjllOSIsImNpL21pcmkuc2giOiI0M2NiOGQ4MmY0OWUzYmZl MmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4M2NmZGJlZTI1IiwiZG9jL0Jp ZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0YTIzNDk1MDM3OGFjZGUx ZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUyODE4YjkwN2QwMTM3ZjQwYTlh YjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFlNGJmMSIsImRvYy9FVUMtS1Iu dHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2ZkODc4MDc3MDM4ZDBjZWMzYzcy MzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiODIyOWU1OTA3NmQ4YmRkYjAxODY1Y2RjZjZh ZmRhMzUzMzIzOGQ3YzIzZDk3Zjk4ODIwZjllM2IyZDEzNTA1ZCIsImRvYy9JQk04NjYudHh0Ijoi YTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFmNzk2MGVmY2QwNDA5M2UxMzZi NTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0ZjVhOGYwZTI4NjhkN2IyYzI5 Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2IiwiZG9jL0lTTy04ODU5LTEw LnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3ZGYxMDYwZDY0ZTI2Mjg4MGI5 NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0IjoiMzk1MWRkODljZjkzZjc3Mjkx NDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJlOTNmYSIsImRvYy9JU08t ODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5NDk2NzVjYzcxNjhjODAwNTMw NTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1LnR4dCI6IjI0YjEwODRhYWI1 MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIzNjgzZjk3Y2Y2NmM0N2EiLCJk b2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3YTdlNDc2ZjY0MjRhZTRhNWNj NzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08tODg1OS0yLnR4dCI6IjE4Y2Vm Zjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJkZDdlODUyN2MxMjVjNzVkNTRh YWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0ZjVkYjU5MjIzMzYyZjI0OTk5 ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9jL0lTTy04ODU5LTQudHh0Ijoi ZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUxNjIyYmIzZTQyMGQ1NjgwZTgx MjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2ZWE3YTc4YWQxNWRhNzI3NWY2 Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2EiLCJkb2MvSVNPLTg4NTktNi50 eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEyNDI1ZTQ0ZmJjZjc0NTM1M2I5 MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5MDBmYTFmMjdhNDQ1OTU4ZjBh NzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJhYjg1ZSIsImRvYy9JU08tODg1 OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4YjA4ZDEzMjMxMmYxNTYxYzYw MTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4dCI6IjcyY2Q2ZjNhZmI3YjRh OWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJmYzNlYmE4NmM4YWYiLCJkb2Mv S09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgxNGIxZjYxNTE2NDAxNTZhOWEy YWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6IjBjYzc2NjI0ZWQxZjAyNDE4 M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNmNTBhNTA1NGYiLCJkb2MvU2hp ZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4YTc5YmU4YWQxNDhkNTYz ZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0IjoiZTJlMjgwZDhhY2JhYTZk MmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUzN2NkNWExZWY4ZiIsImRvYy9V VEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEyNWZiNWVlYjhiMDc3MDM2Y2M5 NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6ImVhN2JhZTc0MmU2MTMwMTBj ZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0NDI4ZjU0OGEiLCJkb2MvZ2Ix ODAzMC50eHQiOiI2N2EwMTY2NWM3NTUwNTMzMGIwZmU1YjhkODhkNTg3M2Q4Y2U1NTVhMTQ1Yzc3 ZGNhMDRhNDY3ZmEyNjgwNzQ0IiwiZG9jL21hY2ludG9zaC50eHQiOiI1NzQ5MWU1Mzg2NjcxMWI0 NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2MDM2ODdjMDIzIiwiZG9jL3Jl cGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgxNTk0YmQwMmQxMzYwN2UzMzRh OTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0xMjUwLnR4dCI6IjYxMjk2YmI2 YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhkNTg3MTBkMmYxMjVlMjhkMzki LCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0ODVjOGZmMDJkYjJjN2Q1Nzhk YjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mvd2luZG93cy0xMjUyLnR4dCI6 IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4N2JiZTQ3NWIxOTAyOGQwYTZk MzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3NDhiODhlOTkwNzFhNWM3YjNk NTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0ZGUiLCJkb2Mvd2luZG93cy0x MjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUyNjA1NTMyOTJhMzk0MjNkZjE2 ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4dCI6IjRlNTg1MjQ5NDczMDA1 NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2EyZWZlOWU5MDQ5M2QiLCJkb2Mv d2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAyYTQwNmU4ZjYwZDljZDk1OTg2 OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93cy0xMjU3LnR4dCI6ImMyOGEw YzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0ODFkNmFiZjlmZDllOTAxOGQ1 MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4MDVjNzlhYWNiZjE3YzkzNzkz MzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJkb2Mvd2luZG93cy04NzQudHh0 IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2Y2E4NDc1ZGI3NzFjZTJmYzE2 ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1OGJlMTU0ZDhhODg4Y2EzZDQ4 NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUwNTBhOGJkIiwiZG9jL3gtdXNl ci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJkZGRkMjUxMDcyOTk5YjA0YTZj ZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNvZGluZy1kYXRhLnB5IjoiNmYz NGE4NDU3ODVmNTM0MjVhY2NmMzA3NTllZGM1NjY4NzNmY2IwYzIxODg2NDhlMDdiMDljODk4ZjM5 ZGRkYiIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5OTFjYmI4MWI3MGZiNTI3ODA0 NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNjaWkucnMiOiI1ODhlMzhiMDFl NjY2ZDVlNzQ2MjYxN2VhN2U5MGExMDhkNjA4ZGVjOWUwMTZmM2QyNzNhYzA3NDRhZjJlMDVkIiwi c3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3MzFmMTM5YTdjYTFkNWIyNjRm ZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiJiOTNmMzQwMjVmZTVjNmE4NWI0 YjlmMDAzN2JmNTg5NjEzNTJiZjE5YzgzZjkxYjA5YjM1ZWI4NDk1NjI1ZWVjIiwic3JjL2V1Y19q cC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2YTA5ZjE4ZTMxNWVkM2U5 YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFmYzcyZDkzNzg3MDBlZWNmYWM1 OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJiOSIsInNyYy9nYjE4MDMwLnJz IjoiODljZDZhZTIyNDdhZGQzZjM0NzFhNjk5YmMxMjExM2E5YWUyZjZiOTFhNTIyM2FiYmYxNWI2 OGExMzUzN2RjZCIsInNyYy9nYjE4MDMwXzIwMjIucnMiOiIzYzJlMDY0OTJjNWUwMGZjZDM5NTE1 ZTRhZjRjNTYwZDhjZWU1YzMxZTdhN2UzODhkYjY4MmJjOWVlMzNlZTMyIiwic3JjL2hhbmRsZXMu cnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3MzdiN2EwNzVlNDU5M2Vh YThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1ZTgyNTc0ZjRiN2Q0YjIz NjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1MiIsInNyYy9saWIucnMi OiJjNGQ5ZmExYzQzMTA1ZTIzMTAxMjJmMWI5MTk3MTI1MDMyZTYwN2ZlNmY3OWJjMjI3NjliMzQw ZGU3NmUyNDMwIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4YmZkOGNkYzQ3NWU5MjEx NWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMvbWVtLnJzIjoiOTQ4NTcx MTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgzYWJjYWI5MzQxZDZhZGFi ZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2EyYmRmYTBlNTFlODQzZWMy ODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hpZnRfamlzLnJzIjoiNjk1 MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJkZTUyMDYwYjI5YmQwZjE2 ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3M2NkMzlhNzUyMDY3YzEx NDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9zaW5nbGVfYnl0ZS5ycyI6 IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4MTRkNzA4ZjE2MTk0ZWQw OGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiYTVhZTI5MDc4NjYxMGM3ZmFj ZGJiMWQwNmJlNjgxNWU4YmI4MWQ2OGRmYTczODBlZGM3ZGRiNmI4YzdlNDEyZSIsInNyYy90ZXN0 X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiNTI3MzNkOTk3MGZiODk4N2YwMTRmYTBlYWMyNzkyMjUw MTIzY2Y1ODNiMzYzYmViMmNlN2IzYzU1ZTNkYzU1NSIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXQu dHh0IjoiNTc0MjBjYTQxYTY2OWM5NDk3MzhjODRjYWI2MjAwMjA5NTk1NzJkMmVlOTdiNGUwNTk0 MDViZmUyNmE3OWI2ZCIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVmLnR4dCI6IjAwZTVmNjdj MjIyZGQ1Y2QzYmIxNzM5Mjc2OTEwYjhmMDAzMmY0NTRjYmE3Y2Y3YzNlYWEyNTVhNTY0MTg4ZDAi LCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiIyMTUzNGVjODdlODJkNzg1ZDEyOGY5ODA5 MDJkMTNmYWI2ZDlkZWExNWM2OWE5OTFmNDA5ZDliMGFmZDFjODUyIiwic3JjL3Rlc3RfZGF0YS9l dWNfa3JfaW5fcmVmLnR4dCI6ImIzMDA5ZTZhOTQ5NjdkZjFmMTEzNWM2NmYwMDU2MTBiZWJhZDY2 NjZkNjM0YWVjNzJkMmFkNzdjMzIxMWJkYTMiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9vdXQudHh0 IjoiMjAyMDViMGI1YmU0ZjU3OTI3MTE5M2I1YmZiYzU0OWE2MWE5ZmQ1MjE3YzMzZWVjZmE2MTc4 NGEzZmZlMmU5ZCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYudHh0IjoiYjVmNTY2MjM3 ZjhkNGVmNGQwM2FkMjYxMzVjYTk3ZGZkNzM5ODYwOGE4MjE2NWJkNDg1M2I1MTM0YWIyMmNiNSIs InNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiIwZGQxZmJmMDM2MDkzMGRhYWZkY2U3ZTY3 NjE4NTIwMDVhOGY5MmY3OTEwMTgwZGYxOWEwNzBiNmMzYzU5ZGVlIiwic3JjL3Rlc3RfZGF0YS9n YjE4MDMwX2luX3JlZi50eHQiOiJmM2VhZWExMTE1ODU3MDU0Y2YzMGY4YmExODIxOWU3MjM3N2Yy YTRhZmQ4NDhjY2YyMjM3NzBkNzVhYTQyNTFkIiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dC50 eHQiOiI3MTg0ZmU5NTkyNjA5NTk3ZDU1YzI3MzM2MDZiNGM0YjFhMThiNzliMjQ1MzNlMWExNmEx NGZmOTJlN2QyYjU1Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9yZWYudHh0IjoiMjNiYjg1 MGRkYzY5YWFmMWJkZmVhYmUwNWExMmQ5M2Y2MTRlNTU2MGRhYzg3OWQ1ZjAyOTI5ZWU0YTdjMDZj NSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiOThmYjgyMzUzMGEzMGE3NmVi MGJhN2FiNmFjNzk2OTU5ZTg4NjljMWVjMTQzZjAxOGExOTY0NTgxYWU4MTNhYSIsInNyYy90ZXN0 X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6ImRmODIxNjZkMmUwMWJiNDQ2MjExZDdlNDZm MzNiNDdkOTNhYzFiYWZlYWUyZWQ4ODBlZTkzYzQwOTZkMTEyMTAiLCJzcmMvdGVzdF9kYXRhL2lz b18yMDIyX2pwX291dC50eHQiOiJiZWY4ZWI0ODA0ZWQwODQzYjlkZmZkZDFkMTY4NzM4NjM1Y2M3 N2Y4ZDA5MjliZWIyNTMyYjY4NjMxOGRkYWU2Iiwic3JjL3Rlc3RfZGF0YS9pc29fMjAyMl9qcF9v dXRfcmVmLnR4dCI6ImIyMjFiMzZiMmJjZTQ5ZDQ5YjYyMGRjOGJhODBkNzdiYWM3NGU4NjYwYTg2 YTExNjI4ZTc5YjY3ZjFkOTg5NjQiLCJzcmMvdGVzdF9kYXRhL2ppczAyMDhfaW4udHh0IjoiM2Mx YTdhYWFkYTAwZDZmZmY0MWU2MGJkNzU4OWQ3YWU5NGFmYWY1NjI3NTliMTE2OTU4YjFkODQ3MTFk MTdiNiIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0IjoiZGY4MjE2NmQyZTAxYmI0 NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5NmQxMTIxMCIsInNyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiYTYxODhiNjdlYjAwYmE5ODBjYjgzMDU2MTg2Yzg5 YmNkZGRjMWIwMjEwYWY5YWZhNzhlZDFjOWI3YTA5ODk1MCIsInNyYy90ZXN0X2RhdGEvamlzMDIw OF9vdXRfcmVmLnR4dCI6ImU3NWE5ODZmZTVlNzhlNjRiZjhmYWZkNzM5MmFlOTZlZTBjYjBhNGIy ZTdlZjJmZTcyMmIzY2FhY2YzZTJmNzAiLCJzcmMvdGVzdF9kYXRhL2ppczAyMTJfaW4udHh0Ijoi OWVkYTc2NjAwMjY0NmEyNzMxMDQ1N2M2NjE4MzI0MjliZWZmOTA4OWQyNzAzMzU1ODEyYzRjYWMz MGQ4MDBiNSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0IjoiZmNmNzRjNThkMmNi ZTliM2YzZGI0ZmE5ZWZmMjZlMDlmNWU5NjQ0MDk3Yzc4NjE0YzAzMTc3ZTkzODk4OGQwMyIsInNy Yy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6ImU2NWRmNzQ2YmU5MDM1OWU3MDQyMjg2ODUy MmE3YWEzZThlZDIwZTBkNGMwY2Y5OTk1ZDlkZTI0OGJmOTMzODgiLCJzcmMvdGVzdF9kYXRhL3No aWZ0X2ppc19pbl9yZWYudHh0IjoiMTNiMTVhZWQ2NGU5ZTdjYjM1ZTZhNzQwYjY3NDEzZjBjMjg1 ZmRhOTQ0ZjQ4MTRkNDVhNzYxOWVhMzM4ZmI1ZSIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX291 dC50eHQiOiIxOTJkMGE0YThjZTVkMGY5MDRjNWNiMjgzZGZiOTc0NTc3ZWU2NjdjZjFlNzE5NTVh NmRkNmFlY2UyYjM1NGVmIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNfb3V0X3JlZi50eHQiOiJj YjZkNTBiMGMxMWJhZDFkMWYxZmNjMDJkNzc5NjcyYThiOWEyNTA5Y2JiYWZkYzYzOTJhY2ViNDlj OGI0MjY4Iiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUxMWIwMmIzYjhkMTVmYjU2 MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAwZCIsInNyYy90ZXN0aW5n LnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcwYmY1MmY3ZTIwZWIxNjA1 ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2ZhZDM4ZDc1MGMyYzI0N2Ux NDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwic3JjL3V0Zl84LnJzIjoi N2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZjMjhmM2I0NWMxOTQ2Nzg1 MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1NGE3MTY5ZGU4NzMxZWE5 Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94X3VzZXJfZGVmaW5lZC5y cyI6Ijk0NTZjYTQ2MTY4ZWY4NmM5ODM5OWEyNTM2ZjU3N2VmN2JlM2NkZGU5MGMwYzUxMzkyZDhh YzQ4NTE5ZDNmYWUifSwicGFja2FnZSI6Ijc1MDMwZjNjNGY0NWRhZmQ3NTg2ZGQ2NzgwOTY1YThj N2U4ZTI4NWE1ZWNiODY3MTNlNjNhNzljNWIyNzY2ZjMifQorXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCisreyJmaWxlcyI6eyJDT05UUklCVVRJTkcubWQiOiJjYTE5MDFmM2U4NTMyZmI0Y2Vj ODk0ZmQzNjY0ZjBlYWE4OThjMGM0Yjk2MWQxYjk5MmQxZWQ1NGVhY2YzNjJhIiwiQ09QWVJJR0hU IjoiMTE3ODlmNDViYjE4MDg0MWNkMzYyYTVlZWU2Nzg5YzY4ZGRiNTczYTExMTA1ZTMwNzY4YzMw OGE2YWRkMDE5MCIsIkNhcmdvLnRvbWwiOiJiZmVjMDZiYzYyOTMyYjYyOWZhYTU3OGQ1ZmVmYmM0 ZGM4ZGRiZDZjODA3ZTU0MmY2YTY3NmRjMjgzZTJmNzE2IiwiSWRlYXMubWQiOiJiNzQ1Mjg5M2Y1 MDAxNjM4NjhkOGRlNTJjMDlhZGRhZjkxZTE2MzI0NTRlZDAyZTg5MmM0NjdlZDdlYzM5ZGJkIiwi TElDRU5TRS1BUEFDSEUiOiJjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNl ODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwiTElDRU5TRS1NSVQiOiIzZmE0Y2E4M2RjYzkyMzc4 MzliMWJkZWIyZTZkMTZiZGZiNWVjMGM1Y2U0MmIyNDY5NGQ4YmJmMGRjYmVmNzJjIiwiTElDRU5T RS1XSEFUV0ciOiI4MzgxMTgzODhmZTVjMmU3ZjFkYmJhZWVkMTNlMWM3ZjNlYmY4OGJlOTEzMTlj N2MxZDc3YzE4ZTk4N2QxYTUwIiwiUkVBRE1FLm1kIjoiOTgyNjEzN2VkNDI5N2JlM2IyMDE5Yjc0 YThmNjExMWE3OTZmZjUwN2JkZTQxZGYyZjIwNzEyNTM5NzA0YjllOSIsImNpL21pcmkuc2giOiI0 M2NiOGQ4MmY0OWUzYmZlMmQyMjc0YjZjY2Q2ZjA3MTRhNDE4OGNjZWYwY2VjYzA0MDgyOTg4M2Nm ZGJlZTI1IiwiZG9jL0JpZzUudHh0IjoiZjczYTJlZGM1Y2I2YzJkMTQwYmE2ZTA3ZjQ1NDJlMWM0 YTIzNDk1MDM3OGFjZGUxZGY5MzQ4MGYwY2EwYmUwYiIsImRvYy9FVUMtSlAudHh0IjoiZWUyODE4 YjkwN2QwMTM3ZjQwYTlhYjlmZDUyNWZjNzAwYTQ0ZGJkZGRiNmNmMGMxNTdhNjU2NTY2YmFlNGJm MSIsImRvYy9FVUMtS1IudHh0IjoiNzFkOWUyY2NmM2IxMjRlOGJkZmI0MzNjOGNmMjc3M2ZkODc4 MDc3MDM4ZDBjZWMzYzcyMzdhNTBmNGE3OGEzMCIsImRvYy9HQksudHh0IjoiODIyOWU1OTA3NmQ4 YmRkYjAxODY1Y2RjZjZhZmRhMzUzMzIzOGQ3YzIzZDk3Zjk4ODIwZjllM2IyZDEzNTA1ZCIsImRv Yy9JQk04NjYudHh0IjoiYTVhNDMzZTgwNGQwZjgzYWY3ODUwMTUxNzlmYmMxZDliMGVhZjFmNzk2 MGVmY2QwNDA5M2UxMzZiNTFmYmQwZSIsImRvYy9JU08tMjAyMi1KUC50eHQiOiJhZjg2Njg0ZjVh OGYwZTI4NjhkN2IyYzI5Mjg2MDE0MGMzZDJlNTUyNzUzMGNhMDkxZjFiMjgxOThlOGUyZmU2Iiwi ZG9jL0lTTy04ODU5LTEwLnR4dCI6IjZkMzk0OWFkN2M4MWNhMTc2ODk1MTAxZWQ4MWExZGI3ZGYx MDYwZDY0ZTI2Mjg4MGI5NGJkMzFiYjM0NGFiNGQiLCJkb2MvSVNPLTg4NTktMTMudHh0IjoiMzk1 MWRkODljZjkzZjc3MjkxNDgwOTE2ODNjZjg1MTFmNDUyOTM4OGI3ZGM4ZGNkMGQ2MmVhZWQ1NWJl OTNmYSIsImRvYy9JU08tODg1OS0xNC50eHQiOiIzZDMzMDc4NGEwMzc0ZmQyNTVhMzhiNDc5NDk2 NzVjYzcxNjhjODAwNTMwNTM0YjBhMDFjYWM2ZWRjNjIzYWRjIiwiZG9jL0lTTy04ODU5LTE1LnR4 dCI6IjI0YjEwODRhYWI1MTI3YTg1YWFiOTkxNTNmODZlMjQ2OTRkMGEzNjE1ZjUzYjVjZTIzNjgz Zjk3Y2Y2NmM0N2EiLCJkb2MvSVNPLTg4NTktMTYudHh0IjoiY2UwMjcyNTU5YjkyYmE3NmQ3YTdl NDc2ZjY0MjRhZTRhNWNjNzJlNzViMTgzNjExYjA4MzkyZTQ0YWRkNGQyNSIsImRvYy9JU08tODg1 OS0yLnR4dCI6IjE4Y2VmZjg4YzEzZDFiNWJhNDU1YTM5MTliMWUzZGU0ODkwNDVjNGMzZDJkZDdl ODUyN2MxMjVjNzVkNTRhYWQiLCJkb2MvSVNPLTg4NTktMy50eHQiOiIyMTc5ODQwNGM2OGY0ZjVk YjU5MjIzMzYyZjI0OTk5ZGE5Njk2OGMwNjI4NDI3MzIxZmNjY2U3ZDI4NDlhMTMwIiwiZG9jL0lT Ty04ODU5LTQudHh0IjoiZDI3ZjY1MjBjNmM1YmZiY2MxOTE3NmI3MWQwODFjZGIzYmNjZGUxNjIy YmIzZTQyMGQ1NjgwZTgxMjYzMmQ1MyIsImRvYy9JU08tODg1OS01LnR4dCI6ImExMGVjOGQ2ZWE3 YTc4YWQxNWRhNzI3NWY2Y2IxYTMzNjUxMTg1MjdlMjhmOWFmNmQwZDU4MzA1MDEzMDNmM2EiLCJk b2MvSVNPLTg4NTktNi50eHQiOiJjY2RhOGEyZWZjOTYxMTUzMzZiZGQ3Nzc3NjYzN2I5NzEyNDI1 ZTQ0ZmJjZjc0NTM1M2I5MDU3ZmJlZjE0NGU3IiwiZG9jL0lTTy04ODU5LTcudHh0IjoiMTc5MDBm YTFmMjdhNDQ1OTU4ZjBhNzdkN2Q5MDU2YmUzNzVhNmJkN2VlNDQ5MmFhNjgwYzdjMTUwMGJhYjg1 ZSIsImRvYy9JU08tODg1OS04LUkudHh0IjoiODM1NzU1NTY0NmQ1NDI2NWE5YjlmZmEzZTY4YjA4 ZDEzMjMxMmYxNTYxYzYwMTA4ZmY5YjhiMTE2N2I2ZWNmMiIsImRvYy9JU08tODg1OS04LnR4dCI6 IjcyY2Q2ZjNhZmI3YjRhOWMxNmE2NmEzNjI0NzMzMTU3NzBiNzc1NWQ3MmM4NmM4NzBlNTJmYzNl YmE4NmM4YWYiLCJkb2MvS09JOC1SLnR4dCI6IjgzOWNmMTlhMzhkYTk5NDQ4ODAwNGVkNzgxNGIx ZjYxNTE2NDAxNTZhOWEyYWYwMmJmMmVmY2E3NDVmYjU5NjYiLCJkb2MvS09JOC1VLnR4dCI6IjBj Yzc2NjI0ZWQxZjAyNDE4M2UyMjk4YjdlMDE5OTU3ZGEyYzcwYzhjYTA2ZTBmYzRlNmYzNTNmNTBh NTA1NGYiLCJkb2MvU2hpZnRfSklTLnR4dCI6IjM0YzQ5MTQxODE4Y2I5ZGRiY2Y1OWNjODU4Zjc4 YTc5YmU4YWQxNDhkNTYzZjI2NDE1MTA4YWUxZjE0ODQ0M2YiLCJkb2MvVVRGLTE2QkUudHh0Ijoi ZTJlMjgwZDhhY2JhYTZkMmE2YjM1NjlkNjBlMTc1MDBhMjg1ZjJiYWEwZGYzMzYzZGQ4NTUzN2Nk NWExZWY4ZiIsImRvYy9VVEYtMTZMRS50eHQiOiI3MGJkYzE3MGUzZmM1Mjk4YmE2OGYxMDEyNWZi NWVlYjhiMDc3MDM2Y2M5NmJiNDQxNmM0ZGUzOTZmNmQ3NmMxIiwiZG9jL1VURi04LnR4dCI6ImVh N2JhZTc0MmU2MTMwMTBjZWQwMDJjZjRiNjAxYTczN2QyMjAzZmFkNjVlMTE1NjExNDUxYmM0NDI4 ZjU0OGEiLCJkb2MvZ2IxODAzMC50eHQiOiI2N2EwMTY2NWM3NTUwNTMzMGIwZmU1YjhkODhkNTg3 M2Q4Y2U1NTVhMTQ1Yzc3ZGNhMDRhNDY3ZmEyNjgwNzQ0IiwiZG9jL21hY2ludG9zaC50eHQiOiI1 NzQ5MWU1Mzg2NjcxMWI0NjcyZDliOWZmMzUzODBiOWRhYzllMGQ4ZTNkNmMyMGJkZDYxNDA2MDM2 ODdjMDIzIiwiZG9jL3JlcGxhY2VtZW50LnR4dCI6IjRiNmMzYmJkNzk5OWQ5ZDQxMDhhMjgxNTk0 YmQwMmQxMzYwN2UzMzRhOTU0NjVhZmZmOGMyYzA4ZDM5NWYwZTQiLCJkb2Mvd2luZG93cy0xMjUw LnR4dCI6IjYxMjk2YmI2YTIxY2RhYjYwMjMwMGQzMmVjZmJhNDM0Y2I4MmRlNWFjM2JjODhkNTg3 MTBkMmYxMjVlMjhkMzkiLCJkb2Mvd2luZG93cy0xMjUxLnR4dCI6IjdkZWVhMWM2MWRlYTE0ODVj OGZmMDJkYjJjN2Q1NzhkYjdhOWFhYjYzYWIxY2ZkMDJlYzA0YjUxNTg2NDY4OWUiLCJkb2Mvd2lu ZG93cy0xMjUyLnR4dCI6IjkzM2VmM2JkZGRmY2U1ZWUxMzJiOWYxYTFhYThiNDc0MjNkMjU4N2Ji ZTQ3NWIxOTAyOGQwYTZkMzhlMTgwYjYiLCJkb2Mvd2luZG93cy0xMjUzLnR4dCI6IjFhMzg3NDhi ODhlOTkwNzFhNWM3YjNkNTQ1NmVhZDRjYWVkZWFiYWI1MGQ1MGQ2NThiZTEwNWJjMTEzNzE0ZGUi LCJkb2Mvd2luZG93cy0xMjU0LnR4dCI6ImY4MzcyZjg2YzZmOGQ2NDI1NjNjZDZkZGMwMjUyNjA1 NTMyOTJhMzk0MjNkZjE2ODNhOTg2NzBiZDdiZjJiNDciLCJkb2Mvd2luZG93cy0xMjU1LnR4dCI6 IjRlNTg1MjQ5NDczMDA1NGUyZGEyNThhNzRlMWI5ZDc4MGFiYmNkZDhjZTIyZWJjMjE4Y2EyZWZl OWU5MDQ5M2QiLCJkb2Mvd2luZG93cy0xMjU2LnR4dCI6ImMwODc5YzUxNzJhYmVkZWFkMzAyYTQw NmU4ZjYwZDljZDk1OTg2OTRhMGZmYTRmZDI4OGZmZTRmZWY3YjhlYTEiLCJkb2Mvd2luZG93cy0x MjU3LnR4dCI6ImMyOGEwYzlmOTY0ZmNiMmI0NmQyMWY1MzdjNDAyNDQ2NTAxYTI4MDA2NzA0ODFk NmFiZjlmZDllOTAxOGQ1MjMiLCJkb2Mvd2luZG93cy0xMjU4LnR4dCI6IjUwMTlhZTRkNjE4MDVj NzlhYWNiZjE3YzkzNzkzMzQyZGJiMDk4ZDY1YTE4Mzc3ODNiYzNlMmM2ZDZhMjM2MDIiLCJkb2Mv d2luZG93cy04NzQudHh0IjoiNGVmMGU0NTAxYzVmZWJhOGIxN2FlZTE4MTg2MDJlZDQ0YjM2Y2E4 NDc1ZGI3NzFjZTJmYzE2ZDM5MmNhYmVjYyIsImRvYy94LW1hYy1jeXJpbGxpYy50eHQiOiI1OGJl MTU0ZDhhODg4Y2EzZDQ4NGI4M2I0NGY3NDk4MjNlZjMzOWFiMjdmMTRkOTBjYTlhODU2ZjUwNTBh OGJkIiwiZG9jL3gtdXNlci1kZWZpbmVkLnR4dCI6ImY5Y2QwN2M0MzIxYmY1Y2ZiMGJlNGJkZGRk MjUxMDcyOTk5YjA0YTZjZjdhNmY1YmM2MzcwOWE4NGUyYzFmZmMiLCJnZW5lcmF0ZS1lbmNvZGlu Zy1kYXRhLnB5IjoiNmYzNGE4NDU3ODVmNTM0MjVhY2NmMzA3NTllZGM1NjY4NzNmY2IwYzIxODg2 NDhlMDdiMDljODk4ZjM5ZGRkYiIsInJ1c3RmbXQudG9tbCI6Ijg1YzFhM2I0MzgyZmQ4OWU5OTFj YmI4MWI3MGZiNTI3ODA0NzJlZGMwNjRjOTYzOTQzY2RhYWE1NmUwYTIwMzAiLCJzcmMvYXNjaWku cnMiOiI1ODhlMzhiMDFlNjY2ZDVlNzQ2MjYxN2VhN2U5MGExMDhkNjA4ZGVjOWUwMTZmM2QyNzNh YzA3NDRhZjJlMDVkIiwic3JjL2JpZzUucnMiOiJlYzZlMjkxMzAxMWEzOGU5YTNlODI1YTE3MzFm MTM5YTdjYTFkNWIyNjRmZWZhZTUxYTNjYzFhNjhhNTdjZWY5Iiwic3JjL2RhdGEucnMiOiJiOTNm MzQwMjVmZTVjNmE4NWI0YjlmMDAzN2JmNTg5NjEzNTJiZjE5YzgzZjkxYjA5YjM1ZWI4NDk1NjI1 ZWVjIiwic3JjL2V1Y19qcC5ycyI6IjMyMDQ3ZjViNTQwMTg4YzRjYjE5YzA3MTY1Zjg0NmI5Nzg2 YTA5ZjE4ZTMxNWVkM2U5YmRhMTI5M2RhZTUyYWEiLCJzcmMvZXVjX2tyLnJzIjoiOWIyNWFmYzcy ZDkzNzg3MDBlZWNmYWM1OGQ1NWFkMWM1OTQ2ZDZjZDBjY2RlMmMyOWMwODIwMGVmMmRlNmJiOSIs InNyYy9nYjE4MDMwLnJzIjoiODljZDZhZTIyNDdhZGQzZjM0NzFhNjk5YmMxMjExM2E5YWUyZjZi OTFhNTIyM2FiYmYxNWI2OGExMzUzN2RjZCIsInNyYy9nYjE4MDMwXzIwMjIucnMiOiIzYzJlMDY0 OTJjNWUwMGZjZDM5NTE1ZTRhZjRjNTYwZDhjZWU1YzMxZTdhN2UzODhkYjY4MmJjOWVlMzNlZTMy Iiwic3JjL2hhbmRsZXMucnMiOiJiMDhjZWYxZjU3ODViYjZhNDgyMmYyZTg0NGM2ZGYxYjA0NmI3 MzdiN2EwNzVlNDU5M2VhYThjNDIwOGU5ZmUyIiwic3JjL2lzb18yMDIyX2pwLnJzIjoiOWJiNDg1 ZTgyNTc0ZjRiN2Q0YjIzNjRmMGZmMjc2YWNiNmEwYmMxMTE3NTg0MjBhM2IwZWM1ZTA0YzE5NjY1 MiIsInNyYy9saWIucnMiOiJjNGQ5ZmExYzQzMTA1ZTIzMTAxMjJmMWI5MTk3MTI1MDMyZTYwN2Zl NmY3OWJjMjI3NjliMzQwZGU3NmUyNDMwIiwic3JjL21hY3Jvcy5ycyI6IjIwMDk5N2Y4ODcwZGU4 YmZkOGNkYzQ3NWU5MjExNWRmNDIxMDhjMGRmNjYxZTQ5ZDNkMWNiYzMyMDU2ZTFkOTkiLCJzcmMv bWVtLnJzIjoiOTQ4NTcxMTM3ZDNiMTUxZGY4ZGI0ZmIyYzczM2U3NGFlNTk1ZDA1NWNkZjBhZDgz YWJjYWI5MzQxZDZhZGFiZSIsInNyYy9yZXBsYWNlbWVudC5ycyI6Ijc2NjBiMzRhNTNmOGMxY2Ey YmRmYTBlNTFlODQzZWMyODMyNjk1MDk1MmFkOGJjOTY1NjlmZWI5M2FjNjIzMDgiLCJzcmMvc2hp ZnRfamlzLnJzIjoiNjk1MWFlNjdlMzZiMWExMmZhM2EzMDczNDk1N2Y0NDRkOGIxYjRhZTBlMmJk ZTUyMDYwYjI5YmQwZjE2ZDlkOSIsInNyYy9zaW1kX2Z1bmNzLnJzIjoiMDVjNmU3N2FmNzRiZmU3 M2NkMzlhNzUyMDY3YzExNDI1ZDZiNDZlNWRhNDE5OTEwZjU0YmY3NWE1YzAyYTk4NCIsInNyYy9z aW5nbGVfYnl0ZS5ycyI6IjNhZDg3MTE2ZmIzMzk0MzRhNGI1OGU4ZjJiMTU0ODVmMmI2NmI5Zjc4 MTRkNzA4ZjE2MTk0ZWQwOGY2ZDZjY2YiLCJzcmMvdGVzdF9kYXRhL2JpZzVfaW4udHh0IjoiYTVh ZTI5MDc4NjYxMGM3ZmFjZGJiMWQwNmJlNjgxNWU4YmI4MWQ2OGRmYTczODBlZGM3ZGRiNmI4Yzdl NDEyZSIsInNyYy90ZXN0X2RhdGEvYmlnNV9pbl9yZWYudHh0IjoiNTI3MzNkOTk3MGZiODk4N2Yw MTRmYTBlYWMyNzkyMjUwMTIzY2Y1ODNiMzYzYmViMmNlN2IzYzU1ZTNkYzU1NSIsInNyYy90ZXN0 X2RhdGEvYmlnNV9vdXQudHh0IjoiNTc0MjBjYTQxYTY2OWM5NDk3MzhjODRjYWI2MjAwMjA5NTk1 NzJkMmVlOTdiNGUwNTk0MDViZmUyNmE3OWI2ZCIsInNyYy90ZXN0X2RhdGEvYmlnNV9vdXRfcmVm LnR4dCI6IjAwZTVmNjdjMjIyZGQ1Y2QzYmIxNzM5Mjc2OTEwYjhmMDAzMmY0NTRjYmE3Y2Y3YzNl YWEyNTVhNTY0MTg4ZDAiLCJzcmMvdGVzdF9kYXRhL2V1Y19rcl9pbi50eHQiOiIyMTUzNGVjODdl ODJkNzg1ZDEyOGY5ODA5MDJkMTNmYWI2ZDlkZWExNWM2OWE5OTFmNDA5ZDliMGFmZDFjODUyIiwi c3JjL3Rlc3RfZGF0YS9ldWNfa3JfaW5fcmVmLnR4dCI6ImIzMDA5ZTZhOTQ5NjdkZjFmMTEzNWM2 NmYwMDU2MTBiZWJhZDY2NjZkNjM0YWVjNzJkMmFkNzdjMzIxMWJkYTMiLCJzcmMvdGVzdF9kYXRh L2V1Y19rcl9vdXQudHh0IjoiMjAyMDViMGI1YmU0ZjU3OTI3MTE5M2I1YmZiYzU0OWE2MWE5ZmQ1 MjE3YzMzZWVjZmE2MTc4NGEzZmZlMmU5ZCIsInNyYy90ZXN0X2RhdGEvZXVjX2tyX291dF9yZWYu dHh0IjoiYjVmNTY2MjM3ZjhkNGVmNGQwM2FkMjYxMzVjYTk3ZGZkNzM5ODYwOGE4MjE2NWJkNDg1 M2I1MTM0YWIyMmNiNSIsInNyYy90ZXN0X2RhdGEvZ2IxODAzMF9pbi50eHQiOiIwZGQxZmJmMDM2 MDkzMGRhYWZkY2U3ZTY3NjE4NTIwMDVhOGY5MmY3OTEwMTgwZGYxOWEwNzBiNmMzYzU5ZGVlIiwi c3JjL3Rlc3RfZGF0YS9nYjE4MDMwX2luX3JlZi50eHQiOiJmM2VhZWExMTE1ODU3MDU0Y2YzMGY4 YmExODIxOWU3MjM3N2YyYTRhZmQ4NDhjY2YyMjM3NzBkNzVhYTQyNTFkIiwic3JjL3Rlc3RfZGF0 YS9nYjE4MDMwX291dC50eHQiOiI3MTg0ZmU5NTkyNjA5NTk3ZDU1YzI3MzM2MDZiNGM0YjFhMThi NzliMjQ1MzNlMWExNmExNGZmOTJlN2QyYjU1Iiwic3JjL3Rlc3RfZGF0YS9nYjE4MDMwX291dF9y ZWYudHh0IjoiMjNiYjg1MGRkYzY5YWFmMWJkZmVhYmUwNWExMmQ5M2Y2MTRlNTU2MGRhYzg3OWQ1 ZjAyOTI5ZWU0YTdjMDZjNSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW4udHh0IjoiOThm YjgyMzUzMGEzMGE3NmViMGJhN2FiNmFjNzk2OTU5ZTg4NjljMWVjMTQzZjAxOGExOTY0NTgxYWU4 MTNhYSIsInNyYy90ZXN0X2RhdGEvaXNvXzIwMjJfanBfaW5fcmVmLnR4dCI6ImRmODIxNjZkMmUw MWJiNDQ2MjExZDdlNDZmMzNiNDdkOTNhYzFiYWZlYWUyZWQ4ODBlZTkzYzQwOTZkMTEyMTAiLCJz cmMvdGVzdF9kYXRhL2lzb18yMDIyX2pwX291dC50eHQiOiJiZWY4ZWI0ODA0ZWQwODQzYjlkZmZk ZDFkMTY4NzM4NjM1Y2M3N2Y4ZDA5MjliZWIyNTMyYjY4NjMxOGRkYWU2Iiwic3JjL3Rlc3RfZGF0 YS9pc29fMjAyMl9qcF9vdXRfcmVmLnR4dCI6ImIyMjFiMzZiMmJjZTQ5ZDQ5YjYyMGRjOGJhODBk NzdiYWM3NGU4NjYwYTg2YTExNjI4ZTc5YjY3ZjFkOTg5NjQiLCJzcmMvdGVzdF9kYXRhL2ppczAy MDhfaW4udHh0IjoiM2MxYTdhYWFkYTAwZDZmZmY0MWU2MGJkNzU4OWQ3YWU5NGFmYWY1NjI3NTli MTE2OTU4YjFkODQ3MTFkMTdiNiIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9pbl9yZWYudHh0Ijoi ZGY4MjE2NmQyZTAxYmI0NDYyMTFkN2U0NmYzM2I0N2Q5M2FjMWJhZmVhZTJlZDg4MGVlOTNjNDA5 NmQxMTIxMCIsInNyYy90ZXN0X2RhdGEvamlzMDIwOF9vdXQudHh0IjoiYTYxODhiNjdlYjAwYmE5 ODBjYjgzMDU2MTg2Yzg5YmNkZGRjMWIwMjEwYWY5YWZhNzhlZDFjOWI3YTA5ODk1MCIsInNyYy90 ZXN0X2RhdGEvamlzMDIwOF9vdXRfcmVmLnR4dCI6ImU3NWE5ODZmZTVlNzhlNjRiZjhmYWZkNzM5 MmFlOTZlZTBjYjBhNGIyZTdlZjJmZTcyMmIzY2FhY2YzZTJmNzAiLCJzcmMvdGVzdF9kYXRhL2pp czAyMTJfaW4udHh0IjoiOWVkYTc2NjAwMjY0NmEyNzMxMDQ1N2M2NjE4MzI0MjliZWZmOTA4OWQy NzAzMzU1ODEyYzRjYWMzMGQ4MDBiNSIsInNyYy90ZXN0X2RhdGEvamlzMDIxMl9pbl9yZWYudHh0 IjoiZmNmNzRjNThkMmNiZTliM2YzZGI0ZmE5ZWZmMjZlMDlmNWU5NjQ0MDk3Yzc4NjE0YzAzMTc3 ZTkzODk4OGQwMyIsInNyYy90ZXN0X2RhdGEvc2hpZnRfamlzX2luLnR4dCI6ImU2NWRmNzQ2YmU5 MDM1OWU3MDQyMjg2ODUyMmE3YWEzZThlZDIwZTBkNGMwY2Y5OTk1ZDlkZTI0OGJmOTMzODgiLCJz cmMvdGVzdF9kYXRhL3NoaWZ0X2ppc19pbl9yZWYudHh0IjoiMTNiMTVhZWQ2NGU5ZTdjYjM1ZTZh NzQwYjY3NDEzZjBjMjg1ZmRhOTQ0ZjQ4MTRkNDVhNzYxOWVhMzM4ZmI1ZSIsInNyYy90ZXN0X2Rh dGEvc2hpZnRfamlzX291dC50eHQiOiIxOTJkMGE0YThjZTVkMGY5MDRjNWNiMjgzZGZiOTc0NTc3 ZWU2NjdjZjFlNzE5NTVhNmRkNmFlY2UyYjM1NGVmIiwic3JjL3Rlc3RfZGF0YS9zaGlmdF9qaXNf b3V0X3JlZi50eHQiOiJjYjZkNTBiMGMxMWJhZDFkMWYxZmNjMDJkNzc5NjcyYThiOWEyNTA5Y2Ji YWZkYzYzOTJhY2ViNDljOGI0MjY4Iiwic3JjL3Rlc3RfbGFiZWxzX25hbWVzLnJzIjoiMjNhMmUx MWIwMmIzYjhkMTVmYjU2MTNhNjI1ZTNlZGIyYzYxZTcwZTNjNTgxYWJmZDYzODcxOWE0MDg4MjAw ZCIsInNyYy90ZXN0aW5nLnJzIjoiZjU5ZTY3MWU5NWE5OGE1NmY2YjU3M2U4YzZiZTRkNzFlNjcw YmY1MmY3ZTIwZWIxNjA1ZDk5MGFhZmExODk0ZSIsInNyYy91dGZfMTYucnMiOiJjMDcxYTE0N2Zh ZDM4ZDc1MGMyYzI0N2UxNDFiNzZiOTI5YTQ4MDA3Yjk5ZjI2YjI5MjJiOWNhZWNkYWYyZjI1Iiwi c3JjL3V0Zl84LnJzIjoiN2I3ZDg4N2IzNDdmMWFlZmEwMzI0NmIwMjhhMzZhNzI3NThhNGNlNzZj MjhmM2I0NWMxOTQ2Nzg1MWFhNzgzOSIsInNyYy92YXJpYW50LnJzIjoiMWZhYjUzNjM1ODhhMTU1 NGE3MTY5ZGU4NzMxZWE5Y2RlZDdhYzYzZWEzNWNhYWJkZDFjMjdhOGRkZTY4YzI3YiIsInNyYy94 X3VzZXJfZGVmaW5lZC5ycyI6ImQ3MzM2NjBjNzc3NWFmYTgwMDdjZmM4MGMwOTA1N2Q4NzVkNjYx M2FhZjk4YzdkYzk0MmU0N2ZiOTMzMDZmZWIifSwicGFja2FnZSI6bnVsbH0KK1wgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2Rpbmdf cnMvQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvZW5jb2RpbmdfcnMvQ2FyZ28udG9tbAor LS0tIGEvdGhpcmRfcGFydHkvcnVzdC9lbmNvZGluZ19ycy9DYXJnby50b21sCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L2VuY29kaW5nX3JzL0NhcmdvLnRvbWwKK0BAIC0xMCwyMiArMTAsMTYgQEAK KyAjIFNlZSBDYXJnby50b21sLm9yaWcgZm9yIHRoZSBvcmlnaW5hbCBjb250ZW50cy4KKyAKKyBb cGFja2FnZV0KKyBlZGl0aW9uID0gIjIwMTgiCisgcnVzdC12ZXJzaW9uID0gIjEuMzYiCisgbmFt ZSA9ICJlbmNvZGluZ19ycyIKKyB2ZXJzaW9uID0gIjAuOC4zNSIKKyBhdXRob3JzID0gWyJIZW5y aSBTaXZvbmVuIDxoc2l2b25lbkBoc2l2b25lbi5maT4iXQorLWJ1aWxkID0gZmFsc2UKKy1hdXRv bGliID0gZmFsc2UKKy1hdXRvYmlucyA9IGZhbHNlCistYXV0b2V4YW1wbGVzID0gZmFsc2UKKy1h dXRvdGVzdHMgPSBmYWxzZQorLWF1dG9iZW5jaGVzID0gZmFsc2UKKyBkZXNjcmlwdGlvbiA9ICJB IEdlY2tvLW9yaWVudGVkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBFbmNvZGluZyBTdGFuZGFyZCIK KyBob21lcGFnZSA9ICJodHRwczovL2RvY3MucnMvZW5jb2RpbmdfcnMvIgorIGRvY3VtZW50YXRp b24gPSAiaHR0cHM6Ly9kb2NzLnJzL2VuY29kaW5nX3JzLyIKKyByZWFkbWUgPSAiUkVBRE1FLm1k IgorIGtleXdvcmRzID0gWworICAgICAiZW5jb2RpbmciLAorICAgICAid2ViIiwKKyAgICAgInVu aWNvZGUiLAorQEAgLTM1LDE2ICsyOSwzOSBAQCBjYXRlZ29yaWVzID0gWworICAgICAidGV4dC1w cm9jZXNzaW5nIiwKKyAgICAgImVuY29kaW5nIiwKKyAgICAgIndlYi1wcm9ncmFtbWluZyIsCisg ICAgICJpbnRlcm5hdGlvbmFsaXphdGlvbiIsCisgXQorIGxpY2Vuc2UgPSAiKEFwYWNoZS0yLjAg T1IgTUlUKSBBTkQgQlNELTMtQ2xhdXNlIgorIHJlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIu Y29tL2hzaXZvbmVuL2VuY29kaW5nX3JzIgorIAorK1twcm9maWxlLnJlbGVhc2VdCisrbHRvID0g dHJ1ZQorKworK1tkZXBlbmRlbmNpZXNdCisrY2ZnLWlmID0gIjEuMCIKKysKKytbZGVwZW5kZW5j aWVzLmFueV9hbGxfd29ya2Fyb3VuZF0KKyt2ZXJzaW9uID0gIjAuMS4wIgorK29wdGlvbmFsID0g dHJ1ZQorKworK1tkZXBlbmRlbmNpZXMucnVzdHZlcnNpb25dCisrdmVyc2lvbiA9ICIxLjAuMTki Cisrb3B0aW9uYWwgPSB0cnVlCisrCisrW2RlcGVuZGVuY2llcy5zZXJkZV0KKyt2ZXJzaW9uID0g IjEuMCIKKytvcHRpb25hbCA9IHRydWUKKysKKytbZGV2LWRlcGVuZGVuY2llc10KKytiaW5jb2Rl ID0gIjEuMCIKKytzZXJkZV9kZXJpdmUgPSAiMS4wIgorK3NlcmRlX2pzb24gPSAiMS4wIgorKwor IFtmZWF0dXJlc10KKyBhbGxvYyA9IFtdCisgZGVmYXVsdCA9IFsiYWxsb2MiXQorIGZhc3QtYmln NS1oYW56aS1lbmNvZGUgPSBbXQorIGZhc3QtZ2ItaGFuemktZW5jb2RlID0gW10KKyBmYXN0LWhh bmd1bC1lbmNvZGUgPSBbXQorIGZhc3QtaGFuamEtZW5jb2RlID0gW10KKyBmYXN0LWthbmppLWVu Y29kZSA9IFtdCitAQCAtNTcsMzUgKzc0LDggQEAgZmFzdC1sZWdhY3ktZW5jb2RlID0gWworIF0K KyBsZXNzLXNsb3ctYmlnNS1oYW56aS1lbmNvZGUgPSBbXQorIGxlc3Mtc2xvdy1nYi1oYW56aS1l bmNvZGUgPSBbXQorIGxlc3Mtc2xvdy1rYW5qaS1lbmNvZGUgPSBbXQorIHNpbWQtYWNjZWwgPSBb CisgICAgICJhbnlfYWxsX3dvcmthcm91bmQiLAorICAgICAicnVzdHZlcnNpb24iLAorIF0KKy0K Ky1bbGliXQorLW5hbWUgPSAiZW5jb2RpbmdfcnMiCistcGF0aCA9ICJzcmMvbGliLnJzIgorLQor LVtkZXBlbmRlbmNpZXNdCistY2ZnLWlmID0gIjEuMCIKKy0KKy1bZGVwZW5kZW5jaWVzLmFueV9h bGxfd29ya2Fyb3VuZF0KKy12ZXJzaW9uID0gIjAuMS4wIgorLW9wdGlvbmFsID0gdHJ1ZQorLQor LVtkZXBlbmRlbmNpZXMucnVzdHZlcnNpb25dCistdmVyc2lvbiA9ICIxLjAuMTkiCistb3B0aW9u YWwgPSB0cnVlCistCistW2RlcGVuZGVuY2llcy5zZXJkZV0KKy12ZXJzaW9uID0gIjEuMCIKKy1v cHRpb25hbCA9IHRydWUKKy0KKy1bZGV2LWRlcGVuZGVuY2llc10KKy1iaW5jb2RlID0gIjEuMCIK Ky1zZXJkZV9kZXJpdmUgPSAiMS4wIgorLXNlcmRlX2pzb24gPSAiMS4wIgorLQorLVtwcm9maWxl LnJlbGVhc2VdCistbHRvID0gdHJ1ZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vLmNhcmdvLWNoZWNrc3VtLmpzb24gYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJz aW9uLy5jYXJnby1jaGVja3N1bS5qc29uCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYv bnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi8uY2FyZ28tY2hlY2tzdW0u anNvbgorQEAgLTAsMCArMSwxIEBACisreyJmaWxlcyI6eyJDYXJnby50b21sIjoiZmMyMTFjY2Q2 NGQzYWQ1OWEwNzE1YzFhNmY4Y2JmYmJkODMwNDVmNjQ0MTk0Mzk0NTk1ZDE2NjQ2ZWVlOTk0NyIs IkxJQ0VOU0UtQVBBQ0hFIjoiNjJjN2ExZTM1ZjU2NDA2ODk2ZDdhYTdjYTUyZDBjYzBkMjcyYWMw MjJiNWQyNzk2ZTdkNjkwNWRiOGEzNjM2YSIsIkxJQ0VOU0UtTUlUIjoiMjNmMThlMDNkYzQ5ZGY5 MTYyMmZlMmE3NjE3NjQ5NzQwNGU0NmNlZDhhNzE1ZDlkMmI2N2E3NDQ2NTcxY2NhMyIsIlJFQURN RS5tZCI6IjkxM2QwNGQxNTg4NDM1NjY5OTE4NDVjYzlkNzZlMjQ2MTBiZjMxZjVhOTllNTUxMTUw MjNjY2MwYjE2ZmYxZTciLCJidWlsZC9idWlsZC5ycyI6IjQ0MzhiMTA4ZDViMTk4Y2E0M2VmMGE3 ODUwOWRhODk4NjEwMjA2NzRhYmQwNTE2NmFkZGQxYzMwNThhZmJmYTYiLCJidWlsZC9ydXN0Yy5y cyI6ImZhZjY3MDMzZWM4MzFkOTY4NDA2ZjVhNjZjNDc1ZGYzMzdmNzIyMWU5ZDFhYjM0NzdmZWQz YTYyOWUxZWM1YmMiLCJzcmMvYXR0ci5ycyI6IjkzMDFjZDRhZmY1YTk2NDhjMDU3ZDVkOGRlOWVi NjY5MjFmMGMzYTcxNWM1MWFkYTQ0NTk1NzZiZDQ5YzhiMTkiLCJzcmMvYm91bmQucnMiOiIxM2Mz NTMwMmJkNWQ5NmViZTU0NTA5NDc3ZTczNmE4YjcyMGUxOGNiMjQ3NGU1ODA1NDgwYzQ1MTdhMjBl NWIwIiwic3JjL2NvbnN0Zm4ucnMiOiI2MTNiOGY1M2IyMWNjMDZiNGY2MTlmY2U5MDAwOTkzZDNl Nzg3M2I2NTA3MDFjYTAxY2VmMWU1M2JlZDViNDBhIiwic3JjL2RhdGUucnMiOiJmNzljNTVkZGNk MThlMTI0NjEwY2Q1Yzk4NjdiMWViYWFlMWZlZWI2ZGZjMzdlMmI3Zjk0ZTMxMzdhYTg4M2I2Iiwi c3JjL2Vycm9yLnJzIjoiY2IzNzEwMmYwM2ViYmFjYTMxM2Q4MGY5NzE0ZmUwOGRmZWY5MmZlOTU2 Nzg5ZWU4N2Q5M2ViNjEyMTcwNWY0ZiIsInNyYy9leHBhbmQucnMiOiI5YzkzNTI1YThjNGEwZTYy MDM2OWVkMjU2YTFlZTQwYTBiNDhmOTg0ZTBmYWQ4ZGI4YzBlMjk5OGJjOGVjYjIzIiwic3JjL2V4 cHIucnMiOiI4ZThjYTc2ZjRmNTgzODQzNmQ5ZDcyNzNmNDk5YzY5OGJiNDFmNmMxNWJjMDdkMzJl YzVjMWNiOGJkM2RkNzMxIiwic3JjL2l0ZXIucnMiOiI4ZDRiODE3YjlhYmM0ZTgxNzEwNWI2NzNl MTVmMjllZjliYjgyODRhMDEwY2UwMWFjMmQ4MzM4N2ZlMTM2OTQ3Iiwic3JjL2xpYi5ycyI6Ijc3 YzczMjQ5MzU1MGI3ZTdhNDZhZTJkMjVlODljMzYzYTg1MWJhMjVhOWU5YTg5ZjFhYWQ2N2JhZDRh ZmJiMDQiLCJzcmMvcmVsZWFzZS5ycyI6ImUwNzU1ZWQxODg5YjRjNmYwZmFhYTVhZGVlNWY2MGYy N2Y5OTI2YmVjZmY4NzVkYmI0MWI2YTY1YWU3NTY1OTEiLCJzcmMvdGltZS5ycyI6IjZmY2YzYTFl ZDIzOGE5N2JkN2EzOWIxODdjODhiZGNlZjAyNDY4Nzg0MjRlMDZhYTdlYjc3OWY4NDE1MjliMzQi LCJzcmMvdG9rZW4ucnMiOiI4MjRjZTc2NWY2OTJkYjczYWZhMDJkM2ViYjAyODFjNzUwNzQ4MDM1 ZWZjOThmYTU0N2JlMjlkMzA3MjY2NWNlIiwic3JjL3ZlcnNpb24ucnMiOiJhZmRiMDQ4YmJhOTVi YmI4ODU5NDVlYmE1NTI3YjZiZjBlY2EwMTA1NjQyYmZjMzA0YzJmODJhOGI3ZDU1NmRmIiwidGVz dHMvY29tcGlsZXRlc3QucnMiOiI0ZTM4MWFhOGNhM2VhYmI3YWMxNGQxZTBjMzcwMGIzMjIzZTQ3 NjQwNTQ3YTY5ODhjZmExM2FkNjgyNTVmNjBmIiwidGVzdHMvdGVzdF9jb25zdC5ycyI6ImNiMWUw MTQ3OWJkNTc5YjFiNzczMTJhOTA2M2FiNDU2ZmU0NGFiYWQyMjQzZTgxODczYzJiZjdlZjVmMjA1 ZWIiLCJ0ZXN0cy90ZXN0X2V2YWwucnMiOiI2ZjBlZTNmNDljOWEwZDBjMzc0YTRkMGU5YTlkY2U3 NTNjZDlmYzJjYTc3MjVlMDAwYTQzNWRiZDVmNGE5Y2UzIiwidGVzdHMvdGVzdF9wYXJzZS5ycyI6 ImY0NTBlMGE3ZjIzOTE1NjE0ODRhYmIxYjg1MTEyNGI1NzQ3NzU1Yjc2Zjk0NWUxMjEzNzBhZGM3 MTBmMjA5OWQiLCJ0ZXN0cy91aS9iYWQtYm91bmQucnMiOiIyNWJkZTI3OGZjYWFiZjYyODY4NDE3 MTQ4YTVlNWYyMDA2YmY1ODlkN2ViZDdiZjYwMDRmYjhkNzhlNDc1OTRmIiwidGVzdHMvdWkvYmFk LWJvdW5kLnN0ZGVyciI6IjIzYjRjYTBhYTFhN2RmNzViNWZiMzRlNTUzYTMxZmFhNmEzY2NjMDI5 ZWNkN2Q2OGIwNTY4OTdjMmM5Y2ZmOWYiLCJ0ZXN0cy91aS9iYWQtZGF0ZS5ycyI6IjZlMjM3MTRk YWU4YjYzNDZmZWZlNTBkYWNkNGFiYmEzMjY1MjQ4YmJhZGZkZDYwYzczOTEzOGFhOGEwMDM3YmEi LCJ0ZXN0cy91aS9iYWQtZGF0ZS5zdGRlcnIiOiJmNGFlYzcyY2E5MWJhNzQzY2FkY2RhZjVhODc0 YzcwMTk0OWFkZDVlZmNlNDkwYWFmMmJmMTI0OGVmNTc4NzY4IiwidGVzdHMvdWkvYmFkLW5vdC5y cyI6ImYwMDNkZjhiZDI0NWU5ZGQ4ZWRjM2E2ZDk0MDc4ZWU1MTYyZmFjN2E5OGRiODgxMjcxZjBm NWI2ZGI5OGQ0NWQiLCJ0ZXN0cy91aS9iYWQtbm90LnN0ZGVyciI6IjFhZWJiMzEyMWQwNjdkNDMy YTMyZGQ5NWZmMzgwY2VhYzE1YTA1MzFjMzRmOTBjZWU5NTA1ODI1NTg4NDFjNTYiLCJ0ZXN0cy91 aS9iYWQtdmVyc2lvbi5ycyI6ImY0ZWEyY2QwMzhlNmM2M2RlYjljMmUzY2VmZmNlOTNkYmYxNzlk OWNlMThjMTZkODhmM2I2Y2Q3MTM4YThjOGUiLCJ0ZXN0cy91aS9iYWQtdmVyc2lvbi5zdGRlcnIi OiJlOTQyMTU4NmQ1OWNiOTEzNTEyM2JkOTc3MTA2NTUwMTRmOTVjYzVmNTViMGY5NjExZTFkMmU4 Y2U5ZTI5YTVkIiwidGVzdHMvdWkvY29uc3Qtbm90LWZuLnJzIjoiMTBiYmUzOGYwZDg5MzkxZmZm MDY5ODc1NmU0Y2ZkNGU3MmE0MTA5MDM2MDM5M2EwYzk1MWI2N2RmMTRkMWMzNSIsInRlc3RzL3Vp L2NvbnN0LW5vdC1mbi5zdGRlcnIiOiIxMTgwNjYyZmQzYjhjNDQyNmQ0NjkyMzkxOGEyZTU4ZGQ5 YjYyNTlmMWEzNjQ0NjlhZTEzZDVmYzNkNjljZTZjIn0sInBhY2thZ2UiOiJjZjU0NzE1YTU3M2I5 OWFjODBkZjBiYzIwNmRhMDIyYmNkNDQyYzk3NDk1MmM3Yjk3MjAwNjkzNzA4NTJlMjFmIn0KK1wg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cnVzdHZlcnNpb24vQ2FyZ28udG9tbCBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vQ2Fy Z28udG9tbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJk X3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vQ2FyZ28udG9tbAorQEAgLTAsMCArMSw2OSBAQAorKyMg VEhJUyBGSUxFIElTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVEIEJZIENBUkdPCisrIworKyMgV2hl biB1cGxvYWRpbmcgY3JhdGVzIHRvIHRoZSByZWdpc3RyeSBDYXJnbyB3aWxsIGF1dG9tYXRpY2Fs bHkKKysjICJub3JtYWxpemUiIENhcmdvLnRvbWwgZmlsZXMgZm9yIG1heGltYWwgY29tcGF0aWJp bGl0eQorKyMgd2l0aCBhbGwgdmVyc2lvbnMgb2YgQ2FyZ28gYW5kIGFsc28gcmV3cml0ZSBgcGF0 aGAgZGVwZW5kZW5jaWVzCisrIyB0byByZWdpc3RyeSAoZS5nLiwgY3JhdGVzLmlvKSBkZXBlbmRl bmNpZXMuCisrIworKyMgSWYgeW91IGFyZSByZWFkaW5nIHRoaXMgZmlsZSBiZSBhd2FyZSB0aGF0 IHRoZSBvcmlnaW5hbCBDYXJnby50b21sCisrIyB3aWxsIGxpa2VseSBsb29rIHZlcnkgZGlmZmVy ZW50IChhbmQgbXVjaCBtb3JlIHJlYXNvbmFibGUpLgorKyMgU2VlIENhcmdvLnRvbWwub3JpZyBm b3IgdGhlIG9yaWdpbmFsIGNvbnRlbnRzLgorKworK1twYWNrYWdlXQorK2VkaXRpb24gPSAiMjAx OCIKKytydXN0LXZlcnNpb24gPSAiMS4zMSIKKytuYW1lID0gInJ1c3R2ZXJzaW9uIgorK3ZlcnNp b24gPSAiMS4wLjIzIgorK2F1dGhvcnMgPSBbIkRhdmlkIFRvbG5heSA8ZHRvbG5heUBnbWFpbC5j b20+Il0KKytidWlsZCA9ICJidWlsZC9idWlsZC5ycyIKKythdXRvbGliID0gZmFsc2UKKythdXRv YmlucyA9IGZhbHNlCisrYXV0b2V4YW1wbGVzID0gZmFsc2UKKythdXRvdGVzdHMgPSBmYWxzZQor K2F1dG9iZW5jaGVzID0gZmFsc2UKKytkZXNjcmlwdGlvbiA9ICJDb25kaXRpb25hbCBjb21waWxh dGlvbiBhY2NvcmRpbmcgdG8gcnVzdGMgY29tcGlsZXIgdmVyc2lvbiIKKytkb2N1bWVudGF0aW9u ID0gImh0dHBzOi8vZG9jcy5ycy9ydXN0dmVyc2lvbiIKKytyZWFkbWUgPSAiUkVBRE1FLm1kIgor K2NhdGVnb3JpZXMgPSBbCisrICAgICJkZXZlbG9wbWVudC10b29sczo6YnVpbGQtdXRpbHMiLAor KyAgICAibm8tc3RkIiwKKysgICAgIm5vLXN0ZDo6bm8tYWxsb2MiLAorK10KKytsaWNlbnNlID0g Ik1JVCBPUiBBcGFjaGUtMi4wIgorK3JlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXRodWIuY29tL2R0 b2xuYXkvcnVzdHZlcnNpb24iCisrCisrW3BhY2thZ2UubWV0YWRhdGEuZG9jcy5yc10KKyt0YXJn ZXRzID0gWyJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiXQorK3J1c3Rkb2MtYXJncyA9IFsKKysg ICAgIi0tZ2VuZXJhdGUtbGluay10by1kZWZpbml0aW9uIiwKKysgICAgIi0tZ2VuZXJhdGUtbWFj cm8tZXhwYW5zaW9uIiwKKysgICAgIi0tZXh0ZXJuLWh0bWwtcm9vdC11cmw9Y29yZT1odHRwczov L2RvYy5ydXN0LWxhbmcub3JnIiwKKysgICAgIi0tZXh0ZXJuLWh0bWwtcm9vdC11cmw9YWxsb2M9 aHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZyIsCisrICAgICItLWV4dGVybi1odG1sLXJvb3QtdXJs PXN0ZD1odHRwczovL2RvYy5ydXN0LWxhbmcub3JnIiwKKysgICAgIi0tZXh0ZXJuLWh0bWwtcm9v dC11cmw9cHJvY19tYWNybz1odHRwczovL2RvYy5ydXN0LWxhbmcub3JnIiwKKytdCisrCisrW2xp Yl0KKytuYW1lID0gInJ1c3R2ZXJzaW9uIgorK3BhdGggPSAic3JjL2xpYi5ycyIKKytwcm9jLW1h Y3JvID0gdHJ1ZQorKworK1tbdGVzdF1dCisrbmFtZSA9ICJjb21waWxldGVzdCIKKytwYXRoID0g InRlc3RzL2NvbXBpbGV0ZXN0LnJzIgorKworK1tbdGVzdF1dCisrbmFtZSA9ICJ0ZXN0X2NvbnN0 IgorK3BhdGggPSAidGVzdHMvdGVzdF9jb25zdC5ycyIKKysKKytbW3Rlc3RdXQorK25hbWUgPSAi dGVzdF9ldmFsIgorK3BhdGggPSAidGVzdHMvdGVzdF9ldmFsLnJzIgorKworK1tbdGVzdF1dCisr bmFtZSA9ICJ0ZXN0X3BhcnNlIgorK3BhdGggPSAidGVzdHMvdGVzdF9wYXJzZS5ycyIKKysKKytb ZGV2LWRlcGVuZGVuY2llcy50cnlidWlsZF0KKyt2ZXJzaW9uID0gIjEuMC40OSIKKytmZWF0dXJl cyA9IFsiZGlmZiJdCitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9M SUNFTlNFLUFQQUNIRSBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vTElDRU5TRS1BUEFD SEUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VOU0UtQVBBQ0hFCitAQCAtMCwwICsxLDE3NiBAQAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisrICAgICAgICAgICAg ICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorKyAgICAgICAgICAgICAgICAg ICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKysKKytURVJNUyBBTkQgQ09ORElU SU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKysKKysxLiBEZWZp bml0aW9ucy4KKysKKysgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRp dGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorKyAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVm aW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorKworKyAgICJM aWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3Jp emVkIGJ5CisrICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNl bnNlLgorKworKyAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBh Y3RpbmcgZW50aXR5IGFuZCBhbGwKKysgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFy ZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisrICAgY29udHJvbCB3aXRoIHRo YXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKysgICAiY29u dHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0 aGUKKysgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBi eSBjb250cmFjdCBvcgorKyAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkg cGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorKyAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3Ig KGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisrCisrICAgIllvdSIg KG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorKyAg IGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisrCisrICAg IlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1v ZGlmaWNhdGlvbnMsCisrICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBz b3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorKyAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24g ZmlsZXMuCisrCisrICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGlu ZyBmcm9tIG1lY2hhbmljYWwKKysgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBh IFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisrICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQg b2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorKyAgIGFuZCBjb252ZXJzaW9u cyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKysKKysgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29y ayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorKyAgIE9iamVjdCBmb3JtLCBt YWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKysgICBj b3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdv cmsKKysgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgor KworKyAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGlu IFNvdXJjZSBvciBPYmplY3QKKysgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVk IGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisrICAgZWRpdG9yaWFsIHJldmlzaW9u cywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworKyAg IHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBG b3IgdGhlIHB1cnBvc2VzCisrICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNo YWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisrICAgc2VwYXJhYmxlIGZyb20sIG9y IG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorKyAg IHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisrCisrICAgIkNvbnRyaWJ1 dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKysgICB0 aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3Ig YWRkaXRpb25zCisrICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwg dGhhdCBpcyBpbnRlbnRpb25hbGx5CisrICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNs dXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorKyAgIG9yIGJ5IGFuIGlu ZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBv ZgorKyAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZp bml0aW9uLCAic3VibWl0dGVkIgorKyAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZl cmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKysgICB0byB0aGUgTGljZW5zb3Ig b3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworKyAg IGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBj b250cm9sIHN5c3RlbXMsCisrICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUg bWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKysgICBMaWNlbnNvciBmb3IgdGhlIHB1 cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKysgICBleGNs dWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVy d2lzZQorKyAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFz ICJOb3QgYSBDb250cmlidXRpb24uIgorKworKyAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBM aWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisrICAgb24gYmVoYWxm IG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5k CisrICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisrCisrMi4g R3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25k aXRpb25zIG9mCisrICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFu dHMgdG8gWW91IGEgcGVycGV0dWFsLAorKyAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8t Y2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisrICAgY29weXJpZ2h0IGxpY2Vuc2Ug dG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisrICAgcHVibGljbHkg ZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhl CisrICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3Qg Zm9ybS4KKysKKyszLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVy bXMgYW5kIGNvbmRpdGlvbnMgb2YKKysgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3Ig aGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisrICAgd29ybGR3aWRlLCBub24tZXhj bHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKysgICAoZXhjZXB0 IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUg bWFkZSwKKysgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lz ZSB0cmFuc2ZlciB0aGUgV29yaywKKysgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5 IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorKyAgIGJ5IHN1Y2ggQ29udHJpYnV0 b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisrICAgQ29udHJpYnV0 aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQor KyAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1p dHRlZC4gSWYgWW91CisrICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55 IGVudGl0eSAoaW5jbHVkaW5nIGEKKysgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4g YSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisrICAgb3IgYSBDb250cmlidXRpb24g aW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKysgICBvciBj b250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2Vz CisrICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hh bGwgdGVybWluYXRlCisrICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVk LgorKworKzQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0 ZSBjb3BpZXMgb2YgdGhlCisrICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4g YW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisrICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNv dXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKysgICBtZWV0IHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uczoKKysKKysgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVj aXBpZW50cyBvZiB0aGUgV29yayBvcgorKyAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBv ZiB0aGlzIExpY2Vuc2U7IGFuZAorKworKyAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZp ZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKysgICAgICAgc3RhdGluZyB0aGF0 IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisrCisrICAgKGMpIFlvdSBtdXN0IHJldGFpbiwg aW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisrICAgICAgIHRoYXQg WW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKysg ICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29y aywKKysgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0 byBhbnkgcGFydCBvZgorKyAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisrCisrICAg KGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2Yg aXRzCisrICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0 IFlvdSBkaXN0cmlidXRlIG11c3QKKysgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2Yg dGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisrICAgICAgIHdpdGhpbiBzdWNoIE5P VElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorKyAgICAgICBw ZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBv bmUKKysgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0 IGZpbGUgZGlzdHJpYnV0ZWQKKysgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jr czsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorKyAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBw cm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKysgICAgICAgd2l0 aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAor KyAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFy LiBUaGUgY29udGVudHMKKysgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3Jt YXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorKyAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNl bnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorKyAgICAgICBub3RpY2VzIHdp dGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorKyAg ICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywg cHJvdmlkZWQKKysgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNl cyBjYW5ub3QgYmUgY29uc3RydWVkCisrICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4K KysKKysgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIg bW9kaWZpY2F0aW9ucyBhbmQKKysgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVu dCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisrICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9u LCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorKyAgIGZvciBhbnkg c3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorKyAg IHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29t cGxpZXMgd2l0aAorKyAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisr CisrNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkg c3RhdGUgb3RoZXJ3aXNlLAorKyAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJt aXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworKyAgIGJ5IFlvdSB0byB0aGUgTGljZW5z b3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisrICAgdGhpcyBM aWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisrICAg Tm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRl IG9yIG1vZGlmeQorKyAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1l bnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisrICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3Vj aCBDb250cmlidXRpb25zLgorKworKzYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5v dCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKysgICBuYW1lcywgdHJhZGVtYXJr cywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisrICAg ZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRl c2NyaWJpbmcgdGhlCisrICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUg Y29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisrCisrNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50 eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisrICAgYWdyZWVkIHRvIGlu IHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorKyAgIENvbnRy aWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAor KyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIg ZXhwcmVzcyBvcgorKyAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBh bnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisrICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1F TlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorKyAgIFBBUlRJQ1VMQVIgUFVS UE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorKyAg IGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQg YXNzdW1lIGFueQorKyAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBl cm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKysKKys4LiBMaW1pdGF0aW9uIG9mIExpYWJp bGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKysgICB3aGV0aGVy IGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwK KysgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0 ZSBhbmQgZ3Jvc3NseQorKyAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu Zywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisrICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdl cywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorKyAgIGluY2lkZW50 YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMg YQorKyAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmls aXR5IHRvIHVzZSB0aGUKKysgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRh bWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisrICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIg ZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKysgICBvdGhlciBjb21tZXJj aWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisrICAgaGFz IGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorKworKzku IEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0 cmlidXRpbmcKKysgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBt YXkgY2hvb3NlIHRvIG9mZmVyLAorKyAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNl IG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisrICAgb3Igb3RoZXIgbGlhYmlsaXR5 IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKysgICBMaWNl bnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qg b25seQorKyAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmls aXR5LCBub3Qgb24gYmVoYWxmCisrICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25s eSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorKyAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBD b250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorKyAgIGluY3VycmVkIGJ5LCBv ciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKysg ICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJp bGl0eS4KKysKKytFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKK2RpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL0xJQ0VOU0UtTUlUIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi9MSUNFTlNFLU1JVAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251 bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vTElDRU5TRS1NSVQKK0BAIC0w LDAgKzEsMjMgQEAKKytQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55CisrcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQg YXNzb2NpYXRlZAorK2RvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVh bCBpbiB0aGUKKytTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dAorK2xpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsCisr cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mCisr dGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUK KytpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZworK2NvbmRp dGlvbnM6CisrCisrVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2UKKytzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zCisrb2YgdGhlIFNvZnR3YXJlLgorKworK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GCisrQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRAorK1RPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQQorK1BBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9O SU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVAorK1NIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisrQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgorK09GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IKKytJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKytERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCitk aWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9SRUFETUUubWQgYi90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL1JFQURNRS5tZAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vUkVBRE1F Lm1kCitAQCAtMCwwICsxLDE2NyBAQAorK0NvbXBpbGVyIHZlcnNpb24gY2ZnCisrPT09PT09PT09 PT09PT09PT09PT0KKysKKytbPGltZyBhbHQ9ImdpdGh1YiIgc3JjPSJodHRwczovL2ltZy5zaGll bGRzLmlvL2JhZGdlL2dpdGh1Yi1kdG9sbmF5L3J1c3R2ZXJzaW9uLThkYTBjYj9zdHlsZT1mb3It dGhlLWJhZGdlJmxhYmVsQ29sb3I9NTU1NTU1JmxvZ289Z2l0aHViIiBoZWlnaHQ9IjIwIj5dKGh0 dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3J1c3R2ZXJzaW9uKQorK1s8aW1nIGFsdD0iY3JhdGVz LmlvIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vY3JhdGVzL3YvcnVzdHZlcnNpb24uc3Zn P3N0eWxlPWZvci10aGUtYmFkZ2UmY29sb3I9ZmM4ZDYyJmxvZ289cnVzdCIgaGVpZ2h0PSIyMCI+ XShodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcnVzdHZlcnNpb24pCisrWzxpbWcgYWx0PSJkb2Nz LnJzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZG9jcy5ycy1ydXN0dmVyc2lv bi02NmMyYTU/c3R5bGU9Zm9yLXRoZS1iYWRnZSZsYWJlbENvbG9yPTU1NTU1NSZsb2dvPWRvY3Mu cnMiIGhlaWdodD0iMjAiPl0oaHR0cHM6Ly9kb2NzLnJzL3J1c3R2ZXJzaW9uKQorK1s8aW1nIGFs dD0iYnVpbGQgc3RhdHVzIiBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2FjdGlv bnMvd29ya2Zsb3cvc3RhdHVzL2R0b2xuYXkvcnVzdHZlcnNpb24vY2kueW1sP2JyYW5jaD1tYXN0 ZXImc3R5bGU9Zm9yLXRoZS1iYWRnZSIgaGVpZ2h0PSIyMCI+XShodHRwczovL2dpdGh1Yi5jb20v ZHRvbG5heS9ydXN0dmVyc2lvbi9hY3Rpb25zP3F1ZXJ5PWJyYW5jaCUzQW1hc3RlcikKKysKKytU aGlzIGNyYXRlIHByb3ZpZGVzIG1hY3JvcyBmb3IgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYWNj b3JkaW5nIHRvIHJ1c3RjCisrY29tcGlsZXIgdmVyc2lvbiwgYW5hbG9nb3VzIHRvIFtgI1tjZmco Li4uKV1gXVtjZmddIGFuZAorK1tgI1tjZmdfYXR0ciguLi4pXWBdW2NmZ19hdHRyXS4KKysKKytb Y2ZnXTogaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9yZy9yZWZlcmVuY2UvY29uZGl0aW9uYWwtY29t cGlsYXRpb24uaHRtbCN0aGUtY2ZnLWF0dHJpYnV0ZQorK1tjZmdfYXR0cl06IGh0dHBzOi8vZG9j LnJ1c3QtbGFuZy5vcmcvcmVmZXJlbmNlL2NvbmRpdGlvbmFsLWNvbXBpbGF0aW9uLmh0bWwjdGhl LWNmZ19hdHRyLWF0dHJpYnV0ZQorKworK2BgYHRvbWwKKytbZGVwZW5kZW5jaWVzXQorK3J1c3R2 ZXJzaW9uID0gIjEuMCIKKytgYGAKKysKKys8YnI+CisrCisrIyMgU2VsZWN0b3JzCisrCisrLSA8 Yj5gI1tydXN0dmVyc2lvbjo6c3RhYmxlXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIG9uIGFu eSBzdGFibGUgY29tcGlsZXIuCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6c3RhYmxlKDEuMzQp XWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIG9uIGV4YWN0bHkgdGhlIHNwZWNpZmllZCBzdGFi bGUgY29tcGlsZXIuCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6YmV0YV1gPC9iPgorKyAg4oCU PGJyPgorKyAgVHJ1ZSBvbiBhbnkgYmV0YSBjb21waWxlci4KKysKKystIDxiPmAjW3J1c3R2ZXJz aW9uOjpuaWdodGx5XWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIG9uIGFueSBuaWdodGx5IGNv bXBpbGVyIG9yIGRldiBidWlsZC4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpuaWdodGx5KDIw MjUtMDEtMDEpXWA8L2I+CisrICDigJQ8YnI+CisrICBUcnVlIG9uIGV4YWN0bHkgb25lIG5pZ2h0 bHkuCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6c2luY2UoMS4zNCldYDwvYj4KKysgIOKAlDxi cj4KKysgIFRydWUgb24gdGhhdCBzdGFibGUgcmVsZWFzZSBhbmQgYW55IGxhdGVyIGNvbXBpbGVy LCBpbmNsdWRpbmcgYmV0YSBhbmQKKysgIG5pZ2h0bHkuCisrCisrLSA8Yj5gI1tydXN0dmVyc2lv bjo6c2luY2UoMjAyNS0wMS0wMSldYDwvYj4KKysgIOKAlDxicj4KKysgIFRydWUgb24gdGhhdCBu aWdodGx5IGFuZCBhbGwgbmV3ZXIgb25lcy4KKysKKystIDxiPmAjW3J1c3R2ZXJzaW9uOjpiZWZv cmUoYDwvYj48aT52ZXJzaW9uIG9yIGRhdGU8L2k+PGI+YCldYDwvYj4KKysgIOKAlDxicj4KKysg IE5lZ2F0aXZlIG9mICojW3J1c3R2ZXJzaW9uOjpzaW5jZSguLi4pXSouCisrCisrLSA8Yj5gI1ty dXN0dmVyc2lvbjo6bm90KGA8L2I+PGk+c2VsZWN0b3I8L2k+PGI+YCldYDwvYj4KKysgIOKAlDxi cj4KKysgIE5lZ2F0aXZlIG9mIGFueSBzZWxlY3RvcjsgZm9yIGV4YW1wbGUgKiNbcnVzdHZlcnNp b246Om5vdChuaWdodGx5KV0qLgorKworKy0gPGI+YCNbcnVzdHZlcnNpb246OmFueShgPC9iPjxp PnNlbGVjdG9ycy4uLjwvaT48Yj5gKV1gPC9iPgorKyAg4oCUPGJyPgorKyAgVHJ1ZSBpZiBhbnkg b2YgdGhlIGNvbW1hLXNlcGFyYXRlZCBzZWxlY3RvcnMgaXMgdHJ1ZTsgZm9yIGV4YW1wbGUKKysg ICojW3J1c3R2ZXJzaW9uOjphbnkoc3RhYmxlLCBiZXRhKV0qLgorKworKy0gPGI+YCNbcnVzdHZl cnNpb246OmFsbChgPC9iPjxpPnNlbGVjdG9ycy4uLjwvaT48Yj5gKV1gPC9iPgorKyAg4oCUPGJy PgorKyAgVHJ1ZSBpZiBhbGwgb2YgdGhlIGNvbW1hLXNlcGFyYXRlZCBzZWxlY3RvcnMgYXJlIHRy dWU7IGZvciBleGFtcGxlCisrICAqI1tydXN0dmVyc2lvbjo6YWxsKHNpbmNlKDEuMzEpLCBiZWZv cmUoMS4zNCkpXSouCisrCisrLSA8Yj5gI1tydXN0dmVyc2lvbjo6YXR0cihgPC9iPjxpPnNlbGVj dG9yPC9pPjxiPmAsIGA8L2I+PGk+YXR0cmlidXRlPC9pPjxiPmApXWA8L2I+CisrICDigJQ8YnI+ CisrICBGb3IgY29uZGl0aW9uYWwgaW5jbHVzaW9uIG9mIGF0dHJpYnV0ZXM7IGFuYWxvZ291cyB0 byBgY2ZnX2F0dHJgLgorKworKy0gPGI+YHJ1c3R2ZXJzaW9uOjpjZmchKGA8L2I+PGk+c2VsZWN0 b3I8L2k+PGI+YClgPC9iPgorKyAg4oCUPGJyPgorKyAgQW4gZXhwcmVzc2lvbiBmb3JtIG9mIGFu eSBvZiB0aGUgYWJvdmUgYXR0cmlidXRlczsgZm9yIGV4YW1wbGUKKysgICppZiBydXN0dmVyc2lv bjo6Y2ZnIShhbnkoc3RhYmxlLCBiZXRhKSkgeyAuLi4gfSouCisrCisrPGJyPgorKworKyMjIFVz ZSBjYXNlcworKworK1Byb3ZpZGluZyBhZGRpdGlvbmFsIHRyYWl0IGltcGxzIGFzIHR5cGVzIGFy ZSBzdGFiaWxpemVkIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5Cisrd2l0aG91dCBicmVha2luZyBj b21wYXRpYmlsaXR5IHdpdGggb2xkZXIgY29tcGlsZXJzOyBpbiB0aGlzIGNhc2UgUGluXDxQXD4K KytzdGFiaWxpemVkIGluIFtSdXN0IDEuMzNdW3Bpbl06CisrCisrW3Bpbl06IGh0dHBzOi8vYmxv Zy5ydXN0LWxhbmcub3JnLzIwMTkvMDIvMjgvUnVzdC0xLjMzLjAuaHRtbCNwaW5uaW5nCisrCisr YGBgcnVzdAorKyNbcnVzdHZlcnNpb246OnNpbmNlKDEuMzMpXQorK3VzZSBzdGQ6OnBpbjo6UGlu OworKworKyNbcnVzdHZlcnNpb246OnNpbmNlKDEuMzMpXQorK2ltcGw8UDogTXlUcmFpdD4gTXlU cmFpdCBmb3IgUGluPFA+IHsKKysgICAgLyogLi4uICovCisrfQorK2BgYAorKworK1NpbWlsYXIg YnV0IGZvciBsYW5ndWFnZSBmZWF0dXJlczsgdGhlIGFiaWxpdHkgdG8gY29udHJvbCBhbGlnbm1l bnQgZ3JlYXRlciB0aGFuCisrMSBvZiBwYWNrZWQgc3RydWN0cyB3YXMgc3RhYmlsaXplZCBpbiBb UnVzdCAxLjMzXVtwYWNrZWRdLgorKworK1twYWNrZWRdOiBodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nL3J1c3QvYmxvYi9tYXN0ZXIvUkVMRUFTRVMubWQjdmVyc2lvbi0xMzMwLTIwMTktMDIt MjgKKysKKytgYGBydXN0CisrI1tydXN0dmVyc2lvbjo6YXR0cihiZWZvcmUoMS4zMyksIHJlcHIo cGFja2VkKSldCisrI1tydXN0dmVyc2lvbjo6YXR0cihzaW5jZSgxLjMzKSwgcmVwcihwYWNrZWQo MikpKV0KKytzdHJ1Y3QgU2l4KGkxNiwgaTMyKTsKKysKKytmbiBtYWluKCkgeworKyAgICBwcmlu dGxuISgie30iLCBzdGQ6Om1lbTo6YWxpZ25fb2Y6OjxTaXg+KCkpOworK30KKytgYGAKKysKKytB dWdtZW50aW5nIGNvZGUgd2l0aCBgY29uc3RgIGFzIGNvbnN0IGltcGxzIGFyZSBzdGFiaWxpemVk IGluIHRoZSBzdGFuZGFyZAorK2xpYnJhcnkuIFRoaXMgdXNlIG9mIGBjb25zdGAgYXMgYW4gYXR0 cmlidXRlIGlzIHJlY29nbml6ZWQgYXMgYSBzcGVjaWFsIGNhc2UgYnkKKyt0aGUgcnVzdHZlcnNp b246OmF0dHIgbWFjcm8uCisrCisrYGBgcnVzdAorK3VzZSBzdGQ6OnRpbWU6OkR1cmF0aW9uOwor KworKyNbcnVzdHZlcnNpb246OmF0dHIoc2luY2UoMS4zMiksIGNvbnN0KV0KKytmbiBkdXJhdGlv bl9hc19kYXlzKGR1cjogRHVyYXRpb24pIC0+IHU2NCB7CisrICAgIGR1ci5hc19zZWNzKCkgLyA2 MCAvIDYwIC8gMjQKKyt9CisrYGBgCisrCisrRW1pdHRpbmcgQ2FyZ28gY2ZnIGRpcmVjdGl2ZXMg ZnJvbSBhIGJ1aWxkIHNjcmlwdC4gTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMKKytsaXN0aW5nIGBy dXN0dmVyc2lvbmAgdW5kZXIgYFtidWlsZC1kZXBlbmRlbmNpZXNdYCBpbiBDYXJnby50b21sLCBu b3QKKytgW2RlcGVuZGVuY2llc11gLgorKworK2BgYHJ1c3QKKysvLyBidWlsZC5ycworKworK2Zu IG1haW4oKSB7CisrICAgIGlmIHJ1c3R2ZXJzaW9uOjpjZmchKHNpbmNlKDEuMzYpKSB7CisrICAg ICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPW5vX3N0ZCIpOworKyAgICB9CisrfQorK2Bg YAorKworK2BgYHJ1c3QKKysvLyBzcmMvbGliLnJzCisrCisrIyFbY2ZnX2F0dHIobm9fc3RkLCBu b19zdGQpXQorKworKyNbY2ZnKG5vX3N0ZCldCisrZXh0ZXJuIGNyYXRlIGFsbG9jOworK2BgYAor KworKzxicj4KKysKKysjIyMjIExpY2Vuc2UKKysKKys8c3VwPgorK0xpY2Vuc2VkIHVuZGVyIGVp dGhlciBvZiA8YSBocmVmPSJMSUNFTlNFLUFQQUNIRSI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24K KysyLjA8L2E+IG9yIDxhIGhyZWY9IkxJQ0VOU0UtTUlUIj5NSVQgbGljZW5zZTwvYT4gYXQgeW91 ciBvcHRpb24uCisrPC9zdXA+CisrCisrPGJyPgorKworKzxzdWI+CisrVW5sZXNzIHlvdSBleHBs aWNpdGx5IHN0YXRlIG90aGVyd2lzZSwgYW55IGNvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1 Ym1pdHRlZAorK2ZvciBpbmNsdXNpb24gaW4gdGhpcyBjcmF0ZSBieSB5b3UsIGFzIGRlZmluZWQg aW4gdGhlIEFwYWNoZS0yLjAgbGljZW5zZSwgc2hhbGwKKytiZSBkdWFsIGxpY2Vuc2VkIGFzIGFi b3ZlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisrPC9zdWI+ CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9idWlsZC9idWlsZC5y cyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vYnVpbGQvYnVpbGQucnMKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL2J1aWxkL2J1aWxkLnJzCitAQCAtMCwwICsxLDExOSBAQAorKyMhW2FsbG93KAorKyAg ICBjbGlwcHk6OmVsaWRhYmxlX2xpZmV0aW1lX25hbWVzLAorKyAgICBjbGlwcHk6OmVudW1fZ2xv Yl91c2UsCisrICAgIGNsaXBweTo6bXVzdF91c2VfY2FuZGlkYXRlLAorKyAgICBjbGlwcHk6OnNp bmdsZV9tYXRjaF9lbHNlCisrKV0KKysKKyttb2QgcnVzdGM7CisrCisrdXNlIHN0ZDo6ZW52Owor K3VzZSBzdGQ6OmZmaTo6T3NTdHJpbmc7CisrdXNlIHN0ZDo6Zm10Ojp7c2VsZiwgRGVidWcsIERp c3BsYXl9OworK3VzZSBzdGQ6OmZzOworK3VzZSBzdGQ6Oml0ZXI7CisrdXNlIHN0ZDo6cGF0aDo6 UGF0aDsKKyt1c2Ugc3RkOjpwcm9jZXNzOjp7c2VsZiwgQ29tbWFuZH07CisrCisrZm4gbWFpbigp IHsKKysgICAgcHJpbnRsbiEoImNhcmdvOnJlcnVuLWlmLWNoYW5nZWQ9YnVpbGQvYnVpbGQucnMi KTsKKysKKysgICAgbGV0IHJ1c3RjID0gZW52Ojp2YXJfb3MoIlJVU1RDIikudW53cmFwX29yX2Vs c2UofHwgT3NTdHJpbmc6OmZyb20oInJ1c3RjIikpOworKyAgICBsZXQgcnVzdGNfd3JhcHBlciA9 IGVudjo6dmFyX29zKCJSVVNUQ19XUkFQUEVSIikuZmlsdGVyKHx3cmFwcGVyfCAhd3JhcHBlci5p c19lbXB0eSgpKTsKKysgICAgbGV0IHdyYXBwZWRfcnVzdGMgPSBydXN0Y193cmFwcGVyLml0ZXIo KS5jaGFpbihpdGVyOjpvbmNlKCZydXN0YykpOworKworKyAgICBsZXQgbXV0IGlzX2NsaXBweV9k cml2ZXIgPSBmYWxzZTsKKysgICAgbGV0IG11dCBpc19taXJhaSA9IGZhbHNlOworKyAgICBsZXQg dmVyc2lvbiA9IGxvb3AgeworKyAgICAgICAgbGV0IG11dCBjb21tYW5kOworKyAgICAgICAgaWYg aXNfbWlyYWkgeworKyAgICAgICAgICAgIGNvbW1hbmQgPSBDb21tYW5kOjpuZXcoJnJ1c3RjKTsK KysgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgbGV0IG11dCB3cmFwcGVkX3J1c3RjID0g d3JhcHBlZF9ydXN0Yy5jbG9uZSgpOworKyAgICAgICAgICAgIGNvbW1hbmQgPSBDb21tYW5kOjpu ZXcod3JhcHBlZF9ydXN0Yy5uZXh0KCkudW53cmFwKCkpOworKyAgICAgICAgICAgIGNvbW1hbmQu YXJncyh3cmFwcGVkX3J1c3RjKTsKKysgICAgICAgIH0KKysgICAgICAgIGlmIGlzX2NsaXBweV9k cml2ZXIgeworKyAgICAgICAgICAgIGNvbW1hbmQuYXJnKCItLXJ1c3RjIik7CisrICAgICAgICB9 CisrICAgICAgICBjb21tYW5kLmFyZygiLS12ZXJzaW9uIik7CisrCisrICAgICAgICAvLyBBbGxv dyB3cmFwcGVyIHNjcmlwdHMgb3IgYWx0ZXJuYXRlIGNvbXBpbGVycyB0byB0ZWxsIHRoYXQgdGhp cyBpcworKyAgICAgICAgLy8gYHJ1c3R2ZXJzaW9uYCBydW5uaW5nIC0tdmVyc2lvbiwgc28gdGhh dCB0aGV5IGNhbiBzdGljayB0byBydXN0YydzCisrICAgICAgICAvLyB2ZXJzaW9uIGZvcm1hdC4g aHR0cHM6Ly9naXRodWIuY29tL2R0b2xuYXkvcnVzdHZlcnNpb24vaXNzdWVzLzY3CisrICAgICAg ICBjb21tYW5kLmVudigiUlVTVFZFUlNJT04iLCAiMSIpOworKworKyAgICAgICAgbGV0IG91dHB1 dCA9IG1hdGNoIGNvbW1hbmQub3V0cHV0KCkgeworKyAgICAgICAgICAgIE9rKG91dHB1dCkgPT4g b3V0cHV0LAorKyAgICAgICAgICAgIEVycihlKSA9PiB7CisrICAgICAgICAgICAgICAgIGxldCBy dXN0YyA9IHJ1c3RjLnRvX3N0cmluZ19sb3NzeSgpOworKyAgICAgICAgICAgICAgICBlcHJpbnRs biEoIkVycm9yOiBmYWlsZWQgdG8gcnVuIGB7fSAtLXZlcnNpb25gOiB7fSIsIHJ1c3RjLCBlKTsK KysgICAgICAgICAgICAgICAgcHJvY2Vzczo6ZXhpdCgxKTsKKysgICAgICAgICAgICB9CisrICAg ICAgICB9OworKworKyAgICAgICAgbGV0IHN0cmluZyA9IG1hdGNoIFN0cmluZzo6ZnJvbV91dGY4 KG91dHB1dC5zdGRvdXQpIHsKKysgICAgICAgICAgICBPayhzdHJpbmcpID0+IHN0cmluZywKKysg ICAgICAgICAgICBFcnIoZSkgPT4geworKyAgICAgICAgICAgICAgICBsZXQgcnVzdGMgPSBydXN0 Yy50b19zdHJpbmdfbG9zc3koKTsKKysgICAgICAgICAgICAgICAgZXByaW50bG4hKAorKyAgICAg ICAgICAgICAgICAgICAgIkVycm9yOiBmYWlsZWQgdG8gcGFyc2Ugb3V0cHV0IG9mIGB7fSAtLXZl cnNpb25gOiB7fSIsCisrICAgICAgICAgICAgICAgICAgICBydXN0YywgZSwKKysgICAgICAgICAg ICAgICAgKTsKKysgICAgICAgICAgICAgICAgcHJvY2Vzczo6ZXhpdCgxKTsKKysgICAgICAgICAg ICB9CisrICAgICAgICB9OworKworKyAgICAgICAgYnJlYWsgbWF0Y2ggcnVzdGM6OnBhcnNlKCZz dHJpbmcpIHsKKysgICAgICAgICAgICBydXN0Yzo6UGFyc2VSZXN1bHQ6OlN1Y2Nlc3ModmVyc2lv bikgPT4gdmVyc2lvbiwKKysgICAgICAgICAgICBydXN0Yzo6UGFyc2VSZXN1bHQ6Ok9vcHNDbGlw cHkgaWYgIWlzX2NsaXBweV9kcml2ZXIgPT4geworKyAgICAgICAgICAgICAgICBpc19jbGlwcHlf ZHJpdmVyID0gdHJ1ZTsKKysgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAg fQorKyAgICAgICAgICAgIHJ1c3RjOjpQYXJzZVJlc3VsdDo6T29wc01pcmFpIGlmICFpc19taXJh aSAmJiBydXN0Y193cmFwcGVyLmlzX3NvbWUoKSA9PiB7CisrICAgICAgICAgICAgICAgIGlzX21p cmFpID0gdHJ1ZTsKKysgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgfQor KyAgICAgICAgICAgIHJ1c3RjOjpQYXJzZVJlc3VsdDo6VW5yZWNvZ25pemVkCisrICAgICAgICAg ICAgfCBydXN0Yzo6UGFyc2VSZXN1bHQ6Ok9vcHNDbGlwcHkKKysgICAgICAgICAgICB8IHJ1c3Rj OjpQYXJzZVJlc3VsdDo6T29wc01pcmFpID0+IHsKKysgICAgICAgICAgICAgICAgZXByaW50bG4h KAorKyAgICAgICAgICAgICAgICAgICAgIkVycm9yOiB1bmV4cGVjdGVkIG91dHB1dCBmcm9tIGBy dXN0YyAtLXZlcnNpb25gOiB7Oj99XG5cblwKKysgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBm aWxlIGFuIGlzc3VlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3J1c3R2ZXJzaW9uIiwK KysgICAgICAgICAgICAgICAgICAgIHN0cmluZworKyAgICAgICAgICAgICAgICApOworKyAgICAg ICAgICAgICAgICBwcm9jZXNzOjpleGl0KDEpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH07 CisrICAgIH07CisrCisrICAgIGlmIHZlcnNpb24ubWlub3IgPCAzOCB7CisrICAgICAgICAvLyBQ cmlvciB0byAxLjM4LCBhICNbcHJvY19tYWNyb10gaXMgbm90IGFsbG93ZWQgdG8gYmUgbmFtZWQg YGNmZ2AuCisrICAgICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPWNmZ19tYWNyb19ub3Rf YWxsb3dlZCIpOworKyAgICB9CisrCisrICAgIGlmIHZlcnNpb24ubWlub3IgPj0gODAgeworKyAg ICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNoZWNrLWNmZz1jZmcoY2ZnX21hY3JvX25vdF9h bGxvd2VkKSIpOworKyAgICAgICAgcHJpbnRsbiEoImNhcmdvOnJ1c3RjLWNoZWNrLWNmZz1jZmco aG9zdF9vcywgdmFsdWVzKFwid2luZG93c1wiKSkiKTsKKysgICAgfQorKworKyAgICBsZXQgdmVy c2lvbiA9IGZvcm1hdCEoIns6I31cbiIsIFJlbmRlcigmdmVyc2lvbikpOworKyAgICBsZXQgb3V0 X2RpciA9IGVudjo6dmFyX29zKCJPVVRfRElSIikuZXhwZWN0KCJPVVRfRElSIG5vdCBzZXQiKTsK KysgICAgbGV0IG91dF9maWxlID0gUGF0aDo6bmV3KCZvdXRfZGlyKS5qb2luKCJ2ZXJzaW9uLmV4 cHIiKTsKKysgICAgZnM6OndyaXRlKG91dF9maWxlLCB2ZXJzaW9uKS5leHBlY3QoImZhaWxlZCB0 byB3cml0ZSB2ZXJzaW9uLmV4cHIiKTsKKysKKysgICAgbGV0IGhvc3QgPSBlbnY6OnZhcl9vcygi SE9TVCIpLmV4cGVjdCgiSE9TVCBub3Qgc2V0Iik7CisrICAgIGlmIGxldCBTb21lKCJ3aW5kb3dz IikgPSBob3N0LnRvX3N0cigpLnVud3JhcCgpLnNwbGl0KCctJykubnRoKDIpIHsKKysgICAgICAg IHByaW50bG4hKCJjYXJnbzpydXN0Yy1jZmc9aG9zdF9vcz1cIndpbmRvd3NcIiIpOworKyAgICB9 CisrfQorKworKy8vIFNoaW0gVmVyc2lvbidzIHs6P30gZm9ybWF0IGludG8gYSB7fSBmb3JtYXQs IGJlY2F1c2Ugezo/fSBpcyB1bnVzYWJsZSBpbgorKy8vIGZvcm1hdCBzdHJpbmdzIHdoZW4gYnVp bGRpbmcgd2l0aCBgLVpmbXQtZGVidWc9bm9uZWAuCisrc3RydWN0IFJlbmRlcjwnYT4oJidhIHJ1 c3RjOjpWZXJzaW9uKTsKKysKKytpbXBsPCdhPiBEaXNwbGF5IGZvciBSZW5kZXI8J2E+IHsKKysg ICAgZm4gZm10KCZzZWxmLCBmb3JtYXR0ZXI6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6 UmVzdWx0IHsKKysgICAgICAgIERlYnVnOjpmbXQoc2VsZi4wLCBmb3JtYXR0ZXIpCisrICAgIH0K Kyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9idWlsZC9ydXN0 Yy5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vYnVpbGQvcnVzdGMucnMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL2J1aWxkL3J1c3RjLnJzCitAQCAtMCwwICsxLDEyNiBAQAorK3VzZSBzZWxmOjpD aGFubmVsOjoqOworK3VzZSBzdGQ6OmZtdDo6e3NlbGYsIERlYnVnfTsKKysKKytwdWIgZW51bSBQ YXJzZVJlc3VsdCB7CisrICAgIFN1Y2Nlc3MoVmVyc2lvbiksCisrICAgIE9vcHNDbGlwcHksCisr ICAgIE9vcHNNaXJhaSwKKysgICAgVW5yZWNvZ25pemVkLAorK30KKysKKysjW2NmZ19hdHRyKHRl c3QsIGRlcml2ZShQYXJ0aWFsRXEpKV0KKytwdWIgc3RydWN0IFZlcnNpb24geworKyAgICBwdWIg bWlub3I6IHUxNiwKKysgICAgcHViIHBhdGNoOiB1MTYsCisrICAgIHB1YiBjaGFubmVsOiBDaGFu bmVsLAorK30KKysKKysjW2NmZ19hdHRyKHRlc3QsIGRlcml2ZShQYXJ0aWFsRXEpKV0KKytwdWIg ZW51bSBDaGFubmVsIHsKKysgICAgU3RhYmxlLAorKyAgICBCZXRhLAorKyAgICBOaWdodGx5KERh dGUpLAorKyAgICBEZXYsCisrfQorKworKyNbY2ZnX2F0dHIodGVzdCwgZGVyaXZlKFBhcnRpYWxF cSkpXQorK3B1YiBzdHJ1Y3QgRGF0ZSB7CisrICAgIHB1YiB5ZWFyOiB1MTYsCisrICAgIHB1YiBt b250aDogdTgsCisrICAgIHB1YiBkYXk6IHU4LAorK30KKysKKytwdWIgZm4gcGFyc2Uoc3RyaW5n OiAmc3RyKSAtPiBQYXJzZVJlc3VsdCB7CisrICAgIGxldCBsYXN0X2xpbmUgPSBzdHJpbmcubGlu ZXMoKS5sYXN0KCkudW53cmFwX29yKHN0cmluZyk7CisrICAgIGxldCBtdXQgd29yZHMgPSBsYXN0 X2xpbmUudHJpbSgpLnNwbGl0KCcgJyk7CisrCisrICAgIG1hdGNoIHdvcmRzLm5leHQoKSB7Cisr ICAgICAgICBTb21lKCJydXN0YyIpID0+IHt9CisrICAgICAgICBTb21lKHdvcmQpIGlmIHdvcmQu c3RhcnRzX3dpdGgoImNsaXBweSIpID0+IHJldHVybiBQYXJzZVJlc3VsdDo6T29wc0NsaXBweSwK KysgICAgICAgIFNvbWUoIm1pcmFpIikgPT4gcmV0dXJuIFBhcnNlUmVzdWx0OjpPb3BzTWlyYWks CisrICAgICAgICBTb21lKF8pIHwgTm9uZSA9PiByZXR1cm4gUGFyc2VSZXN1bHQ6OlVucmVjb2du aXplZCwKKysgICAgfQorKworKyAgICBwYXJzZV93b3JkcygmbXV0IHdvcmRzKS5tYXBfb3IoUGFy c2VSZXN1bHQ6OlVucmVjb2duaXplZCwgUGFyc2VSZXN1bHQ6OlN1Y2Nlc3MpCisrfQorKworK2Zu IHBhcnNlX3dvcmRzKHdvcmRzOiAmbXV0IGR5biBJdGVyYXRvcjxJdGVtID0gJnN0cj4pIC0+IE9w dGlvbjxWZXJzaW9uPiB7CisrICAgIGxldCBtdXQgdmVyc2lvbl9jaGFubmVsID0gd29yZHMubmV4 dCgpPy5zcGxpdCgnLScpOworKyAgICBsZXQgdmVyc2lvbiA9IHZlcnNpb25fY2hhbm5lbC5uZXh0 KCk/OworKyAgICBsZXQgY2hhbm5lbCA9IHZlcnNpb25fY2hhbm5lbC5uZXh0KCk7CisrCisrICAg IGxldCBtdXQgZGlnaXRzID0gdmVyc2lvbi5zcGxpdCgnLicpOworKyAgICBsZXQgbWFqb3IgPSBk aWdpdHMubmV4dCgpPzsKKysgICAgaWYgbWFqb3IgIT0gIjEiIHsKKysgICAgICAgIHJldHVybiBO b25lOworKyAgICB9CisrICAgIGxldCBtaW5vciA9IGRpZ2l0cy5uZXh0KCk/LnBhcnNlKCkub2so KT87CisrICAgIGxldCBwYXRjaCA9IGRpZ2l0cy5uZXh0KCkudW53cmFwX29yKCIwIikucGFyc2Uo KS5vaygpPzsKKysKKysgICAgbGV0IGNoYW5uZWwgPSBtYXRjaCBjaGFubmVsIHsKKysgICAgICAg IE5vbmUgPT4gU3RhYmxlLAorKyAgICAgICAgU29tZSgiZGV2IikgPT4gRGV2LAorKyAgICAgICAg U29tZShjaGFubmVsKSBpZiBjaGFubmVsLnN0YXJ0c193aXRoKCJiZXRhIikgPT4gQmV0YSwKKysg ICAgICAgIFNvbWUoIm5pZ2h0bHkiKSA9PiBtYXRjaCB3b3Jkcy5uZXh0KCkgeworKyAgICAgICAg ICAgIFNvbWUoaGFzaCkgaWYgaGFzaC5zdGFydHNfd2l0aCgnKCcpID0+IG1hdGNoIHdvcmRzLm5l eHQoKSB7CisrICAgICAgICAgICAgICAgIE5vbmUgaWYgaGFzaC5lbmRzX3dpdGgoJyknKSA9PiBE ZXYsCisrICAgICAgICAgICAgICAgIFNvbWUoZGF0ZSkgaWYgZGF0ZS5lbmRzX3dpdGgoJyknKSA9 PiB7CisrICAgICAgICAgICAgICAgICAgICBsZXQgbXV0IGRhdGUgPSBkYXRlWy4uZGF0ZS5sZW4o KSAtIDFdLnNwbGl0KCctJyk7CisrICAgICAgICAgICAgICAgICAgICBsZXQgeWVhciA9IGRhdGUu bmV4dCgpPy5wYXJzZSgpLm9rKCk/OworKyAgICAgICAgICAgICAgICAgICAgbGV0IG1vbnRoID0g ZGF0ZS5uZXh0KCk/LnBhcnNlKCkub2soKT87CisrICAgICAgICAgICAgICAgICAgICBsZXQgZGF5 ID0gZGF0ZS5uZXh0KCk/LnBhcnNlKCkub2soKT87CisrICAgICAgICAgICAgICAgICAgICBtYXRj aCBkYXRlLm5leHQoKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSA9PiBOaWdodGx5 KERhdGUgeyB5ZWFyLCBtb250aCwgZGF5IH0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgIFNv bWUoXykgPT4gcmV0dXJuIE5vbmUsCisrICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAg ICAgICAgIH0KKysgICAgICAgICAgICAgICAgTm9uZSB8IFNvbWUoXykgPT4gcmV0dXJuIE5vbmUs CisrICAgICAgICAgICAgfSwKKysgICAgICAgICAgICBTb21lKF8pID0+IHJldHVybiBOb25lLAor KyAgICAgICAgICAgIE5vbmUgPT4gRGV2LAorKyAgICAgICAgfSwKKysgICAgICAgIFNvbWUoXykg PT4gcmV0dXJuIE5vbmUsCisrICAgIH07CisrCisrICAgIFNvbWUoVmVyc2lvbiB7CisrICAgICAg ICBtaW5vciwKKysgICAgICAgIHBhdGNoLAorKyAgICAgICAgY2hhbm5lbCwKKysgICAgfSkKKyt9 CisrCisraW1wbCBEZWJ1ZyBmb3IgVmVyc2lvbiB7CisrICAgIGZuIGZtdCgmc2VsZiwgZm9ybWF0 dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CisrICAgICAgICBmb3Jt YXR0ZXIKKysgICAgICAgICAgICAuZGVidWdfc3RydWN0KCJjcmF0ZTo6dmVyc2lvbjo6VmVyc2lv biIpCisrICAgICAgICAgICAgLmZpZWxkKCJtaW5vciIsICZzZWxmLm1pbm9yKQorKyAgICAgICAg ICAgIC5maWVsZCgicGF0Y2giLCAmc2VsZi5wYXRjaCkKKysgICAgICAgICAgICAuZmllbGQoImNo YW5uZWwiLCAmc2VsZi5jaGFubmVsKQorKyAgICAgICAgICAgIC5maW5pc2goKQorKyAgICB9Cisr fQorKworK2ltcGwgRGVidWcgZm9yIENoYW5uZWwgeworKyAgICBmbiBmbXQoJnNlbGYsIGZvcm1h dHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgeworKyAgICAgICAgbWF0 Y2ggc2VsZiB7CisrICAgICAgICAgICAgQ2hhbm5lbDo6U3RhYmxlID0+IGZvcm1hdHRlci53cml0 ZV9zdHIoImNyYXRlOjp2ZXJzaW9uOjpDaGFubmVsOjpTdGFibGUiKSwKKysgICAgICAgICAgICBD aGFubmVsOjpCZXRhID0+IGZvcm1hdHRlci53cml0ZV9zdHIoImNyYXRlOjp2ZXJzaW9uOjpDaGFu bmVsOjpCZXRhIiksCisrICAgICAgICAgICAgQ2hhbm5lbDo6TmlnaHRseShkYXRlKSA9PiBmb3Jt YXR0ZXIKKysgICAgICAgICAgICAgICAgLmRlYnVnX3R1cGxlKCJjcmF0ZTo6dmVyc2lvbjo6Q2hh bm5lbDo6TmlnaHRseSIpCisrICAgICAgICAgICAgICAgIC5maWVsZChkYXRlKQorKyAgICAgICAg ICAgICAgICAuZmluaXNoKCksCisrICAgICAgICAgICAgQ2hhbm5lbDo6RGV2ID0+IGZvcm1hdHRl ci53cml0ZV9zdHIoImNyYXRlOjp2ZXJzaW9uOjpDaGFubmVsOjpEZXYiKSwKKysgICAgICAgIH0K KysgICAgfQorK30KKysKKytpbXBsIERlYnVnIGZvciBEYXRlIHsKKysgICAgZm4gZm10KCZzZWxm LCBmb3JtYXR0ZXI6ICZtdXQgZm10OjpGb3JtYXR0ZXIpIC0+IGZtdDo6UmVzdWx0IHsKKysgICAg ICAgIGZvcm1hdHRlcgorKyAgICAgICAgICAgIC5kZWJ1Z19zdHJ1Y3QoImNyYXRlOjpkYXRlOjpE YXRlIikKKysgICAgICAgICAgICAuZmllbGQoInllYXIiLCAmc2VsZi55ZWFyKQorKyAgICAgICAg ICAgIC5maWVsZCgibW9udGgiLCAmc2VsZi5tb250aCkKKysgICAgICAgICAgICAuZmllbGQoImRh eSIsICZzZWxmLmRheSkKKysgICAgICAgICAgICAuZmluaXNoKCkKKysgICAgfQorK30KK2RpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9hdHRyLnJzIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYXR0ci5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2F0 dHIucnMKK0BAIC0wLDAgKzEsMzUgQEAKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3Vs dH07CisrdXNlIGNyYXRlOjpleHByOjp7c2VsZiwgRXhwcn07CisrdXNlIGNyYXRlOjp7aXRlciwg dG9rZW59OworK3VzZSBwcm9jX21hY3JvOjp7U3BhbiwgVG9rZW5TdHJlYW19OworKworK3B1YiBz dHJ1Y3QgQXJncyB7CisrICAgIHB1YiBjb25kaXRpb246IEV4cHIsCisrICAgIHB1YiB0aGVuOiBU aGVuLAorK30KKysKKytwdWIgZW51bSBUaGVuIHsKKysgICAgQ29uc3QoU3BhbiksCisrICAgIEF0 dHJpYnV0ZShUb2tlblN0cmVhbSksCisrfQorKworK3B1YiBmbiBwYXJzZShpbnB1dDogVG9rZW5T dHJlYW0pIC0+IFJlc3VsdDxBcmdzPiB7CisrICAgIGxldCByZWYgbXV0IGlucHV0ID0gaXRlcjo6 bmV3KGlucHV0KTsKKysgICAgbGV0IGNvbmRpdGlvbiA9IGV4cHI6OnBhcnNlKGlucHV0KT87Cisr CisrICAgIHRva2VuOjpwYXJzZV9wdW5jdChpbnB1dCwgJywnKT87CisrICAgIGlmIGlucHV0LnBl ZWsoKS5pc19ub25lKCkgeworKyAgICAgICAgcmV0dXJuIEVycihFcnJvcjo6bmV3KFNwYW46OmNh bGxfc2l0ZSgpLCAiZXhwZWN0ZWQgb25lIG9yIG1vcmUgYXR0cnMiKSk7CisrICAgIH0KKysKKysg ICAgbGV0IGNvbnN0X3NwYW4gPSB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfa2V5d29yZChpbnB1dCwg ImNvbnN0Iik7CisrICAgIGxldCB0aGVuID0gaWYgbGV0IFNvbWUoY29uc3Rfc3BhbikgPSBjb25z dF9zcGFuIHsKKysgICAgICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wdW5jdChpbnB1dCwgJywn KTsKKysgICAgICAgIHRva2VuOjpwYXJzZV9lbmQoaW5wdXQpPzsKKysgICAgICAgIFRoZW46OkNv bnN0KGNvbnN0X3NwYW4pCisrICAgIH0gZWxzZSB7CisrICAgICAgICBUaGVuOjpBdHRyaWJ1dGUo aW5wdXQuY29sbGVjdCgpKQorKyAgICB9OworKworKyAgICBPayhBcmdzIHsgY29uZGl0aW9uLCB0 aGVuIH0pCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3Jj L2JvdW5kLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvYm91bmQucnMKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3NyYy9ib3VuZC5ycworQEAgLTAsMCArMSw2MyBAQAorK3VzZSBjcmF0ZTo6 ZGF0ZTo6e3NlbGYsIERhdGV9OworK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsK Kyt1c2UgY3JhdGU6Oml0ZXI6Okl0ZXI7CisrdXNlIGNyYXRlOjpyZWxlYXNlOjp7c2VsZiwgUmVs ZWFzZX07CisrdXNlIGNyYXRlOjp0aW1lOworK3VzZSBjcmF0ZTo6dmVyc2lvbjo6e0NoYW5uZWw6 OiosIFZlcnNpb259OworK3VzZSBwcm9jX21hY3JvOjp7R3JvdXAsIFRva2VuVHJlZX07CisrdXNl IHN0ZDo6Y21wOjpPcmRlcmluZzsKKysKKytwdWIgZW51bSBCb3VuZCB7CisrICAgIE5pZ2h0bHko RGF0ZSksCisrICAgIFN0YWJsZShSZWxlYXNlKSwKKyt9CisrCisrcHViIGZuIHBhcnNlKHBhcmVu OiBHcm91cCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PEJvdW5kPiB7CisrICAgIGlmIGxldCBTb21l KFRva2VuVHJlZTo6TGl0ZXJhbChsaXRlcmFsKSkgPSBpdGVyLnBlZWsoKSB7CisrICAgICAgICBs ZXQgcmVwciA9IGxpdGVyYWwudG9fc3RyaW5nKCk7CisrICAgICAgICBpZiByZXByLnN0YXJ0c193 aXRoKHxjaDogY2hhcnwgY2guaXNfYXNjaWlfZGlnaXQoKSkgeworKyAgICAgICAgICAgIGlmIHJl cHIuY29udGFpbnMoJy4nKSB7CisrICAgICAgICAgICAgICAgIHJldHVybiByZWxlYXNlOjpwYXJz ZShwYXJlbiwgaXRlcikubWFwKEJvdW5kOjpTdGFibGUpOworKyAgICAgICAgICAgIH0gZWxzZSB7 CisrICAgICAgICAgICAgICAgIHJldHVybiBkYXRlOjpwYXJzZShwYXJlbiwgaXRlcikubWFwKEJv dW5kOjpOaWdodGx5KTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKysgICAg bGV0IG1zZyA9IGZvcm1hdCEoCisrICAgICAgICAiZXhwZWN0ZWQgcnVzdGMgcmVsZWFzZSBudW1i ZXIgbGlrZSAxLjg1LCBvciBuaWdodGx5IGRhdGUgbGlrZSB7fSIsCisrICAgICAgICB0aW1lOjp0 b2RheSgpLAorKyAgICApOworKyAgICBFcnIoRXJyb3I6Omdyb3VwKHBhcmVuLCBtc2cpKQorK30K KysKKytpbXBsIFBhcnRpYWxFcTxCb3VuZD4gZm9yIFZlcnNpb24geworKyAgICBmbiBlcSgmc2Vs ZiwgcmhzOiAmQm91bmQpIC0+IGJvb2wgeworKyAgICAgICAgbWF0Y2ggcmhzIHsKKysgICAgICAg ICAgICBCb3VuZDo6TmlnaHRseShkYXRlKSA9PiBtYXRjaCBzZWxmLmNoYW5uZWwgeworKyAgICAg ICAgICAgICAgICBTdGFibGUgfCBCZXRhIHwgRGV2ID0+IGZhbHNlLAorKyAgICAgICAgICAgICAg ICBOaWdodGx5KG5pZ2h0bHkpID0+IG5pZ2h0bHkgPT0gKmRhdGUsCisrICAgICAgICAgICAgfSwK KysgICAgICAgICAgICBCb3VuZDo6U3RhYmxlKHJlbGVhc2UpID0+IHsKKysgICAgICAgICAgICAg ICAgc2VsZi5taW5vciA9PSByZWxlYXNlLm1pbm9yCisrICAgICAgICAgICAgICAgICAgICAmJiBy ZWxlYXNlLnBhdGNoLm1hcF9vcih0cnVlLCB8cGF0Y2h8IHNlbGYucGF0Y2ggPT0gcGF0Y2gpCisr ICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICB9CisrfQorKworK2ltcGwgUGFydGlhbE9y ZDxCb3VuZD4gZm9yIFZlcnNpb24geworKyAgICBmbiBwYXJ0aWFsX2NtcCgmc2VsZiwgcmhzOiAm Qm91bmQpIC0+IE9wdGlvbjxPcmRlcmluZz4geworKyAgICAgICAgbWF0Y2ggcmhzIHsKKysgICAg ICAgICAgICBCb3VuZDo6TmlnaHRseShkYXRlKSA9PiBtYXRjaCBzZWxmLmNoYW5uZWwgeworKyAg ICAgICAgICAgICAgICBTdGFibGUgfCBCZXRhID0+IFNvbWUoT3JkZXJpbmc6Okxlc3MpLAorKyAg ICAgICAgICAgICAgICBOaWdodGx5KG5pZ2h0bHkpID0+IFNvbWUobmlnaHRseS5jbXAoZGF0ZSkp LAorKyAgICAgICAgICAgICAgICBEZXYgPT4gU29tZShPcmRlcmluZzo6R3JlYXRlciksCisrICAg ICAgICAgICAgfSwKKysgICAgICAgICAgICBCb3VuZDo6U3RhYmxlKHJlbGVhc2UpID0+IHsKKysg ICAgICAgICAgICAgICAgbGV0IHZlcnNpb24gPSAoc2VsZi5taW5vciwgc2VsZi5wYXRjaCk7Cisr ICAgICAgICAgICAgICAgIGxldCBib3VuZCA9IChyZWxlYXNlLm1pbm9yLCByZWxlYXNlLnBhdGNo LnVud3JhcF9vcigwKSk7CisrICAgICAgICAgICAgICAgIFNvbWUodmVyc2lvbi5jbXAoJmJvdW5k KSkKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvY29uc3Rmbi5ycyBiL3RoaXJkX3BhcnR5 L3J1c3QvcnVzdHZlcnNpb24vc3JjL2NvbnN0Zm4ucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Cist LS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9jb25z dGZuLnJzCitAQCAtMCwwICsxLDU4IEBACisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1 bHR9OworK3VzZSBwcm9jX21hY3JvOjp7SWRlbnQsIFNwYW4sIFRva2VuU3RyZWFtLCBUb2tlblRy ZWV9OworK3VzZSBzdGQ6Oml0ZXI7CisrCisrI1tkZXJpdmUoUGFydGlhbE9yZCwgUGFydGlhbEVx KV0KKytlbnVtIFF1YWxpZmllcnMgeworKyAgICBOb25lLAorKyAgICBBc3luYywKKysgICAgVW5z YWZlLAorKyAgICBFeHRlcm4sCisrICAgIEFiaSwKKyt9CisrCisraW1wbCBRdWFsaWZpZXJzIHsK KysgICAgZm4gZnJvbV9pZGVudChpZGVudDogJklkZW50KSAtPiBTZWxmIHsKKysgICAgICAgIG1h dGNoIGlkZW50LnRvX3N0cmluZygpLmFzX3N0cigpIHsKKysgICAgICAgICAgICAiYXN5bmMiID0+ IFF1YWxpZmllcnM6OkFzeW5jLAorKyAgICAgICAgICAgICJ1bnNhZmUiID0+IFF1YWxpZmllcnM6 OlVuc2FmZSwKKysgICAgICAgICAgICAiZXh0ZXJuIiA9PiBRdWFsaWZpZXJzOjpFeHRlcm4sCisr ICAgICAgICAgICAgXyA9PiBRdWFsaWZpZXJzOjpOb25lLAorKyAgICAgICAgfQorKyAgICB9Cisr fQorKworK3B1YihjcmF0ZSkgZm4gaW5zZXJ0X2NvbnN0KGlucHV0OiBUb2tlblN0cmVhbSwgY29u c3Rfc3BhbjogU3BhbikgLT4gUmVzdWx0PFRva2VuU3RyZWFtPiB7CisrICAgIGxldCByZWYgbXV0 IGlucHV0ID0gY3JhdGU6Oml0ZXI6Om5ldyhpbnB1dCk7CisrICAgIGxldCBtdXQgb3V0ID0gVG9r ZW5TdHJlYW06Om5ldygpOworKyAgICBsZXQgbXV0IHF1YWxpZmllcnMgPSBRdWFsaWZpZXJzOjpO b25lOworKyAgICBsZXQgbXV0IHBlbmRpbmcgPSBWZWM6Om5ldygpOworKworKyAgICB3aGlsZSBs ZXQgU29tZSh0b2tlbikgPSBpbnB1dC5uZXh0KCkgeworKyAgICAgICAgbWF0Y2ggdG9rZW4gewor KyAgICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQocmVmIGlkZW50KSBpZiBpZGVudC50b19zdHJp bmcoKSA9PSAiZm4iID0+IHsKKysgICAgICAgICAgICAgICAgbGV0IGNvbnN0X2lkZW50ID0gSWRl bnQ6Om5ldygiY29uc3QiLCBjb25zdF9zcGFuKTsKKysgICAgICAgICAgICAgICAgb3V0LmV4dGVu ZChpdGVyOjpvbmNlKFRva2VuVHJlZTo6SWRlbnQoY29uc3RfaWRlbnQpKSk7CisrICAgICAgICAg ICAgICAgIG91dC5leHRlbmQocGVuZGluZyk7CisrICAgICAgICAgICAgICAgIG91dC5leHRlbmQo aXRlcjo6b25jZSh0b2tlbikpOworKyAgICAgICAgICAgICAgICBvdXQuZXh0ZW5kKGlucHV0KTsK KysgICAgICAgICAgICAgICAgcmV0dXJuIE9rKG91dCk7CisrICAgICAgICAgICAgfQorKyAgICAg ICAgICAgIFRva2VuVHJlZTo6SWRlbnQocmVmIGlkZW50KSBpZiBRdWFsaWZpZXJzOjpmcm9tX2lk ZW50KGlkZW50KSA+IHF1YWxpZmllcnMgPT4geworKyAgICAgICAgICAgICAgICBxdWFsaWZpZXJz ID0gUXVhbGlmaWVyczo6ZnJvbV9pZGVudChpZGVudCk7CisrICAgICAgICAgICAgICAgIHBlbmRp bmcucHVzaCh0b2tlbik7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIFRva2VuVHJlZTo6 TGl0ZXJhbChfKSBpZiBxdWFsaWZpZXJzID09IFF1YWxpZmllcnM6OkV4dGVybiA9PiB7CisrICAg ICAgICAgICAgICAgIHF1YWxpZmllcnMgPSBRdWFsaWZpZXJzOjpBYmk7CisrICAgICAgICAgICAg ICAgIHBlbmRpbmcucHVzaCh0b2tlbik7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIF8g PT4geworKyAgICAgICAgICAgICAgICBxdWFsaWZpZXJzID0gUXVhbGlmaWVyczo6Tm9uZTsKKysg ICAgICAgICAgICAgICAgb3V0LmV4dGVuZChwZW5kaW5nLmRyYWluKC4uKSk7CisrICAgICAgICAg ICAgICAgIG91dC5leHRlbmQoaXRlcjo6b25jZSh0b2tlbikpOworKyAgICAgICAgICAgIH0KKysg ICAgICAgIH0KKysgICAgfQorKworKyAgICBFcnIoRXJyb3I6Om5ldyhjb25zdF9zcGFuLCAib25s eSBhbGxvd2VkIG9uIGEgZm4gaXRlbSIpKQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9y dXN0L3J1c3R2ZXJzaW9uL3NyYy9kYXRlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi9zcmMvZGF0ZS5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2RhdGUucnMKK0BAIC0wLDAgKzEsNTAg QEAKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNlIGNyYXRlOjppdGVy OjpJdGVyOworK3VzZSBjcmF0ZTo6e3RpbWUsIHRva2VufTsKKyt1c2UgcHJvY19tYWNybzo6R3Jv dXA7CisrdXNlIHN0ZDo6Zm10Ojp7c2VsZiwgRGlzcGxheX07CisrCisrI1tkZXJpdmUoQ29weSwg Q2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEsIEVxLCBQYXJ0aWFsT3JkLCBPcmQpXQorK3B1YiBzdHJ1 Y3QgRGF0ZSB7CisrICAgIHB1YiB5ZWFyOiB1MTYsCisrICAgIHB1YiBtb250aDogdTgsCisrICAg IHB1YiBkYXk6IHU4LAorK30KKysKKytpbXBsIERpc3BsYXkgZm9yIERhdGUgeworKyAgICBmbiBm bXQoJnNlbGYsIGZvcm1hdHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQg eworKyAgICAgICAgd3JpdGUhKAorKyAgICAgICAgICAgIGZvcm1hdHRlciwKKysgICAgICAgICAg ICAiezowNH0tezowMn0tezowMn0iLAorKyAgICAgICAgICAgIHNlbGYueWVhciwgc2VsZi5tb250 aCwgc2VsZi5kYXksCisrICAgICAgICApCisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNlKHBh cmVuOiBHcm91cCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PERhdGU+IHsKKysgICAgdHJ5X3BhcnNl KGl0ZXIpLm1hcF9lcnIofCgpfCB7CisrICAgICAgICBsZXQgbXNnID0gZm9ybWF0ISgiZXhwZWN0 ZWQgbmlnaHRseSBkYXRlLCBsaWtlIHt9IiwgdGltZTo6dG9kYXkoKSk7CisrICAgICAgICBFcnJv cjo6Z3JvdXAocGFyZW4sIG1zZykKKysgICAgfSkKKyt9CisrCisrZm4gdHJ5X3BhcnNlKGl0ZXI6 IEl0ZXIpIC0+IFJlc3VsdDxEYXRlLCAoKT4geworKyAgICBsZXQgeWVhciA9IHRva2VuOjpwYXJz ZV9saXRlcmFsKGl0ZXIpLm1hcF9lcnIoZHJvcCk/OworKyAgICB0b2tlbjo6cGFyc2VfcHVuY3Qo aXRlciwgJy0nKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IG1vbnRoID0gdG9rZW46OnBhcnNl X2xpdGVyYWwoaXRlcikubWFwX2Vycihkcm9wKT87CisrICAgIHRva2VuOjpwYXJzZV9wdW5jdChp dGVyLCAnLScpLm1hcF9lcnIoZHJvcCk/OworKyAgICBsZXQgZGF5ID0gdG9rZW46OnBhcnNlX2xp dGVyYWwoaXRlcikubWFwX2Vycihkcm9wKT87CisrCisrICAgIGxldCB5ZWFyID0geWVhci50b19z dHJpbmcoKS5wYXJzZTo6PHU2ND4oKS5tYXBfZXJyKGRyb3ApPzsKKysgICAgbGV0IG1vbnRoID0g bW9udGgudG9fc3RyaW5nKCkucGFyc2U6Ojx1NjQ+KCkubWFwX2Vycihkcm9wKT87CisrICAgIGxl dCBkYXkgPSBkYXkudG9fc3RyaW5nKCkucGFyc2U6Ojx1NjQ+KCkubWFwX2Vycihkcm9wKT87Cisr ICAgIGlmIHllYXIgPj0gMzAwMCB8fCBtb250aCA+IDEyIHx8IGRheSA+IDMxIHsKKysgICAgICAg IHJldHVybiBFcnIoKCkpOworKyAgICB9CisrCisrICAgIE9rKERhdGUgeworKyAgICAgICAgeWVh cjogeWVhciBhcyB1MTYsCisrICAgICAgICBtb250aDogbW9udGggYXMgdTgsCisrICAgICAgICBk YXk6IGRheSBhcyB1OCwKKysgICAgfSkKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVz dC9ydXN0dmVyc2lvbi9zcmMvZXJyb3IucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9u L3NyYy9lcnJvci5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBi L3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL2Vycm9yLnJzCitAQCAtMCwwICsxLDU2 IEBACisrdXNlIHByb2NfbWFjcm86OntEZWxpbWl0ZXIsIEdyb3VwLCBJZGVudCwgTGl0ZXJhbCwg UHVuY3QsIFNwYWNpbmcsIFNwYW4sIFRva2VuU3RyZWFtLCBUb2tlblRyZWV9OworK3VzZSBzdGQ6 OmZtdDo6RGlzcGxheTsKKyt1c2Ugc3RkOjppdGVyOjpGcm9tSXRlcmF0b3I7CisrCisrcHViIHR5 cGUgUmVzdWx0PFQsIEUgPSBFcnJvcj4gPSBzdGQ6OnJlc3VsdDo6UmVzdWx0PFQsIEU+OworKwor K3B1YiBzdHJ1Y3QgRXJyb3IgeworKyAgICBiZWdpbjogU3BhbiwKKysgICAgZW5kOiBTcGFuLAor KyAgICBtc2c6IFN0cmluZywKKyt9CisrCisraW1wbCBFcnJvciB7CisrICAgIHB1YiBmbiBuZXco c3BhbjogU3BhbiwgbXNnOiBpbXBsIERpc3BsYXkpIC0+IFNlbGYgeworKyAgICAgICAgU2VsZjo6 bmV3MihzcGFuLCBzcGFuLCBtc2cpCisrICAgIH0KKysKKysgICAgcHViIGZuIG5ldzIoYmVnaW46 IFNwYW4sIGVuZDogU3BhbiwgbXNnOiBpbXBsIERpc3BsYXkpIC0+IFNlbGYgeworKyAgICAgICAg RXJyb3IgeworKyAgICAgICAgICAgIGJlZ2luLAorKyAgICAgICAgICAgIGVuZCwKKysgICAgICAg ICAgICBtc2c6IG1zZy50b19zdHJpbmcoKSwKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICBw dWIgZm4gZ3JvdXAoZ3JvdXA6IEdyb3VwLCBtc2c6IGltcGwgRGlzcGxheSkgLT4gU2VsZiB7Cisr ICAgICAgICBsZXQgbXV0IGl0ZXIgPSBncm91cC5zdHJlYW0oKS5pbnRvX2l0ZXIoKTsKKysgICAg ICAgIGxldCBkZWxpbWl0ZXIgPSBncm91cC5zcGFuKCk7CisrICAgICAgICBsZXQgYmVnaW4gPSBp dGVyLm5leHQoKS5tYXBfb3IoZGVsaW1pdGVyLCB8dHwgdC5zcGFuKCkpOworKyAgICAgICAgbGV0 IGVuZCA9IGl0ZXIubGFzdCgpLm1hcF9vcihiZWdpbiwgfHR8IHQuc3BhbigpKTsKKysgICAgICAg IFNlbGY6Om5ldzIoYmVnaW4sIGVuZCwgbXNnKQorKyAgICB9CisrCisrICAgIHB1YiBmbiBpbnRv X2NvbXBpbGVfZXJyb3Ioc2VsZikgLT4gVG9rZW5TdHJlYW0geworKyAgICAgICAgLy8gY29tcGls ZV9lcnJvciEgeyAkbXNnIH0KKysgICAgICAgIFRva2VuU3RyZWFtOjpmcm9tX2l0ZXIodmVjIVsK KysgICAgICAgICAgICBUb2tlblRyZWU6OklkZW50KElkZW50OjpuZXcoImNvbXBpbGVfZXJyb3Ii LCBzZWxmLmJlZ2luKSksCisrICAgICAgICAgICAgVG9rZW5UcmVlOjpQdW5jdCh7CisrICAgICAg ICAgICAgICAgIGxldCBtdXQgcHVuY3QgPSBQdW5jdDo6bmV3KCchJywgU3BhY2luZzo6QWxvbmUp OworKyAgICAgICAgICAgICAgICBwdW5jdC5zZXRfc3BhbihzZWxmLmJlZ2luKTsKKysgICAgICAg ICAgICAgICAgcHVuY3QKKysgICAgICAgICAgICB9KSwKKysgICAgICAgICAgICBUb2tlblRyZWU6 Okdyb3VwKHsKKysgICAgICAgICAgICAgICAgbGV0IG11dCBncm91cCA9IEdyb3VwOjpuZXcoRGVs aW1pdGVyOjpCcmFjZSwgeworKyAgICAgICAgICAgICAgICAgICAgVG9rZW5TdHJlYW06OmZyb21f aXRlcih2ZWMhW1Rva2VuVHJlZTo6TGl0ZXJhbCh7CisrICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG11dCBzdHJpbmcgPSBMaXRlcmFsOjpzdHJpbmcoJnNlbGYubXNnKTsKKysgICAgICAgICAg ICAgICAgICAgICAgICBzdHJpbmcuc2V0X3NwYW4oc2VsZi5lbmQpOworKyAgICAgICAgICAgICAg ICAgICAgICAgIHN0cmluZworKyAgICAgICAgICAgICAgICAgICAgfSldKQorKyAgICAgICAgICAg ICAgICB9KTsKKysgICAgICAgICAgICAgICAgZ3JvdXAuc2V0X3NwYW4oc2VsZi5lbmQpOworKyAg ICAgICAgICAgICAgICBncm91cAorKyAgICAgICAgICAgIH0pLAorKyAgICAgICAgXSkKKysgICAg fQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9leHBh bmQucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9leHBhbmQucnMKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3NyYy9leHBhbmQucnMKK0BAIC0wLDAgKzEsMTAwIEBACisrdXNlIGNyYXRlOjph dHRyOjp7c2VsZiwgVGhlbn07CisrdXNlIGNyYXRlOjplcnJvcjo6e0Vycm9yLCBSZXN1bHR9Owor K3VzZSBjcmF0ZTo6e2NvbnN0Zm4sIGV4cHIsIGl0ZXIsIHRva2VufTsKKyt1c2UgcHJvY19tYWNy bzo6e0RlbGltaXRlciwgR3JvdXAsIElkZW50LCBQdW5jdCwgU3BhY2luZywgU3BhbiwgVG9rZW5T dHJlYW0sIFRva2VuVHJlZX07CisrdXNlIHN0ZDo6aXRlcjo6RnJvbUl0ZXJhdG9yOworKworK3B1 YiBmbiBjZmcoaW50cm9kdWNlcjogJnN0ciwgYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tl blN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICB0cnlfY2ZnKGludHJvZHVjZXIsIGFyZ3Ms IGlucHV0KS51bndyYXBfb3JfZWxzZShFcnJvcjo6aW50b19jb21waWxlX2Vycm9yKQorK30KKysK KytmbiB0cnlfY2ZnKGludHJvZHVjZXI6ICZzdHIsIGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDog VG9rZW5TdHJlYW0pIC0+IFJlc3VsdDxUb2tlblN0cmVhbT4geworKyAgICBsZXQgaW50cm9kdWNl ciA9IElkZW50OjpuZXcoaW50cm9kdWNlciwgU3Bhbjo6Y2FsbF9zaXRlKCkpOworKworKyAgICBs ZXQgbXV0IGZ1bGxfYXJncyA9IFRva2VuU3RyZWFtOjpmcm9tKFRva2VuVHJlZTo6SWRlbnQoaW50 cm9kdWNlcikpOworKyAgICBpZiAhYXJncy5pc19lbXB0eSgpIHsKKysgICAgICAgIGZ1bGxfYXJn cy5leHRlbmQoc3RkOjppdGVyOjpvbmNlKFRva2VuVHJlZTo6R3JvdXAoR3JvdXA6Om5ldygKKysg ICAgICAgICAgICBEZWxpbWl0ZXI6OlBhcmVudGhlc2lzLAorKyAgICAgICAgICAgIGFyZ3MsCisr ICAgICAgICApKSkpOworKyAgICB9CisrCisrICAgIGxldCByZWYgbXV0IGZ1bGxfYXJncyA9IGl0 ZXI6Om5ldyhmdWxsX2FyZ3MpOworKyAgICBsZXQgZXhwciA9IGV4cHI6OnBhcnNlKGZ1bGxfYXJn cyk/OworKyAgICB0b2tlbjo6cGFyc2VfZW5kKGZ1bGxfYXJncyk/OworKworKyAgICBpZiBleHBy LmV2YWwoY3JhdGU6OlJVU1RWRVJTSU9OKSB7CisrICAgICAgICBPayhhbGxvd19pbmNvbXBhdGli bGVfbXNydihpbnB1dCkpCisrICAgIH0gZWxzZSB7CisrICAgICAgICBPayhUb2tlblN0cmVhbTo6 bmV3KCkpCisrICAgIH0KKyt9CisrCisrcHViIGZuIHRyeV9hdHRyKGFyZ3M6IGF0dHI6OkFyZ3Ms IGlucHV0OiBUb2tlblN0cmVhbSkgLT4gUmVzdWx0PFRva2VuU3RyZWFtPiB7CisrICAgIGlmICFh cmdzLmNvbmRpdGlvbi5ldmFsKGNyYXRlOjpSVVNUVkVSU0lPTikgeworKyAgICAgICAgcmV0dXJu IE9rKGlucHV0KTsKKysgICAgfQorKworKyAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggYXJncy50aGVu IHsKKysgICAgICAgIFRoZW46OkNvbnN0KGNvbnN0X3Rva2VuKSA9PiBjb25zdGZuOjppbnNlcnRf Y29uc3QoaW5wdXQsIGNvbnN0X3Rva2VuKT8sCisrICAgICAgICBUaGVuOjpBdHRyaWJ1dGUodGhl bikgPT4geworKyAgICAgICAgICAgIFRva2VuU3RyZWFtOjpmcm9tX2l0ZXIoCisrICAgICAgICAg ICAgICAgIC8vICNbY2ZnX2F0dHIoYWxsKCksICN0aGVuKV0KKysgICAgICAgICAgICAgICAgdmVj IVsKKysgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6UHVuY3QoUHVuY3Q6Om5ldygnIycs IFNwYWNpbmc6OkFsb25lKSksCisrICAgICAgICAgICAgICAgICAgICBUb2tlblRyZWU6Okdyb3Vw KEdyb3VwOjpuZXcoCisrICAgICAgICAgICAgICAgICAgICAgICAgRGVsaW1pdGVyOjpCcmFja2V0 LAorKyAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuU3RyZWFtOjpmcm9tX2l0ZXIodmVjIVsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5UcmVlOjpJZGVudChJZGVudDo6bmV3 KCJjZmdfYXR0ciIsIFNwYW46OmNhbGxfc2l0ZSgpKSksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRva2VuVHJlZTo6R3JvdXAoR3JvdXA6Om5ldygKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERlbGltaXRlcjo6UGFyZW50aGVzaXMsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUb2tlblN0cmVhbTo6ZnJvbV9pdGVyKAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZlYyFbCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQoSWRlbnQ6Om5ldygiYWxsIiwgU3Bhbjo6Y2FsbF9z aXRlKCkpKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5U cmVlOjpHcm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRGVsaW1pdGVyOjpQYXJlbnRoZXNpcywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuU3RyZWFtOjpuZXcoKSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6UHVuY3QoUHVuY3Q6Om5ldygnLCcsIFNwYWNp bmc6OkFsb25lKSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbnRvX2l0ZXIoKQorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jaGFpbih0aGVuKSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpLAor KyAgICAgICAgICAgICAgICAgICAgICAgIF0pLAorKyAgICAgICAgICAgICAgICAgICAgKSksCisr ICAgICAgICAgICAgICAgIF0KKysgICAgICAgICAgICAgICAgLmludG9faXRlcigpCisrICAgICAg ICAgICAgICAgIC5jaGFpbihpbnB1dCksCisrICAgICAgICAgICAgKQorKyAgICAgICAgfQorKyAg ICB9OworKworKyAgICBPayhhbGxvd19pbmNvbXBhdGlibGVfbXNydihvdXRwdXQpKQorK30KKysK KytmbiBhbGxvd19pbmNvbXBhdGlibGVfbXNydihpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFRva2Vu U3RyZWFtIHsKKysgICAgVG9rZW5TdHJlYW06OmZyb21faXRlcigKKysgICAgICAgIC8vICNbYWxs b3coY2xpcHB5OjppbmNvbXBhdGlibGVfbXNydildCisrICAgICAgICB2ZWMhWworKyAgICAgICAg ICAgIFRva2VuVHJlZTo6UHVuY3QoUHVuY3Q6Om5ldygnIycsIFNwYWNpbmc6OkFsb25lKSksCisr ICAgICAgICAgICAgVG9rZW5UcmVlOjpHcm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgICAg ICBEZWxpbWl0ZXI6OkJyYWNrZXQsCisrICAgICAgICAgICAgICAgIFRva2VuU3RyZWFtOjpmcm9t X2l0ZXIodmVjIVsKKysgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQoSWRlbnQ6 Om5ldygiYWxsb3ciLCBTcGFuOjpjYWxsX3NpdGUoKSkpLAorKyAgICAgICAgICAgICAgICAgICAg VG9rZW5UcmVlOjpHcm91cChHcm91cDo6bmV3KAorKyAgICAgICAgICAgICAgICAgICAgICAgIERl bGltaXRlcjo6UGFyZW50aGVzaXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgVG9rZW5TdHJl YW06OmZyb21faXRlcih2ZWMhWworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2tlblRy ZWU6OklkZW50KElkZW50OjpuZXcoImNsaXBweSIsIFNwYW46OmNhbGxfc2l0ZSgpKSksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6UHVuY3QoUHVuY3Q6Om5ldygnOics IFNwYWNpbmc6OkpvaW50KSksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRva2VuVHJl ZTo6UHVuY3QoUHVuY3Q6Om5ldygnOicsIFNwYWNpbmc6OkFsb25lKSksCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRva2VuVHJlZTo6SWRlbnQoSWRlbnQ6Om5ldygiaW5jb21wYXRpYmxl X21zcnYiLCBTcGFuOjpjYWxsX3NpdGUoKSkpLAorKyAgICAgICAgICAgICAgICAgICAgICAgIF0p LAorKyAgICAgICAgICAgICAgICAgICAgKSksCisrICAgICAgICAgICAgICAgIF0pLAorKyAgICAg ICAgICAgICkpLAorKyAgICAgICAgXQorKyAgICAgICAgLmludG9faXRlcigpCisrICAgICAgICAu Y2hhaW4oaW5wdXQpLAorKyAgICApCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cnVzdHZlcnNpb24vc3JjL2V4cHIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Ny Yy9leHByLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhp cmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvZXhwci5ycworQEAgLTAsMCArMSwxNjMgQEAK Kyt1c2UgY3JhdGU6OmJvdW5kOjp7c2VsZiwgQm91bmR9OworK3VzZSBjcmF0ZTo6ZGF0ZTo6e3Nl bGYsIERhdGV9OworK3VzZSBjcmF0ZTo6ZXJyb3I6OntFcnJvciwgUmVzdWx0fTsKKyt1c2UgY3Jh dGU6Oml0ZXI6OntzZWxmLCBJdGVyfTsKKyt1c2UgY3JhdGU6OnJlbGVhc2U6OntzZWxmLCBSZWxl YXNlfTsKKyt1c2UgY3JhdGU6OnRva2VuOworK3VzZSBjcmF0ZTo6dmVyc2lvbjo6e0NoYW5uZWws IFZlcnNpb259OworK3VzZSBwcm9jX21hY3JvOjp7SWRlbnQsIFNwYW4sIFRva2VuVHJlZX07Cisr CisrcHViIGVudW0gRXhwciB7CisrICAgIFN0YWJsZSwKKysgICAgQmV0YSwKKysgICAgTmlnaHRs eSwKKysgICAgRGF0ZShEYXRlKSwKKysgICAgU2luY2UoQm91bmQpLAorKyAgICBCZWZvcmUoQm91 bmQpLAorKyAgICBSZWxlYXNlKFJlbGVhc2UpLAorKyAgICBOb3QoQm94PEV4cHI+KSwKKysgICAg QW55KFZlYzxFeHByPiksCisrICAgIEFsbChWZWM8RXhwcj4pLAorK30KKysKKytpbXBsIEV4cHIg eworKyAgICBwdWIgZm4gZXZhbCgmc2VsZiwgcnVzdGM6IFZlcnNpb24pIC0+IGJvb2wgeworKyAg ICAgICAgdXNlIHNlbGY6OkV4cHI6Oio7CisrCisrICAgICAgICBtYXRjaCBzZWxmIHsKKysgICAg ICAgICAgICBTdGFibGUgPT4gcnVzdGMuY2hhbm5lbCA9PSBDaGFubmVsOjpTdGFibGUsCisrICAg ICAgICAgICAgQmV0YSA9PiBydXN0Yy5jaGFubmVsID09IENoYW5uZWw6OkJldGEsCisrICAgICAg ICAgICAgTmlnaHRseSA9PiBtYXRjaCBydXN0Yy5jaGFubmVsIHsKKysgICAgICAgICAgICAgICAg Q2hhbm5lbDo6TmlnaHRseShfKSB8IENoYW5uZWw6OkRldiA9PiB0cnVlLAorKyAgICAgICAgICAg ICAgICBDaGFubmVsOjpTdGFibGUgfCBDaGFubmVsOjpCZXRhID0+IGZhbHNlLAorKyAgICAgICAg ICAgIH0sCisrICAgICAgICAgICAgRGF0ZShkYXRlKSA9PiBtYXRjaCBydXN0Yy5jaGFubmVsIHsK KysgICAgICAgICAgICAgICAgQ2hhbm5lbDo6TmlnaHRseShydXN0YykgPT4gcnVzdGMgPT0gKmRh dGUsCisrICAgICAgICAgICAgICAgIENoYW5uZWw6OlN0YWJsZSB8IENoYW5uZWw6OkJldGEgfCBD aGFubmVsOjpEZXYgPT4gZmFsc2UsCisrICAgICAgICAgICAgfSwKKysgICAgICAgICAgICBTaW5j ZShib3VuZCkgPT4gcnVzdGMgPj0gKmJvdW5kLAorKyAgICAgICAgICAgIEJlZm9yZShib3VuZCkg PT4gcnVzdGMgPCAqYm91bmQsCisrICAgICAgICAgICAgUmVsZWFzZShyZWxlYXNlKSA9PiB7Cisr ICAgICAgICAgICAgICAgIHJ1c3RjLmNoYW5uZWwgPT0gQ2hhbm5lbDo6U3RhYmxlCisrICAgICAg ICAgICAgICAgICAgICAmJiBydXN0Yy5taW5vciA9PSByZWxlYXNlLm1pbm9yCisrICAgICAgICAg ICAgICAgICAgICAmJiByZWxlYXNlLnBhdGNoLm1hcF9vcih0cnVlLCB8cGF0Y2h8IHJ1c3RjLnBh dGNoID09IHBhdGNoKQorKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBOb3QoZXhwcikgPT4g IWV4cHIuZXZhbChydXN0YyksCisrICAgICAgICAgICAgQW55KGV4cHJzKSA9PiBleHBycy5pdGVy KCkuYW55KHxlfCBlLmV2YWwocnVzdGMpKSwKKysgICAgICAgICAgICBBbGwoZXhwcnMpID0+IGV4 cHJzLml0ZXIoKS5hbGwofGV8IGUuZXZhbChydXN0YykpLAorKyAgICAgICAgfQorKyAgICB9Cisr fQorKworK3B1YiBmbiBwYXJzZShpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBt YXRjaCAmaXRlci5uZXh0KCkgeworKyAgICAgICAgU29tZShUb2tlblRyZWU6OklkZW50KGkpKSBp ZiBpLnRvX3N0cmluZygpID09ICJzdGFibGUiID0+IHBhcnNlX3N0YWJsZShpdGVyKSwKKysgICAg ICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAiYmV0YSIg PT4gT2soRXhwcjo6QmV0YSksCisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlm IGkudG9fc3RyaW5nKCkgPT0gIm5pZ2h0bHkiID0+IHBhcnNlX25pZ2h0bHkoaXRlciksCisrICAg ICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGkudG9fc3RyaW5nKCkgPT0gInNpbmNl IiA9PiBwYXJzZV9zaW5jZShpLCBpdGVyKSwKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVu dChpKSkgaWYgaS50b19zdHJpbmcoKSA9PSAiYmVmb3JlIiA9PiBwYXJzZV9iZWZvcmUoaSwgaXRl ciksCisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRlbnQoaSkpIGlmIGkudG9fc3RyaW5nKCkg PT0gIm5vdCIgPT4gcGFyc2Vfbm90KGksIGl0ZXIpLAorKyAgICAgICAgU29tZShUb2tlblRyZWU6 OklkZW50KGkpKSBpZiBpLnRvX3N0cmluZygpID09ICJhbnkiID0+IHBhcnNlX2FueShpLCBpdGVy KSwKKysgICAgICAgIFNvbWUoVG9rZW5UcmVlOjpJZGVudChpKSkgaWYgaS50b19zdHJpbmcoKSA9 PSAiYWxsIiA9PiBwYXJzZV9hbGwoaSwgaXRlciksCisrICAgICAgICB1bmV4cGVjdGVkID0+IHsK KysgICAgICAgICAgICBsZXQgc3BhbiA9IHVuZXhwZWN0ZWQKKysgICAgICAgICAgICAgICAgLmFz X3JlZigpCisrICAgICAgICAgICAgICAgIC5tYXBfb3JfZWxzZShTcGFuOjpjYWxsX3NpdGUsIFRv a2VuVHJlZTo6c3Bhbik7CisrICAgICAgICAgICAgRXJyKEVycm9yOjpuZXcoc3BhbiwgImV4cGVj dGVkIG9uZSBvZiBgc3RhYmxlYCwgYGJldGFgLCBgbmlnaHRseWAsIGBzaW5jZWAsIGBiZWZvcmVg LCBgbm90YCwgYGFueWAsIGBhbGxgIikpCisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrZm4g cGFyc2VfbmlnaHRseShpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFy ZW4gPSBtYXRjaCB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcGFyZW4oaXRlcikgeworKyAgICAgICAg U29tZShncm91cCkgPT4gZ3JvdXAsCisrICAgICAgICBOb25lID0+IHJldHVybiBPayhFeHByOjpO aWdodGx5KSwKKysgICAgfTsKKysKKysgICAgbGV0IHJlZiBtdXQgaW5uZXIgPSBpdGVyOjpuZXco cGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgZGF0ZSA9IGRhdGU6OnBhcnNlKHBhcmVuLCBpbm5l cik/OworKyAgICB0b2tlbjo6cGFyc2Vfb3B0aW9uYWxfcHVuY3QoaW5uZXIsICcsJyk7CisrICAg IHRva2VuOjpwYXJzZV9lbmQoaW5uZXIpPzsKKysKKysgICAgT2soRXhwcjo6RGF0ZShkYXRlKSkK Kyt9CisrCisrZm4gcGFyc2Vfc3RhYmxlKGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7Cisr ICAgIGxldCBwYXJlbiA9IG1hdGNoIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wYXJlbihpdGVyKSB7 CisrICAgICAgICBTb21lKGdyb3VwKSA9PiBncm91cCwKKysgICAgICAgIE5vbmUgPT4gcmV0dXJu IE9rKEV4cHI6OlN0YWJsZSksCisrICAgIH07CisrCisrICAgIGxldCByZWYgbXV0IGlubmVyID0g aXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0IHJlbGVhc2UgPSByZWxlYXNlOjpw YXJzZShwYXJlbiwgaW5uZXIpPzsKKysgICAgdG9rZW46OnBhcnNlX29wdGlvbmFsX3B1bmN0KGlu bmVyLCAnLCcpOworKyAgICB0b2tlbjo6cGFyc2VfZW5kKGlubmVyKT87CisrCisrICAgIE9rKEV4 cHI6OlJlbGVhc2UocmVsZWFzZSkpCisrfQorKworK2ZuIHBhcnNlX3NpbmNlKGludHJvZHVjZXI6 ICZJZGVudCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0IHBhcmVuID0g dG9rZW46OnBhcnNlX3BhcmVuKGludHJvZHVjZXIsIGl0ZXIpPzsKKysKKysgICAgbGV0IHJlZiBt dXQgaW5uZXIgPSBpdGVyOjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgYm91bmQgPSBi b3VuZDo6cGFyc2UocGFyZW4sIGlubmVyKT87CisrICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9w dW5jdChpbm5lciwgJywnKTsKKysgICAgdG9rZW46OnBhcnNlX2VuZChpbm5lcik/OworKworKyAg ICBPayhFeHByOjpTaW5jZShib3VuZCkpCisrfQorKworK2ZuIHBhcnNlX2JlZm9yZShpbnRyb2R1 Y2VyOiAmSWRlbnQsIGl0ZXI6IEl0ZXIpIC0+IFJlc3VsdDxFeHByPiB7CisrICAgIGxldCBwYXJl biA9IHRva2VuOjpwYXJzZV9wYXJlbihpbnRyb2R1Y2VyLCBpdGVyKT87CisrCisrICAgIGxldCBy ZWYgbXV0IGlubmVyID0gaXRlcjo6bmV3KHBhcmVuLnN0cmVhbSgpKTsKKysgICAgbGV0IGJvdW5k ID0gYm91bmQ6OnBhcnNlKHBhcmVuLCBpbm5lcik/OworKyAgICB0b2tlbjo6cGFyc2Vfb3B0aW9u YWxfcHVuY3QoaW5uZXIsICcsJyk7CisrICAgIHRva2VuOjpwYXJzZV9lbmQoaW5uZXIpPzsKKysK KysgICAgT2soRXhwcjo6QmVmb3JlKGJvdW5kKSkKKyt9CisrCisrZm4gcGFyc2Vfbm90KGludHJv ZHVjZXI6ICZJZGVudCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0IHBh cmVuID0gdG9rZW46OnBhcnNlX3BhcmVuKGludHJvZHVjZXIsIGl0ZXIpPzsKKysKKysgICAgbGV0 IHJlZiBtdXQgaW5uZXIgPSBpdGVyOjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgZXhw ciA9IHNlbGY6OnBhcnNlKGlubmVyKT87CisrICAgIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wdW5j dChpbm5lciwgJywnKTsKKysgICAgdG9rZW46OnBhcnNlX2VuZChpbm5lcik/OworKworKyAgICBP ayhFeHByOjpOb3QoQm94OjpuZXcoZXhwcikpKQorK30KKysKKytmbiBwYXJzZV9hbnkoaW50cm9k dWNlcjogJklkZW50LCBpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8RXhwcj4geworKyAgICBsZXQgcGFy ZW4gPSB0b2tlbjo6cGFyc2VfcGFyZW4oaW50cm9kdWNlciwgaXRlcik/OworKworKyAgICBsZXQg cmVmIG11dCBpbm5lciA9IGl0ZXI6Om5ldyhwYXJlbi5zdHJlYW0oKSk7CisrICAgIGxldCBleHBy cyA9IHBhcnNlX2NvbW1hX3NlcGFyYXRlZChpbm5lcik/OworKworKyAgICBPayhFeHByOjpBbnko ZXhwcnMuaW50b19pdGVyKCkuY29sbGVjdCgpKSkKKyt9CisrCisrZm4gcGFyc2VfYWxsKGludHJv ZHVjZXI6ICZJZGVudCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PEV4cHI+IHsKKysgICAgbGV0IHBh cmVuID0gdG9rZW46OnBhcnNlX3BhcmVuKGludHJvZHVjZXIsIGl0ZXIpPzsKKysKKysgICAgbGV0 IHJlZiBtdXQgaW5uZXIgPSBpdGVyOjpuZXcocGFyZW4uc3RyZWFtKCkpOworKyAgICBsZXQgZXhw cnMgPSBwYXJzZV9jb21tYV9zZXBhcmF0ZWQoaW5uZXIpPzsKKysKKysgICAgT2soRXhwcjo6QWxs KGV4cHJzLmludG9faXRlcigpLmNvbGxlY3QoKSkpCisrfQorKworK2ZuIHBhcnNlX2NvbW1hX3Nl cGFyYXRlZChpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8VmVjPEV4cHI+PiB7CisrICAgIGxldCBtdXQg ZXhwcnMgPSBWZWM6Om5ldygpOworKworKyAgICB3aGlsZSBpdGVyLnBlZWsoKS5pc19zb21lKCkg eworKyAgICAgICAgbGV0IGV4cHIgPSBzZWxmOjpwYXJzZShpdGVyKT87CisrICAgICAgICBleHBy cy5wdXNoKGV4cHIpOworKyAgICAgICAgaWYgaXRlci5wZWVrKCkuaXNfbm9uZSgpIHsKKysgICAg ICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICAgIHRva2VuOjpwYXJzZV9wdW5jdChp dGVyLCAnLCcpPzsKKysgICAgfQorKworKyAgICBPayhleHBycykKKyt9CitkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvaXRlci5ycyBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vc3JjL2l0ZXIucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rl di9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9pdGVyLnJzCitA QCAtMCwwICsxLDQyIEBACisrdXNlIHByb2NfbWFjcm86Ont0b2tlbl9zdHJlYW0sIERlbGltaXRl ciwgVG9rZW5TdHJlYW0sIFRva2VuVHJlZX07CisrCisrcHViIHR5cGUgSXRlcjwnYT4gPSAmJ2Eg bXV0IEl0ZXJJbXBsOworKworK3B1YiBzdHJ1Y3QgSXRlckltcGwgeworKyAgICBzdGFjazogVmVj PHRva2VuX3N0cmVhbTo6SW50b0l0ZXI+LAorKyAgICBwZWVrZWQ6IE9wdGlvbjxUb2tlblRyZWU+ LAorK30KKysKKytwdWIgZm4gbmV3KHRva2VuczogVG9rZW5TdHJlYW0pIC0+IEl0ZXJJbXBsIHsK KysgICAgSXRlckltcGwgeworKyAgICAgICAgc3RhY2s6IHZlYyFbdG9rZW5zLmludG9faXRlcigp XSwKKysgICAgICAgIHBlZWtlZDogTm9uZSwKKysgICAgfQorK30KKysKKytpbXBsIEl0ZXJJbXBs IHsKKysgICAgcHViIGZuIHBlZWsoJm11dCBzZWxmKSAtPiBPcHRpb248JlRva2VuVHJlZT4gewor KyAgICAgICAgc2VsZi5wZWVrZWQgPSBzZWxmLm5leHQoKTsKKysgICAgICAgIHNlbGYucGVla2Vk LmFzX3JlZigpCisrICAgIH0KKyt9CisrCisraW1wbCBJdGVyYXRvciBmb3IgSXRlckltcGwgewor KyAgICB0eXBlIEl0ZW0gPSBUb2tlblRyZWU7CisrCisrICAgIGZuIG5leHQoJm11dCBzZWxmKSAt PiBPcHRpb248U2VsZjo6SXRlbT4geworKyAgICAgICAgaWYgbGV0IFNvbWUodHQpID0gc2VsZi5w ZWVrZWQudGFrZSgpIHsKKysgICAgICAgICAgICByZXR1cm4gU29tZSh0dCk7CisrICAgICAgICB9 CisrICAgICAgICBsb29wIHsKKysgICAgICAgICAgICBsZXQgdG9wID0gc2VsZi5zdGFjay5sYXN0 X211dCgpPzsKKysgICAgICAgICAgICBtYXRjaCB0b3AubmV4dCgpIHsKKysgICAgICAgICAgICAg ICAgTm9uZSA9PiBkcm9wKHNlbGYuc3RhY2sucG9wKCkpLAorKyAgICAgICAgICAgICAgICBTb21l KFRva2VuVHJlZTo6R3JvdXAocmVmIGdyb3VwKSkgaWYgZ3JvdXAuZGVsaW1pdGVyKCkgPT0gRGVs aW1pdGVyOjpOb25lID0+IHsKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhY2sucHVzaChn cm91cC5zdHJlYW0oKS5pbnRvX2l0ZXIoKSk7CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAg ICAgICAgICAgU29tZSh0dCkgPT4gcmV0dXJuIFNvbWUodHQpLAorKyAgICAgICAgICAgIH0KKysg ICAgICAgIH0KKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3NyYy9saWIucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9saWIu cnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy9saWIucnMKK0BAIC0wLDAgKzEsMjgxIEBACisrLy8hIFsh W2dpdGh1Yl1dKGh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3J1c3R2ZXJzaW9uKSZlbnNwO1sh W2NyYXRlcy1pb11dKGh0dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9ydXN0dmVyc2lvbikmZW5zcDtb IVtkb2NzLXJzXV0oaHR0cHM6Ly9kb2NzLnJzL3J1c3R2ZXJzaW9uKQorKy8vIQorKy8vISBbZ2l0 aHViXTogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9naXRodWItOGRhMGNiP3N0eWxlPWZv ci10aGUtYmFkZ2UmbGFiZWxDb2xvcj01NTU1NTUmbG9nbz1naXRodWIKKysvLyEgW2NyYXRlcy1p b106IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvY3JhdGVzLmlvLWZjOGQ2Mj9zdHlsZT1m b3ItdGhlLWJhZGdlJmxhYmVsQ29sb3I9NTU1NTU1JmxvZ289cnVzdAorKy8vISBbZG9jcy1yc106 IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvZG9jcy5ycy02NmMyYTU/c3R5bGU9Zm9yLXRo ZS1iYWRnZSZsYWJlbENvbG9yPTU1NTU1NSZsb2dvPWRvY3MucnMKKysvLyEKKysvLyEgPGJyPgor Ky8vIQorKy8vISBUaGlzIGNyYXRlIHByb3ZpZGVzIG1hY3JvcyBmb3IgY29uZGl0aW9uYWwgY29t cGlsYXRpb24gYWNjb3JkaW5nIHRvIHJ1c3RjCisrLy8hIGNvbXBpbGVyIHZlcnNpb24sIGFuYWxv Z291cyB0byBbYCNbY2ZnKC4uLildYF1bY2ZnXSBhbmQKKysvLyEgW2AjW2NmZ19hdHRyKC4uLild YF1bY2ZnX2F0dHJdLgorKy8vIQorKy8vISBbY2ZnXTogaHR0cHM6Ly9kb2MucnVzdC1sYW5nLm9y Zy9yZWZlcmVuY2UvY29uZGl0aW9uYWwtY29tcGlsYXRpb24uaHRtbCN0aGUtY2ZnLWF0dHJpYnV0 ZQorKy8vISBbY2ZnX2F0dHJdOiBodHRwczovL2RvYy5ydXN0LWxhbmcub3JnL3JlZmVyZW5jZS9j b25kaXRpb25hbC1jb21waWxhdGlvbi5odG1sI3RoZS1jZmdfYXR0ci1hdHRyaWJ1dGUKKysvLyEK KysvLyEgPGJyPgorKy8vIQorKy8vISAjIFNlbGVjdG9ycworKy8vIQorKy8vISAtIDxwIHN0eWxl PSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBz dHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246OnN0YWJsZV08L2NvZGU+PC9iPgor Ky8vISAgIOKAlDxicj4KKysvLyEgICBUcnVlIG9uIGFueSBzdGFibGUgY29tcGlsZXIuCisrLy8h ICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5k ZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVz dHZlcnNpb246OnN0YWJsZSgxLjM0KV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEg ICBUcnVlIG9uIGV4YWN0bHkgdGhlIHNwZWNpZmllZCBzdGFibGUgY29tcGlsZXIuCisrLy8hICAg PC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50 Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZl cnNpb246OmJldGFdPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgVHJ1ZSBvbiBh bnkgYmV0YSBjb21waWxlci4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1h cmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxl PSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lvbjo6bmlnaHRseV08L2NvZGU+PC9iPgorKy8v ISAgIOKAlDxicj4KKysvLyEgICBUcnVlIG9uIGFueSBuaWdodGx5IGNvbXBpbGVyIG9yIGRldiBi dWlsZC4KKysvLyEgICA8L3A+CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUw cHg7dGV4dC1pbmRlbnQ6LTUwcHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5Omlu bGluZSI+I1tydXN0dmVyc2lvbjo6bmlnaHRseSgyMDI1LTAxLTAxKV08L2NvZGU+PC9iPgorKy8v ISAgIOKAlDxicj4KKysvLyEgICBUcnVlIG9uIGV4YWN0bHkgb25lIG5pZ2h0bHkuCisrLy8hICAg PC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50 Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZl cnNpb246OnNpbmNlKDEuMzQpXTwvY29kZT48L2I+CisrLy8hICAg4oCUPGJyPgorKy8vISAgIFRy dWUgb24gdGhhdCBzdGFibGUgcmVsZWFzZSBhbmQgYW55IGxhdGVyIGNvbXBpbGVyLCBpbmNsdWRp bmcgYmV0YSBhbmQKKysvLyEgICBuaWdodGx5LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8 cCBzdHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+ PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjpzaW5jZSgyMDI1LTAx LTAxKV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBUcnVlIG9uIHRoYXQgbmln aHRseSBhbmQgYWxsIG5ld2VyIG9uZXMuCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0 eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29k ZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246OmJlZm9yZSg8L2NvZGU+PC9i PjxpPnZlcnNpb24gb3IgZGF0ZTwvaT48Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPild PC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgTmVnYXRpdmUgb2YgPGk+I1tydXN0 dmVyc2lvbjo6c2luY2UoLi4uKV08L2k+LgorKy8vISAgIDwvcD4KKysvLyEKKysvLyEgLSA8cCBz dHlsZT0ibWFyZ2luLWxlZnQ6NTBweDt0ZXh0LWluZGVudDotNTBweCI+CisrLy8hICAgPGI+PGNv ZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4jW3J1c3R2ZXJzaW9uOjpub3QoPC9jb2RlPjwvYj48 aT5zZWxlY3RvcjwvaT48Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPildPC9jb2RlPjwv Yj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAgTmVnYXRpdmUgb2YgYW55IHNlbGVjdG9yOyBmb3Ig ZXhhbXBsZSA8aT4jW3J1c3R2ZXJzaW9uOjpub3QobmlnaHRseSldPC9pPi4KKysvLyEgICA8L3A+ CisrLy8hCisrLy8hIC0gPHAgc3R5bGU9Im1hcmdpbi1sZWZ0OjUwcHg7dGV4dC1pbmRlbnQ6LTUw cHgiPgorKy8vISAgIDxiPjxjb2RlIHN0eWxlPSJkaXNwbGF5OmlubGluZSI+I1tydXN0dmVyc2lv bjo6YW55KDwvY29kZT48L2I+PGk+c2VsZWN0b3JzLi4uPC9pPjxiPjxjb2RlIHN0eWxlPSJkaXNw bGF5OmlubGluZSI+KV08L2NvZGU+PC9iPgorKy8vISAgIOKAlDxicj4KKysvLyEgICBUcnVlIGlm IGFueSBvZiB0aGUgY29tbWEtc2VwYXJhdGVkIHNlbGVjdG9ycyBpcyB0cnVlOyBmb3IgZXhhbXBs ZQorKy8vISAgIDxpPiNbcnVzdHZlcnNpb246OmFueShzdGFibGUsIGJldGEpXTwvaT4uCisrLy8h ICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJnaW4tbGVmdDo1MHB4O3RleHQtaW5k ZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiNbcnVz dHZlcnNpb246OmFsbCg8L2NvZGU+PC9iPjxpPnNlbGVjdG9ycy4uLjwvaT48Yj48Y29kZSBzdHls ZT0iZGlzcGxheTppbmxpbmUiPildPC9jb2RlPjwvYj4KKysvLyEgICDigJQ8YnI+CisrLy8hICAg VHJ1ZSBpZiBhbGwgb2YgdGhlIGNvbW1hLXNlcGFyYXRlZCBzZWxlY3RvcnMgYXJlIHRydWU7IGZv ciBleGFtcGxlCisrLy8hICAgPGk+I1tydXN0dmVyc2lvbjo6YWxsKHNpbmNlKDEuMzEpLCBiZWZv cmUoMS4zNCkpXTwvaT4uCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJn aW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0i ZGlzcGxheTppbmxpbmUiPiNbcnVzdHZlcnNpb246OmF0dHIoPC9jb2RlPjwvYj48aT5zZWxlY3Rv cjwvaT48Yj48Y29kZSBzdHlsZT0iZGlzcGxheTppbmxpbmUiPiwgPC9jb2RlPjwvYj48aT5hdHRy aWJ1dGU8L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4pXTwvY29kZT48L2I+Cisr Ly8hICAg4oCUPGJyPgorKy8vISAgIEZvciBjb25kaXRpb25hbCBpbmNsdXNpb24gb2YgYXR0cmli dXRlczsgYW5hbG9nb3VzIHRvCisrLy8hICAgPGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj5j ZmdfYXR0cjwvY29kZT4uCisrLy8hICAgPC9wPgorKy8vIQorKy8vISAtIDxwIHN0eWxlPSJtYXJn aW4tbGVmdDo1MHB4O3RleHQtaW5kZW50Oi01MHB4Ij4KKysvLyEgICA8Yj48Y29kZSBzdHlsZT0i ZGlzcGxheTppbmxpbmUiPnJ1c3R2ZXJzaW9uOjpjZmchKDwvY29kZT48L2I+PGk+c2VsZWN0b3I8 L2k+PGI+PGNvZGUgc3R5bGU9ImRpc3BsYXk6aW5saW5lIj4pPC9jb2RlPjwvYj4KKysvLyEgICDi gJQ8YnI+CisrLy8hICAgQW4gZXhwcmVzc2lvbiBmb3JtIG9mIGFueSBvZiB0aGUgYWJvdmUgYXR0 cmlidXRlczsgZm9yIGV4YW1wbGUKKysvLyEgICA8aT5pZiBydXN0dmVyc2lvbjo6Y2ZnIShhbnko c3RhYmxlLCBiZXRhKSkgeyAuLi4gfTwvaT4uCisrLy8hICAgPC9wPgorKy8vIQorKy8vISA8YnI+ CisrLy8hCisrLy8hICMgVXNlIGNhc2VzCisrLy8hCisrLy8hIFByb3ZpZGluZyBhZGRpdGlvbmFs IHRyYWl0IGltcGxzIGFzIHR5cGVzIGFyZSBzdGFiaWxpemVkIGluIHRoZSBzdGFuZGFyZCBsaWJy YXJ5CisrLy8hIHdpdGhvdXQgYnJlYWtpbmcgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIGNvbXBp bGVyczsgaW4gdGhpcyBjYXNlIFBpblw8UFw+CisrLy8hIHN0YWJpbGl6ZWQgaW4gW1J1c3QgMS4z M11bcGluXToKKysvLyEKKysvLyEgW3Bpbl06IGh0dHBzOi8vYmxvZy5ydXN0LWxhbmcub3JnLzIw MTkvMDIvMjgvUnVzdC0xLjMzLjAuaHRtbCNwaW5uaW5nCisrLy8hCisrLy8hIGBgYAorKy8vISAj IHRyYWl0IE15VHJhaXQge30KKysvLyEgIworKy8vISAjW3J1c3R2ZXJzaW9uOjpzaW5jZSgxLjMz KV0KKysvLyEgdXNlIHN0ZDo6cGluOjpQaW47CisrLy8hCisrLy8hICNbcnVzdHZlcnNpb246OnNp bmNlKDEuMzMpXQorKy8vISBpbXBsPFA6IE15VHJhaXQ+IE15VHJhaXQgZm9yIFBpbjxQPiB7Cisr Ly8hICAgICAvKiAuLi4gKi8KKysvLyEgfQorKy8vISBgYGAKKysvLyEKKysvLyEgU2ltaWxhciBi dXQgZm9yIGxhbmd1YWdlIGZlYXR1cmVzOyB0aGUgYWJpbGl0eSB0byBjb250cm9sIGFsaWdubWVu dCBncmVhdGVyIHRoYW4KKysvLyEgMSBvZiBwYWNrZWQgc3RydWN0cyB3YXMgc3RhYmlsaXplZCBp biBbUnVzdCAxLjMzXVtwYWNrZWRdLgorKy8vIQorKy8vISBbcGFja2VkXTogaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9ydXN0L2Jsb2IvbWFzdGVyL1JFTEVBU0VTLm1kI3ZlcnNpb24tMTMz MC0yMDE5LTAyLTI4CisrLy8hCisrLy8hIGBgYAorKy8vISAjW3J1c3R2ZXJzaW9uOjphdHRyKGJl Zm9yZSgxLjMzKSwgcmVwcihwYWNrZWQpKV0KKysvLyEgI1tydXN0dmVyc2lvbjo6YXR0cihzaW5j ZSgxLjMzKSwgcmVwcihwYWNrZWQoMikpKV0KKysvLyEgc3RydWN0IFNpeChpMTYsIGkzMik7Cisr Ly8hCisrLy8hIGZuIG1haW4oKSB7CisrLy8hICAgICBwcmludGxuISgie30iLCBzdGQ6Om1lbTo6 YWxpZ25fb2Y6OjxTaXg+KCkpOworKy8vISB9CisrLy8hIGBgYAorKy8vIQorKy8vISBBdWdtZW50 aW5nIGNvZGUgd2l0aCBgY29uc3RgIGFzIGNvbnN0IGltcGxzIGFyZSBzdGFiaWxpemVkIGluIHRo ZSBzdGFuZGFyZAorKy8vISBsaWJyYXJ5LiBUaGlzIHVzZSBvZiBgY29uc3RgIGFzIGFuIGF0dHJp YnV0ZSBpcyByZWNvZ25pemVkIGFzIGEgc3BlY2lhbCBjYXNlCisrLy8hIGJ5IHRoZSBydXN0dmVy c2lvbjo6YXR0ciBtYWNyby4KKysvLyEKKysvLyEgYGBgCisrLy8hIHVzZSBzdGQ6OnRpbWU6OkR1 cmF0aW9uOworKy8vIQorKy8vISAjW3J1c3R2ZXJzaW9uOjphdHRyKHNpbmNlKDEuMzIpLCBjb25z dCldCisrLy8hIGZuIGR1cmF0aW9uX2FzX2RheXMoZHVyOiBEdXJhdGlvbikgLT4gdTY0IHsKKysv LyEgICAgIGR1ci5hc19zZWNzKCkgLyA2MCAvIDYwIC8gMjQKKysvLyEgfQorKy8vISBgYGAKKysv LyEKKysvLyEgRW1pdHRpbmcgQ2FyZ28gY2ZnIGRpcmVjdGl2ZXMgZnJvbSBhIGJ1aWxkIHNjcmlw dC4gTm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMKKysvLyEgbGlzdGluZyBgcnVzdHZlcnNpb25gIHVu ZGVyIGBbYnVpbGQtZGVwZW5kZW5jaWVzXWAgaW4gQ2FyZ28udG9tbCwgbm90CisrLy8hIGBbZGVw ZW5kZW5jaWVzXWAuCisrLy8hCisrLy8hIGBgYAorKy8vISAvLyBidWlsZC5ycworKy8vIQorKy8v ISBmbiBtYWluKCkgeworKy8vISAgICAgaWYgcnVzdHZlcnNpb246OmNmZyEoc2luY2UoMS4zNikp IHsKKysvLyEgICAgICAgICBwcmludGxuISgiY2FyZ286cnVzdGMtY2ZnPW5vX3N0ZCIpOworKy8v ISAgICAgfQorKy8vISB9CisrLy8hIGBgYAorKy8vIQorKy8vISBgYGAKKysvLyEgLy8gc3JjL2xp Yi5ycworKy8vIQorKy8vISAjIVtjZmdfYXR0cihub19zdGQsIG5vX3N0ZCldCisrLy8hCisrLy8h ICNbY2ZnKG5vX3N0ZCldCisrLy8hIGV4dGVybiBjcmF0ZSBhbGxvYzsKKysvLyEgYGBgCisrLy8h CisrLy8hIDxicj4KKysKKysjIVtkb2MoaHRtbF9yb290X3VybCA9ICJodHRwczovL2RvY3MucnMv cnVzdHZlcnNpb24vMS4wLjIzIildCisrIyFbYWxsb3coCisrICAgIGNsaXBweTo6Y2FzdF9sb3Nz bGVzcywKKysgICAgY2xpcHB5OjpjYXN0X3Bvc3NpYmxlX3RydW5jYXRpb24sCisrICAgIGNsaXBw eTo6ZGVyaXZlX3BhcnRpYWxfZXFfd2l0aG91dF9lcSwKKysgICAgY2xpcHB5Ojpkb2NfbWFya2Rv d24sCisrICAgIGNsaXBweTo6ZW51bV9nbG9iX3VzZSwKKysgICAgLy8gaHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9ydXN0LWNsaXBweS9pc3N1ZXMvODUzOQorKyAgICBjbGlwcHk6Oml0ZXJf d2l0aF9kcmFpbiwKKysgICAgY2xpcHB5Ojptb2R1bGVfbmFtZV9yZXBldGl0aW9ucywKKysgICAg Y2xpcHB5OjptdXN0X3VzZV9jYW5kaWRhdGUsCisrICAgIGNsaXBweTo6bmVlZGxlc3NfZG9jdGVz dF9tYWluLAorKyAgICBjbGlwcHk6Om5lZWRsZXNzX3Bhc3NfYnlfdmFsdWUsCisrICAgIGNsaXBw eTo6cmVkdW5kYW50X2Vsc2UsCisrICAgIGNsaXBweTo6dG9wbGV2ZWxfcmVmX2FyZywKKysgICAg Y2xpcHB5Ojp1bnJlYWRhYmxlX2xpdGVyYWwKKyspXQorKworK2V4dGVybiBjcmF0ZSBwcm9jX21h Y3JvOworKworK21vZCBhdHRyOworK21vZCBib3VuZDsKKyttb2QgY29uc3RmbjsKKyttb2QgZGF0 ZTsKKyttb2QgZXJyb3I7CisrbW9kIGV4cGFuZDsKKyttb2QgZXhwcjsKKyttb2QgaXRlcjsKKytt b2QgcmVsZWFzZTsKKyttb2QgdGltZTsKKyttb2QgdG9rZW47CisrbW9kIHZlcnNpb247CisrCisr dXNlIGNyYXRlOjplcnJvcjo6RXJyb3I7CisrdXNlIGNyYXRlOjp2ZXJzaW9uOjpWZXJzaW9uOwor K3VzZSBwcm9jX21hY3JvOjpUb2tlblN0cmVhbTsKKysKKysjW2NmZyhub3QoaG9zdF9vcyA9ICJ3 aW5kb3dzIikpXQorK2NvbnN0IFJVU1RWRVJTSU9OOiBWZXJzaW9uID0gaW5jbHVkZSEoY29uY2F0 IShlbnYhKCJPVVRfRElSIiksICIvdmVyc2lvbi5leHByIikpOworKworKyNbY2ZnKGhvc3Rfb3Mg PSAid2luZG93cyIpXQorK2NvbnN0IFJVU1RWRVJTSU9OOiBWZXJzaW9uID0gaW5jbHVkZSEoY29u Y2F0IShlbnYhKCJPVVRfRElSIiksICJcXHZlcnNpb24uZXhwciIpKTsKKysKKysjW3Byb2NfbWFj cm9fYXR0cmlidXRlXQorK3B1YiBmbiBzdGFibGUoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBU b2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNmZygic3RhYmxlIiwg YXJncywgaW5wdXQpCisrfQorKworKyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisrcHViIGZuIGJl dGEoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0g eworKyAgICBleHBhbmQ6OmNmZygiYmV0YSIsIGFyZ3MsIGlucHV0KQorK30KKysKKysjW3Byb2Nf bWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBuaWdodGx5KGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1 dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoIm5pZ2h0 bHkiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisrI1twcm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIg Zm4gc2luY2UoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5T dHJlYW0geworKyAgICBleHBhbmQ6OmNmZygic2luY2UiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisr I1twcm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIgZm4gYmVmb3JlKGFyZ3M6IFRva2VuU3RyZWFt LCBpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgZXhwYW5kOjpjZmco ImJlZm9yZSIsIGFyZ3MsIGlucHV0KQorK30KKysKKysjW3Byb2NfbWFjcm9fYXR0cmlidXRlXQor K3B1YiBmbiBub3QoYXJnczogVG9rZW5TdHJlYW0sIGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9r ZW5TdHJlYW0geworKyAgICBleHBhbmQ6OmNmZygibm90IiwgYXJncywgaW5wdXQpCisrfQorKwor KyNbcHJvY19tYWNyb19hdHRyaWJ1dGVdCisrcHViIGZuIGFueShhcmdzOiBUb2tlblN0cmVhbSwg aW5wdXQ6IFRva2VuU3RyZWFtKSAtPiBUb2tlblN0cmVhbSB7CisrICAgIGV4cGFuZDo6Y2ZnKCJh bnkiLCBhcmdzLCBpbnB1dCkKKyt9CisrCisrI1twcm9jX21hY3JvX2F0dHJpYnV0ZV0KKytwdWIg Zm4gYWxsKGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3Ry ZWFtIHsKKysgICAgZXhwYW5kOjpjZmcoImFsbCIsIGFyZ3MsIGlucHV0KQorK30KKysKKysjW3By b2NfbWFjcm9fYXR0cmlidXRlXQorK3B1YiBmbiBhdHRyKGFyZ3M6IFRva2VuU3RyZWFtLCBpbnB1 dDogVG9rZW5TdHJlYW0pIC0+IFRva2VuU3RyZWFtIHsKKysgICAgYXR0cjo6cGFyc2UoYXJncykK KysgICAgICAgIC5hbmRfdGhlbih8YXJnc3wgZXhwYW5kOjp0cnlfYXR0cihhcmdzLCBpbnB1dCkp CisrICAgICAgICAudW53cmFwX29yX2Vsc2UoRXJyb3I6OmludG9fY29tcGlsZV9lcnJvcikKKyt9 CisrCisrI1tjZmcobm90KGNmZ19tYWNyb19ub3RfYWxsb3dlZCkpXQorKyNbcHJvY19tYWNyb10K KytwdWIgZm4gY2ZnKGlucHV0OiBUb2tlblN0cmVhbSkgLT4gVG9rZW5TdHJlYW0geworKyAgICB1 c2UgcHJvY19tYWNybzo6e0lkZW50LCBTcGFuLCBUb2tlblRyZWV9OworKyAgICAofHwgeworKyAg ICAgICAgbGV0IHJlZiBtdXQgYXJncyA9IGl0ZXI6Om5ldyhpbnB1dCk7CisrICAgICAgICBsZXQg ZXhwciA9IGV4cHI6OnBhcnNlKGFyZ3MpPzsKKysgICAgICAgIHRva2VuOjpwYXJzZV9lbmQoYXJn cyk/OworKyAgICAgICAgbGV0IGJvb2xlYW4gPSBleHByLmV2YWwoUlVTVFZFUlNJT04pOworKyAg ICAgICAgbGV0IGlkZW50ID0gSWRlbnQ6Om5ldygmYm9vbGVhbi50b19zdHJpbmcoKSwgU3Bhbjo6 Y2FsbF9zaXRlKCkpOworKyAgICAgICAgT2soVG9rZW5TdHJlYW06OmZyb20oVG9rZW5UcmVlOjpJ ZGVudChpZGVudCkpKQorKyAgICB9KSgpCisrICAgIC51bndyYXBfb3JfZWxzZShFcnJvcjo6aW50 b19jb21waWxlX2Vycm9yKQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3NyYy9yZWxlYXNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMv cmVsZWFzZS5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3JlbGVhc2UucnMKK0BAIC0wLDAgKzEsMzQg QEAKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNlIGNyYXRlOjppdGVy OjpJdGVyOworK3VzZSBjcmF0ZTo6dG9rZW47CisrdXNlIHByb2NfbWFjcm86Okdyb3VwOworKwor KyNbZGVyaXZlKENvcHksIENsb25lLCBEZWJ1ZywgUGFydGlhbEVxLCBFcSwgUGFydGlhbE9yZCwg T3JkKV0KKytwdWIgc3RydWN0IFJlbGVhc2UgeworKyAgICBwdWIgbWlub3I6IHUxNiwKKysgICAg cHViIHBhdGNoOiBPcHRpb248dTE2PiwKKyt9CisrCisrcHViIGZuIHBhcnNlKHBhcmVuOiBHcm91 cCwgaXRlcjogSXRlcikgLT4gUmVzdWx0PFJlbGVhc2U+IHsKKysgICAgdHJ5X3BhcnNlKGl0ZXIp Lm1hcF9lcnIofCgpfCBFcnJvcjo6Z3JvdXAocGFyZW4sICJleHBlY3RlZCBydXN0YyByZWxlYXNl IG51bWJlciwgbGlrZSAxLjMxIikpCisrfQorKworK2ZuIHRyeV9wYXJzZShpdGVyOiBJdGVyKSAt PiBSZXN1bHQ8UmVsZWFzZSwgKCk+IHsKKysgICAgbGV0IG1ham9yX21pbm9yID0gdG9rZW46OnBh cnNlX2xpdGVyYWwoaXRlcikubWFwX2Vycihkcm9wKT87CisrICAgIGxldCBzdHJpbmcgPSBtYWpv cl9taW5vci50b19zdHJpbmcoKTsKKysKKysgICAgaWYgIXN0cmluZy5zdGFydHNfd2l0aCgiMS4i KSB7CisrICAgICAgICByZXR1cm4gRXJyKCgpKTsKKysgICAgfQorKworKyAgICBsZXQgbWlub3I6 IHUxNiA9IHN0cmluZ1syLi5dLnBhcnNlKCkubWFwX2Vycihkcm9wKT87CisrCisrICAgIGxldCBw YXRjaCA9IGlmIHRva2VuOjpwYXJzZV9vcHRpb25hbF9wdW5jdChpdGVyLCAnLicpLmlzX3NvbWUo KSB7CisrICAgICAgICBsZXQgaW50ID0gdG9rZW46OnBhcnNlX2xpdGVyYWwoaXRlcikubWFwX2Vy cihkcm9wKT87CisrICAgICAgICBTb21lKGludC50b19zdHJpbmcoKS5wYXJzZSgpLm1hcF9lcnIo ZHJvcCk/KQorKyAgICB9IGVsc2UgeworKyAgICAgICAgTm9uZQorKyAgICB9OworKworKyAgICBP ayhSZWxlYXNlIHsgbWlub3IsIHBhdGNoIH0pCisrfQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5 L3J1c3QvcnVzdHZlcnNpb24vc3JjL3RpbWUucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJz aW9uL3NyYy90aW1lLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdGltZS5ycworQEAgLTAsMCArMSw1 MSBAQAorK3VzZSBjcmF0ZTo6ZGF0ZTo6RGF0ZTsKKyt1c2Ugc3RkOjplbnY7CisrdXNlIHN0ZDo6 dGltZTo6e1N5c3RlbVRpbWUsIFVOSVhfRVBPQ0h9OworKworKy8vIFRpbWVzdGFtcCBvZiAyMDE2 LTAzLTAxIDAwOjAwOjAwIGluIFVUQy4KKytjb25zdCBCQVNFOiB1NjQgPSAxNDU2NzkwNDAwOwor K2NvbnN0IEJBU0VfWUVBUjogdTE2ID0gMjAxNjsKKytjb25zdCBCQVNFX01PTlRIOiB1OCA9IDM7 CisrCisrLy8gRGF5cyBiZXR3ZWVuIGxlYXAgZGF5cy4KKytjb25zdCBDWUNMRTogdTY0ID0gMzY1 ICogNCArIDE7CisrCisrY29uc3QgREFZU19CWV9NT05USDogW3U4OyAxMl0gPSBbMzEsIDI4LCAz MSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07CisrCisrcHViIGZuIHRvZGF5 KCkgLT4gRGF0ZSB7CisrICAgIGxldCBkZWZhdWx0ID0gRGF0ZSB7CisrICAgICAgICB5ZWFyOiAy MDI1LAorKyAgICAgICAgbW9udGg6IDIsCisrICAgICAgICBkYXk6IDI1LAorKyAgICB9OworKyAg ICB0cnlfdG9kYXkoKS51bndyYXBfb3IoZGVmYXVsdCkKKyt9CisrCisrZm4gdHJ5X3RvZGF5KCkg LT4gT3B0aW9uPERhdGU+IHsKKysgICAgaWYgbGV0IFNvbWUocGtnX25hbWUpID0gZW52Ojp2YXJf b3MoIkNBUkdPX1BLR19OQU1FIikgeworKyAgICAgICAgaWYgcGtnX25hbWUudG9fc3RyKCkgPT0g U29tZSgicnVzdHZlcnNpb24tdGVzdHMiKSB7CisrICAgICAgICAgICAgcmV0dXJuIE5vbmU7IC8v IFN0YWJsZSBkYXRlIGZvciB1aSB0ZXN0aW5nLgorKyAgICAgICAgfQorKyAgICB9CisrCisrICAg IGxldCBub3cgPSBTeXN0ZW1UaW1lOjpub3coKTsKKysgICAgbGV0IHNpbmNlX2Vwb2NoID0gbm93 LmR1cmF0aW9uX3NpbmNlKFVOSVhfRVBPQ0gpLm9rKCk/OworKyAgICBsZXQgc2VjcyA9IHNpbmNl X2Vwb2NoLmFzX3NlY3MoKTsKKysKKysgICAgbGV0IGFwcHJveF9kYXlzID0gc2Vjcy5jaGVja2Vk X3N1YihCQVNFKT8gLyA2MCAvIDYwIC8gMjQ7CisrICAgIGxldCBjeWNsZSA9IGFwcHJveF9kYXlz IC8gQ1lDTEU7CisrICAgIGxldCBtdXQgcmVtID0gYXBwcm94X2RheXMgJSBDWUNMRTsKKysKKysg ICAgbGV0IG11dCB5ZWFyID0gQkFTRV9ZRUFSICsgY3ljbGUgYXMgdTE2ICogNDsKKysgICAgbGV0 IG11dCBtb250aCA9IEJBU0VfTU9OVEg7CisrICAgIGxvb3AgeworKyAgICAgICAgbGV0IGRheXNf aW5fbW9udGggPSBEQVlTX0JZX01PTlRIW21vbnRoIGFzIHVzaXplIC0gMV07CisrICAgICAgICBp ZiByZW0gPCBkYXlzX2luX21vbnRoIGFzIHU2NCB7CisrICAgICAgICAgICAgbGV0IGRheSA9IHJl bSBhcyB1OCArIDE7CisrICAgICAgICAgICAgcmV0dXJuIFNvbWUoRGF0ZSB7IHllYXIsIG1vbnRo LCBkYXkgfSk7CisrICAgICAgICB9CisrICAgICAgICByZW0gLT0gZGF5c19pbl9tb250aCBhcyB1 NjQ7CisrICAgICAgICB5ZWFyICs9IChtb250aCA9PSAxMikgYXMgdTE2OworKyAgICAgICAgbW9u dGggPSBtb250aCAlIDEyICsgMTsKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy90b2tlbi5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vc3JjL3Rva2VuLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAor KysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi9zcmMvdG9rZW4ucnMKK0BAIC0wLDAg KzEsNzggQEAKKyt1c2UgY3JhdGU6OmVycm9yOjp7RXJyb3IsIFJlc3VsdH07CisrdXNlIGNyYXRl OjppdGVyOjpJdGVyOworK3VzZSBwcm9jX21hY3JvOjp7RGVsaW1pdGVyLCBHcm91cCwgSWRlbnQs IExpdGVyYWwsIFNwYW4sIFRva2VuVHJlZX07CisrCisrcHViIGZuIHBhcnNlX3B1bmN0KGl0ZXI6 IEl0ZXIsIGNoOiBjaGFyKSAtPiBSZXN1bHQ8KCk+IHsKKysgICAgbWF0Y2ggaXRlci5uZXh0KCkg eworKyAgICAgICAgU29tZShUb2tlblRyZWU6OlB1bmN0KHJlZiBwdW5jdCkpIGlmIHB1bmN0LmFz X2NoYXIoKSA9PSBjaCA9PiBPaygoKSksCisrICAgICAgICB1bmV4cGVjdGVkID0+IHsKKysgICAg ICAgICAgICBsZXQgc3BhbiA9IHVuZXhwZWN0ZWQKKysgICAgICAgICAgICAgICAgLmFzX3JlZigp CisrICAgICAgICAgICAgICAgIC5tYXBfb3JfZWxzZShTcGFuOjpjYWxsX3NpdGUsIFRva2VuVHJl ZTo6c3Bhbik7CisrICAgICAgICAgICAgRXJyKEVycm9yOjpuZXcoc3BhbiwgZm9ybWF0ISgiZXhw ZWN0ZWQgYHt9YCIsIGNoKSkpCisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrcHViIGZuIHBh cnNlX29wdGlvbmFsX3B1bmN0KGl0ZXI6IEl0ZXIsIGNoOiBjaGFyKSAtPiBPcHRpb248KCk+IHsK KysgICAgbWF0Y2ggaXRlci5wZWVrKCkgeworKyAgICAgICAgU29tZShUb2tlblRyZWU6OlB1bmN0 KHB1bmN0KSkgaWYgcHVuY3QuYXNfY2hhcigpID09IGNoID0+IGl0ZXIubmV4dCgpLm1hcChkcm9w KSwKKysgICAgICAgIF8gPT4gTm9uZSwKKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2Vfb3B0 aW9uYWxfa2V5d29yZChpdGVyOiBJdGVyLCBrZXl3b3JkOiAmc3RyKSAtPiBPcHRpb248U3Bhbj4g eworKyAgICBtYXRjaCBpdGVyLnBlZWsoKSB7CisrICAgICAgICBTb21lKFRva2VuVHJlZTo6SWRl bnQoaWRlbnQpKSBpZiBpZGVudC50b19zdHJpbmcoKSA9PSBrZXl3b3JkID0+IHsKKysgICAgICAg ICAgICBTb21lKGl0ZXIubmV4dCgpLnVud3JhcCgpLnNwYW4oKSkKKysgICAgICAgIH0KKysgICAg ICAgIF8gPT4gTm9uZSwKKysgICAgfQorK30KKysKKytwdWIgZm4gcGFyc2VfbGl0ZXJhbChpdGVy OiBJdGVyKSAtPiBSZXN1bHQ8TGl0ZXJhbD4geworKyAgICBtYXRjaCBpdGVyLm5leHQoKSB7Cisr ICAgICAgICBTb21lKFRva2VuVHJlZTo6TGl0ZXJhbChsaXRlcmFsKSkgPT4gT2sobGl0ZXJhbCks CisrICAgICAgICB1bmV4cGVjdGVkID0+IHsKKysgICAgICAgICAgICBsZXQgc3BhbiA9IHVuZXhw ZWN0ZWQKKysgICAgICAgICAgICAgICAgLmFzX3JlZigpCisrICAgICAgICAgICAgICAgIC5tYXBf b3JfZWxzZShTcGFuOjpjYWxsX3NpdGUsIFRva2VuVHJlZTo6c3Bhbik7CisrICAgICAgICAgICAg RXJyKEVycm9yOjpuZXcoc3BhbiwgImV4cGVjdGVkIGxpdGVyYWwiKSkKKysgICAgICAgIH0KKysg ICAgfQorK30KKysKKytwdWIgZm4gcGFyc2VfcGFyZW4oaW50cm9kdWNlcjogJklkZW50LCBpdGVy OiBJdGVyKSAtPiBSZXN1bHQ8R3JvdXA+IHsKKysgICAgbWF0Y2ggaXRlci5wZWVrKCkgeworKyAg ICAgICAgU29tZShUb2tlblRyZWU6Okdyb3VwKGdyb3VwKSkgaWYgZ3JvdXAuZGVsaW1pdGVyKCkg PT0gRGVsaW1pdGVyOjpQYXJlbnRoZXNpcyA9PiB7CisrICAgICAgICAgICAgbWF0Y2ggaXRlci5u ZXh0KCkgeworKyAgICAgICAgICAgICAgICBTb21lKFRva2VuVHJlZTo6R3JvdXAoZ3JvdXApKSA9 PiBPayhncm91cCksCisrICAgICAgICAgICAgICAgIF8gPT4gdW5yZWFjaGFibGUhKCksCisrICAg ICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgU29tZSh1bmV4cGVjdGVkKSA9PiBFcnIo RXJyb3I6Om5ldyh1bmV4cGVjdGVkLnNwYW4oKSwgImV4cGVjdGVkIGAoYCIpKSwKKysgICAgICAg IE5vbmUgPT4gRXJyKEVycm9yOjpuZXcoCisrICAgICAgICAgICAgaW50cm9kdWNlci5zcGFuKCks CisrICAgICAgICAgICAgZm9ybWF0ISgiZXhwZWN0ZWQgYChgIGFmdGVyIGB7fWAiLCBpbnRyb2R1 Y2VyKSwKKysgICAgICAgICkpLAorKyAgICB9CisrfQorKworK3B1YiBmbiBwYXJzZV9vcHRpb25h bF9wYXJlbihpdGVyOiBJdGVyKSAtPiBPcHRpb248R3JvdXA+IHsKKysgICAgbWF0Y2ggaXRlci5w ZWVrKCkgeworKyAgICAgICAgU29tZShUb2tlblRyZWU6Okdyb3VwKGdyb3VwKSkgaWYgZ3JvdXAu ZGVsaW1pdGVyKCkgPT0gRGVsaW1pdGVyOjpQYXJlbnRoZXNpcyA9PiB7CisrICAgICAgICAgICAg bWF0Y2ggaXRlci5uZXh0KCkgeworKyAgICAgICAgICAgICAgICBTb21lKFRva2VuVHJlZTo6R3Jv dXAoZ3JvdXApKSA9PiBTb21lKGdyb3VwKSwKKysgICAgICAgICAgICAgICAgXyA9PiB1bnJlYWNo YWJsZSEoKSwKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAgICAgICBfID0+IE5vbmUs CisrICAgIH0KKyt9CisrCisrcHViIGZuIHBhcnNlX2VuZChpdGVyOiBJdGVyKSAtPiBSZXN1bHQ8 KCk+IHsKKysgICAgbWF0Y2ggaXRlci5uZXh0KCkgeworKyAgICAgICAgTm9uZSA9PiBPaygoKSks CisrICAgICAgICBTb21lKHVuZXhwZWN0ZWQpID0+IEVycihFcnJvcjo6bmV3KHVuZXhwZWN0ZWQu c3BhbigpLCAidW5leHBlY3RlZCB0b2tlbiIpKSwKKysgICAgfQorK30KK2RpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3NyYy92ZXJzaW9uLnJzIGIvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi9zcmMvdmVyc2lvbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0t LSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vc3JjL3ZlcnNp b24ucnMKK0BAIC0wLDAgKzEsMTggQEAKKysjIVthbGxvdyhkZWFkX2NvZGUpXQorKworK3VzZSBj cmF0ZTo6ZGF0ZTo6RGF0ZTsKKysKKysjW2Rlcml2ZShDb3B5LCBDbG9uZSwgRGVidWcsIFBhcnRp YWxFcSldCisrcHViIHN0cnVjdCBWZXJzaW9uIHsKKysgICAgcHViIG1pbm9yOiB1MTYsCisrICAg IHB1YiBwYXRjaDogdTE2LAorKyAgICBwdWIgY2hhbm5lbDogQ2hhbm5lbCwKKyt9CisrCisrI1tk ZXJpdmUoQ29weSwgQ2xvbmUsIERlYnVnLCBQYXJ0aWFsRXEpXQorK3B1YiBlbnVtIENoYW5uZWwg eworKyAgICBTdGFibGUsCisrICAgIEJldGEsCisrICAgIE5pZ2h0bHkoRGF0ZSksCisrICAgIERl diwKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy9j b21waWxldGVzdC5ycyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvY29tcGls ZXRlc3QucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGly ZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL2NvbXBpbGV0ZXN0LnJzCitAQCAtMCwwICsx LDcgQEAKKysjW3J1c3R2ZXJzaW9uOjphdHRyKG5vdChuaWdodGx5KSwgaWdub3JlID0gInJlcXVp cmVzIG5pZ2h0bHkiKV0KKysjW2NmZ19hdHRyKG1pcmksIGlnbm9yZSA9ICJpbmNvbXBhdGlibGUg d2l0aCBtaXJpIildCisrI1t0ZXN0XQorK2ZuIHVpKCkgeworKyAgICBsZXQgdCA9IHRyeWJ1aWxk OjpUZXN0Q2FzZXM6Om5ldygpOworKyAgICB0LmNvbXBpbGVfZmFpbCgidGVzdHMvdWkvKi5ycyIp OworK30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rl c3RfY29uc3QucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfY29u c3QucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfY29uc3QucnMKK0BAIC0wLDAgKzEsNDIg QEAKKysjIVthbGxvdygKKysgICAgY2xpcHB5OjpzZW1pY29sb25faWZfbm90aGluZ19yZXR1cm5l ZCwgLy8gaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0LWNsaXBweS9pc3N1ZXMvNzMy NAorKyAgICBjbGlwcHk6OnVzZWRfdW5kZXJzY29yZV9pdGVtcywKKyspXQorKworKyNbcnVzdHZl cnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKytmbiBfYmFzaWMoKSB7fQorK2NvbnN0IF9CQVNJ QzogKCkgPSBfYmFzaWMoKTsKKysKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCld CisrdW5zYWZlIGZuIF91bnNhZmUoKSB7fQorK2NvbnN0IF9VTlNBRkU6ICgpID0gdW5zYWZlIHsg X3Vuc2FmZSgpIH07CisrCisrbWFjcm9fcnVsZXMhIGl0ZW0geworKyAgICAoJGk6aXRlbSkgPT4g eworKyAgICAgICAgI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwgY29uc3QpXQorKyAgICAgICAg JGkKKysgICAgfTsKKyt9CisrCisraXRlbSEge2ZuIF9pdGVtKCkge319CisrY29uc3QgX0lURU06 ICgpID0gX2l0ZW0oKTsKKysKKyttYWNyb19ydWxlcyEgaWRlbnQgeworKyAgICAoJGZuOmlkZW50 KSA9PiB7CisrICAgICAgICAjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisrICAg ICAgICAkZm4gX2lkZW50KCkge30KKysgICAgfTsKKyt9CisrCisraWRlbnQhIHtmbn0KKytjb25z dCBfSURFTlQ6ICgpID0gX2lkZW50KCk7CisrCisrI1tydXN0dmVyc2lvbjo6YXR0cihhbGwoKSwg Y29uc3QpXQorKy8vLyBkb2MKKytmbiBfZG9jX2JlbG93KCkge30KKytjb25zdCBfRE9DX0JFTE9X OiAoKSA9IF9kb2NfYmVsb3coKTsKKysKKysvLy8gZG9jCisrI1tydXN0dmVyc2lvbjo6YXR0cihh bGwoKSwgY29uc3QpXQorK2ZuIF9kb2NfYWJvdmUoKSB7fQorK2NvbnN0IF9ET0NfQUJPVkU6ICgp ID0gX2RvY19hYm92ZSgpOworZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vdGVzdHMvdGVzdF9ldmFsLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0 cy90ZXN0X2V2YWwucnMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysg Yi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3Rlc3RfZXZhbC5ycworQEAgLTAs MCArMSwyMCBAQAorKyNbcnVzdHZlcnNpb246OmFueSgKKysgICAgc3RhYmxlLAorKyAgICBzdGFi bGUoMS4zNCksCisrICAgIHN0YWJsZSgxLjM0LjApLAorKyAgICBiZXRhLAorKyAgICBuaWdodGx5 LAorKyAgICBuaWdodGx5KDIwMjAtMDItMjUpLAorKyAgICBzaW5jZSgxLjM0KSwKKysgICAgc2lu Y2UoMjAyMC0wMi0yNSksCisrICAgIGJlZm9yZSgxLjM0KSwKKysgICAgYmVmb3JlKDIwMjAtMDIt MjUpLAorKyAgICBub3QobmlnaHRseSksCisrICAgIGFsbChzdGFibGUsIGJldGEsIG5pZ2h0bHkp LAorKyldCisrZm4gc3VjY2VzcygpIHt9CisrCisrI1t0ZXN0XQorK2ZuIHRlc3QoKSB7CisrICAg IHN1Y2Nlc3MoKTsKKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lv bi90ZXN0cy90ZXN0X3BhcnNlLnJzIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0 cy90ZXN0X3BhcnNlLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysr IGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy90ZXN0X3BhcnNlLnJzCitAQCAt MCwwICsxLDEwMyBAQAorKyMhW2FsbG93KAorKyAgICBjbGlwcHk6OmRlcml2ZV9wYXJ0aWFsX2Vx X3dpdGhvdXRfZXEsCisrICAgIGNsaXBweTo6ZW51bV9nbG9iX3VzZSwKKysgICAgY2xpcHB5Ojpt dXN0X3VzZV9jYW5kaWRhdGUKKyspXQorKworK2luY2x1ZGUhKCIuLi9idWlsZC9ydXN0Yy5ycyIp OworKworKyNbdGVzdF0KKytmbiB0ZXN0X3BhcnNlKCkgeworKyAgICBsZXQgY2FzZXMgPSAmWwor KyAgICAgICAgKAorKyAgICAgICAgICAgICJydXN0YyAxLjAuMCAoYTU5ZGUzN2U5IDIwMTUtMDUt MTMpIChidWlsdCAyMDE1LTA1LTE0KSIsCisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAg ICAgICAgICAgIG1pbm9yOiAwLAorKyAgICAgICAgICAgICAgICBwYXRjaDogMCwKKysgICAgICAg ICAgICAgICAgY2hhbm5lbDogU3RhYmxlLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICApLAor KyAgICAgICAgKAorKyAgICAgICAgICAgICJydXN0YyAxLjE4LjAiLAorKyAgICAgICAgICAgIFZl cnNpb24geworKyAgICAgICAgICAgICAgICBtaW5vcjogMTgsCisrICAgICAgICAgICAgICAgIHBh dGNoOiAwLAorKyAgICAgICAgICAgICAgICBjaGFubmVsOiBTdGFibGUsCisrICAgICAgICAgICAg fSwKKysgICAgICAgICksCisrICAgICAgICAoCisrICAgICAgICAgICAgInJ1c3RjIDEuMjQuMSAo ZDNhZTlhOWUwIDIwMTgtMDItMjcpIiwKKysgICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAg ICAgICAgICAgbWlub3I6IDI0LAorKyAgICAgICAgICAgICAgICBwYXRjaDogMSwKKysgICAgICAg ICAgICAgICAgY2hhbm5lbDogU3RhYmxlLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICApLAor KyAgICAgICAgKAorKyAgICAgICAgICAgICJydXN0YyAxLjM1LjAtYmV0YS4zIChjMTMxMTRkYzgg MjAxOS0wNC0yNykiLAorKyAgICAgICAgICAgIFZlcnNpb24geworKyAgICAgICAgICAgICAgICBt aW5vcjogMzUsCisrICAgICAgICAgICAgICAgIHBhdGNoOiAwLAorKyAgICAgICAgICAgICAgICBj aGFubmVsOiBCZXRhLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICApLAorKyAgICAgICAgKAor KyAgICAgICAgICAgICJydXN0YyAxLjM2LjAtbmlnaHRseSAoOTM4ZDRmZmUxIDIwMTktMDQtMjcp IiwKKysgICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDM2LAor KyAgICAgICAgICAgICAgICBwYXRjaDogMCwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogTmln aHRseShEYXRlIHsKKysgICAgICAgICAgICAgICAgICAgIHllYXI6IDIwMTksCisrICAgICAgICAg ICAgICAgICAgICBtb250aDogNCwKKysgICAgICAgICAgICAgICAgICAgIGRheTogMjcsCisrICAg ICAgICAgICAgICAgIH0pLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICApLAorKyAgICAgICAg KAorKyAgICAgICAgICAgICJydXN0YyAxLjM2LjAtZGV2IiwKKysgICAgICAgICAgICBWZXJzaW9u IHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDM2LAorKyAgICAgICAgICAgICAgICBwYXRjaDog MCwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogRGV2LAorKyAgICAgICAgICAgIH0sCisrICAg ICAgICApLAorKyAgICAgICAgKAorKyAgICAgICAgICAgICJydXN0YyAxLjM2LjAtbmlnaHRseSIs CisrICAgICAgICAgICAgVmVyc2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiAzNiwKKysg ICAgICAgICAgICAgICAgcGF0Y2g6IDAsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6IERldiwK KysgICAgICAgICAgICB9LAorKyAgICAgICAgKSwKKysgICAgICAgICgKKysgICAgICAgICAgICAi d2FybmluZzogaW52YWxpZCBsb2dnaW5nIHNwZWMgJ3dhcm5pbmcnLCBpZ25vcmluZyBpdAorKyAg ICAgICAgICAgICBydXN0YyAxLjMwLjAtbmlnaHRseSAoM2JjMmNhN2U0IDIwMTgtMDktMjApIiwK KysgICAgICAgICAgICBWZXJzaW9uIHsKKysgICAgICAgICAgICAgICAgbWlub3I6IDMwLAorKyAg ICAgICAgICAgICAgICBwYXRjaDogMCwKKysgICAgICAgICAgICAgICAgY2hhbm5lbDogTmlnaHRs eShEYXRlIHsKKysgICAgICAgICAgICAgICAgICAgIHllYXI6IDIwMTgsCisrICAgICAgICAgICAg ICAgICAgICBtb250aDogOSwKKysgICAgICAgICAgICAgICAgICAgIGRheTogMjAsCisrICAgICAg ICAgICAgICAgIH0pLAorKyAgICAgICAgICAgIH0sCisrICAgICAgICApLAorKyAgICAgICAgKAor KyAgICAgICAgICAgICJydXN0YyAxLjUyLjEtbmlnaHRseSAoZ2VudG9vKSIsCisrICAgICAgICAg ICAgVmVyc2lvbiB7CisrICAgICAgICAgICAgICAgIG1pbm9yOiA1MiwKKysgICAgICAgICAgICAg ICAgcGF0Y2g6IDEsCisrICAgICAgICAgICAgICAgIGNoYW5uZWw6IERldiwKKysgICAgICAgICAg ICB9LAorKyAgICAgICAgKSwKKysgICAgXTsKKysKKysgICAgZm9yIChzdHJpbmcsIGV4cGVjdGVk KSBpbiBjYXNlcyB7CisrICAgICAgICBtYXRjaCBwYXJzZShzdHJpbmcpIHsKKysgICAgICAgICAg ICBQYXJzZVJlc3VsdDo6U3VjY2Vzcyh2ZXJzaW9uKSA9PiBhc3NlcnRfZXEhKHZlcnNpb24sICpl eHBlY3RlZCksCisrICAgICAgICAgICAgUGFyc2VSZXN1bHQ6Ok9vcHNDbGlwcHkgfCBQYXJzZVJl c3VsdDo6T29wc01pcmFpIHwgUGFyc2VSZXN1bHQ6OlVucmVjb2duaXplZCA9PiB7CisrICAgICAg ICAgICAgICAgIHBhbmljISgidW5yZWNvZ25pemVkOiB7Oj99Iiwgc3RyaW5nKTsKKysgICAgICAg ICAgICB9CisrICAgICAgICB9CisrICAgIH0KKyt9CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtYm91bmQucnMgYi90aGlyZF9wYXJ0eS9ydXN0 L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ib3VuZC5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQK Ky0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMv dWkvYmFkLWJvdW5kLnJzCitAQCAtMCwwICsxLDcgQEAKKysjW3J1c3R2ZXJzaW9uOjpzaW5jZShz dGFibGUpXQorK3N0cnVjdCBTOworKworKyNbcnVzdHZlcnNpb246OmFueShzaW5jZShzdGFibGUp KV0KKytzdHJ1Y3QgUzsKKysKKytmbiBtYWluKCkge30KK2RpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ib3VuZC5zdGRlcnIgYi90aGlyZF9wYXJ0 eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ib3VuZC5zdGRlcnIKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJz aW9uL3Rlc3RzL3VpL2JhZC1ib3VuZC5zdGRlcnIKK0BAIC0wLDAgKzEsMTEgQEAKKytlcnJvcjog ZXhwZWN0ZWQgcnVzdGMgcmVsZWFzZSBudW1iZXIgbGlrZSAxLjg1LCBvciBuaWdodGx5IGRhdGUg bGlrZSAyMDI1LTAyLTI1CisrIC0tPiB0ZXN0cy91aS9iYWQtYm91bmQucnM6MToyMgorKyAgfAor KzEgfCAjW3J1c3R2ZXJzaW9uOjpzaW5jZShzdGFibGUpXQorKyAgfCAgICAgICAgICAgICAgICAg ICAgICBeXl5eXl4KKysKKytlcnJvcjogZXhwZWN0ZWQgcnVzdGMgcmVsZWFzZSBudW1iZXIgbGlr ZSAxLjg1LCBvciBuaWdodGx5IGRhdGUgbGlrZSAyMDI1LTAyLTI1CisrIC0tPiB0ZXN0cy91aS9i YWQtYm91bmQucnM6NDoyNgorKyAgfAorKzQgfCAjW3J1c3R2ZXJzaW9uOjphbnkoc2luY2Uoc3Rh YmxlKSldCisrICB8ICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl4KK2RpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnJzIGIvdGhp cmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtZGF0ZS5ycworbmV3IGZpbGUg bW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZl cnNpb24vdGVzdHMvdWkvYmFkLWRhdGUucnMKK0BAIC0wLDAgKzEsNyBAQAorKyNbcnVzdHZlcnNp b246Om5pZ2h0bHkoc3RhYmxlKV0KKytzdHJ1Y3QgUzsKKysKKysjW3J1c3R2ZXJzaW9uOjphbnko bmlnaHRseShzdGFibGUpKV0KKytzdHJ1Y3QgUzsKKysKKytmbiBtYWluKCkge30KK2RpZmYgLS1n aXQgYS90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1kYXRlLnN0ZGVy ciBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLWRhdGUuc3RkZXJy CituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkv cnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtZGF0ZS5zdGRlcnIKK0BAIC0wLDAgKzEsMTEg QEAKKytlcnJvcjogZXhwZWN0ZWQgbmlnaHRseSBkYXRlLCBsaWtlIDIwMjUtMDItMjUKKysgLS0+ IHRlc3RzL3VpL2JhZC1kYXRlLnJzOjE6MjQKKysgIHwKKysxIHwgI1tydXN0dmVyc2lvbjo6bmln aHRseShzdGFibGUpXQorKyAgfCAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXgorKworK2Vy cm9yOiBleHBlY3RlZCBuaWdodGx5IGRhdGUsIGxpa2UgMjAyNS0wMi0yNQorKyAtLT4gdGVzdHMv dWkvYmFkLWRhdGUucnM6NDoyOAorKyAgfAorKzQgfCAjW3J1c3R2ZXJzaW9uOjphbnkobmlnaHRs eShzdGFibGUpKV0KKysgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eCitkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtbm90LnJz IGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtbm90LnJzCituZXcg ZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9y dXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtbm90LnJzCitAQCAtMCwwICsxLDcgQEAKKysjW3J1c3R2 ZXJzaW9uOjphbnkobm90KV0KKytzdHJ1Y3QgUzsKKysKKysjW3J1c3R2ZXJzaW9uOjphbnkobm90 LCBub3QpXQorK3N0cnVjdCBTOworKworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLW5vdC5zdGRlcnIgYi90aGlyZF9w YXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC1ub3Quc3RkZXJyCituZXcgZmlsZSBt b2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVy c2lvbi90ZXN0cy91aS9iYWQtbm90LnN0ZGVycgorQEAgLTAsMCArMSwxMSBAQAorK2Vycm9yOiBl eHBlY3RlZCBgKGAgYWZ0ZXIgYG5vdGAKKysgLS0+IHRlc3RzL3VpL2JhZC1ub3QucnM6MToyMAor KyAgfAorKzEgfCAjW3J1c3R2ZXJzaW9uOjphbnkobm90KV0KKysgIHwgICAgICAgICAgICAgICAg ICAgIF5eXgorKworK2Vycm9yOiBleHBlY3RlZCBgKGAKKysgLS0+IHRlc3RzL3VpL2JhZC1ub3Qu cnM6NDoyMworKyAgfAorKzQgfCAjW3J1c3R2ZXJzaW9uOjphbnkobm90LCBub3QpXQorKyAgfCAg ICAgICAgICAgICAgICAgICAgICAgXgorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3QvcnVz dHZlcnNpb24vdGVzdHMvdWkvYmFkLXZlcnNpb24ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2 ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnJzCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0t IC9kZXYvbnVsbAorKysrIGIvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9i YWQtdmVyc2lvbi5ycworQEAgLTAsMCArMSw3IEBACisrI1tydXN0dmVyc2lvbjo6c3RhYmxlKG5p Z2h0bHkpXQorK3N0cnVjdCBTOworKworKyNbcnVzdHZlcnNpb246OmFueShzdGFibGUobmlnaHRs eSkpXQorK3N0cnVjdCBTOworKworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvYmFkLXZlcnNpb24uc3RkZXJyIGIvdGhpcmRf cGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9iYWQtdmVyc2lvbi5zdGRlcnIKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisrKysgYi90aGlyZF9wYXJ0eS9ydXN0L3J1 c3R2ZXJzaW9uL3Rlc3RzL3VpL2JhZC12ZXJzaW9uLnN0ZGVycgorQEAgLTAsMCArMSwxMSBAQAor K2Vycm9yOiBleHBlY3RlZCBydXN0YyByZWxlYXNlIG51bWJlciwgbGlrZSAxLjMxCisrIC0tPiB0 ZXN0cy91aS9iYWQtdmVyc2lvbi5yczoxOjIzCisrICB8CisrMSB8ICNbcnVzdHZlcnNpb246OnN0 YWJsZShuaWdodGx5KV0KKysgIHwgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl4KKysKKytl cnJvcjogZXhwZWN0ZWQgcnVzdGMgcmVsZWFzZSBudW1iZXIsIGxpa2UgMS4zMQorKyAtLT4gdGVz dHMvdWkvYmFkLXZlcnNpb24ucnM6NDoyNworKyAgfAorKzQgfCAjW3J1c3R2ZXJzaW9uOjphbnko c3RhYmxlKG5pZ2h0bHkpKV0KKysgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5e CitkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvcnVzdC9ydXN0dmVyc2lvbi90ZXN0cy91aS9jb25z dC1ub3QtZm4ucnMgYi90aGlyZF9wYXJ0eS9ydXN0L3J1c3R2ZXJzaW9uL3Rlc3RzL3VpL2NvbnN0 LW5vdC1mbi5ycworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3Ro aXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvY29uc3Qtbm90LWZuLnJzCitAQCAt MCwwICsxLDQgQEAKKysjW3J1c3R2ZXJzaW9uOjphdHRyKGFsbCgpLCBjb25zdCldCisrcHViIHN0 cnVjdCBTOworKworK2ZuIG1haW4oKSB7fQorZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L3J1c3Qv cnVzdHZlcnNpb24vdGVzdHMvdWkvY29uc3Qtbm90LWZuLnN0ZGVyciBiL3RoaXJkX3BhcnR5L3J1 c3QvcnVzdHZlcnNpb24vdGVzdHMvdWkvY29uc3Qtbm90LWZuLnN0ZGVycgorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL3RoaXJkX3BhcnR5L3J1c3QvcnVzdHZlcnNp b24vdGVzdHMvdWkvY29uc3Qtbm90LWZuLnN0ZGVycgorQEAgLTAsMCArMSw1IEBACisrZXJyb3I6 IG9ubHkgYWxsb3dlZCBvbiBhIGZuIGl0ZW0KKysgLS0+IHRlc3RzL3VpL2NvbnN0LW5vdC1mbi5y czoxOjI4CisrICB8CisrMSB8ICNbcnVzdHZlcnNpb246OmF0dHIoYWxsKCksIGNvbnN0KV0KKysg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl4KCmRpZmYgLS1naXQgYS9zZWFtb25r ZXkuc3BlYyBiL3NlYW1vbmtleS5zcGVjCmluZGV4IGE2MmYzNmYuLmFhOTRkMGQgMTAwNjQ0Ci0t LSBhL3NlYW1vbmtleS5zcGVjCisrKyBiL3NlYW1vbmtleS5zcGVjCkBAIC0xLDYgKzEsNiBAQAog JWJjb25kX3dpdGhvdXQJc3lzdGVtX25zcHIKICViY29uZF93aXRob3V0CXN5c3RlbV9uc3MKLSVi Y29uZF93aXRob3V0CXN5c3RlbV9saWJ2cHgKKyViY29uZF93aXRoCXN5c3RlbV9saWJ2cHgKICVi Y29uZF93aXRob3V0CXN5c3RlbV93ZWJwCiAlYmNvbmRfd2l0aG91dAlzeXN0ZW1faWN1CiAlYmNv bmRfd2l0aG91dAlzeXN0ZW1fZmZpCkBAIC0xOCw3ICsxOCw3IEBACiAKICVnbG9iYWwgbnNwcl92 ZXJzaW9uCTQuMzUuMAogJWdsb2JhbCBuc3NfdmVyc2lvbgkzLjExMi4wCi0lZ2xvYmFsIGxpYnZw eF92ZXJzaW9uCTEuNS4wCislZ2xvYmFsIGxpYnZweF92ZXJzaW9uCTEuMTAuMAogJWdsb2JhbCB3 ZWJwX3ZlcnNpb24JMS4wLjIKICVnbG9iYWwgaWN1X3ZlcnNpb24JNjMuMQogJWdsb2JhbCBmZmlf dmVyc2lvbgkzLjAuOQpAQCAtMzQsNyArMzQsNyBAQAogCiBOYW1lOiAgICAgICAgICAgc2VhbW9u a2V5CiBTdW1tYXJ5OiAgICAgICAgV2ViIGJyb3dzZXIsIGUtbWFpbCwgbmV3cywgSVJDIGNsaWVu dCwgSFRNTCBlZGl0b3IKLVZlcnNpb246ICAgICAgICAyLjUzLjIzCitWZXJzaW9uOiAgICAgICAg Mi41My4yNAogUmVsZWFzZTogICAgICAgIDElez9kaXN0fQogVVJMOiAgICAgICAgICAgIGh0dHA6 Ly93d3cuc2VhbW9ua2V5LXByb2plY3Qub3JnCiBMaWNlbnNlOiAgICAgICAgTVBMLTIuMApAQCAt NTQsNyArNTQsNiBAQCBTb3VyY2U3OglzZWFtb25rZXkubWV0YWluZm8ueG1sCiBQYXRjaDM6CQlz ZWFtb25rZXktMi41My4xNy1tb3ppbGxhLTE1MTY4MDMucGF0Y2gKIFBhdGNoNToJCWZpcmVmb3gt MzUtcmhiei0xMTczMTU2LnBhdGNoCiBQYXRjaDc6CQlmaXJlZm94LTUxLW1vemlsbGEtMTAwNTY0 MC5wYXRjaAotUGF0Y2g4OgkJc2VhbW9ua2V5LTIuNTMuMjItbW96aWxsYS0xODgyMjA5LnBhdGNo CiBQYXRjaDk6CQlzZWFtb25rZXktMi41My4xLW1vemlsbGEtcmV2ZXJ0LTEzMzIxMzkucGF0Y2gK IFBhdGNoMTE6CXNlYW1vbmtleS0yLjUzLjE2LW1vemlsbGEtMTQzNDQ3OC5wYXRjaAogUGF0Y2gx MzoJc2VhbW9ua2V5LTIuNTMuMTAtbW96aWxsYS0xNDYwMjk1LnBhdGNoCkBAIC04Myw2ICs4Miwx MiBAQCBQYXRjaDM5OglzZWFtb25rZXktMi41My44LjEtZGF0ZWZvcm1hdC5wYXRjaAogUGF0Y2g0 MDoJc2VhbW9ua2V5LTIuNTMuMTAtc2xvd3NjcmlwdC5wYXRjaAogUGF0Y2g0MjoJc2VhbW9ua2V5 LTIuNTMuMTAtcG9zdG1lc3NhZ2UtZXZlbnQucGF0Y2gKIAorUGF0Y2g1MDoJc2VhbW9ua2V5LTIu NTMuMjQtbW96aWxsYS0xODgyMjA5LnBhdGNoCitQYXRjaDUxOglzZWFtb25rZXktMi41My4yNC1t b3ppbGxhLTE4NjYxOTEucGF0Y2gKK1BhdGNoNTI6CXNlYW1vbmtleS0yLjUzLjI0LW1vemlsbGEt MjAzMzI3OS5wYXRjaAorUGF0Y2g1MzoJc2VhbW9ua2V5LTIuNTMuMjQtcnVzdF92ZXJzaW9uLnBh dGNoCitQYXRjaDU0OglzZWFtb25rZXktMi41My4yNC1ydXN0X3UyZmhpZC5wYXRjaAorCiBQYXRj aDYwOglzZWFtb25rZXktMi41My4xMS11YS11cGRhdGUucGF0Y2gKIFBhdGNoNjE6CXNlYW1vbmtl eS0yLjUzLjEzLXVhLXVwZGF0ZS1wcmVsb2FkLnBhdGNoCiBQYXRjaDYyOglzZWFtb25rZXktMi41 My4yMi1jb21wYXQtdmVyc2lvbi5wYXRjaApAQCAtMTc4LDcgKzE4Myw2IEBAIGNwICV7U09VUkNF M30gR05VbWFrZWZpbGUKICVwYXRjaDMgLXAxIC1iIC4xNTE2ODAzCiAlcGF0Y2g1IC1wMiAtYiAu MTE3MzE1NgogJXBhdGNoNyAtcDEgLWIgLjEwMDU2NDAKLSVwYXRjaDggLXAxIC1iIC4xODgyMjA5 CiAlez93aXRoX3N5c3RlbV9saWJ2cHg6JXBhdGNoOSAtcDEgLWIgLjEzMzIxMzl9CiAlcGF0Y2gx MSAtcDEgLWIgLjE0MzQ0NzgKICVwYXRjaDEzIC1wMSAtYiAuMTQ2MDI5NQpAQCAtMjA4LDYgKzIx MiwxMiBAQCBjcCAle1NPVVJDRTN9IEdOVW1ha2VmaWxlCiAlcGF0Y2g0MCAtcDAgLWIgLnNsb3dz Y3JpcHQKICVwYXRjaDQyIC1wMSAtYiAucG9zdG1lc3NhZ2UtZXZlbnQKIAorJXBhdGNoNTAgLXAx CislcGF0Y2g1MSAtcDEKKyVwYXRjaDUyIC1wMQorJXBhdGNoNTMgLXAxCislcGF0Y2g1NCAtcDEK KwogJXBhdGNoNjAgLXAxIC1iIC51YS11cGRhdGUKICVwYXRjaDYxIC1wMSAtYiAudWEtdXBkYXRl LXByZWxvYWQKICVwYXRjaDYyIC1wMSAtYiAuY29tcGF0LXZlcnNpb24KQEAgLTMzOCw3ICszNDgs NyBAQCBwcmVmKCJjYWxlbmRhci51c2VyYWdlbnQuZXh0cmEiLCAiIiwgbG9ja2VkKTsKIAogLyog Q29tcGxldGVseSBtaW1pYyB0byBGaXJlZm94IGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhpcyBX b3JsZCBub3dhZGF5cy4uLiAgKi8KIHByZWYoImdlbmVyYWwudXNlcmFnZW50LmNvbXBhdE1vZGUu c3RyaWN0LWZpcmVmb3giLCB0cnVlKTsKLXByZWYoImdlbmVyYWwudXNlcmFnZW50LmNvbXBhdE1v ZGUudmVyc2lvbiIsICIxMjguMCIpOworcHJlZigiZ2VuZXJhbC51c2VyYWdlbnQuY29tcGF0TW9k ZS52ZXJzaW9uIiwgIjE0MC4wIik7CiAKIHByZWYoIm5ldHdvcmsuaHR0cC5zZW5kT3JpZ2luSGVh ZGVyIiwgMSk7CiAKQEAgLTM3Nyw2ICszODcsMTAgQEAgTU9aX09QVF9GTEFHUz0iJE1PWl9PUFRf RkxBR1MgLVdmb3JtYXQiCiAjICBqdXN0IHRlbXBvcmFyeSBmb3IgZ2NjOSAuLi4KIE1PWl9PUFRf RkxBR1M9IiRNT1pfT1BUX0ZMQUdTIC1Xbm8tZm9ybWF0LW92ZXJmbG93IgogCisjIEVsZmhhY2sg aXMgaW5jb21wYXRpYmxlIHdpdGggInJvc2VnbWVudCIgbGlua2VyIG9wdGlvbiwKKyMgd2hpY2gg YmVjYW1lIGRlZmF1bHQgd2l0aCBiaW51dGlscyA+PSAyLjQzIC4KK01PWl9MSU5LX0ZMQUdTPSIk TU9aX0xJTktfRkxBR1MgLVdsLC0tbm8tcm9zZWdtZW50IgorCiAlaWYgJXt3aXRoIGx0b30KICVp ZiAle3dpdGggY2xhbmd9CiBNT1pfT1BUX0ZMQUdTPSIkTU9aX09QVF9GTEFHUyAtZmx0bz10aGlu IgpAQCAtNTAyLDYgKzUxNiw5IEBAIG1rZGlyIC1wICRSUE1fQlVJTERfUk9PVCV7X2xpYmRpcn0v bW96aWxsYS9leHRlbnNpb25zLyV7c2VhbW9ua2V5X2FwcF9pZH0KIAogCiAlY2hhbmdlbG9nCisq IFRodSBKdWwgMzAgMjAyNiBEbWl0cnkgQnV0c2tveSA8RG1pdHJ5QEJ1dHNrb3kubmFtZT4gMi41 My4yNC0xCistIHVwZGF0ZSB0byAyLjUzLjI0CisKICogTW9uIEphbiAgNSAyMDI2IERtaXRyeSBC dXRza295IDxEbWl0cnlAQnV0c2tveS5uYW1lPiAyLjUzLjIzLTEKIC0gdXBkYXRlIHRvIDIuNTMu MjMKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGFjZmQyZDYuLjhmZDE3 NWEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKLVNI QTUxMiAoc2VhbW9ua2V5LTIuNTMuMjMuc291cmNlLnRhci54eikgPSA1OTM1MjY2MGRhZDUzZmQ0 ZTBkOTgxMGQ0MmRlMDUxMTUzNTVhODU3NDc2YmE5NDY4ODk5Y2VmYWQxNWIyNzk5OWUxZjI3OWFh NDU3NzUzZTlhZGI1ZDY1ZGNiYjMyMWM4MDA3YzQ2N2FjMzA5YWUzMDk2NGMyOTI2MDhmYzJiNgot U0hBNTEyIChzZWFtb25rZXktMi41My4yMy5zb3VyY2UtbDEwbi50YXIueHopID0gMjdmYWUyZmY1 M2UxM2NhNDIzNzhiODVkMWMzNGQzZWM1YzYxNzUzYzQwMDk2MmVkZjczMDlhOTMyOGQwNjdiYjZl N2NiNTlhYmQyODZiMmZmODdkNDM1NGQyYTU4OTBiYTVjZDQzMTAxMDVjNGIxNWE0OWM3YjM5MmQ2 OTNkNDEKK1NIQTUxMiAoc2VhbW9ua2V5LTIuNTMuMjQuc291cmNlLnRhci54eikgPSBkYWQwYzVm ZWY2MTk5YTI3YWY1YmM5OGJhNzNlOWJmNmY2NDA0MGRhMDEwZjU1YjQ2OGQyZWY1Njg1NzYwODkz NDZiMjI4MGYxZjc0NzMwZWNiYmRiOGM4ZmY4MTk3ZmEwZmJlM2Y3MmYxMjM4ZDA0ODhmYTA4ZjZm ZThjMDhiYgorU0hBNTEyIChzZWFtb25rZXktMi41My4yNC5zb3VyY2UtbDEwbi50YXIueHopID0g YWExY2RiMTM5ZWU4MjQxZjFiZDM4YjFkZGNmZWNhMTgwOTg3M2RjZmIwYTM4YTQzZTJlNDY2NzY5 NTMwMjdlYzljZDhlNzQzNTRhYjIzYzZhYmNiYjUzZmZhZjYwYWY3NjVlNjE2ZjlkZGU3NDFmZGUy ODI0MzBiZjZiZGZkNGEK