IiBNZW51IFRyYW5zbGF0aW9uczoJSXRhbGlhbiAvIEl0YWxpYW5vCiIgTWFpbnRhaW5lcjoJCUFudG9uaW8gQ29sb21ibyA8YXpjMTAwQGdtYWlsLmNvbT4KIgkJCVZsYWQgU2FuZHJpbmkgPHZsYWQuZ2VudGx5QGdtYWlsLmNvbT4KIiBMYXN0IENoYW5nZToJMjAwNiBBcHIgMDMKCiIgUXVpdCB3aGVuIG1lbnUgdHJhbnNsYXRpb25zIGhhdmUgYWxyZWFkeSBiZWVuIGRvbmUuCmlmIGV4aXN0cygiZGlkX21lbnVfdHJhbnMiKQogIGZpbmlzaAplbmRpZgpsZXQgZGlkX21lbnVfdHJhbnMgPSAxCgpzY3JpcHRlbmNvZGluZyBpc28tODg1OS0xCgoiIEhlbHAgLyBBaXV0bwptZW51dCAmSGVscAkJCSZBaXV0bwptZW51dCAmT3ZlcnZpZXc8VGFiPjxGMT4JJlBhbm9yYW1pY2E8VGFiPjxGMT4KbWVudXQgJlVzZXJcIE1hbnVhbAkJTWFudWFsZVwgJlV0ZW50ZQptZW51dCAmSG93LXRvXCBsaW5rcwlDbyZtZVwuXC5cLgoibWVudXQgJkdVSQkJCSZHVUkKbWVudXQgJkNyZWRpdHMJCUNyJmVkaXRpCm1lbnV0IENvJnB5aW5nCQlDJm9waWUKbWVudXQgJlNwb25zb3IvUmVnaXN0ZXIgJlNwb25zb3IvUmVnaXN0cmF6aW9uZQptZW51dCBPJnJwaGFucwkJTyZyZmFuaQoibWVudXQgJkZpbmRcLlwuXC4JCSZDZXJjYVwuXC5cLgoiTk9UQTogZmEgY29uZmxpdHRvIGNvbiAnY2VyY2EnIG5lbCBtZW51ICdtb2RpZmljYScKbWVudXQgJlZlcnNpb24JCSZWZXJzaW9uZQptZW51dCAmQWJvdXQJCSZJbnRybwoKbGV0IGc6bWVudXRyYW5zX2hlbHBfZGlhbG9nID0gIkJhdHRpIHVuIGNvbWFuZG8gbyB1bmEgcGFyb2xhIHBlciBjZXJjYXJlIGFpdXRvOlxuXG5QcmVtZXR0aSBpXyBwZXIgY29tYW5kaSBpbiBtb2RhbGl04CBJbnB1dCAoYWQuZXMuOiBpX0NUUkwtWClcblByZW1ldHRpIGNfIHBlciBjb21hbmRpIGNoZSBlZGl0YW5vIGxhIGxpbmVhLWNvbWFuZGkgKGFkLmVzLjogY188RGVsPilcblByZW1ldHRpICcgcGVyIHVuIG5vbWUgZGkgb3B6aW9uZSAoYWQuZXMuOiAnc2hpZnR3aWR0aCcpIgoKIiBGaWxlIG1lbnUKIm1lbnV0ICZGaWxlCQkJCSZGaWxlCiIKbWVudXQgJk9wZW5cLlwuXC48VGFiPjplCQkmQXByaVwuXC5cLjxUYWI+OmUKbWVudXQgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcAlBJnByaVwgbnVvdmFcIEZpbmVzdHJhXC5cLlwuPFRhYj46c3AKbWVudXQgT3BlblwgVGFiXC5cLlwuPFRhYj46dGFibmV3IEFwcmlcIG51b3ZhXCAmTGluZ3VldHRhXC5cLlwuPFRhYj46dGFibmV3Cm1lbnV0ICZOZXc8VGFiPjplbmV3CQkmTnVvdm88VGFiPjplbmV3Cm1lbnV0ICZDbG9zZTxUYWI+OmNsb3NlCQkmQ2hpdWRpPFRhYj46Y2xvc2UKbWVudXQgJlNhdmU8VGFiPjp3CQkJJlNhbHZhPFRhYj46dwptZW51dCBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJU2FsdmFcICZjb25cIG5vbWVcLlwuXC48VGFiPjpzYXYKCmlmIGhhcygiZGlmZiIpCiAgICBtZW51dCBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4JRmluZXN0cmFcICZEaWZmZXJlbnphXCBjb25cLlwuXC4KICAgIG1lbnV0IFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4JRmluZXN0cmFcIFBhdGMmaFwgZGFcLlwuXC4KZW5kaWYKCm1lbnV0ICZQcmludAkJCVMmdGFtcGEKbWVudXQgU2EmdmUtRXhpdDxUYWI+OndxYQkJU2EmbHZhXCBlZFwgZXNjaTxUYWI+OndxYQptZW51dCBFJnhpdDxUYWI+OnFhCQkJJkVzY2k8VGFiPjpxYQoKIiBFZGl0IC8gTW9kaWZpY2EKCm1lbnV0ICZFZGl0CQkJCSZNb2RpZmljYQptZW51dCAmVW5kbzxUYWI+dQkJCSZBbm51bGxhPFRhYj51Cm1lbnV0ICZSZWRvPFRhYj5eUgkJCSZSaXByaXN0aW5hPFRhYj5eUgptZW51dCBSZXAmZWF0PFRhYj5cLgkJUmkmcGV0aTxUYWI+XC4KbWVudXQgQ3UmdDxUYWI+Iit4CQkJJlRhZ2xpYTxUYWI+Iit4Cm1lbnV0ICZDb3B5PFRhYj4iK3kJCQkmQ29waWE8VGFiPiIreQptZW51dCAmUGFzdGU8VGFiPiIrZ1AJCSZJbmNvbGxhPFRhYj4iK2dQCm1lbnV0IFB1dFwgJkJlZm9yZTxUYWI+W3AJCSZNZXR0aVwgZGF2YW50aTxUYWI+W3AKbWVudXQgUHV0XCAmQWZ0ZXI8VGFiPl1wCQlNJmV0dGlcIGRpZXRybzxUYWI+XXAKbWVudXQgJkRlbGV0ZTxUYWI+eAkJCUNhbmNlJmxsYTxUYWI+eAptZW51dCAmU2VsZWN0XCBhbGw8VGFiPmdnVkcJCVNlbGV6aW9uYVwgJnR1dHRvPFRhYj5nZ1ZHCm1lbnV0ICZTZWxlY3RcIEFsbDxUYWI+Z2dWRwkJU2VsZXppb25hXCAmdHV0dG88VGFiPmdnVkcKbWVudXQgJkZpbmRcLlwuXC4JCQkmQ2VyY2FcLlwuXC4KbWVudXQgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLgkmU29zdGl0dWlzY2lcLlwuXC4KbWVudXQgU2V0dGluZ3NcICZXaW5kb3cJCSZGaW5lc3RyYVwgSW1wb3N0YXppb25pCm1lbnV0IFN0YXJ0dXBcICZTZXR0aW5ncwlJbXBvc3RhemlvbmlcIGRpXCAmQXZ2aW8KbWVudXQgJkdsb2JhbFwgU2V0dGluZ3MJCUltcG9zdGF6aW9uaVwgJkdsb2JhbGkKbWVudXQgUXVlc3Rpb24JCQlEb21hbmRhCgoiIEVkaXQgLyBNb2RpZmljYSBJbXBvc3RhemlvbmkgR2xvYmFsaQptZW51dCAmR2xvYmFsXCBTZXR0aW5ncwlJbXBvc3RhemlvbmlcICZHbG9iYWxpCm1lbnV0IFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzIQkmRXZpZGVuemlhXCByaWNlcmNoZVwgU+wvTm88VGFiPjpzZXRcIGhscyEKbWVudXQgVG9nZ2xlXCAmSWdub3JlLWNhc2U8VGFiPjpzZXRcIGljIQkJJklnbm9yYVwgbWFpdXNjXC4tbWludXNjXC5cIFPsL05vPFRhYj46c2V0XCBpYyEKbWVudXQgVG9nZ2xlXCAmU2hvd21hdGNoPFRhYj46c2V0XCBzbSEJSW5kaWNhXCAmQ29ycmlzcG9uZGVudGVcIFPsL05vPFRhYj46c2V0XCBzbSEKCm1lbnV0ICZDb250ZXh0XCBsaW5lcwkmTGluZWVcIGRpXCBjb250ZXN0bwptZW51dCAmVmlydHVhbFwgRWRpdAkJJkVkaXRcIFZpcnR1YWxlCgptZW51dCBOZXZlcgkJTWFpCm1lbnV0IEJsb2NrXCBTZWxlY3Rpb24JCVNlbGV6aW9uZVwgQmxvY2NvCm1lbnV0IEluc2VydFwgbW9kZQlNb2RhbGl04FwgSW5zZXJpbWVudG8KbWVudXQgQmxvY2tcIGFuZFwgSW5zZXJ0CVNlbGV6aW9uZVwgQmxvY2NvK0luc2VyaW1lbnRvCm1lbnV0IEFsd2F5cwkJU2VtcHJlCgptZW51dCBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQkmTW9kYWxpdOBcIEluc2VyaW1lbnRvXCBT7C9ObzxUYWI+OnNldFwgaW0hCm1lbnV0IFRvZ2dsZVwgVmlcIEMmb21wYXRpYmxlPFRhYj46c2V0XCBjcCEJQyZvbXBhdGliaWxlXCBWaVwgU+wvTm88VGFiPjpzZXRcIGNwIQptZW51dCBTZWFyY2hcICZQYXRoXC5cLlwuCSZQZXJjb3Jzb1wgZGlcIHJpY2VyY2FcLlwuXC4KbWVudXQgVGEmZ1wgRmlsZXNcLlwuXC4JCUZpbGVcIFRhJmdcLlwuXC4KIgoiIE9wemlvbmkgR1VJCm1lbnV0IFRvZ2dsZVwgJlRvb2xiYXIJQmFycmFcIFMmdHJ1bWVudGlcIFPsL05vCm1lbnV0IFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCUJhcnJhXCBTY29ycmltZW50b1wgaW5cICZmb25kb1wgU+wvTm8KbWVudXQgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyCUJhcnJhXCBTY29ycmltZW50b1wgYVwgJnNpbmlzdHJhXCBT7C9ObwptZW51dCBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyCUJhcnJhXCBTY29ycmltZW50b1wgYVwgJmRlc3RyYVwgU+wvTm8KCmxldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJCYXR0aSBwZXJjb3JzbyBkaSByaWNlcmNhIHBlciBpIGZpbGUuXG5TZXBhcmEgZnJhIGxvcm8gaSBub21pIGRpIGRpcmVjdG9yeSBjb24gdW5hIHZpcmdvbGEuIgpsZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAiQmF0dGkgbm9tZSBkZWkgZmlsZSBkaSB0YWcuXG5TZXBhcmEgZnJhIGxvcm8gaSBub21pIGRpIGRpcmVjdG9yeSBjb24gdW5hIHZpcmdvbGEuIgoKIiBFZGl0IC8gSW1wb3N0YXppb25pIEZpbGUKbWVudXQgRiZpbGVcIFNldHRpbmdzCSZJbXBvc3RhemlvbmlcIEZpbGUKCiIgQm9vbGVhbiBvcHRpb25zCm1lbnV0IFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhCSZOdW1lcmF6aW9uZVwgXCBT7C9ObzxUYWI+OnNldFwgbnUhCm1lbnV0IFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQlNb2RhbGl04FwgJkxpc3RhXCBT7C9ObzxUYWI+OnNldFwgbGlzdCEKbWVudXQgVG9nZ2xlXCBMaW5lXCAmV3JhcDxUYWI+OnNldFwgd3JhcCEJCUxpbmVlXCAmQ29udGludWF0ZVwgU+wvTm88VGFiPjpzZXRcIHdyYXAhCm1lbnV0IFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhCUFcIGNhcG9cIGFsbGFcICZwYXJvbGFcIFPsL05vPFRhYj46c2V0XCBsYnIhCm1lbnV0IFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkJJkVzcGFuZGlcIFRhYnVsYXppb25lXCBT7C9ObzxUYWI+OnNldFwgZXQhCm1lbnV0IFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJSW5kZW50YXppb25lXCAmYXV0b21hdGljYVwgU+wvTm88VGFiPjpzZXQgYWkhCm1lbnV0IFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCUluZGVudGF6aW9uZVwgc3RpbGVcICZDXCBT7C9ObzxUYWI+OnNldCBjaW4hCgoiIGFsdHJlIG9wemlvbmkKbWVudXQgJlNoaWZ0d2lkdGgJCQkmU3BhemlcIFJpZW50cmFuemEKbWVudXQgU29mdFwgJlRhYnN0b3AJCSZUYWJ1bGF6aW9uZVwgU29mdHdhcmUKbWVudXQgVGUmeHRcIFdpZHRoXC5cLlwuCQlMdW5naGUmenphXCBSaWdhXC5cLlwuCm1lbnV0ICZGaWxlXCBGb3JtYXRcLlwuXC4JRm9ybWF0b1wgJkZpbGVcLlwuXC4KCmxldCBnOm1lbnV0cmFuc190ZXh0d2lkdGhfZGlhbG9nID0gIkJhdHRpIG51b3ZhIGx1bmdoZXp6YSBsaW5lYSAoMCBwZXIgaW5pYmlyZSBsYSBmb3JtYXR0YXppb25lKTogIgoKbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIlNjZWdsaSBmb3JtYXRvIGNvbiBjdWkgc2NyaXZlcmUgaWwgZmlsZSIKCm1lbnV0IEMmb2xvclwgU2NoZW1lCQlTY2hlbWFcIEMmb2xvcmkKCm1lbnV0IGRlZmF1bHQJCW5vcm1hbGUKbWVudXQgREVGQVVMVAkJTk9STUFMRQptZW51dCBldmVuaW5nCQlub3R0dXJubwptZW51dCBFVkVOSU5HCQlOT1RUVVJOTwptZW51dCBtb3JuaW5nCQlkaXVybm8KbWVudXQgTU9STklORwkJRElVUk5PCm1lbnV0IHNoaW5lCQlicmlsbGFudGUKbWVudXQgU0hJTkUJCUJSSUxMQU5URQptZW51dCBwZWFjaHB1ZmYJCXBlc2NhCm1lbnV0IFBFQUNIUFVGCQlQRVNDQQoKbWVudXQgJktleW1hcAkJCQkmTWFwcGFcIHRhc3RpZXJhCgptZW51dCBOb25lCQluZXNzdW5hCm1lbnV0IGFjY2VudHMJCWFjY2VudGkKbWVudXQgQUNDRU5UUwkJQUNDRU5USQptZW51dCBoZWJyZXcJCWVicmFpY28KbWVudXQgSEVCUkVXCQlFQlJBSUNPCm1lbnV0IGhlYnJld19pc28tODg1OS04IGVicmFpY29faXNvLTg4NTktOAptZW51dCBoZWJyZXdfY3AxMjU1CWVicmFpY29fY3AxMjU1Cm1lbnV0IGhlYnJld191dGYtOAllYnJhaWNvX3V0Zi04Cm1lbnV0IGhlYnJld3BfaXNvLTg4NTktOCBlYnJhaWNvX3BfaXNvLTg4NTktOAptZW51dCBIRUJSRVctCQlFQlJBSUNPKwptZW51dCBoZWJyZXdwCQlFQlJBSUNPUAptZW51dCBIRUJSRVdQCQlFQlJBSUNPUAptZW51dCBydXNzaWFuLWpjdWtlbgljaXJpbGxpY28tamN1a2VuCm1lbnV0IHJ1c3NpYW4tamN1a2Vud2luCWNpcmlsbGljby1qY3VrZW4td2luCm1lbnV0IFJVU1NJQU4JCUNJUklMTElDTwptZW51dCBSVVNTSUFOLQkJQ0lSSUxMSUNPLQoKbWVudXQgU2VsZWN0XCBGbyZudFwuXC5cLgkJU2NlZ2xpXCAmRm9udFwuXC5cLgoKIiBNZW51IHN0cnVtZW50aSBwcm9ncmFtbWF6aW9uZQptZW51dCAmVG9vbHMJCQkmU3RydW1lbnRpCgptZW51dCAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dCSZWYWlcIGFcIHF1ZXN0YVwgVGFnPFRhYj5nXl0KbWVudXQgSnVtcFwgJmJhY2s8VGFiPl5UCQlUb3JuYVwgJmluZGlldHJvPFRhYj5eVAptZW51dCBCdWlsZFwgJlRhZ3NcIEZpbGUJCUNvc3RydWlzY2lcIEZpbGVcICZUYWdzXAoKIiBNZW51IG9ydG9ncmFmaWEgLyBTcGVsbGluZwptZW51dCAmU3BlbGxpbmcJCQkmT3J0b2dyYWZpYQoKbWVudXQgJlNwZWxsXCBDaGVja1wgT24JCQlBdHRpdmFcICZDb250cm9sbG9cIG9ydG9ncmFmaWNvCm1lbnV0IFNwZWxsXCBDaGVja1wgJk9mZgkJJkRpc2F0dGl2YVwgY29udHJvbGxvXCBvcnRvZ3JhZmljbwptZW51dCBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJRXJyb3JlXCAmU2VndWVudGU8dGFiPl1zCm1lbnV0IFRvXCAmUHJldmlvdXNcIGVycm9yPFRhYj5bcwlFcnJvcmVcICZQcmVjZWRlbnRlPHRhYj5bcwptZW51dCBTdWdnZXN0XCAmQ29ycmVjdGlvbnM8VGFiPno9CSZTdWdnZXJpbWVudGk8VGFiPno9Cm1lbnV0ICZSZXBlYXRcIGNvcnJlY3Rpb248VGFiPjpzcGVsbHJlcGFsbAkmUmlwZXRpXCBjb3JyZXppb25lPFRhYj46c3BlbGxyZXBhbGwKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbiIJCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuIgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2F1IglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9hdSIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fY2EiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fZ2IiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX2diIgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX256IglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9ueiIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fdXMiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXQiCQlJbXBvc3RhXCBsaW5ndWFcIGFcICJpdCIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJpdF9pdCIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiaXRfaXQiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXRfY2giCUltcG9zdGFcIGxpbmd1YVwgYVwgIml0X2NoIgptZW51dCAmRmluZFwgTW9yZVwgTGFuZ3VhZ2VzCQkmVHJvdmFcIGFsdHJlXCBsaW5ndWUKCiIgTWVudSBwaWVnYXR1cmUgLyBGb2xkCmlmIGhhcygiZm9sZGluZyIpCiAgbWVudXQgJkZvbGRpbmcJCQkJCSZQaWVnYXR1cmUKICAiIGFwcmkgZSBjaGl1ZGkgcGllZ2F0dXJlCiAgbWVudXQgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkJCVBpJmVnYXR1cmVcIFPsL05vPFRhYj56aQogIG1lbnV0ICZWaWV3XCBDdXJzb3JcIExpbmU8VGFiPnp2CQkJJlZlZGlcIGxpbmVhXCBjb2xcIEN1cnNvcmU8VGFiPnp2CiAgbWVudXQgVmllJndcIEN1cnNvclwgTGluZVwgb25seTxUYWI+ek16eAkJVmVkaVwgJnNvbG9cIGxpbmVhXCBjb2xcIEN1cnNvcmU8VGFiPnpNengKICBtZW51dCBDJmxvc2VcIG1vcmVcIGZvbGRzPFRhYj56bQkJCUMmaGl1ZGlcIHBp+VwgUGllZ2F0dXJlPFRhYj56bQogIG1lbnV0ICZDbG9zZVwgYWxsXCBmb2xkczxUYWI+ek0JCQkmQ2hpdWRpXCB0dXR0ZVwgbGVcIFBpZWdhdHVyZTxUYWI+ek0KICBtZW51dCBPJnBlblwgbW9yZVwgZm9sZHM8VGFiPnpyCQkJQSZwcmlcIHBp+VwgUGllZ2F0dXJlPFRhYj56cgogIG1lbnV0ICZPcGVuXCBhbGxcIGZvbGRzPFRhYj56UgkJCSZBcHJpXCB0dXR0ZVwgbGVcIFBpZWdhdHVyZTxUYWI+elIKICAiIG1ldG9kbyBwaWVnYXR1cmEKICBtZW51dCBGb2xkXCBNZXQmaG9kCQkJCU1ldG8mZG9cIFBpZWdhdHVyYQogIG1lbnV0IE0mYW51YWwJCQkJCSZNYW51YWxlCiAgbWVudXQgSSZuZGVudAkJCQkJJk5pZGlmaWNhemlvbmUKICBtZW51dCBFJnhwcmVzc2lvbgkJCQkJJkVzcHJlc3Npb25lXCBSZWdcLgogIG1lbnV0IFMmeW50YXgJCQkJCSZTaW50YXNzaQogIG1lbnV0ICZEaWZmCQkJCQkmRGlmZmVyZW56YQogIG1lbnV0IE1hJnJrZXIJCQkJCU1hciZjYXR1cmEKICAiIGNyZWEgZSBjYW5jZWxsYSBwaWVnYXR1cmUKICBtZW51dCBDcmVhdGVcICZGb2xkPFRhYj56ZgkJCUNyZWFcICZQaWVnYXR1cmE8VGFiPnpmCiAgbWVudXQgJkRlbGV0ZVwgRm9sZDxUYWI+emQJCQkmTGV2YVwgUGllZ2F0dXJhPFRhYj56ZAogIG1lbnV0IERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECQkJTGV2YVwgJnR1dHRlXCBsZVwgUGllZ2F0dXJlPFRhYj56RAogICIgbW92aW1lbnRpIGFsbCdpbnRlcm5vIGRlbGxlIHBpZWdhdHVyZQogIG1lbnV0IEZvbGRcIGNvbCZ1bW5cIHdpZHRoCQkJTGFyZ2hlenphXCBwaWVnYXQmdXJlXCBpblwgY29sb25uZQplbmRpZiAgIiBoYXMgZm9sZGluZwoKaWYgaGFzKCJkaWZmIikKICBtZW51dCAmRGlmZgkJCQkJJkRpZmZlcmVuemEKICAiCiAgbWVudXQgJlVwZGF0ZQkJCQkJJkFnZ2lvcm5hCiAgbWVudXQgJkdldFwgQmxvY2sJCQkJCSZJbXBvcnRhXCBEaWZmZXJlbnplCiAgbWVudXQgJlB1dFwgQmxvY2sJCQkJCSZFc3BvcnRhXCBEaWZmZXJlbnplCmVuZGlmICAiIGhhcyBkaWZmCgptZW51dCAmTWFrZTxUYWI+Om1ha2UJCUVzZWd1aVwgJk1ha2U8VGFiPjptYWtlCgptZW51dCAmTGlzdFwgRXJyb3JzPFRhYj46Y2wJCUxpc3RhXCAmRXJyb3JpPFRhYj46Y2wKbWVudXQgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCUxpc3RhXCAmTWVzc2FnZ2k8VGFiPjpjbCEKbWVudXQgJk5leHRcIEVycm9yPFRhYj46Y24JCUVycm9yZVwgUyZ1Y2Nlc3Npdm88VGFiPjpjbgptZW51dCAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJRXJyb3JlXCAmUHJlY2VkZW50ZTxUYWI+OmNwCm1lbnV0ICZPbGRlclwgTGlzdDxUYWI+OmNvbGQJTGlzdGFcIG1lbiZvXCByZWNlbnRlPFRhYj46Y29sZAptZW51dCBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CUxpc3RhXCBwaflcIHJlY2UmbnRlPFRhYj46Y25ldwoKbWVudXQgRXJyb3JcICZXaW5kb3cJCSZGaW5lc3RyYVwgZXJyb3JpCgptZW51dCAmVXBkYXRlPFRhYj46Y3dpbgkJQSZnZ2lvcm5hPFRhYj46Y3dpbgptZW51dCAmT3BlbjxUYWI+OmNvcGVuCQkmQXByaTxUYWI+OmNvcGVuCm1lbnV0ICZDbG9zZTxUYWI+OmNjbG9zZQkmQ2hpdWRpPFRhYj46Y2Nsb3NlCgptZW51dCAmQ29udmVydFwgdG9cIEhFWDxUYWI+OiUheHhkCSZDb252ZXJ0aVwgYVwgRXNhZGVjaW1hbGU8VGFiPjolIXh4ZAptZW51dCBDb252ZSZydFwgYmFjazxUYWI+OiUheHhkXCAtcglDb252ZSZydGlcIGRhXCBFc2FkZWNpbWFsZTxUYWI+OiUheHhkXCAtcgoKbWVudXQgJlNlVFwgQ29tcGlsZXIJCUltcG8mc3RhXCBDb21waWxhdG9yZQoKIiBCdWZmZXJzIC8gQnVmZmVyCm1lbnV0ICZCdWZmZXJzCQkmQnVmZmVyCgptZW51dCAmUmVmcmVzaFwgbWVudQkJCQlBJmdnaW9ybmFcIG1lbnUKbWVudXQgJkRlbGV0ZQkJJkVsaW1pbmEKbWVudXQgJkFsdGVybmF0ZQkJJkFsdGVybmF0bwptZW51dCAmTmV4dAkJCSZTdWNjZXNzaXZvCm1lbnV0ICZQcmV2aW91cwkJJlByZWNlZGVudGUKbWVudXQgW05vXCBGaWxlXQkJW05lc3N1blwgRmlsZV0KIiBTeW50YXggLyBTaW50YXNzaQptZW51dCAmU3ludGF4CQkmU2ludGFzc2kKbWVudXQgJlNob3dcIGZpbGV0eXBlc1wgaW5cIG1lbnUJTW8mc3RyYVwgdGlwaVwgZGlcIGZpbGVcIG5lbFwgbWVudQptZW51dCBTZXRcICcmc3ludGF4J1wgb25seQlBdHRpdmFcIHNvbG9cIFwgJyZzeW50YXgnCm1lbnV0IFNldFwgJyZmaWxldHlwZSdcIHRvbwlBdHRpdmFcIGFuY2hlXCAnJmZpbGV0eXBlJwptZW51dCAmT2ZmCQkJJkRpc2F0dGl2YQptZW51dCAmTWFudWFsCQkmTWFudWFsZQptZW51dCBBJnV0b21hdGljCQlBJnV0b21hdGljbwptZW51dCBvbi9vZmZcIGZvclwgJlRoaXNcIGZpbGUJQXR0aXZhXCBT7C9Ob1wgc3VcIHF1ZXMmdG9cIGZpbGUKbWVudXQgQ28mbG9yXCB0ZXN0CQlUZXN0XCAmQ29sb3JpCm1lbnV0ICZIaWdobGlnaHRcIHRlc3QJVGVzdFwgJkV2aWRlbnppYW1lbnRvCm1lbnV0ICZDb252ZXJ0XCB0b1wgSFRNTAlDb252ZXJ0aVwgYWRcICZIVE1MCgpsZXQgZzptZW51dHJhbnNfbm9fZmlsZSA9ICJbU2VuemEgbm9tZV0iCgoiIFdpbmRvdyAvIEZpbmVzdHJhCm1lbnV0ICZXaW5kb3cJCQkmRmluZXN0cmEKCm1lbnV0ICZOZXc8VGFiPl5XbgkJCSZOdW92YTxUYWI+XlduCm1lbnV0IFMmcGxpdDxUYWI+XldzCQkmRGl2aWRpXCBsb1wgc2NoZXJtbzxUYWI+XldzCm1lbnV0IFNwJmxpdFwgVG9cICM8VGFiPl5XXl4JRCZpdmlkaVwgdmVyc29cICM8VGFiPl5XXl4KbWVudXQgU3BsaXRcICZWZXJ0aWNhbGx5PFRhYj5eV3YJRGkmdmlkaVwgdmVydGljYWxtZW50ZTxUYWI+Xld2Cm1lbnV0IFNwbGl0XCBGaWxlXCBFJnhwbG9yZXIJQWdnaXVuZ2lcIGZpbmVzdHJhXCBFJnhwbG9yZXIKCm1lbnV0ICZDbG9zZTxUYWI+XldjCQkmQ2hpdWRpPFRhYj5eV2MKbWVudXQgQ2xvc2VcICZPdGhlcihzKTxUYWI+XldvCUMmaGl1ZGlcIGFsdHJhKGUpPFRhYj5eV28KCm1lbnV0IE1vdmVcICZUbwkJCSZNdW92aVwgdmVyc28KCm1lbnV0ICZUb3A8VGFiPl5XSwkJCSZDaW1hPFRhYj5eV0sKbWVudXQgJkJvdHRvbTxUYWI+XldKCQkmRm9uZG88VGFiPl5XSgptZW51dCAmTGVmdFwgc2lkZTxUYWI+XldICQlMYXRvXCAmU2luaXN0cm88VGFiPl5XSAptZW51dCAmUmlnaHRcIHNpZGU8VGFiPl5XTAkJTGF0b1wgJkRlc3RybzxUYWI+XldMCm1lbnV0IFJvdGF0ZVwgJlVwPFRhYj5eV1IJCVJ1b3RhXCB2ZXJzb1wgbCcmYWx0bzxUYWI+XldSCm1lbnV0IFJvdGF0ZVwgJkRvd248VGFiPl5XcgkJUnVvdGFcIHZlcnNvXCBpbFwgJmJhc3NvPFRhYj5eV3IKCm1lbnV0ICZFcXVhbFwgU2l6ZTxUYWI+Xlc9CQkmVWd1YWxlXCBhbXBpZXp6YTxUYWI+Xlc9Cm1lbnV0ICZNYXhcIEhlaWdodDxUYWI+XldfCQkmQWx0ZXp6YVwgbWFzc2ltYTxUYWI+XldfCm1lbnV0IE0maW5cIEhlaWdodDxUYWI+XlcxXwkJQSZsdGV6emFcIG1pbmltYTxUYWI+XlcxXwptZW51dCBNYXhcICZXaWR0aDxUYWI+XldcfAkJTGFyZ2hlenphXCBtYXNzaW1hPFRhYj5eV1x8Cm1lbnV0IE1pblwgV2lkdCZoPFRhYj5eVzFcfAkJTGFyZ2hlenphXCBtaW5pbWE8VGFiPl5XMVx8CgoiIFRoZSBwb3B1cCBtZW51Cm1lbnV0ICZVbmRvCQkJJkFubnVsbGEKbWVudXQgQ3UmdAkJCSZUYWdsaWEKbWVudXQgJkNvcHkJCQkmQ29waWEKbWVudXQgJlBhc3RlCQkmSW5jb2xsYQptZW51dCAmRGVsZXRlCQkmRWxpbWluYQoKbWVudXQgU2VsZWN0XCBCbG9ja3dpc2UJU2VsZXppb25hXCBpblwgYmxvY2NvCm1lbnV0IFNlbGVjdFwgJldvcmQJCVNlbGV6aW9uYVwgJlBhcm9sYQptZW51dCBTZWxlY3RcICZMaW5lCQlTZWxlemlvbmFcICZMaW5lYQptZW51dCBTZWxlY3RcICZCbG9jawlTZWxlemlvbmFcICZCbG9jY28KbWVudXQgU2VsZWN0XCAmQWxsCQlTZWxlemlvbmFcIFQmdXR0bwoKIiBUaGUgR1VJIFRvb2xiYXIgLyBCYXJyYSBTdHJ1bWVudGkKaWYgaGFzKCJ0b29sYmFyIikKICBpZiBleGlzdHMoIipEb190b29sYmFyX3RtZW51IikKICAgIGRlbGZ1biBEb190b29sYmFyX3RtZW51CiAgZW5kaWYKICBmdW4gRG9fdG9vbGJhcl90bWVudSgpCiAgICB0bWVudSBUb29sQmFyLk9wZW4JCUFwcmkKICAgIHRtZW51IFRvb2xCYXIuU2F2ZQkJU2FsdmEKICAgIHRtZW51IFRvb2xCYXIuU2F2ZUFsbAlTYWx2YSBUdXR0bwogICAgdG1lbnUgVG9vbEJhci5QcmludAkJU3RhbXBhCiAgICB0bWVudSBUb29sQmFyLlVuZG8JCUFubnVsbGEKICAgIHRtZW51IFRvb2xCYXIuUmVkbwkJUmlwcmlzdGluYQogICAgdG1lbnUgVG9vbEJhci5DdXQJCVRhZ2xpYQogICAgdG1lbnUgVG9vbEJhci5Db3B5CQlDb3BpYQogICAgdG1lbnUgVG9vbEJhci5QYXN0ZQkJSW5jb2xsYQoKICAgIGlmICFoYXMoImd1aV9hdGhlbmEiKQogICAgICB0bWVudSBUb29sQmFyLkZpbmQJQ2VyY2EKICAgICAgdG1lbnUgVG9vbEJhci5GaW5kTmV4dAlDZXJjYSBTdWNjZXNzaXZvCiAgICAgIHRtZW51IFRvb2xCYXIuRmluZFByZXYJQ2VyY2EgUHJlY2VkZW50ZQogICAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJU29zdGl0dWlzY2kKICAgIGVuZGlmCgppZiAwCSIgZGlzYWJsZWQ7IFRoZXNlIGFyZSBpbiB0aGUgV2luZG93cyBtZW51CiAgICAgIHRtZW51IFRvb2xCYXIuTmV3CQlOdW92YSBmaW5lc3RyYQogICAgICB0bWVudSBUb29sQmFyLldpblNwbGl0CURpdmlkaSBmaW5lc3RyYQogICAgICB0bWVudSBUb29sQmFyLldpbk1heAlNYXNzaW1hIGFtcGllenphCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWluCU1pbmltYSBhbXBpZXp6YQogICAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdAlEaXZpZGkgdmVydGljYWxtZW50ZQogICAgICB0bWVudSBUb29sQmFyLldpbk1heFdpZHRoCU1hc3NpbWEgbGFyZ2hlenphCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWluV2lkdGgJTWluaW1hIGxhcmdoZXp6YQogICAgICB0bWVudSBUb29sQmFyLldpbkNsb3NlCUNoaXVkaSBmaW5lc3RyYQplbmRpZgoKICAgIHRtZW51IFRvb2xCYXIuTG9hZFNlc24JQ2FyaWNhIFNlc3Npb25lCiAgICB0bWVudSBUb29sQmFyLlNhdmVTZXNuCVNhbHZhIFNlc3Npb25lCiAgICB0bWVudSBUb29sQmFyLlJ1blNjcmlwdAlFc2VndWkgU2NyaXB0CiAgICB0bWVudSBUb29sQmFyLk1ha2UJCU1ha2UKICAgIHRtZW51IFRvb2xCYXIuU2hlbGwJCVNoZWxsCiAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzCUVzZWd1aSBDdGFncwogICAgdG1lbnUgVG9vbEJhci5UYWdKdW1wCVZhaSBhIFRhZwogICAgdG1lbnUgVG9vbEJhci5IZWxwCQlBaXV0bwogICAgdG1lbnUgVG9vbEJhci5GaW5kSGVscAlDZXJjYSBpbiBBaXV0bwogIGVuZGZ1bgplbmRpZgoKIiB2aW06IHNldCBzdz0yIDoK