IiBNZW51IHRyYW5zbGF0aW9ucyBmb3IgQ2F0YWxhbgoiCiIgTWFpbnRhaW5lcjoJRXJuZXN0IEFkcm9ndekgPGVhZHJvZ3VlQGdteC5uZXQ+CiIgTGFzdCBDaGFuZ2U6CTI2IEp1bCAyMDE3CiIgT3JpZ2luYWwgdHJhbnNsYXRpb25zCgoiIFF1aXQgd2hlbiBtZW51IHRyYW5zbGF0aW9ucyBoYXZlIGFscmVhZHkgYmVlbiBkb25lLgppZiBleGlzdHMoImRpZF9tZW51X3RyYW5zIikKICBmaW5pc2gKZW5kaWYKbGV0IGRpZF9tZW51X3RyYW5zID0gMQpsZXQgczprZWVwY3BvPSAmY3BvCnNldCBjcG8mdmltCgoiIFRoZSB0cmFuc2xhdGlvbnMgYmVsb3cgYXJlIGluIGxhdGluMSwgYnV0IHRoZXkgd29yayBmb3IgY3AxMjUyLAoiIGlzby04ODU5LTE1IHdpdGhvdXQgY29udmVyc2lvbiBhcyB3ZWxsLgppZiAmZW5jICE9ICJjcDEyNTIiICYmICZlbmMgIT0gImlzby04ODU5LTE1IgogIHNjcmlwdGVuY29kaW5nIGxhdGluMQplbmRpZgoKIiBtZW76IEFqdWRhCm1lbnV0cmFucyAmSGVscAkJCQkmQWp1ZGEKbWVudXRyYW5zICZPdmVydmlldzxUYWI+PEYxPgkJJkludHJvZHVjY2nzPFRhYj48RjE+Cm1lbnV0cmFucyAmVXNlclwgTWFudWFsCQkJJk1hbnVhbFwgZGVcIGwndXN1YXJpCm1lbnV0cmFucyAmSG93LXRvXCBsaW5rcwkJQ29tXCAmZmVyXC5cLlwuPwptZW51dHJhbnMgJkZpbmRcLlwuXC4JCQkmQ2VyY2FcLlwuXC4KbWVudXRyYW5zICZDcmVkaXRzCQkJJkF1dG9ycwptZW51dHJhbnMgQ28mcHlpbmcJCQlDb24mZGljaW9ucwptZW51dHJhbnMgJlNwb25zb3IvUmVnaXN0ZXIJJlBhdHJvY2luaS9SZWdpc3RyZQptZW51dHJhbnMgTyZycGhhbnMJCQkmT3JmZXMKbWVudXRyYW5zICZWZXJzaW9uCQkJJlZlcnNp8wptZW51dHJhbnMgJkFib3V0CQkJJlF1YW50XCBhXC5cLlwuCiIgdGV4dCBkZWwgZGngbGVnIEFqdWRhL0NlcmNhLi4uCmxldCBnOm1lbnV0cmFuc19oZWxwX2RpYWxvZyA9ICJJbnRyb2R173UgZWwgdGVybWUgc29icmUgZWwgcXVhbCBuZWNlc3NpdGV1IGFqdWRhLlxuXG5Vc2V1IGVsIHByZWZpeCBpXyBwZXIgb3JkcmVzIGQnZW50cmFkYSAocC5leC46IGlfQ1RSTC1YKVxuVXNldSBlbCBwcmVmaXggY18gcGVyIG9yZHJlcyBkZSBsYSBs7W5pYSBkJ29yZHJlcyAocC5leC46IGNfPERlbD4pXG5Vc2V1IGVsIHByZWZpeCAnIHBlciBub21zIGQnb3BjaW9ucyAocC5leC46ICdzaGlmdHdpZHRoJykiCgoiIG1lbvogRml0eGVyCm1lbnV0cmFucyAmRmlsZQkJCQkmRml0eGVyCm1lbnV0cmFucyAmT3BlblwuXC5cLjxUYWI+OmUJCSZPYnJlXC5cLlwuPFRhYj46ZQptZW51dHJhbnMgU3AmbGl0LU9wZW5cLlwuXC48VGFiPjpzcAlPYnJlXCBlblwgdW5hXCAmZmluZXN0cmFcIG5vdmFcLlwuXC48VGFiPjpzcAptZW51dHJhbnMgT3BlblwgVGFiXC5cLlwuPFRhYj46dGFibmV3CU9icmVcIHBlc3RhbnlhXC5cLlwuPFRhYj46dGFibmV3Cm1lbnV0cmFucyAmTmV3PFRhYj46ZW5ldwkJJk5vdTxUYWI+OmVuZXcKbWVudXRyYW5zICZDbG9zZTxUYWI+OmNsb3NlCQkmVGFuY2E8VGFiPjpjbG9zZQptZW51dHJhbnMgJlNhdmU8VGFiPjp3CQkJJkRlc2E8VGFiPjp3Cm1lbnV0cmFucyBTYXZlXCAmQXNcLlwuXC48VGFiPjpzYXYJJkFub21lbmFcIGlcIGRlc2FcLlwuXC48VGFiPjpzYXYKbWVudXRyYW5zIFNwbGl0XCAmRGlmZlwgd2l0aFwuXC5cLgkmTW9zdHJhXCBsZXNcIGRpZmVy6G5jaWVzXCByZXNwZWN0ZVwuXC5cLgptZW51dHJhbnMgU3BsaXRcIFBhdGNoZWRcICZCeVwuXC5cLglBcGxpY2FcIGxlc1wgbW9kaWZpY2FjaW9uc1wgZGVcLlwuXC4KbWVudXRyYW5zICZQcmludAkJCSZJbXByaW1laXgKbWVudXRyYW5zIFNhJnZlLUV4aXQ8VGFiPjp3cWEJCURlc2FcIGlcIHMmdXJ0PFRhYj46d3FhCm1lbnV0cmFucyBFJnhpdDxUYWI+OnFhCQkJJlN1cnQ8VGFiPjpxYQoKIiBtZW76IEVkaXRhCm1lbnV0cmFucyAmRWRpdAkJCQkmRWRpdGEKbWVudXRyYW5zICZVbmRvPFRhYj51CQkJJkRlc2bpczxUYWI+dQptZW51dHJhbnMgJlJlZG88VGFiPl5SCQkJJlJlZulzPFRhYj5eUgptZW51dHJhbnMgUmVwJmVhdDxUYWI+XC4JCVJlJnBldGVpeDxUYWI+XC4KbWVudXRyYW5zIEN1JnQ8VGFiPiIreAkJCVJlJnRhbGxhPFRhYj4iK3gKbWVudXRyYW5zICZDb3B5PFRhYj4iK3kJCQkmQ29waWE8VGFiPiIreQptZW51dHJhbnMgJlBhc3RlPFRhYj4iK2dQCQlFbmdhbiZ4YTxUYWI+IitnUAptZW51dHJhbnMgUHV0XCAmQmVmb3JlPFRhYj5bcAkJUG9zYVwgJmFiYW5zPFRhYj5bcAptZW51dHJhbnMgUHV0XCAmQWZ0ZXI8VGFiPl1wCQlQJm9zYVwgZGVzcHLpczxUYWI+XXAKbWVudXRyYW5zICZEZWxldGU8VGFiPngJCQlTdXByaW1laXg8VGFiPngKbWVudXRyYW5zICZTZWxlY3RcIEFsbDxUYWI+Z2dWRwkJJlNlbGVjY2lvbmEtaG9cIHRvdDxUYWI+Z2dWRwptZW51dHJhbnMgJkZpbmRcLlwuXC4JCQkmQ2VyY2FcLlwuXC4KbWVudXRyYW5zICZGaW5kPFRhYj4vCQkJJkNlcmNhPFRhYj4vCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlCQlDZXJjYVwgaVwgcyZ1YnN0aXR1ZWl4Cm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlXC5cLlwuCUNlcmNhXCBpXCBzJnVic3RpdHVlaXhcLlwuXC4KbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2U8VGFiPjolcwlDZXJjYVwgaVwgcyZ1YnN0aXR1ZWl4PFRhYj46JXMKbWVudXRyYW5zIEZpbmRcIGFuZFwgUmVwJmxhY2U8VGFiPjpzCUNlcmNhXCBpXCBzJnVic3RpdHVlaXg8VGFiPjpzCm1lbnV0cmFucyBTZXR0aW5nc1wgJldpbmRvdwkJRmluJmVzdHJhXCBkJ29wY2lvbnMKbWVudXRyYW5zIFN0YXJ0dXBcICZTZXR0aW5ncyAgICBPcGNpb25zXCBpJm5pY2lhbHMKbWVudXRyYW5zICZHbG9iYWxcIFNldHRpbmdzCQlPcGNpb25zXCAmZ2xvYmFscwoiIHN1Ym1lbvogRWRpdGEvT3BjaW9ucyBHbG9iYWxzCiAgbWVudXRyYW5zIFRvZ2dsZVwgUGF0dGVyblwgJkhpZ2hsaWdodDxUYWI+OnNldFwgaGxzIQlSZXNzYWx0YXRcIGRlXCAmcGF0cm9uczxUYWI+OnNldFwgaGxzIQogIG1lbnV0cmFucyBUb2dnbGVcICZJZ25vcmUtY2FzZTxUYWI+OnNldFwgaWMhCQlTZW5zaWJpbGl0YXRcIGFcIGxlc1wgbWEmavpzY3VsZXM8VGFiPjpzZXRcIGljIQogIG1lbnV0cmFucyBUb2dnbGVcICZTaG93bWF0Y2g8VGFiPjpzZXRcIHNtIQkJJlJlc3NhbHRhdFwgZGVcIGNvaW5jaWTobmNpZXM8VGFiPjpzZXRcIHNtIQogIG1lbnV0cmFucyAmQ29udGV4dFwgbGluZXMJCQkJTO1uaWVzXCBkZVwgY28mbnRleHQKICBtZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJRWRpY2nzXCAmdmlydHVhbAoiIHN1Ym1lbvogRWRpdGEvT3BjaW9ucyBHbG9iYWxzL0VkaWNp8yB2aXJ0dWFsCiAgICBtZW51dHJhbnMgTmV2ZXIJCQkJCSZNYWkKICAgIG1lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uCQkJCSZTZWxlY2Np81wgZGVcIGJsb2NzCiAgICBtZW51dHJhbnMgSW5zZXJ0XCBtb2RlCQkJCU1vZGVcIGQnJmluc2VyY2nzCiAgICBtZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CQkJJkJsb2NzXCBpXCBpbnNlcmNp8wogICAgbWVudXRyYW5zIEFsd2F5cwkJCQkJUyZlbXByZQogIG1lbnV0cmFucyBUb2dnbGVcIEluc2VydFwgJk1vZGU8VGFiPjpzZXRcIGltIQkJTW9kZVwgZCcmaW5zZXJjafM8VGFiPjpzZXRcIGltIQogIG1lbnV0cmFucyBUb2dnbGVcIFZpXCBDJm9tcGF0aWJsZTxUYWI+OnNldFwgY3AhCUNvJm1wYXRpYmxlXCBhbWJcIFZpPFRhYj46c2V0XCBjcCEKICBtZW51dHJhbnMgU2VhcmNoXCAmUGF0aFwuXC5cLgkJCQkmVWJpY2FjaW9uc1wuXC5cLgogIG1lbnV0cmFucyBUYSZnXCBGaWxlc1wuXC5cLgkJCQlGaXR4ZXJzXCBkJyZldGlxdWV0ZXNcLlwuXC4KICBtZW51dHJhbnMgVG9nZ2xlXCAmVG9vbGJhcgkJCQkmQmFycmFcIGQnZWluZXMKICBtZW51dHJhbnMgVG9nZ2xlXCAmQm90dG9tXCBTY3JvbGxiYXIJCQlCYXJyYVwgZGVcICZkZXNwbGHnYW1lbnRcIGluZmVyaW9yCiAgbWVudXRyYW5zIFRvZ2dsZVwgJkxlZnRcIFNjcm9sbGJhcgkJCUJhcnJhXCBkZVwgZGVzcGxh52FtZW50XCBlJnNxdWVycmEKICBtZW51dHJhbnMgVG9nZ2xlXCAmUmlnaHRcIFNjcm9sbGJhcgkJCUJhcnJhXCBkZVwgZGVzcGxh52FtZW50XCBkcmUmdGEKbWVudXRyYW5zIEYmaWxlXCBTZXR0aW5ncwkJCQlPcGNpb25zXCBkZWxcIGYmaXR4ZXIKIiBzdWJtZW76IEVkaXRhL09wY2lvbnMgZGVsIGZpdHhlcgogIG1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZOdW1iZXJpbmc8VGFiPjpzZXRcIG51IQkmRW5udW1lcmFcIGxlc1wgbO1uaWVzPFRhYj46c2V0XCBudSEKICBtZW51dHJhbnMgVG9nZ2xlXCAmTGlzdFwgTW9kZTxUYWI+OnNldFwgbGlzdCEJCU1vZGVcICZsbGlzdGE8VGFiPjpzZXRcIGxpc3QhCiAgbWVudXRyYW5zIFRvZ2dsZVwgTGluZVwgJldyYXA8VGFiPjpzZXRcIHdyYXAhCQlBJmp1c3RhXCBsZXNcIGztbmllc1wgbGxhcmd1ZXM8VGFiPjpzZXRcIHdyYXAhCiAgbWVudXRyYW5zIFRvZ2dsZVwgVyZyYXBcIGF0XCB3b3JkPFRhYj46c2V0XCBsYnIhCUFqdXN0YVwgc2Vuc2VcIHBhcnRpclwgJnBhcmF1bGVzPFRhYj46c2V0XCBsYnIhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJmV4cGFuZC10YWI8VGFiPjpzZXRcIGV0IQkJRXN06W5cIGxlc1wgdGEmYnVsYWNpb25zPFRhYj46c2V0XCBldCEKICBtZW51dHJhbnMgVG9nZ2xlXCAmYXV0by1pbmRlbnQ8VGFiPjpzZXRcIGFpIQkJJlNhZ25pYVwgYXV0b23gdGljYTxUYWI+OnNldFwgYWkhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJkMtaW5kZW50aW5nPFRhYj46c2V0XCBjaW4hCQlTYWduaWFcIGVzdGlsXCAmQzxUYWI+OnNldFwgY2luIQogIG1lbnV0cmFucyAmU2hpZnR3aWR0aAkJCQkJU2EmZ25pYQogIG1lbnV0cmFucyBTb2Z0XCAmVGFic3RvcAkJCQlBbXBsYWRhXCBkZVwgJnRhYnVsYWNp8wogIG1lbnV0cmFucyBUZSZ4dFwgV2lkdGhcLlwuXC4JCQkJJkFtcGxhZGFcIGRlbFwgdGV4dFwuXC5cLgogIG1lbnV0cmFucyAmRmlsZVwgRm9ybWF0XC5cLlwuCQkJCSZGb3JtYXRcIGRlbFwgZml0eGVyXC5cLlwuCm1lbnV0cmFucyBTZWxlY3RcIEZvJm50XC5cLlwuCQkmRm9zYVwuXC5cLgptZW51dHJhbnMgQyZvbG9yXCBTY2hlbWUJCUVzJnF1ZW1hXCBkZVwgY29sb3JzCiIgc3VibWVu+iBFZGl0YS9Fc3F1ZW1hIGRlIGNvbG9ycwogIG1lbnV0cmFucyBibHVlCQkJYmxhdQogIG1lbnV0cmFucyBkYXJrYmx1ZQkJCWJsYXVcIGZvc2MKICBtZW51dHJhbnMgZGVmYXVsdAkJCW5vcm1hbAogIG1lbnV0cmFucyBkZXNlcnQJCQlkZXNlcnQKICBtZW51dHJhbnMgZXZlbmluZwkJCXZlc3ByYWRhCiAgbWVudXRyYW5zIG1vcm5pbmcJCQltYXRpbmFkYQogIG1lbnV0cmFucyBwZWFjaHB1ZmYJCQlwculzc2VjCiAgbWVudXRyYW5zIHNoaW5lCQkJYnJpbGxhbnQKbWVudXRyYW5zICZLZXltYXAJCQkmTWFwYVwgZGVcIHRlY2xlcwoiIHN1Ym1lbvogRWRpdGEvTWFwYSBkZSB0ZWNsZXMKICBtZW51dHJhbnMgTm9uZQkJCUNhcAogIG1lbnV0cmFucyBhY2NlbnRzCQkJQWNjZW50cwogIG1lbnV0cmFucyBhcmFiaWMJCQnAcmFiCiAgbWVudXRyYW5zIGN6ZWNoCQkJVHhlYwogIG1lbnV0cmFucyBlc3BlcmFudG8JCQlFc3BlcmFudG8KICBtZW51dHJhbnMgZ3JlZWsJCQlHcmVjCiAgbWVudXRyYW5zIGhlYnJldwkJCUhlYnJldQogIG1lbnV0cmFucyBoZWJyZXdwCQkJSGVicmV1XCAoZm9u6HRpYykKICBtZW51dHJhbnMgbGl0aHVhbmlhbi1iYWx0aWMJCUxpdHXgXCAoYuBsdGljKQogIG1lbnV0cmFucyBwaW55aW4JCQlNYW5kYXLtXCAoZm9u6HRpYykKICBtZW51dHJhbnMgcnVzc2lhbi1qY3VrZW4JCVJ1c1wgKGpjdWtlbikKICBtZW51dHJhbnMgcnVzc2lhbi1qY3VrZW53aW4JCVJ1c1wgKGpjdWtlbndpbikKICBtZW51dHJhbnMgcnVzc2lhbi15YXdlcnR5CQlSdXNcICh5YXdlcnR5KQogIG1lbnV0cmFucyBzZXJiaWFuCQkJU2VyYmkKICBtZW51dHJhbnMgc2VyYmlhbi1sYXRpbgkJU2VyYmlcIChsbGF07SkKICBtZW51dHJhbnMgc2xvdmFrCQkJRXNsb3ZhYwoiIHRleHQgZGVsIGRp4GxlZyBFZGl0YS9PcGNpb25zIGdsb2JhbHMvVWJpY2FjaW9ucy4uLgpsZXQgZzptZW51dHJhbnNfcGF0aF9kaWFsb2cgPSAiSW50cm9kde91IGxlcyB1YmljYWNpb25zIG9uIGNlcmNhciBmaXR4ZXJzLlxuU2VwYXJldSBlbHMgbm9tcyBkZWxzIGRpcmVjdG9yaXMgYW1iIHVuYSBjb21hLiIKIiB0ZXh0IGRlbCBkaeBsZWcgRWRpdGEvT3BjaW9ucyBnbG9iYWxzL0ZpdHhlcnMgZCdldGlxdWV0ZXMuLi4KbGV0IGc6bWVudXRyYW5zX3RhZ3NfZGlhbG9nID0gIkludHJvZHXvdSBlbHMgbm9tcyBkZWxzIGZpdHhlcnMgZCdldGlxdWV0ZXMuXG5TZXBhcmV1IGVscyBub21zIGFtYiB1bmEgY29tYS4iCiIgdGV4dCBkZWwgZGngbGVnIEVkaXRhL09wY2lvbnMgZGVsIGZpdHhlci9BbXBsYWRhIGRlbCB0ZXh0Li4uCmxldCBnOm1lbnV0cmFuc190ZXh0d2lkdGhfZGlhbG9nID0gIkludHJvZHXvdSBsYSBub3ZhIGFtcGxhZGEgZGVsIHRleHQgKDAgcGVyIGluZmluaXQpOiAiCiIgdGV4dCBkZWwgZGngbGVnIEVkaXRhL09wY2lvbnMgZGVsIGZpdHhlci9Gb3JtYXQgZGVsIGZpdHhlci4uLgpsZXQgZzptZW51dHJhbnNfZmlsZWZvcm1hdF9kaWFsb2cgPSAiU2VsZWNjaW9uZXUgZWwgZm9ybWF0IHBlciBlc2NyaXVyZSBlbCBmaXR4ZXIuIgoKCiIgbWVu+iBFaW5lcwptZW51dHJhbnMgJlRvb2xzCQkJRWkmbmVzCm1lbnV0cmFucyAmSnVtcFwgdG9cIHRoaXNcIHRhZzxUYWI+Z15dCSZTYWx0YVwgYVwgYXF1ZXN0YVwgZXRpcXVldGE8VGFiPmdeXQptZW51dHJhbnMgSnVtcFwgJmJhY2s8VGFiPl5UCQlTYWx0YVwgZW4mcmVyZTxUYWI+XlQKbWVudXRyYW5zIEJ1aWxkXCAmVGFnc1wgRmlsZQkJQ3JlYVwgdW5cIGZpdHhlclwgZCdldGkmcXVldGVzCm1lbnV0cmFucyAmU3BlbGxpbmcgICAgICAgICAmT3J0b2dyYWZpYQoiIHN1Ym1lbvogRWluZXMvT3J0b2dyYWZpYQogIG1lbnV0cmFucyAmU3BlbGxcIENoZWNrXCBPbiAgICAgICAgIEFjdGl2YVwgbGFcICZyZXZpc2nzXCBvcnRvZ3LgZmljYQogIG1lbnV0cmFucyBTcGVsbFwgQ2hlY2tcICZPZmYgICAgICAgICZEZXNhY3RpdmFcIGxhXCByZXZpc2nzXCBvcnRvZ3LgZmljYQogIG1lbnV0cmFucyBUb1wgJk5leHRcIGVycm9yPFRhYj5dcyAgICAgICBFcnJvclwgJnNlZ/xlbnQ8dGFiPl1zCiAgbWVudXRyYW5zIFRvXCAmUHJldmlvdXNcIGVycm9yPFRhYj5bcyAgIEVycm9yXCAmYW50ZXJpb3I8dGFiPltzCiAgbWVudXRyYW5zIFN1Z2dlc3RcICZDb3JyZWN0aW9uczxUYWI+ej0gIFN1JmdnZXJpbWVudHM8VGFiPno9CiAgbWVudXRyYW5zICZSZXBlYXRcIGNvcnJlY3Rpb248VGFiPjpzcGVsbHJlcGFsbCAgUmUmcGV0ZWl4XCBsYVwgY29ycmVjY2nzPFRhYj46c3BlbGxyZXBhbGwKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbiIgICAgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlbiIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9hdSIgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlbl9hdSIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9jYSIgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlbl9jYSIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9nYiIgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlbl9nYiIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl9ueiIgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlbl9ueiIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlbl91cyIgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlbl91cyIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJjYSIgICAgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJjYSIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJlcyIgICAgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJlcyIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJmciIgICAgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJmciIKICBtZW51dHJhbnMgU2V0XCBsYW5ndWFnZVwgdG9cICJpdCIgICAgICAgU2VsZWNjaW9uYVwgbCdpZGlvbWFcICJpdCIKICBtZW51dHJhbnMgJkZpbmRcIE1vcmVcIExhbmd1YWdlcyAgICAgICAgJkNlcmNhXCBhbHRyZXNcIGlkaW9tZXMKbWVudXRyYW5zICZGb2xkaW5nCQkJJlBsZWNzCiIgc3VibWVu+iBFaW5lcy9QbGVjcwogIG1lbnV0cmFucyAmRW5hYmxlL0Rpc2FibGVcIGZvbGRzPFRhYj56aSAgJkhhYmlsaXRhL0Rlc2hhYmlsaXRhXCBlbHNcIHBsZWNzPFRhYj56aQogIG1lbnV0cmFucyAmVmlld1wgQ3Vyc29yXCBMaW5lPFRhYj56dgkmTO1uaWFcIGRlbFwgY3Vyc29yXCB2aXNpYmxlPFRhYj56dgogIG1lbnV0cmFucyBWaWUmd1wgQ3Vyc29yXCBMaW5lXCBvbmx5PFRhYj56TXp4ICAmTm9t6XNcIHZpc2libGVcIGxhXCBs7W5pYVwgZGVsXCBjdXJzb3I8VGFiPnpNengKICBtZW51dHJhbnMgQyZsb3NlXCBtb3JlXCBmb2xkczxUYWI+em0JJlRhbmNhXCBt6XNcIHBsZWNzPFRhYj56bQogIG1lbnV0cmFucyAmQ2xvc2VcIGFsbFwgZm9sZHM8VGFiPnpNCVRhbmNhXCB0Jm90c1wgZWxzXCBwbGVjczxUYWI+ek0KICBtZW51dHJhbnMgTyZwZW5cIG1vcmVcIGZvbGRzPFRhYj56cglPYnJlXCAmbelzXCBwbGVjczxUYWI+enIKICBtZW51dHJhbnMgJk9wZW5cIGFsbFwgZm9sZHM8VGFiPnpSCU8mYnJlXCB0b3RzXCBlbHNcIHBsZWNzPFRhYj56UgogIG1lbnV0cmFucyBGb2xkXCBNZXQmaG9kCQlN6HRvJmRlCiIgc3VibWVu+iBFaW5lcy9QbOhjcy9N6HRvZGUKICAgIG1lbnV0cmFucyBNJmFudWFsCQkJTSZhbnVhbAogICAgbWVudXRyYW5zIEkmbmRlbnQJCQkmU2FnbmlhCiAgICBtZW51dHJhbnMgRSZ4cHJlc3Npb24JCUUmeHByZXNzafMKICAgIG1lbnV0cmFucyBTJnludGF4CQkJUyZpbnRheGkKICAgIG1lbnV0cmFucyAmRGlmZgkJCSZEaWZlcuhuY2llcwogICAgbWVudXRyYW5zIE1hJnJrZXIJCQkmTWFycXVlcwogIG1lbnV0cmFucyBDcmVhdGVcICZGb2xkPFRhYj56ZgkmQ3JlYVwgdW5cIHBsZWM8VGFiPnpmCiAgbWVudXRyYW5zICZEZWxldGVcIEZvbGQ8VGFiPnpkCSZFbGltaW5hXCB1blwgcGxlYzxUYWI+emQKICBtZW51dHJhbnMgRGVsZXRlXCAmQWxsXCBGb2xkczxUYWI+ekQJRWxpbWluYVwgdG90JnNcIGVsc1wgcGxlY3M8VGFiPnpECiAgbWVudXRyYW5zIEZvbGRcIGNvbCZ1bW5cIHdpZHRoCSZBbXBsYWRhXCBkZVwgbGFcIGNvbHVtbmFcIGRlXCBwbGVjcwptZW51dHJhbnMgJkRpZmYJCQkJJkRpZmVy6G5jaWVzCiIgc3VibWVu+iBFaW5lcy9EaWZlcuhuY2llcwogICAgbWVudXRyYW5zICZVcGRhdGUJCQkmQWN0dWFsaXR6YQogICAgbWVudXRyYW5zICZHZXRcIEJsb2NrCQkmT2J0aW5ndWVzXCB1blwgYmxvYwogICAgbWVudXRyYW5zICZQdXRcIEJsb2NrCQkmUG9zYVwgdW5cIGJsb2MKbWVudXRyYW5zICZNYWtlPFRhYj46bWFrZQkJQ3JpZGFcICZtYWtlPFRhYj46bWFrZQptZW51dHJhbnMgJkxpc3RcIEVycm9yczxUYWI+OmNsCQlMbGlzdGFcIGQnJmVycm9yczxUYWI+OmNsCm1lbnV0cmFucyBMJmlzdFwgTWVzc2FnZXM8VGFiPjpjbCEJJkxsaXN0YVwgZGVcIG1pc3NhdGdlczxUYWI+OmNsIQptZW51dHJhbnMgJk5leHRcIEVycm9yPFRhYj46Y24JCUVycm9yXCBzZSZn/GVudDxUYWI+OmNuCm1lbnV0cmFucyAmUHJldmlvdXNcIEVycm9yPFRhYj46Y3AJRXJyb3JcIGFuJnRlcmlvcjxUYWI+OmNwCm1lbnV0cmFucyAmT2xkZXJcIExpc3Q8VGFiPjpjb2xkCUxsaXN0YVwgJmFudGlnYTxUYWI+OmNvbGQKbWVudXRyYW5zIE4mZXdlclwgTGlzdDxUYWI+OmNuZXcJTGxpc3RhXCBubyZ2YTxUYWI+OmNuZXcKbWVudXRyYW5zIEVycm9yXCAmV2luZG93CQlGJmluZXN0cmFcIGQnZXJyb3JzCiIgc3VibWVu+iBFaW5lcy9GaW5lc3RyYSBkJ2Vycm9ycwogIG1lbnV0cmFucyAmVXBkYXRlPFRhYj46Y3dpbgkJJkFjdHVhbGl0emE8VGFiPjpjd2luCiAgbWVudXRyYW5zICZPcGVuPFRhYj46Y29wZW4JCSZPYnJlPFRhYj46Y29wZW4KICBtZW51dHJhbnMgJkNsb3NlPFRhYj46Y2Nsb3NlCQkmVGFuY2E8VGFiPjpjY2xvc2UKbWVudXRyYW5zIFNlJnRcIENvbXBpbGVyCQkmQ29tcGlsYWRvcgptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAlDb252ZXJ0ZWl4XCBhXCAmSEVYPFRhYj46JSF4eGQKbWVudXRyYW5zIENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yCVRvcm5hXCBhbFwgZm9ybWF0XCAmb3JpZ2luYWw8VGFiPjolIXh4ZFwgLXIKCgoiIG1lbvogQnVmZmVycwptZW51dHJhbnMgJkJ1ZmZlcnMJCQkmQnVmZmVycwptZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJCSZSZWZyZXNjYVwgZWxcIG1lbvoKbWVudXRyYW5zICZEZWxldGUJCQkmRWxpbWluYQptZW51dHJhbnMgJkFsdGVybmF0ZQkJCSZBbHRlcm5hCm1lbnV0cmFucyAmTmV4dAkJCQkmU2Vn/GVudAptZW51dHJhbnMgJlByZXZpb3VzCQkJQSZudGVyaW9yCmxldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltDYXAgZml0eGVyXSIKCgoiIG1lbvogRmluZXN0cmEKbWVudXRyYW5zICZXaW5kb3cJCQlGJmluZXN0cmEKbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCSZOb3ZhPFRhYj5eV24KbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQkmRGl2aWRlaXg8VGFiPl5XcwptZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXglEaXZpZGVpeFwgJmVuXCAjPFRhYj5eV15eCm1lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdglEaXZpZGVpeFwgJnZlcnRpY2FsbWVudDxUYWI+Xld2Cm1lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyCUUmeHBsb3JhZG9yXCBkZVwgZml0eGVycwptZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCSZUYW5jYTxUYWI+XldjCm1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JVGFuY2FcIGxlc1wgYWx0cmUmczxUYWI+XldvCm1lbnV0cmFucyBNb3ZlXCAmVG8JCQlNJm91XCBhCiIgc3VibWVu+iBGaW5lc3RyYS9Nb3UKICBtZW51dHJhbnMgJlRvcDxUYWI+XldLCQkmRGFsdFwgZGVcIHRvdDxUYWI+XldLCiAgbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkJJkJhaXhcIGRlXCB0b3Q8VGFiPl5XSgogIG1lbnV0cmFucyAmTGVmdFwgc2lkZTxUYWI+XldICQlDb3N0YXRcICZlc3F1ZXJyYTxUYWI+XldICiAgbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCUNvc3RhdFwgZCZyZXQ8VGFiPl5XTAptZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkJQWx0ZXJuYVwgY2FwXCBhbSZ1bnQ8VGFiPl5XUgptZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyCQlBbHRlJnJuYVwgY2FwXCBhdmFsbDxUYWI+XldyCm1lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkJJklndWFsYTxUYWI+Xlc9Cm1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJTeB4aW1hXCAmYWznYWRhPFRhYj5eV18KbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJTe1uaW1hXCBhJmznYWRhPFRhYj5eVzFfCm1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJTeB4aW1hXCBhJm1wbGFkYTxUYWI+XldcfAptZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CQlN7W5pbWFcIGFtJnBsYWRhPFRhYj5eVzFcfAoKCiIgbWVu+iBlbWVyZ2VudAptZW51dHJhbnMgJlVuZG8JCQkJJkRlc2bpcwptZW51dHJhbnMgQ3UmdAkJCQkmUmV0YWxsYQptZW51dHJhbnMgJkNvcHkJCQkJJkNvcGlhCm1lbnV0cmFucyAmUGFzdGUJCQkmRW5nYW54YQptZW51dHJhbnMgJkRlbGV0ZQkJCSZTdXByaW1laXgKbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCQlTZSZsZWNjafMKbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCQlTZWxlY2Np81wgZGVcICZwYXJhdWxlcwptZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJCVNlbGVjY2nzXCBkZVwgJmztbmllcwptZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJCVNlbGVjY2nzXCBkZVwgYmwmb2NzCm1lbnV0cmFucyBTZWxlY3RcICZBbGwJCQlTZWxlY2Npb25hLWhvXCAmdG90CgoKIiBiYXJyYSBkJ2VpbmVzCmlmIGhhcygidG9vbGJhciIpCiAgaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCiAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQogIGVuZGlmCiAgZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQogICAgdG1lbnUgVG9vbEJhci5PcGVuCQlPYnJlIHVuIGZpdHhlcgogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlEZXNhIGVsIGZpdHhlcgogICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsCURlc2EgdG90cyBlbHMgZml0eGVycwogICAgdG1lbnUgVG9vbEJhci5QcmludAkJSW1wcmltZWl4CiAgICB0bWVudSBUb29sQmFyLlVuZG8JCURlc2bpcwogICAgdG1lbnUgVG9vbEJhci5SZWRvCQlSZWbpcwogICAgdG1lbnUgVG9vbEJhci5DdXQJCVJldGFsbGEKICAgIHRtZW51IFRvb2xCYXIuQ29weQkJQ29waWEKICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCUVuZ2FueGEKICAgIHRtZW51IFRvb2xCYXIuRmluZAkJQ2VyY2EKICAgIHRtZW51IFRvb2xCYXIuRmluZE5leHQJQ2VyY2EgZWwgc2Vn/GVudAogICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldglDZXJjYSBsJ2FudGVyaW9yCiAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJQ2VyY2EgaSBzdWJzdGl0dWVpeAogICAgaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQogICAgICB0bWVudSBUb29sQmFyLk5ldwkJRmluZXN0cmEgbm92YQogICAgICB0bWVudSBUb29sQmFyLldpblNwbGl0CURpdmlkZWl4IGxhIGZpbmVzdHJhCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWF4CUFs52FkYSBt4HhpbWEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4JQWznYWRhIG3tbmltYQogICAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdAlEaXZpZGVpeCBsYSBmaW5lc3RyYSB2ZXJ0aWNhbG1lbnQKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NYXhXaWR0aAlBbXBsYWRhIG3geGltYQogICAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoCUFtcGxhZGEgbe1uaW1hCiAgICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2UJVGFuY2EgbGEgZmluZXN0cmEKICAgIGVuZGlmCiAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCUNhcnJlZ2EgdW5hIHNlc3Np8wogICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbglEZXNhIGxhIHNlc3Np8wogICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJRXhlY3V0YSB1biBzY3JpcHQKICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJQ3JpZGEgYSBtYWtlCiAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlPYnJlIGwnaW506HJwcmV0IGQnb3JkcmVzCiAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzCUNyZWEgdW4gZml0eGVyIGQnZXRpcXVldGVzCiAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAJU2FsdGEgYSB1bmEgZXRpcXVldGEKICAgIHRtZW51IFRvb2xCYXIuSGVscAkJQWp1ZGEKICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJQ2VyY2EgYSBsJ2FqdWRhCiAgZW5kZnVuCmVuZGlmCgoKIiBtZW76IFNpbnRheGkKbWVudXRyYW5zICZTeW50YXgJCQkmU2ludGF4aQptZW51dHJhbnMgJk1hbnVhbAkJCSZNYW51YWwKbWVudXRyYW5zIEEmdXRvbWF0aWMJCQlBJnV0b23gdGljYQptZW51dHJhbnMgb24vb2ZmXCBmb3JcICZUaGlzXCBmaWxlCUFjdGl2YS9EZXNhY3RpdmFcIGVuXCAmYXF1ZXN0XCBmaXR4ZXIKbWVudXRyYW5zICZTaG93XCBGaWxlXCBUeXBlc1wgaW5cIE1lbnUJTW9zdHJhXCB0b3RzXCBlbHNcICZ0aXB1c1wgYWxcIG1lbvoKbWVudXRyYW5zICZPZmYJCQkJJkRlc2FjdGl2YQptZW51dHJhbnMgQ28mbG9yXCB0ZXN0CQkJUHJvdmFcIGRlbHNcICZjb2xvcnMKbWVudXRyYW5zICZIaWdobGlnaHRcIHRlc3QJCVByb3ZhXCBkZWxcICZyZXNzYWx0YXQKbWVudXRyYW5zICZDb252ZXJ0XCB0b1wgSFRNTAkJQ29udmVydGVpeFwgYVwgJkhUTUwKbWVudXRyYW5zIEFzc2VtYmx5CQkJRW5zYW1ibGFkb3IKbWVudXRyYW5zIENvbmZpZwkJCUNvbmZpZ3VyYWNp8wptZW51dHJhbnMgU2V0XCAnJnN5bnRheCdcIG9ubHkJCU5vbelzXCBlbFwgcmVzc2FsdGF0XCBkZVwgc2ludGF4aQptZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQlDYXJyZWdhXCB0YW1i6VwgZWxzXCBwbHVnaW5zCgpsZXQgJmNwbyA9IHM6a2VlcGNwbwp1bmxldCBzOmtlZXBjcG8K