IiBNZW51IFRyYW5zbGF0aW9uczoJSXRhbGlhbiAvIEl0YWxpYW5vCiIgTWFpbnRhaW5lcjoJCUFudG9uaW8gQ29sb21ibyA8YXpjMTBAeWFob28uY29tPgoiCQkJVmxhZCBTYW5kcmluaSA8c2F0b3I3MkBsaWJlcm8uaXQ+CiIgTGFzdCBDaGFuZ2U6CTIwMDUgQXVnIDEzCgoiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgppZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKICBmaW5pc2gKZW5kaWYKbGV0IGRpZF9tZW51X3RyYW5zID0gMQoKc2NyaXB0ZW5jb2RpbmcgaXNvLTg4NTktMQoKIiBIZWxwIC8gQWl1dG8KbWVudXQgJkhlbHAJCQkmQWl1dG8KbWVudXQgJk92ZXJ2aWV3PFRhYj48RjE+CSZQYW5vcmFtaWNhPFRhYj48RjE+Cm1lbnV0ICZVc2VyXCBNYW51YWwJCU1hbnVhbGVcICZVdGVudGUKbWVudXQgJkhvdy10b1wgbGlua3MJQ28mbWVcLlwuXC4KIm1lbnV0ICZHVUkJCQkmR1VJCm1lbnV0ICZDcmVkaXRzCQlDciZlZGl0aQptZW51dCBDbyZweWluZwkJQyZvcGllCm1lbnV0ICZTcG9uc29yL1JlZ2lzdGVyICZTcG9uc29yL1JlZ2lzdHJhemlvbmUKbWVudXQgTyZycGhhbnMJCU8mcmZhbmkKIm1lbnV0ICZGaW5kXC5cLlwuCQkmQ2VyY2FcLlwuXC4KIk5PVEE6IGZhIGNvbmZsaXR0byBjb24gJ2NlcmNhJyBuZWwgbWVudSAnbW9kaWZpY2EnCm1lbnV0ICZWZXJzaW9uCQkmVmVyc2lvbmUKbWVudXQgJkFib3V0CQkmSW50cm8KCmxldCBnOm1lbnV0cmFuc19oZWxwX2RpYWxvZyA9ICJCYXR0aSB1biBjb21hbmRvIG8gdW5hIHBhcm9sYSBwZXIgY2VyY2FyZSBhaXV0bzpcblxuUHJlbWV0dGkgaV8gcGVyIGNvbWFuZGkgaW4gbW9kYWxpdOAgSW5wdXQgKGFkLmVzLjogaV9DVFJMLVgpXG5QcmVtZXR0aSBjXyBwZXIgY29tYW5kaSBjaGUgZWRpdGFubyBsYSBsaW5lYS1jb21hbmRpIChhZC5lcy46IGNfPERlbD4pXG5QcmVtZXR0aSAnIHBlciB1biBub21lIGRpIG9wemlvbmUgKGFkLmVzLjogJ3NoaWZ0d2lkdGgnKSIKCiIgRmlsZSBtZW51CiJtZW51dCAmRmlsZQkJCQkmRmlsZQoiCm1lbnV0ICZPcGVuXC5cLlwuPFRhYj46ZQkJJkFwcmlcLlwuXC48VGFiPjplCm1lbnV0IFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AJQSZwcmlcIG51b3ZhXCBGaW5lc3RyYVwuXC5cLjxUYWI+OnNwCm1lbnV0ICZOZXc8VGFiPjplbmV3CQkmTnVvdm88VGFiPjplbmV3Cm1lbnV0ICZDbG9zZTxUYWI+OmNsb3NlCQkmQ2hpdWRpPFRhYj46Y2xvc2UKbWVudXQgJlNhdmU8VGFiPjp3CQkJJlNhbHZhPFRhYj46dwptZW51dCBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJU2FsdmFcICZjb25cIG5vbWVcLlwuXC48VGFiPjpzYXYKCmlmIGhhcygiZGlmZiIpCiAgICBtZW51dCBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4JRmluZXN0cmFcICZEaWZmZXJlbnphXCBjb25cLlwuXC4KICAgIG1lbnV0IFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4JRmluZXN0cmFcIFBhdGMmaFwgZGFcLlwuXC4KZW5kaWYKCm1lbnV0ICZQcmludAkJCVMmdGFtcGEKbWVudXQgU2EmdmUtRXhpdDxUYWI+OndxYQkJU2EmbHZhXCBlZFwgZXNjaTxUYWI+OndxYQptZW51dCBFJnhpdDxUYWI+OnFhCQkJJkVzY2k8VGFiPjpxYQoKIiBFZGl0IC8gTW9kaWZpY2EKCm1lbnV0ICZFZGl0CQkJCSZNb2RpZmljYQptZW51dCAmVW5kbzxUYWI+dQkJCSZBbm51bGxhPFRhYj51Cm1lbnV0ICZSZWRvPFRhYj5eUgkJCSZSaXByaXN0aW5hPFRhYj5eUgptZW51dCBSZXAmZWF0PFRhYj5cLgkJUmkmcGV0aTxUYWI+XC4KbWVudXQgQ3UmdDxUYWI+Iit4CQkJJlRhZ2xpYTxUYWI+Iit4Cm1lbnV0ICZDb3B5PFRhYj4iK3kJCQkmQ29waWE8VGFiPiIreQptZW51dCAmUGFzdGU8VGFiPiIrZ1AJCSZJbmNvbGxhPFRhYj4iK2dQCm1lbnV0IFB1dFwgJkJlZm9yZTxUYWI+W3AJCSZNZXR0aVwgZGF2YW50aTxUYWI+W3AKbWVudXQgUHV0XCAmQWZ0ZXI8VGFiPl1wCQlNJmV0dGlcIGRpZXRybzxUYWI+XXAKbWVudXQgJkRlbGV0ZTxUYWI+eAkJCUNhbmNlJmxsYTxUYWI+eAptZW51dCAmU2VsZWN0XCBhbGw8VGFiPmdnVkcJCVNlbGV6aW9uYVwgJnR1dHRvPFRhYj5nZ1ZHCm1lbnV0ICZTZWxlY3RcIEFsbDxUYWI+Z2dWRwkJU2VsZXppb25hXCAmdHV0dG88VGFiPmdnVkcKbWVudXQgJkZpbmRcLlwuXC4JCQkmQ2VyY2FcLlwuXC4KbWVudXQgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLgkmU29zdGl0dWlzY2lcLlwuXC4KbWVudXQgU2V0dGluZ3NcICZXaW5kb3cJCSZGaW5lc3RyYVwgSW1wb3N0YXppb25pCm1lbnV0ICZHbG9iYWxcIFNldHRpbmdzCQlJbXBvc3RhemlvbmlcICZnbG9iYWxpCm1lbnV0IFF1ZXN0aW9uCQkJRG9tYW5kYQoKIiBFZGl0IC8gTW9kaWZpY2EgSW1wb3N0YXppb25pIEdsb2JhbGkKbWVudXQgJkdsb2JhbFwgU2V0dGluZ3MJSW1wb3N0YXppb25pXCAmR2xvYmFsaQptZW51dCBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJJkV2aWRlbnppYVwgcmljZXJjaGVcIFPsL05vPFRhYj46c2V0XCBobHMhCm1lbnV0IFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEJCSZJZ25vcmFcIG1haXVzY1wuLW1pbnVzY1wuXCBT7C9ObzxUYWI+OnNldFwgaWMhCm1lbnV0IFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hCUluZGljYVwgJkNvcnJpc3BvbmRlbnRlXCBT7C9ObzxUYWI+OnNldFwgc20hCgptZW51dCAmQ29udGV4dFwgbGluZXMJJkxpbmVlXCBkaVwgY29udGVzdG8KbWVudXQgJlZpcnR1YWxcIEVkaXQJCSZFZGl0XCBWaXJ0dWFsZQoKbWVudXQgTmV2ZXIJCU1haQptZW51dCBCbG9ja1wgU2VsZWN0aW9uCQlTZWxlemlvbmVcIEJsb2NjbwptZW51dCBJbnNlcnRcIG1vZGUJTW9kYWxpdOBcIEluc2VyaW1lbnRvCm1lbnV0IEJsb2NrXCBhbmRcIEluc2VydAlTZWxlemlvbmVcIEJsb2NjbytJbnNlcmltZW50bwptZW51dCBBbHdheXMJCVNlbXByZQoKbWVudXQgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEJJk1vZGFsaXTgXCBJbnNlcmltZW50b1wgU+wvTm88VGFiPjpzZXRcIGltIQptZW51dCBUb2dnbGVcIFZpXCBDJm9tcGF0aWJsZTxUYWI+OnNldFwgY3AhCUMmb21wYXRpYmlsZVwgVmlcIFPsL05vPFRhYj46c2V0XCBjcCEKbWVudXQgU2VhcmNoXCAmUGF0aFwuXC5cLglDYSZtbWlub1wgZGlcIHJpY2VyY2FcLlwuXC4KbWVudXQgVGEmZ1wgRmlsZXNcLlwuXC4JCUZpbGVcIFRhJmdcLlwuXC4KIgoiIE9wemlvbmkgR1VJCm1lbnV0IFRvZ2dsZVwgJlRvb2xiYXIJQmFycmFcIFMmdHJ1bWVudGlcIFPsL05vCm1lbnV0IFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCUJhcnJhXCBTY29ycmltZW50b1wgaW5cICZmb25kb1wgU+wvTm8KbWVudXQgVG9nZ2xlXCAmTGVmdFwgU2Nyb2xsYmFyCUJhcnJhXCBTY29ycmltZW50b1wgYVwgJnNpbmlzdHJhXCBT7C9ObwptZW51dCBUb2dnbGVcICZSaWdodFwgU2Nyb2xsYmFyCUJhcnJhXCBTY29ycmltZW50b1wgYVwgJmRlc3RyYVwgU+wvTm8KCmxldCBnOm1lbnV0cmFuc19wYXRoX2RpYWxvZyA9ICJCYXR0aSBwZXJjb3JzbyBkaSByaWNlcmNhIHBlciBpIGZpbGUuXG5TZXBhcmEgZnJhIGxvcm8gaSBub21pIGRpIGRpcmVjdG9yeSBjb24gdW5hIHZpcmdvbGEuIgpsZXQgZzptZW51dHJhbnNfdGFnc19kaWFsb2cgPSAiQmF0dGkgbm9tZSBkZWkgZmlsZSBkaSB0YWcuXG5TZXBhcmEgZnJhIGxvcm8gaSBub21pIGRpIGRpcmVjdG9yeSBjb24gdW5hIHZpcmdvbGEuIgoKIiBFZGl0IC8gSW1wb3N0YXppb25pIEZpbGUKbWVudXQgRiZpbGVcIFNldHRpbmdzCSZJbXBvc3RhemlvbmlcIEZpbGUKCiIgQm9vbGVhbiBvcHRpb25zCm1lbnV0IFRvZ2dsZVwgTGluZVwgJk51bWJlcmluZzxUYWI+OnNldFwgbnUhCSZOdW1lcmF6aW9uZVwgXCBT7C9ObzxUYWI+OnNldFwgbnUhCm1lbnV0IFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQlNb2RhbGl04FwgJkxpc3RhXCBT7C9ObzxUYWI+OnNldFwgbGlzdCEKbWVudXQgVG9nZ2xlXCBMaW5lXCAmV3JhcDxUYWI+OnNldFwgd3JhcCEJCUxpbmVlXCAmQ29udGludWF0ZVwgU+wvTm88VGFiPjpzZXRcIHdyYXAhCm1lbnV0IFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhCUFcIGNhcG9cIGFsbGFcICZwYXJvbGFcIFPsL05vPFRhYj46c2V0XCBsYnIhCm1lbnV0IFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkJJkVzcGFuZGlcIFRhYnVsYXppb25lXCBT7C9ObzxUYWI+OnNldFwgZXQhCm1lbnV0IFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJSW5kZW50YXppb25lXCAmYXV0b21hdGljYVwgU+wvTm88VGFiPjpzZXQgYWkhCm1lbnV0IFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCUluZGVudGF6aW9uZVwgc3RpbGVcICZDXCBT7C9ObzxUYWI+OnNldCBjaW4hCgoiIGFsdHJlIG9wemlvbmkKbWVudXQgJlNoaWZ0d2lkdGgJCQkmU3BhemlcIFJpZW50cmFuemEKbWVudXQgU29mdFwgJlRhYnN0b3AJCSZUYWJ1bGF6aW9uZVwgU29mdHdhcmUKbWVudXQgVGUmeHRcIFdpZHRoXC5cLlwuCQlMdW5naGUmenphXCBSaWdhXC5cLlwuCm1lbnV0ICZGaWxlXCBGb3JtYXRcLlwuXC4JRm9ybWF0b1wgJkZpbGVcLlwuXC4KCmxldCBnOm1lbnV0cmFuc190ZXh0d2lkdGhfZGlhbG9nID0gIkJhdHRpIG51b3ZhIGx1bmdoZXp6YSBsaW5lYSAoMCBwZXIgaW5pYmlyZSBsYSBmb3JtYXR0YXppb25lKTogIgoKbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIlNjZWdsaSBmb3JtYXRvIGNvbiBjdWkgc2NyaXZlcmUgaWwgZmlsZSIKCm1lbnV0IEMmb2xvclwgU2NoZW1lCQlTY2hlbWFcIEMmb2xvcmkKCm1lbnV0IGRlZmF1bHQJCW5vcm1hbGUKbWVudXQgREVGQVVMVAkJTk9STUFMRQptZW51dCBldmVuaW5nCQlub3R0dXJubwptZW51dCBFVkVOSU5HCQlOT1RUVVJOTwptZW51dCBtb3JuaW5nCQlkaXVybm8KbWVudXQgTU9STklORwkJRElVUk5PCm1lbnV0IHNoaW5lCQlicmlsbGFudGUKbWVudXQgU0hJTkUJCUJSSUxMQU5URQptZW51dCBwZWFjaHB1ZmYJCXBlc2NhCm1lbnV0IFBFQUNIUFVGCQlQRVNDQQoKbWVudXQgJktleW1hcAkJCQkmTWFwcGFcIHRhc3RpZXJhCgptZW51dCBOb25lCQluZXNzdW5hCm1lbnV0IGFjY2VudHMJCWFjY2VudGkKbWVudXQgQUNDRU5UUwkJQUNDRU5USQptZW51dCBoZWJyZXcJCWVicmFpY28KbWVudXQgSEVCUkVXCQlFQlJBSUNPCm1lbnV0IGhlYnJld19pc28tODg1OS04IGVicmFpY29faXNvLTg4NTktOAptZW51dCBoZWJyZXdfY3AxMjU1CWVicmFpY29fY3AxMjU1Cm1lbnV0IGhlYnJld191dGYtOAllYnJhaWNvX3V0Zi04Cm1lbnV0IGhlYnJld3BfaXNvLTg4NTktOCBlYnJhaWNvX3BfaXNvLTg4NTktOAptZW51dCBIRUJSRVctCQlFQlJBSUNPKwptZW51dCBoZWJyZXdwCQlFQlJBSUNPUAptZW51dCBIRUJSRVdQCQlFQlJBSUNPUAptZW51dCBydXNzaWFuLWpjdWtlbgljaXJpbGxpY28tamN1a2VuCm1lbnV0IHJ1c3NpYW4tamN1a2Vud2luCWNpcmlsbGljby1qY3VrZW4td2luCm1lbnV0IFJVU1NJQU4JCUNJUklMTElDTwptZW51dCBSVVNTSUFOLQkJQ0lSSUxMSUNPLQoKbWVudXQgU2VsZWN0XCBGbyZudFwuXC5cLgkJU2NlZ2xpXCAmRm9udFwuXC5cLgoKIiBNZW51IHN0cnVtZW50aSBwcm9ncmFtbWF6aW9uZQptZW51dCAmVG9vbHMJCQkmU3RydW1lbnRpCgptZW51dCAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dCSZWYWlcIGFcIHF1ZXN0YVwgVGFnPFRhYj5nXl0KbWVudXQgSnVtcFwgJmJhY2s8VGFiPl5UCQlUb3JuYVwgJmluZGlldHJvPFRhYj5eVAptZW51dCBCdWlsZFwgJlRhZ3NcIEZpbGUJCUNvc3RydWlzY2lcIEZpbGVcICZUYWdzXAoKIiBNZW51IG9ydG9ncmFmaWEgLyBTcGVsbGluZwptZW51dCAmU3BlbGxpbmcJCQkmT3J0b2dyYWZpYQoKbWVudXQgJlNwZWxsXCBDaGVja1wgT24JCQlBdHRpdmFcICZDb250cm9sbG9cIG9ydG9ncmFmaWNvCm1lbnV0IFNwZWxsXCBDaGVja1wgJk9mZgkJJkRpc2F0dGl2YVwgY29udHJvbGxvXCBvcnRvZ3JhZmljbwptZW51dCBUb1wgJk5leHRcIGVycm9yPFRhYj5dcwkJRXJyb3JlXCAmU2VndWVudGU8dGFiPl1zCm1lbnV0IFRvXCAmUHJldmlvdXNcIGVycm9yPFRhYj5bcwlFcnJvcmVcICZQcmVjZWRlbnRlPHRhYj5bcwptZW51dCBTdWdnZXN0XCAmQ29ycmVjdGlvbnM8VGFiPno/CSZTdWdnZXJpbWVudGk8VGFiPno/Cm1lbnV0ICZSZXBlYXRcIGNvcnJlY3Rpb248VGFiPjpzcGVsbHJlcGFsbAkmUmlwZXRpXCBjb3JyZXppb25lPFRhYj46c3BlbGxyZXBhbGwKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbiIJCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuIgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX2F1IglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9hdSIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fY2EiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fZ2IiCUltcG9zdGFcIGxpbmd1YVwgYVwgImVuX2diIgptZW51dCBTZXRcIGxhbmd1YWdlXCB0b1wgImVuX256IglJbXBvc3RhXCBsaW5ndWFcIGFcICJlbl9ueiIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiZW5fdXMiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXQiCQlJbXBvc3RhXCBsaW5ndWFcIGFcICJpdCIKbWVudXQgU2V0XCBsYW5ndWFnZVwgdG9cICJpdF9pdCIJSW1wb3N0YVwgbGluZ3VhXCBhXCAiaXRfaXQiCm1lbnV0IFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXRfY2giCUltcG9zdGFcIGxpbmd1YVwgYVwgIml0X2NoIgptZW51dCAmRmluZFwgTW9yZVwgTGFuZ3VhZ2VzCQkmVHJvdmFcIGFsdHJlXCBsaW5ndWUKCiIgTWVudSBwaWVnYXR1cmUgLyBGb2xkCmlmIGhhcygiZm9sZGluZyIpCiAgbWVudXQgJkZvbGRpbmcJCQkJCSZQaWVnYXR1cmUKICAiIGFwcmkgZSBjaGl1ZGkgcGllZ2F0dXJlCiAgbWVudXQgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+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