ZGlmZiAtLWdpdCBhLy5pZGVhL2RhdGFTb3VyY2VzLmxvY2FsLnhtbCBiLy5pZGVhL2RhdGFTb3VyY2VzLmxvY2FsLnhtbAppbmRleCAyNTUwYTcwLi4yZThhZWUwIDEwMDY0NAotLS0gYS8uaWRlYS9kYXRhU291cmNlcy5sb2NhbC54bWwKKysrIGIvLmlkZWEvZGF0YVNvdXJjZXMubG9jYWwueG1sCkBAIC0xLDYgKzEsNiBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDxwcm9qZWN0IHZlcnNpb249IjQiPgotICA8Y29tcG9uZW50IG5hbWU9ImRhdGFTb3VyY2VTdG9yYWdlTG9jYWwiIGNyZWF0ZWQtaW49IklVLTI0My4yMTU2NS4xOTMiPgorICA8Y29tcG9uZW50IG5hbWU9ImRhdGFTb3VyY2VTdG9yYWdlTG9jYWwiIGNyZWF0ZWQtaW49IklVLTIzMy4xMzEzNS4xMDMiPgogICAgIDxkYXRhLXNvdXJjZSBuYW1lPSJlY2hvZGV2ZWxvcEAyMDIuMjA1LjEwMi4xMjEiIHV1aWQ9IjZkMmE3MDYzLWFlNGMtNDcxZi1hZTA1LWUzMmRlZGU1ZDBlYyI+CiAgICAgICA8ZGF0YWJhc2UtaW5mbyBwcm9kdWN0PSJNeVNRTCIgdmVyc2lvbj0iOC40LjUiIGpkYmMtdmVyc2lvbj0iNC4yIiBkcml2ZXItbmFtZT0iTXlTUUwgQ29ubmVjdG9yL0oiIGRyaXZlci12ZXJzaW9uPSJteXNxbC1jb25uZWN0b3Itai04LjIuMCAoUmV2aXNpb246IDA2YTFmNzI0NDk3ZmQ4MWM2YTY1OTEzMWZkYTgyMmM5ZTUwODViNmMpIiBkYm1zPSJNWVNRTCIgZXhhY3QtdmVyc2lvbj0iOC40LjUiIGV4YWN0LWRyaXZlci12ZXJzaW9uPSI4LjIiPgogICAgICAgICA8ZXh0cmEtbmFtZS1jaGFyYWN0ZXJzPiNAPC9leHRyYS1uYW1lLWNoYXJhY3RlcnM+CmRpZmYgLS1naXQgYS8uaWRlYS9kYXRhU291cmNlcy82ZDJhNzA2My1hZTRjLTQ3MWYtYWUwNS1lMzJkZWRlNWQwZWMueG1sIGIvLmlkZWEvZGF0YVNvdXJjZXMvNmQyYTcwNjMtYWU0Yy00NzFmLWFlMDUtZTMyZGVkZTVkMGVjLnhtbAppbmRleCBiYThmNWVjLi5kZGNiYzExIDEwMDY0NAotLS0gYS8uaWRlYS9kYXRhU291cmNlcy82ZDJhNzA2My1hZTRjLTQ3MWYtYWUwNS1lMzJkZWRlNWQwZWMueG1sCisrKyBiLy5pZGVhL2RhdGFTb3VyY2VzLzZkMmE3MDYzLWFlNGMtNDcxZi1hZTA1LWUzMmRlZGU1ZDBlYy54bWwKQEAgLTEsNiArMSw2IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogPGRhdGFTb3VyY2UgbmFtZT0iZWNob2RldmVsb3BAMjAyLjIwNS4xMDIuMTIxIj4KLSAgPGRhdGFiYXNlLW1vZGVsIHNlcmlhbGl6ZXI9ImRibSIgZGJtcz0iTVlTUUwiIGZhbWlseS1pZD0iTVlTUUwiIGZvcm1hdC12ZXJzaW9uPSI0LjUzIj4KKyAgPGRhdGFiYXNlLW1vZGVsIHNlcmlhbGl6ZXI9ImRibSIgZGJtcz0iTVlTUUwiIGZhbWlseS1pZD0iTVlTUUwiIGZvcm1hdC12ZXJzaW9uPSI0LjUxIj4KICAgICA8cm9vdCBpZD0iMSI+CiAgICAgICA8RGVmYXVsdENhc2luZz5leGFjdDwvRGVmYXVsdENhc2luZz4KICAgICAgIDxEZWZhdWx0RW5naW5lPklubm9EQjwvRGVmYXVsdEVuZ2luZT4KQEAgLTk0OSw3ICs5NDksNyBAQAogICAgIDwvc2NoZW1hPgogICAgIDxzY2hlbWEgaWQ9IjI4OSIgcGFyZW50PSIxIiBuYW1lPSJlY2hvZGV2ZWxvcCI+CiAgICAgICA8Q3VycmVudD4xPC9DdXJyZW50PgotICAgICAgPExhc3RJbnRyb3NwZWN0aW9uTG9jYWxUaW1lc3RhbXA+MjAyNS0wNi0wNC4xMjozMToxMDwvTGFzdEludHJvc3BlY3Rpb25Mb2NhbFRpbWVzdGFtcD4KKyAgICAgIDxMYXN0SW50cm9zcGVjdGlvbkxvY2FsVGltZXN0YW1wPjIwMjUtMDYtMDYuMTE6MDg6MTE8L0xhc3RJbnRyb3NwZWN0aW9uTG9jYWxUaW1lc3RhbXA+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0XzA5MDBfYWlfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC9zY2hlbWE+CiAgICAgPHNjaGVtYSBpZD0iMjkwIiBwYXJlbnQ9IjEiIG5hbWU9ImluZm9ybWF0aW9uX3NjaGVtYSI+CkBAIC05NTksMTcwNSArOTU5LDE5MDIgQEAKICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfMDkwMF9haV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3NjaGVtYT4KICAgICA8dXNlciBpZD0iMjkyIiBwYXJlbnQ9IjEiIG5hbWU9InRlYW0xMSIvPgotICAgIDx0YWJsZSBpZD0iMjkzIiBwYXJlbnQ9IjI4OSIgbmFtZT0iY29sbGVjdGlvbnMiPgorICAgIDx0YWJsZSBpZD0iMjkzIiBwYXJlbnQ9IjI4OSIgbmFtZT0iVG9ycmVudFJlcG9ydCI+CisgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgorICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF8wOTAwX2FpX2NpPC9Db2xsYXRpb25OYW1lPgorICAgIDwvdGFibGU+CisgICAgPHRhYmxlIGlkPSIyOTQiIHBhcmVudD0iMjg5IiBuYW1lPSJjb2xsZWN0aW9ucyI+CiAgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgogICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF91bmljb2RlX2NpPC9Db2xsYXRpb25OYW1lPgogICAgIDwvdGFibGU+Ci0gICAgPHRhYmxlIGlkPSIyOTQiIHBhcmVudD0iMjg5IiBuYW1lPSJjb21tZW50cyI+CisgICAgPHRhYmxlIGlkPSIyOTUiIHBhcmVudD0iMjg5IiBuYW1lPSJjb21tZW50cyI+CiAgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgogICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF91bmljb2RlX2NpPC9Db2xsYXRpb25OYW1lPgogICAgIDwvdGFibGU+Ci0gICAgPHRhYmxlIGlkPSIyOTUiIHBhcmVudD0iMjg5IiBuYW1lPSJkb3dubG9hZHMiPgorICAgIDx0YWJsZSBpZD0iMjk2IiBwYXJlbnQ9IjI4OSIgbmFtZT0iZG93bmxvYWRzIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjI5NiIgcGFyZW50PSIyODkiIG5hbWU9ImR5bmFtaWNfY29tbWVudCI+CisgICAgPHRhYmxlIGlkPSIyOTciIHBhcmVudD0iMjg5IiBuYW1lPSJkeW5hbWljX2NvbW1lbnQiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMjk3IiBwYXJlbnQ9IjI4OSIgbmFtZT0iZHluYW1pY19saWtlcyI+CisgICAgPHRhYmxlIGlkPSIyOTgiIHBhcmVudD0iMjg5IiBuYW1lPSJkeW5hbWljX2xpa2VzIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjI5OCIgcGFyZW50PSIyODkiIG5hbWU9ImV4cGVyaWVuY2VfaGlzdG9yeSI+CisgICAgPHRhYmxlIGlkPSIyOTkiIHBhcmVudD0iMjg5IiBuYW1lPSJleHBlcmllbmNlX2hpc3RvcnkiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMjk5IiBwYXJlbnQ9IjI4OSIgbmFtZT0iZmF2b3JpdGUiPgorICAgIDx0YWJsZSBpZD0iMzAwIiBwYXJlbnQ9IjI4OSIgbmFtZT0iZmF2b3JpdGUiPgogICAgICAgPENvbW1lbnQ+w6fCpyYjeDhkO8Olwq0mI3g5MDvDpiYjeDk0O8K2w6gmI3g5NzsmI3g4ZjvDqMKhwqg8L0NvbW1lbnQ+CiAgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgogICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF8wOTAwX2FpX2NpPC9Db2xsYXRpb25OYW1lPgogICAgIDwvdGFibGU+Ci0gICAgPHRhYmxlIGlkPSIzMDAiIHBhcmVudD0iMjg5IiBuYW1lPSJmb2xsb3ciPgorICAgIDx0YWJsZSBpZD0iMzAxIiBwYXJlbnQ9IjI4OSIgbmFtZT0iZm9sbG93Ij4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMwMSIgcGFyZW50PSIyODkiIG5hbWU9ImZyaWVuZF9yZWxhdGlvbiI+CisgICAgPHRhYmxlIGlkPSIzMDIiIHBhcmVudD0iMjg5IiBuYW1lPSJmcmllbmRfcmVsYXRpb24iPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMzAyIiBwYXJlbnQ9IjI4OSIgbmFtZT0iZ3JvdXBfY29tbWVudHMiPgorICAgIDx0YWJsZSBpZD0iMzAzIiBwYXJlbnQ9IjI4OSIgbmFtZT0iZ3JvdXBfY29tbWVudHMiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMzAzIiBwYXJlbnQ9IjI4OSIgbmFtZT0iZ3JvdXBfaW50ZXJlc3RzIj4KKyAgICA8dGFibGUgaWQ9IjMwNCIgcGFyZW50PSIyODkiIG5hbWU9Imdyb3VwX2ludGVyZXN0cyI+CiAgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgogICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF91bmljb2RlX2NpPC9Db2xsYXRpb25OYW1lPgogICAgIDwvdGFibGU+Ci0gICAgPHRhYmxlIGlkPSIzMDQiIHBhcmVudD0iMjg5IiBuYW1lPSJncm91cF9tZW1iZXJzIj4KKyAgICA8dGFibGUgaWQ9IjMwNSIgcGFyZW50PSIyODkiIG5hbWU9Imdyb3VwX21lbWJlcnMiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMzA1IiBwYXJlbnQ9IjI4OSIgbmFtZT0iZ3JvdXBfcG9zdCI+CisgICAgPHRhYmxlIGlkPSIzMDYiIHBhcmVudD0iMjg5IiBuYW1lPSJncm91cF9wb3N0Ij4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMwNiIgcGFyZW50PSIyODkiIG5hbWU9ImxldmVsIj4KKyAgICA8dGFibGUgaWQ9IjMwNyIgcGFyZW50PSIyODkiIG5hbWU9ImxldmVsIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMwNyIgcGFyZW50PSIyODkiIG5hbWU9Imxpa2VzIj4KKyAgICA8dGFibGUgaWQ9IjMwOCIgcGFyZW50PSIyODkiIG5hbWU9Imxpa2VzIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMwOCIgcGFyZW50PSIyODkiIG5hbWU9InBvc3QiPgorICAgIDx0YWJsZSBpZD0iMzA5IiBwYXJlbnQ9IjI4OSIgbmFtZT0icG9zdCI+CiAgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgogICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF91bmljb2RlX2NpPC9Db2xsYXRpb25OYW1lPgogICAgIDwvdGFibGU+Ci0gICAgPHRhYmxlIGlkPSIzMDkiIHBhcmVudD0iMjg5IiBuYW1lPSJwcm9tb3Rpb24iPgorICAgIDx0YWJsZSBpZD0iMzEwIiBwYXJlbnQ9IjI4OSIgbmFtZT0icHJvbW90aW9uIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0XzA5MDBfYWlfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMxMCIgcGFyZW50PSIyODkiIG5hbWU9InNlZWRfY29tbWVudF9saWtlcyI+CisgICAgPHRhYmxlIGlkPSIzMTEiIHBhcmVudD0iMjg5IiBuYW1lPSJzZWVkX2NvbW1lbnRfbGlrZXMiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMzExIiBwYXJlbnQ9IjI4OSIgbmFtZT0ic2VlZF9jb21tZW50cyI+CisgICAgPHRhYmxlIGlkPSIzMTIiIHBhcmVudD0iMjg5IiBuYW1lPSJzZWVkX2NvbW1lbnRzIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMxMiIgcGFyZW50PSIyODkiIG5hbWU9InRhc2tzIj4KKyAgICA8dGFibGUgaWQ9IjMxMyIgcGFyZW50PSIyODkiIG5hbWU9InNlZWRfcmF0aW5nIj4KKyAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CisgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0XzA5MDBfYWlfY2k8L0NvbGxhdGlvbk5hbWU+CisgICAgPC90YWJsZT4KKyAgICA8dGFibGUgaWQ9IjMxNCIgcGFyZW50PSIyODkiIG5hbWU9InRhc2tzIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMxMyIgcGFyZW50PSIyODkiIG5hbWU9InRvcnJlbnQiPgorICAgIDx0YWJsZSBpZD0iMzE1IiBwYXJlbnQ9IjI4OSIgbmFtZT0idG9ycmVudCI+CiAgICAgICA8Q29tbWVudD7Dp8KnJiN4OGQ7w6XCrSYjeDkwO8OowqHCqDwvQ29tbWVudD4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0XzA5MDBfYWlfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMxNCIgcGFyZW50PSIyODkiIG5hbWU9InVzZXIiPgorICAgIDx0YWJsZSBpZD0iMzE2IiBwYXJlbnQ9IjI4OSIgbmFtZT0idG9ycmVudF9saWtlcyI+CisgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgorICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF8wOTAwX2FpX2NpPC9Db2xsYXRpb25OYW1lPgorICAgIDwvdGFibGU+CisgICAgPHRhYmxlIGlkPSIzMTciIHBhcmVudD0iMjg5IiBuYW1lPSJ1c2VyIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMxNSIgcGFyZW50PSIyODkiIG5hbWU9InVzZXJfZHluYW1pYyI+CisgICAgPHRhYmxlIGlkPSIzMTgiIHBhcmVudD0iMjg5IiBuYW1lPSJ1c2VyX2R5bmFtaWMiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDx0YWJsZSBpZD0iMzE2IiBwYXJlbnQ9IjI4OSIgbmFtZT0idXNlcl9pbnZpdGVfY29kZSI+CisgICAgPHRhYmxlIGlkPSIzMTkiIHBhcmVudD0iMjg5IiBuYW1lPSJ1c2VyX2ludml0ZV9jb2RlIj4KICAgICAgIDxFbmdpbmU+SW5ub0RCPC9FbmdpbmU+CiAgICAgICA8Q29sbGF0aW9uTmFtZT51dGY4bWI0X3VuaWNvZGVfY2k8L0NvbGxhdGlvbk5hbWU+CiAgICAgPC90YWJsZT4KLSAgICA8dGFibGUgaWQ9IjMxNyIgcGFyZW50PSIyODkiIG5hbWU9InVzZXJfbWVzc2FnZXMiPgorICAgIDx0YWJsZSBpZD0iMzIwIiBwYXJlbnQ9IjI4OSIgbmFtZT0idXNlcl9tZXNzYWdlcyI+CiAgICAgICA8RW5naW5lPklubm9EQjwvRW5naW5lPgogICAgICAgPENvbGxhdGlvbk5hbWU+dXRmOG1iNF91bmljb2RlX2NpPC9Db2xsYXRpb25OYW1lPgogICAgIDwvdGFibGU+Ci0gICAgPHRhYmxlIGlkPSIzMTgiIHBhcmVudD0iMjg5IiBuYW1lPSJ1c2VyX3Rhc2tfc3RhdHVzIj4KKyAgICA8dGFibGUgaWQ9IjMyMSIgcGFyZW50PSIyODkiIG5hbWU9InVzZXJfdGFza19zdGF0dXMiPgogICAgICAgPEVuZ2luZT5Jbm5vREI8L0VuZ2luZT4KICAgICAgIDxDb2xsYXRpb25OYW1lPnV0ZjhtYjRfdW5pY29kZV9jaTwvQ29sbGF0aW9uTmFtZT4KICAgICA8L3RhYmxlPgotICAgIDxjb2x1bW4gaWQ9IjMxOSIgcGFyZW50PSIyOTMiIG5hbWU9ImNvbGxlY3Rpb25JZCI+Ci0gICAgICA8QXV0b0luY3JlbWVudD4zPC9BdXRvSW5jcmVtZW50PgorICAgIDxjb2x1bW4gaWQ9IjMyMiIgcGFyZW50PSIyOTMiIG5hbWU9ImlkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50PjE8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjMyMCIgcGFyZW50PSIyOTMiIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjMyMyIgcGFyZW50PSIyOTMiIG5hbWU9ImRvd25sb2FkZWQiPgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgorICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjMyNCIgcGFyZW50PSIyOTMiIG5hbWU9ImV2ZW50Ij4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KKyAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KKyAgICA8L2NvbHVtbj4KKyAgICA8Y29sdW1uIGlkPSIzMjUiIHBhcmVudD0iMjkzIiBuYW1lPSJpbmZvSGFzaCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CisgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGNvbHVtbiBpZD0iMzI2IiBwYXJlbnQ9IjI5MyIgbmFtZT0iaXAiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgorICAgICAgPFBvc2l0aW9uPjU8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjMyNyIgcGFyZW50PSIyOTMiIG5hbWU9ImxlZnQiPgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgorICAgICAgPFBvc2l0aW9uPjY8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjMyOCIgcGFyZW50PSIyOTMiIG5hbWU9InBlZXJJZCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CisgICAgICA8UG9zaXRpb24+NzwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGNvbHVtbiBpZD0iMzI5IiBwYXJlbnQ9IjI5MyIgbmFtZT0icG9ydCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CisgICAgICA8UG9zaXRpb24+ODwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGNvbHVtbiBpZD0iMzMwIiBwYXJlbnQ9IjI5MyIgbmFtZT0icmVwb3J0VGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZSg2KXwwczwvRGFzVHlwZT4KKyAgICAgIDxQb3NpdGlvbj45PC9Qb3NpdGlvbj4KKyAgICA8L2NvbHVtbj4KKyAgICA8Y29sdW1uIGlkPSIzMzEiIHBhcmVudD0iMjkzIiBuYW1lPSJ0b3JyZW50SWQiPgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgorICAgICAgPFBvc2l0aW9uPjEwPC9Qb3NpdGlvbj4KKyAgICA8L2NvbHVtbj4KKyAgICA8Y29sdW1uIGlkPSIzMzIiIHBhcmVudD0iMjkzIiBuYW1lPSJ1cGxvYWRlZCI+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CisgICAgICA8UG9zaXRpb24+MTE8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjMzMyIgcGFyZW50PSIyOTMiIG5hbWU9InVzZXJJZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CisgICAgICA8UG9zaXRpb24+MTI8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxpbmRleCBpZD0iMzM0IiBwYXJlbnQ9IjI5MyIgbmFtZT0iUFJJTUFSWSI+CisgICAgICA8Q29sTmFtZXM+aWQ8L0NvbE5hbWVzPgorICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CisgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KKyAgICA8L2luZGV4PgorICAgIDxrZXkgaWQ9IjMzNSIgcGFyZW50PSIyOTMiIG5hbWU9IlBSSU1BUlkiPgorICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KKyAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CisgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgorICAgIDwva2V5PgorICAgIDxjb2x1bW4gaWQ9IjMzNiIgcGFyZW50PSIyOTQiIG5hbWU9ImNvbGxlY3Rpb25JZCI+CisgICAgICA8QXV0b0luY3JlbWVudD42PC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgorICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KKyAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KKyAgICA8L2NvbHVtbj4KKyAgICA8Y29sdW1uIGlkPSIzMzciIHBhcmVudD0iMjk0IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzIxIiBwYXJlbnQ9IjI5MyIgbmFtZT0icG9zdE5vIj4KKyAgICA8Y29sdW1uIGlkPSIzMzgiIHBhcmVudD0iMjk0IiBuYW1lPSJwb3N0Tm8iPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjMyMiIgcGFyZW50PSIyOTMiIG5hbWU9ImNvbGxlY3Rpb25zX2liZmtfMSI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSIzMzkiIHBhcmVudD0iMjk0IiBuYW1lPSJjb2xsZWN0aW9uc19pYmZrXzEiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPE9uRGVsZXRlPmNhc2NhZGU8L09uRGVsZXRlPgogICAgICAgPE9uVXBkYXRlPmNhc2NhZGU8L09uVXBkYXRlPgogICAgICAgPFJlZkNvbE5hbWVzPnVzZXJfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT51c2VyPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjMyMyIgcGFyZW50PSIyOTMiIG5hbWU9ImNvbGxlY3Rpb25zX2liZmtfMiI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSIzNDAiIHBhcmVudD0iMjk0IiBuYW1lPSJjb2xsZWN0aW9uc19pYmZrXzIiPgogICAgICAgPENvbE5hbWVzPnBvc3RObzwvQ29sTmFtZXM+CiAgICAgICA8T25EZWxldGU+Y2FzY2FkZTwvT25EZWxldGU+CiAgICAgICA8T25VcGRhdGU+Y2FzY2FkZTwvT25VcGRhdGU+CiAgICAgICA8UmVmQ29sTmFtZXM+cG9zdE5vPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+cG9zdDwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSIzMjQiIHBhcmVudD0iMjkzIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjM0MSIgcGFyZW50PSIyOTQiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmNvbGxlY3Rpb25JZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSIzMjUiIHBhcmVudD0iMjkzIiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8aW5kZXggaWQ9IjM0MiIgcGFyZW50PSIyOTQiIG5hbWU9InVzZXJfaWQiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjMyNiIgcGFyZW50PSIyOTMiIG5hbWU9InBvc3RObyI+CisgICAgPGluZGV4IGlkPSIzNDMiIHBhcmVudD0iMjk0IiBuYW1lPSJwb3N0Tm8iPgogICAgICAgPENvbE5hbWVzPnBvc3RObzwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjMyNyIgcGFyZW50PSIyOTMiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjM0NCIgcGFyZW50PSIyOTQiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjMyOCIgcGFyZW50PSIyOTQiIG5hbWU9ImNvbW1lbnRfaWQiPgotICAgICAgPEF1dG9JbmNyZW1lbnQ+MTg8L0F1dG9JbmNyZW1lbnQ+CisgICAgPGNvbHVtbiBpZD0iMzQ1IiBwYXJlbnQ9IjI5NSIgbmFtZT0iY29tbWVudF9pZCI+CisgICAgICA8QXV0b0luY3JlbWVudD4xOTwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzI5IiBwYXJlbnQ9IjI5NCIgbmFtZT0icG9zdF9pZCI+CisgICAgPGNvbHVtbiBpZD0iMzQ2IiBwYXJlbnQ9IjI5NSIgbmFtZT0icG9zdF9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzMwIiBwYXJlbnQ9IjI5NCIgbmFtZT0iY29tX2NvbW1lbnRfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjM0NyIgcGFyZW50PSIyOTUiIG5hbWU9ImNvbV9jb21tZW50X2lkIj4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzMzEiIHBhcmVudD0iMjk0IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzNDgiIHBhcmVudD0iMjk1IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzMzIiIHBhcmVudD0iMjk0IiBuYW1lPSJjb250ZW50Ij4KKyAgICA8Y29sdW1uIGlkPSIzNDkiIHBhcmVudD0iMjk1IiBuYW1lPSJjb250ZW50Ij4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzMzIiBwYXJlbnQ9IjI5NCIgbmFtZT0iaXNfYW5vbnltb3VzIj4KKyAgICA8Y29sdW1uIGlkPSIzNTAiIHBhcmVudD0iMjk1IiBuYW1lPSJpc19hbm9ueW1vdXMiPgorICAgICAgPERhc1R5cGU+dGlueWludCgxKXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj42PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnRpbnlpbnQoMSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzM0IiBwYXJlbnQ9IjI5NCIgbmFtZT0ibGlrZXNfY291bnQiPgorICAgIDxjb2x1bW4gaWQ9IjM1MSIgcGFyZW50PSIyOTUiIG5hbWU9Imxpa2VzX2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj43PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzMzUiIHBhcmVudD0iMjk0IiBuYW1lPSJyZXBseV9jb3VudCI+CisgICAgPGNvbHVtbiBpZD0iMzUyIiBwYXJlbnQ9IjI5NSIgbmFtZT0icmVwbHlfY291bnQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjg8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjMzNiIgcGFyZW50PSIyOTQiIG5hbWU9ImNvbW1lbnRfdGltZSI+CisgICAgPGNvbHVtbiBpZD0iMzUzIiBwYXJlbnQ9IjI5NSIgbmFtZT0iY29tbWVudF90aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj45PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iMzM3IiBwYXJlbnQ9IjI5NCIgbmFtZT0iZmtfcG9zdF9pZCI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSIzNTQiIHBhcmVudD0iMjk1IiBuYW1lPSJma19wb3N0X2lkIj4KICAgICAgIDxDb2xOYW1lcz5wb3N0X2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz5wb3N0Tm88L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT5wb3N0PC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjMzOCIgcGFyZW50PSIyOTQiIG5hbWU9IkZLX1JlbGF0aW9uc2hpcF82Ij4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM1NSIgcGFyZW50PSIyOTUiIG5hbWU9IkZLX1JlbGF0aW9uc2hpcF82Ij4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSIzMzkiIHBhcmVudD0iMjk0IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjM1NiIgcGFyZW50PSIyOTUiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmNvbW1lbnRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iMzQwIiBwYXJlbnQ9IjI5NCIgbmFtZT0iZmtfcG9zdF9pZCI+CisgICAgPGluZGV4IGlkPSIzNTciIHBhcmVudD0iMjk1IiBuYW1lPSJma19wb3N0X2lkIj4KICAgICAgIDxDb2xOYW1lcz5wb3N0X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSIzNDEiIHBhcmVudD0iMjk0IiBuYW1lPSJGS19SZWxhdGlvbnNoaXBfOSI+CisgICAgPGluZGV4IGlkPSIzNTgiIHBhcmVudD0iMjk1IiBuYW1lPSJGS19SZWxhdGlvbnNoaXBfOSI+CiAgICAgICA8Q29sTmFtZXM+Y29tX2NvbW1lbnRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjM0MiIgcGFyZW50PSIyOTQiIG5hbWU9ImZrX3VzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iMzU5IiBwYXJlbnQ9IjI5NSIgbmFtZT0iZmtfdXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjM0MyIgcGFyZW50PSIyOTQiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjM2MCIgcGFyZW50PSIyOTUiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjM0NCIgcGFyZW50PSIyOTUiIG5hbWU9ImRvd25sb2FkX2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzNjEiIHBhcmVudD0iMjk2IiBuYW1lPSJkb3dubG9hZF9pZCI+CiAgICAgICA8QXV0b0luY3JlbWVudD40PC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzNDUiIHBhcmVudD0iMjk1IiBuYW1lPSJ0b3JyZW50X2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzNjIiIHBhcmVudD0iMjk2IiBuYW1lPSJ0b3JyZW50X2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzNDYiIHBhcmVudD0iMjk1IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzNjMiIHBhcmVudD0iMjk2IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzNDciIHBhcmVudD0iMjk1IiBuYW1lPSJkb3dubG9hZF90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSIzNjQiIHBhcmVudD0iMjk2IiBuYW1lPSJkb3dubG9hZF90aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM0OCIgcGFyZW50PSIyOTUiIG5hbWU9ImRvd25sb2FkX3NpemUiPgorICAgIDxjb2x1bW4gaWQ9IjM2NSIgcGFyZW50PSIyOTYiIG5hbWU9ImRvd25sb2FkX3NpemUiPgorICAgICAgPERhc1R5cGU+ZmxvYXR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjU8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+ZmxvYXR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSIzNDkiIHBhcmVudD0iMjk1IiBuYW1lPSJGS19SZWxhdGlvbnNoaXBfNSI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSIzNjYiIHBhcmVudD0iMjk2IiBuYW1lPSJGS19SZWxhdGlvbnNoaXBfNSI+CiAgICAgICA8Q29sTmFtZXM+dG9ycmVudF9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dG9ycmVudF9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnRvcnJlbnRzPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM1MCIgcGFyZW50PSIyOTUiIG5hbWU9IkZLX1JlbGF0aW9uc2hpcF80Ij4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM2NyIgcGFyZW50PSIyOTYiIG5hbWU9IkZLX1JlbGF0aW9uc2hpcF80Ij4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSIzNTEiIHBhcmVudD0iMjk1IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjM2OCIgcGFyZW50PSIyOTYiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmRvd25sb2FkX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjM1MiIgcGFyZW50PSIyOTUiIG5hbWU9IkZLX1JlbGF0aW9uc2hpcF81Ij4KKyAgICA8aW5kZXggaWQ9IjM2OSIgcGFyZW50PSIyOTYiIG5hbWU9IkZLX1JlbGF0aW9uc2hpcF81Ij4KICAgICAgIDxDb2xOYW1lcz50b3JyZW50X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSIzNTMiIHBhcmVudD0iMjk1IiBuYW1lPSJGS19SZWxhdGlvbnNoaXBfNCI+CisgICAgPGluZGV4IGlkPSIzNzAiIHBhcmVudD0iMjk2IiBuYW1lPSJGS19SZWxhdGlvbnNoaXBfNCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjM1NCIgcGFyZW50PSIyOTUiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjM3MSIgcGFyZW50PSIyOTYiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjM1NSIgcGFyZW50PSIyOTYiIG5hbWU9ImNvbW1lbnRfaWQiPgotICAgICAgPEF1dG9JbmNyZW1lbnQ+NDwvQXV0b0luY3JlbWVudD4KKyAgICA8Y29sdW1uIGlkPSIzNzIiIHBhcmVudD0iMjk3IiBuYW1lPSJjb21tZW50X2lkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50PjY8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM1NiIgcGFyZW50PSIyOTYiIG5hbWU9ImR5bmFtaWNfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjM3MyIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzNTciIHBhcmVudD0iMjk2IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzNzQiIHBhcmVudD0iMjk3IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzU4IiBwYXJlbnQ9IjI5NiIgbmFtZT0iY29tbWVudF9jb250ZW50Ij4KKyAgICA8Y29sdW1uIGlkPSIzNzUiIHBhcmVudD0iMjk3IiBuYW1lPSJjb21tZW50X2NvbnRlbnQiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjQ8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM1OSIgcGFyZW50PSIyOTYiIG5hbWU9ImNvbW1lbnRfdGltZSI+CisgICAgPGNvbHVtbiBpZD0iMzc2IiBwYXJlbnQ9IjI5NyIgbmFtZT0iY29tbWVudF90aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM2MCIgcGFyZW50PSIyOTYiIG5hbWU9ImlzX2Fub255bW91cyI+CisgICAgPGNvbHVtbiBpZD0iMzc3IiBwYXJlbnQ9IjI5NyIgbmFtZT0iaXNfYW5vbnltb3VzIj4KKyAgICAgIDxEYXNUeXBlPnRpbnlpbnQoMSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+MDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8UG9zaXRpb24+NjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW55aW50KDEpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM2MSIgcGFyZW50PSIyOTYiIG5hbWU9InBhcmVudF9jb21tZW50X2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzNzgiIHBhcmVudD0iMjk3IiBuYW1lPSJwYXJlbnRfY29tbWVudF9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSIzNjIiIHBhcmVudD0iMjk2IiBuYW1lPSJkeW5hbWljX2NvbW1lbnRfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM3OSIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfY29tbWVudF9pYmZrXzEiPgogICAgICAgPENvbE5hbWVzPmR5bmFtaWNfaWQ8L0NvbE5hbWVzPgogICAgICAgPE9uRGVsZXRlPmNhc2NhZGU8L09uRGVsZXRlPgogICAgICAgPFJlZkNvbE5hbWVzPmR5bmFtaWNfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT51c2VyX2R5bmFtaWM8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iMzYzIiBwYXJlbnQ9IjI5NiIgbmFtZT0iZHluYW1pY19jb21tZW50X2liZmtfMiI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSIzODAiIHBhcmVudD0iMjk3IiBuYW1lPSJkeW5hbWljX2NvbW1lbnRfaWJma18yIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSIzNjQiIHBhcmVudD0iMjk2IiBuYW1lPSJkeW5hbWljX2NvbW1lbnRfaWJma18zIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM4MSIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfY29tbWVudF9pYmZrXzMiPgogICAgICAgPENvbE5hbWVzPnBhcmVudF9jb21tZW50X2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz5jb21tZW50X2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+ZHluYW1pY19jb21tZW50PC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8aW5kZXggaWQ9IjM2NSIgcGFyZW50PSIyOTYiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iMzgyIiBwYXJlbnQ9IjI5NyIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+Y29tbWVudF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSIzNjYiIHBhcmVudD0iMjk2IiBuYW1lPSJkeW5hbWljX2lkIj4KKyAgICA8aW5kZXggaWQ9IjM4MyIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfaWQiPgogICAgICAgPENvbE5hbWVzPmR5bmFtaWNfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjM2NyIgcGFyZW50PSIyOTYiIG5hbWU9InVzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iMzg0IiBwYXJlbnQ9IjI5NyIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iMzY4IiBwYXJlbnQ9IjI5NiIgbmFtZT0icGFyZW50X2NvbW1lbnRfaWQiPgorICAgIDxpbmRleCBpZD0iMzg1IiBwYXJlbnQ9IjI5NyIgbmFtZT0icGFyZW50X2NvbW1lbnRfaWQiPgogICAgICAgPENvbE5hbWVzPnBhcmVudF9jb21tZW50X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iMzY5IiBwYXJlbnQ9IjI5NiIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iMzg2IiBwYXJlbnQ9IjI5NyIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iMzcwIiBwYXJlbnQ9IjI5NyIgbmFtZT0ibGlrZV9pZCI+Ci0gICAgICA8QXV0b0luY3JlbWVudD40PC9BdXRvSW5jcmVtZW50PgorICAgIDxjb2x1bW4gaWQ9IjM4NyIgcGFyZW50PSIyOTgiIG5hbWU9Imxpa2VfaWQiPgorICAgICAgPEF1dG9JbmNyZW1lbnQ+NTwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzcxIiBwYXJlbnQ9IjI5NyIgbmFtZT0iZHluYW1pY19pZCI+CisgICAgPGNvbHVtbiBpZD0iMzg4IiBwYXJlbnQ9IjI5OCIgbmFtZT0iZHluYW1pY19pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM3MiIgcGFyZW50PSIyOTciIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjM4OSIgcGFyZW50PSIyOTgiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzNzMiIHBhcmVudD0iMjk3IiBuYW1lPSJsaWtlX3RpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjM5MCIgcGFyZW50PSIyOTgiIG5hbWU9Imxpa2VfdGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM3NCIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfbGlrZXNfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM5MSIgcGFyZW50PSIyOTgiIG5hbWU9ImR5bmFtaWNfbGlrZXNfaWJma18xIj4KICAgICAgIDxDb2xOYW1lcz5keW5hbWljX2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz5keW5hbWljX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcl9keW5hbWljPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM3NSIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfbGlrZXNfaWJma18yIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM5MiIgcGFyZW50PSIyOTgiIG5hbWU9ImR5bmFtaWNfbGlrZXNfaWJma18yIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSIzNzYiIHBhcmVudD0iMjk3IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjM5MyIgcGFyZW50PSIyOTgiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmxpa2VfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iMzc3IiBwYXJlbnQ9IjI5NyIgbmFtZT0iZHluYW1pY19pZCI+CisgICAgPGluZGV4IGlkPSIzOTQiIHBhcmVudD0iMjk4IiBuYW1lPSJkeW5hbWljX2lkIj4KICAgICAgIDxDb2xOYW1lcz5keW5hbWljX2lkCiB1c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjM3OCIgcGFyZW50PSIyOTciIG5hbWU9InVzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iMzk1IiBwYXJlbnQ9IjI5OCIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjM3OSIgcGFyZW50PSIyOTciIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjM5NiIgcGFyZW50PSIyOTgiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxrZXkgaWQ9IjM4MCIgcGFyZW50PSIyOTciIG5hbWU9ImR5bmFtaWNfaWQiPgorICAgIDxrZXkgaWQ9IjM5NyIgcGFyZW50PSIyOTgiIG5hbWU9ImR5bmFtaWNfaWQiPgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+ZHluYW1pY19pZDwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSIzODEiIHBhcmVudD0iMjk4IiBuYW1lPSJoaXN0b3J5X2lkIj4KKyAgICA8Y29sdW1uIGlkPSIzOTgiIHBhcmVudD0iMjk5IiBuYW1lPSJoaXN0b3J5X2lkIj4KICAgICAgIDxBdXRvSW5jcmVtZW50PjI8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM4MiIgcGFyZW50PSIyOTgiIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjM5OSIgcGFyZW50PSIyOTkiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzODMiIHBhcmVudD0iMjk4IiBuYW1lPSJleHBlcmllbmNlX2NoYW5nZSI+CisgICAgPGNvbHVtbiBpZD0iNDAwIiBwYXJlbnQ9IjI5OSIgbmFtZT0iZXhwZXJpZW5jZV9jaGFuZ2UiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzODQiIHBhcmVudD0iMjk4IiBuYW1lPSJzb3VyY2UiPgorICAgIDxjb2x1bW4gaWQ9IjQwMSIgcGFyZW50PSIyOTkiIG5hbWU9InNvdXJjZSI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjQ8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM4NSIgcGFyZW50PSIyOTgiIG5hbWU9InVwZGF0ZV90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI0MDIiIHBhcmVudD0iMjk5IiBuYW1lPSJ1cGRhdGVfdGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjM4NiIgcGFyZW50PSIyOTgiIG5hbWU9ImV4cGVyaWVuY2VfaGlzdG9yeV9pYmZrXzEiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNDAzIiBwYXJlbnQ9IjI5OSIgbmFtZT0iZXhwZXJpZW5jZV9oaXN0b3J5X2liZmtfMSI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iMzg3IiBwYXJlbnQ9IjI5OCIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI0MDQiIHBhcmVudD0iMjk5IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5oaXN0b3J5X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjM4OCIgcGFyZW50PSIyOTgiIG5hbWU9InVzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iNDA1IiBwYXJlbnQ9IjI5OSIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjM4OSIgcGFyZW50PSIyOTgiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjQwNiIgcGFyZW50PSIyOTkiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjM5MCIgcGFyZW50PSIyOTkiIG5hbWU9ImlkIj4KKyAgICA8Y29sdW1uIGlkPSI0MDciIHBhcmVudD0iMzAwIiBuYW1lPSJpZCI+CiAgICAgICA8QXV0b0luY3JlbWVudD4xPC9BdXRvSW5jcmVtZW50PgogICAgICAgPENvbW1lbnQ+w6TCuMK7w6kmI3g5NDvCrjwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iMzkxIiBwYXJlbnQ9IjI5OSIgbmFtZT0idXNlcl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDA4IiBwYXJlbnQ9IjMwMCIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29tbWVudD7DpyYjeDk0O8Kow6YmI3g4ODvCt0lEPC9Db21tZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSIzOTIiIHBhcmVudD0iMjk5IiBuYW1lPSJzZWVkX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI0MDkiIHBhcmVudD0iMzAwIiBuYW1lPSJzZWVkX2lkIj4KICAgICAgIDxDb21tZW50PsOnwqcmI3g4ZDvDpcKtJiN4OTA7SUQ8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjM8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjM5MyIgcGFyZW50PSIyOTkiIG5hbWU9ImNyZWF0ZV90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI0MTAiIHBhcmVudD0iMzAwIiBuYW1lPSJjcmVhdGVfdGltZSI+CiAgICAgICA8Q29tbWVudD7DpiYjeDk0O8K2w6gmI3g5NzsmI3g4ZjvDpiYjeDk3O8K2w6kmI3g5NzvCtDwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPkNVUlJFTlRfVElNRVNUQU1QPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8aW5kZXggaWQ9IjM5NCIgcGFyZW50PSIyOTkiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iNDExIiBwYXJlbnQ9IjMwMCIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+aWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iMzk1IiBwYXJlbnQ9IjI5OSIgbmFtZT0idWtfdXNlcl9zZWVkIj4KKyAgICA8aW5kZXggaWQ9IjQxMiIgcGFyZW50PSIzMDAiIG5hbWU9InVrX3VzZXJfc2VlZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZAogc2VlZF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSIzOTYiIHBhcmVudD0iMjk5IiBuYW1lPSJpZHhfdXNlcl9pZCI+CisgICAgPGluZGV4IGlkPSI0MTMiIHBhcmVudD0iMzAwIiBuYW1lPSJpZHhfdXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iMzk3IiBwYXJlbnQ9IjI5OSIgbmFtZT0iaWR4X3NlZWRfaWQiPgorICAgIDxpbmRleCBpZD0iNDE0IiBwYXJlbnQ9IjMwMCIgbmFtZT0iaWR4X3NlZWRfaWQiPgogICAgICAgPENvbE5hbWVzPnNlZWRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSIzOTgiIHBhcmVudD0iMjk5IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI0MTUiIHBhcmVudD0iMzAwIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8a2V5IGlkPSIzOTkiIHBhcmVudD0iMjk5IiBuYW1lPSJ1a191c2VyX3NlZWQiPgorICAgIDxrZXkgaWQ9IjQxNiIgcGFyZW50PSIzMDAiIG5hbWU9InVrX3VzZXJfc2VlZCI+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT51a191c2VyX3NlZWQ8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNDAwIiBwYXJlbnQ9IjMwMCIgbmFtZT0icmVjb3JkX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI0MTciIHBhcmVudD0iMzAxIiBuYW1lPSJyZWNvcmRfaWQiPgogICAgICAgPEF1dG9JbmNyZW1lbnQ+NjwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDAxIiBwYXJlbnQ9IjMwMCIgbmFtZT0iZm9sbG93ZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQxOCIgcGFyZW50PSIzMDEiIG5hbWU9ImZvbGxvd2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDAyIiBwYXJlbnQ9IjMwMCIgbmFtZT0iZm9sbG93ZWRfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQxOSIgcGFyZW50PSIzMDEiIG5hbWU9ImZvbGxvd2VkX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDAzIiBwYXJlbnQ9IjMwMCIgbmFtZT0iZm9sbG93X3RpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjQyMCIgcGFyZW50PSIzMDEiIG5hbWU9ImZvbGxvd190aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNDA0IiBwYXJlbnQ9IjMwMCIgbmFtZT0iZm9sbG93X2liZmtfMSI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI0MjEiIHBhcmVudD0iMzAxIiBuYW1lPSJmb2xsb3dfaWJma18xIj4KICAgICAgIDxDb2xOYW1lcz5mb2xsb3dlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNDA1IiBwYXJlbnQ9IjMwMCIgbmFtZT0iZm9sbG93X2liZmtfMiI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI0MjIiIHBhcmVudD0iMzAxIiBuYW1lPSJmb2xsb3dfaWJma18yIj4KICAgICAgIDxDb2xOYW1lcz5mb2xsb3dlZF9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iNDA2IiBwYXJlbnQ9IjMwMCIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI0MjMiIHBhcmVudD0iMzAxIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5yZWNvcmRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNDA3IiBwYXJlbnQ9IjMwMCIgbmFtZT0iZm9sbG93ZXJfaWQiPgorICAgIDxpbmRleCBpZD0iNDI0IiBwYXJlbnQ9IjMwMSIgbmFtZT0iZm9sbG93ZXJfaWQiPgogICAgICAgPENvbE5hbWVzPmZvbGxvd2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI0MDgiIHBhcmVudD0iMzAwIiBuYW1lPSJmb2xsb3dlZF9pZCI+CisgICAgPGluZGV4IGlkPSI0MjUiIHBhcmVudD0iMzAxIiBuYW1lPSJmb2xsb3dlZF9pZCI+CiAgICAgICA8Q29sTmFtZXM+Zm9sbG93ZWRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI0MDkiIHBhcmVudD0iMzAwIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI0MjYiIHBhcmVudD0iMzAxIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI0MTAiIHBhcmVudD0iMzAxIiBuYW1lPSJyZWxhdGlvbl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDI3IiBwYXJlbnQ9IjMwMiIgbmFtZT0icmVsYXRpb25faWQiPgogICAgICAgPEF1dG9JbmNyZW1lbnQ+MzwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDExIiBwYXJlbnQ9IjMwMSIgbmFtZT0idXNlcl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDI4IiBwYXJlbnQ9IjMwMiIgbmFtZT0idXNlcl9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQxMiIgcGFyZW50PSIzMDEiIG5hbWU9ImZyaWVuZF9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDI5IiBwYXJlbnQ9IjMwMiIgbmFtZT0iZnJpZW5kX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDEzIiBwYXJlbnQ9IjMwMSIgbmFtZT0iY3JlYXRlX3RpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjQzMCIgcGFyZW50PSIzMDIiIG5hbWU9ImNyZWF0ZV90aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNDE0IiBwYXJlbnQ9IjMwMSIgbmFtZT0iZnJpZW5kX3JlbGF0aW9uX2liZmtfMSI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI0MzEiIHBhcmVudD0iMzAyIiBuYW1lPSJmcmllbmRfcmVsYXRpb25faWJma18xIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSI0MTUiIHBhcmVudD0iMzAxIiBuYW1lPSJmcmllbmRfcmVsYXRpb25faWJma18yIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQzMiIgcGFyZW50PSIzMDIiIG5hbWU9ImZyaWVuZF9yZWxhdGlvbl9pYmZrXzIiPgogICAgICAgPENvbE5hbWVzPmZyaWVuZF9pZDwvQ29sTmFtZXM+CiAgICAgICA8T25EZWxldGU+Y2FzY2FkZTwvT25EZWxldGU+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iNDE2IiBwYXJlbnQ9IjMwMSIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI0MzMiIHBhcmVudD0iMzAyIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5yZWxhdGlvbl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI0MTciIHBhcmVudD0iMzAxIiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8aW5kZXggaWQ9IjQzNCIgcGFyZW50PSIzMDIiIG5hbWU9InVzZXJfaWQiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjQxOCIgcGFyZW50PSIzMDEiIG5hbWU9ImZyaWVuZF9pZCI+CisgICAgPGluZGV4IGlkPSI0MzUiIHBhcmVudD0iMzAyIiBuYW1lPSJmcmllbmRfaWQiPgogICAgICAgPENvbE5hbWVzPmZyaWVuZF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjQxOSIgcGFyZW50PSIzMDEiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjQzNiIgcGFyZW50PSIzMDIiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjQyMCIgcGFyZW50PSIzMDIiIG5hbWU9ImNvbW1lbnRfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQzNyIgcGFyZW50PSIzMDMiIG5hbWU9ImNvbW1lbnRfaWQiPgogICAgICAgPEF1dG9JbmNyZW1lbnQ+NjwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDIxIiBwYXJlbnQ9IjMwMiIgbmFtZT0iZ3JvdXBfcG9zdF9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDM4IiBwYXJlbnQ9IjMwMyIgbmFtZT0iZ3JvdXBfcG9zdF9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDIyIiBwYXJlbnQ9IjMwMiIgbmFtZT0idXNlcl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDM5IiBwYXJlbnQ9IjMwMyIgbmFtZT0idXNlcl9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDIzIiBwYXJlbnQ9IjMwMiIgbmFtZT0iY29udGVudCI+CisgICAgPGNvbHVtbiBpZD0iNDQwIiBwYXJlbnQ9IjMwMyIgbmFtZT0iY29udGVudCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDI0IiBwYXJlbnQ9IjMwMiIgbmFtZT0icGFyZW50X2NvbW1lbnRfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQ0MSIgcGFyZW50PSIzMDMiIG5hbWU9InBhcmVudF9jb21tZW50X2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0MjUiIHBhcmVudD0iMzAyIiBuYW1lPSJ0aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI0NDIiIHBhcmVudD0iMzAzIiBuYW1lPSJ0aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj42PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNDI2IiBwYXJlbnQ9IjMwMiIgbmFtZT0iZ3JvdXBfY29tbWVudHNfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQ0MyIgcGFyZW50PSIzMDMiIG5hbWU9Imdyb3VwX2NvbW1lbnRzX2liZmtfMSI+CiAgICAgICA8Q29sTmFtZXM+Z3JvdXBfcG9zdF9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+Z3JvdXBfcG9zdF9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPmdyb3VwX3Bvc3Q8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNDI3IiBwYXJlbnQ9IjMwMiIgbmFtZT0iZ3JvdXBfY29tbWVudHNfaWJma18yIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQ0NCIgcGFyZW50PSIzMDMiIG5hbWU9Imdyb3VwX2NvbW1lbnRzX2liZmtfMiI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNDI4IiBwYXJlbnQ9IjMwMiIgbmFtZT0iZ3JvdXBfY29tbWVudHNfaWJma18zIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQ0NSIgcGFyZW50PSIzMDMiIG5hbWU9Imdyb3VwX2NvbW1lbnRzX2liZmtfMyI+CiAgICAgICA8Q29sTmFtZXM+cGFyZW50X2NvbW1lbnRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFJlZkNvbE5hbWVzPmNvbW1lbnRfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT5ncm91cF9jb21tZW50czwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSI0MjkiIHBhcmVudD0iMzAyIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjQ0NiIgcGFyZW50PSIzMDMiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmNvbW1lbnRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNDMwIiBwYXJlbnQ9IjMwMiIgbmFtZT0iZ3JvdXBfcG9zdF9pZCI+CisgICAgPGluZGV4IGlkPSI0NDciIHBhcmVudD0iMzAzIiBuYW1lPSJncm91cF9wb3N0X2lkIj4KICAgICAgIDxDb2xOYW1lcz5ncm91cF9wb3N0X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI0MzEiIHBhcmVudD0iMzAyIiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8aW5kZXggaWQ9IjQ0OCIgcGFyZW50PSIzMDMiIG5hbWU9InVzZXJfaWQiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjQzMiIgcGFyZW50PSIzMDIiIG5hbWU9InBhcmVudF9jb21tZW50X2lkIj4KKyAgICA8aW5kZXggaWQ9IjQ0OSIgcGFyZW50PSIzMDMiIG5hbWU9InBhcmVudF9jb21tZW50X2lkIj4KICAgICAgIDxDb2xOYW1lcz5wYXJlbnRfY29tbWVudF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjQzMyIgcGFyZW50PSIzMDIiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjQ1MCIgcGFyZW50PSIzMDMiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjQzNCIgcGFyZW50PSIzMDMiIG5hbWU9Imdyb3VwX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI0NTEiIHBhcmVudD0iMzA0IiBuYW1lPSJncm91cF9pZCI+CiAgICAgICA8QXV0b0luY3JlbWVudD41PC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0MzUiIHBhcmVudD0iMzAzIiBuYW1lPSJncm91cF9uYW1lIj4KKyAgICA8Y29sdW1uIGlkPSI0NTIiIHBhcmVudD0iMzA0IiBuYW1lPSJncm91cF9uYW1lIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDM2IiBwYXJlbnQ9IjMwMyIgbmFtZT0iZGVzY3JpcHRpb24iPgorICAgIDxjb2x1bW4gaWQ9IjQ1MyIgcGFyZW50PSIzMDQiIG5hbWU9ImRlc2NyaXB0aW9uIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0MzciIHBhcmVudD0iMzAzIiBuYW1lPSJjcmVhdGVfdGltZSI+CisgICAgPGNvbHVtbiBpZD0iNDU0IiBwYXJlbnQ9IjMwNCIgbmFtZT0iY3JlYXRlX3RpbWUiPgorICAgICAgPERhc1R5cGU+ZGF0ZXRpbWV8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjQ8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+ZGF0ZXRpbWV8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDM4IiBwYXJlbnQ9IjMwMyIgbmFtZT0idXNlcl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDU1IiBwYXJlbnQ9IjMwNCIgbmFtZT0idXNlcl9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDM5IiBwYXJlbnQ9IjMwMyIgbmFtZT0ibWVtYmVyX2NvdW50Ij4KKyAgICA8Y29sdW1uIGlkPSI0NTYiIHBhcmVudD0iMzA0IiBuYW1lPSJtZW1iZXJfY291bnQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPFBvc2l0aW9uPjY8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ0MCIgcGFyZW50PSIzMDMiIG5hbWU9ImNhdGVnb3J5Ij4KKyAgICA8Y29sdW1uIGlkPSI0NTciIHBhcmVudD0iMzA0IiBuYW1lPSJjYXRlZ29yeSI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDQxIiBwYXJlbnQ9IjMwMyIgbmFtZT0iY292ZXJfaW1hZ2UiPgorICAgIDxjb2x1bW4gaWQ9IjQ1OCIgcGFyZW50PSIzMDQiIG5hbWU9ImNvdmVyX2ltYWdlIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj44PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQ0MiIgcGFyZW50PSIzMDMiIG5hbWU9Imdyb3VwX2ludGVyZXN0c19pYmZrXzEiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNDU5IiBwYXJlbnQ9IjMwNCIgbmFtZT0iZ3JvdXBfaW50ZXJlc3RzX2liZmtfMSI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iNDQzIiBwYXJlbnQ9IjMwMyIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI0NjAiIHBhcmVudD0iMzA0IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5ncm91cF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI0NDQiIHBhcmVudD0iMzAzIiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8aW5kZXggaWQ9IjQ2MSIgcGFyZW50PSIzMDQiIG5hbWU9InVzZXJfaWQiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI0NDUiIHBhcmVudD0iMzAzIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI0NjIiIHBhcmVudD0iMzA0IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI0NDYiIHBhcmVudD0iMzA0IiBuYW1lPSJyZWxhdGlvbl9pZCI+Ci0gICAgICA8QXV0b0luY3JlbWVudD41PC9BdXRvSW5jcmVtZW50PgorICAgIDxjb2x1bW4gaWQ9IjQ2MyIgcGFyZW50PSIzMDUiIG5hbWU9InJlbGF0aW9uX2lkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50PjY8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ0NyIgcGFyZW50PSIzMDQiIG5hbWU9Imdyb3VwX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI0NjQiIHBhcmVudD0iMzA1IiBuYW1lPSJncm91cF9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ0OCIgcGFyZW50PSIzMDQiIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQ2NSIgcGFyZW50PSIzMDUiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQ0OSIgcGFyZW50PSIzMDQiIG5hbWU9Imdyb3VwX21lbWJlcnNfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjQ2NiIgcGFyZW50PSIzMDUiIG5hbWU9Imdyb3VwX21lbWJlcnNfaWJma18xIj4KICAgICAgIDxDb2xOYW1lcz5ncm91cF9pZDwvQ29sTmFtZXM+CiAgICAgICA8T25EZWxldGU+Y2FzY2FkZTwvT25EZWxldGU+CiAgICAgICA8UmVmQ29sTmFtZXM+Z3JvdXBfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT5ncm91cF9pbnRlcmVzdHM8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNDUwIiBwYXJlbnQ9IjMwNCIgbmFtZT0iZ3JvdXBfbWVtYmVyc19pYmZrXzIiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNDY3IiBwYXJlbnQ9IjMwNSIgbmFtZT0iZ3JvdXBfbWVtYmVyc19pYmZrXzIiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPE9uRGVsZXRlPmNhc2NhZGU8L09uRGVsZXRlPgogICAgICAgPFJlZkNvbE5hbWVzPnVzZXJfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT51c2VyPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8aW5kZXggaWQ9IjQ1MSIgcGFyZW50PSIzMDQiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iNDY4IiBwYXJlbnQ9IjMwNSIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+cmVsYXRpb25faWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNDUyIiBwYXJlbnQ9IjMwNCIgbmFtZT0idW5pcXVlX2dyb3VwX3VzZXIiPgorICAgIDxpbmRleCBpZD0iNDY5IiBwYXJlbnQ9IjMwNSIgbmFtZT0idW5pcXVlX2dyb3VwX3VzZXIiPgogICAgICAgPENvbE5hbWVzPmdyb3VwX2lkCiB1c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjQ1MyIgcGFyZW50PSIzMDQiIG5hbWU9InVzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iNDcwIiBwYXJlbnQ9IjMwNSIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxrZXkgaWQ9IjQ1NCIgcGFyZW50PSIzMDQiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxrZXkgaWQ9IjQ3MSIgcGFyZW50PSIzMDUiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KICAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxrZXkgaWQ9IjQ1NSIgcGFyZW50PSIzMDQiIG5hbWU9InVuaXF1ZV9ncm91cF91c2VyIj4KKyAgICA8a2V5IGlkPSI0NzIiIHBhcmVudD0iMzA1IiBuYW1lPSJ1bmlxdWVfZ3JvdXBfdXNlciI+CiAgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT51bmlxdWVfZ3JvdXBfdXNlcjwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI0NTYiIHBhcmVudD0iMzA1IiBuYW1lPSJncm91cF9wb3N0X2lkIj4KKyAgICA8Y29sdW1uIGlkPSI0NzMiIHBhcmVudD0iMzA2IiBuYW1lPSJncm91cF9wb3N0X2lkIj4KICAgICAgIDxBdXRvSW5jcmVtZW50PjY8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ1NyIgcGFyZW50PSIzMDUiIG5hbWU9Imdyb3VwX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI0NzQiIHBhcmVudD0iMzA2IiBuYW1lPSJncm91cF9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDU4IiBwYXJlbnQ9IjMwNSIgbmFtZT0idXNlcl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNDc1IiBwYXJlbnQ9IjMwNiIgbmFtZT0idXNlcl9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDU5IiBwYXJlbnQ9IjMwNSIgbmFtZT0iY29udGVudCI+CisgICAgPGNvbHVtbiBpZD0iNDc2IiBwYXJlbnQ9IjMwNiIgbmFtZT0iY29udGVudCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDYwIiBwYXJlbnQ9IjMwNSIgbmFtZT0idGl0bGUiPgorICAgIDxjb2x1bW4gaWQ9IjQ3NyIgcGFyZW50PSIzMDYiIG5hbWU9InRpdGxlIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDYxIiBwYXJlbnQ9IjMwNSIgbmFtZT0iaW1hZ2UiPgorICAgIDxjb2x1bW4gaWQ9IjQ3OCIgcGFyZW50PSIzMDYiIG5hbWU9ImltYWdlIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj42PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0NjIiIHBhcmVudD0iMzA1IiBuYW1lPSJsaWtlX2NvdW50Ij4KKyAgICA8Y29sdW1uIGlkPSI0NzkiIHBhcmVudD0iMzA2IiBuYW1lPSJsaWtlX2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj43PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0NjMiIHBhcmVudD0iMzA1IiBuYW1lPSJjb21tZW50X2NvdW50Ij4KKyAgICA8Y29sdW1uIGlkPSI0ODAiIHBhcmVudD0iMzA2IiBuYW1lPSJjb21tZW50X2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj44PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0NjQiIHBhcmVudD0iMzA1IiBuYW1lPSJ0aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI0ODEiIHBhcmVudD0iMzA2IiBuYW1lPSJ0aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj45PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNDY1IiBwYXJlbnQ9IjMwNSIgbmFtZT0iZ3JvdXBfcG9zdF9pYmZrXzEiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNDgyIiBwYXJlbnQ9IjMwNiIgbmFtZT0iZ3JvdXBfcG9zdF9pYmZrXzEiPgogICAgICAgPENvbE5hbWVzPmdyb3VwX2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz5ncm91cF9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPmdyb3VwX2ludGVyZXN0czwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSI0NjYiIHBhcmVudD0iMzA1IiBuYW1lPSJncm91cF9wb3N0X2liZmtfMiI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI0ODMiIHBhcmVudD0iMzA2IiBuYW1lPSJncm91cF9wb3N0X2liZmtfMiI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iNDY3IiBwYXJlbnQ9IjMwNSIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI0ODQiIHBhcmVudD0iMzA2IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5ncm91cF9wb3N0X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjQ2OCIgcGFyZW50PSIzMDUiIG5hbWU9Imdyb3VwX2lkIj4KKyAgICA8aW5kZXggaWQ9IjQ4NSIgcGFyZW50PSIzMDYiIG5hbWU9Imdyb3VwX2lkIj4KICAgICAgIDxDb2xOYW1lcz5ncm91cF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNDY5IiBwYXJlbnQ9IjMwNSIgbmFtZT0idXNlcl9pZCI+CisgICAgPGluZGV4IGlkPSI0ODYiIHBhcmVudD0iMzA2IiBuYW1lPSJ1c2VyX2lkIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNDcwIiBwYXJlbnQ9IjMwNSIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNDg3IiBwYXJlbnQ9IjMwNiIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNDcxIiBwYXJlbnQ9IjMwNiIgbmFtZT0ibGV2ZWxfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQ4OCIgcGFyZW50PSIzMDciIG5hbWU9ImxldmVsX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDcyIiBwYXJlbnQ9IjMwNiIgbmFtZT0ibGV2ZWxfbmFtZSI+CisgICAgPGNvbHVtbiBpZD0iNDg5IiBwYXJlbnQ9IjMwNyIgbmFtZT0ibGV2ZWxfbmFtZSI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ3MyIgcGFyZW50PSIzMDYiIG5hbWU9InJlcXVpcmVkX2V4cGVyaWVuY2UiPgorICAgIDxjb2x1bW4gaWQ9IjQ5MCIgcGFyZW50PSIzMDciIG5hbWU9InJlcXVpcmVkX2V4cGVyaWVuY2UiPgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0NzQiIHBhcmVudD0iMzA2IiBuYW1lPSJyZXF1aXJlZF9zaGFyZV9yYXRpbyI+CisgICAgPGNvbHVtbiBpZD0iNDkxIiBwYXJlbnQ9IjMwNyIgbmFtZT0icmVxdWlyZWRfc2hhcmVfcmF0aW8iPgorICAgICAgPERhc1R5cGU+ZmxvYXR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5mbG9hdHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0NzUiIHBhcmVudD0iMzA2IiBuYW1lPSJyZXF1aXJlZF91cGxvYWRfZ2IiPgorICAgIDxjb2x1bW4gaWQ9IjQ5MiIgcGFyZW50PSIzMDciIG5hbWU9InJlcXVpcmVkX3VwbG9hZF9nYiI+CisgICAgICA8RGFzVHlwZT5mbG9hdHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmZsb2F0fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ3NiIgcGFyZW50PSIzMDYiIG5hbWU9InJlcXVpcmVkX3NlZWRpbmdfaG91cnMiPgorICAgIDxjb2x1bW4gaWQ9IjQ5MyIgcGFyZW50PSIzMDciIG5hbWU9InJlcXVpcmVkX3NlZWRpbmdfaG91cnMiPgorICAgICAgPERhc1R5cGU+ZmxvYXR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5mbG9hdHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0NzciIHBhcmVudD0iMzA2IiBuYW1lPSJwZXJtaXNzaW9ucyI+CisgICAgPGNvbHVtbiBpZD0iNDk0IiBwYXJlbnQ9IjMwNyIgbmFtZT0icGVybWlzc2lvbnMiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjc8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxpbmRleCBpZD0iNDc4IiBwYXJlbnQ9IjMwNiIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI0OTUiIHBhcmVudD0iMzA3IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5sZXZlbF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNDc5IiBwYXJlbnQ9IjMwNiIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNDk2IiBwYXJlbnQ9IjMwNyIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNDgwIiBwYXJlbnQ9IjMwNyIgbmFtZT0ibGlrZUlkIj4KLSAgICAgIDxBdXRvSW5jcmVtZW50PjQ8L0F1dG9JbmNyZW1lbnQ+CisgICAgPGNvbHVtbiBpZD0iNDk3IiBwYXJlbnQ9IjMwOCIgbmFtZT0ibGlrZUlkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50Pjk8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ4MSIgcGFyZW50PSIzMDciIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjQ5OCIgcGFyZW50PSIzMDgiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0ODIiIHBhcmVudD0iMzA3IiBuYW1lPSJwb3N0Tm8iPgorICAgIDxjb2x1bW4gaWQ9IjQ5OSIgcGFyZW50PSIzMDgiIG5hbWU9InBvc3RObyI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjM8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNDgzIiBwYXJlbnQ9IjMwNyIgbmFtZT0ibGlrZXNfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjUwMCIgcGFyZW50PSIzMDgiIG5hbWU9Imxpa2VzX2liZmtfMSI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8T25EZWxldGU+Y2FzY2FkZTwvT25EZWxldGU+CiAgICAgICA8T25VcGRhdGU+Y2FzY2FkZTwvT25VcGRhdGU+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNDg0IiBwYXJlbnQ9IjMwNyIgbmFtZT0ibGlrZXNfaWJma18yIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjUwMSIgcGFyZW50PSIzMDgiIG5hbWU9Imxpa2VzX2liZmtfMiI+CiAgICAgICA8Q29sTmFtZXM+cG9zdE5vPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxPblVwZGF0ZT5jYXNjYWRlPC9PblVwZGF0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz5wb3N0Tm88L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT5wb3N0PC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8aW5kZXggaWQ9IjQ4NSIgcGFyZW50PSIzMDciIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iNTAyIiBwYXJlbnQ9IjMwOCIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+bGlrZUlkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjQ4NiIgcGFyZW50PSIzMDciIG5hbWU9InVzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iNTAzIiBwYXJlbnQ9IjMwOCIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNDg3IiBwYXJlbnQ9IjMwNyIgbmFtZT0icG9zdE5vIj4KKyAgICA8aW5kZXggaWQ9IjUwNCIgcGFyZW50PSIzMDgiIG5hbWU9InBvc3RObyI+CiAgICAgICA8Q29sTmFtZXM+cG9zdE5vPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNDg4IiBwYXJlbnQ9IjMwNyIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNTA1IiBwYXJlbnQ9IjMwOCIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNDg5IiBwYXJlbnQ9IjMwOCIgbmFtZT0icG9zdE5vIj4KLSAgICAgIDxBdXRvSW5jcmVtZW50PjI4PC9BdXRvSW5jcmVtZW50PgorICAgIDxjb2x1bW4gaWQ9IjUwNiIgcGFyZW50PSIzMDkiIG5hbWU9InBvc3RObyI+CisgICAgICA8QXV0b0luY3JlbWVudD4zMDwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDkwIiBwYXJlbnQ9IjMwOCIgbmFtZT0idXNlcklkIj4KKyAgICA8Y29sdW1uIGlkPSI1MDciIHBhcmVudD0iMzA5IiBuYW1lPSJ1c2VySWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ5MSIgcGFyZW50PSIzMDgiIG5hbWU9InBvc3RDb250ZW50Ij4KKyAgICA8Y29sdW1uIGlkPSI1MDgiIHBhcmVudD0iMzA5IiBuYW1lPSJwb3N0Q29udGVudCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDkyIiBwYXJlbnQ9IjMwOCIgbmFtZT0iaW1hZ2VVcmwiPgorICAgIDxjb2x1bW4gaWQ9IjUwOSIgcGFyZW50PSIzMDkiIG5hbWU9ImltYWdlVXJsIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0OTMiIHBhcmVudD0iMzA4IiBuYW1lPSJwb3N0VGltZSI+CisgICAgPGNvbHVtbiBpZD0iNTEwIiBwYXJlbnQ9IjMwOSIgbmFtZT0icG9zdFRpbWUiPgorICAgICAgPERhc1R5cGU+ZGF0ZXRpbWV8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0OTQiIHBhcmVudD0iMzA4IiBuYW1lPSJwb3N0TGlrZU51bSI+CisgICAgPGNvbHVtbiBpZD0iNTExIiBwYXJlbnQ9IjMwOSIgbmFtZT0icG9zdExpa2VOdW0iPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjY8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjQ5NSIgcGFyZW50PSIzMDgiIG5hbWU9InBvc3RDb2xsZWN0TnVtIj4KKyAgICA8Y29sdW1uIGlkPSI1MTIiIHBhcmVudD0iMzA5IiBuYW1lPSJwb3N0Q29sbGVjdE51bSI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNDk2IiBwYXJlbnQ9IjMwOCIgbmFtZT0idGl0bGUiPgorICAgIDxjb2x1bW4gaWQ9IjUxMyIgcGFyZW50PSIzMDkiIG5hbWU9InRpdGxlIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj44PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI0OTciIHBhcmVudD0iMzA4IiBuYW1lPSJwb3N0VHlwZSI+CisgICAgPGNvbHVtbiBpZD0iNTE0IiBwYXJlbnQ9IjMwOSIgbmFtZT0icG9zdFR5cGUiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjk8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNDk4IiBwYXJlbnQ9IjMwOCIgbmFtZT0icG9zdF9pYmZrXzEiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNTE1IiBwYXJlbnQ9IjMwOSIgbmFtZT0icG9zdF9pYmZrXzEiPgogICAgICAgPENvbE5hbWVzPnVzZXJJZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iNDk5IiBwYXJlbnQ9IjMwOCIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI1MTYiIHBhcmVudD0iMzA5IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5wb3N0Tm88L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNTAwIiBwYXJlbnQ9IjMwOCIgbmFtZT0idXNlcklkIj4KKyAgICA8aW5kZXggaWQ9IjUxNyIgcGFyZW50PSIzMDkiIG5hbWU9InVzZXJJZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcklkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNTAxIiBwYXJlbnQ9IjMwOCIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNTE4IiBwYXJlbnQ9IjMwOSIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNTAyIiBwYXJlbnQ9IjMwOSIgbmFtZT0iaWQiPgotICAgICAgPEF1dG9JbmNyZW1lbnQ+NDwvQXV0b0luY3JlbWVudD4KKyAgICA8Y29sdW1uIGlkPSI1MTkiIHBhcmVudD0iMzEwIiBuYW1lPSJpZCI+CisgICAgICA8QXV0b0luY3JlbWVudD41PC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MDMiIHBhcmVudD0iMzA5IiBuYW1lPSJuYW1lIj4KKyAgICA8Y29sdW1uIGlkPSI1MjAiIHBhcmVudD0iMzEwIiBuYW1lPSJuYW1lIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMTAwKXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDEwMCl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTA0IiBwYXJlbnQ9IjMwOSIgbmFtZT0iZGVzY3JpcHRpb24iPgorICAgIDxjb2x1bW4gaWQ9IjUyMSIgcGFyZW50PSIzMTAiIG5hbWU9ImRlc2NyaXB0aW9uIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoNTAwKXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoNTAwKXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MDUiIHBhcmVudD0iMzA5IiBuYW1lPSJzdGFydF90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI1MjIiIHBhcmVudD0iMzEwIiBuYW1lPSJzdGFydF90aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUwNiIgcGFyZW50PSIzMDkiIG5hbWU9ImVuZF90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI1MjMiIHBhcmVudD0iMzEwIiBuYW1lPSJlbmRfdGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MDciIHBhcmVudD0iMzA5IiBuYW1lPSJkaXNjb3VudF9wZXJjZW50YWdlIj4KKyAgICA8Y29sdW1uIGlkPSI1MjQiIHBhcmVudD0iMzEwIiBuYW1lPSJkaXNjb3VudF9wZXJjZW50YWdlIj4KKyAgICAgIDxEYXNUeXBlPmRvdWJsZXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kb3VibGV8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTA4IiBwYXJlbnQ9IjMwOSIgbmFtZT0iYXBwbGljYWJsZV90b3JyZW50X2lkcyI+CisgICAgPGNvbHVtbiBpZD0iNTI1IiBwYXJlbnQ9IjMxMCIgbmFtZT0iYXBwbGljYWJsZV90b3JyZW50X2lkcyI+CisgICAgICA8RGFzVHlwZT5qc29ufDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjc8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+anNvbnwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MDkiIHBhcmVudD0iMzA5IiBuYW1lPSJjcmVhdGVfdGltZSI+CisgICAgPGNvbHVtbiBpZD0iNTI2IiBwYXJlbnQ9IjMxMCIgbmFtZT0iY3JlYXRlX3RpbWUiPgorICAgICAgPERhc1R5cGU+ZGF0ZXRpbWV8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+Q1VSUkVOVF9USU1FU1RBTVA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj44PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUxMCIgcGFyZW50PSIzMDkiIG5hbWU9InVwZGF0ZV90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI1MjciIHBhcmVudD0iMzEwIiBuYW1lPSJ1cGRhdGVfdGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj5DVVJSRU5UX1RJTUVTVEFNUDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPE9uVXBkYXRlPkNVUlJFTlRfVElNRVNUQU1QPC9PblVwZGF0ZT4KICAgICAgIDxQb3NpdGlvbj45PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUxMSIgcGFyZW50PSIzMDkiIG5hbWU9ImlzX2RlbGV0ZWQiPgorICAgIDxjb2x1bW4gaWQ9IjUyOCIgcGFyZW50PSIzMTAiIG5hbWU9ImlzX2RlbGV0ZWQiPgorICAgICAgPERhc1R5cGU+dGlueWludCgxKXwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4wPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj4xMDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW55aW50KDEpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxpbmRleCBpZD0iNTEyIiBwYXJlbnQ9IjMwOSIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI1MjkiIHBhcmVudD0iMzEwIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz5pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI1MTMiIHBhcmVudD0iMzA5IiBuYW1lPSJpZHhfdGltZSI+CisgICAgPGluZGV4IGlkPSI1MzAiIHBhcmVudD0iMzEwIiBuYW1lPSJpZHhfdGltZSI+CiAgICAgICA8Q29sTmFtZXM+c3RhcnRfdGltZQogZW5kX3RpbWU8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI1MTQiIHBhcmVudD0iMzA5IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI1MzEiIHBhcmVudD0iMzEwIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI1MTUiIHBhcmVudD0iMzEwIiBuYW1lPSJpZCI+CisgICAgPGNvbHVtbiBpZD0iNTMyIiBwYXJlbnQ9IjMxMSIgbmFtZT0iaWQiPgogICAgICAgPEF1dG9JbmNyZW1lbnQ+MzwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTE2IiBwYXJlbnQ9IjMxMCIgbmFtZT0iY29tbWVudF9pZCI+CisgICAgPGNvbHVtbiBpZD0iNTMzIiBwYXJlbnQ9IjMxMSIgbmFtZT0iY29tbWVudF9pZCI+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUxNyIgcGFyZW50PSIzMTAiIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjUzNCIgcGFyZW50PSIzMTEiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MTgiIHBhcmVudD0iMzEwIiBuYW1lPSJpc19saWtlZCI+CisgICAgPGNvbHVtbiBpZD0iNTM1IiBwYXJlbnQ9IjMxMSIgbmFtZT0iaXNfbGlrZWQiPgorICAgICAgPERhc1R5cGU+dGlueWludCgxKXwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4xPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW55aW50KDEpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNTE5IiBwYXJlbnQ9IjMxMCIgbmFtZT0iZmtfY29tbWVudCI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI1MzYiIHBhcmVudD0iMzExIiBuYW1lPSJma19jb21tZW50Ij4KICAgICAgIDxDb2xOYW1lcz5jb21tZW50X2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz5jb21tZW50X2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+c2VlZF9jb21tZW50czwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSI1MjAiIHBhcmVudD0iMzEwIiBuYW1lPSJma191c2VyIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjUzNyIgcGFyZW50PSIzMTEiIG5hbWU9ImZrX3VzZXIiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPE9uRGVsZXRlPmNhc2NhZGU8L09uRGVsZXRlPgogICAgICAgPFJlZkNvbE5hbWVzPnVzZXJfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT51c2VyPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8aW5kZXggaWQ9IjUyMSIgcGFyZW50PSIzMTAiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iNTM4IiBwYXJlbnQ9IjMxMSIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+aWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNTIyIiBwYXJlbnQ9IjMxMCIgbmFtZT0iZmtfY29tbWVudCI+CisgICAgPGluZGV4IGlkPSI1MzkiIHBhcmVudD0iMzExIiBuYW1lPSJma19jb21tZW50Ij4KICAgICAgIDxDb2xOYW1lcz5jb21tZW50X2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI1MjMiIHBhcmVudD0iMzEwIiBuYW1lPSJma191c2VyIj4KKyAgICA8aW5kZXggaWQ9IjU0MCIgcGFyZW50PSIzMTEiIG5hbWU9ImZrX3VzZXIiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI1MjQiIHBhcmVudD0iMzEwIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI1NDEiIHBhcmVudD0iMzExIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI1MjUiIHBhcmVudD0iMzExIiBuYW1lPSJjb21tZW50X2lkIj4KKyAgICA8Y29sdW1uIGlkPSI1NDIiIHBhcmVudD0iMzEyIiBuYW1lPSJjb21tZW50X2lkIj4KICAgICAgIDxBdXRvSW5jcmVtZW50PjExPC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MjYiIHBhcmVudD0iMzExIiBuYW1lPSJzZWVkX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI1NDMiIHBhcmVudD0iMzEyIiBuYW1lPSJzZWVkX2lkIj4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MjciIHBhcmVudD0iMzExIiBuYW1lPSJjb21fY29tbWVudF9pZCI+CisgICAgPGNvbHVtbiBpZD0iNTQ0IiBwYXJlbnQ9IjMxMiIgbmFtZT0iY29tX2NvbW1lbnRfaWQiPgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjM8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUyOCIgcGFyZW50PSIzMTEiIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjU0NSIgcGFyZW50PSIzMTIiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjQ8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUyOSIgcGFyZW50PSIzMTEiIG5hbWU9ImNvbnRlbnQiPgorICAgIDxjb2x1bW4gaWQ9IjU0NiIgcGFyZW50PSIzMTIiIG5hbWU9ImNvbnRlbnQiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjU8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUzMCIgcGFyZW50PSIzMTEiIG5hbWU9ImlzX2Fub255bW91cyI+CisgICAgPGNvbHVtbiBpZD0iNTQ3IiBwYXJlbnQ9IjMxMiIgbmFtZT0iaXNfYW5vbnltb3VzIj4KKyAgICAgIDxEYXNUeXBlPnRpbnlpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW55aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjUzMSIgcGFyZW50PSIzMTEiIG5hbWU9Imxpa2VzX2NvdW50Ij4KKyAgICA8Y29sdW1uIGlkPSI1NDgiIHBhcmVudD0iMzEyIiBuYW1lPSJsaWtlc19jb3VudCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+MDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8UG9zaXRpb24+NzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTMyIiBwYXJlbnQ9IjMxMSIgbmFtZT0icmVwbHlfY291bnQiPgorICAgIDxjb2x1bW4gaWQ9IjU0OSIgcGFyZW50PSIzMTIiIG5hbWU9InJlcGx5X2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4wPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj44PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1MzMiIHBhcmVudD0iMzExIiBuYW1lPSJjb21tZW50X3RpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjU1MCIgcGFyZW50PSIzMTIiIG5hbWU9ImNvbW1lbnRfdGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj45PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNTM0IiBwYXJlbnQ9IjMxMSIgbmFtZT0iZmtfc2VlZF9pZCI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI1NTEiIHBhcmVudD0iMzEyIiBuYW1lPSJma19zZWVkX2lkIj4KICAgICAgIDxDb2xOYW1lcz5zZWVkX2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz5pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnRvcnJlbnQ8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNTM1IiBwYXJlbnQ9IjMxMSIgbmFtZT0ic2VlZF9jb21tZW50c19pYmZrXzIiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNTUyIiBwYXJlbnQ9IjMxMiIgbmFtZT0ic2VlZF9jb21tZW50c19pYmZrXzIiPgogICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFJlZkNvbE5hbWVzPnVzZXJfaWQ8L1JlZkNvbE5hbWVzPgogICAgICAgPFJlZlRhYmxlTmFtZT51c2VyPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8aW5kZXggaWQ9IjUzNiIgcGFyZW50PSIzMTEiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iNTUzIiBwYXJlbnQ9IjMxMiIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+Y29tbWVudF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI1MzciIHBhcmVudD0iMzExIiBuYW1lPSJma19zZWVkX2lkIj4KKyAgICA8aW5kZXggaWQ9IjU1NCIgcGFyZW50PSIzMTIiIG5hbWU9ImZrX3NlZWRfaWQiPgogICAgICAgPENvbE5hbWVzPnNlZWRfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjUzOCIgcGFyZW50PSIzMTEiIG5hbWU9ImNvbV9jb21tZW50X2lkIj4KKyAgICA8aW5kZXggaWQ9IjU1NSIgcGFyZW50PSIzMTIiIG5hbWU9ImNvbV9jb21tZW50X2lkIj4KICAgICAgIDxDb2xOYW1lcz5jb21fY29tbWVudF9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNTM5IiBwYXJlbnQ9IjMxMSIgbmFtZT0idXNlcl9pZCI+CisgICAgPGluZGV4IGlkPSI1NTYiIHBhcmVudD0iMzEyIiBuYW1lPSJ1c2VyX2lkIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNTQwIiBwYXJlbnQ9IjMxMSIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNTU3IiBwYXJlbnQ9IjMxMiIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNTQxIiBwYXJlbnQ9IjMxMiIgbmFtZT0idGFza19pZCI+CisgICAgPGNoZWNrIGlkPSI1NTgiIHBhcmVudD0iMzEzIiBuYW1lPSJzZWVkX3JhdGluZ19jaGtfMSI+CisgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgorICAgICAgPFByZWRpY2F0ZT5gc2NvcmVgIGJldHdlZW4gMCBhbmQgMTA8L1ByZWRpY2F0ZT4KKyAgICA8L2NoZWNrPgorICAgIDxjb2x1bW4gaWQ9IjU1OSIgcGFyZW50PSIzMTMiIG5hbWU9InJhdGluZ19pZCI+CisgICAgICA8QXV0b0luY3JlbWVudD4yPC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoNTApfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU0MiIgcGFyZW50PSIzMTIiIG5hbWU9InRpdGxlIj4KKyAgICA8Y29sdW1uIGlkPSI1NjAiIHBhcmVudD0iMzEzIiBuYW1lPSJzZWVkX2lkIj4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTQzIiBwYXJlbnQ9IjMxMiIgbmFtZT0iZGVzY3JpcHRpb24iPgorICAgIDxjb2x1bW4gaWQ9IjU2MSIgcGFyZW50PSIzMTMiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NDQiIHBhcmVudD0iMzEyIiBuYW1lPSJyZXdhcmRfZXhwZXJpZW5jZSI+CisgICAgPGNvbHVtbiBpZD0iNTYyIiBwYXJlbnQ9IjMxMyIgbmFtZT0ic2NvcmUiPgorICAgICAgPERhc1R5cGU+dGlueWludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTQ1IiBwYXJlbnQ9IjMxMiIgbmFtZT0icmV3YXJkX3BvaW50cyI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI1NjMiIHBhcmVudD0iMzEzIiBuYW1lPSJzZWVkX3JhdGluZ19pYmZrXzEiPgorICAgICAgPENvbE5hbWVzPnNlZWRfaWQ8L0NvbE5hbWVzPgorICAgICAgPFJlZkNvbE5hbWVzPmlkPC9SZWZDb2xOYW1lcz4KKyAgICAgIDxSZWZUYWJsZU5hbWU+dG9ycmVudDwvUmVmVGFibGVOYW1lPgorICAgIDwvZm9yZWlnbi1rZXk+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI1NjQiIHBhcmVudD0iMzEzIiBuYW1lPSJzZWVkX3JhdGluZ19pYmZrXzIiPgorICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgorICAgICAgPFJlZkNvbE5hbWVzPnVzZXJfaWQ8L1JlZkNvbE5hbWVzPgorICAgICAgPFJlZlRhYmxlTmFtZT51c2VyPC9SZWZUYWJsZU5hbWU+CisgICAgPC9mb3JlaWduLWtleT4KKyAgICA8aW5kZXggaWQ9IjU2NSIgcGFyZW50PSIzMTMiIG5hbWU9IlBSSU1BUlkiPgorICAgICAgPENvbE5hbWVzPnJhdGluZ19pZDwvQ29sTmFtZXM+CisgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KKyAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgorICAgIDwvaW5kZXg+CisgICAgPGluZGV4IGlkPSI1NjYiIHBhcmVudD0iMzEzIiBuYW1lPSJVSzJ5cmplNnMwYnQ5aTgwamo3OTRmdmRzeWsiPgorICAgICAgPENvbE5hbWVzPnNlZWRfaWQKK3VzZXJfaWQ8L0NvbE5hbWVzPgorICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CisgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KKyAgICA8L2luZGV4PgorICAgIDxpbmRleCBpZD0iNTY3IiBwYXJlbnQ9IjMxMyIgbmFtZT0idW5pcXVlX3NlZWRfdXNlciI+CisgICAgICA8Q29sTmFtZXM+c2VlZF9pZAordXNlcl9pZDwvQ29sTmFtZXM+CisgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KKyAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgorICAgIDwvaW5kZXg+CisgICAgPGluZGV4IGlkPSI1NjgiIHBhcmVudD0iMzEzIiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KKyAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgorICAgIDwvaW5kZXg+CisgICAgPGtleSBpZD0iNTY5IiBwYXJlbnQ9IjMxMyIgbmFtZT0iUFJJTUFSWSI+CisgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgorICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KKyAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CisgICAgPC9rZXk+CisgICAgPGtleSBpZD0iNTcwIiBwYXJlbnQ9IjMxMyIgbmFtZT0iVUsyeXJqZTZzMGJ0OWk4MGpqNzk0ZnZkc3lrIj4KKyAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlVLMnlyamU2czBidDlpODBqajc5NGZ2ZHN5azwvVW5kZXJseWluZ0luZGV4TmFtZT4KKyAgICA8L2tleT4KKyAgICA8a2V5IGlkPSI1NzEiIHBhcmVudD0iMzEzIiBuYW1lPSJ1bmlxdWVfc2VlZF91c2VyIj4KKyAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPnVuaXF1ZV9zZWVkX3VzZXI8L1VuZGVybHlpbmdJbmRleE5hbWU+CisgICAgPC9rZXk+CisgICAgPGNvbHVtbiBpZD0iNTcyIiBwYXJlbnQ9IjMxNCIgbmFtZT0idGFza19pZCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDUwKXwwczwvRGFzVHlwZT4KKyAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CisgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGNvbHVtbiBpZD0iNTczIiBwYXJlbnQ9IjMxNCIgbmFtZT0idGl0bGUiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgorICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KKyAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KKyAgICA8L2NvbHVtbj4KKyAgICA8Y29sdW1uIGlkPSI1NzQiIHBhcmVudD0iMzE0IiBuYW1lPSJkZXNjcmlwdGlvbiI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CisgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgorICAgICAgPFBvc2l0aW9uPjM8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjU3NSIgcGFyZW50PSIzMTQiIG5hbWU9InJld2FyZF9leHBlcmllbmNlIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KKyAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CisgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGNvbHVtbiBpZD0iNTc2IiBwYXJlbnQ9IjMxNCIgbmFtZT0icmV3YXJkX3BvaW50cyI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjU8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxpbmRleCBpZD0iNTQ2IiBwYXJlbnQ9IjMxMiIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI1NzciIHBhcmVudD0iMzE0IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz50YXNrX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI1NDciIHBhcmVudD0iMzEyIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI1NzgiIHBhcmVudD0iMzE0IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI1NDgiIHBhcmVudD0iMzEzIiBuYW1lPSJpZCI+Ci0gICAgICA8QXV0b0luY3JlbWVudD42PC9BdXRvSW5jcmVtZW50PgorICAgIDxjb2x1bW4gaWQ9IjU3OSIgcGFyZW50PSIzMTUiIG5hbWU9ImlkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50Pjg8L0F1dG9JbmNyZW1lbnQ+CiAgICAgICA8Q29tbWVudD7Dp8KnJiN4OGQ7w6XCrSYjeDkwO0lEPC9Db21tZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NDkiIHBhcmVudD0iMzEzIiBuYW1lPSJpbmZvX2hhc2giPgorICAgIDxjb2x1bW4gaWQ9IjU4MCIgcGFyZW50PSIzMTUiIG5hbWU9ImluZm9faGFzaCI+CiAgICAgICA8Q29tbWVudD7Dp8KnJiN4OGQ7w6XCrSYjeDkwO8Okwr/CocOmJiN4ODE7wq/DpSYjeDkzOyYjeDg4O8OlwrgmI3g4Yzs8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU1MCIgcGFyZW50PSIzMTMiIG5hbWU9ImZpbGVfbmFtZSI+CisgICAgPGNvbHVtbiBpZD0iNTgxIiBwYXJlbnQ9IjMxNSIgbmFtZT0iZmlsZV9uYW1lIj4KICAgICAgIDxDb21tZW50PsOnwqcmI3g4ZDvDpcKtJiN4OTA7w6YmI3g5NjsmI3g4NzvDpMK7wrbDpSYjeDkwOyYjeDhkOzwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTUxIiBwYXJlbnQ9IjMxMyIgbmFtZT0idXBsb2FkZXIiPgorICAgIDxjb2x1bW4gaWQ9IjU4MiIgcGFyZW50PSIzMTUiIG5hbWU9InVwbG9hZGVyIj4KICAgICAgIDxDb21tZW50PsOkwrgmI3g4YTvDpMK8wqDDqCYjeDgwOyYjeDg1OzwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTUyIiBwYXJlbnQ9IjMxMyIgbmFtZT0iY3JlYXRlX3RpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjU4MyIgcGFyZW50PSIzMTUiIG5hbWU9ImNyZWF0ZV90aW1lIj4KICAgICAgIDxDb21tZW50PsOkwrgmI3g4YTvDpMK8wqDDpiYjeDk3O8K2w6kmI3g5NzvCtDwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPkNVUlJFTlRfVElNRVNUQU1QPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU1MyIgcGFyZW50PSIzMTMiIG5hbWU9InVwZGF0ZV90aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI1ODQiIHBhcmVudD0iMzE1IiBuYW1lPSJ1cGRhdGVfdGltZSI+CiAgICAgICA8Q29tbWVudD7DpiYjeDliO8K0w6YmI3g5NjvCsMOmJiN4OTc7wrbDqSYjeDk3O8K0PC9Db21tZW50PgorICAgICAgPERhc1R5cGU+ZGF0ZXRpbWV8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+Q1VSUkVOVF9USU1FU1RBTVA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPE9uVXBkYXRlPkNVUlJFTlRfVElNRVNUQU1QPC9PblVwZGF0ZT4KICAgICAgIDxQb3NpdGlvbj42PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU1NCIgcGFyZW50PSIzMTMiIG5hbWU9InNpemUiPgorICAgIDxjb2x1bW4gaWQ9IjU4NSIgcGFyZW50PSIzMTUiIG5hbWU9InNpemUiPgogICAgICAgPENvbW1lbnQ+w6fCpyYjeDhkO8Olwq0mI3g5MDvDpiYjeDk2OyYjeDg3O8OkwrvCtsOlwqTCp8OlwrAmI3g4Zjs8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjc8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU1NSIgcGFyZW50PSIzMTMiIG5hbWU9InRpdGxlIj4KKyAgICA8Y29sdW1uIGlkPSI1ODYiIHBhcmVudD0iMzE1IiBuYW1lPSJ0aXRsZSI+CiAgICAgICA8Q29tbWVudD7Dp8KnJiN4OGQ7w6XCrSYjeDkwO8OmwqAmI3g4NzvDqcKiJiN4OTg7PC9Db21tZW50PgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj44PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NTYiIHBhcmVudD0iMzEzIiBuYW1lPSJkZXNjcmlwdGlvbiI+CisgICAgPGNvbHVtbiBpZD0iNTg3IiBwYXJlbnQ9IjMxNSIgbmFtZT0iZGVzY3JpcHRpb24iPgogICAgICAgPENvbW1lbnQ+w6fCpyYjeDhkO8Olwq0mI3g5MDvDpiYjeDhmOyYjeDhmO8Oowr/CsDwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPnRleHR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+OTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50ZXh0fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU1NyIgcGFyZW50PSIzMTMiIG5hbWU9InRhZ3MiPgorICAgIDxjb2x1bW4gaWQ9IjU4OCIgcGFyZW50PSIzMTUiIG5hbWU9InRhZ3MiPgogICAgICAgPENvbW1lbnQ+w6fCpyYjeDhkO8Olwq0mI3g5MDvDpsKgJiN4ODc7w6fCrcK+PC9Db21tZW50PgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjEwPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NTgiIHBhcmVudD0iMzEzIiBuYW1lPSJjYXRlZ29yeSI+CisgICAgPGNvbHVtbiBpZD0iNTg5IiBwYXJlbnQ9IjMxNSIgbmFtZT0iY2F0ZWdvcnkiPgogICAgICAgPENvbW1lbnQ+w6fCpyYjeDhkO8Olwq0mI3g5MDvDpSYjeDg4OyYjeDg2O8OnwrHCuzwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4xMTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTU5IiBwYXJlbnQ9IjMxMyIgbmFtZT0iaW1hZ2VfdXJsIj4KKyAgICA8Y29sdW1uIGlkPSI1OTAiIHBhcmVudD0iMzE1IiBuYW1lPSJpbWFnZV91cmwiPgogICAgICAgPENvbW1lbnQ+w6fCpyYjeDhkO8Olwq0mI3g5MDvDpcKwJiN4ODE7w6kmI3g5ZDvCosOlJiN4OWI7wr5VUkw8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MTI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU2MCIgcGFyZW50PSIzMTMiIG5hbWU9ImxlZWNoZXJzIj4KKyAgICA8Y29sdW1uIGlkPSI1OTEiIHBhcmVudD0iMzE1IiBuYW1lPSJsZWVjaGVycyI+CiAgICAgICA8Q29tbWVudD7DpMK4JiN4OGI7w6jCvcK9w6bCrMKhw6YmI3g5NTvCsDwvQ29tbWVudD4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4wPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj4xMzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTYxIiBwYXJlbnQ9IjMxMyIgbmFtZT0ic2VlZGVycyI+CisgICAgPGNvbHVtbiBpZD0iNTkyIiBwYXJlbnQ9IjMxNSIgbmFtZT0ic2VlZGVycyI+CiAgICAgICA8Q29tbWVudD7DpSYjeDgxOyYjeDlhO8OnwqcmI3g4ZDvDpiYjeDk1O8KwPC9Db21tZW50PgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPFBvc2l0aW9uPjE0PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NjIiIHBhcmVudD0iMzEzIiBuYW1lPSJjb21tZW50cyI+CisgICAgPGNvbHVtbiBpZD0iNTkzIiBwYXJlbnQ9IjMxNSIgbmFtZT0iY29tbWVudHMiPgogICAgICAgPENvbW1lbnQ+w6jCryYjeDg0O8Oowq7CusOmJiN4OTU7wrA8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+MDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8UG9zaXRpb24+MTU8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU2MyIgcGFyZW50PSIzMTMiIG5hbWU9InZpZXdzIj4KKyAgICA8Y29sdW1uIGlkPSI1OTQiIHBhcmVudD0iMzE1IiBuYW1lPSJ2aWV3cyI+CiAgICAgICA8Q29tbWVudD7DpsK1JiN4OGY7w6jCpyYjeDg4O8OmwqzCocOmJiN4OTU7wrA8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+MDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8UG9zaXRpb24+MTY8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU2NCIgcGFyZW50PSIzMTMiIG5hbWU9ImhpdHMiPgorICAgIDxjb2x1bW4gaWQ9IjU5NSIgcGFyZW50PSIzMTUiIG5hbWU9ImhpdHMiPgogICAgICAgPENvbW1lbnQ+w6cmI3g4MjvCucOlJiN4ODc7wrvDpsKswqHDpiYjeDk1O8KwPC9Db21tZW50PgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPFBvc2l0aW9uPjE3PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NjUiIHBhcmVudD0iMzEzIiBuYW1lPSJwcm9tb3Rpb25fdGltZV90eXBlIj4KKyAgICA8Y29sdW1uIGlkPSI1OTYiIHBhcmVudD0iMzE1IiBuYW1lPSJwcm9tb3Rpb25fdGltZV90eXBlIj4KICAgICAgIDxDb21tZW50PsOkwr8mI3g4MzvDqSYjeDk0OyYjeDgwO8OmJiN4OTc7wrbDqSYjeDk3O8K0w6fCscK7w6UmI3g5ZTsmI3g4Yjs8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+MDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8UG9zaXRpb24+MTg8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU2NiIgcGFyZW50PSIzMTMiIG5hbWU9InByb21vdGlvbl91bnRpbCI+CisgICAgPGNvbHVtbiBpZD0iNTk3IiBwYXJlbnQ9IjMxNSIgbmFtZT0icHJvbW90aW9uX3VudGlsIj4KICAgICAgIDxDb21tZW50PsOkwr8mI3g4MzvDqSYjeDk0OyYjeDgwO8OmJiN4ODg7wqrDpsKtwqLDpiYjeDk3O8Klw6YmI3g5YzsmI3g5Zjs8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4xOTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NjciIHBhcmVudD0iMzEzIiBuYW1lPSJ0b3JyZW50X2ZpbGUiPgorICAgIDxjb2x1bW4gaWQ9IjU5OCIgcGFyZW50PSIzMTUiIG5hbWU9InRvcnJlbnRfZmlsZSI+CiAgICAgICA8Q29tbWVudD7Dp8KnJiN4OGQ7w6XCrSYjeDkwO8OmJiN4OTY7JiN4ODc7w6TCu8K2w6/CvCYjeDg4O8OkwromI3g4YzvDqMK/JiN4OWI7w6UmI3g4ODvCtsOvwrwmI3g4OTs8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT5sb25nYmxvYnwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4yMDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5sb25nYmxvYnwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NjgiIHBhcmVudD0iMzEzIiBuYW1lPSJpc19kZWxldGVkIj4KKyAgICA8Y29sdW1uIGlkPSI1OTkiIHBhcmVudD0iMzE1IiBuYW1lPSJpc19kZWxldGVkIj4KICAgICAgIDxDb21tZW50PsOmJiN4OTg7wq/DpSYjeDkwO8Kmw6UmI3g4ODvCoMOpJiN4OTk7wqQ8L0NvbW1lbnQ+CisgICAgICA8RGFzVHlwZT50aW55aW50KDEpfDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPFBvc2l0aW9uPjIxPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnRpbnlpbnQoMSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGluZGV4IGlkPSI1NjkiIHBhcmVudD0iMzEzIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjYwMCIgcGFyZW50PSIzMTUiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmlkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI1NzAiIHBhcmVudD0iMzEzIiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI2MDEiIHBhcmVudD0iMzE1IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI1NzEiIHBhcmVudD0iMzE0IiBuYW1lPSJ1c2VyX2lkIj4KLSAgICAgIDxBdXRvSW5jcmVtZW50PjY8L0F1dG9JbmNyZW1lbnQ+CisgICAgPGNvbHVtbiBpZD0iNjAyIiBwYXJlbnQ9IjMxNiIgbmFtZT0ibGlrZV9pZCI+CisgICAgICA8QXV0b0luY3JlbWVudD40PC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NzIiIHBhcmVudD0iMzE0IiBuYW1lPSJ1c2VybmFtZSI+CisgICAgPGNvbHVtbiBpZD0iNjAzIiBwYXJlbnQ9IjMxNiIgbmFtZT0idXNlcl9pZCI+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjI8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU3MyIgcGFyZW50PSIzMTQiIG5hbWU9ImF2YXRhcl91cmwiPgorICAgIDxjb2x1bW4gaWQ9IjYwNCIgcGFyZW50PSIzMTYiIG5hbWU9InRvcnJlbnRfaWQiPgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NzQiIHBhcmVudD0iMzE0IiBuYW1lPSJlbWFpbCI+CisgICAgPGNvbHVtbiBpZD0iNjA1IiBwYXJlbnQ9IjMxNiIgbmFtZT0iaXNfbGlrZWQiPgorICAgICAgPERhc1R5cGU+dGlueWludCgxKXwwczwvRGFzVHlwZT4KKyAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4wPC9EZWZhdWx0RXhwcmVzc2lvbj4KKyAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KKyAgICA8L2NvbHVtbj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjYwNiIgcGFyZW50PSIzMTYiIG5hbWU9ImZrX3VzZXJfaWQiPgorICAgICAgPENvbE5hbWVzPnVzZXJfaWQ8L0NvbE5hbWVzPgorICAgICAgPFJlZkNvbE5hbWVzPnVzZXJfaWQ8L1JlZkNvbE5hbWVzPgorICAgICAgPFJlZlRhYmxlTmFtZT51c2VyPC9SZWZUYWJsZU5hbWU+CisgICAgPC9mb3JlaWduLWtleT4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjYwNyIgcGFyZW50PSIzMTYiIG5hbWU9ImZrX3RvcnJlbnRfaWQiPgorICAgICAgPENvbE5hbWVzPnRvcnJlbnRfaWQ8L0NvbE5hbWVzPgorICAgICAgPFJlZkNvbE5hbWVzPmlkPC9SZWZDb2xOYW1lcz4KKyAgICAgIDxSZWZUYWJsZU5hbWU+dG9ycmVudDwvUmVmVGFibGVOYW1lPgorICAgIDwvZm9yZWlnbi1rZXk+CisgICAgPGluZGV4IGlkPSI2MDgiIHBhcmVudD0iMzE2IiBuYW1lPSJQUklNQVJZIj4KKyAgICAgIDxDb2xOYW1lcz5saWtlX2lkPC9Db2xOYW1lcz4KKyAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgorICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CisgICAgPC9pbmRleD4KKyAgICA8aW5kZXggaWQ9IjYwOSIgcGFyZW50PSIzMTYiIG5hbWU9InVuaXF1ZV91c2VyX3RvcnJlbnQiPgorICAgICAgPENvbE5hbWVzPnVzZXJfaWQKK3RvcnJlbnRfaWQ8L0NvbE5hbWVzPgorICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CisgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KKyAgICA8L2luZGV4PgorICAgIDxpbmRleCBpZD0iNjEwIiBwYXJlbnQ9IjMxNiIgbmFtZT0iZmtfdG9ycmVudF9pZCI+CisgICAgICA8Q29sTmFtZXM+dG9ycmVudF9pZDwvQ29sTmFtZXM+CisgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KKyAgICA8L2luZGV4PgorICAgIDxrZXkgaWQ9IjYxMSIgcGFyZW50PSIzMTYiIG5hbWU9IlBSSU1BUlkiPgorICAgICAgPE5hbWVTdXJyb2dhdGU+MTwvTmFtZVN1cnJvZ2F0ZT4KKyAgICAgIDxQcmltYXJ5PjE8L1ByaW1hcnk+CisgICAgICA8VW5kZXJseWluZ0luZGV4TmFtZT5QUklNQVJZPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgorICAgIDwva2V5PgorICAgIDxrZXkgaWQ9IjYxMiIgcGFyZW50PSIzMTYiIG5hbWU9InVuaXF1ZV91c2VyX3RvcnJlbnQiPgorICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+dW5pcXVlX3VzZXJfdG9ycmVudDwvVW5kZXJseWluZ0luZGV4TmFtZT4KKyAgICA8L2tleT4KKyAgICA8Y29sdW1uIGlkPSI2MTMiIHBhcmVudD0iMzE3IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50Pjk8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5pbnR8MHM8L0Rhc1R5cGU+CisgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgorICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjYxNCIgcGFyZW50PSIzMTciIG5hbWU9InVzZXJuYW1lIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KKyAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CisgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGNvbHVtbiBpZD0iNjE1IiBwYXJlbnQ9IjMxNyIgbmFtZT0iYXZhdGFyX3VybCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CisgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgorICAgICAgPFBvc2l0aW9uPjM8L1Bvc2l0aW9uPgorICAgIDwvY29sdW1uPgorICAgIDxjb2x1bW4gaWQ9IjYxNiIgcGFyZW50PSIzMTciIG5hbWU9ImVtYWlsIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTc1IiBwYXJlbnQ9IjMxNCIgbmFtZT0icGFzc3dvcmQiPgorICAgIDxjb2x1bW4gaWQ9IjYxNyIgcGFyZW50PSIzMTciIG5hbWU9InBhc3N3b3JkIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+NTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTc2IiBwYXJlbnQ9IjMxNCIgbmFtZT0icm9sZSI+CisgICAgPGNvbHVtbiBpZD0iNjE4IiBwYXJlbnQ9IjMxNyIgbmFtZT0icm9sZSI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjY8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU3NyIgcGFyZW50PSIzMTQiIG5hbWU9Imludml0ZV9jb3VudCI+CisgICAgPGNvbHVtbiBpZD0iNjE5IiBwYXJlbnQ9IjMxNyIgbmFtZT0iaW52aXRlX2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj43PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1NzgiIHBhcmVudD0iMzE0IiBuYW1lPSJsZXZlbCI+CisgICAgPGNvbHVtbiBpZD0iNjIwIiBwYXJlbnQ9IjMxNyIgbmFtZT0ibGV2ZWwiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjg8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU3OSIgcGFyZW50PSIzMTQiIG5hbWU9InVwbG9hZF9jb3VudCI+CisgICAgPGNvbHVtbiBpZD0iNjIxIiBwYXJlbnQ9IjMxNyIgbmFtZT0idXBsb2FkX2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmZsb2F0fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjk8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+ZmxvYXR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTgwIiBwYXJlbnQ9IjMxNCIgbmFtZT0iZG93bmxvYWRfY291bnQiPgorICAgIDxjb2x1bW4gaWQ9IjYyMiIgcGFyZW50PSIzMTciIG5hbWU9ImRvd25sb2FkX2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmZsb2F0fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjEwPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmZsb2F0fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU4MSIgcGFyZW50PSIzMTQiIG5hbWU9InNoYXJlX3JhdGUiPgorICAgIDxjb2x1bW4gaWQ9IjYyMyIgcGFyZW50PSIzMTciIG5hbWU9InNoYXJlX3JhdGUiPgorICAgICAgPERhc1R5cGU+ZmxvYXR8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MTE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+ZmxvYXR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTgyIiBwYXJlbnQ9IjMxNCIgbmFtZT0icmVnaXN0cmF0aW9uX2RhdGUiPgorICAgIDxjb2x1bW4gaWQ9IjYyNCIgcGFyZW50PSIzMTciIG5hbWU9InJlZ2lzdHJhdGlvbl9kYXRlIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xMjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1ODMiIHBhcmVudD0iMzE0IiBuYW1lPSJsYXN0X2xvZ2luX3RpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjYyNSIgcGFyZW50PSIzMTciIG5hbWU9Imxhc3RfbG9naW5fdGltZSI+CisgICAgICA8RGFzVHlwZT5kYXRldGltZXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4xMzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5kYXRldGltZXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1ODQiIHBhcmVudD0iMzE0IiBuYW1lPSJ1c2VyX3BvaW50cyI+CisgICAgPGNvbHVtbiBpZD0iNjI2IiBwYXJlbnQ9IjMxNyIgbmFtZT0idXNlcl9wb2ludHMiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjE0PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1ODUiIHBhcmVudD0iMzE0IiBuYW1lPSJpc19wcm9tbyI+CisgICAgPGNvbHVtbiBpZD0iNjI3IiBwYXJlbnQ9IjMxNyIgbmFtZT0iaXNfcHJvbW8iPgorICAgICAgPERhc1R5cGU+dGlueWludCgxKXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj4xNTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW55aW50KDEpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU4NiIgcGFyZW50PSIzMTQiIG5hbWU9ImN1cnJlbnRfZXhwZXJpZW5jZSI+CisgICAgPGNvbHVtbiBpZD0iNjI4IiBwYXJlbnQ9IjMxNyIgbmFtZT0iY3VycmVudF9leHBlcmllbmNlIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4wPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTY8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU4NyIgcGFyZW50PSIzMTQiIG5hbWU9ImN1cnJlbnRfc2VlZGluZ19ob3VycyI+CisgICAgPGNvbHVtbiBpZD0iNjI5IiBwYXJlbnQ9IjMxNyIgbmFtZT0iY3VycmVudF9zZWVkaW5nX2hvdXJzIj4KKyAgICAgIDxEYXNUeXBlPmZsb2F0fDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xNzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5mbG9hdHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1ODgiIHBhcmVudD0iMzE0IiBuYW1lPSJnZW5kZXIiPgorICAgIDxjb2x1bW4gaWQ9IjYzMCIgcGFyZW50PSIzMTciIG5hbWU9ImdlbmRlciI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MTg8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU4OSIgcGFyZW50PSIzMTQiIG5hbWU9ImRlc2NyaXB0aW9uIj4KKyAgICA8Y29sdW1uIGlkPSI2MzEiIHBhcmVudD0iMzE3IiBuYW1lPSJkZXNjcmlwdGlvbiI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+MTk8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjU5MCIgcGFyZW50PSIzMTQiIG5hbWU9ImhvYmJpZXMiPgorICAgIDxjb2x1bW4gaWQ9IjYzMiIgcGFyZW50PSIzMTciIG5hbWU9ImhvYmJpZXMiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjIwPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1OTEiIHBhcmVudD0iMzE0IiBuYW1lPSJyZWdpc3RyYXRpb25fdGltZSI+CisgICAgPGNvbHVtbiBpZD0iNjMzIiBwYXJlbnQ9IjMxNyIgbmFtZT0icmVnaXN0cmF0aW9uX3RpbWUiPgorICAgICAgPERhc1R5cGU+dGltZXN0YW1wfDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPkNVUlJFTlRfVElNRVNUQU1QPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj4yMTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW1lc3RhbXB8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSI1OTIiIHBhcmVudD0iMzE0IiBuYW1lPSJma191c2VyX2xldmVsIj4KKyAgICA8Y29sdW1uIGlkPSI2MzQiIHBhcmVudD0iMzE3IiBuYW1lPSJmcmllbmQiPgorICAgICAgPERhc1R5cGU+dGV4dHwwczwvRGFzVHlwZT4KKyAgICAgIDxQb3NpdGlvbj4yMjwvUG9zaXRpb24+CisgICAgPC9jb2x1bW4+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI2MzUiIHBhcmVudD0iMzE3IiBuYW1lPSJma191c2VyX2xldmVsIj4KICAgICAgIDxDb2xOYW1lcz5sZXZlbDwvQ29sTmFtZXM+CiAgICAgICA8T25EZWxldGU+c2V0LW51bGw8L09uRGVsZXRlPgogICAgICAgPE9uVXBkYXRlPmNhc2NhZGU8L09uVXBkYXRlPgogICAgICAgPFJlZkNvbE5hbWVzPmxldmVsX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+bGV2ZWw8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxpbmRleCBpZD0iNTkzIiBwYXJlbnQ9IjMxNCIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGluZGV4IGlkPSI2MzYiIHBhcmVudD0iMzE3IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjU5NCIgcGFyZW50PSIzMTQiIG5hbWU9ImZrX3VzZXJfbGV2ZWwiPgorICAgIDxpbmRleCBpZD0iNjM3IiBwYXJlbnQ9IjMxNyIgbmFtZT0iZmtfdXNlcl9sZXZlbCI+CiAgICAgICA8Q29sTmFtZXM+bGV2ZWw8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI1OTUiIHBhcmVudD0iMzE0IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI2MzgiIHBhcmVudD0iMzE3IiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI1OTYiIHBhcmVudD0iMzE1IiBuYW1lPSJkeW5hbWljX2lkIj4KLSAgICAgIDxBdXRvSW5jcmVtZW50PjY8L0F1dG9JbmNyZW1lbnQ+CisgICAgPGNvbHVtbiBpZD0iNjM5IiBwYXJlbnQ9IjMxOCIgbmFtZT0iZHluYW1pY19pZCI+CisgICAgICA8QXV0b0luY3JlbWVudD45PC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI1OTciIHBhcmVudD0iMzE1IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI2NDAiIHBhcmVudD0iMzE4IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTk4IiBwYXJlbnQ9IjMxNSIgbmFtZT0idGl0bGUiPgorICAgIDxjb2x1bW4gaWQ9IjY0MSIgcGFyZW50PSIzMTgiIG5hbWU9InRpdGxlIj4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MzwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNTk5IiBwYXJlbnQ9IjMxNSIgbmFtZT0iY29udGVudCI+CisgICAgPGNvbHVtbiBpZD0iNjQyIiBwYXJlbnQ9IjMxOCIgbmFtZT0iY29udGVudCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT52YXJjaGFyKDI1NSl8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNjAwIiBwYXJlbnQ9IjMxNSIgbmFtZT0iaW1hZ2VfdXJsIj4KKyAgICA8Y29sdW1uIGlkPSI2NDMiIHBhcmVudD0iMzE4IiBuYW1lPSJpbWFnZV91cmwiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPFBvc2l0aW9uPjU8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjYwMSIgcGFyZW50PSIzMTUiIG5hbWU9InRpbWUiPgorICAgIDxjb2x1bW4gaWQ9IjY0NCIgcGFyZW50PSIzMTgiIG5hbWU9InRpbWUiPgorICAgICAgPERhc1R5cGU+ZGF0ZXRpbWV8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjY8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+ZGF0ZXRpbWV8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNjAyIiBwYXJlbnQ9IjMxNSIgbmFtZT0ibGlrZXNfY291bnQiPgorICAgIDxjb2x1bW4gaWQ9IjY0NSIgcGFyZW50PSIzMTgiIG5hbWU9Imxpa2VzX2NvdW50Ij4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxEZWZhdWx0RXhwcmVzc2lvbj4wPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj43PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MDMiIHBhcmVudD0iMzE1IiBuYW1lPSJjb21tZW50c19jb3VudCI+CisgICAgPGNvbHVtbiBpZD0iNjQ2IiBwYXJlbnQ9IjMxOCIgbmFtZT0iY29tbWVudHNfY291bnQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPFBvc2l0aW9uPjg8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+aW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNjA0IiBwYXJlbnQ9IjMxNSIgbmFtZT0idXNlcl9keW5hbWljX2liZmtfMSI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI2NDciIHBhcmVudD0iMzE4IiBuYW1lPSJ1c2VyX2R5bmFtaWNfaWJma18xIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSI2MDUiIHBhcmVudD0iMzE1IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjY0OCIgcGFyZW50PSIzMTgiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmR5bmFtaWNfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNjA2IiBwYXJlbnQ9IjMxNSIgbmFtZT0idXNlcl9pZCI+CisgICAgPGluZGV4IGlkPSI2NDkiIHBhcmVudD0iMzE4IiBuYW1lPSJ1c2VyX2lkIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNjA3IiBwYXJlbnQ9IjMxNSIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNjUwIiBwYXJlbnQ9IjMxOCIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGNvbHVtbiBpZD0iNjA4IiBwYXJlbnQ9IjMxNiIgbmFtZT0iaW52aXRlX2lkIj4KLSAgICAgIDxBdXRvSW5jcmVtZW50PjM8L0F1dG9JbmNyZW1lbnQ+CisgICAgPGNvbHVtbiBpZD0iNjUxIiBwYXJlbnQ9IjMxOSIgbmFtZT0iaW52aXRlX2lkIj4KKyAgICAgIDxBdXRvSW5jcmVtZW50PjY8L0F1dG9JbmNyZW1lbnQ+CisgICAgICA8RGFzVHlwZT5iaWdpbnR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjE8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+YmlnaW50fDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjYwOSIgcGFyZW50PSIzMTYiIG5hbWU9InVzZXJfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjY1MiIgcGFyZW50PSIzMTkiIG5hbWU9InVzZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MTAiIHBhcmVudD0iMzE2IiBuYW1lPSJpbnZpdGVfY29kZSI+CisgICAgPGNvbHVtbiBpZD0iNjUzIiBwYXJlbnQ9IjMxOSIgbmFtZT0iaW52aXRlX2NvZGUiPgorICAgICAgPERhc1R5cGU+dmFyY2hhcigyNTUpfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MTEiIHBhcmVudD0iMzE2IiBuYW1lPSJpc191c2VkIj4KKyAgICA8Y29sdW1uIGlkPSI2NTQiIHBhcmVudD0iMzE5IiBuYW1lPSJpc191c2VkIj4KKyAgICAgIDxEYXNUeXBlPnRpbnlpbnQoMSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8RGVmYXVsdEV4cHJlc3Npb24+MDwvRGVmYXVsdEV4cHJlc3Npb24+CiAgICAgICA8UG9zaXRpb24+NDwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT50aW55aW50KDEpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjYxMiIgcGFyZW50PSIzMTYiIG5hbWU9ImNyZWF0ZWRfYXQiPgorICAgIDxjb2x1bW4gaWQ9IjY1NSIgcGFyZW50PSIzMTkiIG5hbWU9ImNyZWF0ZWRfYXQiPgorICAgICAgPERhc1R5cGU+dGltZXN0YW1wfDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPkNVUlJFTlRfVElNRVNUQU1QPC9EZWZhdWx0RXhwcmVzc2lvbj4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnRpbWVzdGFtcHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjYxMyIgcGFyZW50PSIzMTYiIG5hbWU9InVzZXJfaW52aXRlX2NvZGVfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjY1NiIgcGFyZW50PSIzMTkiIG5hbWU9InVzZXJfaW52aXRlX2NvZGVfaWJma18xIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSI2MTQiIHBhcmVudD0iMzE2IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjY1NyIgcGFyZW50PSIzMTkiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPmludml0ZV9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICAgIDxVbmlxdWU+MTwvVW5pcXVlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI2MTUiIHBhcmVudD0iMzE2IiBuYW1lPSJpbnZpdGVfY29kZSI+CisgICAgPGluZGV4IGlkPSI2NTgiIHBhcmVudD0iMzE5IiBuYW1lPSJpbnZpdGVfY29kZSI+CiAgICAgICA8Q29sTmFtZXM+aW52aXRlX2NvZGU8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNjE2IiBwYXJlbnQ9IjMxNiIgbmFtZT0idXNlcl9pZCI+CisgICAgPGluZGV4IGlkPSI2NTkiIHBhcmVudD0iMzE5IiBuYW1lPSJ1c2VyX2lkIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNjE3IiBwYXJlbnQ9IjMxNiIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNjYwIiBwYXJlbnQ9IjMxOSIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CiAgICAgPC9rZXk+Ci0gICAgPGtleSBpZD0iNjE4IiBwYXJlbnQ9IjMxNiIgbmFtZT0iaW52aXRlX2NvZGUiPgorICAgIDxrZXkgaWQ9IjY2MSIgcGFyZW50PSIzMTkiIG5hbWU9Imludml0ZV9jb2RlIj4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPmludml0ZV9jb2RlPC9VbmRlcmx5aW5nSW5kZXhOYW1lPgogICAgIDwva2V5PgotICAgIDxjb2x1bW4gaWQ9IjYxOSIgcGFyZW50PSIzMTciIG5hbWU9Im1lc3NhZ2VfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjY2MiIgcGFyZW50PSIzMjAiIG5hbWU9Im1lc3NhZ2VfaWQiPgogICAgICAgPEF1dG9JbmNyZW1lbnQ+MjwvQXV0b0luY3JlbWVudD4KKyAgICAgIDxEYXNUeXBlPmJpZ2ludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MTwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5iaWdpbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNjIwIiBwYXJlbnQ9IjMxNyIgbmFtZT0ic2VuZGVyX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI2NjMiIHBhcmVudD0iMzIwIiBuYW1lPSJzZW5kZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4yPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MjEiIHBhcmVudD0iMzE3IiBuYW1lPSJyZWNlaXZlcl9pZCI+CisgICAgPGNvbHVtbiBpZD0iNjY0IiBwYXJlbnQ9IjMyMCIgbmFtZT0icmVjZWl2ZXJfaWQiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4zPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MjIiIHBhcmVudD0iMzE3IiBuYW1lPSJjb250ZW50Ij4KKyAgICA8Y29sdW1uIGlkPSI2NjUiIHBhcmVudD0iMzIwIiBuYW1lPSJjb250ZW50Ij4KKyAgICAgIDxEYXNUeXBlPnZhcmNoYXIoMjU1KXwwczwvRGFzVHlwZT4KICAgICAgIDxQb3NpdGlvbj40PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPnZhcmNoYXIoMjU1KXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MjMiIHBhcmVudD0iMzE3IiBuYW1lPSJ0aW1lIj4KKyAgICA8Y29sdW1uIGlkPSI2NjYiIHBhcmVudD0iMzIwIiBuYW1lPSJ0aW1lIj4KKyAgICAgIDxEYXNUeXBlPmRhdGV0aW1lfDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmRhdGV0aW1lfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxmb3JlaWduLWtleSBpZD0iNjI0IiBwYXJlbnQ9IjMxNyIgbmFtZT0idXNlcl9tZXNzYWdlc19pYmZrXzEiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNjY3IiBwYXJlbnQ9IjMyMCIgbmFtZT0idXNlcl9tZXNzYWdlc19pYmZrXzEiPgogICAgICAgPENvbE5hbWVzPnNlbmRlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8UmVmQ29sTmFtZXM+dXNlcl9pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnVzZXI8L1JlZlRhYmxlTmFtZT4KICAgICA8L2ZvcmVpZ24ta2V5PgotICAgIDxmb3JlaWduLWtleSBpZD0iNjI1IiBwYXJlbnQ9IjMxNyIgbmFtZT0idXNlcl9tZXNzYWdlc19pYmZrXzIiPgorICAgIDxmb3JlaWduLWtleSBpZD0iNjY4IiBwYXJlbnQ9IjMyMCIgbmFtZT0idXNlcl9tZXNzYWdlc19pYmZrXzIiPgogICAgICAgPENvbE5hbWVzPnJlY2VpdmVyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGluZGV4IGlkPSI2MjYiIHBhcmVudD0iMzE3IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8aW5kZXggaWQ9IjY2OSIgcGFyZW50PSIzMjAiIG5hbWU9IlBSSU1BUlkiPgogICAgICAgPENvbE5hbWVzPm1lc3NhZ2VfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgICA8VW5pcXVlPjE8L1VuaXF1ZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNjI3IiBwYXJlbnQ9IjMxNyIgbmFtZT0ic2VuZGVyX2lkIj4KKyAgICA8aW5kZXggaWQ9IjY3MCIgcGFyZW50PSIzMjAiIG5hbWU9InNlbmRlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+c2VuZGVyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGluZGV4IGlkPSI2MjgiIHBhcmVudD0iMzE3IiBuYW1lPSJyZWNlaXZlcl9pZCI+CisgICAgPGluZGV4IGlkPSI2NzEiIHBhcmVudD0iMzIwIiBuYW1lPSJyZWNlaXZlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+cmVjZWl2ZXJfaWQ8L0NvbE5hbWVzPgogICAgICAgPFR5cGU+YnRyZWU8L1R5cGU+CiAgICAgPC9pbmRleD4KLSAgICA8a2V5IGlkPSI2MjkiIHBhcmVudD0iMzE3IiBuYW1lPSJQUklNQVJZIj4KKyAgICA8a2V5IGlkPSI2NzIiIHBhcmVudD0iMzIwIiBuYW1lPSJQUklNQVJZIj4KICAgICAgIDxOYW1lU3Vycm9nYXRlPjE8L05hbWVTdXJyb2dhdGU+CiAgICAgICA8UHJpbWFyeT4xPC9QcmltYXJ5PgogICAgICAgPFVuZGVybHlpbmdJbmRleE5hbWU+UFJJTUFSWTwvVW5kZXJseWluZ0luZGV4TmFtZT4KICAgICA8L2tleT4KLSAgICA8Y29sdW1uIGlkPSI2MzAiIHBhcmVudD0iMzE4IiBuYW1lPSJzdGF0dXNfaWQiPgorICAgIDxjb2x1bW4gaWQ9IjY3MyIgcGFyZW50PSIzMjEiIG5hbWU9InN0YXR1c19pZCI+CiAgICAgICA8QXV0b0luY3JlbWVudD4zPC9BdXRvSW5jcmVtZW50PgorICAgICAgPERhc1R5cGU+YmlnaW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj4xPC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmJpZ2ludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MzEiIHBhcmVudD0iMzE4IiBuYW1lPSJ1c2VyX2lkIj4KKyAgICA8Y29sdW1uIGlkPSI2NzQiIHBhcmVudD0iMzIxIiBuYW1lPSJ1c2VyX2lkIj4KKyAgICAgIDxEYXNUeXBlPmludHwwczwvRGFzVHlwZT4KICAgICAgIDxOb3ROdWxsPjE8L05vdE51bGw+CiAgICAgICA8UG9zaXRpb24+MjwvUG9zaXRpb24+Ci0gICAgICA8U3RvcmVkVHlwZT5pbnR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNjMyIiBwYXJlbnQ9IjMxOCIgbmFtZT0idGFza19pZCI+CisgICAgPGNvbHVtbiBpZD0iNjc1IiBwYXJlbnQ9IjMyMSIgbmFtZT0idGFza19pZCI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjM8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjYzMyIgcGFyZW50PSIzMTgiIG5hbWU9ImN1cnJlbnRfcHJvZ3Jlc3MiPgorICAgIDxjb2x1bW4gaWQ9IjY3NiIgcGFyZW50PSIzMjEiIG5hbWU9ImN1cnJlbnRfcHJvZ3Jlc3MiPgorICAgICAgPERhc1R5cGU+ZmxvYXR8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjQ8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+ZmxvYXR8MHM8L1N0b3JlZFR5cGU+CiAgICAgPC9jb2x1bW4+Ci0gICAgPGNvbHVtbiBpZD0iNjM0IiBwYXJlbnQ9IjMxOCIgbmFtZT0iY3VycmVudF9leHBlcmllbmNlIj4KKyAgICA8Y29sdW1uIGlkPSI2NzciIHBhcmVudD0iMzIxIiBuYW1lPSJjdXJyZW50X2V4cGVyaWVuY2UiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj41PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MzUiIHBhcmVudD0iMzE4IiBuYW1lPSJjdXJyZW50X3BvaW50cyI+CisgICAgPGNvbHVtbiBpZD0iNjc4IiBwYXJlbnQ9IjMyMSIgbmFtZT0iY3VycmVudF9wb2ludHMiPgorICAgICAgPERhc1R5cGU+aW50fDBzPC9EYXNUeXBlPgogICAgICAgPE5vdE51bGw+MTwvTm90TnVsbD4KICAgICAgIDxQb3NpdGlvbj42PC9Qb3NpdGlvbj4KLSAgICAgIDxTdG9yZWRUeXBlPmludHwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Y29sdW1uIGlkPSI2MzYiIHBhcmVudD0iMzE4IiBuYW1lPSJzdGF0dXMiPgorICAgIDxjb2x1bW4gaWQ9IjY3OSIgcGFyZW50PSIzMjEiIG5hbWU9InN0YXR1cyI+CisgICAgICA8RGFzVHlwZT52YXJjaGFyKDI1NSl8MHM8L0Rhc1R5cGU+CiAgICAgICA8Tm90TnVsbD4xPC9Ob3ROdWxsPgogICAgICAgPFBvc2l0aW9uPjc8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dmFyY2hhcigyNTUpfDBzPC9TdG9yZWRUeXBlPgogICAgIDwvY29sdW1uPgotICAgIDxjb2x1bW4gaWQ9IjYzNyIgcGFyZW50PSIzMTgiIG5hbWU9ImlzX3Jld2FyZF9jbGFpbWVkIj4KKyAgICA8Y29sdW1uIGlkPSI2ODAiIHBhcmVudD0iMzIxIiBuYW1lPSJpc19yZXdhcmRfY2xhaW1lZCI+CisgICAgICA8RGFzVHlwZT50aW55aW50KDEpfDBzPC9EYXNUeXBlPgogICAgICAgPERlZmF1bHRFeHByZXNzaW9uPjA8L0RlZmF1bHRFeHByZXNzaW9uPgogICAgICAgPFBvc2l0aW9uPjg8L1Bvc2l0aW9uPgotICAgICAgPFN0b3JlZFR5cGU+dGlueWludCgxKXwwczwvU3RvcmVkVHlwZT4KICAgICA8L2NvbHVtbj4KLSAgICA8Zm9yZWlnbi1rZXkgaWQ9IjYzOCIgcGFyZW50PSIzMTgiIG5hbWU9InVzZXJfdGFza19zdGF0dXNfaWJma18xIj4KKyAgICA8Zm9yZWlnbi1rZXkgaWQ9IjY4MSIgcGFyZW50PSIzMjEiIG5hbWU9InVzZXJfdGFza19zdGF0dXNfaWJma18xIj4KICAgICAgIDxDb2xOYW1lcz51c2VyX2lkPC9Db2xOYW1lcz4KICAgICAgIDxPbkRlbGV0ZT5jYXNjYWRlPC9PbkRlbGV0ZT4KICAgICAgIDxSZWZDb2xOYW1lcz51c2VyX2lkPC9SZWZDb2xOYW1lcz4KICAgICAgIDxSZWZUYWJsZU5hbWU+dXNlcjwvUmVmVGFibGVOYW1lPgogICAgIDwvZm9yZWlnbi1rZXk+Ci0gICAgPGZvcmVpZ24ta2V5IGlkPSI2MzkiIHBhcmVudD0iMzE4IiBuYW1lPSJ1c2VyX3Rhc2tfc3RhdHVzX2liZmtfMiI+CisgICAgPGZvcmVpZ24ta2V5IGlkPSI2ODIiIHBhcmVudD0iMzIxIiBuYW1lPSJ1c2VyX3Rhc2tfc3RhdHVzX2liZmtfMiI+CiAgICAgICA8Q29sTmFtZXM+dGFza19pZDwvQ29sTmFtZXM+CiAgICAgICA8T25EZWxldGU+Y2FzY2FkZTwvT25EZWxldGU+CiAgICAgICA8UmVmQ29sTmFtZXM+dGFza19pZDwvUmVmQ29sTmFtZXM+CiAgICAgICA8UmVmVGFibGVOYW1lPnRhc2tzPC9SZWZUYWJsZU5hbWU+CiAgICAgPC9mb3JlaWduLWtleT4KLSAgICA8aW5kZXggaWQ9IjY0MCIgcGFyZW50PSIzMTgiIG5hbWU9IlBSSU1BUlkiPgorICAgIDxpbmRleCBpZD0iNjgzIiBwYXJlbnQ9IjMyMSIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8Q29sTmFtZXM+c3RhdHVzX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgICAgPFVuaXF1ZT4xPC9VbmlxdWU+CiAgICAgPC9pbmRleD4KLSAgICA8aW5kZXggaWQ9IjY0MSIgcGFyZW50PSIzMTgiIG5hbWU9InVzZXJfaWQiPgorICAgIDxpbmRleCBpZD0iNjg0IiBwYXJlbnQ9IjMyMSIgbmFtZT0idXNlcl9pZCI+CiAgICAgICA8Q29sTmFtZXM+dXNlcl9pZDwvQ29sTmFtZXM+CiAgICAgICA8VHlwZT5idHJlZTwvVHlwZT4KICAgICA8L2luZGV4PgotICAgIDxpbmRleCBpZD0iNjQyIiBwYXJlbnQ9IjMxOCIgbmFtZT0idGFza19pZCI+CisgICAgPGluZGV4IGlkPSI2ODUiIHBhcmVudD0iMzIxIiBuYW1lPSJ0YXNrX2lkIj4KICAgICAgIDxDb2xOYW1lcz50YXNrX2lkPC9Db2xOYW1lcz4KICAgICAgIDxUeXBlPmJ0cmVlPC9UeXBlPgogICAgIDwvaW5kZXg+Ci0gICAgPGtleSBpZD0iNjQzIiBwYXJlbnQ9IjMxOCIgbmFtZT0iUFJJTUFSWSI+CisgICAgPGtleSBpZD0iNjg2IiBwYXJlbnQ9IjMyMSIgbmFtZT0iUFJJTUFSWSI+CiAgICAgICA8TmFtZVN1cnJvZ2F0ZT4xPC9OYW1lU3Vycm9nYXRlPgogICAgICAgPFByaW1hcnk+MTwvUHJpbWFyeT4KICAgICAgIDxVbmRlcmx5aW5nSW5kZXhOYW1lPlBSSU1BUlk8L1VuZGVybHlpbmdJbmRleE5hbWU+CmRpZmYgLS1naXQgYS8uaWRlYS9taXNjLnhtbCBiLy5pZGVhL21pc2MueG1sCmluZGV4IGY1OGUxZTIuLjY0ZDE5ZmMgMTAwNjQ0Ci0tLSBhLy5pZGVhL21pc2MueG1sCisrKyBiLy5pZGVhL21pc2MueG1sCkBAIC03LDEyICs3LDEzIEBACiAgICAgICAgIDxvcHRpb24gdmFsdWU9IiRQUk9KRUNUX0RJUiQvcG9tLnhtbCIgLz4KICAgICAgIDwvbGlzdD4KICAgICA8L29wdGlvbj4KKyAgICA8b3B0aW9uIG5hbWU9IndvcmtzcGFjZUltcG9ydEZvcmNpYmx5VHVybmVkT24iIHZhbHVlPSJ0cnVlIiAvPgogICA8L2NvbXBvbmVudD4KICAgPGNvbXBvbmVudCBuYW1lPSJQV0EiPgogICAgIDxvcHRpb24gbmFtZT0iZW5hYmxlZCIgdmFsdWU9InRydWUiIC8+CiAgICAgPG9wdGlvbiBuYW1lPSJ3YXNFbmFibGVkQXRMZWFzdE9uY2UiIHZhbHVlPSJ0cnVlIiAvPgogICA8L2NvbXBvbmVudD4KLSAgPGNvbXBvbmVudCBuYW1lPSJQcm9qZWN0Um9vdE1hbmFnZXIiIHZlcnNpb249IjIiIGxhbmd1YWdlTGV2ZWw9IkpES18xNyIgZGVmYXVsdD0idHJ1ZSIgcHJvamVjdC1qZGstbmFtZT0iMTciIHByb2plY3QtamRrLXR5cGU9IkphdmFTREsiPgorICA8Y29tcG9uZW50IG5hbWU9IlByb2plY3RSb290TWFuYWdlciIgdmVyc2lvbj0iMiIgbGFuZ3VhZ2VMZXZlbD0iSkRLXzIxIiBkZWZhdWx0PSJ0cnVlIiBwcm9qZWN0LWpkay1uYW1lPSIxNyIgcHJvamVjdC1qZGstdHlwZT0iSmF2YVNESyI+CiAgICAgPG91dHB1dCB1cmw9ImZpbGU6Ly8kUFJPSkVDVF9ESVIkL291dCIgLz4KICAgPC9jb21wb25lbnQ+CiA8L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvLmlkZWEvd29ya3NwYWNlLnhtbCBiLy5pZGVhL3dvcmtzcGFjZS54bWwKaW5kZXggYTdjYjIxYi4uNWUzOTg5OSAxMDA2NDQKLS0tIGEvLmlkZWEvd29ya3NwYWNlLnhtbAorKysgYi8uaWRlYS93b3Jrc3BhY2UueG1sCkBAIC01LDE0ICs1LDczIEBACiAgIDwvY29tcG9uZW50PgogICA8Y29tcG9uZW50IG5hbWU9IkNoYW5nZUxpc3RNYW5hZ2VyIj4KICAgICA8bGlzdCBkZWZhdWx0PSJ0cnVlIiBpZD0iZjAwOGZlMzAtMDcxMS00MmUyLWJiMzMtMTdkY2ZkYmFkMzg3IiBuYW1lPSJDaGFuZ2VzIiBjb21tZW50PSJwb20iPgotICAgICAgPGNoYW5nZSBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9UcmFja2VyQ29udHJvbGxlci5qYXZhIiBhZnRlckRpcj0iZmFsc2UiIC8+Ci0gICAgICA8Y2hhbmdlIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vQW5ub3VuY2VSZXF1ZXN0LmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC8uaWRlYS9kYXRhU291cmNlcy5sb2NhbC54bWwiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC8uaWRlYS9kYXRhU291cmNlcy5sb2NhbC54bWwiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC8uaWRlYS9kYXRhU291cmNlcy82ZDJhNzA2My1hZTRjLTQ3MWYtYWUwNS1lMzJkZWRlNWQwZWMueG1sIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvLmlkZWEvZGF0YVNvdXJjZXMvNmQyYTcwNjMtYWU0Yy00NzFmLWFlMDUtZTMyZGVkZTVkMGVjLnhtbCIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkLy5pZGVhL21pc2MueG1sIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvLmlkZWEvbWlzYy54bWwiIGFmdGVyRGlyPSJmYWxzZSIgLz4KICAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC8uaWRlYS93b3Jrc3BhY2UueG1sIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvLmlkZWEvd29ya3NwYWNlLnhtbCIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgotICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L21hcHBlci9Vc2VyTWFwcGVyLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9tYXBwZXIvVXNlck1hcHBlci5qYXZhIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvcG9tLnhtbCIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3BvbS54bWwiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RvcnJlbnRDb250cm9sbGVyLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RvcnJlbnRDb250cm9sbGVyLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVXNlci5qYXZhIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXIuamF2YSIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Vc2Vycy5qYXZhIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXJzLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0R5bmFtaWNTZXJ2aWNlLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0R5bmFtaWNTZXJ2aWNlLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1Bvc3RTZXJ2aWNlLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1Bvc3RTZXJ2aWNlLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmphdmEiIGFmdGVyRGlyPSJmYWxzZSIgLz4KICAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL1RvcnJlbnRTZXJ2aWNlSW1wbC5qYXZhIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9Ub3JyZW50U2VydmljZUltcGwuamF2YSIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgotICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9tYXBwZXIvVXNlck1hcHBlci5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9tYXBwZXIvVXNlck1hcHBlci5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3NyYy90ZXN0L2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXJUZXN0LmphdmEiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC9zcmMvdGVzdC9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyVGVzdC5qYXZhIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbW1vbi9iYXNlL1BhZ2VQYXJhbS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9QYWdlUGFyYW0uY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29tbW9uL2Jhc2UvUmVzUGFnZS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXNQYWdlLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbW1vbi9iYXNlL1Jlc3VsdC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXN1bHQuY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1RyYWNrZXJDb25maWcuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1RyYWNrZXJDb25maWcuY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1dlYkNvbmZpZy5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXIuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9EeW5hbWljQ29udHJvbGxlci5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0dyb3VwQ29udHJvbGxlci5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0dyb3VwQ29udHJvbGxlci5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RvcnJlbnRDb250cm9sbGVyLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVG9ycmVudENvbnRyb2xsZXIuY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9UcmFja2VyQ29udHJvbGxlci5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RyYWNrZXJDb250cm9sbGVyLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckNvbnRyb2xsZXIuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Vc2VyQ29udHJvbGxlci5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vUHJvbW90aW9uQ3JlYXRlRFRPLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9Qcm9tb3Rpb25DcmVhdGVEVE8uY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1RvcnJlbnRVcGRhdGVEVE8uY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1RvcnJlbnRVcGRhdGVEVE8uY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3BhcmFtL0Fubm91bmNlUmVxdWVzdC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vQW5ub3VuY2VSZXF1ZXN0LmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9wYXJhbS9Ub3JyZW50UGFyYW0uY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3BhcmFtL1RvcnJlbnRQYXJhbS5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vVG9ycmVudFVwbG9hZFBhcmFtLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9wYXJhbS9Ub3JyZW50VXBsb2FkUGFyYW0uY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3ZvL1RvcnJlbnRWTy5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vdm8vVG9ycmVudFZPLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9FbnRpdHlCYXNlLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9FbnRpdHlCYXNlLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9GYXZvcml0ZUVudGl0eS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvRmF2b3JpdGVFbnRpdHkuY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1Byb21vdGlvbi5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvUHJvbW90aW9uLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Ub3JyZW50RW50aXR5LmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Ub3JyZW50RW50aXR5LmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Vc2VyLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Vc2VyLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9WZXJpZmljYXRpb25Ub2tlbi5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVmVyaWZpY2F0aW9uVG9rZW4uY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Db21tZW50U2VydmljZS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0NvbW1lbnRTZXJ2aWNlLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvRHluYW1pY1NlcnZpY2UuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9EeW5hbWljU2VydmljZS5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0dyb3VwU2VydmljZS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0dyb3VwU2VydmljZS5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0xldmVsU2VydmljZS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0xldmVsU2VydmljZS5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1Bvc3RTZXJ2aWNlLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvUG9zdFNlcnZpY2UuY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Ub3JyZW50U2VydmljZS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlck1lc3NhZ2VTZXJ2aWNlLmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlck1lc3NhZ2VTZXJ2aWNlLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlclNlcnZpY2UuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Vc2VyU2VydmljZS5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL0VtYWlsU2VydmljZUltcGwuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9FbWFpbFNlcnZpY2VJbXBsLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvUHJvbW90aW9uU2VydmljZUltcGwuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9Qcm9tb3Rpb25TZXJ2aWNlSW1wbC5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgogICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL1RvcnJlbnRTZXJ2aWNlSW1wbC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL1RvcnJlbnRTZXJ2aWNlSW1wbC5jbGFzcyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgotICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3VwbG9hZHMvdG9ycmVudHMvMTc0OTEzMTA0NDIxOS5qcGciIGJlZm9yZURpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3V0aWxzL1Jlc3VsdC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC91dGlscy9SZXN1bHQuY2xhc3MiIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvdXRpbHMvVmVyaWZ5Q29kZS5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC91dGlscy9WZXJpZnlDb2RlLmNsYXNzIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L2NsYXNzZXMvZmlsZXMvZmlsZXMudG9ycmVudCIgYmVmb3JlRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvY2xhc3Nlcy9vdXRwdXQvdmFsaWQudG9ycmVudCIgYmVmb3JlRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0NvbW1lbnRDb250cm9sbGVyVGVzdC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyVGVzdC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0dyb3VwQ29udHJvbGxlclRlc3QuY2xhc3MiIGJlZm9yZURpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9MZXZlbENvbnRyb2xsZXJUZXN0LmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvUG9zdENvbnRyb2xsZXJUZXN0LmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVGFza0NvbnRyb2xsZXJUZXN0LmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckNvbnRyb2xsZXJUZXN0LmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckZvbGxvd0NvbnRyb2xsZXJUZXN0LmNsYXNzIiBiZWZvcmVEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlck1lc3NhZ2VDb250cm9sbGVyVGVzdC5jbGFzcyIgYmVmb3JlRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC91cGxvYWRzL2F2YXRhclVybC8xLmpwZyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3VwbG9hZHMvYXZhdGFyVXJsLzEuanBnIiBhZnRlckRpcj0iZmFsc2UiIC8+CisgICAgICA8Y2hhbmdlIGJlZm9yZVBhdGg9IiRQUk9KRUNUX0RJUiQvdXBsb2Fkcy9hdmF0YXJVcmwvMi5qcGciIGJlZm9yZURpcj0iZmFsc2UiIGFmdGVyUGF0aD0iJFBST0pFQ1RfRElSJC91cGxvYWRzL2F2YXRhclVybC8yLmpwZyIgYWZ0ZXJEaXI9ImZhbHNlIiAvPgorICAgICAgPGNoYW5nZSBiZWZvcmVQYXRoPSIkUFJPSkVDVF9ESVIkL3VwbG9hZHMvYXZhdGFyVXJsLzMuanBnIiBiZWZvcmVEaXI9ImZhbHNlIiBhZnRlclBhdGg9IiRQUk9KRUNUX0RJUiQvdXBsb2Fkcy9hdmF0YXJVcmwvMy5qcGciIGFmdGVyRGlyPSJmYWxzZSIgLz4KKyAgICAgIDxjaGFuZ2UgYmVmb3JlUGF0aD0iJFBST0pFQ1RfRElSJC91cGxvYWRzL2F2YXRhclVybC80LmpwZyIgYmVmb3JlRGlyPSJmYWxzZSIgYWZ0ZXJQYXRoPSIkUFJPSkVDVF9ESVIkL3VwbG9hZHMvYXZhdGFyVXJsLzQuanBnIiBhZnRlckRpcj0iZmFsc2UiIC8+CiAgICAgPC9saXN0PgogICAgIDxvcHRpb24gbmFtZT0iU0hPV19ESUFMT0ciIHZhbHVlPSJmYWxzZSIgLz4KICAgICA8b3B0aW9uIG5hbWU9IkhJR0hMSUdIVF9DT05GTElDVFMiIHZhbHVlPSJ0cnVlIiAvPgpAQCAtNDQsNDMgKzEwMyw0OSBAQAogICAmcXVvdDthc3NvY2lhdGVkSW5kZXgmcXVvdDs6IDAKIH08L2NvbXBvbmVudD4KICAgPGNvbXBvbmVudCBuYW1lPSJQcm9qZWN0SWQiIGlkPSIydlpOZk5URUZ5SEFwZHhtSFo3WTBybEpqS0IiIC8+Ci0gIDxjb21wb25lbnQgbmFtZT0iUHJvamVjdExldmVsVmNzTWFuYWdlciIgc2V0dGluZ3NFZGl0ZWRNYW51YWxseT0idHJ1ZSIgLz4KKyAgPGNvbXBvbmVudCBuYW1lPSJQcm9qZWN0TGV2ZWxWY3NNYW5hZ2VyIiBzZXR0aW5nc0VkaXRlZE1hbnVhbGx5PSJ0cnVlIj4KKyAgICA8Q29uZmlybWF0aW9uc1NldHRpbmcgdmFsdWU9IjIiIGlkPSJBZGQiIC8+CisgIDwvY29tcG9uZW50PgogICA8Y29tcG9uZW50IG5hbWU9IlByb2plY3RWaWV3U3RhdGUiPgogICAgIDxvcHRpb24gbmFtZT0iaGlkZUVtcHR5TWlkZGxlUGFja2FnZXMiIHZhbHVlPSJ0cnVlIiAvPgogICAgIDxvcHRpb24gbmFtZT0ic2hvd0xpYnJhcnlDb250ZW50cyIgdmFsdWU9InRydWUiIC8+CiAgIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IlByb3BlcnRpZXNDb21wb25lbnQiPnsKLSAgJnF1b3Q7a2V5VG9TdHJpbmcmcXVvdDs6IHsKLSAgICAmcXVvdDtKVW5pdC5Vc2VyQ29udHJvbGxlclRlc3QuZXhlY3V0b3ImcXVvdDs6ICZxdW90O1J1biZxdW90OywKLSAgICAmcXVvdDtKVW5pdC5Vc2VyQ29udHJvbGxlclRlc3QudGVzdFVwZGF0ZVVzZXJBdmF0YXIuZXhlY3V0b3ImcXVvdDs6ICZxdW90O1J1biZxdW90OywKLSAgICAmcXVvdDtKVW5pdC5Vc2VyQ29udHJvbGxlclRlc3QudGVzdFVwbG9hZFVzZXJBdmF0YXIuZXhlY3V0b3ImcXVvdDs6ICZxdW90O1J1biZxdW90OywKLSAgICAmcXVvdDtSZXF1ZXN0TWFwcGluZ3NQYW5lbE9yZGVyMCZxdW90OzogJnF1b3Q7MCZxdW90OywKLSAgICAmcXVvdDtSZXF1ZXN0TWFwcGluZ3NQYW5lbE9yZGVyMSZxdW90OzogJnF1b3Q7MSZxdW90OywKLSAgICAmcXVvdDtSZXF1ZXN0TWFwcGluZ3NQYW5lbFdpZHRoMCZxdW90OzogJnF1b3Q7NzUmcXVvdDssCi0gICAgJnF1b3Q7UmVxdWVzdE1hcHBpbmdzUGFuZWxXaWR0aDEmcXVvdDs6ICZxdW90Ozc1JnF1b3Q7LAotICAgICZxdW90O1J1bk9uY2VBY3Rpdml0eS5PcGVuUHJvamVjdFZpZXdPblN0YXJ0JnF1b3Q7OiAmcXVvdDt0cnVlJnF1b3Q7LAotICAgICZxdW90O1J1bk9uY2VBY3Rpdml0eS5TaG93UmVhZG1lT25TdGFydCZxdW90OzogJnF1b3Q7dHJ1ZSZxdW90OywKLSAgICAmcXVvdDtSdW5PbmNlQWN0aXZpdHkuZ2l0LnVuc2hhbGxvdyZxdW90OzogJnF1b3Q7dHJ1ZSZxdW90OywKLSAgICAmcXVvdDtTcHJpbmcgQm9vdC5NeVByb2plY3RBcHBsaWNhdGlvbi5leGVjdXRvciZxdW90OzogJnF1b3Q7UnVuJnF1b3Q7LAotICAgICZxdW90O2dpdC13aWRnZXQtcGxhY2Vob2xkZXImcXVvdDs6ICZxdW90O215LWJyYW5jaCZxdW90OywKLSAgICAmcXVvdDtrb3RsaW4tbGFuZ3VhZ2UtdmVyc2lvbi1jb25maWd1cmVkJnF1b3Q7OiAmcXVvdDt0cnVlJnF1b3Q7LAotICAgICZxdW90O2xhc3Rfb3BlbmVkX2ZpbGVfcGF0aCZxdW90OzogJnF1b3Q7RDovc3R1ZHkv5a2m5Lmg6LWE5rqQL+Wkp+S4ieS4iy9zY2hvb2wvcHQyL2VjaG8tYmFja2VuZCZxdW90OywKLSAgICAmcXVvdDtub2RlLmpzLmRldGVjdGVkLnBhY2thZ2UuZXNsaW50JnF1b3Q7OiAmcXVvdDt0cnVlJnF1b3Q7LAotICAgICZxdW90O25vZGUuanMuc2VsZWN0ZWQucGFja2FnZS5lc2xpbnQmcXVvdDs6ICZxdW90OyhhdXRvZGV0ZWN0KSZxdW90OywKLSAgICAmcXVvdDtub2RlLmpzLnNlbGVjdGVkLnBhY2thZ2UudHNsaW50JnF1b3Q7OiAmcXVvdDsoYXV0b2RldGVjdCkmcXVvdDssCi0gICAgJnF1b3Q7bm9kZWpzX3BhY2thZ2VfbWFuYWdlcl9wYXRoJnF1b3Q7OiAmcXVvdDtucG0mcXVvdDssCi0gICAgJnF1b3Q7c2V0dGluZ3MuZWRpdG9yLnNlbGVjdGVkLmNvbmZpZ3VyYWJsZSZxdW90OzogJnF1b3Q7cHJvamVjdC5wcm9wVkNTU3VwcG9ydC5EaXJlY3RvcnlNYXBwaW5ncyZxdW90OywKLSAgICAmcXVvdDt2dWUucmVhcnJhbmdlci5zZXR0aW5ncy5taWdyYXRpb24mcXVvdDs6ICZxdW90O3RydWUmcXVvdDssCi0gICAgJnF1b3Q75bqU55So56iL5bqPLk15UHJvamVjdEFwcGxpY2F0aW9uLmV4ZWN1dG9yJnF1b3Q7OiAmcXVvdDtSdW4mcXVvdDsKKyAgPGNvbXBvbmVudCBuYW1lPSJQcm9wZXJ0aWVzQ29tcG9uZW50Ij48IVtDREFUQVt7CisgICJrZXlUb1N0cmluZyI6IHsKKyAgICAiQVNLRURfQUREX0VYVEVSTkFMX0ZJTEVTIjogInRydWUiLAorICAgICJKVW5pdC5Vc2VyQ29udHJvbGxlclRlc3QuZXhlY3V0b3IiOiAiUnVuIiwKKyAgICAiSlVuaXQuVXNlckNvbnRyb2xsZXJUZXN0LnRlc3RVcGRhdGVVc2VyQXZhdGFyLmV4ZWN1dG9yIjogIlJ1biIsCisgICAgIkpVbml0LlVzZXJDb250cm9sbGVyVGVzdC50ZXN0VXBsb2FkVXNlckF2YXRhci5leGVjdXRvciI6ICJSdW4iLAorICAgICJSZXF1ZXN0TWFwcGluZ3NQYW5lbE9yZGVyMCI6ICIwIiwKKyAgICAiUmVxdWVzdE1hcHBpbmdzUGFuZWxPcmRlcjEiOiAiMSIsCisgICAgIlJlcXVlc3RNYXBwaW5nc1BhbmVsV2lkdGgwIjogIjc1IiwKKyAgICAiUmVxdWVzdE1hcHBpbmdzUGFuZWxXaWR0aDEiOiAiNzUiLAorICAgICJSdW5PbmNlQWN0aXZpdHkuT3BlblByb2plY3RWaWV3T25TdGFydCI6ICJ0cnVlIiwKKyAgICAiUnVuT25jZUFjdGl2aXR5LlNob3dSZWFkbWVPblN0YXJ0IjogInRydWUiLAorICAgICJSdW5PbmNlQWN0aXZpdHkuZ2l0LnVuc2hhbGxvdyI6ICJ0cnVlIiwKKyAgICAiU3ByaW5nIEJvb3QuTXlQcm9qZWN0QXBwbGljYXRpb24uZXhlY3V0b3IiOiAiUnVuIiwKKyAgICAiZ2l0LXdpZGdldC1wbGFjZWhvbGRlciI6ICLlrozmiJBwdOS4jmJ05Lqk5LqS44CB6KGl5YWF5Zu+54mH6LWE5rqQIiwKKyAgICAiaWdub3JlLnZpcnVzLnNjYW5uaW5nLndhcm4ubWVzc2FnZSI6ICJ0cnVlIiwKKyAgICAia290bGluLWxhbmd1YWdlLXZlcnNpb24tY29uZmlndXJlZCI6ICJ0cnVlIiwKKyAgICAibGFzdF9vcGVuZWRfZmlsZV9wYXRoIjogIkQ6L0Rlc2t0b3AvZWNob+WQjuerry9lY2hvLWJhY2tlbmQvaW1hZ2VzIiwKKyAgICAibm9kZS5qcy5kZXRlY3RlZC5wYWNrYWdlLmVzbGludCI6ICJ0cnVlIiwKKyAgICAibm9kZS5qcy5zZWxlY3RlZC5wYWNrYWdlLmVzbGludCI6ICIoYXV0b2RldGVjdCkiLAorICAgICJub2RlLmpzLnNlbGVjdGVkLnBhY2thZ2UudHNsaW50IjogIihhdXRvZGV0ZWN0KSIsCisgICAgIm5vZGVqc19wYWNrYWdlX21hbmFnZXJfcGF0aCI6ICJucG0iLAorICAgICJzZXR0aW5ncy5lZGl0b3Iuc2VsZWN0ZWQuY29uZmlndXJhYmxlIjogInByb2plY3QucHJvcFZDU1N1cHBvcnQuRGlyZWN0b3J5TWFwcGluZ3MiLAorICAgICJ2dWUucmVhcnJhbmdlci5zZXR0aW5ncy5taWdyYXRpb24iOiAidHJ1ZSIsCisgICAgIuW6lOeUqOeoi+W6jy5NeVByb2plY3RBcHBsaWNhdGlvbi5leGVjdXRvciI6ICJSdW4iCiAgIH0sCi0gICZxdW90O2tleVRvU3RyaW5nTGlzdCZxdW90OzogewotICAgICZxdW90O0RhdGFiYXNlRHJpdmVyc0xSVSZxdW90OzogWwotICAgICAgJnF1b3Q7bXlzcWxfYXVyb3JhJnF1b3Q7CisgICJrZXlUb1N0cmluZ0xpc3QiOiB7CisgICAgIkRhdGFiYXNlRHJpdmVyc0xSVSI6IFsKKyAgICAgICJteXNxbF9hdXJvcmEiCiAgICAgXQogICB9Ci19PC9jb21wb25lbnQ+Cit9XV0+PC9jb21wb25lbnQ+CiAgIDxjb21wb25lbnQgbmFtZT0iUmVjZW50c01hbmFnZXIiPgogICAgIDxrZXkgbmFtZT0iQ29weUZpbGUuUkVDRU5UX0tFWVMiPgorICAgICAgPHJlY2VudCBuYW1lPSJEOlxEZXNrdG9wXGVjaG/lkI7nq69cZWNoby1iYWNrZW5kXGltYWdlcyIgLz4KKyAgICAgIDxyZWNlbnQgbmFtZT0iRDpcRGVza3RvcFxlY2hv5ZCO56uvXGVjaG8tYmFja2VuZFx1cGxvYWRzXGR5bmFtaWMiIC8+CiAgICAgICA8cmVjZW50IG5hbWU9IkQ6XFBUXGVjaG8tYmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxleGFtcGxlXG15cHJvamVjdFxjb25maWciIC8+CiAgICAgICA8cmVjZW50IG5hbWU9IkQ6XFBUXGVjaG8tYmFja2VuZFxzcmNcbWFpblxqYXZhXGNvbVxleGFtcGxlXG15cHJvamVjdFxzZXJ2aWNlIiAvPgogICAgICAgPHJlY2VudCBuYW1lPSJEOlxQVFxlY2hvLWJhY2tlbmRcc3JjXG1haW5camF2YVxjb21cZXhhbXBsZVxteXByb2plY3RcY29udHJvbGxlciIgLz4KQEAgLTE5NSwxNCArMjYwLDYgQEAKICAgICAgIDwvbGlzdD4KICAgICA8L3JlY2VudF90ZW1wb3Jhcnk+CiAgIDwvY29tcG9uZW50PgotICA8Y29tcG9uZW50IG5hbWU9IlNoYXJlZEluZGV4ZXMiPgotICAgIDxhdHRhY2hlZENodW5rcz4KLSAgICAgIDxzZXQ+Ci0gICAgICAgIDxvcHRpb24gdmFsdWU9ImJ1bmRsZWQtamRrLTk4MjNkY2UzYWE3NS1mZGZlNGRhZTNhMmQtaW50ZWxsaWouaW5kZXhpbmcuc2hhcmVkLmNvcmUtSVUtMjQzLjIxNTY1LjE5MyIgLz4KLSAgICAgICAgPG9wdGlvbiB2YWx1ZT0iYnVuZGxlZC1qcy1wcmVkZWZpbmVkLWQ2OTg2Y2M3MTAyYi1lNzY4YjllZDc5MGUtSmF2YVNjcmlwdC1JVS0yNDMuMjE1NjUuMTkzIiAvPgotICAgICAgPC9zZXQ+Ci0gICAgPC9hdHRhY2hlZENodW5rcz4KLSAgPC9jb21wb25lbnQ+CiAgIDxjb21wb25lbnQgbmFtZT0iU3BlbGxDaGVja2VyU2V0dGluZ3MiIFJ1bnRpbWVEaWN0aW9uYXJpZXM9IjAiIEZvbGRlcnM9IjAiIEN1c3RvbURpY3Rpb25hcmllcz0iMCIgRGVmYXVsdERpY3Rpb25hcnk9ImFwcGxpY2F0aW9uLWxldmVsIiBVc2VTaW5nbGVEaWN0aW9uYXJ5PSJ0cnVlIiB0cmFuc2ZlcnJlZD0idHJ1ZSIgLz4KICAgPGNvbXBvbmVudCBuYW1lPSJUYXNrTWFuYWdlciI+CiAgICAgPHRhc2sgYWN0aXZlPSJ0cnVlIiBpZD0iRGVmYXVsdCIgc3VtbWFyeT0iRGVmYXVsdCB0YXNrIj4KQEAgLTIxNSw2ICsyNzIsNyBAQAogICAgICAgPHdvcmtJdGVtIGZyb209IjE3NDkwMzMzNzQ4ODQiIGR1cmF0aW9uPSI3NTM1MDAwIiAvPgogICAgICAgPHdvcmtJdGVtIGZyb209IjE3NDkwNDg4NTc5MDYiIGR1cmF0aW9uPSI0Mzg4MDAwIiAvPgogICAgICAgPHdvcmtJdGVtIGZyb209IjE3NDkxMDk4MjE0OTEiIGR1cmF0aW9uPSI1NTE3MDAwIiAvPgorICAgICAgPHdvcmtJdGVtIGZyb209IjE3NDkyMDY5NDU5MzUiIGR1cmF0aW9uPSI0NDY3MDAwIiAvPgogICAgIDwvdGFzaz4KICAgICA8dGFzayBpZD0iTE9DQUwtMDAwMDEiIHN1bW1hcnk9InBvbSI+CiAgICAgICA8b3B0aW9uIG5hbWU9ImNsb3NlZCIgdmFsdWU9InRydWUiIC8+CkBAIC0yNjIsNiArMzIwLDcgQEAKICAgICA8L29wdGlvbj4KICAgPC9jb21wb25lbnQ+CiAgIDxjb21wb25lbnQgbmFtZT0iVmNzTWFuYWdlckNvbmZpZ3VyYXRpb24iPgorICAgIDxvcHRpb24gbmFtZT0iQUREX0VYVEVSTkFMX0ZJTEVTX1NJTEVOVExZIiB2YWx1ZT0idHJ1ZSIgLz4KICAgICA8TUVTU0FHRSB2YWx1ZT0icG9tIiAvPgogICAgIDxvcHRpb24gbmFtZT0iTEFTVF9DT01NSVRfTUVTU0FHRSIgdmFsdWU9InBvbSIgLz4KICAgPC9jb21wb25lbnQ+CmRpZmYgLS1naXQgYS9wb20ueG1sIGIvcG9tLnhtbAppbmRleCAxMjI3NDRjLi5hMDZmNzkxIDEwMDY0NAotLS0gYS9wb20ueG1sCisrKyBiL3BvbS54bWwKQEAgLTEzOSwxMiArMTM5LDE5IEBACiAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Q8L2dyb3VwSWQ+CiAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctYm9vdC1zdGFydGVyLXdlYmZsdXg8L2FydGlmYWN0SWQ+CiAgICAgICAgIDwvZGVwZW5kZW5jeT4KKzwhLS0gICAgICAgIDxkZXBlbmRlbmN5Pi0tPgorPCEtLSAgICAgICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPi0tPgorPCEtLSAgICAgICAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPi0tPgorPCEtLSAgICAgICAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+LS0+Cis8IS0tICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPi0tPgorPCEtLSAgICAgICAgPC9kZXBlbmRlbmN5Pi0tPgogICAgICAgICA8ZGVwZW5kZW5jeT4KLSAgICAgICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgotICAgICAgICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+Ci0gICAgICAgICAgICA8dmVyc2lvbj40LjEyPC92ZXJzaW9uPgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmp1bml0Lmp1cGl0ZXI8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdC1qdXBpdGVyPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+NS4xMC4yPC92ZXJzaW9uPgogICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgICAgICA8L2RlcGVuZGVuY3k+CisKICAgICAgICAgPGRlcGVuZGVuY3k+CiAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcubW9ja2l0bzwvZ3JvdXBJZD4KICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1vY2tpdG8tY29yZTwvYXJ0aWZhY3RJZD4KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbmZpZy9XZWJDb25maWcuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbmZpZy9XZWJDb25maWcuamF2YQppbmRleCA2ZjkzMjJkLi45MDA1NTNlIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1dlYkNvbmZpZy5qYXZhCkBAIC0xLDMgKzEsMjAgQEAKKy8vIHBhY2thZ2UgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbmZpZzsKKworLy8gaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuY29udGV4dC5hbm5vdGF0aW9uLkNvbmZpZ3VyYXRpb247CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuc2VydmxldC5jb25maWcuYW5ub3RhdGlvbi5SZXNvdXJjZUhhbmRsZXJSZWdpc3RyeTsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5zZXJ2bGV0LmNvbmZpZy5hbm5vdGF0aW9uLldlYk12Y0NvbmZpZ3VyZXI7CisKKy8vIEBDb25maWd1cmF0aW9uCisvLyBwdWJsaWMgY2xhc3MgV2ViQ29uZmlnIGltcGxlbWVudHMgV2ViTXZjQ29uZmlndXJlciB7CisvLyAgICAgQE92ZXJyaWRlCisvLyAgICAgcHVibGljIHZvaWQgYWRkUmVzb3VyY2VIYW5kbGVycyhSZXNvdXJjZUhhbmRsZXJSZWdpc3RyeSByZWdpc3RyeSkgeworLy8gICAgICAgICAvLyDorr/pl64gL3VwbG9hZHMvKiog5pig5bCE5Yiw5pys5ZywIEQ6L0Rlc2t0b3AvZWNoby9lY2hvLWJhY2tlbmQvdXBsb2Fkcy8KKy8vICAgICAgICAgcmVnaXN0cnkuYWRkUmVzb3VyY2VIYW5kbGVyKCIvdXBsb2Fkcy8qKiIpCisvLyAgICAgICAgICAgICAgICAgLmFkZFJlc291cmNlTG9jYXRpb25zKCJmaWxlOkQ6L1BUL2VjaG8tYmFja2VuZC91cGxvYWRzLyIpOworLy8gICAgICAgICByZWdpc3RyeS5hZGRSZXNvdXJjZUhhbmRsZXIoIi90b3JyZW50LWltYWdlcy8qKiIpCisvLyAgICAgICAgICAgICAgICAgLmFkZFJlc291cmNlTG9jYXRpb25zKCJmaWxlOi4vdXBsb2Fkcy90b3JyZW50cy8iKTsKKy8vICAgICB9CisvLyB9CiBwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5jb25maWc7CiAKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmNvbnRleHQuYW5ub3RhdGlvbi5Db25maWd1cmF0aW9uOwpAQCAtOCwxMCArMjUsMTMgQEAKIHB1YmxpYyBjbGFzcyBXZWJDb25maWcgaW1wbGVtZW50cyBXZWJNdmNDb25maWd1cmVyIHsKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgdm9pZCBhZGRSZXNvdXJjZUhhbmRsZXJzKFJlc291cmNlSGFuZGxlclJlZ2lzdHJ5IHJlZ2lzdHJ5KSB7Ci0gICAgICAgIC8vIOiuv+mXriAvdXBsb2Fkcy8qKiDmmKDlsITliLDmnKzlnLAgRDovRGVza3RvcC9lY2hvL2VjaG8tYmFja2VuZC91cGxvYWRzLworICAgICAgICAvLyDov5nph4znm7jlr7not6/lvoTmmK/nm7jlr7nkuo7lkK/liqjnm67lvZXvvIzmr5TlpoLlnKjpobnnm67moLnnm67lvZXlkK/liqjliJnmmK8gLi91cGxvYWRzLwogICAgICAgICByZWdpc3RyeS5hZGRSZXNvdXJjZUhhbmRsZXIoIi91cGxvYWRzLyoqIikKLSAgICAgICAgICAgICAgICAuYWRkUmVzb3VyY2VMb2NhdGlvbnMoImZpbGU6RDovUFQvZWNoby1iYWNrZW5kL3VwbG9hZHMvIik7Ci0gICAgICAgIHJlZ2lzdHJ5LmFkZFJlc291cmNlSGFuZGxlcigiL3RvcnJlbnQtaW1hZ2VzLyoqIikKLSAgICAgICAgICAgICAgICAuYWRkUmVzb3VyY2VMb2NhdGlvbnMoImZpbGU6Li91cGxvYWRzL3RvcnJlbnRzLyIpOworICAgICAgICAgICAgICAgIC5hZGRSZXNvdXJjZUxvY2F0aW9ucygiZmlsZTouL3VwbG9hZHMvIik7CisKKy8vICAgICAgICByZWdpc3RyeS5hZGRSZXNvdXJjZUhhbmRsZXIoIi90b3JyZW50LWltYWdlcy8qKiIpCisvLyAgICAgICAgICAgICAgICAuYWRkUmVzb3VyY2VMb2NhdGlvbnMoImZpbGU6Li91cGxvYWRzL3RvcnJlbnRzLyIpOwogICAgIH0KIH0KKworCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyLmphdmEKaW5kZXggZGIxZDBhMi4uYTk4OGM4ZiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9EeW5hbWljQ29udHJvbGxlci5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXIuamF2YQpAQCAtMzMsMTkgKzMzLDIyIEBACiAgICAgICAgIHJldHVybiBSZXNwb25zZUVudGl0eS5vaygi5Yqo5oCB5Yig6Zmk5oiQ5YqfIik7CiAgICAgfQogCi0gICAgLy/lpb3lj4vliqjmgIHor4TorroKICAgICBAUG9zdE1hcHBpbmcoIi97dXNlcl9pZH0vZmVlZHMve2R5bmFtaWNfaWR9L2NvbW1lbnRzIikKICAgICBwdWJsaWMgUmVzcG9uc2VFbnRpdHk8TWFwPFN0cmluZywgT2JqZWN0Pj4gYWRkQ29tbWVudCgKICAgICAgICAgICAgIEBQYXRoVmFyaWFibGUoInVzZXJfaWQiKSBMb25nIHVzZXJJZCwKICAgICAgICAgICAgIEBQYXRoVmFyaWFibGUoImR5bmFtaWNfaWQiKSBMb25nIGR5bmFtaWNJZCwKLSAgICAgICAgICAgIEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBTdHJpbmc+IGNvbnRlbnQpIHsKKyAgICAgICAgICAgIEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBPYmplY3Q+IGNvbnRlbnQpIHsKKyAgICAgICAgU3RyaW5nIGNvbW1lbnRDb250ZW50ID0gKFN0cmluZykgY29udGVudC5nZXQoImNvbnRlbnQiKTsKIAotICAgICAgICBTdHJpbmcgY29tbWVudENvbnRlbnQgPSBjb250ZW50LmdldCgiY29udGVudCIpOyAgLy8g6I635Y+W6K+E6K665YaF5a65Ci0gICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gcmVzcG9uc2UgPSBkeW5hbWljU2VydmljZS5hZGRDb21tZW50KHVzZXJJZCwgZHluYW1pY0lkLCBjb21tZW50Q29udGVudCk7CisgICAgICAgIExvbmcgcGFyZW50Q29tbWVudElkID0gY29udGVudC5jb250YWluc0tleSgicGFyZW50X2NvbW1lbnRfaWQiKSAmJiBjb250ZW50LmdldCgicGFyZW50X2NvbW1lbnRfaWQiKSAhPSBudWxsID8KKyAgICAgICAgICAgICAgICBMb25nLnBhcnNlTG9uZyhjb250ZW50LmdldCgicGFyZW50X2NvbW1lbnRfaWQiKS50b1N0cmluZygpKSA6IG51bGw7CiAKKyAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiByZXNwb25zZSA9IGR5bmFtaWNTZXJ2aWNlLmFkZENvbW1lbnQodXNlcklkLCBkeW5hbWljSWQsIGNvbW1lbnRDb250ZW50LCBwYXJlbnRDb21tZW50SWQpOwogICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkub2socmVzcG9uc2UpOwogICAgIH0KIAorCisKICAgICAvL+iOt+WPluafkOS4quWlveWPi+eahOaJgOacieWKqOaAgQogICAgIEBHZXRNYXBwaW5nKCIve3VzZXJfaWR9L2dldEFkeW5hbWljIikKICAgICBwdWJsaWMgUmVzcG9uc2VFbnRpdHk8TWFwPFN0cmluZywgT2JqZWN0Pj4gZ2V0QWxsVXNlckR5bmFtaWNzKEBQYXRoVmFyaWFibGUoInVzZXJfaWQiKSBMb25nIHVzZXJJZCkgewpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Ub3JyZW50Q29udHJvbGxlci5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Ub3JyZW50Q29udHJvbGxlci5qYXZhCmluZGV4IDc0Y2I4ZjkuLmFlY2ZjNjQgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVG9ycmVudENvbnRyb2xsZXIuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RvcnJlbnRDb250cm9sbGVyLmphdmEKQEAgLTEsNyArMSwzMzEgQEAKKy8vIHBhY2thZ2UgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbnRyb2xsZXI7CisKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuY29tbW9uLmJhc2UuUGFnZVV0aWw7CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmVudGl0eS5Ub3JyZW50RW50aXR5OworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlRvcnJlbnRTZXJ2aWNlOworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlByb21vdGlvblNlcnZpY2U7CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5wYXJhbS5Ub3JyZW50UGFyYW07CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by52by5Ub3JyZW50Vk87CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbW1vbi5iYXNlLlJlc3VsdDsKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZHRvLnBhcmFtLlRvcnJlbnRVcGxvYWRQYXJhbTsKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZHRvLlRvcnJlbnRVcGRhdGVEVE87CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5Qcm9tb3Rpb25DcmVhdGVEVE87CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmVudGl0eS5Qcm9tb3Rpb247CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LnNlcnZpY2UuVXNlclNlcnZpY2U7CisKKy8vIGltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5PcGVyYXRpb247CisvLyBpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMubWVkaWEuQ29udGVudDsKKy8vIGltcG9ydCBpby5zd2FnZ2VyLnYzLm9hcy5hbm5vdGF0aW9ucy5tZWRpYS5TY2hlbWE7CisvLyBpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMucmVzcG9uc2VzLkFwaVJlc3BvbnNlOworCisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5iZWFucy5mYWN0b3J5LmFubm90YXRpb24uQXV0b3dpcmVkOworLy8gaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5IdHRwU3RhdHVzOworLy8gaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuaHR0cC5SZXNwb25zZUVudGl0eTsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnZhbGlkYXRpb24uYW5ub3RhdGlvbi5WYWxpZGF0ZWQ7CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLio7CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIubXVsdGlwYXJ0Lk11bHRpcGFydEZpbGU7CisKKy8vIGltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworLy8gaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworLy8gaW1wb3J0IGphdmEuaW8uRmlsZTsKKy8vIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworLy8gaW1wb3J0IGphdmEudXRpbC5MaXN0OworCisvLyBpbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5hbm5vdGF0aW9uLlNhQ2hlY2tMb2dpbjsKKy8vIGltcG9ydCBjbi5kZXYzMy5zYXRva2VuLnN0cC5TdHBVdGlsOworCisvLyBAUmVzdENvbnRyb2xsZXIKKy8vIEBSZXF1ZXN0TWFwcGluZygiL3NlZWRzIikKKy8vIHB1YmxpYyBjbGFzcyBUb3JyZW50Q29udHJvbGxlciB7CisKKy8vICAgICBAQXV0b3dpcmVkCisvLyAgICAgcHJpdmF0ZSBUb3JyZW50U2VydmljZSB0b3JyZW50U2VydmljZTsKKworLy8gICAgIEBBdXRvd2lyZWQKKy8vICAgICBwcml2YXRlIFByb21vdGlvblNlcnZpY2UgcHJvbW90aW9uU2VydmljZTsKKworLy8gICAgIEBBdXRvd2lyZWQKKy8vICAgICBwcml2YXRlIFVzZXJTZXJ2aWNlIHVzZXJTZXJ2aWNlOworCisKKy8vICAgICBAU2FDaGVja0xvZ2luCisvLyAgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuenjeWtkOWIl+ihqOafpeivoiIsIGRlc2NyaXB0aW9uID0gIuenjeWtkOWIl+ihqOadoeS7tuafpeivoi3liIbpobUt5o6S5bqPIikKKy8vICAgICBAQXBpUmVzcG9uc2UocmVzcG9uc2VDb2RlID0gIjAiLCBkZXNjcmlwdGlvbiA9ICLmk43kvZzmiJDlip8iLAorLy8gICAgICAgICAgICAgY29udGVudCA9IHtAQ29udGVudChtZWRpYVR5cGUgPSAiYXBwbGljYXRpb24vanNvbiIsCisvLyAgICAgICAgICAgICAgICAgICAgIHNjaGVtYSA9IEBTY2hlbWEoaW1wbGVtZW50YXRpb24gPSBUb3JyZW50Vk8uY2xhc3MpKQorLy8gICAgICAgICAgICAgfSkKKy8vICAgICBAUG9zdE1hcHBpbmcoIi9saXN0IikKKy8vICAgICBwdWJsaWMgUmVzdWx0IGxpc3QoQFJlcXVlc3RCb2R5IFRvcnJlbnRQYXJhbSBwYXJhbSkgeworLy8gICAgICAgICAvLyDmnoTlu7rmjpLluo/lkozmqKHns4rmn6Xor6LmnaHku7YKKy8vICAgICAgICAgcGFyYW0udmFsaWRPcmRlcihwYXJhbS5nZXRPcmRlcktleShUb3JyZW50RW50aXR5LmNsYXNzKSk7CisvLyAgICAgICAgIHBhcmFtLmJ1aWxkTGlrZSgpOworCisvLyAgICAgICAgIFBhZ2VVdGlsLnN0YXJ0UGFnZShwYXJhbSk7CisKKy8vICAgICAgICAgLy8g5p+l6K+i5pWw5o2uCisvLyAgICAgICAgIExpc3Q8VG9ycmVudEVudGl0eT4gbGlzdCA9IHRvcnJlbnRTZXJ2aWNlLnNlYXJjaChwYXJhbSk7CisKKy8vICAgICAgICAgLy8g6L+U5Zue5YiG6aG157uT5p6cCisvLyAgICAgICAgIHJldHVybiBSZXN1bHQub2sobGlzdCwgUGFnZVV0aWwuZ2V0UGFnZShsaXN0KSk7CisvLyAgICAgfQorCisvLyAgICAgQFNhQ2hlY2tMb2dpbgorLy8gICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLnp43lrZDor6bmg4Xmn6Xor6IiKQorLy8gICAgIEBBcGlSZXNwb25zZShyZXNwb25zZUNvZGUgPSAiMCIsIGRlc2NyaXB0aW9uID0gIuaTjeS9nOaIkOWKnyIsIGNvbnRlbnQgPSB7CisvLyAgICAgICAgICAgICBAQ29udGVudChtZWRpYVR5cGUgPSAiYXBwbGljYXRpb24vanNvbiIsIHNjaGVtYSA9IEBTY2hlbWEoaW1wbGVtZW50YXRpb24gPQorLy8gICAgICAgICAgICAgICAgICAgICBUb3JyZW50RW50aXR5LmNsYXNzKSkKKy8vICAgICB9KQorLy8gICAgIEBQb3N0TWFwcGluZygiL2luZm8ve2lkfSIpCisvLyAgICAgcHVibGljIFJlc3VsdCBpbmZvKEBQYXRoVmFyaWFibGUoImlkIilMb25nIGlkKSB7CisKKy8vICAgICAgICAgVG9ycmVudEVudGl0eSBlbnRpdHkgPSB0b3JyZW50U2VydmljZS5zZWxlY3RCeVNlZWRJZChpZCk7CisvLyAgICAgICAgIHJldHVybiBSZXN1bHQub2soZW50aXR5KTsKKy8vICAgICB9CisKKy8vIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLkuIrkvKDnp43lrZAiKQorCisvLyAgICAgQFBvc3RNYXBwaW5nKCIvdXBsb2FkIikKKy8vICAgICBwdWJsaWMgUmVzdWx0IHVwbG9hZFRvcnJlbnQoCisvLyAgICAgICAgICAgICBAUmVxdWVzdFBhcmFtKCJmaWxlIikgTXVsdGlwYXJ0RmlsZSBmaWxlLAorLy8gICAgICAgICAgICAgQFJlcXVlc3RQYXJhbSgiY292ZXJJbWFnZSIpIE11bHRpcGFydEZpbGUgY292ZXJJbWFnZSwKKy8vICAgICAgICAgICAgIEBNb2RlbEF0dHJpYnV0ZSBAVmFsaWRhdGVkIFRvcnJlbnRVcGxvYWRQYXJhbSBwYXJhbSwKKy8vICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0CisvLyAgICAgICAgICAgICApIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgICAvLyDpqozor4HnlKjmiLfmnYPpmZAKKy8vICAgICAgICAgICAgIC8vIExvbmcgdXNlcklkID0gU3RwVXRpbC5nZXRMb2dpbklkQXNMb25nKCk7CisvLyAgICAgICAgICAgICBTdHJpbmcgdXNlcklkID0gU3RyaW5nLnZhbHVlT2YocGFyYW0uZ2V0VXBsb2FkZXIoKSk7CisvLyAgICAgICAgICAgICBwYXJhbS5zZXRVcGxvYWRlcih1c2VySWQpOworCisvLyAgICAgICAgICAgICAvLyDpqozor4Hmlofku7blpKflsI/lkoznsbvlnosKKy8vICAgICAgICAgICAgIGlmIChmaWxlLmlzRW1wdHkoKSB8fCBmaWxlLmdldFNpemUoKSA+IDEwICogMTAyNCAqIDEwMjQpIHsgLy8gMTBNQumZkOWItgorLy8gICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZXJyb3IoIuaWh+S7tuWkp+Wwj+S4jeespuWQiOimgeaxgiIpOworLy8gICAgICAgICAgICAgfQorCisvLyAgICAgICAgICAgICBpZiAoIWZpbGUuZ2V0T3JpZ2luYWxGaWxlbmFtZSgpLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoIi50b3JyZW50IikpIHsKKy8vICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLlj6rmlK/mjIEudG9ycmVudOaWh+S7tiIpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgaWYgKCFjb3ZlckltYWdlLmlzRW1wdHkoKSkgeworLy8gICAgICAgICAgICAgICAgIFN0cmluZyBvcmlnaW5hbEZpbGVuYW1lID0gY292ZXJJbWFnZS5nZXRPcmlnaW5hbEZpbGVuYW1lKCk7CisvLyAgICAgICAgICAgICAgICAgU3RyaW5nIHN1ZmZpeCA9IG9yaWdpbmFsRmlsZW5hbWUuc3Vic3RyaW5nKG9yaWdpbmFsRmlsZW5hbWUubGFzdEluZGV4T2YoIi4iKSk7CisvLyAgICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkgKyBzdWZmaXg7CisKKy8vICAgICAgICAgICAgICAgICBpZiAoIW9yaWdpbmFsRmlsZW5hbWUudG9Mb3dlckNhc2UoKS5tYXRjaGVzKCIuKlxcLihqcGd8anBlZ3xwbmcpJCIpKSB7CisvLyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZXJyb3IoIuS7heaUr+aMgSBKUEcvUE5HIOagvOW8j+eahOWwgemdouWbvueJhyIpOworLy8gICAgICAgICAgICAgICAgIH0KKworCisvLyAgICAgICAgICAgICAgICAgLy8g6aG555uu5qC555uu5b2V5LiL55qEIC91cGxvYWRzL3RvcnJlbnRzLworLy8gICAgICAgICAgICAgICAgIFN0cmluZyB1cGxvYWREaXIgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoInVzZXIuZGlyIikgKyAiL3VwbG9hZHMvdG9ycmVudHMvIjsKKy8vICAgICAgICAgICAgICAgICBGaWxlIGRpciA9IG5ldyBGaWxlKHVwbG9hZERpcik7CisvLyAgICAgICAgICAgICAgICAgaWYgKCFkaXIuZXhpc3RzKCkpIGRpci5ta2RpcnMoKTsgLy8g6Ieq5Yqo5Yib5bu655uu5b2VCisKKy8vICAgICAgICAgICAgICAgICBGaWxlIGRlc3QgPSBuZXcgRmlsZSh1cGxvYWREaXIgKyBmaWxlTmFtZSk7CisvLyAgICAgICAgICAgICAgICAgY292ZXJJbWFnZS50cmFuc2ZlclRvKGRlc3QpOworCisKKy8vICAgICAgICAgICAgICAgICBTdHJpbmcgaW1hZ2VVcmwgPSByZXF1ZXN0LmdldFNjaGVtZSgpICsgIjovLyIgKyByZXF1ZXN0LmdldFNlcnZlck5hbWUoKSArICI6IiArCisvLyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFNlcnZlclBvcnQoKSArICIvdG9ycmVudC1pbWFnZXMvIiArIGZpbGVOYW1lOworCisKKy8vICAgICAgICAgICAgICAgICBwYXJhbS5zZXRJbWFnZVVybChpbWFnZVVybCk7CisvLyAgICAgICAgICAgICB9CisKKy8vICAgICAgICAgICAgIHRvcnJlbnRTZXJ2aWNlLnVwbG9hZFRvcnJlbnQoZmlsZSwgcGFyYW0pOworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5vaygpOworLy8gICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5lcnJvcigi56eN5a2Q5LiK5Lyg5aSx6LSlOiAiICsgZS5nZXRNZXNzYWdlKCkpOworLy8gICAgICAgICB9CisvLyAgICAgfQorCisvLyAgICAgLyoqCisvLyAgICAgICog6I635Y+W56eN5a2Q5paH5Lu2CisvLyAgICAgICovCisvLyAgICAgQEdldE1hcHBpbmcoIi97c2VlZF9pZH0vZG93bmxvYWQiKQorLy8gICAgIHB1YmxpYyB2b2lkIGRvd25sb2FkVG9ycmVudCgKKy8vICAgICAgICAgICAgIEBQYXRoVmFyaWFibGUoInNlZWRfaWQiKSBMb25nIHNlZWRJZCwKKy8vICAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0oInBhc3NrZXkiKSBTdHJpbmcgcGFzc2tleSwKKy8vICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisKKy8vICAgICAgICAgLy8g6I635Y+W56eN5a2Q5a6e5L2TCisvLyAgICAgICAgIFRvcnJlbnRFbnRpdHkgZW50aXR5ID0gdG9ycmVudFNlcnZpY2Uuc2VsZWN0QnlTZWVkSWQoc2VlZElkKTsKKy8vICAgICAgICAgaWYgKGVudGl0eSA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICByZXNwb25zZS5zZW5kRXJyb3IoSHR0cFNlcnZsZXRSZXNwb25zZS5TQ19OT1RfRk9VTkQsICLnp43lrZDkuI3lrZjlnKgiKTsKKy8vICAgICAgICAgICAgIHJldHVybjsKKy8vICAgICAgICAgfQorCisvLyAgICAgICAgIC8vIOiOt+WPluW5tuWkhOeQhuenjeWtkOaWh+S7tuWGheWuue+8iOmcgOWcqHNlcnZpY2XkuK3lrp7njrBwYXNza2V55rOo5YWl77yJCisvLyAgICAgICAgIGJ5dGVbXSB0b3JyZW50Qnl0ZXMgPSB0b3JyZW50U2VydmljZS5mZXRjaChzZWVkSWQsIHBhc3NrZXkpOworCisvLyAgICAgICAgIC8vIOiuvue9ruS4i+i9veaWh+S7tuWQjQorLy8gICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBlbnRpdHkuZ2V0RmlsZU5hbWUoKTsKKy8vICAgICAgICAgaWYgKGZpbGVuYW1lID09IG51bGwgfHwgZmlsZW5hbWUuaXNCbGFuaygpKSB7CisvLyAgICAgICAgICAgICBmaWxlbmFtZSA9IHNlZWRJZCArICIudG9ycmVudCI7CisvLyAgICAgICAgIH0KKy8vICAgICAgICAgaWYgKCFmaWxlbmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKCIudG9ycmVudCIpKSB7CisvLyAgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lICsgIi50b3JyZW50IjsKKy8vICAgICAgICAgfQorLy8gICAgICAgICBmaWxlbmFtZSA9IGphdmEubmV0LlVSTEVuY29kZXIuZW5jb2RlKGZpbGVuYW1lLCBqYXZhLm5pby5jaGFyc2V0LlN0YW5kYXJkQ2hhcnNldHMuVVRGXzgpLnJlcGxhY2VBbGwoIlxcKyIsCisvLyAgICAgICAgICAgICAgICAgIiUyMCIpOworCisvLyAgICAgICAgIC8vIOiuvue9ruWTjeW6lOWktAorLy8gICAgICAgICByZXNwb25zZS5zZXRDaGFyYWN0ZXJFbmNvZGluZyhqYXZhLm5pby5jaGFyc2V0LlN0YW5kYXJkQ2hhcnNldHMuVVRGXzgubmFtZSgpKTsKKy8vICAgICAgICAgcmVzcG9uc2Uuc2V0Q29udGVudExlbmd0aCh0b3JyZW50Qnl0ZXMubGVuZ3RoKTsKKy8vICAgICAgICAgcmVzcG9uc2Uuc2V0Q29udGVudFR5cGUoImFwcGxpY2F0aW9uL3gtYml0dG9ycmVudCIpOworLy8gICAgICAgICByZXNwb25zZS5zZXRIZWFkZXIoIkNvbnRlbnQtRGlzcG9zaXRpb24iLCAiYXR0YWNobWVudDtmaWxlbmFtZT0iICsgZmlsZW5hbWUpOworCisvLyAgICAgICAgIC8vIOWGmeWFpeaWh+S7tuWGheWuuQorLy8gICAgICAgICByZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS53cml0ZSh0b3JyZW50Qnl0ZXMpOworLy8gICAgICAgICByZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0oKS5mbHVzaCgpOworLy8gICAgIH0KKworLy8gICAgIC8qKgorLy8gICAgICAqIOaUtuiXj+aIluiAheWPlua2iOaUtuiXjworLy8gICAgICAqLworLy8gICAgIEBQb3N0TWFwcGluZygiL3tzZWVkX2lkfS9mYXZvcml0ZS10b2dnbGUiKQorLy8gICAgIHB1YmxpYyBSZXN1bHQgZmF2b3JpdGUoCisvLyAgICAgICAgICAgICBAUGF0aFZhcmlhYmxlKCJzZWVkX2lkIikgTG9uZyBzZWVkSWQsCisvLyAgICAgICAgICAgICBAUmVxdWVzdFBhcmFtKCJ1c2VyX2lkIikgTG9uZyAgdXNlcklkKSB7CisvLyAgICAgICAgIHRyeSB7CisKKy8vICAgICAgICAgICAgIHJldHVybiAgdG9ycmVudFNlcnZpY2UuZmF2b3JpdGUoc2VlZElkLCB1c2VySWQpOworLy8gICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5lcnJvcigi5aSx6LSlOiAiKTsKKy8vICAgICAgICAgfQorLy8gICAgIH0KKworLy8gICAgIEBTYUNoZWNrTG9naW4KKy8vICAgICBAT3BlcmF0aW9uKHN1bW1hcnkgPSAi5Yig6Zmk56eN5a2QIikKKy8vICAgICBARGVsZXRlTWFwcGluZygiL3t0b3JyZW50SWR9IikKKy8vICAgICBwdWJsaWMgUmVzdWx0IGRlbGV0ZVRvcnJlbnQoQFBhdGhWYXJpYWJsZSBMb25nIHRvcnJlbnRJZCkgeworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAvLyAg6aqM6K+B55So5oi35p2D6ZmQCisvLyAgICAgICAgICAgICBMb25nIHVzZXJJZCA9IFN0cFV0aWwuZ2V0TG9naW5JZEFzTG9uZygpOworLy8gICAgICAgICAgICAgaWYgKCF0b3JyZW50U2VydmljZS5jYW5Vc2VyRGVsZXRlVG9ycmVudCh0b3JyZW50SWQsIHVzZXJJZCkpIHsKKy8vICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLmsqHmnInmnYPpmZDliKDpmaTmraTnp43lrZAiKTsKKy8vICAgICAgICAgICAgIH0KKworLy8gICAgICAgICAgICAgdG9ycmVudFNlcnZpY2UuZGVsZXRlVG9ycmVudCh0b3JyZW50SWQpOworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5vaygpOworLy8gICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5lcnJvcigi5Yig6Zmk5aSx6LSlOiAiICsgZS5nZXRNZXNzYWdlKCkpOworLy8gICAgICAgICB9CisvLyAgICAgfQorCisvLyAgICAgQFNhQ2hlY2tMb2dpbgorLy8gICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLkv67mlLnnp43lrZDkv6Hmga8iKQorLy8gICAgIEBQdXRNYXBwaW5nKCIve3RvcnJlbnRJZH0iKQorLy8gICAgIHB1YmxpYyBSZXN1bHQgdXBkYXRlVG9ycmVudCgKKy8vICAgICAgICAgICAgIEBQYXRoVmFyaWFibGUgTG9uZyB0b3JyZW50SWQsCisvLyAgICAgICAgICAgICBAUmVxdWVzdEJvZHkgQFZhbGlkYXRlZCBUb3JyZW50VXBkYXRlRFRPIHVwZGF0ZURUTykgeworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgLy8g6aqM6K+B55So5oi35p2D6ZmQCisvLyAgICAgICAgICAgICBMb25nIHVzZXJJZCA9IFN0cFV0aWwuZ2V0TG9naW5JZEFzTG9uZygpOworLy8gICAgICAgICAgICAgaWYgKCF0b3JyZW50U2VydmljZS5jYW5Vc2VyVXBkYXRlVG9ycmVudCh0b3JyZW50SWQsIHVzZXJJZCkpIHsKKy8vICAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLmsqHmnInmnYPpmZDkv67mlLnmraTnp43lrZAiKTsKKy8vICAgICAgICAgICAgIH0KKworLy8gICAgICAgICAgICAgdG9ycmVudFNlcnZpY2UudXBkYXRlVG9ycmVudCh0b3JyZW50SWQsIHVwZGF0ZURUTyk7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKCk7CisvLyAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLmm7TmlrDlpLHotKU6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICBAU2FDaGVja0xvZ2luCisvLyAgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuWIm+W7uuS/g+mUgOa0u+WKqCIpCisvLyAgICAgQFBvc3RNYXBwaW5nKCIvcHJvbW90aW9ucyIpCisvLyAgICAgcHVibGljIFJlc3VsdCBjcmVhdGVQcm9tb3Rpb24oQFJlcXVlc3RCb2R5IEBWYWxpZGF0ZWQgUHJvbW90aW9uQ3JlYXRlRFRPIHByb21vdGlvbkRUTykgeworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgLy8g6aqM6K+B55So5oi35p2D6ZmQ77yI5Y+q5pyJ566h55CG5ZGY5Y+v5Lul5Yib5bu65L+D6ZSA77yJCisvLyAvLyAgICAgICAgICAgIGlmICghU3RwVXRpbC5oYXNSb2xlKCJhZG1pbiIpKSB7CisvLyAvLyAgICAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLmsqHmnInmnYPpmZDliJvlu7rkv4PplIDmtLvliqgiKTsKKy8vIC8vICAgICAgICAgICAgfQorLy8gLy8KKy8vICAgICAgICAgICAgIFByb21vdGlvbiBwcm9tb3Rpb24gPSBwcm9tb3Rpb25TZXJ2aWNlLmNyZWF0ZVByb21vdGlvbihwcm9tb3Rpb25EVE8pOworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5vayhwcm9tb3Rpb24pOworLy8gICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5lcnJvcigi5Yib5bu65L+D6ZSA5aSx6LSlOiAiICsgZS5nZXRNZXNzYWdlKCkpOworLy8gICAgICAgICB9CisvLyAgICAgfQorCisvLyAgICAgQFNhQ2hlY2tMb2dpbgorLy8gICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLojrflj5bkv4PplIDmtLvliqjliJfooagiKQorLy8gICAgIEBHZXRNYXBwaW5nKCIvcHJvbW90aW9ucyIpCisvLyAgICAgcHVibGljIFJlc3VsdCBnZXRQcm9tb3Rpb25zKCkgeworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgTGlzdDxQcm9tb3Rpb24+IHByb21vdGlvbnMgPSBwcm9tb3Rpb25TZXJ2aWNlLmdldEFsbEFjdGl2ZVByb21vdGlvbnMoKTsKKy8vICAgICAgICAgICAgIHJldHVybiBSZXN1bHQub2socHJvbW90aW9ucyk7CisvLyAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLojrflj5bkv4PplIDliJfooajlpLHotKU6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICBAU2FDaGVja0xvZ2luCisvLyAgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuiOt+WPluS/g+mUgOivpuaDhSIpCisvLyAgICAgQEdldE1hcHBpbmcoIi9wcm9tb3Rpb25zL3twcm9tb3Rpb25JZH0iKQorLy8gICAgIHB1YmxpYyBSZXN1bHQgZ2V0UHJvbW90aW9uRGV0YWlscyhAUGF0aFZhcmlhYmxlIExvbmcgcHJvbW90aW9uSWQpIHsKKy8vICAgICAgICAgdHJ5IHsKKy8vICAgICAgICAgICAgIFByb21vdGlvbiBwcm9tb3Rpb24gPSBwcm9tb3Rpb25TZXJ2aWNlLmdldFByb21vdGlvbkJ5SWQocHJvbW90aW9uSWQpOworLy8gICAgICAgICAgICAgaWYgKHByb21vdGlvbiA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5lcnJvcigi5L+D6ZSA5rS75Yqo5LiN5a2Y5ZyoIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKHByb21vdGlvbik7CisvLyAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLojrflj5bkv4PplIDor6bmg4XlpLHotKU6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICBAU2FDaGVja0xvZ2luCisvLyAgICAgQE9wZXJhdGlvbihzdW1tYXJ5ID0gIuWIoOmZpOS/g+mUgOa0u+WKqCIpCisvLyAgICAgQERlbGV0ZU1hcHBpbmcoIi9wcm9tb3Rpb25zL3twcm9tb3Rpb25JZH0iKQorLy8gICAgIHB1YmxpYyBSZXN1bHQgZGVsZXRlUHJvbW90aW9uKEBQYXRoVmFyaWFibGUgTG9uZyBwcm9tb3Rpb25JZCkgeworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgLy8g6aqM6K+B55So5oi35p2D6ZmQ77yI5Y+q5pyJ566h55CG5ZGY5Y+v5Lul5Yig6Zmk5L+D6ZSA77yJCisvLyAgICAgICAgICAgICBpZiAoIVN0cFV0aWwuaGFzUm9sZSgiYWRtaW4iKSkgeworLy8gICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuZXJyb3IoIuayoeacieadg+mZkOWIoOmZpOS/g+mUgOa0u+WKqCIpOworLy8gICAgICAgICAgICAgfQorCisvLyAgICAgICAgICAgICBwcm9tb3Rpb25TZXJ2aWNlLmRlbGV0ZVByb21vdGlvbihwcm9tb3Rpb25JZCk7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKCk7CisvLyAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLliKDpmaTkv4PplIDlpLHotKU6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICAvLyDkuIvovb3np43lrZDvvIjljIXlkKvlj43kvZzlvIrmnLrliLbvvIkKKy8vICAgICBAUG9zdE1hcHBpbmcoIi97dG9ycmVudElkfS9kb3dubG9hZCIpCisvLyAgICAgcHVibGljIFJlc3BvbnNlRW50aXR5PD8+IGRvd25sb2FkVG9ycmVudChAUGF0aFZhcmlhYmxlIExvbmcgdG9ycmVudElkLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0gTG9uZyB1c2VySWQpIHsKKy8vIC8vICAgICAgICAvLyDpqozor4HnlKjmiLfouqvku73lkozmnYPpmZAKKy8vIC8vICAgICAgICBpZiAoIXVzZXJTZXJ2aWNlLnZhbGlkYXRlVXNlcih1c2VySWQpKSB7CisvLyAvLyAgICAgICAgICAgIHJldHVybiBSZXNwb25zZUVudGl0eS5zdGF0dXMoSHR0cFN0YXR1cy5VTkFVVEhPUklaRUQpLmJ1aWxkKCk7CisvLyAvLyAgICAgICAgfQorCisvLyAgICAgICAgIC8vIOajgOafpeeUqOaIt+S4iuS8oOmHj+aYr+WQpui2s+WknworLy8gICAgICAgICBpZiAoIXRvcnJlbnRTZXJ2aWNlLmNoZWNrVXNlclVwbG9hZFJhdGlvKHVzZXJJZCkpIHsKKy8vICAgICAgICAgICAgIHJldHVybiBSZXNwb25zZUVudGl0eS5zdGF0dXMoSHR0cFN0YXR1cy5GT1JCSURERU4pCisvLyAgICAgICAgICAgICAgICAgLmJvZHkoIuS4iuS8oOmHj+S4jei2s++8jOaXoOazleS4i+i9vSIpOworLy8gICAgICAgICB9CisKKy8vICAgICAgICAgLy8g5bqU55So5L+D6ZSA5oqY5omj77yI5aaC5p6c5pyJ77yJCisvLyAgICAgICAgIGRvdWJsZSBkb3dubG9hZFNpemUgPSB0b3JyZW50U2VydmljZS5jYWxjdWxhdGVEb3dubG9hZFNpemUodG9ycmVudElkLCB1c2VySWQpOworCisvLyAgICAgICAgIC8vIOiusOW9leS4i+i9vQorLy8gICAgICAgICB0b3JyZW50U2VydmljZS5yZWNvcmREb3dubG9hZCh0b3JyZW50SWQsIHVzZXJJZCwgZG93bmxvYWRTaXplKTsKKworLy8gICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkub2soKS5idWlsZCgpOworLy8gICAgIH0KKworLy8gfQogcGFja2FnZSBjb20uZXhhbXBsZS5teXByb2plY3QuY29udHJvbGxlcjsKIAoraW1wb3J0IGNuLmh1dG9vbC5jb3JlLnV0aWwuU3RyVXRpbDsKIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuY29tbW9uLmJhc2UuUGFnZVV0aWw7CitpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5UcmFja2VyUHJvdG9jb2w7CiBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmVudGl0eS5Ub3JyZW50RW50aXR5OworaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVG9ycmVudFJlcG9ydDsKK2ltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QucmVwb3NpdG9yeS5Ub3JyZW50UmVwb3J0UmVwb3NpdG9yeTsKIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3Quc2VydmljZS5Ub3JyZW50U2VydmljZTsKIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3Quc2VydmljZS5Qcm9tb3Rpb25TZXJ2aWNlOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5kdG8ucGFyYW0uVG9ycmVudFBhcmFtOwpAQCAtMTMsMTEgKzMzNywxNyBAQAogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuUHJvbW90aW9uOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlVzZXJTZXJ2aWNlOwogCitpbXBvcnQgY29tLnR1cm4udHRvcnJlbnQuYmNvZGVjLkJFVmFsdWU7CitpbXBvcnQgY29tLnR1cm4udHRvcnJlbnQuYmNvZGVjLkJFbmNvZGVyOworaW1wb3J0IGNvbS50dXJuLnR0b3JyZW50LmNvbW1vbi5Ub3JyZW50VXRpbHM7CiBpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMuT3BlcmF0aW9uOwogaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLm1lZGlhLkNvbnRlbnQ7CiBpbXBvcnQgaW8uc3dhZ2dlci52My5vYXMuYW5ub3RhdGlvbnMubWVkaWEuU2NoZW1hOwogaW1wb3J0IGlvLnN3YWdnZXIudjMub2FzLmFubm90YXRpb25zLnJlc3BvbnNlcy5BcGlSZXNwb25zZTsKIAoraW1wb3J0IGxvbWJvay5SZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcjsKK2ltcG9ydCBsb21ib2suZXh0ZXJuLnNsZjRqLlNsZjRqOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuQmVhblV0aWxzOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuSHR0cFN0YXR1czsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuUmVzcG9uc2VFbnRpdHk7CkBAIC0yOSwxNSArMzU5LDIwIEBACiBpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CiBpbXBvcnQgamF2YS5pby5GaWxlOwogaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247Ci1pbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS5uZXQuVVJMRGVjb2RlcjsKK2ltcG9ydCBqYXZhLm5pby5CeXRlQnVmZmVyOworaW1wb3J0IGphdmEubmlvLmNoYXJzZXQuU3RhbmRhcmRDaGFyc2V0czsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKIAogaW1wb3J0IGNuLmRldjMzLnNhdG9rZW4uYW5ub3RhdGlvbi5TYUNoZWNrTG9naW47CiBpbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5zdHAuU3RwVXRpbDsKIAogQFJlc3RDb250cm9sbGVyCiBAUmVxdWVzdE1hcHBpbmcoIi9zZWVkcyIpCitAU2xmNGoKK0BSZXF1aXJlZEFyZ3NDb25zdHJ1Y3RvcgogcHVibGljIGNsYXNzIFRvcnJlbnRDb250cm9sbGVyIHsKLQorICAgIHByaXZhdGUgZmluYWwgVG9ycmVudFJlcG9ydFJlcG9zaXRvcnkgdG9ycmVudFJlcG9ydFJlcG9zaXRvcnk7CiAgICAgQEF1dG93aXJlZAogICAgIHByaXZhdGUgVG9ycmVudFNlcnZpY2UgdG9ycmVudFNlcnZpY2U7CiAKQEAgLTQ2LDYgKzM4MSw3IEBACiAKICAgICBAQXV0b3dpcmVkCiAgICAgcHJpdmF0ZSBVc2VyU2VydmljZSB1c2VyU2VydmljZTsKKyAgICBwcml2YXRlIGZpbmFsIExpc3Q8QkVWYWx1ZT4gcGVlcnMgPSBuZXcgVmVjdG9yPD4oKTsKIAogCiAgICAgQFNhQ2hlY2tMb2dpbgpAQCAtNTQsOCArMzkwLDggQEAKICAgICAgICAgICAgIGNvbnRlbnQgPSB7QENvbnRlbnQobWVkaWFUeXBlID0gImFwcGxpY2F0aW9uL2pzb24iLAogICAgICAgICAgICAgICAgICAgICBzY2hlbWEgPSBAU2NoZW1hKGltcGxlbWVudGF0aW9uID0gVG9ycmVudFZPLmNsYXNzKSkKICAgICAgICAgICAgIH0pCi0gICAgQFBvc3RNYXBwaW5nKCIvbGlzdCIpCi0gICAgcHVibGljIFJlc3VsdCBsaXN0KEBSZXF1ZXN0Qm9keSBUb3JyZW50UGFyYW0gcGFyYW0pIHsKKyAgICBAR2V0TWFwcGluZygiL2xpc3QiKQorICAgIHB1YmxpYyBSZXN1bHQgbGlzdCggVG9ycmVudFBhcmFtIHBhcmFtKSB7CiAgICAgICAgIC8vIOaehOW7uuaOkuW6j+WSjOaooeeziuafpeivouadoeS7tgogICAgICAgICBwYXJhbS52YWxpZE9yZGVyKHBhcmFtLmdldE9yZGVyS2V5KFRvcnJlbnRFbnRpdHkuY2xhc3MpKTsKICAgICAgICAgcGFyYW0uYnVpbGRMaWtlKCk7CkBAIC04Miw4ICs0MTgsNyBAQAogICAgICAgICByZXR1cm4gUmVzdWx0Lm9rKGVudGl0eSk7CiAgICAgfQogCi1AT3BlcmF0aW9uKHN1bW1hcnkgPSAi5LiK5Lyg56eN5a2QIikKLQorICAgIEBPcGVyYXRpb24oc3VtbWFyeSA9ICLkuIrkvKDnp43lrZAiKQogICAgIEBQb3N0TWFwcGluZygiL3VwbG9hZCIpCiAgICAgcHVibGljIFJlc3VsdCB1cGxvYWRUb3JyZW50KAogICAgICAgICAgICAgQFJlcXVlc3RQYXJhbSgiZmlsZSIpIE11bHRpcGFydEZpbGUgZmlsZSwKQEAgLTEyNSw3ICs0NjAsOCBAQAogCiAKICAgICAgICAgICAgICAgICBTdHJpbmcgaW1hZ2VVcmwgPSByZXF1ZXN0LmdldFNjaGVtZSgpICsgIjovLyIgKyByZXF1ZXN0LmdldFNlcnZlck5hbWUoKSArICI6IiArCi0gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFNlcnZlclBvcnQoKSArICIvdG9ycmVudC1pbWFnZXMvIiArIGZpbGVOYW1lOworICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRTZXJ2ZXJQb3J0KCkgKyAiL3VwbG9hZHMvdG9ycmVudHMvIiArIGZpbGVOYW1lOworLy8gICAgICAgICAgICAgICAgU3RyaW5nIGltYWdlVXJsID0iL3VwbG9hZHMvdG9ycmVudHMvIiArIGZpbGVOYW1lOwogCiAKICAgICAgICAgICAgICAgICBwYXJhbS5zZXRJbWFnZVVybChpbWFnZVVybCk7CkBAIC0yOTIsMzEgKzYyOCw3OSBAQAogICAgICAgICAgICAgcmV0dXJuIFJlc3VsdC5lcnJvcigi5Yig6Zmk5L+D6ZSA5aSx6LSlOiAiICsgZS5nZXRNZXNzYWdlKCkpOwogICAgICAgICB9CiAgICAgfQotCi0gICAgLy8g5LiL6L2956eN5a2Q77yI5YyF5ZCr5Y+N5L2c5byK5py65Yi277yJCi0gICAgQFBvc3RNYXBwaW5nKCIve3RvcnJlbnRJZH0vZG93bmxvYWQiKQotICAgIHB1YmxpYyBSZXNwb25zZUVudGl0eTw/PiBkb3dubG9hZFRvcnJlbnQoQFBhdGhWYXJpYWJsZSBMb25nIHRvcnJlbnRJZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAUmVxdWVzdFBhcmFtIExvbmcgdXNlcklkKSB7Ci0vLyAgICAgICAgLy8g6aqM6K+B55So5oi36Lqr5Lu95ZKM5p2D6ZmQCi0vLyAgICAgICAgaWYgKCF1c2VyU2VydmljZS52YWxpZGF0ZVVzZXIodXNlcklkKSkgewotLy8gICAgICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkuc3RhdHVzKEh0dHBTdGF0dXMuVU5BVVRIT1JJWkVEKS5idWlsZCgpOwotLy8gICAgICAgIH0KLQotICAgICAgICAvLyDmo4Dmn6XnlKjmiLfkuIrkvKDph4/mmK/lkKbotrPlpJ8KLSAgICAgICAgaWYgKCF0b3JyZW50U2VydmljZS5jaGVja1VzZXJVcGxvYWRSYXRpbyh1c2VySWQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkuc3RhdHVzKEh0dHBTdGF0dXMuRk9SQklEREVOKQotICAgICAgICAgICAgICAgIC5ib2R5KCLkuIrkvKDph4/kuI3otrPvvIzml6Dms5XkuIvovb0iKTsKKyAgICBAR2V0TWFwcGluZygiL2Fubm91bmNlIikKKyAgICBwdWJsaWMgUmVzcG9uc2VFbnRpdHk8Ynl0ZVtdPiBhbm5vdW5jZShUcmFja2VyUHJvdG9jb2wgdHJhY2tlclByb3RvY29sLCBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgQFJlcXVlc3RQYXJhbSh2YWx1ZSA9ICJpbmZvX2hhc2giKSBTdHJpbmcgZW5jb2RlZEluZm9IYXNoKXsKKyAgICAgICAgSGFzaE1hcDxTdHJpbmcsIEJFVmFsdWU+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKKyAgICAgICAgaWYgKFN0clV0aWwuaXNCbGFuayh0cmFja2VyUHJvdG9jb2wuZ2V0SXAoKSkpIHsKKyAgICAgICAgICAgIHRyYWNrZXJQcm90b2NvbC5zZXRJcChyZXF1ZXN0LmdldFJlbW90ZUFkZHIoKSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyDlupTnlKjkv4PplIDmipjmiaPvvIjlpoLmnpzmnInvvIkKLSAgICAgICAgZG91YmxlIGRvd25sb2FkU2l6ZSA9IHRvcnJlbnRTZXJ2aWNlLmNhbGN1bGF0ZURvd25sb2FkU2l6ZSh0b3JyZW50SWQsIHVzZXJJZCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBieXRlW10gYnl0ZXMgPSBVUkxEZWNvZGVyLmRlY29kZShyZXF1ZXN0LmdldFF1ZXJ5U3RyaW5nKCkuc3BsaXQoImluZm9faGFzaD0iKVsxXS5zcGxpdCgiJiIpWzBdLCBTdGFuZGFyZENoYXJzZXRzLklTT184ODU5XzEpLmdldEJ5dGVzKFN0YW5kYXJkQ2hhcnNldHMuSVNPXzg4NTlfMSk7CisgICAgICAgICAgICBTdHJpbmcgaW5mb0hhc2ggPSBUb3JyZW50VXRpbHMuYnl0ZUFycmF5VG9IZXhTdHJpbmcoYnl0ZXMpOwogCi0gICAgICAgIC8vIOiusOW9leS4i+i9vQotICAgICAgICB0b3JyZW50U2VydmljZS5yZWNvcmREb3dubG9hZCh0b3JyZW50SWQsIHVzZXJJZCwgZG93bmxvYWRTaXplKTsKKyAgICAgICAgICAgIHRyYWNrZXJQcm90b2NvbC5zZXRJbmZvX2hhc2goaW5mb0hhc2gpOworICAgICAgICAgICAgVG9ycmVudEVudGl0eSB0b3JyZW50ID0gdG9ycmVudFNlcnZpY2Uuc2VsZWN0QnlJbmZvSGFzaChpbmZvSGFzaCk7CisgICAgICAgICAgICBpZiAodG9ycmVudCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIuenjeWtkOS4jeWtmOWcqCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW50ZWdlciB1c2VySWQgPSB0cmFja2VyUHJvdG9jb2wuZ2V0VXNlcklkKCk7CiAKLSAgICAgICAgcmV0dXJuIFJlc3BvbnNlRW50aXR5Lm9rKCkuYnVpbGQoKTsKKyAgICAgICAgICAgIFRvcnJlbnRSZXBvcnQgcmVwb3J0ID0gVG9ycmVudFJlcG9ydC5idWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgLnVzZXJJZCh1c2VySWQgKQorICAgICAgICAgICAgICAgICAgICAudG9ycmVudElkKHRvcnJlbnQuZ2V0SWQoKSkKKyAgICAgICAgICAgICAgICAgICAgLnBlZXJJZCh0cmFja2VyUHJvdG9jb2wuZ2V0UGVlcl9pZCgpKQorICAgICAgICAgICAgICAgICAgICAuaW5mb0hhc2goaW5mb0hhc2gpCisgICAgICAgICAgICAgICAgICAgIC5idWlsZCgpOworICAgICAgICAgICAgQmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzKHRyYWNrZXJQcm90b2NvbCwgcmVwb3J0KTsKKyAgICAgICAgICAgIHRvcnJlbnRSZXBvcnRSZXBvc2l0b3J5LnNhdmUocmVwb3J0KTsKK3N5bmNocm9uaXplZCAodGhpcyl7CisKKyAgICAgICAgICAgIGJvb2xlYW4gaXNBZGRlZCA9IHBlZXJzLnN0cmVhbSgpLmFueU1hdGNoKG0gLT4geworICAgICAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgQkVWYWx1ZT4gbWFwMSA9IG0uZ2V0TWFwKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXAxLmdldCgiaXAiKS5nZXRTdHJpbmcoKS5lcXVhbHModHJhY2tlclByb3RvY29sLmdldElwKCkpICYmIG1hcDEuZ2V0KCJwb3J0IikuZ2V0SW50KCkgPT0gdHJhY2tlclByb3RvY29sLmdldFBvcnQoKTsKKyAgICAgICAgICAgICAgICB9Y2F0Y2ggIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGxvZy5pbmZvKCJjbGllbnQgcmVwb3J0OiB7fSIsIHRyYWNrZXJQcm90b2NvbCk7CisgICAgICAgICAgICBtYXAucHV0KCJpbnRlcnZhbCIsIG5ldyBCRVZhbHVlKDMwKSk7CisgICAgICAgICAgICBtYXAucHV0KCJwZWVycyIsIG5ldyBCRVZhbHVlKHBlZXJzKSk7CisgICAgICAgICAgICBwZWVycy5mb3JFYWNoKHAgLT4geworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIE1hcDxTdHJpbmcsIEJFVmFsdWU+IG1hcDEgPSBwLmdldE1hcCgpOworICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiUGVlciBpbmZvOiBpcD17fSwgcG9ydD17fSwgaWQ9e30iLCBtYXAxLmdldCgiaXAiKS5nZXRTdHJpbmcoKSwgbWFwMS5nZXQoInBvcnQiKS5nZXRJbnQoKSwgbWFwMS5nZXQoInBlZXIgaWQiKS5nZXRTdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfWNhdGNoIChFeGNlcHRpb24gZSl7CisgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiUHJpbnQgUGVlciBpbmZvIGVycm9yIiwgZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEJ5dGVCdWZmZXIgYmVuY29kZSA9IEJFbmNvZGVyLmJlbmNvZGUobWFwKTsKKyAgICAgICAgICAgIGlmKCFpc0FkZGVkKXsKKyAgICAgICAgICAgICAgICBsb2cuaW5mbygiTmV3IHBlZXIgYWRkZWQuIik7CisgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgQkVWYWx1ZT4gcCA9IG5ldyBIYXNoTWFwPD4oMyk7CisgICAgICAgICAgICAgICAgcC5wdXQoImlwIiwgbmV3IEJFVmFsdWUodHJhY2tlclByb3RvY29sLmdldElwKCkpKTsKKyAgICAgICAgICAgICAgICBwLnB1dCgicGVlciBpZCIsIG5ldyBCRVZhbHVlKHRyYWNrZXJQcm90b2NvbC5nZXRQZWVyX2lkKCkpKTsKKyAgICAgICAgICAgICAgICBwLnB1dCgicG9ydCIsIG5ldyBCRVZhbHVlKHRyYWNrZXJQcm90b2NvbC5nZXRQb3J0KCkpKTsKKyAgICAgICAgICAgICAgICBwZWVycy5hZGQobmV3IEJFVmFsdWUocCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gUmVzcG9uc2VFbnRpdHkub2soYmVuY29kZS5hcnJheSgpKTsKK30KKworICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBlKXsKKyAgICAgICAgICAgIHRyeXsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IGUuZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlID09IG51bGwgPyAiIiA6IG1lc3NhZ2U7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJhbm5vdW5jZSBlcnJvciIsIGUpOworICAgICAgICAgICAgICAgIG1hcC5wdXQoImZhaWx1cmUgcmVhc29uIiwgbmV3IEJFVmFsdWUobWVzc2FnZSAgICwgIlVURi04IikpOworICAgICAgICAgICAgICAgIHJldHVybiBSZXNwb25zZUVudGl0eS5vayhCRW5jb2Rlci5iZW5jb2RlKG1hcCkuYXJyYXkoKSk7CisgICAgICAgICAgICB9Y2F0Y2ggKEV4Y2VwdGlvbiBleCl7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJhbm5vdW5jZSBlcnJvciAiLCBleCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlRW50aXR5LnN0YXR1cyhIdHRwU3RhdHVzLklOVEVSTkFMX1NFUlZFUl9FUlJPUikuYm9keSgiSW50ZXJuYWwgU2VydmVyIEVycm9yIi5nZXRCeXRlcygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAotCi0KIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyLmphdmEKaW5kZXggNmIzZDc5My4uNDFhMzM1MCAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Vc2VyQ29udHJvbGxlci5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckNvbnRyb2xsZXIuamF2YQpAQCAtMSwyMSArMSwxODAgQEAKKy8vIHBhY2thZ2UgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbnRyb2xsZXI7CisKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5LlVzZXJzOworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5yZXBvc2l0b3J5LlVzZXJSZXBvc2l0b3J5OworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLkR5bmFtaWNTZXJ2aWNlOworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlRhc2tTZXJ2aWNlOworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlVzZXJTZXJ2aWNlOworLy8gaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuUmVzcG9uc2VFbnRpdHk7CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLio7CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIubXVsdGlwYXJ0Lk11bHRpcGFydEZpbGU7CisKKy8vIGltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworLy8gaW1wb3J0IGphdmEudXRpbC5NYXA7CisvLyBpbXBvcnQgamF2YS51dGlsLk9wdGlvbmFsOworCisvLyBpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisvLyBpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKKworCisvLyBAUmVzdENvbnRyb2xsZXIKKy8vIEBSZXF1ZXN0TWFwcGluZygiL2VjaG8vdXNlciIpCisvLyBwdWJsaWMgY2xhc3MgVXNlckNvbnRyb2xsZXIgeworCisvLyAgICAgQEF1dG93aXJlZAorLy8gICAgIHByaXZhdGUgVXNlclNlcnZpY2UgdXNlclNlcnZpY2U7CisKKy8vICAgICBAQXV0b3dpcmVkCisvLyAgICAgcHJpdmF0ZSBVc2VyUmVwb3NpdG9yeSB1c2VyUmVwb3NpdG9yeTsKKworLy8gICAgIEBBdXRvd2lyZWQKKy8vICAgICBwcml2YXRlIER5bmFtaWNTZXJ2aWNlIGR5bmFtaWNTZXJ2aWNlOworCisvLyAgICAgLy8g5o6l5Y+j77ya55Sf5oiQ6YKA6K+356CBCisvLyAgICAgQFBvc3RNYXBwaW5nKCIvZ2V0SW52aXRlQ29kZSIpCisvLyAgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gZ2VuZXJhdGVJbnZpdGVDb2RlKEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBPYmplY3Q+IHJlcXVlc3QpIHsKKy8vICAgICAgICAgTG9uZyB1c2VySWQgPSBMb25nLnBhcnNlTG9uZyhyZXF1ZXN0LmdldCgidXNlcl9pZCIpLnRvU3RyaW5nKCkpOworLy8gICAgICAgICByZXR1cm4gdXNlclNlcnZpY2UuZ2VuZXJhdGVJbnZpdGVDb2RlKHVzZXJJZCk7CisvLyAgICAgfQorCisvLyAgICAgLy/ms6jlhowKKy8vICAgICBAUG9zdE1hcHBpbmcoIi9yZWdpc3RlciIpCisvLyAgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gcmVnaXN0ZXIoQFJlcXVlc3RCb2R5IE1hcDxTdHJpbmcsIE9iamVjdD4gcmVxdWVzdCkgeworLy8gICAgICAgICBTdHJpbmcgdXNlcm5hbWUgPSAoU3RyaW5nKSByZXF1ZXN0LmdldCgidXNlcm5hbWUiKTsKKy8vICAgICAgICAgU3RyaW5nIGVtYWlsID0gKFN0cmluZykgcmVxdWVzdC5nZXQoImVtYWlsIik7CisvLyAgICAgICAgIFN0cmluZyBwYXNzd29yZCA9IChTdHJpbmcpIHJlcXVlc3QuZ2V0KCJwYXNzd29yZCIpOworLy8gICAgICAgICBTdHJpbmcgcm9sZSA9IChTdHJpbmcpIHJlcXVlc3QuZ2V0KCJyb2xlIik7CisvLyAgICAgICAgIFN0cmluZyBpbnZpdGVDb2RlID0gKFN0cmluZykgcmVxdWVzdC5nZXQoImludml0ZUNvZGUiKTsKKworLy8gICAgICAgICAvLyDosIPnlKjmnI3liqHlsYLnmoTms6jlhozmlrnms5UKKy8vICAgICAgICAgU3RyaW5nIHJlc3VsdE1lc3NhZ2UgPSB1c2VyU2VydmljZS5yZWdpc3RlclVzZXIodXNlcm5hbWUsIGVtYWlsLCBwYXNzd29yZCwgcm9sZSwgaW52aXRlQ29kZSk7CisKKy8vICAgICAgICAgLy8g6L+U5Zue5rOo5YaM57uT5p6cCisvLyAgICAgICAgIHJldHVybiBNYXAub2YoIm1zZyIsIHJlc3VsdE1lc3NhZ2UpOworLy8gICAgIH0KKworLy8gICAgIC8v55m75b2VCisvLyAgICAgQFBvc3RNYXBwaW5nKCIvbG9naW4iKQorLy8gICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBPYmplY3Q+IGxvZ2luKEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBPYmplY3Q+IHJlcXVlc3QpIHsKKy8vICAgICAgICAgU3RyaW5nIHVzZXJuYW1lID0gKFN0cmluZykgcmVxdWVzdC5nZXQoInVzZXJuYW1lIik7CisvLyAgICAgICAgIFN0cmluZyBwYXNzd29yZCA9IChTdHJpbmcpIHJlcXVlc3QuZ2V0KCJwYXNzd29yZCIpOworCisvLyAgICAgICAgIC8vIOiwg+eUqOacjeWKoeWxgueahOeZu+W9leaWueazlQorLy8gICAgICAgICBTdHJpbmcgcmVzdWx0TWVzc2FnZSA9IHVzZXJTZXJ2aWNlLmxvZ2luVXNlcih1c2VybmFtZSwgcGFzc3dvcmQpOworCisvLyAgICAgICAgIC8vIOagueaNrueZu+W9lee7k+aenOi/lOWbnuS4jeWQjOeahOWTjeW6lAorLy8gICAgICAgICBpZiAocmVzdWx0TWVzc2FnZS5lcXVhbHMoIueZu+W9leaIkOWKnyIpKSB7CisvLyAgICAgICAgICAgICAvLyDmn6Xor6LnlKjmiLfkv6Hmga8KKy8vICAgICAgICAgICAgIE9wdGlvbmFsPFVzZXJzPiB1c2VyID0gdXNlclJlcG9zaXRvcnkuZmluZEJ5VXNlcm5hbWUodXNlcm5hbWUpOworLy8gICAgICAgICAgICAgaWYgKHVzZXIuaXNQcmVzZW50KCkpIHsKKy8vICAgICAgICAgICAgICAgICAvLyDlsIbnlKjmiLfnmoTmiYDmnInkv6Hmga/kvZzkuLrov5Tlm57lgLwKKy8vICAgICAgICAgICAgICAgICByZXR1cm4gTWFwLm9mKCJtc2ciLCByZXN1bHRNZXNzYWdlLCAidXNlciIsIHVzZXIuZ2V0KCkpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICByZXR1cm4gTWFwLm9mKCJtc2ciLCAi55So5oi35L+h5oGv5p+l6K+i5aSx6LSlIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICByZXR1cm4gTWFwLm9mKCJtc2ciLCByZXN1bHRNZXNzYWdlKTsKKy8vICAgICAgICAgfQorLy8gICAgIH0KKworLy8gICAgIC8v5L+u5pS55a+G56CBCisvLyAgICAgQFBvc3RNYXBwaW5nKCIvcGFzc3dvcmQiKQorLy8gICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBPYmplY3Q+IGNoYW5nZVBhc3N3b3JkKEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBPYmplY3Q+IHJlcXVlc3QpIHsKKy8vICAgICAgICAgTG9uZyB1c2VySWQgPSBMb25nLnBhcnNlTG9uZyhyZXF1ZXN0LmdldCgidXNlcl9pZCIpLnRvU3RyaW5nKCkpOworLy8gICAgICAgICBTdHJpbmcgb2xkUGFzc3dvcmQgPSAoU3RyaW5nKSByZXF1ZXN0LmdldCgib2xkX3Bhc3N3b3JkIik7CisvLyAgICAgICAgIFN0cmluZyBuZXdQYXNzd29yZCA9IChTdHJpbmcpIHJlcXVlc3QuZ2V0KCJuZXdfcGFzc3dvcmQiKTsKKy8vICAgICAgICAgU3RyaW5nIGNvbmZpcm1QYXNzd29yZCA9IChTdHJpbmcpIHJlcXVlc3QuZ2V0KCJjb25maXJtX3Bhc3N3b3JkIik7CisKKy8vICAgICAgICAgLy8g6LCD55So5pyN5Yqh5bGC55qE5L+u5pS55a+G56CB5pa55rOVCisvLyAgICAgICAgIFN0cmluZyByZXN1bHRNZXNzYWdlID0gdXNlclNlcnZpY2UuY2hhbmdlUGFzc3dvcmQodXNlcklkLCBvbGRQYXNzd29yZCwgbmV3UGFzc3dvcmQsIGNvbmZpcm1QYXNzd29yZCk7CisKKy8vICAgICAgICAgLy8g6L+U5Zue5L+u5pS557uT5p6cCisvLyAgICAgICAgIHJldHVybiBNYXAub2YoIm1lc3NhZ2UiLCByZXN1bHRNZXNzYWdlLCAic3RhdHVzIiwgcmVzdWx0TWVzc2FnZS5lcXVhbHMoIuWvhueggeS/ruaUueaIkOWKnyIpID8gInN1Y2Nlc3MiIDogImVycm9yIik7CisvLyAgICAgfQorCisvLyAgICAgLy8g6I635Y+W55So5oi35Liq5Lq66LWE5paZCisvLyAgICAgQEdldE1hcHBpbmcoIi97dXNlcklkfS9nZXRQcm9maWxlIikKKy8vICAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBnZXRQcm9maWxlKEBQYXRoVmFyaWFibGUoInVzZXJJZCIpIExvbmcgdXNlcklkKSB7CisvLyAgICAgICAgIHJldHVybiB1c2VyU2VydmljZS5nZXRQcm9maWxlKHVzZXJJZCk7CisvLyAgICAgfQorCisvLyAgICAgLy8g5L+u5pS555So5oi35Liq5Lq66LWE5paZCisvLyAgICAgQFB1dE1hcHBpbmcoIi97dXNlcklkfS9lZGl0UHJvZmlsZSIpCisvLyAgICAgcHVibGljIE1hcDxTdHJpbmcsIFN0cmluZz4gZWRpdFByb2ZpbGUoCisvLyAgICAgICAgICAgICBAUGF0aFZhcmlhYmxlKCJ1c2VySWQiKSBMb25nIHVzZXJJZCwKKy8vICAgICAgICAgICAgIEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBPYmplY3Q+IHByb2ZpbGVEYXRhKSB7CisKKy8vICAgICAgICAgLy8g6I635Y+W6K+35rGC5L2T5Lit55qE5L+u5pS55pWw5o2uCisvLyAgICAgICAgIFN0cmluZyBuaWNrbmFtZSA9IChTdHJpbmcpIHByb2ZpbGVEYXRhLmdldCgibmlja25hbWUiKTsKKy8vICAgICAgICAgU3RyaW5nIGdlbmRlciA9IChTdHJpbmcpIHByb2ZpbGVEYXRhLmdldCgiZ2VuZGVyIik7CisvLyAgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbiA9IChTdHJpbmcpIHByb2ZpbGVEYXRhLmdldCgiZGVzY3JpcHRpb24iKTsKKy8vICAgICAgICAgU3RyaW5nIGhvYmJpZXMgPSAoU3RyaW5nKSBwcm9maWxlRGF0YS5nZXQoImhvYmJpZXMiKTsKKworLy8gICAgICAgICAvLyDosIPnlKjmnI3liqHlsYLmlrnms5Xov5vooYzkv67mlLkKKy8vICAgICAgICAgYm9vbGVhbiB1cGRhdGVkID0gdXNlclNlcnZpY2UuZWRpdFByb2ZpbGUodXNlcklkLCBuaWNrbmFtZSwgZ2VuZGVyLCBkZXNjcmlwdGlvbiwgaG9iYmllcyk7CisKKy8vICAgICAgICAgLy8g6L+U5Zue5pON5L2c57uT5p6c5raI5oGvCisvLyAgICAgICAgIGlmICh1cGRhdGVkKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gTWFwLm9mKCJtZXNzYWdlIiwgIueUqOaIt+i1hOaWmeabtOaWsOaIkOWKnyIpOworLy8gICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgcmV0dXJuIE1hcC5vZigibWVzc2FnZSIsICLnlKjmiLfkuI3lrZjlnKgiKTsKKy8vICAgICAgICAgfQorLy8gICAgIH0KKworLy8gICAgIC8vIOiuoeeul+WIhuS6q+eOhworLy8gICAgIEBHZXRNYXBwaW5nKCIve3VzZXJfaWR9L2NhbGN1bGF0ZS1zaGFyZS1yYXRlIikKKy8vICAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBjYWxjdWxhdGVTaGFyZVJhdGUoQFBhdGhWYXJpYWJsZSgidXNlcl9pZCIpIExvbmcgdXNlcklkKSB7CisvLyAgICAgICAgIHJldHVybiB1c2VyU2VydmljZS5jYWxjdWxhdGVTaGFyZVJhdGUodXNlcklkKTsKKy8vICAgICB9CisKKy8vICAgICAvLyDojrflj5bnlKjmiLfmiYDmnInlpb3lj4vnmoTln7rmnKzkv6Hmga8KKy8vICAgICBAR2V0TWFwcGluZygiL3t1c2VySWR9L2ZyaWVuZHMiKQorLy8gICAgIHB1YmxpYyBMaXN0PE1hcDxTdHJpbmcsIE9iamVjdD4+IGdldFVzZXJGcmllbmRzKEBQYXRoVmFyaWFibGUoInVzZXJJZCIpIExvbmcgdXNlcklkKSB7CisvLyAgICAgICAgIExpc3Q8TG9uZz4gZnJpZW5kSWRzID0gZHluYW1pY1NlcnZpY2UuZ2V0QWxsRnJpZW5kSWRzKHVzZXJJZCk7ICAvLyDms6jmhI/ov5nph4znlKjnmoTmmK/lrp7kvovlr7nosaEKKy8vICAgICAgICAgTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PiBmcmllbmRzID0gbmV3IEFycmF5TGlzdDw+KCk7CisKKy8vICAgICAgICAgZm9yIChMb25nIGZyaWVuZElkIDogZnJpZW5kSWRzKSB7CisvLyAgICAgICAgICAgICBPcHRpb25hbDxVc2Vycz4gdXNlck9wdCA9IHVzZXJSZXBvc2l0b3J5LmZpbmRCeUlkKGZyaWVuZElkKTsKKy8vICAgICAgICAgICAgIGlmICh1c2VyT3B0LmlzUHJlc2VudCgpKSB7CisvLyAgICAgICAgICAgICAgICAgVXNlcnMgdXNlciA9IHVzZXJPcHQuZ2V0KCk7CisvLyAgICAgICAgICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBmcmllbmRJbmZvID0gTWFwLm9mKAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgImlkIiwgdXNlci5nZXRVc2VySWQoKSwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICJhdmF0YXIiLCB1c2VyLmdldEF2YXRhclVybCgpICE9IG51bGwgPyB1c2VyLmdldEF2YXRhclVybCgpIDogImh0dHBzOi8vZXhhbXBsZS5jb20vZGVmYXVsdC1hdmF0YXIuanBnIiwKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICJuaWNrbmFtZSIsIHVzZXIuZ2V0VXNlcm5hbWUoKSAhPSBudWxsID8gdXNlci5nZXRVc2VybmFtZSgpIDogIuacquefpeeUqOaItyIsCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAiZW1haWwiLCB1c2VyLmdldEVtYWlsKCkgIT0gbnVsbCA/IHVzZXIuZ2V0RW1haWwoKSA6ICLmnKrloavlhpkiCisvLyAgICAgICAgICAgICAgICAgKTsKKy8vICAgICAgICAgICAgICAgICBmcmllbmRzLmFkZChmcmllbmRJbmZvKTsKKy8vICAgICAgICAgICAgIH0KKy8vICAgICAgICAgfQorCisvLyAgICAgICAgIHJldHVybiBmcmllbmRzOworLy8gICAgIH0KKworLy8gICAgIEBQb3N0TWFwcGluZygiL3t1c2VySWR9L3VwbG9hZEF2YXRhciIpCisvLyAgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gdXBsb2FkQXZhdGFyKAorLy8gICAgICAgICAgICAgQFBhdGhWYXJpYWJsZSBMb25nIHVzZXJJZCwKKy8vICAgICAgICAgICAgIEBSZXF1ZXN0UGFyYW0oImZpbGUiKSBNdWx0aXBhcnRGaWxlIGZpbGUpIHsKKy8vICAgICAgICAgcmV0dXJuIHVzZXJTZXJ2aWNlLnVwbG9hZFVzZXJBdmF0YXIodXNlcklkLCBmaWxlKTsKKy8vICAgICB9CisKKworCisvLyB9CisKIHBhY2thZ2UgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbnRyb2xsZXI7CiAKK2ltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5LkZyaWVuZFJlbGF0aW9uOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVXNlcnM7CitpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LnJlcG9zaXRvcnkuRnJpZW5kUmVsYXRpb25SZXBvc2l0b3J5OwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5yZXBvc2l0b3J5LlVzZXJSZXBvc2l0b3J5OwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLkR5bmFtaWNTZXJ2aWNlOwotaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlRhc2tTZXJ2aWNlOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlVzZXJTZXJ2aWNlOwogaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKLWltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmh0dHAuUmVzcG9uc2VFbnRpdHk7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuYmluZC5hbm5vdGF0aW9uLio7CiBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIubXVsdGlwYXJ0Lk11bHRpcGFydEZpbGU7CiAKLWltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLk9wdGlvbmFsOwotCi1pbXBvcnQgamF2YS51dGlsLkxpc3Q7Ci1pbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuKjsKIAogCiBAUmVzdENvbnRyb2xsZXIKQEAgLTMxLDYgKzE5MCw0MSBAQAogICAgIEBBdXRvd2lyZWQKICAgICBwcml2YXRlIER5bmFtaWNTZXJ2aWNlIGR5bmFtaWNTZXJ2aWNlOwogCisgICAgQEF1dG93aXJlZAorICAgIHByaXZhdGUgRnJpZW5kUmVsYXRpb25SZXBvc2l0b3J5IGZyaWVuZFJlbGF0aW9uUmVwb3NpdG9yeTsKKworCisgICAgQFBvc3RNYXBwaW5nICgiL2FkZEZyaWVuZCIpCisgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gYWRkRnJpZW5kKEBSZXF1ZXN0Qm9keSBNYXA8U3RyaW5nLCBPYmplY3Q+IHJlcXVlc3QpIHsKKyAgICAgICAgLy/pgq7nrrHmn6XnlKjmiLcKKyAgICAgICAgT3B0aW9uYWw8VXNlcnM+IHVzZXJPcHRpb25hbCA9IHVzZXJSZXBvc2l0b3J5LmZpbmRCeUVtYWlsKHJlcXVlc3QuZ2V0KCJlbWFpbCIpLnRvU3RyaW5nKCkpOworICAgICAgICAvLyDlpoLmnpznlKjmiLfkuI3lrZjlnKjvvIzov5Tlm55udWxs5oiW6ICF5Y+v5Lul5oqb5Ye65byC5bi4CisgICAgICAgIGlmICh1c2VyT3B0aW9uYWwuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm4gTWFwLm9mKCJtc2ciLCAi5rKh5pyJ5om+5Yiw6K+l55So5oi3Iik7IC8vIOWPr+S7pei/lOWbniBudWxsIOaIluiAheagueaNrumcgOimgei/lOWbnumUmeivr+S/oeaBrworICAgICAgICB9CisgICAgICAgIExvbmcgdXNlcklkID0gTG9uZy5wYXJzZUxvbmcocmVxdWVzdC5nZXQoInVzZXJpZCIpLnRvU3RyaW5nKCkpOyAgICAgICAvL2lk5p+l55So5oi3CisgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gdXNlcnMgPSB1c2VyU2VydmljZS5nZXRQcm9maWxlKHVzZXJJZCk7CisgICAgICAgIC8vIOWmguaenOeUqOaIt+S4jeWtmOWcqO+8jOi/lOWbnm51bGzmiJbogIXlj6/ku6Xmipvlh7rlvILluLgKKyAgICAgICAgaWYgKHVzZXJzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIE1hcC5vZigibXNnIiwgIuW9k+WJjeeZu+W9lei0puWPt+W8guW4uCIpOyAvLyDlj6/ku6Xov5Tlm54gbnVsbCDmiJbogIXmoLnmja7pnIDopoHov5Tlm57plJnor6/kv6Hmga8KKyAgICAgICAgfQorCisgICAgICAgIEZyaWVuZFJlbGF0aW9uICBuZXdGcmllbmRSZWxhdGlvbiAgPSBuZXcgRnJpZW5kUmVsYXRpb24oKTsKKyAgICAgICAgbmV3RnJpZW5kUmVsYXRpb24uc2V0VXNlcklkKHVzZXJJZCk7CisgICAgICAgIG5ld0ZyaWVuZFJlbGF0aW9uLnNldENyZWF0ZVRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIG5ld0ZyaWVuZFJlbGF0aW9uLnNldEZyaWVuZElkKHVzZXJPcHRpb25hbC5nZXQoKS5nZXRVc2VySWQoKSk7CisKKyAgICAgICAgRnJpZW5kUmVsYXRpb24gIG5ld0ZyaWVuZFJlbGF0aW9ucyAgPSBuZXcgRnJpZW5kUmVsYXRpb24oKTsKKyAgICAgICAgbmV3RnJpZW5kUmVsYXRpb25zLnNldENyZWF0ZVRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIG5ld0ZyaWVuZFJlbGF0aW9ucy5zZXRVc2VySWQodXNlck9wdGlvbmFsLmdldCgpLmdldFVzZXJJZCgpKTsKKyAgICAgICAgbmV3RnJpZW5kUmVsYXRpb25zLnNldEZyaWVuZElkKHVzZXJJZCk7CisKKyAgICAgICAgZnJpZW5kUmVsYXRpb25SZXBvc2l0b3J5LnNhdmUobmV3RnJpZW5kUmVsYXRpb24pOworICAgICAgICBmcmllbmRSZWxhdGlvblJlcG9zaXRvcnkuc2F2ZShuZXdGcmllbmRSZWxhdGlvbnMpOworCisgICAgICAgIHJldHVybiBNYXAub2YoIm1zZyIsICLmt7vliqDmiJDlip8iKTsKKyAgICB9CisKICAgICAvLyDmjqXlj6PvvJrnlJ/miJDpgoDor7fnoIEKICAgICBAUG9zdE1hcHBpbmcoIi9nZXRJbnZpdGVDb2RlIikKICAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBnZW5lcmF0ZUludml0ZUNvZGUoQFJlcXVlc3RCb2R5IE1hcDxTdHJpbmcsIE9iamVjdD4gcmVxdWVzdCkgewpAQCAtMTYzLDMgKzM1Nyw3IEBACiB9CiAKIAorCisKKworCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vVHJhY2tlclByb3RvY29sLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vVHJhY2tlclByb3RvY29sLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ5N2FiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9UcmFja2VyUHJvdG9jb2wuamF2YQpAQCAtMCwwICsxLDE2IEBACitwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5kdG87CisKK2ltcG9ydCBsb21ib2suRGF0YTsKKworQERhdGEKK3B1YmxpYyBjbGFzcyBUcmFja2VyUHJvdG9jb2wgeworICAgIHByaXZhdGUgU3RyaW5nIGluZm9faGFzaDsKKyAgICBwcml2YXRlIFN0cmluZyBwZWVyX2lkOworICAgIHByaXZhdGUgSW50ZWdlciB1c2VySWQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgaXA7CisgICAgcHJpdmF0ZSBpbnQgcG9ydDsKKyAgICBwcml2YXRlIGxvbmcgdXBsb2FkZWQ7CisgICAgcHJpdmF0ZSBsb25nIGRvd25sb2FkZWQ7CisgICAgcHJpdmF0ZSBsb25nIGxlZnQ7CisgICAgcHJpdmF0ZSBTdHJpbmcgZXZlbnQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudFJlcG9ydC5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1RvcnJlbnRSZXBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDE5ZjllCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1RvcnJlbnRSZXBvcnQuamF2YQpAQCAtMCwwICsxLDI4IEBACitwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHk7CisKK2ltcG9ydCBsb21ib2suQnVpbGRlcjsKK2ltcG9ydCBsb21ib2suRGF0YTsKKworaW1wb3J0IGphdmF4LnBlcnNpc3RlbmNlLio7CitpbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CisKK0BEYXRhCitAQnVpbGRlcgorQEVudGl0eQorcHVibGljIGNsYXNzIFRvcnJlbnRSZXBvcnQgeworICAgIEBJZAorICAgIEBHZW5lcmF0ZWRWYWx1ZShzdHJhdGVneSA9IEdlbmVyYXRpb25UeXBlLklERU5USVRZKQorICAgIHByaXZhdGUgSW50ZWdlciBpZDsKKyAgICBwcml2YXRlIEludGVnZXIgdXNlcklkOworICAgIHByaXZhdGUgU3RyaW5nIHBlZXJJZDsKKyAgICBwcml2YXRlIExvbmcgdG9ycmVudElkOworICAgIHByaXZhdGUgU3RyaW5nIGluZm9IYXNoOworICAgIHByaXZhdGUgTG9uZyB1cGxvYWRlZDsKKyAgICBwcml2YXRlIExvbmcgZG93bmxvYWRlZDsKKyAgICBAQ29sdW1uKG5hbWUgPSAiYGxlZnRgIikKKyAgICBwcml2YXRlIExvbmcgbGVmdDsKKyAgICBwcml2YXRlIFN0cmluZyBldmVudDsKKyAgICBwcml2YXRlIFN0cmluZyAgaXA7CisgICAgcHJpdmF0ZSBJbnRlZ2VyIHBvcnQ7CisgICAgcHJpdmF0ZSBMb2NhbERhdGVUaW1lIHJlcG9ydFRpbWU7Cit9CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVXNlci5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXIuamF2YQppbmRleCA3NTc0ZTY3Li43MWNjZmUxIDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVXNlci5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Vc2VyLmphdmEKQEAgLTEsMyArMSw4MCBAQAorLy9wYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHk7CisvLworLy8KKy8vaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLklkVHlwZTsKKy8vaW1wb3J0IGNvbS5iYW9taWRvdS5teWJhdGlzcGx1cy5hbm5vdGF0aW9uLlRhYmxlSWQ7CisvL2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuYW5ub3RhdGlvbi5UYWJsZU5hbWU7CisvL2ltcG9ydCBjb20uZmFzdGVyeG1sLmphY2tzb24uYW5ub3RhdGlvbi5Kc29uUHJvcGVydHk7CisvL2ltcG9ydCBpby5zd2FnZ2VyLmFubm90YXRpb25zLkFwaU1vZGVsOworLy9pbXBvcnQgaW8uc3dhZ2dlci5hbm5vdGF0aW9ucy5BcGlNb2RlbFByb3BlcnR5OworLy9pbXBvcnQgbG9tYm9rLkRhdGE7CisvLworLy9pbXBvcnQgamF2YS50aW1lLkxvY2FsRGF0ZVRpbWU7CisvLworLy9ARGF0YQorLy9AVGFibGVOYW1lKCJ1c2VyIikgLy8g5oyH5a6a5pWw5o2u5bqT6KGo5ZCNCisvL0BBcGlNb2RlbCgi55So5oi35a6e5L2T57G7IikgLy8g55So5LqO5o+P6L+w5qih5Z6LCisvL3B1YmxpYyBjbGFzcyBVc2VyIHsKKy8vCisvLyAgICBAVGFibGVJZCh0eXBlID0gSWRUeXBlLkFVVE8pIC8vIOaMh+WumuS4u+mUruetlueVpQorLy8gICAgQEFwaU1vZGVsUHJvcGVydHkodmFsdWUgPSAi55So5oi3SUQiLCBleGFtcGxlID0gIjEiKQorLy8gICAgcHJpdmF0ZSBMb25nIGlkOworLy8KKy8vICAgIEBKc29uUHJvcGVydHkoInVzZXJuYW1lIikKKy8vICAgIEBBcGlNb2RlbFByb3BlcnR5KHZhbHVlID0gIueUqOaIt+WQjSIsIGV4YW1wbGUgPSAiMjIzMDExMTUiKQorLy8gICAgcHJpdmF0ZSBTdHJpbmcgdXNlcm5hbWU7CisvLworLy8gICAgQEpzb25Qcm9wZXJ0eSgibmlja25hbWUiKQorLy8gICAgQEFwaU1vZGVsUHJvcGVydHkodmFsdWUgPSAi5pi156ewIiwgZXhhbXBsZSA9ICJjeWwiKQorLy8gICAgcHJpdmF0ZSBTdHJpbmcgbmlja25hbWU7CisvLworLy8gICAgQEpzb25Qcm9wZXJ0eSgicm9sZSIpCisvLyAgICBAQXBpTW9kZWxQcm9wZXJ0eSh2YWx1ZSA9ICLop5LoibIiLCBleGFtcGxlID0gIlN0dWRlbnQiKQorLy8gICAgcHJpdmF0ZSBTdHJpbmcgcm9sZTsKKy8vCisvLyAgICBASnNvblByb3BlcnR5KCJwYXNzd29yZCIpCisvLyAgICBAQXBpTW9kZWxQcm9wZXJ0eSh2YWx1ZSA9ICLlr4bnoIEiLCBleGFtcGxlID0gIjEyMyIpCisvLyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZDsKKy8vCisvLyAgICBASnNvblByb3BlcnR5KCJzdGF0dXMiKQorLy8gICAgQEFwaU1vZGVsUHJvcGVydHkodmFsdWUgPSAi55So5oi354q25oCBIiwgZXhhbXBsZSA9ICIxIikKKy8vICAgIHByaXZhdGUgaW50IHN0YXR1czsKKy8vCisvLyAgICBASnNvblByb3BlcnR5KCJlbWFpbCIpCisvLyAgICBAQXBpTW9kZWxQcm9wZXJ0eSh2YWx1ZSA9ICLnlLXlrZDpgq7ku7blnLDlnYAiLCBleGFtcGxlID0gImpvaG5fZG9lQGV4YW1wbGUuY29tIikKKy8vICAgIHByaXZhdGUgU3RyaW5nIGVtYWlsOworLy8KKy8vICAgIEBKc29uUHJvcGVydHkoImVtYWlsX3ZlcmlmaWVkIikKKy8vICAgIEBBcGlNb2RlbFByb3BlcnR5KHZhbHVlID0gIumCrueusemqjOivgeeKtuaAgSIsIGV4YW1wbGUgPSAidHJ1ZSIpCisvLyAgICBwcml2YXRlIGJvb2xlYW4gZW1haWxWZXJpZmllZDsKKy8vCisvLyAgICBASnNvblByb3BlcnR5KCJhdmF0YXIiKQorLy8gICAgQEFwaU1vZGVsUHJvcGVydHkodmFsdWUgPSAi5aS05YOPIikKKy8vICAgIHByaXZhdGUgU3RyaW5nIGF2YXRhcjsKKy8vCisvLyAgICBASnNvblByb3BlcnR5KCJ1cGxvYWRlZCIpCisvLyAgICBAQXBpTW9kZWxQcm9wZXJ0eSh2YWx1ZSA9ICLkuIrkvKDph48iLCBleGFtcGxlID0gIjEwMDAiKQorLy8gICAgcHJpdmF0ZSBMb25nIHVwbG9hZGVkOworLy8KKy8vICAgIEBKc29uUHJvcGVydHkoImRvd25sb2FkZWQiKQorLy8gICAgQEFwaU1vZGVsUHJvcGVydHkodmFsdWUgPSAi5LiL6L296YePIiwgZXhhbXBsZSA9ICI1MDAiKQorLy8gICAgcHJpdmF0ZSBMb25nIGRvd25sb2FkZWQ7CisvLworLy8gICAgQEpzb25Qcm9wZXJ0eSgiY3JlYXRlX3RpbWUiKQorLy8gICAgQEFwaU1vZGVsUHJvcGVydHkodmFsdWUgPSAi5Yib5bu65pe26Ze0IiwgZXhhbXBsZSA9ICIyMDI0LTA0LTAxVDEyOjAwOjAwIikKKy8vICAgIHByaXZhdGUgTG9jYWxEYXRlVGltZSBjcmVhdGVUaW1lOworLy8KKy8vICAgIEBKc29uUHJvcGVydHkoInVwZGF0ZV90aW1lIikKKy8vICAgIEBBcGlNb2RlbFByb3BlcnR5KHZhbHVlID0gIuabtOaWsOaXtumXtCIsIGV4YW1wbGUgPSAiMjAyNC0wNC0wMVQxMjowMDowMCIpCisvLyAgICBwcml2YXRlIExvY2FsRGF0ZVRpbWUgdXBkYXRlVGltZTsKKy8vCisvLyAgICBASnNvblByb3BlcnR5KCJpc19kZWxldGVkIikKKy8vICAgIEBBcGlNb2RlbFByb3BlcnR5KHZhbHVlID0gIuaYr+WQpuWIoOmZpCIsIGV4YW1wbGUgPSAiZmFsc2UiKQorLy8gICAgcHJpdmF0ZSBCb29sZWFuIGlzRGVsZXRlZDsKKy8vCisvLyAgICBwdWJsaWMgVXNlcigpIHsKKy8vICAgIH0KKy8vfQogcGFja2FnZSBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5OwogCiAKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Vc2Vycy5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXJzLmphdmEKaW5kZXggZWJlNzkzZi4uZjFkMDMxNiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXJzLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXJzLmphdmEKQEAgLTEsMjQ2ICsxLDI0NiBAQAotcGFja2FnZSBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5OworIHBhY2thZ2UgY29tLmV4YW1wbGUubXlwcm9qZWN0LmVudGl0eTsKIAotaW1wb3J0IGphdmF4LnBlcnNpc3RlbmNlLio7Ci1pbXBvcnQgamF2YS51dGlsLkRhdGU7CisgaW1wb3J0IGphdmF4LnBlcnNpc3RlbmNlLio7CisgaW1wb3J0IGphdmEudXRpbC5EYXRlOwogCi1ARW50aXR5Ci1AVGFibGUobmFtZSA9ICJ1c2VyIikKLXB1YmxpYyBjbGFzcyBVc2VycyB7CisgQEVudGl0eQorIEBUYWJsZShuYW1lID0gInVzZXIiKQorIHB1YmxpYyBjbGFzcyBVc2VycyB7CiAKLSAgICBASWQKLSAgICBAR2VuZXJhdGVkVmFsdWUoc3RyYXRlZ3kgPSBHZW5lcmF0aW9uVHlwZS5JREVOVElUWSkKLSAgICBAQ29sdW1uKG5hbWUgPSAidXNlcl9pZCIpCi0gICAgcHJpdmF0ZSBMb25nIHVzZXJJZDsKKyAgICAgQElkCisgICAgIEBHZW5lcmF0ZWRWYWx1ZShzdHJhdGVneSA9IEdlbmVyYXRpb25UeXBlLklERU5USVRZKQorICAgICBAQ29sdW1uKG5hbWUgPSAidXNlcl9pZCIpCisgICAgIHByaXZhdGUgTG9uZyB1c2VySWQ7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAidXNlcm5hbWUiLCBudWxsYWJsZSA9IGZhbHNlLHVuaXF1ZSA9IHRydWUpCi0gICAgcHJpdmF0ZSBTdHJpbmcgdXNlcm5hbWU7CisgICAgIEBDb2x1bW4obmFtZSA9ICJ1c2VybmFtZSIsIG51bGxhYmxlID0gZmFsc2UsdW5pcXVlID0gdHJ1ZSkKKyAgICAgcHJpdmF0ZSBTdHJpbmcgdXNlcm5hbWU7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAiYXZhdGFyX3VybCIsIG51bGxhYmxlID0gdHJ1ZSkKLSAgICBwcml2YXRlIFN0cmluZyBhdmF0YXJVcmw7CisgICAgIEBDb2x1bW4obmFtZSA9ICJhdmF0YXJfdXJsIiwgbnVsbGFibGUgPSB0cnVlKQorICAgICBwcml2YXRlIFN0cmluZyBhdmF0YXJVcmw7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAiZW1haWwiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgU3RyaW5nIGVtYWlsOworICAgICBAQ29sdW1uKG5hbWUgPSAiZW1haWwiLCBudWxsYWJsZSA9IGZhbHNlKQorICAgICBwcml2YXRlIFN0cmluZyBlbWFpbDsKIAotICAgIEBDb2x1bW4obmFtZSA9ICJwYXNzd29yZCIsIG51bGxhYmxlID0gZmFsc2UpCi0gICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQ7CisgICAgIEBDb2x1bW4obmFtZSA9ICJwYXNzd29yZCIsIG51bGxhYmxlID0gZmFsc2UpCisgICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkOwogCi0gICAgQENvbHVtbihuYW1lID0gInJvbGUiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgU3RyaW5nIHJvbGU7CisgICAgIEBDb2x1bW4obmFtZSA9ICJyb2xlIiwgbnVsbGFibGUgPSBmYWxzZSkKKyAgICAgcHJpdmF0ZSBTdHJpbmcgcm9sZTsKIAotICAgIEBDb2x1bW4obmFtZSA9ICJpbnZpdGVfY291bnQiKQotICAgIHByaXZhdGUgSW50ZWdlciBpbnZpdGVDb3VudDsKKyAgICAgQENvbHVtbihuYW1lID0gImludml0ZV9jb3VudCIpCisgICAgIHByaXZhdGUgSW50ZWdlciBpbnZpdGVDb3VudDsKIAotICAgIEBDb2x1bW4obmFtZSA9ICJsZXZlbCIsIG51bGxhYmxlID0gZmFsc2UpCi0gICAgcHJpdmF0ZSBMb25nIGxldmVsOworICAgICBAQ29sdW1uKG5hbWUgPSAibGV2ZWwiLCBudWxsYWJsZSA9IGZhbHNlKQorICAgICBwcml2YXRlIExvbmcgbGV2ZWw7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAidXBsb2FkX2NvdW50IikKLSAgICBwcml2YXRlIEZsb2F0IHVwbG9hZENvdW50OworICAgICBAQ29sdW1uKG5hbWUgPSAidXBsb2FkX2NvdW50IikKKyAgICAgcHJpdmF0ZSBGbG9hdCB1cGxvYWRDb3VudDsKIAotICAgIEBDb2x1bW4obmFtZSA9ICJkb3dubG9hZF9jb3VudCIpCi0gICAgcHJpdmF0ZSBGbG9hdCBkb3dubG9hZENvdW50OworICAgICBAQ29sdW1uKG5hbWUgPSAiZG93bmxvYWRfY291bnQiKQorICAgICBwcml2YXRlIEZsb2F0IGRvd25sb2FkQ291bnQ7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAic2hhcmVfcmF0ZSIpCi0gICAgcHJpdmF0ZSBGbG9hdCBzaGFyZVJhdGU7CisgICAgIEBDb2x1bW4obmFtZSA9ICJzaGFyZV9yYXRlIikKKyAgICAgcHJpdmF0ZSBGbG9hdCBzaGFyZVJhdGU7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAicmVnaXN0cmF0aW9uX2RhdGUiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgRGF0ZSByZWdpc3RyYXRpb25EYXRlOworICAgICBAQ29sdW1uKG5hbWUgPSAicmVnaXN0cmF0aW9uX2RhdGUiLCBudWxsYWJsZSA9IGZhbHNlKQorICAgICBwcml2YXRlIERhdGUgcmVnaXN0cmF0aW9uRGF0ZTsKIAotICAgIEBDb2x1bW4obmFtZSA9ICJsYXN0X2xvZ2luX3RpbWUiKQotICAgIHByaXZhdGUgRGF0ZSBsYXN0TG9naW5UaW1lOworICAgICBAQ29sdW1uKG5hbWUgPSAibGFzdF9sb2dpbl90aW1lIikKKyAgICAgcHJpdmF0ZSBEYXRlIGxhc3RMb2dpblRpbWU7CiAKLSAgICBAQ29sdW1uKG5hbWUgPSAidXNlcl9wb2ludHMiKQotICAgIHByaXZhdGUgSW50ZWdlciB1c2VyUG9pbnRzOworICAgICBAQ29sdW1uKG5hbWUgPSAidXNlcl9wb2ludHMiKQorICAgICBwcml2YXRlIEludGVnZXIgdXNlclBvaW50czsKIAotICAgIEBDb2x1bW4obmFtZSA9ICJpc19wcm9tbyIpCi0gICAgcHJpdmF0ZSBCb29sZWFuIGlzUHJvbW87CisgICAgIEBDb2x1bW4obmFtZSA9ICJpc19wcm9tbyIpCisgICAgIHByaXZhdGUgQm9vbGVhbiBpc1Byb21vOwogCi0gICAgQENvbHVtbihuYW1lID0gImN1cnJlbnRfZXhwZXJpZW5jZSIsIG51bGxhYmxlID0gZmFsc2UpCi0gICAgcHJpdmF0ZSBJbnRlZ2VyIGN1cnJlbnRFeHBlcmllbmNlOyAgLy8g5b2T5YmN57uP6aqM5YC8CisgICAgIEBDb2x1bW4obmFtZSA9ICJjdXJyZW50X2V4cGVyaWVuY2UiLCBudWxsYWJsZSA9IGZhbHNlKQorICAgICBwcml2YXRlIEludGVnZXIgY3VycmVudEV4cGVyaWVuY2U7ICAvLyDlvZPliY3nu4/pqozlgLwKIAotICAgIEBDb2x1bW4obmFtZSA9ICJjdXJyZW50X3NlZWRpbmdfaG91cnMiLCBudWxsYWJsZSA9IGZhbHNlKQotICAgIHByaXZhdGUgRmxvYXQgY3VycmVudFNlZWRpbmdIb3VyczsgIC8vIOW9k+WJjeWBmuenjeaXtumVvworICAgICBAQ29sdW1uKG5hbWUgPSAiY3VycmVudF9zZWVkaW5nX2hvdXJzIiwgbnVsbGFibGUgPSBmYWxzZSkKKyAgICAgcHJpdmF0ZSBGbG9hdCBjdXJyZW50U2VlZGluZ0hvdXJzOyAgLy8g5b2T5YmN5YGa56eN5pe26ZW/CiAKIAotICAgIEBDb2x1bW4obmFtZSA9ICJnZW5kZXIiLCBudWxsYWJsZSA9IHRydWUpCi0gICAgcHJpdmF0ZSBTdHJpbmcgZ2VuZGVyOyAgLy8g5oCn5YirCisgICAgIEBDb2x1bW4obmFtZSA9ICJnZW5kZXIiLCBudWxsYWJsZSA9IHRydWUpCisgICAgIHByaXZhdGUgU3RyaW5nIGdlbmRlcjsgIC8vIOaAp+WIqwogCi0gICAgQENvbHVtbihuYW1lID0gImRlc2NyaXB0aW9uIiwgbnVsbGFibGUgPSB0cnVlKQotICAgIHByaXZhdGUgU3RyaW5nIGRlc2NyaXB0aW9uOyAgLy8g5Liq5Lq65o+P6L+wCisgICAgIEBDb2x1bW4obmFtZSA9ICJkZXNjcmlwdGlvbiIsIG51bGxhYmxlID0gdHJ1ZSkKKyAgICAgcHJpdmF0ZSBTdHJpbmcgZGVzY3JpcHRpb247ICAvLyDkuKrkurrmj4/ov7AKIAotICAgIEBDb2x1bW4obmFtZSA9ICJob2JiaWVzIiwgbnVsbGFibGUgPSB0cnVlKQotICAgIHByaXZhdGUgU3RyaW5nIGhvYmJpZXM7CisgICAgIEBDb2x1bW4obmFtZSA9ICJob2JiaWVzIiwgbnVsbGFibGUgPSB0cnVlKQorICAgICBwcml2YXRlIFN0cmluZyBob2JiaWVzOwogCi0gICAgQENvbHVtbihuYW1lID0gInJlZ2lzdHJhdGlvbl90aW1lIiwgbnVsbGFibGUgPSBmYWxzZSwgdXBkYXRhYmxlID0gZmFsc2UpCi0gICAgQFRlbXBvcmFsKFRlbXBvcmFsVHlwZS5USU1FU1RBTVApCi0gICAgcHJpdmF0ZSBEYXRlIHJlZ2lzdHJhdGlvblRpbWU7CisgICAgIEBDb2x1bW4obmFtZSA9ICJyZWdpc3RyYXRpb25fdGltZSIsIG51bGxhYmxlID0gZmFsc2UsIHVwZGF0YWJsZSA9IGZhbHNlKQorICAgICBAVGVtcG9yYWwoVGVtcG9yYWxUeXBlLlRJTUVTVEFNUCkKKyAgICAgcHJpdmF0ZSBEYXRlIHJlZ2lzdHJhdGlvblRpbWU7CiAKLSAgICAvLyBHZXR0ZXJzIGFuZCBTZXR0ZXJzCi0gICAgcHVibGljIExvbmcgZ2V0VXNlcklkKCkgewotICAgICAgICByZXR1cm4gdXNlcklkOwotICAgIH0KKyAgICAgLy8gR2V0dGVycyBhbmQgU2V0dGVycworICAgICBwdWJsaWMgTG9uZyBnZXRVc2VySWQoKSB7CisgICAgICAgICByZXR1cm4gdXNlcklkOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRVc2VySWQoTG9uZyB1c2VySWQpIHsKLSAgICAgICAgdGhpcy51c2VySWQgPSB1c2VySWQ7Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRVc2VySWQoTG9uZyB1c2VySWQpIHsKKyAgICAgICAgIHRoaXMudXNlcklkID0gdXNlcklkOworICAgICB9CiAKLSAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJuYW1lKCkgewotICAgICAgICByZXR1cm4gdXNlcm5hbWU7Ci0gICAgfQorICAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJuYW1lKCkgeworICAgICAgICAgcmV0dXJuIHVzZXJuYW1lOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdXNlcm5hbWUpIHsKLSAgICAgICAgdGhpcy51c2VybmFtZSA9IHVzZXJuYW1lOwotICAgIH0KKyAgICAgcHVibGljIHZvaWQgc2V0VXNlcm5hbWUoU3RyaW5nIHVzZXJuYW1lKSB7CisgICAgICAgICB0aGlzLnVzZXJuYW1lID0gdXNlcm5hbWU7CisgICAgIH0KIAotICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXZhdGFyVXJsKCkgewotICAgICAgICByZXR1cm4gYXZhdGFyVXJsOwotICAgIH0KKyAgICAgcHVibGljIFN0cmluZyBnZXRBdmF0YXJVcmwoKSB7CisgICAgICAgICByZXR1cm4gYXZhdGFyVXJsOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRBdmF0YXJVcmwoU3RyaW5nIGF2YXRhclVybCkgewotICAgICAgICB0aGlzLmF2YXRhclVybCA9IGF2YXRhclVybDsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldEF2YXRhclVybChTdHJpbmcgYXZhdGFyVXJsKSB7CisgICAgICAgICB0aGlzLmF2YXRhclVybCA9IGF2YXRhclVybDsKKyAgICAgfQogCi0gICAgcHVibGljIFN0cmluZyBnZXRFbWFpbCgpIHsKLSAgICAgICAgcmV0dXJuIGVtYWlsOwotICAgIH0KKyAgICAgcHVibGljIFN0cmluZyBnZXRFbWFpbCgpIHsKKyAgICAgICAgIHJldHVybiBlbWFpbDsKKyAgICAgfQogCi0gICAgcHVibGljIHZvaWQgc2V0RW1haWwoU3RyaW5nIGVtYWlsKSB7Ci0gICAgICAgIHRoaXMuZW1haWwgPSBlbWFpbDsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldEVtYWlsKFN0cmluZyBlbWFpbCkgeworICAgICAgICAgdGhpcy5lbWFpbCA9IGVtYWlsOworICAgICB9CiAKLSAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgewotICAgICAgICByZXR1cm4gcGFzc3dvcmQ7Ci0gICAgfQorICAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICAgcmV0dXJuIHBhc3N3b3JkOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZChTdHJpbmcgcGFzc3dvcmQpIHsKLSAgICAgICAgdGhpcy5wYXNzd29yZCA9IHBhc3N3b3JkOwotICAgIH0KKyAgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHBhc3N3b3JkKSB7CisgICAgICAgICB0aGlzLnBhc3N3b3JkID0gcGFzc3dvcmQ7CisgICAgIH0KIAotICAgIHB1YmxpYyBTdHJpbmcgZ2V0Um9sZSgpIHsKLSAgICAgICAgcmV0dXJuIHJvbGU7Ci0gICAgfQorICAgICBwdWJsaWMgU3RyaW5nIGdldFJvbGUoKSB7CisgICAgICAgICByZXR1cm4gcm9sZTsKKyAgICAgfQogCi0gICAgcHVibGljIHZvaWQgc2V0Um9sZShTdHJpbmcgcm9sZSkgewotICAgICAgICB0aGlzLnJvbGUgPSByb2xlOwotICAgIH0KKyAgICAgcHVibGljIHZvaWQgc2V0Um9sZShTdHJpbmcgcm9sZSkgeworICAgICAgICAgdGhpcy5yb2xlID0gcm9sZTsKKyAgICAgfQogCi0gICAgcHVibGljIEludGVnZXIgZ2V0SW52aXRlQ291bnQoKSB7Ci0gICAgICAgIHJldHVybiBpbnZpdGVDb3VudDsKLSAgICB9CisgICAgIHB1YmxpYyBJbnRlZ2VyIGdldEludml0ZUNvdW50KCkgeworICAgICAgICAgcmV0dXJuIGludml0ZUNvdW50OworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRJbnZpdGVDb3VudChJbnRlZ2VyIGludml0ZUNvdW50KSB7Ci0gICAgICAgIHRoaXMuaW52aXRlQ291bnQgPSBpbnZpdGVDb3VudDsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldEludml0ZUNvdW50KEludGVnZXIgaW52aXRlQ291bnQpIHsKKyAgICAgICAgIHRoaXMuaW52aXRlQ291bnQgPSBpbnZpdGVDb3VudDsKKyAgICAgfQogCi0gICAgcHVibGljIExvbmcgZ2V0TGV2ZWwoKSB7Ci0gICAgICAgIHJldHVybiBsZXZlbDsKLSAgICB9CisgICAgIHB1YmxpYyBMb25nIGdldExldmVsKCkgeworICAgICAgICAgcmV0dXJuIGxldmVsOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRMZXZlbChMb25nIGxldmVsKSB7Ci0gICAgICAgIHRoaXMubGV2ZWwgPSBsZXZlbDsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldExldmVsKExvbmcgbGV2ZWwpIHsKKyAgICAgICAgIHRoaXMubGV2ZWwgPSBsZXZlbDsKKyAgICAgfQogCi0gICAgcHVibGljIEZsb2F0IGdldFVwbG9hZENvdW50KCkgewotICAgICAgICByZXR1cm4gdXBsb2FkQ291bnQ7Ci0gICAgfQorICAgICBwdWJsaWMgRmxvYXQgZ2V0VXBsb2FkQ291bnQoKSB7CisgICAgICAgICByZXR1cm4gdXBsb2FkQ291bnQ7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldFVwbG9hZENvdW50KEZsb2F0IHVwbG9hZENvdW50KSB7Ci0gICAgICAgIHRoaXMudXBsb2FkQ291bnQgPSB1cGxvYWRDb3VudDsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldFVwbG9hZENvdW50KEZsb2F0IHVwbG9hZENvdW50KSB7CisgICAgICAgICB0aGlzLnVwbG9hZENvdW50ID0gdXBsb2FkQ291bnQ7CisgICAgIH0KIAotICAgIHB1YmxpYyBGbG9hdCBnZXREb3dubG9hZENvdW50KCkgewotICAgICAgICByZXR1cm4gZG93bmxvYWRDb3VudDsKLSAgICB9CisgICAgIHB1YmxpYyBGbG9hdCBnZXREb3dubG9hZENvdW50KCkgeworICAgICAgICAgcmV0dXJuIGRvd25sb2FkQ291bnQ7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldERvd25sb2FkQ291bnQoRmxvYXQgZG93bmxvYWRDb3VudCkgewotICAgICAgICB0aGlzLmRvd25sb2FkQ291bnQgPSBkb3dubG9hZENvdW50OwotICAgIH0KKyAgICAgcHVibGljIHZvaWQgc2V0RG93bmxvYWRDb3VudChGbG9hdCBkb3dubG9hZENvdW50KSB7CisgICAgICAgICB0aGlzLmRvd25sb2FkQ291bnQgPSBkb3dubG9hZENvdW50OworICAgICB9CiAKLSAgICBwdWJsaWMgRmxvYXQgZ2V0U2hhcmVSYXRlKCkgewotICAgICAgICByZXR1cm4gc2hhcmVSYXRlOwotICAgIH0KKyAgICAgcHVibGljIEZsb2F0IGdldFNoYXJlUmF0ZSgpIHsKKyAgICAgICAgIHJldHVybiBzaGFyZVJhdGU7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldFNoYXJlUmF0ZShGbG9hdCBzaGFyZVJhdGUpIHsKLSAgICAgICAgdGhpcy5zaGFyZVJhdGUgPSBzaGFyZVJhdGU7Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRTaGFyZVJhdGUoRmxvYXQgc2hhcmVSYXRlKSB7CisgICAgICAgICB0aGlzLnNoYXJlUmF0ZSA9IHNoYXJlUmF0ZTsKKyAgICAgfQogCi0gICAgcHVibGljIERhdGUgZ2V0UmVnaXN0cmF0aW9uRGF0ZSgpIHsKLSAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbkRhdGU7Ci0gICAgfQorICAgICBwdWJsaWMgRGF0ZSBnZXRSZWdpc3RyYXRpb25EYXRlKCkgeworICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbkRhdGU7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldFJlZ2lzdHJhdGlvbkRhdGUoRGF0ZSByZWdpc3RyYXRpb25EYXRlKSB7Ci0gICAgICAgIHRoaXMucmVnaXN0cmF0aW9uRGF0ZSA9IHJlZ2lzdHJhdGlvbkRhdGU7Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRSZWdpc3RyYXRpb25EYXRlKERhdGUgcmVnaXN0cmF0aW9uRGF0ZSkgeworICAgICAgICAgdGhpcy5yZWdpc3RyYXRpb25EYXRlID0gcmVnaXN0cmF0aW9uRGF0ZTsKKyAgICAgfQogCi0gICAgcHVibGljIERhdGUgZ2V0TGFzdExvZ2luVGltZSgpIHsKLSAgICAgICAgcmV0dXJuIGxhc3RMb2dpblRpbWU7Ci0gICAgfQorICAgICBwdWJsaWMgRGF0ZSBnZXRMYXN0TG9naW5UaW1lKCkgeworICAgICAgICAgcmV0dXJuIGxhc3RMb2dpblRpbWU7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldExhc3RMb2dpblRpbWUoRGF0ZSBsYXN0TG9naW5UaW1lKSB7Ci0gICAgICAgIHRoaXMubGFzdExvZ2luVGltZSA9IGxhc3RMb2dpblRpbWU7Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRMYXN0TG9naW5UaW1lKERhdGUgbGFzdExvZ2luVGltZSkgeworICAgICAgICAgdGhpcy5sYXN0TG9naW5UaW1lID0gbGFzdExvZ2luVGltZTsKKyAgICAgfQogCi0gICAgcHVibGljIEludGVnZXIgZ2V0VXNlclBvaW50cygpIHsKLSAgICAgICAgcmV0dXJuIHVzZXJQb2ludHM7Ci0gICAgfQorICAgICBwdWJsaWMgSW50ZWdlciBnZXRVc2VyUG9pbnRzKCkgeworICAgICAgICAgcmV0dXJuIHVzZXJQb2ludHM7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldFVzZXJQb2ludHMoSW50ZWdlciB1c2VyUG9pbnRzKSB7Ci0gICAgICAgIHRoaXMudXNlclBvaW50cyA9IHVzZXJQb2ludHM7Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRVc2VyUG9pbnRzKEludGVnZXIgdXNlclBvaW50cykgeworICAgICAgICAgdGhpcy51c2VyUG9pbnRzID0gdXNlclBvaW50czsKKyAgICAgfQogCi0gICAgcHVibGljIEJvb2xlYW4gZ2V0SXNQcm9tbygpIHsKLSAgICAgICAgcmV0dXJuIGlzUHJvbW87Ci0gICAgfQorICAgICBwdWJsaWMgQm9vbGVhbiBnZXRJc1Byb21vKCkgeworICAgICAgICAgcmV0dXJuIGlzUHJvbW87CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldElzUHJvbW8oQm9vbGVhbiBpc1Byb21vKSB7Ci0gICAgICAgIHRoaXMuaXNQcm9tbyA9IGlzUHJvbW87Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRJc1Byb21vKEJvb2xlYW4gaXNQcm9tbykgeworICAgICAgICAgdGhpcy5pc1Byb21vID0gaXNQcm9tbzsKKyAgICAgfQogCi0gICAgcHVibGljIEludGVnZXIgZ2V0Q3VycmVudEV4cGVyaWVuY2UoKSB7Ci0gICAgICAgIHJldHVybiBjdXJyZW50RXhwZXJpZW5jZTsKLSAgICB9CisgICAgIHB1YmxpYyBJbnRlZ2VyIGdldEN1cnJlbnRFeHBlcmllbmNlKCkgeworICAgICAgICAgcmV0dXJuIGN1cnJlbnRFeHBlcmllbmNlOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50RXhwZXJpZW5jZShJbnRlZ2VyIGN1cnJlbnRFeHBlcmllbmNlKSB7Ci0gICAgICAgIHRoaXMuY3VycmVudEV4cGVyaWVuY2UgPSBjdXJyZW50RXhwZXJpZW5jZTsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldEN1cnJlbnRFeHBlcmllbmNlKEludGVnZXIgY3VycmVudEV4cGVyaWVuY2UpIHsKKyAgICAgICAgIHRoaXMuY3VycmVudEV4cGVyaWVuY2UgPSBjdXJyZW50RXhwZXJpZW5jZTsKKyAgICAgfQogCi0gICAgcHVibGljIEZsb2F0IGdldEN1cnJlbnRTZWVkaW5nSG91cnMoKSB7Ci0gICAgICAgIHJldHVybiBjdXJyZW50U2VlZGluZ0hvdXJzOwotICAgIH0KKyAgICAgcHVibGljIEZsb2F0IGdldEN1cnJlbnRTZWVkaW5nSG91cnMoKSB7CisgICAgICAgICByZXR1cm4gY3VycmVudFNlZWRpbmdIb3VyczsKKyAgICAgfQogCi0gICAgcHVibGljIHZvaWQgc2V0Q3VycmVudFNlZWRpbmdIb3VycyhGbG9hdCBjdXJyZW50U2VlZGluZ0hvdXJzKSB7Ci0gICAgICAgIHRoaXMuY3VycmVudFNlZWRpbmdIb3VycyA9IGN1cnJlbnRTZWVkaW5nSG91cnM7Ci0gICAgfQorICAgICBwdWJsaWMgdm9pZCBzZXRDdXJyZW50U2VlZGluZ0hvdXJzKEZsb2F0IGN1cnJlbnRTZWVkaW5nSG91cnMpIHsKKyAgICAgICAgIHRoaXMuY3VycmVudFNlZWRpbmdIb3VycyA9IGN1cnJlbnRTZWVkaW5nSG91cnM7CisgICAgIH0KIAotICAgIHB1YmxpYyBTdHJpbmcgZ2V0R2VuZGVyKCkgewotICAgICAgICByZXR1cm4gZ2VuZGVyOwotICAgIH0KKyAgICAgcHVibGljIFN0cmluZyBnZXRHZW5kZXIoKSB7CisgICAgICAgICByZXR1cm4gZ2VuZGVyOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRHZW5kZXIoU3RyaW5nIGdlbmRlcikgewotICAgICAgICB0aGlzLmdlbmRlciA9IGdlbmRlcjsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldEdlbmRlcihTdHJpbmcgZ2VuZGVyKSB7CisgICAgICAgICB0aGlzLmdlbmRlciA9IGdlbmRlcjsKKyAgICAgfQogCi0gICAgcHVibGljIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKLSAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwotICAgIH0KKyAgICAgcHVibGljIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKKyAgICAgfQogCi0gICAgcHVibGljIHZvaWQgc2V0RGVzY3JpcHRpb24oU3RyaW5nIGRlc2NyaXB0aW9uKSB7Ci0gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldERlc2NyaXB0aW9uKFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgICB9CiAKLSAgICBwdWJsaWMgU3RyaW5nIGdldEhvYmJpZXMoKSB7Ci0gICAgICAgIHJldHVybiBob2JiaWVzOwotICAgIH0KKyAgICAgcHVibGljIFN0cmluZyBnZXRIb2JiaWVzKCkgeworICAgICAgICAgcmV0dXJuIGhvYmJpZXM7CisgICAgIH0KIAotICAgIHB1YmxpYyB2b2lkIHNldEhvYmJpZXMoU3RyaW5nIGhvYmJpZXMpIHsKLSAgICAgICAgdGhpcy5ob2JiaWVzID0gaG9iYmllczsKLSAgICB9CisgICAgIHB1YmxpYyB2b2lkIHNldEhvYmJpZXMoU3RyaW5nIGhvYmJpZXMpIHsKKyAgICAgICAgIHRoaXMuaG9iYmllcyA9IGhvYmJpZXM7CisgICAgIH0KIAotICAgIHB1YmxpYyBEYXRlIGdldFJlZ2lzdHJhdGlvblRpbWUoKSB7Ci0gICAgICAgIHJldHVybiByZWdpc3RyYXRpb25UaW1lOwotICAgIH0KKyAgICAgcHVibGljIERhdGUgZ2V0UmVnaXN0cmF0aW9uVGltZSgpIHsKKyAgICAgICAgIHJldHVybiByZWdpc3RyYXRpb25UaW1lOworICAgICB9CiAKLSAgICBwdWJsaWMgdm9pZCBzZXRSZWdpc3RyYXRpb25UaW1lKERhdGUgcmVnaXN0cmF0aW9uVGltZSkgewotICAgICAgICB0aGlzLnJlZ2lzdHJhdGlvblRpbWUgPSByZWdpc3RyYXRpb25UaW1lOwotICAgIH0KKyAgICAgcHVibGljIHZvaWQgc2V0UmVnaXN0cmF0aW9uVGltZShEYXRlIHJlZ2lzdHJhdGlvblRpbWUpIHsKKyAgICAgICAgIHRoaXMucmVnaXN0cmF0aW9uVGltZSA9IHJlZ2lzdHJhdGlvblRpbWU7CisgICAgIH0KIAotfQorIH0KZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3JlcG9zaXRvcnkvVG9ycmVudFJlcG9ydFJlcG9zaXRvcnkuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3JlcG9zaXRvcnkvVG9ycmVudFJlcG9ydFJlcG9zaXRvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDg0ZDIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvcmVwb3NpdG9yeS9Ub3JyZW50UmVwb3J0UmVwb3NpdG9yeS5qYXZhCkBAIC0wLDAgKzEsNyBAQAorcGFja2FnZSBjb20uZXhhbXBsZS5teXByb2plY3QucmVwb3NpdG9yeTsKKworaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVG9ycmVudFJlcG9ydDsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmRhdGEuanBhLnJlcG9zaXRvcnkuSnBhUmVwb3NpdG9yeTsKKworcHVibGljIGludGVyZmFjZSBUb3JyZW50UmVwb3J0UmVwb3NpdG9yeSBleHRlbmRzIEpwYVJlcG9zaXRvcnk8VG9ycmVudFJlcG9ydCwgSW50ZWdlcj4geworfQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9EeW5hbWljU2VydmljZS5qYXZhIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9EeW5hbWljU2VydmljZS5qYXZhCmluZGV4IDg1MzYwNGQuLjkxOTBkNTcgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvRHluYW1pY1NlcnZpY2UuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0R5bmFtaWNTZXJ2aWNlLmphdmEKQEAgLTEsMyArMSwyNzggQEAKKy8vIHBhY2thZ2UgY29tLmV4YW1wbGUubXlwcm9qZWN0LnNlcnZpY2U7CisKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5Lio7CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LnJlcG9zaXRvcnkuKjsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5zdGVyZW90eXBlLlNlcnZpY2U7CisvLyBpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIubXVsdGlwYXJ0Lk11bHRpcGFydEZpbGU7CisKKy8vIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworLy8gaW1wb3J0IGphdmEubmlvLmZpbGUuRmlsZXM7CisvLyBpbXBvcnQgamF2YS5uaW8uZmlsZS5QYXRoOworLy8gaW1wb3J0IGphdmEubmlvLmZpbGUuUGF0aHM7CisvLyBpbXBvcnQgamF2YS51dGlsLio7CisKKy8vIEBTZXJ2aWNlCisvLyBwdWJsaWMgY2xhc3MgRHluYW1pY1NlcnZpY2UgeworCisvLyAgICAgQEF1dG93aXJlZAorLy8gICAgIHByaXZhdGUgVXNlckR5bmFtaWNSZXBvc2l0b3J5IHVzZXJEeW5hbWljUmVwb3NpdG9yeTsKKworLy8gICAgIEBBdXRvd2lyZWQKKy8vICAgICBwcml2YXRlIFVzZXJSZXBvc2l0b3J5IHVzZXJSZXBvc2l0b3J5OworCisvLyAgICAgQEF1dG93aXJlZAorLy8gICAgIHByaXZhdGUgRHluYW1pY0NvbW1lbnRSZXBvc2l0b3J5IGR5bmFtaWNDb21tZW50UmVwb3NpdG9yeTsKKworLy8gICAgIEBBdXRvd2lyZWQKKy8vICAgICBwcml2YXRlIER5bmFtaWNMaWtlc1JlcG9zaXRvcnkgZHluYW1pY0xpa2VzUmVwb3NpdG9yeTsKKworLy8gICAgIEBBdXRvd2lyZWQKKy8vICAgICBwcml2YXRlIEZyaWVuZFJlbGF0aW9uUmVwb3NpdG9yeSBmcmllbmRSZWxhdGlvblJlcG9zaXRvcnk7CisKKy8vICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgSU1BR0VfRElSID0gInVwbG9hZHMvcG9zdC8iOworCisvLyAgICAgLy8g5Yib5bu65aW95Y+L5Yqo5oCBCisvLyAgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gY3JlYXRlRHluYW1pYyhMb25nIHVzZXJJZCwgU3RyaW5nIHRpdGxlLCBTdHJpbmcgY29udGVudCwgTXVsdGlwYXJ0RmlsZVtdIGltYWdlRmlsZXMpIHsKKy8vICAgICAgICAgLy8g5p+l5om+55So5oi35L+h5oGvCisvLyAgICAgICAgIFVzZXJzIHVzZXIgPSB1c2VyUmVwb3NpdG9yeS5maW5kQnlJZCh1c2VySWQpCisvLyAgICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KCgpIC0+IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJVc2VyIG5vdCBmb3VuZCIpKTsKKworLy8gICAgICAgICAvLyDliJvlu7rmlrDnmoTliqjmgIEKKy8vICAgICAgICAgVXNlckR5bmFtaWMgdXNlckR5bmFtaWMgPSBuZXcgVXNlckR5bmFtaWMoKTsKKy8vICAgICAgICAgdXNlckR5bmFtaWMuc2V0VXNlcklkKHVzZXJJZCk7CisvLyAgICAgICAgIHVzZXJEeW5hbWljLnNldFRpdGxlKHRpdGxlICE9IG51bGwgPyB0aXRsZSA6ICLpu5jorqTmoIfpopgiKTsKKy8vICAgICAgICAgdXNlckR5bmFtaWMuc2V0Q29udGVudChjb250ZW50KTsKKy8vICAgICAgICAgdXNlckR5bmFtaWMuc2V0VGltZShuZXcgRGF0ZSgpKTsKKy8vICAgICAgICAgdXNlckR5bmFtaWMuc2V0TGlrZXNDb3VudCgwKTsKKy8vICAgICAgICAgdXNlckR5bmFtaWMuc2V0Q29tbWVudHNDb3VudCgwKTsKKworLy8gICAgICAgICAvLyDlpITnkIblm77niYfkuIrkvKAKKy8vICAgICAgICAgU3RyaW5nQnVpbGRlciBpbWFnZVVybHNCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKy8vICAgICAgICAgaWYgKGltYWdlRmlsZXMgIT0gbnVsbCAmJiBpbWFnZUZpbGVzLmxlbmd0aCA+IDApIHsKKy8vICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW1hZ2VGaWxlcy5sZW5ndGg7IGkrKykgeworLy8gICAgICAgICAgICAgICAgIGlmIChpID4gMCkgeworLy8gICAgICAgICAgICAgICAgICAgICBpbWFnZVVybHNCdWlsZGVyLmFwcGVuZCgiLCIpOworLy8gICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgICAgICAgICBTdHJpbmcgaW1hZ2VVcmwgPSBzYXZlSW1hZ2UoaW1hZ2VGaWxlc1tpXSk7CisvLyAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsc0J1aWxkZXIuYXBwZW5kKGltYWdlVXJsKTsKKy8vICAgICAgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJJbWFnZSB1cGxvYWQgZmFpbGVkOiAiICsgZS5nZXRNZXNzYWdlKCkpOworLy8gICAgICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgIH0KKy8vICAgICAgICAgfQorCisvLyAgICAgICAgIC8vIOWwhuWkmuS4quWbvueJhyBVUkwg5ou85o6lCisvLyAgICAgICAgIHVzZXJEeW5hbWljLnNldEltYWdlVXJsKGltYWdlVXJsc0J1aWxkZXIudG9TdHJpbmcoKSk7CisKKy8vICAgICAgICAgLy8g5L+d5a2Y5pWw5o2u5bqTCisvLyAgICAgICAgIFVzZXJEeW5hbWljIHNhdmVkVXNlckR5bmFtaWMgPSB1c2VyRHluYW1pY1JlcG9zaXRvcnkuc2F2ZSh1c2VyRHluYW1pYyk7CisKKy8vICAgICAgICAgLy8g6L+U5Zue57uT5p6cCisvLyAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gcmVzcG9uc2UgPSBuZXcgSGFzaE1hcDw+KCk7CisvLyAgICAgICAgIHJlc3BvbnNlLnB1dCgiZHluYW1pY0lkIiwgc2F2ZWRVc2VyRHluYW1pYy5nZXREeW5hbWljSWQoKSk7CisvLyAgICAgICAgIHJlc3BvbnNlLnB1dCgibWVzc2FnZSIsICLliqjmgIHliJvlu7rmiJDlip8iKTsKKy8vICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOworLy8gICAgIH0KKworLy8gICAgIC8vIOS/neWtmOWbvueJh+W5tui/lOWbnuWbvueJh+eahCBVUkwKKy8vICAgICBwdWJsaWMgU3RyaW5nIHNhdmVJbWFnZShNdWx0aXBhcnRGaWxlIGltYWdlRmlsZSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKy8vICAgICAgICAgU3RyaW5nIGZpbGVOYW1lID0gaW1hZ2VGaWxlLmdldE9yaWdpbmFsRmlsZW5hbWUoKTsKKy8vICAgICAgICAgUGF0aCBwYXRoID0gUGF0aHMuZ2V0KElNQUdFX0RJUiArIGZpbGVOYW1lKTsKKy8vICAgICAgICAgRmlsZXMuY3JlYXRlRGlyZWN0b3JpZXMocGF0aC5nZXRQYXJlbnQoKSk7CisvLyAgICAgICAgIEZpbGVzLndyaXRlKHBhdGgsIGltYWdlRmlsZS5nZXRCeXRlcygpKTsKKy8vICAgICAgICAgcmV0dXJuICIvaW1hZ2VzLyIgKyBmaWxlTmFtZTsKKy8vICAgICB9CisKKy8vICAgICAvLyDliKDpmaTliqjmgIEKKy8vICAgICBwdWJsaWMgdm9pZCBkZWxldGVEeW5hbWljKExvbmcgZHluYW1pY0lkKSB7CisvLyAgICAgICAgIGlmICh1c2VyRHluYW1pY1JlcG9zaXRvcnkuZXhpc3RzQnlJZChkeW5hbWljSWQpKSB7CisvLyAgICAgICAgICAgICB1c2VyRHluYW1pY1JlcG9zaXRvcnkuZGVsZXRlQnlJZChkeW5hbWljSWQpOworLy8gICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIkR5bmFtaWMgd2l0aCBpZCAiICsgZHluYW1pY0lkICsgIiBub3QgZm91bmQiKTsKKy8vICAgICAgICAgfQorLy8gICAgIH0KKworLy8gICAgIC8v5aW95Y+L5Yqo5oCB6K+E6K66CisvLyAgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gYWRkQ29tbWVudChMb25nIHVzZXJJZCwgTG9uZyBkeW5hbWljSWQsIFN0cmluZyBjb21tZW50Q29udGVudCkgeworLy8gICAgICAgICBVc2VycyB1c2VyID0gdXNlclJlcG9zaXRvcnkuZmluZEJ5SWQodXNlcklkKQorLy8gICAgICAgICAgICAgICAgIC5vckVsc2VUaHJvdygoKSAtPiBuZXcgUnVudGltZUV4Y2VwdGlvbigiVXNlciBub3QgZm91bmQiKSk7CisKKy8vICAgICAgICAgVXNlckR5bmFtaWMgZHluYW1pYyA9IHVzZXJEeW5hbWljUmVwb3NpdG9yeS5maW5kQnlJZChkeW5hbWljSWQpCisvLyAgICAgICAgICAgICAgICAgLm9yRWxzZVRocm93KCgpIC0+IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJEeW5hbWljIG5vdCBmb3VuZCIpKTsKKworLy8gICAgICAgICBEeW5hbWljQ29tbWVudCBjb21tZW50ID0gbmV3IER5bmFtaWNDb21tZW50KCk7CisvLyAgICAgICAgIGNvbW1lbnQuc2V0RHluYW1pY0lkKGR5bmFtaWNJZCk7CisvLyAgICAgICAgIGNvbW1lbnQuc2V0VXNlcklkKHVzZXJJZCk7CisvLyAgICAgICAgIGNvbW1lbnQuc2V0Q29tbWVudENvbnRlbnQoY29tbWVudENvbnRlbnQpOworLy8gICAgICAgICBjb21tZW50LnNldENvbW1lbnRUaW1lKG5ldyBEYXRlKCkpOworCisvLyAgICAgICAgIC8vIOS/neWtmOivhOiuugorLy8gICAgICAgICBEeW5hbWljQ29tbWVudCBzYXZlZENvbW1lbnQgPSBkeW5hbWljQ29tbWVudFJlcG9zaXRvcnkuc2F2ZShjb21tZW50KTsKKworLy8gICAgICAgICAvLyDov5Tlm57miJDlip/mtojmga8KKy8vICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiByZXNwb25zZSA9IG5ldyBIYXNoTWFwPD4oKTsKKy8vICAgICAgICAgcmVzcG9uc2UucHV0KCJjb21tZW50X2lkIiwgc2F2ZWRDb21tZW50LmdldENvbW1lbnRJZCgpKTsKKy8vICAgICAgICAgcmVzcG9uc2UucHV0KCJtZXNzYWdlIiwgIuivhOiuuuaIkOWKnyIpOworLy8gICAgICAgICByZXR1cm4gcmVzcG9uc2U7CisvLyAgICAgfQorCisvLyAgICAgLy/ov5Tlm57mn5DkuKrlpb3lj4vnmoTmiYDmnInliqjmgIEKKy8vICAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBnZXRBbGxVc2VyRHluYW1pY3MoTG9uZyB1c2VySWQpIHsKKy8vICAgICAgICAgLy8g5p+l5om+55So5oi355qE5omA5pyJ5Yqo5oCBCisvLyAgICAgICAgIExpc3Q8VXNlckR5bmFtaWM+IHVzZXJEeW5hbWljcyA9IHVzZXJEeW5hbWljUmVwb3NpdG9yeS5maW5kQnlVc2VySWQodXNlcklkKTsKKy8vICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBwb3N0RGF0YSA9IG5ldyBMaW5rZWRIYXNoTWFwPD4oKTsKKy8vICAgICAgICAgTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PiBkeW5hbWljTGlzdCA9IG5ldyBBcnJheUxpc3Q8PigpOworCisvLyAgICAgICAgIC8vIOmBjeWOhuWKqOaAge+8jOiOt+WPlueCuei1nuWSjOivhOiuugorLy8gICAgICAgICBmb3IgKFVzZXJEeW5hbWljIGR5bmFtaWMgOiB1c2VyRHluYW1pY3MpIHsKKy8vICAgICAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gZHluYW1pY0RhdGEgPSBuZXcgTGlua2VkSGFzaE1hcDw+KCk7CisvLyAgICAgICAgICAgICBkeW5hbWljRGF0YS5wdXQoImR5bmFtaWNfaWQiLCBkeW5hbWljLmdldER5bmFtaWNJZCgpKTsKKy8vICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgidXNlcl9pZCIsIGR5bmFtaWMuZ2V0VXNlcklkKCkpOworCisvLyAgICAgICAgICAgICBVc2VycyB1c2VyID0gdXNlclJlcG9zaXRvcnkuZmluZEJ5SWQoZHluYW1pYy5nZXRVc2VySWQoKSkub3JFbHNlKG51bGwpOworLy8gICAgICAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgidXNlcm5hbWUiLCB1c2VyLmdldFVzZXJuYW1lKCkpOworLy8gICAgICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgiYXZhdGFyX3VybCIsIHVzZXIuZ2V0QXZhdGFyVXJsKCkpOworLy8gICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICBkeW5hbWljRGF0YS5wdXQoInVzZXJuYW1lIiwgIlVua25vd24iKTsKKy8vICAgICAgICAgICAgICAgICBkeW5hbWljRGF0YS5wdXQoImF2YXRhcl91cmwiLCAiaHR0cDovL2V4YW1wbGUuY29tL2RlZmF1bHQtYXZhdGFyLmpwZyIpOworLy8gICAgICAgICAgICAgfQorCisvLyAgICAgICAgICAgICBkeW5hbWljRGF0YS5wdXQoInRpdGxlIiwgZHluYW1pYy5nZXRUaXRsZSgpKTsKKy8vICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgiY29udGVudCIsIGR5bmFtaWMuZ2V0Q29udGVudCgpKTsKKy8vICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgiaW1hZ2VzIiwgZHluYW1pYy5nZXRJbWFnZVVybCgpKTsKKy8vICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgidGltZSIsIGR5bmFtaWMuZ2V0VGltZSgpKTsKKworLy8gICAgICAgICAgICAgLy8g6I635Y+W54K56LWeCisvLyAgICAgICAgICAgICBMaXN0PER5bmFtaWNMaWtlcz4gbGlrZXMgPSBkeW5hbWljTGlrZXNSZXBvc2l0b3J5LmZpbmRCeUR5bmFtaWNJZChkeW5hbWljLmdldER5bmFtaWNJZCgpKTsKKy8vICAgICAgICAgICAgIExpc3Q8TWFwPFN0cmluZywgT2JqZWN0Pj4gbGlrZUxpc3QgPSBuZXcgQXJyYXlMaXN0PD4oKTsKKy8vICAgICAgICAgICAgIGZvciAoRHluYW1pY0xpa2VzIGxpa2UgOiBsaWtlcykgeworLy8gICAgICAgICAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gbGlrZURhdGEgPSBuZXcgSGFzaE1hcDw+KCk7CisvLyAgICAgICAgICAgICAgICAgbGlrZURhdGEucHV0KCJ1c2VyX2lkIiwgbGlrZS5nZXRVc2VySWQoKSk7CisKKy8vICAgICAgICAgICAgICAgICAvLyDojrflj5bngrnotZ7nlKjmiLfnmoTnlKjmiLflkI0KKy8vICAgICAgICAgICAgICAgICBVc2VycyBsaWtlVXNlciA9IHVzZXJSZXBvc2l0b3J5LmZpbmRCeUlkKGxpa2UuZ2V0VXNlcklkKCkpLm9yRWxzZShudWxsKTsKKy8vICAgICAgICAgICAgICAgICBpZiAobGlrZVVzZXIgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgICAgICAgICBsaWtlRGF0YS5wdXQoInVzZXJuYW1lIiwgbGlrZVVzZXIuZ2V0VXNlcm5hbWUoKSk7CisvLyAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKy8vICAgICAgICAgICAgICAgICAgICAgbGlrZURhdGEucHV0KCJ1c2VybmFtZSIsICJVbmtub3duIik7CisvLyAgICAgICAgICAgICAgICAgfQorCisvLyAgICAgICAgICAgICAgICAgbGlrZUxpc3QuYWRkKGxpa2VEYXRhKTsKKy8vICAgICAgICAgICAgIH0KKy8vICAgICAgICAgICAgIGR5bmFtaWNEYXRhLnB1dCgibGlrZXMiLCBsaWtlTGlzdCk7CisKKy8vICAgICAgICAgICAgIC8vIOiOt+WPluivhOiuugorLy8gICAgICAgICAgICAgTGlzdDxEeW5hbWljQ29tbWVudD4gY29tbWVudHMgPSBkeW5hbWljQ29tbWVudFJlcG9zaXRvcnkuZmluZEJ5RHluYW1pY0lkKGR5bmFtaWMuZ2V0RHluYW1pY0lkKCkpOworLy8gICAgICAgICAgICAgTGlzdDxNYXA8U3RyaW5nLCBPYmplY3Q+PiBjb21tZW50TGlzdCA9IG5ldyBBcnJheUxpc3Q8PigpOworLy8gICAgICAgICAgICAgZm9yIChEeW5hbWljQ29tbWVudCBjb21tZW50IDogY29tbWVudHMpIHsKKy8vICAgICAgICAgICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGNvbW1lbnREYXRhID0gbmV3IEhhc2hNYXA8PigpOworLy8gICAgICAgICAgICAgICAgIGNvbW1lbnREYXRhLnB1dCgiY29tbWVudF9pZCIsIGNvbW1lbnQuZ2V0Q29tbWVudElkKCkpOworLy8gICAgICAgICAgICAgICAgIGNvbW1lbnREYXRhLnB1dCgidXNlcl9pZCIsIGNvbW1lbnQuZ2V0VXNlcklkKCkpOworCisvLyAgICAgICAgICAgICAgICAgLy8g6I635Y+W6K+E6K6655So5oi355qE55So5oi35ZCNCisvLyAgICAgICAgICAgICAgICAgVXNlcnMgY29tbWVudFVzZXIgPSB1c2VyUmVwb3NpdG9yeS5maW5kQnlJZChjb21tZW50LmdldFVzZXJJZCgpKS5vckVsc2UobnVsbCk7CisvLyAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnRVc2VyICE9IG51bGwpIHsKKy8vICAgICAgICAgICAgICAgICAgICAgY29tbWVudERhdGEucHV0KCJ1c2VybmFtZSIsIGNvbW1lbnRVc2VyLmdldFVzZXJuYW1lKCkpOworLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7CisvLyAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnREYXRhLnB1dCgidXNlcm5hbWUiLCAiVW5rbm93biIpOworLy8gICAgICAgICAgICAgICAgIH0KKworLy8gICAgICAgICAgICAgICAgIGNvbW1lbnREYXRhLnB1dCgiY29udGVudCIsIGNvbW1lbnQuZ2V0Q29tbWVudENvbnRlbnQoKSk7CisvLyAgICAgICAgICAgICAgICAgY29tbWVudERhdGEucHV0KCJ0aW1lIiwgY29tbWVudC5nZXRDb21tZW50VGltZSgpKTsKKy8vICAgICAgICAgICAgICAgICBjb21tZW50TGlzdC5hZGQoY29tbWVudERhdGEpOworLy8gICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgZHluYW1pY0RhdGEucHV0KCJjb21tZW50cyIsIGNvbW1lbnRMaXN0KTsKKworLy8gICAgICAgICAgICAgZHluYW1pY0xpc3QuYWRkKGR5bmFtaWNEYXRhKTsKKy8vICAgICAgICAgfQorCisvLyAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gcmVzcG9uc2UgPSBuZXcgSGFzaE1hcDw+KCk7CisvLyAgICAgICAgIHJlc3BvbnNlLnB1dCgiZHluYW1pYyIsIGR5bmFtaWNMaXN0KTsKKy8vICAgICAgICAgcmV0dXJuIHJlc3BvbnNlOworLy8gICAgIH0KKworLy8gICAgIC8v6I635Y+W5b2T5YmN5omA5pyJ5aW95Y+L55qEaWQKKy8vICAgICBwdWJsaWMgTGlzdDxMb25nPiBnZXRBbGxGcmllbmRJZHMoTG9uZyB1c2VySWQpIHsKKy8vICAgICAgICAgTGlzdDxGcmllbmRSZWxhdGlvbj4gZnJpZW5kUmVsYXRpb25zID0gZnJpZW5kUmVsYXRpb25SZXBvc2l0b3J5LmZpbmRCeVVzZXJJZCh1c2VySWQpOworLy8gICAgICAgICBMaXN0PExvbmc+IGZyaWVuZElkcyA9IG5ldyBBcnJheUxpc3Q8PigpOworCisvLyAgICAgICAgIGZvciAoRnJpZW5kUmVsYXRpb24gcmVsYXRpb24gOiBmcmllbmRSZWxhdGlvbnMpIHsKKy8vICAgICAgICAgICAgIC8vIOa3u+WKoOWlveWPi0lECisvLyAgICAgICAgICAgICBpZiAoIWZyaWVuZElkcy5jb250YWlucyhyZWxhdGlvbi5nZXRGcmllbmRJZCgpKSkgeworLy8gICAgICAgICAgICAgICAgIGZyaWVuZElkcy5hZGQocmVsYXRpb24uZ2V0RnJpZW5kSWQoKSk7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICByZXR1cm4gZnJpZW5kSWRzOworLy8gICAgIH0KKworLy8gICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBPYmplY3Q+IGdldEFsbFVzZXJBbmRGcmllbmRzRHluYW1pY3MoTGlzdDxMb25nPiB1c2VySWRzKSB7CisvLyAgICAgICAgIExpc3Q8TWFwPFN0cmluZywgT2JqZWN0Pj4gYWxsRHluYW1pY3MgPSBuZXcgQXJyYXlMaXN0PD4oKTsKKworLy8gICAgICAgICAvLyDpgY3ljobmiYDmnInnlKjmiLfojrflj5bku5bku6znmoTliqjmgIEKKy8vICAgICAgICAgZm9yIChMb25nIHVzZXJJZCA6IHVzZXJJZHMpIHsKKy8vICAgICAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gdXNlckR5bmFtaWNzID0gZ2V0QWxsVXNlckR5bmFtaWNzKHVzZXJJZCk7CisvLyAgICAgICAgICAgICBpZiAodXNlckR5bmFtaWNzICE9IG51bGwgJiYgIXVzZXJEeW5hbWljcy5pc0VtcHR5KCkpIHsKKy8vICAgICAgICAgICAgICAgICBhbGxEeW5hbWljcy5hZGRBbGwoKExpc3Q8TWFwPFN0cmluZywgT2JqZWN0Pj4pIHVzZXJEeW5hbWljcy5nZXQoImR5bmFtaWMiKSk7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICAvLyDov5Tlm57miYDmnInliqjmgIHnmoTlkIjpm4YKKy8vICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiByZXNwb25zZSA9IG5ldyBIYXNoTWFwPD4oKTsKKy8vICAgICAgICAgcmVzcG9uc2UucHV0KCJkeW5hbWljIiwgYWxsRHluYW1pY3MpOworLy8gICAgICAgICByZXR1cm4gcmVzcG9uc2U7CisvLyAgICAgfQorCisvLyAgICAgLy/ngrnotZ7liqjmgIEKKy8vICAgICBwdWJsaWMgYm9vbGVhbiBsaWtlRHluYW1pYyhMb25nIHVzZXJJZCwgTG9uZyBkeW5hbWljSWQpIHsKKy8vICAgICAgICAgLy8g5qOA5p+l6K+l55So5oi35piv5ZCm5bey57uP54K56LWe6L+H6K+l5Yqo5oCBCisvLyAgICAgICAgIER5bmFtaWNMaWtlcyBleGlzdGluZ0xpa2UgPSBkeW5hbWljTGlrZXNSZXBvc2l0b3J5LmZpbmRCeVVzZXJJZEFuZER5bmFtaWNJZCh1c2VySWQsIGR5bmFtaWNJZCk7CisvLyAgICAgICAgIGlmIChleGlzdGluZ0xpa2UgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworLy8gICAgICAgICB9CisKKy8vICAgICAgICAgLy8g5paw5aKe54K56LWe6K6w5b2VCisvLyAgICAgICAgIER5bmFtaWNMaWtlcyBuZXdMaWtlID0gbmV3IER5bmFtaWNMaWtlcygpOworLy8gICAgICAgICBuZXdMaWtlLnNldFVzZXJJZCh1c2VySWQpOworLy8gICAgICAgICBuZXdMaWtlLnNldER5bmFtaWNJZChkeW5hbWljSWQpOworLy8gICAgICAgICBuZXdMaWtlLnNldExpa2VUaW1lKG5ldyBqYXZhLnV0aWwuRGF0ZSgpKTsKKy8vICAgICAgICAgZHluYW1pY0xpa2VzUmVwb3NpdG9yeS5zYXZlKG5ld0xpa2UpOworCisvLyAgICAgICAgIC8vIOabtOaWsOWKqOaAgeihqOeahOeCuei1nuaVsAorLy8gICAgICAgICBVc2VyRHluYW1pYyBkeW5hbWljID0gdXNlckR5bmFtaWNSZXBvc2l0b3J5LmZpbmRCeUlkKGR5bmFtaWNJZCkub3JFbHNlKG51bGwpOworLy8gICAgICAgICBpZiAoZHluYW1pYyAhPSBudWxsKSB7CisvLyAgICAgICAgICAgICBkeW5hbWljLnNldExpa2VzQ291bnQoZHluYW1pYy5nZXRMaWtlc0NvdW50KCkgKyAxKTsKKy8vICAgICAgICAgICAgIHVzZXJEeW5hbWljUmVwb3NpdG9yeS5zYXZlKGR5bmFtaWMpOworLy8gICAgICAgICB9CisKKy8vICAgICAgICAgcmV0dXJuIHRydWU7CisvLyAgICAgfQorCisvLyAgICAgLy/lj5bmtojngrnotZ4KKy8vICAgICBwdWJsaWMgYm9vbGVhbiB1bmxpa2VEeW5hbWljKExvbmcgdXNlcklkLCBMb25nIGR5bmFtaWNJZCkgeworLy8gICAgICAgICAvLyDmn6Xmib7or6XnlKjmiLfnmoTngrnotZ7orrDlvZUKKy8vICAgICAgICAgRHluYW1pY0xpa2VzIGV4aXN0aW5nTGlrZSA9IGR5bmFtaWNMaWtlc1JlcG9zaXRvcnkuZmluZEJ5VXNlcklkQW5kRHluYW1pY0lkKHVzZXJJZCwgZHluYW1pY0lkKTsKKy8vICAgICAgICAgaWYgKGV4aXN0aW5nTGlrZSA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICAvLyDliKDpmaTngrnotZ7orrDlvZUKKy8vICAgICAgICAgZHluYW1pY0xpa2VzUmVwb3NpdG9yeS5kZWxldGUoZXhpc3RpbmdMaWtlKTsKKworLy8gICAgICAgICAvLyDmm7TmlrDliqjmgIHooajnmoTngrnotZ7mlbAKKy8vICAgICAgICAgVXNlckR5bmFtaWMgZHluYW1pYyA9IHVzZXJEeW5hbWljUmVwb3NpdG9yeS5maW5kQnlJZChkeW5hbWljSWQpLm9yRWxzZShudWxsKTsKKy8vICAgICAgICAgaWYgKGR5bmFtaWMgIT0gbnVsbCkgeworLy8gICAgICAgICAgICAgZHluYW1pYy5zZXRMaWtlc0NvdW50KGR5bmFtaWMuZ2V0TGlrZXNDb3VudCgpIC0gMSk7CisvLyAgICAgICAgICAgICB1c2VyRHluYW1pY1JlcG9zaXRvcnkuc2F2ZShkeW5hbWljKTsKKy8vICAgICAgICAgfQorCisvLyAgICAgICAgIHJldHVybiB0cnVlOworLy8gICAgIH0KKworLy8gfQogcGFja2FnZSBjb20uZXhhbXBsZS5teXByb2plY3Quc2VydmljZTsKIAogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuKjsKQEAgLTk1LDcgKzM3MCw3IEBACiAgICAgfQogCiAgICAgLy/lpb3lj4vliqjmgIHor4TorroKLSAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBhZGRDb21tZW50KExvbmcgdXNlcklkLCBMb25nIGR5bmFtaWNJZCwgU3RyaW5nIGNvbW1lbnRDb250ZW50KSB7CisgICAgcHVibGljIE1hcDxTdHJpbmcsIE9iamVjdD4gYWRkQ29tbWVudChMb25nIHVzZXJJZCwgTG9uZyBkeW5hbWljSWQsIFN0cmluZyBjb21tZW50Q29udGVudCwgTG9uZyBwYXJlbnRDb21tZW50SWQpIHsKICAgICAgICAgVXNlcnMgdXNlciA9IHVzZXJSZXBvc2l0b3J5LmZpbmRCeUlkKHVzZXJJZCkKICAgICAgICAgICAgICAgICAub3JFbHNlVGhyb3coKCkgLT4gbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlVzZXIgbm90IGZvdW5kIikpOwogCkBAIC0xMDcsNiArMzgyLDcgQEAKICAgICAgICAgY29tbWVudC5zZXRVc2VySWQodXNlcklkKTsKICAgICAgICAgY29tbWVudC5zZXRDb21tZW50Q29udGVudChjb21tZW50Q29udGVudCk7CiAgICAgICAgIGNvbW1lbnQuc2V0Q29tbWVudFRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIGNvbW1lbnQuc2V0UGFyZW50Q29tbWVudElkKHBhcmVudENvbW1lbnRJZCk7ICAvLyDorr7nva7niLbor4TorrpJRAogCiAgICAgICAgIC8vIOS/neWtmOivhOiuugogICAgICAgICBEeW5hbWljQ29tbWVudCBzYXZlZENvbW1lbnQgPSBkeW5hbWljQ29tbWVudFJlcG9zaXRvcnkuc2F2ZShjb21tZW50KTsKQEAgLTExNCwxMCArMzkwLDEyIEBACiAgICAgICAgIC8vIOi/lOWbnuaIkOWKn+a2iOaBrwogICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IHJlc3BvbnNlID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgICByZXNwb25zZS5wdXQoImNvbW1lbnRfaWQiLCBzYXZlZENvbW1lbnQuZ2V0Q29tbWVudElkKCkpOworICAgICAgICByZXNwb25zZS5wdXQoInBhcmVudF9jb21tZW50X2lkIiwgc2F2ZWRDb21tZW50LmdldFBhcmVudENvbW1lbnRJZCgpKTsKICAgICAgICAgcmVzcG9uc2UucHV0KCJtZXNzYWdlIiwgIuivhOiuuuaIkOWKnyIpOwogICAgICAgICByZXR1cm4gcmVzcG9uc2U7CiAgICAgfQogCisKICAgICAvL+i/lOWbnuafkOS4quWlveWPi+eahOaJgOacieWKqOaAgQogICAgIHB1YmxpYyBNYXA8U3RyaW5nLCBPYmplY3Q+IGdldEFsbFVzZXJEeW5hbWljcyhMb25nIHVzZXJJZCkgewogICAgICAgICAvLyDmn6Xmib7nlKjmiLfnmoTmiYDmnInliqjmgIEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvUG9zdFNlcnZpY2UuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvUG9zdFNlcnZpY2UuamF2YQppbmRleCBhZjAzMmE1Li41Y2FjZGM1IDEwMDY0NAotLS0gYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1Bvc3RTZXJ2aWNlLmphdmEKKysrIGIvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Qb3N0U2VydmljZS5qYXZhCkBAIC03Niw3ICs3Niw3IEBACiAgICAgICAgIFBhdGggcGF0aCA9IFBhdGhzLmdldChJTUFHRV9ESVIgKyBmaWxlTmFtZSk7CiAgICAgICAgIEZpbGVzLmNyZWF0ZURpcmVjdG9yaWVzKHBhdGguZ2V0UGFyZW50KCkpOwogICAgICAgICBGaWxlcy53cml0ZShwYXRoLCBpbWFnZUZpbGUuZ2V0Qnl0ZXMoKSk7Ci0gICAgICAgIHJldHVybiAiL2ltYWdlcy8iICsgZmlsZU5hbWU7CisgICAgICAgIHJldHVybiAiL3VwbG9hZHMvcG9zdC8iICsgZmlsZU5hbWU7CiAgICAgfQogCiAgICAgLy8g57yW6L6R5biW5a2QIC0g5re75YqgIEBUcmFuc2FjdGlvbmFsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmphdmEKaW5kZXggOTQxODA0ZC4uMzY4OTFkMiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Ub3JyZW50U2VydmljZS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVG9ycmVudFNlcnZpY2UuamF2YQpAQCAtMSwzICsxLDQwIEBACisvLyBwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlOworCisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbW1vbi5iYXNlLlJlc3VsdDsKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5LlRvcnJlbnRFbnRpdHk7CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5wYXJhbS5Ub3JyZW50UGFyYW07CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5wYXJhbS5Ub3JyZW50VXBsb2FkUGFyYW07CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5Ub3JyZW50VXBkYXRlRFRPOworLy8gaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLm11bHRpcGFydC5NdWx0aXBhcnRGaWxlOworCisvLyBpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKy8vIGltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworLy8gcHVibGljIGludGVyZmFjZSBUb3JyZW50U2VydmljZSB7CisvLyAgICAgTGlzdDxUb3JyZW50RW50aXR5PiBzZWFyY2goVG9ycmVudFBhcmFtIHBhcmFtKTsKKyAgICAKKy8vICAgICBUb3JyZW50RW50aXR5IHNlbGVjdEJ5U2VlZElkKExvbmcgc2VlZElkKTsKKyAgICAKKy8vICAgICB2b2lkIHVwbG9hZFRvcnJlbnQoTXVsdGlwYXJ0RmlsZSBmaWxlLCBUb3JyZW50VXBsb2FkUGFyYW0gcGFyYW0pIHRocm93cyBJT0V4Y2VwdGlvbjsKKyAgICAKKy8vICAgICBieXRlW10gZmV0Y2goTG9uZyBzZWVkSWQsIFN0cmluZyBwYXNza2V5KSB0aHJvd3MgSU9FeGNlcHRpb247CisgICAgCisvLyAgICAgUmVzdWx0IGZhdm9yaXRlKExvbmcgc2VlZElkLCBMb25nIHVzZXJJZCk7CisgICAgCisvLyAgICAgdm9pZCBkZWxldGVUb3JyZW50KExvbmcgc2VlZElkKTsKKyAgICAKKy8vICAgICB2b2lkIHVwZGF0ZVRvcnJlbnQoTG9uZyBzZWVkSWQsIFRvcnJlbnRVcGRhdGVEVE8gdXBkYXRlRFRPKTsKKyAgICAKKy8vICAgICBib29sZWFuIGNhblVzZXJEZWxldGVUb3JyZW50KExvbmcgc2VlZElkLCBMb25nIHVzZXJJZCk7CisgICAgCisvLyAgICAgYm9vbGVhbiBjYW5Vc2VyVXBkYXRlVG9ycmVudChMb25nIHNlZWRJZCwgTG9uZyB1c2VySWQpOworICAgIAorLy8gICAgIGJvb2xlYW4gY2hlY2tVc2VyVXBsb2FkUmF0aW8oTG9uZyB1c2VySWQpOworICAgIAorLy8gICAgIGRvdWJsZSBjYWxjdWxhdGVEb3dubG9hZFNpemUoTG9uZyB0b3JyZW50SWQsIExvbmcgdXNlcklkKTsKKyAgICAKKy8vICAgICB2b2lkIHJlY29yZERvd25sb2FkKExvbmcgdG9ycmVudElkLCBMb25nIHVzZXJJZCwgZG91YmxlIGRvd25sb2FkU2l6ZSk7CisvLyB9CiBwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlOwogCiBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmNvbW1vbi5iYXNlLlJlc3VsdDsKQEAgLTM0LDQgKzcxLDYgQEAKICAgICBkb3VibGUgY2FsY3VsYXRlRG93bmxvYWRTaXplKExvbmcgdG9ycmVudElkLCBMb25nIHVzZXJJZCk7CiAgICAgCiAgICAgdm9pZCByZWNvcmREb3dubG9hZChMb25nIHRvcnJlbnRJZCwgTG9uZyB1c2VySWQsIGRvdWJsZSBkb3dubG9hZFNpemUpOworCisgICAgVG9ycmVudEVudGl0eSBzZWxlY3RCeUluZm9IYXNoKFN0cmluZyBpbmZvSGFzaCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmphdmEgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmphdmEKaW5kZXggMjgzYTg1Yy4uZGU2YmY4YiAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Vc2VyU2VydmljZS5qYXZhCisrKyBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlclNlcnZpY2UuamF2YQpAQCAtMSw4ICsxLDEwIEBACiBwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlOwotCitpbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5zdHAuU3RwVXRpbDsKK2ltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5LkZyaWVuZFJlbGF0aW9uOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVXNlcjsKIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5LlVzZXJzOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVXNlckludml0ZUNvZGU7CitpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LnJlcG9zaXRvcnkuRnJpZW5kUmVsYXRpb25SZXBvc2l0b3J5OwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5yZXBvc2l0b3J5LlVzZXJSZXBvc2l0b3J5OwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5yZXBvc2l0b3J5LlVzZXJJbnZpdGVDb2RlUmVwb3NpdG9yeTsKIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLmJlYW5zLmZhY3RvcnkuYW5ub3RhdGlvbi5BdXRvd2lyZWQ7CkBAIC0yNyw2ICsyOSw5IEBACiAgICAgQEF1dG93aXJlZAogICAgIHByaXZhdGUgVXNlckludml0ZUNvZGVSZXBvc2l0b3J5IHVzZXJJbnZpdGVDb2RlUmVwb3NpdG9yeTsKIAorICAgIEBBdXRvd2lyZWQKKyAgICBwcml2YXRlIEZyaWVuZFJlbGF0aW9uUmVwb3NpdG9yeSBmcmllbmRSZWxhdGlvblJlcG9zaXRvcnk7CisKICAgICAvLyDnlJ/miJDpgoDor7fnoIEKICAgICBwdWJsaWMgTWFwPFN0cmluZywgT2JqZWN0PiBnZW5lcmF0ZUludml0ZUNvZGUoTG9uZyB1c2VySWQpIHsKICAgICAgICAgLy8g6I635Y+W55So5oi35L+h5oGvCkBAIC0xMzUsNiArMTQwLDE3IEBACiAgICAgICAgIC8vIOS/neWtmOeUqOaIt+S/oeaBrwogICAgICAgICB1c2VyUmVwb3NpdG9yeS5zYXZlKG5ld1VzZXIpOwogCisgICAgICAgIEZyaWVuZFJlbGF0aW9uIG5ld0ZyaWVuZFJlbGF0aW9uICA9IG5ldyBGcmllbmRSZWxhdGlvbigpOworICAgICAgICBuZXdGcmllbmRSZWxhdGlvbi5zZXRVc2VySWQobmV3VXNlci5nZXRVc2VySWQoKSk7CisgICAgICAgIG5ld0ZyaWVuZFJlbGF0aW9uLnNldENyZWF0ZVRpbWUobmV3IERhdGUoKSk7CisgICAgICAgIG5ld0ZyaWVuZFJlbGF0aW9uLnNldEZyaWVuZElkKGludml0ZVVzZXJJZCk7CisKKyAgICAgICAgRnJpZW5kUmVsYXRpb24gbmV3RnJpZW5kUmVsYXRpb25zICA9IG5ldyBGcmllbmRSZWxhdGlvbigpOworICAgICAgICBuZXdGcmllbmRSZWxhdGlvbnMuc2V0VXNlcklkKGludml0ZVVzZXJJZCk7CisgICAgICAgIG5ld0ZyaWVuZFJlbGF0aW9ucy5zZXRDcmVhdGVUaW1lKG5ldyBEYXRlKCkpOworICAgICAgICBuZXdGcmllbmRSZWxhdGlvbnMuc2V0RnJpZW5kSWQobmV3VXNlci5nZXRVc2VySWQoKSk7CisgICAgICAgIGZyaWVuZFJlbGF0aW9uUmVwb3NpdG9yeS5zYXZlKG5ld0ZyaWVuZFJlbGF0aW9uKTsKKyAgICAgICAgZnJpZW5kUmVsYXRpb25SZXBvc2l0b3J5LnNhdmUobmV3RnJpZW5kUmVsYXRpb25zKTsKICAgICAgICAgLy8g5pu05paw6YKA6K+356CB55qE5L2/55So54q25oCBCiAgICAgICAgIGludml0ZUVudGl0eS5zZXRJc1VzZWQodHJ1ZSk7CiAgICAgICAgIHVzZXJJbnZpdGVDb2RlUmVwb3NpdG9yeS5zYXZlKGludml0ZUVudGl0eSk7CkBAIC0xNTYsNyArMTcyLDggQEAKICAgICAgICAgaWYgKCF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgewogICAgICAgICAgICAgcmV0dXJuICLlr4bnoIHplJnor68iOwogICAgICAgICB9Ci0KKyAgICAgICAgU3RwVXRpbC5sb2dpbih1c2VyLmdldFVzZXJJZCgpKTsKKyAgICAgICAgCiAgICAgICAgIC8vIOeZu+W9leaIkOWKnwogICAgICAgICByZXR1cm4gIueZu+W9leaIkOWKnyI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9Ub3JyZW50U2VydmljZUltcGwuamF2YSBiL3NyYy9tYWluL2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvVG9ycmVudFNlcnZpY2VJbXBsLmphdmEKaW5kZXggY2IyNmY3YS4uNDg3MGZkNSAxMDA2NDQKLS0tIGEvc3JjL21haW4vamF2YS9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9Ub3JyZW50U2VydmljZUltcGwuamF2YQorKysgYi9zcmMvbWFpbi9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL1RvcnJlbnRTZXJ2aWNlSW1wbC5qYXZhCkBAIC0xLDUgKzEsMzA1IEBACisvLyBwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLnNlcnZpY2VJbXBsOworCisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmVudGl0eS5Ub3JyZW50RW50aXR5OworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVXNlcjsKKy8vIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QubWFwcGVyLlRvcnJlbnRNYXBwZXI7CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0Lm1hcHBlci5Vc2VyTWFwcGVyOworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlRvcnJlbnRTZXJ2aWNlOworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLlByb21vdGlvblNlcnZpY2U7CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5wYXJhbS5Ub3JyZW50UGFyYW07CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5wYXJhbS5Ub3JyZW50VXBsb2FkUGFyYW07CisvLyBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0LmR0by5Ub3JyZW50VXBkYXRlRFRPOworLy8gaW1wb3J0IGNvbS50dXJuLnR0b3JyZW50LmJjb2RlYy5CRGVjb2RlcjsKKy8vIGltcG9ydCBjb20udHVybi50dG9ycmVudC5iY29kZWMuQkVWYWx1ZTsKKy8vIGltcG9ydCBjb20udHVybi50dG9ycmVudC5iY29kZWMuQkVuY29kZXI7CisvLyBpbXBvcnQgY29tLnR1cm4udHRvcnJlbnQuY2xpZW50LlNpbXBsZUNsaWVudDsKKy8vIGltcG9ydCBjb20udHVybi50dG9ycmVudC5jb21tb24uY3JlYXRpb24uTWV0YWRhdGFCdWlsZGVyOworLy8gaW1wb3J0IGNvbS50dXJuLnR0b3JyZW50LnRyYWNrZXIuVHJhY2tlcjsKKy8vIGltcG9ydCBjb20udHVybi50dG9ycmVudC50cmFja2VyLlRyYWNrZWRUb3JyZW50OworLy8gaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5jb21tb24uYmFzZS5SZXN1bHQ7CisKKy8vIGltcG9ydCBjb20udHVybi50dG9ycmVudC50cmFja2VyLlRyYWNrZWRUb3JyZW50OworLy8gaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5jb2RlYy5iaW5hcnkuSGV4OworLy8gaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsuYmVhbnMuZmFjdG9yeS5hbm5vdGF0aW9uLkF1dG93aXJlZDsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnN0ZXJlb3R5cGUuU2VydmljZTsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLnRyYW5zYWN0aW9uLmFubm90YXRpb24uVHJhbnNhY3Rpb25hbDsKKy8vIGltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5tdWx0aXBhcnQuTXVsdGlwYXJ0RmlsZTsKKworLy8gaW1wb3J0IGphdmEuaW8uQnl0ZUFycmF5SW5wdXRTdHJlYW07CisvLyBpbXBvcnQgamF2YS5pby5CeXRlQXJyYXlPdXRwdXRTdHJlYW07CisvLyBpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKy8vIGltcG9ydCBqYXZhLm5ldC5JbmV0QWRkcmVzczsKKy8vIGltcG9ydCBqYXZhLm5pby5maWxlLkZpbGVzOworLy8gaW1wb3J0IGphdmEubmlvLmZpbGUuUGF0aDsKKy8vIGltcG9ydCBqYXZhLm5pby5maWxlLlBhdGhzOworLy8gaW1wb3J0IGphdmEubmlvLmZpbGUuU3RhbmRhcmRDb3B5T3B0aW9uOworLy8gaW1wb3J0IGphdmEuc2VjdXJpdHkuTWVzc2FnZURpZ2VzdDsKKy8vIGltcG9ydCBqYXZhLnNlY3VyaXR5Lk5vU3VjaEFsZ29yaXRobUV4Y2VwdGlvbjsKKy8vIGltcG9ydCBqYXZhLnRpbWUuTG9jYWxUaW1lOworLy8gaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworLy8gaW1wb3J0IGphdmEudXRpbC5MaXN0OworLy8gaW1wb3J0IGphdmEudXRpbC5NYXA7CisvLyBpbXBvcnQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JTZXJ2aWNlOworLy8gaW1wb3J0IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9yczsKKworLy8gQFNlcnZpY2UKKy8vIHB1YmxpYyBjbGFzcyBUb3JyZW50U2VydmljZUltcGwgaW1wbGVtZW50cyBUb3JyZW50U2VydmljZSB7CisvLyAgICAgQEF1dG93aXJlZAorLy8gICAgIHByaXZhdGUgVHJhY2tlciB0cmFja2VyOworCisvLyAgICAgQEF1dG93aXJlZAorLy8gICAgIHByaXZhdGUgVG9ycmVudE1hcHBlciB0b3JyZW50TWFwcGVyOworCisvLyAgICAgcHJpdmF0ZSBmaW5hbCBNYXA8U3RyaW5nLCBUcmFja2VkVG9ycmVudD4gdG9ycmVudFJlZ2lzdHJ5ID0gbmV3IEhhc2hNYXA8PigpOworCisKKy8vICAgICBAQXV0b3dpcmVkCisvLyAgICAgcHJpdmF0ZSBVc2VyTWFwcGVyIHVzZXJNYXBwZXI7CisKKy8vICAgICBAQXV0b3dpcmVkCisvLyAgICAgcHJpdmF0ZSBQcm9tb3Rpb25TZXJ2aWNlIHByb21vdGlvblNlcnZpY2U7CisKKy8vICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBkb3VibGUgTUlOX1VQTE9BRF9SQVRJTyA9IDAuNTsgLy8g5pyA5bCP5LiK5Lyg5q+U5L6L6KaB5rGCCisKKy8vICAgICBAT3ZlcnJpZGUKKy8vICAgICBwdWJsaWMgTGlzdDxUb3JyZW50RW50aXR5PiBzZWFyY2goVG9ycmVudFBhcmFtIHBhcmFtKSB7CisvLyAgICAgICAgIHJldHVybiB0b3JyZW50TWFwcGVyLnNlYXJjaChwYXJhbSk7CisvLyAgICAgfQorCisvLyAgICAgQE92ZXJyaWRlCisvLyAgICAgcHVibGljIFRvcnJlbnRFbnRpdHkgc2VsZWN0QnlTZWVkSWQoTG9uZyBzZWVkSWQpIHsKKy8vICAgICAgICAgcmV0dXJuIHRvcnJlbnRNYXBwZXIuc2VsZWN0QnlJZChzZWVkSWQpOworLy8gICAgIH0KKy8vICAgICBwcml2YXRlIGZpbmFsIEV4ZWN1dG9yU2VydmljZSBzZWVkZXJFeGVjdXRvciA9IEV4ZWN1dG9ycy5uZXdDYWNoZWRUaHJlYWRQb29sKCk7CisKKy8vICAgICBAT3ZlcnJpZGUKKy8vICAgICBAVHJhbnNhY3Rpb25hbAorLy8gICAgIHB1YmxpYyB2b2lkIHVwbG9hZFRvcnJlbnQoTXVsdGlwYXJ0RmlsZSBmaWxlLCBUb3JyZW50VXBsb2FkUGFyYW0gcGFyYW0pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisvLyAgICAgICAgIC8vIOmqjOivgeeUqOaIt+adg+mZkAorLy8gICAgICAgICBVc2VyIHVzZXIgPSB1c2VyTWFwcGVyLnNlbGVjdEJ5VXNlcklkKExvbmcudmFsdWVPZihwYXJhbS5nZXRVcGxvYWRlcigpKSk7CisvLyAgICAgICAgIGlmICh1c2VyID09IG51bGwpIHsKKy8vICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCLnlKjmiLfkuI3lrZjlnKgiKTsKKy8vICAgICAgICAgfQorLy8gICAgICAgICBTdHJpbmcgd29ya2luZ0RpciA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKTsKKy8vICAgICAgICAgUGF0aCBvcmlnaW5hbERpciA9IFBhdGhzLmdldCh3b3JraW5nRGlyLCAiZGF0YSIsICJmaWxlcyIpOworLy8gICAgICAgICBGaWxlcy5jcmVhdGVEaXJlY3RvcmllcyhvcmlnaW5hbERpcik7CisvLyAgICAgICAgIFBhdGggb3JpZ2luYWxGaWxlUGF0aCA9IG9yaWdpbmFsRGlyLnJlc29sdmUoZmlsZS5nZXRPcmlnaW5hbEZpbGVuYW1lKCkpOworLy8gICAgICAgICBGaWxlcy5jb3B5KGZpbGUuZ2V0SW5wdXRTdHJlYW0oKSwgb3JpZ2luYWxGaWxlUGF0aCwgU3RhbmRhcmRDb3B5T3B0aW9uLlJFUExBQ0VfRVhJU1RJTkcpOworCisvLyAgICAgICAgIE1ldGFkYXRhQnVpbGRlciBidWlsZGVyID0gbmV3IE1ldGFkYXRhQnVpbGRlcigpCisvLyAgICAgICAgICAgICAgICAgLmFkZEZpbGUob3JpZ2luYWxGaWxlUGF0aC50b0ZpbGUoKSwgZmlsZS5nZXRPcmlnaW5hbEZpbGVuYW1lKCkpIC8vIOa3u+WKoOWOn+Wni+aWh+S7tgorLy8gICAgICAgICAgICAgICAgIC5zZXRUcmFja2VyKCIgIikgLy8g6K6+572uVHJhY2tlcuWcsOWdgAorLy8gICAgICAgICAgICAgICAgIC5zZXRQaWVjZUxlbmd0aCg1MTIgKiAxMDI0KSAvLyDliIbniYflpKflsI81MTJLQgorLy8gICAgICAgICAgICAgICAgIC5zZXRDb21tZW50KCJHZW5lcmF0ZWQgYnkgUFTnq5kiKQorLy8gICAgICAgICAgICAgICAgIC5zZXRDcmVhdGVkQnkoIlBULVNlcnZlciIpOworCisvLyAgICAgICAgIC8vIOWkhOeQhuenjeWtkOaWh+S7tgorLy8gICAgICAgICBieXRlW10gdG9ycmVudEJ5dGVzID0gZmlsZS5nZXRCeXRlcygpOworLy8gICAgICAgICBTdHJpbmcgaW5mb0hhc2ggPSBudWxsOworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgaW5mb0hhc2ggPSBjYWxjdWxhdGVJbmZvSGFzaCh0b3JyZW50Qnl0ZXMpOworLy8gICAgICAgICB9IGNhdGNoIChOb1N1Y2hBbGdvcml0aG1FeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICAvLyDkv53lrZjnp43lrZDmlofku7bliLBkYXRhL3RvcnJlbnRz55uu5b2VCisvLyAgICAgICAgIFBhdGggdG9ycmVudERpciA9IFBhdGhzLmdldCh3b3JraW5nRGlyLCAiZGF0YSIsICJ0b3JyZW50cyIpOworLy8gICAgICAgICBGaWxlcy5jcmVhdGVEaXJlY3Rvcmllcyh0b3JyZW50RGlyKTsKKy8vICAgICAgICAgUGF0aCB0b3JyZW50UGF0aCA9IHRvcnJlbnREaXIucmVzb2x2ZShpbmZvSGFzaCArICIudG9ycmVudCIpOworLy8gICAgICAgICBGaWxlcy5jb3B5KG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbSh0b3JyZW50Qnl0ZXMpLCB0b3JyZW50UGF0aCwgU3RhbmRhcmRDb3B5T3B0aW9uLlJFUExBQ0VfRVhJU1RJTkcpOworCisvLyAgICAgICAgIC8vIOazqOWGjOWIsFRyYWNrZXIKKy8vICAgICAgICAgVHJhY2tlZFRvcnJlbnQgdG9ycmVudCA9IFRyYWNrZWRUb3JyZW50LmxvYWQodG9ycmVudFBhdGgudG9GaWxlKCkpOworLy8gICAgICAgICB0cmFja2VyLmFubm91bmNlKHRvcnJlbnQpOworCisKKy8vICAgICAgICAgLy8g5byC5q2l5ZCv5Yqo5YGa56eN5a6i5oi356uvCisvLyAgICAgICAgIHNlZWRlckV4ZWN1dG9yLnN1Ym1pdCgoKSAtPiB7CisvLyAgICAgICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgICAgIHN0YXJ0U2VlZGluZyh0b3JyZW50UGF0aCwgb3JpZ2luYWxEaXIpOworLy8gICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKy8vICAgICAgICAgICAgICAgICBSZXN1bHQuZXJyb3IoIuWBmuenjeWksei0pTogIiArIGUuZ2V0TWVzc2FnZSgpKTsKKy8vICAgICAgICAgICAgIH0KKy8vICAgICAgICAgfSk7CisKKworCisKKy8vICAgICAgICAgLy8g5L+d5a2Y56eN5a2Q5L+h5oGvCisvLyAgICAgICAgIFRvcnJlbnRFbnRpdHkgZW50aXR5PSBuZXcgVG9ycmVudEVudGl0eSgpOworLy8gICAgICAgICBlbnRpdHkuc2V0VXBsb2FkZXIocGFyYW0uZ2V0VXBsb2FkZXIoKSk7CisvLyAgICAgICAgIGVudGl0eS5zZXRGaWxlTmFtZShmaWxlLmdldE9yaWdpbmFsRmlsZW5hbWUoKSk7CisvLyAgICAgICAgIGVudGl0eS5zZXRTaXplKGZpbGUuZ2V0U2l6ZSgpKTsKKy8vICAgICAgICAgZW50aXR5LnNldENhdGVnb3J5KHBhcmFtLmdldENhdGVnb3J5KCkpOworLy8gICAgICAgICBlbnRpdHkuc2V0VGFncyhwYXJhbS5nZXRUYWdzKCkpOworLy8gICAgICAgICBlbnRpdHkuc2V0VGl0bGUocGFyYW0uZ2V0VGl0bGUoKSk7CisvLyAgICAgICAgIGVudGl0eS5zZXRJbWFnZVVybChwYXJhbS5nZXRJbWFnZVVybCgpKTsKKy8vICAgICAgICAgZW50aXR5LnNldFRvcnJlbnRGaWxlKHRvcnJlbnRCeXRlcyk7CisvLyAgICAgICAgIGVudGl0eS5zZXRJbmZvSGFzaChpbmZvSGFzaCk7CisKKy8vICAgICAgICAgdG9ycmVudE1hcHBlci5pbnNlcnQoZW50aXR5KTsKKy8vICAgICB9CisKKy8vICAgICBAT3ZlcnJpZGUKKy8vICAgICBwdWJsaWMgYnl0ZVtdIGZldGNoKExvbmcgc2VlZElkLCBTdHJpbmcgcGFzc2tleSkgeworLy8gICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnQgPSBzZWxlY3RCeVNlZWRJZChzZWVkSWQpOworLy8gICAgICAgICBpZiAodG9ycmVudCA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigi56eN5a2Q5LiN5a2Y5ZyoIik7CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICBieXRlW10gdG9ycmVudEJ5dGVzID0gdG9ycmVudC5nZXRUb3JyZW50RmlsZSgpOworCisvLyAgICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgICAvLyAxLiDop6PnoIEgLnRvcnJlbnQg5paH5Lu25Li6IE1hcAorLy8gICAgICAgICAgICAgTWFwPFN0cmluZywgQkVWYWx1ZT4gZGVjb2RlZCA9IEJEZWNvZGVyLmJkZWNvZGUobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKHRvcnJlbnRCeXRlcykpLmdldE1hcCgpOworCisvLyAgICAgICAgICAgICAvLyAyLiDojrflj5bljp/lp4sgYW5ub3VuY2Ug5a2X5q61CisvLyAgICAgICAgICAgICBTdHJpbmcgYW5ub3VuY2UgPSBkZWNvZGVkLmdldCgiYW5ub3VuY2UiKS5nZXRTdHJpbmcoKTsKKworLy8gICAgICAgICAgICAgLy8gMy4g5rOo5YWlIHBhc3NrZXkg5YiwIGFubm91bmNlIFVSTAorLy8gICAgICAgICAgICAgaWYgKCFhbm5vdW5jZS5jb250YWlucygicGFzc2tleT0iKSkgeworLy8gICAgICAgICAgICAgICAgIGFubm91bmNlID0gYW5ub3VuY2UgKyAiP3Bhc3NrZXk9IiArIHBhc3NrZXk7CisvLyAgICAgICAgICAgICAgICAgZGVjb2RlZC5wdXQoImFubm91bmNlIiwgbmV3IEJFVmFsdWUoYW5ub3VuY2UpKTsKKy8vICAgICAgICAgICAgIH0KKworLy8gICAgICAgICAgICAgLy8gNC4g57yW56CB5oiQ5paw55qEIC50b3JyZW50IOaWh+S7tuWtl+iKguaVsOe7hAorLy8gICAgICAgICAgICAgQnl0ZUFycmF5T3V0cHV0U3RyZWFtIG91dCA9IG5ldyBCeXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsKKy8vICAgICAgICAgICAgIEJFbmNvZGVyLmJlbmNvZGUoZGVjb2RlZCwgb3V0KTsKKy8vICAgICAgICAgICAgIHJldHVybiBvdXQudG9CeXRlQXJyYXkoKTsKKworLy8gICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworLy8gICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIuWkhOeQhiB0b3JyZW50IOaWh+S7tuWksei0pSIsIGUpOworLy8gICAgICAgICB9CisvLyAgICAgfQorCisvLyAgICAgQE92ZXJyaWRlCisvLyAgICAgQFRyYW5zYWN0aW9uYWwKKy8vICAgICBwdWJsaWMgUmVzdWx0IGZhdm9yaXRlKExvbmcgc2VlZElkLCBMb25nIHVzZXJJZCkgeworLy8gICAgICAgICB0cnkgeworLy8gICAgICAgICAgICAgYm9vbGVhbiBleGlzdHMgPSB0b3JyZW50TWFwcGVyLmNoZWNrRmF2b3JpdGUoc2VlZElkLCB1c2VySWQpOworLy8gICAgICAgICAgICAgaWYgKGV4aXN0cykgeworLy8gICAgICAgICAgICAgICAgIHRvcnJlbnRNYXBwZXIucmVtb3ZlRmF2b3JpdGUoc2VlZElkLCB1c2VySWQpOworLy8gICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2Vzcygi5Y+W5raI5pS26JeP5oiQ5YqfIik7CisvLyAgICAgICAgICAgICB9IGVsc2UgeworLy8gICAgICAgICAgICAgICAgIHRvcnJlbnRNYXBwZXIuYWRkRmF2b3JpdGUoc2VlZElkLCB1c2VySWQpOworLy8gICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQuc3VjY2Vzcygi5pS26JeP5oiQ5YqfIik7CisvLyAgICAgICAgICAgICB9CisvLyAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gUmVzdWx0LmVycm9yKCLlpLHotKU6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKy8vICAgICBAT3ZlcnJpZGUKKy8vICAgICBAVHJhbnNhY3Rpb25hbAorLy8gICAgIHB1YmxpYyB2b2lkIGRlbGV0ZVRvcnJlbnQoTG9uZyBzZWVkSWQpIHsKKy8vICAgICAgICAgdG9ycmVudE1hcHBlci5kZWxldGVCeUlkKHNlZWRJZCk7CisvLyAgICAgfQorCisvLyAgICAgQE92ZXJyaWRlCisvLyAgICAgQFRyYW5zYWN0aW9uYWwKKy8vICAgICBwdWJsaWMgdm9pZCB1cGRhdGVUb3JyZW50KExvbmcgc2VlZElkLCBUb3JyZW50VXBkYXRlRFRPIHVwZGF0ZURUTykgeworLy8gICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnQgPSBzZWxlY3RCeVNlZWRJZChzZWVkSWQpOworLy8gICAgICAgICBpZiAodG9ycmVudCA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigi56eN5a2Q5LiN5a2Y5ZyoIik7CisvLyAgICAgICAgIH0KKworCisvLyAgICAgICAgIHRvcnJlbnQuc2V0RGVzY3JpcHRpb24odXBkYXRlRFRPLmdldERlc2NyaXB0aW9uKCkpOworLy8gICAgICAgICB0b3JyZW50LnNldENhdGVnb3J5KHVwZGF0ZURUTy5nZXRDYXRlZ29yeSgpKTsKKy8vICAgICAgICAgdG9ycmVudC5zZXRUaXRsZSh1cGRhdGVEVE8uZ2V0VGl0bGUoKSk7CisvLyAgICAgICAgIHRvcnJlbnQuc2V0VGFncyh1cGRhdGVEVE8uZ2V0VGFncygpKTsKKy8vICAgICAgICAgdG9ycmVudC5zZXRJbWFnZVVybCh1cGRhdGVEVE8uZ2V0SW1hZ2VVcmwoKSk7CisKKy8vICAgICAgICAgdG9ycmVudE1hcHBlci51cGRhdGVCeUlkKHRvcnJlbnQpOworLy8gICAgIH0KKworLy8gICAgIEBPdmVycmlkZQorLy8gICAgIHB1YmxpYyBib29sZWFuIGNhblVzZXJEZWxldGVUb3JyZW50KExvbmcgc2VlZElkLCBMb25nIHVzZXJJZCkgeworLy8gICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnQgPSBzZWxlY3RCeVNlZWRJZChzZWVkSWQpOworLy8gICAgICAgICBpZiAodG9ycmVudCA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICAvLyDmo4Dmn6XmmK/lkKbmmK/np43lrZDlj5HluIPogIXmiJbnrqHnkIblkZgKKy8vICAgICAgICAgcmV0dXJuIHRvcnJlbnQuZ2V0VXBsb2FkZXIoKS5lcXVhbHModXNlcklkKSB8fAorLy8gICAgICAgICAgICAgICAgIHVzZXJNYXBwZXIuaGFzUm9sZSh1c2VySWQsICJhZG1pbiIpOworLy8gICAgIH0KKworLy8gICAgIEBPdmVycmlkZQorLy8gICAgIHB1YmxpYyBib29sZWFuIGNhblVzZXJVcGRhdGVUb3JyZW50KExvbmcgc2VlZElkLCBMb25nIHVzZXJJZCkgeworLy8gICAgICAgICByZXR1cm4gY2FuVXNlckRlbGV0ZVRvcnJlbnQoc2VlZElkLCB1c2VySWQpOworLy8gICAgIH0KKworLy8gICAgIEBPdmVycmlkZQorLy8gICAgIHB1YmxpYyBib29sZWFuIGNoZWNrVXNlclVwbG9hZFJhdGlvKExvbmcgdXNlcklkKSB7CisvLyAgICAgICAgIFVzZXIgdXNlciA9IHVzZXJNYXBwZXIuc2VsZWN0QnlJZCh1c2VySWQpOworLy8gICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICAvLyDpmLLmraLpmaTku6Xpm7YKKy8vICAgICAgICAgaWYgKHVzZXIuZ2V0RG93bmxvYWRlZCgpID09IDApIHsKKy8vICAgICAgICAgICAgIHJldHVybiB0cnVlOworLy8gICAgICAgICB9CisKKy8vICAgICAgICAgZG91YmxlIHVwbG9hZFJhdGlvID0gdXNlci5nZXRVcGxvYWRlZCgpIC8gKGRvdWJsZSkgdXNlci5nZXREb3dubG9hZGVkKCk7CisvLyAgICAgICAgIHJldHVybiB1cGxvYWRSYXRpbyA+PSBNSU5fVVBMT0FEX1JBVElPOworLy8gICAgIH0KKy8vICAgICAvKioKKy8vICAgICAgKiDlkK/liqjlgZrnp43lrqLmiLfnq68KKy8vICAgICAgKi8KKy8vICAgICBwcml2YXRlIHZvaWQgc3RhcnRTZWVkaW5nKFBhdGggdG9ycmVudFBhdGgsIFBhdGggZGF0YURpcikgdGhyb3dzIEV4Y2VwdGlvbiB7CisvLyAgICAgICAgIFNpbXBsZUNsaWVudCBzZWVkZXJDbGllbnQgPSBuZXcgU2ltcGxlQ2xpZW50KCk7CisvLyAgICAgICAgIHNlZWRlckNsaWVudC5kb3dubG9hZFRvcnJlbnQoCisvLyAgICAgICAgICAgICAgICAgdG9ycmVudFBhdGgudG9TdHJpbmcoKSwKKy8vICAgICAgICAgICAgICAgICBkYXRhRGlyLnRvU3RyaW5nKCksCisvLyAgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3MuZ2V0TG9jYWxIb3N0KCkpOworLy8gICAgICAgICAvLyDkv53mjIHlgZrnp43nirbmgIHvvIjpmLvloZ7nur/nqIvvvIkKKy8vICAgICAgICAgd2hpbGUgKHRydWUpIHsKKy8vICAgICAgICAgICAgIFRocmVhZC5zbGVlcCg2MDAwMCk7IC8vIOavjzYw56eS5qOA5p+l5LiA5qyhCisvLyAgICAgICAgIH0KKy8vICAgICB9CisKKworLy8gICAgIEBPdmVycmlkZQorLy8gICAgIHB1YmxpYyBkb3VibGUgY2FsY3VsYXRlRG93bmxvYWRTaXplKExvbmcgdG9ycmVudElkLCBMb25nIHVzZXJJZCkgeworLy8gICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnQgPSBzZWxlY3RCeVNlZWRJZCh0b3JyZW50SWQpOworLy8gICAgICAgICBpZiAodG9ycmVudCA9PSBudWxsKSB7CisvLyAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigi56eN5a2Q5LiN5a2Y5ZyoIik7CisvLyAgICAgICAgIH0KKworLy8gICAgICAgICAvLyDojrflj5blvZPliY3mnInmlYjnmoTkv4PplIDmtLvliqgKKy8vICAgICAgICAgZG91YmxlIGRpc2NvdW50ID0gcHJvbW90aW9uU2VydmljZS5nZXRDdXJyZW50RGlzY291bnQodG9ycmVudElkKTsKKworLy8gICAgICAgICAvLyDorqHnrpflrp7pmYXkuIvovb3ph48KKy8vICAgICAgICAgcmV0dXJuIHRvcnJlbnQuZ2V0U2l6ZSgpICogKDEgLSBkaXNjb3VudCAvIDEwMC4wKTsKKy8vICAgICB9CisKKy8vICAgICBAT3ZlcnJpZGUKKy8vICAgICBAVHJhbnNhY3Rpb25hbAorLy8gICAgIHB1YmxpYyB2b2lkIHJlY29yZERvd25sb2FkKExvbmcgdG9ycmVudElkLCBMb25nIHVzZXJJZCwgZG91YmxlIGRvd25sb2FkU2l6ZSkgeworLy8gICAgICAgICAvLyDmm7TmlrDnlKjmiLfkuIvovb3ph48KKy8vICAgICAgICAgdXNlck1hcHBlci5pbmNyZWFzZURvd25sb2FkZWQodXNlcklkLCBkb3dubG9hZFNpemUpOworCisvLyAgICAgICAgIC8vIOabtOaWsOenjeWtkOS4i+i9veasoeaVsAorLy8gICAgICAgICB0b3JyZW50TWFwcGVyLmluY3JlYXNlRG93bmxvYWRzKHRvcnJlbnRJZCk7CisvLyAgICAgfQorLy8gICAgIC8qKgorLy8gICAgICAqIOiuoeeul+enjeWtkOaWh+S7tueahGluZm9IYXNoCisvLyAgICAgICovCisvLyAgICAgcHJpdmF0ZSBTdHJpbmcgY2FsY3VsYXRlSW5mb0hhc2goYnl0ZVtdIHRvcnJlbnREYXRhKSB0aHJvd3MgTm9TdWNoQWxnb3JpdGhtRXhjZXB0aW9uICB7CisvLyAgICAgICAgIE1lc3NhZ2VEaWdlc3Qgc2hhMSA9IE1lc3NhZ2VEaWdlc3QuZ2V0SW5zdGFuY2UoIlNIQS0xIik7CisvLyAgICAgICAgIHNoYTEudXBkYXRlKHRvcnJlbnREYXRhKTsKKy8vICAgICAgICAgYnl0ZVtdIGhhc2hCeXRlcyA9IHNoYTEuZGlnZXN0KCk7CisvLyAgICAgICAgIHJldHVybiBIZXguZW5jb2RlSGV4U3RyaW5nKGhhc2hCeXRlcyk7CisvLyAgICAgfQorLy8gfQorCiBwYWNrYWdlIGNvbS5leGFtcGxlLm15cHJvamVjdC5zZXJ2aWNlLnNlcnZpY2VJbXBsOwogCitpbXBvcnQgY24uZGV2MzMuc2F0b2tlbi5zdHAuU3RwVXRpbDsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS5jb25kaXRpb25zLnF1ZXJ5LkxhbWJkYVF1ZXJ5V3JhcHBlcjsKK2ltcG9ydCBjb20uYmFvbWlkb3UubXliYXRpc3BsdXMuY29yZS50b29sa2l0LldyYXBwZXJzOwogaW1wb3J0IGNvbS5leGFtcGxlLm15cHJvamVjdC5lbnRpdHkuVG9ycmVudEVudGl0eTsKIGltcG9ydCBjb20uZXhhbXBsZS5teXByb2plY3QuZW50aXR5LlVzZXI7CiBpbXBvcnQgY29tLmV4YW1wbGUubXlwcm9qZWN0Lm1hcHBlci5Ub3JyZW50TWFwcGVyOwpAQCAtMTMsNiArMzEzLDggQEAKIGltcG9ydCBjb20udHVybi50dG9ycmVudC5iY29kZWMuQkVWYWx1ZTsKIGltcG9ydCBjb20udHVybi50dG9ycmVudC5iY29kZWMuQkVuY29kZXI7CiBpbXBvcnQgY29tLnR1cm4udHRvcnJlbnQuY2xpZW50LlNpbXBsZUNsaWVudDsKK2ltcG9ydCBjb20udHVybi50dG9ycmVudC5jb21tb24uVG9ycmVudE1ldGFkYXRhOworaW1wb3J0IGNvbS50dXJuLnR0b3JyZW50LmNvbW1vbi5Ub3JyZW50UGFyc2VyOwogaW1wb3J0IGNvbS50dXJuLnR0b3JyZW50LmNvbW1vbi5jcmVhdGlvbi5NZXRhZGF0YUJ1aWxkZXI7CiBpbXBvcnQgY29tLnR1cm4udHRvcnJlbnQudHJhY2tlci5UcmFja2VyOwogaW1wb3J0IGNvbS50dXJuLnR0b3JyZW50LnRyYWNrZXIuVHJhY2tlZFRvcnJlbnQ7CkBAIC04MCw2NiArMzgyLDI5IEBACiAgICAgICAgIGlmICh1c2VyID09IG51bGwpIHsKICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCLnlKjmiLfkuI3lrZjlnKgiKTsKICAgICAgICAgfQotICAgICAgICBTdHJpbmcgd29ya2luZ0RpciA9IFN5c3RlbS5nZXRQcm9wZXJ0eSgidXNlci5kaXIiKTsKLSAgICAgICAgUGF0aCBvcmlnaW5hbERpciA9IFBhdGhzLmdldCh3b3JraW5nRGlyLCAiZGF0YSIsICJmaWxlcyIpOwotICAgICAgICBGaWxlcy5jcmVhdGVEaXJlY3RvcmllcyhvcmlnaW5hbERpcik7Ci0gICAgICAgIFBhdGggb3JpZ2luYWxGaWxlUGF0aCA9IG9yaWdpbmFsRGlyLnJlc29sdmUoZmlsZS5nZXRPcmlnaW5hbEZpbGVuYW1lKCkpOwotICAgICAgICBGaWxlcy5jb3B5KGZpbGUuZ2V0SW5wdXRTdHJlYW0oKSwgb3JpZ2luYWxGaWxlUGF0aCwgU3RhbmRhcmRDb3B5T3B0aW9uLlJFUExBQ0VfRVhJU1RJTkcpOwogCi0gICAgICAgIE1ldGFkYXRhQnVpbGRlciBidWlsZGVyID0gbmV3IE1ldGFkYXRhQnVpbGRlcigpCi0gICAgICAgICAgICAgICAgLmFkZEZpbGUob3JpZ2luYWxGaWxlUGF0aC50b0ZpbGUoKSwgZmlsZS5nZXRPcmlnaW5hbEZpbGVuYW1lKCkpIC8vIOa3u+WKoOWOn+Wni+aWh+S7tgotICAgICAgICAgICAgICAgIC5zZXRUcmFja2VyKCIgIikgLy8g6K6+572uVHJhY2tlcuWcsOWdgAotICAgICAgICAgICAgICAgIC5zZXRQaWVjZUxlbmd0aCg1MTIgKiAxMDI0KSAvLyDliIbniYflpKflsI81MTJLQgotICAgICAgICAgICAgICAgIC5zZXRDb21tZW50KCJHZW5lcmF0ZWQgYnkgUFTnq5kiKQotICAgICAgICAgICAgICAgIC5zZXRDcmVhdGVkQnkoIlBULVNlcnZlciIpOwotCi0gICAgICAgIC8vIOWkhOeQhuenjeWtkOaWh+S7tgogICAgICAgICBieXRlW10gdG9ycmVudEJ5dGVzID0gZmlsZS5nZXRCeXRlcygpOwotICAgICAgICBTdHJpbmcgaW5mb0hhc2ggPSBudWxsOwotICAgICAgICB0cnkgewotICAgICAgICAgICAgaW5mb0hhc2ggPSBjYWxjdWxhdGVJbmZvSGFzaCh0b3JyZW50Qnl0ZXMpOwotICAgICAgICB9IGNhdGNoIChOb1N1Y2hBbGdvcml0aG1FeGNlcHRpb24gZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7Ci0gICAgICAgIH0KKyAgICAgICAgVG9ycmVudE1ldGFkYXRhIG1ldGFkYXRhID0gbmV3IFRvcnJlbnRQYXJzZXIoKS5wYXJzZSh0b3JyZW50Qnl0ZXMpOwogCi0gICAgICAgIC8vIOS/neWtmOenjeWtkOaWh+S7tuWIsGRhdGEvdG9ycmVudHPnm67lvZUKLSAgICAgICAgUGF0aCB0b3JyZW50RGlyID0gUGF0aHMuZ2V0KHdvcmtpbmdEaXIsICJkYXRhIiwgInRvcnJlbnRzIik7Ci0gICAgICAgIEZpbGVzLmNyZWF0ZURpcmVjdG9yaWVzKHRvcnJlbnREaXIpOwotICAgICAgICBQYXRoIHRvcnJlbnRQYXRoID0gdG9ycmVudERpci5yZXNvbHZlKGluZm9IYXNoICsgIi50b3JyZW50Iik7Ci0gICAgICAgIEZpbGVzLmNvcHkobmV3IEJ5dGVBcnJheUlucHV0U3RyZWFtKHRvcnJlbnRCeXRlcyksIHRvcnJlbnRQYXRoLCBTdGFuZGFyZENvcHlPcHRpb24uUkVQTEFDRV9FWElTVElORyk7Ci0KLSAgICAgICAgLy8g5rOo5YaM5YiwVHJhY2tlcgotICAgICAgICBUcmFja2VkVG9ycmVudCB0b3JyZW50ID0gVHJhY2tlZFRvcnJlbnQubG9hZCh0b3JyZW50UGF0aC50b0ZpbGUoKSk7Ci0gICAgICAgIHRyYWNrZXIuYW5ub3VuY2UodG9ycmVudCk7Ci0KLQotICAgICAgICAvLyDlvILmraXlkK/liqjlgZrnp43lrqLmiLfnq68KLSAgICAgICAgc2VlZGVyRXhlY3V0b3Iuc3VibWl0KCgpIC0+IHsKLSAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAgICAgc3RhcnRTZWVkaW5nKHRvcnJlbnRQYXRoLCBvcmlnaW5hbERpcik7Ci0gICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgewotICAgICAgICAgICAgICAgIFJlc3VsdC5lcnJvcigi5YGa56eN5aSx6LSlOiAiICsgZS5nZXRNZXNzYWdlKCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLQotCi0KKyAgICAgICAgTG9uZyBzaXplID0gbWV0YWRhdGEuZ2V0RmlsZXMoKS5zdHJlYW0oKS5tYXAoZiAtPiBmLnNpemUpLnJlZHVjZSgwTCwgTG9uZzo6c3VtKTsKIAogICAgICAgICAvLyDkv53lrZjnp43lrZDkv6Hmga8KICAgICAgICAgVG9ycmVudEVudGl0eSBlbnRpdHk9IG5ldyBUb3JyZW50RW50aXR5KCk7CiAgICAgICAgIGVudGl0eS5zZXRVcGxvYWRlcihwYXJhbS5nZXRVcGxvYWRlcigpKTsKICAgICAgICAgZW50aXR5LnNldEZpbGVOYW1lKGZpbGUuZ2V0T3JpZ2luYWxGaWxlbmFtZSgpKTsKLSAgICAgICAgZW50aXR5LnNldFNpemUoZmlsZS5nZXRTaXplKCkpOworICAgICAgICBlbnRpdHkuc2V0U2l6ZShzaXplKTsKICAgICAgICAgZW50aXR5LnNldENhdGVnb3J5KHBhcmFtLmdldENhdGVnb3J5KCkpOwogICAgICAgICBlbnRpdHkuc2V0VGFncyhwYXJhbS5nZXRUYWdzKCkpOwogICAgICAgICBlbnRpdHkuc2V0VGl0bGUocGFyYW0uZ2V0VGl0bGUoKSk7CiAgICAgICAgIGVudGl0eS5zZXRJbWFnZVVybChwYXJhbS5nZXRJbWFnZVVybCgpKTsKICAgICAgICAgZW50aXR5LnNldFRvcnJlbnRGaWxlKHRvcnJlbnRCeXRlcyk7Ci0gICAgICAgIGVudGl0eS5zZXRJbmZvSGFzaChpbmZvSGFzaCk7CisgICAgICAgIGVudGl0eS5zZXRJbmZvSGFzaChtZXRhZGF0YS5nZXRIZXhJbmZvSGFzaCgpKTsKIAogICAgICAgICB0b3JyZW50TWFwcGVyLmluc2VydChlbnRpdHkpOwogICAgIH0KIAorCisKICAgICBAT3ZlcnJpZGUKICAgICBwdWJsaWMgYnl0ZVtdIGZldGNoKExvbmcgc2VlZElkLCBTdHJpbmcgcGFzc2tleSkgewogICAgICAgICBUb3JyZW50RW50aXR5IHRvcnJlbnQgPSBzZWxlY3RCeVNlZWRJZChzZWVkSWQpOwpAQCAtMTU0LDE0ICs0MTksMTEgQEAKICAgICAgICAgICAgIE1hcDxTdHJpbmcsIEJFVmFsdWU+IGRlY29kZWQgPSBCRGVjb2Rlci5iZGVjb2RlKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbSh0b3JyZW50Qnl0ZXMpKS5nZXRNYXAoKTsKIAogICAgICAgICAgICAgLy8gMi4g6I635Y+W5Y6f5aeLIGFubm91bmNlIOWtl+autQotICAgICAgICAgICAgU3RyaW5nIGFubm91bmNlID0gZGVjb2RlZC5nZXQoImFubm91bmNlIikuZ2V0U3RyaW5nKCk7CisvLyBUT0RPOiDlr7nlupTmnKzmnLrlupTnlKjlnLDlnYAKKy8vICAgICAgICAgICAgU3RyaW5nIGFubm91bmNlID0gImh0dHA6Ly8xMjcuMC4wLjE6NTAxMS9zZWVkcy9hbm5vdW5jZT9wYXNza2V5PSIrcGFzc2tleSArIiZ1c2VySWQ9IiArIFN0cFV0aWwuZ2V0TG9naW5JZEFzU3RyaW5nKCk7CisgICAgICAgICAgICBTdHJpbmcgYW5ub3VuY2UgPSAiaHR0cDovLzE5Mi4xNjguNS4xNDk6NTAxMS9zZWVkcy9hbm5vdW5jZT9wYXNza2V5PSIgKyBwYXNza2V5ICsgIiZ1c2VySWQ9IiArIFN0cFV0aWwuZ2V0TG9naW5JZEFzU3RyaW5nKCk7CiAKLSAgICAgICAgICAgIC8vIDMuIOazqOWFpSBwYXNza2V5IOWIsCBhbm5vdW5jZSBVUkwKLSAgICAgICAgICAgIGlmICghYW5ub3VuY2UuY29udGFpbnMoInBhc3NrZXk9IikpIHsKLSAgICAgICAgICAgICAgICBhbm5vdW5jZSA9IGFubm91bmNlICsgIj9wYXNza2V5PSIgKyBwYXNza2V5OwotICAgICAgICAgICAgICAgIGRlY29kZWQucHV0KCJhbm5vdW5jZSIsIG5ldyBCRVZhbHVlKGFubm91bmNlKSk7Ci0gICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIGRlY29kZWQucHV0KCJhbm5vdW5jZSIsIG5ldyBCRVZhbHVlKGFubm91bmNlKSk7CiAgICAgICAgICAgICAvLyA0LiDnvJbnoIHmiJDmlrDnmoQgLnRvcnJlbnQg5paH5Lu25a2X6IqC5pWw57uECiAgICAgICAgICAgICBCeXRlQXJyYXlPdXRwdXRTdHJlYW0gb3V0ID0gbmV3IEJ5dGVBcnJheU91dHB1dFN0cmVhbSgpOwogICAgICAgICAgICAgQkVuY29kZXIuYmVuY29kZShkZWNvZGVkLCBvdXQpOwpAQCAtMjg0LDYgKzU0NiwxMiBAQAogICAgICAgICAvLyDmm7TmlrDnp43lrZDkuIvovb3mrKHmlbAKICAgICAgICAgdG9ycmVudE1hcHBlci5pbmNyZWFzZURvd25sb2Fkcyh0b3JyZW50SWQpOwogICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBUb3JyZW50RW50aXR5IHNlbGVjdEJ5SW5mb0hhc2goU3RyaW5nIGluZm9IYXNoKSB7CisgICAgICAgIHJldHVybiB0b3JyZW50TWFwcGVyLnNlbGVjdEJ5SW5mb0hhc2goaW5mb0hhc2gpOworICAgIH0KKwogICAgIC8qKgogICAgICAqIOiuoeeul+enjeWtkOaWh+S7tueahGluZm9IYXNoCiAgICAgICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyVGVzdC5qYXZhIGIvc3JjL3Rlc3QvamF2YS9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9EeW5hbWljQ29udHJvbGxlclRlc3QuamF2YQppbmRleCA3MzkyMTYyLi44NTBhM2YzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9qYXZhL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyVGVzdC5qYXZhCisrKyBiL3NyYy90ZXN0L2phdmEvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXJUZXN0LmphdmEKQEAgLTY2LDIwICs2NiwxOCBAQAogICAgICAgICBhc3NlcnRFcXVhbHMoIuWKqOaAgeWIoOmZpOaIkOWKnyIsIHJlc3BvbnNlLmdldEJvZHkoKSk7CiAgICAgfQogCi0gICAgLy8g5rWL6K+V5re75Yqg6K+E6K665o6l5Y+jCiAgICAgQFRlc3QKICAgICB2b2lkIHRlc3RBZGRDb21tZW50KCkgewogICAgICAgICBMb25nIHVzZXJJZCA9IDFMOwogICAgICAgICBMb25nIGR5bmFtaWNJZCA9IDFMOwotICAgICAgICBNYXA8U3RyaW5nLCBTdHJpbmc+IGNvbW1lbnRDb250ZW50ID0gbmV3IEhhc2hNYXA8PigpOworICAgICAgICBNYXA8U3RyaW5nLCBPYmplY3Q+IGNvbW1lbnRDb250ZW50ID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgICBjb21tZW50Q29udGVudC5wdXQoImNvbnRlbnQiLCAiVGhpcyBpcyBhIHRlc3QgY29tbWVudCIpOworICAgICAgICBjb21tZW50Q29udGVudC5wdXQoInBhcmVudF9jb21tZW50X2lkIiwgbnVsbCk7CiAKICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBtb2NrUmVzcG9uc2UgPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAgICAgIG1vY2tSZXNwb25zZS5wdXQoImNvbW1lbnRfaWQiLCAxMDFMKTsKICAgICAgICAgbW9ja1Jlc3BvbnNlLnB1dCgibWVzc2FnZSIsICLor4TorrrmiJDlip8iKTsKLQotICAgICAgICAvLyDmqKHmi58gZHluYW1pY1NlcnZpY2UuYWRkQ29tbWVudCDov5Tlm54KLSAgICAgICAgd2hlbihkeW5hbWljU2VydmljZS5hZGRDb21tZW50KHVzZXJJZCwgZHluYW1pY0lkLCAiVGhpcyBpcyBhIHRlc3QgY29tbWVudCIpKS50aGVuUmV0dXJuKG1vY2tSZXNwb25zZSk7CisgICAgICAgIHdoZW4oZHluYW1pY1NlcnZpY2UuYWRkQ29tbWVudCh1c2VySWQsIGR5bmFtaWNJZCwgIlRoaXMgaXMgYSB0ZXN0IGNvbW1lbnQiLCBudWxsKSkudGhlblJldHVybihtb2NrUmVzcG9uc2UpOwogCiAgICAgICAgIC8vIOiwg+eUqOaOp+WItuWZqOaWueazlQogICAgICAgICBSZXNwb25zZUVudGl0eTxNYXA8U3RyaW5nLCBPYmplY3Q+PiByZXNwb25zZSA9IGR5bmFtaWNDb250cm9sbGVyLmFkZENvbW1lbnQodXNlcklkLCBkeW5hbWljSWQsIGNvbW1lbnRDb250ZW50KTsKQEAgLTkwLDYgKzg4LDcgQEAKICAgICAgICAgYXNzZXJ0RXF1YWxzKDEwMUwsIHJlc3BvbnNlLmdldEJvZHkoKS5nZXQoImNvbW1lbnRfaWQiKSk7CiAgICAgfQogCisKICAgICAvLyDmtYvor5Xojrflj5bnlKjmiLfliqjmgIHmjqXlj6MKICAgICBAVGVzdAogICAgIHZvaWQgdGVzdEdldEFsbFVzZXJEeW5hbWljcygpIHsKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9QYWdlUGFyYW0uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29tbW9uL2Jhc2UvUGFnZVBhcmFtLmNsYXNzCmluZGV4IDIyODVmYzEuLmFhYmFhMzEgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9QYWdlUGFyYW0uY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbW1vbi9iYXNlL1BhZ2VQYXJhbS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29tbW9uL2Jhc2UvUmVzUGFnZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXNQYWdlLmNsYXNzCmluZGV4IGUyMDg5MzMuLmRiOTU2OWUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXNQYWdlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXNQYWdlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXN1bHQuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29tbW9uL2Jhc2UvUmVzdWx0LmNsYXNzCmluZGV4IDg0OTJkZDEuLjIzOWM5MGQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb21tb24vYmFzZS9SZXN1bHQuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbW1vbi9iYXNlL1Jlc3VsdC5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1RyYWNrZXJDb25maWcuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1RyYWNrZXJDb25maWcuY2xhc3MKaW5kZXggNzc0YWEyNy4uMGMzMmQ0ZSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbmZpZy9UcmFja2VyQ29uZmlnLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvVHJhY2tlckNvbmZpZy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29uZmlnL1dlYkNvbmZpZy5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmNsYXNzCmluZGV4IDRjNDBhNzkuLmNhYzU5YWIgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb25maWcvV2ViQ29uZmlnLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0R5bmFtaWNDb250cm9sbGVyLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXIuY2xhc3MKaW5kZXggYzc2MDQ1Mi4uOTAyOTI3NCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXIuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXIuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvR3JvdXBDb250cm9sbGVyLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvR3JvdXBDb250cm9sbGVyLmNsYXNzCmluZGV4IDkzMWY3NzMuLmQ0YTJmY2IgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0dyb3VwQ29udHJvbGxlci5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Hcm91cENvbnRyb2xsZXIuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVG9ycmVudENvbnRyb2xsZXIuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Ub3JyZW50Q29udHJvbGxlci5jbGFzcwppbmRleCBkYzAwN2E4Li5lNGNlNzVlIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Ub3JyZW50Q29udHJvbGxlci5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Ub3JyZW50Q29udHJvbGxlci5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9UcmFja2VyQ29udHJvbGxlci5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RyYWNrZXJDb250cm9sbGVyLmNsYXNzCmluZGV4IGQxNjkwYjUuLmJiZjU4NTEgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RyYWNrZXJDb250cm9sbGVyLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1RyYWNrZXJDb250cm9sbGVyLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckNvbnRyb2xsZXIuY2xhc3MKaW5kZXggMDVlNjI1Zi4uZGEyMzExZiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckNvbnRyb2xsZXIuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckNvbnRyb2xsZXIuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9Qcm9tb3Rpb25DcmVhdGVEVE8uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1Byb21vdGlvbkNyZWF0ZURUTy5jbGFzcwppbmRleCAzMDg3ZDM5Li41YmQwZGY3IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1Byb21vdGlvbkNyZWF0ZURUTy5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1Byb21vdGlvbkNyZWF0ZURUTy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1RvcnJlbnRVcGRhdGVEVE8uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1RvcnJlbnRVcGRhdGVEVE8uY2xhc3MKaW5kZXggNzI4NTg2OC4uYTdiODE3MCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9Ub3JyZW50VXBkYXRlRFRPLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vVG9ycmVudFVwZGF0ZURUTy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1RyYWNrZXJQcm90b2NvbC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vVHJhY2tlclByb3RvY29sLmNsYXNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZTlmYjQKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL1RyYWNrZXJQcm90b2NvbC5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3BhcmFtL0Fubm91bmNlUmVxdWVzdC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vQW5ub3VuY2VSZXF1ZXN0LmNsYXNzCmluZGV4IDM5MmU3MTUuLjJlNDIxNmUgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vQW5ub3VuY2VSZXF1ZXN0LmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vQW5ub3VuY2VSZXF1ZXN0LmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vcGFyYW0vVG9ycmVudFBhcmFtLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9wYXJhbS9Ub3JyZW50UGFyYW0uY2xhc3MKaW5kZXggYWQ4YTJjNS4uMjQzY2Q3NSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9wYXJhbS9Ub3JyZW50UGFyYW0uY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9wYXJhbS9Ub3JyZW50UGFyYW0uY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2R0by9wYXJhbS9Ub3JyZW50VXBsb2FkUGFyYW0uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3BhcmFtL1RvcnJlbnRVcGxvYWRQYXJhbS5jbGFzcwppbmRleCA0OWJiYzA5Li40MDkwYjAyIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3BhcmFtL1RvcnJlbnRVcGxvYWRQYXJhbS5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3BhcmFtL1RvcnJlbnRVcGxvYWRQYXJhbS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZHRvL3ZvL1RvcnJlbnRWTy5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vdm8vVG9ycmVudFZPLmNsYXNzCmluZGV4IGZhMjEyNGUuLjI4YWQ3MzYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vdm8vVG9ycmVudFZPLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9kdG8vdm8vVG9ycmVudFZPLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvRW50aXR5QmFzZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvRW50aXR5QmFzZS5jbGFzcwppbmRleCBhMTZjNTJhLi5lZmM0NWRmIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L0VudGl0eUJhc2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9FbnRpdHlCYXNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvRmF2b3JpdGVFbnRpdHkuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L0Zhdm9yaXRlRW50aXR5LmNsYXNzCmluZGV4IGEwYWNkOGIuLjFhMDBkZjIgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvRmF2b3JpdGVFbnRpdHkuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9GYXZvcml0ZUVudGl0eS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1Byb21vdGlvbi5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvUHJvbW90aW9uLmNsYXNzCmluZGV4IGU1ZGY2ZGQuLjBhOWZlYzkgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvUHJvbW90aW9uLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvUHJvbW90aW9uLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudEVudGl0eS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudEVudGl0eS5jbGFzcwppbmRleCBjZGYyMGRhLi5hMTMyNmI2IDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1RvcnJlbnRFbnRpdHkuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Ub3JyZW50RW50aXR5LmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudFJlcG9ydCRUb3JyZW50UmVwb3J0QnVpbGRlci5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudFJlcG9ydCRUb3JyZW50UmVwb3J0QnVpbGRlci5jbGFzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzg5MTlhCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Ub3JyZW50UmVwb3J0JFRvcnJlbnRSZXBvcnRCdWlsZGVyLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudFJlcG9ydC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVG9ycmVudFJlcG9ydC5jbGFzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGM4ODJlCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Ub3JyZW50UmVwb3J0LmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVXNlci5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVXNlci5jbGFzcwppbmRleCAzZWU4ZmZlLi5kNDY1YzUxIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1VzZXIuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9Vc2VyLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVmVyaWZpY2F0aW9uVG9rZW4uY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvZW50aXR5L1ZlcmlmaWNhdGlvblRva2VuLmNsYXNzCmluZGV4IDRiMWQzMTguLjFhMjgwODkgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9lbnRpdHkvVmVyaWZpY2F0aW9uVG9rZW4uY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2VudGl0eS9WZXJpZmljYXRpb25Ub2tlbi5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvcmVwb3NpdG9yeS9Ub3JyZW50UmVwb3J0UmVwb3NpdG9yeS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9yZXBvc2l0b3J5L1RvcnJlbnRSZXBvcnRSZXBvc2l0b3J5LmNsYXNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3ZmM5MDUKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvcmVwb3NpdG9yeS9Ub3JyZW50UmVwb3J0UmVwb3NpdG9yeS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Db21tZW50U2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0NvbW1lbnRTZXJ2aWNlLmNsYXNzCmluZGV4IDA0ZGYzZjguLjZjYWMyMGQgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0NvbW1lbnRTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0NvbW1lbnRTZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0R5bmFtaWNTZXJ2aWNlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvRHluYW1pY1NlcnZpY2UuY2xhc3MKaW5kZXggOGQyZGUzOS4uNTE3MGM3YiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvRHluYW1pY1NlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvRHluYW1pY1NlcnZpY2UuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvR3JvdXBTZXJ2aWNlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvR3JvdXBTZXJ2aWNlLmNsYXNzCmluZGV4IGIxZTMwY2UuLjAxN2QzOWMgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0dyb3VwU2VydmljZS5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Hcm91cFNlcnZpY2UuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvTGV2ZWxTZXJ2aWNlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvTGV2ZWxTZXJ2aWNlLmNsYXNzCmluZGV4IDc4NDZkZGEuLmJjZjMyNmYgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL0xldmVsU2VydmljZS5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9MZXZlbFNlcnZpY2UuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvUG9zdFNlcnZpY2UuY2xhc3MgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Qb3N0U2VydmljZS5jbGFzcwppbmRleCBjMjlkOWExLi4yMGYyNjNjIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Qb3N0U2VydmljZS5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Qb3N0U2VydmljZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Ub3JyZW50U2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzCmluZGV4IGMwY2ZlZWQuLmJhYzVkMzEgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzCisrKyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1RvcnJlbnRTZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJNZXNzYWdlU2VydmljZS5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJNZXNzYWdlU2VydmljZS5jbGFzcwppbmRleCAyZWJhZjg5Li43M2UwNjBmIDEwMDY0NAotLS0gYS90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9Vc2VyTWVzc2FnZVNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlck1lc3NhZ2VTZXJ2aWNlLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL1VzZXJTZXJ2aWNlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlclNlcnZpY2UuY2xhc3MKaW5kZXggOTVlNWE5YS4uM2YwMmM4ZSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlclNlcnZpY2UuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2UvVXNlclNlcnZpY2UuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvRW1haWxTZXJ2aWNlSW1wbC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL0VtYWlsU2VydmljZUltcGwuY2xhc3MKaW5kZXggMTdiNTM0My4uYWNmZjA5YiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvRW1haWxTZXJ2aWNlSW1wbC5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9FbWFpbFNlcnZpY2VJbXBsLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL1Byb21vdGlvblNlcnZpY2VJbXBsLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvUHJvbW90aW9uU2VydmljZUltcGwuY2xhc3MKaW5kZXggNjk4NDgzOS4uYmVlMzA1NiAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvUHJvbW90aW9uU2VydmljZUltcGwuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvUHJvbW90aW9uU2VydmljZUltcGwuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvVG9ycmVudFNlcnZpY2VJbXBsLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3NlcnZpY2Uvc2VydmljZUltcGwvVG9ycmVudFNlcnZpY2VJbXBsLmNsYXNzCmluZGV4IGZlY2IwYjcuLjIzNDFhZDEgMTAwNjQ0Ci0tLSBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9zZXJ2aWNlL3NlcnZpY2VJbXBsL1RvcnJlbnRTZXJ2aWNlSW1wbC5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3Qvc2VydmljZS9zZXJ2aWNlSW1wbC9Ub3JyZW50U2VydmljZUltcGwuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3V0aWxzL1Jlc3VsdC5jbGFzcyBiL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC91dGlscy9SZXN1bHQuY2xhc3MKaW5kZXggZTVjNWFhMC4uZWM0MjI3NSAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3V0aWxzL1Jlc3VsdC5jbGFzcworKysgYi90YXJnZXQvY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvdXRpbHMvUmVzdWx0LmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC9jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC91dGlscy9WZXJpZnlDb2RlLmNsYXNzIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3V0aWxzL1ZlcmlmeUNvZGUuY2xhc3MKaW5kZXggOTkxZTI3Ny4uZGIzMDNhOCAxMDA2NDQKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3V0aWxzL1ZlcmlmeUNvZGUuY2xhc3MKKysrIGIvdGFyZ2V0L2NsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L3V0aWxzL1ZlcmlmeUNvZGUuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvZmlsZXMvZmlsZXMudG9ycmVudCBiL3RhcmdldC9jbGFzc2VzL2ZpbGVzL2ZpbGVzLnRvcnJlbnQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwNDk3NGYuLjAwMDAwMDAKLS0tIGEvdGFyZ2V0L2NsYXNzZXMvZmlsZXMvZmlsZXMudG9ycmVudAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQ4OmFubm91bmNlMjI6aHR0cHM6Ly90cmFja2VyLmJ5ci5wdDEwOmNyZWF0ZWQgYnkyMTpxQml0dG9ycmVudCB2NC41LjMuMTAxMzpjcmVhdGlvbiBkYXRlaTE3NDc3MTc5MDFlNDppbmZvZDU6ZmlsZXNsZDY6bGVuZ3RoaTE3M2U0OnBhdGhsMTM6dmFsaWQudG9ycmVudGVlZTQ6bmFtZTU6ZmlsZXMxMjpwaWVjZSBsZW5ndGhpMTYzODRlNjpwaWVjZXMyMDov8e3oRfQ14zzy+x/s1YSfUaGW+2VlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvb3V0cHV0L3ZhbGlkLnRvcnJlbnQgYi90YXJnZXQvY2xhc3Nlcy9vdXRwdXQvdmFsaWQudG9ycmVudApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmE5MGU1Mi4uMDAwMDAwMAotLS0gYS90YXJnZXQvY2xhc3Nlcy9vdXRwdXQvdmFsaWQudG9ycmVudAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQxMDpjcmVhdGVkIGJ5MTg6cUJpdHRvcnJlbnQgdjUuMS4wMTM6Y3JlYXRpb24gZGF0ZWkxNzQ1OTQ4OTk1ZTQ6aW5mb2Q2Omxlbmd0aGkyMmU0Om5hbWUxNTpleGFtcGxlLnRvcnJlbnQxMjpwaWVjZSBsZW5ndGhpMTYzODRlNjpwaWVjZXMyMDpGbh7wthop+jzHCY4G5sJoFKN0bDc6cHJpdmF0ZWkxZWVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtYmVuY29kaW5nLTEuMy4wLVNOQVBTSE9ULmphciBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWJlbmNvZGluZy0xLjMuMC1TTkFQU0hPVC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNjN2ZjNgotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWJlbmNvZGluZy0xLjMuMC1TTkFQU0hPVC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtY2xpLTEuMy4wLVNOQVBTSE9ULmphciBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWNsaS0xLjMuMC1TTkFQU0hPVC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM1MWY3ZAotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWNsaS0xLjMuMC1TTkFQU0hPVC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtY2xpZW50LTEuMy4wLVNOQVBTSE9ULmphciBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWNsaWVudC0xLjMuMC1TTkFQU0hPVC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEzZDMxZgotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWNsaWVudC0xLjMuMC1TTkFQU0hPVC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtY29tbW9uLTEuMy4wLVNOQVBTSE9ULmphciBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWNvbW1vbi0xLjMuMC1TTkFQU0hPVC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0MGU3YQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LWNvbW1vbi0xLjMuMC1TTkFQU0hPVC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtbmV0d29yay0xLjAuamFyIGIvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtbmV0d29yay0xLjAuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NTExODEKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvY2xhc3Nlcy90dG9ycmVudC1uZXR3b3JrLTEuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtdGVzdC1hcGktMS4wLmphciBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LXRlc3QtYXBpLTEuMC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM0ZDU2YQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9jbGFzc2VzL3R0b3JyZW50LXRlc3QtYXBpLTEuMC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtdGVzdHMtMS4zLjAtU05BUFNIT1QuamFyIGIvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtdGVzdHMtMS4zLjAtU05BUFNIT1QuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3N2JmYjcKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvY2xhc3Nlcy90dG9ycmVudC10ZXN0cy0xLjMuMC1TTkFQU0hPVC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtdHJhY2tlci0xLjMuMC1TTkFQU0hPVC5qYXIgYi90YXJnZXQvY2xhc3Nlcy90dG9ycmVudC10cmFja2VyLTEuMy4wLVNOQVBTSE9ULmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjcwNDYxCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2NsYXNzZXMvdHRvcnJlbnQtdHJhY2tlci0xLjMuMC1TTkFQU0hPVC5qYXIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Db21tZW50Q29udHJvbGxlclRlc3QuY2xhc3MgYi90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0NvbW1lbnRDb250cm9sbGVyVGVzdC5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTZhOGVlYy4uMDAwMDAwMAotLS0gYS90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0NvbW1lbnRDb250cm9sbGVyVGVzdC5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvRHluYW1pY0NvbnRyb2xsZXJUZXN0LmNsYXNzIGIvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9EeW5hbWljQ29udHJvbGxlclRlc3QuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYzZiNmQuLjAwMDAwMDAKLS0tIGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9EeW5hbWljQ29udHJvbGxlclRlc3QuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0dyb3VwQ29udHJvbGxlclRlc3QuY2xhc3MgYi90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL0dyb3VwQ29udHJvbGxlclRlc3QuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwNDcyZmMuLjAwMDAwMDAKLS0tIGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Hcm91cENvbnRyb2xsZXJUZXN0LmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9MZXZlbENvbnRyb2xsZXJUZXN0LmNsYXNzIGIvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9MZXZlbENvbnRyb2xsZXJUZXN0LmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzA3N2ViLi4wMDAwMDAwCi0tLSBhL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvTGV2ZWxDb250cm9sbGVyVGVzdC5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvUG9zdENvbnRyb2xsZXJUZXN0LmNsYXNzIGIvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Qb3N0Q29udHJvbGxlclRlc3QuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlZTYxZDYuLjAwMDAwMDAKLS0tIGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Qb3N0Q29udHJvbGxlclRlc3QuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1Rhc2tDb250cm9sbGVyVGVzdC5jbGFzcyBiL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVGFza0NvbnRyb2xsZXJUZXN0LmNsYXNzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWJiZWVlLi4wMDAwMDAwCi0tLSBhL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVGFza0NvbnRyb2xsZXJUZXN0LmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Vc2VyQ29udHJvbGxlclRlc3QuY2xhc3MgYi90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyVGVzdC5jbGFzcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZWY5Ny4uMDAwMDAwMAotLS0gYS90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJDb250cm9sbGVyVGVzdC5jbGFzcworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3RhcmdldC90ZXN0LWNsYXNzZXMvY29tL2V4YW1wbGUvbXlwcm9qZWN0L2NvbnRyb2xsZXIvVXNlckZvbGxvd0NvbnRyb2xsZXJUZXN0LmNsYXNzIGIvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Vc2VyRm9sbG93Q29udHJvbGxlclRlc3QuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiODA3ODQuLjAwMDAwMDAKLS0tIGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Vc2VyRm9sbG93Q29udHJvbGxlclRlc3QuY2xhc3MKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJNZXNzYWdlQ29udHJvbGxlclRlc3QuY2xhc3MgYi90YXJnZXQvdGVzdC1jbGFzc2VzL2NvbS9leGFtcGxlL215cHJvamVjdC9jb250cm9sbGVyL1VzZXJNZXNzYWdlQ29udHJvbGxlclRlc3QuY2xhc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiYzQ5YjAuLjAwMDAwMDAKLS0tIGEvdGFyZ2V0L3Rlc3QtY2xhc3Nlcy9jb20vZXhhbXBsZS9teXByb2plY3QvY29udHJvbGxlci9Vc2VyTWVzc2FnZUNvbnRyb2xsZXJUZXN0LmNsYXNzCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXBsb2Fkcy9hdmF0YXJVcmwvMS5qcGcgYi91cGxvYWRzL2F2YXRhclVybC8xLmpwZwppbmRleCAxZDg1MjJmLi4yYTJkODY3IDEwMDY0NAotLS0gYS91cGxvYWRzL2F2YXRhclVybC8xLmpwZworKysgYi91cGxvYWRzL2F2YXRhclVybC8xLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL2F2YXRhclVybC8yLmpwZyBiL3VwbG9hZHMvYXZhdGFyVXJsLzIuanBnCmluZGV4IDFkODUyMmYuLjdhNTIxMWMgMTAwNjQ0Ci0tLSBhL3VwbG9hZHMvYXZhdGFyVXJsLzIuanBnCisrKyBiL3VwbG9hZHMvYXZhdGFyVXJsLzIuanBnCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3VwbG9hZHMvYXZhdGFyVXJsLzMuanBnIGIvdXBsb2Fkcy9hdmF0YXJVcmwvMy5qcGcKaW5kZXggMWQ4NTIyZi4uYjI4NTEyOSAxMDA2NDQKLS0tIGEvdXBsb2Fkcy9hdmF0YXJVcmwvMy5qcGcKKysrIGIvdXBsb2Fkcy9hdmF0YXJVcmwvMy5qcGcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvdXBsb2Fkcy9hdmF0YXJVcmwvNC5qcGcgYi91cGxvYWRzL2F2YXRhclVybC80LmpwZwppbmRleCA2Njk5ODU5Li5mNWI2OWU4IDEwMDY0NAotLS0gYS91cGxvYWRzL2F2YXRhclVybC80LmpwZworKysgYi91cGxvYWRzL2F2YXRhclVybC80LmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL2F2YXRhclVybC81LmpwZyBiL3VwbG9hZHMvYXZhdGFyVXJsLzUuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhYzViMGQKLS0tIC9kZXYvbnVsbAorKysgYi91cGxvYWRzL2F2YXRhclVybC81LmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL2dyb3Vwcy9nYW1lMS5qcGcgYi91cGxvYWRzL2dyb3Vwcy9nYW1lMS5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQzZGQyZgotLS0gL2Rldi9udWxsCisrKyBiL3VwbG9hZHMvZ3JvdXBzL2dhbWUxLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL2dyb3Vwcy9nYW1lMi5qcGcgYi91cGxvYWRzL2dyb3Vwcy9nYW1lMi5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODg0ODAzNQotLS0gL2Rldi9udWxsCisrKyBiL3VwbG9hZHMvZ3JvdXBzL2dhbWUyLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL2dyb3Vwcy9ncm91cC5qcGcgYi91cGxvYWRzL2dyb3Vwcy9ncm91cC5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFkNDQxYwotLS0gL2Rldi9udWxsCisrKyBiL3VwbG9hZHMvZ3JvdXBzL2dyb3VwLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL2dyb3Vwcy9ncm91cDIuanBnIGIvdXBsb2Fkcy9ncm91cHMvZ3JvdXAyLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWNhYWU3Ci0tLSAvZGV2L251bGwKKysrIGIvdXBsb2Fkcy9ncm91cHMvZ3JvdXAyLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL3Bvc3QvZDlkMzEyODJjNGQ3YTYxYmZjMmM2OTE4ODFjMjlhMS5qcGcgYi91cGxvYWRzL3Bvc3QvZDlkMzEyODJjNGQ3YTYxYmZjMmM2OTE4ODFjMjlhMS5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIzYjZlNQotLS0gL2Rldi9udWxsCisrKyBiL3VwbG9hZHMvcG9zdC9kOWQzMTI4MmM0ZDdhNjFiZmMyYzY5MTg4MWMyOWExLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS91cGxvYWRzL3Bvc3QvcG9zdDIuanBnIGIvdXBsb2Fkcy9wb3N0L3Bvc3QyLmpwZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGE0NmNmCi0tLSAvZGV2L251bGwKKysrIGIvdXBsb2Fkcy9wb3N0L3Bvc3QyLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCg==