LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIFJlZ2VkaXQgQ3plY2ggcmVzb3VyY2VzCiAqCiAqIENvcHlyaWdodCAyMDAyIFJvYmVydCBEaWNrZW5zb24KICogQ29weXJpZ2h0IDIwMDQgRGF2aWQgS3JlZGJhCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19DWkVDSCwgU1VCTEFOR19ERUZBVUxUCgovKiBDemVjaCBzdHJpbmdzIGluIENQMTI1MCAqLwoKLyoKICogTWVudQogKi8KCgpJRFJfUkVHRURJVF9NRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImUmVnaXN0ciIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZJbXBvcnRvdmF0IHNvdWJvciByZWdpc3RydS4uLiIsICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRQogICAgICAgIE1FTlVJVEVNICImRXhwb3J0b3ZhdCBzb3Vib3IgcmVnaXN0cnUuLi4iLCAgICBJRF9SRUdJU1RSWV9FWFBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlD4aXBvaml0IHJlZ2lzdHIgdiBz7XRpLi4uIiwgSURfUkVHSVNUUllfQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIk8mZHBvaml0IHPtnW92/SByZWdpc3RyLi4uIiwgSURfUkVHSVNUUllfRElTQ09OTkVDVE5FVFdPUktSRUdJU1RSWSwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZUaXNrXHRDdHJsK1AiLCAgICAgICAgICAgICAgSURfUkVHSVNUUllfUFJJTlQsIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS29uZWMiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUkVHSVNUUllfRVhJVAogICAgRU5ECiAgICBQT1BVUCAiJtpwcmF2eSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlombexuaXQiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIiZOb3b9IgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICImS2zt6CIsICAgICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfS0VZCiAgICAgICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgICAgICBNRU5VSVRFTSAi2CZldOx6Y2924SBwb2xvnmthIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19TVFJJTkdWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkJpbuFybu0gcG9sb55rYSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfQklOQVJZVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZEV09SRCBwb2xvnmthIiwgICAgICAgICAgICAgICAgSURfRURJVF9ORVdfRFdPUkRWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJk11bHRpIFN0cmluZyBWYWx1ZSIsICAgICBJRF9FRElUX05FV19NVUxUSV9TVFJJTkdWQUxVRQogICAgICAgIEVORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU21hemF0XHREZWwiLCAgICAgICAgICAgICAgICBJRF9FRElUX0RFTEVURQogICAgICAgIE1FTlVJVEVNICJQ+GUmam1lbm92YXRcdEYyIiwgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZLb3Dtcm92YXQgbuF6ZXYga2zt6GUiLCAgICAgICAgICAgICAgSURfRURJVF9DT1BZS0VZTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImTmFq7XRcdEN0cmwrRiIsICAgICAgICAgICAgICAgSURfRURJVF9GSU5ELCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSAiTmFq7XQgJmRhbJrtXHRGMyIsICAgICAgICAgICAgICBJRF9FRElUX0ZJTkRORVhULCBHUkFZRUQKICAgIEVORAogICAgUE9QVVAgIiZab2JyYXppdCIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlAmYW5lbCBTdGF0dXMiLCAgICAgICAgICAgICAgICAgSURfVklFV19TVEFUVVNCQVIKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUm96ZOwmbGl0IiwgICAgICAgICAgICAgICAgICAgICAgSURfVklFV19TUExJVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQ+GVrJnJlc2xpdFx0RjUiLCAgICAgICAgICAgICAgICBJRF9WSUVXX1JFRlJFU0gKICAgIEVORAogICAgUE9QVVAgIiZPYmztYmVu6SIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIlD4aWQmYXQgayBvYmztYmVu/W0uLi4iLCAgICAgICAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMKICAgICAgICBNRU5VSVRFTSAiT2RlYiZyYXQgb2Js7WJlbukuLi4iLCAgICAgICAgICAgSURfRkFWT1JJVEVTX1JFTU9WRUZBVk9SSVRFCiAgICBFTkQKICAgIFBPUFVQICImTuFwb3bsZGEiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJPYnNhJmhcdEYxIiwgICAgICAgICAgICBJRF9IRUxQX0hFTFBUT1BJQ1MKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk8gYXBsaWthY2kgUmVnaXN0cnkgRWRpdG9yIiwgICAgICBJRF9IRUxQX0FCT1VUCiAgICBFTkQKRU5ECgpJRFJfUE9QVVBfTUVOVVMgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogIFBPUFVQICIiCiAgQkVHSU4KCU1FTlVJVEVNICImVXByYXZpdCIsICAgICAgICAgICAgICAgICAgICAgSURfRURJVF9NT0RJRlkKCU1FTlVJVEVNICJVcHJhdml0IGJpbuFybu0gZGF0YSIsICAgICAgICAgIElEX0VESVRfTU9ESUZZX0JJTgoJTUVOVUlURU0gU0VQQVJBVE9SCglNRU5VSVRFTSAiJlNtYXphdFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKCU1FTlVJVEVNICImUPhlam1lbm92YXQiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfUkVOQU1FCiAgRU5ECiAgUE9QVVAgIiIKICBCRUdJTgogICAgICAgIFBPUFVQICImTm92/SIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJkts7egiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gItgmZXTsemNvduEgcG9sb55rYSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZCaW5hcm7tIHBvbG+ea2EiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQgcG9sb55rYSIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZNdWx0aSBTdHJpbmcgVmFsdWUiLCAgICAgSURfRURJVF9ORVdfTVVMVElfU1RSSU5HVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNtYXphdFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiUPhlJmptZW5vdmF0XHRGMiIsICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRXhwb3J0Li4uIiwgICAgICAgICAgICAgICAgICBJRF9FRElUX0VYUE9SVAogICAgICAgIE1FTlVJVEVNICImS29w7XJvdmF0IG7hemV2IGts7ehlIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk5hau10XHRDdHJsK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgRU5ECkVORAoKCi8qCiAqIERpYWxvZwogKi8KCklERF9FRElUX1NUUklORyBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCA3NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi2nByYXZhIPhldOx6Y2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTuF6ZXY6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJPYnNhaDoiLElEQ19TVEFUSUMsNSwzMCwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9EQVRBLDUsNDAsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwKICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssMTQwLDYwLDMwLDExLFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgIlN0b3JubyIsSURDQU5DRUwsMTc1LDYwLDMwLDExLFdTX0dST1VQCkVORAoKSUREX0VESVRfRFdPUkQgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgMTAwClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19OT0lETEVNU0cgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLacHJhdmEgRFdPUkQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICAiTuF6ZXY6IixJRENfU1RBVElDLDUsNSwxMTksOAogICAgRURJVFRFWFQgICAgICAgIElEQ19WQUxVRV9OQU1FLDUsMTUsMjAwLDEyLCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwgRVNfQVVUT0hTQ1JPTEwgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJPYnNhaDoiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJa4WtsYWQiLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICKaZXN0buFjdGtvdv0iLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAiRGVzaXRrb3b9IiwgSURDX0RXT1JEX0RFQywgMTMwLCA1MiwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICJTdG9ybm8iLElEQ0FOQ0VMLDE3NSw4MCwzMCwxMSxXU19HUk9VUApFTkQKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfTElTVF9DT0xVTU5fTkFNRSAgICAiTuF6ZXYiCiAgICBJRFNfTElTVF9DT0xVTU5fVFlQRSAgICAiVHlwIgogICAgSURTX0xJU1RfQ09MVU1OX0RBVEEgICAgIk9ic2FoIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAiRWRpdG9yIHJlZ2lzdHJ1IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9NRU5VICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gcHLhY2kgc2Ugc3lyb3b9bSByZWdpc3RyZW0iCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gZWRpdGFjaSBrbO3o+SBhIHBvbG+eZWsiCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8g+nByYXZ1IHZ6aGxlZHUgb2tuYSByZWdlZGl0dSIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyBw+O1zdHVwIGsg6GFzdG8gdZ7tdmFu/W0ga2zt6PltIgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgIk9ic2FodWplIHD47WthenkgcHJvIHpvYnJhemVu7SBu4XBvduxkeSBhIGluZm9ybWFj7W8gZWRpdG9ydSByZWdpc3RydSIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyB2eXR24fhlbu0gbm92/WNoIGts7ej5IGEgcG9sb55layIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRURJVF9NT0RJRlkgICAgICAgICAgIlpt7G7tIGRhdGEiCiAgICBJRF9FRElUX05FV19LRVkgICAgICAgICAiUPhpZOEgbm92/SBrbO3oIgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIlD4aWThIG5vdm91IPhldOx6Y292b3UgcG9sb55rdSIKICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFICJQ+Glk4SBub3ZvdSBiaW7hcm7tIHBvbG+ea3UiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiUPhpZOEgbm92b3UgRFdPUkQgcG9sb55rdSIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiSW1wb3J0dWplIHRleHRvdv0gc291Ym9yIHJlZ2lzdHJ1IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwb3J0dWplIGNlbP0gcmVnaXN0ciBuZWJvIGplaG8g6OFzdCBkbyB0ZXh0b3bpaG8gc291Ym9ydSIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQ+Glwb2rtIHNlIGsgcmVnaXN0cnUgbmEgamlu6W0gcG/o7XRh6GkiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2Rwb2rtIHNlIG9kIHZ6ZOFsZW7sIHD4aXBvamVu6WhvIHJlZ2lzdHJ1IgogICAgSURfUkVHSVNUUllfUFJJTlQgICAgICAgIlZ5dGlza25lIOjhc3QgbmVibyBjZWz9IHJlZ2lzdHIiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJab2JyYXrtIGluZm9ybWFjZSBvIHByb2dyYW11LCBqZWhvIHZlcnppIGEgY29weXJpZ2h0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiVWtvbujtIHJlZ2VkaXQiCiAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMgIlD4aWThIGts7eggayBvYmztYmVu/W0iCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIk9kZWJlcmUga2zt6CB6IG9ibO1iZW79Y2giCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiVWvhnmUgbmVibyBza3J5amUgc3RhdHVzIGJhciIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJDaGFuZ2UgcG9zaXRpb24gb2Ygc3BsaXQgYmV0d2VlbiB0d28gcGFuZXMiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiUPhla3Jlc2ztIG9rbm8iCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAiU21hnmUgdnlicmFu6SIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJQ+GVqbWVudWplIHZ5YnJhbukiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiVmxvnu0gbuF6ZXYgdnlicmFu6WhvIGts7ehlIGRvIHNjaHLhbmt5IgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgIk5hamRlIHRleHRvdv0g+GV07HplYyB2IGts7ehpLCBwb2xvnmNlIG5lYm8gZGF0ZWNoIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIk5hamRlIGRhbJrtIHb9c2t5dCB0ZXh0dSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SCQkgICAgIkNoeWJhIgogICAgSURTX0JBRF9LRVkJCSAgICAiTmVsemUgbmFq7XQga2zt6CAnJXMnIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIk5lbHplIG5hau10IHBvbG+ea3UgJyVzJyIKICAgIElEU19VTlNVUFBPUlRFRF9UWVBFICAgICJOZW1vaHUgdXByYXZpdCBrbO3oZSB0b2hvdG8gdHlwdSAoJXUpIgogICAgSURTX1RPT19CSUdfVkFMVUUgICAgICAgIkhvZG5vdGEgamUgcPjtbGmaIHZlbGvhICgldSkiCiAgICBJRFNfREVMRVRFX0JPWF9USVRMRSAgICAiUG90dnLvdGUgc21heuFu7SBwb2xvnmt5IgogICAgSURTX0RFTEVURV9CT1hfVEVYVCAgICAgIk9wcmF2ZHUgY2hjZXRlIHNtYXphdCBwb2xvnmt1ICclcyc/IgogICAgSURTX0RFTEVURV9CT1hfVEVYVF9NVUxUSVBMRSAiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGVzZSB2YWx1ZXM/IgogICAgSURTX05FV0tFWSAgICAgICAgICAgICAgIk5vdv0ga2zt6CAjJWQiCiAgICBJRFNfTkVXVkFMVUUgICAgICAgICAgICAiTm924SBwb2xvnmthICMlZCIKICAgIElEU19OT1RGT1VORCAgICAgICAgICAgICJTZWFyY2ggc3RyaW5nICclcycgbm90IGZvdW5kIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCg==