{"bookmark":"eyJ0aXRsZSI6IkdpdEh1YiIsInVybCI6Imh0dHBzOlwvXC9naXRodWIuY29tXC8iLCJvcmRlciI6\nMSwidXBkYXRlZF9hdCI6MTczMjA4NjIyMiwiY3JlYXRlZF9hdCI6MTczMjA4NjIyMn0=\n","settings":"eyJob21lIjoiYWJvdXQ6aG9tZSIsImRsbWFuYWdlciI6ImlkbS5pbnRlcm5ldC5kb3dubG9hZC5t\nYW5hZ2VyLnBsdXMiLCJ2aWRlb3BsYXllciI6Im9yZy52aWRlb2xhbi52bGMiLCJkaXNwbGF5ZWRt\nZW51cyI6IjIsNyw4LDE0LDI0LDUsMjcsMTEsMTgsMTAsMSwzNiwyOCwzNywyOSwzMiwzMywyMywx\nNSwzIiwiYXBwZmxhZyI6MzQwMjIsIndlYmZsYWciOjk3MDE5NTQ5LCJzZWFyY2gyIjotMSwiYXBw\ndWkyIjowLCJsb2dvY2hpb2NlIjowLCJ1cmxiYXJjb2xvciI6LTExNzE0MjI3LCJ2ZXJzaW9uIjox\nNCwiZmF2aW5mbyI6ODE5MjAwLCJsb2dvaW5mbzIiOjE5Mjk0NzIwMCwic2VhcmNoaW5mbyI6MjQy\nNDkzMiwiY3VzdG9taW5mbyI6MCwidXBkYXRlcl9maWx0ZXJfc3Vic2NyaXB0aW9ucyI6ODY0MDAw\nMDAsInVwZGF0ZXJfc2NyaXB0cyI6NjA0ODAwMDAwfQ==\n","kvdata":"W10=\n","other":"eyJzY3JpcHRJZCI6IjNmYTIzYmYyMmEwN2EwOWRkODNhYzMzM2NhNWRjZTgxIiwiZW5hYmxlZCI6\ndHJ1ZSwidXJsIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDg1\nNDgzXC8lRTclQUUlODAlRTQlQjklQTYlRTQlQkMlOTglRTUlOEMlOTYudXNlci5qcyIsImNvZGVW\nMiI6IlwvXC8gPT1Vc2VyU2NyaXB0PT1cblwvXC8gQG5hbWUgICAgICAgICDnroDkuabkvJjljJZc\nblwvXC8gQG5hbWVzcGFjZSAgICBodHRwczpcL1wvZ2l0aHViLmNvbVwvV2hpdGVTZXZzXC9UYW1w\nZXJNb25rZXlTY3JpcHRcblwvXC8gQHZlcnNpb24gICAgICAyMDI0LjExLjE5XG5cL1wvIEBhdXRo\nb3IgICAgICAgV2hpdGVTZXZzXG5cL1wvIEBkZXNjcmlwdGlvbiAg5pSv5oyB5omL5py656uv5ZKM\nUEPnq6\/jgIHlsY\/olL3lub\/lkYrjgIHkvJjljJbmtY\/op4jkvZPpqozjgIHph43lrprlkJHpk77m\njqXjgIHlhajmloflsYXkuK3jgIHoh6rliqjlsZXlvIDlhajmlofjgIHlhYHorrjlpI3liLbmlofl\nrZfjgIHliqvmjIHllKTphpJcL+i3s+i9rEFwcOOAgeiHquWumuS5ieWxj+iUveWFg+e0oOetiVxu\nXC9cLyBAbGljZW5zZSAgICAgIEdQTC0zLjAtb25seVxuXC9cLyBAaWNvbiAgICAgICAgIGRhdGE6\naW1hZ2VcL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFBQ0FDQVlBQUFE\nRFBtSExBQUFBQVhOU1IwSUFyczRjNlFBQUVLMUpSRUZVZUY3dFhRdDBWTVVaXC91YnViZ0lKandE\nSkRXcXBqNkw0TEVKYnBUMEMxcjdVRm11MVdMSkJxN1hVSGpYWkRXRFZVeXRncFlxMnVqZFVXXC9G\neHJNZmNDRlNQcmRUYTFsYXFiVkdoYWxGOEFmVlpRamJrQVFTU3plN2VLYk1RSUh0Mzc4eTllXC9l\nVnpKeVRnKzc5NVwvXC9cLytlYTc4XC85Mzd0d1pBbG1HTkFKa1NMZGVOaDZTQUVPY0JKSUFrZ0Q1\nUllBdVhxeHNhWFwvSk43SzAwbHNhOFwvZzhub2czRXZmNG9rYkU1XC9INHZJcWgrQlFsN28xVDRp\nUEU4QnFKZnozZU9JMTU4dXY1UU9zZWc4UU1xc1E4aEViWnYxN1FxT0dMeFF6cWlYbUpFVFVNYnl6\ncWlVY2o4ZExZY0c4OHVqdXlJelp4M0psUnNuaXhrYzkyNUdRRW9MTm5lMXFxUFZOOFhtV1NZZUI0\nQUJNVlFpWWFvTWNUWUd3K0FjaTNiUXAwS0NDYkRVcTNLTUJtS05qU2hcL2hiUjRWV3ZwSUwzN0pD\nZ0xiZzNLa0dqVThqbEV3aENrNm5GRk1BRk5RZG13dHdNN0ZCUVNNRVdFY0kyV0FZMktnb3lyTlZv\nVWRiTXRHWnFxNnJCTmh4YmMySmhsZTVtbEI2TlpVZDdtcGZFV0FiS0ZaQVVWYTRTUVJYQ05BK2Y4\nNkVlTnh6TlVDdkFURFMxWlpMWlFNUVlFUXdLTzVYRk9VK040aVFNUUZhQVwvN0xDTWd5Z0k2WGZa\nVTdCQklqQXVndFZWcnpmWmxZellnQWJjR2ErWlNTWDJUaWdLeWJJUUtFTEZkRFRmVk90VGdtUUd2\nUWZ4K2grSUZUdzdLZXF3ZzhwMnI2T1U0ME9pSkFPT0RmQ3VBNEp3WmxuU3doUUJCV1EzcTFYZTIy\nQ1JBTytsdEJvZG8xSk9WemdRQjlROVdhVDdOanlSWUJ3Z0hcLzN3QjgwWTRCS1p0akJBaTlTUTAx\nTHhXMUtreUFjTEMyRVpUV2lTcVdjbmxGNEJKVjAxZUxlQ0JFZ0xaQXpWVVU1TmNpQ3FWTVFTRFFv\nNERNck5TYTF2Tzg0Ukxnd0NUUHlcL0k1bndkbHdWMVwvV3RYMHJcL084NGhJZ0hLaTlEYUEzOEJU\nSjZ3V0pBRGNVV0JJZ01iZnZJU1wvTDZkMkM3RndCcCtoYVZXdTJUTm90Q1NBVFB3R01DMTJFNEFv\nMXBEK2N6czIwQkdDdmRFR05sK1ZidlVMdllhNVwvNjFWTlA4TTJBY0wxXC9nQUlRbHoxVXFEZ0Vh\nQ0VuRlVkYXZwbktrZlRqd0FCZnhNRlwvQVhmT3VtZ0NBSTNxSnErekJZQldnUCs3UVN3UGJjczRv\nMlZUUG01RndtcG9BRDJQdk9Fa0d3bVFxTCs5UHpqTHpDNmQyZGlLbnQxS1o1U0dcL1VMaEFuUUdx\najVOQUg1VFwvWThTcTk1M0tKR0tHUEdjVTEzTHJzQnNaYVB1SEtaQ1BpT1B4a1YxXC95WXF5THky\na3ZZOVhBalZ5NWZBZ1RvcU5MMGxLQ21EQUg1aXZcL2VvNDdHbU90K3hzV3A3ODNYc0hQRm5WeTVU\nQVZHenBtSFlkUE81cXJwWHZVUWV2NzFWNjVjWGdVTVk2cTZcL0xGWGszMUlRNENhUmhDUzgzblwv\nOHZPXC9qYkt2Zm91TDArN0g3a2Z2aTJ1NWNwa0lFSjhQbGJjXC9DSGo0YTFrN2Z0cUFlSHM0RTNO\nWnIwc0pMcTRPNmFhWW1ab0FBZjhxQUxPejdsV1NnYkUzM2dGUDlWR1dabzFkWFdpXC9tUzA5ekc0\ncG5mcDVqTHJzV3E2UjZKYTNzT2VaeDdseWRnV1lYamNMQmIybVdtdStWMndFQ05ZK0QwcW51K2tB\nVDFmWk9kOUErUVUxUERIWHI3Y0ZhMVBxSFAzRDYxRnk0cWRkdHllcU1KMWZvdlZUeU4ycWF2cFB4\nQWdROEc5bUgyOWtZTXhXVlk5NkJDb0NpNkNVNTM1QmNTcWdoNTB4QXlQOVY5bHFnOXZDcmhPQTRn\nRzFVWjhuU2dEMlBEUEM3VWFsMHpleTVnY1lkdWJNWEprYllDY1phT0lyUVVYREVuaVBcL0dSZVwv\nT2szNmpvQmdEV3Fwc1wvaUVvQjlxOWZXK1c0OFY2MHZuWHdHUmwwUnlKVTVrNTFrb011K2ZBSEt2\nXC9HZHZQbVROUUpRK29MYTJEeURTNEROZGVlVmpsYkc5T1lDQVJaalIxM1pBSGJYNWFzY1RvQ1NV\nNmRpOVBjYUFFWEpsenNIN1daaEJGaW5hdm9YdUFUWXZ2RFNjaVVhNzg0MkFyNWpKbUxVOXhkQUdU\nR0theW81SVwvWk5QTW15anAwTXV1dVh0eVowS1JWak1mYjYyMEdHbDl2MmgxWHdUamdXcEhSWTJy\ncDJmR0pLK3YzaU9pTXVzRUhWOU05eENkQVp2THdpU3ZzNnhmWGFsXC9SKzRwakVzTzhaeDE5Y0hI\nM3ZYWFJwU3dZWXFRbzFXUk5nODV2b3VrZDRYV1JDMTdoRkdwUXhsZHpHUlBcLzdEcm9hYnpISlZW\neDdFNnlJMmZQYzAraituYlhmWE9PWkNieW1hanI3U0hkQU1jMEQ3RnBRVTlrYkkyMloyVXBmbTgy\ndER6OW5Ga2dKZjlnM3V0clJ2dGo4MGN1bzc5YWhkTW8wU3hjN2ZcLzVqeEQ1K1g2Z1pGY0VsWUNN\nU3I3REpIamJwazZxTStHWXRoblwveFwvTFFxakQzZDZGaFNCOXJYeHpPVGxlc1UyRlN0NmFkeUNk\nQVduSHNFcGNZMnQ3MG9tWFFxeW1mVmdOMzlvaVZkSEN3NVpRcEd6MXRvcVdidm41XC9FbnFldEY4\nYXlPNWJkdVNLRnhtTFlzZkM3YVVWRmZOcTk4a0gwcm1NcjZcL05TM2xFMVwvVVF1QWJiVnpcLzZr\nbFwvZytjTk5GTzBBenV5SXZWM2hoSU43NlAzVGM5cU8welNnXC9memJLdm5xaFVEUDdOcjJDbmZm\nelA0R3NYUGFnZFI2dzlXMTBMZitwa00wc0NQMVgxZlJQY1FuUTJ1QVwvamhoZ24zNjVWdXdRZ01W\nSkZpOTVaZlJWUDBMSlNaTXR4YnBDaXhGOW44MXBEU3gyXC9ObTk4Z0gwcm51TzUwN2krdWg1QzFC\neXlsUkwyWjJcL1hvYSt0emNLNlhOVGlJQjhXS1UxSGMwbFFGdGc3aVFLNDIwM2pZc0FIdnRnS1wv\nYitcL1JsRVh2bVhrT2tSMzc0Y3c4XC82aXFWczk1T1BvbWZ0SHgwUklQYlJlNG1relU3Mnp2S2Jz\nbk12dHZTSmhTVVdudkpRV2xSTlA1SkxnUGFHbWxQaUJubkRUUWV0Q05EMzdpYjB2dlIzUlA2ZGNz\nVlNXamZLdmpRTDViUG1XTHFaTHBSWStjTTZuUG5UdVwvNEYyeEN3eEpRbHFGWWw4dnFcL3NldkJ1\nMnpyenJRQ0JYWlVhM29WbHdEaG9QOTBVSmplRzJmaVFETGdMSnVPYm4wYmZhOXZBQVBFU1JuMnVl\na1lXZnREeTZwR1Z3ZmFGNXM3SkJVQitqYTl1cCtJRzdrZjA2UzE2WjF3SE1Zc3NJN3h4czVPdENc\nL2l2MlYwZ2dtblRwZXE2V080Qkdocm1QTlphaWpPVVVqaEJRT2NKVnlzMFwvdlwvUU5taXJrT0Z4\nWE1XMTYwS3V6djdKMGhLSnAwRzM3RnN3ekhyc2lmRnNyRitBc1QrOXlINlhsK1B5TVlOaUczN2tL\nZUtlNTJVbGFOc3h0ZTRjcWw4NGxiS1hHQ1BxdW1tOXp1bWVZRFdZTTNuQ1NWaWdWalFLVVwvVmVN\nVGJ0bk9seHl4Y3luMU0zUG1yMjlEM1RtWVJLakZoUXhSRU4yXC9pK2pTSUJDS3FwcHVtS2swRUNE\nZk1uUTdEZUQ0ZkRXZHZCTm1iUWRGUklCOCtGckZOUTlWMDBcL0ltRXdGYWduUE85bEJGN0xuSFpU\nU0kxNGV4TjkyVm1KZTNLcnQrc3h5UlYxODhLQ0s2Y3RkbGQxMVYxN2ZsTFZ0UEhFNk1xNXB1NnUr\nQ0lnQnJsTWlqVlBMN0FkNDh2Qk93Y2wySDVUWjJIam1kK0ZjVUJHRDV3dGdibGdFZXJcL1VvOE1n\nOUIrY01KQUhFNkZBVUJHQk5HWFY1UFVwUFA5T3lWZXlSYlhmemlvU01KTUFnSThEd3M4XC9EaUF2\nbldyYks2R3hIeDlMNVlDOXBKQUVHR1FGOHgwMUNSZjNOM0ZheGowUFlSeUtTQUZ5b0VnSkZFd0xZ\neXBxeE45N0pmUnJvV2ZzMHVwOXNrZ1FRNlwvXC9pSVVBaUQ3Z2lBTFpnMUtxdzJidk9PMjYwWElr\namlFMVd4Y3JQdlpqcm8zd0tTT29DTm5YTTN0bnpDbHVleFpacEZYSVJDVkdTQUVrOXlGYlkrQ1lj\nSzlTdmVacGJGXC9KTjlDbEZFa0FZenVJVGxDTkFVcCtKelBibDRvN0lGWlVrQVNRQlpCSjRPQWZj\nR2dIWWExMzJ4OTN0TXNXdHpsWWpPS21YYXRUZzVTQnlCTWpTQ0NDeTFqRGJ3XC96ZVp4NkhKSUJO\nbE4wY0FVVFg5ZHQwVVZoY0VrQVlxa09Da2dCbTBIS1I5QmJNVkxBa2dDUUFkXC8yOHlCMGhjd0I3\ndysrUUhBRXlYV1hEK3hSZDVnRDJTSmlRem1VSU9Id3B1VjFYUmZ5VUJMQ0xxaVJBU3NSRVFwNERx\nQWRVR2JJaHdPbHVHM0lFeUpSeWFlcUxBQ3R5UjRna2dUSUVIT29FT1FMWUpMUUlVV1VPWUJOVW1R\nU21Ca3hreEhNQXRjd0JaQWlRSVFEUkxXODZ2bmw0R3o3SUVPQUFXcEhZS2pJa2lpU0JEdHl6VlVV\nU3dCWmMrNFVsQWVTN0FQa3VJSWtESWlPZWczdE5Kb0daZ3NhckwwTUFENkVVMTJVSWtDRWdaeUdB\nUFFieW5nTDYxd2YyNzFyRTFncjJcL3lhZkFoemM0YndxdVJ3QjVEeUFuQWR3dlBXNkNGRUhYUTRR\ncnE4NUM0VFkzeVdSZDlzZmRsMEVXSkdzV0dRZVFJNEFCNEdQcTVwdTJuYkZ0RFIrZTEzdE5FV2g2\nMnowcDIxUlNZQzhKSUc5Kzg0UEhwNXMyVVNBdG5yXC9aeWpCQnR1OWFxTkNzUkJBNU9UUTd0OCtE\nSFp1c0ZVcGtBOUR1bFZOTngzTFp0NG9zbTd1WktJWXI5bm9UOXVpeFVLQTBWZmZpSklUVEdjc0RH\nZ3YyXC9lWHQ5MXRJUkNBQUoxVm1tN2FmODlFZ1BhNjJwUGpDczNxRnByRlFBQ1JcL0lJeG9ldnVt\neEg5d0hwM1wvVUlnd0w2VFE5djJuUnhxT3FQSEhBTG1mK2NFR3Zka2RjZUZRaVVBS1JzQlQyVjE0\ndmlZRVJkZEpqU3lkU3dKSU42NW94aEN3RFpWMDAzbjhwcERRQllPakVoR0o1Y0VFT3BGaDBMR3pn\nNjAzOUlBeEdNRlR3QUtmRml0NmZ3REk5cm56NWtRanl1WmI1MXRBY2xnSWNDZU5ZOWg3N05QY2Vs\nVENDRUF3RlpWMDAwblk1bERRSllPalRvY3BjRkFnTmoyanhQeG4wWWl4VUlBd1VPakZ0UlVlck40\nYkJ4RGF6QVFvSHYxUStqNTUxKzVuYzhFeGl5NE5YR3dwRlVSbWZnU01wWldpTHloYWsybmNlY0Iz\nZ3RlWGxHZTVZTWppNWtBYkdaeHp4OVdnVzFZTFZyRzNYSVBsRkVWZVNZQXhBNk96TVhSc2NWR0FH\nTlhGOWp4TTcydnJBUGJuTkpPWVhjK0d3RjRKZHNqQUFIV1YybTZhZU5GVXc2UWk4T2ozU1FBRDlo\nTXJyUHpmZGdmN2VQSCtYUjJSbDV5SllaOTRSeXVHOWttQUFDeHc2TnpjWHk4V3dUZ29wcGxBZDZY\ndzhPbmZ3MmxrMDNuTmFmMGFzZjEzeE5LS0owMmlRRFBWMm42VEc0T3dBVENBZjl1QUtZRGhwd2FU\nNjQzV0FqQU83MVVGSzlVQjJTTDFyVWh0MGJWOUZtaUJHREhiZkpQVTdaaFwvWEJSU1lDQndPMVpz\neEo3blwvMjlRelFGcTFFOG9EYnE4OFFJRUt4OUhwUk9GMVJ0VzB3U1lDQmtIYmRkaDNpcjYrZDFK\nXC9mTHJhcW1cLzBTTUFBSFwvS2dEOG5acHRkXC8zK0NwSUFoNERyZnZ4aDlMeGdcL1RyWkljd0Rx\ndTE3R1hUTnZwZEI5NG9Sb0w2bUVZUlluNEdhZ1ZlU0FFQjhSMnZpWEdQZVdvSU1ZQjVJQUlLTHEw\nUDZFMklFQ1BqcjkwMWdhVzRabDBuZ0lRUm9MTHFcLzQ5ZitFVWIzcm14QmJOWkxNRVVONmFaMUhp\nbDNTODMybW9EQk1nTHdOcW1ra1Y0WXUzY08rR01ucU1ZK2ZqOTNIYzhzRVlUVmtGNmR5bWphN1hM\nREFmOTdBSTdKaHFlTUFMeVNpNE1VZVQ0TW11dVVcL2xadGJFNlowMWtSNEFFQVZ3NGFFSVp5UXlp\ndFZ4dWJsOXNkQVZqbk14TElVdVFJVUNOK2V2WHlsZit4UllDMjROd2pRSTBORkRpeXlOc1wvcE4w\nbkJFOVZoZlFMMG9GZ3VXVithNzFcL01TRllOS1FSTFBMR0U1QlpWVnJUR2tjRWtLTkFjZmMrNys3\nZlwvNERBS1hJVTRDRlV1TmQ1ZDc4UUFlUW9VTGdkYk9XWnlOMHZSQUFtRkE3NHJ3V1E4akdpT09F\nWjlGNzNLQ0F6SzdXbTlieVdja05BdjRMV2V2K2poS0NXcDFCZUx3Z0VMbEUxZmJXSUo4SUVPREFT\nWkhXZGdJakRVb2FEQUtFM3FhSG1wYUk0MlNKQVM5M3NLb1wvaUM0c3FsM0s1Um9DK29Xck5wcVhm\nbHJtQ1hSZDNCT2FjYVVCNTBXNDlLWjlsQkN4ZStMaEtBS1pzWjhQc3NSSHFcL1Jzb21aemxaa24x\nWWdnOHAybzZmK2x4Q2wyMlFrQnlcL2RaQXpRb0NZbHBuSnVhemxISUZBVUtXcTZFbXRuN0RVY21J\nQUFjU1E1WndYQWZBNThnRFdja1JBb1RnSTFDNnRFcHJ2cytSZ2dPVk1pWUEwOU5TVjN1eVI4R2xB\nR1VmMWN1WFI1bjBDSzh1eGF0RW9ZK1VrTmdqbys5ZTNjRVQ1MTEzaFFEOVJ0aFRndGZqdlpRQ2w4\nbjhnQWU5emVzVWZ5WUtIcWtLNlUwMmExcUt1MHFBd3kyRkFcLzRaQUdaUWlwa2dtRUdBRWpjZEh3\nSzZXZ0Q4Q2NBXC9QQVpaTjI1NWtcL05ERHl6QXlob0JrbTIyQk9lYzdUV1U4VkRJZU1Nd2ppQ0Vq\nQWZCZUZDVUFXRDcxXC9sQXFKZFE0cVdVXC9mZUIzdzVjSTRDWDdzOHo5c3NDU29HUklBNGdDaUJH\nZ0tnQkdpTWdVWHJnXC85bnZBSWtpOFRzT1wvazZCWGFEWURvTHRGTFFGaEd3SHBWdXF0ZWFOdVdo\nZnpnaVFpOFpJR1wvWVJrQVN3ajltZ3FpRUpNS2k2MDM1akpBSHNZemFvYWtnQ0RLcnV0TitZXC93\nTmhQXC9YNWxHRGFwUUFBQUFCSlJVNUVya0pnZ2c9PVxuXC9cLyBAc3VwcG9ydFVSTCAgIGh0dHBz\nOlwvXC9naXRodWIuY29tXC9XaGl0ZVNldnNcL1RhbXBlck1vbmtleVNjcmlwdFwvaXNzdWVzXG5c\nL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi5qaWFuc2h1LmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAg\nICAgICo6XC9cLyouamlhbnNodS5pb1wvKlxuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC91\ncGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzQ5NDE2N1wvMTQxMzI1NVwvQ292ZXJVTUQu\nanNcblwvXC8gQHJlcXVpcmUgICAgICBodHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBt\nXC9Ad2hpdGVzZXZcL3V0aWxzQDIuNS4zXC9kaXN0XC9pbmRleC51bWQuanNcblwvXC8gQHJlcXVp\ncmUgICAgICBodHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBtXC9Ad2hpdGVzZXZcL2Rv\nbXV0aWxzQDEuNC4yXC9kaXN0XC9pbmRleC51bWQuanNcblwvXC8gQHJlcXVpcmUgICAgICBodHRw\nczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBtXC9Ad2hpdGVzZXZcL3BvcHNAMS45LjBcL2Rp\nc3RcL2luZGV4LnVtZC5qc1xuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC9mYXN0bHkuanNk\nZWxpdnIubmV0XC9ucG1cL3Ftc2dAMS4yLjdcL2Rpc3RcL2luZGV4LnVtZC5qc1xuXC9cLyBAY29u\nbmVjdCAgICAgICpcblwvXC8gQGdyYW50ICAgICAgICBHTV9kZWxldGVWYWx1ZVxuXC9cLyBAZ3Jh\nbnQgICAgICAgIEdNX2dldFJlc291cmNlVGV4dFxuXC9cLyBAZ3JhbnQgICAgICAgIEdNX2dldFZh\nbHVlXG5cL1wvIEBncmFudCAgICAgICAgR01faW5mb1xuXC9cLyBAZ3JhbnQgICAgICAgIEdNX3Jl\nZ2lzdGVyTWVudUNvbW1hbmRcblwvXC8gQGdyYW50ICAgICAgICBHTV9zZXRWYWx1ZVxuXC9cLyBA\nZ3JhbnQgICAgICAgIEdNX3VucmVnaXN0ZXJNZW51Q29tbWFuZFxuXC9cLyBAZ3JhbnQgICAgICAg\nIEdNX3htbGh0dHBSZXF1ZXN0XG5cL1wvIEBncmFudCAgICAgICAgdW5zYWZlV2luZG93XG5cL1wv\nIEBydW4tYXQgICAgICAgZG9jdW1lbnQtc3RhcnRcblwvXC8gQGRvd25sb2FkVVJMIGh0dHBzOlwv\nXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzQ4NTQ4M1wvJUU3JUFFJTgwJUU0JUI5\nJUE2JUU0JUJDJTk4JUU1JThDJTk2LnVzZXIuanNcblwvXC8gQHVwZGF0ZVVSTCBodHRwczpcL1wv\ndXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80ODU0ODNcLyVFNyVBRSU4MCVFNCVCOSVB\nNiVFNCVCQyU5OCVFNSU4QyU5Ni5tZXRhLmpzXG5cL1wvID09XC9Vc2VyU2NyaXB0PT1cblxuKGZ1\nbmN0aW9uIChRbXNnLCBET01VdGlscywgVXRpbHMsIHBvcHMpIHtcbiAgJ3VzZSBzdHJpY3QnO1xu\nXG4gIHZhciBfYTtcbiAgdmFyIF9HTV9kZWxldGVWYWx1ZSA9IFwvKiBAX19QVVJFX18gKlwvICgo\nKSA9PiB0eXBlb2YgR01fZGVsZXRlVmFsdWUgIT0gXCJ1bmRlZmluZWRcIiA\/IEdNX2RlbGV0ZVZh\nbHVlIDogdm9pZCAwKSgpO1xuICB2YXIgX0dNX2dldFJlc291cmNlVGV4dCA9IFwvKiBAX19QVVJF\nX18gKlwvICgoKSA9PiB0eXBlb2YgR01fZ2V0UmVzb3VyY2VUZXh0ICE9IFwidW5kZWZpbmVkXCIg\nPyBHTV9nZXRSZXNvdXJjZVRleHQgOiB2b2lkIDApKCk7XG4gIHZhciBfR01fZ2V0VmFsdWUgPSBc\nLyogQF9fUFVSRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX2dldFZhbHVlICE9IFwidW5kZWZpbmVk\nXCIgPyBHTV9nZXRWYWx1ZSA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV9pbmZvID0gXC8qIEBfX1BV\nUkVfXyAqXC8gKCgpID0+IHR5cGVvZiBHTV9pbmZvICE9IFwidW5kZWZpbmVkXCIgPyBHTV9pbmZv\nIDogdm9pZCAwKSgpO1xuICB2YXIgX0dNX3JlZ2lzdGVyTWVudUNvbW1hbmQgPSBcLyogQF9fUFVS\nRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQgIT0gXCJ1bmRlZmlu\nZWRcIiA\/IEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQgOiB2b2lkIDApKCk7XG4gIHZhciBfR01fc2V0\nVmFsdWUgPSBcLyogQF9fUFVSRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX3NldFZhbHVlICE9IFwi\ndW5kZWZpbmVkXCIgPyBHTV9zZXRWYWx1ZSA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV91bnJlZ2lz\ndGVyTWVudUNvbW1hbmQgPSBcLyogQF9fUFVSRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX3VucmVn\naXN0ZXJNZW51Q29tbWFuZCAhPSBcInVuZGVmaW5lZFwiID8gR01fdW5yZWdpc3Rlck1lbnVDb21t\nYW5kIDogdm9pZCAwKSgpO1xuICB2YXIgX0dNX3htbGh0dHBSZXF1ZXN0ID0gXC8qIEBfX1BVUkVf\nXyAqXC8gKCgpID0+IHR5cGVvZiBHTV94bWxodHRwUmVxdWVzdCAhPSBcInVuZGVmaW5lZFwiID8g\nR01feG1saHR0cFJlcXVlc3QgOiB2b2lkIDApKCk7XG4gIHZhciBfdW5zYWZlV2luZG93ID0gXC8q\nIEBfX1BVUkVfXyAqXC8gKCgpID0+IHR5cGVvZiB1bnNhZmVXaW5kb3cgIT0gXCJ1bmRlZmluZWRc\nIiA\/IHVuc2FmZVdpbmRvdyA6IHZvaWQgMCkoKTtcbiAgdmFyIF9tb25rZXlXaW5kb3cgPSBcLyog\nQF9fUFVSRV9fICpcLyAoKCkgPT4gd2luZG93KSgpO1xuICBjb25zdCBDb21tb25VdGlsID0ge1xu\nICAgIFwvKipcbiAgICAgKiDmt7vliqDlsY\/olL1DU1NcbiAgICAgKiBAcGFyYW0gYXJnc1xuICAg\nICAqIEBleGFtcGxlXG4gICAgICogYWRkQmxvY2tDU1MoXCJcIilcbiAgICAgKiBhZGRCbG9ja0NT\nUyhcIlwiLFwiXCIpXG4gICAgICogYWRkQmxvY2tDU1MoW1wiXCIsXCJcIl0pXG4gICAgICpcL1xu\nICAgIGFkZEJsb2NrQ1NTKC4uLmFyZ3MpIHtcbiAgICAgIGxldCBzZWxlY3Rvckxpc3QgPSBbXTtc\nbiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9\nXG4gICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEgJiYgdHlwZW9mIGFyZ3NbMF0gPT09IFwic3Ry\naW5nXCIgJiYgYXJnc1swXS50cmltKCkgPT09IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAg\nICAgfVxuICAgICAgYXJncy5mb3JFYWNoKChzZWxlY3RvcikgPT4ge1xuICAgICAgICBpZiAoQXJy\nYXkuaXNBcnJheShzZWxlY3RvcikpIHtcbiAgICAgICAgICBzZWxlY3Rvckxpc3QgPSBzZWxlY3Rv\nckxpc3QuY29uY2F0KHNlbGVjdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWxl\nY3Rvckxpc3QucHVzaChzZWxlY3Rvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0\ndXJuIGFkZFN0eWxlKGAke3NlbGVjdG9yTGlzdC5qb2luKFwiLFxcblwiKX17ZGlzcGxheTogbm9u\nZSAhaW1wb3J0YW50O31gKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorr7nva5HTV9nZXRS\nZXNvdXJjZVRleHTnmoRzdHlsZeWGheWuuVxuICAgICAqIEBwYXJhbSByZXNvdXJjZU1hcERhdGEg\n6LWE5rqQ5pWw5o2uXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBzZXRHTVJlc291cmNlQ1NTKHtc\nbiAgICAgKiAgIGtleU5hbWU6IFwiVmlld2VyQ1NTXCIsXG4gICAgICogICB1cmw6IFwiaHR0cHM6\nXC9cL2V4YW1wbGUuY29tXC9leGFtcGxlLmNzc1wiLFxuICAgICAqIH0pXG4gICAgICpcL1xuICAg\nIHNldEdNUmVzb3VyY2VDU1MocmVzb3VyY2VNYXBEYXRhKSB7XG4gICAgICBsZXQgY3NzVGV4dCA9\nIHR5cGVvZiBfR01fZ2V0UmVzb3VyY2VUZXh0ID09PSBcImZ1bmN0aW9uXCIgPyBfR01fZ2V0UmVz\nb3VyY2VUZXh0KHJlc291cmNlTWFwRGF0YS5rZXlOYW1lKSA6IFwiXCI7XG4gICAgICBpZiAodHlw\nZW9mIGNzc1RleHQgPT09IFwic3RyaW5nXCIgJiYgY3NzVGV4dCkge1xuICAgICAgICBhZGRTdHls\nZShjc3NUZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIENvbW1vblV0aWwubG9hZFN0eWxl\nTGluayhyZXNvdXJjZU1hcERhdGEudXJsKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDmt7vliqA8bGluaz7moIfnrb5cbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQGV4YW1w\nbGVcbiAgICAgKiBsb2FkU3R5bGVMaW5rKFwiaHR0cHM6XC9cL2V4YW1wbGUuY29tXC9leGFtcGxl\nLmNzc1wiKVxuICAgICAqXC9cbiAgICBhc3luYyBsb2FkU3R5bGVMaW5rKHVybCkge1xuICAgICAg\nbGV0ICRsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG4gICAgICAkbGlu\nay5yZWwgPSBcInN0eWxlc2hlZXRcIjtcbiAgICAgICRsaW5rLnR5cGUgPSBcInRleHRcL2Nzc1wi\nO1xuICAgICAgJGxpbmsuaHJlZiA9IHVybDtcbiAgICAgIGRvbVV0aWxzLnJlYWR5KCgpID0+IHtc\nbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCgkbGluayk7XG4gICAgICB9KTtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDmt7vliqA8c2NyaXB0Puagh+etvlxuICAgICAqIEBwYXJh\nbSB1cmxcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGxvYWRTdHlsZUxpbmsoXCJodHRwczpcL1wv\nZXhhbXBsZS5jb21cL2V4YW1wbGUuanNcIilcbiAgICAgKlwvXG4gICAgYXN5bmMgbG9hZFNjcmlw\ndCh1cmwpIHtcbiAgICAgIGxldCAkc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNj\ncmlwdFwiKTtcbiAgICAgICRzY3JpcHQuc3JjID0gdXJsO1xuICAgICAgcmV0dXJuIG5ldyBQcm9t\naXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICRzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAg\nICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH07XG4gICAgICAgIChkb2N1bWVudC5oZWFk\nIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQoJHNjcmlwdCk7XG4gICAg\nICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsIZ1cmzkv67lpI3vvIzkvovlpoLlj6rm\nnIlzZWFyY2jnmoTpk77mjqXkv67lpI3kuLrlrozmlbTnmoTpk77mjqVcbiAgICAgKlxuICAgICAq\nIOazqOaEj++8muS4jeWMheaLrGh0dHDovaxodHRwc1xuICAgICAqIEBwYXJhbSB1cmwg6ZyA6KaB\n5L+u5aSN55qE6ZO+5o6lXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiDkv67lpI3liY3vvJpgXC94\neHhcL3h4eD9zcz1zc3NzYFxuICAgICAqIOS\/ruWkjeWQju+8mmBodHRwczpcL1wveHh4Lnh4eC54\neHhcL3h4eFwveHh4P3NzPXNzc3NgXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiDkv67lpI3liY3v\nvJpgXC9cL3h4eFwveHh4P3NzPXNzc3NgXG4gICAgICog5L+u5aSN5ZCO77yaYGh0dHBzOlwvXC94\neHgueHh4Lnh4eFwveHh4XC94eHg\/c3M9c3Nzc2BcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIOS\/\nruWkjeWJje+8mmBodHRwczpcL1wveHh4Lnh4eC54eHhcL3h4eFwveHh4P3NzPXNzc3NgXG4gICAg\nICog5L+u5aSN5ZCO77yaYGh0dHBzOlwvXC94eHgueHh4Lnh4eFwveHh4XC94eHg\/c3M9c3Nzc2Bc\nbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIOS\/ruWkjeWJje+8mmB4eHhcL3h4eD9zcz1zc3NzYFxu\nICAgICAqIOS\/ruWkjeWQju+8mmBodHRwczpcL1wveHh4Lnh4eC54eHhcL3h4eFwveHh4P3NzPXNz\nc3NgXG4gICAgICpcL1xuICAgIGZpeFVybCh1cmwpIHtcbiAgICAgIHVybCA9IHVybC50cmltKCk7\nXG4gICAgICBpZiAodXJsLm1hdGNoKFwvXmh0dHAoc3wpOlxcXC9cXFwvXC9pKSkge1xuICAgICAg\nICByZXR1cm4gdXJsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0\naChcIlwvXCIpKSB7XG4gICAgICAgICAgdXJsICs9IFwiXC9cIjtcbiAgICAgICAgfVxuICAgICAg\nICB1cmwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgdXJsO1xuICAgICAgICByZXR1cm4gdXJs\nO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIGh0dHDovaxodHRwc1xuICAgICAq\nIEBwYXJhbSB1cmwg6ZyA6KaB5L+u5aSN55qE6ZO+5o6lXG4gICAgICogQGV4YW1wbGVcbiAgICAg\nKiDkv67lpI3liY3vvJpcbiAgICAgKiDkv67lpI3lkI7vvJpcbiAgICAgKiBAZXhhbXBsZVxuICAg\nICAqIOS\/ruWkjeWJje+8mlxuICAgICAqIOS\/ruWkjeWQju+8mlxuICAgICAqXC9cbiAgICBmaXhI\ndHRwcyh1cmwpIHtcbiAgICAgIGlmICh1cmwuc3RhcnRzV2l0aChcImh0dHBzOlwvXC9cIikpIHtc\nbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgIH1cbiAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgo\nXCJodHRwOlwvXC9cIikpIHtcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgIH1cbiAgICAgIGxl\ndCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgICB1cmxPYmoucHJvdG9jb2wgPSBcImh0dHBz\nOlwiO1xuICAgICAgcmV0dXJuIHVybE9iai50b1N0cmluZygpO1xuICAgIH1cbiAgfTtcbiAgY29u\nc3QgX1NDUklQVF9OQU1FXyA9IFwi566A5Lmm5LyY5YyWXCI7XG4gIGNvbnN0IHV0aWxzID0gVXRp\nbHMubm9Db25mbGljdCgpO1xuICBjb25zdCBkb21VdGlscyA9IERPTVV0aWxzLm5vQ29uZmxpY3Qo\nKTtcbiAgY29uc3QgbG9nID0gbmV3IHV0aWxzLkxvZyhcbiAgICBfR01faW5mbyxcbiAgICBfdW5z\nYWZlV2luZG93LmNvbnNvbGUgfHwgX21vbmtleVdpbmRvdy5jb25zb2xlXG4gICk7XG4gIGNvbnN0\nIFNDUklQVF9OQU1FID0gKChfYSA9IF9HTV9pbmZvID09IG51bGwgPyB2b2lkIDAgOiBfR01faW5m\nby5zY3JpcHQpID09IG51bGwgPyB2b2lkIDAgOiBfYS5uYW1lKSB8fCBfU0NSSVBUX05BTUVfO1xu\nICBjb25zdCBERUJVRyA9IGZhbHNlO1xuICBsb2cuY29uZmlnKHtcbiAgICBkZWJ1ZzogREVCVUcs\nXG4gICAgbG9nTWF4Q291bnQ6IDFlMyxcbiAgICBhdXRvQ2xlYXJDb25zb2xlOiB0cnVlLFxuICAg\nIHRhZzogdHJ1ZVxuICB9KTtcbiAgUW1zZy5jb25maWcoXG4gICAgT2JqZWN0LmRlZmluZVByb3Bl\ncnRpZXMoXG4gICAgICB7XG4gICAgICAgIGh0bWw6IHRydWUsXG4gICAgICAgIGF1dG9DbG9zZTog\ndHJ1ZSxcbiAgICAgICAgc2hvd0Nsb3NlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAg\nICAgcG9zaXRpb246IHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gUG9w\nc1BhbmVsLmdldFZhbHVlKFwicW1zZy1jb25maWctcG9zaXRpb25cIiwgXCJib3R0b21cIik7XG4g\nICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtYXhOdW1zOiB7XG4gICAgICAgICAgZ2V0\nKCkge1xuICAgICAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC5nZXRWYWx1ZShcInFtc2ctY29uZmln\nLW1heG51bXNcIiwgNSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzaG93UmV2\nZXJzZToge1xuICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiBQb3BzUGFuZWwu\nZ2V0VmFsdWUoXCJxbXNnLWNvbmZpZy1zaG93cmV2ZXJzZVwiLCB0cnVlKTtcbiAgICAgICAgICB9\nXG4gICAgICAgIH0sXG4gICAgICAgIHpJbmRleDoge1xuICAgICAgICAgIGdldCgpIHtcbiAgICAg\nICAgICAgIGxldCBtYXhaSW5kZXggPSBVdGlscy5nZXRNYXhaSW5kZXgoKTtcbiAgICAgICAgICAg\nIGxldCBwb3BzTWF4WkluZGV4ID0gcG9wcy5jb25maWcuSW5zdGFuY2VVdGlscy5nZXRQb3BzTWF4\nWkluZGV4KCkuekluZGV4O1xuICAgICAgICAgICAgcmV0dXJuIFV0aWxzLmdldE1heFZhbHVlKG1h\neFpJbmRleCwgcG9wc01heFpJbmRleCkgKyAxMDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4g\nICAgICB9XG4gICAgKVxuICApO1xuICBjb25zdCBHTV9NZW51ID0gbmV3IHV0aWxzLkdNX01lbnUo\ne1xuICAgIEdNX2dldFZhbHVlOiBfR01fZ2V0VmFsdWUsXG4gICAgR01fc2V0VmFsdWU6IF9HTV9z\nZXRWYWx1ZSxcbiAgICBHTV9yZWdpc3Rlck1lbnVDb21tYW5kOiBfR01fcmVnaXN0ZXJNZW51Q29t\nbWFuZCxcbiAgICBHTV91bnJlZ2lzdGVyTWVudUNvbW1hbmQ6IF9HTV91bnJlZ2lzdGVyTWVudUNv\nbW1hbmRcbiAgfSk7XG4gIGNvbnN0IGh0dHB4ID0gbmV3IHV0aWxzLkh0dHB4KF9HTV94bWxodHRw\nUmVxdWVzdCk7XG4gIGh0dHB4LmludGVyY2VwdG9ycy5yZXNwb25zZS51c2Uodm9pZCAwLCAoZGF0\nYSkgPT4ge1xuICAgIGxvZy5lcnJvcihcIuaLpuaIquWZqC3or7fmsYLplJnor69cIiwgZGF0YSk7\nXG4gICAgaWYgKGRhdGEudHlwZSA9PT0gXCJvbmFib3J0XCIpIHtcbiAgICAgIFFtc2cud2Fybmlu\nZyhcIuivt+axguWPlua2iFwiKTtcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PT0gXCJvbmVy\ncm9yXCIpIHtcbiAgICAgIFFtc2cuZXJyb3IoXCLor7fmsYLlvILluLhcIik7XG4gICAgfSBlbHNl\nIGlmIChkYXRhLnR5cGUgPT09IFwib250aW1lb3V0XCIpIHtcbiAgICAgIFFtc2cuZXJyb3IoXCLo\nr7fmsYLotoXml7ZcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIFFtc2cuZXJyb3IoXCLlhbblroPp\nlJnor69cIik7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9KTtcbiAgaHR0cHguY29uZmln\nKHtcbiAgICBsb2dEZXRhaWxzOiBERUJVR1xuICB9KTtcbiAgKHtcbiAgICBPYmplY3Q6IHtcbiAg\nICAgIGRlZmluZVByb3BlcnR5OiBfdW5zYWZlV2luZG93Lk9iamVjdC5kZWZpbmVQcm9wZXJ0eVxu\nICAgIH0sXG4gICAgRnVuY3Rpb246IHtcbiAgICAgIGFwcGx5OiBfdW5zYWZlV2luZG93LkZ1bmN0\naW9uLnByb3RvdHlwZS5hcHBseSxcbiAgICAgIGNhbGw6IF91bnNhZmVXaW5kb3cuRnVuY3Rpb24u\ncHJvdG90eXBlLmNhbGxcbiAgICB9LFxuICAgIEVsZW1lbnQ6IHtcbiAgICAgIGFwcGVuZENoaWxk\nOiBfdW5zYWZlV2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkXG4gICAgfSxcbiAg\nICBzZXRUaW1lb3V0OiBfdW5zYWZlV2luZG93LnNldFRpbWVvdXRcbiAgfSk7XG4gIGNvbnN0IGFk\nZFN0eWxlID0gdXRpbHMuYWRkU3R5bGUuYmluZCh1dGlscyk7XG4gIGRvY3VtZW50LnF1ZXJ5U2Vs\nZWN0b3IuYmluZChkb2N1bWVudCk7XG4gIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwuYmluZChk\nb2N1bWVudCk7XG4gIGNvbnN0IEtFWSA9IFwiR01fUGFuZWxcIjtcbiAgY29uc3QgQVRUUklCVVRF\nX0lOSVQgPSBcImRhdGEtaW5pdFwiO1xuICBjb25zdCBBVFRSSUJVVEVfS0VZID0gXCJkYXRhLWtl\neVwiO1xuICBjb25zdCBBVFRSSUJVVEVfREVGQVVMVF9WQUxVRSA9IFwiZGF0YS1kZWZhdWx0LXZh\nbHVlXCI7XG4gIGNvbnN0IEFUVFJJQlVURV9JTklUX01PUkVfVkFMVUUgPSBcImRhdGEtaW5pdC1t\nb3JlLXZhbHVlXCI7XG4gIGNvbnN0IFBST1BTX1NUT1JBR0VfQVBJID0gXCJkYXRhLXN0b3JhZ2Ut\nYXBpXCI7XG4gIGNvbnN0IFVJU3dpdGNoID0gZnVuY3Rpb24odGV4dCwga2V5LCBkZWZhdWx0VmFs\ndWUsIGNsaWNrQ2FsbEJhY2ssIGRlc2NyaXB0aW9uLCBhZnRlckFkZFRvVUxpc3RDYWxsQmFjaykg\ne1xuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICB0ZXh0LFxuICAgICAgdHlwZTogXCJzd2l0Y2hc\nIixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBwcm9w\nczoge30sXG4gICAgICBnZXRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAg\nICAgICAgdGhpcy5wcm9wc1tQUk9QU19TVE9SQUdFX0FQSV0uZ2V0KGtleSwgZGVmYXVsdFZhbHVl\nKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrKGV2ZW50LCBfX3ZhbHVlKSB7\nXG4gICAgICAgIGxldCB2YWx1ZSA9IEJvb2xlYW4oX192YWx1ZSk7XG4gICAgICAgIGxvZy5zdWNj\nZXNzKGAke3ZhbHVlID8gXCLlvIDlkK9cIiA6IFwi5YWz6ZetXCJ9ICR7dGV4dH1gKTtcbiAgICAg\nICAgdGhpcy5wcm9wc1tQUk9QU19TVE9SQUdFX0FQSV0uc2V0KGtleSwgdmFsdWUpO1xuICAgICAg\nfSxcbiAgICAgIGFmdGVyQWRkVG9VTGlzdENhbGxCYWNrXG4gICAgfTtcbiAgICBSZWZsZWN0LnNl\ndChyZXN1bHQuYXR0cmlidXRlcywgQVRUUklCVVRFX0tFWSwga2V5KTtcbiAgICBSZWZsZWN0LnNl\ndChyZXN1bHQuYXR0cmlidXRlcywgQVRUUklCVVRFX0RFRkFVTFRfVkFMVUUsIGRlZmF1bHRWYWx1\nZSk7XG4gICAgUmVmbGVjdC5zZXQocmVzdWx0LnByb3BzLCBQUk9QU19TVE9SQUdFX0FQSSwge1xu\nICAgICAgZ2V0KGtleTIsIGRlZmF1bHRWYWx1ZTIpIHtcbiAgICAgICAgcmV0dXJuIFBvcHNQYW5l\nbC5nZXRWYWx1ZShrZXkyLCBkZWZhdWx0VmFsdWUyKTtcbiAgICAgIH0sXG4gICAgICBzZXQoa2V5\nMiwgdmFsdWUpIHtcbiAgICAgICAgUG9wc1BhbmVsLnNldFZhbHVlKGtleTIsIHZhbHVlKTtcbiAg\nICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBjb25zdCBTZXR0aW5n\nVUlQQyA9IHtcbiAgICBpZDogXCJqaWFuc2h1LXBhbmVsLWNvbmZpZy1wY1wiLFxuICAgIHRpdGxl\nOiBcIuahjOmdouerr1wiLFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwi\nXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAg\nICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICAgICAgdHlwZTogXCJk\nZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAg\nICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxu\nICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcIuWF\nqOaWh+WxheS4rVwiLCBcIkppYW5TaHVBcnRpY2xlQ2VudGVyXCIsIHRydWUpLFxuICAgICAgICAg\nICAgICAgICAgVUlTd2l0Y2goXCLoh6rliqjlsZXlvIDlhajmlodcIiwgXCJKaWFuU2h1QXV0b0V4\ncGFuZEZ1bGxUZXh0XCIsIHRydWUpLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAg\nICAgICAgICAgICAgICAgIFwi6YeN5a6a5ZCR6ZO+5o6lXCIsXG4gICAgICAgICAgICAgICAgICAg\nIFwiSmlhblNodUF1dG9KdW1wUmVkaXJlY3RfUENcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1\nZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuiH\nquWKqOi3s+i9rOeugOS5puaLpuaIqueahFVybOmTvuaOpVwiXG4gICAgICAgICAgICAgICAgICAp\nXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAg\nICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuWxj+iUvVwiLFxuICAg\nICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAg\nICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAg\ndHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAg\nICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHlupXpg6jm\njqjojZDpmIXor7tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJKaWFuU2h1U2hpZWxkUmVjb21t\nZW5kZWRSZWFkaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAg\nICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXCLjgJDlsY\/olL3jgJHor4Torrrl\njLpcIiwgXCJKaWFuU2h1U2hpZWxkVXNlckNvbW1lbnRzXCIsIGZhbHNlKSxcbiAgICAgICAgICAg\nICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeebuOWF\ns+aWh+eroFwiLFxuICAgICAgICAgICAgICAgICAgICBcIkppYW5TaHVTaGllbGRSZWxhdGVkQXJ0\naWNsZXNcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICks\nXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDl\nsY\/olL3jgJHlrqLmiLfnq6\/lvLnnqpdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJqaWFuc2h1\nLXNoaWVsZENsaWVudERpYWxvZ1wiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAg\nICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5by55Ye655qE44CQ\n5omr56CB5a6J6KOF566A5Lmm5a6i5oi356uvIOeVheS6q+WFqOaWh+mYheivu+S9k+mqjOOAkVwi\nXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXCLjgJDl\nsY\/olL3jgJHpobbpg6jlr7zoiKrmoI9cIiwgXCJqaWFuc2h1LXNoaWVsZFRvcE5hdlwiLCBmYWxz\nZSksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLj\ngJDlsY\/olL3jgJHlupXpg6jlt6XlhbfmoI9cIixcbiAgICAgICAgICAgICAgICAgICAgXCJqaWFu\nc2h1LXNoaWVsZEJvdHRvbVRvb2xiYXJcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4g\nICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlsY\/olL3m\njonlupXpg6jmgqzmta7nmoTor4TorrrovpPlhaXmoYbjgIHor4TorrrjgIHngrnotZ4uLi5cIlxu\nICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4\ndDogXCLliqvmjIFcL+aLpuaIqlwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxu\nICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRl\neHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAg\nICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAg\nICAgICAgXCLmi6bmiKot5Ymq6LS05p2\/XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiSmlhblNo\ndVJlbW92ZUNsaXBib2FyZEhpamFja2luZ1wiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxu\nICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5Y676Zmk\n56aB5q2i5aSN5Yi2XCJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAg\nICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNldHRpbmdVSU1vYmlsZSA9IHtcbiAgICBpZDog\nXCJqaWFuc2h1LXBhbmVsLWNvbmZpZy1tb2JpbGVcIixcbiAgICB0aXRsZTogXCLnp7vliqjnq69c\nIixcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICB0\neXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAge1xuICAgICAgICAg\nICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAg\nICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0\nOiBcIlwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAg\nICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAg\nICAgIFwi6Ieq5Yqo5bGV5byA5YWo5paHXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiSmlhblNo\ndUF1dG9FeHBhbmRGdWxsVGV4dF9Nb2JpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxu\nICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAg\nICAgICAgICAgICAgICBcIumHjeWumuWQkemTvuaOpVwiLFxuICAgICAgICAgICAgICAgICAgICBc\nIkppYW5TaHVBdXRvSnVtcFJlZGlyZWN0X01vYmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICB0\ncnVlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi\n6Ieq5Yqo6Lez6L2s566A5Lmm5oum5oiq55qEVXJs6ZO+5o6lXCJcbiAgICAgICAgICAgICAgICAg\nIClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAg\nICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi5bGP6JS9XCIsXG4g\nICAgICAgICAgICB0eXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAg\nICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgICAg\nICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAg\nICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6lemD\nqOaOqOiNkOmYheivu1wiLFxuICAgICAgICAgICAgICAgICAgICBcIkppYW5TaHVyZW1vdmVGb290\nZXJSZWNvbW1lbmRSZWFkXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAg\nICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAg\nICAgIFwi44CQ5bGP6JS944CR6K+E6K665Yy6XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiSmlh\nblNodVNoaWVsZFVzZXJDb21tZW50c01vYmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxz\nZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAg\ndGV4dDogXCLliqvmjIFcL+aLpuaIqlwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwi\nLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAg\nIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAg\nICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAg\nICAgICAgICAgXCLmi6bmiKot5Ymq6LS05p2\/XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiSmlh\nblNodVJlbW92ZUNsaXBib2FyZEhpamFja2luZ19Nb2JpbGVcIixcbiAgICAgICAgICAgICAgICAg\nICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAg\nICBcIuWOu+mZpOemgeatouWkjeWItlwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAg\nICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5Yqr5oyBLeWUpOmGklwv\n6Lez6L2sQXBwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiSmlhblNodUhpamFja1NjaGVtZVNj\ncmlwdExhYmVsX01vYmlsZVwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAg\nICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5Y676Zmk566A5Lmm5ZSk\n6YaS6LCD55SoQXBwXCJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAg\nICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFVJU2VsZWN0ID0gZnVuY3Rpb24odGV4dCwga2V5\nLCBkZWZhdWx0VmFsdWUsIGRhdGEsIGNhbGxiYWNrLCBkZXNjcmlwdGlvbikge1xuICAgIGxldCBz\nZWxlY3REYXRhID0gW107XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcImZ1bmN0aW9uXCIpIHtc\nbiAgICAgIHNlbGVjdERhdGEgPSBkYXRhKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlbGVjdERh\ndGEgPSBkYXRhO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgdGV4dCxcbiAgICAg\nIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGF0dHJpYnV0ZXM6\nIHt9LFxuICAgICAgcHJvcHM6IHt9LFxuICAgICAgZ2V0VmFsdWUoKSB7XG4gICAgICAgIHJldHVy\nbiB0aGlzLnByb3BzW1BST1BTX1NUT1JBR0VfQVBJXS5nZXQoa2V5LCBkZWZhdWx0VmFsdWUpO1xu\nICAgICAgfSxcbiAgICAgIGNhbGxiYWNrKGV2ZW50LCBpc1NlbGVjdGVkVmFsdWUsIGlzU2VsZWN0\nZWRUZXh0KSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IGlzU2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAg\nbG9nLmluZm8oYOmAieaLqe+8miR7aXNTZWxlY3RlZFRleHR9YCk7XG4gICAgICAgIHRoaXMucHJv\ncHNbUFJPUFNfU1RPUkFHRV9BUEldLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgaWYgKHR5cGVv\nZiBjYWxsYmFjayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgY2FsbGJhY2soZXZlbnQs\nIHZhbHVlLCBpc1NlbGVjdGVkVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkYXRh\nOiBzZWxlY3REYXRhXG4gICAgfTtcbiAgICBSZWZsZWN0LnNldChyZXN1bHQuYXR0cmlidXRlcywg\nQVRUUklCVVRFX0tFWSwga2V5KTtcbiAgICBSZWZsZWN0LnNldChyZXN1bHQuYXR0cmlidXRlcywg\nQVRUUklCVVRFX0RFRkFVTFRfVkFMVUUsIGRlZmF1bHRWYWx1ZSk7XG4gICAgUmVmbGVjdC5zZXQo\ncmVzdWx0LnByb3BzLCBQUk9QU19TVE9SQUdFX0FQSSwge1xuICAgICAgZ2V0KGtleTIsIGRlZmF1\nbHRWYWx1ZTIpIHtcbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC5nZXRWYWx1ZShrZXkyLCBkZWZh\ndWx0VmFsdWUyKTtcbiAgICAgIH0sXG4gICAgICBzZXQoa2V5MiwgdmFsdWUpIHtcbiAgICAgICAg\nUG9wc1BhbmVsLnNldFZhbHVlKGtleTIsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBy\nZXR1cm4gcmVzdWx0O1xuICB9O1xuICBjb25zdCBTZXR0aW5nVUlDb21tb24gPSB7XG4gICAgaWQ6\nIFwiamlhbnNodS1wYW5lbC1jb21tb25cIixcbiAgICB0aXRsZTogXCLpgJrnlKhcIixcbiAgICBm\nb3JtczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBcIlRvYXN06YWN572uXCIsXG4gICAgICAg\nIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICBVSVNlbGVjdChc\nbiAgICAgICAgICAgIFwiVG9hc3TkvY3nva5cIixcbiAgICAgICAgICAgIFwicW1zZy1jb25maWct\ncG9zaXRpb25cIixcbiAgICAgICAgICAgIFwiYm90dG9tXCIsXG4gICAgICAgICAgICBbXG4gICAg\nICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJ0b3BsZWZ0XCIsXG4gICAgICAg\nICAgICAgICAgdGV4dDogXCLlt6bkuIrop5JcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAg\nICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwidG9wXCIsXG4gICAgICAgICAgICAgICAg\ndGV4dDogXCLpobbpg6hcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgICAgdmFsdWU6IFwidG9wcmlnaHRcIixcbiAgICAgICAgICAgICAgICB0ZXh0OiBc\nIuWPs+S4iuinklwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAg\nICAgICAgICB2YWx1ZTogXCJsZWZ0XCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlt6bovrlc\nIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFs\ndWU6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLkuK3pl7RcIlxuICAgICAg\nICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwicmln\naHRcIixcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWPs+i+uVwiXG4gICAgICAgICAgICAgIH0s\nXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJib3R0b21sZWZ0XCIs\nXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlt6bkuIvop5JcIlxuICAgICAgICAgICAgICB9LFxu\nICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiYm90dG9tXCIsXG4gICAg\nICAgICAgICAgICAgdGV4dDogXCLlupXpg6hcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAg\nICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiYm90dG9tcmlnaHRcIixcbiAgICAgICAg\nICAgICAgICB0ZXh0OiBcIuWPs+S4i+inklwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIF0sXG4gICAgICAgICAgICAoZXZlbnQsIGlzU2VsZWN0VmFsdWUsIGlzU2VsZWN0VGV4dCkgPT4g\ne1xuICAgICAgICAgICAgICBsb2cuaW5mbyhcIuiuvue9ruW9k+WJjVFtc2flvLnlh7rkvY3nva5c\nIiArIGlzU2VsZWN0VGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJUb2FzdOaY\nvuekuuWcqOmhtemdouS5neWuq+agvOeahOS9jee9rlwiXG4gICAgICAgICAgKSxcbiAgICAgICAg\nICBVSVNlbGVjdChcbiAgICAgICAgICAgIFwi5pyA5aSa5pi+56S655qE5pWw6YePXCIsXG4gICAg\nICAgICAgICBcInFtc2ctY29uZmlnLW1heG51bXNcIixcbiAgICAgICAgICAgIDMsXG4gICAgICAg\nICAgICBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAg\nICAgICAgICAgICB0ZXh0OiBcIjFcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7\nXG4gICAgICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCIyXCJc\nbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVl\nOiAzLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwiM1wiXG4gICAgICAgICAgICAgIH0sXG4gICAg\nICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogNCxcbiAgICAgICAgICAgICAgICB0\nZXh0OiBcIjRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAg\nICAgICAgdmFsdWU6IDUsXG4gICAgICAgICAgICAgICAgdGV4dDogXCI1XCJcbiAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgIFwi\n6ZmQ5Yi2VG9hc3TmmL7npLrnmoTmlbDph49cIlxuICAgICAgICAgICksXG4gICAgICAgICAgVUlT\nd2l0Y2goXG4gICAgICAgICAgICBcIumAhuW6j+W8ueWHulwiLFxuICAgICAgICAgICAgXCJxbXNn\nLWNvbmZpZy1zaG93cmV2ZXJzZVwiLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB2\nb2lkIDAsXG4gICAgICAgICAgICBcIuS\/ruaUuVRvYXN05by55Ye655qE6aG65bqPXCJcbiAgICAg\nICAgICApXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFBhbmVsVUlT\naXplID0ge1xuICAgIFwvKipcbiAgICAgKiDkuIDoiKzorr7nva7nlYzpnaLnmoTlsLrlr7hcbiAg\nICAgKlwvXG4gICAgc2V0dGluZzoge1xuICAgICAgZ2V0IHdpZHRoKCkge1xuICAgICAgICByZXR1\ncm4gd2luZG93LmlubmVyV2lkdGggPCA1NTAgPyBcIjg4dndcIiA6IFwiNTUwcHhcIjtcbiAgICAg\nIH0sXG4gICAgICBnZXQgaGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVp\nZ2h0IDwgNDUwID8gXCI3MHZoXCIgOiBcIjQ1MHB4XCI7XG4gICAgICB9XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5Yqf6IO95Liw5a+M77yMYXNpZGXpk7rmu6HkuobnmoTorr7nva7nlYzpnaLv\nvIzopoHnqI3lvq7lpKfkuIDngrlcbiAgICAgKlwvXG4gICAgc2V0dGluZ0JpZzoge1xuICAgICAg\nZ2V0IHdpZHRoKCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA4MDAgPyBc\nIjkydndcIiA6IFwiODAwcHhcIjtcbiAgICAgIH0sXG4gICAgICBnZXQgaGVpZ2h0KCkge1xuICAg\nICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IDwgNjAwID8gXCI4MHZoXCIgOiBcIjYwMHB4\nXCI7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5L+h5oGv55WM6Z2i77yM5LiA\n6Iis55So5LqO5o+Q56S65L+h5oGv5LmL57G7XG4gICAgICpcL1xuICAgIGluZm86IHtcbiAgICAg\nIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgMzUwID8g\nXCIzNTBweFwiIDogXCIzNTBweFwiO1xuICAgICAgfSxcbiAgICAgIGdldCBoZWlnaHQoKSB7XG4g\nICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQgPCAyNTAgPyBcIjI1MHB4XCIgOiBcIjI1\nMHB4XCI7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBQb3BzUGFuZWwgPSB7XG4gICAg\nXC8qKiDmlbDmja4gKlwvXG4gICAgJGRhdGE6IHtcbiAgICAgIF9fZGF0YTogbnVsbCxcbiAgICAg\nIF9fb25lU3VjY2Vzc0V4ZWNNZW51OiBudWxsLFxuICAgICAgX19vbmNlRXhlYzogbnVsbCxcbiAg\nICAgIF9fbGlzdGVuRGF0YTogbnVsbCxcbiAgICAgIFwvKipcbiAgICAgICAqIOiPnOWNlemhueea\nhOm7mOiupOWAvFxuICAgICAgICpcL1xuICAgICAgZ2V0IGRhdGEoKSB7XG4gICAgICAgIGlmIChQ\nb3BzUGFuZWwuJGRhdGEuX19kYXRhID09IG51bGwpIHtcbiAgICAgICAgICBQb3BzUGFuZWwuJGRh\ndGEuX19kYXRhID0gbmV3IHV0aWxzLkRpY3Rpb25hcnkoKTtcbiAgICAgICAgfVxuICAgICAgICBy\nZXR1cm4gUG9wc1BhbmVsLiRkYXRhLl9fZGF0YTtcbiAgICAgIH0sXG4gICAgICBcLyoqXG4gICAg\nICAgKiDmiJDlip\/lj6rmiafooYzkuobkuIDmrKHnmoTpoblcbiAgICAgICAqXC9cbiAgICAgIGdl\ndCBvbmVTdWNjZXNzRXhlY01lbnUoKSB7XG4gICAgICAgIGlmIChQb3BzUGFuZWwuJGRhdGEuX19v\nbmVTdWNjZXNzRXhlY01lbnUgPT0gbnVsbCkge1xuICAgICAgICAgIFBvcHNQYW5lbC4kZGF0YS5f\nX29uZVN1Y2Nlc3NFeGVjTWVudSA9IG5ldyB1dGlscy5EaWN0aW9uYXJ5KCk7XG4gICAgICAgIH1c\nbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC4kZGF0YS5fX29uZVN1Y2Nlc3NFeGVjTWVudTtcbiAg\nICAgIH0sXG4gICAgICBcLyoqXG4gICAgICAgKiDmiJDlip\/lj6rmiafooYzkuobkuIDmrKHnmoTp\noblcbiAgICAgICAqXC9cbiAgICAgIGdldCBvbmNlRXhlYygpIHtcbiAgICAgICAgaWYgKFBvcHNQ\nYW5lbC4kZGF0YS5fX29uY2VFeGVjID09IG51bGwpIHtcbiAgICAgICAgICBQb3BzUGFuZWwuJGRh\ndGEuX19vbmNlRXhlYyA9IG5ldyB1dGlscy5EaWN0aW9uYXJ5KCk7XG4gICAgICAgIH1cbiAgICAg\nICAgcmV0dXJuIFBvcHNQYW5lbC4kZGF0YS5fX29uY2VFeGVjO1xuICAgICAgfSxcbiAgICAgIFwv\nKiog6ISa5pys5ZCN77yM5LiA6Iis55So5Zyo6K6+572u55qE5qCH6aKY5LiKICpcL1xuICAgICAg\nZ2V0IHNjcmlwdE5hbWUoKSB7XG4gICAgICAgIHJldHVybiBTQ1JJUFRfTkFNRTtcbiAgICAgIH0s\nXG4gICAgICBcLyoqIOiPnOWNlemhueeahOaAu+WAvOWcqOacrOWcsOaVsOaNrumFjee9rueahOmU\nruWQjSAqXC9cbiAgICAgIGtleTogS0VZLFxuICAgICAgXC8qKiDoj5zljZXpobnlnKhhdHRyaWJ1\ndGVz5LiK6YWN572u55qE6I+c5Y2V6ZSuICpcL1xuICAgICAgYXR0cmlidXRlS2V5TmFtZTogQVRU\nUklCVVRFX0tFWSxcbiAgICAgIFwvKiog6I+c5Y2V6aG55ZyoYXR0cmlidXRlc+S4iumFjee9ruea\nhOiPnOWNlem7mOiupOWAvCAqXC9cbiAgICAgIGF0dHJpYnV0ZURlZmF1bHRWYWx1ZU5hbWU6IEFU\nVFJJQlVURV9ERUZBVUxUX1ZBTFVFXG4gICAgfSxcbiAgICBcLyoqIOebkeWQrOWZqCAqXC9cbiAg\nICAkbGlzdGVuZXI6IHtcbiAgICAgIFwvKipcbiAgICAgICAqIOWAvOaUueWPmOeahOebkeWQrOWZ\nqFxuICAgICAgICpcL1xuICAgICAgZ2V0IGxpc3RlbkRhdGEoKSB7XG4gICAgICAgIGlmIChQb3Bz\nUGFuZWwuJGRhdGEuX19saXN0ZW5EYXRhID09IG51bGwpIHtcbiAgICAgICAgICBQb3BzUGFuZWwu\nJGRhdGEuX19saXN0ZW5EYXRhID0gbmV3IHV0aWxzLkRpY3Rpb25hcnkoKTtcbiAgICAgICAgfVxu\nICAgICAgICByZXR1cm4gUG9wc1BhbmVsLiRkYXRhLl9fbGlzdGVuRGF0YTtcbiAgICAgIH1cbiAg\nICB9LFxuICAgIGluaXQoKSB7XG4gICAgICB0aGlzLmluaXRQYW5lbERlZmF1bHRWYWx1ZSgpO1xu\nICAgICAgdGhpcy5pbml0RXh0ZW5zaW9uc01lbnUoKTtcbiAgICB9LFxuICAgIFwvKiog5Yik5pat\n5piv5ZCm5piv6aG25bGC56qX5Y+jICpcL1xuICAgIGlzVG9wV2luZG93KCkge1xuICAgICAgcmV0\ndXJuIF91bnNhZmVXaW5kb3cudG9wID09PSBfdW5zYWZlV2luZG93LnNlbGY7XG4gICAgfSxcbiAg\nICBpbml0RXh0ZW5zaW9uc01lbnUoKSB7XG4gICAgICBpZiAoIXRoaXMuaXNUb3BXaW5kb3coKSkg\ne1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBHTV9NZW51LmFkZChbXG4gICAgICAg\nIHtcbiAgICAgICAgICBrZXk6IFwic2hvd19wb3BzX3BhbmVsX3NldHRpbmdcIixcbiAgICAgICAg\nICB0ZXh0OiBcIuKamSDorr7nva5cIixcbiAgICAgICAgICBhdXRvUmVsb2FkOiBmYWxzZSxcbiAg\nICAgICAgICBpc1N0b3JlVmFsdWU6IGZhbHNlLFxuICAgICAgICAgIHNob3dUZXh0KHRleHQpIHtc\nbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2FsbGJh\nY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1BhbmVsKCk7XG4gICAgICAgICAgfVxu\nICAgICAgICB9XG4gICAgICBdKTtcbiAgICB9LFxuICAgIFwvKiog5Yid5aeL5YyW6I+c5Y2V6aG5\n55qE6buY6K6k5YC85L+d5a2Y5Yiw5pys5Zyw5pWw5o2u5LitICpcL1xuICAgIGluaXRQYW5lbERl\nZmF1bHRWYWx1ZSgpIHtcbiAgICAgIGxldCB0aGF0ID0gdGhpcztcbiAgICAgIGZ1bmN0aW9uIGlu\naXREZWZhdWx0VmFsdWUoY29uZmlnKSB7XG4gICAgICAgIGlmICghY29uZmlnLmF0dHJpYnV0ZXMp\nIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG5lZWRJbml0Q29u\nZmlnID0ge307XG4gICAgICAgIGxldCBrZXkgPSBjb25maWcuYXR0cmlidXRlc1tBVFRSSUJVVEVf\nS0VZXTtcbiAgICAgICAgaWYgKGtleSAhPSBudWxsKSB7XG4gICAgICAgICAgbmVlZEluaXRDb25m\naWdba2V5XSA9IGNvbmZpZy5hdHRyaWJ1dGVzW0FUVFJJQlVURV9ERUZBVUxUX1ZBTFVFXTtcbiAg\nICAgICAgfVxuICAgICAgICBsZXQgX19hdHRyX2luaXRfXyA9IGNvbmZpZy5hdHRyaWJ1dGVzW0FU\nVFJJQlVURV9JTklUXTtcbiAgICAgICAgaWYgKHR5cGVvZiBfX2F0dHJfaW5pdF9fID09PSBcImZ1\nbmN0aW9uXCIpIHtcbiAgICAgICAgICBsZXQgX19hdHRyX3Jlc3VsdF9fID0gX19hdHRyX2luaXRf\nXygpO1xuICAgICAgICAgIGlmICh0eXBlb2YgX19hdHRyX3Jlc3VsdF9fID09PSBcImJvb2xlYW5c\nIiAmJiAhX19hdHRyX3Jlc3VsdF9fKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nfVxuICAgICAgICB9XG4gICAgICAgIGxldCBpbml0TW9yZVZhbHVlID0gY29uZmlnLmF0dHJpYnV0\nZXNbQVRUUklCVVRFX0lOSVRfTU9SRV9WQUxVRV07XG4gICAgICAgIGlmIChpbml0TW9yZVZhbHVl\nICYmIHR5cGVvZiBpbml0TW9yZVZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgT2Jq\nZWN0LmFzc2lnbihuZWVkSW5pdENvbmZpZywgaW5pdE1vcmVWYWx1ZSk7XG4gICAgICAgIH1cbiAg\nICAgICAgbGV0IG5lZWRJbml0Q29uZmlnTGlzdCA9IE9iamVjdC5rZXlzKG5lZWRJbml0Q29uZmln\nKTtcbiAgICAgICAgaWYgKCFuZWVkSW5pdENvbmZpZ0xpc3QubGVuZ3RoKSB7XG4gICAgICAgICAg\nbG9nLndhcm4oW1wi6K+35YWI6YWN572u6ZSuXCIsIGNvbmZpZ10pO1xuICAgICAgICAgIHJldHVy\nbjtcbiAgICAgICAgfVxuICAgICAgICBuZWVkSW5pdENvbmZpZ0xpc3QuZm9yRWFjaCgoX19rZXkp\nID0+IHtcbiAgICAgICAgICBsZXQgX19kZWZhdWx0VmFsdWUgPSBuZWVkSW5pdENvbmZpZ1tfX2tl\neV07XG4gICAgICAgICAgaWYgKHRoYXQuJGRhdGEuZGF0YS5oYXMoX19rZXkpKSB7XG4gICAgICAg\nICAgICBsb2cud2FybihcIuivt+ajgOafpeivpWtleSjlt7LlrZjlnKgpOiBcIiArIF9fa2V5KTtc\nbiAgICAgICAgICB9XG4gICAgICAgICAgdGhhdC4kZGF0YS5kYXRhLnNldChfX2tleSwgX19kZWZh\ndWx0VmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGxvb3BJbml0\nRGVmYXVsdFZhbHVlKGNvbmZpZ0xpc3QpIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBp\nbmRleCA8IGNvbmZpZ0xpc3QubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgbGV0IGNvbmZp\nZ0l0ZW0gPSBjb25maWdMaXN0W2luZGV4XTtcbiAgICAgICAgICBpbml0RGVmYXVsdFZhbHVlKGNv\nbmZpZ0l0ZW0pO1xuICAgICAgICAgIGxldCBjaGlsZEZvcm1zID0gY29uZmlnSXRlbS5mb3Jtcztc\nbiAgICAgICAgICBpZiAoY2hpbGRGb3JtcyAmJiBBcnJheS5pc0FycmF5KGNoaWxkRm9ybXMpKSB7\nXG4gICAgICAgICAgICBsb29wSW5pdERlZmF1bHRWYWx1ZShjaGlsZEZvcm1zKTtcbiAgICAgICAg\nICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxldCBjb250ZW50Q29uZmlnTGlzdCA9IHRo\naXMuZ2V0UGFuZWxDb250ZW50Q29uZmlnKCk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGlu\nZGV4IDwgY29udGVudENvbmZpZ0xpc3QubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGxldCBs\nZWZ0Q29udGVudENvbmZpZ0l0ZW0gPSBjb250ZW50Q29uZmlnTGlzdFtpbmRleF07XG4gICAgICAg\nIGlmICghbGVmdENvbnRlbnRDb25maWdJdGVtLmZvcm1zKSB7XG4gICAgICAgICAgY29udGludWU7\nXG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJpZ2h0Q29udGVudENvbmZpZ0xpc3QgPSBsZWZ0Q29u\ndGVudENvbmZpZ0l0ZW0uZm9ybXM7XG4gICAgICAgIGlmIChyaWdodENvbnRlbnRDb25maWdMaXN0\nICYmIEFycmF5LmlzQXJyYXkocmlnaHRDb250ZW50Q29uZmlnTGlzdCkpIHtcbiAgICAgICAgICBs\nb29wSW5pdERlZmF1bHRWYWx1ZShyaWdodENvbnRlbnRDb25maWdMaXN0KTtcbiAgICAgICAgfVxu\nICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiuvue9ruWAvFxuICAgICAqIEBwYXJh\nbSBrZXkg6ZSuXG4gICAgICogQHBhcmFtIHZhbHVlIOWAvFxuICAgICAqXC9cbiAgICBzZXRWYWx1\nZShrZXksIHZhbHVlKSB7XG4gICAgICBsZXQgbG9jYURhdGEgPSBfR01fZ2V0VmFsdWUoS0VZLCB7\nfSk7XG4gICAgICBsZXQgb2xkVmFsdWUgPSBsb2NhRGF0YVtrZXldO1xuICAgICAgbG9jYURhdGFb\na2V5XSA9IHZhbHVlO1xuICAgICAgX0dNX3NldFZhbHVlKEtFWSwgbG9jYURhdGEpO1xuICAgICAg\naWYgKHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuaGFzKGtleSkpIHtcbiAgICAgICAgdGhpcy4k\nbGlzdGVuZXIubGlzdGVuRGF0YS5nZXQoa2V5KS5jYWxsYmFjayhrZXksIG9sZFZhbHVlLCB2YWx1\nZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6I635Y+W5YC8XG4gICAgICog\nQHBhcmFtIGtleSDplK5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIOm7mOiupOWAvFxuICAg\nICAqXC9cbiAgICBnZXRWYWx1ZShrZXksIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgbGV0IGxvY2FE\nYXRhID0gX0dNX2dldFZhbHVlKEtFWSwge30pO1xuICAgICAgbGV0IGxvY2FsVmFsdWUgPSBsb2Nh\nRGF0YVtrZXldO1xuICAgICAgaWYgKGxvY2FsVmFsdWUgPT0gbnVsbCkge1xuICAgICAgICBpZiAo\ndGhpcy4kZGF0YS5kYXRhLmhhcyhrZXkpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuJGRhdGEu\nZGF0YS5nZXQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xu\nICAgICAgfVxuICAgICAgcmV0dXJuIGxvY2FsVmFsdWU7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog5Yig6Zmk5YC8XG4gICAgICogQHBhcmFtIGtleSDplK5cbiAgICAgKlwvXG4gICAgZGVsZXRl\nVmFsdWUoa2V5KSB7XG4gICAgICBsZXQgbG9jYURhdGEgPSBfR01fZ2V0VmFsdWUoS0VZLCB7fSk7\nXG4gICAgICBsZXQgb2xkVmFsdWUgPSBsb2NhRGF0YVtrZXldO1xuICAgICAgUmVmbGVjdC5kZWxl\ndGVQcm9wZXJ0eShsb2NhRGF0YSwga2V5KTtcbiAgICAgIF9HTV9zZXRWYWx1ZShLRVksIGxvY2FE\nYXRhKTtcbiAgICAgIGlmICh0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLmhhcyhrZXkpKSB7XG4g\nICAgICAgIHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuZ2V0KGtleSkuY2FsbGJhY2soa2V5LCBv\nbGRWYWx1ZSwgdm9pZCAwKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDnm5Hl\nkKzosIPnlKhzZXRWYWx1ZeOAgWRlbGV0ZVZhbHVlXG4gICAgICogQHBhcmFtIGtleSDpnIDopoHn\nm5HlkKznmoTplK5cbiAgICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICAgKlwvXG4gICAgYWRkVmFs\ndWVDaGFuZ2VMaXN0ZW5lcihrZXksIGNhbGxiYWNrKSB7XG4gICAgICBsZXQgbGlzdGVuZXJJZCA9\nIE1hdGgucmFuZG9tKCk7XG4gICAgICB0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLnNldChrZXks\nIHtcbiAgICAgICAgaWQ6IGxpc3RlbmVySWQsXG4gICAgICAgIGtleSxcbiAgICAgICAgY2FsbGJh\nY2tcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3RlbmVySWQ7XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog56e76Zmk55uR5ZCsXG4gICAgICogQHBhcmFtIGxpc3RlbmVySWQg55uR5ZCs55qE\naWRcbiAgICAgKlwvXG4gICAgcmVtb3ZlVmFsdWVDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcklkKSB7\nXG4gICAgICBsZXQgZGVsZXRlS2V5ID0gbnVsbDtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFs\ndWVdIG9mIHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuZW50cmllcygpKSB7XG4gICAgICAgIGlm\nICh2YWx1ZS5pZCA9PT0gbGlzdGVuZXJJZCkge1xuICAgICAgICAgIGRlbGV0ZUtleSA9IGtleTtc\nbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBk\nZWxldGVLZXkgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhpcy4kbGlzdGVuZXIubGlzdGVu\nRGF0YS5kZWxldGUoZGVsZXRlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUu\nd2FybihcIuayoeacieaJvuWIsOWvueW6lOeahOebkeWQrOWZqFwiKTtcbiAgICAgIH1cbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDkuLvliqjop6blj5Hoj5zljZXlgLzmlLnlj5jnmoTlm57osINc\nbiAgICAgKiBAcGFyYW0ga2V5IOiPnOWNlemUrlxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSDmg7Po\npoHop6blj5HnmoTmlrDlgLzvvIzpu5jorqTkvb\/nlKjlvZPliY3lgLxcbiAgICAgKiBAcGFyYW0g\nb2xkVmFsdWUg5oOz6KaB6Kem5Y+R55qE5pen5YC877yM6buY6K6k5L2\/55So5b2T5YmN5YC8XG4g\nICAgICpcL1xuICAgIHRyaWdnZXJNZW51VmFsdWVDaGFuZ2Uoa2V5LCBuZXdWYWx1ZSwgb2xkVmFs\ndWUpIHtcbiAgICAgIGlmICh0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLmhhcyhrZXkpKSB7XG4g\nICAgICAgIGxldCBsaXN0ZW5EYXRhID0gdGhpcy4kbGlzdGVuZXIubGlzdGVuRGF0YS5nZXQoa2V5\nKTtcbiAgICAgICAgaWYgKHR5cGVvZiBsaXN0ZW5EYXRhLmNhbGxiYWNrID09PSBcImZ1bmN0aW9u\nXCIpIHtcbiAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmdldFZhbHVlKGtleSk7XG4gICAgICAg\nICAgbGV0IF9fbmV3VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICBsZXQgX19vbGRWYWx1ZSA9IHZh\nbHVlO1xuICAgICAgICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgIT09IFwidW5kZWZpbmVkXCIgJiYg\nYXJndW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIF9fbmV3VmFsdWUgPSBuZXdWYWx1\nZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBvbGRWYWx1ZSAhPT0gXCJ1bmRl\nZmluZWRcIiAmJiBhcmd1bWVudHMubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgX19vbGRWYWx1\nZSA9IG9sZFZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsaXN0ZW5EYXRhLmNhbGxiYWNr\nKGtleSwgX19vbGRWYWx1ZSwgX19uZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDliKTmlq3or6XplK7mmK\/lkKblrZjlnKhcbiAgICAgKiBAcGFy\nYW0ga2V5IOmUrlxuICAgICAqXC9cbiAgICBoYXNLZXkoa2V5KSB7XG4gICAgICBsZXQgbG9jYURh\ndGEgPSBfR01fZ2V0VmFsdWUoS0VZLCB7fSk7XG4gICAgICByZXR1cm4ga2V5IGluIGxvY2FEYXRh\nO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiHquWKqOWIpOaWreiPnOWNleaYr+WQpuWQr+eU\nqO+8jOeEtuWQjuaJp+ihjOWbnuiwg1xuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcGFyYW0g\nY2FsbGJhY2sg5Zue6LCDXG4gICAgICogQHBhcmFtIFtpc1JldmVyc2U9ZmFsc2VdIOmAhuWPjeWI\npOaWreiPnOWNleWQr+eUqFxuICAgICAqXC9cbiAgICBleGVjTWVudShrZXksIGNhbGxiYWNrLCBp\nc1JldmVyc2UgPSBmYWxzZSkge1xuICAgICAgaWYgKCEodHlwZW9mIGtleSA9PT0gXCJzdHJpbmdc\nIiB8fCB0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiICYmIEFycmF5LmlzQXJyYXkoa2V5KSkpIHtc\nbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImtleSDlv4XpobvmmK\/lrZfnrKbkuLLmiJbo\ngIXlrZfnrKbkuLLmlbDnu4RcIik7XG4gICAgICB9XG4gICAgICBsZXQgcnVuS2V5TGlzdCA9IFtd\nO1xuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09IFwib2JqZWN0XCIgJiYgQXJyYXkuaXNBcnJheShr\nZXkpKSB7XG4gICAgICAgIHJ1bktleUxpc3QgPSBbLi4ua2V5XTtcbiAgICAgIH0gZWxzZSB7XG4g\nICAgICAgIHJ1bktleUxpc3QucHVzaChrZXkpO1xuICAgICAgfVxuICAgICAgbGV0IHZhbHVlID0g\ndm9pZCAwO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHJ1bktleUxpc3QubGVu\nZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IHJ1bktleSA9IHJ1bktleUxpc3RbaW5kZXhd\nO1xuICAgICAgICBpZiAoIXRoaXMuJGRhdGEuZGF0YS5oYXMocnVuS2V5KSkge1xuICAgICAgICAg\nIGxvZy53YXJuKGAke2tleX0g6ZSu5LiN5a2Y5ZyoYCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAg\nICAgICB9XG4gICAgICAgIGxldCBydW5WYWx1ZSA9IFBvcHNQYW5lbC5nZXRWYWx1ZShydW5LZXkp\nO1xuICAgICAgICBpZiAoaXNSZXZlcnNlKSB7XG4gICAgICAgICAgcnVuVmFsdWUgPSAhcnVuVmFs\ndWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFydW5WYWx1ZSkge1xuICAgICAgICAgIGJyZWFr\nO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gcnVuVmFsdWU7XG4gICAgICB9XG4gICAgICBp\nZiAodmFsdWUpIHtcbiAgICAgICAgY2FsbGJhY2sodmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOiHquWKqOWIpOaWreiPnOWNleaYr+WQpuWQr+eUqO+8jOeEtuWQjuaJ\np+ihjOWbnuiwg++8jOWPquS8muaJp+ihjOS4gOasoVxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAg\nKiBAcGFyYW0gY2FsbGJhY2sg5Zue6LCDXG4gICAgICogQHBhcmFtIGdldFZhbHVlRm4g6Ieq5a6a\n5LmJ5aSE55CG6I635Y+W5b2T5YmN5YC877yM5YC8dHJ1ZeaYr+WQr+eUqOW5tuaJp+ihjOWbnuiw\ng++8jOWAvGZhbHNl5piv5LiN5omn6KGM5Zue6LCDXG4gICAgICogQHBhcmFtIGhhbmRsZVZhbHVl\nQ2hhbmdlRm4g6Ieq5a6a5LmJ5aSE55CG5YC85pS55Y+Y5pe255qE5Zue6LCD77yM5YC8dHJ1ZeaY\nr+WQr+eUqOW5tuaJp+ihjOWbnuiwg++8jOWAvGZhbHNl5piv5LiN5omn6KGM5Zue6LCDXG4gICAg\nICpcL1xuICAgIGV4ZWNNZW51T25jZShrZXksIGNhbGxiYWNrLCBnZXRWYWx1ZUZuLCBoYW5kbGVW\nYWx1ZUNoYW5nZUZuKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSAhPT0gXCJzdHJpbmdcIikge1xu\nICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwia2V5IOW\/hemhu+aYr+Wtl+espuS4slwiKTtc\nbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy4kZGF0YS5kYXRhLmhhcyhrZXkpKSB7XG4gICAgICAg\nIGxvZy53YXJuKGAke2tleX0g6ZSu5LiN5a2Y5ZyoYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAg\nIH1cbiAgICAgIGlmICh0aGlzLiRkYXRhLm9uZVN1Y2Nlc3NFeGVjTWVudS5oYXMoa2V5KSkge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLiRkYXRhLm9uZVN1Y2Nlc3NFeGVj\nTWVudS5zZXQoa2V5LCAxKTtcbiAgICAgIGxldCBfX2dldFZhbHVlID0gKCkgPT4ge1xuICAgICAg\nICBsZXQgbG9jYWxWYWx1ZSA9IFBvcHNQYW5lbC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICByZXR1\ncm4gdHlwZW9mIGdldFZhbHVlRm4gPT09IFwiZnVuY3Rpb25cIiA\/IGdldFZhbHVlRm4oa2V5LCBs\nb2NhbFZhbHVlKSA6IGxvY2FsVmFsdWU7XG4gICAgICB9O1xuICAgICAgbGV0IHJlc3VsdFN0eWxl\nTGlzdCA9IFtdO1xuICAgICAgbGV0IGR5bmFtaWNQdXNoU3R5bGVOb2RlID0gKCRzdHlsZSkgPT4g\ne1xuICAgICAgICBsZXQgX192YWx1ZSA9IF9fZ2V0VmFsdWUoKTtcbiAgICAgICAgbGV0IGR5bmFt\naWNSZXN1bHRMaXN0ID0gW107XG4gICAgICAgIGlmICgkc3R5bGUgaW5zdGFuY2VvZiBIVE1MU3R5\nbGVFbGVtZW50KSB7XG4gICAgICAgICAgZHluYW1pY1Jlc3VsdExpc3QgPSBbJHN0eWxlXTtcbiAg\nICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KCRzdHlsZSkpIHtcbiAgICAgICAgICBkeW5h\nbWljUmVzdWx0TGlzdCA9IFtcbiAgICAgICAgICAgIC4uLiRzdHlsZS5maWx0ZXIoXG4gICAgICAg\nICAgICAgIChpdGVtKSA9PiBpdGVtICE9IG51bGwgJiYgaXRlbSBpbnN0YW5jZW9mIEhUTUxTdHls\nZUVsZW1lbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAg\nIGlmIChfX3ZhbHVlKSB7XG4gICAgICAgICAgcmVzdWx0U3R5bGVMaXN0ID0gcmVzdWx0U3R5bGVM\naXN0LmNvbmNhdChkeW5hbWljUmVzdWx0TGlzdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAg\nICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGR5bmFtaWNSZXN1bHRMaXN0Lmxlbmd0aDsg\naW5kZXgrKykge1xuICAgICAgICAgICAgbGV0ICRjc3MgPSBkeW5hbWljUmVzdWx0TGlzdFtpbmRl\neF07XG4gICAgICAgICAgICAkY3NzLnJlbW92ZSgpO1xuICAgICAgICAgICAgZHluYW1pY1Jlc3Vs\ndExpc3Quc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIGluZGV4LS07XG4gICAgICAgICAg\nfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgbGV0IGNoYW5nZUNhbGxCYWNrID0gKGN1cnJl\nbnRWYWx1ZSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0TGlzdCA9IFtdO1xuICAgICAgICBpZiAo\nY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgbGV0IHJlc3VsdCA9IGNhbGxiYWNrKGN1cnJlbnRW\nYWx1ZSwgZHluYW1pY1B1c2hTdHlsZU5vZGUpO1xuICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFu\nY2VvZiBIVE1MU3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXN1bHRMaXN0ID0gW3Jlc3Vs\ndF07XG4gICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAg\nICAgICAgIHJlc3VsdExpc3QgPSBbXG4gICAgICAgICAgICAgIC4uLnJlc3VsdC5maWx0ZXIoXG4g\nICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0gIT0gbnVsbCAmJiBpdGVtIGluc3RhbmNlb2Yg\nSFRNTFN0eWxlRWxlbWVudFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdO1xuICAgICAg\nICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcmVz\ndWx0U3R5bGVMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgIGxldCAkY3NzID0gcmVz\ndWx0U3R5bGVMaXN0W2luZGV4XTtcbiAgICAgICAgICAkY3NzLnJlbW92ZSgpO1xuICAgICAgICAg\nIHJlc3VsdFN0eWxlTGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgIGluZGV4LS07XG4g\nICAgICAgIH1cbiAgICAgICAgcmVzdWx0U3R5bGVMaXN0ID0gWy4uLnJlc3VsdExpc3RdO1xuICAg\nICAgfTtcbiAgICAgIHRoaXMuYWRkVmFsdWVDaGFuZ2VMaXN0ZW5lcihcbiAgICAgICAga2V5LFxu\nICAgICAgICAoX19rZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICAgIGxldCBf\nX25ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgICAgaWYgKHR5cGVvZiBoYW5kbGVWYWx1ZUNo\nYW5nZUZuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIF9fbmV3VmFsdWUgPSBoYW5k\nbGVWYWx1ZUNoYW5nZUZuKF9fa2V5LCBuZXdWYWx1ZSwgb2xkVmFsdWUpO1xuICAgICAgICAgIH1c\nbiAgICAgICAgICBjaGFuZ2VDYWxsQmFjayhfX25ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAg\nKTtcbiAgICAgIGxldCB2YWx1ZSA9IF9fZ2V0VmFsdWUoKTtcbiAgICAgIGlmICh2YWx1ZSkge1xu\nICAgICAgICBjaGFuZ2VDYWxsQmFjayh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog54i25a2Q6I+c5Y2V6IGU5Yqo77yM6Ieq5Yqo5Yik5pat6I+c5Y2V5piv5ZCm5ZCv\n55So77yM54S25ZCO5omn6KGM5Zue6LCD77yM5Y+q5Lya5omn6KGM5LiA5qyhXG4gICAgICogQHBh\ncmFtIGtleSDoj5zljZXplK5cbiAgICAgKiBAcGFyYW0gY2hpbGRLZXkg5a2Q6I+c5Y2V6ZSuXG4g\nICAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwg1xuICAgICAqIEBwYXJhbSByZXBsYWNlVmFsdWVG\nbiDnlKjkuo7kv67mlLltYWluVmFsdWXvvIzov5Tlm551bmRlZmluZWTliJnkuI3lgZrlpITnkIZc\nbiAgICAgKlwvXG4gICAgZXhlY0luaGVyaXRNZW51T25jZShrZXksIGNoaWxkS2V5LCBjYWxsYmFj\naywgcmVwbGFjZVZhbHVlRm4pIHtcbiAgICAgIGxldCB0aGF0ID0gdGhpcztcbiAgICAgIGNvbnN0\nIGhhbmRsZUluaGVyaXRWYWx1ZSA9IChrZXkyLCBjaGlsZEtleTIpID0+IHtcbiAgICAgICAgbGV0\nIG1haW5WYWx1ZSA9IHRoYXQuZ2V0VmFsdWUoa2V5Mik7XG4gICAgICAgIGxldCBjaGlsZFZhbHVl\nID0gdGhhdC5nZXRWYWx1ZShjaGlsZEtleTIpO1xuICAgICAgICBpZiAodHlwZW9mIHJlcGxhY2VW\nYWx1ZUZuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBsZXQgY2hhbmdlZE1haW5WYWx1\nZSA9IHJlcGxhY2VWYWx1ZUZuKG1haW5WYWx1ZSwgY2hpbGRWYWx1ZSk7XG4gICAgICAgICAgaWYg\nKGNoYW5nZWRNYWluVmFsdWUgIT09IHZvaWQgMCkge1xuICAgICAgICAgICAgcmV0dXJuIGNoYW5n\nZWRNYWluVmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYWlu\nVmFsdWU7XG4gICAgICB9O1xuICAgICAgdGhpcy5leGVjTWVudU9uY2UoXG4gICAgICAgIGtleSxc\nbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gaGFu\nZGxlSW5oZXJpdFZhbHVlKGtleSwgY2hpbGRLZXkpO1xuICAgICAgICB9LFxuICAgICAgICAoKSA9\nPiB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUluaGVyaXRWYWx1ZShrZXksIGNoaWxkS2V5KTtc\nbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuZXhlY01lbnVPbmNlKFxuICAgICAgICBj\naGlsZEtleSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICB9LFxuICAgICAgICAoKSA9PiBmYWxz\nZSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudHJpZ2dlck1lbnVWYWx1ZUNoYW5n\nZShrZXkpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDmoLnmja5rZXnmiafooYzkuIDmrKFcbiAgICAgKiBAcGFy\nYW0ga2V5XG4gICAgICpcL1xuICAgIG9uY2VFeGVjKGtleSwgY2FsbGJhY2spIHtcbiAgICAgIGlm\nICh0eXBlb2Yga2V5ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJy\nb3IoXCJrZXkg5b+F6aG75piv5a2X56ym5LiyXCIpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMu\nJGRhdGEub25jZUV4ZWMuaGFzKGtleSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAg\nICAgY2FsbGJhY2soKTtcbiAgICAgIHRoaXMuJGRhdGEub25jZUV4ZWMuc2V0KGtleSwgMSk7XG4g\nICAgfSxcbiAgICBcLyoqXG4gICAgICog5pi+56S66K6+572u6Z2i5p2\/XG4gICAgICpcL1xuICAg\nIHNob3dQYW5lbCgpIHtcbiAgICAgIHBvcHMucGFuZWwoe1xuICAgICAgICB0aXRsZToge1xuICAg\nICAgICAgIHRleHQ6IGAke1NDUklQVF9OQU1FfS3orr7nva5gLFxuICAgICAgICAgIHBvc2l0aW9u\nOiBcImNlbnRlclwiLFxuICAgICAgICAgIGh0bWw6IGZhbHNlLFxuICAgICAgICAgIHN0eWxlOiBc\nIlwiXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuZ2V0UGFuZWxDb250ZW50Q29u\nZmlnKCksXG4gICAgICAgIG1hc2s6IHtcbiAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAg\nICAgY2xpY2tFdmVudDoge1xuICAgICAgICAgICAgdG9DbG9zZTogdHJ1ZSxcbiAgICAgICAgICAg\nIHRvSGlkZTogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiBQ\nYW5lbFVJU2l6ZS5zZXR0aW5nLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IFBhbmVsVUlTaXplLnNl\ndHRpbmcuaGVpZ2h0LFxuICAgICAgICBkcmFnOiB0cnVlLFxuICAgICAgICBvbmx5OiB0cnVlXG4g\nICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5bphY3nva7lhoXlrrlcbiAg\nICAgKlwvXG4gICAgZ2V0UGFuZWxDb250ZW50Q29uZmlnKCkge1xuICAgICAgbGV0IGNvbmZpZ0xp\nc3QgPSBbXG4gICAgICAgIFNldHRpbmdVSUNvbW1vbixcbiAgICAgICAgU2V0dGluZ1VJUEMsXG4g\nICAgICAgIFNldHRpbmdVSU1vYmlsZVxuICAgICAgXTtcbiAgICAgIHJldHVybiBjb25maWdMaXN0\nO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgYmxvY2tDU1MgPSBgLmRvd25sb2FkLWFwcC1ndWlkYW5j\nZSxcXHJcbi5jYWxsLWFwcC1idG4sXFxyXG4uY29sbGFwc2UtdGlwcyxcXHJcbi5ub3RlLWdyYWNl\nZnVsLWJ1dHRvbixcXHJcbi5hcHAtb3BlbixcXHJcbi5oZWFkZXItd3JhcCxcXHJcbi5yZWNvbW1l\nbmQtd3JhcC5yZWNvbW1lbmQtYWQsXFxyXG4uY2FsbC1hcHAtQWQtYm90dG9tLFxcclxuI3JlY29t\nbWVuZGVkLW5vdGVzIHAudG9wLXRpdGxlIHNwYW4ubW9yZSxcXHJcbiNob21lcGFnZSAubW9kYWws\nXFxyXG5idXR0b24uaW5kZXhfY2FsbC1hcHAtYnRuLFxcclxuc3Bhbi5ub3RlX19mbG93X19kb3du\nbG9hZCxcXHJcbi5kb3dubG9hZC1ndWlkZSxcXHJcbiNmb290ZXIsXFxyXG4uY29tbWVudC1vcGVu\nLWFwcC1idG4td3JhcCxcXHJcbi5uYXYubmF2YmFyLW5hdiArIGRpdixcXHJcbi5zZWxmLWZsb3ct\nYWQsXFxyXG4jZnJlZS1yZXdhcmQtcGFuZWwsXFxyXG5kaXZbaWQqPSdBZEZpdmUnXSxcXHJcbiNp\nbmRleC1hc2lkZS1kb3dubG9hZC1xcmJveCxcXHJcbi5iYWlkdS1hcHAtZG93bmxvYWQtMmVJa2Zf\nMSxcXHJcblwvKiDlupXpg6jnmoRcIuWwj+ekvOeJqei1sOS4gOi1sO+8jOadpeeugOS5puWFs+az\nqOaIkVwi44CB6LWe6LWP5pSv5oyB5ZKM5pu05aSa57K+5b2p5YaF5a6577yM5bCx5Zyo566A5Lmm\nQVBQICpcL1xcclxuZGl2W3JvbGU9XCJtYWluXCJdID4gZGl2ID4gc2VjdGlvbjpmaXJzdC1jaGls\nZCA+IGRpdjpudGgtbGFzdC1jaGlsZCgyKSxcXHJcblwvKiDlroPnmoTlhoXpg6jmmK9zY3JpcHTm\noIfnrb7vvIzlj6\/og73lvbHlk43pg6jliIbor4TorrrkuYvpl7TnmoTpq5jluqbpl67popggKlwv\nXFxyXG5kaXYuYWRhZF9jb250YWluZXIgLFxcclxuXC8qIOmhtumDqOWvvOiIquagj+eahOOAkOS4\ni+i9vUFwcOOAkSAqXC9cXHJcbiNfX25leHQgbmF2IGFbaHJlZio9XCJuYXZiYXItYXBwXCJdIHtc\nXHJcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcclxufVxcclxuYm9keS5yZWFkZXItZGF5\nLW1vZGUubm9ybWFsLXNpemUge1xcclxuXHRvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xcclxu\nfVxcclxuLmNvbGxhcHNlLWZyZWUtY29udGVudCB7XFxyXG5cdGhlaWdodDogYXV0byAhaW1wb3J0\nYW50O1xcclxufVxcclxuLmNvcHlyaWdodCB7XFxyXG5cdGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7\nXFxyXG59XFxyXG4jbm90ZS1zaG93IC5jb250ZW50IC5zaG93LWNvbnRlbnQtZnJlZSAuY29sbGFw\nc2UtZnJlZS1jb250ZW50OmFmdGVyIHtcXHJcblx0YmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1w\nb3J0YW50O1xcclxufVxcclxuZm9vdGVyID4gZGl2ID4gZGl2IHtcXHJcblx0anVzdGlmeS1jb250\nZW50OiBjZW50ZXI7XFxyXG59XFxyXG5cLyog5L+u5aSN5bqV6YOo5pyA5ZCO57yW6L6R5LqO77ya\n44CC44CC44CC5Zyo5p+Q5Lqb5aWX5aOz5rWP6KeI5Zmo5LiK55qE6ZSZ5L2N6Zeu6aKYICpcL1xc\nclxuI25vdGUtc2hvdyAuY29udGVudCAuc2hvdy1jb250ZW50LWZyZWUgLm5vdGUtbWV0YS10aW1l\nIHtcXHJcblx0bWFyZ2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7XFxyXG59XFxyXG5gO1xuICBjb25z\ndCBKaWFuc2h1Um91dGVyID0ge1xuICAgIFwvKipcbiAgICAgKiDnroDkuabmi6bmiKrot7Povazn\nmoTnvZHlnYBcbiAgICAgKlwvXG4gICAgaXNHb1dpbGQoKSB7XG4gICAgICByZXR1cm4gd2luZG93\nLmxvY2F0aW9uLnBhdGhuYW1lID09PSBcIlwvZ28td2lsZFwiO1xuICAgIH1cbiAgfTtcbiAgY29u\nc3Qgd2FpdEZvckVsZW1lbnRUb1JlbW92ZSA9IGZ1bmN0aW9uKHNlbGVjdG9yVGV4dCA9IFwiXCIp\nIHtcbiAgICB1dGlscy53YWl0Tm9kZUxpc3Qoc2VsZWN0b3JUZXh0KS50aGVuKChub2RlTGlzdCkg\nPT4ge1xuICAgICAgbm9kZUxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5yZW1vdmUoKSk7XG4g\nICAgfSk7XG4gIH07XG4gIGNvbnN0IEppYW5zaHUgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIHRo\naXMuYWRkQ1NTKCk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJKaWFuU2h1QXV0b0p1bXBS\nZWRpcmVjdF9QQ1wiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuanVtcFJlZGlyZWN0KCk7XG4gICAg\nICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcIkppYW5TaHVSZW1vdmVDbGlwYm9hcmRI\naWphY2tpbmdcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUNsaXBib2FyZEhpamFja2lu\nZygpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJKaWFuU2h1QXV0b0V4\ncGFuZEZ1bGxUZXh0XCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5hdXRvRXhwYW5kRnVsbFRleHQo\nKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiSmlhblNodUFydGljbGVD\nZW50ZXJcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ2VudGVyKCk7XG4g\nICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcIkppYW5TaHVTaGllbGRSZWxhdGVk\nQXJ0aWNsZXNcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ibG9ja1JlbGF0ZWRBcnRp\nY2xlcygpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJqaWFuc2h1LXNo\naWVsZENsaWVudERpYWxvZ1wiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuYmxvY2tDbGllbnREaWFs\nb2coKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcIkppYW5TaHVT\naGllbGRVc2VyQ29tbWVudHNcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ibG9ja1Vz\nZXJDb21tZW50cygpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwi\nSmlhblNodVNoaWVsZFJlY29tbWVuZGVkUmVhZGluZ1wiLCAoKSA9PiB7XG4gICAgICAgIHJldHVy\nbiB0aGlzLmJsb2NrUmVjb21tZW5kZWRSZWFkaW5nKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQ\nYW5lbC5leGVjTWVudU9uY2UoXCJqaWFuc2h1LXNoaWVsZFRvcE5hdlwiLCAoKSA9PiB7XG4gICAg\nICAgIHJldHVybiB0aGlzLmJsb2NrVG9wTmF2KCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5l\nbC5leGVjTWVudU9uY2UoXCJqaWFuc2h1LXNoaWVsZEJvdHRvbVRvb2xiYXJcIiwgKCkgPT4ge1xu\nICAgICAgICByZXR1cm4gdGhpcy5ibG9ja0JvdHRvbVRvb2xiYXIoKTtcbiAgICAgIH0pO1xuICAg\nIH0sXG4gICAgXC8qKlxuICAgICAqIOa3u+WKoOWxj+iUvUNTU1xuICAgICAqXC9cbiAgICBhZGRD\nU1MoKSB7XG4gICAgICBsb2cuaW5mbyhcIua3u+WKoOWxj+iUvUNTU1wiKTtcbiAgICAgIHJldHVy\nbiBhZGRTdHlsZShibG9ja0NTUyk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5YWo5paH5bGF\n5LitXG4gICAgICpcL1xuICAgIGFydGljbGVDZW50ZXIoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWF\nqOaWh+WxheS4rVwiKTtcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAgIHJlc3VsdC5wdXNo\nKFxuICAgICAgICBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiZGl2W3JvbGU9bWFpbl0gYXNpZGVc\nIiwgXCJkaXYuXzNQbmpyeVwiKSxcbiAgICAgICAgYWRkU3R5bGUoXG4gICAgICAgICAgXC8qY3Nz\nKlwvXG4gICAgICAgICAgYFxuXHRcdFx0ZGl2W3JvbGU9bWFpbl0gYXNpZGUsXG5cdFx0XHRkaXYu\nXzNQbmpyeXtcblx0XHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRc\ndFx0ZGl2Ll9ncC1ja3tcblx0XHRcdFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHRcdH1g\nXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICB3YWl0Rm9yRWxlbWVudFRvUmVtb3ZlKFwiZGl2\nW3JvbGU9bWFpbl0gYXNpZGVcIik7XG4gICAgICB3YWl0Rm9yRWxlbWVudFRvUmVtb3ZlKFwiZGl2\nLl8zUG5qcnlcIik7XG4gICAgICB1dGlscy53YWl0Tm9kZUxpc3QoXCJkaXYuX2dwLWNrXCIpLnRo\nZW4oKG5vZGVMaXN0KSA9PiB7XG4gICAgICAgIG5vZGVMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtc\nbiAgICAgICAgICBpdGVtLnN0eWxlW1wid2lkdGhcIl0gPSBcIjEwMCVcIjtcbiAgICAgICAgfSk7\nXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog5Y676Zmk5Ymq6LS05p2\/5Yqr5oyBXG4gICAgICpcL1xuICAgIHJlbW92ZUNsaXBib2FyZEhp\namFja2luZygpIHtcbiAgICAgIGxvZy5pbmZvKFwi5Y676Zmk5Ymq6LS05p2\/5Yqr5oyBXCIpO1xu\nICAgICAgY29uc3Qgc3RvcE5hdGl2ZVByb3BhZ2F0aW9uID0gKGV2ZW50KSA9PiB7XG4gICAgICAg\nIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfTtcbiAgICAgIHdpbmRvdy5hZGRFdmVu\ndExpc3RlbmVyKFwiY29weVwiLCBzdG9wTmF0aXZlUHJvcGFnYXRpb24sIHRydWUpO1xuICAgICAg\nZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNvcHlcIiwgc3RvcE5hdGl2ZVByb3BhZ2F0aW9u\nLCB0cnVlKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDoh6rliqjlsZXlvIDlhajmlodcbiAg\nICAgKlwvXG4gICAgYXV0b0V4cGFuZEZ1bGxUZXh0KCkge1xuICAgICAgdXRpbHMud2FpdE5vZGUo\nYGRpdiNob21lcGFnZSBkaXZbY2xhc3MqPVwiZGlhbG9nLVwiXWApLnRoZW4oKGVsZW1lbnQpID0+\nIHtcbiAgICAgICAgZWxlbWVudC5zdHlsZVtcInZpc2liaWxpdHlcIl0gPSBcImhpZGRlblwiO1xu\nICAgICAgICBsb2cuaW5mbyhcIuiHquWKqOWxleW8gOWFqOaWh1wiKTtcbiAgICAgICAgdXRpbHMu\nbXV0YXRpb25PYnNlcnZlcihlbGVtZW50LCB7XG4gICAgICAgICAgY2FsbGJhY2s6IChtdXRhdGlv\nbnMpID0+IHtcbiAgICAgICAgICAgIGlmIChtdXRhdGlvbnMubGVuZ3RoID09IDApIHtcbiAgICAg\nICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbXV0YXRpb25zLmZv\nckVhY2goKG11dGF0aW9uSXRlbSkgPT4ge1xuICAgICAgICAgICAgICB2YXIgX2EyO1xuICAgICAg\nICAgICAgICBpZiAobXV0YXRpb25JdGVtLnRhcmdldC5zdHlsZVtcImRpc3BsYXlcIl0gIT0gXCJu\nb25lXCIpIHtcbiAgICAgICAgICAgICAgICBsb2cuc3VjY2VzcyhcIuiHquWKqOWxleW8gOWFqOaW\nhy3oh6rliqjngrnlh7tcIik7XG4gICAgICAgICAgICAgICAgKF9hMiA9IGRvY3VtZW50LnF1ZXJ5\nU2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAnZGl2I2hvbWVwYWdlIGRpdltjbGFzcyo9XCJk\naWFsb2ctXCJdIC5jYW5jZWwnXG4gICAgICAgICAgICAgICAgKSkgPT0gbnVsbCA\/IHZvaWQgMCA6\nIF9hMi5jbGljaygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAg\nICB9LFxuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgXC8qIOWtkOiKgueCueeahOWP\nmOWKqO+8iOaWsOWinuOAgeWIoOmZpOaIluiAheabtOaUue+8iSAqXC9cbiAgICAgICAgICAgIGNo\naWxkTGlzdDogZmFsc2UsXG4gICAgICAgICAgICBcLyog5bGe5oCn55qE5Y+Y5YqoICpcL1xuICAg\nICAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgICAgIFwvKiDoioLngrnlhoXlrrnm\niJboioLngrnmlofmnKznmoTlj5jliqggKlwvXG4gICAgICAgICAgICBjaGFyYWN0ZXJEYXRhOiB0\ncnVlLFxuICAgICAgICAgICAgXC8qIOaYr+WQpuWwhuinguWvn+WZqOW6lOeUqOS6juivpeiKgueC\nueeahOaJgOacieWQjuS7o+iKgueCuSAqXC9cbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcbiAg\nICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog5Y676Zmk566A5Lmm5oum5oiq5YW25a6D572R5Z2A55qEdXJs5bm26Ieq5Yqo6Lez6L2sXG4g\nICAgICpcL1xuICAgIGp1bXBSZWRpcmVjdCgpIHtcbiAgICAgIGlmIChKaWFuc2h1Um91dGVyLmlz\nR29XaWxkKCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLljrvpmaTnroDkuabmi6bmiKrlhbbl\nroPnvZHlnYDnmoR1cmzlubboh6rliqjot7PovaxcIik7XG4gICAgICAgIHdpbmRvdy5zdG9wKCk7\nXG4gICAgICAgIGxldCBzZWFyY2ggPSB3aW5kb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKFxuICAg\nICAgICAgIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyBcIlwvXCIsXG4gICAgICAgICAgXCJcIlxu\nICAgICAgICApO1xuICAgICAgICBzZWFyY2ggPSBkZWNvZGVVUklDb21wb25lbnQoc2VhcmNoKTtc\nbiAgICAgICAgbGV0IG5ld1VSTCA9IHNlYXJjaC5yZXBsYWNlKFwvXmdvLXdpbGRcXD9hYz0yJnVy\nbD1cL2dpLCBcIlwiKS5yZXBsYWNlKFwvXmh0dHBzOlxcXC9cXFwvbGluay56aGlodS5jb21cXFwv\nXFw\/dGFyZ2V0XFw9XC9naSwgXCJcIik7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0g\nbmV3VVJMO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveebuOWFs+aW\nh+eroFxuICAgICAqXC9cbiAgICBibG9ja1JlbGF0ZWRBcnRpY2xlcygpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi5bGP6JS955u45YWz5paH56ugXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRk\nQmxvY2tDU1MoXG4gICAgICAgICdkaXZbcm9sZT1cIm1haW5cIl0gPiBkaXYgPiBzZWN0aW9uOm50\naC1jaGlsZCgyKSdcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog44CQ5bGP6JS9\n44CR5a6i5oi356uv5by556qXXG4gICAgICpcL1xuICAgIGJsb2NrQ2xpZW50RGlhbG9nKCkge1xu\nICAgICAgbG9nLmluZm8oXCLjgJDlsY\/olL3jgJHlrqLmiLfnq6\/lvLnnqpdcIik7XG4gICAgICBD\nb21tb25VdGlsLmFkZEJsb2NrQ1NTKFxuICAgICAgICAnZGl2Omhhcyg+ZGl2W2NsYXNzKj1cIi1t\nYXNrXCJdOm5vdChbY2xhc3MqPVwiLW1hc2staGlkZGVuXCJdKSArIGRpdlt0YWJpbmRleD1cIi0x\nXCJdW3JvbGU9XCJkaWFsb2dcIl0pJ1xuICAgICAgKTtcbiAgICAgIHV0aWxzLndhaXROb2RlKFxu\nICAgICAgICBgZGl2W2NsYXNzKj1cIi1tYXNrXCJdOm5vdChbY2xhc3MqPVwiLW1hc2staGlkZGVu\nXCJdKSArIGRpdlt0YWJpbmRleD1cIi0xXCJdW3JvbGU9XCJkaWFsb2dcIl1gXG4gICAgICApLnRo\nZW4oKGVsZW1lbnQpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLlvLnnqpflh7rnjrBcIik7\nXG4gICAgICAgIHV0aWxzLndhaXRQcm9wZXJ0eUJ5SW50ZXJ2YWwoXG4gICAgICAgICAgZWxlbWVu\ndCxcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EyLCBfYiwgX2MsIF9kO1xu\nICAgICAgICAgICAgbGV0IHJlYWN0ID0gdXRpbHMuZ2V0UmVhY3RPYmooZWxlbWVudCk7XG4gICAg\nICAgICAgICByZXR1cm4gKF9kID0gKF9jID0gKF9iID0gKF9hMiA9IHJlYWN0ID09IG51bGwgPyB2\nb2lkIDAgOiByZWFjdC5yZWFjdEludGVybmFsSW5zdGFuY2UpID09IG51bGwgPyB2b2lkIDAgOiBf\nYTIucmV0dXJuKSA9PSBudWxsID8gdm9pZCAwIDogX2IucmV0dXJuKSA9PSBudWxsID8gdm9pZCAw\nIDogX2MubWVtb2l6ZWRQcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9kLm9uQ2xvc2U7XG4gICAg\nICAgICAgfSxcbiAgICAgICAgICAyNTAsXG4gICAgICAgICAgMWU0XG4gICAgICAgICkudGhlbigo\nKSA9PiB7XG4gICAgICAgICAgbGV0IHJlYWN0ID0gdXRpbHMuZ2V0UmVhY3RPYmooZWxlbWVudCk7\nXG4gICAgICAgICAgcmVhY3QucmVhY3RJbnRlcm5hbEluc3RhbmNlLnJldHVybi5yZXR1cm4ubWVt\nb2l6ZWRQcm9wcy5vbkNsb3NlKFxuICAgICAgICAgICAgbmV3IEV2ZW50KFwiY2xpY2tcIilcbiAg\nICAgICAgICApO1xuICAgICAgICAgIGxvZy5zdWNjZXNzKFwi6LCD55So5Ye95pWw5YWz6Zet5by5\n56qXXCIpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOWxj+iUveivhOiuuuWMulxuICAgICAqXC9cbiAgICBibG9ja1VzZXJDb21tZW50cygpIHtcbiAg\nICAgIGxvZy5pbmZvKFwi5bGP6JS96K+E6K665Yy6XCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0\naWwuYWRkQmxvY2tDU1MoXCJkaXYjbm90ZS1wYWdlLWNvbW1lbnRcIik7XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5bGP6JS95bqV6YOo5o6o6I2Q6ZiF6K+7XG4gICAgICpcL1xuICAgIGJsb2Nr\nUmVjb21tZW5kZWRSZWFkaW5nKCkge1xuICAgICAgbG9nLmluZm8oXCLlsY\/olL3lupXpg6jmjqjo\njZDpmIXor7tcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAg\nICAgJ2Rpdltyb2xlPVwibWFpblwiXSA+IGRpdiA+IHNlY3Rpb246bGFzdC1jaGlsZCdcbiAgICAg\nICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog44CQ5bGP6JS944CR6aG26YOo5a+86Iiq5qCP\nXG4gICAgICpcL1xuICAgIGJsb2NrVG9wTmF2KCkge1xuICAgICAgbG9nLmluZm8oXCLjgJDlsY\/o\nlL3jgJHpobbpg6jlr7zoiKrmoI9cIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9j\na0NTUyhcImhlYWRlclwiKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDjgJDlsY\/olL3jgJHl\nupXpg6jlt6XlhbfmoI9cbiAgICAgKlwvXG4gICAgYmxvY2tCb3R0b21Ub29sYmFyKCkge1xuICAg\nICAgbG9nLmluZm8oXCLjgJDlsY\/olL3jgJHlupXpg6jlt6XlhbfmoI9cIik7XG4gICAgICByZXR1\ncm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcImZvb3RlclwiKTtcbiAgICB9XG4gIH07XG4gIGNv\nbnN0IE1fSmlhbnNodSA9IHtcbiAgICBpbml0KCkge1xuICAgICAgdGhpcy5hZGRDU1MoKTtcbiAg\nICAgIFBvcHNQYW5lbC5leGVjTWVudShcIkppYW5TaHVBdXRvSnVtcFJlZGlyZWN0X01vYmlsZVwi\nLCAoKSA9PiB7XG4gICAgICAgIEppYW5zaHUuanVtcFJlZGlyZWN0KCk7XG4gICAgICB9KTtcbiAg\nICAgIFBvcHNQYW5lbC5leGVjTWVudShcIkppYW5TaHVIaWphY2tTY2hlbWVTY3JpcHRMYWJlbF9N\nb2JpbGVcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZVByb3RvdHlwZSgpO1xuICAgICAg\nfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJKaWFuU2h1UmVtb3ZlQ2xpcGJvYXJkSGlq\nYWNraW5nX01vYmlsZVwiLCAoKSA9PiB7XG4gICAgICAgIEppYW5zaHUucmVtb3ZlQ2xpcGJvYXJk\nSGlqYWNraW5nKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcIkppYW5T\naHVBdXRvRXhwYW5kRnVsbFRleHRfTW9iaWxlXCIsICgpID0+IHtcbiAgICAgICAgSmlhbnNodS5h\ndXRvRXhwYW5kRnVsbFRleHQoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51\nT25jZShcIkppYW5TaHVyZW1vdmVGb290ZXJSZWNvbW1lbmRSZWFkXCIsICgpID0+IHtcbiAgICAg\nICAgcmV0dXJuIHRoaXMuYmxvY2tlRm9vdGVyUmVjb21tZW5kUmVhZCgpO1xuICAgICAgfSk7XG4g\nICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJKaWFuU2h1U2hpZWxkVXNlckNvbW1lbnRzTW9iaWxl\nXCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tVc2VyQ29tbWVudHMoKTtcbiAg\nICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOa3u+WKoOWxj+iUvUNTU1xuICAgICAq\nXC9cbiAgICBhZGRDU1MoKSB7XG4gICAgICBKaWFuc2h1LmFkZENTUygpO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOaJi+acui3lsY\/olL3lupXpg6jmjqjojZDpmIXor7tcbiAgICAgKlwvXG4g\nICAgYmxvY2tlRm9vdGVyUmVjb21tZW5kUmVhZCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS9\n5bqV6YOo5o6o6I2Q6ZiF6K+7XCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tD\nU1MoXCIjcmVjb21tZW5kZWQtbm90ZXNcIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5aSE\n55CG5Y6f5Z6LXG4gICAgICpcL1xuICAgIGhhbmRsZVByb3RvdHlwZSgpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi5aSE55CG5Y6f5Z6L5re75Yqgc2NyaXB05qCH562+XCIpO1xuICAgICAgbGV0IG9yaWdp\nbmFsQXBwZW5kQ2hpbGQgPSBOb2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZDtcbiAgICAgIF91bnNh\nZmVXaW5kb3cuTm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQgPSBmdW5jdGlvbihlbGVtZW50KSB7\nXG4gICAgICAgIGxldCBhbGxvd0VsZW1lbnRMb2NhbE5hbWVMaXN0ID0gW1wiaW1nXCJdO1xuICAg\nICAgICBpZiAoZWxlbWVudC5zcmMgJiYgIWVsZW1lbnQuc3JjLmluY2x1ZGVzKFwiamlhbnNodS5p\nb1wiKSAmJiAhYWxsb3dFbGVtZW50TG9jYWxOYW1lTGlzdC5pbmNsdWRlcyhlbGVtZW50LmxvY2Fs\nTmFtZSkpIHtcbiAgICAgICAgICBsb2cuc3VjY2VzcyhbXCLnpoHmraLmt7vliqDnmoTlhYPntKBc\nIiwgZWxlbWVudF0pO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xu\nICAgICAgICAgIHJldHVybiBvcmlnaW5hbEFwcGVuZENoaWxkLmNhbGwodGhpcywgZWxlbWVudCk7\nXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS96K+E\n6K665Yy6XG4gICAgICpcL1xuICAgIGJsb2NrVXNlckNvbW1lbnRzKCkge1xuICAgICAgbG9nLmlu\nZm8oXCLlsY\/olL3or4TorrrljLpcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9j\na0NTUyhcIiNjb21tZW50LW1haW5cIik7XG4gICAgfVxuICB9O1xuICBQb3BzUGFuZWwuaW5pdCgp\nO1xuICBsZXQgaXNNb2JpbGUgPSB1dGlscy5pc1Bob25lKCk7XG4gIGxldCBDSEFOR0VfRU5WX1NF\nVF9LRVkgPSBcImNoYW5nZV9lbnZfc2V0XCI7XG4gIGxldCBjaG9vc2VNb2RlID0gX0dNX2dldFZh\nbHVlKENIQU5HRV9FTlZfU0VUX0tFWSk7XG4gIEdNX01lbnUuYWRkKHtcbiAgICBrZXk6IENIQU5H\nRV9FTlZfU0VUX0tFWSxcbiAgICB0ZXh0OiBg4pqZIOiHquWKqDogJHtpc01vYmlsZSA\/IFwi56e7\n5Yqo56uvXCIgOiBcIlBD56uvXCJ9YCxcbiAgICBhdXRvUmVsb2FkOiBmYWxzZSxcbiAgICBpc1N0\nb3JlVmFsdWU6IGZhbHNlLFxuICAgIHNob3dUZXh0KHRleHQpIHtcbiAgICAgIGlmIChjaG9vc2VN\nb2RlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICB9XG4gICAgICByZXR1\ncm4gdGV4dCArIGAg5omL5YqoOiAke2Nob29zZU1vZGUgPT0gMSA\/IFwi56e75Yqo56uvXCIgOiBj\naG9vc2VNb2RlID09IDIgPyBcIlBD56uvXCIgOiBcIuacquefpVwifWA7XG4gICAgfSxcbiAgICBj\nYWxsYmFjazogKCkgPT4ge1xuICAgICAgbGV0IGFsbG93VmFsdWUgPSBbMCwgMSwgMl07XG4gICAg\nICBsZXQgY2hvb3NlVGV4dCA9IHdpbmRvdy5wcm9tcHQoXG4gICAgICAgIFwi6K+36L6T5YWl5b2T\n5YmN6ISa5pys546v5aKD5Yik5a6aXFxuXFxu6Ieq5Yqo5Yik5patOiAwXFxu56e75Yqo56uvOiAx\nXFxuUEPnq686IDJcIixcbiAgICAgICAgXCIwXCJcbiAgICAgICk7XG4gICAgICBpZiAoIWNob29z\nZVRleHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGNob29zZU1vZGUy\nID0gcGFyc2VJbnQoY2hvb3NlVGV4dCk7XG4gICAgICBpZiAoaXNOYU4oY2hvb3NlTW9kZTIpKSB7\nXG4gICAgICAgIFFtc2cuZXJyb3IoXCLovpPlhaXnmoTkuI3mmK\/op4TojIPnmoTmlbDlrZdcIik7\nXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghYWxsb3dWYWx1ZS5pbmNsdWRl\ncyhjaG9vc2VNb2RlMikpIHtcbiAgICAgICAgUW1zZy5lcnJvcihcIui+k+WFpeeahOWAvOW\/hemh\nu+aYrzDmiJYx5oiWMlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGNo\nb29zZU1vZGUyID09IDApIHtcbiAgICAgICAgX0dNX2RlbGV0ZVZhbHVlKENIQU5HRV9FTlZfU0VU\nX0tFWSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfR01fc2V0VmFsdWUoQ0hBTkdFX0VOVl9T\nRVRfS0VZLCBjaG9vc2VNb2RlMik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgaWYgKGNob29z\nZU1vZGUgIT0gbnVsbCkge1xuICAgIGxvZy5pbmZvKGDmiYvliqjliKTlrprkuLoke2Nob29zZU1v\nZGUgPT09IDEgPyBcIuenu+WKqOerr1wiIDogXCJQQ+err1wifWApO1xuICAgIGlmIChjaG9vc2VN\nb2RlID09IDEpIHtcbiAgICAgIE1fSmlhbnNodS5pbml0KCk7XG4gICAgfSBlbHNlIGlmIChjaG9v\nc2VNb2RlID09IDIpIHtcbiAgICAgIEppYW5zaHUuaW5pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAg\nICBRbXNnLmVycm9yKFwi5oSP5aSW77yM5omL5Yqo5Yik5a6a55qE5YC85LiN5Zyo6IyD5Zu05YaF\nXCIpO1xuICAgICAgX0dNX2RlbGV0ZVZhbHVlKENIQU5HRV9FTlZfU0VUX0tFWSk7XG4gICAgfVxu\nICB9IGVsc2Uge1xuICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgbG9nLmluZm8oXCLoh6rliqjl\niKTlrprkuLrnp7vliqjnq69cIik7XG4gICAgICBNX0ppYW5zaHUuaW5pdCgpO1xuICAgIH0gZWxz\nZSB7XG4gICAgICBsb2cuaW5mbyhcIuiHquWKqOWIpOWumuS4ulBD56uvXCIpO1xuICAgICAgSmlh\nbnNodS5pbml0KCk7XG4gICAgfVxuICB9XG5cbn0pKFFtc2csIERPTVV0aWxzLCBVdGlscywgcG9w\ncyk7In0KeyJzY3JpcHRJZCI6Ijc4NzhhOGQxZWM3NjE3ODllZDdiNmZmYjJmMTc1ODA4IiwiZW5h\nYmxlZCI6dHJ1ZSwidXJsIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0\nc1wvNDE4MzQ5XC8lRTMlODAlOTAlRTclQTclQkIlRTUlOEElQTglRTclQUIlQUYlRTMlODAlOTEl\nRTclOTklQkUlRTUlQkElQTYlRTclQjMlQkIlRTQlQkMlOTglRTUlOEMlOTYudXNlci5qcyIsImNv\nZGVWMiI6IlwvXC8gPT1Vc2VyU2NyaXB0PT1cblwvXC8gQG5hbWUgICAgICAgICDjgJDnp7vliqjn\nq6\/jgJHnmb7luqbns7vkvJjljJZcblwvXC8gQG5hbWVzcGFjZSAgICBodHRwczpcL1wvZ2l0aHVi\nLmNvbVwvV2hpdGVTZXZzXC9UYW1wZXJNb25rZXlTY3JpcHRcblwvXC8gQHZlcnNpb24gICAgICAy\nMDI0LjExLjE5XG5cL1wvIEBhdXRob3IgICAgICAgV2hpdGVTZXZzXG5cL1wvIEBkZXNjcmlwdGlv\nbiAg55So5LqO44CQ56e75Yqo56uv44CR55qE55m+5bqm57O75YiX5Lqn5ZOB5LyY5YyW77yM5YyF\n5ous44CQ55m+5bqm5pCc57Si44CR44CB44CQ55m+5a625Y+344CR44CB44CQ55m+5bqm6LS05ZCn\n44CR44CB44CQ55m+5bqm5paH5bqT44CR44CB44CQ55m+5bqm57uP6aqM44CR44CB44CQ55m+5bqm\n55m+56eR44CR44CB44CQ55m+5bqm55+l6YGT44CR44CB44CQ55m+5bqm57+76K+R44CR44CB44CQ\n55m+5bqm5Zu+54mH44CR44CB44CQ55m+5bqm5Zyw5Zu+44CR44CB44CQ55m+5bqm5aW955yL6KeG\n6aKR44CR44CB44CQ55m+5bqm54ix5LyB5p+l44CR44CB44CQ55m+5bqm6Zeu6aKY44CR44CB44CQ\n55m+5bqm6K+G5Zu+44CR562JXG5cL1wvIEBsaWNlbnNlICAgICAgR1BMLTMuMC1vbmx5XG5cL1wv\nIEBpY29uICAgICAgICAgaHR0cHM6XC9cL3d3dy5iYWlkdS5jb21cL2Zhdmljb24uaWNvXG5cL1wv\nIEBzdXBwb3J0VVJMICAgaHR0cHM6XC9cL2dpdGh1Yi5jb21cL1doaXRlU2V2c1wvVGFtcGVyTW9u\na2V5U2NyaXB0XC9pc3N1ZXNcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8qLmJhaWR1LmNvbVwv\nKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3d3dy50aWViYS5jb21cLypcblwvXC8gQG1hdGNo\nICAgICAgICAqOlwvXC9qdW1wMi5iZGltZy5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwv\nXC91ZjlreWguc21hcnRhcHBzLmNuXC8qXG5cL1wvIEByZXF1aXJlICAgICAgaHR0cHM6XC9cL3Vw\nZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDk0MTY3XC8xNDEzMjU1XC9Db3ZlclVNRC5q\nc1xuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3Nj\ncmlwdHNcLzQ4ODE3OVwvMTQxMzI1NFwvc2hvd2Rvd24uanNcblwvXC8gQHJlcXVpcmUgICAgICBo\ndHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBtXC9Ad2hpdGVzZXZcL3V0aWxzQDIuNS4z\nXC9kaXN0XC9pbmRleC51bWQuanNcblwvXC8gQHJlcXVpcmUgICAgICBodHRwczpcL1wvZmFzdGx5\nLmpzZGVsaXZyLm5ldFwvbnBtXC9Ad2hpdGVzZXZcL2RvbXV0aWxzQDEuNC4yXC9kaXN0XC9pbmRl\neC51bWQuanNcblwvXC8gQHJlcXVpcmUgICAgICBodHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5l\ndFwvbnBtXC9Ad2hpdGVzZXZcL3BvcHNAMS45LjBcL2Rpc3RcL2luZGV4LnVtZC5qc1xuXC9cLyBA\ncmVxdWlyZSAgICAgIGh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9ucG1cL3Ftc2dAMS4y\nLjdcL2Rpc3RcL2luZGV4LnVtZC5qc1xuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC9mYXN0\nbHkuanNkZWxpdnIubmV0XC9ucG1cL3ZpZXdlcmpzQDEuMTEuNlwvZGlzdFwvdmlld2VyLm1pbi5q\nc1xuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9ucG1c\nL3Z1ZUAzLjQuMzNcL2Rpc3RcL3Z1ZS5nbG9iYWwucHJvZC5qc1xuXC9cLyBAcmVxdWlyZSAgICAg\nIGh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9ucG1cL3Z1ZS1kZW1pQDAuMTQuOVwvbGli\nXC9pbmRleC5paWZlLm1pbi5qc1xuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC9mYXN0bHku\nanNkZWxpdnIubmV0XC9ucG1cL3BpbmlhQDIuMS43XC9kaXN0XC9waW5pYS5paWZlLnByb2QuanNc\nblwvXC8gQHJlcXVpcmUgICAgICBodHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBtXC92\ndWUtcm91dGVyQDQuNC41XC9kaXN0XC92dWUtcm91dGVyLmdsb2JhbC5qc1xuXC9cLyBAcmVxdWly\nZSAgICAgIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzQ5NTIyN1wv\nMTQxMzI2MVwvRWxlbWVudC1QbHVzLmpzXG5cL1wvIEByZXF1aXJlICAgICAgaHR0cHM6XC9cL2Zh\nc3RseS5qc2RlbGl2ci5uZXRcL25wbVwvQGVsZW1lbnQtcGx1c1wvaWNvbnMtdnVlQDIuMy4xXC9k\naXN0XC9pbmRleC5paWZlLm1pbi5qc1xuXC9cLyBAcmVzb3VyY2UgICAgIEVsZW1lbnRQbHVzUmVz\nb3VyY2VDU1MgIGh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9ucG1cL2VsZW1lbnQtcGx1\nc0AyLjcuN1wvZGlzdFwvaW5kZXgubWluLmNzc1xuXC9cLyBAcmVzb3VyY2UgICAgIFZpZXdlckNT\nUyAgICAgICAgICAgICAgIGh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9ucG1cL3ZpZXdl\ncmpzQDEuMTEuNlwvZGlzdFwvdmlld2VyLm1pbi5jc3NcblwvXC8gQGNvbm5lY3QgICAgICAqXG5c\nL1wvIEBjb25uZWN0ICAgICAgd3d3LmJhaWR1LmNvbVxuXC9cLyBAY29ubmVjdCAgICAgIG0uYmFp\nZHUuY29tXG5cL1wvIEBjb25uZWN0ICAgICAgdGllYmEuYmFpZHUuY29tXG5cL1wvIEBjb25uZWN0\nICAgICAgd3d3LnRpZWJhLmNvbVxuXC9cLyBAY29ubmVjdCAgICAgIGJhaWtlLmJhaWR1LmNvbVxu\nXC9cLyBAY29ubmVjdCAgICAgIGNoYXQuYmFpZHUuY29tXG5cL1wvIEBjb25uZWN0ICAgICAgY2hh\ndC13cy5iYWlkdS5jb21cblwvXC8gQGNvbm5lY3QgICAgICB3YXBwYXNzLmJhaWR1LmNvbVxuXC9c\nLyBAZ3JhbnQgICAgICAgIEdNX2FkZFN0eWxlXG5cL1wvIEBncmFudCAgICAgICAgR01fZGVsZXRl\nVmFsdWVcblwvXC8gQGdyYW50ICAgICAgICBHTV9nZXRSZXNvdXJjZVRleHRcblwvXC8gQGdyYW50\nICAgICAgICBHTV9nZXRWYWx1ZVxuXC9cLyBAZ3JhbnQgICAgICAgIEdNX2luZm9cblwvXC8gQGdy\nYW50ICAgICAgICBHTV9yZWdpc3Rlck1lbnVDb21tYW5kXG5cL1wvIEBncmFudCAgICAgICAgR01f\nc2V0VmFsdWVcblwvXC8gQGdyYW50ICAgICAgICBHTV91bnJlZ2lzdGVyTWVudUNvbW1hbmRcblwv\nXC8gQGdyYW50ICAgICAgICBHTV94bWxodHRwUmVxdWVzdFxuXC9cLyBAZ3JhbnQgICAgICAgIHVu\nc2FmZVdpbmRvd1xuXC9cLyBAcnVuLWF0ICAgICAgIGRvY3VtZW50LXN0YXJ0XG5cL1wvIEBkb3du\nbG9hZFVSTCBodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80MTgzNDlc\nLyVFMyU4MCU5MCVFNyVBNyVCQiVFNSU4QSVBOCVFNyVBQiVBRiVFMyU4MCU5MSVFNyU5OSVCRSVF\nNSVCQSVBNiVFNyVCMyVCQiVFNCVCQyU5OCVFNSU4QyU5Ni51c2VyLmpzXG5cL1wvIEB1cGRhdGVV\nUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDE4MzQ5XC8lRTMl\nODAlOTAlRTclQTclQkIlRTUlOEElQTglRTclQUIlQUYlRTMlODAlOTElRTclOTklQkUlRTUlQkEl\nQTYlRTclQjMlQkIlRTQlQkMlOTglRTUlOEMlOTYubWV0YS5qc1xuXC9cLyA9PVwvVXNlclNjcmlw\ndD09XG5cbihlPT57ZnVuY3Rpb24gbyh0KXtpZih0eXBlb2YgdCE9XCJzdHJpbmdcIil0aHJvdyBu\nZXcgVHlwZUVycm9yKFwiY3NzVGV4dCBtdXN0IGJlIGEgc3RyaW5nXCIpO2xldCBsPWRvY3VtZW50\nLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtyZXR1cm4gbC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIs\nXCJ0ZXh0XC9jc3NcIiksbC5pbm5lckhUTUw9dCxkb2N1bWVudC5oZWFkP2RvY3VtZW50LmhlYWQu\nYXBwZW5kQ2hpbGQobCk6ZG9jdW1lbnQuYm9keT9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGwp\nOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aD09PTA\/ZG9jdW1lbnQu\nZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGwpOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5p\nbnNlcnRCZWZvcmUobCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2Rlc1swXSksbH1p\nZih0eXBlb2YgR01fYWRkU3R5bGU9PVwiZnVuY3Rpb25cIil7R01fYWRkU3R5bGUoZSk7cmV0dXJu\nfW8oZSl9KSgnIEBjaGFyc2V0IFwiVVRGLThcIjsjc21hbGwtdG9vbGJhcltkYXRhLXYtZDI3OWQw\nM2Zde3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTowO3dpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmO2hl\naWdodDouNTZyZW07ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt6LWluZGV4OjEwMDB9\nI3NtYWxsLXRvb2xiYXIgLmljb25bZGF0YS12LWQyNzlkMDNmXXt3aWR0aDouMnJlbTtoZWlnaHQ6\nLjJyZW19I3NtYWxsLXRvb2xiYXIgI3JlcGx5LWVkaXRvcltkYXRhLXYtZDI3OWQwM2Zde2ZsZXg6\nMX0jc21hbGwtdG9vbGJhciAuc21hbGwtZWRpdG9yLXRvb2xiYXJbZGF0YS12LWQyNzlkMDNmXXtm\nbGV4OjE7bWFyZ2luOjEwcHggMTVweDt3aWR0aDoxMDAlO2ZvbnQtc2l6ZTouMTZyZW07bGluZS1o\nZWlnaHQ6LjE2cmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVs\nYXRpdmV9I3NtYWxsLXRvb2xiYXIgLnNtYWxsLWVkaXRvci10b29sYmFyIC5zbWFsbC1lZGl0b3It\ndG9vbGJhci1pbnB1dFtkYXRhLXYtZDI3OWQwM2Zde3dpZHRoOjEwMCU7YmFja2dyb3VuZDojZTll\nOWU5O2JvcmRlci1yYWRpdXM6LjA2cmVtO3BhZGRpbmc6LjA2cmVtO2JvcmRlcjowO291dGxpbmU6\nbm9uZTtmb250LXNpemU6LjE0cmVtO2xpbmUtaGVpZ2h0Oi4xNHJlbTtjdXJzb3I6ZGVmYXVsdH0j\nc21hbGwtdG9vbGJhciAuc21hbGwtZWRpdG9yLXRvb2xiYXIgLnNtYWxsLWVkaXRvci10b29sYmFy\nLWVtb2ppLWJ0bltkYXRhLXYtZDI3OWQwM2Zde3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7cmln\naHQ6LjA2cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfSNzbWFsbC10b29sYmFyIC5zbWFs\nbC1lZGl0b3ItdG9vbGJhciAuc21hbGwtZWRpdG9yLXRvb2xiYXItaW5wdXRbZGF0YS12LWQyNzlk\nMDNmXTpmb2N1cywjc21hbGwtdG9vbGJhciAuc21hbGwtZWRpdG9yLXRvb2xiYXIgLnNtYWxsLWVk\naXRvci10b29sYmFyLWlucHV0W2RhdGEtdi1kMjc5ZDAzZl06dmlzaXRlZCwjc21hbGwtdG9vbGJh\nciAuc21hbGwtZWRpdG9yLXRvb2xiYXIgLnNtYWxsLWVkaXRvci10b29sYmFyLWlucHV0W2RhdGEt\ndi1kMjc5ZDAzZl06Zm9jdXMtd2l0aGluLCNzbWFsbC10b29sYmFyIC5zbWFsbC1lZGl0b3ItdG9v\nbGJhciAuc21hbGwtZWRpdG9yLXRvb2xiYXItaW5wdXRbZGF0YS12LWQyNzlkMDNmXTpmb2N1cy12\naXNpYmxle2JvcmRlcjowO291dGxpbmU6bm9uZX0jc21hbGwtdG9vbGJhciAuZ20tcmVwbHktb3Ro\nZXItdG9vbGJhcltkYXRhLXYtZDI3OWQwM2Zde2ZsZXg6MCBhdXRvO2Rpc3BsYXk6ZmxleDthbGln\nbi1pdGVtczpzYWZlIGNlbnRlcn0jc21hbGwtdG9vbGJhciAuZ20tcmVwbHktb3RoZXItdG9vbGJh\nciAucmVwbHktY29tbWVudC1jb3VudFtkYXRhLXYtZDI3OWQwM2ZdLCNzbWFsbC10b29sYmFyIC5n\nbS1yZXBseS1vdGhlci10b29sYmFyIC5yZXBseS1nb29kLWNvdW50W2RhdGEtdi1kMjc5ZDAzZl17\ncGFkZGluZzo4cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVt\nczpjZW50ZXJ9I3NtYWxsLXRvb2xiYXIgLmdtLXJlcGx5LW90aGVyLXRvb2xiYXIgLnJlcGx5LWNv\nbW1lbnQtY291bnQgcC50ZXh0W2RhdGEtdi1kMjc5ZDAzZl0sI3NtYWxsLXRvb2xiYXIgLmdtLXJl\ncGx5LW90aGVyLXRvb2xiYXIgLnJlcGx5LWdvb2QtY291bnQgcC50ZXh0W2RhdGEtdi1kMjc5ZDAz\nZl17Zm9udC1zaXplOi4xcmVtfTpyb290ey0tZWwtY29sb3Itd2hpdGU6I2ZmZmZmZjstLWVsLWNv\nbG9yLWJsYWNrOiMwMDAwMDA7LS1lbC1jb2xvci1wcmltYXJ5LXJnYjo2NCwxNTgsMjU1Oy0tZWwt\nY29sb3Itc3VjY2Vzcy1yZ2I6MTAzLDE5NCw1ODstLWVsLWNvbG9yLXdhcm5pbmctcmdiOjIzMCwx\nNjIsNjA7LS1lbC1jb2xvci1kYW5nZXItcmdiOjI0NSwxMDgsMTA4Oy0tZWwtY29sb3ItZXJyb3It\ncmdiOjI0NSwxMDgsMTA4Oy0tZWwtY29sb3ItaW5mby1yZ2I6MTQ0LDE0NywxNTM7LS1lbC1mb250\nLXNpemUtZXh0cmEtbGFyZ2U6MjBweDstLWVsLWZvbnQtc2l6ZS1sYXJnZToxOHB4Oy0tZWwtZm9u\ndC1zaXplLW1lZGl1bToxNnB4Oy0tZWwtZm9udC1zaXplLWJhc2U6MTRweDstLWVsLWZvbnQtc2l6\nZS1zbWFsbDoxM3B4Oy0tZWwtZm9udC1zaXplLWV4dHJhLXNtYWxsOjEycHg7LS1lbC1mb250LWZh\nbWlseTpcIkhlbHZldGljYSBOZXVlXCIsSGVsdmV0aWNhLFwiUGluZ0ZhbmcgU0NcIixcIkhpcmFn\naW5vIFNhbnMgR0JcIixcIk1pY3Jvc29mdCBZYUhlaVwiLFwiXFx1NUZBRVxcdThGNkZcXHU5NkM1\nXFx1OUVEMVwiLEFyaWFsLHNhbnMtc2VyaWY7LS1lbC1mb250LXdlaWdodC1wcmltYXJ5OjUwMDst\nLWVsLWZvbnQtbGluZS1oZWlnaHQtcHJpbWFyeToyNHB4Oy0tZWwtaW5kZXgtbm9ybWFsOjE7LS1l\nbC1pbmRleC10b3A6MTAwMDstLWVsLWluZGV4LXBvcHBlcjoyMDAwOy0tZWwtYm9yZGVyLXJhZGl1\ncy1iYXNlOjRweDstLWVsLWJvcmRlci1yYWRpdXMtc21hbGw6MnB4Oy0tZWwtYm9yZGVyLXJhZGl1\ncy1yb3VuZDoyMHB4Oy0tZWwtYm9yZGVyLXJhZGl1cy1jaXJjbGU6MTAwJTstLWVsLXRyYW5zaXRp\nb24tZHVyYXRpb246LjNzOy0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbi1mYXN0Oi4yczstLWVsLXRy\nYW5zaXRpb24tZnVuY3Rpb24tZWFzZS1pbi1vdXQtYmV6aWVyOmN1YmljLWJlemllciguNjQ1LC4w\nNDUsLjM1NSwxKTstLWVsLXRyYW5zaXRpb24tZnVuY3Rpb24tZmFzdC1iZXppZXI6Y3ViaWMtYmV6\naWVyKC4yMywxLC4zMiwxKTstLWVsLXRyYW5zaXRpb24tYWxsOmFsbCB2YXIoLS1lbC10cmFuc2l0\naW9uLWR1cmF0aW9uKSB2YXIoLS1lbC10cmFuc2l0aW9uLWZ1bmN0aW9uLWVhc2UtaW4tb3V0LWJl\nemllcik7LS1lbC10cmFuc2l0aW9uLWZhZGU6b3BhY2l0eSB2YXIoLS1lbC10cmFuc2l0aW9uLWR1\ncmF0aW9uKSB2YXIoLS1lbC10cmFuc2l0aW9uLWZ1bmN0aW9uLWZhc3QtYmV6aWVyKTstLWVsLXRy\nYW5zaXRpb24tbWQtZmFkZTp0cmFuc2Zvcm0gdmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbikg\ndmFyKC0tZWwtdHJhbnNpdGlvbi1mdW5jdGlvbi1mYXN0LWJlemllciksb3BhY2l0eSB2YXIoLS1l\nbC10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS1lbC10cmFuc2l0aW9uLWZ1bmN0aW9uLWZhc3Qt\nYmV6aWVyKTstLWVsLXRyYW5zaXRpb24tZmFkZS1saW5lYXI6b3BhY2l0eSB2YXIoLS1lbC10cmFu\nc2l0aW9uLWR1cmF0aW9uLWZhc3QpIGxpbmVhcjstLWVsLXRyYW5zaXRpb24tYm9yZGVyOmJvcmRl\nci1jb2xvciB2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uLWZhc3QpIHZhcigtLWVsLXRyYW5z\naXRpb24tZnVuY3Rpb24tZWFzZS1pbi1vdXQtYmV6aWVyKTstLWVsLXRyYW5zaXRpb24tYm94LXNo\nYWRvdzpib3gtc2hhZG93IHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24tZmFzdCkgdmFyKC0t\nZWwtdHJhbnNpdGlvbi1mdW5jdGlvbi1lYXNlLWluLW91dC1iZXppZXIpOy0tZWwtdHJhbnNpdGlv\nbi1jb2xvcjpjb2xvciB2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uLWZhc3QpIHZhcigtLWVs\nLXRyYW5zaXRpb24tZnVuY3Rpb24tZWFzZS1pbi1vdXQtYmV6aWVyKTstLWVsLWNvbXBvbmVudC1z\naXplLWxhcmdlOjQwcHg7LS1lbC1jb21wb25lbnQtc2l6ZTozMnB4Oy0tZWwtY29tcG9uZW50LXNp\nemUtc21hbGw6MjRweH06cm9vdHtjb2xvci1zY2hlbWU6bGlnaHQ7LS1lbC1jb2xvci1wcmltYXJ5\nOiM0MDllZmY7LS1lbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTM6Izc5YmJmZjstLWVsLWNvbG9yLXBy\naW1hcnktbGlnaHQtNTojYTBjZmZmOy0tZWwtY29sb3ItcHJpbWFyeS1saWdodC03OiNjNmUyZmY7\nLS1lbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTg6I2Q5ZWNmZjstLWVsLWNvbG9yLXByaW1hcnktbGln\naHQtOTojZWNmNWZmOy0tZWwtY29sb3ItcHJpbWFyeS1kYXJrLTI6IzMzN2VjYzstLWVsLWNvbG9y\nLXN1Y2Nlc3M6IzY3YzIzYTstLWVsLWNvbG9yLXN1Y2Nlc3MtbGlnaHQtMzojOTVkNDc1Oy0tZWwt\nY29sb3Itc3VjY2Vzcy1saWdodC01OiNiM2UxOWQ7LS1lbC1jb2xvci1zdWNjZXNzLWxpZ2h0LTc6\nI2QxZWRjNDstLWVsLWNvbG9yLXN1Y2Nlc3MtbGlnaHQtODojZTFmM2Q4Oy0tZWwtY29sb3Itc3Vj\nY2Vzcy1saWdodC05OiNmMGY5ZWI7LS1lbC1jb2xvci1zdWNjZXNzLWRhcmstMjojNTI5YjJlOy0t\nZWwtY29sb3Itd2FybmluZzojZTZhMjNjOy0tZWwtY29sb3Itd2FybmluZy1saWdodC0zOiNlZWJl\nNzc7LS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0LTU6I2YzZDE5ZTstLWVsLWNvbG9yLXdhcm5pbmct\nbGlnaHQtNzojZjhlM2M1Oy0tZWwtY29sb3Itd2FybmluZy1saWdodC04OiNmYWVjZDg7LS1lbC1j\nb2xvci13YXJuaW5nLWxpZ2h0LTk6I2ZkZjZlYzstLWVsLWNvbG9yLXdhcm5pbmctZGFyay0yOiNi\nODgyMzA7LS1lbC1jb2xvci1kYW5nZXI6I2Y1NmM2YzstLWVsLWNvbG9yLWRhbmdlci1saWdodC0z\nOiNmODk4OTg7LS1lbC1jb2xvci1kYW5nZXItbGlnaHQtNTojZmFiNmI2Oy0tZWwtY29sb3ItZGFu\nZ2VyLWxpZ2h0LTc6I2ZjZDNkMzstLWVsLWNvbG9yLWRhbmdlci1saWdodC04OiNmZGUyZTI7LS1l\nbC1jb2xvci1kYW5nZXItbGlnaHQtOTojZmVmMGYwOy0tZWwtY29sb3ItZGFuZ2VyLWRhcmstMjoj\nYzQ1NjU2Oy0tZWwtY29sb3ItZXJyb3I6I2Y1NmM2YzstLWVsLWNvbG9yLWVycm9yLWxpZ2h0LTM6\nI2Y4OTg5ODstLWVsLWNvbG9yLWVycm9yLWxpZ2h0LTU6I2ZhYjZiNjstLWVsLWNvbG9yLWVycm9y\nLWxpZ2h0LTc6I2ZjZDNkMzstLWVsLWNvbG9yLWVycm9yLWxpZ2h0LTg6I2ZkZTJlMjstLWVsLWNv\nbG9yLWVycm9yLWxpZ2h0LTk6I2ZlZjBmMDstLWVsLWNvbG9yLWVycm9yLWRhcmstMjojYzQ1NjU2\nOy0tZWwtY29sb3ItaW5mbzojOTA5Mzk5Oy0tZWwtY29sb3ItaW5mby1saWdodC0zOiNiMWIzYjg7\nLS1lbC1jb2xvci1pbmZvLWxpZ2h0LTU6I2M4YzljYzstLWVsLWNvbG9yLWluZm8tbGlnaHQtNzoj\nZGVkZmUwOy0tZWwtY29sb3ItaW5mby1saWdodC04OiNlOWU5ZWI7LS1lbC1jb2xvci1pbmZvLWxp\nZ2h0LTk6I2Y0ZjRmNTstLWVsLWNvbG9yLWluZm8tZGFyay0yOiM3Mzc2N2E7LS1lbC1iZy1jb2xv\ncjojZmZmZmZmOy0tZWwtYmctY29sb3ItcGFnZTojZjJmM2Y1Oy0tZWwtYmctY29sb3Itb3Zlcmxh\neTojZmZmZmZmOy0tZWwtdGV4dC1jb2xvci1wcmltYXJ5OiMzMDMxMzM7LS1lbC10ZXh0LWNvbG9y\nLXJlZ3VsYXI6IzYwNjI2NjstLWVsLXRleHQtY29sb3Itc2Vjb25kYXJ5OiM5MDkzOTk7LS1lbC10\nZXh0LWNvbG9yLXBsYWNlaG9sZGVyOiNhOGFiYjI7LS1lbC10ZXh0LWNvbG9yLWRpc2FibGVkOiNj\nMGM0Y2M7LS1lbC1ib3JkZXItY29sb3I6I2RjZGZlNjstLWVsLWJvcmRlci1jb2xvci1saWdodDoj\nZTRlN2VkOy0tZWwtYm9yZGVyLWNvbG9yLWxpZ2h0ZXI6I2ViZWVmNTstLWVsLWJvcmRlci1jb2xv\nci1leHRyYS1saWdodDojZjJmNmZjOy0tZWwtYm9yZGVyLWNvbG9yLWRhcms6I2Q0ZDdkZTstLWVs\nLWJvcmRlci1jb2xvci1kYXJrZXI6I2NkZDBkNjstLWVsLWZpbGwtY29sb3I6I2YwZjJmNTstLWVs\nLWZpbGwtY29sb3ItbGlnaHQ6I2Y1ZjdmYTstLWVsLWZpbGwtY29sb3ItbGlnaHRlcjojZmFmYWZh\nOy0tZWwtZmlsbC1jb2xvci1leHRyYS1saWdodDojZmFmY2ZmOy0tZWwtZmlsbC1jb2xvci1kYXJr\nOiNlYmVkZjA7LS1lbC1maWxsLWNvbG9yLWRhcmtlcjojZTZlOGViOy0tZWwtZmlsbC1jb2xvci1i\nbGFuazojZmZmZmZmOy0tZWwtYm94LXNoYWRvdzowcHggMTJweCAzMnB4IDRweCByZ2JhKDAsMCww\nLC4wNCksMHB4IDhweCAyMHB4IHJnYmEoMCwwLDAsLjA4KTstLWVsLWJveC1zaGFkb3ctbGlnaHQ6\nMHB4IDBweCAxMnB4IHJnYmEoMCwwLDAsLjEyKTstLWVsLWJveC1zaGFkb3ctbGlnaHRlcjowcHgg\nMHB4IDZweCByZ2JhKDAsMCwwLC4xMik7LS1lbC1ib3gtc2hhZG93LWRhcms6MHB4IDE2cHggNDhw\neCAxNnB4IHJnYmEoMCwwLDAsLjA4KSwwcHggMTJweCAzMnB4IHJnYmEoMCwwLDAsLjEyKSwwcHgg\nOHB4IDE2cHggLThweCByZ2JhKDAsMCwwLC4xNik7LS1lbC1kaXNhYmxlZC1iZy1jb2xvcjp2YXIo\nLS1lbC1maWxsLWNvbG9yLWxpZ2h0KTstLWVsLWRpc2FibGVkLXRleHQtY29sb3I6dmFyKC0tZWwt\ndGV4dC1jb2xvci1wbGFjZWhvbGRlcik7LS1lbC1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0t\nZWwtYm9yZGVyLWNvbG9yLWxpZ2h0KTstLWVsLW92ZXJsYXktY29sb3I6cmdiYSgwLDAsMCwuOCk7\nLS1lbC1vdmVybGF5LWNvbG9yLWxpZ2h0OnJnYmEoMCwwLDAsLjcpOy0tZWwtb3ZlcmxheS1jb2xv\nci1saWdodGVyOnJnYmEoMCwwLDAsLjUpOy0tZWwtbWFzay1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1\nLC45KTstLWVsLW1hc2stY29sb3ItZXh0cmEtbGlnaHQ6cmdiYSgyNTUsMjU1LDI1NSwuMyk7LS1l\nbC1ib3JkZXItd2lkdGg6MXB4Oy0tZWwtYm9yZGVyLXN0eWxlOnNvbGlkOy0tZWwtYm9yZGVyLWNv\nbG9yLWhvdmVyOnZhcigtLWVsLXRleHQtY29sb3ItZGlzYWJsZWQpOy0tZWwtYm9yZGVyOnZhcigt\nLWVsLWJvcmRlci13aWR0aCkgdmFyKC0tZWwtYm9yZGVyLXN0eWxlKSB2YXIoLS1lbC1ib3JkZXIt\nY29sb3IpOy0tZWwtc3ZnLW1vbm9jaHJvbWUtZ3JleTp2YXIoLS1lbC1ib3JkZXItY29sb3IpfS5m\nYWRlLWluLWxpbmVhci1lbnRlci1hY3RpdmUsLmZhZGUtaW4tbGluZWFyLWxlYXZlLWFjdGl2ZXt0\ncmFuc2l0aW9uOnZhcigtLWVsLXRyYW5zaXRpb24tZmFkZS1saW5lYXIpfS5mYWRlLWluLWxpbmVh\nci1lbnRlci1mcm9tLC5mYWRlLWluLWxpbmVhci1sZWF2ZS10b3tvcGFjaXR5OjB9LmVsLWZhZGUt\naW4tbGluZWFyLWVudGVyLWFjdGl2ZSwuZWwtZmFkZS1pbi1saW5lYXItbGVhdmUtYWN0aXZle3Ry\nYW5zaXRpb246dmFyKC0tZWwtdHJhbnNpdGlvbi1mYWRlLWxpbmVhcil9LmVsLWZhZGUtaW4tbGlu\nZWFyLWVudGVyLWZyb20sLmVsLWZhZGUtaW4tbGluZWFyLWxlYXZlLXRve29wYWNpdHk6MH0uZWwt\nZmFkZS1pbi1lbnRlci1hY3RpdmUsLmVsLWZhZGUtaW4tbGVhdmUtYWN0aXZle3RyYW5zaXRpb246\nYWxsIHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIGN1YmljLWJlemllciguNTUsMCwuMSwx\nKX0uZWwtZmFkZS1pbi1lbnRlci1mcm9tLC5lbC1mYWRlLWluLWxlYXZlLWFjdGl2ZXtvcGFjaXR5\nOjB9LmVsLXpvb20taW4tY2VudGVyLWVudGVyLWFjdGl2ZSwuZWwtem9vbS1pbi1jZW50ZXItbGVh\ndmUtYWN0aXZle3RyYW5zaXRpb246YWxsIHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIGN1\nYmljLWJlemllciguNTUsMCwuMSwxKX0uZWwtem9vbS1pbi1jZW50ZXItZW50ZXItZnJvbSwuZWwt\nem9vbS1pbi1jZW50ZXItbGVhdmUtYWN0aXZle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDAp\nfS5lbC16b29tLWluLXRvcC1lbnRlci1hY3RpdmUsLmVsLXpvb20taW4tdG9wLWxlYXZlLWFjdGl2\nZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciB0\nb3A7dHJhbnNpdGlvbjp2YXIoLS1lbC10cmFuc2l0aW9uLW1kLWZhZGUpfS5lbC16b29tLWluLXRv\ncC1lbnRlci1hY3RpdmVbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3BdLC5lbC16b29tLWluLXRv\ncC1sZWF2ZS1hY3RpdmVbZGF0YS1wb3BwZXItcGxhY2VtZW50Xj10b3Bde3RyYW5zZm9ybS1vcmln\naW46Y2VudGVyIGJvdHRvbX0uZWwtem9vbS1pbi10b3AtZW50ZXItZnJvbSwuZWwtem9vbS1pbi10\nb3AtbGVhdmUtYWN0aXZle29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVZKDApfS5lbC16b29tLWlu\nLWJvdHRvbS1lbnRlci1hY3RpdmUsLmVsLXpvb20taW4tYm90dG9tLWxlYXZlLWFjdGl2ZXtvcGFj\naXR5OjE7dHJhbnNmb3JtOnNjYWxlWSgxKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlciBib3R0b207\ndHJhbnNpdGlvbjp2YXIoLS1lbC10cmFuc2l0aW9uLW1kLWZhZGUpfS5lbC16b29tLWluLWJvdHRv\nbS1lbnRlci1mcm9tLC5lbC16b29tLWluLWJvdHRvbS1sZWF2ZS1hY3RpdmV7b3BhY2l0eTowO3Ry\nYW5zZm9ybTpzY2FsZVkoMCl9LmVsLXpvb20taW4tbGVmdC1lbnRlci1hY3RpdmUsLmVsLXpvb20t\naW4tbGVmdC1sZWF2ZS1hY3RpdmV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKTt0cmFuc2Zv\ncm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zaXRpb246dmFyKC0tZWwtdHJhbnNpdGlvbi1tZC1mYWRl\nKX0uZWwtem9vbS1pbi1sZWZ0LWVudGVyLWZyb20sLmVsLXpvb20taW4tbGVmdC1sZWF2ZS1hY3Rp\ndmV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguNDUpfS5jb2xsYXBzZS10cmFuc2l0aW9ue3Ry\nYW5zaXRpb246dmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbikgaGVpZ2h0IGVhc2UtaW4tb3V0\nLHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIHBhZGRpbmctdG9wIGVhc2UtaW4tb3V0LHZh\ncigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIHBhZGRpbmctYm90dG9tIGVhc2UtaW4tb3V0fS5l\nbC1jb2xsYXBzZS10cmFuc2l0aW9uLWVudGVyLWFjdGl2ZSwuZWwtY29sbGFwc2UtdHJhbnNpdGlv\nbi1sZWF2ZS1hY3RpdmV7dHJhbnNpdGlvbjp2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uKSBt\nYXgtaGVpZ2h0IGVhc2UtaW4tb3V0LHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIHBhZGRp\nbmctdG9wIGVhc2UtaW4tb3V0LHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIHBhZGRpbmct\nYm90dG9tIGVhc2UtaW4tb3V0fS5ob3Jpem9udGFsLWNvbGxhcHNlLXRyYW5zaXRpb257dHJhbnNp\ndGlvbjp2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uKSB3aWR0aCBlYXNlLWluLW91dCx2YXIo\nLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uKSBwYWRkaW5nLWxlZnQgZWFzZS1pbi1vdXQsdmFyKC0t\nZWwtdHJhbnNpdGlvbi1kdXJhdGlvbikgcGFkZGluZy1yaWdodCBlYXNlLWluLW91dH0uZWwtbGlz\ndC1lbnRlci1hY3RpdmUsLmVsLWxpc3QtbGVhdmUtYWN0aXZle3RyYW5zaXRpb246YWxsIDFzfS5l\nbC1saXN0LWVudGVyLWZyb20sLmVsLWxpc3QtbGVhdmUtdG97b3BhY2l0eTowO3RyYW5zZm9ybTp0\ncmFuc2xhdGVZKC0zMHB4KX0uZWwtbGlzdC1sZWF2ZS1hY3RpdmV7cG9zaXRpb246YWJzb2x1dGUh\naW1wb3J0YW50fS5lbC1vcGFjaXR5LXRyYW5zaXRpb257dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigt\nLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIGN1YmljLWJlemllciguNTUsMCwuMSwxKX0uZWwtaWNv\nbi1sb2FkaW5ney13ZWJraXQtYW5pbWF0aW9uOnJvdGF0aW5nIDJzIGxpbmVhciBpbmZpbml0ZTth\nbmltYXRpb246cm90YXRpbmcgMnMgbGluZWFyIGluZmluaXRlfS5lbC1pY29uLS1yaWdodHttYXJn\naW4tbGVmdDo1cHh9LmVsLWljb24tLWxlZnR7bWFyZ2luLXJpZ2h0OjVweH1ALXdlYmtpdC1rZXlm\ncmFtZXMgcm90YXRpbmd7MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRl\nKDF0dXJuKX19QGtleWZyYW1lcyByb3RhdGluZ3swJXt0cmFuc2Zvcm06cm90YXRlKDApfXRve3Ry\nYW5zZm9ybTpyb3RhdGUoMXR1cm4pfX0uZWwtaWNvbnstLWNvbG9yOmluaGVyaXQ7YWxpZ24taXRl\nbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7aGVpZ2h0OjFlbTtqdXN0aWZ5LWNvbnRlbnQ6\nY2VudGVyO2xpbmUtaGVpZ2h0OjFlbTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxZW07ZmlsbDpj\ndXJyZW50Q29sb3I7Y29sb3I6dmFyKC0tY29sb3IpO2ZvbnQtc2l6ZTppbmhlcml0fS5lbC1pY29u\nLmlzLWxvYWRpbmd7LXdlYmtpdC1hbmltYXRpb246cm90YXRpbmcgMnMgbGluZWFyIGluZmluaXRl\nO2FuaW1hdGlvbjpyb3RhdGluZyAycyBsaW5lYXIgaW5maW5pdGV9LmVsLWljb24gc3Zne2hlaWdo\ndDoxZW07d2lkdGg6MWVtfS5lbC1hdmF0YXJ7LS1lbC1hdmF0YXItdGV4dC1jb2xvcjp2YXIoLS1l\nbC1jb2xvci13aGl0ZSk7LS1lbC1hdmF0YXItYmctY29sb3I6dmFyKC0tZWwtdGV4dC1jb2xvci1k\naXNhYmxlZCk7LS1lbC1hdmF0YXItdGV4dC1zaXplOjE0cHg7LS1lbC1hdmF0YXItaWNvbi1zaXpl\nOjE4cHg7LS1lbC1hdmF0YXItYm9yZGVyLXJhZGl1czp2YXIoLS1lbC1ib3JkZXItcmFkaXVzLWJh\nc2UpOy0tZWwtYXZhdGFyLXNpemUtbGFyZ2U6NTZweDstLWVsLWF2YXRhci1zaXplLXNtYWxsOjI0\ncHg7LS1lbC1hdmF0YXItc2l6ZTo0MHB4O2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnZh\ncigtLWVsLWF2YXRhci1iZy1jb2xvcik7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOnZhcigt\nLWVsLWF2YXRhci10ZXh0LWNvbG9yKTtkaXNwbGF5OmlubGluZS1mbGV4O2ZvbnQtc2l6ZTp2YXIo\nLS1lbC1hdmF0YXItdGV4dC1zaXplKTtoZWlnaHQ6dmFyKC0tZWwtYXZhdGFyLXNpemUpO2p1c3Rp\nZnktY29udGVudDpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246Y2VudGVyO3dpZHRo\nOnZhcigtLWVsLWF2YXRhci1zaXplKX0uZWwtYXZhdGFyPmltZ3tkaXNwbGF5OmJsb2NrO2hlaWdo\ndDoxMDAlO3dpZHRoOjEwMCV9LmVsLWF2YXRhci0tY2lyY2xle2JvcmRlci1yYWRpdXM6NTAlfS5l\nbC1hdmF0YXItLXNxdWFyZXtib3JkZXItcmFkaXVzOnZhcigtLWVsLWF2YXRhci1ib3JkZXItcmFk\naXVzKX0uZWwtYXZhdGFyLS1pY29ue2ZvbnQtc2l6ZTp2YXIoLS1lbC1hdmF0YXItaWNvbi1zaXpl\nKX0uZWwtYXZhdGFyLS1zbWFsbHstLWVsLWF2YXRhci1zaXplOjI0cHh9LmVsLWF2YXRhci0tbGFy\nZ2V7LS1lbC1hdmF0YXItc2l6ZTo1NnB4fS5lbC1yb3d7Ym94LXNpemluZzpib3JkZXItYm94O2Rp\nc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtcm93LmlzLWp1\nc3RpZnktY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmVsLXJvdy5pcy1qdXN0aWZ5LWVu\nZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmVsLXJvdy5pcy1qdXN0aWZ5LXNwYWNlLWJldHdl\nZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmVsLXJvdy5pcy1qdXN0aWZ5LXNwYWNl\nLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5lbC1yb3cuaXMtanVzdGlmeS1z\ncGFjZS1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seX0uZWwtcm93LmlzLWFsaWdu\nLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5lbC1yb3cuaXMtYWxpZ24tbWlkZGxle2FsaWdu\nLWl0ZW1zOmNlbnRlcn0uZWwtcm93LmlzLWFsaWduLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVu\nZH1bY2xhc3MqPWVsLWNvbC1de2JveC1zaXppbmc6Ym9yZGVyLWJveH1bY2xhc3MqPWVsLWNvbC1d\nLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDoxcHh9LmVsLWNvbC0we2ZsZXg6\nMCAwIDAlO21heC13aWR0aDowfS5lbC1jb2wtMCwuZWwtY29sLTAuaXMtZ3V0dGVyZWR7ZGlzcGxh\neTpub25lfS5lbC1jb2wtb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH0uZWwtY29sLXB1bGwtMHtwb3Np\ndGlvbjpyZWxhdGl2ZTtyaWdodDowfS5lbC1jb2wtcHVzaC0we2xlZnQ6MDtwb3NpdGlvbjpyZWxh\ndGl2ZX0uZWwtY29sLTF7ZmxleDowIDAgNC4xNjY2NjY2NjY3JTttYXgtd2lkdGg6NC4xNjY2NjY2\nNjY3JX0uZWwtY29sLTEsLmVsLWNvbC0xLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNv\nbC1vZmZzZXQtMXttYXJnaW4tbGVmdDo0LjE2NjY2NjY2NjclfS5lbC1jb2wtcHVsbC0xe3Bvc2l0\naW9uOnJlbGF0aXZlO3JpZ2h0OjQuMTY2NjY2NjY2NyV9LmVsLWNvbC1wdXNoLTF7bGVmdDo0LjE2\nNjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtMntmbGV4OjAgMCA4LjMzMzMzMzMz\nMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5lbC1jb2wtMiwuZWwtY29sLTIuaXMtZ3V0dGVy\nZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW9mZnNldC0ye21hcmdpbi1sZWZ0OjguMzMzMzMzMzMz\nMyV9LmVsLWNvbC1wdWxsLTJ7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6OC4zMzMzMzMzMzMzJX0u\nZWwtY29sLXB1c2gtMntsZWZ0OjguMzMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNv\nbC0ze2ZsZXg6MCAwIDEyLjUlO21heC13aWR0aDoxMi41JX0uZWwtY29sLTMsLmVsLWNvbC0zLmlz\nLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1vZmZzZXQtM3ttYXJnaW4tbGVmdDoxMi41\nJX0uZWwtY29sLXB1bGwtM3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoxMi41JX0uZWwtY29sLXB1\nc2gtM3tsZWZ0OjEyLjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtNHtmbGV4OjAgMCAxNi42\nNjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmVsLWNvbC00LC5lbC1jb2wtNC5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MTYu\nNjY2NjY2NjY2NyV9LmVsLWNvbC1wdWxsLTR7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MTYuNjY2\nNjY2NjY2NyV9LmVsLWNvbC1wdXNoLTR7bGVmdDoxNi42NjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxh\ndGl2ZX0uZWwtY29sLTV7ZmxleDowIDAgMjAuODMzMzMzMzMzMyU7bWF4LXdpZHRoOjIwLjgzMzMz\nMzMzMzMlfS5lbC1jb2wtNSwuZWwtY29sLTUuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwt\nY29sLW9mZnNldC01e21hcmdpbi1sZWZ0OjIwLjgzMzMzMzMzMzMlfS5lbC1jb2wtcHVsbC01e3Bv\nc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjIwLjgzMzMzMzMzMzMlfS5lbC1jb2wtcHVzaC01e2xlZnQ6\nMjAuODMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC02e2ZsZXg6MCAwIDI1JTtt\nYXgtd2lkdGg6MjUlfS5lbC1jb2wtNiwuZWwtY29sLTYuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9j\na30uZWwtY29sLW9mZnNldC02e21hcmdpbi1sZWZ0OjI1JX0uZWwtY29sLXB1bGwtNntwb3NpdGlv\nbjpyZWxhdGl2ZTtyaWdodDoyNSV9LmVsLWNvbC1wdXNoLTZ7bGVmdDoyNSU7cG9zaXRpb246cmVs\nYXRpdmV9LmVsLWNvbC03e2ZsZXg6MCAwIDI5LjE2NjY2NjY2NjclO21heC13aWR0aDoyOS4xNjY2\nNjY2NjY3JX0uZWwtY29sLTcsLmVsLWNvbC03LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVs\nLWNvbC1vZmZzZXQtN3ttYXJnaW4tbGVmdDoyOS4xNjY2NjY2NjY3JX0uZWwtY29sLXB1bGwtN3tw\nb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoyOS4xNjY2NjY2NjY3JX0uZWwtY29sLXB1c2gtN3tsZWZ0\nOjI5LjE2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtOHtmbGV4OjAgMCAzMy4z\nMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmVsLWNvbC04LC5lbC1jb2wtOC5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6MzMu\nMzMzMzMzMzMzMyV9LmVsLWNvbC1wdWxsLTh7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MzMuMzMz\nMzMzMzMzMyV9LmVsLWNvbC1wdXNoLTh7bGVmdDozMy4zMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxh\ndGl2ZX0uZWwtY29sLTl7ZmxleDowIDAgMzcuNSU7bWF4LXdpZHRoOjM3LjUlfS5lbC1jb2wtOSwu\nZWwtY29sLTkuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW9mZnNldC05e21hcmdp\nbi1sZWZ0OjM3LjUlfS5lbC1jb2wtcHVsbC05e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjM3LjUl\nfS5lbC1jb2wtcHVzaC05e2xlZnQ6MzcuNSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC0xMHtm\nbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmVsLWNvbC0x\nMCwuZWwtY29sLTEwLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1vZmZzZXQtMTB7\nbWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmVsLWNvbC1wdWxsLTEwe3Bvc2l0aW9uOnJlbGF0\naXZlO3JpZ2h0OjQxLjY2NjY2NjY2NjclfS5lbC1jb2wtcHVzaC0xMHtsZWZ0OjQxLjY2NjY2NjY2\nNjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtMTF7ZmxleDowIDAgNDUuODMzMzMzMzMzMyU7\nbWF4LXdpZHRoOjQ1LjgzMzMzMzMzMzMlfS5lbC1jb2wtMTEsLmVsLWNvbC0xMS5pcy1ndXR0ZXJl\nZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTExe21hcmdpbi1sZWZ0OjQ1LjgzMzMzMzMz\nMzMlfS5lbC1jb2wtcHVsbC0xMXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo0NS44MzMzMzMzMzMz\nJX0uZWwtY29sLXB1c2gtMTF7bGVmdDo0NS44MzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0u\nZWwtY29sLTEye2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5lbC1jb2wtMTIsLmVsLWNvbC0x\nMi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTEye21hcmdpbi1sZWZ0\nOjUwJX0uZWwtY29sLXB1bGwtMTJ7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NTAlfS5lbC1jb2wt\ncHVzaC0xMntsZWZ0OjUwJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLTEze2ZsZXg6MCAwIDU0\nLjE2NjY2NjY2NjclO21heC13aWR0aDo1NC4xNjY2NjY2NjY3JX0uZWwtY29sLTEzLC5lbC1jb2wt\nMTMuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW9mZnNldC0xM3ttYXJnaW4tbGVm\ndDo1NC4xNjY2NjY2NjY3JX0uZWwtY29sLXB1bGwtMTN7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6\nNTQuMTY2NjY2NjY2NyV9LmVsLWNvbC1wdXNoLTEze2xlZnQ6NTQuMTY2NjY2NjY2NyU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC0xNHtmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6\nNTguMzMzMzMzMzMzMyV9LmVsLWNvbC0xNCwuZWwtY29sLTE0LmlzLWd1dHRlcmVke2Rpc3BsYXk6\nYmxvY2t9LmVsLWNvbC1vZmZzZXQtMTR7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmVsLWNv\nbC1wdWxsLTE0e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjU4LjMzMzMzMzMzMzMlfS5lbC1jb2wt\ncHVzaC0xNHtsZWZ0OjU4LjMzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtMTV7\nZmxleDowIDAgNjIuNSU7bWF4LXdpZHRoOjYyLjUlfS5lbC1jb2wtMTUsLmVsLWNvbC0xNS5pcy1n\ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTE1e21hcmdpbi1sZWZ0OjYyLjUl\nfS5lbC1jb2wtcHVsbC0xNXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo2Mi41JX0uZWwtY29sLXB1\nc2gtMTV7bGVmdDo2Mi41JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLTE2e2ZsZXg6MCAwIDY2\nLjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uZWwtY29sLTE2LC5lbC1jb2wt\nMTYuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW9mZnNldC0xNnttYXJnaW4tbGVm\ndDo2Ni42NjY2NjY2NjY3JX0uZWwtY29sLXB1bGwtMTZ7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6\nNjYuNjY2NjY2NjY2NyV9LmVsLWNvbC1wdXNoLTE2e2xlZnQ6NjYuNjY2NjY2NjY2NyU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC0xN3tmbGV4OjAgMCA3MC44MzMzMzMzMzMzJTttYXgtd2lkdGg6\nNzAuODMzMzMzMzMzMyV9LmVsLWNvbC0xNywuZWwtY29sLTE3LmlzLWd1dHRlcmVke2Rpc3BsYXk6\nYmxvY2t9LmVsLWNvbC1vZmZzZXQtMTd7bWFyZ2luLWxlZnQ6NzAuODMzMzMzMzMzMyV9LmVsLWNv\nbC1wdWxsLTE3e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjcwLjgzMzMzMzMzMzMlfS5lbC1jb2wt\ncHVzaC0xN3tsZWZ0OjcwLjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtMTh7\nZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmVsLWNvbC0xOCwuZWwtY29sLTE4LmlzLWd1dHRl\ncmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1vZmZzZXQtMTh7bWFyZ2luLWxlZnQ6NzUlfS5lbC1j\nb2wtcHVsbC0xOHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo3NSV9LmVsLWNvbC1wdXNoLTE4e2xl\nZnQ6NzUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtMTl7ZmxleDowIDAgNzkuMTY2NjY2NjY2\nNyU7bWF4LXdpZHRoOjc5LjE2NjY2NjY2NjclfS5lbC1jb2wtMTksLmVsLWNvbC0xOS5pcy1ndXR0\nZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTE5e21hcmdpbi1sZWZ0Ojc5LjE2NjY2\nNjY2NjclfS5lbC1jb2wtcHVsbC0xOXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo3OS4xNjY2NjY2\nNjY3JX0uZWwtY29sLXB1c2gtMTl7bGVmdDo3OS4xNjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2\nZX0uZWwtY29sLTIwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMz\nMzMzJX0uZWwtY29sLTIwLC5lbC1jb2wtMjAuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwt\nY29sLW9mZnNldC0yMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uZWwtY29sLXB1bGwtMjB7\ncG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6ODMuMzMzMzMzMzMzMyV9LmVsLWNvbC1wdXNoLTIwe2xl\nZnQ6ODMuMzMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC0yMXtmbGV4OjAgMCA4\nNy41JTttYXgtd2lkdGg6ODcuNSV9LmVsLWNvbC0yMSwuZWwtY29sLTIxLmlzLWd1dHRlcmVke2Rp\nc3BsYXk6YmxvY2t9LmVsLWNvbC1vZmZzZXQtMjF7bWFyZ2luLWxlZnQ6ODcuNSV9LmVsLWNvbC1w\ndWxsLTIxe3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojg3LjUlfS5lbC1jb2wtcHVzaC0yMXtsZWZ0\nOjg3LjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtMjJ7ZmxleDowIDAgOTEuNjY2NjY2NjY2\nNyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5lbC1jb2wtMjIsLmVsLWNvbC0yMi5pcy1ndXR0\nZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTIye21hcmdpbi1sZWZ0OjkxLjY2NjY2\nNjY2NjclfS5lbC1jb2wtcHVsbC0yMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo5MS42NjY2NjY2\nNjY3JX0uZWwtY29sLXB1c2gtMjJ7bGVmdDo5MS42NjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2\nZX0uZWwtY29sLTIze2ZsZXg6MCAwIDk1LjgzMzMzMzMzMzMlO21heC13aWR0aDo5NS44MzMzMzMz\nMzMzJX0uZWwtY29sLTIzLC5lbC1jb2wtMjMuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwt\nY29sLW9mZnNldC0yM3ttYXJnaW4tbGVmdDo5NS44MzMzMzMzMzMzJX0uZWwtY29sLXB1bGwtMjN7\ncG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6OTUuODMzMzMzMzMzMyV9LmVsLWNvbC1wdXNoLTIze2xl\nZnQ6OTUuODMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC0yNHtmbGV4OjAgMCAx\nMDAlO21heC13aWR0aDoxMDAlfS5lbC1jb2wtMjQsLmVsLWNvbC0yNC5pcy1ndXR0ZXJlZHtkaXNw\nbGF5OmJsb2NrfS5lbC1jb2wtb2Zmc2V0LTI0e21hcmdpbi1sZWZ0OjEwMCV9LmVsLWNvbC1wdWxs\nLTI0e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjEwMCV9LmVsLWNvbC1wdXNoLTI0e2xlZnQ6MTAw\nJTtwb3NpdGlvbjpyZWxhdGl2ZX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY3\ncHgpey5lbC1jb2wteHMtMHtkaXNwbGF5Om5vbmU7ZmxleDowIDAgMCU7bWF4LXdpZHRoOjB9LmVs\nLWNvbC14cy0wLmlzLWd1dHRlcmVke2Rpc3BsYXk6bm9uZX0uZWwtY29sLXhzLW9mZnNldC0we21h\ncmdpbi1sZWZ0OjB9LmVsLWNvbC14cy1wdWxsLTB7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MH0u\nZWwtY29sLXhzLXB1c2gtMHtsZWZ0OjA7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14cy0xe2Zs\nZXg6MCAwIDQuMTY2NjY2NjY2NyU7bWF4LXdpZHRoOjQuMTY2NjY2NjY2NyV9LmVsLWNvbC14cy0x\nLC5lbC1jb2wteHMtMS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteHMtb2Zmc2V0\nLTF7bWFyZ2luLWxlZnQ6NC4xNjY2NjY2NjY3JX0uZWwtY29sLXhzLXB1bGwtMXtwb3NpdGlvbjpy\nZWxhdGl2ZTtyaWdodDo0LjE2NjY2NjY2NjclfS5lbC1jb2wteHMtcHVzaC0xe2xlZnQ6NC4xNjY2\nNjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhzLTJ7ZmxleDowIDAgOC4zMzMzMzMz\nMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uZWwtY29sLXhzLTIsLmVsLWNvbC14cy0yLmlz\nLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14cy1vZmZzZXQtMnttYXJnaW4tbGVmdDo4\nLjMzMzMzMzMzMzMlfS5lbC1jb2wteHMtcHVsbC0ye3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojgu\nMzMzMzMzMzMzMyV9LmVsLWNvbC14cy1wdXNoLTJ7bGVmdDo4LjMzMzMzMzMzMzMlO3Bvc2l0aW9u\nOnJlbGF0aXZlfS5lbC1jb2wteHMtM3tmbGV4OjAgMCAxMi41JTttYXgtd2lkdGg6MTIuNSV9LmVs\nLWNvbC14cy0zLC5lbC1jb2wteHMtMy5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wt\neHMtb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MTIuNSV9LmVsLWNvbC14cy1wdWxsLTN7cG9zaXRpb246\ncmVsYXRpdmU7cmlnaHQ6MTIuNSV9LmVsLWNvbC14cy1wdXNoLTN7bGVmdDoxMi41JTtwb3NpdGlv\nbjpyZWxhdGl2ZX0uZWwtY29sLXhzLTR7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRo\nOjE2LjY2NjY2NjY2NjclfS5lbC1jb2wteHMtNCwuZWwtY29sLXhzLTQuaXMtZ3V0dGVyZWR7ZGlz\ncGxheTpibG9ja30uZWwtY29sLXhzLW9mZnNldC00e21hcmdpbi1sZWZ0OjE2LjY2NjY2NjY2Njcl\nfS5lbC1jb2wteHMtcHVsbC00e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjE2LjY2NjY2NjY2Njcl\nfS5lbC1jb2wteHMtcHVzaC00e2xlZnQ6MTYuNjY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9\nLmVsLWNvbC14cy01e2ZsZXg6MCAwIDIwLjgzMzMzMzMzMzMlO21heC13aWR0aDoyMC44MzMzMzMz\nMzMzJX0uZWwtY29sLXhzLTUsLmVsLWNvbC14cy01LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9\nLmVsLWNvbC14cy1vZmZzZXQtNXttYXJnaW4tbGVmdDoyMC44MzMzMzMzMzMzJX0uZWwtY29sLXhz\nLXB1bGwtNXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoyMC44MzMzMzMzMzMzJX0uZWwtY29sLXhz\nLXB1c2gtNXtsZWZ0OjIwLjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteHMt\nNntmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uZWwtY29sLXhzLTYsLmVsLWNvbC14cy02Lmlz\nLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14cy1vZmZzZXQtNnttYXJnaW4tbGVmdDoy\nNSV9LmVsLWNvbC14cy1wdWxsLTZ7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MjUlfS5lbC1jb2wt\neHMtcHVzaC02e2xlZnQ6MjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteHMtN3tmbGV4OjAg\nMCAyOS4xNjY2NjY2NjY3JTttYXgtd2lkdGg6MjkuMTY2NjY2NjY2NyV9LmVsLWNvbC14cy03LC5l\nbC1jb2wteHMtNy5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteHMtb2Zmc2V0LTd7\nbWFyZ2luLWxlZnQ6MjkuMTY2NjY2NjY2NyV9LmVsLWNvbC14cy1wdWxsLTd7cG9zaXRpb246cmVs\nYXRpdmU7cmlnaHQ6MjkuMTY2NjY2NjY2NyV9LmVsLWNvbC14cy1wdXNoLTd7bGVmdDoyOS4xNjY2\nNjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhzLTh7ZmxleDowIDAgMzMuMzMzMzMz\nMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5lbC1jb2wteHMtOCwuZWwtY29sLXhzLTgu\naXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhzLW9mZnNldC04e21hcmdpbi1sZWZ0\nOjMzLjMzMzMzMzMzMzMlfS5lbC1jb2wteHMtcHVsbC04e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0\nOjMzLjMzMzMzMzMzMzMlfS5lbC1jb2wteHMtcHVzaC04e2xlZnQ6MzMuMzMzMzMzMzMzMyU7cG9z\naXRpb246cmVsYXRpdmV9LmVsLWNvbC14cy05e2ZsZXg6MCAwIDM3LjUlO21heC13aWR0aDozNy41\nJX0uZWwtY29sLXhzLTksLmVsLWNvbC14cy05LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVs\nLWNvbC14cy1vZmZzZXQtOXttYXJnaW4tbGVmdDozNy41JX0uZWwtY29sLXhzLXB1bGwtOXtwb3Np\ndGlvbjpyZWxhdGl2ZTtyaWdodDozNy41JX0uZWwtY29sLXhzLXB1c2gtOXtsZWZ0OjM3LjUlO3Bv\nc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteHMtMTB7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA0MS42\nNjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmVsLWNvbC14cy0xMC5pcy1ndXR0\nZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteHMtb2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjQxLjY2\nNjY2NjY2NjclfS5lbC1jb2wteHMtcHVsbC0xMHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo0MS42\nNjY2NjY2NjY3JX0uZWwtY29sLXhzLXB1c2gtMTB7bGVmdDo0MS42NjY2NjY2NjY3JTtwb3NpdGlv\nbjpyZWxhdGl2ZX0uZWwtY29sLXhzLTExe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNDUuODMzMzMz\nMzMzMyU7bWF4LXdpZHRoOjQ1LjgzMzMzMzMzMzMlfS5lbC1jb2wteHMtMTEuaXMtZ3V0dGVyZWR7\nZGlzcGxheTpibG9ja30uZWwtY29sLXhzLW9mZnNldC0xMXttYXJnaW4tbGVmdDo0NS44MzMzMzMz\nMzMzJX0uZWwtY29sLXhzLXB1bGwtMTF7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NDUuODMzMzMz\nMzMzMyV9LmVsLWNvbC14cy1wdXNoLTExe2xlZnQ6NDUuODMzMzMzMzMzMyU7cG9zaXRpb246cmVs\nYXRpdmV9LmVsLWNvbC14cy0xMntkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6\nNTAlfS5lbC1jb2wteHMtMTIuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhzLW9m\nZnNldC0xMnttYXJnaW4tbGVmdDo1MCV9LmVsLWNvbC14cy1wdWxsLTEye3Bvc2l0aW9uOnJlbGF0\naXZlO3JpZ2h0OjUwJX0uZWwtY29sLXhzLXB1c2gtMTJ7bGVmdDo1MCU7cG9zaXRpb246cmVsYXRp\ndmV9LmVsLWNvbC14cy0xM3tkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDU0LjE2NjY2NjY2NjclO21h\neC13aWR0aDo1NC4xNjY2NjY2NjY3JX0uZWwtY29sLXhzLTEzLmlzLWd1dHRlcmVke2Rpc3BsYXk6\nYmxvY2t9LmVsLWNvbC14cy1vZmZzZXQtMTN7bWFyZ2luLWxlZnQ6NTQuMTY2NjY2NjY2NyV9LmVs\nLWNvbC14cy1wdWxsLTEze3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjU0LjE2NjY2NjY2NjclfS5l\nbC1jb2wteHMtcHVzaC0xM3tsZWZ0OjU0LjE2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5l\nbC1jb2wteHMtMTR7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lk\ndGg6NTguMzMzMzMzMzMzMyV9LmVsLWNvbC14cy0xNC5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2Nr\nfS5lbC1jb2wteHMtb2Zmc2V0LTE0e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5lbC1jb2wt\neHMtcHVsbC0xNHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo1OC4zMzMzMzMzMzMzJX0uZWwtY29s\nLXhzLXB1c2gtMTR7bGVmdDo1OC4zMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29s\nLXhzLTE1e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNjIuNSU7bWF4LXdpZHRoOjYyLjUlfS5lbC1j\nb2wteHMtMTUuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhzLW9mZnNldC0xNXtt\nYXJnaW4tbGVmdDo2Mi41JX0uZWwtY29sLXhzLXB1bGwtMTV7cG9zaXRpb246cmVsYXRpdmU7cmln\naHQ6NjIuNSV9LmVsLWNvbC14cy1wdXNoLTE1e2xlZnQ6NjIuNSU7cG9zaXRpb246cmVsYXRpdmV9\nLmVsLWNvbC14cy0xNntkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13\naWR0aDo2Ni42NjY2NjY2NjY3JX0uZWwtY29sLXhzLTE2LmlzLWd1dHRlcmVke2Rpc3BsYXk6Ymxv\nY2t9LmVsLWNvbC14cy1vZmZzZXQtMTZ7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmVsLWNv\nbC14cy1wdWxsLTE2e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjY2LjY2NjY2NjY2NjclfS5lbC1j\nb2wteHMtcHVzaC0xNntsZWZ0OjY2LjY2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1j\nb2wteHMtMTd7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA3MC44MzMzMzMzMzMzJTttYXgtd2lkdGg6\nNzAuODMzMzMzMzMzMyV9LmVsLWNvbC14cy0xNy5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5l\nbC1jb2wteHMtb2Zmc2V0LTE3e21hcmdpbi1sZWZ0OjcwLjgzMzMzMzMzMzMlfS5lbC1jb2wteHMt\ncHVsbC0xN3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo3MC44MzMzMzMzMzMzJX0uZWwtY29sLXhz\nLXB1c2gtMTd7bGVmdDo3MC44MzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhz\nLTE4e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmVsLWNvbC14cy0x\nOC5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteHMtb2Zmc2V0LTE4e21hcmdpbi1s\nZWZ0Ojc1JX0uZWwtY29sLXhzLXB1bGwtMTh7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NzUlfS5l\nbC1jb2wteHMtcHVzaC0xOHtsZWZ0Ojc1JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhzLTE5\ne2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNzkuMTY2NjY2NjY2NyU7bWF4LXdpZHRoOjc5LjE2NjY2\nNjY2NjclfS5lbC1jb2wteHMtMTkuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhz\nLW9mZnNldC0xOXttYXJnaW4tbGVmdDo3OS4xNjY2NjY2NjY3JX0uZWwtY29sLXhzLXB1bGwtMTl7\ncG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NzkuMTY2NjY2NjY2NyV9LmVsLWNvbC14cy1wdXNoLTE5\ne2xlZnQ6NzkuMTY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14cy0yMHtkaXNw\nbGF5OmJsb2NrO2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMz\nJX0uZWwtY29sLXhzLTIwLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14cy1vZmZz\nZXQtMjB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LmVsLWNvbC14cy1wdWxsLTIwe3Bvc2l0\naW9uOnJlbGF0aXZlO3JpZ2h0OjgzLjMzMzMzMzMzMzMlfS5lbC1jb2wteHMtcHVzaC0yMHtsZWZ0\nOjgzLjMzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteHMtMjF7ZGlzcGxheTpi\nbG9jaztmbGV4OjAgMCA4Ny41JTttYXgtd2lkdGg6ODcuNSV9LmVsLWNvbC14cy0yMS5pcy1ndXR0\nZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteHMtb2Zmc2V0LTIxe21hcmdpbi1sZWZ0Ojg3LjUl\nfS5lbC1jb2wteHMtcHVsbC0yMXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo4Ny41JX0uZWwtY29s\nLXhzLXB1c2gtMjF7bGVmdDo4Ny41JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhzLTIye2Rp\nc3BsYXk6YmxvY2s7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2\nNjclfS5lbC1jb2wteHMtMjIuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhzLW9m\nZnNldC0yMnttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX0uZWwtY29sLXhzLXB1bGwtMjJ7cG9z\naXRpb246cmVsYXRpdmU7cmlnaHQ6OTEuNjY2NjY2NjY2NyV9LmVsLWNvbC14cy1wdXNoLTIye2xl\nZnQ6OTEuNjY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14cy0yM3tkaXNwbGF5\nOmJsb2NrO2ZsZXg6MCAwIDk1LjgzMzMzMzMzMzMlO21heC13aWR0aDo5NS44MzMzMzMzMzMzJX0u\nZWwtY29sLXhzLTIzLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14cy1vZmZzZXQt\nMjN7bWFyZ2luLWxlZnQ6OTUuODMzMzMzMzMzMyV9LmVsLWNvbC14cy1wdWxsLTIze3Bvc2l0aW9u\nOnJlbGF0aXZlO3JpZ2h0Ojk1LjgzMzMzMzMzMzMlfS5lbC1jb2wteHMtcHVzaC0yM3tsZWZ0Ojk1\nLjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteHMtMjR7ZGlzcGxheTpibG9j\naztmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5lbC1jb2wteHMtMjQuaXMtZ3V0dGVyZWR7\nZGlzcGxheTpibG9ja30uZWwtY29sLXhzLW9mZnNldC0yNHttYXJnaW4tbGVmdDoxMDAlfS5lbC1j\nb2wteHMtcHVsbC0yNHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoxMDAlfS5lbC1jb2wteHMtcHVz\naC0yNHtsZWZ0OjEwMCU7cG9zaXRpb246cmVsYXRpdmV9fUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQg\nKG1pbi13aWR0aDo3NjhweCl7LmVsLWNvbC1zbS0we2Rpc3BsYXk6bm9uZTtmbGV4OjAgMCAwJTtt\nYXgtd2lkdGg6MH0uZWwtY29sLXNtLTAuaXMtZ3V0dGVyZWR7ZGlzcGxheTpub25lfS5lbC1jb2wt\nc20tb2Zmc2V0LTB7bWFyZ2luLWxlZnQ6MH0uZWwtY29sLXNtLXB1bGwtMHtwb3NpdGlvbjpyZWxh\ndGl2ZTtyaWdodDowfS5lbC1jb2wtc20tcHVzaC0we2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX0u\nZWwtY29sLXNtLTF7ZmxleDowIDAgNC4xNjY2NjY2NjY3JTttYXgtd2lkdGg6NC4xNjY2NjY2NjY3\nJX0uZWwtY29sLXNtLTEsLmVsLWNvbC1zbS0xLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVs\nLWNvbC1zbS1vZmZzZXQtMXttYXJnaW4tbGVmdDo0LjE2NjY2NjY2NjclfS5lbC1jb2wtc20tcHVs\nbC0xe3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjQuMTY2NjY2NjY2NyV9LmVsLWNvbC1zbS1wdXNo\nLTF7bGVmdDo0LjE2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtc20tMntmbGV4\nOjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5lbC1jb2wtc20tMiwu\nZWwtY29sLXNtLTIuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXNtLW9mZnNldC0y\ne21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmVsLWNvbC1zbS1wdWxsLTJ7cG9zaXRpb246cmVs\nYXRpdmU7cmlnaHQ6OC4zMzMzMzMzMzMzJX0uZWwtY29sLXNtLXB1c2gtMntsZWZ0OjguMzMzMzMz\nMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1zbS0ze2ZsZXg6MCAwIDEyLjUlO21heC13\naWR0aDoxMi41JX0uZWwtY29sLXNtLTMsLmVsLWNvbC1zbS0zLmlzLWd1dHRlcmVke2Rpc3BsYXk6\nYmxvY2t9LmVsLWNvbC1zbS1vZmZzZXQtM3ttYXJnaW4tbGVmdDoxMi41JX0uZWwtY29sLXNtLXB1\nbGwtM3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoxMi41JX0uZWwtY29sLXNtLXB1c2gtM3tsZWZ0\nOjEyLjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtc20tNHtmbGV4OjAgMCAxNi42NjY2NjY2\nNjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmVsLWNvbC1zbS00LC5lbC1jb2wtc20tNC5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtc20tb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6\nMTYuNjY2NjY2NjY2NyV9LmVsLWNvbC1zbS1wdWxsLTR7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6\nMTYuNjY2NjY2NjY2NyV9LmVsLWNvbC1zbS1wdXNoLTR7bGVmdDoxNi42NjY2NjY2NjY3JTtwb3Np\ndGlvbjpyZWxhdGl2ZX0uZWwtY29sLXNtLTV7ZmxleDowIDAgMjAuODMzMzMzMzMzMyU7bWF4LXdp\nZHRoOjIwLjgzMzMzMzMzMzMlfS5lbC1jb2wtc20tNSwuZWwtY29sLXNtLTUuaXMtZ3V0dGVyZWR7\nZGlzcGxheTpibG9ja30uZWwtY29sLXNtLW9mZnNldC01e21hcmdpbi1sZWZ0OjIwLjgzMzMzMzMz\nMzMlfS5lbC1jb2wtc20tcHVsbC01e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjIwLjgzMzMzMzMz\nMzMlfS5lbC1jb2wtc20tcHVzaC01e2xlZnQ6MjAuODMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRp\ndmV9LmVsLWNvbC1zbS02e2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5lbC1jb2wtc20tNiwu\nZWwtY29sLXNtLTYuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXNtLW9mZnNldC02\ne21hcmdpbi1sZWZ0OjI1JX0uZWwtY29sLXNtLXB1bGwtNntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdo\ndDoyNSV9LmVsLWNvbC1zbS1wdXNoLTZ7bGVmdDoyNSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNv\nbC1zbS03e2ZsZXg6MCAwIDI5LjE2NjY2NjY2NjclO21heC13aWR0aDoyOS4xNjY2NjY2NjY3JX0u\nZWwtY29sLXNtLTcsLmVsLWNvbC1zbS03LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNv\nbC1zbS1vZmZzZXQtN3ttYXJnaW4tbGVmdDoyOS4xNjY2NjY2NjY3JX0uZWwtY29sLXNtLXB1bGwt\nN3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoyOS4xNjY2NjY2NjY3JX0uZWwtY29sLXNtLXB1c2gt\nN3tsZWZ0OjI5LjE2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtc20tOHtmbGV4\nOjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmVsLWNvbC1zbS04\nLC5lbC1jb2wtc20tOC5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtc20tb2Zmc2V0\nLTh7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmVsLWNvbC1zbS1wdWxsLTh7cG9zaXRpb246\ncmVsYXRpdmU7cmlnaHQ6MzMuMzMzMzMzMzMzMyV9LmVsLWNvbC1zbS1wdXNoLTh7bGVmdDozMy4z\nMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXNtLTl7ZmxleDowIDAgMzcuNSU7\nbWF4LXdpZHRoOjM3LjUlfS5lbC1jb2wtc20tOSwuZWwtY29sLXNtLTkuaXMtZ3V0dGVyZWR7ZGlz\ncGxheTpibG9ja30uZWwtY29sLXNtLW9mZnNldC05e21hcmdpbi1sZWZ0OjM3LjUlfS5lbC1jb2wt\nc20tcHVsbC05e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjM3LjUlfS5lbC1jb2wtc20tcHVzaC05\ne2xlZnQ6MzcuNSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1zbS0xMHtkaXNwbGF5OmJsb2Nr\nO2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uZWwtY29s\nLXNtLTEwLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1zbS1vZmZzZXQtMTB7bWFy\nZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmVsLWNvbC1zbS1wdWxsLTEwe3Bvc2l0aW9uOnJlbGF0\naXZlO3JpZ2h0OjQxLjY2NjY2NjY2NjclfS5lbC1jb2wtc20tcHVzaC0xMHtsZWZ0OjQxLjY2NjY2\nNjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtc20tMTF7ZGlzcGxheTpibG9jaztmbGV4\nOjAgMCA0NS44MzMzMzMzMzMzJTttYXgtd2lkdGg6NDUuODMzMzMzMzMzMyV9LmVsLWNvbC1zbS0x\nMS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtc20tb2Zmc2V0LTExe21hcmdpbi1s\nZWZ0OjQ1LjgzMzMzMzMzMzMlfS5lbC1jb2wtc20tcHVsbC0xMXtwb3NpdGlvbjpyZWxhdGl2ZTty\naWdodDo0NS44MzMzMzMzMzMzJX0uZWwtY29sLXNtLXB1c2gtMTF7bGVmdDo0NS44MzMzMzMzMzMz\nJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXNtLTEye2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAg\nNTAlO21heC13aWR0aDo1MCV9LmVsLWNvbC1zbS0xMi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2Nr\nfS5lbC1jb2wtc20tb2Zmc2V0LTEye21hcmdpbi1sZWZ0OjUwJX0uZWwtY29sLXNtLXB1bGwtMTJ7\ncG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NTAlfS5lbC1jb2wtc20tcHVzaC0xMntsZWZ0OjUwJTtw\nb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXNtLTEze2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNTQu\nMTY2NjY2NjY2NyU7bWF4LXdpZHRoOjU0LjE2NjY2NjY2NjclfS5lbC1jb2wtc20tMTMuaXMtZ3V0\ndGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXNtLW9mZnNldC0xM3ttYXJnaW4tbGVmdDo1NC4x\nNjY2NjY2NjY3JX0uZWwtY29sLXNtLXB1bGwtMTN7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NTQu\nMTY2NjY2NjY2NyV9LmVsLWNvbC1zbS1wdXNoLTEze2xlZnQ6NTQuMTY2NjY2NjY2NyU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC1zbS0xNHtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDU4LjMzMzMz\nMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uZWwtY29sLXNtLTE0LmlzLWd1dHRlcmVk\ne2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1zbS1vZmZzZXQtMTR7bWFyZ2luLWxlZnQ6NTguMzMzMzMz\nMzMzMyV9LmVsLWNvbC1zbS1wdWxsLTE0e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjU4LjMzMzMz\nMzMzMzMlfS5lbC1jb2wtc20tcHVzaC0xNHtsZWZ0OjU4LjMzMzMzMzMzMzMlO3Bvc2l0aW9uOnJl\nbGF0aXZlfS5lbC1jb2wtc20tMTV7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA2Mi41JTttYXgtd2lk\ndGg6NjIuNSV9LmVsLWNvbC1zbS0xNS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wt\nc20tb2Zmc2V0LTE1e21hcmdpbi1sZWZ0OjYyLjUlfS5lbC1jb2wtc20tcHVsbC0xNXtwb3NpdGlv\nbjpyZWxhdGl2ZTtyaWdodDo2Mi41JX0uZWwtY29sLXNtLXB1c2gtMTV7bGVmdDo2Mi41JTtwb3Np\ndGlvbjpyZWxhdGl2ZX0uZWwtY29sLXNtLTE2e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNjYuNjY2\nNjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5lbC1jb2wtc20tMTYuaXMtZ3V0dGVy\nZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXNtLW9mZnNldC0xNnttYXJnaW4tbGVmdDo2Ni42NjY2\nNjY2NjY3JX0uZWwtY29sLXNtLXB1bGwtMTZ7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NjYuNjY2\nNjY2NjY2NyV9LmVsLWNvbC1zbS1wdXNoLTE2e2xlZnQ6NjYuNjY2NjY2NjY2NyU7cG9zaXRpb246\ncmVsYXRpdmV9LmVsLWNvbC1zbS0xN3tkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDcwLjgzMzMzMzMz\nMzMlO21heC13aWR0aDo3MC44MzMzMzMzMzMzJX0uZWwtY29sLXNtLTE3LmlzLWd1dHRlcmVke2Rp\nc3BsYXk6YmxvY2t9LmVsLWNvbC1zbS1vZmZzZXQtMTd7bWFyZ2luLWxlZnQ6NzAuODMzMzMzMzMz\nMyV9LmVsLWNvbC1zbS1wdWxsLTE3e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjcwLjgzMzMzMzMz\nMzMlfS5lbC1jb2wtc20tcHVzaC0xN3tsZWZ0OjcwLjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0\naXZlfS5lbC1jb2wtc20tMTh7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1\nJX0uZWwtY29sLXNtLTE4LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1zbS1vZmZz\nZXQtMTh7bWFyZ2luLWxlZnQ6NzUlfS5lbC1jb2wtc20tcHVsbC0xOHtwb3NpdGlvbjpyZWxhdGl2\nZTtyaWdodDo3NSV9LmVsLWNvbC1zbS1wdXNoLTE4e2xlZnQ6NzUlO3Bvc2l0aW9uOnJlbGF0aXZl\nfS5lbC1jb2wtc20tMTl7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA3OS4xNjY2NjY2NjY3JTttYXgt\nd2lkdGg6NzkuMTY2NjY2NjY2NyV9LmVsLWNvbC1zbS0xOS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJs\nb2NrfS5lbC1jb2wtc20tb2Zmc2V0LTE5e21hcmdpbi1sZWZ0Ojc5LjE2NjY2NjY2NjclfS5lbC1j\nb2wtc20tcHVsbC0xOXtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo3OS4xNjY2NjY2NjY3JX0uZWwt\nY29sLXNtLXB1c2gtMTl7bGVmdDo3OS4xNjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwt\nY29sLXNtLTIwe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRo\nOjgzLjMzMzMzMzMzMzMlfS5lbC1jb2wtc20tMjAuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30u\nZWwtY29sLXNtLW9mZnNldC0yMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uZWwtY29sLXNt\nLXB1bGwtMjB7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6ODMuMzMzMzMzMzMzMyV9LmVsLWNvbC1z\nbS1wdXNoLTIwe2xlZnQ6ODMuMzMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1z\nbS0yMXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDg3LjUlO21heC13aWR0aDo4Ny41JX0uZWwtY29s\nLXNtLTIxLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1zbS1vZmZzZXQtMjF7bWFy\nZ2luLWxlZnQ6ODcuNSV9LmVsLWNvbC1zbS1wdWxsLTIxe3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0\nOjg3LjUlfS5lbC1jb2wtc20tcHVzaC0yMXtsZWZ0Ojg3LjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5l\nbC1jb2wtc20tMjJ7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lk\ndGg6OTEuNjY2NjY2NjY2NyV9LmVsLWNvbC1zbS0yMi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2Nr\nfS5lbC1jb2wtc20tb2Zmc2V0LTIye21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfS5lbC1jb2wt\nc20tcHVsbC0yMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo5MS42NjY2NjY2NjY3JX0uZWwtY29s\nLXNtLXB1c2gtMjJ7bGVmdDo5MS42NjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29s\nLXNtLTIze2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgOTUuODMzMzMzMzMzMyU7bWF4LXdpZHRoOjk1\nLjgzMzMzMzMzMzMlfS5lbC1jb2wtc20tMjMuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwt\nY29sLXNtLW9mZnNldC0yM3ttYXJnaW4tbGVmdDo5NS44MzMzMzMzMzMzJX0uZWwtY29sLXNtLXB1\nbGwtMjN7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6OTUuODMzMzMzMzMzMyV9LmVsLWNvbC1zbS1w\ndXNoLTIze2xlZnQ6OTUuODMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1zbS0y\nNHtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9LmVsLWNvbC1zbS0y\nNC5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtc20tb2Zmc2V0LTI0e21hcmdpbi1s\nZWZ0OjEwMCV9LmVsLWNvbC1zbS1wdWxsLTI0e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjEwMCV9\nLmVsLWNvbC1zbS1wdXNoLTI0e2xlZnQ6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX19QG1lZGlhIG9u\nbHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjk5MnB4KXsuZWwtY29sLW1kLTB7ZGlzcGxheTpub25l\nO2ZsZXg6MCAwIDAlO21heC13aWR0aDowfS5lbC1jb2wtbWQtMC5pcy1ndXR0ZXJlZHtkaXNwbGF5\nOm5vbmV9LmVsLWNvbC1tZC1vZmZzZXQtMHttYXJnaW4tbGVmdDowfS5lbC1jb2wtbWQtcHVsbC0w\ne3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjB9LmVsLWNvbC1tZC1wdXNoLTB7bGVmdDowO3Bvc2l0\naW9uOnJlbGF0aXZlfS5lbC1jb2wtbWQtMXtmbGV4OjAgMCA0LjE2NjY2NjY2NjclO21heC13aWR0\naDo0LjE2NjY2NjY2NjclfS5lbC1jb2wtbWQtMSwuZWwtY29sLW1kLTEuaXMtZ3V0dGVyZWR7ZGlz\ncGxheTpibG9ja30uZWwtY29sLW1kLW9mZnNldC0xe21hcmdpbi1sZWZ0OjQuMTY2NjY2NjY2NyV9\nLmVsLWNvbC1tZC1wdWxsLTF7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NC4xNjY2NjY2NjY3JX0u\nZWwtY29sLW1kLXB1c2gtMXtsZWZ0OjQuMTY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVs\nLWNvbC1tZC0ye2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9\nLmVsLWNvbC1tZC0yLC5lbC1jb2wtbWQtMi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1j\nb2wtbWQtb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uZWwtY29sLW1kLXB1bGwt\nMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo4LjMzMzMzMzMzMzMlfS5lbC1jb2wtbWQtcHVzaC0y\ne2xlZnQ6OC4zMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLW1kLTN7ZmxleDow\nIDAgMTIuNSU7bWF4LXdpZHRoOjEyLjUlfS5lbC1jb2wtbWQtMywuZWwtY29sLW1kLTMuaXMtZ3V0\ndGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW1kLW9mZnNldC0ze21hcmdpbi1sZWZ0OjEyLjUl\nfS5lbC1jb2wtbWQtcHVsbC0ze3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjEyLjUlfS5lbC1jb2wt\nbWQtcHVzaC0ze2xlZnQ6MTIuNSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1tZC00e2ZsZXg6\nMCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uZWwtY29sLW1kLTQs\nLmVsLWNvbC1tZC00LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1tZC1vZmZzZXQt\nNHttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uZWwtY29sLW1kLXB1bGwtNHtwb3NpdGlvbjpy\nZWxhdGl2ZTtyaWdodDoxNi42NjY2NjY2NjY3JX0uZWwtY29sLW1kLXB1c2gtNHtsZWZ0OjE2LjY2\nNjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbWQtNXtmbGV4OjAgMCAyMC44MzMz\nMzMzMzMzJTttYXgtd2lkdGg6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC1tZC01LC5lbC1jb2wtbWQt\nNS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbWQtb2Zmc2V0LTV7bWFyZ2luLWxl\nZnQ6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC1tZC1wdWxsLTV7cG9zaXRpb246cmVsYXRpdmU7cmln\naHQ6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC1tZC1wdXNoLTV7bGVmdDoyMC44MzMzMzMzMzMzJTtw\nb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLW1kLTZ7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9\nLmVsLWNvbC1tZC02LC5lbC1jb2wtbWQtNi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1j\nb2wtbWQtb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6MjUlfS5lbC1jb2wtbWQtcHVsbC02e3Bvc2l0aW9u\nOnJlbGF0aXZlO3JpZ2h0OjI1JX0uZWwtY29sLW1kLXB1c2gtNntsZWZ0OjI1JTtwb3NpdGlvbjpy\nZWxhdGl2ZX0uZWwtY29sLW1kLTd7ZmxleDowIDAgMjkuMTY2NjY2NjY2NyU7bWF4LXdpZHRoOjI5\nLjE2NjY2NjY2NjclfS5lbC1jb2wtbWQtNywuZWwtY29sLW1kLTcuaXMtZ3V0dGVyZWR7ZGlzcGxh\neTpibG9ja30uZWwtY29sLW1kLW9mZnNldC03e21hcmdpbi1sZWZ0OjI5LjE2NjY2NjY2NjclfS5l\nbC1jb2wtbWQtcHVsbC03e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjI5LjE2NjY2NjY2NjclfS5l\nbC1jb2wtbWQtcHVzaC03e2xlZnQ6MjkuMTY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVs\nLWNvbC1tZC04e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMz\nJX0uZWwtY29sLW1kLTgsLmVsLWNvbC1tZC04LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVs\nLWNvbC1tZC1vZmZzZXQtOHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uZWwtY29sLW1kLXB1\nbGwtOHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDozMy4zMzMzMzMzMzMzJX0uZWwtY29sLW1kLXB1\nc2gtOHtsZWZ0OjMzLjMzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbWQtOXtm\nbGV4OjAgMCAzNy41JTttYXgtd2lkdGg6MzcuNSV9LmVsLWNvbC1tZC05LC5lbC1jb2wtbWQtOS5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbWQtb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6\nMzcuNSV9LmVsLWNvbC1tZC1wdWxsLTl7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MzcuNSV9LmVs\nLWNvbC1tZC1wdXNoLTl7bGVmdDozNy41JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLW1kLTEw\ne2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2\nNjY2NjclfS5lbC1jb2wtbWQtMTAuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW1k\nLW9mZnNldC0xMHttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uZWwtY29sLW1kLXB1bGwtMTB7\ncG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NDEuNjY2NjY2NjY2NyV9LmVsLWNvbC1tZC1wdXNoLTEw\ne2xlZnQ6NDEuNjY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1tZC0xMXtkaXNw\nbGF5OmJsb2NrO2ZsZXg6MCAwIDQ1LjgzMzMzMzMzMzMlO21heC13aWR0aDo0NS44MzMzMzMzMzMz\nJX0uZWwtY29sLW1kLTExLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1tZC1vZmZz\nZXQtMTF7bWFyZ2luLWxlZnQ6NDUuODMzMzMzMzMzMyV9LmVsLWNvbC1tZC1wdWxsLTExe3Bvc2l0\naW9uOnJlbGF0aXZlO3JpZ2h0OjQ1LjgzMzMzMzMzMzMlfS5lbC1jb2wtbWQtcHVzaC0xMXtsZWZ0\nOjQ1LjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbWQtMTJ7ZGlzcGxheTpi\nbG9jaztmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uZWwtY29sLW1kLTEyLmlzLWd1dHRlcmVk\ne2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1tZC1vZmZzZXQtMTJ7bWFyZ2luLWxlZnQ6NTAlfS5lbC1j\nb2wtbWQtcHVsbC0xMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo1MCV9LmVsLWNvbC1tZC1wdXNo\nLTEye2xlZnQ6NTAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbWQtMTN7ZGlzcGxheTpibG9j\naztmbGV4OjAgMCA1NC4xNjY2NjY2NjY3JTttYXgtd2lkdGg6NTQuMTY2NjY2NjY2NyV9LmVsLWNv\nbC1tZC0xMy5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbWQtb2Zmc2V0LTEze21h\ncmdpbi1sZWZ0OjU0LjE2NjY2NjY2NjclfS5lbC1jb2wtbWQtcHVsbC0xM3twb3NpdGlvbjpyZWxh\ndGl2ZTtyaWdodDo1NC4xNjY2NjY2NjY3JX0uZWwtY29sLW1kLXB1c2gtMTN7bGVmdDo1NC4xNjY2\nNjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLW1kLTE0e2Rpc3BsYXk6YmxvY2s7Zmxl\neDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5lbC1jb2wtbWQt\nMTQuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW1kLW9mZnNldC0xNHttYXJnaW4t\nbGVmdDo1OC4zMzMzMzMzMzMzJX0uZWwtY29sLW1kLXB1bGwtMTR7cG9zaXRpb246cmVsYXRpdmU7\ncmlnaHQ6NTguMzMzMzMzMzMzMyV9LmVsLWNvbC1tZC1wdXNoLTE0e2xlZnQ6NTguMzMzMzMzMzMz\nMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1tZC0xNXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAw\nIDYyLjUlO21heC13aWR0aDo2Mi41JX0uZWwtY29sLW1kLTE1LmlzLWd1dHRlcmVke2Rpc3BsYXk6\nYmxvY2t9LmVsLWNvbC1tZC1vZmZzZXQtMTV7bWFyZ2luLWxlZnQ6NjIuNSV9LmVsLWNvbC1tZC1w\ndWxsLTE1e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjYyLjUlfS5lbC1jb2wtbWQtcHVzaC0xNXts\nZWZ0OjYyLjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbWQtMTZ7ZGlzcGxheTpibG9jaztm\nbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmVsLWNvbC1t\nZC0xNi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbWQtb2Zmc2V0LTE2e21hcmdp\nbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5lbC1jb2wtbWQtcHVsbC0xNntwb3NpdGlvbjpyZWxhdGl2\nZTtyaWdodDo2Ni42NjY2NjY2NjY3JX0uZWwtY29sLW1kLXB1c2gtMTZ7bGVmdDo2Ni42NjY2NjY2\nNjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLW1kLTE3e2Rpc3BsYXk6YmxvY2s7ZmxleDow\nIDAgNzAuODMzMzMzMzMzMyU7bWF4LXdpZHRoOjcwLjgzMzMzMzMzMzMlfS5lbC1jb2wtbWQtMTcu\naXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW1kLW9mZnNldC0xN3ttYXJnaW4tbGVm\ndDo3MC44MzMzMzMzMzMzJX0uZWwtY29sLW1kLXB1bGwtMTd7cG9zaXRpb246cmVsYXRpdmU7cmln\naHQ6NzAuODMzMzMzMzMzMyV9LmVsLWNvbC1tZC1wdXNoLTE3e2xlZnQ6NzAuODMzMzMzMzMzMyU7\ncG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1tZC0xOHtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDc1\nJTttYXgtd2lkdGg6NzUlfS5lbC1jb2wtbWQtMTguaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30u\nZWwtY29sLW1kLW9mZnNldC0xOHttYXJnaW4tbGVmdDo3NSV9LmVsLWNvbC1tZC1wdWxsLTE4e3Bv\nc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojc1JX0uZWwtY29sLW1kLXB1c2gtMTh7bGVmdDo3NSU7cG9z\naXRpb246cmVsYXRpdmV9LmVsLWNvbC1tZC0xOXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDc5LjE2\nNjY2NjY2NjclO21heC13aWR0aDo3OS4xNjY2NjY2NjY3JX0uZWwtY29sLW1kLTE5LmlzLWd1dHRl\ncmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1tZC1vZmZzZXQtMTl7bWFyZ2luLWxlZnQ6NzkuMTY2\nNjY2NjY2NyV9LmVsLWNvbC1tZC1wdWxsLTE5e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojc5LjE2\nNjY2NjY2NjclfS5lbC1jb2wtbWQtcHVzaC0xOXtsZWZ0Ojc5LjE2NjY2NjY2NjclO3Bvc2l0aW9u\nOnJlbGF0aXZlfS5lbC1jb2wtbWQtMjB7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA4My4zMzMzMzMz\nMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmVsLWNvbC1tZC0yMC5pcy1ndXR0ZXJlZHtk\naXNwbGF5OmJsb2NrfS5lbC1jb2wtbWQtb2Zmc2V0LTIwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMz\nMzMlfS5lbC1jb2wtbWQtcHVsbC0yMHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo4My4zMzMzMzMz\nMzMzJX0uZWwtY29sLW1kLXB1c2gtMjB7bGVmdDo4My4zMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxh\ndGl2ZX0uZWwtY29sLW1kLTIxe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgODcuNSU7bWF4LXdpZHRo\nOjg3LjUlfS5lbC1jb2wtbWQtMjEuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLW1k\nLW9mZnNldC0yMXttYXJnaW4tbGVmdDo4Ny41JX0uZWwtY29sLW1kLXB1bGwtMjF7cG9zaXRpb246\ncmVsYXRpdmU7cmlnaHQ6ODcuNSV9LmVsLWNvbC1tZC1wdXNoLTIxe2xlZnQ6ODcuNSU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC1tZC0yMntkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDkxLjY2NjY2\nNjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uZWwtY29sLW1kLTIyLmlzLWd1dHRlcmVk\ne2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1tZC1vZmZzZXQtMjJ7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2\nNjY2NyV9LmVsLWNvbC1tZC1wdWxsLTIye3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjkxLjY2NjY2\nNjY2NjclfS5lbC1jb2wtbWQtcHVzaC0yMntsZWZ0OjkxLjY2NjY2NjY2NjclO3Bvc2l0aW9uOnJl\nbGF0aXZlfS5lbC1jb2wtbWQtMjN7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA5NS44MzMzMzMzMzMz\nJTttYXgtd2lkdGg6OTUuODMzMzMzMzMzMyV9LmVsLWNvbC1tZC0yMy5pcy1ndXR0ZXJlZHtkaXNw\nbGF5OmJsb2NrfS5lbC1jb2wtbWQtb2Zmc2V0LTIze21hcmdpbi1sZWZ0Ojk1LjgzMzMzMzMzMzMl\nfS5lbC1jb2wtbWQtcHVsbC0yM3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo5NS44MzMzMzMzMzMz\nJX0uZWwtY29sLW1kLXB1c2gtMjN7bGVmdDo5NS44MzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2\nZX0uZWwtY29sLW1kLTI0e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAw\nJX0uZWwtY29sLW1kLTI0LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1tZC1vZmZz\nZXQtMjR7bWFyZ2luLWxlZnQ6MTAwJX0uZWwtY29sLW1kLXB1bGwtMjR7cG9zaXRpb246cmVsYXRp\ndmU7cmlnaHQ6MTAwJX0uZWwtY29sLW1kLXB1c2gtMjR7bGVmdDoxMDAlO3Bvc2l0aW9uOnJlbGF0\naXZlfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTIwMHB4KXsuZWwtY29sLWxn\nLTB7ZGlzcGxheTpub25lO2ZsZXg6MCAwIDAlO21heC13aWR0aDowfS5lbC1jb2wtbGctMC5pcy1n\ndXR0ZXJlZHtkaXNwbGF5Om5vbmV9LmVsLWNvbC1sZy1vZmZzZXQtMHttYXJnaW4tbGVmdDowfS5l\nbC1jb2wtbGctcHVsbC0we3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjB9LmVsLWNvbC1sZy1wdXNo\nLTB7bGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbGctMXtmbGV4OjAgMCA0LjE2NjY2\nNjY2NjclO21heC13aWR0aDo0LjE2NjY2NjY2NjclfS5lbC1jb2wtbGctMSwuZWwtY29sLWxnLTEu\naXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLWxnLW9mZnNldC0xe21hcmdpbi1sZWZ0\nOjQuMTY2NjY2NjY2NyV9LmVsLWNvbC1sZy1wdWxsLTF7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6\nNC4xNjY2NjY2NjY3JX0uZWwtY29sLWxnLXB1c2gtMXtsZWZ0OjQuMTY2NjY2NjY2NyU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC1sZy0ye2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRo\nOjguMzMzMzMzMzMzMyV9LmVsLWNvbC1sZy0yLC5lbC1jb2wtbGctMi5pcy1ndXR0ZXJlZHtkaXNw\nbGF5OmJsb2NrfS5lbC1jb2wtbGctb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0u\nZWwtY29sLWxnLXB1bGwtMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo4LjMzMzMzMzMzMzMlfS5l\nbC1jb2wtbGctcHVzaC0ye2xlZnQ6OC4zMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwt\nY29sLWxnLTN7ZmxleDowIDAgMTIuNSU7bWF4LXdpZHRoOjEyLjUlfS5lbC1jb2wtbGctMywuZWwt\nY29sLWxnLTMuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLWxnLW9mZnNldC0ze21h\ncmdpbi1sZWZ0OjEyLjUlfS5lbC1jb2wtbGctcHVsbC0ze3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0\nOjEyLjUlfS5lbC1jb2wtbGctcHVzaC0ze2xlZnQ6MTIuNSU7cG9zaXRpb246cmVsYXRpdmV9LmVs\nLWNvbC1sZy00e2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3\nJX0uZWwtY29sLWxnLTQsLmVsLWNvbC1sZy00LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVs\nLWNvbC1sZy1vZmZzZXQtNHttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3JX0uZWwtY29sLWxnLXB1\nbGwtNHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoxNi42NjY2NjY2NjY3JX0uZWwtY29sLWxnLXB1\nc2gtNHtsZWZ0OjE2LjY2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbGctNXtm\nbGV4OjAgMCAyMC44MzMzMzMzMzMzJTttYXgtd2lkdGg6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC1s\nZy01LC5lbC1jb2wtbGctNS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbGctb2Zm\nc2V0LTV7bWFyZ2luLWxlZnQ6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC1sZy1wdWxsLTV7cG9zaXRp\nb246cmVsYXRpdmU7cmlnaHQ6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC1sZy1wdXNoLTV7bGVmdDoy\nMC44MzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLWxnLTZ7ZmxleDowIDAgMjUl\nO21heC13aWR0aDoyNSV9LmVsLWNvbC1sZy02LC5lbC1jb2wtbGctNi5pcy1ndXR0ZXJlZHtkaXNw\nbGF5OmJsb2NrfS5lbC1jb2wtbGctb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6MjUlfS5lbC1jb2wtbGct\ncHVsbC02e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjI1JX0uZWwtY29sLWxnLXB1c2gtNntsZWZ0\nOjI1JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLWxnLTd7ZmxleDowIDAgMjkuMTY2NjY2NjY2\nNyU7bWF4LXdpZHRoOjI5LjE2NjY2NjY2NjclfS5lbC1jb2wtbGctNywuZWwtY29sLWxnLTcuaXMt\nZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLWxnLW9mZnNldC03e21hcmdpbi1sZWZ0OjI5\nLjE2NjY2NjY2NjclfS5lbC1jb2wtbGctcHVsbC03e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjI5\nLjE2NjY2NjY2NjclfS5lbC1jb2wtbGctcHVzaC03e2xlZnQ6MjkuMTY2NjY2NjY2NyU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC1sZy04e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0\naDozMy4zMzMzMzMzMzMzJX0uZWwtY29sLWxnLTgsLmVsLWNvbC1sZy04LmlzLWd1dHRlcmVke2Rp\nc3BsYXk6YmxvY2t9LmVsLWNvbC1sZy1vZmZzZXQtOHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMz\nJX0uZWwtY29sLWxnLXB1bGwtOHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDozMy4zMzMzMzMzMzMz\nJX0uZWwtY29sLWxnLXB1c2gtOHtsZWZ0OjMzLjMzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZl\nfS5lbC1jb2wtbGctOXtmbGV4OjAgMCAzNy41JTttYXgtd2lkdGg6MzcuNSV9LmVsLWNvbC1sZy05\nLC5lbC1jb2wtbGctOS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbGctb2Zmc2V0\nLTl7bWFyZ2luLWxlZnQ6MzcuNSV9LmVsLWNvbC1sZy1wdWxsLTl7cG9zaXRpb246cmVsYXRpdmU7\ncmlnaHQ6MzcuNSV9LmVsLWNvbC1sZy1wdXNoLTl7bGVmdDozNy41JTtwb3NpdGlvbjpyZWxhdGl2\nZX0uZWwtY29sLWxnLTEwe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4\nLXdpZHRoOjQxLjY2NjY2NjY2NjclfS5lbC1jb2wtbGctMTAuaXMtZ3V0dGVyZWR7ZGlzcGxheTpi\nbG9ja30uZWwtY29sLWxnLW9mZnNldC0xMHttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uZWwt\nY29sLWxnLXB1bGwtMTB7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NDEuNjY2NjY2NjY2NyV9LmVs\nLWNvbC1sZy1wdXNoLTEwe2xlZnQ6NDEuNjY2NjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVs\nLWNvbC1sZy0xMXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDQ1LjgzMzMzMzMzMzMlO21heC13aWR0\naDo0NS44MzMzMzMzMzMzJX0uZWwtY29sLWxnLTExLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9\nLmVsLWNvbC1sZy1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6NDUuODMzMzMzMzMzMyV9LmVsLWNvbC1s\nZy1wdWxsLTExe3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjQ1LjgzMzMzMzMzMzMlfS5lbC1jb2wt\nbGctcHVzaC0xMXtsZWZ0OjQ1LjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wt\nbGctMTJ7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uZWwtY29sLWxn\nLTEyLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1sZy1vZmZzZXQtMTJ7bWFyZ2lu\nLWxlZnQ6NTAlfS5lbC1jb2wtbGctcHVsbC0xMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo1MCV9\nLmVsLWNvbC1sZy1wdXNoLTEye2xlZnQ6NTAlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbGct\nMTN7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA1NC4xNjY2NjY2NjY3JTttYXgtd2lkdGg6NTQuMTY2\nNjY2NjY2NyV9LmVsLWNvbC1sZy0xMy5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wt\nbGctb2Zmc2V0LTEze21hcmdpbi1sZWZ0OjU0LjE2NjY2NjY2NjclfS5lbC1jb2wtbGctcHVsbC0x\nM3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo1NC4xNjY2NjY2NjY3JX0uZWwtY29sLWxnLXB1c2gt\nMTN7bGVmdDo1NC4xNjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLWxnLTE0e2Rp\nc3BsYXk6YmxvY2s7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMz\nMzMlfS5lbC1jb2wtbGctMTQuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLWxnLW9m\nZnNldC0xNHttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uZWwtY29sLWxnLXB1bGwtMTR7cG9z\naXRpb246cmVsYXRpdmU7cmlnaHQ6NTguMzMzMzMzMzMzMyV9LmVsLWNvbC1sZy1wdXNoLTE0e2xl\nZnQ6NTguMzMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1sZy0xNXtkaXNwbGF5\nOmJsb2NrO2ZsZXg6MCAwIDYyLjUlO21heC13aWR0aDo2Mi41JX0uZWwtY29sLWxnLTE1LmlzLWd1\ndHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1sZy1vZmZzZXQtMTV7bWFyZ2luLWxlZnQ6NjIu\nNSV9LmVsLWNvbC1sZy1wdWxsLTE1e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjYyLjUlfS5lbC1j\nb2wtbGctcHVzaC0xNXtsZWZ0OjYyLjUlO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbGctMTZ7\nZGlzcGxheTpibG9jaztmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2\nNjY2NyV9LmVsLWNvbC1sZy0xNi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbGct\nb2Zmc2V0LTE2e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5lbC1jb2wtbGctcHVsbC0xNntw\nb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo2Ni42NjY2NjY2NjY3JX0uZWwtY29sLWxnLXB1c2gtMTZ7\nbGVmdDo2Ni42NjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLWxnLTE3e2Rpc3Bs\nYXk6YmxvY2s7ZmxleDowIDAgNzAuODMzMzMzMzMzMyU7bWF4LXdpZHRoOjcwLjgzMzMzMzMzMzMl\nfS5lbC1jb2wtbGctMTcuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLWxnLW9mZnNl\ndC0xN3ttYXJnaW4tbGVmdDo3MC44MzMzMzMzMzMzJX0uZWwtY29sLWxnLXB1bGwtMTd7cG9zaXRp\nb246cmVsYXRpdmU7cmlnaHQ6NzAuODMzMzMzMzMzMyV9LmVsLWNvbC1sZy1wdXNoLTE3e2xlZnQ6\nNzAuODMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1sZy0xOHtkaXNwbGF5OmJs\nb2NrO2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5lbC1jb2wtbGctMTguaXMtZ3V0dGVyZWR7\nZGlzcGxheTpibG9ja30uZWwtY29sLWxnLW9mZnNldC0xOHttYXJnaW4tbGVmdDo3NSV9LmVsLWNv\nbC1sZy1wdWxsLTE4e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojc1JX0uZWwtY29sLWxnLXB1c2gt\nMTh7bGVmdDo3NSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1sZy0xOXtkaXNwbGF5OmJsb2Nr\nO2ZsZXg6MCAwIDc5LjE2NjY2NjY2NjclO21heC13aWR0aDo3OS4xNjY2NjY2NjY3JX0uZWwtY29s\nLWxnLTE5LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1sZy1vZmZzZXQtMTl7bWFy\nZ2luLWxlZnQ6NzkuMTY2NjY2NjY2NyV9LmVsLWNvbC1sZy1wdWxsLTE5e3Bvc2l0aW9uOnJlbGF0\naXZlO3JpZ2h0Ojc5LjE2NjY2NjY2NjclfS5lbC1jb2wtbGctcHVzaC0xOXtsZWZ0Ojc5LjE2NjY2\nNjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbGctMjB7ZGlzcGxheTpibG9jaztmbGV4\nOjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmVsLWNvbC1sZy0y\nMC5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbGctb2Zmc2V0LTIwe21hcmdpbi1s\nZWZ0OjgzLjMzMzMzMzMzMzMlfS5lbC1jb2wtbGctcHVsbC0yMHtwb3NpdGlvbjpyZWxhdGl2ZTty\naWdodDo4My4zMzMzMzMzMzMzJX0uZWwtY29sLWxnLXB1c2gtMjB7bGVmdDo4My4zMzMzMzMzMzMz\nJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLWxnLTIxe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAg\nODcuNSU7bWF4LXdpZHRoOjg3LjUlfS5lbC1jb2wtbGctMjEuaXMtZ3V0dGVyZWR7ZGlzcGxheTpi\nbG9ja30uZWwtY29sLWxnLW9mZnNldC0yMXttYXJnaW4tbGVmdDo4Ny41JX0uZWwtY29sLWxnLXB1\nbGwtMjF7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6ODcuNSV9LmVsLWNvbC1sZy1wdXNoLTIxe2xl\nZnQ6ODcuNSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC1sZy0yMntkaXNwbGF5OmJsb2NrO2Zs\nZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uZWwtY29sLWxn\nLTIyLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC1sZy1vZmZzZXQtMjJ7bWFyZ2lu\nLWxlZnQ6OTEuNjY2NjY2NjY2NyV9LmVsLWNvbC1sZy1wdWxsLTIye3Bvc2l0aW9uOnJlbGF0aXZl\nO3JpZ2h0OjkxLjY2NjY2NjY2NjclfS5lbC1jb2wtbGctcHVzaC0yMntsZWZ0OjkxLjY2NjY2NjY2\nNjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wtbGctMjN7ZGlzcGxheTpibG9jaztmbGV4OjAg\nMCA5NS44MzMzMzMzMzMzJTttYXgtd2lkdGg6OTUuODMzMzMzMzMzMyV9LmVsLWNvbC1sZy0yMy5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wtbGctb2Zmc2V0LTIze21hcmdpbi1sZWZ0\nOjk1LjgzMzMzMzMzMzMlfS5lbC1jb2wtbGctcHVsbC0yM3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdo\ndDo5NS44MzMzMzMzMzMzJX0uZWwtY29sLWxnLXB1c2gtMjN7bGVmdDo5NS44MzMzMzMzMzMzJTtw\nb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLWxnLTI0e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgMTAw\nJTttYXgtd2lkdGg6MTAwJX0uZWwtY29sLWxnLTI0LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9\nLmVsLWNvbC1sZy1vZmZzZXQtMjR7bWFyZ2luLWxlZnQ6MTAwJX0uZWwtY29sLWxnLXB1bGwtMjR7\ncG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MTAwJX0uZWwtY29sLWxnLXB1c2gtMjR7bGVmdDoxMDAl\nO3Bvc2l0aW9uOnJlbGF0aXZlfX1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTky\nMHB4KXsuZWwtY29sLXhsLTB7ZGlzcGxheTpub25lO2ZsZXg6MCAwIDAlO21heC13aWR0aDowfS5l\nbC1jb2wteGwtMC5pcy1ndXR0ZXJlZHtkaXNwbGF5Om5vbmV9LmVsLWNvbC14bC1vZmZzZXQtMHtt\nYXJnaW4tbGVmdDowfS5lbC1jb2wteGwtcHVsbC0we3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjB9\nLmVsLWNvbC14bC1wdXNoLTB7bGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteGwtMXtm\nbGV4OjAgMCA0LjE2NjY2NjY2NjclO21heC13aWR0aDo0LjE2NjY2NjY2NjclfS5lbC1jb2wteGwt\nMSwuZWwtY29sLXhsLTEuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhsLW9mZnNl\ndC0xe21hcmdpbi1sZWZ0OjQuMTY2NjY2NjY2NyV9LmVsLWNvbC14bC1wdWxsLTF7cG9zaXRpb246\ncmVsYXRpdmU7cmlnaHQ6NC4xNjY2NjY2NjY3JX0uZWwtY29sLXhsLXB1c2gtMXtsZWZ0OjQuMTY2\nNjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14bC0ye2ZsZXg6MCAwIDguMzMzMzMz\nMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmVsLWNvbC14bC0yLC5lbC1jb2wteGwtMi5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteGwtb2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6\nOC4zMzMzMzMzMzMzJX0uZWwtY29sLXhsLXB1bGwtMntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo4\nLjMzMzMzMzMzMzMlfS5lbC1jb2wteGwtcHVzaC0ye2xlZnQ6OC4zMzMzMzMzMzMzJTtwb3NpdGlv\nbjpyZWxhdGl2ZX0uZWwtY29sLXhsLTN7ZmxleDowIDAgMTIuNSU7bWF4LXdpZHRoOjEyLjUlfS5l\nbC1jb2wteGwtMywuZWwtY29sLXhsLTMuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29s\nLXhsLW9mZnNldC0ze21hcmdpbi1sZWZ0OjEyLjUlfS5lbC1jb2wteGwtcHVsbC0ze3Bvc2l0aW9u\nOnJlbGF0aXZlO3JpZ2h0OjEyLjUlfS5lbC1jb2wteGwtcHVzaC0ze2xlZnQ6MTIuNSU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC14bC00e2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0\naDoxNi42NjY2NjY2NjY3JX0uZWwtY29sLXhsLTQsLmVsLWNvbC14bC00LmlzLWd1dHRlcmVke2Rp\nc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1vZmZzZXQtNHttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3\nJX0uZWwtY29sLXhsLXB1bGwtNHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDoxNi42NjY2NjY2NjY3\nJX0uZWwtY29sLXhsLXB1c2gtNHtsZWZ0OjE2LjY2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZl\nfS5lbC1jb2wteGwtNXtmbGV4OjAgMCAyMC44MzMzMzMzMzMzJTttYXgtd2lkdGg6MjAuODMzMzMz\nMzMzMyV9LmVsLWNvbC14bC01LC5lbC1jb2wteGwtNS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2Nr\nfS5lbC1jb2wteGwtb2Zmc2V0LTV7bWFyZ2luLWxlZnQ6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC14\nbC1wdWxsLTV7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MjAuODMzMzMzMzMzMyV9LmVsLWNvbC14\nbC1wdXNoLTV7bGVmdDoyMC44MzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhs\nLTZ7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmVsLWNvbC14bC02LC5lbC1jb2wteGwtNi5p\ncy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteGwtb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6\nMjUlfS5lbC1jb2wteGwtcHVsbC02e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjI1JX0uZWwtY29s\nLXhsLXB1c2gtNntsZWZ0OjI1JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhsLTd7ZmxleDow\nIDAgMjkuMTY2NjY2NjY2NyU7bWF4LXdpZHRoOjI5LjE2NjY2NjY2NjclfS5lbC1jb2wteGwtNywu\nZWwtY29sLXhsLTcuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhsLW9mZnNldC03\ne21hcmdpbi1sZWZ0OjI5LjE2NjY2NjY2NjclfS5lbC1jb2wteGwtcHVsbC03e3Bvc2l0aW9uOnJl\nbGF0aXZlO3JpZ2h0OjI5LjE2NjY2NjY2NjclfS5lbC1jb2wteGwtcHVzaC03e2xlZnQ6MjkuMTY2\nNjY2NjY2NyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14bC04e2ZsZXg6MCAwIDMzLjMzMzMz\nMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uZWwtY29sLXhsLTgsLmVsLWNvbC14bC04\nLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1vZmZzZXQtOHttYXJnaW4tbGVm\ndDozMy4zMzMzMzMzMzMzJX0uZWwtY29sLXhsLXB1bGwtOHtwb3NpdGlvbjpyZWxhdGl2ZTtyaWdo\ndDozMy4zMzMzMzMzMzMzJX0uZWwtY29sLXhsLXB1c2gtOHtsZWZ0OjMzLjMzMzMzMzMzMzMlO3Bv\nc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteGwtOXtmbGV4OjAgMCAzNy41JTttYXgtd2lkdGg6Mzcu\nNSV9LmVsLWNvbC14bC05LC5lbC1jb2wteGwtOS5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5l\nbC1jb2wteGwtb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6MzcuNSV9LmVsLWNvbC14bC1wdWxsLTl7cG9z\naXRpb246cmVsYXRpdmU7cmlnaHQ6MzcuNSV9LmVsLWNvbC14bC1wdXNoLTl7bGVmdDozNy41JTtw\nb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhsLTEwe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNDEu\nNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5lbC1jb2wteGwtMTAuaXMtZ3V0\ndGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhsLW9mZnNldC0xMHttYXJnaW4tbGVmdDo0MS42\nNjY2NjY2NjY3JX0uZWwtY29sLXhsLXB1bGwtMTB7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NDEu\nNjY2NjY2NjY2NyV9LmVsLWNvbC14bC1wdXNoLTEwe2xlZnQ6NDEuNjY2NjY2NjY2NyU7cG9zaXRp\nb246cmVsYXRpdmV9LmVsLWNvbC14bC0xMXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDQ1LjgzMzMz\nMzMzMzMlO21heC13aWR0aDo0NS44MzMzMzMzMzMzJX0uZWwtY29sLXhsLTExLmlzLWd1dHRlcmVk\ne2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1vZmZzZXQtMTF7bWFyZ2luLWxlZnQ6NDUuODMzMzMz\nMzMzMyV9LmVsLWNvbC14bC1wdWxsLTExe3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjQ1LjgzMzMz\nMzMzMzMlfS5lbC1jb2wteGwtcHVzaC0xMXtsZWZ0OjQ1LjgzMzMzMzMzMzMlO3Bvc2l0aW9uOnJl\nbGF0aXZlfS5lbC1jb2wteGwtMTJ7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA1MCU7bWF4LXdpZHRo\nOjUwJX0uZWwtY29sLXhsLTEyLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1v\nZmZzZXQtMTJ7bWFyZ2luLWxlZnQ6NTAlfS5lbC1jb2wteGwtcHVsbC0xMntwb3NpdGlvbjpyZWxh\ndGl2ZTtyaWdodDo1MCV9LmVsLWNvbC14bC1wdXNoLTEye2xlZnQ6NTAlO3Bvc2l0aW9uOnJlbGF0\naXZlfS5lbC1jb2wteGwtMTN7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA1NC4xNjY2NjY2NjY3JTtt\nYXgtd2lkdGg6NTQuMTY2NjY2NjY2NyV9LmVsLWNvbC14bC0xMy5pcy1ndXR0ZXJlZHtkaXNwbGF5\nOmJsb2NrfS5lbC1jb2wteGwtb2Zmc2V0LTEze21hcmdpbi1sZWZ0OjU0LjE2NjY2NjY2NjclfS5l\nbC1jb2wteGwtcHVsbC0xM3twb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo1NC4xNjY2NjY2NjY3JX0u\nZWwtY29sLXhsLXB1c2gtMTN7bGVmdDo1NC4xNjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0u\nZWwtY29sLXhsLTE0e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdp\nZHRoOjU4LjMzMzMzMzMzMzMlfS5lbC1jb2wteGwtMTQuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9j\na30uZWwtY29sLXhsLW9mZnNldC0xNHttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uZWwtY29s\nLXhsLXB1bGwtMTR7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NTguMzMzMzMzMzMzMyV9LmVsLWNv\nbC14bC1wdXNoLTE0e2xlZnQ6NTguMzMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNv\nbC14bC0xNXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDYyLjUlO21heC13aWR0aDo2Mi41JX0uZWwt\nY29sLXhsLTE1LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1vZmZzZXQtMTV7\nbWFyZ2luLWxlZnQ6NjIuNSV9LmVsLWNvbC14bC1wdWxsLTE1e3Bvc2l0aW9uOnJlbGF0aXZlO3Jp\nZ2h0OjYyLjUlfS5lbC1jb2wteGwtcHVzaC0xNXtsZWZ0OjYyLjUlO3Bvc2l0aW9uOnJlbGF0aXZl\nfS5lbC1jb2wteGwtMTZ7ZGlzcGxheTpibG9jaztmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgt\nd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmVsLWNvbC14bC0xNi5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJs\nb2NrfS5lbC1jb2wteGwtb2Zmc2V0LTE2e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5lbC1j\nb2wteGwtcHVsbC0xNntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDo2Ni42NjY2NjY2NjY3JX0uZWwt\nY29sLXhsLXB1c2gtMTZ7bGVmdDo2Ni42NjY2NjY2NjY3JTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwt\nY29sLXhsLTE3e2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgNzAuODMzMzMzMzMzMyU7bWF4LXdpZHRo\nOjcwLjgzMzMzMzMzMzMlfS5lbC1jb2wteGwtMTcuaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30u\nZWwtY29sLXhsLW9mZnNldC0xN3ttYXJnaW4tbGVmdDo3MC44MzMzMzMzMzMzJX0uZWwtY29sLXhs\nLXB1bGwtMTd7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6NzAuODMzMzMzMzMzMyV9LmVsLWNvbC14\nbC1wdXNoLTE3e2xlZnQ6NzAuODMzMzMzMzMzMyU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14\nbC0xOHtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5lbC1jb2wteGwt\nMTguaXMtZ3V0dGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhsLW9mZnNldC0xOHttYXJnaW4t\nbGVmdDo3NSV9LmVsLWNvbC14bC1wdWxsLTE4e3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojc1JX0u\nZWwtY29sLXhsLXB1c2gtMTh7bGVmdDo3NSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14bC0x\nOXtkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDc5LjE2NjY2NjY2NjclO21heC13aWR0aDo3OS4xNjY2\nNjY2NjY3JX0uZWwtY29sLXhsLTE5LmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14\nbC1vZmZzZXQtMTl7bWFyZ2luLWxlZnQ6NzkuMTY2NjY2NjY2NyV9LmVsLWNvbC14bC1wdWxsLTE5\ne3Bvc2l0aW9uOnJlbGF0aXZlO3JpZ2h0Ojc5LjE2NjY2NjY2NjclfS5lbC1jb2wteGwtcHVzaC0x\nOXtsZWZ0Ojc5LjE2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteGwtMjB7ZGlz\ncGxheTpibG9jaztmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMz\nMyV9LmVsLWNvbC14bC0yMC5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteGwtb2Zm\nc2V0LTIwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5lbC1jb2wteGwtcHVsbC0yMHtwb3Np\ndGlvbjpyZWxhdGl2ZTtyaWdodDo4My4zMzMzMzMzMzMzJX0uZWwtY29sLXhsLXB1c2gtMjB7bGVm\ndDo4My4zMzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhsLTIxe2Rpc3BsYXk6\nYmxvY2s7ZmxleDowIDAgODcuNSU7bWF4LXdpZHRoOjg3LjUlfS5lbC1jb2wteGwtMjEuaXMtZ3V0\ndGVyZWR7ZGlzcGxheTpibG9ja30uZWwtY29sLXhsLW9mZnNldC0yMXttYXJnaW4tbGVmdDo4Ny41\nJX0uZWwtY29sLXhsLXB1bGwtMjF7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6ODcuNSV9LmVsLWNv\nbC14bC1wdXNoLTIxe2xlZnQ6ODcuNSU7cG9zaXRpb246cmVsYXRpdmV9LmVsLWNvbC14bC0yMntk\naXNwbGF5OmJsb2NrO2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2\nNjY3JX0uZWwtY29sLXhsLTIyLmlzLWd1dHRlcmVke2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1v\nZmZzZXQtMjJ7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9LmVsLWNvbC14bC1wdWxsLTIye3Bv\nc2l0aW9uOnJlbGF0aXZlO3JpZ2h0OjkxLjY2NjY2NjY2NjclfS5lbC1jb2wteGwtcHVzaC0yMnts\nZWZ0OjkxLjY2NjY2NjY2NjclO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC1jb2wteGwtMjN7ZGlzcGxh\neTpibG9jaztmbGV4OjAgMCA5NS44MzMzMzMzMzMzJTttYXgtd2lkdGg6OTUuODMzMzMzMzMzMyV9\nLmVsLWNvbC14bC0yMy5pcy1ndXR0ZXJlZHtkaXNwbGF5OmJsb2NrfS5lbC1jb2wteGwtb2Zmc2V0\nLTIze21hcmdpbi1sZWZ0Ojk1LjgzMzMzMzMzMzMlfS5lbC1jb2wteGwtcHVsbC0yM3twb3NpdGlv\nbjpyZWxhdGl2ZTtyaWdodDo5NS44MzMzMzMzMzMzJX0uZWwtY29sLXhsLXB1c2gtMjN7bGVmdDo5\nNS44MzMzMzMzMzMzJTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtY29sLXhsLTI0e2Rpc3BsYXk6Ymxv\nY2s7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uZWwtY29sLXhsLTI0LmlzLWd1dHRlcmVk\ne2Rpc3BsYXk6YmxvY2t9LmVsLWNvbC14bC1vZmZzZXQtMjR7bWFyZ2luLWxlZnQ6MTAwJX0uZWwt\nY29sLXhsLXB1bGwtMjR7cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6MTAwJX0uZWwtY29sLXhsLXB1\nc2gtMjR7bGVmdDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfX0uZWwtYnV0dG9uey0tZWwtYnV0dG9u\nLWZvbnQtd2VpZ2h0OnZhcigtLWVsLWZvbnQtd2VpZ2h0LXByaW1hcnkpOy0tZWwtYnV0dG9uLWJv\ncmRlci1jb2xvcjp2YXIoLS1lbC1ib3JkZXItY29sb3IpOy0tZWwtYnV0dG9uLWJnLWNvbG9yOnZh\ncigtLWVsLWZpbGwtY29sb3ItYmxhbmspOy0tZWwtYnV0dG9uLXRleHQtY29sb3I6dmFyKC0tZWwt\ndGV4dC1jb2xvci1yZWd1bGFyKTstLWVsLWJ1dHRvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigt\nLWVsLWRpc2FibGVkLXRleHQtY29sb3IpOy0tZWwtYnV0dG9uLWRpc2FibGVkLWJnLWNvbG9yOnZh\ncigtLWVsLWZpbGwtY29sb3ItYmxhbmspOy0tZWwtYnV0dG9uLWRpc2FibGVkLWJvcmRlci1jb2xv\ncjp2YXIoLS1lbC1ib3JkZXItY29sb3ItbGlnaHQpOy0tZWwtYnV0dG9uLWRpdmlkZS1ib3JkZXIt\nY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSk7LS1lbC1idXR0b24taG92ZXItdGV4dC1jb2xvcjp2\nYXIoLS1lbC1jb2xvci1wcmltYXJ5KTstLWVsLWJ1dHRvbi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1l\nbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTkpOy0tZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjp2\nYXIoLS1lbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTcpOy0tZWwtYnV0dG9uLWFjdGl2ZS10ZXh0LWNv\nbG9yOnZhcigtLWVsLWJ1dHRvbi1ob3Zlci10ZXh0LWNvbG9yKTstLWVsLWJ1dHRvbi1hY3RpdmUt\nYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnkpOy0tZWwtYnV0dG9uLWFjdGl2ZS1i\nZy1jb2xvcjp2YXIoLS1lbC1idXR0b24taG92ZXItYmctY29sb3IpOy0tZWwtYnV0dG9uLW91dGxp\nbmUtY29sb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeS1saWdodC01KTstLWVsLWJ1dHRvbi1ob3Zl\nci1saW5rLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3ItaW5mbyk7LS1lbC1idXR0b24tYWN0aXZl\nLWNvbG9yOnZhcigtLWVsLXRleHQtY29sb3ItcHJpbWFyeSk7YWxpZ24taXRlbXM6Y2VudGVyOy13\nZWJraXQtYXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwtYnV0dG9uLWJn\nLWNvbG9yKTtib3JkZXI6dmFyKC0tZWwtYm9yZGVyKTtib3JkZXItY29sb3I6dmFyKC0tZWwtYnV0\ndG9uLWJvcmRlci1jb2xvcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1lbC1ib3JkZXItcmFkaXVzLWJh\nc2UpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS1lbC1idXR0b24tdGV4dC1jb2xv\ncik7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDtmb250LXNpemU6dmFyKC0tZWwt\nZm9udC1zaXplLWJhc2UpO2ZvbnQtd2VpZ2h0OnZhcigtLWVsLWJ1dHRvbi1mb250LXdlaWdodCk7\naGVpZ2h0OjMycHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoxO291dGxpbmU6\nbm9uZTtwYWRkaW5nOjhweCAxNXB4O3RleHQtYWxpZ246Y2VudGVyO3RyYW5zaXRpb246LjFzOy13\nZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2Vs\nZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2hpdGUtc3Bh\nY2U6bm93cmFwfS5lbC1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC1idXR0\nb24taG92ZXItYmctY29sb3IpO2JvcmRlci1jb2xvcjp2YXIoLS1lbC1idXR0b24taG92ZXItYm9y\nZGVyLWNvbG9yKTtjb2xvcjp2YXIoLS1lbC1idXR0b24taG92ZXItdGV4dC1jb2xvcik7b3V0bGlu\nZTpub25lfS5lbC1idXR0b246YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwtYnV0dG9u\nLWFjdGl2ZS1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWVsLWJ1dHRvbi1hY3RpdmUtYm9y\nZGVyLWNvbG9yKTtjb2xvcjp2YXIoLS1lbC1idXR0b24tYWN0aXZlLXRleHQtY29sb3IpO291dGxp\nbmU6bm9uZX0uZWwtYnV0dG9uOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0t\nZWwtYnV0dG9uLW91dGxpbmUtY29sb3IpO291dGxpbmUtb2Zmc2V0OjFweDt0cmFuc2l0aW9uOm91\ndGxpbmUtb2Zmc2V0IDBzLG91dGxpbmUgMHN9LmVsLWJ1dHRvbj5zcGFue2FsaWduLWl0ZW1zOmNl\nbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4fS5lbC1idXR0b24rLmVsLWJ1dHRvbnttYXJnaW4tbGVm\ndDoxMnB4fS5lbC1idXR0b24uaXMtcm91bmR7cGFkZGluZzo4cHggMTVweH0uZWwtYnV0dG9uOjot\nbW96LWZvY3VzLWlubmVye2JvcmRlcjowfS5lbC1idXR0b24gW2NsYXNzKj1lbC1pY29uXStzcGFu\ne21hcmdpbi1sZWZ0OjZweH0uZWwtYnV0dG9uIFtjbGFzcyo9ZWwtaWNvbl0gc3Zne3ZlcnRpY2Fs\nLWFsaWduOmJvdHRvbX0uZWwtYnV0dG9uLmlzLXBsYWluey0tZWwtYnV0dG9uLWhvdmVyLXRleHQt\nY29sb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeSk7LS1lbC1idXR0b24taG92ZXItYmctY29sb3I6\ndmFyKC0tZWwtZmlsbC1jb2xvci1ibGFuayk7LS1lbC1idXR0b24taG92ZXItYm9yZGVyLWNvbG9y\nOnZhcigtLWVsLWNvbG9yLXByaW1hcnkpfS5lbC1idXR0b24uaXMtYWN0aXZle2JhY2tncm91bmQt\nY29sb3I6dmFyKC0tZWwtYnV0dG9uLWFjdGl2ZS1iZy1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigt\nLWVsLWJ1dHRvbi1hY3RpdmUtYm9yZGVyLWNvbG9yKTtjb2xvcjp2YXIoLS1lbC1idXR0b24tYWN0\naXZlLXRleHQtY29sb3IpO291dGxpbmU6bm9uZX0uZWwtYnV0dG9uLmlzLWRpc2FibGVkLC5lbC1i\ndXR0b24uaXMtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC1idXR0b24t\nZGlzYWJsZWQtYmctY29sb3IpO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6dmFy\nKC0tZWwtYnV0dG9uLWRpc2FibGVkLWJvcmRlci1jb2xvcik7Y29sb3I6dmFyKC0tZWwtYnV0dG9u\nLWRpc2FibGVkLXRleHQtY29sb3IpO2N1cnNvcjpub3QtYWxsb3dlZH0uZWwtYnV0dG9uLmlzLWxv\nYWRpbmd7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtYnV0dG9uLmlz\nLWxvYWRpbmc6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwtbWFzay1jb2xvci1leHRy\nYS1saWdodCk7Ym9yZGVyLXJhZGl1czppbmhlcml0O2JvdHRvbTotMXB4O2NvbnRlbnQ6XCJcIjts\nZWZ0Oi0xcHg7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMXB4\nO3RvcDotMXB4O3otaW5kZXg6MX0uZWwtYnV0dG9uLmlzLXJvdW5ke2JvcmRlci1yYWRpdXM6dmFy\nKC0tZWwtYm9yZGVyLXJhZGl1cy1yb3VuZCl9LmVsLWJ1dHRvbi5pcy1jaXJjbGV7Ym9yZGVyLXJh\nZGl1czo1MCU7cGFkZGluZzo4cHg7d2lkdGg6MzJweH0uZWwtYnV0dG9uLmlzLXRleHR7YmFja2dy\nb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MCBzb2xpZCB0cmFuc3BhcmVudDtjb2xvcjp2\nYXIoLS1lbC1idXR0b24tdGV4dC1jb2xvcil9LmVsLWJ1dHRvbi5pcy10ZXh0LmlzLWRpc2FibGVk\ne2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50O2NvbG9yOnZhcigtLWVsLWJ1\ndHRvbi1kaXNhYmxlZC10ZXh0LWNvbG9yKX0uZWwtYnV0dG9uLmlzLXRleHQ6bm90KC5pcy1kaXNh\nYmxlZCk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC1maWxsLWNvbG9yLWxpZ2h0KX0u\nZWwtYnV0dG9uLmlzLXRleHQ6bm90KC5pcy1kaXNhYmxlZCk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5l\nOjJweCBzb2xpZCB2YXIoLS1lbC1idXR0b24tb3V0bGluZS1jb2xvcik7b3V0bGluZS1vZmZzZXQ6\nMXB4O3RyYW5zaXRpb246b3V0bGluZS1vZmZzZXQgMHMsb3V0bGluZSAwc30uZWwtYnV0dG9uLmlz\nLXRleHQ6bm90KC5pcy1kaXNhYmxlZCk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwt\nZmlsbC1jb2xvcil9LmVsLWJ1dHRvbi5pcy10ZXh0Om5vdCguaXMtZGlzYWJsZWQpLmlzLWhhcy1i\nZ3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVsLWZpbGwtY29sb3ItbGlnaHQpfS5lbC1idXR0b24u\naXMtdGV4dDpub3QoLmlzLWRpc2FibGVkKS5pcy1oYXMtYmc6aG92ZXJ7YmFja2dyb3VuZC1jb2xv\ncjp2YXIoLS1lbC1maWxsLWNvbG9yKX0uZWwtYnV0dG9uLmlzLXRleHQ6bm90KC5pcy1kaXNhYmxl\nZCkuaXMtaGFzLWJnOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVsLWZpbGwtY29sb3It\nZGFyayl9LmVsLWJ1dHRvbl9fdGV4dC0tZXhwYW5ke2xldHRlci1zcGFjaW5nOi4zZW07bWFyZ2lu\nLXJpZ2h0Oi0uM2VtfS5lbC1idXR0b24uaXMtbGlua3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2Jv\ncmRlci1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1lbC1idXR0b24tdGV4dC1jb2xvcik7\naGVpZ2h0OmF1dG87cGFkZGluZzoycHh9LmVsLWJ1dHRvbi5pcy1saW5rOmhvdmVye2NvbG9yOnZh\ncigtLWVsLWJ1dHRvbi1ob3Zlci1saW5rLXRleHQtY29sb3IpfS5lbC1idXR0b24uaXMtbGluay5p\ncy1kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50IWltcG9ydGFudDtib3JkZXIt\nY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50O2NvbG9yOnZhcigtLWVsLWJ1dHRvbi1kaXNhYmxl\nZC10ZXh0LWNvbG9yKX0uZWwtYnV0dG9uLmlzLWxpbms6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXJ7\nYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmVs\nLWJ1dHRvbi5pcy1saW5rOm5vdCguaXMtZGlzYWJsZWQpOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9y\nOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1lbC1idXR0\nb24tYWN0aXZlLWNvbG9yKX0uZWwtYnV0dG9uLS10ZXh0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7\nYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnkpO3Bh\nZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uZWwtYnV0dG9uLS10ZXh0LmlzLWRpc2FibGVk\ne2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50O2JvcmRlci1jb2xvcjp0cmFu\nc3BhcmVudCFpbXBvcnRhbnQ7Y29sb3I6dmFyKC0tZWwtYnV0dG9uLWRpc2FibGVkLXRleHQtY29s\nb3IpfS5lbC1idXR0b24tLXRleHQ6bm90KC5pcy1kaXNhYmxlZCk6aG92ZXJ7YmFja2dyb3VuZC1j\nb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tZWwt\nY29sb3ItcHJpbWFyeS1saWdodC0zKX0uZWwtYnV0dG9uLS10ZXh0Om5vdCguaXMtZGlzYWJsZWQp\nOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp0cmFuc3Bh\ncmVudDtjb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5LWRhcmstMil9LmVsLWJ1dHRvbl9fbGlu\nay0tZXhwYW5ke2xldHRlci1zcGFjaW5nOi4zZW07bWFyZ2luLXJpZ2h0Oi0uM2VtfS5lbC1idXR0\nb24tLXByaW1hcnl7LS1lbC1idXR0b24tdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13aGl0ZSk7\nLS1lbC1idXR0b24tYmctY29sb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeSk7LS1lbC1idXR0b24t\nYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnkpOy0tZWwtYnV0dG9uLW91dGxpbmUt\nY29sb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeS1saWdodC01KTstLWVsLWJ1dHRvbi1hY3RpdmUt\nY29sb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeS1kYXJrLTIpOy0tZWwtYnV0dG9uLWhvdmVyLXRl\neHQtY29sb3I6dmFyKC0tZWwtY29sb3Itd2hpdGUpOy0tZWwtYnV0dG9uLWhvdmVyLWxpbmstdGV4\ndC1jb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTUpOy0tZWwtYnV0dG9uLWhvdmVy\nLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnktbGlnaHQtMyk7LS1lbC1idXR0b24taG92\nZXItYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnktbGlnaHQtMyk7LS1lbC1idXR0\nb24tYWN0aXZlLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnktZGFyay0yKTstLWVsLWJ1\ndHRvbi1hY3RpdmUtYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnktZGFyay0yKTst\nLWVsLWJ1dHRvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdoaXRlKTstLWVs\nLWJ1dHRvbi1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTUp\nOy0tZWwtYnV0dG9uLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5\nLWxpZ2h0LTUpfS5lbC1idXR0b24tLXByaW1hcnkuaXMtbGluaywuZWwtYnV0dG9uLS1wcmltYXJ5\nLmlzLXBsYWluLC5lbC1idXR0b24tLXByaW1hcnkuaXMtdGV4dHstLWVsLWJ1dHRvbi10ZXh0LWNv\nbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnkpOy0tZWwtYnV0dG9uLWJnLWNvbG9yOnZhcigtLWVs\nLWNvbG9yLXByaW1hcnktbGlnaHQtOSk7LS1lbC1idXR0b24tYm9yZGVyLWNvbG9yOnZhcigtLWVs\nLWNvbG9yLXByaW1hcnktbGlnaHQtNSk7LS1lbC1idXR0b24taG92ZXItdGV4dC1jb2xvcjp2YXIo\nLS1lbC1jb2xvci13aGl0ZSk7LS1lbC1idXR0b24taG92ZXItYmctY29sb3I6dmFyKC0tZWwtY29s\nb3ItcHJpbWFyeSk7LS1lbC1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9y\nLXByaW1hcnkpOy0tZWwtYnV0dG9uLWFjdGl2ZS10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdo\naXRlKX0uZWwtYnV0dG9uLS1wcmltYXJ5LmlzLWxpbmsuaXMtZGlzYWJsZWQsLmVsLWJ1dHRvbi0t\ncHJpbWFyeS5pcy1saW5rLmlzLWRpc2FibGVkOmFjdGl2ZSwuZWwtYnV0dG9uLS1wcmltYXJ5Lmlz\nLWxpbmsuaXMtZGlzYWJsZWQ6Zm9jdXMsLmVsLWJ1dHRvbi0tcHJpbWFyeS5pcy1saW5rLmlzLWRp\nc2FibGVkOmhvdmVyLC5lbC1idXR0b24tLXByaW1hcnkuaXMtcGxhaW4uaXMtZGlzYWJsZWQsLmVs\nLWJ1dHRvbi0tcHJpbWFyeS5pcy1wbGFpbi5pcy1kaXNhYmxlZDphY3RpdmUsLmVsLWJ1dHRvbi0t\ncHJpbWFyeS5pcy1wbGFpbi5pcy1kaXNhYmxlZDpmb2N1cywuZWwtYnV0dG9uLS1wcmltYXJ5Lmlz\nLXBsYWluLmlzLWRpc2FibGVkOmhvdmVyLC5lbC1idXR0b24tLXByaW1hcnkuaXMtdGV4dC5pcy1k\naXNhYmxlZCwuZWwtYnV0dG9uLS1wcmltYXJ5LmlzLXRleHQuaXMtZGlzYWJsZWQ6YWN0aXZlLC5l\nbC1idXR0b24tLXByaW1hcnkuaXMtdGV4dC5pcy1kaXNhYmxlZDpmb2N1cywuZWwtYnV0dG9uLS1w\ncmltYXJ5LmlzLXRleHQuaXMtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1l\nbC1jb2xvci1wcmltYXJ5LWxpZ2h0LTkpO2JvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1wcmlt\nYXJ5LWxpZ2h0LTgpO2NvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnktbGlnaHQtNSl9LmVsLWJ1\ndHRvbi0tc3VjY2Vzc3stLWVsLWJ1dHRvbi10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdoaXRl\nKTstLWVsLWJ1dHRvbi1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci1zdWNjZXNzKTstLWVsLWJ1dHRv\nbi1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcyk7LS1lbC1idXR0b24tb3V0bGlu\nZS1jb2xvcjp2YXIoLS1lbC1jb2xvci1zdWNjZXNzLWxpZ2h0LTUpOy0tZWwtYnV0dG9uLWFjdGl2\nZS1jb2xvcjp2YXIoLS1lbC1jb2xvci1zdWNjZXNzLWRhcmstMik7LS1lbC1idXR0b24taG92ZXIt\ndGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13aGl0ZSk7LS1lbC1idXR0b24taG92ZXItbGluay10\nZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXN1Y2Nlc3MtbGlnaHQtNSk7LS1lbC1idXR0b24taG92\nZXItYmctY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcy1saWdodC0zKTstLWVsLWJ1dHRvbi1o\nb3Zlci1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcy1saWdodC0zKTstLWVsLWJ1\ndHRvbi1hY3RpdmUtYmctY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcy1kYXJrLTIpOy0tZWwt\nYnV0dG9uLWFjdGl2ZS1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcy1kYXJrLTIp\nOy0tZWwtYnV0dG9uLWRpc2FibGVkLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itd2hpdGUpOy0t\nZWwtYnV0dG9uLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLXN1Y2Nlc3MtbGlnaHQt\nNSk7LS1lbC1idXR0b24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLXN1Y2Nl\nc3MtbGlnaHQtNSl9LmVsLWJ1dHRvbi0tc3VjY2Vzcy5pcy1saW5rLC5lbC1idXR0b24tLXN1Y2Nl\nc3MuaXMtcGxhaW4sLmVsLWJ1dHRvbi0tc3VjY2Vzcy5pcy10ZXh0ey0tZWwtYnV0dG9uLXRleHQt\nY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcyk7LS1lbC1idXR0b24tYmctY29sb3I6dmFyKC0t\nZWwtY29sb3Itc3VjY2Vzcy1saWdodC05KTstLWVsLWJ1dHRvbi1ib3JkZXItY29sb3I6dmFyKC0t\nZWwtY29sb3Itc3VjY2Vzcy1saWdodC01KTstLWVsLWJ1dHRvbi1ob3Zlci10ZXh0LWNvbG9yOnZh\ncigtLWVsLWNvbG9yLXdoaXRlKTstLWVsLWJ1dHRvbi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1lbC1j\nb2xvci1zdWNjZXNzKTstLWVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29s\nb3Itc3VjY2Vzcyk7LS1lbC1idXR0b24tYWN0aXZlLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3It\nd2hpdGUpfS5lbC1idXR0b24tLXN1Y2Nlc3MuaXMtbGluay5pcy1kaXNhYmxlZCwuZWwtYnV0dG9u\nLS1zdWNjZXNzLmlzLWxpbmsuaXMtZGlzYWJsZWQ6YWN0aXZlLC5lbC1idXR0b24tLXN1Y2Nlc3Mu\naXMtbGluay5pcy1kaXNhYmxlZDpmb2N1cywuZWwtYnV0dG9uLS1zdWNjZXNzLmlzLWxpbmsuaXMt\nZGlzYWJsZWQ6aG92ZXIsLmVsLWJ1dHRvbi0tc3VjY2Vzcy5pcy1wbGFpbi5pcy1kaXNhYmxlZCwu\nZWwtYnV0dG9uLS1zdWNjZXNzLmlzLXBsYWluLmlzLWRpc2FibGVkOmFjdGl2ZSwuZWwtYnV0dG9u\nLS1zdWNjZXNzLmlzLXBsYWluLmlzLWRpc2FibGVkOmZvY3VzLC5lbC1idXR0b24tLXN1Y2Nlc3Mu\naXMtcGxhaW4uaXMtZGlzYWJsZWQ6aG92ZXIsLmVsLWJ1dHRvbi0tc3VjY2Vzcy5pcy10ZXh0Lmlz\nLWRpc2FibGVkLC5lbC1idXR0b24tLXN1Y2Nlc3MuaXMtdGV4dC5pcy1kaXNhYmxlZDphY3RpdmUs\nLmVsLWJ1dHRvbi0tc3VjY2Vzcy5pcy10ZXh0LmlzLWRpc2FibGVkOmZvY3VzLC5lbC1idXR0b24t\nLXN1Y2Nlc3MuaXMtdGV4dC5pcy1kaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigt\nLWVsLWNvbG9yLXN1Y2Nlc3MtbGlnaHQtOSk7Ym9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLXN1\nY2Nlc3MtbGlnaHQtOCk7Y29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcy1saWdodC01KX0uZWwt\nYnV0dG9uLS13YXJuaW5ney0tZWwtYnV0dG9uLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itd2hp\ndGUpOy0tZWwtYnV0dG9uLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLXdhcm5pbmcpOy0tZWwtYnV0\ndG9uLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nKTstLWVsLWJ1dHRvbi1vdXRs\naW5lLWNvbG9yOnZhcigtLWVsLWNvbG9yLXdhcm5pbmctbGlnaHQtNSk7LS1lbC1idXR0b24tYWN0\naXZlLWNvbG9yOnZhcigtLWVsLWNvbG9yLXdhcm5pbmctZGFyay0yKTstLWVsLWJ1dHRvbi1ob3Zl\nci10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdoaXRlKTstLWVsLWJ1dHRvbi1ob3Zlci1saW5r\nLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itd2FybmluZy1saWdodC01KTstLWVsLWJ1dHRvbi1o\nb3Zlci1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0LTMpOy0tZWwtYnV0dG9u\nLWhvdmVyLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0LTMpOy0tZWwt\nYnV0dG9uLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nLWRhcmstMik7LS1l\nbC1idXR0b24tYWN0aXZlLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nLWRhcmst\nMik7LS1lbC1idXR0b24tZGlzYWJsZWQtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13aGl0ZSk7\nLS1lbC1idXR0b24tZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tZWwtY29sb3Itd2FybmluZy1saWdo\ndC01KTstLWVsLWJ1dHRvbi1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3Itd2Fy\nbmluZy1saWdodC01KX0uZWwtYnV0dG9uLS13YXJuaW5nLmlzLWxpbmssLmVsLWJ1dHRvbi0td2Fy\nbmluZy5pcy1wbGFpbiwuZWwtYnV0dG9uLS13YXJuaW5nLmlzLXRleHR7LS1lbC1idXR0b24tdGV4\ndC1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nKTstLWVsLWJ1dHRvbi1iZy1jb2xvcjp2YXIo\nLS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0LTkpOy0tZWwtYnV0dG9uLWJvcmRlci1jb2xvcjp2YXIo\nLS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0LTUpOy0tZWwtYnV0dG9uLWhvdmVyLXRleHQtY29sb3I6\ndmFyKC0tZWwtY29sb3Itd2hpdGUpOy0tZWwtYnV0dG9uLWhvdmVyLWJnLWNvbG9yOnZhcigtLWVs\nLWNvbG9yLXdhcm5pbmcpOy0tZWwtYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1j\nb2xvci13YXJuaW5nKTstLWVsLWJ1dHRvbi1hY3RpdmUtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xv\nci13aGl0ZSl9LmVsLWJ1dHRvbi0td2FybmluZy5pcy1saW5rLmlzLWRpc2FibGVkLC5lbC1idXR0\nb24tLXdhcm5pbmcuaXMtbGluay5pcy1kaXNhYmxlZDphY3RpdmUsLmVsLWJ1dHRvbi0td2Fybmlu\nZy5pcy1saW5rLmlzLWRpc2FibGVkOmZvY3VzLC5lbC1idXR0b24tLXdhcm5pbmcuaXMtbGluay5p\ncy1kaXNhYmxlZDpob3ZlciwuZWwtYnV0dG9uLS13YXJuaW5nLmlzLXBsYWluLmlzLWRpc2FibGVk\nLC5lbC1idXR0b24tLXdhcm5pbmcuaXMtcGxhaW4uaXMtZGlzYWJsZWQ6YWN0aXZlLC5lbC1idXR0\nb24tLXdhcm5pbmcuaXMtcGxhaW4uaXMtZGlzYWJsZWQ6Zm9jdXMsLmVsLWJ1dHRvbi0td2Fybmlu\nZy5pcy1wbGFpbi5pcy1kaXNhYmxlZDpob3ZlciwuZWwtYnV0dG9uLS13YXJuaW5nLmlzLXRleHQu\naXMtZGlzYWJsZWQsLmVsLWJ1dHRvbi0td2FybmluZy5pcy10ZXh0LmlzLWRpc2FibGVkOmFjdGl2\nZSwuZWwtYnV0dG9uLS13YXJuaW5nLmlzLXRleHQuaXMtZGlzYWJsZWQ6Zm9jdXMsLmVsLWJ1dHRv\nbi0td2FybmluZy5pcy10ZXh0LmlzLWRpc2FibGVkOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFy\nKC0tZWwtY29sb3Itd2FybmluZy1saWdodC05KTtib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3It\nd2FybmluZy1saWdodC04KTtjb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0LTUpfS5l\nbC1idXR0b24tLWRhbmdlcnstLWVsLWJ1dHRvbi10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdo\naXRlKTstLWVsLWJ1dHRvbi1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5nZXIpOy0tZWwtYnV0\ndG9uLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5nZXIpOy0tZWwtYnV0dG9uLW91dGxp\nbmUtY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyLWxpZ2h0LTUpOy0tZWwtYnV0dG9uLWFjdGl2\nZS1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5nZXItZGFyay0yKTstLWVsLWJ1dHRvbi1ob3Zlci10\nZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdoaXRlKTstLWVsLWJ1dHRvbi1ob3Zlci1saW5rLXRl\neHQtY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyLWxpZ2h0LTUpOy0tZWwtYnV0dG9uLWhvdmVy\nLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLWRhbmdlci1saWdodC0zKTstLWVsLWJ1dHRvbi1ob3Zl\nci1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyLWxpZ2h0LTMpOy0tZWwtYnV0dG9u\nLWFjdGl2ZS1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5nZXItZGFyay0yKTstLWVsLWJ1dHRv\nbi1hY3RpdmUtYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLWRhbmdlci1kYXJrLTIpOy0tZWwt\nYnV0dG9uLWRpc2FibGVkLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itd2hpdGUpOy0tZWwtYnV0\ndG9uLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLWRhbmdlci1saWdodC01KTstLWVs\nLWJ1dHRvbi1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyLWxpZ2h0\nLTUpfS5lbC1idXR0b24tLWRhbmdlci5pcy1saW5rLC5lbC1idXR0b24tLWRhbmdlci5pcy1wbGFp\nbiwuZWwtYnV0dG9uLS1kYW5nZXIuaXMtdGV4dHstLWVsLWJ1dHRvbi10ZXh0LWNvbG9yOnZhcigt\nLWVsLWNvbG9yLWRhbmdlcik7LS1lbC1idXR0b24tYmctY29sb3I6dmFyKC0tZWwtY29sb3ItZGFu\nZ2VyLWxpZ2h0LTkpOy0tZWwtYnV0dG9uLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5n\nZXItbGlnaHQtNSk7LS1lbC1idXR0b24taG92ZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13\naGl0ZSk7LS1lbC1idXR0b24taG92ZXItYmctY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyKTst\nLWVsLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyKTstLWVs\nLWJ1dHRvbi1hY3RpdmUtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13aGl0ZSl9LmVsLWJ1dHRv\nbi0tZGFuZ2VyLmlzLWxpbmsuaXMtZGlzYWJsZWQsLmVsLWJ1dHRvbi0tZGFuZ2VyLmlzLWxpbmsu\naXMtZGlzYWJsZWQ6YWN0aXZlLC5lbC1idXR0b24tLWRhbmdlci5pcy1saW5rLmlzLWRpc2FibGVk\nOmZvY3VzLC5lbC1idXR0b24tLWRhbmdlci5pcy1saW5rLmlzLWRpc2FibGVkOmhvdmVyLC5lbC1i\ndXR0b24tLWRhbmdlci5pcy1wbGFpbi5pcy1kaXNhYmxlZCwuZWwtYnV0dG9uLS1kYW5nZXIuaXMt\ncGxhaW4uaXMtZGlzYWJsZWQ6YWN0aXZlLC5lbC1idXR0b24tLWRhbmdlci5pcy1wbGFpbi5pcy1k\naXNhYmxlZDpmb2N1cywuZWwtYnV0dG9uLS1kYW5nZXIuaXMtcGxhaW4uaXMtZGlzYWJsZWQ6aG92\nZXIsLmVsLWJ1dHRvbi0tZGFuZ2VyLmlzLXRleHQuaXMtZGlzYWJsZWQsLmVsLWJ1dHRvbi0tZGFu\nZ2VyLmlzLXRleHQuaXMtZGlzYWJsZWQ6YWN0aXZlLC5lbC1idXR0b24tLWRhbmdlci5pcy10ZXh0\nLmlzLWRpc2FibGVkOmZvY3VzLC5lbC1idXR0b24tLWRhbmdlci5pcy10ZXh0LmlzLWRpc2FibGVk\nOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwtY29sb3ItZGFuZ2VyLWxpZ2h0LTkpO2Jv\ncmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5nZXItbGlnaHQtOCk7Y29sb3I6dmFyKC0tZWwt\nY29sb3ItZGFuZ2VyLWxpZ2h0LTUpfS5lbC1idXR0b24tLWluZm97LS1lbC1idXR0b24tdGV4dC1j\nb2xvcjp2YXIoLS1lbC1jb2xvci13aGl0ZSk7LS1lbC1idXR0b24tYmctY29sb3I6dmFyKC0tZWwt\nY29sb3ItaW5mbyk7LS1lbC1idXR0b24tYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8p\nOy0tZWwtYnV0dG9uLW91dGxpbmUtY29sb3I6dmFyKC0tZWwtY29sb3ItaW5mby1saWdodC01KTst\nLWVsLWJ1dHRvbi1hY3RpdmUtY29sb3I6dmFyKC0tZWwtY29sb3ItaW5mby1kYXJrLTIpOy0tZWwt\nYnV0dG9uLWhvdmVyLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itd2hpdGUpOy0tZWwtYnV0dG9u\nLWhvdmVyLWxpbmstdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1pbmZvLWxpZ2h0LTUpOy0tZWwt\nYnV0dG9uLWhvdmVyLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tbGlnaHQtMyk7LS1lbC1i\ndXR0b24taG92ZXItYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tbGlnaHQtMyk7LS1l\nbC1idXR0b24tYWN0aXZlLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tZGFyay0yKTstLWVs\nLWJ1dHRvbi1hY3RpdmUtYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tZGFyay0yKTst\nLWVsLWJ1dHRvbi1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdoaXRlKTstLWVs\nLWJ1dHRvbi1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1lbC1jb2xvci1pbmZvLWxpZ2h0LTUpOy0t\nZWwtYnV0dG9uLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1pbmZvLWxpZ2h0\nLTUpfS5lbC1idXR0b24tLWluZm8uaXMtbGluaywuZWwtYnV0dG9uLS1pbmZvLmlzLXBsYWluLC5l\nbC1idXR0b24tLWluZm8uaXMtdGV4dHstLWVsLWJ1dHRvbi10ZXh0LWNvbG9yOnZhcigtLWVsLWNv\nbG9yLWluZm8pOy0tZWwtYnV0dG9uLWJnLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tbGlnaHQt\nOSk7LS1lbC1idXR0b24tYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tbGlnaHQtNSk7\nLS1lbC1idXR0b24taG92ZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13aGl0ZSk7LS1lbC1i\ndXR0b24taG92ZXItYmctY29sb3I6dmFyKC0tZWwtY29sb3ItaW5mbyk7LS1lbC1idXR0b24taG92\nZXItYm9yZGVyLWNvbG9yOnZhcigtLWVsLWNvbG9yLWluZm8pOy0tZWwtYnV0dG9uLWFjdGl2ZS10\nZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdoaXRlKX0uZWwtYnV0dG9uLS1pbmZvLmlzLWxpbmsu\naXMtZGlzYWJsZWQsLmVsLWJ1dHRvbi0taW5mby5pcy1saW5rLmlzLWRpc2FibGVkOmFjdGl2ZSwu\nZWwtYnV0dG9uLS1pbmZvLmlzLWxpbmsuaXMtZGlzYWJsZWQ6Zm9jdXMsLmVsLWJ1dHRvbi0taW5m\nby5pcy1saW5rLmlzLWRpc2FibGVkOmhvdmVyLC5lbC1idXR0b24tLWluZm8uaXMtcGxhaW4uaXMt\nZGlzYWJsZWQsLmVsLWJ1dHRvbi0taW5mby5pcy1wbGFpbi5pcy1kaXNhYmxlZDphY3RpdmUsLmVs\nLWJ1dHRvbi0taW5mby5pcy1wbGFpbi5pcy1kaXNhYmxlZDpmb2N1cywuZWwtYnV0dG9uLS1pbmZv\nLmlzLXBsYWluLmlzLWRpc2FibGVkOmhvdmVyLC5lbC1idXR0b24tLWluZm8uaXMtdGV4dC5pcy1k\naXNhYmxlZCwuZWwtYnV0dG9uLS1pbmZvLmlzLXRleHQuaXMtZGlzYWJsZWQ6YWN0aXZlLC5lbC1i\ndXR0b24tLWluZm8uaXMtdGV4dC5pcy1kaXNhYmxlZDpmb2N1cywuZWwtYnV0dG9uLS1pbmZvLmlz\nLXRleHQuaXMtZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC1jb2xvci1p\nbmZvLWxpZ2h0LTkpO2JvcmRlci1jb2xvcjp2YXIoLS1lbC1jb2xvci1pbmZvLWxpZ2h0LTgpO2Nv\nbG9yOnZhcigtLWVsLWNvbG9yLWluZm8tbGlnaHQtNSl9LmVsLWJ1dHRvbi0tbGFyZ2V7LS1lbC1i\ndXR0b24tc2l6ZTo0MHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tZWwtYm9yZGVyLXJhZGl1cy1iYXNl\nKTtmb250LXNpemU6dmFyKC0tZWwtZm9udC1zaXplLWJhc2UpO2hlaWdodDp2YXIoLS1lbC1idXR0\nb24tc2l6ZSk7cGFkZGluZzoxMnB4IDE5cHh9LmVsLWJ1dHRvbi0tbGFyZ2UgW2NsYXNzKj1lbC1p\nY29uXStzcGFue21hcmdpbi1sZWZ0OjhweH0uZWwtYnV0dG9uLS1sYXJnZS5pcy1yb3VuZHtwYWRk\naW5nOjEycHggMTlweH0uZWwtYnV0dG9uLS1sYXJnZS5pcy1jaXJjbGV7cGFkZGluZzoxMnB4O3dp\nZHRoOnZhcigtLWVsLWJ1dHRvbi1zaXplKX0uZWwtYnV0dG9uLS1zbWFsbHstLWVsLWJ1dHRvbi1z\naXplOjI0cHg7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLWVsLWJvcmRlci1yYWRpdXMtYmFzZSkg\nLSAxcHgpO2ZvbnQtc2l6ZToxMnB4O2hlaWdodDp2YXIoLS1lbC1idXR0b24tc2l6ZSk7cGFkZGlu\nZzo1cHggMTFweH0uZWwtYnV0dG9uLS1zbWFsbCBbY2xhc3MqPWVsLWljb25dK3NwYW57bWFyZ2lu\nLWxlZnQ6NHB4fS5lbC1idXR0b24tLXNtYWxsLmlzLXJvdW5ke3BhZGRpbmc6NXB4IDExcHh9LmVs\nLWJ1dHRvbi0tc21hbGwuaXMtY2lyY2xle3BhZGRpbmc6NXB4O3dpZHRoOnZhcigtLWVsLWJ1dHRv\nbi1zaXplKX0udGlwdGFwIHAuaXMtZWRpdG9yLWVtcHR5OmZpcnN0LWNoaWxkOmJlZm9yZXtjb250\nZW50OmF0dHIoZGF0YS1wbGFjZWhvbGRlcik7ZmxvYXQ6bGVmdDtjb2xvcjojYWRiNWJkO3BvaW50\nZXItZXZlbnRzOm5vbmU7aGVpZ2h0OjB9I3JlcGx5LWVkaXRvciAudGlwdGFwe3dpZHRoOjEwMCU7\naGVpZ2h0OjEwMCU7b3V0bGluZTowIWltcG9ydGFudDtmb250LXNpemU6LjE2cmVtfS50aXB0YXAt\naW5wdXQtaW1hZ2V7d2lkdGg6LjE4cmVtO2hlaWdodDouMThyZW19I3JlcGx5LWVkaXRvcltkYXRh\nLXYtMzk0ZDhlMDRde292ZXJmbG93OmF1dG87YmFja2dyb3VuZC1jb2xvcjojZTVlNWU1O3BhZGRp\nbmc6LjA2cmVtO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6NXB4fS5pY29uLWFjdGl2ZVtkYXRh\nLXYtNzVkZWNjNGFde2ZpbGw6Izc1NTdmZn0jZnVsbC10b29sYmFyW2RhdGEtdi03NWRlY2M0YV17\ncG9zaXRpb246Zml4ZWQ7Ym90dG9tOjA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmY7ZGlzcGxh\neTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt6LWluZGV4OjEwMDA5OTtmbGV4LWZsb3c6Y29sdW1u\nfSNmdWxsLXRvb2xiYXIgLmZ1bGwtdG9vbGJhci10b3AtcmVwbHktdXNlcltkYXRhLXYtNzVkZWNj\nNGFde292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5v\nd3JhcDtjb2xvcjojYWRiNWJkO3dpZHRoOi13ZWJraXQtZmlsbC1hdmFpbGFibGU7d2lkdGg6LW1v\nei1hdmFpbGFibGU7cGFkZGluZy1sZWZ0Oi4ycmVtO3BhZGRpbmctdG9wOi4wNnJlbX0jZnVsbC10\nb29sYmFyIC5mdWxsLXRvb2xiYXItdG9wLWNvbnRhaW5lcltkYXRhLXYtNzVkZWNjNGFde2Rpc3Bs\nYXk6ZmxleDthbGlnbi1pdGVtczplbmQ7d2lkdGg6LW1vei1hdmFpbGFibGU7d2lkdGg6LXdlYmtp\ndC1maWxsLWF2YWlsYWJsZTtwYWRkaW5nOi4wNnJlbSAuMXJlbTtoZWlnaHQ6LjZyZW19I2Z1bGwt\ndG9vbGJhciAuZnVsbC10b29sYmFyLXRvcC1jb250YWluZXIgLmZ1bGwtdG9vbGJhci10b3AtbGVm\ndC1jb250YWluZXJbZGF0YS12LTc1ZGVjYzRhXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246\nY29sdW1uO2ZsZXg6MTtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjBweCAuMXJlbTtoZWlnaHQ6MTAw\nJX0jZnVsbC10b29sYmFyIC5mdWxsLXRvb2xiYXItdG9wLWNvbnRhaW5lciAuZnVsbC10b29sYmFy\nLXRvcC1yaWdodC1jb250YWluZXJbZGF0YS12LTc1ZGVjYzRhXXtmbGV4OjAgYXV0bztkaXNwbGF5\nOmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNv\nbnRlbnQ6c3BhY2UtYmV0d2VlbjtoZWlnaHQ6MTAwJX0jZnVsbC10b29sYmFyIC5mdWxsLXRvb2xi\nYXItYm90dG9tLWNvbnRhaW5lcltkYXRhLXYtNzVkZWNjNGFde21hcmdpbjouMDZyZW0gMDtwYWRk\naW5nOjBweCAwcHggLjA2cmVtO21hcmdpbi1yaWdodDphdXRvfSNmdWxsLXRvb2xiYXIgLmZ1bGwt\ndG9vbGJhci1ib3R0b20tY29udGFpbmVyIC5mdWxsLXRvb2xiYXItZW1vamktYnRuW2RhdGEtdi03\nNWRlY2M0YV0sI2Z1bGwtdG9vbGJhciAuZnVsbC10b29sYmFyLWJvdHRvbS1jb250YWluZXIgLmZ1\nbGwtdG9vbGJhci1wYW5lbC1hdC1idG5bZGF0YS12LTc1ZGVjYzRhXXttYXJnaW46MCAyMHB4O2Rp\nc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyfSNmdWxs\nLXRvb2xiYXIgLmVtb2ppLXBhbmVsW2RhdGEtdi03NWRlY2M0YV17d2lkdGg6MTAwJTtoZWlnaHQ6\nMzB2aDtiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7b3ZlcmZsb3c6YXV0b30uZW1vamktcGFuZWwt\naHVhamlbZGF0YS12LTc1ZGVjYzRhXXtwYWRkaW5nOi4wM3JlbTtvdmVyZmxvdy15OmF1dG99LmVt\nb2ppLXBhbmVsLWh1YWppIC5lbC1hdmF0YXJbZGF0YS12LTc1ZGVjYzRhXXttYXJnaW46MTZweH0j\nZnVsbC10b29sYmFyW2RhdGEtdi03NWRlY2M0YV06aGFzKC5mdWxsLXRvb2xiYXItdG9wLWNvbnRh\naW5lcltkYXRhLWZ1bGw9dHJ1ZV0pe2hlaWdodDotbW96LWF2YWlsYWJsZTtoZWlnaHQ6MTAwJTto\nZWlnaHQ6LXdlYmtpdC1maWxsLWF2YWlsYWJsZX0jZnVsbC10b29sYmFyOmhhcyguZnVsbC10b29s\nYmFyLXRvcC1jb250YWluZXJbZGF0YS1mdWxsPXRydWVdKSAuZnVsbC10b29sYmFyLXRvcC1jb250\nYWluZXJbZGF0YS12LTc1ZGVjYzRhXSwjZnVsbC10b29sYmFyOmhhcyguZnVsbC10b29sYmFyLXRv\ncC1jb250YWluZXJbZGF0YS1mdWxsPXRydWVdKSAjcmVwbHktZWRpdG9yW2RhdGEtdi03NWRlY2M0\nYV17aGVpZ2h0Oi1tb3otYXZhaWxhYmxlO2hlaWdodDoxMDAlO2hlaWdodDotd2Via2l0LWZpbGwt\nYXZhaWxhYmxlfSNmdWxsLXRvb2xiYXI6aGFzKC5mdWxsLXRvb2xiYXItdG9wLWNvbnRhaW5lcltk\nYXRhLWZ1bGw9dHJ1ZV0pIC5mdWxsLXRvb2xiYXItdG9wLXJlcGx5LXVzZXJbZGF0YS12LTc1ZGVj\nYzRhXSwjZnVsbC10b29sYmFyOmhhcyguZnVsbC10b29sYmFyLXRvcC1jb250YWluZXJbZGF0YS1m\ndWxsPXRydWVdKSAuZnVsbC10b29sYmFyLXRvcC1yaWdodC1jb250YWluZXJbZGF0YS12LTc1ZGVj\nYzRhXXtkaXNwbGF5Om5vbmV9I2Z1bGwtdG9vbGJhcjpoYXMoLmZ1bGwtdG9vbGJhci10b3AtY29u\ndGFpbmVyW2RhdGEtZnVsbD10cnVlXSkgLmZ1bGwtdG9vbGJhci10b3AtY29udGFpbmVyW2RhdGEt\ndi03NWRlY2M0YV17ZmxleC1kaXJlY3Rpb246Y29sdW1ufSNmdWxsLXRvb2xiYXI6aGFzKC5mdWxs\nLXRvb2xiYXItdG9wLWNvbnRhaW5lcltkYXRhLWZ1bGw9dHJ1ZV0pIC5mdWxsLXRvb2xiYXItdG9w\nLWxlZnQtY29udGFpbmVyW2RhdGEtdi03NWRlY2M0YV17d2lkdGg6LXdlYmtpdC1maWxsLWF2YWls\nYWJsZTt3aWR0aDotbW96LWF2YWlsYWJsZX0uZnVsbC10b29sYmFyLXRvcC1uYXYtY29udGFpbmVy\nW2RhdGEtdi03NWRlY2M0YV17ZGlzcGxheTpmbGV4O3dpZHRoOi13ZWJraXQtZmlsbC1hdmFpbGFi\nbGU7d2lkdGg6LW1vei1hdmFpbGFibGU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVu\ndDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6LjE2cmVtfSNmdWxsLXRvb2xiYXIgLmZ1bGwtdG9vbGJh\nci10b3AtY29udGFpbmVye21heC1oZWlnaHQ6Y2FsYygxMDB2aCAtIC4xMnJlbSAtIDQwcHgpfSNm\ndWxsLXRvb2xiYXJbZGF0YS1zaG93LWJvdHRvbS1wYW5lbD10cnVlXSAuZnVsbC10b29sYmFyLXRv\ncC1jb250YWluZXJ7bWF4LWhlaWdodDpjYWxjKDcwdmggLSAuMTJyZW0gLSA0MHB4KX0uZWwtY29u\ndGFpbmVye2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleDoxO2ZsZXgtYmFz\naXM6YXV0bztmbGV4LWRpcmVjdGlvbjpyb3c7bWluLXdpZHRoOjB9LmVsLWNvbnRhaW5lci5pcy12\nZXJ0aWNhbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmVsLWFzaWRle2JveC1zaXppbmc6Ym9yZGVy\nLWJveDtmbGV4LXNocmluazowO292ZXJmbG93OmF1dG87d2lkdGg6dmFyKC0tZWwtYXNpZGUtd2lk\ndGgsMzAwcHgpfS5lbC1mb290ZXJ7LS1lbC1mb290ZXItcGFkZGluZzowIDIwcHg7LS1lbC1mb290\nZXItaGVpZ2h0OjYwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXgtc2hyaW5rOjA7aGVpZ2h0\nOnZhcigtLWVsLWZvb3Rlci1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tZWwtZm9vdGVyLXBhZGRpbmcp\nfS5lbC1oZWFkZXJ7LS1lbC1oZWFkZXItcGFkZGluZzowIDIwcHg7LS1lbC1oZWFkZXItaGVpZ2h0\nOjYwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OnZhcigtLWVs\nLWhlYWRlci1oZWlnaHQpO3BhZGRpbmc6dmFyKC0tZWwtaGVhZGVyLXBhZGRpbmcpfS5lbC1tYWlu\ney0tZWwtbWFpbi1wYWRkaW5nOjIwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6Ymxv\nY2s7ZmxleDoxO2ZsZXgtYmFzaXM6YXV0bztvdmVyZmxvdzphdXRvO3BhZGRpbmc6dmFyKC0tZWwt\nbWFpbi1wYWRkaW5nKX0uZWwtdGFic3stLWVsLXRhYnMtaGVhZGVyLWhlaWdodDo0MHB4fS5lbC10\nYWJzX19oZWFkZXJ7bWFyZ2luOjAgMCAxNXB4O3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZX0u\nZWwtdGFic19fYWN0aXZlLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1h\ncnkpO2JvdHRvbTowO2hlaWdodDoycHg7bGVmdDowO2xpc3Qtc3R5bGU6bm9uZTtwb3NpdGlvbjph\nYnNvbHV0ZTt0cmFuc2l0aW9uOndpZHRoIHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIHZh\ncigtLWVsLXRyYW5zaXRpb24tZnVuY3Rpb24tZWFzZS1pbi1vdXQtYmV6aWVyKSx0cmFuc2Zvcm0g\ndmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbikgdmFyKC0tZWwtdHJhbnNpdGlvbi1mdW5jdGlv\nbi1lYXNlLWluLW91dC1iZXppZXIpO3otaW5kZXg6MX0uZWwtdGFic19fbmV3LXRhYnthbGlnbi1p\ndGVtczpjZW50ZXI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1lbC1ib3JkZXItY29sb3IpO2JvcmRl\nci1yYWRpdXM6M3B4O2NvbG9yOnZhcigtLWVsLXRleHQtY29sb3ItcHJpbWFyeSk7Y3Vyc29yOnBv\naW50ZXI7ZGlzcGxheTpmbGV4O2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMnB4O2hlaWdodDoyMHB4\nO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGluZS1oZWlnaHQ6MjBweDttYXJnaW46MTBweCAwIDEw\ncHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcjt0cmFuc2l0aW9uOmFsbCAuMTVzO3dpZHRoOjIwcHh9\nLmVsLXRhYnNfX25ldy10YWIgLmlzLWljb24tcGx1c3toZWlnaHQ6aW5oZXJpdDt0cmFuc2Zvcm06\nc2NhbGUoLjgpO3dpZHRoOmluaGVyaXR9LmVsLXRhYnNfX25ldy10YWIgLmlzLWljb24tcGx1cyBz\ndmd7dmVydGljYWwtYWxpZ246bWlkZGxlfS5lbC10YWJzX19uZXctdGFiOmhvdmVye2NvbG9yOnZh\ncigtLWVsLWNvbG9yLXByaW1hcnkpfS5lbC10YWJzX19uYXYtd3JhcHttYXJnaW4tYm90dG9tOi0x\ncHg7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC10YWJzX19uYXYtd3JhcDph\nZnRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVsLWJvcmRlci1jb2xvci1saWdodCk7Ym90dG9t\nOjA7Y29udGVudDpcIlwiO2hlaWdodDoycHg7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRo\nOjEwMCU7ei1pbmRleDp2YXIoLS1lbC1pbmRleC1ub3JtYWwpfS5lbC10YWJzX19uYXYtd3JhcC5p\ncy1zY3JvbGxhYmxle2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMjBweH0uZWwtdGFi\nc19fbmF2LXNjcm9sbHtvdmVyZmxvdzpoaWRkZW59LmVsLXRhYnNfX25hdi1uZXh0LC5lbC10YWJz\nX19uYXYtcHJldntjb2xvcjp2YXIoLS1lbC10ZXh0LWNvbG9yLXNlY29uZGFyeSk7Y3Vyc29yOnBv\naW50ZXI7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6NDRweDtwb3NpdGlvbjphYnNvbHV0ZTt0\nZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoyMHB4fS5lbC10YWJzX19uYXYtbmV4dHtyaWdodDowfS5l\nbC10YWJzX19uYXYtcHJldntsZWZ0OjB9LmVsLXRhYnNfX25hdntkaXNwbGF5OmZsZXg7ZmxvYXQ6\nbGVmdDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS1lbC10cmFu\nc2l0aW9uLWR1cmF0aW9uKTt3aGl0ZS1zcGFjZTpub3dyYXA7ei1pbmRleDpjYWxjKHZhcigtLWVs\nLWluZGV4LW5vcm1hbCkgKyAxKX0uZWwtdGFic19fbmF2LmlzLXN0cmV0Y2h7ZGlzcGxheTpmbGV4\nO21pbi13aWR0aDoxMDAlfS5lbC10YWJzX19uYXYuaXMtc3RyZXRjaD4qe2ZsZXg6MTt0ZXh0LWFs\naWduOmNlbnRlcn0uZWwtdGFic19faXRlbXthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNpemluZzpi\nb3JkZXItYm94O2NvbG9yOnZhcigtLWVsLXRleHQtY29sb3ItcHJpbWFyeSk7ZGlzcGxheTpmbGV4\nO2ZvbnQtc2l6ZTp2YXIoLS1lbC1mb250LXNpemUtYmFzZSk7Zm9udC13ZWlnaHQ6NTAwO2hlaWdo\ndDp2YXIoLS1lbC10YWJzLWhlYWRlci1oZWlnaHQpO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGlz\ndC1zdHlsZTpub25lO3BhZGRpbmc6MCAyMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5lbC10YWJzX19p\ndGVtOmZvY3VzLC5lbC10YWJzX19pdGVtOmZvY3VzOmFjdGl2ZXtvdXRsaW5lOm5vbmV9LmVsLXRh\nYnNfX2l0ZW06Zm9jdXMtdmlzaWJsZXtib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMCAy\ncHggMnB4IHZhcigtLWVsLWNvbG9yLXByaW1hcnkpIGluc2V0fS5lbC10YWJzX19pdGVtIC5pcy1p\nY29uLWNsb3Nle2JvcmRlci1yYWRpdXM6NTAlO21hcmdpbi1sZWZ0OjVweDt0ZXh0LWFsaWduOmNl\nbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS1l\nbC10cmFuc2l0aW9uLWZ1bmN0aW9uLWVhc2UtaW4tb3V0LWJlemllcil9LmVsLXRhYnNfX2l0ZW0g\nLmlzLWljb24tY2xvc2U6YmVmb3Jle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RyYW5zZm9ybTpzY2Fs\nZSguOSl9LmVsLXRhYnNfX2l0ZW0gLmlzLWljb24tY2xvc2U6aG92ZXJ7YmFja2dyb3VuZC1jb2xv\ncjp2YXIoLS1lbC10ZXh0LWNvbG9yLXBsYWNlaG9sZGVyKTtjb2xvcjojZmZmfS5lbC10YWJzX19p\ndGVtLmlzLWFjdGl2ZXtjb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5KX0uZWwtdGFic19faXRl\nbTpob3Zlcntjb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5KTtjdXJzb3I6cG9pbnRlcn0uZWwt\ndGFic19faXRlbS5pcy1kaXNhYmxlZHtjb2xvcjp2YXIoLS1lbC1kaXNhYmxlZC10ZXh0LWNvbG9y\nKTtjdXJzb3I6bm90LWFsbG93ZWR9LmVsLXRhYnNfX2NvbnRlbnR7b3ZlcmZsb3c6aGlkZGVuO3Bv\nc2l0aW9uOnJlbGF0aXZlfS5lbC10YWJzLS1jYXJkPi5lbC10YWJzX19oZWFkZXJ7Ym9yZGVyLWJv\ndHRvbToxcHggc29saWQgdmFyKC0tZWwtYm9yZGVyLWNvbG9yLWxpZ2h0KTtoZWlnaHQ6dmFyKC0t\nZWwtdGFicy1oZWFkZXItaGVpZ2h0KX0uZWwtdGFicy0tY2FyZD4uZWwtdGFic19faGVhZGVyIC5l\nbC10YWJzX19uYXYtd3JhcDphZnRlcntjb250ZW50Om5vbmV9LmVsLXRhYnMtLWNhcmQ+LmVsLXRh\nYnNfX2hlYWRlciAuZWwtdGFic19fbmF2e2JvcmRlcjoxcHggc29saWQgdmFyKC0tZWwtYm9yZGVy\nLWNvbG9yLWxpZ2h0KTtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyLXJhZGl1czo0cHggNHB4IDAg\nMDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAu\nZWwtdGFic19fYWN0aXZlLWJhcntkaXNwbGF5Om5vbmV9LmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNf\nX2hlYWRlciAuZWwtdGFic19faXRlbSAuaXMtaWNvbi1jbG9zZXtmb250LXNpemU6MTJweDtoZWln\naHQ6MTRweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6LTJweDt0cmFu\nc2Zvcm0tb3JpZ2luOjEwMCUgNTAlO3dpZHRoOjB9LmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNfX2hl\nYWRlciAuZWwtdGFic19faXRlbXtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudDti\nb3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tZWwtYm9yZGVyLWNvbG9yLWxpZ2h0KTt0cmFuc2l0\naW9uOmNvbG9yIHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pIHZhcigtLWVsLXRyYW5zaXRp\nb24tZnVuY3Rpb24tZWFzZS1pbi1vdXQtYmV6aWVyKSxwYWRkaW5nIHZhcigtLWVsLXRyYW5zaXRp\nb24tZHVyYXRpb24pIHZhcigtLWVsLXRyYW5zaXRpb24tZnVuY3Rpb24tZWFzZS1pbi1vdXQtYmV6\naWVyKX0uZWwtdGFicy0tY2FyZD4uZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVtOmZpcnN0\nLWNoaWxke2JvcmRlci1sZWZ0Om5vbmV9LmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAu\nZWwtdGFic19faXRlbS5pcy1jbG9zYWJsZTpob3ZlcntwYWRkaW5nLWxlZnQ6MTNweDtwYWRkaW5n\nLXJpZ2h0OjEzcHh9LmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRl\nbS5pcy1jbG9zYWJsZTpob3ZlciAuaXMtaWNvbi1jbG9zZXt3aWR0aDoxNHB4fS5lbC10YWJzLS1j\nYXJkPi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW0uaXMtYWN0aXZle2JvcmRlci1ib3R0\nb20tY29sb3I6dmFyKC0tZWwtYmctY29sb3IpfS5lbC10YWJzLS1jYXJkPi5lbC10YWJzX19oZWFk\nZXIgLmVsLXRhYnNfX2l0ZW0uaXMtYWN0aXZlLmlzLWNsb3NhYmxle3BhZGRpbmctbGVmdDoyMHB4\nO3BhZGRpbmctcmlnaHQ6MjBweH0uZWwtdGFicy0tY2FyZD4uZWwtdGFic19faGVhZGVyIC5lbC10\nYWJzX19pdGVtLmlzLWFjdGl2ZS5pcy1jbG9zYWJsZSAuaXMtaWNvbi1jbG9zZXt3aWR0aDoxNHB4\nfS5lbC10YWJzLS1ib3JkZXItY2FyZHtiYWNrZ3JvdW5kOnZhcigtLWVsLWJnLWNvbG9yLW92ZXJs\nYXkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tZWwtYm9yZGVyLWNvbG9yKX0uZWwtdGFicy0tYm9y\nZGVyLWNhcmQ+LmVsLXRhYnNfX2NvbnRlbnR7cGFkZGluZzoxNXB4fS5lbC10YWJzLS1ib3JkZXIt\nY2FyZD4uZWwtdGFic19faGVhZGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwtZmlsbC1jb2xv\nci1saWdodCk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tZWwtYm9yZGVyLWNvbG9yLWxp\nZ2h0KTttYXJnaW46MH0uZWwtdGFicy0tYm9yZGVyLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwt\ndGFic19fbmF2LXdyYXA6YWZ0ZXJ7Y29udGVudDpub25lfS5lbC10YWJzLS1ib3JkZXItY2FyZD4u\nZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVte2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJl\nbnQ7Y29sb3I6dmFyKC0tZWwtdGV4dC1jb2xvci1zZWNvbmRhcnkpO21hcmdpbi10b3A6LTFweDt0\ncmFuc2l0aW9uOmFsbCB2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uKSB2YXIoLS1lbC10cmFu\nc2l0aW9uLWZ1bmN0aW9uLWVhc2UtaW4tb3V0LWJlemllcil9LmVsLXRhYnMtLWJvcmRlci1jYXJk\nPi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6\nLTFweH0uZWwtdGFicy0tYm9yZGVyLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRl\nbSsuZWwtdGFic19faXRlbXttYXJnaW4tbGVmdDotMXB4fS5lbC10YWJzLS1ib3JkZXItY2FyZD4u\nZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVtLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9y\nOnZhcigtLWVsLWJnLWNvbG9yLW92ZXJsYXkpO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWVsLWJv\ncmRlci1jb2xvcik7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWVsLWJvcmRlci1jb2xvcik7Y29s\nb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeSl9LmVsLXRhYnMtLWJvcmRlci1jYXJkPi5lbC10YWJz\nX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bm90KC5pcy1kaXNhYmxlZCk6aG92ZXJ7Y29sb3I6dmFy\nKC0tZWwtY29sb3ItcHJpbWFyeSl9LmVsLXRhYnMtLWJvcmRlci1jYXJkPi5lbC10YWJzX19oZWFk\nZXIgLmVsLXRhYnNfX2l0ZW0uaXMtZGlzYWJsZWR7Y29sb3I6dmFyKC0tZWwtZGlzYWJsZWQtdGV4\ndC1jb2xvcil9LmVsLXRhYnMtLWJvcmRlci1jYXJkPi5lbC10YWJzX19oZWFkZXIgLmlzLXNjcm9s\nbGFibGUgLmVsLXRhYnNfX2l0ZW06Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MH0uZWwtdGFicy0t\nYm90dG9tIC5lbC10YWJzX19pdGVtLmlzLWJvdHRvbTpudGgtY2hpbGQoMiksLmVsLXRhYnMtLWJv\ndHRvbSAuZWwtdGFic19faXRlbS5pcy10b3A6bnRoLWNoaWxkKDIpLC5lbC10YWJzLS10b3AgLmVs\nLXRhYnNfX2l0ZW0uaXMtYm90dG9tOm50aC1jaGlsZCgyKSwuZWwtdGFicy0tdG9wIC5lbC10YWJz\nX19pdGVtLmlzLXRvcDpudGgtY2hpbGQoMil7cGFkZGluZy1sZWZ0OjB9LmVsLXRhYnMtLWJvdHRv\nbSAuZWwtdGFic19faXRlbS5pcy1ib3R0b206bGFzdC1jaGlsZCwuZWwtdGFicy0tYm90dG9tIC5l\nbC10YWJzX19pdGVtLmlzLXRvcDpsYXN0LWNoaWxkLC5lbC10YWJzLS10b3AgLmVsLXRhYnNfX2l0\nZW0uaXMtYm90dG9tOmxhc3QtY2hpbGQsLmVsLXRhYnMtLXRvcCAuZWwtdGFic19faXRlbS5pcy10\nb3A6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjB9LmVsLXRhYnMtLWJvdHRvbSAuZWwtdGFicy0t\nbGVmdD4uZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVtOm50aC1jaGlsZCgyKSwuZWwtdGFi\ncy0tYm90dG9tIC5lbC10YWJzLS1yaWdodD4uZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVt\nOm50aC1jaGlsZCgyKSwuZWwtdGFicy0tYm90dG9tLmVsLXRhYnMtLWJvcmRlci1jYXJkPi5lbC10\nYWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bnRoLWNoaWxkKDIpLC5lbC10YWJzLS1ib3R0b20u\nZWwtdGFicy0tY2FyZD4uZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVtOm50aC1jaGlsZCgy\nKSwuZWwtdGFicy0tdG9wIC5lbC10YWJzLS1sZWZ0Pi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNf\nX2l0ZW06bnRoLWNoaWxkKDIpLC5lbC10YWJzLS10b3AgLmVsLXRhYnMtLXJpZ2h0Pi5lbC10YWJz\nX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bnRoLWNoaWxkKDIpLC5lbC10YWJzLS10b3AuZWwtdGFi\ncy0tYm9yZGVyLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpudGgtY2hpbGQo\nMiksLmVsLXRhYnMtLXRvcC5lbC10YWJzLS1jYXJkPi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNf\nX2l0ZW06bnRoLWNoaWxkKDIpe3BhZGRpbmctbGVmdDoyMHB4fS5lbC10YWJzLS1ib3R0b20gLmVs\nLXRhYnMtLWxlZnQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpudGgtY2hpbGQoMik6\nbm90KC5pcy1hY3RpdmUpLmlzLWNsb3NhYmxlOmhvdmVyLC5lbC10YWJzLS1ib3R0b20gLmVsLXRh\nYnMtLXJpZ2h0Pi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bnRoLWNoaWxkKDIpOm5v\ndCguaXMtYWN0aXZlKS5pcy1jbG9zYWJsZTpob3ZlciwuZWwtdGFicy0tYm90dG9tLmVsLXRhYnMt\nLWJvcmRlci1jYXJkPi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bnRoLWNoaWxkKDIp\nOm5vdCguaXMtYWN0aXZlKS5pcy1jbG9zYWJsZTpob3ZlciwuZWwtdGFicy0tYm90dG9tLmVsLXRh\nYnMtLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpudGgtY2hpbGQoMik6bm90\nKC5pcy1hY3RpdmUpLmlzLWNsb3NhYmxlOmhvdmVyLC5lbC10YWJzLS10b3AgLmVsLXRhYnMtLWxl\nZnQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpudGgtY2hpbGQoMik6bm90KC5pcy1h\nY3RpdmUpLmlzLWNsb3NhYmxlOmhvdmVyLC5lbC10YWJzLS10b3AgLmVsLXRhYnMtLXJpZ2h0Pi5l\nbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bnRoLWNoaWxkKDIpOm5vdCguaXMtYWN0aXZl\nKS5pcy1jbG9zYWJsZTpob3ZlciwuZWwtdGFicy0tdG9wLmVsLXRhYnMtLWJvcmRlci1jYXJkPi5l\nbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bnRoLWNoaWxkKDIpOm5vdCguaXMtYWN0aXZl\nKS5pcy1jbG9zYWJsZTpob3ZlciwuZWwtdGFicy0tdG9wLmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNf\nX2hlYWRlciAuZWwtdGFic19faXRlbTpudGgtY2hpbGQoMik6bm90KC5pcy1hY3RpdmUpLmlzLWNs\nb3NhYmxlOmhvdmVye3BhZGRpbmctbGVmdDoxM3B4fS5lbC10YWJzLS1ib3R0b20gLmVsLXRhYnMt\nLWxlZnQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpsYXN0LWNoaWxkLC5lbC10YWJz\nLS1ib3R0b20gLmVsLXRhYnMtLXJpZ2h0Pi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06\nbGFzdC1jaGlsZCwuZWwtdGFicy0tYm90dG9tLmVsLXRhYnMtLWJvcmRlci1jYXJkPi5lbC10YWJz\nX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bGFzdC1jaGlsZCwuZWwtdGFicy0tYm90dG9tLmVsLXRh\nYnMtLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpsYXN0LWNoaWxkLC5lbC10\nYWJzLS10b3AgLmVsLXRhYnMtLWxlZnQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTps\nYXN0LWNoaWxkLC5lbC10YWJzLS10b3AgLmVsLXRhYnMtLXJpZ2h0Pi5lbC10YWJzX19oZWFkZXIg\nLmVsLXRhYnNfX2l0ZW06bGFzdC1jaGlsZCwuZWwtdGFicy0tdG9wLmVsLXRhYnMtLWJvcmRlci1j\nYXJkPi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bGFzdC1jaGlsZCwuZWwtdGFicy0t\ndG9wLmVsLXRhYnMtLWNhcmQ+LmVsLXRhYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpsYXN0LWNo\naWxke3BhZGRpbmctcmlnaHQ6MjBweH0uZWwtdGFicy0tYm90dG9tIC5lbC10YWJzLS1sZWZ0Pi5l\nbC10YWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSku\naXMtY2xvc2FibGU6aG92ZXIsLmVsLXRhYnMtLWJvdHRvbSAuZWwtdGFicy0tcmlnaHQ+LmVsLXRh\nYnNfX2hlYWRlciAuZWwtdGFic19faXRlbTpsYXN0LWNoaWxkOm5vdCguaXMtYWN0aXZlKS5pcy1j\nbG9zYWJsZTpob3ZlciwuZWwtdGFicy0tYm90dG9tLmVsLXRhYnMtLWJvcmRlci1jYXJkPi5lbC10\nYWJzX19oZWFkZXIgLmVsLXRhYnNfX2l0ZW06bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkuaXMt\nY2xvc2FibGU6aG92ZXIsLmVsLXRhYnMtLWJvdHRvbS5lbC10YWJzLS1jYXJkPi5lbC10YWJzX19o\nZWFkZXIgLmVsLXRhYnNfX2l0ZW06bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkuaXMtY2xvc2Fi\nbGU6aG92ZXIsLmVsLXRhYnMtLXRvcCAuZWwtdGFicy0tbGVmdD4uZWwtdGFic19faGVhZGVyIC5l\nbC10YWJzX19pdGVtOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpLmlzLWNsb3NhYmxlOmhvdmVy\nLC5lbC10YWJzLS10b3AgLmVsLXRhYnMtLXJpZ2h0Pi5lbC10YWJzX19oZWFkZXIgLmVsLXRhYnNf\nX2l0ZW06bGFzdC1jaGlsZDpub3QoLmlzLWFjdGl2ZSkuaXMtY2xvc2FibGU6aG92ZXIsLmVsLXRh\nYnMtLXRvcC5lbC10YWJzLS1ib3JkZXItY2FyZD4uZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19p\ndGVtOmxhc3QtY2hpbGQ6bm90KC5pcy1hY3RpdmUpLmlzLWNsb3NhYmxlOmhvdmVyLC5lbC10YWJz\nLS10b3AuZWwtdGFicy0tY2FyZD4uZWwtdGFic19faGVhZGVyIC5lbC10YWJzX19pdGVtOmxhc3Qt\nY2hpbGQ6bm90KC5pcy1hY3RpdmUpLmlzLWNsb3NhYmxlOmhvdmVye3BhZGRpbmctcmlnaHQ6MTNw\neH0uZWwtdGFicy0tYm90dG9tIC5lbC10YWJzX19oZWFkZXIuaXMtYm90dG9te21hcmdpbi1ib3R0\nb206MDttYXJnaW4tdG9wOjEwcHh9LmVsLXRhYnMtLWJvdHRvbS5lbC10YWJzLS1ib3JkZXItY2Fy\nZCAuZWwtdGFic19faGVhZGVyLmlzLWJvdHRvbXtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXRvcDox\ncHggc29saWQgdmFyKC0tZWwtYm9yZGVyLWNvbG9yKX0uZWwtdGFicy0tYm90dG9tLmVsLXRhYnMt\nLWJvcmRlci1jYXJkIC5lbC10YWJzX19uYXYtd3JhcC5pcy1ib3R0b217bWFyZ2luLWJvdHRvbTow\nO21hcmdpbi10b3A6LTFweH0uZWwtdGFicy0tYm90dG9tLmVsLXRhYnMtLWJvcmRlci1jYXJkIC5l\nbC10YWJzX19pdGVtLmlzLWJvdHRvbTpub3QoLmlzLWFjdGl2ZSl7Ym9yZGVyOjFweCBzb2xpZCB0\ncmFuc3BhcmVudH0uZWwtdGFicy0tYm90dG9tLmVsLXRhYnMtLWJvcmRlci1jYXJkIC5lbC10YWJz\nX19pdGVtLmlzLWJvdHRvbXttYXJnaW46MCAtMXB4IC0xcHh9LmVsLXRhYnMtLWxlZnQsLmVsLXRh\nYnMtLXJpZ2h0e292ZXJmbG93OmhpZGRlbn0uZWwtdGFicy0tbGVmdCAuZWwtdGFic19faGVhZGVy\nLmlzLWxlZnQsLmVsLXRhYnMtLWxlZnQgLmVsLXRhYnNfX2hlYWRlci5pcy1yaWdodCwuZWwtdGFi\ncy0tbGVmdCAuZWwtdGFic19fbmF2LXNjcm9sbCwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2\nLXdyYXAuaXMtbGVmdCwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHQs\nLmVsLXRhYnMtLXJpZ2h0IC5lbC10YWJzX19oZWFkZXIuaXMtbGVmdCwuZWwtdGFicy0tcmlnaHQg\nLmVsLXRhYnNfX2hlYWRlci5pcy1yaWdodCwuZWwtdGFicy0tcmlnaHQgLmVsLXRhYnNfX25hdi1z\nY3JvbGwsLmVsLXRhYnMtLXJpZ2h0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1sZWZ0LC5lbC10YWJz\nLS1yaWdodCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHR7aGVpZ2h0OjEwMCV9LmVsLXRhYnMt\nLWxlZnQgLmVsLXRhYnNfX2FjdGl2ZS1iYXIuaXMtbGVmdCwuZWwtdGFicy0tbGVmdCAuZWwtdGFi\nc19fYWN0aXZlLWJhci5pcy1yaWdodCwuZWwtdGFicy0tcmlnaHQgLmVsLXRhYnNfX2FjdGl2ZS1i\nYXIuaXMtbGVmdCwuZWwtdGFicy0tcmlnaHQgLmVsLXRhYnNfX2FjdGl2ZS1iYXIuaXMtcmlnaHR7\nYm90dG9tOmF1dG87aGVpZ2h0OmF1dG87dG9wOjA7d2lkdGg6MnB4fS5lbC10YWJzLS1sZWZ0IC5l\nbC10YWJzX19uYXYtd3JhcC5pcy1sZWZ0LC5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19uYXYtd3Jh\ncC5pcy1yaWdodCwuZWwtdGFicy0tcmlnaHQgLmVsLXRhYnNfX25hdi13cmFwLmlzLWxlZnQsLmVs\nLXRhYnMtLXJpZ2h0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1yaWdodHttYXJnaW4tYm90dG9tOjB9\nLmVsLXRhYnMtLWxlZnQgLmVsLXRhYnNfX25hdi13cmFwLmlzLWxlZnQ+LmVsLXRhYnNfX25hdi1u\nZXh0LC5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1sZWZ0Pi5lbC10YWJzX19u\nYXYtcHJldiwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHQ+LmVsLXRh\nYnNfX25hdi1uZXh0LC5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1yaWdodD4u\nZWwtdGFic19fbmF2LXByZXYsLmVsLXRhYnMtLXJpZ2h0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1s\nZWZ0Pi5lbC10YWJzX19uYXYtbmV4dCwuZWwtdGFicy0tcmlnaHQgLmVsLXRhYnNfX25hdi13cmFw\nLmlzLWxlZnQ+LmVsLXRhYnNfX25hdi1wcmV2LC5lbC10YWJzLS1yaWdodCAuZWwtdGFic19fbmF2\nLXdyYXAuaXMtcmlnaHQ+LmVsLXRhYnNfX25hdi1uZXh0LC5lbC10YWJzLS1yaWdodCAuZWwtdGFi\nc19fbmF2LXdyYXAuaXMtcmlnaHQ+LmVsLXRhYnNfX25hdi1wcmV2e2N1cnNvcjpwb2ludGVyO2hl\naWdodDozMHB4O2xpbmUtaGVpZ2h0OjMwcHg7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MTAwJX0u\nZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtbGVmdD4uZWwtdGFic19fbmF2LW5l\neHQgaSwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtbGVmdD4uZWwtdGFic19f\nbmF2LXByZXYgaSwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHQ+LmVs\nLXRhYnNfX25hdi1uZXh0IGksLmVsLXRhYnMtLWxlZnQgLmVsLXRhYnNfX25hdi13cmFwLmlzLXJp\nZ2h0Pi5lbC10YWJzX19uYXYtcHJldiBpLC5lbC10YWJzLS1yaWdodCAuZWwtdGFic19fbmF2LXdy\nYXAuaXMtbGVmdD4uZWwtdGFic19fbmF2LW5leHQgaSwuZWwtdGFicy0tcmlnaHQgLmVsLXRhYnNf\nX25hdi13cmFwLmlzLWxlZnQ+LmVsLXRhYnNfX25hdi1wcmV2IGksLmVsLXRhYnMtLXJpZ2h0IC5l\nbC10YWJzX19uYXYtd3JhcC5pcy1yaWdodD4uZWwtdGFic19fbmF2LW5leHQgaSwuZWwtdGFicy0t\ncmlnaHQgLmVsLXRhYnNfX25hdi13cmFwLmlzLXJpZ2h0Pi5lbC10YWJzX19uYXYtcHJldiBpe3Ry\nYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19uYXYtd3JhcC5p\ncy1sZWZ0Pi5lbC10YWJzX19uYXYtcHJldiwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdy\nYXAuaXMtcmlnaHQ+LmVsLXRhYnNfX25hdi1wcmV2LC5lbC10YWJzLS1yaWdodCAuZWwtdGFic19f\nbmF2LXdyYXAuaXMtbGVmdD4uZWwtdGFic19fbmF2LXByZXYsLmVsLXRhYnMtLXJpZ2h0IC5lbC10\nYWJzX19uYXYtd3JhcC5pcy1yaWdodD4uZWwtdGFic19fbmF2LXByZXZ7bGVmdDphdXRvO3RvcDow\nfS5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1sZWZ0Pi5lbC10YWJzX19uYXYt\nbmV4dCwuZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHQ+LmVsLXRhYnNf\nX25hdi1uZXh0LC5lbC10YWJzLS1yaWdodCAuZWwtdGFic19fbmF2LXdyYXAuaXMtbGVmdD4uZWwt\ndGFic19fbmF2LW5leHQsLmVsLXRhYnMtLXJpZ2h0IC5lbC10YWJzX19uYXYtd3JhcC5pcy1yaWdo\ndD4uZWwtdGFic19fbmF2LW5leHR7Ym90dG9tOjA7cmlnaHQ6YXV0b30uZWwtdGFicy0tbGVmdCAu\nZWwtdGFic19fbmF2LXdyYXAuaXMtbGVmdC5pcy1zY3JvbGxhYmxlLC5lbC10YWJzLS1sZWZ0IC5l\nbC10YWJzX19uYXYtd3JhcC5pcy1yaWdodC5pcy1zY3JvbGxhYmxlLC5lbC10YWJzLS1yaWdodCAu\nZWwtdGFic19fbmF2LXdyYXAuaXMtbGVmdC5pcy1zY3JvbGxhYmxlLC5lbC10YWJzLS1yaWdodCAu\nZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHQuaXMtc2Nyb2xsYWJsZXtwYWRkaW5nOjMwcHggMH0u\nZWwtdGFicy0tbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtbGVmdDphZnRlciwuZWwtdGFicy0t\nbGVmdCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHQ6YWZ0ZXIsLmVsLXRhYnMtLXJpZ2h0IC5l\nbC10YWJzX19uYXYtd3JhcC5pcy1sZWZ0OmFmdGVyLC5lbC10YWJzLS1yaWdodCAuZWwtdGFic19f\nbmF2LXdyYXAuaXMtcmlnaHQ6YWZ0ZXJ7Ym90dG9tOmF1dG87aGVpZ2h0OjEwMCU7dG9wOjA7d2lk\ndGg6MnB4fS5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19uYXYuaXMtbGVmdCwuZWwtdGFicy0tbGVm\ndCAuZWwtdGFic19fbmF2LmlzLXJpZ2h0LC5lbC10YWJzLS1yaWdodCAuZWwtdGFic19fbmF2Lmlz\nLWxlZnQsLmVsLXRhYnMtLXJpZ2h0IC5lbC10YWJzX19uYXYuaXMtcmlnaHR7ZmxleC1kaXJlY3Rp\nb246Y29sdW1ufS5lbC10YWJzLS1sZWZ0IC5lbC10YWJzX19pdGVtLmlzLWxlZnQsLmVsLXRhYnMt\nLXJpZ2h0IC5lbC10YWJzX19pdGVtLmlzLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5l\nbC10YWJzLS1sZWZ0IC5lbC10YWJzX19pdGVtLmlzLXJpZ2h0LC5lbC10YWJzLS1yaWdodCAuZWwt\ndGFic19faXRlbS5pcy1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uZWwtdGFicy0t\nbGVmdCAuZWwtdGFic19faGVhZGVyLmlzLWxlZnR7ZmxvYXQ6bGVmdDttYXJnaW4tYm90dG9tOjA7\nbWFyZ2luLXJpZ2h0OjEwcHh9LmVsLXRhYnMtLWxlZnQgLmVsLXRhYnNfX25hdi13cmFwLmlzLWxl\nZnR7bWFyZ2luLXJpZ2h0Oi0xcHh9LmVsLXRhYnMtLWxlZnQgLmVsLXRhYnNfX25hdi13cmFwLmlz\nLWxlZnQ6YWZ0ZXJ7bGVmdDphdXRvO3JpZ2h0OjB9LmVsLXRhYnMtLWxlZnQgLmVsLXRhYnNfX2Fj\ndGl2ZS1iYXIuaXMtbGVmdHtsZWZ0OmF1dG87cmlnaHQ6MH0uZWwtdGFicy0tbGVmdCAuZWwtdGFi\nc19faXRlbS5pcy1sZWZ0e3RleHQtYWxpZ246cmlnaHR9LmVsLXRhYnMtLWxlZnQuZWwtdGFicy0t\nY2FyZCAuZWwtdGFic19fYWN0aXZlLWJhci5pcy1sZWZ0e2Rpc3BsYXk6bm9uZX0uZWwtdGFicy0t\nbGVmdC5lbC10YWJzLS1jYXJkIC5lbC10YWJzX19pdGVtLmlzLWxlZnR7Ym9yZGVyLWJvdHRvbTpu\nb25lO2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1lbC1ib3Jk\nZXItY29sb3ItbGlnaHQpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWVsLWJvcmRlci1jb2xv\nci1saWdodCk7dGV4dC1hbGlnbjpsZWZ0fS5lbC10YWJzLS1sZWZ0LmVsLXRhYnMtLWNhcmQgLmVs\nLXRhYnNfX2l0ZW0uaXMtbGVmdDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZh\ncigtLWVsLWJvcmRlci1jb2xvci1saWdodCk7Ym9yZGVyLXRvcDpub25lfS5lbC10YWJzLS1sZWZ0\nLmVsLXRhYnMtLWNhcmQgLmVsLXRhYnNfX2l0ZW0uaXMtbGVmdC5pcy1hY3RpdmV7Ym9yZGVyOjFw\neCBzb2xpZCB2YXIoLS1lbC1ib3JkZXItY29sb3ItbGlnaHQpO2JvcmRlci1ib3R0b206bm9uZTti\nb3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWQgI2ZmZn0uZWwtdGFicy0tbGVm\ndC5lbC10YWJzLS1jYXJkIC5lbC10YWJzX19pdGVtLmlzLWxlZnQuaXMtYWN0aXZlOmZpcnN0LWNo\naWxke2JvcmRlci10b3A6bm9uZX0uZWwtdGFicy0tbGVmdC5lbC10YWJzLS1jYXJkIC5lbC10YWJz\nX19pdGVtLmlzLWxlZnQuaXMtYWN0aXZlOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lfS5l\nbC10YWJzLS1sZWZ0LmVsLXRhYnMtLWNhcmQgLmVsLXRhYnNfX25hdntib3JkZXItYm90dG9tOjFw\neCBzb2xpZCB2YXIoLS1lbC1ib3JkZXItY29sb3ItbGlnaHQpO2JvcmRlci1yYWRpdXM6NHB4IDAg\nMCA0cHg7Ym9yZGVyLXJpZ2h0Om5vbmV9LmVsLXRhYnMtLWxlZnQuZWwtdGFicy0tY2FyZCAuZWwt\ndGFic19fbmV3LXRhYntmbG9hdDpub25lfS5lbC10YWJzLS1sZWZ0LmVsLXRhYnMtLWJvcmRlci1j\nYXJkIC5lbC10YWJzX19oZWFkZXIuaXMtbGVmdHtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigt\nLWVsLWJvcmRlci1jb2xvcil9LmVsLXRhYnMtLWxlZnQuZWwtdGFicy0tYm9yZGVyLWNhcmQgLmVs\nLXRhYnNfX2l0ZW0uaXMtbGVmdHtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O21hcmdpbjot\nMXB4IDAgLTFweCAtMXB4fS5lbC10YWJzLS1sZWZ0LmVsLXRhYnMtLWJvcmRlci1jYXJkIC5lbC10\nYWJzX19pdGVtLmlzLWxlZnQuaXMtYWN0aXZle2JvcmRlci1jb2xvcjpyZ2IoMjA5LDIxOSwyMjkp\nIHRyYW5zcGFyZW50fS5lbC10YWJzLS1yaWdodCAuZWwtdGFic19faGVhZGVyLmlzLXJpZ2h0e2Zs\nb2F0OnJpZ2h0O21hcmdpbi1ib3R0b206MDttYXJnaW4tbGVmdDoxMHB4fS5lbC10YWJzLS1yaWdo\ndCAuZWwtdGFic19fbmF2LXdyYXAuaXMtcmlnaHR7bWFyZ2luLWxlZnQ6LTFweH0uZWwtdGFicy0t\ncmlnaHQgLmVsLXRhYnNfX25hdi13cmFwLmlzLXJpZ2h0OmFmdGVye2xlZnQ6MDtyaWdodDphdXRv\nfS5lbC10YWJzLS1yaWdodCAuZWwtdGFic19fYWN0aXZlLWJhci5pcy1yaWdodHtsZWZ0OjB9LmVs\nLXRhYnMtLXJpZ2h0LmVsLXRhYnMtLWNhcmQgLmVsLXRhYnNfX2FjdGl2ZS1iYXIuaXMtcmlnaHR7\nZGlzcGxheTpub25lfS5lbC10YWJzLS1yaWdodC5lbC10YWJzLS1jYXJkIC5lbC10YWJzX19pdGVt\nLmlzLXJpZ2h0e2JvcmRlci1ib3R0b206bm9uZTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1l\nbC1ib3JkZXItY29sb3ItbGlnaHQpfS5lbC10YWJzLS1yaWdodC5lbC10YWJzLS1jYXJkIC5lbC10\nYWJzX19pdGVtLmlzLXJpZ2h0OmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIo\nLS1lbC1ib3JkZXItY29sb3ItbGlnaHQpO2JvcmRlci10b3A6bm9uZX0uZWwtdGFicy0tcmlnaHQu\nZWwtdGFicy0tY2FyZCAuZWwtdGFic19faXRlbS5pcy1yaWdodC5pcy1hY3RpdmV7Ym9yZGVyOjFw\neCBzb2xpZCB2YXIoLS1lbC1ib3JkZXItY29sb3ItbGlnaHQpO2JvcmRlci1ib3R0b206bm9uZTti\nb3JkZXItbGVmdDoxcHggc29saWQgI2ZmZjtib3JkZXItcmlnaHQ6bm9uZX0uZWwtdGFicy0tcmln\naHQuZWwtdGFicy0tY2FyZCAuZWwtdGFic19faXRlbS5pcy1yaWdodC5pcy1hY3RpdmU6Zmlyc3Qt\nY2hpbGR7Ym9yZGVyLXRvcDpub25lfS5lbC10YWJzLS1yaWdodC5lbC10YWJzLS1jYXJkIC5lbC10\nYWJzX19pdGVtLmlzLXJpZ2h0LmlzLWFjdGl2ZTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9u\nZX0uZWwtdGFicy0tcmlnaHQuZWwtdGFicy0tY2FyZCAuZWwtdGFic19fbmF2e2JvcmRlci1ib3R0\nb206MXB4IHNvbGlkIHZhcigtLWVsLWJvcmRlci1jb2xvci1saWdodCk7Ym9yZGVyLWxlZnQ6bm9u\nZTtib3JkZXItcmFkaXVzOjAgNHB4IDRweCAwfS5lbC10YWJzLS1yaWdodC5lbC10YWJzLS1ib3Jk\nZXItY2FyZCAuZWwtdGFic19faGVhZGVyLmlzLXJpZ2h0e2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2\nYXIoLS1lbC1ib3JkZXItY29sb3IpfS5lbC10YWJzLS1yaWdodC5lbC10YWJzLS1ib3JkZXItY2Fy\nZCAuZWwtdGFic19faXRlbS5pcy1yaWdodHtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O21h\ncmdpbjotMXB4IC0xcHggLTFweCAwfS5lbC10YWJzLS1yaWdodC5lbC10YWJzLS1ib3JkZXItY2Fy\nZCAuZWwtdGFic19faXRlbS5pcy1yaWdodC5pcy1hY3RpdmV7Ym9yZGVyLWNvbG9yOnJnYigyMDks\nMjE5LDIyOSkgdHJhbnNwYXJlbnR9LnNsaWRlSW5MZWZ0LXRyYW5zaXRpb24sLnNsaWRlSW5SaWdo\ndC10cmFuc2l0aW9ue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5zbGlkZUluUmlnaHQtZW50ZXJ7LXdl\nYmtpdC1hbmltYXRpb246c2xpZGVJblJpZ2h0LWVudGVyIHZhcigtLWVsLXRyYW5zaXRpb24tZHVy\nYXRpb24pO2FuaW1hdGlvbjpzbGlkZUluUmlnaHQtZW50ZXIgdmFyKC0tZWwtdHJhbnNpdGlvbi1k\ndXJhdGlvbil9LnNsaWRlSW5SaWdodC1sZWF2ZXstd2Via2l0LWFuaW1hdGlvbjpzbGlkZUluUmln\naHQtbGVhdmUgdmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbik7YW5pbWF0aW9uOnNsaWRlSW5S\naWdodC1sZWF2ZSB2YXIoLS1lbC10cmFuc2l0aW9uLWR1cmF0aW9uKTtsZWZ0OjA7cG9zaXRpb246\nYWJzb2x1dGU7cmlnaHQ6MH0uc2xpZGVJbkxlZnQtZW50ZXJ7LXdlYmtpdC1hbmltYXRpb246c2xp\nZGVJbkxlZnQtZW50ZXIgdmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbik7YW5pbWF0aW9uOnNs\naWRlSW5MZWZ0LWVudGVyIHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pfS5zbGlkZUluTGVm\ndC1sZWF2ZXstd2Via2l0LWFuaW1hdGlvbjpzbGlkZUluTGVmdC1sZWF2ZSB2YXIoLS1lbC10cmFu\nc2l0aW9uLWR1cmF0aW9uKTthbmltYXRpb246c2xpZGVJbkxlZnQtbGVhdmUgdmFyKC0tZWwtdHJh\nbnNpdGlvbi1kdXJhdGlvbik7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9QC13ZWJr\naXQta2V5ZnJhbWVzIHNsaWRlSW5SaWdodC1lbnRlcnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRy\nYW5zbGF0ZSgxMDAlKTt0cmFuc2Zvcm0tb3JpZ2luOjAgMH10b3tvcGFjaXR5OjE7dHJhbnNmb3Jt\nOnRyYW5zbGF0ZSgwKTt0cmFuc2Zvcm0tb3JpZ2luOjAgMH19QGtleWZyYW1lcyBzbGlkZUluUmln\naHQtZW50ZXJ7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSk7dHJhbnNmb3Jt\nLW9yaWdpbjowIDB9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNmb3Jt\nLW9yaWdpbjowIDB9fUAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluUmlnaHQtbGVhdmV7MCV7b3Bh\nY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNmb3JtLW9yaWdpbjowIDB9dG97b3Bh\nY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSk7dHJhbnNmb3JtLW9yaWdpbjowIDB9fUBr\nZXlmcmFtZXMgc2xpZGVJblJpZ2h0LWxlYXZlezAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNs\nYXRlKDApO3RyYW5zZm9ybS1vcmlnaW46MCAwfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNs\nYXRlKDEwMCUpO3RyYW5zZm9ybS1vcmlnaW46MCAwfX1ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJ\nbkxlZnQtZW50ZXJ7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUpO3RyYW5z\nZm9ybS1vcmlnaW46MCAwfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3RyYW5z\nZm9ybS1vcmlnaW46MCAwfX1Aa2V5ZnJhbWVzIHNsaWRlSW5MZWZ0LWVudGVyezAle29wYWNpdHk6\nMDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTt0cmFuc2Zvcm0tb3JpZ2luOjAgMH10b3tvcGFj\naXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2Zvcm0tb3JpZ2luOjAgMH19QC13ZWJr\naXQta2V5ZnJhbWVzIHNsaWRlSW5MZWZ0LWxlYXZlezAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJh\nbnNsYXRlKDApO3RyYW5zZm9ybS1vcmlnaW46MCAwfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJh\nbnNsYXRlKC0xMDAlKTt0cmFuc2Zvcm0tb3JpZ2luOjAgMH19QGtleWZyYW1lcyBzbGlkZUluTGVm\ndC1sZWF2ZXswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2Zvcm0tb3Jp\nZ2luOjAgMH10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTAwJSk7dHJhbnNmb3Jt\nLW9yaWdpbjowIDB9fS5lbC1zcGFjZXtkaXNwbGF5OmlubGluZS1mbGV4O3ZlcnRpY2FsLWFsaWdu\nOnRvcH0uZWwtc3BhY2VfX2l0ZW17ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwfS5lbC1zcGFj\nZV9faXRlbT4qe2ZsZXg6MX0uZWwtc3BhY2UtLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVt\nbn0uZWwtbGlua3stLWVsLWxpbmstZm9udC1zaXplOnZhcigtLWVsLWZvbnQtc2l6ZS1iYXNlKTst\nLWVsLWxpbmstZm9udC13ZWlnaHQ6dmFyKC0tZWwtZm9udC13ZWlnaHQtcHJpbWFyeSk7LS1lbC1s\naW5rLXRleHQtY29sb3I6dmFyKC0tZWwtdGV4dC1jb2xvci1yZWd1bGFyKTstLWVsLWxpbmstaG92\nZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5KTstLWVsLWxpbmstZGlzYWJsZWQt\ndGV4dC1jb2xvcjp2YXIoLS1lbC10ZXh0LWNvbG9yLXBsYWNlaG9sZGVyKTthbGlnbi1pdGVtczpj\nZW50ZXI7Y29sb3I6dmFyKC0tZWwtbGluay10ZXh0LWNvbG9yKTtjdXJzb3I6cG9pbnRlcjtkaXNw\nbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztmb250LXNpemU6dmFyKC0tZWwtbGlu\nay1mb250LXNpemUpO2ZvbnQtd2VpZ2h0OnZhcigtLWVsLWxpbmstZm9udC13ZWlnaHQpO2p1c3Rp\nZnktY29udGVudDpjZW50ZXI7b3V0bGluZTpub25lO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2\nZTt0ZXh0LWRlY29yYXRpb246bm9uZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmVsLWxpbms6aG92\nZXJ7Y29sb3I6dmFyKC0tZWwtbGluay1ob3Zlci10ZXh0LWNvbG9yKX0uZWwtbGluay5pcy11bmRl\ncmxpbmU6aG92ZXI6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tZWwtbGluay1o\nb3Zlci10ZXh0LWNvbG9yKTtib3R0b206MDtjb250ZW50OlwiXCI7aGVpZ2h0OjA7bGVmdDowO3Bv\nc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9LmVsLWxpbmsuaXMtZGlzYWJsZWR7Y29sb3I6dmFyKC0t\nZWwtbGluay1kaXNhYmxlZC10ZXh0LWNvbG9yKTtjdXJzb3I6bm90LWFsbG93ZWR9LmVsLWxpbmsg\nW2NsYXNzKj1lbC1pY29uLV0rc3BhbnttYXJnaW4tbGVmdDo1cHh9LmVsLWxpbmsuZWwtbGluay0t\nZGVmYXVsdDphZnRlcntib3JkZXItY29sb3I6dmFyKC0tZWwtbGluay1ob3Zlci10ZXh0LWNvbG9y\nKX0uZWwtbGlua19faW5uZXJ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7\nanVzdGlmeS1jb250ZW50OmNlbnRlcn0uZWwtbGluay5lbC1saW5rLS1wcmltYXJ5ey0tZWwtbGlu\nay10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnkpOy0tZWwtbGluay1ob3Zlci10ZXh0\nLWNvbG9yOnZhcigtLWVsLWNvbG9yLXByaW1hcnktbGlnaHQtMyk7LS1lbC1saW5rLWRpc2FibGVk\nLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3ItcHJpbWFyeS1saWdodC01KX0uZWwtbGluay5lbC1s\naW5rLS1wcmltYXJ5OmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1lbC1saW5rLXRleHQtY29sb3Ip\nfS5lbC1saW5rLmVsLWxpbmstLXByaW1hcnkuaXMtdW5kZXJsaW5lOmhvdmVyOmFmdGVye2JvcmRl\nci1jb2xvcjp2YXIoLS1lbC1saW5rLXRleHQtY29sb3IpfS5lbC1saW5rLmVsLWxpbmstLXN1Y2Nl\nc3N7LS1lbC1saW5rLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcyk7LS1lbC1saW5r\nLWhvdmVyLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3Itc3VjY2Vzcy1saWdodC0zKTstLWVsLWxp\nbmstZGlzYWJsZWQtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1zdWNjZXNzLWxpZ2h0LTUpfS5l\nbC1saW5rLmVsLWxpbmstLXN1Y2Nlc3M6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWVsLWxpbmst\ndGV4dC1jb2xvcil9LmVsLWxpbmsuZWwtbGluay0tc3VjY2Vzcy5pcy11bmRlcmxpbmU6aG92ZXI6\nYWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWVsLWxpbmstdGV4dC1jb2xvcil9LmVsLWxpbmsuZWwt\nbGluay0td2FybmluZ3stLWVsLWxpbmstdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5n\nKTstLWVsLWxpbmstaG92ZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nLWxpZ2h0\nLTMpOy0tZWwtbGluay1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLXdhcm5pbmct\nbGlnaHQtNSl9LmVsLWxpbmsuZWwtbGluay0td2FybmluZzphZnRlcntib3JkZXItY29sb3I6dmFy\nKC0tZWwtbGluay10ZXh0LWNvbG9yKX0uZWwtbGluay5lbC1saW5rLS13YXJuaW5nLmlzLXVuZGVy\nbGluZTpob3ZlcjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tZWwtbGluay10ZXh0LWNvbG9yKX0u\nZWwtbGluay5lbC1saW5rLS1kYW5nZXJ7LS1lbC1saW5rLXRleHQtY29sb3I6dmFyKC0tZWwtY29s\nb3ItZGFuZ2VyKTstLWVsLWxpbmstaG92ZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1kYW5n\nZXItbGlnaHQtMyk7LS1lbC1saW5rLWRpc2FibGVkLXRleHQtY29sb3I6dmFyKC0tZWwtY29sb3It\nZGFuZ2VyLWxpZ2h0LTUpfS5lbC1saW5rLmVsLWxpbmstLWRhbmdlcjphZnRlcntib3JkZXItY29s\nb3I6dmFyKC0tZWwtbGluay10ZXh0LWNvbG9yKX0uZWwtbGluay5lbC1saW5rLS1kYW5nZXIuaXMt\ndW5kZXJsaW5lOmhvdmVyOmFmdGVye2JvcmRlci1jb2xvcjp2YXIoLS1lbC1saW5rLXRleHQtY29s\nb3IpfS5lbC1saW5rLmVsLWxpbmstLWVycm9yey0tZWwtbGluay10ZXh0LWNvbG9yOnZhcigtLWVs\nLWNvbG9yLWVycm9yKTstLWVsLWxpbmstaG92ZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1l\ncnJvci1saWdodC0zKTstLWVsLWxpbmstZGlzYWJsZWQtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xv\nci1lcnJvci1saWdodC01KX0uZWwtbGluay5lbC1saW5rLS1lcnJvcjphZnRlcntib3JkZXItY29s\nb3I6dmFyKC0tZWwtbGluay10ZXh0LWNvbG9yKX0uZWwtbGluay5lbC1saW5rLS1lcnJvci5pcy11\nbmRlcmxpbmU6aG92ZXI6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWVsLWxpbmstdGV4dC1jb2xv\ncil9LmVsLWxpbmsuZWwtbGluay0taW5mb3stLWVsLWxpbmstdGV4dC1jb2xvcjp2YXIoLS1lbC1j\nb2xvci1pbmZvKTstLWVsLWxpbmstaG92ZXItdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1pbmZv\nLWxpZ2h0LTMpOy0tZWwtbGluay1kaXNhYmxlZC10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLWlu\nZm8tbGlnaHQtNSl9LmVsLWxpbmsuZWwtbGluay0taW5mbzphZnRlcntib3JkZXItY29sb3I6dmFy\nKC0tZWwtbGluay10ZXh0LWNvbG9yKX0uZWwtbGluay5lbC1saW5rLS1pbmZvLmlzLXVuZGVybGlu\nZTpob3ZlcjphZnRlcntib3JkZXItY29sb3I6dmFyKC0tZWwtbGluay10ZXh0LWNvbG9yKX0uZWwt\nZGl2aWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtZGl2aWRlci0taG9yaXpvbnRhbHtib3JkZXIt\ndG9wOjFweCB2YXIoLS1lbC1ib3JkZXItY29sb3IpIHZhcigtLWVsLWJvcmRlci1zdHlsZSk7ZGlz\ncGxheTpibG9jaztoZWlnaHQ6MXB4O21hcmdpbjoyNHB4IDA7d2lkdGg6MTAwJX0uZWwtZGl2aWRl\nci0tdmVydGljYWx7Ym9yZGVyLWxlZnQ6MXB4IHZhcigtLWVsLWJvcmRlci1jb2xvcikgdmFyKC0t\nZWwtYm9yZGVyLXN0eWxlKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MWVtO21hcmdpbjow\nIDhweDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7d2lkdGg6MXB4fS5l\nbC1kaXZpZGVyX190ZXh0e2JhY2tncm91bmQtY29sb3I6dmFyKC0tZWwtYmctY29sb3IpO2NvbG9y\nOnZhcigtLWVsLXRleHQtY29sb3ItcHJpbWFyeSk7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6\nNTAwO3BhZGRpbmc6MCAyMHB4O3Bvc2l0aW9uOmFic29sdXRlfS5lbC1kaXZpZGVyX190ZXh0Lmlz\nLWxlZnR7bGVmdDoyMHB4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpfS5lbC1kaXZpZGVyX190\nZXh0LmlzLWNlbnRlcntsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0\nZVkoLTUwJSl9LmVsLWRpdmlkZXJfX3RleHQuaXMtcmlnaHR7cmlnaHQ6MjBweDt0cmFuc2Zvcm06\ndHJhbnNsYXRlWSgtNTAlKX0uZWwtdGV4dHstLWVsLXRleHQtZm9udC1zaXplOnZhcigtLWVsLWZv\nbnQtc2l6ZS1iYXNlKTstLWVsLXRleHQtY29sb3I6dmFyKC0tZWwtdGV4dC1jb2xvci1yZWd1bGFy\nKTthbGlnbi1zZWxmOmNlbnRlcjtjb2xvcjp2YXIoLS1lbC10ZXh0LWNvbG9yKTtmb250LXNpemU6\ndmFyKC0tZWwtdGV4dC1mb250LXNpemUpO21hcmdpbjowO292ZXJmbG93LXdyYXA6YnJlYWstd29y\nZDtwYWRkaW5nOjB9LmVsLXRleHQuaXMtdHJ1bmNhdGVke2Rpc3BsYXk6aW5saW5lLWJsb2NrO21h\neC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRl\nLXNwYWNlOm5vd3JhcH0uZWwtdGV4dC5pcy1saW5lLWNsYW1we2Rpc3BsYXk6LXdlYmtpdC1pbmxp\nbmUtYm94Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtvdmVyZmxvdzpoaWRkZW59LmVsLXRl\neHQtLWxhcmdley0tZWwtdGV4dC1mb250LXNpemU6dmFyKC0tZWwtZm9udC1zaXplLW1lZGl1bSl9\nLmVsLXRleHQtLWRlZmF1bHR7LS1lbC10ZXh0LWZvbnQtc2l6ZTp2YXIoLS1lbC1mb250LXNpemUt\nYmFzZSl9LmVsLXRleHQtLXNtYWxsey0tZWwtdGV4dC1mb250LXNpemU6dmFyKC0tZWwtZm9udC1z\naXplLWV4dHJhLXNtYWxsKX0uZWwtdGV4dC5lbC10ZXh0LS1wcmltYXJ5ey0tZWwtdGV4dC1jb2xv\ncjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5KX0uZWwtdGV4dC5lbC10ZXh0LS1zdWNjZXNzey0tZWwt\ndGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1zdWNjZXNzKX0uZWwtdGV4dC5lbC10ZXh0LS13YXJu\naW5ney0tZWwtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci13YXJuaW5nKX0uZWwtdGV4dC5lbC10\nZXh0LS1kYW5nZXJ7LS1lbC10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLWRhbmdlcil9LmVsLXRl\neHQuZWwtdGV4dC0tZXJyb3J7LS1lbC10ZXh0LWNvbG9yOnZhcigtLWVsLWNvbG9yLWVycm9yKX0u\nZWwtdGV4dC5lbC10ZXh0LS1pbmZvey0tZWwtdGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1pbmZv\nKX0uZWwtdGV4dD4uZWwtaWNvbnt2ZXJ0aWNhbC1hbGlnbjotMnB4fS5lbC1iYWNrdG9wey0tZWwt\nYmFja3RvcC1iZy1jb2xvcjp2YXIoLS1lbC1iZy1jb2xvci1vdmVybGF5KTstLWVsLWJhY2t0b3At\ndGV4dC1jb2xvcjp2YXIoLS1lbC1jb2xvci1wcmltYXJ5KTstLWVsLWJhY2t0b3AtaG92ZXItYmct\nY29sb3I6dmFyKC0tZWwtYm9yZGVyLWNvbG9yLWV4dHJhLWxpZ2h0KTthbGlnbi1pdGVtczpjZW50\nZXI7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC1iYWNrdG9wLWJnLWNvbG9yKTtib3JkZXItcmFk\naXVzOjUwJTtib3gtc2hhZG93OnZhcigtLWVsLWJveC1zaGFkb3ctbGlnaHRlcik7Y29sb3I6dmFy\nKC0tZWwtYmFja3RvcC10ZXh0LWNvbG9yKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmZsZXg7Zm9u\ndC1zaXplOjIwcHg7aGVpZ2h0OjQwcHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3NpdGlvbjpm\naXhlZDt3aWR0aDo0MHB4O3otaW5kZXg6NX0uZWwtYmFja3RvcDpob3ZlcntiYWNrZ3JvdW5kLWNv\nbG9yOnZhcigtLWVsLWJhY2t0b3AtaG92ZXItYmctY29sb3IpfS5lbC1iYWNrdG9wX19pY29ue2Zv\nbnQtc2l6ZToyMHB4fS5lbC1pbWFnZV9fZXJyb3IsLmVsLWltYWdlX19pbm5lciwuZWwtaW1hZ2Vf\nX3BsYWNlaG9sZGVyLC5lbC1pbWFnZV9fd3JhcHBlcntoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlfS5l\nbC1pbWFnZXtkaXNwbGF5OmlubGluZS1ibG9jaztvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVs\nYXRpdmV9LmVsLWltYWdlX19pbm5lcntvcGFjaXR5OjE7dmVydGljYWwtYWxpZ246dG9wfS5lbC1p\nbWFnZV9faW5uZXIuaXMtbG9hZGluZ3tvcGFjaXR5OjB9LmVsLWltYWdlX193cmFwcGVye2xlZnQ6\nMDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MH0uZWwtaW1hZ2VfX2Vycm9yLC5lbC1pbWFnZV9fcGxh\nY2Vob2xkZXJ7YmFja2dyb3VuZDp2YXIoLS1lbC1maWxsLWNvbG9yLWxpZ2h0KX0uZWwtaW1hZ2Vf\nX2Vycm9ye2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS1lbC10ZXh0LWNvbG9yLXBsYWNl\naG9sZGVyKTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjE0cHg7anVzdGlmeS1jb250ZW50OmNlbnRl\ncjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmVsLWltYWdlX19wcmV2aWV3e2N1cnNvcjpwb2ludGVy\nfS5lbC1pbWFnZS12aWV3ZXJfX3dyYXBwZXJ7Ym90dG9tOjA7bGVmdDowO3Bvc2l0aW9uOmZpeGVk\nO3JpZ2h0OjA7dG9wOjB9LmVsLWltYWdlLXZpZXdlcl9fYnRue2FsaWduLWl0ZW1zOmNlbnRlcjti\nb3JkZXItcmFkaXVzOjUwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7ZGlz\ncGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7b3BhY2l0eTouODtwb3NpdGlvbjphYnNv\nbHV0ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11\nc2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ei1pbmRleDoxfS5lbC1pbWFnZS12aWV3\nZXJfX2J0biAuZWwtaWNvbntjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6aW5oZXJpdH0uZWwtaW1h\nZ2Utdmlld2VyX19jbG9zZXtmb250LXNpemU6NDBweDtoZWlnaHQ6NDBweDtyaWdodDo0MHB4O3Rv\ncDo0MHB4O3dpZHRoOjQwcHh9LmVsLWltYWdlLXZpZXdlcl9fY2FudmFze2FsaWduLWl0ZW1zOmNl\nbnRlcjtkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwb3Np\ndGlvbjpzdGF0aWM7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9u\nZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjEwMCV9LmVsLWlt\nYWdlLXZpZXdlcl9fYWN0aW9uc3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVsLXRleHQtY29sb3It\ncmVndWxhcik7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoyMnB4O2JvdHRvbTozMHB4\nO2hlaWdodDo0NHB4O2xlZnQ6NTAlO3BhZGRpbmc6MCAyM3B4O3RyYW5zZm9ybTp0cmFuc2xhdGUo\nLTUwJSk7d2lkdGg6MjgycHh9LmVsLWltYWdlLXZpZXdlcl9fYWN0aW9uc19faW5uZXJ7YWxpZ24t\naXRlbXM6Y2VudGVyO2NvbG9yOiNmZmY7Y3Vyc29yOmRlZmF1bHQ7ZGlzcGxheTpmbGV4O2ZvbnQt\nc2l6ZToyM3B4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7d2lkdGg6\nMTAwJX0uZWwtaW1hZ2Utdmlld2VyX19wcmV2e2xlZnQ6NDBweH0uZWwtaW1hZ2Utdmlld2VyX19u\nZXh0LC5lbC1pbWFnZS12aWV3ZXJfX3ByZXZ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC10ZXh0\nLWNvbG9yLXJlZ3VsYXIpO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmZmY7Zm9udC1zaXplOjI0\ncHg7aGVpZ2h0OjQ0cHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTt3aWR0aDo0\nNHB4fS5lbC1pbWFnZS12aWV3ZXJfX25leHR7cmlnaHQ6NDBweDt0ZXh0LWluZGVudDoycHh9LmVs\nLWltYWdlLXZpZXdlcl9fY2xvc2V7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1lbC10ZXh0LWNvbG9y\nLXJlZ3VsYXIpO2JvcmRlci1jb2xvcjojZmZmO2NvbG9yOiNmZmY7Zm9udC1zaXplOjI0cHg7aGVp\nZ2h0OjQ0cHg7d2lkdGg6NDRweH0uZWwtaW1hZ2Utdmlld2VyX19tYXNre2JhY2tncm91bmQ6IzAw\nMDtoZWlnaHQ6MTAwJTtsZWZ0OjA7b3BhY2l0eTouNTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3\naWR0aDoxMDAlfS52aWV3ZXItZmFkZS1lbnRlci1hY3RpdmV7LXdlYmtpdC1hbmltYXRpb246dmll\nd2VyLWZhZGUtaW4gdmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbik7YW5pbWF0aW9uOnZpZXdl\nci1mYWRlLWluIHZhcigtLWVsLXRyYW5zaXRpb24tZHVyYXRpb24pfS52aWV3ZXItZmFkZS1sZWF2\nZS1hY3RpdmV7LXdlYmtpdC1hbmltYXRpb246dmlld2VyLWZhZGUtb3V0IHZhcigtLWVsLXRyYW5z\naXRpb24tZHVyYXRpb24pO2FuaW1hdGlvbjp2aWV3ZXItZmFkZS1vdXQgdmFyKC0tZWwtdHJhbnNp\ndGlvbi1kdXJhdGlvbil9QC13ZWJraXQta2V5ZnJhbWVzIHZpZXdlci1mYWRlLWluezAle29wYWNp\ndHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjE7dHJhbnNm\nb3JtOnRyYW5zbGF0ZVooMCl9fUBrZXlmcmFtZXMgdmlld2VyLWZhZGUtaW57MCV7b3BhY2l0eTow\nO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06\ndHJhbnNsYXRlWigwKX19QC13ZWJraXQta2V5ZnJhbWVzIHZpZXdlci1mYWRlLW91dHswJXtvcGFj\naXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFu\nc2xhdGUzZCgwLC0yMHB4LDApfX1Aa2V5ZnJhbWVzIHZpZXdlci1mYWRlLW91dHswJXtvcGFjaXR5\nOjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xh\ndGUzZCgwLC0yMHB4LDApfX0uZWwtZW1wdHl7LS1lbC1lbXB0eS1wYWRkaW5nOjQwcHggMDstLWVs\nLWVtcHR5LWltYWdlLXdpZHRoOjE2MHB4Oy0tZWwtZW1wdHktZGVzY3JpcHRpb24tbWFyZ2luLXRv\ncDoyMHB4Oy0tZWwtZW1wdHktYm90dG9tLW1hcmdpbi10b3A6MjBweDstLWVsLWVtcHR5LWZpbGwt\nY29sb3ItMDp2YXIoLS1lbC1jb2xvci13aGl0ZSk7LS1lbC1lbXB0eS1maWxsLWNvbG9yLTE6I2Zj\nZmNmZDstLWVsLWVtcHR5LWZpbGwtY29sb3ItMjojZjhmOWZiOy0tZWwtZW1wdHktZmlsbC1jb2xv\nci0zOiNmN2Y4ZmM7LS1lbC1lbXB0eS1maWxsLWNvbG9yLTQ6I2VlZWZmMzstLWVsLWVtcHR5LWZp\nbGwtY29sb3ItNTojZWRlZWYyOy0tZWwtZW1wdHktZmlsbC1jb2xvci02OiNlOWViZWY7LS1lbC1l\nbXB0eS1maWxsLWNvbG9yLTc6I2U1ZTdlOTstLWVsLWVtcHR5LWZpbGwtY29sb3ItODojZTBlM2U5\nOy0tZWwtZW1wdHktZmlsbC1jb2xvci05OiNkNWQ3ZGU7YWxpZ24taXRlbXM6Y2VudGVyO2JveC1z\naXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3Rp\nZnktY29udGVudDpjZW50ZXI7cGFkZGluZzp2YXIoLS1lbC1lbXB0eS1wYWRkaW5nKTt0ZXh0LWFs\naWduOmNlbnRlcn0uZWwtZW1wdHlfX2ltYWdle3dpZHRoOnZhcigtLWVsLWVtcHR5LWltYWdlLXdp\nZHRoKX0uZWwtZW1wdHlfX2ltYWdlIGltZ3toZWlnaHQ6MTAwJTstby1vYmplY3QtZml0OmNvbnRh\naW47b2JqZWN0LWZpdDpjb250YWluOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXIt\nc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt2ZXJ0aWNh\nbC1hbGlnbjp0b3A7d2lkdGg6MTAwJX0uZWwtZW1wdHlfX2ltYWdlIHN2Z3tjb2xvcjp2YXIoLS1l\nbC1zdmctbW9ub2Nocm9tZS1ncmV5KTtmaWxsOmN1cnJlbnRDb2xvcjtoZWlnaHQ6MTAwJTt2ZXJ0\naWNhbC1hbGlnbjp0b3A7d2lkdGg6MTAwJX0uZWwtZW1wdHlfX2Rlc2NyaXB0aW9ue21hcmdpbi10\nb3A6dmFyKC0tZWwtZW1wdHktZGVzY3JpcHRpb24tbWFyZ2luLXRvcCl9LmVsLWVtcHR5X19kZXNj\ncmlwdGlvbiBwe2NvbG9yOnZhcigtLWVsLXRleHQtY29sb3Itc2Vjb25kYXJ5KTtmb250LXNpemU6\ndmFyKC0tZWwtZm9udC1zaXplLWJhc2UpO21hcmdpbjowfS5lbC1lbXB0eV9fYm90dG9te21hcmdp\nbi10b3A6dmFyKC0tZWwtZW1wdHktYm90dG9tLW1hcmdpbi10b3ApfS5lbC1za2VsZXRvbnstLWVs\nLXNrZWxldG9uLWNvbG9yOnZhcigtLWVsLWZpbGwtY29sb3IpOy0tZWwtc2tlbGV0b24tdG8tY29s\nb3I6dmFyKC0tZWwtZmlsbC1jb2xvci1kYXJrZXIpfUAtd2Via2l0LWtleWZyYW1lcyBlbC1za2Vs\nZXRvbi1sb2FkaW5nezAle2JhY2tncm91bmQtcG9zaXRpb246MTAwJSA1MCV9dG97YmFja2dyb3Vu\nZC1wb3NpdGlvbjowIDUwJX19QGtleWZyYW1lcyBlbC1za2VsZXRvbi1sb2FkaW5nezAle2JhY2tn\ncm91bmQtcG9zaXRpb246MTAwJSA1MCV9dG97YmFja2dyb3VuZC1wb3NpdGlvbjowIDUwJX19LmVs\nLXNrZWxldG9ue3dpZHRoOjEwMCV9LmVsLXNrZWxldG9uX19maXJzdC1saW5lLC5lbC1za2VsZXRv\nbl9fcGFyYWdyYXBoe2JhY2tncm91bmQ6dmFyKC0tZWwtc2tlbGV0b24tY29sb3IpO2hlaWdodDox\nNnB4O21hcmdpbi10b3A6MTZweH0uZWwtc2tlbGV0b24uaXMtYW5pbWF0ZWQgLmVsLXNrZWxldG9u\nX19pdGVtey13ZWJraXQtYW5pbWF0aW9uOmVsLXNrZWxldG9uLWxvYWRpbmcgMS40cyBlYXNlIGlu\nZmluaXRlO2FuaW1hdGlvbjplbC1za2VsZXRvbi1sb2FkaW5nIDEuNHMgZWFzZSBpbmZpbml0ZTti\nYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx2YXIoLS1lbC1za2VsZXRvbi1jb2xvcikg\nMjUlLHZhcigtLWVsLXNrZWxldG9uLXRvLWNvbG9yKSAzNyUsdmFyKC0tZWwtc2tlbGV0b24tY29s\nb3IpIDYzJSk7YmFja2dyb3VuZC1zaXplOjQwMCUgMTAwJX0uZWwtc2tlbGV0b257LS1lbC1za2Vs\nZXRvbi1jaXJjbGUtc2l6ZTp2YXIoLS1lbC1hdmF0YXItc2l6ZSl9LmVsLXNrZWxldG9uX19pdGVt\ne2JhY2tncm91bmQ6dmFyKC0tZWwtc2tlbGV0b24tY29sb3IpO2JvcmRlci1yYWRpdXM6dmFyKC0t\nZWwtYm9yZGVyLXJhZGl1cy1iYXNlKTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6MTZweDt3\naWR0aDoxMDAlfS5lbC1za2VsZXRvbl9fY2lyY2xle2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDp2\nYXIoLS1lbC1za2VsZXRvbi1jaXJjbGUtc2l6ZSk7bGluZS1oZWlnaHQ6dmFyKC0tZWwtc2tlbGV0\nb24tY2lyY2xlLXNpemUpO3dpZHRoOnZhcigtLWVsLXNrZWxldG9uLWNpcmNsZS1zaXplKX0uZWwt\nc2tlbGV0b25fX2J1dHRvbntib3JkZXItcmFkaXVzOjRweDtoZWlnaHQ6NDBweDt3aWR0aDo2NHB4\nfS5lbC1za2VsZXRvbl9fcHt3aWR0aDoxMDAlfS5lbC1za2VsZXRvbl9fcC5pcy1sYXN0e3dpZHRo\nOjYxJX0uZWwtc2tlbGV0b25fX3AuaXMtZmlyc3R7d2lkdGg6MzMlfS5lbC1za2VsZXRvbl9fdGV4\ndHtoZWlnaHQ6dmFyKC0tZWwtZm9udC1zaXplLXNtYWxsKTt3aWR0aDoxMDAlfS5lbC1za2VsZXRv\nbl9fY2FwdGlvbntoZWlnaHQ6dmFyKC0tZWwtZm9udC1zaXplLWV4dHJhLXNtYWxsKX0uZWwtc2tl\nbGV0b25fX2gxe2hlaWdodDp2YXIoLS1lbC1mb250LXNpemUtZXh0cmEtbGFyZ2UpfS5lbC1za2Vs\nZXRvbl9faDN7aGVpZ2h0OnZhcigtLWVsLWZvbnQtc2l6ZS1sYXJnZSl9LmVsLXNrZWxldG9uX19o\nNXtoZWlnaHQ6dmFyKC0tZWwtZm9udC1zaXplLW1lZGl1bSl9LmVsLXNrZWxldG9uX19pbWFnZXth\nbGlnbi1pdGVtczpjZW50ZXI7Ym9yZGVyLXJhZGl1czowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNv\nbnRlbnQ6Y2VudGVyO3dpZHRoOnVuc2V0fS5lbC1za2VsZXRvbl9faW1hZ2Ugc3Zne2NvbG9yOnZh\ncigtLWVsLXN2Zy1tb25vY2hyb21lLWdyZXkpO2ZpbGw6Y3VycmVudENvbG9yO2hlaWdodDoyMiU7\nd2lkdGg6MjIlfS5wb3N0cy1jb250YWluZXItaXRlbVtkYXRhLXYtNzc0MWQwMzNde3dpZHRoOi13\nZWJraXQtZmlsbC1hdmFpbGFibGU7d2lkdGg6LW1vei1hdmFpbGFibGV9LnBvc3RzLWl0ZW0tdGl0\nbGVbZGF0YS12LTc3NDFkMDMzXXtmb250LXdlaWdodDo3MDB9LnBvc3RzLWl0ZW0tdGl0bGVbZGF0\nYS12LTc3NDFkMDMzXSwucG9zdHMtaXRlbS1jb250ZW50W2RhdGEtdi03NzQxZDAzM10sLnBvc3Rz\nLWl0ZW0tbWVkaWEtY29udGFpbmVyW2RhdGEtdi03NzQxZDAzM117bWFyZ2luOjEwcHggMH0ucG9z\ndHMtaXRlbS1mb290ZXJbZGF0YS12LTc3NDFkMDMzXXttYXJnaW46MTVweCAwIDVweH0ucG9zdHMt\naXRlbS1mb290ZXIgLmVsLWNvbFtkYXRhLXYtNzc0MWQwMzNde3RleHQtYWxpZ246Y2VudGVyfS5w\nb3N0cy1pdGVtLWZvb3Rlci1pY29uLWNvbnRhaW5lcltkYXRhLXYtNzc0MWQwMzNde2Rpc3BsYXk6\nZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MHB4IDZw\neH0ucG9zdHMtaXRlbS1yaWdodC11c2VyLWluZm9bZGF0YS12LTc3NDFkMDMzXXtwYWRkaW5nOjAg\nMTBweH0ucG9zdHMtY29udGFpbmVyW2RhdGEtdi1mNTZjMzJiYV17YmFja2dyb3VuZDojZjJmMmY0\nO3BhZGRpbmc6MTBweH0ucG9zdHMtY29udGFpbmVyLWl0ZW1bZGF0YS12LWY1NmMzMmJhXXtiYWNr\nZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czoxMnB4O21hcmdpbjoxMHB4IDA7cGFkZGluZzoxMHB4\nfS5wb3N0cy1pdGVtLXRpdGxlW2RhdGEtdi1mNTZjMzJiYV17Zm9udC13ZWlnaHQ6NzAwfS5wb3N0\ncy1pdGVtLXRpdGxlW2RhdGEtdi1mNTZjMzJiYV0sLnBvc3RzLWl0ZW0tY29udGVudFtkYXRhLXYt\nZjU2YzMyYmFdLC5wb3N0cy1pdGVtLW1lZGlhLWNvbnRhaW5lcltkYXRhLXYtZjU2YzMyYmFde21h\ncmdpbjoxMHB4IDB9LnBvc3RzLWl0ZW0tZm9vdGVyW2RhdGEtdi1mNTZjMzJiYV17bWFyZ2luOjE1\ncHggMCA1cHh9LnBvc3RzLWl0ZW0tZm9vdGVyIC5lbC1jb2xbZGF0YS12LWY1NmMzMmJhXXt0ZXh0\nLWFsaWduOmNlbnRlcn0ucG9zdHMtaXRlbS1mb290ZXItaWNvbi1jb250YWluZXJbZGF0YS12LWY1\nNmMzMmJhXXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpj\nZW50ZXI7Z2FwOjBweCA2cHh9LnBvc3RzLWl0ZW0tcmlnaHQtdXNlci1pbmZvW2RhdGEtdi1mNTZj\nMzJiYV17cGFkZGluZzowIDEwcHh9LmZvbGxvdy1mb3J1bS1jb250YWluZXJbZGF0YS12LTAxYjJj\nZWJmXXtiYWNrZ3JvdW5kOiNmMmYyZjQ7cGFkZGluZzoxMHB4fS5mb2xsb3ctZm9ydW0tbGlzdC1j\nb250YWluZXJbZGF0YS12LTAxYjJjZWJmXXtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czox\nMnB4O21hcmdpbjoxMHB4IDA7cGFkZGluZzoxMHB4fS5mb2xsb3ctZm9ydW0taXRlbVtkYXRhLXYt\nMDFiMmNlYmZde3dpZHRoOjUwJTttYXgtd2lkdGg6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVt\nczpmbGV4LXN0YXJ0O21hcmdpbjoxMHB4IDB9LmZvbGxvdy1mb3J1bS1hdmF0YXJbZGF0YS12LTAx\nYjJjZWJmXXtib3JkZXItcmFkaXVzOjEycHh9LmZvbGxvdy1mb3J1bS1pdGVtLXJpZ2h0LWNvbnRh\naW5lcltkYXRhLXYtMDFiMmNlYmZde21hcmdpbjowIDEwcHg7d2lkdGg6aW5oZXJpdDtkaXNwbGF5\nOmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5mb2xsb3ctZm9ydW0taXRlbS1uYW1lW2RhdGEt\ndi0wMWIyY2ViZl17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDotd2Via2l0\nLWZpbGwtYXZhaWxhYmxlO3dpZHRoOi1tb3otYXZhaWxhYmxlfS5mb2xsb3ctZm9ydW0taXRlbS1s\nZXZlbFtkYXRhLWxldmVsXVtkYXRhLXYtMDFiMmNlYmZde21hcmdpbjo1cHg7cGFkZGluZzoycHg7\nYm9yZGVyLXJhZGl1czozcHg7Zm9udC1zaXplOi42cmVtO2xpbmUtaGVpZ2h0Oi42cmVtO2ZvbnQt\nd2VpZ2h0OjcwMDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLTVmZjFjNDMyKTtj\nb2xvcjp2YXIoLS03N2U1OTU2Yyl9LmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9\nXCIwXCJdW2RhdGEtdi0wMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2\nZWw9XCIxXCJdW2RhdGEtdi0wMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEt\nbGV2ZWw9XCIyXCJdW2RhdGEtdi0wMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2Rh\ndGEtbGV2ZWw9XCIzXCJdW2RhdGEtdi0wMWIyY2ViZl17YmFja2dyb3VuZDp2YXIoLS1mNDJmYmEx\nMCl9LmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCI0XCJdW2RhdGEtdi0wMWIy\nY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCI1XCJdW2RhdGEtdi0w\nMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCI2XCJdW2RhdGEt\ndi0wMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCI3XCJdW2Rh\ndGEtdi0wMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCI4XCJd\nW2RhdGEtdi0wMWIyY2ViZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCI5\nXCJdW2RhdGEtdi0wMWIyY2ViZl17YmFja2dyb3VuZDp2YXIoLS1mNDJmOWJmYyl9LmZvbGxvdy1m\nb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCIxMFwiXVtkYXRhLXYtMDFiMmNlYmZdLC5mb2xs\nb3ctZm9ydW0taXRlbS1sZXZlbFtkYXRhLWxldmVsPVwiMTFcIl1bZGF0YS12LTAxYjJjZWJmXSwu\nZm9sbG93LWZvcnVtLWl0ZW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjEyXCJdW2RhdGEtdi0wMWIyY2Vi\nZl0sLmZvbGxvdy1mb3J1bS1pdGVtLWxldmVsW2RhdGEtbGV2ZWw9XCIxM1wiXVtkYXRhLXYtMDFi\nMmNlYmZdLC5mb2xsb3ctZm9ydW0taXRlbS1sZXZlbFtkYXRhLWxldmVsPVwiMTRcIl1bZGF0YS12\nLTAxYjJjZWJmXSwuZm9sbG93LWZvcnVtLWl0ZW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjE1XCJdW2Rh\ndGEtdi0wMWIyY2ViZl17YmFja2dyb3VuZDp2YXIoLS1hNzM2YWI1MCl9LmZvbGxvdy1mb3J1bS1p\ndGVtLWxldmVsW2RhdGEtbGV2ZWw9XCIxNlwiXVtkYXRhLXYtMDFiMmNlYmZdLC5mb2xsb3ctZm9y\ndW0taXRlbS1sZXZlbFtkYXRhLWxldmVsPVwiMTdcIl1bZGF0YS12LTAxYjJjZWJmXSwuZm9sbG93\nLWZvcnVtLWl0ZW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjE4XCJdW2RhdGEtdi0wMWIyY2ViZl17YmFj\na2dyb3VuZDp2YXIoLS1hNzMxMzZkNil9LmZvbGxvdy1mb3J1bS1pdGVtLWluZm9bZGF0YS12LTAx\nYjJjZWJmXXt3b3JkLXdyYXA6YnJlYWstd29yZH0jbWFpbltkYXRhLXYtNDkyMjJiMmVde3otaW5k\nZXg6MTAwMDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5iaWctdGV4dFtkYXRhLXYtNDkyMjJiMmVd\ne2ZvbnQtd2VpZ2h0OjcwMH0udG9wLWNvbnRhaW5lcltkYXRhLXYtNDkyMjJiMmVde3dpZHRoOi13\nZWJraXQtZmlsbC1hdmFpbGFibGU7d2lkdGg6LW1vei1hdmFpbGFibGU7cGFkZGluZzoxNXB4IDE1\ncHggMH0udXNlci1pbmZvLWJnW2RhdGEtdi00OTIyMmIyZV17d2lkdGg6MTAwJTtoZWlnaHQ6MTAw\ncHh9LnVzZXItaW5mby1iZy1tYWluW2RhdGEtdi00OTIyMmIyZV17d2lkdGg6MTAwJTtoZWlnaHQ6\nMTYwcHg7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp1cmwoaHR0cHM6XC9cL3RiMi5iZHN0\nYXRpYy5jb21cL3RiXC9tb2JpbGVcL3N1c2VyXC9pbWdcL2hvbWVfY2FyZF9iYWNrXzZjZGZjYTUu\nanBnKTtiYWNrZ3JvdW5kLXNpemU6MTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXR9LnVz\nZXItYXZhdGFyLXRvcC1iYWNrZ3JvdW5kW2RhdGEtdi00OTIyMmIyZV17cG9zaXRpb246YWJzb2x1\ndGU7d2lkdGg6MTAwJTtoZWlnaHQ6NDAlO3BhZGRpbmc6MDttYXJnaW46MDtib3JkZXItdG9wLWxl\nZnQtcmFkaXVzOjEycHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNm\nZmY7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTAwJSl9LnVzZXItaW5mby1jb250YWluZXJbZGF0YS12\nLTQ5MjIyYjJlXXtwYWRkaW5nOjAgMTBweH0ubmF2LWxlZnQtYXJyb3ctaWNvbltkYXRhLXYtYzk1\nMTFkNDRde2FsaWduLWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ubmF2\nLXRpdGxlW2RhdGEtdi1jOTUxMWQ0NF17Zm9udC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVy\nO3BhZGRpbmc6MTBweH0udXNlci1hdmF0YXJbZGF0YS12LWM5NTExZDQ0XXt0ZXh0LWFsaWduOmNl\nbnRlcjtwYWRkaW5nLWJvdHRvbToyMHB4fS51c2VyLWluZm8taXRlbVtkYXRhLXYtYzk1MTFkNDRd\ne2Rpc3BsYXk6ZmxleDtwYWRkaW5nOjEwcHh9LnVzZXItZGVzYy1rZXlbZGF0YS12LWM5NTExZDQ0\nXXt3aWR0aDo2MHB4O2Rpc3BsYXk6YmxvY2t9LnVzZXItZW5kLXRleHRbZGF0YS12LWM5NTExZDQ0\nXXtwYWRkaW5nOjAgMjBweH0uZWwtc2Nyb2xsYmFyey0tZWwtc2Nyb2xsYmFyLW9wYWNpdHk6LjM7\nLS1lbC1zY3JvbGxiYXItYmctY29sb3I6dmFyKC0tZWwtdGV4dC1jb2xvci1zZWNvbmRhcnkpOy0t\nZWwtc2Nyb2xsYmFyLWhvdmVyLW9wYWNpdHk6LjU7LS1lbC1zY3JvbGxiYXItaG92ZXItYmctY29s\nb3I6dmFyKC0tZWwtdGV4dC1jb2xvci1zZWNvbmRhcnkpO2hlaWdodDoxMDAlO292ZXJmbG93Omhp\nZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZX0uZWwtc2Nyb2xsYmFyX193cmFwe2hlaWdodDoxMDAlO292\nZXJmbG93OmF1dG99LmVsLXNjcm9sbGJhcl9fd3JhcC0taGlkZGVuLWRlZmF1bHR7c2Nyb2xsYmFy\nLXdpZHRoOm5vbmV9LmVsLXNjcm9sbGJhcl9fd3JhcC0taGlkZGVuLWRlZmF1bHQ6Oi13ZWJraXQt\nc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0uZWwtc2Nyb2xsYmFyX190aHVtYntiYWNrZ3JvdW5kLWNv\nbG9yOnZhcigtLWVsLXNjcm9sbGJhci1iZy1jb2xvcix2YXIoLS1lbC10ZXh0LWNvbG9yLXNlY29u\nZGFyeSkpO2JvcmRlci1yYWRpdXM6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2Nr\nO2hlaWdodDowO29wYWNpdHk6dmFyKC0tZWwtc2Nyb2xsYmFyLW9wYWNpdHksLjMpO3Bvc2l0aW9u\nOnJlbGF0aXZlO3RyYW5zaXRpb246dmFyKC0tZWwtdHJhbnNpdGlvbi1kdXJhdGlvbikgYmFja2dy\nb3VuZC1jb2xvcjt3aWR0aDowfS5lbC1zY3JvbGxiYXJfX3RodW1iOmhvdmVye2JhY2tncm91bmQt\nY29sb3I6dmFyKC0tZWwtc2Nyb2xsYmFyLWhvdmVyLWJnLWNvbG9yLHZhcigtLWVsLXRleHQtY29s\nb3Itc2Vjb25kYXJ5KSk7b3BhY2l0eTp2YXIoLS1lbC1zY3JvbGxiYXItaG92ZXItb3BhY2l0eSwu\nNSl9LmVsLXNjcm9sbGJhcl9fYmFye2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbToycHg7cG9zaXRp\nb246YWJzb2x1dGU7cmlnaHQ6MnB4O3otaW5kZXg6MX0uZWwtc2Nyb2xsYmFyX19iYXIuaXMtdmVy\ndGljYWx7dG9wOjJweDt3aWR0aDo2cHh9LmVsLXNjcm9sbGJhcl9fYmFyLmlzLXZlcnRpY2FsPmRp\ndnt3aWR0aDoxMDAlfS5lbC1zY3JvbGxiYXJfX2Jhci5pcy1ob3Jpem9udGFse2hlaWdodDo2cHg7\nbGVmdDoycHh9LmVsLXNjcm9sbGJhcl9fYmFyLmlzLWhvcml6b250YWw+ZGl2e2hlaWdodDoxMDAl\nfS5lbC1zY3JvbGxiYXItZmFkZS1lbnRlci1hY3RpdmV7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNHMg\nZWFzZS1vdXR9LmVsLXNjcm9sbGJhci1mYWRlLWxlYXZlLWFjdGl2ZXt0cmFuc2l0aW9uOm9wYWNp\ndHkgLjEycyBlYXNlLW91dH0uZWwtc2Nyb2xsYmFyLWZhZGUtZW50ZXItZnJvbSwuZWwtc2Nyb2xs\nYmFyLWZhZGUtbGVhdmUtYWN0aXZle29wYWNpdHk6MH0udXNlci10b3BbZGF0YS12LTgyYjVkMmQx\nXXtoZWlnaHQ6NDBweDt3aWR0aDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlfS50b3AtbGVmdC1hcnJv\ndy1pY29uW2RhdGEtdi04MmI1ZDJkMV17YWxpZ24tY29udGVudDpjZW50ZXI7cGFkZGluZy1sZWZ0\nOjAhaW1wb3J0YW50fS50b3AtdGl0bGUtbmFtZVtkYXRhLXYtODJiNWQyZDFde3RleHQtYWxpZ246\nY2VudGVyO3BhZGRpbmc6MTBweH0udXNlci1tYWluW2RhdGEtdi04MmI1ZDJkMV17cGFkZGluZzow\nO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MHB4O3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3dpZHRo\nOjEwMCU7aGVpZ2h0OmNhbGMoMTAwJSAtIDQwcHgpfS51c2VyLWNvbnRhaW5lcltkYXRhLXYtODJi\nNWQyZDFde3BhZGRpbmc6MCAxMHB4fS51c2VyLWNvbnRhaW5lciAuZWwtc2Nyb2xsYmFyX192aWV3\nW2RhdGEtdi04MmI1ZDJkMV17aGVpZ2h0OjEwMCV9LnVzZXItaXRlbVtkYXRhLXYtODJiNWQyZDFd\ne21hcmdpbjoxMHB4IDB9LnVzZXItaXRlbS1yb3dbZGF0YS12LTgyYjVkMmQxXXtkaXNwbGF5OmZs\nZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS51c2Vy\nLWl0ZW0tcm93LWNlbnRlcltkYXRhLXYtODJiNWQyZDFde3BhZGRpbmc6MCAxMHB4fS51c2VyLW5h\nbWVbZGF0YS12LTgyYjVkMmQxXSwudXNlci1zaWduLXRleHRbZGF0YS12LTgyYjVkMmQxXXt0ZXh0\nLWFsaWduOmxlZnR9LnVzZXItc2lnbi10ZXh0W2RhdGEtdi04MmI1ZDJkMV17Y29sb3I6I2EyYTJh\nMn0udXNlci1mb2xsb3ctYnRuW2RhdGEtdi04MmI1ZDJkMV17ZmxvYXQ6cmlnaHR9LnVzZXItaW5m\nb1tkYXRhLXYtODJiNWQyZDFde2Rpc3BsYXk6Z3JpZH0udXNlci1pdGVtLXJvdy1sZWZ0W2RhdGEt\ndi04MmI1ZDJkMV17ZGlzcGxheTpmbGV4fS51c2VyLWl0ZW0tcm93LXJpZ2h0W2RhdGEtdi04MmI1\nZDJkMV17ZmxvYXQ6cmlnaHR9LnVzZXItdG9wW2RhdGEtdi00MTZkMWMxMF17aGVpZ2h0OjQwcHg7\nd2lkdGg6MTAwJTtwb3NpdGlvbjpyZWxhdGl2ZX0udG9wLWxlZnQtYXJyb3ctaWNvbltkYXRhLXYt\nNDE2ZDFjMTBde2FsaWduLWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0u\ndG9wLXRpdGxlLW5hbWVbZGF0YS12LTQxNmQxYzEwXXt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5n\nOjEwcHh9LnVzZXItbWFpbltkYXRhLXYtNDE2ZDFjMTBde3BhZGRpbmc6MDtwb3NpdGlvbjphYnNv\nbHV0ZTtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDpjYWxjKDEwMCUg\nLSA0MHB4KTt0b3A6NDBweH0udXNlci1jb250YWluZXJbZGF0YS12LTQxNmQxYzEwXXtwYWRkaW5n\nOjAgMTBweH0udXNlci1jb250YWluZXIgLmVsLXNjcm9sbGJhcl9fdmlld1tkYXRhLXYtNDE2ZDFj\nMTBde2hlaWdodDoxMDAlfS51c2VyLWl0ZW1bZGF0YS12LTQxNmQxYzEwXXttYXJnaW46MTBweCAw\nfS51c2VyLWl0ZW0tcm93W2RhdGEtdi00MTZkMWMxMF17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1z\nOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0udXNlci1pdGVtLXJvdy1jZW50\nZXJbZGF0YS12LTQxNmQxYzEwXXtwYWRkaW5nOjAgMTBweDthbGlnbi1jb250ZW50OmNlbnRlcn0u\ndXNlci1uYW1lW2RhdGEtdi00MTZkMWMxMF0sLnVzZXItc2lnbi10ZXh0W2RhdGEtdi00MTZkMWMx\nMF17dGV4dC1hbGlnbjpsZWZ0fS51c2VyLXNpZ24tdGV4dFtkYXRhLXYtNDE2ZDFjMTBde2NvbG9y\nOiNhMmEyYTJ9LnVzZXItZm9sbG93LWJ0bltkYXRhLXYtNDE2ZDFjMTBde2Zsb2F0OnJpZ2h0fS51\nc2VyLWluZm9bZGF0YS12LTQxNmQxYzEwXXtkaXNwbGF5OmdyaWR9LnVzZXItaXRlbS1yb3ctbGVm\ndFtkYXRhLXYtNDE2ZDFjMTBde2Rpc3BsYXk6ZmxleH0udXNlci1pdGVtLXJvdy1yaWdodFtkYXRh\nLXYtNDE2ZDFjMTBde2Zsb2F0OnJpZ2h0fSAnKTtcblxuKGZ1bmN0aW9uICh2dWUsIFFtc2csIFV0\naWxzLCBET01VdGlscywgcG9wcywgVmlld2VyLCBwaW5pYSQxLCBpY29uc1Z1ZSwgdnVlRGVtaSwg\ndnVlUm91dGVyLCBFbGVtZW50UGx1cykge1xuICAndXNlIHN0cmljdCc7XG5cbiAgdmFyIF9fZGVm\nUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbiAgdmFyIF9fZGVmTm9ybWFsUHJvcCA9IChv\nYmosIGtleSwgdmFsdWUpID0+IGtleSBpbiBvYmogPyBfX2RlZlByb3Aob2JqLCBrZXksIHsgZW51\nbWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWUg\nfSkgOiBvYmpba2V5XSA9IHZhbHVlO1xuICB2YXIgX19wdWJsaWNGaWVsZCA9IChvYmosIGtleSwg\ndmFsdWUpID0+IF9fZGVmTm9ybWFsUHJvcChvYmosIHR5cGVvZiBrZXkgIT09IFwic3ltYm9sXCIg\nPyBrZXkgKyBcIlwiIDoga2V5LCB2YWx1ZSk7XG4gIHZhciBfYTI7XG4gIHZhciBfR01fZGVsZXRl\nVmFsdWUgPSBcLyogQF9fUFVSRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX2RlbGV0ZVZhbHVlICE9\nIFwidW5kZWZpbmVkXCIgPyBHTV9kZWxldGVWYWx1ZSA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV9n\nZXRSZXNvdXJjZVRleHQgPSBcLyogQF9fUFVSRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX2dldFJl\nc291cmNlVGV4dCAhPSBcInVuZGVmaW5lZFwiID8gR01fZ2V0UmVzb3VyY2VUZXh0IDogdm9pZCAw\nKSgpO1xuICB2YXIgX0dNX2dldFZhbHVlID0gXC8qIEBfX1BVUkVfXyAqXC8gKCgpID0+IHR5cGVv\nZiBHTV9nZXRWYWx1ZSAhPSBcInVuZGVmaW5lZFwiID8gR01fZ2V0VmFsdWUgOiB2b2lkIDApKCk7\nXG4gIHZhciBfR01faW5mbyA9IFwvKiBAX19QVVJFX18gKlwvICgoKSA9PiB0eXBlb2YgR01faW5m\nbyAhPSBcInVuZGVmaW5lZFwiID8gR01faW5mbyA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV9yZWdp\nc3Rlck1lbnVDb21tYW5kID0gXC8qIEBfX1BVUkVfXyAqXC8gKCgpID0+IHR5cGVvZiBHTV9yZWdp\nc3Rlck1lbnVDb21tYW5kICE9IFwidW5kZWZpbmVkXCIgPyBHTV9yZWdpc3Rlck1lbnVDb21tYW5k\nIDogdm9pZCAwKSgpO1xuICB2YXIgX0dNX3NldFZhbHVlID0gXC8qIEBfX1BVUkVfXyAqXC8gKCgp\nID0+IHR5cGVvZiBHTV9zZXRWYWx1ZSAhPSBcInVuZGVmaW5lZFwiID8gR01fc2V0VmFsdWUgOiB2\nb2lkIDApKCk7XG4gIHZhciBfR01fdW5yZWdpc3Rlck1lbnVDb21tYW5kID0gXC8qIEBfX1BVUkVf\nXyAqXC8gKCgpID0+IHR5cGVvZiBHTV91bnJlZ2lzdGVyTWVudUNvbW1hbmQgIT0gXCJ1bmRlZmlu\nZWRcIiA\/IEdNX3VucmVnaXN0ZXJNZW51Q29tbWFuZCA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV94\nbWxodHRwUmVxdWVzdCA9IFwvKiBAX19QVVJFX18gKlwvICgoKSA9PiB0eXBlb2YgR01feG1saHR0\ncFJlcXVlc3QgIT0gXCJ1bmRlZmluZWRcIiA\/IEdNX3htbGh0dHBSZXF1ZXN0IDogdm9pZCAwKSgp\nO1xuICB2YXIgX3Vuc2FmZVdpbmRvdyA9IFwvKiBAX19QVVJFX18gKlwvICgoKSA9PiB0eXBlb2Yg\ndW5zYWZlV2luZG93ICE9IFwidW5kZWZpbmVkXCIgPyB1bnNhZmVXaW5kb3cgOiB2b2lkIDApKCk7\nXG4gIHZhciBfbW9ua2V5V2luZG93ID0gXC8qIEBfX1BVUkVfXyAqXC8gKCgpID0+IHdpbmRvdyko\nKTtcbiAgY29uc3QgQmFpZHVSb3V0ZXIgPSB7XG4gICAgXC8qKlxuICAgICAqIOeZvuW6puaQnOe0\nolxuICAgICAqXC9cbiAgICBpc1NlYXJjaCgpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAg\nICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaChcbiAgICAgICAgICBcL15odHRwKHN8KTpc\nXFwvXFxcLyhtWzAtOV17MCwyfXx3d3cpLmJhaWR1LmNvbVxcXC8uKlwvZ1xuICAgICAgICApXG4g\nICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeZvuW6puaQnOe0oiAtIFwvYmhcbiAg\nICAgKiDnmb7luqblgaXlurdcbiAgICAgKlwvXG4gICAgaXNTZWFyY2hCaCgpIHtcbiAgICAgIHJl\ndHVybiBCb29sZWFuKFxuICAgICAgICB0aGlzLmlzU2VhcmNoKCkgJiYgd2luZG93LmxvY2F0aW9u\nLnBhdGhuYW1lLnN0YXJ0c1dpdGgoXCJcL2JoXCIpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOeZvuW6puaQnOe0oiAtIFwvdmlkZW9cL3BhZ2VcbiAgICAgKiDop4bpopHpobVc\nbiAgICAgKlwvXG4gICAgaXNTZWFyY2hWaWRlbygpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxu\nICAgICAgICB0aGlzLmlzU2VhcmNoKCkgJiYgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0\nc1dpdGgoXCJcL3ZpZGVvXC9wYWdlXCIpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAg\nICAqIOeZvuW6puaQnOe0ouS4u+mhtVxuICAgICAqXC9cbiAgICBpc1NlYXJjaEhvbWUoKSB7XG4g\nICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2go\nXG4gICAgICAgICAgXC9eaHR0cChzfCk6XFxcL1xcXC8obVswLTldezAsMn18d3d3KS5iYWlkdS5j\nb21cXFwvJFwvZ1xuICAgICAgICApIHx8IHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKFxuICAg\nICAgICAgIFwvXmh0dHAoc3wpOlxcXC9cXFwvKG1bMC05XXswLDJ9fHd3dykuYmFpZHUuY29tXFxc\nLyhcXD9yZWY9fFxcP3RuPXxcXD9mcm9tPXwjXFxcLylcL2dcbiAgICAgICAgKVxuICAgICAgKTtc\nbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDnmb7luqbmkJzntKLlhbblroPljaHniYfmkJzntKLn\nu5PmnpzpobXpnaJcbiAgICAgKiBcL3NmXC92c2VhcmNoXG4gICAgICog5L6L5aaC77ya6KeG6aKR\n44CB56yU6K6w44CB6LS05ZCn44CB5Zu+54mH44CB6LWE6K6v44CB6Zeu562U44CB5paH5bqTLi4u\n562JXG4gICAgICpcL1xuICAgIGlzU2VhcmNoVlNlYXJjaCgpIHtcbiAgICAgIHJldHVybiB0aGlz\nLmlzU2VhcmNoKCkgJiYgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoXCJcL3Nm\nXC92c2VhcmNoXCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeZvuW6puaQnOe0ouWFtuWu\ng+WNoeeJh+aQnOe0oue7k+aenOmhtemdolxuICAgICAqIOWbvueJh1xuICAgICAqIFwvc2ZcL3Zz\nZWFyY2g\/cGQ9aW1hZ2VfY29udGVudFxuICAgICAqXC9cbiAgICBpc1NlYXJjaFZTZWFyY2hfaW1h\nZ2VfY29udGVudCgpIHtcbiAgICAgIGxldCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFy\nYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hW\nU2VhcmNoKCkgJiYgc2VhcmNoUGFyYW1zLmhhcyhcInBkXCIsIFwiaW1hZ2VfY29udGVudFwiKTtc\nbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDnmb7luqbmkJzntKLlhbblroPljaHniYfmkJzntKLn\nu5PmnpzpobXpnaJcbiAgICAgKiDnrJTorrBcbiAgICAgKiBcL3NmXC92c2VhcmNoP3BkPW5vdGVc\nbiAgICAgKlwvXG4gICAgaXNTZWFyY2hWU2VhcmNoX25vdGUoKSB7XG4gICAgICBsZXQgc2VhcmNo\nUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAg\nICAgIHJldHVybiB0aGlzLmlzU2VhcmNoVlNlYXJjaCgpICYmIHNlYXJjaFBhcmFtcy5oYXMoXCJw\nZFwiLCBcIm5vdGVcIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog55m+5bqm5pCc57Si5YW2\n5a6D5Y2h54mH5pCc57Si57uT5p6c6aG16Z2iXG4gICAgICog6Zeu562UXG4gICAgICogXC9zZlwv\ndnNlYXJjaD9wZD13ZW5kYV90YWJcbiAgICAgKlwvXG4gICAgaXNTZWFyY2hXZW5EYVRhYigpIHtc\nbiAgICAgIGxldCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2Nh\ndGlvbi5zZWFyY2gpO1xuICAgICAgcmV0dXJuIHRoaXMuaXNTZWFyY2hWU2VhcmNoKCkgJiYgc2Vh\ncmNoUGFyYW1zLmhhcyhcInBkXCIsIFwid2VuZGFfdGFiXCIpO1xuICAgIH0sXG4gICAgXC8qKlxu\nICAgICAqIOeZvuWutuWPt1xuICAgICAqXC9cbiAgICBpc0JhaUppYUhhbygpIHtcbiAgICAgIHJl\ndHVybiBCb29sZWFuKFxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaChcL15odHRw\nKHN8KTpcXFwvXFxcL2JhaWppYWhhby5iYWlkdS5jb21cL2cpXG4gICAgICApO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOi0tOWQp1xuICAgICAqXC9cbiAgICBpc1RpZUJhKCkge1xuICAgICAg\ncmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKFxuICAg\nICAgICAgIFwvXmh0dHAoc3wpOlxcXC9cXFwvKHRpZWJhfGFsYXxzdGF0aWMudGllYmF8bmJhfGZl\neGNsaWNrfHlvdWh1YSkuYmFpZHUuY29tXC9nXG4gICAgICAgICkgfHwgd2luZG93LmxvY2F0aW9u\nLmhyZWYubWF0Y2goXC9eaHR0cChzfCk6XFxcL1xcXC8od3d3LnRpZWJhfGp1bXAyLmJkaW1nKS5j\nb21cL2cpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOi0tOWQpyAtIOW4luWt\nkFxuICAgICAqXC9cbiAgICBpc1RpZUJhUG9zdCgpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxu\nICAgICAgICB0aGlzLmlzVGllQmEoKSAmJiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRz\nV2l0aChcIlwvcFwvXCIpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOi0tOWQ\npyAtIOeDreW4llxuICAgICAqXC9cbiAgICBpc1RpZUJhTmV3VG9waWMoKSB7XG4gICAgICByZXR1\ncm4gQm9vbGVhbihcbiAgICAgICAgdGhpcy5pc1RpZUJhKCkgJiYgd2luZG93LmxvY2F0aW9uLnBh\ndGhuYW1lLnN0YXJ0c1dpdGgoXCJcL21vXC9xXC9uZXd0b3BpY1wvdG9waWNUZW1wbGF0ZVwiKVxu\nICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDotLTlkKcgLSDmkJzntKLnu5Pmnpzn\nlYzpnaJcbiAgICAgKlwvXG4gICAgaXNUaWVCYUh5YnJpZCgpIHtcbiAgICAgIHJldHVybiBCb29s\nZWFuKFxuICAgICAgICB0aGlzLmlzVGllQmEoKSAmJiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUu\nc3RhcnRzV2l0aChcIlwvbW9cL3FcL2h5YnJpZFwiKVxuICAgICAgKTtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDotLTlkKcgLSDkuK3ovazpk77mjqXpqozor4HpobXpnaJcbiAgICAgKlwvXG4g\nICAgaXNUaWVCYUNoZWNrVXJsKCkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRo\naXMuaXNUaWVCYSgpICYmIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKFwiXC9t\nb1wvcVwvY2hlY2t1cmxcIilcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6LS0\n5ZCnIC0g5ZCn5YaFXG4gICAgICpcL1xuICAgIGlzVGllQmFOZWkoKSB7XG4gICAgICByZXR1cm4g\nQm9vbGVhbih0aGlzLmlzVGllQmEoKSAmJiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgPT09IFwi\nXC9mXCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOi0tOWQpyAtIOmmlumhtVxuICAgICAq\nXC9cbiAgICBpc1RpZUJhSW5kZXgoKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAg\ndGhpcy5pc1RpZUJhKCkgJiYgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnN0YXJ0c1dpdGgoXCJc\nL2luZGV4XCIpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOi0tOWQpyAtIOS4\nu+mhtVxuICAgICAqXC9cbiAgICBpc1RpZUJhSG9tZSgpIHtcbiAgICAgIHJldHVybiBCb29sZWFu\nKFxuICAgICAgICB0aGlzLmlzVGllQmEoKSAmJiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3Rh\ncnRzV2l0aChcIlwvaG9tZVwvbWFpblwiKVxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDnmb7luqbmloflupNcbiAgICAgKlwvXG4gICAgaXNXZW5LdSgpIHtcbiAgICAgIHJldHVy\nbiBCb29sZWFuKFxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaChcL15odHRwKHN8\nKTpcXFwvXFxcLyh3a3x0YW5iaSkuYmFpZHUuY29tXC9nKVxuICAgICAgKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDnmb7luqbnu4\/pqoxcbiAgICAgKlwvXG4gICAgaXNKaW5nWWFuKCkge1xu\nICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNo\nKFwvXmh0dHAoc3wpOlxcXC9cXFwvamluZ3lhbi5iYWlkdS5jb21cL2cpXG4gICAgICApO1xuICAg\nIH0sXG4gICAgXC8qKlxuICAgICAqIOeZvuW6pueZvuenkVxuICAgICAqXC9cbiAgICBpc0JhaUtl\nKCkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVm\nLm1hdGNoKFwvXmh0dHAoc3wpOlxcXC9cXFwvKGJhaWtlfHdhcGJhaWtlKS5iYWlkdS5jb21cL2cp\nXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeZvuW6pueZvuenkSAtIOS7luiv\ntFxuICAgICAqXC9cbiAgICBpc0JhaUtlVGFTaHVvKCkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4o\nXG4gICAgICAgIHRoaXMuaXNCYWlLZSgpICYmIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFy\ndHNXaXRoKFwiXC90YXNodW9cIilcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n55m+5bqm55+l6YGTXG4gICAgICpcL1xuICAgIGlzWmhpRGFvKCkge1xuICAgICAgcmV0dXJuIEJv\nb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKFwvXmh0dHAoc3wpOlxc\nXC9cXFwvemhpZGFvLmJhaWR1LmNvbVwvZylcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog55m+5bqm57+76K+RXG4gICAgICpcL1xuICAgIGlzRmFuWWkoKSB7XG4gICAgICByZXR1\ncm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2goXC9eaHR0cChz\nfCk6XFxcL1xcXC9mYW55aS5iYWlkdS5jb21cL2cpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOeZvuW6pue\/u+ivkSAtIEFwcFxuICAgICAqXC9cbiAgICBpc0ZhbllpQXBwKCkg\ne1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1h\ndGNoKFwvXmh0dHAoc3wpOlxcXC9cXFwvZmFueWktYXBwLmJhaWR1LmNvbVwvZylcbiAgICAgICk7\nXG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog55m+5bqm5Zu+54mHXG4gICAgICpcL1xuICAgIGlz\nSW1hZ2UoKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9u\nLmhyZWYubWF0Y2goXC9eaHR0cChzfCk6XFxcL1xcXC9pbWFnZS5iYWlkdS5jb21cL2cpXG4gICAg\nICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeZvuW6puWcsOWbvlxuICAgICAqXC9cbiAg\nICBpc01hcCgpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1h\ndGNoKFwvXmh0dHAoc3wpOlxcXC9cXFwvbWFwLmJhaWR1LmNvbVwvZykpO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqXG4gICAgICpcL1xuICAgIGlzTWJkKCkge1xuICAgICAgcmV0dXJuIEJvb2xl\nYW4od2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2goXC9eaHR0cChzfCk6XFxcL1xcXC9tYmQuYmFp\nZHUuY29tXC9nKSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog55m+5bqm5aW95a2mXG4gICAg\nICpcL1xuICAgIGlzWHVlKCkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4od2luZG93LmxvY2F0aW9u\nLmhyZWYubWF0Y2goXC9eaHR0cChzfCk6XFxcL1xcXC94dWUuYmFpZHUuY29tXC9nKSk7XG4gICAg\nfSxcbiAgICBcLyoqXG4gICAgICog54ix5LyB5p+lXG4gICAgICpcL1xuICAgIGlzQWlRaUNoYSgp\nIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5t\nYXRjaChcL15odHRwKHN8KTpcXFwvXFxcL2FpcWljaGEuYmFpZHUuY29tXC9nKVxuICAgICAgKTtc\nbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDnmb7luqbnvZHnm59cbiAgICAgKlwvXG4gICAgaXNQ\nb3MoKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbih3aW5kb3cubG9jYXRpb24uaHJlZi5tYXRjaChc\nL15odHRwKHN8KTpcXFwvXFxcL3Bvcy5iYWlkdS5jb21cL2cpKTtcbiAgICB9LFxuICAgIFwvKipc\nbiAgICAgKiDlpb3nnIvop4bpopFcbiAgICAgKlwvXG4gICAgaXNIYW9LYW4oKSB7XG4gICAgICBy\nZXR1cm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2goXC9eaHR0\ncChzfCk6XFxcL1xcXC9oYW9rYW4uYmFpZHUuY29tXC9nKVxuICAgICAgKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDnmb7luqblm77niYfmkJzntKJcbiAgICAgKlwvXG4gICAgaXNHcmFwaCgp\nIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5t\nYXRjaChcL15odHRwKHN8KTpcXFwvXFxcL2dyYXBoLmJhaWR1LmNvbVwvZylcbiAgICAgICk7XG4g\nICAgfSxcbiAgICBcLyoqXG4gICAgICog55m+5bqm572R55uYXG4gICAgICpcL1xuICAgIGlzUGFu\nKCkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4od2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2goXC9e\naHR0cChzfCk6XFxcL1xcXC9wYW4uYmFpZHUuY29tXC9nKSk7XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog5paH5b+D5LiA6KiAXG4gICAgICpcL1xuICAgIGlzWWlZYW4oKSB7XG4gICAgICByZXR1\ncm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2goXC9eaHR0cChz\nfCk6XFxcL1xcXC95aXlhbi5iYWlkdS5jb21cL2cpXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOaQnOe0okFJ5LyZ5Ly0XG4gICAgICpcL1xuICAgIGlzQ2hhdCgpIHtcbiAgICAg\nIHJldHVybiBCb29sZWFuKHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKFwvXmh0dHAoc3wpOlxc\nXC9cXFwvY2hhdC5iYWlkdS5jb21cL2cpKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDnmb7l\nuqbmlZnogrJcbiAgICAgKlwvXG4gICAgaXNNaW5pSmlhb1l1KCkge1xuICAgICAgcmV0dXJuIEJv\nb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKFwvXmh0dHAoc3wpOlxc\nXC9cXFwvdWY5a3loLnNtYXJ0YXBwcy5jblwvZylcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog55m+5bqm5pWZ6IKyXG4gICAgICpcL1xuICAgIGlzRWFzeUxlYXJuKCkge1xuICAg\nICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmLm1hdGNoKFwv\nXmh0dHAoc3wpOlxcXC9cXFwvZWFzeWxlYXJuLmJhaWR1LmNvbVwvZylcbiAgICAgICk7XG4gICAg\nfSxcbiAgICBcLyoqXG4gICAgICog55m+5bqm5Z+65pyo6bG8XG4gICAgICpcL1xuICAgIGlzSVNp\ndGUoKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhy\nZWYubWF0Y2goXG4gICAgICAgICAgXC9eaHR0cChzfCk6XFxcL1xcXC9pc2l0ZS5iYWlkdS5jb21c\nXFwvc2l0ZVxcXC93anoydGRseVwvZ1xuICAgICAgICApXG4gICAgICApO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOeZvuW6pueIseWtplxuICAgICAqXC9cbiAgICBpc0FpU3R1ZHkoKSB7XG4g\nICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYubWF0Y2go\nXC9eaHR0cChzfCk6XFxcL1xcXC9haXN0dWR5LmJhaWR1LmNvbVwvZylcbiAgICAgICk7XG4gICAg\nfVxuICB9O1xuICBjbGFzcyBMb2FkaW5nVmlldyB7XG4gICAgXC8qKlxuICAgICAqXG4gICAgICog\nQHBhcmFtIHdpdGhJY29uIOaYr+WQpua3u+WKoGljb25cbiAgICAgKiBAcGFyYW0gaXNFbmQgaWNv\nbuaYr+WQpua3u+WKoOWcqOWQjumdolxuICAgICAqXC9cbiAgICBjb25zdHJ1Y3Rvcih3aXRoSWNv\nbiwgaXNFbmQpIHtcbiAgICAgIF9fcHVibGljRmllbGQodGhpcywgXCJjb25maWdcIik7XG4gICAg\nICBfX3B1YmxpY0ZpZWxkKHRoaXMsIFwibG9hZGluZ1ZpZXdFbGVtZW50XCIpO1xuICAgICAgX19w\ndWJsaWNGaWVsZCh0aGlzLCBcImxvYWRpbmdWaWV3SFRNTFwiKTtcbiAgICAgIF9fcHVibGljRmll\nbGQodGhpcywgXCJsb2FkaW5nVmlld0ljb25IVE1MXCIpO1xuICAgICAgdGhpcy5jb25maWcgPSB7\nXG4gICAgICAgIGNsYXNzTmFtZTogXCJ3aGl0ZXNldi1sb2FkLXZpZXdcIixcbiAgICAgICAgdGV4\ndENsYXNzTmFtZTogXCJ3aGl0ZXNldi1sb2FkLXZpZXctdGV4dFwiLFxuICAgICAgICBpY29uQ2xh\nc3NOYW1lOiBcIndoaXRlc2V2LWxvYWQtdmlldy1pY29uXCIsXG4gICAgICAgIG91dFNpZGVDbGFz\nc05hbWU6IFwid2hpdGVzZXYtbG9hZC12aWV3LWljb24tb3V0c2lkZVwiLFxuICAgICAgICB3aXRo\nSW5DbGFzc05hbWU6IFwid2hpdGVzZXYtbG9hZC12aWV3LWljb24td2l0aGluXCJcbiAgICAgIH07\nXG4gICAgICB0aGlzLmxvYWRpbmdWaWV3RWxlbWVudCA9IHZvaWQgMDtcbiAgICAgIHRoaXMubG9h\nZGluZ1ZpZXdIVE1MID0gXC8qaHRtbCpcL1xuICAgICAgYFxuICAgICAgICA8ZGl2IGNsYXNzPVwi\nJHt0aGlzLmNvbmZpZy5jbGFzc05hbWV9XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCIke3Ro\naXMuY29uZmlnLnRleHRDbGFzc05hbWV9XCI+TG9hZGluZy4uLjxcL3NwYW4+XG4gICAgICAgIDxc\nL2Rpdj5gLnRyaW0oKTtcbiAgICAgIHRoaXMubG9hZGluZ1ZpZXdJY29uSFRNTCA9IFwvKmh0bWwq\nXC9cbiAgICAgIGBcbiAgICAgICAgPGRpdiBjbGFzcz1cIiR7dGhpcy5jb25maWcuaWNvbkNsYXNz\nTmFtZX1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHt0aGlzLmNvbmZpZy5vdXRTaWRlQ2xh\nc3NOYW1lfVwiPjxcL2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHt0aGlzLmNvbmZpZy53\naXRoSW5DbGFzc05hbWV9XCI+PFwvZGl2PlxuICAgICAgICA8XC9kaXY+YC50cmltKCk7XG4gICAg\nICB0aGlzLmluaXRDU1MoKTtcbiAgICAgIHRoaXMuaW5pdExvYWRpbmdWaWV3KHdpdGhJY29uLCBp\nc0VuZCk7XG4gICAgfVxuICAgIFwvKipcbiAgICAgKiDliqDovb3pnIDopoHnmoRDU1NcbiAgICAg\nKlwvXG4gICAgaW5pdENTUygpIHtcbiAgICAgIGlmICh0aGlzLmlzRXhpc3RzQ1NTKCkpIHtcbiAg\nICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGxvYWRpbmdWaWV3Q1NTVGV4dCA9IChc\nbiAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgIGBcbiAgICAgIC4ke3RoaXMuY29uZmlnLmNsYXNz\nTmFtZX17XG4gICAgICAgIG1hcmdpbjogMC4wOHJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI2Zm\nZjtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7\nXG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjEycmVt\nO1xuICAgICAgfVxuICAgICAgLiR7dGhpcy5jb25maWcuaWNvbkNsYXNzTmFtZX17XG4gICAgICAg\nIHdpZHRoOiA0NXB4O1xuICAgICAgfVxuICAgICAgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lfSxc\nbiAgICAgIC4ke3RoaXMuY29uZmlnLmljb25DbGFzc05hbWV9e1xuICAgICAgICBoZWlnaHQ6IDQ1\ncHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0NXB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xu\nICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNl\nbnRlcjtcbiAgICAgIH1cbiAgICAgIC4ke3RoaXMuY29uZmlnLm91dFNpZGVDbGFzc05hbWV9LFxu\nICAgICAgLiR7dGhpcy5jb25maWcud2l0aEluQ2xhc3NOYW1lfXtcbiAgICAgICAgcG9zaXRpb246\nIGFic29sdXRlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMTQwcHg7XG4gICAgICAgIGJvcmRlcjog\nNXB4IHNvbGlkIHJnYmEoMCwgMTgzLCAyMjksIDAuOSk7XG4gICAgICAgIG9wYWNpdHk6IC45O1xu\nICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAg\nICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAg\nIC4ke3RoaXMuY29uZmlnLm91dFNpZGVDbGFzc05hbWV9e1xuICAgICAgICBiYWNrZ3JvdW5kLWNv\nbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCBy\nZ2JhKDAsIDAsIDAsIDApO1xuICAgICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHJnYmEoMCwg\nMCwgMCwgMCk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAzNXB4ICMyMTg3ZTc7XG4gICAgICAg\nIC1tb3otYW5pbWF0aW9uOiBzcGluUHVsc2UgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gICAg\nICAgIC13ZWJraXQtYW5pbWF0aW9uOiBzcGluUHVsc2UgMXMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7\nXG4gICAgICAgIC1vLWFuaW1hdGlvbjogc3BpblB1bHNlIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0\nO1xuICAgICAgICAtbXMtYW5pbWF0aW9uOiBzcGluUHVsc2UgMXMgaW5maW5pdGUgZWFzZS1pbi1v\ndXQ7XG4gICAgICB9XG4gICAgICAuJHt0aGlzLmNvbmZpZy53aXRoSW5DbGFzc05hbWV9e1xuICAg\nICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVy\nO1xuICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAg\nICAgYm9yZGVyLWJvdHRvbTogNXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgICAgIGJv\neC1zaGFkb3c6IDAgMCAxNXB4ICMyMTg3ZTc7XG4gICAgICAgIC1tb3otYW5pbWF0aW9uOiBzcGlu\nb2ZmUHVsc2UgM3MgaW5maW5pdGUgbGluZWFyO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjog\nc3Bpbm9mZlB1bHNlIDNzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgICAgLW8tYW5pbWF0aW9uOiBz\ncGlub2ZmUHVsc2UgM3MgaW5maW5pdGUgbGluZWFyO1xuICAgICAgICAtbXMtYW5pbWF0aW9uOiBz\ncGlub2ZmUHVsc2UgM3MgaW5maW5pdGUgbGluZWFyO1xuICAgICAgfVxuICAgICAgQC1tb3ota2V5\nZnJhbWVzIHNwaW5QdWxzZXswJXstbW96LXRyYW5zZm9ybTpyb3RhdGUoMTYwZGVnKTtvcGFjaXR5\nOjA7Ym94LXNoYWRvdzowIDAgMXB4ICM1MDUwNTB9XG4gICAgICA1MCV7LW1vei10cmFuc2Zvcm06\ncm90YXRlKDE0NWRlZyk7b3BhY2l0eToxfVxuICAgICAgMTAwJXstbW96LXRyYW5zZm9ybTpyb3Rh\ndGUoLTMyMGRlZyk7b3BhY2l0eTowfVxuICAgICAgfVxuICAgICAgQC1tb3ota2V5ZnJhbWVzIHNw\naW5vZmZQdWxzZXswJXstbW96LXRyYW5zZm9ybTpyb3RhdGUoMCl9XG4gICAgICAxMDAley1tb3ot\ndHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfVxuICAgICAgfVxuICAgICAgQC13ZWJraXQta2V5ZnJh\nbWVzIHNwaW5QdWxzZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTYwZGVnKTtvcGFjaXR5\nOjA7Ym94LXNoYWRvdzowIDAgMXB4ICM1MDUwNTB9XG4gICAgICA1MCV7LXdlYmtpdC10cmFuc2Zv\ncm06cm90YXRlKDE0NWRlZyk7b3BhY2l0eToxfVxuICAgICAgMTAwJXstd2Via2l0LXRyYW5zZm9y\nbTpyb3RhdGUoLTMyMGRlZyk7b3BhY2l0eTowfVxuICAgICAgfVxuICAgICAgQC13ZWJraXQta2V5\nZnJhbWVzIHNwaW5vZmZQdWxzZXswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCl9XG4gICAg\nICAxMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfVxuICAgICAgfVxuICAgICAg\nQC1vLWtleWZyYW1lcyBzcGluUHVsc2V7MCV7LW8tdHJhbnNmb3JtOnJvdGF0ZSgxNjBkZWcpO29w\nYWNpdHk6MDtib3gtc2hhZG93OjAgMCAxcHggIzUwNTA1MH1cbiAgICAgIDUwJXstby10cmFuc2Zv\ncm06cm90YXRlKDE0NWRlZyk7b3BhY2l0eToxfVxuICAgICAgMTAwJXstby10cmFuc2Zvcm06cm90\nYXRlKC0zMjBkZWcpO29wYWNpdHk6MH1cbiAgICAgIH1cbiAgICAgIEAtby1rZXlmcmFtZXMgc3Bp\nbm9mZlB1bHNlezAley1vLXRyYW5zZm9ybTpyb3RhdGUoMCl9XG4gICAgICAxMDAley1vLXRyYW5z\nZm9ybTpyb3RhdGUoMzYwZGVnKX1cbiAgICAgIH1cbiAgICAgIEAtbXMta2V5ZnJhbWVzIHNwaW5Q\ndWxzZXswJXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgxNjBkZWcpO29wYWNpdHk6MDtib3gtc2hhZG93\nOjAgMCAxcHggIzUwNTA1MH1cbiAgICAgIDUwJXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgxNDVkZWcp\nO29wYWNpdHk6MX1cbiAgICAgIDEwMCV7LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTMyMGRlZyk7b3Bh\nY2l0eTowfVxuICAgICAgfVxuICAgICAgQC1tcy1rZXlmcmFtZXMgc3Bpbm9mZlB1bHNlezAley1t\ncy10cmFuc2Zvcm06cm90YXRlKDApfVxuICAgICAgMTAwJXstbXMtdHJhbnNmb3JtOnJvdGF0ZSgz\nNjBkZWcpfVxuICAgICAgfVxuICAgICAgYFxuICAgICAgKTtcbiAgICAgIHV0aWxzLmFkZFN0eWxl\nKGxvYWRpbmdWaWV3Q1NTVGV4dCk7XG4gICAgfVxuICAgIFwvKipcbiAgICAgKiDliJ3lp4vljJZs\nb2FkaW5nVmlld+WFg+e0oFxuICAgICAqIEBwYXJhbSB3aXRoSWNvbiDmmK\/lkKbmt7vliqBpY29u\nXG4gICAgICogQHBhcmFtIGlzRW5kIGljb27mmK\/lkKbmt7vliqDlnKjlkI7pnaJcbiAgICAgKlwv\nXG4gICAgaW5pdExvYWRpbmdWaWV3KHdpdGhJY29uID0gZmFsc2UsIGlzRW5kID0gdHJ1ZSkge1xu\nICAgICAgdGhpcy5zZXRMb2FkaW5nVmlld0VsZW1lbnQoKTtcbiAgICAgIGxldCBkaXZFbGVtZW50\nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgIGRpdkVsZW1lbnQuaW5u\nZXJIVE1MID0gdGhpcy5sb2FkaW5nVmlld0hUTUw7XG4gICAgICBsZXQgcmVzdWx0RWxlbWVudCA9\nIGRpdkVsZW1lbnQuZmlyc3RDaGlsZDtcbiAgICAgIGlmICh3aXRoSWNvbikge1xuICAgICAgICBs\nZXQgaWNvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAg\nICBpY29uRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmxvYWRpbmdWaWV3SWNvbkhUTUw7XG4gICAg\nICAgIGlmIChpc0VuZCkge1xuICAgICAgICAgIHJlc3VsdEVsZW1lbnQuYXBwZW5kQ2hpbGQoaWNv\nbkVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0\nRWxlbWVudC5pbnNlcnRCZWZvcmUoXG4gICAgICAgICAgICBpY29uRWxlbWVudC5maXJzdENoaWxk\nLFxuICAgICAgICAgICAgcmVzdWx0RWxlbWVudC5maXJzdENoaWxkXG4gICAgICAgICAgKTtcbiAg\nICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zZXRMb2FkaW5nVmlld0VsZW1lbnQocmVzdWx0\nRWxlbWVudCk7XG4gICAgICByZXR1cm4gcmVzdWx0RWxlbWVudDtcbiAgICB9XG4gICAgXC8qKlxu\nICAgICAqIOiuvue9rkxvYWRpbmdWaWV3XG4gICAgICogQHBhcmFtIGVsZW1lbnRcbiAgICAgKlwv\nXG4gICAgc2V0TG9hZGluZ1ZpZXdFbGVtZW50KGVsZW1lbnQpIHtcbiAgICAgIHRoaXMubG9hZGlu\nZ1ZpZXdFbGVtZW50ID0gZWxlbWVudDtcbiAgICB9XG4gICAgXC8qKlxuICAgICAqIOiOt+WPlkxv\nYWRpbmdWaWV3XG4gICAgICpcL1xuICAgIGdldExvYWRpbmdWaWV3RWxlbWVudCgpIHtcbiAgICAg\nIGlmICghdGhpcy5sb2FkaW5nVmlld0VsZW1lbnQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9y\nKFwib2JqZWN0IGxvYWRpbmdWaWV3RWxlbWVudCBpcyBudWxsXCIpO1xuICAgICAgfVxuICAgICAg\ncmV0dXJuIHRoaXMubG9hZGluZ1ZpZXdFbGVtZW50O1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog\n6I635Y+W5a6e5L6L5YyW55qEbG9hZGluZ1ZpZXfnmoRpY29uXG4gICAgICpcL1xuICAgIGdldElj\nb25FbGVtZW50KCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9hZGluZ1ZpZXdFbGVtZW50KCku\ncXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIuXCIgKyB0aGlzLmNvbmZpZy5pY29uQ2xhc3NOYW1l\nXG4gICAgICApO1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog5pi+56S6TG9hZGluZ1ZpZXdcbiAg\nICAgKlwvXG4gICAgc2hvdygpIHtcbiAgICAgIHRoaXMuZ2V0TG9hZGluZ1ZpZXdFbGVtZW50KCku\nc3R5bGUuZGlzcGxheSA9IFwiXCI7XG4gICAgfVxuICAgIFwvKipcbiAgICAgKiDpmpDol49Mb2Fk\naW5nVmlld1xuICAgICAqXC9cbiAgICBoaWRlKCkge1xuICAgICAgdGhpcy5nZXRMb2FkaW5nVmll\nd0VsZW1lbnQoKS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgfVxuICAgIFwvKipcbiAg\nICAgKiDmmL7npLppY29uXG4gICAgICpcL1xuICAgIHNob3dJY29uKCkge1xuICAgICAgbGV0IGlj\nb25FbGVtZW50ID0gdGhpcy5nZXRJY29uRWxlbWVudCgpO1xuICAgICAgaWNvbkVsZW1lbnQgJiYg\nKGljb25FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSBcIlwiKTtcbiAgICB9XG4gICAgXC8qKlxuICAg\nICAqIOmakOiXj2ljb25cbiAgICAgKlwvXG4gICAgaGlkZUljb24oKSB7XG4gICAgICBsZXQgaWNv\nbkVsZW1lbnQgPSB0aGlzLmdldEljb25FbGVtZW50KCk7XG4gICAgICBpY29uRWxlbWVudCAmJiAo\naWNvbkVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiKTtcbiAgICB9XG4gICAgXC8qKlxu\nICAgICAqIOiuvue9ruaWh+acrFxuICAgICAqIEBwYXJhbSB0ZXh0IOaWh+acrFxuICAgICAqIEBw\nYXJhbSB3aXRoSWNvbiDmmK\/lkKborr7nva5JY29u5Zu+5qCHXG4gICAgICogQHBhcmFtIGlzRW5k\nIGljb27mmK\/lkKbmt7vliqDlnKjlkI7pnaJcbiAgICAgKlwvXG4gICAgc2V0VGV4dCh0ZXh0LCB3\naXRoSWNvbiA9IGZhbHNlLCBpc0VuZCA9IHRydWUpIHtcbiAgICAgIHZhciBfYTM7XG4gICAgICB0\naGlzLmdldExvYWRpbmdWaWV3RWxlbWVudCgpLmlubmVySFRNTCA9IGA8c3Bhbj4ke3RleHR9PFwv\nc3Bhbj5gO1xuICAgICAgaWYgKHdpdGhJY29uKSB7XG4gICAgICAgIGxldCBpY29uRWxlbWVudCA9\nIHRoaXMuZ2V0SWNvbkVsZW1lbnQoKTtcbiAgICAgICAgaWYgKCFpY29uRWxlbWVudCkge1xuICAg\nICAgICAgIGxldCBkaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtc\nbiAgICAgICAgICBkaXZFbGVtZW50LmlubmVySFRNTCA9IHRoaXMubG9hZGluZ1ZpZXdJY29uSFRN\nTDtcbiAgICAgICAgICBpY29uRWxlbWVudCA9IGRpdkVsZW1lbnQuZmlyc3RDaGlsZDtcbiAgICAg\nICAgICBpZiAoaXNFbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TG9hZGluZ1ZpZXdFbGVtZW50\nKCkuYXBwZW5kQ2hpbGQoaWNvbkVsZW1lbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAg\nICAgICB0aGlzLmdldExvYWRpbmdWaWV3RWxlbWVudCgpLmluc2VydEJlZm9yZShcbiAgICAgICAg\nICAgICAgaWNvbkVsZW1lbnQsXG4gICAgICAgICAgICAgIHRoaXMuZ2V0TG9hZGluZ1ZpZXdFbGVt\nZW50KCkuZmlyc3RDaGlsZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1c\nbiAgICAgICAgaWNvbkVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiXCI7XG4gICAgICB9IGVsc2Ug\ne1xuICAgICAgICAoX2EzID0gdGhpcy5nZXRJY29uRWxlbWVudCgpKSA9PSBudWxsID8gdm9pZCAw\nIDogX2EzLnJlbW92ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBcLyoqXG4gICAgICog6K6+572u\n6LaF5paH5pysXG4gICAgICogQHBhcmFtIHRleHQg5paH5pysXG4gICAgICpcL1xuICAgIHNldEhU\nTUwodGV4dCkge1xuICAgICAgdGhpcy5nZXRMb2FkaW5nVmlld0VsZW1lbnQoKS5pbm5lckhUTUwg\nPSB0ZXh0O1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog5Yig6ZmkTG9hZGluZ+WFg+e0oFxuICAg\nICAqXC9cbiAgICBkZXN0b3J5KCkge1xuICAgICAgdmFyIF9hMztcbiAgICAgIChfYTMgPSB0aGlz\nLmdldExvYWRpbmdWaWV3RWxlbWVudCgpKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnJlbW92ZSgp\nO1xuICAgICAgdGhpcy5zZXRMb2FkaW5nVmlld0VsZW1lbnQoKTtcbiAgICB9XG4gICAgXC8qKlxu\nICAgICAqIOWIoOmZpOmhtemdouS4reaJgOacieeahGxvYWRpbmdWaWV3XG4gICAgICpcL1xuICAg\nIHJlbW92ZUFsbCgpIHtcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuXCIgKyB0\naGlzLmNvbmZpZy5jbGFzc05hbWUpLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0ucmVtb3ZlKCkpO1xu\nICAgIH1cbiAgICBcLyoqXG4gICAgICog5Yik5patTG9hZGluZ+aYr+WQpuW3suWKoOi9veWIsOmh\ntemdouS4rVxuICAgICAqXC9cbiAgICBpc0V4aXN0cygpIHtcbiAgICAgIHJldHVybiBCb29sZWFu\nKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZX1gKSk7XG4g\nICAgfVxuICAgIFwvKipcbiAgICAgKiDliKTmlq1Mb2FkaW5n5piv5ZCm5a2Y5ZyoTG9hZGluZ+Wb\nvuagh1xuICAgICAqXC9cbiAgICBpc0V4aXN0c0ljb24oKSB7XG4gICAgICByZXR1cm4gQm9vbGVh\nbih0aGlzLmdldEljb25FbGVtZW50KCkpO1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog5Yik5pat\nTG9hZGluZ+S4reeahOaWh+acrOaYr+WQpuWtmOWcqFxuICAgICAqXC9cbiAgICBpc0V4aXN0c1Rl\neHQoKSB7XG4gICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgdGhpcy5nZXRMb2FkaW5nVmll\nd0VsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIGAuJHt0aGlzLmNvbmZpZy50ZXh0\nQ2xhc3NOYW1lfWBcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgXC8qKlxuICAgICAq\nIOWIpOaWremhtemdouS4reaYr+WQpuWtmOWcqENTU+eahHN0eWxlXG4gICAgICpcL1xuICAgIGlz\nRXhpc3RzQ1NTKCkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIGRvY3VtZW50LnF1\nZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgXCJzdHlsZVtkYXRhLWZyb209J2xvYWRpbmdWaWV3J11b\ndHlwZT0ndGV4dFwvY3NzJ11bZGF0YS1hdXRob3I9J3doaXRlc2V2J11cIlxuICAgICAgICApXG4g\nICAgICApO1xuICAgIH1cbiAgfVxuICBjb25zdCBLRVkgPSBcIkdNX1BhbmVsXCI7XG4gIGNvbnN0\nIEFUVFJJQlVURV9JTklUID0gXCJkYXRhLWluaXRcIjtcbiAgY29uc3QgQVRUUklCVVRFX0tFWSA9\nIFwiZGF0YS1rZXlcIjtcbiAgY29uc3QgQVRUUklCVVRFX0RFRkFVTFRfVkFMVUUgPSBcImRhdGEt\nZGVmYXVsdC12YWx1ZVwiO1xuICBjb25zdCBBVFRSSUJVVEVfSU5JVF9NT1JFX1ZBTFVFID0gXCJk\nYXRhLWluaXQtbW9yZS12YWx1ZVwiO1xuICBjb25zdCBQUk9QU19TVE9SQUdFX0FQSSA9IFwiZGF0\nYS1zdG9yYWdlLWFwaVwiO1xuICBjb25zdCBCYWlkdVNlYXJjaEJsb2NrUnVsZSA9IHtcbiAgICBk\nZWZhdWx0UnVsZTogYFxuXC9cLyDnmb7luqblgaXlurdcbm1hdGNoLWhyZWYjI2V4cGVydC5iYWlk\ndS5jb21cblwvXC8g5aSn5a626L+Y5Zyo5pCcXG5tYXRjaC1ocmVmIyNyZWNvbW1lbmRfbGlzdC5i\nYWlkdS5jb20mJiYmbWF0Y2gtYXR0ciMjdHBsIyNyZWNvbW1lbmRfbGlzdFxuXC9cLyDlpKflrrbo\nv5jlnKjmkJw66ZqQ6JeP55qEKOeCueWHu+WQju+8jOi3s+WHuuadpeeahClcbnJlbW92ZS1jaGls\nZCMjLmMtYXRvbS1hZnRlcmNsaWNrLXJlY29tbS13cmFwXG5cL1wvIOeZvuWutuWPt+iBmuWQiFxu\nbWF0Y2gtaHJlZiMjYXV0aG9yLmJhaWR1LmNvbVwvaG9tZVwvXG5cL1wvIHh4eCDnm7jlhbMgeHh4\nXG5tYXRjaC1hdHRyIyNzcmNpZCMjKHNpZ21hfHZpZF9mb3VyZm9sZClcblwvXC8g6Zeu5LiA6Zeu\nXG5tYXRjaC1hdHRyIyNkYXRhLWxvZyMjd2VuZGFfaW5xdWlyeVxuXC9cLyDnmb7luqbmuLjmiI9c\nbm1hdGNoLWF0dHIjI3NyY2lkIyN5eF9lbnRpdHlfc2FuXG5cL1wvIOWkp+Wutui\/mOWcqOeci1xu\nbWF0Y2gtYXR0ciMjc3JjaWQjI3lsX3JlY29tbWVuZF9saXN0XG5cL1wvIOeZvuW6pi3mmbrog73l\nsI\/nqIvluo9cbm1hdGNoLWF0dHIjI3NyY2lkIyN4Y3hfbXVsdGlcblwvXC8g55m+5bqmIHh457K+\n6YCJ5ZWG5ZOB6Zeu562UXG5tYXRjaC1hdHRyIyNzcmNpZCMjYjJiX3dlbmRhX3dpc2VcblwvXC8g\n55m+5bqm54ix6YeH6LStXG5tYXRjaC1hdHRyIyNzcmNpZCMjYjJiX3N0cmFpZ2h0X3dpc2VfdmVy\ndGljYWxcblwvXC8g4oaT5Lya6K+v5p2A5pyJ5Lqb5oOF5Ya15LiL5piv55m+5bqm55+l6YGT55qE\n5Zue562U6ZO+5o6lXG5cL1wvIG1hdGNoLWF0dHIjI3NyY2lkIyNsZWdvX3RwbFxubWF0Y2gtaHJl\nZiMjXmh0dHAoc3wpOlwvXC9iMmIuYmFpZHUuY29tXG5cL1wvIOeZvuW6puS8mOmAiVxubWF0Y2gt\nYXR0ciMjc3JjaWQjI3NwX3B1cmNfc2FuXG5cL1wvIOWFqOe9keeDreWNllxubWF0Y2gtYXR0ciMj\nc3JjaWQjI3NwX3B1cmNfYXRvbVxuXG5cblwvXC8g5pCc57Si6IGa5ZCIXG5cL1wvIG1hdGNoLWF0\ndHIjI3NyY2lkIyNub3RlX2xlYWRcblwvXC8g6LWE6K6vXG5cL1wvIG1hdGNoLWF0dHIjI3NyY2lk\nIyNyZWFsdGltZVxuXC9cLyDnmb7luqbmnInpqb5cblwvXC8gbWF0Y2gtYXR0ciMjc3JjaWQjIyhj\nYXJfa2cyX3NhbnxjYXJfdmlld19wb2ludF9zYW4pXG5cL1wvIOWKqOaAgSjlvq7ljZrjgIHnmb7l\nuqbliqjmgIEuLi7nrYkpXG5cL1wvIG1hdGNoLWF0dHIjI3NyY2lkIyNyZWxfdWdjX3NhblxuYCxc\nbiAgICBcLyoqXG4gICAgICog5pCc57Si6KeE5YiZXG4gICAgICpcL1xuICAgIHJ1bGU6IFtdLFxu\nICAgIGluaXQoKSB7XG4gICAgICBsZXQgbG9jYWxSdWxlID0gdGhpcy5nZXRMb2NhbFJ1bGUoKTtc\nbiAgICAgIGlmIChQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdS1zZWFyY2gtYmxvY2tOb3RlTGVh\nZFwiKSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRSdWxlICs9IFwiXFxubWF0Y2gtYXR0ciMjc3Jj\naWQjI25vdGVfbGVhZFwiO1xuICAgICAgfVxuICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShc\nImJhaWR1LXNlYXJjaC1lbmFibGUtZGVmYXVsdC1pbnRlcmNlcHRpb24tcnVsZXNcIikpIHtcbiAg\nICAgICAgbG9jYWxSdWxlID0gdGhpcy5kZWZhdWx0UnVsZSArIFwiXFxuXFxuXCIgKyBsb2NhbFJ1\nbGU7XG4gICAgICB9XG4gICAgICB0aGlzLnJ1bGUgPSB0aGlzLnBhcnNlUnVsZShsb2NhbFJ1bGUp\nO1xuICAgIH0sXG4gICAgXC8qKiDojrflj5bmnKzlnLDlrZjlgqjnmoToh6rlrprkuYnmi6bmiKro\np4TliJkgKlwvXG4gICAgZ2V0TG9jYWxSdWxlKCkge1xuICAgICAgbGV0IGxvY2FsUnVsZSA9IFBv\ncHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1LXNlYXJjaC1pbnRlcmNlcHRpb24tcnVsZXNcIiwgXCJc\nIik7XG4gICAgICBsb2NhbFJ1bGUgPSBsb2NhbFJ1bGUudHJpbSgpO1xuICAgICAgcmV0dXJuIGxv\nY2FsUnVsZTtcbiAgICB9LFxuICAgIFwvKiog6K6+572u5pys5Zyw5a2Y5YKo55qE6Ieq5a6a5LmJ\n5oum5oiq6KeE5YiZICpcL1xuICAgIHNldExvY2FsUnVsZShydWxlKSB7XG4gICAgICBQb3BzUGFu\nZWwuc2V0VmFsdWUoXCJiYWlkdS1zZWFyY2gtaW50ZXJjZXB0aW9uLXJ1bGVzXCIsIHJ1bGUpO1xu\nICAgIH0sXG4gICAgXC8qKiDmuIXnqbrop4TliJkgKlwvXG4gICAgY2xlYXJMb2NhbFJ1bGUoKSB7\nXG4gICAgICBQb3BzUGFuZWwuZGVsZXRlVmFsdWUoXCJiYWlkdS1zZWFyY2gtaW50ZXJjZXB0aW9u\nLXJ1bGVzXCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOaKiuinhOWImei\/m+ihjOi9rOaN\nolxuICAgICAqIEBwYXJhbSBsb2NhbFJ1bGVcbiAgICAgKlwvXG4gICAgcGFyc2VSdWxlKGxvY2Fs\nUnVsZSkge1xuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgZnVuY3Rpb24gcGFyc2VPbmVS\ndWxlKHJ1bGVJdGVtKSB7XG4gICAgICAgIGxldCBjUnVsZUl0ZW1TcGxpdCA9IHJ1bGVJdGVtLnNw\nbGl0KFwiIyNcIik7XG4gICAgICAgIGlmICghY1J1bGVJdGVtU3BsaXQubGVuZ3RoKSB7XG4gICAg\nICAgICAgbG9nLmVycm9yKFtcIuaXoOaViOinhOWImVwiLCBydWxlSXRlbV0pO1xuICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcnVsZU5hbWUgPSBjUnVsZUl0ZW1TcGxp\ndFswXTtcbiAgICAgICAgbGV0IHJ1bGVOYW1lTG93ZXJDYXNlID0gcnVsZU5hbWUudG9Mb3dlckNh\nc2UoKTtcbiAgICAgICAgbGV0IGVuZFJ1bGUgPSBydWxlSXRlbS5yZXBsYWNlKHJ1bGVOYW1lICsg\nXCIjI1wiLCBcIlwiKTtcbiAgICAgICAgaWYgKHJ1bGVOYW1lTG93ZXJDYXNlID09PSBcIm1hdGNo\nLWhyZWZcIikge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBydWxlOiBydWxlSXRl\nbSxcbiAgICAgICAgICAgIG1vZGU6IHJ1bGVOYW1lTG93ZXJDYXNlLFxuICAgICAgICAgICAgbWF0\nY2hUZXh0OiBuZXcgUmVnRXhwKGVuZFJ1bGUpXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNl\nIGlmIChydWxlTmFtZUxvd2VyQ2FzZSA9PT0gXCJtYXRjaC1hdHRyXCIpIHtcbiAgICAgICAgICBs\nZXQgb3RoZXJSdWxlU3BsaXQgPSBlbmRSdWxlLnNwbGl0KFwiIyNcIik7XG4gICAgICAgICAgaWYg\nKG90aGVyUnVsZVNwbGl0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKFtc\nIuaXoOaViOinhOWImVwiLCBydWxlSXRlbV0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAg\nICAgIH1cbiAgICAgICAgICBsZXQgYXR0ck5hbWUgPSBvdGhlclJ1bGVTcGxpdFswXTtcbiAgICAg\nICAgICBsZXQgYXR0clZhbHVlTWF0Y2ggPSBlbmRSdWxlLnJlcGxhY2UoYXR0ck5hbWUgKyBcIiMj\nXCIsIFwiXCIpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBydWxlOiBydWxlSXRl\nbSxcbiAgICAgICAgICAgIG1vZGU6IHJ1bGVOYW1lTG93ZXJDYXNlLFxuICAgICAgICAgICAgYXR0\ncjogYXR0ck5hbWUsXG4gICAgICAgICAgICBtYXRjaFRleHQ6IG5ldyBSZWdFeHAoYXR0clZhbHVl\nTWF0Y2gpXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChydWxlTmFtZUxvd2VyQ2Fz\nZSA9PT0gXCJjb250YWlucy1jaGlsZFwiIHx8IHJ1bGVOYW1lTG93ZXJDYXNlID09PSBcInJlbW92\nZS1jaGlsZFwiKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJ1bGU6IHJ1bGVJ\ndGVtLFxuICAgICAgICAgICAgbW9kZTogcnVsZU5hbWVMb3dlckNhc2UsXG4gICAgICAgICAgICBt\nYXRjaFRleHQ6IGVuZFJ1bGVcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgIGxvZy5lcnJvcihbXCLml6DmlYjop4TliJlcIiwgcnVsZUl0ZW1dKTtcbiAgICAgICAgfVxu\nICAgICAgfVxuICAgICAgbG9jYWxSdWxlLnNwbGl0KFwiXFxuXCIpLmZvckVhY2goKHJ1bGVJdGVt\nKSA9PiB7XG4gICAgICAgIHJ1bGVJdGVtID0gcnVsZUl0ZW0udHJpbSgpO1xuICAgICAgICBpZiAo\ncnVsZUl0ZW0gPT09IFwiXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAg\nICAgaWYgKHJ1bGVJdGVtLnN0YXJ0c1dpdGgoXCJcL1wvXCIpKSB7XG4gICAgICAgICAgcmV0dXJu\nO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtb3JlUnVsZSA9IHJ1bGVJdGVtLnNwbGl0KFwiJiYm\nJlwiKTtcbiAgICAgICAgaWYgKG1vcmVSdWxlLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGxl\ndCBwYXJzZWRSdWxlID0gcGFyc2VPbmVSdWxlKHJ1bGVJdGVtKTtcbiAgICAgICAgICBpZiAocGFy\nc2VkUnVsZSkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2gocGFyc2VkUnVsZSk7XG4gICAgICAg\nICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCByZXN1bHRSdWxlID0gW107XG4g\nICAgICAgICAgbW9yZVJ1bGUuZm9yRWFjaCgob25lUnVsZSkgPT4ge1xuICAgICAgICAgICAgb25l\nUnVsZSA9IG9uZVJ1bGUudHJpbSgpO1xuICAgICAgICAgICAgbGV0IHBhcnNlZFJ1bGUgPSBwYXJz\nZU9uZVJ1bGUob25lUnVsZSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkUnVsZSkge1xuICAgICAg\nICAgICAgICByZXN1bHRSdWxlLnB1c2gocGFyc2VkUnVsZSk7XG4gICAgICAgICAgICB9XG4gICAg\nICAgICAgfSk7XG4gICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgbW9kZTogXCJt\nb3JlLXJ1bGVcIixcbiAgICAgICAgICAgIG1vcmVSdWxlOiByZXN1bHRSdWxlXG4gICAgICAgICAg\nfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDmiafooYzoh6rlrprkuYnop4TliJnvvIzmi6bmiKrov5Tlm550cnVl\nXG4gICAgICogQHBhcmFtIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gdXJsIOecn+WunumTvuaOpVxu\nICAgICAqXC9cbiAgICBoYW5kbGVDdXN0b21SdWxlKGVsZW1lbnQsIHVybCkge1xuICAgICAgZnVu\nY3Rpb24gaGFuZGxlT25lUnVsZShydWxlSXRlbSkge1xuICAgICAgICB2YXIgX2EzLCBfYjtcbiAg\nICAgICAgaWYgKHJ1bGVJdGVtLm1vZGUgPT09IFwibWF0Y2gtaHJlZlwiKSB7XG4gICAgICAgICAg\naWYgKHR5cGVvZiB1cmwgPT09IFwic3RyaW5nXCIgJiYgdXJsLm1hdGNoKHJ1bGVJdGVtLm1hdGNo\nVGV4dCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAg\nfSBlbHNlIGlmIChydWxlSXRlbS5tb2RlID09PSBcIm1hdGNoLWF0dHJcIikge1xuICAgICAgICAg\nIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZShydWxlSXRlbS5hdHRyKSAmJiAoKF9hMyA9IGVsZW1l\nbnQuZ2V0QXR0cmlidXRlKHJ1bGVJdGVtLmF0dHIpKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLm1h\ndGNoKHJ1bGVJdGVtLm1hdGNoVGV4dCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAg\nICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAocnVsZUl0ZW0ubW9kZSA9PT0gXCJjb250YWlu\ncy1jaGlsZFwiKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQucXVlcnlTZWxlY3RvcihydWxlSXRl\nbS5tYXRjaFRleHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4g\nICAgICAgIH0gZWxzZSBpZiAocnVsZUl0ZW0ubW9kZSA9PT0gXCJyZW1vdmUtY2hpbGRcIikge1xu\nICAgICAgICAgIChfYiA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcihydWxlSXRlbVtcIm1hdGNoVGV4\ndFwiXSkpID09IG51bGwgPyB2b2lkIDAgOiBfYi5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAg\nfVxuICAgICAgZm9yIChjb25zdCBydWxlSXRlbSBvZiB0aGlzLnJ1bGUpIHtcbiAgICAgICAgaWYg\nKHJ1bGVJdGVtLm1vcmVSdWxlKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBvbmVSdWxlIG9mIHJ1\nbGVJdGVtLm1vcmVSdWxlKSB7XG4gICAgICAgICAgICBpZiAoaGFuZGxlT25lUnVsZShvbmVSdWxl\nKSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGhhbmRsZU9uZVJ1bGUocnVsZUl0\nZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1c\nbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IFVJU3dpdGNoID0gZnVuY3Rpb24odGV4dCwg\na2V5LCBkZWZhdWx0VmFsdWUsIGNsaWNrQ2FsbEJhY2ssIGRlc2NyaXB0aW9uLCBhZnRlckFkZFRv\nVUxpc3RDYWxsQmFjaykge1xuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICB0ZXh0LFxuICAgICAg\ndHlwZTogXCJzd2l0Y2hcIixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgYXR0cmlidXRlczog\ne30sXG4gICAgICBwcm9wczoge30sXG4gICAgICBnZXRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJu\nIEJvb2xlYW4oXG4gICAgICAgICAgdGhpcy5wcm9wc1tQUk9QU19TVE9SQUdFX0FQSV0uZ2V0KGtl\neSwgZGVmYXVsdFZhbHVlKVxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrKGV2\nZW50LCBfX3ZhbHVlKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IEJvb2xlYW4oX192YWx1ZSk7XG4g\nICAgICAgIGxvZy5zdWNjZXNzKGAke3ZhbHVlID8gXCLlvIDlkK9cIiA6IFwi5YWz6ZetXCJ9ICR7\ndGV4dH1gKTtcbiAgICAgICAgaWYgKHR5cGVvZiBjbGlja0NhbGxCYWNrID09PSBcImZ1bmN0aW9u\nXCIpIHtcbiAgICAgICAgICBpZiAoY2xpY2tDYWxsQmFjayhldmVudCwgdmFsdWUpKSB7XG4gICAg\nICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJv\ncHNbUFJPUFNfU1RPUkFHRV9BUEldLnNldChrZXksIHZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBh\nZnRlckFkZFRvVUxpc3RDYWxsQmFja1xuICAgIH07XG4gICAgUmVmbGVjdC5zZXQocmVzdWx0LmF0\ndHJpYnV0ZXMsIEFUVFJJQlVURV9LRVksIGtleSk7XG4gICAgUmVmbGVjdC5zZXQocmVzdWx0LmF0\ndHJpYnV0ZXMsIEFUVFJJQlVURV9ERUZBVUxUX1ZBTFVFLCBkZWZhdWx0VmFsdWUpO1xuICAgIFJl\nZmxlY3Quc2V0KHJlc3VsdC5wcm9wcywgUFJPUFNfU1RPUkFHRV9BUEksIHtcbiAgICAgIGdldChr\nZXkyLCBkZWZhdWx0VmFsdWUyKSB7XG4gICAgICAgIHJldHVybiBQb3BzUGFuZWwuZ2V0VmFsdWUo\na2V5MiwgZGVmYXVsdFZhbHVlMik7XG4gICAgICB9LFxuICAgICAgc2V0KGtleTIsIHZhbHVlKSB7\nXG4gICAgICAgIFBvcHNQYW5lbC5zZXRWYWx1ZShrZXkyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAg\nfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgY29uc3QgUGFuZWxTZWFyY2hTZXR0aW5n\nVUkgPSB7XG4gICAgaWQ6IFwiYmFpZHUtcGFuZWwtY29uZmlnLXNlYXJjaFwiLFxuICAgIHRpdGxl\nOiBcIuaQnOe0olwiLFxuICAgIGhlYWRlclRpdGxlOiBcIueZvuW6puaQnOe0ojxiciBcLz5tLmJh\naWR1LmNvbTxiciBcLz53d3cuYmFpZHUuY29tXCIsXG4gICAgaXNEZWZhdWx0KCkge1xuICAgICAg\ncmV0dXJuIEJhaWR1Um91dGVyLmlzU2VhcmNoKCkgfHwgQmFpZHVSb3V0ZXIuaXNTZWFyY2hIb21l\nKCkgfHwgQmFpZHVSb3V0ZXIuaXNTZWFyY2hCaCgpO1xuICAgIH0sXG4gICAgZm9ybXM6IFtcbiAg\nICAgIHtcbiAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAg\nICAgICBmb3JtczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi5Li76aG1XCIs\nXG4gICAgICAgICAgICB0eXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xu\nICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAg\nICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAg\nICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIueyvueugOS4u+mhtVwi\nLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3NlYXJjaF9ob21lX2hvbWVwYWdlX21pbmlm\naWNhdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAp\nXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAg\nICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIueZvuW6puWBpeW6t1wi\nLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgaGVhZGVyVGl0\nbGU6IFwi55m+5bqm5YGl5bq377yIXC9iaO+8iVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAg\nICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwi55m+5bqm5YGl5bq3KOW\/q+mA\nn+mXruWMu+eUnylcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAg\nICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAg\nICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6lemDqOWFtuWug+S\/oeaBr1wiLFxuICAgICAgICAg\nICAgICAgICAgICBcImJhaWR1X3NlYXJjaF9oZWFkbHRoX3NoaWVsZF9vdGhlcl9pbmZvXCIsXG4g\nICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAg\nICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHlupXp\ng6jlt6XlhbfmoI9cIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV9zZWFyY2hfaGVhZGx0\naF9zaGllbGRfYm90dG9tX3Rvb2xiYXJcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAg\nICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDog\nXCLop4bpopHpobVcIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAg\nICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWK\nn+iDvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAg\nICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAg\nICAgIFwi6Ieq5Yqo6Lez6L2s6Iez5Y6f572R6aG1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwi\nYmFpZHUtc2VhcmNoLXZpZGVvLWF1dG9KdW1wVG9PcmlnaW5VcmxcIixcbiAgICAgICAgICAgICAg\nICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAg\nICAgICAgXCLoh6rliqjngrnlh7vjgJDljp\/nvZHpobXjgJHov5vooYzot7PovaxcIlxuICAgICAg\nICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAg\nICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwi5bGP6JS9XCIsXG4gICAgICAgICAg\nICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAg\nICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHl\nupXpg6jmjqjojZDop4bpopFcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS1zZWFyY2gt\ndmlkZW8tYmxvY2tCb3R0b21SZWNvbW1lbmRWaWRlb1wiLFxuICAgICAgICAgICAgICAgICAgICBm\nYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBc\nIuWxj+iUveWFg+e0oFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxu\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4g\nICAgICB9LFxuICAgICAge1xuICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICB0eXBlOiBcImZv\ncm1zXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDog\nXCLlm77niYdcIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAg\nIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlZ1ZeWx\nnuaAp1wiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAg\nICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAg\nICAgIFwiaXNCYWlkdUJveFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3NlYXJjaF92\nc2VhcmNoLWlzQmFpZHVCb3hcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAg\nICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAg\nICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICBdXG4gICAgICAgICAgfVxuICAgICAgICAgIFwvXC8ge1xuICAgICAgICAgIFwvXC8gXHR0ZXh0\nOiBcIumXruetlFwiLFxuICAgICAgICAgIFwvXC8gXHR0eXBlOiBcImRlZXBNZW51XCIsXG4gICAg\nICAgICAgXC9cLyBcdGZvcm1zOiBbXG4gICAgICAgICAgXC9cLyBcdFx0e1xuICAgICAgICAgIFwv\nXC8gXHRcdFx0dGV4dDogXCJcIixcbiAgICAgICAgICBcL1wvIFx0XHRcdHR5cGU6IFwiZm9ybXNc\nIixcbiAgICAgICAgICBcL1wvIFx0XHRcdGZvcm1zOiBbXSxcbiAgICAgICAgICBcL1wvIFx0XHR9\nLFxuICAgICAgICAgIFwvXC8gXHRdLFxuICAgICAgICAgIFwvXC8gfSxcbiAgICAgICAgICBcL1wv\nIHtcbiAgICAgICAgICBcL1wvIFx0dGV4dDogXCLnrJTorrBcIixcbiAgICAgICAgICBcL1wvIFx0\ndHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgIFwvXC8gXHRmb3JtczogW1xuICAgICAgICAg\nIFwvXC8gXHRcdHtcbiAgICAgICAgICBcL1wvIFx0XHRcdHRleHQ6IFwiXCIsXG4gICAgICAgICAg\nXC9cLyBcdFx0XHR0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgXC9cLyBcdFx0XHRmb3Jtczog\nW10sXG4gICAgICAgICAgXC9cLyBcdFx0fSxcbiAgICAgICAgICBcL1wvIFx0XSxcbiAgICAgICAg\nICBcL1wvIH0sXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwi\nXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAg\nICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICAgICAgdHlwZTogXCJk\nZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAg\nICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxu\nICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAg\nICAgICAgICAgICAgICAgICAgXCLnpoHmraLoh6rliqjmkq3mlL7op4bpopFcIixcbiAgICAgICAg\nICAgICAgICAgICAgXCJiYWlkdS1zZWFyY2gtYmxvY2tBdXRvbWF0aWNWaWRlb1BsYXliYWNrXCIs\nXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAs\nXG4gICAgICAgICAgICAgICAgICAgIFwi56e76ZmkdmlkZW8tcGxheWVy5YWD57Sg77yM5Y+v6IO9\n5Lya5a+86Ie05p+Q5Lqb56ys5LiA5Liq57uT5p6c5piv5pm66IO95Y2h54mH5pe277yM54K55Ye7\n5pu05aSa5oyJ6ZKu5peg5Y+N5bqUKHdlYnZpZXdcL1NhZmFyaSlcIlxuICAgICAgICAgICAgICAg\nICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBc\nIuWkhOeQhuaQnOe0oue7k+aenFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3NlYXJj\naF9oYW5kbGVfc2VhcmNoX3Jlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAg\nICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5bCG55m+5bqm\n6YeN5a6a5ZCR6ZO+5o6l5pu\/5o2i5Li655yf5a6e5Zyw5Z2AKOWtmOWcqOWwseabv+aNou+8jOS4\njeWtmOWcqOeahOivneS\/neaMgeWOn+agtylcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAg\nICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIumHjeWumuWQkemh\ntumDqOeahOmTvuaOpVwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3NlYXJjaF9yZWRp\ncmVjdF90b3BfbGlua1wiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAg\nICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5aaC5YWo6YOo44CB6KeG6aKR\n44CB5Zu+54mH44CB6LS05ZCn44CB5ZKo6K+iLi4uXCJcbiAgICAgICAgICAgICAgICAgICksXG4g\nICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLph43mnoTn\nmb7luqbmkJzntKJcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV9zZWFyY2hfcmVmYWN0\nb3JpbmdfaW5wdXRfYm94ZXNcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAg\nICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIumHjeaehOmhtumDqOea\nhOi+k+WFpeahhuOAgeeZvuW6puS4gOS4i+aMiemSruOAgeaQnOe0ouW7uuiuruahhu+8jOWPr+S4\njeWHuueOsOeZvuW6pkFwcOaPkOekulwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAg\nICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi6Ieq5Yqo54K55Ye757+7\n6aG1ID0+IFNlYXJjaENyYWZ0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfc2VhcmNo\nX2F1dG9tYXRpY2FsbHlfY2xpY2tfb25fdGhlX25leHRfcGFnZV93aXRoX3NlYXJjaGNyYWZ0X3Vh\nXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBmdW5j\ndGlvbihldmVudCwgZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGVuYWJsZSAm\nJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3Nl\nYXJjaF9hdXRvbWF0aWNhbGx5X2V4cGFuZF9uZXh0X3BhZ2VcIlxuICAgICAgICAgICAgICAgICAg\nICAgICkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCAkY2xpY2sgPSBldmVudC50YXJn\nZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgJHNoYWRvd1Jvb3QgPSAkY2xpY2suZ2V0\nUm9vdE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCAkY2hlY2tib3ggPSAkc2hh\nZG93Um9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgbGlbJHtQ\nb3BzUGFuZWwuJGRhdGEuYXR0cmlidXRlS2V5TmFtZX09XCJiYWlkdV9zZWFyY2hfYXV0b21hdGlj\nYWxseV9leHBhbmRfbmV4dF9wYWdlXCJdIHNwYW4ucG9wcy1wYW5lbC1zd2l0Y2hfX2NvcmVgXG4g\nICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEk\nY2hlY2tib3gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwi\n5pyq5om+5Yiw5LqS5pal5YWD57SgXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgICAgICAgICAgJGNoZWNrYm94LmNsaWNrKCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInVz\nZXJBZ2VudOWMheWQq1NlYXJjaENyYWZ05pe255Sf5pWI77yM5LiO4oaT44CQ6Ieq5Yqo57+76aG1\n44CR5Yqf6IO95Yay56qBXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAg\nICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLoh6rliqjnv7vpobVcIixcbiAgICAg\nICAgICAgICAgICAgICAgXCJiYWlkdV9zZWFyY2hfYXV0b21hdGljYWxseV9leHBhbmRfbmV4dF9w\nYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZ1\nbmN0aW9uKGV2ZW50LCBlbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5hYmxl\nICYmIFBvcHNQYW5lbC5nZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYmFpZHVf\nc2VhcmNoX2F1dG9tYXRpY2FsbHlfY2xpY2tfb25fdGhlX25leHRfcGFnZV93aXRoX3NlYXJjaGNy\nYWZ0X3VhXCJcbiAgICAgICAgICAgICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBsZXQgJGNsaWNrID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAg\nbGV0ICRzaGFkb3dSb290ID0gJGNsaWNrLmdldFJvb3ROb2RlKCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBsZXQgJGNoZWNrYm94ID0gJHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgYGxpWyR7UG9wc1BhbmVsLiRkYXRhLmF0dHJpYnV0ZUtleU5h\nbWV9PVwiYmFpZHVfc2VhcmNoX2F1dG9tYXRpY2FsbHlfY2xpY2tfb25fdGhlX25leHRfcGFnZV93\naXRoX3NlYXJjaGNyYWZ0X3VhXCJdIHNwYW4ucG9wcy1wYW5lbC1zd2l0Y2hfX2NvcmVgXG4gICAg\nICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkY2hl\nY2tib3gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwi5pyq\n5om+5Yiw5LqS5pal5YWD57SgXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICAgICAgJGNoZWNrYm94LmNsaWNrKCk7XG4gICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcIuS4juS4\niumdoueahOOAkOiHquWKqOeCueWHu+e\/u+mhteOAkeWGsueqgVwiXG4gICAgICAgICAgICAgICAg\nICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi\n5ZCM5q2l5Zyw5Z2AXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfc2VhcmNoX3N5bmNf\nbmV4dF9wYWdlX2FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAg\nICAgICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50LCBlbmFibGUpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICBpZiAoZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGVydChcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgXCLlvIDlkK\/lkI7vvIzkuJTlvIDlkK\/jgJDoh6rliqjnv7vp\nobXjgJHvvIzlvZPoh6rliqjliqDovb3liLDnrKxO6aG15pe277yM5rWP6KeI5Zmo5Zyw5Z2A5Lmf\n5Lya6Lef6ZqP5pS55Y+Y77yM5Yi35paw572R6aG15bCx5piv5b2T5YmN5Yqg6L2955qE56ysTumh\ntVwiXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCLpnIDlkK\/nlKjj\ngJDoh6rliqjnv7vpobXjgJHvvIzmtY\/op4jlmajlnLDlnYDmoI\/kvJroh6rliqjlkIzmraXlvZPl\niY3pobXpnaLnmoRVcmxcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAg\nIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOS8mOWMluOAkeWkp+Wutui\/mOWc\nqOaQnFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3NlYXJjaF9yZWZhY3Rvcl9ldmVy\neW9uZV9pc19zdGlsbF9zZWFyY2hpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAg\nICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuato+ehruaW\nsOagh+etvumhteaJk+W8gO+8jOmBv+WFjei3s+i9rOiHs0FwcOS4i+i9vemhtemdolwiXG4gICAg\nICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAg\nICAgICAgICAgIFwi5paw5qCH562+6aG15omT5byAXCIsXG4gICAgICAgICAgICAgICAgICAgIFwi\nYmFpZHVfc2VhcmNoX2hpamFja19fb25DbGlja190b19ibGFua1wiLFxuICAgICAgICAgICAgICAg\nICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAg\nICAgICBcIumcgOW8gOWQr+OAkOWKq+aMgS1fb25DbGlja+WHveaVsOOAkeWSjOOAkOWkhOeQhuaQ\nnOe0oue7k+aenOOAkeS4lOiDveaIkOWKn+WKq+aMgeWIsOivpeWHveaVsOaJjeS8mueUn+aViO+8\njOWQpuWImeaYr+aPkOWPlmFydGljbGXnmoRVUkzpk77mjqXkv6Hmga\/ot7PovaxcIlxuICAgICAg\nICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAg\nICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwi5YWo5bGA5oKs5rWu5pCc57Si5oyJ\n6ZKuXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAg\nIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAg\nICAgXCLlkK\/nlKhcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS1zZWFyY2gtZ2xvYmFs\nLXNlYXJjaFRvb2xCYXJcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAg\nICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlvIDlkK\/lkI7lsIblnKjp\nobXpnaLlj7PkuIvop5Lmt7vliqDmkJzntKLmjInpkq7nlKjkuo7mkJzntKJcIlxuICAgICAgICAg\nICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAg\nICAgICBcIuaJi+WKv+i\/lOWbnuWFs+mXreaQnOe0ouahhlwiLFxuICAgICAgICAgICAgICAgICAg\nICBcImJhaWR1LXNlYXJjaC1nbG9iYWwtc2VhcmNoVG9vbEJhci1nZXN0dXJlLWJhY2tcIixcbiAg\nICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAg\nICAgICAgICAgICAgICAgICBcIuiuqee9kemhteWQjumAgOinpuWPkeWFs+mXreaQnOe0ouW7uuiu\nruahhlwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAg\nICAgICB0ZXh0OiBcIuWxj+iUvVwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxu\nICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRl\neHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAg\nICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAg\nICAgICAgXCLjgJDlsY\/olL3jgJHlpKflrrbov5jlnKjmkJxcIixcbiAgICAgICAgICAgICAgICAg\nICAgXCJiYWlkdV9zZWFyY2hfYmxvY2tpbmdfZXZlcnlvbmVfaXNfc3RpbGxfc2VhcmNoaW5nXCIs\nXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxc\nbiAgICAgICAgICAgICAgICAgICAgXCLnlKjkuo7ooaXlhYXkuIvpnaLoh6rlrprkuYnmi6bmiKro\np4TliJnnmoTpu5jorqTphY3nva7nmoTjgJDlpKflrrbov5jlnKjmkJzjgJFcIlxuICAgICAgICAg\nICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAg\nICAgICBcIuOAkOWxj+iUveOAkeeyvumAieeslOiusFwiLFxuICAgICAgICAgICAgICAgICAgICBc\nImJhaWR1LXNlYXJjaC1ibG9ja05vdGVMZWFkXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNl\nLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5bGP\n6JS9IOeyvumAieeslOiusCDmkJzntKDnu5PmnpxcIlxuICAgICAgICAgICAgICAgICAgKVxuICAg\nICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAg\nIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLliqvmjIFcL+aLpuaIqlwiLFxu\nICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAg\nICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAg\nICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAg\nICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLliqvmjIEt5aSN5Yi2XCIs\nXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfc2VhcmNoX2hpamFja19jb3B5XCIsXG4gICAg\nICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAg\nICAgICAgICAgICAgICAgXCLpmLvmraLnmb7luqblpI3liLZ4eHjliLDliarotLTmnb9cIlxuICAg\nICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAg\nICAgICAgICAgICBcIuWKq+aMgS1TY2hlbWXllKTphpJBcHBcIixcbiAgICAgICAgICAgICAgICAg\nICAgXCJiYWlkdV9zZWFyY2hfaGlqYWNrX3NjaGVtZVwiLFxuICAgICAgICAgICAgICAgICAgICB0\ncnVlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi\n6Zi75q2i5ZSk6YaS6LCD55SoQXBwXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAg\nICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLliqvmjIEtT3BlbkJveOWH\nveaVsFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3NlYXJjaF9oaWphY2tfb3BlbmJv\neFwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB2b2lk\nIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5LyY5YyW5pCc57Si57uT5p6c6Lez6L2sXCJcbiAg\nICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAg\nICAgICAgICAgICAgXCLliqvmjIEtX29uQ2xpY2vlh73mlbBcIixcbiAgICAgICAgICAgICAgICAg\nICAgXCJiYWlkdV9zZWFyY2hfaGlqYWNrX19vbkNsaWNrXCIsXG4gICAgICAgICAgICAgICAgICAg\nIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAg\nXCLkvJjljJbmkJzntKLnu5Pmnpzot7PovaxcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAg\nICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuWKq+aMgS1zZXRU\naW1lb3V0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfc2VhcmNoX2hpamFja19zZXRU\naW1lb3V0XCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAg\nIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlj6\/pmLvmraLojrflj5blrprkvY3jgIHo\np4bpopHmkq3mlL5cIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xu\nICAgICAgICAgICAgdGV4dDogXCLoh6rlrprkuYnmi6bmiKrop4TliJlcIixcbiAgICAgICAgICAg\nIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAg\nIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIjxhIGhyZWY9J2h0dHBzOlwvXC9ncmVhc3lmb3Jr\nLm9yZ1wvemgtQ05cL3NjcmlwdHNcLzQxODM0OS0lRTclQTclQkIlRTUlOEElQTglRTclQUIlQUYt\nJUU3JTk5JUJFJUU1JUJBJUE2JUU3JUIzJUJCJUU0JUJDJTk4JUU1JThDJTk2Izp+OnRleHQ9JUU1\nJUE2JTgyJUU0JUJEJTk1JUU4JTg3JUFBJUU1JUFFJTlBJUU0JUI5JTg5JUU3JTk5JUJFJUU1JUJB\nJUE2JUU2JTkwJTlDJUU3JUI0JUEyJUU2JThCJUE2JUU2JTg4JUFBJUU4JUE3JTg0JUU1JTg4JTk5\nJyB0YXJnZXQ9J19ibGFuayc+5p+l55yL6KeE5YiZ5paH5qGjPFwvPjxicj48YSBocmVmPSdqYXZh\nc2NyaXB0OjsnIGNsYXNzPSdiYWlkdS1zZWFyY2gtc2hpZWxkLWNzcy1yZXNldCc+54K55Ye76YeN\n572uPFwvYT5cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAg\nICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAg\nICAgICAgICBcIuWQr+eUqOm7mOiupOaLpuaIquinhOWImVwiLFxuICAgICAgICAgICAgICAgICAg\nICBcImJhaWR1LXNlYXJjaC1lbmFibGUtZGVmYXVsdC1pbnRlcmNlcHRpb24tcnVsZXNcIixcbiAg\nICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAg\nICAgICAgICAgICAgICAgICBcIum7mOiupOaLpuaIquinhOWImVwiXG4gICAgICAgICAgICAgICAg\nICApLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm93\nblwiLFxuICAgICAgICAgICAgICAgICAgICBhZnRlckFkZFRvVUxpc3RDYWxsQmFjayhmb3JtQ29u\nZmlnLCByaWdodENvbnRhaW5lck9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICB2YXIg\nX2EzO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCAkc2VhcmNoU2hpZWxkID0gKF9hMyA9IHJp\nZ2h0Q29udGFpbmVyT3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogcmlnaHRDb250YWluZXJPcHRp\nb25zLmZvcm1IZWFkZXJEaXZFbGVtZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnF1ZXJ5U2Vs\nZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImEuYmFpZHUtc2VhcmNoLXNoaWVsZC1j\nc3MtcmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAg\nICAgZG9tdXRpbHMub24oJHNlYXJjaFNoaWVsZCwgXCJjbGlja1wiLCB2b2lkIDAsICgpID0+IHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIEJhaWR1U2VhcmNoQmxvY2tSdWxlLmNsZWFyTG9jYWxS\ndWxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgJHRleHRBcmVhID0gcmlnaHRDb250\nYWluZXJPcHRpb25zLnVsRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAg\nICAgICAgICBcInRleHRhcmVhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAkdGV4dEFyZWEudmFsdWUgPSBcIlwiO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgUW1zZy5zdWNjZXNzKFwi5bey6YeN572uXCIpO1xuICAgICAgICAgICAgICAgICAg\nICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBnZXRM\naUVsZW1lbnRDYWxsQmFjayhsaUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBsZXQg\nJHRleHRBcmVhQ29udGFpbmVyID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwicG9wcy1wYW5lbC10ZXh0YXJlYSBi\nYWlkdS1zZWFyY2gtaW50ZXJjZXB0aW9uLXJ1bGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlubmVySFRNTDogYFxuXHRcdFx0XHRcdFx0XHRcdFx0PHN0eWxlPlxuXHRcdFx0XHRcdFx0XHRc\ndFx0LmJhaWR1LXNlYXJjaC1pbnRlcmNlcHRpb24tcnVsZXtcblx0XHRcdFx0XHRcdFx0XHRcdFx0\nd2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHQuYmFp\nZHUtc2VhcmNoLWludGVyY2VwdGlvbi1ydWxlIHRleHRhcmVhe1xuXHRcdFx0XHRcdFx0XHRcdFx0\nXHRtaW4taGVpZ2h0OiAzLjZyZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHdoaXRlLXNwYWNlOiBw\ncmU7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcblx0\nXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdDxcL3N0eWxlPlxuXHRcdFx0XHRc\ndFx0XHRcdFx0PHRleHRhcmVhPjxcL3RleHRhcmVhPlxuXHRcdFx0XHRcdFx0XHRcdFx0YFxuICAg\nICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCAkdGV4dEFy\nZWEgPSAkdGV4dEFyZWFDb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAg\nICAgICAgIFwidGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAg\nICAgICAgICAgICAgbGV0IGN1c3RvbVJ1bGUgPSBCYWlkdVNlYXJjaEJsb2NrUnVsZS5nZXRMb2Nh\nbFJ1bGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAkdGV4dEFyZWEudmFsdWUgPSBjdXN0b21S\ndWxlO1xuICAgICAgICAgICAgICAgICAgICAgIGxpRWxlbWVudC5hcHBlbmRDaGlsZCgkdGV4dEFy\nZWFDb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAg\nICAgICAgICAgICAgICAgICAgJHRleHRBcmVhLFxuICAgICAgICAgICAgICAgICAgICAgICAgW1wi\naW5wdXRcIiwgXCJwcm9wZXJ0eWNoYW5nZVwiXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZv\naWQgMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLmRlYm91bmNlKGZ1bmN0aW9uKCkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICBCYWlkdVNlYXJjaEJsb2NrUnVsZS5zZXRMb2Nh\nbFJ1bGUoJHRleHRBcmVhLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMClc\nbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBs\naUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAg\nICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi6Ieq5a6a5LmJ5qC35byPXCIs\nXG4gICAgICAgICAgICB0eXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xu\nICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAg\nICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAg\nICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJvd25cIixcbiAgICAgICAg\nICAgICAgICAgICAgZ2V0TGlFbGVtZW50Q2FsbEJhY2sobGlFbGVtZW50KSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgbGV0ICR0ZXh0QXJlYUNvbnRhaW5lciA9IGRvbXV0aWxzLmNyZWF0ZUVsZW1l\nbnQoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBcInBvcHMt\ncGFuZWwtdGV4dGFyZWEgYmFpZHUtc2VhcmNoLXVzZXItc3R5bGVcIixcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGlubmVySFRNTDogYFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzdHlsZT5cblx0\nXHRcdFx0XHRcdFx0XHRcdFx0XHQuYmFpZHUtc2VhcmNoLXVzZXItc3R5bGV7XG5cdFx0XHRcdFx0\nXHRcdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0\nXHRcdFx0XHRcdFx0XHRcdFx0LmJhaWR1LXNlYXJjaC11c2VyLXN0eWxlIHRleHRhcmVhe1xuXHRc\ndFx0XHRcdFx0XHRcdFx0XHRcdFx0bWluLWhlaWdodDogMy42cmVtO1xuXHRcdFx0XHRcdFx0XHRc\ndFx0XHRcdFx0d2hpdGUtc3BhY2U6IHByZTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJvcmRl\nci1yYWRpdXM6IDAgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRc\ndFx0XHRcdFx0XHRcdFx0PFwvc3R5bGU+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHRleHRhcmVh\nPjxcL3RleHRhcmVhPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGBcbiAgICAgICAgICAgICAgICAg\nICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgJHRleHRBcmVhID0gJHRleHRBcmVh\nQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBcInRleHRh\ncmVhXCJcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICR0\nZXh0QXJlYS52YWx1ZSA9IFBvcHNQYW5lbC5nZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAg\nICAgIFwiYmFpZHUtc2VhcmNoLXVzZXItc3R5bGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAg\nIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGxp\nRWxlbWVudC5hcHBlbmRDaGlsZCgkdGV4dEFyZWFDb250YWluZXIpO1xuICAgICAgICAgICAgICAg\nICAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHRleHRBcmVhLFxu\nICAgICAgICAgICAgICAgICAgICAgICAgW1wiaW5wdXRcIiwgXCJwcm9wZXJ0eWNoYW5nZVwiXSxc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHV0aWxzLmRlYm91bmNlKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBQ\nb3BzUGFuZWwuc2V0VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS1z\nZWFyY2gtdXNlci1zdHlsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZXh0QXJl\nYS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgfSwgMTAwKVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAg\nICAgICAgcmV0dXJuIGxpRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29u\nc3QgUGFuZWxCYWlKaWFIYW9TZXR0aW5nVUkgPSB7XG4gICAgaWQ6IFwiYmFpZHUtcGFuZWwtY29u\nZmlnLWJhaWppYWhhb1wiLFxuICAgIHRpdGxlOiBcIueZvuWutuWPt1wiLFxuICAgIGhlYWRlclRp\ndGxlOiBcIueZvuWutuWPtzxiciBcLz5iYWlqaWFoYW8uYmFpZHUuY29tPGJyIFwvPm1iZC5iYWlk\ndS5jb21cIixcbiAgICBpc0RlZmF1bHQoKSB7XG4gICAgICByZXR1cm4gQmFpZHVSb3V0ZXIuaXNC\nYWlKaWFIYW8oKSB8fCBCYWlkdVJvdXRlci5pc01iZCgpO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9E\nZWZhdWx0VmlldzogdHJ1ZSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBc\nIlwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAg\nICAge1xuICAgICAgICAgICAgdGV4dDogXCLnmb7lrrblj7dcIixcbiAgICAgICAgICAgIGRlc2Ny\naXB0aW9uOiBcImJhaWppYWhhby5iYWlkdS5jb21cIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVl\ncE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAg\nICAgICAgICB0ZXh0OiBcIuWxj+iUvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNc\nIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2go\nXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5o6o6I2Q5paH56ugXCIsXG4gICAg\nICAgICAgICAgICAgICAgIFwiYmFpamlhaGFvX3NoaWVsZF9yZWNvbW1lbmRlZF9hcnRpY2xlXCIs\nXG4gICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAg\nICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHn\nlKjmiLfor4TorrpcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlqaWFoYW9fc2hpZWxkX3Vz\nZXJfY29tbWVudFwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAg\nICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBc\nIuOAkOWxj+iUveOAkeW6lemDqOaCrOa1ruW3peWFt+agj1wiLFxuICAgICAgICAgICAgICAgICAg\nICBcImJhaWppYWhhb19zaGllbGRfdXNlcl9jb21tZW50X2lucHV0X2JveFwiLFxuICAgICAgICAg\nICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1c\nbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6\nIFwi5Yqr5oyBXC\/mi6bmiKpcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4g\nICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAg\nICAgICAgICAgICAgICAgICBcIuWKq+aMgS3llKTphpJBcHBcIixcbiAgICAgICAgICAgICAgICAg\nICAgXCJiYWlqaWFoYW9faGlqYWNrX3dha2V1cFwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVl\nLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi6Zi7\n5q2i5ZSk6YaS6LCD55SoQXBwXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAg\nICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLliqvmjIEtaWZyYW1l5ZSk6YaS\nQXBwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfYmFpamlhaGFvX2hpamFja19pZnJh\nbWVcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9p\nZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIumYu+atouWUpOmGkuiwg+eUqEFwcFwiXG4gICAg\nICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAg\nICAgICAgICAgIFwi5Yqr5oyBLU9wZW5Cb3jlh73mlbBcIixcbiAgICAgICAgICAgICAgICAgICAg\nXCJiYWlkdV9iYWlqaWFoYW9faGlqYWNrX29wZW5ib3hcIixcbiAgICAgICAgICAgICAgICAgICAg\ndHJ1ZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgICAgICAgICBcIuWKq+aMgS1vcGVuQ29udGVudEJveOWHveaVsFwiLFxuICAg\nICAgICAgICAgICAgICAgICBcImJhaWR1X2JhaWppYWhhb19oaWphY2tfb3BlbkNvbnRlbnRCb3hc\nIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAg\nICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0s\nXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLnmb7lrrblj7dcIixcbiAgICAgICAg\nICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIm1iZC5i\nYWlkdS5jb21cIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAg\nICAgICAgICAgICB0ZXh0OiBcIuWxj+iUvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9y\nbXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0\nY2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR57K+5b2p6K+E6K66XCIsXG4g\nICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfbWJkX2Jsb2NrX2V4Y2l0aW5nX2NvbW1lbnRzXCIs\nXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAg\nICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR\n57K+5b2p5o6o6I2QXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfbWJkX2Jsb2NrX2V4\nY2l0aW5nX3JlY29tbWVuZGF0aW9uc1wiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAg\nICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAg\nICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6lemDqOW3peWFt+agj1wiLFxuICAgICAgICAgICAg\nICAgICAgICBcImJhaWR1X21iZF9zaGllbGRfYm90dG9tX3Rvb2xiYXJcIixcbiAgICAgICAgICAg\nICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4g\nICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBc\nIuWKn+iDvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAg\nICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAg\nICAgICAgIFwi5Lyq6KOF5oiQbGl0ZSBiYWlkdWJveGFwcFwiLFxuICAgICAgICAgICAgICAgICAg\nICBcImJhaWR1X21iZF9jYW1vdWZsYWdlX2xpdGVfYmFpZHVib3hhcHBcIixcbiAgICAgICAgICAg\nICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAg\nICAgICAgICBcIuWPr+S7peS8mOWMlua1j+iniOS9k+mqjFwiXG4gICAgICAgICAgICAgICAgICAp\nXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4g\nICAgICAgICAgICAgICAgdGV4dDogXCLliqvmjIFcL+aLpuaIqlwiLFxuICAgICAgICAgICAgICAg\nIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAg\nICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5oum5oiqLeWUpOmGkkFwcFwi\nLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X21iZF9oaWphY2tfd2FrZXVwXCIsXG4gICAg\nICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAg\nICAgICAgICAgICAgICAgXCLpmLvmraLllKTphpLosIPnlKhBcHBcIlxuICAgICAgICAgICAgICAg\nICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBc\nIuaLpuaIqi1pZnJhbWXllKTphpJBcHBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV9t\nYmRfaGlqYWNrX2lmcmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAg\nICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi6Zi75q2i5ZSk6YaS6LCD\n55SoQXBwXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRj\naChcbiAgICAgICAgICAgICAgICAgICAgXCLliqvmjIEtQm94SlNCZWZvcmXlh73mlbBcIixcbiAg\nICAgICAgICAgICAgICAgICAgXCJiYWlkdV9tYmRfaGlqYWNrX0JveEpTQmVmb3JlXCIsXG4gICAg\nICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAg\nICAgICAgICAgICAgICAgXCLpmLvmraLllKTphpLosIPnlKhBcHBcIlxuICAgICAgICAgICAgICAg\nICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxu\nICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgVnVl\nVXRpbHMgPSB7XG4gICAgXC8qKlxuICAgICAqIOiOt+WPlnZ1ZTLlrp7kvotcbiAgICAgKiBAcGFy\nYW0gZWxlbWVudFxuICAgICAqIEByZXR1cm5zXG4gICAgICpcL1xuICAgIGdldFZ1ZShlbGVtZW50\nKSB7XG4gICAgICBpZiAoZWxlbWVudCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAg\nIH1cbiAgICAgIHJldHVybiBlbGVtZW50W1wiX192dWVfX1wiXSB8fCBlbGVtZW50W1wiX19JdnVl\nX19cIl0gfHwgZWxlbWVudFtcIl9fSVZ1ZV9fXCJdO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOiOt+WPlnZ1ZTPlrp7kvotcbiAgICAgKiBAcGFyYW0gZWxlbWVudFxuICAgICAqIEByZXR1cm5z\nXG4gICAgICpcL1xuICAgIGdldFZ1ZTMoZWxlbWVudCkge1xuICAgICAgaWYgKGVsZW1lbnQgPT0g\nbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm4gZWxlbWVudFtc\nIl9fdnVlUGFyZW50Q29tcG9uZW50XCJdO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOetieW+\nhXZ1ZeWxnuaAp+W5tui\/m+ihjOiuvue9rlxuICAgICAqXC9cbiAgICB3YWl0VnVlUHJvcFRvU2V0\nKCR0YXJnZXQsIG5lZWRTZXRMaXN0KSB7XG4gICAgICBmdW5jdGlvbiBnZXRUYXJnZXQoKSB7XG4g\nICAgICAgIGxldCBfX3RhcmdldF9fID0gbnVsbDtcbiAgICAgICAgaWYgKHR5cGVvZiAkdGFyZ2V0\nID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgX190YXJnZXRfXyA9IGRvY3VtZW50LnF1ZXJ5\nU2VsZWN0b3IoJHRhcmdldCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mICR0YXJnZXQgPT09\nIFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIF9fdGFyZ2V0X18gPSAkdGFyZ2V0KCk7XG4gICAg\nICAgIH0gZWxzZSBpZiAoJHRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAg\nICAgX190YXJnZXRfXyA9ICR0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9fdGFy\nZ2V0X187XG4gICAgICB9XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkobmVlZFNldExpc3QpKSB7\nXG4gICAgICAgIHRoaXMud2FpdFZ1ZVByb3BUb1NldCgkdGFyZ2V0LCBbbmVlZFNldExpc3RdKTtc\nbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbmVlZFNldExpc3QuZm9yRWFjaCgobmVl\nZFNldE9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG5lZWRTZXRPcHRpb24ubXNnID09\nPSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgbG9nLmluZm8obmVlZFNldE9wdGlvbi5tc2cpO1xu\nICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGNoZWNrVnVlKCkge1xuICAgICAgICAgIGxldCB0\nYXJnZXQgPSBnZXRUYXJnZXQoKTtcbiAgICAgICAgICBpZiAodGFyZ2V0ID09IG51bGwpIHtcbiAg\nICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IHZ1ZU9i\naiA9IFZ1ZVV0aWxzLmdldFZ1ZSh0YXJnZXQpO1xuICAgICAgICAgIGlmICh2dWVPYmogPT0gbnVs\nbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBs\nZXQgbmVlZE93bkNoZWNrID0gbmVlZFNldE9wdGlvbi5jaGVjayh2dWVPYmopO1xuICAgICAgICAg\nIHJldHVybiBCb29sZWFuKG5lZWRPd25DaGVjayk7XG4gICAgICAgIH1cbiAgICAgICAgdXRpbHMu\nd2FpdFZ1ZUJ5SW50ZXJ2YWwoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJu\nIGdldFRhcmdldCgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2hlY2tWdWUsXG4gICAgICAg\nICAgMjUwLFxuICAgICAgICAgIDFlNFxuICAgICAgICApLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAg\nICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxu\nICAgICAgICAgIGxldCB0YXJnZXQgPSBnZXRUYXJnZXQoKTtcbiAgICAgICAgICBsZXQgdnVlT2Jq\nID0gVnVlVXRpbHMuZ2V0VnVlKHRhcmdldCk7XG4gICAgICAgICAgaWYgKHZ1ZU9iaiA9PSBudWxs\nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG5lZWRTZXRP\ncHRpb24uc2V0KHZ1ZU9iaik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xu\nICBjb25zdCBUaWVCYUFwaSA9IHtcbiAgICBcLyoqXG4gICAgICog5qC55o2udW58cG9ydHJhaXTo\njrflj5bkuKrkurrkuLvpobXkv6Hmga9cbiAgICAgKlxuICAgICAqIFwvaG9tZVwvZ2V0XC9wYW5l\nbFxuICAgICAqIEBwYXJhbSB1c2VySW5mb1xuICAgICAqXC9cbiAgICBhc3luYyBnZXRVc2VySG9t\nZUluZm8odXNlckluZm8pIHtcbiAgICAgIGxldCBzZWFyY2hQYXJhbXMgPSBcIlwiO1xuICAgICAg\naWYgKHVzZXJJbmZvW1widW5cIl0pIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zID0gYHVuPSR7dXNl\nckluZm9bXCJ1blwiXX1gO1xuICAgICAgfSBlbHNlIGlmICh1c2VySW5mb1tcInBvcnRyYWl0XCJd\nKSB7XG4gICAgICAgIHNlYXJjaFBhcmFtcyA9IGBwb3J0cmFpdD0ke3VzZXJJbmZvW1wicG9ydHJh\naXRcIl19YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJ1\nc2VySW5mby51bnx1c2VySW5mby5wb3J0cmFpdCBpcyB1bmRlZmluZWRcIik7XG4gICAgICB9XG4g\nICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4LmdldChcbiAgICAgICAgYGh0dHBzOlwvXC90\naWViYS5iYWlkdS5jb21cL2hvbWVcL2dldFwvcGFuZWw\/aWU9dXRmLTgmJHtzZWFyY2hQYXJhbXN9\nYCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIFwiVXNlci1B\nZ2VudFwiOiB1dGlscy5nZXRSYW5kb21QQ1VBKCksXG4gICAgICAgICAgICBIb3N0OiBcInRpZWJh\nLmJhaWR1LmNvbVwiLFxuICAgICAgICAgICAgUmVmZXJlcjogXCJodHRwczpcL1wvdGllYmEuYmFp\nZHUuY29tXC9cIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGlmICgh\nZ2V0UmVzcC5zdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRh\ndGEgPSB1dGlscy50b0pTT04oZ2V0UmVzcC5kYXRhLnJlc3BvbnNlVGV4dCk7XG4gICAgICBpZiAo\nZGF0YVtcIm5vXCJdICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJl\ndHVybiBkYXRhLmRhdGE7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5qC55o2udW7ojrflj5bl\nuJblrZDkv6Hmga9cbiAgICAgKlxuICAgICAqIFwvaG9tZVwvcG9zdFxuICAgICAqIEBwYXJhbSB1\nbiDnlKjmiLfnmoR1bih1c2VyTmFtZSlcbiAgICAgKiBAcGFyYW0gW3BuPTFdIOesrHh46aG1XG4g\nICAgICpcL1xuICAgIGFzeW5jIGdldFVzZXJQb3N0cyh1biwgcG4gPSAxKSB7XG4gICAgICBsZXQg\nZ2V0UmVzcCA9IGF3YWl0IGh0dHB4LmdldChcbiAgICAgICAgYGh0dHBzOlwvXC90aWViYS5iYWlk\ndS5jb21cL2hvbWVcL3Bvc3Q\/dW49JHt1bn0maXNfYWpheD0xJmxwPSZwbj0ke3BufWAsXG4gICAg\nICAgIHtcbiAgICAgICAgICBmZXRjaDogdHJ1ZSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAg\nICAgICAgICBcIlVzZXItQWdlbnRcIjogdXRpbHMuZ2V0UmFuZG9tUENVQSgpXG4gICAgICAgICAg\nfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCFnZXRSZXNwLnN0YXR1cykge1xuICAg\nICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGF0YSA9IHV0aWxzLnRvSlNPTihnZXRS\nZXNwLmRhdGEucmVzcG9uc2VUZXh0KTtcbiAgICAgIGlmIChkYXRhLm5vICE9IDApIHtcbiAgICAg\nICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWxzLmlzTnVsbChkYXRhLmRhdGEuY29u\ndGVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHJlc3VsdCA9IHtc\nbiAgICAgICAgaGFzX21vcmU6IEJvb2xlYW4oZGF0YS5kYXRhLnBhZ2UuaGFzX21vcmUpLFxuICAg\nICAgICBkYXRhOiBbXVxuICAgICAgfTtcbiAgICAgIGxldCBjb250ZW50RG9jID0gZG9tdXRpbHMu\ncGFyc2VIVE1MKGRhdGEuZGF0YS5jb250ZW50LCB0cnVlLCB0cnVlKTtcbiAgICAgIEFycmF5LmZy\nb20oY29udGVudERvYy5xdWVyeVNlbGVjdG9yQWxsKFwiLmxpc3RfaXRlbVwiKSkuZm9yRWFjaChc\nbiAgICAgICAgKGxpRWxlbWVudCkgPT4ge1xuICAgICAgICAgIGxldCBwb3N0SW5mbyA9IHtcbiAg\nICAgICAgICAgIHVybDogbGlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJhLmxpc3RfaXRlbV9saW5r\nXCIpLmhyZWYsXG4gICAgICAgICAgICB0aXRsZTogbGlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIu\ncG9zdF9saXN0X2l0ZW1fdGl0bGVcIikuaW5uZXJIVE1MLFxuICAgICAgICAgICAgY29udGVudDog\nbGlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucG9zdF9hYnN0cmFjdF90ZXh0XCIpLmlubmVySFRN\nTCxcbiAgICAgICAgICAgIGZvcnVtTmFtZTogbGlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAg\nICAgICAgICAgIFwiLnBvc3RfbGlzdF9pdGVtX2luZm9fZm9ydW1cIlxuICAgICAgICAgICAgKS5p\nbm5lclRleHQucmVwbGFjZShcL+WQpyRcLywgXCJcIiksXG4gICAgICAgICAgICBjcmVhdGVUaW1l\nOiBsaUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgXCIucG9zdF9saXN0X2l0\nZW1faW5mb190aW1lXCJcbiAgICAgICAgICAgICkuaW5uZXJUZXh0LFxuICAgICAgICAgICAgcmVw\nbHlOdW06IHBhcnNlSW50KFxuICAgICAgICAgICAgICBsaUVsZW1lbnQucXVlcnlTZWxlY3Rvcihc\nbiAgICAgICAgICAgICAgICBcIi5wb3N0X2l0ZW1faW5mb19yZXBseV9pY29uXCJcbiAgICAgICAg\nICAgICAgKS5pbm5lclRleHRcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtZWRpYUxpc3Q6\nIFtdXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAoaXNOYU4ocG9zdEluZm8ucmVwbHlOdW0p\nKSB7XG4gICAgICAgICAgICBwb3N0SW5mby5yZXBseU51bSA9IDA7XG4gICAgICAgICAgfVxuICAg\nICAgICAgIGlmIChsaUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi50aHJlYWRfYm9keV9tZWRpYVwi\nKSkge1xuICAgICAgICAgICAgcG9zdEluZm8ubWVkaWFMaXN0LmNvbmNhdChcbiAgICAgICAgICAg\nICAgQXJyYXkuZnJvbShcbiAgICAgICAgICAgICAgICBsaUVsZW1lbnQucXVlcnlTZWxlY3RvckFs\nbChcbiAgICAgICAgICAgICAgICAgIFwiLnRocmVhZF9ib2R5X21lZGlhIGltZ1wiXG4gICAgICAg\nICAgICAgICAgKVxuICAgICAgICAgICAgICApLm1hcCgoaXRlbSkgPT4gaXRlbS5zcmMpXG4gICAg\nICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHQuZGF0YS5wdXNoKHBvc3RJ\nbmZvKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog5qC55o2udW7ojrflj5bnlKjmiLfkv6Hmga9cbiAgICAgKiBAcGFy\nYW0gdW4g55So5oi355qEdW4odXNlck5hbWUp77yM6Ieq5Yqo6L+b6KGMZ2Jr57yW56CBXG4gICAg\nICpcL1xuICAgIGFzeW5jIGdldFVzZXJKU09OKHVuKSB7XG4gICAgICBsZXQgZ2JrRW5jb2RlciA9\nIG5ldyB1dGlscy5HQktFbmNvZGVyKCk7XG4gICAgICB1biA9IGdia0VuY29kZXIuZW5jb2RlKHVu\nKTtcbiAgICAgIGxldCBnZXRSZXNwID0gYXdhaXQgaHR0cHguZ2V0KFxuICAgICAgICBgaHR0cHM6\nXC9cL3RpZWJhLmJhaWR1LmNvbVwvaVwvc3lzXC91c2VyX2pzb24\/dW49JHt1bn1gLFxuICAgICAg\nICB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgXCJVc2VyLUFnZW50XCI6IHV0\naWxzLmdldFJhbmRvbVBDVUEoKSxcbiAgICAgICAgICAgIEhvc3Q6IFwidGllYmEuYmFpZHUuY29t\nXCIsXG4gICAgICAgICAgICBSZWZlcmVyOiBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL1wi\nXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCFnZXRSZXNwLnN0\nYXR1cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGF0YSA9IHV0aWxz\nLnRvSlNPTihnZXRSZXNwLmRhdGEucmVzcG9uc2VUZXh0KTtcbiAgICAgIHJldHVybiBkYXRhO1xu\nICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOagueaNrnVpZOiOt+WPlueUqOaIt+S\/oeaBr1xuICAg\nICAqXG4gICAgICog5rOo5oSP77ya6K+l6K+35rGC5pivaHR0cOmdnuWuieWFqOivt+axglxuICAg\nICAqIEBwYXJhbSB1aWRcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqXC9cbiAgICBhc3luYyBnZXRD\naGF0VXNlckluZm8odWlkKSB7XG4gICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4LmdldChc\nbiAgICAgICAgYGh0dHA6XC9cL3RpZWJhLmJhaWR1LmNvbVwvaW1cL3BjbXNnXC9xdWVyeVwvZ2V0\nVXNlckluZm8\/Y2hhdFVpZD0ke3VpZH1gLFxuICAgICAgICB7XG4gICAgICAgICAgaGVhZGVyczog\ne1xuICAgICAgICAgICAgXCJVc2VyLUFnZW50XCI6IHV0aWxzLmdldFJhbmRvbVBDVUEoKSxcbiAg\nICAgICAgICAgIEhvc3Q6IFwidGllYmEuYmFpZHUuY29tXCIsXG4gICAgICAgICAgICBSZWZlcmVy\nOiBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL1wiXG4gICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICApO1xuICAgICAgaWYgKCFnZXRSZXNwLnN0YXR1cykge1xuICAgICAgICByZXR1cm47\nXG4gICAgICB9XG4gICAgICBsZXQgZGF0YSA9IHV0aWxzLnRvSlNPTihnZXRSZXNwLmRhdGEucmVz\ncG9uc2VUZXh0KTtcbiAgICAgIGlmIChkYXRhLmVycm5vICE9PSAwKSB7XG4gICAgICAgIHJldHVy\nbjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhLmNoYXRVc2VyO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOetvuWIsOWQp1xuICAgICAqXG4gICAgICogXC9zaWduXC9hZGRcbiAgICAgKiBA\ncGFyYW0gZm9ydW1OYW1lIOWQp+WQjVxuICAgICAqIEBwYXJhbSB0YnMg5bqU6K+l5piv55So5oi3\ndG9rZW5cbiAgICAgKlwvXG4gICAgYXN5bmMgZm9ydW1TaWduKGZvcnVtTmFtZSwgdGJzKSB7XG4g\nICAgICBsb2cuc3VjY2VzcyhbXCLlj5HpgIHnrb7liLDor7fmsYLihpJcIiwgZm9ydW1OYW1lLCB0\nYnNdKTtcbiAgICAgIGxldCBwb3N0UmVzcCA9IGF3YWl0IGh0dHB4LnBvc3QoXCJodHRwczpcL1wv\ndGllYmEuYmFpZHUuY29tXC9zaWduXC9hZGRcIiwge1xuICAgICAgICBkYXRhOiBgaWU9dXRmLTgm\na3c9JHtmb3J1bU5hbWV9JnRicz0ke3Ric31gLFxuICAgICAgICByZXNwb25zZVR5cGU6IFwianNv\nblwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9u\nXC9qc29uLCB0ZXh0XC9qYXZhc2NyaXB0LCAqXC8qOyBxPTAuMDFcIixcbiAgICAgICAgICBcIkNv\nbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uXC94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJz\nZXQ9VVRGLThcIixcbiAgICAgICAgICBIb3N0OiBcInRpZWJhLmJhaWR1LmNvbVwiLFxuICAgICAg\nICAgIE9yaWdpbjogXCJodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXCIsXG4gICAgICAgICAgXCJV\nc2VyLUFnZW50XCI6IHV0aWxzLmdldFJhbmRvbVBDVUEoKSxcbiAgICAgICAgICBSZWZlcmVyOiBc\nImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL3BcL1wiLFxuICAgICAgICAgIFwiWC1SZXF1ZXN0\nZWQtV2l0aFwiOiBcIlhNTEh0dHBSZXF1ZXN0XCJcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAg\nICBsb2cuc3VjY2Vzcyhwb3N0UmVzcCk7XG4gICAgICBpZiAoIXBvc3RSZXNwLnN0YXR1cykge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGF0YSA9IHV0aWxzLnRvSlNPTihw\nb3N0UmVzcC5kYXRhLnJlc3BvbnNlVGV4dCk7XG4gICAgICBsb2cuc3VjY2VzcyhkYXRhKTtcbiAg\nICAgIHJldHVybiBkYXRhO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WPlueUqOaIt+aJ\ngOacieWFs+azqOeahOWQp1xuICAgICAqIOmcgOimgWNvb2tpZVxuICAgICAqIOWmguaenOacqueZ\nu+W9le+8jOmCo+S5iOS8muiOt+WPluWIsOepuuWIl+ihqFxuICAgICAqXG4gICAgICogXC9tb1wv\ncVwvc3VnXG4gICAgICpcL1xuICAgIGFzeW5jIGdldFVzZXJBbGxMaWtlRm9ydW0oKSB7XG4gICAg\nICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4LmdldChcbiAgICAgICAgXCJodHRwczpcL1wvdGll\nYmEuYmFpZHUuY29tXC9tb1wvcVwvc3VnP3F1ZXJ5PSZpc19hamF4PTEmc3VnPTFcIixcbiAgICAg\nICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNh\ndGlvblwvanNvblwiLFxuICAgICAgICAgICAgSG9zdDogXCJ0aWViYS5iYWlkdS5jb21cIixcbiAg\nICAgICAgICAgIFJlZmVyZXI6IFwiaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwvaVwvaVwvZm9y\ndW1cIixcbiAgICAgICAgICAgIFwiVXNlci1BZ2VudFwiOiB1dGlscy5nZXRSYW5kb21BbmRyb2lk\nVUEoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGxvZy5zdWNjZXNz\nKGdldFJlc3ApO1xuICAgICAgaWYgKCFnZXRSZXNwLnN0YXR1cykge1xuICAgICAgICByZXR1cm47\nXG4gICAgICB9XG4gICAgICBsZXQgZGF0YSA9IHV0aWxzLnRvSlNPTihcbiAgICAgICAgZ2V0UmVz\ncC5kYXRhLnJlc3BvbnNlVGV4dFxuICAgICAgKTtcbiAgICAgIGxvZy5zdWNjZXNzKGRhdGEpO1xu\nICAgICAgcmV0dXJuIGRhdGFbXCJkYXRhXCJdW1wibGlrZV9mb3J1bVwiXTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDojrflj5blkKfnmoR0YnPlgLxcbiAgICAgKlwvXG4gICAgYXN5bmMgZ2V0\nRm9ydW1UYnMoZm9ydW1OYW1lKSB7XG4gICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4Lmdl\ndChcbiAgICAgICAgYGh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2Y\/a3c9JHtmb3J1bU5hbWV9\nJmllPXV0Zi04YCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAg\nIEhvc3Q6IFwidGllYmEuYmFpZHUuY29tXCIsXG4gICAgICAgICAgICBSZWZlcmVyOiBgaHR0cHM6\nXC9cL3RpZWJhLmJhaWR1LmNvbVwvZj9rdz0ke2ZvcnVtTmFtZX0maWU9dXRmLThgXG4gICAgICAg\nICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCFnZXRSZXNwLnN0YXR1cykge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgUGFnZURhdGEgPSBnZXRSZXNwLmRh\ndGEucmVzcG9uc2VUZXh0Lm1hdGNoKFxuICAgICAgICBcL3ZhcltcXHNdKlBhZ2VEYXRhW1xcc1xc\nU10qJ3RicycuKlwiKC4rKVwiXC9cbiAgICAgICk7XG4gICAgICBpZiAoIVBhZ2VEYXRhKSB7XG4g\nICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBQYWdlRGF0YVsxXTtcbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDojrflj5bluJblrZDlhoXnmoTlm77niYdcbiAgICAgKlxuICAg\nICAqIFwvcGhvdG9cL2J3XC9waWN0dXJlXC9ndWlkZVxuICAgICAqIEBwYXJhbSBmb3J1bU5hbWVc\nbiAgICAgKiBAcGFyYW0gdGlkXG4gICAgICogQHBhcmFtIHNlZV9selxuICAgICAqIEBwYXJhbSBm\ncm9tX3BhZ2VcbiAgICAgKiBAcGFyYW0gYWx0XG4gICAgICogQHBhcmFtIG5leHRcbiAgICAgKiBA\ncGFyYW0gcHJldlxuICAgICAqXC9cbiAgICBhc3luYyBnZXRQaWN0dXJlR3VpZGUoZm9ydW1OYW1l\nLCB0aWQsIHNlZV9seiA9IDAsIGZyb21fcGFnZSA9IDAsIGFsdCA9IFwianZpZXdcIiwgbmV4dCA9\nIDFlMywgcHJldiA9IDFlMykge1xuICAgICAgbGV0IGdldFJlc3AgPSBhd2FpdCBodHRweC5nZXQo\nXG4gICAgICAgIGBodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9waG90b1wvYndcL3BpY3R1cmVc\nL2d1aWRlP2t3PSR7Zm9ydW1OYW1lfSZ0aWQ9JHt0aWR9JnNlZV9sej0ke3NlZV9sen0mZnJvbV9w\nYWdlPSR7ZnJvbV9wYWdlfSZhbHQ9JHthbHR9Jm5leHQ9JHtuZXh0fSZwcmV2PSR7cHJldn0mXz0k\ne0RhdGUubm93KCl9YCxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAg\nICAgIEFjY2VwdDogXCIqXC8qXCIsXG4gICAgICAgICAgICBIb3N0OiBcInRpZWJhLmJhaWR1LmNv\nbVwiLFxuICAgICAgICAgICAgXCJVc2VyLUFnZW50XCI6IHV0aWxzLmdldFJhbmRvbVBDVUEoKVxu\nICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImpzb25cIixcbiAgICAgICAg\nICBhbGxvd0ludGVyY2VwdENvbmZpZzogZmFsc2VcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAg\nIGlmICghZ2V0UmVzcC5zdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAg\nbGV0IGRhdGEgPSB1dGlscy50b0pTT04oXG4gICAgICAgIGdldFJlc3AuZGF0YS5yZXNwb25zZVRl\neHRcbiAgICAgICk7XG4gICAgICBpZiAoZGF0YVtcIm5vXCJdID09PSAwIHx8IGRhdGFbXCJlcnJv\nclwiXSA9PT0gXCJzdWNlc3MhXCIpIHtcbiAgICAgICAgcmV0dXJuIGRhdGFbXCJkYXRhXCJdO1xu\nICAgICAgfVxuICAgIH1cbiAgfTtcbiAgY29uc3QgVGllYmFVcmxBcGkgPSB7XG4gICAgXC8qKlxu\nICAgICAqIOagueaNrnBvcnRyYWl06I635Y+W55So5oi35aS05YOPXG4gICAgICpcL1xuICAgIGdl\ndFVzZXJBdmF0YXIocG9ydHJhaXQpIHtcbiAgICAgIGxldCBhdXRob3JJbWdJZCA9IFwiNkxaMWRE\nM2Qxc2dDbzJLbWw1X1lfRDNcIjtcbiAgICAgIHJldHVybiBgaHR0cHM6XC9cL2dzczAuYmRzdGF0\naWMuY29tXC8ke2F1dGhvckltZ0lkfVwvc3lzXC9wb3J0cmFpdFwvaXRlbVwvJHtwb3J0cmFpdH1g\nO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOagueaNrnRifHBvcnRyYWl06I635Y+W55So5oi3\n5Li76aG15Zyw5Z2AXG4gICAgICpcL1xuICAgIGdldFVzZXJIb21lKHRiKSB7XG4gICAgICByZXR1\ncm4gYGh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2hvbWVcL21haW4\/aWQ9JHt0Yn1gO1xuICAg\nIH0sXG4gICAgXC8qKlxuICAgICAqIOagueaNrih1bnx1c2VyTmFtZSnojrflj5bnlKjmiLfkuLvp\nobXlnLDlnYBcbiAgICAgKlwvXG4gICAgZ2V0VXNlckhvbWVCeVVOKHVuKSB7XG4gICAgICByZXR1\ncm4gYGh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2hvbWVcL21haW4\/dW49JHt1bn1gO1xuICAg\nIH0sXG4gICAgXC8qKlxuICAgICAqIOagueaNrnRpZFwvcGlk6I635Y+W5biW5a2Q6ZO+5o6lXG4g\nICAgICogQHBhcmFtIGlkXG4gICAgICpcL1xuICAgIGdldFBvc3QoaWQpIHtcbiAgICAgIHJldHVy\nbiBgaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwvcFwvJHtpZH1gO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOiOt+WPluaQnOe0oue7vOWQiOeahOWcsOWdgFxuICAgICAqIEBwYXJhbSBzZWFy\nY2hUZXh0XG4gICAgICpcL1xuICAgIGdldEh5YnJpZFNlYXJjaChzZWFyY2hUZXh0KSB7XG4gICAg\nICByZXR1cm4gYGh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL21vXC9xXC9oeWJyaWRcL3NlYXJj\naD9rZXl3b3JkPSR7c2VhcmNoVGV4dH1gO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WP\nlui0tOWQp+ihqOaDheWbvueJh1xuICAgICAqIEBwYXJhbSBwYXRoTmFtZSDljp9zdGF0aWMuYmFp\nZHUuY29t55qEcGF0aG5hbWVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqXC9cbiAgICBnZXRJbWFn\nZVNtaWxleShwYXRoTmFtZSkge1xuICAgICAgaWYgKHBhdGhOYW1lLnN0YXJ0c1dpdGgoXCJcL1wi\nKSkge1xuICAgICAgICBwYXRoTmFtZSA9IHBhdGhOYW1lLnJlcGxhY2UoXC9eXFxcL1wvLCBcIlwi\nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgaHR0cHM6XC9cL2dzcDAuYmFpZHUuY29tXC81YUFI\nZUQzbktoSTJwMjdqOElxVzBqZG54eDF4YktcLyR7cGF0aE5hbWV9YDtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDojrflj5blkKfnmoTpk77mjqVcbiAgICAgKiBAcGFyYW0ga3cg5ZCn5ZCNXG4g\nICAgICogQHJldHVybnNcbiAgICAgKlwvXG4gICAgZ2V0Rm9ydW0oa3cpIHtcbiAgICAgIHJldHVy\nbiBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2Y\/a3c9XCIgKyBrdztcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDojrflj5blj5HluJbpobXpnaLnmoTpk77mjqVcbiAgICAgKiBAcGFyYW0g\nZm5hbWUg5ZCn5ZCNXG4gICAgICogQHBhcmFtIGZpZCDlkKdpZFxuICAgICAqIEBwYXJhbSB0YnMg\ndGJz5YC8XG4gICAgICpcL1xuICAgIGdldFBvc3RQYWdlKGZuYW1lLCBmaWQsIHRicykge1xuICAg\nICAgcmV0dXJuIGBodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9oNWFjdGl2aXR5XC9wb3N0P2Zu\nYW1lPSR7Zm5hbWV9JmZpZD0ke2ZpZH0mdGJzPSR7dGJzfWA7XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog6L+b5ZCnXG4gICAgICpcL1xuICAgIGdldEdvVG9Gb3J1bSgpIHtcbiAgICAgIHJldHVy\nbiBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2luZGV4XC90Yndpc2VcL2ZvcnVtXCI7XG4g\nICAgfSxcbiAgICBcLyoqXG4gICAgICog5oiR55qEXG4gICAgICpcL1xuICAgIGdldE1pbmUoKSB7\nXG4gICAgICByZXR1cm4gXCJodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9pbmRleFwvdGJ3aXNl\nXC9taW5lXCI7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6I635Y+W55m75b2V6ZO+5o6lXG4g\nICAgICogQHBhcmFtIFtmcm9tPXdpbmRvdy5sb2NhdGlvbi5ocmVmXSDmg7PopoHnmbvlvZXmiJDl\nip\/lkI7ph43lrprlkJHnmoTlnLDlnYDvvIzpu5jorqTmmK\/lvZPliY3lnLDlnYBcbiAgICAgKlwv\nXG4gICAgZ2V0TG9naW5VcmwoZnJvbSA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmKSB7XG4gICAgICBy\nZXR1cm4gXCJodHRwczpcL1wvd2FwcGFzcy5iYWlkdS5jb21cL3Bhc3Nwb3J0P2xvZ2luJnRwbD10\nYiZ1PVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KGZyb20pO1xuICAgIH1cbiAgfTtcbiAgY29uc3Qg\nVGllYmFQYWdlRGF0YUFwaSA9IHtcbiAgICBcLyoqXG4gICAgICog5LuO6aG16Z2i5Lit6I635Y+W\nZm9ydW3nmoRpZFxuICAgICAqXC9cbiAgICBnZXRGb3J1bUlkKCkge1xuICAgICAgdmFyIF9hMywg\nX2IsIF9jO1xuICAgICAgbGV0IGRhdGFCYW5uZXJJbmZvU3RyID0gKF9hMyA9IGRvY3VtZW50LnF1\nZXJ5U2VsZWN0b3IoXCIucmVjb21tZW5kLWl0ZW1cIikpID09IG51bGwgPyB2b2lkIDAgOiBfYTMu\nZ2V0QXR0cmlidXRlKFwiZGF0YS1iYW5uZXItaW5mb1wiKTtcbiAgICAgIGxldCBkYXRhQmFubmVy\nSW5mbyA9IHV0aWxzLnRvSlNPTihkYXRhQmFubmVySW5mb1N0cik7XG4gICAgICBpZiAoZGF0YUJh\nbm5lckluZm9bXCJmb3J1bV9pZFwiXSkge1xuICAgICAgICByZXR1cm4gZGF0YUJhbm5lckluZm9b\nXCJmb3J1bV9pZFwiXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoX2MgPSAoX2Ig\nPSBWdWVVdGlscy5nZXRWdWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAtdmlld1wiKSkp\nID09IG51bGwgPyB2b2lkIDAgOiBfYi5mb3J1bSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLmlkO1xu\nICAgICAgfVxuICAgIH1cbiAgfTtcbiAgY29uc3QgVUlCdXR0b24gPSBmdW5jdGlvbih0ZXh0LCBk\nZXNjcmlwdGlvbiwgYnV0dG9uVGV4dCwgYnV0dG9uSWNvbiwgYnV0dG9uSXNSaWdodEljb24sIGJ1\ndHRvbkljb25Jc0xvYWRpbmcsIGJ1dHRvblR5cGUsIGNsaWNrQ2FsbEJhY2ssIGFmdGVyQWRkVG9V\nTGlzdENhbGxCYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgIHRleHQsXG4gICAgICB0\neXBlOiBcImJ1dHRvblwiLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBidXR0b25JY29uLFxu\nICAgICAgYnV0dG9uSXNSaWdodEljb24sXG4gICAgICBidXR0b25JY29uSXNMb2FkaW5nLFxuICAg\nICAgYnV0dG9uVHlwZSxcbiAgICAgIGJ1dHRvblRleHQsXG4gICAgICBjYWxsYmFjayhldmVudCkg\ne1xuICAgICAgICBpZiAodHlwZW9mIGNsaWNrQ2FsbEJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xu\nICAgICAgICAgIGNsaWNrQ2FsbEJhY2soZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAg\nICAgYWZ0ZXJBZGRUb1VMaXN0Q2FsbEJhY2tcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4g\nIH07XG4gIGNvbnN0IENvbW1vblV0aWwgPSB7XG4gICAgXC8qKlxuICAgICAqIOa3u+WKoOWxj+iU\nvUNTU1xuICAgICAqIEBwYXJhbSBhcmdzXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBhZGRCbG9j\na0NTUyhcIlwiKVxuICAgICAqIGFkZEJsb2NrQ1NTKFwiXCIsXCJcIilcbiAgICAgKiBhZGRCbG9j\na0NTUyhbXCJcIixcIlwiXSlcbiAgICAgKlwvXG4gICAgYWRkQmxvY2tDU1MoLi4uYXJncykge1xu\nICAgICAgbGV0IHNlbGVjdG9yTGlzdCA9IFtdO1xuICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAw\nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0g\nMSAmJiB0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiAmJiBhcmdzWzBdLnRyaW0oKSA9PT0g\nXCJcIikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcmdzLmZvckVhY2goKHNl\nbGVjdG9yKSA9PiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdG9yKSkge1xuICAg\nICAgICAgIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9yTGlzdC5jb25jYXQoc2VsZWN0b3IpO1xuICAg\nICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGVjdG9yTGlzdC5wdXNoKHNlbGVjdG9yKTtcbiAg\nICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWRkU3R5bGUoYCR7c2VsZWN0b3JMaXN0\nLmpvaW4oXCIsXFxuXCIpfXtkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7fWApO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOiuvue9rkdNX2dldFJlc291cmNlVGV4dOeahHN0eWxl5YaF5a65XG4g\nICAgICogQHBhcmFtIHJlc291cmNlTWFwRGF0YSDotYTmupDmlbDmja5cbiAgICAgKiBAZXhhbXBs\nZVxuICAgICAqIHNldEdNUmVzb3VyY2VDU1Moe1xuICAgICAqICAga2V5TmFtZTogXCJWaWV3ZXJD\nU1NcIixcbiAgICAgKiAgIHVybDogXCJodHRwczpcL1wvZXhhbXBsZS5jb21cL2V4YW1wbGUuY3Nz\nXCIsXG4gICAgICogfSlcbiAgICAgKlwvXG4gICAgc2V0R01SZXNvdXJjZUNTUyhyZXNvdXJjZU1h\ncERhdGEpIHtcbiAgICAgIGxldCBjc3NUZXh0ID0gdHlwZW9mIF9HTV9nZXRSZXNvdXJjZVRleHQg\nPT09IFwiZnVuY3Rpb25cIiA\/IF9HTV9nZXRSZXNvdXJjZVRleHQocmVzb3VyY2VNYXBEYXRhLmtl\neU5hbWUpIDogXCJcIjtcbiAgICAgIGlmICh0eXBlb2YgY3NzVGV4dCA9PT0gXCJzdHJpbmdcIiAm\nJiBjc3NUZXh0KSB7XG4gICAgICAgIGFkZFN0eWxlKGNzc1RleHQpO1xuICAgICAgfSBlbHNlIHtc\nbiAgICAgICAgQ29tbW9uVXRpbC5sb2FkU3R5bGVMaW5rKHJlc291cmNlTWFwRGF0YS51cmwpO1xu\nICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOa3u+WKoDxsaW5rPuagh+etvlxuICAg\nICAqIEBwYXJhbSB1cmxcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGxvYWRTdHlsZUxpbmsoXCJo\ndHRwczpcL1wvZXhhbXBsZS5jb21cL2V4YW1wbGUuY3NzXCIpXG4gICAgICpcL1xuICAgIGFzeW5j\nIGxvYWRTdHlsZUxpbmsodXJsKSB7XG4gICAgICBsZXQgJGxpbmsgPSBkb2N1bWVudC5jcmVhdGVF\nbGVtZW50KFwibGlua1wiKTtcbiAgICAgICRsaW5rLnJlbCA9IFwic3R5bGVzaGVldFwiO1xuICAg\nICAgJGxpbmsudHlwZSA9IFwidGV4dFwvY3NzXCI7XG4gICAgICAkbGluay5ocmVmID0gdXJsO1xu\nICAgICAgZG9tdXRpbHMucmVhZHkoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVu\nZENoaWxkKCRsaW5rKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOa3u+WK\noDxzY3JpcHQ+5qCH562+XG4gICAgICogQHBhcmFtIHVybFxuICAgICAqIEBleGFtcGxlXG4gICAg\nICogbG9hZFN0eWxlTGluayhcImh0dHBzOlwvXC9leGFtcGxlLmNvbVwvZXhhbXBsZS5qc1wiKVxu\nICAgICAqXC9cbiAgICBhc3luYyBsb2FkU2NyaXB0KHVybCkge1xuICAgICAgbGV0ICRzY3JpcHQg\nPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgJHNjcmlwdC5zcmMg\nPSB1cmw7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAg\nJHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAg\nICAgfTtcbiAgICAgICAgKGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50\nKS5hcHBlbmRDaGlsZCgkc2NyaXB0KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAg\nICAqIOWwhnVybOS\/ruWkje+8jOS+i+WmguWPquaciXNlYXJjaOeahOmTvuaOpeS\/ruWkjeS4uuWu\njOaVtOeahOmTvuaOpVxuICAgICAqXG4gICAgICog5rOo5oSP77ya5LiN5YyF5ousaHR0cOi9rGh0\ndHBzXG4gICAgICogQHBhcmFtIHVybCDpnIDopoHkv67lpI3nmoTpk77mjqVcbiAgICAgKiBAZXhh\nbXBsZVxuICAgICAqIOS\/ruWkjeWJje+8mmBcL3h4eFwveHh4P3NzPXNzc3NgXG4gICAgICog5L+u\n5aSN5ZCO77yaYGh0dHBzOlwvXC94eHgueHh4Lnh4eFwveHh4XC94eHg\/c3M9c3Nzc2BcbiAgICAg\nKiBAZXhhbXBsZVxuICAgICAqIOS\/ruWkjeWJje+8mmBcL1wveHh4XC94eHg\/c3M9c3Nzc2BcbiAg\nICAgKiDkv67lpI3lkI7vvJpgaHR0cHM6XC9cL3h4eC54eHgueHh4XC94eHhcL3h4eD9zcz1zc3Nz\nYFxuICAgICAqIEBleGFtcGxlXG4gICAgICog5L+u5aSN5YmN77yaYGh0dHBzOlwvXC94eHgueHh4\nLnh4eFwveHh4XC94eHg\/c3M9c3Nzc2BcbiAgICAgKiDkv67lpI3lkI7vvJpgaHR0cHM6XC9cL3h4\neC54eHgueHh4XC94eHhcL3h4eD9zcz1zc3NzYFxuICAgICAqIEBleGFtcGxlXG4gICAgICog5L+u\n5aSN5YmN77yaYHh4eFwveHh4P3NzPXNzc3NgXG4gICAgICog5L+u5aSN5ZCO77yaYGh0dHBzOlwv\nXC94eHgueHh4Lnh4eFwveHh4XC94eHg\/c3M9c3Nzc2BcbiAgICAgKlwvXG4gICAgZml4VXJsKHVy\nbCkge1xuICAgICAgdXJsID0gdXJsLnRyaW0oKTtcbiAgICAgIGlmICh1cmwubWF0Y2goXC9eaHR0\ncChzfCk6XFxcL1xcXC9cL2kpKSB7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgICB9IGVsc2Ug\ne1xuICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKFwiXC9cIikpIHtcbiAgICAgICAgICB1cmwg\nKz0gXCJcL1wiO1xuICAgICAgICB9XG4gICAgICAgIHVybCA9IHdpbmRvdy5sb2NhdGlvbi5vcmln\naW4gKyB1cmw7XG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICogaHR0cOi9rGh0dHBzXG4gICAgICogQHBhcmFtIHVybCDpnIDopoHkv67lpI3nmoTp\nk77mjqVcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIOS\/ruWkjeWJje+8mlxuICAgICAqIOS\/ruWk\njeWQju+8mlxuICAgICAqIEBleGFtcGxlXG4gICAgICog5L+u5aSN5YmN77yaXG4gICAgICog5L+u\n5aSN5ZCO77yaXG4gICAgICpcL1xuICAgIGZpeEh0dHBzKHVybCkge1xuICAgICAgaWYgKHVybC5z\ndGFydHNXaXRoKFwiaHR0cHM6XC9cL1wiKSkge1xuICAgICAgICByZXR1cm4gdXJsO1xuICAgICAg\nfVxuICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0aChcImh0dHA6XC9cL1wiKSkge1xuICAgICAgICBy\nZXR1cm4gdXJsO1xuICAgICAgfVxuICAgICAgbGV0IHVybE9iaiA9IG5ldyBVUkwodXJsKTtcbiAg\nICAgIHVybE9iai5wcm90b2NvbCA9IFwiaHR0cHM6XCI7XG4gICAgICByZXR1cm4gdXJsT2JqLnRv\nU3RyaW5nKCk7XG4gICAgfVxuICB9O1xuICBjb25zdCBUaWViYVBDQXBpID0ge1xuICAgIFwvKipc\nbiAgICAgKiDojrflj5bnlKjmiLfmiYDmnInlhbPms6jnmoTlkKdcbiAgICAgKlwvXG4gICAgYXN5\nbmMgZ2V0VXNlckFsbExpbmtGb3J1bSgpIHtcbiAgICAgIGxldCByZXN1bHQgPSBbXTtcbiAgICAg\nIGxldCBnYmtFbmNvZGVyID0gbmV3IHV0aWxzLkdCS0VuY29kZXIoKTtcbiAgICAgIGxldCBwYWdl\nID0gMTtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGxldCBzZWFyY2hQYXJhbXNEYXRh\nID0ge1xuICAgICAgICAgIHY6IERhdGUubm93KCksXG4gICAgICAgICAgcG46IHBhZ2VcbiAgICAg\nICAgfTtcbiAgICAgICAgbGV0IHVybCA9IGBodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9mXC9s\naWtlXC9teWxpa2U\/JHt1dGlscy50b1NlYXJjaFBhcmFtc1N0cihcbiAgICAgICAgc2VhcmNoUGFy\nYW1zRGF0YVxuICAgICAgKX1gO1xuICAgICAgICBsZXQgZ2V0UmVzcG9uc2UgPSBhd2FpdCBodHRw\neC5nZXQodXJsLCB7XG4gICAgICAgICAgZmV0Y2g6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAg\nIGlmICghZ2V0UmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1c\nbiAgICAgICAgbGV0IGRvYyA9IGRvbXV0aWxzLnBhcnNlSFRNTChnZXRSZXNwb25zZS5kYXRhLnJl\nc3BvbnNlVGV4dCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgIGxldCBsaW5rRm9ydW1JbmZvTGlzdCA9\nIEFycmF5LmZyb20oXG4gICAgICAgICAgZG9jLnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZm9ydW1fdGFi\nbGUgc3BhbltiYWx2bmFtZV1cIilcbiAgICAgICAgKS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAg\nICBsZXQgZm9ydW1OYW1lID0gaXRlbS5nZXRBdHRyaWJ1dGUoXCJiYWx2bmFtZVwiKTtcbiAgICAg\nICAgICBsZXQgZm9ydW1JZCA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiYmFsdmlkXCIpO1xuICAgICAg\nICAgIGxldCB0YnMgPSBpdGVtLmdldEF0dHJpYnV0ZShcInRic1wiKTtcbiAgICAgICAgICBpZiAo\nZm9ydW1OYW1lID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4g\nICAgICAgICAgaWYgKGZvcnVtSWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAg\nICAgICAgIH1cbiAgICAgICAgICBpZiAodGJzID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVy\nbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9ydW1OYW1lID0gZ2JrRW5jb2Rlci5kZWNvZGUo\nZm9ydW1OYW1lKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZm9ydW1OYW1lLFxu\nICAgICAgICAgICAgZm9ydW1JZCxcbiAgICAgICAgICAgIHRic1xuICAgICAgICAgIH07XG4gICAg\nICAgIH0pLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPSBudWxsKTtcbiAgICAgICAgcmVzdWx0ID0g\ncmVzdWx0LmNvbmNhdChsaW5rRm9ydW1JbmZvTGlzdCk7XG4gICAgICAgIGxldCAkbmV4dFBhZ2Ug\nPSBBcnJheS5mcm9tKFxuICAgICAgICAgIGRvYy5xdWVyeVNlbGVjdG9yQWxsKFwiI2pfcGFnZWJh\nciAucGFnaW5hdGlvbiBhW2hyZWZdXCIpXG4gICAgICAgICkuZmluZCgoJGFuY2hvcikgPT4ge1xu\nICAgICAgICAgIHJldHVybiAkYW5jaG9yLmlubmVyVGV4dC5pbmNsdWRlcyhcIuS4i+S4gOmhtVwi\nKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICgkbmV4dFBhZ2UgPT0gbnVsbCkge1xuICAgICAg\nICAgIGJyZWFrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBuZXh0UGFnZVVybCA9\nIENvbW1vblV0aWwuZml4VXJsKCRuZXh0UGFnZS5ocmVmKTtcbiAgICAgICAgICBsZXQgbmV4dFBh\nZ2VVcmxPYmogPSBuZXcgVVJMKG5leHRQYWdlVXJsKTtcbiAgICAgICAgICBsZXQgbmV4dFBhZ2VQ\nbiA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobmV4dFBhZ2VVcmxPYmouc2VhcmNoKTtcbiAgICAgICAg\nICBpZiAobmV4dFBhZ2VQbi5oYXMoXCJwblwiKSkge1xuICAgICAgICAgICAgcGFnZSA9IHBhcnNl\nSW50KG5leHRQYWdlUG4uZ2V0KFwicG5cIikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAg\nICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdXRpbHMu\nc2xlZXAoNTAwKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9O1xu\nICBjb25zdCBVSUlucHV0ID0gZnVuY3Rpb24odGV4dCwga2V5LCBkZWZhdWx0VmFsdWUsIGRlc2Ny\naXB0aW9uLCBjaGFuZ2VDYWxsQmFjaywgcGxhY2Vob2xkZXIgPSBcIlwiLCBpc051bWJlcjIsIGlz\nUGFzc3dvcmQpIHtcbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgdGV4dCxcbiAgICAgIHR5cGU6\nIFwiaW5wdXRcIixcbiAgICAgIGlzTnVtYmVyOiBCb29sZWFuKGlzTnVtYmVyMiksXG4gICAgICBp\nc1Bhc3N3b3JkOiBCb29sZWFuKGlzUGFzc3dvcmQpLFxuICAgICAgcHJvcHM6IHt9LFxuICAgICAg\nYXR0cmlidXRlczoge30sXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGdldFZhbHVlKCkge1xu\nICAgICAgICByZXR1cm4gdGhpcy5wcm9wc1tQUk9QU19TVE9SQUdFX0FQSV0uZ2V0KGtleSwgZGVm\nYXVsdFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFjayhldmVudCwgdmFsdWUpIHtcbiAg\nICAgICAgdGhpcy5wcm9wc1tQUk9QU19TVE9SQUdFX0FQSV0uc2V0KGtleSwgdmFsdWUpO1xuICAg\nICAgfSxcbiAgICAgIHBsYWNlaG9sZGVyXG4gICAgfTtcbiAgICBSZWZsZWN0LnNldChyZXN1bHQu\nYXR0cmlidXRlcywgQVRUUklCVVRFX0tFWSwga2V5KTtcbiAgICBSZWZsZWN0LnNldChyZXN1bHQu\nYXR0cmlidXRlcywgQVRUUklCVVRFX0RFRkFVTFRfVkFMVUUsIGRlZmF1bHRWYWx1ZSk7XG4gICAg\nUmVmbGVjdC5zZXQocmVzdWx0LnByb3BzLCBQUk9QU19TVE9SQUdFX0FQSSwge1xuICAgICAgZ2V0\nKGtleTIsIGRlZmF1bHRWYWx1ZTIpIHtcbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC5nZXRWYWx1\nZShrZXkyLCBkZWZhdWx0VmFsdWUyKTtcbiAgICAgIH0sXG4gICAgICBzZXQoa2V5MiwgdmFsdWUp\nIHtcbiAgICAgICAgUG9wc1BhbmVsLnNldFZhbHVlKGtleTIsIHZhbHVlKTtcbiAgICAgIH1cbiAg\nICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBjbGFzcyBSdWxlRWRpdFZpZXcge1xu\nICAgIGNvbnN0cnVjdG9yKG9wdGlvbikge1xuICAgICAgX19wdWJsaWNGaWVsZCh0aGlzLCBcIm9w\ndGlvblwiKTtcbiAgICAgIHRoaXMub3B0aW9uID0gb3B0aW9uO1xuICAgIH1cbiAgICBcLyoqXG4g\nICAgICog5pi+56S66KeG5Zu+XG4gICAgICpcL1xuICAgIHNob3dWaWV3KCkge1xuICAgICAgdmFy\nIF9hMztcbiAgICAgIGxldCAkZGlhbG9nID0gX19wb3BzLmNvbmZpcm0oe1xuICAgICAgICB0aXRs\nZToge1xuICAgICAgICAgIHRleHQ6IHRoaXMub3B0aW9uLnRpdGxlLFxuICAgICAgICAgIHBvc2l0\naW9uOiBcImNlbnRlclwiXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAg\nICB0ZXh0OiAoXG4gICAgICAgICAgICBcLypodG1sKlwvXG4gICAgICAgICAgICBgXG4gICAgICAg\nICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwicnVsZS1mb3JtLWNvbnRhaW5lclwiIG9uc3VibWl0\nPVwicmV0dXJuIGZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJy\ndWxlLWZvcm0tdWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAg\nICAgICAgICAgICAgICAgIDxcL3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5\ncGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgXC8+XG4gICAgICAgICAgICAg\nICAgICAgIDxcL2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICApLFxuICAg\nICAgICAgIGh0bWw6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgYnRuOiB1dGlscy5hc3NpZ24o\nXG4gICAgICAgICAge1xuICAgICAgICAgICAgb2s6IHtcbiAgICAgICAgICAgICAgY2FsbGJhY2so\nKSB7XG4gICAgICAgICAgICAgICAgc3VibWl0U2F2ZU9wdGlvbigpO1xuICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aGlzLm9wdGlvbi5idG4g\nfHwge30sXG4gICAgICAgICAgdHJ1ZVxuICAgICAgICApLFxuICAgICAgICBtYXNrOiB7XG4gICAg\nICAgICAgZW5hYmxlOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHN0eWxlOiAoXG4gICAgICAg\nICAgXC8qY3NzKlwvXG4gICAgICAgICAgYFxuICAgICAgICAgICAgICAgICR7X19wb3BzLmNvbmZp\nZy5jc3NUZXh0LnBhbmVsQ1NTfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC5y\ndWxlLWZvcm0tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIC5ydWxlLWZvcm0tY29udGFpbmVyIGxpe1xuICAgICAgICAg\nICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVt\nczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJl\ndHdlZW47XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDVweCAyMHB4O1xuICAgICAgICAg\nICAgICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIC5wb3BzLXBhbmVsLWl0ZW0tbGVmdC1tYWluLXRleHR7XG4gICAgICAgICAgICAgICAgICAgIG1h\neC13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wb3Bz\nLXBhbmVsLWl0ZW0tcmlnaHQtdGV4dHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0\nOiAzMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAucG9wcy1wYW5lbC1p\ndGVtLXJpZ2h0LXRleHQsXG4gICAgICAgICAgICAgICAgLnBvcHMtcGFuZWwtaXRlbS1yaWdodC1t\nYWluLXRleHR7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xu\nICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAg\nICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAg\nICAgICR7KChfYTMgPSB0aGlzLm9wdGlvbikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5zdHlsZSkg\nPz8gXCJcIn1cbiAgICAgICAgICAgIGBcbiAgICAgICAgKSxcbiAgICAgICAgd2lkdGg6IHdpbmRv\ndy5pbm5lcldpZHRoID4gNTAwID8gXCI1MDBweFwiIDogXCI4OHZ3XCIsXG4gICAgICAgIGhlaWdo\ndDogd2luZG93LmlubmVySGVpZ2h0ID4gNTAwID8gXCI1MDBweFwiIDogXCI4MHZoXCJcbiAgICAg\nIH0pO1xuICAgICAgbGV0ICRmb3JtID0gJGRpYWxvZy4kc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9y\nKFxuICAgICAgICBcIi5ydWxlLWZvcm0tY29udGFpbmVyXCJcbiAgICAgICk7XG4gICAgICAkZGlh\nbG9nLiRzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiaW5wdXRbdHlwZT1zdWJt\naXRdXCJcbiAgICAgICk7XG4gICAgICBsZXQgJHVsaXN0ID0gJGRpYWxvZy4kc2hhZG93Um9vdC5x\ndWVyeVNlbGVjdG9yKFwiLnJ1bGUtZm9ybS11bGlzdFwiKTtcbiAgICAgIGxldCB2aWV3ID0gdGhp\ncy5vcHRpb24uZ2V0Vmlldyh0aGlzLm9wdGlvbi5kYXRhKCkpO1xuICAgICAgJHVsaXN0LmFwcGVu\nZENoaWxkKHZpZXcpO1xuICAgICAgY29uc3Qgc3VibWl0U2F2ZU9wdGlvbiA9ICgpID0+IHtcbiAg\nICAgICAgbGV0IHJlc3VsdCA9IHRoaXMub3B0aW9uLm9uc3VibWl0KCRmb3JtLCB0aGlzLm9wdGlv\nbi5kYXRhKCkpO1xuICAgICAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmV0\ndXJuO1xuICAgICAgICB9XG4gICAgICAgICRkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5v\ncHRpb24uZGlhbG9nQ2xvc2VDYWxsQmFjayh0cnVlKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG4g\nIGNsYXNzIFJ1bGVGaWx0ZXJWaWV3IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb24pIHtcbiAgICAg\nIF9fcHVibGljRmllbGQodGhpcywgXCJvcHRpb25cIik7XG4gICAgICB0aGlzLm9wdGlvbiA9IG9w\ndGlvbjtcbiAgICB9XG4gICAgc2hvd1ZpZXcoKSB7XG4gICAgICBsZXQgJGFsZXJ0ID0gX19wb3Bz\nLmFsZXJ0KHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLm9wdGlvbi50\naXRsZSxcbiAgICAgICAgICBwb3NpdGlvbjogXCJjZW50ZXJcIlxuICAgICAgICB9LFxuICAgICAg\nICBjb250ZW50OiB7XG4gICAgICAgICAgdGV4dDogKFxuICAgICAgICAgICAgXC8qaHRtbCpcL1xu\nICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY29udGFp\nbmVyXCI+PFwvZGl2PlxuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICApXG4gICAgICAgIH0s\nXG4gICAgICAgIGJ0bjoge1xuICAgICAgICAgIG9rOiB7XG4gICAgICAgICAgICB0ZXh0OiBcIuWF\ns+mXrVwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWZhdWx0XCJcbiAgICAgICAgICB9XG4gICAg\nICAgIH0sXG4gICAgICAgIG1hc2s6IHtcbiAgICAgICAgICBlbmFibGU6IHRydWVcbiAgICAgICAg\nfSxcbiAgICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNTAwID8gXCIzNTBweFwiIDog\nXCI4MHZ3XCIsXG4gICAgICAgIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0ID4gNTAwID8gXCIz\nMDBweFwiIDogXCI3MHZoXCIsXG4gICAgICAgIHN0eWxlOiAoXG4gICAgICAgICAgXC8qY3NzKlwv\nXG4gICAgICAgICAgYFxuICAgICAgICAgICAgLmZpbHRlci1jb250YWluZXJ7XG4gICAgICAgICAg\nICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAg\nICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6\nIDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuZmlsdGVyLWNvbnRhaW5lciBidXR0\nb257XG4gICAgICAgICAgICAgICAgdGV4dC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgICAgIHBh\nZGRpbmc6IDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAg\nICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGBcbiAgICAg\nICAgKVxuICAgICAgfSk7XG4gICAgICBsZXQgJGZpbHRlckNvbnRhaW5lciA9ICRhbGVydC4kc2hh\nZG93Um9vdC5xdWVyeVNlbGVjdG9yKFwiLmZpbHRlci1jb250YWluZXJcIik7XG4gICAgICBsZXQg\nJGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgdGhp\ncy5vcHRpb24uZmlsdGVyT3B0aW9uLmZvckVhY2goKGZpbHRlck9wdGlvbikgPT4ge1xuICAgICAg\nICBsZXQgJGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJidXR0b25cIik7XG4gICAg\nICAgICRidXR0b24uaW5uZXJUZXh0ID0gZmlsdGVyT3B0aW9uLm5hbWU7XG4gICAgICAgIGxldCBl\neGVjRmlsdGVyQW5kQ2xvc2VEaWFsb2cgPSAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcHRpb24u\nZ2V0QWxsUnVsZUluZm8oKS5mb3JFYWNoKChydWxlSW5mbykgPT4ge1xuICAgICAgICAgICAgaWYg\nKCFmaWx0ZXJPcHRpb24uZmlsdGVyQ2FsbEJhY2socnVsZUluZm8uZGF0YSkpIHtcbiAgICAgICAg\nICAgICAgZG9tdXRpbHMuaGlkZShydWxlSW5mby4kZWwsIGZhbHNlKTtcbiAgICAgICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgICAgIGRvbXV0aWxzLnNob3cocnVsZUluZm8uJGVsLCBmYWxzZSk7\nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlz\nLm9wdGlvbi5leGVjRmlsdGVyQ2FsbEJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAg\nICAgdGhpcy5vcHRpb24uZXhlY0ZpbHRlckNhbGxCYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAg\nICAgICRhbGVydC5jbG9zZSgpO1xuICAgICAgICB9O1xuICAgICAgICBkb211dGlscy5vbigkYnV0\ndG9uLCBcImNsaWNrXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgIHV0aWxzLnByZXZlbnRFdmVu\ndChldmVudCk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBmaWx0ZXJPcHRpb24uY2FsbGJhY2sgPT09\nIFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGZpbHRlck9wdGlvbi5j\nYWxsYmFjayhldmVudCwgZXhlY0ZpbHRlckFuZENsb3NlRGlhbG9nKTtcbiAgICAgICAgICAgIGlm\nICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICB9XG4gICAgICAgICAgZXhlY0ZpbHRlckFuZENsb3NlRGlhbG9nKCk7XG4gICAgICAgIH0p\nO1xuICAgICAgICAkZnJhZ21lbnQuYXBwZW5kQ2hpbGQoJGJ1dHRvbik7XG4gICAgICB9KTtcbiAg\nICAgICRmaWx0ZXJDb250YWluZXIuYXBwZW5kQ2hpbGQoJGZyYWdtZW50KTtcbiAgICB9XG4gIH1c\nbiAgY2xhc3MgUnVsZVZpZXcge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbikge1xuICAgICAgX19w\ndWJsaWNGaWVsZCh0aGlzLCBcIm9wdGlvblwiKTtcbiAgICAgIHRoaXMub3B0aW9uID0gb3B0aW9u\nO1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog5pi+56S66KeG5Zu+XG4gICAgICpcL1xuICAgIHNo\nb3dWaWV3KCkge1xuICAgICAgdmFyIF9hMywgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9p\nO1xuICAgICAgbGV0ICRwb3BzQ29uZmlybSA9IF9fcG9wcy5jb25maXJtKHtcbiAgICAgICAgdGl0\nbGU6IHtcbiAgICAgICAgICB0ZXh0OiB0aGlzLm9wdGlvbi50aXRsZSxcbiAgICAgICAgICBwb3Np\ndGlvbjogXCJjZW50ZXJcIlxuICAgICAgICB9LFxuICAgICAgICBjb250ZW50OiB7XG4gICAgICAg\nICAgdGV4dDogKFxuICAgICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAgICAgICAgYFxuICAgICAg\nICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZS12aWV3LWNvbnRhaW5lclwiPlxuICAgICAg\nICAgICAgICAgICAgICA8XC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIGBcbiAgICAgICAgICAp\nLFxuICAgICAgICAgIGh0bWw6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgYnRuOiB7XG4gICAg\nICAgICAgbWVyZ2U6IHRydWUsXG4gICAgICAgICAgcmV2ZXJzZTogZmFsc2UsXG4gICAgICAgICAg\ncG9zaXRpb246IFwic3BhY2UtYmV0d2VlblwiLFxuICAgICAgICAgIG9rOiB7XG4gICAgICAgICAg\nICBlbmFibGU6ICgoX2MgPSAoX2IgPSAoX2EzID0gdGhpcy5vcHRpb24pID09IG51bGwgPyB2b2lk\nIDAgOiBfYTMuYm90dG9tQ29udHJvbHMpID09IG51bGwgPyB2b2lkIDAgOiBfYi5hZGQpID09IG51\nbGwgPyB2b2lkIDAgOiBfYy5lbmFibGUpIHx8IHRydWUsXG4gICAgICAgICAgICB0eXBlOiBcInBy\naW1hcnlcIixcbiAgICAgICAgICAgIHRleHQ6IFwi5re75YqgXCIsXG4gICAgICAgICAgICBjYWxs\nYmFjazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0VkaXRWaWV3KFxuICAg\nICAgICAgICAgICAgICRwb3BzQ29uZmlybS4kc2hhZG93Um9vdCxcbiAgICAgICAgICAgICAgICBm\nYWxzZSxcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbi5nZXRBZGREYXRhKClcbiAgICAgICAg\nICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsb3NlOiB7\nXG4gICAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAgICAgICBjYWxsYmFjayhldmVudCkg\ne1xuICAgICAgICAgICAgICAkcG9wc0NvbmZpcm0uY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICB9LFxuICAgICAgICAgIGNhbmNlbDoge1xuICAgICAgICAgICAgZW5hYmxlOiAoKF9m\nID0gKF9lID0gKF9kID0gdGhpcy5vcHRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfZC5ib3R0b21D\nb250cm9scykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9lLmZpbHRlcikgPT0gbnVsbCA\/IHZvaWQgMCA6\nIF9mLmVuYWJsZSkgfHwgZmFsc2UsXG4gICAgICAgICAgICB0eXBlOiBcImRlZmF1bHRcIixcbiAg\nICAgICAgICAgIHRleHQ6IFwi6L+H5rukXCIsXG4gICAgICAgICAgICBjYWxsYmFjazogKGRldGFp\nbHMsIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHZhciBfYTQsIF9iMiwgX2MyLCBfZDIsIF9l\nMiwgX2YyLCBfZzI7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgKChfYzIgPSAoX2IyID0gKF9h\nNCA9IHRoaXMub3B0aW9uKSA9PSBudWxsID8gdm9pZCAwIDogX2E0LmJvdHRvbUNvbnRyb2xzKSA9\nPSBudWxsID8gdm9pZCAwIDogX2IyLmZpbHRlcikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jMi5jYWxs\nYmFjaykgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uLmJv\ndHRvbUNvbnRyb2xzLmZpbHRlci5jYWxsYmFjaygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgIGxldCBnZXRBbGxSdWxlRWxlbWVudCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBy\nZXR1cm4gQXJyYXkuZnJvbShcbiAgICAgICAgICAgICAgICAgICRwb3BzQ29uZmlybS4kc2hhZG93\nUm9vdC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgICAgICBcIi5ydWxlLXZpZXct\nY29udGFpbmVyIC5ydWxlLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAg\nICAgICk7XG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGxldCAkYnV0dG9uID0gZXZl\nbnQudGFyZ2V0LmNsb3Nlc3QoXCIucG9wcy1jb25maXJtLWJ0blwiKS5xdWVyeVNlbGVjdG9yKFwi\nLnBvcHMtY29uZmlybS1idG4tY2FuY2VsIHNwYW5cIik7XG4gICAgICAgICAgICAgIGlmIChkb211\ndGlscy50ZXh0KCRidXR0b24pLmluY2x1ZGVzKFwi5Y+W5raIXCIpKSB7XG4gICAgICAgICAgICAg\nICAgZ2V0QWxsUnVsZUVsZW1lbnQoKS5mb3JFYWNoKCgkZWwpID0+IHtcbiAgICAgICAgICAgICAg\nICAgIGRvbXV0aWxzLnNob3coJGVsLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAg\nICAgICAgICAgICAgZG9tdXRpbHMudGV4dCgkYnV0dG9uLCBcIui\/h+a7pFwiKTtcbiAgICAgICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgcnVsZUZpbHRlclZpZXcgPSBuZXcg\nUnVsZUZpbHRlclZpZXcoe1xuICAgICAgICAgICAgICAgICAgdGl0bGU6ICgoX2UyID0gKF9kMiA9\nIHRoaXMub3B0aW9uLmJvdHRvbUNvbnRyb2xzKSA9PSBudWxsID8gdm9pZCAwIDogX2QyLmZpbHRl\ncikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9lMi50aXRsZSkgPz8gXCLov4fmu6Top4TliJlcIixcbiAg\nICAgICAgICAgICAgICAgIGZpbHRlck9wdGlvbjogKChfZzIgPSAoX2YyID0gdGhpcy5vcHRpb24u\nYm90dG9tQ29udHJvbHMpID09IG51bGwgPyB2b2lkIDAgOiBfZjIuZmlsdGVyKSA9PSBudWxsID8g\ndm9pZCAwIDogX2cyLm9wdGlvbikgfHwgW10sXG4gICAgICAgICAgICAgICAgICBleGVjRmlsdGVy\nQ2FsbEJhY2soKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvbXV0aWxzLnRleHQoJGJ1dHRvbiwg\nXCLlj5bmtojov4fmu6RcIik7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAg\nICAgZ2V0QWxsUnVsZUluZm86ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdl\ndEFsbFJ1bGVFbGVtZW50KCkubWFwKCgkZWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBy\nZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogdGhpcy5wYXJzZVJ1bGVJdGVt\nRWxlbWVudCgkZWwpLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxcbiAgICAgICAg\nICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBydWxlRmlsdGVyVmll\ndy5zaG93VmlldygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nfSxcbiAgICAgICAgICBvdGhlcjoge1xuICAgICAgICAgICAgZW5hYmxlOiAoKF9pID0gKF9oID0g\nKF9nID0gdGhpcy5vcHRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfZy5ib3R0b21Db250cm9scykg\nPT0gbnVsbCA\/IHZvaWQgMCA6IF9oLmNsZWFyKSA9PSBudWxsID8gdm9pZCAwIDogX2kuZW5hYmxl\nKSB8fCB0cnVlLFxuICAgICAgICAgICAgdHlwZTogXCJ4aWFvbWktcHJpbWFyeVwiLFxuICAgICAg\nICAgICAgdGV4dDogYOa4heepuuaJgOaciSgke3RoaXMub3B0aW9uLmRhdGEoKS5sZW5ndGh9KWAs\nXG4gICAgICAgICAgICBjYWxsYmFjazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGxldCAk\nYXNrRGlhbG9nID0gX19wb3BzLmNvbmZpcm0oe1xuICAgICAgICAgICAgICAgIHRpdGxlOiB7XG4g\nICAgICAgICAgICAgICAgICB0ZXh0OiBcIuaPkOekulwiLFxuICAgICAgICAgICAgICAgICAgcG9z\naXRpb246IFwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNv\nbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICAgIHRleHQ6IFwi56Gu5a6a5riF56m65omA5pyJ55qE\n5pWw5o2u77yfXCIsXG4gICAgICAgICAgICAgICAgICBodG1sOiBmYWxzZVxuICAgICAgICAgICAg\nICAgIH0sXG4gICAgICAgICAgICAgICAgYnRuOiB7XG4gICAgICAgICAgICAgICAgICBvazoge1xu\nICAgICAgICAgICAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNh\nbGxiYWNrOiAocG9wc0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIF9hNCwg\nX2IyLCBfYzI7XG4gICAgICAgICAgICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLmuIXnqbrmiYDm\nnIlcIik7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiAoKF9jMiA9IChfYjIgPSAo\nX2E0ID0gdGhpcy5vcHRpb24pID09IG51bGwgPyB2b2lkIDAgOiBfYTQuYm90dG9tQ29udHJvbHMp\nID09IG51bGwgPyB2b2lkIDAgOiBfYjIuY2xlYXIpID09IG51bGwgPyB2b2lkIDAgOiBfYzIuY2Fs\nbGJhY2spID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu\nb3B0aW9uLmJvdHRvbUNvbnRyb2xzLmNsZWFyLmNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbi5kYXRhKCkubGVu\nZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBRbXNnLmVycm9yKFwi5riF55CG5aSx6LSl\nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAg\nICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBRbXNnLnN1Y2Nlc3MoXCLmuIXn\nkIbmiJDlip9cIik7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAg\nICAgIHRoaXMudXBkYXRlRGVsZXRlQWxsQnRuVGV4dCgkcG9wc0NvbmZpcm0uJHNoYWRvd1Jvb3Qp\nO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJDb250ZW50KCRwb3BzQ29uZmlybS4k\nc2hhZG93Um9vdCk7XG4gICAgICAgICAgICAgICAgICAgICAgJGFza0RpYWxvZy5jbG9zZSgpO1xu\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAg\nICAgICAgY2FuY2VsOiB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IFwi5Y+W5raIXCIsXG4g\nICAgICAgICAgICAgICAgICAgIGVuYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbWFzazogeyBlbmFibGU6IHRydWUgfSxc\nbiAgICAgICAgICAgICAgICB3aWR0aDogXCIzMDBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdo\ndDogXCIyMDBweFwiXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAg\nIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWFzazoge1xuICAgICAgICAgIGVuYWJsZTogdHJ1ZVxu\nICAgICAgICB9LFxuICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGggPiA1MDAgPyBcIjUw\nMHB4XCIgOiBcIjg4dndcIixcbiAgICAgICAgaGVpZ2h0OiB3aW5kb3cuaW5uZXJIZWlnaHQgPiA1\nMDAgPyBcIjUwMHB4XCIgOiBcIjgwdmhcIixcbiAgICAgICAgc3R5bGU6IChcbiAgICAgICAgICBc\nLypjc3MqXC9cbiAgICAgICAgICBgXG4gICAgICAgICAgICAke19fcG9wcy5jb25maWcuY3NzVGV4\ndC5wYW5lbENTU31cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLnJ1bGUtaXRlbXtcbiAgICAg\nICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBj\nZW50ZXI7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAg\nICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDRweDtc\nbiAgICAgICAgICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5y\ndWxlLW5hbWV7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICB3aGl0\nZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz\nO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAg\nICAgICAgICAucnVsZS1jb250cm9sc3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xu\nICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4\ndC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtc\nbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIGdh\ncDogOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBweCA0cHg7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgICAucnVsZS1jb250cm9scy1lbmFibGV7XG4gICAgICAgICAgICAgICAgXG4g\nICAgICAgICAgICB9XG4gICAgICAgICAgICAucnVsZS1jb250cm9scy1lZGl0e1xuICAgICAgICAg\nICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnJ1bGUtY29udHJvbHMtZGVsZXRl\ne1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnJ1bGUtY29u\ndHJvbHMtZWRpdCxcbiAgICAgICAgICAgIC5ydWxlLWNvbnRyb2xzLWRlbGV0ZXtcbiAgICAgICAg\nICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAg\nICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nYFxuICAgICAgICApXG4gICAgICB9KTtcbiAgICAgIGxldCBhbGxEYXRhID0gdGhpcy5vcHRpb24u\nZGF0YSgpO1xuICAgICAgYWxsRGF0YS5mb3JFYWNoKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMu\nYXBwZW5kUnVsZUl0ZW1FbGVtZW50KCRwb3BzQ29uZmlybS4kc2hhZG93Um9vdCwgZGF0YSk7XG4g\nICAgICB9KTtcbiAgICB9XG4gICAgXC8qKlxuICAgICAqIOino+aekOW8ueeql+WGheeahOWQhOS4\nquWFg+e0oFxuICAgICAqXC9cbiAgICBwYXJzZVZpZXdFbGVtZW50KCRzaGFkb3dSb290KSB7XG4g\nICAgICBsZXQgJGNvbnRhaW5lciA9ICRzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAg\nIFwiLnJ1bGUtdmlldy1jb250YWluZXJcIlxuICAgICAgKTtcbiAgICAgIGxldCAkZGVsZXRlQnRu\nID0gJHNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIucG9wcy1jb25maXJtLWJ0\nbiBidXR0b24ucG9wcy1jb25maXJtLWJ0bi1vdGhlclwiXG4gICAgICApO1xuICAgICAgcmV0dXJu\nIHtcbiAgICAgICAgXC8qKiDlrrnlmaggKlwvXG4gICAgICAgICRjb250YWluZXIsXG4gICAgICAg\nIFwvKiog5bem5LiL6KeS55qE5riF56m65oyJ6ZKuICpcL1xuICAgICAgICAkZGVsZXRlQnRuXG4g\nICAgICB9O1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog6Kej5p6Q5q+P5LiA6aG555qE5YWD57Sg\nXG4gICAgICpcL1xuICAgIHBhcnNlUnVsZUl0ZW1FbGVtZW50KCRydWxlRWxlbWVudCkge1xuICAg\nICAgbGV0ICRlbmFibGUgPSAkcnVsZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIu\ncnVsZS1jb250cm9scy1lbmFibGVcIlxuICAgICAgKTtcbiAgICAgIGxldCAkZW5hYmxlU3dpdGNo\nID0gJGVuYWJsZS5xdWVyeVNlbGVjdG9yKFwiLnBvcHMtcGFuZWwtc3dpdGNoXCIpO1xuICAgICAg\nbGV0ICRlbmFibGVTd2l0Y2hJbnB1dCA9ICRlbmFibGUucXVlcnlTZWxlY3RvcihcbiAgICAgICAg\nXCIucG9wcy1wYW5lbC1zd2l0Y2hfX2lucHV0XCJcbiAgICAgICk7XG4gICAgICBsZXQgJGVuYWJs\nZVN3aXRjaENvcmUgPSAkZW5hYmxlLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLnBvcHMtcGFu\nZWwtc3dpdGNoX19jb3JlXCJcbiAgICAgICk7XG4gICAgICBsZXQgJGVkaXQgPSAkcnVsZUVsZW1l\nbnQucXVlcnlTZWxlY3RvcihcIi5ydWxlLWNvbnRyb2xzLWVkaXRcIik7XG4gICAgICBsZXQgJGRl\nbGV0ZSA9ICRydWxlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBcIi5ydWxlLWNvbnRy\nb2xzLWRlbGV0ZVwiXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgXC8qKiDlkK\/n\nlKjlvIDlhbMgKlwvXG4gICAgICAgICRlbmFibGUsXG4gICAgICAgIFwvKiog5ZCv55So5byA5YWz\n55qEY29udGFpbmVyICpcL1xuICAgICAgICAkZW5hYmxlU3dpdGNoLFxuICAgICAgICBcLyoqIOWQ\nr+eUqOW8gOWFs+eahGlucHV0ICpcL1xuICAgICAgICAkZW5hYmxlU3dpdGNoSW5wdXQsXG4gICAg\nICAgIFwvKiog5ZCv55So5byA5YWz55qEY29yZSAqXC9cbiAgICAgICAgJGVuYWJsZVN3aXRjaENv\ncmUsXG4gICAgICAgIFwvKiog57yW6L6R5oyJ6ZKuICpcL1xuICAgICAgICAkZWRpdCxcbiAgICAg\nICAgXC8qKiDliKDpmaTmjInpkq4gKlwvXG4gICAgICAgICRkZWxldGUsXG4gICAgICAgIFwvKiog\n5a2Y5YKo5Zyo5YWD57Sg5LiK55qE5pWw5o2uICpcL1xuICAgICAgICBkYXRhOiBSZWZsZWN0Lmdl\ndCgkcnVsZUVsZW1lbnQsIFwiZGF0YS1ydWxlXCIpXG4gICAgICB9O1xuICAgIH1cbiAgICBcLyoq\nXG4gICAgICog5Yib5bu65LiA5p2h6KeE5YiZ5YWD57SgXG4gICAgICpcL1xuICAgIGNyZWF0ZVJ1\nbGVJdGVtRWxlbWVudChkYXRhLCAkc2hhZG93Um9vdCkge1xuICAgICAgbGV0IG5hbWUgPSB0aGlz\nLm9wdGlvbi5nZXREYXRhSXRlbU5hbWUoZGF0YSk7XG4gICAgICBsZXQgJHJ1bGVJdGVtID0gZG9t\ndXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJydWxl\nLWl0ZW1cIixcbiAgICAgICAgaW5uZXJIVE1MOiAoXG4gICAgICAgICAgXC8qaHRtbCpcL1xuICAg\nICAgICAgIGBcblx0XHRcdDxkaXYgY2xhc3M9XCJydWxlLW5hbWVcIj4ke25hbWV9PFwvZGl2Plxu\nXHRcdFx0PGRpdiBjbGFzcz1cInJ1bGUtY29udHJvbHNcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1c\nInJ1bGUtY29udHJvbHMtZW5hYmxlXCI+XG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInBvcHMtcGFu\nZWwtc3dpdGNoXCI+XG5cdFx0XHRcdFx0XHQ8aW5wdXQgY2xhc3M9XCJwb3BzLXBhbmVsLXN3aXRj\naF9faW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIj5cblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwi\ncG9wcy1wYW5lbC1zd2l0Y2hfX2NvcmVcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInBv\ncHMtcGFuZWwtc3dpdGNoX19hY3Rpb25cIj5cblx0XHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0\nXHRcdFx0PFwvc3Bhbj5cblx0XHRcdFx0XHQ8XC9kaXY+XG5cdFx0XHRcdDxcL2Rpdj5cblx0XHRc\ndFx0PGRpdiBjbGFzcz1cInJ1bGUtY29udHJvbHMtZWRpdFwiPlxuXHRcdFx0XHRcdCR7X19wb3Bz\nLmNvbmZpZy5pY29uU1ZHLmVkaXR9XG5cdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFz\ncz1cInJ1bGUtY29udHJvbHMtZGVsZXRlXCI+XG5cdFx0XHRcdFx0JHtfX3BvcHMuY29uZmlnLmlj\nb25TVkcuZGVsZXRlfVxuXHRcdFx0XHQ8XC9kaXY+XG5cdFx0XHQ8XC9kaXY+XG5cdFx0XHRgXG4g\nICAgICAgIClcbiAgICAgIH0pO1xuICAgICAgUmVmbGVjdC5zZXQoJHJ1bGVJdGVtLCBcImRhdGEt\ncnVsZVwiLCBkYXRhKTtcbiAgICAgIGxldCBzd2l0Y2hDaGVja2VkQ2xhc3NOYW1lID0gXCJwb3Bz\nLXBhbmVsLXN3aXRjaC1pcy1jaGVja2VkXCI7XG4gICAgICBjb25zdCB7XG4gICAgICAgICRlbmFi\nbGUsXG4gICAgICAgICRlbmFibGVTd2l0Y2gsXG4gICAgICAgICRlbmFibGVTd2l0Y2hDb3JlLFxu\nICAgICAgICAkZW5hYmxlU3dpdGNoSW5wdXQsXG4gICAgICAgICRkZWxldGUsXG4gICAgICAgICRl\nZGl0XG4gICAgICB9ID0gdGhpcy5wYXJzZVJ1bGVJdGVtRWxlbWVudCgkcnVsZUl0ZW0pO1xuICAg\nICAgaWYgKHRoaXMub3B0aW9uLml0ZW1Db250cm9scy5lbmFibGUuZW5hYmxlKSB7XG4gICAgICAg\nIGRvbXV0aWxzLm9uKCRlbmFibGVTd2l0Y2hDb3JlLCBcImNsaWNrXCIsIChldmVudCkgPT4ge1xu\nICAgICAgICAgIGxldCBpc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoJGVuYWJsZVN3\naXRjaC5jbGFzc0xpc3QuY29udGFpbnMoc3dpdGNoQ2hlY2tlZENsYXNzTmFtZSkpIHtcbiAgICAg\nICAgICAgICRlbmFibGVTd2l0Y2guY2xhc3NMaXN0LnJlbW92ZShzd2l0Y2hDaGVja2VkQ2xhc3NO\nYW1lKTtcbiAgICAgICAgICAgIGlzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7\nXG4gICAgICAgICAgICAkZW5hYmxlU3dpdGNoLmNsYXNzTGlzdC5hZGQoc3dpdGNoQ2hlY2tlZENs\nYXNzTmFtZSk7XG4gICAgICAgICAgICBpc0NoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAg\nICAgICAgICAkZW5hYmxlU3dpdGNoSW5wdXQuY2hlY2tlZCA9IGlzQ2hlY2tlZDtcbiAgICAgICAg\nICB0aGlzLm9wdGlvbi5pdGVtQ29udHJvbHMuZW5hYmxlLmNhbGxiYWNrKGRhdGEsIGlzQ2hlY2tl\nZCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5vcHRpb24uaXRlbUNvbnRyb2xzLmVu\nYWJsZS5nZXRFbmFibGUoZGF0YSkpIHtcbiAgICAgICAgICAkZW5hYmxlU3dpdGNoLmNsYXNzTGlz\ndC5hZGQoc3dpdGNoQ2hlY2tlZENsYXNzTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7\nXG4gICAgICAgICRlbmFibGUucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5vcHRp\nb24uaXRlbUNvbnRyb2xzLmVkaXQuZW5hYmxlKSB7XG4gICAgICAgIGRvbXV0aWxzLm9uKCRlZGl0\nLCBcImNsaWNrXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChl\ndmVudCk7XG4gICAgICAgICAgdGhpcy5zaG93RWRpdFZpZXcoJHNoYWRvd1Jvb3QsIHRydWUsIGRh\ndGEsICRydWxlSXRlbSwgKG5ld0RhdGEpID0+IHtcbiAgICAgICAgICAgIGRhdGEgPSBudWxsO1xu\nICAgICAgICAgICAgZGF0YSA9IG5ld0RhdGE7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xu\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgJGVkaXQucmVtb3ZlKCk7XG4gICAgICB9XG4gICAgICBp\nZiAodGhpcy5vcHRpb24uaXRlbUNvbnRyb2xzLmRlbGV0ZS5lbmFibGUpIHtcbiAgICAgICAgZG9t\ndXRpbHMub24oJGRlbGV0ZSwgXCJjbGlja1wiLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICB1dGls\ncy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAgIGxldCAkYXNrRGlhbG9nID0gX19wb3Bz\nLmNvbmZpcm0oe1xuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgdGV4dDogXCLm\nj5DnpLpcIixcbiAgICAgICAgICAgICAgcG9zaXRpb246IFwiY2VudGVyXCJcbiAgICAgICAgICAg\nIH0sXG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgIHRleHQ6IFwi56Gu5a6a\n5Yig6Zmk6K+l5p2h5pWw5o2u77yfXCIsXG4gICAgICAgICAgICAgIGh0bWw6IGZhbHNlXG4gICAg\nICAgICAgICB9LFxuICAgICAgICAgICAgYnRuOiB7XG4gICAgICAgICAgICAgIG9rOiB7XG4gICAg\nICAgICAgICAgICAgZW5hYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAocG9w\nc0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBsb2cuc3VjY2VzcyhcIuWIoOmZpOaVsOaN\nrlwiKTtcbiAgICAgICAgICAgICAgICAgIGxldCBmbGFnID0gdGhpcy5vcHRpb24uaXRlbUNvbnRy\nb2xzLmRlbGV0ZS5kZWxldGVDYWxsQmFjayhkYXRhKTtcbiAgICAgICAgICAgICAgICAgIGlmIChm\nbGFnKSB7XG4gICAgICAgICAgICAgICAgICAgIFFtc2cuc3VjY2VzcyhcIuaIkOWKn+WIoOmZpOiv\npeaVsOaNrlwiKTtcbiAgICAgICAgICAgICAgICAgICAgJHJ1bGVJdGVtLnJlbW92ZSgpO1xuICAg\nICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZURlbGV0ZUFsbEJ0blRleHQoJHNoYWRvd1Jvb3Qp\nO1xuICAgICAgICAgICAgICAgICAgICAkYXNrRGlhbG9nLmNsb3NlKCk7XG4gICAgICAgICAgICAg\nICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBRbXNnLmVycm9yKFwi5Yig6Zmk6K+l\n5pWw5o2u5aSx6LSlXCIpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY2FuY2VsOiB7XG4gICAgICAgICAgICAg\nICAgdGV4dDogXCLlj5bmtohcIixcbiAgICAgICAgICAgICAgICBlbmFibGU6IHRydWVcbiAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1hc2s6IHtcbiAgICAgICAg\nICAgICAgZW5hYmxlOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2lkdGg6IFwi\nMzAwcHhcIixcbiAgICAgICAgICAgIGhlaWdodDogXCIyMDBweFwiXG4gICAgICAgICAgfSk7XG4g\nICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJGRlbGV0ZS5yZW1vdmUoKTtcbiAg\nICAgIH1cbiAgICAgIHJldHVybiAkcnVsZUl0ZW07XG4gICAgfVxuICAgIFwvKipcbiAgICAgKiDm\nt7vliqDkuIDkuKrop4TliJnlhYPntKBcbiAgICAgKlwvXG4gICAgYXBwZW5kUnVsZUl0ZW1FbGVt\nZW50KCRzaGFkb3dSb290LCBkYXRhKSB7XG4gICAgICBjb25zdCB7ICRjb250YWluZXIgfSA9IHRo\naXMucGFyc2VWaWV3RWxlbWVudCgkc2hhZG93Um9vdCk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJh\neShkYXRhKSkge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5sZW5n\ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBpdGVtID0gZGF0YVtpbmRleF07XG4gICAg\nICAgICAgJGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVJ1bGVJdGVtRWxlbWVudChp\ndGVtLCAkc2hhZG93Um9vdCkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAk\nY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlUnVsZUl0ZW1FbGVtZW50KGRhdGEsICRz\naGFkb3dSb290KSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZURlbGV0ZUFsbEJ0blRleHQo\nJHNoYWRvd1Jvb3QpO1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog5pu05paw5by556qX5YaF5a65\n55qE5YWD57SgXG4gICAgICpcL1xuICAgIHVwZGF0ZVJ1bGVDb250YWllbnJFbGVtZW50KCRzaGFk\nb3dSb290KSB7XG4gICAgICB0aGlzLmNsZWFyQ29udGVudCgkc2hhZG93Um9vdCk7XG4gICAgICB0\naGlzLnBhcnNlVmlld0VsZW1lbnQoJHNoYWRvd1Jvb3QpO1xuICAgICAgbGV0IGRhdGEgPSB0aGlz\nLm9wdGlvbi5kYXRhKCk7XG4gICAgICB0aGlzLmFwcGVuZFJ1bGVJdGVtRWxlbWVudCgkc2hhZG93\nUm9vdCwgZGF0YSk7XG4gICAgICB0aGlzLnVwZGF0ZURlbGV0ZUFsbEJ0blRleHQoJHNoYWRvd1Jv\nb3QpO1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog5pu05paw6KeE5YiZ5YWD57SgXG4gICAgICpc\nL1xuICAgIHVwZGF0ZVJ1bGVJdGVtRWxlbWVudChkYXRhLCAkb2xkUnVsZUl0ZW0sICRzaGFkb3dS\nb290KSB7XG4gICAgICBsZXQgJG5ld1J1bGVJdGVtID0gdGhpcy5jcmVhdGVSdWxlSXRlbUVsZW1l\nbnQoZGF0YSwgJHNoYWRvd1Jvb3QpO1xuICAgICAgJG9sZFJ1bGVJdGVtLmFmdGVyKCRuZXdSdWxl\nSXRlbSk7XG4gICAgICAkb2xkUnVsZUl0ZW0ucmVtb3ZlKCk7XG4gICAgfVxuICAgIFwvKipcbiAg\nICAgKiDmuIXnqbrlhoXlrrlcbiAgICAgKlwvXG4gICAgY2xlYXJDb250ZW50KCRzaGFkb3dSb290\nKSB7XG4gICAgICBjb25zdCB7ICRjb250YWluZXIgfSA9IHRoaXMucGFyc2VWaWV3RWxlbWVudCgk\nc2hhZG93Um9vdCk7XG4gICAgICBkb211dGlscy5odG1sKCRjb250YWluZXIsIFwiXCIpO1xuICAg\nIH1cbiAgICBcLyoqXG4gICAgICog6K6+572u5Yig6Zmk5oyJ6ZKu55qE5paH5a2XXG4gICAgICpc\nL1xuICAgIHNldERlbGV0ZUJ0blRleHQoJHNoYWRvd1Jvb3QsIHRleHQsIGlzSFRNTCA9IGZhbHNl\nKSB7XG4gICAgICBjb25zdCB7ICRkZWxldGVCdG4gfSA9IHRoaXMucGFyc2VWaWV3RWxlbWVudCgk\nc2hhZG93Um9vdCk7XG4gICAgICBpZiAoaXNIVE1MKSB7XG4gICAgICAgIGRvbXV0aWxzLmh0bWwo\nJGRlbGV0ZUJ0biwgdGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb211dGlscy50ZXh0\nKCRkZWxldGVCdG4sIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgICBcLyoqXG4gICAgICog5pu0\n5paw44CQ5riF56m65omA5pyJ44CR55qE5oyJ6ZKu55qE5paH5a2XXG4gICAgICpcL1xuICAgIHVw\nZGF0ZURlbGV0ZUFsbEJ0blRleHQoJHNoYWRvd1Jvb3QpIHtcbiAgICAgIGxldCBkYXRhID0gdGhp\ncy5vcHRpb24uZGF0YSgpO1xuICAgICAgdGhpcy5zZXREZWxldGVCdG5UZXh0KCRzaGFkb3dSb290\nLCBg5riF56m65omA5pyJKCR7ZGF0YS5sZW5ndGh9KWApO1xuICAgIH1cbiAgICBcLyoqXG4gICAg\nICog5pi+56S657yW6L6R6KeG5Zu+XG4gICAgICogQHBhcmFtIGlzRWRpdCDmmK\/lkKbmmK\/nvJbo\nvpHnirbmgIFcbiAgICAgKlwvXG4gICAgc2hvd0VkaXRWaWV3KCRwYXJlbnRTaGFkb3dSb290LCBp\nc0VkaXQsIGVkaXREYXRhLCAkZWRpdFJ1bGVJdGVtRWxlbWVudCwgdXBkYXRlRGF0YUNhbGxCYWNr\nKSB7XG4gICAgICBsZXQgZGlhbG9nQ2xvc2VDYWxsQmFjayA9IChpc1N1Ym1pdCkgPT4ge1xuICAg\nICAgICBpZiAoaXNTdWJtaXQpIDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYgKCFpc0Vk\naXQpIHtcbiAgICAgICAgICAgIHRoaXMub3B0aW9uLmRlbGV0ZURhdGEoZWRpdERhdGEpO1xuICAg\nICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIHVwZGF0ZURhdGFDYWxsQmFjayA9PT0gXCJm\ndW5jdGlvblwiKSB7XG4gICAgICAgICAgICBsZXQgbmV3RGF0YSA9IHRoaXMub3B0aW9uLmdldERh\ndGEoZWRpdERhdGEpO1xuICAgICAgICAgICAgdXBkYXRlRGF0YUNhbGxCYWNrKG5ld0RhdGEpO1xu\nICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGxldCBlZGl0VmlldyA9IG5l\ndyBSdWxlRWRpdFZpZXcoe1xuICAgICAgICB0aXRsZTogaXNFZGl0ID8gXCLnvJbovpFcIiA6IFwi\n5re75YqgXCIsXG4gICAgICAgIGRhdGE6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gZWRpdERh\ndGE7XG4gICAgICAgIH0sXG4gICAgICAgIGRpYWxvZ0Nsb3NlQ2FsbEJhY2ssXG4gICAgICAgIGdl\ndFZpZXc6IChkYXRhKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uLml0ZW1Db250\ncm9scy5lZGl0LmdldFZpZXcoZGF0YSwgaXNFZGl0KTtcbiAgICAgICAgfSxcbiAgICAgICAgYnRu\nOiB7XG4gICAgICAgICAgb2s6IHtcbiAgICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcbiAgICAgICAg\nICAgIHRleHQ6IGlzRWRpdCA\/IFwi5L+u5pS5XCIgOiBcIua3u+WKoFwiXG4gICAgICAgICAgfSxc\nbiAgICAgICAgICBjYW5jZWw6IHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGRldGFpbHMsIGV2ZW50\nKSB7XG4gICAgICAgICAgICAgIGRldGFpbHMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgZGlhbG9n\nQ2xvc2VDYWxsQmFjayhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAg\nICAgICBjbG9zZToge1xuICAgICAgICAgICAgY2FsbGJhY2soZGV0YWlscywgZXZlbnQpIHtcbiAg\nICAgICAgICAgICAgZGV0YWlscy5jbG9zZSgpO1xuICAgICAgICAgICAgICBkaWFsb2dDbG9zZUNh\nbGxCYWNrKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4g\nICAgICAgIG9uc3VibWl0OiAoJGZvcm0sIGRhdGEpID0+IHtcbiAgICAgICAgICBsZXQgcmVzdWx0\nID0gdGhpcy5vcHRpb24uaXRlbUNvbnRyb2xzLmVkaXQub25zdWJtaXQoXG4gICAgICAgICAgICAk\nZm9ybSxcbiAgICAgICAgICAgIGlzRWRpdCxcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICAp\nO1xuICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgaWYgKGlzRWRp\ndCkge1xuICAgICAgICAgICAgICBRbXNnLnN1Y2Nlc3MoXCLkv67mlLnmiJDlip9cIik7XG4gICAg\nICAgICAgICAgIHRoaXMudXBkYXRlUnVsZUl0ZW1FbGVtZW50KFxuICAgICAgICAgICAgICAgIHJl\nc3VsdC5kYXRhLFxuICAgICAgICAgICAgICAgICRlZGl0UnVsZUl0ZW1FbGVtZW50LFxuICAgICAg\nICAgICAgICAgICRwYXJlbnRTaGFkb3dSb290XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmFwcGVuZFJ1bGVJdGVtRWxlbWVudCgkcGFy\nZW50U2hhZG93Um9vdCwgcmVzdWx0LmRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgICBpZiAoaXNFZGl0KSB7XG4gICAgICAgICAgICAgIFFtc2cuZXJy\nb3IoXCLkv67mlLnlpLHotKVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAg\nICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sXG4gICAgICAgIHN0eWxlOiB0aGlzLm9wdGlv\nbi5pdGVtQ29udHJvbHMuZWRpdC5zdHlsZVxuICAgICAgfSk7XG4gICAgICBlZGl0Vmlldy5zaG93\nVmlldygpO1xuICAgIH1cbiAgfVxuICBjb25zdCBUaWViYVVuaUFwcENvbW1lbnRGaWx0ZXIgPSB7\nXG4gICAgJGtleToge1xuICAgICAgU1RPUkFHRV9LRVk6IFwiYmFpZHUtdGllYmEtdW5pLWFwcC1j\nb21tZW50LWZpbHRlci1ydWxlXCJcbiAgICB9LFxuICAgIGluaXQoKSB7XG4gICAgICB0aGlzLmV4\nZWNGaWx0ZXIoKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmiafooYzov4fmu6RcbiAgICAg\nKlwvXG4gICAgZXhlY0ZpbHRlcigpIHtcbiAgICAgIGxldCBmaWx0ZXJSdWxlID0gdGhpcy5nZXRE\nYXRhKCk7XG4gICAgICBpZiAoIWZpbHRlclJ1bGUubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtc\nbiAgICAgIH1cbiAgICAgIGxvZy5zdWNjZXNzKGDor4Torrrov4fmu6Tlmagt5ZCv5Yqo77yBYCk7\nXG4gICAgICBsZXQgbG9ja0ZuID0gbmV3IHV0aWxzLkxvY2tGdW5jdGlvbigoKSA9PiB7XG4gICAg\nICAgIGxldCAkY29tbWVudEdyb3VwTGlzdCA9IEFycmF5LmZyb20oXG4gICAgICAgICAgZG9jdW1l\nbnQucXVlcnlTZWxlY3RvckFsbChcInVuaS1hcHAgLmNvbW1lbnQtZ3JvdXBcIilcbiAgICAgICAg\nKTtcbiAgICAgICAgJGNvbW1lbnRHcm91cExpc3QuZm9yRWFjaCgoJGNvbW1lbnRHcm91cCkgPT4g\ne1xuICAgICAgICAgIHZhciBfYTMsIF9iO1xuICAgICAgICAgIGxldCB2dWVJbnMgPSBWdWVVdGls\ncy5nZXRWdWUoJGNvbW1lbnRHcm91cCk7XG4gICAgICAgICAgaWYgKCF2dWVJbnMpIHtcbiAgICAg\nICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3Qgc2VjdGlvbkRhdGEg\nPSB2dWVJbnMgPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZUlucy5zZWN0aW9uRGF0YTtcbiAgICAgICAg\nICBpZiAoIUFycmF5LmlzQXJyYXkoc2VjdGlvbkRhdGEpKSB7XG4gICAgICAgICAgICByZXR1cm47\nXG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAobGV0IHNlY3Rpb25EYXRhSW5kZXggPSAwOyBz\nZWN0aW9uRGF0YUluZGV4IDwgc2VjdGlvbkRhdGEubGVuZ3RoOyBzZWN0aW9uRGF0YUluZGV4Kysp\nIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1lbnRJbmZvID0gc2VjdGlvbkRhdGFbc2VjdGlvbkRh\ndGFJbmRleF07XG4gICAgICAgICAgICBjb25zdCBjb21tZW50RGF0YSA9IHtcbiAgICAgICAgICAg\nICAgXC8qKiDnlKjmiLdpZCAqXC9cbiAgICAgICAgICAgICAgYXV0aG9yX2lkOiAoKGNvbW1lbnRJ\nbmZvID09IG51bGwgPyB2b2lkIDAgOiBjb21tZW50SW5mby5hdXRob3JfaWQpIHx8ICgoX2EzID0g\nY29tbWVudEluZm8gPT0gbnVsbCA\/IHZvaWQgMCA6IGNvbW1lbnRJbmZvLmF1dGhvcikgPT0gbnVs\nbCA\/IHZvaWQgMCA6IF9hMy5pZCkpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIFwvKiog55So\n5oi35pi+56S655qE5ZCN5a2XICpcL1xuICAgICAgICAgICAgICBuYW1lU2hvdzogKF9iID0gY29t\nbWVudEluZm8gPT0gbnVsbCA\/IHZvaWQgMCA6IGNvbW1lbnRJbmZvLmF1dGhvcikgPT0gbnVsbCA\/\nIHZvaWQgMCA6IF9iLm5hbWVfc2hvdyxcbiAgICAgICAgICAgICAgXC8qKiDnlKjmiLflj5HluIPn\nmoTlhoXlrrkgKlwvXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCIsXG4gICAgICAgICAgICAg\nIFwvKiog5qW85bGCICpcL1xuICAgICAgICAgICAgICBmbG9vcjogY29tbWVudEluZm8gPT0gbnVs\nbCA\/IHZvaWQgMCA6IGNvbW1lbnRJbmZvLmZsb29yXG4gICAgICAgICAgICB9O1xuICAgICAgICAg\nICAgaWYgKEFycmF5LmlzQXJyYXkoY29tbWVudEluZm8uY29udGVudCkpIHtcbiAgICAgICAgICAg\nICAgY29tbWVudEluZm8uY29udGVudC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAg\nICAgaWYgKGl0ZW0udHlwZSA9PT0gMCAmJiB0eXBlb2YgaXRlbS50ZXh0ID09PSBcInN0cmluZ1wi\nKSB7XG4gICAgICAgICAgICAgICAgICBjb21tZW50RGF0YS5jb250ZW50ICs9IGl0ZW0udGV4dDtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgbGV0IGZpbmRSdWxlID0gZmlsdGVyUnVsZS5maW5kKChydWxlKSA9PiB7XG4gICAg\nICAgICAgICAgIGlmICghcnVsZS5lbmFibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgbGV0IGZsYWcgPSB0cnVlO1xuICAgICAgICAg\nICAgICBpZiAocnVsZS5hdXRob3JfaWQudHJpbSgpICE9PSBcIlwiKSB7XG4gICAgICAgICAgICAg\nICAgZmxhZyA9IGZsYWcgJiYgY29tbWVudERhdGEuYXV0aG9yX2lkID09IHJ1bGUuYXV0aG9yX2lk\nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChydWxlLmF1dGhvcl9uYW1lU2hv\ndy50cmltKCkgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBmbGFnID0gZmxhZyAmJiB0eXBl\nb2YgY29tbWVudERhdGEubmFtZVNob3cgPT09IFwic3RyaW5nXCIgJiYgQm9vbGVhbihcbiAgICAg\nICAgICAgICAgICAgIGNvbW1lbnREYXRhLm5hbWVTaG93Lm1hdGNoKG5ldyBSZWdFeHAocnVsZS5h\ndXRob3JfbmFtZVNob3cpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgaWYgKHJ1bGUuY29udGVudC50cmltKCkgIT09IFwiXCIpIHtcbiAgICAgICAg\nICAgICAgICBmbGFnID0gZmxhZyAmJiBjb21tZW50RGF0YS5jb250ZW50ICE9PSBcIlwiICYmIEJv\nb2xlYW4oY29tbWVudERhdGEuY29udGVudC5tYXRjaChuZXcgUmVnRXhwKHJ1bGUuY29udGVudCkp\nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmxhZztcbiAgICAgICAg\nICAgIH0pO1xuICAgICAgICAgICAgaWYgKGZpbmRSdWxlKSB7XG4gICAgICAgICAgICAgIEFycmF5\nLmZyb20oXG4gICAgICAgICAgICAgICAgJGNvbW1lbnRHcm91cC5xdWVyeVNlbGVjdG9yQWxsKFwi\nLmNvbW1lbnQtaXRlbVwiKVxuICAgICAgICAgICAgICApLmZpbmQoKCRjb21tZW50SXRlbSwgZWxJ\nbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlbEluZGV4ID09PSBzZWN0aW9uRGF0YUlu\nZGV4KSB7XG4gICAgICAgICAgICAgICAgICBpZiAoISRjb21tZW50SXRlbS5oYXNBdHRyaWJ1dGUo\nXCJkYXRhLWhpZGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgJGNvbW1lbnRJdGVtLnNldEF0\ndHJpYnV0ZShcImRhdGEtaGlkZVwiLCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgZG9tdXRp\nbHMuaGlkZSgkY29tbWVudEl0ZW0sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgbG9nLnN1\nY2Nlc3MoYOi\/h+a7pOivhOiuumAsIGZpbmRSdWxlLCBjb21tZW50RGF0YSk7XG4gICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAg\nICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHV0aWxzLm11dGF0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQs\nIHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAg\nICBjaGlsZExpc3Q6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtc\nbiAgICAgICAgICBsb2NrRm4ucnVuKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOaYvuekuuinhuWbvlxuICAgICAqXC9cbiAgICBzaG93VmlldygpIHtc\nbiAgICAgIGxldCBwb3BzUGFuZWxDb250ZW50VXRpbHMgPSBfX3BvcHMuY29uZmlnLnBhbmVsSGFu\nZGxlQ29udGVudFV0aWxzKCk7XG4gICAgICBmdW5jdGlvbiBnZW5lcmF0ZVN0b3JhZ2VBcGkoZGF0\nYSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGdldChrZXksIGRlZmF1bHRWYWx1ZSkg\ne1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFba2V5XSA\/PyBkZWZhdWx0VmFsdWU7XG4gICAgICAg\nICAgfSxcbiAgICAgICAgICBzZXQoa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgZGF0YVtrZXld\nID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgbGV0IHJ1\nbGVWaWV3ID0gbmV3IFJ1bGVWaWV3KHtcbiAgICAgICAgdGl0bGU6IFwi6K+E6K666L+H5ruk5Zmo\nXCIsXG4gICAgICAgIGRhdGE6ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRh\nKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGdldEFkZERhdGE6ICgpID0+IHtcbiAgICAgICAgICBy\nZXR1cm4gdGhpcy5nZXRUZW1wbGF0ZURhdGEoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0RGF0\nYUl0ZW1OYW1lOiAoZGF0YSkgPT4ge1xuICAgICAgICAgIHJldHVybiBkYXRhW1wibmFtZVwiXTtc\nbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlRGF0YTogKGRhdGEpID0+IHtcbiAgICAgICAgICBy\nZXR1cm4gdGhpcy51cGRhdGVEYXRhKGRhdGEpO1xuICAgICAgICB9LFxuICAgICAgICBkZWxldGVE\nYXRhOiAoZGF0YSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZURhdGEoZGF0YSk7\nXG4gICAgICAgIH0sXG4gICAgICAgIGdldERhdGE6IChkYXRhKSA9PiB7XG4gICAgICAgICAgbGV0\nIGFsbERhdGEgPSB0aGlzLmdldERhdGEoKTtcbiAgICAgICAgICBsZXQgZmluZFZhbHVlID0gYWxs\nRGF0YS5maW5kKChpdGVtKSA9PiBpdGVtLnV1aWQgPT09IGRhdGEudXVpZCk7XG4gICAgICAgICAg\ncmV0dXJuIGZpbmRWYWx1ZSA\/PyBkYXRhO1xuICAgICAgICB9LFxuICAgICAgICBpdGVtQ29udHJv\nbHM6IHtcbiAgICAgICAgICBlbmFibGU6IHtcbiAgICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcbiAg\nICAgICAgICAgIGdldEVuYWJsZShkYXRhKSB7XG4gICAgICAgICAgICAgIHJldHVybiBkYXRhLmVu\nYWJsZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYWxsYmFjazogKGRhdGEsIGVuYWJs\nZSkgPT4ge1xuICAgICAgICAgICAgICBkYXRhLmVuYWJsZSA9IGVuYWJsZTtcbiAgICAgICAgICAg\nICAgdGhpcy51cGRhdGVEYXRhKGRhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4g\nICAgICAgICAgZWRpdDoge1xuICAgICAgICAgICAgZW5hYmxlOiB0cnVlLFxuICAgICAgICAgICAg\nZ2V0VmlldzogKGRhdGEsIGlzRWRpdCkgPT4ge1xuICAgICAgICAgICAgICBsZXQgJGZyYWdtZW50\nID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuICAgICAgICAgICAgICBpZiAo\nIWlzRWRpdCkge1xuICAgICAgICAgICAgICAgIGRhdGEgPSB0aGlzLmdldFRlbXBsYXRlRGF0YSgp\nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxldCBlbmFibGVfdGVtcGxhdGUgPSBV\nSVN3aXRjaChcIuWQr+eUqFwiLCBcImVuYWJsZVwiLCB0cnVlKTtcbiAgICAgICAgICAgICAgUmVm\nbGVjdC5zZXQoXG4gICAgICAgICAgICAgICAgZW5hYmxlX3RlbXBsYXRlLnByb3BzLFxuICAgICAg\nICAgICAgICAgIFBST1BTX1NUT1JBR0VfQVBJLFxuICAgICAgICAgICAgICAgIGdlbmVyYXRlU3Rv\ncmFnZUFwaShkYXRhKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBsZXQgJGVuYWJs\nZSA9IHBvcHNQYW5lbENvbnRlbnRVdGlscy5jcmVhdGVTZWN0aW9uQ29udGFpbmVySXRlbV9zd2l0\nY2goXG4gICAgICAgICAgICAgICAgZW5hYmxlX3RlbXBsYXRlXG4gICAgICAgICAgICAgICk7XG4g\nICAgICAgICAgICAgIGxldCBuYW1lX3RlbXBsYXRlID0gVUlJbnB1dChcbiAgICAgICAgICAgICAg\nICBcIuinhOWImeWQjeensFwiLFxuICAgICAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAg\nICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICB2b2lk\nIDAsXG4gICAgICAgICAgICAgICAgXCLlv4XloatcIlxuICAgICAgICAgICAgICApO1xuICAgICAg\nICAgICAgICBSZWZsZWN0LnNldChcbiAgICAgICAgICAgICAgICBuYW1lX3RlbXBsYXRlLnByb3Bz\nLFxuICAgICAgICAgICAgICAgIFBST1BTX1NUT1JBR0VfQVBJLFxuICAgICAgICAgICAgICAgIGdl\nbmVyYXRlU3RvcmFnZUFwaShkYXRhKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBs\nZXQgJG5hbWUgPSBwb3BzUGFuZWxDb250ZW50VXRpbHMuY3JlYXRlU2VjdGlvbkNvbnRhaW5lckl0\nZW1faW5wdXQoXG4gICAgICAgICAgICAgICAgbmFtZV90ZW1wbGF0ZVxuICAgICAgICAgICAgICAp\nO1xuICAgICAgICAgICAgICBsZXQgYXV0aG9yX2lkX3RlbXBsYXRlID0gVUlJbnB1dChcbiAgICAg\nICAgICAgICAgICBcIueUqOaIt2lkXCIsXG4gICAgICAgICAgICAgICAgXCJhdXRob3JfaWRcIixc\nbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAg\nICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgIFwi5a6M5YWo5Yy56YWNXCJcbiAgICAgICAg\nICAgICAgKTtcbiAgICAgICAgICAgICAgUmVmbGVjdC5zZXQoXG4gICAgICAgICAgICAgICAgYXV0\naG9yX2lkX3RlbXBsYXRlLnByb3BzLFxuICAgICAgICAgICAgICAgIFBST1BTX1NUT1JBR0VfQVBJ\nLFxuICAgICAgICAgICAgICAgIGdlbmVyYXRlU3RvcmFnZUFwaShkYXRhKVxuICAgICAgICAgICAg\nICApO1xuICAgICAgICAgICAgICBsZXQgJGF1dGhvcl9pZCA9IHBvcHNQYW5lbENvbnRlbnRVdGls\ncy5jcmVhdGVTZWN0aW9uQ29udGFpbmVySXRlbV9pbnB1dChcbiAgICAgICAgICAgICAgICBhdXRo\nb3JfaWRfdGVtcGxhdGVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgbGV0IGF1dGhv\ncl9uYW1lU2hvd190ZW1wbGF0ZSA9IFVJSW5wdXQoXG4gICAgICAgICAgICAgICAgXCLnlKjmiLfl\nkI1cIixcbiAgICAgICAgICAgICAgICBcImF1dGhvcl9uYW1lU2hvd1wiLFxuICAgICAgICAgICAg\nICAgIFwiXCIsXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICB2b2lkIDAs\nXG4gICAgICAgICAgICAgICAgXCLlj6\/mraPliJnvvIzms6jmhI\/ovazkuYlcIlxuICAgICAgICAg\nICAgICApO1xuICAgICAgICAgICAgICBSZWZsZWN0LnNldChcbiAgICAgICAgICAgICAgICBhdXRo\nb3JfbmFtZVNob3dfdGVtcGxhdGUucHJvcHMsXG4gICAgICAgICAgICAgICAgUFJPUFNfU1RPUkFH\nRV9BUEksXG4gICAgICAgICAgICAgICAgZ2VuZXJhdGVTdG9yYWdlQXBpKGRhdGEpXG4gICAgICAg\nICAgICAgICk7XG4gICAgICAgICAgICAgIGxldCAkYXV0aG9yX25hbWVTaG93ID0gcG9wc1BhbmVs\nQ29udGVudFV0aWxzLmNyZWF0ZVNlY3Rpb25Db250YWluZXJJdGVtX2lucHV0KFxuICAgICAgICAg\nICAgICAgIGF1dGhvcl9uYW1lU2hvd190ZW1wbGF0ZVxuICAgICAgICAgICAgICApO1xuICAgICAg\nICAgICAgICBsZXQgY29udGVudF90ZW1wbGF0ZSA9IFVJSW5wdXQoXCLlhoXlrrlcIiwgXCJjb250\nZW50XCIsIFwiXCIsIFwiXCIpO1xuICAgICAgICAgICAgICBSZWZsZWN0LnNldChcbiAgICAgICAg\nICAgICAgICBjb250ZW50X3RlbXBsYXRlLnByb3BzLFxuICAgICAgICAgICAgICAgIFBST1BTX1NU\nT1JBR0VfQVBJLFxuICAgICAgICAgICAgICAgIGdlbmVyYXRlU3RvcmFnZUFwaShkYXRhKVxuICAg\nICAgICAgICAgICApO1xuICAgICAgICAgICAgICBsZXQgJGNvbnRlbnQgPSBwb3BzUGFuZWxDb250\nZW50VXRpbHMuY3JlYXRlU2VjdGlvbkNvbnRhaW5lckl0ZW1faW5wdXQoXG4gICAgICAgICAgICAg\nICAgY29udGVudF90ZW1wbGF0ZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAkZnJh\nZ21lbnQuYXBwZW5kKFxuICAgICAgICAgICAgICAgICRlbmFibGUsXG4gICAgICAgICAgICAgICAg\nJG5hbWUsXG4gICAgICAgICAgICAgICAgJGF1dGhvcl9pZCxcbiAgICAgICAgICAgICAgICAkYXV0\naG9yX25hbWVTaG93LFxuICAgICAgICAgICAgICAgICRjb250ZW50XG4gICAgICAgICAgICAgICk7\nXG4gICAgICAgICAgICAgIHJldHVybiAkZnJhZ21lbnQ7XG4gICAgICAgICAgICB9LFxuICAgICAg\nICAgICAgb25zdWJtaXQ6ICgkZm9ybSwgaXNFZGl0LCBlZGl0RGF0YSkgPT4ge1xuICAgICAgICAg\nICAgICBsZXQgJHVsaXN0X2xpID0gJGZvcm0ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAg\nICAgICBcIi5ydWxlLWZvcm0tdWxpc3QgPiBsaVwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAg\nICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRUZW1wbGF0ZURhdGEoKTtcbiAgICAgICAgICAgICAg\naWYgKGlzRWRpdCkge1xuICAgICAgICAgICAgICAgIGRhdGEudXVpZCA9IGVkaXREYXRhLnV1aWQ7\nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJHVsaXN0X2xpLmZvckVhY2goKCRsaSkg\nPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmb3JtQ29uZmlnID0gUmVmbGVjdC5nZXQoJGxpLCBc\nIl9fZm9ybUNvbmZpZ19fXCIpO1xuICAgICAgICAgICAgICAgIGxldCBhdHRycyA9IFJlZmxlY3Qu\nZ2V0KGZvcm1Db25maWcsIFwiYXR0cmlidXRlc1wiKTtcbiAgICAgICAgICAgICAgICBsZXQgc3Rv\ncmFnZUFwaSA9IFJlZmxlY3QuZ2V0KCRsaSwgUFJPUFNfU1RPUkFHRV9BUEkpO1xuICAgICAgICAg\nICAgICAgIGxldCBrZXkgPSBSZWZsZWN0LmdldChhdHRycywgQVRUUklCVVRFX0tFWSk7XG4gICAg\nICAgICAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IFJlZmxlY3QuZ2V0KGF0dHJzLCBBVFRSSUJV\nVEVfREVGQVVMVF9WQUxVRSk7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gc3RvcmFnZUFw\naS5nZXQoa2V5LCBkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmIChSZWZsZWN0Lmhh\ncyhkYXRhLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICBSZWZsZWN0LnNldChkYXRhLCBrZXks\nIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbG9n\nLmVycm9yKGAke2tleX3kuI3lnKjmlbDmja7kuK1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAoZGF0YS5uYW1lLnRyaW0oKSA9PT0gXCJc\nIikge1xuICAgICAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLop4TliJnlkI3np7DkuI3og73kuLrn\nqbpcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHN1Y2Nl\nc3M6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgZGF0YVxuICAgICAgICAgICAgICAgIH07XG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGRhdGEuYXV0aG9yX2lkLnRyaW0oKSA9\nPT0gXCJcIiAmJiBkYXRhLmF1dGhvcl9uYW1lU2hvdy50cmltKCkgPT09IFwiXCIgJiYgZGF0YS5j\nb250ZW50LnRyaW0oKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLn\nlKjmiLdpZOOAgeeUqOaIt+WQjeOAgeWGheWuueW\/hemhu+Whq+S4gOS4qlwiKTtcbiAgICAgICAg\nICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAg\nICAgICAgICAgICAgICBkYXRhXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICBpZiAoaXNFZGl0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAg\nICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRoaXMudXBkYXRlRGF0YShkYXRhKSxcbiAgICAgICAg\nICAgICAgICAgIGRhdGFcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9IGVsc2Ug\ne1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBzdWNjZXNzOiB0\naGlzLmFkZERhdGEoZGF0YSksXG4gICAgICAgICAgICAgICAgICBkYXRhXG4gICAgICAgICAgICAg\nICAgfTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0eWxl\nOiAoXG4gICAgICAgICAgICAgIFwvKmNzcypcL1xuICAgICAgICAgICAgICBgXG4gICAgICAgICAg\nICAgICAgICAgIC5wb3BzLXBhbmVsLXRleHRhcmVhIHRleHRhcmVhe1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgICBgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZWxl\ndGU6IHtcbiAgICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGRlbGV0ZUNhbGxC\nYWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZWxldGVEYXRhKGRh\ndGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYm90\ndG9tQ29udHJvbHM6IHtcbiAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgIGVuYWJsZTog\ndHJ1ZSxcbiAgICAgICAgICAgIG9wdGlvbjogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAg\nICAgICAgbmFtZTogXCLov4fmu6Tlt7LlkK\/nlKhcIixcbiAgICAgICAgICAgICAgICBmaWx0ZXJD\nYWxsQmFjayhkYXRhKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5lbmFibGU7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgICAgbmFtZTogXCLov4fmu6TmnKrlkK\/nlKhcIixcbiAgICAgICAgICAgICAgICBm\naWx0ZXJDYWxsQmFjayhkYXRhKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gIWRhdGEuZW5h\nYmxlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxu\nICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBydWxlVmlldy5zaG93Vmll\ndygpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WPluaooeadv+aVsOaNrlxuICAgICAq\nXC9cbiAgICBnZXRUZW1wbGF0ZURhdGEoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1dWlk\nOiB1dGlscy5nZW5lcmF0ZVVVSUQoKSxcbiAgICAgICAgZW5hYmxlOiB0cnVlLFxuICAgICAgICBu\nYW1lOiBcIlwiLFxuICAgICAgICBhdXRob3JfaWQ6IFwiXCIsXG4gICAgICAgIGF1dGhvcl9uYW1l\nU2hvdzogXCJcIixcbiAgICAgICAgY29udGVudDogXCJcIlxuICAgICAgfTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDojrflj5bmlbDmja5cbiAgICAgKlwvXG4gICAgZ2V0RGF0YSgpIHtcbiAg\nICAgIHJldHVybiBfR01fZ2V0VmFsdWUodGhpcy4ka2V5LlNUT1JBR0VfS0VZLCBbXSk7XG4gICAg\nfSxcbiAgICBcLyoqXG4gICAgICog6K6+572u5pWw5o2uXG4gICAgICogQHBhcmFtIGRhdGFcbiAg\nICAgKlwvXG4gICAgc2V0RGF0YShkYXRhKSB7XG4gICAgICBfR01fc2V0VmFsdWUodGhpcy4ka2V5\nLlNUT1JBR0VfS0VZLCBkYXRhKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmt7vliqDmlbDm\nja5cbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqXC9cbiAgICBhZGREYXRhKGRhdGEpIHtcbiAg\nICAgIGxldCBsb2NhbERhdGEgPSB0aGlzLmdldERhdGEoKTtcbiAgICAgIGxldCBmaW5kSW5kZXgg\nPSBsb2NhbERhdGEuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLnV1aWQgPT0gZGF0YS51dWlkKTtc\nbiAgICAgIGlmIChmaW5kSW5kZXggPT09IC0xKSB7XG4gICAgICAgIGxvY2FsRGF0YS5wdXNoKGRh\ndGEpO1xuICAgICAgICBfR01fc2V0VmFsdWUodGhpcy4ka2V5LlNUT1JBR0VfS0VZLCBsb2NhbERh\ndGEpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVy\nbiBmYWxzZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmm7TmlrDmlbDmja5c\nbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqXC9cbiAgICB1cGRhdGVEYXRhKGRhdGEpIHtcbiAg\nICAgIGxldCBsb2NhbERhdGEgPSB0aGlzLmdldERhdGEoKTtcbiAgICAgIGxldCBpbmRleCA9IGxv\nY2FsRGF0YS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udXVpZCA9PSBkYXRhLnV1aWQpO1xuICAg\nICAgbGV0IHVwZGF0ZUZsYWcgPSBmYWxzZTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAg\nICAgICAgdXBkYXRlRmxhZyA9IHRydWU7XG4gICAgICAgIGxvY2FsRGF0YVtpbmRleF0gPSBkYXRh\nO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXREYXRhKGxvY2FsRGF0YSk7XG4gICAgICByZXR1cm4g\ndXBkYXRlRmxhZztcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliKDpmaTmlbDmja5cbiAgICAg\nKiBAcGFyYW0gZGF0YVxuICAgICAqXC9cbiAgICBkZWxldGVEYXRhKGRhdGEpIHtcbiAgICAgIGxl\ndCBsb2NhbERhdGEgPSB0aGlzLmdldERhdGEoKTtcbiAgICAgIGxldCBpbmRleCA9IGxvY2FsRGF0\nYS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udXVpZCA9PSBkYXRhLnV1aWQpO1xuICAgICAgbGV0\nIGRlbGV0ZUZsYWcgPSBmYWxzZTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAg\nZGVsZXRlRmxhZyA9IHRydWU7XG4gICAgICAgIGxvY2FsRGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xu\nICAgICAgfVxuICAgICAgdGhpcy5zZXREYXRhKGxvY2FsRGF0YSk7XG4gICAgICByZXR1cm4gZGVs\nZXRlRmxhZztcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmuIXnqbrmlbDmja5cbiAgICAgKlwv\nXG4gICAgY2xlYXJEYXRhKCkge1xuICAgICAgX0dNX2RlbGV0ZVZhbHVlKHRoaXMuJGtleS5TVE9S\nQUdFX0tFWSk7XG4gICAgfVxuICB9O1xuICBjb25zdCBQYW5lbFRpZUJhU2V0dGluZ1VJID0ge1xu\nICAgIGlkOiBcImJhaWR1LXBhbmVsLWNvbmZpZy10aWViYVwiLFxuICAgIHRpdGxlOiBcIui0tOWQ\np1wiLFxuICAgIGhlYWRlclRpdGxlOiBcIueZvuW6pui0tOWQpzxiciBcLz50aWViYS5iYWlkdS5j\nb21cIixcbiAgICBpc0RlZmF1bHQoKSB7XG4gICAgICByZXR1cm4gQmFpZHVSb3V0ZXIuaXNUaWVC\nYSgpO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9EZWZhdWx0VmlldzogdHJ1ZSxcbiAgICBmb3Jtczog\nW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIs\nXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLpppbp\nobVcIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1z\nOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxu\nICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3Jtczog\nW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5paw\n5qCH562+6aG15omT5byAXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfdGllYmFfaW5k\nZXhfb3BlbkFOZXdUYWJcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAg\nICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLmlrDmoIfnrb7pobXmiZPl\nvIDluJblrZBcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAg\nICAgICAgICAgdGV4dDogXCLor53popjng63orq5cIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVl\ncE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAg\nICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNc\nIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2go\nXG4gICAgICAgICAgICAgICAgICAgIFwi6YeN5a6a5ZCReHjlkKfot7PovaxcIixcbiAgICAgICAg\nICAgICAgICAgICAgXCJiYWlkdV90aWViYV90b3BpY19yZWRpcmVjdF9qdW1wXCIsXG4gICAgICAg\nICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAg\nICAgICAgICAgICAgXCLngrnlh7vluJblrZDnm7TmjqXot7PovaxcIlxuICAgICAgICAgICAgICAg\nICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBc\nIuaWsOagh+etvumhteaJk+W8gFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3RpZWJh\nX3RvcGljX29wZW5BTmV3VGFiXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAg\nICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5paw5qCH562+6aG1\n5omT5byA5biW5a2QXCJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtc\nbiAgICAgICAgICAgIHRleHQ6IFwi5pCc57Si57u85ZCIXCIsXG4gICAgICAgICAgICB0eXBlOiBc\nImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZv\ncm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dp\ndGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuaWsOagh+etvumhteaJk+W8gFwiLFxuICAgICAg\nICAgICAgICAgICAgICBcImJhaWR1X3RpZWJhX2h5YnJpZF9zZWFyY2hfb3BlbkFOZXdUYWJcIixc\nbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxc\nbiAgICAgICAgICAgICAgICAgICAgXCLmlrDmoIfnrb7pobXmiZPlvIDluJblrZBcIlxuICAgICAg\nICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLl\nkKflhoVcIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZv\ncm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWKn+iDvVwi\nLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3Jt\nczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi\n6K6w5L2P5b2T5YmN6YCJ5oup55qE55yL5biW5o6S5bqPXCIsXG4gICAgICAgICAgICAgICAgICAg\nIFwiYmFpZHVfdGllYmFfcmVtZW1iZXJfdXNlcl9wb3N0X3NvcnRcIixcbiAgICAgICAgICAgICAg\nICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAg\nICAgICBcIuiusOS9j+mAieaLqeeahOWPkeW4g1wv5Zue5aSNXCJcbiAgICAgICAgICAgICAgICAg\nICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLo\nv4fmu6Tph43lpI3luJblrZBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV90aWViYV9m\naWx0ZXJEdXBsaWNhdGVQb3N0c1wiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAg\nICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIui\/h+a7pOaOiemH\njeWkjWlk55qE5biWXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLop6PpmaTnrb7liLDpmZDliLZcIixcbiAg\nICAgICAgICAgICAgICAgICAgXCJiYWlkdV90aWViYV9yZW1vdmVGb3J1bVNpZ25JbkxpbWl0XCIs\nXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxc\nbiAgICAgICAgICAgICAgICAgICAgXCLlnKjnmbvlvZXmg4XlhrXkuIvlj6\/ngrnlh7vnrb7liLBc\nIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAg\nICAgICAgICAgICAgICAgICBcIuaWsOagh+etvumhteaJk+W8gFwiLFxuICAgICAgICAgICAgICAg\nICAgICBcImJhaWR1X3RpZWJhX29wZW5BTmV3VGFiXCIsXG4gICAgICAgICAgICAgICAgICAgIGZh\nbHNlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi\n5paw5qCH562+6aG15omT5byA5biW5a2QXCJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAg\nICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxu\nICAgICAgICAgIFwvXC8ge1xuICAgICAgICAgIFwvXC8gXHR0ZXh0OiBcIuW4luWGhVwiLFxuICAg\nICAgICAgIFwvXC8gXHRkZXNjcmlwdGlvbjogXCLml6fniYjmnKzorr7nva7pobnvvIzlpKfpg6jl\niIblip\/og73lt7LlpLHmlYhcIixcbiAgICAgICAgICBcL1wvIFx0dHlwZTogXCJkZWVwTWVudVwi\nLFxuICAgICAgICAgIFwvXC8gXHRmb3JtczogW1xuICAgICAgICAgIFwvXC8gXHRcdHtcbiAgICAg\nICAgICBcL1wvIFx0XHRcdHRleHQ6IFwi5Yqf6IO9XCIsXG4gICAgICAgICAgXC9cLyBcdFx0XHR0\neXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgXC9cLyBcdFx0XHRmb3JtczogW1xuICAgICAgICAg\nIFwvXC8gXHRcdFx0XHRVSVN3aXRjaChcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcIualvOS4\nrealvOWbnuWkjeW8ueeql+aJi+WKv+i\/lOWbnlwiLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRc\ndFwiYmFpZHVfdGllYmFfbHpsX2Jhbl9nbG9iYWxfYmFja1wiLFxuICAgICAgICAgIFwvXC8gXHRc\ndFx0XHRcdGZhbHNlLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdGZ1bmN0aW9uIChldmVudCwg\nZW5hYmxlKSB7XG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XHRpZiAoZW5hYmxlKSB7XG4gICAg\nICAgICAgXC9cLyBcdFx0XHRcdFx0XHRcdGFsZXJ0KFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRc\ndFx0XHRcdFwi5byA5ZCv5ZCO77yM5b2T5Zyo5omL5py65rWP6KeI5Zmo5Lit5L2\/55So5bGP5bmV\n5bem5ruR5Zue6YCA572R6aG15pON5L2c5oiW6ICF54K55Ye75rWP6KeI5Zmo55qE5Zue6YCA5Yiw\n5LiK5LiA6aG15oyJ6ZKu77yM5LiN5Lya6Kem5Y+R5Zue6YCA5LiK5LiA6aG15pON5L2c77yM6ICM\n5piv5Lya5YWz6Zet5b2T5YmN5p+l55yL55qE5qW85Lit5qW855qE5by556qX44CC5rOo77ya5p+Q\n5Lqb5rWP6KeI5Zmo5LiN6YCC55SoXCJcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcdFx0KTtc\nbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcdH1cbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHR9\nLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdFwi5L2\/5rWP6KeI5Zmo5ZCO6YCA5Y+Y5oiQ5YWz\n6Zet5qW85Lit5qW85by556qXXCJcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0KSxcbiAgICAgICAg\nICBcL1wvIFx0XHRcdFx0VUlTd2l0Y2goXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XCLmlrDl\nop7mu5rliqjliLDpobbpg6jmjInpkq5cIixcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcImJh\naWR1X3RpZWJhX2FkZF9zY3JvbGxfdG9wX2J1dHRvbl9pbl9mb3J1bVwiLFxuICAgICAgICAgIFwv\nXC8gXHRcdFx0XHRcdHRydWUsXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0dm9pZCAwLFxuICAg\nICAgICAgIFwvXC8gXHRcdFx0XHRcdFwi5ZCR5LiL5rua5Yqo55qE6Led56a7PumhtemdoumrmOW6\npioy5bCx5Lya5Ye6546w5oyJ6ZKuXCJcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0KSxcbiAgICAg\nICAgICBcL1wvIFx0XHRcdFx0VUlTd2l0Y2goXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XCLk\nvJjljJbmn6XnnIvor4TorrpcIixcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcImJhaWR1X3Rp\nZWJhX29wdGltaXplX3NlZV9jb21tZW50c1wiLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdHRy\ndWUsXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0dm9pZCAwLFxuICAgICAgICAgIFwvXC8gXHRc\ndFx0XHRcdFwi5Y+v5Lul5p+l55yL5pu05aSa55qE6K+E6K66XCJcbiAgICAgICAgICBcL1wvIFx0\nXHRcdFx0KSxcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0VUlTd2l0Y2goXG4gICAgICAgICAgXC9c\nLyBcdFx0XHRcdFx0XCLkvJjljJbor4Torrrlt6XlhbfmoI9cIixcbiAgICAgICAgICBcL1wvIFx0\nXHRcdFx0XHRcImJhaWR1X3RpZWJhX29wdGltaXplX2NvbW1lbnRzX3Rvb2xiYXJcIixcbiAgICAg\nICAgICBcL1wvIFx0XHRcdFx0XHR0cnVlLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdHZvaWQg\nMCxcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcIuWPr+S7pei\/m+ihjOivhOiuuuWMuuWbnuWk\njVwv5qW85Lit5qW85Zue5aSN77yM6ZyA5byA5ZCv44CQ5LyY5YyW5p+l55yL6K+E6K6644CRXCJc\nbiAgICAgICAgICBcL1wvIFx0XHRcdFx0KSxcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0VUlTd2l0\nY2goXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XCLkvJjljJblm77niYfngrnlh7vpooTop4hc\nIixcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcImJhaWR1X3RpZWJhX29wdGltaXplX2ltYWdl\nX3ByZXZpZXdcIixcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHR0cnVlLFxuICAgICAgICAgIFwv\nXC8gXHRcdFx0XHRcdHZvaWQgMCxcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcIuS9v+eUqFZp\nZXdlcuafpeeci+WbvueJh1wiXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdCksXG4gICAgICAgICAg\nXC9cLyBcdFx0XHRcdFVJU3dpdGNoKFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdFwi5by65Yi2\n5p+l55yL6KKr5bGP6JS955qE5biW5a2QXCIsXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XCJi\nYWlkdV90aWViYV9yZXBhaXJFcnJvclRocmVhZFwiLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRc\ndGZhbHNlLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdGZ1bmN0aW9uIChldmVudCwgZW5hYmxl\nKSB7XG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XHRpZiAoZW5hYmxlKSB7XG4gICAgICAgICAg\nXC9cLyBcdFx0XHRcdFx0XHRcdHdpbmRvdy5hbGVydChcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0\nXHRcdFx0XHRcIuW8gOWQr+WQju+8jOWmguaenOafpeeci+eahOW4luWtkOaYvuekuuOAkOi0tOWt\nkOS4jeWtmOWcqOaIluiAheW3suiiq+WIoOmZpOOAkeaIluOAkOivpeW4luWtkOmcgOimgeWOu2Fw\ncOWGheafpeeci+WTpuOAke+8jOS4lOivpeW4luWtkOWcqFBD56uv5Y+v5Lul5p+l55yL77yM6YKj\n5LmI6K+l5L+u5aSN5Y+v5Lul55Sf5pWI44CCXCJcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRc\ndFx0KTtcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcdH1cbiAgICAgICAgICBcL1wvIFx0XHRc\ndFx0XHR9LFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdFwiUEPnq6\/lj6\/ku6Xmn6XnnIvluJbl\nrZDor6Xlip\/og73miY3og73mraPnoa7nlJ\/mlYhcIlxuICAgICAgICAgIFwvXC8gXHRcdFx0XHQp\nLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRVSVN3aXRjaChcbiAgICAgICAgICBcL1wvIFx0XHRc\ndFx0XHRcIueCueWHu+alvOS4u+WktOWDj+ato+ehrui3s+i9rOS4u+mhtVwiLFxuICAgICAgICAg\nIFwvXC8gXHRcdFx0XHRcdFwiYmFpZHVfdGllYmFfY2xpY2tPblRoZU93bmVyU0F2YXRhclRvQ29y\ncmVjdGx5UmVkaXJlY3RUb1RoZUhvbWVwYWdlXCIsXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0\ndHJ1ZSxcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHR2b2lkIDAsXG4gICAgICAgICAgXC9cLyBc\ndFx0XHRcdFx0XCLngrnlh7vlpLTlg4\/mraPnoa7ot7Povazoh7PnlKjmiLfkuLvpobVcIlxuICAg\nICAgICAgIFwvXC8gXHRcdFx0XHQpLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRVSVN3aXRjaChc\nbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcIuWxj+iUveacuuWZqOS6ulwiLFxuICAgICAgICAg\nIFwvXC8gXHRcdFx0XHRcdFwiYmFpZHVfdGllYmFfc2hpZWxkX2NvbW1uZXRzX2Jhb2RhdGluZ1wi\nLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdHRydWUsXG4gICAgICAgICAgXC9cLyBcdFx0XHRc\ndFx0dm9pZCAwLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdFwi5bGP6JS944CQ6LS05ZCn5YyF\n5omT5ZCs44CR5py65Zmo5Lq677yM5Zue562U55qE6K+E6K666YO95piv54mb5aS05LiN5a+56ams\n5Zi055qEXCJcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0KSxcbiAgICAgICAgICBcL1wvIFx0XHRc\ndFx0VUlTd2l0Y2goXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdFx0XCLmmL7npLrnlKjmiLflvZPl\niY3lkKfnmoTnrYnnuqflpLTooZRcIixcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHRcImJhaWR1\nX3RpZWJhX3Nob3dfZm9ydW1fbGV2ZWxcIixcbiAgICAgICAgICBcL1wvIFx0XHRcdFx0XHR0cnVl\nLFxuICAgICAgICAgIFwvXC8gXHRcdFx0XHRcdHZvaWQgMCxcbiAgICAgICAgICBcL1wvIFx0XHRc\ndFx0XHRcIuWPquWvueivhOiuuuWSjOalvOS4realvOeahOeUqOaIt+i\/m+ihjOaYvuekuuWkhOeQ\nhlwiXG4gICAgICAgICAgXC9cLyBcdFx0XHRcdCksXG4gICAgICAgICAgXC9cLyBcdFx0XHRdLFxu\nICAgICAgICAgIFwvXC8gXHRcdH0sXG4gICAgICAgICAgXC9cLyBcdF0sXG4gICAgICAgICAgXC9c\nLyB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi5biW5YaFXCIsXG4gICAgICAg\nICAgICBkZXNjcmlwdGlvbjogXCLmlrDniYjnmoR1bmktYXBwXCIsXG4gICAgICAgICAgICB0eXBl\nOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4g\nICAgICAgICAgICAgICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBc\nImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJ\nU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIumYu+atoi53YWtlLXVw55qE54K55Ye75LqL\n5Lu2XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0LXBy\nZXZlbnRXYWtlQXBwXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAg\nICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLpmLvmraLngrnlh7vllKTphpJB\ncHBcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgICAgICAgICBcIuimhuebluOAkOaJk+W8gEFwcOafpeeci+abtOWkmuivhOiu\nuuOAkVwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1LXRpZWJhLXVuaS1hcHAtcG9zdC1v\ndmVybG9hZExvYWRNb3JlXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAg\nICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLor6XmloflrZflj6\/nm7Tm\njqXngrnlh7vlubbliqDovb3mm7TlpJror4TorrrkuJTmlrDlop7mu5rliqjoh6rliqjliqDovb3m\nm7TlpJror4TorrpcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJ\nU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuS\/ruWkjeW4luWGheS4u+WGheWuueeahOWb\nvueJh+WIl+ihqOS4reeahOaOqOiNkOW4luWtkOi3s+i9rFwiLFxuICAgICAgICAgICAgICAgICAg\nICBcImJhaWR1LXRpZWJhLXVuaS1hcHAtcG9zdC1yZXBhaXJQaWNHdWlkZVRocmVhZFdyYXBwZXJc\nIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAw\nLFxuICAgICAgICAgICAgICAgICAgICBcIuW4luWGheS4u+WGheWuueeahOWbvueJh+WPs+a7keWI\nsOacgOWQjuS4gOS4quaXtuS8muWHuueOsOaOqOiNkOW4luWtkO+8jOeCueWHu+S8muato+W4uOi3\ns+i9rOWIsOivpeW4llwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAg\nVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5L+u5aSN54K55Ye76L+b5YWl55So5oi3\n5Li76aG1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0\nLXJlcGFpckNsaWNrVG9Vc2VySG9tZVwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAg\nICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5YyF5ous55So\n5oi35aS05YOP44CB55So5oi35ZCNXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAg\nICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLorrDkvY\/or4TorrrmjpLl\nuo9cIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS10aWViYS11bmktYXBwLXBvc3QtcmVt\nZW1iZXJDaG9vc2VTZWVDb21tZW50U29ydFwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxu\nICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi6K6w5L2P\n5b2T5YmN6YCJ5oup6K+E6K6655qE5o6S5bqP77yM5aaC54Ot6Zeo44CB5q2j5bqP44CB5YCS5bqP\nXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAg\nICAgICAgICAgICAgICAgICAgXCLor4Torrrljrvph41cIixcbiAgICAgICAgICAgICAgICAgICAg\nXCJiYWlkdS10aWViYS11bmktYXBwLXBvc3QtZmlsdGVyRHVwbGljYXRlQ29tbWVudHNcIixcbiAg\nICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAg\nICAgICAgICAgICAgICAgICBcIuWKoOi9veivhOiuuuaXtuS8muaciemHjeWkjeeahOivhOiuuuWH\nuueOsO+8jOWQr+eUqOivpeWKn+iDveWPr+i\/h+a7pOaOiVwiXG4gICAgICAgICAgICAgICAgICAp\nLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5qW8\n5Lit5qW85Zue5aSN5by556qX5omL5Yq\/6L+U5ZueXCIsXG4gICAgICAgICAgICAgICAgICAgIFwi\nYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0LW9wdGltaXphdGlvbkx6bFBvc3RCYWNrR2VzdHVyZVJl\ndHVyblwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAg\nZnVuY3Rpb24oZXZlbnQsIGVuYWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChlbmFi\nbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KFxuICAgICAgICAgICAgICAgICAg\nICAgICAgICBcIuW8gOWQr+WQju+8jOW9k+WcqOaJi+acuua1j+iniOWZqOS4reS9v+eUqOWxj+W5\nleW3pua7keWbnumAgOe9kemhteaTjeS9nOaIluiAheeCueWHu+a1j+iniOWZqOeahOWbnumAgOWI\nsOS4iuS4gOmhteaMiemSru+8jOS4jeS8muinpuWPkeWbnumAgOS4iuS4gOmhteaTjeS9nO+8jOiA\njOaYr+S8muWFs+mXreW9k+WJjeafpeeci+eahOalvOS4realvOeahOW8ueeql+OAguazqO+8muaf\nkOS6m+a1j+iniOWZqOS4jemAgueUqFwiXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAg\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAg\nICAgICAgICAgXCLkvb\/mtY\/op4jlmajlkI7pgIDlj5jmiJDlhbPpl63mpbzkuK3mpbzlvLnnqpdc\nIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAg\nICAgICAgICAgICAgICAgICBcIuS8mOWMluWbvueJh+eCueWHu+mihOiniFwiLFxuICAgICAgICAg\nICAgICAgICAgICBcImJhaWR1X3RpZWJhX29wdGltaXplX2ltYWdlX3ByZXZpZXdcIixcbiAgICAg\nICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAg\nICAgICAgICAgICAgICBcIuS9v+eUqFZpZXdlcuafpeeci+WbvueJh1wiXG4gICAgICAgICAgICAg\nICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAg\nIFwi5Zu+54mH6aKE6KeI5omL5Yq\/6L+U5ZueXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFp\nZHUtdGllYmEtdW5pLWFwcC1wb3N0LW9wdGltaXphdGlvbkltYWdlUHJldmlld0JhY2tHZXN0dXJl\nUmV0dXJuXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAg\nICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5L2\/5rWP6KeI5Zmo5ZCO6YCA5Y+Y5oiQ\n6YCA5Ye65Zu+54mH6aKE6KeI5qih5byPXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAg\nICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLmlrDlop7mu5rliqjl\niLDpobbpg6jmjInpkq5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS10aWViYS11bmkt\nYXBwLXBvc3QtYWRkU2Nyb2xsVG9wQnV0dG9uSW5Gb3J1bVwiLFxuICAgICAgICAgICAgICAgICAg\nICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAg\nIFwi5ZCR5LiL5rua5Yqo55qE6Led56a7PumhtemdoumrmOW6pioy5bCx5Lya5Ye6546w5oyJ6ZKu\nXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAg\nICAgICAgICAgICAgICAgICAgXCLlsY\/olL3mnLrlmajkurpcIixcbiAgICAgICAgICAgICAgICAg\nICAgXCJiYWlkdS10aWViYS11bmktYXBwLXBvc3QtYmxvY2tUaWVCYVJvYm90XCIsXG4gICAgICAg\nICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAg\nICAgICAgICAgICAgXCLlsY\/olL3jgJDotLTlkKfljIXmiZPlkKzjgJHmnLrlmajkurrvvIzlm57n\nrZTnmoTor4Torrrpg73mmK\/niZvlpLTkuI3lr7npqazlmLTnmoRcIlxuICAgICAgICAgICAgICAg\nICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBc\nIuS\/ruWkjei2hemTvuaOpei3s+i9rFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1LXRp\nZWJhLXVuaS1hcHAtcG9zdC1yZXBhaXJBbmNob3JMaW5rXCIsXG4gICAgICAgICAgICAgICAgICAg\nIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAg\nXCLlj6\/kv67lpI3ok53oibLnmoTotoXpk77mjqXngrnlh7vkuI3og73ot7PovaznvZHpobXnmoTp\nl67pophcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNo\nKFxuICAgICAgICAgICAgICAgICAgICBcIuino+mZpOmVv+aMiemAieS4reaWh+Wtl+eahOmZkOWI\ntlwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1LXRpZWJhLXVuaS1hcHAtcG9zdC1hbGxv\ndy11c2VyLXNlbGVjdFwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAg\nICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5YWB6K646ZW\/5oyJ6YCJ5oup\n5paH5a2XXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSUJ1dHRv\nbihcbiAgICAgICAgICAgICAgICAgICAgXCLor4Torrrov4fmu6Top4TliJlcIixcbiAgICAgICAg\nICAgICAgICAgICAgXCLlj6\/ov4fmu6Tor4TorrpcIixcbiAgICAgICAgICAgICAgICAgICAgXCLo\nh6rlrprkuYlcIixcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAg\nICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAg\nICAgIFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAg\nICAgICAgICAgICAgVGllYmFVbmlBcHBDb21tZW50RmlsdGVyLnNob3dWaWV3KCk7XG4gICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXC9cLyB7XG4gICAgICAgICAgICAgIFwvXC8g\nXHR0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgIFwvXC8gXHR0ZXh0OiBcIue9kee7nOiv\nt+axguaLpuaIqlwiLFxuICAgICAgICAgICAgICBcL1wvIFx0Zm9ybXM6IFtcbiAgICAgICAgICAg\nICAgXC9cLyBcdFx0VUlTd2l0Y2goXG4gICAgICAgICAgICAgIFwvXC8gXHRcdFx0XCJcL21vXC9x\nXC9nZXRVcENvbmZpZ0RhdGFcIixcbiAgICAgICAgICAgICAgXC9cLyBcdFx0XHRcImJhaWR1LXRp\nZWJhLXVuaS1hcHAtcG9zdC1pbnRlcmNlcHQtZ2V0VXBDb25maWdEYXRhXCIsXG4gICAgICAgICAg\nICAgIFwvXC8gXHRcdFx0dHJ1ZSxcbiAgICAgICAgICAgICAgXC9cLyBcdFx0XHR2b2lkIDAsXG4g\nICAgICAgICAgICAgIFwvXC8gXHRcdFx0XCLor6Xor7fmsYLnsbvkvLzkuo7lub\/lkYrphY3nva7v\nvIzlu7rorq7mi6bmiKpcIlxuICAgICAgICAgICAgICBcL1wvIFx0XHQpLFxuICAgICAgICAgICAg\nICBcL1wvIFx0XSxcbiAgICAgICAgICAgICAgXC9cLyB9LFxuICAgICAgICAgICAgXVxuICAgICAg\nICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCJcIixc\nbiAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3JtczogW1xuICAgICAgICAgIHtc\nbiAgICAgICAgICAgIHRleHQ6IFwi6LSm5Y+35Yqf6IO9XCIsXG4gICAgICAgICAgICB0eXBlOiBc\nImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIs\nXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJQnV0dG9uKFxu\nICAgICAgICAgICAgICAgICAgICBcIuetvuWIsOaJgOacieWFs+azqOeahOWQp1wiLFxuICAgICAg\nICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi562+5YiwXCIsXG4g\nICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxu\nICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgXCJkZWZhdWx0\nXCIsXG4gICAgICAgICAgICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICAg\nICAgICBmdW5jdGlvbiBnZXRTaWduSW5mb0hUTUwoaW5kZXgsIG1heEluZGV4LCBmb3J1bU5hbWUs\nIHRleHQsIHNpZ25UZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFxuXHRc\ndFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0aWViYS1zaWduLWluZm8tdGV4dFwiPui\/\nm+W6pu+8miR7aW5kZXh9XC8ke21heEluZGV4fTxcL2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0\nXHQ8ZGl2IGNsYXNzPVwidGllYmEtc2lnbi1pbmZvLXRleHRcIj7lkKflkI3vvJoke2ZvcnVtTmFt\nZX08XC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRpZWJhLXNpZ24t\naW5mby10ZXh0XCI+5L+h5oGv77yaJHt0ZXh0fTxcL2Rpdj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0\nXHQke1wiXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YDtcbiAgICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgICAgICAgUW1zZy5pbmZvKFwi5q2j5Zyo6I635Y+W5omA5pyJ\n5YWz5rOo5ZCnXCIpO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCBsaWtlRm9ydW1MaXN0ID0g\nYXdhaXQgVGllYmFQQ0FwaS5nZXRVc2VyQWxsTGlua0ZvcnVtKCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgaWYgKCFsaWtlRm9ydW1MaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1\ncm47XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGlmICgh\nbGlrZUZvcnVtTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFFtc2cuZXJy\nb3IoXCLor6XotKblj7flsJrmnKrlhbPms6jluJblrZBcIik7XG4gICAgICAgICAgICAgICAgICAg\nICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAg\nICAgIGxldCBpc1N0b3AgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbG9hZGlu\nZyA9IFFtc2cubG9hZGluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldFNpZ25JbmZvSFRN\nTChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgbGlrZUZvcnVtTGlzdC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2VG\nb3J1bUxpc3RbMF0uZm9ydW1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIuato+Wc\nqOaJp+ihjOetvuWIsFwiXG4gICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAg\nICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q2xvc2U6IHRydWUs\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzSFRNTDogdHJ1ZSxcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgc3R5bGU6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcLypjc3Mq\nXC9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0\nXHQucW1zZy1jb250ZW50LWxvYWRpbmcgPiBzcGFue1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0\nXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRc\ndFx0XHRcdFx0XHRcdFx0LnFtc2ctY29udGVudC1sb2FkaW5nIC50aWViYS1zaWduLWluZm8tdGV4\ndHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0\nXHRcdFx0XHRcdFx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdFx0XHRcdFx0XHRc\ndFx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0\nXHRcdG1heC13aWR0aDogNjV2dztcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0\nXHRcdFx0XHRcdFx0XHRcdGBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgb25DbG9zZSgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBpc1N0b3AgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAg\nICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGlrZUZvcnVtTGlzdC5sZW5ndGg7\nIGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1N0b3ApIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgUW1zZy5pbmZvKFwi5Lit5patXCIpO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgICAgICBsZXQgbGlua0ZvcnVtSW5mbyA9IGxpa2VGb3J1bUxpc3RbaW5kZXhd\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZy5zZXRIVE1MKFxuICAgICAgICAgICAg\nICAgICAgICAgICAgICBnZXRTaWduSW5mb0hUTUwoXG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpa2VGb3J1bUxpc3Qu\nbGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtGb3J1bUluZm8uZm9ydW1O\nYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwi5Y+R6YCB562+5Yiw6K+35rGCLi4u\nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAg\nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzaWduUmVzdWx0ID0gYXdhaXQgVGllQmFB\ncGkuZm9ydW1TaWduKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rRm9ydW1JbmZvLmZv\ncnVtTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0ZvcnVtSW5mby50YnNcbiAg\nICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNp\nZ25SZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgUW1zZy5pbmZvKFwiMuenkuWQ\njuWIh+aNouiHs+S4i+S4gOS4qlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQg\ndXRpbHMuc2xlZXAoMmUzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4g\nICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlw\nZW9mIHNpZ25SZXN1bHRbXCJkYXRhXCJdID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgIGxvYWRpbmcuc2V0SFRNTChcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBnZXRTaWduSW5mb0hUTUwoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCAr\nIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtlRm9ydW1MaXN0Lmxlbmd0aCxc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtGb3J1bUluZm8uZm9ydW1OYW1lLFxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYOS7iuaXpeacrOWQp+esrCR7c2lnblJlc3Vs\ndFtcImRhdGFcIl1bXCJmaW5mb1wiXVtcImN1cnJlbnRfcmFua19pbmZvXCJdW1wic2lnbl9jb3Vu\ndFwiXX3kuKrnrb7liLBgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAg\nICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgUW1zZy5lcnJvcihzaWduUmVzdWx0W1wiZXJyb3JcIl0p\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgUW1z\nZy5pbmZvKFwiMuenkuWQjuWIh+aNouiHs+S4i+S4gOS4qlwiKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGF3YWl0IHV0aWxzLnNsZWVwKDJlMyk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICAgIFFtc2cuc3VjY2Vzcyhg5omn6KGM562+5YiwICR7bGlrZUZv\ncnVtTGlzdC5sZW5ndGh9IOS4qui0tOWQp+WujOavlWApO1xuICAgICAgICAgICAgICAgICAgICAg\nIGxvYWRpbmcuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxu\nICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLpgJrnlKhcIixc\nbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4g\nICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAg\nICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAg\nICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5qOA5rWL6aqo5p625bGP\nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfdGllYmFfY2hlY2tTa2VsZXRvblwiLFxu\nICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4g\nICAgICAgICAgICAgICAgICAgIFwi5b2T6aG16Z2i5Yqg6L295a6M5q+V5ZCO5qOA5rWL5Yiw6L+Y\n5piv6aqo5p625bGP77yM5bCG5Lya6Ieq5Yqo5Yi35paw6aG16Z2iXCJcbiAgICAgICAgICAgICAg\nICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAg\nXCLoh6rliqjph43lrprlkJHoh7PkuLvln5\/lkI1cIixcbiAgICAgICAgICAgICAgICAgICAgXCJi\nYWlkdV90aWViYV9hdXRvSnVtcFRvTWFpbkhvc3RcIixcbiAgICAgICAgICAgICAgICAgICAgZmFs\nc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLl\nn5\/lkI3kuLpuYmEuYmFpZHUuY29t44CBc3RhdGljLnRpZWJhLmJhaWR1LmNvbS4uLuetieaXtuiH\nquWKqOmHjeWumuWQkeiHs3RpZWJhLmJhaWR1LmNvbVwiXG4gICAgICAgICAgICAgICAgICApLFxu\nICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi6Ieq5Yqo\n6Lez6L2s6ZO+5o6lXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHUtdGllYmEtY2hlY2tV\ncmwtYXV0b0p1bXBVcmxcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAg\nICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuWcqOmTvuaOpemqjOivgemh\ntemdouiHquWKqOi3s+i9rOmTvuaOpVwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAg\nICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAg\nICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuaQnOe0ouWKn+iDvVwiLFxuICAgICAgICAg\nICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAg\nICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTog\nXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLlkK\/nlKhcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJiYWlkdV90aWViYV9hZGRfc2VhcmNoXCIsXG4gICAgICAgICAgICAgICAgICAgIHRy\ndWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLl\nnKjotLTlhoXlkozlkKflhoXlj7PkuIrop5Lmt7vliqDmkJzntKLmjInpkq5cIlxuICAgICAgICAg\nICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAg\nICAgICBcIuiOt+WPluivpue7huS\/oeaBr1wiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1\nX3RpZWJhX3NlYXJjaF9vcHRfdXNlcl9pbmZvXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUs\nXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlsIbm\nkJzntKLnu5PmnpznmoTjgJDnlKjmiLflkI1cL+WktOWDj+OAkeabv+aNouaIkOivt+axguiOt+WP\nlueahOOAkOeUqOaIt+WQjVwv5aS05YOP44CRXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAg\nICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLkvb\/nlKjjgJDm\nkJzntKLnu7zlkIjjgJFcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV90aWViYV91c2Vf\naHlicmlkX3NlYXJjaFwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAg\nICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuS9v+eUqOi0tOWQp+enu+WK\nqOerr+eahOaQnOe0ouWKn+iDvVwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAg\nICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5Zyw5Z2A5Y+C5pWw6K+G5Yir\nXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfdGllYmEtZXhlY0J5VXJsU2VhcmNoUGFy\nYW1zXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAo\nZXZlbnQsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gXCJodHRwczpcL1wvZ3JlYXN5Zm9yay5v\ncmdcL3poLUNOXC9zY3JpcHRzXC80MTgzNDktJUU3JUE3JUJCJUU1JThBJUE4JUU3JUFCJUFGLSVF\nNyU5OSVCRSVFNSVCQSVBNiVFNyVCMyVCQiVFNCVCQyU5OCVFNSU4QyU5NlwvZGlzY3Vzc2lvbnNc\nLzI1MjUzNFwiO1xuICAgICAgICAgICAgICAgICAgICAgIGxldCBpc09rID0gZ2xvYmFsVGhpcy5j\nb25maXJtKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCLluK7liqnmlofmoaPihpMg54K55Ye7\n56Gu5a6a6Ieq5Yqo5omT5byA5paH5qGj5Zyw5Z2A4oaTXFxuXCIgKyB1cmxcbiAgICAgICAgICAg\nICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChpc09rKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xuICAgICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAg\nICAgXCLlvIDlkK\/lkI7lj6\/lnKjnibnlrppVcmzmiafooYzmkJzntKLlip\/og71cIlxuICAgICAg\nICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLl\nsY\/olL1cIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZv\ncm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAg\nICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xu\nICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP\n6JS944CR6K+E6K666L6T5YWl5qGGXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHUtdGll\nYmEtYmxvY2tDb21tZW50SW5wdXRcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAg\nICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlsY\/olL3lhYPn\ntKBcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAg\nICAgdGV4dDogXCLliqvmjIFcL+aLpuaIqlwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVu\ndVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAg\nICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAg\nICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAg\nICAgICAgICAgICAgXCLliqvmjIEt5ZSk6YaSQXBwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwi\nYmFpZHVfdGllYmFfaGlqYWNrX3dha2VfdXBcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2Us\nXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLpmLvm\nraLllKTphpLosIPnlKhBcHBcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAg\nICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuS8quijheWuouaIt+err+W3suiw\ng+eUqFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3RpZWJhX2NsaWVudENhbGxNYXNx\ndWVyYWRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAg\nIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLpmLvmraLlvLnnqpdcIlxuICAgICAgICAg\nICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29u\nc3QgUGFuZWxXZW5LdVNldHRpbmdVSSA9IHtcbiAgICBpZDogXCJiYWlkdS1wYW5lbC1jb25maWct\nd2Vua3VcIixcbiAgICB0aXRsZTogXCLmloflupNcIixcbiAgICBoZWFkZXJUaXRsZTogXCLnmb7l\nuqbmloflupM8YnIgXC8+d2suYmFpZHUuY29tPGJyIFwvPnRhbmJpLmJhaWR1LmNvbVwiLFxuICAg\nIGlzRGVmYXVsdDogQmFpZHVSb3V0ZXIuaXNXZW5LdSxcbiAgICBzY3JvbGxUb0RlZmF1bHRWaWV3\nOiB0cnVlLFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwi5bGP6JS9XCIs\nXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICBV\nSVN3aXRjaChcIuOAkOWxj+iUveOAkeS8muWRmOeyvumAiVwiLCBcImJhaWR1X3dlbmt1X2Jsb2Nr\nX21lbWJlcl9waWNrc1wiLCB0cnVlKSxcbiAgICAgICAgICBVSVN3aXRjaChcIuOAkOWxj+iUveOA\nkUFQUOeyvumAiVwiLCBcImJhaWR1X3dlbmt1X2Jsb2NraW5nX2FwcF9mZWF0dXJlZFwiLCB0cnVl\nKSxcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR55u45YWz\n5paH5qGjXCIsXG4gICAgICAgICAgICBcImJhaWR1X3dlbmt1X2Jsb2NraW5nX3JlbGF0ZWRfZG9j\ndW1lbnRzXCIsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICksXG4gICAgICAgICAgVUlT\nd2l0Y2goXG4gICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6lemDqOW3peWFt+agj1wiLFxuICAg\nICAgICAgICAgXCJiYWlkdV93ZW5rdV9ibG9ja2luZ19ib3R0b21fdG9vbGJhclwiLFxuICAgICAg\nICAgICAgZmFsc2VcbiAgICAgICAgICApLFxuICAgICAgICAgIFVJU3dpdGNoKFwi44CQ5bGP6JS9\n44CR5LiL5LiA56+H5oyJ6ZKuXCIsIFwiYmFpZHVfd2Vua3Vfc2hpZWxkX25leHRfYnRuXCIsIGZh\nbHNlKSxcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5paH\n5qGj5Yqp5omLXCIsXG4gICAgICAgICAgICBcImJhaWR1X3dlbmt1X2Jsb2NrRG9jdW1lbnRBc3Np\nc3RhbnRcIixcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAg\nICAgICAgXCLlj7PkuIvop5LnmoTmgqzmta7mjInpkq5cIlxuICAgICAgICAgIClcbiAgICAgICAg\nXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgUGFuZWxCYWlLZVNldHRpbmdVSSA9IHtc\nbiAgICBpZDogXCJiYWlkdS1wYW5lbC1jb25maWctYmFpa2VcIixcbiAgICB0aXRsZTogXCLnmb7n\np5FcIixcbiAgICBoZWFkZXJUaXRsZTogXCLnmb7luqbnmb7np5E8YnIgXC8+YmFpa2UuYmFpZHUu\nY29tPGJyIFwvPndhcGJhaWtlLmJhaWR1LmNvbVwiLFxuICAgIGlzRGVmYXVsdCgpIHtcbiAgICAg\nIHJldHVybiBCYWlkdVJvdXRlci5pc0JhaUtlKCk7XG4gICAgfSxcbiAgICBzY3JvbGxUb0RlZmF1\nbHRWaWV3OiB0cnVlLFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwiXCIs\nXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICB7\nXG4gICAgICAgICAgICB0ZXh0OiBcIuS7luivtFwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246\nIFwiXC90YXNodW9cIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAg\nICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWx\nj+iUvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAg\nICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAg\nICAgIFwi44CQ5bGP6JS944CR5bqV6YOo5bm\/5ZGKXCIsXG4gICAgICAgICAgICAgICAgICAgIFwi\nYmFpZHVfYmFpa2VfdGFzaHVvX3JlbW92ZV9ib3R0b21fYWRcIixcbiAgICAgICAgICAgICAgICAg\nICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSxc\nbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxu\nICAgICAgICBmb3JtczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi5Yqr5oyB\nXCIsXG4gICAgICAgICAgICB0eXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3Jtczog\nW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCLliqvmjIFCb3hcIixc\nbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6\nIFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcImlz\nQm94XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHUtYmFpa2UtQm94LWlzQm94XCIsXG4g\nICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAg\nICAgICAgICAgICAgICAgICAgXCJCb3guaXNCb3jlkoxCb3guJGlzQm945by65Yi26L+U5ZuedHJ1\nZVwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4g\nICAgICAgICAgICAgICAgICAgIFwiaXNMaXRlQm94XCIsXG4gICAgICAgICAgICAgICAgICAgIFwi\nYmFpZHUtYmFpa2UtQm94LWlzTGl0ZUJveFwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxc\nbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIkJveC5p\nc0xpdGVCb3jlkoxCb3guJGlzTGl0ZUJveOW8uuWItui\/lOWbnnRydWVcIlxuICAgICAgICAgICAg\nICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAg\nICBcImlzSW5mb0JveFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1LWJhaWtlLUJveC1p\nc0luZm9Cb3hcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAg\nICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCJCb3guaXNJbmZvQm945ZKMQm94LiRp\nc0luZm9Cb3jlvLrliLbov5Tlm550cnVlXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAg\nICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCJpc0lPU1wiLFxuICAg\nICAgICAgICAgICAgICAgICBcImJhaWR1LWJhaWtlLUJveC1pc0lPU1wiLFxuICAgICAgICAgICAg\nICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAg\nICAgICAgICBcIkJveC5pc0lPU+WSjEJveC4kaXNJT1PlvLrliLbov5Tlm550cnVlXCJcbiAgICAg\nICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAg\nICAgICAgICAgXCJpc0FuZHJvaWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS1iYWlr\nZS1Cb3gtaXNBbmRyb2lkXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAg\nICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwiQm94LmlzQW5kcm9pZOWS\njEJveC4kaXNBbmRyb2lk5by65Yi26L+U5ZuedHJ1ZVwiXG4gICAgICAgICAgICAgICAgICApLFxu\nICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwiYW5kcm9p\nZC5pbnZva2VBcHBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS1iYWlrZS1Cb3gtYW5k\ncm9pZC5pbnZva2VBcHBcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAg\nICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIkJveC5hbmRyb2lkLmludm9r\nZUFwcCgp572u56m6XCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCJhbmRyb2lkLmludm9rZUxpdGVBcHBcIixc\nbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdS1iYWlrZS1Cb3gtYW5kcm9pZC5pbnZva2VMaXRl\nQXBwXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZv\naWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCJCb3guYW5kcm9pZC5pbnZva2VMaXRlQXBwKCnn\nva7nqbpcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNo\nKFxuICAgICAgICAgICAgICAgICAgICBcImlvcy5pbnZva2VBcHBcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJiYWlkdS1iYWlrZS1Cb3gtaW9zLmludm9rZUFwcFwiLFxuICAgICAgICAgICAgICAg\nICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAg\nICAgIFwiQm94Lmlvcy5pbnZva2VBcHAoKee9ruepulwiXG4gICAgICAgICAgICAgICAgICApXG4g\nICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAg\nICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgXVxuICB9O1xuICBjb25zdCBQYW5lbFpoaURh\nb1NldHRpbmdVSSA9IHtcbiAgICBpZDogXCJiYWlkdS1wYW5lbC1jb25maWctemhpZGFvXCIsXG4g\nICAgdGl0bGU6IFwi55+l6YGTXCIsXG4gICAgaGVhZGVyVGl0bGU6IFwi55m+5bqm55+l6YGTPGJy\nIFwvPnpoaWRhby5iYWlkdS5jb21cIixcbiAgICBpc0RlZmF1bHQoKSB7XG4gICAgICByZXR1cm4g\nQmFpZHVSb3V0ZXIuaXNaaGlEYW8oKTtcbiAgICB9LFxuICAgIHNjcm9sbFRvRGVmYXVsdFZpZXc6\nIHRydWUsXG4gICAgZm9ybXM6IFtcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCLlsY\/olL1cIixc\nbiAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3JtczogW1xuICAgICAgICAgIFVJ\nU3dpdGNoKFxuICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHmjqjojZDmm7TlpJrnsr7lvanlhoXl\nrrlcIixcbiAgICAgICAgICAgIFwiYmFpZHVfemhpZGFvX2Jsb2NrX3JlY29tbWVuZF9tb3JlX2V4\nY2l0aW5nX2NvbnRlbnRcIixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgICApLFxuICAgICAg\nICAgIFVJU3dpdGNoKFwi44CQ5bGP6JS944CR55u45YWz6Zeu6aKYXCIsIFwiYmFpZHVfemhpZGFv\nX2Jsb2NrX3JlbGF0ZWRfaXNzdWVzXCIsIHRydWUpLFxuICAgICAgICAgIFVJU3dpdGNoKFwi44CQ\n5bGP6JS944CR5YW25LuW5Zue562UXCIsIFwiYmFpZHVfemhpZGFvX2Jsb2NrX290aGVyX2Fuc3dl\ncnNcIiwgZmFsc2UpLFxuICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgXCLjgJDlsY\/o\nlL3jgJHpobbpg6jmta7liqjlt6XlhbfmoI9cIixcbiAgICAgICAgICAgIFwiYmFpZHVfemhpZGFv\nX3NoaWVsZF90b3BfZml4ZWRfdG9vbGJhclwiLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAg\nICApXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFBhbmVsRmFuWWlT\nZXR0aW5nVUkgPSB7XG4gICAgaWQ6IFwiYmFpZHUtcGFuZWwtY29uZmlnLWZhbnlpXCIsXG4gICAg\ndGl0bGU6IFwi57+76K+RXCIsXG4gICAgaGVhZGVyVGl0bGU6IFwi55m+5bqm57+76K+RPGJyIFwv\nPmZhbnlpLmJhaWR1LmNvbTxiciBcLz5mYW55aS1hcHAuYmFpZHUuY29tXCIsXG4gICAgaXNEZWZh\ndWx0KCkge1xuICAgICAgcmV0dXJuIEJhaWR1Um91dGVyLmlzRmFuWWkoKSB8fCBCYWlkdVJvdXRl\nci5pc0ZhbllpQXBwKCk7XG4gICAgfSxcbiAgICBzY3JvbGxUb0RlZmF1bHRWaWV3OiB0cnVlLFxu\nICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgIHR5cGU6\nIFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0\nZXh0OiBcIkFwcFwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAg\nICAgZGVzY3JpcHRpb246IFwiZmFueWktYXBwXCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAg\nICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgICAg\nICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAg\nICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeS4k+ag\nj+S\/oeaBr1wiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2ZhbnlpX2FwcF9zaGllbGRf\nY29sdW1uX2luZm9ybWF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAg\nICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAg\nICAgICAgIFwi44CQ5bGP6JS944CR5Li65L2g5o6o6I2QXCIsXG4gICAgICAgICAgICAgICAgICAg\nIFwiYmFpZHVfZmFueWlfYXBwX3NoaWVsZF9yZWNvbW1lbmRlZF9mb3JfeW91XCIsXG4gICAgICAg\nICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAg\nICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5oiR6KaB6Lef\n6K+7XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfZmFueWlfYXBwX3NoaWVsZF9pX25l\nZWRfdG9fZm9sbG93X2Fsb25nXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAg\nICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAg\nICB0ZXh0OiBcIlwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBb\nXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAg\nIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAg\nIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwi\nZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlT\nd2l0Y2goXCLoh6rliqjogZrnhKbovpPlhaXmoYZcIiwgXCJiYWlkdV9mYW55aV9hdXRvX2ZvY3Vz\nXCIsIHRydWUpXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuWxj+iU\nvVwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6\nIFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAg\nICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAg\nICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3j\ngJHlupXpg6jmjqjojZBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV9mYW55aV9yZWNv\nbW1lbmRlZF9zaGllbGRpbmdfYm90dG9tXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWVcbiAg\nICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAg\nICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHlupXpg6jlhbblroNcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJiYWlkdV9mYW55aV9vdGhlcl9zaGllbGRpbmdfYm90dG9tXCIsXG4gICAgICAgICAg\nICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAg\nICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFBhbmVsTWFwU2V0dGluZ1VJID0ge1xuICAgIGlk\nOiBcImJhaWR1LXBhbmVsLWNvbmZpZy1tYXBcIixcbiAgICB0aXRsZTogXCLlnLDlm75cIixcbiAg\nICBoZWFkZXJUaXRsZTogXCLnmb7luqblnLDlm748YnIgXC8+bWFwLmJhaWR1LmNvbVwiLFxuICAg\nIGlzRGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiBCYWlkdVJvdXRlci5pc01hcCgpO1xuICAgIH0s\nXG4gICAgc2Nyb2xsVG9EZWZhdWx0VmlldzogdHJ1ZSxcbiAgICBmb3JtczogW1xuICAgICAge1xu\nICAgICAgICB0ZXh0OiBcIuWKq+aMgVwv5oum5oiqXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNc\nIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi\n5Yqr5oyBRWxlbWVudC5hcHBlbmRDaGlsZFwiLFxuICAgICAgICAgICAgXCJiYWlkdV9tYXBfaGlq\nYWNrLWVsZW1lbnQtYXBwZW5kQ2hpbGRcIixcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAg\nICB2b2lkIDAsXG4gICAgICAgICAgICBcIumYu+atouWUpOmGkuiwg+eUqEFwcFwiXG4gICAgICAg\nICAgKSxcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi5Yqr5oyBJC5hcHBlbmRc\nIixcbiAgICAgICAgICAgIFwiYmFpZHVfbWFwX2hpamFjay1qUXVlcnktYXBwZW5kXCIsXG4gICAg\nICAgICAgICB0cnVlLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgXCLpmLvmraLl\nlKTphpLosIPnlKhBcHBcIlxuICAgICAgICAgICksXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAg\nICAgICAgICBcIuWKq+aMgXNldFRpbWVvdXRcIixcbiAgICAgICAgICAgIFwiYmFpZHVfbWFwX2hp\namFjay1zZXRUaW1lb3V0XCIsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgdm9pZCAw\nLFxuICAgICAgICAgICAgXCLpmLvmraLllKTphpLosIPnlKhBcHDlkozliarotLTmnb\/lpI3liLZc\nIlxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3Qg\nUGFuZWxBaVFpQ2hhU2V0dGluZ1VJID0ge1xuICAgIGlkOiBcImJhaWR1LXBhbmVsLWNvbmZpZy1h\naXFpY2hhXCIsXG4gICAgdGl0bGU6IFwi54ix5LyB5p+lXCIsXG4gICAgaGVhZGVyVGl0bGU6IFwi\n54ix5LyB5p+lPGJyIFwvPmFpcWljaGEuYmFpZHUuY29tXCIsXG4gICAgaXNEZWZhdWx0KCkge1xu\nICAgICAgcmV0dXJuIEJhaWR1Um91dGVyLmlzQWlRaUNoYSgpO1xuICAgIH0sXG4gICAgc2Nyb2xs\nVG9EZWZhdWx0VmlldzogdHJ1ZSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0ZXh0\nOiBcIuWxj+iUvVwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBb\nXG4gICAgICAgICAgVUlTd2l0Y2goXCLjgJDlsY\/olL3jgJHova7mkq3lm75cIiwgXCJiYWlkdV9h\naXFpY2hhX3NoaWVsZF9jYXJvdXNlbFwiLCB0cnVlKSxcbiAgICAgICAgICBVSVN3aXRjaChcbiAg\nICAgICAgICAgIFwi44CQ5bGP6JS944CR6KGM5Lia54Ot54K55paw6Ze7XCIsXG4gICAgICAgICAg\nICBcImJhaWR1X2FpcWljaGFfc2hpZWxkX2luZHVzdHJ5X2hvc3RfbmV3c1wiLFxuICAgICAgICAg\nICAgdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAg\nY29uc3QgUGFuZWxIYW9LYW5TZXR0aW5nVUkgPSB7XG4gICAgaWQ6IFwiYmFpZHUtcGFuZWwtY29u\nZmlnLWhhb2thblwiLFxuICAgIHRpdGxlOiBcIuWlveeci+inhumikVwiLFxuICAgIGhlYWRlclRp\ndGxlOiBcIuWlveeci+inhumikTxiciBcLz5oYW9rYW4uYmFpZHUuY29tXCIsXG4gICAgaXNEZWZh\ndWx0KCkge1xuICAgICAgcmV0dXJuIEJhaWR1Um91dGVyLmlzSGFvS2FuKCk7XG4gICAgfSxcbiAg\nICBzY3JvbGxUb0RlZmF1bHRWaWV3OiB0cnVlLFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAg\nICAgIHRleHQ6IFwi5bGP6JS9XCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAg\nZm9ybXM6IFtcbiAgICAgICAgICBVSVN3aXRjaChcIuOAkOWxj+iUveOAkeeMnOS9oOWWnOasolwi\nLCBcImJhaWR1X2hhb2thbl9zaGllbGRfbWF5X2Fsc29fbGlrZVwiLCB0cnVlKSxcbiAgICAgICAg\nICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5LuK5pel54Ot5pKt5qac5Y2V\nXCIsXG4gICAgICAgICAgICBcImJhaWR1X2hhb2thbl9zaGllbGRfdG9kYXlfc19ob3RfbGlzdFwi\nLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICksXG4gICAgICAgICAgVUlTd2l0Y2goXG4g\nICAgICAgICAgICBcIuOAkOWxj+iUveOAkeWPs+S+p+W3peWFt+agj1wiLFxuICAgICAgICAgICAg\nXCJiYWlkdV9oYW9rYW5fc2hpZWxkX3JpZ2h0X3ZpZGVvX2FjdGlvblwiLFxuICAgICAgICAgICAg\ndHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAg\ndGV4dDogXCLlip\/og71cIixcbiAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3Jt\nczogW1xuICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgXCLmkq3mlL7op4bpopHoh6rl\niqjov5vlhaXlhajlsY9cIixcbiAgICAgICAgICAgIFwiYmFpZHVfaGFva2FuX3BsYXlfdmlkZW9f\nYW5kX2F1dG9tYXRpY2FsbHlfZW50ZXJfZnVsbF9zY3JlZW5cIixcbiAgICAgICAgICAgIGZhbHNl\nXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0ZXh0\nOiBcIuWKq+aMgVwv5oum5oiqXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAg\nZm9ybXM6IFtcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi5oum5oiqLeWUpOmG\nkkFwcFwiLFxuICAgICAgICAgICAgXCJiYWlkdV9oYW9rYW5faGlqYWNrX3dha2V1cFwiLFxuICAg\nICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgIFwi6Zi75q2i\n5ZSk6YaS6LCD55SoQXBwXCJcbiAgICAgICAgICApXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBd\nXG4gIH07XG4gIGNvbnN0IFBhbmVsR3JhcGhTZXR0aW5nVUkgPSB7XG4gICAgaWQ6IFwiYmFpZHUt\ncGFuZWwtY29uZmlnLWdyYXBoXCIsXG4gICAgdGl0bGU6IFwi6K+G5Zu+XCIsXG4gICAgaGVhZGVy\nVGl0bGU6IFwi55m+5bqm6K+G5Zu+PGJyIFwvPmdyYXBoLmJhaWR1LmNvbVwiLFxuICAgIGlzRGVm\nYXVsdCgpIHtcbiAgICAgIHJldHVybiBCYWlkdVJvdXRlci5pc0dyYXBoKCk7XG4gICAgfSxcbiAg\nICBzY3JvbGxUb0RlZmF1bHRWaWV3OiB0cnVlLFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAg\nICAgIHRleHQ6IFwi5Yqf6IO9XCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAg\nZm9ybXM6IFtcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ6YeN5p6E44CR\n6K+G5Zu+5LiA5LiLXCIsXG4gICAgICAgICAgICBcImJhaWR1LWdyYXBoLXJlcGFpckhvbWVSZWNv\nZ25pdGlvblBpY3R1cmVcIixcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICB2b2lkIDAs\nXG4gICAgICAgICAgICBcIumHjeaehOS4u+mhteeahOivhuWbvuS4gOS4i++8jOWwseWPr+S7peeb\ntOaOpeeCueWHu+S4iuS8oOWbvueJh+i\/m+ihjOaQnOe0olwiXG4gICAgICAgICAgKSxcbiAgICAg\nICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ6YeN5p6E44CR5pCc57Si5oyJ6ZKuXCIs\nXG4gICAgICAgICAgICBcImJhaWR1LWdyYXBoLXJlcGFpclNlYXJjaEJ1dHRvblwiLFxuICAgICAg\nICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgIFwi6YeN5p6E5Li7\n6aG155qE5b6A5LiL5ruR5Yqo5Y+z5LiL6KeS5Ye6546w55qE5pCc57Si5Zu+5qCH5oyJ6ZKuXCJc\nbiAgICAgICAgICApLFxuICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgXCLjgJDph43m\nnoTjgJHph43mi41cIixcbiAgICAgICAgICAgIFwiYmFpZHUtZ3JhcGgtcmVwYWlyUmV0YWtlQnV0\ndG9uXCIsXG4gICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAg\nICAgXCLlnKjlt7LmkJzntKLlh7rnm7jlhbPnu5PmnpznmoTnlYzpnaLkuK3nmoTph43mnoTjgJDp\nh43mi43jgJHmjInpkq5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAg\nICAgICAgICBcIuS\/ruWkjeaQnOe0ouaXoOe7k+aenFwiLFxuICAgICAgICAgICAgXCJiYWlkdS1n\ncmFwaC1yZXBhaXJTZWFyY2hOb1Jlc3VsdFwiLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAg\nICAgIHZvaWQgMCxcbiAgICAgICAgICAgIFwi5aaC5p6c5Ye6546w6K+G5Zu+5rKh57uT5p6c77yM\n6YeN5paw6K+G5Yir77yM5Y+v6IO95piv5Zug5Li65ZCO6Z2i5Y+C5pWw5aSa5LqGdHBsX2Zyb209\ncGPnmoTpl67pophcIlxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAg\nfTtcbiAgY29uc3QgUGFuZWxZaVlhblNldHRpbmdVSSA9IHtcbiAgICBpZDogXCJiYWlkdS1wYW5l\nbC1jb25maWcteWl5YW5cIixcbiAgICB0aXRsZTogXCLmloflv4PkuIDoqIBcIixcbiAgICBoZWFk\nZXJUaXRsZTogXCLmloflv4PkuIDoqIA8YnIgXC8+eWl5YW4uYmFpZHUuY29tXCIsXG4gICAgaXNE\nZWZhdWx0KCkge1xuICAgICAgcmV0dXJuIEJhaWR1Um91dGVyLmlzWWlZYW4oKTtcbiAgICB9LFxu\nICAgIHNjcm9sbFRvRGVmYXVsdFZpZXc6IHRydWUsXG4gICAgZm9ybXM6IFtcbiAgICAgIHtcbiAg\nICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICBmb3Jt\nczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAg\nICAgICAgIHRleHQ6IFwi5Yqf6IO9XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAg\nICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAg\nIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAg\nIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuWcsOWdgOWPguaVsOivhuWIq1wiLFxu\nICAgICAgICAgICAgICAgICAgICBcImJhaWR1X3lpeWFuLWV4ZWNCeVVybFNlYXJjaFBhcmFtc1wi\nLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50\nLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IFwiaHR0cHM6XC9cL2dyZWFzeWZvcmsub3JnXC96\naC1DTlwvc2NyaXB0c1wvNDE4MzQ5LSVFNyVBNyVCQiVFNSU4QSVBOCVFNyVBQiVBRi0lRTclOTkl\nQkUlRTUlQkElQTYlRTclQjMlQkIlRTQlQkMlOTglRTUlOEMlOTZcL2Rpc2N1c3Npb25zXC8yNTQz\nMzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgaXNPayA9IGdsb2JhbFRoaXMuY29uZmly\nbShcbiAgICAgICAgICAgICAgICAgICAgICAgIFwi5biu5Yqp5paH5qGj4oaTIOeCueWHu+ehruWu\nmuiHquWKqOaJk+W8gOaWh+aho+WcsOWdgOKGk1xcblwiICsgdXJsXG4gICAgICAgICAgICAgICAg\nICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNPaykge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFwi\n5byA5ZCv5ZCO5Y+v5Zyo54m55a6aVXJs5omn6KGM5pCc57Si5Yqf6IO9XCJcbiAgICAgICAgICAg\nICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1l\nbnVcIixcbiAgICAgICAgICAgIHRleHQ6IFwi5bGP6JS9XCIsXG4gICAgICAgICAgICBmb3Jtczog\nW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAg\nICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAg\nICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOA\nkeaWh+Wtl1wv5Zu+54mH5rC05Y2wXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfeWl5\nYW5fcmVtb3ZlX2FpX21hc2tcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAg\nICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29u\nc3QgUGFuZWxDaGF0U2V0dGluZ1VJID0ge1xuICAgIGlkOiBcImJhaWR1LXBhbmVsLWNvbmZpZy1j\naGF0XCIsXG4gICAgdGl0bGU6IFwiQUnkvJnkvLRcIixcbiAgICBoZWFkZXJUaXRsZTogXCLmkJzn\ntKJBSeS8meS8tDxiciBcLz5jaGF0LmJhaWR1LmNvbVwiLFxuICAgIGlzRGVmYXVsdCgpIHtcbiAg\nICAgIHJldHVybiBCYWlkdVJvdXRlci5pc0NoYXQoKTtcbiAgICB9LFxuICAgIHNjcm9sbFRvRGVm\nYXVsdFZpZXc6IHRydWUsXG4gICAgZm9ybXM6IFtcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCLl\nsY\/olL1cIixcbiAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3JtczogW1xuICAg\nICAgICAgIFVJU3dpdGNoKFwi44CQ5bGP6JS944CR5paH5a2XXC\/lm77niYfmsLTljbBcIiwgXCJi\nYWlkdV9jaGF0X3JlbW92ZV9haV9tYXNrXCIsIHRydWUpXG4gICAgICAgIF1cbiAgICAgIH1cbiAg\nICBdXG4gIH07XG4gIGNvbnN0IFBhbmVsRWFzeUxlYXJuU2V0dGluZ1VJID0ge1xuICAgIGlkOiBc\nImJhaWR1LXBhbmVsLWNvbmZpZy1lYXN5LWxlYXJuXCIsXG4gICAgdGl0bGU6IFwi5pWZ6IKyXCIs\nXG4gICAgaGVhZGVyVGl0bGU6IFwi55m+5bqm5pWZ6IKyPGJyIFwvPmVhc3lsZWFybi5iYWlkdS5j\nb208YnIgXC8+dWY5a3loLnNtYXJ0YXBwcy5jblwiLFxuICAgIGlzRGVmYXVsdCgpIHtcbiAgICAg\nIHJldHVybiBCYWlkdVJvdXRlci5pc0Vhc3lMZWFybigpIHx8IEJhaWR1Um91dGVyLmlzTWluaUpp\nYW9ZdSgpO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9EZWZhdWx0VmlldzogdHJ1ZSxcbiAgICBmb3Jt\nczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICB0eXBlOiBcImZvcm1z\nXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLl\nsI\/nqIvluo9cIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAg\nIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWxj+iU\nvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBm\nb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAg\nIFwi44CQ5bGP6JS944CR5bqV6YOo5LiL5ouJ6I+c5Y2VXCIsXG4gICAgICAgICAgICAgICAgICAg\nIFwibWluaV9iYWlkdV9qaWFveXVfc2hpZWxkX2JvdHRvbV9wdWxsX2Rvd25fbWVudVwiLFxuICAg\nICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAg\nICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeWkp+Wu\ntui\/mOWcqOaQnFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm1pbmlfYmFpZHVfamlhb3l1LWJs\nb2NrRXZlcnlPbmVTZWFyY2hcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAg\nICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAg\nIHRleHQ6IFwiXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtc\nbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICAgICAg\ndHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAg\ne1xuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJm\nb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3\naXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLop6PplIHpobbpg6jmkJzntKLmoYZcIixcbiAg\nICAgICAgICAgICAgICAgICAgXCJiYWlkdV9lYXN5bGVhcm5fdW5sb2NraW5nX3RvcF9zZWFyY2hf\naW5wdXRcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKSxc\nbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuino+mU\ngeaQnOmimOS4iumZkFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2Vhc3lsZWFybl91\nbmxvY2tpbmdfdGhlX3VwcGVyX2xpbWl0X29mX3NlYXJjaF9xdWVzdGlvbnNcIixcbiAgICAgICAg\nICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAg\nIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuiHquWKqOaYvuekuuetlOahiFwiLFxu\nICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2Vhc3lsZWFybl9hdXRvX3Nob3dfYW5zd2VyXCIs\nXG4gICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAg\nICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxu\nICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi5bGP6JS9XCIsXG4gICAgICAgICAgICB0\neXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7\nXG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZv\ncm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dp\ndGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeacrOmimOivleWNt1wiLFxu\nICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2Vhc3lsZWFybl9zaGllbGRfdGhpc19xdWVzdGlv\nbl9wYXBlclwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAg\nKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOA\nkOWxj+iUveOAkeacrOWNt+WlvemimFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2Vh\nc3lsZWFybl9zaGllbGRfZ29vZF9xdWVzdGlvbnNfaW5fdGhpc192b2x1bWVcIixcbiAgICAgICAg\nICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAg\nICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHnm7jlhbPor5Xl\njbdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJiYWlkdV9lYXN5bGVhcm5fc2hpZWxkX3JlbGF0\nZWRfdGVzdF9wYXBlcnNcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAg\nICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAg\nICAgXCLjgJDlsY\/olL3jgJHop4bpopHorrLop6NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJi\nYWlkdV9lYXN5bGVhcm5fc2hpZWxkX3ZpZGVvX2V4cGxhbmF0aW9uXCIsXG4gICAgICAgICAgICAg\nICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlT\nd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5a2m6Zy456yU6K6wXCIs\nXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfZWFzeWxlYXJuX3NoaWVsZF94dWViYV9ub3Rl\nc1wiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKSxcbiAg\nICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iU\nveOAkeW6lemDqOW3peWFt+agj1wiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2Vhc3ls\nZWFybl9zaGllbGRfYm90dG9tX3Rvb2xiYXJcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2Vc\nbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICBdXG4g\nIH07XG4gIGNvbnN0IFBhbmVsQWlTdHVkeVNldHRpbmdVSSA9IHtcbiAgICBpZDogXCJiYWlkdS1w\nYW5lbC1jb25maWctYWktc3R1ZHlcIixcbiAgICB0aXRsZTogXCLnn6XkuobniLHlraZcIixcbiAg\nICBoZWFkZXJUaXRsZTogXCLnn6XkuobniLHlraY8YnIgXC8+YWlzdHVkeS5iYWlkdS5jb208YnIg\nXC8+aXNpdGUuYmFpZHUuY29tXC9zaXRlXC93anoydGRseVwiLFxuICAgIGlzRGVmYXVsdCgpIHtc\nbiAgICAgIHJldHVybiBCYWlkdVJvdXRlci5pc0FpU3R1ZHkoKSB8fCBCYWlkdVJvdXRlci5pc0lT\naXRlKCk7XG4gICAgfSxcbiAgICBzY3JvbGxUb0RlZmF1bHRWaWV3OiB0cnVlLFxuICAgIGZvcm1z\nOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNc\nIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuef\npeS6hueIseWtplwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiaXNpdGVcIixcbiAgICAg\nICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAg\nICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWxj+iUvVwiLFxuICAgICAgICAgICAg\nICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAg\nICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5bqV\n6YOo5YWN6LS55Zyo57q\/5ZKo6K+iXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmFpZHVfaXNp\ndGVfd2p6MnRkbHlfc2hpZWxkQm90dG9tQmFyUm9vdENvbnRhaW5lclwiLFxuICAgICAgICAgICAg\nICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlT\nd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5Y+z5L6n5oKs5rWu5oyJ\n6ZKuLeafpeeci+abtOWkmlwiLFxuICAgICAgICAgICAgICAgICAgICBcImJhaWR1X2lzaXRlX3dq\nejJ0ZGx5X3NoaWVsZFJpZ2h0U2VlTW9yZVRvb2xCYXJcIixcbiAgICAgICAgICAgICAgICAgICAg\nZmFsc2VcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChc\nbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHlpKflrrbov5jlnKjnnItcIixcbiAg\nICAgICAgICAgICAgICAgICAgXCJiYWlkdV9pc2l0ZV93anoydGRseV9zaGllbGRBcnRpY2xlQm90\ndG9tXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgIClcbiAg\nICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAg\nICAgICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9y\nbXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0\nY2goXG4gICAgICAgICAgICAgICAgICAgIFwi6Ieq5Yqo5bGV5byA5YWo5paHXCIsXG4gICAgICAg\nICAgICAgICAgICAgIFwiYmFpZHVfaXNpdGVfd2p6MnRkbHlfYXV0b0V4cGFuZEZ1bGxUZXh0XCIs\nXG4gICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAg\nICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxu\nICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi55+l5LqG54ix5a2mXCIsXG4gICAgICAg\nICAgICBkZXNjcmlwdGlvbjogXCJhaXN0dWR5XCIsXG4gICAgICAgICAgICB0eXBlOiBcImRlZXBN\nZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAg\nICAgICAgdGV4dDogXCLlsY\/olL1cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIs\nXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6lemDqOW3peWFt+agj1wiLFxuICAg\nICAgICAgICAgICAgICAgICBcImJhaWR1X2FpX3N0dWR5X3NoaWVsZEJvdHRvbVRvb2xCYXJcIixc\nbiAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAg\nICAgICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAg\nICAgIHRleHQ6IFwi5Yqf6IO9XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxu\nICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAg\nICAgICAgICAgICAgICAgICAgXCLoh6rliqjlsZXlvIDlhajmlodcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJiYWlkdV9haV9zdHVkeV9hdXRvRXhwYW5kRnVsbFRleHRcIixcbiAgICAgICAgICAg\nICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAg\nICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgVUlTZWxlY3QgPSBmdW5jdGlvbih0ZXh0LCBrZXks\nIGRlZmF1bHRWYWx1ZSwgZGF0YSwgY2FsbGJhY2ssIGRlc2NyaXB0aW9uKSB7XG4gICAgbGV0IHNl\nbGVjdERhdGEgPSBbXTtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwiZnVuY3Rpb25cIikge1xu\nICAgICAgc2VsZWN0RGF0YSA9IGRhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0RGF0\nYSA9IGRhdGE7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICB0ZXh0LFxuICAgICAg\ndHlwZTogXCJzZWxlY3RcIixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgYXR0cmlidXRlczog\ne30sXG4gICAgICBwcm9wczoge30sXG4gICAgICBnZXRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJu\nIHRoaXMucHJvcHNbUFJPUFNfU1RPUkFHRV9BUEldLmdldChrZXksIGRlZmF1bHRWYWx1ZSk7XG4g\nICAgICB9LFxuICAgICAgY2FsbGJhY2soZXZlbnQsIGlzU2VsZWN0ZWRWYWx1ZSwgaXNTZWxlY3Rl\nZFRleHQpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gaXNTZWxlY3RlZFZhbHVlO1xuICAgICAgICBs\nb2cuaW5mbyhg6YCJ5oup77yaJHtpc1NlbGVjdGVkVGV4dH1gKTtcbiAgICAgICAgdGhpcy5wcm9w\nc1tQUk9QU19TVE9SQUdFX0FQSV0uc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9m\nIGNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBjYWxsYmFjayhldmVudCwg\ndmFsdWUsIGlzU2VsZWN0ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRhdGE6\nIHNlbGVjdERhdGFcbiAgICB9O1xuICAgIFJlZmxlY3Quc2V0KHJlc3VsdC5hdHRyaWJ1dGVzLCBB\nVFRSSUJVVEVfS0VZLCBrZXkpO1xuICAgIFJlZmxlY3Quc2V0KHJlc3VsdC5hdHRyaWJ1dGVzLCBB\nVFRSSUJVVEVfREVGQVVMVF9WQUxVRSwgZGVmYXVsdFZhbHVlKTtcbiAgICBSZWZsZWN0LnNldChy\nZXN1bHQucHJvcHMsIFBST1BTX1NUT1JBR0VfQVBJLCB7XG4gICAgICBnZXQoa2V5MiwgZGVmYXVs\ndFZhbHVlMikge1xuICAgICAgICByZXR1cm4gUG9wc1BhbmVsLmdldFZhbHVlKGtleTIsIGRlZmF1\nbHRWYWx1ZTIpO1xuICAgICAgfSxcbiAgICAgIHNldChrZXkyLCB2YWx1ZSkge1xuICAgICAgICBQ\nb3BzUGFuZWwuc2V0VmFsdWUoa2V5MiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJl\ndHVybiByZXN1bHQ7XG4gIH07XG4gIGNvbnN0IFVJVGV4dEFyZWEgPSBmdW5jdGlvbih0ZXh0LCBr\nZXksIGRlZmF1bHRWYWx1ZSwgZGVzY3JpcHRpb24sIGNoYW5nZUNhbGxCYWNrLCBwbGFjZWhvbGRl\nciA9IFwiXCIsIGRpc2FibGVkKSB7XG4gICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgIHRleHQsXG4g\nICAgICB0eXBlOiBcInRleHRhcmVhXCIsXG4gICAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICAgIHBy\nb3BzOiB7fSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBk\naXNhYmxlZCxcbiAgICAgIGdldFZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wc1tQ\nUk9QU19TVE9SQUdFX0FQSV0uZ2V0KGtleSwgZGVmYXVsdFZhbHVlKTtcbiAgICAgIH0sXG4gICAg\nICBjYWxsYmFjayhldmVudCwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5wcm9wc1tQUk9QU19TVE9S\nQUdFX0FQSV0uc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH07XG4gICAgUmVmbGVjdC5z\nZXQocmVzdWx0LmF0dHJpYnV0ZXMsIEFUVFJJQlVURV9LRVksIGtleSk7XG4gICAgUmVmbGVjdC5z\nZXQocmVzdWx0LmF0dHJpYnV0ZXMsIEFUVFJJQlVURV9ERUZBVUxUX1ZBTFVFLCBkZWZhdWx0VmFs\ndWUpO1xuICAgIFJlZmxlY3Quc2V0KHJlc3VsdC5wcm9wcywgUFJPUFNfU1RPUkFHRV9BUEksIHtc\nbiAgICAgIGdldChrZXkyLCBkZWZhdWx0VmFsdWUyKSB7XG4gICAgICAgIHJldHVybiBQb3BzUGFu\nZWwuZ2V0VmFsdWUoa2V5MiwgZGVmYXVsdFZhbHVlMik7XG4gICAgICB9LFxuICAgICAgc2V0KGtl\neTIsIHZhbHVlKSB7XG4gICAgICAgIFBvcHNQYW5lbC5zZXRWYWx1ZShrZXkyLCB2YWx1ZSk7XG4g\nICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgY29uc3QgUGFuZWxD\nb21tb25TZXR0aW5nVUkgPSB7XG4gICAgaWQ6IFwiYmFpZHUtcGFuZWwtY29uZmlnLWNvbW1vblwi\nLFxuICAgIHRpdGxlOiBcIumAmueUqFwiLFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAgICAg\nIHRleHQ6IFwiXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtc\nbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIlRvYXN06YWN572uXCIsXG4gICAgICAg\nICAgICB0eXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAg\nICAgICB7XG4gICAgICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICB0eXBl\nOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAg\nIFVJU2VsZWN0KFxuICAgICAgICAgICAgICAgICAgICBcIlRvYXN05L2N572uXCIsXG4gICAgICAg\nICAgICAgICAgICAgIFwicW1zZy1jb25maWctcG9zaXRpb25cIixcbiAgICAgICAgICAgICAgICAg\nICAgXCJib3R0b21cIixcbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAg\nICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcInRvcGxlZnRcIixcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHRleHQ6IFwi5bem5LiK6KeSXCJcbiAgICAgICAgICAgICAgICAg\nICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHZhbHVlOiBcInRvcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogXCLpobbpg6hc\nIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwidG9wcmlnaHRcIixcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHRleHQ6IFwi5Y+z5LiK6KeSXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxu\nICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBc\nImxlZnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFwi5bem6L65XCJcbiAgICAg\nICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIHZhbHVlOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAg\ndGV4dDogXCLkuK3pl7RcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAg\nICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwicmlnaHRcIixcbiAg\nICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFwi5Y+z6L65XCJcbiAgICAgICAgICAgICAgICAg\nICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHZhbHVlOiBcImJvdHRvbWxlZnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFwi\n5bem5LiL6KeSXCJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAg\nICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImJvdHRvbVwiLFxuICAgICAg\nICAgICAgICAgICAgICAgICAgdGV4dDogXCLlupXpg6hcIlxuICAgICAgICAgICAgICAgICAgICAg\nIH0sXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFs\ndWU6IFwiYm90dG9tcmlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFwi5Y+z\n5LiL6KeSXCJcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0s\nXG4gICAgICAgICAgICAgICAgICAgIChldmVudCwgaXNTZWxlY3RWYWx1ZSwgaXNTZWxlY3RUZXh0\nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oXCLorr7nva7lvZPliY1RbXNn\n5by55Ye65L2N572uXCIgKyBpc1NlbGVjdFRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9LFxu\nICAgICAgICAgICAgICAgICAgICBcIlRvYXN05pi+56S65Zyo6aG16Z2i5Lmd5a6r5qC855qE5L2N\n572uXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVNlbGVjdChc\nbiAgICAgICAgICAgICAgICAgICAgXCLmnIDlpJrmmL7npLrnmoTmlbDph49cIixcbiAgICAgICAg\nICAgICAgICAgICAgXCJxbXNnLWNvbmZpZy1tYXhudW1zXCIsXG4gICAgICAgICAgICAgICAgICAg\nIDMsXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRl\neHQ6IFwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAg\nICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHRleHQ6IFwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAg\nICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMyxcbiAgICAgICAg\nICAgICAgICAgICAgICAgIHRleHQ6IFwiM1wiXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAg\nICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogNCxc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFwiNFwiXG4gICAgICAgICAgICAgICAgICAg\nICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2\nYWx1ZTogNSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IFwiNVwiXG4gICAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAg\nICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi6ZmQ5Yi2VG9hc3TmmL7npLrnmoTmlbDp\nh49cIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgICAgICAgICBcIumAhuW6j+W8ueWHulwiLFxuICAgICAgICAgICAgICAgICAg\nICBcInFtc2ctY29uZmlnLXNob3dyZXZlcnNlXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNl\nLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5L+u\n5pS5VG9hc3TlvLnlh7rnmoTpobrluo9cIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAg\nICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4g\nICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCJDb29raWXphY3nva5cIixcbiAgICAgICAg\nICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAg\nICAgIHtcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHR5cGU6\nIFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAg\nVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5ZCv55SoXCIsXG4gICAgICAgICAgICAg\nICAgICAgIFwiaHR0cHgtdXNlLWNvb2tpZS1lbmFibGVcIixcbiAgICAgICAgICAgICAgICAgICAg\nZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAg\nXCLlkK\/nlKjlkI7vvIzlsIbmoLnmja7kuIvpnaLnmoTphY3nva7ov5vooYzmt7vliqBjb29raWVc\nIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAg\nICAgICAgICAgICAgICAgICBcIuS9v+eUqGRvY3VtZW50LmNvb2tpZVwiLFxuICAgICAgICAgICAg\nICAgICAgICBcImh0dHB4LXVzZS1kb2N1bWVudC1jb29raWVcIixcbiAgICAgICAgICAgICAgICAg\nICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAg\nICAgXCLoh6rliqjmoLnmja7or7fmsYLnmoTln5\/lkI3mnaXojrflj5blr7nlupTnmoRjb29raWVc\nIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJVGV4dEFyZWEoXG4g\nICAgICAgICAgICAgICAgICAgIFwidGllYmEuYmFpZHUuY29tXCIsXG4gICAgICAgICAgICAgICAg\nICAgIFwiaHR0cHgtY29va2llLXRpZWJhLmJhaWR1LmNvbVwiLFxuICAgICAgICAgICAgICAgICAg\nICBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAg\nIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCJDb29raWXmoLzlvI\/vvJp4eHg9eHh4eDt4\neHg9eHh4eFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxuICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9\nXG4gICAgXVxuICB9O1xuICBjb25zdCBQYW5lbFVJU2l6ZSA9IHtcbiAgICBcLyoqXG4gICAgICog\n5LiA6Iis6K6+572u55WM6Z2i55qE5bC65a+4XG4gICAgICpcL1xuICAgIHNldHRpbmc6IHtcbiAg\nICAgIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNTUw\nID8gXCI4OHZ3XCIgOiBcIjU1MHB4XCI7XG4gICAgICB9LFxuICAgICAgZ2V0IGhlaWdodCgpIHtc\nbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCA8IDQ1MCA\/IFwiNzB2aFwiIDogXCI0\nNTBweFwiO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWKn+iDveS4sOWvjO+8\njGFzaWRl6ZO65ruh5LqG55qE6K6+572u55WM6Z2i77yM6KaB56iN5b6u5aSn5LiA54K5XG4gICAg\nICpcL1xuICAgIHNldHRpbmdCaWc6IHtcbiAgICAgIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0\ndXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgODAwID8gXCI5MnZ3XCIgOiBcIjgwMHB4XCI7XG4gICAg\nICB9LFxuICAgICAgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhl\naWdodCA8IDYwMCA\/IFwiODB2aFwiIDogXCI2MDBweFwiO1xuICAgICAgfVxuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOS\/oeaBr+eVjOmdou+8jOS4gOiIrOeUqOS6juaPkOekuuS\/oeaBr+S5i+ex\nu1xuICAgICAqXC9cbiAgICBpbmZvOiB7XG4gICAgICBnZXQgd2lkdGgoKSB7XG4gICAgICAgIHJl\ndHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8IDM1MCA\/IFwiMzUwcHhcIiA6IFwiMzUwcHhcIjtcbiAg\nICAgIH0sXG4gICAgICBnZXQgaGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVy\nSGVpZ2h0IDwgMjUwID8gXCIyNTBweFwiIDogXCIyNTBweFwiO1xuICAgICAgfVxuICAgIH1cbiAg\nfTtcbiAgY29uc3QgUG9wc1BhbmVsID0ge1xuICAgIFwvKiog5pWw5o2uICpcL1xuICAgICRkYXRh\nOiB7XG4gICAgICBfX2RhdGE6IG51bGwsXG4gICAgICBfX29uZVN1Y2Nlc3NFeGVjTWVudTogbnVs\nbCxcbiAgICAgIF9fb25jZUV4ZWM6IG51bGwsXG4gICAgICBfX2xpc3RlbkRhdGE6IG51bGwsXG4g\nICAgICBcLyoqXG4gICAgICAgKiDoj5zljZXpobnnmoTpu5jorqTlgLxcbiAgICAgICAqXC9cbiAg\nICAgIGdldCBkYXRhKCkge1xuICAgICAgICBpZiAoUG9wc1BhbmVsLiRkYXRhLl9fZGF0YSA9PSBu\ndWxsKSB7XG4gICAgICAgICAgUG9wc1BhbmVsLiRkYXRhLl9fZGF0YSA9IG5ldyB1dGlscy5EaWN0\naW9uYXJ5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC4kZGF0YS5fX2Rh\ndGE7XG4gICAgICB9LFxuICAgICAgXC8qKlxuICAgICAgICog5oiQ5Yqf5Y+q5omn6KGM5LqG5LiA\n5qyh55qE6aG5XG4gICAgICAgKlwvXG4gICAgICBnZXQgb25lU3VjY2Vzc0V4ZWNNZW51KCkge1xu\nICAgICAgICBpZiAoUG9wc1BhbmVsLiRkYXRhLl9fb25lU3VjY2Vzc0V4ZWNNZW51ID09IG51bGwp\nIHtcbiAgICAgICAgICBQb3BzUGFuZWwuJGRhdGEuX19vbmVTdWNjZXNzRXhlY01lbnUgPSBuZXcg\ndXRpbHMuRGljdGlvbmFyeSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQb3BzUGFuZWwu\nJGRhdGEuX19vbmVTdWNjZXNzRXhlY01lbnU7XG4gICAgICB9LFxuICAgICAgXC8qKlxuICAgICAg\nICog5oiQ5Yqf5Y+q5omn6KGM5LqG5LiA5qyh55qE6aG5XG4gICAgICAgKlwvXG4gICAgICBnZXQg\nb25jZUV4ZWMoKSB7XG4gICAgICAgIGlmIChQb3BzUGFuZWwuJGRhdGEuX19vbmNlRXhlYyA9PSBu\ndWxsKSB7XG4gICAgICAgICAgUG9wc1BhbmVsLiRkYXRhLl9fb25jZUV4ZWMgPSBuZXcgdXRpbHMu\nRGljdGlvbmFyeSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQb3BzUGFuZWwuJGRhdGEu\nX19vbmNlRXhlYztcbiAgICAgIH0sXG4gICAgICBcLyoqIOiEmuacrOWQje+8jOS4gOiIrOeUqOWc\nqOiuvue9rueahOagh+mimOS4iiAqXC9cbiAgICAgIGdldCBzY3JpcHROYW1lKCkge1xuICAgICAg\nICByZXR1cm4gU0NSSVBUX05BTUU7XG4gICAgICB9LFxuICAgICAgXC8qKiDoj5zljZXpobnnmoTm\ngLvlgLzlnKjmnKzlnLDmlbDmja7phY3nva7nmoTplK7lkI0gKlwvXG4gICAgICBrZXk6IEtFWSxc\nbiAgICAgIFwvKiog6I+c5Y2V6aG55ZyoYXR0cmlidXRlc+S4iumFjee9rueahOiPnOWNlemUriAq\nXC9cbiAgICAgIGF0dHJpYnV0ZUtleU5hbWU6IEFUVFJJQlVURV9LRVksXG4gICAgICBcLyoqIOiP\nnOWNlemhueWcqGF0dHJpYnV0ZXPkuIrphY3nva7nmoToj5zljZXpu5jorqTlgLwgKlwvXG4gICAg\nICBhdHRyaWJ1dGVEZWZhdWx0VmFsdWVOYW1lOiBBVFRSSUJVVEVfREVGQVVMVF9WQUxVRVxuICAg\nIH0sXG4gICAgXC8qKiDnm5HlkKzlmaggKlwvXG4gICAgJGxpc3RlbmVyOiB7XG4gICAgICBcLyoq\nXG4gICAgICAgKiDlgLzmlLnlj5jnmoTnm5HlkKzlmahcbiAgICAgICAqXC9cbiAgICAgIGdldCBs\naXN0ZW5EYXRhKCkge1xuICAgICAgICBpZiAoUG9wc1BhbmVsLiRkYXRhLl9fbGlzdGVuRGF0YSA9\nPSBudWxsKSB7XG4gICAgICAgICAgUG9wc1BhbmVsLiRkYXRhLl9fbGlzdGVuRGF0YSA9IG5ldyB1\ndGlscy5EaWN0aW9uYXJ5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC4k\nZGF0YS5fX2xpc3RlbkRhdGE7XG4gICAgICB9XG4gICAgfSxcbiAgICBpbml0KCkge1xuICAgICAg\ndGhpcy5pbml0UGFuZWxEZWZhdWx0VmFsdWUoKTtcbiAgICAgIHRoaXMuaW5pdEV4dGVuc2lvbnNN\nZW51KCk7XG4gICAgfSxcbiAgICBcLyoqIOWIpOaWreaYr+WQpuaYr+mhtuWxgueql+WPoyAqXC9c\nbiAgICBpc1RvcFdpbmRvdygpIHtcbiAgICAgIHJldHVybiBfdW5zYWZlV2luZG93LnRvcCA9PT0g\nX3Vuc2FmZVdpbmRvdy5zZWxmO1xuICAgIH0sXG4gICAgaW5pdEV4dGVuc2lvbnNNZW51KCkge1xu\nICAgICAgaWYgKCF0aGlzLmlzVG9wV2luZG93KCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAg\nfVxuICAgICAgR01fTWVudS5hZGQoW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcInNob3df\ncG9wc19wYW5lbF9zZXR0aW5nXCIsXG4gICAgICAgICAgdGV4dDogXCLimpkg6K6+572uXCIsXG4g\nICAgICAgICAgYXV0b1JlbG9hZDogZmFsc2UsXG4gICAgICAgICAgaXNTdG9yZVZhbHVlOiBmYWxz\nZSxcbiAgICAgICAgICBzaG93VGV4dCh0ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtc\nbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB0\naGlzLnNob3dQYW5lbCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcL1wvIHtc\nbiAgICAgICAgXC9cLyBcdGtleTogXCJzaG93X3lpeWFuX2NoYXRncHRcIixcbiAgICAgICAgXC9c\nLyBcdHRleHQ6IFwi4pqZIOaWh+W\/g+S4gOiogFwiLFxuICAgICAgICBcL1wvIFx0YXV0b1JlbG9h\nZDogZmFsc2UsXG4gICAgICAgIFwvXC8gXHRpc1N0b3JlVmFsdWU6IGZhbHNlLFxuICAgICAgICBc\nL1wvIFx0c2hvd1RleHQodGV4dCkge1xuICAgICAgICBcL1wvIFx0XHRyZXR1cm4gdGV4dDtcbiAg\nICAgICAgXC9cLyBcdH0sXG4gICAgICAgIFwvXC8gXHRjYWxsYmFjazogKCkgPT4ge1xuICAgICAg\nICBcL1wvIFx0XHRZaVlhbkNoYXQuaW5pdCgpO1xuICAgICAgICBcL1wvIFx0fSxcbiAgICAgICAg\nXC9cLyB9LFxuICAgICAgXSk7XG4gICAgfSxcbiAgICBcLyoqIOWIneWni+WMluacrOWcsOiuvue9\nrum7mOiupOeahOWAvCAqXC9cbiAgICBpbml0UGFuZWxEZWZhdWx0VmFsdWUoKSB7XG4gICAgICBs\nZXQgdGhhdCA9IHRoaXM7XG4gICAgICBmdW5jdGlvbiBpbml0RGVmYXVsdFZhbHVlKGNvbmZpZykg\ne1xuICAgICAgICBpZiAoIWNvbmZpZy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICB9XG4gICAgICAgIGxldCBuZWVkSW5pdENvbmZpZyA9IHt9O1xuICAgICAgICBsZXQg\na2V5ID0gY29uZmlnLmF0dHJpYnV0ZXNbQVRUUklCVVRFX0tFWV07XG4gICAgICAgIGlmIChrZXkg\nIT0gbnVsbCkge1xuICAgICAgICAgIG5lZWRJbml0Q29uZmlnW2tleV0gPSBjb25maWcuYXR0cmli\ndXRlc1tBVFRSSUJVVEVfREVGQVVMVF9WQUxVRV07XG4gICAgICAgIH1cbiAgICAgICAgbGV0IF9f\nYXR0cl9pbml0X18gPSBjb25maWcuYXR0cmlidXRlc1tBVFRSSUJVVEVfSU5JVF07XG4gICAgICAg\nIGlmICh0eXBlb2YgX19hdHRyX2luaXRfXyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAg\nbGV0IF9fYXR0cl9yZXN1bHRfXyA9IF9fYXR0cl9pbml0X18oKTtcbiAgICAgICAgICBpZiAodHlw\nZW9mIF9fYXR0cl9yZXN1bHRfXyA9PT0gXCJib29sZWFuXCIgJiYgIV9fYXR0cl9yZXN1bHRfXykg\ne1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBs\nZXQgaW5pdE1vcmVWYWx1ZSA9IGNvbmZpZy5hdHRyaWJ1dGVzW0FUVFJJQlVURV9JTklUX01PUkVf\nVkFMVUVdO1xuICAgICAgICBpZiAoaW5pdE1vcmVWYWx1ZSAmJiB0eXBlb2YgaW5pdE1vcmVWYWx1\nZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24obmVlZEluaXRDb25m\naWcsIGluaXRNb3JlVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBuZWVkSW5pdENvbmZp\nZ0xpc3QgPSBPYmplY3Qua2V5cyhuZWVkSW5pdENvbmZpZyk7XG4gICAgICAgIGlmICghbmVlZElu\naXRDb25maWdMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgIGxvZy53YXJuKFtcIuivt+WFiOmFjee9\nrumUrlwiLCBjb25maWddKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAg\nbmVlZEluaXRDb25maWdMaXN0LmZvckVhY2goKF9fa2V5KSA9PiB7XG4gICAgICAgICAgbGV0IF9f\nZGVmYXVsdFZhbHVlID0gbmVlZEluaXRDb25maWdbX19rZXldO1xuICAgICAgICAgIGlmICh0aGF0\nLiRkYXRhLmRhdGEuaGFzKF9fa2V5KSkge1xuICAgICAgICAgICAgbG9nLndhcm4oXCLor7fmo4Dm\nn6Xor6VrZXko5bey5a2Y5ZyoKTogXCIgKyBfX2tleSk7XG4gICAgICAgICAgfVxuICAgICAgICAg\nIHRoYXQuJGRhdGEuZGF0YS5zZXQoX19rZXksIF9fZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfSk7\nXG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBsb29wSW5pdERlZmF1bHRWYWx1ZShjb25maWdMaXN0\nKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjb25maWdMaXN0Lmxlbmd0\naDsgaW5kZXgrKykge1xuICAgICAgICAgIGxldCBjb25maWdJdGVtID0gY29uZmlnTGlzdFtpbmRl\neF07XG4gICAgICAgICAgaW5pdERlZmF1bHRWYWx1ZShjb25maWdJdGVtKTtcbiAgICAgICAgICBs\nZXQgY2hpbGRGb3JtcyA9IGNvbmZpZ0l0ZW0uZm9ybXM7XG4gICAgICAgICAgaWYgKGNoaWxkRm9y\nbXMgJiYgQXJyYXkuaXNBcnJheShjaGlsZEZvcm1zKSkge1xuICAgICAgICAgICAgbG9vcEluaXRE\nZWZhdWx0VmFsdWUoY2hpbGRGb3Jtcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9\nXG4gICAgICBsZXQgY29udGVudENvbmZpZ0xpc3QgPSB0aGlzLmdldFBhbmVsQ29udGVudENvbmZp\nZygpO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNvbnRlbnRDb25maWdMaXN0\nLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICBsZXQgbGVmdENvbnRlbnRDb25maWdJdGVtID0g\nY29udGVudENvbmZpZ0xpc3RbaW5kZXhdO1xuICAgICAgICBpZiAoIWxlZnRDb250ZW50Q29uZmln\nSXRlbS5mb3Jtcykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxl\ndCByaWdodENvbnRlbnRDb25maWdMaXN0ID0gbGVmdENvbnRlbnRDb25maWdJdGVtLmZvcm1zO1xu\nICAgICAgICBpZiAocmlnaHRDb250ZW50Q29uZmlnTGlzdCAmJiBBcnJheS5pc0FycmF5KHJpZ2h0\nQ29udGVudENvbmZpZ0xpc3QpKSB7XG4gICAgICAgICAgbG9vcEluaXREZWZhdWx0VmFsdWUocmln\naHRDb250ZW50Q29uZmlnTGlzdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDorr7nva7lgLxcbiAgICAgKiBAcGFyYW0ga2V5IOmUrlxuICAgICAqIEBwYXJh\nbSB2YWx1ZSDlgLxcbiAgICAgKlwvXG4gICAgc2V0VmFsdWUoa2V5LCB2YWx1ZSkge1xuICAgICAg\nbGV0IGxvY2FEYXRhID0gX0dNX2dldFZhbHVlKEtFWSwge30pO1xuICAgICAgbGV0IG9sZFZhbHVl\nID0gbG9jYURhdGFba2V5XTtcbiAgICAgIGxvY2FEYXRhW2tleV0gPSB2YWx1ZTtcbiAgICAgIF9H\nTV9zZXRWYWx1ZShLRVksIGxvY2FEYXRhKTtcbiAgICAgIGlmICh0aGlzLiRsaXN0ZW5lci5saXN0\nZW5EYXRhLmhhcyhrZXkpKSB7XG4gICAgICAgIHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuZ2V0\nKGtleSkuY2FsbGJhY2soa2V5LCBvbGRWYWx1ZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOiOt+WPluWAvFxuICAgICAqIEBwYXJhbSBrZXkg6ZSuXG4gICAgICog\nQHBhcmFtIGRlZmF1bHRWYWx1ZSDpu5jorqTlgLxcbiAgICAgKlwvXG4gICAgZ2V0VmFsdWUoa2V5\nLCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgIGxldCBsb2NhRGF0YSA9IF9HTV9nZXRWYWx1ZShLRVks\nIHt9KTtcbiAgICAgIGxldCBsb2NhbFZhbHVlID0gbG9jYURhdGFba2V5XTtcbiAgICAgIGlmIChs\nb2NhbFZhbHVlID09IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuJGRhdGEuZGF0YS5oYXMoa2V5\nKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLiRkYXRhLmRhdGEuZ2V0KGtleSk7XG4gICAgICAg\nIH1cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBs\nb2NhbFZhbHVlO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWIoOmZpOWAvFxuICAgICAqIEBw\nYXJhbSBrZXkg6ZSuXG4gICAgICpcL1xuICAgIGRlbGV0ZVZhbHVlKGtleSkge1xuICAgICAgbGV0\nIGxvY2FEYXRhID0gX0dNX2dldFZhbHVlKEtFWSwge30pO1xuICAgICAgbGV0IG9sZFZhbHVlID0g\nbG9jYURhdGFba2V5XTtcbiAgICAgIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkobG9jYURhdGEsIGtl\neSk7XG4gICAgICBfR01fc2V0VmFsdWUoS0VZLCBsb2NhRGF0YSk7XG4gICAgICBpZiAodGhpcy4k\nbGlzdGVuZXIubGlzdGVuRGF0YS5oYXMoa2V5KSkge1xuICAgICAgICB0aGlzLiRsaXN0ZW5lci5s\naXN0ZW5EYXRhLmdldChrZXkpLmNhbGxiYWNrKGtleSwgb2xkVmFsdWUsIHZvaWQgMCk7XG4gICAg\nICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog55uR5ZCs6LCD55Soc2V0VmFsdWXjgIFkZWxl\ndGVWYWx1ZVxuICAgICAqIEBwYXJhbSBrZXkg6ZyA6KaB55uR5ZCs55qE6ZSuXG4gICAgICogQHBh\ncmFtIGNhbGxiYWNrXG4gICAgICpcL1xuICAgIGFkZFZhbHVlQ2hhbmdlTGlzdGVuZXIoa2V5LCBj\nYWxsYmFjaykge1xuICAgICAgbGV0IGxpc3RlbmVySWQgPSBNYXRoLnJhbmRvbSgpO1xuICAgICAg\ndGhpcy4kbGlzdGVuZXIubGlzdGVuRGF0YS5zZXQoa2V5LCB7XG4gICAgICAgIGlkOiBsaXN0ZW5l\ncklkLFxuICAgICAgICBrZXksXG4gICAgICAgIGNhbGxiYWNrXG4gICAgICB9KTtcbiAgICAgIHJl\ndHVybiBsaXN0ZW5lcklkO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOenu+mZpOebkeWQrFxu\nICAgICAqIEBwYXJhbSBsaXN0ZW5lcklkIOebkeWQrOeahGlkXG4gICAgICpcL1xuICAgIHJlbW92\nZVZhbHVlQ2hhbmdlTGlzdGVuZXIobGlzdGVuZXJJZCkge1xuICAgICAgbGV0IGRlbGV0ZUtleSA9\nIG51bGw7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiB0aGlzLiRsaXN0ZW5lci5s\naXN0ZW5EYXRhLmVudHJpZXMoKSkge1xuICAgICAgICBpZiAodmFsdWUuaWQgPT09IGxpc3RlbmVy\nSWQpIHtcbiAgICAgICAgICBkZWxldGVLZXkgPSBrZXk7XG4gICAgICAgICAgYnJlYWs7XG4gICAg\nICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZGVsZXRlS2V5ID09PSBcInN0cmluZ1wi\nKSB7XG4gICAgICAgIHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuZGVsZXRlKGRlbGV0ZUtleSk7\nXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXCLmsqHmnInmib7liLDlr7nl\nupTnmoTnm5HlkKzlmahcIik7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Li7\n5Yqo6Kem5Y+R6I+c5Y2V5YC85pS55Y+Y55qE5Zue6LCDXG4gICAgICogQHBhcmFtIGtleSDoj5zl\njZXplK5cbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUg5oOz6KaB6Kem5Y+R55qE5paw5YC877yM6buY\n6K6k5L2\/55So5b2T5YmN5YC8XG4gICAgICogQHBhcmFtIG9sZFZhbHVlIOaDs+imgeinpuWPkeea\nhOaXp+WAvO+8jOm7mOiupOS9v+eUqOW9k+WJjeWAvFxuICAgICAqXC9cbiAgICB0cmlnZ2VyTWVu\ndVZhbHVlQ2hhbmdlKGtleSwgbmV3VmFsdWUsIG9sZFZhbHVlKSB7XG4gICAgICBpZiAodGhpcy4k\nbGlzdGVuZXIubGlzdGVuRGF0YS5oYXMoa2V5KSkge1xuICAgICAgICBsZXQgbGlzdGVuRGF0YSA9\nIHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuZ2V0KGtleSk7XG4gICAgICAgIGlmICh0eXBlb2Yg\nbGlzdGVuRGF0YS5jYWxsYmFjayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgbGV0IHZh\nbHVlID0gdGhpcy5nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgIGxldCBfX25ld1ZhbHVlID0gdmFs\ndWU7XG4gICAgICAgICAgbGV0IF9fb2xkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICBpZiAodHlw\nZW9mIG5ld1ZhbHVlICE9PSBcInVuZGVmaW5lZFwiICYmIGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7\nXG4gICAgICAgICAgICBfX25ld1ZhbHVlID0gbmV3VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAg\nICAgIGlmICh0eXBlb2Ygb2xkVmFsdWUgIT09IFwidW5kZWZpbmVkXCIgJiYgYXJndW1lbnRzLmxl\nbmd0aCA+IDIpIHtcbiAgICAgICAgICAgIF9fb2xkVmFsdWUgPSBvbGRWYWx1ZTtcbiAgICAgICAg\nICB9XG4gICAgICAgICAgbGlzdGVuRGF0YS5jYWxsYmFjayhrZXksIF9fb2xkVmFsdWUsIF9fbmV3\nVmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yik\n5pat6K+l6ZSu5piv5ZCm5a2Y5ZyoXG4gICAgICogQHBhcmFtIGtleSDplK5cbiAgICAgKlwvXG4g\nICAgaGFzS2V5KGtleSkge1xuICAgICAgbGV0IGxvY2FEYXRhID0gX0dNX2dldFZhbHVlKEtFWSwg\ne30pO1xuICAgICAgcmV0dXJuIGtleSBpbiBsb2NhRGF0YTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDoh6rliqjliKTmlq3oj5zljZXmmK\/lkKblkK\/nlKjvvIznhLblkI7miafooYzlm57osINc\nbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwg1xuICAgICAq\nIEBwYXJhbSBbaXNSZXZlcnNlPWZhbHNlXSDpgIblj43liKTmlq3oj5zljZXlkK\/nlKhcbiAgICAg\nKlwvXG4gICAgZXhlY01lbnUoa2V5LCBjYWxsYmFjaywgaXNSZXZlcnNlID0gZmFsc2UpIHtcbiAg\nICAgIGlmICghKHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGtleSA9PT0gXCJv\nYmplY3RcIiAmJiBBcnJheS5pc0FycmF5KGtleSkpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBl\nRXJyb3IoXCJrZXkg5b+F6aG75piv5a2X56ym5Liy5oiW6ICF5a2X56ym5Liy5pWw57uEXCIpO1xu\nICAgICAgfVxuICAgICAgbGV0IHJ1bktleUxpc3QgPSBbXTtcbiAgICAgIGlmICh0eXBlb2Yga2V5\nID09PSBcIm9iamVjdFwiICYmIEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgICBydW5LZXlM\naXN0ID0gWy4uLmtleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBydW5LZXlMaXN0LnB1c2go\na2V5KTtcbiAgICAgIH1cbiAgICAgIGxldCB2YWx1ZSA9IHZvaWQgMDtcbiAgICAgIGZvciAobGV0\nIGluZGV4ID0gMDsgaW5kZXggPCBydW5LZXlMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAg\nICBjb25zdCBydW5LZXkgPSBydW5LZXlMaXN0W2luZGV4XTtcbiAgICAgICAgaWYgKCF0aGlzLiRk\nYXRhLmRhdGEuaGFzKHJ1bktleSkpIHtcbiAgICAgICAgICBsb2cud2FybihgJHtrZXl9IOmUruS4\njeWtmOWcqGApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcnVu\nVmFsdWUgPSBQb3BzUGFuZWwuZ2V0VmFsdWUocnVuS2V5KTtcbiAgICAgICAgaWYgKGlzUmV2ZXJz\nZSkge1xuICAgICAgICAgIHJ1blZhbHVlID0gIXJ1blZhbHVlO1xuICAgICAgICB9XG4gICAgICAg\nIGlmICghcnVuVmFsdWUpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB2\nYWx1ZSA9IHJ1blZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNh\nbGxiYWNrKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDoh6rliqjl\niKTmlq3oj5zljZXmmK\/lkKblkK\/nlKjvvIznhLblkI7miafooYzlm57osIPvvIzlj6rkvJrmiafo\noYzkuIDmrKFcbiAgICAgKiBAcGFyYW0ga2V5XG4gICAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiw\ng1xuICAgICAqIEBwYXJhbSBnZXRWYWx1ZUZuIOiHquWumuS5ieWkhOeQhuiOt+WPluW9k+WJjeWA\nvO+8jOWAvHRydWXmmK\/lkK\/nlKjlubbmiafooYzlm57osIPvvIzlgLxmYWxzZeaYr+S4jeaJp+ih\njOWbnuiwg1xuICAgICAqIEBwYXJhbSBoYW5kbGVWYWx1ZUNoYW5nZUZuIOiHquWumuS5ieWkhOeQ\nhuWAvOaUueWPmOaXtueahOWbnuiwg++8jOWAvHRydWXmmK\/lkK\/nlKjlubbmiafooYzlm57osIPv\nvIzlgLxmYWxzZeaYr+S4jeaJp+ihjOWbnuiwg1xuICAgICAqXC9cbiAgICBleGVjTWVudU9uY2Uo\na2V5LCBjYWxsYmFjaywgZ2V0VmFsdWVGbiwgaGFuZGxlVmFsdWVDaGFuZ2VGbikge1xuICAgICAg\naWYgKHR5cGVvZiBrZXkgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVF\ncnJvcihcImtleSDlv4XpobvmmK\/lrZfnrKbkuLJcIik7XG4gICAgICB9XG4gICAgICBpZiAoIXRo\naXMuJGRhdGEuZGF0YS5oYXMoa2V5KSkge1xuICAgICAgICBsb2cud2FybihgJHtrZXl9IOmUruS4\njeWtmOWcqGApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4kZGF0\nYS5vbmVTdWNjZXNzRXhlY01lbnUuaGFzKGtleSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAg\nfVxuICAgICAgdGhpcy4kZGF0YS5vbmVTdWNjZXNzRXhlY01lbnUuc2V0KGtleSwgMSk7XG4gICAg\nICBsZXQgX19nZXRWYWx1ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IGxvY2FsVmFsdWUgPSBQb3Bz\nUGFuZWwuZ2V0VmFsdWUoa2V5KTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBnZXRWYWx1ZUZuID09\nPSBcImZ1bmN0aW9uXCIgPyBnZXRWYWx1ZUZuKGtleSwgbG9jYWxWYWx1ZSkgOiBsb2NhbFZhbHVl\nO1xuICAgICAgfTtcbiAgICAgIGxldCByZXN1bHRTdHlsZUxpc3QgPSBbXTtcbiAgICAgIGxldCBk\neW5hbWljUHVzaFN0eWxlTm9kZSA9ICgkc3R5bGUpID0+IHtcbiAgICAgICAgbGV0IF9fdmFsdWUg\nPSBfX2dldFZhbHVlKCk7XG4gICAgICAgIGxldCBkeW5hbWljUmVzdWx0TGlzdCA9IFtdO1xuICAg\nICAgICBpZiAoJHN0eWxlIGluc3RhbmNlb2YgSFRNTFN0eWxlRWxlbWVudCkge1xuICAgICAgICAg\nIGR5bmFtaWNSZXN1bHRMaXN0ID0gWyRzdHlsZV07XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXku\naXNBcnJheSgkc3R5bGUpKSB7XG4gICAgICAgICAgZHluYW1pY1Jlc3VsdExpc3QgPSBbXG4gICAg\nICAgICAgICAuLi4kc3R5bGUuZmlsdGVyKFxuICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbSAh\nPSBudWxsICYmIGl0ZW0gaW5zdGFuY2VvZiBIVE1MU3R5bGVFbGVtZW50XG4gICAgICAgICAgICAp\nXG4gICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoX192YWx1ZSkge1xuICAgICAg\nICAgIHJlc3VsdFN0eWxlTGlzdCA9IHJlc3VsdFN0eWxlTGlzdC5jb25jYXQoZHluYW1pY1Jlc3Vs\ndExpc3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsg\naW5kZXggPCBkeW5hbWljUmVzdWx0TGlzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAg\nIGxldCAkY3NzID0gZHluYW1pY1Jlc3VsdExpc3RbaW5kZXhdO1xuICAgICAgICAgICAgJGNzcy5y\nZW1vdmUoKTtcbiAgICAgICAgICAgIGR5bmFtaWNSZXN1bHRMaXN0LnNwbGljZShpbmRleCwgMSk7\nXG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtc\nbiAgICAgIGxldCBjaGFuZ2VDYWxsQmFjayA9IChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgICAg\nbGV0IHJlc3VsdExpc3QgPSBbXTtcbiAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSkge1xuICAgICAg\nICAgIGxldCByZXN1bHQgPSBjYWxsYmFjayhjdXJyZW50VmFsdWUsIGR5bmFtaWNQdXNoU3R5bGVO\nb2RlKTtcbiAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgSFRNTFN0eWxlRWxlbWVudCkg\ne1xuICAgICAgICAgICAgcmVzdWx0TGlzdCA9IFtyZXN1bHRdO1xuICAgICAgICAgIH0gZWxzZSBp\nZiAoQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICAgICAgICByZXN1bHRMaXN0ID0gW1xu\nICAgICAgICAgICAgICAuLi5yZXN1bHQuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChpdGVtKSA9\nPiBpdGVtICE9IG51bGwgJiYgaXRlbSBpbnN0YW5jZW9mIEhUTUxTdHlsZUVsZW1lbnRcbiAgICAg\nICAgICAgICAgKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAg\nICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHJlc3VsdFN0eWxlTGlzdC5sZW5ndGg7IGlu\nZGV4KyspIHtcbiAgICAgICAgICBsZXQgJGNzcyA9IHJlc3VsdFN0eWxlTGlzdFtpbmRleF07XG4g\nICAgICAgICAgJGNzcy5yZW1vdmUoKTtcbiAgICAgICAgICByZXN1bHRTdHlsZUxpc3Quc3BsaWNl\nKGluZGV4LCAxKTtcbiAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9XG4gICAgICAgIHJlc3Vs\ndFN0eWxlTGlzdCA9IFsuLi5yZXN1bHRMaXN0XTtcbiAgICAgIH07XG4gICAgICB0aGlzLmFkZFZh\nbHVlQ2hhbmdlTGlzdGVuZXIoXG4gICAgICAgIGtleSxcbiAgICAgICAgKF9fa2V5LCBvbGRWYWx1\nZSwgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgICBsZXQgX19uZXdWYWx1ZSA9IG5ld1ZhbHVlO1xu\nICAgICAgICAgIGlmICh0eXBlb2YgaGFuZGxlVmFsdWVDaGFuZ2VGbiA9PT0gXCJmdW5jdGlvblwi\nKSB7XG4gICAgICAgICAgICBfX25ld1ZhbHVlID0gaGFuZGxlVmFsdWVDaGFuZ2VGbihfX2tleSwg\nbmV3VmFsdWUsIG9sZFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2hhbmdlQ2FsbEJh\nY2soX19uZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBsZXQgdmFsdWUgPSBf\nX2dldFZhbHVlKCk7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgY2hhbmdlQ2FsbEJhY2so\ndmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeItuWtkOiPnOWNleiB\nlOWKqO+8jOiHquWKqOWIpOaWreiPnOWNleaYr+WQpuWQr+eUqO+8jOeEtuWQjuaJp+ihjOWbnuiw\ng++8jOWPquS8muaJp+ihjOS4gOasoVxuICAgICAqIEBwYXJhbSBrZXkg6I+c5Y2V6ZSuXG4gICAg\nICogQHBhcmFtIGNoaWxkS2V5IOWtkOiPnOWNlemUrlxuICAgICAqIEBwYXJhbSBjYWxsYmFjayDl\nm57osINcbiAgICAgKiBAcGFyYW0gcmVwbGFjZVZhbHVlRm4g55So5LqO5L+u5pS5bWFpblZhbHVl\n77yM6L+U5ZuedW5kZWZpbmVk5YiZ5LiN5YGa5aSE55CGXG4gICAgICpcL1xuICAgIGV4ZWNJbmhl\ncml0TWVudU9uY2Uoa2V5LCBjaGlsZEtleSwgY2FsbGJhY2ssIHJlcGxhY2VWYWx1ZUZuKSB7XG4g\nICAgICBsZXQgdGhhdCA9IHRoaXM7XG4gICAgICBjb25zdCBoYW5kbGVJbmhlcml0VmFsdWUgPSAo\na2V5MiwgY2hpbGRLZXkyKSA9PiB7XG4gICAgICAgIGxldCBtYWluVmFsdWUgPSB0aGF0LmdldFZh\nbHVlKGtleTIpO1xuICAgICAgICBsZXQgY2hpbGRWYWx1ZSA9IHRoYXQuZ2V0VmFsdWUoY2hpbGRL\nZXkyKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlVmFsdWVGbiA9PT0gXCJmdW5jdGlvblwi\nKSB7XG4gICAgICAgICAgbGV0IGNoYW5nZWRNYWluVmFsdWUgPSByZXBsYWNlVmFsdWVGbihtYWlu\nVmFsdWUsIGNoaWxkVmFsdWUpO1xuICAgICAgICAgIGlmIChjaGFuZ2VkTWFpblZhbHVlICE9PSB2\nb2lkIDApIHtcbiAgICAgICAgICAgIHJldHVybiBjaGFuZ2VkTWFpblZhbHVlO1xuICAgICAgICAg\nIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWFpblZhbHVlO1xuICAgICAgfTtcbiAgICAg\nIHRoaXMuZXhlY01lbnVPbmNlKFxuICAgICAgICBrZXksXG4gICAgICAgIGNhbGxiYWNrLFxuICAg\nICAgICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGhhbmRsZUluaGVyaXRWYWx1ZShrZXksIGNo\naWxkS2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBo\nYW5kbGVJbmhlcml0VmFsdWUoa2V5LCBjaGlsZEtleSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4g\nICAgICB0aGlzLmV4ZWNNZW51T25jZShcbiAgICAgICAgY2hpbGRLZXksXG4gICAgICAgICgpID0+\nIHtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4gZmFsc2UsXG4gICAgICAgICgpID0+IHtcbiAg\nICAgICAgICB0aGlzLnRyaWdnZXJNZW51VmFsdWVDaGFuZ2Uoa2V5KTtcbiAgICAgICAgICByZXR1\ncm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n5qC55o2ua2V55omn6KGM5LiA5qyhXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqXC9cbiAgICBv\nbmNlRXhlYyhrZXksIGNhbGxiYWNrKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSAhPT0gXCJzdHJp\nbmdcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwia2V5IOW\/hemhu+aYr+Wtl+es\npuS4slwiKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiRkYXRhLm9uY2VFeGVjLmhhcyhrZXkp\nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgICB0\naGlzLiRkYXRhLm9uY2VFeGVjLnNldChrZXksIDEpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOaYvuekuuiuvue9rumdouadv1xuICAgICAqXC9cbiAgICBzaG93UGFuZWwoKSB7XG4gICAgICBf\nX3BvcHMucGFuZWwoe1xuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIHRleHQ6IGAke1NDUklQ\nVF9OQU1FfS3orr7nva5gLFxuICAgICAgICAgIHBvc2l0aW9uOiBcImNlbnRlclwiLFxuICAgICAg\nICAgIGh0bWw6IGZhbHNlLFxuICAgICAgICAgIHN0eWxlOiBcIlwiXG4gICAgICAgIH0sXG4gICAg\nICAgIGNvbnRlbnQ6IHRoaXMuZ2V0UGFuZWxDb250ZW50Q29uZmlnKCksXG4gICAgICAgIG1hc2s6\nIHtcbiAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAgICAgY2xpY2tFdmVudDoge1xuICAg\nICAgICAgICAgdG9DbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgIHRvSGlkZTogZmFsc2VcbiAgICAg\nICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGlzTW9iaWxlOiB0aGlzLmlzTW9iaWxlKCksXG4g\nICAgICAgIHdpZHRoOiBQYW5lbFVJU2l6ZS5zZXR0aW5nLndpZHRoLFxuICAgICAgICBoZWlnaHQ6\nIFBhbmVsVUlTaXplLnNldHRpbmcuaGVpZ2h0LFxuICAgICAgICBkcmFnOiB0cnVlLFxuICAgICAg\nICBvbmx5OiB0cnVlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIGlzTW9iaWxlKCkge1xuICAgICAg\ncmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNTUwO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOiOt+WPluiuvue9rumdouadv+eahOWuveW6plxuICAgICAqXC9cbiAgICBnZXRXaWR0aCgpIHtc\nbiAgICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8IDU1MCkge1xuICAgICAgICByZXR1cm4gXCI5\nMnZ3XCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gXCI1NTBweFwiO1xuICAgICAg\nfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WPluiuvue9rumdouadv+eahOmrmOW6plxu\nICAgICAqXC9cbiAgICBnZXRIZWlnaHQoKSB7XG4gICAgICBpZiAod2luZG93LmlubmVySGVpZ2h0\nIDwgNTUwKSB7XG4gICAgICAgIHJldHVybiBcIjgwdmhcIjtcbiAgICAgIH0gZWxzZSB7XG4gICAg\nICAgIHJldHVybiBcIjU1MHB4XCI7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n6I635Y+W6YWN572u5YaF5a65XG4gICAgICpcL1xuICAgIGdldFBhbmVsQ29udGVudENvbmZpZygp\nIHtcbiAgICAgIGxldCBjb25maWdMaXN0ID0gW1xuICAgICAgICBQYW5lbENvbW1vblNldHRpbmdV\nSSxcbiAgICAgICAgUGFuZWxTZWFyY2hTZXR0aW5nVUksXG4gICAgICAgIFBhbmVsQmFpSmlhSGFv\nU2V0dGluZ1VJLFxuICAgICAgICBQYW5lbFRpZUJhU2V0dGluZ1VJLFxuICAgICAgICBQYW5lbFdl\nbkt1U2V0dGluZ1VJLFxuICAgICAgICBcL1wvIFBhbmVsSmluZ1lhblNldHRpbmdVSSxcbiAgICAg\nICAgUGFuZWxCYWlLZVNldHRpbmdVSSxcbiAgICAgICAgUGFuZWxaaGlEYW9TZXR0aW5nVUksXG4g\nICAgICAgIFBhbmVsRmFuWWlTZXR0aW5nVUksXG4gICAgICAgIFwvXC8gUGFuZWxJbWFnZVNldHRp\nbmdVSSxcbiAgICAgICAgUGFuZWxNYXBTZXR0aW5nVUksXG4gICAgICAgIFwvXC8gUGFuZWxYdWVT\nZXR0aW5nVUksXG4gICAgICAgIFBhbmVsQWlRaUNoYVNldHRpbmdVSSxcbiAgICAgICAgXC9cLyBQ\nYW5lbFBvc1NldHRpbmdVSSxcbiAgICAgICAgUGFuZWxIYW9LYW5TZXR0aW5nVUksXG4gICAgICAg\nIFBhbmVsR3JhcGhTZXR0aW5nVUksXG4gICAgICAgIFwvXC8gUGFuZWxQYW5TZXR0aW5nVUksXG4g\nICAgICAgIFBhbmVsWWlZYW5TZXR0aW5nVUksXG4gICAgICAgIFBhbmVsQ2hhdFNldHRpbmdVSSxc\nbiAgICAgICAgUGFuZWxFYXN5TGVhcm5TZXR0aW5nVUksXG4gICAgICAgIFBhbmVsQWlTdHVkeVNl\ndHRpbmdVSVxuICAgICAgXTtcbiAgICAgIHJldHVybiBjb25maWdMaXN0O1xuICAgIH1cbiAgfTtc\nbiAgY29uc3QgSHR0cHhDb29raWVNYW5hZ2VyID0ge1xuICAgICRkYXRhOiB7XG4gICAgICBcLyoq\nIOaYr+WQpuWQr+eUqCAqXC9cbiAgICAgIGdldCBlbmFibGUoKSB7XG4gICAgICAgIHJldHVybiBQ\nb3BzUGFuZWwuZ2V0VmFsdWUoXCJodHRweC11c2UtY29va2llLWVuYWJsZVwiKTtcbiAgICAgIH0s\nXG4gICAgICBcLyoqIOaYr+WQpuS9v+eUqGRvY3VtZW50LmNvb2tpZSAqXC9cbiAgICAgIGdldCB1\nc2VEb2N1bWVudENvb2tpZSgpIHtcbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC5nZXRWYWx1ZShc\nImh0dHB4LXVzZS1kb2N1bWVudC1jb29raWVcIik7XG4gICAgICB9LFxuICAgICAgY29va2llUnVs\nZTogW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiBcImh0dHB4LWNvb2tpZS10aWViYS5iYWlk\ndS5jb21cIixcbiAgICAgICAgICBob3N0bmFtZTogXC8odGllYmEuYmFpZHV8d3d3LnRpZWJhfGFs\nYS5iYWlkdXxzdGF0aWMudGllYmEuYmFpZHV8bmJhLmJhaWR1KS5jb21cL2dcbiAgICAgICAgfVxu\nICAgICAgXVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOihpeWFhWNvb2tpZeacq+WwvuWIhuWP\nt1xuICAgICAqXC9cbiAgICBmaXhDb29raWVTcGxpdChzdHIpIHtcbiAgICAgIGlmICh1dGlscy5p\nc05vdE51bGwoc3RyKSAmJiAhc3RyLnRyaW0oKS5lbmRzV2l0aChcIjtcIikpIHtcbiAgICAgICAg\nc3RyICs9IFwiO1wiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDlkIjlubbkuKTkuKpjb29raWVcbiAgICAgKlwvXG4gICAgY29uY2F0Q29va2ll\nKHRhcmdldENvb2tpZSwgbmV3Q29va2llKSB7XG4gICAgICBpZiAodXRpbHMuaXNOdWxsKHRhcmdl\ndENvb2tpZSkpIHtcbiAgICAgICAgcmV0dXJuIG5ld0Nvb2tpZTtcbiAgICAgIH1cbiAgICAgIHRh\ncmdldENvb2tpZSA9IHRhcmdldENvb2tpZS50cmltKCk7XG4gICAgICBuZXdDb29raWUgPSBuZXdD\nb29raWUudHJpbSgpO1xuICAgICAgdGFyZ2V0Q29va2llID0gdGhpcy5maXhDb29raWVTcGxpdCh0\nYXJnZXRDb29raWUpO1xuICAgICAgaWYgKG5ld0Nvb2tpZS5zdGFydHNXaXRoKFwiO1wiKSkge1xu\nICAgICAgICBuZXdDb29raWUgPSBuZXdDb29raWUuc3Vic3RyaW5nKDEpO1xuICAgICAgfVxuICAg\nICAgcmV0dXJuIHRhcmdldENvb2tpZS5jb25jYXQobmV3Q29va2llKTtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDlpITnkIZjb29raWVcbiAgICAgKiBAcGFyYW0gZGV0YWlsc1xuICAgICAqIEBy\nZXR1cm5zXG4gICAgICpcL1xuICAgIGhhbmRsZShkZXRhaWxzKSB7XG4gICAgICBpZiAoZGV0YWls\ncy5mZXRjaCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuJGRh\ndGEuZW5hYmxlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBvd25Db29r\naWUgPSBcIlwiO1xuICAgICAgbGV0IHVybCA9IGRldGFpbHMudXJsO1xuICAgICAgaWYgKHVybC5z\ndGFydHNXaXRoKFwiXC9cL1wiKSkge1xuICAgICAgICB1cmwgPSB3aW5kb3cubG9jYXRpb24ucHJv\ndG9jb2wgKyB1cmw7XG4gICAgICB9XG4gICAgICBsZXQgdXJsT2JqID0gbmV3IFVSTCh1cmwpO1xu\nICAgICAgaWYgKHRoaXMuJGRhdGEudXNlRG9jdW1lbnRDb29raWUgJiYgdXJsT2JqLmhvc3RuYW1l\nLmVuZHNXaXRoKFxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoXCIuXCIp\nLnNsaWNlKC0yKS5qb2luKFwiLlwiKVxuICAgICAgKSkge1xuICAgICAgICBvd25Db29raWUgPSB0\naGlzLmNvbmNhdENvb2tpZShvd25Db29raWUsIGRvY3VtZW50LmNvb2tpZS50cmltKCkpO1xuICAg\nICAgfVxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuJGRhdGEuY29va2ll\nUnVsZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgbGV0IHJ1bGUgPSB0aGlzLiRkYXRhLmNv\nb2tpZVJ1bGVbaW5kZXhdO1xuICAgICAgICBpZiAodXJsT2JqLmhvc3RuYW1lLm1hdGNoKHJ1bGUu\naG9zdG5hbWUpKSB7XG4gICAgICAgICAgbGV0IGNvb2tpZSA9IFBvcHNQYW5lbC5nZXRWYWx1ZShy\ndWxlLmtleSk7XG4gICAgICAgICAgaWYgKHV0aWxzLmlzTnVsbChjb29raWUpKSB7XG4gICAgICAg\nICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgb3duQ29va2llID0gdGhpcy5jb25j\nYXRDb29raWUob3duQ29va2llLCBjb29raWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBp\nZiAodXRpbHMuaXNOb3ROdWxsKG93bkNvb2tpZSkpIHtcbiAgICAgICAgaWYgKGRldGFpbHMuaGVh\nZGVycyAmJiBkZXRhaWxzLmhlYWRlcnNbXCJDb29raWVcIl0pIHtcbiAgICAgICAgICBkZXRhaWxz\nLmhlYWRlcnMuQ29va2llID0gdGhpcy5jb25jYXRDb29raWUoXG4gICAgICAgICAgICBkZXRhaWxz\nLmhlYWRlcnMuQ29va2llLFxuICAgICAgICAgICAgb3duQ29va2llXG4gICAgICAgICAgKTtcbiAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZXRhaWxzLmhlYWRlcnNbXCJDb29raWVcIl0gPSBv\nd25Db29raWU7XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmluZm8oW1wiSHR0cHggPT4g6K6+572u\nY29va2llOlwiLCBkZXRhaWxzXSk7XG4gICAgICB9XG4gICAgICBpZiAoZGV0YWlscy5oZWFkZXJz\nICYmIGRldGFpbHMuaGVhZGVycy5Db29raWUgIT0gbnVsbCAmJiB1dGlscy5pc051bGwoZGV0YWls\ncy5oZWFkZXJzLkNvb2tpZSkpIHtcbiAgICAgICAgZGVsZXRlIGRldGFpbHMuaGVhZGVycy5Db29r\naWU7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBHTV9SRVNPVVJDRV9NQVBQSU5HID0g\ne1xuICAgIEVsZW1lbnRQbHVzOiB7XG4gICAgICBrZXlOYW1lOiBcIkVsZW1lbnRQbHVzUmVzb3Vy\nY2VDU1NcIixcbiAgICAgIHVybDogXCJodHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBt\nXC9lbGVtZW50LXBsdXNAbGF0ZXN0XC9kaXN0XC9pbmRleC5taW4uY3NzXCJcbiAgICB9LFxuICAg\nIFZpZXdlcjoge1xuICAgICAga2V5TmFtZTogXCJWaWV3ZXJDU1NcIixcbiAgICAgIHVybDogXCJo\ndHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBtXC92aWV3ZXJqc0BsYXRlc3RcL2Rpc3Rc\nL3ZpZXdlci5taW4uY3NzXCJcbiAgICB9LFxuICAgIEhsanM6IHtcbiAgICAgIGtleU5hbWU6IFwi\nSGxqc0NTU1wiLFxuICAgICAgdXJsOiBcImh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9u\ncG1cL2hpZ2hsaWdodC5qc0BsYXRlc3RcL3N0eWxlc1wvZ2l0aHViLWRhcmsubWluLmNzc1wiXG4g\nICAgfVxuICB9O1xuICBjb25zdCBfU0NSSVBUX05BTUVfID0gXCLjgJDnp7vliqjnq6\/jgJHnmb7l\nuqbns7vkvJjljJZcIjtcbiAgY29uc3QgdXRpbHMgPSBVdGlscy5ub0NvbmZsaWN0KCk7XG4gIGNv\nbnN0IGRvbXV0aWxzID0gRE9NVXRpbHMubm9Db25mbGljdCgpO1xuICBjb25zdCBfX3BvcHMgPSBw\nb3BzO1xuICBfbW9ua2V5V2luZG93LnNob3dkb3duIHx8IF91bnNhZmVXaW5kb3cuc2hvd2Rvd247\nXG4gIGNvbnN0IGxvZyA9IG5ldyBVdGlscy5Mb2coXG4gICAgX0dNX2luZm8sXG4gICAgX3Vuc2Fm\nZVdpbmRvdy5jb25zb2xlIHx8IF9tb25rZXlXaW5kb3cuY29uc29sZVxuICApO1xuICBjb25zdCBT\nQ1JJUFRfTkFNRSA9ICgoX2EyID0gX0dNX2luZm8gPT0gbnVsbCA\/IHZvaWQgMCA6IF9HTV9pbmZv\nLnNjcmlwdCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMi5uYW1lKSB8fCBfU0NSSVBUX05BTUVfO1xu\nICBjb25zdCBsb2FkaW5nVmlldyA9IG5ldyBMb2FkaW5nVmlldyh0cnVlKTtcbiAgY29uc3QgREVC\nVUcgPSBmYWxzZTtcbiAgbG9nLmNvbmZpZyh7XG4gICAgZGVidWc6IERFQlVHLFxuICAgIGxvZ01h\neENvdW50OiAyZTQsXG4gICAgYXV0b0NsZWFyQ29uc29sZTogdHJ1ZSxcbiAgICB0YWc6IHRydWVc\nbiAgfSk7XG4gIFFtc2cuY29uZmlnKFxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFxuICAg\nICAge1xuICAgICAgICBodG1sOiB0cnVlLFxuICAgICAgICBhdXRvQ2xvc2U6IHRydWUsXG4gICAg\nICAgIHNob3dDbG9zZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBvc2l0aW9u\nOiB7XG4gICAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC5nZXRW\nYWx1ZShcInFtc2ctY29uZmlnLXBvc2l0aW9uXCIsIFwiYm90dG9tXCIpO1xuICAgICAgICAgIH1c\nbiAgICAgICAgfSxcbiAgICAgICAgbWF4TnVtczoge1xuICAgICAgICAgIGdldCgpIHtcbiAgICAg\nICAgICAgIHJldHVybiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJxbXNnLWNvbmZpZy1tYXhudW1zXCIs\nIDUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2hvd1JldmVyc2U6IHtcbiAg\nICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gUG9wc1BhbmVsLmdldFZhbHVlKFwi\ncW1zZy1jb25maWctc2hvd3JldmVyc2VcIiwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9\nLFxuICAgICAgICB6SW5kZXg6IHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICBsZXQg\nbWF4WkluZGV4ID0gVXRpbHMuZ2V0TWF4WkluZGV4KCk7XG4gICAgICAgICAgICBsZXQgcG9wc01h\neFpJbmRleCA9IF9fcG9wcy5jb25maWcuSW5zdGFuY2VVdGlscy5nZXRQb3BzTWF4WkluZGV4KCku\nekluZGV4O1xuICAgICAgICAgICAgcmV0dXJuIFV0aWxzLmdldE1heFZhbHVlKG1heFpJbmRleCwg\ncG9wc01heFpJbmRleCkgKyAxMDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4g\nICAgKVxuICApO1xuICBfX3BvcHMuR2xvYmFsQ29uZmlnLnNldEdsb2JhbENvbmZpZyh7XG4gICAg\nekluZGV4OiAoKSA9PiB7XG4gICAgICBsZXQgbWF4WkluZGV4ID0gVXRpbHMuZ2V0TWF4WkluZGV4\nKHZvaWQgMCwgdm9pZCAwLCAoJGVsZSkgPT4ge1xuICAgICAgICB2YXIgX2EzO1xuICAgICAgICBp\nZiAoKF9hMyA9ICRlbGUgPT0gbnVsbCA\/IHZvaWQgMCA6ICRlbGUuY2xhc3NMaXN0KSA9PSBudWxs\nID8gdm9pZCAwIDogX2EzLmNvbnRhaW5zKFwicW1zZy1zaGFkb3ctY29udGFpbmVyXCIpKSB7XG4g\nICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICgoJGVsZSA9PSBu\ndWxsID8gdm9pZCAwIDogJGVsZS5jbG9zZXN0KFwicW1zZ1wiKSkgJiYgJGVsZS5nZXRSb290Tm9k\nZSgpIGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAg\nICAgICAgfVxuICAgICAgfSk7XG4gICAgICBsZXQgcG9wc01heFpJbmRleCA9IHBvcHMuY29uZmln\nLkluc3RhbmNlVXRpbHMuZ2V0UG9wc01heFpJbmRleCgpLnpJbmRleDtcbiAgICAgIHJldHVybiBV\ndGlscy5nZXRNYXhWYWx1ZShtYXhaSW5kZXgsIHBvcHNNYXhaSW5kZXgpICsgMTAwO1xuICAgIH1c\nbiAgfSk7XG4gIGNvbnN0IEdNX01lbnUgPSBuZXcgVXRpbHMuR01fTWVudSh7XG4gICAgR01fZ2V0\nVmFsdWU6IF9HTV9nZXRWYWx1ZSxcbiAgICBHTV9zZXRWYWx1ZTogX0dNX3NldFZhbHVlLFxuICAg\nIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQ6IF9HTV9yZWdpc3Rlck1lbnVDb21tYW5kLFxuICAgIEdN\nX3VucmVnaXN0ZXJNZW51Q29tbWFuZDogX0dNX3VucmVnaXN0ZXJNZW51Q29tbWFuZFxuICB9KTtc\nbiAgY29uc3QgaHR0cHggPSBuZXcgVXRpbHMuSHR0cHgoX0dNX3htbGh0dHBSZXF1ZXN0KTtcbiAg\naHR0cHguaW50ZXJjZXB0b3JzLnJlcXVlc3QudXNlKChkYXRhKSA9PiB7XG4gICAgSHR0cHhDb29r\naWVNYW5hZ2VyLmhhbmRsZShkYXRhKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfSk7XG4gIGh0dHB4\nLmludGVyY2VwdG9ycy5yZXNwb25zZS51c2Uodm9pZCAwLCAoZGF0YSkgPT4ge1xuICAgIGxvZy5l\ncnJvcihbXCLmi6bmiKrlmagt6K+35rGC6ZSZ6K+vXCIsIGRhdGFdKTtcbiAgICBpZiAoZGF0YS50\neXBlID09PSBcIm9uYWJvcnRcIikge1xuICAgICAgUW1zZy53YXJuaW5nKFwi6K+35rGC5Y+W5raI\nXCIpO1xuICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSBcIm9uZXJyb3JcIikge1xuICAgICAg\nUW1zZy5lcnJvcihcIuivt+axguW8guW4uFwiKTtcbiAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9\nPT0gXCJvbnRpbWVvdXRcIikge1xuICAgICAgUW1zZy5lcnJvcihcIuivt+axgui2heaXtlwiKTtc\nbiAgICB9IGVsc2Uge1xuICAgICAgUW1zZy5lcnJvcihcIuWFtuWug+mUmeivr1wiKTtcbiAgICB9\nXG4gICAgcmV0dXJuIGRhdGE7XG4gIH0pO1xuICBodHRweC5jb25maWcoe1xuICAgIGxvZ0RldGFp\nbHM6IERFQlVHXG4gIH0pO1xuICBjb25zdCBPcmlnaW5Qcm90b3R5cGUgPSB7XG4gICAgT2JqZWN0\nOiB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eTogX3Vuc2FmZVdpbmRvdy5PYmplY3QuZGVmaW5lUHJv\ncGVydHlcbiAgICB9LFxuICAgIEZ1bmN0aW9uOiB7XG4gICAgICBhcHBseTogX3Vuc2FmZVdpbmRv\ndy5GdW5jdGlvbi5wcm90b3R5cGUuYXBwbHksXG4gICAgICBjYWxsOiBfdW5zYWZlV2luZG93LkZ1\nbmN0aW9uLnByb3RvdHlwZS5jYWxsXG4gICAgfSxcbiAgICBFbGVtZW50OiB7XG4gICAgICBhcHBl\nbmRDaGlsZDogX3Vuc2FmZVdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZFxuICAg\nIH0sXG4gICAgc2V0VGltZW91dDogX3Vuc2FmZVdpbmRvdy5zZXRUaW1lb3V0XG4gIH07XG4gIGNv\nbnN0IGFkZFN0eWxlID0gdXRpbHMuYWRkU3R5bGUuYmluZCh1dGlscyk7XG4gIGNvbnN0IFZVRV9F\nTEVfTkFNRV9JRCA9IFwidml0ZS1hcHBcIjtcbiAgY29uc3QgTW91bnRWdWUgPSBhc3luYyBmdW5j\ndGlvbih0YXJnZXRBcHAsIHBsdWdpbiA9IFtdKSB7XG4gICAgRE9NVXRpbHMucmVhZHkoYXN5bmMg\nKCkgPT4ge1xuICAgICAgY29uc3QgYXBwID0gdnVlLmNyZWF0ZUFwcCh0YXJnZXRBcHApO1xuICAg\nICAgbGV0ICRtb3VudCA9IERPTVV0aWxzLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAg\nICBpZDogVlVFX0VMRV9OQU1FX0lEXG4gICAgICB9KTtcbiAgICAgIHtcbiAgICAgICAgaWYgKEVs\nZW1lbnRQbHVzSWNvbnNWdWUgIT0gbnVsbCkge1xuICAgICAgICAgIGZvciAoY29uc3QgW2tleSwg\nY29tcG9uZW50XSBvZiBPYmplY3QuZW50cmllcyhFbGVtZW50UGx1c0ljb25zVnVlKSkge1xuICAg\nICAgICAgICAgYXBwLmNvbXBvbmVudChrZXksIGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAg\nICAgICB9XG4gICAgICB9XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCRtb3VudCk7\nXG4gICAgICBwbHVnaW4uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBhcHAudXNlKGl0ZW0p\nO1xuICAgICAgfSk7XG4gICAgICBhcHAubW91bnQoJG1vdW50KTtcbiAgICB9KTtcbiAgICBDb21t\nb25VdGlsLnNldEdNUmVzb3VyY2VDU1MoR01fUkVTT1VSQ0VfTUFQUElORy5FbGVtZW50UGx1cyk7\nXG4gIH07XG4gIGNvbnN0IFNlYXJjaFNoaWVsZENTUyA9IGAuYy1jb250YWluZXIubmEtZWMtaXRl\nbSxcXHJcbi5jLWNvbnRhaW5lci5lYy1jb250YWluZXIsXFxyXG5kaXZbZGF0YS10eXBlPVwiYWRc\nIl0sXFxyXG4uYy1yZXN1bHQuc2ZjLWxvZ1tkYXRhLXRwbD1cImFkdl93ZW5rdV9mY1wiXSxcXHJc\nbi5jLXJlY29tbS13cmFwLm5ldy11eC1yZWNvbS13cmFwcGVyLmFuaW1hdGlvbixcXHJcbiNyZXN1\nbHRzLXByZSxcXHJcbi52aWRlby1yZWNvbW1lbmQsXFxyXG4uYy1yZXN1bHQuc2ZjLWxvZ1tkYXRh\nLXRwbD1cInNlYXJjaF9yZWNvbW1cIl0sXFxyXG4uc2ZjLWltYWdlLWNvbnRlbnQtd2F0ZXJmYWxs\nLWl0ZW1bd2F0LWl0ZW0tZGF0YS1pZD1cIm5vLWltZ1wiXSxcXHJcbi5zZS1yZXN1bHRzLXByZSxc\nXHJcbi5lY193aXNlX2FkLFxcclxuZGl2I2NvcHlyaWdodCArIGRpdixcXHJcbmRpdiNwb3AtdXAs\nXFxyXG5kaXZbY2xhc3MqPSdhZC13cmFwcGVyX18nXSxcXHJcbmRpdltjbGFzcyo9J3JlYy13cmFw\ncGVyX18nXSxcXHJcbi5icmFuZC1lbnRyeSxcXHJcbi5iYXJlYS1hZCxcXHJcbi5zd2FuLWFkLWZj\nLXJjbWQuc3dhbi1hZC1mYy1iYXNlLXdyYXBbZGF0YS1wbGF0Zm9ybV0sXFxyXG5kaXYjcGFnZS1i\nZCBkaXYucmVjb21tZW5kLFxcclxuZGl2LnNob3J0LW1pbmkgZGl2W2RhdGEtbW9kdWxlPVwicmVj\nOnVuZGVmaW5lZC11bmRlZmluZWRcIl0sXFxyXG5cLyog55u45YWz6L2v5Lu2ICpcL1xcclxuZGl2\nW3NyY2lkPVwic2lnbWFfY2VsZWJyaXR5X3JlbGFcIl0sXFxyXG5cLyog5pCc5LiA5Lqb6ZqQ56eB\n55qE5YaF5a655pe25by55Ye655qE5p2l55qE77yM5byA5ZCv5peg55eV5qih5byPLS0tLeS\/neaK\npOmakOenge+8jOWuieWFqOa1j+iniCAqXC9cXHJcbmRpdjpoYXMocC5pdmstcHJpdmF0ZS1wKSxc\nXHJcblwvKiDmmbrog73ljaHniYfnmoQg5pu05aSaIOaMiemSriAqXC9cXHJcbi5jLXJlc3VsdC1j\nb250ZW50IGRpdltybC10eXBlPVwic3RvcFwiXTpoYXMoZGl2W2RhdGEtbW9kdWxlPVwibGdzZFwi\nXSkge1xcclxuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXG59XFxyXG4uc2VhcmNoYm94\ndG9wLm5ld3NlYXJjaC13aGl0ZS1zdHlsZSAuc2UtZm9ybSB7XFxyXG5cdGJvcmRlci1jb2xvcjog\nIzRlNmVmMiAhaW1wb3J0YW50O1xcclxufVxcclxuLnNlYXJjaGJveHRvcC5uZXdzZWFyY2gtd2hp\ndGUtc3R5bGUgLnNlLWJuIHtcXHJcblx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcXHJcblx0YmFj\na2dyb3VuZDogIzRlNmVmMiAhaW1wb3J0YW50O1xcclxufVxcclxuLnNlLWhlYWQtbG9nbyAuc2Ut\nbG9nbyBpbWcge1xcclxuXHRkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XFxyXG59XFxyXG4u\nc2UtaGVhZC10YWJsaW5rIHtcXHJcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNmU2ZTYg\nIWltcG9ydGFudDtcXHJcblx0XC8qYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50Oypc\nL1xcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcclxufVxc\nclxuXFxyXG5hLnNlLXRhYml0ZW0gc3BhbiB7XFxyXG5cdGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7\nXFxyXG59XFxyXG5cLypkaXYuYy1wZWFrLWxheWVye1xcclxuICAgZGlzcGxheTpub25lICFpbXBv\ncnRhbnQ7XFxyXG4gfSDnmb7luqblhbPplK7lrZfog4zmma8qXC9cXHJcbi5zZS10YWJsaW5rLXNj\ncm9sbC13cmFwcGVyIC5zZS10YWItY3VyOmFmdGVyIHtcXHJcblx0Ym9yZGVyLWJvdHRvbTogMnB4\nIHNvbGlkICMzOGYgIWltcG9ydGFudDtcXHJcbn1cXHJcbi5jLXRhZ3Mtc2Nyb2xsLmMtcGFkZGlu\nZy14IHtcXHJcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcclxufVxcclxuLndoaXRlLWJk\nc2VhcmNoLWlzcmVkaXJlY3J0IHtcXHJcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XFxyXG5cdGJh\nY2tncm91bmQ6ICM0M2JhNzY7XFxyXG5cdGNvbG9yOiAjZmZmO1xcclxuXHR3aWR0aDogMjhweDtc\nXHJcblx0Zm9udC1zaXplOiAxNnB4O1xcclxuXHRsaW5lLWhlaWdodDogMjVweDtcXHJcblx0anVz\ndGlmeS1jb250ZW50OiBjZW50ZXI7XFxyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxyXG5cdGJv\ncmRlci1yYWRpdXM6IDVweDtcXHJcblx0bWFyZ2luOiAwIGF1dG87XFxyXG5cdG1hcmdpbi1yaWdo\ndDogNnB4O1xcclxufVxcclxuXC8qIOS\/ruWkjeWbvueJh+aYvuekuumXrumimCAqXC9cXHJcbi5p\nbWFnZS1zdHJvbmctY2FyZCBkaXZbY2xhc3MqPVwiaW1hZ2UtY29udGVudF9fXCJdID4gZGl2IHtc\nXHJcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xcclxu\nXHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcclxufVxcclxuLmMtcmVzdWx0LWNvbnRlbnQgZGl2W2Ns\nYXNzKj1cInRpZWJhLW5ld3htbC1mb3J1bS1pbWctY2xhc3NfX1wiXSB7XFxyXG5cdGRpc3BsYXk6\nIC13ZWJraXQtYm94O1xcclxuXHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XFxyXG5cdGRpc3BsYXk6\nIGZsZXg7XFxyXG5cdC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxyXG5cdC1tb3otYm94LWFs\naWduOiBjZW50ZXI7XFxyXG5cdC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcblx0YWxp\nZ24taXRlbXM6IGNlbnRlcjtcXHJcbn1cXHJcblxcclxuLmMtcmVzdWx0LWNvbnRlbnQgZGl2W2Ns\nYXNzKj1cInRpZWJhLW5ld3htbC1mb3J1bS1pbWdfX1wiXSB7XFxyXG5cdHdpZHRoOiAwLjU1M3Jl\nbTtcXHJcblx0aGVpZ2h0OiAwLjU1M3JlbTtcXHJcbn1cXHJcblxcclxuLmMtcmVzdWx0LWNvbnRl\nbnQgZGl2W2NsYXNzKj1cInRpZWJhLW5ld3htbC1mb3J1bS1pbWdfX1wiXSBpbWcge1xcclxuXHR3\naWR0aDogMTAwJTtcXHJcblx0aGVpZ2h0OiAxMDAlO1xcclxuXHRib3JkZXItcmFkaXVzOiAwLjA5\ncmVtO1xcclxufVxcclxuLmMtcmVzdWx0LWNvbnRlbnQgZGl2W2NsYXNzKj1cInRpZWJhLW5ld3ht\nbC1mb3J1bS1jbGFzc19fXCJdIHtcXHJcblx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xcclxuXHRk\naXNwbGF5OiBmbGV4O1xcclxuXHQtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxuXHQt\nbW96LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcclxuXHQtd2Via2l0LWJveC1kaXJlY3Rpb246IG5v\ncm1hbDtcXHJcblx0LW1vei1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxyXG5cdC13ZWJraXQtZmxl\neC1kaXJlY3Rpb246IGNvbHVtbjtcXHJcblx0LW1vei1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xc\nclxuXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcclxuXHQtd2Via2l0LWJveC1wYWNrOiBjZW50\nZXI7XFxyXG5cdC1tb3otYm94LXBhY2s6IGNlbnRlcjtcXHJcblx0LXdlYmtpdC1qdXN0aWZ5LWNv\nbnRlbnQ6IGNlbnRlcjtcXHJcblx0LW1vei1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcblx0\nanVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxyXG5cdG1heC13aWR0aDogMi4ycmVtO1xcclxufVxc\nclxuLmMtcmVzdWx0LWNvbnRlbnQgZGl2W2NsYXNzKj1cImMtaW1nLWNvbnRlbnQtYnRuX19cIl0g\ne1xcclxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XFxyXG5cdHJpZ2h0OiAwO1xcclxuXHR3aWR0aDog\nMC41NXJlbTtcXHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xcclxuXHRsaW5lLWhlaWdodDogMC4y\nOHJlbTtcXHJcblx0Ym9yZGVyOiAxcHggc29saWQgcmdiYSgzMSwgMzEsIDMxLCAwLjUpO1xcclxu\nXHRib3JkZXItcmFkaXVzOiAwLjE1cmVtO1xcclxuXHRmb250LWZhbWlseTogUGluZ0ZhbmdTQy1N\nZWRpdW07XFxyXG5cdGZvbnQtc2l6ZTogMC4xM3JlbTtcXHJcblx0Y29sb3I6ICMxZjFmMWY7XFxy\nXG59XFxyXG4uYy1yZXN1bHQtY29udGVudCBkaXZbY2xhc3MqPVwidGllYmEtbmV3eG1sLXRocmVh\nZC1jb21tZW50LXVzZXJfX1wiXSB7XFxyXG5cdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcXHJcblx0\nZGlzcGxheTogZmxleDtcXHJcblx0LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXHJcblx0LW1v\nei1ib3gtYWxpZ246IGNlbnRlcjtcXHJcblx0LXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xc\nclxuXHQtbW96LWFsaWduLWl0ZW1zOiBjZW50ZXI7XFxyXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7\nXFxyXG5cdG1hcmdpbi10b3A6IDAuMDNyZW07XFxyXG59XFxyXG4uYy1yZXN1bHQtY29udGVudCBk\naXZbY2xhc3MqPVwidGllYmEtbmV3eG1sLXRocmVhZC1jb21tZW50LXVzZXJfX1wiXSBpbWcge1xc\nclxuXHR3aWR0aDogMC4xNnJlbTtcXHJcblx0aGVpZ2h0OiAwLjE2cmVtO1xcclxuXHRib3JkZXIt\ncmFkaXVzOiA1MCU7XFxyXG59XFxyXG4uYy1yZXN1bHQtY29udGVudCBkaXZbY2xhc3MqPVwidGll\nYmEtbmV3eG1sLXRocmVhZC1jb21tZW50LXVzZXJfX1wiXSBzcGFuIHtcXHJcblx0bWFyZ2luLXJp\nZ2h0OiAwLjA4cmVtO1xcclxufVxcclxuLndoaXRlc2V2LWdtLXJlZmFjdG9yLWV2ZXJ5b25lLXNl\nYXJjaGluZyB7XFxyXG5cdHdpZHRoOiAxMDAlO1xcclxuXHRib3gtc2l6aW5nOiBib3JkZXItYm94\nO1xcclxuXHRoZWlnaHQ6IDIuODU3ZW07XFxyXG5cdGxpbmUtaGVpZ2h0OiAyLjg1NztcXHJcblx0\nYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjZmOTtcXHJcblx0Ym9yZGVyLWNvbG9yOiAjZjVmNmY5O1xc\nclxuXHRwYWRkaW5nOiAwIDAuMDhyZW07XFxyXG5cdFwvKnZlcnRpY2FsLWFsaWduOiBtaWRkbGU7\nKlwvXFxyXG5cdG91dGxpbmU6IDA7XFxyXG5cdGZvbnQtc2l6ZTogMTRweDtcXHJcblx0b3ZlcmZs\nb3c6IGhpZGRlbjtcXHJcblx0Ym9yZGVyLXJhZGl1czogOXB4O1xcclxuXHR0ZXh0LWFsaWduOiBj\nZW50ZXI7XFxyXG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXHJcblx0LXdlYmtpdC10YXAtaGln\naGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXHJcblx0LW1vei10YXAtaGlnaGxpZ2h0LWNvbG9y\nOiB0cmFuc3BhcmVudDtcXHJcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxyXG5cdHdoaXRl\nLXNwYWNlOiBub3dyYXA7XFxyXG5cdC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXHJc\nblx0LW1vei1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcclxuXHQtd2Via2l0LWJveC1hbGlnbjog\nc3RyZXRjaDtcXHJcblx0LW1vei1ib3gtYWxpZ246IHN0cmV0Y2g7XFxyXG5cdGRpc3BsYXk6IGJs\nb2NrO1xcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxyXG5cdC13ZWJraXQt\nanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcclxuXHQtbW96LWp1c3RpZnktY29udGVu\ndDogc3BhY2UtYmV0d2VlbjtcXHJcblx0LXdlYmtpdC1hbGlnbi1pdGVtczogc3RyZXRjaDtcXHJc\nblx0LW1vei1hbGlnbi1pdGVtczogc3RyZXRjaDtcXHJcblx0YWxpZ24taXRlbXM6IHN0cmV0Y2g7\nXFxyXG5cdGZsZXgtd3JhcDogbm93cmFwO1xcclxuXHQtd2Via2l0LWZsZXgtd3JhcDogbm93cmFw\nO1xcclxuXHQtbW96LWZsZXgtd3JhcDogbm93cmFwO1xcclxufVxcclxuXFxyXG5cLyog6K6p5pCc\n57Si5Lit5p+Q5Lqb6KeG6aKR55qE6Zi25q615Y+v5Lul5qiq5ZCR5rua5YqoICpcL1xcclxuZGl2\nW2NsYXNzXj1cIm5ldy1zdW1tYXJ5LWNvbnRhaW5lcl9cIl0ge1xcclxuXHRvdmVyZmxvdzogYXV0\nbztcXHJcbn1cXHJcblxcclxuXC8qIOaZuuiDveWNoeeJhyDlsZXlvIDmm7TlpJrvvIzov5nph4zm\nmK\/mi7zpn7MgKlwvXFxyXG4uYy1yZXN1bHQtY29udGVudFxcclxuXHRkaXZbY2xhc3MqPVwibXVs\ndGktcGlueWluX1wiXVxcclxuXHRkaXZbY2xhc3MqPVwibXVsdGktcGlueWluLWl0ZW1cIl1bc3R5\nbGUqPVwiZGlzcGxheTogbm9uZVwiXSB7XFxyXG5cdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7\nXFxyXG59XFxyXG5gO1xuICBjb25zdCBTZWFyY2hIZWFsdGhTaGllbGRDU1MgPSAnXC8qIOWPs+S4\ni+inkuaCrOa1rueahOWBpeW6t+ebtOaSremXtOWbvuagh+aMiemSriAqXC9cXHJcXG5kaXZbY2xh\nc3NePVwiaW5kZXhfYnJhbmRFbnRyeVwiXSB7XFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRh\nbnQ7XFxyXFxufVxcclxcbic7XG4gIGNvbnN0IEJhaWR1SGVhZGx0aCA9IHtcbiAgICBpbml0KCkg\ne1xuICAgICAgYWRkU3R5bGUoU2VhcmNoSGVhbHRoU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZv\nKFwi5o+S5YWlQ1NT6KeE5YiZXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJh\naWR1X3NlYXJjaF9oZWFkbHRoX3NoaWVsZF9vdGhlcl9pbmZvXCIsICgpID0+IHtcbiAgICAgICAg\ncmV0dXJuIHRoaXMuc2hpZWxkT3RoZXJJbmZvKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5l\nbC5leGVjTWVudU9uY2UoXCJiYWlkdV9zZWFyY2hfaGVhZGx0aF9zaGllbGRfYm90dG9tX3Rvb2xi\nYXJcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRTZXJ2aWNlQnV0dG9uc1Jv\ndygpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog44CQ5bGP6JS944CR5bqV\n6YOo5YW25a6D5L+h5oGvXG4gICAgICpcL1xuICAgIHNoaWVsZE90aGVySW5mbygpIHtcbiAgICAg\nIGxvZy5pbmZvKFwi44CQ5bGP6JS944CR5bqV6YOo5YW25a6D5L+h5oGvXCIpO1xuICAgICAgcmV0\ndXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgICdhcnRpY2xlW2NsYXNzXSA+IGRp\ndltjbGFzc149XCJpbmRleF9jb250YWluZXJcIl0nLFxuICAgICAgICBcL1wvIDIwMjQuNy4zMSBo\ndHRwczpcL1wvbS5iYWlkdS5jb21cL2JoXC9tXC9kZXRhaWxcL2FyXzU3MzcyNDM2OTkxMzM2Nzgw\nMjdcbiAgICAgICAgJyNtYWluID4gZGl2W2NsYXNzXj1cImluZGV4X2NvbnRhaW5lclwiXSdcbiAg\nICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog44CQ5bGP6JS944CR5bqV6YOo5bel5YW3\n5qCPXG4gICAgICpcL1xuICAgIHNoaWVsZFNlcnZpY2VCdXR0b25zUm93KCkge1xuICAgICAgbG9n\nLmluZm8oXCLjgJDlsY\/olL3jgJHlupXpg6jlt6XlhbfmoI9cIik7XG4gICAgICByZXR1cm4gQ29t\nbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAgICAgJ2FydGljbGVbY2xhc3NdID4gZGl2W2NsYXNz\nXj1cImluZGV4X2hlYWx0aFNlcnZpY2VCdXR0b25zUm93XCJdJyxcbiAgICAgICAgXC9cLyAyMDI0\nLjcuMzEgaHR0cHM6XC9cL20uYmFpZHUuY29tXC9iaFwvbVwvZGV0YWlsXC9hcl81NzM3MjQzNjk5\nMTMzNjc4MDI3XG4gICAgICAgICcjbWFpbiA+IGRpdltjbGFzc149XCJpbmRleF9pbnRlcmFjdFdy\nYXBcIl0nXG4gICAgICApO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQmFpZHVIb29rID0ge1xuICAg\nICRpc0hvb2s6IHtcbiAgICAgIHdpbmRvd0JveEpTQmVmb3JlOiBmYWxzZSxcbiAgICAgIG9iamVj\ndERlZmluZVByb3BlcnR5X3NlYXJjaDogZmFsc2UsXG4gICAgICB3aW5kb3dKUXVlcnlBcHBlbmQ6\nIGZhbHNlLFxuICAgICAgd2luZG93T3BlbkJveDogZmFsc2UsXG4gICAgICB3aW5kb3dXZWJwYWNr\nSnNvbnBfdGllYmE6IGZhbHNlLFxuICAgICAgd2luZG93V2VicGFja0pzb25wX2hhb2thbjogZmFs\nc2UsXG4gICAgICB3aW5kb3dfb3BlbkNvbnRlbnRCb3g6IGZhbHNlLFxuICAgICAgZnVuY3Rpb25D\nYWxsX2JhaWppYWhhb19tYXA6IGZhbHNlXG4gICAgfSxcbiAgICAkZGF0YToge1xuICAgICAgZnVu\nY3Rpb25BcHBseTogW10sXG4gICAgICBmdW5jdGlvbkNhbGw6IFtdLFxuICAgICAgZWxlbWVudEFw\ncGVuZENoaWxkOiBbXSxcbiAgICAgIHNldFRpbWVvdXQ6IFtdLFxuICAgICAgd2luZG93RGVmaW5l\nOiBbXVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOe7n+S4gOeuoeeQhmFwcGx555qE5Yqr5oyB\n77yM6Ziy5q2i5aWX5aiDXG4gICAgICogQHBhcmFtIG1vZGUg5Yqr5oyB55qE57G75Z6LXG4gICAg\nICpcL1xuICAgIGZ1bmN0aW9uQXBwbHkobW9kZSkge1xuICAgICAgdGhpcy4kZGF0YS5mdW5jdGlv\nbkFwcGx5LnB1c2gobW9kZSk7XG4gICAgICBpZiAodGhpcy4kZGF0YS5mdW5jdGlvbkFwcGx5Lmxl\nbmd0aCA+IDEpIHtcbiAgICAgICAgbG9nLmluZm8oXCJGdW5jdGlvbi5wcm9wZXJ0eS5hcHBseSBo\nb29r5paw5aKe5Yqr5oyB5Y+C5pWw77yaXCIgKyBtb2RlKTtcbiAgICAgICAgcmV0dXJuO1xuICAg\nICAgfVxuICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuICAgICAgbG9nLmluZm8oXCLliJ3lp4vljJZG\ndW5jdGlvbi5wcm9wZXJ0eS5hcHBseSBob29rXCIpO1xuICAgICAgX3Vuc2FmZVdpbmRvdy5GdW5j\ndGlvbi5wcm90b3R5cGUuYXBwbHkgPSBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgIGlmICh0\naGF0LiRkYXRhLmZ1bmN0aW9uQXBwbHkuaW5jbHVkZXMoXCJjb3B5XCIpKSB7XG4gICAgICAgICAg\ndHJ5IHtcbiAgICAgICAgICAgIGxldCBmaXJzdFBhcmFtID0gYXJnc1sxXTtcbiAgICAgICAgICAg\nIGlmIChhcmdzLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgZmlyc3RQYXJhbSA9PT0gXCJvYmplY3Rc\nIiAmJiBcIlwiICsgZmlyc3RQYXJhbSA9PT0gXCJbb2JqZWN0IEFyZ3VtZW50c11cIiAmJiBmaXJz\ndFBhcmFtLmxlbmd0aCA9PT0gMSAmJiB0eXBlb2YgZmlyc3RQYXJhbVswXSA9PT0gXCJvYmplY3Rc\nIiAmJiBmaXJzdFBhcmFtWzBdICE9IG51bGwgJiYgXCJhcHBOYW1lXCIgaW4gZmlyc3RQYXJhbVsw\nXSAmJiBcImNoZWNrVG9rZW5Db3BpZWRcIiBpbiBmaXJzdFBhcmFtWzBdICYmIFwiZGVlcGxpbmtc\nIiBpbiBmaXJzdFBhcmFtWzBdICYmIFwic2NoZW1lXCIgaW4gZmlyc3RQYXJhbVswXSAmJiBcInRv\na2VuXCIgaW4gZmlyc3RQYXJhbVswXSAmJiBcInVzZURlZXBsaW5rXCIgaW4gZmlyc3RQYXJhbVsw\nXSkge1xuICAgICAgICAgICAgICBsb2cuc3VjY2VzcyhbXCLliqvmjIHlpI3liLbliLDliarotLTm\nnb\/lh73mlbBcIiwgLi4uZmlyc3RQYXJhbV0pO1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IFBy\nb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkge1xuICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFtc\nIuS\/ruaUueWPguaVsOW5tuWKq+aMgeWkjeWItuWIsOWJqui0tOadv+i\/lOWbnnRydWVcIl0pO1xu\nICAgICAgICAgICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgICAgICAgICAgc3RhdHVzOiB0cnVl\nXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxu\nICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAg\nICAgIGlmICh0aGF0LiRkYXRhLmZ1bmN0aW9uQXBwbHkuaW5jbHVkZXMoXCJzY2hlbWVcIikpIHtc\nbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGZpcnN0UGFyYW0gPSBhcmdzWzFdO1xu\nICAgICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSAyICYmIHR5cGVvZiBmaXJzdFBhcmFtID09\nPSBcIm9iamVjdFwiICYmIFwiXCIgKyBmaXJzdFBhcmFtID09PSBcIltvYmplY3QgQXJndW1lbnRz\nXVwiICYmIGZpcnN0UGFyYW0ubGVuZ3RoID09PSAyICYmIGZpcnN0UGFyYW1bMV0gPT09IFwic2No\nZW1lXCIpIHtcbiAgICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5Yqr5oyBU2NoZW1lXCIsIC4u\nLmZpcnN0UGFyYW1dKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAg\nIHJldHVybiBPcmlnaW5Qcm90b3R5cGUuRnVuY3Rpb24uYXBwbHkuY2FsbCh0aGlzLCAuLi5hcmdz\nKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog57uf5LiA566h55CGY2FsbOea\nhOWKq+aMge+8jOmYsuatouWll+Wog1xuICAgICAqICsg55m+5a625Y+3KGJhaWppYWhhby5iYWlk\ndS5jb20pXG4gICAgICogKyDnmb7luqblnLDlm74obWFwLmJhaWR1LmNvbSlcbiAgICAgKiBAcGFy\nYW0gbW9kZSDliqvmjIHnmoTnsbvlnotcbiAgICAgKlwvXG4gICAgZnVuY3Rpb25DYWxsKG1vZGUp\nIHtcbiAgICAgIHRoaXMuJGRhdGEuZnVuY3Rpb25DYWxsLnB1c2gobW9kZSk7XG4gICAgICBpZiAo\ndGhpcy4kZGF0YS5mdW5jdGlvbkNhbGwubGVuZ3RoID4gMSkge1xuICAgICAgICBsb2cuaW5mbyhc\nIkZ1bmN0aW9uLnByb3BlcnR5LmNhbGwgaG9va+aWsOWinuWKq+aMgeWPguaVsO+8mlwiICsgbW9k\nZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKFwi5Yid5aeL5YyW\nRnVuY3Rpb24ucHJvcGVydHkuY2FsbCBob29rXCIpO1xuICAgICAgbGV0IG9yaWdpbkNhbGwgPSBf\ndW5zYWZlV2luZG93LkZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsO1xuICAgICAgX3Vuc2FmZVdpbmRv\ndy5GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAg\ndmFyIF9hMywgX2IsIF9jLCBfZCwgX2U7XG4gICAgICAgIGxldCByZXN1bHQgPSBvcmlnaW5DYWxs\nLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICBpZiAobW9kZSA9PT0gXCJiYWlqaWFoYW9faW52\nb2tlXCIpIHtcbiAgICAgICAgICBpZiAoYXJncy5sZW5ndGggPT09IDQgJiYgdHlwZW9mICgoX2Ez\nID0gYXJnc1sxXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hM1tcImV4cG9ydHNcIl0pID09PSBcIm9i\namVjdFwiICYmIFwiZXhlY0NvcHlcIiBpbiAoKF9iID0gYXJnc1sxXSkgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9iW1wiZXhwb3J0c1wiXSkgJiYgXCJpbnZva2VBcHBcIiBpbiAoKF9jID0gYXJnc1sxXSkg\nPT0gbnVsbCA\/IHZvaWQgMCA6IF9jW1wiZXhwb3J0c1wiXSkgJiYgXCJpbnZva2VNYXJrZXRcIiBp\nbiAoKF9kID0gYXJnc1sxXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9kW1wiZXhwb3J0c1wiXSkgJiYg\nXCJpbnZva2VUcEFwcFwiIGluICgoX2UgPSBhcmdzWzFdKSA9PSBudWxsID8gdm9pZCAwIDogX2Vb\nXCJleHBvcnRzXCJdKSkge1xuICAgICAgICAgICAgYXJnc1sxXVtcImV4cG9ydHNcIl1bXCJleGVj\nQ29weVwiXSA9IGZ1bmN0aW9uKC4uLmFyZ3MyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcg\nUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFtcIumY\nu+atouiwg+eUqGV4ZWNDb3B5XCIsIGFyZ3MyXSk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShu\ndWxsKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYXJn\nc1sxXVtcImV4cG9ydHNcIl1bXCJpbnZva2VBcHBcIl0gPSBmdW5jdGlvbiguLi5hcmdzMikge1xu\nICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAg\nICAgICAgICBsb2cuc3VjY2VzcyhbXCLpmLvmraLosIPnlKhpbnZva2VBcHBcIiwgYXJnczJdKTtc\nbiAgICAgICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAg\nICAgICAgIH07XG4gICAgICAgICAgICBhcmdzWzFdW1wiZXhwb3J0c1wiXVtcImludm9rZU1hcmtl\ndFwiXSA9IGZ1bmN0aW9uKC4uLmFyZ3MyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuZXcgUHJv\nbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFtcIumYu+at\nouiwg+eUqGludm9rZU1hcmtldFwiLCBhcmdzMl0pO1xuICAgICAgICAgICAgICAgIHJlc29sdmUo\nbnVsbCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGFy\nZ3NbMV1bXCJleHBvcnRzXCJdW1wiaW52b2tlVHBBcHBcIl0gPSBmdW5jdGlvbiguLi5hcmdzMikg\ne1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAg\nICAgICAgICAgICBsb2cuc3VjY2VzcyhbXCLpmLvmraLosIPnlKhpbnZva2VUcEFwcFwiLCBhcmdz\nMl0pO1xuICAgICAgICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgICAgIH0pO1xu\nICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyICYm\nIGFyZ3NbMF0gPT09IHZvaWQgMCAmJiBhcmdzWzFdICE9IG51bGwgJiYgXCJhcmdcIiBpbiBhcmdz\nWzFdICYmIFwiZGVsZWdhdGVcIiBpbiBhcmdzWzFdICYmIFwiZG9uZVwiIGluIGFyZ3NbMV0gJiYg\nXCJtZXRob2RcIiBpbiBhcmdzWzFdICYmIFwibmV4dFwiIGluIGFyZ3NbMV0gJiYgXCJwcmV2XCIg\naW4gYXJnc1sxXSkge1xuICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5L+u5pS55Y+C5pWwXCIs\nIGFyZ3NbMV1dKTtcbiAgICAgICAgICAgIGFyZ3NbMV1bXCJtZXRob2RcIl0gPSBcInJldHVyblwi\nO1xuICAgICAgICAgICAgYXJnc1sxXVtcIm5leHRcIl0gPSBcImVuZFwiO1xuICAgICAgICAgICAg\nYXJnc1sxXVtcInByZXZcIl0gPSAyNDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAo\nbW9kZSA9PT0gXCJtYXBcIikge1xuICAgICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMiAmJiBh\ncmdzWzBdID09PSB2b2lkIDAgJiYgYXJnc1sxXSAhPSBudWxsICYmIFwiYXJnXCIgaW4gYXJnc1sx\nXSAmJiBcImRlbGVnYXRlXCIgaW4gYXJnc1sxXSAmJiBcImRvbmVcIiBpbiBhcmdzWzFdICYmIFwi\nbWV0aG9kXCIgaW4gYXJnc1sxXSAmJiBcIm5leHRcIiBpbiBhcmdzWzFdICYmIFwicHJldlwiIGlu\nIGFyZ3NbMV0pIHtcbiAgICAgICAgICAgIGxvZy5zdWNjZXNzKFtcIuS\/ruaUueWPguaVsFwiLCBh\ncmdzWzFdXSk7XG4gICAgICAgICAgICBhcmdzWzFdW1wibWV0aG9kXCJdID0gXCJyZXR1cm5cIjtc\nbiAgICAgICAgICAgIGFyZ3NbMV1bXCJuZXh0XCJdID0gXCJlbmRcIjtcbiAgICAgICAgICAgIGFy\nZ3NbMV1bXCJwcmV2XCJdID0gMjQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJl\ndHVybiByZXN1bHQ7XG4gICAgICB9O1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWKq+aMgeWF\nqOWxgGRlZmluZVxuICAgICAqXC9cbiAgICB3aW5kb3dEZWZpbmUocGF0aCwgcmVxdWlyZVBhdGhM\naXN0LCBjYWxsYmFjaykge1xuICAgICAgdGhpcy4kZGF0YS53aW5kb3dEZWZpbmUucHVzaCh7XG4g\nICAgICAgIHBhdGgsXG4gICAgICAgIHJlcXVpcmVQYXRoTGlzdCxcbiAgICAgICAgY2FsbGJhY2tc\nbiAgICAgIH0pO1xuICAgICAgaWYgKHRoaXMuJGRhdGEud2luZG93RGVmaW5lLmxlbmd0aCA+IDEp\nIHtcbiAgICAgICAgbG9nLmluZm8oXCJkZWZpbmUgaG9va+aWsOWinuWKq+aMgeWPguaVsO+8mlwi\nICsgcGF0aCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCB0aGF0ID0gdGhp\ncztcbiAgICAgIGxldCBzYWZlRGVmaW5lID0gdm9pZCAwO1xuICAgICAgbGV0IHVuc2FmZURlZmlu\nZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgbGV0IGRlZmluZV9wYXRoID0gYXJnc1sw\nXTtcbiAgICAgICAgbGV0IGRlZmluZV9yZXF1cmVQYXRoTGlzdCA9IGFyZ3NbMV07XG4gICAgICAg\nIGFyZ3NbMl07XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGF0LiRkYXRh\nLndpbmRvd0RlZmluZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBsZXQgaG9va0NvbmZp\nZyA9IHRoYXQuJGRhdGEud2luZG93RGVmaW5lW2luZGV4XTtcbiAgICAgICAgICBpZiAoaG9va0Nv\nbmZpZy5wYXRoID09PSBkZWZpbmVfcGF0aCAmJiBKU09OLnN0cmluZ2lmeShob29rQ29uZmlnLnJl\ncXVpcmVQYXRoTGlzdCkgPT09IEpTT04uc3RyaW5naWZ5KGRlZmluZV9yZXF1cmVQYXRoTGlzdCkp\nIHtcbiAgICAgICAgICAgIGFyZ3NbMl0gPSBob29rQ29uZmlnLmNhbGxiYWNrO1xuICAgICAgICAg\nICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNhZmVEZWZpbmUoLi4u\nYXJncyk7XG4gICAgICB9O1xuICAgICAgdW5zYWZlRGVmaW5lLnByb3RvdHlwZS5hbWQgPSB7fTtc\nbiAgICAgIE9yaWdpblByb3RvdHlwZS5PYmplY3QuZGVmaW5lUHJvcGVydHkoX3Vuc2FmZVdpbmRv\ndywgXCJkZWZpbmVcIiwge1xuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgaWYgKHNhZmVEZWZp\nbmUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAg\nICByZXR1cm4gdW5zYWZlRGVmaW5lO1xuICAgICAgICB9LFxuICAgICAgICBzZXQodikge1xuICAg\nICAgICAgIGxvZy5zdWNjZXNzKFtcImRlZmluZSA9PT4gXCIsIHZdKTtcbiAgICAgICAgICBzYWZl\nRGVmaW5lID0gdjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog5Yqr5oyB55m+5bqm5pCc57Si5p+Q5Lqb6aG555qE54K55Ye75LqL5Lu2XG4gICAgICogKyDn\nmb7luqbmkJzntKJcbiAgICAgKlxuICAgICAqIE9iamVjdC5kZWZpbmVQcm9wZXJ0eVxuICAgICAq\nIEBwYXJhbSBtZW51S2V5TmFtZVxuICAgICAqXC9cbiAgICBvYmplY3REZWZpbmVQcm9wZXJ0eV9z\nZWFyY2gobWVudUtleU5hbWUpIHtcbiAgICAgIGlmICh0aGlzLiRpc0hvb2sub2JqZWN0RGVmaW5l\nUHJvcGVydHlfc2VhcmNoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMu\nJGlzSG9vay5vYmplY3REZWZpbmVQcm9wZXJ0eV9zZWFyY2ggPSB0cnVlO1xuICAgICAgX3Vuc2Fm\nZVdpbmRvdy5PYmplY3QuZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbih0YXJnZXQsIHByb3BlcnR5\nS2V5LCBfYXR0cmlidXRlcykge1xuICAgICAgICBpZiAocHJvcGVydHlLZXkgPT09IFwiX29uQ2xp\nY2tcIikge1xuICAgICAgICAgIGxvZy5pbmZvKFtcIuaIkOWKn+WKq+aMgV9vbkNsaWNrXCIsIGFy\nZ3VtZW50c10pO1xuICAgICAgICAgIGxldCBvbGRGbiA9IF9hdHRyaWJ1dGVzW1widmFsdWVcIl07\nXG4gICAgICAgICAgX2F0dHJpYnV0ZXNbXCJ2YWx1ZVwiXSA9IGZ1bmN0aW9uKGV2ZW50KSB7XG4g\nICAgICAgICAgICBsZXQgZXZlbnROb2RlID0gdGhpcy5fZ2V0Tm9kZShldmVudC50YXJnZXQpO1xu\nICAgICAgICAgICAgbGV0IGV2ZW50Tm9kZU5hbWUgPSB0aGlzLl9nZXRUeXBlKGV2ZW50Tm9kZSk7\nXG4gICAgICAgICAgICBpZiAoZXZlbnROb2RlTmFtZSA9PT0gXCJsaW5rXCIpIHtcbiAgICAgICAg\nICAgICAgbGV0IGxpbmtQcm9wczIgPSB0aGlzLl9nZXRMaW5rUHJvcHMoZXZlbnROb2RlKTtcbiAg\nICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi54K55Ye75LqL5Lu2LWxpbmtQcm9wc+S\/oeaBr1wi\nLCBsaW5rUHJvcHMyXSk7XG4gICAgICAgICAgICAgIGlmICghbGlua1Byb3BzMi5ocmVmKSB7XG4g\nICAgICAgICAgICAgICAgZG9tdXRpbHMudHJpZ2dlcihkb2N1bWVudCwgXCJjbGlja1wiLCBldmVu\ndCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICBpZiAo\nUG9wc1BhbmVsLmdldFZhbHVlKFwiYmFpZHVfc2VhcmNoX2hpamFja19fb25DbGlja190b19ibGFu\na1wiKSkge1xuICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFwi5paw5qCH562+6aG15omT5byA\nOiBcIiArIGxpbmtQcm9wczIuaHJlZik7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4obGlu\na1Byb3BzMi5ocmVmLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAg\nICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxpbmtQcm9wczIuaHJlZjtcbiAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbG9nLnN1Y2Nl\nc3MoW1xuICAgICAgICAgICAgICAgIFwi54K55Ye75LqL5Lu2LXRoaXMuX2dldFR5cGUoZXZlbnRO\nb2RlKeS4jeS4umxpbmtcIixcbiAgICAgICAgICAgICAgICBldmVudE5vZGVOYW1lLFxuICAgICAg\nICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICBvbGRGbi5j\nYWxsKHRoaXMsIC4uLmFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAg\nICAgICAgfVxuICAgICAgICByZXR1cm4gT3JpZ2luUHJvdG90eXBlLk9iamVjdC5kZWZpbmVQcm9w\nZXJ0eS5jYWxsKHRoaXMsIC4uLmFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOWKq+aMgea3u+WKoOWFg+e0oO+8jOWMheaLrHNjcmlwdOagh+etvuOAgWlmcmFt\nZeagh+etvu+8jOm7mOiupOWKq+aMgWlmcmFtZeeahOmdnmh0dHDpk77mjqVcbiAgICAgKiArIOeZ\nvuW6pui0tOWQpyh0aWViYS5iYWlkdS5jb20pXG4gICAgICogKyDnmb7luqblnLDlm74obWFwLmJh\naWR1LmNvbSlcbiAgICAgKiBFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZFxuICAgICAqIEBw\nYXJhbSBoYW5kbGVDYWxsQmFjayDlpITnkIbnmoTlm57osIPlh73mlbDvvIzlpoLmnpzliqvmjIHo\nr7fov5Tlm550cnVlXG4gICAgICpcL1xuICAgIGVsZW1lbnRBcHBlbmRDaGlsZChoYW5kbGVDYWxs\nQmFjayA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2Yg\nSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiAoZWxlbWVudCA9PSBudWxs\nID8gdm9pZCAwIDogZWxlbWVudC5zcmMpID09PSBcInN0cmluZ1wiICYmICFlbGVtZW50LnNyYy5z\ndGFydHNXaXRoKFwiaHR0cFwiKSkge1xuICAgICAgICAgIGxvZy5zdWNjZXNzKFtcIuWKq+aMgWlm\ncmFtZeWUpOmGku+8mlwiICsgZWxlbWVudC5zcmMsIGVsZW1lbnRdKTtcbiAgICAgICAgICByZXR1\ncm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pIHtcbiAgICAgIHRoaXMuJGRhdGEu\nZWxlbWVudEFwcGVuZENoaWxkLnB1c2goaGFuZGxlQ2FsbEJhY2spO1xuICAgICAgaWYgKHRoaXMu\nJGRhdGEuZWxlbWVudEFwcGVuZENoaWxkLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgbG9nLmluZm8o\nXCJFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZCBob29r5paw5aKe5Yqr5oyB5Yik5pat5Zue\n6LCDXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBfdW5zYWZlV2luZG93LkVs\nZW1lbnQucHJvdG90eXBlLmFwcGVuZENoaWxkID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAg\nICBpZiAodHlwZW9mIGhhbmRsZUNhbGxCYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAg\nICBsZXQgaGFuZGxlUmVzdWx0ID0gaGFuZGxlQ2FsbEJhY2soZWxlbWVudCk7XG4gICAgICAgICAg\naWYgKGhhbmRsZVJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAg\nICAgICAgfVxuICAgICAgICByZXR1cm4gT3JpZ2luUHJvdG90eXBlLkVsZW1lbnQuYXBwZW5kQ2hp\nbGQuY2FsbCh0aGlzLCAuLi5hcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIFwvKipc\nbiAgICAgKiDliqvmjIFqUXVlcnnnmoRhcHBlbmTnmoRpZnJhbWVcbiAgICAgKiArIOeZvuW6puWc\nsOWbvihtYXAuYmFpZHUuY29tKVxuICAgICAqXG4gICAgICogJCgpLmFwcGVuZCgpO1xuICAgICAq\nXC9cbiAgICB3aW5kb3dKUXVlcnlBcHBlbmQoKSB7XG4gICAgICBpZiAodGhpcy4kaXNIb29rLndp\nbmRvd0pRdWVyeUFwcGVuZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlz\nLiRpc0hvb2sud2luZG93SlF1ZXJ5QXBwZW5kID0gdHJ1ZTtcbiAgICAgIGxldCBvcmlnaW5BcHBl\nbmQgPSBfdW5zYWZlV2luZG93LiQuZm4uYXBwZW5kO1xuICAgICAgX3Vuc2FmZVdpbmRvdy4kLmZu\nLmFwcGVuZCA9IGZ1bmN0aW9uKHBhcmFtcykge1xuICAgICAgICBpZiAodHlwZW9mIHBhcmFtcyA9\nPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy50cmltKCk7XG4gICAg\nICAgICAgaWYgKHBhcmFtcy5zdGFydHNXaXRoKCc8aWZyYW1lIHNyYz1cIicpICYmICFwYXJhbXMu\nc3RhcnRzV2l0aCgnPGlmcmFtZSBzcmM9XCJodHRwJykpIHtcbiAgICAgICAgICAgIGxvZy5zdWNj\nZXNzKFtcIuWKq+aMgWpRdWVyeeeahGlmcmFtZVwiLCBwYXJhbXNdKTtcbiAgICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9yaWdpbkFwcGVu\nZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDliqvmjIFPcGVuQm94XG4gICAgICogKyDnmb7luqbmkJzntKJcbiAgICAgKlxuICAgICAq\nIHdpbmRvdy5PcGVuQm94XG4gICAgICpcL1xuICAgIHdpbmRvd09wZW5Cb3goKSB7XG4gICAgICBp\nZiAodGhpcy4kaXNIb29rLndpbmRvd09wZW5Cb3gpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAg\nfVxuICAgICAgdGhpcy4kaXNIb29rLndpbmRvd09wZW5Cb3ggPSB0cnVlO1xuICAgICAgbGV0IE9w\nZW5Cb3ggPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvcGVuKC4u\nLmFyZ3MpIHtcbiAgICAgICAgICAgIGxvZy5pbmZvKFtcIuWKq+aMgU9wZW5Cb3gtb3BlbuS8oOWF\npeWPguaVsPCfkYdcIiwgYXJnc10pO1xuICAgICAgICAgICAgaWYgKCFhcmdzLmxlbmd0aCkge1xu\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaW52\nb2tlVXJsID0gYXJnc1swXVtcImludm9rZVVSTFwiXSB8fCBhcmdzWzBdW1wiaW52b2tlX3VybFwi\nXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gXCJvYmplY3RcIiAmJiB0eXBl\nb2YgaW52b2tlVXJsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgIGxvZy5zdWNjZXNz\nKFwi55u05o6l6Lez6L2sVXJs77yaXCIgKyBpbnZva2VVcmwpO1xuICAgICAgICAgICAgICB3aW5k\nb3cubG9jYXRpb24uaHJlZiA9IGludm9rZVVybDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9\nLFxuICAgICAgICAgIHJlYWR5KC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIGxvZy5pbmZvKFtcIuWK\nq+aMgU9wZW5Cb3gtcmVhZHnkvKDlhaXlj4LmlbDwn5GHXCIsIGFyZ3NdKTtcbiAgICAgICAgICB9\nLFxuICAgICAgICAgIHZlcnNpb246IDIwMTcwODExXG4gICAgICAgIH07XG4gICAgICB9O1xuICAg\nICAgT3BlbkJveC5wcm90b3R5cGUuZ2V0SWRtRGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBy\nZXR1cm4ge307XG4gICAgICB9O1xuICAgICAgbGV0IE9wZW5Cb3hfdSA9IHtcbiAgICAgICAgb3Bl\nbiguLi5hcmdzKSB7XG4gICAgICAgICAgbG9nLmluZm8oW1wi5Yqr5oyBT3BlbkJveC1vcGVu5Lyg\n5YWl5Y+C5pWw8J+Rh1wiLCBhcmdzXSk7XG4gICAgICAgICAgaWYgKCFhcmdzLmxlbmd0aCkge1xu\nICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgaW52b2tlVXJs\nID0gYXJnc1swXVtcImludm9rZVVSTFwiXSB8fCBhcmdzWzBdW1wiaW52b2tlX3VybFwiXTtcbiAg\nICAgICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGludm9r\nZVVybCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLnm7TmjqXo\nt7PovaxVcmzvvJpcIiArIGludm9rZVVybCk7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24u\naHJlZiA9IGludm9rZVVybDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAg\nICBsZXQgaXNPYmplY3RPcGVuQm94ID0gZmFsc2U7XG4gICAgICBPcmlnaW5Qcm90b3R5cGUuT2Jq\nZWN0LmRlZmluZVByb3BlcnR5KF91bnNhZmVXaW5kb3csIFwiT3BlbkJveFwiLCB7XG4gICAgICAg\nIGdldCgpIHtcbiAgICAgICAgICByZXR1cm4gaXNPYmplY3RPcGVuQm94ID8gT3BlbkJveF91IDog\nT3BlbkJveDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHYpIHtcbiAgICAgICAgICBsb2cuaW5m\nbyhbXCJPcGVuQm94ID09PiBcIiwgdl0pO1xuICAgICAgICAgIGlzT2JqZWN0T3BlbkJveCA9IHR5\ncGVvZiB2ID09PSBcIm9iamVjdFwiO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDliqvmjIHlhajlsYBzZXRUaW1lb3V0XG4gICAgICogKyDnmb7luqblnLDl\nm75cbiAgICAgKiArIOeZvuW6puaQnOe0olxuICAgICAqXG4gICAgICogd2luZG93LnNldFRpbWVv\ndXRcbiAgICAgKiBAcGFyYW0gbWF0Y2hTdHIg6ZyA6KaB6L+b6KGM5Yy56YWN55qE5Ye95pWw5a2X\n56ym5LiyXG4gICAgICpcL1xuICAgIHNldFRpbWVvdXQobWF0Y2hTdHIpIHtcbiAgICAgIHRoaXMu\nJGRhdGEuc2V0VGltZW91dC5wdXNoKG1hdGNoU3RyKTtcbiAgICAgIGlmICh0aGlzLiRkYXRhLnNl\ndFRpbWVvdXQubGVuZ3RoID4gMSkge1xuICAgICAgICBsb2cuaW5mbyhcIndpbmRvdy5zZXRUaW1l\nb3V0IGhvb2vmlrDlop7liqvmjIHliKTmlq3lj4LmlbDvvJpcIiArIG1hdGNoU3RyKTtcbiAgICAg\nICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgX3Vuc2FmZVdpbmRvdy5zZXRUaW1lb3V0ID0gZnVu\nY3Rpb24oLi4uYXJncykge1xuICAgICAgICBsZXQgY2FsbEJhY2tTdHJpbmcgPSBhcmdzWzBdLnRv\nU3RyaW5nKCk7XG4gICAgICAgIGlmIChjYWxsQmFja1N0cmluZy5tYXRjaChtYXRjaFN0cikpIHtc\nbiAgICAgICAgICBsb2cuc3VjY2VzcyhbXCLliqvmjIHlu7bov5\/lh73mlbBcIiwgY2FsbEJhY2tT\ndHJpbmddKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9y\naWdpblByb3RvdHlwZS5zZXRUaW1lb3V0LmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgfTtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDliqvmjIF3ZWJwYWNrXG4gICAgICogQHBhcmFtIHdlYnBh\nY2tOYW1lIOW9k+WJjeWFqOWxgOWPmOmHj+eahHdlYnBhY2vlkI1cbiAgICAgKiBAcGFyYW0gbWFp\nbkNvcmVEYXRhIOmcgOimgeWKq+aMgeeahHdlYnBhY2vnmoTpobbpg6hjb3Jl77yM5L6L5aaC77ya\nKHdpbmRvdy53ZWJwYWNrSnNvbnAgPSB3aW5kb3cud2VicGFja0pzb25wIHx8IFtdKS5wdXNoKFtb\nXCJjb3JlOjBcIl0se31dKVxuICAgICAqIEBwYXJhbSBjaGVja0NhbGxCYWNrIOWmguaenG1haW5D\nb3JlRGF0YeWMuemFjeS4iu+8jOWImeiwg+eUqOatpOWbnuiwg+WHveaVsFxuICAgICAqXC9cbiAg\nICB3aW5kb3dXZWJQYWNrKHdlYnBhY2tOYW1lID0gXCJ3ZWJwYWNrSnNvbnBcIiwgbWFpbkNvcmVE\nYXRhLCBjaGVja0NhbGxCYWNrKSB7XG4gICAgICBsZXQgb3JpZ2luT2JqZWN0ID0gdm9pZCAwO1xu\nICAgICAgT3JpZ2luUHJvdG90eXBlLk9iamVjdC5kZWZpbmVQcm9wZXJ0eShfdW5zYWZlV2luZG93\nLCB3ZWJwYWNrTmFtZSwge1xuICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgcmV0dXJuIG9yaWdp\nbk9iamVjdDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KG5ld1ZhbHVlKSB7XG4gICAgICAgICAg\nbG9nLnN1Y2Nlc3MoXCLmiJDlip\/liqvmjIF3ZWJwYWNr77yM5b2T5YmNd2VicGFja+WQje+8mlwi\nICsgd2VicGFja05hbWUpO1xuICAgICAgICAgIG9yaWdpbk9iamVjdCA9IG5ld1ZhbHVlO1xuICAg\nICAgICAgIGNvbnN0IG9yaWdpblB1c2ggPSBvcmlnaW5PYmplY3QucHVzaDtcbiAgICAgICAgICBv\ncmlnaW5PYmplY3QucHVzaCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgIGxldCBf\nbWFpbkNvcmVEYXRhID0gYXJnc1swXVswXTtcbiAgICAgICAgICAgIGlmIChtYWluQ29yZURhdGEg\nPT0gX21haW5Db3JlRGF0YSB8fCBBcnJheS5pc0FycmF5KG1haW5Db3JlRGF0YSkgJiYgQXJyYXku\naXNBcnJheShfbWFpbkNvcmVEYXRhKSAmJiBKU09OLnN0cmluZ2lmeShtYWluQ29yZURhdGEpID09\nPSBKU09OLnN0cmluZ2lmeShfbWFpbkNvcmVEYXRhKSkge1xuICAgICAgICAgICAgICBPYmplY3Qu\na2V5cyhhcmdzWzBdWzFdKS5mb3JFYWNoKChrZXlOYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAg\nbGV0IG9yaWdpblN3aXRjaEZ1bmMgPSBhcmdzWzBdWzFdW2tleU5hbWVdO1xuICAgICAgICAgICAg\nICAgIGFyZ3NbMF1bMV1ba2V5TmFtZV0gPSBmdW5jdGlvbiguLi5fYXJncykge1xuICAgICAgICAg\nICAgICAgICAgbGV0IHJlc3VsdCA9IG9yaWdpblN3aXRjaEZ1bmMuY2FsbCh0aGlzLCAuLi5fYXJn\ncyk7XG4gICAgICAgICAgICAgICAgICBfYXJnc1swXSA9IGNoZWNrQ2FsbEJhY2soX2FyZ3NbMF0p\nO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9O1xu\nICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvcmln\naW5QdXNoLmNhbGwodGhpcywgLi4uYXJncyk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAg\nICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yqr5oyB55m+5bqm6LS05ZCn55qEd2lu\nZG93LndlYnBhY2tKc29ucFxuICAgICAqIOW9k+WJjSBcImNvcmU6NjdcIlxuICAgICAqICsg55m+\n5bqm6LS05ZCnKHRpZWJhLmJhaWR1LmNvbSlcbiAgICAgKlxuICAgICAqIGh0dHBzOlwvXC90YjMu\nYmRzdGF0aWMuY29tXC90Ylwvd2lzZVwvd2lzZS1tYWluLWNvcmVcL3N0YXRpY1wvanNcL2NvbGxl\nY3R+ZG93bmxvYWR+ZnJzfmdhb2thb35pbmRleH5wYn51c2VycG9zdC5lNWE4MWQ0NS5qc1xuICAg\nICAqIHRpZWJhTmV3V2FrZXVwLmpzIHYzLjAuM1xuICAgICAqIChjKSAyMDE4LTIwMjMgbGl1Z3Vp\nMDFcbiAgICAgKiBSZWxlYXNlZCB1bmRlciB0aGUgQmFpRHVUaWVCYSBMaWNlbnNlLlxuICAgICAq\nXC9cbiAgICB3aW5kb3dXZWJwYWNrSnNvbnBfdGllYmEoKSB7XG4gICAgICBpZiAodGhpcy4kaXNI\nb29rLndpbmRvd1dlYnBhY2tKc29ucF90aWViYSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9\nXG4gICAgICB0aGlzLiRpc0hvb2sud2luZG93V2VicGFja0pzb25wX3RpZWJhID0gdHJ1ZTtcbiAg\nICAgIHRoaXMud2luZG93V2ViUGFjayhcbiAgICAgICAgXCJ3ZWJwYWNrSnNvbnBcIixcbiAgICAg\nICAgW1wiY29yZTowXCJdLFxuICAgICAgICBmdW5jdGlvbih3ZWJwYWNrRXhwb3J0cykge1xuICAg\nICAgICAgIGlmICh0eXBlb2YgKHdlYnBhY2tFeHBvcnRzID09IG51bGwgPyB2b2lkIDAgOiB3ZWJw\nYWNrRXhwb3J0cy5leHBvcnRzKSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygd2VicGFja0V4cG9y\ndHMuZXhwb3J0c1tcImdldFNjaGVtYVwiXSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiB3ZWJw\nYWNrRXhwb3J0cy5leHBvcnRzW1wiZ2V0VG9rZW5cIl0gPT09IFwiZnVuY3Rpb25cIiAmJiB0eXBl\nb2Ygd2VicGFja0V4cG9ydHMuZXhwb3J0c1tcImluaXRcIl0gPT09IFwiZnVuY3Rpb25cIiAmJiB0\neXBlb2Ygd2VicGFja0V4cG9ydHMuZXhwb3J0c1tcImluaXREaWZmZXJcIl0gPT09IFwiZnVuY3Rp\nb25cIikge1xuICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5oiQ5Yqf5Yqr5oyBd2VicGFja+iw\ng+eUqOWHveaVsFwiLCB3ZWJwYWNrRXhwb3J0c10pO1xuICAgICAgICAgICAgd2VicGFja0V4cG9y\ndHMgPT0gbnVsbCA\/IHZvaWQgMCA6IHdlYnBhY2tFeHBvcnRzW1wiaVwiXTtcbiAgICAgICAgICAg\nIHdlYnBhY2tFeHBvcnRzLmV4cG9ydHMuZ2V0U2NoZW1hID0gZnVuY3Rpb24oLi4uYXJncykge1xu\nICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHdlYnBhY2tFeHBvcnRzLmV4cG9ydHMuZ2V0VG9r\nZW4gPSBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgIGxvZy5pbmZvKFtcIumYu+at\nouiwg+eUqGdldFRva2VuXCIsIC4uLmFyZ3NdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAg\nICB3ZWJwYWNrRXhwb3J0cy5leHBvcnRzLmluaXQgPSBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAg\nICAgICAgICAgIHZhciBfYTM7XG4gICAgICAgICAgICAgIGxvZy5pbmZvKFtcIumYu+atouWIneWn\ni+WMllwiLCAuLi5hcmdzXSk7XG4gICAgICAgICAgICAgIGlmICgoKF9hMyA9IGFyZ3MgPT0gbnVs\nbCA\/IHZvaWQgMCA6IGFyZ3NbMF0pID09IG51bGwgPyB2b2lkIDAgOiBfYTNbXCJwYWdlXCJdKSA9\nPT0gXCJ1c2VyY2VudGVyXCIpIHtcbiAgICAgICAgICAgICAgICBsZXQgaG9tZVVybCA9IFwiXC9o\nb21lXC9tYWluP2lkPVwiICsgYXJnc1swXVtcInBhcmFtXCJdW1wicG9ydHJhaXRcIl07XG4gICAg\nICAgICAgICAgICAgbG9nLmluZm8oW1wi6Lez6L2s6Iez55So5oi356m66Ze0XCIsIGhvbWVVcmxd\nKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3Blbihob21lVXJsKTtcbiAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2Vi\ncGFja0V4cG9ydHMuZXhwb3J0cy5pbml0RGlmZmVyID0gZnVuY3Rpb24oLi4uYXJncykge1xuICAg\nICAgICAgICAgICBsb2cuaW5mbyhbXCLpmLvmraLliJ3lp4vljJblt67lvIJcIiwgLi4uYXJnc10p\nO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAg\nICAgICAgICByZXR1cm4gd2VicGFja0V4cG9ydHM7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAg\nfSxcbiAgICBcLyoqXG4gICAgICog5Yqr5oyB55m+5bqm5aW955yL6KeG6aKR55qEd2luZG93Lndl\nYnBhY2tKc29ucFxuICAgICAqICsg55m+5bqm5aW955yL6KeG6aKRKGhhb2thbi5iYWlkdS5jb20p\nXG4gICAgICpcbiAgICAgKlwvXG4gICAgd2luZG93V2VicGFja0pzb25wX2hhb2thbigpIHtcbiAg\nICAgIGlmICh0aGlzLiRpc0hvb2sud2luZG93V2VicGFja0pzb25wX2hhb2thbikge1xuICAgICAg\nICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLiRpc0hvb2sud2luZG93V2VicGFja0pzb25w\nX2hhb2thbiA9IHRydWU7XG4gICAgICB0aGlzLndpbmRvd1dlYlBhY2soXG4gICAgICAgIFwid2Vi\ncGFja0pzb25wXCIsXG4gICAgICAgIFs0MCwgMV0sXG4gICAgICAgIGZ1bmN0aW9uKHdlYnBhY2tF\neHBvcnRzKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiAod2VicGFja0V4cG9ydHMgPT0gbnVsbCA\/\nIHZvaWQgMCA6IHdlYnBhY2tFeHBvcnRzLmV4cG9ydHMpID09PSBcIm9iamVjdFwiICYmIHR5cGVv\nZiB3ZWJwYWNrRXhwb3J0cy5leHBvcnRzW1wiTGF1bmNoU2NoZW1lXCJdID09PSBcImZ1bmN0aW9u\nXCIgJiYgdHlwZW9mIHdlYnBhY2tFeHBvcnRzLmV4cG9ydHNbXCJfX2VzTW9kdWxlXCJdID09PSBc\nImJvb2xlYW5cIikge1xuICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5oiQ5Yqf5Yqr5oyBd2Vi\ncGFja+iwg+eUqOWHveaVsFwiLCB3ZWJwYWNrRXhwb3J0c10pO1xuICAgICAgICAgICAgd2VicGFj\na0V4cG9ydHMgPT0gbnVsbCA\/IHZvaWQgMCA6IHdlYnBhY2tFeHBvcnRzW1wiaVwiXTtcbiAgICAg\nICAgICAgIHdlYnBhY2tFeHBvcnRzLmV4cG9ydHNbXCJMYXVuY2hTY2hlbWVcIl0gPSBmdW5jdGlv\nbigpIHtcbiAgICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5L+u5pS55Y+C5pWw77yaTGF1bmNo\nU2NoZW1lXCJdKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsYXVu\nY2goKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVz\nb2x2ZSkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuc3VjY2VzcyhbXCLkv67mlLnlj4LmlbDv\nvJpsYXVuY2hcIl0pO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHZvaWQgMCk7XG4gICAg\nICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4g\nICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gd2VicGFja0V4cG9y\ndHM7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yqr5oyB\nd2luZG935LiL55qEQm94SlNCZWZvcmXlr7nosaHosIPnlKjvvIzlroPnmoTmiYDmnInnmoTlsZ7m\ngKfpg73mmK\/lh73mlbBcbiAgICAgKiArIOeZvuWutuWPtyhtYmQuYmFpZHUuY29tKVxuICAgICAq\nXG4gICAgICogd2luZG93LkJveEpTQmVmb3JlXG4gICAgICpcL1xuICAgIHdpbmRvd0JveEpTQmVm\nb3JlKCkge1xuICAgICAgaWYgKHRoaXMuJGlzSG9vay53aW5kb3dCb3hKU0JlZm9yZSkge1xuICAg\nICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLiRpc0hvb2sud2luZG93Qm94SlNCZWZv\ncmUgPSB0cnVlO1xuICAgICAgT3JpZ2luUHJvdG90eXBlLk9iamVjdC5kZWZpbmVQcm9wZXJ0eShf\ndW5zYWZlV2luZG93LCBcIkJveEpTQmVmb3JlXCIsIHtcbiAgICAgICAgZ2V0KCkge1xuICAgICAg\nICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgICAgIHtcbiAg\nICAgICAgICAgICAgZ2V0KHRhcmdldCwgbmFtZSwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAg\nICBsb2cuc3VjY2VzcyhcIuWKq+aMgUJveEpTQmVmb3Jl6LCD55So77yaXCIgKyBuYW1lKTtcbiAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAg\nICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWKq+aMgXdpbmRvd+S4i+eahG9wZW5D\nb250ZW50Qm945a+56LGh6LCD55So77yM5a6D55qE5omA5pyJ55qE5bGe5oCn6YO95piv5Ye95pWw\nXG4gICAgICogKyDnmb7lrrblj7coYmFpamlhaGFvLmJhaWR1LmNvbSlcbiAgICAgKlxuICAgICAq\nIHdpbmRvdy5vcGVuQ29udGVudEJveFxuICAgICAqXC9cbiAgICB3aW5kb3dfb3BlbkNvbnRlbnRC\nb3goKSB7XG4gICAgICBpZiAodGhpcy4kaXNIb29rLndpbmRvd19vcGVuQ29udGVudEJveCkge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLiRpc0hvb2sud2luZG93X29wZW5D\nb250ZW50Qm94ID0gdHJ1ZTtcbiAgICAgIE9yaWdpblByb3RvdHlwZS5PYmplY3QuZGVmaW5lUHJv\ncGVydHkoX3Vuc2FmZVdpbmRvdywgXCJCb3hKU0JlZm9yZVwiLCB7XG4gICAgICAgIGdldCgpIHtc\nbiAgICAgICAgICByZXR1cm4gbmV3IFByb3h5KFxuICAgICAgICAgICAge30sXG4gICAgICAgICAg\nICB7XG4gICAgICAgICAgICAgIGdldCh0YXJnZXQsIG5hbWUsIHJlY2VpdmVyKSB7XG4gICAgICAg\nICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLliqvmjIFvcGVuQ29udGVudEJveOiwg+eUqO+8mlwiICsg\nbmFtZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAg\nICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaWR1U2VhcmNoSG9vayA9\nIHtcbiAgICBpbml0KCkge1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3Nl\nYXJjaF9oaWphY2tfX29uQ2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICBsb2cuc3VjY2VzcyhcImhv\nb2s6IGJhaWR1IG9uQ2xpY2tcIik7XG4gICAgICAgIEJhaWR1SG9vay5vYmplY3REZWZpbmVQcm9w\nZXJ0eV9zZWFyY2goXCJiYWlkdV9zZWFyY2hfaGlqYWNrX19vbkNsaWNrXCIpO1xuICAgICAgfSk7\nXG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfc2VhcmNoX2hpamFja19vcGVu\nYm94XCIsICgpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJob29rOiB3aW5kb3cuT3BlbkJv\neFwiKTtcbiAgICAgICAgQmFpZHVIb29rLndpbmRvd09wZW5Cb3goKTtcbiAgICAgIH0pO1xuICAg\nICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3NlYXJjaF9oaWphY2tfc2NoZW1lXCIs\nICgpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJob29rOiBGdW5jdGlvbi5hcHBseSA9PiBz\nY2hlbWVcIik7XG4gICAgICAgIEJhaWR1SG9vay5mdW5jdGlvbkFwcGx5KFwic2NoZW1lXCIpO1xu\nICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfc2VhcmNoX2hp\namFja19jb3B5XCIsICgpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJob29rOiBGdW5jdGlv\nbi5hcHBseSA9PiBjb3B5XCIpO1xuICAgICAgICBCYWlkdUhvb2suZnVuY3Rpb25BcHBseShcImNv\ncHlcIik7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV9z\nZWFyY2hfaGlqYWNrX3NldFRpbWVvdXRcIiwgKCkgPT4ge1xuICAgICAgICBCYWlkdUhvb2suc2V0\nVGltZW91dChcImdldEdlb0xvY2F0aW9ufGxvb3BQbGF5KClcIik7XG4gICAgICB9KTtcbiAgICB9\nXG4gIH07XG4gIGNvbnN0IFNlYXJjaEhhbmRsZVJlc3VsdEV2ZXJ5T25lU2VhcmNoID0ge1xuICAg\nIFwvKipcbiAgICAgKiDmmK\/lkKbph43mnoTlpKflrrbpg73lnKjmkJxcbiAgICAgKlwvXG4gICAg\nZ2V0IHJlZmFjdG9yRXZlcnlvbmVJc1N0aWxsU2VhcmNoaW5nKCkge1xuICAgICAgcmV0dXJuIFBv\ncHNQYW5lbC5nZXRWYWx1ZShcbiAgICAgICAgXCJiYWlkdV9zZWFyY2hfcmVmYWN0b3JfZXZlcnlv\nbmVfaXNfc3RpbGxfc2VhcmNoaW5nXCIsXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOWkhOeQhuW6lemDqOeahFxuICAgICAqIEBwYXJhbSBib3R0b21F\nbGVtZW50XG4gICAgICpcL1xuICAgIGhhbmRsZUJvdHRvbShib3R0b21FbGVtZW50KSB7XG4gICAg\nICBsb2cuc3VjY2VzcyhcIuWkp+Wutui\/mOWcqOaQnDog5aSE55CG5bqV6YOo55qEXCIpO1xuICAg\nICAgYm90dG9tRWxlbWVudC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHZhciBfYTMsIF9i\nO1xuICAgICAgICBpZiAoaXRlbS5oYXNBdHRyaWJ1dGUoXCJnbS1yZWZhY3Rvci1ldmVyeW9uZS1z\nZWFyY2gtYm90dG9tXCIpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAg\nIGl0ZW0ucmVtb3ZlQXR0cmlidXRlKFwiY2xhc3NcIik7XG4gICAgICAgIGl0ZW0ucmVtb3ZlQXR0\ncmlidXRlKFwiaWRcIik7XG4gICAgICAgIGl0ZW0uc2V0QXR0cmlidXRlKFwiZ20tcmVmYWN0b3It\nZXZlcnlvbmUtc2VhcmNoLWJvdHRvbVwiLCBcInRydWVcIik7XG4gICAgICAgIGl0ZW0ucXVlcnlT\nZWxlY3RvckFsbChcIi5ydy1saXN0LWNvbnRhaW5lciAucnctbGlzdC1uZXdcIikuZm9yRWFjaCgo\nc2VhcmNoSXRlbUVsZSkgPT4ge1xuICAgICAgICAgIHZhciBfYTQ7XG4gICAgICAgICAgbGV0IHNl\nYXJjaFRleHQgPSAoX2E0ID0gc2VhcmNoSXRlbUVsZSA9PSBudWxsID8gdm9pZCAwIDogc2VhcmNo\nSXRlbUVsZS50ZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hNC50cmltKCk7XG4gICAg\nICAgICAgc2VhcmNoSXRlbUVsZS5pbm5lckhUTUwgPSBcLypodG1sKlwvXG4gICAgICAgICAgYFxu\nICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIG9uY2xpY2s9\nXCJyZXR1cm4gZmFsc2U7XCIgdGFyZ2V0PVwiX3NlbGZcIiBjbGFzcz1cIndoaXRlc2V2LWdtLXJl\nZmFjdG9yLWV2ZXJ5b25lLXNlYXJjaGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgXHQ8\nc3Bhbj4ke3NlYXJjaFRleHR9PFwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxcL2E+\nYDtcbiAgICAgICAgICBzZWFyY2hJdGVtRWxlLnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgICAg\nICAgXCJwYWRkaW5nXCIsXG4gICAgICAgICAgICBcIjAuMDZyZW1cIlxuICAgICAgICAgICk7XG4g\nICAgICAgIH0pO1xuICAgICAgICAoX2EzID0gaXRlbS5xdWVyeVNlbGVjdG9yKFwiZGl2LmMtbGlu\nZS1jbGFtcDFcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYTMucmVtb3ZlKCk7XG4gICAgICAgIGlm\nICghaXRlbS5jbG9zZXN0KFwiI3Jlc3VsdHNcIikpIHtcbiAgICAgICAgICAoX2IgPSBkb2N1bWVu\ndC5xdWVyeVNlbGVjdG9yKFwiI3Jlc3VsdHNcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYi5hcHBl\nbmRDaGlsZChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBkb211dGlscy5vbihpdGVtLCBcImNs\naWNrXCIsIFwiZGl2LnJ3LWxpc3QtbmV3XCIsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAg\ndmFyIF9hNCwgX2IyLCBfYywgX2Q7XG4gICAgICAgICAgbGV0IHNlYXJjaFRleHQgPSAoX2IyID0g\nKF9hNCA9IGV2ZW50LnRhcmdldC5xdWVyeVNlbGVjdG9yKFwic3BhblwiKSkgPT0gbnVsbCA\/IHZv\naWQgMCA6IF9hNC50ZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iMi50cmltKCk7XG4g\nICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLlupXpg6gg54K55Ye75aSn5a626L+Y5Zyo5pCcID09PiBc\nIiArIHNlYXJjaFRleHQpO1xuICAgICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4g\nICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgaHR0cHM6XC9cL20uYmFpZHUuY29tXC9z\nP3dvcmQ9JHsoX2QgPSAoX2MgPSBldmVudC50YXJnZXQpID09IG51bGwgPyB2b2lkIDAgOiBfYy50\nZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9kLnRyaW0oKX1gO1xuICAgICAgICB9KTtc\nbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWkhOeQhuS4remXtOeahFxuICAg\nICAqIEBwYXJhbSBjZW50ZXJFbGVtZW50XG4gICAgICpcL1xuICAgIGhhbmRsZUNlbnRlcihjZW50\nZXJFbGVtZW50KSB7XG4gICAgICBsb2cuc3VjY2VzcyhcIuWkp+Wutui\/mOWcqOaQnDog5aSE55CG\n5Lit6Ze055qEXCIpO1xuICAgICAgY2VudGVyRWxlbWVudC5mb3JFYWNoKChyZWNvbW1lbmRFbGVt\nZW50KSA9PiB7XG4gICAgICAgIGlmIChyZWNvbW1lbmRFbGVtZW50Lmhhc0F0dHJpYnV0ZShcImdt\nLXJlZmFjdG9yLWV2ZXJ5b25lLXNlYXJjaC1jZW50ZXJcIikpIHtcbiAgICAgICAgICByZXR1cm47\nXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZWNvbW1lbmRFbGVtZW50LnF1ZXJ5U2VsZWN0b3Io\nXCJkaXYuYy1nYXAtaW5uZXItYm90dG9tLXNtYWxsXCIpICYmICFyZWNvbW1lbmRFbGVtZW50LnF1\nZXJ5U2VsZWN0b3IoXCJkaXYuY29zLXJvdyBkaXYuY29zLWNvbFwiKSkge1xuICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgfVxuICAgICAgICByZWNvbW1lbmRFbGVtZW50LnNldEF0dHJpYnV0ZShc\nbiAgICAgICAgICBcImdtLXJlZmFjdG9yLWV2ZXJ5b25lLXNlYXJjaC1jZW50ZXJcIixcbiAgICAg\nICAgICBcInRydWVcIlxuICAgICAgICApO1xuICAgICAgICBsZXQgcndMaXN0Q29udGFpbmVySFRN\nTCA9IFwiXCI7XG4gICAgICAgIGxldCBpbm5lckJvdHRvbVNtYWxsRWxlbWVudExpc3QgPSByZWNv\nbW1lbmRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgXCJkaXYuYy1nYXAtaW5u\nZXItYm90dG9tLXNtYWxsXCJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFpbm5lckJvdHRvbVNt\nYWxsRWxlbWVudExpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgaW5uZXJCb3R0b21TbWFsbEVsZW1l\nbnRMaXN0ID0gcmVjb21tZW5kRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAg\nXCJkaXYuY29zLXJvdyBkaXYuY29zLWNvbFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAg\nICAgICBpbm5lckJvdHRvbVNtYWxsRWxlbWVudExpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAg\nICAgICAgIHZhciBfYTM7XG4gICAgICAgICAgbGV0IHNlYXJjaFRleHQgPSAoX2EzID0gaXRlbS50\nZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy50cmltKCk7XG4gICAgICAgICAgcndM\naXN0Q29udGFpbmVySFRNTCArPSBcLypodG1sKlwvXG4gICAgICAgICAgYFxuICAgICAgICAgICAg\nICAgIDxkaXYgY2xhc3M9XCJydy1saXN0LW5ldyBydy1saXN0LW5ldzJcIiBzdHlsZT1cInBhZGRp\nbmc6IDAuMDZyZW07d2lkdGg6IDQ5JTtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1c\nImphdmFzY3JpcHQ6O1wiIG9uY2xpY2s9XCJyZXR1cm4gZmFsc2U7XCIgdGFyZ2V0PVwiX3NlbGZc\nIiBjbGFzcz1cIndoaXRlc2V2LWdtLXJlZmFjdG9yLWV2ZXJ5b25lLXNlYXJjaGluZ1wiPlxuICAg\nICAgICAgICAgICAgICAgICA8c3Bhbj4ke3NlYXJjaFRleHR9PFwvc3Bhbj5cbiAgICAgICAgICAg\nICAgICAgICAgPFwvYT5cbiAgICAgICAgICAgICAgICA8XC9kaXY+YDtcbiAgICAgICAgfSk7XG4g\nICAgICAgIHJlY29tbWVuZEVsZW1lbnQuaW5uZXJIVE1MID0gXC8qaHRtbCpcL1xuICAgICAgICBg\nXG4gICAgICAgICAgICAgICAgPGRpdiBtLXNlcnZpY2U9XCJyZWxhdGl2ZVwiIGRhdGEtdHBsPVwi\nc2FuXCIgaWQ9XCJyZWxhdGl2ZXdvcmRzXCIgY2xhc3M9XCJzZS1yZWxhdGl2ZXdvcmRzIGMtY29u\ndGFpbmVyIHNlLXJlbGF0aXZld29yZHMtbmV3IGMtYmctY29sb3Itd2hpdGVcIj5cbiAgICAgICAg\nICAgICAgICA8ZGl2IGNsYXNzPVwicnctbGl0dGxlLXRpdGxlXCI+XG4gICAgICAgICAgICAgICAg\nICAgIDxkaXYgY2xhc3M9XCJjLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz\nPVwiYy1jb2xvciBsaXR0bGUtdGl0bGUgYy1zcGFuMTAgYy1yb3cteW91dGggYy1yb3ctZ2FwLXpl\ncm8tdHdvLXlvdXRoIGMtZndiXCI+5aSn5a626L+Y5Zyo5pCcPFwvZGl2PlxuICAgICAgICAgICAg\nICAgICAgICA8ZGl2IGNsYXNzPVwiZnVuYy1idG5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAg\nIDxkaXYgY2xhc3M9XCJmdW5jLWJ0bi1iZ1wiPjxpIGNsYXNzPVwiYy1pY29uIGMtY29sb3ItZ3Jh\neVwiPu6YvDxcL2k+PFwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8XC9kaXY+XG4gICAgICAg\nICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgICAgICA8XC9kaXY+XG4gICAgICAgICAg\nICAgICAgPGRpdiBjbGFzcz1cInJ3LWxpc3QtY29udGFpbmVyIHJ3LWxpc3QtY29udGFpbmVyMlwi\nIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLXRhYmxlO2Rpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJv\neDtcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtyd0xpc3RDb250YWluZXJIVE1MfTxcL2Rpdj5c\nbiAgICAgICAgICAgICAgICA8XC9kaXY+YDtcbiAgICAgICAgZG9tdXRpbHMub24oXG4gICAgICAg\nICAgcmVjb21tZW5kRWxlbWVudCxcbiAgICAgICAgICBcImNsaWNrXCIsXG4gICAgICAgICAgXCJk\naXYucnctbGlzdC1uZXdcIixcbiAgICAgICAgICBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAg\nICAgdmFyIF9hMywgX2I7XG4gICAgICAgICAgICBsZXQgc2VhcmNoVGV4dCA9IChfYiA9IChfYTMg\nPSBldmVudC50YXJnZXQucXVlcnlTZWxlY3RvcihcInNwYW5cIikpID09IG51bGwgPyB2b2lkIDAg\nOiBfYTMudGV4dENvbnRlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYi50cmltKCk7XG4gICAgICAg\nICAgICBsb2cuc3VjY2VzcyhcIuS4remXtCDngrnlh7vlpKflrrbov5jlnKjmkJwgPT0+IFwiICsg\nc2VhcmNoVGV4dCk7XG4gICAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAg\nICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgaHR0cHM6XC9cL20uYmFpZHUuY29tXC9z\nP3dvcmQ9JHtzZWFyY2hUZXh0fWA7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7\nXG4gICAgfVxuICB9O1xuICBjb25zdCBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0gPSB7XG4gICAgb3Jp\nZ2luVVJMTWFwOiBudWxsLFxuICAgIFwvKipcbiAgICAgKiDliKTmlq3pk77mjqXmmK\/lkKbmmK\/n\nmb7luqbnmoTkuK3ovazpk77mjqVcbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQHJldHVybnNc\nbiAgICAgKiArIHRydWUg5piv55m+5bqm55qE5Lit6L2s6ZO+5o6lXG4gICAgICogKyBmYWxzZSDk\nuI3mmK\/nmb7luqbnmoTkuK3ovazpk77mjqVcbiAgICAgKlwvXG4gICAgaXNCYWlEdVRyYW5zZmVy\nU3RhdGlvbih1cmwpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHVybCA9IGRlY29kZVVSSUNvbXBv\nbmVudCh1cmwpO1xuICAgICAgICByZXR1cm4gdXRpbHMuc3RhcnRzV2l0aChcbiAgICAgICAgICB1\ncmwsXG4gICAgICAgICAgXCJodHRwKHN8KTpcL1wvKG1bMC05XXswLDJ9fHd3dykuYmFpZHUuY29t\nXC9mcm9tXCJcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxv\nZy5lcnJvcihlcnJvcik7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDliKTmlq3pk77mjqXmmK\/lkKbmmK\/pu5HlkI3ljZXpk77mjqXvvIzk\nuI3ov5vooYzlpITnkIZcbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQHJldHVybnNcbiAgICAg\nKiArIHRydWUg5piv6buR5ZCN5Y2VdXJsXG4gICAgICogKyBmYWxzZSDkuI3mmK\/pu5HlkI3ljZV1\ncmxcbiAgICAgKlwvXG4gICAgaXNCbGFja0xpc3QodXJsKSB7XG4gICAgICBsZXQgYmxhY2tMaXN0\nID0gW1xuICAgICAgICBcL15odHRwKHN8KTpcXFwvXFxcLyhtWzAtOV17MCwyfXx3d3cpLmJhaWR1\nLmNvbVxcXC9wcm9kdWN0Y2FyZFwvLFxuICAgICAgICBcL15odHRwKHN8KTpcXFwvXFxcL2tzLmJh\naWR1LmNvbVwvLFxuICAgICAgICBcL15odHRwKHN8KTpcXFwvXFxcL21iZC5iYWlkdS5jb21cXFwv\nbWFcXFwvdGlwc1wvXG4gICAgICBdO1xuICAgICAgZm9yIChjb25zdCBibGFja1VybFJlZ2V4cCBv\nZiBibGFja0xpc3QpIHtcbiAgICAgICAgaWYgKHVybC5tYXRjaChibGFja1VybFJlZ2V4cCkpIHtc\nbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJu\nIGZhbHNlO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOS4uuaQnOe0oue7k+aenOavj+S4gOad\noeiuvue9ruWOn+Wni+mTvuaOpVxuICAgICAqIEBwYXJhbSAkcmVzdWx0IOavj+adoee7k+aenOWF\ng+e0oFxuICAgICAqIEBwYXJhbSBhcnRpY2xlVVJMIGFydGljbGXnmoTnnJ\/lrp51cmxcbiAgICAg\nKlwvXG4gICAgc2V0QXJ0aWNsZU9yaWdpblVybCgkcmVzdWx0LCBhcnRpY2xlVVJMKSB7XG4gICAg\nICAkcmVzdWx0LnF1ZXJ5U2VsZWN0b3JBbGwoXCJhXCIpLmZvckVhY2goYXN5bmMgKGl0ZW0pID0+\nIHtcbiAgICAgICAgaWYgKEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5vcmlnaW5VUkxNYXAuaGFzKGl0\nZW0uaHJlZikpIHtcbiAgICAgICAgICBhcnRpY2xlVVJMID0gQmFpZHVIYW5kbGVSZXN1bHRJdGVt\nLm9yaWdpblVSTE1hcC5nZXQoaXRlbS5ocmVmKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgb3Jp\nZ2luVXJsID0gQmFpZHVIYW5kbGVSZXN1bHRJdGVtLnBhcnNlT3JpZ2luVXJsRnJvbURhdGFTZXQo\naXRlbSk7XG4gICAgICAgIGlmICghdXRpbHMuaXNOdWxsKG9yaWdpblVybCkpIHtcbiAgICAgICAg\nICBhcnRpY2xlVVJMID0gb3JpZ2luVXJsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlscy5p\nc051bGwoYXJ0aWNsZVVSTCkgfHwgYXJ0aWNsZVVSTCA9PT0gaXRlbS5ocmVmKSB7XG4gICAgICAg\nICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChCYWlkdUhhbmRsZVJlc3VsdEl0ZW0u\naXNCbGFja0xpc3QoYXJ0aWNsZVVSTCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1c\nbiAgICAgICAgaXRlbS5ocmVmID0gYXJ0aWNsZVVSTDtcbiAgICAgIH0pO1xuICAgICAgJHJlc3Vs\ndC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnZGl2W2RhdGEtYWZ0Y2xrXVtjbGFzcyo9XCJp\nbWctY29udGFpbmVyXCJdJ1xuICAgICAgKS5mb3JFYWNoKCgkaW1nQ29udGFpbmVyKSA9PiB7XG4g\nICAgICAgIGxldCBkb21PcmlnaW5VcmwgPSBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0ucGFyc2VPcmln\naW5VcmxGcm9tRGF0YVNldCgkaW1nQ29udGFpbmVyKTtcbiAgICAgICAgaWYgKCF1dGlscy5pc051\nbGwoZG9tT3JpZ2luVXJsKSAmJiAhQmFpZHVIYW5kbGVSZXN1bHRJdGVtLmlzQmxhY2tMaXN0KGRv\nbU9yaWdpblVybCkpIHtcbiAgICAgICAgICAkaW1nQ29udGFpbmVyLnNldEF0dHJpYnV0ZShcImhy\nZWZcIiwgZG9tT3JpZ2luVXJsKTtcbiAgICAgICAgICAkaW1nQ29udGFpbmVyLnNldEF0dHJpYnV0\nZShcInJsLWxpbmstaHJlZlwiLCBkb21PcmlnaW5VcmwpO1xuICAgICAgICB9XG4gICAgICB9KTtc\nbiAgICAgICRyZXN1bHQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgXCJkaXYuYy12aWRlby1j\nb250YWluZXIgZGl2W2RhdGEtYWZ0Y2xrXVwiXG4gICAgICApLmZvckVhY2goKCRhZnRjbGspID0+\nIHtcbiAgICAgICAgbGV0IGRvbU9yaWdpblVybCA9IEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5wYXJz\nZU9yaWdpblVybEZyb21EYXRhU2V0KCRhZnRjbGspO1xuICAgICAgICBpZiAoIXV0aWxzLmlzTnVs\nbChkb21PcmlnaW5VcmwpICYmICFCYWlkdUhhbmRsZVJlc3VsdEl0ZW0uaXNCbGFja0xpc3QoZG9t\nT3JpZ2luVXJsKSkge1xuICAgICAgICAgICRhZnRjbGsuc2V0QXR0cmlidXRlKFwiaHJlZlwiLCBk\nb21PcmlnaW5VcmwpO1xuICAgICAgICAgICRhZnRjbGsuc2V0QXR0cmlidXRlKFwicmwtbGluay1o\ncmVmXCIsIGRvbU9yaWdpblVybCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgJHJlc3Vs\ndC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnZGl2W2RhdGEtbW9kdWxlPVwic2NfcGNcIl0g\nZGl2W3JsLWxpbmstaHJlZl0nXG4gICAgICApLmZvckVhY2goKCRybExpbmtIcmVmKSA9PiB7XG4g\nICAgICAgIGxldCBkb21PcmlnaW5VcmwgPSBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0ucGFyc2VPcmln\naW5VcmxGcm9tRGF0YVNldCgkcmxMaW5rSHJlZik7XG4gICAgICAgIGlmICghdXRpbHMuaXNOdWxs\nKGRvbU9yaWdpblVybCkgJiYgIUJhaWR1SGFuZGxlUmVzdWx0SXRlbS5pc0JsYWNrTGlzdChkb21P\ncmlnaW5VcmwpKSB7XG4gICAgICAgICAgJHJsTGlua0hyZWYuc2V0QXR0cmlidXRlKFwiaHJlZlwi\nLCBkb21PcmlnaW5VcmwpO1xuICAgICAgICAgICRybExpbmtIcmVmLnNldEF0dHJpYnV0ZShcInJs\nLWxpbmstaHJlZlwiLCBkb21PcmlnaW5VcmwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDop6PmnpDlnKhKU09O5pWw5o2u5Lit55qEdXJsUGFyYW1z5Lit\n55yf5q2j55qE6ZO+5o6l77yM5aaC5p6c5LiN5a2Y5Zyo77yM6L+U5ZuedW5kZWZpbmVkXG4gICAg\nICogQHBhcmFtIGRhdGEg5Lyg5YWlIHtcInVybFBhcmFtc1wiOnsuLi59fSDkuK3nmoR1cmxQYXJh\nbXNcbiAgICAgKlwvXG4gICAgcGFyc2VVUkxQYXJhbXNPcmlnaW5VUkwoZGF0YSkge1xuICAgICAg\naWYgKGRhdGFbXCJvcmlnaW5VcmxcIl0pIHtcbiAgICAgICAgcmV0dXJuIGRhdGFbXCJvcmlnaW5V\ncmxcIl07XG4gICAgICB9IGVsc2UgaWYgKGRhdGFbXCJsb2dcIl0pIHtcbiAgICAgICAgbGV0IHVy\nbCA9IHZvaWQgMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB1cmwgPSB1dGlscy50b0pTT04o\nZGF0YVtcImxvZ1wiXSlbXCJtdVwiXTtcbiAgICAgICAgICB1dGlscy5pc051bGwodXJsKSAmJiAo\ndXJsID0gdm9pZCAwKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgfVxuICAg\nICAgICByZXR1cm4gdXJsO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeUseS6\njumDqOWIhuecn+WunumTvuaOpeWtmOWCqOWcqCBzY3JpcHQg5qCH562+5Lit77yM5b6X5Y+W5Ye6\nXG4gICAgICogQHBhcmFtICR0YXJnZXQg55uu5qCH5YWD57SgXG4gICAgICpcL1xuICAgIHBhcnNl\nU2NyaXB0RE9NT3JpZ2luVXJsTWFwKCR0YXJnZXQpIHtcbiAgICAgIGxldCB1cmxNYXAgPSBuZXcg\ndXRpbHMuRGljdGlvbmFyeSgpO1xuICAgICAgJHRhcmdldC5xdWVyeVNlbGVjdG9yQWxsKFwic2Ny\naXB0W2lkXj0nYXRvbS1kYXRhLSddXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgbGV0\nIGpzb25EYXRhID0gdXRpbHMudG9KU09OKGl0ZW0uaW5uZXJIVE1MKTtcbiAgICAgICAgaWYgKGpz\nb25EYXRhW1wiZGF0YVwiXVtcInJlc3VsdEF0b21EYXRhXCJdID09IG51bGwpIHtcbiAgICAgICAg\nICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdEF0b21EYXRhID0ganNvbkRh\ndGFbXCJkYXRhXCJdW1wicmVzdWx0QXRvbURhdGFcIl07XG4gICAgICAgIGlmIChyZXN1bHRBdG9t\nRGF0YVtcImFic3RyYWN0XCJdICYmIHJlc3VsdEF0b21EYXRhW1wiYWJzdHJhY3RcIl1bXCJ1cmxQ\nYXJhbXNcIl0gJiYgcmVzdWx0QXRvbURhdGFbXCJhYnN0cmFjdFwiXVtcInVybFBhcmFtc1wiXVtc\nInRjVXJsXCJdKSB7XG4gICAgICAgICAgbGV0IHVybCA9IEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5w\nYXJzZVVSTFBhcmFtc09yaWdpblVSTChcbiAgICAgICAgICAgIHJlc3VsdEF0b21EYXRhW1wiYWJz\ndHJhY3RcIl1bXCJ1cmxQYXJhbXNcIl1cbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICh1cmwp\nIHtcbiAgICAgICAgICAgIHVybE1hcC5zZXQocmVzdWx0QXRvbURhdGFbXCJhYnN0cmFjdFwiXVtc\nInVybFBhcmFtc1wiXVtcInRjVXJsXCJdLCB1cmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxu\nICAgICAgICBpZiAocmVzdWx0QXRvbURhdGFbXCJjb250ZW50XCJdICYmIHJlc3VsdEF0b21EYXRh\nW1wiY29udGVudFwiXVtcImFic3RyYWN0XCJdICYmIHJlc3VsdEF0b21EYXRhW1wiY29udGVudFwi\nXVtcImFic3RyYWN0XCJdW1widXJsUGFyYW1zXCJdICYmIHJlc3VsdEF0b21EYXRhW1wiY29udGVu\ndFwiXVtcImFic3RyYWN0XCJdW1widXJsUGFyYW1zXCJdW1widGNVcmxcIl0pIHtcbiAgICAgICAg\nICBsZXQgdXJsID0gQmFpZHVIYW5kbGVSZXN1bHRJdGVtLnBhcnNlVVJMUGFyYW1zT3JpZ2luVVJM\nKFxuICAgICAgICAgICAgcmVzdWx0QXRvbURhdGFbXCJjb250ZW50XCJdW1wiYWJzdHJhY3RcIl1b\nXCJ1cmxQYXJhbXNcIl1cbiAgICAgICAgICApO1xuICAgICAgICAgIGlmICh1cmwpIHtcbiAgICAg\nICAgICAgIHVybE1hcC5zZXQoXG4gICAgICAgICAgICAgIHJlc3VsdEF0b21EYXRhW1wiY29udGVu\ndFwiXVtcImFic3RyYWN0XCJdW1widXJsUGFyYW1zXCJdW1widGNVcmxcIl0sXG4gICAgICAgICAg\nICAgIHVybFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAg\naWYgKHJlc3VsdEF0b21EYXRhW1wiY29udGVudFwiXSAmJiByZXN1bHRBdG9tRGF0YVtcImNvbnRl\nbnRcIl1bXCJsaW5rc1wiXSAmJiByZXN1bHRBdG9tRGF0YVtcImNvbnRlbnRcIl1bXCJsaW5rc1wi\nXVtcImxpc3RcIl0pIHtcbiAgICAgICAgICByZXN1bHRBdG9tRGF0YVtcImNvbnRlbnRcIl1bXCJs\naW5rc1wiXVtcImxpc3RcIl0uZm9yRWFjaCgoaXRlbTIpID0+IHtcbiAgICAgICAgICAgIGl0ZW0y\nLmZvckVhY2goKGl0ZW0yMikgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbTIyW1widXJsUGFy\nYW1zXCJdW1widGNVcmxcIl0pIHtcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gQmFpZHVIYW5k\nbGVSZXN1bHRJdGVtLnBhcnNlVVJMUGFyYW1zT3JpZ2luVVJMKFxuICAgICAgICAgICAgICAgICAg\naXRlbTIyW1widXJsUGFyYW1zXCJdXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAg\nICBpZiAodXJsKSB7XG4gICAgICAgICAgICAgICAgICB1cmxNYXAuc2V0KGl0ZW0yMltcInVybFBh\ncmFtc1wiXVtcInRjVXJsXCJdLCB1cmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAg\naWYgKHJlc3VsdEF0b21EYXRhW1wiY29udGVudFwiXSAmJiByZXN1bHRBdG9tRGF0YVtcImNvbnRl\nbnRcIl1bXCJzaXRlXCJdKSB7XG4gICAgICAgICAgcmVzdWx0QXRvbURhdGFbXCJjb250ZW50XCJd\nW1wic2l0ZVwiXVtcImxpc3RcIl0uZm9yRWFjaChcbiAgICAgICAgICAgIChpdGVtMikgPT4ge1xu\nICAgICAgICAgICAgICBpZiAoaXRlbTJbXCJ1cmxQYXJhbXNcIl1bXCJ0Y1VybFwiXSkge1xuICAg\nICAgICAgICAgICAgIGxldCB1cmwgPSBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0ucGFyc2VVUkxQYXJh\nbXNPcmlnaW5VUkwoXG4gICAgICAgICAgICAgICAgICBpdGVtMltcInVybFBhcmFtc1wiXVxuICAg\nICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAg\nICAgICAgdXJsTWFwLnNldChpdGVtMltcInVybFBhcmFtc1wiXVtcInRjVXJsXCJdLCB1cmwpO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAg\nICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHVybE1hcDtcbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDliKTmlq3pk77mjqXmmK\/kuI3mmK\/mkJzntKLnu5PmnpznmoTl\njp\/lp4vpk77mjqVcbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICpcL1xuICAgIGlzTm90UmxMaW5r\nVXJsKHVybCkge1xuICAgICAgaWYgKHV0aWxzLmlzTnVsbCh1cmwpKSB7XG4gICAgICAgIHJldHVy\nbiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB1cmwgIT09IFwic3RyaW5nXCIpIHtc\nbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoIXVybC5zdGFydHNXaXRo\nKFwiaHR0cFwiKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh1\ncmwubWF0Y2goXC9eaHR0cChzfCk6XFxcL1xcXC9ub3VybFxcLih1YnNcXC58KWJhaWR1XFwuY29t\nXC9naSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFs\nc2U7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6Kej5p6QRE9N6IqC54K55LiK6ZqQ6JeP5Zyo\n5bGe5oCn5Lit55qE55yf5q2jdXJsXG4gICAgICogQHBhcmFtICR0YXJnZXQg55uu5qCH5YWD57Sg\nXG4gICAgICpcL1xuICAgIHBhcnNlT3JpZ2luVXJsRnJvbURhdGFTZXQoJHRhcmdldCkge1xuICAg\nICAgdmFyIF9hMywgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9pLCBfaiwgX2ssIF9sLCBf\nbSwgX24sIF9vLCBfcCwgX3EsIF9yLCBfcywgX3QsIF91LCBfdiwgX3csIF94LCBfeSwgX3osIF9B\nLCBfQiwgX0MsIF9EO1xuICAgICAgbGV0IHVybCA9IG51bGw7XG4gICAgICBsZXQgZGF0YUxvZ1N0\nciA9ICR0YXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0YS1sb2dcIik7XG4gICAgICBsZXQgJGFydGlj\nbGUgPSAkdGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoXCJhcnRpY2xlXCIpO1xuICAgICAgaWYgKGRhdGFM\nb2dTdHIgJiYgZGF0YUxvZ1N0ciAhPT0gXCJ7XCIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAg\nICBsZXQgZGF0YUxvZyA9IHV0aWxzLnRvSlNPTihkYXRhTG9nU3RyKTtcbiAgICAgICAgICB1cmwg\nPSBkYXRhTG9nLm11O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGxvZy5l\ncnJvcihcIkRPTeeahOWxnuaAp2RhdGEtbG9n5LiN5a2Y5Zyo8J+Rh1wiKTtcbiAgICAgICAgICBs\nb2cuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc05v\ndFJsTGlua1VybCh1cmwpKSB7XG4gICAgICAgIGxldCBybExpbmtEYXRhVXJsID0gKCRhcnRpY2xl\nID09IG51bGwgPyB2b2lkIDAgOiAkYXJ0aWNsZS5nZXRBdHRyaWJ1dGUoXCJybC1saW5rLWRhdGEt\ndXJsXCIpKSB8fCAkdGFyZ2V0LmdldEF0dHJpYnV0ZShcInJsLWxpbmstZGF0YS11cmxcIik7XG4g\nICAgICAgIGlmIChybExpbmtEYXRhVXJsKSB7XG4gICAgICAgICAgdXJsID0gcmxMaW5rRGF0YVVy\nbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNOb3RSbExpbmtVcmwodXJs\nKSkge1xuICAgICAgICBsZXQgZGF0YUlWS1N0ciA9ICR0YXJnZXQuZ2V0QXR0cmlidXRlKFwiZGF0\nYS1pdmtcIik7XG4gICAgICAgIGlmIChkYXRhSVZLU3RyKSB7XG4gICAgICAgICAgdHJ5IHtcbiAg\nICAgICAgICAgIGxldCBkYXRhSVZLID0gdXRpbHMudG9KU09OKGRhdGFJVktTdHIpO1xuICAgICAg\nICAgICAgaWYgKCgoX2EzID0gZGF0YUlWSyA9PSBudWxsID8gdm9pZCAwIDogZGF0YUlWSy5jb250\ncm9sKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmRlZmF1bHRfdXJsKSAmJiAhQmFpZHVIYW5kbGVS\nZXN1bHRJdGVtLmlzQmFpRHVUcmFuc2ZlclN0YXRpb24oXG4gICAgICAgICAgICAgIChfYiA9IGRh\ndGFJVksgPT0gbnVsbCA\/IHZvaWQgMCA6IGRhdGFJVksuY29udHJvbCkgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9iLmRlZmF1bHRfdXJsXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIHVybCA9\nIChfYyA9IGRhdGFJVksgPT0gbnVsbCA\/IHZvaWQgMCA6IGRhdGFJVksuY29udHJvbCkgPT0gbnVs\nbCA\/IHZvaWQgMCA6IF9jLmRlZmF1bHRfdXJsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoKF9k\nID0gZGF0YUlWSyA9PSBudWxsID8gdm9pZCAwIDogZGF0YUlWSy5jb250cm9sKSA9PSBudWxsID8g\ndm9pZCAwIDogX2QuZGF0YVVybCkgJiYgIUJhaWR1SGFuZGxlUmVzdWx0SXRlbS5pc0JhaUR1VHJh\nbnNmZXJTdGF0aW9uKFxuICAgICAgICAgICAgICAoX2UgPSBkYXRhSVZLID09IG51bGwgPyB2b2lk\nIDAgOiBkYXRhSVZLLmNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfZS5kYXRhVXJsXG4gICAg\nICAgICAgICApKSB7XG4gICAgICAgICAgICAgIHVybCA9IChfZiA9IGRhdGFJVksgPT0gbnVsbCA\/\nIHZvaWQgMCA6IGRhdGFJVksuY29udHJvbCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9mLmRhdGFVcmw7\nXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCgoX2ggPSAoX2cgPSBkYXRhSVZLID09IG51bGwgPyB2\nb2lkIDAgOiBkYXRhSVZLLmNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfZy5leHQpID09IG51\nbGwgPyB2b2lkIDAgOiBfaC51cmwpICYmICFCYWlkdUhhbmRsZVJlc3VsdEl0ZW0uaXNCYWlEdVRy\nYW5zZmVyU3RhdGlvbihcbiAgICAgICAgICAgICAgKF9qID0gKF9pID0gZGF0YUlWSyA9PSBudWxs\nID8gdm9pZCAwIDogZGF0YUlWSy5jb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX2kuZXh0KSA9\nPSBudWxsID8gdm9pZCAwIDogX2oudXJsXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAg\nIHVybCA9IChfbCA9IChfayA9IGRhdGFJVksgPT0gbnVsbCA\/IHZvaWQgMCA6IGRhdGFJVksuY29u\ndHJvbCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9rLmV4dCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9sLnVy\nbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAg\nICAgbG9nLmVycm9yKFwiRE9N55qE5bGe5oCnZGF0YS1pdmvkuI3lrZjlnKjwn5GHXCIpO1xuICAg\nICAgICAgICAgbG9nLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAg\nIH1cbiAgICAgIGlmICh0aGlzLmlzTm90UmxMaW5rVXJsKHVybCkpIHtcbiAgICAgICAgbGV0IHJs\nTGlua0RhdGFMb2dTdHIgPSAkdGFyZ2V0LmdldEF0dHJpYnV0ZShcInJsLWxpbmstZGF0YS1sb2dc\nIik7XG4gICAgICAgIGlmIChybExpbmtEYXRhTG9nU3RyKSB7XG4gICAgICAgICAgdHJ5IHtcbiAg\nICAgICAgICAgIGxldCBybExpbmtEYXRhTG9nID0gdXRpbHMudG9KU09OKHJsTGlua0RhdGFMb2dT\ndHIpO1xuICAgICAgICAgICAgaWYgKHV0aWxzLmlzTnVsbChybExpbmtEYXRhTG9nLm11KSAmJiBy\nbExpbmtEYXRhTG9nLmV4dHJhKSB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAg\nICAgbGV0IHJsTGlua0RhdGFMb2dFeHRyYSA9IHV0aWxzLnRvSlNPTihybExpbmtEYXRhTG9nLmV4\ndHJhKTtcbiAgICAgICAgICAgICAgICBpZiAocmxMaW5rRGF0YUxvZ0V4dHJhLmxvYyAmJiAhQmFp\nZHVIYW5kbGVSZXN1bHRJdGVtLmlzQmFpRHVUcmFuc2ZlclN0YXRpb24oXG4gICAgICAgICAgICAg\nICAgICBybExpbmtEYXRhTG9nRXh0cmEubG9jXG4gICAgICAgICAgICAgICAgKSkge1xuICAgICAg\nICAgICAgICAgICAgdXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KHJsTGlua0RhdGFMb2dFeHRyYS5s\nb2MpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmxMaW5rRGF0YUxvZ0V4dHJhLmxvZ19s\nb2MgJiYgIUJhaWR1SGFuZGxlUmVzdWx0SXRlbS5pc0JhaUR1VHJhbnNmZXJTdGF0aW9uKFxuICAg\nICAgICAgICAgICAgICAgcmxMaW5rRGF0YUxvZ0V4dHJhLmxvZ19sb2NcbiAgICAgICAgICAgICAg\nICApKSB7XG4gICAgICAgICAgICAgICAgICB1cmwgPSBkZWNvZGVVUklDb21wb25lbnQocmxMaW5r\nRGF0YUxvZ0V4dHJhLmxvZ19sb2MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAg\nfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IoXCJET03nmoTlsZ7m\ngKdybC1saW5rLWRhdGEtbG9n55qEZXh0cmHkuI3lrZjlnKjwn5GHXCIpO1xuICAgICAgICAgICAg\nICAgIGxvZy5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICAgIHVybCA9IHJsTGlua0RhdGFMb2cubXU7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcihcIkRP\nTeeahOWxnuaAp3JsLWxpbmstZGF0YS1sb2fkuI3lrZjlnKjwn5GHXCIpO1xuICAgICAgICAgICAg\nbG9nLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAg\nIGlmICh0aGlzLmlzTm90UmxMaW5rVXJsKHVybCkpIHtcbiAgICAgICAgbGV0IHJsTGlua0RhdGFJ\ndmtTdHIgPSAkdGFyZ2V0LmdldEF0dHJpYnV0ZShcInJsLWxpbmstZGF0YS1pdmtcIik7XG4gICAg\nICAgIGlmIChybExpbmtEYXRhSXZrU3RyKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAg\nIGxldCBybExpbmtEYXRhSXZrID0gdXRpbHMudG9KU09OKHJsTGlua0RhdGFJdmtTdHIpO1xuICAg\nICAgICAgICAgaWYgKCgoX20gPSBybExpbmtEYXRhSXZrID09IG51bGwgPyB2b2lkIDAgOiBybExp\nbmtEYXRhSXZrLmNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfbS5kZWZhdWx0X3VybCkgJiYg\nIUJhaWR1SGFuZGxlUmVzdWx0SXRlbS5pc0JhaUR1VHJhbnNmZXJTdGF0aW9uKFxuICAgICAgICAg\nICAgICAoX24gPSBybExpbmtEYXRhSXZrID09IG51bGwgPyB2b2lkIDAgOiBybExpbmtEYXRhSXZr\nLmNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfbi5kZWZhdWx0X3VybFxuICAgICAgICAgICAg\nKSkge1xuICAgICAgICAgICAgICB1cmwgPSAoX28gPSBybExpbmtEYXRhSXZrID09IG51bGwgPyB2\nb2lkIDAgOiBybExpbmtEYXRhSXZrLmNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfby5kZWZh\ndWx0X3VybDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKChfcCA9IHJsTGlua0RhdGFJdmsgPT0g\nbnVsbCA\/IHZvaWQgMCA6IHJsTGlua0RhdGFJdmsuY29udHJvbCkgPT0gbnVsbCA\/IHZvaWQgMCA6\nIF9wLmludm9rZV91cmwpICYmICFCYWlkdUhhbmRsZVJlc3VsdEl0ZW0uaXNCYWlEdVRyYW5zZmVy\nU3RhdGlvbihcbiAgICAgICAgICAgICAgKF9xID0gcmxMaW5rRGF0YUl2ayA9PSBudWxsID8gdm9p\nZCAwIDogcmxMaW5rRGF0YUl2ay5jb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3EuaW52b2tl\nX3VybFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICB1cmwgPSAoX3IgPSBybExpbmtE\nYXRhSXZrID09IG51bGwgPyB2b2lkIDAgOiBybExpbmtEYXRhSXZrLmNvbnRyb2wpID09IG51bGwg\nPyB2b2lkIDAgOiBfci5pbnZva2VfdXJsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoKF90ID0g\nKF9zID0gcmxMaW5rRGF0YUl2ayA9PSBudWxsID8gdm9pZCAwIDogcmxMaW5rRGF0YUl2ay5jb250\ncm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3MuZXh0KSA9PSBudWxsID8gdm9pZCAwIDogX3QudXJs\nKSAmJiAhQmFpZHVIYW5kbGVSZXN1bHRJdGVtLmlzQmFpRHVUcmFuc2ZlclN0YXRpb24oXG4gICAg\nICAgICAgICAgIChfdiA9IChfdSA9IHJsTGlua0RhdGFJdmsgPT0gbnVsbCA\/IHZvaWQgMCA6IHJs\nTGlua0RhdGFJdmsuY29udHJvbCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF91LmV4dCkgPT0gbnVsbCA\/\nIHZvaWQgMCA6IF92LnVybFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICB1cmwgPSAo\nX3ggPSAoX3cgPSBybExpbmtEYXRhSXZrID09IG51bGwgPyB2b2lkIDAgOiBybExpbmtEYXRhSXZr\nLmNvbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfdy5leHQpID09IG51bGwgPyB2b2lkIDAgOiBf\neC51cmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAg\nICAgICAgIGxvZy5lcnJvcihcIkRPTeeahOWxnuaAp3JsLWxpbmstZGF0YS1pdmvkuI3lrZjlnKjw\nn5GHXCIpO1xuICAgICAgICAgICAgbG9nLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB9XG4gICAg\nICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzTm90UmxMaW5rVXJsKHVybCkpIHtcbiAg\nICAgICAgbGV0IGFydGljbGVEYXRhTG9nU3RyID0gJGFydGljbGUgPT0gbnVsbCA\/IHZvaWQgMCA6\nICRhcnRpY2xlLmdldEF0dHJpYnV0ZShcInJsLWxpbmstZGF0YS1sb2dcIik7XG4gICAgICAgIGlm\nIChhcnRpY2xlRGF0YUxvZ1N0cikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQg\nYXJ0aWNsZURhdGFMb2cgPSB1dGlscy50b0pTT04oYXJ0aWNsZURhdGFMb2dTdHIpO1xuICAgICAg\nICAgICAgdXJsID0gYXJ0aWNsZURhdGFMb2cubXU7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3Ip\nIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcihcImFydGljbGUgRE9N55qE5bGe5oCn55qEcmwtbGlu\nay1kYXRhLWxvZ+S4jeWtmOWcqPCfkYdcIik7XG4gICAgICAgICAgICBsb2cuZXJyb3IoJHRhcmdl\ndCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc05v\ndFJsTGlua1VybCh1cmwpKSB7XG4gICAgICAgIGxldCBhcnRpY2xlTGlua0RhdGFJVktTdHIgPSAk\nYXJ0aWNsZSA9PSBudWxsID8gdm9pZCAwIDogJGFydGljbGUuZ2V0QXR0cmlidXRlKFwicmwtbGlu\nay1kYXRhLWl2a1wiKTtcbiAgICAgICAgaWYgKGFydGljbGVMaW5rRGF0YUlWS1N0cikge1xuICAg\nICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgYXJ0aWNsZUxpbmtEYXRhSVZLID0gdXRpbHMu\ndG9KU09OKGFydGljbGVMaW5rRGF0YUlWS1N0cik7XG4gICAgICAgICAgICBpZiAoKChfeSA9IGFy\ndGljbGVMaW5rRGF0YUlWSyA9PSBudWxsID8gdm9pZCAwIDogYXJ0aWNsZUxpbmtEYXRhSVZLLmNv\nbnRyb2wpID09IG51bGwgPyB2b2lkIDAgOiBfeS5kZWZhdWx0X3VybCkgJiYgIUJhaWR1SGFuZGxl\nUmVzdWx0SXRlbS5pc0JhaUR1VHJhbnNmZXJTdGF0aW9uKFxuICAgICAgICAgICAgICAoX3ogPSBh\ncnRpY2xlTGlua0RhdGFJVksgPT0gbnVsbCA\/IHZvaWQgMCA6IGFydGljbGVMaW5rRGF0YUlWSy5j\nb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX3ouZGVmYXVsdF91cmxcbiAgICAgICAgICAgICkp\nIHtcbiAgICAgICAgICAgICAgdXJsID0gKF9BID0gYXJ0aWNsZUxpbmtEYXRhSVZLID09IG51bGwg\nPyB2b2lkIDAgOiBhcnRpY2xlTGlua0RhdGFJVksuY29udHJvbCkgPT0gbnVsbCA\/IHZvaWQgMCA6\nIF9BLmRlZmF1bHRfdXJsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgoKF9CID0gYXJ0aWNsZUxp\nbmtEYXRhSVZLID09IG51bGwgPyB2b2lkIDAgOiBhcnRpY2xlTGlua0RhdGFJVksuY29udHJvbCkg\nPT0gbnVsbCA\/IHZvaWQgMCA6IF9CLmRhdGFVcmwpICYmICFCYWlkdUhhbmRsZVJlc3VsdEl0ZW0u\naXNCYWlEdVRyYW5zZmVyU3RhdGlvbihcbiAgICAgICAgICAgICAgKF9DID0gYXJ0aWNsZUxpbmtE\nYXRhSVZLID09IG51bGwgPyB2b2lkIDAgOiBhcnRpY2xlTGlua0RhdGFJVksuY29udHJvbCkgPT0g\nbnVsbCA\/IHZvaWQgMCA6IF9DLmRhdGFVcmxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAg\nICAgdXJsID0gKF9EID0gYXJ0aWNsZUxpbmtEYXRhSVZLID09IG51bGwgPyB2b2lkIDAgOiBhcnRp\nY2xlTGlua0RhdGFJVksuY29udHJvbCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9ELmRhdGFVcmw7XG4g\nICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGxv\nZy5lcnJvcihcImFydGljbGUgRE9N55qE5bGe5oCncmwtbGluay1kYXRhLWl2a+S4jeWtmOWcqPCf\nkYdcIik7XG4gICAgICAgICAgICBsb2cuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAg\nICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNOb3RSbExpbmtVcmwodXJsKSkge1xuICAg\nICAgICB1cmwgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGNoaW5lc2VBcnIg\nPSB1cmwubWF0Y2goXC9bXFx1NGUwMC1cXHU5ZmE1XVwvZyk7XG4gICAgICAgIGlmIChjaGluZXNl\nQXJyKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGluZXNlQXJyLmxlbmd0aDsg\naSsrKSB7XG4gICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShjaGluZXNlQXJyW2ldLCBlbmNv\nZGVVUkkoY2hpbmVzZUFycltpXSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxu\nICAgICAgaWYgKHRoaXMuaXNOb3RSbExpbmtVcmwodXJsKSkge1xuICAgICAgICBsZXQgbGFiZWxV\ncmwgPSAkdGFyZ2V0LmdldEF0dHJpYnV0ZShcImxhYmVsLXVybFwiKTtcbiAgICAgICAgaWYgKGxh\nYmVsVXJsKSB7XG4gICAgICAgICAgdXJsID0gbGFiZWxVcmw7XG4gICAgICAgIH1cbiAgICAgIH1c\nbiAgICAgIGlmICghdGhpcy5pc05vdFJsTGlua1VybCh1cmwpICYmIHV0aWxzLnN0YXJ0c1dpdGgo\ndXJsLCBcImh0dHAoc3wpOlwvXC8obVswLTldezAsMn18d3d3KS5iYWlkdS5jb21cL3NmP1wiKSkg\ne1xuICAgICAgICB1cmwgPSBkZWNvZGVVUklDb21wb25lbnQodXJsKTtcbiAgICAgIH1cbiAgICAg\nIGlmICghdGhpcy5pc05vdFJsTGlua1VybCh1cmwpKSB7XG4gICAgICAgIGlmICh1dGlscy5zdGFy\ndHNXaXRoKHVybCwgXCJodHRwKHN8KTpcL1wvbm91cmwuYmFpZHUuY29tXCIpKSB7XG4gICAgICAg\nICAgdXJsID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHVybDtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5bmr4\/kuIDpobnnmoTmoIfpopjlhYPntKBcbiAg\nICAgKiBAcGFyYW0gdGFyZ2V0Tm9kZSDnm67moIfpoblcbiAgICAgKlwvXG4gICAgZ2V0SXRlbVRp\ndGxlRWxlbWVudCh0YXJnZXROb2RlKSB7XG4gICAgICByZXR1cm4gdGFyZ2V0Tm9kZS5xdWVyeVNl\nbGVjdG9yKFwiLmMtdGl0bGUtdGV4dFwiKSB8fCB0YXJnZXROb2RlLnF1ZXJ5U2VsZWN0b3IoXCJw\nLmN1LXRpdGxlXCIpIHx8IHRhcmdldE5vZGUucXVlcnlTZWxlY3RvcihcImRpdltjbGFzc149aGVh\nZGVyLXdyYXBwZXJdXCIpIHx8IHRhcmdldE5vZGUucXVlcnlTZWxlY3RvcihcIi5jLXRpdGxlXCIp\nO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOa3u+WKoENTRE7nmoRDU1NcbiAgICAgKlwvXG4g\nICAgYWRkQ1NETkZsYWdDU1MoKSB7XG4gICAgICBhZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwv\nXG4gICAgICAgIGBcbiAgICAgICAgLmNzZG4tZmxhZy1jb21wb25lbnQtYm94e2Rpc3BsYXk6Zmxl\neDttYXJnaW46MDt0ZXh0LWFsaWduOmxlZnQ7Zm9udC1zaXplOjA7cG9zaXRpb246cmVsYXRpdmU7\nd2lkdGg6MjYwcHg7bWFyZ2luOjVweCAwfVxuICAgICAgICAuY3Nkbi1mbGFnLWNvbXBvbmVudC1i\nb3ggYXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6MTRweH1cbiAgICAgICAgLmNzZG4t\nZmxhZy1jb21wb25lbnQtYm94IC5wcmFpc2Uge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDog\nMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZjU3MjI7XG4gICAgICAgICAgICBib3Jk\nZXItdG9wLWxlZnQtcmFkaXVzOiA1MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1y\nYWRpdXM6IDUwcHg7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA1MHB4\nO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDUwcHg7XG4gICAgICAg\nICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCNmZjU3MjIsI2Y3\nOGQ2Yik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAtby1saW5lYXItZ3JhZGllbnQocmlnaHQs\nI2ZmNTcyMiwjZjc4ZDZiKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdy\nYWRpZW50KHJpZ2h0LCNmZjU3MjIsI2Y3OGQ2Yik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBs\naW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2ZmNTcyMiwjZjc4ZDZiKTtcbiAgICAgICAgfVxuICAg\nICAgICAuY3Nkbi1mbGFnLWNvbXBvbmVudC1ib3ggLnByYWlzZSxcbiAgICAgICAgLmNzZG4tZmxh\nZy1jb21wb25lbnQtYm94IC5zaGFyZSB7XG4gICAgICAgICAgICBoZWlnaHQ6YXV0bztcbiAgICAg\nICAgICAgIGxpbmUtaGVpZ2h0Om5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAg\nICAgICAgICAgYmFja2dyb3VuZDogI2ZmMDUwNTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6\nIDVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJweCA0cHg7XG4gICAgICAgIH1gXG4gICAgICAp\nO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOe7meWFg+e0oOa3u+WKoOOAkENTRE7jgJHkuIvo\nvb3moIfor4ZcbiAgICAgKiBAcGFyYW0gJHJlc3VsdFxuICAgICAqXC9cbiAgICBhZGRDU0RORmxh\nZygkcmVzdWx0KSB7XG4gICAgICBpZiAoJHJlc3VsdC5xdWVyeVNlbGVjdG9yKFwiLmNzZG4tZmxh\nZy1jb21wb25lbnQtYm94XCIpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxl\ndCAkdGl0bGVUZXh0ID0gQmFpZHVIYW5kbGVSZXN1bHRJdGVtLmdldEl0ZW1UaXRsZUVsZW1lbnQo\nJHJlc3VsdCk7XG4gICAgICBpZiAoJHRpdGxlVGV4dCkge1xuICAgICAgICBkb211dGlscy5hcHBl\nbmQoXG4gICAgICAgICAgJHRpdGxlVGV4dCxcbiAgICAgICAgICBcLypodG1sKlwvXG4gICAgICAg\nICAgYDxkaXYgY2xhc3M9XCJjc2RuLWZsYWctY29tcG9uZW50LWJveFwiPjxhIGNsYXNzPVwicHJh\naXNlXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPkNTRE7kuIvovb08XC9hPjxcL2Rpdj5gXG4gICAg\nICAgICk7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwi5o+S5YWlQ1NETuS4i+i9veaPkOekuuagh+mi\nmFwiKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDnp7vpmaTlub\/lkYrjgIHm\njqjlub9cbiAgICAgKlwvXG4gICAgcmVtb3ZlQWRzKCkge1xuICAgICAgY29uc3QgVEFHID0gXCLl\niKDpmaTlub\/lkYogPT0+IFwiO1xuICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1\nX3NlYXJjaF9ibG9ja2luZ19ldmVyeW9uZV9pc19zdGlsbF9zZWFyY2hpbmdcIikpIHtcbiAgICAg\nICAgbGV0ICRjb250ZXJFdmVyeU9uZVNlYXJjaCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo\nXG4gICAgICAgICAgXCIuYy1yZWNvbW0td3JhcC5uZXctdXgtcmVjb20td3JhcHBlci5jLWJnLWNv\nbG9yLXdoaXRlLmFuaW1hdGlvblwiXG4gICAgICAgICk7XG4gICAgICAgIGlmICgkY29udGVyRXZl\ncnlPbmVTZWFyY2gubGVuZ3RoKSB7XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoYCR7VEFHfeS4remX\ntCDlpKflrrbpg73lnKjmkJwgJHskY29udGVyRXZlcnlPbmVTZWFyY2gubGVuZ3RofeS4qmApO1xu\nICAgICAgICAgIGRvbXV0aWxzLnJlbW92ZSgkY29udGVyRXZlcnlPbmVTZWFyY2gpO1xuICAgICAg\nICB9XG4gICAgICAgIGxldCAkYm90dG9tRXZlcnlPbmVTZWFyY2ggPSBkb2N1bWVudC5xdWVyeVNl\nbGVjdG9yQWxsKFwiI3BhZ2UtcmVsYXRpdmVcIik7XG4gICAgICAgIGlmICgkYm90dG9tRXZlcnlP\nbmVTZWFyY2gubGVuZ3RoKSB7XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoYCR7VEFHfeacq+WwviDl\npKflrrbpg73lnKjmkJwgJHskYm90dG9tRXZlcnlPbmVTZWFyY2gubGVuZ3RofeS4qmApO1xuICAg\nICAgICAgIGRvbXV0aWxzLnJlbW92ZSgkYm90dG9tRXZlcnlPbmVTZWFyY2gpO1xuICAgICAgICB9\nXG4gICAgICAgIGxldCAkc2VhcmNoQ3JhZnRFdmVyeU9uY2VTZWFyY2ggPSBkb2N1bWVudC5xdWVy\neVNlbGVjdG9yQWxsKFwiI3JlbGF0aXZld29yZHNcIik7XG4gICAgICAgIGlmICgkc2VhcmNoQ3Jh\nZnRFdmVyeU9uY2VTZWFyY2gubGVuZ3RoKSB7XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoXG4gICAg\nICAgICAgICBgJHtUQUd9566A5Y2V5pCc57Si5Yqg6L295LiL5LiA6aG15Ye6546w55qEIOWkp+Wu\ntumDveWcqOaQnCAkeyRzZWFyY2hDcmFmdEV2ZXJ5T25jZVNlYXJjaC5sZW5ndGh95LiqYFxuICAg\nICAgICAgICk7XG4gICAgICAgICAgZG9tdXRpbHMucmVtb3ZlKCRzZWFyY2hDcmFmdEV2ZXJ5T25j\nZVNlYXJjaCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChTZWFyY2hI\nYW5kbGVSZXN1bHRFdmVyeU9uZVNlYXJjaC5yZWZhY3RvckV2ZXJ5b25lSXNTdGlsbFNlYXJjaGlu\nZykge1xuICAgICAgICAgIGxldCAkY29udGVyRXZlcnlPbmVTZWFyY2ggPSBBcnJheS5mcm9tKFxu\nICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgJy5j\nLXJlc3VsdC5yZXN1bHRbdHBsXj1cInJlY29tbWVuZF9saXN0XCJdJ1xuICAgICAgICAgICAgKVxu\nICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKCRjb250ZXJFdmVyeU9uZVNlYXJjaC5sZW5ndGgp\nIHtcbiAgICAgICAgICAgIFNlYXJjaEhhbmRsZVJlc3VsdEV2ZXJ5T25lU2VhcmNoLmhhbmRsZUNl\nbnRlcigkY29udGVyRXZlcnlPbmVTZWFyY2gpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQg\nJGJvdHRvbUV2ZXJ5T25lU2VhcmNoID0gQXJyYXkuZnJvbShcbiAgICAgICAgICAgIGRvY3VtZW50\nLnF1ZXJ5U2VsZWN0b3JBbGwoXCIjcGFnZS1yZWxhdGl2ZVwiKVxuICAgICAgICAgICk7XG4gICAg\nICAgICAgaWYgKCRib3R0b21FdmVyeU9uZVNlYXJjaC5sZW5ndGgpIHtcbiAgICAgICAgICAgIFNl\nYXJjaEhhbmRsZVJlc3VsdEV2ZXJ5T25lU2VhcmNoLmhhbmRsZUJvdHRvbShcbiAgICAgICAgICAg\nICAgQXJyYXkuZnJvbShcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs\nKFwiI3BhZ2UtcmVsYXRpdmVcIilcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAg\nICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxldCAkcG9wVXAgPSBkb2N1bWVu\ndC5xdWVyeVNlbGVjdG9yQWxsKFwiI3BvcC11cFwiKTtcbiAgICAgIGlmICgkcG9wVXAubGVuZ3Ro\nKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKGAke1RBR33ot7Povaznmb7luqZhcHDmj5DnpLogJHsk\ncG9wVXAubGVuZ3RofeS4qmApO1xuICAgICAgICBkb211dGlscy5yZW1vdmUoJHBvcFVwKTtcbiAg\nICAgIH1cbiAgICAgIGxldCAkZWNfd2lzZV9hYWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs\nKFwiLmVjX3dpc2VfYWRcIik7XG4gICAgICBpZiAoJGVjX3dpc2VfYWFkLmxlbmd0aCkge1xuICAg\nICAgICBsb2cuc3VjY2VzcyhgJHtUQUd96aG26YOo55qE6YOo5YiG5ZWG5ZOB5bm\/5ZGKICR7JGVj\nX3dpc2VfYWFkLmxlbmd0aH3kuKpgKTtcbiAgICAgICAgZG9tdXRpbHMucmVtb3ZlKGRvbXV0aWxz\nLnBhcmVudCgkZWNfd2lzZV9hYWQpKTtcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2Vs\nZWN0b3JBbGwoXCIuYy1yZXN1bHQucmVzdWx0XCIpLmZvckVhY2goKCRyZXN1bHQpID0+IHtcbiAg\nICAgICAgdmFyIF9hMywgX2I7XG4gICAgICAgIGxldCBkYXRhTG9nID0gdXRpbHMudG9KU09OKCRy\nZXN1bHQuZ2V0QXR0cmlidXRlKFwiZGF0YS1sb2dcIikpO1xuICAgICAgICBsZXQgc2VhcmNoQXJ0\naWNsZU9yaWdpbmFsX2xpbmsgPSBkYXRhTG9nW1wibXVcIl0gfHwgKChfYTMgPSAkcmVzdWx0LnF1\nZXJ5U2VsZWN0b3IoXCJhcnRpY2xlXCIpKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmdldEF0dHJp\nYnV0ZShcInJsLWxpbmstaHJlZlwiKSk7XG4gICAgICAgIGlmICh1dGlscy5pc05vdE51bGwoc2Vh\ncmNoQXJ0aWNsZU9yaWdpbmFsX2xpbmspICYmIEJhaWR1U2VhcmNoQmxvY2tSdWxlLmhhbmRsZUN1\nc3RvbVJ1bGUoXG4gICAgICAgICAgJHJlc3VsdCxcbiAgICAgICAgICBzZWFyY2hBcnRpY2xlT3Jp\nZ2luYWxfbGlua1xuICAgICAgICApKSB7XG4gICAgICAgICAgbG9nLmluZm8oW1wi6Kem5Y+R6Ieq\n5a6a5LmJ6KeE5YiZ77yM5oum5oiq6K+l6aG577yaXCIsIHNlYXJjaEFydGljbGVPcmlnaW5hbF9s\naW5rXSk7XG4gICAgICAgICAgJHJlc3VsdC5yZW1vdmUoKTtcbiAgICAgICAgICByZXR1cm47XG4g\nICAgICAgIH1cbiAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1LXNlYXJjaC1i\nbG9ja0F1dG9tYXRpY1ZpZGVvUGxheWJhY2tcIikpIHtcbiAgICAgICAgICAkcmVzdWx0LnF1ZXJ5\nU2VsZWN0b3JBbGwoXCJbY2xhc3MqPSctdmlkZW8tcGxheWVyJ11cIikuZm9yRWFjaCgoZWxlKSA9\nPiBlbGUucmVtb3ZlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1dGlscy5pc05vdE51bGwo\nc2VhcmNoQXJ0aWNsZU9yaWdpbmFsX2xpbmspKSB7XG4gICAgICAgICAgaWYgKHNlYXJjaEFydGlj\nbGVPcmlnaW5hbF9saW5rLm1hdGNoKFxuICAgICAgICAgICAgXC9eaHR0cChzfCk6XFxcL1xcXC8o\nZG93bmxvYWQuY3Nkbi5uZXR8d3d3Lml0ZXllLmNvbVxcXC9yZXNvdXJjZSlcL2dcbiAgICAgICAg\nICApKSB7XG4gICAgICAgICAgICBsb2cuc3VjY2VzcyhcIua3u+WKoENTRE7kuIvovb3moIfor4Zc\nIik7XG4gICAgICAgICAgICBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0uYWRkQ1NETkZsYWcoJHJlc3Vs\ndCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChQb3BzUGFuZWwuZ2V0VmFs\ndWUoXG4gICAgICAgICAgXCJiYWlkdV9zZWFyY2hfYmxvY2tpbmdfZXZlcnlvbmVfaXNfc3RpbGxf\nc2VhcmNoaW5nXCJcbiAgICAgICAgKSkge1xuICAgICAgICAgIGxldCAkdGl0bGUgPSAkcmVzdWx0\nLnF1ZXJ5U2VsZWN0b3IoXCIucnctbGl0dGxlLXRpdGxlXCIpO1xuICAgICAgICAgIGlmICgkdGl0\nbGUgJiYgKChfYiA9ICR0aXRsZS50ZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLnN0\nYXJ0c1dpdGgoXCLlpKflrrbov5jlnKjmkJxcIikpKSB7XG4gICAgICAgICAgICAkcmVzdWx0ID09\nIG51bGwgPyB2b2lkIDAgOiAkcmVzdWx0LnJlbW92ZSgpO1xuICAgICAgICAgICAgbG9nLnN1Y2Nl\nc3MoYCR7VEFHfeWkp+WutumDveWcqOaQnO+8iOiDveeci+WIsOeahO+8iWApO1xuICAgICAgICAg\nIH1cbiAgICAgICAgICAkcmVzdWx0LnF1ZXJ5U2VsZWN0b3JBbGwoXCJzcGFuXCIpLmZvckVhY2go\nKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHZhciBfYTQ7XG4gICAgICAgICAgICBsZXQgcmVzdWx0\nUGFyZW50RWxlbWVudCA9IChfYTQgPSBpdGVtID09IG51bGwgPyB2b2lkIDAgOiBpdGVtLnBhcmVu\ndEVsZW1lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYTQucGFyZW50RWxlbWVudDtcbiAgICAgICAg\nICAgIGlmIChyZXN1bHRQYXJlbnRFbGVtZW50ICYmIGl0ZW0uaW5uZXJUZXh0Lm1hdGNoKFwv55m+\n5bqmQVBQ5YaF5omT5byAXC8pIHx8IHJlc3VsdFBhcmVudEVsZW1lbnQgJiYgcmVzdWx0UGFyZW50\nRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJkYXRhLWZyb21cIikgPT09IFwiZXRwbFwiKSB7XG4gICAg\nICAgICAgICAgIHJlc3VsdFBhcmVudEVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgIGxv\nZy5zdWNjZXNzKFxuICAgICAgICAgICAgICAgIGAke1RBR33nmb7luqZBUFDlhoXmiZPlvIDvvIzp\nmpDol4\/nmoTlub\/lkYrvvIzkvJrlnKjmu5rliqjml7bot7Plh7rmnaXnmoRgXG4gICAgICAgICAg\nICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAg\nJHJlc3VsdC5xdWVyeVNlbGVjdG9yQWxsKFwiLmMtY29sb3Itc291cmNlXCIpLmZvckVhY2goKCRi\nb3R0b21Mb2dvKSA9PiB7XG4gICAgICAgICAgaWYgKCRib3R0b21Mb2dvLm91dGVyVGV4dCAmJiAk\nYm90dG9tTG9nby5vdXRlclRleHQubWF0Y2goXC\/nmb7luqYoQVBQ5YaF5omT5byAfOaJi+acuuWK\nqeaJiylcLykpIHtcbiAgICAgICAgICAgICRyZXN1bHQucmVtb3ZlKCk7XG4gICAgICAgICAgICBs\nb2cuc3VjY2VzcyhgJHtUQUd955m+5bqmQVBQ5YaF5omT5byAfOeZvuW6puaJi+acuuWKqeaJi2Ap\nO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipc\nbiAgICAgKiDph43lrprlkJHpobbpg6jnmoTpk77mjqXvvIzlpoLlhajpg6jjgIHop4bpopHjgIHl\nm77niYfjgIHotLTlkKfjgIHlkqjor6IuLi5cbiAgICAgKlwvXG4gICAgcmVkaXJlY3RUb3BMaW5r\nKCkge1xuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5zZS1oZWFkLXRhYmxpbmsg\nYVwiKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmhhc0F0dHJpYnV0ZShc\nImRhdGEtc2ZsaW5rXCIpICYmICF1dGlscy5pc051bGwoaXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRh\nLXNmbGlua1wiKSkgJiYgQmFpZHVIYW5kbGVSZXN1bHRJdGVtLmlzQmFpRHVUcmFuc2ZlclN0YXRp\nb24oXG4gICAgICAgICAgaXRlbS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpXG4gICAgICAgICkgJiYg\naXRlbS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpICE9PSBpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEt\nc2ZsaW5rXCIpKSB7XG4gICAgICAgICAgaXRlbS5ocmVmID0gaXRlbS5nZXRBdHRyaWJ1dGUoXG4g\nICAgICAgICAgICBcImRhdGEtc2ZsaW5rXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAg\nICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliKDpmaRzY3JpcHTmoIfnrb7kuK3nmoTn\nmb7luqZBUFDmj5DnpLpcbiAgICAgKlwvXG4gICAgcmVwbGFjZVNjcmlwdEJhaUR1VGlwKCkge1xu\nICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInNjcmlwdFwiKS5mb3JFYWNoKChpdGVt\nKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmlubmVyVGV4dC5tYXRjaChcL2RlZmluZVxcKFxcXCJA\nbW9sZWN1bGVcXFwvYWZ0Y2xrXFxcL2luZGV4XFxcIixcL2cpKSB7XG4gICAgICAgICAgaXRlbS5y\nZW1vdmUoKTtcbiAgICAgICAgICBsb2cuc3VjY2VzcyhcIuWIoOmZpOW5v+WRiiA9PT4gc2NyaXB0\n5YWD57SgIOi3s+i9rOeZvuW6pmFwcOaPkOekulwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4g\nICAgfSxcbiAgICBcLyoqXG4gICAgICog5pu\/5o2i6ZO+5o6lXG4gICAgICpcL1xuICAgIGFzeW5j\nIHJlcGxhY2VMaW5rKCkge1xuICAgICAgbGV0IHNlYXJjaFJlc3VsdExpc3QgPSBBcnJheS5mcm9t\nKFxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmMtcmVzdWx0LnJlc3VsdFwi\nKVxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3Qgc2VhcmNoUmVzdWx0SXRlbSBvZiBzZWFyY2hS\nZXN1bHRMaXN0KSB7XG4gICAgICAgIGxldCByZXN1bHRJdGVtT3JpZ2luVVJMID0gQmFpZHVIYW5k\nbGVSZXN1bHRJdGVtLnBhcnNlT3JpZ2luVXJsRnJvbURhdGFTZXQoc2VhcmNoUmVzdWx0SXRlbSk7\nXG4gICAgICAgIGlmICh1dGlscy5pc051bGwocmVzdWx0SXRlbU9yaWdpblVSTCkpIHtcbiAgICAg\nICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYXJ0aWNsZUVsZW1lbnQgPSBz\nZWFyY2hSZXN1bHRJdGVtLnF1ZXJ5U2VsZWN0b3IoXCJhcnRpY2xlXCIpO1xuICAgICAgICBpZiAo\nIWFydGljbGVFbGVtZW50KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAg\nICAgaWYgKEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5pc0JsYWNrTGlzdChyZXN1bHRJdGVtT3JpZ2lu\nVVJMKSkge1xuICAgICAgICAgIGxvZy5lcnJvcihcIum7keWQjeWNlemTvuaOpeS4jei\/m+ihjOab\nv+aNovCfkYlcIiArIHJlc3VsdEl0ZW1PcmlnaW5VUkwpO1xuICAgICAgICAgIGNvbnRpbnVlO1xu\nICAgICAgICB9XG4gICAgICAgIGlmIChzZWFyY2hSZXN1bHRJdGVtLmdldEF0dHJpYnV0ZShcInRw\nbFwiKSA9PT0gXCJ3ZW5kYV9hYnN0cmFjdFwiICYmIHNlYXJjaFJlc3VsdEl0ZW0uZ2V0QXR0cmli\ndXRlKFwicHJldmVudENsaWNrXCIpID09IG51bGwpIHtcbiAgICAgICAgICBzZWFyY2hSZXN1bHRJ\ndGVtLnNldEF0dHJpYnV0ZShcInByZXZlbnRDbGlja1wiLCBcInRydWVcIik7XG4gICAgICAgICAg\nZG9tdXRpbHMub24oXG4gICAgICAgICAgICBzZWFyY2hSZXN1bHRJdGVtLFxuICAgICAgICAgICAg\nXCJjbGlja1wiLFxuICAgICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICAg\ndXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgbGV0IGNsaWNrTm9kZSA9\nIGV2ZW50LnRhcmdldDtcbiAgICAgICAgICAgICAgaWYgKGNsaWNrTm9kZS5sb2NhbE5hbWUgJiYg\nY2xpY2tOb2RlLmxvY2FsTmFtZSA9PT0gXCJzdXBcIiAmJiBjbGlja05vZGUuZ2V0QXR0cmlidXRl\nKFwicmwtdHlwZVwiKSA9PT0gXCJzdG9wXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4g\nICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnN0b3AoKTtcbiAg\nICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRlY29kZVVSSShyZXN1bHRJdGVt\nT3JpZ2luVVJMKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7\nXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3VsdEl0ZW1P\ncmlnaW5VUkwubWF0Y2goXC9eaHR0cChzfCk6XFxcL1xcXC93d3cuaW50ZXJuYWwudmlkZW8uYmFp\nZHUuY29tXC9nKSkge1xuICAgICAgICAgIGxldCBpbnRlcm5hbFZpZGVvID0gZGVjb2RlVVJJKFxu\nICAgICAgICAgICAgYXJ0aWNsZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwicmwtbGluay1kYXRhLWxv\nZ1wiKVxuICAgICAgICAgICk7XG4gICAgICAgICAgbGV0IGludGVybmFsVmlkZW9NYXRjaCA9IGlu\ndGVybmFsVmlkZW8ubWF0Y2goXG4gICAgICAgICAgICBcL1xcXC9zZlxcP3BkPXZpZGVvX3BhZygu\nKj8pPXtcL2dcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChpbnRlcm5hbFZpZGVvTWF0Y2gp\nIHtcbiAgICAgICAgICAgIGxldCBpbnRlcm5hbFZpZGVvVGV4dCA9IGludGVybmFsVmlkZW9NYXRj\naFswXTtcbiAgICAgICAgICAgIGxldCBuZXdpbnRlcm5hbFZpZGVvID0gaW50ZXJuYWxWaWRlb1Rl\neHQuc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICBpbnRlcm5hbFZp\nZGVvTWF0Y2gubGVuZ3RoIC0gMlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlc3VsdEl0\nZW1PcmlnaW5VUkwgPSBuZXdpbnRlcm5hbFZpZGVvO1xuICAgICAgICAgICAgbG9nLmluZm8oYOin\nhumikemTvuaOpSAke25ld2ludGVybmFsVmlkZW99YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICAgIEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5zZXRBcnRpY2xlT3JpZ2luVXJsKFxuICAg\nICAgICAgIHNlYXJjaFJlc3VsdEl0ZW0sXG4gICAgICAgICAgcmVzdWx0SXRlbU9yaWdpblVSTFxu\nICAgICAgICApO1xuICAgICAgICBhcnRpY2xlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJybC1saW5r\nLWhyZWZcIiwgcmVzdWx0SXRlbU9yaWdpblVSTCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBj\nb25zdCBTZWFyY2hOZXh0UGFnZSA9IHtcbiAgICBcLyoqXG4gICAgICog5Yid5aeL6aG16Z2i55qE\n5L+h5oGvXG4gICAgICpcL1xuICAgIGluaXRQYWdlSW5mbzogbnVsbCxcbiAgICBcLyoqXG4gICAg\nICog5pys6aG155qE5L+h5oGv77yM6Ieq5Yqo6Lef6ZqP6K+35rGC5LiL5LiA6aG15pu05paw5pWw\n5o2uXG4gICAgICpcL1xuICAgIHBhZ2VJbmZvOiBudWxsLFxuICAgIFwvKipcbiAgICAgKiDmnKzp\nobXnmoTkuIvkuIDpobXnmoTkv6Hmga9cbiAgICAgKlwvXG4gICAgbmV4dFBhZ2VJbmZvOiBudWxs\nLFxuICAgIFwvKipcbiAgICAgKiDop4Llr5\/lmahcbiAgICAgKlwvXG4gICAgaW50ZXJzZWN0aW9u\nT2JzZXJ2ZXI6IG51bGwsXG4gICAgJGVsOiB7XG4gICAgICBcLyoqXG4gICAgICAgKiDnu5Pmnpzp\nobnnmoTlrrnlmajlhYPntKBcbiAgICAgICAqXC9cbiAgICAgIGdldCBwYWdlQ29udHJvbGxlcigp\nIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcGFnZS1jb250cm9s\nbGVyXCIpIHx8IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcGFnZS1iZFwiKSB8fCBcL1wvIOmX\nruetlOmhtemdoueahFxuICAgICAgICBcL1wvIGh0dHBzOlwvXC9tLmJhaWR1LmNvbVwvc2ZcL3Zz\nZWFyY2g\/cGQ9d2VuZGFfdGFiJnRuPXZzZWFyY2gmcG49MTAmZnJvbT0wJndvcmQ9JUU5JUIyJThE\nJUU5JUIxJUJDJnNhPXZzX25wJm1zPTEmcnFpZD1cbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl\nY3RvcihcImItc3VwZXJmcmFtZS1ib2R5XCIpO1xuICAgICAgfSxcbiAgICAgIFwvKipcbiAgICAg\nICAqIOe7k+aenOmhueWFg+e0oO+8jOeUqOadpeaKiue7k+aenOWFg+e0oOS4gOS4quS4queahOa3\nu+WKoOWIsOivpeWFg+e0oOWGhVxuICAgICAgICpcL1xuICAgICAgZ2V0IHJlc3VsdHMoKSB7XG4g\nICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3Jlc3VsdHNcIikgfHwgZG9j\ndW1lbnQucXVlcnlTZWxlY3RvcihcImItc3VwZXJmcmFtZS1ib2R5IC5zZmEtcmVzdWx0c1wiKTtc\nbiAgICAgIH1cbiAgICB9LFxuICAgIGluaXQoKSB7XG4gICAgICBpZiAoQmFpZHVSb3V0ZXIuaXNT\nZWFyY2hWU2VhcmNoX25vdGUoKSkge1xuICAgICAgICBsb2FkaW5nVmlldy5oaWRlKCk7XG4gICAg\nICAgIGxvZy53YXJuKFxuICAgICAgICAgIFwi6Ieq5Yqo57+76aG177ya5b2T5YmN5Li656yU6K6w\n6aG16Z2i77yM56aB55So6Ieq5Yqo5Yqg6L295LiL5LiA6aG15Yqf6IO977yM5Y6f5Zug77ya6K+l\n6aG16Z2i6Ieq5bim5Yqg6L295LiL5LiA6aG15Yqf6IO9XCJcbiAgICAgICAgKTtcbiAgICAgICAg\ncmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5pbml0UGFnZUxpbmVDU1MoKTtcbiAgICAgIENv\nbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgIFwvKiDpmpDol4\/liIbpobXmjqfliLblmagg\nKlwvXG4gICAgICAgIFwiI3BhZ2UtY29udHJvbGxlclwiXG4gICAgICApO1xuICAgICAgbG9hZGlu\nZ1ZpZXcuaW5pdExvYWRpbmdWaWV3KHRydWUpO1xuICAgICAgbGV0ICRsb2FkaW5nVmlld1ByZXYg\nPSB0aGlzLiRlbC5wYWdlQ29udHJvbGxlcjtcbiAgICAgIGlmICgkbG9hZGluZ1ZpZXdQcmV2KSB7\nXG4gICAgICAgIGRvbXV0aWxzLmFmdGVyKCRsb2FkaW5nVmlld1ByZXYsIGxvYWRpbmdWaWV3Lmdl\ndExvYWRpbmdWaWV3RWxlbWVudCgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5lcnJv\ncihcIuiHquWKqOe\/u+mhte+8muacquaJvuWIsOWPr+S7peWcqOWQjumdouaPkuWFpeWKoOi9veS4\nreeahOWFg+e0oFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRO\nZXh0UGFnZUxvYWRpbmdPYnNlcnZlcigpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiuvue9\nrua7muWKqOS6i+S7tlxuICAgICAqXC9cbiAgICBzZXROZXh0UGFnZUxvYWRpbmdPYnNlcnZlcigp\nIHtcbiAgICAgIGxldCBpc0xvYWRpbmdOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgaWYgKHR5cGVv\nZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBsb2cu\nc3VjY2VzcyhcIuebkeWQrOa7muWKqDogc2Nyb2xsXCIpO1xuICAgICAgICBkb211dGlscy5vbihc\nbiAgICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgICBcInNjcm9sbFwiLFxuICAgICAgICAgIHZv\naWQgMCxcbiAgICAgICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNMb2FkaW5n\nTmV4dFBhZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgaWYgKCF1dGlscy5pc05lYXJCb3R0b20od2luZG93LmlubmVySGVpZ2h0IFwvIDMpKSB7\nXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzTG9h\nZGluZ05leHRQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2Nyb2xsRXZlbnQo\nKTtcbiAgICAgICAgICAgIGF3YWl0IHV0aWxzLnNsZWVwKDE1MCk7XG4gICAgICAgICAgICBpc0xv\nYWRpbmdOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAg\nICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAg\nICAgICBvbmNlOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7\nXG4gICAgICAgIGxvZy5zdWNjZXNzKFwi55uR5ZCs5rua5YqoOiBJbnRlcnNlY3Rpb25PYnNlcnZl\nclwiKTtcbiAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rp\nb25PYnNlcnZlcihcbiAgICAgICAgICBhc3luYyAoZW50cmllcykgPT4ge1xuICAgICAgICAgICAg\naWYgKCFpc0xvYWRpbmdOZXh0UGFnZSAmJiBlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nKSB7XG4g\nICAgICAgICAgICAgIGlzTG9hZGluZ05leHRQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgYXdh\naXQgdGhpcy5zY3JvbGxFdmVudCgpO1xuICAgICAgICAgICAgICBpc0xvYWRpbmdOZXh0UGFnZSA9\nIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgeyB0aHJlc2hv\nbGQ6IDAgfVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9i\nc2VydmUoXG4gICAgICAgICAgbG9hZGluZ1ZpZXcubG9hZGluZ1ZpZXdFbGVtZW50XG4gICAgICAg\nICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog56e76Zmk5rua5Yqo5LqL5Lu2\nXG4gICAgICpcL1xuICAgIHJlbW92ZU5leHRQYWdlTG9hZGluZ09ic2VydmVyKCkge1xuICAgICAg\naWYgKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAg\nICAgICBkb211dGlscy5vZmYoXG4gICAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgICAgXCJzY3Jv\nbGxcIixcbiAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgIHtc\nbiAgICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgICh2YWx1\nZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm9yaWdpbkNhbGxCYWNrLnRvU3RyaW5n\nKCkuaW5jbHVkZXMoXCJpc0xvYWRpbmdOZXh0UGFnZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAg\nICk7XG4gICAgICAgIGxvYWRpbmdWaWV3LmRlc3RvcnkoKTtcbiAgICAgICAgbG9nLmluZm8oXCLl\nj5bmtojnm5HlkKzmu5rliqg6IHNjcm9sbFwiLCBcIiNmNDAwZmZcIik7XG4gICAgICB9IGVsc2Ug\ne1xuICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAg\nICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG51bGw7XG4gICAgICAgIGxvYWRpbmdWaWV3\nLmRlc3RvcnkoKTtcbiAgICAgICAgbG9nLmluZm8oXCLlj5bmtojnm5HlkKzmu5rliqg6IEludGVy\nc2VjdGlvbk9ic2VydmVyXCIsIFwiI2Y0MDBmZlwiKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDmiorlj4LmlbBwbui9rOaNouS4uumhteeggVxuICAgICAqIHBuOiAxMFxuICAg\nICAqIHBhZ2VOdW06IDJcbiAgICAgKiBAcGFyYW0gcG4gMTDnmoTlgI3mlbBcbiAgICAgKlwvXG4g\nICAgcGFyc2VQYXJhbVBuVG9QYWdlTnVtKHBuKSB7XG4gICAgICBwbiA9IHBhcnNlSW50KHBuKTtc\nbiAgICAgIGlmIChpc05hTihwbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcInBu\n5Y+C5pWw6Kej5p6Q5aSx6LSlXCIpO1xuICAgICAgfVxuICAgICAgbGV0IHBhZ2VOdW0gPSBwbiBc\nLyAxMCArIDE7XG4gICAgICByZXR1cm4gcGFnZU51bTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDmiorpobXnoIHovazkuLrlj4LmlbBwblxuICAgICAqIHBhZ2VOdW06IDJcbiAgICAgKiBwbjog\nMTBcbiAgICAgKiBAcGFyYW0gcGFnZU51bVxuICAgICAqXC9cbiAgICBwYXJzZVBhZ2VOdW1Ub1Bh\ncmFtUG4ocGFnZU51bSkge1xuICAgICAgcGFnZU51bSA9IHBhcnNlSW50KHBhZ2VOdW0udG9TdHJp\nbmcoKSk7XG4gICAgICBpZiAoaXNOYU4ocGFnZU51bSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5\ncGVFcnJvcihcIumhteeggeino+aekOWksei0pVwiKTtcbiAgICAgIH1cbiAgICAgIGxldCBwbiA9\nIChwYWdlTnVtIC0gMSkgKiAxMDtcbiAgICAgIHJldHVybiBwbjtcbiAgICB9LFxuICAgIFwvKipc\nbiAgICAgKiDop6PmnpDliIbpobXmjqfliLblmajnmoTlhYPntKDnmoTkuIvkuIDpobXkv6Hmga9c\nbiAgICAgKlwvXG4gICAgcGFyc2VOZXh0UGFnZUluZm9XaXRoUGFnZUNvbnRyb2xsZXIoJGRvYykg\ne1xuICAgICAgbGV0ICRuZXh0UGFnZSA9ICRkb2MucXVlcnlTZWxlY3RvcihcIi5uZXctbmV4dHBh\nZ2VcIik7XG4gICAgICBsZXQgJG5leHRQYWdlT25seSA9ICRkb2MucXVlcnlTZWxlY3RvcihcIi5u\nZXctbmV4dHBhZ2Utb25seVwiKTtcbiAgICAgIGxldCBuZXh0UGFnZVVybCA9ICgkbmV4dFBhZ2Ug\nPT0gbnVsbCA\/IHZvaWQgMCA6ICRuZXh0UGFnZS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpKSB8fCAo\nJG5leHRQYWdlID09IG51bGwgPyB2b2lkIDAgOiAkbmV4dFBhZ2UuZ2V0QXR0cmlidXRlKFwiZGF0\nYS1zZmxpbmtcIikpIHx8ICgkbmV4dFBhZ2VPbmx5ID09IG51bGwgPyB2b2lkIDAgOiAkbmV4dFBh\nZ2VPbmx5LmdldEF0dHJpYnV0ZShcImhyZWZcIikpIHx8ICgkbmV4dFBhZ2VPbmx5ID09IG51bGwg\nPyB2b2lkIDAgOiAkbmV4dFBhZ2VPbmx5LmdldEF0dHJpYnV0ZShcImRhdGEtc2ZsaW5rXCIpKTtc\nbiAgICAgIGlmIChuZXh0UGFnZVVybCkge1xuICAgICAgICBuZXh0UGFnZVVybCA9IENvbW1vblV0\naWwuZml4VXJsKG5leHRQYWdlVXJsKTtcbiAgICAgICAgbGV0IHBhcmFtX3BuX21hdGNoID0gbmV3\nIFVSTChuZXh0UGFnZVVybCkuc2VhcmNoUGFyYW1zO1xuICAgICAgICBpZiAoIXBhcmFtX3BuX21h\ndGNoLmhhcyhcInBuXCIpKSB7XG4gICAgICAgICAgbG9nLndhcm4oXCLojrflj5bkuI3liLBwbuWP\nguaVsFwiKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBhcmFt\nX3BuID0gcGFyc2VJbnQocGFyYW1fcG5fbWF0Y2guZ2V0KFwicG5cIikudG9TdHJpbmcoKSk7XG4g\nICAgICAgIGxldCBwYWdlTnVtID0gdGhpcy5wYXJzZVBhcmFtUG5Ub1BhZ2VOdW0ocGFyYW1fcG4p\nO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBuOiBwYXJhbV9wbixcbiAgICAgICAgICBw\nYWdlTnVtLFxuICAgICAgICAgIG5leHRQYWdlVXJsOiB0aGlzLmZpeE5leHRQYWdlVXJsKG5leHRQ\nYWdlVXJsKVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLndhcm4oXCLm\nnKrojrflj5bliLDkuIvkuIDpobXmjInpkq7lhYPntKDpk77mjqVcIik7XG4gICAgICB9XG4gICAg\nICByZXR1cm47XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5L+u5aSN5LiL5LiA6aG155qEdXJs\nXG4gICAgICog5pyJ5pe25YCZ6I635Y+W5Yiw55qE5LiL5LiA6aG155qEdXJs55qEaG9zdG5hbWXl\nkozlvZPliY3pobXpnaLnmoRob3N0bmFtZeS4jeWQjFxuICAgICAqIOWboOS4uuS9v+eUqOeahGZl\ndGNo77yM5LiN6IO96Leo5Z+fXG4gICAgICog5omA5Lul6ZyA6KaB5oqK5LiL5LiA6aG155qEdXJs\n55qEaG9zdG5hbWXmm7\/mjaLmiJDlvZPliY3pobXpnaLnmoRob3N0bmFtZVxuICAgICAqXC9cbiAg\nICBmaXhOZXh0UGFnZVVybCh1cmwpIHtcbiAgICAgIGxldCB1cmxPYmogPSBuZXcgVVJMKHVybCk7\nXG4gICAgICBsZXQgbmV3VXJsID0gdXJsO1xuICAgICAgaWYgKHVybE9iai5ob3N0bmFtZSAhPT0g\nd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSB7XG4gICAgICAgIHVybE9iai5ob3N0bmFtZSA9IHdp\nbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbiAgICAgICAgbmV3VXJsID0gdXJsT2JqLnRvU3RyaW5n\nKCk7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwi5oiQ5Yqf5L+u5aSN5LiL5LiA6aG155qE6ZO+5o6l\n55qE5LiN5ZCM5Z+f5ZCN77yaXCIgKyBuZXdVcmwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5l\nd1VybDtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliJ3lp4vljJbojrflj5bmnKzpobXnmoTp\nobXnoIHkv6Hmga9cbiAgICAgKlwvXG4gICAgZ2V0SW5pdFBhZ2VJbmZvKCkge1xuICAgICAgdmFy\nIF9hMywgX2IsIF9jLCBfZDtcbiAgICAgIGxldCBpbml0UGFnZUluZm8gPSB0aGlzLnBhcnNlTmV4\ndFBhZ2VJbmZvV2l0aFBhZ2VDb250cm9sbGVyKGRvY3VtZW50KTtcbiAgICAgIGlmIChpbml0UGFn\nZUluZm8pIHtcbiAgICAgICAgaWYgKGluaXRQYWdlSW5mby5wYWdlTnVtID09PSAxKSB7XG4gICAg\nICAgICAgcmV0dXJuIGluaXRQYWdlSW5mbztcbiAgICAgICAgfVxuICAgICAgICBpbml0UGFnZUlu\nZm8ucGFnZU51bSAtPSAxO1xuICAgICAgICBpbml0UGFnZUluZm8ucG4gLT0gMTA7XG4gICAgICAg\nIHJldHVybiBpbml0UGFnZUluZm87XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9m\nICgoX2IgPSAoX2EzID0gX3Vuc2FmZVdpbmRvdyA9PSBudWxsID8gdm9pZCAwIDogX3Vuc2FmZVdp\nbmRvdy5wYWdlKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmNvbW0pID09IG51bGwgPyB2b2lkIDAg\nOiBfYi5wbikgIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBsb2cud2FybihcInBhZ2UuY29t\nbS5wbuWPguaVsOacquWumuS5iVwiKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAg\nICAgICAgaWYgKHR5cGVvZiAoKF9kID0gKF9jID0gX3Vuc2FmZVdpbmRvdyA9PSBudWxsID8gdm9p\nZCAwIDogX3Vuc2FmZVdpbmRvdy5wYWdlKSA9PSBudWxsID8gdm9pZCAwIDogX2MuY29tbSkgPT0g\nbnVsbCA\/IHZvaWQgMCA6IF9kLnBhZ2VOdW0pICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAg\nbG9nLndhcm4oXCJwYWdlLmNvbW0ucGFnZU51beWPguaVsOacquWumuS5iVwiKTtcbiAgICAgICAg\nICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHBuID0gX3Vuc2FmZVdpbmRvdy5wYWdl\nLmNvbW0ucG47XG4gICAgICAgIGxldCBwYWdlTnVtID0gX3Vuc2FmZVdpbmRvdy5wYWdlLmNvbW0u\ncGFnZU51bTtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gX3Vuc2FmZVdpbmRvdy5wYWdlLmNvbW0ucXVl\ncnkgfHwgX3Vuc2FmZVdpbmRvdy5wYWdlLmNvbW0ucHJlcXVlcnkgfHwgX3Vuc2FmZVdpbmRvdy5w\nYWdlLmNvbW0ucmF3UXVlcnk7XG4gICAgICAgIGxldCBuZXh0UGFnZU9iaiA9IG5ldyBVUkwod2lu\nZG93LmxvY2F0aW9uLm9yaWdpbik7XG4gICAgICAgIG5leHRQYWdlT2JqLnBhdGhuYW1lID0gXCJc\nL3NcIjtcbiAgICAgICAgbmV4dFBhZ2VPYmouc2VhcmNoUGFyYW1zLmFwcGVuZChcbiAgICAgICAg\nICBcImZyb21cIixcbiAgICAgICAgICBfdW5zYWZlV2luZG93LnBhZ2UuY29tbS5mcm9tXG4gICAg\nICAgICk7XG4gICAgICAgIG5leHRQYWdlT2JqLnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJzc2lkXCIs\nIFwiMFwiKTtcbiAgICAgICAgbmV4dFBhZ2VPYmouc2VhcmNoUGFyYW1zLmFwcGVuZChcInBuXCIs\nIHBuICsgMTApO1xuICAgICAgICBuZXh0UGFnZU9iai5zZWFyY2hQYXJhbXMuYXBwZW5kKFwidXNt\nXCIsIFwiXCIpO1xuICAgICAgICBuZXh0UGFnZU9iai5zZWFyY2hQYXJhbXMuYXBwZW5kKFwid29y\nZFwiLCBxdWVyeSk7XG4gICAgICAgIG5leHRQYWdlT2JqLnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJy\ndGltZVwiLCBcIlwiKTtcbiAgICAgICAgbmV4dFBhZ2VPYmouc2VhcmNoUGFyYW1zLmFwcGVuZChc\nInZmZWVkXCIsIFwiMTAyNFwiKTtcbiAgICAgICAgbmV4dFBhZ2VPYmouc2VhcmNoUGFyYW1zLmFw\ncGVuZChcInNhXCIsIFwibnBcIik7XG4gICAgICAgIG5leHRQYWdlT2JqLnNlYXJjaFBhcmFtcy5h\ncHBlbmQoXCJtc1wiLCBcIjFcIik7XG4gICAgICAgIG5leHRQYWdlT2JqLnNlYXJjaFBhcmFtcy5h\ncHBlbmQoXCJwYXJhbXNfc3NydFwiLCBcIm5vZGUtc2FuXCIpO1xuICAgICAgICBuZXh0UGFnZU9i\nai5zZWFyY2hQYXJhbXMuYXBwZW5kKFwic3V2XCIsIFwiXCIpO1xuICAgICAgICBuZXh0UGFnZU9i\nai5zZWFyY2hQYXJhbXMuYXBwZW5kKFwiY3ZcIiwgXCIxLjAuMTRcIik7XG4gICAgICAgIG5leHRQ\nYWdlT2JqLnNlYXJjaFBhcmFtcy5hcHBlbmQoXCJtb2RcIiwgXCIwXCIpO1xuICAgICAgICBuZXh0\nUGFnZU9iai5zZWFyY2hQYXJhbXMuYXBwZW5kKFwiYXN5bmNcIiwgXCIxXCIpO1xuICAgICAgICBs\nZXQgbmV4dFBhZ2VVcmwgPSBuZXh0UGFnZU9iai50b1N0cmluZygpO1xuICAgICAgICByZXR1cm4g\ne1xuICAgICAgICAgIHBuLFxuICAgICAgICAgIHBhZ2VOdW0sXG4gICAgICAgICAgbmV4dFBhZ2VV\ncmw6IHRoaXMuZml4TmV4dFBhZ2VVcmwobmV4dFBhZ2VVcmwpXG4gICAgICAgIH07XG4gICAgICB9\nXG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5re75Yqg56yseHjpobXnmoTliIblibLnur9cbiAg\nICAgKiBAcGFyYW0gbnVtIOWIhumhtVxuICAgICAqXC9cbiAgICBhcHBlbmRMaW5lRHJpdmVyKG51\nbSkge1xuICAgICAgbGV0IGN1cnJlbnRSZXN1bHRzRE9NID0gU2VhcmNoTmV4dFBhZ2UuJGVsLnJl\nc3VsdHM7XG4gICAgICBjdXJyZW50UmVzdWx0c0RPTS5hcHBlbmRDaGlsZChTZWFyY2hOZXh0UGFn\nZS5nZXRQYWdlTGluZUVsZW1lbnQobnVtKSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5rua\n5Yqo5LqL5Lu2XG4gICAgICogQGFzeW5jXG4gICAgICpcL1xuICAgIGFzeW5jIHNjcm9sbEV2ZW50\nKCkge1xuICAgICAgaWYgKHRoaXMuaW5pdFBhZ2VJbmZvID09IG51bGwpIHtcbiAgICAgICAgbGV0\nIHBhZ2VJbmZvID0gdGhpcy5nZXRJbml0UGFnZUluZm8oKTtcbiAgICAgICAgaWYgKCFwYWdlSW5m\nbykge1xuICAgICAgICAgIGxvZy53YXJuKFwi5Yid5aeL5YyW5aSx6LSl77yM5pyq6I635Y+W5Yiw\n5pys6aG15L+h5oGvXCIpO1xuICAgICAgICAgIFNlYXJjaE5leHRQYWdlLnJlbW92ZU5leHRQYWdl\nTG9hZGluZ09ic2VydmVyKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAg\nIHRoaXMuaW5pdFBhZ2VJbmZvID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbml0UGFnZUluZm8gPSBw\nYWdlSW5mbztcbiAgICAgICAgdGhpcy5wYWdlSW5mbyA9IG51bGw7XG4gICAgICAgIHRoaXMucGFn\nZUluZm8gPSBwYWdlSW5mbztcbiAgICAgICAgdGhpcy5uZXh0UGFnZUluZm8gPSBudWxsO1xuICAg\nICAgICB0aGlzLm5leHRQYWdlSW5mbyA9IHtcbiAgICAgICAgICBwbjogcGFnZUluZm8ucG4gKyAx\nMCxcbiAgICAgICAgICBwYWdlTnVtOiBwYWdlSW5mby5wYWdlTnVtICsgMSxcbiAgICAgICAgICBu\nZXh0UGFnZVVybDogcGFnZUluZm8ubmV4dFBhZ2VVcmxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAg\nICAgIGlmICh0aGlzLm5leHRQYWdlSW5mbyA9PSBudWxsKSB7XG4gICAgICAgIGxvZy53YXJuKFwi\n5LiN5a2Y5Zyo5LiL5LiA6aG177yM56e76Zmk55uR5ZCsXCIpO1xuICAgICAgICBTZWFyY2hOZXh0\nUGFnZS5yZW1vdmVOZXh0UGFnZUxvYWRpbmdPYnNlcnZlcigpO1xuICAgICAgICByZXR1cm47XG4g\nICAgICB9XG4gICAgICBsb2cuc3VjY2Vzcyhg5b2T5YmN56ysICR7dGhpcy5wYWdlSW5mby5wYWdl\nTnVtfSDpobXvvIxwbu+8miR7dGhpcy5wYWdlSW5mby5wbn1gKTtcbiAgICAgIGxvZy5zdWNjZXNz\nKFxuICAgICAgICBg6K+35rGC56ysICR7dGhpcy5uZXh0UGFnZUluZm8ucGFnZU51bX0g6aG177yM\ncG7vvJoke3RoaXMubmV4dFBhZ2VJbmZvLnBufWBcbiAgICAgICk7XG4gICAgICBpZiAoIXRoaXMu\nbmV4dFBhZ2VJbmZvLm5leHRQYWdlVXJsKSB7XG4gICAgICAgIGxvZy53YXJuKFwi6I635Y+W5LiN\n5Yiw5LiL5LiA6aG1VXJs77yM5oCA55aR5bey5Yqg6L295omA5pyJ55qE5pCc57Si57uT5p6cXCIp\nO1xuICAgICAgICBTZWFyY2hOZXh0UGFnZS5yZW1vdmVOZXh0UGFnZUxvYWRpbmdPYnNlcnZlcigp\nO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsb2FkaW5nVmlldy5zZXRUZXh0KFwi\nTG9hZGluZy4uLlwiLCB0cnVlKTtcbiAgICAgIGxldCBnZXRSZXNwID0gYXdhaXQgaHR0cHguZ2V0\nKHtcbiAgICAgICAgdXJsOiB0aGlzLm5leHRQYWdlSW5mby5uZXh0UGFnZVVybCxcbiAgICAgICAg\nZmV0Y2g6IHRydWUsXG4gICAgICAgIGFsbG93SW50ZXJjZXB0Q29uZmlnOiBmYWxzZVxuICAgICAg\nfSk7XG4gICAgICBsZXQgcmVzcERhdGEgPSBnZXRSZXNwLmRhdGE7XG4gICAgICBpZiAoZ2V0UmVz\ncC5zdGF0dXMpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLlk43lupTnmoRmaW5hbFVybDogXCIg\nKyByZXNwRGF0YVtcImZpbmFsVXJsXCJdKTtcbiAgICAgICAgbGV0IG5leHRQYWdlRG9jID0gZG9t\ndXRpbHMucGFyc2VIVE1MKFxuICAgICAgICAgIHJlc3BEYXRhLnJlc3BvbnNlVGV4dCxcbiAgICAg\nICAgICB0cnVlLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IHNjcmlw\ndEF0b21EYXRhID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgbmV4\ndFBhZ2VEb2MucXVlcnlTZWxlY3RvckFsbChcInNjcmlwdFtpZF49YXRvbS1kYXRhXVwiKS5mb3JF\nYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgc2NyaXB0QXRvbURhdGEuYXBwZW5kQ2hpbGQoaXRl\nbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgbmV4dFBhZ2VTY3JpcHRPcmlnaW5VcmxNYXAg\nPSBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0ucGFyc2VTY3JpcHRET01PcmlnaW5VcmxNYXAoc2NyaXB0\nQXRvbURhdGEpO1xuICAgICAgICBCYWlkdUhhbmRsZVJlc3VsdEl0ZW0ub3JpZ2luVVJMTWFwLmNv\nbmNhdChuZXh0UGFnZVNjcmlwdE9yaWdpblVybE1hcCk7XG4gICAgICAgIG5leHRQYWdlRG9jLnF1\nZXJ5U2VsZWN0b3JBbGwoXCJzdHlsZVtkYXRhLXZ1ZS1zc3ItaWRdXCIpLmZvckVhY2goKGl0ZW0p\nID0+IHtcbiAgICAgICAgICBsZXQgZGF0YVZ1ZVNzcklkID0gXCJkYXRhLXZ1ZS1zc3ItaWRcIjtc\nbiAgICAgICAgICBsZXQgZGF0YVZ1ZVNzcklkVmFsdWUgPSBpdGVtLmdldEF0dHJpYnV0ZShkYXRh\nVnVlU3NySWQpO1xuICAgICAgICAgIGlmICh1dGlscy5pc051bGwoZGF0YVZ1ZVNzcklkVmFsdWUp\nIHx8ICFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgYHN0eWxlW2RhdGEtdnVl\nLXNzci1pZD1cIiR7ZGF0YVZ1ZVNzcklkVmFsdWV9XCJdYFxuICAgICAgICAgICkpIHtcbiAgICAg\nICAgICAgIGxldCBjc3NET00gPSBhZGRTdHlsZShpdGVtLmlubmVySFRNTCk7XG4gICAgICAgICAg\nICBjc3NET00uc2V0QXR0cmlidXRlKFwiZGF0YS12dWUtc3NyLWlkXCIsIGRhdGFWdWVTc3JJZFZh\nbHVlKTtcbiAgICAgICAgICAgIGxvZy5pbmZvKFtcIuaPkuWFpVZ1ZeeahENTU1wiLCBjc3NET01d\nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgc2VhcmNoUmVzdWx0RE9N\nID0gbmV4dFBhZ2VEb2MucXVlcnlTZWxlY3RvckFsbChcIi5jLXJlc3VsdFwiKTtcbiAgICAgICAg\nbGV0IG5leHRQYWdlQ29udHJvbGxlckRPTSA9IG5leHRQYWdlRG9jLnF1ZXJ5U2VsZWN0b3IoXCIj\ncGFnZS1jb250cm9sbGVyXCIpIHx8IG5leHRQYWdlRG9jLnF1ZXJ5U2VsZWN0b3IoXCIudnNlYXJj\naC1wYWdlLWNvbnRyb2xsZXJcIik7XG4gICAgICAgIGxldCBjdXJyZW50UmVzdWx0c0RPTSA9IFNl\nYXJjaE5leHRQYWdlLiRlbC5yZXN1bHRzO1xuICAgICAgICBpZiAobmV4dFBhZ2VDb250cm9sbGVy\nRE9NKSB7XG4gICAgICAgICAgdGhpcy5hcHBlbmRMaW5lRHJpdmVyKHRoaXMucGFnZUluZm8ucGFn\nZU51bSk7XG4gICAgICAgICAgbGV0IG5leHRQYWdlU2VhcmNoUmVzdWx0RnJhZ21lbnQgPSBkb2N1\nbWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgICAgc2VhcmNoUmVzdWx0RE9N\nLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIG5leHRQYWdlU2VhcmNoUmVzdWx0RnJh\nZ21lbnQuYXBwZW5kQ2hpbGQoaXRlbSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY3VycmVu\ndFJlc3VsdHNET00uYXBwZW5kQ2hpbGQobmV4dFBhZ2VTZWFyY2hSZXN1bHRGcmFnbWVudCk7XG4g\nICAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1X3NlYXJjaF9zeW5jX25leHRf\ncGFnZV9hZGRyZXNzXCIpKSB7XG4gICAgICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUo\nXG4gICAgICAgICAgICAgIFwiZm9yd2FyZFwiLFxuICAgICAgICAgICAgICBcIlwiLFxuICAgICAg\nICAgICAgICB0aGlzLm5leHRQYWdlSW5mby5uZXh0UGFnZVVybFxuICAgICAgICAgICAgKTtcbiAg\nICAgICAgICB9XG4gICAgICAgICAgaWYgKFNlYXJjaEhhbmRsZVJlc3VsdEV2ZXJ5T25lU2VhcmNo\nLnJlZmFjdG9yRXZlcnlvbmVJc1N0aWxsU2VhcmNoaW5nKSB7XG4gICAgICAgICAgICBTZWFyY2hI\nYW5kbGVSZXN1bHRFdmVyeU9uZVNlYXJjaC5oYW5kbGVCb3R0b20oXG4gICAgICAgICAgICAgIEFy\ncmF5LmZyb20obmV4dFBhZ2VEb2MucXVlcnlTZWxlY3RvckFsbChcIiNwYWdlLXJlbGF0aXZlXCIp\nKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IG5leHROZXh0UGFn\nZUluZm8gPSB0aGlzLnBhcnNlTmV4dFBhZ2VJbmZvV2l0aFBhZ2VDb250cm9sbGVyKG5leHRQYWdl\nRG9jKTtcbiAgICAgICAgICBpZiAobmV4dE5leHRQYWdlSW5mbykge1xuICAgICAgICAgICAgbG9n\nLmluZm8oW1wi6K+35rGC55qE6aG15L+h5oGv77yaXCIsIHRoaXMubmV4dFBhZ2VJbmZvXSk7XG4g\nICAgICAgICAgICBsb2cuaW5mbyhbXCLor7fmsYLnmoTpobXop6PmnpDlh7rnmoTkuIvkuIDpobXk\nv6Hmga\/vvJpcIiwgbmV4dE5leHRQYWdlSW5mb10pO1xuICAgICAgICAgICAgaWYgKG5leHROZXh0\nUGFnZUluZm8ucGFnZU51bSA+IHRoaXMubmV4dFBhZ2VJbmZvLnBhZ2VOdW0pIHtcbiAgICAgICAg\nICAgICAgbGV0IG5leHRQYWdlSW5mbyA9IHRoaXMubmV4dFBhZ2VJbmZvO1xuICAgICAgICAgICAg\nICB0aGlzLnBhZ2VJbmZvID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZUluZm8g\nPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLnBhZ2VJbmZvID0gbmV4dFBhZ2VJbmZvO1xuICAg\nICAgICAgICAgICB0aGlzLm5leHRQYWdlSW5mbyA9IG5leHROZXh0UGFnZUluZm87XG4gICAgICAg\nICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBsZXQgbmV4dFBhZ2VJbmZvID0gdGhpcy5uZXh0\nUGFnZUluZm87XG4gICAgICAgICAgICAgIHRoaXMucGFnZUluZm8gPSBudWxsO1xuICAgICAgICAg\nICAgICB0aGlzLm5leHRQYWdlSW5mbyA9IG51bGw7XG4gICAgICAgICAgICAgIHRoaXMucGFnZUlu\nZm8gPSBuZXh0UGFnZUluZm87XG4gICAgICAgICAgICAgIGxvZy53YXJuKFwi5LiL5LiL5LiA6aG1\n55qE6aG156CBPD3lvZPliY3pobXnoIHvvIzlj5bmtojnm5HlkKxcIik7XG4gICAgICAgICAgICAg\nIFNlYXJjaE5leHRQYWdlLnJlbW92ZU5leHRQYWdlTG9hZGluZ09ic2VydmVyKCk7XG4gICAgICAg\nICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBuZXh0UGFnZUluZm8g\nPSB0aGlzLm5leHRQYWdlSW5mbztcbiAgICAgICAgICAgIHRoaXMucGFnZUluZm8gPSBudWxsO1xu\nICAgICAgICAgICAgdGhpcy5uZXh0UGFnZUluZm8gPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5w\nYWdlSW5mbyA9IG5leHRQYWdlSW5mbztcbiAgICAgICAgICAgIGxvZy53YXJuKFwi6I635Y+W5LiN\n5Yiw5LiL5LiL5LiA6aG155qE6aG156CB77yM5oCA55aR5bey57uP5Yqg6L295YWo6YOo57uT5p6c\nXCIpO1xuICAgICAgICAgICAgU2VhcmNoTmV4dFBhZ2UucmVtb3ZlTmV4dFBhZ2VMb2FkaW5nT2Jz\nZXJ2ZXIoKTtcbiAgICAgICAgICAgIHRoaXMuYXBwZW5kTGluZURyaXZlcih0aGlzLnBhZ2VJbmZv\nLnBhZ2VOdW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cu\naW5mbyhcIuW3suWKoOi9veaJgOacieeahOaQnOe0oue7k+aenFwiKTtcbiAgICAgICAgICBTZWFy\nY2hOZXh0UGFnZS5yZW1vdmVOZXh0UGFnZUxvYWRpbmdPYnNlcnZlcigpO1xuICAgICAgICB9XG4g\nICAgICB9IGVsc2UgaWYgKGdldFJlc3AudHlwZSA9PT0gXCJvbmVycm9yXCIpIHtcbiAgICAgICAg\naWYgKHV0aWxzLmlzTnVsbCh0aGlzLm5leHRQYWdlSW5mby5uZXh0UGFnZVVybCkpIHtcbiAgICAg\nICAgICBsb2cuZXJyb3IoXCLmnKrojrflj5bliLDkuIvkuIDpobXnmoR1cmxcIik7XG4gICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgbG9nLmVycm9yKFwi5Yqg6L295aSx6LSlIPCfkYdcIik7XG4g\nICAgICAgICAgbG9hZGluZ1ZpZXcuc2V0VGV4dChcIuWKoOi9veWksei0pVwiKTtcbiAgICAgICAg\nfVxuICAgICAgICBsb2cuZXJyb3IocmVzcERhdGEpO1xuICAgICAgfSBlbHNlIGlmIChnZXRSZXNw\nLnR5cGUgPT09IFwib250aW1lb3V0XCIpIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6K+35rGC6LaF\n5pe2IPCfkYdcIik7XG4gICAgICAgIGxvYWRpbmdWaWV3LnNldFRleHQoXCLor7fmsYLotoXml7Zc\nIik7XG4gICAgICAgIGxvZy5lcnJvcihyZXNwRGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAg\nICBsb2cuZXJyb3IoXCLmnKrnn6XplJnor69cIik7XG4gICAgICAgIGxvYWRpbmdWaWV3LnNldFRl\neHQoXCLmnKrnn6XplJnor69cIik7XG4gICAgICAgIGxvZy5lcnJvcihyZXNwRGF0YSk7XG4gICAg\nICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yid5aeL5YyW6aG156CB55qEQ1NTXG4gICAg\nICpcL1xuICAgIGluaXRQYWdlTGluZUNTUygpIHtcbiAgICAgIGxvZy5pbmZvKFwi5Yid5aeL5YyW\n6aG156CB55qEQ1NTXCIpO1xuICAgICAgYWRkU3R5bGUoXG4gICAgICAgIFwvKmNzcypcL1xuICAg\nICAgICBgXG4gICAgICAgIC53aGl0ZXNldi1wYWdlLWluZm97LXdlYmtpdC10YXAtaGlnaGxpZ2h0\nLWNvbG9yOnRyYW5zcGFyZW50fVxuICAgICAgICAud2hpdGVzZXYtcGFnZS1pbmZvIC53aGl0ZXNl\ndi1uZXctcGFnZW5hdntkaXNwbGF5OmJsb2NrO3dpZHRoOmF1dG87Y29sb3I6IzMzMzt6LWluZGV4\nOjE7Zm9udC13ZWlnaHQ6NzAwO3RleHQtZGVjb3JhdGlvbjpub25lO3Bvc2l0aW9uOnJlbGF0aXZl\nO2hlaWdodDo1MnB4O2xpbmUtaGVpZ2h0OjUycHh9XG4gICAgICAgIC53aGl0ZXNldi1wYWdlLWlu\nZm8gLndoaXRlc2V2LW5ldy1wYWdlbmF2e21hcmdpbjouMDhyZW07YmFja2dyb3VuZDojZmZmO3dv\ncmQtd3JhcDpicmVhay13b3JkO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6LjA2cmVtO3RleHQtYWxp\nZ246Y2VudGVyO3RleHQtYWxpZ246LXdlYmtpdC1jZW50ZXJ9XG4gICAgICAgIC53aGl0ZXNldi1w\nYWdlLWluZm8gcDo6YmVmb3Jle2NvbnRlbnQ6XCLnrKxcIjttYXJnaW4tcmlnaHQ6MTBweH1cbiAg\nICAgICAgLndoaXRlc2V2LXBhZ2UtaW5mbyBwOjphZnRlcntjb250ZW50Olwi6aG1XCI7bWFyZ2lu\nLWxlZnQ6MTBweH1cbiAgICAgICAgYFxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDojrflj5boh6rlrprkuYnpobXnoIHlhYPntKBcbiAgICAgKiBAcGFyYW0gcGFnZVRleHQg6aG1\n56CBXG4gICAgICpcL1xuICAgIGdldFBhZ2VMaW5lRWxlbWVudChwYWdlVGV4dCkge1xuICAgICAg\ncmV0dXJuIGRvbXV0aWxzLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBjbGFzc05h\nbWU6IFwid2hpdGVzZXYtcGFnZS1pbmZvIHJlc3VsdC1vcFwiLFxuICAgICAgICBpbm5lckhUTUw6\nIChcbiAgICAgICAgICBcLypodG1sKlwvXG4gICAgICAgICAgYFxuICAgICAgICAgICAgPGRpdiBj\nbGFzcz1cIndoaXRlc2V2LW5ldy1wYWdlbmF2XCI+XG4gICAgICAgICAgICAgICAgPHA+JHtwYWdl\nVGV4dH08XC9wPlxuICAgICAgICAgICAgPFwvZGl2PmBcbiAgICAgICAgKVxuICAgICAgfSk7XG4g\nICAgfVxuICB9O1xuICBjb25zdCBTZWFyY2hOZXh0UGFnZV9TZWFyY2hDcmFmdCA9IHtcbiAgICBc\nLyoqXG4gICAgICog6KeC5a+f5ZmoXG4gICAgICpcL1xuICAgIGludGVyc2VjdGlvbk9ic2VydmVy\nOiBudWxsLFxuICAgICRkYXRhOiB7XG4gICAgICBcLyoqIOabtOWkmue7k+aenOeahENTU+mAieaL\nqeWZqCAqXC9cbiAgICAgIG1vcmVSZXN1bHRTZWxlY3RvcjogXCIuaW5maW5pdGUtbG9hZC13cmFw\nIC5zZS1pbmZpbml0ZWxvYWQtdGV4dFwiXG4gICAgfSxcbiAgICBpbml0KCkge1xuICAgICAgbGV0\nIGlzU2VhcmNoQ3JhZnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKFwiU2VhcmNoQ3Jh\nZnRcIik7XG4gICAgICBsb2cuc3VjY2VzcyhcbiAgICAgICAgYOWIpOaWreaYr+WQpuaYr1NlYXJj\naENyYWZ077yaJHtpc1NlYXJjaENyYWZ0ID8gR01fTWVudS5nZXRFbmFibGVUcnVlRW1vamkoKSA6\nIEdNX01lbnUuZ2V0RW5hYmxlRmFsc2VFbW9qaSgpfWBcbiAgICAgICk7XG4gICAgICBpZiAoaXNT\nZWFyY2hDcmFmdCkge1xuICAgICAgICB0aGlzLnNldE5leHRQYWdlSW50ZXJTZWN0aW9uT2JzZXJ2\nZXIoKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5bjgJDmm7TlpJrn\nu5PmnpzjgJHmjInpkq5cbiAgICAgKlwvXG4gICAgZ2V0TW9yZVJlc3VsdEJ0bigpIHtcbiAgICAg\nIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICB0aGlzLiRkYXRhLm1vcmVS\nZXN1bHRTZWxlY3RvclxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorr7nva7m\nu5rliqjkuovku7ZcbiAgICAgKlwvXG4gICAgc2V0TmV4dFBhZ2VJbnRlclNlY3Rpb25PYnNlcnZl\ncigpIHtcbiAgICAgIGxldCBpc0xvYWRpbmdOZXh0UGFnZSA9IGZhbHNlO1xuICAgICAgaWYgKHR5\ncGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBs\nb2cuc3VjY2VzcyhcIlNlYXJjaENyYWZ055uR5ZCs5rua5YqoOiBzY3JvbGxcIik7XG4gICAgICAg\nIGRvbXV0aWxzLm9uKFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIFwic2Nyb2xsXCIs\nXG4gICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAg\nIGlmIChpc0xvYWRpbmdOZXh0UGFnZSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAg\nICAgICB9XG4gICAgICAgICAgICBpZiAoIXV0aWxzLmlzTmVhckJvdHRvbSh3aW5kb3cuaW5uZXJI\nZWlnaHQgXC8gMykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgaXNMb2FkaW5nTmV4dFBhZ2UgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgdGhp\ncy5zY3JvbGxFdmVudCgpO1xuICAgICAgICAgICAgYXdhaXQgdXRpbHMuc2xlZXAoMTUwKTtcbiAg\nICAgICAgICAgIGlzTG9hZGluZ05leHRQYWdlID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAg\nICAgICB7XG4gICAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgICAgICAgcGFzc2l2ZTog\ndHJ1ZSxcbiAgICAgICAgICAgIG9uY2U6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICApO1xu\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXRpbHMud2FpdE5vZGUodGhpcy4kZGF0YS5tb3JlUmVz\ndWx0U2VsZWN0b3IsIDFlNCkudGhlbigoJG1vcmVSZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAo\nISRtb3JlUmVzdWx0KSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXCJTZWFyY2hDcmFmdOebkeWQ\nrOa7muWKqOWksei0pe+8muOAkOabtOWkmue7k+aenOOAkeaMiemSrlwiKTtcbiAgICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoXCJTZWFyY2hDcmFm\ndOebkeWQrOa7muWKqDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcIik7XG4gICAgICAgICAgdGhpcy5p\nbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAg\nICAgIGFzeW5jIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghaXNMb2FkaW5nTmV4\ndFBhZ2UgJiYgZW50cmllc1swXS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIGlz\nTG9hZGluZ05leHRQYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNjcm9s\nbEV2ZW50KCk7XG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nTmV4dFBhZ2UgPSBmYWxzZTtcbiAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgdGhyZXNob2xkOiAw\nIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2Jz\nZXJ2ZSgkbW9yZVJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOenu+mZpOa7muWKqOS6i+S7tlxuICAgICAqXC9cbiAgICByZW1vdmVOZXh0UGFn\nZUludGVyU2VjdGlvbk9ic2VydmVyKCkge1xuICAgICAgdmFyIF9hMztcbiAgICAgIGlmICh0eXBl\nb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgZG9t\ndXRpbHMub2ZmKFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIFwic2Nyb2xsXCIsXG4g\nICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICB7XG4gICAgICAg\nICAgICBjYXB0dXJlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICAodmFsdWUpID0+IHtc\nbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5vcmlnaW5DYWxsQmFjay50b1N0cmluZygpLmluY2x1\nZGVzKFwiaXNMb2FkaW5nTmV4dFBhZ2VcIik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAg\nICAgICBsb2cuaW5mbyhcIlNlYXJjaENyYWZ05Y+W5raI55uR5ZCs5rua5YqoOiBzY3JvbGxcIiwg\nXCIjZjQwMGZmXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKF9hMyA9IHRoaXMuaW50ZXJz\nZWN0aW9uT2JzZXJ2ZXIpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuZGlzY29ubmVjdCgpO1xuICAg\nICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgbG9nLmluZm8o\nXCJTZWFyY2hDcmFmdOWPlua2iOebkeWQrOa7muWKqDogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcIiwg\nXCIjZjQwMGZmXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOa7muWKqOS6\ni+S7tlxuICAgICAqIEBwYXJhbSAkbmV4dFBhZ2Ug5LiL5LiA6aG15oyJ6ZKuXG4gICAgICpcL1xu\nICAgIGFzeW5jIHNjcm9sbEV2ZW50KCkge1xuICAgICAgbGV0ICRtb3JlUmVzdWx0ID0gdGhpcy5n\nZXRNb3JlUmVzdWx0QnRuKCk7XG4gICAgICBsZXQgbW9yZVJlc3VsdFN0ciA9ICRtb3JlUmVzdWx0\nLmlubmVyVGV4dDtcbiAgICAgIGlmIChtb3JlUmVzdWx0U3RyLmluY2x1ZGVzKFwi5pu05aSa57uT\n5p6cXCIpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwi54K55Ye744CQ5pu05aSa57uT5p6c44CR\nXCIpO1xuICAgICAgICAkbW9yZVJlc3VsdC5jbGljaygpO1xuICAgICAgICBhd2FpdCB1dGlscy5z\nbGVlcCg1MDApO1xuICAgICAgfSBlbHNlIGlmIChtb3JlUmVzdWx0U3RyLmluY2x1ZGVzKFwi5Yiw\n5bqV5LqGIOayoeacieabtOWkmuWGheWuueS6hlwiKSkge1xuICAgICAgICBsb2cuZXJyb3IoXCLl\niLDlupXkuoYg5rKh5pyJ5pu05aSa5YaF5a655LqG77yM56e76Zmk5rua5Yqo55uR5ZCsXCIpO1xu\nICAgICAgICBTZWFyY2hOZXh0UGFnZV9TZWFyY2hDcmFmdC5yZW1vdmVOZXh0UGFnZUludGVyU2Vj\ndGlvbk9ic2VydmVyKCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBTZWFyY2hJbnB1\ndEV2ZW50ID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBsZXQgc3VnZ2VzdExpc3RTZWxlY3RvciA9\nIFwiI3NlLWJveCAuc3VnZ2VzdC1jb250ZW50XCI7XG4gICAgICBsZXQgc3VnZ2VzdExpc3RCdG5T\nZWxlY3Rvckxpc3QgPSBcIiNzZS1ib3ggLnN1Z2dlc3QtY29udGVudCBidXR0b25cIjtcbiAgICAg\nIGxldCBzdWdnZXN0TGlzdDJTZWxlY3RvciA9IFwiI3NlLWJveDIgLnN1Z2dlc3QtY29udGVudFwi\nO1xuICAgICAgbGV0IHN1Z2dlc3RMaXN0QnRuMlNlbGVjdG9yTGlzdCA9IFwiI3NlLWJveDIgLnN1\nZ2dlc3QtY29udGVudCBidXR0b25cIjtcbiAgICAgIGxldCBzdWdnZXN0TGlzdF9IT01FX1NlbGVj\ndG9yID0gXCIjaW5kZXgtYm94IC5zdWdnZXN0LWNvbnRlbnRcIjtcbiAgICAgIGxldCBzdWdnZXN0\nTGlzdEJ0bl9IT01FX1NlbGVjdG9yTGlzdCA9IFwiI2luZGV4LWJveCAuc3VnZ2VzdC1jb250ZW50\nIGJ1dHRvblwiO1xuICAgICAgbGV0IHNlYXJjaElucHV0U2VsZWN0b3IgPSBcIiNrd1wiO1xuICAg\nICAgbGV0IHNlYXJjaElucHV0MlNlbGVjdG9yID0gXCIja3cyXCI7XG4gICAgICBsZXQgc2VhcmNo\nQnRuU2VsZWN0b3IgPSBcIiNzZS1iblwiO1xuICAgICAgbGV0IHNlYXJjaEJ0bjJTZWxlY3RvciA9\nIFwiI3NlLWJuMlwiO1xuICAgICAgbGV0IHNlYXJjaElucHV0X0hPTUVfU2VsZWN0b3IgPSBcIiNp\nbmRleC1rd1wiO1xuICAgICAgbGV0IHNlYXJjaEJ0bl9IT01FX1NlbGVjdG9yID0gXCIjaW5kZXgt\nYm5cIjtcbiAgICAgIHV0aWxzLndhaXROb2RlKHN1Z2dlc3RMaXN0U2VsZWN0b3IpLnRoZW4oKGVs\nZW1lbnQpID0+IHtcbiAgICAgICAgdXRpbHMubXV0YXRpb25PYnNlcnZlcihlbGVtZW50LCB7XG4g\nICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgIFNlYXJjaElucHV0RXZlbnQu\nbXV0YXRpb25PYnNlcnZlckZ1bmN0aW9uKHN1Z2dlc3RMaXN0QnRuU2VsZWN0b3JMaXN0KTtcbiAg\nICAgICAgICB9LFxuICAgICAgICAgIGNvbmZpZzogeyBjaGlsZExpc3Q6IHRydWUsIGF0dHJpYnV0\nZXM6IHRydWUgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgdXRpbHMud2FpdE5vZGUo\nc3VnZ2VzdExpc3QyU2VsZWN0b3IpLnRoZW4oKGVsZW1lbnQpID0+IHtcbiAgICAgICAgdXRpbHMu\nbXV0YXRpb25PYnNlcnZlcihlbGVtZW50LCB7XG4gICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtc\nbiAgICAgICAgICAgIFNlYXJjaElucHV0RXZlbnQubXV0YXRpb25PYnNlcnZlckZ1bmN0aW9uKFxu\nICAgICAgICAgICAgICBzdWdnZXN0TGlzdEJ0bjJTZWxlY3Rvckxpc3RcbiAgICAgICAgICAgICk7\nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb25maWc6IHsgY2hpbGRMaXN0OiB0cnVlLCBhdHRy\naWJ1dGVzOiB0cnVlIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHV0aWxzLndhaXRO\nb2RlKHN1Z2dlc3RMaXN0X0hPTUVfU2VsZWN0b3IpLnRoZW4oKGVsZW1lbnQpID0+IHtcbiAgICAg\nICAgdXRpbHMubXV0YXRpb25PYnNlcnZlcihlbGVtZW50LCB7XG4gICAgICAgICAgY2FsbGJhY2s6\nICgpID0+IHtcbiAgICAgICAgICAgIFNlYXJjaElucHV0RXZlbnQubXV0YXRpb25PYnNlcnZlckZ1\nbmN0aW9uKFxuICAgICAgICAgICAgICBzdWdnZXN0TGlzdEJ0bl9IT01FX1NlbGVjdG9yTGlzdFxu\nICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbmZpZzogeyBjaGlsZExp\nc3Q6IHRydWUsIGF0dHJpYnV0ZXM6IHRydWUgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAg\nICAgZG9tdXRpbHMub24oc2VhcmNoQnRuU2VsZWN0b3IsIFwiY2xpY2tcIiwgZnVuY3Rpb24oZXZl\nbnQpIHtcbiAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0RXZlbnQuc2VhcmNoQnRuSnVtcChcbiAg\nICAgICAgICBldmVudCxcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlYXJjaElu\ncHV0U2VsZWN0b3IpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLm9uKHNl\nYXJjaElucHV0U2VsZWN0b3IsIFwia2V5ZG93blwiLCBmdW5jdGlvbihldmVudCkge1xuICAgICAg\nICByZXR1cm4gU2VhcmNoSW5wdXRFdmVudC5lbnRlcktleURvd25FdmVudChcbiAgICAgICAgICBl\ndmVudCxcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlYXJjaElucHV0U2VsZWN0\nb3IpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLm9uKHNlYXJjaEJ0bjJT\nZWxlY3RvciwgXCJjbGlja1wiLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICByZXR1cm4gU2Vh\ncmNoSW5wdXRFdmVudC5zZWFyY2hCdG5KdW1wKFxuICAgICAgICAgIGV2ZW50LFxuICAgICAgICAg\nIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VhcmNoSW5wdXQyU2VsZWN0b3IpXG4gICAgICAgICk7\nXG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1bWVudC5xdWVyeVNl\nbGVjdG9yKHNlYXJjaElucHV0MlNlbGVjdG9yKSxcbiAgICAgICAgXCJrZXlkb3duXCIsXG4gICAg\nICAgIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0RXZlbnQu\nZW50ZXJLZXlEb3duRXZlbnQoXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIGRvY3Vt\nZW50LnF1ZXJ5U2VsZWN0b3Ioc2VhcmNoSW5wdXQyU2VsZWN0b3IpXG4gICAgICAgICAgKTtcbiAg\nICAgICAgfVxuICAgICAgKTtcbiAgICAgIGRvbXV0aWxzLm9uKHNlYXJjaEJ0bl9IT01FX1NlbGVj\ndG9yLCBcImNsaWNrXCIsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBTZWFyY2hJ\nbnB1dEV2ZW50LnNlYXJjaEJ0bkp1bXAoXG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgZG9j\ndW1lbnQucXVlcnlTZWxlY3RvcihzZWFyY2hJbnB1dF9IT01FX1NlbGVjdG9yKVxuICAgICAgICAp\nO1xuICAgICAgfSk7XG4gICAgICBkb211dGlscy5vbihzZWFyY2hJbnB1dF9IT01FX1NlbGVjdG9y\nLCBcImtleWRvd25cIiwgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuIFNlYXJjaElu\ncHV0RXZlbnQuZW50ZXJLZXlEb3duRXZlbnQoXG4gICAgICAgICAgZXZlbnQsXG4gICAgICAgICAg\nZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWFyY2hJbnB1dF9IT01FX1NlbGVjdG9yKVxuICAgICAg\nICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6K6+572u5pCc57Si5bu6\n6K6u6Ieq5a6a5LmJY2xpY2vkuovku7ZcbiAgICAgKiBAcGFyYW0gZWxlbWVudFNlbGVjdG9yXG4g\nICAgICpcL1xuICAgIG11dGF0aW9uT2JzZXJ2ZXJGdW5jdGlvbihlbGVtZW50U2VsZWN0b3IpIHtc\nbiAgICAgIGxvZy5zdWNjZXNzKFwi6K6+572u5pCc57Si5bu66K6u6Ieq5a6a5LmJY2xpY2vkuovk\nu7ZcIik7XG4gICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGVsZW1lbnRTZWxlY3Rvciku\nZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBkb211dGlscy5vbihpdGVtLCBcImNsaWNrXCIs\nIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtc\nbiAgICAgICAgICB3aW5kb3cgPT0gbnVsbCA\/IHZvaWQgMCA6IHdpbmRvdy5zdG9wKCk7XG4gICAg\nICAgICAgbGV0IHNlYXJjaFRleHQgPSBldmVudC50YXJnZXQudGV4dENvbnRlbnQ7XG4gICAgICAg\nICAgbGV0IHJlZGlyZWN0VVJMID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIFwiXC9zP3dvcmQ9\nXCIgKyBzZWFyY2hUZXh0O1xuICAgICAgICAgIGxvZy5zdWNjZXNzKFwi54K55Ye75oyJ6ZKu6Lez\n6L2s5pCc57SiIC0+IFwiICsgc2VhcmNoVGV4dCk7XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MocmVk\naXJlY3RVUkwpO1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVUkw7\nXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOaQnOe0ouaMiemSrueCueWHu+i3s+i9rFxuICAgICAqIEBwYXJh\nbSBldmVudFxuICAgICAqIEBwYXJhbSBzZWFyY2hJbnB1dEVsZW1lbnRcbiAgICAgKiBAcmV0dXJu\nc1xuICAgICAqXC9cbiAgICBzZWFyY2hCdG5KdW1wKGV2ZW50LCBzZWFyY2hJbnB1dEVsZW1lbnQp\nIHtcbiAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICB3aW5kb3cgPT0gbnVs\nbCA\/IHZvaWQgMCA6IHdpbmRvdy5zdG9wKCk7XG4gICAgICBsZXQgcmVkaXJlY3RVUkwgPSB3aW5k\nb3cubG9jYXRpb24ub3JpZ2luICsgXCJcL3M\/d29yZD1cIiArIHNlYXJjaElucHV0RWxlbWVudC52\nYWx1ZTtcbiAgICAgIGxvZy5zdWNjZXNzKFwi54K55Ye75oyJ6ZKu6Lez6L2s5pCc57SiIC0+IFwi\nICsgc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlKTtcbiAgICAgIGxvZy5zdWNjZXNzKHJlZGlyZWN0\nVVJMKTtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVUkw7XG4gICAgICBy\nZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yik5Yaz5Zue6L2m5pCc57Si\n5LqL5Lu2XG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICogQHBhcmFtIHNlYXJjaElucHV0RWxl\nbWVudFxuICAgICAqIEByZXR1cm5zXG4gICAgICpcL1xuICAgIGVudGVyS2V5RG93bkV2ZW50KGV2\nZW50LCBzZWFyY2hJbnB1dEVsZW1lbnQpIHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSAx\nMDggfHwgZXZlbnQua2V5Q29kZSA9PT0gMTMpIHtcbiAgICAgICAgd2luZG93ID09IG51bGwgPyB2\nb2lkIDAgOiB3aW5kb3cuc3RvcCgpO1xuICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQp\nO1xuICAgICAgICBsZXQgcmVkaXJlY3RVUkwgPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgXCJc\nL3M\/d29yZD1cIiArIHNlYXJjaElucHV0RWxlbWVudC52YWx1ZTtcbiAgICAgICAgbG9nLnN1Y2Nl\nc3MoXCLlm57ovabplK7ot7PovazmkJzntKIgLT4gXCIgKyBzZWFyY2hJbnB1dEVsZW1lbnQudmFs\ndWUpO1xuICAgICAgICBsb2cuc3VjY2VzcyhyZWRpcmVjdFVSTCk7XG4gICAgICAgIHdpbmRvdy5s\nb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVUkw7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAg\nIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQmFpZHVTZWFyY2hW\naWRlb0Jsb2NrTm9kZSA9IHtcbiAgICBpbml0KCkge1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51\nT25jZShcbiAgICAgICAgXCJiYWlkdS1zZWFyY2gtdmlkZW8tYmxvY2tCb3R0b21SZWNvbW1lbmRW\naWRlb1wiLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tCb3R0\nb21SZWNvbW1lbmRWaWRlbygpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOOAkOWxj+iUveOAkeW6lemDqOaOqOiNkOinhumikVxuICAgICAqXC9cbiAgICBi\nbG9ja0JvdHRvbVJlY29tbWVuZFZpZGVvKCkge1xuICAgICAgbG9nLmluZm8oXCLjgJDlsY\/olL3j\ngJHlupXpg6jmjqjojZDop4bpopFcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9j\na0NTUyhcIi5zaG9ydC1taW5pLXdyYXBwZXJcIik7XG4gICAgfVxuICB9O1xuICBjb25zdCBCYWlk\ndVNlYXJjaFZpZGVvID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBCYWlkdVNlYXJjaFZpZGVvQmxv\nY2tOb2RlLmluaXQoKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdS1zZWFy\nY2gtdmlkZW8tYXV0b0p1bXBUb09yaWdpblVybFwiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuYXV0\nb0p1bXBUb09yaWdpblVybCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n6Ieq5Yqo6Lez6L2s6Iez5Y6f572R6aG1XG4gICAgICpcL1xuICAgIGF1dG9KdW1wVG9PcmlnaW5V\ncmwoKSB7XG4gICAgICB1dGlscy53YWl0Tm9kZShcIi5zZmMtdmlkZW8tcGFnZS1pbmZvLXNob3d1\ncmxcIiwgMWU0KS50aGVuKCgkc2hvd1VybCkgPT4ge1xuICAgICAgICBpZiAoISRzaG93VXJsKSB7\nXG4gICAgICAgICAgbG9nLmVycm9yKFwi5pyq5om+5YiwLnNmYy12aWRlby1wYWdlLWluZm8tc2hv\nd3VybOWFg+e0oFwiKTtcbiAgICAgICAgICBRbXNnLmVycm9yKFwi5pyq5om+5YiwLnNmYy12aWRl\nby1wYWdlLWluZm8tc2hvd3VybOWFg+e0oFwiKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAg\nIH1cbiAgICAgICAgbGV0IHVybCA9ICRzaG93VXJsLmdldEF0dHJpYnV0ZShcImRhdGEtdXJsXCIp\nIHx8ICRzaG93VXJsLmhyZWY7XG4gICAgICAgIGlmICh1dGlscy5pc051bGwodXJsKSkge1xuICAg\nICAgICAgIGxvZy5lcnJvcihcIuiOt+WPluWOn+e9kemhtVVybOWksei0pVwiKTtcbiAgICAgICAg\nICBRbXNnLmVycm9yKFwi6I635Y+W5Y6f572R6aG1VXJs5aSx6LSlXCIpO1xuICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAg\nICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQmFpZHVTZWFyY2hWU2VhcmNoVnVlUHJvcCA9\nIHtcbiAgICBpbml0KCkge1xuICAgICAgZG9tdXRpbHMucmVhZHkoKCkgPT4ge1xuICAgICAgICBp\nZiAoQmFpZHVSb3V0ZXIuaXNTZWFyY2hWU2VhcmNoX2ltYWdlX2NvbnRlbnQoKSkge1xuICAgICAg\nICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV9zZWFyY2hfdnNlYXJjaC1pc0JhaWR1\nQm94XCIsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNCYWlkdUJveCgpO1xuICAgICAgICAg\nIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiAuc2Yt\naW1hZ2UtY29udGVudC1wYWdlXG4gICAgICogX192dWVfXy5pc0JhaWR1Qm94XG4gICAgICpcL1xu\nICAgIGlzQmFpZHVCb3goKSB7XG4gICAgICBWdWVVdGlscy53YWl0VnVlUHJvcFRvU2V0KFwiLnNm\nLWltYWdlLWNvbnRlbnQtcGFnZVwiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBtc2c6IFwi562J\n5b6F6K6+572u5bGe5oCnIF9fdnVlX18uaXNCYWlkdUJveFwiLFxuICAgICAgICAgIGNoZWNrKHZ1\nZU9iaikge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2dWVPYmouaXNCYWlkdUJveCA9PT0g\nXCJib29sZWFuXCI7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodnVlT2JqKSB7XG4gICAg\nICAgICAgICBsb2cuaW5mbyhcIuaIkOWKn+iuvue9ruWxnuaApyBfX3Z1ZV9fLmlzQmFpZHVCb3hc\nIik7XG4gICAgICAgICAgICB2dWVPYmouaXNCYWlkdUJveCA9IHRydWU7XG4gICAgICAgICAgfVxu\nICAgICAgICB9XG4gICAgICBdKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaWR1U2VhcmNoVlNl\nYXJjaCA9IHtcbiAgICBpbml0KCkge1xuICAgICAgdGhpcy5saXN0ZW5Sb3V0ZXJDaGFuZ2UoKTtc\nbiAgICAgIEJhaWR1U2VhcmNoVlNlYXJjaFZ1ZVByb3AuaW5pdCgpO1xuICAgICAgZG9tdXRpbHMu\ncmVhZHkoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlcGxhY2VWU2VhcmNoTGluaygpO1xuICAgICAg\nfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5pu\/5o2i6ZO+5o6lLXZzZWFyY2hcbiAgICAg\nKlwvXG4gICAgcmVwbGFjZVZTZWFyY2hMaW5rKCkge1xuICAgICAgZnVuY3Rpb24gcmVwbGFjZUxp\nbmsoKSB7XG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgXCIj\ncmVhbHRpbWUtY29udGFpbmVyICBkaXY6bm90KFtjbGFzc10pXCJcbiAgICAgICAgKS5mb3JFYWNo\nKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgbGV0IGxpbmtFbGVtZW50ID0gZWxlbWVudC5xdWVy\neVNlbGVjdG9yKFwiYVwiKTtcbiAgICAgICAgICBpZiAoIWxpbmtFbGVtZW50KSB7XG4gICAgICAg\nICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChsaW5rRWxlbWVudC5oYXNB\ndHRyaWJ1dGUoXCJkYXRhLXNmLXZpc2l0ZWRcIikpIHtcbiAgICAgICAgICAgIGxldCBkYXRhU2ZW\naXNpdGVkID0gbGlua0VsZW1lbnQuZ2V0QXR0cmlidXRlKFwiZGF0YS1zZi12aXNpdGVkXCIpO1xu\nICAgICAgICAgICAgaWYgKGRhdGFTZlZpc2l0ZWQgIT09IGxpbmtFbGVtZW50LmhyZWYpIHtcbiAg\nICAgICAgICAgICAgbGlua0VsZW1lbnQuaHJlZiA9IGRhdGFTZlZpc2l0ZWQ7XG4gICAgICAgICAg\nICAgIGxvZy5zdWNjZXNzKFwi5pu\/5o2i6ZO+5o6lICBcIiArIGRhdGFTZlZpc2l0ZWQpO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB1dGls\ncy53YWl0Tm9kZShcIiNyZWFsdGltZS1jb250YWluZXIgLmMtaW5maW5pdGUtc2Nyb2xsXCIpLnRo\nZW4oKGVsZW1lbnQpID0+IHtcbiAgICAgICAgbGV0IHJlcGxhY2VWU2VhcmNoTGlua0xvbmtGdW5j\ndGlvbiA9IG5ldyB1dGlscy5Mb2NrRnVuY3Rpb24oXG4gICAgICAgICAgcmVwbGFjZUxpbmssXG4g\nICAgICAgICAgNjAwXG4gICAgICAgICk7XG4gICAgICAgIHV0aWxzLm11dGF0aW9uT2JzZXJ2ZXIo\nZWxlbWVudCwge1xuICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgc3VidHJlZTogdHJ1\nZSxcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAg\nY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgIHJlcGxhY2VWU2VhcmNoTGlua0xvbmtGdW5j\ndGlvbi5ydW4oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog55uR5ZCs6Lev55Sx5Y+Y5YyWXG4gICAgICpcL1xuICAgIGxpc3Rl\nblJvdXRlckNoYW5nZSgpIHtcbiAgICAgIGxvZy5pbmZvKFwi55uR5ZCs6Lev55Sx5Y+Y5YyWXCIp\nO1xuICAgICAgY29uc3QgcG9wc3RhdGVFdmVudCA9IChldmVudCkgPT4ge1xuICAgICAgICBjb25z\nb2xlLmxvZyhldmVudCk7XG4gICAgICB9O1xuICAgICAgZG9tdXRpbHMub24oX3Vuc2FmZVdpbmRv\ndywgXCJwb3BzdGF0ZVwiLCBwb3BzdGF0ZUV2ZW50KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IHNl\nYXJjaFRvb2xCYXJDU1MgPSBcIi5zZWFyY2gtdG9vbGJhci1jb250YWluZXIge1xcclxcblx0LS1i\nYWNrLWljb24tc2l6ZTogMTRweDtcXHJcXG5cdC0tYmFjay1pY29uLXBhZGRpbmctdG9wLWJvdHRv\nbTogMTJweDtcXHJcXG5cdC0tYmFjay1pY29uLXBhZGRpbmctbGVmdC1yaWdodDogMTRweDtcXHJc\nXG5cdC0tZW1wdHktaWNvbi1zaXplOiAxNHB4O1xcclxcblx0LS1jb250YWluZXItcGFkZGluZzog\nMTBweDtcXHJcXG5cdC0taW5wdXQtaGVpZ2h0OiAzNnB4O1xcclxcblx0LS1pbnB1dC1ib3JkZXIt\naGVpZ2h0OiAycHg7XFxyXFxuXHQtLXN1Z2dlc3Rpb24tdGV4dC1jb2xvcjogIzZkNmQ2ZDtcXHJc\nXG5cdC0tc3VnZ2VzdGlvbi1sZWZ0LWljb24tc2l6ZTogMjZweDtcXHJcXG5cdC0tc3VnZ2VzdGlv\nbi1sZWZ0LWljb24tY29sb3I6ICM2ZDZkNmQ7XFxyXFxuXHQtLXN1Z2dlc3Rpb24tcmlnaHQtaWNv\nbi1zaXplOiAyMnB4O1xcclxcbn1cXHJcXG4uc2VhcmNoLXRvb2xiYXItY29udGFpbmVyIHtcXHJc\nXG5cdHBvc2l0aW9uOiBmaXhlZDtcXHJcXG5cdHRvcDogMDtcXHJcXG5cdHJpZ2h0OiAwO1xcclxc\nblx0Ym90dG9tOiAwO1xcclxcblx0bGVmdDogMDtcXHJcXG5cdHotaW5kZXg6IDEwMDAwO1xcclxc\nblx0d2lkdGg6IDEwMHZ3O1xcclxcblx0b3BhY2l0eTogMTtcXHJcXG5cdHZpc2liaWxpdHk6IHZp\nc2libGU7XFxyXFxuXHR0cmFuc2l0aW9uOiBhbGwgMC4ycztcXHJcXG59XFxyXFxuLnNlYXJjaC10\nb29sYmFyLWlubmVyIHtcXHJcXG5cdGRpc3BsYXk6IGZsZXg7XFxyXFxuXHRmbGV4LWRpcmVjdGlv\nbjogY29sdW1uO1xcclxcblx0aGVpZ2h0OiAxMDAlO1xcclxcbn1cXHJcXG5cXHJcXG4uc2VhcmNo\nLXRvb2xiYXIge1xcclxcblx0ZGlzcGxheTogZmxleDtcXHJcXG5cdGFsaWduLWl0ZW1zOiBjZW50\nZXI7XFxyXFxuXHRwYWRkaW5nOiB2YXIoLS1jb250YWluZXItcGFkZGluZykgMHB4O1xcclxcblx0\nYmFja2dyb3VuZDogI2ZmZjtcXHJcXG5cdHBvc2l0aW9uOiBzdGlja3k7XFxyXFxuXHRib3R0b206\nIDA7XFxyXFxufVxcclxcblxcclxcbi5zZWFyY2gtaWNvbiB7XFxyXFxuXHRkaXNwbGF5OiBmbGV4\nO1xcclxcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG5cdGp1c3RpZnktY29udGVudDogY2Vu\ndGVyO1xcclxcbn1cXHJcXG4uc2VhcmNoLWljb24gc3ZnIHtcXHJcXG5cdHdpZHRoOiAxMDAlO1xc\nclxcblx0aGVpZ2h0OiAxMDAlO1xcclxcbn1cXHJcXG4uc2VhcmNoLXRvb2xiYXItYmFjayB7XFxy\nXFxuXHR3aWR0aDogdmFyKC0tYmFjay1pY29uLXNpemUpO1xcclxcblx0aGVpZ2h0OiB2YXIoLS1i\nYWNrLWljb24tc2l6ZSk7XFxyXFxuXHRwYWRkaW5nOiB2YXIoLS1iYWNrLWljb24tcGFkZGluZy10\nb3AtYm90dG9tKVxcclxcblx0XHR2YXIoLS1iYWNrLWljb24tcGFkZGluZy1sZWZ0LXJpZ2h0KTtc\nXHJcXG59XFxyXFxuLnNlYXJjaC1mb3JtIHtcXHJcXG5cdHdpZHRoOiAxMDAlO1xcclxcblx0Ym9y\nZGVyOiB2YXIoLS1pbnB1dC1ib3JkZXItaGVpZ2h0KSBzb2xpZCAjMjIyO1xcclxcblx0aGVpZ2h0\nOiB2YXIoLS1pbnB1dC1oZWlnaHQpO1xcclxcblx0Ym9yZGVyLXJhZGl1czogMTBweDtcXHJcXG5c\ndGRpc3BsYXk6IGZsZXg7XFxyXFxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xcclxcblx0bWFyZ2lu\nLXJpZ2h0OiAxMHB4O1xcclxcblx0cG9zaXRpb246IHJlbGF0aXZlO1xcclxcbn1cXHJcXG4uc2Vh\ncmNoLXRvb2xiYXItaW5wdXQge1xcclxcblx0ZmxleDogMTtcXHJcXG5cdG1hcmdpbjogMTJweDtc\nXHJcXG5cdGJvcmRlcjogMDtcXHJcXG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcclxcbn1c\nXHJcXG4uc2VhcmNoLXRvb2xiYXItaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24g\ne1xcclxcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcclxcbn1cXHJcXG4uc2VhcmNoLXRv\nb2xiYXItaW5wdXQ6Oi1tb3otc2VhcmNoLWNsZWFyLWJ1dHRvbiB7XFxyXFxuXHRkaXNwbGF5OiBu\nb25lO1xcclxcbn1cXHJcXG4uc2VhcmNoLXRvb2xiYXItaW5wdXQ6Zm9jdXMsXFxyXFxuLnNlYXJj\naC10b29sYmFyLWlucHV0OmZvY3VzLXZpc2libGUsXFxyXFxuLnNlYXJjaC10b29sYmFyLWlucHV0\nOmZvY3VzLXdpdGhpbiB7XFxyXFxuXHRvdXRsaW5lOiBub25lO1xcclxcbn1cXHJcXG4uc2VhcmNo\nLXRvb2xiYXItaW5wdXQtaW5uZXIge1xcclxcblx0ZGlzcGxheTogZmxleDtcXHJcXG5cdGFsaWdu\nLWl0ZW1zOiBjZW50ZXI7XFxyXFxuXHRnYXA6IDEycHg7XFxyXFxuXHRtYXJnaW4tcmlnaHQ6IDE2\ncHg7XFxyXFxufVxcclxcbi5zZWFyY2gtdG9vbGJhci1lbXB0eSB7XFxyXFxuXHR3aWR0aDogdmFy\nKC0tZW1wdHktaWNvbi1zaXplKTtcXHJcXG5cdGhlaWdodDogdmFyKC0tZW1wdHktaWNvbi1zaXpl\nKTtcXHJcXG5cdHBhZGRpbmc6IDJweDtcXHJcXG59XFxyXFxuLnNlYXJjaC1mb3JtLXN1Ym1pdCB7\nXFxyXFxuXHRmb250LXNpemU6IDE0cHg7XFxyXFxuXHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtc\nXHJcXG5cdGJvcmRlcjogMDtcXHJcXG5cdG1hcmdpbjogMDtcXHJcXG5cdHBhZGRpbmc6IDA7XFxy\nXFxuXHR1c2VyLXNlbGVjdDogbm9uZTtcXHJcXG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7\nXFxyXFxufVxcclxcbi5zZWFyY2gtZm9ybS1zdWJtaXRbZGlzYWJsZWRdIHtcXHJcXG5cdGNvbG9y\nOiAjNmQ2ZDZkO1xcclxcbn1cXHJcXG4uc2VhcmNoLXN1Z2dlc3Rpb24ge1xcclxcblx0YmFja2dy\nb3VuZDogI2YyZjJmMjtcXHJcXG5cdGZsZXg6IDE7XFxyXFxuXHRkaXNwbGF5OiBmbGV4O1xcclxc\nblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcclxcblx0aGVpZ2h0OiAxMDAlO1xc\nclxcblx0aGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xcclxcblx0b3ZlcmZsb3cteTog\nYXV0bztcXHJcXG59XFxyXFxuLnNlYXJjaC1zdWdnZXN0aW9uLWl0ZW0ge1xcclxcblx0ZGlzcGxh\neTogZmxleDtcXHJcXG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxyXFxuXHRwYWRkaW5nOiA4cHgg\nMTZweDtcXHJcXG59XFxyXFxuLnNlYXJjaC1zdWdnZXN0aW9uLWl0ZW0tbGVmdC1pY29uIHtcXHJc\nXG5cdGRpc3BsYXk6IGZsZXg7XFxyXFxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xcclxcblx0anVz\ndGlmeS1jb250ZW50OiBjZW50ZXI7XFxyXFxuXHR3aWR0aDogdmFyKC0tc3VnZ2VzdGlvbi1sZWZ0\nLWljb24tc2l6ZSk7XFxyXFxuXHRoZWlnaHQ6IHZhcigtLXN1Z2dlc3Rpb24tbGVmdC1pY29uLXNp\nemUpO1xcclxcbn1cXHJcXG4uc2VhcmNoLXN1Z2dlc3Rpb24taXRlbS1sZWZ0LWljb24gc3ZnIHtc\nXHJcXG5cdGZpbGw6IHZhcigtLXN1Z2dlc3Rpb24tbGVmdC1pY29uLWNvbG9yKTtcXHJcXG59XFxy\nXFxuLnNlYXJjaC1zdWdnZXN0aW9uLWl0ZW0tdGV4dCB7XFxyXFxuXHRtYXJnaW4tbGVmdDogNnB4\nO1xcclxcblx0d2lkdGg6IDEwMCU7XFxyXFxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xcclxcblx0Y29s\nb3I6ICMwMDAwMDA7XFxyXFxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xcclxcblx0dGV4dC1vdmVy\nZmxvdzogZWxsaXBzaXM7XFxyXFxuXHRvdmVyZmxvdzogaGlkZGVuO1xcclxcblx0bGluZS1oZWln\naHQ6IG5vcm1hbDtcXHJcXG59XFxyXFxuLnNlYXJjaC1zdWdnZXN0aW9uLWl0ZW0tdGV4dCBlbSB7\nXFxyXFxuXHRjb2xvcjogdmFyKC0tc3VnZ2VzdGlvbi10ZXh0LWNvbG9yKTtcXHJcXG5cdGZvbnQt\nc3R5bGU6IHVuc2V0O1xcclxcbn1cXHJcXG4uc2VhcmNoLXN1Z2dlc3Rpb24taXRlbS1yaWdodC1p\nY29uIHtcXHJcXG5cdGRpc3BsYXk6IGZsZXg7XFxyXFxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xc\nclxcblx0d2lkdGg6IHZhcigtLXN1Z2dlc3Rpb24tcmlnaHQtaWNvbi1zaXplKTtcXHJcXG5cdGhl\naWdodDogdmFyKC0tc3VnZ2VzdGlvbi1yaWdodC1pY29uLXNpemUpO1xcclxcbn1cXHJcXG5cIjtc\nbiAgY2xhc3MgR2VzdHVyZUJhY2sge1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgICAg\nXC8qKlxuICAgICAgICog5piv5ZCm5q2j5Zyo5ZCO6YCAXG4gICAgICAgKlwvXG4gICAgICBfX3B1\nYmxpY0ZpZWxkKHRoaXMsIFwiaXNCYWNraW5nXCIsIGZhbHNlKTtcbiAgICAgIF9fcHVibGljRmll\nbGQodGhpcywgXCJjb25maWdcIik7XG4gICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICAg\nIHRoaXMuZW50ZXJHZXN0dXJlQmFja01vZGUuYmluZCh0aGlzKTtcbiAgICAgIHRoaXMucXVpdEdl\nc3R1cmVCYWNrTW9kZS5iaW5kKHRoaXMpO1xuICAgICAgdGhpcy5wb3BTdGF0ZUV2ZW50LmJpbmQo\ndGhpcyk7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLmJhY2tEZWxheVRpbWUgIT09IFwi\nbnVtYmVyXCIgfHwgaXNOYU4odGhpcy5jb25maWcuYmFja0RlbGF5VGltZSkpIHtcbiAgICAgICAg\ndGhpcy5jb25maWcuYmFja0RlbGF5VGltZSA9IDE1MDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlz\nLmNvbmZpZy53aW4gPT0gbnVsbCkge1xuICAgICAgICB0aGlzLmNvbmZpZy53aW4gPSBzZWxmO1xu\nICAgICAgfVxuICAgIH1cbiAgICBcLyoqXG4gICAgICogcG9wc3RhdGXkuovku7blh73mlbBcbiAg\nICAgKiBAcGFyYW0gZXZlbnRcbiAgICAgKlwvXG4gICAgcG9wU3RhdGVFdmVudChldmVudCkge1xu\nICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgIGlmICh0aGlzLmlzQmFja2lu\nZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnF1aXRHZXN0dXJlQmFj\na01vZGUodHJ1ZSk7XG4gICAgfVxuICAgIFwvKipcbiAgICAgKiDov5vlhaXmiYvlir\/mqKHlvI9c\nbiAgICAgKlwvXG4gICAgZW50ZXJHZXN0dXJlQmFja01vZGUoKSB7XG4gICAgICBsb2cuc3VjY2Vz\ncyhcIui\/m+WFpeaJi+WKv+aooeW8j1wiKTtcbiAgICAgIGxldCBwdXNoVXJsID0gdGhpcy5jb25m\naWcuaGFzaDtcbiAgICAgIGlmICghcHVzaFVybC5zdGFydHNXaXRoKFwiI1wiKSkge1xuICAgICAg\nICBpZiAoIXB1c2hVcmwuc3RhcnRzV2l0aChcIlwvXCIpKSB7XG4gICAgICAgICAgcHVzaFVybCA9\nIFwiXC9cIiArIHB1c2hVcmw7XG4gICAgICAgIH1cbiAgICAgICAgcHVzaFVybCA9IFwiI1wiICsg\ncHVzaFVybDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNvbmZpZy51c2VVcmwpIHtcbiAgICAg\nICAgcHVzaFVybCA9IHRoaXMuY29uZmlnLndpbi5sb2NhdGlvbi5vcmlnaW4gKyB0aGlzLmNvbmZp\nZy53aW4ubG9jYXRpb24ucGF0aG5hbWUgKyB0aGlzLmNvbmZpZy53aW4ubG9jYXRpb24uc2VhcmNo\nICsgcHVzaFVybDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlnLndpbi5oaXN0b3J5LnB1c2hT\ndGF0ZSh7fSwgXCJcIiwgcHVzaFVybCk7XG4gICAgICBsb2cuc3VjY2VzcyhcIuebkeWQrHBvcHN0\nYXRl5LqL5Lu2XCIpO1xuICAgICAgZG9tdXRpbHMub24odGhpcy5jb25maWcud2luLCBcInBvcHN0\nYXRlXCIsIHRoaXMucG9wU3RhdGVFdmVudC5iaW5kKHRoaXMpLCB7XG4gICAgICAgIGNhcHR1cmU6\nIHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICBcLyoqXG4gICAgICog6YCA5Ye65omL5Yq\/5qih\n5byPXG4gICAgICogQHBhcmFtIGlzVXJsQ2hhbmdlIOaYr+WQpuaYr3VybOaUueWPmOinpuWPkeea\nhFxuICAgICAqXC9cbiAgICBhc3luYyBxdWl0R2VzdHVyZUJhY2tNb2RlKGlzVXJsQ2hhbmdlID0g\nZmFsc2UpIHtcbiAgICAgIHRoaXMuaXNCYWNraW5nID0gdHJ1ZTtcbiAgICAgIGxvZy5zdWNjZXNz\nKFwi6YCA5Ye65omL5Yq\/5qih5byPXCIpO1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5i\nZWZvcmVIaXN0b3J5QmFja0NhbGxCYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhp\ncy5jb25maWcuYmVmb3JlSGlzdG9yeUJhY2tDYWxsQmFjayhpc1VybENoYW5nZSk7XG4gICAgICB9\nXG4gICAgICBsZXQgbWF4RGF0ZSA9IERhdGUubm93KCkgKyAxZTMgKiA1O1xuICAgICAgd2hpbGUg\nKHRydWUpIHtcbiAgICAgICAgaWYgKERhdGUubm93KCkgPiBtYXhEYXRlKSB7XG4gICAgICAgICAg\nbG9nLmVycm9yKFwi5pyq55+l5oOF5Ya177yMaGlzdG9yeS5iYWNrKCnlpLHotKXvvIzml6Dms5Xp\ngIDlh7rmiYvlir\/mqKHlvI9cIik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAg\nICAgaWYgKHRoaXMuY29uZmlnLndpbi5sb2NhdGlvbi5oYXNoLmVuZHNXaXRoKHRoaXMuY29uZmln\nLmhhc2gpKSB7XG4gICAgICAgICAgbG9nLmluZm8oXCJoaXN0b3J5LmJhY2soKVwiKTtcbiAgICAg\nICAgICB0aGlzLmNvbmZpZy53aW4uaGlzdG9yeS5iYWNrKCk7XG4gICAgICAgICAgYXdhaXQgdXRp\nbHMuc2xlZXAodGhpcy5jb25maWcuYmFja0RlbGF5VGltZSB8fCAxNTApO1xuICAgICAgICB9IGVs\nc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsb2cuc3Vj\nY2VzcyhcIuenu+mZpHBvcHN0YXRl5LqL5Lu2XCIpO1xuICAgICAgZG9tdXRpbHMub2ZmKHRoaXMu\nY29uZmlnLndpbiwgXCJwb3BzdGF0ZVwiLCB0aGlzLnBvcFN0YXRlRXZlbnQuYmluZCh0aGlzKSwg\ne1xuICAgICAgICBjYXB0dXJlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaXNCYWNraW5n\nID0gZmFsc2U7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLmFmdGVySGlzdG9yeUJhY2tD\nYWxsQmFjayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmFmdGVySGlz\ndG9yeUJhY2tDYWxsQmFjayhpc1VybENoYW5nZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNv\nbnN0IEJhaWR1U2VhcmNoVG9vbEJhciA9IHtcbiAgICAkZWw6IHtcbiAgICAgIFwvKiog5pCc57Si\n5qGG5oC75a655ZmoICpcL1xuICAgICAgJGNvbnRhaW5lcjogbnVsbCxcbiAgICAgIHNoYWRvd1Jv\nb3Q6IG51bGwsXG4gICAgICAkdG9vbGJhckNvbnRhaW5lcjogbnVsbCxcbiAgICAgIFwvKiog5pCc\n57Si5qGG5a655ZmoICpcL1xuICAgICAgJHRvb2xiYXI6IG51bGwsXG4gICAgICBcLyoqIOaPkOS6\npOihqOWNlSAqXC9cbiAgICAgICRmb3JtOiBudWxsLFxuICAgICAgXC8qKiDovpPlhaXmoYYgKlwv\nXG4gICAgICAkaW5wdXQ6IG51bGwsXG4gICAgICBcLyoqIOaQnOe0ouW7uuiuriAqXC9cbiAgICAg\nICRzdWdnZXN0aW9uOiBudWxsLFxuICAgICAgXC8qKiDov5Tlm57mjInpkq4gKlwvXG4gICAgICAk\nYmFjazogbnVsbCxcbiAgICAgIFwvKiog5riF56m65Zu+5qCHICpcL1xuICAgICAgJGVtcHR5OiBu\ndWxsLFxuICAgICAgXC8qKiDmkJzntKLmjInpkq4gKlwvXG4gICAgICAkc3VibWl0OiBudWxsXG4g\nICAgfSxcbiAgICAkZGF0YToge1xuICAgICAgZ2VzdHVyZUJhY2s6IG5ldyBHZXN0dXJlQmFjayh7\nXG4gICAgICAgIGhhc2g6IFwiZ2xvYmFsLXNlYXJjaFwiLFxuICAgICAgICBiZWZvcmVIaXN0b3J5\nQmFja0NhbGxCYWNrKCkge1xuICAgICAgICAgIEJhaWR1U2VhcmNoVG9vbEJhci5oaWRlVG9vbEJh\ncigpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG4gICAgaW5pdCgpIHtcbiAgICAgIGRv\nbXV0aWxzLnJlYWR5KCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGRGbG9hdEJ1dHRvbigpO1xuICAg\nICAgICB0aGlzLmFkZFRvb2xCYXIoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAg\nICAqIOa3u+WKoOaCrOa1ruaQnOe0ouaMiemSrlxuICAgICAqXC9cbiAgICBhZGRGbG9hdEJ1dHRv\nbigpIHtcbiAgICAgIGxldCAkYnRuID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7\nXG4gICAgICAgIGNsYXNzTmFtZTogXCJnbS1zZWFyY2gtdG9vbGJhci1mbG9hdC1idG5cIixcbiAg\nICAgICAgaW5uZXJIVE1MOiAoXG4gICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAgICAgIGBcbiAg\nICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIg\neG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIj5cbiAgICAgICAgICAgICAg\nICA8cGF0aCBmaWxsPVwiI0VGRjlGRVwiIGQ9XCJNNDc4LjEyIDY0Ljg4aDY3Ljc2YzEwMy41NC01\nLjQ5IDI0MS45NSAxMy40NiAzMTcuODEgOTQuOTMgODEuNDggNzUuODYgMTAwLjQyIDIxNC4yNyA5\nNC45NCAzMTcuODF2NjcuNzZjNS40OCAxMDMuNTQtMTMuNDUgMjQxLjk1LTk0Ljk0IDMxNy44MS03\nNS44NiA4MS40OS0yMTQuMjcgMTAwLjQyLTMxNy44MSA5NC45NGgtNjcuNzZjLTEwMy41NCA1LjQ4\nLTI0MS45NS0xMy40NS0zMTcuODEtOTQuOTQtODEuNDgtNzUuODYtMTAwLjQyLTIxNC4yNy05NC45\nMy0zMTcuODF2LTY3Ljc2Yy01LjQ4LTEwMy41NCAxMy40NS0yNDEuOTUgOTQuOTQtMzE3LjgxIDc1\nLjg1LTgxLjQ4IDIxNC4yNi0xMDAuNDIgMzE3LjgtOTQuOTN6XCIgZmlsbD1cIiM1NkI5RjFcIiBw\nLWlkPVwiNDM5ODZcIj48XC9wYXRoPjxwYXRoIGQ9XCJNNTUyLjg5IDM5Mi4wNGMyMS44NCAxNy41\nOCAzNS44NCA0NC40OSAzNS44NCA3NC43MSAwIDIuMTYtMC4xOCA0LjI3LTAuMzIgNi4zOUgzOTcu\nMjNjLTAuMTQtMi4xMi0wLjMyLTQuMjQtMC4zMi02LjM5IDAtMzAuOTYgMTQuNzMtNTguNDEgMzcu\nNDktNzUuOTVsLTExLjA2LTE3LjYyYy0xLjc3LTIuODEtMC43Mi02LjQxIDIuMzQtOC4wMyAzLjA2\nLTEuNjIgNi45Ny0wLjY2IDguNzMgMi4xNWwxMC4zNyAxNi41MmMxNC4xNC04LjIxIDMwLjUxLTEy\nLjk4IDQ4LjAzLTEyLjk4IDE4LjE1IDAgMzUuMDYgNS4xMyA0OS41MyAxMy44OWw4Ljg4LTE1LjM4\nYzEuNzctMy4wNiA1LjY4LTQuMTEgOC43My0yLjM0IDMuMDYgMS43NyA0LjExIDUuNjggMi4zNCA4\nLjczbC05LjQgMTYuM3ogbS05Mi4wNCAzNi4zNGMtNy4wNiAwLTEyLjc5IDUuNzMtMTIuNzkgMTIu\nNzlzNS43MyAxMi43OSAxMi43OSAxMi43OSAxMi43OS01LjczIDEyLjc5LTEyLjc5LTUuNzMtMTIu\nNzktMTIuNzktMTIuNzl6IG02My45NCAwYy03LjA2IDAtMTIuNzkgNS43My0xMi43OSAxMi43OXM1\nLjczIDEyLjc5IDEyLjc5IDEyLjc5YzcuMDYgMCAxMi43OS01LjczIDEyLjc5LTEyLjc5cy01Ljcz\nLTEyLjc5LTEyLjc5LTEyLjc5eiBtLTMxLjk3IDEzNC4yOGMtNDYuNCAwLTg1LjEtMzIuOTUtOTMu\nOTktNzYuNzNINTg2LjhjLTguODggNDMuNzctNDcuNTggNzYuNzMtOTMuOTggNzYuNzN6XCIgZmls\nbD1cIiNFRkY5RkVcIiBwLWlkPVwiNDM5ODdcIj48XC9wYXRoPjxwYXRoIGQ9XCJNNzM2LjUzIDcw\nNC4xMWMtMTUuOSAxNS45MS00MS42OCAxNS45MS01Ny41OCAwbC03NC44Ny03NC45Yy03OS4wNCA1\nMi4zOS0xODYuNTggNDMuNzYtMjU2LjIyLTI1LjkxLTc5LjUtNzkuNTQtNzkuNS0yMDguNSAwLTI4\nOC4wMyA3OS41LTc5LjU0IDIwOC40LTc5LjU0IDI4Ny45IDAgNjkuNjQgNjkuNjcgNzguMjYgMTc3\nLjI1IDI1LjkgMjU2LjMzbDc0Ljg3IDc0LjljMTUuOSAxNS45MSAxNS45IDQxLjcgMCA1Ny42MXpN\nNTgyLjk5IDM2OC4wN2MtNTAuMzUtNTAuMzctMTMxLjk4LTUwLjM3LTE4Mi4zMyAwcy01MC4zNSAx\nMzIuMDUgMCAxODIuNDJjNTAuMzUgNTAuMzcgMTMxLjk4IDUwLjM3IDE4Mi4zMyAwIDUwLjM1LTUw\nLjM3IDUwLjM1LTEzMi4wNCAwLTE4Mi40MnpcIj5cbiAgICAgICAgICAgICAgICA8XC9wYXRoPlxu\nICAgICAgICAgICAgPFwvc3ZnPlxuICAgICAgICAgICAgYFxuICAgICAgICApXG4gICAgICB9KTtc\nbiAgICAgIGRvbXV0aWxzLm9uKCRidG4sIFwiY2xpY2tcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAg\nIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuc2hvd1Rvb2xCYXIoKTtc\nbiAgICAgICAgdGhpcy5pbml0RGVmYXVsdFNlYXJjaFRleHQoKTtcbiAgICAgICAgc2V0VGltZW91\ndCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy4kZWwuJGlucHV0LmZvY3VzKCk7XG4gICAgICAgICAg\ndGhpcy4kZWwuJGlucHV0LnNlbGVjdCgpO1xuICAgICAgICB9LCAxNTApO1xuICAgICAgICBQb3Bz\nUGFuZWwuZXhlY01lbnUoXG4gICAgICAgICAgXCJiYWlkdS1zZWFyY2gtZ2xvYmFsLXNlYXJjaFRv\nb2xCYXItZ2VzdHVyZS1iYWNrXCIsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgdGhp\ncy4kZGF0YS5nZXN0dXJlQmFjay5lbnRlckdlc3R1cmVCYWNrTW9kZSgpO1xuICAgICAgICAgIH1c\nbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgYWRkU3R5bGUoXG4gICAgICAgIFwvKmNzcypc\nL1xuICAgICAgICBgXG4gICAgICAgIC5nbS1zZWFyY2gtdG9vbGJhci1mbG9hdC1idG4ge1xuICAg\nICAgICAgICAgLS1nbS1zZWFyY2gtdG9vbGJhci1pY29uLXNpemU6IDQ1cHg7XG4gICAgICAgICAg\nICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICBib3R0b206IDIwcHg7XG4gICAgICAgICAg\nICByaWdodDogMTVweDtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1nbS1zZWFyY2gtdG9vbGJh\nci1pY29uLXNpemUpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1nbS1zZWFyY2gtdG9vbGJh\nci1pY29uLXNpemUpO1xuICAgICAgICAgICAgei1pbmRleDogOTAwMDtcbiAgICAgICAgfVxuXG4g\nICAgICAgIGBcbiAgICAgICk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKCRidG4p\nO1xuICAgICAgcmV0dXJuICRidG47XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5re75Yqg5pCc\n57Si5bel5YW35qCPXG4gICAgICpcL1xuICAgIGFkZFRvb2xCYXIoKSB7XG4gICAgICBsZXQgJHRv\nb2xiYXJJbm5lciA9IGRvbXV0aWxzLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAkdG9v\nbGJhcklubmVyLmNsYXNzTmFtZSA9IFwiZ20tc2VhcmNoLXRvb2xiYXJcIjtcbiAgICAgICR0b29s\nYmFySW5uZXIuYXR0YWNoU2hhZG93KHsgbW9kZTogXCJvcGVuXCIgfSk7XG4gICAgICBsZXQgc2hh\nZG93Um9vdCA9ICR0b29sYmFySW5uZXIuc2hhZG93Um9vdDtcbiAgICAgIHRoaXMuJGVsLiRjb250\nYWluZXIgPSAkdG9vbGJhcklubmVyO1xuICAgICAgdGhpcy4kZWwuc2hhZG93Um9vdCA9IHNoYWRv\nd1Jvb3Q7XG4gICAgICBsZXQgJGNzcyA9IGRvbXV0aWxzLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwi\nLCB7XG4gICAgICAgIGlubmVySFRNTDogc2VhcmNoVG9vbEJhckNTU1xuICAgICAgfSk7XG4gICAg\nICBzaGFkb3dSb290LmFwcGVuZENoaWxkKCRjc3MpO1xuICAgICAgbGV0ICRjb250YWluZXIgPSBk\nb211dGlscy5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInNl\nYXJjaC10b29sYmFyLWNvbnRhaW5lclwiLFxuICAgICAgICBpbm5lckhUTUw6IChcbiAgICAgICAg\nICBcLypodG1sKlwvXG4gICAgICAgICAgYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJj\naC10b29sYmFyLWlubmVyXCI+ICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYg\nY2xhc3M9XCJzZWFyY2gtc3VnZ2VzdGlvblwiPjxcL2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2\nIGNsYXNzPVwic2VhcmNoLXRvb2xiYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9\nXCJzZWFyY2gtaWNvbiBzZWFyY2gtdG9vbGJhci1iYWNrXCI+XG4gICAgICAgICAgICAgICAgICAg\nICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAyNCAxMDI0XCIgdmVyc2lvbj1cIjEuMVwiIHhtbG5z\nPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgPHBhdGggZD1cIk03MzguODQ1NTU0IDEwMjRjLTE1Ljk3NTAzOSAwLTMxLjk1MDA3\nOC02LjM5MDAxNi00NC43MzAxMDktMTkuMTcwMDQ3TDI0My42MTkzNDUgNTU0LjMzMzg1M2MtMjIu\nMzY1MDU1LTIyLjM2NTA1NS0yMi4zNjUwNTUtNjMuOTAwMTU2IDAtODYuMjY1MjFMNjk0LjExNTQ0\nNSAxOS4xNzAwNDdjMjIuMzY1MDU1LTIyLjM2NTA1NSA2My45MDAxNTYtMjUuNTYwMDYyIDg2LjI2\nNTIxLTMuMTk1MDA4IDIyLjM2NTA1NSAyMi4zNjUwNTUgMjUuNTYwMDYyIDYzLjkwMDE1NiAzLjE5\nNTAwOCA4Ni4yNjUyMTFsLTMuMTk1MDA4IDMuMTk1MDA3LTQwNS43NjU5OSA0MDQuMTY4NDg3IDQw\nNS43NjU5OSA0MDguOTYwOTk5YzIyLjM2NTA1NSAyMi4zNjUwNTUgMjIuMzY1MDU1IDYzLjkwMDE1\nNiAwIDg2LjI2NTIxLTEyLjc4MDAzMSAxMi43ODAwMzEtMjUuNTYwMDYyIDE5LjE3MDA0Ny00MS41\nMzUxMDEgMTkuMTcwMDQ3elwiPjxcL3BhdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8XC9z\ndmc+XG4gICAgICAgICAgICAgICAgICAgIDxcL2k+XG4gICAgICAgICAgICAgICAgICAgIDxmb3Jt\nIGNsYXNzPVwic2VhcmNoLWZvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICAgICAgICAg\nICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC10b29sYmFyLWlucHV0XCIgdHlwZT1c\nInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwi5pCc57Si5YaF5a65XCIgYXV0b2NvbXBsZXRlPVwib2Zm\nXCIgYXV0b2NvcnJlY3Q9XCJvZmZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh\nc3M9XCJzZWFyY2gtdG9vbGJhci1pbnB1dC1pbm5lclwiPlxuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIDxpIGNsYXNzPVwic2VhcmNoLWljb24gc2VhcmNoLXRvb2xiYXItZW1wdHlcIj5cbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMjQgMTAy\nNFwiIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2\nZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01MTIg\nMEMyMjkuMjczNiAwIDAgMjI5LjI3MzYgMCA1MTJzMjI5LjI3MzYgNTEyIDUxMiA1MTIgNTEyLTIy\nOS4yNzM2IDUxMi01MTJTNzk0LjcyNjQgMCA1MTIgMHogbTI0OC44MzIgNjcwLjQxMjhjMjQuODgz\nMiAyNC44ODMyIDI0Ljg4MzIgNjUuNjM4NCAwIDkwLjUyMTYtMjQuODgzMiAyNC45ODU2LTY1LjYz\nODQgMjQuODgzMi05MC41MjE2IDBMNTEyIDYwMi41MjE2IDM1My41ODcyIDc2MC45MzQ0Yy0yNC44\nODMyIDI0Ljg4MzItNjUuNjM4NCAyNC44ODMyLTkwLjUyMTYgMC0yNC45ODU2LTI0Ljg4MzItMjQu\nODgzMi02NS42Mzg0IDAtOTAuNTIxNkw0MjEuNDc4NCA1MTIgMjYzLjA2NTYgMzUzLjU4NzJjLTI0\nLjg4MzItMjQuODgzMi0yNC44ODMyLTY1LjYzODQgMC05MC41MjE2IDI0Ljg4MzItMjQuOTg1NiA2\nNS42Mzg0LTI0Ljg4MzIgOTAuNTIxNiAwTDUxMiA0MjEuNDc4NGwxNTguNDEyOC0xNTguNDEyOGMy\nNC44ODMyLTI0Ljg4MzIgNjUuNjM4NC0yNC44ODMyIDkwLjUyMTYgMCAyNC45ODU2IDI0Ljg4MzIg\nMjQuODgzMiA2NS42Mzg0IDAgOTAuNTIxNkw2MDIuNTIxNiA1MTIgNzYwLjgzMiA2NzAuNDEyOHpc\nIj48XC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC9zdmc+XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgPFwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cInNlYXJjaC1mb3JtLXN1Ym1pdFwiIGRp\nc2FibGVkPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7m\nkJzntKI8XC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxcL2J1dHRvbj5cbiAg\nICAgICAgICAgICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPFwvZm9y\nbT5cbiAgICAgICAgICAgICAgICA8XC9kaXY+XG4gICAgICAgICAgICA8XC9kaXY+XG4gICAgICAg\nICAgICBgXG4gICAgICAgIClcbiAgICAgIH0pO1xuICAgICAgdGhpcy4kZWwuJHRvb2xiYXJDb250\nYWluZXIgPSAkY29udGFpbmVyO1xuICAgICAgdGhpcy4kZWwuJHRvb2xiYXIgPSAkY29udGFpbmVy\nLnF1ZXJ5U2VsZWN0b3IoXCIuc2VhcmNoLXRvb2xiYXJcIik7XG4gICAgICB0aGlzLiRlbC4kaW5w\ndXQgPSAkY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLnNlYXJjaC10b29sYmFy\nLWlucHV0XCJcbiAgICAgICk7XG4gICAgICB0aGlzLiRlbC4kZm9ybSA9ICRjb250YWluZXIucXVl\ncnlTZWxlY3RvcihcIi5zZWFyY2gtZm9ybVwiKTtcbiAgICAgIHRoaXMuJGVsLiRzdWdnZXN0aW9u\nID0gJGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLnNlYXJjaC1zdWdnZXN0aW9uXCIpO1xuICAg\nICAgdGhpcy4kZWwuJGJhY2sgPSAkY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwi\nLnNlYXJjaC10b29sYmFyLWJhY2tcIlxuICAgICAgKTtcbiAgICAgIHRoaXMuJGVsLiRlbXB0eSA9\nICRjb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIuc2VhcmNoLXRvb2xiYXItZW1w\ndHlcIlxuICAgICAgKTtcbiAgICAgIHRoaXMuJGVsLiRzdWJtaXQgPSAkY29udGFpbmVyLnF1ZXJ5\nU2VsZWN0b3IoXG4gICAgICAgIFwiLnNlYXJjaC1mb3JtLXN1Ym1pdFwiXG4gICAgICApO1xuICAg\nICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZCgkY29udGFpbmVyKTtcbiAgICAgIHRoaXMuaGlkZVRv\nb2xCYXIoKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoJHRvb2xiYXJJbm5lcik7\nXG4gICAgICB0aGlzLnNldElucHV0RXZlbnQoKTtcbiAgICAgIHRoaXMuc2V0RW1wdHlFdmVudCgp\nO1xuICAgICAgdGhpcy5zZXRCYWNrRXZlbnQoKTtcbiAgICAgIHRoaXMuc2V0Rm9ybUV2ZW50KCk7\nXG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5pi+56S65pCc57Si5bel5YW35qCPXG4gICAgICpc\nL1xuICAgIHNob3dUb29sQmFyKCkge1xuICAgICAgdGhpcy4kZWwuJHRvb2xiYXJDb250YWluZXIu\nc3R5bGUub3BhY2l0eSA9IFwiXCI7XG4gICAgICB0aGlzLiRlbC4kdG9vbGJhckNvbnRhaW5lci5z\ndHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDpmpDol4\/m\nkJzntKLlt6XlhbfmoI9cbiAgICAgKlwvXG4gICAgaGlkZVRvb2xCYXIoKSB7XG4gICAgICB0aGlz\nLiRlbC4kdG9vbGJhckNvbnRhaW5lci5zdHlsZS5vcGFjaXR5ID0gXCIwXCI7XG4gICAgICB0aGlz\nLiRlbC4kdG9vbGJhckNvbnRhaW5lci5zdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIjtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5blvZPliY3pobXpnaLmkJzntKLnmoTlhbPplK7l\nrZdcbiAgICAgKlwvXG4gICAgZ2V0UGFnZVNlYXJjaFRleHQoKSB7XG4gICAgICBsZXQgc2VhcmNo\nUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAg\nICAgIGxldCBzZWFyY2hUZXh0ID0gc2VhcmNoUGFyYW1zLmdldChcIndvcmRcIikgfHwgc2VhcmNo\nUGFyYW1zLmdldChcIndkXCIpO1xuICAgICAgcmV0dXJuIHNlYXJjaFRleHQ7XG4gICAgfSxcbiAg\nICBcLyoqXG4gICAgICog6I635Y+W5pCc57Si5bu66K6u5YaF5a65XG4gICAgICogQHBhcmFtIHRl\neHQg5pCc57Si5YaF5a65XG4gICAgICpcL1xuICAgIGFzeW5jIGdldFN1Z2dlc3Rpb25UZXh0KHRl\neHQpIHtcbiAgICAgIGxldCBzZWFyY2hQYXJhbURhdGEgPSB7XG4gICAgICAgIGpzb246IDEsXG4g\nICAgICAgIHByb2Q6IFwid2lzZVwiLFxuICAgICAgICBjYWxsYmFjazogXCJiYWlkdXN1Z1wiLFxu\nICAgICAgICB3ZDogdGV4dFxuICAgICAgfTtcbiAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IGh0\ndHB4LmdldChcbiAgICAgICAgYGh0dHBzOlwvXC9tLmJhaWR1LmNvbVwvc3VncmVjPyR7dXRpbHMu\ndG9TZWFyY2hQYXJhbXNTdHIoc2VhcmNoUGFyYW1EYXRhKX1gLFxuICAgICAgICB7XG4gICAgICAg\nICAgZmV0Y2g6IHRydWUsXG4gICAgICAgICAgYWxsb3dJbnRlcmNlcHRDb25maWc6IGZhbHNlXG4g\nICAgICAgIH1cbiAgICAgICk7XG4gICAgICBpZiAoIXJlc3BvbnNlLnN0YXR1cykge1xuICAgICAg\nICBsb2cuZXJyb3IoXCLojrflj5bnmb7luqbmkJzntKLlu7rorq7lpLHotKVcIiwgcmVzcG9uc2Up\nO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgc3VnZ2VzdGlvbiA9IHJlc3Bv\nbnNlLmRhdGEucmVzcG9uc2VUZXh0LnJlcGxhY2UoXC9eYmFpZHVzdWdcXChcLywgXCJcIikucmVw\nbGFjZShcL1xcKSRcLywgXCJcIik7XG4gICAgICBsZXQgc3VnZ2VzdGlvbkpTT04gPSB1dGlscy50\nb0pTT04oc3VnZ2VzdGlvbik7XG4gICAgICBsb2cuaW5mbyhg55m+5bqm5pCc57Si6IGU5oOz6K+N\n77yaYCwgc3VnZ2VzdGlvbkpTT04pO1xuICAgICAgcmV0dXJuIHN1Z2dlc3Rpb25KU09OLmcgfHwg\nW107XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yid5aeL5YyW5b2T5YmN6aG16Z2i6buY6K6k\n55qE5pCc57Si5YWz6ZSu5a2XXG4gICAgICpcL1xuICAgIGluaXREZWZhdWx0U2VhcmNoVGV4dCgp\nIHtcbiAgICAgIGxldCBzZWFyY2hUZXh0ID0gdGhpcy5nZXRQYWdlU2VhcmNoVGV4dCgpO1xuICAg\nICAgdGhpcy5zZXRJbnB1dFRleHQoc2VhcmNoVGV4dCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog55uR5ZCs6L6T5YWl5qGG5YaF5a655pS55Y+YXG4gICAgICpcL1xuICAgIHNldElucHV0RXZl\nbnQoKSB7XG4gICAgICBkb211dGlscy5vbih0aGlzLiRlbC4kaW5wdXQsIFtcImlucHV0XCIsIFwi\ncHJvcGVydHljaGFuZ2VcIl0sIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy4kZWwuJGlu\ncHV0LnZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgdGhpcy5jbGVhclN1Z2dlc3Rpb24oKTtc\nbiAgICAgICAgICB0aGlzLiRlbC4kZW1wdHkuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAg\nICAgICAgIHRoaXMuJGVsLiRzdWJtaXQuc2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIiwgXCJ0cnVl\nXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuJGVsLiRlbXB0eS5zdHlsZS5k\naXNwbGF5ID0gXCJcIjtcbiAgICAgICAgICB0aGlzLiRlbC4kc3VibWl0LnJlbW92ZUF0dHJpYnV0\nZShcImRpc2FibGVkXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLm9u\nKFxuICAgICAgICB0aGlzLiRlbC4kaW5wdXQsXG4gICAgICAgIFtcImlucHV0XCIsIFwicHJvcGVy\ndHljaGFuZ2VcIl0sXG4gICAgICAgIHV0aWxzLmRlYm91bmNlKGFzeW5jICgpID0+IHtcbiAgICAg\nICAgICBsZXQgc2VhcmNoVGV4dCA9IHRoaXMuJGVsLiRpbnB1dC52YWx1ZTtcbiAgICAgICAgICBp\nZiAoc2VhcmNoVGV4dCA9PT0gXCJcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAg\nIH1cbiAgICAgICAgICBsZXQgc3VnZ2VzdGlvbkxpc3QgPSBhd2FpdCB0aGlzLmdldFN1Z2dlc3Rp\nb25UZXh0KHNlYXJjaFRleHQpO1xuICAgICAgICAgIGlmICghc3VnZ2VzdGlvbkxpc3QpIHtcbiAg\nICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN1Z2dlc3Rpb25M\naXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhclN1Z2dlc3Rpb24oKTtcbiAgICAg\nICAgICAgIGlmIChzZWFyY2hUZXh0LnRyaW0oKSAhPT0gXCJcIikge1xuICAgICAgICAgICAgICB0\naGlzLmFkZFN1Z2dlc3Rpb25JdGVtKFxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlU3VnZ2Vz\ndGlvbkl0ZW0oe1xuICAgICAgICAgICAgICAgICAgc2VhcmNoVGV4dCxcbiAgICAgICAgICAgICAg\nICAgIHN1Z2dlc3Rpb25UZXh0OiBzZWFyY2hUZXh0LFxuICAgICAgICAgICAgICAgICAgaXNIaXN0\nb3J5OiB0cnVlXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIHN1Z2dlc3Rpb25MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAg\nICAgICAgICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gXCJzdWdcIikge1xuICAgICAgICAgICAgICAg\nIHRoaXMuYWRkU3VnZ2VzdGlvbkl0ZW0oXG4gICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVN1\nZ2dlc3Rpb25JdGVtKHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoVGV4dCxcbiAgICAgICAg\nICAgICAgICAgICAgc3VnZ2VzdGlvblRleHQ6IGl0ZW0ucSxcbiAgICAgICAgICAgICAgICAgICAg\naXNIaXN0b3J5OiBmYWxzZVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAp\nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAg\nIH0sIDUwKVxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorr7nva7mkJzntKLm\nlofmnKzlhoXlrrlcbiAgICAgKiBAcGFyYW0gdGV4dCDmkJzntKLlhbPplK7lrZdcbiAgICAgKiBA\ncGFyYW0gdHJpZ2dlckV2ZW50IOaYr+WQpuinpuWPkeS6i+S7tlxuICAgICAqIEBkZWZhdWx0IHRy\ndWVcbiAgICAgKlwvXG4gICAgc2V0SW5wdXRUZXh0KHRleHQsIHRyaWdnZXJFdmVudCA9IHRydWUp\nIHtcbiAgICAgIHRoaXMuJGVsLiRpbnB1dC52YWx1ZSA9IHRleHQ7XG4gICAgICBpZiAodHJpZ2dl\nckV2ZW50KSB7XG4gICAgICAgIHV0aWxzLmRpc3BhdGNoRXZlbnQodGhpcy4kZWwuJGlucHV0LCBc\nImlucHV0XCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiuvue9rui\/lOWb\nnuaMiemSrueCueWHu+S6i+S7tlxuICAgICAqXC9cbiAgICBzZXRCYWNrRXZlbnQoKSB7XG4gICAg\nICBkb211dGlscy5vbih0aGlzLiRlbC4kYmFjaywgXCJjbGlja1wiLCAoZXZlbnQpID0+IHtcbiAg\nICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLn\ngrnlh7vov5Tlm55cIik7XG4gICAgICAgIHRoaXMuaGlkZVRvb2xCYXIoKTtcbiAgICAgICAgUG9w\nc1BhbmVsLmV4ZWNNZW51KFxuICAgICAgICAgIFwiYmFpZHUtc2VhcmNoLWdsb2JhbC1zZWFyY2hU\nb29sQmFyLWdlc3R1cmUtYmFja1wiLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRo\naXMuJGRhdGEuZ2VzdHVyZUJhY2sucXVpdEdlc3R1cmVCYWNrTW9kZSgpO1xuICAgICAgICAgIH1c\nbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiuvue9rua4\nheepuuWbvuagh+eCueWHu+S6i+S7tlxuICAgICAqXC9cbiAgICBzZXRFbXB0eUV2ZW50KCkge1xu\nICAgICAgZG9tdXRpbHMub24odGhpcy4kZWwuJGVtcHR5LCBcImNsaWNrXCIsIChldmVudCkgPT4g\ne1xuICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLnNldElu\ncHV0VGV4dChcIlwiKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiuvue9\nruihqOWNleS6i+S7tlxuICAgICAqXC9cbiAgICBzZXRGb3JtRXZlbnQoKSB7XG4gICAgICBkb211\ndGlscy5vbih0aGlzLiRlbC4kZm9ybSwgXCJzdWJtaXRcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAg\nIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgIGxldCBzZWFyY2hUZXh0ID0gdGhp\ncy4kZWwuJGlucHV0LnZhbHVlO1xuICAgICAgICBsb2cuc3VjY2VzcyhcIuaPkOS6pOihqOWNlSDm\nkJzntKIgPT0+IFwiICsgc2VhcmNoVGV4dCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVm\nID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn1cL3M\/d29yZD0ke3NlYXJjaFRleHR9YDtcbiAg\nICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWIm+W7uuaQnOe0ouW7uuiuruWFg+e0\noOmhuVxuICAgICAqXC9cbiAgICBjcmVhdGVTdWdnZXN0aW9uSXRlbShjb25maWcpIHtcbiAgICAg\nIGxldCAkc3VnZ2VzdGlvbkl0ZW0gPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtc\nbiAgICAgICAgY2xhc3NOYW1lOiBcInNlYXJjaC1zdWdnZXN0aW9uLWl0ZW1cIixcbiAgICAgICAg\naW5uZXJIVE1MOiAoXG4gICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAgICAgIGBcbiAgICAgICAg\nICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtc3VnZ2VzdGlvbi1pdGVtLWxlZnQtaWNvblwiPlxuICAg\nICAgICAgICAgICAgIDxpIGNsYXNzPVwic2VhcmNoLWljb25cIj5cbiAgICAgICAgICAgICAgICAg\nICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249XCIxLjFcIiB4bWxucz1c\nImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAg\nICAgPHBhdGggZD1cIk00OTUuMjUgMzEwLjYyYy0xMDYuNjcgMC0xOTMuMTQgODYuNDctMTkzLjE0\nIDE5My4xNFMzODguNTggNjk2LjkgNDk1LjI1IDY5Ni45czE5My4xNC04Ni40NyAxOTMuMTQtMTkz\nLjE0LTg2LjQ4LTE5My4xNC0xOTMuMTQtMTkzLjE0eiBtMC02NC4zN2MxNDIuMjIgMCAyNTcuNTIg\nMTE1LjI5IDI1Ny41MiAyNTcuNTIgMCA1OS41MS0yMC4xOCAxMTQuMy01NC4wOCAxNTcuOWw2Ni45\nNiA2Ni43MmMxMi41OSAxMi41NSAxMi42MyAzMi45MyAwLjA4IDQ1LjUyLTEyLjU1IDEyLjU5LTMy\nLjkzIDEyLjYzLTQ1LjUyIDAuMDhsLTY3LjA1LTY2Ljc4Yy00My42MSAzMy44OS05OC40IDU0LjA4\nLTE1Ny45IDU0LjA4LTE0Mi4yMiAwLTI1Ny41Mi0xMTUuMjktMjU3LjUyLTI1Ny41MnMxMTUuMjkt\nMjU3LjUyIDI1Ny41MS0yNTcuNTJ6XCI+PFwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgPFwv\nc3ZnPlxuICAgICAgICAgICAgICAgIDxcL2k+XG4gICAgICAgICAgICA8XC9kaXY+XG4gICAgICAg\nICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXN1Z2dlc3Rpb24taXRlbS10ZXh0XCI+PFwvZGl2Plxu\nICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1zdWdnZXN0aW9uLWl0ZW0tcmlnaHQtaWNv\nblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwic2VhcmNoLWljb25cIj5cbiAgICAgICAg\nICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249XCIxLjFc\nIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPlxuICAgICAgICAgICAg\nICAgICAgICAgICAgPHBhdGggZD1cIk03NTUuNDk4NjY3IDI2OC41MDEzMzNhNDIuNjY2NjY3IDQy\nLjY2NjY2NyAwIDAgMSAwIDYwLjMzMDY2N0w0MDEuNjY0IDY4Mi42NjY2NjdINjQwYTQyLjY2NjY2\nNyA0Mi42NjY2NjcgMCAxIDEgMCA4NS4zMzMzMzNIMjk4LjY2NjY2N2E0Mi42NjY2NjcgNDIuNjY2\nNjY3IDAgMCAxLTQyLjY2NjY2Ny00Mi42NjY2NjdWMzg0YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAx\nIDEgODUuMzMzMzMzIDB2MjM4LjMzNmwzNTMuODM0NjY3LTM1My44MzQ2NjdhNDIuNjY2NjY3IDQy\nLjY2NjY2NyAwIDAgMSA2MC4zMzA2NjcgMHpcIj48XC9wYXRoPlxuICAgICAgICAgICAgICAgICAg\nICA8XC9zdmc+XG4gICAgICAgICAgICAgICAgPFwvaT5cbiAgICAgICAgICAgIDxcL2Rpdj5cbiAg\nICAgICAgICAgIGBcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgICBsZXQgJGxlZnRJY29uID0g\nJHN1Z2dlc3Rpb25JdGVtLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLnNlYXJjaC1zdWdnZXN0\naW9uLWl0ZW0tbGVmdC1pY29uXCJcbiAgICAgICk7XG4gICAgICBsZXQgJGxlZnRJY29uSSA9ICRs\nZWZ0SWNvbi5xdWVyeVNlbGVjdG9yKFwiLnNlYXJjaC1pY29uXCIpO1xuICAgICAgbGV0ICR0ZXh0\nID0gJHN1Z2dlc3Rpb25JdGVtLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLnNlYXJjaC1zdWdn\nZXN0aW9uLWl0ZW0tdGV4dFwiXG4gICAgICApO1xuICAgICAgbGV0ICRyaWdodEljb24gPSAkc3Vn\nZ2VzdGlvbkl0ZW0ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIuc2VhcmNoLXN1Z2dlc3Rpb24t\naXRlbS1yaWdodC1pY29uXCJcbiAgICAgICk7XG4gICAgICBpZiAoY29uZmlnLmlzSGlzdG9yeSkg\ne1xuICAgICAgICAkbGVmdEljb25JLmlubmVySFRNTCA9IFwvKmh0bWwqXC9cbiAgICAgICAgYFxu\nICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249XCIxLjFc\nIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHN0eWxlPVwiXG4gICAg\nICAgICAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xu\nICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk01MTIgMTE3LjMzMzMz\nM2MyMTcuOTYyNjY3IDAgMzk0LjY2NjY2NyAxNzYuNzA0IDM5NC42NjY2NjcgMzk0LjY2NjY2N1M3\nMjkuOTYyNjY3IDkwNi42NjY2NjcgNTEyIDkwNi42NjY2NjcgMTE3LjMzMzMzMyA3MjkuOTYyNjY3\nIDExNy4zMzMzMzMgNTEyIDI5NC4wMzczMzMgMTE3LjMzMzMzMyA1MTIgMTE3LjMzMzMzM3ogbTAg\nNjRDMzI5LjM4NjY2NyAxODEuMzMzMzMzIDE4MS4zMzMzMzMgMzI5LjM4NjY2NyAxODEuMzMzMzMz\nIDUxMmMwIDE4Mi42MTMzMzMgMTQ4LjA1MzMzMyAzMzAuNjY2NjY3IDMzMC42NjY2NjcgMzMwLjY2\nNjY2NyAxODIuNjEzMzMzIDAgMzMwLjY2NjY2Ny0xNDguMDUzMzMzIDMzMC42NjY2NjctMzMwLjY2\nNjY2NyAwLTE4Mi42MTMzMzMtMTQ4LjA1MzMzMy0zMzAuNjY2NjY3LTMzMC42NjY2NjctMzMwLjY2\nNjY2N3ogbTAgODUuMzMzMzM0YTMyIDMyIDAgMCAxIDMyIDMydjIwMC4wODUzMzNsMTE4LjYxMzMz\nMyAxMTguNjEzMzMzYTMyIDMyIDAgMCAxLTQ1LjIyNjY2NiA0NS4yNjkzMzRsLTEyOC0xMjhBMzIg\nMzIgMCAwIDEgNDgwIDUxMlYyOTguNjY2NjY3YTMyIDMyIDAgMCAxIDMyLTMyelwiPjxcL3BhdGg+\nXG4gICAgICAgICAgICA8XC9zdmc+XG4gICAgICAgICAgICBgO1xuICAgICAgfVxuICAgICAgbGV0\nIHNlYXJjaFRleHQgPSBjb25maWcuc3VnZ2VzdGlvblRleHQucmVwbGFjZUFsbChcbiAgICAgICAg\nY29uZmlnLnNlYXJjaFRleHQsXG4gICAgICAgIGA8ZW0+JHtjb25maWcuc2VhcmNoVGV4dH08XC9l\nbT5gXG4gICAgICApO1xuICAgICAgJHRleHQuaW5uZXJIVE1MID0gc2VhcmNoVGV4dDtcbiAgICAg\nIGRvbXV0aWxzLm9uKCRsZWZ0SWNvbiwgXCJjbGlja1wiLCAoZXZlbnQpID0+IHtcbiAgICAgICAg\ndXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgIH0pO1xuICAgICAgZG9tdXRpbHMub24o\nJHRleHQsIFwiY2xpY2tcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAgIHV0aWxzLnByZXZlbnRFdmVu\ndChldmVudCk7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRUZXh0KGNvbmZpZy5zdWdnZXN0aW9uVGV4\ndCwgZmFsc2UpO1xuICAgICAgICB0aGlzLiRlbC4kc3VibWl0LmNsaWNrKCk7XG4gICAgICB9KTtc\nbiAgICAgIGRvbXV0aWxzLm9uKCRyaWdodEljb24sIFwiY2xpY2tcIiwgKGV2ZW50KSA9PiB7XG4g\nICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgIHRoaXMuc2V0SW5wdXRU\nZXh0KGNvbmZpZy5zdWdnZXN0aW9uVGV4dCk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAkc3Vn\nZ2VzdGlvbkl0ZW07XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5riF6Zmk5pCc57Si5bu66K6u\nXG4gICAgICpcL1xuICAgIGNsZWFyU3VnZ2VzdGlvbigpIHtcbiAgICAgIHRoaXMuJGVsLiRzdWdn\nZXN0aW9uLmlubmVySFRNTCA9IFwiXCI7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5re75Yqg\n5pCc57Si5bu66K6uXG4gICAgICpcL1xuICAgIGFkZFN1Z2dlc3Rpb25JdGVtKCRlbGUpIHtcbiAg\nICAgIHRoaXMuJGVsLiRzdWdnZXN0aW9uLmFwcGVuZENoaWxkKCRlbGUpO1xuICAgIH1cbiAgfTtc\nbiAgY29uc3QgVXNlckN1c3RvbVN0eWxlID0ge1xuICAgIFwvKipcbiAgICAgKiDojrflj5bnlKjm\niLfoh6rlrprkuYnmoLflvI9cbiAgICAgKlwvXG4gICAgZ2V0VXNlclN0eWxlKCkge1xuICAgICAg\ncmV0dXJuIFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1LXNlYXJjaC11c2VyLXN0eWxlXCIsIFwi\nXCIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQmFpZHVTZWFyY2ggPSB7XG4gICAgYXN5bmMgaW5p\ndCgpIHtcbiAgICAgIGFkZFN0eWxlKFVzZXJDdXN0b21TdHlsZS5nZXRVc2VyU3R5bGUoKSk7XG4g\nICAgICBsb2cuaW5mbyhcIuaPkuWFpeeUqOaIt0NTU+inhOWImVwiKTtcbiAgICAgIEJhaWR1U2Vh\ncmNoQmxvY2tSdWxlLmluaXQoKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlk\ndS1zZWFyY2gtZ2xvYmFsLXNlYXJjaFRvb2xCYXJcIiwgKCkgPT4ge1xuICAgICAgICBCYWlkdVNl\nYXJjaFRvb2xCYXIuaW5pdCgpO1xuICAgICAgfSk7XG4gICAgICBpZiAoQmFpZHVSb3V0ZXIuaXNT\nZWFyY2hCaCgpKSB7XG4gICAgICAgIEJhaWR1SGVhZGx0aC5pbml0KCk7XG4gICAgICB9IGVsc2Ug\naWYgKEJhaWR1Um91dGVyLmlzU2VhcmNoVmlkZW8oKSkge1xuICAgICAgICBCYWlkdVNlYXJjaFZp\nZGVvLmluaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIEJhaWR1U2VhcmNoSG9vay5pbml0\nKCk7XG4gICAgICAgIGFkZFN0eWxlKFNlYXJjaFNoaWVsZENTUyk7XG4gICAgICAgIGxvZy5pbmZv\nKFwi5o+S5YWlQ1NT6KeE5YiZXCIpO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJiYWlk\ndV9zZWFyY2hfaGlqYWNrX19vbkNsaWNrX3RvX2JsYW5rXCIsICgpID0+IHtcbiAgICAgICAgICB0\naGlzLm9wZW5SZXN1bHRCbGFuaygpO1xuICAgICAgICB9KTtcbiAgICAgICAgZG9tdXRpbHMucmVh\nZHkoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgQmFpZHVIYW5kbGVSZXN1bHRJdGVtLm9yaWdpblVS\nTE1hcCA9IEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5wYXJzZVNjcmlwdERPTU9yaWdpblVybE1hcChk\nb2N1bWVudCk7XG4gICAgICAgICAgbGV0IGJhaWR1X3NlYXJjaF9oYW5kbGVfc2VhcmNoX3Jlc3Vs\ndF9lbmFibGUgPSBQb3BzUGFuZWwuZ2V0VmFsdWUoXG4gICAgICAgICAgICBcImJhaWR1X3NlYXJj\naF9oYW5kbGVfc2VhcmNoX3Jlc3VsdFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoYmFp\nZHVfc2VhcmNoX2hhbmRsZV9zZWFyY2hfcmVzdWx0X2VuYWJsZSkge1xuICAgICAgICAgICAgbGV0\nIHNlYXJjaFVwZGF0ZVJlYWxMaW5rID0gbmV3IHV0aWxzLkxvY2tGdW5jdGlvbihhc3luYyAoKSA9\nPiB7XG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgQmFpZHVIYW5k\nbGVSZXN1bHRJdGVtLnJlcGxhY2VMaW5rKCk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9y\nKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKFtcIuabv+aNouS4uuecn+WunumTvuaOpeWk\nsei0pVwiLCBlcnJvcl0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCA2MDApO1xu\nICAgICAgICAgICAgbGV0IHJlbW92ZUFkc0xvY2tGdW5jdGlvbiA9IG5ldyB1dGlscy5Mb2NrRnVu\nY3Rpb24oXG4gICAgICAgICAgICAgIEJhaWR1SGFuZGxlUmVzdWx0SXRlbS5yZW1vdmVBZHMsXG4g\nICAgICAgICAgICAgIDYwMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHV0aWxzLndhaXRO\nb2RlKFwiZGl2I3BhZ2Uuc2VhcmNoLXBhZ2VcIikudGhlbigoZWxlbWVudCkgPT4ge1xuICAgICAg\nICAgICAgICB1dGlscy5tdXRhdGlvbk9ic2VydmVyKGVsZW1lbnQsIHtcbiAgICAgICAgICAgICAg\nICBjYWxsYmFjazogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGJhaWR1X3Nl\nYXJjaF9oYW5kbGVfc2VhcmNoX3Jlc3VsdF9lbmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAg\nYXdhaXQgc2VhcmNoVXBkYXRlUmVhbExpbmsucnVuKCk7XG4gICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICByZW1vdmVBZHNMb2NrRnVuY3Rpb24ucnVuKCk7XG4gICAgICAgICAg\nICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgIGNo\naWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWVcbiAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAg\nICBpZiAoYmFpZHVfc2VhcmNoX2hhbmRsZV9zZWFyY2hfcmVzdWx0X2VuYWJsZSkge1xuICAgICAg\nICAgICAgICBzZWFyY2hVcGRhdGVSZWFsTGluay5ydW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgIHJlbW92ZUFkc0xvY2tGdW5jdGlvbi5ydW4oKTtcbiAgICAgICAgICB9XG4gICAgICAg\nICAgdXRpbHMud2FpdE5vZGVMaXN0KFxuICAgICAgICAgICAgXCJzdHlsZVtjbGFzc149J3ZzZWFy\nY2gtc2lnbWEtc3R5bGUnXVwiXG4gICAgICAgICAgKS50aGVuKChub2RlTGlzdCkgPT4ge1xuICAg\nICAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5Yig6Zmkc2lnbWHnmoRDU1NcIiwgbm9kZUxpc3RdKTtc\nbiAgICAgICAgICAgIG5vZGVMaXN0LmZvckVhY2goKGl0ZW0pID0+IGl0ZW0ucmVtb3ZlKCkpO1xu\nICAgICAgICAgIH0pO1xuICAgICAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcImJhaWR1X3NlYXJj\naF9yZWRpcmVjdF90b3BfbGlua1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBCYWlkdUhhbmRsZVJl\nc3VsdEl0ZW0ucmVkaXJlY3RUb3BMaW5rKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgQmFp\nZHVIYW5kbGVSZXN1bHRJdGVtLnJlcGxhY2VTY3JpcHRCYWlEdVRpcCgpO1xuICAgICAgICAgIFBv\ncHNQYW5lbC5leGVjTWVudShcImJhaWR1X3NlYXJjaF9yZWZhY3RvcmluZ19pbnB1dF9ib3hlc1wi\nLCAoKSA9PiB7XG4gICAgICAgICAgICBTZWFyY2hJbnB1dEV2ZW50LmluaXQoKTtcbiAgICAgICAg\nICB9KTtcbiAgICAgICAgICBpZiAoUG9wc1BhbmVsLmdldFZhbHVlKFwiYmFpZHVfc2VhcmNoX2F1\ndG9tYXRpY2FsbHlfZXhwYW5kX25leHRfcGFnZVwiKSkge1xuICAgICAgICAgICAgU2VhcmNoTmV4\ndFBhZ2UuaW5pdCgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoUG9wc1BhbmVsLmdldFZhbHVlKFxu\nICAgICAgICAgICAgXCJiYWlkdV9zZWFyY2hfYXV0b21hdGljYWxseV9jbGlja19vbl90aGVfbmV4\ndF9wYWdlX3dpdGhfc2VhcmNoY3JhZnRfdWFcIlxuICAgICAgICAgICkpIHtcbiAgICAgICAgICAg\nIFNlYXJjaE5leHRQYWdlX1NlYXJjaENyYWZ0LmluaXQoKTtcbiAgICAgICAgICB9XG4gICAgICAg\nICAgaWYgKEJhaWR1Um91dGVyLmlzU2VhcmNoVlNlYXJjaCgpKSB7XG4gICAgICAgICAgICBCYWlk\ndVNlYXJjaFZTZWFyY2guaW5pdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9\nXG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5paw5qCH562+6aG15omT5byAXG4gICAgICpcL1xu\nICAgIG9wZW5SZXN1bHRCbGFuaygpIHtcbiAgICAgIGZ1bmN0aW9uIGdsb2JhbFJlc3VsdENsaWNr\nRXZlbnQoZXZlbnQpIHtcbiAgICAgICAgbGV0IHVybCA9IG51bGw7XG4gICAgICAgIGxldCAkY2xp\nY2sgPSBldmVudC5jb21wb3NlZFBhdGgoKVswXTtcbiAgICAgICAgbGV0ICRyZXN1bHQgPSBldmVu\ndC50YXJnZXQ7XG4gICAgICAgIGlmICgkY2xpY2spIHtcbiAgICAgICAgICBpZiAoJGNsaWNrLmNs\nb3Nlc3QoXCJhXCIpKSB7XG4gICAgICAgICAgICBsZXQgJGxpbmsgPSAkY2xpY2suY2xvc2VzdChc\nImFcIik7XG4gICAgICAgICAgICBpZiAodXRpbHMuaXNOb3ROdWxsKCRsaW5rLmhyZWYpKSB7XG4g\nICAgICAgICAgICAgIGxvZy5pbmZvKFtcbiAgICAgICAgICAgICAgICBcIumTvuaOpeadpeiHquS4\niuWxgmHlhYPntKBcIixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBldmVu\ndCxcbiAgICAgICAgICAgICAgICAgICRjbGljayxcbiAgICAgICAgICAgICAgICAgICRsaW5rXG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgdXJsID0g\nJGxpbmsuaHJlZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCRjbGljay5j\nbG9zZXN0KFwiW3JsLWxpbmstaHJlZl1cIikpIHtcbiAgICAgICAgICAgIGxldCAkcmxMaW5rRGl2\nID0gJGNsaWNrLmNsb3Nlc3QoXCJbcmwtbGluay1ocmVmXVwiKTtcbiAgICAgICAgICAgIGxldCBy\nbExpbmtIcmVmID0gJHJsTGlua0Rpdi5nZXRBdHRyaWJ1dGUoXCJybC1saW5rLWhyZWZcIik7XG4g\nICAgICAgICAgICBpZiAodXRpbHMuaXNOb3ROdWxsKHJsTGlua0hyZWYpKSB7XG4gICAgICAgICAg\nICAgIGxvZy5pbmZvKFtcbiAgICAgICAgICAgICAgICBcIumTvuaOpeadpeiHquS4iuWxguWQq+ac\niVtybC1saW5rLWhyZWZd5bGe5oCn55qE5YWD57SgXCIsXG4gICAgICAgICAgICAgICAge1xuICAg\nICAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgICAgICAkY2xpY2ssXG4gICAgICAg\nICAgICAgICAgICAkcmxMaW5rRGl2XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBd\nKTtcbiAgICAgICAgICAgICAgdXJsID0gcmxMaW5rSHJlZjtcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0ICRhcnRpY2xlID0gJHJlc3Vs\ndC5xdWVyeVNlbGVjdG9yKFwiYXJ0aWNsZVwiKTtcbiAgICAgICAgICB1cmwgPSAkYXJ0aWNsZS5n\nZXRBdHRyaWJ1dGUoXCJybC1saW5rLWhyZWZcIik7XG4gICAgICAgICAgbG9nLmluZm8oW1xuICAg\nICAgICAgICAgXCLpk77mjqXmnaXoh6rpobblsYLlkJHkuIvlr7vmib5hcnRpY2xl5YWD57SgXCIs\nXG4gICAgICAgICAgICB7IGV2ZW50LCAkcmVzdWx0LCAkYXJ0aWNsZSB9XG4gICAgICAgICAgXSk7\nXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHV0aWxzLmlzTnVsbCh1cmwpKSB7XG4gICAgICAgICAg\nbG9nLmluZm8oW1wi5pyq5om+5Yiw5pyJ5pWI6ZO+5o6lXCIsIHsgZXZlbnQsIHVybCwgJHJlc3Vs\ndCwgJGNsaWNrIH1dKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdXRp\nbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5paw5qCH562+\n6aG15omT5byALeadpeiHqmNsaWNr5LqL5Lu2XCIsIHVybF0pO1xuICAgICAgICB3aW5kb3cub3Bl\nbih1cmwsIFwiX2JsYW5rXCIpO1xuICAgICAgfVxuICAgICAgZG9tdXRpbHMub24oZG9jdW1lbnQs\nIFwiY2xpY2tcIiwgXCIuYy1yZXN1bHQucmVzdWx0XCIsIGdsb2JhbFJlc3VsdENsaWNrRXZlbnQs\nIHtcbiAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBjb25z\ndCBTZWFyY2hIb21lU2hpZWxkQ1NTID0gXCJcIjtcbiAgY29uc3QgU2VhcmNoSG9tZU1pbmlmaWNh\ndGlvblNoaWVsZENTUyA9IFwiaHRtbCxcXHJcXG5ib2R5LFxcclxcbmRpdiNoZWFkZXIge1xcclxc\nbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTIwcHgpO1xcclxcbn1cXHJcXG5mb3JtI2luZGV4LWZv\ncm0ge1xcclxcbiAgcG9zaXRpb246IHN0YXRpYztcXHJcXG4gIHRvcDogMDtcXHJcXG4gIHJpZ2h0\nOiAwO1xcclxcbiAgYm90dG9tOiAwO1xcclxcbiAgbGVmdDogMDtcXHJcXG4gIG1hcmdpbjogYXV0\nbyAhaW1wb3J0YW50O1xcclxcbiAgd2lkdGg6IDkwJTtcXHJcXG59XFxyXFxuZGl2I25hdnMgfiBk\naXYsXFxyXFxuI2xvZ2luLXdyYXBzLFxcclxcbmEuc3F1YXJlLWVudGVyYW5jZSxcXHJcXG5kaXYj\ndHMtaW1hZ2UtdXBsb2FkZXItaWNvbixcXHJcXG5kaXYuYmFpZHVhcHBjYWxsLXdyYXAgZGl2LnZv\naWNlLmNhbGwsXFxyXFxuZGl2LnRhYl9uZXdzLFxcclxcbmRpdiNuYXZzIHtcXHJcXG4gIGRpc3Bs\nYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXC8qIOWbvueJh2xvZ2\/lvoDkuIvnp7s0\nMHB4ICpcL1xcclxcbiNsb2dvIHtcXHJcXG4gIHBhZGRpbmctdG9wOiA0MHB4O1xcclxcbn1cXHJc\nXG5cIjtcbiAgY29uc3QgQmFpZHVTZWFyY2hIb21lID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBh\nZGRTdHlsZShTZWFyY2hIb21lU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT\n6KeE5YiZXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3NlYXJjaF9o\nb21lX2hvbWVwYWdlX21pbmlmaWNhdGlvblwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlz\nLmhvbWVwYWdlTWluaWZpY2F0aW9uKCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDnsr7nroDkuLvpobVcbiAgICAgKlwvXG4gICAgaG9tZXBhZ2VNaW5pZmljYXRpb24oKSB7\nXG4gICAgICBsb2cuaW5mbyhcIuaPkuWFpeeyvueugOS4u+mhtUNTU+inhOWImVwiKTtcbiAgICAg\nIHJldHVybiBhZGRTdHlsZShTZWFyY2hIb21lTWluaWZpY2F0aW9uU2hpZWxkQ1NTKTtcbiAgICB9\nXG4gIH07XG4gIGNvbnN0IEJhaUppYUhhb1NoaWVsZENTUyA9IFwiLmxheWVyLXdyYXAsXFxyXFxu\nLm9wZW5JbWcsXFxyXFxuLm9QYWRkaW5nLFxcclxcbi5ib3R0b21UVFNTdHJ1Y3QsXFxyXFxuLnVu\nZGVmaW5lZCxcXHJcXG4uaGVhZERlZmxlY3RvckNvbnRhaW5lcixcXHJcXG4uZm9sbG93U3VwZXIs\nXFxyXFxuI3NlYXJjaHdvcmRTZGssXFxyXFxuZGl2I2NvbW1lbnRNb2R1bGUgPiBkaXYgPiBkaXYg\nPiBzcGFuOm50aC1jaGlsZCgyKSxcXHJcXG5cLyog6aG26YOo5omT5byAQVBQ5qiq5bmFICpcL1xc\nclxcbiNoZWFkRGVmbGVjdG9yQ29udGFpbmVyLFxcclxcblwvKiDlsZXlvIDlhajmlocgKlwvXFxy\nXFxuLmZvbGRNYXNrV3JhcHBlciB7XFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxy\nXFxufVxcclxcbmJvZHkuc2Nyb2xsSGlkZSB7XFxyXFxuICBvdmVyZmxvdzogYXV0byAhaW1wb3J0\nYW50O1xcclxcbn1cXHJcXG4ubWFpbkNvbnRlbnQsXFxyXFxuI21haW5Db250ZW50Q29udGFpbmVy\nIHtcXHJcXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG5cIjtcbiAgY29u\nc3QgQmFpSmlhSGFvSG9vayA9IHtcbiAgICBpbml0KCkge1xuICAgICAgUG9wc1BhbmVsLmV4ZWNN\nZW51KFwiYmFpamlhaGFvX2hpamFja193YWtldXBcIiwgKCkgPT4ge1xuICAgICAgICBsb2cuc3Vj\nY2VzcyhcImhvb2s6IEZ1bmN0aW9uLnByb3BlcnR5LmNhbGxcIik7XG4gICAgICAgIEJhaWR1SG9v\nay5mdW5jdGlvbkNhbGwoXCJiYWlqaWFoYW9faW52b2tlXCIpO1xuICAgICAgfSk7XG4gICAgICBQ\nb3BzUGFuZWwuZXhlY01lbnUoXCJiYWlkdV9iYWlqaWFoYW9faGlqYWNrX2lmcmFtZVwiLCAoKSA9\nPiB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiaG9vazogRWxlbWVudC5hcHBlbmRcIik7XG4gICAg\nICAgIEJhaWR1SG9vay5lbGVtZW50QXBwZW5kQ2hpbGQoZnVuY3Rpb24oZWxlbWVudCkge1xuICAg\nICAgICAgIHZhciBfYTM7XG4gICAgICAgICAgaWYgKGVsZW1lbnQubG9jYWxOYW1lID09PSBcInNj\ncmlwdFwiICYmICgoX2EzID0gZWxlbWVudCA9PSBudWxsID8gdm9pZCAwIDogZWxlbWVudC5zcmMp\nID09IG51bGwgPyB2b2lkIDAgOiBfYTMuaW5jbHVkZXMoXCJsYW5kaW5nLXNoYXJlXCIpKSkge1xu\nICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLpmLvmraLliqDovb3vvJpcIiArIGVsZW1lbnQuc3Jj\nKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4g\nICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcImJhaWR1X2JhaWppYWhhb19oaWph\nY2tfb3BlbmJveFwiLCAoKSA9PiB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiaG9vazogd2luZG93\nLkJveFwiKTtcbiAgICAgICAgQmFpZHVIb29rLndpbmRvd09wZW5Cb3goKTtcbiAgICAgIH0pO1xu\nICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfYmFpamlhaGFvX2hpamFja19vcGVuQ29u\ndGVudEJveFwiLCAoKSA9PiB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiaG9vazogd2luZG93Lm9w\nZW5Db250ZW50Qm94XCIpO1xuICAgICAgICBCYWlkdUhvb2sud2luZG93X29wZW5Db250ZW50Qm94\nKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaWR1QmFpSmlhSGFvID0ge1xu\nICAgIGluaXQoKSB7XG4gICAgICBhZGRTdHlsZShCYWlKaWFIYW9TaGllbGRDU1MpO1xuICAgICAg\nbG9nLmluZm8oXCLmj5LlhaVDU1Pop4TliJlcIik7XG4gICAgICBCYWlKaWFIYW9Ib29rLmluaXQo\nKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlqaWFoYW9fc2hpZWxkX3JlY29t\nbWVuZGVkX2FydGljbGVcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRSZWNv\nbW1lbmRBcnRpY2xlKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2Uo\nXCJiYWlqaWFoYW9fc2hpZWxkX3VzZXJfY29tbWVudFwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVy\nbiB0aGlzLnNoaWVsZFVzZXJDb21tZW50KCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5l\neGVjTWVudU9uY2UoXCJiYWlqaWFoYW9fc2hpZWxkX3VzZXJfY29tbWVudF9pbnB1dF9ib3hcIiwg\nKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRCb3R0b21Ub29sQmFyKCk7XG4gICAg\nICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDjgJDlsY\/olL3jgJHmjqjojZDmlofnq6Bc\nbiAgICAgKlwvXG4gICAgc2hpZWxkUmVjb21tZW5kQXJ0aWNsZSgpIHtcbiAgICAgIGxvZy5pbmZv\nKFwi44CQ5bGP6JS944CR5o6o6I2Q5paH56ugXCIpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAg\nQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAgICAgICBcIi5pbmZpbml0ZS1zY3JvbGwtY29t\ncG9uZW50X19vdXRlcmRpdlwiLFxuICAgICAgICAgIFwiZGl2I3BhZ2Vfd3JhcHBlciA+IGRpdiA+\nIGRpdjpudGgtY2hpbGQoNSlcIixcbiAgICAgICAgICBcImRpdjpoYXMoKyAuaW5maW5pdGUtc2Ny\nb2xsLWNvbXBvbmVudF9fb3V0ZXJkaXYpXCIsXG4gICAgICAgICAgXC8qIOeUteiEkeerr+eahOW3\npui+ueeahOaMiemSri3lsY\/olL0gKlwvXG4gICAgICAgICAgXCIjc3NyLWNvbnRlbnQgPiA6bGFz\ndC1jaGlsZFwiLFxuICAgICAgICAgIFwvKiDnlLXohJHnq6\/nmoTlj7PovrnnmoTmjqjojZAt5bGP\n6JS9ICpcL1xuICAgICAgICAgIFwiI3Nzci1jb250ZW50ID4gZGl2Om50aC1jaGlsZCgyKSA+IGRp\ndjpudGgtY2hpbGQoMSkgPiBkaXY6bnRoLWNoaWxkKDIpXCJcbiAgICAgICAgKSxcbiAgICAgICAg\nYWRkU3R5bGUoXG4gICAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgICAgYFxuXHRcdFx0XC8qIOeU\nteiEkeerr+eahOaWh+eroOWxheS4rSAqXC9cblx0XHRcdCNzc3ItY29udGVudCA+IGRpdjpudGgt\nY2hpbGQoMikgPiBkaXY6bnRoLWNoaWxkKDEpID4gZGl2Om50aC1jaGlsZCgxKSB7XG5cdFx0XHRc\ndHdpZHRoOiA1NSUgIWltcG9ydGFudDtcblx0XHRcdH1gXG4gICAgICAgICksXG4gICAgICAgIFwv\nKiDmn5Dkupvmg4XlhrXkuIvnmoRDU1MgKlwvXG4gICAgICAgIENvbW1vblV0aWwuYWRkQmxvY2tD\nU1MoXG4gICAgICAgICAgJyNwYWdlX3dyYXBwZXIgPiBkaXYub3RoZXIgPiBkaXZbY2xhc3M9XCJc\nIl06bnRoLWNoaWxkKDQpJ1xuICAgICAgICApLFxuICAgICAgICBcLyog566A5Y2VVUEm6ZO+5o6l\n5Y+C5pWwd2ZyPXNwaWRl5LiL55qE57K+5b2p5o6o6I2QICpcL1xuICAgICAgICBDb21tb25VdGls\nLmFkZEJsb2NrQ1NTKFxuICAgICAgICAgICcjcGFnZV93cmFwcGVyIGRpdi5zcGlkZXIgPiBkaXZb\nY2xhc3M9XCJcIl06bnRoLWNoaWxkKDQpJyxcbiAgICAgICAgICAncGFnZV93cmFwcGVyIGRpdi5z\ncGlkZXIgPiBkaXZbY2xhc3M9XCJcIl06bnRoLWNoaWxkKDUpJ1xuICAgICAgICApLFxuICAgICAg\nICBcLyogR2Vja2\/nmoTnroDljZVVQeS4i+eahOeyvuW9qeaOqOiNkCAqXC9cbiAgICAgICAgQ29t\nbW9uVXRpbC5hZGRCbG9ja0NTUygnI3BhZ2Vfd3JhcHBlciAuc2VhcmNoQ3JhZnQgPiBkaXZbY2xh\nc3M9XCJcIl0nKVxuICAgICAgXTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDjgJDlsY\/olL3j\ngJHnlKjmiLfor4TorrpcbiAgICAgKlwvXG4gICAgc2hpZWxkVXNlckNvbW1lbnQoKSB7XG4gICAg\nICBsb2cuaW5mbyhcIuOAkOWxj+iUveOAkeeUqOaIt+ivhOiuulwiKTtcbiAgICAgIHJldHVybiBD\nb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiI2NvbW1lbnRNb2R1bGVcIik7XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog44CQ5bGP6JS944CR5bqV6YOo5oKs5rWu5bel5YW35qCPXG4gICAgICpcL1xu\nICAgIHNoaWVsZEJvdHRvbVRvb2xCYXIoKSB7XG4gICAgICBsb2cuaW5mbyhcIuOAkOWxj+iUveOA\nkeW6lemDqOaCrOa1ruW3peWFt+agj1wiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJs\nb2NrQ1NTKFwiZGl2I3dpc2UtaW52b2tlLWludGVyYWN0LWJhclwiKTtcbiAgICB9XG4gIH07XG4g\nIGNvbnN0IFRpZUJhU2hpZWxkQ1NTID0gXCIudGItYmFja2Zsb3ctZGVmZW5zaXZlLFxcclxcbi5m\naXhlZC1uYXYtYmFyLWRlZmVuc2l2ZSxcXHJcXG4ucG9zdC1jdXQtZ3VpZGUsXFxyXFxuLmVydGlh\nby13cmFwLWRlZmVuc2l2ZSxcXHJcXG4uZmVlZC13YXJwLmdyYXktYmFja2dyb3VuZCxcXHJcXG4u\ncGItcGFnZS13cmFwcGVyLmFwcC12aWV3LnRyYW5zaXRpb24tZmFkZSBuYXY6Zmlyc3QtY2hpbGQs\nXFxyXFxuLm9ubHktbHosXFxyXFxuLm5hdi1iYXItdjIgLm5hdi1iYXItYm90dG9tLFxcclxcbi5t\nb3JlLWltYWdlLWRlc2MsXFxyXFxuLmZlbmdjaGFvLWJhbm5lci1kZWZlbnNpdmUsXFxyXFxuXC8q\nLndha2UtYXBwLCpcL1xcclxcbi5iYW5uZXItd3JhcHBlci1kZWZlbnNpdmUsXFxyXFxuLm9wZW4t\nYXBwLFxcclxcbi50b3BpYy1zaGFyZS1wYWdlLXYyIC5iYXYtYmFyLXRvcCxcXHJcXG5cLyog5omT\n5byAQVBQ5p+l55yL5pu05aSa6K+E6K66ICpcL1xcclxcbi5jbXQtbGFyZ2UtY3V0LWd1aWRlLFxc\nclxcblwvKiDlupXpg6jor4Torrrmu5rliqjmoI8gKlwvXFxyXFxuZGl2LmRpeS1ndWlkZS13cmFw\ncGVyLFxcclxcblwvKiDlupXpg6jor4Torrrmu5rliqjmoI\/kuIrpnaLnmoTnqbrnmb0gKlwvXFxy\nXFxuLmluZGl2aWR1YWxpdHksXFxyXFxuXC8qIOWQp+WGheeahOW5v+WRiiAqXC9cXHJcXG4udGIt\ndGhyZWFkbGlzdF9fd3JhcHBlciAudGItYmFubmVyLXdyYXBwZXItZGVmZW5zaXZlLFxcclxcblwv\nKiDpppbpobUt5oiR55qELeW6lemDqOeahCDlubTovbvkurrnmoTmva7mtYHmlofljJbnpL7ljLog\nKlwvXFxyXFxuLmFwcC12aWV3IC50Yi1pbmRleC1uYXZiYXIgLmJvdHRvbS1ndWlkZS1ib3guYm90\ndG9tLWd1aWRlLWJveCAuZGVzYyxcXHJcXG5cLyog6aaW6aG1LeaIkeeahC3lupXpg6jnmoQg56uL\n5Y2z5LiL6L29ICpcL1xcclxcbi5hcHAtdmlldyAudGItaW5kZXgtbmF2YmFyIC5ib3R0b20tZ3Vp\nZGUtYm94LmJvdHRvbS1ndWlkZS1ib3ggLmRvd25sb2FkLWJ0bixcXHJcXG5cLyog5biW5a2Q5YaF\n6aKE6KeI5Zu+54mH5qih5byP5LiL5bqV6YOo55qE5omT5byAQXBw5p+l55yL6auY5riF5aSn5Zu+\nICpcL1xcclxcbi5pbWctcHJldmlldyAub3BlcmF0ZSAud2FrZS1hcHAge1xcclxcblx0ZGlzcGxh\neTogbm9uZSAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG5ib2R5LnRiLW1vZGFsLW9wZW4ge1xcclxc\nblx0b3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IFVu\naVRpZUJhU2hpZWxkQ1NTID0gXCJcLyog54Ot6Zeo5o6o6I2Q44CB55u45YWz5o6o6I2QICpcL1xc\nclxcbnVuaS1hcHAgLnJlY29tLWxheW91dC1jb250YWluZXIsXFxyXFxuXC8qIOeDremXqOaOqOiN\nkOOAgeebuOWFs+aOqOiNkCAqXC9cXHJcXG51bmktYXBwICNwYlJlY29tQ29udGFpbmVyLFxcclxc\nblwvKiDnjJzkvaDov5jmg7PmkJzvvIjmoIfpopjvvIkgKlwvXFxyXFxudW5pLWFwcCAuZ3Vlc3Mt\ndGl0bGUsXFxyXFxuXC8qIOeMnOS9oOi\/mOaDs+aQnCAqXC9cXHJcXG51bmktYXBwIC5ndWVzcy1j\nb250YWluZXIsXFxyXFxuXC8qIOW6lemDqOW3peWFt+agjyDmnaXotLTlkKfnlYXkuqvnsr7lvanl\nhoXlrrkgKlwvXFxyXFxudW5pLWFwcCAub3BlcmF0aW9uLWNoYXQsXFxyXFxuXC8qIOWbvueJh+WP\ns+a7keacgOWQjuS4gOS4qiDmnaXotLTlkKfnlYXkuqvnsr7lvanlhoXlrrkgKlwvXFxyXFxudW5p\nLWFwcCAucGljLXBvcHVwLWd1aWRlLXRpdGxlLFxcclxcblwvKiDlm77niYflj7Pmu5HmnIDlkI7k\nuIDkuKog5LiL6Z2i55qE5oyJ6ZKuIOaJk+W8gEFQUCAqXC9cXHJcXG51bmktYXBwIC5vcGVyYXRl\nLWdyb3VwIC53YWtlLWFwcDpoYXMoLmV4dGVybmFsLWJ0bi1jbGFzcyksXFxyXFxuXC8qIOmhtumD\nqOWPs+S4iuinkueahCBBcHDlhoXmn6XnnIsgKlwvXFxyXFxudW5pLWFwcCAub3BlcmF0ZS1idG4t\nd2FrZSB7XFxyXFxuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcblxcclxc\nblwvKiDor4TorrrlhoXlrrnpq5jluqYgKlwvXFxyXFxudW5pLWFwcCAuc3dpcGVyLWNvbnRlbnQg\ne1xcclxcblx0bWF4LWhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXFxyXFxu\nXC8qIOiwg+aVtOmhtumDqG5hdmJhcueahOagt+W8jyAqXC9cXHJcXG51bmktYXBwIC5uYXYtYmFy\nLWZpeGVkIHtcXHJcXG5cdHBhZGRpbmc6IDIwcHggMHB4ICFpbXBvcnRhbnQ7XFxyXFxufVxcclxc\nblwiO1xuICBjb25zdCBUaWViYVRvcGljID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBQb3BzUGFu\nZWwuZXhlY01lbnUoXCJiYWlkdV90aWViYV90b3BpY19yZWRpcmVjdF9qdW1wXCIsICgpID0+IHtc\nbiAgICAgICAgVGllYmFUb3BpYy5yZWRpcmVjdEp1bXAoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOmHjeWumuWQkei3s+i9rFxuICAgICAqXC9cbiAgICByZWRpcmVjdEp1\nbXAoKSB7XG4gICAgICBsb2cuaW5mbyhcIuivnemimOeDreamnC3pmLvmraLpu5jorqTot7Povaxc\nIik7XG4gICAgICBkb211dGlscy5vbihcbiAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgIFwiY2xp\nY2tcIixcbiAgICAgICAgXCIudG9waWMtc2hhcmUtaXRlbVwiLFxuICAgICAgICBmdW5jdGlvbihl\ndmVudCkge1xuICAgICAgICAgIHZhciBfYTM7XG4gICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50\nKGV2ZW50KTtcbiAgICAgICAgICB3aW5kb3cgPT0gbnVsbCA\/IHZvaWQgMCA6IHdpbmRvdy5zdG9w\nKCk7XG4gICAgICAgICAgbGV0IGNsaWNrTm9kZSA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICBs\nZXQgcGlkID0gKF9hMyA9IFZ1ZVV0aWxzLmdldFZ1ZShjbGlja05vZGUpKSA9PSBudWxsID8gdm9p\nZCAwIDogX2EzLml0ZW0udGlkO1xuICAgICAgICAgIGxldCB1cmwgPSBUaWViYVVybEFwaS5nZXRQ\nb3N0KHBpZCk7XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoYOi3s+i9rOiHszogJHt1cmx9YCk7XG4g\nICAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1X3RpZWJhX3RvcGljX29wZW5B\nTmV3VGFiXCIpKSB7XG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xu\nICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwpO1xuICAgICAg\nICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAg\nICAgICAgICBjYXB0dXJlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9O1xu\nICBjb25zdCBUaWViYUh5YnJpZCA9IHtcbiAgICBpbml0KCkge1xuICAgICAgdGhpcy5ibG9ja0Fk\ncygpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfdGllYmFfaHlicmlkX3NlYXJj\naF9vcGVuQU5ld1RhYlwiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkFOZXdUYWIoKTtcbiAg\nICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveW5v+WRilxuICAgICAqXC9c\nbiAgICBibG9ja0FkcygpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIENvbW1vblV0aWwuYWRk\nQmxvY2tDU1MoXG4gICAgICAgICAgXC8qIOmhtumDqOaoquW5hSAqXC9cbiAgICAgICAgICBcIi50\nYi1pbmRleC1uYXZiYXIgLmZpeC1uYXYtZ3VpZGUtYmFyXCIsXG4gICAgICAgICAgXC8qIOW6lemD\nqOeahOeZvuW6pui0tOWQp2FwcOWGheaJk+W8gCAqXC9cbiAgICAgICAgICBcIi50Yi1pbmRleC1u\nYXZiYXIgZGl2OmhhcyguZml4LW5hdi1iYXItYm90dG9tKVwiXG4gICAgICAgICksXG4gICAgICAg\nIGFkZFN0eWxlKFxuICAgICAgICAgIFwvKmNzcypcL1xuICAgICAgICAgIGBcblx0XHRcdFwvKiDm\niorkuIvpnaLnmoTlhoXlrrnlvoDkuIrnp7sgKlwvXG5cdFx0XHQjYXBwX2NvbnRhaW5lciB1bC5u\nYXZiYXItYm94e1xuXHRcdFx0XHR0b3A6IDBweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFx0\nXC8qIOaKiuS4i+mdoueahOWGheWuueW+gOS4iuenuyAqXC9cblx0XHRcdCNhcHBfY29udGFpbmVy\nIC5uYXZiYXItdmlld3tcblx0XHRcdFx0cGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O1xuXHRc\ndFx0fSBcblx0XHQgIFx0YFxuICAgICAgICApXG4gICAgICBdO1xuICAgIH0sXG4gICAgXC8qKlxu\nICAgICAqIOaWsOagh+etvumhteaJk+W8gFxuICAgICAqXC9cbiAgICBvcGVuQU5ld1RhYigpIHtc\nbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgXCJjbGlja1wi\nLFxuICAgICAgICBcIi5zY3JvbGwtbGlzdC13cmFwcGVyIC50aHJlYWRjYXJkY2xhc3NcIixcbiAg\nICAgICAgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICB2YXIgX2EzO1xuICAgICAgICAgIHV0\naWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgICAgbGV0IGNsaWNrTm9kZSA9IGV2ZW50\nLnRhcmdldDtcbiAgICAgICAgICBsZXQgdGlkID0gKF9hMyA9IFZ1ZVV0aWxzLmdldFZ1ZShjbGlj\na05vZGUpKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnRpZDtcbiAgICAgICAgICBpZiAodXRpbHMu\naXNOdWxsKHRpZCkpIHtcbiAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bluJblrZDnmoR0\naWTlpLHotKVcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAg\nIHdpbmRvdy5vcGVuKFRpZWJhVXJsQXBpLmdldFBvc3QodGlkKSwgXCJfYmxhbmtcIik7XG4gICAg\nICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjYXB0dXJlOiB0cnVlXG4gICAgICAgIH1cbiAg\nICAgICk7XG4gICAgfVxuICB9O1xuICBjb25zdCBUaWViYUJhTmVpID0ge1xuICAgIFwvKipcbiAg\nICAgKiBfX3Z1ZV9fXG4gICAgICpcL1xuICAgIHZ1ZVJvb3RWaWV3OiBudWxsLFxuICAgIGluaXQo\nKSB7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJiYWlkdV90aWViYV9vcGVuQU5ld1RhYlwi\nLCAoKSA9PiB7XG4gICAgICAgIHRoaXMub3BlbkFOZXdUYWIoKTtcbiAgICAgIH0pO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfdGllYmFfcmVtZW1iZXJfdXNlcl9wb3N0X3NvcnRc\nIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbWVtYmVyUG9zdFNvcnQoKTtcbiAgICAgIH0pO1xu\nICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfdGllYmFfZmlsdGVyRHVwbGljYXRlUG9z\ndHNcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLmZpbHRlckR1cGxpY2F0ZVBvc3RzKCk7XG4gICAg\nICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcImJhaWR1X3RpZWJhX3JlbW92ZUZvcnVt\nU2lnbkluTGltaXRcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUZvcnVtU2lnbkluTGlt\naXQoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOino+mZpOetvuWIsOmZ\nkOWItlxuICAgICAqXC9cbiAgICByZW1vdmVGb3J1bVNpZ25JbkxpbWl0KCkge1xuICAgICAgdXRp\nbHMud2FpdE5vZGUoXCIudGItbW9iaWxlLXZpZXdwb3J0XCIpLnRoZW4oYXN5bmMgKCkgPT4ge1xu\nICAgICAgICB2YXIgX2EzLCBfYjtcbiAgICAgICAgVGllYmFCYU5laS52dWVSb290VmlldyA9IFZ1\nZVV0aWxzLmdldFZ1ZShcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnRiLW1v\nYmlsZS12aWV3cG9ydFwiKVxuICAgICAgICApO1xuICAgICAgICBsZXQgaXNMb2dpbiA9IEJvb2xl\nYW4oKF9iID0gKF9hMyA9IFRpZWJhQmFOZWkudnVlUm9vdFZpZXcpID09IG51bGwgPyB2b2lkIDAg\nOiBfYTNbXCJ1c2VyXCJdKSA9PSBudWxsID8gdm9pZCAwIDogX2JbXCJpc19sb2dpblwiXSk7XG4g\nICAgICAgIHV0aWxzLndhaXROb2RlKFwiLnRiLWZvcnVtLXVzZXJfX2pvaW4tYnRuXCIpLnRoZW4o\nKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICBpZiAoaXNMb2dpbikge1xuICAgICAgICAgICAgZWxl\nbWVudC5jaGlsZHJlblswXS5pbm5lclRleHQgPSBcIueCueWHu+etvuWIsFwiO1xuICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuWzBdLmlubmVyVGV4dCA9IFwi\n54K55Ye755m75b2VXCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5zdWNjZXNzKFwi5L+u\n5pS56aG16Z2i5Lit55qEQVBQ5YaF562+5YiwXCIpO1xuICAgICAgICAgIGRvbXV0aWxzLm9uKFxu\nICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIFwiY2xpY2tcIixcbiAgICAgICAgICAg\nIGFzeW5jIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICAgIHV0aWxzLnByZXZlbnRFdmVu\ndChldmVudCk7XG4gICAgICAgICAgICAgIGlmIChpc0xvZ2luKSB7XG4gICAgICAgICAgICAgICAg\nVGllYmFCYU5laS52dWVSb290Vmlld1tcInVzZXJcIl1bXCJwb3J0cmFpdFwiXTtcbiAgICAgICAg\nICAgICAgICBsZXQgZm9ydW1OYW1lID0gVGllYmFCYU5laS52dWVSb290Vmlld1tcImZvcnVtXCJd\nW1wibmFtZVwiXTtcbiAgICAgICAgICAgICAgICBsZXQgdGJzID0gVGllYmFCYU5laS52dWVSb290\nVmlld1tcIiRzdG9yZVwiXVtcInN0YXRlXCJdW1wiY29tbW9uXCJdW1widGJzXCJdO1xuICAgICAg\nICAgICAgICAgIGxldCBzaWduUmVzdWx0ID0gYXdhaXQgVGllQmFBcGkuZm9ydW1TaWduKGZvcnVt\nTmFtZSwgdGJzKTtcbiAgICAgICAgICAgICAgICBpZiAoc2lnblJlc3VsdCAmJiB0eXBlb2Ygc2ln\nblJlc3VsdFtcImRhdGFcIl0gPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgICAgICAgIFFt\nc2cuc3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgYOS7iuaXpeacrOWQp+esrCR7c2lnblJl\nc3VsdFtcImRhdGFcIl1bXCJmaW5mb1wiXVtcImN1cnJlbnRfcmFua19pbmZvXCJdW1wic2lnbl9j\nb3VudFwiXX3kuKrnrb7liLBgXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBRbXNnLmVycm9yKHNpZ25SZXN1bHQgPT0gbnVs\nbCA\/IHZvaWQgMCA6IHNpZ25SZXN1bHRbXCJlcnJvclwiXSk7XG4gICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFRpZWJhQmFOZWkudnVlUm9v\ndFZpZXdbXCJpc1Nob3dNb2RhbFwiXSA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAg\nICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOaWsOagh+etvumhteaJk+W8gFxuICAgICAqXC9cbiAgICBvcGVuQU5l\nd1RhYigpIHtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1bWVudCxcbiAgICAgICAg\nXCJjbGlja1wiLFxuICAgICAgICBcImRpdi50Yi10aHJlYWRsaXN0X19pdGVtXCIsXG4gICAgICAg\nIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgdmFyIF9hMywgX2I7XG4gICAgICAgICAgdXRp\nbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICBsZXQgdnVlT2JqID0gVnVlVXRpbHMu\nZ2V0VnVlKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgbGV0IHBiVXJsID0gdnVlT2JqID09IG51\nbGwgPyB2b2lkIDAgOiB2dWVPYmoucGJVcmw7XG4gICAgICAgICAgbGV0IHRpZCA9ICh2dWVPYmog\nPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZU9iai50aWQpID8\/ICgoX2EzID0gdnVlT2JqID09IG51bGwg\nPyB2b2lkIDAgOiB2dWVPYmoudGhyZWFkKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnRpZCk7XG4g\nICAgICAgICAgbGV0IGlkID0gKHZ1ZU9iaiA9PSBudWxsID8gdm9pZCAwIDogdnVlT2JqLmlkKSA\/\nPyAoKF9iID0gdnVlT2JqID09IG51bGwgPyB2b2lkIDAgOiB2dWVPYmoudGhyZWFkKSA9PSBudWxs\nID8gdm9pZCAwIDogX2IuaWQpO1xuICAgICAgICAgIGxldCBuZXdVcmwgPSBcIlwiO1xuICAgICAg\nICAgIGlmIChwYlVybCkge1xuICAgICAgICAgICAgbmV3VXJsID0gd2luZG93LmxvY2F0aW9uLm9y\naWdpbiArIHBiVXJsO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGlkIHx8IGlkKSB7XG4gICAgICAg\nICAgICBuZXdVcmwgPSBUaWViYVVybEFwaS5nZXRQb3N0KHRpZCA\/PyBpZCk7XG4gICAgICAgICAg\nfSBlbHNlIHtcbiAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bluJblrZDpk77mjqXlpLHo\ntKVcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5p\nbmZvKFwi5biW5a2Q6ZO+5o6lOiBcIiArIG5ld1VybCk7XG4gICAgICAgICAgd2luZG93Lm9wZW4o\nbmV3VXJsLCBcIl9ibGFua1wiKTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNh\ncHR1cmU6IHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDorrDkvY\/lvZPliY3nlKjmiLfnmoTnnIvluJbmjpLluo9cbiAgICAgKiArIC0xIOS4jeefpemB\nk+S7gOS5iOS9nOeUqFxuICAgICAqICsgMSAg5LiN55+l6YGT5LuA5LmI5L2c55SoXG4gICAgICog\nKyAyICDlm57lpI1cbiAgICAgKiArIDMgIOWPkeW4g1xuICAgICAqXC9cbiAgICByZW1lbWJlclBv\nc3RTb3J0KCkge1xuICAgICAgbGV0IHVzZXJTb3J0TW9kZWwgPSBwYXJzZUludChcbiAgICAgICAg\nUG9wc1BhbmVsLmdldFZhbHVlKFwiYmFpZHUtdGllYmEtc29ydC1tb2RlbFwiLCAzKS50b1N0cmlu\nZygpXG4gICAgICApO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIudGItcGFnZV9fbWFpbiAudGIt\nc29ydCAudGFiLXBhY2tcIikudGhlbigoZWxlbWVudCkgPT4ge1xuICAgICAgICB2YXIgX2EzO1xu\nICAgICAgICBsZXQgb3JpZ2luQ2hhbmdlID0gKF9hMyA9IFZ1ZVV0aWxzLmdldFZ1ZShlbGVtZW50\nKSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5jaGFuZ2U7XG4gICAgICAgIG9yaWdpbkNoYW5nZSh1\nc2VyU29ydE1vZGVsKTtcbiAgICAgICAgZWxlbWVudC5fX3Z1ZV9fLmNoYW5nZSA9IGZ1bmN0aW9u\nKGluZGV4KSB7XG4gICAgICAgICAgUG9wc1BhbmVsLnNldFZhbHVlKFwiYmFpZHUtdGllYmEtc29y\ndC1tb2RlbFwiLCBpbmRleCk7XG4gICAgICAgICAgb3JpZ2luQ2hhbmdlKGluZGV4KTtcbiAgICAg\nICAgfTtcbiAgICAgICAgbG9nLmluZm8oXCLms6jlhaXorrDkvY\/lvZPliY3pgInmi6nnmoTnnIvl\nuJbmjpLluo9cIik7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDov4fmu6Tp\nh43lpI3luJblrZBcbiAgICAgKlwvXG4gICAgZmlsdGVyRHVwbGljYXRlUG9zdHMoKSB7XG4gICAg\nICBWdWVVdGlscy53YWl0VnVlUHJvcFRvU2V0KFwiLnRiLXRocmVhZGxpc3RcIiwgW1xuICAgICAg\nICB7XG4gICAgICAgICAgbXNnOiBcIuetieW+heiOt+WPliR3YXRjaOebkeWQrOW4luWtkOWIl+ih\nqFwiLFxuICAgICAgICAgIGNoZWNrKHZ1ZU9iaikge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVv\nZiAodnVlT2JqID09IG51bGwgPyB2b2lkIDAgOiB2dWVPYmouJHdhdGNoKSA9PT0gXCJmdW5jdGlv\nblwiO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0KHZ1ZU9iaikge1xuICAgICAgICAgICAg\nbG9nLnN1Y2Nlc3MoXCLnm5HlkKzluJblrZDmlbDph4\/mlLnlj5hcIik7XG4gICAgICAgICAgICB2\ndWVPYmouJHdhdGNoKFxuICAgICAgICAgICAgICBcImxpc3RcIixcbiAgICAgICAgICAgICAgZnVu\nY3Rpb24obmV3VmFsLCBvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICBsb2cuc3VjY2VzcyhcIuW4\nluWtkOaVsOmHj+inpuWPkeaUueWPmFwiKTtcbiAgICAgICAgICAgICAgICBsZXQgcG9zdHNNYXAg\nPSB7fTtcbiAgICAgICAgICAgICAgICBsZXQgc2FtZVBvc3RMaXN0ID0gW107XG4gICAgICAgICAg\nICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuJHByb3BzLmxpc3QubGVuZ3Ro\nOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgcG9zdHNJbmZvID0gdGhpcy4kcHJv\ncHMubGlzdFtpbmRleF07XG4gICAgICAgICAgICAgICAgICBpZiAoIXBvc3RzSW5mby5pZCkge1xu\nICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgIGlmIChwb3N0c0luZm8uaWQgaW4gcG9zdHNNYXApIHtcbiAgICAgICAgICAg\nICAgICAgICAgc2FtZVBvc3RMaXN0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHRpdGxl\nOiBwb3N0c0luZm8udGl0bGUgPz8gXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICBpZDogcG9z\ndHNJbmZvLmlkLFxuICAgICAgICAgICAgICAgICAgICAgIGluZGV4XG4gICAgICAgICAgICAgICAg\nICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAg\ncG9zdHNNYXBbcG9zdHNJbmZvLmlkXSA9IGluZGV4O1xuICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc2FtZVBvc3RMaXN0Lmxlbmd0aCkg\ne1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cocG9zdHNNYXApO1xuICAgICAgICAgICAg\nICAgICAgY29uc29sZS5sb2coc2FtZVBvc3RMaXN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSBzYW1lUG9zdExpc3QubGVuZ3RoIC0gMTsgaW5k\nZXggPj0gMDsgaW5kZXgtLSkge1xuICAgICAgICAgICAgICAgICAgbGV0IHJlbW92ZVBvc3RJbmZv\nID0gc2FtZVBvc3RMaXN0W2luZGV4XTtcbiAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcihcIuen\nu+mZpOmHjeWkjeW4luWtkO+8mlwiICsgcmVtb3ZlUG9zdEluZm8udGl0bGUpO1xuICAgICAgICAg\nICAgICAgICAgdGhpcy4kcHJvcHMubGlzdC5zcGxpY2UocmVtb3ZlUG9zdEluZm8uaW5kZXgsIDEp\nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xu\nICAgICAgICAgICAgICAgIGRlZXA6IHRydWUsXG4gICAgICAgICAgICAgICAgaW1tZWRpYXRlOiB0\ncnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAg\nICB9XG4gICAgICBdKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IFRpZWJhQ29yZSA9IHtcbiAgICBc\nLyoqXG4gICAgICog5Lyq6KOF5a6i5oi356uv5bey6LCD55SoXG4gICAgICpcL1xuICAgIGNsaWVu\ndENhbGxNYXNxdWVyYWRlKCkge1xuICAgICAgbGV0IG9yaWdpbkdldEl0ZW0gPSBfdW5zYWZlV2lu\nZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtO1xuICAgICAgX3Vuc2FmZVdpbmRvdy5sb2NhbFN0b3Jh\nZ2UuZ2V0SXRlbSA9IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICBpZiAoa2V5ID09PSBcInBfd19h\ncHBfY2FsbFwiIHx8IGtleSA9PT0gXCJwX3dfbGF1bmNoYXBwY2FsbFwiIHx8IGtleSA9PT0gXCJs\nb2dpbldha2VNb2RhbFwiKSB7XG4gICAgICAgICAgbG9nLmluZm8oXCLkvKroo4XlrqLmiLfnq6\/l\nt7LosIPnlKggXCIgKyBrZXkpO1xuICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4g\nICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgIGRhdGU6IHV0aWxzLmZvcm1hdFRpbWUo\ndm9pZCAwLCBcInl5eXlNTWRkXCIpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAo\na2V5LnN0YXJ0c1dpdGgoXCJwX3dfbmV3X3NsaWVudFwiKSB8fCBrZXkuc3RhcnRzV2l0aChcImZf\nd19zbGllbnRcIikgfHwga2V5LnN0YXJ0c1dpdGgoXCJmX3dfcG9wX3NsaWVudFwiKSB8fCBrZXku\nc3RhcnRzV2l0aChcImZfd19mbG9vclwiKSB8fCBrZXkuc3RhcnRzV2l0aChcInRfd19zbGllbnRc\nIikgfHwga2V5LnN0YXJ0c1dpdGgoXCJ0X3dfcG9wX3NsaWVudFwiKSB8fCBrZXkuc3RhcnRzV2l0\naChcImF1dG9fc2xpZW50X3dha2V1cFwiKSB8fCBrZXkuc3RhcnRzV2l0aChcImluZGV4X2hvbWVf\ndGhyZWFkX2d1aWRlLVwiKSB8fCBrZXkuc3RhcnRzV2l0aChcInNlYXJjaF93X3BvcF9zbGllbnQt\nXCIpKSB7XG4gICAgICAgICAgbG9nLmluZm8oXCLkvKroo4XlrqLmiLfnq6\/lt7LosIPnlKggXCIg\nKyBrZXkpO1xuICAgICAgICAgIHJldHVybiBcIjFcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAg\nICAgICByZXR1cm4gb3JpZ2luR2V0SXRlbS5jYWxsKHdpbmRvdy5sb2NhbFN0b3JhZ2UsIGtleSk7\nXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBsZXQgbWFzcXVlcmFkZVBhcmFtc0xpc3QgPSBb\nXG4gICAgICAgIFwicF93X25ld19zbGllbnRfXCIsXG4gICAgICAgIFwiZl93X3NsaWVudF9cIixc\nbiAgICAgICAgXCJmX3dfcG9wX3NsaWVudF9cIixcbiAgICAgICAgXCJmX3dfZmxvb3JfXCIsXG4g\nICAgICAgIFwidF93X3NsaWVudF9cIixcbiAgICAgICAgXCJ0X3dfcG9wX3NsaWVudF9cIixcbiAg\nICAgICAgXCJhdXRvX3NsaWVudF93YWtldXBfXCIsXG4gICAgICAgIFwiaW5kZXhfaG9tZV90aHJl\nYWRfZ3VpZGUtXCIsXG4gICAgICAgIFwic2VhcmNoX3dfcG9wX3NsaWVudC1cIlxuICAgICAgXTtc\nbiAgICAgIG1hc3F1ZXJhZGVQYXJhbXNMaXN0LmZvckVhY2goKG1hc3F1ZXJhZGVQYXJhbSkgPT4g\ne1xuICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgICAgbWFzcXVl\ncmFkZVBhcmFtICsgdXRpbHMuZm9ybWF0VGltZSh2b2lkIDAsIFwieXl5eS1NTS1kZFwiKSxcbiAg\nICAgICAgICBcIjFcIlxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBsZXQgbWFzcXVlcmFk\nZVBhcmFtc0xpc3QyID0gW1wiYXV0b19zbGllbnRfd2FrZV9cIl07XG4gICAgICBtYXNxdWVyYWRl\nUGFyYW1zTGlzdDIuZm9yRWFjaCgobWFzcXVlcmFkZVBhcmFtKSA9PiB7XG4gICAgICAgIHdpbmRv\ndy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICBtYXNxdWVyYWRlUGFyYW0gKyB1dGls\ncy5mb3JtYXRUaW1lKHZvaWQgMCwgXCJ5eXl5LU1NLWRkXCIpLFxuICAgICAgICAgIEpTT04uc3Ry\naW5naWZ5KHtcbiAgICAgICAgICAgIHR5cGU6IFwibnVtYmVyXCIsXG4gICAgICAgICAgICBkYXRh\nOiAxXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgZm9yIChsZXQg\naW5kZXggPSAwOyBpbmRleCA8IHdpbmRvdy5sb2NhbFN0b3JhZ2UubGVuZ3RoOyBpbmRleCsrKSB7\nXG4gICAgICAgIGxldCBrZXlOYW1lID0gd2luZG93LmxvY2FsU3RvcmFnZS5rZXkoaW5kZXgpO1xu\nICAgICAgICBbLi4ubWFzcXVlcmFkZVBhcmFtc0xpc3QsIC4uLm1hc3F1ZXJhZGVQYXJhbXNMaXN0\nMl0uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmIChrZXlOYW1lLnN0YXJ0c1dpdGgo\naXRlbSkgJiYgIWtleU5hbWUuZW5kc1dpdGgodXRpbHMuZm9ybWF0VGltZSh2b2lkIDAsIFwieXl5\neS1NTS1kZFwiKSkpIHtcbiAgICAgICAgICAgIGxvZy5zdWNjZXNzKFwi5Yig6Zmk6L+H5pyf6ZSu\nID09PT4gXCIgKyBrZXlOYW1lKTtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVt\nb3ZlSXRlbShrZXlOYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAg\nIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WPluacrOW4lualvOS4u+eahOS\/oeaBr1xuICAgICAq\nXC9cbiAgICBnZXRMYW5kbG9yZEluZm8oKSB7XG4gICAgICB2YXIgX2EzLCBfYiwgX2M7XG4gICAg\nICByZXR1cm4gKF9jID0gKF9iID0gKF9hMyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAg\nICAgIFwiLm1haW4tcGFnZS13cmFwIC51c2VyLWxpbmUtd3JhcHBlci50aHJlYWQtdXNlci1saW5l\nXCJcbiAgICAgICkpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuX192dWVfXykgPT0gbnVsbCA\/IHZv\naWQgMCA6IF9iLiRwcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLmF1dGhvcjtcbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDojrflj5blvZPliY3nmoTotLTlkKflkI3lrZdcbiAgICAgKlwvXG4g\nICAgZ2V0Q3VycmVudEZvcnVtTmFtZSgpIHtcbiAgICAgIHZhciBfYTMsIF9iLCBfYywgX2QsIF9l\nLCBfZiwgX2csIF9oLCBfaSwgX2o7XG4gICAgICBsZXQgdGJNb2JpbGVWaWV3cG9ydCA9IChfYiA9\nIChfYTMgPSBWdWVVdGlscy5nZXRWdWUoXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io\nXCIudGItbW9iaWxlLXZpZXdwb3J0XCIpXG4gICAgICApKSA9PSBudWxsID8gdm9pZCAwIDogX2Ez\nLmZvcnVtKSA9PSBudWxsID8gdm9pZCAwIDogX2IubmFtZTtcbiAgICAgIGxldCBtYWluUGFnZVdy\nYXAgPSAoX2YgPSAoX2UgPSAoX2QgPSAoX2MgPSBWdWVVdGlscy5nZXRWdWUoXG4gICAgICAgIGRv\nY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubWFpbi1wYWdlLXdyYXBcIilcbiAgICAgICkpID09IG51\nbGwgPyB2b2lkIDAgOiBfYy4kY2hpbGRyZW5bMF0pID09IG51bGwgPyB2b2lkIDAgOiBfZC4kY2hp\nbGRyZW5bMF0pID09IG51bGwgPyB2b2lkIDAgOiBfZS5mb3J1bSkgPT0gbnVsbCA\/IHZvaWQgMCA6\nIF9mLm5hbWU7XG4gICAgICBsZXQgdGJGb3J1bSA9IChfaCA9IChfZyA9IFZ1ZVV0aWxzLmdldFZ1\nZShcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi50Yi1tb2JpbGUtdmlld3BvcnQg\nLnRiLWZvcnVtXCIpXG4gICAgICApKSA9PSBudWxsID8gdm9pZCAwIDogX2cuZm9ydW0pID09IG51\nbGwgPyB2b2lkIDAgOiBfaC5uYW1lO1xuICAgICAgbGV0IGFwcFZpZXcgPSAoX2ogPSAoX2kgPSBW\ndWVVdGlscy5nZXRWdWUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAtdmlld1wiKSkpID09\nIG51bGwgPyB2b2lkIDAgOiBfaS5mb3J1bSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9qLm5hbWU7XG4g\nICAgICBsZXQgJHVuaUFwcFBvc3ROYXZCYXJGb3J1bU5hbWUgPSBkb2N1bWVudC5xdWVyeVNlbGVj\ndG9yKFxuICAgICAgICBcInVuaS1hcHAgLm5hdi1iYXIgLmZvcnVtLW5hbWVcIlxuICAgICAgKTtc\nbiAgICAgIGxldCB1bmlBcHBQb3N0TmF2QmFyRm9ydW1OYW1lID0gKCR1bmlBcHBQb3N0TmF2QmFy\nRm9ydW1OYW1lID09IG51bGwgPyB2b2lkIDAgOiAkdW5pQXBwUG9zdE5hdkJhckZvcnVtTmFtZS50\nZXh0Q29udGVudCkgfHwgXCJcIjtcbiAgICAgIHVuaUFwcFBvc3ROYXZCYXJGb3J1bU5hbWUgPSB1\nbmlBcHBQb3N0TmF2QmFyRm9ydW1OYW1lLnJlcGxhY2UoXC\/lkKckXC9nLCBcIlwiKTtcbiAgICAg\nIHJldHVybiB0Yk1vYmlsZVZpZXdwb3J0IHx8IG1haW5QYWdlV3JhcCB8fCB0YkZvcnVtIHx8IGFw\ncFZpZXcgfHwgdW5pQXBwUG9zdE5hdkJhckZvcnVtTmFtZTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDojrflj5blvZPliY3nmoTotLTlkKfnmoRpZFxuICAgICAqXC9cbiAgICBnZXRDdXJyZW50\nRm9ydW1JZCgpIHtcbiAgICAgIHZhciBfYTMsIF9iLCBfYywgX2Q7XG4gICAgICBsZXQgdGJNb2Jp\nbGVWaWV3cG9ydCA9IChfYiA9IChfYTMgPSBWdWVVdGlscy5nZXRWdWUoXG4gICAgICAgIGRvY3Vt\nZW50LnF1ZXJ5U2VsZWN0b3IoXCIudGItbW9iaWxlLXZpZXdwb3J0XCIpXG4gICAgICApKSA9PSBu\ndWxsID8gdm9pZCAwIDogX2EzLmZvcnVtKSA9PSBudWxsID8gdm9pZCAwIDogX2IuaWQ7XG4gICAg\nICBsZXQgYXBwVmlldyA9IChfZCA9IChfYyA9IFZ1ZVV0aWxzLmdldFZ1ZShkb2N1bWVudC5xdWVy\neVNlbGVjdG9yKFwiLmFwcC12aWV3XCIpKSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLmZvcnVtKSA9\nPSBudWxsID8gdm9pZCAwIDogX2QuaWQ7XG4gICAgICByZXR1cm4gdGJNb2JpbGVWaWV3cG9ydCB8\nfCBhcHBWaWV3O1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WPluW9k+WJjeW4luWtkOea\nhHRpZFxuICAgICAqXC9cbiAgICBnZXRDdXJyZW50Rm9ydW1Qb3N0VGlkKCkge1xuICAgICAgdmFy\nIF9hMywgX2IsIF9jO1xuICAgICAgbGV0IHRpZCA9IG51bGw7XG4gICAgICBsZXQgYXBwVmlld1Z1\nZSA9IFZ1ZVV0aWxzLmdldFZ1ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmFwcC12aWV3XCIp\nKTtcbiAgICAgIGlmICgoKF9hMyA9IGFwcFZpZXdWdWUgPT0gbnVsbCA\/IHZvaWQgMCA6IGFwcFZp\nZXdWdWUudGhyZWFkKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmlkKSAhPT0gXCJcIiAmJiAoKF9i\nID0gYXBwVmlld1Z1ZSA9PSBudWxsID8gdm9pZCAwIDogYXBwVmlld1Z1ZS50aHJlYWQpID09IG51\nbGwgPyB2b2lkIDAgOiBfYi5pZCkgIT0gbnVsbCkge1xuICAgICAgICB0aWQgPSBhcHBWaWV3VnVl\nLnRocmVhZC5pZC50b1N0cmluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGlkID0gKF9j\nID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLm1hdGNoKFwvKFswLTldKylcL2cpKSA9PSBudWxs\nID8gdm9pZCAwIDogX2NbMF07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGlkO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOa3u+WKoOa7muWKqOWIsOmhtumDqOaMiemSrlxuICAgICAqXC9cbiAg\nICBhZGRTY3JvbGxUb3BCdXR0b24oKSB7XG4gICAgICBsb2cuc3VjY2VzcyhcIua3u+WKoOa7muWK\nqOWIsOmhtumDqOaMiemSrlwiKTtcbiAgICAgIGxldCBpc0luc2VydEJ1dHRvbiA9IGZhbHNlO1xu\nICAgICAgbGV0IHNob3dTY3JvbGxUb3BCdXR0b24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaXNJ\nbnNlcnRCdXR0b24gPSB0cnVlO1xuICAgICAgICBsZXQgYnV0dG9uRWxlbWVudCA9IGRvbXV0aWxz\nLnBhcnNlSFRNTChcbiAgICAgICAgICBcLypodG1sKlwvXG4gICAgICAgICAgYFxuXHRcdFx0XHQ8\nZGl2IGNsYXNzPVwidGItdG90b3Agd2hpdGVzZXYtdGItdG90b3BcIj5cblx0XHRcdFx0PHN0eWxl\nPlxuXHRcdFx0XHRcdC53aGl0ZXNldi10Yi10b3RvcHtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBm\naXhlZDtcblx0XHRcdFx0XHRcdHJpZ2h0OiAuMDlyZW07XG5cdFx0XHRcdFx0XHRib3R0b206IDFy\nZW07XG5cdFx0XHRcdFx0XHR6LWluZGV4OiAxMDAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQu\nd2hpdGVzZXYtdGItdG90b3AgLnRiLXRvdG9wX19zcGFue1xuXHRcdFx0XHRcdFx0ZGlzcGxheTog\naW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0d2lkdGg6IC41MXJlbTtcblx0XHRcdFx0XHRcdGhl\naWdodDogLjUxcmVtO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQud2hpdGVzZXYtdGItdG90b3Ag\nLnRiLXRvdG9wX19zdmd7XG5cdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRcdGhl\naWdodDogMTAwJTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0PFwvc3R5bGU+XG5cdFx0XHRcdFx0\nPHNwYW4gY2xhc3M9XCJ0Yi10b3RvcF9fc3BhblwiPlxuXHRcdFx0XHRcdFx0PHN2ZyBjbGFzcz1c\nInRiLXRvdG9wX19zdmdcIj5cblx0XHRcdFx0XHRcdFx0PGcgaWQ9XCJpY29uX2Zyc190b3BfNTBf\n6aG16Z2iLTFcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGw9XCJub25l\nXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuXHRcdFx0XHRcdFx0XHRcdDxnIGlkPVwiaWNvbl9m\ncnNfdG9wXzUwX+e8lue7hFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgtMS4wMDAwMDAsIC0xLjAw\nMDAwMClcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxyZWN0IGlkPVwiaWNvbl9mcnNfdG9wXzUwX+ef\nqeW9olwiIHN0cm9rZT1cIiM5Nzk3OTdcIiBzdHJva2Utd2lkdGg9XCIwLjVcIiBmaWxsPVwiI0ZG\nRkZGRlwiIG9wYWNpdHk9XCIwLjM4NDE3NTAzN1wiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyNi4w\nMDAwMDAsIDI2LjAwMDAwMCkgcm90YXRlKDQ1LjAwMDAwMCkgdHJhbnNsYXRlKC0yNi4wMDAwMDAs\nIC0yNi4wMDAwMDApIFwiIHg9XCI4LjI1XCIgeT1cIjguMjVcIiB3aWR0aD1cIjM1LjVcIiBoZWln\naHQ9XCIzNS41XCIgcng9XCI4XCI+PFwvcmVjdD5cblx0XHRcdFx0XHRcdFx0XHRcdDxwb2x5bGlu\nZSBpZD1cImljb25fZnJzX3RvcF81MF\/ot6\/lvoRcIiBzdHJva2U9XCIjMTQxNDE0XCIgc3Ryb2tl\nLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1c\nInJvdW5kXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDI2LjAwMDAwMCwgMjguMDAwMDAwKSByb3Rh\ndGUoLTQ1LjAwMDAwMCkgdHJhbnNsYXRlKC0yNi4wMDAwMDAsIC0yOC4wMDAwMDApIFwiIHBvaW50\ncz1cIjIxIDIzIDMwLjI5Mjg5MzIgMjMuNzA3MTA2OCAzMSAzM1wiPjxcL3BvbHlsaW5lPlxuXHRc\ndFx0XHRcdFx0XHRcdDxcL2c+XG5cdFx0XHRcdFx0XHRcdDxcL2c+XG5cdFx0XHRcdFx0XHQ8XC9z\ndmc+XG5cdFx0XHRcdFx0PFwvc3Bhbj5cblx0XHRcdFx0PFwvZGl2PmAsXG4gICAgICAgICAgdHJ1\nZSxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgICAgICBkb211dGlscy5vbihidXR0\nb25FbGVtZW50LCBcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHdpbmRvdy5zY3Jv\nbGxUbyh7XG4gICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAg\nICAgICAgYmVoYXZpb3I6IFwic21vb3RoXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4g\nICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYnV0dG9uRWxlbWVudCk7XG4gICAgICB9\nO1xuICAgICAgbGV0IGhpZGVTY3JvbGxUb3BCdXR0b24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAg\ndmFyIF9hMztcbiAgICAgICAgaXNJbnNlcnRCdXR0b24gPSBmYWxzZTtcbiAgICAgICAgKF9hMyA9\nIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIud2hpdGVzZXYtdGItdG90b3BcIikpID09IG51bGwg\nPyB2b2lkIDAgOiBfYTMucmVtb3ZlKCk7XG4gICAgICB9O1xuICAgICAgbGV0IGNoZWNrU2Nyb2xs\nID0gbmV3IHV0aWxzLkxvY2tGdW5jdGlvbihcbiAgICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAg\nICAgbGV0IHNjcm9sbFRvcCA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs\nVG9wIHx8IHdpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDtcbiAgICAgICAgICBsZXQgc2Ny\nb2xsSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVu\ndC5jbGllbnRIZWlnaHQgfHwgd2luZG93LmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0O1xuICAg\nICAgICAgIGlmIChzY3JvbGxUb3AgPiBzY3JvbGxIZWlnaHQgKiAyKSB7XG4gICAgICAgICAgICBp\nZiAoIWlzSW5zZXJ0QnV0dG9uKSB7XG4gICAgICAgICAgICAgIHNob3dTY3JvbGxUb3BCdXR0b24o\nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGlkZVNj\ncm9sbFRvcEJ1dHRvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdGhpcyxc\nbiAgICAgICAgNTBcbiAgICAgICk7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNj\ncm9sbFwiLCBjaGVja1Njcm9sbC5ydW4pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOa3u+WK\noOmhtumDqOeahOalvOS4u+WktOWDj1wv5ZCN5a2X55qE54K55Ye75LqL5Lu2LeebtOaOpei\/m+WF\npealvOS4u+eahOS4quS6uuS4u+mhtVxuICAgICAqXC9cbiAgICBhZGRBdXRob3JDbGlja0V2ZW50\nKCkge1xuICAgICAgdXRpbHMud2FpdE5vZGUoXG4gICAgICAgIFwiZGl2Lm1haW4tcGFnZS13cmFw\nIC5tYWluLXRocmVhZC1jb250ZW50IC51c2VyLWxpbmVcIlxuICAgICAgKS50aGVuKChlbGVtZW50\nKSA9PiB7XG4gICAgICAgIGxvZy5pbmZvKFwi5re75Yqg6aG26YOo55qE5qW85Li75aS05YOPXC\/l\nkI3lrZfnmoTngrnlh7vkuovku7Yt55u05o6l6L+b5YWl5qW85Li755qE5Liq5Lq65Li76aG1XCIp\nO1xuICAgICAgICBkb211dGlscy5vbihlbGVtZW50LCBcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xu\nICAgICAgICAgIGxldCB2dWVJbmZvID0gVnVlVXRpbHMuZ2V0VnVlKGVsZW1lbnQucGFyZW50RWxl\nbWVudCkgfHwgVnVlVXRpbHMuZ2V0VnVlKGVsZW1lbnQuY2xvc2VzdChcIi51c2VyLWxpbmUtd3Jh\ncHBlclwiKSk7XG4gICAgICAgICAgbGV0IGF1dGhvckluZm8gPSB2dWVJbmZvID09IG51bGwgPyB2\nb2lkIDAgOiB2dWVJbmZvLmF1dGhvcjtcbiAgICAgICAgICBpZiAoIWF1dGhvckluZm8pIHtcbiAg\nICAgICAgICAgIGxvZy5lcnJvcihbXCLojrflj5botLTkuLvkv6Hmga\/lpLHotKVcIiwgdnVlSW5m\nb10pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsb2cuc3Vj\nY2VzcyhbXCLotLTkuLvkv6Hmga9cIiwgYXV0aG9ySW5mb10pO1xuICAgICAgICAgIHdpbmRvdy5v\ncGVuKGBcL2hvbWVcL21haW4\/aWQ9JHthdXRob3JJbmZvLnBvcnRyYWl0fWApO1xuICAgICAgICB9\nKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOajgOa1i+mqqOaetuWxj1xu\nICAgICAqIEB0aW1lIDkwMFxuICAgICAqXC9cbiAgICBjaGVja1NrZWxldG9uKCkge1xuICAgICAg\nc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGxldCBhcHBFbGVtZW50ID0gZG9jdW1lbnQucXVl\ncnlTZWxlY3RvcihcIiNhcHBcIik7XG4gICAgICAgIGlmIChhcHBFbGVtZW50ICYmIGFwcEVsZW1l\nbnQuaW5uZXJIVE1MID09PSBcIlwiKSB7XG4gICAgICAgICAgUW1zZy53YXJuaW5nKFwi5qOA5rWL\n5Yiw6aqo5p625bGP77yM5byC5bi45Yqg6L2977yM5Yi35paw6aG16Z2iXCIsIHtcbiAgICAgICAg\nICAgIHRpbWVvdXQ6IDEyMDAsXG4gICAgICAgICAgICBvbkNsb3NlKCkge1xuICAgICAgICAgICAg\nICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7\nXG4gICAgICAgIH1cbiAgICAgIH0sIDkwMCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6Ieq\n5Yqo6YeN5a6a5ZCR6Iez5Li75Z+f5ZCNXG4gICAgICpcL1xuICAgIGF1dG9KdW1wVG9NYWluSG9z\ndCgpIHtcbiAgICAgIGlmIChfdW5zYWZlV2luZG93LnRvcCAhPT0gX3Vuc2FmZVdpbmRvdy53aW5k\nb3cpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHdpbmRvdy5sb2NhdGlv\nbi5ob3N0bmFtZSA9PT0gXCJ0aWViYS5iYWlkdS5jb21cIikge1xuICAgICAgICByZXR1cm47XG4g\nICAgICB9XG4gICAgICBsZXQgcmVwbGFjZVBhdHRlcm4gPSBuZXcgUmVnRXhwKGBeJHt3aW5kb3cu\nbG9jYXRpb24ub3JpZ2lufWApO1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cu\nbG9jYXRpb24uaHJlZi5yZXBsYWNlKFxuICAgICAgICByZXBsYWNlUGF0dGVybixcbiAgICAgICAg\nXCJodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXCJcbiAgICAgICk7XG4gICAgfVxuICB9O1xuICBj\nb25zdCBUaWViYVNlYXJjaFN1Z2dlc3Rpb24gPSB7XG4gICAgJGRhdGE6IHtcbiAgICAgIHNlYXJj\naFN1Z2dlc3Rpb246IG51bGwsXG4gICAgICBjdXJyZW50U2VhcmNoVGV4dDogXCJcIlxuICAgIH0s\nXG4gICAgJGVsZToge1xuICAgICAgXC8qKlxuICAgICAgICog6L6T5YWl5qGGXG4gICAgICAgKlwv\nXG4gICAgICAkc2VhcmNoSW5wdXQ6IG51bGxcbiAgICB9LFxuICAgIGluaXQoJGlucHV0KSB7XG4g\nICAgICB0aGlzLiRlbGUuJHNlYXJjaElucHV0ID0gJGlucHV0O1xuICAgICAgdGhpcy5pbml0U2Vh\ncmNoU3VnZ2VzdGlvbigpO1xuICAgICAgbGV0ICRvbGRNb3JlQnRuRGVzYyA9IGRvY3VtZW50LnF1\nZXJ5U2VsZWN0b3IoXCIubW9yZS1idG4tZGVzY1wiKTtcbiAgICAgIGRvbXV0aWxzLm9uKCRvbGRN\nb3JlQnRuRGVzYywgXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuZW50ZXJTZWFjaE1v\nZGUoKTtcbiAgICAgIH0pO1xuICAgICAgZG9tdXRpbHMub24oVGllYmFTZWFyY2guJGVsZS4kc2Vh\ncmNoQnRuLCBcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5mcm9udFBhZ2VTZWFjaCgp\nO1xuICAgICAgfSk7XG4gICAgICBkb211dGlscy5saXN0ZW5LZXlib2FyZCh0aGlzLiRlbGUuJHNl\nYXJjaElucHV0LCBcImtleXByZXNzXCIsIChrZXlOYW1lKSA9PiB7XG4gICAgICAgIGlmIChrZXlO\nYW1lICE9PSBcIkVudGVyXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAg\nICAgdGhpcy5mcm9udFBhZ2VTZWFjaCgpO1xuICAgICAgfSk7XG4gICAgICBkb211dGlscy5vbihU\naWViYVNlYXJjaC4kZWxlLiRuYXZTZWFyY2hCYWNrLCBcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xu\nICAgICAgICBUaWViYVNlYXJjaC5xdWl0U2VhcmNoTW9kZSgpO1xuICAgICAgfSk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog6L+b5YWl5pCc57Si5qih5byPXG4gICAgICpcL1xuICAgIGVudGVy\nU2VhY2hNb2RlKCkge1xuICAgICAgZG9tdXRpbHMuaGlkZShUaWViYVNlYXJjaC4kZWxlLiRzZWxl\nY3RXcmFwcGVyKTtcbiAgICAgIFRpZWJhU2VhcmNoLnNob3dTZWFyY2hDb250YWluZXIoKTtcbiAg\nICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLiRlbGUuJHNlYXJjaElucHV0LmZv\nY3VzKCk7XG4gICAgICB9LCAyMCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6YCA5Ye65pCc\n57Si5qih5byPXG4gICAgICpcL1xuICAgIHF1aXRlU2VhcmNoTW9kZSgpIHtcbiAgICAgIFRpZWJh\nU2VhcmNoLmhpZGVTZWFyY2hDb250YWluZXIoKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDo\njrflj5bmkJzntKLlhoXlrrlcbiAgICAgKlwvXG4gICAgZ2V0U2VhcmNoVGV4dCgpIHtcbiAgICAg\nIHJldHVybiB0aGlzLiRlbGUuJHNlYXJjaElucHV0LnZhbHVlLnRyaW0oKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDluJblrZDlpJbmkJzntKIo5Lmf5bCx5piv6aaW6aG15pCc57Si5ZCnKVxu\nICAgICAqXC9cbiAgICBmcm9udFBhZ2VTZWFjaCgpIHtcbiAgICAgIGxvZy5zdWNjZXNzKFwi5b2T\n5YmN5piv5Zyo6aaW6aG1XCIpO1xuICAgICAgbGV0IHNlYXJjaFRleHQgPSB0aGlzLmdldFNlYXJj\naFRleHQoKTtcbiAgICAgIGlmICh1dGlscy5pc051bGwoc2VhcmNoVGV4dCkpIHtcbiAgICAgICAg\nYWxlcnQoXCLor7fli7\/ovpPlhaXnqbrlhoXlrrlcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAg\nIH1cbiAgICAgIGxldCB1cmwgPSBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2Y\/aWU9dXRm\nLTgma3c9XCIgKyBzZWFyY2hUZXh0O1xuICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wi\nKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliJ3lp4vljJbmkJzntKLlkKdcbiAgICAgKlwv\nXG4gICAgaW5pdFNlYXJjaFN1Z2dlc3Rpb24oKSB7XG4gICAgICBsZXQgdGhhdCA9IHRoaXM7XG4g\nICAgICBhc3luYyBmdW5jdGlvbiBnZXREYXRhKGlucHV0VmFsdWUpIHtcbiAgICAgICAgbGV0IHJl\nc3VsdCA9IFtdO1xuICAgICAgICBsb2cuc3VjY2VzcyhcIuaQnOe0ouS4rS4uLlwiKTtcbiAgICAg\nICAgbGV0IHN1Z2dlc3Rpb25EYXRhID0gYXdhaXQgdGhhdC5nZXRTdWdnZXN0aW9uKGlucHV0VmFs\ndWUpO1xuICAgICAgICBpZiAodXRpbHMuaXNOdWxsKHN1Z2dlc3Rpb25EYXRhKSkge1xuICAgICAg\nICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgbG9nLnN1Y2Nlc3Moc3VnZ2Vz\ndGlvbkRhdGEpO1xuICAgICAgICByZXN1bHQgPSAoc3VnZ2VzdGlvbkRhdGEgPT0gbnVsbCA\/IHZv\naWQgMCA6IHN1Z2dlc3Rpb25EYXRhLnF1ZXJ5X21hdGNoLnNlYXJjaF9kYXRhKSB8fCBbXTtcbiAg\nICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIGxldCBzZWFyY2hTdWdnZXN0aW9u\nID0gX19wb3BzLnNlYXJjaFN1Z2dlc3Rpb24oe1xuICAgICAgICBzZWxmRG9jdW1lbnQ6IGRvY3Vt\nZW50LFxuICAgICAgICBjbGFzc05hbWU6IFwiV2hpdGVTZXZzU2VhcmNoU2VsZWN0XCIsXG4gICAg\nICAgIHRhcmdldDogdGhpcy4kZWxlLiRzZWFyY2hJbnB1dCxcbiAgICAgICAgaW5wdXRUYXJnZXQ6\nIHRoaXMuJGVsZS4kc2VhcmNoSW5wdXQsXG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgICBpc0Fi\nc29sdXRlOiBmYWxzZSxcbiAgICAgICAgZm9sbG93VGFyZ2V0V2lkdGg6IHRydWUsXG4gICAgICAg\nIGRlbGV0ZUljb246IHtcbiAgICAgICAgICBlbmFibGU6IGZhbHNlXG4gICAgICAgIH0sXG4gICAg\nICAgIHRvcERpc3RhbmNlOiA0LFxuICAgICAgICBpdGVtQ2xpY2tDYWxsQmFjayhldmVudCwgbGlF\nbGVtZW50LCBkYXRhKSB7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBcImh0dHBz\nOlwvXC90aWViYS5iYWlkdS5jb21cL2Y\/aWU9dXRmLTgma3c9XCIgKyBkYXRhLmZuYW1lO1xuICAg\nICAgICB9LFxuICAgICAgICBnZXREYXRhLFxuICAgICAgICBnZXRJdGVtSFRNTChpdGVtKSB7XG4g\nICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwvKmh0bWwqXC9cbiAgICAgICAgICAgIGBc\nblx0XHRcdFx0PGRpdiBjbGFzcz1cImZvcnVtX2l0ZW1cIj5cblx0XHRcdFx0XHQ8aW1nIGNsYXNz\nPVwiZm9ydW1faW1hZ2VcIiBzcmM9XCIke2l0ZW0uZnBpY31cIj5cblx0XHRcdFx0XHQ8ZGl2IGNs\nYXNzPVwiZm9ydW1fcmlnaHRcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3J1bV9uYW1l\nXCI+JHtpdGVtLmZuYW1lfTxcL2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3J1bV9k\nZXNjXCI+JHtpdGVtLmZvcnVtX2Rlc2N9PFwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1c\nImZvcnVtX21lbWJlclwiPiR7aXRlbS5tZW1iZXJfbnVtfTxcL2Rpdj5cblx0XHRcdFx0XHRcdDxk\naXYgY2xhc3M9XCJmb3J1bV90aHJlYWRcIj4ke2l0ZW0udGhyZWFkX251bX08XC9kaXY+XG5cdFx0\nXHRcdFx0PFwvZGl2PlxuXHRcdFx0XHQ8XC9kaXY+YFxuICAgICAgICAgICk7XG4gICAgICAgIH0s\nXG4gICAgICAgIHN0eWxlOiAoXG4gICAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgICAgYFxuXHRc\ndFx0LldoaXRlU2V2c1NlYXJjaFNlbGVjdCAuZm9ydW1faXRlbXtcblx0XHRcdFx0ZGlzcGxheTog\nZmxleDtcblx0XHRcdFx0dGV4dC13cmFwOiB3cmFwO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2Vu\ndGVyO1xuXHRcdFx0fVxuXHRcdFx0LldoaXRlU2V2c1NlYXJjaFNlbGVjdCAuZm9ydW1faW1hZ2V7\nXG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHR3aWR0aDogMzJweDtcblx0XHRcdFx0aGVp\nZ2h0OiAzMnB4O1xuXHRcdFx0fVxuXHRcdFx0LldoaXRlU2V2c1NlYXJjaFNlbGVjdCAuZm9ydW1f\ncmlnaHR7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogOHB4O1xu\nXHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0d2lkdGg6IDg4JTtcblx0XHRcdH1cblx0XHRc\ndC5XaGl0ZVNldnNTZWFyY2hTZWxlY3QgLmZvcnVtX25hbWV7XG5cdFx0XHRcdGNvbG9yOiAjMDAw\nO1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5c\ndFx0XHR9XG5cdFx0XHQuV2hpdGVTZXZzU2VhcmNoU2VsZWN0IC5mb3J1bV9uYW1lOjphZnRlcntc\nblx0XHRcdFx0Y29udGVudDpcIuWQp1wiO1xuXHRcdFx0fVxuXHRcdFx0LldoaXRlU2V2c1NlYXJj\naFNlbGVjdCAuZm9ydW1fbWVtYmVyLFxuXHRcdFx0LldoaXRlU2V2c1NlYXJjaFNlbGVjdCAuZm9y\ndW1fdGhyZWFke1xuXHRcdFx0XHRtYXJnaW46IDRweCAwcHg7XG5cdFx0XHRcdHBhZGRpbmc6IDAg\nMCAwIDE4cHg7XG5cdFx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0XHRmb250LXdlaWdodDogNDAw\nO1xuXHRcdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHVybChcL1wv\ndGIyLmJkc3RhdGljLmNvbVwvdGJcL3N0YXRpYy1jb21tb25cL2ltZ1wvc3VnZ2VzdGlvblwvc3Vn\nZXN0aW9uX2VkNmE4MTkucG5nKSBuby1yZXBlYXQ7XG5cdFx0XHR9XG5cdFx0XHQuV2hpdGVTZXZz\nU2VhcmNoU2VsZWN0IC5mb3J1bV9tZW1iZXJ7XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246\nIDAgMDtcblx0XHRcdH1cblx0XHRcdC5XaGl0ZVNldnNTZWFyY2hTZWxlY3QgLmZvcnVtX3RocmVh\nZHtcblx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjZweDtcblx0XHRcdH1cblx0XHRc\ndGBcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgICB0aGlzLiRkYXRhLnNlYXJjaFN1Z2dlc3Rp\nb24gPSBzZWFyY2hTdWdnZXN0aW9uO1xuICAgICAgc2VhcmNoU3VnZ2VzdGlvbi5pbml0KCk7XG4g\nICAgICBzZWFyY2hTdWdnZXN0aW9uLnNldEFsbEV2ZW50KCk7XG4gICAgICBsb2cuaW5mbyhcIuWI\nneWni+WMlum7mOiupOaQnOe0oi4uLlwiKTtcbiAgICAgIGdldERhdGEoXCJcIikudGhlbigocmVz\ndWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgICAgc2VhcmNo\nU3VnZ2VzdGlvbi51cGRhdGUocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog6I635Y+W5pCc57Si5bu66K6uXG4gICAgICogQHBhcmFtIHF1ZXJ5\nVGV4dCDmkJzntKLlhoXlrrlcbiAgICAgKlwvXG4gICAgYXN5bmMgZ2V0U3VnZ2VzdGlvbihxdWVy\neVRleHQgPSBcIlwiKSB7XG4gICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4LmdldCh7XG4g\nICAgICAgIHVybDogYGh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL3N1Z2dlc3Rpb24\/cXVlcnk9\nJHtxdWVyeVRleHR9JmllPXV0Zi04Jl89JHsoXC8qIEBfX1BVUkVfXyAqXC8gbmV3IERhdGUoKSku\nZ2V0VGltZSgpfWAsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBcIlVzZXItQWdlbnRc\nIjogdXRpbHMuZ2V0UmFuZG9tUENVQSgpLFxuICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlv\nblwvanNvbiwgdGV4dFwvamF2YXNjcmlwdCwgKlwvKjsgcT0wLjAxXCIsXG4gICAgICAgICAgSG9z\ndDogXCJ0aWViYS5iYWlkdS5jb21cIixcbiAgICAgICAgICBSZWZlcmVyOiB3aW5kb3cubG9jYXRp\nb24uaHJlZlxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmICghZ2V0UmVzcC5zdGF0dXMp\nIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHJlc3BEYXRhID0gZ2V0UmVz\ncC5kYXRhO1xuICAgICAgcmV0dXJuIHV0aWxzLnRvSlNPTihyZXNwRGF0YS5yZXNwb25zZVRleHQp\nO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVGllYmFTZWFyY2ggPSB7XG4gICAgJGZsYWc6IHtcbiAg\nICAgIGlzSW5pdEt3OiBmYWxzZSxcbiAgICAgIGlzSW5pdFBvc3Q6IGZhbHNlLFxuICAgICAgaXNJ\nbml0SG9tZTogZmFsc2UsXG4gICAgICBpc1NldFNjcm9sbEV2ZW50OiBmYWxzZVxuICAgIH0sXG4g\nICAgJGV2ZW46IHt9LFxuICAgICRjb250ZXh0OiB7XG4gICAgICBsb2NrRnVuYzogbnVsbCxcbiAg\nICAgIGxvYWRpbmc6IG5ldyBMb2FkaW5nVmlldyh0cnVlKSxcbiAgICAgIGdia0VuY29kZXI6IG5l\ndyB1dGlscy5HQktFbmNvZGVyKClcbiAgICB9LFxuICAgICRkYXRhOiB7XG4gICAgICBcLyoqXG4g\nICAgICAgKiDmkJzntKLnsbvlnovvvIzpu5jorqQwXG4gICAgICAgKiArIDAg5pys5ZCnXG4gICAg\nICAgKiArIDEg5YWo5bGAXG4gICAgICAgKlwvXG4gICAgICBzZWFyY2hUeXBlOiAwLFxuICAgICAg\nXC8qKlxuICAgICAgICog5pCc57Si57uT5p6c57G75Z6L77yM6buY6K6kMVxuICAgICAgICogKyAw\nIOaMieaXtumXtOmhuuW6j1xuICAgICAgICogKyAxIOaMieaXtumXtOWAkuW6j1xuICAgICAgICog\nKyAyIOaMieebuOWFs+aAp+mhuuW6j1xuICAgICAgICogKyAzIOWPqueci+S4u+mimOi0tFxuICAg\nICAgICpcL1xuICAgICAgc2VhcmNoTW9kZWw6IDEsXG4gICAgICBcLyoqXG4gICAgICAgKiDkuIvk\nuIDpobVcbiAgICAgICAqXC9cbiAgICAgIG5leHRQYWdlVXJsOiBudWxsLFxuICAgICAgXC8qKlxu\nICAgICAgICog5b2T5YmN5pCc57Si55qE5YaF5a65XG4gICAgICAgKlwvXG4gICAgICBjdXJyZW50\nU2VhcmNoVGV4dDogXCJcIlxuICAgIH0sXG4gICAgJGVsZToge1xuICAgICAgXC8qKlxuICAgICAg\nICog6aG16Z2i6YeN5p6E5ZCO55qE5pCc57Si5oyJ6ZKuXG4gICAgICAgKlwvXG4gICAgICAkbW9y\nZUJ0bkRlc2M6IG51bGwsXG4gICAgICBcLyoqXG4gICAgICAgKiDmkJzntKLnmoTlrrnlmahcbiAg\nICAgICAqXC9cbiAgICAgICRzZWFyY2hDb250YWluZXI6IG51bGwsXG4gICAgICBcLyoqXG4gICAg\nICAgKiDoh6rlrprkuYnnmoTpobbpg6jlr7zoiKrmoI9cbiAgICAgICAqXC9cbiAgICAgICRuYXZU\nb3BTZWFyY2g6IG51bGwsXG4gICAgICBcLyoqXG4gICAgICAgKiDov5Tlm57mjInpkq5cbiAgICAg\nICAqXC9cbiAgICAgICRuYXZTZWFyY2hCYWNrOiBudWxsLFxuICAgICAgXC8qKlxuICAgICAgICog\n5pCc57Si5qih5byP6YCJ5oup55qE5a655ZmoXG4gICAgICAgKlwvXG4gICAgICAkc2VsZWN0V3Jh\ncHBlcjogbnVsbCxcbiAgICAgIFwvKipcbiAgICAgICAqIOaQnOe0ouaooeW8j+mAieaLqVxuICAg\nICAgICpcL1xuICAgICAgJHNlbGVjdDogbnVsbCxcbiAgICAgIFwvKipcbiAgICAgICAqIOi+k+WF\npeahhlxuICAgICAgICpcL1xuICAgICAgJHNlYXJjaElucHV0OiBudWxsLFxuICAgICAgXC8qKlxu\nICAgICAgICog5pCc57Si5oyJ6ZKuXG4gICAgICAgKlwvXG4gICAgICAkc2VhcmNoQnRuOiBudWxs\nLFxuICAgICAgXC8qKlxuICAgICAgICog5pCc57Si57uT5p6c55qE5a655ZmoXG4gICAgICAgKlwv\nXG4gICAgICAkc2VhcmNoUmVzdWx0Q29udGFpbmVyOiBudWxsLFxuICAgICAgXC8qKlxuICAgICAg\nICog5pCc57Si57uT5p6c55qE5YiX6KGoXG4gICAgICAgKlwvXG4gICAgICAkc2VhcmNoUmVzdWx0\nTGlzdDogbnVsbCxcbiAgICAgIFwvKipcbiAgICAgICAqIOmAieaLqeaQnOe0oue7k+aenOaooeW8\nj1xuICAgICAgICpcL1xuICAgICAgJHNlYXJjaFJlc3VsdE1vZGVsOiBudWxsLFxuICAgICAgXC8q\nKlxuICAgICAgICog5Lul5LiL5YaF5a655p2l6IeqeHh45ZCn55qE5pCc57Si57uT5p6cXG4gICAg\nICAgKlwvXG4gICAgICAkc2VhcmNoUmVzdWx0RnJvbTogbnVsbFxuICAgIH0sXG4gICAgaW5pdCgp\nIHtcbiAgICAgIGxldCB0aGF0ID0gdGhpcztcbiAgICAgIHV0aWxzLndhaXROb2RlKFwiLm1vcmUt\nYnRuLWRlc2NcIiwgMWU0KS50aGVuKCgkb2xkTW9yZUJ0bkRlc2MpID0+IHtcbiAgICAgICAgaWYg\nKCEkb2xkTW9yZUJ0bkRlc2MpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAg\nICAgdGhpcy5hZGRDU1MoKTtcbiAgICAgICAgJG9sZE1vcmVCdG5EZXNjLm91dGVySFRNTCA9ICc8\nZGl2IGNsYXNzPVwibW9yZS1idG4tZGVzY1wiPuaQnOe0ojxcL2Rpdj4nO1xuICAgICAgICBsZXQg\nJG5ld1NlYXJjaCA9IGRvbXV0aWxzLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAg\nIGlkOiBcInNlYXJjaFwiLFxuICAgICAgICAgIGlubmVySFRNTDogKFxuICAgICAgICAgICAgXC8q\naHRtbCpcL1xuICAgICAgICAgICAgYFxuXHRcdFx0XHRcdDxkaXYgaWQ9XCJuYXYtdG9wLXNlYXJj\naFwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cIm5hdi1iYXItd3JhcHBlclwiPlxuXHRcdFx0\nXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibmF2LXNlYXJjaC1iYWNrXCI+XG5cdFx0XHRcdFx0XHRcdFx0\nPHN2ZyB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHZpZXdCb3g9XCIw\nIDAgMTAyNCAxMDI0XCI+PHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMjI0IDQ4MGg2\nNDBhMzIgMzIgMCAxIDEgMCA2NEgyMjRhMzIgMzIgMCAwIDEgMC02NFwiPjxcL3BhdGg+PHBhdGgg\nZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJtMjM3LjI0OCA1MTIgMjY1LjQwOCAyNjUuMzQ0YTMy\nIDMyIDAgMCAxLTQ1LjMxMiA0NS4zMTJsLTI4OC0yODhhMzIgMzIgMCAwIDEgMC00NS4zMTJsMjg4\nLTI4OGEzMiAzMiAwIDEgMSA0NS4zMTIgNDUuMzEyelwiPjxcL3BhdGg+PFwvc3ZnPlxuXHRcdFx0\nXHRcdFx0XHQ8XC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJuYXYtc2VhcmNoLXNl\nbGVjdC13cmFwcGVyXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHNlbGVjdCBjbGFzcz1cIm5hdi1zZWFy\nY2gtc2VsZWN0XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8b3B0aW9uPuacrOWQpzxcL29wdGlvbj5c\nblx0XHRcdFx0XHRcdFx0XHRcdDxvcHRpb24+5YWo5bGAPFwvb3B0aW9uPlxuXHRcdFx0XHRcdFx0\nXHRcdDxcL3NlbGVjdD5cblx0XHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8aW5w\ndXQgdHlwZT1cInNlYXJjaFwiIGlkPVwidGllYmEtc2VhcmNoXCIgcGxhY2Vob2xkZXI9XCLor7fo\nvpPlhaXmkJzntKLlhoXlrrkuLi5cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cblx0XHRcdFx0XHRc\ndFx0PGRpdiBjbGFzcz1cIm5hdi1zZWFyY2gtYnRuXCI+5pCc57SiPFwvZGl2PlxuXHRcdFx0XHRc\ndFx0PFwvZGl2PlxuXHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwic2Vh\ncmNoLXJlc3VsdFwiPlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtbW9k\nZWxcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9\nXCJzZWFyY2gtcmVzdWx0LW1vZGVsLWl0ZW1cIiBkYXRhLW1vZGVsPVwiMVwiPuaWsOW4luWcqOWJ\njTxcL2Rpdj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtbW9kZWwt\naXRlbVwiIGRhdGEtbW9kZWw9XCIwXCI+5pen5biW5Zyo5YmNPFwvZGl2PlxuXHRcdFx0XHRcdFx0\nXHQ8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1tb2RlbC1pdGVtXCIgZGF0YS1tb2RlbD1cIjJc\nIj7lj6rnnIvnm7jlhbM8XC9kaXY+XG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gt\ncmVzdWx0LW1vZGVsLWl0ZW1cIiBkYXRhLW1vZGVsPVwiM1wiPuWPqueci+S4u+mimDxcL2Rpdj5c\nblx0XHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJzZWFyY2gtcmVz\ndWx0LWZyb20taW5mb1wiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cblxuXHRcdFx0XHRcdFx0\nPFwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtbGlzdFwiPlxu\nXG5cdFx0XHRcdFx0XHQ8XC9kaXY+XG5cdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRgXG4gICAg\nICAgICAgKVxuICAgICAgICB9KTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCgk\nbmV3U2VhcmNoKTtcbiAgICAgICAgZG9tdXRpbHMuaGlkZSgkbmV3U2VhcmNoKTtcbiAgICAgICAg\ndGhpcy4kZWxlLiRzZWFyY2hDb250YWluZXIgPSAkbmV3U2VhcmNoO1xuICAgICAgICB0aGlzLiRl\nbGUuJG5hdlRvcFNlYXJjaCA9ICRuZXdTZWFyY2gucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBc\nIiNuYXYtdG9wLXNlYXJjaFwiXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuJGVsZS4kbmF2U2Vh\ncmNoQmFjayA9ICRuZXdTZWFyY2gucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBcIi5uYXYtc2Vh\ncmNoLWJhY2tcIlxuICAgICAgICApO1xuICAgICAgICB0aGlzLiRlbGUuJHNlbGVjdFdyYXBwZXIg\nPSAkbmV3U2VhcmNoLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgXCIubmF2LXNlYXJjaC1zZWxl\nY3Qtd3JhcHBlclwiXG4gICAgICAgICksIHRoaXMuJGVsZS4kc2VsZWN0ID0gJG5ld1NlYXJjaC5x\ndWVyeVNlbGVjdG9yKFxuICAgICAgICAgIFwiLm5hdi1zZWFyY2gtc2VsZWN0XCJcbiAgICAgICAg\nKTtcbiAgICAgICAgdGhpcy4kZWxlLiRzZWFyY2hJbnB1dCA9ICRuZXdTZWFyY2gucXVlcnlTZWxl\nY3RvcihcbiAgICAgICAgICBcIiN0aWViYS1zZWFyY2hcIlxuICAgICAgICApO1xuICAgICAgICB0\naGlzLiRlbGUuJHNlYXJjaEJ0biA9ICRuZXdTZWFyY2gucXVlcnlTZWxlY3RvcihcbiAgICAgICAg\nICBcIi5uYXYtc2VhcmNoLWJ0blwiXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuJGVsZS4kc2Vh\ncmNoUmVzdWx0Q29udGFpbmVyID0gJG5ld1NlYXJjaC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAg\nIFwiLnNlYXJjaC1yZXN1bHRcIlxuICAgICAgICApO1xuICAgICAgICB0aGlzLiRlbGUuJHNlYXJj\naFJlc3VsdExpc3QgPSAkbmV3U2VhcmNoLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgXCIuc2Vh\ncmNoLXJlc3VsdC1saXN0XCJcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4kZWxlLiRzZWFyY2hS\nZXN1bHRNb2RlbCA9ICRuZXdTZWFyY2gucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBcIi5zZWFy\nY2gtcmVzdWx0LW1vZGVsXCJcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4kZWxlLiRzZWFyY2hS\nZXN1bHRGcm9tID0gJG5ld1NlYXJjaC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIFwiLnNlYXJj\naC1yZXN1bHQtZnJvbS1pbmZvXCJcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy4kY29udGV4dC5s\nb2FkaW5nLmluaXRMb2FkaW5nVmlldyh0cnVlKTtcbiAgICAgICAgdGhpcy4kZWxlLiRzZWFyY2hS\nZXN1bHRMaXN0LmFwcGVuZENoaWxkKFxuICAgICAgICAgIHRoaXMuJGNvbnRleHQubG9hZGluZy5n\nZXRMb2FkaW5nVmlld0VsZW1lbnQoKVxuICAgICAgICApO1xuICAgICAgICBsZXQgJHNlYXJjaFJl\nc3VsdE1vZGVsSXRlbSA9IHRoaXMuJGVsZS4kc2VhcmNoUmVzdWx0TW9kZWwucXVlcnlTZWxlY3Rv\ncihcbiAgICAgICAgICBgLnNlYXJjaC1yZXN1bHQtbW9kZWwtaXRlbVtkYXRhLW1vZGVsPVwiJHt0\naGlzLiRkYXRhLnNlYXJjaE1vZGVsfVwiXWBcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCRzZWFy\nY2hSZXN1bHRNb2RlbEl0ZW0pIHtcbiAgICAgICAgICAkc2VhcmNoUmVzdWx0TW9kZWxJdGVtLnNl\ndEF0dHJpYnV0ZShcImRhdGEtYWN0aXZlXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgfVxuICAgICAg\nICB0aGlzLiRjb250ZXh0LmxvYWRpbmcuaGlkZSgpO1xuICAgICAgICBsZXQgc2VhcmNoUGFyYW1z\nID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICAgICAg\ndGhpcy4kZWxlLiRtb3JlQnRuRGVzYyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAg\nICAgXCIubW9yZS1idG4tZGVzY1wiXG4gICAgICAgICk7XG4gICAgICAgIGlmICh3aW5kb3cubG9j\nYXRpb24ucGF0aG5hbWUgPT09IFwiXC9mXCIgJiYgdXRpbHMuaXNOb3ROdWxsKHNlYXJjaFBhcmFt\ncy5nZXQoXCJrd1wiKSkpIHtcbiAgICAgICAgICBkb211dGlscy5vbih0aGlzLiRlbGUuJG1vcmVC\ndG5EZXNjLCBcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW50ZXJTZWFjaE1v\nZGUoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24u\naHJlZi5zdGFydHNXaXRoKFwiaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwvcFwvXCIpKSB7XG4g\nICAgICAgICAgZG9tdXRpbHMub24odGhpcy4kZWxlLiRtb3JlQnRuRGVzYywgXCJjbGlja1wiLCAo\nKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVudGVyU2VhY2hNb2RlKCk7XG4gICAgICAgICAgfSk7\nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgVGllYmFTZWFyY2hTdWdnZXN0aW9uLmluaXQo\ndGhpcy4kZWxlLiRzZWFyY2hJbnB1dCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4g\nICAgICAgIGxldCBzZWFyY2hFdmVudCA9ICgpID0+IHtcbiAgICAgICAgICBsZXQgc2VhcmNoVGV4\ndCA9IHRoYXQuZ2V0U2VhcmNoVGV4dCgpO1xuICAgICAgICAgIGlmICh1dGlscy5pc051bGwoc2Vh\ncmNoVGV4dCkpIHtcbiAgICAgICAgICAgIGFsZXJ0KFwi6K+35Yu\/6L6T5YWl57qv56m65qC85oiW\n56m65YaF5a65XCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAg\nICB0aGlzLiRkYXRhLmN1cnJlbnRTZWFyY2hUZXh0ID0gc2VhcmNoVGV4dDtcbiAgICAgICAgICB0\naGlzLmNsZWFyT2xkU2VhcmNoUmVzdWx0KCk7XG4gICAgICAgICAgdGhpcy5wb3N0c1BhZ2VTZWFy\nY2goKTtcbiAgICAgICAgfTtcbiAgICAgICAgZG9tdXRpbHMub24odGhpcy4kZWxlLiRzZWFyY2hC\ndG4sIFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgIHNlYXJjaEV2ZW50KCk7XG4gICAgICAg\nIH0pO1xuICAgICAgICBkb211dGlscy5saXN0ZW5LZXlib2FyZChcbiAgICAgICAgICB0aGlzLiRl\nbGUuJHNlYXJjaElucHV0LFxuICAgICAgICAgIFwia2V5cHJlc3NcIixcbiAgICAgICAgICAoa2V5\nTmFtZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleU5hbWUgIT09IFwiRW50ZXJcIikge1xuICAg\nICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWFyY2hFdmVu\ndCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgZG9tdXRpbHMub24odGhpcy4k\nZWxlLiRuYXZTZWFyY2hCYWNrLCBcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICB0aGlzLnF1\naXRTZWFyY2hNb2RlKCk7XG4gICAgICAgICAgdGhpcy5yZW1vdmVTY3JvbGxFdmVudCgpO1xuICAg\nICAgICB9KTtcbiAgICAgICAgZG9tdXRpbHMub24odGhpcy4kZWxlLiRzZWxlY3QsIFwiY2hhbmdl\nXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgIGxldCBzZWxlY3QgPSBldmVudC50YXJnZXQ7XG4g\nICAgICAgICAgc2VsZWN0LnZhbHVlO1xuICAgICAgICAgIGxldCB0ZXh0ID0gc2VsZWN0Lm9wdGlv\nbnNbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnRleHQ7XG4gICAgICAgICAgbG9nLmluZm8oXCLlvZPl\niY3mkJzntKLmqKHlvI\/vvJpcIiArIHRleHQpO1xuICAgICAgICAgIGlmICh0ZXh0ID09PSBcIuac\nrOWQp1wiKSB7XG4gICAgICAgICAgICB0aGlzLiRkYXRhLnNlYXJjaFR5cGUgPSAwO1xuICAgICAg\nICAgIH0gZWxzZSBpZiAodGV4dCA9PT0gXCLlhajlsYBcIikge1xuICAgICAgICAgICAgdGhpcy4k\nZGF0YS5zZWFyY2hUeXBlID0gMTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9n\nLmVycm9yKFwi5pyq55+l6YCJ5oup5qih5byPXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7\nXG4gICAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICAgIHRoaXMuJGVsZS4kc2VhcmNoUmVzdWx0\nTW9kZWwsXG4gICAgICAgICAgXCJjbGlja1wiLFxuICAgICAgICAgIFwiLnNlYXJjaC1yZXN1bHQt\nbW9kZWwtaXRlbVwiLFxuICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgbGV0ICRj\nbGljayA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICAgIGxvZy5zdWNjZXNzKFwi6K6+572u5b2T\n5YmN5pCc57Si57uT5p6c5qih5byP77yaXCIgKyAkY2xpY2suaW5uZXJUZXh0KTtcbiAgICAgICAg\nICAgIHRoaXMuJGVsZS4kc2VhcmNoUmVzdWx0TW9kZWwucXVlcnlTZWxlY3RvckFsbChcIi5zZWFy\nY2gtcmVzdWx0LW1vZGVsLWl0ZW1cIikuZm9yRWFjaCgoZWxlKSA9PiBlbGUucmVtb3ZlQXR0cmli\ndXRlKFwiZGF0YS1hY3RpdmVcIikpO1xuICAgICAgICAgICAgJGNsaWNrLnNldEF0dHJpYnV0ZShc\nImRhdGEtYWN0aXZlXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgICAgIGxldCBzZWFyY2hNb2RlbFRl\neHQgPSAkY2xpY2suZ2V0QXR0cmlidXRlKFwiZGF0YS1tb2RlbFwiKTtcbiAgICAgICAgICAgIGxl\ndCBzZWFyY2hNb2RlbCA9IHBhcnNlSW50KHNlYXJjaE1vZGVsVGV4dCk7XG4gICAgICAgICAgICB0\naGlzLiRkYXRhLnNlYXJjaE1vZGVsID0gc2VhcmNoTW9kZWw7XG4gICAgICAgICAgICB0aGlzLmNs\nZWFyT2xkU2VhcmNoUmVzdWx0KCk7XG4gICAgICAgICAgICB0aGlzLnBvc3RzUGFnZVNlYXJjaCgp\nO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25j\nZShcImJhaWR1X3RpZWJhLWV4ZWNCeVVybFNlYXJjaFBhcmFtc1wiLCAoKSA9PiB7XG4gICAgICAg\nICAgdGhpcy5leGVjQnlVcmxTZWFyY2hQYXJhbXMoKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtc\nbiAgICB9LFxuICAgIGFkZENTUygpIHtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3Mq\nXC9cbiAgICAgICAgYFxuXHRcdC5nbS1oaWRlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9y\ndGFudDtcblx0XHR9XG5cdFx0YFxuICAgICAgKTtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBc\nLypjc3MqXC9cbiAgICAgICAgYFxuXHRcdC5tb3JlLWJ0bi1kZXNje1xuXHRcdFx0bWFyZ2luLXJp\nZ2h0OiAxMHB4O1xuXHRcdFx0Zm9udC1zaXplOiAuMTVyZW07XG5cdFx0XHRmb250LXdlaWdodDog\nNzAwO1xuXHRcdFx0Y29sb3I6ICM2MTRlYzI7XG5cdFx0fVxuXHRcdGBcbiAgICAgICk7XG4gICAg\nICBhZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgIGBcblx0XHQjc2VhcmNoe1xu\nXHRcdFx0LS1iZy1jb2xvcjogI0Y1RjZGODtcblx0XHRcdC0tb2h0ZXItYmctY29sb3I6ICNGM0Yz\nRjU7XG5cdFx0XHQtLXJlc3VsdC1pdGVtLWJnLWNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0YmFja2dy\nb3VuZDogdmFyKC0tYmctY29sb3IpO1xuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdFx0ei1p\nbmRleDogMTAwMDAwO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVmdDogMDtcblx0XHRcdHJpZ2h0\nOiAwO1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHR9XG5cdFx0I25h\ndi10b3Atc2VhcmNoe1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuXHRc\ndFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2xvcik7XG5cdFx0\nXHR6LWluZGV4OiBpbmhlcml0O1xuXHRcdH1cblx0XHQubmF2LWJhci13cmFwcGVye1xuXHRcdFx0\ncG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdFx0XHRk\naXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0XHRc\ndGRpc3BsYXk6IGZsZXg7XG5cdFx0XHQtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHRcdFx0\nLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0LW1zLWZsZXgtYWxpZ246IGNlbnRl\ncjtcblx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRc\ndGhlaWdodDogLjQ4cmVtO1xuXHRcdFx0LXdlYmtpdC1ib3gtcGFjazoganVzdGlmeTtcblx0XHRc\ndC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdFx0LW1zLWZsZXgt\ncGFjazoganVzdGlmeTtcblx0XHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0\nXHR9XG5cdFx0Lm5hdi1iYXItd3JhcHBlciBzdmd7XG5cdFx0XHR3aWR0aDogMC4xNnJlbTtcblx0\nXHRcdGhlaWdodDogMC4xNnJlbTtcblx0XHR9XG5cdFx0Lm5hdi1zZWFyY2gtYmFja3tcblx0XHRc\ndG1hcmdpbi1sZWZ0OiAxMHB4O1xuXHRcdH1cblx0XHQubmF2LXNlYXJjaC1zZWxlY3R7XG5cdFx0\nXHRiYWNrZ3JvdW5kOiB2YXIoLS1vdGhlci1iZy1jb2xvcik7XG5cdFx0XHRoZWlnaHQ6IDMycHg7\nXG5cdFx0XHRsaW5lLWhlaWdodDogMzJweDtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkIHJnYigx\nODQsIDE4NCwgMTg0LCAxKTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRcdHRleHQt\nYWxpZ246IGNlbnRlcjtcblx0XHRcdG91dGxpbmU6IDA7XG5cdFx0XHRib3gtc2hhZG93OiBub25l\nO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdFx0fVxuXHRcdCN0aWViYS1zZWFyY2h7XG5c\ndFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1vdGhlci1iZy1jb2xvcik7XG5cdFx0XHRwYWRkaW5nOiAw\ncHggMTBweDtcblx0XHRcdGhlaWdodDogMzJweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzMnB4O1xu\nXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0\nYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGFwcGVhcmFuY2U6IG5vbmU7XG5cdFx0XHRi\nb3JkZXI6IDFweCBzb2xpZCByZ2IoMTg0LCAxODQsIDE4NCwgMSk7XG5cdFx0XHRvdXRsaW5lOiBu\nb25lO1xuXHRcdFx0ZmxleDogMSAxIDAlO1xuXHRcdFx0bWFyZ2luOiAwcHggMWVtO1xuXHRcdFx0\nbWluLXdpZHRoOiA4MHB4O1xuXHRcdH1cblx0XHQubmF2LXNlYXJjaC1idG57XG5cdFx0XHRtYXJn\naW4tcmlnaHQ6IDEwcHg7XG5cdFx0XHRmb250LXNpemU6IC4xNXJlbTtcblx0XHRcdGZvbnQtd2Vp\nZ2h0OiA3MDA7XG5cdFx0XHRjb2xvcjogIzYxNGVjMjtcblx0XHR9XG5cdFx0LnNlYXJjaC1yZXN1\nbHR7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR0b3A6IDAuNDhyZW07XG5cdFx0\nXHRiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jb2xvcik7XG5cdFx0fVxuXHRcdC5zZWFyY2gtcmVzdWx0\nLW1vZGVse1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdHBhZGRpbmc6IDBweCAxMHB4O1xu\nXHRcdFx0cG9zaXRpb246IGZpeGVkO1xuICAgXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHR0b3A6\nIDAuNDhyZW07XG5cdFx0XHRoZWlnaHQ6IDAuMzJyZW07XG5cdFx0XHR6LWluZGV4OiBpbmhlcml0\nO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tYmctY29sb3IpO1xuXHRcdFx0YWxpZ24taXRlbXM6\nIGZsZXgtc3RhcnQ7XG4gICAgXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdH1cblx0\nXHQuc2VhcmNoLXJlc3VsdC1tb2RlbCAuc2VhcmNoLXJlc3VsdC1tb2RlbC1pdGVte1xuXHRcdFx0\nbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHRcdH1cblx0XHQuc2VhcmNoLXJlc3VsdC1mcm9tLWluZm97\nXG5cdFx0XHRtYXJnaW4tdG9wOiAwLjMycmVtO1xuICAgIFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRc\ndH1cblx0XHQuc2VhcmNoLXJlc3VsdC1mcm9tLWluZm9bc3R5bGUqPVwiZGlzcGxheVwiXVtzdHls\nZSo9XCJub25lXCJdICsgLnNlYXJjaC1yZXN1bHQtbGlzdHtcblx0XHRcdG1hcmdpbi10b3A6IDAu\nMzJyZW07XG5cdFx0fVxuXHRcdC5zZWFyY2gtcmVzdWx0LWxpc3R7XG5cdFx0XHRvdmVyZmxvdzog\nYXV0bztcblx0XHRcdG1heC1oZWlnaHQ6IGNhbGMoIDEwMHZoIC0gNDhweCAtIDMycHggLSAzNnB4\nKTtcblx0XHR9XG5cdFx0LnNlYXJjaC1yZXN1bHQtbGlzdCAuc2VhcmNoX3Jlc3VsdHtcblx0XHRc\ndGJhY2tncm91bmQ6IHZhcigtLXJlc3VsdC1pdGVtLWJnLWNvbG9yKTtcblx0XHRcdG1hcmdpbjog\nMTBweDtcblx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA2cHg7XG5c\ndFx0fVxuXHRcdC5zZWFyY2gtcmVzdWx0LWxpc3QgLnNlYXJjaF9yZXN1bHQ6Zmlyc3QtY2hpbGR7\nXG5cdFx0XHRtYXJnaW4tdG9wOiAwcHg7XG5cdFx0fVxuXHRcdGBcbiAgICAgICk7XG4gICAgICBh\nZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgIGBcblx0XHQuc2VhcmNoLXJlc3Vs\ndC1tb2RlbCAuc2VhcmNoLXJlc3VsdC1tb2RlbC1pdGVtW2RhdGEtYWN0aXZlXTphZnRlciB7XG5c\ndFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdGJhY2tncm91bmQ6ICM3NDU4RkE7XG5cdFx0XHRo\nZWlnaHQ6IDRweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA1cHg7XG5cdFx0XHRtYXJnaW46IDAuMDVy\nZW0gMHB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNnB4O1xuXHRcdFx0d2lkdGg6IDAuMnJlbTtc\nblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR9XG5cblx0XHQuc2VhcmNoLXJlc3VsdC1t\nb2RlbCAuc2VhcmNoLXJlc3VsdC1tb2RlbC1pdGVtW2RhdGEtYWN0aXZlXSB7XG5cdFx0XHRkaXNw\nbGF5OiBmbGV4O1xuXHRcdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdGFsaWduLWl0\nZW1zOiBjZW50ZXI7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblx0XHR9XG5cdFx0\nYFxuICAgICAgKTtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAgICAgICAg\nYFxuXHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1bHQtY29udGVudCBpbWcuQkRFX1NtaWxleXtcblx0\nXHRcdHdpZHRoOiAuMnJlbTtcblx0XHRcdGhlaWdodDogLjJyZW07XG5cdFx0XHR2ZXJ0aWNhbC1h\nbGlnbjogbWlkZGxlO1xuXHRcdH1cblx0XHQjc2VhcmNoIC5zZWFyY2gtcmVzdWx0LWNvbnRlbnQg\naW1nOm5vdCguQkRFX1NtaWxleSl7XG5cdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5cdFx0XHRtYXgt\nd2lkdGg6IDM1MHB4O1xuXHRcdFx0Y3Vyc29yOiB1cmwoXC9cL3RiMi5iZHN0YXRpYy5jb21cL3Ri\nXC9zdGF0aWMtcGJcL2ltZ1wvY3VyX3ppbi5jdXIpLHBvaW50ZXI7XG5cdFx0XHRoZWlnaHQ6IGF1\ndG87XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblx0XHRc\nLyog5pCc57Si57uT5p6c6auY5LquICpcL1xuXHRcdCNzZWFyY2ggLnNfcG9zdCBlbSB7XG5cdFx0\nXHRjb2xvcjogI2UxMDkwMDtcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHR9XG5cdFx0\nI3NlYXJjaCAuQkRFX0ltYWdlX2NvbnRhaW5lciB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRc\ndFx0b3ZlcmZsb3c6IGF1dG87XG5cdFx0fVxuXHRcdCNzZWFyY2ggLkJERV9JbWFnZV9jb250YWlu\nZXIgaW1nLkJERV9JbWFnZSB7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMHB4O1xuXHRcdFx0bWF4LWhl\naWdodDogMTUwcHg7XG5cdFx0fVxuICAgICAgICBgXG4gICAgICApO1xuICAgICAgYWRkU3R5bGUo\nXG4gICAgICAgIFwvKmNzcypcL1xuICAgICAgICBgXG5cdFx0I3NlYXJjaCAuc2VhcmNoLXJlc3Vs\ndC1tZWRpYSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRl\ncjtcblx0XHR9XG5cdFx0XG5cdFx0I3NlYXJjaCAuc2VhcmNoLXJlc3VsdC1tZWRpYS1sZWZ0IHtc\nblx0XHRcdHBhZGRpbmctcmlnaHQ6IC4wOHJlbTtcblx0XHR9XG5cdFx0XG5cdFx0I3NlYXJjaCAu\nc2VhcmNoLXJlc3VsdC1tZWRpYS1sZWZ0IGltZyB7XG5cdFx0XHR3aWR0aDogLjM1cmVtO1xuXHRc\ndFx0aGVpZ2h0OiAuMzVyZW07XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0fVxuXHRc\ndFxuXHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1bHQtbWVkaWEtYm9keS1hdXRob3ItbmFtZSB7XG5c\ndFx0XHRtYXJnaW4tdG9wOiAuMDJyZW07XG5cdFx0XHRjb2xvcjogIzI3MjgyOTtcblx0XHRcdGZv\nbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRmb250LXNpemU6IC4xNnJlbTtcblx0XHRcdGxpbmUtaGVp\nZ2h0OiAuMTVyZW07XG5cdFx0fVxuXHRcdFxuXHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1bHQtbWVk\naWEtYm9keS10aW1lIHtcblx0XHRcdG1hcmdpbi10b3A6IC4wNnJlbTtcblx0XHRcdGNvbG9yOiAj\nYTJhNmE4O1xuXHRcdFx0Zm9udC1zaXplOiAuMTJyZW07XG5cdFx0XHRsaW5lLWhlaWdodDogLjEy\ncmVtO1xuXHRcdH1cblx0XHRcblx0XHQjc2VhcmNoIGgxLnNlYXJjaC1yZXN1bHQtdGl0bGUtaDEg\ne1xuXHRcdFx0Zm9udC1zaXplOiAwLjE2cmVtO1xuXHRcdH1cblx0XHQjc2VhcmNoIC5zZWFyY2gt\ncmVzdWx0LWNvbnRlbnQge1xuXHRcdFx0bWluLWhlaWdodDogNjZweDtcblx0XHR9XG5cdFx0I3Nl\nYXJjaCBzcGFuLnNlYXJjaC1yZXN1bHQtY29udGVudC1zcGFuIHtcblx0XHRcdGNvbG9yOiAjMTQx\nNDE0O1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRkaXNwbGF5OiBpbmxp\nbmU7XG5cdFx0XHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG5cdFx0fVxuXHRcdFxuXHRcdCNzZWFy\nY2ggLnNlYXJjaC1yZXN1bHQtdGl0bGUgLFxuXHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1bHQtY29u\ndGVudCxcblx0XHQjc2VhcmNoIC5zZWFyY2gtcmVzdWx0LWJvdHRvbS10b29sYmFye1xuXHRcdFx0\nbWFyZ2luLXRvcDogMC4wOHJlbTtcblx0XHR9XG5cdFx0XG5cdFx0I3NlYXJjaCBzcGFuLnNlYXJj\naC1yZXN1bHQtYm90dG9tLXRvb2xiYXItc3BhbiB7XG5cdFx0XHRjb2xvcjogI2I3YjljMTtcblx0\nXHR9XG5cdFx0I3NlYXJjaCBzcGFuLnNlYXJjaC1yZXN1bHQtYm90dG9tLXRvb2xiYXItc3Bhbjo6\nYmVmb3Jle1xuXHRcdFx0Y29udGVudDpcIui0tOWQp++8mlwiICAgXG5cdFx0fVxuXHRcdGBcbiAg\nICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5riF56m65pCc57Si57uT5p6cXG4gICAg\nICpcL1xuICAgIGNsZWFyU2VhcmNoUmVzdWx0KCkge1xuICAgICAgbG9nLnN1Y2Nlc3MoXCLmuIXn\nqbrmkJzntKLnu5PmnpxcIik7XG4gICAgICBBcnJheS5mcm9tKHRoaXMuJGVsZS4kc2VhcmNoUmVz\ndWx0TGlzdC5jaGlsZHJlbikuZm9yRWFjaCgoJGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKCRpdGVt\nICE9IHRoaXMuJGNvbnRleHQubG9hZGluZy5nZXRMb2FkaW5nVmlld0VsZW1lbnQoKSkge1xuICAg\nICAgICAgICRpdGVtLnJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDmmL7npLrmkJzntKLnu5PmnpzpgInpoblcbiAgICAgKlwvXG4gICAgc2hv\nd1NlYXJjaFJlc3VsdE1vZGVsKCkge1xuICAgICAgZG9tdXRpbHMuc2hvdyh0aGlzLiRlbGUuJHNl\nYXJjaFJlc3VsdE1vZGVsKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDpmpDol4\/mkJzntKLn\nu5PmnpzpgInpoblcbiAgICAgKlwvXG4gICAgaGlkZVNlYXJjaFJlc3VsdE1vZGVsKCkge1xuICAg\nICAgZG9tdXRpbHMuaGlkZSh0aGlzLiRlbGUuJHNlYXJjaFJlc3VsdE1vZGVsKTtcbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDmmL7npLrmkJzntKLnu5PmnpzmnaXoh6p4eHhcbiAgICAgKlwvXG4g\nICAgc2hvd1NlYXJjaFJlc3VsdEZyb20oKSB7XG4gICAgICBkb211dGlscy5zaG93KHRoaXMuJGVs\nZS4kc2VhcmNoUmVzdWx0RnJvbSk7XG4gICAgICBsZXQgc2VhcmNoS3cgPSBcIuWFqOmDqOWQp1wi\nO1xuICAgICAgaWYgKHRoaXMuJGRhdGEuc2VhcmNoVHlwZSA9PT0gMCkge1xuICAgICAgICBzZWFy\nY2hLdyA9IFRpZWJhQ29yZS5nZXRDdXJyZW50Rm9ydW1OYW1lKCk7XG4gICAgICAgIGlmICh1dGls\ncy5pc051bGwoc2VhcmNoS3cpKSB7XG4gICAgICAgICAgc2VhcmNoS3cgPSBcIuacquefpVwiO1xu\nICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlYXJjaEt3ICs9IFwi5ZCnXCI7XG4gICAgICAg\nIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuJGVsZS4kc2VhcmNoUmVzdWx0RnJvbS5pbm5lclRleHQg\nPSBg5Lul5LiL5YaF5a655p2l6IeqJHtzZWFyY2hLd33nmoTmkJzntKLnu5PmnpxgO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOmakOiXj+aQnOe0oue7k+aenOadpeiHqnh4eFxuICAgICAqXC9c\nbiAgICBoaWRlU2VhcmNoUmVzdWx0RnJvbSgpIHtcbiAgICAgIGRvbXV0aWxzLmhpZGUodGhpcy4k\nZWxlLiRzZWFyY2hSZXN1bHRGcm9tKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5bo\nv5vlhaVcL+mAgOWHuuaQnOe0ouaooeW8j+aXtumcgOimgeWkhOeQhueahOmAieaLqeWZqFxuICAg\nICAqXC9cbiAgICBnZXRFbnRlck9yUXVpZXRTZWFyY2hNb2RlU2VsZWN0b3JMaXN0KCkge1xuICAg\nICAgcmV0dXJuIFtcbiAgICAgICAgXC9cLyDlupXpg6jor4Torrrlt6XlhbfmoI9cbiAgICAgICAg\nXCIjdml0ZS1hcHBcIixcbiAgICAgICAgXC9cLyDluJblrZDnmoTkuLvlhoXlrrlcbiAgICAgICAg\nXCIubWFpbi1wYWdlLXdyYXBcIixcbiAgICAgICAgXC9cLyDlkKflhoXnmoTkuLvlhoXlrrlcbiAg\nICAgICAgXCIudGItbW9iaWxlLXZpZXdwb3J0XCJcbiAgICAgIF07XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog6L+b5YWl5pCc57Si5qih5byPXG4gICAgICpcbiAgICAgKiDmmL7npLrovpPlhaXm\noYbvvIzov5Tlm57mjInpkq7ku4DkuYjnmoRcbiAgICAgKlxuICAgICAqIOWmguaenOW3suWcqOaQ\nnOe0ouaooeW8j++8iOWNs+W3suaYvuekuuaQnOe0ouahhu+8ie+8jOi\/lOWbnnVuZGVmaW5l77yM\n5ZCm5YiZ5oiQ5Yqf6L+b5YWl6L+U5ZuedHJ1ZVxuICAgICAqXC9cbiAgICBlbnRlclNlYWNoTW9k\nZSgpIHtcbiAgICAgIHRoaXMuc2hvd1NlYXJjaENvbnRhaW5lcigpO1xuICAgICAgc2V0VGltZW91\ndCgoKSA9PiB7XG4gICAgICAgIHRoaXMuJGVsZS4kc2VhcmNoSW5wdXQuZm9jdXMoKTtcbiAgICAg\nIH0sIDIwKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDpgIDlh7rmkJzntKLmqKHlvI9cbiAg\nICAgKlxuICAgICAqIOmakOiXj+i+k+WFpeahhu+8jOi\/lOWbnuaMiemSrlxuICAgICAqXG4gICAg\nICog5aaC5p6c5bey5LiN5Zyo5pCc57Si5qih5byP77yI5Y2z5bey5pi+56S65pCc57Si5qGG77yJ\n77yM6L+U5ZuedW5kZWZpbmXvvIzlkKbliJnmiJDlip\/pgIDlh7rov5Tlm550cnVlXG4gICAgICpc\nbiAgICAgKiDmmL7npLrmnKzpobXkuLvlhoXlrrlcbiAgICAgKlwvXG4gICAgcXVpdFNlYXJjaE1v\nZGUoKSB7XG4gICAgICB0aGlzLmhpZGVTZWFyY2hDb250YWluZXIoKTtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDojrflj5bmkJzntKLlhoXlrrlcbiAgICAgKlwvXG4gICAgZ2V0U2VhcmNoVGV4\ndCgpIHtcbiAgICAgIGxldCBzZWFyY2hUZXh0ID0gdGhpcy4kZWxlLiRzZWFyY2hJbnB1dC52YWx1\nZS50cmltKCk7XG4gICAgICByZXR1cm4gc2VhcmNoVGV4dDtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDojrflj5bmkJzntKLnu5PmnpxcbiAgICAgKiBAcGFyYW0gcXcg5pCc57Si55qE5YWz6ZSu\n5a2XXG4gICAgICogQHBhcmFtIHBuIOW9k+WJjemhteeggVxuICAgICAqIEBwYXJhbSBzbSDmkJzn\ntKLnu5PmnpzmjpLluo9cbiAgICAgKiBAcGFyYW0ga3cg5pCc57Si55qE55uu5qCH5ZCn77yM55WZ\n56m65piv5YWo6YOoXG4gICAgICogKyAwIOaMieaXtumXtOmhuuW6j1xuICAgICAqICsgMSDmjInm\nl7bpl7TlgJLluo8g5aaC5p6c5Yqg5LiKb25seV90aHJlYWTkuLox77yM5bCx5piv5Y+q55yL5Li7\n6aKY6LS0XG4gICAgICogKyAyIOaMieebuOWFs+aAp+mhuuW6j1xuICAgICAqXC9cbiAgICBhc3lu\nYyBnZXRTZWFyY2hSZXN1bHQocXcgPSBcIlwiLCBwbiA9IDAsIHNtID0gMSwga3cgPSBcIlwiKSB7\nXG4gICAgICB2YXIgX2EzLCBfYjtcbiAgICAgIGxldCBwYXJhbV9zbSA9IHNtLnRvU3RyaW5nKCk7\nXG4gICAgICBpZiAoc20gPT09IDMpIHtcbiAgICAgICAgcGFyYW1fc20gPSBcIjEmb25seV90aHJl\nYWQ9MVwiO1xuICAgICAgfVxuICAgICAgbGV0IHVybCA9IFwiXCI7XG4gICAgICBsZXQgb3JpZ2lu\nVGV4dCA9IFwiXCI7XG4gICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAg\nICB1cmwgPSBhcmd1bWVudHNbMF07XG4gICAgICAgIGxvZy5zdWNjZXNzKGDor7fmsYLnmoTkuIvk\nuIDpobV1cmw6ICR7dXJsfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3JpZ2luVGV4dCA9\nIHF3O1xuICAgICAgICBxdyA9IHRoaXMuJGNvbnRleHQuZ2JrRW5jb2Rlci5lbmNvZGUocXcpO1xu\nICAgICAgICBrdyA9IHRoaXMuJGNvbnRleHQuZ2JrRW5jb2Rlci5kZWNvZGUoa3cpO1xuICAgICAg\nICBrdyA9IHRoaXMuJGNvbnRleHQuZ2JrRW5jb2Rlci5lbmNvZGUoa3cpO1xuICAgICAgICBsb2cu\nc3VjY2Vzcyhg5pCc57Si5YaF5a65Z2Jr57yW56CB6L2s5o2iOiAke29yaWdpblRleHR9ID0+ICR7\ncXd9YCk7XG4gICAgICAgIHVybCA9IGBodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9mXC9zZWFy\nY2hcL3Jlcz9pc25ldz0xJmt3PSR7a3d9JnF3PSR7cXd9JnVuPSZybj0xMCZwbj0ke3BufSZzZD0m\nZWQ9JnNtPSR7cGFyYW1fc219YDtcbiAgICAgIH1cbiAgICAgIGxvZy5zdWNjZXNzKFxuICAgICAg\nICBg5b2T5YmN6K+35rGC56ysICR7bmV3IFVSTFNlYXJjaFBhcmFtcyhuZXcgVVJMKHVybCkuc2Vh\ncmNoKS5nZXQoXCJwblwiKX0g6aG1YFxuICAgICAgKTtcbiAgICAgIGxldCBnZXRSZXNwID0gYXdh\naXQgaHR0cHguZ2V0KHVybCwge1xuICAgICAgICBmZXRjaDogdHJ1ZSxcbiAgICAgICAgaGVhZGVy\nczoge1xuICAgICAgICAgIGFjY2VwdDogXCJ0ZXh0XC9odG1sLGFwcGxpY2F0aW9uXC94aHRtbCt4\nbWwsYXBwbGljYXRpb25cL3htbDtxPTAuOSxpbWFnZVwvd2VicCxpbWFnZVwvYXBuZywqXC8qO3E9\nMC44LGFwcGxpY2F0aW9uXC9zaWduZWQtZXhjaGFuZ2U7dj1iMztxPTAuN1wiLFxuICAgICAgICAg\nIFwiYWNjZXB0LWxhbmd1YWdlXCI6IFwiemgtQ04semg7cT0wLjksZW47cT0wLjgsZW4tR0I7cT0w\nLjcsZW4tVVM7cT0wLjZcIixcbiAgICAgICAgICBcImNhY2hlLWNvbnRyb2xcIjogXCJuby1jYWNo\nZVwiLFxuICAgICAgICAgIHByYWdtYTogXCJuby1jYWNoZVwiLFxuICAgICAgICAgIFwic2VjLWNo\nLXVhLW1vYmlsZVwiOiBcIj8wXCIsXG4gICAgICAgICAgXCJzZWMtY2gtdWEtcGxhdGZvcm1cIjog\nJ1wiV2luZG93c1wiJyxcbiAgICAgICAgICBcInNlYy1mZXRjaC1kZXN0XCI6IFwiZW1wdHlcIixc\nbiAgICAgICAgICBcInNlYy1mZXRjaC1tb2RlXCI6IFwiY29yc1wiLFxuICAgICAgICAgIFwic2Vj\nLWZldGNoLXNpdGVcIjogXCJub25lXCJcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBsZXQg\ncmVzcFRleHQgPSBnZXRSZXNwLmRhdGEucmVzcG9uc2VUZXh0O1xuICAgICAgaWYgKCFnZXRSZXNw\nLnN0YXR1cykge1xuICAgICAgICBpZiAodXRpbHMuaXNOdWxsKHJlc3BUZXh0KSkge1xuICAgICAg\nICAgIGxvZy5lcnJvcihcIuiOt+WPluWGheWuueS4uuepuu+8jOWPr+iDveinpuWPkeS6hueZvuW6\npuagoemqjO+8jOivt+WIt+aWsOe9kemhteWGjeivlVwiKTtcbiAgICAgICAgICByZXR1cm4ge1xu\nICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogXCLojrflj5bl\nhoXlrrnkuLrnqbrvvIzlj6\/og73op6blj5Hkuobnmb7luqbmoKHpqozvvIzor7fliLfmlrDnvZHp\nobXlho3or5VcIlxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlc3BUZXh0\nLm1hdGNoKFwid2FwcGFzcy5iYWlkdS5jb21cIikgfHwgcmVzcFRleHQubWF0Y2goXG4gICAgICAg\nICAgXCJodHRwczpcL1wvc2VjY2FwdGNoYS5iYWlkdS5jb21cL3YxXC93ZWJhcGlcL3ZlcmludFwv\nc3ZjcC5odG1sXCJcbiAgICAgICAgKSkge1xuICAgICAgICAgIGxldCB3YXBwYXNzVXJsID0gKF9h\nMyA9IHJlc3BUZXh0ID09IG51bGwgPyB2b2lkIDAgOiByZXNwVGV4dC5tYXRjaChcL2hyZWY9XCIo\nLio\/KVwiXC8pKSA9PSBudWxsID8gdm9pZCAwIDogX2EzWzFdO1xuICAgICAgICAgIGxvZy5lcnJv\ncihcIuinpuWPkeeZvuW6puagoemqjDogXCIgKyB3YXBwYXNzVXJsKTtcbiAgICAgICAgICB3aW5k\nb3cubG9jYXRpb24uaHJlZiA9IHdhcHBhc3NVcmw7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAg\nICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IFwi6Kem5Y+R55m+5bqm\n5qCh6aqMXCJcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGxvZy5lcnJvcihyZXNw\nVGV4dCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAg\nICAgICAgZXJyb3I6IFwi6K+35rGC5aSx6LSl77yM5Y+v6IO95piv572R57uc5byC5bi45oiW6ICF\n5o6l5Y+j5byC5bi4XCJcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGxvZy5zdWNjZXNzKGdl\ndFJlc3ApO1xuICAgICAgbGV0IHNlYXJjaERvYyA9IGRvbXV0aWxzLnBhcnNlSFRNTChyZXNwVGV4\ndCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoc2VhcmNoRG9jLnF1ZXJ5U2VsZWN0b3IoXCIuc2Vh\ncmNoX25vcmVzdWx0XCIpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2Vzczog\nZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IFwi5oqx5q2J77yM5rKh5pyJ5om+5Yiw5LiO4oCcXCIg\nKyBvcmlnaW5UZXh0ICsgXCLigJ3nm7jlhbPnmoTnu5PmnpzjgIJcIlxuICAgICAgICB9O1xuICAg\nICAgfVxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgbGV0IG5leHRQYWdlVXJsID0gKF9i\nID0gc2VhcmNoRG9jLnF1ZXJ5U2VsZWN0b3IoXCIucGFnZXItc2VhcmNoIGEubmV4dFwiKSkgPT0g\nbnVsbCA\/IHZvaWQgMCA6IF9iLmhyZWY7XG4gICAgICBzZWFyY2hEb2MucXVlcnlTZWxlY3RvckFs\nbChcIi5zX21haW4gLnNfcG9zdF9saXN0IC5zX3Bvc3RcIikuZm9yRWFjaCgoJHNfcG9zdCkgPT4g\ne1xuICAgICAgICBpZiAoJHNfcG9zdC5pZCA9PT0gXCJwb3N0X3VzZXJcIiB8fCAkc19wb3N0Lmlk\nID09PSBcIm5vX2hlYWRcIikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAg\nICBsZXQgcG9zdEl0ZW1VcmwgPSAkc19wb3N0LnF1ZXJ5U2VsZWN0b3IoXCJzcGFuLnBfdGl0bGUg\nYVwiKS5ocmVmO1xuICAgICAgICBsZXQgcG9zdEl0ZW1UaXRsZSA9ICRzX3Bvc3QucXVlcnlTZWxl\nY3RvcihcInNwYW4ucF90aXRsZSBhXCIpLmlubmVySFRNTDtcbiAgICAgICAgbGV0IHBvc3RJdGVt\nQ29udGVudCA9ICRzX3Bvc3QucXVlcnlTZWxlY3RvcihcIi5wX2NvbnRlbnRcIikuaW5uZXJIVE1M\nO1xuICAgICAgICBsZXQgcG9zdEl0ZW1Gb3J1bU5hbWUgPSAkc19wb3N0LnF1ZXJ5U2VsZWN0b3Io\nXCJhLnBfZm9ydW0gZm9udC5wX3Zpb2xldFwiKS50ZXh0Q29udGVudDtcbiAgICAgICAgbGV0IHBv\nc3RJdGVtQXV0aG9yID0gKCRzX3Bvc3QucXVlcnlTZWxlY3RvcihcImFbaHJlZl49J1wvaG9tZSdd\nIGZvbnQucF92aW9sZXRcIikgfHwgJHNfcG9zdC5xdWVyeVNlbGVjdG9yQWxsKFwiZm9udC5wX3Zp\nb2xldFwiKVsxXSkudGV4dENvbnRlbnQ7XG4gICAgICAgIGxldCBwb3N0SXRlbUF1dGhvckhvbWVV\ncmwgPSBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cL2hvbWVcL21haW4\/dW49XCIgKyB0aGlz\nLiRjb250ZXh0Lmdia0VuY29kZXIuZW5jb2RlKHBvc3RJdGVtQXV0aG9yKTtcbiAgICAgICAgbGV0\nIHBvc3RJdGVtVGltZSA9ICRzX3Bvc3QucXVlcnlTZWxlY3RvcihcIi5wX2RhdGVcIikudGV4dENv\nbnRlbnQ7XG4gICAgICAgIGxldCBpbWdMaXN0ID0gW107XG4gICAgICAgICRzX3Bvc3QucXVlcnlT\nZWxlY3RvckFsbChcImltZy5wX3BpY1wiKS5mb3JFYWNoKFxuICAgICAgICAgIChwaWN0dXJlSW1n\nKSA9PiBpbWdMaXN0LnB1c2gocGljdHVyZUltZy5nZXRBdHRyaWJ1dGUoXCJvcmlnaW5hbFwiKSB8\nfCBwaWN0dXJlSW1nLnNyYylcbiAgICAgICAgKTtcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAg\nICAgICAgIHVybDogcG9zdEl0ZW1VcmwsXG4gICAgICAgICAgdGl0bGU6IHBvc3RJdGVtVGl0bGUs\nXG4gICAgICAgICAgY29udGVudDogcG9zdEl0ZW1Db250ZW50LFxuICAgICAgICAgIGZvcnVtOiBw\nb3N0SXRlbUZvcnVtTmFtZSxcbiAgICAgICAgICBhdXRob3I6IHBvc3RJdGVtQXV0aG9yLFxuICAg\nICAgICAgIGF1dGhvckhvbWVVcmw6IHBvc3RJdGVtQXV0aG9ySG9tZVVybCxcbiAgICAgICAgICB0\naW1lOiBwb3N0SXRlbVRpbWUsXG4gICAgICAgICAgbWVkaWE6IGltZ0xpc3RcbiAgICAgICAgfSk7\nXG4gICAgICB9KTtcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJl\ndHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgZXJyb3I6IFwi5oqx\n5q2J77yM6I635Y+W5Yiw55qE5pWw5o2u5Li656m6XCJcbiAgICAgICAgfTtcbiAgICAgIH1cbiAg\nICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGRhdGE6IHJlc3Vs\ndCxcbiAgICAgICAgbmV4dFBhZ2VVcmxcbiAgICAgIH07XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog6I635Y+W5pCc57Si57uT5p6c5YWD57SgXG4gICAgICogQHBhcmFtIGN1cnJlbnRTZWFyY2hU\nZXh0IOW9k+WJjeaQnOe0oueahOWFs+mUruWtl1xuICAgICAqIEBwYXJhbSBkYXRhIOaQnOe0ouea\nhOaVsOaNrlxuICAgICAqXC9cbiAgICBnZXRTZWFyY2hJdGVtRWxlbWVudChkYXRhKSB7XG4gICAg\nICBsZXQgc2VhcmNoVGV4dCA9IHRoaXMuJGRhdGEuY3VycmVudFNlYXJjaFRleHQ7XG4gICAgICBs\nZXQgdGltZSA9IGRhdGFbXCJ0aW1lXCJdO1xuICAgICAgbGV0IG5ld1RpbWUgPSB1dGlscy5nZXRE\nYXlzRGlmZmVyZW5jZShcbiAgICAgICAgdXRpbHMuZm9ybWF0VG9UaW1lU3RhbXAodGltZSksXG4g\nICAgICAgIHZvaWQgMCxcbiAgICAgICAgXCJhdXRvXCJcbiAgICAgICk7XG4gICAgICBpZiAobmV3\nVGltZS5lbmRzV2l0aChcIuWwj+aXtlwiKSB8fCBuZXdUaW1lLmVuZHNXaXRoKFwi5YiG6ZKfXCIp\nIHx8IG5ld1RpbWUuZW5kc1dpdGgoXCLnp5JcIikpIHtcbiAgICAgICAgdGltZSA9IG5ld1RpbWUg\nKyBcIuWJjVwiO1xuICAgICAgfVxuICAgICAgbGV0IHNwbGl0VGV4dCA9IHNlYXJjaFRleHQuc3Bs\naXQoXCIgXCIpO1xuICAgICAgc3BsaXRUZXh0LmZpbHRlcigodmFsdWUsIGluZGV4LCBfc3BsaXRU\nZXh0XykgPT4ge1xuICAgICAgICByZXR1cm4gX3NwbGl0VGV4dF8uaW5kZXhPZih2YWx1ZSkgPT09\nIGluZGV4O1xuICAgICAgfSk7XG4gICAgICBzcGxpdFRleHQuZm9yRWFjaCgodGV4dCkgPT4ge1xu\nICAgICAgICBkYXRhW1widGl0bGVcIl0gPSBkYXRhW1widGl0bGVcIl0ucmVwbGFjZUFsbCh0ZXh0\nLCBcIjxlbT5cIiArIHRleHQgKyBcIjxcL2VtPlwiKTtcbiAgICAgIH0pO1xuICAgICAgbGV0IHBv\nc3RVcmxPYmogPSBuZXcgVVJMKENvbW1vblV0aWwuZml4VXJsKGRhdGFbXCJ1cmxcIl0pKTtcbiAg\nICAgIGxldCBwb3N0VXJsID0gcG9zdFVybE9iai5vcmlnaW4gKyBwb3N0VXJsT2JqLnBhdGhuYW1l\nO1xuICAgICAgbGV0IGF1dGhvckhvbWVVcmwgPSBkYXRhW1wiYXV0aG9ySG9tZVVybFwiXTtcbiAg\nICAgIGxldCBwb3N0Rm9ydW0gPSBkYXRhW1wiZm9ydW1cIl07XG4gICAgICBsZXQgJHJlc3VsdEVs\nZW1lbnQgPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgY2xhc3NO\nYW1lOiBcInNfcG9zdCBzZWFyY2hfcmVzdWx0XCIsXG4gICAgICAgIGlubmVySFRNTDogKFxuICAg\nICAgICAgIFwvKmh0bWwqXC9cbiAgICAgICAgICBgXG5cdFx0XHQ8ZGl2IGNsYXNzPVwic2VhcmNo\nLXJlc3VsdC1tZWRpYVwiPlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1tZWRp\nYS1sZWZ0XCI+XG5cdFx0XHRcdDxpbWcgc3JjPVwiZGF0YTppbWFnZVwvcG5nO2Jhc2U2NCxpVkJP\nUncwS0dnb0FBQUFOU1VoRVVnQUFBR1FBQUFCa0NBWUFBQUJ3NHBWVUFBQUFBWE5TUjBJQXJzNGM2\nUUFBR2RCSlJFRlVlRjd0WFd1VDNNWjFQZDBBWm1aZlhMNHBTNVFvMlpFY3liR1wvSkZYNTgzRktr\nVDhsS1ZjNUZpVTZsaVdia2ltSzFHYkpmYzRNSHQycGMyODNnTUh1UEhhNXF4bFJPMVhVVWtzQUE5\nelQ5M1h1N1F2emIzOHNQSzQrS3lNQmN3WEl5bUFoTjNJRnlHcmhjUVhJaXVGeEJjZ1ZJS3NtZ1JX\nN255c2ZjZ1hJaWtsZ3hXN0hcL1BiVDhpb1BXU0lvM3F2NGpUSDY4d3FRSmFJQndEbDNCY2h5SVpq\nOTdWY2FzbVIwb3NtS3QzRUZ5QlVnUzViQWluXC85bFlZc0dhQzJ5ZUxmZjVLQXRPTjhEVFpYNTdO\nMFFMd0pZWiszS2hYZkVwR0pvdE5qSnY0NUhOOFZxTzFrVlM0YzBQemFkTDdDWTVWQVdUNGdRZEMx\nVUU0RmhBZEZVQ3htcmZCcGdBaVlFNkR5R3oySStSVWdDMWlJUnJCeGlWdm9hZ1wvQVJPMXBBd2hn\nRXE3MkY3bHdmbERDS1JxMndLMWQ2aUZMMTVEYWZuVE1rNDBtak91M1wvanNhVU9yalc4cytcL0s2\nckpZMEVHOU1YZitkTU1KV1hLdWJGTDc2aWdEZ29JUHpUYUVqOVdPSjNmR3ZGdXduUTJpYklCZzFT\nckU3U2R2em42R2NXRjl2bEhiazZnUEFaUldxNmlwdFZQbjBGVDVpd0dBOTBUVkVBSkY3RkJESXZC\nZ2lyQklhSVlObmtvZ3JlMUM1YlFXazc4Wk5tUmpWSFJkdzJUMjNoVG8rZEpyVmtsUno2Q2dFU3pN\nYUpDSXRnT0RBMGJxS3dDRVlia01aaDE2RngwSlNPejIrc1hzRGxDcEN1K2ExS1dHdmhiUUptcW81\naHFOUUcrQmNuZjY5OHFlR3BNZkRld0pwVWRjZzVHRkdSUm92a0dNWUJFUW5ua1NUaDJqdysxaDI4\nRGRkYnJYTFFrazJXZzNGZUJXTlYySTcwZ1RFVHduTHdTS3dDNGlwaTVRVkVIbXNUXC9xK1hQMjFn\nUkZPOFIyS3NBdTMwZkFGZmp0ZnZXTFdQK2UybitWS1hTQlJLNUhTNHNBMFNrWlArem9nbVdLZ3dx\nU29FMFhzaVkxR0o1dWp4eGhBQUZiRUt2WktmXC9BNXFpV3FWXC9wc3gxQkNna3Nqck5EXC8xdzBE\nRmUyXC96V1NzQVNMd2hGWW9BSXFhSldiUVZFSlJkb1p0MkNvUXJSZkJxaXZSWUJhR0NEZVpPelph\nSE5Ra3F6d3RZRUZaSHpVZ3orYUt5TEdFRndlVUJFb09UQ1BcL1NBV2x1S05wM0NqM1VtUVdVRUVr\nWkIyc2NldGFqUDBpeFB1aGpZODFpYXdPZzRvanljTVZYUUo0RG83RkRYamk4UERqRXdYR0pzZ0pz\nYngybFQxQTVQVUcwaGljc0ZaQkpUVnc2SU5INTB0dzBEcGRDVWhyRWdxdmVZNUFhWExzMndLM3RC\nQnZyK2hDTXMyaUlRZ2d3OFdTYU9xcW9qOGZBN2g2dzhcL0lReDJNUFl6T2lnNElCeFVveFdaS0hM\nTmVIeEdDSTVrbWNlZkFQaVhWSXJZZXZocmgzNXpydTNyTG9ad29BRlVnTWtQZ0x3aUtPSWZpUjZL\nZzFMT1p2b3c2TWNtQm5GXC9odTV3WEd1VU02V0JkdG9TbGJsY1wvU0FhRlV4ZFlIUjQ2cVJJSVNh\nVktpbjNxOFwvXC9QdEdnZ0tUVjF6MlZyWFNpY3FET29yNnA4RWlVNlRvSVNEZU1UaEVmRHMrVDUy\nOThkd2RoMFZlbnAyREFnWWJndStsdzlVTzlJVHZcL252RDJmdkQrbjJEY1dWTk8zMzNaVTI3M3c2\nNGlUSjRHblhuUk1nVEhXSXV6ZjZlT1wvK0psS0p1cHBQREFsUEQxZzdnSFRPaTZ3SnRiSW9nS2ZQ\nRFwvQnNwNEpMTnBCWEJqNWwxSllUUVwvVmRoTDhLbWhieUhSXC9KU0NaTXJYNnFhUm8yN1wvbTdv\nZmZTQVVrU2pYYUFGUDNFd2hYN2VPdmVKdDUrSTBVYVRGUGpNVlFWWkxIUFJxYVdUOHhSSkdRT3lX\nVDhlK0dBYjU5NVBIbDJDSjhPa0RNcXNCVktWMm4rVWxFak16Vjlsd1JJRjhpbEEwS2ZrV1lXUlRG\nR1pqeHUzMXJEdTIrcUdDUWY3MlpKNThqbFlpNFNIMTd5R2lhSUFNWU9lUHlreE03ZUVJV0VFQWJH\ncHZBVmowbGhxTGtDU0NuTUFZMnJtRExSRVBxOTJXbmNQQTFaT1VCazRma0NhVkpoWXozQkIrK3R5\neVBUcWpQXC9VTWZkK29TUzcxbnRlMWN3U3RPUUlhQkhBajdcLzgwc2M1ZlFqQXhTVlFaWmxxQ29Q\nNnhJNCtwUUpRS2hxVFRJNnpWd0prQ2VDRFQyNjI0OFZyekZYUTdvK296N3hqTFREaVlhd2NENEJT\nWkRENEFpXC9cL3VnT0Jzd25nbmFjVkladUFqZmY2VVp0T0UwNGNXMFhESTF6NEU5ZjdpSjNBMWk3\nam1HZUkwM1RVR2Z4OE1oVlMwS2R4aUlUcHBsZ0xmS1o5dnhuMXBETEJFUzFvMEtDTWQ1NWN3dDNi\neGt4VlVZTVE2czdvVVptR2hXXC9pRWlhWTVwVlN5MHA0WmpOSThIVG5SSlB2aHVqY0Jsc2txQnd6\nUFJwT0ZrTXl3R2pnREJFajc2bFc1T1pkaWNcL0RrRGdrUGdTXC9hekNyMzY1cGNGbnFTdFRlNUF0\nWWxEVDBPXC9CbHRWUFBsOUxxcXFxaWNXMndCamhHZU5Ra1pKQkg4TUMrT0tySVk1em1pbkNrSVlj\nSlFBQ2xnRTBra3Q4WHk3MXFvQ2NBR3BlMkh1cEdvSVN0aHJqN2JlMmNlOEdncmxpa3NjXC9pVGlR\nbUczWHhkdzZ1bXE2VU02aUg1TTJuZGRRVnNCVFQ3M0ZzeDNnbTZkSGNEYUI4d2w4cFBxcEhhMzhw\nd0hrMVV6V3VRRTV5ME12ZWl4OVIrcEgrTTJITndVTTVoekNyNHRcL1VXZHkwWUJNM0p1QVMxNWVm\nNXQ3QzRiQ1wvXC9Ob0Q1VlA0V3dHNXpNbFBHTytUNTlCMGpQNGtrVjl5S0l5V2RpcEwzckJzeHhI\nMzdHOVZ1S1h6TVpqYmlIWmRVRENpdlVPUmtKTjAyVCtFUlBCczN4cjYxanhZU0hORnlvZVlKcjh2\nMThOY1Rnc1Vab01EajNobVJ0ZGpUVlwvRFgrWEJzaTAxcHBGbXdST096OHhROXlcL25lSCt2WUZF\nTENKeVBtK0xqaUlnK21rQmNvNWM1RlRJSWlDYVVvZ21NT0o2OHR6aDZmZUg0dHlwSlJKaWlKcndi\nelJkdk0zNXZxdjluWXZLYjJFTldmU0MwOWJxYWVlbkdPTDlkOVp4NjFvaVFNVGlVbjJORUZLcTJ3\naUFuRk1acHA0V2FlSGdwQ2p1bDBmQUYzOTdpY0lQVUpsMEVoRDZOME90WFJJZzA1dk85QkhuYWNp\nczgxUG1IdTl2WTZ1dmxieFFFR3o0OUZPU3dBVVprOFZoYXlmYWhuNEVHRlhBd3pcL3RvY1NhYUEy\nRkh4djNwRWdtejcxWVVIRlcrYzNWa0xOZXNDdUplWUQ4eTRmYjZGTkJndXZnK1V6RGhOaVFMRmN6\nNG5aYTB2cmZ4UVVcLzdjam9RK1NudzloN2tHXC8rdzhPWHFNejZTVUI0V3dSRHRLVFIzTE5ZaHZh\neDNRVTlGWkI1UU1TTFR0T1FSYzdQY0lSXC9cL2FkdEpQS1FUZDNPbzBJcUlSYlwvZ2RScitEYng5\nU29HYzBhVE1Rc1B2WjZ1Zk5iWW1TVCtcL3RNRGxJWWFFb0lLcjUwdURDb1dBV1NSNXpcL053cXdH\nSUN4SzJhWlpyZ1pFMUNYWTZqcHh2MmhBQ0VUb2dtY3RuNUVXTEg3XC84QkM1V3dNU3BvMHNJemVB\nVUR1cU9TYnIzSUI4XC9Pbnk1bVhSaDFCRDlGR0JLdmlSeG14ZFZEZzEzYkxWTG9URklhcWljVXhY\nOGQ4UEQxR1lEVlFTZDJtSUs3eGI0SytxMXEwdEt2eEY3S3RaSlVCaUNxS0FSTmR4ZGtKeGtRZVB4\nelNBQk10SUgySU5cL3ZQaGdUajF4aVJIUVBSK2loQW1KNHNsNmd2ZjBrb0Frc3lncUMrN21ZMCtT\nWU1JZHR4cFFGRVpCWVJoTDAycGZoU1FhRmlwSWZSN1B3bEFZa0dwVzFoYWVKbWQ0VUFKRXNSY05k\nRWNjNUhcLytvdytwQjhxaFJFUWN0Q3FFcTh0SVBcLzhxMjMwMjNWenlaNWJNWENMaGRkbzZLSVwv\nMmdkV0F3Smc2SUFcL1BEcEVqc0ZFdnNGYzVEVUhaSWpmdkwrRnpYNWIwTEdsNTVMekQ4RTFPZ0Nu\nRmNEQUxoK01nTVwvK2NvakM5cVViVXJOeVRRN2JnSWpleks3Z25ubjFMTm1IRFBIQmd5M2MzQXJF\naVBUY3prNEk0eE5laktZMGdEaW5iYXNrR0hmM2dUOVwvelR5RWxLZlNKSkhkZmMwQkdlUGROOWJ3\neHUzSVU0VU1YZXc2eTZka0hGWDBGOURyY01wcWJVSWtxWjhuckJ3Q3ozZUJyNTdzb3lJSGJlbGwy\ndFJKS0FtRUZmRmFhUWpwOTFzYkhyOTRiMU5iUWtYK0JLTlNRRWpEZDN5SVNwV1Z1N09SZTZmYmpo\nWWdFbUhwVHQ4dnZ4N2h4WUZENmRPUXFUZUF5SFZhNU9KckJraU9makxHclwvXC94aGhTbnFCQlpC\nQVFaWEZYSnFvMkZxZ2lHT3ZlTEFFVEJsZDR0YU5tV0d2TEhSM3ZJUzZYZXBjRExkaTBYMHRlUW9V\nZTI5K0lCZVRpK1lMZTB1Qjh6cFBIY0NCKzhleFBYTnBWK2p3M1d0Y2tLV3RMY1pJczZpY1RnNGw5\nNTRzZzZ4QTdGM04wajRNOWZ2cERPRTNJWWpxazVuWGNMa0Zjc2k4MjhXXC9QeE1nSHhEcWx4dUhH\ndGpcL2ZlVG9SQ2FRQ2hyV29pclRZZ1lzVTZITmQ1TVpHYU5uZG1CVUMrK251SjNiMFJnQUh5cW9T\nWHJWdnUwZ0RwYmxoYU1pRFVDb1wvVUZ2am9sNXNDU0U4MlNlWGFma05iMGRHUW1vSzhLRURpcmlv\nTGpFcmcwWmNIR0JjSjJKREVyeVwvRFhzZkwwcEFUemRiTDFCRHhCZDRpTlRudTNlbmpcL2wzVkVu\nYVwvaTY2dzM0RXJ0STZ5dXJ0eFh6MVRwT1p4RENoeFwvXC9iN0hOODhHNktzVW1UcEdrb2ZXTjBm\nUUVQa0dSbjJcLzhkbnNcL2VIVEd0NXJQT0JPUjJNTTg4UG5SdXBLWkNaQTN6NFwvbTJzWmV6cExl\nRVlobkpqelVTVWRmR0FzREJHVG1vMEJ2N3krSHNjalB0d1poM1VFZFpHU2t0ajVwQzBmUWdCa29Z\nNXJwdlpHZEVpOG1zZnN4S0FzTGUzbjR4dzU5WUFiOVwvcmkrZElPczBOalk4SW9lcENKcXROeFhh\nak1tMmNqaVgxSjgrTzhmVDVIaXE3RFdcL1hVTENWTk10UWhLYUc0TnZEYmFoYnZ3aEF1cjV2d29l\nY2gxbWRRUGVNXC9iNFN2ZEJYc1BHNVBNYWc1XC9IZWd5MXNEUmorNmk0cExsK3BVOFNXTFViQnJj\ncmg5S1pyWGRuTittWEhldlJKQklPVUNBVU9qTml4K0pjWEdPWWVKbHVUQmpuZWwzUXZodTNXMDRM\nc1YzMytMb0U2VjBQT0c3MHNlaDdiUExuNWtxdU5iYVdEWG9XUFB0aVUwNWtGeUJZMitwS3d2ME1U\nTTRwYU5nN00yT1drYlo5U0RhUytsYnEzdlVrMkhRcG5CWkF2SHVjNE9CekJKblRrM0N2UE05TjZT\nN1VzbkI5b1kralNBU2xjZ1g2YXdaWE15Z2lJeCtZNjhJc0hhOEYwRmZDZWFaaTYrM1pqMitUdTJk\nWWFibVZXMHJWRDNQZ25VREZTTzJjR21BRGZQQWYrXC9uUVhhZGFYaXFXWGZTTVdwZE05ajR3Q2Y4\nalBrZ0hSR1NWaUtybGJ5VkRzSGxWMWhQdjNOdkN6dTVtNFZqSk1WanJaVW1uN0ZTV1JQcW9wMWNT\ndUROdmRpU0dyNDYrKzN3VytmdnBDS0JKcVIwNlVaQWlCNm9OczJKRUJCVFwvY1p5VUFrWDJHU0dR\nTFFsRlVzZ1hhdVdNOHVIOFRkMlwvRWluWVZ4dkdGWkZGV2UwZnlyVUZuWFJGV2pqR1RGVHFBd3Q0\nbEdOKytRSUVVbFVsa1drVFdHNkFvQ3BrTUlhTTdKbWFqS1BoeGorRmlYVmxuQjNMSmdHakRtUUtp\nSXpUU2RJQXlMNUJhSUV0S3ZIMXZFOWUzZ1I3TEZYSGZTT2lobWloa3RaKzlEVXgwekJ4aXc1ekRB\nYnN2Z1crZjdtTlVHdGdzazU1Mk90YzA3U0hQYzlrOXhYdHBPMXdUVlBPMUIwUUd5cmdTM3NaSkRn\na003Wmpqbm5VT0RSamlaM2UzY2UrMmtZWTZNVmZpVStLZ2dlZzdUdXMyNEZGMDNod1dvT25tays5\nR2VMNXpER3MzVUZaR2ljTlVMNXdUTGJvV0NUTFVWRVVnSXQ0TklQcTlGKzNzbDY0aFZlbVI5Ymhi\naWFaQ3BcL1JJdTdcL3R3UXJYVmFITUQ3QzltZUROZTlkd2ZmUDAyRXA4ZHF2aExZYkQwUU1jakx3\nNDc2T1JSK1VIS01vVVNUcW9COVRFRUpkZ01QTHJaNG1ZcjI2XC84V1VDc2xDbWZuWXJlSVl6YUZw\nY21HOFZ0aDB6bkpXVlNUdk8wS2dza0ZtUGF4c3BOamNTYkF3TUJuMkxRVzh5QTJtTkM2Z0RWS0ZG\nS21EXC9vRVRoRWp6Yk9jQzRKTWZNSENORHlWbGFZWXRXbDFPS0tcLytucFNIY3F5ZmppYVFxZ1lx\nNUJiVWtSa1wvZWMydWxtSVhOOVFUWE5qS2tsZ1BQU3ZUU0RKazF5SG9jMjJURTUwamR4TkgwY0RC\nQUlTYW9MSmlKOU1EcG85XC90SENNdkRRcHY0Wk5XYTJnOWIwc2pQcG1yRlZ0V1kxZ1gxdGxsYW9n\nc3hIbGMxaG5XKzdrT2xhUlBHTjJrM3B4ZjIydVNiWlh1UTl6ZTd1UG1kZ3ByS2xSRnJtT2JwUHl1\na1ZZU0tIVDUyY29kT0NIQ0pCbUtFbmo2XC9SaWxTMUFaVmdhdEFFOHRwTCtJMVwvRng5bGI0WFRP\nY3BodGx2YVkrcEo2SHpGWGE0dW1pQ1dGZTRsMkI2MXM5WE5cL09ZRTBCTDg2ZTR6Z01rbnBDbkFL\namc4MmFVWDVjMGNha29qVTdPd1hHRlJ2aFVzbkdTOCs1VzNwZWJiSzhsbkViRFluTDR5Y0NDSjBt\nalZVTU1jVmtrT3FRaWhGWGNJa3NjZGplenJDMXlaNTR6VWNJU0p3T0Z3V3FRbFVPUzhBaHdjSUlD\nN29MNnNWZWpyM0RRdnlLT0hRWmZNTmdJbkJsQkRcL08rV1ZlSkdNRWRjZlVsRUhhNTdJS3MwNWFB\nWlBGcVc1eGloeGpmeWJneWp1UjJiWnVqSTJORE5ldjlUSG9KNklkWXFLRTNtQ0l5aG1LK29nTjBk\nZUV3UEk3eXl6SDRIam9zTHNcL3hIQk1JWE1UTnZWQXQweEx5eWg5UzVqUjJGUWtROGs0ZnNmRjlC\nOU54V1RwZ01ScG85eVVMOElqMlpnYTlIc1dcL1Y2Q0RVWlVmWU1lQVFyRFkzaWNXSEJaNFRFcW96\nUFdjV1p5SFFwWHhtZVVNRWtpb1wveW9MYU94eFwvR29rSlwvamdockV6VUthTkFvSVhCMWhEeUhQ\nXC84RzVyRTgrTFwveThJc3BNRlVPWW1WanpTbFA0cFhBUlZYMDlodXVUT3pJWVdXVlpnc0ZhVDhi\nMjlmcVFxSWtCRG5cL0s0cTEwZ2ltak10VUczY1drRVZra3FNSmdtQmJwcmhrNHR6c0gwNVBRS3dG\nVm9SMG00NXdUNTBvY0QzUGs0MUtvZHc3SXBIT3ZSODBLWlhLNkZPSjh5SXV5WGVhVGh5TVJVVGVj\nYTRRMjZkUmk5S1wvTll5VGdFbmc2U2tcL1RReHZDXC9ZTHFFeElKTFMwOGE2UXMxU1lhMGJncWw0\nU0xLXC9cLzZaaWFhME9cL1Rab2RkYktFbFNNQUw0OGNiMm1veU05ZTV2YTFQaDgrcUYxdVlBZHhz\nMXRUclNKbUttNFU4TUI0QkIwYzVoa2NsOHBMUHBHU045bXVGOXk3RXJXemhlaWtEaExMdEE4T000\nRGlRWU1yOTFYc1dPXC85K2JrQ2lqZVVxb2gwWEZ5cHpRM1FsOHFNait4alRFd2lObHRLRTlIb2Yx\nN2FvRGRwWEVyUGh5QlwvRmN4ZGFkUzNHOTdRQzI3d0NFaGNCTTNQdkVwaVVoU2xJaUh4MEJCeVBQ\nUFlPamxHeFBpS3p0RGhxdzR2dmlqT0FnOXpidzlMMXRxMk90ZVcxeWRmcG9KcW1XNlorKzBPSHNU\nWTBXVE5OVWljeGtoWGZVZDhxSkZha3Erayt4WFk3SjhPUEdTVVJpRjVtY1AzYUJyWTJqV1RaVWxy\naWY1aUhkTVlZYWRBVGh5UFBobVdld0dlZmJaWE83NVFEcGF3YlpoZU1DMkJ2djhEZUFac2Z1TXEw\nYk1aZTROQ3hCVDRvQndscXRCakptdEFlVzBcL1NqbVpQelhYVTFQYkxBV1FobmdjUU5YSDZxSXps\ncFJMSG9yOHNBVHBmTlUwa0thd3BjWDE3RFRlMkxQcnNjZzhEQW5RRzd5UkJLUGxodUc3VWxqajli\nU0Z0T2ZOQlJnQ0ozNnYxOVpodmtOSlJVMGJBYU01MlgrVFlQeHlIRWlcL0hidkFKUTRRV2N5QkR1\nRlFPR253RVJyVFZhUiszV2dzQXJiYzF5UDlcL1wvTG1NaHp6QldqYko3blRtWDkrOUVWb3huUUh0\ncWV5b2RTV3kxR05qTGNHZG15bDZHWkN4Z1lUZlJJcmRFakNsMitPNG5cL1o5VGRTWjU4MmptbEVE\nT1FzK1VxY1BtaUxqUElMV3M0TG9TSGFHcXVQQkVmQlwvdTJNY0h3M2htWnphbm1UKzBVckU3eVJq\nSUNhVUlYeXdRYzJReldhZmVcL1BpbW1EbTV3TXlcL2JGa0ZJVXJoSzVPbVJGWFRzd1RhZkliMXpk\ndzk1WlNzTEdKV29kSXF6bmpCR3FicERwMVdrYkU2dmRFWUtUOExYTXg1NVJRcDRVXC80YmJiUUpc\nL1dnNkV6NGNOM0M1dW1VUnMxVTJoNEN0c0JSVEN0SElyTkVaRXZYbnJzN081anhPR1pKQ3M1RmpC\nRVpseFFNV1NXRWVtdFJ4QldPVnFCMEU3VWxyRDVPUGlRYUVhN0pXUTUrYlJWMkFwenhXSVZCYXd0\nY1BQYU91N2U2cUhQdkl2KzNWZklFdDNvSW9OK09DMk9JOEpsQ25WRGw3UWRjdnVGdmZyNzZhQk1D\ndnhrYkhwYVNOOTFcL2d5aDIweUJMZ3dWcW9iQU1aTVBDNHozN3JYWTllUzdmUnpuSG5sSkx6SVEw\nbExXbU5BMzNHNGRtSVVndzhpaHFSODUyVE16RTVCRndKQjJzbXFNUVpiZzFzME4zTDdCVGtUVkJH\nNHR5RWprY1JreTJncURKeVZ2Q3cwSFlpckNcL3l2VDJtaUpcL24xZWs4R3JwTTd4MmszdUZBZjcx\nMlJqZUJOREZHQ2pzVUo0Z1RNeXlaRjl2enZFcU9Cck45WmsxbFpONFlRSWl4MmErcGtNbjZjNjlV\nbmVQMFJTa3UyR3Fwb1lVWDBBVnZpWXdjcGVqbXFJOVo3RnZidmJ1TFd0M1J5RzlXbG0wYXhKMDhX\nRjdrQlplWEUrU3BEajR1MzhwMVVFOVFGbmZlWUJlakpVRGxSSjk2SkNxMHorc3I0akErd2RzaFgx\nV01hYU84UGV5OGdjYUR3bFVXZjloZ2FhYkU3TmkrOFwvYWE1YlIxa25BQWtQU3FkV2xoWFNMRUVs\nODNVZEJqMkxJaFwvTDhNcnJHeG51djdHSnRZRk01NE8xWGpXRWJ5cVFjYXVOd1lsZ3lJTUZrOGVZ\nYkJZb2pZS2NENUN6OSs0RjlyZjJRWk1hR2tnYitWZWxmWFJPQ3pXRkRYZVB2ejNHNGJpQ1NRWlNJ\nbGEramN5Yms1eEV5Z2JoUFNocU1TYTdXc3dubit2K2tNWjN4T2JtOEpQSmpUQ21kSFRFSTBjaU05\nbkh1TDI5Z2JmdTl0Qm5vM3E0THVlelV3MElvcnhPb2lWSGpjcm8xQnBUSWEra21HZVZ6aEl1ZFk2\nZDE0MFozaTlcLzRodGlsXC8zTTgrVnRQXC9xOHNrMDYwVG5BZlwvdm1FSHRIakJiV3hPR1RxTkNT\nUUd4ZTFTWnp6ZWttRjlvQ2dHaDR5Z25VQkNPekZZcDhpRGZ2M3NLZG13YnJtZnhhT0RrNUpDeHBv\nU1BDMjNPaXFaTGJxcU9NMEZBUUJoV1wvZ3N4ZjZkUnBHaFN0MHp3WHhyVWwreE5UVGhIU3ZJVFI0\nVitcL0htSFwvcUVUcE9aRXVsZmlOcENsRE5vM0EyQm5KWE9jRUlKcXBuNGl1Z3NsaVN6N0JNQngy\nVEVhMkd1SE9qVTI4ZFc4Z3JUbU1wRUxUaGdoR3RFbGVMUlFpbFZOOGJyVFNVVE1XYzh2VDFHajIy\nZk1FZWdMTnp0ZlVnTlZmMHo1QUUwcytxXC9QY3JWc2hzUm55RUQ0OWZsSmc1K1VRUGlFMVFScEYz\nNzBZS1NWYWtCaFJ4dnRvK1pESld4TmJ5VUVzenFHWFFyU0NieXU0c1puaHdmME45S1JXMGNUd2t5\nMmVyZWlvTGhxZDcwMGRqVUJQQjJTZVNUcTMrZ2l4V2JleVRMMU1mVmZ0TGQwbXdUQUhpTU0zMzVW\nNHVyTVBKS1FwMUh3Uk5GZVc5Y3ZLMmhlZm1xblhpQmt2N0N6NXA3VVUrSWNIRzlLWkxpMENNZ1l1\nM0ZKNFRaSFFCVEc4bGJLUUxxMUFUelhmSFIrNFwvc2R6aXU0VlwvUThacU5NXC9pc1lzd0NWSVVk\nWk42UkxwRHdpZVBtd2c1WFM2dlwvNTlIM3RIVE9mNjBzU3RXeGthaHZnVVFEb1RCT3U5RnlVU0dU\nYWNTMmo3M2p0YkFvcThRaUk0S3BVMDdlTGtXOCtZZ2NmWDI1M1E5a210ZjdWNUdhOEl5S3ZNNnVC\nWHMwRlZGaDJqcWRpTEZCNll5U05GeWJEcGk2OWVZdlwvWUkrdHZJaSthVlwvbDFGNFA1M2FOeW9r\nQVZoY2h1dnhRRit2NFlcL2JURWczZHVDMTFPRXlKYm1JWCtDSVBhVDgwNVo2ejRMaURuVkk0Zncy\nbFNCR1Vock9KcythY28zUWJLT08zVU5CMlN0VVg2M2FNOEFCS25LWkNcL01kSisyVGNsMG53WFAz\nXC9uRHE3ZmlHMHYycFJBRmpNT3J2d3hDT2JTN2pFdXJwb1AwMjlxV3dXcG55UWMyWkhqcjkrRTRa\ncDJUVWpKYm5lOStkMmprUUNpNzlPTDlsNjlcL3lCeHVMTUZ2UE1tdXpiMFc3alZqQnY2K1ZhY3Ew\nK0xacHNCU0t5dlVGTWVmNXZqNVdFbE5BdHJLNW9ndDZpYlR6NGZxcXpyRnh4R0R0cGlrRmI0MWM4\nellXOWxcL0Y1Q002YUZHTzdWdUxRSTU4ZUU5QUlhRWdkOGt1Zmd3UCt2SG85eE5LYlc2QzZ0TmlE\nXC9EeldsUlNpNTlReGtBQUFBQUVsRlRrU3VRbUNDXCI+XG5cdFx0XHRcdDxcL2Rpdj5cblx0XHRc\ndFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtbWVkaWEtYm9keVwiPlxuXHRcdFx0XHQ8aDQg\nY2xhc3M9XCJzZWFyY2gtcmVzdWx0LW1lZGlhLWJvZHktYXV0aG9yLW5hbWVcIj4ke2RhdGFbXCJh\ndXRob3JcIl19PFwvaDQ+XG5cdFx0XHRcdDxwIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1tZWRpYS1i\nb2R5LXRpbWVcIj4ke3RpbWV9PFwvcD5cblx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0PFwvZGl2Plxu\nXHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtdGl0bGVcIj5cblx0XHRcdFx0PGgxIGNs\nYXNzPVwic2VhcmNoLXJlc3VsdC10aXRsZS1oMVwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInNl\nYXJjaC1yZXN1bHQtdGl0bGUtc3BhblwiPiR7ZGF0YVtcInRpdGxlXCJdfTxcL3NwYW4+XG5cdFx0\nXHRcdDxcL2gxPlxuXHRcdFx0PFwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1\nbHQtY29udGVudFwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29udGVu\ndC1zcGFuXCI+JHtkYXRhW1wiY29udGVudFwiXX08XC9zcGFuPlxuXHRcdFx0PFwvZGl2PlxuXHRc\ndFx0PGRpdiBjbGFzcz1cInNlYXJjaC1yZXN1bHQtYm90dG9tLXRvb2xiYXJcIj5cblx0XHRcdFx0\nPHNwYW4gY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWJvdHRvbS10b29sYmFyLXNwYW5cIj4ke2RhdGFb\nXCJmb3J1bVwiXX08XC9zcGFuPlxuXHRcdFx0PFwvZGl2PlxuXHRcdFx0YFxuICAgICAgICApXG4g\nICAgICB9KTtcbiAgICAgICRyZXN1bHRFbGVtZW50LnNldEF0dHJpYnV0ZShcImRhdGEtdXJsXCIs\nIGRhdGFbXCJ1cmxcIl0pO1xuICAgICAgbGV0ICR1c2VyQXZhdGFyRWxlbWVudCA9ICRyZXN1bHRF\nbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLnNlYXJjaC1yZXN1bHQtbWVkaWEtbGVm\ndCBpbWdcIlxuICAgICAgKTtcbiAgICAgIGxldCAkdXNlck5hbWVFbGVtZW50ID0gJHJlc3VsdEVs\nZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIuc2VhcmNoLXJlc3VsdC1tZWRpYS1ib2R5\nLWF1dGhvci1uYW1lXCJcbiAgICAgICk7XG4gICAgICBsZXQgJG1lZGlhRWxlbWVudCA9ICRyZXN1\nbHRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLnNlYXJjaC1yZXN1bHQtbWVkaWFc\nIlxuICAgICAgKTtcbiAgICAgIGxldCAkdGl0bGVFbGVtZW50ID0gJHJlc3VsdEVsZW1lbnQucXVl\ncnlTZWxlY3RvcihcbiAgICAgICAgXCIuc2VhcmNoLXJlc3VsdC10aXRsZVwiXG4gICAgICApO1xu\nICAgICAgbGV0ICRjb250ZW50RWxlbWVudCA9ICRyZXN1bHRFbGVtZW50LnF1ZXJ5U2VsZWN0b3Io\nXG4gICAgICAgIFwiLnNlYXJjaC1yZXN1bHQtY29udGVudFwiXG4gICAgICApO1xuICAgICAgbGV0\nICRjb250ZW50U3BhbkVsZW1lbnQgPSAkcmVzdWx0RWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAg\nICAgICBcIi5zZWFyY2gtcmVzdWx0LWNvbnRlbnQtc3BhblwiXG4gICAgICApO1xuICAgICAgbGV0\nICRib3R0b21Ub29sQmFyRWxlbWVudCA9ICRyZXN1bHRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4g\nICAgICAgIFwiLnNlYXJjaC1yZXN1bHQtYm90dG9tLXRvb2xiYXJcIlxuICAgICAgKTtcbiAgICAg\nIGlmIChQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdV90aWViYV9zZWFyY2hfb3B0X3VzZXJfaW5m\nb1wiKSkge1xuICAgICAgICBUaWVCYUFwaS5nZXRVc2VySG9tZUluZm8oe1xuICAgICAgICAgIHVu\nOiBkYXRhW1wiYXV0aG9yXCJdXG4gICAgICAgIH0pLnRoZW4oKHVzZXJIb21lSW5mbykgPT4ge1xu\nICAgICAgICAgIGlmICghdXNlckhvbWVJbmZvKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAg\nICAgICAgfVxuICAgICAgICAgICR1c2VyQXZhdGFyRWxlbWVudC5zcmMgPSBUaWViYVVybEFwaS5n\nZXRVc2VyQXZhdGFyKFxuICAgICAgICAgICAgdXNlckhvbWVJbmZvW1wicG9ydHJhaXRcIl1cbiAg\nICAgICAgICApO1xuICAgICAgICAgICR1c2VyTmFtZUVsZW1lbnQuaW5uZXJUZXh0ID0gdXNlckhv\nbWVJbmZvW1wic2hvd19uaWNrbmFtZVwiXTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBs\nZXQgbm9kZUFuY2hvckl0ZXJhdG9yID0gW1xuICAgICAgICB7IGVsZW1lbnQ6ICRtZWRpYUVsZW1l\nbnQsIHVybDogYXV0aG9ySG9tZVVybCB9LFxuICAgICAgICB7IGVsZW1lbnQ6IFskdGl0bGVFbGVt\nZW50LCAkY29udGVudEVsZW1lbnRdLCB1cmw6IHBvc3RVcmwgfSxcbiAgICAgICAge1xuICAgICAg\nICAgIGVsZW1lbnQ6ICRib3R0b21Ub29sQmFyRWxlbWVudCxcbiAgICAgICAgICB1cmw6IFRpZWJh\nVXJsQXBpLmdldEZvcnVtKHBvc3RGb3J1bSlcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIG5v\nZGVBbmNob3JJdGVyYXRvci5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGRvbXV0aWxzLm9u\nKFxuICAgICAgICAgIGl0ZW0uZWxlbWVudCxcbiAgICAgICAgICBcImNsaWNrXCIsXG4gICAgICAg\nICAgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVu\ndCk7XG4gICAgICAgICAgICBnbG9iYWxUaGlzLm9wZW4oaXRlbS51cmwsIFwiX2JsYW5rXCIpO1xu\nICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAg\nICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgJHJlc3VsdEVsZW1lbnQucXVl\ncnlTZWxlY3RvckFsbChcbiAgICAgICAgXCIuc2VhcmNoLXJlc3VsdC1jb250ZW50IGltZy5CREVf\nSW1hZ2VcIlxuICAgICAgKS5mb3JFYWNoKCgkQkRFX0ltYWdlKSA9PiB7XG4gICAgICAgIGxldCBv\ncmlnaW5hbEltYWdlSW5kZXggPSBkYXRhW1wibWVkaWFcIl0uZmluZEluZGV4KFxuICAgICAgICAg\nIChzcmMpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzcmMuaW5jbHVkZXMoJEJERV9JbWFnZS5z\ncmMpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG9yaWdpbmFsSW1hZ2VJ\nbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBsZXQgb3JpZ2luYWxJbWFnZSA9IGRhdGFbXCJtZWRp\nYVwiXVtvcmlnaW5hbEltYWdlSW5kZXhdO1xuICAgICAgICAgICRCREVfSW1hZ2Uuc3JjID0gb3Jp\nZ2luYWxJbWFnZTtcbiAgICAgICAgICBkYXRhW1wibWVkaWFcIl0uc3BsaWNlKG9yaWdpbmFsSW1h\nZ2VJbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGV0IGltYWdlQ29udGFp\nbmVyRWxlbWVudCA9IGRvbXV0aWxzLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICBj\nbGFzc05hbWU6IFwiQkRFX0ltYWdlX2NvbnRhaW5lclwiXG4gICAgICB9KTtcbiAgICAgIGRhdGFb\nXCJtZWRpYVwiXS5mb3JFYWNoKChtZWRpYVVybCkgPT4ge1xuICAgICAgICBkb211dGlscy5hcHBl\nbmQoXG4gICAgICAgICAgaW1hZ2VDb250YWluZXJFbGVtZW50LFxuICAgICAgICAgIGRvbXV0aWxz\nLmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiwge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiBcIkJERV9J\nbWFnZVwiLFxuICAgICAgICAgICAgc3JjOiBtZWRpYVVybFxuICAgICAgICAgIH0pXG4gICAgICAg\nICk7XG4gICAgICB9KTtcbiAgICAgICRjb250ZW50U3BhbkVsZW1lbnQuYXBwZW5kQ2hpbGQoaW1h\nZ2VDb250YWluZXJFbGVtZW50KTtcbiAgICAgICRyZXN1bHRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JB\nbGwoXG4gICAgICAgIFwiLnNlYXJjaC1yZXN1bHQtY29udGVudCBpbWcuQkRFX1NtaWxleVwiXG4g\nICAgICApLmZvckVhY2goKCRCREVfU21pbGV5KSA9PiB7XG4gICAgICAgIGlmICghJEJERV9TbWls\nZXkuc3JjLnN0YXJ0c1dpdGgoXCJodHRwOlwvXC9zdGF0aWMudGllYmEuYmFpZHUuY29tXCIpKSB7\nXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpbWFnZVBhdGhOYW1l\nID0gbmV3IFVSTCgkQkRFX1NtaWxleS5zcmMpLnBhdGhuYW1lO1xuICAgICAgICAkQkRFX1NtaWxl\neS5zcmMgPSBUaWViYVVybEFwaS5nZXRJbWFnZVNtaWxleShpbWFnZVBhdGhOYW1lKTtcbiAgICAg\nIH0pO1xuICAgICAgcmV0dXJuICRyZXN1bHRFbGVtZW50O1xuICAgIH0sXG4gICAgXC8qKlxuICAg\nICAqIOa3u+WKoOa7muWKqOS6i+S7tlxuICAgICAqXC9cbiAgICBhZGRTY3JvbGxFdmVudCgpIHtc\nbiAgICAgIGxvZy5zdWNjZXNzKFwi5re75Yqg5rua5Yqo5LqL5Lu2XCIpO1xuICAgICAgdGhpcy4k\nZmxhZy5pc1NldFNjcm9sbEV2ZW50ID0gdHJ1ZTtcbiAgICAgIHRoaXMuJGNvbnRleHQubG9ja0Z1\nbmMgPSBuZXcgdXRpbHMuTG9ja0Z1bmN0aW9uKHRoaXMuc2Nyb2xsRXZlbnQsIHRoaXMsIDIwKTtc\nbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICB0aGlzLiRlbGUuJHNlYXJjaFJlc3VsdExpc3Qs\nXG4gICAgICAgIFwic2Nyb2xsXCIsXG4gICAgICAgIHRoaXMuJGNvbnRleHQubG9ja0Z1bmMucnVu\nXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOenu+mZpOa7muWKqOS6i+S7tlxu\nICAgICAqXC9cbiAgICByZW1vdmVTY3JvbGxFdmVudCgpIHtcbiAgICAgIHZhciBfYTM7XG4gICAg\nICBsb2cuZXJyb3IoXCLnp7vpmaTmu5rliqjkuovku7ZcIik7XG4gICAgICB0aGlzLiRjb250ZXh0\nLmxvYWRpbmcuaGlkZSgpO1xuICAgICAgaWYgKChfYTMgPSB0aGlzLiRjb250ZXh0LmxvY2tGdW5j\nKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnJ1bikge1xuICAgICAgICBkb211dGlscy5vZmYoXG4g\nICAgICAgICAgdGhpcy4kZWxlLiRzZWFyY2hSZXN1bHRMaXN0LFxuICAgICAgICAgIFwic2Nyb2xs\nXCIsXG4gICAgICAgICAgdGhpcy4kY29udGV4dC5sb2NrRnVuYy5ydW5cbiAgICAgICAgKTtcbiAg\nICAgIH1cbiAgICAgIHRoaXMuJGNvbnRleHQubG9ja0Z1bmMgPSBudWxsO1xuICAgICAgdGhpcy4k\nZmxhZy5pc1NldFNjcm9sbEV2ZW50ID0gZmFsc2U7XG4gICAgICB0aGlzLiRkYXRhLm5leHRQYWdl\nVXJsID0gbnVsbDtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmmL7npLrmkJzntKLlpLHotKXn\nmoTmj5DnpLpcbiAgICAgKlwvXG4gICAgYWxlcnRFcnJvclNlYXJjaCh0ZXh0KSB7XG4gICAgICBf\nX3BvcHMuYWxlcnQoe1xuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIHBvc2l0aW9uOiBcImNl\nbnRlclwiLFxuICAgICAgICAgIHRleHQ6IFwi5pCc57Si5aSx6LSlXCJcbiAgICAgICAgfSxcbiAg\nICAgICAgY29udGVudDoge1xuICAgICAgICAgIHRleHRcbiAgICAgICAgfSxcbiAgICAgICAgd2lk\ndGg6IFwiODAlXCIsXG4gICAgICAgIGhlaWdodDogXCIyMDBweFwiLFxuICAgICAgICBtYXNrOiB7\nXG4gICAgICAgICAgZW5hYmxlOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOa3u+WKoOaQnOe0oue7k+aenOWIsOmhtemdouS4rVxuICAgICAqIEBw\nYXJhbSBkYXRhIOaQnOe0oue7k+aenFxuICAgICAqXC9cbiAgICBzZXRTZWFyY2hSZXN1bHRUb1Bh\nZ2UoZGF0YSkge1xuICAgICAgZm9yIChjb25zdCBzZWFyY2hSZXN1bHRJdGVtIG9mIGRhdGEpIHtc\nbiAgICAgICAgZG9tdXRpbHMuYmVmb3JlKFxuICAgICAgICAgIHRoaXMuJGNvbnRleHQubG9hZGlu\nZy5nZXRMb2FkaW5nVmlld0VsZW1lbnQoKSxcbiAgICAgICAgICB0aGlzLmdldFNlYXJjaEl0ZW1F\nbGVtZW50KHNlYXJjaFJlc3VsdEl0ZW0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAg\nICBcLyoqXG4gICAgICog5rua5Yqo5LqL5Lu2XG4gICAgICpcL1xuICAgIGFzeW5jIHNjcm9sbEV2\nZW50KGV2ZW50KSB7XG4gICAgICBsZXQgbWF4U2Nyb2xsSGVpZ2h0ID0gdGhpcy4kZWxlLiRzZWFy\nY2hSZXN1bHRMaXN0LnNjcm9sbEhlaWdodCAtIHRoaXMuJGVsZS4kc2VhcmNoUmVzdWx0TGlzdC5j\nbGllbnRIZWlnaHQ7XG4gICAgICBpZiAodGhpcy4kZWxlLiRzZWFyY2hSZXN1bHRMaXN0LnNjcm9s\nbFRvcCArIDUwIDwgbWF4U2Nyb2xsSGVpZ2h0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1c\nbiAgICAgIHRoaXMuJGNvbnRleHQubG9hZGluZy5zaG93KCk7XG4gICAgICBpZiAodXRpbHMuaXNO\ndWxsKHRoaXMuJGRhdGEubmV4dFBhZ2VVcmwpKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlU2Nyb2xs\nRXZlbnQoKTtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLlt7LliLDovr7mnIDlkI7kuIDpobVcIik7\nXG4gICAgICAgIHRoaXMuJGNvbnRleHQubG9hZGluZy5oaWRlKCk7XG4gICAgICAgIHJldHVybjtc\nbiAgICAgIH1cbiAgICAgIGxldCBzZWFyY2hSZXN1bHQgPSBhd2FpdCB0aGlzLmdldFNlYXJjaFJl\nc3VsdCh0aGlzLiRkYXRhLm5leHRQYWdlVXJsKTtcbiAgICAgIGlmICghc2VhcmNoUmVzdWx0LnN1\nY2Nlc3MpIHtcbiAgICAgICAgdGhpcy4kY29udGV4dC5sb2FkaW5nLmhpZGUoKTtcbiAgICAgICAg\ndGhpcy5hbGVydEVycm9yU2VhcmNoKHNlYXJjaFJlc3VsdC5lcnJvcik7XG4gICAgICAgIHJldHVy\nbjtcbiAgICAgIH1cbiAgICAgIGxvZy5zdWNjZXNzKHNlYXJjaFJlc3VsdCk7XG4gICAgICBsZXQg\nc2VhcmNoRGF0YSA9IHNlYXJjaFJlc3VsdC5kYXRhO1xuICAgICAgdGhpcy5zZXRTZWFyY2hSZXN1\nbHRUb1BhZ2Uoc2VhcmNoRGF0YSk7XG4gICAgICB0aGlzLiRjb250ZXh0LmxvYWRpbmcuaGlkZSgp\nO1xuICAgICAgaWYgKHV0aWxzLmlzTnVsbChzZWFyY2hSZXN1bHQubmV4dFBhZ2VVcmwpKSB7XG4g\nICAgICAgIHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnQoKTtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLl\nt7LliLDovr7mnIDlkI7kuIDpobVcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSB7\nXG4gICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoUmVzdWx0Lm5leHRQYWdlVXJsID09IFwic3RyaW5n\nXCIpIHtcbiAgICAgICAgICBsb2cuc3VjY2Vzcyhg5pu05paw5LiL5LiA6aG1VXJs77yaJHtzZWFy\nY2hSZXN1bHQubmV4dFBhZ2VVcmx9YCk7XG4gICAgICAgICAgdGhpcy4kZGF0YS5uZXh0UGFnZVVy\nbCA9IHNlYXJjaFJlc3VsdC5uZXh0UGFnZVVybDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICBsb2cuZXJyb3IoXCJuZXh0UGFnZVVybOS4jeaYr3N0cmluZ++8jOaXoOazleabtOaWsOS4i+S4\ngOmhtVVybFwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgaXNTaG93U2VhcmNo\nQ29udGFpbmVyKCkge1xuICAgICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy4kZWxlLiRz\nZWFyY2hDb250YWluZXIpLmRpc3BsYXkgIT09IFwibm9uZVwiO1xuICAgIH0sXG4gICAgc2hvd1Nl\nYXJjaENvbnRhaW5lcigpIHtcbiAgICAgIGRvbXV0aWxzLnNob3codGhpcy4kZWxlLiRzZWFyY2hD\nb250YWluZXIpO1xuICAgIH0sXG4gICAgaGlkZVNlYXJjaENvbnRhaW5lcigpIHtcbiAgICAgIGRv\nbXV0aWxzLmhpZGUodGhpcy4kZWxlLiRzZWFyY2hDb250YWluZXIpO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOa4heepuuaXp+eahOaQnOe0ouWGheWuueOAgea7muWKqOS6i+S7tu+8jOmHjee9\nruS4uum7mOiupOeKtuaAgVxuICAgICAqXC9cbiAgICBjbGVhck9sZFNlYXJjaFJlc3VsdCgpIHtc\nbiAgICAgIGxvZy5zdWNjZXNzKFwi5riF56m65pen55qE5pCc57Si5YaF5a6544CB5rua5Yqo5LqL\n5Lu277yM5pCc57SiVXJsXCIpO1xuICAgICAgdGhpcy5jbGVhclNlYXJjaFJlc3VsdCgpO1xuICAg\nICAgdGhpcy5yZW1vdmVTY3JvbGxFdmVudCgpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOW4\nluWtkOWGheaQnOe0oijmkJzntKLluJblrZApXG4gICAgICogKlwvXG4gICAgYXN5bmMgcG9zdHNQ\nYWdlU2VhcmNoKCkge1xuICAgICAgdGhpcy4kY29udGV4dC5sb2FkaW5nLnNob3coKTtcbiAgICAg\nIGxldCBzZWFyY2hLdyA9IFwiXCI7XG4gICAgICBpZiAodGhpcy4kZGF0YS5zZWFyY2hUeXBlID09\nPSAwKSB7XG4gICAgICAgIHNlYXJjaEt3ID0gVGllYmFDb3JlLmdldEN1cnJlbnRGb3J1bU5hbWUo\nKTtcbiAgICAgICAgaWYgKHV0aWxzLmlzTnVsbChzZWFyY2hLdykpIHtcbiAgICAgICAgICBRbXNn\nLmVycm9yKFwi6I635Y+W5pys5ZCn5ZCn5ZCN5aSx6LSlXCIpO1xuICAgICAgICAgIHRoaXMuJGNv\nbnRleHQubG9hZGluZy5oaWRlKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAg\nICB9XG4gICAgICBsZXQgc2VhcmNoUmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRTZWFyY2hSZXN1bHQo\nXG4gICAgICAgIHRoaXMuJGRhdGEuY3VycmVudFNlYXJjaFRleHQsXG4gICAgICAgIDAsXG4gICAg\nICAgIHRoaXMuJGRhdGEuc2VhcmNoTW9kZWwsXG4gICAgICAgIHNlYXJjaEt3XG4gICAgICApO1xu\nICAgICAgaWYgKCFzZWFyY2hSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICB0aGlzLiRjb250ZXh0\nLmxvYWRpbmcuaGlkZSgpO1xuICAgICAgICB0aGlzLmFsZXJ0RXJyb3JTZWFyY2goc2VhcmNoUmVz\ndWx0LmVycm9yKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9nLnN1Y2Nlc3Mo\nc2VhcmNoUmVzdWx0KTtcbiAgICAgIGxldCBzZWFyY2hEYXRhID0gc2VhcmNoUmVzdWx0LmRhdGE7\nXG4gICAgICB0aGlzLnNldFNlYXJjaFJlc3VsdFRvUGFnZShzZWFyY2hEYXRhKTtcbiAgICAgIHRo\naXMuJGRhdGEubmV4dFBhZ2VVcmwgPSBzZWFyY2hSZXN1bHQubmV4dFBhZ2VVcmw7XG4gICAgICB0\naGlzLiRjb250ZXh0LmxvYWRpbmcuaGlkZSgpO1xuICAgICAgaWYgKHV0aWxzLmlzTm90TnVsbChz\nZWFyY2hSZXN1bHQubmV4dFBhZ2VVcmwpKSB7XG4gICAgICAgIHRoaXMuYWRkU2Nyb2xsRXZlbnQo\nKTtcbiAgICAgICAgdGhpcy5zaG93U2VhcmNoUmVzdWx0TW9kZWwoKTtcbiAgICAgICAgdGhpcy5z\naG93U2VhcmNoUmVzdWx0RnJvbSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9y\nKFwi5pCc57Si57uT5p6c5bCxMemhte+8jOS4jeiuvue9rnNjcm9sbOebkeWQrFwiKTtcbiAgICAg\nIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmj5Dkvpvlr7nlpJbnmoTmkJzntKLpk77mjqVc\nbiAgICAgKlxuICAgICAqIOWIpOaWreaWueW8j+S4umxvY2F0aW9uLnNlYXJjaOS4reWMheWQq+af\npeivouWFs+mUruWtl2dtc2VhcmNoXG4gICAgICpcL1xuICAgIGV4ZWNCeVVybFNlYXJjaFBhcmFt\ncygpIHtcbiAgICAgIGxldCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRv\ndy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgY29uc3QgS0VZX3NlYXJjaFRleHQgPSBcImdtc2Vh\ncmNoXCI7XG4gICAgICBjb25zdCBLRVlfc2VhcmNoVHlwZSA9IFwiZ21zZWFyY2h0eXBlXCI7XG4g\nICAgICBjb25zdCBLRVlfc2VhcmNoTW9kZWwgPSBcImdtc2VhcmNobW9kZWxcIjtcbiAgICAgIGlm\nICghc2VhcmNoUGFyYW1zLmhhcyhLRVlfc2VhcmNoVGV4dCkpIHtcbiAgICAgICAgcmV0dXJuO1xu\nICAgICAgfVxuICAgICAgbGV0IHNlYXJjaFRleHQgPSBzZWFyY2hQYXJhbXMuZ2V0KEtFWV9zZWFy\nY2hUZXh0KTtcbiAgICAgIGxvZy5pbmZvKFwi5a2Y5Zyo5pCc57Si5o6l5Y+j77yM5p+l6K+i5YaF\n5a6577yaXCIgKyBzZWFyY2hUZXh0KTtcbiAgICAgIHRoaXMuJGVsZS4kc2VhcmNoSW5wdXQudmFs\ndWUgPSBzZWFyY2hUZXh0O1xuICAgICAgaWYgKHNlYXJjaFBhcmFtcy5oYXMoS0VZX3NlYXJjaFR5\ncGUpKSB7XG4gICAgICAgIGxldCBzZWFyY2hUeXBlID0gc2VhcmNoUGFyYW1zLmdldChLRVlfc2Vh\ncmNoVHlwZSk7XG4gICAgICAgIGlmIChbXCIwXCIsIFwiMVwiXS5pbmNsdWRlcyhzZWFyY2hUeXBl\nKSkge1xuICAgICAgICAgIHRoaXMuJGVsZS4kc2VsZWN0LnNlbGVjdGVkSW5kZXggPSBwYXJzZUlu\ndChzZWFyY2hUeXBlKTtcbiAgICAgICAgICB1dGlscy5kaXNwYXRjaEV2ZW50KHRoaXMuJGVsZS4k\nc2VsZWN0LCBcImNoYW5nZVwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cuZXJy\nb3IoYOacquefpXNlYXJjaFBhcmFtc+eahCAke0tFWV9zZWFyY2hUeXBlfSDlj4LmlbDlgLzvvJok\ne3NlYXJjaFR5cGV9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hQYXJh\nbXMuaGFzKEtFWV9zZWFyY2hNb2RlbCkpIHtcbiAgICAgICAgbGV0IHNlYXJjaE1vZGVsID0gc2Vh\ncmNoUGFyYW1zLmdldChLRVlfc2VhcmNoTW9kZWwpO1xuICAgICAgICBpZiAoW1wiMFwiLCBcIjFc\nIiwgXCIyXCIsIFwiM1wiXS5pbmNsdWRlcyhzZWFyY2hNb2RlbCkpIHtcbiAgICAgICAgICB0aGlz\nLiRkYXRhLnNlYXJjaE1vZGVsID0gcGFyc2VJbnQoc2VhcmNoTW9kZWwpO1xuICAgICAgICAgIGxl\ndCAkc2VhcmNoUmVzdWx0TW9kZWxJdGVtID0gdGhpcy4kZWxlLiRzZWFyY2hSZXN1bHRNb2RlbC5x\ndWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgYC5zZWFyY2gtcmVzdWx0LW1vZGVsLWl0ZW1bZGF0\nYS1tb2RlbD1cIiR7dGhpcy4kZGF0YS5zZWFyY2hNb2RlbH1cIl1gXG4gICAgICAgICAgKTtcbiAg\nICAgICAgICBpZiAoJHNlYXJjaFJlc3VsdE1vZGVsSXRlbSkge1xuICAgICAgICAgICAgdGhpcy4k\nZWxlLiRzZWFyY2hSZXN1bHRNb2RlbC5xdWVyeVNlbGVjdG9yQWxsKFwiLnNlYXJjaC1yZXN1bHQt\nbW9kZWwtaXRlbVwiKS5mb3JFYWNoKChlbGUpID0+IGVsZS5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRh\nLWFjdGl2ZVwiKSk7XG4gICAgICAgICAgICAkc2VhcmNoUmVzdWx0TW9kZWxJdGVtLnNldEF0dHJp\nYnV0ZShcImRhdGEtYWN0aXZlXCIsIFwidHJ1ZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgYOacquefpXNlYXJjaFBh\ncmFtc+eahCAke0tFWV9zZWFyY2hNb2RlbH0g5Y+C5pWw5YC877yaJHtzZWFyY2hNb2RlbH1gXG4g\nICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy4kZWxlLiRtb3JlQnRu\nRGVzYy5jbGljaygpO1xuICAgICAgdGhpcy4kZWxlLiRzZWFyY2hCdG4uY2xpY2soKTtcbiAgICB9\nXG4gIH07XG4gIGNvbnN0IFRpZWJhRGF0YSA9IHtcbiAgICBcLyoqXG4gICAgICog5b2T5YmN5ZCn\n5ZCNXG4gICAgICpcL1xuICAgIGZvcnVtTmFtZTogdm9pZCAwLFxuICAgIFwvKipcbiAgICAgKiDl\nvZPliY3lkKflkI3nmoRpZFxuICAgICAqXC9cbiAgICBmb3J1bUlkOiB2b2lkIDAsXG4gICAgXC8q\nKlxuICAgICAqIOmrmOa4heWbvueJh+aYoOWwhFxuICAgICAqXC9cbiAgICBpbWFnZU1hcDogXC8q\nIEBfX1BVUkVfXyAqXC8gbmV3IE1hcCgpXG4gIH07XG4gIGNvbnN0IFRvb2xiYXIgPSB7XG4gICAg\nJGRhdGE6IHt9LFxuICAgIFwvKipcbiAgICAgKiDmm7TmlrDnjq\/looPlj4LmlbBcbiAgICAgKiDk\nvb\/nlKgkd2F0Y2jlpb3lg4\/kuI3nlJ\/mlYhcbiAgICAgKlwvXG4gICAgdXBkYXRlRW52UGFyYW0o\nKSB7XG4gICAgICBWdWVVdGlscy53YWl0VnVlUHJvcFRvU2V0KFwiLm1haW4tdGhyZWFkLWNvbnRl\nbnQgLmludGVyYWN0aW9uLWJhclwiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBtc2c6IFwi6I63\n5Y+W5Y+C5pWwIHRocmVhZFwiLFxuICAgICAgICAgIGNoZWNrKHZ1ZU9iaikge1xuICAgICAgICAg\nICAgcmV0dXJuIHR5cGVvZiAodnVlT2JqID09IG51bGwgPyB2b2lkIDAgOiB2dWVPYmouaW50ZXJh\nY3Rpb25OdW0pID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiAodnVlT2JqID09IG51bGwgPyB2b2lk\nIDAgOiB2dWVPYmouaW50ZXJhY3Rpb25TdGF0ZXMpID09PSBcIm9iamVjdFwiO1xuICAgICAgICAg\nIH0sXG4gICAgICAgICAgc2V0KHZ1ZU9iaikge1xuICAgICAgICAgICAgdnVlT2JqLiR3YXRjaChc\nbiAgICAgICAgICAgICAgXCJpbnRlcmFjdGlvbk51bVwiLFxuICAgICAgICAgICAgICAobmV3VmFs\ndWUpID0+IHtcbiAgICAgICAgICAgICAgICBUaWViYUNvbW1lbnQucmVwbHlfbnVtLnZhbHVlID0g\nbmV3VmFsdWUucmVwbHk7XG4gICAgICAgICAgICAgICAgVGllYmFDb21tZW50LmFncmVlX251bS52\nYWx1ZSA9IG5ld1ZhbHVlLmdvb2Q7XG4gICAgICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoXG4gICAg\nICAgICAgICAgICAgICBcIuabtOaWsOWPguaVsCByZXBseV9udW3vvJpcIiArIFRpZWJhQ29tbWVu\ndC5yZXBseV9udW0udmFsdWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxv\nZy5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgXCLmm7TmlrDlj4LmlbAgYWdyZWVfbnVt77ya\nXCIgKyBUaWViYUNvbW1lbnQuYWdyZWVfbnVtLnZhbHVlXG4gICAgICAgICAgICAgICAgKTtcbiAg\nICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRlZXA6IHRy\ndWUsXG4gICAgICAgICAgICAgICAgaW1tZWRpYXRlOiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICk7XG4gICAgICAgICAgICB2dWVPYmouJHdhdGNoKFxuICAgICAgICAgICAgICBc\nImludGVyYWN0aW9uU3RhdGVzXCIsXG4gICAgICAgICAgICAgIChuZXdWYWx1ZSkgPT4ge1xuICAg\nICAgICAgICAgICAgIFRpZWJhQ29tbWVudC5oYXNfYWdyZWUudmFsdWUgPSBuZXdWYWx1ZS5nb29k\nO1xuICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgXCLmm7Tm\nlrDlj4LmlbAgaGFzX2FncmVl77yaXCIgKyBUaWViYUNvbW1lbnQuaGFzX2FncmVlLnZhbHVlXG4g\nICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAg\nICAgICAgICAgICAgIGRlZXA6IHRydWUsXG4gICAgICAgICAgICAgICAgaW1tZWRpYXRlOiB0cnVl\nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICBdKTtcbiAgICAgIFZ1ZVV0aWxzLndhaXRWdWVQcm9wVG9TZXQoXCIuYXBwLXZpZXdc\nIiwgW1xuICAgICAgICB7XG4gICAgICAgICAgbXNnOiBcIuiOt+WPlueZu+W9leeUqOaIt+WPguaV\nsCB1c2VyXCIsXG4gICAgICAgICAgY2hlY2sodnVlT2JqKSB7XG4gICAgICAgICAgICB2YXIgX2Ez\nO1xuICAgICAgICAgICAgcmV0dXJuICgoX2EzID0gdnVlT2JqID09IG51bGwgPyB2b2lkIDAgOiB2\ndWVPYmoudXNlcikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5pc19sb2dpbikgIT0gbnVsbDtcbiAg\nICAgICAgICB9LFxuICAgICAgICAgIHNldCh2dWVPYmopIHtcbiAgICAgICAgICAgIHZhciBfYTMs\nIF9iO1xuICAgICAgICAgICAgaWYgKHZ1ZU9iai51c2VyLmlzX2xvZ2luKSB7XG4gICAgICAgICAg\nICAgIFRpZWJhQ29tbWVudC51c2VySW5mby52YWx1ZS5pZCA9IHZ1ZU9iai51c2VyLmlkO1xuICAg\nICAgICAgICAgICBUaWViYUNvbW1lbnQudXNlckluZm8udmFsdWUuaXNfbG9naW4gPSB2dWVPYmou\ndXNlci5pc19sb2dpbjtcbiAgICAgICAgICAgICAgVGllYmFDb21tZW50LnVzZXJJbmZvLnZhbHVl\nLm5hbWUgPSB2dWVPYmoudXNlci5uYW1lO1xuICAgICAgICAgICAgICBUaWViYUNvbW1lbnQudXNl\nckluZm8udmFsdWUubmFtZV9zaG93ID0gKF9hMyA9IHZ1ZU9iai51c2VyKSA9PSBudWxsID8gdm9p\nZCAwIDogX2EzLm5hbWVfc2hvdztcbiAgICAgICAgICAgICAgVGllYmFDb21tZW50LnVzZXJJbmZv\nLnZhbHVlLnBvcnRyYWl0ID0gdnVlT2JqLnVzZXIucG9ydHJhaXQ7XG4gICAgICAgICAgICAgIFRp\nZWJhQ29tbWVudC51c2VySW5mby52YWx1ZS5zaG93X25pY2tuYW1lID0gKF9iID0gdnVlT2JqLnVz\nZXIpID09IG51bGwgPyB2b2lkIDAgOiBfYi5zaG93X25pY2tuYW1lO1xuICAgICAgICAgICAgICBs\nb2cuc3VjY2VzcyhcbiAgICAgICAgICAgICAgICBg5pu05paw5Y+C5pWwIHVzZXJJZDogJHtUaWVi\nYUNvbW1lbnQudXNlckluZm8udmFsdWUuaWR9IHVzZXJOYW1lOiAke1RpZWJhQ29tbWVudC51c2Vy\nSW5mby52YWx1ZS5uYW1lfSB1c2VyU2hvd05hbWU6ICR7VGllYmFDb21tZW50LnVzZXJJbmZvLnZh\nbHVlLnNob3dfbmlja25hbWV9YFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1zZzogXCLojrflj5Zm\nb3J1beS\/oeaBr1wiLFxuICAgICAgICAgIGNoZWNrKHZ1ZU9iaikge1xuICAgICAgICAgICAgdmFy\nIF9hMztcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgKChfYTMgPSB2dWVPYmogPT0gbnVsbCA\/\nIHZvaWQgMCA6IHZ1ZU9iai5mb3J1bSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5pZCkgPT09IFwi\nbnVtYmVyXCI7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodnVlT2JqKSB7XG4gICAgICAg\nICAgICBUaWViYUNvbW1lbnQuZm9ydW1JbmZvLnZhbHVlLmlkID0gdnVlT2JqLmZvcnVtLmlkO1xu\nICAgICAgICAgICAgVGllYmFDb21tZW50LmZvcnVtSW5mby52YWx1ZS5uYW1lID0gdnVlT2JqLmZv\ncnVtLm5hbWU7XG4gICAgICAgICAgICBsb2cuc3VjY2VzcyhcbiAgICAgICAgICAgICAgYOaIkOWK\nn+iuvue9ruWPguaVsCBmb3J1beS\/oeaBr++8jGlkOiAke1RpZWJhQ29tbWVudC5mb3J1bUluZm8u\ndmFsdWUuaWR9IG5hbWU6ICR7VGllYmFDb21tZW50LmZvcnVtSW5mby52YWx1ZS5uYW1lfWBcbiAg\nICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAg\nICAgbXNnOiBcIuiOt+WPliB0YnMg5YC8XCIsXG4gICAgICAgICAgY2hlY2sodnVlT2JqKSB7XG4g\nICAgICAgICAgICB2YXIgX2EzLCBfYiwgX2M7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mICgo\nX2MgPSAoX2IgPSAoX2EzID0gdnVlT2JqID09IG51bGwgPyB2b2lkIDAgOiB2dWVPYmouJHN0b3Jl\nKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2IuY29t\nbW9uKSA9PSBudWxsID8gdm9pZCAwIDogX2MudGJzKSA9PT0gXCJzdHJpbmdcIjtcbiAgICAgICAg\nICB9LFxuICAgICAgICAgIHNldCh2dWVPYmopIHtcbiAgICAgICAgICAgIFRpZWJhQ29tbWVudC50\nYnMgPSB2dWVPYmouJHN0b3JlLnN0YXRlLmNvbW1vbi50YnM7XG4gICAgICAgICAgICBsb2cuc3Vj\nY2Vzcyhg5oiQ5Yqf6K6+572u5Y+C5pWwIHRiczogJHtUaWViYUNvbW1lbnQudGJzfWApO1xuICAg\nICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n5bel5YW35qCP55qE6K+E6K665oyJ6ZKu55qE54K55Ye75LqL5Lu2XG4gICAgICogQHBhcmFtIGV2\nZW50XG4gICAgICpcL1xuICAgIGdvVG9SZXBseUFyZWEoZXZlbnQpIHtcbiAgICAgIGxldCAkYWZm\naXhMaW5lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hZmZpeC1saW5lXCIpO1xuICAgICAg\naWYgKCEkYWZmaXhMaW5lKSB7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLmnKrmib7liLDlhYPntKAu\nYWZmaXgtbGluZVwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHNjcm9s\nbEhlaWdodCA9IGRvbXV0aWxzLm9mZnNldCgkYWZmaXhMaW5lKS50b3AgLSBkb211dGlscy5oZWln\naHQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5uYXYtYmFyLXRvcFwiKSk7XG4gICAgICBsb2cu\naW5mbyhcIuWJjeW+gOivhOiuuuWMuu+8mlwiICsgc2Nyb2xsSGVpZ2h0KTtcbiAgICAgIGRvY3Vt\nZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICAgIHRvcDogc2Nyb2xsSGVpZ2h0\nLFxuICAgICAgICBiZWhhdmlvcjogXCJzbW9vdGhcIlxuICAgICAgfSk7XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5bel5YW35qCP55qE54K56LWe5oyJ6ZKu55qE54K55Ye75LqL5Lu2XG4gICAg\nICpcL1xuICAgIGdvb2RDbGlja0V2ZW50KCkge1xuICAgICAgbG9nLmluZm8oXCLngrnotZ5cIik7\nXG4gICAgICBsZXQgJGdvb2QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBcIi5p\nbnRlcmFjdGlvbi1pdGVtLmdvb2RcIlxuICAgICAgKTtcbiAgICAgIGlmICghJGdvb2QpIHtcbiAg\nICAgICAgUW1zZy5lcnJvcihcIuacquaJvuWIsOWFg+e0oC5pbnRlcmFjdGlvbi1pdGVtLmdvb2Rc\nIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgICRnb29kLmNsaWNrKCk7XG4gICAg\nICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVFbnZQYXJhbSgpO1xuICAg\nICAgfSwgNTAwKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlj5Hooajlm57lpI1cbiAgICAg\nKlwvXG4gICAgcG9zdE1zZyhjb250ZW50KSB7XG4gICAgfVxuICB9O1xuICBjb25zdCBUaWViYVBv\nc3RBcGkgPSB7XG4gICAgXC8qKlxuICAgICAqIOS8oOWFpeeUqOaIt2lk5oiWcG9ydHJhaXTliKTm\nlq3mmK\/lkKbmmK\/otLTlkKfmnLrlmajkurrvvIjotLTlkKfljIXmiZPlkKzvvIlcbiAgICAgKlwv\nXG4gICAgaXNSb2JvdChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcuaWQgIT0gbnVsbCAmJiAo\ndHlwZW9mIGNvbmZpZy5pZCA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgY29uZmlnLmlkID09PSBc\nInN0cmluZ1wiKSkge1xuICAgICAgICByZXR1cm4gY29uZmlnLmlkLnRvU3RyaW5nKCkgPT09IFwi\nNjQyMTAyMjcyNVwiO1xuICAgICAgfSBlbHNlIGlmIChjb25maWcucG9ydHJhaXQgIT0gbnVsbCAm\nJiB0eXBlb2YgY29uZmlnLnBvcnRyYWl0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVy\nbiBjb25maWcucG9ydHJhaXQuaW5jbHVkZXMoXCJ0Yi4xLjRjNDZiYjYxLnBPR2IyeXN3Yk1VQktP\nSVVwdGVMdmdcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog6K+E6K665biW5a2QXG4gICAgICpcL1xuICAgIGFzeW5jIGFwdWJ0aHJlYWQo\nZGV0YWlscykge1xuICAgICAgbGV0IGFwaSA9IFwiaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwv\nbW9cL3FcL2FwdWJ0aHJlYWRcIjtcbiAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICBcLyoqXG4g\nICAgICAgICAqIOWbnuWkjeeahOWGheWuuVxuICAgICAgICAgKlwvXG4gICAgICAgIGNvOiBkZXRh\naWxzLmNvbnRlbnQsXG4gICAgICAgIGZpZDogZGV0YWlscy5maWQsXG4gICAgICAgIFwvKipcbiAg\nICAgICAgICog5LiN55+l6YGT5YW35L2T5YC8XG4gICAgICAgICAqXC9cbiAgICAgICAgc3JjOiAx\nLFxuICAgICAgICBwaWQ6IGRldGFpbHMucGlkLFxuICAgICAgICBcLyoqXG4gICAgICAgICAqIOW4\nluWtkGlkXG4gICAgICAgICAqXC9cbiAgICAgICAgejogZGV0YWlscy50aWQsXG4gICAgICAgIFwv\nKipcbiAgICAgICAgICog5b2T5YmN5ZCn5ZCNXG4gICAgICAgICAqXC9cbiAgICAgICAgd29yZDog\nZGV0YWlscy5mb3J1bU5hbWUsXG4gICAgICAgIFwvKipcbiAgICAgICAgICog5a6i5oi356uvXG4g\nICAgICAgICAqIFwicGNfd2ViXCIgfCBcIndhcF9zbWFydFwiIHwgXCJtaW5pX3Byb2dyYW1cIlxu\nICAgICAgICAgKlwvXG4gICAgICAgIGNsaWVudF90eXBlOiBcIndhcF9zbWFydFwiLFxuICAgICAg\nICB0YnM6IGRldGFpbHMudGJzLFxuICAgICAgICBcLyoqXG4gICAgICAgICAqIOS4jeefpemBk+WF\nt+S9k+WAvFxuICAgICAgICAgKlwvXG4gICAgICAgIGNvbWVfZnJvbTogMVxuICAgICAgfTtcbiAg\nICAgIGxldCBmb3JtZGF0YSA9IHV0aWxzLnRvRm9ybURhdGEoZGF0YSk7XG4gICAgICBsZXQgcG9z\ndFJlc3AgPSBhd2FpdCBodHRweC5wb3N0KGFwaSwge1xuICAgICAgICBkYXRhOiBmb3JtZGF0YSxc\nbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvblwvanNv\nbiwgdGV4dFwvcGxhaW4sICpcLypcIixcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFw\ncGxpY2F0aW9uXC94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOFwiLFxuICAgICAg\nICAgIEhvc3Q6IFwidGllYmEuYmFpZHUuY29tXCIsXG4gICAgICAgICAgT3JpZ2luOiBcImh0dHBz\nOlwvXC90aWViYS5iYWlkdS5jb21cIixcbiAgICAgICAgICBcIlgtUmVxdWVzdGVkLVdpdGhcIjog\nXCJYTUxIdHRwUmVxdWVzdFwiXG4gICAgICAgIH0sXG4gICAgICAgIGZldGNoOiB0cnVlXG4gICAg\nICB9KTtcbiAgICAgIGlmICghcG9zdFJlc3Auc3RhdHVzKSB7XG4gICAgICAgIHJldHVybjtcbiAg\nICAgIH1cbiAgICAgIGxldCBwb3N0RGF0YSA9IHV0aWxzLnRvSlNPTihwb3N0UmVzcC5kYXRhLnJl\nc3BvbnNlVGV4dCk7XG4gICAgICBsb2cuaW5mbyhbXCLlj5Hooajlm57lpI1cIiwgcG9zdERhdGFd\nKTtcbiAgICAgIGlmIChwb3N0RGF0YVtcIm5vXCJdICE9IDApIHtcbiAgICAgICAgUW1zZy5lcnJv\ncihcIuWPkeihqOWbnuWkjeWksei0pVwiKTtcbiAgICAgICAgbG9nLmVycm9yKFwi5Y+R6KGo5Zue\n5aSN5aSx6LSlXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXR1cm4gcG9z\ndERhdGFbXCJkYXRhXCJdO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWIoOmZpOivhOiuulxu\nICAgICAqXC9cbiAgICBhc3luYyBkZWxldGVDb21taXQoZGF0YSkge1xuICAgICAgbGV0IGFwaSA9\nIFwiaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwvZlwvY29tbWl0XC9wb3N0XC9kZWxldGVcIjtc\nbiAgICAgIGxldCBwb3N0RGF0YSA9IHtcbiAgICAgICAgXC9cLyDlj6\/og73ov5jmnInkuKrmmK9s\nemxcbiAgICAgICAgY29tbWl0X2ZyOiBcInBiXCIsXG4gICAgICAgIFwvXC8g57yW56CBXG4gICAg\nICAgIGllOiBcInV0Zi04XCIsXG4gICAgICAgIFwvXC8g6LS05ZCndGJz5YC8IFBhZ2VEYXRhLnRi\nc1xuICAgICAgICB0YnM6IGRhdGEudGJzLFxuICAgICAgICBcL1wvIOW9k+WJjeWQp+WQjSBQYWdl\nRGF0YS5mb3J1bS5mb3J1bV9uYW1lXG4gICAgICAgIGt3OiBkYXRhLmt3LFxuICAgICAgICBcL1wv\nIGZvcnVtSWQgUGFnZURhdGEuZm9ydW0uZm9ydW1faWRcbiAgICAgICAgZmlkOiBkYXRhLmZpZCxc\nbiAgICAgICAgXC9cLyB0aHJlYWRJZCBQYWdlRGF0YS50aHJlYWQudGhyZWFkX2lkXG4gICAgICAg\nIHRpZDogZGF0YS50aWQsXG4gICAgICAgIFwvXC8g5piv5ZCm5piv5Lya5ZGY5Yig6Zmk77yfXG4g\nICAgICAgIGlzX3ZpcGRlbDogMSxcbiAgICAgICAgXC9cLyDmnKzlm57lpI3nmoRpZCBjb21tZW50\nX2lkXG4gICAgICAgIHBpZDogZGF0YS5waWQsXG4gICAgICAgIFwvXC8gPz8\/5LiN55+l6YGT5piv\n5LuA5LmIXG4gICAgICAgIGlzX2ZpbmY6IDFcbiAgICAgIH07XG4gICAgICBsZXQgcmVzcCA9IGF3\nYWl0IGh0dHB4LnBvc3QoYXBpLCB7XG4gICAgICAgIGZldGNoOiB0cnVlLFxuICAgICAgICBkYXRh\nOiB1dGlscy50b1NlYXJjaFBhcmFtc1N0cihwb3N0RGF0YSksXG4gICAgICAgIGhlYWRlcnM6IHtc\nbiAgICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb25cL2pzb24sIHRleHRcL2phdmFzY3JpcHQs\nICpcLyo7IHE9MC4wMVwiLFxuICAgICAgICAgIFwiWC1SZXF1ZXN0ZWQtV2l0aFwiOiBcIlhNTEh0\ndHBSZXF1ZXN0XCIsXG4gICAgICAgICAgSG9zdDogXCJ0aWViYS5iYWlkdS5jb21cIixcbiAgICAg\nICAgICBSZWZlcmVyOiBcImh0dHBzOlwvXC90aWViYS5iYWlkdS5jb21cIixcbiAgICAgICAgICBc\nIlVzZXItQWdlbnRcIjogdXRpbHMuZ2V0UmFuZG9tUENVQSgpLFxuICAgICAgICAgIFwiQ29udGVu\ndC1UeXBlXCI6IFwiYXBwbGljYXRpb25cL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1V\nVEYtOFwiXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKCFyZXNwLnN0YXR1cykge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsb2cuaW5mbyhbXCLliKDpmaTlm57lpI3n\nmoTmg4XlhrXvvJpcIiwgcmVzcF0pO1xuICAgICAgbGV0IHJlc3BEYXRhID0gdXRpbHMudG9KU09O\nKHJlc3AuZGF0YS5yZXNwb25zZVRleHQpO1xuICAgICAgaWYgKHJlc3BEYXRhLm5vICE9PSAwKSB7\nXG4gICAgICAgIFFtc2cuZXJyb3IocmVzcERhdGEuZXJyb3IpO1xuICAgICAgICByZXR1cm47XG4g\nICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrfl\nj5bor4TorrrmlbDmja5cbiAgICAgKiBAcGFyYW0ga3og5biW5a2QaWRcbiAgICAgKiBAcGFyYW0g\nW3BuPTFdIOivhOiuuumhteeggVxuICAgICAqIEBwYXJhbSBbcm49MTBdIOavj+mhteivhOiuuuaV\nsOmHj1xuICAgICAqIEBwYXJhbSBbb25seV9wb3N0PTFdXG4gICAgICpcL1xuICAgIGFzeW5jIGdl\ndFBiRGF0YShreiwgcG4gPSAxLCBybiA9IDEwLCBvbmx5X3Bvc3QgPSAxKSB7XG4gICAgICBsZXQg\nc2VhcmNoUGFyYW1zRGF0YSA9IHtcbiAgICAgICAgcG4sXG4gICAgICAgIHJuLFxuICAgICAgICBv\nbmx5X3Bvc3QsXG4gICAgICAgIGt6XG4gICAgICB9O1xuICAgICAgbGV0IEFwaSA9IFwiaHR0cHM6\nXC9cL3RpZWJhLmJhaWR1LmNvbVwvbWdcL3BcL2dldFBiRGF0YVwiO1xuICAgICAgbGV0IGdldFJl\nc3AgPSBhd2FpdCBodHRweC5nZXQoXG4gICAgICAgIEFwaSArIFwiP1wiICsgdXRpbHMudG9TZWFy\nY2hQYXJhbXNTdHIoc2VhcmNoUGFyYW1zRGF0YSksXG4gICAgICAgIHtcbiAgICAgICAgICBmZXRj\naDogdHJ1ZSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBBY2NlcHQ6IFwiYXBw\nbGljYXRpb25cL2pzb24sIHRleHRcL3BsYWluLCAqXC8qXCIsXG4gICAgICAgICAgICBcIlJlZmVy\nZXItQXN5blwiOiBcIlwiLFxuICAgICAgICAgICAgXCJYLVJlcXVlc3RlZC1XaXRoXCI6IFwiWE1M\nSHR0cFJlcXVlc3RcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGlm\nICghZ2V0UmVzcC5zdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0\nIGRhdGEgPSB1dGlscy50b0pTT04oZ2V0UmVzcC5kYXRhLnJlc3BvbnNlVGV4dCk7XG4gICAgICBp\nZiAoZGF0YVtcImVycm5vXCJdICE9PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAg\nICAgIGxldCBwYWdlID0gZGF0YVtcImRhdGFcIl1bXCJwYWdlXCJdO1xuICAgICAgbGV0IHBvc3Rf\nbGlzdCA9IGRhdGFbXCJkYXRhXCJdW1wicG9zdF9saXN0XCJdO1xuICAgICAgcmV0dXJuIHtcbiAg\nICAgICAgcGFnZSxcbiAgICAgICAgcG9zdF9saXN0XG4gICAgICB9O1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOS4iuS8oOWbvueJh1xuICAgICAqIEBwYXJhbSBpbWFnZUZpbGUg5Zu+54mH5paH\n5Lu2XG4gICAgICpcL1xuICAgIGFzeW5jIGNvb2x1cGxvYWRwaWMoaW1hZ2VGaWxlKSB7XG4gICAg\nICBsZXQgcG9zdERhdGEgPSB7XG4gICAgICAgIHBpYzogaW1hZ2VGaWxlXG4gICAgICB9O1xuICAg\nICAgbGV0IHNlYXJjaFBhcmFtc0RhdGEgPSB7XG4gICAgICAgIGZyOiBcInNtYWxsYXBwXCIsXG4g\nICAgICAgIGZyb21fenQ6IDEsXG4gICAgICAgIHI6IDAuMTAwMjc4OTYwNTA5NTczNTJcbiAgICAg\nIH07XG4gICAgICBsZXQgQXBpID0gXCJodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9tb1wvcVwv\nY29vbHVwbG9hZHBpY1wiO1xuICAgICAgbGV0IHBvc3RSZXNwID0gYXdhaXQgaHR0cHgucG9zdChc\nbiAgICAgICAgQXBpICsgXCI\/XCIgKyB1dGlscy50b1NlYXJjaFBhcmFtc1N0cihzZWFyY2hQYXJh\nbXNEYXRhKSxcbiAgICAgICAge1xuICAgICAgICAgIGZldGNoOiB0cnVlLFxuICAgICAgICAgIGRh\ndGE6IHV0aWxzLnRvRm9ybURhdGEocG9zdERhdGEpLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAg\nICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvblwvanNvbiwgdGV4dFwvcGxhaW4sICpcLypc\nIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGlmICghcG9zdFJlc3Au\nc3RhdHVzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBkYXRhID0gdXRp\nbHMudG9KU09OKHBvc3RSZXNwLmRhdGEucmVzcG9uc2VUZXh0KTtcbiAgICAgIGlmIChkYXRhW1wi\nbm9cIl0gIT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtc\nbiAgICAgICAgdXBsb2FkX2ltZ19pbmZvOiBkYXRhW1wiZGF0YVwiXVtcInVwbG9hZF9pbWdfaW5m\nb1wiXSxcbiAgICAgICAgdXBsb2FkX2ltZ191cmw6IGRhdGFbXCJkYXRhXCJdW1widXBsb2FkX2lt\nZ191cmxcIl0sXG4gICAgICAgIHZpZXdfaW1nX3VybF9hdXRoOiBkYXRhW1wiZGF0YVwiXVtcInZp\nZXdfaW1nX3VybF9hdXRoXCJdXG4gICAgICB9O1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOS4\niuS8oOWbvueJhyhQQ+errylcbiAgICAgKiBAcGFyYW0gc2VhcmNoUGFyYW1zRGF0YSDmn6Xor6Ll\nj4LmlbBcbiAgICAgKlwvXG4gICAgYXN5bmMgdXBsb2FkcGhvdG9zKHNlYXJjaFBhcmFtc0RhdGEp\nIHtcbiAgICAgIGNvbnN0IHBpY1dhdGVyVHlwZSA9IHNlYXJjaFBhcmFtc0RhdGEucGljV2F0ZXJU\neXBlID8\/IDEwMzk5OTk7XG4gICAgICBjb25zdCBwb3N0Rm9ybURhdGEgPSBuZXcgRm9ybURhdGEo\nKTtcbiAgICAgIHBvc3RGb3JtRGF0YS5zZXQoXCJmaWxlXCIsIHNlYXJjaFBhcmFtc0RhdGEuaW1h\nZ2VGaWxlKTtcbiAgICAgIGxldCB1cmwgPSBgaHR0cHM6XC9cL3VwbG9hZHBob3Rvcy5iYWlkdS5j\nb21cL3VwbG9hZFwvcGljP3Ricz0ke3NlYXJjaFBhcmFtc0RhdGEudGJzfSZmaWQ9JHtzZWFyY2hQ\nYXJhbXNEYXRhLmZpZH0mcGljV2F0ZXJUeXBlPSR7cGljV2F0ZXJUeXBlfWA7XG4gICAgICBsZXQg\ncG9zdFJlc3AgPSBhd2FpdCBodHRweC5wb3N0KHVybCwge1xuICAgICAgICBkYXRhOiBwb3N0Rm9y\nbURhdGEsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICBBY2NlcHQ6IFwiKlwvKlwiLFxu\nICAgICAgICAgIEhvc3Q6IFwidXBsb2FkcGhvdG9zLmJhaWR1LmNvbVwiLFxuICAgICAgICAgIE9y\naWdpbjogXCJodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXCIsXG4gICAgICAgICAgUmVmZXJlcjog\nXCJodHRwczpcL1wvdGllYmEuYmFpZHUuY29tXC9cIlxuICAgICAgICB9XG4gICAgICB9KTtcbiAg\nICAgIGlmICghcG9zdFJlc3Auc3RhdHVzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAg\nICAgIGxldCByZXN1bHQgPSB1dGlscy50b0pTT04ocG9zdFJlc3AuZGF0YS5yZXNwb25zZVRleHQp\nO1xuICAgICAgaWYgKHJlc3VsdC5ubyAhPT0gMCkge1xuICAgICAgICBsb2cuZXJyb3IoXCLkuIrk\nvKDlm77niYflpLHotKVcIik7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLkuIrkvKDlm77niYflpLHo\ntKVcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBpbmZvID0gcmVzdWx0\nW1wiaW5mb1wiXTtcbiAgICAgIGlmICh0eXBlb2YgaW5mby5waWNfYWJfdXJsX2F1dGggPT09IFwi\nc3RyaW5nXCIpIHtcbiAgICAgICAgaW5mby5waWNfYWJfdXJsX2F1dGggPSBDb21tb25VdGlsLmZp\neEh0dHBzKGluZm8ucGljX2FiX3VybF9hdXRoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2Yg\naW5mby5waWNfdXJsX2F1dGggPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgaW5mby5waWNfdXJs\nX2F1dGggPSBDb21tb25VdGlsLmZpeEh0dHBzKGluZm8ucGljX3VybF9hdXRoKTtcbiAgICAgIH1c\nbiAgICAgIGlmICh0eXBlb2YgaW5mby5waWNfdXJsX2F1dGggPT09IFwic3RyaW5nXCIpIHtcbiAg\nICAgICAgaW5mby5waWNfdXJsX2F1dGggPSBDb21tb25VdGlsLmZpeEh0dHBzKGluZm8ucGljX3Vy\nbF9hdXRoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgaW5mby5waWNfd2F0ZXIgPT09IFwi\nc3RyaW5nXCIpIHtcbiAgICAgICAgaW5mby5waWNfd2F0ZXIgPSBDb21tb25VdGlsLmZpeEh0dHBz\nKGluZm8ucGljX3dhdGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbmZvO1xuICAgIH1cbiAg\nfTtcbiAgZnVuY3Rpb24gc2V0QWZmaXgob3B0aW9uKSB7XG4gICAgbGV0IGRlZmF1bHRPcHRpb24g\nPSB7XG4gICAgICBvZmZzZXQ6IDAsXG4gICAgICBwb3NpdGlvbjogXCJ0b3BcIixcbiAgICAgIHRh\ncmdldDogXCJcIixcbiAgICAgIFwiei1pbmRleFwiOiAxMDAsXG4gICAgICByb290OiBudWxsLFxu\nICAgICAgY2hhbmdlOiAoKSA9PiB7XG4gICAgICB9XG4gICAgfTtcbiAgICB1dGlscy5hc3NpZ24o\nZGVmYXVsdE9wdGlvbiwgb3B0aW9uKTtcbiAgICBpZiAodXRpbHMuaXNOdWxsKGRlZmF1bHRPcHRp\nb24pKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwidGFyZ2V05LiN6IO95Li656m6XCIp\nO1xuICAgIH1cbiAgICB1dGlscy53YWl0Tm9kZShkZWZhdWx0T3B0aW9uLnRhcmdldCwgMWU0KS50\naGVuKCgkdGFyZ2V0KSA9PiB7XG4gICAgICBpZiAoISR0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJu\nO1xuICAgICAgfVxuICAgICAgYWRkU3R5bGUoXG4gICAgICAgIFwvKmNzcypcL1xuICAgICAgICBg\nXG5cdFx0XHQuYWZmaXgtY29udGFpbmVyLXRvcC1maXhlZFtkYXRhLXRhcmdldD1cIiR7ZGVmYXVs\ndE9wdGlvbi50YXJnZXR9XCJde1xuXHRcdFx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0XHRcdHRv\ncDogJHtkZWZhdWx0T3B0aW9uLm9mZnNldH1weDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0\nei1pbmRleDogJHtkZWZhdWx0T3B0aW9uW1wiei1pbmRleFwiXX07XG5cdFx0XHR9XG5cdFx0XHRg\nXG4gICAgICApO1xuICAgICAgbGV0IGNoZWNrT2Zmc2V0ID0gZGVmYXVsdE9wdGlvbi5vZmZzZXQ7\nXG4gICAgICBsZXQgJGFmZml4TGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7\nXG4gICAgICAkYWZmaXhMaW5lLmNsYXNzTmFtZSA9IFwiYWZmaXgtbGluZVwiO1xuICAgICAgJHRh\ncmdldC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXRhcmdldFwiLCBkZWZhdWx0T3B0aW9uLnRhcmdldCk7\nXG4gICAgICBkb211dGlscy5iZWZvcmUoJHRhcmdldCwgJGFmZml4TGluZSk7XG4gICAgICBsZXQg\ncm9vdE1hcmdpbiA9IGAwcHhgO1xuICAgICAgaWYgKGRlZmF1bHRPcHRpb24ucG9zaXRpb24gPT09\nIFwiYm90dG9tXCIpIHtcbiAgICAgICAgcm9vdE1hcmdpbiA9IGAwcHggMHB4ICR7LWNoZWNrT2Zm\nc2V0fXB4IDBweGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb290TWFyZ2luID0gYCR7LWNo\nZWNrT2Zmc2V0fXB4IDBweCAwcHggMHB4YDtcbiAgICAgIH1cbiAgICAgIGxldCB0aHJlc2hvbGQg\nPSBbMC4wMSwgMC45OV07XG4gICAgICBsZXQgdGhyZXNob2xkTWF4VmFsdWUgPSB0aHJlc2hvbGRb\ndGhyZXNob2xkLmxlbmd0aCAtIDFdICogY2hlY2tPZmZzZXQ7XG4gICAgICBsZXQgbG9ja0Z1bmMg\nPSBuZXcgdXRpbHMuTG9ja0Z1bmN0aW9uKFxuICAgICAgICAoZW50cmllcykgPT4ge1xuICAgICAg\nICAgIGxldCBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAg\nICBsZXQgYm91bmRUb3AgPSBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LmJvdW5kaW5nQ2xpZW50\nUmVjdC50b3A7XG4gICAgICAgICAgaWYgKGRlZmF1bHRPcHRpb24ucG9zaXRpb24gPT09IFwidG9w\nXCIpIHtcbiAgICAgICAgICAgIGlmIChib3VuZFRvcCA8IHRocmVzaG9sZE1heFZhbHVlKSB7XG4g\nICAgICAgICAgICAgICRhZmZpeExpbmUuc3R5bGUuaGVpZ2h0ID0gZG9tdXRpbHMub3V0ZXJIZWln\naHQoJHRhcmdldCkgKyBcInB4XCI7XG4gICAgICAgICAgICAgICR0YXJnZXQuY2xhc3NMaXN0LmFk\nZChcImFmZml4LWNvbnRhaW5lci10b3AtZml4ZWRcIik7XG4gICAgICAgICAgICB9IGVsc2Uge1xu\nICAgICAgICAgICAgICAkYWZmaXhMaW5lLnN0eWxlLmhlaWdodCA9IFwiXCI7XG4gICAgICAgICAg\nICAgICR0YXJnZXQuY2xhc3NMaXN0LnJlbW92ZShcImFmZml4LWNvbnRhaW5lci10b3AtZml4ZWRc\nIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAwXG4g\nICAgICApO1xuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIo\nXG4gICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgbG9ja0Z1bmMucnVuKGVudHJpZXMp\nO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgcm9vdDogbnVsbCxcbiAgICAgICAg\nICB0aHJlc2hvbGQsXG4gICAgICAgICAgXC9cLyB0aHJlc2hvbGQg6K6+572u5Li6IDEg6KGo56S6\n55uu5qCH5YWD57Sg5a6M5YWo5Y+v6KeB5pe26Kem5Y+R5Zue6LCD5Ye95pWwXG4gICAgICAgICAg\ncm9vdE1hcmdpblxuICAgICAgICAgIFwvXC8gcm9vdE1hcmdpbiDorr7nva7kuLogMHB4IOihqOek\nuuebruagh+WFg+e0oOS4juinhueql+S5i+mXtOeahOi3neemu1xuICAgICAgICB9XG4gICAgICAp\nO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSgkYWZmaXhMaW5lKTtcbiAgICB9KTtcbiAgfVxuICBj\nb25zdCBUaWViYUNvbW1lbnQgPSB7XG4gICAgXC8qKlxuICAgICAqIOW9k+WJjemhtVxuICAgICAq\nXC9cbiAgICBwYWdlOiAxLFxuICAgIFwvKipcbiAgICAgKiDlvZPliY3mnIDlpKfpobVcbiAgICAg\nKlwvXG4gICAgbWF4UGFnZTogMSxcbiAgICBcLyoqXG4gICAgICog5qW85bGC5pWw6YePXG4gICAg\nICpcL1xuICAgIGZsb29yX251bTogMSxcbiAgICBcLyoqXG4gICAgICog5rua5Yqo55uR5ZCs6ZSB\nXG4gICAgICpcL1xuICAgIGZ1bmNMb2NrOiBudWxsLFxuICAgIFwvKipcbiAgICAgKiB0YnPlgLxc\nbiAgICAgKlwvXG4gICAgdGJzOiBudWxsLFxuICAgIFwvKipcbiAgICAgKiB0aWRcbiAgICAgKlwv\nXG4gICAgcGFyYW1fdGlkOiBudWxsLFxuICAgIFwvKipcbiAgICAgKiDluJblrZBpZFxuICAgICAq\nXC9cbiAgICBwYXJhbV9mb3J1bV9pZDogbnVsbCxcbiAgICBcLyoqXG4gICAgICog5Y+R5biW5Lq6\n55qEaWRcbiAgICAgKlwvXG4gICAgcG9zdEF1dGhvcklkOiBudWxsLFxuICAgIFwvKipcbiAgICAg\nKiDmnKzluJblrZBwb3N055qEaWRcbiAgICAgKlwvXG4gICAgcGlkOiBudWxsLFxuICAgIFwvKipc\nbiAgICAgKiDluJblrZDlm57lpI3nmoTmlbDph49cbiAgICAgKlwvXG4gICAgcmVwbHlfbnVtOiB2\ndWUucmVmKDApLFxuICAgIFwvKipcbiAgICAgKiDmmK\/lkKblt7Llr7nlvZPliY3luJblrZDngrno\ntZ5cbiAgICAgKlwvXG4gICAgaGFzX2FncmVlOiB2dWUucmVmKGZhbHNlKSxcbiAgICBcLyoqXG4g\nICAgICog5biW5a2Q54K56LWe55qE5pWw6YePXG4gICAgICpcL1xuICAgIGFncmVlX251bTogdnVl\nLnJlZigwKSxcbiAgICBcLyoqXG4gICAgICog5b2T5YmN5bey55m75b2V55So5oi355qE5L+h5oGv\nXG4gICAgICpcL1xuICAgIHVzZXJJbmZvOiB2dWUucmVmKHtcbiAgICAgIFwvKipcbiAgICAgICAq\nIOeUqOaIt2lkXG4gICAgICAgKlwvXG4gICAgICBpZDogbnVsbCxcbiAgICAgIFwvKipcbiAgICAg\nICAqIOaYr+WQpuW3sueZu+W9le+8jOWmguaenOaYrzDvvIzpgqPkuYjlhbblroPmlbDmja7kuI3l\nrZjlnKhcbiAgICAgICAqICsgMSDlt7LnmbvlvZVcbiAgICAgICAqICsgMCDmnKrnmbvlvZVcbiAg\nICAgICAqXC9cbiAgICAgIGlzX2xvZ2luOiAwLFxuICAgICAgXC8qKlxuICAgICAgICog55So5oi3\n5ZCNXG4gICAgICAgKlwvXG4gICAgICBuYW1lOiBudWxsLFxuICAgICAgXC8qKlxuICAgICAgICog\n5pi+56S655qE55So5oi35ZCNXG4gICAgICAgKlwvXG4gICAgICBuYW1lX3Nob3c6IG51bGwsXG4g\nICAgICBcLyoqXG4gICAgICAgKiDnlKjmiLfnmoR0YlxuICAgICAgICpcL1xuICAgICAgcG9ydHJh\naXQ6IG51bGwsXG4gICAgICBcLyoqXG4gICAgICAgKiDmmL7npLrnmoTnlKjmiLflkI1cbiAgICAg\nICAqXC9cbiAgICAgIHNob3dfbmlja25hbWU6IG51bGxcbiAgICB9KSxcbiAgICBmb3J1bUluZm86\nIHZ1ZS5yZWYoe1xuICAgICAgXC8qKlxuICAgICAgICog5b2T5YmN5ZCnaWTvvIznroDnp7B0aWRc\nbiAgICAgICAqXC9cbiAgICAgIGlkOiBudWxsLFxuICAgICAgXC8qKlxuICAgICAgICog5b2T5YmN\n5ZCn5ZCN77yM566A56ewa3dcbiAgICAgICAqXC9cbiAgICAgIG5hbWU6IG51bGxcbiAgICB9KSxc\nbiAgICBcLyoqXG4gICAgICog6L+b6L+H55m+5bqm6aqM6K+B55qE6aKd5aSW5a6J5YWo5Y+C5pWw\nXG4gICAgICpcL1xuICAgIGV4dHJhU2VhcmNoU2lnblBhcmFtczogXCJcIixcbiAgICBcLyoqXG4g\nICAgICogdnVl5qC55YWD57SgXG4gICAgICpcL1xuICAgIHZ1ZVJvb3RWaWV3OiBudWxsLFxuICAg\nIFwvKipcbiAgICAgKiDliKTmlq3mmK\/lkKblnKjlupXpg6jpmYTov5HnmoTor6\/lt67lgLxcbiAg\nICAgKiBAdHlwZVxuICAgICAqXC9cbiAgICBpc05lYXJCb3R0b21WYWx1ZTogMjUwLFxuICAgIGlu\naXQoKSB7XG4gICAgICBsZXQgdXJsU2lnblBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2lu\nZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgICBpZiAodXJsU2lnblBhcmFtcy5oYXMoXCJwX3Rr\nXCIpICYmIHVybFNpZ25QYXJhbXMuaGFzKFwicF9zaWduXCIpICYmIHVybFNpZ25QYXJhbXMuaGFz\nKFwicF9zaWduYXR1cmVcIikpIHtcbiAgICAgICAgbG9nLmVycm9yKFwi5b2T5YmN6aG16Z2i5piv\n57uP6L+H55m+5bqm6aqM6K+B5ZCO55qE572R56uZ77yM5re75Yqg6aqM6K+B5Y+C5pWwXCIpO1xu\nICAgICAgICB1cmxTaWduUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAg\nICBpZiAoW1wicG5cIiwgXCJ0aWRcIiwgXCJwaWRcIiwgXCJmaWRcIiwgXCJ0XCIsIFwic2VlX2x6\nXCJdLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4g\nICAgICAgICAgbG9nLnN1Y2Nlc3MoYOiuvue9rumineWkluWPguaVsO+8miR7a2V5fT0ke3ZhbHVl\nfWApO1xuICAgICAgICB9KTtcbiAgICAgICAgbG9nLmVycm9yKFtcIueZvuW6pumqjOivgeWQjuea\nhOWPguaVsPCfkYdcIiwgVGllYmFDb21tZW50LmV4dHJhU2VhcmNoU2lnblBhcmFtc10pO1xuICAg\nICAgfVxuICAgICAgdXRpbHMud2FpdE5vZGUoXCIubWFpbi1wYWdlLXdyYXBcIikudGhlbigoKSA9\nPiB7XG4gICAgICAgIFRpZWJhQ29tbWVudC5pbnNlcnRMb2FkaW5nSFRNTCgpO1xuICAgICAgfSk7\nXG4gICAgICB1dGlscy53YWl0QW55Tm9kZShbXG4gICAgICAgIFwiLnJlY29tbWVuZC1pdGVtW2Rh\ndGEtYmFubmVyLWluZm9dXCIsXG4gICAgICAgIFwiZGl2LmFwcC12aWV3LnRyYW5zaXRpb24tZmFk\nZS5wYi1wYWdlLXdyYXBwZXIubWFzay1oaWRkZW4gLnBvc3QtaXRlbVwiXG4gICAgICBdKS50aGVu\nKCgpID0+IHtcbiAgICAgICAgZG9tdXRpbHMucmVtb3ZlKFwiLnBvc3QtaXRlbVwiKTtcbiAgICAg\nICAgVGllYmFDb21tZW50LmluaXRSZXBseURpYWxvZ0NTUygpO1xuICAgICAgICBUaWViYUNvbW1l\nbnQuaW5pdE1haW5Db21tZW50KGZhbHNlKTtcbiAgICAgICAgVGllYmFDb21tZW50Lmluc2VydFJl\ndmVyc2VCdG4oKTtcbiAgICAgICAgVGllYmFDb21tZW50Lmluc2VydE9ubHlMWigpO1xuICAgICAg\nICB1dGlscy53YWl0Tm9kZSgnLm5hdi1iYXItdjItZml4ZWRbbWFpbi10eXBlPVwiZm9ydW1cIl0n\nKS50aGVuKCgkbmF2QmFyKSA9PiB7XG4gICAgICAgICAgc2V0QWZmaXgoe1xuICAgICAgICAgICAg\ndGFyZ2V0OiBcIiNyZXBseVN3aXRjaFwiLFxuICAgICAgICAgICAgcG9zaXRpb246IFwidG9wXCIs\nXG4gICAgICAgICAgICByb290OiAkbmF2QmFyLFxuICAgICAgICAgICAgb2Zmc2V0OiA0OSxcbiAg\nICAgICAgICAgIGNoYW5nZSgpIHtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAg\nICAgfSk7XG4gICAgICB9KTtcbiAgICAgIFZ1ZVV0aWxzLndhaXRWdWVQcm9wVG9TZXQoXCIuYXBw\nLXZpZXdcIiwgW1xuICAgICAgICB7XG4gICAgICAgICAgbXNnOiBcIuiuvue9ruWPguaVsCBpc0hp\ndE1lZGljYWxQb3N0XCIsXG4gICAgICAgICAgY2hlY2sodnVlT2JqKSB7XG4gICAgICAgICAgICBy\nZXR1cm4gdHlwZW9mICh2dWVPYmogPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZU9iai5pc0hpdE1lZGlj\nYWxQb3N0KSA9PT0gXCJib29sZWFuXCI7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodnVl\nT2JqKSB7XG4gICAgICAgICAgICB2dWVPYmouaXNIaXRNZWRpY2FsUG9zdCA9IGZhbHNlO1xuICAg\nICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLmiJDlip\/orr7nva7lj4LmlbAgaXNIaXRNZWRpY2FsUG9z\ndD1mYWxzZVwiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAg\nICBtc2c6IFwi6I635Y+W5Y+C5pWwIF9fdnVlX18ucG9zdEF1dGhvcklkXCIsXG4gICAgICAgICAg\nY2hlY2sodnVlT2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mICh2dWVPYmogPT0gbnVs\nbCA\/IHZvaWQgMCA6IHZ1ZU9iai5wb3N0QXV0aG9ySWQpID09PSBcIm51bWJlclwiO1xuICAgICAg\nICAgIH0sXG4gICAgICAgICAgc2V0KHZ1ZU9iaikge1xuICAgICAgICAgICAgVGllYmFDb21tZW50\nLnBvc3RBdXRob3JJZCA9IHZ1ZU9iai5wb3N0QXV0aG9ySWQ7XG4gICAgICAgICAgICBsb2cuc3Vj\nY2VzcyhcIuiOt+WPluW9k+WJjeW4luWtkOeahOS9nOiAhUlE77yaXCIgKyBUaWViYUNvbW1lbnQu\ncG9zdEF1dGhvcklkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAg\nICAgICBtc2c6IFwi6I635Y+W5Y+C5pWwIF9fdnVlX18uY3VycmVudFJlcGx5T2JqLnBpZFwiLFxu\nICAgICAgICAgIGNoZWNrKHZ1ZU9iaikge1xuICAgICAgICAgICAgdmFyIF9hMztcbiAgICAgICAg\nICAgIHJldHVybiB0eXBlb2YgKChfYTMgPSB2dWVPYmogPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZU9i\nai5jdXJyZW50UmVwbHlPYmopID09IG51bGwgPyB2b2lkIDAgOiBfYTMucGlkKSA9PT0gXCJudW1i\nZXJcIjtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldCh2dWVPYmopIHtcbiAgICAgICAgICAg\nIFRpZWJhQ29tbWVudC5waWQgPSB2dWVPYmouY3VycmVudFJlcGx5T2JqLnBpZDtcbiAgICAgICAg\nICAgIGxvZy5zdWNjZXNzKFwi6I635Y+W5b2T5YmN5biW5a2Q55qEcGlk77yaXCIgKyBUaWViYUNv\nbW1lbnQucGlkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgICAgVG9v\nbGJhci51cGRhdGVFbnZQYXJhbSgpO1xuICAgICAgdGhpcy5pbml0Q1NTKCk7XG4gICAgICB0aGlz\nLnNldFVzZXJDb21tZW50SGFuZGxlcigpO1xuICAgIH0sXG4gICAgaW5pdENTUygpIHtcbiAgICAg\nIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxuXHRcdFwvKiDljrvpmaTl\nupXpg6jpq5jluqborr7lrpogKlwvXG5cdFx0LnBiLXBhZ2Utd3JhcHBlcntcblx0XHRcdG1hcmdp\nbi1ib3R0b206IDAgIWltcG9ydGFudDtcblx0XHR9XG5cdFx0LnBvc3QtaXRlbVtkYXRhLXYtNzRl\nYjEzZTJdIHtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRtYXJnaW46IC4xNnJlbSAu\nMTNyZW0gMDtcblx0XHR9XG5cdFx0LnBvc3QtaXRlbSAuY29udGVudFtkYXRhLXYtNzRlYjEzZTJd\ne1xuXHRcdFx0bWFyZ2luLXRvcDogLjA2cmVtO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogLjA2cmVt\nO1xuXHRcdH1cblx0XHQucG9zdC1pdGVtIC51c2VyLWxpbmUtcG9zdFtkYXRhLXYtNzRlYjEzZTJd\nIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IC4wNnJlbTtcblx0XHR9XG5cdFx0LnVzZXItbGluZS13\ncmFwcGVyW2RhdGEtdi0xODhjMGU4NF0sIC51c2VyLWxpbmVbZGF0YS12LTE4OGMwZTg0XSB7XG5c\ndFx0XHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5cdFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtc\nblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0fVxuXHRcdC51c2VyLWxpbmUtd3JhcHBlcltkYXRh\nLXYtMTg4YzBlODRdIHtcblx0XHRcdC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XG5cdFx0XHQt\nbW96LWJveC1wYWNrOiBqdXN0aWZ5O1xuXHRcdFx0LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IHNw\nYWNlLWJldHdlZW47XG5cdFx0XHQtbW96LWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtc\nblx0XHRcdC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IHNw\nYWNlLWJldHdlZW47XG5cdFx0fVxuXHRcdC5wb3N0LWl0ZW0gLmNvbnRlbnRbZGF0YS12LTc0ZWIx\nM2UyXSB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IC40NHJlbTtcblx0XHRcdHdpZHRoOiBhdXRvO1xu\nXHRcdH1cblx0XHQudXNlci1saW5lW2RhdGEtdi0xODhjMGU4NF0ge1xuXHRcdFx0LXdlYmtpdC1i\nb3gtYWxpZ246IGNlbnRlcjtcblx0XHRcdC1tb3otYm94LWFsaWduOiBjZW50ZXI7XG5cdFx0XHQt\nd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHQtbW96LWFsaWduLWl0ZW1zOiBjZW50\nZXI7XG5cdFx0XHQtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNl\nbnRlcjtcblx0XHRcdC13ZWJraXQtYm94LXBhY2s6IGxlZnQ7XG5cdFx0XHQtbW96LWJveC1wYWNr\nOiBsZWZ0O1xuXHRcdFx0LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cdFx0XHQtbW96\nLWp1c3RpZnktY29udGVudDogbGVmdDtcblx0XHRcdC1tcy1mbGV4LXBhY2s6IGxlZnQ7XG5cdFx0\nXHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG5cdFx0fVxuXHRcdC51c2VyLWxpbmUtd3JhcHBlcltk\nYXRhLXYtMTg4YzBlODRdLCAudXNlci1saW5lW2RhdGEtdi0xODhjMGU4NF0ge1xuXHRcdFx0ZGlz\ncGxheTogLXdlYmtpdC1mbGV4O1xuXHRcdFx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdFx0XHRk\naXNwbGF5OiBmbGV4O1xuXHRcdH1cblx0XHQudXNlci1saW5lIC5hdmF0YXJbZGF0YS12LTE4OGMw\nZTg0XSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHQtd2Via2l0LWJveC1zaXpp\nbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0d2lk\ndGg6IC4zNnJlbTtcblx0XHRcdGhlaWdodDogLjM2cmVtO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAu\nMDhyZW07XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRiYWNrZ3JvdW5kLXJlcGVh\ndDogbm8tcmVwZWF0O1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xuXHRcdFx0YmFj\na2dyb3VuZC1zaXplOiBjb3Zlcjtcblx0XHRcdC13ZWJraXQtYm94LWZsZXg6IDA7XG5cdFx0XHQt\nd2Via2l0LWZsZXg6IG5vbmU7XG5cdFx0XHQtbXMtZmxleDogbm9uZTtcblx0XHRcdGZsZXg6IG5v\nbmU7XG5cdFx0fVxuXHRcdC50YmZlLTFweC1ib3JkZXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0\naXZlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogLjA4cmVtO1xuXHRcdFx0Zm9udC1zaXplOiAwO1xu\nXHRcdH1cblx0XHQudXNlci1saW5lIC51c2VyLWluZm9bZGF0YS12LTE4OGMwZTg0XSB7XG5cdFx0\nXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0LXdl\nYmtpdC1ib3gtZmxleDogMDtcblx0XHRcdC13ZWJraXQtZmxleDogbm9uZTtcblx0XHRcdC1tcy1m\nbGV4OiBub25lO1xuXHRcdFx0ZmxleDogbm9uZTtcblx0XHR9XG5cdFx0LnVzZXItbGluZSAuYXZh\ndGFyW2RhdGEtdi0xODhjMGU4NF06YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xu\nXHRcdH1cblx0XHQudGJmZS0xcHgtYm9yZGVyOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7\nXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR6LWluZGV4OiAxMDA7XG5cdFx0XHR0\nb3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0LXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXIt\nYm94O1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGJvcmRlcjogMXB4IHNv\nbGlkIHJnYmEoMCwwLDAsLjEyKTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAw\nO1xuXHRcdFx0LW1zLXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0XHRcdHRyYW5zZm9ybS1vcmln\naW46IDAgMDtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdH1cblx0XHQudXNlci1s\naW5lIC51c2VyLWluZm8gLnVzZXJuYW1lW2RhdGEtdi0xODhjMGU4NF0sXG5cdFx0I3doaXRlc2V2\nLXJlcGx5LWRpYWxvZyAud2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItdXNlcm5hbWUge1xuXHRc\ndFx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdFx0XHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5c\ndFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHQt\nd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHRcdFx0LXdlYmtpdC1hbGlnbi1pdGVtczogY2Vu\ndGVyO1xuXHRcdFx0LW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcblx0XHRcdGFsaWduLWl0ZW1zOiBj\nZW50ZXI7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0Zm9udC1zaXplOiAuMTVyZW07\nXG5cdFx0XHRsaW5lLWhlaWdodDogLjI4cmVtO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtc\nblx0XHRcdC1vLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0dGV4dC1vdmVyZmxvdzog\nZWxsaXBzaXM7XG5cdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdH1cblx0XHQud2hpdGVzZXYt\ncmVwbHktZGlhbG9nLXVzZXItaW5mb3tcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGln\nbi1pdGVtczogY2VudGVyO1xuXHRcdH1cblx0XHQuZGVzYy1pbmZvW2RhdGEtdi0xODhjMGU4NF0g\ne1xuXHRcdFx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdFx0XHRkaXNwbGF5OiAtd2Via2l0LWZs\nZXg7XG5cdFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5c\ndFx0XHQtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHRcdFx0LXdlYmtpdC1hbGlnbi1pdGVt\nczogY2VudGVyO1xuXHRcdFx0LW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcblx0XHRcdGFsaWduLWl0\nZW1zOiBjZW50ZXI7XG5cdFx0XHRmb250LXNpemU6IC4xMnJlbTtcblx0XHRcdGxpbmUtaGVpZ2h0\nOiAuMThyZW07XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5v\nd3JhcDtcblx0XHRcdC1vLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXHRcdFx0dGV4dC1vdmVy\nZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRjb2xvcjogI2EzYTJhODtcblx0XHRcdG1hcmdpbjogMC4w\nNnJlbTtcblx0XHR9XG5cdFx0LmZsb29yLWluZm9bZGF0YS12LTE4OGMwZTg0XSxcblx0XHQudXNl\nci1saW5lIC51c2VyLWluZm8gLmZvcnVtLWluZm9bZGF0YS12LTE4OGMwZTg0XSB7XG5cdFx0XHRt\nYXJnaW4tcmlnaHQ6IC4wOHJlbTtcblx0XHR9XG5cdFx0LnBvc3QtaXRlbSAuY29udGVudCAucG9z\ndC10ZXh0W2RhdGEtdi03NGViMTNlMl0ge1xuXHRcdFx0ZGlzcGxheTogdW5zZXQ7XG5cdFx0XHRm\nb250LXNpemU6IC4xNnJlbTtcblx0XHRcdGxpbmUtaGVpZ2h0OiAuMjRyZW07XG5cdFx0fVxuXHRc\ndC50aHJlYWQtdGV4dFtkYXRhLXYtYWIxNGIzZmVdIHtcblx0XHRcdGZvbnQtc2l6ZTogLjEzcmVt\nO1xuXHRcdFx0bGluZS1oZWlnaHQ6IC4yMXJlbTtcblx0XHRcdHRleHQtYWxpZ246IGp1c3RpZnk7\nXG5cdFx0XHR3b3JkLWJyZWFrOiBicmVhay1hbGw7XG5cdFx0fVxuXHRcdC5wb3N0LWl0ZW0gLmNv\nbnRlbnQgLmx6bC1wb3N0W2RhdGEtdi03NGViMTNlMl0ge1xuXHRcdFx0XC8qIG1hcmdpbi10b3A6\nIC4wNnJlbTsgKlwvXG5cdFx0fVxuXHRcdC5semwtcG9zdFtkYXRhLXYtNWI2MGYzMGJdIHtcblx0\nXHRcdHBhZGRpbmc6IC4wOHJlbSAuMTJyZW07XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZjhmN2ZkO1xu\nXHRcdFx0Ym9yZGVyLXJhZGl1czogLjA4cmVtO1xuXHRcdH1cblx0XHQucG9zdC1pdGVtIC5jb250\nZW50IC5wb3N0LXNwbGl0LWxpbmVbZGF0YS12LTc0ZWIxM2UyXSB7XG5cdFx0XHRtYXJnaW4tdG9w\nOiAuMTJyZW07XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWRlZGYwO1xuXHRcdFx0aGVpZ2h0\nOiAxcHg7XG5cdFx0XHR3aWR0aDogMjAwJTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiBzY2Fs\nZSguNSk7XG5cdFx0XHQtbXMtdHJhbnNmb3JtOiBzY2FsZSguNSk7XG5cdFx0XHR0cmFuc2Zvcm06\nIHNjYWxlKC41KTtcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5c\ndFx0XHQtbXMtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG5cdFx0XHR0cmFuc2Zvcm0tb3Jp\nZ2luOiB0b3AgbGVmdDtcblx0XHR9XG5cdFx0Lmx6bC1wb3N0IC5semwtcG9zdC1pdGVtW2RhdGEt\ndi01YjYwZjMwYl06Zmlyc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XG5c\ndFx0Lmx6bC1wb3N0IC5semwtcG9zdC1pdGVtW2RhdGEtdi01YjYwZjMwYl0ge1xuXHRcdFx0bWFy\nZ2luLXRvcDogLjA0cmVtO1xuXHRcdH1cblx0XHQubHpsLXBvc3QgLmx6bC1wb3N0LWl0ZW0gLnRl\neHQtYm94W2RhdGEtdi01YjYwZjMwYl0ge1xuXHRcdFx0Zm9udC1zaXplOiAuMTNyZW07XG5cdFx0\nXHRsaW5lLWhlaWdodDogLjJyZW07XG5cdFx0fVxuXHRcdC5semwtcG9zdCAubHpsLXBvc3QtaXRl\nbSAudGV4dC1ib3ggLmxpbmtbZGF0YS12LTViNjBmMzBiXSB7XG5cdFx0XHRkaXNwbGF5OiAtd2Vi\na2l0LWlubGluZS1ib3g7XG5cdFx0XHRkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuXHRc\ndFx0ZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWZs\nZXg7XG5cdFx0XHQtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHRcdFx0LXdlYmtpdC1hbGln\nbi1pdGVtczogY2VudGVyO1xuXHRcdFx0LW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcblx0XHRcdGFs\naWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0Y29sb3I6\nICNhNGExYTg7XG5cdFx0fVxuXHRcdC5semwtcG9zdCAubHpsLXBvc3QtaXRlbSAubHpsLXBvc3Qt\ndGV4dFtkYXRhLXYtNWI2MGYzMGJdIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHR9XG5c\ndFx0LnRocmVhZC10ZXh0W2RhdGEtdi1hYjE0YjNmZV0ge1xuXHRcdFx0Zm9udC1zaXplOiAuMTNy\nZW07XG5cdFx0XHRsaW5lLWhlaWdodDogLjI2cmVtO1xuXHRcdFx0dGV4dC1hbGlnbjoganVzdGlm\neTtcblx0XHRcdHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcblx0XHR9XG5cdFx0Lmx6bC1wb3N0IC5s\nemwtcG9zdC1pdGVtIC50ZXh0LWJveCAubGluayAubGFuZGxvcmRbZGF0YS12LTViNjBmMzBiXSB7\nXG5cdFx0XHR3aWR0aDogLjI4cmVtO1xuXHRcdFx0aGVpZ2h0OiAuMjhyZW07XG5cdFx0XHRtYXJn\naW4tbGVmdDogLjA0cmVtO1xuXHRcdH1cblx0XHQudXNlci1saW5lIC51c2VyLWluZm8gLnVzZXJu\nYW1lIC5sYW5kbG9yZFtkYXRhLXYtMTg4YzBlODRdLFxuXHRcdCN3aGl0ZXNldi1yZXBseS1kaWFs\nb2cgLmxhbmRsb3JkW2RhdGEtdi0xODhjMGU4NF17XG5cdFx0XHR3aWR0aDogLjI4cmVtO1xuXHRc\ndFx0aGVpZ2h0OiAuMjhyZW07XG5cdFx0XHRtYXJnaW4tbGVmdDogLjA0cmVtXG5cdFx0fVxuXG5c\ndFx0XC8qIOS\/ruWkjeW4luWtkOS4u+WGheWuueW6lemDqOeahOmrmOW6piAqXC9cblx0XHQucG9z\ndC1yZXNvdXJjZS1saXN0ICsgLmludGVyYWN0aW9uLWJhcntcblx0XHRcdHBhZGRpbmc6IDAuMDly\nZW0gIWltcG9ydGFudDtcblx0XHR9XG5cdFx0XC8qIOS\/ruWkjeWFqOmDqOWbnuWkjei3neemu+S4\niumdoueahOepuueZveWMuuWfnyAqXC9cblx0XHQjcmVwbHlTd2l0Y2h7XG5cdFx0XHRwYWRkaW5n\nLXRvcDogMC4wNnJlbTtcblx0XHRcdHdpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuXHRc\ndFx0d2lkdGg6IC1tb3otYXZhaWxhYmxlO1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZmZmZjtcblx0\nXHR9XG5cdFx0YFxuICAgICAgKTtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9c\nbiAgICAgICAgYFxuXHRcdC50aHJlYWQtdGV4dCAuQkRFX1NtaWxleSB7XG5cdFx0XHR3aWR0aDog\nLjJyZW07XG5cdFx0XHRoZWlnaHQ6IC4ycmVtO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRs\nZTtcblx0XHR9XG5cdFx0LnRocmVhZC10ZXh0IC5CREVfSW1hZ2V7XG5cdFx0XHRtYXJnaW4tdG9w\nOiA4cHg7XG5cdFx0XHRtYXgtd2lkdGg6IDM1MHB4O1xuXHRcdFx0Y3Vyc29yOiB1cmwoXC9cL3Ri\nMi5iZHN0YXRpYy5jb21cL3RiXC9zdGF0aWMtcGJcL2ltZ1wvY3VyX3ppbi5jdXIpLHBvaW50ZXI7\nXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdHdpZHRoOiAx\nMDAlO1xuXHRcdH1cblx0XHQudGV4dC1jb250ZW50IC5hdHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2\nMDA7XG5cdFx0XHRjb2xvcjogIzYxNEZCQztcblx0XHR9YFxuICAgICAgKTtcbiAgICAgIGFkZFN0\neWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxuXHRcdGJvZHkgPiBkaXYubWFpbi1w\nYWdlLXdyYXAgPiBkaXYuYXBwLXZpZXcudHJhbnNpdGlvbi1mYWRlLnBiLXBhZ2Utd3JhcHBlci5t\nYXNrLWhpZGRlbiA+IGRpdi5wbGFjZWhvbGRlcixcblx0XHRkaXYuYXBwLXZpZXcudHJhbnNpdGlv\nbi1mYWRlLnBiLXBhZ2Utd3JhcHBlci5tYXNrLWhpZGRlbiAucG9zdC1pdGVtW2RhdGEtdHJhY2td\ne1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9YFxuICAgICAgKTtcbiAgICAgIGFkZFN0eWxl\nKHRoaXMuZ2V0TGV2ZWxDU1MoKSk7XG4gICAgICBhZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwv\nXG4gICAgICAgIGBcblx0XHRcLyog5pu05aSa55qE5oyJ6ZKuICpcL1xuXHRcdC51c2VyLWNvbW1l\nbnQtaGFuZGxlcntcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRhbGlnbi1pdGVtczogY2Vu\ndGVyO1xuXHRcdH1cblx0XHQudXNlci1jb21tZW50LWhhbmRsZXIgLmljb257XG5cdFx0ICAgIHdp\nZHRoOiAwLjE2cmVtO1xuXHRcdCAgICBoZWlnaHQ6IDAuMTZyZW07XG5cdFx0fVxuXHRcdGBcbiAg\nICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6K6+572u5q+P5p2h6K+E6K665Y+z6L65\n55qE5pu05aSa5oyJ6ZKu55qE5LqL5Lu2XG4gICAgICpcL1xuICAgIHNldFVzZXJDb21tZW50SGFu\nZGxlcigpIHtcbiAgICAgIGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUl0ZW0oaWQpIHtcbiAgICAgICAg\nbGV0IGNvbW1lbnRfaWQgPSBpZDtcbiAgICAgICAgbGV0IHRocmVhZF9pZCA9IFRpZWJhQ29tbWVu\ndC5wYXJhbV90aWQ7XG4gICAgICAgIGxldCBrdyA9IFRpZWJhQ29tbWVudC5mb3J1bUluZm8udmFs\ndWUubmFtZTtcbiAgICAgICAgbGV0IHRicyA9IFRpZWJhQ29tbWVudC50YnM7XG4gICAgICAgIGxl\ndCBmb3J1bV9pZCA9IFRpZWJhQ29tbWVudC5wYXJhbV9mb3J1bV9pZDtcbiAgICAgICAgcmV0dXJu\nIGF3YWl0IFRpZWJhUG9zdEFwaS5kZWxldGVDb21taXQoe1xuICAgICAgICAgIHRicyxcbiAgICAg\nICAgICBmaWQ6IGZvcnVtX2lkLFxuICAgICAgICAgIGt3LFxuICAgICAgICAgIHRpZDogdGhyZWFk\nX2lkLFxuICAgICAgICAgIHBpZDogY29tbWVudF9pZFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAg\nICAgIGZ1bmN0aW9uIGNsaWNrQ2FsbEJhY2soZGF0YSkge1xuICAgICAgICBsZXQgJGRyYXdlciA9\nIF9fcG9wcy5kcmF3ZXIoe1xuICAgICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICBlbmFibGU6\nIGZhbHNlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICB0\nZXh0OiAoXG4gICAgICAgICAgICAgIFwvKmh0bWwqXC9cbiAgICAgICAgICAgICAgYFxuXHRcdFx0\nXHRcdDxkaXYgY2xhc3M9XCJoYW5kbGVyLWNvbnRhaW5lclwiPlxuXHRcdFx0XHRcdFx0PGRpdiBj\nbGFzcz1cInJlcGx5LWNvbnRlbnQtaW5mb1wiPlxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwi\ncmVwbHktY29udGVudC1uYW1lXCI+JHtkYXRhLnVzZXJ977yaPFwvZGl2PlxuXHRcdFx0XHRcdFx0\nXHQ8ZGl2IGNsYXNzPVwicmVwbHktY29udGVudC10ZXh0XCI+JHtkYXRhLmNvbnRlbnR9PFwvZGl2\nPlxuXHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJlcGx5LXRv\nb2xcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJlcGx5LXRvb2wtaXRlbVwiPlxuXHRc\ndFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyZXBseS10b29sLWRlbGV0ZVwiPlxuXHRcdFx0XHRc\ndFx0XHRcdFx0PHN2ZyBjbGFzcz1cImljb25cIiB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZl\ncnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHAt\naWQ9XCIyMDA0OVwiPjxwYXRoIGQ9XCJNMjg4IDI1NlYxMjhjMC0zOC40IDI1LjYtNjQgNzAuNC02\nNGgzMTAuNGM0MS42IDAgNjcuMiAyNS42IDY3LjIgNjR2MTI4aDE2MGMxOS4yIDAgMzIgMTIuOCAz\nMiAzMnMtMTIuOCAzMi0zMiAzMkgxMjhjLTE5LjIgMC0zMi0xMi44LTMyLTMyczEyLjgtMzIgMzIt\nMzJoMTYweiBtNjQgMGgzMjBWMTI4SDM1MnYxMjh6TTI1NiA4OTZoNTEyVjQxNmMwLTE2IDEyLjgt\nMzIgMzItMzIgMTYgMCAzMiAxMi44IDMyIDMydjQ4MGMwIDM4LjQtMjIuNCA2NC02MC44IDY0SDI1\nMi44QzIxNC40IDk2MCAxOTIgOTM0LjQgMTkyIDg5NlY0MTZjMC0xOS4yIDEyLjgtMzIgMzItMzJz\nMzIgMTIuOCAzMiAzMnY0ODB6IG0yNTYtNTEyYzE5LjIgMCAzMiAxMi44IDMyIDMydjM1MmMwIDE5\nLjItMTIuOCAzMi0zMiAzMnMtMzItMTIuOC0zMi0zMlY0MTZjMC0xOS4yIDEyLjgtMzIgMzItMzJ6\nXCIgcC1pZD1cIjIwMDUwXCI+PFwvcGF0aD48XC9zdmc+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8cD7l\niKDpmaQ8XC9wPlxuXHRcdFx0XHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0XHRcdFx0PFwvZGl2\nPlxuXHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0XHRgXG4g\nICAgICAgICAgICApLFxuICAgICAgICAgICAgaHRtbDogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAg\nICAgICAgYnRuOiB7XG4gICAgICAgICAgICBvazoge1xuICAgICAgICAgICAgICBlbmFibGU6IGZh\nbHNlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FuY2VsOiB7XG4gICAgICAgICAgICAg\nIHRleHQ6IFwi5Y+W5raIXCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwidGllYmEtY2FuY2VsXCIs\nXG4gICAgICAgICAgICAgIGVuYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0s\nXG4gICAgICAgICAgZGlyZWN0aW9uOiBcImJvdHRvbVwiLFxuICAgICAgICAgIHNpemU6IFwiMzAl\nXCIsXG4gICAgICAgICAgekluZGV4OiB1dGlscy5nZXRNYXhaSW5kZXgoMTAwKSxcbiAgICAgICAg\nICBtYXNrOiB7XG4gICAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAgICAgICBjbGlja0V2\nZW50OiB7XG4gICAgICAgICAgICAgIHRvQ2xvc2U6IHRydWUsXG4gICAgICAgICAgICAgIHRvSGlk\nZTogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0eWxlOiAo\nXG4gICAgICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgICAgIGBcblx0XHRcdFx0LnBvcHNbdHlw\nZS12YWx1ZT1cImRyYXdlclwiXXtcblx0XHRcdFx0XHRoZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7\nXG5cdFx0XHRcdFx0bWF4LWhlaWdodDogMzIlO1xuXHRcdFx0XHRcdGJvcmRlci10b3AtbGVmdC1y\nYWRpdXM6IDE2cHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1\nczogMTZweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5wb3BzLWRyYXdlci1jb250\nZW50e1xuXHRcdFx0XHRcdHBhZGRpbmc6IDIwcHggMjBweCAwcHggMjBweCAhaW1wb3J0YW50XG5c\ndFx0XHRcdH1cblx0XHRcdFx0LnBvcHMtZHJhd2VyLWJ0bntcblx0XHRcdFx0XHRhbGlnbi1zZWxm\nOiBjZW50ZXI7XG5cdFx0XHRcdH1cblx0XHRcdFx0LnBvcHMtZHJhd2VyLWJ0bi1jYW5jZWxbdHlw\nZT1cInRpZWJhLWNhbmNlbFwiXXtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50\nO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHRcdFx0XHR9XG5cblx0XHRc\ndFx0LnJlcGx5LWNvbnRlbnQtaW5mb3tcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0\nXHRcdGZvbnQtc2l6ZTogMC4xNHJlbTtcblx0XHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRl\ncjtcblx0XHRcdFx0fVxuXHRcdFx0XHQucmVwbHktY29udGVudC1uYW1le1xuXHRcdFx0XHRcdGNv\nbG9yOiAjYTNhMmE4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC5yZXBseS1jb250ZW50LXRleHR7XG5c\ndFx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRcdFx0b3ZlcmZsb3c6IGhp\nZGRlbjtcblx0XHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0XHR9XG5cdFx0XHRc\ndC5yZXBseS10b29se1xuXHRcdFx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRcdH1cblx0XHRc\ndFx0LnJlcGx5LXRvb2wtaXRlbSA+IGRpdntcblx0XHRcdFx0XHRwYWRkaW5nOiAwcHggMjBweDtc\nblx0XHRcdFx0XHRmbGV4OiAxO1xuXHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRcdFx0\nZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0XHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xu\nXHRcdFx0XHR9XG5cdFx0XHRcdC5yZXBseS10b29sLWl0ZW0gPiBkaXYgPiBwe1xuXHRcdFx0XHRc\ndHBhZGRpbmctdG9wOiA2cHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0LnJlcGx5LXRvb2wgLnJlcGx5\nLXRvb2wtaXRlbXtcblx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdGJvcmRlci1i\nb3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDZweCAwcHg7XG5c\ndFx0XHRcdH1cblx0XHRcdFx0LnJlcGx5LXRvb2wgLnJlcGx5LXRvb2wtaXRlbSBzdmd7XG5cdFx0\nXHRcdFx0d2lkdGg6IDI4cHg7XG5cdFx0XHRcdFx0aGVpZ2h0OiAyOHB4O1xuXHRcdFx0XHR9XG5c\ndFx0XHRcdC5yZXBseS10b29sIC5yZXBseS10b29sLWl0ZW06bGFzdC1jaGlsZHtcblx0XHRcdFx0\nXHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGBcbiAgICAgICAgICApXG4g\nICAgICAgIH0pO1xuICAgICAgICBsZXQgJGRlbGV0ZUJ0biA9ICRkcmF3ZXIuJHNoYWRvd1Jvb3Qu\ncXVlcnlTZWxlY3RvcihcIi5yZXBseS10b29sLWRlbGV0ZVwiKTtcbiAgICAgICAgaWYgKFRpZWJh\nQ29tbWVudC51c2VySW5mby52YWx1ZS5pZCAhPSBudWxsICYmIFRpZWJhQ29tbWVudC51c2VySW5m\nby52YWx1ZS5pZC50b1N0cmluZygpID09PSBkYXRhLnVzZXJJZC50b1N0cmluZygpIHx8IFRpZWJh\nQ29tbWVudC51c2VySW5mby52YWx1ZS5pZCAhPSBudWxsICYmIFRpZWJhQ29tbWVudC51c2VySW5m\nby52YWx1ZS5pZC50b1N0cmluZygpID09PSBUaWViYUNvbW1lbnQucG9zdEF1dGhvcklkLnRvU3Ry\naW5nKCkpIHtcbiAgICAgICAgICBkb211dGlscy5vbigkZGVsZXRlQnRuLCBcImNsaWNrXCIsIGZ1\nbmN0aW9uKCkge1xuICAgICAgICAgICAgJGRyYXdlci5jbG9zZSgpO1xuICAgICAgICAgICAgX19w\nb3BzLmNvbmZpcm0oe1xuICAgICAgICAgICAgICB0aXRsZToge1xuICAgICAgICAgICAgICAgIHRl\neHQ6IFwiXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY29udGVudDoge1xuICAg\nICAgICAgICAgICAgIHRleHQ6IFwi56Gu5a6a5Yig6Zmk5q2k5p2h5Zue5aSN6LS0XCIsXG4gICAg\nICAgICAgICAgICAgc3R5bGU6IFwidGV4dC1hbGlnbjpjZW50ZXI7XCJcbiAgICAgICAgICAgICAg\nfSxcbiAgICAgICAgICAgICAgYnRuOiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwic3Bh\nY2UtYXJvdW5kXCIsXG4gICAgICAgICAgICAgICAgcmV2ZXJzZTogdHJ1ZSxcbiAgICAgICAgICAg\nICAgICBvazoge1xuICAgICAgICAgICAgICAgICAgZW5hYmxlOiB0cnVlLFxuICAgICAgICAgICAg\nICAgICAgdGV4dDogXCLnoa7orqRcIixcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwidGllYmEt\nY29uZmlybVwiLFxuICAgICAgICAgICAgICAgICAgYXN5bmMgY2FsbGJhY2soZXZlbnQpIHtcbiAg\nICAgICAgICAgICAgICAgICAgbGV0IGNvbW1lbnRfaWQgPSBkYXRhLnVzZXJQb3N0SWQ7XG4gICAg\nICAgICAgICAgICAgICAgIGxldCBkZWxldGVTdGF0dXMgPSBhd2FpdCBkZWxldGVJdGVtKGNvbW1l\nbnRfaWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVsZXRlU3RhdHVzKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgUW1zZy5zdWNjZXNzKFwi5Yig6Zmk5oiQ5YqfXCIsIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIHpJbmRleDogdXRpbHMuZ2V0TWF4WkluZGV4KDEwKVxuICAgICAgICAg\nICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGEuJGl0ZW0ucmVtb3Zl\nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY2xvc2UoKTtcbiAgICAgICAgICAgICAg\nICAgICAgICBpZiAodHlwZW9mIGRhdGEuc3VjY2Vzc0RlbGV0ZUNhbGxCYWNrID09PSBcImZ1bmN0\naW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc3VjY2Vzc0RlbGV0ZUNhbGxC\nYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBj\nYW5jZWw6IHtcbiAgICAgICAgICAgICAgICAgIGVuYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAg\nICAgIHRleHQ6IFwi5Y+W5raIXCIsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInRpZWJhLWNv\nbmZpcm1cIlxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2xvc2U6IHtcbiAg\nICAgICAgICAgICAgICAgIGVuYWJsZTogZmFsc2VcbiAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgIH0sXG4gICAgICAgICAgICAgIG1hc2s6IHtcbiAgICAgICAgICAgICAgICBlbmFibGU6\nIHRydWUsXG4gICAgICAgICAgICAgICAgY2xpY2tFdmVudDoge1xuICAgICAgICAgICAgICAgICAg\ndG9DbG9zZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAg\nICAgICAgICAgd2lkdGg6IFwiODB2d1wiLFxuICAgICAgICAgICAgICBoZWlnaHQ6IFwiMTgwcHhc\nIixcbiAgICAgICAgICAgICAgekluZGV4OiB1dGlscy5nZXRNYXhaSW5kZXgoMTAwKSxcbiAgICAg\nICAgICAgICAgc3R5bGU6IChcbiAgICAgICAgICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgICAg\nICAgICBgXG5cdFx0XHRcdFx0XHQucG9wc1t0eXBlLXZhbHVlPVwiY29uZmlybVwiXXtcblx0XHRc\ndFx0XHRcdFx0LS1jb250YWluZXItdGl0bGUtaGVpZ2h0OiAwO1xuXHRcdFx0XHRcdFx0XHQtLWNv\nbnRhaW5lci1ib3R0b20tYnRuLWhlaWdodDogNDBweDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0\nXHRcdC5wb3BzLWNvbmZpcm0tdGl0bGV7XG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmUgIWlt\ncG9ydGFudDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC5wb3BzLWNvbmZpcm0tY29udGVu\ndHtcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1jb250YWluZXItYm90\ndG9tLWJ0bi1oZWlnaHQpKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0XHRhbGlnbi1jb250ZW50\nOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQucG9wcy1jb25maXJtLWJ0bntc\nblx0XHRcdFx0XHRcdFx0cGFkZGluZzogNXB4IDEwcHggNXB4IDEwcHg7XG5cdFx0XHRcdFx0XHR9\nXG5cdFx0XHRcdFx0XHQucG9wcy1jb25maXJtLWJ0biBidXR0b257XG5cdFx0XHRcdFx0XHRcdGJv\ncmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6IHRyYW5z\ncGFyZW50O1xuXHRcdFx0XHRcdFx0XHRjb2xvcjogIzc1NTdmZjtcblx0XHRcdFx0XHRcdH1cblx0\nXHRcdFx0XHRcdGBcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAg\nfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgJGRlbGV0ZUJ0biA9PSBudWxsID8gdm9p\nZCAwIDogJGRlbGV0ZUJ0bi5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9t\ndXRpbHMub24oXG4gICAgICAgIGRvY3VtZW50LFxuICAgICAgICBcImNsaWNrXCIsXG4gICAgICAg\nIFwiLnBvc3QtaXRlbSAudXNlci1jb21tZW50LWhhbmRsZXJcIixcbiAgICAgICAgZnVuY3Rpb24o\nZXZlbnQpIHtcbiAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAg\nIGxldCAkY2xpY2sgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgbGV0ICRpdGVtID0gJGNsaWNr\nLmNsb3Nlc3QoXCIucG9zdC1pdGVtXCIpO1xuICAgICAgICAgIGxldCAkdGV4dENvbnRlbnQgPSAk\naXRlbS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgXCIudGV4dC1jb250ZW50XCJcbiAgICAg\nICAgICApO1xuICAgICAgICAgIGxldCBkYXRhID0gJGl0ZW1bXCJkYXRhLXdoaXRlc2V2XCJdO1xu\nICAgICAgICAgIGxvZy5pbmZvKFtcIuiOt+WPluacrOadoeWbnuWkjeeahOaVsOaNrlwiLCBkYXRh\nXSk7XG4gICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICBRbXNnLmVycm9yKFwi6I63\n5Y+W5pys5p2h5Zue5aSN55qE5pWw5o2u5aSx6LSlXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgdXNlcklkID0gZGF0YVtcInVzZXJJZFwiXTtcbiAg\nICAgICAgICBsZXQgdXNlciA9IGRhdGFbXCJ1c2VyU2hvd05hbWVcIl0gfHwgZGF0YVtcInVzZXJO\nYW1lXCJdO1xuICAgICAgICAgIGxldCB1c2VyUG9zdElkID0gZGF0YVtcInVzZXJQb3N0SWRcIl07\nXG4gICAgICAgICAgbGV0IGNvbnRlbnQgPSAkdGV4dENvbnRlbnQuaW5uZXJUZXh0O1xuICAgICAg\nICAgIGNsaWNrQ2FsbEJhY2soe1xuICAgICAgICAgICAgJGl0ZW0sXG4gICAgICAgICAgICBjb250\nZW50LFxuICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgdXNlcixcbiAgICAgICAgICAg\nIHVzZXJQb3N0SWQsXG4gICAgICAgICAgICBzdWNjZXNzRGVsZXRlQ2FsbEJhY2soKSB7XG4gICAg\nICAgICAgICAgIHZhciBfYTMsIF9iO1xuICAgICAgICAgICAgICBsZXQgJGFwcFZpZXcgPSBkb2N1\nbWVudC5xdWVyeVNlbGVjdG9yKFwiLmFwcC12aWV3XCIpO1xuICAgICAgICAgICAgICBsZXQgJGlu\ndGVyYWN0aW9uQmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICBc\nIi5tYWluLXRocmVhZC1jb250ZW50IC5pbnRlcmFjdGlvbi1iYXJcIlxuICAgICAgICAgICAgICAp\nO1xuICAgICAgICAgICAgICBpZiAoJGludGVyYWN0aW9uQmFyKSB7XG4gICAgICAgICAgICAgICAg\nbGV0IHZ1ZU9iaiA9IFZ1ZVV0aWxzLmdldFZ1ZSgkaW50ZXJhY3Rpb25CYXIpO1xuICAgICAgICAg\nICAgICAgIGlmICghdnVlT2JqKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoX2EzID0gdnVlT2JqID09IG51bGwgPyB2\nb2lkIDAgOiB2dWVPYmouaW50ZXJhY3Rpb25OdW0pID09IG51bGwgPyB2b2lkIDAgOiBfYTMucmVw\nbHkpIHtcbiAgICAgICAgICAgICAgICAgIHZ1ZU9iai5pbnRlcmFjdGlvbk51bS5yZXBseS0tO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmICgkYXBwVmlldykge1xu\nICAgICAgICAgICAgICAgIGxldCB2dWVPYmogPSBWdWVVdGlscy5nZXRWdWUoJGFwcFZpZXcpO1xu\nICAgICAgICAgICAgICAgIGlmICghdnVlT2JqKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm47\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgoX2IgPSB2dWVPYmogPT0g\nbnVsbCA\/IHZvaWQgMCA6IHZ1ZU9iai5pbnRlcmFjdGlvbk51bSkgPT0gbnVsbCA\/IHZvaWQgMCA6\nIF9iLnJlcGx5KSB7XG4gICAgICAgICAgICAgICAgICB2dWVPYmouaW50ZXJhY3Rpb25OdW0ucmVw\nbHktLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1c\nbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGRvbXV0aWxzLm9uKFxu\nICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgXCJjbGlja1wiLFxuICAgICAgICBcIiN3aGl0ZXNl\ndi1yZXBseS1kaWFsb2cgLnVzZXItY29tbWVudC1oYW5kbGVyXCIsXG4gICAgICAgIGZ1bmN0aW9u\nKGV2ZW50KSB7XG4gICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAg\nICBsZXQgJGNsaWNrID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgIGxldCAkaXRlbSA9ICRjbGlj\nay5jbG9zZXN0KFxuICAgICAgICAgICAgXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LW90\naGVyLWNvbnRlbnQtaXRlbVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICBsZXQgJHRleHRDb250\nZW50ID0gJGl0ZW0ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgIFwiLndoaXRlc2V2LXJlcGx5\nLWRpYWxvZy11c2VyLWNvbW1lbnRcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgbGV0IGRhdGEg\nPSAkaXRlbVtcImRhdGEtbHpsLWl0ZW1cIl07XG4gICAgICAgICAgbG9nLmluZm8oW1wi6I635Y+W\n5pys5p2h5qW85Lit5qW85Zue5aSN55qE5pWw5o2uXCIsIGRhdGFdKTtcbiAgICAgICAgICBpZiAo\nIWRhdGEpIHtcbiAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bmnKzmnaHlm57lpI3nmoTm\nlbDmja7lpLHotKVcIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAg\nICAgIGxldCB1c2VySWQgPSBkYXRhW1widXNlckluZm9cIl1bXCJ1c2VyX2lkXCJdO1xuICAgICAg\nICAgIGxldCB1c2VyID0gZGF0YVtcInVzZXJJbmZvXCJdW1widXNlcl9uYW1lXCJdIHx8IGRhdGFb\nXCJ1c2VySW5mb1wiXVtcInVzZXJfbmlja25hbWVcIl0gfHwgZGF0YVtcInVzZXJJbmZvXCJdW1wi\nbmlja25hbWVcIl07XG4gICAgICAgICAgbGV0IHVzZXJQb3N0SWQgPSBkYXRhW1wiZGF0YVwiXVtc\nImNvbW1lbnRfaWRcIl07XG4gICAgICAgICAgbGV0IGNvbnRlbnQgPSAkdGV4dENvbnRlbnQuaW5u\nZXJUZXh0O1xuICAgICAgICAgIGNsaWNrQ2FsbEJhY2soe1xuICAgICAgICAgICAgJGl0ZW0sXG4g\nICAgICAgICAgICBjb250ZW50LFxuICAgICAgICAgICAgdXNlcklkLFxuICAgICAgICAgICAgdXNl\ncixcbiAgICAgICAgICAgIHVzZXJQb3N0SWQsXG4gICAgICAgICAgICBzdWNjZXNzRGVsZXRlQ2Fs\nbEJhY2soKSB7XG4gICAgICAgICAgICAgIGxldCAkY29tbWVudE51bSA9ICRpdGVtLnF1ZXJ5U2Vs\nZWN0b3IoXG4gICAgICAgICAgICAgICAgXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LWNv\nbW1lbnQtbnVtXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCEkY29tbWVu\ndE51bSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICBsZXQgY29tbWVudE51bSA9IHBhcnNlSW50KCRjb21tZW50TnVtLmlubmVyVGV4dCk7\nXG4gICAgICAgICAgICAgIGlmICghaXNOYU4oY29tbWVudE51bSkpIHtcbiAgICAgICAgICAgICAg\nICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgJGNvbW1lbnROdW0uaW5u\nZXJUZXh0ID0gKGNvbW1lbnROdW0gLSAxKS50b1N0cmluZygpICsgXCLmnaHlm57lpI1cIjtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxu\nICAgIFwvKiog55So5oi36LS05ZCn562J57qnQ1NTICpcL1xuICAgIGdldExldmVsQ1NTKCkge1xu\nICAgICAgbGV0IGNvbG9yQ29udmVyc2lvbiA9IG5ldyB1dGlscy5Db2xvckNvbnZlcnNpb24oKTtc\nbiAgICAgIGxldCBjb2xvckxpZ2h0TGV2ZWwgPSAwLjc7XG4gICAgICByZXR1cm4gKFxuICAgICAg\nICBcLypjc3MqXC9cbiAgICAgICAgYFxuICAgICAgICAgIC5mb3J1bS1sZXZlbC1jb250YWluZXJ7\nXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNl\nbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjAzcmVtO1xuICAgICAgICAgIH1cbiAgICAg\nICAgICAuZm9ydW0tbGV2ZWxbZGF0YS1sZXZlbF17XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHgg\nMC4wM3JlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgIGZv\nbnQtc2l6ZTogMC4xcmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuMTZyZW07XG4gICAg\nICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4g\nICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAu\nZm9ydW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjBcIl0sXG4gICAgICAgICAgLmZvcnVtLWxldmVsW2Rh\ndGEtbGV2ZWw9XCIxXCJdLFxuICAgICAgICAgIC5mb3J1bS1sZXZlbFtkYXRhLWxldmVsPVwiMlwi\nXSxcbiAgICAgICAgICAuZm9ydW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjNcIl17XG4gICAgICAgICAg\nICBiYWNrZ3JvdW5kOiAke2NvbG9yQ29udmVyc2lvbi5nZXRMaWdodENvbG9yKFxuICAgICAgICBc\nIiM1ZGM3YTBcIixcbiAgICAgICAgY29sb3JMaWdodExldmVsXG4gICAgICApfTtcbiAgICAgICAg\nICAgIGNvbG9yOiAjNWRjN2EwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuZm9ydW0tbGV2ZWxb\nZGF0YS1sZXZlbD1cIjRcIl0sXG4gICAgICAgICAgLmZvcnVtLWxldmVsW2RhdGEtbGV2ZWw9XCI1\nXCJdLFxuICAgICAgICAgIC5mb3J1bS1sZXZlbFtkYXRhLWxldmVsPVwiNlwiXSxcbiAgICAgICAg\nICAuZm9ydW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjdcIl0sXG4gICAgICAgICAgLmZvcnVtLWxldmVs\nW2RhdGEtbGV2ZWw9XCI4XCJdLFxuICAgICAgICAgIC5mb3J1bS1sZXZlbFtkYXRhLWxldmVsPVwi\nOVwiXXtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR7Y29sb3JDb252ZXJzaW9uLmdldExpZ2h0\nQ29sb3IoXG4gICAgICAgIFwiIzZCQTdGRlwiLFxuICAgICAgICBjb2xvckxpZ2h0TGV2ZWxcbiAg\nICAgICl9O1xuICAgICAgICAgICAgY29sb3I6ICM2QkE3RkY7XG4gICAgICAgICAgfVxuICAgICAg\nICAgIC5mb3J1bS1sZXZlbFtkYXRhLWxldmVsPVwiMTBcIl0sXG4gICAgICAgICAgLmZvcnVtLWxl\ndmVsW2RhdGEtbGV2ZWw9XCIxMVwiXSxcbiAgICAgICAgICAuZm9ydW0tbGV2ZWxbZGF0YS1sZXZl\nbD1cIjEyXCJdLFxuICAgICAgICAgIC5mb3J1bS1sZXZlbFtkYXRhLWxldmVsPVwiMTNcIl0sXG4g\nICAgICAgICAgLmZvcnVtLWxldmVsW2RhdGEtbGV2ZWw9XCIxNFwiXSxcbiAgICAgICAgICAuZm9y\ndW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjE1XCJde1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHtj\nb2xvckNvbnZlcnNpb24uZ2V0TGlnaHRDb2xvcihcbiAgICAgICAgXCIjRjlCMzQxXCIsXG4gICAg\nICAgIGNvbG9yTGlnaHRMZXZlbFxuICAgICAgKX07XG4gICAgICAgICAgICBjb2xvcjogI0Y5QjM0\nMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmZvcnVtLWxldmVsW2RhdGEtbGV2ZWw9XCIxNlwi\nXSxcbiAgICAgICAgICAuZm9ydW0tbGV2ZWxbZGF0YS1sZXZlbD1cIjE3XCJdLFxuICAgICAgICAg\nIC5mb3J1bS1sZXZlbFtkYXRhLWxldmVsPVwiMThcIl17XG4gICAgICAgICAgICBiYWNrZ3JvdW5k\nOiAke2NvbG9yQ29udmVyc2lvbi5nZXRMaWdodENvbG9yKFxuICAgICAgICBcIiNGQkE3MUFcIixc\nbiAgICAgICAgY29sb3JMaWdodExldmVsXG4gICAgICApfTtcbiAgICAgICAgICAgIGNvbG9yOiAj\nRkJBNzFBO1xuICAgICAgICAgIH1cbiAgICAgICAgICBgXG4gICAgICApO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOa7muWKqOS6i+S7tlxuICAgICAqIEBwYXJhbSBpc1ByZXZcbiAgICAgKiBA\ncGFyYW0gcGFnZURPTVxuICAgICAqIEBwYXJhbSBwYWdlQ29tbWVudExpc3RcbiAgICAgKiBAcmV0\ndXJuc1xuICAgICAqXC9cbiAgICBzY3JvbGxFdmVudChpc05leHQsIHBhZ2VET00sIHBhZ2VDb21t\nZW50TGlzdCkge1xuICAgICAgbG9nLmluZm8oXCLmiJDlip\/ojrflj5bor4TorrrlkozmpbzkuK3m\npbzor4TorrpcIik7XG4gICAgICBsZXQgY29tbWVudHMgPSBBcnJheS5mcm9tKFxuICAgICAgICBw\nYWdlRE9NLnF1ZXJ5U2VsZWN0b3JBbGwoXCIubF9wb3N0LmxfcG9zdF9icmlnaHRcIilcbiAgICAg\nICk7XG4gICAgICBpZiAoVGllYmFDb21tZW50LnBhZ2UgPT0gMSkge1xuICAgICAgICBjb21tZW50\ncy5zcGxpY2UoMCwgMSk7XG4gICAgICB9XG4gICAgICBpZiAoaXNOZXh0KSA7XG4gICAgICBlbHNl\nIHtcbiAgICAgICAgY29tbWVudHMucmV2ZXJzZSgpO1xuICAgICAgfVxuICAgICAgY29tbWVudHMu\nZm9yRWFjaCgoZWxlKSA9PiB7XG4gICAgICAgIFRpZWJhQ29tbWVudC5pbnNlcnROZXdDb21tZW50\nSW5uZXJFbGVtZW50KFxuICAgICAgICAgIFRpZWJhQ29tbWVudC5nZXROZXdDb21tZW50SW5uZXJF\nbGVtZW50KGVsZSwgcGFnZUNvbW1lbnRMaXN0KVxuICAgICAgICApO1xuICAgICAgICBUaWViYUNv\nbW1lbnQuZmxvb3JfbnVtKys7XG4gICAgICB9KTtcbiAgICAgIGxldCAkb25seUx6ID0gZG9jdW1l\nbnQucXVlcnlTZWxlY3RvcihcIi53aGl0ZS1vbmx5LWx6XCIpO1xuICAgICAgaWYgKCRvbmx5THog\nJiYgJG9ubHlMei5jbGFzc0xpc3QuY29udGFpbnMoXCJ3aGl0ZS1vbmx5LWx6LXF4XCIpKSB7XG4g\nICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIucG9zdC1pdGVtXCIpLmZvckVhY2go\nKCRwb3N0SXRlbSkgPT4ge1xuICAgICAgICAgIGxldCBsYW5kbG9yZCA9ICRwb3N0SXRlbS5nZXRB\ndHRyaWJ1dGUoXCJsYW5kbG9yZFwiKTtcbiAgICAgICAgICBpZiAobGFuZGxvcmQgPT0gXCIwXCIp\nIHtcbiAgICAgICAgICAgICRwb3N0SXRlbS5jbGFzc0xpc3QuYWRkKFwid2hpdGUtb25seS1sei1u\nb25lXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBsb2FkaW5n\nVmlldy5oaWRlKCk7XG4gICAgICBpZiAoaXNOZXh0ICYmIFRpZWJhQ29tbWVudC5wYWdlID49IFRp\nZWJhQ29tbWVudC5tYXhQYWdlIHx8ICFpc05leHQgJiYgVGllYmFDb21tZW50LnBhZ2UgPD0gMSkg\ne1xuICAgICAgICBsb2cuaW5mbyhcIuW3suWKoOi9veaJgOacieeahOivhOiuulwiKTtcbiAgICAg\nICAgbG9hZGluZ1ZpZXcuc2V0VGV4dChcIuW3suWKoOi9veaJgOacieeahOivhOiuulwiKTtcbiAg\nICAgICAgbG9hZGluZ1ZpZXcuaGlkZSgpO1xuICAgICAgICBUaWViYUNvbW1lbnQucmVtb3ZlU2Ny\nb2xsTGlzdGVuZXIoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGlzTmV4\ndCkge1xuICAgICAgICBUaWViYUNvbW1lbnQucGFnZSsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAg\nICAgVGllYmFDb21tZW50LnBhZ2UtLTtcbiAgICAgIH1cbiAgICAgIFRpZWJhQ29tbWVudC50cmln\nZ2VyU2Nyb2xsRXZlbnQoKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDkuLvliqjop6blj5Hm\nu5rliqjkuovku7ZcbiAgICAgKlwvXG4gICAgdHJpZ2dlclNjcm9sbEV2ZW50KCkge1xuICAgICAg\nc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2\nZW50KFwic2Nyb2xsXCIpKTtcbiAgICAgIH0sIDQwMCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICogc2Nyb2xs5LqL5Lu26Kem5Y+RIOiHquWKqOWKoOi9veS4i+S4gOmhteeahOivhOiuulxuICAg\nICAqXC9cbiAgICBuZXh0UGFnZVNjcm9sbEV2ZW50OiBhc3luYyAoZXZlbnQpID0+IHtcbiAgICAg\nIGlmIChldmVudC5qc1RyaWdnZXIpIDtcbiAgICAgIGVsc2UgaWYgKCF1dGlscy5pc05lYXJCb3R0\nb20oVGllYmFDb21tZW50LmlzTmVhckJvdHRvbVZhbHVlKSkge1xuICAgICAgICByZXR1cm47XG4g\nICAgICB9IGVsc2UgaWYgKFRpZWJhU2VhcmNoLmlzU2hvd1NlYXJjaENvbnRhaW5lcigpKSB7XG4g\nICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxvYWRpbmdWaWV3LnNldFRleHQoXCJMb2Fk\naW5nLi4uXCIsIHRydWUpO1xuICAgICAgbG9hZGluZ1ZpZXcuc2hvdygpO1xuICAgICAgbGV0IHRp\nbWVTdGFtcCA9IERhdGUubm93KCk7XG4gICAgICBsZXQgbmV4dFBhZ2VVcmwgPSBUaWViYVVybEFw\naS5nZXRQb3N0KFxuICAgICAgICBgJHtUaWViYUNvbW1lbnQucGFyYW1fdGlkfT9wbj0ke1RpZWJh\nQ29tbWVudC5wYWdlfSR7VGllYmFDb21tZW50LmV4dHJhU2VhcmNoU2lnblBhcmFtc31gXG4gICAg\nICApO1xuICAgICAgbGV0IG5leHRQYWdlQWxsQ29tbWVudFVybCA9IFRpZWJhVXJsQXBpLmdldFBv\nc3QoXG4gICAgICAgIGB0b3RhbENvbW1lbnQ\/dD0ke3RpbWVTdGFtcH0mdGlkPSR7VGllYmFDb21t\nZW50LnBhcmFtX3RpZH0mZmlkPSR7VGllYmFDb21tZW50LnBhcmFtX2ZvcnVtX2lkfSZwbj0ke1Rp\nZWJhQ29tbWVudC5wYWdlfSZzZWVfbHo9MCR7VGllYmFDb21tZW50LmV4dHJhU2VhcmNoU2lnblBh\ncmFtc31gXG4gICAgICApO1xuICAgICAgbGV0IHBhZ2VDb21tZW50SW5mbyA9IGF3YWl0IFRpZWJh\nQ29tbWVudC5nZXRQYWdlQ29tbWVudChuZXh0UGFnZVVybCk7XG4gICAgICBpZiAoIXBhZ2VDb21t\nZW50SW5mby5zdWNjZXNzKSB7XG4gICAgICAgIGxvYWRpbmdWaWV3LnNldEhUTUwoXG4gICAgICAg\nICAgYDxhIGhyZWY9XCIke3BhZ2VDb21tZW50SW5mby5kYXRhfVwiIHRhcmdldD1cIl9ibGFua1wi\nPuinpuWPkeeZvuW6puWuieWFqOmqjOivge+8jOeCueWHu+WJjeW+gOmqjOivgTxcL2E+YFxuICAg\nICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgcGFnZURPTSA9IHBh\nZ2VDb21tZW50SW5mby5kYXRhO1xuICAgICAgbGV0IHBhZ2VDb21tZW50TGlzdCA9IGF3YWl0IFRp\nZWJhQ29tbWVudC5nZXRQYWdlQ29tbWVudExpc3QoXG4gICAgICAgIG5leHRQYWdlQWxsQ29tbWVu\ndFVybFxuICAgICAgKTtcbiAgICAgIGlmIChwYWdlQ29tbWVudExpc3QgPT0gbnVsbCB8fCBwYWdl\nQ29tbWVudExpc3QuY29tbWVudExpc3QgJiYgIXBhZ2VDb21tZW50TGlzdC5jb21tZW50TGlzdCkg\ne1xuICAgICAgICBsb2FkaW5nVmlldy5zZXRUZXh0KFwi6I635Y+W6K+E6K665aSx6LSlXCIpO1xu\nICAgICAgICBsb2cuZXJyb3IoXCLojrflj5bor4TorrrlpLHotKVcIik7XG4gICAgICAgIFRpZWJh\nQ29tbWVudC5yZW1vdmVTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9\nXG4gICAgICBUaWViYUNvbW1lbnQuc2Nyb2xsRXZlbnQodHJ1ZSwgcGFnZURPTSwgcGFnZUNvbW1l\nbnRMaXN0KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiBzY3JvbGzkuovku7bop6blj5Eg6Ieq\n5Yqo5Yqg6L295LiK5LiA6aG155qE6K+E6K66XG4gICAgICpcL1xuICAgIHByZXZQYWdlU2Nyb2xs\nRXZlbnQ6IGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmpzVHJpZ2dlcikgO1xu\nICAgICAgZWxzZSBpZiAoIXV0aWxzLmlzTmVhckJvdHRvbShUaWViYUNvbW1lbnQuaXNOZWFyQm90\ndG9tVmFsdWUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoVGllYmFTZWFy\nY2guaXNTaG93U2VhcmNoQ29udGFpbmVyKCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxu\nICAgICAgbG9hZGluZ1ZpZXcuc2V0VGV4dChcIkxvYWRpbmcuLi5cIiwgdHJ1ZSk7XG4gICAgICBs\nb2FkaW5nVmlldy5zaG93KCk7XG4gICAgICBsZXQgdGltZVN0YW1wID0gRGF0ZS5ub3coKTtcbiAg\nICAgIGxldCBwYWdlVXJsID0gVGllYmFVcmxBcGkuZ2V0UG9zdChcbiAgICAgICAgYCR7VGllYmFD\nb21tZW50LnBhcmFtX3RpZH0\/cG49JHtUaWViYUNvbW1lbnQucGFnZX0ke1RpZWJhQ29tbWVudC5l\neHRyYVNlYXJjaFNpZ25QYXJhbXN9YFxuICAgICAgKTtcbiAgICAgIGxldCBwYWdlQWxsQ29tbWVu\ndFVybCA9IFRpZWJhVXJsQXBpLmdldFBvc3QoXG4gICAgICAgIGB0b3RhbENvbW1lbnQ\/dD0ke3Rp\nbWVTdGFtcH0mdGlkPSR7VGllYmFDb21tZW50LnBhcmFtX3RpZH0mZmlkPSR7VGllYmFDb21tZW50\nLnBhcmFtX2ZvcnVtX2lkfSZwbj0ke1RpZWJhQ29tbWVudC5wYWdlfSZzZWVfbHo9MCR7VGllYmFD\nb21tZW50LmV4dHJhU2VhcmNoU2lnblBhcmFtc31gXG4gICAgICApO1xuICAgICAgbGV0IHBhZ2VD\nb21tZW50SW5mbyA9IGF3YWl0IFRpZWJhQ29tbWVudC5nZXRQYWdlQ29tbWVudChwYWdlVXJsKTtc\nbiAgICAgIGlmICghcGFnZUNvbW1lbnRJbmZvLnN1Y2Nlc3MpIHtcbiAgICAgICAgbG9hZGluZ1Zp\nZXcuc2V0SFRNTChcbiAgICAgICAgICBgPGEgaHJlZj1cIiR7cGFnZUNvbW1lbnRJbmZvLmRhdGF9\nXCIgdGFyZ2V0PVwiX2JsYW5rXCI+6Kem5Y+R55m+5bqm5a6J5YWo6aqM6K+B77yM54K55Ye75YmN\n5b6A6aqM6K+BPFwvYT5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAg\nICAgIGxldCBwYWdlRE9NID0gcGFnZUNvbW1lbnRJbmZvLmRhdGE7XG4gICAgICBsZXQgcGFnZUNv\nbW1lbnRMaXN0ID0gYXdhaXQgVGllYmFDb21tZW50LmdldFBhZ2VDb21tZW50TGlzdChcbiAgICAg\nICAgcGFnZUFsbENvbW1lbnRVcmxcbiAgICAgICk7XG4gICAgICBpZiAocGFnZUNvbW1lbnRMaXN0\nID09IG51bGwgfHwgcGFnZUNvbW1lbnRMaXN0LmNvbW1lbnRMaXN0ICYmICFwYWdlQ29tbWVudExp\nc3QuY29tbWVudExpc3QpIHtcbiAgICAgICAgbG9hZGluZ1ZpZXcuc2V0VGV4dChcIuivhOiuuuaV\nsOaNruiOt+WPluWksei0pVwiKTtcbiAgICAgICAgbG9nLmVycm9yKFwi6K+E6K665pWw5o2u6I63\n5Y+W5aSx6LSlXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBUaWViYUNvbW1l\nbnQuc2Nyb2xsRXZlbnQoZmFsc2UsIHBhZ2VET00sIHBhZ2VDb21tZW50TGlzdCk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog6K6+572u6Ieq5Yqo5Yqg6L295LiL5LiA6aG155qEc2Nyb2zkuovk\nu7ZcbiAgICAgKlwvXG4gICAgc2V0TmV4dFBhZ2VTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICAgIFRp\nZWJhQ29tbWVudC5mdW5jTG9jayA9IG5ldyB1dGlscy5Mb2NrRnVuY3Rpb24oXG4gICAgICAgIFRp\nZWJhQ29tbWVudC5uZXh0UGFnZVNjcm9sbEV2ZW50LFxuICAgICAgICB0aGlzXG4gICAgICApO1xu\nICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBUaWViYUNvbW1lbnQu\nZnVuY0xvY2sucnVuKTtcbiAgICAgIHV0aWxzLmRpc3BhdGNoRXZlbnQoZG9jdW1lbnQsIFwic2Ny\nb2xsXCIsIHsganNUcmlnZ2VyOiB0cnVlIH0pO1xuICAgICAgbG9nLnN1Y2Nlc3MoXCJzY3JvbGzn\nm5HlkKzkuovku7bjgJDkuIvkuIDpobXjgJFcIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n6K6+572u6Ieq5Yqo5Yqg6L295LiK5LiA6aG155qEc2Nyb2zkuovku7ZcbiAgICAgKlwvXG4gICAg\nc2V0UHJldlBhZ2VTY3JvbGxMaXN0ZW5lcigpIHtcbiAgICAgIFRpZWJhQ29tbWVudC5mdW5jTG9j\nayA9IG5ldyB1dGlscy5Mb2NrRnVuY3Rpb24oXG4gICAgICAgIFRpZWJhQ29tbWVudC5wcmV2UGFn\nZVNjcm9sbEV2ZW50LFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgICAgZG9jdW1lbnQuYWRk\nRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBUaWViYUNvbW1lbnQuZnVuY0xvY2sucnVuKTtcbiAg\nICAgIHV0aWxzLmRpc3BhdGNoRXZlbnQoZG9jdW1lbnQsIFwic2Nyb2xsXCIsIHsganNUcmlnZ2Vy\nOiB0cnVlIH0pO1xuICAgICAgbG9nLnN1Y2Nlc3MoXCJzY3JvbGznm5HlkKzkuovku7bjgJDkuIrk\nuIDpobXjgJFcIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog56e76Zmkc2NvbGzkuovku7Zc\nbiAgICAgKlwvXG4gICAgcmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKSB7XG4gICAgICBpZiAoVGllYmFD\nb21tZW50LmZ1bmNMb2NrKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIo\nXCJzY3JvbGxcIiwgVGllYmFDb21tZW50LmZ1bmNMb2NrLnJ1bik7XG4gICAgICAgIGxvZy5zdWNj\nZXNzKFwi5Y+W5raI57uR5a6ac2Nyb2xsXCIsIFwiI2Y0MDBmZlwiKTtcbiAgICAgIH1cbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDojrflj5bml7bpl7Tlt65cbiAgICAgKiBAcGFyYW0gdGltZVN0\nclxuICAgICAqXC9cbiAgICBnZXREaWZmZXJUaW1lKHRpbWVTdHIpIHtcbiAgICAgIGxldCBjdXJy\nZW50VGltZSA9IFwvKiBAX19QVVJFX18gKlwvIG5ldyBEYXRlKCk7XG4gICAgICBsZXQgdGltZURp\nZmZlcmVuY2UgPSBjdXJyZW50VGltZS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSh0aW1lU3RyLnJlcGxh\nY2UoXC8tXC9nLCBcIlwvXCIpKS5nZXRUaW1lKCk7XG4gICAgICBsZXQgZGF5cyA9IE1hdGguZmxv\nb3IodGltZURpZmZlcmVuY2UgXC8gKDI0ICogMzYwMCAqIDFlMykpO1xuICAgICAgaWYgKGRheXMg\nPiAwKSB7XG4gICAgICAgIHRpbWVTdHIgPSBkYXlzICsgXCLlpKnliY1cIjtcbiAgICAgIH0gZWxz\nZSB7XG4gICAgICAgIGxldCBsZWF2ZTEgPSB0aW1lRGlmZmVyZW5jZSAlICgyNCAqIDM2MDAgKiAx\nZTMpO1xuICAgICAgICBsZXQgaG91cnMgPSBNYXRoLmZsb29yKGxlYXZlMSBcLyAoMzYwMCAqIDFl\nMykpO1xuICAgICAgICBpZiAoaG91cnMgPiAwKSB7XG4gICAgICAgICAgdGltZVN0ciA9IGhvdXJz\nICsgXCLlsI\/ml7bliY1cIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgbGVhdmUy\nID0gbGVhdmUxICUgKDM2MDAgKiAxZTMpO1xuICAgICAgICAgIGxldCBtaW51dGVzID0gTWF0aC5m\nbG9vcihsZWF2ZTIgXC8gKDYwICogMWUzKSk7XG4gICAgICAgICAgaWYgKG1pbnV0ZXMgPiAwKSB7\nXG4gICAgICAgICAgICB0aW1lU3RyID0gbWludXRlcyArIFwi5YiG6ZKf5YmNXCI7XG4gICAgICAg\nICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBsZWF2ZTMgPSBsZWF2ZTIgJSAoNjAgKiAxZTMp\nO1xuICAgICAgICAgICAgbGV0IHNlY29uZHMgPSBNYXRoLnJvdW5kKGxlYXZlMyBcLyAxZTMpO1xu\nICAgICAgICAgICAgdGltZVN0ciA9IHNlY29uZHMgKyBcIuenkuWJjVwiO1xuICAgICAgICAgIH1c\nbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRpbWVTdHI7XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5qC55o2uZG9t6I635Y+W6ZyA6KaB5o+S5YWl55qE6K+E6K6655qEaHRtbFxu\nICAgICAqIEBwYXJhbSBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhZ2VDb21tZW50TGlzdFxuICAg\nICAqXC9cbiAgICBnZXROZXdDb21tZW50SW5uZXJFbGVtZW50OiAoZWxlbWVudCwgcGFnZUNvbW1l\nbnRMaXN0KSA9PiB7XG4gICAgICB2YXIgX2EzLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nO1xuICAg\nICAgZnVuY3Rpb24gcGFyc2VDb21tZW50Qm90dG9tSW5mbyhlbGUpIHtcbiAgICAgICAgdmFyIF9h\nNDtcbiAgICAgICAgbGV0ICR0YWlsV3JhcCA9IGVsZS5xdWVyeVNlbGVjdG9yKFwiLnBvc3QtdGFp\nbC13cmFwXCIpO1xuICAgICAgICBsZXQgdXNlcklwUG9zaXRpb24yID0gXCJcIjtcbiAgICAgICAg\nbGV0IHVzZXJGbG9vcjIgPSBcIlwiO1xuICAgICAgICBsZXQgdXNlckNvbW1lbnRUaW1lMiA9IFwi\nMTk3MC0xLTEgMDA6MDA6MDBcIjtcbiAgICAgICAgaWYgKCR0YWlsV3JhcCkge1xuICAgICAgICAg\nIGxldCBjaGlsZHJlbkVsZW1lbnQgPSAkdGFpbFdyYXAucXVlcnlTZWxlY3RvckFsbChcInNwYW4u\ndGFpbC1pbmZvXCIpO1xuICAgICAgICAgIGxldCBjaGlsZFNwYW5FbGVtZW50TGlzdCA9IEFycmF5\nLmZyb20oXG4gICAgICAgICAgICAkdGFpbFdyYXAucXVlcnlTZWxlY3RvckFsbChcInNwYW5cIilc\nbiAgICAgICAgICApO1xuICAgICAgICAgIGZvciAoY29uc3QgY2hpbGRTcGFuRWxlbWVudCBvZiBj\naGlsZFNwYW5FbGVtZW50TGlzdCkge1xuICAgICAgICAgICAgaWYgKGNoaWxkU3BhbkVsZW1lbnQu\naGFzQXR0cmlidXRlKFwiY2xhc3NcIikpIHtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAg\nICAgICAgICB9XG4gICAgICAgICAgICBpZiAoISgoX2E0ID0gY2hpbGRTcGFuRWxlbWVudCA9PSBu\ndWxsID8gdm9pZCAwIDogY2hpbGRTcGFuRWxlbWVudC50ZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZv\naWQgMCA6IF9hNC5tYXRjaChcIuadpeiHqnznpoHoqIBcIikpKSB7XG4gICAgICAgICAgICAgIHVz\nZXJJcFBvc2l0aW9uMiA9IGNoaWxkU3BhbkVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgICAgICAg\nICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY2hp\nbGRyZW5FbGVtZW50Lmxlbmd0aCA9PSAzIHx8IGNoaWxkcmVuRWxlbWVudC5sZW5ndGggPT0gMikg\ne1xuICAgICAgICAgICAgdXNlckZsb29yMiA9IGNoaWxkcmVuRWxlbWVudFtjaGlsZHJlbkVsZW1l\nbnQubGVuZ3RoIC0gMl0udGV4dENvbnRlbnQ7XG4gICAgICAgICAgICB1c2VyQ29tbWVudFRpbWUy\nID0gY2hpbGRyZW5FbGVtZW50W2NoaWxkcmVuRWxlbWVudC5sZW5ndGggLSAxXS50ZXh0Q29udGVu\ndDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nLmVycm9yKFwi6I635Y+WUEPn\nq6\/nmoTmlbDmja7mpbzlsYLlkozml7bpl7Tkv6Hmga\/lpLHotKXwn5GHXCIpO1xuICAgICAgICAg\nICAgbG9nLmVycm9yKGNoaWxkcmVuRWxlbWVudCk7XG4gICAgICAgICAgICB1c2VyRmxvb3IyID0g\nXCJcIjtcbiAgICAgICAgICAgIHVzZXJDb21tZW50VGltZTIgPSBcIlwiO1xuICAgICAgICAgIH1c\nbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAkdGFpbFdyYXAgPSBlbGVtZW50LnF1ZXJ5U2Vs\nZWN0b3IoXCIuYWNvcmVfcmVwbHlfdGFpbFwiKTtcbiAgICAgICAgICB1c2VySXBQb3NpdGlvbjIg\nPSBkYXRhX2ZpZWxkW1wiY29udGVudFwiXVtcImlwX2FkZHJlc3NcIl07XG4gICAgICAgICAgdXNl\nckZsb29yMiA9IGRhdGFfZmllbGRbXCJjb250ZW50XCJdW1wicG9zdF9ub1wiXTtcbiAgICAgICAg\nICB1c2VyQ29tbWVudFRpbWUyID0gZGF0YV9maWVsZFtcImNvbnRlbnRcIl1bXCJkYXRlXCJdO1xu\nICAgICAgICB9XG4gICAgICAgIHVzZXJDb21tZW50VGltZTIgPSBUaWViYUNvbW1lbnQuZ2V0RGlm\nZmVyVGltZSh1c2VyQ29tbWVudFRpbWUyKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1\nc2VyRmxvb3I6IHBhcnNlSW50KHVzZXJGbG9vcjIpLFxuICAgICAgICAgIHVzZXJJcFBvc2l0aW9u\nOiB1c2VySXBQb3NpdGlvbjIsXG4gICAgICAgICAgdXNlckNvbW1lbnRUaW1lOiB1c2VyQ29tbWVu\ndFRpbWUyXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBsZXQgZGF0YV9maWVsZCA9IHV0aWxz\nLnRvSlNPTihlbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGEtZmllbGRcIikpO1xuICAgICAgaWYg\nKE9iamVjdC5rZXlzKGRhdGFfZmllbGQpLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIHJldHVybjtc\nbiAgICAgIH1cbiAgICAgIGxldCB1c2VyX2lkID0gZGF0YV9maWVsZFtcImF1dGhvclwiXVtcInVz\nZXJfaWRcIl07XG4gICAgICBsZXQgYnVpbGRlcklkID0gZGF0YV9maWVsZFtcImNvbnRlbnRcIl1b\nXCJidWlsZGVySWRcIl07XG4gICAgICBsZXQgdXNlckNvbW1lbnQgPSBkYXRhX2ZpZWxkW1wiY29u\ndGVudFwiXVtcImNvbnRlbnRcIl07XG4gICAgICBpZiAoIXVzZXJDb21tZW50KSB7XG4gICAgICAg\nIHVzZXJDb21tZW50ID0gKChfYTMgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuZF9wb3N0X2Nv\nbnRlbnRcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuaW5uZXJIVE1MKSB8fCBcIlwiO1xuICAg\nICAgfVxuICAgICAgbGV0IHVzZXJIb21lVXJsID0gKF9iID0gZWxlbWVudC5xdWVyeVNlbGVjdG9y\nKFwiLnBfYXV0aG9yX2ZhY2VcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYi5nZXRBdHRyaWJ1dGUo\nXCJocmVmXCIpO1xuICAgICAgbGV0IHVzZXJOYW1lID0gZGF0YV9maWVsZFtcImF1dGhvclwiXVtc\nInVzZXJfbmFtZVwiXTtcbiAgICAgIGxldCAkdXNlclNob3dOYW1lID0gZWxlbWVudC5xdWVyeVNl\nbGVjdG9yKFwiLnBfYXV0aG9yX25hbWVcIik7XG4gICAgICBsZXQgdXNlclNob3dOYW1lID0gKCR1\nc2VyU2hvd05hbWUgPT0gbnVsbCA\/IHZvaWQgMCA6ICR1c2VyU2hvd05hbWUudGV4dENvbnRlbnQp\nIHx8ICgoX2MgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIucF9hdXRob3JfZmFjZSA+IGltZ1wi\nKSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLmdldEF0dHJpYnV0ZShcInVzZXJuYW1lXCIpKSB8fCB1\nc2VyTmFtZTtcbiAgICAgIGxldCB1c2VyQXZhdGFyID0gKChfZCA9IGVsZW1lbnQucXVlcnlTZWxl\nY3RvcihcIi5wX2F1dGhvcl9mYWNlID4gaW1nXCIpKSA9PSBudWxsID8gdm9pZCAwIDogX2QuZ2V0\nQXR0cmlidXRlKFwiZGF0YS10Yi1sYXp5bG9hZFwiKSkgfHwgKChfZSA9IGVsZW1lbnQucXVlcnlT\nZWxlY3RvcihcIi5wX2F1dGhvcl9mYWNlID4gaW1nXCIpKSA9PSBudWxsID8gdm9pZCAwIDogX2Uu\nc3JjKSB8fCBcIlwiO1xuICAgICAgbGV0IGlzX2xhbmRsb3JkID0gMDtcbiAgICAgIGlmICh1c2Vy\nX2lkID09IGJ1aWxkZXJJZCkge1xuICAgICAgICBpc19sYW5kbG9yZCA9IDE7XG4gICAgICB9XG4g\nICAgICBsZXQgdXNlckZvcnVtTGV2ZWwgPSAtMTtcbiAgICAgIGxldCB1c2VyRm9ydW1MZXZlbE5h\nbWUgPSB2b2lkIDA7XG4gICAgICBpZiAoZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnVzZXJfYmFk\nZ2UgLmRfYmFkZ2VfbHZcIikpIHtcbiAgICAgICAgdXNlckZvcnVtTGV2ZWwgPSBwYXJzZUludChc\nbiAgICAgICAgICAoX2YgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCIudXNlcl9iYWRnZSAuZF9i\nYWRnZV9sdlwiKSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9mLnRleHRDb250ZW50XG4gICAgICAgICk7\nXG4gICAgICB9XG4gICAgICBpZiAoZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLnVzZXJfYmFkZ2Ug\nLmRfYmFkZ2VfdGl0bGVcIikpIHtcbiAgICAgICAgdXNlckZvcnVtTGV2ZWxOYW1lID0gKF9nID0g\nZWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIFwiLnVzZXJfYmFkZ2UgLmRfYmFkZ2Vf\ndGl0bGVcIlxuICAgICAgICApKSA9PSBudWxsID8gdm9pZCAwIDogX2cudGV4dENvbnRlbnQ7XG4g\nICAgICB9XG4gICAgICBsZXQgeyB1c2VyRmxvb3IsIHVzZXJJcFBvc2l0aW9uLCB1c2VyQ29tbWVu\ndFRpbWUgfSA9IHBhcnNlQ29tbWVudEJvdHRvbUluZm8oZWxlbWVudCk7XG4gICAgICBpZiAodXNl\nckF2YXRhci5zdGFydHNXaXRoKFwiXC9cL1wiKSkge1xuICAgICAgICB1c2VyQXZhdGFyID0gXCJo\ndHRwczpcIiArIHVzZXJBdmF0YXI7XG4gICAgICB9XG4gICAgICBsZXQgdXNlckF2YXRhck9iaiA9\nIG5ldyBVUkwodXNlckF2YXRhcik7XG4gICAgICBsZXQgdXNlclBvcnRyYWl0ID0gZGF0YV9maWVs\nZFtcImF1dGhvclwiXVtcInBvcnRyYWl0XCJdO1xuICAgICAgaWYgKCF1c2VyUG9ydHJhaXQpIHtc\nbiAgICAgICAgbGV0IHVzZXJBdmF0YXJPYmpNYXRjaCA9IHVzZXJBdmF0YXJPYmoucGF0aG5hbWUu\nbWF0Y2goXC9cXFwvaXRlbVxcXC8oLispXC9pKTtcbiAgICAgICAgaWYgKHVzZXJBdmF0YXJPYmpN\nYXRjaCkge1xuICAgICAgICAgIHVzZXJQb3J0cmFpdCA9IHVzZXJBdmF0YXJPYmpNYXRjaFsxXTtc\nbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1\nX3RpZWJhX3NoaWVsZF9jb21tbmV0c19iYW9kYXRpbmdcIikpIHtcbiAgICAgICAgaWYgKFRpZWJh\nUG9zdEFwaS5pc1JvYm90KHtcbiAgICAgICAgICBpZDogdXNlcl9pZCxcbiAgICAgICAgICBwb3J0\ncmFpdDogdXNlclBvcnRyYWl0XG4gICAgICAgIH0pKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAg\nICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgcG9zdF9pZCA9IGRhdGFfZmllbGRbXCJjb250ZW50\nXCJdW1wicG9zdF9pZFwiXTtcbiAgICAgIGxldCBuZXdVc2VyQ29tbWVudEhUTUwgPSBcIlwiO1xu\nICAgICAgaWYgKHBhZ2VDb21tZW50TGlzdC5jb21tZW50TGlzdFtwb3N0X2lkXSkge1xuICAgICAg\nICBBcnJheS5mcm9tKHBhZ2VDb21tZW50TGlzdC5jb21tZW50TGlzdFtwb3N0X2lkXS5jb21tZW50\nX2luZm8pLmZvckVhY2goXG4gICAgICAgICAgKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgbGV0\nIHVfdXNlcl9uYW1lID0gcmVzdWx0W1wic2hvd19uaWNrbmFtZVwiXTtcbiAgICAgICAgICAgIGxl\ndCB1X2NvbnRlbnQgPSByZXN1bHRbXCJjb250ZW50XCJdO1xuICAgICAgICAgICAgbGV0IHVfdXNl\ncl9pZCA9IHJlc3VsdFtcInVzZXJfaWRcIl07XG4gICAgICAgICAgICBsZXQgdV91c2VyX3BvcnRy\nYWl0ID0gcGFnZUNvbW1lbnRMaXN0LnVzZXJMaXN0W3VfdXNlcl9pZF1bXCJwb3J0cmFpdFwiXTtc\nbiAgICAgICAgICAgIGxldCB1X3VzZXJfaG9tZV91cmwgPSBcIlwvaG9tZVwvbWFpbj9pZD1cIiAr\nIHVfdXNlcl9wb3J0cmFpdDtcbiAgICAgICAgICAgIGlmIChidWlsZGVySWQgPT0gdV91c2VyX2lk\nKSB7XG4gICAgICAgICAgICAgIHVfdXNlcl9uYW1lICs9IFwvKmh0bWwqXC9cbiAgICAgICAgICAg\nICAgYDxzdmcgZGF0YS12LTViNjBmMzBiPVwiXCIgY2xhc3M9XCJsYW5kbG9yZFwiPjx1c2UgeGxp\nbms6aHJlZj1cIiNpY29uX2xhbmRsb3JkXCI+PFwvdXNlPjxcL3N2Zz5gO1xuICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgbGV0IGx6bENvbW1lbnRJdGVtSFRNTCA9IChcbiAgICAgICAgICAgICAg\nXC8qaHRtbCpcL1xuICAgICAgICAgICAgICBgXG5cdFx0XHRcdFx0PGRpdiBkYXRhLXYtNWI2MGYz\nMGI9XCJcIiBjbGFzcz1cImx6bC1wb3N0LWl0ZW1cIiBzdHlsZT1cIlwiPlxuXHRcdFx0XHRcdFx0\nPGRpdiBkYXRhLXYtNWI2MGYzMGI9XCJcIiBjbGFzcz1cInRleHQtYm94XCI+XG5cdFx0XHRcdFx0\nXHRcdDxzcGFuIGRhdGEtdi01YjYwZjMwYj1cIlwiIGNsYXNzPVwibGluayB1c2VybmFtZVwiIGRh\ndGEtaG9tZS11cmw9XCIke3VfdXNlcl9ob21lX3VybH1cIj4ke3VfdXNlcl9uYW1lfTxcL3NwYW4+\nXG5cdFx0XHRcdFx0XHRcdDxkaXYgZGF0YS12LWFiMTRiM2ZlPVwiXCIgZGF0YS12LTViNjBmMzBi\nPVwiXCIgY2xhc3M9XCJ0aHJlYWQtdGV4dCBsemwtcG9zdC10ZXh0XCI+XG5cdFx0XHRcdFx0XHRc\ndFx0PHNwYW4gZGF0YS12LWFiMTRiM2ZlPVwiXCIgY2xhc3M9XCJ0ZXh0LWNvbnRlbnRcIj4ke3Vf\nY29udGVudH08XC9zcGFuPlxuXHRcdFx0XHRcdFx0XHQ8XC9kaXY+XG5cdFx0XHRcdFx0XHQ8XC9k\naXY+XG5cdFx0XHRcdFx0PFwvZGl2PmBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBuZXdV\nc2VyQ29tbWVudEhUTUwgKz0gbHpsQ29tbWVudEl0ZW1IVE1MO1xuICAgICAgICAgIH1cbiAgICAg\nICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdVc2VyQ29tbWVudEhUTUwpIHtcbiAgICAgICAg\nbmV3VXNlckNvbW1lbnRIVE1MID0gXC8qaHRtbCpcL1xuICAgICAgICBgXG4gICAgICAgICAgICA8\nZGl2IGRhdGEtdi01YjYwZjMwYj1cIlwiIGRhdGEtdi03NGViMTNlMj1cIlwiIGNsYXNzPVwibHps\nLXBvc3QgbHpsLXBvc3RcIiBzdHlsZT1cIm1heC1oZWlnaHQ6IDIuMzVyZW07b3ZlcmZsb3cteTog\naGlkZGVuO1wiPlxuICAgICAgICAgICAgICAke25ld1VzZXJDb21tZW50SFRNTH1cbiAgICAgICAg\nICAgIDxcL2Rpdj5cbiAgICAgICAgICAgIGA7XG4gICAgICB9XG4gICAgICBsZXQgbmV3Q29tbWVu\ndEVsZW1lbnQgPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFxuICAgICAgICBcImRpdlwiLFxuICAg\nICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInBvc3QtaXRlbVwiLFxuICAgICAgICAgIGlu\nbmVySFRNTDogKFxuICAgICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAgICAgICAgYFxuXHRcdFx0\nXHQ8ZGl2XG5cdFx0XHRcdFx0ZGF0YS12LTE4OGMwZTg0PVwiXCJcblx0XHRcdFx0XHRkYXRhLXYt\nNzRlYjEzZTI9XCJcIlxuXHRcdFx0XHRcdGNsYXNzPVwidXNlci1saW5lLXdyYXBwZXIgdXNlci1s\naW5lLXBvc3RcIj5cblx0XHRcdFx0XHQ8ZGl2IGRhdGEtdi0xODhjMGU4ND1cIlwiIGNsYXNzPVwi\ndXNlci1saW5lXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2IGRhdGEtdi0xODhjMGU4ND1cIlwiIGNsYXNz\nPVwidGJmZS0xcHgtYm9yZGVyIGF2YXRhclwiIGRhdGEtaG9tZS11cmw9XCIke3VzZXJIb21lVXJs\nfVwiXG5cdFx0XHRcdFx0XHRcdGRhdGEtc3JjPVwiJHt1c2VyQXZhdGFyfVwiXG5cdFx0XHRcdFx0\nXHRcdGxhenk9XCJsb2FkZWRcIlxuXHRcdFx0XHRcdFx0XHRzdHlsZT1cImJhY2tncm91bmQtaW1h\nZ2U6IHVybCgke3VzZXJBdmF0YXJ9KTtcIj48XC9kaXY+XG5cdFx0XHRcdFx0XHQ8ZGl2IGRhdGEt\ndi0xODhjMGU4ND1cIlwiIGNsYXNzPVwidXNlci1pbmZvXCI+XG5cdFx0XHRcdFx0XHRcdDxkaXYg\nZGF0YS12LTE4OGMwZTg0PVwiXCIgY2xhc3M9XCJ1c2VybmFtZVwiIGRhdGEtaG9tZS11cmw9XCIk\ne3VzZXJIb21lVXJsfVwiPlxuXHRcdFx0XHRcdFx0XHQke3VzZXJTaG93TmFtZX1cblx0XHRcdFx0\nXHRcdFx0JHtpc19sYW5kbG9yZCA\/IGA8c3ZnIGRhdGEtdi0xODhjMGU4ND1cIlwiIGNsYXNzPVwi\nbGFuZGxvcmRcIj48dXNlIHhsaW5rOmhyZWY9XCIjaWNvbl9sYW5kbG9yZFwiPjxcL3VzZT48XC9z\ndmc+YCA6IFwiXCJ9XG5cdFx0XHRcdFx0XHRcdCR7dXNlckZvcnVtTGV2ZWwgJiYgdXNlckZvcnVt\nTGV2ZWwgPj0gMCAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdV90aWViYV9zaG93X2ZvcnVt\nX2xldmVsXCIpID8gYFxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmb3J1bS1sZXZlbC1j\nb250YWluZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZm9ydW0tbGV2ZWxc\nIiBkYXRhLWxldmVsPVwiJHt1c2VyRm9ydW1MZXZlbH1cIj5Mdi4ke3VzZXJGb3J1bUxldmVsfSAk\ne3VzZXJGb3J1bUxldmVsTmFtZX08XC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdDxcL2Rpdj5gIDog\nXCJcIn1cblx0XHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0\nXHRcdDxcL2Rpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidXNlci1jb21tZW50LWhhbmRsZXJc\nIj5cblx0XHRcdFx0XHRcdDxzdmcgY2xhc3M9XCJpY29uXCIgdmlld0JveD1cIjAgMCAxMDI0IDEw\nMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9z\ndmdcIiBwLWlkPVwiMjMwNFwiPjxwYXRoIGQ9XCJNNDQ4IDE5MS4wMDQ0NDRhNjQgNjQgMCAxIDAg\nMTI4IDAgNjQgNjQgMCAwIDAtMTI4IDB6IG0wIDMyMGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAw\nIDAgMC0xMjggMHogbTAgMzIwYTY0IDY0IDAgMSAwIDEyOCAwIDY0IDY0IDAgMCAwLTEyOCAwelwi\nIGZpbGw9XCIjMDAwMDAwXCIgZmlsbC1vcGFjaXR5PVwiLjY1XCIgcC1pZD1cIjIzMDVcIj48XC9w\nYXRoPlxuXHRcdFx0XHRcdFx0PFwvc3ZnPlxuXHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0PFwv\nZGl2PlxuXHRcdFx0XHQ8ZGl2IGRhdGEtdi03NGViMTNlMj1cIlwiIGNsYXNzPVwiY29udGVudFwi\nPlxuXHRcdFx0XHRcdDxwIGRhdGEtdi1hYjE0YjNmZT1cIlwiIGRhdGEtdi03NGViMTNlMj1cIlwi\nIGNsYXNzPVwidGhyZWFkLXRleHQgcG9zdC10ZXh0XCI+XG5cdFx0XHRcdFx0XHQ8c3BhbiBkYXRh\nLXYtYWIxNGIzZmU9XCJcIiBjbGFzcz1cInRleHQtY29udGVudFwiPlxuXHRcdFx0XHRcdFx0XHQk\ne3VzZXJDb21tZW50fVxuXHRcdFx0XHRcdFx0PFwvc3Bhbj5cblx0XHRcdFx0XHQ8XC9wPlxuXHRc\ndFx0XHRcdDxwIGRhdGEtdi0xODhjMGU4ND1cIlwiIGNsYXNzPVwiZGVzYy1pbmZvXCI+XG5cdFx0\nXHRcdFx0XHQ8c3BhbiBkYXRhLXYtMTg4YzBlODQ9XCJcIiBjbGFzcz1cImZsb29yLWluZm9cIj5c\nblx0XHRcdFx0XHRcdFx056ysJHt1c2VyRmxvb3J95qW8XG5cdFx0XHRcdFx0XHQ8XC9zcGFuPlxu\nXHRcdFx0XHRcdFx0PHNwYW4gZGF0YS12LTE4OGMwZTg0PVwiXCIgY2xhc3M9XCJ0aW1lXCIgc3R5\nbGU9XCJtYXJnaW4tcmlnaHQ6IC4wOHJlbTtcIj5cblx0XHRcdFx0XHRcdFx0JHt1c2VyQ29tbWVu\ndFRpbWV9XG5cdFx0XHRcdFx0XHQ8XC9zcGFuPlxuXHRcdFx0XHRcdFx0PHNwYW4gZGF0YS12LTE4\nOGMwZTg0PVwiXCIgY2xhc3M9XCJpcFwiPlxuXHRcdFx0XHRcdFx0XHQke3VzZXJJcFBvc2l0aW9u\nfVxuXHRcdFx0XHRcdFx0PFwvc3Bhbj5cblx0XHRcdFx0XHQ8XC9wPlxuXHRcdFx0XHRcdCR7bmV3\nVXNlckNvbW1lbnRIVE1MfVxuXHRcdFx0XHRcdDxkaXYgZGF0YS12LTc0ZWIxM2UyPVwiXCIgY2xh\nc3M9XCJwb3N0LXNwbGl0LWxpbmVcIj48XC9kaXY+XG5cdFx0XHRcdDxcL2Rpdj5cbiAgICAgICAg\nICAgICAgYFxuICAgICAgICAgICksXG4gICAgICAgICAgXCJkYXRhLXdoaXRlc2V2XCI6IHtcbiAg\nICAgICAgICAgIHVzZXJJZDogdXNlcl9pZCxcbiAgICAgICAgICAgIHVzZXJQb3N0SWQ6IHBvc3Rf\naWQsXG4gICAgICAgICAgICB1c2VyUG9ydHJhaXQsXG4gICAgICAgICAgICB1c2VyRmxvb3IsXG4g\nICAgICAgICAgICB1c2VyQ29tbWVudCxcbiAgICAgICAgICAgIHVzZXJIb21lVXJsLFxuICAgICAg\nICAgICAgdXNlckZvcnVtTGV2ZWwsXG4gICAgICAgICAgICB1c2VyRm9ydW1MZXZlbE5hbWUsXG4g\nICAgICAgICAgICB1c2VyQXZhdGFyLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAg\nICB1c2VyU2hvd05hbWUsXG4gICAgICAgICAgICB1c2VyQ29tbWVudFRpbWUsXG4gICAgICAgICAg\nICB1c2VySXBQb3NpdGlvbixcbiAgICAgICAgICAgIHBhZ2VDb21tZW50TGlzdFxuICAgICAgICAg\nIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwiZGF0YS12LTc0ZWIxM2UyXCI6\nIFwiXCIsXG4gICAgICAgICAgXCJkYXRhLXYtNjAyZTI4N2NcIjogXCJcIixcbiAgICAgICAgICBc\nImRhdGEtZmxvb3JcIjogVGllYmFDb21tZW50LmZsb29yX251bSxcbiAgICAgICAgICBsYW5kbG9y\nZDogaXNfbGFuZGxvcmRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIG5ld0NvbW1lbnRFbGVt\nZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGV4dC1jb250ZW50IGVtYmVkLkJERV9NdXNpY1wiKS5m\nb3JFYWNoKChlbGUpID0+IGVsZS5yZW1vdmUoKSk7XG4gICAgICByZXR1cm4gbmV3Q29tbWVudEVs\nZW1lbnQ7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5qC55o2u6K+E6K6655qEaHRtbOaPkuWF\npemhtemdouS4rVxuICAgICAqIEBwYXJhbSBuZXdDb21tZW50RE9NXG4gICAgICpcL1xuICAgIGlu\nc2VydE5ld0NvbW1lbnRJbm5lckVsZW1lbnQ6IChuZXdDb21tZW50RE9NKSA9PiB7XG4gICAgICBp\nZiAobmV3Q29tbWVudERPTSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAg\nICAgIG5ld0NvbW1lbnRET00ucXVlcnlTZWxlY3RvckFsbChcIi50YmZlLTFweC1ib3JkZXIuYXZh\ndGFyXCIpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uaGFzQXR0cmlidXRl\nKFwiZGF0YS1ob21lLXVybFwiKSkge1xuICAgICAgICAgIGl0ZW0ub25jbGljayA9IGZ1bmN0aW9u\nKGV2ZW50KSB7XG4gICAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAg\nICAgICAgd2luZG93Lm9wZW4oaXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhvbWUtdXJsXCIpLCBc\nIl9ibGFua1wiKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG5l\nd0NvbW1lbnRET00ucXVlcnlTZWxlY3RvckFsbChcIi51c2VyLWluZm8gLnVzZXJuYW1lXCIpLmZv\nckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uaGFzQXR0cmlidXRlKFwiZGF0YS1o\nb21lLXVybFwiKSkge1xuICAgICAgICAgIGl0ZW0ub25jbGljayA9IGZ1bmN0aW9uKGV2ZW50KSB7\nXG4gICAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgd2lu\nZG93Lm9wZW4oaXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhvbWUtdXJsXCIpLCBcIl9ibGFua1wi\nKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIG5ld0NvbW1lbnRE\nT00ucXVlcnlTZWxlY3RvckFsbChcImEuYXRcIikuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAg\nICBpdGVtLnJlbW92ZUF0dHJpYnV0ZShcIm9uY2xpY2tcIik7XG4gICAgICAgIGl0ZW0ucmVtb3Zl\nQXR0cmlidXRlKFwib25tb3VzZW92ZXJcIik7XG4gICAgICAgIGl0ZW0ucmVtb3ZlQXR0cmlidXRl\nKFwib25tb3VzZW91dFwiKTtcbiAgICAgICAgaWYgKGl0ZW0uaGFzQXR0cmlidXRlKFwicG9ydHJh\naXRcIikpIHtcbiAgICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgIFwiaHJl\nZlwiLFxuICAgICAgICAgICAgXCJcL2hvbWVcL21haW4\/aWQ9XCIgKyBpdGVtLmdldEF0dHJpYnV0\nZShcInBvcnRyYWl0XCIpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAg\nICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5wb3N0LWN1dC1ndWlkZVwiKSkge1xuICAg\nICAgICBkb211dGlscy5iZWZvcmUoXG4gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihc\nIi5wb3N0LWN1dC1ndWlkZVwiKSxcbiAgICAgICAgICBuZXdDb21tZW50RE9NXG4gICAgICAgICk7\nXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkb211dGlscy5hcHBlbmQoXG4gICAgICAgICAgZG9j\ndW1lbnQucXVlcnlTZWxlY3RvcihcIi5wYi1wYWdlLXdyYXBwZXJcIiksXG4gICAgICAgICAgbmV3\nQ29tbWVudERPTVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgbGV0IGx6bFBvc3RFbGVtZW50\nID0gbmV3Q29tbWVudERPTS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBcIi5semwtcG9zdC5semwt\ncG9zdFwiXG4gICAgICApO1xuICAgICAgaWYgKGx6bFBvc3RFbGVtZW50KSB7XG4gICAgICAgIGxl\ndCBsemxQb3N0RWxlbWVudEhlaWdodCA9IGRvbXV0aWxzLmhlaWdodChsemxQb3N0RWxlbWVudCk7\nXG4gICAgICAgIGxldCBsemxQb3N0SXRlbUxpc3QgPSBBcnJheS5mcm9tKFxuICAgICAgICAgIGx6\nbFBvc3RFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIubHpsLXBvc3QtaXRlbVwiKVxuICAgICAg\nICApO1xuICAgICAgICBsZXQgY3VycmVudEx6bFBvc3RFbGVtZW50SGVpZ2h0ID0gMDtcbiAgICAg\nICAgbGV0IGFkZFNlZUFsbFJlcGx5ID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgbHpsUG9z\ndEl0ZW0gb2YgbHpsUG9zdEl0ZW1MaXN0KSB7XG4gICAgICAgICAgY3VycmVudEx6bFBvc3RFbGVt\nZW50SGVpZ2h0ICs9IGRvbXV0aWxzLm91dGVySGVpZ2h0KGx6bFBvc3RJdGVtKTtcbiAgICAgICAg\nICBpZiAoY3VycmVudEx6bFBvc3RFbGVtZW50SGVpZ2h0ID4gbHpsUG9zdEVsZW1lbnRIZWlnaHQp\nIHtcbiAgICAgICAgICAgIGFkZFNlZUFsbFJlcGx5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGJyZWFr\nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWRkU2VlQWxsUmVwbHkpIHtc\nbiAgICAgICAgICBsZXQgbHpsSXRlbURhdGEgPSBuZXdDb21tZW50RE9NW1wiZGF0YS13aGl0ZXNl\ndlwiXTtcbiAgICAgICAgICBsZXQgbHpsQ29tbWVudE51bXMgPSBsemxJdGVtRGF0YVtcInBhZ2VD\nb21tZW50TGlzdFwiXVtcImNvbW1lbnRMaXN0XCJdW2x6bEl0ZW1EYXRhW1widXNlclBvc3RJZFwi\nXV1bXCJjb21tZW50X251bVwiXTtcbiAgICAgICAgICBsZXQgc2VlQWxsUmVwbHlFbGVtZW50ID0g\nZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAg\nICB7XG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogXCJ3aGl0ZXNldi1zZWUtYWxsLXJlcGx5XCIs\nXG4gICAgICAgICAgICAgIGlubmVySFRNTDogKFxuICAgICAgICAgICAgICAgIFwvKmh0bWwqXC9c\nbiAgICAgICAgICAgICAgICBg5p+l55yL5YWo6YOoJHtsemxDb21tZW50TnVtc33mnaHlm57lpI1g\nXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAg\nICAgICAgIHN0eWxlOiBcImNvbG9yOiAjNjI1MUIzO21hcmdpbi10b3A6IDVweCAwIDAgMTBweDtc\nIlxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgZG9tdXRpbHMub24oc2Vl\nQWxsUmVwbHlFbGVtZW50LCBcImNsaWNrXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgdXRp\nbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgIGx6bFBvc3RFbGVtZW50LmNsaWNr\nKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgZG9tdXRpbHMuYWZ0ZXIobHpsUG9zdEVsZW1l\nbnQsIHNlZUFsbFJlcGx5RWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgZG9tdXRpbHMub24o\nXG4gICAgICAgICAgbHpsUG9zdEVsZW1lbnQsXG4gICAgICAgICAgXCJjbGlja1wiLFxuICAgICAg\nICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtc\nbiAgICAgICAgICAgIGxvZy5zdWNjZXNzKGDngrnlh7vmn6XnnIvlhajpg6jlm57lpI1gKTtcbiAg\nICAgICAgICAgIFRpZWJhQ29tbWVudC5zaG93UmVwbHlEaWFsb2cobHpsUG9zdEVsZW1lbnQpO1xu\nICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAg\nICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDl\niJ3lp4vljJbor4TorrrnmoTlvLnnqpfnmoTmiYDmnInorr7nva7ljIXmi6xDU1NcbiAgICAgKlwv\nXG4gICAgaW5pdFJlcGx5RGlhbG9nQ1NTKCkge1xuICAgICAgbG9nLnN1Y2Nlc3MoXCLliJ3lp4vl\njJblm57lpI3nmoTlvLnnqpdcIik7XG4gICAgICBhZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwv\nXG4gICAgICAgIGBcblx0XHRcLyog5Li7ICpcL1xuXHRcdCN3aGl0ZXNldi1yZXBseS1kaWFsb2d7\nXG5cdFx0XHR6LWluZGV4OiA5OTk5OTtcblx0XHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xv\ncjogcmdiYSgwLCAwLCAwLCAwKTtcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRcdHRvcDog\nMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdodDogMTAw\nJTtcblx0XHR9XG5cdFx0XC8qIOiDjOaZryAqXC9cblx0XHQud2hpdGVzZXYtcmVwbHktZGlhbG9n\nLWJne1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bGVm\ndDogMDtcblx0XHRcdHotaW5kZXg6IDE7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGhlaWdo\ndDogMTAwJTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsLjUpO1xuXHRcdFx0\ndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG5cdFx0XHR0cmFuc2l0aW9uLWR1\ncmF0aW9uOiAuMXM7XG5cdFx0XHR0cmFuc2l0aW9uLXByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9y\nLG9wYWNpdHk7XG5cdFx0fVxuXHRcdFwvKiDlhoXlrrnlrrnlmaggKlwvXG5cdFx0LndoaXRlc2V2\nLXJlcGx5LWRpYWxvZy1zaGVldHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGJv\ndHRvbTogMDtcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR6LWluZGV4OiAyO1xuXHRcdFx0d2lkdGg6\nIDEwMCU7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0dHJhbnNpdGlvbjog\nLjFzIGVhc2UtaW47XG5cdFx0XHR0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG5cdFx0\nXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDEwMCUpO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMTBw\neCAxMHB4IDBweCAwcHg7XG5cdFx0fVxuXHRcdFwvKiDlhbPpl60gKlwvXG5cdFx0LndoaXRlc2V2\nLXJlcGx5LWRpYWxvZy1jbG9zZXtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR9XG5c\ndFx0XC8qIOagh+mimCAqXC9cblx0XHQud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LXRpdGxl\ne1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJveC1z\naXppbmc6IGJvcmRlci1ib3g7XG5cdFx0XHRwYWRkaW5nOiAxNXB4O1xuXHRcdFx0Y29sb3I6ICMy\nMjI7XG5cdFx0XHRsaW5lLWhlaWdodDogMjBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtc\nblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGJkYmRiO1xuXHRcdH1cblx0XHRcLyog\n5YaF5a65ICpcL1xuXHRcdC53aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQtY29udGVudHtcblx0\nXHRcdGhlaWdodDogMTAwJTtcblx0XHRcdG92ZXJmbG93LXk6IGF1dG87XG5cdFx0fVxuXHRcdFwv\nKiDlhoXlrrnkuK3kuLvlhoXlrrnlkozlhbblroPlhoXlrrkgKlwvXG5cdFx0LndoaXRlc2V2LXJl\ncGx5LWRpYWxvZy1zaGVldC1tYWluLWNvbnRlbnQsXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxv\nZy1zaGVldC1vdGhlci1jb250ZW50e1xuXHRcdFx0bWFyZ2luOiAyMHB4IDEwcHggMTBweCAxMHB4\nO1xuXHRcdH1cblx0XHRcLyog5YaF5a655Lit5YW25a6D5YaF5a65ICpcL1xuXHRcdC53aGl0ZXNl\ndi1yZXBseS1kaWFsb2ctc2hlZXQtb2h0ZXItY29udGVudHtcblxuXHRcdH1cblx0XHRcLyog5by5\n5Ye6ICpcL1xuXHRcdCN3aGl0ZXNldi1yZXBseS1kaWFsb2dbZGF0YS1vbl0gLndoaXRlc2V2LXJl\ncGx5LWRpYWxvZy1iZ3tcblx0XHRcdHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWlu\nO1xuXHRcdFx0dHJhbnNpdGlvbi1kdXJhdGlvbjogLjJzO1xuXHRcdH1cblx0XHQjd2hpdGVzZXYt\ncmVwbHktZGlhbG9nW2RhdGEtb25dIC53aGl0ZXNldi1yZXBseS1kaWFsb2ctYmd7XG5cdFx0XHRi\nYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLC41KTtcblx0XHR9XG5cdFx0I3doaXRlc2V2LXJl\ncGx5LWRpYWxvZ1tkYXRhLW9uXSAud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0e1xuXHRcdFx0\ndHJhbnNpdGlvbjogLjJzIGVhc2UtaW47XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDAp\nO1xuXHRcdH1cblxuXHRcdFwvKiDlpLTlg48gKlwvXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxv\nZy1hdmF0YXIge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0LXdlYmtpdC1ib3gt\nc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xu\nXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdHdpZHRoOiAuMzZyZW07XG5cdFx0\nXHRoZWlnaHQ6IC4zNnJlbTtcblx0XHRcdG1hcmdpbi1yaWdodDogLjA4cmVtO1xuXHRcdFx0Ym9y\nZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0\nXHRcdGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcblx0XHRcdGJhY2tncm91bmQtc2l6ZTogY292\nZXI7XG5cdFx0XHQtd2Via2l0LWJveC1mbGV4OiAwO1xuXHRcdFx0LW1vei1ib3gtZmxleDogMDtc\nblx0XHRcdC13ZWJraXQtZmxleDogbm9uZTtcblx0XHRcdC1tcy1mbGV4OiBub25lO1xuXHRcdFx0\nZmxleDogbm9uZTtcblx0XHR9XG5cdFx0XG5cdFx0XC8qIOeUqOaIt+ihjCAqXC9cblx0XHQud2hp\ndGVzZXYtcmVwbHktZGlhbG9nLXVzZXItbGluZSB7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRc\ndFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHR9XG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxv\nZy11c2VyLWxpbmUsXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWNvbW1lbnQsXG5c\ndFx0LndoaXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWRlc2MtaW5mbyB7XG5cdFx0XHRtYXJnaW4t\nYm90dG9tOiA4cHg7XG5cdFx0fVxuXHRcdC53aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1saW5l\nLXdyYXBwZXJ7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBz\ncGFjZS1iZXR3ZWVuO1xuXHRcdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHR9XG5cdFx0XC8q\nIOivhOiuuiAqXC9cblx0XHQud2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItY29tbWVudCB7XG5c\ndFx0XHRtYXJnaW4tbGVmdDogLjQ0cmVtO1xuXHRcdH1cblx0XHRcLyog6K+E6K6655qE6LS05ZCn\n6Ieq5bim6KGo5oOFICpcL1xuXHRcdC53aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1jb21tZW50\nIGltZy5CREVfU21pbGV5e1xuXHRcdFx0d2lkdGg6IC4ycmVtO1xuXHRcdFx0aGVpZ2h0OiAuMnJl\nbTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0fVxuXHRcdFwvKiDor4Torrrn\nmoTotLTlkKfoh6rlt7HkuIrkvKDnmoTlm77niYcgKlwvXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRp\nYWxvZy11c2VyLWNvbW1lbnQgaW1nOm5vdCguQkRFX1NtaWxleSl7XG5cdFx0XHRtYXJnaW4tdG9w\nOiA4cHg7XG5cdFx0XHRtYXgtd2lkdGg6IDM1MHB4O1xuXHRcdFx0Y3Vyc29yOiB1cmwoXC9cL3Ri\nMi5iZHN0YXRpYy5jb21cL3RiXC9zdGF0aWMtcGJcL2ltZ1wvY3VyX3ppbi5jdXIpLHBvaW50ZXI7\nXG5cdFx0XHRoZWlnaHQ6IGF1dG87XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdHdpZHRoOiAx\nMDAlO1xuXHRcdH1cblx0XHRcLyog5bqV6YOo5L+h5oGvICpcL1xuXHRcdC53aGl0ZXNldi1yZXBs\neS1kaWFsb2ctdXNlci1kZXNjLWluZm97XG5cdFx0XHRkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG5c\ndFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRt\nYXJnaW4tbGVmdDogLjQ0cmVtO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZmRm\nZGY7XG5cdFx0fVxuXHRcdC53aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1kZXNjLWluZm8gc3Bh\nbntcblx0XHRcdG1hcmdpbi1yaWdodDogLjA4cmVtO1xuXHRcdFx0ZGlzcGxheTogLXdlYmtpdC1m\nbGV4O1xuXHRcdFx0ZGlzcGxheTogLW1zLWZsZXhib3g7XG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xu\nXHRcdFx0LXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcblx0XHRcdC1tb3otYm94LWFsaWduOiBj\nZW50ZXI7XG5cdFx0XHQtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHQtbW96LWFs\naWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHQtbXMtZmxleC1hbGlnbjogY2VudGVyO1xuXHRcdFx0\nYWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRcdGZvbnQtc2l6ZTogLjEycmVtO1xuXHRcdFx0bGlu\nZS1oZWlnaHQ6IC4xOHJlbTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR3aGl0ZS1z\ncGFjZTogbm93cmFwO1xuXHRcdFx0LW8tdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR0\nZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdGNvbG9yOiAjYTNhMmE4O1xuXHRcdH1cblx0\nXHRcLyog56yseHjmpbwgKlwvXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWRlc2Mt\naW5mbyBzcGFuW2RhdGEtZmxvb3ItaW5mb106OmJlZm9yZSB7XG5cdFx0XHRjb250ZW50Olwi56ys\nXCJcblx0XHR9XG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWRlc2MtaW5mbyBzcGFu\nW2RhdGEtZmxvb3ItaW5mb106OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6XCLmpbxcIlxuXHRcdH1c\nblx0XHRcLyog5Lit6Ze06KGMICpcL1xuXHRcdC53aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQt\nbWFpbi1jb250ZW50LWJvdHRvbS1saW5lIHtcblx0XHRcdGJhY2tncm91bmQ6ICNlYmViZWI7XG5c\ndFx0XHRoZWlnaHQ6IDZweDtcblx0XHR9XG5cdFx0XC8qIOmakOiXj+mhtumDqOS4u+WbnuWkjeea\nhOW6lemDqOi+ueahhiAqXC9cblx0XHQud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LW1haW4t\nY29udGVudCAud2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItZGVzYy1pbmZve1xuXHRcdFx0Ym9y\nZGVyLWJvdHRvbTogbm9uZTtcblx0XHR9XG5cdFx0XC8qIOWFtuWug+WbnuWkjeS4reeahOacgOWQ\njuS4gOS4qiAqXC9cblx0XHQud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LW90aGVyLWNvbnRl\nbnQgPiBkaXY6bGFzdC1jaGlsZHtcblx0XHRcblx0XHR9XG5cdFx0XC8qIOWFtuWug+WbnuWkjeea\nhOavj+S4gOmhuSAqXC9cblx0XHQud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LW90aGVyLWNv\nbnRlbnQtaXRlbXtcblx0XHRcdG1hcmdpbi10b3A6IDEycHg7XG5cdFx0fVxuXHRcdFwvKiDlhbbl\nroPlm57lpI3nmoTlupXpg6jovrnmoYYgKlwvXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxvZy1z\naGVldC1vdGhlci1jb250ZW50LWl0ZW0gLndoaXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWRlc2Mt\naW5mb3tcblx0XHRcdHBhZGRpbmctYm90dG9tOiAxMnB4O1xuXHRcdH1cblx0XHRcLyogeHjmnaHl\nm57lpI0gKlwvXG5cdFx0LndoaXRlc2V2LXJlcGx5LWRpYWxvZy1zaGVldC1jb21tZW50LW51bSB7\nXG5cdFx0XHRtYXJnaW4tdG9wOiAtMTBweDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5c\ndFx0fVxuXHRcdFwvKiDmn6XnnIvlhajpg6h4eOadoeWbnuWkjSAqXC9cblx0XHQud2hpdGVzZXYt\nc2VlLWFsbC1yZXBseXtcblx0XHRcdHBhZGRpbmctdG9wOiAxMHB4O1xuXHRcdFx0cGFkZGluZy1s\nZWZ0OiAxMHB4O1xuXHRcdH1gXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiO\nt+WPlualvOS4realvOivhOiuuueahOWFg+e0oFxuICAgICAqXC9cbiAgICBnZXRMemxJdGVtRWxl\nbWVudChkYXRhKSB7XG4gICAgICBsZXQgJG90aGVyQ29tbWVudEl0ZW0gPSBkb2N1bWVudC5jcmVh\ndGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgJG90aGVyQ29tbWVudEl0ZW0uY2xhc3NOYW1lID0g\nXCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQtb3RoZXItY29udGVudC1pdGVtIHdoaXRlc2V2\nLXJlcGx5LWRpYWxvZy1jb250ZW50LWl0ZW1cIjtcbiAgICAgICRvdGhlckNvbW1lbnRJdGVtLmlu\nbmVySFRNTCA9IFwvKmh0bWwqXC9cbiAgICAgIGBcblx0XHQ8ZGl2IGNsYXNzPVwid2hpdGVzZXYt\ncmVwbHktZGlhbG9nLXVzZXItbGluZS13cmFwcGVyXCIgZGF0YS1wb3J0cmFpdD1cIiR7ZGF0YS5w\nb3J0cmFpdH1cIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNl\nci1saW5lXCIgZGF0YS1wb3J0cmFpdD1cIiR7ZGF0YS5wb3J0cmFpdH1cIj5cblx0XHRcdFx0PGRp\ndiBjbGFzcz1cIndoaXRlc2V2LXJlcGx5LWRpYWxvZy1hdmF0YXJcIiBzdHlsZT1cImJhY2tncm91\nbmQtaW1hZ2U6IHVybCgke2RhdGEuYXZhdGFyfSk7XCI+PFwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNs\nYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItaW5mb1wiPlxuXHRcdFx0XHRcdDxkaXYg\nY2xhc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci11c2VybmFtZVwiPlxuXHRcdFx0XHRc\ndCR7ZGF0YS5zaG93X25pY2tuYW1lfVxuXHRcdFx0XHRcdCR7ZGF0YS5pc0xhbmRsb3JkID8gYDxz\ndmcgZGF0YS12LTE4OGMwZTg0PVwiXCIgY2xhc3M9XCJsYW5kbG9yZFwiPjx1c2UgeGxpbms6aHJl\nZj1cIiNpY29uX2xhbmRsb3JkXCI+PFwvdXNlPjxcL3N2Zz5gIDogXCJcIn1cblx0XHRcdFx0XHQk\ne2RhdGEudXNlckZvcnVtTGV2ZWwgJiYgZGF0YS51c2VyRm9ydW1MZXZlbCA+PSAwICYmIFBvcHNQ\nYW5lbC5nZXRWYWx1ZShcImJhaWR1X3RpZWJhX3Nob3dfZm9ydW1fbGV2ZWxcIikgPyBgXG5cdFx0\nXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZm9ydW0tbGV2ZWwtY29udGFpbmVyXCI+XG5cdFx0XHRcdFx0\nXHRcdDxzcGFuIGNsYXNzPVwiZm9ydW0tbGV2ZWxcIiBkYXRhLWxldmVsPVwiJHtkYXRhLnVzZXJG\nb3J1bUxldmVsfVwiPkx2LiR7ZGF0YS51c2VyRm9ydW1MZXZlbH08XC9zcGFuPlxuXHRcdFx0XHRc\ndFx0PFwvZGl2PmAgOiBcIlwifVxuXHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0PFwvZGl2Plxu\nXHRcdFx0PFwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cInVzZXItY29tbWVudC1oYW5kbGVyXCI+\nXG5cdFx0XHRcdDxzdmcgY2xhc3M9XCJpY29uXCIgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB2\nZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiBw\nLWlkPVwiMjMwNFwiPjxwYXRoIGQ9XCJNNDQ4IDE5MS4wMDQ0NDRhNjQgNjQgMCAxIDAgMTI4IDAg\nNjQgNjQgMCAwIDAtMTI4IDB6IG0wIDMyMGE2NCA2NCAwIDEgMCAxMjggMCA2NCA2NCAwIDAgMC0x\nMjggMHogbTAgMzIwYTY0IDY0IDAgMSAwIDEyOCAwIDY0IDY0IDAgMCAwLTEyOCAwelwiIGZpbGw9\nXCIjMDAwMDAwXCIgZmlsbC1vcGFjaXR5PVwiLjY1XCIgcC1pZD1cIjIzMDVcIj48XC9wYXRoPlxu\nXHRcdFx0XHQ8XC9zdmc+XG5cdFx0XHQ8XC9kaXY+XG5cdFx0PFwvZGl2PlxuXHRcdDxkaXYgY2xh\nc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1jb21tZW50XCI+JHtkYXRhLmNvbnRlbnR9\nPFwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1kZXNj\nLWluZm9cIj5cblx0XHRcdDxzcGFuIGRhdGEtdGltZT1cIlwiPiR7ZGF0YS50aW1lfTxcL3NwYW4+\nXG5cdFx0XHQ8c3BhbiBkYXRhLWlwPVwiXCI+JHtkYXRhLmlwfTxcL3NwYW4+XG5cdFx0PFwvZGl2\nPlxuXHRcdGA7XG4gICAgICByZXR1cm4gJG90aGVyQ29tbWVudEl0ZW07XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5pi+56S66K+E6K6655qE5by556qXXG4gICAgICogQHBhcmFtIGVsZW1lbnRc\nbiAgICAgKlwvXG4gICAgc2hvd1JlcGx5RGlhbG9nKGVsZW1lbnQpIHtcbiAgICAgIGxldCBjb250\nZW50RWxlbWVudCA9IGVsZW1lbnQuY2xvc2VzdChcImRpdi5wb3N0LWl0ZW1cIik7XG4gICAgICBs\nZXQgZGF0YSA9IHt9O1xuICAgICAgaWYgKGNvbnRlbnRFbGVtZW50ICYmIGNvbnRlbnRFbGVtZW50\nW1wiZGF0YS13aGl0ZXNldlwiXSkge1xuICAgICAgICBkYXRhID0gY29udGVudEVsZW1lbnRbXCJk\nYXRhLXdoaXRlc2V2XCJdO1xuICAgICAgfVxuICAgICAgbG9nLnN1Y2Nlc3MoW1wiZGF0YS13aGl0\nZXNlduaVsOaNrlwiLCBkYXRhXSk7XG4gICAgICBsZXQgY3VycmVudENvbW1lbnREYXRhID0gZGF0\nYVtcInBhZ2VDb21tZW50TGlzdFwiXVtcImNvbW1lbnRMaXN0XCJdW2RhdGFbXCJ1c2VyUG9zdElk\nXCJdXVtcImNvbW1lbnRfaW5mb1wiXTtcbiAgICAgIGxvZy5zdWNjZXNzKFtcIuW9k+WJjeivhOiu\nuuaVsOaNruS\/oeaBr0pTT05cIiwgY3VycmVudENvbW1lbnREYXRhXSk7XG4gICAgICBsZXQgY3Vy\ncmVudENvbW1lbnRMaXN0TnVtID0gZGF0YVtcInBhZ2VDb21tZW50TGlzdFwiXVtcImNvbW1lbnRM\naXN0XCJdW2RhdGFbXCJ1c2VyUG9zdElkXCJdXVtcImNvbW1lbnRfbnVtXCJdO1xuICAgICAgbGV0\nIHVzZXJMaXN0ID0gZGF0YVtcInBhZ2VDb21tZW50TGlzdFwiXVtcInVzZXJMaXN0XCJdO1xuICAg\nICAgbGV0IG1haW5Vc2VyQXZhdGFyID0gZGF0YVtcInVzZXJBdmF0YXJcIl07XG4gICAgICBsZXQg\ndXNlckF2YXRhckhvc3ROYW1lID0gbmV3IFVSTChtYWluVXNlckF2YXRhcikuaG9zdG5hbWU7XG4g\nICAgICBsZXQgdXNlckF2YXRhclBhdGggPSBuZXcgVVJMKG1haW5Vc2VyQXZhdGFyKS5wYXRobmFt\nZS5zcGxpdChcIlwvXCIpWzFdO1xuICAgICAgbGV0IGxhbmRsb3JkSW5mbyA9IFRpZWJhQ29yZS5n\nZXRMYW5kbG9yZEluZm8oKTtcbiAgICAgIGxvZy5zdWNjZXNzKFtcIuWktOWDj+WKoOWvhuWAvOi3\nr+W+hOaYr1wiLCB1c2VyQXZhdGFyUGF0aF0pO1xuICAgICAgbG9nLnN1Y2Nlc3MoW1wi5pys5biW\n5qW85Li755qE5L+h5oGvXCIsIGxhbmRsb3JkSW5mb10pO1xuICAgICAgbGV0ICRvaHRlckNvbW1l\nbnRGcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgIGN1\ncnJlbnRDb21tZW50RGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHZhciBfYTM7XG4g\nICAgICAgIGxldCBpdGVtVXNlckluZm8gPSB1c2VyTGlzdFtpdGVtW1widXNlcl9pZFwiXV07XG4g\nICAgICAgIGxldCB1c2VyUG9ydHJhaXQgPSBpdGVtVXNlckluZm9bXCJwb3J0cmFpdFwiXTtcbiAg\nICAgICAgbGV0IGlzTGFuZGxvcmQgPSBCb29sZWFuKFxuICAgICAgICAgIGxhbmRsb3JkSW5mbyAm\nJiBsYW5kbG9yZEluZm8uaWQgPT09IGl0ZW1bXCJ1c2VyX2lkXCJdXG4gICAgICAgICk7XG4gICAg\nICAgIGxldCBpdGVtVXNlckNvbW1lbnRUaW1lID0gdXRpbHMuZ2V0RGF5c0RpZmZlcmVuY2UoaXRl\nbVtcIm5vd190aW1lXCJdICogMWUzLCB2b2lkIDAsIFwiYXV0b1wiKSArIFwi5YmNXCI7XG4gICAg\nICAgIGxldCBpdGVtVXNlckNvbW1lbnRJcCA9IFwiXCI7XG4gICAgICAgIGlmIChpdGVtW1wibG9j\nYXRpb25cIl0gJiYgaXRlbVtcImxvY2F0aW9uXCJdW1wibmFtZVwiXSkge1xuICAgICAgICAgIGl0\nZW1Vc2VyQ29tbWVudElwID0gaXRlbVtcImxvY2F0aW9uXCJdW1wibmFtZVwiXTtcbiAgICAgICAg\nfVxuICAgICAgICBpZiAodXNlckF2YXRhckhvc3ROYW1lID09PSBcImltZ3NhLmJhaWR1LmNvbVwi\nKSB7XG4gICAgICAgICAgdXNlckF2YXRhckhvc3ROYW1lID0gXCJnc3MwLmJkc3RhdGljLmNvbVwi\nO1xuICAgICAgICAgIHVzZXJBdmF0YXJQYXRoID0gXCI2TFoxZEQzZDFzZ0NvMkttbDVfWV9EM1wi\nO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpdGVtVXNlckF2YXRhciA9IGBodHRwczpcL1wvJHt1\nc2VyQXZhdGFySG9zdE5hbWV9XC8ke3VzZXJBdmF0YXJQYXRofVwvc3lzXC9wb3J0cmFpdFwvaXRl\nbVwvJHt1c2VyUG9ydHJhaXR9YDtcbiAgICAgICAgaWYgKHVzZXJBdmF0YXJQYXRoID09PSBcInN5\nc1wiKSB7XG4gICAgICAgICAgaXRlbVVzZXJBdmF0YXIgPSBpdGVtVXNlckF2YXRhci5yZXBsYWNl\nKFxuICAgICAgICAgICAgXCJcL3N5c1wvc3lzXC9wb3J0cmFpdFwvaXRlbVwvXCIsXG4gICAgICAg\nICAgICBcIlwvc3lzXC9wb3J0cmFpdFwvaXRlbVwvXCJcbiAgICAgICAgICApO1xuICAgICAgICB9\nXG4gICAgICAgIGxldCB1c2VyTGlrZUZvcnVtID0gKF9hMyA9IGl0ZW1Vc2VySW5mbyA9PSBudWxs\nID8gdm9pZCAwIDogaXRlbVVzZXJJbmZvW1wiY2FyZFwiXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9h\nM1tcImxpa2VfZm9ydW1cIl07XG4gICAgICAgIGxldCBsemxVc2VyRm9ydW1MZXZlbCA9IC0xO1xu\nICAgICAgICBpZiAodXNlckxpa2VGb3J1bSkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHVzZXJM\naWtlRm9ydW0pLmZvckVhY2goKGl0ZW1Gb3J1bUxldmVsKSA9PiB7XG4gICAgICAgICAgICBsZXQg\naXRlbUZvcnVtSW5mbyA9IHVzZXJMaWtlRm9ydW1baXRlbUZvcnVtTGV2ZWxdO1xuICAgICAgICAg\nICAgaWYgKGl0ZW1Gb3J1bUluZm9bXCJmb3J1bV9saXN0XCJdICYmIEFycmF5LmlzQXJyYXkoaXRl\nbUZvcnVtSW5mb1tcImZvcnVtX2xpc3RcIl0pICYmIGl0ZW1Gb3J1bUluZm9bXCJmb3J1bV9saXN0\nXCJdLmluY2x1ZGVzKFRpZWJhRGF0YS5mb3J1bU5hbWUpKSB7XG4gICAgICAgICAgICAgIGx6bFVz\nZXJGb3J1bUxldmVsID0gaXRlbUZvcnVtTGV2ZWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nfSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0ICRvdGhlckNvbW1lbnRJdGVtID0gdGhpcy5nZXRM\nemxJdGVtRWxlbWVudCh7XG4gICAgICAgICAgcG9ydHJhaXQ6IHVzZXJQb3J0cmFpdCxcbiAgICAg\nICAgICBhdmF0YXI6IGl0ZW1Vc2VyQXZhdGFyLFxuICAgICAgICAgIGlzTGFuZGxvcmQsXG4gICAg\nICAgICAgdXNlckZvcnVtTGV2ZWw6IGx6bFVzZXJGb3J1bUxldmVsLFxuICAgICAgICAgIHNob3df\nbmlja25hbWU6IGl0ZW1bXCJzaG93X25pY2tuYW1lXCJdLFxuICAgICAgICAgIGNvbnRlbnQ6IGl0\nZW1bXCJjb250ZW50XCJdLFxuICAgICAgICAgIHRpbWU6IGl0ZW1Vc2VyQ29tbWVudFRpbWUsXG4g\nICAgICAgICAgaXA6IGl0ZW1Vc2VyQ29tbWVudElwXG4gICAgICAgIH0pO1xuICAgICAgICAkb3Ro\nZXJDb21tZW50SXRlbVtcImRhdGEtbHpsLWl0ZW1cIl0gPSB7XG4gICAgICAgICAgZGF0YTogaXRl\nbSxcbiAgICAgICAgICB1c2VySW5mbzogaXRlbVVzZXJJbmZvLFxuICAgICAgICAgIHBvcnRyYWl0\nOiB1c2VyUG9ydHJhaXRcbiAgICAgICAgfTtcbiAgICAgICAgJG9odGVyQ29tbWVudEZyYWdtZW50\nLmFwcGVuZENoaWxkKCRvdGhlckNvbW1lbnRJdGVtKTtcbiAgICAgIH0pO1xuICAgICAgbG9nLnN1\nY2Nlc3MoW1wi5pi+56S66K+E6K6655qE5by556qXXCIsIGRhdGFdKTtcbiAgICAgIGxldCBkaWFs\nb2cgPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgaWQ6IFwid2hp\ndGVzZXYtcmVwbHktZGlhbG9nXCIsXG4gICAgICAgIGlubmVySFRNTDogKFxuICAgICAgICAgIFwv\nKmh0bWwqXC9cbiAgICAgICAgICBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYt\ncmVwbHktZGlhbG9nLWJnXCI+PFwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndoaXRl\nc2V2LXJlcGx5LWRpYWxvZy1zaGVldFwiIHN0eWxlPVwiaGVpZ2h0OiAke2RvY3VtZW50LmRvY3Vt\nZW50RWxlbWVudC5jbGllbnRIZWlnaHQgKiAwLjkyfXB4O1wiPlxuICAgICAgICAgICAgICA8ZGl2\nIGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LXRpdGxlXCI+XG4gICAgICAgICAg\nICAgICAgPGRpdiBjbGFzcz1cIndoaXRlc2V2LXJlcGx5LWRpYWxvZy1jbG9zZVwiPlxuICAgICAg\nICAgICAgICAgICAgPHN2ZyB0PVwiMTY5NDU3NDYyNTYyOVwiIGNsYXNzPVwiaWNvblwiIHZpZXdC\nb3g9XCIwIDAgMTAyNCAxMDI0XCIgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDpcL1wvd3d3\nLnczLm9yZ1wvMjAwMFwvc3ZnXCIgcC1pZD1cIjIzMDZcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwi\nMjBcIj48cGF0aCBkPVwiTTU3NiA1MTJsMjc3LjMzMzMzMyAyNzcuMzMzMzMzLTY0IDY0LTI3Ny4z\nMzMzMzMtMjc3LjMzMzMzM0wyMzQuNjY2NjY3IDg1My4zMzMzMzMgMTcwLjY2NjY2NyA3ODkuMzMz\nMzMzbDI3Ny4zMzMzMzMtMjc3LjMzMzMzM0wxNzAuNjY2NjY3IDIzNC42NjY2NjcgMjM0LjY2NjY2\nNyAxNzAuNjY2NjY3bDI3Ny4zMzMzMzMgMjc3LjMzMzMzM0w3ODkuMzMzMzMzIDE3MC42NjY2Njcg\nODUzLjMzMzMzMyAyMzQuNjY2NjY3IDU3NiA1MTJ6XCIgZmlsbD1cIiM0NDQ0NDRcIiBwLWlkPVwi\nMjMwN1wiPjxcL3BhdGg+PFwvc3ZnPlxuICAgICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAg\nICAgICAgICAke2RhdGEudXNlckZsb29yfealvOeahOWbnuWkjVxuICAgICAgICAgICAgICA8XC9k\naXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hl\nZXQtY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHkt\nZGlhbG9nLXNoZWV0LW1haW4tY29udGVudCB3aGl0ZXNldi1yZXBseS1kaWFsb2ctY29udGVudC1p\ndGVtXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlh\nbG9nLXVzZXItbGluZVwiIGRhdGEtcG9ydHJhaXQ9XCIke2RhdGFbXCJ1c2VyUG9ydHJhaXRcIl19\nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFs\nb2ctYXZhdGFyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtkYXRhW1widXNlckF2\nYXRhclwiXX0pO1wiPjxcL2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndo\naXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8\nZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItdXNlcm5hbWVcIj4ke2RhdGFb\nXCJ1c2VyU2hvd05hbWVcIl0gfHwgZGF0YVtcInVzZXJOYW1lXCJdfTxcL2Rpdj5cbiAgICAgICAg\nICAgICAgICAgICAgICAke2RhdGFbXCJ1c2VyRm9ydW1MZXZlbFwiXSAmJiBkYXRhW1widXNlckZv\ncnVtTGV2ZWxcIl0gPj0gMCAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdV90aWViYV9zaG93\nX2ZvcnVtX2xldmVsXCIpID8gYFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz\nPVwiZm9ydW0tbGV2ZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nPHNwYW4gY2xhc3M9XCJmb3J1bS1sZXZlbFwiIGRhdGEtbGV2ZWw9XCIke2RhdGFbXCJ1c2VyRm9y\ndW1MZXZlbFwiXX1cIj5Mdi4ke2RhdGFbXCJ1c2VyRm9ydW1MZXZlbFwiXX0gJHtkYXRhW1widXNl\nckZvcnVtTGV2ZWxOYW1lXCJdfTxcL3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxc\nL2Rpdj5gIDogXCJcIn1cbiAgICAgICAgICAgICAgICAgICAgPFwvZGl2PlxuICAgICAgICAgICAg\nICAgICAgPFwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndoaXRlc2V2LXJl\ncGx5LWRpYWxvZy11c2VyLWNvbW1lbnRcIj4ke2RhdGFbXCJ1c2VyQ29tbWVudFwiXX08XC9kaXY+\nXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXVz\nZXItZGVzYy1pbmZvXCIgc3R5bGU9XCJib3JkZXItYm90dG9tOiBub25lO1wiPlxuICAgICAgICAg\nICAgICAgICAgICAgIDxzcGFuIGRhdGEtZmxvb3ItaW5mbz1cIlwiPiR7ZGF0YVtcInVzZXJGbG9v\nclwiXX08XC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtdGltZT1cIlwi\nPiR7ZGF0YVtcInVzZXJDb21tZW50VGltZVwiXX08XC9zcGFuPlxuICAgICAgICAgICAgICAgICAg\nICAgIDxzcGFuIGRhdGEtaXA9XCJcIj4ke2RhdGFbXCJ1c2VySXBQb3NpdGlvblwiXX08XC9zcGFu\nPlxuICAgICAgICAgICAgICAgICAgPFwvZGl2PlxuICAgICAgICAgICAgICA8XC9kaXY+XG4gICAg\nICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQtbWFpbi1j\nb250ZW50LWJvdHRvbS1saW5lXCI+PFwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwi\nd2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LW90aGVyLWNvbnRlbnRcIj5cbiAgICAgICAgICAg\nICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LWNvbW1lbnQtbnVt\nXCI+JHtjdXJyZW50Q29tbWVudExpc3ROdW195p2h5Zue5aSNPFwvZGl2PlxuICAgICAgICAgICAg\nICA8XC9kaXY+XG4gICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgIDxcL2Rpdj5cbiAg\nICAgICAgICAgIGBcbiAgICAgICAgKVxuICAgICAgfSk7XG4gICAgICBkaWFsb2dbXCJkYXRhLXdo\naXRlc2V2XCJdID0gZGF0YTtcbiAgICAgIGxldCBkaWFsb2dUaXRsZUVsZW1lbnQgPSBkaWFsb2cu\ncXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LXRp\ndGxlXCJcbiAgICAgICk7XG4gICAgICBsZXQgZGlhbG9nQ29udGVudEVsZW1lbnQgPSBkaWFsb2cu\ncXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LWNv\nbnRlbnRcIlxuICAgICAgKTtcbiAgICAgIGxldCBkaWFsb2dPaHRlckNvbnRlbnRFbGVtZW50ID0g\nZGlhbG9nLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIFwiLndoaXRlc2V2LXJlcGx5LWRpYWxvZy1z\naGVldC1vdGhlci1jb250ZW50XCJcbiAgICAgICk7XG4gICAgICBkaWFsb2dPaHRlckNvbnRlbnRF\nbGVtZW50LmFwcGVuZENoaWxkKCRvaHRlckNvbW1lbnRGcmFnbWVudCk7XG4gICAgICBsZXQgaXND\nbG9zaW5nRGlhbG9nID0gZmFsc2U7XG4gICAgICBmdW5jdGlvbiBwb3BzdGF0ZUV2ZW50KGV2ZW50\nKSB7XG4gICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgIGlmIChpc0Ns\nb3NpbmdEaWFsb2cpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9n\nLnN1Y2Nlc3MoXCLop6blj5Fwb3BzdGF0ZeS6i+S7tlwiKTtcbiAgICAgICAgcmVtb3ZlUG9wU3Rh\ndGVFdmVudCgpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gc2V0UG9wU3RhdGVFdmVudCgpIHtc\nbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLnm5HlkKxwb3BzdGF0ZeS6i+S7tlwiKTtcbiAgICAgICAg\nd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCBcIlwiLCBcIiNcL3NlZUx6bFJlcGx5XCIpO1xu\nICAgICAgICBkb211dGlscy5vbih3aW5kb3csIFwicG9wc3RhdGVcIiwgcG9wc3RhdGVFdmVudCwg\ne1xuICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBh\nc3luYyBmdW5jdGlvbiByZW1vdmVQb3BTdGF0ZUV2ZW50KCkge1xuICAgICAgICBpc0Nsb3NpbmdE\naWFsb2cgPSB0cnVlO1xuICAgICAgICBsb2cuc3VjY2VzcyhcImxvY2F0aW9u5Zyw5Z2A5ZCO6YCA\n5bm25YWz6Zet6K+E6K665by556qXXCIpO1xuICAgICAgICBjbG9zZURpYWxvZ0J5VXJsQ2hhbmdl\nKCk7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgaWYgKGdsb2JhbFRoaXMubG9j\nYXRpb24uaGFzaC5lbmRzV2l0aChcInNlZUx6bFJlcGx5XCIpKSB7XG4gICAgICAgICAgICBsb2cu\naW5mbyhcIuWQjumAgO+8gVwiKTtcbiAgICAgICAgICAgIGdsb2JhbFRoaXMuaGlzdG9yeS5iYWNr\nKCk7XG4gICAgICAgICAgICBhd2FpdCB1dGlscy5zbGVlcCgxNTApO1xuICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAg\nbG9nLnN1Y2Nlc3MoXCLlgZzmraJwb3BzdGF0ZeS6i+S7tuebkeWQrFwiKTtcbiAgICAgICAgZG9t\ndXRpbHMub2ZmKHdpbmRvdywgXCJwb3BzdGF0ZVwiLCBwb3BzdGF0ZUV2ZW50LCB7IGNhcHR1cmU6\nIHRydWUgfSk7XG4gICAgICAgIGlzQ2xvc2luZ0RpYWxvZyA9IGZhbHNlO1xuICAgICAgfVxuICAg\nICAgZnVuY3Rpb24gY2xvc2VEaWFsb2coZXZlbnQpIHtcbiAgICAgICAgZGlhbG9nLnJlbW92ZUF0\ndHJpYnV0ZShcImRhdGEtb25cIik7XG4gICAgICAgIGRvbXV0aWxzLm9uKGRpYWxvZywgdXRpbHMu\nZ2V0VHJhbnNpdGlvbkVuZE5hbWVMaXN0KCksIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGRvbXV0\naWxzLm9mZihkaWFsb2csIHV0aWxzLmdldFRyYW5zaXRpb25FbmROYW1lTGlzdCgpKTtcbiAgICAg\nICAgICBsb2cuc3VjY2VzcyhcIuWFs+mXrealvOS4realvOWbnuWkjeW8ueeql19jbGlja1wiKTtc\nbiAgICAgICAgICBkaWFsb2cucmVtb3ZlKCk7XG4gICAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRW\nYWx1ZShcImJhaWR1X3RpZWJhX2x6bF9iYW5fZ2xvYmFsX2JhY2tcIikpIHtcbiAgICAgICAgICAg\nIHJlbW92ZVBvcFN0YXRlRXZlbnQoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAg\nfVxuICAgICAgZnVuY3Rpb24gY2xvc2VEaWFsb2dCeVVybENoYW5nZSgpIHtcbiAgICAgICAgZGlh\nbG9nLnJlbW92ZUF0dHJpYnV0ZShcImRhdGEtb25cIik7XG4gICAgICAgIGRvbXV0aWxzLm9uKGRp\nYWxvZywgdXRpbHMuZ2V0VHJhbnNpdGlvbkVuZE5hbWVMaXN0KCksIGZ1bmN0aW9uKCkge1xuICAg\nICAgICAgIGRvbXV0aWxzLm9mZihkaWFsb2csIHV0aWxzLmdldFRyYW5zaXRpb25FbmROYW1lTGlz\ndCgpKTtcbiAgICAgICAgICBsb2cuc3VjY2VzcyhcIuWFs+mXrealvOS4realvOWbnuWkjeW8ueeq\nl191cmxjaGFuZ2VcIik7XG4gICAgICAgICAgZGlhbG9nLnJlbW92ZSgpO1xuICAgICAgICB9KTtc\nbiAgICAgIH1cbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkaWFsb2cucXVlcnlTZWxlY3Rv\ncihcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ctY2xvc2VcIiksXG4gICAgICAgIFwiY2xpY2tcIixc\nbiAgICAgICAgY2xvc2VEaWFsb2dcbiAgICAgICk7XG4gICAgICBkb211dGlscy5vbihcbiAgICAg\nICAgZGlhbG9nLnF1ZXJ5U2VsZWN0b3IoXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLWJnXCIpLFxu\nICAgICAgICBcImNsaWNrXCIsXG4gICAgICAgIGNsb3NlRGlhbG9nXG4gICAgICApO1xuICAgICAg\nZG9tdXRpbHMub24oXG4gICAgICAgIGRpYWxvZyxcbiAgICAgICAgXCJjbGlja1wiLFxuICAgICAg\nICBcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ctYXZhdGFyXCIsXG4gICAgICAgIGZ1bmN0aW9uKGV2\nZW50KSB7XG4gICAgICAgICAgdmFyIF9hMywgX2I7XG4gICAgICAgICAgdXRpbHMucHJldmVudEV2\nZW50KGV2ZW50KTtcbiAgICAgICAgICB3aW5kb3cub3BlbihcbiAgICAgICAgICAgIFwiXC9ob21l\nXC9tYWluP2lkPVwiICsgKChfYiA9IChfYTMgPSBldmVudC50YXJnZXQpID09IG51bGwgPyB2b2lk\nIDAgOiBfYTMuY2xvc2VzdChcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1saW5lXCIpKSA9\nPSBudWxsID8gdm9pZCAwIDogX2IuZ2V0QXR0cmlidXRlKFwiZGF0YS1wb3J0cmFpdFwiKSksXG4g\nICAgICAgICAgICBcIl9ibGFua1wiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtc\nbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkaWFsb2csXG4gICAgICAgIFwiY2xpY2tcIixc\nbiAgICAgICAgXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItaW5mb1wiLFxuICAgICAgICBm\ndW5jdGlvbihldmVudCkge1xuICAgICAgICAgIHZhciBfYTMsIF9iO1xuICAgICAgICAgIHV0aWxz\nLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgICAgd2luZG93Lm9wZW4oXG4gICAgICAgICAg\nICBcIlwvaG9tZVwvbWFpbj9pZD1cIiArICgoX2IgPSAoX2EzID0gZXZlbnQudGFyZ2V0KSA9PSBu\ndWxsID8gdm9pZCAwIDogX2EzLmNsb3Nlc3QoXCIud2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXIt\nbGluZVwiKSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLmdldEF0dHJpYnV0ZShcImRhdGEtcG9ydHJh\naXRcIikpLFxuICAgICAgICAgICAgXCJfYmxhbmtcIlxuICAgICAgICAgICk7XG4gICAgICAgIH1c\nbiAgICAgICk7XG4gICAgICBkaWFsb2cucXVlcnlTZWxlY3RvckFsbChcIi53aGl0ZXNldi1yZXBs\neS1kaWFsb2ctdXNlci1jb21tZW50IGFbcG9ydHJhaXRdXCIpLmZvckVhY2goKGl0ZW0pID0+IHtc\nbiAgICAgICAgaXRlbS5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgXCJocmVmXCIsXG4gICAgICAg\nICAgXCJcL2hvbWVcL21haW4\/aWQ9XCIgKyBpdGVtLmdldEF0dHJpYnV0ZShcInBvcnRyYWl0XCIp\nXG4gICAgICAgICk7XG4gICAgICAgIGl0ZW0ucmVtb3ZlQXR0cmlidXRlKFwib25jbGlja1wiKTtc\nbiAgICAgICAgaXRlbS5yZW1vdmVBdHRyaWJ1dGUoXCJvbm1vdXNlb3ZlclwiKTtcbiAgICAgICAg\naXRlbS5yZW1vdmVBdHRyaWJ1dGUoXCJvbm1vdXNlb3V0XCIpO1xuICAgICAgfSk7XG4gICAgICBj\nb25zdCBsemxMb2FkaW5nVmlldyA9IG5ldyBMb2FkaW5nVmlldyhmYWxzZSk7XG4gICAgICBsZXQg\nbHpsUGFnZSA9IDI7XG4gICAgICBhc3luYyBmdW5jdGlvbiBsemxSZXBseUNvbW1lbnRTY3JvbGxF\ndmVudChldmVudCkge1xuICAgICAgICBsZXQgc2Nyb2xsRWxlbWVudCA9IGV2ZW50LnRhcmdldDtc\nbiAgICAgICAgaWYgKHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wICsgc2Nyb2xsRWxlbWVudC5jbGll\nbnRIZWlnaHQgKyA1MCA8IHNjcm9sbEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KSB7XG4gICAgICAgICAg\ncmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxvZy5zdWNjZXNzKFwi5Yqg6L295pu05aSa5Zue\n5aSNXCIpO1xuICAgICAgICBsemxMb2FkaW5nVmlldy5zaG93KCk7XG4gICAgICAgIGxldCByZXBs\neUluZm8gPSBhd2FpdCBUaWViYUNvbW1lbnQuZ2V0THpsQ29tbWVudFJlcGx5KFxuICAgICAgICAg\nIFRpZWJhQ29tbWVudC5wYXJhbV90aWQsXG4gICAgICAgICAgZGF0YVtcInVzZXJQb3N0SWRcIl0u\ndG9TdHJpbmcoKSxcbiAgICAgICAgICBsemxQYWdlXG4gICAgICAgICk7XG4gICAgICAgIGxvZy5z\ndWNjZXNzKFtcIuWKoOi9veabtOWkmuWbnuWkjeeahOaVsOaNrlwiLCByZXBseUluZm9dKTtcbiAg\nICAgICAgaWYgKHJlcGx5SW5mbyA9PT0gXCLmmoLml6Dmm7TlpJrlm57lpI1cIikge1xuICAgICAg\nICAgIGxvZy5lcnJvcihcIuaaguaXoOabtOWkmuWbnuWkjVwiKTtcbiAgICAgICAgICBsemxMb2Fk\naW5nVmlldy5zZXRUZXh0KFwi5pqC5peg5pu05aSa5Zue5aSNXCIpO1xuICAgICAgICAgIGRvbXV0\naWxzLm9mZihcbiAgICAgICAgICAgIGRpYWxvZy5xdWVyeVNlbGVjdG9yKFwiLndoaXRlc2V2LXJl\ncGx5LWRpYWxvZy1zaGVldC1jb250ZW50XCIpLFxuICAgICAgICAgICAgXCJzY3JvbGxcIlxuICAg\nICAgICAgICk7XG4gICAgICAgICAgbG9nLmVycm9yKFwi5Y+W5raI57uR5a6a5qW85Lit5qW8c2Ny\nb2xs55uR5ZCs5LqL5Lu244CQ5LiL5LiA6aG144CRXCIpO1xuICAgICAgICAgIHJldHVybjtcbiAg\nICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVwbHlJbmZvID09PSBcInN0cmluZ1wiKSB7XG4gICAg\nICAgICAgbHpsTG9hZGluZ1ZpZXcuc2V0VGV4dChyZXBseUluZm8pO1xuICAgICAgICAgIHJldHVy\nbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY29tbWVudEhUTUwgPSBcIlwiO1xuICAgICAgICBy\nZXBseUluZm9bXCJkYXRhXCJdLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBsZXQgaXNM\nYW5kbG9yZCA9IGZhbHNlO1xuICAgICAgICAgIGlmIChsYW5kbG9yZEluZm8pIHtcbiAgICAgICAg\nICAgIGlmIChsYW5kbG9yZEluZm8uaWQgPT09IGl0ZW1bXCJ1c2VyX2lkXCJdKSB7XG4gICAgICAg\nICAgICAgIGlzTGFuZGxvcmQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh1dGlscy5p\nc05vdE51bGwoaXRlbVtcInVzZXJQb3J0cmFpdFwiXSkgJiYgbGFuZGxvcmRJbmZvLnBvcnRyYWl0\nLmluY2x1ZGVzKGl0ZW1bXCJ1c2VyUG9ydHJhaXRcIl0pKSB7XG4gICAgICAgICAgICAgIGlzTGFu\nZGxvcmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb21t\nZW50SFRNTCArPSBcLypodG1sKlwvXG4gICAgICAgICAgYFxuICAgICAgICAgICAgICA8ZGl2IGNs\nYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXNoZWV0LW90aGVyLWNvbnRlbnQtaXRlbVwiIGRh\ndGEtbGF6eS1sb2FkLWxldmVsPVwidHJ1ZVwiIGRhdGEtdXNlcm5hbWU9XCIke2l0ZW1bXCJ1c2Vy\nTmFtZVwiXX1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHkt\nZGlhbG9nLXVzZXItbGluZVwiIGRhdGEtcG9ydHJhaXQ9XCIke2l0ZW1bXCJ1c2VyUG9ydHJhaXRc\nIl19XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlh\nbG9nLWF2YXRhclwiIHN0eWxlPVwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7aXRlbVtcInVzZXJB\ndmF0YXJcIl19KTtcIj48XC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2hp\ndGVzZXYtcmVwbHktZGlhbG9nLXVzZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2\nIGNsYXNzPVwid2hpdGVzZXYtcmVwbHktZGlhbG9nLXVzZXItdXNlcm5hbWVcIj5cbiAgICAgICAg\nICAgICAgICAgICAgJHtpdGVtW1widXNlclNob3dOYW1lXCJdfVxuICAgICAgICAgICAgICAgICAg\nICAke2lzTGFuZGxvcmQgPyBgPHN2ZyBkYXRhLXYtMTg4YzBlODQ9XCJcIiBjbGFzcz1cImxhbmRs\nb3JkXCI+PHVzZSB4bGluazpocmVmPVwiI2ljb25fbGFuZGxvcmRcIj48XC91c2U+PFwvc3ZnPmAg\nOiBcIlwifVxuICAgICAgICAgICAgICAgICAgICA8XC9kaXY+XG4gICAgICAgICAgICAgICAgICA8\nXC9kaXY+XG4gICAgICAgICAgICAgICAgPFwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xh\nc3M9XCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1jb21tZW50XCI+JHtpdGVtW1widXNlclJl\ncGx5Q29udGVudFwiXX08XC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndoaXRl\nc2V2LXJlcGx5LWRpYWxvZy11c2VyLWRlc2MtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8\nc3BhbiBkYXRhLXRpbWU9XCJcIj4ke2l0ZW1bXCJ1c2VyUmVwbHlUaW1lXCJdfTxcL3NwYW4+XG4g\nICAgICAgICAgICAgICAgICAgIDxzcGFuIGRhdGEtaXA9XCJcIj48XC9zcGFuPlxuICAgICAgICAg\nICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgICAgPFwvZGl2PlxuICAgICAgICAgICAgICBgO1xu\nICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNjcm9sbEVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5c\nIiArIGxvYWRpbmdWaWV3LmNvbmZpZy5jbGFzc05hbWUpKSB7XG4gICAgICAgICAgZG9tdXRpbHMu\nYmVmb3JlKFxuICAgICAgICAgICAgc2Nyb2xsRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAg\nICAgICAgICBcIi5cIiArIGxvYWRpbmdWaWV3LmNvbmZpZy5jbGFzc05hbWVcbiAgICAgICAgICAg\nICksXG4gICAgICAgICAgICBjb21tZW50SFRNTFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgZG9tdXRpbHMuYXBwZW5kKFxuICAgICAgICAgICAgc2Nyb2xsRWxlbWVu\ndC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICBcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ct\nc2hlZXQtb3RoZXItY29udGVudFwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY29tbWVu\ndEhUTUxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChQb3BzUGFuZWwuZ2V0\nVmFsdWUoXCJiYWlkdV90aWViYV9zaG93X2ZvcnVtX2xldmVsXCIpKSB7XG4gICAgICAgICAgZG9j\ndW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIFwiLndoaXRlc2V2LXJlcGx5LWRp\nYWxvZy1zaGVldC1vdGhlci1jb250ZW50LWl0ZW1bZGF0YS1sYXp5LWxvYWQtbGV2ZWxdXCJcbiAg\nICAgICAgICApLmZvckVhY2goYXN5bmMgKGVsZSkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hMztc\nbiAgICAgICAgICAgIGlmICghZWxlLmhhc0F0dHJpYnV0ZShcImRhdGEtdXNlcm5hbWVcIikpIHtc\nbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHVz\nZXJJbmZvID0gYXdhaXQgVGllQmFBcGkuZ2V0VXNlckhvbWVJbmZvKHtcbiAgICAgICAgICAgICAg\ndW46IGVsZS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXVzZXJuYW1lXCIpXG4gICAgICAgICAgICB9KTtc\nbiAgICAgICAgICAgIGlmICghdXNlckluZm8pIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGdyYWRlID0gKF9hMyA9IHVzZXJJbmZvID09IG51\nbGwgPyB2b2lkIDAgOiB1c2VySW5mb1tcImhvbm9yXCJdKSA9PSBudWxsID8gdm9pZCAwIDogX2Ez\nW1wiZ3JhZGVcIl07XG4gICAgICAgICAgICBlbGUucmVtb3ZlQXR0cmlidXRlKFwiZGF0YS1sYXp5\nLWxvYWQtbGV2ZWxcIik7XG4gICAgICAgICAgICBpZiAoIWdyYWRlKSB7XG4gICAgICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGdyYWRlKS5m\nb3JFYWNoKChsaWtlRm9ydW1MZXZlbCkgPT4ge1xuICAgICAgICAgICAgICBsZXQgbGlrZUZvcnVt\nSW5mbyA9IGdyYWRlW2xpa2VGb3J1bUxldmVsXTtcbiAgICAgICAgICAgICAgaWYgKGxpa2VGb3J1\nbUluZm9bXCJmb3J1bV9saXN0XCJdICYmIEFycmF5LmlzQXJyYXkobGlrZUZvcnVtSW5mb1tcImZv\ncnVtX2xpc3RcIl0pICYmIGxpa2VGb3J1bUluZm9bXCJmb3J1bV9saXN0XCJdLmluY2x1ZGVzKFxu\nICAgICAgICAgICAgICAgIFRpZWJhRGF0YS5mb3J1bU5hbWVcbiAgICAgICAgICAgICAgKSkge1xu\nICAgICAgICAgICAgICAgIGxldCAkdXNlckluZm8gPSBlbGUucXVlcnlTZWxlY3RvcihcbiAgICAg\nICAgICAgICAgICAgIFwiLndoaXRlc2V2LXJlcGx5LWRpYWxvZy11c2VyLWluZm9cIlxuICAgICAg\nICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgZG9tdXRpbHMuYXBwZW5kKFxuICAgICAgICAg\nICAgICAgICAgJHVzZXJJbmZvLFxuICAgICAgICAgICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAg\nICAgICAgICAgICAgYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBj\nbGFzcz1cImZvcnVtLWxldmVsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ydW0tbGV2ZWxcIiBkYXRhLWxldmVsPVwi\nJHtsaWtlRm9ydW1MZXZlbH1cIj5Mdi4ke2xpa2VGb3J1bUxldmVsfTxcL3NwYW4+XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC9kaXY+YFxuICAgICAgICAgICAgICAgICk7\nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAg\nICB9XG4gICAgICAgIHNjcm9sbEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi53aGl0ZXNldi1y\nZXBseS1kaWFsb2ctdXNlci1jb21tZW50IGFbcG9ydHJhaXRdXCIpLmZvckVhY2goKGl0ZW0pID0+\nIHtcbiAgICAgICAgICBpdGVtLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgIFwiaHJlZlwiLFxu\nICAgICAgICAgICAgXCJcL2hvbWVcL21haW4\/aWQ9XCIgKyBpdGVtLmdldEF0dHJpYnV0ZShcInBv\ncnRyYWl0XCIpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpdGVtLnJlbW92ZUF0dHJpYnV0ZShc\nIm9uY2xpY2tcIik7XG4gICAgICAgICAgaXRlbS5yZW1vdmVBdHRyaWJ1dGUoXCJvbm1vdXNlb3Zl\nclwiKTtcbiAgICAgICAgICBpdGVtLnJlbW92ZUF0dHJpYnV0ZShcIm9ubW91c2VvdXRcIik7XG4g\nICAgICAgIH0pO1xuICAgICAgICBpZiAoIXJlcGx5SW5mb1tcIm5leHRQYWdlXCJdKSB7XG4gICAg\nICAgICAgbG9nLmVycm9yKFwi5pqC5peg5pu05aSa5Zue5aSNXCIpO1xuICAgICAgICAgIGx6bExv\nYWRpbmdWaWV3LnNldFRleHQoXCLmmoLml6Dmm7TlpJrlm57lpI1cIik7XG4gICAgICAgICAgZG9t\ndXRpbHMub2ZmKFxuICAgICAgICAgICAgZGlhbG9nLnF1ZXJ5U2VsZWN0b3IoXCIud2hpdGVzZXYt\ncmVwbHktZGlhbG9nLXNoZWV0LWNvbnRlbnRcIiksXG4gICAgICAgICAgICBcInNjcm9sbFwiXG4g\nICAgICAgICAgKTtcbiAgICAgICAgICBsb2cuZXJyb3IoXCLlj5bmtojnu5HlrprmpbzkuK3mpbxz\nY3JvbGznm5HlkKzkuovku7bjgJDkuIvkuIDpobXjgJFcIik7XG4gICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICB9XG4gICAgICAgIGx6bFBhZ2UgPSByZXBseUluZm9bXCJuZXh0UGFnZVwiXTtcbiAg\nICAgIH1cbiAgICAgIGxldCBsemxTY3JvbGxFdmVudExvY2sgPSBuZXcgdXRpbHMuTG9ja0Z1bmN0\naW9uKFxuICAgICAgICBsemxSZXBseUNvbW1lbnRTY3JvbGxFdmVudCxcbiAgICAgICAgdGhpc1xu\nICAgICAgKTtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkaWFsb2cucXVlcnlTZWxlY3Rv\ncihcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQtY29udGVudFwiKSxcbiAgICAgICAgXCJz\nY3JvbGxcIixcbiAgICAgICAgbHpsU2Nyb2xsRXZlbnRMb2NrLnJ1blxuICAgICAgKTtcbiAgICAg\nIGxvZy5zdWNjZXNzKFwi57uR5a6a5qW85Lit5qW8c2Nyb2xs55uR5ZCs5LqL5Lu244CQ5LiL5LiA\n6aG144CRXCIpO1xuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaWFsb2cpO1xuICAg\nICAgZG9tdXRpbHMuYXBwZW5kKFxuICAgICAgICBkaWFsb2cucXVlcnlTZWxlY3RvcihcbiAgICAg\nICAgICBcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQtb3RoZXItY29udGVudFwiXG4gICAg\nICAgICksXG4gICAgICAgIGx6bExvYWRpbmdWaWV3LmdldExvYWRpbmdWaWV3RWxlbWVudCgpXG4g\nICAgICApO1xuICAgICAgbHpsTG9hZGluZ1ZpZXcuZ2V0TG9hZGluZ1ZpZXdFbGVtZW50KCkuc3R5\nbGUuc2V0UHJvcGVydHkoXCJjb2xvclwiLCBcIiNjNWM1YzVcIik7XG4gICAgICBsemxMb2FkaW5n\nVmlldy5nZXRMb2FkaW5nVmlld0VsZW1lbnQoKS5zdHlsZS5zZXRQcm9wZXJ0eShcImZvbnQtc2l6\nZVwiLCBcIjE0cHhcIik7XG4gICAgICBsemxMb2FkaW5nVmlldy5zZXRUZXh0KFwi5Yqg6L295pu0\n5aSaXCIpO1xuICAgICAgbHpsTG9hZGluZ1ZpZXcuaGlkZSgpO1xuICAgICAgc2V0VGltZW91dCgo\nKSA9PiB7XG4gICAgICAgIGRpYWxvZy5zZXRBdHRyaWJ1dGUoXCJkYXRhLW9uXCIsIFwidHJ1ZVwi\nKTtcbiAgICAgICAgZGlhbG9nQ29udGVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAg\nICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICBgY2FsYygxMDAlIC0gJHtkb211dGlscy5oZWln\naHQoZGlhbG9nVGl0bGVFbGVtZW50KX1weClgXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudnVl\nUm9vdFZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIFwiLm1haW4tcGFn\nZS13cmFwXCJcbiAgICAgICAgKTtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoW1wi5oiQ5Yqf6I635Y+W\nVnVl5qC55YWD57SgXCIsIFZ1ZVV0aWxzLmdldFZ1ZSh0aGlzLnZ1ZVJvb3RWaWV3KV0pO1xuICAg\nICAgICBpZiAoUG9wc1BhbmVsLmdldFZhbHVlKFwiYmFpZHVfdGllYmFfbHpsX2Jhbl9nbG9iYWxf\nYmFja1wiKSkge1xuICAgICAgICAgIHNldFBvcFN0YXRlRXZlbnQoKTtcbiAgICAgICAgfVxuICAg\nICAgfSwgMCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6I635Y+W5qW85Lit5qW86K+E6K66\nXG4gICAgICogQHBhcmFtIHRpZCDluJblrZBpZFxuICAgICAqIEBwYXJhbSBwaWQg5Zue5aSN5Li7\n5L2TaWRcbiAgICAgKiBAcGFyYW0gcG4g5b2T5YmN6aG1XG4gICAgICpcL1xuICAgIGFzeW5jIGdl\ndEx6bENvbW1lbnRSZXBseSh0aWQgPSBcIlwiLCBwaWQgPSBcIlwiLCBwbiA9IDEpIHtcbiAgICAg\nIGxldCBnZXRSZXNwID0gYXdhaXQgaHR0cHguZ2V0KHtcbiAgICAgICAgdXJsOiBUaWViYVVybEFw\naS5nZXRQb3N0KFxuICAgICAgICAgIGBjb21tZW50P3RpZD0ke3RpZH0mcGlkPSR7cGlkfSZwbj0k\ne3BufSZ0PSR7KFwvKiBAX19QVVJFX18gKlwvIG5ldyBEYXRlKCkpLmdldFRpbWUoKX0ke1RpZWJh\nQ29tbWVudC5leHRyYVNlYXJjaFNpZ25QYXJhbXN9YFxuICAgICAgICApLFxuICAgICAgICBoZWFk\nZXJzOiB7XG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6IHV0aWxzLmdldFJhbmRvbVBDVUEoKSxc\nbiAgICAgICAgICBIb3N0OiBcInRpZWJhLmJhaWR1LmNvbVwiLFxuICAgICAgICAgIFJlZmVyZXI6\nIHdpbmRvdy5sb2NhdGlvbi5ocmVmXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKCFn\nZXRSZXNwLnN0YXR1cykge1xuICAgICAgICBsb2cuZXJyb3IoZ2V0UmVzcCk7XG4gICAgICAgIHJl\ndHVybiBcIuivt+axguWksei0pVwiO1xuICAgICAgfVxuICAgICAgbGV0IHJlc3BEYXRhID0gZ2V0\nUmVzcC5kYXRhO1xuICAgICAgbG9nLnN1Y2Nlc3MocmVzcERhdGEpO1xuICAgICAgbGV0IHBhcnNl\nRE9NID0gZG9tdXRpbHMucGFyc2VIVE1MKHJlc3BEYXRhLnJlc3BvbnNlVGV4dCwgZmFsc2UsIHRy\ndWUpO1xuICAgICAgbGV0IGx6bFBvc3RMaXN0ID0gQXJyYXkuZnJvbShcbiAgICAgICAgcGFyc2VE\nT00ucXVlcnlTZWxlY3RvckFsbChcImxpLmx6bF9zaW5nbGVfcG9zdFwiKVxuICAgICAgKTtcbiAg\nICAgIGlmICghbHpsUG9zdExpc3QubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBcIuaaguaXoOab\ntOWkmuWbnuWkjVwiO1xuICAgICAgfVxuICAgICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgICAgZGF0\nYTogW11cbiAgICAgIH07XG4gICAgICBsemxQb3N0TGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4g\nICAgICAgIHZhciBfYTMsIF9iO1xuICAgICAgICBsZXQgZGF0YUZpZWxkSlNPTiA9IHV0aWxzLnRv\nSlNPTihpdGVtLmdldEF0dHJpYnV0ZShcImRhdGEtZmllbGRcIikpO1xuICAgICAgICBsZXQgdXNl\nck5hbWUgPSBkYXRhRmllbGRKU09OW1widXNlcl9uYW1lXCJdO1xuICAgICAgICBsZXQgdXNlclNo\nb3dOYW1lID0gZGF0YUZpZWxkSlNPTltcInNob3duYW1lXCJdO1xuICAgICAgICBsZXQgdXNlclBv\nc3RJZCA9IGRhdGFGaWVsZEpTT05bXCJzcGlkXCJdO1xuICAgICAgICBsZXQgdXNlclBvcnRyYWl0\nID0gZGF0YUZpZWxkSlNPTltcInBvcnRyYWl0XCJdO1xuICAgICAgICBsZXQgdXNlckhvbWVVcmwg\nPSAoX2EzID0gaXRlbS5xdWVyeVNlbGVjdG9yKFwiYVtkYXRhLWZpZWxkXVwiKSkgPT0gbnVsbCA\/\nIHZvaWQgMCA6IF9hMy5ocmVmO1xuICAgICAgICBsZXQgdXNlckF2YXRhciA9IChfYiA9IGl0ZW0u\ncXVlcnlTZWxlY3RvcihcImFbZGF0YS1maWVsZF0gaW1nXCIpKSA9PSBudWxsID8gdm9pZCAwIDog\nX2Iuc3JjO1xuICAgICAgICBsZXQgdXNlclJlcGx5Q29udGVudCA9IGl0ZW0ucXVlcnlTZWxlY3Rv\ncihcInNwYW4ubHpsX2NvbnRlbnRfbWFpblwiKS5pbm5lckhUTUw7XG4gICAgICAgIGxldCB1c2Vy\nUmVwbHlUaW1lU3RyID0gaXRlbS5xdWVyeVNlbGVjdG9yKFwic3Bhbi5semxfdGltZVwiKS5pbm5l\nckhUTUw7XG4gICAgICAgIGxldCB1c2VyUmVwbHlUaW1lTnVtYmVyID0gdXRpbHMuZm9ybWF0VG9U\naW1lU3RhbXAodXNlclJlcGx5VGltZVN0cik7XG4gICAgICAgIGxldCB1c2VyUmVwbHlUaW1lID0g\ndXRpbHMuZ2V0RGF5c0RpZmZlcmVuY2UoXG4gICAgICAgICAgKFwvKiBAX19QVVJFX18gKlwvIG5l\ndyBEYXRlKCkpLmdldFRpbWUoKSxcbiAgICAgICAgICB1c2VyUmVwbHlUaW1lTnVtYmVyLFxuICAg\nICAgICAgIFwiYXV0b1wiXG4gICAgICAgICkgKyBcIuWJjVwiO1xuICAgICAgICBpZiAodXRpbHMu\naXNOdWxsKHVzZXJOYW1lKSkge1xuICAgICAgICAgIHVzZXJOYW1lID0gdXNlclNob3dOYW1lO1xu\nICAgICAgICB9XG4gICAgICAgIHJlc3VsdFtcImRhdGFcIl0ucHVzaCh7XG4gICAgICAgICAgdXNl\nck5hbWUsXG4gICAgICAgICAgdXNlclNob3dOYW1lLFxuICAgICAgICAgIHVzZXJQb3N0SWQsXG4g\nICAgICAgICAgdXNlclBvcnRyYWl0LFxuICAgICAgICAgIHVzZXJIb21lVXJsLFxuICAgICAgICAg\nIHVzZXJBdmF0YXIsXG4gICAgICAgICAgdXNlclJlcGx5Q29udGVudCxcbiAgICAgICAgICB1c2Vy\nUmVwbHlUaW1lXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBwYXJzZURPTS5xdWVyeVNl\nbGVjdG9yQWxsKFwicC5qX3BhZ2VyIGFcIikuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICB2\nYXIgX2EzLCBfYjtcbiAgICAgICAgaWYgKCgoX2EzID0gaXRlbSA9PSBudWxsID8gdm9pZCAwIDog\naXRlbS50ZXh0Q29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy50cmltKCkpID09PSBcIuS4\ni+S4gOmhtVwiKSB7XG4gICAgICAgICAgcmVzdWx0W1wibmV4dFBhZ2VcIl0gPSBwYXJzZUludChc\nbiAgICAgICAgICAgIChfYiA9IGl0ZW0uZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSkgPT0gbnVsbCA\/\nIHZvaWQgMCA6IF9iLnJlcGxhY2UoXCIjXCIsIFwiXCIpXG4gICAgICAgICAgKTtcbiAgICAgICAg\nfVxuICAgICAgfSk7XG4gICAgICBpZiAoIXJlc3VsdFtcImRhdGFcIl0ubGVuZ3RoKSB7XG4gICAg\nICAgIHJldHVybiBcIuino+aekOWbnuWkjeWksei0pVwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAg\nICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrfl\nj5bnrKxYWOmhteeahOivhOiuuu+8iOS4jeWMheaLrOalvOS4realvOivhOiuuu+8iVxuICAgICAq\nIEBwYXJhbSB1cmxcbiAgICAgKlwvXG4gICAgYXN5bmMgZ2V0UGFnZUNvbW1lbnQodXJsKSB7XG4g\nICAgICBsZXQgZ2V0RGV0YWlscyA9IHtcbiAgICAgICAgdXJsLFxuICAgICAgICBoZWFkZXJzOiB7\nXG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6IHV0aWxzLmdldFJhbmRvbVBDVUEoKSxcbiAgICAg\nICAgICBSZWZlcmVyOiBcInRpZWJhLmJhaWR1LmNvbVwiXG4gICAgICAgIH0sXG4gICAgICAgIGFs\nbG93SW50ZXJjZXB0Q29uZmlnOiBmYWxzZVxuICAgICAgfTtcbiAgICAgIGxldCBnZXRSZXNwID0g\nYXdhaXQgaHR0cHguZ2V0KGdldERldGFpbHMpO1xuICAgICAgbGV0IHJlc3BEYXRhID0gZ2V0UmVz\ncC5kYXRhO1xuICAgICAgbG9nLnN1Y2Nlc3MoW1wi6I635Y+W6K+E6K66XCIsIGdldFJlc3BdKTtc\nbiAgICAgIGlmIChnZXRSZXNwLnN0YXR1cykge1xuICAgICAgICBsZXQgcGFnZUNvbW1lbnRIVE1M\nRWxlbWVudCA9IGRvbXV0aWxzLnBhcnNlSFRNTChcbiAgICAgICAgICByZXNwRGF0YS5yZXNwb25z\nZVRleHQsXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAg\nICAgIGlmIChwYWdlQ29tbWVudEhUTUxFbGVtZW50LnRpdGxlID09PSBcIueZvuW6puWuieWFqOmq\njOivgVwiIHx8IHJlc3BEYXRhLmZpbmFsVXJsLnN0YXJ0c1dpdGgoXCJodHRwczpcL1wvd2FwcGFz\ncy5iYWlkdS5jb21cIikpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCLop6blj5Hnmb7luqblronl\nhajpqozor4Eg8J+Rh1wiICsgcmVzcERhdGEuZmluYWxVcmwpO1xuICAgICAgICAgIGxvZy5lcnJv\ncihyZXNwRGF0YSk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZh\nbHNlLFxuICAgICAgICAgICAgbXNnOiBcIuinpuWPkeeZvuW6puWuieWFqOmqjOivgVwiLFxuICAg\nICAgICAgICAgZGF0YTogcmVzcERhdGEuZmluYWxVcmxcbiAgICAgICAgICB9O1xuICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxu\nICAgICAgICAgICAgbXNnOiBcIuiOt+WPluaIkOWKn1wiLFxuICAgICAgICAgICAgZGF0YTogcGFn\nZUNvbW1lbnRIVE1MRWxlbWVudFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxz\nZSBpZiAoZ2V0UmVzcC50eXBlID09PSBcIm9uZXJyb3JcIikge1xuICAgICAgICBpZiAodHlwZW9m\nIHJlc3BEYXRhLmVycm9yID09PSBcInN0cmluZ1wiICYmIHJlc3BEYXRhLmVycm9yLm1hdGNoKFwi\nd2FwcGFzcy5iYWlkdS5jb21cIikpIHtcbiAgICAgICAgICBsZXQgdXJsMiA9IHJlc3BEYXRhLmVy\ncm9yLm1hdGNoKFwvXCIoLio\/KVwiXC8pWzFdO1xuICAgICAgICAgIGxvZy5lcnJvcihcIuinpuWP\nkeeZvuW6puagoemqjDogXCIgKyB1cmwyKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAg\nICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBtc2c6IFwi6Kem5Y+R55m+5bqm5a6J5YWo\n6aqM6K+BXCIsXG4gICAgICAgICAgICBkYXRhOiB1cmwyXG4gICAgICAgICAgfTtcbiAgICAgICAg\nfSBlbHNlIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCLojrflj5bor4TorrrmlbDmja7lpLHotKUg\n8J+Rh1wiKTtcbiAgICAgICAgICBsb2cuZXJyb3IocmVzcERhdGEpO1xuICAgICAgICAgIHJldHVy\nbiB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIG1zZzogXCLojrfl\nj5bor4TorrrmlbDmja7lpLHotKVcIixcbiAgICAgICAgICAgIGRhdGE6IG51bGxcbiAgICAgICAg\nICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNz\nOiBmYWxzZSxcbiAgICAgICAgbXNnOiBcIuacquefpeeKtuaAgVwiLFxuICAgICAgICBkYXRhOiBu\ndWxsXG4gICAgICB9O1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WPluesrFhY6aG155qE\n5omA5pyJ6K+E6K66XG4gICAgICogQHBhcmFtIHVybFxuICAgICAqXC9cbiAgICBhc3luYyBnZXRQ\nYWdlQ29tbWVudExpc3QodXJsKSB7XG4gICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4Lmdl\ndCh7XG4gICAgICAgIHVybCxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBcImpzb25cIixcbiAgICAg\nICAgaGVhZGVyczoge1xuICAgICAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvblwvanNvbiwgdGV4\ndFwvamF2YXNjcmlwdCwgKlwvKjsgcT0wLjAxXCIsXG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6\nIHV0aWxzLmdldFJhbmRvbVBDVUEoKSxcbiAgICAgICAgICBSZWZlcmVyOiBcInRpZWJhLmJhaWR1\nLmNvbVwiXG4gICAgICAgIH0sXG4gICAgICAgIGFsbG93SW50ZXJjZXB0Q29uZmlnOiBmYWxzZVxu\nICAgICAgfSk7XG4gICAgICBsb2cuaW5mbyhbXCLojrflj5bmpbzkuK3mpbzor4TorrpcIiwgZ2V0\nUmVzcF0pO1xuICAgICAgbGV0IHJlc3BEYXRhID0gZ2V0UmVzcC5kYXRhO1xuICAgICAgbGV0IGRh\ndGEgPSB1dGlscy50b0pTT04ocmVzcERhdGEucmVzcG9uc2VUZXh0KTtcbiAgICAgIGlmIChnZXRS\nZXNwLnN0YXR1cyAmJiBkYXRhW1wiZXJybm9cIl0gPT09IDApIHtcbiAgICAgICAgbG9nLnN1Y2Nl\nc3MoW1wi5biW5a2Q6K+E6K665L+h5oGvSlNPTlwiLCBkYXRhXSk7XG4gICAgICAgIHJldHVybiB7\nXG4gICAgICAgICAgY29tbWVudExpc3Q6IGRhdGFbXCJkYXRhXCJdW1wiY29tbWVudF9saXN0XCJd\nLFxuICAgICAgICAgIHVzZXJMaXN0OiBkYXRhW1wiZGF0YVwiXVtcInVzZXJfbGlzdFwiXVxuICAg\nICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6I635Y+W5qW85Lit\n5qW86K+E6K665pWw5o2u5aSx6LSlIPCfkYdcIik7XG4gICAgICAgIGxvZy5lcnJvcihnZXRSZXNw\nKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmj5LlhaXliqDovb3kuK3nmoRo\ndG1sXG4gICAgICpcL1xuICAgIGluc2VydExvYWRpbmdIVE1MKCkge1xuICAgICAgaWYgKCFsb2Fk\naW5nVmlldy5pc0V4aXN0cygpKSB7XG4gICAgICAgIGxvZy5pbmZvKFwi5o+S5YWlbG9hZGluZ1wi\nKTtcbiAgICAgICAgbG9hZGluZ1ZpZXcuaW5pdExvYWRpbmdWaWV3KCk7XG4gICAgICAgIGxvYWRp\nbmdWaWV3LmhpZGUoKTtcbiAgICAgICAgbGV0ICRtYWluUGFnZVdyYXAgPSBkb2N1bWVudC5xdWVy\neVNlbGVjdG9yKFwiLm1haW4tcGFnZS13cmFwXCIpO1xuICAgICAgICBpZiAoJG1haW5QYWdlV3Jh\ncCkge1xuICAgICAgICAgICRtYWluUGFnZVdyYXAuYXBwZW5kQ2hpbGQobG9hZGluZ1ZpZXcuZ2V0\nTG9hZGluZ1ZpZXdFbGVtZW50KCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5l\ncnJvcihcIuWFg+e0oC5tYWluLXBhZ2Utd3JhcOS4jeWtmOWcqO+8jOaPkuWFpWxvYWRpbmflpLHo\ntKVcIik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmj5Ll\nhaXlj6rnnIvmpbzkuLvnmoTmjInpkq5cbiAgICAgKlwvXG4gICAgaW5zZXJ0T25seUxaKCkge1xu\nICAgICAgbGV0IHJlcGx5UmlnaHRDb250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwi\nLnJlcGx5LXJpZ2h0LWNvbnRhaW5lclwiKTtcbiAgICAgIGlmICghcmVwbHlSaWdodENvbnRhaW5l\ncikge1xuICAgICAgICBsb2cuZXJyb3IoXCLlhYPntKAucmVwbHktcmlnaHQtY29udGFpbmVy5LiN\n5a2Y5ZyoXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhZGRTdHlsZShcbiAg\nICAgICAgXC8qY3NzKlwvXG4gICAgICAgIGBcbiAgICAgICAgICAud2hpdGUtb25seS1sentcbiAg\nICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgICAgIGRpc3BsYXk6IC1t\ncy1mbGV4Ym94O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIC13ZWJr\naXQtYm94LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAtbW96LWJveC1hbGlnbjogY2VudGVy\nO1xuICAgICAgICAgICAgLXdlYmtpdC1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAg\nLW1vei1hbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNl\nbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBsaW5l\nLWhlaWdodDogLjI0cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogLjE0cmVtO1xuICAg\nICAgICAgICAgZm9udC1zaXplOiAuMTNyZW07XG4gICAgICAgICAgICBjb2xvcjogIzYxNGVjMjtc\nbiAgICAgICAgICAgIFwvKiBtYXJnaW4tcmlnaHQ6IDE2cHg7ICpcL1xuXHRcdFx0bWFyZ2luLWxl\nZnQ6IDE2cHg7XG4gICAgICAgICAgfVxuICAgICAgICAgIC53aGl0ZS1vbmx5LWx6LXF4OmJlZm9y\nZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIuWPlua2iFwiO1xuICAgICAgICAgIH1cbiAgICAg\nICAgICAud2hpdGUtb25seS1sei1ub25lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4g\nICAgICAgICAgfVxuICAgICAgICAgIGBcbiAgICAgICk7XG4gICAgICBsZXQgb25seUx6SW5uZXJF\nbGVtZW50ID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgIGNsYXNz\nTmFtZTogXCJ3aGl0ZS1vbmx5LWx6XCIsXG4gICAgICAgIHRleHRDb250ZW50OiBcIuWPqueci+al\nvOS4u1wiXG4gICAgICB9KTtcbiAgICAgIHJlcGx5UmlnaHRDb250YWluZXIuYXBwZW5kQ2hpbGQo\nb25seUx6SW5uZXJFbGVtZW50KTtcbiAgICAgIGxldCAkd2hpdGVPbmx5THogPSBkb2N1bWVudC5x\ndWVyeVNlbGVjdG9yKFwiLndoaXRlLW9ubHktbHpcIik7XG4gICAgICBpZiAoISR3aGl0ZU9ubHlM\neikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiJHdoaXRlT25seUx6IGlzIG51bGxc\nIik7XG4gICAgICB9XG4gICAgICBkb211dGlscy5vbigkd2hpdGVPbmx5THosIFwiY2xpY2tcIiwg\nKGV2ZW50KSA9PiB7XG4gICAgICAgIGxldCAkcG9zdEl0ZW1MaXN0ID0gZG9jdW1lbnQucXVlcnlT\nZWxlY3RvckFsbChcIi5wb3N0LWl0ZW1cIik7XG4gICAgICAgIGlmIChBcnJheS5mcm9tKCR3aGl0\nZU9ubHlMei5jbGFzc0xpc3QpLmluY2x1ZGVzKFwid2hpdGUtb25seS1sei1xeFwiKSkge1xuICAg\nICAgICAgICR3aGl0ZU9ubHlMei5jbGFzc0xpc3QucmVtb3ZlKFwid2hpdGUtb25seS1sei1xeFwi\nKTtcbiAgICAgICAgICAkcG9zdEl0ZW1MaXN0LmZvckVhY2goKCRwb3N0SXRlbSkgPT4ge1xuICAg\nICAgICAgICAgJHBvc3RJdGVtLmNsYXNzTGlzdC5yZW1vdmUoXCJ3aGl0ZS1vbmx5LWx6LW5vbmVc\nIik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgJHdoaXRlT25s\neUx6LmNsYXNzTGlzdC5hZGQoXCJ3aGl0ZS1vbmx5LWx6LXF4XCIpO1xuICAgICAgICAgICRwb3N0\nSXRlbUxpc3QuZm9yRWFjaCgoJHBvc3RJdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgbGFuZGxv\ncmQgPSAkcG9zdEl0ZW0uZ2V0QXR0cmlidXRlKFwibGFuZGxvcmRcIik7XG4gICAgICAgICAgICBp\nZiAobGFuZGxvcmQgPT0gXCIwXCIpIHtcbiAgICAgICAgICAgICAgJHBvc3RJdGVtLmNsYXNzTGlz\ndC5hZGQoXCJ3aGl0ZS1vbmx5LWx6LW5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nfSk7XG4gICAgICAgICAgVGllYmFDb21tZW50LnRyaWdnZXJTY3JvbGxFdmVudCgpO1xuICAgICAg\nICB9XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmj5LlhaUg5q2j5bqPPeWA\nkuW6j+eahOaMiemSrlxuICAgICAqXC9cbiAgICBpbnNlcnRSZXZlcnNlQnRuKCkge1xuICAgICAg\nbGV0IHJlcGx5U3dpdGNoRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIjcmVwbHlT\nd2l0Y2hcIik7XG4gICAgICBpZiAoIXJlcGx5U3dpdGNoRWxlbWVudCkge1xuICAgICAgICBsb2cu\nZXJyb3IoXCLlhYPntKAjcmVwbHlTd2l0Y2jkuI3lrZjlnKhcIik7XG4gICAgICAgIHJldHVybjtc\nbiAgICAgIH1cbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxu\nICAgICAgICAgIC5yZXBseS1yaWdodC1jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTog\nZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4\nLWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cdFx0XHRmbGV4OiAxO1xuICAgIFx0XHRqdXN0aWZ5\nLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgfVxuICAgICAgICAgIC5idG4tY29t\nbWVudC1yZXZlcnNlLXBhY2t7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRl\nci1ib3g7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAg\nZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtc\nbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGhlaWdodDogLjI5\ncmVtO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IC4yOXJlbTtcbiAgICAgICAgICAgIGJvcmRl\nci1yYWRpdXM6IC4xNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAjYTNhMmE4O1xuICAgICAgICAg\nICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjJm\nNTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmJ0bi1jb21tZW50LXJldmVyc2UtcGFjayAudGFi\nLWl0ZW17XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3\naWR0aDogLjQ4cmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuYnRuLWNvbW1lbnQtcmV2ZXJz\nZS1wYWNrIC5zZWxlY3RlZC10YWItaXRlbXtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2\nZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5O1xuICAgICAgICAgICAgY29sb3I6ICMxNDE0MTQ7\nXG4gICAgICAgICAgfVxuICAgICAgICAgIC5idG4tY29tbWVudC1yZXZlcnNlLXBhY2sgLnNlbGVj\ndGVkLXRhYi1pdGVtOmFmdGVye1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAg\nICAgIHotaW5kZXg6IC05OTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAg\nICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAtd2Via2l0\nLWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXIt\nYm94O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6IC4y\nOXJlbTtcbiAgICAgICAgICAgIHdpZHRoOiAuNDhyZW07XG4gICAgICAgICAgICBib3JkZXItcmFk\naXVzOiAuMTVyZW07XG4gICAgICAgICAgICBib3JkZXI6IC4wMXJlbSBzb2xpZCAjZjNmMmY1O1xu\nICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIGNvbG9yOiAj\nMTQxNDE0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBgXG4gICAgICApO1xuICAgICAgbGV0IHJl\ncGx5UmlnaHRDb250YWluZXIgPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAg\nICAgICAgY2xhc3NOYW1lOiBcInJlcGx5LXJpZ2h0LWNvbnRhaW5lclwiXG4gICAgICB9KTtcbiAg\nICAgIGxldCBidG5FbGVtZW50ID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4g\nICAgICAgIGNsYXNzTmFtZTogXCJidG4tY29tbWVudC1yZXZlcnNlLXBhY2tcIixcbiAgICAgICAg\naW5uZXJIVE1MOiAoXG4gICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAgICAgIGBcbiAgICAgICAg\nICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItaXRlbSBzZWxlY3RlZC10YWItaXRlbVwiIGRhdGEtcG9z\naXRpdmU+5q2j5bqPPFwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItaXRl\nbVwiIGRhdGEtcmV2ZXJzZT7lgJLluo88XC9zcGFuPmBcbiAgICAgICAgKVxuICAgICAgfSk7XG4g\nICAgICBjb25zdCBwb3NpdGl2ZUVsZW1lbnQgPSBidG5FbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4g\nICAgICAgIFwiLnRhYi1pdGVtW2RhdGEtcG9zaXRpdmVdXCJcbiAgICAgICk7XG4gICAgICBjb25z\ndCByZXZlcnNlRWxlbWVudCA9IGJ0bkVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIu\ndGFiLWl0ZW1bZGF0YS1yZXZlcnNlXVwiXG4gICAgICApO1xuICAgICAgcmVwbHlSaWdodENvbnRh\naW5lci5hcHBlbmRDaGlsZChidG5FbGVtZW50KTtcbiAgICAgIHJlcGx5U3dpdGNoRWxlbWVudC5h\ncHBlbmRDaGlsZChyZXBseVJpZ2h0Q29udGFpbmVyKTtcbiAgICAgIGxldCBpc1JldmVyc2UgPSBm\nYWxzZTtcbiAgICAgIGZ1bmN0aW9uIGNsZWFyU2VsZWN0ZWQoKSB7XG4gICAgICAgIHBvc2l0aXZl\nRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwic2VsZWN0ZWQtdGFiLWl0ZW1cIik7XG4gICAgICAg\nIHJldmVyc2VFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJzZWxlY3RlZC10YWItaXRlbVwiKTtc\nbiAgICAgIH1cbiAgICAgIGRvbXV0aWxzLm9uKGJ0bkVsZW1lbnQsIFwiY2xpY2tcIiwgKCkgPT4g\ne1xuICAgICAgICBpc1JldmVyc2UgPSAhaXNSZXZlcnNlO1xuICAgICAgICBUaWViYUNvbW1lbnQu\ncmVtb3ZlU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICAgICAgZG9tdXRpbHMucmVtb3ZlKFwiLnBvc3Qt\naXRlbVwiKTtcbiAgICAgICAgY2xlYXJTZWxlY3RlZCgpO1xuICAgICAgICBpZiAoaXNSZXZlcnNl\nKSB7XG4gICAgICAgICAgcmV2ZXJzZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInNlbGVjdGVkLXRh\nYi1pdGVtXCIpO1xuICAgICAgICAgIHBvc2l0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwi\nc2VsZWN0ZWQtdGFiLWl0ZW1cIik7XG4gICAgICAgICAgcmV2ZXJzZUVsZW1lbnQuY2xhc3NMaXN0\nLmFkZChcInNlbGVjdGVkLXRhYi1pdGVtXCIpO1xuICAgICAgICAgIFRpZWJhQ29tbWVudC5pbml0\nTWFpbkNvbW1lbnQodHJ1ZSk7XG4gICAgICAgICAgbG9nLmluZm8oXCLojrflj5bor4Torro9PT0+\n5YCS5bqPXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBvc2l0aXZlRWxlbWVudC5j\nbGFzc0xpc3QuYWRkKFwic2VsZWN0ZWQtdGFiLWl0ZW1cIik7XG4gICAgICAgICAgcmV2ZXJzZUVs\nZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInNlbGVjdGVkLXRhYi1pdGVtXCIpO1xuICAgICAgICAg\nIHBvc2l0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwic2VsZWN0ZWQtdGFiLWl0ZW1cIik7XG4g\nICAgICAgICAgVGllYmFDb21tZW50LmluaXRNYWluQ29tbWVudChmYWxzZSk7XG4gICAgICAgICAg\nbG9nLmluZm8oXCLojrflj5bor4Torro9PT0+5q2j5bqPXCIpO1xuICAgICAgICB9XG4gICAgICB9\nKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmn6XnnIsg5q2j5bqPXC\/lgJLluo9cbiAgICAg\nKiBAcGFyYW0gW2lzUmV2ZXJzZT1mYWxzZV0g5piv5ZCm5piv5YCS5bqP77yM6buY6K6kZmFsc2Xv\nvJrmraPluo9cbiAgICAgKlwvXG4gICAgYXN5bmMgaW5pdE1haW5Db21tZW50KGlzUmV2ZXJzZSA9\nIGZhbHNlKSB7XG4gICAgICBsZXQgdGFnID0gaXNSZXZlcnNlID8gXCLlgJLluo86IFwiIDogXCLm\nraPluo86IFwiO1xuICAgICAgbG9nLmluZm8odGFnICsgYOafpeeci+WGheWuuWApO1xuICAgICAg\nVGllYmFDb21tZW50LnBhcmFtX3RpZCA9IFRpZWJhQ29yZS5nZXRDdXJyZW50Rm9ydW1Qb3N0VGlk\nKCk7XG4gICAgICBpZiAoIVRpZWJhQ29tbWVudC5wYXJhbV90aWQpIHtcbiAgICAgICAgbG9nLmVy\ncm9yKHRhZyArIFwi5pyq5om+5Yiw5pys6aG15Y+C5pWwcFwiKTtcbiAgICAgICAgcmV0dXJuO1xu\nICAgICAgfVxuICAgICAgVGllYmFDb21tZW50LnBhcmFtX2ZvcnVtX2lkID0gVGllYmFQYWdlRGF0\nYUFwaS5nZXRGb3J1bUlkKCk7XG4gICAgICBpZiAoIVRpZWJhQ29tbWVudC5wYXJhbV9mb3J1bV9p\nZCkge1xuICAgICAgICBsb2cud2FybihcbiAgICAgICAgICB0YWcgKyBcInBhcmFtX2ZvcnVtX2lk\n5Y+C5pWw5LiN5a2Y5Zyo77yM5bCd6K+V5LuO5YW25a6D5Zyw5pa56I635Y+W77yMbWF4LXRpbWU6\nIDVzXCJcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IHJlY29tbWVuZEl0ZW1FbGVtZW50ID0gYXdh\naXQgdXRpbHMud2FpdE5vZGUoXG4gICAgICAgICAgXCIucmVjb21tZW5kLWl0ZW1cIixcbiAgICAg\nICAgICA1ZTNcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHJlY29tbWVuZEl0ZW1FbGVtZW50KSB7\nXG4gICAgICAgICAgbG9nLmluZm8oXG4gICAgICAgICAgICB0YWcgKyBcIuetieW+hS5yZWNvbW1l\nbmQtaXRlbeeahGRhdGEtYmFubmVyLWluZm\/lsZ7mgKfvvIxtYXgtdGltZTogMTBzXCJcbiAgICAg\nICAgICApO1xuICAgICAgICAgIGF3YWl0IHV0aWxzLndhaXRQcm9wZXJ0eUJ5SW50ZXJ2YWwoXG4g\nICAgICAgICAgICByZWNvbW1lbmRJdGVtRWxlbWVudCxcbiAgICAgICAgICAgICgpID0+IHtcbiAg\nICAgICAgICAgICAgcmV0dXJuIHJlY29tbWVuZEl0ZW1FbGVtZW50Lmhhc0F0dHJpYnV0ZShcImRh\ndGEtYmFubmVyLWluZm9cIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgMjUwLFxuICAg\nICAgICAgICAgMWU0XG4gICAgICAgICAgKTtcbiAgICAgICAgICBsb2cuaW5mbyh0YWcgKyBcIuaI\nkOWKn+etieW+hS5yZWNvbW1lbmQtaXRlbeeahGRhdGEtYmFubmVyLWluZm\/lsZ7mgKdcIik7XG4g\nICAgICAgICAgVGllYmFDb21tZW50LnBhcmFtX2ZvcnVtX2lkID0gVGllYmFQYWdlRGF0YUFwaS5n\nZXRGb3J1bUlkKCk7XG4gICAgICAgICAgaWYgKCFUaWViYUNvbW1lbnQucGFyYW1fZm9ydW1faWQp\nIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcih0YWcgKyBcIuiOt+WPluWPguaVsGRhdGEtYmFubmVy\nLWluZm\/lpLHotKVcIik7XG4gICAgICAgICAgICBRbXNnLmVycm9yKFwi6I635Y+W5Y+C5pWwZGF0\nYS1iYW5uZXItaW5mb+Wksei0pVwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9\nXG4gICAgICAgICAgbG9nLmluZm8oXG4gICAgICAgICAgICB0YWcgKyBcIumHjeaWsOiOt+WPlnBh\ncmFtX2ZvcnVtX2lk5oiQ5Yqf77yaXCIgKyBUaWViYUNvbW1lbnQucGFyYW1fZm9ydW1faWRcbiAg\nICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcih0YWcgKyBc\nIuiOt+WPluWFg+e0oC5yZWNvbW1lbmQtaXRlbeWksei0pVwiKTtcbiAgICAgICAgICBRbXNnLmVy\ncm9yKFwi6I635Y+W5YWD57SgLnJlY29tbWVuZC1pdGVt5aSx6LSlXCIpO1xuICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbG9nLmluZm8odGFnICsgXCLlvIDlp4vo\nr7fmsYLor4TorrpBcGlcIik7XG4gICAgICBpZiAoaXNSZXZlcnNlKSB7XG4gICAgICAgIFRpZWJh\nQ29tbWVudC5wYWdlID0gVGllYmFDb21tZW50Lm1heFBhZ2U7XG4gICAgICB9IGVsc2Uge1xuICAg\nICAgICBUaWViYUNvbW1lbnQucGFnZSA9IDE7XG4gICAgICB9XG4gICAgICBsb2cuaW5mbyh0YWcg\nKyBcIuWIneWni+WMluW9k+WJjemhteaVsO+8mlwiICsgVGllYmFDb21tZW50LnBhZ2UpO1xuICAg\nICAgbG9hZGluZ1ZpZXcuc2V0VGV4dChcIkxvYWRpbmcuLi5cIiwgdHJ1ZSk7XG4gICAgICBsb2Fk\naW5nVmlldy5zaG93KCk7XG4gICAgICBsZXQgdXJsID0gVGllYmFVcmxBcGkuZ2V0UG9zdChcbiAg\nICAgICAgYHRvdGFsQ29tbWVudD90PSR7RGF0ZS5ub3coKX0mdGlkPSR7VGllYmFDb21tZW50LnBh\ncmFtX3RpZH0mZmlkPSR7VGllYmFDb21tZW50LnBhcmFtX2ZvcnVtX2lkfSZwbj0ke1RpZWJhQ29t\nbWVudC5wYWdlfSZzZWVfbHo9MCR7VGllYmFDb21tZW50LmV4dHJhU2VhcmNoU2lnblBhcmFtc31g\nXG4gICAgICApO1xuICAgICAgbGV0IHBjUGFnZVVybCA9IFRpZWJhVXJsQXBpLmdldFBvc3QoXG4g\nICAgICAgIGAke1RpZWJhQ29tbWVudC5wYXJhbV90aWR9P3BuPSR7VGllYmFDb21tZW50LnBhZ2V9\nJHtUaWViYUNvbW1lbnQuZXh0cmFTZWFyY2hTaWduUGFyYW1zfWBcbiAgICAgICk7XG4gICAgICBs\nZXQgcGNQYWdlQ29tbWVudEluZm8gPSBhd2FpdCBUaWViYUNvbW1lbnQuZ2V0UGFnZUNvbW1lbnQo\ncGNQYWdlVXJsKTtcbiAgICAgIGlmICghcGNQYWdlQ29tbWVudEluZm8uc3VjY2Vzcykge1xuICAg\nICAgICBsb2FkaW5nVmlldy5zZXRIVE1MKFxuICAgICAgICAgIFwvKmh0bWwqXC9cbiAgICAgICAg\nICBgPGEgaHJlZj1cIiR7cGNQYWdlQ29tbWVudEluZm8uZGF0YX1cIiB0YXJnZXQ9XCJfYmxhbmtc\nIj7op6blj5Hnmb7luqblronlhajpqozor4HvvIzngrnlh7vliY3lvoDpqozor4E8XC9hPmBcbiAg\nICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0ICRwY1BhZ2VEb2Mg\nPSBwY1BhZ2VDb21tZW50SW5mby5kYXRhO1xuICAgICAgbGV0IHBhZ2VDb21tZW50TGlzdCA9IGF3\nYWl0IFRpZWJhQ29tbWVudC5nZXRQYWdlQ29tbWVudExpc3QodXJsKTtcbiAgICAgIGlmIChwYWdl\nQ29tbWVudExpc3QgPT0gbnVsbCB8fCBwYWdlQ29tbWVudExpc3QuY29tbWVudExpc3QgJiYgIXBh\nZ2VDb21tZW50TGlzdC5jb21tZW50TGlzdCkge1xuICAgICAgICBsb2FkaW5nVmlldy5zZXRUZXh0\nKFwi6K+E6K665pWw5o2u6I635Y+W5aSx6LSlXCIpO1xuICAgICAgICBsb2cuZXJyb3IodGFnICsg\nXCLor4TorrrmlbDmja7ojrflj5blpLHotKVcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1c\nbiAgICAgIGxvZy5pbmZvKHRhZyArIFwi5oiQ5Yqf6I635Y+W56ys5LiA6aG16K+E6K665ZKM5qW8\n5Lit5qW86K+E6K66XCIpO1xuICAgICAgbGV0ICRqdW1wSW5wdXRCcmlnaHQgPSAkcGNQYWdlRG9j\nLnF1ZXJ5U2VsZWN0b3IoXCIuanVtcF9pbnB1dF9icmlnaHRcIik7XG4gICAgICBUaWViYUNvbW1l\nbnQubWF4UGFnZSA9IDE7XG4gICAgICBpZiAoJGp1bXBJbnB1dEJyaWdodCkge1xuICAgICAgICBs\nZXQgbWF4UGFnZSA9IHBhcnNlSW50KCRqdW1wSW5wdXRCcmlnaHQuZ2V0QXR0cmlidXRlKFwibWF4\nLXBhZ2VcIikpO1xuICAgICAgICBpZiAoVGllYmFDb21tZW50Lm1heFBhZ2UgPD0gMSAmJiBtYXhQ\nYWdlID4gMSkge1xuICAgICAgICAgIFRpZWJhQ29tbWVudC5tYXhQYWdlID0gbWF4UGFnZTtcbiAg\nICAgICAgICBsb2cuaW5mbyh0YWcgKyBcIuiuvue9ruino+aekOWHuueahOacgOWkp+mhte+8mlwi\nICsgVGllYmFDb21tZW50Lm1heFBhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1JldmVy\nc2UpIHtcbiAgICAgICAgICBUaWViYUNvbW1lbnQuc2V0UHJldlBhZ2VTY3JvbGxMaXN0ZW5lcigp\nO1xuICAgICAgICAgIGxvZy5pbmZvKHRhZyArIFwi5b2T5YmN5Li65aSa6aG177yM6K6+572u5rua\n5Yqo55uR5ZCs5Yqg6L295LiL5LiA6aG1XCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAg\nIFRpZWJhQ29tbWVudC5zZXROZXh0UGFnZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgICAgICAgbG9n\nLmluZm8odGFnICsgXCLlvZPliY3kuLrlpJrpobXvvIzorr7nva7mu5rliqjnm5HlkKzliqDovb3k\nuIrkuIDpobVcIik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjb21t\nZW50cyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgJHBjUGFnZURvYy5xdWVyeVNlbGVjdG9yQWxs\nKFwiLmxfcG9zdC5sX3Bvc3RfYnJpZ2h0XCIpXG4gICAgICAgICk7XG4gICAgICAgIGRvY3VtZW50\nLnF1ZXJ5U2VsZWN0b3JBbGwoXCIucG9zdC1pdGVtXCIpLmZvckVhY2goKGVsZSkgPT4gZWxlLnJl\nbW92ZSgpKTtcbiAgICAgICAgaWYgKFRpZWJhQ29tbWVudC5wYWdlID09IDEpIHtcbiAgICAgICAg\nICBjb21tZW50cy5zaGlmdCgpO1xuICAgICAgICAgIGxvZy5pbmZvKHRhZyArIFwi5b2T5YmN5Li6\n56ysMemhte+8jOenu+mZpOesrOS4gOS4qu+8jOWboOS4uuWug+aYr+S4u+WGheWuuVwiKTtcbiAg\nICAgICAgfVxuICAgICAgICBUaWViYUNvbW1lbnQuZmxvb3JfbnVtID0gMTtcbiAgICAgICAgaWYg\nKGlzUmV2ZXJzZSkge1xuICAgICAgICAgIGNvbW1lbnRzLnJldmVyc2UoKTtcbiAgICAgICAgfVxu\nICAgICAgICBpZiAoY29tbWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgY29tbWVudHMuZm9yRWFj\naCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgbGV0ICRuZXdDb21tZW50ID0gVGllYmFDb21t\nZW50LmdldE5ld0NvbW1lbnRJbm5lckVsZW1lbnQoXG4gICAgICAgICAgICAgIGVsZW1lbnQsXG4g\nICAgICAgICAgICAgIHBhZ2VDb21tZW50TGlzdFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAg\nIFRpZWJhQ29tbWVudC5pbnNlcnROZXdDb21tZW50SW5uZXJFbGVtZW50KCRuZXdDb21tZW50KTtc\nbiAgICAgICAgICAgIFRpZWJhQ29tbWVudC5mbG9vcl9udW0rKztcbiAgICAgICAgICB9KTtcbiAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cud2Fybih0YWcgKyBcIuino+aekOWHuueahOiv\nhOiuuuWIl+ihqOaYr+epuueahFwiKTtcbiAgICAgICAgfVxuICAgICAgICBsb2FkaW5nVmlldy5o\naWRlKCk7XG4gICAgICB9XG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgdGFnICsgYOWFsSAke1Rp\nZWJhQ29tbWVudC5tYXhQYWdlfSDpobXor4TorrrvvIzlvZPliY3miYDlnKggJHtUaWViYUNvbW1l\nbnQucGFnZX0g6aG1YFxuICAgICAgKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IFRpZWJhVW5pQXBw\nQ29tbWVudCA9IHtcbiAgICAkZGF0YToge1xuICAgICAgd2F0Y2hDb21tZW50Q2FsbEJhY2s6IFtd\nXG4gICAgfSxcbiAgICBpbml0KCkge1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOinguWvn+iv\nhOiuuuWKqOaAgeWKoOi9ve+8iOWMheWQq+alvOS4realvOivhOiuuu+8iVxuICAgICAqIEBwYXJh\nbSBjYWxsYmFjayDlm57osINcbiAgICAgKlwvXG4gICAgd2F0Y2hDb21tZW50KGNhbGxiYWNrKSB7\nXG4gICAgICB0aGlzLiRkYXRhLndhdGNoQ29tbWVudENhbGxCYWNrLnB1c2goY2FsbGJhY2spO1xu\nICAgICAgaWYgKHRoaXMuJGRhdGEud2F0Y2hDb21tZW50Q2FsbEJhY2subGVuZ3RoID4gMSkge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB1dGlscy53YWl0Tm9kZShcInVuaS12aWV3\nI3RhYi1saXN0XCIsIDFlNCkudGhlbigoJHRhYkxpc3QpID0+IHtcbiAgICAgICAgaWYgKCEkdGFi\nTGlzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB1dGlscy5tdXRh\ndGlvbk9ic2VydmVyKCR0YWJMaXN0LCB7XG4gICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAg\nICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlXG4gICAgICAgICAg\nfSxcbiAgICAgICAgICBpbW1lZGlhdGU6IHRydWUsXG4gICAgICAgICAgY2FsbGJhY2s6IChtdXRh\ndGlvbnMsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBsZXQgY29tbWVudENvbnRhaW5lcklu\nZm9MaXN0ID0gW107XG4gICAgICAgICAgICBjb25zdCAkY29tbWVudEdyb3VwID0gZG9jdW1lbnQu\ncXVlcnlTZWxlY3RvckFsbChcIi5jb21tZW50LWdyb3VwXCIpO1xuICAgICAgICAgICAgJGNvbW1l\nbnRHcm91cC5mb3JFYWNoKCgkY29tbWVudEdyb3VwSXRlbSkgPT4ge1xuICAgICAgICAgICAgICBs\nZXQgdnVlSW5zID0gVnVlVXRpbHMuZ2V0VnVlKCRjb21tZW50R3JvdXBJdGVtKTtcbiAgICAgICAg\nICAgICAgaWYgKCF2dWVJbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgbGV0IHNlY3Rpb25EYXRhID0gdnVlSW5zID09IG51bGwgPyB2\nb2lkIDAgOiB2dWVJbnMuc2VjdGlvbkRhdGE7XG4gICAgICAgICAgICAgIHNlY3Rpb25EYXRhLmZv\nckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb21tZW50Q29udGFpbmVySW5mb0xp\nc3QucHVzaCh7XG4gICAgICAgICAgICAgICAgICBkYXRhOiBpdGVtLFxuICAgICAgICAgICAgICAg\nICAgcmVtb3ZlKCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmluZEluZGV4ID0gc2VjdGlv\nbkRhdGEuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAgIChpdGVtMikgPT4gaXRlbTIg\nPT09IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYg\nKGZpbmRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uRGF0YS5z\ncGxpY2UoZmluZEluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAg\nICAgIH0pO1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuJGRh\ndGEud2F0Y2hDb21tZW50Q2FsbEJhY2subGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAg\nIGNvbnN0IHdhdGNoQ29tbWVudENhbGxCYWNrID0gdGhpcy4kZGF0YS53YXRjaENvbW1lbnRDYWxs\nQmFja1tpbmRleF07XG4gICAgICAgICAgICAgIGlmICh0eXBlb2Ygd2F0Y2hDb21tZW50Q2FsbEJh\nY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHdhdGNoQ29tbWVudENhbGxC\nYWNrKGNvbW1lbnRDb250YWluZXJJbmZvTGlzdCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAg\ndGhpcy4kZGF0YS53YXRjaENvbW1lbnRDYWxsQmFjay5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAg\nICAgICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5l\nY3QoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNv\nbnN0IEdlYXN0dXJlQmFja0hhc2hDb25maWcgPSB7XG4gICAgXC8qKiDmpbzkuK3mpbzlm57lpI3l\nvLnnqpcgKlwvXG4gICAgc2VlTHpsUmVwbHk6IFwiI1wvc2VlTHpsUmVwbHlcIixcbiAgICBcLyoq\nIOWbvueJh+mihOiniCAqXC9cbiAgICBwcmV2aWV3SW1hZ2U6IFwiI1wvcHJldmlld0ltYWdlXCIs\nXG4gICAgXC8qKiBWaWV3ZXLlm77niYfpooTop4ggKlwvXG4gICAgdmlld2VyUHJldmlld0ltYWdl\nOiBcIiNcL3ZpZXdlclByZXZpZXdJbWFnZVwiXG4gIH07XG4gIGNvbnN0IFRpZWJhVW5pQXBwUG9z\ndCA9IHtcbiAgICBpbml0KCkge1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCJ1bmktYXBwXCIsIDFl\nNCkudGhlbigoJHVuaUFwcCkgPT4ge1xuICAgICAgICBpZiAoISR1bmlBcHApIHtcbiAgICAgICAg\nICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmluZm8oYHVuaS1hcHAgPT09PiDmnKzp\nobXpnaLkuLp1bmktYXBw6aG16Z2iYCk7XG4gICAgICAgIGxldCBmaW5kSGFzaFZhbHVlID0gT2Jq\nZWN0LnZhbHVlcyhHZWFzdHVyZUJhY2tIYXNoQ29uZmlnKS5maW5kKChpdGVtKSA9PiB7XG4gICAg\nICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoLmVuZHNXaXRoKGl0ZW0pO1xuICAgICAg\nICB9KTtcbiAgICAgICAgaWYgKGZpbmRIYXNoVmFsdWUpIHtcbiAgICAgICAgICBsb2cud2Fybihg\n5Yig6Zmk5qOA5rWL5Yiw55qE5omL5Yq\/aGFzaOWPguaVsO+8miR7ZmluZEhhc2hWYWx1ZX1gKTtc\nbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAg\nICAgdGhpcy5yZXBhaXJUYkVycm9yUGFnZSgpO1xuICAgICAgICB0aGlzLm11dGF0aW9uUmVtb3Zl\nV2FrZVVwQnRuKCk7XG4gICAgICAgIFBvcHNQYW5lbC5vbmNlRXhlYyhcInRpZWJhLXBvc3QtdW5p\nLWFwcC1jb21tZW50LWZpbHRlclwiLCAoKSA9PiB7XG4gICAgICAgICAgVGllYmFVbmlBcHBDb21t\nZW50RmlsdGVyLmluaXQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIFBvcHNQYW5lbC5leGVjTWVu\ndShcImJhaWR1X3RpZWJhX29wdGltaXplX2ltYWdlX3ByZXZpZXdcIiwgKCkgPT4ge1xuICAgICAg\nICAgIFRpZWJhUG9zdC5vcHRpbWl6ZUltYWdlUHJldmlldygpO1xuICAgICAgICB9KTtcbiAgICAg\nICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgICBcImJhaWR1LXRpZWJhLXVuaS1h\ncHAtcG9zdC1hbGxvdy11c2VyLXNlbGVjdFwiLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAg\nICAgIHJldHVybiB0aGlzLmFsbG93VXNlclNlbGVjdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAg\nKTtcbiAgICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgICBcImJhaWR1LXRp\nZWJhLXVuaS1hcHAtcG9zdC1vdmVybG9hZExvYWRNb3JlXCIsXG4gICAgICAgICAgKCkgPT4ge1xu\nICAgICAgICAgICAgdGhpcy5vdmVybG9hZExvYWRNb3JlKCk7XG4gICAgICAgICAgfVxuICAgICAg\nICApO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAgICAgIFwiYmFpZHUt\ndGllYmEtdW5pLWFwcC1wb3N0LXJlcGFpclBpY0d1aWRlVGhyZWFkV3JhcHBlclwiLFxuICAgICAg\nICAgICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVwYWlyUGljR3VpZGVUaHJlYWRXcmFwcGVy\nKCk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVP\nbmNlKFxuICAgICAgICAgIFwiYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0LXJlcGFpckNsaWNrVG9V\nc2VySG9tZVwiLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVwYWlyQ2xp\nY2tUb1VzZXJIb21lKCk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBQb3BzUGFu\nZWwuZXhlY01lbnVPbmNlKFwiYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0LXByZXZlbnRXYWtlQXBw\nXCIsICgpID0+IHtcbiAgICAgICAgICB0aGlzLnByZXZlbnRXYWtlQXBwKCk7XG4gICAgICAgIH0p\nO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAgICAgIFwiYmFpZHUtdGll\nYmEtdW5pLWFwcC1wb3N0LWFkZFNjcm9sbFRvcEJ1dHRvbkluRm9ydW1cIixcbiAgICAgICAgICAo\ndmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZFNjcm9sbFRvcEJ1dHRvbih2\nYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01l\nbnVPbmNlKFxuICAgICAgICAgIFwiYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0LWFkZFNjcm9sbFRv\ncEJ1dHRvbkluRm9ydW1cIixcbiAgICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJl\ndHVybiB0aGlzLmFkZFNjcm9sbFRvcEJ1dHRvbih2YWx1ZSk7XG4gICAgICAgICAgfSxcbiAgICAg\nICAgICAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWU7XG4gICAg\nICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAg\nICAgICAgIFwiYmFpZHUtdGllYmEtdW5pLWFwcC1wb3N0LXJlcGFpckFuY2hvckxpbmtcIixcbiAg\nICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlcGFpckFuY2hvckxpbmsoKTtcbiAg\nICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGRvbXV0aWxzLnJlYWR5KCgpID0+IHtcbiAg\nICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAgICAgICAgXCJiYWlkdS10aWVi\nYS11bmktYXBwLXBvc3QtcmVtZW1iZXJDaG9vc2VTZWVDb21tZW50U29ydFwiLFxuICAgICAgICAg\nICAgKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbWVtYmVyQ2hvb3NlU2VlQ29tbWVudFNv\ncnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIFBvcHNQYW5lbC5l\neGVjTWVudU9uY2UoXG4gICAgICAgICAgICBcImJhaWR1LXRpZWJhLXVuaS1hcHAtcG9zdC1maWx0\nZXJEdXBsaWNhdGVDb21tZW50c1wiLFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAg\nICB0aGlzLmZpbHRlckR1cGxpY2F0ZUNvbW1lbnRzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgKTtcbiAgICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAgICAgICAgXCJi\nYWlkdS10aWViYS11bmktYXBwLXBvc3QtYmxvY2tUaWVCYVJvYm90XCIsXG4gICAgICAgICAgICAo\nKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYmxvY2tUaWVCYVJvYm90KCk7XG4gICAgICAgICAg\nICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAg\nICAgICAgICAgXCJiYWlkdS10aWViYS11bmktYXBwLXBvc3Qtb3B0aW1pemF0aW9uTHpsUG9zdEJh\nY2tHZXN0dXJlUmV0dXJuXCIsXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHRo\naXMub3B0aW1pemF0aW9uTHpsUG9zdEJhY2tHZXN0dXJlUmV0dXJuKCk7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgKTtcbiAgICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAg\nICAgICAgXCJiYWlkdS10aWViYS11bmktYXBwLXBvc3Qtb3B0aW1pemF0aW9uSW1hZ2VQcmV2aWV3\nQmFja0dlc3R1cmVSZXR1cm5cIixcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAg\ndGhpcy5vcHRpbWl6YXRpb25JbWFnZVByZXZpZXdCYWNrR2VzdHVyZVJldHVybigpO1xuICAgICAg\nICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5yZXBhaXJTZWFyY2goKTtcbiAg\nICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliKTmlq3pobXp\nnaLmmK\/lkKbmmK91bmktYXBwXG4gICAgICpcL1xuICAgIGlzVW5pQXBwKCkge1xuICAgICAgcmV0\ndXJuIEJvb2xlYW4oZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcInVuaS1hcHBcIikpO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOWFgeiuuOeUqOaIt+mAieaLqeaWh+Wtl1xuICAgICAqXC9cbiAg\nICBhbGxvd1VzZXJTZWxlY3QoKSB7XG4gICAgICByZXR1cm4gYWRkU3R5bGUoXG4gICAgICAgIFwv\nKmNzcypcL1xuICAgICAgICBgXG5cdFx0aHRtbCxib2R5e1xuXHRcdFx0LXdlYmtpdC11c2VyLXNl\nbGVjdDogdW5zZXQgIWltcG9ydGFudDtcblx0XHRcdC1tb3otdXNlci1zZWxlY3Q6IHVuc2V0ICFp\nbXBvcnRhbnQ7XG5cdFx0XHR1c2VyLXNlbGVjdDogdW5zZXQgIWltcG9ydGFudDtcblx0XHR9XG5c\ndFx0YFxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDkv67lpI3otLTlkKfor7fm\nsYLlpLHotKXnmoTlvLnnqpfvvIjngrnlh7vml6Dlj43lupTvvIlcbiAgICAgKlwvXG4gICAgcmVw\nYWlyVGJFcnJvclBhZ2UoKSB7XG4gICAgICBhZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwvXG4g\nICAgICAgIGBcblx0XHRcLyog5Yqg6L296K+E6K665aSx6LSl55qE5by556qXICpcL1xuXHRcdC5z\nd2lwZXItY29udGVudCAudGItZXJyb3ItcGFnZXtcblx0XHRcdGJhY2tncm91bmQ6IHJnYmEoMCwg\nMCwgMCwgMC43KTtcblx0XHRcdGNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0ei1pbmRleDogMTAwMDA7\nXG5cdFx0fVxuXHRcdGBcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yqo5oCB\n5Yqg6L2956e76Zmk5ZSk6YaS5oyJ6ZKu77yM5Lya5b2x5ZON6aG16Z2i54K55Ye777yM5q+U5aaC\n6LaF6ZO+5o6l54K55Ye75peg5Y+N5bqUXG4gICAgICpcL1xuICAgIG11dGF0aW9uUmVtb3ZlV2Fr\nZVVwQnRuKCkge1xuICAgICAgdXRpbHMubXV0YXRpb25PYnNlcnZlcihkb2N1bWVudC5kb2N1bWVu\ndEVsZW1lbnQsIHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgc3VidHJlZTogdHJ1ZSxc\nbiAgICAgICAgICBjaGlsZExpc3Q6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgaW1tZWRpYXRl\nOiB0cnVlLFxuICAgICAgICBjYWxsYmFjaygpIHtcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNl\nbGVjdG9yQWxsKFwiLndha2UtYXBwLWJ0blwiKS5mb3JFYWNoKCgkZWxlKSA9PiAkZWxlLnJlbW92\nZSgpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6KaG\n55uW6aG16Z2i55qE5Yqg6L295pu05aSa5oyJ6ZKu77yM5Y+v5a6e546w5Yqg6L295pu05aSa6K+E\n6K66XG4gICAgICpcL1xuICAgIG92ZXJsb2FkTG9hZE1vcmUoKSB7XG4gICAgICBsb2cuaW5mbyhg\ndW5pLWFwcCA9PT0+IOimhueblumhtemdoueahOWKoOi9veabtOWkmuaMiemSru+8jOWPr+WunueO\nsOWKoOi9veabtOWkmuivhOiuumApO1xuICAgICAgZG9tdXRpbHMub24oXG4gICAgICAgIGRvY3Vt\nZW50LFxuICAgICAgICBcImNsaWNrXCIsXG4gICAgICAgIFwidW5pLWFwcCAubG9hZC1tb3JlXCIs\nXG4gICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgIHZhciBfYTMsIF9iO1xuICAgICAgICAg\nIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgICAgbGV0ICRsb2FkTW9yZSA9IGV2\nZW50LnRhcmdldDtcbiAgICAgICAgICBsZXQgdnVlM0lucyA9IFZ1ZVV0aWxzLmdldFZ1ZTMoJGxv\nYWRNb3JlKTtcbiAgICAgICAgICBsZXQgdnVlMklucyA9IFZ1ZVV0aWxzLmdldFZ1ZSgkbG9hZE1v\ncmUpO1xuICAgICAgICAgIGlmICh2dWUySW5zKSB7XG4gICAgICAgICAgICBsZXQgaGFuZGxlQ2xp\nY2sgPSAoX2EzID0gdnVlMklucyA9PSBudWxsID8gdm9pZCAwIDogdnVlMklucy4kbGlzdGVuZXJz\nKSA9PSBudWxsID8gdm9pZCAwIDogX2EzW1wiaGFuZGxlLWNsaWNrXCJdO1xuICAgICAgICAgICAg\naWYgKHR5cGVvZiBoYW5kbGVDbGljayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAg\nIGhhbmRsZUNsaWNrKCk7XG4gICAgICAgICAgICAgIGxvZy5zdWNjZXNzKGB1bmktYXBwID09PT4g\nX192dWVfXyDliqDovb3mm7TlpJror4TorrpgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAg\nICAgICAgICAgIGxvZy5lcnJvcihcInVuaS1hcHAgPT0+IF9fdnVlX18g54K55Ye75Yqg6L295pu0\n5aSa5aSx6LSlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodnVlM0lu\ncykge1xuICAgICAgICAgICAgbGV0IG9uSGFuZGxlQ2xpY2sgPSAoX2IgPSB2dWUzSW5zID09IG51\nbGwgPyB2b2lkIDAgOiB2dWUzSW5zLmF0dHJzKSA9PSBudWxsID8gdm9pZCAwIDogX2Iub25IYW5k\nbGVDbGljaztcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb25IYW5kbGVDbGljayA9PT0gXCJmdW5j\ndGlvblwiKSB7XG4gICAgICAgICAgICAgIG9uSGFuZGxlQ2xpY2soKTtcbiAgICAgICAgICAgICAg\nbG9nLnN1Y2Nlc3MoYHVuaS1hcHAgPT09PiBfX3Z1ZVBhcmVudENvbXBvbmVudCDliqDovb3mm7Tl\npJror4TorrpgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGxvZy5lcnJv\ncihcInVuaS1hcHAgPT0+IF9fdnVlUGFyZW50Q29tcG9uZW50IOeCueWHu+WKoOi9veabtOWkmuWk\nsei0pVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAg\nbG9nLmVycm9yKFwidW5pLWFwcCA9PT4g6I635Y+WdnVl5a6e5L6L5aSx6LSlXCIpO1xuICAgICAg\nICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAg\nICAgICAgfVxuICAgICAgKTtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1bWVudCxc\nbiAgICAgICAgXCJzY3JvbGxcIixcbiAgICAgICAgdXRpbHMuZGVib3VuY2UoYXN5bmMgKCkgPT4g\ne1xuICAgICAgICAgIGxldCAkbG9hZE1vcmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwidW5p\nLWFwcCAubG9hZC1tb3JlXCIpO1xuICAgICAgICAgIGlmICgkbG9hZE1vcmUpIHtcbiAgICAgICAg\nICAgIGlmICh1dGlscy5pc1Zpc2libGUoJGxvYWRNb3JlLCB0cnVlKSkge1xuICAgICAgICAgICAg\nICAkbG9hZE1vcmUuY2xpY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAg\nIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICBwYXNz\naXZlOiB0cnVlLFxuICAgICAgICAgIG9uY2U6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgICk7XG4g\nICAgICB1dGlscy5kaXNwYXRjaEV2ZW50KGRvY3VtZW50LCBcInNjcm9sbFwiKTtcbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDmt7vliqDmu5rliqjliLDpobbpg6jmjInpkq5cbiAgICAgKlwvXG4g\nICAgYWRkU2Nyb2xsVG9wQnV0dG9uKGVuYWJsZSkge1xuICAgICAgaWYgKGVuYWJsZSkge1xuICAg\nICAgICBsb2cuaW5mbyhgdW5pLWFwcCA9PT0+IOa3u+WKoOa7muWKqOWIsOmhtumDqOaMiemSrmAp\nO1xuICAgICAgICByZXR1cm4gYWRkU3R5bGUoXG4gICAgICAgICAgXC8qY3NzKlwvXG4gICAgICAg\nICAgYFxuXHRcdFx0XHQud2hpdGVzZXYtdGItdG90b3B7XG5cdFx0XHRcdFx0ZGlzcGxheTogdW5z\nZXQgIWltcG9ydGFudDtcblx0XHRcdFx0XHRyaWdodDogOXB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRc\ndFx0Ym90dG9tOiAxMDBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdC53aGl0ZXNl\ndi10Yi10b3RvcCAudGItdG90b3BfX3NwYW57XG5cdFx0XHRcdFx0d2lkdGg6IDUxcHggIWltcG9y\ndGFudDtcblx0XHRcdFx0XHRoZWlnaHQ6ICA1MXB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0\nXHRcdGBcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhZGRTdHls\nZShcbiAgICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgICBgXG5cdFx0XHRcdC53aGl0ZXNldi10\nYi10b3RvcHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG5cdFx0XHRgXG4g\nICAgICAgICk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5L+u5aSN5Zu+54mH\n5a+86Iiq5YiX6KGo6Lez6L2sXG4gICAgICpcL1xuICAgIHJlcGFpclBpY0d1aWRlVGhyZWFkV3Jh\ncHBlcigpIHtcbiAgICAgIGxvZy5pbmZvKGB1bmktYXBwID09PT4g5L+u5aSN5Zu+54mH5a+86Iiq\n5YiX6KGo6Lez6L2sYCk7XG4gICAgICBkb211dGlscy5vbihcbiAgICAgICAgZG9jdW1lbnQsXG4g\nICAgICAgIFwiY2xpY2tcIixcbiAgICAgICAgXCIucGljLXBvcHVwLWd1aWRlLXRocmVhZC13cmFw\ncGVyIC50aHJlYWQtZ3VpZGUtaXRlbS13YWtlXCIsXG4gICAgICAgIChldmVudCkgPT4ge1xuICAg\nICAgICAgIHZhciBfYTMsIF9iLCBfYywgX2QsIF9lLCBfZjtcbiAgICAgICAgICB1dGlscy5wcmV2\nZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAgIGxldCAkY2xpY2sgPSBldmVudC50YXJnZXQ7XG4g\nICAgICAgICAgbGV0IHZ1ZTJJbnMgPSBWdWVVdGlscy5nZXRWdWUoJGNsaWNrKTtcbiAgICAgICAg\nICBsZXQgdnVlM0lucyA9IFZ1ZVV0aWxzLmdldFZ1ZTMoJGNsaWNrKTtcbiAgICAgICAgICBsZXQg\ndGlkID0gKChfYyA9IChfYiA9IChfYTMgPSB2dWUySW5zID09IG51bGwgPyB2b2lkIDAgOiB2dWUy\nSW5zLiRwcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5jb25maWcpID09IG51bGwgPyB2b2lk\nIDAgOiBfYi5wYXJhbSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLnRpZCkgfHwgKChfZiA9IChfZSA9\nIChfZCA9IHZ1ZTNJbnMgPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZTNJbnMucHJvcHMpID09IG51bGwg\nPyB2b2lkIDAgOiBfZC5jb25maWcpID09IG51bGwgPyB2b2lkIDAgOiBfZS5wYXJhbSkgPT0gbnVs\nbCA\/IHZvaWQgMCA6IF9mLnRpZCk7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aWQgPT09IFwibnVt\nYmVyXCIpIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSBUaWViYVVybEFwaS5nZXRQb3N0KHRpZCk7\nXG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xuICAgICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXCLojrflj5Z0aWTlpLHotKVcIiwgJGNsaWNr\nKTtcbiAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5Z0aWTlpLHotKVcIik7XG4gICAgICAg\nICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAg\nICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOS\/ruWkjeeCueWHu+i\/\nm+WFpeeUqOaIt+S4u+mhte+8iOWMheaLrOeUqOaIt+WktOWDj+OAgeeUqOaIt+WQje+8iVxuICAg\nICAqXC9cbiAgICByZXBhaXJDbGlja1RvVXNlckhvbWUoKSB7XG4gICAgICBsb2cuaW5mbyhgdW5p\nLWFwcCA9PT0+IOS\/ruWkjeeCueWHu+i\/m+WFpeeUqOaIt+S4u+mhte+8iOWMheaLrOeUqOaIt+Wk\ntOWDj+OAgeeUqOaIt+WQje+8iWApO1xuICAgICAgZG9tdXRpbHMub24oXG4gICAgICAgIGRvY3Vt\nZW50LFxuICAgICAgICBcImNsaWNrXCIsXG4gICAgICAgIFwiLnBsYXllci1saW5lLWxlZnRcIixc\nbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdmFyIF9hMywgX2IsIF9jLCBfZDtcbiAg\nICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAgIGxldCAkY2xpY2sg\nPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgbGV0IHZ1ZTNJbnMgPSBWdWVVdGlscy5nZXRWdWUz\nKCRjbGljayk7XG4gICAgICAgICAgaWYgKHR5cGVvZiAoKF9iID0gKF9hMyA9IHZ1ZTNJbnMgPT0g\nbnVsbCA\/IHZvaWQgMCA6IHZ1ZTNJbnMucHJvcHMpID09IG51bGwgPyB2b2lkIDAgOiBfYTMucGxh\neWVySW5mbykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLnBvcnRyYWl0KSA9PT0gXCJzdHJpbmdcIikg\ne1xuICAgICAgICAgICAgbGV0IHBvcnRyYWl0ID0gdnVlM0lucy5wcm9wcy5wbGF5ZXJJbmZvLnBv\ncnRyYWl0O1xuICAgICAgICAgICAgbGV0IHVybCA9IFRpZWJhVXJsQXBpLmdldFVzZXJIb21lKHBv\ncnRyYWl0KTtcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybCwgXCJfYmxhbmtcIik7XG4gICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCAkd2FrZUFwcCA9ICRjbGljay5xdWVyeVNl\nbGVjdG9yKFwiLndha2UtYXBwXCIpO1xuICAgICAgICAgICAgbGV0IHZ1ZUlucyA9IFZ1ZVV0aWxz\nLmdldFZ1ZSgkd2FrZUFwcCk7XG4gICAgICAgICAgICBsZXQgcG9ydHJhaXQgPSAoX2QgPSAoX2Mg\nPSB2dWVJbnMgPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZUlucy5jb25maWcpID09IG51bGwgPyB2b2lk\nIDAgOiBfYy5wYXJhbSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9kLnBvcnRyYWl0O1xuICAgICAgICAg\nICAgaWYgKHR5cGVvZiBwb3J0cmFpdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICBs\nZXQgdXJsID0gVGllYmFVcmxBcGkuZ2V0VXNlckhvbWUocG9ydHJhaXQpO1xuICAgICAgICAgICAg\nICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5rXCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAg\nICAgICAgICAgICAgbG9nLmVycm9yKFwi6I635Y+WcG9ydHJhaXTlpLHotKVcIiwgJGNsaWNrKTtc\nbiAgICAgICAgICAgICAgUW1zZy5lcnJvcihcIuiOt+WPlnBvcnRyYWl05aSx6LSlXCIpO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAg\nIGNhcHR1cmU6IHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDpmLvmraLllKTphpJhcHBcbiAgICAgKlwvXG4gICAgcHJldmVudFdha2VBcHAoKSB7XG4g\nICAgICBsb2cuaW5mbyhgdW5pLWFwcCA9PT0+IOmYu+atouWUpOmGkmFwcGApO1xuICAgICAgZG9t\ndXRpbHMub24oXG4gICAgICAgIGRvY3VtZW50LFxuICAgICAgICBcImNsaWNrXCIsXG4gICAgICAg\nIFwidW5pLWFwcCAud2FrZS1hcHBcIixcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAg\nbGV0ICR3YWtlVXAgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgbGV0IGlnbm9yZUNsYXNzTmFt\nZUxpc3QgPSBbXG4gICAgICAgICAgICBcLyog5Yqg6L295pu05aSa77yI5omT5byAQXBw5p+l55yL\n5pu05aSa6K+E6K66IO+8iSAqXC9cbiAgICAgICAgICAgIFwiLmxvYWQtbW9yZVwiLFxuICAgICAg\nICAgICAgXC8qIOivhOiuuuWGheWuuSAqXC9cbiAgICAgICAgICAgIFwiLmNvbW1lbnQtY29udGVu\ndFwiLFxuICAgICAgICAgICAgXC8qIOWbvueJh+WvvOiIquaOqOiNkOW4luWtkCAqXC9cbiAgICAg\nICAgICAgIFwiLnBpYy1wb3B1cC1ndWlkZS10aHJlYWQtd3JhcHBlciAudGhyZWFkLWd1aWRlLWl0\nZW0td2FrZVwiLFxuICAgICAgICAgICAgXC8qIOeUqOaIt+S\/oeaBr+WMuuWfnyAqXC9cbiAgICAg\nICAgICAgIFwiLnBsYXllci1saW5lLWxlZnRcIixcbiAgICAgICAgICAgIFwvKiDlm57lpI3ovpPl\nhaXmoYbljLrln58gKlwvXG4gICAgICAgICAgICBcIi5wYi1yZXBseS10ZXh0YXJlYS13cmFwcGVy\nXCJcbiAgICAgICAgICBdO1xuICAgICAgICAgIGlmICgkd2FrZVVwLmNsYXNzTGlzdCkge1xuICAg\nICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGlnbm9yZUNsYXNzTmFtZUxpc3Qu\nbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlnbm9yZUNsYXNzTmFtZSA9\nIGlnbm9yZUNsYXNzTmFtZUxpc3RbaW5kZXhdO1xuICAgICAgICAgICAgICBpZiAoJHdha2VVcC5j\nbGFzc0xpc3QuY29udGFpbnMoaWdub3JlQ2xhc3NOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoJHdha2VVcC5jbG9zZXN0\nKGlnbm9yZUNsYXNzTmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdXRpbHMucHJldmVu\ndEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhcHR1cmU6\nIHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorrDk\nvY\/or4TorrrmjpLluo9cbiAgICAgKlwvXG4gICAgcmVtZW1iZXJDaG9vc2VTZWVDb21tZW50U29y\ndCgpIHtcbiAgICAgIGxvZy5pbmZvKGB1bmktYXBwID09PT4g6K6w5L2P6K+E6K665o6S5bqPYCk7\nXG4gICAgICBjb25zdCBLRVkyID0gXCJiYWlkdS10aWViYS11bmktYXBwLXBvc3QtY2hvb3NlLXNl\nZS1jb21tZW50LXNvcnRcIjtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1bWVudCxc\nbiAgICAgICAgXCJjbGlja1wiLFxuICAgICAgICBcInVuaS12aWV3LnJlcGx5LXRvcCAuc3dpdGNo\nLXRhYiAudGFiLWl0ZW1cIixcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3Qg\nJGNsaWNrID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgIGNvbnN0IGNob29zZVNvcnRUZXh0ID0g\nJGNsaWNrLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICAgICAgICBfR01fc2V0VmFsdWUoS0VZMiwg\nY2hvb3NlU29ydFRleHQpO1xuICAgICAgICAgIGxvZy5pbmZvKGDliIfmjaLor4TorrrmjpLluo\/v\nvJoke2Nob29zZVNvcnRUZXh0fWApO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdXRpbHMu\nd2FpdE5vZGUoXCJ1bmktdmlldy5yZXBseS10b3AgLnN3aXRjaC10YWIgLnRhYi1pdGVtXCIsIDFl\nNCkudGhlbigoJHRhYkl0ZW0pID0+IHtcbiAgICAgICAgaWYgKCEkdGFiSXRlbSkge1xuICAgICAg\nICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaG9vc2VTb3J0VGV4dCA9IF9H\nTV9nZXRWYWx1ZShLRVkyKTtcbiAgICAgICAgaWYgKCFjaG9vc2VTb3J0VGV4dCkge1xuICAgICAg\nICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCAkdGFiSXRlbUxpc3QgPSBBcnJh\neS5mcm9tKFxuICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAg\nICBcInVuaS12aWV3LnJlcGx5LXRvcCAuc3dpdGNoLXRhYiAudGFiLWl0ZW1cIlxuICAgICAgICAg\nIClcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8ICR0YWJJ\ndGVtTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCAkaXRlbSA9ICR0YWJJ\ndGVtTGlzdFtpbmRleF07XG4gICAgICAgICAgY29uc3QgdGFiU29ydFRleHQgPSAkaXRlbS50ZXh0\nQ29udGVudC50cmltKCk7XG4gICAgICAgICAgaWYgKHRhYlNvcnRUZXh0ID09PSBjaG9vc2VTb3J0\nVGV4dCkge1xuICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoYOW9k+WJjeivhOiuuuaOkuW6j++8miR7\nY2hvb3NlU29ydFRleHR9YCk7XG4gICAgICAgICAgICBpZiAoJGl0ZW0uY2xhc3NMaXN0LmNvbnRh\naW5zKFwidGFiLWl0ZW0tYWN0aXZlXCIpKSB7XG4gICAgICAgICAgICAgIGxvZy5pbmZvKGDlvZPl\niY3or4TorrrmjpLluo\/kuI7pooTmnJ\/kuIDoh7RgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4g\nICAgICAgICAgICAgIHV0aWxzLm11dGF0aW9uVmlzaWJsZShcbiAgICAgICAgICAgICAgICAkaXRl\nbSxcbiAgICAgICAgICAgICAgICAoZW50cmllcywgb2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAg\nICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVv\ndXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAkaXRlbS5jbGljaygpO1xuICAgICAgICAg\nICAgICAgICAgfSwgMTI1MCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7\nXG4gICAgICAgICAgICAgICAgICByb290TWFyZ2luOiBcIi0xMHB4IDBweCAwcHggMHB4XCJcbiAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOivhOiuuuWOu+mHjVxuICAgICAqXC9cbiAgICBmaWx0ZXJEdXBsaWNh\ndGVDb21tZW50cygpIHtcbiAgICAgIGxvZy5pbmZvKGB1bmktYXBwID09PT4g6K+E6K665Y676YeN\nYCk7XG4gICAgICBUaWViYVVuaUFwcENvbW1lbnQud2F0Y2hDb21tZW50KChjb21tZW50Q29udGFp\nbmVySW5mb0xpc3QsIG9ic2VydmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbW1lbnRJZExpc3Qg\nPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNvbW1lbnRDb250YWlu\nZXJJbmZvTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBjb21tZW50Q29u\ndGFpbmVySW5mbyA9IGNvbW1lbnRDb250YWluZXJJbmZvTGlzdFtpbmRleF07XG4gICAgICAgICAg\nY29uc3QgY29tbWVudElkID0gY29tbWVudENvbnRhaW5lckluZm8uZGF0YS5pZDtcbiAgICAgICAg\nICBjb25zdCBjb250ZW50ID0gY29tbWVudENvbnRhaW5lckluZm8uZGF0YS5jb250ZW50O1xuICAg\nICAgICAgIGNvbnN0IGZsb29yID0gY29tbWVudENvbnRhaW5lckluZm8uZGF0YS5mbG9vcjtcbiAg\nICAgICAgICBpZiAodHlwZW9mIGNvbW1lbnRJZCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAg\nICAgaWYgKGNvbW1lbnRJZExpc3QuaW5jbHVkZXMoY29tbWVudElkKSkge1xuICAgICAgICAgICAg\nICBsb2cud2FybihcbiAgICAgICAgICAgICAgICBg5Yig6Zmk6YeN5aSN5qW85bGCJHtmbG9vcn3v\nvIxpZDogJHtjb21tZW50SWR977yM5YaF5a6577yaYCArIEpTT04uc3RyaW5naWZ5KGNvbnRlbnQp\nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGNvbW1lbnRDb250YWluZXJJbmZvLnJl\nbW92ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29tbWVudElkTGlz\ndC5wdXNoKGNvbW1lbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3otLTlkKfmnLrlmajk\nurrvvIjotLTlkKfljIXmiZPlkKzvvIlcbiAgICAgKlwvXG4gICAgYmxvY2tUaWVCYVJvYm90KCkg\ne1xuICAgICAgbG9nLmluZm8oYHVuaS1hcHAgPT09PiDlsY\/olL3otLTlkKfmnLrlmajkurrvvIjo\ntLTlkKfljIXmiZPlkKzvvIlgKTtcbiAgICAgIFRpZWJhVW5pQXBwQ29tbWVudC53YXRjaENvbW1l\nbnQoKGNvbW1lbnRDb250YWluZXJJbmZvTGlzdCwgb2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgdmFy\nIF9hMywgX2IsIF9jLCBfZDtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNv\nbW1lbnRDb250YWluZXJJbmZvTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjb25z\ndCBjb21tZW50Q29udGFpbmVySW5mbyA9IGNvbW1lbnRDb250YWluZXJJbmZvTGlzdFtpbmRleF07\nXG4gICAgICAgICAgY29uc3QgYXV0aG9yX2lkID0gY29tbWVudENvbnRhaW5lckluZm8uZGF0YS5h\ndXRob3JfaWQgfHwgKChfYiA9IChfYTMgPSBjb21tZW50Q29udGFpbmVySW5mby5kYXRhKSA9PSBu\ndWxsID8gdm9pZCAwIDogX2EzLmF1dGhvcikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLmlkKTtcbiAg\nICAgICAgICBjb25zdCBwb3J0cmFpdCA9IChfZCA9IChfYyA9IGNvbW1lbnRDb250YWluZXJJbmZv\nLmRhdGEpID09IG51bGwgPyB2b2lkIDAgOiBfYy5hdXRob3IpID09IG51bGwgPyB2b2lkIDAgOiBf\nZC5wb3J0cmFpdDtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gY29tbWVudENvbnRhaW5lcklu\nZm8uZGF0YS5jb250ZW50O1xuICAgICAgICAgIGlmIChUaWViYVBvc3RBcGkuaXNSb2JvdCh7IGlk\nOiBhdXRob3JfaWQsIHBvcnRyYWl0IH0pKSB7XG4gICAgICAgICAgICBsb2cud2Fybihg5Yig6Zmk\n6LS05ZCn5py65Zmo5Lq66K+E6K665YaF5a6577yaYCArIEpTT04uc3RyaW5naWZ5KGNvbnRlbnQp\nKTtcbiAgICAgICAgICAgIGNvbW1lbnRDb250YWluZXJJbmZvLnJlbW92ZSgpO1xuICAgICAgICAg\nIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5qW85Lit\n5qW85Zue5aSN5by556qX5omL5Yq\/6L+U5ZueXG4gICAgICpcL1xuICAgIG9wdGltaXphdGlvbkx6\nbFBvc3RCYWNrR2VzdHVyZVJldHVybigpIHtcbiAgICAgIGxvZy5pbmZvKGB1bmktYXBwID09PT4g\n5qW85Lit5qW85Zue5aSN5by556qX5omL5Yq\/6L+U5ZueYCk7XG4gICAgICBsZXQgZ2VzdHVyZUJh\nY2sgPSBuZXcgR2VzdHVyZUJhY2soe1xuICAgICAgICBoYXNoOiBHZWFzdHVyZUJhY2tIYXNoQ29u\nZmlnLnNlZUx6bFJlcGx5LFxuICAgICAgICB1c2VVcmw6IHRydWUsXG4gICAgICAgIGJlZm9yZUhp\nc3RvcnlCYWNrQ2FsbEJhY2soaXNVcmxDaGFuZ2UpIHtcbiAgICAgICAgICBpZiAoaXNVcmxDaGFu\nZ2UpIHtcbiAgICAgICAgICAgIGNsb3NlRGlhbG9nQnlVcmxDaGFuZ2UoKTtcbiAgICAgICAgICB9\nXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZnVuY3Rpb24gY2xvc2VEaWFsb2dCeVVybENo\nYW5nZSgpIHtcbiAgICAgICAgbGV0ICRsemxDbG9zZUljb24gPSBkb2N1bWVudC5xdWVyeVNlbGVj\ndG9yKFwiLmx6bC1jbG9zZS1pY29uXCIpO1xuICAgICAgICBpZiAoJGx6bENsb3NlSWNvbikge1xu\nICAgICAgICAgICRsemxDbG9zZUljb24uY2xpY2soKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAg\nICAgICBRbXNnLmVycm9yKGDmnKrmib7liLDlhbPpl63mpbzkuK3mpbzlm57lpI3lvLnnqpfnmoTm\njInpkq5gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9tdXRpbHMub24oZG9jdW1lbnQs\nIFwiY2xpY2tcIiwgXCIubHpsLXdyYXBwZXJcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxvZy5p\nbmZvKGDngrnlh7vmpbzkuK3mpbzlm57lpI1gKTtcbiAgICAgICAgZ2VzdHVyZUJhY2suZW50ZXJH\nZXN0dXJlQmFja01vZGUoKTtcbiAgICAgIH0pO1xuICAgICAgZG9tdXRpbHMub24oZG9jdW1lbnQs\nIFwiY2xpY2tcIiwgXCIubHpsLWNsb3NlLWljb25cIiwgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxv\nZy5pbmZvKGDngrnlh7vlhbPpl63mjInpkq4t5YWz6Zet5qW85Lit5qW85Zue5aSN5by556qXYCk7\nXG4gICAgICAgIGdlc3R1cmVCYWNrLnF1aXRHZXN0dXJlQmFja01vZGUoKTtcbiAgICAgIH0pO1xu\nICAgICAgZG9tdXRpbHMub24oXG4gICAgICAgIGRvY3VtZW50LFxuICAgICAgICBcImNsaWNrXCIs\nXG4gICAgICAgIFwiLmx6bC1mbG9hdC1jb250YWluZXIgLmVycm9yLWNsb3NlXCIsXG4gICAgICAg\nIChldmVudCkgPT4ge1xuICAgICAgICAgIGxvZy5pbmZvKGDngrnlh7vpga7nvanlsYIt5YWz6Zet\n5qW85Lit5qW85Zue5aSN5by556qXYCk7XG4gICAgICAgICAgZ2VzdHVyZUJhY2sucXVpdEdlc3R1\ncmVCYWNrTW9kZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAg\nICAqIOWbvueJh+mihOiniOaJi+WKv+i\/lOWbnlxuICAgICAqXC9cbiAgICBvcHRpbWl6YXRpb25J\nbWFnZVByZXZpZXdCYWNrR2VzdHVyZVJldHVybigpIHtcbiAgICAgIGxvZy5pbmZvKGB1bmktYXBw\nID09PT4g5Zu+54mH6aKE6KeI5omL5Yq\/6L+U5ZueYCk7XG4gICAgICBsZXQgZ2VzdHVyZUJhY2sg\nPSBuZXcgR2VzdHVyZUJhY2soe1xuICAgICAgICBoYXNoOiBHZWFzdHVyZUJhY2tIYXNoQ29uZmln\nLnByZXZpZXdJbWFnZSxcbiAgICAgICAgdXNlVXJsOiB0cnVlLFxuICAgICAgICBiZWZvcmVIaXN0\nb3J5QmFja0NhbGxCYWNrKGlzVXJsQ2hhbmdlKSB7XG4gICAgICAgICAgaWYgKGlzVXJsQ2hhbmdl\nKSB7XG4gICAgICAgICAgICBjbG9zZUJ5VXJsQ2hhbmdlKCk7XG4gICAgICAgICAgfVxuICAgICAg\nICB9XG4gICAgICB9KTtcbiAgICAgIGZ1bmN0aW9uIGNsb3NlQnlVcmxDaGFuZ2UoKSB7XG4gICAg\nICAgIGxldCAkY2xvc2VJY29uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBc\nIi5pbWctcHJldmlldyAuYmFjay1pY29uLWNvblwiXG4gICAgICAgICk7XG4gICAgICAgIGlmICgk\nY2xvc2VJY29uKSB7XG4gICAgICAgICAgJGNsb3NlSWNvbi5jbGljaygpO1xuICAgICAgICB9IGVs\nc2Uge1xuICAgICAgICAgIGxvZy53YXJuKGDmnKrmib7liLDpgIDlh7rlm77niYfpooTop4jmqKHl\nvI\/nmoTmjInpkq5gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZG9tdXRpbHMub24oZG9j\ndW1lbnQsIFwiY2xpY2tcIiwgXCJpbWdcIiwgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxldCAkY2xp\nY2sgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGxldCAkcGFyZW50ID0gJGNsaWNrLnBhcmVudEVs\nZW1lbnQ7XG4gICAgICAgIGlmICgkcGFyZW50LmxvY2FsTmFtZSA9PT0gXCJ1bmktaW1hZ2VcIiAm\nJiAkcGFyZW50LmNsYXNzTGlzdC5jb250YWlucyhcInBiLWltYWdlXCIpKSB7XG4gICAgICAgICAg\nZ2VzdHVyZUJhY2suZW50ZXJHZXN0dXJlQmFja01vZGUoKTtcbiAgICAgICAgICB1dGlscy53YWl0\nTm9kZShcIi5pbWctcHJldmlldyAuYmFjay1pY29uLWNvblwiLCAxZTQpLnRoZW4oKCRiYWNrSWNv\nbikgPT4ge1xuICAgICAgICAgICAgaWYgKCEkYmFja0ljb24pIHtcbiAgICAgICAgICAgICAgcmV0\ndXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9tdXRpbHMub24oJGJhY2tJY29uLCBc\nImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgZ2VzdHVyZUJhY2sucXVpdEdlc3R1cmVC\nYWNrTW9kZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAg\nICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOS\/ruWkjeaQnOe0ouWKn+iDvVxuICAg\nICAqXC9cbiAgICByZXBhaXJTZWFyY2goKSB7XG4gICAgICBsb2cuaW5mbyhgdW5pLWFwcCA9PT0+\nIOS\/ruWkjeaQnOe0ouWKn+iDvWApO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIubmF2LWJhciAu\nbmF2LWJhci1mb3J1bS1pbmZvXCIsIDFlNCkudGhlbigoJG5hdkJhckZvcnVtSW5mbykgPT4ge1xu\nICAgICAgICBpZiAoISRuYXZCYXJGb3J1bUluZm8pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAg\nICAgIH1cbiAgICAgICAgbGV0ICRuYXZCYXIgPSAkbmF2QmFyRm9ydW1JbmZvLmNsb3Nlc3QoXCIu\nbmF2LWJhclwiKTtcbiAgICAgICAgbGV0ICRtb3JlQnRuRGVzYyA9IGRvbXV0aWxzLmNyZWF0ZUVs\nZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzTmFtZTogXCJtb3JlLWJ0bi1kZXNjXCIs\nXG4gICAgICAgICAgaW5uZXJUZXh0OiBcIuaQnOe0olwiXG4gICAgICAgIH0pO1xuICAgICAgICAk\nbmF2QmFyLmFwcGVuZENoaWxkKCRtb3JlQnRuRGVzYyk7XG4gICAgICAgIGFkZFN0eWxlKFxuICAg\nICAgICAgIFwvKmNzcypcL1xuICAgICAgICAgIGBcblx0XHRcdFx0Lm5hdi1iYXIgLm1vcmUtYnRu\nLWRlc2N7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0XHR9XG5cdFx0XHRcdCNz\nZWFyY2ggLm5hdi1iYXItd3JhcHBlcntcblx0XHRcdFx0XHRoZWlnaHQ6IDQ4cHg7XG5cdFx0XHRc\ndH1cblx0XHRcdFx0I3NlYXJjaCAubmF2LWJhci13cmFwcGVyIHN2Z3tcblx0XHRcdFx0XHR3aWR0\naDogMTZweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0I3Nl\nYXJjaCAubmF2LXNlYXJjaC1idG57XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0\nXHR9XG5cdFx0XHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1bHR7XG5cdFx0XHRcdFx0dG9wOiA0OHB4\nO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1bHQtbW9kZWx7XG5cdFx0\nXHRcdFx0dG9wOiA0OHB4O1xuXHRcdFx0XHRcdGhlaWdodDogMzJweDtcblx0XHRcdFx0fVxuXHRc\ndFx0XHQjc2VhcmNoIC5zZWFyY2gtcmVzdWx0LW1vZGVsIC5zZWFyY2gtcmVzdWx0LW1vZGVsLWl0\nZW1bZGF0YS1hY3RpdmVdOmFmdGVye1xuXHRcdFx0XHRcdHdpZHRoOiAyMHB4O1xuICAgIFx0XHRc\ndFx0bWFyZ2luOiAwIDVweCAwcHg7XG5cdFx0XHRcdH1cblx0XHRcdFx0I3NlYXJjaCAuc2VhcmNo\nLXJlc3VsdC1mcm9tLWluZm97XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMzJweDtcblx0XHRcdFx0\nfVxuXHRcdFx0XHQjc2VhcmNoIC5zZWFyY2gtcmVzdWx0LW1lZGlhLWxlZnR7XG5cdFx0XHRcdFx0\ncGFkZGluZy1yaWdodDogOHB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0I3NlYXJj\naCAuc2VhcmNoLXJlc3VsdC1tZWRpYS1sZWZ0IGltZ3tcblx0XHRcdFx0XHR3aWR0aDogMzVweCAh\naW1wb3J0YW50OztcbiAgICBcdFx0XHRcdGhlaWdodDogMzVweCAhaW1wb3J0YW50Oztcblx0XHRc\ndFx0fVxuXHRcdFx0XHQjc2VhcmNoIC5zZWFyY2gtcmVzdWx0LW1lZGlhLWJvZHktYXV0aG9yLW5h\nbWV7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMnB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0Zm9u\ndC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0bGluZS1oZWlnaHQ6IDE1cHggIWlt\ncG9ydGFudDtcblx0XHRcdFx0fVxuXHRcdFx0XHQjc2VhcmNoIC5zZWFyY2gtcmVzdWx0LW1lZGlh\nLWJvZHktdGltZXtcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiA2cHggIWltcG9ydGFudDtcblx0XHRc\ndFx0XHRmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDog\nMTJweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdCNzZWFyY2ggLnNlYXJjaC1yZXN1\nbHQtdGl0bGUsICNzZWFyY2ggLnNlYXJjaC1yZXN1bHQtY29udGVudCwgI3NlYXJjaCAuc2VhcmNo\nLXJlc3VsdC1ib3R0b20tdG9vbGJhcntcblx0XHRcdFx0XHRtYXJnaW4tdG9wOiA4cHggIWltcG9y\ndGFudDtcblx0XHRcdFx0fVxuXHRcdFx0XHQjc2VhcmNoIGgxLnNlYXJjaC1yZXN1bHQtdGl0bGUt\naDF7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0\nXHRcdFx0YFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n5L+u5aSN6LaF6ZO+5o6l6Lez6L2sXG4gICAgICpcL1xuICAgIHJlcGFpckFuY2hvckxpbmsoKSB7\nXG4gICAgICBkb211dGlscy5vbihcbiAgICAgICAgZG9jdW1lbnQsXG4gICAgICAgIFwiY2xpY2tc\nIixcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdmFyIF9hMywgX2IsIF9jLCBfZCwg\nX2UsIF9mLCBfZywgX2gsIF9pLCBfaiwgX2ssIF9sLCBfbSwgX247XG4gICAgICAgICAgbGV0ICRj\nbGljayA9IGV2ZW50LmNvbXBvc2VkUGF0aCgpWzBdO1xuICAgICAgICAgIGlmICgkY2xpY2subm9k\nZVR5cGUgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmICRjbGljay5jbGFzc0xpc3QpIHtcbiAgICAg\nICAgICAgIGlmICgkY2xpY2suY2xhc3NMaXN0LmNvbnRhaW5zKFwicGItbGlua1wiKSkge1xuICAg\nICAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAgICAgICAgICAgICBsZXQg\ndnVlM0lucyA9IFZ1ZVV0aWxzLmdldFZ1ZTMoJGNsaWNrKTtcbiAgICAgICAgICAgICAgbGV0IHZ1\nZTJJbnMgPSBWdWVVdGlscy5nZXRWdWUoJGNsaWNrKTtcbiAgICAgICAgICAgICAgbGV0IGxpbmsg\nPSAoKF9iID0gKF9hMyA9IHZ1ZTNJbnMgPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZTNJbnMucHJvcHMp\nID09IG51bGwgPyB2b2lkIDAgOiBfYTMuY29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLmxp\nbmspIHx8ICgoX2MgPSB2dWUySW5zID09IG51bGwgPyB2b2lkIDAgOiB2dWUySW5zLmNvbnRlbnQp\nID09IG51bGwgPyB2b2lkIDAgOiBfYy5saW5rKTtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBs\naW5rID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgbG9nLmluZm8oYOeCueWHu+i2\nhemTvuaOpe+8mmAgKyBsaW5rKTtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihsaW5rLCBc\nIl9ibGFua1wiKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQg\nJHVuaVRleHQgPSAkY2xpY2suY2xvc2VzdChcInVuaS10ZXh0LnBiLWNvbnRlbnQtaXRlbVwiKTtc\nbiAgICAgICAgICAgICAgICBsZXQgdnVlSW5zID0gVnVlVXRpbHMuZ2V0VnVlKCR1bmlUZXh0KTtc\nbiAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbiA9IChfaCA9IChfZSA9IChfZCA9IHZ1ZUlucyA9\nPSBudWxsID8gdm9pZCAwIDogdnVlSW5zLiR2bm9kZSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9kLmNv\nbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfZS5zZWN0aW9uRGF0YSkgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9oWyhfZyA9IChfZiA9IHZ1ZUlucyA9PSBudWxsID8gdm9pZCAwIDogdnVlSW5zLiR2bm9k\nZSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9mLmNvbnRleHQpID09IG51bGwgPyB2b2lkIDAgOiBfZy5z\nZWN0aW9uSWR4XTtcbiAgICAgICAgICAgICAgICBpZiAoc2VjdGlvbiAhPSBudWxsKSB7XG4gICAg\nICAgICAgICAgICAgICBsZXQgZmluZFZhbHVlID0gc2VjdGlvbltcImNvbnRlbnRcIl0uZmluZChc\nbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0udHlwZSA9PSAxICYmIGl0ZW0udGV4\ndCA9PSAoJGNsaWNrLnRleHRDb250ZW50IHx8ICRjbGljay5pbm5lclRleHQpXG4gICAgICAgICAg\nICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgaWYgKGZpbmRWYWx1ZSkge1xuICAgICAgICAg\nICAgICAgICAgICBsZXQgbGluazIgPSBmaW5kVmFsdWVbXCJsaW5rXCJdO1xuICAgICAgICAgICAg\nICAgICAgICBsb2cuaW5mbyhg54K55Ye76LaF6ZO+5o6l77yaYCArIGxpbmsyKTtcbiAgICAgICAg\nICAgICAgICAgICAgd2luZG93Lm9wZW4obGluazIsIFwiX2JsYW5rXCIpO1xuICAgICAgICAgICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKFwi6I635Y+W6ZO+\n5o6l5aSx6LSlXCIpO1xuICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoJGNsaWNrLCB2dWUz\nSW5zLCAkdW5pVGV4dCwgdnVlSW5zLCBzZWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgUW1z\nZy5lcnJvcihcIuiOt+WPlumTvuaOpeWksei0pVwiKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKFwi6I63\n5Y+W6ZO+5o6l5aSx6LSlXCIpO1xuICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCRjbGljaywg\ndnVlM0lucyk7XG4gICAgICAgICAgICAgICAgICBRbXNnLmVycm9yKFwi6I635Y+W6ZO+5o6l5aSx\n6LSlXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nfSBlbHNlIGlmICgkY2xpY2suY2xhc3NMaXN0LmNvbnRhaW5zKFwicGItYXRcIikpIHtcbiAgICAg\nICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgbG9nLmlu\nZm8oXCLngrnlh7tAXCIpO1xuICAgICAgICAgICAgICBsZXQgdnVlM0lucyA9IFZ1ZVV0aWxzLmdl\ndFZ1ZTMoJGNsaWNrKTtcbiAgICAgICAgICAgICAgbGV0IHZ1ZUlucyA9IFZ1ZVV0aWxzLmdldFZ1\nZSgkY2xpY2spO1xuICAgICAgICAgICAgICBsZXQgdW4gPSAoKF9qID0gKF9pID0gdnVlM0lucyA9\nPSBudWxsID8gdm9pZCAwIDogdnVlM0lucy5wcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9pLmNv\nbnRlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfai50ZXh0KSB8fCAoKF9rID0gdnVlSW5zID09IG51\nbGwgPyB2b2lkIDAgOiB2dWVJbnMuY29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9rLnRleHQp\nO1xuICAgICAgICAgICAgICAoKF9tID0gKF9sID0gdnVlM0lucyA9PSBudWxsID8gdm9pZCAwIDog\ndnVlM0lucy5wcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9sLmNvbnRlbnQpID09IG51bGwgPyB2\nb2lkIDAgOiBfbS50eXBlKSB8fCAoKF9uID0gdnVlSW5zID09IG51bGwgPyB2b2lkIDAgOiB2dWVJ\nbnMuY29udGVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9uLnR5cGUpO1xuICAgICAgICAgICAgICBp\nZiAodW4gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihcIuiOt+WPlueUqOaI\nt3Vu5aSx6LSlXCIpO1xuICAgICAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bnlKjmiLd1\nbuWksei0pVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgdW4gPSB1bi5yZXBsYWNlKFwvXkBcL2csIFwiXCIpO1xuICAgICAgICAgICAg\nICBsZXQgdXNlckhvbWVVcmwgPSBUaWViYVVybEFwaS5nZXRVc2VySG9tZUJ5VU4odW4pO1xuICAg\nICAgICAgICAgICB3aW5kb3cub3Blbih1c2VySG9tZVVybCwgXCJfYmxhbmtcIik7XG4gICAgICAg\nICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2Fw\ndHVyZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgVGll\nYmFSZXBseSA9IHtcbiAgICAkZGF0YToge1xuICAgICAgXC8qKlxuICAgICAgICog5b2T5YmN5Zue\n5aSN57G75Z6LXG4gICAgICAgKlwvXG4gICAgICB0eXBlOiB2dWUucmVmKCksXG4gICAgICBcLyoq\nXG4gICAgICAgKiDlpoLmnpx0eXBlPW1haW7vvIzkvb\/nlKjor6XmlbDmja5cbiAgICAgICAqXC9c\nbiAgICAgIHJlcGx5TWFpbkRhdGE6IHZ1ZS5yZWYoKSxcbiAgICAgIFwvKipcbiAgICAgICAqIOWm\nguaenHR5cGU9Y29tbWVudO+8jOS9v+eUqOivpeaVsOaNrlxuICAgICAgICpcL1xuICAgICAgcmVw\nbHlDb21tZW50RGF0YTogdnVlLnJlZigpLFxuICAgICAgXC8qKlxuICAgICAgICog5aaC5p6cdHlw\nZT1semwtY29tbWVudO+8jOS9v+eUqOivpeaVsOaNrlxuICAgICAgICpcL1xuICAgICAgcmVwbHlM\nemxDb21tZW50RGF0YTogdnVlLnJlZigpLFxuICAgICAgXC8qKlxuICAgICAgICog5piv5ZCm5bey\n55m75b2VXG4gICAgICAgKlwvXG4gICAgICBpc0xvZ2luOiB2dWUucmVmKGZhbHNlKSxcbiAgICAg\nIFwvKipcbiAgICAgICAqIOaYr+WQpuato+WcqOWPkemAgeS4rVxuICAgICAgICpcL1xuICAgICAg\naXNTZW5kaW5nOiB2dWUucmVmKGZhbHNlKSxcbiAgICAgIFwvKipcbiAgICAgICAqIOS4u+WKqOin\npuWPkeaYvuekuuWujOaVtOeahOe8lui+keWZqFxuICAgICAgICpcL1xuICAgICAgaXNTaG93RnVs\nbEVkaXRvcjogdnVlLnJlZihmYWxzZSlcbiAgICB9LFxuICAgICR2dWU6IHtcbiAgICAgIGhhbmRs\nZXJDb21tZW50U3VjY2VzczogbnVsbFxuICAgIH0sXG4gICAgaW5pdCgpIHtcbiAgICAgIHRoaXMu\nc2V0R2xvYmFsQ29udGVudENsaWNrKCk7XG4gICAgICBkb211dGlscy5yZWFkeSgoKSA9PiB7XG4g\nICAgICAgIHRoaXMuaW5pdExvZ2luKCk7XG4gICAgICAgIHRoaXMuY292ZXJfaGFuZGxlckNvbW1l\nbnRTdWNjZXNzKCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorr7nva7l\nvZPliY3lm57lpI3kuLrlj5HluIPmnKzluJblrZDnmoTkurpcbiAgICAgKlwvXG4gICAgc2V0Q3Vy\ncmVudFJlcGx5TWFpblVzZXIoKSB7XG4gICAgICBsZXQgY29tbWVudEJveFZ1ZU9iaiA9IHRoaXMu\nZ2V0Q29tbWVudEJveFdyYXBWdWUoKTtcbiAgICAgIGlmICghY29tbWVudEJveFZ1ZU9iaikge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgcmVwbHlJbmZvID0gY29tbWVudEJv\neFZ1ZU9iai5yZXBseUluZm87XG4gICAgICBsZXQgY3VycmVudFJlcGx5T2JqID0gY29tbWVudEJv\neFZ1ZU9iai5jdXJyZW50UmVwbHlPYmo7XG4gICAgICBsb2cuaW5mbyhbXG4gICAgICAgIFwi6K6+\n572u5pys5biW5Y+R5biW5Lq65Zue5aSN5Y+C5pWwXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBw\naWQ6IFRpZWJhQ29tbWVudC5waWRcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgICBjb21tZW50\nQm94VnVlT2JqLnBhZ2UgPSBcInBiXCI7XG4gICAgICBPYmplY3Qua2V5cyhjdXJyZW50UmVwbHlP\nYmopLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBjdXJyZW50UmVwbHlPYmpba2V5XSA9IHZv\naWQgMDtcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmtleXMocmVwbHlJbmZvKS5mb3JFYWNoKChr\nZXkpID0+IHtcbiAgICAgICAgY3VycmVudFJlcGx5T2JqW2tleV0gPSB2b2lkIDA7XG4gICAgICB9\nKTtcbiAgICAgIHJlcGx5SW5mby5waWQgPSBUaWViYUNvbW1lbnQucGlkO1xuICAgICAgY3VycmVu\ndFJlcGx5T2JqLnBpZCA9IFRpZWJhQ29tbWVudC5waWQ7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog6K6+572u5b2T5YmN5Li65Zue5aSNeHjnlKjmiLdcbiAgICAgKlwvXG4gICAgc2V0Q3VycmVu\ndFJlcGx5VXNlcihwaWQsIGF1dGhvck5hbWUpIHtcbiAgICAgIGxldCBjb21tZW50Qm94VnVlT2Jq\nID0gdGhpcy5nZXRDb21tZW50Qm94V3JhcFZ1ZSgpO1xuICAgICAgaWYgKCFjb21tZW50Qm94VnVl\nT2JqKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCByZXBseUluZm8gPSBj\nb21tZW50Qm94VnVlT2JqLnJlcGx5SW5mbztcbiAgICAgIGxldCBjdXJyZW50UmVwbHlPYmogPSBj\nb21tZW50Qm94VnVlT2JqLmN1cnJlbnRSZXBseU9iajtcbiAgICAgIGxvZy5pbmZvKFtcbiAgICAg\nICAgXCLorr7nva7or4TorrrljLrlm57lpI3lj4LmlbBcIixcbiAgICAgICAge1xuICAgICAgICAg\nIHBpZCxcbiAgICAgICAgICBhdXRob3JOYW1lXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgICAg\nY29tbWVudEJveFZ1ZU9iai5wYWdlID0gXCJwYlwiO1xuICAgICAgT2JqZWN0LmtleXMoY3VycmVu\ndFJlcGx5T2JqKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgY3VycmVudFJlcGx5T2JqW2tl\neV0gPSB2b2lkIDA7XG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5rZXlzKHJlcGx5SW5mbykuZm9y\nRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGN1cnJlbnRSZXBseU9ialtrZXldID0gdm9pZCAwO1xu\nICAgICAgfSk7XG4gICAgICByZXBseUluZm8ucGlkID0gcGlkO1xuICAgICAgcmVwbHlJbmZvLmF1\ndGhvck5hbWUgPSBhdXRob3JOYW1lO1xuICAgICAgY3VycmVudFJlcGx5T2JqLnBpZCA9IHBpZDtc\nbiAgICAgIGN1cnJlbnRSZXBseU9iai5hdXRob3JOYW1lID0gYXV0aG9yTmFtZTtcbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDorr7nva7lvZPliY3kuLrlm57lpI3mpbzkuK3mpbznlKjmiLdcbiAg\nICAgKlwvXG4gICAgc2V0Q3VycmVudFJlcGx5THpsVXNlcihwaWQsIGF1dGhvck5hbWUsIGx6bElk\nLCBmbG9vciwgcG9ydHJhaXQpIHtcbiAgICAgIGxldCBjb21tZW50Qm94VnVlT2JqID0gdGhpcy5n\nZXRDb21tZW50Qm94V3JhcFZ1ZSgpO1xuICAgICAgaWYgKCFjb21tZW50Qm94VnVlT2JqKSB7XG4g\nICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCByZXBseUluZm8gPSBjb21tZW50Qm94\nVnVlT2JqLnJlcGx5SW5mbztcbiAgICAgIGxldCBjdXJyZW50UmVwbHlPYmogPSBjb21tZW50Qm94\nVnVlT2JqLmN1cnJlbnRSZXBseU9iajtcbiAgICAgIGxvZy5pbmZvKFtcbiAgICAgICAgXCLorr7n\nva7mpbzkuK3mpbzlm57lpI3lj4LmlbBcIixcbiAgICAgICAge1xuICAgICAgICAgIGF1dGhvck5h\nbWUsXG4gICAgICAgICAgZmxvb3IsXG4gICAgICAgICAgbHpsSWQsXG4gICAgICAgICAgcGlkLFxu\nICAgICAgICAgIHBvcnRyYWl0XG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgICAgY29tbWVudEJv\neFZ1ZU9iai5wYWdlID0gXCJsemxcIjtcbiAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnRSZXBseU9i\naikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGN1cnJlbnRSZXBseU9ialtrZXldID0gdm9p\nZCAwO1xuICAgICAgfSk7XG4gICAgICBPYmplY3Qua2V5cyhyZXBseUluZm8pLmZvckVhY2goKGtl\neSkgPT4ge1xuICAgICAgICBjdXJyZW50UmVwbHlPYmpba2V5XSA9IHZvaWQgMDtcbiAgICAgIH0p\nO1xuICAgICAgcmVwbHlJbmZvLmF1dGhvck5hbWUgPSBhdXRob3JOYW1lO1xuICAgICAgcmVwbHlJ\nbmZvLmZsb29yID0gZmxvb3I7XG4gICAgICByZXBseUluZm8ubHpsSWQgPSBsemxJZDtcbiAgICAg\nIHJlcGx5SW5mby5waWQgPSBwaWQ7XG4gICAgICByZXBseUluZm8ucG9ydHJhaXQgPSBwb3J0cmFp\ndCArIFwiP1wiO1xuICAgICAgY3VycmVudFJlcGx5T2JqLmF1dGhvck5hbWUgPSBhdXRob3JOYW1l\nO1xuICAgICAgY3VycmVudFJlcGx5T2JqLmZsb29yID0gZmxvb3I7XG4gICAgICBjdXJyZW50UmVw\nbHlPYmoubHpsSWQgPSBsemxJZDtcbiAgICAgIGN1cnJlbnRSZXBseU9iai5waWQgPSBwaWQ7XG4g\nICAgICBjdXJyZW50UmVwbHlPYmoucG9ydHJhaXQgPSBwb3J0cmFpdCArIFwiP1wiO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOiuvue9ruWFqOWxgOebkeWQrOeCueWHu+WGheWuueS6i+S7tlxu\nICAgICAqXC9cbiAgICBzZXRHbG9iYWxDb250ZW50Q2xpY2soKSB7XG4gICAgICBsZXQgdGhhdCA9\nIHRoaXM7XG4gICAgICBmdW5jdGlvbiBjaGVja05vdFRyaWdnZXJSZXBseShldmVudCkge1xuICAg\nICAgICBsZXQgY3VycmVudENvbXBvc2VkID0gZXZlbnQuY29tcG9zZWRQYXRoKClbMF07XG4gICAg\nICAgIGlmIChjdXJyZW50Q29tcG9zZWQubG9jYWxOYW1lID09PSBcImFcIikge1xuICAgICAgICAg\nIGxvZy5pbmZvKFwiPGE+5qCH562+5LiN6Kem5Y+R5Zue5aSN5Yqf6IO9XCIpO1xuICAgICAgICAg\nIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudENvbXBvc2VkLmxv\nY2FsTmFtZSA9PT0gXCJpbWdcIiAmJiAhY3VycmVudENvbXBvc2VkLmNsYXNzTGlzdC5jb250YWlu\ncyhcIkJERV9TbWlsZXlcIikpIHtcbiAgICAgICAgICBsb2cuaW5mbyhcIjxpbWc+5qCH562+5LiN\n6Kem5Y+R5Zue5aSN5Yqf6IO9XCIpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAg\nfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGRvbXV0aWxzLm9uKGRvY3Vt\nZW50LCBcImNsaWNrXCIsIFwiLnBvc3QtaXRlbSAuY29udGVudFwiLCAoZXZlbnQpID0+IHtcbiAg\nICAgICAgaWYgKCFjaGVja05vdFRyaWdnZXJSZXBseShldmVudCkpIHtcbiAgICAgICAgICByZXR1\ncm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0ICRjbGlja0NvbnRlbnQgPSBldmVudC50YXJnZXQ7\nXG4gICAgICAgIHRoYXQuJGRhdGEucmVwbHlDb21tZW50RGF0YS52YWx1ZSA9IHZvaWQgMDtcbiAg\nICAgICAgdGhhdC4kZGF0YS50eXBlLnZhbHVlID0gdm9pZCAwO1xuICAgICAgICBsb2cuaW5mbyhc\nIueCueWHu+WGheWuue+8jOinpuWPkeiuvue9ruW9k+WJjeWbnuWkjeeahOWvueixoVwiKTtcbiAg\nICAgICAgdHJ5IHtcbiAgICAgICAgICBsZXQgJGNvbW1lbnRCb3hXcmFwID0gdGhhdC5nZXRDb21t\nZW50Qm94V3JhcCgpO1xuICAgICAgICAgICRjb21tZW50Qm94V3JhcC5jbGFzc0xpc3QucmVtb3Zl\nKFwiY29tbWVudC1ib3gtd3JhcC1semxcIik7XG4gICAgICAgICAgbGV0ICRwb3N0SXRlbSA9ICRj\nbGlja0NvbnRlbnQuY2xvc2VzdChcIi5wb3N0LWl0ZW1cIik7XG4gICAgICAgICAgbGV0IGl0ZW1E\nYXRhID0gJHBvc3RJdGVtW1wiZGF0YS13aGl0ZXNldlwiXTtcbiAgICAgICAgICBsZXQgJHRleHRD\nb250ZW50ID0gJGNsaWNrQ29udGVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgXCIudGV4\ndC1jb250ZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGxldCB0ZXh0Q29udGVudCA9ICR0\nZXh0Q29udGVudC5pbm5lclRleHQ7XG4gICAgICAgICAgbG9nLmluZm8oW1wi6I635Y+W5YWD57Sg\n5LiK55qE5pWw5o2uXCIsIGl0ZW1EYXRhXSk7XG4gICAgICAgICAgbGV0IGF1dGhvck5hbWUgPSBp\ndGVtRGF0YVtcInVzZXJOYW1lXCJdO1xuICAgICAgICAgIGxldCBwaWQgPSBpdGVtRGF0YVtcInVz\nZXJQb3N0SWRcIl07XG4gICAgICAgICAgdGhhdC5zZXRDdXJyZW50UmVwbHlVc2VyKHBpZCwgYXV0\naG9yTmFtZSk7XG4gICAgICAgICAgdGhhdC4kZGF0YS5yZXBseUNvbW1lbnREYXRhLnZhbHVlID0g\ne1xuICAgICAgICAgICAgdHlwZTogXCJjb21tZW50XCIsXG4gICAgICAgICAgICBkYXRhOiB7XG4g\nICAgICAgICAgICAgIHBhZ2U6IFwicGJcIixcbiAgICAgICAgICAgICAgcGlkLFxuICAgICAgICAg\nICAgICBhdXRob3JOYW1lLFxuICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0Q29udGVudFxuICAg\nICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhhdC4kZGF0YS50eXBlLnZhbHVl\nID0gXCJjb21tZW50XCI7XG4gICAgICAgICAgdGhhdC4kZGF0YS5pc1Nob3dGdWxsRWRpdG9yLnZh\nbHVlID0gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2cuZXJy\nb3IoZXJyb3IpO1xuICAgICAgICAgIFFtc2cuZXJyb3IoZXJyb3IudG9TdHJpbmcoKSwge1xuICAg\nICAgICAgICAgekluZGV4OiB1dGlscy5nZXRNYXhaSW5kZXgoKSArIDEwMFxuICAgICAgICAgIH0p\nO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1\nbWVudCxcbiAgICAgICAgXCJjbGlja1wiLFxuICAgICAgICBcIiN3aGl0ZXNldi1yZXBseS1kaWFs\nb2cgLndoaXRlc2V2LXJlcGx5LWRpYWxvZy1jb250ZW50LWl0ZW1cIixcbiAgICAgICAgKGV2ZW50\nKSA9PiB7XG4gICAgICAgICAgbGV0ICRjbGlja0NvbnRlbnQgPSBldmVudC50YXJnZXQ7XG4gICAg\nICAgICAgaWYgKCRjbGlja0NvbnRlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFxuICAgICAgICAgICAg\nXCJ3aGl0ZXNldi1yZXBseS1kaWFsb2ctc2hlZXQtbWFpbi1jb250ZW50XCJcbiAgICAgICAgICAp\nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghY2hl\nY2tOb3RUcmlnZ2VyUmVwbHkoZXZlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAg\nICAgfVxuICAgICAgICAgIHRoYXQuJGRhdGEucmVwbHlMemxDb21tZW50RGF0YS52YWx1ZSA9IHZv\naWQgMDtcbiAgICAgICAgICB0aGF0LiRkYXRhLnR5cGUudmFsdWUgPSB2b2lkIDA7XG4gICAgICAg\nICAgbG9nLmluZm8oXCLngrnlh7vmpbzkuK3mpbzlhoXlrrnvvIzop6blj5Horr7nva7lvZPliY3l\nm57lpI3nmoTlr7nosaFcIik7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCAkY29t\nbWVudEJveFdyYXAgPSB0aGF0LmdldENvbW1lbnRCb3hXcmFwKCk7XG4gICAgICAgICAgICAkY29t\nbWVudEJveFdyYXAuY2xhc3NMaXN0LmFkZChcImNvbW1lbnQtYm94LXdyYXAtbHpsXCIpO1xuICAg\nICAgICAgICAgbGV0ICRyZXBseURpYWxvZyA9ICRjbGlja0NvbnRlbnQuY2xvc2VzdChcbiAgICAg\nICAgICAgICAgXCIjd2hpdGVzZXYtcmVwbHktZGlhbG9nXCJcbiAgICAgICAgICAgICk7XG4gICAg\nICAgICAgICBsZXQgJHVzZXJDb21tZW50ID0gJGNsaWNrQ29udGVudC5xdWVyeVNlbGVjdG9yKFxu\nICAgICAgICAgICAgICBcIi53aGl0ZXNldi1yZXBseS1kaWFsb2ctdXNlci1jb21tZW50XCJcbiAg\nICAgICAgICAgICk7XG4gICAgICAgICAgICBsZXQgdXNlckNvbW1lbnRUZXh0ID0gJHVzZXJDb21t\nZW50LmlubmVyVGV4dDtcbiAgICAgICAgICAgIGxldCBtYWluRGF0YSA9ICRyZXBseURpYWxvZ1tc\nImRhdGEtd2hpdGVzZXZcIl07XG4gICAgICAgICAgICBsZXQgaXRlbURhdGEgPSAkY2xpY2tDb250\nZW50W1wiZGF0YS1semwtaXRlbVwiXTtcbiAgICAgICAgICAgIGxvZy5pbmZvKFtcIuS4u+aVsOaN\nri3ojrflj5blhYPntKDkuIrnmoTmlbDmja5cIiwgbWFpbkRhdGFdKTtcbiAgICAgICAgICAgIGxv\nZy5pbmZvKFtcIuiOt+WPluWFg+e0oOS4iueahOaVsOaNrlwiLCBpdGVtRGF0YV0pO1xuICAgICAg\nICAgICAgbGV0IGF1dGhvck5hbWUgPSBpdGVtRGF0YVtcInVzZXJJbmZvXCJdW1widXNlcl9uaWNr\nbmFtZVwiXSB8fCBpdGVtRGF0YVtcInVzZXJJbmZvXCJdW1widXNlcl9uYW1lXCJdO1xuICAgICAg\nICAgICAgbGV0IHBpZCA9IGl0ZW1EYXRhW1wiZGF0YVwiXVtcInBvc3RfaWRcIl07XG4gICAgICAg\nICAgICBsZXQgbHpsSWQgPSBpdGVtRGF0YVtcImRhdGFcIl1bXCJjb21tZW50X2lkXCJdO1xuICAg\nICAgICAgICAgbGV0IHBvcnRyYWl0ID0gaXRlbURhdGFbXCJwb3J0cmFpdFwiXTtcbiAgICAgICAg\nICAgIGxldCBmbG9vciA9IG1haW5EYXRhW1widXNlckZsb29yXCJdO1xuICAgICAgICAgICAgdGhh\ndC5zZXRDdXJyZW50UmVwbHlMemxVc2VyKHBpZCwgYXV0aG9yTmFtZSwgbHpsSWQsIGZsb29yLCBw\nb3J0cmFpdCk7XG4gICAgICAgICAgICB0aGF0LiRkYXRhLnJlcGx5THpsQ29tbWVudERhdGEudmFs\ndWUgPSB7XG4gICAgICAgICAgICAgIHR5cGU6IFwibHpsLWNvbW1lbnRcIixcbiAgICAgICAgICAg\nICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHBhZ2U6IFwibHpsXCIsXG4gICAgICAgICAgICAg\nICAgY29udGVudDogdXNlckNvbW1lbnRUZXh0LFxuICAgICAgICAgICAgICAgIGF1dGhvck5hbWUs\nXG4gICAgICAgICAgICAgICAgZmxvb3IsXG4gICAgICAgICAgICAgICAgbHpsSWQsXG4gICAgICAg\nICAgICAgICAgcGlkLFxuICAgICAgICAgICAgICAgIHBvcnRyYWl0XG4gICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGF0LiRkYXRhLnR5cGUudmFsdWUgPSBcImx6\nbC1jb21tZW50XCI7XG4gICAgICAgICAgICB0aGF0LiRkYXRhLmlzU2hvd0Z1bGxFZGl0b3IudmFs\ndWUgPSB0cnVlO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBsb2cu\nZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgUW1zZy5lcnJvcihlcnJvci50b1N0cmluZygpLCB7\nXG4gICAgICAgICAgICAgIHpJbmRleDogdXRpbHMuZ2V0TWF4WkluZGV4KCkgKyAxMDBcbiAgICAg\nICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsIbovpPlhaXmoYbnmoTlgLzorr7nva7liLDljp\/ovpPlhaXmoYbkuK1c\nbiAgICAgKiBAcGFyYW0gdmFsdWUg6L6T5YWl55qE5YaF5a65XG4gICAgICogQHJldHVybnNcbiAg\nICAgKlwvXG4gICAgc2V0SW5wdXRWYWx1ZSh2YWx1ZSkge1xuICAgICAgbGV0IGNvbW1lbnRCb3hW\ndWVPYmogPSB0aGlzLmdldENvbW1lbnRCb3hXcmFwVnVlKCk7XG4gICAgICBpZiAoIWNvbW1lbnRC\nb3hWdWVPYmopIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAg\nICAgY29tbWVudEJveFZ1ZU9iai5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIGlmIChjb21t\nZW50Qm94VnVlT2JqLmNvbW1lbnRSZWYgJiYgY29tbWVudEJveFZ1ZU9iai5jb21tZW50UmVmIGlu\nc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgICAgIGNvbW1lbnRCb3hWdWVPYmou\nY29tbWVudFJlZi52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIHV0aWxzLmRpc3BhdGNoRXZlbnQo\nY29tbWVudEJveFZ1ZU9iai5jb21tZW50UmVmLCBcImlucHV0XCIpO1xuICAgICAgICB9XG4gICAg\nICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBRbXNnLmVycm9yKFwi6K6+572u6L6T5YWl5qGG\n5YC85aSx6LSlXCIpO1xuICAgICAgICBsb2cuZXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH0s\nXG4gICAgc2VuZE1zZ0JlZm9yZShzdWJtaXRUb3VjaFN0YXJ0RXZlbnQpIHtcbiAgICAgIGxldCBj\nb21tZW50Qm94VnVlT2JqID0gdGhpcy5nZXRDb21tZW50Qm94V3JhcFZ1ZSgpO1xuICAgICAgaWYg\nKCFjb21tZW50Qm94VnVlT2JqKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNv\nbW1lbnRCb3hWdWVPYmouc3VibWl0VG91Y2hzdGFydChzdWJtaXRUb3VjaFN0YXJ0RXZlbnQpO1xu\nICAgIH0sXG4gICAgc2VuZE1zZyhzdWJtaXRUb3VjaEVuZEV2ZW50KSB7XG4gICAgICBsZXQgY29t\nbWVudEJveFZ1ZU9iaiA9IHRoaXMuZ2V0Q29tbWVudEJveFdyYXBWdWUoKTtcbiAgICAgIGlmICgh\nY29tbWVudEJveFZ1ZU9iaikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb21t\nZW50Qm94VnVlT2JqLnN1Ym1pdFRvdWNoZW5kKHN1Ym1pdFRvdWNoRW5kRXZlbnQpO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOimhuebluWHveaVsGhhbmRsZXJDb21tZW50U3VjY2Vzc1xuICAg\nICAqXC9cbiAgICBjb3Zlcl9oYW5kbGVyQ29tbWVudFN1Y2Nlc3MoKSB7XG4gICAgICBsZXQgdGhh\ndCA9IHRoaXM7XG4gICAgICBWdWVVdGlscy53YWl0VnVlUHJvcFRvU2V0KFwiLmNvbW1lbnQtYm94\nLXdyYXBcIiwgW1xuICAgICAgICB7XG4gICAgICAgICAgbXNnOiBcIuetieW+heWxnuaApyBfZXZl\nbnRzWydjb21tZW50LXN1Y2Nlc3MnXVswXS5mbnMgPT4gaGFuZGxlckNvbW1lbnRTdWNjZXNzXCIs\nXG4gICAgICAgICAgY2hlY2sodnVlT2JqKSB7XG4gICAgICAgICAgICB2YXIgX2EzLCBfYiwgX2M7\nXG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mICgoX2MgPSAoX2IgPSAoX2EzID0gdnVlT2JqID09\nIG51bGwgPyB2b2lkIDAgOiB2dWVPYmouX2V2ZW50cykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hM1tc\nImNvbW1lbnQtc3VjY2Vzc1wiXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iWzBdKSA9PSBudWxsID8g\ndm9pZCAwIDogX2MuZm5zKSA9PT0gXCJmdW5jdGlvblwiO1xuICAgICAgICAgIH0sXG4gICAgICAg\nICAgc2V0KHZ1ZU9iaikge1xuICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoXCLmiJDlip\/opobnm5bl\nh73mlbAgIF9ldmVudHNbJ2NvbW1lbnQtc3VjY2VzcyddWzBdLmZuc1wiKTtcbiAgICAgICAgICAg\nIHZ1ZU9iai5fZXZlbnRzW1wiY29tbWVudC1zdWNjZXNzXCJdWzBdLmZucztcbiAgICAgICAgICAg\nIHZ1ZU9iai5fZXZlbnRzW1wiY29tbWVudC1zdWNjZXNzXCJdWzBdLmZucyA9IChmdW5jdGlvbigu\nLi5hcmdzKSB7XG4gICAgICAgICAgICAgIHRoYXQuJHZ1ZS5oYW5kbGVyQ29tbWVudFN1Y2Nlc3Mo\nLi4uYXJncyk7XG4gICAgICAgICAgICB9KS5iaW5kKHZ1ZU9iaik7XG4gICAgICAgICAgfVxuICAg\nICAgICB9XG4gICAgICBdKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5blm57lpI3m\noYblrrnlmajlhYPntKBcbiAgICAgKlwvXG4gICAgZ2V0Q29tbWVudEJveFdyYXAoKSB7XG4gICAg\nICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5jb21tZW50LWJveC13cmFwXCIpO1xu\nICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOetieW+heivhOiuuuahhuWuueWZqOWFg+e0oFxuICAg\nICAqIEBwYXJhbSBjYWxsYmFja1xuICAgICAqIEByZXR1cm5zXG4gICAgICpcL1xuICAgIHdhaXRD\nb21tZW50Qm94V3JhcChjYWxsYmFjaykge1xuICAgICAgZG9tdXRpbHMucmVhZHkoKCkgPT4ge1xu\nICAgICAgICB1dGlscy53YWl0Tm9kZShcIi5jb21tZW50LWJveC13cmFwXCIsIDFlNCkudGhlbigo\nJGNvbW1lbnRCb3hXcmFwKSA9PiB7XG4gICAgICAgICAgaWYgKFRpZWJhVW5pQXBwUG9zdC5pc1Vu\naUFwcCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlm\nICghJGNvbW1lbnRCb3hXcmFwKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXCLojrflj5bkuI3l\niLDor4TorrrmoYblrrnlmajlhYPntKAuY29tbWVudC1ib3gtd3JhcFwiKTtcbiAgICAgICAgICAg\nIFFtc2cuZXJyb3IoXCLojrflj5bkuI3liLDor4TorrrmoYblrrnlmajlhYPntKAuY29tbWVudC1i\nb3gtd3JhcFwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAg\nc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgIH0s\nIDIwMCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfSxcbiAg\nICBcLyoqXG4gICAgICog6I635Y+WLmNvbW1lbnQtYm94LXdyYXDnmoR2dWXlrp7kvotcbiAgICAg\nKlwvXG4gICAgZ2V0Q29tbWVudEJveFdyYXBWdWUoKSB7XG4gICAgICBsZXQgJGNvbW1lbnRCb3hX\ncmFwID0gdGhpcy5nZXRDb21tZW50Qm94V3JhcCgpO1xuICAgICAgaWYgKCEkY29tbWVudEJveFdy\nYXApIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6I635Y+W5LiN5YiwLmNvbW1lbnQtYm94LXdyYXDl\nhYPntKBcIik7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bkuI3liLAuY29tbWVudC1ib3gt\nd3JhcOWFg+e0oFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHZ1ZU9i\naiA9IFZ1ZVV0aWxzLmdldFZ1ZSgkY29tbWVudEJveFdyYXApO1xuICAgICAgaWYgKCF2dWVPYmop\nIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6I635Y+W5LiN5YiwLmNvbW1lbnQtYm94LXdyYXDlhYPn\ntKDkuIrnmoR2dWXlsZ7mgKdcIik7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bkuI3liLAu\nY29tbWVudC1ib3gtd3JhcOWFg+e0oOS4iueahHZ1ZeWxnuaAp1wiKTtcbiAgICAgICAgcmV0dXJu\nO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZ1ZU9iajtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDojrflj5ZhcHAtdmlld+eahHZ1ZeWunuS+i1xuICAgICAqXC9cbiAgICBnZXRBcHBWaWV3VnVl\nKCkge1xuICAgICAgbGV0ICRhcHBWaWV3ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5hcHAt\ndmlld1wiKTtcbiAgICAgIGlmICghJGFwcFZpZXcpIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6I63\n5Y+W5LiN5YiwYXBwLXZpZXflhYPntKBcIik7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bk\nuI3liLBhcHAtdmlld+WFg+e0oFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAg\nbGV0IHZ1ZU9iaiA9IFZ1ZVV0aWxzLmdldFZ1ZSgkYXBwVmlldyk7XG4gICAgICBpZiAoIXZ1ZU9i\naikge1xuICAgICAgICBsb2cuZXJyb3IoXCLojrflj5bkuI3liLBhcHAtdmlld+WFg+e0oOS4iuea\nhHZ1ZeWxnuaAp1wiKTtcbiAgICAgICAgUW1zZy5lcnJvcihcIuiOt+WPluS4jeWIsGFwcC12aWV3\n5YWD57Sg5LiK55qEdnVl5bGe5oCnXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAg\nICByZXR1cm4gdnVlT2JqO1xuICAgIH0sXG4gICAgaW5pdExvZ2luKCkge1xuICAgICAgbGV0IHRo\nYXQgPSB0aGlzO1xuICAgICAgVnVlVXRpbHMud2FpdFZ1ZVByb3BUb1NldChcIi5jb21tZW50LWJv\neC13cmFwXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIG1zZzogXCLnrYnlvoXlj4LmlbAgaXNM\nb2dpblwiLFxuICAgICAgICAgIGNoZWNrKHZ1ZU9iaikge1xuICAgICAgICAgICAgcmV0dXJuIHR5\ncGVvZiB2dWVPYmouaXNMb2dpbiA9PT0gXCJib29sZWFuXCI7XG4gICAgICAgICAgfSxcbiAgICAg\nICAgICBzZXQodnVlT2JqKSB7XG4gICAgICAgICAgICB0aGF0LiRkYXRhLmlzTG9naW4udmFsdWUg\nPSB2dWVPYmouaXNMb2dpbjtcbiAgICAgICAgICAgIGxvZy5zdWNjZXNzKFwi5oiQ5Yqf6I635Y+W\n5Y+C5pWwIGlzTG9naW49XCIgKyB0aGF0LiRkYXRhLmlzTG9naW4udmFsdWUpO1xuICAgICAgICAg\nIH1cbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfSxcbiAgICBjaGVja0xvZ2luKCkge1xuICAg\nICAgaWYgKHRoaXMuJGRhdGEuaXNMb2dpbi52YWx1ZSkge1xuICAgICAgICByZXR1cm47XG4gICAg\nICB9XG4gICAgICBsZXQgJGNvbW1lbnRCb3hXcmFwID0gdGhpcy5nZXRDb21tZW50Qm94V3JhcCgp\nO1xuICAgICAgbGV0IHZ1ZU9iaiA9IFZ1ZVV0aWxzLmdldFZ1ZSgkY29tbWVudEJveFdyYXApO1xu\nICAgICAgaWYgKCF2dWVPYmopIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6I635Y+W5Zue5aSN5qGG\n5a655Zmo5YWD57Sg55qEdnVl5bGe5oCn5aSx6LSlXCIpO1xuICAgICAgICByZXR1cm47XG4gICAg\nICB9XG4gICAgICB0aGlzLiRkYXRhLmlzTG9naW4udmFsdWUgPSB2dWVPYmouaXNMb2dpbjtcbiAg\nICAgIGlmICghdnVlT2JqLmlzTG9naW4pIHtcbiAgICAgICAgbG9nLmVycm9yKFwi5pyq55m75b2V\nXCIpO1xuICAgICAgICB0aGlzLnNob3dMb2dpbldha2VNb2RhbCgpO1xuICAgICAgfVxuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOaYvuekuueZu+W9leW8ueeql1xuICAgICAqXC9cbiAgICBzaG93\nTG9naW5XYWtlTW9kYWwoKSB7XG4gICAgICBsZXQgdnVlT2JqID0gdGhpcy5nZXRBcHBWaWV3VnVl\nKCk7XG4gICAgICBpZiAoIXZ1ZU9iaikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAg\nICB2dWVPYmouaXNTaG93TG9naW5XYWtlTW9kYWwgPSB0cnVlO1xuICAgIH0sXG4gICAgXC8qKlxu\nICAgICAqIOiuvue9ruWktOWDj+eCueWHu+S6i+S7tlxuICAgICAqICsg5pyq55m75b2VIOeCueWH\nu+aYvuekuueZu+W9leW8ueeql+aPkOekulxuICAgICAqICsg5bey55m75b2VIOeCueWHu+iuvue9\nruW9k+WJjeWbnuWkjeS4uuW9k+WJjeW4luWtkFxuICAgICAqXC9cbiAgICBzZXRBdmF0YXJDbGlj\na0V2ZW50KCkge1xuICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuICAgICAgdXRpbHMud2FpdE5vZGUo\nXCIuY29tbWVudC1ib3gtd3JhcCAuYXZhdGFyXCIsIDFlNCkudGhlbigoJGF2YXRhcikgPT4ge1xu\nICAgICAgICBpZiAoISRhdmF0YXIpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCLojrflj5blm57l\npI3moYblpLTlg4\/lhYPntKAuY29tbWVudC1ib3gtd3JhcCAuYXZhdGFy5aSx6LSlXCIpO1xuICAg\nICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkb211dGlscy5vbigkYXZhdGFyLCBc\nImNsaWNrXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgIGxldCAkY29tbWVudEJveFdyYXAgPSB0\naGF0LmdldENvbW1lbnRCb3hXcmFwKCk7XG4gICAgICAgICAgbGV0IHZ1ZU9iaiA9IFZ1ZVV0aWxz\nLmdldFZ1ZSgkY29tbWVudEJveFdyYXApO1xuICAgICAgICAgIGlmICghdnVlT2JqKSB7XG4gICAg\nICAgICAgICBsb2cuZXJyb3IoXCLojrflj5blm57lpI3moYblrrnlmajlhYPntKDnmoR2dWXlsZ7m\ngKflpLHotKVcIik7XG4gICAgICAgICAgICB1dGlscy5wcmV2ZW50RXZlbnQoZXZlbnQpO1xuICAg\nICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodnVlT2JqLmlzTG9n\naW4pIHtcbiAgICAgICAgICAgIGxvZy5pbmZvKFwi6YeN572u6buY6K6k5b2T5YmN5Zue5aSN5Li6\n5b2T5YmN5biW5a2QXCIpO1xuICAgICAgICAgICAgdGhhdC4kZGF0YS50eXBlLnZhbHVlID0gXCJt\nYWluXCI7XG4gICAgICAgICAgICAkY29tbWVudEJveFdyYXAuY2xhc3NMaXN0LnJlbW92ZShcImNv\nbW1lbnQtYm94LXdyYXAtbHpsXCIpO1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRSZXBseU9iaiA9\nIHZ1ZU9iai5jdXJyZW50UmVwbHlPYmo7XG4gICAgICAgICAgICBsZXQgcmVwbHlJbmZvID0gdnVl\nT2JqLnJlcGx5SW5mbztcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnRSZXBseU9iaiku\nZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBjdXJyZW50UmVwbHlPYmpb\na2V5XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY3VycmVudFJlcGx5T2JqLnBpZCA9\nIHJlcGx5SW5mby5waWQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZy5lcnJv\ncihcIuacqueZu+W9lVwiKTtcbiAgICAgICAgICAgIHRoYXQuc2hvd0xvZ2luV2FrZU1vZGFsKCk7\nXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29u\nc3QgdXNlVG9vbGJhclN0b3JlID0gcGluaWEkMS5kZWZpbmVTdG9yZSh7XG4gICAgaWQ6IFwiVG9v\nbGJhclN0b3JlXCIsXG4gICAgc3RhdGU6ICgpID0+ICh7XG4gICAgICBcLyoqIOaPkOekuuaWh+Wt\nlyAqXC9cbiAgICAgIHBsYWNlaG9sZGVyOiBcIuWPkeW4luWNg+eZvuW6piDmlofmmI7nrKzkuIDm\nraVcIixcbiAgICAgIFwvKiog5pi+56S655qEIOivhOiuuuaVsOmHjyAqXC9cbiAgICAgIHNob3dD\nb21tZW50Q291bnQ6IFwiMFwiLFxuICAgICAgXC8qKiDmmL7npLrnmoQg54K56LWe5pWw6YePICpc\nL1xuICAgICAgc2hvd0dvb2RDb3VudDogXCIwXCJcbiAgICB9KVxuICB9KTtcbiAgY29uc3QgdXNl\nVG9vbGJhclN0YXRlU3RvcmUgPSBwaW5pYSQxLmRlZmluZVN0b3JlKHtcbiAgICBpZDogXCJUb29s\nYmFyU3RhdGVcIixcbiAgICBzdGF0ZTogKCkgPT4gKHtcbiAgICAgIFwvKiog5piv5ZCm5pi+56S6\n5bCP5bel5YW35qCPICpcL1xuICAgICAgaXNTaG93U21hbGxUb29sYmFyOiB0cnVlLFxuICAgICAg\nXC8qKiDmmK\/lkKbmmL7npLrlrozmlbTnmoTlt6XlhbfmoI8gKlwvXG4gICAgICBpc1Nob3dGdWxs\nVG9vbGJhcjogZmFsc2UsXG4gICAgICBcLyoqIOaYr+WQpuWtmOWcqOWGheWuuSAqXC9cbiAgICAg\nIGlzRW1wdHk6IHRydWVcbiAgICB9KVxuICB9KTtcbiAgY29uc3QgdXNlQWNjb3VudFN0b3JlID0g\ncGluaWEkMS5kZWZpbmVTdG9yZShcImFjY291bnRcIiwge1xuICAgIHN0YXRlOiAoKSA9PiB7XG4g\nICAgICByZXR1cm4ge1xuICAgICAgICBcLyoqIOaYr+WQpuW3sueZu+W9lSAqXC9cbiAgICAgICAg\naXNMb2dpbjogZmFsc2VcbiAgICAgIH07XG4gICAgfSxcbiAgICBhY3Rpb25zOiB7fVxuICB9KTtc\nbiAgY29uc3QgX3dpdGhTY29wZUlkJDMgPSAobikgPT4gKHZ1ZS5wdXNoU2NvcGVJZChcImRhdGEt\ndi1kMjc5ZDAzZlwiKSwgbiA9IG4oKSwgdnVlLnBvcFNjb3BlSWQoKSwgbik7XG4gIGNvbnN0IF9o\nb2lzdGVkXzEkaSA9IHsgaWQ6IFwic21hbGwtdG9vbGJhclwiIH07XG4gIGNvbnN0IF9ob2lzdGVk\nXzIkYyA9IHsgY2xhc3M6IFwic21hbGwtZWRpdG9yLXRvb2xiYXJcIiB9O1xuICBjb25zdCBfaG9p\nc3RlZF8zJDkgPSBbXCJwbGFjZWhvbGRlclwiXTtcbiAgY29uc3QgX2hvaXN0ZWRfNCQ5ID0gXC8q\nIEBfX1BVUkVfXyAqXC8gX3dpdGhTY29wZUlkJDMoKCkgPT4gXC8qIEBfX1BVUkVfXyAqXC8gdnVl\nLmNyZWF0ZUVsZW1lbnRWTm9kZShcInN2Z1wiLCB7XG4gICAgY2xhc3M6IFwiaWNvblwiLFxuICAg\nIHZpZXdCb3g6IFwiMCAwIDEwMjQgMTAyNFwiLFxuICAgIHZlcnNpb246IFwiMS4xXCIsXG4gICAg\neG1sbnM6IFwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCIsXG4gICAgXCJwLWlkXCI6\nIFwiMjI5OVwiLFxuICAgIHdpZHRoOiBcIjE2XCIsXG4gICAgaGVpZ2h0OiBcIjE2XCJcbiAgfSwg\nW1xuICAgIFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJwYXRoXCIs\nIHtcbiAgICAgIGQ6IFwiTTUxMSA5NTQuODZjLTExOS4zIDAtMjMxLjQtNDYuMS0zMTUuOC0xMjku\nOS04NC4zLTgzLjgtMTMwLjgtMTk1LjMtMTMwLjgtMzEzLjggMC0xMTguNSA0Ni41LTIzMCAxMzAu\nOC0zMTMuOCA4NC4zLTgzLjggMTk2LjUtMTI5LjkgMzE1LjgtMTI5LjkgMTE5LjMgMCAyMzEuNSA0\nNi4xIDMxNS44IDEyOS45IDE3NC4xIDE3My4xIDE3NC4xIDQ1NC42IDAgNjI3LjZDNzQyLjUgOTA4\nLjY2IDYzMC4zIDk1NC44NiA1MTEgOTU0Ljg2TDUxMSA5NTQuODYgNTExIDk1NC44NiA1MTEgOTU0\nLjg2IDUxMSA5NTQuODZ6TTUxMS4xIDEyNS4yNmMtMTAzLjggMC0yMDEuMyA0MC4xLTI3NC42IDEx\nMy03My40IDcyLjktMTEzLjggMTY5LjgtMTEzLjggMjcyLjkgMCAxMDMuMSA0MC40IDIwMC4xIDEx\nMy43IDI3Mi45IDczLjMgNzIuOCAxNzAuOSAxMTMgMjc0LjYgMTEzIDEwMy44IDAgMjAxLjQtNDAu\nMiAyNzQuOC0xMTMuMSAxNTEuNC0xNTAuNCAxNTEuNC0zOTUuMyAwLTU0NS44QzcxMi40IDE2NS4z\nNiA2MTQuOCAxMjUuMjYgNTExLjEgMTI1LjI2TDUxMS4xIDEyNS4yNiA1MTEuMSAxMjUuMjYgNTEx\nLjEgMTI1LjI2IDUxMS4xIDEyNS4yNnpNMzUyLjQgNjMyLjI2YzAgMCA1Mi4zIDgzLjEgMTU4LjYg\nODMuMSAxMDYuMyAwIDE3Ni04My4xIDE3Ni04My4xczM5LjUtMC4xIDM5LjUgNDEuNWMwIDAtNjgu\nNSA5Ny0yMTUuNSA5N3MtMTk0LjgtOTctMTk0LjgtOTdTMzE0LjcgNjMyLjI2IDM1Mi40IDYzMi4y\nNkwzNTIuNCA2MzIuMjYgMzUyLjQgNjMyLjI2IDM1Mi40IDYzMi4yNnpNMzgxLjIgMzY4LjQ2Yy0z\nMC4xIDAtNTQuNyAyNC4zLTU0LjcgNTQuMyAwIDMwIDI0LjYgNTQuMyA1NC43IDU0LjMgMzAuMyAw\nIDU0LjctMjQuMyA1NC43LTU0LjNDNDM1LjkgMzkyLjc2IDQxMS41IDM2OC40NiAzODEuMiAzNjgu\nNDZMMzgxLjIgMzY4LjQ2IDM4MS4yIDM2OC40NiAzODEuMiAzNjguNDYgMzgxLjIgMzY4LjQ2ek02\nNjEuNCAzNjguNDZjLTMwLjIgMC01NC43IDI0LjMtNTQuNyA1NC4zIDAgMzAgMjQuNSA1NC4zIDU0\nLjcgNTQuMyAzMC4yIDAgNTQuNy0yNC4zIDU0LjctNTQuM0M3MTYuMSAzOTIuNzYgNjkxLjcgMzY4\nLjQ2IDY2MS40IDM2OC40Nkw2NjEuNCAzNjguNDYgNjYxLjQgMzY4LjQ2IDY2MS40IDM2OC40NiA2\nNjEuNCAzNjguNDZ6XCIsXG4gICAgICBcInAtaWRcIjogXCIyMzAwXCJcbiAgICB9KVxuICBdLCAt\nMSkpO1xuICBjb25zdCBfaG9pc3RlZF81JDkgPSBbXG4gICAgX2hvaXN0ZWRfNCQ5XG4gIF07XG4g\nIGNvbnN0IF9ob2lzdGVkXzYkOCA9IFwvKiBAX19QVVJFX18gKlwvIF93aXRoU2NvcGVJZCQzKCgp\nID0+IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBj\nbGFzczogXCJmdWxsLWVkaXRvci10b29sYmFyXCIgfSwgbnVsbCwgLTEpKTtcbiAgY29uc3QgX2hv\naXN0ZWRfNyQ2ID0geyBjbGFzczogXCJnbS1yZXBseS1vdGhlci10b29sYmFyXCIgfTtcbiAgY29u\nc3QgX2hvaXN0ZWRfOCQ2ID0gXC8qIEBfX1BVUkVfXyAqXC8gX3dpdGhTY29wZUlkJDMoKCkgPT4g\nXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInN2Z1wiLCB7IGNsYXNz\nOiBcImljb24gaWNvb24tY29tbWVudFwiIH0sIFtcbiAgICBcLyogQF9fUFVSRV9fICpcLyB2dWUu\nY3JlYXRlRWxlbWVudFZOb2RlKFwidXNlXCIsIHsgXCJ4bGluazpocmVmXCI6IFwiI2ljb25fcHVy\nZV9wYl9ib3R0b21fY29tbWVudDI4XCIgfSlcbiAgXSwgLTEpKTtcbiAgY29uc3QgX2hvaXN0ZWRf\nOSQzID0geyBjbGFzczogXCJ0ZXh0XCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMTAkMiA9IHsgY2xh\nc3M6IFwiaWNvbiBpY29vbi1nb29kXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMTEkMiA9IFtcInhs\naW5rOmhyZWZcIl07XG4gIGNvbnN0IF9ob2lzdGVkXzEyJDIgPSB7IGNsYXNzOiBcInRleHRcIiB9\nO1xuICBjb25zdCBfc2ZjX21haW4kRCA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21w\nb25lbnQoe1xuICAgIF9fbmFtZTogXCJTbWFsbFRvb2xiYXJcIixcbiAgICBlbWl0czogW1wic2hv\nd0Z1bGxUb29sYmFyXCJdLFxuICAgIHNldHVwKF9fcHJvcHMsIHsgZW1pdDogX19lbWl0IH0pIHtc\nbiAgICAgIGNvbnN0IHRvb2xiYXJTdG9yZSA9IHVzZVRvb2xiYXJTdG9yZSgpO1xuICAgICAgY29u\nc3QgYWNjb3VudFN0b3JlID0gdXNlQWNjb3VudFN0b3JlKCk7XG4gICAgICB1c2VUb29sYmFyU3Rh\ndGVTdG9yZSgpO1xuICAgICAgY29uc3QgZW1pdHMgPSBfX2VtaXQ7XG4gICAgICBjb25zdCBUb29s\nYmFySGFuZGxlciA9IHtcbiAgICAgICAgXC8qKlxuICAgICAgICAgKiDngrnlh7vlt6XlhbfmoI\/o\np6blj5HmmL7npLrlrozmlbTnmoTlt6XlhbfmoI9cbiAgICAgICAgICogQHBhcmFtIGV2ZW50IFxu\nICAgICAgICAgKlwvXG4gICAgICAgIGhhbmRsZVNob3dGdWxsVG9vbGJhcihldmVudCkge1xuICAg\nICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgICAgaWYgKCFhY2NvdW50\nU3RvcmUuaXNMb2dpbikge1xuICAgICAgICAgICAgVGllYmFSZXBseS5jaGVja0xvZ2luKCk7XG4g\nICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGVtaXRzKFwic2hvd0Z1\nbGxUb29sYmFyXCIsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgcmV0dXJuIChf\nY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNy\nZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCBfaG9pc3RlZF8xJGksIFtcbiAgICAgICAgICB2dWUu\nY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIkYywgW1xuICAgICAgICAgICAg\ndnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgcmVhZG9u\nbHk6IFwiXCIsXG4gICAgICAgICAgICAgIGNsYXNzOiBcInNtYWxsLWVkaXRvci10b29sYmFyLWlu\ncHV0XCIsXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB2dWUudW5yZWYodG9vbGJhclN0b3Jl\nKS5wbGFjZWhvbGRlcixcbiAgICAgICAgICAgICAgb25DbGljazogX2NhY2hlWzBdIHx8IChfY2Fj\naGVbMF0gPSBcL1wvQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAoLi4uYXJncykgPT4gVG9vbGJh\nckhhbmRsZXIuaGFuZGxlU2hvd0Z1bGxUb29sYmFyICYmIFRvb2xiYXJIYW5kbGVyLmhhbmRsZVNo\nb3dGdWxsVG9vbGJhciguLi5hcmdzKSlcbiAgICAgICAgICAgIH0sIG51bGwsIDgsIF9ob2lzdGVk\nXzMkOSksXG4gICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHtcbiAg\nICAgICAgICAgICAgY2xhc3M6IFwic21hbGwtZWRpdG9yLXRvb2xiYXItZW1vamktYnRuXCIsXG4g\nICAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVsxXSB8fCAoX2NhY2hlWzFdID0gXC9cL0B0cy1p\nZ25vcmVcbiAgICAgICAgICAgICAgKC4uLmFyZ3MpID0+IFRvb2xiYXJIYW5kbGVyLmhhbmRsZVNo\nb3dGdWxsVG9vbGJhciAmJiBUb29sYmFySGFuZGxlci5oYW5kbGVTaG93RnVsbFRvb2xiYXIoLi4u\nYXJncykpXG4gICAgICAgICAgICB9LCBfaG9pc3RlZF81JDkpXG4gICAgICAgICAgXSksXG4gICAg\nICAgICAgX2hvaXN0ZWRfNiQ4LFxuICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJk\naXZcIiwgX2hvaXN0ZWRfNyQ2LCBbXG4gICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2Rl\nKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgY2xhc3M6IFwicmVwbHktY29tbWVudC1jb3VudFwi\nLFxuICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMl0gfHwgKF9jYWNoZVsyXSA9IFwvXC9A\ndHMtaWdub3JlXG4gICAgICAgICAgICAgICguLi5hcmdzKSA9PiB2dWUudW5yZWYoVG9vbGJhciku\nZ29Ub1JlcGx5QXJlYSAmJiB2dWUudW5yZWYoVG9vbGJhcikuZ29Ub1JlcGx5QXJlYSguLi5hcmdz\nKSlcbiAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgX2hvaXN0ZWRfOCQ2LFxuICAgICAg\nICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwicFwiLCBfaG9pc3RlZF85JDMsIHZ1ZS50\nb0Rpc3BsYXlTdHJpbmcodnVlLnVucmVmKHRvb2xiYXJTdG9yZSkuc2hvd0NvbW1lbnRDb3VudCks\nIDEpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUo\nXCJkaXZcIiwge1xuICAgICAgICAgICAgICBjbGFzczogXCJyZXBseS1nb29kLWNvdW50XCIsXG4g\nICAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVszXSB8fCAoX2NhY2hlWzNdID0gXC9cL0B0cy1p\nZ25vcmVcbiAgICAgICAgICAgICAgKC4uLmFyZ3MpID0+IHZ1ZS51bnJlZihUb29sYmFyKS5nb29k\nQ2xpY2tFdmVudCAmJiB2dWUudW5yZWYoVG9vbGJhcikuZ29vZENsaWNrRXZlbnQoLi4uYXJncykp\nXG4gICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5j\ncmVhdGVFbGVtZW50QmxvY2soXCJzdmdcIiwgX2hvaXN0ZWRfMTAkMiwgW1xuICAgICAgICAgICAg\nICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJ1c2VcIiwge1xuICAgICAgICAgICAgICAgICAg\nXCJ4bGluazpocmVmXCI6IHZ1ZS51bnJlZihUaWViYUNvbW1lbnQpLmhhc19hZ3JlZS52YWx1ZSA\/\nIFwiI2ljb25fYWdyZWVfYWZ0ZXJfMjZcIiA6IFwiI2ljb25fYWdyZWVfYmVmb3JlXzI2XCJcbiAg\nICAgICAgICAgICAgICB9LCBudWxsLCA4LCBfaG9pc3RlZF8xMSQyKVxuICAgICAgICAgICAgICBd\nKSksXG4gICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJwXCIsIF9ob2lzdGVk\nXzEyJDIsIHZ1ZS50b0Rpc3BsYXlTdHJpbmcodnVlLnVucmVmKHRvb2xiYXJTdG9yZSkuc2hvd0dv\nb2RDb3VudCksIDEpXG4gICAgICAgICAgICBdKVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pO1xu\nICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBfZXhwb3J0X3NmYyQxID0gKHNmYywgcHJv\ncHMpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBzZmMuX192Y2NPcHRzIHx8IHNmYztcbiAgICBm\nb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgcHJvcHMpIHtcbiAgICAgIHRhcmdldFtrZXldID0gdmFs\nO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuICBjb25zdCBTbWFsbFRvb2xiYXIg\nPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyQxKF9zZmNfbWFpbiRELCBbW1wiX19zY29w\nZUlkXCIsIFwiZGF0YS12LWQyNzlkMDNmXCJdXSk7XG4gIHZhciBfX2RlZlByb3AkOSA9IE9iamVj\ndC5kZWZpbmVQcm9wZXJ0eTtcbiAgdmFyIF9fZGVmUHJvcHMkNiA9IE9iamVjdC5kZWZpbmVQcm9w\nZXJ0aWVzO1xuICB2YXIgX19nZXRPd25Qcm9wRGVzY3MkNiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0\neURlc2NyaXB0b3JzO1xuICB2YXIgX19nZXRPd25Qcm9wU3ltYm9scyRiID0gT2JqZWN0LmdldE93\nblByb3BlcnR5U3ltYm9scztcbiAgdmFyIF9faGFzT3duUHJvcCRiID0gT2JqZWN0LnByb3RvdHlw\nZS5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIF9fcHJvcElzRW51bSRiID0gT2JqZWN0LnByb3RvdHlw\nZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbiAgdmFyIF9fZGVmTm9ybWFsUHJvcCQ5ID0gKG9iaiwg\na2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA\/IF9fZGVmUHJvcCQ5KG9iaiwga2V5LCB7IGVudW1l\ncmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0p\nIDogb2JqW2tleV0gPSB2YWx1ZTtcbiAgdmFyIF9fc3ByZWFkVmFsdWVzJDkgPSAoYSwgYikgPT4g\ne1xuICAgIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICAgIGlmIChfX2hhc093\nblByb3AkYi5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AkOShhLCBwcm9w\nLCBiW3Byb3BdKTtcbiAgICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scyRiKVxuICAgICAgZm9yICh2\nYXIgcHJvcCBvZiBfX2dldE93blByb3BTeW1ib2xzJGIoYikpIHtcbiAgICAgICAgaWYgKF9fcHJv\ncElzRW51bSRiLmNhbGwoYiwgcHJvcCkpXG4gICAgICAgICAgX19kZWZOb3JtYWxQcm9wJDkoYSwg\ncHJvcCwgYltwcm9wXSk7XG4gICAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH07XG4gIHZhciBfX3Nw\ncmVhZFByb3BzJDYgPSAoYSwgYikgPT4gX19kZWZQcm9wcyQ2KGEsIF9fZ2V0T3duUHJvcERlc2Nz\nJDYoYikpO1xuICBmdW5jdGlvbiBjb21wdXRlZEVhZ2VyKGZuLCBvcHRpb25zKSB7XG4gICAgdmFy\nIF9hMztcbiAgICBjb25zdCByZXN1bHQgPSB2dWVEZW1pLnNoYWxsb3dSZWYoKTtcbiAgICB2dWVE\nZW1pLndhdGNoRWZmZWN0KCgpID0+IHtcbiAgICAgIHJlc3VsdC52YWx1ZSA9IGZuKCk7XG4gICAg\nfSwgX19zcHJlYWRQcm9wcyQ2KF9fc3ByZWFkVmFsdWVzJDkoe30sIG9wdGlvbnMpLCB7XG4gICAg\nICBmbHVzaDogKF9hMyA9IHZvaWQgMCkgIT0gbnVsbCA\/IF9hMyA6IFwic3luY1wiXG4gICAgfSkp\nO1xuICAgIHJldHVybiB2dWVEZW1pLnJlYWRvbmx5KHJlc3VsdCk7XG4gIH1cbiAgdmFyIF9hO1xu\nICBjb25zdCBpc0NsaWVudCA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCI7XG4gIGNv\nbnN0IGlzU3RyaW5nJDEgPSAodmFsKSA9PiB0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiO1xuICBj\nb25zdCBub29wID0gKCkgPT4ge1xuICB9O1xuICBpc0NsaWVudCAmJiAoKF9hID0gd2luZG93ID09\nIG51bGwgPyB2b2lkIDAgOiB3aW5kb3cubmF2aWdhdG9yKSA9PSBudWxsID8gdm9pZCAwIDogX2Eu\ndXNlckFnZW50KSAmJiBcL2lQKGFkfGhvbmV8b2QpXC8udGVzdCh3aW5kb3cubmF2aWdhdG9yLnVz\nZXJBZ2VudCk7XG4gIGZ1bmN0aW9uIHJlc29sdmVVbnJlZihyKSB7XG4gICAgcmV0dXJuIHR5cGVv\nZiByID09PSBcImZ1bmN0aW9uXCIgPyByKCkgOiB2dWVEZW1pLnVucmVmKHIpO1xuICB9XG4gIGZ1\nbmN0aW9uIGNyZWF0ZUZpbHRlcldyYXBwZXIoZmlsdGVyLCBmbikge1xuICAgIGZ1bmN0aW9uIHdy\nYXBwZXIoLi4uYXJncykge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl\nY3QpID0+IHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKGZpbHRlcigoKSA9PiBmbi5hcHBseSh0\naGlzLCBhcmdzKSwgeyBmbiwgdGhpc0FyZzogdGhpcywgYXJncyB9KSkudGhlbihyZXNvbHZlKS5j\nYXRjaChyZWplY3QpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB3cmFwcGVyO1xuICB9\nXG4gIGZ1bmN0aW9uIHRocm90dGxlRmlsdGVyKG1zLCB0cmFpbGluZyA9IHRydWUsIGxlYWRpbmcg\nPSB0cnVlLCByZWplY3RPbkNhbmNlbCA9IGZhbHNlKSB7XG4gICAgbGV0IGxhc3RFeGVjID0gMDtc\nbiAgICBsZXQgdGltZXI7XG4gICAgbGV0IGlzTGVhZGluZyA9IHRydWU7XG4gICAgbGV0IGxhc3RS\nZWplY3RvciA9IG5vb3A7XG4gICAgbGV0IGxhc3RWYWx1ZTtcbiAgICBjb25zdCBjbGVhciA9ICgp\nID0+IHtcbiAgICAgIGlmICh0aW1lcikge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xu\nICAgICAgICB0aW1lciA9IHZvaWQgMDtcbiAgICAgICAgbGFzdFJlamVjdG9yKCk7XG4gICAgICAg\nIGxhc3RSZWplY3RvciA9IG5vb3A7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBmaWx0ZXIg\nPSAoX2ludm9rZSkgPT4ge1xuICAgICAgY29uc3QgZHVyYXRpb24gPSByZXNvbHZlVW5yZWYobXMp\nO1xuICAgICAgY29uc3QgZWxhcHNlZCA9IERhdGUubm93KCkgLSBsYXN0RXhlYztcbiAgICAgIGNv\nbnN0IGludm9rZSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGxhc3RWYWx1ZSA9IF9pbnZva2Uo\nKTtcbiAgICAgIH07XG4gICAgICBjbGVhcigpO1xuICAgICAgaWYgKGR1cmF0aW9uIDw9IDApIHtc\nbiAgICAgICAgbGFzdEV4ZWMgPSBEYXRlLm5vdygpO1xuICAgICAgICByZXR1cm4gaW52b2tlKCk7\nXG4gICAgICB9XG4gICAgICBpZiAoZWxhcHNlZCA+IGR1cmF0aW9uICYmIChsZWFkaW5nIHx8ICFp\nc0xlYWRpbmcpKSB7XG4gICAgICAgIGxhc3RFeGVjID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaW52\nb2tlKCk7XG4gICAgICB9IGVsc2UgaWYgKHRyYWlsaW5nKSB7XG4gICAgICAgIGxhc3RWYWx1ZSA9\nIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICBsYXN0UmVqZWN0\nb3IgPSByZWplY3RPbkNhbmNlbCA\/IHJlamVjdCA6IHJlc29sdmU7XG4gICAgICAgICAgdGltZXIg\nPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGxhc3RFeGVjID0gRGF0ZS5ub3coKTtc\nbiAgICAgICAgICAgIGlzTGVhZGluZyA9IHRydWU7XG4gICAgICAgICAgICByZXNvbHZlKGludm9r\nZSgpKTtcbiAgICAgICAgICAgIGNsZWFyKCk7XG4gICAgICAgICAgfSwgTWF0aC5tYXgoMCwgZHVy\nYXRpb24gLSBlbGFwc2VkKSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKCFsZWFk\naW5nICYmICF0aW1lcilcbiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IGlzTGVhZGlu\nZyA9IHRydWUsIGR1cmF0aW9uKTtcbiAgICAgIGlzTGVhZGluZyA9IGZhbHNlO1xuICAgICAgcmV0\ndXJuIGxhc3RWYWx1ZTtcbiAgICB9O1xuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cbiAgZnVuY3Rp\nb24gaWRlbnRpdHkkMShhcmcpIHtcbiAgICByZXR1cm4gYXJnO1xuICB9XG4gIGZ1bmN0aW9uIHRy\neU9uU2NvcGVEaXNwb3NlKGZuKSB7XG4gICAgaWYgKHZ1ZURlbWkuZ2V0Q3VycmVudFNjb3BlKCkp\nIHtcbiAgICAgIHZ1ZURlbWkub25TY29wZURpc3Bvc2UoZm4pO1xuICAgICAgcmV0dXJuIHRydWU7\nXG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBmdW5jdGlvbiB1c2VUaHJvdHRsZUZu\nKGZuLCBtcyA9IDIwMCwgdHJhaWxpbmcgPSBmYWxzZSwgbGVhZGluZyA9IHRydWUsIHJlamVjdE9u\nQ2FuY2VsID0gZmFsc2UpIHtcbiAgICByZXR1cm4gY3JlYXRlRmlsdGVyV3JhcHBlcih0aHJvdHRs\nZUZpbHRlcihtcywgdHJhaWxpbmcsIGxlYWRpbmcsIHJlamVjdE9uQ2FuY2VsKSwgZm4pO1xuICB9\nXG4gIGZ1bmN0aW9uIHRyeU9uTW91bnRlZChmbiwgc3luYyA9IHRydWUpIHtcbiAgICBpZiAodnVl\nRGVtaS5nZXRDdXJyZW50SW5zdGFuY2UoKSlcbiAgICAgIHZ1ZURlbWkub25Nb3VudGVkKGZuKTtc\nbiAgICBlbHNlIGlmIChzeW5jKVxuICAgICAgZm4oKTtcbiAgICBlbHNlXG4gICAgICB2dWVEZW1p\nLm5leHRUaWNrKGZuKTtcbiAgfVxuICBmdW5jdGlvbiB1bnJlZkVsZW1lbnQoZWxSZWYpIHtcbiAg\nICB2YXIgX2EzO1xuICAgIGNvbnN0IHBsYWluID0gcmVzb2x2ZVVucmVmKGVsUmVmKTtcbiAgICBy\nZXR1cm4gKF9hMyA9IHBsYWluID09IG51bGwgPyB2b2lkIDAgOiBwbGFpbi4kZWwpICE9IG51bGwg\nPyBfYTMgOiBwbGFpbjtcbiAgfVxuICBjb25zdCBkZWZhdWx0V2luZG93ID0gaXNDbGllbnQgPyB3\naW5kb3cgOiB2b2lkIDA7XG4gIGNvbnN0IGRlZmF1bHREb2N1bWVudCA9IGlzQ2xpZW50ID8gd2lu\nZG93LmRvY3VtZW50IDogdm9pZCAwO1xuICBmdW5jdGlvbiB1c2VFdmVudExpc3RlbmVyKC4uLmFy\nZ3MpIHtcbiAgICBsZXQgdGFyZ2V0O1xuICAgIGxldCBldmVudHM7XG4gICAgbGV0IGxpc3RlbmVy\ncztcbiAgICBsZXQgb3B0aW9ucztcbiAgICBpZiAoaXNTdHJpbmckMShhcmdzWzBdKSB8fCBBcnJh\neS5pc0FycmF5KGFyZ3NbMF0pKSB7XG4gICAgICBbZXZlbnRzLCBsaXN0ZW5lcnMsIG9wdGlvbnNd\nID0gYXJncztcbiAgICAgIHRhcmdldCA9IGRlZmF1bHRXaW5kb3c7XG4gICAgfSBlbHNlIHtcbiAg\nICAgIFt0YXJnZXQsIGV2ZW50cywgbGlzdGVuZXJzLCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgfVxu\nICAgIGlmICghdGFyZ2V0KVxuICAgICAgcmV0dXJuIG5vb3A7XG4gICAgaWYgKCFBcnJheS5pc0Fy\ncmF5KGV2ZW50cykpXG4gICAgICBldmVudHMgPSBbZXZlbnRzXTtcbiAgICBpZiAoIUFycmF5Lmlz\nQXJyYXkobGlzdGVuZXJzKSlcbiAgICAgIGxpc3RlbmVycyA9IFtsaXN0ZW5lcnNdO1xuICAgIGNv\nbnN0IGNsZWFudXBzID0gW107XG4gICAgY29uc3QgY2xlYW51cCA9ICgpID0+IHtcbiAgICAgIGNs\nZWFudXBzLmZvckVhY2goKGZuKSA9PiBmbigpKTtcbiAgICAgIGNsZWFudXBzLmxlbmd0aCA9IDA7\nXG4gICAgfTtcbiAgICBjb25zdCByZWdpc3RlciA9IChlbCwgZXZlbnQsIGxpc3RlbmVyLCBvcHRp\nb25zMikgPT4ge1xuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbGlzdGVuZXIsIG9w\ndGlvbnMyKTtcbiAgICAgIHJldHVybiAoKSA9PiBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50\nLCBsaXN0ZW5lciwgb3B0aW9uczIpO1xuICAgIH07XG4gICAgY29uc3Qgc3RvcFdhdGNoID0gdnVl\nRGVtaS53YXRjaCgoKSA9PiBbdW5yZWZFbGVtZW50KHRhcmdldCksIHJlc29sdmVVbnJlZihvcHRp\nb25zKV0sIChbZWwsIG9wdGlvbnMyXSkgPT4ge1xuICAgICAgY2xlYW51cCgpO1xuICAgICAgaWYg\nKCFlbClcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2xlYW51cHMucHVzaCguLi5ldmVudHMuZmxh\ndE1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGxpc3RlbmVycy5tYXAoKGxpc3RlbmVy\nKSA9PiByZWdpc3RlcihlbCwgZXZlbnQsIGxpc3RlbmVyLCBvcHRpb25zMikpO1xuICAgICAgfSkp\nO1xuICAgIH0sIHsgaW1tZWRpYXRlOiB0cnVlLCBmbHVzaDogXCJwb3N0XCIgfSk7XG4gICAgY29u\nc3Qgc3RvcCA9ICgpID0+IHtcbiAgICAgIHN0b3BXYXRjaCgpO1xuICAgICAgY2xlYW51cCgpO1xu\nICAgIH07XG4gICAgdHJ5T25TY29wZURpc3Bvc2Uoc3RvcCk7XG4gICAgcmV0dXJuIHN0b3A7XG4g\nIH1cbiAgZnVuY3Rpb24gdXNlU3VwcG9ydGVkKGNhbGxiYWNrLCBzeW5jID0gZmFsc2UpIHtcbiAg\nICBjb25zdCBpc1N1cHBvcnRlZCA9IHZ1ZURlbWkucmVmKCk7XG4gICAgY29uc3QgdXBkYXRlID0g\nKCkgPT4gaXNTdXBwb3J0ZWQudmFsdWUgPSBCb29sZWFuKGNhbGxiYWNrKCkpO1xuICAgIHVwZGF0\nZSgpO1xuICAgIHRyeU9uTW91bnRlZCh1cGRhdGUsIHN5bmMpO1xuICAgIHJldHVybiBpc1N1cHBv\ncnRlZDtcbiAgfVxuICBjb25zdCBfZ2xvYmFsID0gdHlwZW9mIGdsb2JhbFRoaXMgIT09IFwidW5k\nZWZpbmVkXCIgPyBnbG9iYWxUaGlzIDogdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA\/\nIHdpbmRvdyA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWwgOiB0eXBl\nb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA\/IHNlbGYgOiB7fTtcbiAgY29uc3QgZ2xvYmFsS2V5\nID0gXCJfX3Z1ZXVzZV9zc3JfaGFuZGxlcnNfX1wiO1xuICBfZ2xvYmFsW2dsb2JhbEtleV0gPSBf\nZ2xvYmFsW2dsb2JhbEtleV0gfHwge307XG4gIGZ1bmN0aW9uIHVzZURvY3VtZW50VmlzaWJpbGl0\neSh7IGRvY3VtZW50OiBkb2N1bWVudDIgPSBkZWZhdWx0RG9jdW1lbnQgfSA9IHt9KSB7XG4gICAg\naWYgKCFkb2N1bWVudDIpXG4gICAgICByZXR1cm4gdnVlRGVtaS5yZWYoXCJ2aXNpYmxlXCIpO1xu\nICAgIGNvbnN0IHZpc2liaWxpdHkgPSB2dWVEZW1pLnJlZihkb2N1bWVudDIudmlzaWJpbGl0eVN0\nYXRlKTtcbiAgICB1c2VFdmVudExpc3RlbmVyKGRvY3VtZW50MiwgXCJ2aXNpYmlsaXR5Y2hhbmdl\nXCIsICgpID0+IHtcbiAgICAgIHZpc2liaWxpdHkudmFsdWUgPSBkb2N1bWVudDIudmlzaWJpbGl0\neVN0YXRlO1xuICAgIH0pO1xuICAgIHJldHVybiB2aXNpYmlsaXR5O1xuICB9XG4gIHZhciBfX2dl\ndE93blByb3BTeW1ib2xzJGcgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuICB2YXIg\nX19oYXNPd25Qcm9wJGcgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuICB2YXIg\nX19wcm9wSXNFbnVtJGcgPSBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO1xu\nICB2YXIgX19vYmpSZXN0JDIgPSAoc291cmNlLCBleGNsdWRlKSA9PiB7XG4gICAgdmFyIHRhcmdl\ndCA9IHt9O1xuICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKVxuICAgICAgaWYgKF9faGFzT3du\nUHJvcCRnLmNhbGwoc291cmNlLCBwcm9wKSAmJiBleGNsdWRlLmluZGV4T2YocHJvcCkgPCAwKVxu\nICAgICAgICB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgaWYgKHNvdXJjZSAhPSBu\ndWxsICYmIF9fZ2V0T3duUHJvcFN5bWJvbHMkZylcbiAgICAgIGZvciAodmFyIHByb3Agb2YgX19n\nZXRPd25Qcm9wU3ltYm9scyRnKHNvdXJjZSkpIHtcbiAgICAgICAgaWYgKGV4Y2x1ZGUuaW5kZXhP\nZihwcm9wKSA8IDAgJiYgX19wcm9wSXNFbnVtJGcuY2FsbChzb3VyY2UsIHByb3ApKVxuICAgICAg\nICAgIHRhcmdldFtwcm9wXSA9IHNvdXJjZVtwcm9wXTtcbiAgICAgIH1cbiAgICByZXR1cm4gdGFy\nZ2V0O1xuICB9O1xuICBmdW5jdGlvbiB1c2VSZXNpemVPYnNlcnZlcih0YXJnZXQsIGNhbGxiYWNr\nLCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBfYTMgPSBvcHRpb25zLCB7IHdpbmRvdzogd2lu\nZG93MiA9IGRlZmF1bHRXaW5kb3cgfSA9IF9hMywgb2JzZXJ2ZXJPcHRpb25zID0gX19vYmpSZXN0\nJDIoX2EzLCBbXCJ3aW5kb3dcIl0pO1xuICAgIGxldCBvYnNlcnZlcjtcbiAgICBjb25zdCBpc1N1\ncHBvcnRlZCA9IHVzZVN1cHBvcnRlZCgoKSA9PiB3aW5kb3cyICYmIFwiUmVzaXplT2JzZXJ2ZXJc\nIiBpbiB3aW5kb3cyKTtcbiAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgaWYgKG9i\nc2VydmVyKSB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgb2JzZXJ2\nZXIgPSB2b2lkIDA7XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBzdG9wV2F0Y2ggPSB2dWVE\nZW1pLndhdGNoKCgpID0+IHVucmVmRWxlbWVudCh0YXJnZXQpLCAoZWwpID0+IHtcbiAgICAgIGNs\nZWFudXAoKTtcbiAgICAgIGlmIChpc1N1cHBvcnRlZC52YWx1ZSAmJiB3aW5kb3cyICYmIGVsKSB7\nXG4gICAgICAgIG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrKTtcbiAgICAg\nICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbCwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgIH1cbiAgICB9\nLCB7IGltbWVkaWF0ZTogdHJ1ZSwgZmx1c2g6IFwicG9zdFwiIH0pO1xuICAgIGNvbnN0IHN0b3Ag\nPSAoKSA9PiB7XG4gICAgICBjbGVhbnVwKCk7XG4gICAgICBzdG9wV2F0Y2goKTtcbiAgICB9O1xu\nICAgIHRyeU9uU2NvcGVEaXNwb3NlKHN0b3ApO1xuICAgIHJldHVybiB7XG4gICAgICBpc1N1cHBv\ncnRlZCxcbiAgICAgIHN0b3BcbiAgICB9O1xuICB9XG4gIHZhciBTd2lwZURpcmVjdGlvbjtcbiAg\nKGZ1bmN0aW9uKFN3aXBlRGlyZWN0aW9uMikge1xuICAgIFN3aXBlRGlyZWN0aW9uMltcIlVQXCJd\nID0gXCJVUFwiO1xuICAgIFN3aXBlRGlyZWN0aW9uMltcIlJJR0hUXCJdID0gXCJSSUdIVFwiO1xu\nICAgIFN3aXBlRGlyZWN0aW9uMltcIkRPV05cIl0gPSBcIkRPV05cIjtcbiAgICBTd2lwZURpcmVj\ndGlvbjJbXCJMRUZUXCJdID0gXCJMRUZUXCI7XG4gICAgU3dpcGVEaXJlY3Rpb24yW1wiTk9ORVwi\nXSA9IFwiTk9ORVwiO1xuICB9KShTd2lwZURpcmVjdGlvbiB8fCAoU3dpcGVEaXJlY3Rpb24gPSB7\nfSkpO1xuICB2YXIgX19kZWZQcm9wMiA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbiAgdmFyIF9f\nZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xuICB2YXIg\nX19oYXNPd25Qcm9wID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgdmFyIF9f\ncHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG4gIHZh\nciBfX2RlZk5vcm1hbFByb3AyID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA\/IF9f\nZGVmUHJvcDIob2JqLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVl\nLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWUgfSkgOiBvYmpba2V5XSA9IHZhbHVlO1xuICB2YXIgX19z\ncHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICAgIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9\nIHt9KSlcbiAgICAgIGlmIChfX2hhc093blByb3AuY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19k\nZWZOb3JtYWxQcm9wMihhLCBwcm9wLCBiW3Byb3BdKTtcbiAgICBpZiAoX19nZXRPd25Qcm9wU3lt\nYm9scylcbiAgICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xu\nICAgICAgICBpZiAoX19wcm9wSXNFbnVtLmNhbGwoYiwgcHJvcCkpXG4gICAgICAgICAgX19kZWZO\nb3JtYWxQcm9wMihhLCBwcm9wLCBiW3Byb3BdKTtcbiAgICAgIH1cbiAgICByZXR1cm4gYTtcbiAg\nfTtcbiAgY29uc3QgX1RyYW5zaXRpb25QcmVzZXRzID0ge1xuICAgIGVhc2VJblNpbmU6IFswLjEy\nLCAwLCAwLjM5LCAwXSxcbiAgICBlYXNlT3V0U2luZTogWzAuNjEsIDEsIDAuODgsIDFdLFxuICAg\nIGVhc2VJbk91dFNpbmU6IFswLjM3LCAwLCAwLjYzLCAxXSxcbiAgICBlYXNlSW5RdWFkOiBbMC4x\nMSwgMCwgMC41LCAwXSxcbiAgICBlYXNlT3V0UXVhZDogWzAuNSwgMSwgMC44OSwgMV0sXG4gICAg\nZWFzZUluT3V0UXVhZDogWzAuNDUsIDAsIDAuNTUsIDFdLFxuICAgIGVhc2VJbkN1YmljOiBbMC4z\nMiwgMCwgMC42NywgMF0sXG4gICAgZWFzZU91dEN1YmljOiBbMC4zMywgMSwgMC42OCwgMV0sXG4g\nICAgZWFzZUluT3V0Q3ViaWM6IFswLjY1LCAwLCAwLjM1LCAxXSxcbiAgICBlYXNlSW5RdWFydDog\nWzAuNSwgMCwgMC43NSwgMF0sXG4gICAgZWFzZU91dFF1YXJ0OiBbMC4yNSwgMSwgMC41LCAxXSxc\nbiAgICBlYXNlSW5PdXRRdWFydDogWzAuNzYsIDAsIDAuMjQsIDFdLFxuICAgIGVhc2VJblF1aW50\nOiBbMC42NCwgMCwgMC43OCwgMF0sXG4gICAgZWFzZU91dFF1aW50OiBbMC4yMiwgMSwgMC4zNiwg\nMV0sXG4gICAgZWFzZUluT3V0UXVpbnQ6IFswLjgzLCAwLCAwLjE3LCAxXSxcbiAgICBlYXNlSW5F\neHBvOiBbMC43LCAwLCAwLjg0LCAwXSxcbiAgICBlYXNlT3V0RXhwbzogWzAuMTYsIDEsIDAuMywg\nMV0sXG4gICAgZWFzZUluT3V0RXhwbzogWzAuODcsIDAsIDAuMTMsIDFdLFxuICAgIGVhc2VJbkNp\ncmM6IFswLjU1LCAwLCAxLCAwLjQ1XSxcbiAgICBlYXNlT3V0Q2lyYzogWzAsIDAuNTUsIDAuNDUs\nIDFdLFxuICAgIGVhc2VJbk91dENpcmM6IFswLjg1LCAwLCAwLjE1LCAxXSxcbiAgICBlYXNlSW5C\nYWNrOiBbMC4zNiwgMCwgMC42NiwgLTAuNTZdLFxuICAgIGVhc2VPdXRCYWNrOiBbMC4zNCwgMS41\nNiwgMC42NCwgMV0sXG4gICAgZWFzZUluT3V0QmFjazogWzAuNjgsIC0wLjYsIDAuMzIsIDEuNl1c\nbiAgfTtcbiAgX19zcHJlYWRWYWx1ZXMoe1xuICAgIGxpbmVhcjogaWRlbnRpdHkkMVxuICB9LCBf\nVHJhbnNpdGlvblByZXNldHMpO1xuICBmdW5jdGlvbiB1c2VXaW5kb3dGb2N1cyh7IHdpbmRvdzog\nd2luZG93MiA9IGRlZmF1bHRXaW5kb3cgfSA9IHt9KSB7XG4gICAgaWYgKCF3aW5kb3cyKVxuICAg\nICAgcmV0dXJuIHZ1ZURlbWkucmVmKGZhbHNlKTtcbiAgICBjb25zdCBmb2N1c2VkID0gdnVlRGVt\naS5yZWYod2luZG93Mi5kb2N1bWVudC5oYXNGb2N1cygpKTtcbiAgICB1c2VFdmVudExpc3RlbmVy\nKHdpbmRvdzIsIFwiYmx1clwiLCAoKSA9PiB7XG4gICAgICBmb2N1c2VkLnZhbHVlID0gZmFsc2U7\nXG4gICAgfSk7XG4gICAgdXNlRXZlbnRMaXN0ZW5lcih3aW5kb3cyLCBcImZvY3VzXCIsICgpID0+\nIHtcbiAgICAgIGZvY3VzZWQudmFsdWUgPSB0cnVlO1xuICAgIH0pO1xuICAgIHJldHVybiBmb2N1\nc2VkO1xuICB9XG4gIGNvbnN0IGlzSW5Db250YWluZXIgPSAoZWwsIGNvbnRhaW5lcikgPT4ge1xu\nICAgIGlmICghaXNDbGllbnQgfHwgIWVsIHx8ICFjb250YWluZXIpXG4gICAgICByZXR1cm4gZmFs\nc2U7XG4gICAgY29uc3QgZWxSZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAg\nbGV0IGNvbnRhaW5lclJlY3Q7XG4gICAgaWYgKGNvbnRhaW5lciBpbnN0YW5jZW9mIEVsZW1lbnQp\nIHtcbiAgICAgIGNvbnRhaW5lclJlY3QgPSBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0\nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lclJlY3QgPSB7XG4gICAgICAgIHRvcDog\nMCxcbiAgICAgICAgcmlnaHQ6IHdpbmRvdy5pbm5lcldpZHRoLFxuICAgICAgICBib3R0b206IHdp\nbmRvdy5pbm5lckhlaWdodCxcbiAgICAgICAgbGVmdDogMFxuICAgICAgfTtcbiAgICB9XG4gICAg\ncmV0dXJuIGVsUmVjdC50b3AgPCBjb250YWluZXJSZWN0LmJvdHRvbSAmJiBlbFJlY3QuYm90dG9t\nID4gY29udGFpbmVyUmVjdC50b3AgJiYgZWxSZWN0LnJpZ2h0ID4gY29udGFpbmVyUmVjdC5sZWZ0\nICYmIGVsUmVjdC5sZWZ0IDwgY29udGFpbmVyUmVjdC5yaWdodDtcbiAgfTtcbiAgXC8qKlxuICAq\nIEB2dWVcL3NoYXJlZCB2My40LjMzXG4gICogKGMpIDIwMTgtcHJlc2VudCBZdXhpIChFdmFuKSBZ\nb3UgYW5kIFZ1ZSBjb250cmlidXRvcnNcbiAgKiBAbGljZW5zZSBNSVRcbiAgKipcL1xuICBjb25z\ndCBOT09QID0gKCkgPT4ge1xuICB9O1xuICBjb25zdCBoYXNPd25Qcm9wZXJ0eSQ2ID0gT2JqZWN0\nLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbiAgY29uc3QgaGFzT3duID0gKHZhbCwga2V5KSA9\nPiBoYXNPd25Qcm9wZXJ0eSQ2LmNhbGwodmFsLCBrZXkpO1xuICBjb25zdCBpc0FycmF5JDEgPSBB\ncnJheS5pc0FycmF5O1xuICBjb25zdCBpc1N0cmluZyA9ICh2YWwpID0+IHR5cGVvZiB2YWwgPT09\nIFwic3RyaW5nXCI7XG4gIGNvbnN0IGlzT2JqZWN0JDEgPSAodmFsKSA9PiB2YWwgIT09IG51bGwg\nJiYgdHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIjtcbiAgY29uc3QgY2FjaGVTdHJpbmdGdW5jdGlv\nbiA9IChmbikgPT4ge1xuICAgIGNvbnN0IGNhY2hlID0gXC8qIEBfX1BVUkVfXyAqXC8gT2JqZWN0\nLmNyZWF0ZShudWxsKTtcbiAgICByZXR1cm4gKHN0cikgPT4ge1xuICAgICAgY29uc3QgaGl0ID0g\nY2FjaGVbc3RyXTtcbiAgICAgIHJldHVybiBoaXQgfHwgKGNhY2hlW3N0cl0gPSBmbihzdHIpKTtc\nbiAgICB9O1xuICB9O1xuICBjb25zdCBjYW1lbGl6ZVJFID0gXC8tKFxcdylcL2c7XG4gIGNvbnN0\nIGNhbWVsaXplID0gY2FjaGVTdHJpbmdGdW5jdGlvbigoc3RyKSA9PiB7XG4gICAgcmV0dXJuIHN0\nci5yZXBsYWNlKGNhbWVsaXplUkUsIChfLCBjKSA9PiBjID8gYy50b1VwcGVyQ2FzZSgpIDogXCJc\nIik7XG4gIH0pO1xuICBjb25zdCBjYXBpdGFsaXplJDEgPSBjYWNoZVN0cmluZ0Z1bmN0aW9uKChz\ndHIpID0+IHtcbiAgICByZXR1cm4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNs\naWNlKDEpO1xuICB9KTtcbiAgdmFyIGZyZWVHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsID09IFwib2Jq\nZWN0XCIgJiYgZ2xvYmFsICYmIGdsb2JhbC5PYmplY3QgPT09IE9iamVjdCAmJiBnbG9iYWw7XG4g\nIHZhciBmcmVlU2VsZiA9IHR5cGVvZiBzZWxmID09IFwib2JqZWN0XCIgJiYgc2VsZiAmJiBzZWxm\nLk9iamVjdCA9PT0gT2JqZWN0ICYmIHNlbGY7XG4gIHZhciByb290ID0gZnJlZUdsb2JhbCB8fCBm\ncmVlU2VsZiB8fCBGdW5jdGlvbihcInJldHVybiB0aGlzXCIpKCk7XG4gIHZhciBTeW1ib2wkMSA9\nIHJvb3QuU3ltYm9sO1xuICB2YXIgb2JqZWN0UHJvdG8kNiA9IE9iamVjdC5wcm90b3R5cGU7XG4g\nIHZhciBoYXNPd25Qcm9wZXJ0eSQ1ID0gb2JqZWN0UHJvdG8kNi5oYXNPd25Qcm9wZXJ0eTtcbiAg\ndmFyIG5hdGl2ZU9iamVjdFRvU3RyaW5nJDEgPSBvYmplY3RQcm90byQ2LnRvU3RyaW5nO1xuICB2\nYXIgc3ltVG9TdHJpbmdUYWckMSA9IFN5bWJvbCQxID8gU3ltYm9sJDEudG9TdHJpbmdUYWcgOiB2\nb2lkIDA7XG4gIGZ1bmN0aW9uIGdldFJhd1RhZyh2YWx1ZSkge1xuICAgIHZhciBpc093biA9IGhh\nc093blByb3BlcnR5JDUuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWckMSksIHRhZyA9IHZhbHVl\nW3N5bVRvU3RyaW5nVGFnJDFdO1xuICAgIHRyeSB7XG4gICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1Rh\nZyQxXSA9IHZvaWQgMDtcbiAgICAgIHZhciB1bm1hc2tlZCA9IHRydWU7XG4gICAgfSBjYXRjaCAo\nZSkge1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0gbmF0aXZlT2JqZWN0VG9TdHJpbmckMS5jYWxs\nKHZhbHVlKTtcbiAgICBpZiAodW5tYXNrZWQpIHtcbiAgICAgIGlmIChpc093bikge1xuICAgICAg\nICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZyQxXSA9IHRhZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAg\nIGRlbGV0ZSB2YWx1ZVtzeW1Ub1N0cmluZ1RhZyQxXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0\ndXJuIHJlc3VsdDtcbiAgfVxuICB2YXIgb2JqZWN0UHJvdG8kNSA9IE9iamVjdC5wcm90b3R5cGU7\nXG4gIHZhciBuYXRpdmVPYmplY3RUb1N0cmluZyA9IG9iamVjdFByb3RvJDUudG9TdHJpbmc7XG4g\nIGZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKHZhbHVlKSB7XG4gICAgcmV0dXJuIG5hdGl2ZU9iamVj\ndFRvU3RyaW5nLmNhbGwodmFsdWUpO1xuICB9XG4gIHZhciBudWxsVGFnID0gXCJbb2JqZWN0IE51\nbGxdXCIsIHVuZGVmaW5lZFRhZyA9IFwiW29iamVjdCBVbmRlZmluZWRdXCI7XG4gIHZhciBzeW1U\nb1N0cmluZ1RhZyA9IFN5bWJvbCQxID8gU3ltYm9sJDEudG9TdHJpbmdUYWcgOiB2b2lkIDA7XG4g\nIGZ1bmN0aW9uIGJhc2VHZXRUYWcodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xu\nICAgICAgcmV0dXJuIHZhbHVlID09PSB2b2lkIDAgPyB1bmRlZmluZWRUYWcgOiBudWxsVGFnO1xu\nICAgIH1cbiAgICByZXR1cm4gc3ltVG9TdHJpbmdUYWcgJiYgc3ltVG9TdHJpbmdUYWcgaW4gT2Jq\nZWN0KHZhbHVlKSA\/IGdldFJhd1RhZyh2YWx1ZSkgOiBvYmplY3RUb1N0cmluZyh2YWx1ZSk7XG4g\nIH1cbiAgZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9\nIG51bGwgJiYgdHlwZW9mIHZhbHVlID09IFwib2JqZWN0XCI7XG4gIH1cbiAgdmFyIHN5bWJvbFRh\nZyA9IFwiW29iamVjdCBTeW1ib2xdXCI7XG4gIGZ1bmN0aW9uIGlzU3ltYm9sKHZhbHVlKSB7XG4g\nICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSBcInN5bWJvbFwiIHx8IGlzT2JqZWN0TGlrZSh2YWx1\nZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT0gc3ltYm9sVGFnO1xuICB9XG4gIGZ1bmN0aW9uIGFy\ncmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBh\ncnJheSA9PSBudWxsID8gMCA6IGFycmF5Lmxlbmd0aCwgcmVzdWx0ID0gQXJyYXkobGVuZ3RoKTtc\nbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdWx0W2luZGV4XSA9IGl0\nZXJhdGVlKGFycmF5W2luZGV4XSwgaW5kZXgsIGFycmF5KTtcbiAgICB9XG4gICAgcmV0dXJuIHJl\nc3VsdDtcbiAgfVxuICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG4gIHZhciBJTkZJTklU\nWSQxID0gMSBcLyAwO1xuICB2YXIgc3ltYm9sUHJvdG8gPSBTeW1ib2wkMSA\/IFN5bWJvbCQxLnBy\nb3RvdHlwZSA6IHZvaWQgMCwgc3ltYm9sVG9TdHJpbmcgPSBzeW1ib2xQcm90byA\/IHN5bWJvbFBy\nb3RvLnRvU3RyaW5nIDogdm9pZCAwO1xuICBmdW5jdGlvbiBiYXNlVG9TdHJpbmcodmFsdWUpIHtc\nbiAgICBpZiAodHlwZW9mIHZhbHVlID09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiB2YWx1\nZTtcbiAgICB9XG4gICAgaWYgKGlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gYXJyYXlN\nYXAodmFsdWUsIGJhc2VUb1N0cmluZykgKyBcIlwiO1xuICAgIH1cbiAgICBpZiAoaXNTeW1ib2wo\ndmFsdWUpKSB7XG4gICAgICByZXR1cm4gc3ltYm9sVG9TdHJpbmcgPyBzeW1ib2xUb1N0cmluZy5j\nYWxsKHZhbHVlKSA6IFwiXCI7XG4gICAgfVxuICAgIHZhciByZXN1bHQgPSB2YWx1ZSArIFwiXCI7\nXG4gICAgcmV0dXJuIHJlc3VsdCA9PSBcIjBcIiAmJiAxIFwvIHZhbHVlID09IC1JTkZJTklUWSQx\nID8gXCItMFwiIDogcmVzdWx0O1xuICB9XG4gIHZhciByZVdoaXRlc3BhY2UgPSBcL1xcc1wvO1xu\nICBmdW5jdGlvbiB0cmltbWVkRW5kSW5kZXgoc3RyaW5nKSB7XG4gICAgdmFyIGluZGV4ID0gc3Ry\naW5nLmxlbmd0aDtcbiAgICB3aGlsZSAoaW5kZXgtLSAmJiByZVdoaXRlc3BhY2UudGVzdChzdHJp\nbmcuY2hhckF0KGluZGV4KSkpIHtcbiAgICB9XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG4gIHZh\nciByZVRyaW1TdGFydCA9IFwvXlxccytcLztcbiAgZnVuY3Rpb24gYmFzZVRyaW0oc3RyaW5nKSB7\nXG4gICAgcmV0dXJuIHN0cmluZyA\/IHN0cmluZy5zbGljZSgwLCB0cmltbWVkRW5kSW5kZXgoc3Ry\naW5nKSArIDEpLnJlcGxhY2UocmVUcmltU3RhcnQsIFwiXCIpIDogc3RyaW5nO1xuICB9XG4gIGZ1\nbmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4g\nICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgKHR5cGUgPT0gXCJvYmplY3RcIiB8fCB0eXBlID09\nIFwiZnVuY3Rpb25cIik7XG4gIH1cbiAgdmFyIE5BTiA9IDAgXC8gMDtcbiAgdmFyIHJlSXNCYWRI\nZXggPSBcL15bLStdMHhbMC05YS1mXSskXC9pO1xuICB2YXIgcmVJc0JpbmFyeSA9IFwvXjBiWzAx\nXSskXC9pO1xuICB2YXIgcmVJc09jdGFsID0gXC9eMG9bMC03XSskXC9pO1xuICB2YXIgZnJlZVBh\ncnNlSW50ID0gcGFyc2VJbnQ7XG4gIGZ1bmN0aW9uIHRvTnVtYmVyKHZhbHVlKSB7XG4gICAgaWYg\nKHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAg\nfVxuICAgIGlmIChpc1N5bWJvbCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBOQU47XG4gICAgfVxu\nICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHZhciBvdGhlciA9IHR5cGVvZiB2YWx1\nZS52YWx1ZU9mID09IFwiZnVuY3Rpb25cIiA\/IHZhbHVlLnZhbHVlT2YoKSA6IHZhbHVlO1xuICAg\nICAgdmFsdWUgPSBpc09iamVjdChvdGhlcikgPyBvdGhlciArIFwiXCIgOiBvdGhlcjtcbiAgICB9\nXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSBcInN0cmluZ1wiKSB7XG4gICAgICByZXR1cm4gdmFs\ndWUgPT09IDAgPyB2YWx1ZSA6ICt2YWx1ZTtcbiAgICB9XG4gICAgdmFsdWUgPSBiYXNlVHJpbSh2\nYWx1ZSk7XG4gICAgdmFyIGlzQmluYXJ5ID0gcmVJc0JpbmFyeS50ZXN0KHZhbHVlKTtcbiAgICBy\nZXR1cm4gaXNCaW5hcnkgfHwgcmVJc09jdGFsLnRlc3QodmFsdWUpID8gZnJlZVBhcnNlSW50KHZh\nbHVlLnNsaWNlKDIpLCBpc0JpbmFyeSA\/IDIgOiA4KSA6IHJlSXNCYWRIZXgudGVzdCh2YWx1ZSkg\nPyBOQU4gOiArdmFsdWU7XG4gIH1cbiAgZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgICBy\nZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIGFzeW5jVGFnID0gXCJbb2JqZWN0IEFzeW5jRnVuY3Rp\nb25dXCIsIGZ1bmNUYWcgPSBcIltvYmplY3QgRnVuY3Rpb25dXCIsIGdlblRhZyA9IFwiW29iamVj\ndCBHZW5lcmF0b3JGdW5jdGlvbl1cIiwgcHJveHlUYWcgPSBcIltvYmplY3QgUHJveHldXCI7XG4g\nIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkg\ne1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIgdGFnID0gYmFzZUdldFRhZyh2\nYWx1ZSk7XG4gICAgcmV0dXJuIHRhZyA9PSBmdW5jVGFnIHx8IHRhZyA9PSBnZW5UYWcgfHwgdGFn\nID09IGFzeW5jVGFnIHx8IHRhZyA9PSBwcm94eVRhZztcbiAgfVxuICB2YXIgY29yZUpzRGF0YSA9\nIHJvb3RbXCJfX2NvcmUtanNfc2hhcmVkX19cIl07XG4gIHZhciBtYXNrU3JjS2V5ID0gZnVuY3Rp\nb24oKSB7XG4gICAgdmFyIHVpZCA9IFwvW14uXSskXC8uZXhlYyhjb3JlSnNEYXRhICYmIGNvcmVK\nc0RhdGEua2V5cyAmJiBjb3JlSnNEYXRhLmtleXMuSUVfUFJPVE8gfHwgXCJcIik7XG4gICAgcmV0\ndXJuIHVpZCA\/IFwiU3ltYm9sKHNyYylfMS5cIiArIHVpZCA6IFwiXCI7XG4gIH0oKTtcbiAgZnVu\nY3Rpb24gaXNNYXNrZWQoZnVuYykge1xuICAgIHJldHVybiAhIW1hc2tTcmNLZXkgJiYgbWFza1Ny\nY0tleSBpbiBmdW5jO1xuICB9XG4gIHZhciBmdW5jUHJvdG8kMSA9IEZ1bmN0aW9uLnByb3RvdHlw\nZTtcbiAgdmFyIGZ1bmNUb1N0cmluZyQxID0gZnVuY1Byb3RvJDEudG9TdHJpbmc7XG4gIGZ1bmN0\naW9uIHRvU291cmNlKGZ1bmMpIHtcbiAgICBpZiAoZnVuYyAhPSBudWxsKSB7XG4gICAgICB0cnkg\ne1xuICAgICAgICByZXR1cm4gZnVuY1RvU3RyaW5nJDEuY2FsbChmdW5jKTtcbiAgICAgIH0gY2F0\nY2ggKGUpIHtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBmdW5jICsgXCJc\nIjtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7\nXG4gIH1cbiAgdmFyIHJlUmVnRXhwQ2hhciA9IFwvW1xcXFxeJC4qKz8oKVtcXF17fXxdXC9nO1xu\nICB2YXIgcmVJc0hvc3RDdG9yID0gXC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJFwvO1xu\nICB2YXIgZnVuY1Byb3RvID0gRnVuY3Rpb24ucHJvdG90eXBlLCBvYmplY3RQcm90byQ0ID0gT2Jq\nZWN0LnByb3RvdHlwZTtcbiAgdmFyIGZ1bmNUb1N0cmluZyA9IGZ1bmNQcm90by50b1N0cmluZztc\nbiAgdmFyIGhhc093blByb3BlcnR5JDQgPSBvYmplY3RQcm90byQ0Lmhhc093blByb3BlcnR5O1xu\nICB2YXIgcmVJc05hdGl2ZSA9IFJlZ0V4cChcbiAgICBcIl5cIiArIGZ1bmNUb1N0cmluZy5jYWxs\nKGhhc093blByb3BlcnR5JDQpLnJlcGxhY2UocmVSZWdFeHBDaGFyLCBcIlxcXFwkJlwiKS5yZXBs\nYWNlKFwvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg\/PVxcXFxcXCgpfCBmb3IgLis\/KD89\nXFxcXFxcXSlcL2csIFwiJDEuKj9cIikgKyBcIiRcIlxuICApO1xuICBmdW5jdGlvbiBiYXNlSXNO\nYXRpdmUodmFsdWUpIHtcbiAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCBpc01hc2tlZCh2YWx1\nZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIHBhdHRlcm4gPSBpc0Z1\nbmN0aW9uKHZhbHVlKSA\/IHJlSXNOYXRpdmUgOiByZUlzSG9zdEN0b3I7XG4gICAgcmV0dXJuIHBh\ndHRlcm4udGVzdCh0b1NvdXJjZSh2YWx1ZSkpO1xuICB9XG4gIGZ1bmN0aW9uIGdldFZhbHVlKG9i\namVjdCwga2V5KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdm9pZCAwIDogb2JqZWN0\nW2tleV07XG4gIH1cbiAgZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gICAgdmFy\nIHZhbHVlID0gZ2V0VmFsdWUob2JqZWN0LCBrZXkpO1xuICAgIHJldHVybiBiYXNlSXNOYXRpdmUo\ndmFsdWUpID8gdmFsdWUgOiB2b2lkIDA7XG4gIH1cbiAgZnVuY3Rpb24gYXBwbHkoZnVuYywgdGhp\nc0FyZywgYXJncykge1xuICAgIHN3aXRjaCAoYXJncy5sZW5ndGgpIHtcbiAgICAgIGNhc2UgMDpc\nbiAgICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnKTtcbiAgICAgIGNhc2UgMTpcbiAgICAg\nICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdKTtcbiAgICAgIGNhc2UgMjpcbiAg\nICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdzWzFdKTtcbiAgICAg\nIGNhc2UgMzpcbiAgICAgICAgcmV0dXJuIGZ1bmMuY2FsbCh0aGlzQXJnLCBhcmdzWzBdLCBhcmdz\nWzFdLCBhcmdzWzJdKTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJn\ncyk7XG4gIH1cbiAgdmFyIEhPVF9DT1VOVCA9IDgwMCwgSE9UX1NQQU4gPSAxNjtcbiAgdmFyIG5h\ndGl2ZU5vdyA9IERhdGUubm93O1xuICBmdW5jdGlvbiBzaG9ydE91dChmdW5jKSB7XG4gICAgdmFy\nIGNvdW50ID0gMCwgbGFzdENhbGxlZCA9IDA7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAg\nICAgdmFyIHN0YW1wID0gbmF0aXZlTm93KCksIHJlbWFpbmluZyA9IEhPVF9TUEFOIC0gKHN0YW1w\nIC0gbGFzdENhbGxlZCk7XG4gICAgICBsYXN0Q2FsbGVkID0gc3RhbXA7XG4gICAgICBpZiAocmVt\nYWluaW5nID4gMCkge1xuICAgICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAg\nICAgICByZXR1cm4gYXJndW1lbnRzWzBdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAg\nICAgICBjb3VudCA9IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gZnVuYy5hcHBseSh2b2lkIDAs\nIGFyZ3VtZW50cyk7XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBjb25zdGFudCh2YWx1ZSkge1xu\nICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuICB9\nXG4gIHZhciBkZWZpbmVQcm9wZXJ0eSA9IGZ1bmN0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICB2\nYXIgZnVuYyA9IGdldE5hdGl2ZShPYmplY3QsIFwiZGVmaW5lUHJvcGVydHlcIik7XG4gICAgICBm\ndW5jKHt9LCBcIlwiLCB7fSk7XG4gICAgICByZXR1cm4gZnVuYztcbiAgICB9IGNhdGNoIChlKSB7\nXG4gICAgfVxuICB9KCk7XG4gIHZhciBiYXNlU2V0VG9TdHJpbmcgPSAhZGVmaW5lUHJvcGVydHkg\nPyBpZGVudGl0eSA6IGZ1bmN0aW9uKGZ1bmMsIHN0cmluZykge1xuICAgIHJldHVybiBkZWZpbmVQ\ncm9wZXJ0eShmdW5jLCBcInRvU3RyaW5nXCIsIHtcbiAgICAgIFwiY29uZmlndXJhYmxlXCI6IHRy\ndWUsXG4gICAgICBcImVudW1lcmFibGVcIjogZmFsc2UsXG4gICAgICBcInZhbHVlXCI6IGNvbnN0\nYW50KHN0cmluZyksXG4gICAgICBcIndyaXRhYmxlXCI6IHRydWVcbiAgICB9KTtcbiAgfTtcbiAg\ndmFyIHNldFRvU3RyaW5nID0gc2hvcnRPdXQoYmFzZVNldFRvU3RyaW5nKTtcbiAgdmFyIE1BWF9T\nQUZFX0lOVEVHRVIkMSA9IDkwMDcxOTkyNTQ3NDA5OTE7XG4gIHZhciByZUlzVWludCA9IFwvXig\/\nOjB8WzEtOV1cXGQqKSRcLztcbiAgZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4g\nICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4gICAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwg\nPyBNQVhfU0FGRV9JTlRFR0VSJDEgOiBsZW5ndGg7XG4gICAgcmV0dXJuICEhbGVuZ3RoICYmICh0\neXBlID09IFwibnVtYmVyXCIgfHwgdHlwZSAhPSBcInN5bWJvbFwiICYmIHJlSXNVaW50LnRlc3Qo\ndmFsdWUpKSAmJiAodmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0\naCk7XG4gIH1cbiAgZnVuY3Rpb24gYmFzZUFzc2lnblZhbHVlKG9iamVjdCwga2V5LCB2YWx1ZSkg\ne1xuICAgIGlmIChrZXkgPT0gXCJfX3Byb3RvX19cIiAmJiBkZWZpbmVQcm9wZXJ0eSkge1xuICAg\nICAgZGVmaW5lUHJvcGVydHkob2JqZWN0LCBrZXksIHtcbiAgICAgICAgXCJjb25maWd1cmFibGVc\nIjogdHJ1ZSxcbiAgICAgICAgXCJlbnVtZXJhYmxlXCI6IHRydWUsXG4gICAgICAgIFwidmFsdWVc\nIjogdmFsdWUsXG4gICAgICAgIFwid3JpdGFibGVcIjogdHJ1ZVxuICAgICAgfSk7XG4gICAgfSBl\nbHNlIHtcbiAgICAgIG9iamVjdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9u\nIGVxKHZhbHVlLCBvdGhlcikge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gb3RoZXIgfHwgdmFsdWUg\nIT09IHZhbHVlICYmIG90aGVyICE9PSBvdGhlcjtcbiAgfVxuICB2YXIgb2JqZWN0UHJvdG8kMyA9\nIE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBoYXNPd25Qcm9wZXJ0eSQzID0gb2JqZWN0UHJvdG8k\nMy5oYXNPd25Qcm9wZXJ0eTtcbiAgZnVuY3Rpb24gYXNzaWduVmFsdWUob2JqZWN0LCBrZXksIHZh\nbHVlKSB7XG4gICAgdmFyIG9ialZhbHVlID0gb2JqZWN0W2tleV07XG4gICAgaWYgKCEoaGFzT3du\nUHJvcGVydHkkMy5jYWxsKG9iamVjdCwga2V5KSAmJiBlcShvYmpWYWx1ZSwgdmFsdWUpKSB8fCB2\nYWx1ZSA9PT0gdm9pZCAwICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgIGJhc2VBc3NpZ25W\nYWx1ZShvYmplY3QsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuICB2YXIgbmF0aXZlTWF4JDEg\nPSBNYXRoLm1heDtcbiAgZnVuY3Rpb24gb3ZlclJlc3QoZnVuYywgc3RhcnQsIHRyYW5zZm9ybSkg\ne1xuICAgIHN0YXJ0ID0gbmF0aXZlTWF4JDEoc3RhcnQgPT09IHZvaWQgMCA\/IGZ1bmMubGVuZ3Ro\nIC0gMSA6IHN0YXJ0LCAwKTtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgYXJn\ncyA9IGFyZ3VtZW50cywgaW5kZXggPSAtMSwgbGVuZ3RoID0gbmF0aXZlTWF4JDEoYXJncy5sZW5n\ndGggLSBzdGFydCwgMCksIGFycmF5ID0gQXJyYXkobGVuZ3RoKTtcbiAgICAgIHdoaWxlICgrK2lu\nZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgIGFycmF5W2luZGV4XSA9IGFyZ3Nbc3RhcnQgKyBpbmRl\neF07XG4gICAgICB9XG4gICAgICBpbmRleCA9IC0xO1xuICAgICAgdmFyIG90aGVyQXJncyA9IEFy\ncmF5KHN0YXJ0ICsgMSk7XG4gICAgICB3aGlsZSAoKytpbmRleCA8IHN0YXJ0KSB7XG4gICAgICAg\nIG90aGVyQXJnc1tpbmRleF0gPSBhcmdzW2luZGV4XTtcbiAgICAgIH1cbiAgICAgIG90aGVyQXJn\nc1tzdGFydF0gPSB0cmFuc2Zvcm0oYXJyYXkpO1xuICAgICAgcmV0dXJuIGFwcGx5KGZ1bmMsIHRo\naXMsIG90aGVyQXJncyk7XG4gICAgfTtcbiAgfVxuICB2YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkw\nMDcxOTkyNTQ3NDA5OTE7XG4gIGZ1bmN0aW9uIGlzTGVuZ3RoKHZhbHVlKSB7XG4gICAgcmV0dXJu\nIHR5cGVvZiB2YWx1ZSA9PSBcIm51bWJlclwiICYmIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09\nIDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbiAgfVxuICB2YXIgYXJnc1RhZyA9IFwi\nW29iamVjdCBBcmd1bWVudHNdXCI7XG4gIGZ1bmN0aW9uIGJhc2VJc0FyZ3VtZW50cyh2YWx1ZSkg\ne1xuICAgIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGJhc2VHZXRUYWcodmFsdWUpID09\nIGFyZ3NUYWc7XG4gIH1cbiAgdmFyIG9iamVjdFByb3RvJDIgPSBPYmplY3QucHJvdG90eXBlO1xu\nICB2YXIgaGFzT3duUHJvcGVydHkkMiA9IG9iamVjdFByb3RvJDIuaGFzT3duUHJvcGVydHk7XG4g\nIHZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IG9iamVjdFByb3RvJDIucHJvcGVydHlJc0VudW1l\ncmFibGU7XG4gIHZhciBpc0FyZ3VtZW50cyA9IGJhc2VJc0FyZ3VtZW50cyhcLyogQF9fUFVSRV9f\nICpcLyBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gYXJndW1lbnRzO1xuICB9KCkpID8gYmFzZUlz\nQXJndW1lbnRzIDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gaXNPYmplY3RMaWtlKHZh\nbHVlKSAmJiBoYXNPd25Qcm9wZXJ0eSQyLmNhbGwodmFsdWUsIFwiY2FsbGVlXCIpICYmICFwcm9w\nZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHZhbHVlLCBcImNhbGxlZVwiKTtcbiAgfTtcbiAgdmFyIHJl\nSXNEZWVwUHJvcCA9IFwvXFwufFxcWyg\/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXFxc\nXXxcXFxcLikqP1xcMSlcXF1cLywgcmVJc1BsYWluUHJvcCA9IFwvXlxcdyokXC87XG4gIGZ1bmN0\naW9uIGlzS2V5KHZhbHVlLCBvYmplY3QpIHtcbiAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAg\nICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4g\nICAgaWYgKHR5cGUgPT0gXCJudW1iZXJcIiB8fCB0eXBlID09IFwic3ltYm9sXCIgfHwgdHlwZSA9\nPSBcImJvb2xlYW5cIiB8fCB2YWx1ZSA9PSBudWxsIHx8IGlzU3ltYm9sKHZhbHVlKSkge1xuICAg\nICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiByZUlzUGxhaW5Qcm9wLnRlc3QodmFs\ndWUpIHx8ICFyZUlzRGVlcFByb3AudGVzdCh2YWx1ZSkgfHwgb2JqZWN0ICE9IG51bGwgJiYgdmFs\ndWUgaW4gT2JqZWN0KG9iamVjdCk7XG4gIH1cbiAgdmFyIG5hdGl2ZUNyZWF0ZSA9IGdldE5hdGl2\nZShPYmplY3QsIFwiY3JlYXRlXCIpO1xuICBmdW5jdGlvbiBoYXNoQ2xlYXIoKSB7XG4gICAgdGhp\ncy5fX2RhdGFfXyA9IG5hdGl2ZUNyZWF0ZSA\/IG5hdGl2ZUNyZWF0ZShudWxsKSA6IHt9O1xuICAg\nIHRoaXMuc2l6ZSA9IDA7XG4gIH1cbiAgZnVuY3Rpb24gaGFzaERlbGV0ZShrZXkpIHtcbiAgICB2\nYXIgcmVzdWx0ID0gdGhpcy5oYXMoa2V5KSAmJiBkZWxldGUgdGhpcy5fX2RhdGFfX1trZXldO1xu\nICAgIHRoaXMuc2l6ZSAtPSByZXN1bHQgPyAxIDogMDtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9\nXG4gIHZhciBIQVNIX1VOREVGSU5FRCQxID0gXCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fXCI7\nXG4gIHZhciBvYmplY3RQcm90byQxID0gT2JqZWN0LnByb3RvdHlwZTtcbiAgdmFyIGhhc093blBy\nb3BlcnR5JDEgPSBvYmplY3RQcm90byQxLmhhc093blByb3BlcnR5O1xuICBmdW5jdGlvbiBoYXNo\nR2V0KGtleSkge1xuICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICBpZiAobmF0aXZl\nQ3JlYXRlKSB7XG4gICAgICB2YXIgcmVzdWx0ID0gZGF0YVtrZXldO1xuICAgICAgcmV0dXJuIHJl\nc3VsdCA9PT0gSEFTSF9VTkRFRklORUQkMSA\/IHZvaWQgMCA6IHJlc3VsdDtcbiAgICB9XG4gICAg\ncmV0dXJuIGhhc093blByb3BlcnR5JDEuY2FsbChkYXRhLCBrZXkpID8gZGF0YVtrZXldIDogdm9p\nZCAwO1xuICB9XG4gIHZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG4gIHZhciBo\nYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuICBmdW5jdGlvbiBo\nYXNoSGFzKGtleSkge1xuICAgIHZhciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICByZXR1cm4g\nbmF0aXZlQ3JlYXRlID8gZGF0YVtrZXldICE9PSB2b2lkIDAgOiBoYXNPd25Qcm9wZXJ0eS5jYWxs\nKGRhdGEsIGtleSk7XG4gIH1cbiAgdmFyIEhBU0hfVU5ERUZJTkVEID0gXCJfX2xvZGFzaF9oYXNo\nX3VuZGVmaW5lZF9fXCI7XG4gIGZ1bmN0aW9uIGhhc2hTZXQoa2V5LCB2YWx1ZSkge1xuICAgIHZh\nciBkYXRhID0gdGhpcy5fX2RhdGFfXztcbiAgICB0aGlzLnNpemUgKz0gdGhpcy5oYXMoa2V5KSA\/\nIDAgOiAxO1xuICAgIGRhdGFba2V5XSA9IG5hdGl2ZUNyZWF0ZSAmJiB2YWx1ZSA9PT0gdm9pZCAw\nID8gSEFTSF9VTkRFRklORUQgOiB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBmdW5j\ndGlvbiBIYXNoKGVudHJpZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gZW50cmll\ncyA9PSBudWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB3\naGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRl\neF07XG4gICAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgIH1cbiAgfVxuICBI\nYXNoLnByb3RvdHlwZS5jbGVhciA9IGhhc2hDbGVhcjtcbiAgSGFzaC5wcm90b3R5cGVbXCJkZWxl\ndGVcIl0gPSBoYXNoRGVsZXRlO1xuICBIYXNoLnByb3RvdHlwZS5nZXQgPSBoYXNoR2V0O1xuICBI\nYXNoLnByb3RvdHlwZS5oYXMgPSBoYXNoSGFzO1xuICBIYXNoLnByb3RvdHlwZS5zZXQgPSBoYXNo\nU2V0O1xuICBmdW5jdGlvbiBsaXN0Q2FjaGVDbGVhcigpIHtcbiAgICB0aGlzLl9fZGF0YV9fID0g\nW107XG4gICAgdGhpcy5zaXplID0gMDtcbiAgfVxuICBmdW5jdGlvbiBhc3NvY0luZGV4T2YoYXJy\nYXksIGtleSkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgd2hpbGUgKGxl\nbmd0aC0tKSB7XG4gICAgICBpZiAoZXEoYXJyYXlbbGVuZ3RoXVswXSwga2V5KSkge1xuICAgICAg\nICByZXR1cm4gbGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cbiAg\ndmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG4gIHZhciBzcGxpY2UgPSBhcnJheVBy\nb3RvLnNwbGljZTtcbiAgZnVuY3Rpb24gbGlzdENhY2hlRGVsZXRlKGtleSkge1xuICAgIHZhciBk\nYXRhID0gdGhpcy5fX2RhdGFfXywgaW5kZXggPSBhc3NvY0luZGV4T2YoZGF0YSwga2V5KTtcbiAg\nICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBs\nYXN0SW5kZXggPSBkYXRhLmxlbmd0aCAtIDE7XG4gICAgaWYgKGluZGV4ID09IGxhc3RJbmRleCkg\ne1xuICAgICAgZGF0YS5wb3AoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3BsaWNlLmNhbGwoZGF0\nYSwgaW5kZXgsIDEpO1xuICAgIH1cbiAgICAtLXRoaXMuc2l6ZTtcbiAgICByZXR1cm4gdHJ1ZTtc\nbiAgfVxuICBmdW5jdGlvbiBsaXN0Q2FjaGVHZXQoa2V5KSB7XG4gICAgdmFyIGRhdGEgPSB0aGlz\nLl9fZGF0YV9fLCBpbmRleCA9IGFzc29jSW5kZXhPZihkYXRhLCBrZXkpO1xuICAgIHJldHVybiBp\nbmRleCA8IDAgPyB2b2lkIDAgOiBkYXRhW2luZGV4XVsxXTtcbiAgfVxuICBmdW5jdGlvbiBsaXN0\nQ2FjaGVIYXMoa2V5KSB7XG4gICAgcmV0dXJuIGFzc29jSW5kZXhPZih0aGlzLl9fZGF0YV9fLCBr\nZXkpID4gLTE7XG4gIH1cbiAgZnVuY3Rpb24gbGlzdENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAg\nICB2YXIgZGF0YSA9IHRoaXMuX19kYXRhX18sIGluZGV4ID0gYXNzb2NJbmRleE9mKGRhdGEsIGtl\neSk7XG4gICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgKyt0aGlzLnNpemU7XG4gICAgICBkYXRh\nLnB1c2goW2tleSwgdmFsdWVdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0YVtpbmRleF1bMV0g\nPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbiAgZnVuY3Rpb24gTGlzdENh\nY2hlKGVudHJpZXMpIHtcbiAgICB2YXIgaW5kZXggPSAtMSwgbGVuZ3RoID0gZW50cmllcyA9PSBu\ndWxsID8gMCA6IGVudHJpZXMubGVuZ3RoO1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB3aGlsZSAo\nKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIGVudHJ5ID0gZW50cmllc1tpbmRleF07XG4g\nICAgICB0aGlzLnNldChlbnRyeVswXSwgZW50cnlbMV0pO1xuICAgIH1cbiAgfVxuICBMaXN0Q2Fj\naGUucHJvdG90eXBlLmNsZWFyID0gbGlzdENhY2hlQ2xlYXI7XG4gIExpc3RDYWNoZS5wcm90b3R5\ncGVbXCJkZWxldGVcIl0gPSBsaXN0Q2FjaGVEZWxldGU7XG4gIExpc3RDYWNoZS5wcm90b3R5cGUu\nZ2V0ID0gbGlzdENhY2hlR2V0O1xuICBMaXN0Q2FjaGUucHJvdG90eXBlLmhhcyA9IGxpc3RDYWNo\nZUhhcztcbiAgTGlzdENhY2hlLnByb3RvdHlwZS5zZXQgPSBsaXN0Q2FjaGVTZXQ7XG4gIHZhciBN\nYXAkMSA9IGdldE5hdGl2ZShyb290LCBcIk1hcFwiKTtcbiAgZnVuY3Rpb24gbWFwQ2FjaGVDbGVh\ncigpIHtcbiAgICB0aGlzLnNpemUgPSAwO1xuICAgIHRoaXMuX19kYXRhX18gPSB7XG4gICAgICBc\nImhhc2hcIjogbmV3IEhhc2goKSxcbiAgICAgIFwibWFwXCI6IG5ldyAoTWFwJDEgfHwgTGlzdENh\nY2hlKSgpLFxuICAgICAgXCJzdHJpbmdcIjogbmV3IEhhc2goKVxuICAgIH07XG4gIH1cbiAgZnVu\nY3Rpb24gaXNLZXlhYmxlKHZhbHVlKSB7XG4gICAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG4g\nICAgcmV0dXJuIHR5cGUgPT0gXCJzdHJpbmdcIiB8fCB0eXBlID09IFwibnVtYmVyXCIgfHwgdHlw\nZSA9PSBcInN5bWJvbFwiIHx8IHR5cGUgPT0gXCJib29sZWFuXCIgPyB2YWx1ZSAhPT0gXCJfX3By\nb3RvX19cIiA6IHZhbHVlID09PSBudWxsO1xuICB9XG4gIGZ1bmN0aW9uIGdldE1hcERhdGEobWFw\nLCBrZXkpIHtcbiAgICB2YXIgZGF0YSA9IG1hcC5fX2RhdGFfXztcbiAgICByZXR1cm4gaXNLZXlh\nYmxlKGtleSkgPyBkYXRhW3R5cGVvZiBrZXkgPT0gXCJzdHJpbmdcIiA\/IFwic3RyaW5nXCIgOiBc\nImhhc2hcIl0gOiBkYXRhLm1hcDtcbiAgfVxuICBmdW5jdGlvbiBtYXBDYWNoZURlbGV0ZShrZXkp\nIHtcbiAgICB2YXIgcmVzdWx0ID0gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpW1wiZGVsZXRlXCJdKGtl\neSk7XG4gICAgdGhpcy5zaXplIC09IHJlc3VsdCA\/IDEgOiAwO1xuICAgIHJldHVybiByZXN1bHQ7\nXG4gIH1cbiAgZnVuY3Rpb24gbWFwQ2FjaGVHZXQoa2V5KSB7XG4gICAgcmV0dXJuIGdldE1hcERh\ndGEodGhpcywga2V5KS5nZXQoa2V5KTtcbiAgfVxuICBmdW5jdGlvbiBtYXBDYWNoZUhhcyhrZXkp\nIHtcbiAgICByZXR1cm4gZ2V0TWFwRGF0YSh0aGlzLCBrZXkpLmhhcyhrZXkpO1xuICB9XG4gIGZ1\nbmN0aW9uIG1hcENhY2hlU2V0KGtleSwgdmFsdWUpIHtcbiAgICB2YXIgZGF0YSA9IGdldE1hcERh\ndGEodGhpcywga2V5KSwgc2l6ZSA9IGRhdGEuc2l6ZTtcbiAgICBkYXRhLnNldChrZXksIHZhbHVl\nKTtcbiAgICB0aGlzLnNpemUgKz0gZGF0YS5zaXplID09IHNpemUgPyAwIDogMTtcbiAgICByZXR1\ncm4gdGhpcztcbiAgfVxuICBmdW5jdGlvbiBNYXBDYWNoZShlbnRyaWVzKSB7XG4gICAgdmFyIGlu\nZGV4ID0gLTEsIGxlbmd0aCA9IGVudHJpZXMgPT0gbnVsbCA\/IDAgOiBlbnRyaWVzLmxlbmd0aDtc\nbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAg\nIHZhciBlbnRyeSA9IGVudHJpZXNbaW5kZXhdO1xuICAgICAgdGhpcy5zZXQoZW50cnlbMF0sIGVu\ndHJ5WzFdKTtcbiAgICB9XG4gIH1cbiAgTWFwQ2FjaGUucHJvdG90eXBlLmNsZWFyID0gbWFwQ2Fj\naGVDbGVhcjtcbiAgTWFwQ2FjaGUucHJvdG90eXBlW1wiZGVsZXRlXCJdID0gbWFwQ2FjaGVEZWxl\ndGU7XG4gIE1hcENhY2hlLnByb3RvdHlwZS5nZXQgPSBtYXBDYWNoZUdldDtcbiAgTWFwQ2FjaGUu\ncHJvdG90eXBlLmhhcyA9IG1hcENhY2hlSGFzO1xuICBNYXBDYWNoZS5wcm90b3R5cGUuc2V0ID0g\nbWFwQ2FjaGVTZXQ7XG4gIHZhciBGVU5DX0VSUk9SX1RFWFQkMiA9IFwiRXhwZWN0ZWQgYSBmdW5j\ndGlvblwiO1xuICBmdW5jdGlvbiBtZW1vaXplKGZ1bmMsIHJlc29sdmVyKSB7XG4gICAgaWYgKHR5\ncGVvZiBmdW5jICE9IFwiZnVuY3Rpb25cIiB8fCByZXNvbHZlciAhPSBudWxsICYmIHR5cGVvZiBy\nZXNvbHZlciAhPSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVO\nQ19FUlJPUl9URVhUJDIpO1xuICAgIH1cbiAgICB2YXIgbWVtb2l6ZWQgPSBmdW5jdGlvbigpIHtc\nbiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzLCBrZXkgPSByZXNvbHZlciA\/IHJlc29sdmVyLmFw\ncGx5KHRoaXMsIGFyZ3MpIDogYXJnc1swXSwgY2FjaGUgPSBtZW1vaXplZC5jYWNoZTtcbiAgICAg\nIGlmIChjYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7XG4g\nICAgICB9XG4gICAgICB2YXIgcmVzdWx0ID0gZnVuYy5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAg\nIG1lbW9pemVkLmNhY2hlID0gY2FjaGUuc2V0KGtleSwgcmVzdWx0KSB8fCBjYWNoZTtcbiAgICAg\nIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBtZW1vaXplZC5jYWNoZSA9IG5ldyAobWVtb2l6\nZS5DYWNoZSB8fCBNYXBDYWNoZSkoKTtcbiAgICByZXR1cm4gbWVtb2l6ZWQ7XG4gIH1cbiAgbWVt\nb2l6ZS5DYWNoZSA9IE1hcENhY2hlO1xuICB2YXIgTUFYX01FTU9JWkVfU0laRSA9IDUwMDtcbiAg\nZnVuY3Rpb24gbWVtb2l6ZUNhcHBlZChmdW5jKSB7XG4gICAgdmFyIHJlc3VsdCA9IG1lbW9pemUo\nZnVuYywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICBpZiAoY2FjaGUuc2l6ZSA9PT0gTUFYX01FTU9J\nWkVfU0laRSkge1xuICAgICAgICBjYWNoZS5jbGVhcigpO1xuICAgICAgfVxuICAgICAgcmV0dXJu\nIGtleTtcbiAgICB9KTtcbiAgICB2YXIgY2FjaGUgPSByZXN1bHQuY2FjaGU7XG4gICAgcmV0dXJu\nIHJlc3VsdDtcbiAgfVxuICB2YXIgcmVQcm9wTmFtZSA9IFwvW14uW1xcXV0rfFxcWyg\/OigtP1xc\nZCsoPzpcXC5cXGQrKT8pfChbXCInXSkoKD86KD8hXFwyKVteXFxcXF18XFxcXC4pKj8pXFwyKVxc\nXXwoPz0oPzpcXC58XFxbXFxdKSg\/OlxcLnxcXFtcXF18JCkpXC9nO1xuICB2YXIgcmVFc2NhcGVD\naGFyID0gXC9cXFxcKFxcXFwpP1wvZztcbiAgdmFyIHN0cmluZ1RvUGF0aCA9IG1lbW9pemVDYXBw\nZWQoZnVuY3Rpb24oc3RyaW5nKSB7XG4gICAgdmFyIHJlc3VsdCA9IFtdO1xuICAgIGlmIChzdHJp\nbmcuY2hhckNvZGVBdCgwKSA9PT0gNDYpIHtcbiAgICAgIHJlc3VsdC5wdXNoKFwiXCIpO1xuICAg\nIH1cbiAgICBzdHJpbmcucmVwbGFjZShyZVByb3BOYW1lLCBmdW5jdGlvbihtYXRjaCwgbnVtYmVy\nLCBxdW90ZSwgc3ViU3RyaW5nKSB7XG4gICAgICByZXN1bHQucHVzaChxdW90ZSA\/IHN1YlN0cmlu\nZy5yZXBsYWNlKHJlRXNjYXBlQ2hhciwgXCIkMVwiKSA6IG51bWJlciB8fCBtYXRjaCk7XG4gICAg\nfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG4gIGZ1bmN0aW9uIHRvU3RyaW5nKHZhbHVl\nKSB7XG4gICAgcmV0dXJuIHZhbHVlID09IG51bGwgPyBcIlwiIDogYmFzZVRvU3RyaW5nKHZhbHVl\nKTtcbiAgfVxuICBmdW5jdGlvbiBjYXN0UGF0aCh2YWx1ZSwgb2JqZWN0KSB7XG4gICAgaWYgKGlz\nQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBp\nc0tleSh2YWx1ZSwgb2JqZWN0KSA\/IFt2YWx1ZV0gOiBzdHJpbmdUb1BhdGgodG9TdHJpbmcodmFs\ndWUpKTtcbiAgfVxuICB2YXIgSU5GSU5JVFkgPSAxIFwvIDA7XG4gIGZ1bmN0aW9uIHRvS2V5KHZh\nbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSBcInN0cmluZ1wiIHx8IGlzU3ltYm9sKHZh\nbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB2YXIgcmVzdWx0ID0gdmFs\ndWUgKyBcIlwiO1xuICAgIHJldHVybiByZXN1bHQgPT0gXCIwXCIgJiYgMSBcLyB2YWx1ZSA9PSAt\nSU5GSU5JVFkgPyBcIi0wXCIgOiByZXN1bHQ7XG4gIH1cbiAgZnVuY3Rpb24gYmFzZUdldChvYmpl\nY3QsIHBhdGgpIHtcbiAgICBwYXRoID0gY2FzdFBhdGgocGF0aCwgb2JqZWN0KTtcbiAgICB2YXIg\naW5kZXggPSAwLCBsZW5ndGggPSBwYXRoLmxlbmd0aDtcbiAgICB3aGlsZSAob2JqZWN0ICE9IG51\nbGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIG9iamVjdCA9IG9iamVjdFt0b0tleShwYXRo\nW2luZGV4KytdKV07XG4gICAgfVxuICAgIHJldHVybiBpbmRleCAmJiBpbmRleCA9PSBsZW5ndGgg\nPyBvYmplY3QgOiB2b2lkIDA7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0KG9iamVjdCwgcGF0aCwgZGVm\nYXVsdFZhbHVlKSB7XG4gICAgdmFyIHJlc3VsdCA9IG9iamVjdCA9PSBudWxsID8gdm9pZCAwIDog\nYmFzZUdldChvYmplY3QsIHBhdGgpO1xuICAgIHJldHVybiByZXN1bHQgPT09IHZvaWQgMCA\/IGRl\nZmF1bHRWYWx1ZSA6IHJlc3VsdDtcbiAgfVxuICBmdW5jdGlvbiBhcnJheVB1c2goYXJyYXksIHZh\nbHVlcykge1xuICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSB2YWx1ZXMubGVuZ3RoLCBvZmZz\nZXQgPSBhcnJheS5sZW5ndGg7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAg\nIGFycmF5W29mZnNldCArIGluZGV4XSA9IHZhbHVlc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVy\nbiBhcnJheTtcbiAgfVxuICB2YXIgc3ByZWFkYWJsZVN5bWJvbCA9IFN5bWJvbCQxID8gU3ltYm9s\nJDEuaXNDb25jYXRTcHJlYWRhYmxlIDogdm9pZCAwO1xuICBmdW5jdGlvbiBpc0ZsYXR0ZW5hYmxl\nKHZhbHVlKSB7XG4gICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpIHx8IGlzQXJndW1lbnRzKHZhbHVl\nKSB8fCAhIShzcHJlYWRhYmxlU3ltYm9sICYmIHZhbHVlICYmIHZhbHVlW3NwcmVhZGFibGVTeW1i\nb2xdKTtcbiAgfVxuICBmdW5jdGlvbiBiYXNlRmxhdHRlbihhcnJheSwgZGVwdGgsIHByZWRpY2F0\nZSwgaXNTdHJpY3QsIHJlc3VsdCkge1xuICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBhcnJh\neS5sZW5ndGg7XG4gICAgcHJlZGljYXRlIHx8IChwcmVkaWNhdGUgPSBpc0ZsYXR0ZW5hYmxlKTtc\nbiAgICByZXN1bHQgfHwgKHJlc3VsdCA9IFtdKTtcbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0\naCkge1xuICAgICAgdmFyIHZhbHVlID0gYXJyYXlbaW5kZXhdO1xuICAgICAgaWYgKHByZWRpY2F0\nZSh2YWx1ZSkpIHtcbiAgICAgICAge1xuICAgICAgICAgIGFycmF5UHVzaChyZXN1bHQsIHZhbHVl\nKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5n\ndGhdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAg\nZnVuY3Rpb24gZmxhdHRlbihhcnJheSkge1xuICAgIHZhciBsZW5ndGggPSBhcnJheSA9PSBudWxs\nID8gMCA6IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gbGVuZ3RoID8gYmFzZUZsYXR0ZW4oYXJy\nYXkpIDogW107XG4gIH1cbiAgZnVuY3Rpb24gZmxhdFJlc3QoZnVuYykge1xuICAgIHJldHVybiBz\nZXRUb1N0cmluZyhvdmVyUmVzdChmdW5jLCB2b2lkIDAsIGZsYXR0ZW4pLCBmdW5jICsgXCJcIik7\nXG4gIH1cbiAgZnVuY3Rpb24gYmFzZUhhc0luKG9iamVjdCwga2V5KSB7XG4gICAgcmV0dXJuIG9i\namVjdCAhPSBudWxsICYmIGtleSBpbiBPYmplY3Qob2JqZWN0KTtcbiAgfVxuICBmdW5jdGlvbiBo\nYXNQYXRoKG9iamVjdCwgcGF0aCwgaGFzRnVuYykge1xuICAgIHBhdGggPSBjYXN0UGF0aChwYXRo\nLCBvYmplY3QpO1xuICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBwYXRoLmxlbmd0aCwgcmVz\ndWx0ID0gZmFsc2U7XG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBr\nZXkgPSB0b0tleShwYXRoW2luZGV4XSk7XG4gICAgICBpZiAoIShyZXN1bHQgPSBvYmplY3QgIT0g\nbnVsbCAmJiBoYXNGdW5jKG9iamVjdCwga2V5KSkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9\nXG4gICAgICBvYmplY3QgPSBvYmplY3Rba2V5XTtcbiAgICB9XG4gICAgaWYgKHJlc3VsdCB8fCAr\nK2luZGV4ICE9IGxlbmd0aCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgbGVu\nZ3RoID0gb2JqZWN0ID09IG51bGwgPyAwIDogb2JqZWN0Lmxlbmd0aDtcbiAgICByZXR1cm4gISFs\nZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJiBpc0luZGV4KGtleSwgbGVuZ3RoKSAmJiAoaXNB\ncnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkpO1xuICB9XG4gIGZ1bmN0aW9uIGhh\nc0luKG9iamVjdCwgcGF0aCkge1xuICAgIHJldHVybiBvYmplY3QgIT0gbnVsbCAmJiBoYXNQYXRo\nKG9iamVjdCwgcGF0aCwgYmFzZUhhc0luKTtcbiAgfVxuICB2YXIgbm93ID0gZnVuY3Rpb24oKSB7\nXG4gICAgcmV0dXJuIHJvb3QuRGF0ZS5ub3coKTtcbiAgfTtcbiAgdmFyIEZVTkNfRVJST1JfVEVY\nVCQxID0gXCJFeHBlY3RlZCBhIGZ1bmN0aW9uXCI7XG4gIHZhciBuYXRpdmVNYXggPSBNYXRoLm1h\neCwgbmF0aXZlTWluID0gTWF0aC5taW47XG4gIGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQs\nIG9wdGlvbnMpIHtcbiAgICB2YXIgbGFzdEFyZ3MsIGxhc3RUaGlzLCBtYXhXYWl0LCByZXN1bHQs\nIHRpbWVySWQsIGxhc3RDYWxsVGltZSwgbGFzdEludm9rZVRpbWUgPSAwLCBsZWFkaW5nID0gZmFs\nc2UsIG1heGluZyA9IGZhbHNlLCB0cmFpbGluZyA9IHRydWU7XG4gICAgaWYgKHR5cGVvZiBmdW5j\nICE9IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9S\nX1RFWFQkMSk7XG4gICAgfVxuICAgIHdhaXQgPSB0b051bWJlcih3YWl0KSB8fCAwO1xuICAgIGlm\nIChpc09iamVjdChvcHRpb25zKSkge1xuICAgICAgbGVhZGluZyA9ICEhb3B0aW9ucy5sZWFkaW5n\nO1xuICAgICAgbWF4aW5nID0gXCJtYXhXYWl0XCIgaW4gb3B0aW9ucztcbiAgICAgIG1heFdhaXQg\nPSBtYXhpbmcgPyBuYXRpdmVNYXgodG9OdW1iZXIob3B0aW9ucy5tYXhXYWl0KSB8fCAwLCB3YWl0\nKSA6IG1heFdhaXQ7XG4gICAgICB0cmFpbGluZyA9IFwidHJhaWxpbmdcIiBpbiBvcHRpb25zID8g\nISFvcHRpb25zLnRyYWlsaW5nIDogdHJhaWxpbmc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGludm9r\nZUZ1bmModGltZSkge1xuICAgICAgdmFyIGFyZ3MgPSBsYXN0QXJncywgdGhpc0FyZyA9IGxhc3RU\naGlzO1xuICAgICAgbGFzdEFyZ3MgPSBsYXN0VGhpcyA9IHZvaWQgMDtcbiAgICAgIGxhc3RJbnZv\na2VUaW1lID0gdGltZTtcbiAgICAgIHJlc3VsdCA9IGZ1bmMuYXBwbHkodGhpc0FyZywgYXJncyk7\nXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBsZWFkaW5nRWRnZSh0\naW1lKSB7XG4gICAgICBsYXN0SW52b2tlVGltZSA9IHRpbWU7XG4gICAgICB0aW1lcklkID0gc2V0\nVGltZW91dCh0aW1lckV4cGlyZWQsIHdhaXQpO1xuICAgICAgcmV0dXJuIGxlYWRpbmcgPyBpbnZv\na2VGdW5jKHRpbWUpIDogcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW1haW5pbmdXYWl0\nKHRpbWUpIHtcbiAgICAgIHZhciB0aW1lU2luY2VMYXN0Q2FsbCA9IHRpbWUgLSBsYXN0Q2FsbFRp\nbWUsIHRpbWVTaW5jZUxhc3RJbnZva2UgPSB0aW1lIC0gbGFzdEludm9rZVRpbWUsIHRpbWVXYWl0\naW5nID0gd2FpdCAtIHRpbWVTaW5jZUxhc3RDYWxsO1xuICAgICAgcmV0dXJuIG1heGluZyA\/IG5h\ndGl2ZU1pbih0aW1lV2FpdGluZywgbWF4V2FpdCAtIHRpbWVTaW5jZUxhc3RJbnZva2UpIDogdGlt\nZVdhaXRpbmc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZEludm9rZSh0aW1lKSB7XG4gICAg\nICB2YXIgdGltZVNpbmNlTGFzdENhbGwgPSB0aW1lIC0gbGFzdENhbGxUaW1lLCB0aW1lU2luY2VM\nYXN0SW52b2tlID0gdGltZSAtIGxhc3RJbnZva2VUaW1lO1xuICAgICAgcmV0dXJuIGxhc3RDYWxs\nVGltZSA9PT0gdm9pZCAwIHx8IHRpbWVTaW5jZUxhc3RDYWxsID49IHdhaXQgfHwgdGltZVNpbmNl\nTGFzdENhbGwgPCAwIHx8IG1heGluZyAmJiB0aW1lU2luY2VMYXN0SW52b2tlID49IG1heFdhaXQ7\nXG4gICAgfVxuICAgIGZ1bmN0aW9uIHRpbWVyRXhwaXJlZCgpIHtcbiAgICAgIHZhciB0aW1lID0g\nbm93KCk7XG4gICAgICBpZiAoc2hvdWxkSW52b2tlKHRpbWUpKSB7XG4gICAgICAgIHJldHVybiB0\ncmFpbGluZ0VkZ2UodGltZSk7XG4gICAgICB9XG4gICAgICB0aW1lcklkID0gc2V0VGltZW91dCh0\naW1lckV4cGlyZWQsIHJlbWFpbmluZ1dhaXQodGltZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0\ncmFpbGluZ0VkZ2UodGltZSkge1xuICAgICAgdGltZXJJZCA9IHZvaWQgMDtcbiAgICAgIGlmICh0\ncmFpbGluZyAmJiBsYXN0QXJncykge1xuICAgICAgICByZXR1cm4gaW52b2tlRnVuYyh0aW1lKTtc\nbiAgICAgIH1cbiAgICAgIGxhc3RBcmdzID0gbGFzdFRoaXMgPSB2b2lkIDA7XG4gICAgICByZXR1\ncm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYW5jZWwoKSB7XG4gICAgICBpZiAodGlt\nZXJJZCAhPT0gdm9pZCAwKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcklkKTtcbiAgICAg\nIH1cbiAgICAgIGxhc3RJbnZva2VUaW1lID0gMDtcbiAgICAgIGxhc3RBcmdzID0gbGFzdENhbGxU\naW1lID0gbGFzdFRoaXMgPSB0aW1lcklkID0gdm9pZCAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBm\nbHVzaCgpIHtcbiAgICAgIHJldHVybiB0aW1lcklkID09PSB2b2lkIDAgPyByZXN1bHQgOiB0cmFp\nbGluZ0VkZ2Uobm93KCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWJvdW5jZWQoKSB7XG4gICAg\nICB2YXIgdGltZSA9IG5vdygpLCBpc0ludm9raW5nID0gc2hvdWxkSW52b2tlKHRpbWUpO1xuICAg\nICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBsYXN0VGhpcyA9IHRoaXM7XG4gICAgICBs\nYXN0Q2FsbFRpbWUgPSB0aW1lO1xuICAgICAgaWYgKGlzSW52b2tpbmcpIHtcbiAgICAgICAgaWYg\nKHRpbWVySWQgPT09IHZvaWQgMCkge1xuICAgICAgICAgIHJldHVybiBsZWFkaW5nRWRnZShsYXN0\nQ2FsbFRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtYXhpbmcpIHtcbiAgICAgICAgICBj\nbGVhclRpbWVvdXQodGltZXJJZCk7XG4gICAgICAgICAgdGltZXJJZCA9IHNldFRpbWVvdXQodGlt\nZXJFeHBpcmVkLCB3YWl0KTtcbiAgICAgICAgICByZXR1cm4gaW52b2tlRnVuYyhsYXN0Q2FsbFRp\nbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGltZXJJZCA9PT0gdm9pZCAwKSB7\nXG4gICAgICAgIHRpbWVySWQgPSBzZXRUaW1lb3V0KHRpbWVyRXhwaXJlZCwgd2FpdCk7XG4gICAg\nICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBkZWJvdW5jZWQuY2FuY2VsID0g\nY2FuY2VsO1xuICAgIGRlYm91bmNlZC5mbHVzaCA9IGZsdXNoO1xuICAgIHJldHVybiBkZWJvdW5j\nZWQ7XG4gIH1cbiAgZnVuY3Rpb24gZnJvbVBhaXJzKHBhaXJzKSB7XG4gICAgdmFyIGluZGV4ID0g\nLTEsIGxlbmd0aCA9IHBhaXJzID09IG51bGwgPyAwIDogcGFpcnMubGVuZ3RoLCByZXN1bHQgPSB7\nfTtcbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgdmFyIHBhaXIgPSBwYWly\nc1tpbmRleF07XG4gICAgICByZXN1bHRbcGFpclswXV0gPSBwYWlyWzFdO1xuICAgIH1cbiAgICBy\nZXR1cm4gcmVzdWx0O1xuICB9XG4gIGZ1bmN0aW9uIGJhc2VTZXQob2JqZWN0LCBwYXRoLCB2YWx1\nZSwgY3VzdG9taXplcikge1xuICAgIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgcmV0\ndXJuIG9iamVjdDtcbiAgICB9XG4gICAgcGF0aCA9IGNhc3RQYXRoKHBhdGgsIG9iamVjdCk7XG4g\nICAgdmFyIGluZGV4ID0gLTEsIGxlbmd0aCA9IHBhdGgubGVuZ3RoLCBsYXN0SW5kZXggPSBsZW5n\ndGggLSAxLCBuZXN0ZWQgPSBvYmplY3Q7XG4gICAgd2hpbGUgKG5lc3RlZCAhPSBudWxsICYmICsr\naW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBrZXkgPSB0b0tleShwYXRoW2luZGV4XSksIG5l\nd1ZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAoa2V5ID09PSBcIl9fcHJvdG9fX1wiIHx8IGtleSA9\nPT0gXCJjb25zdHJ1Y3RvclwiIHx8IGtleSA9PT0gXCJwcm90b3R5cGVcIikge1xuICAgICAgICBy\nZXR1cm4gb2JqZWN0O1xuICAgICAgfVxuICAgICAgaWYgKGluZGV4ICE9IGxhc3RJbmRleCkge1xu\nICAgICAgICB2YXIgb2JqVmFsdWUgPSBuZXN0ZWRba2V5XTtcbiAgICAgICAgbmV3VmFsdWUgPSB2\nb2lkIDA7XG4gICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgbmV3\nVmFsdWUgPSBpc09iamVjdChvYmpWYWx1ZSkgPyBvYmpWYWx1ZSA6IGlzSW5kZXgocGF0aFtpbmRl\neCArIDFdKSA\/IFtdIDoge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGFzc2lnblZhbHVl\nKG5lc3RlZCwga2V5LCBuZXdWYWx1ZSk7XG4gICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAg\nICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxuICBmdW5jdGlvbiBiYXNlUGlja0J5KG9iamVj\ndCwgcGF0aHMsIHByZWRpY2F0ZSkge1xuICAgIHZhciBpbmRleCA9IC0xLCBsZW5ndGggPSBwYXRo\ncy5sZW5ndGgsIHJlc3VsdCA9IHt9O1xuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4g\nICAgICB2YXIgcGF0aCA9IHBhdGhzW2luZGV4XSwgdmFsdWUgPSBiYXNlR2V0KG9iamVjdCwgcGF0\naCk7XG4gICAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBwYXRoKSkge1xuICAgICAgICBiYXNlU2V0\nKHJlc3VsdCwgY2FzdFBhdGgocGF0aCwgb2JqZWN0KSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1c\nbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGZ1bmN0aW9uIGJhc2VQaWNrKG9iamVjdCwgcGF0\naHMpIHtcbiAgICByZXR1cm4gYmFzZVBpY2tCeShvYmplY3QsIHBhdGhzLCBmdW5jdGlvbih2YWx1\nZSwgcGF0aCkge1xuICAgICAgcmV0dXJuIGhhc0luKG9iamVjdCwgcGF0aCk7XG4gICAgfSk7XG4g\nIH1cbiAgdmFyIHBpY2sgPSBmbGF0UmVzdChmdW5jdGlvbihvYmplY3QsIHBhdGhzKSB7XG4gICAg\ncmV0dXJuIG9iamVjdCA9PSBudWxsID8ge30gOiBiYXNlUGljayhvYmplY3QsIHBhdGhzKTtcbiAg\nfSk7XG4gIHZhciBGVU5DX0VSUk9SX1RFWFQgPSBcIkV4cGVjdGVkIGEgZnVuY3Rpb25cIjtcbiAg\nZnVuY3Rpb24gdGhyb3R0bGUoZnVuYywgd2FpdCwgb3B0aW9ucykge1xuICAgIHZhciBsZWFkaW5n\nID0gdHJ1ZSwgdHJhaWxpbmcgPSB0cnVlO1xuICAgIGlmICh0eXBlb2YgZnVuYyAhPSBcImZ1bmN0\naW9uXCIpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoRlVOQ19FUlJPUl9URVhUKTtcbiAg\nICB9XG4gICAgaWYgKGlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICBsZWFkaW5nID0gXCJsZWFk\naW5nXCIgaW4gb3B0aW9ucyA\/ICEhb3B0aW9ucy5sZWFkaW5nIDogbGVhZGluZztcbiAgICAgIHRy\nYWlsaW5nID0gXCJ0cmFpbGluZ1wiIGluIG9wdGlvbnMgPyAhIW9wdGlvbnMudHJhaWxpbmcgOiB0\ncmFpbGluZztcbiAgICB9XG4gICAgcmV0dXJuIGRlYm91bmNlKGZ1bmMsIHdhaXQsIHtcbiAgICAg\nIFwibGVhZGluZ1wiOiBsZWFkaW5nLFxuICAgICAgXCJtYXhXYWl0XCI6IHdhaXQsXG4gICAgICBc\nInRyYWlsaW5nXCI6IHRyYWlsaW5nXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgaXNVbmRlZmluZWQg\nPSAodmFsKSA9PiB2YWwgPT09IHZvaWQgMDtcbiAgY29uc3QgaXNOdW1iZXIgPSAodmFsKSA9PiB0\neXBlb2YgdmFsID09PSBcIm51bWJlclwiO1xuICBjb25zdCBpc0VsZW1lbnQgPSAoZSkgPT4ge1xu\nICAgIGlmICh0eXBlb2YgRWxlbWVudCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgIHJldHVybiBm\nYWxzZTtcbiAgICByZXR1cm4gZSBpbnN0YW5jZW9mIEVsZW1lbnQ7XG4gIH07XG4gIGNvbnN0IGlz\nU3RyaW5nTnVtYmVyID0gKHZhbCkgPT4ge1xuICAgIGlmICghaXNTdHJpbmcodmFsKSkge1xuICAg\nICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIU51bWJlci5pc05hTihOdW1iZXIo\ndmFsKSk7XG4gIH07XG4gIGNvbnN0IGNhcGl0YWxpemUgPSAoc3RyKSA9PiBjYXBpdGFsaXplJDEo\nc3RyKTtcbiAgY29uc3Qga2V5c09mID0gKGFycikgPT4gT2JqZWN0LmtleXMoYXJyKTtcbiAgY2xh\nc3MgRWxlbWVudFBsdXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihtKSB7\nXG4gICAgICBzdXBlcihtKTtcbiAgICAgIHRoaXMubmFtZSA9IFwiRWxlbWVudFBsdXNFcnJvclwi\nO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiB0aHJvd0Vycm9yKHNjb3BlLCBtKSB7XG4gICAgdGhy\nb3cgbmV3IEVsZW1lbnRQbHVzRXJyb3IoYFske3Njb3BlfV0gJHttfWApO1xuICB9XG4gIGNvbnN0\nIGdldFN0eWxlID0gKGVsZW1lbnQsIHN0eWxlTmFtZSkgPT4ge1xuICAgIHZhciBfYTM7XG4gICAg\naWYgKCFpc0NsaWVudCB8fCAhZWxlbWVudCB8fCAhc3R5bGVOYW1lKVxuICAgICAgcmV0dXJuIFwi\nXCI7XG4gICAgbGV0IGtleSA9IGNhbWVsaXplKHN0eWxlTmFtZSk7XG4gICAgaWYgKGtleSA9PT0g\nXCJmbG9hdFwiKVxuICAgICAga2V5ID0gXCJjc3NGbG9hdFwiO1xuICAgIHRyeSB7XG4gICAgICBj\nb25zdCBzdHlsZSA9IGVsZW1lbnQuc3R5bGVba2V5XTtcbiAgICAgIGlmIChzdHlsZSlcbiAgICAg\nICAgcmV0dXJuIHN0eWxlO1xuICAgICAgY29uc3QgY29tcHV0ZWQyID0gKF9hMyA9IGRvY3VtZW50\nLmRlZmF1bHRWaWV3KSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmdldENvbXB1dGVkU3R5bGUoZWxl\nbWVudCwgXCJcIik7XG4gICAgICByZXR1cm4gY29tcHV0ZWQyID8gY29tcHV0ZWQyW2tleV0gOiBc\nIlwiO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBlbGVtZW50LnN0eWxlW2tleV07\nXG4gICAgfVxuICB9O1xuICBmdW5jdGlvbiBhZGRVbml0KHZhbHVlLCBkZWZhdWx0VW5pdCA9IFwi\ncHhcIikge1xuICAgIGlmICghdmFsdWUpXG4gICAgICByZXR1cm4gXCJcIjtcbiAgICBpZiAoaXNO\ndW1iZXIodmFsdWUpIHx8IGlzU3RyaW5nTnVtYmVyKHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGAk\ne3ZhbHVlfSR7ZGVmYXVsdFVuaXR9YDtcbiAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKHZhbHVlKSkg\ne1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgfVxuICBjb25zdCBpc1Njcm9sbCA9IChl\nbCwgaXNWZXJ0aWNhbCkgPT4ge1xuICAgIGlmICghaXNDbGllbnQpXG4gICAgICByZXR1cm4gZmFs\nc2U7XG4gICAgY29uc3Qga2V5ID0ge1xuICAgICAgdW5kZWZpbmVkOiBcIm92ZXJmbG93XCIsXG4g\nICAgICB0cnVlOiBcIm92ZXJmbG93LXlcIixcbiAgICAgIGZhbHNlOiBcIm92ZXJmbG93LXhcIlxu\nICAgIH1bU3RyaW5nKGlzVmVydGljYWwpXTtcbiAgICBjb25zdCBvdmVyZmxvdyA9IGdldFN0eWxl\nKGVsLCBrZXkpO1xuICAgIHJldHVybiBbXCJzY3JvbGxcIiwgXCJhdXRvXCIsIFwib3ZlcmxheVwi\nXS5zb21lKChzKSA9PiBvdmVyZmxvdy5pbmNsdWRlcyhzKSk7XG4gIH07XG4gIGNvbnN0IGdldFNj\ncm9sbENvbnRhaW5lciA9IChlbCwgaXNWZXJ0aWNhbCkgPT4ge1xuICAgIGlmICghaXNDbGllbnQp\nXG4gICAgICByZXR1cm47XG4gICAgbGV0IHBhcmVudCA9IGVsO1xuICAgIHdoaWxlIChwYXJlbnQp\nIHtcbiAgICAgIGlmIChbd2luZG93LCBkb2N1bWVudCwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50\nXS5pbmNsdWRlcyhwYXJlbnQpKVxuICAgICAgICByZXR1cm4gd2luZG93O1xuICAgICAgaWYgKGlz\nU2Nyb2xsKHBhcmVudCwgaXNWZXJ0aWNhbCkpXG4gICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAg\nICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudDtc\nbiAgfTtcbiAgY29uc3QgZXBQcm9wS2V5ID0gXCJfX2VwUHJvcEtleVwiO1xuICBjb25zdCBkZWZp\nbmVQcm9wVHlwZSA9ICh2YWwpID0+IHZhbDtcbiAgY29uc3QgaXNFcFByb3AgPSAodmFsKSA9PiBp\nc09iamVjdCQxKHZhbCkgJiYgISF2YWxbZXBQcm9wS2V5XTtcbiAgY29uc3QgYnVpbGRQcm9wID0g\nKHByb3AsIGtleSkgPT4ge1xuICAgIGlmICghaXNPYmplY3QkMShwcm9wKSB8fCBpc0VwUHJvcChw\ncm9wKSlcbiAgICAgIHJldHVybiBwcm9wO1xuICAgIGNvbnN0IHsgdmFsdWVzLCByZXF1aXJlZCwg\nZGVmYXVsdDogZGVmYXVsdFZhbHVlLCB0eXBlLCB2YWxpZGF0b3IgfSA9IHByb3A7XG4gICAgY29u\nc3QgX3ZhbGlkYXRvciA9IHZhbHVlcyB8fCB2YWxpZGF0b3IgPyAodmFsKSA9PiB7XG4gICAgICBs\nZXQgdmFsaWQgPSBmYWxzZTtcbiAgICAgIGxldCBhbGxvd2VkVmFsdWVzID0gW107XG4gICAgICBp\nZiAodmFsdWVzKSB7XG4gICAgICAgIGFsbG93ZWRWYWx1ZXMgPSBBcnJheS5mcm9tKHZhbHVlcyk7\nXG4gICAgICAgIGlmIChoYXNPd24ocHJvcCwgXCJkZWZhdWx0XCIpKSB7XG4gICAgICAgICAgYWxs\nb3dlZFZhbHVlcy5wdXNoKGRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsaWQg\nfHwgKHZhbGlkID0gYWxsb3dlZFZhbHVlcy5pbmNsdWRlcyh2YWwpKTtcbiAgICAgIH1cbiAgICAg\nIGlmICh2YWxpZGF0b3IpXG4gICAgICAgIHZhbGlkIHx8ICh2YWxpZCA9IHZhbGlkYXRvcih2YWwp\nKTtcbiAgICAgIGlmICghdmFsaWQgJiYgYWxsb3dlZFZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAg\nICAgIGNvbnN0IGFsbG93VmFsdWVzVGV4dCA9IFsuLi5uZXcgU2V0KGFsbG93ZWRWYWx1ZXMpXS5t\nYXAoKHZhbHVlKSA9PiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpLmpvaW4oXCIsIFwiKTtcbiAgICAg\nICAgdnVlLndhcm4oYEludmFsaWQgcHJvcDogdmFsaWRhdGlvbiBmYWlsZWQke2tleSA\/IGAgZm9y\nIHByb3AgXCIke2tleX1cImAgOiBcIlwifS4gRXhwZWN0ZWQgb25lIG9mIFske2FsbG93VmFsdWVz\nVGV4dH1dLCBnb3QgdmFsdWUgJHtKU09OLnN0cmluZ2lmeSh2YWwpfS5gKTtcbiAgICAgIH1cbiAg\nICAgIHJldHVybiB2YWxpZDtcbiAgICB9IDogdm9pZCAwO1xuICAgIGNvbnN0IGVwUHJvcCA9IHtc\nbiAgICAgIHR5cGUsXG4gICAgICByZXF1aXJlZDogISFyZXF1aXJlZCxcbiAgICAgIHZhbGlkYXRv\ncjogX3ZhbGlkYXRvcixcbiAgICAgIFtlcFByb3BLZXldOiB0cnVlXG4gICAgfTtcbiAgICBpZiAo\naGFzT3duKHByb3AsIFwiZGVmYXVsdFwiKSlcbiAgICAgIGVwUHJvcC5kZWZhdWx0ID0gZGVmYXVs\ndFZhbHVlO1xuICAgIHJldHVybiBlcFByb3A7XG4gIH07XG4gIGNvbnN0IGJ1aWxkUHJvcHMgPSAo\ncHJvcHMpID0+IGZyb21QYWlycyhPYmplY3QuZW50cmllcyhwcm9wcykubWFwKChba2V5LCBvcHRp\nb25dKSA9PiBbXG4gICAga2V5LFxuICAgIGJ1aWxkUHJvcChvcHRpb24sIGtleSlcbiAgXSkpO1xu\nICBjb25zdCBpY29uUHJvcFR5cGUgPSBkZWZpbmVQcm9wVHlwZShbXG4gICAgU3RyaW5nLFxuICAg\nIE9iamVjdCxcbiAgICBGdW5jdGlvblxuICBdKTtcbiAgY29uc3Qgd2l0aEluc3RhbGwgPSAobWFp\nbiwgZXh0cmEpID0+IHtcbiAgICBtYWluLmluc3RhbGwgPSAoYXBwKSA9PiB7XG4gICAgICBmb3Ig\nKGNvbnN0IGNvbXAgb2YgW21haW4sIC4uLk9iamVjdC52YWx1ZXMoZXh0cmEgIT0gbnVsbCA\/IGV4\ndHJhIDoge30pXSkge1xuICAgICAgICBhcHAuY29tcG9uZW50KGNvbXAubmFtZSwgY29tcCk7XG4g\nICAgICB9XG4gICAgfTtcbiAgICBpZiAoZXh0cmEpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwg\nY29tcF0gb2YgT2JqZWN0LmVudHJpZXMoZXh0cmEpKSB7XG4gICAgICAgIG1haW5ba2V5XSA9IGNv\nbXA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYWluO1xuICB9O1xuICBjb25zdCB3aXRo\nTm9vcEluc3RhbGwgPSAoY29tcG9uZW50KSA9PiB7XG4gICAgY29tcG9uZW50Lmluc3RhbGwgPSBO\nT09QO1xuICAgIHJldHVybiBjb21wb25lbnQ7XG4gIH07XG4gIGNvbnN0IEVWRU5UX0NPREUgPSB7\nXG4gICAgdGFiOiBcIlRhYlwiLFxuICAgIGVudGVyOiBcIkVudGVyXCIsXG4gICAgc3BhY2U6IFwi\nU3BhY2VcIixcbiAgICBsZWZ0OiBcIkFycm93TGVmdFwiLFxuICAgIHVwOiBcIkFycm93VXBcIixc\nbiAgICByaWdodDogXCJBcnJvd1JpZ2h0XCIsXG4gICAgZG93bjogXCJBcnJvd0Rvd25cIixcbiAg\nICBlc2M6IFwiRXNjYXBlXCIsXG4gICAgZGVsZXRlOiBcIkRlbGV0ZVwiLFxuICAgIGJhY2tzcGFj\nZTogXCJCYWNrc3BhY2VcIixcbiAgICBudW1wYWRFbnRlcjogXCJOdW1wYWRFbnRlclwiLFxuICAg\nIHBhZ2VVcDogXCJQYWdlVXBcIixcbiAgICBwYWdlRG93bjogXCJQYWdlRG93blwiLFxuICAgIGhv\nbWU6IFwiSG9tZVwiLFxuICAgIGVuZDogXCJFbmRcIlxuICB9O1xuICBjb25zdCBVUERBVEVfTU9E\nRUxfRVZFTlQgPSBcInVwZGF0ZTptb2RlbFZhbHVlXCI7XG4gIGNvbnN0IGNvbXBvbmVudFNpemVz\nID0gW1wiXCIsIFwiZGVmYXVsdFwiLCBcInNtYWxsXCIsIFwibGFyZ2VcIl07XG4gIHZhciBQYXRj\naEZsYWdzID0gXC8qIEBfX1BVUkVfXyAqXC8gKChQYXRjaEZsYWdzMikgPT4ge1xuICAgIFBhdGNo\nRmxhZ3MyW1BhdGNoRmxhZ3MyW1wiVEVYVFwiXSA9IDFdID0gXCJURVhUXCI7XG4gICAgUGF0Y2hG\nbGFnczJbUGF0Y2hGbGFnczJbXCJDTEFTU1wiXSA9IDJdID0gXCJDTEFTU1wiO1xuICAgIFBhdGNo\nRmxhZ3MyW1BhdGNoRmxhZ3MyW1wiU1RZTEVcIl0gPSA0XSA9IFwiU1RZTEVcIjtcbiAgICBQYXRj\naEZsYWdzMltQYXRjaEZsYWdzMltcIlBST1BTXCJdID0gOF0gPSBcIlBST1BTXCI7XG4gICAgUGF0\nY2hGbGFnczJbUGF0Y2hGbGFnczJbXCJGVUxMX1BST1BTXCJdID0gMTZdID0gXCJGVUxMX1BST1BT\nXCI7XG4gICAgUGF0Y2hGbGFnczJbUGF0Y2hGbGFnczJbXCJIWURSQVRFX0VWRU5UU1wiXSA9IDMy\nXSA9IFwiSFlEUkFURV9FVkVOVFNcIjtcbiAgICBQYXRjaEZsYWdzMltQYXRjaEZsYWdzMltcIlNU\nQUJMRV9GUkFHTUVOVFwiXSA9IDY0XSA9IFwiU1RBQkxFX0ZSQUdNRU5UXCI7XG4gICAgUGF0Y2hG\nbGFnczJbUGF0Y2hGbGFnczJbXCJLRVlFRF9GUkFHTUVOVFwiXSA9IDEyOF0gPSBcIktFWUVEX0ZS\nQUdNRU5UXCI7XG4gICAgUGF0Y2hGbGFnczJbUGF0Y2hGbGFnczJbXCJVTktFWUVEX0ZSQUdNRU5U\nXCJdID0gMjU2XSA9IFwiVU5LRVlFRF9GUkFHTUVOVFwiO1xuICAgIFBhdGNoRmxhZ3MyW1BhdGNo\nRmxhZ3MyW1wiTkVFRF9QQVRDSFwiXSA9IDUxMl0gPSBcIk5FRURfUEFUQ0hcIjtcbiAgICBQYXRj\naEZsYWdzMltQYXRjaEZsYWdzMltcIkRZTkFNSUNfU0xPVFNcIl0gPSAxMDI0XSA9IFwiRFlOQU1J\nQ19TTE9UU1wiO1xuICAgIFBhdGNoRmxhZ3MyW1BhdGNoRmxhZ3MyW1wiSE9JU1RFRFwiXSA9IC0x\nXSA9IFwiSE9JU1RFRFwiO1xuICAgIFBhdGNoRmxhZ3MyW1BhdGNoRmxhZ3MyW1wiQkFJTFwiXSA9\nIC0yXSA9IFwiQkFJTFwiO1xuICAgIHJldHVybiBQYXRjaEZsYWdzMjtcbiAgfSkoUGF0Y2hGbGFn\ncyB8fCB7fSk7XG4gIGZ1bmN0aW9uIGlzRnJhZ21lbnQobm9kZSkge1xuICAgIHJldHVybiB2dWUu\naXNWTm9kZShub2RlKSAmJiBub2RlLnR5cGUgPT09IHZ1ZS5GcmFnbWVudDtcbiAgfVxuICBmdW5j\ndGlvbiBpc0NvbW1lbnQobm9kZSkge1xuICAgIHJldHVybiB2dWUuaXNWTm9kZShub2RlKSAmJiBu\nb2RlLnR5cGUgPT09IHZ1ZS5Db21tZW50O1xuICB9XG4gIGZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50\nTm9kZShub2RlKSB7XG4gICAgcmV0dXJuIHZ1ZS5pc1ZOb2RlKG5vZGUpICYmICFpc0ZyYWdtZW50\nKG5vZGUpICYmICFpc0NvbW1lbnQobm9kZSk7XG4gIH1cbiAgY29uc3QgZmxhdHRlZENoaWxkcmVu\nID0gKGNoaWxkcmVuKSA9PiB7XG4gICAgY29uc3Qgdk5vZGVzID0gaXNBcnJheSQxKGNoaWxkcmVu\nKSA\/IGNoaWxkcmVuIDogW2NoaWxkcmVuXTtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICB2\nTm9kZXMuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgIHZhciBfYTM7XG4gICAgICBpZiAoaXNB\ncnJheSQxKGNoaWxkKSkge1xuICAgICAgICByZXN1bHQucHVzaCguLi5mbGF0dGVkQ2hpbGRyZW4o\nY2hpbGQpKTtcbiAgICAgIH0gZWxzZSBpZiAodnVlLmlzVk5vZGUoY2hpbGQpICYmIGlzQXJyYXkk\nMShjaGlsZC5jaGlsZHJlbikpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4uZmxhdHRlZENoaWxk\ncmVuKGNoaWxkLmNoaWxkcmVuKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVz\naChjaGlsZCk7XG4gICAgICAgIGlmICh2dWUuaXNWTm9kZShjaGlsZCkgJiYgKChfYTMgPSBjaGls\nZC5jb21wb25lbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuc3ViVHJlZSkpIHtcbiAgICAgICAg\nICByZXN1bHQucHVzaCguLi5mbGF0dGVkQ2hpbGRyZW4oY2hpbGQuY29tcG9uZW50LnN1YlRyZWUp\nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH07\nXG4gIGNvbnN0IG11dGFibGUgPSAodmFsKSA9PiB2YWw7XG4gIGNvbnN0IERFRkFVTFRfRVhDTFVE\nRV9LRVlTID0gW1wiY2xhc3NcIiwgXCJzdHlsZVwiXTtcbiAgY29uc3QgTElTVEVORVJfUFJFRklY\nID0gXC9eb25bQS1aXVwvO1xuICBjb25zdCB1c2VBdHRycyA9IChwYXJhbXMgPSB7fSkgPT4ge1xu\nICAgIGNvbnN0IHsgZXhjbHVkZUxpc3RlbmVycyA9IGZhbHNlLCBleGNsdWRlS2V5cyB9ID0gcGFy\nYW1zO1xuICAgIGNvbnN0IGFsbEV4Y2x1ZGVLZXlzID0gdnVlLmNvbXB1dGVkKCgpID0+IHtcbiAg\nICAgIHJldHVybiAoKGV4Y2x1ZGVLZXlzID09IG51bGwgPyB2b2lkIDAgOiBleGNsdWRlS2V5cy52\nYWx1ZSkgfHwgW10pLmNvbmNhdChERUZBVUxUX0VYQ0xVREVfS0VZUyk7XG4gICAgfSk7XG4gICAg\nY29uc3QgaW5zdGFuY2UgPSB2dWUuZ2V0Q3VycmVudEluc3RhbmNlKCk7XG4gICAgaWYgKCFpbnN0\nYW5jZSkge1xuICAgICAgcmV0dXJuIHZ1ZS5jb21wdXRlZCgoKSA9PiAoe30pKTtcbiAgICB9XG4g\nICAgcmV0dXJuIHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICB2YXIgX2EzO1xuICAgICAgcmV0\ndXJuIGZyb21QYWlycyhPYmplY3QuZW50cmllcygoX2EzID0gaW5zdGFuY2UucHJveHkpID09IG51\nbGwgPyB2b2lkIDAgOiBfYTMuJGF0dHJzKS5maWx0ZXIoKFtrZXldKSA9PiAhYWxsRXhjbHVkZUtl\neXMudmFsdWUuaW5jbHVkZXMoa2V5KSAmJiAhKGV4Y2x1ZGVMaXN0ZW5lcnMgJiYgTElTVEVORVJf\nUFJFRklYLnRlc3Qoa2V5KSkpKTtcbiAgICB9KTtcbiAgfTtcbiAgY29uc3QgdXNlRGVwcmVjYXRl\nZCA9ICh7IGZyb20sIHJlcGxhY2VtZW50LCBzY29wZSwgdmVyc2lvbiwgcmVmOiByZWYyLCB0eXBl\nID0gXCJBUElcIiB9LCBjb25kaXRpb24pID0+IHtcbiAgICB2dWUud2F0Y2goKCkgPT4gdnVlLnVu\ncmVmKGNvbmRpdGlvbiksICh2YWwpID0+IHtcbiAgICB9LCB7XG4gICAgICBpbW1lZGlhdGU6IHRy\ndWVcbiAgICB9KTtcbiAgfTtcbiAgdmFyIEVuZ2xpc2ggPSB7XG4gICAgbmFtZTogXCJlblwiLFxu\nICAgIGVsOiB7XG4gICAgICBicmVhZGNydW1iOiB7XG4gICAgICAgIGxhYmVsOiBcIkJyZWFkY3J1\nbWJcIlxuICAgICAgfSxcbiAgICAgIGNvbG9ycGlja2VyOiB7XG4gICAgICAgIGNvbmZpcm06IFwi\nT0tcIixcbiAgICAgICAgY2xlYXI6IFwiQ2xlYXJcIixcbiAgICAgICAgZGVmYXVsdExhYmVsOiBc\nImNvbG9yIHBpY2tlclwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJjdXJyZW50IGNvbG9yIGlz\nIHtjb2xvcn0uIHByZXNzIGVudGVyIHRvIHNlbGVjdCBhIG5ldyBjb2xvci5cIlxuICAgICAgfSxc\nbiAgICAgIGRhdGVwaWNrZXI6IHtcbiAgICAgICAgbm93OiBcIk5vd1wiLFxuICAgICAgICB0b2Rh\neTogXCJUb2RheVwiLFxuICAgICAgICBjYW5jZWw6IFwiQ2FuY2VsXCIsXG4gICAgICAgIGNsZWFy\nOiBcIkNsZWFyXCIsXG4gICAgICAgIGNvbmZpcm06IFwiT0tcIixcbiAgICAgICAgZGF0ZVRhYmxl\nUHJvbXB0OiBcIlVzZSB0aGUgYXJyb3cga2V5cyBhbmQgZW50ZXIgdG8gc2VsZWN0IHRoZSBkYXkg\nb2YgdGhlIG1vbnRoXCIsXG4gICAgICAgIG1vbnRoVGFibGVQcm9tcHQ6IFwiVXNlIHRoZSBhcnJv\ndyBrZXlzIGFuZCBlbnRlciB0byBzZWxlY3QgdGhlIG1vbnRoXCIsXG4gICAgICAgIHllYXJUYWJs\nZVByb21wdDogXCJVc2UgdGhlIGFycm93IGtleXMgYW5kIGVudGVyIHRvIHNlbGVjdCB0aGUgeWVh\nclwiLFxuICAgICAgICBzZWxlY3RlZERhdGU6IFwiU2VsZWN0ZWQgZGF0ZVwiLFxuICAgICAgICBz\nZWxlY3REYXRlOiBcIlNlbGVjdCBkYXRlXCIsXG4gICAgICAgIHNlbGVjdFRpbWU6IFwiU2VsZWN0\nIHRpbWVcIixcbiAgICAgICAgc3RhcnREYXRlOiBcIlN0YXJ0IERhdGVcIixcbiAgICAgICAgc3Rh\ncnRUaW1lOiBcIlN0YXJ0IFRpbWVcIixcbiAgICAgICAgZW5kRGF0ZTogXCJFbmQgRGF0ZVwiLFxu\nICAgICAgICBlbmRUaW1lOiBcIkVuZCBUaW1lXCIsXG4gICAgICAgIHByZXZZZWFyOiBcIlByZXZp\nb3VzIFllYXJcIixcbiAgICAgICAgbmV4dFllYXI6IFwiTmV4dCBZZWFyXCIsXG4gICAgICAgIHBy\nZXZNb250aDogXCJQcmV2aW91cyBNb250aFwiLFxuICAgICAgICBuZXh0TW9udGg6IFwiTmV4dCBN\nb250aFwiLFxuICAgICAgICB5ZWFyOiBcIlwiLFxuICAgICAgICBtb250aDE6IFwiSmFudWFyeVwi\nLFxuICAgICAgICBtb250aDI6IFwiRmVicnVhcnlcIixcbiAgICAgICAgbW9udGgzOiBcIk1hcmNo\nXCIsXG4gICAgICAgIG1vbnRoNDogXCJBcHJpbFwiLFxuICAgICAgICBtb250aDU6IFwiTWF5XCIs\nXG4gICAgICAgIG1vbnRoNjogXCJKdW5lXCIsXG4gICAgICAgIG1vbnRoNzogXCJKdWx5XCIsXG4g\nICAgICAgIG1vbnRoODogXCJBdWd1c3RcIixcbiAgICAgICAgbW9udGg5OiBcIlNlcHRlbWJlclwi\nLFxuICAgICAgICBtb250aDEwOiBcIk9jdG9iZXJcIixcbiAgICAgICAgbW9udGgxMTogXCJOb3Zl\nbWJlclwiLFxuICAgICAgICBtb250aDEyOiBcIkRlY2VtYmVyXCIsXG4gICAgICAgIHdlZWs6IFwi\nd2Vla1wiLFxuICAgICAgICB3ZWVrczoge1xuICAgICAgICAgIHN1bjogXCJTdW5cIixcbiAgICAg\nICAgICBtb246IFwiTW9uXCIsXG4gICAgICAgICAgdHVlOiBcIlR1ZVwiLFxuICAgICAgICAgIHdl\nZDogXCJXZWRcIixcbiAgICAgICAgICB0aHU6IFwiVGh1XCIsXG4gICAgICAgICAgZnJpOiBcIkZy\naVwiLFxuICAgICAgICAgIHNhdDogXCJTYXRcIlxuICAgICAgICB9LFxuICAgICAgICB3ZWVrc0Z1\nbGw6IHtcbiAgICAgICAgICBzdW46IFwiU3VuZGF5XCIsXG4gICAgICAgICAgbW9uOiBcIk1vbmRh\neVwiLFxuICAgICAgICAgIHR1ZTogXCJUdWVzZGF5XCIsXG4gICAgICAgICAgd2VkOiBcIldlZG5l\nc2RheVwiLFxuICAgICAgICAgIHRodTogXCJUaHVyc2RheVwiLFxuICAgICAgICAgIGZyaTogXCJG\ncmlkYXlcIixcbiAgICAgICAgICBzYXQ6IFwiU2F0dXJkYXlcIlxuICAgICAgICB9LFxuICAgICAg\nICBtb250aHM6IHtcbiAgICAgICAgICBqYW46IFwiSmFuXCIsXG4gICAgICAgICAgZmViOiBcIkZl\nYlwiLFxuICAgICAgICAgIG1hcjogXCJNYXJcIixcbiAgICAgICAgICBhcHI6IFwiQXByXCIsXG4g\nICAgICAgICAgbWF5OiBcIk1heVwiLFxuICAgICAgICAgIGp1bjogXCJKdW5cIixcbiAgICAgICAg\nICBqdWw6IFwiSnVsXCIsXG4gICAgICAgICAgYXVnOiBcIkF1Z1wiLFxuICAgICAgICAgIHNlcDog\nXCJTZXBcIixcbiAgICAgICAgICBvY3Q6IFwiT2N0XCIsXG4gICAgICAgICAgbm92OiBcIk5vdlwi\nLFxuICAgICAgICAgIGRlYzogXCJEZWNcIlxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaW5w\ndXROdW1iZXI6IHtcbiAgICAgICAgZGVjcmVhc2U6IFwiZGVjcmVhc2UgbnVtYmVyXCIsXG4gICAg\nICAgIGluY3JlYXNlOiBcImluY3JlYXNlIG51bWJlclwiXG4gICAgICB9LFxuICAgICAgc2VsZWN0\nOiB7XG4gICAgICAgIGxvYWRpbmc6IFwiTG9hZGluZ1wiLFxuICAgICAgICBub01hdGNoOiBcIk5v\nIG1hdGNoaW5nIGRhdGFcIixcbiAgICAgICAgbm9EYXRhOiBcIk5vIGRhdGFcIixcbiAgICAgICAg\ncGxhY2Vob2xkZXI6IFwiU2VsZWN0XCJcbiAgICAgIH0sXG4gICAgICBkcm9wZG93bjoge1xuICAg\nICAgICB0b2dnbGVEcm9wZG93bjogXCJUb2dnbGUgRHJvcGRvd25cIlxuICAgICAgfSxcbiAgICAg\nIGNhc2NhZGVyOiB7XG4gICAgICAgIG5vTWF0Y2g6IFwiTm8gbWF0Y2hpbmcgZGF0YVwiLFxuICAg\nICAgICBsb2FkaW5nOiBcIkxvYWRpbmdcIixcbiAgICAgICAgcGxhY2Vob2xkZXI6IFwiU2VsZWN0\nXCIsXG4gICAgICAgIG5vRGF0YTogXCJObyBkYXRhXCJcbiAgICAgIH0sXG4gICAgICBwYWdpbmF0\naW9uOiB7XG4gICAgICAgIGdvdG86IFwiR28gdG9cIixcbiAgICAgICAgcGFnZXNpemU6IFwiXC9w\nYWdlXCIsXG4gICAgICAgIHRvdGFsOiBcIlRvdGFsIHt0b3RhbH1cIixcbiAgICAgICAgcGFnZUNs\nYXNzaWZpZXI6IFwiXCIsXG4gICAgICAgIHBhZ2U6IFwiUGFnZVwiLFxuICAgICAgICBwcmV2OiBc\nIkdvIHRvIHByZXZpb3VzIHBhZ2VcIixcbiAgICAgICAgbmV4dDogXCJHbyB0byBuZXh0IHBhZ2Vc\nIixcbiAgICAgICAgY3VycmVudFBhZ2U6IFwicGFnZSB7cGFnZXJ9XCIsXG4gICAgICAgIHByZXZQ\nYWdlczogXCJQcmV2aW91cyB7cGFnZXJ9IHBhZ2VzXCIsXG4gICAgICAgIG5leHRQYWdlczogXCJO\nZXh0IHtwYWdlcn0gcGFnZXNcIixcbiAgICAgICAgZGVwcmVjYXRpb25XYXJuaW5nOiBcIkRlcHJl\nY2F0ZWQgdXNhZ2VzIGRldGVjdGVkLCBwbGVhc2UgcmVmZXIgdG8gdGhlIGVsLXBhZ2luYXRpb24g\nZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzXCJcbiAgICAgIH0sXG4gICAgICBkaWFsb2c6\nIHtcbiAgICAgICAgY2xvc2U6IFwiQ2xvc2UgdGhpcyBkaWFsb2dcIlxuICAgICAgfSxcbiAgICAg\nIGRyYXdlcjoge1xuICAgICAgICBjbG9zZTogXCJDbG9zZSB0aGlzIGRpYWxvZ1wiXG4gICAgICB9\nLFxuICAgICAgbWVzc2FnZWJveDoge1xuICAgICAgICB0aXRsZTogXCJNZXNzYWdlXCIsXG4gICAg\nICAgIGNvbmZpcm06IFwiT0tcIixcbiAgICAgICAgY2FuY2VsOiBcIkNhbmNlbFwiLFxuICAgICAg\nICBlcnJvcjogXCJJbGxlZ2FsIGlucHV0XCIsXG4gICAgICAgIGNsb3NlOiBcIkNsb3NlIHRoaXMg\nZGlhbG9nXCJcbiAgICAgIH0sXG4gICAgICB1cGxvYWQ6IHtcbiAgICAgICAgZGVsZXRlVGlwOiBc\nInByZXNzIGRlbGV0ZSB0byByZW1vdmVcIixcbiAgICAgICAgZGVsZXRlOiBcIkRlbGV0ZVwiLFxu\nICAgICAgICBwcmV2aWV3OiBcIlByZXZpZXdcIixcbiAgICAgICAgY29udGludWU6IFwiQ29udGlu\ndWVcIlxuICAgICAgfSxcbiAgICAgIHNsaWRlcjoge1xuICAgICAgICBkZWZhdWx0TGFiZWw6IFwi\nc2xpZGVyIGJldHdlZW4ge21pbn0gYW5kIHttYXh9XCIsXG4gICAgICAgIGRlZmF1bHRSYW5nZVN0\nYXJ0TGFiZWw6IFwicGljayBzdGFydCB2YWx1ZVwiLFxuICAgICAgICBkZWZhdWx0UmFuZ2VFbmRM\nYWJlbDogXCJwaWNrIGVuZCB2YWx1ZVwiXG4gICAgICB9LFxuICAgICAgdGFibGU6IHtcbiAgICAg\nICAgZW1wdHlUZXh0OiBcIk5vIERhdGFcIixcbiAgICAgICAgY29uZmlybUZpbHRlcjogXCJDb25m\naXJtXCIsXG4gICAgICAgIHJlc2V0RmlsdGVyOiBcIlJlc2V0XCIsXG4gICAgICAgIGNsZWFyRmls\ndGVyOiBcIkFsbFwiLFxuICAgICAgICBzdW1UZXh0OiBcIlN1bVwiXG4gICAgICB9LFxuICAgICAg\ndG91cjoge1xuICAgICAgICBuZXh0OiBcIk5leHRcIixcbiAgICAgICAgcHJldmlvdXM6IFwiUHJl\ndmlvdXNcIixcbiAgICAgICAgZmluaXNoOiBcIkZpbmlzaFwiXG4gICAgICB9LFxuICAgICAgdHJl\nZToge1xuICAgICAgICBlbXB0eVRleHQ6IFwiTm8gRGF0YVwiXG4gICAgICB9LFxuICAgICAgdHJh\nbnNmZXI6IHtcbiAgICAgICAgbm9NYXRjaDogXCJObyBtYXRjaGluZyBkYXRhXCIsXG4gICAgICAg\nIG5vRGF0YTogXCJObyBkYXRhXCIsXG4gICAgICAgIHRpdGxlczogW1wiTGlzdCAxXCIsIFwiTGlz\ndCAyXCJdLFxuICAgICAgICBmaWx0ZXJQbGFjZWhvbGRlcjogXCJFbnRlciBrZXl3b3JkXCIsXG4g\nICAgICAgIG5vQ2hlY2tlZEZvcm1hdDogXCJ7dG90YWx9IGl0ZW1zXCIsXG4gICAgICAgIGhhc0No\nZWNrZWRGb3JtYXQ6IFwie2NoZWNrZWR9XC97dG90YWx9IGNoZWNrZWRcIlxuICAgICAgfSxcbiAg\nICAgIGltYWdlOiB7XG4gICAgICAgIGVycm9yOiBcIkZBSUxFRFwiXG4gICAgICB9LFxuICAgICAg\ncGFnZUhlYWRlcjoge1xuICAgICAgICB0aXRsZTogXCJCYWNrXCJcbiAgICAgIH0sXG4gICAgICBw\nb3Bjb25maXJtOiB7XG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIlllc1wiLFxuICAgICAg\nICBjYW5jZWxCdXR0b25UZXh0OiBcIk5vXCJcbiAgICAgIH0sXG4gICAgICBjYXJvdXNlbDoge1xu\nICAgICAgICBsZWZ0QXJyb3c6IFwiQ2Fyb3VzZWwgYXJyb3cgbGVmdFwiLFxuICAgICAgICByaWdo\ndEFycm93OiBcIkNhcm91c2VsIGFycm93IHJpZ2h0XCIsXG4gICAgICAgIGluZGljYXRvcjogXCJD\nYXJvdXNlbCBzd2l0Y2ggdG8gaW5kZXgge2luZGV4fVwiXG4gICAgICB9XG4gICAgfVxuICB9O1xu\nICBjb25zdCBidWlsZFRyYW5zbGF0b3IgPSAobG9jYWxlKSA9PiAocGF0aCwgb3B0aW9uKSA9PiB0\ncmFuc2xhdGUocGF0aCwgb3B0aW9uLCB2dWUudW5yZWYobG9jYWxlKSk7XG4gIGNvbnN0IHRyYW5z\nbGF0ZSA9IChwYXRoLCBvcHRpb24sIGxvY2FsZSkgPT4gZ2V0KGxvY2FsZSwgcGF0aCwgcGF0aCku\ncmVwbGFjZShcL1xceyhcXHcrKVxcfVwvZywgKF8sIGtleSkgPT4ge1xuICAgIHZhciBfYTM7XG4g\nICAgcmV0dXJuIGAkeyhfYTMgPSBvcHRpb24gPT0gbnVsbCA\/IHZvaWQgMCA6IG9wdGlvbltrZXld\nKSAhPSBudWxsID8gX2EzIDogYHske2tleX19YH1gO1xuICB9KTtcbiAgY29uc3QgYnVpbGRMb2Nh\nbGVDb250ZXh0ID0gKGxvY2FsZSkgPT4ge1xuICAgIGNvbnN0IGxhbmcgPSB2dWUuY29tcHV0ZWQo\nKCkgPT4gdnVlLnVucmVmKGxvY2FsZSkubmFtZSk7XG4gICAgY29uc3QgbG9jYWxlUmVmID0gdnVl\nLmlzUmVmKGxvY2FsZSkgPyBsb2NhbGUgOiB2dWUucmVmKGxvY2FsZSk7XG4gICAgcmV0dXJuIHtc\nbiAgICAgIGxhbmcsXG4gICAgICBsb2NhbGU6IGxvY2FsZVJlZixcbiAgICAgIHQ6IGJ1aWxkVHJh\nbnNsYXRvcihsb2NhbGUpXG4gICAgfTtcbiAgfTtcbiAgY29uc3QgbG9jYWxlQ29udGV4dEtleSA9\nIFN5bWJvbChcImxvY2FsZUNvbnRleHRLZXlcIik7XG4gIGNvbnN0IHVzZUxvY2FsZSA9IChsb2Nh\nbGVPdmVycmlkZXMpID0+IHtcbiAgICBjb25zdCBsb2NhbGUgPSB2dWUuaW5qZWN0KGxvY2FsZUNv\nbnRleHRLZXksIHZ1ZS5yZWYoKSk7XG4gICAgcmV0dXJuIGJ1aWxkTG9jYWxlQ29udGV4dCh2dWUu\nY29tcHV0ZWQoKCkgPT4gbG9jYWxlLnZhbHVlIHx8IEVuZ2xpc2gpKTtcbiAgfTtcbiAgY29uc3Qg\nZGVmYXVsdE5hbWVzcGFjZSA9IFwiZWxcIjtcbiAgY29uc3Qgc3RhdGVQcmVmaXggPSBcImlzLVwi\nO1xuICBjb25zdCBfYmVtID0gKG5hbWVzcGFjZSwgYmxvY2ssIGJsb2NrU3VmZml4LCBlbGVtZW50\nLCBtb2RpZmllcikgPT4ge1xuICAgIGxldCBjbHMgPSBgJHtuYW1lc3BhY2V9LSR7YmxvY2t9YDtc\nbiAgICBpZiAoYmxvY2tTdWZmaXgpIHtcbiAgICAgIGNscyArPSBgLSR7YmxvY2tTdWZmaXh9YDtc\nbiAgICB9XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGNscyArPSBgX18ke2VsZW1lbnR9YDtc\nbiAgICB9XG4gICAgaWYgKG1vZGlmaWVyKSB7XG4gICAgICBjbHMgKz0gYC0tJHttb2RpZmllcn1g\nO1xuICAgIH1cbiAgICByZXR1cm4gY2xzO1xuICB9O1xuICBjb25zdCBuYW1lc3BhY2VDb250ZXh0\nS2V5ID0gU3ltYm9sKFwibmFtZXNwYWNlQ29udGV4dEtleVwiKTtcbiAgY29uc3QgdXNlR2V0RGVy\naXZlZE5hbWVzcGFjZSA9IChuYW1lc3BhY2VPdmVycmlkZXMpID0+IHtcbiAgICBjb25zdCBkZXJp\ndmVkTmFtZXNwYWNlID0gdnVlLmdldEN1cnJlbnRJbnN0YW5jZSgpID8gdnVlLmluamVjdChuYW1l\nc3BhY2VDb250ZXh0S2V5LCB2dWUucmVmKGRlZmF1bHROYW1lc3BhY2UpKSA6IHZ1ZS5yZWYoZGVm\nYXVsdE5hbWVzcGFjZSk7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gdnVlLmNvbXB1dGVkKCgpID0+\nIHtcbiAgICAgIHJldHVybiB2dWUudW5yZWYoZGVyaXZlZE5hbWVzcGFjZSkgfHwgZGVmYXVsdE5h\nbWVzcGFjZTtcbiAgICB9KTtcbiAgICByZXR1cm4gbmFtZXNwYWNlO1xuICB9O1xuICBjb25zdCB1\nc2VOYW1lc3BhY2UgPSAoYmxvY2ssIG5hbWVzcGFjZU92ZXJyaWRlcykgPT4ge1xuICAgIGNvbnN0\nIG5hbWVzcGFjZSA9IHVzZUdldERlcml2ZWROYW1lc3BhY2UoKTtcbiAgICBjb25zdCBiID0gKGJs\nb2NrU3VmZml4ID0gXCJcIikgPT4gX2JlbShuYW1lc3BhY2UudmFsdWUsIGJsb2NrLCBibG9ja1N1\nZmZpeCwgXCJcIiwgXCJcIik7XG4gICAgY29uc3QgZSA9IChlbGVtZW50KSA9PiBlbGVtZW50ID8g\nX2JlbShuYW1lc3BhY2UudmFsdWUsIGJsb2NrLCBcIlwiLCBlbGVtZW50LCBcIlwiKSA6IFwiXCI7\nXG4gICAgY29uc3QgbSA9IChtb2RpZmllcikgPT4gbW9kaWZpZXIgPyBfYmVtKG5hbWVzcGFjZS52\nYWx1ZSwgYmxvY2ssIFwiXCIsIFwiXCIsIG1vZGlmaWVyKSA6IFwiXCI7XG4gICAgY29uc3QgYmUg\nPSAoYmxvY2tTdWZmaXgsIGVsZW1lbnQpID0+IGJsb2NrU3VmZml4ICYmIGVsZW1lbnQgPyBfYmVt\nKG5hbWVzcGFjZS52YWx1ZSwgYmxvY2ssIGJsb2NrU3VmZml4LCBlbGVtZW50LCBcIlwiKSA6IFwi\nXCI7XG4gICAgY29uc3QgZW0gPSAoZWxlbWVudCwgbW9kaWZpZXIpID0+IGVsZW1lbnQgJiYgbW9k\naWZpZXIgPyBfYmVtKG5hbWVzcGFjZS52YWx1ZSwgYmxvY2ssIFwiXCIsIGVsZW1lbnQsIG1vZGlm\naWVyKSA6IFwiXCI7XG4gICAgY29uc3QgYm0gPSAoYmxvY2tTdWZmaXgsIG1vZGlmaWVyKSA9PiBi\nbG9ja1N1ZmZpeCAmJiBtb2RpZmllciA\/IF9iZW0obmFtZXNwYWNlLnZhbHVlLCBibG9jaywgYmxv\nY2tTdWZmaXgsIFwiXCIsIG1vZGlmaWVyKSA6IFwiXCI7XG4gICAgY29uc3QgYmVtID0gKGJsb2Nr\nU3VmZml4LCBlbGVtZW50LCBtb2RpZmllcikgPT4gYmxvY2tTdWZmaXggJiYgZWxlbWVudCAmJiBt\nb2RpZmllciA\/IF9iZW0obmFtZXNwYWNlLnZhbHVlLCBibG9jaywgYmxvY2tTdWZmaXgsIGVsZW1l\nbnQsIG1vZGlmaWVyKSA6IFwiXCI7XG4gICAgY29uc3QgaXMgPSAobmFtZSwgLi4uYXJncykgPT4g\ne1xuICAgICAgY29uc3Qgc3RhdGUgPSBhcmdzLmxlbmd0aCA+PSAxID8gYXJnc1swXSA6IHRydWU7\nXG4gICAgICByZXR1cm4gbmFtZSAmJiBzdGF0ZSA\/IGAke3N0YXRlUHJlZml4fSR7bmFtZX1gIDog\nXCJcIjtcbiAgICB9O1xuICAgIGNvbnN0IGNzc1ZhciA9IChvYmplY3QpID0+IHtcbiAgICAgIGNv\nbnN0IHN0eWxlcyA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gb2JqZWN0KSB7XG4gICAg\nICAgIGlmIChvYmplY3Rba2V5XSkge1xuICAgICAgICAgIHN0eWxlc1tgLS0ke25hbWVzcGFjZS52\nYWx1ZX0tJHtrZXl9YF0gPSBvYmplY3Rba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAg\ncmV0dXJuIHN0eWxlcztcbiAgICB9O1xuICAgIGNvbnN0IGNzc1ZhckJsb2NrID0gKG9iamVjdCkg\nPT4ge1xuICAgICAgY29uc3Qgc3R5bGVzID0ge307XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBv\nYmplY3QpIHtcbiAgICAgICAgaWYgKG9iamVjdFtrZXldKSB7XG4gICAgICAgICAgc3R5bGVzW2At\nLSR7bmFtZXNwYWNlLnZhbHVlfS0ke2Jsb2NrfS0ke2tleX1gXSA9IG9iamVjdFtrZXldO1xuICAg\nICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3R5bGVzO1xuICAgIH07XG4gICAgY29uc3Qg\nY3NzVmFyTmFtZSA9IChuYW1lKSA9PiBgLS0ke25hbWVzcGFjZS52YWx1ZX0tJHtuYW1lfWA7XG4g\nICAgY29uc3QgY3NzVmFyQmxvY2tOYW1lID0gKG5hbWUpID0+IGAtLSR7bmFtZXNwYWNlLnZhbHVl\nfS0ke2Jsb2NrfS0ke25hbWV9YDtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZXNwYWNlLFxuICAg\nICAgYixcbiAgICAgIGUsXG4gICAgICBtLFxuICAgICAgYmUsXG4gICAgICBlbSxcbiAgICAgIGJt\nLFxuICAgICAgYmVtLFxuICAgICAgaXMsXG4gICAgICBjc3NWYXIsXG4gICAgICBjc3NWYXJOYW1l\nLFxuICAgICAgY3NzVmFyQmxvY2ssXG4gICAgICBjc3NWYXJCbG9ja05hbWVcbiAgICB9O1xuICB9\nO1xuICBjb25zdCB1c2VQcm9wID0gKG5hbWUpID0+IHtcbiAgICBjb25zdCB2bSA9IHZ1ZS5nZXRD\ndXJyZW50SW5zdGFuY2UoKTtcbiAgICByZXR1cm4gdnVlLmNvbXB1dGVkKCgpID0+IHtcbiAgICAg\nIHZhciBfYTMsIF9iO1xuICAgICAgcmV0dXJuIChfYiA9IChfYTMgPSB2bSA9PSBudWxsID8gdm9p\nZCAwIDogdm0ucHJveHkpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuJHByb3BzKSA9PSBudWxsID8g\ndm9pZCAwIDogX2JbbmFtZV07XG4gICAgfSk7XG4gIH07XG4gIGNvbnN0IHVzZVRocm90dGxlUmVu\nZGVyID0gKGxvYWRpbmcsIHRocm90dGxlMiA9IDApID0+IHtcbiAgICBpZiAodGhyb3R0bGUyID09\nPSAwKVxuICAgICAgcmV0dXJuIGxvYWRpbmc7XG4gICAgY29uc3QgdGhyb3R0bGVkID0gdnVlLnJl\nZihmYWxzZSk7XG4gICAgbGV0IHRpbWVvdXRIYW5kbGUgPSAwO1xuICAgIGNvbnN0IGRpc3BhdGNo\nVGhyb3R0bGluZyA9ICgpID0+IHtcbiAgICAgIGlmICh0aW1lb3V0SGFuZGxlKSB7XG4gICAgICAg\nIGNsZWFyVGltZW91dCh0aW1lb3V0SGFuZGxlKTtcbiAgICAgIH1cbiAgICAgIHRpbWVvdXRIYW5k\nbGUgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRocm90dGxlZC52YWx1ZSA9\nIGxvYWRpbmcudmFsdWU7XG4gICAgICB9LCB0aHJvdHRsZTIpO1xuICAgIH07XG4gICAgdnVlLm9u\nTW91bnRlZChkaXNwYXRjaFRocm90dGxpbmcpO1xuICAgIHZ1ZS53YXRjaCgoKSA9PiBsb2FkaW5n\nLnZhbHVlLCAodmFsKSA9PiB7XG4gICAgICBpZiAodmFsKSB7XG4gICAgICAgIGRpc3BhdGNoVGhy\nb3R0bGluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3R0bGVkLnZhbHVlID0gdmFs\nO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB0aHJvdHRsZWQ7XG4gIH07XG4gIGNvbnN0\nIGRlZmF1bHRJZEluamVjdGlvbiA9IHtcbiAgICBwcmVmaXg6IE1hdGguZmxvb3IoTWF0aC5yYW5k\nb20oKSAqIDFlNCksXG4gICAgY3VycmVudDogMFxuICB9O1xuICBjb25zdCBJRF9JTkpFQ1RJT05f\nS0VZID0gU3ltYm9sKFwiZWxJZEluamVjdGlvblwiKTtcbiAgY29uc3QgdXNlSWRJbmplY3Rpb24g\nPSAoKSA9PiB7XG4gICAgcmV0dXJuIHZ1ZS5nZXRDdXJyZW50SW5zdGFuY2UoKSA\/IHZ1ZS5pbmpl\nY3QoSURfSU5KRUNUSU9OX0tFWSwgZGVmYXVsdElkSW5qZWN0aW9uKSA6IGRlZmF1bHRJZEluamVj\ndGlvbjtcbiAgfTtcbiAgY29uc3QgdXNlSWQgPSAoZGV0ZXJtaW5pc3RpY0lkKSA9PiB7XG4gICAg\nY29uc3QgaWRJbmplY3Rpb24gPSB1c2VJZEluamVjdGlvbigpO1xuICAgIGNvbnN0IG5hbWVzcGFj\nZSA9IHVzZUdldERlcml2ZWROYW1lc3BhY2UoKTtcbiAgICBjb25zdCBpZFJlZiA9IHZ1ZS5jb21w\ndXRlZCgoKSA9PiB2dWUudW5yZWYoZGV0ZXJtaW5pc3RpY0lkKSB8fCBgJHtuYW1lc3BhY2UudmFs\ndWV9LWlkLSR7aWRJbmplY3Rpb24ucHJlZml4fS0ke2lkSW5qZWN0aW9uLmN1cnJlbnQrK31gKTtc\nbiAgICByZXR1cm4gaWRSZWY7XG4gIH07XG4gIGNvbnN0IGluaXRpYWwgPSB7XG4gICAgY3VycmVu\ndDogMFxuICB9O1xuICBjb25zdCB6SW5kZXggPSB2dWUucmVmKDApO1xuICBjb25zdCBkZWZhdWx0\nSW5pdGlhbFpJbmRleCA9IDJlMztcbiAgY29uc3QgWklOREVYX0lOSkVDVElPTl9LRVkgPSBTeW1i\nb2woXCJlbFpJbmRleENvbnRleHRLZXlcIik7XG4gIGNvbnN0IHpJbmRleENvbnRleHRLZXkgPSBT\neW1ib2woXCJ6SW5kZXhDb250ZXh0S2V5XCIpO1xuICBjb25zdCB1c2VaSW5kZXggPSAoekluZGV4\nT3ZlcnJpZGVzKSA9PiB7XG4gICAgY29uc3QgaW5jcmVhc2luZ0luamVjdGlvbiA9IHZ1ZS5nZXRD\ndXJyZW50SW5zdGFuY2UoKSA\/IHZ1ZS5pbmplY3QoWklOREVYX0lOSkVDVElPTl9LRVksIGluaXRp\nYWwpIDogaW5pdGlhbDtcbiAgICBjb25zdCB6SW5kZXhJbmplY3Rpb24gPSB2dWUuZ2V0Q3VycmVu\ndEluc3RhbmNlKCkgPyB2dWUuaW5qZWN0KHpJbmRleENvbnRleHRLZXksIHZvaWQgMCkgOiB2b2lk\nIDA7XG4gICAgY29uc3QgaW5pdGlhbFpJbmRleCA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAg\nICBjb25zdCB6SW5kZXhGcm9tSW5qZWN0aW9uID0gdnVlLnVucmVmKHpJbmRleEluamVjdGlvbik7\nXG4gICAgICByZXR1cm4gaXNOdW1iZXIoekluZGV4RnJvbUluamVjdGlvbikgPyB6SW5kZXhGcm9t\nSW5qZWN0aW9uIDogZGVmYXVsdEluaXRpYWxaSW5kZXg7XG4gICAgfSk7XG4gICAgY29uc3QgY3Vy\ncmVudFpJbmRleCA9IHZ1ZS5jb21wdXRlZCgoKSA9PiBpbml0aWFsWkluZGV4LnZhbHVlICsgeklu\nZGV4LnZhbHVlKTtcbiAgICBjb25zdCBuZXh0WkluZGV4ID0gKCkgPT4ge1xuICAgICAgaW5jcmVh\nc2luZ0luamVjdGlvbi5jdXJyZW50Kys7XG4gICAgICB6SW5kZXgudmFsdWUgPSBpbmNyZWFzaW5n\nSW5qZWN0aW9uLmN1cnJlbnQ7XG4gICAgICByZXR1cm4gY3VycmVudFpJbmRleC52YWx1ZTtcbiAg\nICB9O1xuICAgIGlmICghaXNDbGllbnQgJiYgIXZ1ZS5pbmplY3QoWklOREVYX0lOSkVDVElPTl9L\nRVkpKSA7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluaXRpYWxaSW5kZXgsXG4gICAgICBjdXJyZW50\nWkluZGV4LFxuICAgICAgbmV4dFpJbmRleFxuICAgIH07XG4gIH07XG4gIGNvbnN0IGdldE9yZGVy\nZWRDaGlsZHJlbiA9ICh2bSwgY2hpbGRDb21wb25lbnROYW1lLCBjaGlsZHJlbikgPT4ge1xuICAg\nIGNvbnN0IG5vZGVzID0gZmxhdHRlZENoaWxkcmVuKHZtLnN1YlRyZWUpLmZpbHRlcigobikgPT4g\ne1xuICAgICAgdmFyIF9hMztcbiAgICAgIHJldHVybiB2dWUuaXNWTm9kZShuKSAmJiAoKF9hMyA9\nIG4udHlwZSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5uYW1lKSA9PT0gY2hpbGRDb21wb25lbnRO\nYW1lICYmICEhbi5jb21wb25lbnQ7XG4gICAgfSk7XG4gICAgY29uc3QgdWlkcyA9IG5vZGVzLm1h\ncCgobikgPT4gbi5jb21wb25lbnQudWlkKTtcbiAgICByZXR1cm4gdWlkcy5tYXAoKHVpZCkgPT4g\nY2hpbGRyZW5bdWlkXSkuZmlsdGVyKChwKSA9PiAhIXApO1xuICB9O1xuICBjb25zdCB1c2VPcmRl\ncmVkQ2hpbGRyZW4gPSAodm0sIGNoaWxkQ29tcG9uZW50TmFtZSkgPT4ge1xuICAgIGNvbnN0IGNo\naWxkcmVuID0ge307XG4gICAgY29uc3Qgb3JkZXJlZENoaWxkcmVuID0gdnVlLnNoYWxsb3dSZWYo\nW10pO1xuICAgIGNvbnN0IGFkZENoaWxkID0gKGNoaWxkKSA9PiB7XG4gICAgICBjaGlsZHJlbltj\naGlsZC51aWRdID0gY2hpbGQ7XG4gICAgICBvcmRlcmVkQ2hpbGRyZW4udmFsdWUgPSBnZXRPcmRl\ncmVkQ2hpbGRyZW4odm0sIGNoaWxkQ29tcG9uZW50TmFtZSwgY2hpbGRyZW4pO1xuICAgIH07XG4g\nICAgY29uc3QgcmVtb3ZlQ2hpbGQgPSAodWlkKSA9PiB7XG4gICAgICBkZWxldGUgY2hpbGRyZW5b\ndWlkXTtcbiAgICAgIG9yZGVyZWRDaGlsZHJlbi52YWx1ZSA9IG9yZGVyZWRDaGlsZHJlbi52YWx1\nZS5maWx0ZXIoKGNoaWxkcmVuMikgPT4gY2hpbGRyZW4yLnVpZCAhPT0gdWlkKTtcbiAgICB9O1xu\nICAgIHJldHVybiB7XG4gICAgICBjaGlsZHJlbjogb3JkZXJlZENoaWxkcmVuLFxuICAgICAgYWRk\nQ2hpbGQsXG4gICAgICByZW1vdmVDaGlsZFxuICAgIH07XG4gIH07XG4gIGNvbnN0IHVzZVNpemVQ\ncm9wID0gYnVpbGRQcm9wKHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgdmFsdWVzOiBjb21wb25l\nbnRTaXplcyxcbiAgICByZXF1aXJlZDogZmFsc2VcbiAgfSk7XG4gIGNvbnN0IFNJWkVfSU5KRUNU\nSU9OX0tFWSA9IFN5bWJvbChcInNpemVcIik7XG4gIGNvbnN0IHVzZUdsb2JhbFNpemUgPSAoKSA9\nPiB7XG4gICAgY29uc3QgaW5qZWN0ZWRTaXplID0gdnVlLmluamVjdChTSVpFX0lOSkVDVElPTl9L\nRVksIHt9KTtcbiAgICByZXR1cm4gdnVlLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHJldHVybiB2\ndWUudW5yZWYoaW5qZWN0ZWRTaXplLnNpemUpIHx8IFwiXCI7XG4gICAgfSk7XG4gIH07XG4gIGNv\nbnN0IGFyaWFQcm9wcyA9IGJ1aWxkUHJvcHMoe1xuICAgIGFyaWFMYWJlbDogU3RyaW5nLFxuICAg\nIGFyaWFPcmllbnRhdGlvbjoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgdmFsdWVzOiBb\nXCJob3Jpem9udGFsXCIsIFwidmVydGljYWxcIiwgXCJ1bmRlZmluZWRcIl1cbiAgICB9LFxuICAg\nIGFyaWFDb250cm9sczogU3RyaW5nXG4gIH0pO1xuICBjb25zdCB1c2VBcmlhUHJvcHMgPSAoYXJp\nYXMpID0+IHtcbiAgICByZXR1cm4gcGljayhhcmlhUHJvcHMsIGFyaWFzKTtcbiAgfTtcbiAgY29u\nc3QgY29uZmlnUHJvdmlkZXJDb250ZXh0S2V5ID0gU3ltYm9sKCk7XG4gIGNvbnN0IGdsb2JhbENv\nbmZpZyA9IHZ1ZS5yZWYoKTtcbiAgZnVuY3Rpb24gdXNlR2xvYmFsQ29uZmlnKGtleSwgZGVmYXVs\ndFZhbHVlID0gdm9pZCAwKSB7XG4gICAgY29uc3QgY29uZmlnID0gdnVlLmdldEN1cnJlbnRJbnN0\nYW5jZSgpID8gdnVlLmluamVjdChjb25maWdQcm92aWRlckNvbnRleHRLZXksIGdsb2JhbENvbmZp\nZykgOiBnbG9iYWxDb25maWc7XG4gICAge1xuICAgICAgcmV0dXJuIHZ1ZS5jb21wdXRlZCgoKSA9\nPiB7XG4gICAgICAgIHZhciBfYTMsIF9iO1xuICAgICAgICByZXR1cm4gKF9iID0gKF9hMyA9IGNv\nbmZpZy52YWx1ZSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hM1trZXldKSAhPSBudWxsID8gX2IgOiBk\nZWZhdWx0VmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgdmFyIF9leHBvcnRfc2ZjID0g\nKHNmYywgcHJvcHMpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBzZmMuX192Y2NPcHRzIHx8IHNm\nYztcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgcHJvcHMpIHtcbiAgICAgIHRhcmdldFtr\nZXldID0gdmFsO1xuICAgIH1cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuICBjb25zdCBpY29u\nUHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICBzaXplOiB7XG4gICAgICB0eXBlOiBkZWZpbmVQcm9w\nVHlwZShbTnVtYmVyLCBTdHJpbmddKVxuICAgIH0sXG4gICAgY29sb3I6IHtcbiAgICAgIHR5cGU6\nIFN0cmluZ1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IF9fZGVmYXVsdF9fJG4gPSB2dWUuZGVmaW5l\nQ29tcG9uZW50KHtcbiAgICBuYW1lOiBcIkVsSWNvblwiLFxuICAgIGluaGVyaXRBdHRyczogZmFs\nc2VcbiAgfSk7XG4gIGNvbnN0IF9zZmNfbWFpbiRDID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRl\nZmluZUNvbXBvbmVudCh7XG4gICAgLi4uX19kZWZhdWx0X18kbixcbiAgICBwcm9wczogaWNvblBy\nb3BzLFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIGNvbnN0IHByb3BzID0gX19wcm9wcztc\nbiAgICAgIGNvbnN0IG5zID0gdXNlTmFtZXNwYWNlKFwiaWNvblwiKTtcbiAgICAgIGNvbnN0IHN0\neWxlID0gdnVlLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBzaXplLCBjb2xvciB9\nID0gcHJvcHM7XG4gICAgICAgIGlmICghc2l6ZSAmJiAhY29sb3IpXG4gICAgICAgICAgcmV0dXJu\nIHt9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZvbnRTaXplOiBpc1VuZGVmaW5lZChz\naXplKSA\/IHZvaWQgMCA6IGFkZFVuaXQoc2l6ZSksXG4gICAgICAgICAgXCItLWNvbG9yXCI6IGNv\nbG9yXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9\nPiB7XG4gICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50Qmxv\nY2soXCJpXCIsIHZ1ZS5tZXJnZVByb3BzKHtcbiAgICAgICAgICBjbGFzczogdnVlLnVucmVmKG5z\nKS5iKCksXG4gICAgICAgICAgc3R5bGU6IHZ1ZS51bnJlZihzdHlsZSlcbiAgICAgICAgfSwgX2N0\neC4kYXR0cnMpLCBbXG4gICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVm\nYXVsdFwiKVxuICAgICAgICBdLCAxNik7XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHZhciBJ\nY29uID0gXC8qIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJEMsIFtbXCJfX2Zp\nbGVcIiwgXCJpY29uLnZ1ZVwiXV0pO1xuICBjb25zdCBFbEljb24gPSB3aXRoSW5zdGFsbChJY29u\nKTtcbiAgY29uc3QgZm9ybUNvbnRleHRLZXkgPSBTeW1ib2woXCJmb3JtQ29udGV4dEtleVwiKTtc\nbiAgY29uc3QgZm9ybUl0ZW1Db250ZXh0S2V5ID0gU3ltYm9sKFwiZm9ybUl0ZW1Db250ZXh0S2V5\nXCIpO1xuICBjb25zdCB1c2VGb3JtU2l6ZSA9IChmYWxsYmFjaywgaWdub3JlID0ge30pID0+IHtc\nbiAgICBjb25zdCBlbXB0eVJlZiA9IHZ1ZS5yZWYodm9pZCAwKTtcbiAgICBjb25zdCBzaXplID0g\naWdub3JlLnByb3AgPyBlbXB0eVJlZiA6IHVzZVByb3AoXCJzaXplXCIpO1xuICAgIGNvbnN0IGds\nb2JhbENvbmZpZzIgPSBpZ25vcmUuZ2xvYmFsID8gZW1wdHlSZWYgOiB1c2VHbG9iYWxTaXplKCk7\nXG4gICAgY29uc3QgZm9ybSA9IGlnbm9yZS5mb3JtID8geyBzaXplOiB2b2lkIDAgfSA6IHZ1ZS5p\nbmplY3QoZm9ybUNvbnRleHRLZXksIHZvaWQgMCk7XG4gICAgY29uc3QgZm9ybUl0ZW0gPSBpZ25v\ncmUuZm9ybUl0ZW0gPyB7IHNpemU6IHZvaWQgMCB9IDogdnVlLmluamVjdChmb3JtSXRlbUNvbnRl\neHRLZXksIHZvaWQgMCk7XG4gICAgcmV0dXJuIHZ1ZS5jb21wdXRlZCgoKSA9PiBzaXplLnZhbHVl\nIHx8IHZ1ZS51bnJlZihmYWxsYmFjaykgfHwgKGZvcm1JdGVtID09IG51bGwgPyB2b2lkIDAgOiBm\nb3JtSXRlbS5zaXplKSB8fCAoZm9ybSA9PSBudWxsID8gdm9pZCAwIDogZm9ybS5zaXplKSB8fCBn\nbG9iYWxDb25maWcyLnZhbHVlIHx8IFwiXCIpO1xuICB9O1xuICBjb25zdCB1c2VGb3JtRGlzYWJs\nZWQgPSAoZmFsbGJhY2spID0+IHtcbiAgICBjb25zdCBkaXNhYmxlZCA9IHVzZVByb3AoXCJkaXNh\nYmxlZFwiKTtcbiAgICBjb25zdCBmb3JtID0gdnVlLmluamVjdChmb3JtQ29udGV4dEtleSwgdm9p\nZCAwKTtcbiAgICByZXR1cm4gdnVlLmNvbXB1dGVkKCgpID0+IGRpc2FibGVkLnZhbHVlIHx8IHZ1\nZS51bnJlZihmYWxsYmFjaykgfHwgKGZvcm0gPT0gbnVsbCA\/IHZvaWQgMCA6IGZvcm0uZGlzYWJs\nZWQpIHx8IGZhbHNlKTtcbiAgfTtcbiAgY29uc3QgdXNlRm9ybUl0ZW0gPSAoKSA9PiB7XG4gICAg\nY29uc3QgZm9ybSA9IHZ1ZS5pbmplY3QoZm9ybUNvbnRleHRLZXksIHZvaWQgMCk7XG4gICAgY29u\nc3QgZm9ybUl0ZW0gPSB2dWUuaW5qZWN0KGZvcm1JdGVtQ29udGV4dEtleSwgdm9pZCAwKTtcbiAg\nICByZXR1cm4ge1xuICAgICAgZm9ybSxcbiAgICAgIGZvcm1JdGVtXG4gICAgfTtcbiAgfTtcbiAg\nY29uc3QgR0FQID0gNDtcbiAgY29uc3QgQkFSX01BUCA9IHtcbiAgICB2ZXJ0aWNhbDoge1xuICAg\nICAgb2Zmc2V0OiBcIm9mZnNldEhlaWdodFwiLFxuICAgICAgc2Nyb2xsOiBcInNjcm9sbFRvcFwi\nLFxuICAgICAgc2Nyb2xsU2l6ZTogXCJzY3JvbGxIZWlnaHRcIixcbiAgICAgIHNpemU6IFwiaGVp\nZ2h0XCIsXG4gICAgICBrZXk6IFwidmVydGljYWxcIixcbiAgICAgIGF4aXM6IFwiWVwiLFxuICAg\nICAgY2xpZW50OiBcImNsaWVudFlcIixcbiAgICAgIGRpcmVjdGlvbjogXCJ0b3BcIlxuICAgIH0s\nXG4gICAgaG9yaXpvbnRhbDoge1xuICAgICAgb2Zmc2V0OiBcIm9mZnNldFdpZHRoXCIsXG4gICAg\nICBzY3JvbGw6IFwic2Nyb2xsTGVmdFwiLFxuICAgICAgc2Nyb2xsU2l6ZTogXCJzY3JvbGxXaWR0\naFwiLFxuICAgICAgc2l6ZTogXCJ3aWR0aFwiLFxuICAgICAga2V5OiBcImhvcml6b250YWxcIixc\nbiAgICAgIGF4aXM6IFwiWFwiLFxuICAgICAgY2xpZW50OiBcImNsaWVudFhcIixcbiAgICAgIGRp\ncmVjdGlvbjogXCJsZWZ0XCJcbiAgICB9XG4gIH07XG4gIGNvbnN0IHJlbmRlclRodW1iU3R5bGUg\nPSAoe1xuICAgIG1vdmUsXG4gICAgc2l6ZSxcbiAgICBiYXJcbiAgfSkgPT4gKHtcbiAgICBbYmFy\nLnNpemVdOiBzaXplLFxuICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSR7YmFyLmF4aXN9KCR7bW92\nZX0lKWBcbiAgfSk7XG4gIGNvbnN0IHNjcm9sbGJhckNvbnRleHRLZXkgPSBTeW1ib2woXCJzY3Jv\nbGxiYXJDb250ZXh0S2V5XCIpO1xuICBjb25zdCB0aHVtYlByb3BzID0gYnVpbGRQcm9wcyh7XG4g\nICAgdmVydGljYWw6IEJvb2xlYW4sXG4gICAgc2l6ZTogU3RyaW5nLFxuICAgIG1vdmU6IE51bWJl\ncixcbiAgICByYXRpbzoge1xuICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgcmVxdWlyZWQ6IHRy\ndWVcbiAgICB9LFxuICAgIGFsd2F5czogQm9vbGVhblxuICB9KTtcbiAgY29uc3QgQ09NUE9ORU5U\nX05BTUUkNSA9IFwiVGh1bWJcIjtcbiAgY29uc3QgX3NmY19tYWluJEIgPSBcLyogQF9fUFVSRV9f\nICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBfX25hbWU6IFwidGh1bWJcIixcbiAgICBw\ncm9wczogdGh1bWJQcm9wcyxcbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBwcm9w\ncyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBzY3JvbGxiYXIgPSB2dWUuaW5qZWN0KHNjcm9sbGJh\nckNvbnRleHRLZXkpO1xuICAgICAgY29uc3QgbnMgPSB1c2VOYW1lc3BhY2UoXCJzY3JvbGxiYXJc\nIik7XG4gICAgICBpZiAoIXNjcm9sbGJhcilcbiAgICAgICAgdGhyb3dFcnJvcihDT01QT05FTlRf\nTkFNRSQ1LCBcImNhbiBub3QgaW5qZWN0IHNjcm9sbGJhciBjb250ZXh0XCIpO1xuICAgICAgY29u\nc3QgaW5zdGFuY2UgPSB2dWUucmVmKCk7XG4gICAgICBjb25zdCB0aHVtYiA9IHZ1ZS5yZWYoKTtc\nbiAgICAgIGNvbnN0IHRodW1iU3RhdGUgPSB2dWUucmVmKHt9KTtcbiAgICAgIGNvbnN0IHZpc2li\nbGUgPSB2dWUucmVmKGZhbHNlKTtcbiAgICAgIGxldCBjdXJzb3JEb3duID0gZmFsc2U7XG4gICAg\nICBsZXQgY3Vyc29yTGVhdmUgPSBmYWxzZTtcbiAgICAgIGxldCBvcmlnaW5hbE9uU2VsZWN0U3Rh\ncnQgPSBpc0NsaWVudCA\/IGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgOiBudWxsO1xuICAgICAgY29u\nc3QgYmFyID0gdnVlLmNvbXB1dGVkKCgpID0+IEJBUl9NQVBbcHJvcHMudmVydGljYWwgPyBcInZl\ncnRpY2FsXCIgOiBcImhvcml6b250YWxcIl0pO1xuICAgICAgY29uc3QgdGh1bWJTdHlsZSA9IHZ1\nZS5jb21wdXRlZCgoKSA9PiByZW5kZXJUaHVtYlN0eWxlKHtcbiAgICAgICAgc2l6ZTogcHJvcHMu\nc2l6ZSxcbiAgICAgICAgbW92ZTogcHJvcHMubW92ZSxcbiAgICAgICAgYmFyOiBiYXIudmFsdWVc\nbiAgICAgIH0pKTtcbiAgICAgIGNvbnN0IG9mZnNldFJhdGlvID0gdnVlLmNvbXB1dGVkKCgpID0+\nIGluc3RhbmNlLnZhbHVlW2Jhci52YWx1ZS5vZmZzZXRdICoqIDIgXC8gc2Nyb2xsYmFyLndyYXBF\nbGVtZW50W2Jhci52YWx1ZS5zY3JvbGxTaXplXSBcLyBwcm9wcy5yYXRpbyBcLyB0aHVtYi52YWx1\nZVtiYXIudmFsdWUub2Zmc2V0XSk7XG4gICAgICBjb25zdCBjbGlja1RodW1iSGFuZGxlciA9IChl\nKSA9PiB7XG4gICAgICAgIHZhciBfYTM7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4g\nICAgICAgIGlmIChlLmN0cmxLZXkgfHwgWzEsIDJdLmluY2x1ZGVzKGUuYnV0dG9uKSlcbiAgICAg\nICAgICByZXR1cm47XG4gICAgICAgIChfYTMgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkpID09IG51\nbGwgPyB2b2lkIDAgOiBfYTMucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHN0YXJ0RHJhZyhl\nKTtcbiAgICAgICAgY29uc3QgZWwgPSBlLmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIGlmICghZWwp\nXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aHVtYlN0YXRlLnZhbHVlW2Jhci52YWx1ZS5h\neGlzXSA9IGVsW2Jhci52YWx1ZS5vZmZzZXRdIC0gKGVbYmFyLnZhbHVlLmNsaWVudF0gLSBlbC5n\nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVtiYXIudmFsdWUuZGlyZWN0aW9uXSk7XG4gICAgICB9O1xu\nICAgICAgY29uc3QgY2xpY2tUcmFja0hhbmRsZXIgPSAoZSkgPT4ge1xuICAgICAgICBpZiAoIXRo\ndW1iLnZhbHVlIHx8ICFpbnN0YW5jZS52YWx1ZSB8fCAhc2Nyb2xsYmFyLndyYXBFbGVtZW50KVxu\nICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gTWF0aC5hYnMoZS50YXJn\nZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbYmFyLnZhbHVlLmRpcmVjdGlvbl0gLSBlW2Jhci52\nYWx1ZS5jbGllbnRdKTtcbiAgICAgICAgY29uc3QgdGh1bWJIYWxmID0gdGh1bWIudmFsdWVbYmFy\nLnZhbHVlLm9mZnNldF0gXC8gMjtcbiAgICAgICAgY29uc3QgdGh1bWJQb3NpdGlvblBlcmNlbnRh\nZ2UgPSAob2Zmc2V0IC0gdGh1bWJIYWxmKSAqIDEwMCAqIG9mZnNldFJhdGlvLnZhbHVlIFwvIGlu\nc3RhbmNlLnZhbHVlW2Jhci52YWx1ZS5vZmZzZXRdO1xuICAgICAgICBzY3JvbGxiYXIud3JhcEVs\nZW1lbnRbYmFyLnZhbHVlLnNjcm9sbF0gPSB0aHVtYlBvc2l0aW9uUGVyY2VudGFnZSAqIHNjcm9s\nbGJhci53cmFwRWxlbWVudFtiYXIudmFsdWUuc2Nyb2xsU2l6ZV0gXC8gMTAwO1xuICAgICAgfTtc\nbiAgICAgIGNvbnN0IHN0YXJ0RHJhZyA9IChlKSA9PiB7XG4gICAgICAgIGUuc3RvcEltbWVkaWF0\nZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGN1cnNvckRvd24gPSB0cnVlO1xuICAgICAgICBkb2N1\nbWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG1vdXNlTW92ZURvY3VtZW50SGFu\nZGxlcik7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIG1v\ndXNlVXBEb2N1bWVudEhhbmRsZXIpO1xuICAgICAgICBvcmlnaW5hbE9uU2VsZWN0U3RhcnQgPSBk\nb2N1bWVudC5vbnNlbGVjdHN0YXJ0O1xuICAgICAgICBkb2N1bWVudC5vbnNlbGVjdHN0YXJ0ID0g\nKCkgPT4gZmFsc2U7XG4gICAgICB9O1xuICAgICAgY29uc3QgbW91c2VNb3ZlRG9jdW1lbnRIYW5k\nbGVyID0gKGUpID0+IHtcbiAgICAgICAgaWYgKCFpbnN0YW5jZS52YWx1ZSB8fCAhdGh1bWIudmFs\ndWUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoY3Vyc29yRG93biA9PT0gZmFsc2Up\nXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBwcmV2UGFnZSA9IHRodW1iU3RhdGUu\ndmFsdWVbYmFyLnZhbHVlLmF4aXNdO1xuICAgICAgICBpZiAoIXByZXZQYWdlKVxuICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gKGluc3RhbmNlLnZhbHVlLmdldEJvdW5k\naW5nQ2xpZW50UmVjdCgpW2Jhci52YWx1ZS5kaXJlY3Rpb25dIC0gZVtiYXIudmFsdWUuY2xpZW50\nXSkgKiAtMTtcbiAgICAgICAgY29uc3QgdGh1bWJDbGlja1Bvc2l0aW9uID0gdGh1bWIudmFsdWVb\nYmFyLnZhbHVlLm9mZnNldF0gLSBwcmV2UGFnZTtcbiAgICAgICAgY29uc3QgdGh1bWJQb3NpdGlv\nblBlcmNlbnRhZ2UgPSAob2Zmc2V0IC0gdGh1bWJDbGlja1Bvc2l0aW9uKSAqIDEwMCAqIG9mZnNl\ndFJhdGlvLnZhbHVlIFwvIGluc3RhbmNlLnZhbHVlW2Jhci52YWx1ZS5vZmZzZXRdO1xuICAgICAg\nICBzY3JvbGxiYXIud3JhcEVsZW1lbnRbYmFyLnZhbHVlLnNjcm9sbF0gPSB0aHVtYlBvc2l0aW9u\nUGVyY2VudGFnZSAqIHNjcm9sbGJhci53cmFwRWxlbWVudFtiYXIudmFsdWUuc2Nyb2xsU2l6ZV0g\nXC8gMTAwO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG1vdXNlVXBEb2N1bWVudEhhbmRsZXIgPSAo\nKSA9PiB7XG4gICAgICAgIGN1cnNvckRvd24gPSBmYWxzZTtcbiAgICAgICAgdGh1bWJTdGF0ZS52\nYWx1ZVtiYXIudmFsdWUuYXhpc10gPSAwO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExp\nc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG1vdXNlTW92ZURvY3VtZW50SGFuZGxlcik7XG4gICAgICAg\nIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIG1vdXNlVXBEb2N1bWVu\ndEhhbmRsZXIpO1xuICAgICAgICByZXN0b3JlT25zZWxlY3RzdGFydCgpO1xuICAgICAgICBpZiAo\nY3Vyc29yTGVhdmUpXG4gICAgICAgICAgdmlzaWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgfTtc\nbiAgICAgIGNvbnN0IG1vdXNlTW92ZVNjcm9sbGJhckhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAg\nIGN1cnNvckxlYXZlID0gZmFsc2U7XG4gICAgICAgIHZpc2libGUudmFsdWUgPSAhIXByb3BzLnNp\nemU7XG4gICAgICB9O1xuICAgICAgY29uc3QgbW91c2VMZWF2ZVNjcm9sbGJhckhhbmRsZXIgPSAo\nKSA9PiB7XG4gICAgICAgIGN1cnNvckxlYXZlID0gdHJ1ZTtcbiAgICAgICAgdmlzaWJsZS52YWx1\nZSA9IGN1cnNvckRvd247XG4gICAgICB9O1xuICAgICAgdnVlLm9uQmVmb3JlVW5tb3VudCgoKSA9\nPiB7XG4gICAgICAgIHJlc3RvcmVPbnNlbGVjdHN0YXJ0KCk7XG4gICAgICAgIGRvY3VtZW50LnJl\nbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsIG1vdXNlVXBEb2N1bWVudEhhbmRsZXIpO1xu\nICAgICAgfSk7XG4gICAgICBjb25zdCByZXN0b3JlT25zZWxlY3RzdGFydCA9ICgpID0+IHtcbiAg\nICAgICAgaWYgKGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgIT09IG9yaWdpbmFsT25TZWxlY3RTdGFy\ndClcbiAgICAgICAgICBkb2N1bWVudC5vbnNlbGVjdHN0YXJ0ID0gb3JpZ2luYWxPblNlbGVjdFN0\nYXJ0O1xuICAgICAgfTtcbiAgICAgIHVzZUV2ZW50TGlzdGVuZXIodnVlLnRvUmVmKHNjcm9sbGJh\nciwgXCJzY3JvbGxiYXJFbGVtZW50XCIpLCBcIm1vdXNlbW92ZVwiLCBtb3VzZU1vdmVTY3JvbGxi\nYXJIYW5kbGVyKTtcbiAgICAgIHVzZUV2ZW50TGlzdGVuZXIodnVlLnRvUmVmKHNjcm9sbGJhciwg\nXCJzY3JvbGxiYXJFbGVtZW50XCIpLCBcIm1vdXNlbGVhdmVcIiwgbW91c2VMZWF2ZVNjcm9sbGJh\nckhhbmRsZXIpO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0\ndXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS5UcmFuc2l0aW9uLCB7XG4g\nICAgICAgICAgbmFtZTogdnVlLnVucmVmKG5zKS5iKFwiZmFkZVwiKSxcbiAgICAgICAgICBwZXJz\naXN0ZWQ6IFwiXCJcbiAgICAgICAgfSwge1xuICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4\nKCgpID0+IFtcbiAgICAgICAgICAgIHZ1ZS53aXRoRGlyZWN0aXZlcyh2dWUuY3JlYXRlRWxlbWVu\ndFZOb2RlKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAgcmVmX2tleTogXCJpbnN0YW5jZVwiLFxu\nICAgICAgICAgICAgICByZWY6IGluc3RhbmNlLFxuICAgICAgICAgICAgICBjbGFzczogdnVlLm5v\ncm1hbGl6ZUNsYXNzKFt2dWUudW5yZWYobnMpLmUoXCJiYXJcIiksIHZ1ZS51bnJlZihucykuaXMo\ndnVlLnVucmVmKGJhcikua2V5KV0pLFxuICAgICAgICAgICAgICBvbk1vdXNlZG93bjogY2xpY2tU\ncmFja0hhbmRsZXJcbiAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVs\nZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgcmVmX2tleTogXCJ0aHVtYlwi\nLFxuICAgICAgICAgICAgICAgIHJlZjogdGh1bWIsXG4gICAgICAgICAgICAgICAgY2xhc3M6IHZ1\nZS5ub3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmUoXCJ0aHVtYlwiKSksXG4gICAgICAgICAg\nICAgICAgc3R5bGU6IHZ1ZS5ub3JtYWxpemVTdHlsZSh2dWUudW5yZWYodGh1bWJTdHlsZSkpLFxu\nICAgICAgICAgICAgICAgIG9uTW91c2Vkb3duOiBjbGlja1RodW1iSGFuZGxlclxuICAgICAgICAg\nICAgICB9LCBudWxsLCAzOClcbiAgICAgICAgICAgIF0sIDM0KSwgW1xuICAgICAgICAgICAgICBb\ndnVlLnZTaG93LCBfY3R4LmFsd2F5cyB8fCB2aXNpYmxlLnZhbHVlXVxuICAgICAgICAgICAgXSlc\nbiAgICAgICAgICBdKSxcbiAgICAgICAgICBfOiAxXG4gICAgICAgIH0sIDgsIFtcIm5hbWVcIl0p\nO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICB2YXIgVGh1bWIgPSBcLyogQF9fUFVSRV9fICpc\nLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kQiwgW1tcIl9fZmlsZVwiLCBcInRodW1iLnZ1ZVwiXV0p\nO1xuICBjb25zdCBiYXJQcm9wcyA9IGJ1aWxkUHJvcHMoe1xuICAgIGFsd2F5czoge1xuICAgICAg\ndHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWVcbiAgICB9LFxuICAgIG1pblNpemU6\nIHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfVxuICB9\nKTtcbiAgY29uc3QgX3NmY19tYWluJEEgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29t\ncG9uZW50KHtcbiAgICBfX25hbWU6IFwiYmFyXCIsXG4gICAgcHJvcHM6IGJhclByb3BzLFxuICAg\nIHNldHVwKF9fcHJvcHMsIHsgZXhwb3NlIH0pIHtcbiAgICAgIGNvbnN0IHByb3BzID0gX19wcm9w\ncztcbiAgICAgIGNvbnN0IHNjcm9sbGJhciA9IHZ1ZS5pbmplY3Qoc2Nyb2xsYmFyQ29udGV4dEtl\neSk7XG4gICAgICBjb25zdCBtb3ZlWCA9IHZ1ZS5yZWYoMCk7XG4gICAgICBjb25zdCBtb3ZlWSA9\nIHZ1ZS5yZWYoMCk7XG4gICAgICBjb25zdCBzaXplV2lkdGggPSB2dWUucmVmKFwiXCIpO1xuICAg\nICAgY29uc3Qgc2l6ZUhlaWdodCA9IHZ1ZS5yZWYoXCJcIik7XG4gICAgICBjb25zdCByYXRpb1kg\nPSB2dWUucmVmKDEpO1xuICAgICAgY29uc3QgcmF0aW9YID0gdnVlLnJlZigxKTtcbiAgICAgIGNv\nbnN0IGhhbmRsZVNjcm9sbCA9ICh3cmFwKSA9PiB7XG4gICAgICAgIGlmICh3cmFwKSB7XG4gICAg\nICAgICAgY29uc3Qgb2Zmc2V0SGVpZ2h0ID0gd3JhcC5vZmZzZXRIZWlnaHQgLSBHQVA7XG4gICAg\nICAgICAgY29uc3Qgb2Zmc2V0V2lkdGggPSB3cmFwLm9mZnNldFdpZHRoIC0gR0FQO1xuICAgICAg\nICAgIG1vdmVZLnZhbHVlID0gd3JhcC5zY3JvbGxUb3AgKiAxMDAgXC8gb2Zmc2V0SGVpZ2h0ICog\ncmF0aW9ZLnZhbHVlO1xuICAgICAgICAgIG1vdmVYLnZhbHVlID0gd3JhcC5zY3JvbGxMZWZ0ICog\nMTAwIFwvIG9mZnNldFdpZHRoICogcmF0aW9YLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9O1xu\nICAgICAgY29uc3QgdXBkYXRlID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB3cmFwID0gc2Nyb2xs\nYmFyID09IG51bGwgPyB2b2lkIDAgOiBzY3JvbGxiYXIud3JhcEVsZW1lbnQ7XG4gICAgICAgIGlm\nICghd3JhcClcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG9mZnNldEhlaWdodCA9\nIHdyYXAub2Zmc2V0SGVpZ2h0IC0gR0FQO1xuICAgICAgICBjb25zdCBvZmZzZXRXaWR0aCA9IHdy\nYXAub2Zmc2V0V2lkdGggLSBHQVA7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsSGVpZ2h0ID0gb2Zm\nc2V0SGVpZ2h0ICoqIDIgXC8gd3JhcC5zY3JvbGxIZWlnaHQ7XG4gICAgICAgIGNvbnN0IG9yaWdp\nbmFsV2lkdGggPSBvZmZzZXRXaWR0aCAqKiAyIFwvIHdyYXAuc2Nyb2xsV2lkdGg7XG4gICAgICAg\nIGNvbnN0IGhlaWdodCA9IE1hdGgubWF4KG9yaWdpbmFsSGVpZ2h0LCBwcm9wcy5taW5TaXplKTtc\nbiAgICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1heChvcmlnaW5hbFdpZHRoLCBwcm9wcy5taW5T\naXplKTtcbiAgICAgICAgcmF0aW9ZLnZhbHVlID0gb3JpZ2luYWxIZWlnaHQgXC8gKG9mZnNldEhl\naWdodCAtIG9yaWdpbmFsSGVpZ2h0KSBcLyAoaGVpZ2h0IFwvIChvZmZzZXRIZWlnaHQgLSBoZWln\naHQpKTtcbiAgICAgICAgcmF0aW9YLnZhbHVlID0gb3JpZ2luYWxXaWR0aCBcLyAob2Zmc2V0V2lk\ndGggLSBvcmlnaW5hbFdpZHRoKSBcLyAod2lkdGggXC8gKG9mZnNldFdpZHRoIC0gd2lkdGgpKTtc\nbiAgICAgICAgc2l6ZUhlaWdodC52YWx1ZSA9IGhlaWdodCArIEdBUCA8IG9mZnNldEhlaWdodCA\/\nIGAke2hlaWdodH1weGAgOiBcIlwiO1xuICAgICAgICBzaXplV2lkdGgudmFsdWUgPSB3aWR0aCAr\nIEdBUCA8IG9mZnNldFdpZHRoID8gYCR7d2lkdGh9cHhgIDogXCJcIjtcbiAgICAgIH07XG4gICAg\nICBleHBvc2Uoe1xuICAgICAgICBoYW5kbGVTY3JvbGwsXG4gICAgICAgIHVwZGF0ZVxuICAgICAg\nfSk7XG4gICAgICByZXR1cm4gKF9jdHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICByZXR1cm4gdnVl\nLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKHZ1ZS5GcmFnbWVudCwgbnVsbCwg\nW1xuICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShUaHVtYiwge1xuICAgICAgICAgICAgbW92ZTog\nbW92ZVgudmFsdWUsXG4gICAgICAgICAgICByYXRpbzogcmF0aW9YLnZhbHVlLFxuICAgICAgICAg\nICAgc2l6ZTogc2l6ZVdpZHRoLnZhbHVlLFxuICAgICAgICAgICAgYWx3YXlzOiBfY3R4LmFsd2F5\nc1xuICAgICAgICAgIH0sIG51bGwsIDgsIFtcIm1vdmVcIiwgXCJyYXRpb1wiLCBcInNpemVcIiwg\nXCJhbHdheXNcIl0pLFxuICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShUaHVtYiwge1xuICAgICAg\nICAgICAgbW92ZTogbW92ZVkudmFsdWUsXG4gICAgICAgICAgICByYXRpbzogcmF0aW9ZLnZhbHVl\nLFxuICAgICAgICAgICAgc2l6ZTogc2l6ZUhlaWdodC52YWx1ZSxcbiAgICAgICAgICAgIHZlcnRp\nY2FsOiBcIlwiLFxuICAgICAgICAgICAgYWx3YXlzOiBfY3R4LmFsd2F5c1xuICAgICAgICAgIH0s\nIG51bGwsIDgsIFtcIm1vdmVcIiwgXCJyYXRpb1wiLCBcInNpemVcIiwgXCJhbHdheXNcIl0pXG4g\nICAgICAgIF0sIDY0KTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFyIEJhciA9IFwvKiBA\nX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjKF9zZmNfbWFpbiRBLCBbW1wiX19maWxlXCIsIFwiYmFy\nLnZ1ZVwiXV0pO1xuICBjb25zdCBzY3JvbGxiYXJQcm9wcyA9IGJ1aWxkUHJvcHMoe1xuICAgIGhl\naWdodDoge1xuICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxcbiAgICAgIGRlZmF1bHQ6IFwi\nXCJcbiAgICB9LFxuICAgIG1heEhlaWdodDoge1xuICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVy\nXSxcbiAgICAgIGRlZmF1bHQ6IFwiXCJcbiAgICB9LFxuICAgIG5hdGl2ZToge1xuICAgICAgdHlw\nZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlXG4gICAgfSxcbiAgICB3cmFwU3R5bGU6\nIHtcbiAgICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKFtTdHJpbmcsIE9iamVjdCwgQXJyYXldKSxc\nbiAgICAgIGRlZmF1bHQ6IFwiXCJcbiAgICB9LFxuICAgIHdyYXBDbGFzczoge1xuICAgICAgdHlw\nZTogW1N0cmluZywgQXJyYXldLFxuICAgICAgZGVmYXVsdDogXCJcIlxuICAgIH0sXG4gICAgdmll\nd0NsYXNzOiB7XG4gICAgICB0eXBlOiBbU3RyaW5nLCBBcnJheV0sXG4gICAgICBkZWZhdWx0OiBc\nIlwiXG4gICAgfSxcbiAgICB2aWV3U3R5bGU6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIEFycmF5\nLCBPYmplY3RdLFxuICAgICAgZGVmYXVsdDogXCJcIlxuICAgIH0sXG4gICAgbm9yZXNpemU6IEJv\nb2xlYW4sXG4gICAgdGFnOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiBc\nImRpdlwiXG4gICAgfSxcbiAgICBhbHdheXM6IEJvb2xlYW4sXG4gICAgbWluU2l6ZToge1xuICAg\nICAgdHlwZTogTnVtYmVyLFxuICAgICAgZGVmYXVsdDogMjBcbiAgICB9LFxuICAgIGlkOiBTdHJp\nbmcsXG4gICAgcm9sZTogU3RyaW5nLFxuICAgIC4uLnVzZUFyaWFQcm9wcyhbXCJhcmlhTGFiZWxc\nIiwgXCJhcmlhT3JpZW50YXRpb25cIl0pXG4gIH0pO1xuICBjb25zdCBzY3JvbGxiYXJFbWl0cyA9\nIHtcbiAgICBzY3JvbGw6ICh7XG4gICAgICBzY3JvbGxUb3AsXG4gICAgICBzY3JvbGxMZWZ0XG4g\nICAgfSkgPT4gW3Njcm9sbFRvcCwgc2Nyb2xsTGVmdF0uZXZlcnkoaXNOdW1iZXIpXG4gIH07XG4g\nIGNvbnN0IENPTVBPTkVOVF9OQU1FJDQgPSBcIkVsU2Nyb2xsYmFyXCI7XG4gIGNvbnN0IF9fZGVm\nYXVsdF9fJG0gPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBDT01QT05FTlRfTkFN\nRSQ0XG4gIH0pO1xuICBjb25zdCBfc2ZjX21haW4keiA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5k\nZWZpbmVDb21wb25lbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJG0sXG4gICAgcHJvcHM6IHNjcm9s\nbGJhclByb3BzLFxuICAgIGVtaXRzOiBzY3JvbGxiYXJFbWl0cyxcbiAgICBzZXR1cChfX3Byb3Bz\nLCB7IGV4cG9zZSwgZW1pdCB9KSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAg\nICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcInNjcm9sbGJhclwiKTtcbiAgICAgIGxldCBzdG9w\nUmVzaXplT2JzZXJ2ZXIgPSB2b2lkIDA7XG4gICAgICBsZXQgc3RvcFJlc2l6ZUxpc3RlbmVyID0g\ndm9pZCAwO1xuICAgICAgY29uc3Qgc2Nyb2xsYmFyUmVmID0gdnVlLnJlZigpO1xuICAgICAgY29u\nc3Qgd3JhcFJlZiA9IHZ1ZS5yZWYoKTtcbiAgICAgIGNvbnN0IHJlc2l6ZVJlZiA9IHZ1ZS5yZWYo\nKTtcbiAgICAgIGNvbnN0IGJhclJlZiA9IHZ1ZS5yZWYoKTtcbiAgICAgIGNvbnN0IHdyYXBTdHls\nZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0ge307XG4gICAg\nICAgIGlmIChwcm9wcy5oZWlnaHQpXG4gICAgICAgICAgc3R5bGUuaGVpZ2h0ID0gYWRkVW5pdChw\ncm9wcy5oZWlnaHQpO1xuICAgICAgICBpZiAocHJvcHMubWF4SGVpZ2h0KVxuICAgICAgICAgIHN0\neWxlLm1heEhlaWdodCA9IGFkZFVuaXQocHJvcHMubWF4SGVpZ2h0KTtcbiAgICAgICAgcmV0dXJu\nIFtwcm9wcy53cmFwU3R5bGUsIHN0eWxlXTtcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgd3JhcEts\ncyA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgcHJv\ncHMud3JhcENsYXNzLFxuICAgICAgICAgIG5zLmUoXCJ3cmFwXCIpLFxuICAgICAgICAgIHsgW25z\nLmVtKFwid3JhcFwiLCBcImhpZGRlbi1kZWZhdWx0XCIpXTogIXByb3BzLm5hdGl2ZSB9XG4gICAg\nICAgIF07XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlc2l6ZUtscyA9IHZ1ZS5jb21wdXRlZCgo\nKSA9PiB7XG4gICAgICAgIHJldHVybiBbbnMuZShcInZpZXdcIiksIHByb3BzLnZpZXdDbGFzc107\nXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgICAg\ndmFyIF9hMztcbiAgICAgICAgaWYgKHdyYXBSZWYudmFsdWUpIHtcbiAgICAgICAgICAoX2EzID0g\nYmFyUmVmLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmhhbmRsZVNjcm9sbCh3cmFwUmVm\nLnZhbHVlKTtcbiAgICAgICAgICBlbWl0KFwic2Nyb2xsXCIsIHtcbiAgICAgICAgICAgIHNjcm9s\nbFRvcDogd3JhcFJlZi52YWx1ZS5zY3JvbGxUb3AsXG4gICAgICAgICAgICBzY3JvbGxMZWZ0OiB3\ncmFwUmVmLnZhbHVlLnNjcm9sbExlZnRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAg\nfTtcbiAgICAgIGZ1bmN0aW9uIHNjcm9sbFRvKGFyZzEsIGFyZzIpIHtcbiAgICAgICAgaWYgKGlz\nT2JqZWN0JDEoYXJnMSkpIHtcbiAgICAgICAgICB3cmFwUmVmLnZhbHVlLnNjcm9sbFRvKGFyZzEp\nO1xuICAgICAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKGFyZzEpICYmIGlzTnVtYmVyKGFyZzIpKSB7\nXG4gICAgICAgICAgd3JhcFJlZi52YWx1ZS5zY3JvbGxUbyhhcmcxLCBhcmcyKTtcbiAgICAgICAg\nfVxuICAgICAgfVxuICAgICAgY29uc3Qgc2V0U2Nyb2xsVG9wID0gKHZhbHVlKSA9PiB7XG4gICAg\nICAgIGlmICghaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9\nXG4gICAgICAgIHdyYXBSZWYudmFsdWUuc2Nyb2xsVG9wID0gdmFsdWU7XG4gICAgICB9O1xuICAg\nICAgY29uc3Qgc2V0U2Nyb2xsTGVmdCA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIWlzTnVt\nYmVyKHZhbHVlKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB3cmFw\nUmVmLnZhbHVlLnNjcm9sbExlZnQgPSB2YWx1ZTtcbiAgICAgIH07XG4gICAgICBjb25zdCB1cGRh\ndGUgPSAoKSA9PiB7XG4gICAgICAgIHZhciBfYTM7XG4gICAgICAgIChfYTMgPSBiYXJSZWYudmFs\ndWUpID09IG51bGwgPyB2b2lkIDAgOiBfYTMudXBkYXRlKCk7XG4gICAgICB9O1xuICAgICAgdnVl\nLndhdGNoKCgpID0+IHByb3BzLm5vcmVzaXplLCAobm9yZXNpemUpID0+IHtcbiAgICAgICAgaWYg\nKG5vcmVzaXplKSB7XG4gICAgICAgICAgc3RvcFJlc2l6ZU9ic2VydmVyID09IG51bGwgPyB2b2lk\nIDAgOiBzdG9wUmVzaXplT2JzZXJ2ZXIoKTtcbiAgICAgICAgICBzdG9wUmVzaXplTGlzdGVuZXIg\nPT0gbnVsbCA\/IHZvaWQgMCA6IHN0b3BSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICB9IGVsc2Ug\ne1xuICAgICAgICAgICh7IHN0b3A6IHN0b3BSZXNpemVPYnNlcnZlciB9ID0gdXNlUmVzaXplT2Jz\nZXJ2ZXIocmVzaXplUmVmLCB1cGRhdGUpKTtcbiAgICAgICAgICBzdG9wUmVzaXplTGlzdGVuZXIg\nPSB1c2VFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICAg\nIH0sIHsgaW1tZWRpYXRlOiB0cnVlIH0pO1xuICAgICAgdnVlLndhdGNoKCgpID0+IFtwcm9wcy5t\nYXhIZWlnaHQsIHByb3BzLmhlaWdodF0sICgpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcy5uYXRp\ndmUpXG4gICAgICAgICAgdnVlLm5leHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTM7\nXG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIGlmICh3cmFwUmVmLnZhbHVlKSB7\nXG4gICAgICAgICAgICAgIChfYTMgPSBiYXJSZWYudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBf\nYTMuaGFuZGxlU2Nyb2xsKHdyYXBSZWYudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAg\nIH0pO1xuICAgICAgfSk7XG4gICAgICB2dWUucHJvdmlkZShzY3JvbGxiYXJDb250ZXh0S2V5LCB2\ndWUucmVhY3RpdmUoe1xuICAgICAgICBzY3JvbGxiYXJFbGVtZW50OiBzY3JvbGxiYXJSZWYsXG4g\nICAgICAgIHdyYXBFbGVtZW50OiB3cmFwUmVmXG4gICAgICB9KSk7XG4gICAgICB2dWUub25Nb3Vu\ndGVkKCgpID0+IHtcbiAgICAgICAgaWYgKCFwcm9wcy5uYXRpdmUpXG4gICAgICAgICAgdnVlLm5l\neHRUaWNrKCgpID0+IHtcbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgIH0pO1xuICAg\nICAgfSk7XG4gICAgICB2dWUub25VcGRhdGVkKCgpID0+IHVwZGF0ZSgpKTtcbiAgICAgIGV4cG9z\nZSh7XG4gICAgICAgIHdyYXBSZWYsXG4gICAgICAgIHVwZGF0ZSxcbiAgICAgICAgc2Nyb2xsVG8s\nXG4gICAgICAgIHNldFNjcm9sbFRvcCxcbiAgICAgICAgc2V0U2Nyb2xsTGVmdCxcbiAgICAgICAg\naGFuZGxlU2Nyb2xsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7\nXG4gICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2so\nXCJkaXZcIiwge1xuICAgICAgICAgIHJlZl9rZXk6IFwic2Nyb2xsYmFyUmVmXCIsXG4gICAgICAg\nICAgcmVmOiBzY3JvbGxiYXJSZWYsXG4gICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFz\ncyh2dWUudW5yZWYobnMpLmIoKSlcbiAgICAgICAgfSwgW1xuICAgICAgICAgIHZ1ZS5jcmVhdGVF\nbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAgICAgICAgcmVmX2tleTogXCJ3cmFwUmVmXCIs\nXG4gICAgICAgICAgICByZWY6IHdyYXBSZWYsXG4gICAgICAgICAgICBjbGFzczogdnVlLm5vcm1h\nbGl6ZUNsYXNzKHZ1ZS51bnJlZih3cmFwS2xzKSksXG4gICAgICAgICAgICBzdHlsZTogdnVlLm5v\ncm1hbGl6ZVN0eWxlKHZ1ZS51bnJlZih3cmFwU3R5bGUpKSxcbiAgICAgICAgICAgIG9uU2Nyb2xs\nOiBoYW5kbGVTY3JvbGxcbiAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAodnVlLm9wZW5CbG9j\naygpLCB2dWUuY3JlYXRlQmxvY2sodnVlLnJlc29sdmVEeW5hbWljQ29tcG9uZW50KF9jdHgudGFn\nKSwge1xuICAgICAgICAgICAgICBpZDogX2N0eC5pZCxcbiAgICAgICAgICAgICAgcmVmX2tleTog\nXCJyZXNpemVSZWZcIixcbiAgICAgICAgICAgICAgcmVmOiByZXNpemVSZWYsXG4gICAgICAgICAg\nICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVmKHJlc2l6ZUtscykpLFxuICAg\nICAgICAgICAgICBzdHlsZTogdnVlLm5vcm1hbGl6ZVN0eWxlKF9jdHgudmlld1N0eWxlKSxcbiAg\nICAgICAgICAgICAgcm9sZTogX2N0eC5yb2xlLFxuICAgICAgICAgICAgICBcImFyaWEtbGFiZWxc\nIjogX2N0eC5hcmlhTGFiZWwsXG4gICAgICAgICAgICAgIFwiYXJpYS1vcmllbnRhdGlvblwiOiBf\nY3R4LmFyaWFPcmllbnRhdGlvblxuICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICBkZWZh\ndWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgdnVlLnJlbmRlclNsb3Qo\nX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiKVxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAg\nICAgXzogM1xuICAgICAgICAgICAgfSwgOCwgW1wiaWRcIiwgXCJjbGFzc1wiLCBcInN0eWxlXCIs\nIFwicm9sZVwiLCBcImFyaWEtbGFiZWxcIiwgXCJhcmlhLW9yaWVudGF0aW9uXCJdKSlcbiAgICAg\nICAgICBdLCAzOCksXG4gICAgICAgICAgIV9jdHgubmF0aXZlID8gKHZ1ZS5vcGVuQmxvY2soKSwg\ndnVlLmNyZWF0ZUJsb2NrKEJhciwge1xuICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAg\ncmVmX2tleTogXCJiYXJSZWZcIixcbiAgICAgICAgICAgIHJlZjogYmFyUmVmLFxuICAgICAgICAg\nICAgYWx3YXlzOiBfY3R4LmFsd2F5cyxcbiAgICAgICAgICAgIFwibWluLXNpemVcIjogX2N0eC5t\naW5TaXplXG4gICAgICAgICAgfSwgbnVsbCwgOCwgW1wiYWx3YXlzXCIsIFwibWluLXNpemVcIl0p\nKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gICAgICAgIF0sIDIp\nO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICB2YXIgU2Nyb2xsYmFyID0gXC8qIEBfX1BVUkVf\nXyAqXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJHosIFtbXCJfX2ZpbGVcIiwgXCJzY3JvbGxiYXIu\ndnVlXCJdXSk7XG4gIGNvbnN0IEVsU2Nyb2xsYmFyID0gd2l0aEluc3RhbGwoU2Nyb2xsYmFyKTtc\nbiAgY29uc3QgYXZhdGFyUHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICBzaXplOiB7XG4gICAgICB0\neXBlOiBbTnVtYmVyLCBTdHJpbmddLFxuICAgICAgdmFsdWVzOiBjb21wb25lbnRTaXplcyxcbiAg\nICAgIGRlZmF1bHQ6IFwiXCIsXG4gICAgICB2YWxpZGF0b3I6ICh2YWwpID0+IGlzTnVtYmVyKHZh\nbClcbiAgICB9LFxuICAgIHNoYXBlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1\nZXM6IFtcImNpcmNsZVwiLCBcInNxdWFyZVwiXSxcbiAgICAgIGRlZmF1bHQ6IFwiY2lyY2xlXCJc\nbiAgICB9LFxuICAgIGljb246IHtcbiAgICAgIHR5cGU6IGljb25Qcm9wVHlwZVxuICAgIH0sXG4g\nICAgc3JjOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiBcIlwiXG4gICAg\nfSxcbiAgICBhbHQ6IFN0cmluZyxcbiAgICBzcmNTZXQ6IFN0cmluZyxcbiAgICBmaXQ6IHtcbiAg\nICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKFN0cmluZyksXG4gICAgICBkZWZhdWx0OiBcImNvdmVy\nXCJcbiAgICB9XG4gIH0pO1xuICBjb25zdCBhdmF0YXJFbWl0cyA9IHtcbiAgICBlcnJvcjogKGV2\ndCkgPT4gZXZ0IGluc3RhbmNlb2YgRXZlbnRcbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMSRoID0g\nW1wic3JjXCIsIFwiYWx0XCIsIFwic3Jjc2V0XCJdO1xuICBjb25zdCBfX2RlZmF1bHRfXyRsID0g\ndnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJFbEF2YXRhclwiXG4gIH0pO1xuICBj\nb25zdCBfc2ZjX21haW4keSA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25lbnQo\ne1xuICAgIC4uLl9fZGVmYXVsdF9fJGwsXG4gICAgcHJvcHM6IGF2YXRhclByb3BzLFxuICAgIGVt\naXRzOiBhdmF0YXJFbWl0cyxcbiAgICBzZXR1cChfX3Byb3BzLCB7IGVtaXQgfSkge1xuICAgICAg\nY29uc3QgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgY29uc3QgbnMgPSB1c2VOYW1lc3BhY2UoXCJh\ndmF0YXJcIik7XG4gICAgICBjb25zdCBoYXNMb2FkRXJyb3IgPSB2dWUucmVmKGZhbHNlKTtcbiAg\nICAgIGNvbnN0IGF2YXRhckNsYXNzID0gdnVlLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29u\nc3QgeyBzaXplLCBpY29uLCBzaGFwZSB9ID0gcHJvcHM7XG4gICAgICAgIGNvbnN0IGNsYXNzTGlz\ndCA9IFtucy5iKCldO1xuICAgICAgICBpZiAoaXNTdHJpbmcoc2l6ZSkpXG4gICAgICAgICAgY2xh\nc3NMaXN0LnB1c2gobnMubShzaXplKSk7XG4gICAgICAgIGlmIChpY29uKVxuICAgICAgICAgIGNs\nYXNzTGlzdC5wdXNoKG5zLm0oXCJpY29uXCIpKTtcbiAgICAgICAgaWYgKHNoYXBlKVxuICAgICAg\nICAgIGNsYXNzTGlzdC5wdXNoKG5zLm0oc2hhcGUpKTtcbiAgICAgICAgcmV0dXJuIGNsYXNzTGlz\ndDtcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2l6ZVN0eWxlID0gdnVlLmNvbXB1dGVkKCgpID0+\nIHtcbiAgICAgICAgY29uc3QgeyBzaXplIH0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIGlzTnVt\nYmVyKHNpemUpID8gbnMuY3NzVmFyQmxvY2soe1xuICAgICAgICAgIHNpemU6IGFkZFVuaXQoc2l6\nZSkgfHwgXCJcIlxuICAgICAgICB9KSA6IHZvaWQgMDtcbiAgICAgIH0pO1xuICAgICAgY29uc3Qg\nZml0U3R5bGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgb2JqZWN0Rml0OiBwcm9w\ncy5maXRcbiAgICAgIH0pKTtcbiAgICAgIHZ1ZS53YXRjaCgoKSA9PiBwcm9wcy5zcmMsICgpID0+\nIGhhc0xvYWRFcnJvci52YWx1ZSA9IGZhbHNlKTtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9y\nKGUpIHtcbiAgICAgICAgaGFzTG9hZEVycm9yLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgZW1pdChc\nImVycm9yXCIsIGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtc\nbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhc\nInNwYW5cIiwge1xuICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVm\nKGF2YXRhckNsYXNzKSksXG4gICAgICAgICAgc3R5bGU6IHZ1ZS5ub3JtYWxpemVTdHlsZSh2dWUu\ndW5yZWYoc2l6ZVN0eWxlKSlcbiAgICAgICAgfSwgW1xuICAgICAgICAgIChfY3R4LnNyYyB8fCBf\nY3R4LnNyY1NldCkgJiYgIWhhc0xvYWRFcnJvci52YWx1ZSA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1\nZS5jcmVhdGVFbGVtZW50QmxvY2soXCJpbWdcIiwge1xuICAgICAgICAgICAga2V5OiAwLFxuICAg\nICAgICAgICAgc3JjOiBfY3R4LnNyYyxcbiAgICAgICAgICAgIGFsdDogX2N0eC5hbHQsXG4gICAg\nICAgICAgICBzcmNzZXQ6IF9jdHguc3JjU2V0LFxuICAgICAgICAgICAgc3R5bGU6IHZ1ZS5ub3Jt\nYWxpemVTdHlsZSh2dWUudW5yZWYoZml0U3R5bGUpKSxcbiAgICAgICAgICAgIG9uRXJyb3I6IGhh\nbmRsZUVycm9yXG4gICAgICAgICAgfSwgbnVsbCwgNDQsIF9ob2lzdGVkXzEkaCkpIDogX2N0eC5p\nY29uID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS51bnJlZihFbEljb24p\nLCB7IGtleTogMSB9LCB7XG4gICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBb\nXG4gICAgICAgICAgICAgICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayh2dWUucmVz\nb2x2ZUR5bmFtaWNDb21wb25lbnQoX2N0eC5pY29uKSkpXG4gICAgICAgICAgICBdKSxcbiAgICAg\nICAgICAgIF86IDFcbiAgICAgICAgICB9KSkgOiB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywg\nXCJkZWZhdWx0XCIsIHsga2V5OiAyIH0pXG4gICAgICAgIF0sIDYpO1xuICAgICAgfTtcbiAgICB9\nXG4gIH0pO1xuICB2YXIgQXZhdGFyID0gXC8qIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMoX3Nm\nY19tYWluJHksIFtbXCJfX2ZpbGVcIiwgXCJhdmF0YXIudnVlXCJdXSk7XG4gIGNvbnN0IEVsQXZh\ndGFyID0gd2l0aEluc3RhbGwoQXZhdGFyKTtcbiAgY29uc3QgYmFja3RvcFByb3BzID0ge1xuICAg\nIHZpc2liaWxpdHlIZWlnaHQ6IHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6\nIDIwMFxuICAgIH0sXG4gICAgdGFyZ2V0OiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICBk\nZWZhdWx0OiBcIlwiXG4gICAgfSxcbiAgICByaWdodDoge1xuICAgICAgdHlwZTogTnVtYmVyLFxu\nICAgICAgZGVmYXVsdDogNDBcbiAgICB9LFxuICAgIGJvdHRvbToge1xuICAgICAgdHlwZTogTnVt\nYmVyLFxuICAgICAgZGVmYXVsdDogNDBcbiAgICB9XG4gIH07XG4gIGNvbnN0IGJhY2t0b3BFbWl0\ncyA9IHtcbiAgICBjbGljazogKGV2dCkgPT4gZXZ0IGluc3RhbmNlb2YgTW91c2VFdmVudFxuICB9\nO1xuICBjb25zdCB1c2VCYWNrVG9wID0gKHByb3BzLCBlbWl0LCBjb21wb25lbnROYW1lKSA9PiB7\nXG4gICAgY29uc3QgZWwgPSB2dWUuc2hhbGxvd1JlZigpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9\nIHZ1ZS5zaGFsbG93UmVmKCk7XG4gICAgY29uc3QgdmlzaWJsZSA9IHZ1ZS5yZWYoZmFsc2UpO1xu\nICAgIGNvbnN0IGhhbmRsZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgIGlmIChlbC52YWx1ZSlcbiAg\nICAgICAgdmlzaWJsZS52YWx1ZSA9IGVsLnZhbHVlLnNjcm9sbFRvcCA+PSBwcm9wcy52aXNpYmls\naXR5SGVpZ2h0O1xuICAgIH07XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSAoZXZlbnQpID0+IHtc\nbiAgICAgIHZhciBfYTM7XG4gICAgICAoX2EzID0gZWwudmFsdWUpID09IG51bGwgPyB2b2lkIDAg\nOiBfYTMuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiBcInNtb290aFwiIH0pO1xuICAgICAg\nZW1pdChcImNsaWNrXCIsIGV2ZW50KTtcbiAgICB9O1xuICAgIGNvbnN0IGhhbmRsZVNjcm9sbFRo\ncm90dGxlZCA9IHVzZVRocm90dGxlRm4oaGFuZGxlU2Nyb2xsLCAzMDAsIHRydWUpO1xuICAgIHVz\nZUV2ZW50TGlzdGVuZXIoY29udGFpbmVyLCBcInNjcm9sbFwiLCBoYW5kbGVTY3JvbGxUaHJvdHRs\nZWQpO1xuICAgIHZ1ZS5vbk1vdW50ZWQoKCkgPT4ge1xuICAgICAgdmFyIF9hMztcbiAgICAgIGNv\nbnRhaW5lci52YWx1ZSA9IGRvY3VtZW50O1xuICAgICAgZWwudmFsdWUgPSBkb2N1bWVudC5kb2N1\nbWVudEVsZW1lbnQ7XG4gICAgICBpZiAocHJvcHMudGFyZ2V0KSB7XG4gICAgICAgIGVsLnZhbHVl\nID0gKF9hMyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocHJvcHMudGFyZ2V0KSkgIT0gbnVsbCA\/\nIF9hMyA6IHZvaWQgMDtcbiAgICAgICAgaWYgKCFlbC52YWx1ZSkge1xuICAgICAgICAgIHRocm93\nRXJyb3IoY29tcG9uZW50TmFtZSwgYHRhcmdldCBkb2VzIG5vdCBleGlzdDogJHtwcm9wcy50YXJn\nZXR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLnZhbHVlID0gZWwudmFsdWU7XG4g\nICAgICB9XG4gICAgICBoYW5kbGVTY3JvbGwoKTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAg\nICAgdmlzaWJsZSxcbiAgICAgIGhhbmRsZUNsaWNrXG4gICAgfTtcbiAgfTtcbiAgY29uc3QgQ09N\nUE9ORU5UX05BTUUkMyA9IFwiRWxCYWNrdG9wXCI7XG4gIGNvbnN0IF9fZGVmYXVsdF9fJGsgPSB2\ndWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBDT01QT05FTlRfTkFNRSQzXG4gIH0pO1xu\nICBjb25zdCBfc2ZjX21haW4keCA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25l\nbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJGssXG4gICAgcHJvcHM6IGJhY2t0b3BQcm9wcyxcbiAg\nICBlbWl0czogYmFja3RvcEVtaXRzLFxuICAgIHNldHVwKF9fcHJvcHMsIHsgZW1pdCB9KSB7XG4g\nICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFj\nZShcImJhY2t0b3BcIik7XG4gICAgICBjb25zdCB7IGhhbmRsZUNsaWNrLCB2aXNpYmxlIH0gPSB1\nc2VCYWNrVG9wKHByb3BzLCBlbWl0LCBDT01QT05FTlRfTkFNRSQzKTtcbiAgICAgIGNvbnN0IGJh\nY2tUb3BTdHlsZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICByaWdodDogYCR7cHJv\ncHMucmlnaHR9cHhgLFxuICAgICAgICBib3R0b206IGAke3Byb3BzLmJvdHRvbX1weGBcbiAgICAg\nIH0pKTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAgIHJldHVybiB2\ndWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayh2dWUuVHJhbnNpdGlvbiwge1xuICAgICAg\nICAgIG5hbWU6IGAke3Z1ZS51bnJlZihucykubmFtZXNwYWNlLnZhbHVlfS1mYWRlLWluYFxuICAg\nICAgICB9LCB7XG4gICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAg\nICAgICAgdnVlLnVucmVmKHZpc2libGUpID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVs\nZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAg\nICAgc3R5bGU6IHZ1ZS5ub3JtYWxpemVTdHlsZSh2dWUudW5yZWYoYmFja1RvcFN0eWxlKSksXG4g\nICAgICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVmKG5zKS5iKCkp\nLFxuICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9IHZ1ZS53\naXRoTW9kaWZpZXJzKCguLi5hcmdzKSA9PiB2dWUudW5yZWYoaGFuZGxlQ2xpY2spICYmIHZ1ZS51\nbnJlZihoYW5kbGVDbGljaykoLi4uYXJncyksIFtcInN0b3BcIl0pKVxuICAgICAgICAgICAgfSwg\nW1xuICAgICAgICAgICAgICB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJkZWZhdWx0XCIs\nIHt9LCAoKSA9PiBbXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKHZ1ZS51bnJlZihF\nbEljb24pLCB7XG4gICAgICAgICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1\nZS51bnJlZihucykuZShcImljb25cIikpXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAg\nICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAg\nICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKGljb25zVnVlLkNhcmV0VG9wKSlcbiAgICAgICAg\nICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgIH0s\nIDgsIFtcImNsYXNzXCJdKVxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgXSwgNikpIDog\ndnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICAgICAgICBdKSxcbiAg\nICAgICAgICBfOiAzXG4gICAgICAgIH0sIDgsIFtcIm5hbWVcIl0pO1xuICAgICAgfTtcbiAgICB9\nXG4gIH0pO1xuICB2YXIgQmFja3RvcCA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjKF9z\nZmNfbWFpbiR4LCBbW1wiX19maWxlXCIsIFwiYmFja3RvcC52dWVcIl1dKTtcbiAgY29uc3QgRWxC\nYWNrdG9wID0gd2l0aEluc3RhbGwoQmFja3RvcCk7XG4gIGNvbnN0IGJ1dHRvbkdyb3VwQ29udGV4\ndEtleSA9IFN5bWJvbChcImJ1dHRvbkdyb3VwQ29udGV4dEtleVwiKTtcbiAgY29uc3QgdXNlQnV0\ndG9uID0gKHByb3BzLCBlbWl0KSA9PiB7XG4gICAgdXNlRGVwcmVjYXRlZCh7XG4gICAgICBmcm9t\nOiBcInR5cGUudGV4dFwiLFxuICAgICAgcmVwbGFjZW1lbnQ6IFwibGlua1wiLFxuICAgICAgdmVy\nc2lvbjogXCIzLjAuMFwiLFxuICAgICAgc2NvcGU6IFwicHJvcHNcIixcbiAgICAgIHJlZjogXCJo\ndHRwczpcL1wvZWxlbWVudC1wbHVzLm9yZ1wvZW4tVVNcL2NvbXBvbmVudFwvYnV0dG9uLmh0bWwj\nYnV0dG9uLWF0dHJpYnV0ZXNcIlxuICAgIH0sIHZ1ZS5jb21wdXRlZCgoKSA9PiBwcm9wcy50eXBl\nID09PSBcInRleHRcIikpO1xuICAgIGNvbnN0IGJ1dHRvbkdyb3VwQ29udGV4dCA9IHZ1ZS5pbmpl\nY3QoYnV0dG9uR3JvdXBDb250ZXh0S2V5LCB2b2lkIDApO1xuICAgIGNvbnN0IGdsb2JhbENvbmZp\nZzIgPSB1c2VHbG9iYWxDb25maWcoXCJidXR0b25cIik7XG4gICAgY29uc3QgeyBmb3JtIH0gPSB1\nc2VGb3JtSXRlbSgpO1xuICAgIGNvbnN0IF9zaXplID0gdXNlRm9ybVNpemUodnVlLmNvbXB1dGVk\nKCgpID0+IGJ1dHRvbkdyb3VwQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogYnV0dG9uR3JvdXBD\nb250ZXh0LnNpemUpKTtcbiAgICBjb25zdCBfZGlzYWJsZWQgPSB1c2VGb3JtRGlzYWJsZWQoKTtc\nbiAgICBjb25zdCBfcmVmID0gdnVlLnJlZigpO1xuICAgIGNvbnN0IHNsb3RzID0gdnVlLnVzZVNs\nb3RzKCk7XG4gICAgY29uc3QgX3R5cGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4gcHJvcHMudHlwZSB8\nfCAoYnV0dG9uR3JvdXBDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiBidXR0b25Hcm91cENvbnRl\neHQudHlwZSkgfHwgXCJcIik7XG4gICAgY29uc3QgYXV0b0luc2VydFNwYWNlID0gdnVlLmNvbXB1\ndGVkKCgpID0+IHtcbiAgICAgIHZhciBfYTMsIF9iLCBfYztcbiAgICAgIHJldHVybiAoX2MgPSAo\nX2IgPSBwcm9wcy5hdXRvSW5zZXJ0U3BhY2UpICE9IG51bGwgPyBfYiA6IChfYTMgPSBnbG9iYWxD\nb25maWcyLnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmF1dG9JbnNlcnRTcGFjZSkgIT0g\nbnVsbCA\/IF9jIDogZmFsc2U7XG4gICAgfSk7XG4gICAgY29uc3QgX3Byb3BzID0gdnVlLmNvbXB1\ndGVkKCgpID0+IHtcbiAgICAgIGlmIChwcm9wcy50YWcgPT09IFwiYnV0dG9uXCIpIHtcbiAgICAg\nICAgcmV0dXJuIHtcbiAgICAgICAgICBhcmlhRGlzYWJsZWQ6IF9kaXNhYmxlZC52YWx1ZSB8fCBw\ncm9wcy5sb2FkaW5nLFxuICAgICAgICAgIGRpc2FibGVkOiBfZGlzYWJsZWQudmFsdWUgfHwgcHJv\ncHMubG9hZGluZyxcbiAgICAgICAgICBhdXRvZm9jdXM6IHByb3BzLmF1dG9mb2N1cyxcbiAgICAg\nICAgICB0eXBlOiBwcm9wcy5uYXRpdmVUeXBlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBy\nZXR1cm4ge307XG4gICAgfSk7XG4gICAgY29uc3Qgc2hvdWxkQWRkU3BhY2UgPSB2dWUuY29tcHV0\nZWQoKCkgPT4ge1xuICAgICAgdmFyIF9hMztcbiAgICAgIGNvbnN0IGRlZmF1bHRTbG90ID0gKF9h\nMyA9IHNsb3RzLmRlZmF1bHQpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuY2FsbChzbG90cyk7XG4g\nICAgICBpZiAoYXV0b0luc2VydFNwYWNlLnZhbHVlICYmIChkZWZhdWx0U2xvdCA9PSBudWxsID8g\ndm9pZCAwIDogZGVmYXVsdFNsb3QubGVuZ3RoKSA9PT0gMSkge1xuICAgICAgICBjb25zdCBzbG90\nID0gZGVmYXVsdFNsb3RbMF07XG4gICAgICAgIGlmICgoc2xvdCA9PSBudWxsID8gdm9pZCAwIDog\nc2xvdC50eXBlKSA9PT0gdnVlLlRleHQpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gc2xvdC5j\naGlsZHJlbjtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChcIl5cXFxccHtVbmlmaWVkX0lk\nZW9ncmFwaH17Mn0kXCIsIFwidVwiKS50ZXN0KHRleHQudHJpbSgpKTtcbiAgICAgICAgfVxuICAg\nICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNr\nID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHByb3BzLm5hdGl2ZVR5cGUgPT09IFwicmVzZXRcIikg\ne1xuICAgICAgICBmb3JtID09IG51bGwgPyB2b2lkIDAgOiBmb3JtLnJlc2V0RmllbGRzKCk7XG4g\nICAgICB9XG4gICAgICBlbWl0KFwiY2xpY2tcIiwgZXZ0KTtcbiAgICB9O1xuICAgIHJldHVybiB7\nXG4gICAgICBfZGlzYWJsZWQsXG4gICAgICBfc2l6ZSxcbiAgICAgIF90eXBlLFxuICAgICAgX3Jl\nZixcbiAgICAgIF9wcm9wcyxcbiAgICAgIHNob3VsZEFkZFNwYWNlLFxuICAgICAgaGFuZGxlQ2xp\nY2tcbiAgICB9O1xuICB9O1xuICBjb25zdCBidXR0b25UeXBlcyA9IFtcbiAgICBcImRlZmF1bHRc\nIixcbiAgICBcInByaW1hcnlcIixcbiAgICBcInN1Y2Nlc3NcIixcbiAgICBcIndhcm5pbmdcIixc\nbiAgICBcImluZm9cIixcbiAgICBcImRhbmdlclwiLFxuICAgIFwidGV4dFwiLFxuICAgIFwiXCJc\nbiAgXTtcbiAgY29uc3QgYnV0dG9uTmF0aXZlVHlwZXMgPSBbXCJidXR0b25cIiwgXCJzdWJtaXRc\nIiwgXCJyZXNldFwiXTtcbiAgY29uc3QgYnV0dG9uUHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICBz\naXplOiB1c2VTaXplUHJvcCxcbiAgICBkaXNhYmxlZDogQm9vbGVhbixcbiAgICB0eXBlOiB7XG4g\nICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6IGJ1dHRvblR5cGVzLFxuICAgICAgZGVm\nYXVsdDogXCJcIlxuICAgIH0sXG4gICAgaWNvbjoge1xuICAgICAgdHlwZTogaWNvblByb3BUeXBl\nXG4gICAgfSxcbiAgICBuYXRpdmVUeXBlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2\nYWx1ZXM6IGJ1dHRvbk5hdGl2ZVR5cGVzLFxuICAgICAgZGVmYXVsdDogXCJidXR0b25cIlxuICAg\nIH0sXG4gICAgbG9hZGluZzogQm9vbGVhbixcbiAgICBsb2FkaW5nSWNvbjoge1xuICAgICAgdHlw\nZTogaWNvblByb3BUeXBlLFxuICAgICAgZGVmYXVsdDogKCkgPT4gaWNvbnNWdWUuTG9hZGluZ1xu\nICAgIH0sXG4gICAgcGxhaW46IEJvb2xlYW4sXG4gICAgdGV4dDogQm9vbGVhbixcbiAgICBsaW5r\nOiBCb29sZWFuLFxuICAgIGJnOiBCb29sZWFuLFxuICAgIGF1dG9mb2N1czogQm9vbGVhbixcbiAg\nICByb3VuZDogQm9vbGVhbixcbiAgICBjaXJjbGU6IEJvb2xlYW4sXG4gICAgY29sb3I6IFN0cmlu\nZyxcbiAgICBkYXJrOiBCb29sZWFuLFxuICAgIGF1dG9JbnNlcnRTcGFjZToge1xuICAgICAgdHlw\nZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHZvaWQgMFxuICAgIH0sXG4gICAgdGFnOiB7XG4g\nICAgICB0eXBlOiBkZWZpbmVQcm9wVHlwZShbU3RyaW5nLCBPYmplY3RdKSxcbiAgICAgIGRlZmF1\nbHQ6IFwiYnV0dG9uXCJcbiAgICB9XG4gIH0pO1xuICBjb25zdCBidXR0b25FbWl0cyA9IHtcbiAg\nICBjbGljazogKGV2dCkgPT4gZXZ0IGluc3RhbmNlb2YgTW91c2VFdmVudFxuICB9O1xuICBmdW5j\ndGlvbiBib3VuZDAxKG4sIG1heCkge1xuICAgIGlmIChpc09uZVBvaW50WmVybyhuKSkge1xuICAg\nICAgbiA9IFwiMTAwJVwiO1xuICAgIH1cbiAgICB2YXIgaXNQZXJjZW50ID0gaXNQZXJjZW50YWdl\nKG4pO1xuICAgIG4gPSBtYXggPT09IDM2MCA\/IG4gOiBNYXRoLm1pbihtYXgsIE1hdGgubWF4KDAs\nIHBhcnNlRmxvYXQobikpKTtcbiAgICBpZiAoaXNQZXJjZW50KSB7XG4gICAgICBuID0gcGFyc2VJ\nbnQoU3RyaW5nKG4gKiBtYXgpLCAxMCkgXC8gMTAwO1xuICAgIH1cbiAgICBpZiAoTWF0aC5hYnMo\nbiAtIG1heCkgPCAxZS02KSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgaWYgKG1heCA9\nPT0gMzYwKSB7XG4gICAgICBuID0gKG4gPCAwID8gbiAlIG1heCArIG1heCA6IG4gJSBtYXgpIFwv\nIHBhcnNlRmxvYXQoU3RyaW5nKG1heCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuID0gbiAlIG1h\neCBcLyBwYXJzZUZsb2F0KFN0cmluZyhtYXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH1c\nbiAgZnVuY3Rpb24gY2xhbXAwMSh2YWwpIHtcbiAgICByZXR1cm4gTWF0aC5taW4oMSwgTWF0aC5t\nYXgoMCwgdmFsKSk7XG4gIH1cbiAgZnVuY3Rpb24gaXNPbmVQb2ludFplcm8obikge1xuICAgIHJl\ndHVybiB0eXBlb2YgbiA9PT0gXCJzdHJpbmdcIiAmJiBuLmluZGV4T2YoXCIuXCIpICE9PSAtMSAm\nJiBwYXJzZUZsb2F0KG4pID09PSAxO1xuICB9XG4gIGZ1bmN0aW9uIGlzUGVyY2VudGFnZShuKSB7\nXG4gICAgcmV0dXJuIHR5cGVvZiBuID09PSBcInN0cmluZ1wiICYmIG4uaW5kZXhPZihcIiVcIikg\nIT09IC0xO1xuICB9XG4gIGZ1bmN0aW9uIGJvdW5kQWxwaGEoYSkge1xuICAgIGEgPSBwYXJzZUZs\nb2F0KGEpO1xuICAgIGlmIChpc05hTihhKSB8fCBhIDwgMCB8fCBhID4gMSkge1xuICAgICAgYSA9\nIDE7XG4gICAgfVxuICAgIHJldHVybiBhO1xuICB9XG4gIGZ1bmN0aW9uIGNvbnZlcnRUb1BlcmNl\nbnRhZ2Uobikge1xuICAgIGlmIChuIDw9IDEpIHtcbiAgICAgIHJldHVybiBcIlwiLmNvbmNhdChO\ndW1iZXIobikgKiAxMDAsIFwiJVwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG47XG4gIH1cbiAgZnVu\nY3Rpb24gcGFkMihjKSB7XG4gICAgcmV0dXJuIGMubGVuZ3RoID09PSAxID8gXCIwXCIgKyBjIDog\nU3RyaW5nKGMpO1xuICB9XG4gIGZ1bmN0aW9uIHJnYlRvUmdiKHIsIGcsIGIpIHtcbiAgICByZXR1\ncm4ge1xuICAgICAgcjogYm91bmQwMShyLCAyNTUpICogMjU1LFxuICAgICAgZzogYm91bmQwMShn\nLCAyNTUpICogMjU1LFxuICAgICAgYjogYm91bmQwMShiLCAyNTUpICogMjU1XG4gICAgfTtcbiAg\nfVxuICBmdW5jdGlvbiByZ2JUb0hzbChyLCBnLCBiKSB7XG4gICAgciA9IGJvdW5kMDEociwgMjU1\nKTtcbiAgICBnID0gYm91bmQwMShnLCAyNTUpO1xuICAgIGIgPSBib3VuZDAxKGIsIDI1NSk7XG4g\nICAgdmFyIG1heCA9IE1hdGgubWF4KHIsIGcsIGIpO1xuICAgIHZhciBtaW4gPSBNYXRoLm1pbihy\nLCBnLCBiKTtcbiAgICB2YXIgaDIgPSAwO1xuICAgIHZhciBzID0gMDtcbiAgICB2YXIgbCA9ICht\nYXggKyBtaW4pIFwvIDI7XG4gICAgaWYgKG1heCA9PT0gbWluKSB7XG4gICAgICBzID0gMDtcbiAg\nICAgIGgyID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGQgPSBtYXggLSBtaW47XG4gICAg\nICBzID0gbCA+IDAuNSA\/IGQgXC8gKDIgLSBtYXggLSBtaW4pIDogZCBcLyAobWF4ICsgbWluKTtc\nbiAgICAgIHN3aXRjaCAobWF4KSB7XG4gICAgICAgIGNhc2UgcjpcbiAgICAgICAgICBoMiA9IChn\nIC0gYikgXC8gZCArIChnIDwgYiA\/IDYgOiAwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAg\nY2FzZSBnOlxuICAgICAgICAgIGgyID0gKGIgLSByKSBcLyBkICsgMjtcbiAgICAgICAgICBicmVh\naztcbiAgICAgICAgY2FzZSBiOlxuICAgICAgICAgIGgyID0gKHIgLSBnKSBcLyBkICsgNDtcbiAg\nICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGgyIFwvPSA2O1xuICAgIH1cbiAgICByZXR1\ncm4geyBoOiBoMiwgcywgbCB9O1xuICB9XG4gIGZ1bmN0aW9uIGh1ZTJyZ2IocCwgcSwgdCkge1xu\nICAgIGlmICh0IDwgMCkge1xuICAgICAgdCArPSAxO1xuICAgIH1cbiAgICBpZiAodCA+IDEpIHtc\nbiAgICAgIHQgLT0gMTtcbiAgICB9XG4gICAgaWYgKHQgPCAxIFwvIDYpIHtcbiAgICAgIHJldHVy\nbiBwICsgKHEgLSBwKSAqICg2ICogdCk7XG4gICAgfVxuICAgIGlmICh0IDwgMSBcLyAyKSB7XG4g\nICAgICByZXR1cm4gcTtcbiAgICB9XG4gICAgaWYgKHQgPCAyIFwvIDMpIHtcbiAgICAgIHJldHVy\nbiBwICsgKHEgLSBwKSAqICgyIFwvIDMgLSB0KSAqIDY7XG4gICAgfVxuICAgIHJldHVybiBwO1xu\nICB9XG4gIGZ1bmN0aW9uIGhzbFRvUmdiKGgyLCBzLCBsKSB7XG4gICAgdmFyIHI7XG4gICAgdmFy\nIGc7XG4gICAgdmFyIGI7XG4gICAgaDIgPSBib3VuZDAxKGgyLCAzNjApO1xuICAgIHMgPSBib3Vu\nZDAxKHMsIDEwMCk7XG4gICAgbCA9IGJvdW5kMDEobCwgMTAwKTtcbiAgICBpZiAocyA9PT0gMCkg\ne1xuICAgICAgZyA9IGw7XG4gICAgICBiID0gbDtcbiAgICAgIHIgPSBsO1xuICAgIH0gZWxzZSB7\nXG4gICAgICB2YXIgcSA9IGwgPCAwLjUgPyBsICogKDEgKyBzKSA6IGwgKyBzIC0gbCAqIHM7XG4g\nICAgICB2YXIgcCA9IDIgKiBsIC0gcTtcbiAgICAgIHIgPSBodWUycmdiKHAsIHEsIGgyICsgMSBc\nLyAzKTtcbiAgICAgIGcgPSBodWUycmdiKHAsIHEsIGgyKTtcbiAgICAgIGIgPSBodWUycmdiKHAs\nIHEsIGgyIC0gMSBcLyAzKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgcjogciAqIDI1NSwgZzogZyAq\nIDI1NSwgYjogYiAqIDI1NSB9O1xuICB9XG4gIGZ1bmN0aW9uIHJnYlRvSHN2KHIsIGcsIGIpIHtc\nbiAgICByID0gYm91bmQwMShyLCAyNTUpO1xuICAgIGcgPSBib3VuZDAxKGcsIDI1NSk7XG4gICAg\nYiA9IGJvdW5kMDEoYiwgMjU1KTtcbiAgICB2YXIgbWF4ID0gTWF0aC5tYXgociwgZywgYik7XG4g\nICAgdmFyIG1pbiA9IE1hdGgubWluKHIsIGcsIGIpO1xuICAgIHZhciBoMiA9IDA7XG4gICAgdmFy\nIHYgPSBtYXg7XG4gICAgdmFyIGQgPSBtYXggLSBtaW47XG4gICAgdmFyIHMgPSBtYXggPT09IDAg\nPyAwIDogZCBcLyBtYXg7XG4gICAgaWYgKG1heCA9PT0gbWluKSB7XG4gICAgICBoMiA9IDA7XG4g\nICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAobWF4KSB7XG4gICAgICAgIGNhc2UgcjpcbiAgICAg\nICAgICBoMiA9IChnIC0gYikgXC8gZCArIChnIDwgYiA\/IDYgOiAwKTtcbiAgICAgICAgICBicmVh\naztcbiAgICAgICAgY2FzZSBnOlxuICAgICAgICAgIGgyID0gKGIgLSByKSBcLyBkICsgMjtcbiAg\nICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBiOlxuICAgICAgICAgIGgyID0gKHIgLSBnKSBc\nLyBkICsgNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGgyIFwvPSA2O1xuICAg\nIH1cbiAgICByZXR1cm4geyBoOiBoMiwgcywgdiB9O1xuICB9XG4gIGZ1bmN0aW9uIGhzdlRvUmdi\nKGgyLCBzLCB2KSB7XG4gICAgaDIgPSBib3VuZDAxKGgyLCAzNjApICogNjtcbiAgICBzID0gYm91\nbmQwMShzLCAxMDApO1xuICAgIHYgPSBib3VuZDAxKHYsIDEwMCk7XG4gICAgdmFyIGkgPSBNYXRo\nLmZsb29yKGgyKTtcbiAgICB2YXIgZiA9IGgyIC0gaTtcbiAgICB2YXIgcCA9IHYgKiAoMSAtIHMp\nO1xuICAgIHZhciBxID0gdiAqICgxIC0gZiAqIHMpO1xuICAgIHZhciB0ID0gdiAqICgxIC0gKDEg\nLSBmKSAqIHMpO1xuICAgIHZhciBtb2QgPSBpICUgNjtcbiAgICB2YXIgciA9IFt2LCBxLCBwLCBw\nLCB0LCB2XVttb2RdO1xuICAgIHZhciBnID0gW3QsIHYsIHYsIHEsIHAsIHBdW21vZF07XG4gICAg\ndmFyIGIgPSBbcCwgcCwgdCwgdiwgdiwgcV1bbW9kXTtcbiAgICByZXR1cm4geyByOiByICogMjU1\nLCBnOiBnICogMjU1LCBiOiBiICogMjU1IH07XG4gIH1cbiAgZnVuY3Rpb24gcmdiVG9IZXgociwg\nZywgYiwgYWxsb3czQ2hhcikge1xuICAgIHZhciBoZXggPSBbXG4gICAgICBwYWQyKE1hdGgucm91\nbmQocikudG9TdHJpbmcoMTYpKSxcbiAgICAgIHBhZDIoTWF0aC5yb3VuZChnKS50b1N0cmluZygx\nNikpLFxuICAgICAgcGFkMihNYXRoLnJvdW5kKGIpLnRvU3RyaW5nKDE2KSlcbiAgICBdO1xuICAg\nIGlmIChhbGxvdzNDaGFyICYmIGhleFswXS5zdGFydHNXaXRoKGhleFswXS5jaGFyQXQoMSkpICYm\nIGhleFsxXS5zdGFydHNXaXRoKGhleFsxXS5jaGFyQXQoMSkpICYmIGhleFsyXS5zdGFydHNXaXRo\nKGhleFsyXS5jaGFyQXQoMSkpKSB7XG4gICAgICByZXR1cm4gaGV4WzBdLmNoYXJBdCgwKSArIGhl\neFsxXS5jaGFyQXQoMCkgKyBoZXhbMl0uY2hhckF0KDApO1xuICAgIH1cbiAgICByZXR1cm4gaGV4\nLmpvaW4oXCJcIik7XG4gIH1cbiAgZnVuY3Rpb24gcmdiYVRvSGV4KHIsIGcsIGIsIGEsIGFsbG93\nNENoYXIpIHtcbiAgICB2YXIgaGV4ID0gW1xuICAgICAgcGFkMihNYXRoLnJvdW5kKHIpLnRvU3Ry\naW5nKDE2KSksXG4gICAgICBwYWQyKE1hdGgucm91bmQoZykudG9TdHJpbmcoMTYpKSxcbiAgICAg\nIHBhZDIoTWF0aC5yb3VuZChiKS50b1N0cmluZygxNikpLFxuICAgICAgcGFkMihjb252ZXJ0RGVj\naW1hbFRvSGV4KGEpKVxuICAgIF07XG4gICAgaWYgKGFsbG93NENoYXIgJiYgaGV4WzBdLnN0YXJ0\nc1dpdGgoaGV4WzBdLmNoYXJBdCgxKSkgJiYgaGV4WzFdLnN0YXJ0c1dpdGgoaGV4WzFdLmNoYXJB\ndCgxKSkgJiYgaGV4WzJdLnN0YXJ0c1dpdGgoaGV4WzJdLmNoYXJBdCgxKSkgJiYgaGV4WzNdLnN0\nYXJ0c1dpdGgoaGV4WzNdLmNoYXJBdCgxKSkpIHtcbiAgICAgIHJldHVybiBoZXhbMF0uY2hhckF0\nKDApICsgaGV4WzFdLmNoYXJBdCgwKSArIGhleFsyXS5jaGFyQXQoMCkgKyBoZXhbM10uY2hhckF0\nKDApO1xuICAgIH1cbiAgICByZXR1cm4gaGV4LmpvaW4oXCJcIik7XG4gIH1cbiAgZnVuY3Rpb24g\nY29udmVydERlY2ltYWxUb0hleChkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9h\ndChkKSAqIDI1NSkudG9TdHJpbmcoMTYpO1xuICB9XG4gIGZ1bmN0aW9uIGNvbnZlcnRIZXhUb0Rl\nY2ltYWwoaDIpIHtcbiAgICByZXR1cm4gcGFyc2VJbnRGcm9tSGV4KGgyKSBcLyAyNTU7XG4gIH1c\nbiAgZnVuY3Rpb24gcGFyc2VJbnRGcm9tSGV4KHZhbCkge1xuICAgIHJldHVybiBwYXJzZUludCh2\nYWwsIDE2KTtcbiAgfVxuICBmdW5jdGlvbiBudW1iZXJJbnB1dFRvT2JqZWN0KGNvbG9yKSB7XG4g\nICAgcmV0dXJuIHtcbiAgICAgIHI6IGNvbG9yID4+IDE2LFxuICAgICAgZzogKGNvbG9yICYgNjUy\nODApID4+IDgsXG4gICAgICBiOiBjb2xvciAmIDI1NVxuICAgIH07XG4gIH1cbiAgdmFyIG5hbWVz\nID0ge1xuICAgIGFsaWNlYmx1ZTogXCIjZjBmOGZmXCIsXG4gICAgYW50aXF1ZXdoaXRlOiBcIiNm\nYWViZDdcIixcbiAgICBhcXVhOiBcIiMwMGZmZmZcIixcbiAgICBhcXVhbWFyaW5lOiBcIiM3ZmZm\nZDRcIixcbiAgICBhenVyZTogXCIjZjBmZmZmXCIsXG4gICAgYmVpZ2U6IFwiI2Y1ZjVkY1wiLFxu\nICAgIGJpc3F1ZTogXCIjZmZlNGM0XCIsXG4gICAgYmxhY2s6IFwiIzAwMDAwMFwiLFxuICAgIGJs\nYW5jaGVkYWxtb25kOiBcIiNmZmViY2RcIixcbiAgICBibHVlOiBcIiMwMDAwZmZcIixcbiAgICBi\nbHVldmlvbGV0OiBcIiM4YTJiZTJcIixcbiAgICBicm93bjogXCIjYTUyYTJhXCIsXG4gICAgYnVy\nbHl3b29kOiBcIiNkZWI4ODdcIixcbiAgICBjYWRldGJsdWU6IFwiIzVmOWVhMFwiLFxuICAgIGNo\nYXJ0cmV1c2U6IFwiIzdmZmYwMFwiLFxuICAgIGNob2NvbGF0ZTogXCIjZDI2OTFlXCIsXG4gICAg\nY29yYWw6IFwiI2ZmN2Y1MFwiLFxuICAgIGNvcm5mbG93ZXJibHVlOiBcIiM2NDk1ZWRcIixcbiAg\nICBjb3Juc2lsazogXCIjZmZmOGRjXCIsXG4gICAgY3JpbXNvbjogXCIjZGMxNDNjXCIsXG4gICAg\nY3lhbjogXCIjMDBmZmZmXCIsXG4gICAgZGFya2JsdWU6IFwiIzAwMDA4YlwiLFxuICAgIGRhcmtj\neWFuOiBcIiMwMDhiOGJcIixcbiAgICBkYXJrZ29sZGVucm9kOiBcIiNiODg2MGJcIixcbiAgICBk\nYXJrZ3JheTogXCIjYTlhOWE5XCIsXG4gICAgZGFya2dyZWVuOiBcIiMwMDY0MDBcIixcbiAgICBk\nYXJrZ3JleTogXCIjYTlhOWE5XCIsXG4gICAgZGFya2toYWtpOiBcIiNiZGI3NmJcIixcbiAgICBk\nYXJrbWFnZW50YTogXCIjOGIwMDhiXCIsXG4gICAgZGFya29saXZlZ3JlZW46IFwiIzU1NmIyZlwi\nLFxuICAgIGRhcmtvcmFuZ2U6IFwiI2ZmOGMwMFwiLFxuICAgIGRhcmtvcmNoaWQ6IFwiIzk5MzJj\nY1wiLFxuICAgIGRhcmtyZWQ6IFwiIzhiMDAwMFwiLFxuICAgIGRhcmtzYWxtb246IFwiI2U5OTY3\nYVwiLFxuICAgIGRhcmtzZWFncmVlbjogXCIjOGZiYzhmXCIsXG4gICAgZGFya3NsYXRlYmx1ZTog\nXCIjNDgzZDhiXCIsXG4gICAgZGFya3NsYXRlZ3JheTogXCIjMmY0ZjRmXCIsXG4gICAgZGFya3Ns\nYXRlZ3JleTogXCIjMmY0ZjRmXCIsXG4gICAgZGFya3R1cnF1b2lzZTogXCIjMDBjZWQxXCIsXG4g\nICAgZGFya3Zpb2xldDogXCIjOTQwMGQzXCIsXG4gICAgZGVlcHBpbms6IFwiI2ZmMTQ5M1wiLFxu\nICAgIGRlZXBza3libHVlOiBcIiMwMGJmZmZcIixcbiAgICBkaW1ncmF5OiBcIiM2OTY5NjlcIixc\nbiAgICBkaW1ncmV5OiBcIiM2OTY5NjlcIixcbiAgICBkb2RnZXJibHVlOiBcIiMxZTkwZmZcIixc\nbiAgICBmaXJlYnJpY2s6IFwiI2IyMjIyMlwiLFxuICAgIGZsb3JhbHdoaXRlOiBcIiNmZmZhZjBc\nIixcbiAgICBmb3Jlc3RncmVlbjogXCIjMjI4YjIyXCIsXG4gICAgZnVjaHNpYTogXCIjZmYwMGZm\nXCIsXG4gICAgZ2FpbnNib3JvOiBcIiNkY2RjZGNcIixcbiAgICBnaG9zdHdoaXRlOiBcIiNmOGY4\nZmZcIixcbiAgICBnb2xkZW5yb2Q6IFwiI2RhYTUyMFwiLFxuICAgIGdvbGQ6IFwiI2ZmZDcwMFwi\nLFxuICAgIGdyYXk6IFwiIzgwODA4MFwiLFxuICAgIGdyZWVuOiBcIiMwMDgwMDBcIixcbiAgICBn\ncmVlbnllbGxvdzogXCIjYWRmZjJmXCIsXG4gICAgZ3JleTogXCIjODA4MDgwXCIsXG4gICAgaG9u\nZXlkZXc6IFwiI2YwZmZmMFwiLFxuICAgIGhvdHBpbms6IFwiI2ZmNjliNFwiLFxuICAgIGluZGlh\nbnJlZDogXCIjY2Q1YzVjXCIsXG4gICAgaW5kaWdvOiBcIiM0YjAwODJcIixcbiAgICBpdm9yeTog\nXCIjZmZmZmYwXCIsXG4gICAga2hha2k6IFwiI2YwZTY4Y1wiLFxuICAgIGxhdmVuZGVyYmx1c2g6\nIFwiI2ZmZjBmNVwiLFxuICAgIGxhdmVuZGVyOiBcIiNlNmU2ZmFcIixcbiAgICBsYXduZ3JlZW46\nIFwiIzdjZmMwMFwiLFxuICAgIGxlbW9uY2hpZmZvbjogXCIjZmZmYWNkXCIsXG4gICAgbGlnaHRi\nbHVlOiBcIiNhZGQ4ZTZcIixcbiAgICBsaWdodGNvcmFsOiBcIiNmMDgwODBcIixcbiAgICBsaWdo\ndGN5YW46IFwiI2UwZmZmZlwiLFxuICAgIGxpZ2h0Z29sZGVucm9keWVsbG93OiBcIiNmYWZhZDJc\nIixcbiAgICBsaWdodGdyYXk6IFwiI2QzZDNkM1wiLFxuICAgIGxpZ2h0Z3JlZW46IFwiIzkwZWU5\nMFwiLFxuICAgIGxpZ2h0Z3JleTogXCIjZDNkM2QzXCIsXG4gICAgbGlnaHRwaW5rOiBcIiNmZmI2\nYzFcIixcbiAgICBsaWdodHNhbG1vbjogXCIjZmZhMDdhXCIsXG4gICAgbGlnaHRzZWFncmVlbjog\nXCIjMjBiMmFhXCIsXG4gICAgbGlnaHRza3libHVlOiBcIiM4N2NlZmFcIixcbiAgICBsaWdodHNs\nYXRlZ3JheTogXCIjNzc4ODk5XCIsXG4gICAgbGlnaHRzbGF0ZWdyZXk6IFwiIzc3ODg5OVwiLFxu\nICAgIGxpZ2h0c3RlZWxibHVlOiBcIiNiMGM0ZGVcIixcbiAgICBsaWdodHllbGxvdzogXCIjZmZm\nZmUwXCIsXG4gICAgbGltZTogXCIjMDBmZjAwXCIsXG4gICAgbGltZWdyZWVuOiBcIiMzMmNkMzJc\nIixcbiAgICBsaW5lbjogXCIjZmFmMGU2XCIsXG4gICAgbWFnZW50YTogXCIjZmYwMGZmXCIsXG4g\nICAgbWFyb29uOiBcIiM4MDAwMDBcIixcbiAgICBtZWRpdW1hcXVhbWFyaW5lOiBcIiM2NmNkYWFc\nIixcbiAgICBtZWRpdW1ibHVlOiBcIiMwMDAwY2RcIixcbiAgICBtZWRpdW1vcmNoaWQ6IFwiI2Jh\nNTVkM1wiLFxuICAgIG1lZGl1bXB1cnBsZTogXCIjOTM3MGRiXCIsXG4gICAgbWVkaXVtc2VhZ3Jl\nZW46IFwiIzNjYjM3MVwiLFxuICAgIG1lZGl1bXNsYXRlYmx1ZTogXCIjN2I2OGVlXCIsXG4gICAg\nbWVkaXVtc3ByaW5nZ3JlZW46IFwiIzAwZmE5YVwiLFxuICAgIG1lZGl1bXR1cnF1b2lzZTogXCIj\nNDhkMWNjXCIsXG4gICAgbWVkaXVtdmlvbGV0cmVkOiBcIiNjNzE1ODVcIixcbiAgICBtaWRuaWdo\ndGJsdWU6IFwiIzE5MTk3MFwiLFxuICAgIG1pbnRjcmVhbTogXCIjZjVmZmZhXCIsXG4gICAgbWlz\ndHlyb3NlOiBcIiNmZmU0ZTFcIixcbiAgICBtb2NjYXNpbjogXCIjZmZlNGI1XCIsXG4gICAgbmF2\nYWpvd2hpdGU6IFwiI2ZmZGVhZFwiLFxuICAgIG5hdnk6IFwiIzAwMDA4MFwiLFxuICAgIG9sZGxh\nY2U6IFwiI2ZkZjVlNlwiLFxuICAgIG9saXZlOiBcIiM4MDgwMDBcIixcbiAgICBvbGl2ZWRyYWI6\nIFwiIzZiOGUyM1wiLFxuICAgIG9yYW5nZTogXCIjZmZhNTAwXCIsXG4gICAgb3JhbmdlcmVkOiBc\nIiNmZjQ1MDBcIixcbiAgICBvcmNoaWQ6IFwiI2RhNzBkNlwiLFxuICAgIHBhbGVnb2xkZW5yb2Q6\nIFwiI2VlZThhYVwiLFxuICAgIHBhbGVncmVlbjogXCIjOThmYjk4XCIsXG4gICAgcGFsZXR1cnF1\nb2lzZTogXCIjYWZlZWVlXCIsXG4gICAgcGFsZXZpb2xldHJlZDogXCIjZGI3MDkzXCIsXG4gICAg\ncGFwYXlhd2hpcDogXCIjZmZlZmQ1XCIsXG4gICAgcGVhY2hwdWZmOiBcIiNmZmRhYjlcIixcbiAg\nICBwZXJ1OiBcIiNjZDg1M2ZcIixcbiAgICBwaW5rOiBcIiNmZmMwY2JcIixcbiAgICBwbHVtOiBc\nIiNkZGEwZGRcIixcbiAgICBwb3dkZXJibHVlOiBcIiNiMGUwZTZcIixcbiAgICBwdXJwbGU6IFwi\nIzgwMDA4MFwiLFxuICAgIHJlYmVjY2FwdXJwbGU6IFwiIzY2MzM5OVwiLFxuICAgIHJlZDogXCIj\nZmYwMDAwXCIsXG4gICAgcm9zeWJyb3duOiBcIiNiYzhmOGZcIixcbiAgICByb3lhbGJsdWU6IFwi\nIzQxNjllMVwiLFxuICAgIHNhZGRsZWJyb3duOiBcIiM4YjQ1MTNcIixcbiAgICBzYWxtb246IFwi\nI2ZhODA3MlwiLFxuICAgIHNhbmR5YnJvd246IFwiI2Y0YTQ2MFwiLFxuICAgIHNlYWdyZWVuOiBc\nIiMyZThiNTdcIixcbiAgICBzZWFzaGVsbDogXCIjZmZmNWVlXCIsXG4gICAgc2llbm5hOiBcIiNh\nMDUyMmRcIixcbiAgICBzaWx2ZXI6IFwiI2MwYzBjMFwiLFxuICAgIHNreWJsdWU6IFwiIzg3Y2Vl\nYlwiLFxuICAgIHNsYXRlYmx1ZTogXCIjNmE1YWNkXCIsXG4gICAgc2xhdGVncmF5OiBcIiM3MDgw\nOTBcIixcbiAgICBzbGF0ZWdyZXk6IFwiIzcwODA5MFwiLFxuICAgIHNub3c6IFwiI2ZmZmFmYVwi\nLFxuICAgIHNwcmluZ2dyZWVuOiBcIiMwMGZmN2ZcIixcbiAgICBzdGVlbGJsdWU6IFwiIzQ2ODJi\nNFwiLFxuICAgIHRhbjogXCIjZDJiNDhjXCIsXG4gICAgdGVhbDogXCIjMDA4MDgwXCIsXG4gICAg\ndGhpc3RsZTogXCIjZDhiZmQ4XCIsXG4gICAgdG9tYXRvOiBcIiNmZjYzNDdcIixcbiAgICB0dXJx\ndW9pc2U6IFwiIzQwZTBkMFwiLFxuICAgIHZpb2xldDogXCIjZWU4MmVlXCIsXG4gICAgd2hlYXQ6\nIFwiI2Y1ZGViM1wiLFxuICAgIHdoaXRlOiBcIiNmZmZmZmZcIixcbiAgICB3aGl0ZXNtb2tlOiBc\nIiNmNWY1ZjVcIixcbiAgICB5ZWxsb3c6IFwiI2ZmZmYwMFwiLFxuICAgIHllbGxvd2dyZWVuOiBc\nIiM5YWNkMzJcIlxuICB9O1xuICBmdW5jdGlvbiBpbnB1dFRvUkdCKGNvbG9yKSB7XG4gICAgdmFy\nIHJnYiA9IHsgcjogMCwgZzogMCwgYjogMCB9O1xuICAgIHZhciBhID0gMTtcbiAgICB2YXIgcyA9\nIG51bGw7XG4gICAgdmFyIHYgPSBudWxsO1xuICAgIHZhciBsID0gbnVsbDtcbiAgICB2YXIgb2sg\nPSBmYWxzZTtcbiAgICB2YXIgZm9ybWF0ID0gZmFsc2U7XG4gICAgaWYgKHR5cGVvZiBjb2xvciA9\nPT0gXCJzdHJpbmdcIikge1xuICAgICAgY29sb3IgPSBzdHJpbmdJbnB1dFRvT2JqZWN0KGNvbG9y\nKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBjb2xvciA9PT0gXCJvYmplY3RcIikge1xuICAgICAg\naWYgKGlzVmFsaWRDU1NVbml0KGNvbG9yLnIpICYmIGlzVmFsaWRDU1NVbml0KGNvbG9yLmcpICYm\nIGlzVmFsaWRDU1NVbml0KGNvbG9yLmIpKSB7XG4gICAgICAgIHJnYiA9IHJnYlRvUmdiKGNvbG9y\nLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICBvayA9IHRydWU7XG4gICAgICAgIGZvcm1h\ndCA9IFN0cmluZyhjb2xvci5yKS5zdWJzdHIoLTEpID09PSBcIiVcIiA\/IFwicHJnYlwiIDogXCJy\nZ2JcIjtcbiAgICAgIH0gZWxzZSBpZiAoaXNWYWxpZENTU1VuaXQoY29sb3IuaCkgJiYgaXNWYWxp\nZENTU1VuaXQoY29sb3IucykgJiYgaXNWYWxpZENTU1VuaXQoY29sb3IudikpIHtcbiAgICAgICAg\ncyA9IGNvbnZlcnRUb1BlcmNlbnRhZ2UoY29sb3Iucyk7XG4gICAgICAgIHYgPSBjb252ZXJ0VG9Q\nZXJjZW50YWdlKGNvbG9yLnYpO1xuICAgICAgICByZ2IgPSBoc3ZUb1JnYihjb2xvci5oLCBzLCB2\nKTtcbiAgICAgICAgb2sgPSB0cnVlO1xuICAgICAgICBmb3JtYXQgPSBcImhzdlwiO1xuICAgICAg\nfSBlbHNlIGlmIChpc1ZhbGlkQ1NTVW5pdChjb2xvci5oKSAmJiBpc1ZhbGlkQ1NTVW5pdChjb2xv\nci5zKSAmJiBpc1ZhbGlkQ1NTVW5pdChjb2xvci5sKSkge1xuICAgICAgICBzID0gY29udmVydFRv\nUGVyY2VudGFnZShjb2xvci5zKTtcbiAgICAgICAgbCA9IGNvbnZlcnRUb1BlcmNlbnRhZ2UoY29s\nb3IubCk7XG4gICAgICAgIHJnYiA9IGhzbFRvUmdiKGNvbG9yLmgsIHMsIGwpO1xuICAgICAgICBv\nayA9IHRydWU7XG4gICAgICAgIGZvcm1hdCA9IFwiaHNsXCI7XG4gICAgICB9XG4gICAgICBpZiAo\nT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbG9yLCBcImFcIikpIHtcbiAg\nICAgICAgYSA9IGNvbG9yLmE7XG4gICAgICB9XG4gICAgfVxuICAgIGEgPSBib3VuZEFscGhhKGEp\nO1xuICAgIHJldHVybiB7XG4gICAgICBvayxcbiAgICAgIGZvcm1hdDogY29sb3IuZm9ybWF0IHx8\nIGZvcm1hdCxcbiAgICAgIHI6IE1hdGgubWluKDI1NSwgTWF0aC5tYXgocmdiLnIsIDApKSxcbiAg\nICAgIGc6IE1hdGgubWluKDI1NSwgTWF0aC5tYXgocmdiLmcsIDApKSxcbiAgICAgIGI6IE1hdGgu\nbWluKDI1NSwgTWF0aC5tYXgocmdiLmIsIDApKSxcbiAgICAgIGFcbiAgICB9O1xuICB9XG4gIHZh\nciBDU1NfSU5URUdFUiA9IFwiWy1cXFxcK10\/XFxcXGQrJT9cIjtcbiAgdmFyIENTU19OVU1CRVIg\nPSBcIlstXFxcXCtdP1xcXFxkKlxcXFwuXFxcXGQrJT9cIjtcbiAgdmFyIENTU19VTklUID0gXCIo\nPzpcIi5jb25jYXQoQ1NTX05VTUJFUiwgXCIpfCg\/OlwiKS5jb25jYXQoQ1NTX0lOVEVHRVIsIFwi\nKVwiKTtcbiAgdmFyIFBFUk1JU1NJVkVfTUFUQ0gzID0gXCJbXFxcXHN8XFxcXChdKyhcIi5jb25j\nYXQoQ1NTX1VOSVQsIFwiKVssfFxcXFxzXSsoXCIpLmNvbmNhdChDU1NfVU5JVCwgXCIpWyx8XFxc\nXHNdKyhcIikuY29uY2F0KENTU19VTklULCBcIilcXFxccypcXFxcKT9cIik7XG4gIHZhciBQRVJN\nSVNTSVZFX01BVENINCA9IFwiW1xcXFxzfFxcXFwoXSsoXCIuY29uY2F0KENTU19VTklULCBcIilb\nLHxcXFxcc10rKFwiKS5jb25jYXQoQ1NTX1VOSVQsIFwiKVssfFxcXFxzXSsoXCIpLmNvbmNhdChD\nU1NfVU5JVCwgXCIpWyx8XFxcXHNdKyhcIikuY29uY2F0KENTU19VTklULCBcIilcXFxccypcXFxc\nKT9cIik7XG4gIHZhciBtYXRjaGVycyA9IHtcbiAgICBDU1NfVU5JVDogbmV3IFJlZ0V4cChDU1Nf\nVU5JVCksXG4gICAgcmdiOiBuZXcgUmVnRXhwKFwicmdiXCIgKyBQRVJNSVNTSVZFX01BVENIMyks\nXG4gICAgcmdiYTogbmV3IFJlZ0V4cChcInJnYmFcIiArIFBFUk1JU1NJVkVfTUFUQ0g0KSxcbiAg\nICBoc2w6IG5ldyBSZWdFeHAoXCJoc2xcIiArIFBFUk1JU1NJVkVfTUFUQ0gzKSxcbiAgICBoc2xh\nOiBuZXcgUmVnRXhwKFwiaHNsYVwiICsgUEVSTUlTU0lWRV9NQVRDSDQpLFxuICAgIGhzdjogbmV3\nIFJlZ0V4cChcImhzdlwiICsgUEVSTUlTU0lWRV9NQVRDSDMpLFxuICAgIGhzdmE6IG5ldyBSZWdF\neHAoXCJoc3ZhXCIgKyBQRVJNSVNTSVZFX01BVENINCksXG4gICAgaGV4MzogXC9eIz8oWzAtOWEt\nZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkXC8sXG4gICAgaGV4Njog\nXC9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkXC8s\nXG4gICAgaGV4NDogXC9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1m\nQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJFwvLFxuICAgIGhleDg6IFwvXiM\/KFswLTlhLWZBLUZd\nezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSRcL1xu\nICB9O1xuICBmdW5jdGlvbiBzdHJpbmdJbnB1dFRvT2JqZWN0KGNvbG9yKSB7XG4gICAgY29sb3Ig\nPSBjb2xvci50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAoY29sb3IubGVuZ3RoID09PSAw\nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHZhciBuYW1lZCA9IGZhbHNlO1xu\nICAgIGlmIChuYW1lc1tjb2xvcl0pIHtcbiAgICAgIGNvbG9yID0gbmFtZXNbY29sb3JdO1xuICAg\nICAgbmFtZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoY29sb3IgPT09IFwidHJhbnNwYXJlbnRc\nIikge1xuICAgICAgcmV0dXJuIHsgcjogMCwgZzogMCwgYjogMCwgYTogMCwgZm9ybWF0OiBcIm5h\nbWVcIiB9O1xuICAgIH1cbiAgICB2YXIgbWF0Y2ggPSBtYXRjaGVycy5yZ2IuZXhlYyhjb2xvcik7\nXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4geyByOiBtYXRjaFsxXSwgZzogbWF0Y2hb\nMl0sIGI6IG1hdGNoWzNdIH07XG4gICAgfVxuICAgIG1hdGNoID0gbWF0Y2hlcnMucmdiYS5leGVj\nKGNvbG9yKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiB7IHI6IG1hdGNoWzFdLCBn\nOiBtYXRjaFsyXSwgYjogbWF0Y2hbM10sIGE6IG1hdGNoWzRdIH07XG4gICAgfVxuICAgIG1hdGNo\nID0gbWF0Y2hlcnMuaHNsLmV4ZWMoY29sb3IpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgcmV0\ndXJuIHsgaDogbWF0Y2hbMV0sIHM6IG1hdGNoWzJdLCBsOiBtYXRjaFszXSB9O1xuICAgIH1cbiAg\nICBtYXRjaCA9IG1hdGNoZXJzLmhzbGEuZXhlYyhjb2xvcik7XG4gICAgaWYgKG1hdGNoKSB7XG4g\nICAgICByZXR1cm4geyBoOiBtYXRjaFsxXSwgczogbWF0Y2hbMl0sIGw6IG1hdGNoWzNdLCBhOiBt\nYXRjaFs0XSB9O1xuICAgIH1cbiAgICBtYXRjaCA9IG1hdGNoZXJzLmhzdi5leGVjKGNvbG9yKTtc\nbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIHJldHVybiB7IGg6IG1hdGNoWzFdLCBzOiBtYXRjaFsy\nXSwgdjogbWF0Y2hbM10gfTtcbiAgICB9XG4gICAgbWF0Y2ggPSBtYXRjaGVycy5oc3ZhLmV4ZWMo\nY29sb3IpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgcmV0dXJuIHsgaDogbWF0Y2hbMV0sIHM6\nIG1hdGNoWzJdLCB2OiBtYXRjaFszXSwgYTogbWF0Y2hbNF0gfTtcbiAgICB9XG4gICAgbWF0Y2gg\nPSBtYXRjaGVycy5oZXg4LmV4ZWMoY29sb3IpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgcmV0\ndXJuIHtcbiAgICAgICAgcjogcGFyc2VJbnRGcm9tSGV4KG1hdGNoWzFdKSxcbiAgICAgICAgZzog\ncGFyc2VJbnRGcm9tSGV4KG1hdGNoWzJdKSxcbiAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1h\ndGNoWzNdKSxcbiAgICAgICAgYTogY29udmVydEhleFRvRGVjaW1hbChtYXRjaFs0XSksXG4gICAg\nICAgIGZvcm1hdDogbmFtZWQgPyBcIm5hbWVcIiA6IFwiaGV4OFwiXG4gICAgICB9O1xuICAgIH1c\nbiAgICBtYXRjaCA9IG1hdGNoZXJzLmhleDYuZXhlYyhjb2xvcik7XG4gICAgaWYgKG1hdGNoKSB7\nXG4gICAgICByZXR1cm4ge1xuICAgICAgICByOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMV0pLFxu\nICAgICAgICBnOiBwYXJzZUludEZyb21IZXgobWF0Y2hbMl0pLFxuICAgICAgICBiOiBwYXJzZUlu\ndEZyb21IZXgobWF0Y2hbM10pLFxuICAgICAgICBmb3JtYXQ6IG5hbWVkID8gXCJuYW1lXCIgOiBc\nImhleFwiXG4gICAgICB9O1xuICAgIH1cbiAgICBtYXRjaCA9IG1hdGNoZXJzLmhleDQuZXhlYyhj\nb2xvcik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByOiBwYXJz\nZUludEZyb21IZXgobWF0Y2hbMV0gKyBtYXRjaFsxXSksXG4gICAgICAgIGc6IHBhcnNlSW50RnJv\nbUhleChtYXRjaFsyXSArIG1hdGNoWzJdKSxcbiAgICAgICAgYjogcGFyc2VJbnRGcm9tSGV4KG1h\ndGNoWzNdICsgbWF0Y2hbM10pLFxuICAgICAgICBhOiBjb252ZXJ0SGV4VG9EZWNpbWFsKG1hdGNo\nWzRdICsgbWF0Y2hbNF0pLFxuICAgICAgICBmb3JtYXQ6IG5hbWVkID8gXCJuYW1lXCIgOiBcImhl\neDhcIlxuICAgICAgfTtcbiAgICB9XG4gICAgbWF0Y2ggPSBtYXRjaGVycy5oZXgzLmV4ZWMoY29s\nb3IpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcjogcGFyc2VJ\nbnRGcm9tSGV4KG1hdGNoWzFdICsgbWF0Y2hbMV0pLFxuICAgICAgICBnOiBwYXJzZUludEZyb21I\nZXgobWF0Y2hbMl0gKyBtYXRjaFsyXSksXG4gICAgICAgIGI6IHBhcnNlSW50RnJvbUhleChtYXRj\naFszXSArIG1hdGNoWzNdKSxcbiAgICAgICAgZm9ybWF0OiBuYW1lZCA\/IFwibmFtZVwiIDogXCJo\nZXhcIlxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGZ1bmN0aW9u\nIGlzVmFsaWRDU1NVbml0KGNvbG9yKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4obWF0Y2hlcnMuQ1NT\nX1VOSVQuZXhlYyhTdHJpbmcoY29sb3IpKSk7XG4gIH1cbiAgdmFyIFRpbnlDb2xvciA9IChcbiAg\nICBcLyoqIEBjbGFzcyAqXC9cbiAgICBmdW5jdGlvbigpIHtcbiAgICAgIGZ1bmN0aW9uIFRpbnlD\nb2xvcjIoY29sb3IsIG9wdHMpIHtcbiAgICAgICAgaWYgKGNvbG9yID09PSB2b2lkIDApIHtcbiAg\nICAgICAgICBjb2xvciA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdHMgPT09IHZv\naWQgMCkge1xuICAgICAgICAgIG9wdHMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgX2Ez\nO1xuICAgICAgICBpZiAoY29sb3IgaW5zdGFuY2VvZiBUaW55Q29sb3IyKSB7XG4gICAgICAgICAg\ncmV0dXJuIGNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgY29sb3IgPT09IFwi\nbnVtYmVyXCIpIHtcbiAgICAgICAgICBjb2xvciA9IG51bWJlcklucHV0VG9PYmplY3QoY29sb3Ip\nO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnB1dCA9IGNvbG9yO1xuICAgICAg\nICB2YXIgcmdiID0gaW5wdXRUb1JHQihjb2xvcik7XG4gICAgICAgIHRoaXMub3JpZ2luYWxJbnB1\ndCA9IGNvbG9yO1xuICAgICAgICB0aGlzLnIgPSByZ2IucjtcbiAgICAgICAgdGhpcy5nID0gcmdi\nLmc7XG4gICAgICAgIHRoaXMuYiA9IHJnYi5iO1xuICAgICAgICB0aGlzLmEgPSByZ2IuYTtcbiAg\nICAgICAgdGhpcy5yb3VuZEEgPSBNYXRoLnJvdW5kKDEwMCAqIHRoaXMuYSkgXC8gMTAwO1xuICAg\nICAgICB0aGlzLmZvcm1hdCA9IChfYTMgPSBvcHRzLmZvcm1hdCkgIT09IG51bGwgJiYgX2EzICE9\nPSB2b2lkIDAgPyBfYTMgOiByZ2IuZm9ybWF0O1xuICAgICAgICB0aGlzLmdyYWRpZW50VHlwZSA9\nIG9wdHMuZ3JhZGllbnRUeXBlO1xuICAgICAgICBpZiAodGhpcy5yIDwgMSkge1xuICAgICAgICAg\nIHRoaXMuciA9IE1hdGgucm91bmQodGhpcy5yKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhp\ncy5nIDwgMSkge1xuICAgICAgICAgIHRoaXMuZyA9IE1hdGgucm91bmQodGhpcy5nKTtcbiAgICAg\nICAgfVxuICAgICAgICBpZiAodGhpcy5iIDwgMSkge1xuICAgICAgICAgIHRoaXMuYiA9IE1hdGgu\ncm91bmQodGhpcy5iKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzVmFsaWQgPSByZ2Iub2s7\nXG4gICAgICB9XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS5pc0RhcmsgPSBmdW5jdGlvbigp\nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpIDwgMTI4O1xuICAgICAgfTtc\nbiAgICAgIFRpbnlDb2xvcjIucHJvdG90eXBlLmlzTGlnaHQgPSBmdW5jdGlvbigpIHtcbiAgICAg\nICAgcmV0dXJuICF0aGlzLmlzRGFyaygpO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJv\ndG90eXBlLmdldEJyaWdodG5lc3MgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJnYiA9IHRo\naXMudG9SZ2IoKTtcbiAgICAgICAgcmV0dXJuIChyZ2IuciAqIDI5OSArIHJnYi5nICogNTg3ICsg\ncmdiLmIgKiAxMTQpIFwvIDFlMztcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlw\nZS5nZXRMdW1pbmFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJnYiA9IHRoaXMudG9S\nZ2IoKTtcbiAgICAgICAgdmFyIFI7XG4gICAgICAgIHZhciBHO1xuICAgICAgICB2YXIgQjtcbiAg\nICAgICAgdmFyIFJzUkdCID0gcmdiLnIgXC8gMjU1O1xuICAgICAgICB2YXIgR3NSR0IgPSByZ2Iu\nZyBcLyAyNTU7XG4gICAgICAgIHZhciBCc1JHQiA9IHJnYi5iIFwvIDI1NTtcbiAgICAgICAgaWYg\nKFJzUkdCIDw9IDAuMDM5MjgpIHtcbiAgICAgICAgICBSID0gUnNSR0IgXC8gMTIuOTI7XG4gICAg\nICAgIH0gZWxzZSB7XG4gICAgICAgICAgUiA9IE1hdGgucG93KChSc1JHQiArIDAuMDU1KSBcLyAx\nLjA1NSwgMi40KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoR3NSR0IgPD0gMC4wMzkyOCkge1xu\nICAgICAgICAgIEcgPSBHc1JHQiBcLyAxMi45MjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICBHID0gTWF0aC5wb3coKEdzUkdCICsgMC4wNTUpIFwvIDEuMDU1LCAyLjQpO1xuICAgICAgICB9\nXG4gICAgICAgIGlmIChCc1JHQiA8PSAwLjAzOTI4KSB7XG4gICAgICAgICAgQiA9IEJzUkdCIFwv\nIDEyLjkyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIEIgPSBNYXRoLnBvdygoQnNSR0Ig\nKyAwLjA1NSkgXC8gMS4wNTUsIDIuNCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDAuMjEy\nNiAqIFIgKyAwLjcxNTIgKiBHICsgMC4wNzIyICogQjtcbiAgICAgIH07XG4gICAgICBUaW55Q29s\nb3IyLnByb3RvdHlwZS5nZXRBbHBoYSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhp\ncy5hO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJvdG90eXBlLnNldEFscGhhID0gZnVu\nY3Rpb24oYWxwaGEpIHtcbiAgICAgICAgdGhpcy5hID0gYm91bmRBbHBoYShhbHBoYSk7XG4gICAg\nICAgIHRoaXMucm91bmRBID0gTWF0aC5yb3VuZCgxMDAgKiB0aGlzLmEpIFwvIDEwMDtcbiAgICAg\nICAgcmV0dXJuIHRoaXM7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUuaXNN\nb25vY2hyb21lID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBzID0gdGhpcy50b0hzbCgpLnM7\nXG4gICAgICAgIHJldHVybiBzID09PSAwO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJv\ndG90eXBlLnRvSHN2ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBoc3YgPSByZ2JUb0hzdih0\naGlzLnIsIHRoaXMuZywgdGhpcy5iKTtcbiAgICAgICAgcmV0dXJuIHsgaDogaHN2LmggKiAzNjAs\nIHM6IGhzdi5zLCB2OiBoc3YudiwgYTogdGhpcy5hIH07XG4gICAgICB9O1xuICAgICAgVGlueUNv\nbG9yMi5wcm90b3R5cGUudG9Ic3ZTdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhz\ndiA9IHJnYlRvSHN2KHRoaXMuciwgdGhpcy5nLCB0aGlzLmIpO1xuICAgICAgICB2YXIgaDIgPSBN\nYXRoLnJvdW5kKGhzdi5oICogMzYwKTtcbiAgICAgICAgdmFyIHMgPSBNYXRoLnJvdW5kKGhzdi5z\nICogMTAwKTtcbiAgICAgICAgdmFyIHYgPSBNYXRoLnJvdW5kKGhzdi52ICogMTAwKTtcbiAgICAg\nICAgcmV0dXJuIHRoaXMuYSA9PT0gMSA\/IFwiaHN2KFwiLmNvbmNhdChoMiwgXCIsIFwiKS5jb25j\nYXQocywgXCIlLCBcIikuY29uY2F0KHYsIFwiJSlcIikgOiBcImhzdmEoXCIuY29uY2F0KGgyLCBc\nIiwgXCIpLmNvbmNhdChzLCBcIiUsIFwiKS5jb25jYXQodiwgXCIlLCBcIikuY29uY2F0KHRoaXMu\ncm91bmRBLCBcIilcIik7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUudG9I\nc2wgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhzbCA9IHJnYlRvSHNsKHRoaXMuciwgdGhp\ncy5nLCB0aGlzLmIpO1xuICAgICAgICByZXR1cm4geyBoOiBoc2wuaCAqIDM2MCwgczogaHNsLnMs\nIGw6IGhzbC5sLCBhOiB0aGlzLmEgfTtcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3Rv\ndHlwZS50b0hzbFN0cmluZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHNsID0gcmdiVG9I\nc2wodGhpcy5yLCB0aGlzLmcsIHRoaXMuYik7XG4gICAgICAgIHZhciBoMiA9IE1hdGgucm91bmQo\naHNsLmggKiAzNjApO1xuICAgICAgICB2YXIgcyA9IE1hdGgucm91bmQoaHNsLnMgKiAxMDApO1xu\nICAgICAgICB2YXIgbCA9IE1hdGgucm91bmQoaHNsLmwgKiAxMDApO1xuICAgICAgICByZXR1cm4g\ndGhpcy5hID09PSAxID8gXCJoc2woXCIuY29uY2F0KGgyLCBcIiwgXCIpLmNvbmNhdChzLCBcIiUs\nIFwiKS5jb25jYXQobCwgXCIlKVwiKSA6IFwiaHNsYShcIi5jb25jYXQoaDIsIFwiLCBcIikuY29u\nY2F0KHMsIFwiJSwgXCIpLmNvbmNhdChsLCBcIiUsIFwiKS5jb25jYXQodGhpcy5yb3VuZEEsIFwi\nKVwiKTtcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS50b0hleCA9IGZ1bmN0\naW9uKGFsbG93M0NoYXIpIHtcbiAgICAgICAgaWYgKGFsbG93M0NoYXIgPT09IHZvaWQgMCkge1xu\nICAgICAgICAgIGFsbG93M0NoYXIgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4g\ncmdiVG9IZXgodGhpcy5yLCB0aGlzLmcsIHRoaXMuYiwgYWxsb3czQ2hhcik7XG4gICAgICB9O1xu\nICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUudG9IZXhTdHJpbmcgPSBmdW5jdGlvbihhbGxvdzND\naGFyKSB7XG4gICAgICAgIGlmIChhbGxvdzNDaGFyID09PSB2b2lkIDApIHtcbiAgICAgICAgICBh\nbGxvdzNDaGFyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiI1wiICsgdGhp\ncy50b0hleChhbGxvdzNDaGFyKTtcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlw\nZS50b0hleDggPSBmdW5jdGlvbihhbGxvdzRDaGFyKSB7XG4gICAgICAgIGlmIChhbGxvdzRDaGFy\nID09PSB2b2lkIDApIHtcbiAgICAgICAgICBhbGxvdzRDaGFyID0gZmFsc2U7XG4gICAgICAgIH1c\nbiAgICAgICAgcmV0dXJuIHJnYmFUb0hleCh0aGlzLnIsIHRoaXMuZywgdGhpcy5iLCB0aGlzLmEs\nIGFsbG93NENoYXIpO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJvdG90eXBlLnRvSGV4\nOFN0cmluZyA9IGZ1bmN0aW9uKGFsbG93NENoYXIpIHtcbiAgICAgICAgaWYgKGFsbG93NENoYXIg\nPT09IHZvaWQgMCkge1xuICAgICAgICAgIGFsbG93NENoYXIgPSBmYWxzZTtcbiAgICAgICAgfVxu\nICAgICAgICByZXR1cm4gXCIjXCIgKyB0aGlzLnRvSGV4OChhbGxvdzRDaGFyKTtcbiAgICAgIH07\nXG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS50b0hleFNob3J0U3RyaW5nID0gZnVuY3Rpb24o\nYWxsb3dTaG9ydENoYXIpIHtcbiAgICAgICAgaWYgKGFsbG93U2hvcnRDaGFyID09PSB2b2lkIDAp\nIHtcbiAgICAgICAgICBhbGxvd1Nob3J0Q2hhciA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAg\nIHJldHVybiB0aGlzLmEgPT09IDEgPyB0aGlzLnRvSGV4U3RyaW5nKGFsbG93U2hvcnRDaGFyKSA6\nIHRoaXMudG9IZXg4U3RyaW5nKGFsbG93U2hvcnRDaGFyKTtcbiAgICAgIH07XG4gICAgICBUaW55\nQ29sb3IyLnByb3RvdHlwZS50b1JnYiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4ge1xu\nICAgICAgICAgIHI6IE1hdGgucm91bmQodGhpcy5yKSxcbiAgICAgICAgICBnOiBNYXRoLnJvdW5k\nKHRoaXMuZyksXG4gICAgICAgICAgYjogTWF0aC5yb3VuZCh0aGlzLmIpLFxuICAgICAgICAgIGE6\nIHRoaXMuYVxuICAgICAgICB9O1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJvdG90eXBl\nLnRvUmdiU3RyaW5nID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciByID0gTWF0aC5yb3VuZCh0\naGlzLnIpO1xuICAgICAgICB2YXIgZyA9IE1hdGgucm91bmQodGhpcy5nKTtcbiAgICAgICAgdmFy\nIGIgPSBNYXRoLnJvdW5kKHRoaXMuYik7XG4gICAgICAgIHJldHVybiB0aGlzLmEgPT09IDEgPyBc\nInJnYihcIi5jb25jYXQociwgXCIsIFwiKS5jb25jYXQoZywgXCIsIFwiKS5jb25jYXQoYiwgXCIp\nXCIpIDogXCJyZ2JhKFwiLmNvbmNhdChyLCBcIiwgXCIpLmNvbmNhdChnLCBcIiwgXCIpLmNvbmNh\ndChiLCBcIiwgXCIpLmNvbmNhdCh0aGlzLnJvdW5kQSwgXCIpXCIpO1xuICAgICAgfTtcbiAgICAg\nIFRpbnlDb2xvcjIucHJvdG90eXBlLnRvUGVyY2VudGFnZVJnYiA9IGZ1bmN0aW9uKCkge1xuICAg\nICAgICB2YXIgZm10ID0gZnVuY3Rpb24oeCkge1xuICAgICAgICAgIHJldHVybiBcIlwiLmNvbmNh\ndChNYXRoLnJvdW5kKGJvdW5kMDEoeCwgMjU1KSAqIDEwMCksIFwiJVwiKTtcbiAgICAgICAgfTtc\nbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByOiBmbXQodGhpcy5yKSxcbiAgICAgICAgICBn\nOiBmbXQodGhpcy5nKSxcbiAgICAgICAgICBiOiBmbXQodGhpcy5iKSxcbiAgICAgICAgICBhOiB0\naGlzLmFcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS50\nb1BlcmNlbnRhZ2VSZ2JTdHJpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJuZCA9IGZ1\nbmN0aW9uKHgpIHtcbiAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChib3VuZDAxKHgsIDI1NSkg\nKiAxMDApO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdGhpcy5hID09PSAxID8gXCJyZ2Io\nXCIuY29uY2F0KHJuZCh0aGlzLnIpLCBcIiUsIFwiKS5jb25jYXQocm5kKHRoaXMuZyksIFwiJSwg\nXCIpLmNvbmNhdChybmQodGhpcy5iKSwgXCIlKVwiKSA6IFwicmdiYShcIi5jb25jYXQocm5kKHRo\naXMuciksIFwiJSwgXCIpLmNvbmNhdChybmQodGhpcy5nKSwgXCIlLCBcIikuY29uY2F0KHJuZCh0\naGlzLmIpLCBcIiUsIFwiKS5jb25jYXQodGhpcy5yb3VuZEEsIFwiKVwiKTtcbiAgICAgIH07XG4g\nICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS50b05hbWUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAg\naWYgKHRoaXMuYSA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBcInRyYW5zcGFyZW50XCI7XG4g\nICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYSA8IDEpIHtcbiAgICAgICAgICByZXR1cm4gZmFs\nc2U7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhleCA9IFwiI1wiICsgcmdiVG9IZXgodGhpcy5y\nLCB0aGlzLmcsIHRoaXMuYiwgZmFsc2UpO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hMyA9\nIE9iamVjdC5lbnRyaWVzKG5hbWVzKTsgX2kgPCBfYTMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAg\nICAgdmFyIF9iID0gX2EzW19pXSwga2V5ID0gX2JbMF0sIHZhbHVlID0gX2JbMV07XG4gICAgICAg\nICAgaWYgKGhleCA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBrZXk7XG4gICAgICAg\nICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgICBU\naW55Q29sb3IyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKGZvcm1hdCkge1xuICAgICAg\nICB2YXIgZm9ybWF0U2V0ID0gQm9vbGVhbihmb3JtYXQpO1xuICAgICAgICBmb3JtYXQgPSBmb3Jt\nYXQgIT09IG51bGwgJiYgZm9ybWF0ICE9PSB2b2lkIDAgPyBmb3JtYXQgOiB0aGlzLmZvcm1hdDtc\nbiAgICAgICAgdmFyIGZvcm1hdHRlZFN0cmluZyA9IGZhbHNlO1xuICAgICAgICB2YXIgaGFzQWxw\naGEgPSB0aGlzLmEgPCAxICYmIHRoaXMuYSA+PSAwO1xuICAgICAgICB2YXIgbmVlZHNBbHBoYUZv\ncm1hdCA9ICFmb3JtYXRTZXQgJiYgaGFzQWxwaGEgJiYgKGZvcm1hdC5zdGFydHNXaXRoKFwiaGV4\nXCIpIHx8IGZvcm1hdCA9PT0gXCJuYW1lXCIpO1xuICAgICAgICBpZiAobmVlZHNBbHBoYUZvcm1h\ndCkge1xuICAgICAgICAgIGlmIChmb3JtYXQgPT09IFwibmFtZVwiICYmIHRoaXMuYSA9PT0gMCkg\ne1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9OYW1lKCk7XG4gICAgICAgICAgfVxuICAgICAg\nICAgIHJldHVybiB0aGlzLnRvUmdiU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZv\ncm1hdCA9PT0gXCJyZ2JcIikge1xuICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9S\nZ2JTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcInByZ2JcIikg\ne1xuICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9QZXJjZW50YWdlUmdiU3RyaW5n\nKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoZXhcIiB8fCBmb3JtYXQg\nPT09IFwiaGV4NlwiKSB7XG4gICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b0hleFN0\ncmluZygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtYXQgPT09IFwiaGV4M1wiKSB7XG4g\nICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhpcy50b0hleFN0cmluZyh0cnVlKTtcbiAgICAg\nICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBcImhleDRcIikge1xuICAgICAgICAgIGZvcm1h\ndHRlZFN0cmluZyA9IHRoaXMudG9IZXg4U3RyaW5nKHRydWUpO1xuICAgICAgICB9XG4gICAgICAg\nIGlmIChmb3JtYXQgPT09IFwiaGV4OFwiKSB7XG4gICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0g\ndGhpcy50b0hleDhTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0ID09PSBc\nIm5hbWVcIikge1xuICAgICAgICAgIGZvcm1hdHRlZFN0cmluZyA9IHRoaXMudG9OYW1lKCk7XG4g\nICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1hdCA9PT0gXCJoc2xcIikge1xuICAgICAgICAgIGZv\ncm1hdHRlZFN0cmluZyA9IHRoaXMudG9Ic2xTdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBp\nZiAoZm9ybWF0ID09PSBcImhzdlwiKSB7XG4gICAgICAgICAgZm9ybWF0dGVkU3RyaW5nID0gdGhp\ncy50b0hzdlN0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWRTdHJp\nbmcgfHwgdGhpcy50b0hleFN0cmluZygpO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJv\ndG90eXBlLnRvTnVtYmVyID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAoTWF0aC5yb3Vu\nZCh0aGlzLnIpIDw8IDE2KSArIChNYXRoLnJvdW5kKHRoaXMuZykgPDwgOCkgKyBNYXRoLnJvdW5k\nKHRoaXMuYik7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUuY2xvbmUgPSBm\ndW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55Q29sb3IyKHRoaXMudG9TdHJpbmco\nKSk7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUubGlnaHRlbiA9IGZ1bmN0\naW9uKGFtb3VudCkge1xuICAgICAgICBpZiAoYW1vdW50ID09PSB2b2lkIDApIHtcbiAgICAgICAg\nICBhbW91bnQgPSAxMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaHNsID0gdGhpcy50b0hzbCgp\nO1xuICAgICAgICBoc2wubCArPSBhbW91bnQgXC8gMTAwO1xuICAgICAgICBoc2wubCA9IGNsYW1w\nMDEoaHNsLmwpO1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlDb2xvcjIoaHNsKTtcbiAgICAgIH07\nXG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS5icmlnaHRlbiA9IGZ1bmN0aW9uKGFtb3VudCkg\ne1xuICAgICAgICBpZiAoYW1vdW50ID09PSB2b2lkIDApIHtcbiAgICAgICAgICBhbW91bnQgPSAx\nMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgcmdiID0gdGhpcy50b1JnYigpO1xuICAgICAgICBy\nZ2IuciA9IE1hdGgubWF4KDAsIE1hdGgubWluKDI1NSwgcmdiLnIgLSBNYXRoLnJvdW5kKDI1NSAq\nIC0oYW1vdW50IFwvIDEwMCkpKSk7XG4gICAgICAgIHJnYi5nID0gTWF0aC5tYXgoMCwgTWF0aC5t\naW4oMjU1LCByZ2IuZyAtIE1hdGgucm91bmQoMjU1ICogLShhbW91bnQgXC8gMTAwKSkpKTtcbiAg\nICAgICAgcmdiLmIgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIHJnYi5iIC0gTWF0aC5yb3Vu\nZCgyNTUgKiAtKGFtb3VudCBcLyAxMDApKSkpO1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlDb2xv\ncjIocmdiKTtcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS5kYXJrZW4gPSBm\ndW5jdGlvbihhbW91bnQpIHtcbiAgICAgICAgaWYgKGFtb3VudCA9PT0gdm9pZCAwKSB7XG4gICAg\nICAgICAgYW1vdW50ID0gMTA7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhzbCA9IHRoaXMudG9I\nc2woKTtcbiAgICAgICAgaHNsLmwgLT0gYW1vdW50IFwvIDEwMDtcbiAgICAgICAgaHNsLmwgPSBj\nbGFtcDAxKGhzbC5sKTtcbiAgICAgICAgcmV0dXJuIG5ldyBUaW55Q29sb3IyKGhzbCk7XG4gICAg\nICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUudGludCA9IGZ1bmN0aW9uKGFtb3VudCkg\ne1xuICAgICAgICBpZiAoYW1vdW50ID09PSB2b2lkIDApIHtcbiAgICAgICAgICBhbW91bnQgPSAx\nMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5taXgoXCJ3aGl0ZVwiLCBhbW91bnQp\nO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJvdG90eXBlLnNoYWRlID0gZnVuY3Rpb24o\nYW1vdW50KSB7XG4gICAgICAgIGlmIChhbW91bnQgPT09IHZvaWQgMCkge1xuICAgICAgICAgIGFt\nb3VudCA9IDEwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm1peChcImJsYWNrXCIs\nIGFtb3VudCk7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUuZGVzYXR1cmF0\nZSA9IGZ1bmN0aW9uKGFtb3VudCkge1xuICAgICAgICBpZiAoYW1vdW50ID09PSB2b2lkIDApIHtc\nbiAgICAgICAgICBhbW91bnQgPSAxMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaHNsID0gdGhp\ncy50b0hzbCgpO1xuICAgICAgICBoc2wucyAtPSBhbW91bnQgXC8gMTAwO1xuICAgICAgICBoc2wu\ncyA9IGNsYW1wMDEoaHNsLnMpO1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlDb2xvcjIoaHNsKTtc\nbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS5zYXR1cmF0ZSA9IGZ1bmN0aW9u\nKGFtb3VudCkge1xuICAgICAgICBpZiAoYW1vdW50ID09PSB2b2lkIDApIHtcbiAgICAgICAgICBh\nbW91bnQgPSAxMDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgaHNsID0gdGhpcy50b0hzbCgpO1xu\nICAgICAgICBoc2wucyArPSBhbW91bnQgXC8gMTAwO1xuICAgICAgICBoc2wucyA9IGNsYW1wMDEo\naHNsLnMpO1xuICAgICAgICByZXR1cm4gbmV3IFRpbnlDb2xvcjIoaHNsKTtcbiAgICAgIH07XG4g\nICAgICBUaW55Q29sb3IyLnByb3RvdHlwZS5ncmV5c2NhbGUgPSBmdW5jdGlvbigpIHtcbiAgICAg\nICAgcmV0dXJuIHRoaXMuZGVzYXR1cmF0ZSgxMDApO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xv\ncjIucHJvdG90eXBlLnNwaW4gPSBmdW5jdGlvbihhbW91bnQpIHtcbiAgICAgICAgdmFyIGhzbCA9\nIHRoaXMudG9Ic2woKTtcbiAgICAgICAgdmFyIGh1ZSA9IChoc2wuaCArIGFtb3VudCkgJSAzNjA7\nXG4gICAgICAgIGhzbC5oID0gaHVlIDwgMCA\/IDM2MCArIGh1ZSA6IGh1ZTtcbiAgICAgICAgcmV0\ndXJuIG5ldyBUaW55Q29sb3IyKGhzbCk7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90\nb3R5cGUubWl4ID0gZnVuY3Rpb24oY29sb3IsIGFtb3VudCkge1xuICAgICAgICBpZiAoYW1vdW50\nID09PSB2b2lkIDApIHtcbiAgICAgICAgICBhbW91bnQgPSA1MDtcbiAgICAgICAgfVxuICAgICAg\nICB2YXIgcmdiMSA9IHRoaXMudG9SZ2IoKTtcbiAgICAgICAgdmFyIHJnYjIgPSBuZXcgVGlueUNv\nbG9yMihjb2xvcikudG9SZ2IoKTtcbiAgICAgICAgdmFyIHAgPSBhbW91bnQgXC8gMTAwO1xuICAg\nICAgICB2YXIgcmdiYSA9IHtcbiAgICAgICAgICByOiAocmdiMi5yIC0gcmdiMS5yKSAqIHAgKyBy\nZ2IxLnIsXG4gICAgICAgICAgZzogKHJnYjIuZyAtIHJnYjEuZykgKiBwICsgcmdiMS5nLFxuICAg\nICAgICAgIGI6IChyZ2IyLmIgLSByZ2IxLmIpICogcCArIHJnYjEuYixcbiAgICAgICAgICBhOiAo\ncmdiMi5hIC0gcmdiMS5hKSAqIHAgKyByZ2IxLmFcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJu\nIG5ldyBUaW55Q29sb3IyKHJnYmEpO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJvdG90\neXBlLmFuYWxvZ291cyA9IGZ1bmN0aW9uKHJlc3VsdHMsIHNsaWNlcykge1xuICAgICAgICBpZiAo\ncmVzdWx0cyA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgcmVzdWx0cyA9IDY7XG4gICAgICAgIH1c\nbiAgICAgICAgaWYgKHNsaWNlcyA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgc2xpY2VzID0gMzA7\nXG4gICAgICAgIH1cbiAgICAgICAgdmFyIGhzbCA9IHRoaXMudG9Ic2woKTtcbiAgICAgICAgdmFy\nIHBhcnQgPSAzNjAgXC8gc2xpY2VzO1xuICAgICAgICB2YXIgcmV0ID0gW3RoaXNdO1xuICAgICAg\nICBmb3IgKGhzbC5oID0gKGhzbC5oIC0gKHBhcnQgKiByZXN1bHRzID4+IDEpICsgNzIwKSAlIDM2\nMDsgLS1yZXN1bHRzOyApIHtcbiAgICAgICAgICBoc2wuaCA9IChoc2wuaCArIHBhcnQpICUgMzYw\nO1xuICAgICAgICAgIHJldC5wdXNoKG5ldyBUaW55Q29sb3IyKGhzbCkpO1xuICAgICAgICB9XG4g\nICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUu\nY29tcGxlbWVudCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaHNsID0gdGhpcy50b0hzbCgp\nO1xuICAgICAgICBoc2wuaCA9IChoc2wuaCArIDE4MCkgJSAzNjA7XG4gICAgICAgIHJldHVybiBu\nZXcgVGlueUNvbG9yMihoc2wpO1xuICAgICAgfTtcbiAgICAgIFRpbnlDb2xvcjIucHJvdG90eXBl\nLm1vbm9jaHJvbWF0aWMgPSBmdW5jdGlvbihyZXN1bHRzKSB7XG4gICAgICAgIGlmIChyZXN1bHRz\nID09PSB2b2lkIDApIHtcbiAgICAgICAgICByZXN1bHRzID0gNjtcbiAgICAgICAgfVxuICAgICAg\nICB2YXIgaHN2ID0gdGhpcy50b0hzdigpO1xuICAgICAgICB2YXIgaDIgPSBoc3YuaDtcbiAgICAg\nICAgdmFyIHMgPSBoc3YucztcbiAgICAgICAgdmFyIHYgPSBoc3YudjtcbiAgICAgICAgdmFyIHJl\ncyA9IFtdO1xuICAgICAgICB2YXIgbW9kaWZpY2F0aW9uID0gMSBcLyByZXN1bHRzO1xuICAgICAg\nICB3aGlsZSAocmVzdWx0cy0tKSB7XG4gICAgICAgICAgcmVzLnB1c2gobmV3IFRpbnlDb2xvcjIo\neyBoOiBoMiwgcywgdiB9KSk7XG4gICAgICAgICAgdiA9ICh2ICsgbW9kaWZpY2F0aW9uKSAlIDE7\nXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgIH07XG4gICAgICBUaW55Q29s\nb3IyLnByb3RvdHlwZS5zcGxpdGNvbXBsZW1lbnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFy\nIGhzbCA9IHRoaXMudG9Ic2woKTtcbiAgICAgICAgdmFyIGgyID0gaHNsLmg7XG4gICAgICAgIHJl\ndHVybiBbXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBuZXcgVGlueUNvbG9yMih7IGg6ICho\nMiArIDcyKSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pLFxuICAgICAgICAgIG5ldyBUaW55\nQ29sb3IyKHsgaDogKGgyICsgMjE2KSAlIDM2MCwgczogaHNsLnMsIGw6IGhzbC5sIH0pXG4gICAg\nICAgIF07XG4gICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUub25CYWNrZ3JvdW5k\nID0gZnVuY3Rpb24oYmFja2dyb3VuZCkge1xuICAgICAgICB2YXIgZmcgPSB0aGlzLnRvUmdiKCk7\nXG4gICAgICAgIHZhciBiZyA9IG5ldyBUaW55Q29sb3IyKGJhY2tncm91bmQpLnRvUmdiKCk7XG4g\nICAgICAgIHZhciBhbHBoYSA9IGZnLmEgKyBiZy5hICogKDEgLSBmZy5hKTtcbiAgICAgICAgcmV0\ndXJuIG5ldyBUaW55Q29sb3IyKHtcbiAgICAgICAgICByOiAoZmcuciAqIGZnLmEgKyBiZy5yICog\nYmcuYSAqICgxIC0gZmcuYSkpIFwvIGFscGhhLFxuICAgICAgICAgIGc6IChmZy5nICogZmcuYSAr\nIGJnLmcgKiBiZy5hICogKDEgLSBmZy5hKSkgXC8gYWxwaGEsXG4gICAgICAgICAgYjogKGZnLmIg\nKiBmZy5hICsgYmcuYiAqIGJnLmEgKiAoMSAtIGZnLmEpKSBcLyBhbHBoYSxcbiAgICAgICAgICBh\nOiBhbHBoYVxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBUaW55Q29sb3IyLnByb3RvdHlw\nZS50cmlhZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wb2x5YWQoMyk7XG4g\nICAgICB9O1xuICAgICAgVGlueUNvbG9yMi5wcm90b3R5cGUudGV0cmFkID0gZnVuY3Rpb24oKSB7\nXG4gICAgICAgIHJldHVybiB0aGlzLnBvbHlhZCg0KTtcbiAgICAgIH07XG4gICAgICBUaW55Q29s\nb3IyLnByb3RvdHlwZS5wb2x5YWQgPSBmdW5jdGlvbihuKSB7XG4gICAgICAgIHZhciBoc2wgPSB0\naGlzLnRvSHNsKCk7XG4gICAgICAgIHZhciBoMiA9IGhzbC5oO1xuICAgICAgICB2YXIgcmVzdWx0\nID0gW3RoaXNdO1xuICAgICAgICB2YXIgaW5jcmVtZW50ID0gMzYwIFwvIG47XG4gICAgICAgIGZv\nciAodmFyIGkgPSAxOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFRp\nbnlDb2xvcjIoeyBoOiAoaDIgKyBpICogaW5jcmVtZW50KSAlIDM2MCwgczogaHNsLnMsIGw6IGhz\nbC5sIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAg\nICAgIFRpbnlDb2xvcjIucHJvdG90eXBlLmVxdWFscyA9IGZ1bmN0aW9uKGNvbG9yKSB7XG4gICAg\nICAgIHJldHVybiB0aGlzLnRvUmdiU3RyaW5nKCkgPT09IG5ldyBUaW55Q29sb3IyKGNvbG9yKS50\nb1JnYlN0cmluZygpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBUaW55Q29sb3IyO1xuICAgIH0o\nKVxuICApO1xuICBmdW5jdGlvbiBkYXJrZW4oY29sb3IsIGFtb3VudCA9IDIwKSB7XG4gICAgcmV0\ndXJuIGNvbG9yLm1peChcIiMxNDE0MTRcIiwgYW1vdW50KS50b1N0cmluZygpO1xuICB9XG4gIGZ1\nbmN0aW9uIHVzZUJ1dHRvbkN1c3RvbVN0eWxlKHByb3BzKSB7XG4gICAgY29uc3QgX2Rpc2FibGVk\nID0gdXNlRm9ybURpc2FibGVkKCk7XG4gICAgY29uc3QgbnMgPSB1c2VOYW1lc3BhY2UoXCJidXR0\nb25cIik7XG4gICAgcmV0dXJuIHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICBsZXQgc3R5bGVz\nID0ge307XG4gICAgICBsZXQgYnV0dG9uQ29sb3IgPSBwcm9wcy5jb2xvcjtcbiAgICAgIGlmIChi\ndXR0b25Db2xvcikge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGJ1dHRvbkNvbG9yLm1hdGNoKFwv\ndmFyXFwoKC4qPylcXClcLyk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIGJ1dHRv\nbkNvbG9yID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUod2luZG93LmRvY3VtZW50LmRvY3VtZW50\nRWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShtYXRjaFsxXSk7XG4gICAgICAgIH1cbiAgICAgICAg\nY29uc3QgY29sb3IgPSBuZXcgVGlueUNvbG9yKGJ1dHRvbkNvbG9yKTtcbiAgICAgICAgY29uc3Qg\nYWN0aXZlQmdDb2xvciA9IHByb3BzLmRhcmsgPyBjb2xvci50aW50KDIwKS50b1N0cmluZygpIDog\nZGFya2VuKGNvbG9yLCAyMCk7XG4gICAgICAgIGlmIChwcm9wcy5wbGFpbikge1xuICAgICAgICAg\nIHN0eWxlcyA9IG5zLmNzc1ZhckJsb2NrKHtcbiAgICAgICAgICAgIFwiYmctY29sb3JcIjogcHJv\ncHMuZGFyayA\/IGRhcmtlbihjb2xvciwgOTApIDogY29sb3IudGludCg5MCkudG9TdHJpbmcoKSxc\nbiAgICAgICAgICAgIFwidGV4dC1jb2xvclwiOiBidXR0b25Db2xvcixcbiAgICAgICAgICAgIFwi\nYm9yZGVyLWNvbG9yXCI6IHByb3BzLmRhcmsgPyBkYXJrZW4oY29sb3IsIDUwKSA6IGNvbG9yLnRp\nbnQoNTApLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBcImhvdmVyLXRleHQtY29sb3JcIjogYHZh\ncigke25zLmNzc1Zhck5hbWUoXCJjb2xvci13aGl0ZVwiKX0pYCxcbiAgICAgICAgICAgIFwiaG92\nZXItYmctY29sb3JcIjogYnV0dG9uQ29sb3IsXG4gICAgICAgICAgICBcImhvdmVyLWJvcmRlci1j\nb2xvclwiOiBidXR0b25Db2xvcixcbiAgICAgICAgICAgIFwiYWN0aXZlLWJnLWNvbG9yXCI6IGFj\ndGl2ZUJnQ29sb3IsXG4gICAgICAgICAgICBcImFjdGl2ZS10ZXh0LWNvbG9yXCI6IGB2YXIoJHtu\ncy5jc3NWYXJOYW1lKFwiY29sb3Itd2hpdGVcIil9KWAsXG4gICAgICAgICAgICBcImFjdGl2ZS1i\nb3JkZXItY29sb3JcIjogYWN0aXZlQmdDb2xvclxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlm\nIChfZGlzYWJsZWQudmFsdWUpIHtcbiAgICAgICAgICAgIHN0eWxlc1tucy5jc3NWYXJCbG9ja05h\nbWUoXCJkaXNhYmxlZC1iZy1jb2xvclwiKV0gPSBwcm9wcy5kYXJrID8gZGFya2VuKGNvbG9yLCA5\nMCkgOiBjb2xvci50aW50KDkwKS50b1N0cmluZygpO1xuICAgICAgICAgICAgc3R5bGVzW25zLmNz\nc1ZhckJsb2NrTmFtZShcImRpc2FibGVkLXRleHQtY29sb3JcIildID0gcHJvcHMuZGFyayA\/IGRh\ncmtlbihjb2xvciwgNTApIDogY29sb3IudGludCg1MCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAg\nIHN0eWxlc1tucy5jc3NWYXJCbG9ja05hbWUoXCJkaXNhYmxlZC1ib3JkZXItY29sb3JcIildID0g\ncHJvcHMuZGFyayA\/IGRhcmtlbihjb2xvciwgODApIDogY29sb3IudGludCg4MCkudG9TdHJpbmco\nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaG92ZXJC\nZ0NvbG9yID0gcHJvcHMuZGFyayA\/IGRhcmtlbihjb2xvciwgMzApIDogY29sb3IudGludCgzMCku\ndG9TdHJpbmcoKTtcbiAgICAgICAgICBjb25zdCB0ZXh0Q29sb3IgPSBjb2xvci5pc0RhcmsoKSA\/\nIGB2YXIoJHtucy5jc3NWYXJOYW1lKFwiY29sb3Itd2hpdGVcIil9KWAgOiBgdmFyKCR7bnMuY3Nz\nVmFyTmFtZShcImNvbG9yLWJsYWNrXCIpfSlgO1xuICAgICAgICAgIHN0eWxlcyA9IG5zLmNzc1Zh\nckJsb2NrKHtcbiAgICAgICAgICAgIFwiYmctY29sb3JcIjogYnV0dG9uQ29sb3IsXG4gICAgICAg\nICAgICBcInRleHQtY29sb3JcIjogdGV4dENvbG9yLFxuICAgICAgICAgICAgXCJib3JkZXItY29s\nb3JcIjogYnV0dG9uQ29sb3IsXG4gICAgICAgICAgICBcImhvdmVyLWJnLWNvbG9yXCI6IGhvdmVy\nQmdDb2xvcixcbiAgICAgICAgICAgIFwiaG92ZXItdGV4dC1jb2xvclwiOiB0ZXh0Q29sb3IsXG4g\nICAgICAgICAgICBcImhvdmVyLWJvcmRlci1jb2xvclwiOiBob3ZlckJnQ29sb3IsXG4gICAgICAg\nICAgICBcImFjdGl2ZS1iZy1jb2xvclwiOiBhY3RpdmVCZ0NvbG9yLFxuICAgICAgICAgICAgXCJh\nY3RpdmUtYm9yZGVyLWNvbG9yXCI6IGFjdGl2ZUJnQ29sb3JcbiAgICAgICAgICB9KTtcbiAgICAg\nICAgICBpZiAoX2Rpc2FibGVkLnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBkaXNhYmxlZEJ1\ndHRvbkNvbG9yID0gcHJvcHMuZGFyayA\/IGRhcmtlbihjb2xvciwgNTApIDogY29sb3IudGludCg1\nMCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIHN0eWxlc1tucy5jc3NWYXJCbG9ja05hbWUoXCJk\naXNhYmxlZC1iZy1jb2xvclwiKV0gPSBkaXNhYmxlZEJ1dHRvbkNvbG9yO1xuICAgICAgICAgICAg\nc3R5bGVzW25zLmNzc1ZhckJsb2NrTmFtZShcImRpc2FibGVkLXRleHQtY29sb3JcIildID0gcHJv\ncHMuZGFyayA\/IFwicmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpXCIgOiBgdmFyKCR7bnMuY3NzVmFy\nTmFtZShcImNvbG9yLXdoaXRlXCIpfSlgO1xuICAgICAgICAgICAgc3R5bGVzW25zLmNzc1ZhckJs\nb2NrTmFtZShcImRpc2FibGVkLWJvcmRlci1jb2xvclwiKV0gPSBkaXNhYmxlZEJ1dHRvbkNvbG9y\nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0eWxlcztc\nbiAgICB9KTtcbiAgfVxuICBjb25zdCBfX2RlZmF1bHRfXyRqID0gdnVlLmRlZmluZUNvbXBvbmVu\ndCh7XG4gICAgbmFtZTogXCJFbEJ1dHRvblwiXG4gIH0pO1xuICBjb25zdCBfc2ZjX21haW4kdyA9\nIFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIC4uLl9fZGVmYXVs\ndF9fJGosXG4gICAgcHJvcHM6IGJ1dHRvblByb3BzLFxuICAgIGVtaXRzOiBidXR0b25FbWl0cyxc\nbiAgICBzZXR1cChfX3Byb3BzLCB7IGV4cG9zZSwgZW1pdCB9KSB7XG4gICAgICBjb25zdCBwcm9w\ncyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBidXR0b25TdHlsZSA9IHVzZUJ1dHRvbkN1c3RvbVN0\neWxlKHByb3BzKTtcbiAgICAgIGNvbnN0IG5zID0gdXNlTmFtZXNwYWNlKFwiYnV0dG9uXCIpO1xu\nICAgICAgY29uc3QgeyBfcmVmLCBfc2l6ZSwgX3R5cGUsIF9kaXNhYmxlZCwgX3Byb3BzLCBzaG91\nbGRBZGRTcGFjZSwgaGFuZGxlQ2xpY2sgfSA9IHVzZUJ1dHRvbihwcm9wcywgZW1pdCk7XG4gICAg\nICBjb25zdCBidXR0b25LbHMgPSB2dWUuY29tcHV0ZWQoKCkgPT4gW1xuICAgICAgICBucy5iKCks\nXG4gICAgICAgIG5zLm0oX3R5cGUudmFsdWUpLFxuICAgICAgICBucy5tKF9zaXplLnZhbHVlKSxc\nbiAgICAgICAgbnMuaXMoXCJkaXNhYmxlZFwiLCBfZGlzYWJsZWQudmFsdWUpLFxuICAgICAgICBu\ncy5pcyhcImxvYWRpbmdcIiwgcHJvcHMubG9hZGluZyksXG4gICAgICAgIG5zLmlzKFwicGxhaW5c\nIiwgcHJvcHMucGxhaW4pLFxuICAgICAgICBucy5pcyhcInJvdW5kXCIsIHByb3BzLnJvdW5kKSxc\nbiAgICAgICAgbnMuaXMoXCJjaXJjbGVcIiwgcHJvcHMuY2lyY2xlKSxcbiAgICAgICAgbnMuaXMo\nXCJ0ZXh0XCIsIHByb3BzLnRleHQpLFxuICAgICAgICBucy5pcyhcImxpbmtcIiwgcHJvcHMubGlu\nayksXG4gICAgICAgIG5zLmlzKFwiaGFzLWJnXCIsIHByb3BzLmJnKVxuICAgICAgXSk7XG4gICAg\nICBleHBvc2Uoe1xuICAgICAgICByZWY6IF9yZWYsXG4gICAgICAgIHNpemU6IF9zaXplLFxuICAg\nICAgICB0eXBlOiBfdHlwZSxcbiAgICAgICAgZGlzYWJsZWQ6IF9kaXNhYmxlZCxcbiAgICAgICAg\nc2hvdWxkQWRkU3BhY2VcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+\nIHtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS5y\nZXNvbHZlRHluYW1pY0NvbXBvbmVudChfY3R4LnRhZyksIHZ1ZS5tZXJnZVByb3BzKHtcbiAgICAg\nICAgICByZWZfa2V5OiBcIl9yZWZcIixcbiAgICAgICAgICByZWY6IF9yZWZcbiAgICAgICAgfSwg\ndnVlLnVucmVmKF9wcm9wcyksIHtcbiAgICAgICAgICBjbGFzczogdnVlLnVucmVmKGJ1dHRvbkts\ncyksXG4gICAgICAgICAgc3R5bGU6IHZ1ZS51bnJlZihidXR0b25TdHlsZSksXG4gICAgICAgICAg\nb25DbGljazogdnVlLnVucmVmKGhhbmRsZUNsaWNrKVxuICAgICAgICB9KSwge1xuICAgICAgICAg\nIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgIF9jdHgubG9hZGluZyA\/\nICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2sodnVlLkZyYWdtZW50LCB7\nIGtleTogMCB9LCBbXG4gICAgICAgICAgICAgIF9jdHguJHNsb3RzLmxvYWRpbmcgPyB2dWUucmVu\nZGVyU2xvdChfY3R4LiRzbG90cywgXCJsb2FkaW5nXCIsIHsga2V5OiAwIH0pIDogKHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS51bnJlZihFbEljb24pLCB7XG4gICAgICAgICAg\nICAgICAga2V5OiAxLFxuICAgICAgICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3Mo\ndnVlLnVucmVmKG5zKS5pcyhcImxvYWRpbmdcIikpXG4gICAgICAgICAgICAgIH0sIHtcbiAgICAg\nICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAg\nICAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2sodnVlLnJlc29sdmVEeW5hbWljQ29t\ncG9uZW50KF9jdHgubG9hZGluZ0ljb24pKSlcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAg\nICAgICAgICBfOiAxXG4gICAgICAgICAgICAgIH0sIDgsIFtcImNsYXNzXCJdKSlcbiAgICAgICAg\nICAgIF0sIDY0KSkgOiBfY3R4Lmljb24gfHwgX2N0eC4kc2xvdHMuaWNvbiA\/ICh2dWUub3BlbkJs\nb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayh2dWUudW5yZWYoRWxJY29uKSwgeyBrZXk6IDEgfSwge1xu\nICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAg\nICAgX2N0eC5pY29uID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS5yZXNv\nbHZlRHluYW1pY0NvbXBvbmVudChfY3R4Lmljb24pLCB7IGtleTogMCB9KSkgOiB2dWUucmVuZGVy\nU2xvdChfY3R4LiRzbG90cywgXCJpY29uXCIsIHsga2V5OiAxIH0pXG4gICAgICAgICAgICAgIF0p\nLFxuICAgICAgICAgICAgICBfOiAzXG4gICAgICAgICAgICB9KSkgOiB2dWUuY3JlYXRlQ29tbWVu\ndFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICAgICAgICAgIF9jdHguJHNsb3RzLmRlZmF1bHQg\nPyAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKFwic3BhblwiLCB7XG4g\nICAgICAgICAgICAgIGtleTogMixcbiAgICAgICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVD\nbGFzcyh7IFt2dWUudW5yZWYobnMpLmVtKFwidGV4dFwiLCBcImV4cGFuZFwiKV06IHZ1ZS51bnJl\nZihzaG91bGRBZGRTcGFjZSkgfSlcbiAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgdnVl\nLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiKVxuICAgICAgICAgICAgXSwgMikp\nIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlcbiAgICAgICAgICBdKSxc\nbiAgICAgICAgICBfOiAzXG4gICAgICAgIH0sIDE2LCBbXCJjbGFzc1wiLCBcInN0eWxlXCIsIFwi\nb25DbGlja1wiXSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHZhciBCdXR0b24gPSBcLyog\nQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kdywgW1tcIl9fZmlsZVwiLCBcImJ1\ndHRvbi52dWVcIl1dKTtcbiAgY29uc3QgYnV0dG9uR3JvdXBQcm9wcyA9IHtcbiAgICBzaXplOiBi\ndXR0b25Qcm9wcy5zaXplLFxuICAgIHR5cGU6IGJ1dHRvblByb3BzLnR5cGVcbiAgfTtcbiAgY29u\nc3QgX19kZWZhdWx0X18kaSA9IHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIG5hbWU6IFwiRWxC\ndXR0b25Hcm91cFwiXG4gIH0pO1xuICBjb25zdCBfc2ZjX21haW4kdiA9IFwvKiBAX19QVVJFX18g\nKlwvIHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJGksXG4gICAgcHJv\ncHM6IGJ1dHRvbkdyb3VwUHJvcHMsXG4gICAgc2V0dXAoX19wcm9wcykge1xuICAgICAgY29uc3Qg\ncHJvcHMgPSBfX3Byb3BzO1xuICAgICAgdnVlLnByb3ZpZGUoYnV0dG9uR3JvdXBDb250ZXh0S2V5\nLCB2dWUucmVhY3RpdmUoe1xuICAgICAgICBzaXplOiB2dWUudG9SZWYocHJvcHMsIFwic2l6ZVwi\nKSxcbiAgICAgICAgdHlwZTogdnVlLnRvUmVmKHByb3BzLCBcInR5cGVcIilcbiAgICAgIH0pKTtc\nbiAgICAgIGNvbnN0IG5zID0gdXNlTmFtZXNwYWNlKFwiYnV0dG9uXCIpO1xuICAgICAgcmV0dXJu\nIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVl\nLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3M6IHZ1ZS5ub3Jt\nYWxpemVDbGFzcyhgJHt2dWUudW5yZWYobnMpLmIoXCJncm91cFwiKX1gKVxuICAgICAgICB9LCBb\nXG4gICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiKVxuICAg\nICAgICBdLCAyKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFyIEJ1dHRvbkdyb3VwID0g\nXC8qIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJHYsIFtbXCJfX2ZpbGVcIiwg\nXCJidXR0b24tZ3JvdXAudnVlXCJdXSk7XG4gIGNvbnN0IEVsQnV0dG9uID0gd2l0aEluc3RhbGwo\nQnV0dG9uLCB7XG4gICAgQnV0dG9uR3JvdXBcbiAgfSk7XG4gIHdpdGhOb29wSW5zdGFsbChCdXR0\nb25Hcm91cCk7XG4gIGNvbnN0IHJvd0NvbnRleHRLZXkgPSBTeW1ib2woXCJyb3dDb250ZXh0S2V5\nXCIpO1xuICBjb25zdCBSb3dKdXN0aWZ5ID0gW1xuICAgIFwic3RhcnRcIixcbiAgICBcImNlbnRl\nclwiLFxuICAgIFwiZW5kXCIsXG4gICAgXCJzcGFjZS1hcm91bmRcIixcbiAgICBcInNwYWNlLWJl\ndHdlZW5cIixcbiAgICBcInNwYWNlLWV2ZW5seVwiXG4gIF07XG4gIGNvbnN0IFJvd0FsaWduID0g\nW1widG9wXCIsIFwibWlkZGxlXCIsIFwiYm90dG9tXCJdO1xuICBjb25zdCByb3dQcm9wcyA9IGJ1\naWxkUHJvcHMoe1xuICAgIHRhZzoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVs\ndDogXCJkaXZcIlxuICAgIH0sXG4gICAgZ3V0dGVyOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4g\nICAgICBkZWZhdWx0OiAwXG4gICAgfSxcbiAgICBqdXN0aWZ5OiB7XG4gICAgICB0eXBlOiBTdHJp\nbmcsXG4gICAgICB2YWx1ZXM6IFJvd0p1c3RpZnksXG4gICAgICBkZWZhdWx0OiBcInN0YXJ0XCJc\nbiAgICB9LFxuICAgIGFsaWduOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6\nIFJvd0FsaWduXG4gICAgfVxuICB9KTtcbiAgY29uc3QgX19kZWZhdWx0X18kaCA9IHZ1ZS5kZWZp\nbmVDb21wb25lbnQoe1xuICAgIG5hbWU6IFwiRWxSb3dcIlxuICB9KTtcbiAgY29uc3QgX3NmY19t\nYWluJHUgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICAuLi5f\nX2RlZmF1bHRfXyRoLFxuICAgIHByb3BzOiByb3dQcm9wcyxcbiAgICBzZXR1cChfX3Byb3BzKSB7\nXG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVz\ncGFjZShcInJvd1wiKTtcbiAgICAgIGNvbnN0IGd1dHRlciA9IHZ1ZS5jb21wdXRlZCgoKSA9PiBw\ncm9wcy5ndXR0ZXIpO1xuICAgICAgdnVlLnByb3ZpZGUocm93Q29udGV4dEtleSwge1xuICAgICAg\nICBndXR0ZXJcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc3R5bGUgPSB2dWUuY29tcHV0ZWQoKCkg\nPT4ge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSB7fTtcbiAgICAgICAgaWYgKCFwcm9wcy5ndXR0\nZXIpIHtcbiAgICAgICAgICByZXR1cm4gc3R5bGVzO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxl\ncy5tYXJnaW5SaWdodCA9IHN0eWxlcy5tYXJnaW5MZWZ0ID0gYC0ke3Byb3BzLmd1dHRlciBcLyAy\nfXB4YDtcbiAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgcm93\nS2xzID0gdnVlLmNvbXB1dGVkKCgpID0+IFtcbiAgICAgICAgbnMuYigpLFxuICAgICAgICBucy5p\ncyhganVzdGlmeS0ke3Byb3BzLmp1c3RpZnl9YCwgcHJvcHMuanVzdGlmeSAhPT0gXCJzdGFydFwi\nKSxcbiAgICAgICAgbnMuaXMoYGFsaWduLSR7cHJvcHMuYWxpZ259YCwgISFwcm9wcy5hbGlnbilc\nbiAgICAgIF0pO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0\ndXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS5yZXNvbHZlRHluYW1pY0Nv\nbXBvbmVudChfY3R4LnRhZyksIHtcbiAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNz\nKHZ1ZS51bnJlZihyb3dLbHMpKSxcbiAgICAgICAgICBzdHlsZTogdnVlLm5vcm1hbGl6ZVN0eWxl\nKHZ1ZS51bnJlZihzdHlsZSkpXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBkZWZhdWx0OiB2dWUu\nd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywg\nXCJkZWZhdWx0XCIpXG4gICAgICAgICAgXSksXG4gICAgICAgICAgXzogM1xuICAgICAgICB9LCA4\nLCBbXCJjbGFzc1wiLCBcInN0eWxlXCJdKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFy\nIFJvdyA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjKF9zZmNfbWFpbiR1LCBbW1wiX19m\naWxlXCIsIFwicm93LnZ1ZVwiXV0pO1xuICBjb25zdCBFbFJvdyA9IHdpdGhJbnN0YWxsKFJvdyk7\nXG4gIGNvbnN0IGNvbFByb3BzID0gYnVpbGRQcm9wcyh7XG4gICAgdGFnOiB7XG4gICAgICB0eXBl\nOiBTdHJpbmcsXG4gICAgICBkZWZhdWx0OiBcImRpdlwiXG4gICAgfSxcbiAgICBzcGFuOiB7XG4g\nICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBkZWZhdWx0OiAyNFxuICAgIH0sXG4gICAgb2Zmc2V0\nOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBkZWZhdWx0OiAwXG4gICAgfSxcbiAgICBw\ndWxsOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBkZWZhdWx0OiAwXG4gICAgfSxcbiAg\nICBwdXNoOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBkZWZhdWx0OiAwXG4gICAgfSxc\nbiAgICB4czoge1xuICAgICAgdHlwZTogZGVmaW5lUHJvcFR5cGUoW051bWJlciwgT2JqZWN0XSks\nXG4gICAgICBkZWZhdWx0OiAoKSA9PiBtdXRhYmxlKHt9KVxuICAgIH0sXG4gICAgc206IHtcbiAg\nICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKFtOdW1iZXIsIE9iamVjdF0pLFxuICAgICAgZGVmYXVs\ndDogKCkgPT4gbXV0YWJsZSh7fSlcbiAgICB9LFxuICAgIG1kOiB7XG4gICAgICB0eXBlOiBkZWZp\nbmVQcm9wVHlwZShbTnVtYmVyLCBPYmplY3RdKSxcbiAgICAgIGRlZmF1bHQ6ICgpID0+IG11dGFi\nbGUoe30pXG4gICAgfSxcbiAgICBsZzoge1xuICAgICAgdHlwZTogZGVmaW5lUHJvcFR5cGUoW051\nbWJlciwgT2JqZWN0XSksXG4gICAgICBkZWZhdWx0OiAoKSA9PiBtdXRhYmxlKHt9KVxuICAgIH0s\nXG4gICAgeGw6IHtcbiAgICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKFtOdW1iZXIsIE9iamVjdF0p\nLFxuICAgICAgZGVmYXVsdDogKCkgPT4gbXV0YWJsZSh7fSlcbiAgICB9XG4gIH0pO1xuICBjb25z\ndCBfX2RlZmF1bHRfXyRnID0gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJFbENv\nbFwiXG4gIH0pO1xuICBjb25zdCBfc2ZjX21haW4kdCA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5k\nZWZpbmVDb21wb25lbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJGcsXG4gICAgcHJvcHM6IGNvbFBy\nb3BzLFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIGNvbnN0IHByb3BzID0gX19wcm9wcztc\nbiAgICAgIGNvbnN0IHsgZ3V0dGVyIH0gPSB2dWUuaW5qZWN0KHJvd0NvbnRleHRLZXksIHsgZ3V0\ndGVyOiB2dWUuY29tcHV0ZWQoKCkgPT4gMCkgfSk7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVz\ncGFjZShcImNvbFwiKTtcbiAgICAgIGNvbnN0IHN0eWxlID0gdnVlLmNvbXB1dGVkKCgpID0+IHtc\nbiAgICAgICAgY29uc3Qgc3R5bGVzID0ge307XG4gICAgICAgIGlmIChndXR0ZXIudmFsdWUpIHtc\nbiAgICAgICAgICBzdHlsZXMucGFkZGluZ0xlZnQgPSBzdHlsZXMucGFkZGluZ1JpZ2h0ID0gYCR7\nZ3V0dGVyLnZhbHVlIFwvIDJ9cHhgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHlsZXM7\nXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGNvbEtscyA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4g\nICAgICAgIGNvbnN0IGNsYXNzZXMgPSBbXTtcbiAgICAgICAgY29uc3QgcG9zID0gW1wic3Bhblwi\nLCBcIm9mZnNldFwiLCBcInB1bGxcIiwgXCJwdXNoXCJdO1xuICAgICAgICBwb3MuZm9yRWFjaCgo\ncHJvcCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNpemUgPSBwcm9wc1twcm9wXTtcbiAgICAgICAg\nICBpZiAoaXNOdW1iZXIoc2l6ZSkpIHtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSBcInNwYW5c\nIilcbiAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKG5zLmIoYCR7cHJvcHNbcHJvcF19YCkpO1xu\nICAgICAgICAgICAgZWxzZSBpZiAoc2l6ZSA+IDApXG4gICAgICAgICAgICAgIGNsYXNzZXMucHVz\naChucy5iKGAke3Byb3B9LSR7cHJvcHNbcHJvcF19YCkpO1xuICAgICAgICAgIH1cbiAgICAgICAg\nfSk7XG4gICAgICAgIGNvbnN0IHNpemVzID0gW1wieHNcIiwgXCJzbVwiLCBcIm1kXCIsIFwibGdc\nIiwgXCJ4bFwiXTtcbiAgICAgICAgc2l6ZXMuZm9yRWFjaCgoc2l6ZSkgPT4ge1xuICAgICAgICAg\nIGlmIChpc051bWJlcihwcm9wc1tzaXplXSkpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChu\ncy5iKGAke3NpemV9LSR7cHJvcHNbc2l6ZV19YCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNP\nYmplY3QkMShwcm9wc1tzaXplXSkpIHtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHByb3Bz\nW3NpemVdKS5mb3JFYWNoKChbcHJvcCwgc2l6ZVByb3BdKSA9PiB7XG4gICAgICAgICAgICAgIGNs\nYXNzZXMucHVzaChwcm9wICE9PSBcInNwYW5cIiA\/IG5zLmIoYCR7c2l6ZX0tJHtwcm9wfS0ke3Np\nemVQcm9wfWApIDogbnMuYihgJHtzaXplfS0ke3NpemVQcm9wfWApKTtcbiAgICAgICAgICAgIH0p\nO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChndXR0ZXIudmFsdWUpIHtc\nbiAgICAgICAgICBjbGFzc2VzLnB1c2gobnMuaXMoXCJndXR0ZXJlZFwiKSk7XG4gICAgICAgIH1c\nbiAgICAgICAgcmV0dXJuIFtucy5iKCksIGNsYXNzZXNdO1xuICAgICAgfSk7XG4gICAgICByZXR1\ncm4gKF9jdHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2\ndWUuY3JlYXRlQmxvY2sodnVlLnJlc29sdmVEeW5hbWljQ29tcG9uZW50KF9jdHgudGFnKSwge1xu\nICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVmKGNvbEtscykpLFxu\nICAgICAgICAgIHN0eWxlOiB2dWUubm9ybWFsaXplU3R5bGUodnVlLnVucmVmKHN0eWxlKSlcbiAg\nICAgICAgfSwge1xuICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAg\nICAgICAgIHZ1ZS5yZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImRlZmF1bHRcIilcbiAgICAgICAg\nICBdKSxcbiAgICAgICAgICBfOiAzXG4gICAgICAgIH0sIDgsIFtcImNsYXNzXCIsIFwic3R5bGVc\nIl0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICB2YXIgQ29sID0gXC8qIEBfX1BVUkVfXyAq\nXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJHQsIFtbXCJfX2ZpbGVcIiwgXCJjb2wudnVlXCJdXSk7\nXG4gIGNvbnN0IEVsQ29sID0gd2l0aEluc3RhbGwoQ29sKTtcbiAgY29uc3QgX19kZWZhdWx0X18k\nZiA9IHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIG5hbWU6IFwiRWxDb250YWluZXJcIlxuICB9\nKTtcbiAgY29uc3QgX3NmY19tYWluJHMgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29t\ncG9uZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyRmLFxuICAgIHByb3BzOiB7XG4gICAgICBkaXJl\nY3Rpb246IHtcbiAgICAgICAgdHlwZTogU3RyaW5nXG4gICAgICB9XG4gICAgfSxcbiAgICBzZXR1\ncChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBz\nbG90cyA9IHZ1ZS51c2VTbG90cygpO1xuICAgICAgY29uc3QgbnMgPSB1c2VOYW1lc3BhY2UoXCJj\nb250YWluZXJcIik7XG4gICAgICBjb25zdCBpc1ZlcnRpY2FsID0gdnVlLmNvbXB1dGVkKCgpID0+\nIHtcbiAgICAgICAgaWYgKHByb3BzLmRpcmVjdGlvbiA9PT0gXCJ2ZXJ0aWNhbFwiKSB7XG4gICAg\nICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvcHMuZGlyZWN0aW9uID09\nPSBcImhvcml6b250YWxcIikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxu\nICAgICAgICBpZiAoc2xvdHMgJiYgc2xvdHMuZGVmYXVsdCkge1xuICAgICAgICAgIGNvbnN0IHZO\nb2RlcyA9IHNsb3RzLmRlZmF1bHQoKTtcbiAgICAgICAgICByZXR1cm4gdk5vZGVzLnNvbWUoKHZO\nb2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWcgPSB2Tm9kZS50eXBlLm5hbWU7XG4gICAg\nICAgICAgICByZXR1cm4gdGFnID09PSBcIkVsSGVhZGVyXCIgfHwgdGFnID09PSBcIkVsRm9vdGVy\nXCI7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZh\nbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9\nPiB7XG4gICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50Qmxv\nY2soXCJzZWN0aW9uXCIsIHtcbiAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKFt2\ndWUudW5yZWYobnMpLmIoKSwgdnVlLnVucmVmKG5zKS5pcyhcInZlcnRpY2FsXCIsIHZ1ZS51bnJl\nZihpc1ZlcnRpY2FsKSldKVxuICAgICAgICB9LCBbXG4gICAgICAgICAgdnVlLnJlbmRlclNsb3Qo\nX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiKVxuICAgICAgICBdLCAyKTtcbiAgICAgIH07XG4gICAg\nfVxuICB9KTtcbiAgdmFyIENvbnRhaW5lciA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2Zj\nKF9zZmNfbWFpbiRzLCBbW1wiX19maWxlXCIsIFwiY29udGFpbmVyLnZ1ZVwiXV0pO1xuICBjb25z\ndCBfX2RlZmF1bHRfXyRlID0gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJFbEFz\naWRlXCJcbiAgfSk7XG4gIGNvbnN0IF9zZmNfbWFpbiRyID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVl\nLmRlZmluZUNvbXBvbmVudCh7XG4gICAgLi4uX19kZWZhdWx0X18kZSxcbiAgICBwcm9wczoge1xu\nICAgICAgd2lkdGg6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBkZWZhdWx0OiBu\ndWxsXG4gICAgICB9XG4gICAgfSxcbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBw\ncm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcImFzaWRlXCIp\nO1xuICAgICAgY29uc3Qgc3R5bGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4gcHJvcHMud2lkdGggPyBu\ncy5jc3NWYXJCbG9jayh7IHdpZHRoOiBwcm9wcy53aWR0aCB9KSA6IHt9KTtcbiAgICAgIHJldHVy\nbiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1\nZS5jcmVhdGVFbGVtZW50QmxvY2soXCJhc2lkZVwiLCB7XG4gICAgICAgICAgY2xhc3M6IHZ1ZS5u\nb3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmIoKSksXG4gICAgICAgICAgc3R5bGU6IHZ1ZS5u\nb3JtYWxpemVTdHlsZSh2dWUudW5yZWYoc3R5bGUpKVxuICAgICAgICB9LCBbXG4gICAgICAgICAg\ndnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVsdFwiKVxuICAgICAgICBdLCA2KTtc\nbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFyIEFzaWRlID0gXC8qIEBfX1BVUkVfXyAqXC8g\nX2V4cG9ydF9zZmMoX3NmY19tYWluJHIsIFtbXCJfX2ZpbGVcIiwgXCJhc2lkZS52dWVcIl1dKTtc\nbiAgY29uc3QgX19kZWZhdWx0X18kZCA9IHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIG5hbWU6\nIFwiRWxGb290ZXJcIlxuICB9KTtcbiAgY29uc3QgX3NmY19tYWluJHEgPSBcLyogQF9fUFVSRV9f\nICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyRkLFxuICAgIHBy\nb3BzOiB7XG4gICAgICBoZWlnaHQ6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBk\nZWZhdWx0OiBudWxsXG4gICAgICB9XG4gICAgfSxcbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAg\nICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShc\nImZvb3RlclwiKTtcbiAgICAgIGNvbnN0IHN0eWxlID0gdnVlLmNvbXB1dGVkKCgpID0+IHByb3Bz\nLmhlaWdodCA\/IG5zLmNzc1ZhckJsb2NrKHsgaGVpZ2h0OiBwcm9wcy5oZWlnaHQgfSkgOiB7fSk7\nXG4gICAgICByZXR1cm4gKF9jdHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICByZXR1cm4gdnVlLm9w\nZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKFwiZm9vdGVyXCIsIHtcbiAgICAgICAg\nICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihucykuYigpKSxcbiAgICAgICAg\nICBzdHlsZTogdnVlLm5vcm1hbGl6ZVN0eWxlKHZ1ZS51bnJlZihzdHlsZSkpXG4gICAgICAgIH0s\nIFtcbiAgICAgICAgICB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJkZWZhdWx0XCIpXG4g\nICAgICAgIF0sIDYpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICB2YXIgRm9vdGVyID0gXC8q\nIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJHEsIFtbXCJfX2ZpbGVcIiwgXCJm\nb290ZXIudnVlXCJdXSk7XG4gIGNvbnN0IF9fZGVmYXVsdF9fJGMgPSB2dWUuZGVmaW5lQ29tcG9u\nZW50KHtcbiAgICBuYW1lOiBcIkVsSGVhZGVyXCJcbiAgfSk7XG4gIGNvbnN0IF9zZmNfbWFpbiRw\nID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgLi4uX19kZWZh\ndWx0X18kYyxcbiAgICBwcm9wczoge1xuICAgICAgaGVpZ2h0OiB7XG4gICAgICAgIHR5cGU6IFN0\ncmluZyxcbiAgICAgICAgZGVmYXVsdDogbnVsbFxuICAgICAgfVxuICAgIH0sXG4gICAgc2V0dXAo\nX19wcm9wcykge1xuICAgICAgY29uc3QgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgY29uc3QgbnMg\nPSB1c2VOYW1lc3BhY2UoXCJoZWFkZXJcIik7XG4gICAgICBjb25zdCBzdHlsZSA9IHZ1ZS5jb21w\ndXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9wcy5oZWlnaHQgPyBucy5jc3NWYXJCbG9j\nayh7XG4gICAgICAgICAgaGVpZ2h0OiBwcm9wcy5oZWlnaHRcbiAgICAgICAgfSkgOiB7fTtcbiAg\nICAgIH0pO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0dXJu\nIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImhlYWRlclwiLCB7XG4g\nICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmIoKSksXG4g\nICAgICAgICAgc3R5bGU6IHZ1ZS5ub3JtYWxpemVTdHlsZSh2dWUudW5yZWYoc3R5bGUpKVxuICAg\nICAgICB9LCBbXG4gICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVmYXVs\ndFwiKVxuICAgICAgICBdLCA2KTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFyIEhlYWRl\nciA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjKF9zZmNfbWFpbiRwLCBbW1wiX19maWxl\nXCIsIFwiaGVhZGVyLnZ1ZVwiXV0pO1xuICBjb25zdCBfX2RlZmF1bHRfXyRiID0gdnVlLmRlZmlu\nZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJFbE1haW5cIlxuICB9KTtcbiAgY29uc3QgX3NmY19t\nYWluJG8gPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICAuLi5f\nX2RlZmF1bHRfXyRiLFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIGNvbnN0IG5zID0gdXNl\nTmFtZXNwYWNlKFwibWFpblwiKTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4g\nICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2soXCJt\nYWluXCIsIHtcbiAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihu\ncykuYigpKVxuICAgICAgICB9LCBbXG4gICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xv\ndHMsIFwiZGVmYXVsdFwiKVxuICAgICAgICBdLCAyKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtc\nbiAgdmFyIE1haW4gPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kbywg\nW1tcIl9fZmlsZVwiLCBcIm1haW4udnVlXCJdXSk7XG4gIGNvbnN0IEVsQ29udGFpbmVyID0gd2l0\naEluc3RhbGwoQ29udGFpbmVyLCB7XG4gICAgQXNpZGUsXG4gICAgRm9vdGVyLFxuICAgIEhlYWRl\ncixcbiAgICBNYWluXG4gIH0pO1xuICB3aXRoTm9vcEluc3RhbGwoQXNpZGUpO1xuICB3aXRoTm9v\ncEluc3RhbGwoRm9vdGVyKTtcbiAgY29uc3QgRWxIZWFkZXIgPSB3aXRoTm9vcEluc3RhbGwoSGVh\nZGVyKTtcbiAgY29uc3QgRWxNYWluID0gd2l0aE5vb3BJbnN0YWxsKE1haW4pO1xuICBjb25zdCBk\naXZpZGVyUHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICBkaXJlY3Rpb246IHtcbiAgICAgIHR5cGU6\nIFN0cmluZyxcbiAgICAgIHZhbHVlczogW1wiaG9yaXpvbnRhbFwiLCBcInZlcnRpY2FsXCJdLFxu\nICAgICAgZGVmYXVsdDogXCJob3Jpem9udGFsXCJcbiAgICB9LFxuICAgIGNvbnRlbnRQb3NpdGlv\nbjoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgdmFsdWVzOiBbXCJsZWZ0XCIsIFwiY2Vu\ndGVyXCIsIFwicmlnaHRcIl0sXG4gICAgICBkZWZhdWx0OiBcImNlbnRlclwiXG4gICAgfSxcbiAg\nICBib3JkZXJTdHlsZToge1xuICAgICAgdHlwZTogZGVmaW5lUHJvcFR5cGUoU3RyaW5nKSxcbiAg\nICAgIGRlZmF1bHQ6IFwic29saWRcIlxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IF9fZGVmYXVsdF9f\nJGEgPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBcIkVsRGl2aWRlclwiXG4gIH0p\nO1xuICBjb25zdCBfc2ZjX21haW4kbiA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21w\nb25lbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJGEsXG4gICAgcHJvcHM6IGRpdmlkZXJQcm9wcyxc\nbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAg\nICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcImRpdmlkZXJcIik7XG4gICAgICBjb25zdCBkaXZp\nZGVyU3R5bGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnMuY3NzVmFy\nKHtcbiAgICAgICAgICBcImJvcmRlci1zdHlsZVwiOiBwcm9wcy5ib3JkZXJTdHlsZVxuICAgICAg\nICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAg\nICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwi\nLCB7XG4gICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFzcyhbdnVlLnVucmVmKG5zKS5i\nKCksIHZ1ZS51bnJlZihucykubShfY3R4LmRpcmVjdGlvbildKSxcbiAgICAgICAgICBzdHlsZTog\ndnVlLm5vcm1hbGl6ZVN0eWxlKHZ1ZS51bnJlZihkaXZpZGVyU3R5bGUpKSxcbiAgICAgICAgICBy\nb2xlOiBcInNlcGFyYXRvclwiXG4gICAgICAgIH0sIFtcbiAgICAgICAgICBfY3R4LiRzbG90cy5k\nZWZhdWx0ICYmIF9jdHguZGlyZWN0aW9uICE9PSBcInZlcnRpY2FsXCIgPyAodnVlLm9wZW5CbG9j\naygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICAgICAgICAgIGtleTog\nMCxcbiAgICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3MoW3Z1ZS51bnJlZihucyku\nZShcInRleHRcIiksIHZ1ZS51bnJlZihucykuaXMoX2N0eC5jb250ZW50UG9zaXRpb24pXSlcbiAg\nICAgICAgICB9LCBbXG4gICAgICAgICAgICB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJk\nZWZhdWx0XCIpXG4gICAgICAgICAgXSwgMikpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYt\naWZcIiwgdHJ1ZSlcbiAgICAgICAgXSwgNik7XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHZh\nciBEaXZpZGVyID0gXC8qIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJG4sIFtb\nXCJfX2ZpbGVcIiwgXCJkaXZpZGVyLnZ1ZVwiXV0pO1xuICBjb25zdCBFbERpdmlkZXIgPSB3aXRo\nSW5zdGFsbChEaXZpZGVyKTtcbiAgY29uc3QgX2hvaXN0ZWRfMSRnID0ge1xuICAgIHZpZXdCb3g6\nIFwiMCAwIDc5IDg2XCIsXG4gICAgdmVyc2lvbjogXCIxLjFcIixcbiAgICB4bWxuczogXCJodHRw\nOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIixcbiAgICBcInhtbG5zOnhsaW5rXCI6IFwiaHR0\ncDpcL1wvd3d3LnczLm9yZ1wvMTk5OVwveGxpbmtcIlxuICB9O1xuICBjb25zdCBfaG9pc3RlZF8y\nJGIgPSBbXCJpZFwiXTtcbiAgY29uc3QgX2hvaXN0ZWRfMyQ4ID0gW1wic3RvcC1jb2xvclwiXTtc\nbiAgY29uc3QgX2hvaXN0ZWRfNCQ4ID0gW1wic3RvcC1jb2xvclwiXTtcbiAgY29uc3QgX2hvaXN0\nZWRfNSQ4ID0gW1wiaWRcIl07XG4gIGNvbnN0IF9ob2lzdGVkXzYkNyA9IFtcInN0b3AtY29sb3Jc\nIl07XG4gIGNvbnN0IF9ob2lzdGVkXzckNSA9IFtcInN0b3AtY29sb3JcIl07XG4gIGNvbnN0IF9o\nb2lzdGVkXzgkNSA9IFtcImlkXCJdO1xuICBjb25zdCBfaG9pc3RlZF85JDIgPSB7XG4gICAgaWQ6\nIFwiSWxsdXN0cmF0aW9uc1wiLFxuICAgIHN0cm9rZTogXCJub25lXCIsXG4gICAgXCJzdHJva2Ut\nd2lkdGhcIjogXCIxXCIsXG4gICAgZmlsbDogXCJub25lXCIsXG4gICAgXCJmaWxsLXJ1bGVcIjog\nXCJldmVub2RkXCJcbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMTAkMSA9IHtcbiAgICBpZDogXCJC\nLXR5cGVcIixcbiAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC0xMjY4LjAwMDAwMCwgLTUzNS4w\nMDAwMDApXCJcbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMTEkMSA9IHtcbiAgICBpZDogXCJHcm91\ncC0yXCIsXG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgxMjY4LjAwMDAwMCwgNTM1LjAwMDAw\nMClcIlxuICB9O1xuICBjb25zdCBfaG9pc3RlZF8xMiQxID0gW1wiZmlsbFwiXTtcbiAgY29uc3Qg\nX2hvaXN0ZWRfMTMkMSA9IFtcImZpbGxcIl07XG4gIGNvbnN0IF9ob2lzdGVkXzE0JDEgPSB7XG4g\nICAgaWQ6IFwiR3JvdXAtQ29weVwiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMzQuNTAw\nMDAwLCAzMS41MDAwMDApIHNjYWxlKC0xLCAxKSByb3RhdGUoLTI1LjAwMDAwMCkgdHJhbnNsYXRl\nKC0zNC41MDAwMDAsIC0zMS41MDAwMDApIHRyYW5zbGF0ZSg3LjAwMDAwMCwgMTAuMDAwMDAwKVwi\nXG4gIH07XG4gIGNvbnN0IF9ob2lzdGVkXzE1JDIgPSBbXCJmaWxsXCJdO1xuICBjb25zdCBfaG9p\nc3RlZF8xNiQyID0gW1wiZmlsbFwiXTtcbiAgY29uc3QgX2hvaXN0ZWRfMTckMSA9IFtcImZpbGxc\nIl07XG4gIGNvbnN0IF9ob2lzdGVkXzE4ID0gW1wiZmlsbFwiXTtcbiAgY29uc3QgX2hvaXN0ZWRf\nMTkgPSBbXCJmaWxsXCJdO1xuICBjb25zdCBfaG9pc3RlZF8yMCA9IHtcbiAgICBpZDogXCJSZWN0\nYW5nbGUtQ29weS0xN1wiLFxuICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoNTMuMDAwMDAwLCA0\nNS4wMDAwMDApXCJcbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMjEgPSBbXCJmaWxsXCIsIFwieGxp\nbms6aHJlZlwiXTtcbiAgY29uc3QgX2hvaXN0ZWRfMjIgPSBbXCJmaWxsXCIsIFwibWFza1wiXTtc\nbiAgY29uc3QgX2hvaXN0ZWRfMjMgPSBbXCJmaWxsXCJdO1xuICBjb25zdCBfX2RlZmF1bHRfXyQ5\nID0gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJJbWdFbXB0eVwiXG4gIH0pO1xu\nICBjb25zdCBfc2ZjX21haW4kbSA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25l\nbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJDksXG4gICAgc2V0dXAoX19wcm9wcykge1xuICAgICAg\nY29uc3QgbnMgPSB1c2VOYW1lc3BhY2UoXCJlbXB0eVwiKTtcbiAgICAgIGNvbnN0IGlkID0gdXNl\nSWQoKTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAgIHJldHVybiB2\ndWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2soXCJzdmdcIiwgX2hvaXN0ZWRf\nMSRnLCBbXG4gICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRlZnNcIiwgbnVsbCwg\nW1xuICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImxpbmVhckdyYWRpZW50XCIs\nIHtcbiAgICAgICAgICAgICAgaWQ6IGBsaW5lYXJHcmFkaWVudC0xLSR7dnVlLnVucmVmKGlkKX1g\nLFxuICAgICAgICAgICAgICB4MTogXCIzOC44NTAzMDg2JVwiLFxuICAgICAgICAgICAgICB5MTog\nXCIwJVwiLFxuICAgICAgICAgICAgICB4MjogXCI2MS4xNDk2OTE0JVwiLFxuICAgICAgICAgICAg\nICB5MjogXCIxMDAlXCJcbiAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0\nZUVsZW1lbnRWTm9kZShcInN0b3BcIiwge1xuICAgICAgICAgICAgICAgIFwic3RvcC1jb2xvclwi\nOiBgdmFyKCR7dnVlLnVucmVmKG5zKS5jc3NWYXJCbG9ja05hbWUoXCJmaWxsLWNvbG9yLTFcIil9\nKWAsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBcIjAlXCJcbiAgICAgICAgICAgICAgfSwgbnVs\nbCwgOCwgX2hvaXN0ZWRfMyQ4KSxcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9k\nZShcInN0b3BcIiwge1xuICAgICAgICAgICAgICAgIFwic3RvcC1jb2xvclwiOiBgdmFyKCR7dnVl\nLnVucmVmKG5zKS5jc3NWYXJCbG9ja05hbWUoXCJmaWxsLWNvbG9yLTRcIil9KWAsXG4gICAgICAg\nICAgICAgICAgb2Zmc2V0OiBcIjEwMCVcIlxuICAgICAgICAgICAgICB9LCBudWxsLCA4LCBfaG9p\nc3RlZF80JDgpXG4gICAgICAgICAgICBdLCA4LCBfaG9pc3RlZF8yJGIpLFxuICAgICAgICAgICAg\ndnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImxpbmVhckdyYWRpZW50XCIsIHtcbiAgICAgICAgICAg\nICAgaWQ6IGBsaW5lYXJHcmFkaWVudC0yLSR7dnVlLnVucmVmKGlkKX1gLFxuICAgICAgICAgICAg\nICB4MTogXCIwJVwiLFxuICAgICAgICAgICAgICB5MTogXCI5LjUlXCIsXG4gICAgICAgICAgICAg\nIHgyOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgeTI6IFwiOTAuNSVcIlxuICAgICAgICAgICAg\nfSwgW1xuICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwic3RvcFwiLCB7XG4g\nICAgICAgICAgICAgICAgXCJzdG9wLWNvbG9yXCI6IGB2YXIoJHt2dWUudW5yZWYobnMpLmNzc1Zh\nckJsb2NrTmFtZShcImZpbGwtY29sb3ItMVwiKX0pYCxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6\nIFwiMCVcIlxuICAgICAgICAgICAgICB9LCBudWxsLCA4LCBfaG9pc3RlZF82JDcpLFxuICAgICAg\nICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwic3RvcFwiLCB7XG4gICAgICAgICAgICAg\nICAgXCJzdG9wLWNvbG9yXCI6IGB2YXIoJHt2dWUudW5yZWYobnMpLmNzc1ZhckJsb2NrTmFtZShc\nImZpbGwtY29sb3ItNlwiKX0pYCxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IFwiMTAwJVwiXG4g\nICAgICAgICAgICAgIH0sIG51bGwsIDgsIF9ob2lzdGVkXzckNSlcbiAgICAgICAgICAgIF0sIDgs\nIF9ob2lzdGVkXzUkOCksXG4gICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwicmVj\ndFwiLCB7XG4gICAgICAgICAgICAgIGlkOiBgcGF0aC0zLSR7dnVlLnVucmVmKGlkKX1gLFxuICAg\nICAgICAgICAgICB4OiBcIjBcIixcbiAgICAgICAgICAgICAgeTogXCIwXCIsXG4gICAgICAgICAg\nICAgIHdpZHRoOiBcIjE3XCIsXG4gICAgICAgICAgICAgIGhlaWdodDogXCIzNlwiXG4gICAgICAg\nICAgICB9LCBudWxsLCA4LCBfaG9pc3RlZF84JDUpXG4gICAgICAgICAgXSksXG4gICAgICAgICAg\ndnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImdcIiwgX2hvaXN0ZWRfOSQyLCBbXG4gICAgICAgICAg\nICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZ1wiLCBfaG9pc3RlZF8xMCQxLCBbXG4gICAgICAg\nICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJnXCIsIF9ob2lzdGVkXzExJDEsIFtcbiAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0aFwiLCB7XG4gICAgICAg\nICAgICAgICAgICBpZDogXCJPdmFsLUNvcHktMlwiLFxuICAgICAgICAgICAgICAgICAgZDogXCJN\nMzkuNSw4NiBDNjEuMzE1MjQ3Niw4NiA3OSw4My45MTA2NjIyIDc5LDgxLjMzMzMzMzMgQzc5LDc4\nLjc1NjAwNDUgNTcuMzE1MjQ3Niw3OCAzNS41LDc4IEMxMy42ODQ3NTI0LDc4IDAsNzguNzU2MDA0\nNSAwLDgxLjMzMzMzMzMgQzAsODMuOTEwNjYyMiAxNy42ODQ3NTI0LDg2IDM5LjUsODYgWlwiLFxu\nICAgICAgICAgICAgICAgICAgZmlsbDogYHZhcigke3Z1ZS51bnJlZihucykuY3NzVmFyQmxvY2tO\nYW1lKFwiZmlsbC1jb2xvci0zXCIpfSlgXG4gICAgICAgICAgICAgICAgfSwgbnVsbCwgOCwgX2hv\naXN0ZWRfMTIkMSksXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInBv\nbHlnb25cIiwge1xuICAgICAgICAgICAgICAgICAgaWQ6IFwiUmVjdGFuZ2xlLUNvcHktMTRcIixc\nbiAgICAgICAgICAgICAgICAgIGZpbGw6IGB2YXIoJHt2dWUudW5yZWYobnMpLmNzc1ZhckJsb2Nr\nTmFtZShcImZpbGwtY29sb3ItN1wiKX0pYCxcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTog\nXCJ0cmFuc2xhdGUoMjcuNTAwMDAwLCA1MS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUo\nLTI3LjUwMDAwMCwgLTUxLjUwMDAwMCkgXCIsXG4gICAgICAgICAgICAgICAgICBwb2ludHM6IFwi\nMTMgNTggNTMgNTggNDIgNDUgMiA0NVwiXG4gICAgICAgICAgICAgICAgfSwgbnVsbCwgOCwgX2hv\naXN0ZWRfMTMkMSksXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImdc\nIiwgX2hvaXN0ZWRfMTQkMSwgW1xuICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRW\nTm9kZShcInBvbHlnb25cIiwge1xuICAgICAgICAgICAgICAgICAgICBpZDogXCJSZWN0YW5nbGUt\nQ29weS0xMFwiLFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBgdmFyKCR7dnVlLnVucmVmKG5z\nKS5jc3NWYXJCbG9ja05hbWUoXCJmaWxsLWNvbG9yLTdcIil9KWAsXG4gICAgICAgICAgICAgICAg\nICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoMTEuNTAwMDAwLCA1LjAwMDAwMCkgc2NhbGUoMSwg\nLTEpIHRyYW5zbGF0ZSgtMTEuNTAwMDAwLCAtNS4wMDAwMDApIFwiLFxuICAgICAgICAgICAgICAg\nICAgICBwb2ludHM6IFwiMi44NDA3ODMxNmUtMTQgMyAxOCAzIDIzIDcgNSA3XCJcbiAgICAgICAg\nICAgICAgICAgIH0sIG51bGwsIDgsIF9ob2lzdGVkXzE1JDIpLFxuICAgICAgICAgICAgICAgICAg\ndnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInBvbHlnb25cIiwge1xuICAgICAgICAgICAgICAgICAg\nICBpZDogXCJSZWN0YW5nbGUtQ29weS0xMVwiLFxuICAgICAgICAgICAgICAgICAgICBmaWxsOiBg\ndmFyKCR7dnVlLnVucmVmKG5zKS5jc3NWYXJCbG9ja05hbWUoXCJmaWxsLWNvbG9yLTVcIil9KWAs\nXG4gICAgICAgICAgICAgICAgICAgIHBvaW50czogXCItMy42OTE0OTE1NmUtMTUgNyAzOCA3IDM4\nIDQzIC0zLjY5MTQ5MTU2ZS0xNSA0M1wiXG4gICAgICAgICAgICAgICAgICB9LCBudWxsLCA4LCBf\naG9pc3RlZF8xNiQyKSxcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUo\nXCJyZWN0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwiUmVjdGFuZ2xlLUNvcHktMTJc\nIixcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogYHVybCgjbGluZWFyR3JhZGllbnQtMS0ke3Z1\nZS51bnJlZihpZCl9KWAsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xh\ndGUoNDYuNTAwMDAwLCAyNS4wMDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTQ2LjUwMDAw\nMCwgLTI1LjAwMDAwMCkgXCIsXG4gICAgICAgICAgICAgICAgICAgIHg6IFwiMzhcIixcbiAgICAg\nICAgICAgICAgICAgICAgeTogXCI3XCIsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjE3\nXCIsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIzNlwiXG4gICAgICAgICAgICAgICAg\nICB9LCBudWxsLCA4LCBfaG9pc3RlZF8xNyQxKSxcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVh\ndGVFbGVtZW50Vk5vZGUoXCJwb2x5Z29uXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IFwi\nUmVjdGFuZ2xlLUNvcHktMTNcIixcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogYHZhcigke3Z1\nZS51bnJlZihucykuY3NzVmFyQmxvY2tOYW1lKFwiZmlsbC1jb2xvci0yXCIpfSlgLFxuICAgICAg\nICAgICAgICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNsYXRlKDM5LjUwMDAwMCwgMy41MDAwMDAp\nIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTM5LjUwMDAwMCwgLTMuNTAwMDAwKSBcIixcbiAgICAg\nICAgICAgICAgICAgICAgcG9pbnRzOiBcIjI0IDcgNDEgNyA1NSAtMy42MzgwNjIwN2UtMTIgMzgg\nLTMuNjM4MDYyMDdlLTEyXCJcbiAgICAgICAgICAgICAgICAgIH0sIG51bGwsIDgsIF9ob2lzdGVk\nXzE4KVxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVt\nZW50Vk5vZGUoXCJyZWN0XCIsIHtcbiAgICAgICAgICAgICAgICAgIGlkOiBcIlJlY3RhbmdsZS1D\nb3B5LTE1XCIsXG4gICAgICAgICAgICAgICAgICBmaWxsOiBgdXJsKCNsaW5lYXJHcmFkaWVudC0y\nLSR7dnVlLnVucmVmKGlkKX0pYCxcbiAgICAgICAgICAgICAgICAgIHg6IFwiMTNcIixcbiAgICAg\nICAgICAgICAgICAgIHk6IFwiNDVcIixcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjQwXCIs\nXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMzZcIlxuICAgICAgICAgICAgICAgIH0sIG51\nbGwsIDgsIF9ob2lzdGVkXzE5KSxcbiAgICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZO\nb2RlKFwiZ1wiLCBfaG9pc3RlZF8yMCwgW1xuICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVs\nZW1lbnRWTm9kZShcInVzZVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIk1hc2tcIixc\nbiAgICAgICAgICAgICAgICAgICAgZmlsbDogYHZhcigke3Z1ZS51bnJlZihucykuY3NzVmFyQmxv\nY2tOYW1lKFwiZmlsbC1jb2xvci04XCIpfSlgLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zv\ncm06IFwidHJhbnNsYXRlKDguNTAwMDAwLCAxOC4wMDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xh\ndGUoLTguNTAwMDAwLCAtMTguMDAwMDAwKSBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ4bGlu\nazpocmVmXCI6IGAjcGF0aC0zLSR7dnVlLnVucmVmKGlkKX1gXG4gICAgICAgICAgICAgICAgICB9\nLCBudWxsLCA4LCBfaG9pc3RlZF8yMSksXG4gICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxl\nbWVudFZOb2RlKFwicG9seWdvblwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIlJlY3Rh\nbmdsZS1Db3B5XCIsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IGB2YXIoJHt2dWUudW5yZWYo\nbnMpLmNzc1ZhckJsb2NrTmFtZShcImZpbGwtY29sb3ItOVwiKX0pYCxcbiAgICAgICAgICAgICAg\nICAgICAgbWFzazogYHVybCgjbWFzay00LSR7dnVlLnVucmVmKGlkKX0pYCxcbiAgICAgICAgICAg\nICAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgxMi4wMDAwMDAsIDkuMDAwMDAwKSBzY2Fs\nZSgtMSwgMSkgdHJhbnNsYXRlKC0xMi4wMDAwMDAsIC05LjAwMDAwMCkgXCIsXG4gICAgICAgICAg\nICAgICAgICAgIHBvaW50czogXCI3IDAgMjQgMCAyMCAxOCA3IDE2LjVcIlxuICAgICAgICAgICAg\nICAgICAgfSwgbnVsbCwgOCwgX2hvaXN0ZWRfMjIpXG4gICAgICAgICAgICAgICAgXSksXG4gICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInBvbHlnb25cIiwge1xuICAgICAg\nICAgICAgICAgICAgaWQ6IFwiUmVjdGFuZ2xlLUNvcHktMThcIixcbiAgICAgICAgICAgICAgICAg\nIGZpbGw6IGB2YXIoJHt2dWUudW5yZWYobnMpLmNzc1ZhckJsb2NrTmFtZShcImZpbGwtY29sb3It\nMlwiKX0pYCxcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoNjYuMDAw\nMDAwLCA1MS41MDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTY2LjAwMDAwMCwgLTUxLjUw\nMDAwMCkgXCIsXG4gICAgICAgICAgICAgICAgICBwb2ludHM6IFwiNjIgNDUgNzkgNDUgNzAgNTgg\nNTMgNThcIlxuICAgICAgICAgICAgICAgIH0sIG51bGwsIDgsIF9ob2lzdGVkXzIzKVxuICAgICAg\nICAgICAgICBdKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgICBdKVxuICAgICAgICBdKTtcbiAg\nICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFyIEltZ0VtcHR5ID0gXC8qIEBfX1BVUkVfXyAqXC8g\nX2V4cG9ydF9zZmMoX3NmY19tYWluJG0sIFtbXCJfX2ZpbGVcIiwgXCJpbWctZW1wdHkudnVlXCJd\nXSk7XG4gIGNvbnN0IGVtcHR5UHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICBpbWFnZToge1xuICAg\nICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVmYXVsdDogXCJcIlxuICAgIH0sXG4gICAgaW1hZ2VT\naXplOiBOdW1iZXIsXG4gICAgZGVzY3JpcHRpb246IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAg\nICAgIGRlZmF1bHQ6IFwiXCJcbiAgICB9XG4gIH0pO1xuICBjb25zdCBfaG9pc3RlZF8xJGYgPSBb\nXCJzcmNcIl07XG4gIGNvbnN0IF9ob2lzdGVkXzIkYSA9IHsga2V5OiAxIH07XG4gIGNvbnN0IF9f\nZGVmYXVsdF9fJDggPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBcIkVsRW1wdHlc\nIlxuICB9KTtcbiAgY29uc3QgX3NmY19tYWluJGwgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVm\naW5lQ29tcG9uZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyQ4LFxuICAgIHByb3BzOiBlbXB0eVBy\nb3BzLFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIGNvbnN0IHByb3BzID0gX19wcm9wcztc\nbiAgICAgIGNvbnN0IHsgdCB9ID0gdXNlTG9jYWxlKCk7XG4gICAgICBjb25zdCBucyA9IHVzZU5h\nbWVzcGFjZShcImVtcHR5XCIpO1xuICAgICAgY29uc3QgZW1wdHlEZXNjcmlwdGlvbiA9IHZ1ZS5j\nb21wdXRlZCgoKSA9PiBwcm9wcy5kZXNjcmlwdGlvbiB8fCB0KFwiZWwudGFibGUuZW1wdHlUZXh0\nXCIpKTtcbiAgICAgIGNvbnN0IGltYWdlU3R5bGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4gKHtcbiAg\nICAgICAgd2lkdGg6IGFkZFVuaXQocHJvcHMuaW1hZ2VTaXplKVxuICAgICAgfSkpO1xuICAgICAg\ncmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2so\nKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3M6IHZ1\nZS5ub3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmIoKSlcbiAgICAgICAgfSwgW1xuICAgICAg\nICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAgICAgICAgY2xhc3M6\nIHZ1ZS5ub3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmUoXCJpbWFnZVwiKSksXG4gICAgICAg\nICAgICBzdHlsZTogdnVlLm5vcm1hbGl6ZVN0eWxlKHZ1ZS51bnJlZihpbWFnZVN0eWxlKSlcbiAg\nICAgICAgICB9LCBbXG4gICAgICAgICAgICBfY3R4LmltYWdlID8gKHZ1ZS5vcGVuQmxvY2soKSwg\ndnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImltZ1wiLCB7XG4gICAgICAgICAgICAgIGtleTogMCxc\nbiAgICAgICAgICAgICAgc3JjOiBfY3R4LmltYWdlLFxuICAgICAgICAgICAgICBvbmRyYWdzdGFy\ndDogXCJyZXR1cm4gZmFsc2VcIlxuICAgICAgICAgICAgfSwgbnVsbCwgOCwgX2hvaXN0ZWRfMSRm\nKSkgOiB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJpbWFnZVwiLCB7IGtleTogMSB9LCAo\nKSA9PiBbXG4gICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShJbWdFbXB0eSlcbiAgICAgICAg\nICAgIF0pXG4gICAgICAgICAgXSwgNiksXG4gICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9k\nZShcImRpdlwiLCB7XG4gICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51\nbnJlZihucykuZShcImRlc2NyaXB0aW9uXCIpKVxuICAgICAgICAgIH0sIFtcbiAgICAgICAgICAg\nIF9jdHguJHNsb3RzLmRlc2NyaXB0aW9uID8gdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwi\nZGVzY3JpcHRpb25cIiwgeyBrZXk6IDAgfSkgOiAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRl\nRWxlbWVudEJsb2NrKFwicFwiLCBfaG9pc3RlZF8yJGEsIHZ1ZS50b0Rpc3BsYXlTdHJpbmcodnVl\nLnVucmVmKGVtcHR5RGVzY3JpcHRpb24pKSwgMSkpXG4gICAgICAgICAgXSwgMiksXG4gICAgICAg\nICAgX2N0eC4kc2xvdHMuZGVmYXVsdCA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVt\nZW50QmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgY2xh\nc3M6IHZ1ZS5ub3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmUoXCJib3R0b21cIikpXG4gICAg\nICAgICAgfSwgW1xuICAgICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwiZGVm\nYXVsdFwiKVxuICAgICAgICAgIF0sIDIpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJ2LWlm\nXCIsIHRydWUpXG4gICAgICAgIF0sIDIpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICB2YXIg\nRW1wdHkgPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kbCwgW1tcIl9f\nZmlsZVwiLCBcImVtcHR5LnZ1ZVwiXV0pO1xuICBjb25zdCBFbEVtcHR5ID0gd2l0aEluc3RhbGwo\nRW1wdHkpO1xuICBjb25zdCBpbWFnZVZpZXdlclByb3BzID0gYnVpbGRQcm9wcyh7XG4gICAgdXJs\nTGlzdDoge1xuICAgICAgdHlwZTogZGVmaW5lUHJvcFR5cGUoQXJyYXkpLFxuICAgICAgZGVmYXVs\ndDogKCkgPT4gbXV0YWJsZShbXSlcbiAgICB9LFxuICAgIHpJbmRleDoge1xuICAgICAgdHlwZTog\nTnVtYmVyXG4gICAgfSxcbiAgICBpbml0aWFsSW5kZXg6IHtcbiAgICAgIHR5cGU6IE51bWJlcixc\nbiAgICAgIGRlZmF1bHQ6IDBcbiAgICB9LFxuICAgIGluZmluaXRlOiB7XG4gICAgICB0eXBlOiBC\nb29sZWFuLFxuICAgICAgZGVmYXVsdDogdHJ1ZVxuICAgIH0sXG4gICAgaGlkZU9uQ2xpY2tNb2Rh\nbDogQm9vbGVhbixcbiAgICB0ZWxlcG9ydGVkOiBCb29sZWFuLFxuICAgIGNsb3NlT25QcmVzc0Vz\nY2FwZToge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWVcbiAgICB9\nLFxuICAgIHpvb21SYXRlOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBkZWZhdWx0OiAx\nLjJcbiAgICB9LFxuICAgIG1pblNjYWxlOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBk\nZWZhdWx0OiAwLjJcbiAgICB9LFxuICAgIG1heFNjYWxlOiB7XG4gICAgICB0eXBlOiBOdW1iZXIs\nXG4gICAgICBkZWZhdWx0OiA3XG4gICAgfSxcbiAgICBjcm9zc29yaWdpbjoge1xuICAgICAgdHlw\nZTogZGVmaW5lUHJvcFR5cGUoU3RyaW5nKVxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IGltYWdlVmll\nd2VyRW1pdHMgPSB7XG4gICAgY2xvc2U6ICgpID0+IHRydWUsXG4gICAgc3dpdGNoOiAoaW5kZXgp\nID0+IGlzTnVtYmVyKGluZGV4KSxcbiAgICByb3RhdGU6IChkZWcpID0+IGlzTnVtYmVyKGRlZylc\nbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMSRlID0gW1wic3JjXCIsIFwiY3Jvc3NvcmlnaW5cIl07\nXG4gIGNvbnN0IF9fZGVmYXVsdF9fJDcgPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1l\nOiBcIkVsSW1hZ2VWaWV3ZXJcIlxuICB9KTtcbiAgY29uc3QgX3NmY19tYWluJGsgPSBcLyogQF9f\nUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyQ3LFxu\nICAgIHByb3BzOiBpbWFnZVZpZXdlclByb3BzLFxuICAgIGVtaXRzOiBpbWFnZVZpZXdlckVtaXRz\nLFxuICAgIHNldHVwKF9fcHJvcHMsIHsgZXhwb3NlLCBlbWl0IH0pIHtcbiAgICAgIHZhciBfYTM7\nXG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBtb2RlcyA9IHtcbiAg\nICAgICAgQ09OVEFJTjoge1xuICAgICAgICAgIG5hbWU6IFwiY29udGFpblwiLFxuICAgICAgICAg\nIGljb246IHZ1ZS5tYXJrUmF3KGljb25zVnVlLkZ1bGxTY3JlZW4pXG4gICAgICAgIH0sXG4gICAg\nICAgIE9SSUdJTkFMOiB7XG4gICAgICAgICAgbmFtZTogXCJvcmlnaW5hbFwiLFxuICAgICAgICAg\nIGljb246IHZ1ZS5tYXJrUmF3KGljb25zVnVlLlNjYWxlVG9PcmlnaW5hbClcbiAgICAgICAgfVxu\nICAgICAgfTtcbiAgICAgIGNvbnN0IHsgdCB9ID0gdXNlTG9jYWxlKCk7XG4gICAgICBjb25zdCBu\ncyA9IHVzZU5hbWVzcGFjZShcImltYWdlLXZpZXdlclwiKTtcbiAgICAgIGNvbnN0IHsgbmV4dFpJ\nbmRleCB9ID0gdXNlWkluZGV4KCk7XG4gICAgICBjb25zdCB3cmFwcGVyID0gdnVlLnJlZigpO1xu\nICAgICAgY29uc3QgaW1nUmVmcyA9IHZ1ZS5yZWYoW10pO1xuICAgICAgY29uc3Qgc2NvcGVFdmVu\ndExpc3RlbmVyID0gdnVlLmVmZmVjdFNjb3BlKCk7XG4gICAgICBjb25zdCBsb2FkaW5nID0gdnVl\nLnJlZih0cnVlKTtcbiAgICAgIGNvbnN0IGFjdGl2ZUluZGV4ID0gdnVlLnJlZihwcm9wcy5pbml0\naWFsSW5kZXgpO1xuICAgICAgY29uc3QgbW9kZSA9IHZ1ZS5zaGFsbG93UmVmKG1vZGVzLkNPTlRB\nSU4pO1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gdnVlLnJlZih7XG4gICAgICAgIHNjYWxlOiAx\nLFxuICAgICAgICBkZWc6IDAsXG4gICAgICAgIG9mZnNldFg6IDAsXG4gICAgICAgIG9mZnNldFk6\nIDAsXG4gICAgICAgIGVuYWJsZVRyYW5zaXRpb246IGZhbHNlXG4gICAgICB9KTtcbiAgICAgIGNv\nbnN0IHpJbmRleDIgPSB2dWUucmVmKChfYTMgPSBwcm9wcy56SW5kZXgpICE9IG51bGwgPyBfYTMg\nOiBuZXh0WkluZGV4KCkpO1xuICAgICAgY29uc3QgaXNTaW5nbGUgPSB2dWUuY29tcHV0ZWQoKCkg\nPT4ge1xuICAgICAgICBjb25zdCB7IHVybExpc3QgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4g\ndXJsTGlzdC5sZW5ndGggPD0gMTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaXNGaXJzdCA9IHZ1\nZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBhY3RpdmVJbmRleC52YWx1ZSA9PT0g\nMDtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaXNMYXN0ID0gdnVlLmNvbXB1dGVkKCgpID0+IHtc\nbiAgICAgICAgcmV0dXJuIGFjdGl2ZUluZGV4LnZhbHVlID09PSBwcm9wcy51cmxMaXN0Lmxlbmd0\naCAtIDE7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGN1cnJlbnRJbWcgPSB2dWUuY29tcHV0ZWQo\nKCkgPT4ge1xuICAgICAgICByZXR1cm4gcHJvcHMudXJsTGlzdFthY3RpdmVJbmRleC52YWx1ZV07\nXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGFycm93UHJldktscyA9IHZ1ZS5jb21wdXRlZCgoKSA9\nPiBbXG4gICAgICAgIG5zLmUoXCJidG5cIiksXG4gICAgICAgIG5zLmUoXCJwcmV2XCIpLFxuICAg\nICAgICBucy5pcyhcImRpc2FibGVkXCIsICFwcm9wcy5pbmZpbml0ZSAmJiBpc0ZpcnN0LnZhbHVl\nKVxuICAgICAgXSk7XG4gICAgICBjb25zdCBhcnJvd05leHRLbHMgPSB2dWUuY29tcHV0ZWQoKCkg\nPT4gW1xuICAgICAgICBucy5lKFwiYnRuXCIpLFxuICAgICAgICBucy5lKFwibmV4dFwiKSxcbiAg\nICAgICAgbnMuaXMoXCJkaXNhYmxlZFwiLCAhcHJvcHMuaW5maW5pdGUgJiYgaXNMYXN0LnZhbHVl\nKVxuICAgICAgXSk7XG4gICAgICBjb25zdCBpbWdTdHlsZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7\nXG4gICAgICAgIGNvbnN0IHsgc2NhbGUsIGRlZywgb2Zmc2V0WCwgb2Zmc2V0WSwgZW5hYmxlVHJh\nbnNpdGlvbiB9ID0gdHJhbnNmb3JtLnZhbHVlO1xuICAgICAgICBsZXQgdHJhbnNsYXRlWCA9IG9m\nZnNldFggXC8gc2NhbGU7XG4gICAgICAgIGxldCB0cmFuc2xhdGVZID0gb2Zmc2V0WSBcLyBzY2Fs\nZTtcbiAgICAgICAgc3dpdGNoIChkZWcgJSAzNjApIHtcbiAgICAgICAgICBjYXNlIDkwOlxuICAg\nICAgICAgIGNhc2UgLTI3MDpcbiAgICAgICAgICAgIFt0cmFuc2xhdGVYLCB0cmFuc2xhdGVZXSA9\nIFt0cmFuc2xhdGVZLCAtdHJhbnNsYXRlWF07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAg\nICBjYXNlIDE4MDpcbiAgICAgICAgICBjYXNlIC0xODA6XG4gICAgICAgICAgICBbdHJhbnNsYXRl\nWCwgdHJhbnNsYXRlWV0gPSBbLXRyYW5zbGF0ZVgsIC10cmFuc2xhdGVZXTtcbiAgICAgICAgICAg\nIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjcwOlxuICAgICAgICAgIGNhc2UgLTkwOlxuICAgICAg\nICAgICAgW3RyYW5zbGF0ZVgsIHRyYW5zbGF0ZVldID0gWy10cmFuc2xhdGVZLCB0cmFuc2xhdGVY\nXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0eWxlID0g\ne1xuICAgICAgICAgIHRyYW5zZm9ybTogYHNjYWxlKCR7c2NhbGV9KSByb3RhdGUoJHtkZWd9ZGVn\nKSB0cmFuc2xhdGUoJHt0cmFuc2xhdGVYfXB4LCAke3RyYW5zbGF0ZVl9cHgpYCxcbiAgICAgICAg\nICB0cmFuc2l0aW9uOiBlbmFibGVUcmFuc2l0aW9uID8gXCJ0cmFuc2Zvcm0gLjNzXCIgOiBcIlwi\nXG4gICAgICAgIH07XG4gICAgICAgIGlmIChtb2RlLnZhbHVlLm5hbWUgPT09IG1vZGVzLkNPTlRB\nSU4ubmFtZSkge1xuICAgICAgICAgIHN0eWxlLm1heFdpZHRoID0gc3R5bGUubWF4SGVpZ2h0ID0g\nXCIxMDAlXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0eWxlO1xuICAgICAgfSk7XG4g\nICAgICBmdW5jdGlvbiBoaWRlKCkge1xuICAgICAgICB1bnJlZ2lzdGVyRXZlbnRMaXN0ZW5lcigp\nO1xuICAgICAgICBlbWl0KFwiY2xvc2VcIik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiByZWdp\nc3RlckV2ZW50TGlzdGVuZXIoKSB7XG4gICAgICAgIGNvbnN0IGtleWRvd25IYW5kbGVyID0gdGhy\nb3R0bGUoKGUpID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKGUuY29kZSkge1xuICAgICAgICAgICAg\nY2FzZSBFVkVOVF9DT0RFLmVzYzpcbiAgICAgICAgICAgICAgcHJvcHMuY2xvc2VPblByZXNzRXNj\nYXBlICYmIGhpZGUoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVW\nRU5UX0NPREUuc3BhY2U6XG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGUoKTtcbiAgICAgICAgICAg\nICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVWRU5UX0NPREUubGVmdDpcbiAgICAgICAgICAg\nICAgcHJldigpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRVZFTlRf\nQ09ERS51cDpcbiAgICAgICAgICAgICAgaGFuZGxlQWN0aW9ucyhcInpvb21JblwiKTtcbiAgICAg\nICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEVWRU5UX0NPREUucmlnaHQ6XG4gICAg\nICAgICAgICAgIG5leHQoKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNl\nIEVWRU5UX0NPREUuZG93bjpcbiAgICAgICAgICAgICAgaGFuZGxlQWN0aW9ucyhcInpvb21PdXRc\nIik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAg\nICAgIGNvbnN0IG1vdXNld2hlZWxIYW5kbGVyID0gdGhyb3R0bGUoKGUpID0+IHtcbiAgICAgICAg\nICBjb25zdCBkZWx0YSA9IGUuZGVsdGFZIHx8IGUuZGVsdGFYO1xuICAgICAgICAgIGhhbmRsZUFj\ndGlvbnMoZGVsdGEgPCAwID8gXCJ6b29tSW5cIiA6IFwiem9vbU91dFwiLCB7XG4gICAgICAgICAg\nICB6b29tUmF0ZTogcHJvcHMuem9vbVJhdGUsXG4gICAgICAgICAgICBlbmFibGVUcmFuc2l0aW9u\nOiBmYWxzZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgc2NvcGVFdmVudExp\nc3RlbmVyLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdXNlRXZlbnRMaXN0ZW5lcihkb2N1bWVudCwg\nXCJrZXlkb3duXCIsIGtleWRvd25IYW5kbGVyKTtcbiAgICAgICAgICB1c2VFdmVudExpc3RlbmVy\nKGRvY3VtZW50LCBcIndoZWVsXCIsIG1vdXNld2hlZWxIYW5kbGVyKTtcbiAgICAgICAgfSk7XG4g\nICAgICB9XG4gICAgICBmdW5jdGlvbiB1bnJlZ2lzdGVyRXZlbnRMaXN0ZW5lcigpIHtcbiAgICAg\nICAgc2NvcGVFdmVudExpc3RlbmVyLnN0b3AoKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGhh\nbmRsZUltZ0xvYWQoKSB7XG4gICAgICAgIGxvYWRpbmcudmFsdWUgPSBmYWxzZTtcbiAgICAgIH1c\nbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUltZ0Vycm9yKGUpIHtcbiAgICAgICAgbG9hZGluZy52YWx1\nZSA9IGZhbHNlO1xuICAgICAgICBlLnRhcmdldC5hbHQgPSB0KFwiZWwuaW1hZ2UuZXJyb3JcIik7\nXG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBoYW5kbGVNb3VzZURvd24oZSkge1xuICAgICAgICBp\nZiAobG9hZGluZy52YWx1ZSB8fCBlLmJ1dHRvbiAhPT0gMCB8fCAhd3JhcHBlci52YWx1ZSlcbiAg\nICAgICAgICByZXR1cm47XG4gICAgICAgIHRyYW5zZm9ybS52YWx1ZS5lbmFibGVUcmFuc2l0aW9u\nID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0WCwgb2Zmc2V0WSB9ID0gdHJhbnNmb3Jt\nLnZhbHVlO1xuICAgICAgICBjb25zdCBzdGFydFggPSBlLnBhZ2VYO1xuICAgICAgICBjb25zdCBz\ndGFydFkgPSBlLnBhZ2VZO1xuICAgICAgICBjb25zdCBkcmFnSGFuZGxlciA9IHRocm90dGxlKChl\ndikgPT4ge1xuICAgICAgICAgIHRyYW5zZm9ybS52YWx1ZSA9IHtcbiAgICAgICAgICAgIC4uLnRy\nYW5zZm9ybS52YWx1ZSxcbiAgICAgICAgICAgIG9mZnNldFg6IG9mZnNldFggKyBldi5wYWdlWCAt\nIHN0YXJ0WCxcbiAgICAgICAgICAgIG9mZnNldFk6IG9mZnNldFkgKyBldi5wYWdlWSAtIHN0YXJ0\nWVxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZW1vdmVNb3VzZW1v\ndmUgPSB1c2VFdmVudExpc3RlbmVyKGRvY3VtZW50LCBcIm1vdXNlbW92ZVwiLCBkcmFnSGFuZGxl\ncik7XG4gICAgICAgIHVzZUV2ZW50TGlzdGVuZXIoZG9jdW1lbnQsIFwibW91c2V1cFwiLCAoKSA9\nPiB7XG4gICAgICAgICAgcmVtb3ZlTW91c2Vtb3ZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBl\nLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiByZXNldCgpIHtcbiAg\nICAgICAgdHJhbnNmb3JtLnZhbHVlID0ge1xuICAgICAgICAgIHNjYWxlOiAxLFxuICAgICAgICAg\nIGRlZzogMCxcbiAgICAgICAgICBvZmZzZXRYOiAwLFxuICAgICAgICAgIG9mZnNldFk6IDAsXG4g\nICAgICAgICAgZW5hYmxlVHJhbnNpdGlvbjogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgIH1cbiAg\nICAgIGZ1bmN0aW9uIHRvZ2dsZU1vZGUoKSB7XG4gICAgICAgIGlmIChsb2FkaW5nLnZhbHVlKVxu\nICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbW9kZU5hbWVzID0ga2V5c09mKG1vZGVz\nKTtcbiAgICAgICAgY29uc3QgbW9kZVZhbHVlcyA9IE9iamVjdC52YWx1ZXMobW9kZXMpO1xuICAg\nICAgICBjb25zdCBjdXJyZW50TW9kZSA9IG1vZGUudmFsdWUubmFtZTtcbiAgICAgICAgY29uc3Qg\naW5kZXggPSBtb2RlVmFsdWVzLmZpbmRJbmRleCgoaSkgPT4gaS5uYW1lID09PSBjdXJyZW50TW9k\nZSk7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IChpbmRleCArIDEpICUgbW9kZU5hbWVzLmxl\nbmd0aDtcbiAgICAgICAgbW9kZS52YWx1ZSA9IG1vZGVzW21vZGVOYW1lc1tuZXh0SW5kZXhdXTtc\nbiAgICAgICAgcmVzZXQoKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHNldEFjdGl2ZUl0ZW0o\naW5kZXgpIHtcbiAgICAgICAgY29uc3QgbGVuID0gcHJvcHMudXJsTGlzdC5sZW5ndGg7XG4gICAg\nICAgIGFjdGl2ZUluZGV4LnZhbHVlID0gKGluZGV4ICsgbGVuKSAlIGxlbjtcbiAgICAgIH1cbiAg\nICAgIGZ1bmN0aW9uIHByZXYoKSB7XG4gICAgICAgIGlmIChpc0ZpcnN0LnZhbHVlICYmICFwcm9w\ncy5pbmZpbml0ZSlcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldEFjdGl2ZUl0ZW0oYWN0\naXZlSW5kZXgudmFsdWUgLSAxKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIG5leHQoKSB7XG4g\nICAgICAgIGlmIChpc0xhc3QudmFsdWUgJiYgIXByb3BzLmluZmluaXRlKVxuICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgc2V0QWN0aXZlSXRlbShhY3RpdmVJbmRleC52YWx1ZSArIDEpO1xuICAg\nICAgfVxuICAgICAgZnVuY3Rpb24gaGFuZGxlQWN0aW9ucyhhY3Rpb24sIG9wdGlvbnMgPSB7fSkg\ne1xuICAgICAgICBpZiAobG9hZGluZy52YWx1ZSlcbiAgICAgICAgICByZXR1cm47XG4gICAgICAg\nIGNvbnN0IHsgbWluU2NhbGUsIG1heFNjYWxlIH0gPSBwcm9wcztcbiAgICAgICAgY29uc3QgeyB6\nb29tUmF0ZSwgcm90YXRlRGVnLCBlbmFibGVUcmFuc2l0aW9uIH0gPSB7XG4gICAgICAgICAgem9v\nbVJhdGU6IHByb3BzLnpvb21SYXRlLFxuICAgICAgICAgIHJvdGF0ZURlZzogOTAsXG4gICAgICAg\nICAgZW5hYmxlVHJhbnNpdGlvbjogdHJ1ZSxcbiAgICAgICAgICAuLi5vcHRpb25zXG4gICAgICAg\nIH07XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgY2FzZSBcInpvb21PdXRc\nIjpcbiAgICAgICAgICAgIGlmICh0cmFuc2Zvcm0udmFsdWUuc2NhbGUgPiBtaW5TY2FsZSkge1xu\nICAgICAgICAgICAgICB0cmFuc2Zvcm0udmFsdWUuc2NhbGUgPSBOdW1iZXIucGFyc2VGbG9hdCgo\ndHJhbnNmb3JtLnZhbHVlLnNjYWxlIFwvIHpvb21SYXRlKS50b0ZpeGVkKDMpKTtcbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJ6b29tSW5cIjpcbiAg\nICAgICAgICAgIGlmICh0cmFuc2Zvcm0udmFsdWUuc2NhbGUgPCBtYXhTY2FsZSkge1xuICAgICAg\nICAgICAgICB0cmFuc2Zvcm0udmFsdWUuc2NhbGUgPSBOdW1iZXIucGFyc2VGbG9hdCgodHJhbnNm\nb3JtLnZhbHVlLnNjYWxlICogem9vbVJhdGUpLnRvRml4ZWQoMykpO1xuICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcImNsb2Nrd2lzZVwiOlxuICAgICAg\nICAgICAgdHJhbnNmb3JtLnZhbHVlLmRlZyArPSByb3RhdGVEZWc7XG4gICAgICAgICAgICBlbWl0\nKFwicm90YXRlXCIsIHRyYW5zZm9ybS52YWx1ZS5kZWcpO1xuICAgICAgICAgICAgYnJlYWs7XG4g\nICAgICAgICAgY2FzZSBcImFudGljbG9ja3dpc2VcIjpcbiAgICAgICAgICAgIHRyYW5zZm9ybS52\nYWx1ZS5kZWcgLT0gcm90YXRlRGVnO1xuICAgICAgICAgICAgZW1pdChcInJvdGF0ZVwiLCB0cmFu\nc2Zvcm0udmFsdWUuZGVnKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAg\nIHRyYW5zZm9ybS52YWx1ZS5lbmFibGVUcmFuc2l0aW9uID0gZW5hYmxlVHJhbnNpdGlvbjtcbiAg\nICAgIH1cbiAgICAgIHZ1ZS53YXRjaChjdXJyZW50SW1nLCAoKSA9PiB7XG4gICAgICAgIHZ1ZS5u\nZXh0VGljaygoKSA9PiB7XG4gICAgICAgICAgY29uc3QgJGltZyA9IGltZ1JlZnMudmFsdWVbMF07\nXG4gICAgICAgICAgaWYgKCEoJGltZyA9PSBudWxsID8gdm9pZCAwIDogJGltZy5jb21wbGV0ZSkp\nIHtcbiAgICAgICAgICAgIGxvYWRpbmcudmFsdWUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAg\nICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHZ1ZS53YXRjaChhY3RpdmVJbmRleCwgKHZhbCkgPT4g\ne1xuICAgICAgICByZXNldCgpO1xuICAgICAgICBlbWl0KFwic3dpdGNoXCIsIHZhbCk7XG4gICAg\nICB9KTtcbiAgICAgIHZ1ZS5vbk1vdW50ZWQoKCkgPT4ge1xuICAgICAgICB2YXIgX2EyMiwgX2I7\nXG4gICAgICAgIHJlZ2lzdGVyRXZlbnRMaXN0ZW5lcigpO1xuICAgICAgICAoX2IgPSAoX2EyMiA9\nIHdyYXBwZXIudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfYTIyLmZvY3VzKSA9PSBudWxsID8g\ndm9pZCAwIDogX2IuY2FsbChfYTIyKTtcbiAgICAgIH0pO1xuICAgICAgZXhwb3NlKHtcbiAgICAg\nICAgc2V0QWN0aXZlSXRlbVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gKF9jdHgsIF9jYWNoZSkg\nPT4ge1xuICAgICAgICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2sodnVl\nLlRlbGVwb3J0LCB7XG4gICAgICAgICAgdG86IFwiYm9keVwiLFxuICAgICAgICAgIGRpc2FibGVk\nOiAhX2N0eC50ZWxlcG9ydGVkXG4gICAgICAgIH0sIFtcbiAgICAgICAgICB2dWUuY3JlYXRlVk5v\nZGUodnVlLlRyYW5zaXRpb24sIHtcbiAgICAgICAgICAgIG5hbWU6IFwidmlld2VyLWZhZGVcIixc\nbiAgICAgICAgICAgIGFwcGVhcjogXCJcIlxuICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgIGRl\nZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1l\nbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgcmVmX2tleTogXCJ3cmFwcGVyXCIs\nXG4gICAgICAgICAgICAgICAgcmVmOiB3cmFwcGVyLFxuICAgICAgICAgICAgICAgIHRhYmluZGV4\nOiAtMSxcbiAgICAgICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJl\nZihucykuZShcIndyYXBwZXJcIikpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB2dWUubm9ybWFs\naXplU3R5bGUoeyB6SW5kZXg6IHpJbmRleDIudmFsdWUgfSlcbiAgICAgICAgICAgICAgfSwgW1xu\nICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAg\nICAgICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFzcyh2dWUudW5yZWYobnMpLmUoXCJt\nYXNrXCIpKSxcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVswXSB8fCAoX2NhY2hl\nWzBdID0gdnVlLndpdGhNb2RpZmllcnMoKCRldmVudCkgPT4gX2N0eC5oaWRlT25DbGlja01vZGFs\nICYmIGhpZGUoKSwgW1wic2VsZlwiXSkpXG4gICAgICAgICAgICAgICAgfSwgbnVsbCwgMiksXG4g\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcIiBDTE9TRSBcIiksXG4gICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAg\nICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFzcyhbdnVlLnVucmVmKG5zKS5lKFwiYnRu\nXCIpLCB2dWUudW5yZWYobnMpLmUoXCJjbG9zZVwiKV0pLFxuICAgICAgICAgICAgICAgICAgb25D\nbGljazogaGlkZVxuICAgICAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVWTm9kZSh2dWUudW5yZWYoRWxJY29uKSwgbnVsbCwge1xuICAgICAgICAgICAgICAgICAg\nICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgdnVl\nLmNyZWF0ZVZOb2RlKHZ1ZS51bnJlZihpY29uc1Z1ZS5DbG9zZSkpXG4gICAgICAgICAgICAgICAg\nICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICB9KVxu\nICAgICAgICAgICAgICAgIF0sIDIpLFxuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVDb21tZW50\nVk5vZGUoXCIgQVJST1cgXCIpLFxuICAgICAgICAgICAgICAgICF2dWUudW5yZWYoaXNTaW5nbGUp\nID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQs\nIHsga2V5OiAwIH0sIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUo\nXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFz\ncyh2dWUudW5yZWYoYXJyb3dQcmV2S2xzKSksXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6\nIHByZXZcbiAgICAgICAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZVZOb2RlKHZ1ZS51bnJlZihFbEljb24pLCBudWxsLCB7XG4gICAgICAgICAgICAgICAgICAg\nICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAg\ndnVlLmNyZWF0ZVZOb2RlKHZ1ZS51bnJlZihpY29uc1Z1ZS5BcnJvd0xlZnQpKVxuICAgICAgICAg\nICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAg\nICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIF0sIDIpLFxuICAgICAgICAgICAgICAgICAg\ndnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgICAgICAgICAgICBj\nbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihhcnJvd05leHRLbHMpKSxcbiAgICAg\nICAgICAgICAgICAgICAgb25DbGljazogbmV4dFxuICAgICAgICAgICAgICAgICAgfSwgW1xuICAg\nICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKEVsSWNvbiksIG51bGws\nIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4g\nICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKGljb25zVnVl\nLkFycm93UmlnaHQpKVxuICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAg\nICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIF0s\nIDIpXG4gICAgICAgICAgICAgICAgXSwgNjQpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJ2\nLWlmXCIsIHRydWUpLFxuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCIg\nQUNUSU9OUyBcIiksXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRp\ndlwiLCB7XG4gICAgICAgICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKFt2dWUu\ndW5yZWYobnMpLmUoXCJidG5cIiksIHZ1ZS51bnJlZihucykuZShcImFjdGlvbnNcIildKVxuICAg\nICAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5v\nZGUoXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNs\nYXNzKHZ1ZS51bnJlZihucykuZShcImFjdGlvbnNfX2lubmVyXCIpKVxuICAgICAgICAgICAgICAg\nICAgfSwgW1xuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKEVs\nSWNvbiksIHtcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMV0gfHwgKF9j\nYWNoZVsxXSA9ICgkZXZlbnQpID0+IGhhbmRsZUFjdGlvbnMoXCJ6b29tT3V0XCIpKVxuICAgICAg\nICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndp\ndGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKHZ1\nZS51bnJlZihpY29uc1Z1ZS5ab29tT3V0KSlcbiAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAg\nICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKEVsSWNvbiksIHtcbiAgICAg\nICAgICAgICAgICAgICAgICBvbkNsaWNrOiBfY2FjaGVbMl0gfHwgKF9jYWNoZVsyXSA9ICgkZXZl\nbnQpID0+IGhhbmRsZUFjdGlvbnMoXCJ6b29tSW5cIikpXG4gICAgICAgICAgICAgICAgICAgIH0s\nIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4g\nICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKGljb25zVnVl\nLlpvb21JbikpXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdnVl\nLmNyZWF0ZUVsZW1lbnRWTm9kZShcImlcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNz\nOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVmKG5zKS5lKFwiYWN0aW9uc19fZGl2aWRlclwi\nKSlcbiAgICAgICAgICAgICAgICAgICAgfSwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAgICAg\nIHZ1ZS5jcmVhdGVWTm9kZSh2dWUudW5yZWYoRWxJY29uKSwgeyBvbkNsaWNrOiB0b2dnbGVNb2Rl\nIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBb\nXG4gICAgICAgICAgICAgICAgICAgICAgICAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxv\nY2sodnVlLnJlc29sdmVEeW5hbWljQ29tcG9uZW50KHZ1ZS51bnJlZihtb2RlKS5pY29uKSkpXG4g\nICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAg\nICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1l\nbnRWTm9kZShcImlcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFs\naXplQ2xhc3ModnVlLnVucmVmKG5zKS5lKFwiYWN0aW9uc19fZGl2aWRlclwiKSlcbiAgICAgICAg\nICAgICAgICAgICAgfSwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVW\nTm9kZSh2dWUudW5yZWYoRWxJY29uKSwge1xuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6\nIF9jYWNoZVszXSB8fCAoX2NhY2hlWzNdID0gKCRldmVudCkgPT4gaGFuZGxlQWN0aW9ucyhcImFu\ndGljbG9ja3dpc2VcIikpXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAg\nICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAg\nICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKGljb25zVnVlLlJlZnJlc2hMZWZ0KSlcbiAg\nICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAg\nICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUo\ndnVlLnVucmVmKEVsSWNvbiksIHtcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiBfY2Fj\naGVbNF0gfHwgKF9jYWNoZVs0XSA9ICgkZXZlbnQpID0+IGhhbmRsZUFjdGlvbnMoXCJjbG9ja3dp\nc2VcIikpXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBk\nZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB2dWUu\nY3JlYXRlVk5vZGUodnVlLnVucmVmKGljb25zVnVlLlJlZnJlc2hSaWdodCkpXG4gICAgICAgICAg\nICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAg\nICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgXSwgMilcbiAgICAgICAgICAgICAgICBdLCAy\nKSxcbiAgICAgICAgICAgICAgICB2dWUuY3JlYXRlQ29tbWVudFZOb2RlKFwiIENBTlZBUyBcIiks\nXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAg\nICAgICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihucykuZShc\nImNhbnZhc1wiKSlcbiAgICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgICAodnVl\nLm9wZW5CbG9jayh0cnVlKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQsIG51\nbGwsIHZ1ZS5yZW5kZXJMaXN0KF9jdHgudXJsTGlzdCwgKHVybCwgaSkgPT4ge1xuICAgICAgICAg\nICAgICAgICAgICByZXR1cm4gdnVlLndpdGhEaXJlY3RpdmVzKCh2dWUub3BlbkJsb2NrKCksIHZ1\nZS5jcmVhdGVFbGVtZW50QmxvY2soXCJpbWdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIHJl\nZl9mb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgcmVmOiAoZWwpID0+IGltZ1JlZnMu\ndmFsdWVbaV0gPSBlbCxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHVybCxcbiAgICAgICAg\nICAgICAgICAgICAgICBzcmM6IHVybCxcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogdnVl\nLm5vcm1hbGl6ZVN0eWxlKHZ1ZS51bnJlZihpbWdTdHlsZSkpLFxuICAgICAgICAgICAgICAgICAg\nICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVmKG5zKS5lKFwiaW1nXCIpKSxc\nbiAgICAgICAgICAgICAgICAgICAgICBjcm9zc29yaWdpbjogX2N0eC5jcm9zc29yaWdpbixcbiAg\nICAgICAgICAgICAgICAgICAgICBvbkxvYWQ6IGhhbmRsZUltZ0xvYWQsXG4gICAgICAgICAgICAg\nICAgICAgICAgb25FcnJvcjogaGFuZGxlSW1nRXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAg\nb25Nb3VzZWRvd246IGhhbmRsZU1vdXNlRG93blxuICAgICAgICAgICAgICAgICAgICB9LCBudWxs\nLCA0NiwgX2hvaXN0ZWRfMSRlKSksIFtcbiAgICAgICAgICAgICAgICAgICAgICBbdnVlLnZTaG93\nLCBpID09PSBhY3RpdmVJbmRleC52YWx1ZV1cbiAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAg\nICAgICAgICAgICAgICB9KSwgMTI4KSlcbiAgICAgICAgICAgICAgICBdLCAyKSxcbiAgICAgICAg\nICAgICAgICB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJkZWZhdWx0XCIpXG4gICAgICAg\nICAgICAgIF0sIDYpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF86IDNcbiAgICAgICAg\nICB9KVxuICAgICAgICBdLCA4LCBbXCJkaXNhYmxlZFwiXSk7XG4gICAgICB9O1xuICAgIH1cbiAg\nfSk7XG4gIHZhciBJbWFnZVZpZXdlciA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjKF9z\nZmNfbWFpbiRrLCBbW1wiX19maWxlXCIsIFwiaW1hZ2Utdmlld2VyLnZ1ZVwiXV0pO1xuICBjb25z\ndCBFbEltYWdlVmlld2VyID0gd2l0aEluc3RhbGwoSW1hZ2VWaWV3ZXIpO1xuICBjb25zdCBpbWFn\nZVByb3BzID0gYnVpbGRQcm9wcyh7XG4gICAgaGlkZU9uQ2xpY2tNb2RhbDogQm9vbGVhbixcbiAg\nICBzcmM6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGRlZmF1bHQ6IFwiXCJcbiAgICB9\nLFxuICAgIGZpdDoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgdmFsdWVzOiBbXCJcIiwg\nXCJjb250YWluXCIsIFwiY292ZXJcIiwgXCJmaWxsXCIsIFwibm9uZVwiLCBcInNjYWxlLWRvd25c\nIl0sXG4gICAgICBkZWZhdWx0OiBcIlwiXG4gICAgfSxcbiAgICBsb2FkaW5nOiB7XG4gICAgICB0\neXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6IFtcImVhZ2VyXCIsIFwibGF6eVwiXVxuICAgIH0s\nXG4gICAgbGF6eTogQm9vbGVhbixcbiAgICBzY3JvbGxDb250YWluZXI6IHtcbiAgICAgIHR5cGU6\nIGRlZmluZVByb3BUeXBlKFtTdHJpbmcsIE9iamVjdF0pXG4gICAgfSxcbiAgICBwcmV2aWV3U3Jj\nTGlzdDoge1xuICAgICAgdHlwZTogZGVmaW5lUHJvcFR5cGUoQXJyYXkpLFxuICAgICAgZGVmYXVs\ndDogKCkgPT4gbXV0YWJsZShbXSlcbiAgICB9LFxuICAgIHByZXZpZXdUZWxlcG9ydGVkOiBCb29s\nZWFuLFxuICAgIHpJbmRleDoge1xuICAgICAgdHlwZTogTnVtYmVyXG4gICAgfSxcbiAgICBpbml0\naWFsSW5kZXg6IHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6IDBcbiAgICB9\nLFxuICAgIGluZmluaXRlOiB7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVmYXVsdDog\ndHJ1ZVxuICAgIH0sXG4gICAgY2xvc2VPblByZXNzRXNjYXBlOiB7XG4gICAgICB0eXBlOiBCb29s\nZWFuLFxuICAgICAgZGVmYXVsdDogdHJ1ZVxuICAgIH0sXG4gICAgem9vbVJhdGU6IHtcbiAgICAg\nIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6IDEuMlxuICAgIH0sXG4gICAgbWluU2NhbGU6\nIHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6IDAuMlxuICAgIH0sXG4gICAg\nbWF4U2NhbGU6IHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6IDdcbiAgICB9\nLFxuICAgIGNyb3Nzb3JpZ2luOiB7XG4gICAgICB0eXBlOiBkZWZpbmVQcm9wVHlwZShTdHJpbmcp\nXG4gICAgfVxuICB9KTtcbiAgY29uc3QgaW1hZ2VFbWl0cyA9IHtcbiAgICBsb2FkOiAoZXZ0KSA9\nPiBldnQgaW5zdGFuY2VvZiBFdmVudCxcbiAgICBlcnJvcjogKGV2dCkgPT4gZXZ0IGluc3RhbmNl\nb2YgRXZlbnQsXG4gICAgc3dpdGNoOiAodmFsKSA9PiBpc051bWJlcih2YWwpLFxuICAgIGNsb3Nl\nOiAoKSA9PiB0cnVlLFxuICAgIHNob3c6ICgpID0+IHRydWVcbiAgfTtcbiAgY29uc3QgX2hvaXN0\nZWRfMSRkID0gW1wic3JjXCIsIFwibG9hZGluZ1wiLCBcImNyb3Nzb3JpZ2luXCJdO1xuICBjb25z\ndCBfaG9pc3RlZF8yJDkgPSB7IGtleTogMCB9O1xuICBjb25zdCBfX2RlZmF1bHRfXyQ2ID0gdnVl\nLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJFbEltYWdlXCIsXG4gICAgaW5oZXJpdEF0\ndHJzOiBmYWxzZVxuICB9KTtcbiAgY29uc3QgX3NmY19tYWluJGogPSBcLyogQF9fUFVSRV9fICpc\nLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyQ2LFxuICAgIHByb3Bz\nOiBpbWFnZVByb3BzLFxuICAgIGVtaXRzOiBpbWFnZUVtaXRzLFxuICAgIHNldHVwKF9fcHJvcHMs\nIHsgZW1pdCB9KSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBsZXQgcHJl\ndk92ZXJmbG93ID0gXCJcIjtcbiAgICAgIGNvbnN0IHsgdCB9ID0gdXNlTG9jYWxlKCk7XG4gICAg\nICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcImltYWdlXCIpO1xuICAgICAgY29uc3QgcmF3QXR0\ncnMgPSB2dWUudXNlQXR0cnMoKTtcbiAgICAgIGNvbnN0IGF0dHJzID0gdXNlQXR0cnMoKTtcbiAg\nICAgIGNvbnN0IGltYWdlU3JjID0gdnVlLnJlZigpO1xuICAgICAgY29uc3QgaGFzTG9hZEVycm9y\nID0gdnVlLnJlZihmYWxzZSk7XG4gICAgICBjb25zdCBpc0xvYWRpbmcgPSB2dWUucmVmKHRydWUp\nO1xuICAgICAgY29uc3Qgc2hvd1ZpZXdlciA9IHZ1ZS5yZWYoZmFsc2UpO1xuICAgICAgY29uc3Qg\nY29udGFpbmVyID0gdnVlLnJlZigpO1xuICAgICAgY29uc3QgX3Njcm9sbENvbnRhaW5lciA9IHZ1\nZS5yZWYoKTtcbiAgICAgIGNvbnN0IHN1cHBvcnRMb2FkaW5nID0gaXNDbGllbnQgJiYgXCJsb2Fk\naW5nXCIgaW4gSFRNTEltYWdlRWxlbWVudC5wcm90b3R5cGU7XG4gICAgICBsZXQgc3RvcFNjcm9s\nbExpc3RlbmVyO1xuICAgICAgbGV0IHN0b3BXaGVlbExpc3RlbmVyO1xuICAgICAgY29uc3QgaW1h\nZ2VLbHMgPSB2dWUuY29tcHV0ZWQoKCkgPT4gW1xuICAgICAgICBucy5lKFwiaW5uZXJcIiksXG4g\nICAgICAgIHByZXZpZXcudmFsdWUgJiYgbnMuZShcInByZXZpZXdcIiksXG4gICAgICAgIGlzTG9h\nZGluZy52YWx1ZSAmJiBucy5pcyhcImxvYWRpbmdcIilcbiAgICAgIF0pO1xuICAgICAgY29uc3Qg\nY29udGFpbmVyU3R5bGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4gcmF3QXR0cnMuc3R5bGUpO1xuICAg\nICAgY29uc3QgaW1hZ2VTdHlsZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0\nIHsgZml0IH0gPSBwcm9wcztcbiAgICAgICAgaWYgKGlzQ2xpZW50ICYmIGZpdCkge1xuICAgICAg\nICAgIHJldHVybiB7IG9iamVjdEZpdDogZml0IH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJu\nIHt9O1xuICAgICAgfSk7XG4gICAgICBjb25zdCBwcmV2aWV3ID0gdnVlLmNvbXB1dGVkKCgpID0+\nIHtcbiAgICAgICAgY29uc3QgeyBwcmV2aWV3U3JjTGlzdCB9ID0gcHJvcHM7XG4gICAgICAgIHJl\ndHVybiBBcnJheS5pc0FycmF5KHByZXZpZXdTcmNMaXN0KSAmJiBwcmV2aWV3U3JjTGlzdC5sZW5n\ndGggPiAwO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBpbWFnZUluZGV4ID0gdnVlLmNvbXB1dGVk\nKCgpID0+IHtcbiAgICAgICAgY29uc3QgeyBwcmV2aWV3U3JjTGlzdCwgaW5pdGlhbEluZGV4IH0g\nPSBwcm9wcztcbiAgICAgICAgbGV0IHByZXZpZXdJbmRleCA9IGluaXRpYWxJbmRleDtcbiAgICAg\nICAgaWYgKGluaXRpYWxJbmRleCA+IHByZXZpZXdTcmNMaXN0Lmxlbmd0aCAtIDEpIHtcbiAgICAg\nICAgICBwcmV2aWV3SW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmV2aWV3\nSW5kZXg7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGlzTWFudWFsID0gdnVlLmNvbXB1dGVkKCgp\nID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmxvYWRpbmcgPT09IFwiZWFnZXJcIilcbiAgICAgICAg\nICByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiAhc3VwcG9ydExvYWRpbmcgJiYgcHJvcHMu\nbG9hZGluZyA9PT0gXCJsYXp5XCIgfHwgcHJvcHMubGF6eTtcbiAgICAgIH0pO1xuICAgICAgY29u\nc3QgbG9hZEltYWdlID0gKCkgPT4ge1xuICAgICAgICBpZiAoIWlzQ2xpZW50KVxuICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgaXNMb2FkaW5nLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgaGFzTG9h\nZEVycm9yLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIGltYWdlU3JjLnZhbHVlID0gcHJvcHMuc3Jj\nO1xuICAgICAgfTtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUxvYWQoZXZlbnQpIHtcbiAgICAgICAg\naXNMb2FkaW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIGhhc0xvYWRFcnJvci52YWx1ZSA9IGZh\nbHNlO1xuICAgICAgICBlbWl0KFwibG9hZFwiLCBldmVudCk7XG4gICAgICB9XG4gICAgICBmdW5j\ndGlvbiBoYW5kbGVFcnJvcihldmVudCkge1xuICAgICAgICBpc0xvYWRpbmcudmFsdWUgPSBmYWxz\nZTtcbiAgICAgICAgaGFzTG9hZEVycm9yLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgZW1pdChcImVy\ncm9yXCIsIGV2ZW50KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIGhhbmRsZUxhenlMb2FkKCkg\ne1xuICAgICAgICBpZiAoaXNJbkNvbnRhaW5lcihjb250YWluZXIudmFsdWUsIF9zY3JvbGxDb250\nYWluZXIudmFsdWUpKSB7XG4gICAgICAgICAgbG9hZEltYWdlKCk7XG4gICAgICAgICAgcmVtb3Zl\nTGF6eUxvYWRMaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBsYXp5\nTG9hZEhhbmRsZXIgPSB1c2VUaHJvdHRsZUZuKGhhbmRsZUxhenlMb2FkLCAyMDAsIHRydWUpO1xu\nICAgICAgYXN5bmMgZnVuY3Rpb24gYWRkTGF6eUxvYWRMaXN0ZW5lcigpIHtcbiAgICAgICAgdmFy\nIF9hMztcbiAgICAgICAgaWYgKCFpc0NsaWVudClcbiAgICAgICAgICByZXR1cm47XG4gICAgICAg\nIGF3YWl0IHZ1ZS5uZXh0VGljaygpO1xuICAgICAgICBjb25zdCB7IHNjcm9sbENvbnRhaW5lciB9\nID0gcHJvcHM7XG4gICAgICAgIGlmIChpc0VsZW1lbnQoc2Nyb2xsQ29udGFpbmVyKSkge1xuICAg\nICAgICAgIF9zY3JvbGxDb250YWluZXIudmFsdWUgPSBzY3JvbGxDb250YWluZXI7XG4gICAgICAg\nIH0gZWxzZSBpZiAoaXNTdHJpbmcoc2Nyb2xsQ29udGFpbmVyKSAmJiBzY3JvbGxDb250YWluZXIg\nIT09IFwiXCIpIHtcbiAgICAgICAgICBfc2Nyb2xsQ29udGFpbmVyLnZhbHVlID0gKF9hMyA9IGRv\nY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2Nyb2xsQ29udGFpbmVyKSkgIT0gbnVsbCA\/IF9hMyA6IHZv\naWQgMDtcbiAgICAgICAgfSBlbHNlIGlmIChjb250YWluZXIudmFsdWUpIHtcbiAgICAgICAgICBf\nc2Nyb2xsQ29udGFpbmVyLnZhbHVlID0gZ2V0U2Nyb2xsQ29udGFpbmVyKGNvbnRhaW5lci52YWx1\nZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF9zY3JvbGxDb250YWluZXIudmFsdWUpIHtcbiAg\nICAgICAgICBzdG9wU2Nyb2xsTGlzdGVuZXIgPSB1c2VFdmVudExpc3RlbmVyKF9zY3JvbGxDb250\nYWluZXIsIFwic2Nyb2xsXCIsIGxhenlMb2FkSGFuZGxlcik7XG4gICAgICAgICAgc2V0VGltZW91\ndCgoKSA9PiBoYW5kbGVMYXp5TG9hZCgpLCAxMDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAg\nICBmdW5jdGlvbiByZW1vdmVMYXp5TG9hZExpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIWlzQ2xp\nZW50IHx8ICFfc2Nyb2xsQ29udGFpbmVyLnZhbHVlIHx8ICFsYXp5TG9hZEhhbmRsZXIpXG4gICAg\nICAgICAgcmV0dXJuO1xuICAgICAgICBzdG9wU2Nyb2xsTGlzdGVuZXIgPT0gbnVsbCA\/IHZvaWQg\nMCA6IHN0b3BTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgICBfc2Nyb2xsQ29udGFpbmVyLnZhbHVl\nID0gdm9pZCAwO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gd2hlZWxIYW5kbGVyKGUpIHtcbiAg\nICAgICAgaWYgKCFlLmN0cmxLZXkpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoZS5k\nZWx0YVkgPCAwKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHJl\ndHVybiBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmRlbHRhWSA+IDApIHtcbiAgICAgICAg\nICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9\nXG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBjbGlja0hhbmRsZXIoKSB7XG4gICAgICAgIGlmICgh\ncHJldmlldy52YWx1ZSlcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN0b3BXaGVlbExpc3Rl\nbmVyID0gdXNlRXZlbnRMaXN0ZW5lcihcIndoZWVsXCIsIHdoZWVsSGFuZGxlciwge1xuICAgICAg\nICAgIHBhc3NpdmU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBwcmV2T3ZlcmZsb3cgPSBk\nb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93O1xuICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxl\nLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcbiAgICAgICAgc2hvd1ZpZXdlci52YWx1ZSA9IHRydWU7\nXG4gICAgICAgIGVtaXQoXCJzaG93XCIpO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY2xvc2VW\naWV3ZXIoKSB7XG4gICAgICAgIHN0b3BXaGVlbExpc3RlbmVyID09IG51bGwgPyB2b2lkIDAgOiBz\ndG9wV2hlZWxMaXN0ZW5lcigpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93\nID0gcHJldk92ZXJmbG93O1xuICAgICAgICBzaG93Vmlld2VyLnZhbHVlID0gZmFsc2U7XG4gICAg\nICAgIGVtaXQoXCJjbG9zZVwiKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHN3aXRjaFZpZXdl\ncih2YWwpIHtcbiAgICAgICAgZW1pdChcInN3aXRjaFwiLCB2YWwpO1xuICAgICAgfVxuICAgICAg\ndnVlLndhdGNoKCgpID0+IHByb3BzLnNyYywgKCkgPT4ge1xuICAgICAgICBpZiAoaXNNYW51YWwu\ndmFsdWUpIHtcbiAgICAgICAgICBpc0xvYWRpbmcudmFsdWUgPSB0cnVlO1xuICAgICAgICAgIGhh\nc0xvYWRFcnJvci52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgIHJlbW92ZUxhenlMb2FkTGlzdGVu\nZXIoKTtcbiAgICAgICAgICBhZGRMYXp5TG9hZExpc3RlbmVyKCk7XG4gICAgICAgIH0gZWxzZSB7\nXG4gICAgICAgICAgbG9hZEltYWdlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdnVl\nLm9uTW91bnRlZCgoKSA9PiB7XG4gICAgICAgIGlmIChpc01hbnVhbC52YWx1ZSkge1xuICAgICAg\nICAgIGFkZExhenlMb2FkTGlzdGVuZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBs\nb2FkSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gKF9jdHgsIF9j\nYWNoZSkgPT4ge1xuICAgICAgICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxl\nbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICAgICAgICByZWZfa2V5OiBcImNvbnRhaW5lclwiLFxu\nICAgICAgICAgIHJlZjogY29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXpl\nQ2xhc3MoW3Z1ZS51bnJlZihucykuYigpLCBfY3R4LiRhdHRycy5jbGFzc10pLFxuICAgICAgICAg\nIHN0eWxlOiB2dWUubm9ybWFsaXplU3R5bGUodnVlLnVucmVmKGNvbnRhaW5lclN0eWxlKSlcbiAg\nICAgICAgfSwgW1xuICAgICAgICAgIGhhc0xvYWRFcnJvci52YWx1ZSA\/IHZ1ZS5yZW5kZXJTbG90\nKF9jdHguJHNsb3RzLCBcImVycm9yXCIsIHsga2V5OiAwIH0sICgpID0+IFtcbiAgICAgICAgICAg\nIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwge1xuICAgICAgICAgICAgICBjbGFzczog\ndnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihucykuZShcImVycm9yXCIpKVxuICAgICAgICAg\nICAgfSwgdnVlLnRvRGlzcGxheVN0cmluZyh2dWUudW5yZWYodCkoXCJlbC5pbWFnZS5lcnJvclwi\nKSksIDMpXG4gICAgICAgICAgXSkgOiAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVu\ndEJsb2NrKHZ1ZS5GcmFnbWVudCwgeyBrZXk6IDEgfSwgW1xuICAgICAgICAgICAgaW1hZ2VTcmMu\ndmFsdWUgIT09IHZvaWQgMCA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50Qmxv\nY2soXCJpbWdcIiwgdnVlLm1lcmdlUHJvcHMoeyBrZXk6IDAgfSwgdnVlLnVucmVmKGF0dHJzKSwg\ne1xuICAgICAgICAgICAgICBzcmM6IGltYWdlU3JjLnZhbHVlLFxuICAgICAgICAgICAgICBsb2Fk\naW5nOiBfY3R4LmxvYWRpbmcsXG4gICAgICAgICAgICAgIHN0eWxlOiB2dWUudW5yZWYoaW1hZ2VT\ndHlsZSksXG4gICAgICAgICAgICAgIGNsYXNzOiB2dWUudW5yZWYoaW1hZ2VLbHMpLFxuICAgICAg\nICAgICAgICBjcm9zc29yaWdpbjogX2N0eC5jcm9zc29yaWdpbixcbiAgICAgICAgICAgICAgb25D\nbGljazogY2xpY2tIYW5kbGVyLFxuICAgICAgICAgICAgICBvbkxvYWQ6IGhhbmRsZUxvYWQsXG4g\nICAgICAgICAgICAgIG9uRXJyb3I6IGhhbmRsZUVycm9yXG4gICAgICAgICAgICB9KSwgbnVsbCwg\nMTYsIF9ob2lzdGVkXzEkZCkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1\nZSksXG4gICAgICAgICAgICBpc0xvYWRpbmcudmFsdWUgPyAodnVlLm9wZW5CbG9jaygpLCB2dWUu\nY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAgICAgICAgICAgICAga2V5OiAxLFxuICAg\nICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihucykuZShcIndy\nYXBwZXJcIikpXG4gICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgIHZ1ZS5yZW5kZXJTbG90\nKF9jdHguJHNsb3RzLCBcInBsYWNlaG9sZGVyXCIsIHt9LCAoKSA9PiBbXG4gICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgICBj\nbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihucykuZShcInBsYWNlaG9sZGVyXCIp\nKVxuICAgICAgICAgICAgICAgIH0sIG51bGwsIDIpXG4gICAgICAgICAgICAgIF0pXG4gICAgICAg\nICAgICBdLCAyKSkgOiB2dWUuY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAg\nICAgICAgIF0sIDY0KSksXG4gICAgICAgICAgdnVlLnVucmVmKHByZXZpZXcpID8gKHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQsIHsga2V5OiAyIH0s\nIFtcbiAgICAgICAgICAgIHNob3dWaWV3ZXIudmFsdWUgPyAodnVlLm9wZW5CbG9jaygpLCB2dWUu\nY3JlYXRlQmxvY2sodnVlLnVucmVmKEVsSW1hZ2VWaWV3ZXIpLCB7XG4gICAgICAgICAgICAgIGtl\neTogMCxcbiAgICAgICAgICAgICAgXCJ6LWluZGV4XCI6IF9jdHguekluZGV4LFxuICAgICAgICAg\nICAgICBcImluaXRpYWwtaW5kZXhcIjogdnVlLnVucmVmKGltYWdlSW5kZXgpLFxuICAgICAgICAg\nICAgICBpbmZpbml0ZTogX2N0eC5pbmZpbml0ZSxcbiAgICAgICAgICAgICAgXCJ6b29tLXJhdGVc\nIjogX2N0eC56b29tUmF0ZSxcbiAgICAgICAgICAgICAgXCJtaW4tc2NhbGVcIjogX2N0eC5taW5T\nY2FsZSxcbiAgICAgICAgICAgICAgXCJtYXgtc2NhbGVcIjogX2N0eC5tYXhTY2FsZSxcbiAgICAg\nICAgICAgICAgXCJ1cmwtbGlzdFwiOiBfY3R4LnByZXZpZXdTcmNMaXN0LFxuICAgICAgICAgICAg\nICBjcm9zc29yaWdpbjogX2N0eC5jcm9zc29yaWdpbixcbiAgICAgICAgICAgICAgXCJoaWRlLW9u\nLWNsaWNrLW1vZGFsXCI6IF9jdHguaGlkZU9uQ2xpY2tNb2RhbCxcbiAgICAgICAgICAgICAgdGVs\nZXBvcnRlZDogX2N0eC5wcmV2aWV3VGVsZXBvcnRlZCxcbiAgICAgICAgICAgICAgXCJjbG9zZS1v\nbi1wcmVzcy1lc2NhcGVcIjogX2N0eC5jbG9zZU9uUHJlc3NFc2NhcGUsXG4gICAgICAgICAgICAg\nIG9uQ2xvc2U6IGNsb3NlVmlld2VyLFxuICAgICAgICAgICAgICBvblN3aXRjaDogc3dpdGNoVmll\nd2VyXG4gICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4\nKCgpID0+IFtcbiAgICAgICAgICAgICAgICBfY3R4LiRzbG90cy52aWV3ZXIgPyAodnVlLm9wZW5C\nbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIF9ob2lzdGVkXzIkOSwgW1xu\nICAgICAgICAgICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0eC4kc2xvdHMsIFwidmlld2VyXCIp\nXG4gICAgICAgICAgICAgICAgXSkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwg\ndHJ1ZSlcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgIF86IDNcbiAgICAgICAgICAg\nIH0sIDgsIFtcInotaW5kZXhcIiwgXCJpbml0aWFsLWluZGV4XCIsIFwiaW5maW5pdGVcIiwgXCJ6\nb29tLXJhdGVcIiwgXCJtaW4tc2NhbGVcIiwgXCJtYXgtc2NhbGVcIiwgXCJ1cmwtbGlzdFwiLCBc\nImNyb3Nzb3JpZ2luXCIsIFwiaGlkZS1vbi1jbGljay1tb2RhbFwiLCBcInRlbGVwb3J0ZWRcIiwg\nXCJjbG9zZS1vbi1wcmVzcy1lc2NhcGVcIl0pKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJ2\nLWlmXCIsIHRydWUpXG4gICAgICAgICAgXSwgNjQpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUo\nXCJ2LWlmXCIsIHRydWUpXG4gICAgICAgIF0sIDYpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xu\nICB2YXIgSW1hZ2UgPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kaiwg\nW1tcIl9fZmlsZVwiLCBcImltYWdlLnZ1ZVwiXV0pO1xuICBjb25zdCBFbEltYWdlID0gd2l0aElu\nc3RhbGwoSW1hZ2UpO1xuICBjb25zdCBsaW5rUHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICB0eXBl\nOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6IFtcInByaW1hcnlcIiwgXCJz\ndWNjZXNzXCIsIFwid2FybmluZ1wiLCBcImluZm9cIiwgXCJkYW5nZXJcIiwgXCJkZWZhdWx0XCJd\nLFxuICAgICAgZGVmYXVsdDogXCJkZWZhdWx0XCJcbiAgICB9LFxuICAgIHVuZGVybGluZToge1xu\nICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWVcbiAgICB9LFxuICAgIGRp\nc2FibGVkOiB7IHR5cGU6IEJvb2xlYW4sIGRlZmF1bHQ6IGZhbHNlIH0sXG4gICAgaHJlZjogeyB0\neXBlOiBTdHJpbmcsIGRlZmF1bHQ6IFwiXCIgfSxcbiAgICB0YXJnZXQ6IHtcbiAgICAgIHR5cGU6\nIFN0cmluZyxcbiAgICAgIGRlZmF1bHQ6IFwiX3NlbGZcIlxuICAgIH0sXG4gICAgaWNvbjoge1xu\nICAgICAgdHlwZTogaWNvblByb3BUeXBlXG4gICAgfVxuICB9KTtcbiAgY29uc3QgbGlua0VtaXRz\nID0ge1xuICAgIGNsaWNrOiAoZXZ0KSA9PiBldnQgaW5zdGFuY2VvZiBNb3VzZUV2ZW50XG4gIH07\nXG4gIGNvbnN0IF9ob2lzdGVkXzEkYyA9IFtcImhyZWZcIiwgXCJ0YXJnZXRcIl07XG4gIGNvbnN0\nIF9fZGVmYXVsdF9fJDUgPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBcIkVsTGlu\na1wiXG4gIH0pO1xuICBjb25zdCBfc2ZjX21haW4kaSA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5k\nZWZpbmVDb21wb25lbnQoe1xuICAgIC4uLl9fZGVmYXVsdF9fJDUsXG4gICAgcHJvcHM6IGxpbmtQ\ncm9wcyxcbiAgICBlbWl0czogbGlua0VtaXRzLFxuICAgIHNldHVwKF9fcHJvcHMsIHsgZW1pdCB9\nKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCBucyA9IHVzZU5h\nbWVzcGFjZShcImxpbmtcIik7XG4gICAgICBjb25zdCBsaW5rS2xzID0gdnVlLmNvbXB1dGVkKCgp\nID0+IFtcbiAgICAgICAgbnMuYigpLFxuICAgICAgICBucy5tKHByb3BzLnR5cGUpLFxuICAgICAg\nICBucy5pcyhcImRpc2FibGVkXCIsIHByb3BzLmRpc2FibGVkKSxcbiAgICAgICAgbnMuaXMoXCJ1\nbmRlcmxpbmVcIiwgcHJvcHMudW5kZXJsaW5lICYmICFwcm9wcy5kaXNhYmxlZClcbiAgICAgIF0p\nO1xuICAgICAgZnVuY3Rpb24gaGFuZGxlQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgaWYgKCFwcm9w\ncy5kaXNhYmxlZClcbiAgICAgICAgICBlbWl0KFwiY2xpY2tcIiwgZXZlbnQpO1xuICAgICAgfVxu\nICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImFcIiwge1xuICAgICAgICAgIGNsYXNz\nOiB2dWUubm9ybWFsaXplQ2xhc3ModnVlLnVucmVmKGxpbmtLbHMpKSxcbiAgICAgICAgICBocmVm\nOiBfY3R4LmRpc2FibGVkIHx8ICFfY3R4LmhyZWYgPyB2b2lkIDAgOiBfY3R4LmhyZWYsXG4gICAg\nICAgICAgdGFyZ2V0OiBfY3R4LmRpc2FibGVkIHx8ICFfY3R4LmhyZWYgPyB2b2lkIDAgOiBfY3R4\nLnRhcmdldCxcbiAgICAgICAgICBvbkNsaWNrOiBoYW5kbGVDbGlja1xuICAgICAgICB9LCBbXG4g\nICAgICAgICAgX2N0eC5pY29uID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1\nZS51bnJlZihFbEljb24pLCB7IGtleTogMCB9LCB7XG4gICAgICAgICAgICBkZWZhdWx0OiB2dWUu\nd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVh\ndGVCbG9jayh2dWUucmVzb2x2ZUR5bmFtaWNDb21wb25lbnQoX2N0eC5pY29uKSkpXG4gICAgICAg\nICAgICBdKSxcbiAgICAgICAgICAgIF86IDFcbiAgICAgICAgICB9KSkgOiB2dWUuY3JlYXRlQ29t\nbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKSxcbiAgICAgICAgICBfY3R4LiRzbG90cy5kZWZhdWx0\nID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcInNwYW5cIiwge1xu\nICAgICAgICAgICAga2V5OiAxLFxuICAgICAgICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFz\ncyh2dWUudW5yZWYobnMpLmUoXCJpbm5lclwiKSlcbiAgICAgICAgICB9LCBbXG4gICAgICAgICAg\nICB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJkZWZhdWx0XCIpXG4gICAgICAgICAgXSwg\nMikpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSksXG4gICAgICAgICAg\nX2N0eC4kc2xvdHMuaWNvbiA\/IHZ1ZS5yZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImljb25cIiwg\neyBrZXk6IDIgfSkgOiB2dWUuY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKVxuICAg\nICAgICBdLCAxMCwgX2hvaXN0ZWRfMSRjKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFy\nIExpbmsgPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kaSwgW1tcIl9f\nZmlsZVwiLCBcImxpbmsudnVlXCJdXSk7XG4gIGNvbnN0IEVsTGluayA9IHdpdGhJbnN0YWxsKExp\nbmspO1xuICBjb25zdCBza2VsZXRvblByb3BzID0gYnVpbGRQcm9wcyh7XG4gICAgYW5pbWF0ZWQ6\nIHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiBmYWxzZVxuICAgIH0sXG4g\nICAgY291bnQ6IHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6IDFcbiAgICB9\nLFxuICAgIHJvd3M6IHtcbiAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgIGRlZmF1bHQ6IDNcbiAg\nICB9LFxuICAgIGxvYWRpbmc6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0\nOiB0cnVlXG4gICAgfSxcbiAgICB0aHJvdHRsZToge1xuICAgICAgdHlwZTogTnVtYmVyXG4gICAg\nfVxuICB9KTtcbiAgY29uc3Qgc2tlbGV0b25JdGVtUHJvcHMgPSBidWlsZFByb3BzKHtcbiAgICB2\nYXJpYW50OiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6IFtcbiAgICAgICAg\nXCJjaXJjbGVcIixcbiAgICAgICAgXCJyZWN0XCIsXG4gICAgICAgIFwiaDFcIixcbiAgICAgICAg\nXCJoM1wiLFxuICAgICAgICBcInRleHRcIixcbiAgICAgICAgXCJjYXB0aW9uXCIsXG4gICAgICAg\nIFwicFwiLFxuICAgICAgICBcImltYWdlXCIsXG4gICAgICAgIFwiYnV0dG9uXCJcbiAgICAgIF0s\nXG4gICAgICBkZWZhdWx0OiBcInRleHRcIlxuICAgIH1cbiAgfSk7XG4gIGNvbnN0IF9fZGVmYXVs\ndF9fJDQgPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBcIkVsU2tlbGV0b25JdGVt\nXCJcbiAgfSk7XG4gIGNvbnN0IF9zZmNfbWFpbiRoID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRl\nZmluZUNvbXBvbmVudCh7XG4gICAgLi4uX19kZWZhdWx0X18kNCxcbiAgICBwcm9wczogc2tlbGV0\nb25JdGVtUHJvcHMsXG4gICAgc2V0dXAoX19wcm9wcykge1xuICAgICAgY29uc3QgbnMgPSB1c2VO\nYW1lc3BhY2UoXCJza2VsZXRvblwiKTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7\nXG4gICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2so\nXCJkaXZcIiwge1xuICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xhc3MoW3Z1ZS51bnJl\nZihucykuZShcIml0ZW1cIiksIHZ1ZS51bnJlZihucykuZShfY3R4LnZhcmlhbnQpXSlcbiAgICAg\nICAgfSwgW1xuICAgICAgICAgIF9jdHgudmFyaWFudCA9PT0gXCJpbWFnZVwiID8gKHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKHZ1ZS51bnJlZihpY29uc1Z1ZS5QaWN0dXJlRmlsbGVk\nKSwgeyBrZXk6IDAgfSkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcInYtaWZcIiwgdHJ1ZSlc\nbiAgICAgICAgXSwgMik7XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIHZhciBTa2VsZXRvbkl0\nZW0gPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2ZjX21haW4kaCwgW1tcIl9fZmls\nZVwiLCBcInNrZWxldG9uLWl0ZW0udnVlXCJdXSk7XG4gIGNvbnN0IF9fZGVmYXVsdF9fJDMgPSB2\ndWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBcIkVsU2tlbGV0b25cIlxuICB9KTtcbiAg\nY29uc3QgX3NmY19tYWluJGcgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50\nKHtcbiAgICAuLi5fX2RlZmF1bHRfXyQzLFxuICAgIHByb3BzOiBza2VsZXRvblByb3BzLFxuICAg\nIHNldHVwKF9fcHJvcHMsIHsgZXhwb3NlIH0pIHtcbiAgICAgIGNvbnN0IHByb3BzID0gX19wcm9w\ncztcbiAgICAgIGNvbnN0IG5zID0gdXNlTmFtZXNwYWNlKFwic2tlbGV0b25cIik7XG4gICAgICBj\nb25zdCB1aUxvYWRpbmcgPSB1c2VUaHJvdHRsZVJlbmRlcih2dWUudG9SZWYocHJvcHMsIFwibG9h\nZGluZ1wiKSwgcHJvcHMudGhyb3R0bGUpO1xuICAgICAgZXhwb3NlKHtcbiAgICAgICAgdWlMb2Fk\naW5nXG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAg\nIHJldHVybiB2dWUudW5yZWYodWlMb2FkaW5nKSA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVh\ndGVFbGVtZW50QmxvY2soXCJkaXZcIiwgdnVlLm1lcmdlUHJvcHMoe1xuICAgICAgICAgIGtleTog\nMCxcbiAgICAgICAgICBjbGFzczogW3Z1ZS51bnJlZihucykuYigpLCB2dWUudW5yZWYobnMpLmlz\nKFwiYW5pbWF0ZWRcIiwgX2N0eC5hbmltYXRlZCldXG4gICAgICAgIH0sIF9jdHguJGF0dHJzKSwg\nW1xuICAgICAgICAgICh2dWUub3BlbkJsb2NrKHRydWUpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2Nr\nKHZ1ZS5GcmFnbWVudCwgbnVsbCwgdnVlLnJlbmRlckxpc3QoX2N0eC5jb3VudCwgKGkpID0+IHtc\nbiAgICAgICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50Qmxv\nY2sodnVlLkZyYWdtZW50LCB7IGtleTogaSB9LCBbXG4gICAgICAgICAgICAgIF9jdHgubG9hZGlu\nZyA\/IHZ1ZS5yZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcInRlbXBsYXRlXCIsIHsga2V5OiBpIH0s\nICgpID0+IFtcbiAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoU2tlbGV0b25JdGVtLCB7\nXG4gICAgICAgICAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihu\ncykuaXMoXCJmaXJzdFwiKSksXG4gICAgICAgICAgICAgICAgICB2YXJpYW50OiBcInBcIlxuICAg\nICAgICAgICAgICAgIH0sIG51bGwsIDgsIFtcImNsYXNzXCJdKSxcbiAgICAgICAgICAgICAgICAo\ndnVlLm9wZW5CbG9jayh0cnVlKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQs\nIG51bGwsIHZ1ZS5yZW5kZXJMaXN0KF9jdHgucm93cywgKGl0ZW0pID0+IHtcbiAgICAgICAgICAg\nICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayhTa2VsZXRvbkl0\nZW0sIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLFxuICAgICAgICAgICAgICAgICAg\nICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKFtcbiAgICAgICAgICAgICAgICAgICAgICB2dWUu\ndW5yZWYobnMpLmUoXCJwYXJhZ3JhcGhcIiksXG4gICAgICAgICAgICAgICAgICAgICAgdnVlLnVu\ncmVmKG5zKS5pcyhcImxhc3RcIiwgaXRlbSA9PT0gX2N0eC5yb3dzICYmIF9jdHgucm93cyA+IDEp\nXG4gICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiBc\nInBcIlxuICAgICAgICAgICAgICAgICAgfSwgbnVsbCwgOCwgW1wiY2xhc3NcIl0pO1xuICAgICAg\nICAgICAgICAgIH0pLCAxMjgpKVxuICAgICAgICAgICAgICBdKSA6IHZ1ZS5jcmVhdGVDb21tZW50\nVk5vZGUoXCJ2LWlmXCIsIHRydWUpXG4gICAgICAgICAgICBdLCA2NCk7XG4gICAgICAgICAgfSks\nIDEyOCkpXG4gICAgICAgIF0sIDE2KSkgOiB2dWUucmVuZGVyU2xvdChfY3R4LiRzbG90cywgXCJk\nZWZhdWx0XCIsIHZ1ZS5ub3JtYWxpemVQcm9wcyh2dWUubWVyZ2VQcm9wcyh7IGtleTogMSB9LCBf\nY3R4LiRhdHRycykpKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcbiAgdmFyIFNrZWxldG9uID0g\nXC8qIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMoX3NmY19tYWluJGcsIFtbXCJfX2ZpbGVcIiwg\nXCJza2VsZXRvbi52dWVcIl1dKTtcbiAgY29uc3QgRWxTa2VsZXRvbiA9IHdpdGhJbnN0YWxsKFNr\nZWxldG9uLCB7XG4gICAgU2tlbGV0b25JdGVtXG4gIH0pO1xuICBjb25zdCBFbFNrZWxldG9uSXRl\nbSA9IHdpdGhOb29wSW5zdGFsbChTa2VsZXRvbkl0ZW0pO1xuICBjb25zdCBzcGFjZUl0ZW1Qcm9w\ncyA9IGJ1aWxkUHJvcHMoe1xuICAgIHByZWZpeENsczoge1xuICAgICAgdHlwZTogU3RyaW5nXG4g\nICAgfVxuICB9KTtcbiAgY29uc3QgU3BhY2VJdGVtID0gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4g\nICAgbmFtZTogXCJFbFNwYWNlSXRlbVwiLFxuICAgIHByb3BzOiBzcGFjZUl0ZW1Qcm9wcyxcbiAg\nICBzZXR1cChwcm9wcywgeyBzbG90cyB9KSB7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFj\nZShcInNwYWNlXCIpO1xuICAgICAgY29uc3QgY2xhc3NlcyA9IHZ1ZS5jb21wdXRlZCgoKSA9PiBg\nJHtwcm9wcy5wcmVmaXhDbHMgfHwgbnMuYigpfV9faXRlbWApO1xuICAgICAgcmV0dXJuICgpID0+\nIHZ1ZS5oKFwiZGl2XCIsIHsgY2xhc3M6IGNsYXNzZXMudmFsdWUgfSwgdnVlLnJlbmRlclNsb3Qo\nc2xvdHMsIFwiZGVmYXVsdFwiKSk7XG4gICAgfVxuICB9KTtcbiAgY29uc3QgU0laRV9NQVAgPSB7\nXG4gICAgc21hbGw6IDgsXG4gICAgZGVmYXVsdDogMTIsXG4gICAgbGFyZ2U6IDE2XG4gIH07XG4g\nIGZ1bmN0aW9uIHVzZVNwYWNlKHByb3BzKSB7XG4gICAgY29uc3QgbnMgPSB1c2VOYW1lc3BhY2Uo\nXCJzcGFjZVwiKTtcbiAgICBjb25zdCBjbGFzc2VzID0gdnVlLmNvbXB1dGVkKCgpID0+IFtucy5i\nKCksIG5zLm0ocHJvcHMuZGlyZWN0aW9uKSwgcHJvcHMuY2xhc3NdKTtcbiAgICBjb25zdCBob3Jp\nem9udGFsU2l6ZSA9IHZ1ZS5yZWYoMCk7XG4gICAgY29uc3QgdmVydGljYWxTaXplID0gdnVlLnJl\nZigwKTtcbiAgICBjb25zdCBjb250YWluZXJTdHlsZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4g\nICAgICBjb25zdCB3cmFwS2xzID0gcHJvcHMud3JhcCB8fCBwcm9wcy5maWxsID8geyBmbGV4V3Jh\ncDogXCJ3cmFwXCIgfSA6IHt9O1xuICAgICAgY29uc3QgYWxpZ25tZW50ID0ge1xuICAgICAgICBh\nbGlnbkl0ZW1zOiBwcm9wcy5hbGlnbm1lbnRcbiAgICAgIH07XG4gICAgICBjb25zdCBnYXAgPSB7\nXG4gICAgICAgIHJvd0dhcDogYCR7dmVydGljYWxTaXplLnZhbHVlfXB4YCxcbiAgICAgICAgY29s\ndW1uR2FwOiBgJHtob3Jpem9udGFsU2l6ZS52YWx1ZX1weGBcbiAgICAgIH07XG4gICAgICByZXR1\ncm4gW3dyYXBLbHMsIGFsaWdubWVudCwgZ2FwLCBwcm9wcy5zdHlsZV07XG4gICAgfSk7XG4gICAg\nY29uc3QgaXRlbVN0eWxlID0gdnVlLmNvbXB1dGVkKCgpID0+IHtcbiAgICAgIHJldHVybiBwcm9w\ncy5maWxsID8geyBmbGV4R3JvdzogMSwgbWluV2lkdGg6IGAke3Byb3BzLmZpbGxSYXRpb30lYCB9\nIDoge307XG4gICAgfSk7XG4gICAgdnVlLndhdGNoRWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0\nIHsgc2l6ZSA9IFwic21hbGxcIiwgd3JhcCwgZGlyZWN0aW9uOiBkaXIsIGZpbGwgfSA9IHByb3Bz\nO1xuICAgICAgaWYgKGlzQXJyYXkkMShzaXplKSkge1xuICAgICAgICBjb25zdCBbaDIgPSAwLCB2\nID0gMF0gPSBzaXplO1xuICAgICAgICBob3Jpem9udGFsU2l6ZS52YWx1ZSA9IGgyO1xuICAgICAg\nICB2ZXJ0aWNhbFNpemUudmFsdWUgPSB2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IHZh\nbDtcbiAgICAgICAgaWYgKGlzTnVtYmVyKHNpemUpKSB7XG4gICAgICAgICAgdmFsID0gc2l6ZTtc\nbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YWwgPSBTSVpFX01BUFtzaXplIHx8IFwic21h\nbGxcIl0gfHwgU0laRV9NQVAuc21hbGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh3cmFwIHx8\nIGZpbGwpICYmIGRpciA9PT0gXCJob3Jpem9udGFsXCIpIHtcbiAgICAgICAgICBob3Jpem9udGFs\nU2l6ZS52YWx1ZSA9IHZlcnRpY2FsU2l6ZS52YWx1ZSA9IHZhbDtcbiAgICAgICAgfSBlbHNlIHtc\nbiAgICAgICAgICBpZiAoZGlyID09PSBcImhvcml6b250YWxcIikge1xuICAgICAgICAgICAgaG9y\naXpvbnRhbFNpemUudmFsdWUgPSB2YWw7XG4gICAgICAgICAgICB2ZXJ0aWNhbFNpemUudmFsdWUg\nPSAwO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ZXJ0aWNhbFNpemUudmFsdWUg\nPSB2YWw7XG4gICAgICAgICAgICBob3Jpem9udGFsU2l6ZS52YWx1ZSA9IDA7XG4gICAgICAgICAg\nfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsYXNz\nZXMsXG4gICAgICBjb250YWluZXJTdHlsZSxcbiAgICAgIGl0ZW1TdHlsZVxuICAgIH07XG4gIH1c\nbiAgY29uc3Qgc3BhY2VQcm9wcyA9IGJ1aWxkUHJvcHMoe1xuICAgIGRpcmVjdGlvbjoge1xuICAg\nICAgdHlwZTogU3RyaW5nLFxuICAgICAgdmFsdWVzOiBbXCJob3Jpem9udGFsXCIsIFwidmVydGlj\nYWxcIl0sXG4gICAgICBkZWZhdWx0OiBcImhvcml6b250YWxcIlxuICAgIH0sXG4gICAgY2xhc3M6\nIHtcbiAgICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKFtcbiAgICAgICAgU3RyaW5nLFxuICAgICAg\nICBPYmplY3QsXG4gICAgICAgIEFycmF5XG4gICAgICBdKSxcbiAgICAgIGRlZmF1bHQ6IFwiXCJc\nbiAgICB9LFxuICAgIHN0eWxlOiB7XG4gICAgICB0eXBlOiBkZWZpbmVQcm9wVHlwZShbU3RyaW5n\nLCBBcnJheSwgT2JqZWN0XSksXG4gICAgICBkZWZhdWx0OiBcIlwiXG4gICAgfSxcbiAgICBhbGln\nbm1lbnQ6IHtcbiAgICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKFN0cmluZyksXG4gICAgICBkZWZh\ndWx0OiBcImNlbnRlclwiXG4gICAgfSxcbiAgICBwcmVmaXhDbHM6IHtcbiAgICAgIHR5cGU6IFN0\ncmluZ1xuICAgIH0sXG4gICAgc3BhY2VyOiB7XG4gICAgICB0eXBlOiBkZWZpbmVQcm9wVHlwZShb\nT2JqZWN0LCBTdHJpbmcsIE51bWJlciwgQXJyYXldKSxcbiAgICAgIGRlZmF1bHQ6IG51bGwsXG4g\nICAgICB2YWxpZGF0b3I6ICh2YWwpID0+IHZ1ZS5pc1ZOb2RlKHZhbCkgfHwgaXNOdW1iZXIodmFs\nKSB8fCBpc1N0cmluZyh2YWwpXG4gICAgfSxcbiAgICB3cmFwOiBCb29sZWFuLFxuICAgIGZpbGw6\nIEJvb2xlYW4sXG4gICAgZmlsbFJhdGlvOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICBk\nZWZhdWx0OiAxMDBcbiAgICB9LFxuICAgIHNpemU6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIEFy\ncmF5LCBOdW1iZXJdLFxuICAgICAgdmFsdWVzOiBjb21wb25lbnRTaXplcyxcbiAgICAgIHZhbGlk\nYXRvcjogKHZhbCkgPT4ge1xuICAgICAgICByZXR1cm4gaXNOdW1iZXIodmFsKSB8fCBpc0FycmF5\nJDEodmFsKSAmJiB2YWwubGVuZ3RoID09PSAyICYmIHZhbC5ldmVyeShpc051bWJlcik7XG4gICAg\nICB9XG4gICAgfVxuICB9KTtcbiAgY29uc3QgU3BhY2UgPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtc\nbiAgICBuYW1lOiBcIkVsU3BhY2VcIixcbiAgICBwcm9wczogc3BhY2VQcm9wcyxcbiAgICBzZXR1\ncChwcm9wcywgeyBzbG90cyB9KSB7XG4gICAgICBjb25zdCB7IGNsYXNzZXMsIGNvbnRhaW5lclN0\neWxlLCBpdGVtU3R5bGUgfSA9IHVzZVNwYWNlKHByb3BzKTtcbiAgICAgIGZ1bmN0aW9uIGV4dHJh\nY3RDaGlsZHJlbihjaGlsZHJlbiwgcGFyZW50S2V5ID0gXCJcIiwgZXh0cmFjdGVkQ2hpbGRyZW4g\nPSBbXSkge1xuICAgICAgICBjb25zdCB7IHByZWZpeENscyB9ID0gcHJvcHM7XG4gICAgICAgIGNo\naWxkcmVuLmZvckVhY2goKGNoaWxkLCBsb29wS2V5KSA9PiB7XG4gICAgICAgICAgaWYgKGlzRnJh\nZ21lbnQoY2hpbGQpKSB7XG4gICAgICAgICAgICBpZiAoaXNBcnJheSQxKGNoaWxkLmNoaWxkcmVu\nKSkge1xuICAgICAgICAgICAgICBjaGlsZC5jaGlsZHJlbi5mb3JFYWNoKChuZXN0ZWQsIGtleSkg\nPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0ZyYWdtZW50KG5lc3RlZCkgJiYgaXNBcnJheSQx\nKG5lc3RlZC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgIGV4dHJhY3RDaGlsZHJlbihu\nZXN0ZWQuY2hpbGRyZW4sIGAke3BhcmVudEtleSArIGtleX0tYCwgZXh0cmFjdGVkQ2hpbGRyZW4p\nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBleHRyYWN0ZWRD\naGlsZHJlbi5wdXNoKHZ1ZS5jcmVhdGVWTm9kZShTcGFjZUl0ZW0sIHtcbiAgICAgICAgICAgICAg\nICAgICAgc3R5bGU6IGl0ZW1TdHlsZS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4\nQ2xzLFxuICAgICAgICAgICAgICAgICAgICBrZXk6IGBuZXN0ZWQtJHtwYXJlbnRLZXkgKyBrZXl9\nYFxuICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAo\nKSA9PiBbbmVzdGVkXVxuICAgICAgICAgICAgICAgICAgfSwgUGF0Y2hGbGFncy5QUk9QUyB8IFBh\ndGNoRmxhZ3MuU1RZTEUsIFtcInN0eWxlXCIsIFwicHJlZml4Q2xzXCJdKSk7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVs\nc2UgaWYgKGlzVmFsaWRFbGVtZW50Tm9kZShjaGlsZCkpIHtcbiAgICAgICAgICAgIGV4dHJhY3Rl\nZENoaWxkcmVuLnB1c2godnVlLmNyZWF0ZVZOb2RlKFNwYWNlSXRlbSwge1xuICAgICAgICAgICAg\nICBzdHlsZTogaXRlbVN0eWxlLnZhbHVlLFxuICAgICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAg\nICAgICAgICAgIGtleTogYExvb3BLZXkke3BhcmVudEtleSArIGxvb3BLZXl9YFxuICAgICAgICAg\nICAgfSwge1xuICAgICAgICAgICAgICBkZWZhdWx0OiAoKSA9PiBbY2hpbGRdXG4gICAgICAgICAg\nICB9LCBQYXRjaEZsYWdzLlBST1BTIHwgUGF0Y2hGbGFncy5TVFlMRSwgW1wic3R5bGVcIiwgXCJw\ncmVmaXhDbHNcIl0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4g\nZXh0cmFjdGVkQ2hpbGRyZW47XG4gICAgICB9XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAg\nICB2YXIgX2EzO1xuICAgICAgICBjb25zdCB7IHNwYWNlciwgZGlyZWN0aW9uIH0gPSBwcm9wcztc\nbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSB2dWUucmVuZGVyU2xvdChzbG90cywgXCJkZWZhdWx0\nXCIsIHsga2V5OiAwIH0sICgpID0+IFtdKTtcbiAgICAgICAgaWYgKCgoX2EzID0gY2hpbGRyZW4u\nY2hpbGRyZW4pICE9IG51bGwgPyBfYTMgOiBbXSkubGVuZ3RoID09PSAwKVxuICAgICAgICAgIHJl\ndHVybiBudWxsO1xuICAgICAgICBpZiAoaXNBcnJheSQxKGNoaWxkcmVuLmNoaWxkcmVuKSkge1xu\nICAgICAgICAgIGxldCBleHRyYWN0ZWRDaGlsZHJlbiA9IGV4dHJhY3RDaGlsZHJlbihjaGlsZHJl\nbi5jaGlsZHJlbik7XG4gICAgICAgICAgaWYgKHNwYWNlcikge1xuICAgICAgICAgICAgY29uc3Qg\nbGVuID0gZXh0cmFjdGVkQ2hpbGRyZW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGV4dHJhY3Rl\nZENoaWxkcmVuID0gZXh0cmFjdGVkQ2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkLCBpZHgpID0+\nIHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4yID0gWy4uLmFjYywgY2hpbGRdO1xuICAg\nICAgICAgICAgICBpZiAoaWR4ICE9PSBsZW4pIHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjIu\ncHVzaCh2dWUuY3JlYXRlVk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgICAgICAgIHN0eWxl\nOiBbXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1TdHlsZS52YWx1ZSxcbiAgICAgICAgICAgICAg\nICAgICAgZGlyZWN0aW9uID09PSBcInZlcnRpY2FsXCIgPyBcIndpZHRoOiAxMDAlXCIgOiBudWxs\nXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAga2V5OiBpZHhcbiAgICAg\nICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgICB2dWUuaXNWTm9kZShzcGFjZXIpID8g\nc3BhY2VyIDogdnVlLmNyZWF0ZVRleHRWTm9kZShzcGFjZXIsIFBhdGNoRmxhZ3MuVEVYVClcbiAg\nICAgICAgICAgICAgICBdLCBQYXRjaEZsYWdzLlNUWUxFKSk7XG4gICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuMjtcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAg\nICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZ1ZS5jcmVhdGVWTm9kZShcImRpdlwiLCB7XG4gICAg\nICAgICAgICBjbGFzczogY2xhc3Nlcy52YWx1ZSxcbiAgICAgICAgICAgIHN0eWxlOiBjb250YWlu\nZXJTdHlsZS52YWx1ZVxuICAgICAgICAgIH0sIGV4dHJhY3RlZENoaWxkcmVuLCBQYXRjaEZsYWdz\nLlNUWUxFIHwgUGF0Y2hGbGFncy5DTEFTUyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNo\naWxkcmVuLmNoaWxkcmVuO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBFbFNwYWNl\nID0gd2l0aEluc3RhbGwoU3BhY2UpO1xuICBjb25zdCB0YWJzUm9vdENvbnRleHRLZXkgPSBTeW1i\nb2woXCJ0YWJzUm9vdENvbnRleHRLZXlcIik7XG4gIGNvbnN0IHRhYkJhclByb3BzID0gYnVpbGRQ\ncm9wcyh7XG4gICAgdGFiczoge1xuICAgICAgdHlwZTogZGVmaW5lUHJvcFR5cGUoQXJyYXkpLFxu\nICAgICAgZGVmYXVsdDogKCkgPT4gbXV0YWJsZShbXSlcbiAgICB9XG4gIH0pO1xuICBjb25zdCBD\nT01QT05FTlRfTkFNRSQyID0gXCJFbFRhYkJhclwiO1xuICBjb25zdCBfX2RlZmF1bHRfXyQyID0g\ndnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogQ09NUE9ORU5UX05BTUUkMlxuICB9KTtc\nbiAgY29uc3QgX3NmY19tYWluJGYgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29tcG9u\nZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyQyLFxuICAgIHByb3BzOiB0YWJCYXJQcm9wcyxcbiAg\nICBzZXR1cChfX3Byb3BzLCB7IGV4cG9zZSB9KSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJv\ncHM7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHZ1ZS5nZXRDdXJyZW50SW5zdGFuY2UoKTtcbiAg\nICAgIGNvbnN0IHJvb3RUYWJzID0gdnVlLmluamVjdCh0YWJzUm9vdENvbnRleHRLZXkpO1xuICAg\nICAgaWYgKCFyb290VGFicylcbiAgICAgICAgdGhyb3dFcnJvcihDT01QT05FTlRfTkFNRSQyLCBc\nIjxlbC10YWJzPjxlbC10YWItYmFyIFwvPjxcL2VsLXRhYnM+XCIpO1xuICAgICAgY29uc3QgbnMg\nPSB1c2VOYW1lc3BhY2UoXCJ0YWJzXCIpO1xuICAgICAgY29uc3QgYmFyUmVmID0gdnVlLnJlZigp\nO1xuICAgICAgY29uc3QgYmFyU3R5bGUgPSB2dWUucmVmKCk7XG4gICAgICBjb25zdCBnZXRCYXJT\ndHlsZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICAgIGxldCB0YWJT\naXplID0gMDtcbiAgICAgICAgY29uc3Qgc2l6ZU5hbWUgPSBbXCJ0b3BcIiwgXCJib3R0b21cIl0u\naW5jbHVkZXMocm9vdFRhYnMucHJvcHMudGFiUG9zaXRpb24pID8gXCJ3aWR0aFwiIDogXCJoZWln\naHRcIjtcbiAgICAgICAgY29uc3Qgc2l6ZURpciA9IHNpemVOYW1lID09PSBcIndpZHRoXCIgPyBc\nInhcIiA6IFwieVwiO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHNpemVEaXIgPT09IFwieFwi\nID8gXCJsZWZ0XCIgOiBcInRvcFwiO1xuICAgICAgICBwcm9wcy50YWJzLmV2ZXJ5KCh0YWIpID0+\nIHtcbiAgICAgICAgICB2YXIgX2EzLCBfYjtcbiAgICAgICAgICBjb25zdCAkZWwgPSAoX2IgPSAo\nX2EzID0gaW5zdGFuY2UucGFyZW50KSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnJlZnMpID09IG51\nbGwgPyB2b2lkIDAgOiBfYltgdGFiLSR7dGFiLnVpZH1gXTtcbiAgICAgICAgICBpZiAoISRlbClc\nbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICBpZiAoIXRhYi5hY3RpdmUpIHtc\nbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBvZmZzZXQg\nPSAkZWxbYG9mZnNldCR7Y2FwaXRhbGl6ZShwb3NpdGlvbil9YF07XG4gICAgICAgICAgdGFiU2l6\nZSA9ICRlbFtgY2xpZW50JHtjYXBpdGFsaXplKHNpemVOYW1lKX1gXTtcbiAgICAgICAgICBjb25z\ndCB0YWJTdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSgkZWwpO1xuICAgICAgICAgIGlm\nIChzaXplTmFtZSA9PT0gXCJ3aWR0aFwiKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMudGFicy5s\nZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgIHRhYlNpemUgLT0gTnVtYmVyLnBhcnNlRmxvYXQo\ndGFiU3R5bGVzLnBhZGRpbmdMZWZ0KSArIE51bWJlci5wYXJzZUZsb2F0KHRhYlN0eWxlcy5wYWRk\naW5nUmlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2Zmc2V0ICs9IE51bWJlci5w\nYXJzZUZsb2F0KHRhYlN0eWxlcy5wYWRkaW5nTGVmdCk7XG4gICAgICAgICAgfVxuICAgICAgICAg\nIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAg\nW3NpemVOYW1lXTogYCR7dGFiU2l6ZX1weGAsXG4gICAgICAgICAgdHJhbnNmb3JtOiBgdHJhbnNs\nYXRlJHtjYXBpdGFsaXplKHNpemVEaXIpfSgke29mZnNldH1weClgXG4gICAgICAgIH07XG4gICAg\nICB9O1xuICAgICAgY29uc3QgdXBkYXRlID0gKCkgPT4gYmFyU3R5bGUudmFsdWUgPSBnZXRCYXJT\ndHlsZSgpO1xuICAgICAgdnVlLndhdGNoKCgpID0+IHByb3BzLnRhYnMsIGFzeW5jICgpID0+IHtc\nbiAgICAgICAgYXdhaXQgdnVlLm5leHRUaWNrKCk7XG4gICAgICAgIHVwZGF0ZSgpO1xuICAgICAg\nfSwgeyBpbW1lZGlhdGU6IHRydWUgfSk7XG4gICAgICB1c2VSZXNpemVPYnNlcnZlcihiYXJSZWYs\nICgpID0+IHVwZGF0ZSgpKTtcbiAgICAgIGV4cG9zZSh7XG4gICAgICAgIHJlZjogYmFyUmVmLFxu\nICAgICAgICB1cGRhdGVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+\nIHtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9j\nayhcImRpdlwiLCB7XG4gICAgICAgICAgcmVmX2tleTogXCJiYXJSZWZcIixcbiAgICAgICAgICBy\nZWY6IGJhclJlZixcbiAgICAgICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKFt2dWUudW5y\nZWYobnMpLmUoXCJhY3RpdmUtYmFyXCIpLCB2dWUudW5yZWYobnMpLmlzKHZ1ZS51bnJlZihyb290\nVGFicykucHJvcHMudGFiUG9zaXRpb24pXSksXG4gICAgICAgICAgc3R5bGU6IHZ1ZS5ub3JtYWxp\nemVTdHlsZShiYXJTdHlsZS52YWx1ZSlcbiAgICAgICAgfSwgbnVsbCwgNik7XG4gICAgICB9O1xu\nICAgIH1cbiAgfSk7XG4gIHZhciBUYWJCYXIgPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3Nm\nYyhfc2ZjX21haW4kZiwgW1tcIl9fZmlsZVwiLCBcInRhYi1iYXIudnVlXCJdXSk7XG4gIGNvbnN0\nIHRhYk5hdlByb3BzID0gYnVpbGRQcm9wcyh7XG4gICAgcGFuZXM6IHtcbiAgICAgIHR5cGU6IGRl\nZmluZVByb3BUeXBlKEFycmF5KSxcbiAgICAgIGRlZmF1bHQ6ICgpID0+IG11dGFibGUoW10pXG4g\nICAgfSxcbiAgICBjdXJyZW50TmFtZToge1xuICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXSxc\nbiAgICAgIGRlZmF1bHQ6IFwiXCJcbiAgICB9LFxuICAgIGVkaXRhYmxlOiBCb29sZWFuLFxuICAg\nIHR5cGU6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHZhbHVlczogW1wiY2FyZFwiLCBc\nImJvcmRlci1jYXJkXCIsIFwiXCJdLFxuICAgICAgZGVmYXVsdDogXCJcIlxuICAgIH0sXG4gICAg\nc3RyZXRjaDogQm9vbGVhblxuICB9KTtcbiAgY29uc3QgdGFiTmF2RW1pdHMgPSB7XG4gICAgdGFi\nQ2xpY2s6ICh0YWIsIHRhYk5hbWUsIGV2KSA9PiBldiBpbnN0YW5jZW9mIEV2ZW50LFxuICAgIHRh\nYlJlbW92ZTogKHRhYiwgZXYpID0+IGV2IGluc3RhbmNlb2YgRXZlbnRcbiAgfTtcbiAgY29uc3Qg\nQ09NUE9ORU5UX05BTUUkMSA9IFwiRWxUYWJOYXZcIjtcbiAgY29uc3QgVGFiTmF2ID0gdnVlLmRl\nZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogQ09NUE9ORU5UX05BTUUkMSxcbiAgICBwcm9wczog\ndGFiTmF2UHJvcHMsXG4gICAgZW1pdHM6IHRhYk5hdkVtaXRzLFxuICAgIHNldHVwKHByb3BzLCB7\nXG4gICAgICBleHBvc2UsXG4gICAgICBlbWl0XG4gICAgfSkge1xuICAgICAgY29uc3Qgdm0gPSB2\ndWUuZ2V0Q3VycmVudEluc3RhbmNlKCk7XG4gICAgICBjb25zdCByb290VGFicyA9IHZ1ZS5pbmpl\nY3QodGFic1Jvb3RDb250ZXh0S2V5KTtcbiAgICAgIGlmICghcm9vdFRhYnMpXG4gICAgICAgIHRo\ncm93RXJyb3IoQ09NUE9ORU5UX05BTUUkMSwgYDxlbC10YWJzPjx0YWItbmF2IFwvPjxcL2VsLXRh\nYnM+YCk7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcInRhYnNcIik7XG4gICAgICBj\nb25zdCB2aXNpYmlsaXR5ID0gdXNlRG9jdW1lbnRWaXNpYmlsaXR5KCk7XG4gICAgICBjb25zdCBm\nb2N1c2VkID0gdXNlV2luZG93Rm9jdXMoKTtcbiAgICAgIGNvbnN0IG5hdlNjcm9sbCQgPSB2dWUu\ncmVmKCk7XG4gICAgICBjb25zdCBuYXYkID0gdnVlLnJlZigpO1xuICAgICAgY29uc3QgZWwkID0g\ndnVlLnJlZigpO1xuICAgICAgY29uc3QgdGFiQmFyUmVmID0gdnVlLnJlZigpO1xuICAgICAgY29u\nc3Qgc2Nyb2xsYWJsZSA9IHZ1ZS5yZWYoZmFsc2UpO1xuICAgICAgY29uc3QgbmF2T2Zmc2V0ID0g\ndnVlLnJlZigwKTtcbiAgICAgIGNvbnN0IGlzRm9jdXMgPSB2dWUucmVmKGZhbHNlKTtcbiAgICAg\nIGNvbnN0IGZvY3VzYWJsZSA9IHZ1ZS5yZWYodHJ1ZSk7XG4gICAgICBjb25zdCBzaXplTmFtZSA9\nIHZ1ZS5jb21wdXRlZCgoKSA9PiBbXCJ0b3BcIiwgXCJib3R0b21cIl0uaW5jbHVkZXMocm9vdFRh\nYnMucHJvcHMudGFiUG9zaXRpb24pID8gXCJ3aWR0aFwiIDogXCJoZWlnaHRcIik7XG4gICAgICBj\nb25zdCBuYXZTdHlsZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpciA9\nIHNpemVOYW1lLnZhbHVlID09PSBcIndpZHRoXCIgPyBcIlhcIiA6IFwiWVwiO1xuICAgICAgICBy\nZXR1cm4ge1xuICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSR7ZGlyfSgtJHtuYXZPZmZz\nZXQudmFsdWV9cHgpYFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgICBjb25zdCBzY3JvbGxQ\ncmV2ID0gKCkgPT4ge1xuICAgICAgICBpZiAoIW5hdlNjcm9sbCQudmFsdWUpXG4gICAgICAgICAg\ncmV0dXJuO1xuICAgICAgICBjb25zdCBjb250YWluZXJTaXplID0gbmF2U2Nyb2xsJC52YWx1ZVtg\nb2Zmc2V0JHtjYXBpdGFsaXplKHNpemVOYW1lLnZhbHVlKX1gXTtcbiAgICAgICAgY29uc3QgY3Vy\ncmVudE9mZnNldCA9IG5hdk9mZnNldC52YWx1ZTtcbiAgICAgICAgaWYgKCFjdXJyZW50T2Zmc2V0\nKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3T2Zmc2V0ID0gY3VycmVudE9m\nZnNldCA+IGNvbnRhaW5lclNpemUgPyBjdXJyZW50T2Zmc2V0IC0gY29udGFpbmVyU2l6ZSA6IDA7\nXG4gICAgICAgIG5hdk9mZnNldC52YWx1ZSA9IG5ld09mZnNldDtcbiAgICAgIH07XG4gICAgICBj\nb25zdCBzY3JvbGxOZXh0ID0gKCkgPT4ge1xuICAgICAgICBpZiAoIW5hdlNjcm9sbCQudmFsdWUg\nfHwgIW5hdiQudmFsdWUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuYXZTaXpl\nID0gbmF2JC52YWx1ZVtgb2Zmc2V0JHtjYXBpdGFsaXplKHNpemVOYW1lLnZhbHVlKX1gXTtcbiAg\nICAgICAgY29uc3QgY29udGFpbmVyU2l6ZSA9IG5hdlNjcm9sbCQudmFsdWVbYG9mZnNldCR7Y2Fw\naXRhbGl6ZShzaXplTmFtZS52YWx1ZSl9YF07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQg\nPSBuYXZPZmZzZXQudmFsdWU7XG4gICAgICAgIGlmIChuYXZTaXplIC0gY3VycmVudE9mZnNldCA8\nPSBjb250YWluZXJTaXplKVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmV3T2Zm\nc2V0ID0gbmF2U2l6ZSAtIGN1cnJlbnRPZmZzZXQgPiBjb250YWluZXJTaXplICogMiA\/IGN1cnJl\nbnRPZmZzZXQgKyBjb250YWluZXJTaXplIDogbmF2U2l6ZSAtIGNvbnRhaW5lclNpemU7XG4gICAg\nICAgIG5hdk9mZnNldC52YWx1ZSA9IG5ld09mZnNldDtcbiAgICAgIH07XG4gICAgICBjb25zdCBz\nY3JvbGxUb0FjdGl2ZVRhYiA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbmF2ID0gbmF2\nJC52YWx1ZTtcbiAgICAgICAgaWYgKCFzY3JvbGxhYmxlLnZhbHVlIHx8ICFlbCQudmFsdWUgfHwg\nIW5hdlNjcm9sbCQudmFsdWUgfHwgIW5hdilcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGF3\nYWl0IHZ1ZS5uZXh0VGljaygpO1xuICAgICAgICBjb25zdCBhY3RpdmVUYWIgPSBlbCQudmFsdWUu\ncXVlcnlTZWxlY3RvcihcIi5pcy1hY3RpdmVcIik7XG4gICAgICAgIGlmICghYWN0aXZlVGFiKVxu\nICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbmF2U2Nyb2xsID0gbmF2U2Nyb2xsJC52\nYWx1ZTtcbiAgICAgICAgY29uc3QgaXNIb3Jpem9udGFsID0gW1widG9wXCIsIFwiYm90dG9tXCJd\nLmluY2x1ZGVzKHJvb3RUYWJzLnByb3BzLnRhYlBvc2l0aW9uKTtcbiAgICAgICAgY29uc3QgYWN0\naXZlVGFiQm91bmRpbmcgPSBhY3RpdmVUYWIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAg\nICAgIGNvbnN0IG5hdlNjcm9sbEJvdW5kaW5nID0gbmF2U2Nyb2xsLmdldEJvdW5kaW5nQ2xpZW50\nUmVjdCgpO1xuICAgICAgICBjb25zdCBtYXhPZmZzZXQgPSBpc0hvcml6b250YWwgPyBuYXYub2Zm\nc2V0V2lkdGggLSBuYXZTY3JvbGxCb3VuZGluZy53aWR0aCA6IG5hdi5vZmZzZXRIZWlnaHQgLSBu\nYXZTY3JvbGxCb3VuZGluZy5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQgPSBu\nYXZPZmZzZXQudmFsdWU7XG4gICAgICAgIGxldCBuZXdPZmZzZXQgPSBjdXJyZW50T2Zmc2V0O1xu\nICAgICAgICBpZiAoaXNIb3Jpem9udGFsKSB7XG4gICAgICAgICAgaWYgKGFjdGl2ZVRhYkJvdW5k\naW5nLmxlZnQgPCBuYXZTY3JvbGxCb3VuZGluZy5sZWZ0KSB7XG4gICAgICAgICAgICBuZXdPZmZz\nZXQgPSBjdXJyZW50T2Zmc2V0IC0gKG5hdlNjcm9sbEJvdW5kaW5nLmxlZnQgLSBhY3RpdmVUYWJC\nb3VuZGluZy5sZWZ0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGFjdGl2ZVRhYkJvdW5k\naW5nLnJpZ2h0ID4gbmF2U2Nyb2xsQm91bmRpbmcucmlnaHQpIHtcbiAgICAgICAgICAgIG5ld09m\nZnNldCA9IGN1cnJlbnRPZmZzZXQgKyBhY3RpdmVUYWJCb3VuZGluZy5yaWdodCAtIG5hdlNjcm9s\nbEJvdW5kaW5nLnJpZ2h0O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICBpZiAoYWN0aXZlVGFiQm91bmRpbmcudG9wIDwgbmF2U2Nyb2xsQm91bmRpbmcudG9wKSB7XG4g\nICAgICAgICAgICBuZXdPZmZzZXQgPSBjdXJyZW50T2Zmc2V0IC0gKG5hdlNjcm9sbEJvdW5kaW5n\nLnRvcCAtIGFjdGl2ZVRhYkJvdW5kaW5nLnRvcCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlm\nIChhY3RpdmVUYWJCb3VuZGluZy5ib3R0b20gPiBuYXZTY3JvbGxCb3VuZGluZy5ib3R0b20pIHtc\nbiAgICAgICAgICAgIG5ld09mZnNldCA9IGN1cnJlbnRPZmZzZXQgKyAoYWN0aXZlVGFiQm91bmRp\nbmcuYm90dG9tIC0gbmF2U2Nyb2xsQm91bmRpbmcuYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAg\nICAgIH1cbiAgICAgICAgbmV3T2Zmc2V0ID0gTWF0aC5tYXgobmV3T2Zmc2V0LCAwKTtcbiAgICAg\nICAgbmF2T2Zmc2V0LnZhbHVlID0gTWF0aC5taW4obmV3T2Zmc2V0LCBtYXhPZmZzZXQpO1xuICAg\nICAgfTtcbiAgICAgIGNvbnN0IHVwZGF0ZSA9ICgpID0+IHtcbiAgICAgICAgdmFyIF9hMztcbiAg\nICAgICAgaWYgKCFuYXYkLnZhbHVlIHx8ICFuYXZTY3JvbGwkLnZhbHVlKVxuICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgcHJvcHMuc3RyZXRjaCAmJiAoKF9hMyA9IHRhYkJhclJlZi52YWx1ZSkg\nPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy51cGRhdGUoKSk7XG4gICAgICAgIGNvbnN0IG5hdlNpemUg\nPSBuYXYkLnZhbHVlW2BvZmZzZXQke2NhcGl0YWxpemUoc2l6ZU5hbWUudmFsdWUpfWBdO1xuICAg\nICAgICBjb25zdCBjb250YWluZXJTaXplID0gbmF2U2Nyb2xsJC52YWx1ZVtgb2Zmc2V0JHtjYXBp\ndGFsaXplKHNpemVOYW1lLnZhbHVlKX1gXTtcbiAgICAgICAgY29uc3QgY3VycmVudE9mZnNldCA9\nIG5hdk9mZnNldC52YWx1ZTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNpemUgPCBuYXZTaXplKSB7\nXG4gICAgICAgICAgc2Nyb2xsYWJsZS52YWx1ZSA9IHNjcm9sbGFibGUudmFsdWUgfHwge307XG4g\nICAgICAgICAgc2Nyb2xsYWJsZS52YWx1ZS5wcmV2ID0gY3VycmVudE9mZnNldDtcbiAgICAgICAg\nICBzY3JvbGxhYmxlLnZhbHVlLm5leHQgPSBjdXJyZW50T2Zmc2V0ICsgY29udGFpbmVyU2l6ZSA8\nIG5hdlNpemU7XG4gICAgICAgICAgaWYgKG5hdlNpemUgLSBjdXJyZW50T2Zmc2V0IDwgY29udGFp\nbmVyU2l6ZSkge1xuICAgICAgICAgICAgbmF2T2Zmc2V0LnZhbHVlID0gbmF2U2l6ZSAtIGNvbnRh\naW5lclNpemU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNjcm9s\nbGFibGUudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCA+IDApIHtc\nbiAgICAgICAgICAgIG5hdk9mZnNldC52YWx1ZSA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICB9O1xuICAgICAgY29uc3QgY2hhbmdlVGFiID0gKGUpID0+IHtcbiAgICAgICAgY29u\nc3QgY29kZSA9IGUuY29kZTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIHVwLFxuICAgICAg\nICAgIGRvd24sXG4gICAgICAgICAgbGVmdCxcbiAgICAgICAgICByaWdodFxuICAgICAgICB9ID0g\nRVZFTlRfQ09ERTtcbiAgICAgICAgaWYgKCFbdXAsIGRvd24sIGxlZnQsIHJpZ2h0XS5pbmNsdWRl\ncyhjb2RlKSlcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHRhYkxpc3QgPSBBcnJh\neS5mcm9tKGUuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9yQWxsKFwiW3JvbGU9dGFiXTpub3Qo\nLmlzLWRpc2FibGVkKVwiKSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRhYkxpc3Qu\naW5kZXhPZihlLnRhcmdldCk7XG4gICAgICAgIGxldCBuZXh0SW5kZXg7XG4gICAgICAgIGlmIChj\nb2RlID09PSBsZWZ0IHx8IGNvZGUgPT09IHVwKSB7XG4gICAgICAgICAgaWYgKGN1cnJlbnRJbmRl\neCA9PT0gMCkge1xuICAgICAgICAgICAgbmV4dEluZGV4ID0gdGFiTGlzdC5sZW5ndGggLSAxO1xu\nICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXgg\nLSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY3VycmVu\ndEluZGV4IDwgdGFiTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBuZXh0SW5kZXggPSBj\ndXJyZW50SW5kZXggKyAxO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0SW5k\nZXggPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0YWJMaXN0W25leHRJbmRl\neF0uZm9jdXMoe1xuICAgICAgICAgIHByZXZlbnRTY3JvbGw6IHRydWVcbiAgICAgICAgfSk7XG4g\nICAgICAgIHRhYkxpc3RbbmV4dEluZGV4XS5jbGljaygpO1xuICAgICAgICBzZXRGb2N1cygpO1xu\nICAgICAgfTtcbiAgICAgIGNvbnN0IHNldEZvY3VzID0gKCkgPT4ge1xuICAgICAgICBpZiAoZm9j\ndXNhYmxlLnZhbHVlKVxuICAgICAgICAgIGlzRm9jdXMudmFsdWUgPSB0cnVlO1xuICAgICAgfTtc\nbiAgICAgIGNvbnN0IHJlbW92ZUZvY3VzID0gKCkgPT4gaXNGb2N1cy52YWx1ZSA9IGZhbHNlO1xu\nICAgICAgdnVlLndhdGNoKHZpc2liaWxpdHksICh2aXNpYmlsaXR5MikgPT4ge1xuICAgICAgICBp\nZiAodmlzaWJpbGl0eTIgPT09IFwiaGlkZGVuXCIpIHtcbiAgICAgICAgICBmb2N1c2FibGUudmFs\ndWUgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmICh2aXNpYmlsaXR5MiA9PT0gXCJ2aXNpYmxl\nXCIpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZvY3VzYWJsZS52YWx1ZSA9IHRydWUs\nIDUwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB2dWUud2F0Y2goZm9jdXNlZCwgKGZv\nY3VzZWQyKSA9PiB7XG4gICAgICAgIGlmIChmb2N1c2VkMikge1xuICAgICAgICAgIHNldFRpbWVv\ndXQoKCkgPT4gZm9jdXNhYmxlLnZhbHVlID0gdHJ1ZSwgNTApO1xuICAgICAgICB9IGVsc2Uge1xu\nICAgICAgICAgIGZvY3VzYWJsZS52YWx1ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtc\nbiAgICAgIHVzZVJlc2l6ZU9ic2VydmVyKGVsJCwgdXBkYXRlKTtcbiAgICAgIHZ1ZS5vbk1vdW50\nZWQoKCkgPT4gc2V0VGltZW91dCgoKSA9PiBzY3JvbGxUb0FjdGl2ZVRhYigpLCAwKSk7XG4gICAg\nICB2dWUub25VcGRhdGVkKCgpID0+IHVwZGF0ZSgpKTtcbiAgICAgIGV4cG9zZSh7XG4gICAgICAg\nIHNjcm9sbFRvQWN0aXZlVGFiLFxuICAgICAgICByZW1vdmVGb2N1c1xuICAgICAgfSk7XG4gICAg\nICB2dWUud2F0Y2goKCkgPT4gcHJvcHMucGFuZXMsICgpID0+IHZtLnVwZGF0ZSgpLCB7XG4gICAg\nICAgIGZsdXNoOiBcInBvc3RcIixcbiAgICAgICAgZGVlcDogdHJ1ZVxuICAgICAgfSk7XG4gICAg\nICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjb25zdCBzY3JvbGxCdG4gPSBzY3JvbGxhYmxlLnZh\nbHVlID8gW3Z1ZS5jcmVhdGVWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgIFwiY2xhc3NcIjog\nW25zLmUoXCJuYXYtcHJldlwiKSwgbnMuaXMoXCJkaXNhYmxlZFwiLCAhc2Nyb2xsYWJsZS52YWx1\nZS5wcmV2KV0sXG4gICAgICAgICAgXCJvbkNsaWNrXCI6IHNjcm9sbFByZXZcbiAgICAgICAgfSwg\nW3Z1ZS5jcmVhdGVWTm9kZShFbEljb24sIG51bGwsIHtcbiAgICAgICAgICBkZWZhdWx0OiAoKSA9\nPiBbdnVlLmNyZWF0ZVZOb2RlKGljb25zVnVlLkFycm93TGVmdCwgbnVsbCwgbnVsbCldXG4gICAg\nICAgIH0pXSksIHZ1ZS5jcmVhdGVWTm9kZShcInNwYW5cIiwge1xuICAgICAgICAgIFwiY2xhc3Nc\nIjogW25zLmUoXCJuYXYtbmV4dFwiKSwgbnMuaXMoXCJkaXNhYmxlZFwiLCAhc2Nyb2xsYWJsZS52\nYWx1ZS5uZXh0KV0sXG4gICAgICAgICAgXCJvbkNsaWNrXCI6IHNjcm9sbE5leHRcbiAgICAgICAg\nfSwgW3Z1ZS5jcmVhdGVWTm9kZShFbEljb24sIG51bGwsIHtcbiAgICAgICAgICBkZWZhdWx0OiAo\nKSA9PiBbdnVlLmNyZWF0ZVZOb2RlKGljb25zVnVlLkFycm93UmlnaHQsIG51bGwsIG51bGwpXVxu\nICAgICAgICB9KV0pXSA6IG51bGw7XG4gICAgICAgIGNvbnN0IHRhYnMgPSBwcm9wcy5wYW5lcy5t\nYXAoKHBhbmUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgdmFyIF9hMywgX2IsIF9jLCBfZDtcbiAg\nICAgICAgICBjb25zdCB1aWQgPSBwYW5lLnVpZDtcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9\nIHBhbmUucHJvcHMuZGlzYWJsZWQ7XG4gICAgICAgICAgY29uc3QgdGFiTmFtZSA9IChfYiA9IChf\nYTMgPSBwYW5lLnByb3BzLm5hbWUpICE9IG51bGwgPyBfYTMgOiBwYW5lLmluZGV4KSAhPSBudWxs\nID8gX2IgOiBgJHtpbmRleH1gO1xuICAgICAgICAgIGNvbnN0IGNsb3NhYmxlID0gIWRpc2FibGVk\nICYmIChwYW5lLmlzQ2xvc2FibGUgfHwgcHJvcHMuZWRpdGFibGUpO1xuICAgICAgICAgIHBhbmUu\naW5kZXggPSBgJHtpbmRleH1gO1xuICAgICAgICAgIGNvbnN0IGJ0bkNsb3NlID0gY2xvc2FibGUg\nPyB2dWUuY3JlYXRlVk5vZGUoRWxJY29uLCB7XG4gICAgICAgICAgICBcImNsYXNzXCI6IFwiaXMt\naWNvbi1jbG9zZVwiLFxuICAgICAgICAgICAgXCJvbkNsaWNrXCI6IChldikgPT4gZW1pdChcInRh\nYlJlbW92ZVwiLCBwYW5lLCBldilcbiAgICAgICAgICB9LCB7XG4gICAgICAgICAgICBkZWZhdWx0\nOiAoKSA9PiBbdnVlLmNyZWF0ZVZOb2RlKGljb25zVnVlLkNsb3NlLCBudWxsLCBudWxsKV1cbiAg\nICAgICAgICB9KSA6IG51bGw7XG4gICAgICAgICAgY29uc3QgdGFiTGFiZWxDb250ZW50ID0gKChf\nZCA9IChfYyA9IHBhbmUuc2xvdHMpLmxhYmVsKSA9PSBudWxsID8gdm9pZCAwIDogX2QuY2FsbChf\nYykpIHx8IHBhbmUucHJvcHMubGFiZWw7XG4gICAgICAgICAgY29uc3QgdGFiaW5kZXggPSAhZGlz\nYWJsZWQgJiYgcGFuZS5hY3RpdmUgPyAwIDogLTE7XG4gICAgICAgICAgcmV0dXJuIHZ1ZS5jcmVh\ndGVWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgICBcInJlZlwiOiBgdGFiLSR7dWlkfWAsXG4g\nICAgICAgICAgICBcImNsYXNzXCI6IFtucy5lKFwiaXRlbVwiKSwgbnMuaXMocm9vdFRhYnMucHJv\ncHMudGFiUG9zaXRpb24pLCBucy5pcyhcImFjdGl2ZVwiLCBwYW5lLmFjdGl2ZSksIG5zLmlzKFwi\nZGlzYWJsZWRcIiwgZGlzYWJsZWQpLCBucy5pcyhcImNsb3NhYmxlXCIsIGNsb3NhYmxlKSwgbnMu\naXMoXCJmb2N1c1wiLCBpc0ZvY3VzLnZhbHVlKV0sXG4gICAgICAgICAgICBcImlkXCI6IGB0YWIt\nJHt0YWJOYW1lfWAsXG4gICAgICAgICAgICBcImtleVwiOiBgdGFiLSR7dWlkfWAsXG4gICAgICAg\nICAgICBcImFyaWEtY29udHJvbHNcIjogYHBhbmUtJHt0YWJOYW1lfWAsXG4gICAgICAgICAgICBc\nInJvbGVcIjogXCJ0YWJcIixcbiAgICAgICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBwYW5lLmFj\ndGl2ZSxcbiAgICAgICAgICAgIFwidGFiaW5kZXhcIjogdGFiaW5kZXgsXG4gICAgICAgICAgICBc\nIm9uRm9jdXNcIjogKCkgPT4gc2V0Rm9jdXMoKSxcbiAgICAgICAgICAgIFwib25CbHVyXCI6ICgp\nID0+IHJlbW92ZUZvY3VzKCksXG4gICAgICAgICAgICBcIm9uQ2xpY2tcIjogKGV2KSA9PiB7XG4g\nICAgICAgICAgICAgIHJlbW92ZUZvY3VzKCk7XG4gICAgICAgICAgICAgIGVtaXQoXCJ0YWJDbGlj\na1wiLCBwYW5lLCB0YWJOYW1lLCBldik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJv\nbktleWRvd25cIjogKGV2KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChjbG9zYWJsZSAmJiAoZXYu\nY29kZSA9PT0gRVZFTlRfQ09ERS5kZWxldGUgfHwgZXYuY29kZSA9PT0gRVZFTlRfQ09ERS5iYWNr\nc3BhY2UpKSB7XG4gICAgICAgICAgICAgICAgZW1pdChcInRhYlJlbW92ZVwiLCBwYW5lLCBldik7\nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBbLi4uW3RhYkxh\nYmVsQ29udGVudCwgYnRuQ2xvc2VdXSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdnVl\nLmNyZWF0ZVZOb2RlKFwiZGl2XCIsIHtcbiAgICAgICAgICBcInJlZlwiOiBlbCQsXG4gICAgICAg\nICAgXCJjbGFzc1wiOiBbbnMuZShcIm5hdi13cmFwXCIpLCBucy5pcyhcInNjcm9sbGFibGVcIiwg\nISFzY3JvbGxhYmxlLnZhbHVlKSwgbnMuaXMocm9vdFRhYnMucHJvcHMudGFiUG9zaXRpb24pXVxu\nICAgICAgICB9LCBbc2Nyb2xsQnRuLCB2dWUuY3JlYXRlVk5vZGUoXCJkaXZcIiwge1xuICAgICAg\nICAgIFwiY2xhc3NcIjogbnMuZShcIm5hdi1zY3JvbGxcIiksXG4gICAgICAgICAgXCJyZWZcIjog\nbmF2U2Nyb2xsJFxuICAgICAgICB9LCBbdnVlLmNyZWF0ZVZOb2RlKFwiZGl2XCIsIHtcbiAgICAg\nICAgICBcImNsYXNzXCI6IFtucy5lKFwibmF2XCIpLCBucy5pcyhyb290VGFicy5wcm9wcy50YWJQ\nb3NpdGlvbiksIG5zLmlzKFwic3RyZXRjaFwiLCBwcm9wcy5zdHJldGNoICYmIFtcInRvcFwiLCBc\nImJvdHRvbVwiXS5pbmNsdWRlcyhyb290VGFicy5wcm9wcy50YWJQb3NpdGlvbikpXSxcbiAgICAg\nICAgICBcInJlZlwiOiBuYXYkLFxuICAgICAgICAgIFwic3R5bGVcIjogbmF2U3R5bGUudmFsdWUs\nXG4gICAgICAgICAgXCJyb2xlXCI6IFwidGFibGlzdFwiLFxuICAgICAgICAgIFwib25LZXlkb3du\nXCI6IGNoYW5nZVRhYlxuICAgICAgICB9LCBbLi4uWyFwcm9wcy50eXBlID8gdnVlLmNyZWF0ZVZO\nb2RlKFRhYkJhciwge1xuICAgICAgICAgIFwicmVmXCI6IHRhYkJhclJlZixcbiAgICAgICAgICBc\nInRhYnNcIjogWy4uLnByb3BzLnBhbmVzXVxuICAgICAgICB9LCBudWxsKSA6IG51bGwsIHRhYnNd\nXSldKV0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCB0YWJzUHJvcHMgPSBidWls\nZFByb3BzKHtcbiAgICB0eXBlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6\nIFtcImNhcmRcIiwgXCJib3JkZXItY2FyZFwiLCBcIlwiXSxcbiAgICAgIGRlZmF1bHQ6IFwiXCJc\nbiAgICB9LFxuICAgIGNsb3NhYmxlOiBCb29sZWFuLFxuICAgIGFkZGFibGU6IEJvb2xlYW4sXG4g\nICAgbW9kZWxWYWx1ZToge1xuICAgICAgdHlwZTogW1N0cmluZywgTnVtYmVyXVxuICAgIH0sXG4g\nICAgZWRpdGFibGU6IEJvb2xlYW4sXG4gICAgdGFiUG9zaXRpb246IHtcbiAgICAgIHR5cGU6IFN0\ncmluZyxcbiAgICAgIHZhbHVlczogW1widG9wXCIsIFwicmlnaHRcIiwgXCJib3R0b21cIiwgXCJs\nZWZ0XCJdLFxuICAgICAgZGVmYXVsdDogXCJ0b3BcIlxuICAgIH0sXG4gICAgYmVmb3JlTGVhdmU6\nIHtcbiAgICAgIHR5cGU6IGRlZmluZVByb3BUeXBlKEZ1bmN0aW9uKSxcbiAgICAgIGRlZmF1bHQ6\nICgpID0+IHRydWVcbiAgICB9LFxuICAgIHN0cmV0Y2g6IEJvb2xlYW5cbiAgfSk7XG4gIGNvbnN0\nIGlzUGFuZU5hbWUgPSAodmFsdWUpID0+IGlzU3RyaW5nKHZhbHVlKSB8fCBpc051bWJlcih2YWx1\nZSk7XG4gIGNvbnN0IHRhYnNFbWl0cyA9IHtcbiAgICBbVVBEQVRFX01PREVMX0VWRU5UXTogKG5h\nbWUpID0+IGlzUGFuZU5hbWUobmFtZSksXG4gICAgdGFiQ2xpY2s6IChwYW5lLCBldikgPT4gZXYg\naW5zdGFuY2VvZiBFdmVudCxcbiAgICB0YWJDaGFuZ2U6IChuYW1lKSA9PiBpc1BhbmVOYW1lKG5h\nbWUpLFxuICAgIGVkaXQ6IChwYW5lTmFtZSwgYWN0aW9uKSA9PiBbXCJyZW1vdmVcIiwgXCJhZGRc\nIl0uaW5jbHVkZXMoYWN0aW9uKSxcbiAgICB0YWJSZW1vdmU6IChuYW1lKSA9PiBpc1BhbmVOYW1l\nKG5hbWUpLFxuICAgIHRhYkFkZDogKCkgPT4gdHJ1ZVxuICB9O1xuICBjb25zdCBUYWJzID0gdnVl\nLmRlZmluZUNvbXBvbmVudCh7XG4gICAgbmFtZTogXCJFbFRhYnNcIixcbiAgICBwcm9wczogdGFi\nc1Byb3BzLFxuICAgIGVtaXRzOiB0YWJzRW1pdHMsXG4gICAgc2V0dXAocHJvcHMsIHtcbiAgICAg\nIGVtaXQsXG4gICAgICBzbG90cyxcbiAgICAgIGV4cG9zZVxuICAgIH0pIHtcbiAgICAgIHZhciBf\nYTM7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcInRhYnNcIik7XG4gICAgICBjb25z\ndCB7XG4gICAgICAgIGNoaWxkcmVuOiBwYW5lcyxcbiAgICAgICAgYWRkQ2hpbGQ6IHJlZ2lzdGVy\nUGFuZSxcbiAgICAgICAgcmVtb3ZlQ2hpbGQ6IHVucmVnaXN0ZXJQYW5lXG4gICAgICB9ID0gdXNl\nT3JkZXJlZENoaWxkcmVuKHZ1ZS5nZXRDdXJyZW50SW5zdGFuY2UoKSwgXCJFbFRhYlBhbmVcIik7\nXG4gICAgICBjb25zdCBuYXYkID0gdnVlLnJlZigpO1xuICAgICAgY29uc3QgY3VycmVudE5hbWUg\nPSB2dWUucmVmKChfYTMgPSBwcm9wcy5tb2RlbFZhbHVlKSAhPSBudWxsID8gX2EzIDogXCIwXCIp\nO1xuICAgICAgY29uc3Qgc2V0Q3VycmVudE5hbWUgPSBhc3luYyAodmFsdWUsIHRyaWdnZXIgPSBm\nYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2EyMiwgX2IsIF9jO1xuICAgICAgICBpZiAoY3VycmVu\ndE5hbWUudmFsdWUgPT09IHZhbHVlIHx8IGlzVW5kZWZpbmVkKHZhbHVlKSlcbiAgICAgICAgICBy\nZXR1cm47XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgY2FuTGVhdmUgPSBhd2FpdCAo\nKF9hMjIgPSBwcm9wcy5iZWZvcmVMZWF2ZSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMjIuY2FsbChw\ncm9wcywgdmFsdWUsIGN1cnJlbnROYW1lLnZhbHVlKSk7XG4gICAgICAgICAgaWYgKGNhbkxlYXZl\nICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgY3VycmVudE5hbWUudmFsdWUgPSB2YWx1ZTtcbiAg\nICAgICAgICAgIGlmICh0cmlnZ2VyKSB7XG4gICAgICAgICAgICAgIGVtaXQoVVBEQVRFX01PREVM\nX0VWRU5ULCB2YWx1ZSk7XG4gICAgICAgICAgICAgIGVtaXQoXCJ0YWJDaGFuZ2VcIiwgdmFsdWUp\nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgKF9jID0gKF9iID0gbmF2JC52YWx1ZSkgPT0g\nbnVsbCA\/IHZvaWQgMCA6IF9iLnJlbW92ZUZvY3VzKSA9PSBudWxsID8gdm9pZCAwIDogX2MuY2Fs\nbChfYik7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIH1cbiAg\nICAgIH07XG4gICAgICBjb25zdCBoYW5kbGVUYWJDbGljayA9ICh0YWIsIHRhYk5hbWUsIGV2ZW50\nKSA9PiB7XG4gICAgICAgIGlmICh0YWIucHJvcHMuZGlzYWJsZWQpXG4gICAgICAgICAgcmV0dXJu\nO1xuICAgICAgICBzZXRDdXJyZW50TmFtZSh0YWJOYW1lLCB0cnVlKTtcbiAgICAgICAgZW1pdChc\nInRhYkNsaWNrXCIsIHRhYiwgZXZlbnQpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZVRh\nYlJlbW92ZSA9IChwYW5lLCBldikgPT4ge1xuICAgICAgICBpZiAocGFuZS5wcm9wcy5kaXNhYmxl\nZCB8fCBpc1VuZGVmaW5lZChwYW5lLnByb3BzLm5hbWUpKVxuICAgICAgICAgIHJldHVybjtcbiAg\nICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGVtaXQoXCJlZGl0XCIsIHBhbmUu\ncHJvcHMubmFtZSwgXCJyZW1vdmVcIik7XG4gICAgICAgIGVtaXQoXCJ0YWJSZW1vdmVcIiwgcGFu\nZS5wcm9wcy5uYW1lKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBoYW5kbGVUYWJBZGQgPSAoKSA9\nPiB7XG4gICAgICAgIGVtaXQoXCJlZGl0XCIsIHZvaWQgMCwgXCJhZGRcIik7XG4gICAgICAgIGVt\naXQoXCJ0YWJBZGRcIik7XG4gICAgICB9O1xuICAgICAgdnVlLndhdGNoKCgpID0+IHByb3BzLm1v\nZGVsVmFsdWUsIChtb2RlbFZhbHVlKSA9PiBzZXRDdXJyZW50TmFtZShtb2RlbFZhbHVlKSk7XG4g\nICAgICB2dWUud2F0Y2goY3VycmVudE5hbWUsIGFzeW5jICgpID0+IHtcbiAgICAgICAgdmFyIF9h\nMjI7XG4gICAgICAgIGF3YWl0IHZ1ZS5uZXh0VGljaygpO1xuICAgICAgICAoX2EyMiA9IG5hdiQu\ndmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfYTIyLnNjcm9sbFRvQWN0aXZlVGFiKCk7XG4gICAg\nICB9KTtcbiAgICAgIHZ1ZS5wcm92aWRlKHRhYnNSb290Q29udGV4dEtleSwge1xuICAgICAgICBw\ncm9wcyxcbiAgICAgICAgY3VycmVudE5hbWUsXG4gICAgICAgIHJlZ2lzdGVyUGFuZSxcbiAgICAg\nICAgdW5yZWdpc3RlclBhbmVcbiAgICAgIH0pO1xuICAgICAgZXhwb3NlKHtcbiAgICAgICAgY3Vy\ncmVudE5hbWVcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29uc3Qg\nYWRkU2xvdCA9IHNsb3RzW1wiYWRkLWljb25cIl07XG4gICAgICAgIGNvbnN0IG5ld0J1dHRvbiA9\nIHByb3BzLmVkaXRhYmxlIHx8IHByb3BzLmFkZGFibGUgPyB2dWUuY3JlYXRlVk5vZGUoXCJzcGFu\nXCIsIHtcbiAgICAgICAgICBcImNsYXNzXCI6IG5zLmUoXCJuZXctdGFiXCIpLFxuICAgICAgICAg\nIFwidGFiaW5kZXhcIjogXCIwXCIsXG4gICAgICAgICAgXCJvbkNsaWNrXCI6IGhhbmRsZVRhYkFk\nZCxcbiAgICAgICAgICBcIm9uS2V5ZG93blwiOiAoZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChl\ndi5jb2RlID09PSBFVkVOVF9DT0RFLmVudGVyKVxuICAgICAgICAgICAgICBoYW5kbGVUYWJBZGQo\nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFthZGRTbG90ID8gdnVlLnJlbmRlclNsb3Qoc2xv\ndHMsIFwiYWRkLWljb25cIikgOiB2dWUuY3JlYXRlVk5vZGUoRWxJY29uLCB7XG4gICAgICAgICAg\nXCJjbGFzc1wiOiBucy5pcyhcImljb24tcGx1c1wiKVxuICAgICAgICB9LCB7XG4gICAgICAgICAg\nZGVmYXVsdDogKCkgPT4gW3Z1ZS5jcmVhdGVWTm9kZShpY29uc1Z1ZS5QbHVzLCBudWxsLCBudWxs\nKV1cbiAgICAgICAgfSldKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IGhlYWRlciA9IHZ1ZS5jcmVh\ndGVWTm9kZShcImRpdlwiLCB7XG4gICAgICAgICAgXCJjbGFzc1wiOiBbbnMuZShcImhlYWRlclwi\nKSwgbnMuaXMocHJvcHMudGFiUG9zaXRpb24pXVxuICAgICAgICB9LCBbbmV3QnV0dG9uLCB2dWUu\nY3JlYXRlVk5vZGUoVGFiTmF2LCB7XG4gICAgICAgICAgXCJyZWZcIjogbmF2JCxcbiAgICAgICAg\nICBcImN1cnJlbnROYW1lXCI6IGN1cnJlbnROYW1lLnZhbHVlLFxuICAgICAgICAgIFwiZWRpdGFi\nbGVcIjogcHJvcHMuZWRpdGFibGUsXG4gICAgICAgICAgXCJ0eXBlXCI6IHByb3BzLnR5cGUsXG4g\nICAgICAgICAgXCJwYW5lc1wiOiBwYW5lcy52YWx1ZSxcbiAgICAgICAgICBcInN0cmV0Y2hcIjog\ncHJvcHMuc3RyZXRjaCxcbiAgICAgICAgICBcIm9uVGFiQ2xpY2tcIjogaGFuZGxlVGFiQ2xpY2ss\nXG4gICAgICAgICAgXCJvblRhYlJlbW92ZVwiOiBoYW5kbGVUYWJSZW1vdmVcbiAgICAgICAgfSwg\nbnVsbCldKTtcbiAgICAgICAgY29uc3QgcGFuZWxzID0gdnVlLmNyZWF0ZVZOb2RlKFwiZGl2XCIs\nIHtcbiAgICAgICAgICBcImNsYXNzXCI6IG5zLmUoXCJjb250ZW50XCIpXG4gICAgICAgIH0sIFt2\ndWUucmVuZGVyU2xvdChzbG90cywgXCJkZWZhdWx0XCIpXSk7XG4gICAgICAgIHJldHVybiB2dWUu\nY3JlYXRlVk5vZGUoXCJkaXZcIiwge1xuICAgICAgICAgIFwiY2xhc3NcIjogW25zLmIoKSwgbnMu\nbShwcm9wcy50YWJQb3NpdGlvbiksIHtcbiAgICAgICAgICAgIFtucy5tKFwiY2FyZFwiKV06IHBy\nb3BzLnR5cGUgPT09IFwiY2FyZFwiLFxuICAgICAgICAgICAgW25zLm0oXCJib3JkZXItY2FyZFwi\nKV06IHByb3BzLnR5cGUgPT09IFwiYm9yZGVyLWNhcmRcIlxuICAgICAgICAgIH1dXG4gICAgICAg\nIH0sIFsuLi5wcm9wcy50YWJQb3NpdGlvbiAhPT0gXCJib3R0b21cIiA\/IFtoZWFkZXIsIHBhbmVs\nc10gOiBbcGFuZWxzLCBoZWFkZXJdXSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0\nIHRhYlBhbmVQcm9wcyA9IGJ1aWxkUHJvcHMoe1xuICAgIGxhYmVsOiB7XG4gICAgICB0eXBlOiBT\ndHJpbmcsXG4gICAgICBkZWZhdWx0OiBcIlwiXG4gICAgfSxcbiAgICBuYW1lOiB7XG4gICAgICB0\neXBlOiBbU3RyaW5nLCBOdW1iZXJdXG4gICAgfSxcbiAgICBjbG9zYWJsZTogQm9vbGVhbixcbiAg\nICBkaXNhYmxlZDogQm9vbGVhbixcbiAgICBsYXp5OiBCb29sZWFuXG4gIH0pO1xuICBjb25zdCBf\naG9pc3RlZF8xJGIgPSBbXCJpZFwiLCBcImFyaWEtaGlkZGVuXCIsIFwiYXJpYS1sYWJlbGxlZGJ5\nXCJdO1xuICBjb25zdCBDT01QT05FTlRfTkFNRSA9IFwiRWxUYWJQYW5lXCI7XG4gIGNvbnN0IF9f\nZGVmYXVsdF9fJDEgPSB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBuYW1lOiBDT01QT05FTlRf\nTkFNRVxuICB9KTtcbiAgY29uc3QgX3NmY19tYWluJGUgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUu\nZGVmaW5lQ29tcG9uZW50KHtcbiAgICAuLi5fX2RlZmF1bHRfXyQxLFxuICAgIHByb3BzOiB0YWJQ\nYW5lUHJvcHMsXG4gICAgc2V0dXAoX19wcm9wcykge1xuICAgICAgY29uc3QgcHJvcHMgPSBfX3By\nb3BzO1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB2dWUuZ2V0Q3VycmVudEluc3RhbmNlKCk7XG4g\nICAgICBjb25zdCBzbG90cyA9IHZ1ZS51c2VTbG90cygpO1xuICAgICAgY29uc3QgdGFic1Jvb3Qg\nPSB2dWUuaW5qZWN0KHRhYnNSb290Q29udGV4dEtleSk7XG4gICAgICBpZiAoIXRhYnNSb290KVxu\nICAgICAgICB0aHJvd0Vycm9yKENPTVBPTkVOVF9OQU1FLCBcInVzYWdlOiA8ZWwtdGFicz48ZWwt\ndGFiLXBhbmUgXC8+PFwvZWwtdGFic1wvPlwiKTtcbiAgICAgIGNvbnN0IG5zID0gdXNlTmFtZXNw\nYWNlKFwidGFiLXBhbmVcIik7XG4gICAgICBjb25zdCBpbmRleCA9IHZ1ZS5yZWYoKTtcbiAgICAg\nIGNvbnN0IGlzQ2xvc2FibGUgPSB2dWUuY29tcHV0ZWQoKCkgPT4gcHJvcHMuY2xvc2FibGUgfHwg\ndGFic1Jvb3QucHJvcHMuY2xvc2FibGUpO1xuICAgICAgY29uc3QgYWN0aXZlID0gY29tcHV0ZWRF\nYWdlcigoKSA9PiB7XG4gICAgICAgIHZhciBfYTM7XG4gICAgICAgIHJldHVybiB0YWJzUm9vdC5j\ndXJyZW50TmFtZS52YWx1ZSA9PT0gKChfYTMgPSBwcm9wcy5uYW1lKSAhPSBudWxsID8gX2EzIDog\naW5kZXgudmFsdWUpO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBsb2FkZWQgPSB2dWUucmVmKGFj\ndGl2ZS52YWx1ZSk7XG4gICAgICBjb25zdCBwYW5lTmFtZSA9IHZ1ZS5jb21wdXRlZCgoKSA9PiB7\nXG4gICAgICAgIHZhciBfYTM7XG4gICAgICAgIHJldHVybiAoX2EzID0gcHJvcHMubmFtZSkgIT0g\nbnVsbCA\/IF9hMyA6IGluZGV4LnZhbHVlO1xuICAgICAgfSk7XG4gICAgICBjb25zdCBzaG91bGRC\nZVJlbmRlciA9IGNvbXB1dGVkRWFnZXIoKCkgPT4gIXByb3BzLmxhenkgfHwgbG9hZGVkLnZhbHVl\nIHx8IGFjdGl2ZS52YWx1ZSk7XG4gICAgICB2dWUud2F0Y2goYWN0aXZlLCAodmFsKSA9PiB7XG4g\nICAgICAgIGlmICh2YWwpXG4gICAgICAgICAgbG9hZGVkLnZhbHVlID0gdHJ1ZTtcbiAgICAgIH0p\nO1xuICAgICAgY29uc3QgcGFuZSA9IHZ1ZS5yZWFjdGl2ZSh7XG4gICAgICAgIHVpZDogaW5zdGFu\nY2UudWlkLFxuICAgICAgICBzbG90cyxcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIHBhbmVOYW1l\nLFxuICAgICAgICBhY3RpdmUsXG4gICAgICAgIGluZGV4LFxuICAgICAgICBpc0Nsb3NhYmxlXG4g\nICAgICB9KTtcbiAgICAgIHZ1ZS5vbk1vdW50ZWQoKCkgPT4ge1xuICAgICAgICB0YWJzUm9vdC5y\nZWdpc3RlclBhbmUocGFuZSk7XG4gICAgICB9KTtcbiAgICAgIHZ1ZS5vblVubW91bnRlZCgoKSA9\nPiB7XG4gICAgICAgIHRhYnNSb290LnVucmVnaXN0ZXJQYW5lKHBhbmUudWlkKTtcbiAgICAgIH0p\nO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHZ1ZS51\nbnJlZihzaG91bGRCZVJlbmRlcikgPyB2dWUud2l0aERpcmVjdGl2ZXMoKHZ1ZS5vcGVuQmxvY2so\nKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAga2V5OiAwLFxu\nICAgICAgICAgIGlkOiBgcGFuZS0ke3Z1ZS51bnJlZihwYW5lTmFtZSl9YCxcbiAgICAgICAgICBj\nbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKHZ1ZS51bnJlZihucykuYigpKSxcbiAgICAgICAgICBy\nb2xlOiBcInRhYnBhbmVsXCIsXG4gICAgICAgICAgXCJhcmlhLWhpZGRlblwiOiAhdnVlLnVucmVm\nKGFjdGl2ZSksXG4gICAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogYHRhYi0ke3Z1ZS51bnJl\nZihwYW5lTmFtZSl9YFxuICAgICAgICB9LCBbXG4gICAgICAgICAgdnVlLnJlbmRlclNsb3QoX2N0\neC4kc2xvdHMsIFwiZGVmYXVsdFwiKVxuICAgICAgICBdLCAxMCwgX2hvaXN0ZWRfMSRiKSksIFtc\nbiAgICAgICAgICBbdnVlLnZTaG93LCB2dWUudW5yZWYoYWN0aXZlKV1cbiAgICAgICAgXSkgOiB2\ndWUuY3JlYXRlQ29tbWVudFZOb2RlKFwidi1pZlwiLCB0cnVlKTtcbiAgICAgIH07XG4gICAgfVxu\nICB9KTtcbiAgdmFyIFRhYlBhbmUgPSBcLyogQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyhfc2Zj\nX21haW4kZSwgW1tcIl9fZmlsZVwiLCBcInRhYi1wYW5lLnZ1ZVwiXV0pO1xuICBjb25zdCBFbFRh\nYnMgPSB3aXRoSW5zdGFsbChUYWJzLCB7XG4gICAgVGFiUGFuZVxuICB9KTtcbiAgY29uc3QgRWxU\nYWJQYW5lID0gd2l0aE5vb3BJbnN0YWxsKFRhYlBhbmUpO1xuICBjb25zdCB0ZXh0UHJvcHMgPSBi\ndWlsZFByb3BzKHtcbiAgICB0eXBlOiB7XG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1\nZXM6IFtcInByaW1hcnlcIiwgXCJzdWNjZXNzXCIsIFwiaW5mb1wiLCBcIndhcm5pbmdcIiwgXCJk\nYW5nZXJcIiwgXCJcIl0sXG4gICAgICBkZWZhdWx0OiBcIlwiXG4gICAgfSxcbiAgICBzaXplOiB7\nXG4gICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICB2YWx1ZXM6IGNvbXBvbmVudFNpemVzLFxuICAg\nICAgZGVmYXVsdDogXCJcIlxuICAgIH0sXG4gICAgdHJ1bmNhdGVkOiB7XG4gICAgICB0eXBlOiBC\nb29sZWFuXG4gICAgfSxcbiAgICBsaW5lQ2xhbXA6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIE51\nbWJlcl1cbiAgICB9LFxuICAgIHRhZzoge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZGVm\nYXVsdDogXCJzcGFuXCJcbiAgICB9XG4gIH0pO1xuICBjb25zdCBfX2RlZmF1bHRfXyA9IHZ1ZS5k\nZWZpbmVDb21wb25lbnQoe1xuICAgIG5hbWU6IFwiRWxUZXh0XCJcbiAgfSk7XG4gIGNvbnN0IF9z\nZmNfbWFpbiRkID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAg\nLi4uX19kZWZhdWx0X18sXG4gICAgcHJvcHM6IHRleHRQcm9wcyxcbiAgICBzZXR1cChfX3Byb3Bz\nKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4gICAgICBjb25zdCB0ZXh0U2l6ZSA9\nIHVzZUZvcm1TaXplKCk7XG4gICAgICBjb25zdCBucyA9IHVzZU5hbWVzcGFjZShcInRleHRcIik7\nXG4gICAgICBjb25zdCB0ZXh0S2xzID0gdnVlLmNvbXB1dGVkKCgpID0+IFtcbiAgICAgICAgbnMu\nYigpLFxuICAgICAgICBucy5tKHByb3BzLnR5cGUpLFxuICAgICAgICBucy5tKHRleHRTaXplLnZh\nbHVlKSxcbiAgICAgICAgbnMuaXMoXCJ0cnVuY2F0ZWRcIiwgcHJvcHMudHJ1bmNhdGVkKSxcbiAg\nICAgICAgbnMuaXMoXCJsaW5lLWNsYW1wXCIsICFpc1VuZGVmaW5lZChwcm9wcy5saW5lQ2xhbXAp\nKVxuICAgICAgXSk7XG4gICAgICByZXR1cm4gKF9jdHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICBy\nZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2sodnVlLnJlc29sdmVEeW5hbWlj\nQ29tcG9uZW50KF9jdHgudGFnKSwge1xuICAgICAgICAgIGNsYXNzOiB2dWUubm9ybWFsaXplQ2xh\nc3ModnVlLnVucmVmKHRleHRLbHMpKSxcbiAgICAgICAgICBzdHlsZTogdnVlLm5vcm1hbGl6ZVN0\neWxlKHsgXCItd2Via2l0LWxpbmUtY2xhbXBcIjogX2N0eC5saW5lQ2xhbXAgfSlcbiAgICAgICAg\nfSwge1xuICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAg\nIHZ1ZS5yZW5kZXJTbG90KF9jdHguJHNsb3RzLCBcImRlZmF1bHRcIilcbiAgICAgICAgICBdKSxc\nbiAgICAgICAgICBfOiAzXG4gICAgICAgIH0sIDgsIFtcImNsYXNzXCIsIFwic3R5bGVcIl0pO1xu\nICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICB2YXIgVGV4dCA9IFwvKiBAX19QVVJFX18gKlwvIF9l\neHBvcnRfc2ZjKF9zZmNfbWFpbiRkLCBbW1wiX19maWxlXCIsIFwidGV4dC52dWVcIl1dKTtcbiAg\nY29uc3QgRWxUZXh0ID0gd2l0aEluc3RhbGwoVGV4dCk7XG4gIGNvbnN0IEVtb2ppUGFuZWwgPSB7\nXG4gICAgJGRhdGE6IHtcbiAgICAgIGltYWdlVXJsTGlzdDogW11cbiAgICB9LFxuICAgIGluaXQo\nKSB7XG4gICAgICBpZiAodGhpcy4kZGF0YS5pbWFnZVVybExpc3QubGVuZ3RoID09PSAwKSB7XG4g\nICAgICAgIHRoaXMuY3JlYXRlSW1hZ2VMaXN0KCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog6I635Y+W5Zu+54mH5YiX6KGoXG4gICAgICpcL1xuICAgIGdldEltYWdlTGlzdCgp\nIHtcbiAgICAgIHJldHVybiB0aGlzLiRkYXRhLmltYWdlVXJsTGlzdDtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDnlJ\/miJDlm77niYfliJfooahcbiAgICAgKlwvXG4gICAgY3JlYXRlSW1hZ2VM\naXN0KCkge1xuICAgICAgbGV0IGltYWdlVGVtcGxhdGVVcmwgPSBcIlwvXC90YjIuYmRzdGF0aWMu\nY29tXC90YlwvZWRpdG9yXC9pbWFnZXNcL2ZhY2VcL2lfZlwiO1xuICAgICAgbGV0IHN0YXJ0SW1h\nZ2VJZCA9IDE7XG4gICAgICBsZXQgZW5kSW1hZ2VJZCA9IDU1O1xuICAgICAgbGV0IGltYWdlTWlu\nZVR5cGUgPSBcInBuZ1wiO1xuICAgICAgZm9yIChsZXQgaW5kZXggPSBzdGFydEltYWdlSWQ7IGlu\nZGV4IDw9IGVuZEltYWdlSWQ7IGluZGV4KyspIHtcbiAgICAgICAgdGhpcy4kZGF0YS5pbWFnZVVy\nbExpc3QucHVzaChcbiAgICAgICAgICBgJHtpbWFnZVRlbXBsYXRlVXJsfSR7aW5kZXggPCAxMCA\/\nIFwiMFwiICsgaW5kZXggOiBpbmRleH0uJHtpbWFnZU1pbmVUeXBlfWBcbiAgICAgICAgKTtcbiAg\nICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IHVzZVRpcHRhcFN0b3JlID0gcGluaWEkMS5kZWZp\nbmVTdG9yZSh7XG4gICAgaWQ6IFwidGlwdGFwXCIsXG4gICAgc3RhdGU6ICgpID0+ICh7XG4gICAg\nICBcLyoqXG4gICAgICAgKiDmmK\/lkKblvILmraXliqDovb3lrozmiJDlrp7kvotcbiAgICAgICAq\nXC9cbiAgICAgIGlzTG9hZGVkOiBmYWxzZVxuICAgIH0pXG4gIH0pO1xuICBjb25zdCBfaG9pc3Rl\nZF8xJGEgPSB7IGlkOiBcInJlcGx5LWVkaXRvclwiIH07XG4gIGNvbnN0IF9zZmNfbWFpbiRjID0g\nXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgX19uYW1lOiBcIlRp\ncHRhcFwiLFxuICAgIHNldHVwKF9fcHJvcHMsIHsgZXhwb3NlOiBfX2V4cG9zZSB9KSB7XG4gICAg\nICBjb25zdCB0aXB0YXBTdG9yZSA9IHVzZVRpcHRhcFN0b3JlKCk7XG4gICAgICBsZXQgZWRpdG9y\nID0gbnVsbDtcbiAgICAgIGxldCAkdGlwdGFwID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcbiAg\nICAgICAgXCJzY3JpcHRcIixcbiAgICAgICAge1xuICAgICAgICAgIGlubmVySFRNTDogYFxuICAg\nICAgICAgICAgICAgIGltcG9ydCB7IEVkaXRvciB9IGZyb20gJ2h0dHBzOlwvXC9mYXN0bHkuanNk\nZWxpdnIubmV0XC9ucG1cL0B0aXB0YXBcL2NvcmVAMi4yLjBcLytlc20nXG4gICAgICAgICAgICAg\nICAgaW1wb3J0IFN0YXJ0ZXJLaXQgZnJvbSAnaHR0cHM6XC9cL2Zhc3RseS5qc2RlbGl2ci5uZXRc\nL25wbVwvQHRpcHRhcFwvc3RhcnRlci1raXRAMi4yLjBcLytlc20nXG4gICAgICAgICAgICAgICAg\naW1wb3J0IFBsYWNlaG9sZGVyIGZyb20gJ2h0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9u\ncG1cL0B0aXB0YXBcL2V4dGVuc2lvbi1wbGFjZWhvbGRlckAyLjIuMFwvK2VzbSdcbiAgICAgICAg\nICAgICAgICBpbXBvcnQgSW1hZ2UgZnJvbSBcImh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0\nXC9ucG1cL0B0aXB0YXBcL2V4dGVuc2lvbi1pbWFnZUAyLjIuMFwvK2VzbVwiO1xuICAgICAgICAg\nICAgICAgIGNvbnN0IGVkaXRvciA9IG5ldyBFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIGVsZW1l\nbnQ6IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNyZXBseS1lZGl0b3InKSxcbiAgICAgICAgICAg\nICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIFN0YXJ0ZXJLaXQsXG4gICAg\nICAgICAgICAgICAgICAgIFBsYWNlaG9sZGVyLmNvbmZpZ3VyZSh7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBwbGFjZWhvbGRlcjogXCLlj5HluJbljYPnmb7luqYg5paH5piO56ys5LiA5q2lXCIs\nXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBJbWFnZS5jb25m\naWd1cmUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dCYXNlNjQ6IHRydWUsXG4gICAg\nICAgICAgICAgICAgICAgICAgICBIVE1MQXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGNsYXNzOiBcInRpcHRhcC1pbnB1dC1pbWFnZVwiLFxuICAgICAgICAgICAgICAg\nICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZTogdHJ1ZSxcbiAgICAg\nICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBj\nb250ZW50OiAnJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB3aW5kb3cu\ndGlwdGFwRWRpdG9yID0gZWRpdG9yO1xuXHRcdFx0XHR3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcg\nRXZlbnQoXCJ0aXB0YXAtcmVhZHlcIikpO1xuICAgICAgICAgICAgICAgIGBcbiAgICAgICAgfSxc\nbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwibW9kdWxlXCJcbiAgICAgICAgfVxuICAgICAg\nKTtcbiAgICAgIHZ1ZS5vbk1vdW50ZWQoKCkgPT4ge1xuICAgICAgICBkb211dGlscy5hcHBlbmQo\nZG9jdW1lbnQuaGVhZCwgJHRpcHRhcCk7XG4gICAgICB9KTtcbiAgICAgIHdpbmRvdy5hZGRFdmVu\ndExpc3RlbmVyKFwidGlwdGFwLXJlYWR5XCIsICgpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3Mo\nXCJFZGl0b3I6IFRpcHRhcCBpcyBzdWNjZXNzIGxvYWRlZFwiLCBcImdyZWVuXCIpO1xuICAgICAg\nICB0aXB0YXBTdG9yZS5pc0xvYWRlZCA9IHRydWU7XG4gICAgICAgIGVkaXRvciA9IF91bnNhZmVX\naW5kb3cudGlwdGFwRWRpdG9yO1xuICAgICAgfSwge1xuICAgICAgICBvbmNlOiB0cnVlXG4gICAg\nICB9KTtcbiAgICAgIGNvbnN0IEVkaXRvclRvb2xzID0ge1xuICAgICAgICBcLyoqXG4gICAgICAg\nICAqIOaPkuWFpeWbvueJh1xuICAgICAgICAgKiBAcGFyYW0gdXJsIOWbvueJh+mTvuaOpVxuICAg\nICAgICAgKlwvXG4gICAgICAgIGluc2VydEltYWdlKHVybCkge1xuICAgICAgICAgIGxvZy5pbmZv\nKFwiRWRpdG9yOiDmj5LlhaXlm77niYcgPT4gXCIgKyB1cmwpO1xuICAgICAgICAgIGxldCB0aXBF\nZGl0b3IgPSBlZGl0b3I7XG4gICAgICAgICAgdGlwRWRpdG9yLmNvbW1hbmRzLnNldEltYWdlKHtc\nbiAgICAgICAgICAgIHNyYzogdXJsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAg\nIFwvKipcbiAgICAgICAgICog6I635Y+W6L6T5YWl55qE5YaF5a65XG4gICAgICAgICAqIO+8iOWG\nhemDqOi\/m+ihjOWtl+espuS4sui9rOaNouOAguavlOWmguihqOaDhei9rOaNou+8iVxuICAgICAg\nICAgKlwvXG4gICAgICAgIGdldFJlcGx5Q29udGVudEluZm8oKSB7XG4gICAgICAgICAgdmFyIF9h\nMztcbiAgICAgICAgICBsb2cuaW5mbyhcIkVkaXRvcjog6I635Y+W5bm26Kej5p6Q5YaF5a65XCIp\nO1xuICAgICAgICAgIGxldCB0aXBFZGl0b3IgPSBlZGl0b3I7XG4gICAgICAgICAgbGV0IGNvbnRl\nbnRIVE1MID0gdGlwRWRpdG9yLmdldEhUTUwoKTtcbiAgICAgICAgICBsZXQgJHBhcnNlTm9kZSA9\nIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgICAgJHBhcnNlTm9kZS5p\nbm5lckhUTUwgPSBjb250ZW50SFRNTDtcbiAgICAgICAgICBsZXQgJHBhcnNlQ29udGVudCA9IChf\nYTMgPSAkcGFyc2VOb2RlLmZpcnN0Q2hpbGQpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuY2xvbmVO\nb2RlKHRydWUpO1xuICAgICAgICAgIGxldCBjb250ZW50TGlzdCA9IFtdO1xuICAgICAgICAgIGxl\ndCAkcGFyc2VMaXN0ID0gQXJyYXkuZnJvbSgkcGFyc2VOb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoXCIm\nID4gKlwiKSk7XG4gICAgICAgICAgJHBhcnNlTGlzdC5mb3JFYWNoKCgkbGluZSwgaW5kZXgpID0+\nIHtcbiAgICAgICAgICAgIGlmICgkbGluZS5jbGFzc05hbWUgPT09IFwiaXMtZW1wdHlcIikge1xu\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbGluZS5x\ndWVyeVNlbGVjdG9yQWxsKFwiaW1nLnRpcHRhcC1pbnB1dC1pbWFnZVwiKS5mb3JFYWNoKCgkaW1n\nKSA9PiB7XG4gICAgICAgICAgICAgICRpbWcub3V0ZXJIVE1MID0gYFtlbW90aW9uIHBpY190eXBl\nPTEgd2lkdGg9MzAgaGVpZ2h0PTMwXSR7JGltZy5zcmMucmVwbGFjZShcL15odHRwKHN8KTpcL2cs\nIFwiXCIpfVtcL2Vtb3Rpb25dYDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29udGVu\ndExpc3QucHVzaCgkbGluZS5pbm5lclRleHQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGxl\ndCBjb250ZW50ID0gY29udGVudExpc3Quam9pbihcIlxcblwiKTtcbiAgICAgICAgICBsZXQgcGFy\nc2VEYXRhID0ge1xuICAgICAgICAgICAgdGV4dDogY29udGVudCxcbiAgICAgICAgICAgIGh0bWw6\nICRwYXJzZUNvbnRlbnQuaW5uZXJIVE1MXG4gICAgICAgICAgfTtcbiAgICAgICAgICBsb2cuaW5m\nbyhbXCJFZGl0b3I6IOino+aekOeahOWGheWuuSA9PiBcIiwgcGFyc2VEYXRhXSk7XG4gICAgICAg\nICAgcmV0dXJuIHBhcnNlRGF0YTtcbiAgICAgICAgfSxcbiAgICAgICAgXC8qKlxuICAgICAgICAg\nKiDmuIXnqbrlhoXlrrlcbiAgICAgICAgICpcL1xuICAgICAgICBjbGVhckNvbnRlbnQoKSB7XG4g\nICAgICAgICAgbG9nLmluZm8oXCJFZGl0b3I6IOa4heepulwiKTtcbiAgICAgICAgICBsZXQgdGlw\nRWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgIHRpcEVkaXRvci5jb21tYW5kcy5jbGVhckNvbnRl\nbnQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgXC8qKlxuICAgICAgICAgKiDnm5HlkKznvJbovpHl\nmajlhoXlrrnmlLnlj5jml7bvvIzmmK\/lkKbkuLrnqbpcbiAgICAgICAgICogQHBhcmFtIGNhbGxi\nYWNrIOebkeWQrOWbnuiwg1xuICAgICAgICAgKlwvXG4gICAgICAgIGxpc3RlbkVkaXRvckNvbnRl\nbnRDaGFuZ2VFbXB0eVN0YXRlKGNhbGxiYWNrKSB7XG4gICAgICAgICAgbG9nLmluZm8oXCJFZGl0\nb3I6IOiuvue9ruebkeWQrOe8lui+keWZqOWGheWuueaUueWPmOaXtu+8jOaYr+WQpuS4uuepulwi\nKTtcbiAgICAgICAgICBsZXQgdGlwRWRpdG9yID0gZWRpdG9yO1xuICAgICAgICAgIHRpcEVkaXRv\nci5vbihcInVwZGF0ZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBjYWxsYmFjayh0aXBFZGl0b3Iu\naXNFbXB0eSk7XG4gICAgICAgICAgICB0aXBFZGl0b3IuY29tbWFuZHMuc2Nyb2xsSW50b1ZpZXco\nKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgXC8qKlxuICAgICAgICAgKiDn\nvJbovpHlmajojrflj5bnhKbngrnvvIjnp7vliqjnq6\/llKTphpLplK7nm5jvvIlcbiAgICAgICAg\nICogQHBhcmFtIFt0aW1lb3V0PTBdIOW7tui\/n+aXtumXtFxuICAgICAgICAgKlwvXG4gICAgICAg\nIHNldEVkaXRvckZvY3VzKHRpbWVvdXQgPSAwKSB7XG4gICAgICAgICAgbG9nLmluZm8oXCJFZGl0\nb3I6IOiOt+WPlueEpueCuVwiKTtcbiAgICAgICAgICBpZiAodGltZW91dCA8IDApIHtcbiAgICAg\nICAgICAgIGxldCB0aXBFZGl0b3IgPSBlZGl0b3I7XG4gICAgICAgICAgICB0aXBFZGl0b3IuY29t\nbWFuZHMuZm9jdXMoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91\ndCgoKSA9PiB7XG4gICAgICAgICAgICAgIGxldCB0aXBFZGl0b3IgPSBlZGl0b3I7XG4gICAgICAg\nICAgICAgIHRpcEVkaXRvci5jb21tYW5kcy5mb2N1cygpO1xuICAgICAgICAgICAgfSwgdGltZW91\ndCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgX19leHBvc2UoRWRp\ndG9yVG9vbHMpO1xuICAgICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgcmV0\ndXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCBfaG9p\nc3RlZF8xJGEpO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBUaXB0YXAgPSBcLyog\nQF9fUFVSRV9fICpcLyBfZXhwb3J0X3NmYyQxKF9zZmNfbWFpbiRjLCBbW1wiX19zY29wZUlkXCIs\nIFwiZGF0YS12LTM5NGQ4ZTA0XCJdXSk7XG4gIGNvbnN0IF93aXRoU2NvcGVJZCQyID0gKG4pID0+\nICh2dWUucHVzaFNjb3BlSWQoXCJkYXRhLXYtNzVkZWNjNGFcIiksIG4gPSBuKCksIHZ1ZS5wb3BT\nY29wZUlkKCksIG4pO1xuICBjb25zdCBfaG9pc3RlZF8xJDkgPSBbXCJkYXRhLXNob3ctYm90dG9t\nLXBhbmVsXCIsIFwiZGF0YS1zaG93LXJlcGx5LWNvbnRlbnRcIl07XG4gIGNvbnN0IF9ob2lzdGVk\nXzIkOCA9IFtcImRhdGEtZnVsbFwiXTtcbiAgY29uc3QgX2hvaXN0ZWRfMyQ3ID0ge1xuICAgIGtl\neTogMCxcbiAgICBjbGFzczogXCJmdWxsLXRvb2xiYXItdG9wLW5hdi1jb250YWluZXJcIlxuICB9\nO1xuICBjb25zdCBfaG9pc3RlZF80JDcgPSB7IGNsYXNzOiBcImZ1bGwtdG9vbGJhci10b3AtbGVm\ndC1jb250YWluZXJcIiB9O1xuICBjb25zdCBfaG9pc3RlZF81JDcgPSB7IGNsYXNzOiBcImZ1bGwt\ndG9vbGJhci10b3AtcmlnaHQtY29udGFpbmVyXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfNiQ2ID0g\nW1wiZmlsbFwiXTtcbiAgY29uc3QgX2hvaXN0ZWRfNyQ0ID0gXC8qIEBfX1BVUkVfXyAqXC8gX3dp\ndGhTY29wZUlkJDIoKCkgPT4gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmNyZWF0ZUVsZW1lbnRWTm9k\nZShcInBhdGhcIiwge1xuICAgIGQ6IFwiTTUxMSA5NTQuODZjLTExOS4zIDAtMjMxLjQtNDYuMS0z\nMTUuOC0xMjkuOS04NC4zLTgzLjgtMTMwLjgtMTk1LjMtMTMwLjgtMzEzLjggMC0xMTguNSA0Ni41\nLTIzMCAxMzAuOC0zMTMuOCA4NC4zLTgzLjggMTk2LjUtMTI5LjkgMzE1LjgtMTI5LjkgMTE5LjMg\nMCAyMzEuNSA0Ni4xIDMxNS44IDEyOS45IDE3NC4xIDE3My4xIDE3NC4xIDQ1NC42IDAgNjI3LjZD\nNzQyLjUgOTA4LjY2IDYzMC4zIDk1NC44NiA1MTEgOTU0Ljg2TDUxMSA5NTQuODYgNTExIDk1NC44\nNiA1MTEgOTU0Ljg2IDUxMSA5NTQuODZ6TTUxMS4xIDEyNS4yNmMtMTAzLjggMC0yMDEuMyA0MC4x\nLTI3NC42IDExMy03My40IDcyLjktMTEzLjggMTY5LjgtMTEzLjggMjcyLjkgMCAxMDMuMSA0MC40\nIDIwMC4xIDExMy43IDI3Mi45IDczLjMgNzIuOCAxNzAuOSAxMTMgMjc0LjYgMTEzIDEwMy44IDAg\nMjAxLjQtNDAuMiAyNzQuOC0xMTMuMSAxNTEuNC0xNTAuNCAxNTEuNC0zOTUuMyAwLTU0NS44Qzcx\nMi40IDE2NS4zNiA2MTQuOCAxMjUuMjYgNTExLjEgMTI1LjI2TDUxMS4xIDEyNS4yNiA1MTEuMSAx\nMjUuMjYgNTExLjEgMTI1LjI2IDUxMS4xIDEyNS4yNnpNMzUyLjQgNjMyLjI2YzAgMCA1Mi4zIDgz\nLjEgMTU4LjYgODMuMSAxMDYuMyAwIDE3Ni04My4xIDE3Ni04My4xczM5LjUtMC4xIDM5LjUgNDEu\nNWMwIDAtNjguNSA5Ny0yMTUuNSA5N3MtMTk0LjgtOTctMTk0LjgtOTdTMzE0LjcgNjMyLjI2IDM1\nMi40IDYzMi4yNkwzNTIuNCA2MzIuMjYgMzUyLjQgNjMyLjI2IDM1Mi40IDYzMi4yNnpNMzgxLjIg\nMzY4LjQ2Yy0zMC4xIDAtNTQuNyAyNC4zLTU0LjcgNTQuMyAwIDMwIDI0LjYgNTQuMyA1NC43IDU0\nLjMgMzAuMyAwIDU0LjctMjQuMyA1NC43LTU0LjNDNDM1LjkgMzkyLjc2IDQxMS41IDM2OC40NiAz\nODEuMiAzNjguNDZMMzgxLjIgMzY4LjQ2IDM4MS4yIDM2OC40NiAzODEuMiAzNjguNDYgMzgxLjIg\nMzY4LjQ2ek02NjEuNCAzNjguNDZjLTMwLjIgMC01NC43IDI0LjMtNTQuNyA1NC4zIDAgMzAgMjQu\nNSA1NC4zIDU0LjcgNTQuMyAzMC4yIDAgNTQuNy0yNC4zIDU0LjctNTQuM0M3MTYuMSAzOTIuNzYg\nNjkxLjcgMzY4LjQ2IDY2MS40IDM2OC40Nkw2NjEuNCAzNjguNDYgNjYxLjQgMzY4LjQ2IDY2MS40\nIDM2OC40NiA2NjEuNCAzNjguNDZ6XCIsXG4gICAgXCJwLWlkXCI6IFwiMjMwMFwiXG4gIH0sIG51\nbGwsIC0xKSk7XG4gIGNvbnN0IF9ob2lzdGVkXzgkNCA9IFtcbiAgICBfaG9pc3RlZF83JDRcbiAg\nXTtcbiAgY29uc3QgX2hvaXN0ZWRfMTUkMSA9IHsgY2xhc3M6IFwiZnVsbC10b29sYmFyLWJvdHRv\nbS1wYW5lbFwiIH07XG4gIGNvbnN0IF9ob2lzdGVkXzE2JDEgPSB7XG4gICAga2V5OiAwLFxuICAg\nIGNsYXNzOiBcImVtb2ppLXBhbmVsXCJcbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMTcgPSB7IGNs\nYXNzOiBcImVtb2ppLXBhbmVsLWh1YWppXCIgfTtcbiAgY29uc3QgX3NmY19tYWluJGIgPSBcLyog\nQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5lQ29tcG9uZW50KHtcbiAgICBfX25hbWU6IFwiRnVsbFRv\nb2xiYXJcIixcbiAgICBlbWl0czogW1widXBkYXRlQ29udGVudFN0YXRlXCIsIFwic2hvd1NtYWxs\nVG9vbGJhclwiXSxcbiAgICBzZXR1cChfX3Byb3BzLCB7IGV4cG9zZTogX19leHBvc2UsIGVtaXQ6\nIF9fZW1pdCB9KSB7XG4gICAgICB1c2VUb29sYmFyU3RvcmUoKTtcbiAgICAgIGNvbnN0IHRvb2xi\nYXJTdGF0ZVN0b3JlID0gdXNlVG9vbGJhclN0YXRlU3RvcmUoKTtcbiAgICAgIGNvbnN0IHRpcHRh\ncFN0b3JlID0gdXNlVGlwdGFwU3RvcmUoKTtcbiAgICAgIGNvbnN0IGVtaXRzID0gX19lbWl0O1xu\nICAgICAgY29uc3QgRWRpdG9yUmVmID0gdnVlLnJlZigpO1xuICAgICAgY29uc3QgQnRuQ29sb3Ig\nPSB2dWUucmVmKFwiIzc1NTdGRlwiKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRQYW5lbE1lbnUgPSB2\ndWUucmVmKHtcbiAgICAgICAgbmFtZTogXCJlbW9qaVwiLFxuICAgICAgICBzdGF0ZTogdHJ1ZVxu\nICAgICAgfSk7XG4gICAgICBjb25zdCBSZXBseVVzZXIgPSB2dWUucmVmKFwiXCIpO1xuICAgICAg\nY29uc3QgUmVwbHlVc2VyQ29udGVudCA9IHZ1ZS5yZWYoXCJcIik7XG4gICAgICBjb25zdCBpc0Vu\nbGFyZ2UgPSB2dWUucmVmKGZhbHNlKTtcbiAgICAgIGNvbnN0IHVwZGF0ZUNvbnRlbnRTdGF0ZSA9\nIChzdGF0ZSkgPT4ge1xuICAgICAgICBlbWl0cyhcInVwZGF0ZUNvbnRlbnRTdGF0ZVwiLCBzdGF0\nZSk7XG4gICAgICB9O1xuICAgICAgRW1vamlQYW5lbC5pbml0KCk7XG4gICAgICBjb25zdCBUb29s\nYmFySGFuZGxlciA9IHtcbiAgICAgICAgXC8qKiDlpITnkIblupXpg6hwYW5lbOaYvuekulwv6ZqQ\n6JePICpcL1xuICAgICAgICBoYW5kbGVCb3R0b21QYW5lbFZpc2libGUobWVudU5hbWUsIHN0YXRl\nID0gIWN1cnJlbnRQYW5lbE1lbnUudmFsdWUuc3RhdGUpIHtcbiAgICAgICAgICBjdXJyZW50UGFu\nZWxNZW51LnZhbHVlLnN0YXRlID0gc3RhdGU7XG4gICAgICAgICAgY3VycmVudFBhbmVsTWVudS52\nYWx1ZS5uYW1lID0gbWVudU5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIFwvKiog5pS+5aSn44CB\n57yp5bCP5oyJ6ZKu5Zu+5qCH55qE54K55Ye75LqL5Lu2ICpcL1xuICAgICAgICBoYW5kbGVFZGl0\nb3JIZWlnaHQoKSB7XG4gICAgICAgICAgaXNFbmxhcmdlLnZhbHVlID0gIWlzRW5sYXJnZS52YWx1\nZTtcbiAgICAgICAgfSxcbiAgICAgICAgXC8qKiDlt6XlhbfmoI8g6KGo5oOFID0+IOihqOaDheWb\nvueJhyDngrnlh7vkuovku7YgKlwvXG4gICAgICAgIGhhbmRsZUVtb2ppSW1hZ2VDbGljayhldmVu\ndCwgdXJsKSB7XG4gICAgICAgICAgaWYgKEVkaXRvclJlZi52YWx1ZSkge1xuICAgICAgICAgICAg\nRWRpdG9yUmVmLnZhbHVlLmluc2VydEltYWdlKHVybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9\nLFxuICAgICAgICBcLyoqIOW3peWFt+agjyDooajmg4Ug54K55Ye75LqL5Lu2ICpcL1xuICAgICAg\nICBoYW5kbGVFbW9qaUljb25DbGljayhldmVudCkge1xuICAgICAgICAgIFRvb2xiYXJIYW5kbGVy\nLmhhbmRsZUJvdHRvbVBhbmVsVmlzaWJsZShcImVtb2ppXCIpO1xuICAgICAgICB9LFxuICAgICAg\nICBcLyoqIOW3peWFt+agjyBAIOeCueWHu+S6i+S7tiAqXC9cbiAgICAgICAgaGFuZGxlQXRJY29u\nQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgICBUb29sYmFySGFuZGxlci5oYW5kbGVCb3R0b21QYW5l\nbFZpc2libGUoXCJhdFwiKTtcbiAgICAgICAgfSxcbiAgICAgICAgXC8qKiDlj5Hooagg54K55Ye7\n5LqL5Lu2ICpcL1xuICAgICAgICBoYW5kbGVQb3N0TXNnQ2xpY2tFdmVudChldmVudCkge1xuICAg\nICAgICAgIGxvZy5pbmZvKFwi54K55Ye75Y+R6KGo5oyJ6ZKuXCIpO1xuICAgICAgICAgIFRpZWJh\nUmVwbHkuJGRhdGEuaXNTZW5kaW5nLnZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICBUaWViYVJlcGx5\nLnNlbmRNc2coZXZlbnQpO1xuICAgICAgICB9LFxuICAgICAgICBcLyoqIOaMieS4iyDlj5Hooajm\njInpkq4gKlwvXG4gICAgICAgIHJlY29yZE9uU3VibWl0VG91Y2hTdGFydChldmVudCkge1xuICAg\nICAgICAgIGxldCBjb250ZW50SW5mbyA9IEVkaXRvclJlZi52YWx1ZS5nZXRSZXBseUNvbnRlbnRJ\nbmZvKCk7XG4gICAgICAgICAgVGllYmFSZXBseS5zZXRJbnB1dFZhbHVlKGNvbnRlbnRJbmZvLnRl\neHQpO1xuICAgICAgICAgIFRpZWJhUmVwbHkuc2VuZE1zZ0JlZm9yZShldmVudCk7XG4gICAgICAg\nIH0sXG4gICAgICAgIFwvKiog6YeN572u5Zue5aSN55qE55So5oi377yM5L2\/5b2T5YmN5Li65Zue\n5aSN5pys5biW5qW85Li7ICpcL1xuICAgICAgICByZXNldFJlcGx5VXNlcigpIHtcbiAgICAgICAg\nICBSZXBseVVzZXIudmFsdWUgPSBcIlwiO1xuICAgICAgICAgIFJlcGx5VXNlckNvbnRlbnQudmFs\ndWUgPSBcIlwiO1xuICAgICAgICAgIGlmIChUaWViYVJlcGx5LiRkYXRhLnR5cGUudmFsdWUgIT09\nIFwibWFpblwiKSB7XG4gICAgICAgICAgICBUaWViYVJlcGx5LiRkYXRhLnR5cGUudmFsdWUgPSBc\nIm1haW5cIjtcbiAgICAgICAgICAgIFRpZWJhUmVwbHkuc2V0Q3VycmVudFJlcGx5TWFpblVzZXIo\nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwvKiog6YeN572u57yW6L6R5Zmo\n77yM5LiA6Iis5piv5Y+R6KGo5ZCO6L+b6KGM5riF56m65pON5L2cICpcL1xuICAgICAgICByZXNl\ndFRvb2xiYXIoc2hvd1NtYWxsVG9vbGJhciA9IHRydWUpIHtcbiAgICAgICAgICBUb29sYmFySGFu\nZGxlci5yZXNldFJlcGx5VXNlcigpO1xuICAgICAgICAgIGlzRW5sYXJnZS52YWx1ZSA9IGZhbHNl\nO1xuICAgICAgICAgIEVkaXRvclJlZi52YWx1ZS5jbGVhckNvbnRlbnQoKTtcbiAgICAgICAgICB1\ncGRhdGVDb250ZW50U3RhdGUodHJ1ZSk7XG4gICAgICAgICAgaWYgKHNob3dTbWFsbFRvb2xiYXIp\nIHtcbiAgICAgICAgICAgIGVtaXRzKFwic2hvd1NtYWxsVG9vbGJhclwiKTtcbiAgICAgICAgICB9\nXG4gICAgICAgICAgVGllYmFSZXBseS4kZGF0YS5pc1NlbmRpbmcudmFsdWUgPSBmYWxzZTtcbiAg\nICAgICAgfVxuICAgICAgfTtcbiAgICAgIFRpZWJhUmVwbHkuJHZ1ZS5oYW5kbGVyQ29tbWVudFN1\nY2Nlc3MgPSAocGlkLCBjb250ZW50LCBubykgPT4ge1xuICAgICAgICBsb2cuc3VjY2VzcyhbXCLl\nm57lpI3miJDlip\/nmoTlm57osINcIiwge1xuICAgICAgICAgIG5vLFxuICAgICAgICAgIHBpZCxc\nbiAgICAgICAgICBjb250ZW50XG4gICAgICAgIH1dKTtcbiAgICAgICAgaWYgKG5vID09PSAwKSB7\nXG4gICAgICAgICAgaWYgKFRpZWJhUmVwbHkuJGRhdGEudHlwZS52YWx1ZSA9PT0gXCJsemwtY29t\nbWVudFwiKSA7XG4gICAgICAgICAgUW1zZy5zdWNjZXNzKFwi5Zue5aSN5oiQ5Yqf77yM6K+35Yi3\n5paw5p+l55yLflwiKTtcbiAgICAgICAgICBUb29sYmFySGFuZGxlci5yZXNldFRvb2xiYXIoKTtc\nbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBRbXNnLmVycm9yKFwi5Y+R6KGo5aSx6LSl77yM\n6K+35qOA5p+l572R57uc5ZCO6YeN6K+VXCIsIHtcbiAgICAgICAgICAgIHpJbmRleDogdXRpbHMu\nZ2V0TWF4WkluZGV4KCkgKyAxMFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xu\nICAgICAgdnVlLndhdGNoKFxuICAgICAgICAoKSA9PiB0b29sYmFyU3RhdGVTdG9yZS5pc1Nob3dG\ndWxsVG9vbGJhcixcbiAgICAgICAgKG5ld1ZhbHVlLCBvbGRWYWx1ZSkgPT4ge1xuICAgICAgICAg\nIGlmIChuZXdWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKFRpZWJhUmVwbHkuJGRhdGEudHlwZS52\nYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChUaWViYVJlcGx5LiRkYXRhLnR5cGUu\ndmFsdWUgPT09IFwiY29tbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgUmVwbHlVc2VyLnZhbHVl\nID0gYOWbnuWkjSDvvJoke1RpZWJhUmVwbHkuJGRhdGEucmVwbHlDb21tZW50RGF0YS52YWx1ZS5k\nYXRhLmF1dGhvck5hbWV9YDtcbiAgICAgICAgICAgICAgICBSZXBseVVzZXJDb250ZW50LnZhbHVl\nID0gVGllYmFSZXBseS4kZGF0YS5yZXBseUNvbW1lbnREYXRhLnZhbHVlLmRhdGEuY29udGVudDtc\nbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChUaWViYVJlcGx5LiRkYXRhLnR5cGUudmFsdWUgPT09\nIFwibHpsLWNvbW1lbnRcIikge1xuICAgICAgICAgICAgICAgIFJlcGx5VXNlci52YWx1ZSA9IGDl\nm57lpI0g77yaJHtUaWViYVJlcGx5LiRkYXRhLnJlcGx5THpsQ29tbWVudERhdGEudmFsdWUuZGF0\nYS5hdXRob3JOYW1lfWA7XG4gICAgICAgICAgICAgICAgUmVwbHlVc2VyQ29udGVudC52YWx1ZSA9\nIFRpZWJhUmVwbHkuJGRhdGEucmVwbHlMemxDb21tZW50RGF0YS52YWx1ZS5kYXRhLmNvbnRlbnQ7\nXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgUmVwbHlVc2VyLnZhbHVl\nID0gXCJcIjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0\nVGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHZhciBfYTM7XG4gICAgICAgICAgICAgIChf\nYTMgPSBFZGl0b3JSZWYudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuc2V0RWRpdG9yRm9j\ndXMoKTtcbiAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgIFRvb2xiYXJIYW5kbGVyLnJlc2V0UmVwbHlVc2VyKCk7XG4gICAgICAgICAgICBpc0VubGFy\nZ2UudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAg\nICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZVxuICAgICAgICB9\nXG4gICAgICApO1xuICAgICAgdnVlLndhdGNoKCgpID0+IHRpcHRhcFN0b3JlLmlzTG9hZGVkLCAo\nbmV3VmFsdWUpID0+IHtcbiAgICAgICAgdmFyIF9hMztcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJ0\naXB0YXDliqDovb3lrozmr5XvvIznm5HlkKzlhoXlrrnvvIFcIik7XG4gICAgICAgIChfYTMgPSBF\nZGl0b3JSZWYudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfYTMubGlzdGVuRWRpdG9yQ29udGVu\ndENoYW5nZUVtcHR5U3RhdGUodXBkYXRlQ29udGVudFN0YXRlKTtcbiAgICAgIH0sIHtcbiAgICAg\nICAgaW1tZWRpYXRlOiB0cnVlLFxuICAgICAgICBkZWVwOiB0cnVlXG4gICAgICB9KTtcbiAgICAg\nIF9fZXhwb3NlKHtcbiAgICAgICAgaGFuZGxlQm90dG9tUGFuZWxWaXNpYmxlOiBUb29sYmFySGFu\nZGxlci5oYW5kbGVCb3R0b21QYW5lbFZpc2libGUsXG4gICAgICAgIHJlc2V0UmVwbHlVc2VyOiBU\nb29sYmFySGFuZGxlci5yZXNldFJlcGx5VXNlclxuICAgICAgfSk7XG4gICAgICByZXR1cm4gKF9j\ndHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2ljb24gPSBFbElj\nb247XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfYnV0dG9uID0gRWxCdXR0b247XG4gICAg\nICAgIGNvbnN0IF9jb21wb25lbnRfZWxfY29sID0gRWxDb2w7XG4gICAgICAgIGNvbnN0IF9jb21w\nb25lbnRfZWxfcm93ID0gRWxSb3c7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfYXZhdGFy\nID0gRWxBdmF0YXI7XG4gICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVF\nbGVtZW50QmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgIGlkOiBcImZ1bGwtdG9vbGJhclwiLFxu\nICAgICAgICAgIFwiZGF0YS1zaG93LWJvdHRvbS1wYW5lbFwiOiBjdXJyZW50UGFuZWxNZW51LnZh\nbHVlLnN0YXRlLFxuICAgICAgICAgIFwiZGF0YS1zaG93LXJlcGx5LWNvbnRlbnRcIjogUmVwbHlV\nc2VyLnZhbHVlICE9PSBcIlwiXG4gICAgICAgIH0sIFtcbiAgICAgICAgICB2dWUud2l0aERpcmVj\ndGl2ZXModnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImZ1bGwtdG9v\nbGJhci10b3AtcmVwbHktdXNlclwiIH0sIHZ1ZS50b0Rpc3BsYXlTdHJpbmcoUmVwbHlVc2VyLnZh\nbHVlKSArIFwiIFwiICsgdnVlLnRvRGlzcGxheVN0cmluZyhSZXBseVVzZXJDb250ZW50LnZhbHVl\nKSwgNTEzKSwgW1xuICAgICAgICAgICAgW3Z1ZS52U2hvdywgUmVwbHlVc2VyLnZhbHVlICE9PSBc\nIlwiXVxuICAgICAgICAgIF0pLFxuICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJk\naXZcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZnVsbC10b29sYmFyLXRvcC1jb250YWluZXJc\nIixcbiAgICAgICAgICAgIFwiZGF0YS1mdWxsXCI6IGlzRW5sYXJnZS52YWx1ZVxuICAgICAgICAg\nIH0sIFtcbiAgICAgICAgICAgIGlzRW5sYXJnZS52YWx1ZSA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1\nZS5jcmVhdGVFbGVtZW50QmxvY2soXCJkaXZcIiwgX2hvaXN0ZWRfMyQ3LCBbXG4gICAgICAgICAg\nICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2ljb24sIHtcbiAgICAgICAgICAgICAg\nICBzaXplOiBcIjAuMThyZW1cIixcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiBUb29sYmFySGFu\nZGxlci5oYW5kbGVFZGl0b3JIZWlnaHRcbiAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAg\nICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVWTm9kZSh2dWUudW5yZWYoaWNvbnNWdWUuQ2xvc2UpKVxuICAgICAgICAgICAgICAgIF0p\nLFxuICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgfSwgOCwgW1wib25DbGlja1wi\nXSksXG4gICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2J1dHRvbiwg\ne1xuICAgICAgICAgICAgICAgIGNsYXNzOiBcImJ0bi1wdWJsaXNoXCIsXG4gICAgICAgICAgICAg\nICAgY29sb3I6IEJ0bkNvbG9yLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNpemU6IFwic21hbGxc\nIixcbiAgICAgICAgICAgICAgICByb3VuZDogXCJcIixcbiAgICAgICAgICAgICAgICBvblRvdWNo\nc3RhcnQ6IFRvb2xiYXJIYW5kbGVyLnJlY29yZE9uU3VibWl0VG91Y2hTdGFydCxcbiAgICAgICAg\nICAgICAgICBvblRvdWNoZW5kOiBUb29sYmFySGFuZGxlci5oYW5kbGVQb3N0TXNnQ2xpY2tFdmVu\ndCxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdnVlLnVucmVmKHRvb2xiYXJTdGF0ZVN0b3Jl\nKS5pc0VtcHR5XG4gICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB2\ndWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVGV4dFZOb2Rl\nKFwi5Y+R6KGoXCIpXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgXzogMVxu\nICAgICAgICAgICAgICB9LCA4LCBbXCJjb2xvclwiLCBcIm9uVG91Y2hzdGFydFwiLCBcIm9uVG91\nY2hlbmRcIiwgXCJkaXNhYmxlZFwiXSlcbiAgICAgICAgICAgIF0pKSA6IHZ1ZS5jcmVhdGVDb21t\nZW50Vk5vZGUoXCJcIiwgdHJ1ZSksXG4gICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2Rl\nKFwiZGl2XCIsIF9ob2lzdGVkXzQkNywgW1xuICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUo\nVGlwdGFwLCB7XG4gICAgICAgICAgICAgICAgcmVmX2tleTogXCJFZGl0b3JSZWZcIixcbiAgICAg\nICAgICAgICAgICByZWY6IEVkaXRvclJlZlxuICAgICAgICAgICAgICB9LCBudWxsLCA1MTIpXG4g\nICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZc\nIiwgX2hvaXN0ZWRfNSQ3LCBbXG4gICAgICAgICAgICAgICFpc0VubGFyZ2UudmFsdWUgPyAodnVl\nLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2soX2NvbXBvbmVudF9lbF9pY29uLCB7XG4gICAg\nICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAgICAgICAgIGNsYXNzOiBcImJ0bi1lbmxhcmdl\nXCIsXG4gICAgICAgICAgICAgICAgb25DbGljazogVG9vbGJhckhhbmRsZXIuaGFuZGxlRWRpdG9y\nSGVpZ2h0XG4gICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUu\nd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVu\ncmVmKGljb25zVnVlLkFycm93VXApKVxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAg\nICAgIF86IDFcbiAgICAgICAgICAgICAgfSwgOCwgW1wib25DbGlja1wiXSkpIDogdnVlLmNyZWF0\nZUNvbW1lbnRWTm9kZShcIlwiLCB0cnVlKSxcbiAgICAgICAgICAgICAgaXNFbmxhcmdlLnZhbHVl\nID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfaWNvbiwg\ne1xuICAgICAgICAgICAgICAgIGtleTogMSxcbiAgICAgICAgICAgICAgICBjbGFzczogXCJidG4t\nbmFycm93XCIsXG4gICAgICAgICAgICAgICAgb25DbGljazogVG9vbGJhckhhbmRsZXIuaGFuZGxl\nRWRpdG9ySGVpZ2h0XG4gICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0\nOiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUo\ndnVlLnVucmVmKGljb25zVnVlLkFycm93RG93bikpXG4gICAgICAgICAgICAgICAgXSksXG4gICAg\nICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICB9LCA4LCBbXCJvbkNsaWNrXCJdKSkgOiB2\ndWUuY3JlYXRlQ29tbWVudFZOb2RlKFwiXCIsIHRydWUpLFxuICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9idXR0b24sIHtcbiAgICAgICAgICAgICAgICBjbGFzczog\nXCJidG4tcHVibGlzaFwiLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBCdG5Db2xvci52YWx1ZSxc\nbiAgICAgICAgICAgICAgICBzaXplOiBcInNtYWxsXCIsXG4gICAgICAgICAgICAgICAgcm91bmQ6\nIFwiXCIsXG4gICAgICAgICAgICAgICAgb25Ub3VjaHN0YXJ0OiBUb29sYmFySGFuZGxlci5yZWNv\ncmRPblN1Ym1pdFRvdWNoU3RhcnQsXG4gICAgICAgICAgICAgICAgb25Ub3VjaGVuZDogVG9vbGJh\nckhhbmRsZXIuaGFuZGxlUG9zdE1zZ0NsaWNrRXZlbnQsXG4gICAgICAgICAgICAgICAgZGlzYWJs\nZWQ6IHZ1ZS51bnJlZih0b29sYmFyU3RhdGVTdG9yZSkuaXNFbXB0eVxuICAgICAgICAgICAgICB9\nLCB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIuWPkeihqFwiKVxuICAgICAgICAgICAg\nICAgIF0pLFxuICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgfSwgOCwgW1wiY29s\nb3JcIiwgXCJvblRvdWNoc3RhcnRcIiwgXCJvblRvdWNoZW5kXCIsIFwiZGlzYWJsZWRcIl0pXG4g\nICAgICAgICAgICBdKVxuICAgICAgICAgIF0sIDgsIF9ob2lzdGVkXzIkOCksXG4gICAgICAgICAg\ndnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfcm93LCB7XG4gICAgICAgICAgICBjbGFzczog\nXCJmdWxsLXRvb2xiYXItYm90dG9tLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAganVzdGlmeTog\nXCJzcGFjZS1ldmVubHlcIlxuICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZ1\nZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25l\nbnRfZWxfY29sLCB7IHNwYW46IDggfSwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53\naXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUo\nXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJmdWxsLXRvb2xiYXItZW1v\namktYnRuXCIsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IF9jYWNoZVswXSB8fCAoX2Nh\nY2hlWzBdID0gXC9cL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgKC4uLmFyZ3MpID0+\nIFRvb2xiYXJIYW5kbGVyLmhhbmRsZUVtb2ppSWNvbkNsaWNrICYmIFRvb2xiYXJIYW5kbGVyLmhh\nbmRsZUVtb2ppSWNvbkNsaWNrKC4uLmFyZ3MpKVxuICAgICAgICAgICAgICAgICAgfSwgW1xuICAg\nICAgICAgICAgICAgICAgICAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2Nr\nKFwic3ZnXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsOiBjdXJyZW50UGFuZWxNZW51\nLnZhbHVlLnN0YXRlICYmIGN1cnJlbnRQYW5lbE1lbnUudmFsdWUubmFtZSA9PT0gXCJlbW9qaVwi\nID8gQnRuQ29sb3IudmFsdWUgOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBc\nImljb25cIixcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94OiBcIjAgMCAxMDI0IDEwMjRc\nIixcbiAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiBcIjEuMVwiLFxuICAgICAgICAgICAg\nICAgICAgICAgIHhtbG5zOiBcImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiLFxuICAg\nICAgICAgICAgICAgICAgICAgIFwicC1pZFwiOiBcIjIyOTlcIixcbiAgICAgICAgICAgICAgICAg\nICAgICB3aWR0aDogXCIyMFwiLFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIyMFwi\nXG4gICAgICAgICAgICAgICAgICAgIH0sIF9ob2lzdGVkXzgkNCwgOCwgX2hvaXN0ZWRfNiQ2KSlc\nbiAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZUNvbW1l\nbnRWTm9kZShcIlwiLCB0cnVlKVxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBfOiAxXG4g\nICAgICAgICAgfSksXG4gICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBf\naG9pc3RlZF8xNSQxLCBbXG4gICAgICAgICAgICBjdXJyZW50UGFuZWxNZW51LnZhbHVlLnN0YXRl\nICYmIGN1cnJlbnRQYW5lbE1lbnUudmFsdWUubmFtZSA9PT0gXCJlbW9qaVwiID8gKHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCBfaG9pc3RlZF8xNiQxLCBb\nXG4gICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRf\nMTcsIFtcbiAgICAgICAgICAgICAgICAodnVlLm9wZW5CbG9jayh0cnVlKSwgdnVlLmNyZWF0ZUVs\nZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQsIG51bGwsIHZ1ZS5yZW5kZXJMaXN0KHZ1ZS51bnJlZihF\nbW9qaVBhbmVsKS5nZXRJbWFnZUxpc3QoKSwgKHVybCkgPT4ge1xuICAgICAgICAgICAgICAgICAg\ncmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfYXZh\ndGFyLCB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6ICgkZXZlbnQpID0+IFRvb2xiYXJI\nYW5kbGVyLmhhbmRsZUVtb2ppSW1hZ2VDbGljaygkZXZlbnQsIHVybCksXG4gICAgICAgICAgICAg\nICAgICAgIHN0eWxlOiB7IFwiYmFja2dyb3VuZFwiOiBcInRyYW5zcGFyZW50XCIgfSxcbiAgICAg\nICAgICAgICAgICAgICAgc2hhcGU6IFwic3F1YXJlXCIsXG4gICAgICAgICAgICAgICAgICAgIHNp\nemU6IDM1LFxuICAgICAgICAgICAgICAgICAgICBmaXQ6IFwiZmlsbFwiLFxuICAgICAgICAgICAg\nICAgICAgICBzcmM6IHVybFxuICAgICAgICAgICAgICAgICAgfSwgbnVsbCwgOCwgW1wib25DbGlj\na1wiLCBcInNyY1wiXSk7XG4gICAgICAgICAgICAgICAgfSksIDI1NikpXG4gICAgICAgICAgICAg\nIF0pXG4gICAgICAgICAgICBdKSkgOiB2dWUuY3JlYXRlQ29tbWVudFZOb2RlKFwiXCIsIHRydWUp\nXG4gICAgICAgICAgXSlcbiAgICAgICAgXSwgOCwgX2hvaXN0ZWRfMSQ5KTtcbiAgICAgIH07XG4g\nICAgfVxuICB9KTtcbiAgY29uc3QgRnVsbFRvb2xiYXIgPSBcLyogQF9fUFVSRV9fICpcLyBfZXhw\nb3J0X3NmYyQxKF9zZmNfbWFpbiRiLCBbW1wiX19zY29wZUlkXCIsIFwiZGF0YS12LTc1ZGVjYzRh\nXCJdXSk7XG4gIGNvbnN0IHVzZVBsYWNlSG9sZGVyID0gcGluaWEkMS5kZWZpbmVTdG9yZSh7XG4g\nICAgaWQ6IFwicGxhY2Vob2xkZXJcIixcbiAgICBzdGF0ZTogKCkgPT4gKHtcbiAgICAgIFwvKipc\nbiAgICAgICAqIOWGheWuueS4uuepuuaXtueahHBsYWNlaG9sZGVyXG4gICAgICAgKlwvXG4gICAg\nICBlbXB0eTogXCLlj5HluJbljYPnmb7luqYg5paH5piO56ys5LiA5q2lXCIsXG4gICAgICBcLyoq\nXG4gICAgICAgKiDlrZjlnKjlhoXlrrnml7bnmoRwbGFjZWhvbGRlclxuICAgICAgICpcL1xuICAg\nICAgaGFzQ29udGVudDogXCJb6I2J56i\/5b6F5Y+R6YCBXVwiXG4gICAgfSlcbiAgfSk7XG4gIGNv\nbnN0IF9zZmNfbWFpbiRhID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBvbmVudCh7\nXG4gICAgX19uYW1lOiBcIkFwcFwiLFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIGNvbnN0\nIGFjY291bnRTdG9yZSA9IHVzZUFjY291bnRTdG9yZSgpO1xuICAgICAgY29uc3QgdG9vbGJhclN0\nb3JlID0gdXNlVG9vbGJhclN0b3JlKCk7XG4gICAgICBjb25zdCB0b29sYmFyU3RhdGVTdG9yZSA9\nIHVzZVRvb2xiYXJTdGF0ZVN0b3JlKCk7XG4gICAgICBjb25zdCBwbGFjZUhvbGRlclN0b3JlID0g\ndXNlUGxhY2VIb2xkZXIoKTtcbiAgICAgIGNvbnN0IEZ1bGxUb29sYmFyUmVmID0gdnVlLnJlZigp\nO1xuICAgICAgY29uc3QgJHZpdGVBcHAgPSB2dWUuc2hhbGxvd1JlZigpO1xuICAgICAgY29uc3Qg\nRWxlbWVudENoZWNrSW4gPSB7XG4gICAgICAgIFwvKipcbiAgICAgICAgICog5Yik5pat6K+l5YWD\n57Sg5piv5ZCm5piv5Zyo5bCP5bel5YW35qCP5LitXG4gICAgICAgICAqIEBwYXJhbSAkZWxlIFxu\nICAgICAgICAgKlwvXG4gICAgICAgIGlzQ29udGFpbnNJblNtYWxsVG9vbGJhcigkZWxlKSB7XG4g\nICAgICAgICAgaWYgKCRlbGUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xu\nICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgJHNtYWxsVG9vbGJhciA9IGRvY3VtZW50LnF1ZXJ5\nU2VsZWN0b3IoXCIjc21hbGwtdG9vbGJhclwiKTtcbiAgICAgICAgICBpZiAoJHNtYWxsVG9vbGJh\nciAmJiAkc21hbGxUb29sYmFyLmNvbnRhaW5zKCRlbGUpKSB7XG4gICAgICAgICAgICByZXR1cm4g\ndHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9LFxu\nICAgICAgICBcLyoqXG4gICAgICAgICAqIOWIpOaWreivpeWFg+e0oOaYr+WQpuaYr+WcqHZ1Zeag\nueWFg+e0oOWGhVxuICAgICAgICAgKiBAcGFyYW0gJGVsZSBcbiAgICAgICAgICpcL1xuICAgICAg\nICBpc0NvbnRhaW5zSW5Sb290QXBwKCRlbGUpIHtcbiAgICAgICAgICB2YXIgX2EzO1xuICAgICAg\nICAgIGlmICgkZWxlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAg\nICAgICB9XG4gICAgICAgICAgcmV0dXJuIEJvb2xlYW4oKF9hMyA9ICR2aXRlQXBwLnZhbHVlKSA9\nPSBudWxsID8gdm9pZCAwIDogX2EzLmNvbnRhaW5zKCRlbGUpKTtcbiAgICAgICAgfVxuICAgICAg\nfTtcbiAgICAgIGNvbnN0IEdsb2JhbEV2ZW50ID0ge1xuICAgICAgICBcLyoqXG4gICAgICAgICAq\nIOiuvue9ruWFqOWxgOeCueWHu+S6i+S7tu+8jOeCueWHu+WFtuWug+WcsOaWue+8jOmakOiXj+W3\npeWFt+agj1xuICAgICAgICAgKlwvXG4gICAgICAgIHNldEdsb2JhbFRvdWNoQ2xpY2tDaGVjaygp\nIHtcbiAgICAgICAgICBkb211dGlscy5vbihkb2N1bWVudCwgXCJ0b3VjaHN0YXJ0XCIsIGZ1bmN0\naW9uKGV2ZW50KSB7XG4gICAgICAgICAgICBsZXQgJGNsaWNrID0gZXZlbnQudGFyZ2V0O1xuICAg\nICAgICAgICAgaWYgKEVsZW1lbnRDaGVja0luLmlzQ29udGFpbnNJblNtYWxsVG9vbGJhcigkY2xp\nY2spKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIGlmIChFbGVtZW50Q2hlY2tJbi5pc0NvbnRhaW5zSW5Sb290QXBwKCRjbGljaykpIHtcbiAgICAg\nICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTWFpbjIuc2hvd1Nt\nYWxsVG9vbGJhcigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAg\nY29uc3QgTWFpbjIgPSB7XG4gICAgICAgIFwvKipcbiAgICAgICAgICog5Yid5aeL5YyWXG4gICAg\nICAgICAqXC9cbiAgICAgICAgaW5pdCgpIHtcbiAgICAgICAgICBHbG9iYWxFdmVudC5zZXRHbG9i\nYWxUb3VjaENsaWNrQ2hlY2soKTtcbiAgICAgICAgICB2dWUub25Nb3VudGVkKCgpID0+IHtcbiAg\nICAgICAgICAgICR2aXRlQXBwLnZhbHVlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiN2aXRl\nLWFwcFwiKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgXC8qKlxuICAgICAg\nICAgKiDmmL7npLrlrozmlbTnmoTlt6XlhbfmoI\/vvIzlubbpmpDol4\/lsI\/nmoTlt6XlhbfmoI9c\nbiAgICAgICAgICogQHBhcmFtIGlzU2hvd0Vtb2ppIOaYr+WQpuaYvuekumVtb2pp57uE5Lu277yM\n6buY6K6kZmFsc2VcbiAgICAgICAgICpcL1xuICAgICAgICBzaG93RnVsbFRvb2xiYXIoaXNTaG93\nRW1vamkgPSBmYWxzZSkge1xuICAgICAgICAgIGlmICghYWNjb3VudFN0b3JlLmlzTG9naW4pIHtc\nbiAgICAgICAgICAgIFRpZWJhUmVwbHkuY2hlY2tMb2dpbigpO1xuICAgICAgICAgICAgcmV0dXJu\nO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0b29sYmFyU3RhdGVTdG9yZS5pc1Nob3dTbWFsbFRv\nb2xiYXIgPSBmYWxzZTtcbiAgICAgICAgICB0b29sYmFyU3RhdGVTdG9yZS5pc1Nob3dGdWxsVG9v\nbGJhciA9IHRydWU7XG4gICAgICAgICAgaWYgKGlzU2hvd0Vtb2ppKSB7XG4gICAgICAgICAgICBG\ndWxsVG9vbGJhclJlZi52YWx1ZS5oYW5kbGVCb3R0b21QYW5lbFZpc2libGUoXCJlbW9qaVwiLCB0\ncnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwvKipcbiAgICAgICAgICog\n5pi+56S66ZqQ6JeP5bCP55qE5bel5YW35qCP77yM5bm25a6M5pW055qE5bel5YW35qCPXG4gICAg\nICAgICAqXC9cbiAgICAgICAgc2hvd1NtYWxsVG9vbGJhcigpIHtcbiAgICAgICAgICB0b29sYmFy\nU3RhdGVTdG9yZS5pc1Nob3dGdWxsVG9vbGJhciA9IGZhbHNlO1xuICAgICAgICAgIHRvb2xiYXJT\ndGF0ZVN0b3JlLmlzU2hvd1NtYWxsVG9vbGJhciA9IHRydWU7XG4gICAgICAgICAgVGllYmFSZXBs\neS4kZGF0YS5pc1Nob3dGdWxsRWRpdG9yLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAg\nICAgIFwvKipcbiAgICAgICAgICog5pu05paw57yW6L6R5Zmo54q25oCBXG4gICAgICAgICAqIEBw\nYXJhbSBzdGF0ZSDmm7TmlrDnvJbovpHlmajnirbmgIHvvIzliKTmlq3mmK\/lkKbovpPlhaXmoYbk\nuLrnqbpcbiAgICAgICAgICpcL1xuICAgICAgICB1cGRhdGVDb250ZW50U3RhdGUoc3RhdGUpIHtc\nbiAgICAgICAgICB0b29sYmFyU3RhdGVTdG9yZS5pc0VtcHR5ID0gc3RhdGU7XG4gICAgICAgIH1c\nbiAgICAgIH07XG4gICAgICBNYWluMi5pbml0KCk7XG4gICAgICB2dWUud2F0Y2goXG4gICAgICAg\nICgpID0+IFRpZWJhQ29tbWVudC5yZXBseV9udW0sXG4gICAgICAgIChuZXdWYWx1ZSkgPT4ge1xu\nICAgICAgICAgIGxvZy5zdWNjZXNzKFtcInVwZGF0ZSByZXBseV9udW1cIiwgbmV3VmFsdWUudmFs\ndWVdKTtcbiAgICAgICAgICB0b29sYmFyU3RvcmUuc2hvd0NvbW1lbnRDb3VudCA9IG5ld1ZhbHVl\nLnZhbHVlID4gOTk5ID8gXCI5OTkrXCIgOiBuZXdWYWx1ZS52YWx1ZS50b1N0cmluZygpO1xuICAg\nICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGVlcDogdHJ1ZSxcbiAgICAgICAgICBpbW1l\nZGlhdGU6IHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHZ1ZS53YXRjaChcbiAgICAg\nICAgKCkgPT4gVGllYmFDb21tZW50LmFncmVlX251bSxcbiAgICAgICAgKG5ld1ZhbHVlKSA9PiB7\nXG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoW1widXBkYXRlIGFncmVlX251bVwiLCBuZXdWYWx1ZS52\nYWx1ZV0pO1xuICAgICAgICAgIHRvb2xiYXJTdG9yZS5zaG93R29vZENvdW50ID0gbmV3VmFsdWUu\ndmFsdWUgPiA5OTkgPyBcIjk5OStcIiA6IG5ld1ZhbHVlLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAg\nICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICAgIGltbWVk\naWF0ZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdnVlLndhdGNoKFxuICAgICAg\nICAoKSA9PiB0b29sYmFyU3RhdGVTdG9yZS5pc0VtcHR5LFxuICAgICAgICAobmV3VmFsdWUpID0+\nIHtcbiAgICAgICAgICBpZiAobmV3VmFsdWUpIHtcbiAgICAgICAgICAgIHRvb2xiYXJTdG9yZS5w\nbGFjZWhvbGRlciA9IHBsYWNlSG9sZGVyU3RvcmUuZW1wdHk7XG4gICAgICAgICAgfSBlbHNlIHtc\nbiAgICAgICAgICAgIHRvb2xiYXJTdG9yZS5wbGFjZWhvbGRlciA9IHBsYWNlSG9sZGVyU3RvcmUu\naGFzQ29udGVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB2dWUu\nd2F0Y2goXG4gICAgICAgICgpID0+IFRpZWJhUmVwbHkuJGRhdGEuaXNTaG93RnVsbEVkaXRvci52\nYWx1ZSxcbiAgICAgICAgKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKG5ld1ZhbHVlKSB7\nXG4gICAgICAgICAgICBNYWluMi5zaG93RnVsbFRvb2xiYXIoKTtcbiAgICAgICAgICB9XG4gICAg\nICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICAgIGltbWVk\naWF0ZTogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdnVlLndhdGNoKCgpID0+IFRp\nZWJhUmVwbHkuJGRhdGEuaXNMb2dpbi52YWx1ZSwgKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGFj\nY291bnRTdG9yZS5pc0xvZ2luID0gbmV3VmFsdWU7XG4gICAgICB9LCB7XG4gICAgICAgIGltbWVk\naWF0ZTogdHJ1ZSxcbiAgICAgICAgZGVlcDogdHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4g\nKF9jdHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUu\nY3JlYXRlRWxlbWVudEJsb2NrKHZ1ZS5GcmFnbWVudCwgbnVsbCwgW1xuICAgICAgICAgIHZ1ZS53\naXRoRGlyZWN0aXZlcyh2dWUuY3JlYXRlVk5vZGUoU21hbGxUb29sYmFyLCB7XG4gICAgICAgICAg\nICBvblNob3dGdWxsVG9vbGJhcjogTWFpbjIuc2hvd0Z1bGxUb29sYmFyXG4gICAgICAgICAgfSwg\nbnVsbCwgOCwgW1wib25TaG93RnVsbFRvb2xiYXJcIl0pLCBbXG4gICAgICAgICAgICBbdnVlLnZT\naG93LCB2dWUudW5yZWYodG9vbGJhclN0YXRlU3RvcmUpLmlzU2hvd1NtYWxsVG9vbGJhcl1cbiAg\nICAgICAgICBdKSxcbiAgICAgICAgICB2dWUud2l0aERpcmVjdGl2ZXModnVlLmNyZWF0ZVZOb2Rl\nKEZ1bGxUb29sYmFyLCB7XG4gICAgICAgICAgICBvblNob3dTbWFsbFRvb2xiYXI6IE1haW4yLnNo\nb3dTbWFsbFRvb2xiYXIsXG4gICAgICAgICAgICBvblVwZGF0ZUNvbnRlbnRTdGF0ZTogTWFpbjIu\ndXBkYXRlQ29udGVudFN0YXRlLFxuICAgICAgICAgICAgcmVmX2tleTogXCJGdWxsVG9vbGJhclJl\nZlwiLFxuICAgICAgICAgICAgcmVmOiBGdWxsVG9vbGJhclJlZlxuICAgICAgICAgIH0sIG51bGws\nIDgsIFtcIm9uU2hvd1NtYWxsVG9vbGJhclwiLCBcIm9uVXBkYXRlQ29udGVudFN0YXRlXCJdKSwg\nW1xuICAgICAgICAgICAgW3Z1ZS52U2hvdywgdnVlLnVucmVmKHRvb2xiYXJTdGF0ZVN0b3JlKS5p\nc1Nob3dGdWxsVG9vbGJhcl1cbiAgICAgICAgICBdKVxuICAgICAgICBdLCA2NCk7XG4gICAgICB9\nO1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHBpbmlhID0gcGluaWEkMS5jcmVhdGVQaW5pYSgpO1xu\nICBjb25zdCBUaWViYVBvc3QgPSB7XG4gICAgJGRhdGE6IHtcbiAgICAgIGFwcE5hbWU6IFwidml0\nZS1hcHBcIlxuICAgIH0sXG4gICAgbWFpblBvc3RJbWdMaXN0OiBbXSxcbiAgICBpbml0KCkge1xu\nICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfdGllYmFfcmVwYWlyRXJyb3JUaHJlYWRc\nIiwgKCkgPT4ge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIuW8uuWItuafpeeciy3luJblrZDkuI3l\nrZjlnKh85biW5a2Q5bey6KKr5Yig6ZmkfOivpeW4luWtkOmcgOimgeWOu2FwcOWGheafpeeci+WT\nplwiKTtcbiAgICAgICAgdGhpcy5yZXBhaXJFcnJvclRocmVhZCgpO1xuICAgICAgfSk7XG4gICAg\nICBQb3BzUGFuZWwuZXhlY01lbnUoXCJiYWlkdV90aWViYV9vcHRpbWl6ZV9pbWFnZV9wcmV2aWV3\nXCIsICgpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLkvJjljJblm77niYfpooTop4hcIik7\nXG4gICAgICAgIHRoaXMub3B0aW1pemVJbWFnZVByZXZpZXcoKTtcbiAgICAgIH0pO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3RpZWJhX2x6bF9iYW5fZ2xvYmFsX2JhY2tc\nIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLm92ZXJyaWRlVnVlUm91dGVyTWF0Y2goKTtcbiAgICAg\nIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHUtdGllYmEtYmxvY2tDb21tZW50\nSW5wdXRcIiwgKCkgPT4ge1xuICAgICAgICBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiLmNvbW1l\nbnQtYm94LXdyYXBcIik7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcImJh\naWR1X3RpZWJhX29wdGltaXplX3NlZV9jb21tZW50c1wiLCAoKSA9PiB7XG4gICAgICAgIGxvZy5z\ndWNjZXNzKFwi5LyY5YyW5p+l55yL6K+E6K66XCIpO1xuICAgICAgICBUaWViYUNvbW1lbnQuaW5p\ndCgpO1xuICAgICAgICBpZiAoIVBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1LXRpZWJhLWJsb2Nr\nQ29tbWVudElucHV0XCIpKSB7XG4gICAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJh\naWR1X3RpZWJhX29wdGltaXplX2NvbW1lbnRzX3Rvb2xiYXJcIikpIHtcbiAgICAgICAgICAgIENv\nbW1vblV0aWwuYWRkQmxvY2tDU1MoXCIuY29tbWVudC1ib3gtd3JhcFwiKTtcbiAgICAgICAgICAg\nIFRpZWJhUmVwbHkud2FpdENvbW1lbnRCb3hXcmFwKCgpID0+IHtcbiAgICAgICAgICAgICAgTW91\nbnRWdWUoX3NmY19tYWluJGEsIFtwaW5pYV0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAg\nfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIFRpZWJhUmVwbHkuaW5pdCgpO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOazqOWGjOWFqOWxgOi0tOWQp+WbvueJh+eCueWHu+mihOiniCjl\nj6rpooTop4jpgJrov4fotLTlkKfkuIrkvKDnmoTlm77niYfvvIzpnZ7lhbblroPlm77luorlm77n\niYcpXG4gICAgICpcL1xuICAgIG9wdGltaXplSW1hZ2VQcmV2aWV3KCkge1xuICAgICAgbG9nLnN1\nY2Nlc3MoXCLkvJjljJblm77niYfpooTop4hcIik7XG4gICAgICBDb21tb25VdGlsLnNldEdNUmVz\nb3VyY2VDU1MoR01fUkVTT1VSQ0VfTUFQUElORy5WaWV3ZXIpO1xuICAgICAgbGV0IGdlc3R1cmVi\nYWNrID0gbnVsbDtcbiAgICAgIGlmIChQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdV90aWViYV9v\ncHRpbWl6ZV9pbWFnZV9wcmV2aWV3XCIpKSB7XG4gICAgICAgIGdlc3R1cmViYWNrID0gbmV3IEdl\nc3R1cmVCYWNrKHtcbiAgICAgICAgICBoYXNoOiBHZWFzdHVyZUJhY2tIYXNoQ29uZmlnLnZpZXdl\nclByZXZpZXdJbWFnZSxcbiAgICAgICAgICB1c2VVcmw6IHRydWUsXG4gICAgICAgICAgYmVmb3Jl\nSGlzdG9yeUJhY2tDYWxsQmFjayhpc1VybENoYW5nZSkge1xuICAgICAgICAgICAgaWYgKGlzVXJs\nQ2hhbmdlKSB7XG4gICAgICAgICAgICAgIGxldCAkdmlld2VyQ2xvc2UgPSBkb2N1bWVudC5xdWVy\neVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgIFwiLnZpZXdlci1idXR0b24udmlld2VyLWNsb3Nl\nXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKCR2aWV3ZXJDbG9zZSkge1xu\nICAgICAgICAgICAgICAgICR2aWV3ZXJDbG9zZS5jbGljaygpO1xuICAgICAgICAgICAgICB9IGVs\nc2Uge1xuICAgICAgICAgICAgICAgIFFtc2cuZXJyb3IoYOacquaJvuWIsOWFs+mXrVZpZXdlcuea\nhOaMiemSrmApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxu\nICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHZpZXdJTUcoaW1nTGlzdCA9IFtd\nLCBpbWdJbmRleCA9IDApIHtcbiAgICAgICAgbG9nLmluZm8oW1wi5b2T5YmN5p+l55yL5Zu+54mH\n55qE57Si5byV5LiL5qCH77yaXCIgKyBpbWdJbmRleF0pO1xuICAgICAgICBsb2cuaW5mbyhbXCLl\nvZPliY3mn6XnnIvlm77niYfnmoTliJfooajkv6Hmga\/vvJpcIiwgaW1nTGlzdF0pO1xuICAgICAg\nICBsZXQgdmlld2VyVUxOb2RlSFRNTCA9IFwiXCI7XG4gICAgICAgIGltZ0xpc3QuZm9yRWFjaCgo\naXRlbSkgPT4ge1xuICAgICAgICAgIHZpZXdlclVMTm9kZUhUTUwgKz0gYDxsaT48aW1nIGRhdGEt\nc3JjPVwiJHtpdGVtfVwiIGxvYWRpbmc9XCJsYXp5XCI+PFwvbGk+YDtcbiAgICAgICAgfSk7XG4g\nICAgICAgIGxldCB2aWV3ZXJVTE5vZGUgPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFwidWxcIiwg\ne1xuICAgICAgICAgIGlubmVySFRNTDogdmlld2VyVUxOb2RlSFRNTFxuICAgICAgICB9KTtcbiAg\nICAgICAgbGV0IHZpZXdlciA9IG5ldyBWaWV3ZXIodmlld2VyVUxOb2RlLCB7XG4gICAgICAgICAg\naW5saW5lOiBmYWxzZSxcbiAgICAgICAgICB1cmw6IFwiZGF0YS1zcmNcIixcbiAgICAgICAgICB6\nSW5kZXg6IHV0aWxzLmdldE1heFpJbmRleCgpICsgMTAwLFxuICAgICAgICAgIGhpZGRlbjogKCkg\nPT4ge1xuICAgICAgICAgICAgdmlld2VyLmRlc3Ryb3koKTtcbiAgICAgICAgICB9LFxuICAgICAg\nICAgIGhpZGUoZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChnZXN0dXJlYmFjaykge1xuICAgICAg\nICAgICAgICBnZXN0dXJlYmFjay5xdWl0R2VzdHVyZUJhY2tNb2RlKCk7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGltZ0luZGV4IDwgMCkge1xu\nICAgICAgICAgIGltZ0luZGV4ID0gMDtcbiAgICAgICAgICBsb2cud2FybihcImltZ0luZGV45bCP\n5LqOMO+8jOmHjee9ruS4ujBcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoaW1nSW5kZXggPiBpbWdM\naXN0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICBpbWdJbmRleCA9IGltZ0xpc3QubGVuZ3RoIC0g\nMTtcbiAgICAgICAgICBsb2cud2FybihcImltZ0luZGV45aSn5LqOaW1nTGlzdOacgOWkp+S4i+ag\nh++8jOmHjee9ruS4umltZ0xpc3TmnIDlpKfkuIvmoIdcIik7XG4gICAgICAgIH1cbiAgICAgICAg\ndmlld2VyLnZpZXcoaW1nSW5kZXgpO1xuICAgICAgICB2aWV3ZXIuem9vbVRvKDEpO1xuICAgICAg\nICB2aWV3ZXIuc2hvdygpO1xuICAgICAgICBsb2cuc3VjY2VzcyhcIumihOiniOWbvueJh1wiKTtc\nbiAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImJhaWR1X3RpZWJhX29wdGltaXplX2lt\nYWdlX3ByZXZpZXdcIikpIHtcbiAgICAgICAgICBnZXN0dXJlYmFjayA9PSBudWxsID8gdm9pZCAw\nIDogZ2VzdHVyZWJhY2suZW50ZXJHZXN0dXJlQmFja01vZGUoKTtcbiAgICAgICAgfVxuICAgICAg\nfVxuICAgICAgZnVuY3Rpb24gZ2V0SW1hZ2VTcmMoJGltZykge1xuICAgICAgICBsZXQgaW1nVXJs\nID0gJGltZy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNyY1wiKSB8fCAkaW1nLmdldEF0dHJpYnV0ZShc\nInNyY1wiKSB8fCAkaW1nLnNyYztcbiAgICAgICAgcmV0dXJuIGltZ1VybDtcbiAgICAgIH1cbiAg\nICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICBkb2N1bWVudCxcbiAgICAgICAgXCJjbGlja1wiLFxu\nICAgICAgICBcImltZ1wiLFxuICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICB2YXIgX2Ez\nO1xuICAgICAgICAgIGxldCAkY2xpY2sgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgbGV0ICRj\nbGlja1BhcmVudCA9ICRjbGljay5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgIGxldCBjdXJyZW50\nQ2xpY2tJbWFnZVVybCA9IGdldEltYWdlU3JjKCRjbGljayk7XG4gICAgICAgICAgaWYgKCRjbGlj\na1BhcmVudC5jbGFzc05hbWUgPT09IFwidmlld2VyLWNhbnZhc1wiIHx8ICRjbGlja1BhcmVudC5o\nYXNBdHRyaWJ1dGUoXCJkYXRhLXZpZXdlci1hY3Rpb25cIikpIHtcbiAgICAgICAgICAgIGxvZy5p\nbmZvKFwi54K55Ye755qEPGltZz7lsZ7kuo5WaWV3ZXLlhoXnmoTlhYPntKDvvIwg5LiN5aSE55CG\nXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoJGNs\naWNrLmNsb3Nlc3QoXCIucGljLXBvcHVwLWd1aWRlLXRocmVhZC13cmFwcGVyXCIpKSB7XG4gICAg\nICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50Q2xpY2tJ\nbWFnZVVybCA9PSBudWxsID8gdm9pZCAwIDogY3VycmVudENsaWNrSW1hZ2VVcmwubWF0Y2goXG4g\nICAgICAgICAgICBcL15odHRwKHN8KTpcXFwvXFxcLyh0aWViYXBpY3xpbWdzYSkuYmFpZHUuY29t\nXFxcL2ZvcnVtXC9nXG4gICAgICAgICAgKSkge1xuICAgICAgICAgICAgdXRpbHMucHJldmVudEV2\nZW50KGV2ZW50KTtcbiAgICAgICAgICAgIGxvZy5pbmZvKGDngrnlh7vlm77niYfwn5GHYCk7XG4g\nICAgICAgICAgICBsb2cuaW5mbygkY2xpY2spO1xuICAgICAgICAgICAgaWYgKCRjbGlja1BhcmVu\ndC5jbGFzc05hbWUgPT09IFwiaW1nLWJveFwiKSB7XG4gICAgICAgICAgICAgIGxldCAkaW1nU3Vk\nb0t1ID0gJGNsaWNrLmNsb3Nlc3QoXCIuaW1nLXN1ZG9rdS5tYWluLWltZy1zdWRva3VcIik7XG4g\nICAgICAgICAgICAgIGxvZy5pbmZvKCRpbWdTdWRvS3UpO1xuICAgICAgICAgICAgICBpZiAoISRp\nbWdTdWRvS3UpIHtcbiAgICAgICAgICAgICAgICB2aWV3SU1HKFtjdXJyZW50Q2xpY2tJbWFnZVVy\nbF0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICBsZXQgbGF6eUltZ0xpc3QgPSBbXTtcbiAgICAgICAgICAgICAgaWYgKFRpZWJhUG9zdC5t\nYWluUG9zdEltZ0xpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgVGllYmFQb3N0Lm1haW5Q\nb3N0SW1nTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICBsYXp5SW1n\nTGlzdC5wdXNoKGl0ZW0uc3JjKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAg\nfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKFxuICAgICAgICAgICAgICAgICAg\nJGltZ1N1ZG9LdS5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nLmltZ1wiKVxuICAgICAgICAgICAgICAg\nICkuZm9yRWFjaCgoJGltZykgPT4ge1xuICAgICAgICAgICAgICAgICAgbGV0IGltZ1NyYyA9IGdl\ndEltYWdlU3JjKCRpbWcpO1xuICAgICAgICAgICAgICAgICAgbG9nLmluZm8oYOiOt+WPluWbvueJ\nhzogJHtpbWdTcmN9YCk7XG4gICAgICAgICAgICAgICAgICBsZXQgaW1nVXJsSW5mbyA9IG5ldyBV\nUkwoaW1nU3JjKTtcbiAgICAgICAgICAgICAgICAgIGlmIChpbWdVcmxJbmZvLnBhdGhuYW1lLnN0\nYXJ0c1dpdGgoXCJcL2ZvcnVtXC9cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBpY05h\nbWUgPSBpbWdVcmxJbmZvLnBhdGhuYW1lLnNwbGl0KFwiXC9cIikucG9wKCk7XG4gICAgICAgICAg\nICAgICAgICAgIGxldCBwaWNJZFNwbGl0ID0gcGljTmFtZS5zcGxpdChcIi5cIik7XG4gICAgICAg\nICAgICAgICAgICAgIGlmIChwaWNJZFNwbGl0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgbGV0\nIHBpY0lkID0gcGljSWRTcGxpdFswXTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoVGllYmFE\nYXRhLmltYWdlTWFwLmhhcyhwaWNJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1Ny\nYyA9IFRpZWJhRGF0YS5pbWFnZU1hcC5nZXQocGljSWQpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgbG9nLnN1Y2Nlc3MoW1wi5pu\/5o2i5oiQ6auY5riF5Zu+54mHXCIsIGltZ1NyY10pO1xuICAg\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgICAgbGF6eUltZ0xpc3QucHVzaChpbWdTcmMpO1xuICAg\nICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGxvZy5pbmZv\nKFwi5Zu+54mH5YiX6KGo8J+Rh1wiKTtcbiAgICAgICAgICAgICAgbG9nLmluZm8obGF6eUltZ0xp\nc3QpO1xuICAgICAgICAgICAgICB2aWV3SU1HKGxhenlJbWdMaXN0LCBsYXp5SW1nTGlzdC5pbmRl\neE9mKGN1cnJlbnRDbGlja0ltYWdlVXJsKSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCRjbGlj\na1BhcmVudC5jbGFzc05hbWUgPT09IFwidGV4dC1jb250ZW50XCIpIHtcbiAgICAgICAgICAgICAg\nbGV0IGxhenlJbWdMaXN0ID0gW107XG4gICAgICAgICAgICAgIGxvZy5pbmZvKCRjbGlja1BhcmVu\ndCk7XG4gICAgICAgICAgICAgICRjbGlja1BhcmVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nLkJE\nRV9JbWFnZVwiKS5mb3JFYWNoKCgkaW1nKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGltZ1Ny\nYyA9IGdldEltYWdlU3JjKCRpbWcpO1xuICAgICAgICAgICAgICAgIGxvZy5pbmZvKGDojrflj5bl\nm77niYc6ICR7aW1nU3JjfWApO1xuICAgICAgICAgICAgICAgIGxldCBpbWdVcmxJbmZvID0gbmV3\nIFVSTChpbWdTcmMpO1xuICAgICAgICAgICAgICAgIGlmIChpbWdVcmxJbmZvLnBhdGhuYW1lLnN0\nYXJ0c1dpdGgoXCJcL2ZvcnVtXC9cIikpIHtcbiAgICAgICAgICAgICAgICAgIGxldCBwaWNOYW1l\nID0gaW1nVXJsSW5mby5wYXRobmFtZS5zcGxpdChcIlwvXCIpLnBvcCgpO1xuICAgICAgICAgICAg\nICAgICAgbGV0IHBpY0lkU3BsaXQgPSBwaWNOYW1lID09IG51bGwgPyB2b2lkIDAgOiBwaWNOYW1l\nLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgICAgICAgICAgIGlmIChwaWNJZFNwbGl0KSB7XG4gICAg\nICAgICAgICAgICAgICAgIGxldCBwaWNJZCA9IHBpY0lkU3BsaXRbMF07XG4gICAgICAgICAgICAg\nICAgICAgIGlmIChUaWViYURhdGEuaW1hZ2VNYXAuaGFzKHBpY0lkKSkge1xuICAgICAgICAgICAg\nICAgICAgICAgIGltZ1NyYyA9IFRpZWJhRGF0YS5pbWFnZU1hcC5nZXQocGljSWQpO1xuICAgICAg\nICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFtcIuabv+aNouaIkOmrmOa4heWbvueJh1wiLCBp\nbWdTcmNdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsYXp5SW1nTGlzdC5wdXNoKGltZ1NyYyk7\nXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBsb2cuaW5mbyhcIuivhOiuuuWMuuWb\nvueJh+WIl+ihqPCfkYdcIik7XG4gICAgICAgICAgICAgIGxvZy5pbmZvKGxhenlJbWdMaXN0KTtc\nbiAgICAgICAgICAgICAgdmlld0lNRyhsYXp5SW1nTGlzdCwgbGF6eUltZ0xpc3QuaW5kZXhPZihj\ndXJyZW50Q2xpY2tJbWFnZVVybCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICgkY2xpY2tQYXJl\nbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwicGItaW1hZ2VcIikgJiYgJGNsaWNrUGFyZW50LmxvY2Fs\nTmFtZSA9PT0gXCJ1bmktaW1hZ2VcIikge1xuICAgICAgICAgICAgICBsb2cuaW5mbyhcInVuaS1h\ncHDnmoTlm77niYdcIiwgJGNsaWNrUGFyZW50KTtcbiAgICAgICAgICAgICAgbGV0IGxhenlJbWdM\naXN0ID0gW107XG4gICAgICAgICAgICAgIGxldCBsYXp5SW1nSW5kZXggPSAwO1xuICAgICAgICAg\nICAgICBsZXQgJHNsaWRlRnJhbWUgPSAkY2xpY2suY2xvc2VzdChcbiAgICAgICAgICAgICAgICBc\nIi51bmktc3dpcGVyLXNsaWRlLWZyYW1lXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAg\nICAgaWYgKCRzbGlkZUZyYW1lKSB7XG4gICAgICAgICAgICAgICAgJHNsaWRlRnJhbWUucXVlcnlT\nZWxlY3RvckFsbChcImltZ1wiKS5mb3JFYWNoKCgkaW1nKSA9PiB7XG4gICAgICAgICAgICAgICAg\nICBsZXQgaW1nU3JjID0gZ2V0SW1hZ2VTcmMoJGltZyk7XG4gICAgICAgICAgICAgICAgICBsb2cu\naW5mbyhg6I635Y+W5Zu+54mHOiAke2ltZ1NyY31gKTtcbiAgICAgICAgICAgICAgICAgIGxhenlJ\nbWdMaXN0LnB1c2goaW1nU3JjKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAg\nICBsYXp5SW1nSW5kZXggPSBsYXp5SW1nTGlzdC5pbmRleE9mKGN1cnJlbnRDbGlja0ltYWdlVXJs\nKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICgkY2xpY2suY2xvc2VzdChcIi5wYi1jb21tZW50\nLWl0ZW1cIikpIHtcbiAgICAgICAgICAgICAgICBsb2cuaW5mbyhgdW5pLWFwcOivhOiuuuWMuuea\nhOWbvueJh2ApO1xuICAgICAgICAgICAgICAgIGxldCAkcGJDb21tZW50SXRlbSA9ICRjbGljay5j\nbG9zZXN0KFwiLnBiLWNvbW1lbnQtaXRlbVwiKTtcbiAgICAgICAgICAgICAgICBpZiAoJHBiQ29t\nbWVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgIGxldCBjb21tZW50SW1hZ2VMaXN0ID0gQXJy\nYXkuZnJvbShcbiAgICAgICAgICAgICAgICAgICAgJHBiQ29tbWVudEl0ZW0ucXVlcnlTZWxlY3Rv\nckFsbChcbiAgICAgICAgICAgICAgICAgICAgICBcInVuaS1pbWFnZSBpbWdcIlxuICAgICAgICAg\nICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApLm1hcCgoJGVsKSA9PiAkZWwuc3JjKTtc\nbiAgICAgICAgICAgICAgICAgIGxldCBwYkNvbW1lbnRJdGVtVnVlM0lucyA9IFZ1ZVV0aWxzLmdl\ndFZ1ZTMoJHBiQ29tbWVudEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgbGV0IHBiQ29tbWVudERh\ndGEgPSAoX2EzID0gcGJDb21tZW50SXRlbVZ1ZTNJbnMgPT0gbnVsbCA\/IHZvaWQgMCA6IHBiQ29t\nbWVudEl0ZW1WdWUzSW5zLnByb3BzKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmNvbW1lbnREYXRh\nO1xuICAgICAgICAgICAgICAgICAgbGV0ICRjb21tZW50R3JvdXAgPSAkcGJDb21tZW50SXRlbS5j\nbG9zZXN0KFwiLmNvbW1lbnQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgICBsZXQgY29tbWVu\ndEdyb3VwVnVlMklucyA9IFZ1ZVV0aWxzLmdldFZ1ZSgkY29tbWVudEdyb3VwKTtcbiAgICAgICAg\nICAgICAgICAgIGxldCBzZWN0aW9uRGF0YSA9IGNvbW1lbnRHcm91cFZ1ZTJJbnMgPT0gbnVsbCA\/\nIHZvaWQgMCA6IGNvbW1lbnRHcm91cFZ1ZTJJbnMuc2VjdGlvbkRhdGE7XG4gICAgICAgICAgICAg\nICAgICBpZiAocGJDb21tZW50RGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBwYkNvbW1lbnRE\nYXRhLmNvbnRlbnQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGNv\nbnN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNkbl9zcmMsXG4gICAgICAgICAgICAgICAg\nICAgICAgICBjZG5fc3JjX2FjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpZ19jZG5f\nc3JjLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3NyYyxcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICB9ID0gaXRlbTtcbiAgICAgICAg\nICAgICAgICAgICAgICBpZiAodHlwZSAhPT0gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAg\ncmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBp\nZiAoY3VycmVudENsaWNrSW1hZ2VVcmwgPT09IGNkbl9zcmMgfHwgY3VycmVudENsaWNrSW1hZ2VV\ncmwgPT09IGNkbl9zcmNfYWN0aXZlIHx8IGN1cnJlbnRDbGlja0ltYWdlVXJsID09PSBiaWdfY2Ru\nX3NyYyB8fCBjdXJyZW50Q2xpY2tJbWFnZVVybCA9PT0gb3JpZ2luX3NyYykge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgbGF6eUltZ0luZGV4ID0gbGF6eUltZ0xpc3QubGVuZ3RoO1xuICAgICAg\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBsYXp5SW1nTGlzdC5wdXNo\nKFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3NyYyB8fCBiaWdfY2RuX3NyYyB8fCBj\ndXJyZW50Q2xpY2tJbWFnZVVybFxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWN0aW9uRGF0YSkg\ne1xuICAgICAgICAgICAgICAgICAgICBzZWN0aW9uRGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4g\nICAgICAgICAgICAgICAgICAgICAgaXRlbS5pbWdMaXN0LmZvckVhY2goKGl0ZW0yKSA9PiB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nIGNkbl9zcmMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNkbl9zcmNfYWN0aXZlLFxuICAg\nICAgICAgICAgICAgICAgICAgICAgICBiaWdfY2RuX3NyYyxcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgb3JpZ2luX3NyYyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZVxuICAgICAg\nICAgICAgICAgICAgICAgICAgfSA9IGl0ZW0yO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKHR5cGUgIT09IDMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRD\nbGlja0ltYWdlVXJsID09PSBjZG5fc3JjIHx8IGN1cnJlbnRDbGlja0ltYWdlVXJsID09PSBjZG5f\nc3JjX2FjdGl2ZSB8fCBjdXJyZW50Q2xpY2tJbWFnZVVybCA9PT0gYmlnX2Nkbl9zcmMgfHwgY3Vy\ncmVudENsaWNrSW1hZ2VVcmwgPT09IG9yaWdpbl9zcmMpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgbGF6eUltZ0luZGV4ID0gbGF6eUltZ0xpc3QubGVuZ3RoO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbGF6eUltZ0xpc3QucHVzaChcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3NyYyB8fCBiaWdfY2RuX3NyYyB8fCBjdXJy\nZW50Q2xpY2tJbWFnZVVybFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAg\nICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsYXp5SW1nTGlzdC5wdXNoKC4uLmNvbW1l\nbnRJbWFnZUxpc3QpO1xuICAgICAgICAgICAgICAgICAgICBsYXp5SW1nSW5kZXggPSBsYXp5SW1n\nTGlzdC5pbmRleE9mKGN1cnJlbnRDbGlja0ltYWdlVXJsKTtcbiAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKFwi\n6I635Y+WLnBiLWNvbW1lbnQtaXRlbeWFg+e0oOWksei0pVwiKTtcbiAgICAgICAgICAgICAgICAg\nIGxhenlJbWdMaXN0LnB1c2goY3VycmVudENsaWNrSW1hZ2VVcmwpO1xuICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXp5SW1nTGlzdC5w\ndXNoKGN1cnJlbnRDbGlja0ltYWdlVXJsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICBpZiAobGF6eUltZ0xpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmlld0lNRyhsYXp5\nSW1nTGlzdCwgbGF6eUltZ0luZGV4KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgICAgICBRbXNnLmVycm9yKFwi6I635Y+W5Zu+54mH5pWw5o2u5Li656m6XCIpO1xuICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB2aWV3SU1HKFtj\ndXJyZW50Q2xpY2tJbWFnZVVybF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAg\nICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgfVxuICAg\nICAgKTtcbiAgICAgIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgIFwvKiDlm77niYfl\nj7PkuIrop5LnmoRBUFDkuJPkuqsgKlwvXG4gICAgICAgIFwiZGl2LmltZy1zdWRva3UgLmltZy1k\nZXNjXCJcbiAgICAgICk7XG4gICAgICBkb211dGlscy5yZWFkeShmdW5jdGlvbigpIHtcbiAgICAg\nICAgdXRpbHMud2FpdE5vZGUoXCJkaXYuaW1nLXN1ZG9rdVwiLCAxZTQpLnRoZW4oKCRpbWdTdWRv\nS3UpID0+IHtcbiAgICAgICAgICBpZiAoISRpbWdTdWRvS3UpIHtcbiAgICAgICAgICAgIGxvZy5l\ncnJvcihcIuacquaJvuWIsOWFg+e0oCBkaXYuaW1nLXN1ZG9rdVwiKTtcbiAgICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdXRpbHMud2FpdE5vZGUoXCJpbWdcIiwgJGlt\nZ1N1ZG9LdSwgMWU0KS50aGVuKChjaGlsZEltZykgPT4ge1xuICAgICAgICAgICAgaWYgKCFjaGls\nZEltZykge1xuICAgICAgICAgICAgICBsb2cuZXJyb3IoXCLmnKrmib7liLDlhYPntKAgZGl2Lmlt\nZy1zdWRva3UgaW1nXCIpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICBsZXQgaW1nU3Vkb0t1SW1hZ2VFbGVtZW50TGlzdCA9ICRpbWdTdWRvS3UucXVl\ncnlTZWxlY3RvckFsbChcImltZy5pbWdcIik7XG4gICAgICAgICAgICBsb2cuc3VjY2VzcyhbXG4g\nICAgICAgICAgICAgIFwi6YeN5p6E5Li75YaF5a6555qE5Zu+54mHXCIsXG4gICAgICAgICAgICAg\nICRpbWdTdWRvS3UsXG4gICAgICAgICAgICAgIGltZ1N1ZG9LdUltYWdlRWxlbWVudExpc3RcbiAg\nICAgICAgICAgIF0pO1xuICAgICAgICAgICAgaW1nU3Vkb0t1SW1hZ2VFbGVtZW50TGlzdC5mb3JF\nYWNoKCgkaW1nSXRlbSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoJGltZ0l0ZW0uaGFzQXR0cmli\ndXRlKFwiZGF0YS1zcmNcIikpIHtcbiAgICAgICAgICAgICAgICAkaW1nSXRlbS5zcmMgPSAkaW1n\nSXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXNyY1wiKTtcbiAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgfSk7XG4gICAgICAgICAgICAkaW1nU3Vkb0t1LmlubmVySFRNTCA9ICRpbWdTdWRvS3Uu\naW5uZXJIVE1MO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIFZ1ZVV0aWxzLndhaXRWdWVQcm9w\nVG9TZXQoXCJkaXYuaW1nLXN1ZG9rdVwiLCBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAg\nIG1zZzogXCLnrYnlvoXojrflj5blsZ7mgKcgaW1nc1wiLFxuICAgICAgICAgICAgICBjaGVjayh2\ndWVPYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHZ1ZU9iaiA9PSBudWxsID8gdm9pZCAw\nIDogdnVlT2JqLmltZ3MpICE9IG51bGw7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAg\nIHNldCh2dWVPYmopIHtcbiAgICAgICAgICAgICAgICBUaWViYVBvc3QubWFpblBvc3RJbWdMaXN0\nID0gdnVlT2JqLmltZ3M7XG4gICAgICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoW1xuICAgICAgICAg\nICAgICAgICAgXCJWdWXkuIrpmpDol4\/nmoTluJblrZDpq5jmuIXlm77niYfliJfooahcIixcbiAg\nICAgICAgICAgICAgICAgIFRpZWJhUG9zdC5tYWluUG9zdEltZ0xpc3RcbiAgICAgICAgICAgICAg\nICBdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0pO1xuICAg\nICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWIneWni+WMluW4\nluWtkOWGheWbvueJh+S\/oeaBr1xuICAgICAqXC9cbiAgICBpbml0UG9zdEltYWdlSW5mbygpIHtc\nbiAgICAgIGxldCBmb3J1bU5hbWUgPSBUaWViYUNvcmUuZ2V0Q3VycmVudEZvcnVtTmFtZSgpO1xu\nICAgICAgbGV0IHRpZCA9IFRpZWJhQ29yZS5nZXRDdXJyZW50Rm9ydW1Qb3N0VGlkKCk7XG4gICAg\nICBpZiAoZm9ydW1OYW1lICYmIHRpZCkge1xuICAgICAgICBUaWVCYUFwaS5nZXRQaWN0dXJlR3Vp\nZGUoZm9ydW1OYW1lLCB0aWQpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmICghcmVz\ndWx0KSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoXCLojrflj5blm77niYfkv6Hmga\/lpLHotKVc\nIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5zdWNj\nZXNzKFtcIuivt+axguacrOi0tOWbvueJh+S\/oeaBr1wiLCByZXN1bHRdKTtcbiAgICAgICAgICBP\nYmplY3QudmFsdWVzKHJlc3VsdFtcInBpY19saXN0XCJdKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4g\nICAgICAgICAgICB2YXIgX2EzLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2ksIF9qO1xu\nICAgICAgICAgICAgbGV0IGlkID0gKChfYiA9IChfYTMgPSBpdGVtID09IG51bGwgPyB2b2lkIDAg\nOiBpdGVtW1wiaW1nXCJdKSA9PSBudWxsID8gdm9pZCAwIDogX2EzW1wib3JpZ2luYWxcIl0pID09\nIG51bGwgPyB2b2lkIDAgOiBfYltcImlkXCJdKSB8fCAoKF9kID0gKF9jID0gaXRlbSA9PSBudWxs\nID8gdm9pZCAwIDogaXRlbVtcImltZ1wiXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jW1wibWVkaXVt\nXCJdKSA9PSBudWxsID8gdm9pZCAwIDogX2RbXCJpZFwiXSkgfHwgKChfZiA9IChfZSA9IGl0ZW0g\nPT0gbnVsbCA\/IHZvaWQgMCA6IGl0ZW1bXCJpbWdcIl0pID09IG51bGwgPyB2b2lkIDAgOiBfZVtc\nInNjcmVlblwiXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9mW1wiaWRcIl0pO1xuICAgICAgICAgICAg\nbGV0IHBpY3R1cmVVcmwgPSAoKF9oID0gKF9nID0gaXRlbSA9PSBudWxsID8gdm9pZCAwIDogaXRl\nbVtcImltZ1wiXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9nW1wib3JpZ2luYWxcIl0pID09IG51bGwg\nPyB2b2lkIDAgOiBfaFtcIndhdGVydXJsXCJdKSB8fCAoKF9qID0gKF9pID0gaXRlbSA9PSBudWxs\nID8gdm9pZCAwIDogaXRlbVtcImltZ1wiXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9pW1wic2NyZWVu\nXCJdKSA9PSBudWxsID8gdm9pZCAwIDogX2pbXCJ3YXRlcnVybFwiXSk7XG4gICAgICAgICAgICBp\nZiAoaWQgIT0gbnVsbCAmJiBwaWN0dXJlVXJsICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgVGll\nYmFEYXRhLmltYWdlTWFwLnNldChpZCwgcGljdHVyZVVybCk7XG4gICAgICAgICAgICB9XG4gICAg\nICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOW8uuWItuafpeeciy3luJblrZDkuI3lrZjlnKh85biW5a2Q5bey6KKr5Yig6ZmkfOivpeW4luWt\nkOmcgOimgeWOu2FwcOWGheafpeeci+WTplxuICAgICAqXG4gICAgICpcL1xuICAgIHJlcGFpckVy\ncm9yVGhyZWFkKCkge1xuICAgICAgYXN5bmMgZnVuY3Rpb24gZ2V0UGFnZUluZm8oKSB7XG4gICAg\nICAgIHZhciBfYTMsIF9iO1xuICAgICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0IGh0dHB4LmdldCh3\naW5kb3cubG9jYXRpb24uaHJlZiwge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAg\nIFwiVXNlci1BZ2VudFwiOiB1dGlscy5nZXRSYW5kb21QQ1VBKClcbiAgICAgICAgICB9XG4gICAg\nICAgIH0pO1xuICAgICAgICBpZiAoIWdldFJlc3Auc3RhdHVzKSB7XG4gICAgICAgICAgcmV0dXJu\nO1xuICAgICAgICB9XG4gICAgICAgIGxvZy5pbmZvKGdldFJlc3ApO1xuICAgICAgICBsZXQgcGFn\nZURPTSA9IGRvbXV0aWxzLnBhcnNlSFRNTChnZXRSZXNwLmRhdGEucmVzcG9uc2VUZXh0LCB0cnVl\nLCB0cnVlKTtcbiAgICAgICAgbGV0IHBvc3RMaXN0Rmlyc3RFbGVtZW50ID0gcGFnZURPTS5xdWVy\neVNlbGVjdG9yKFwiI2pfcF9wb3N0bGlzdCAubF9wb3N0XCIpO1xuICAgICAgICBpZiAoIXBvc3RM\naXN0Rmlyc3RFbGVtZW50KSB7XG4gICAgICAgICAgbG9nLmVycm9yKFwi5pyq5om+5YiwI2pfcF9w\nb3N0bGlzdCAubF9wb3N05YWD57SgXCIpO1xuICAgICAgICAgIFFtc2cuZXJyb3IoXCLmnKrmib7l\niLAjal9wX3Bvc3RsaXN0IC5sX3Bvc3TlhYPntKBcIik7XG4gICAgICAgICAgcmV0dXJuO1xuICAg\nICAgICB9XG4gICAgICAgIGlmICghcG9zdExpc3RGaXJzdEVsZW1lbnQuaGFzQXR0cmlidXRlKFwi\nZGF0YS1maWVsZFwiKSkge1xuICAgICAgICAgIGxvZy5lcnJvcihcIuacquaJvuWIsCBkYXRhLWZp\nZWxkIOWxnuaAp1wiKTtcbiAgICAgICAgICBRbXNnLmVycm9yKFwi5pyq5om+5YiwIGRhdGEtZmll\nbGQg5bGe5oCnXCIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQg\nZmllbGQgPSB1dGlscy50b0pTT04ocG9zdExpc3RGaXJzdEVsZW1lbnQuZ2V0QXR0cmlidXRlKFwi\nZGF0YS1maWVsZFwiKSk7XG4gICAgICAgIGxldCBQYWdlRGF0YSA9IG51bGw7XG4gICAgICAgIGxl\ndCBQYWdlRGF0YVNjcmlwdFN0cmluZyA9IFwiXCI7XG4gICAgICAgIHBhZ2VET00ucXVlcnlTZWxl\nY3RvckFsbChcInNjcmlwdFwiKS5mb3JFYWNoKChzY3JpcHRFbGVtZW50KSA9PiB7XG4gICAgICAg\nICAgaWYgKHNjcmlwdEVsZW1lbnQuaW5uZXJIVE1MLmluY2x1ZGVzKFwidmFyIFBhZ2VEYXRhXCIp\nKSB7XG4gICAgICAgICAgICBQYWdlRGF0YVNjcmlwdFN0cmluZyA9IGBcblx0XHRcdFx0XHRcdCR7\nUGFnZURhdGFTY3JpcHRTdHJpbmd9XG5cblx0XHRcdFx0XHRcdCR7c2NyaXB0RWxlbWVudC5pbm5l\nckhUTUx9XG5cblx0XHRcdFx0XHRcdGA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAg\nICAgaWYgKFBhZ2VEYXRhU2NyaXB0U3RyaW5nID09PSBcIlwiKSB7XG4gICAgICAgICAgbG9nLmVy\ncm9yKFwi5pyq5om+5YiwIFBhZ2VEYXRh55qEc2NyaXB05qCH562+XCIpO1xuICAgICAgICAgIFFt\nc2cuZXJyb3IoXCLmnKrmib7liLAgUGFnZURhdGHnmoRzY3JpcHTmoIfnrb5cIik7XG4gICAgICAg\nICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIFBhZ2VEYXRhID0gbmV3IEZ1bmN0aW9uKGBc\nbiAgICAgICAgICAgICAgJHtQYWdlRGF0YVNjcmlwdFN0cmluZ31cblxuICAgICAgICAgICAgICBy\nZXR1cm4gUGFnZURhdGE7XG4gICAgICAgICAgICAgIGApKCk7XG4gICAgICAgIGlmICghUGFnZURh\ndGEpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCLmnKrmib7liLAgUGFnZURhdGFcIik7XG4gICAg\nICAgICAgUW1zZy5lcnJvcihcIuacquaJvuWIsCBQYWdlRGF0YVwiKTtcbiAgICAgICAgICByZXR1\ncm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHRpbWUgPSAoKF9hMyA9IHBhZ2VET00ucXVlcnlT\nZWxlY3RvcihcbiAgICAgICAgICBcIiNqX3BfcG9zdGxpc3QgLnBvc3QtdGFpbC13cmFwIHNwYW4u\ndGFpbC1pbmZvOm50aC1jaGlsZCg2KVwiXG4gICAgICAgICkpID09IG51bGwgPyB2b2lkIDAgOiBf\nYTMuaW5uZXJUZXh0KSB8fCAoKF9iID0gZmllbGQgPT0gbnVsbCA\/IHZvaWQgMCA6IGZpZWxkLmNv\nbnRlbnQpID09IG51bGwgPyB2b2lkIDAgOiBfYi5kYXRlKSB8fCBcIlwiO1xuICAgICAgICBpZiAo\ndXRpbHMuaXNOb3ROdWxsKHRpbWUpKSB7XG4gICAgICAgICAgdGltZSA9IHV0aWxzLmZvcm1hdFRv\nVGltZVN0YW1wKHRpbWUpIFwvIDFlMztcbiAgICAgICAgfVxuICAgICAgICBsZXQgY29udGVudCA9\nIHBhZ2VET00ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnLmRfcG9zdF9jb250ZW50X2ZpcnN0\nZmxvb3IgLmRfcG9zdF9jb250ZW50W2lkXj1cInBvc3RfY29udGVudF9cIl0nXG4gICAgICAgICk7\nXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgUGFnZURhdGEs\nXG4gICAgICAgICAgdGltZSxcbiAgICAgICAgICBjb250ZW50OiBjb250ZW50ID09IG51bGwgPyB2\nb2lkIDAgOiBjb250ZW50LmlubmVySFRNTFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZnVu\nY3Rpb24gZ2V0UG9zdExpc3QoZmllbGQsIFBhZ2VEYXRhLCB0aW1lKSB7XG4gICAgICAgIGxldCBk\nYXRhID0ge1xuICAgICAgICAgIGFncmVlOiB7XG4gICAgICAgICAgICBhZ3JlZV9udW06IDAsXG4g\nICAgICAgICAgICBkaXNhZ3JlZV9udW06IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF1dGhv\ncjoge1xuICAgICAgICAgICAgXC8qIGF1dGhvci51c2VyX2lkICpcL1xuICAgICAgICAgICAgaWQ6\nIGZpZWxkLmF1dGhvci51c2VyX2lkLFxuICAgICAgICAgICAgXC8qIGF1dGhvci51c2VyX25hbWUg\nKlwvXG4gICAgICAgICAgICBuYW1lOiBmaWVsZC5hdXRob3IudXNlcl9uYW1lLFxuICAgICAgICAg\nICAgXC8qIGF1dGhvci51c2VyX25pY2tuYW1lICpcL1xuICAgICAgICAgICAgbmFtZV9zaG93OiBm\naWVsZC5hdXRob3IudXNlcl9uaWNrbmFtZSxcbiAgICAgICAgICAgIFwvKiBhdXRob3IucG9ydHJh\naXQgKlwvXG4gICAgICAgICAgICBwb3J0cmFpdDogZmllbGQuYXV0aG9yLnBvcnRyYWl0LFxuICAg\nICAgICAgICAgXC8qIGF1dGhvci51c2VyX25pY2tuYW1lICpcL1xuICAgICAgICAgICAgc2hvd19u\naWNrbmFtZTogZmllbGQuYXV0aG9yLnVzZXJfbmlja25hbWUsXG4gICAgICAgICAgICB0eXBlOiAx\nLFxuICAgICAgICAgICAgdXNlcmhpZGU6IDBcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbnRl\nbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgXC8qIGNvbnRlbnQuY29udGVudCAq\nXC9cbiAgICAgICAgICAgICAgdGV4dDogZmllbGQuY29udGVudC5jb250ZW50LFxuICAgICAgICAg\nICAgICBcLyogcGFyc2VJbnQoY29udGVudC50eXBlKSAqXC9cbiAgICAgICAgICAgICAgdHlwZTog\ncGFyc2VJbnQoZmllbGQuY29udGVudC50eXBlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0s\nXG4gICAgICAgICAgZmxvb3I6IDEsXG4gICAgICAgICAgZ2FtZV9pbmZvOiBbbnVsbF0sXG4gICAg\nICAgICAgXC8qIGNvbnRlbnQucG9zdF9pZCAqXC9cbiAgICAgICAgICBpZDogcGFyc2VJbnQoZmll\nbGQuY29udGVudC5wb3N0X2lkKSxcbiAgICAgICAgICBpc19idWI6IDAsXG4gICAgICAgICAgaXNf\ndm9pY2U6IDAsXG4gICAgICAgICAgaXNfdm90ZTogMCxcbiAgICAgICAgICBwdHlwZTogMCxcbiAg\nICAgICAgICByZXBseV9udW06IFBhZ2VEYXRhLnRocmVhZC5yZXBseV9udW0sXG4gICAgICAgICAg\nc3ViX3Bvc3RfbnVtYmVyOiAwLFxuICAgICAgICAgIHRpbWUsXG4gICAgICAgICAgdGl0bGU6IFBh\nZ2VEYXRhLnRocmVhZC50aXRsZSxcbiAgICAgICAgICBpbmRleDogMFxuICAgICAgICB9O1xuICAg\nICAgICBsZXQgZmlyc3REYXRhID0gZGF0YTtcbiAgICAgICAgbGV0IHNlY29uZERhdGEgPSBkYXRh\nO1xuICAgICAgICBzZWNvbmREYXRhLmZsb29yID0gMztcbiAgICAgICAgcmV0dXJuIFtmaXJzdERh\ndGEsIHNlY29uZERhdGFdO1xuICAgICAgfVxuICAgICAgdXRpbHMud2FpdE5vZGUoXCIuYXBwLXZp\nZXdcIiwgMWU0KS50aGVuKGFzeW5jICgkYXBwVmlldykgPT4ge1xuICAgICAgICBpZiAoISRhcHBW\naWV3KSB7XG4gICAgICAgICAgbG9nLmVycm9yKFwi5YWD57SgLmFwcC12aWV35LiN5a2Y5ZyoXCIp\nO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB1dGlscy53YWl0\nVnVlQnlJbnRlcnZhbChcbiAgICAgICAgICAkYXBwVmlldyxcbiAgICAgICAgICAoKSA9PiB7XG4g\nICAgICAgICAgICB2YXIgX2EzO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiAoKF9hMyA9IFZ1\nZVV0aWxzLmdldFZ1ZSgkYXBwVmlldykpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuaXNFcnJvclRo\ncmVhZCkgPT09IFwiYm9vbGVhblwiO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgMjUwLFxuICAg\nICAgICAgIDFlNFxuICAgICAgICApO1xuICAgICAgICBsZXQgYXBwVmlld1Z1ZSA9IFZ1ZVV0aWxz\nLmdldFZ1ZSgkYXBwVmlldyk7XG4gICAgICAgIGlmICghKGFwcFZpZXdWdWUgJiYgYXBwVmlld1Z1\nZS5pc0Vycm9yVGhyZWFkKSkge1xuICAgICAgICAgIGxvZy5pbmZvKFwi6aqM6K+B5Y+C5pWwaXNF\ncnJvclRocmVhZO+8mnRydWXvvIzmraPluLjluJblrZBcIik7XG4gICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICB9XG4gICAgICAgIGxvZy53YXJuKFwi6K+l5biW5a2Q5LiN6IO95p+l55yLIOS\/ruWk\njeS4rS4uLlwiKTtcbiAgICAgICAgbGV0IGxvYWRpbmcgPSBRbXNnLmxvYWRpbmcoXCLor6XluJbl\nrZDkuI3og73mn6XnnIsg5L+u5aSN5LitLi4uXCIpO1xuICAgICAgICBsZXQgcGFnZUluZm8gPSBh\nd2FpdCBnZXRQYWdlSW5mbygpO1xuICAgICAgICBsb2FkaW5nLmNsb3NlKCk7XG4gICAgICAgIGlm\nICghcGFnZUluZm8pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbG9n\nLmluZm8oW1wi6I635Y+W5Yiw55qE6aG16Z2i5L+h5oGvXCIsIHBhZ2VJbmZvXSk7XG4gICAgICAg\nIGxldCBwb3N0TGlzdCA9IGdldFBvc3RMaXN0KFxuICAgICAgICAgIHBhZ2VJbmZvLmZpZWxkLFxu\nICAgICAgICAgIHBhZ2VJbmZvLlBhZ2VEYXRhLFxuICAgICAgICAgIHBhZ2VJbmZvLnRpbWVcbiAg\nICAgICAgKTtcbiAgICAgICAgYXBwVmlld1Z1ZS5wb3N0TGlzdCA9IHBvc3RMaXN0O1xuICAgICAg\nICBhcHBWaWV3VnVlLnBvc3RBdXRob3JJZCA9IHBvc3RMaXN0WzBdLmF1dGhvci5pZDtcbiAgICAg\nICAgYXBwVmlld1Z1ZS50aHJlYWQgPSB7XG4gICAgICAgICAgYWdyZWU6IHtcbiAgICAgICAgICAg\nIGFncmVlX251bTogMCxcbiAgICAgICAgICAgIGRpc2FncmVlX251bTogMFxuICAgICAgICAgIH0s\nXG4gICAgICAgICAgY29sbGVjdF9tYXJrX3BpZDogXCIwXCIsXG4gICAgICAgICAgY29sbGVjdF9z\ndGF0dXM6IDAsXG4gICAgICAgICAgY3JlYXRlX3RpbWU6IHBvc3RMaXN0WzBdLnRpbWUsXG4gICAg\nICAgICAgaWQ6IGFwcFZpZXdWdWUudGlkLFxuICAgICAgICAgIGlzX2Zyc19tYXNrOiAwLFxuICAg\nICAgICAgIGlzX3NoYXJlX3RocmVhZDogMCxcbiAgICAgICAgICByZXBseV9udW06IHBvc3RMaXN0\nWzBdLnJlcGx5X251bSxcbiAgICAgICAgICByb2JvdF90aHJlYWRfdHlwZTogMCxcbiAgICAgICAg\nICB0X3NoYXJlX2ltZzogXCJcIixcbiAgICAgICAgICB0aHJlYWRfdHlwZTogMCxcbiAgICAgICAg\nICB2YWxpZF9wb3N0X251bTogMCxcbiAgICAgICAgICB3b3Jrc19pbmZvOiB7fVxuICAgICAgICB9\nO1xuICAgICAgICBhcHBWaWV3VnVlLmZvcnVtID0ge1xuICAgICAgICAgIFwvKiBQYWdlRGF0YS5m\nb3J1bS5hdmF0YXIgKlwvXG4gICAgICAgICAgYXZhdGFyOiBwYWdlSW5mby5QYWdlRGF0YS5mb3J1\nbS5hdmF0YXIsXG4gICAgICAgICAgXC8qIFBhZ2VEYXRhLmZvcnVtLmZpcnN0X2NsYXNzICpcL1xu\nICAgICAgICAgIGZpcnN0X2RpcjogcGFnZUluZm8uUGFnZURhdGEuZm9ydW0uZmlyc3RfY2xhc3Mg\nfHwgcGFnZUluZm8uUGFnZURhdGEuZmlyc3RfY2xhc3MsXG4gICAgICAgICAgXC8qIFBhZ2VEYXRh\nLmZvcnVtLmlkICpcL1xuICAgICAgICAgIGlkOiBwYWdlSW5mby5QYWdlRGF0YS5mb3J1bS5pZCB8\nfCBwYWdlSW5mby5QYWdlRGF0YS5mb3J1bS5mb3J1bV9pZCB8fCBwYWdlSW5mby5QYWdlRGF0YS5m\nb3J1bS50cnVlX2ZvcnVtX2lkLFxuICAgICAgICAgIGlzX2V4aXN0czogMSxcbiAgICAgICAgICBp\nc19mb3JiaWRkZW46IDAsXG4gICAgICAgICAgaXNfZm9ydW1fbWVyZ2VkOiAwLFxuICAgICAgICAg\nIFwvKiBQYWdlRGF0YS5mb3J1bS5uYW1lICpcL1xuICAgICAgICAgIG5hbWU6IHBhZ2VJbmZvLlBh\nZ2VEYXRhLmZvcnVtLm5hbWUgfHwgcGFnZUluZm8uUGFnZURhdGEuZm9ydW0uZm9ydW1fbmFtZSxc\nbiAgICAgICAgICBcLyogUGFnZURhdGEuZm9ydW0uc2Vjb25kX2NsYXNzICpcL1xuICAgICAgICAg\nIHNlY29uZF9kaXI6IHBhZ2VJbmZvLlBhZ2VEYXRhLmZvcnVtLnNlY29uZF9jbGFzcyB8fCBwYWdl\nSW5mby5QYWdlRGF0YS5zZWNvbmRfY2xhc3NcbiAgICAgICAgfTtcbiAgICAgICAgYXBwVmlld1Z1\nZS5wb3N0TnVtID0gMTAwO1xuICAgICAgICBhcHBWaWV3VnVlLmlzRXJyb3JUaHJlYWQgPSBmYWxz\nZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdmFyIF9hMywgX2I7XG4g\nICAgICAgICAgZG9tdXRpbHMuYXBwZW5kKFxuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl\nY3RvcihcbiAgICAgICAgICAgICAgXCJkaXYuYXBwLXZpZXcgZGl2LnRocmVhZC1tYWluLXdyYXBw\nZXIgLnRocmVhZC10ZXh0XCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBwb3N0TGlzdFsw\nXS5jb250ZW50WzBdLnRleHQgfHwgcGFnZUluZm8uY29udGVudFxuICAgICAgICAgICk7XG4gICAg\nICAgICAgaWYgKGFwcFZpZXdWdWUuaW50ZXJhY3Rpb25OdW0gJiYgdHlwZW9mICgoX2IgPSAoX2Ez\nID0gcGFnZUluZm8gPT0gbnVsbCA\/IHZvaWQgMCA6IHBhZ2VJbmZvLlBhZ2VEYXRhKSA9PSBudWxs\nID8gdm9pZCAwIDogX2EzLnRocmVhZCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLnJlcGx5X251bSkg\nPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGFwcFZpZXdWdWUuaW50ZXJhY3Rpb25OdW0u\ncmVwbHkgPSBwYWdlSW5mby5QYWdlRGF0YS50aHJlYWQucmVwbHlfbnVtO1xuICAgICAgICAgIH1c\nbiAgICAgICAgfSwgMzAwKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOim\nhueblnZ1ZeeahFJvdXRlci5tYXRjaGVyLm1hdGNo77yM6Zi75q2i5pS55Y+Y6Lev55Sx5ZCO6aG1\n6Z2iX192dWVfX+WxnuaAp+S5n+aUueWPmOWvvOiHtOaXoOazleiOt+WPluWxnuaAp1xuICAgICAq\nXC9cbiAgICBvdmVycmlkZVZ1ZVJvdXRlck1hdGNoKCkge1xuICAgICAgVnVlVXRpbHMud2FpdFZ1\nZVByb3BUb1NldChcIi5hcHAtdmlld1wiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBtc2c6IFwi\n562J5b6F6I635Y+WIHJvb3TnmoQkcm91dGVyXCIsXG4gICAgICAgICAgY2hlY2sodnVlT2JqKSB7\nXG4gICAgICAgICAgICB2YXIgX2EzLCBfYiwgX2M7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9m\nICgoX2MgPSAoX2IgPSAoX2EzID0gdnVlT2JqID09IG51bGwgPyB2b2lkIDAgOiB2dWVPYmouJHJv\nb3QpID09IG51bGwgPyB2b2lkIDAgOiBfYTMuJHJvdXRlcikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9i\nLm1hdGNoZXIpID09IG51bGwgPyB2b2lkIDAgOiBfYy5tYXRjaCkgPT09IFwiZnVuY3Rpb25cIjtc\nbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldCh2dWVPYmopIHtcbiAgICAgICAgICAgIGxldCAk\nb2xkUm91dGVyTWF0Y2ggPSB2dWVPYmouJHJvb3QuJHJvdXRlci5tYXRjaGVyLm1hdGNoO1xuICAg\nICAgICAgICAgdnVlT2JqLiRyb290LiRyb3V0ZTtcbiAgICAgICAgICAgIHZ1ZU9iai4kcm9vdC4k\ncm91dGVyLm1hdGNoZXIubWF0Y2ggPSBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAg\nIGFyZ3NbMF07XG4gICAgICAgICAgICAgIGFyZ3NbMV07XG4gICAgICAgICAgICAgIGxvZy5pbmZv\nKFtcIiRyb3V0ZXIgbWF0Y2hcIiwgYXJnc10pO1xuICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0g\nJG9sZFJvdXRlck1hdGNoLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgICAgICAgICByZXR1cm4g\ncmVzdWx0O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxvZy5zdWNjZXNzKFwi5oiQ5Yqf\n6KaG55uWIF9fdnVlX18uJHJvb3QuJHJvdXRlci5tYXRjaGVyLm1hdGNoXCIpO1xuICAgICAgICAg\nIH1cbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgfVxuICB9O1xuICBjb25zdCBUaWViYUhvbWVE\nYXRhID0ge1xuICAgIGFzeW5jIGdldFVzZXJEYXRhKCkge1xuICAgICAgdmFyIF9hMywgX2IsIF9j\nO1xuICAgICAgbGV0ICRuYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIu\naG9tZV9jYXJkX3VuYW1lX2xpbmtcIlxuICAgICAgKTtcbiAgICAgIGxldCAkc2hvd05hbWUgPSBk\nb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBcIi5ob21lX2NhcmRfdW5hbWVfbGlua1wi\nXG4gICAgICApO1xuICAgICAgJHNob3dOYW1lLmlubmVyVGV4dDtcbiAgICAgIGxldCAkYXZhdGFy\nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCJhLmhvbWVfY2FyZF9wb3J0cmFp\ndF9saW5rIGltZ1wiXG4gICAgICApO1xuICAgICAgbGV0IGF2YXRhciA9ICRhdmF0YXIuc3JjO1xu\nICAgICAgbGV0ICRmb2xsb3dCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBc\nIi5ob21lX2NhcmRfb3BlcmF0ZV9pY29uX2ZvbGxvd1wiXG4gICAgICApO1xuICAgICAgbGV0IGlz\nTGlrZSA9IGZhbHNlO1xuICAgICAgaWYgKCRmb2xsb3dCdG4pIHtcbiAgICAgICAgaXNMaWtlID0g\nJGZvbGxvd0J0bi5jbGFzc0xpc3QuY29udGFpbnMoXCJpY29uX2hpZGVcIik7XG4gICAgICB9XG4g\nICAgICBsZXQgJHBvc3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIuaG9t\nZV90YWIgLmhvbWVfdGFiX2l0ZW06bnRoLWNoaWxkKDEpIC5ob21lX3RhYl9pdGVtX251bVwiXG4g\nICAgICApO1xuICAgICAgbGV0IHBvc3RzTnVtID0gcGFyc2VJbnQoJHBvc3RzLmlubmVyVGV4dCk7\nXG4gICAgICBsZXQgJGZvcnVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIu\naG9tZV90YWIgLmhvbWVfdGFiX2l0ZW06bnRoLWNoaWxkKDIpIC5ob21lX3RhYl9pdGVtX251bVwi\nXG4gICAgICApO1xuICAgICAgbGV0IGZvcnVtTnVtID0gcGFyc2VJbnQoJGZvcnVtLmlubmVyVGV4\ndCk7XG4gICAgICBsZXQgJGZvbGxvdyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAg\nIFwiLmhvbWVfdGFiIC5ob21lX3RhYl9pdGVtOm50aC1jaGlsZCgzKSAuaG9tZV90YWJfaXRlbV9u\ndW1cIlxuICAgICAgKTtcbiAgICAgIGxldCBmb2xsb3dOdW0gPSBwYXJzZUludCgkZm9sbG93Lmlu\nbmVyVGV4dCk7XG4gICAgICBsZXQgJGZhbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAg\nICAgICBcIi5ob21lX3RhYiAuaG9tZV90YWJfaXRlbTpudGgtY2hpbGQoNCkgLmhvbWVfdGFiX2l0\nZW1fbnVtXCJcbiAgICAgICk7XG4gICAgICBsZXQgZmFuc051bSA9IHBhcnNlSW50KCRmYW5zLmlu\nbmVyVGV4dCk7XG4gICAgICBsb2cuaW5mbyhcIuivt+axglBD56uv55qE5pWw5o2uXCIpO1xuICAg\nICAgbGV0IHBjVXNlckluZm8gPSBhd2FpdCBUaWViYUhvbWVEYXRhLmdldFVzZXJEYXRhV2l0aFBD\nRG9jKCk7XG4gICAgICBpZiAoIXBjVXNlckluZm8pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAg\nfVxuICAgICAgbG9nLmluZm8oW1wi6K+35rGCUEPnq6\/nmoTmlbDmja4gPT4gXCIsIHBjVXNlcklu\nZm9dKTtcbiAgICAgIGxldCB1c2VyTmFtZSA9IG5ldyBVUkwoJG5hbWUuaHJlZikuc2VhcmNoUGFy\nYW1zLmdldChcInVuXCIpIHx8IHBjVXNlckluZm8udXNlck5hbWU7XG4gICAgICBpZiAodXRpbHMu\naXNOdWxsKHVzZXJOYW1lKSkge1xuICAgICAgICBsb2cuZXJyb3IoXCLojrflj5bnlKjmiLd1buS4\nuuepulwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbG9nLmluZm8oXCLojrfl\nj5bkuLvpobVKU09O5pWw5o2uXCIpO1xuICAgICAgbGV0IHBhbmVsVXNlckluZm8gPSBhd2FpdCBU\naWVCYUFwaS5nZXRVc2VySG9tZUluZm8oe1xuICAgICAgICB1bjogdXNlck5hbWVcbiAgICAgIH0p\nO1xuICAgICAgaWYgKCFwYW5lbFVzZXJJbmZvKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1c\nbiAgICAgIGxvZy5pbmZvKFtcIuiOt+WPluS4u+mhtUpTT07mlbDmja4gPT4gXCIsIHBhbmVsVXNl\nckluZm9dKTtcbiAgICAgIGxvZy5pbmZvKFwi6I635Y+W55So5oi3SlNPTuaVsOaNrlwiKTtcbiAg\nICAgIGxldCB1c2VySnNvbiA9IGF3YWl0IFRpZUJhQXBpLmdldFVzZXJKU09OKHVzZXJOYW1lKTtc\nbiAgICAgIGlmICghdXNlckpzb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAg\nbG9nLmluZm8oW1wi6I635Y+W55So5oi3SlNPTuaVsOaNriA9PiBcIiwgdXNlckpzb25dKTtcbiAg\nICAgIGxldCBwb3J0cmFpdCA9IHBhbmVsVXNlckluZm8ucG9ydHJhaXQucmVwbGFjZShcL1xcP3Q9\nKC4rKVwvLCBcIlwiKTtcbiAgICAgIGxldCBzZXggPSAwO1xuICAgICAgaWYgKHBhbmVsVXNlcklu\nZm8uc2V4ID09PSBcIm1hbGVcIikge1xuICAgICAgICBzZXggPSAxO1xuICAgICAgfSBlbHNlIGlm\nIChwYW5lbFVzZXJJbmZvLnNleCA9PSBcImZlbWFsZVwiKSB7XG4gICAgICAgIHNleCA9IDI7XG4g\nICAgICB9XG4gICAgICBsZXQgaW1wcmludCA9IFtdO1xuICAgICAgaWYgKHBhbmVsVXNlckluZm8u\nbmV3X2ljb25pbmZvKSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMocGFuZWxVc2VySW5mby5uZXdf\naWNvbmluZm8pLmZvckVhY2goKGljb25JdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKGljb25JdGVt\nLmljb24pIHtcbiAgICAgICAgICAgIGltcHJpbnQucHVzaChpY29uSXRlbS5pY29uKTtcbiAgICAg\nICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6\nIHVzZXJKc29uID09IG51bGwgPyB2b2lkIDAgOiB1c2VySnNvbi5pZCxcbiAgICAgICAgdGJzOiB1\nc2VySnNvbiA9PSBudWxsID8gdm9pZCAwIDogdXNlckpzb24udGJzLFxuICAgICAgICBuYW1lOiB1\nc2VyTmFtZSxcbiAgICAgICAgc2hvd05hbWU6IHBhbmVsVXNlckluZm8uc2hvd19uaWNrbmFtZSB8\nfCBwYW5lbFVzZXJJbmZvLm5hbWVfc2hvdyxcbiAgICAgICAgc2V4LFxuICAgICAgICBpcDoge1xu\nICAgICAgICAgIGxvY2F0aW9uOiAoX2EzID0gcGNVc2VySW5mby5pcCkgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9hMy5sb2NhdGlvblxuICAgICAgICB9LFxuICAgICAgICBhdmF0YXIsXG4gICAgICAgIHBv\ncnRyYWl0LFxuICAgICAgICBpbXByaW50LFxuICAgICAgICBpc192aXA6IHBhbmVsVXNlckluZm8u\ndGJfdmlwLFxuICAgICAgICBpc19saWtlOiBpc0xpa2UsXG4gICAgICAgIGlzX29ubGluZTogKChf\nYiA9IHVzZXJKc29uID09IG51bGwgPyB2b2lkIDAgOiB1c2VySnNvbi5jcmVhdG9yKSA9PSBudWxs\nID8gdm9pZCAwIDogX2IuaXNfb25saW5lKSA\/PyBmYWxzZSxcbiAgICAgICAgbGV2ZWw6IHBhbmVs\nVXNlckluZm8udGJfYWdlLFxuICAgICAgICBwb3N0SW5mbzoge1xuICAgICAgICAgIGZhbnM6IGZh\nbnNOdW0sXG4gICAgICAgICAgZm9sbG93OiBmb2xsb3dOdW0sXG4gICAgICAgICAgZm9ydW06IGZv\ncnVtTnVtIHx8ICgoX2MgPSBwY1VzZXJJbmZvID09IG51bGwgPyB2b2lkIDAgOiBwY1VzZXJJbmZv\nLnBvc3RJbmZvKSA9PSBudWxsID8gdm9pZCAwIDogX2MuZm9ydW0pIHx8IDAsXG4gICAgICAgICAg\ncmVjZWl2ZWRMaWtlczogZmFuc051bSxcbiAgICAgICAgICBwb3N0OiBwb3N0c051bVxuICAgICAg\nICB9LFxuICAgICAgICBvdGhlckRhdGE6IHtcbiAgICAgICAgICBQYW5lbFVzZXJJbmZvOiBwYW5l\nbFVzZXJJbmZvLFxuICAgICAgICAgIFVzZXJKU09OOiB1c2VySnNvbixcbiAgICAgICAgICBQQ1Vz\nZXJJbmZvOiBwY1VzZXJJbmZvXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog6I635Y+WUEPnvZHpobXkuK3nmoTnlKjmiLfmlbDmja5cbiAgICAgKlwvXG4gICAg\nYXN5bmMgZ2V0VXNlckRhdGFXaXRoUENEb2MoKSB7XG4gICAgICBsZXQgZ2V0UmVzcCA9IGF3YWl0\nIGh0dHB4LmdldCh3aW5kb3cubG9jYXRpb24uaHJlZiwge1xuICAgICAgICBoZWFkZXJzOiB7XG4g\nICAgICAgICAgQWNjZXB0OiBcInRleHRcL2h0bWwsYXBwbGljYXRpb25cL3hodG1sK3htbCxhcHBs\naWNhdGlvblwveG1sO3E9MC45LGltYWdlXC9hdmlmLGltYWdlXC93ZWJwLGltYWdlXC9hcG5nLCpc\nLyo7cT0wLjgsYXBwbGljYXRpb25cL3NpZ25lZC1leGNoYW5nZTt2PWIzO3E9MC43XCIsXG4gICAg\nICAgICAgXCJTZWMtQ2gtVWEtTW9iaWxlXCI6IFwiPzBcIixcbiAgICAgICAgICBcIlNlYy1DaC1V\nYS1QbGF0Zm9ybVwiOiBcIldpbmRvd3NcIixcbiAgICAgICAgICBcIlNlYy1GZXRjaC1EZXN0XCI6\nIFwiZG9jdW1lbnRcIixcbiAgICAgICAgICBcIlNlYy1GZXRjaC1Nb2RlXCI6IFwibmF2aWdhdGVc\nIixcbiAgICAgICAgICBcIlNlYy1GZXRjaC1TaXRlXCI6IFwibm9uZVwiLFxuICAgICAgICAgIFwi\nVXNlci1BZ2VudFwiOiB1dGlscy5nZXRSYW5kb21QQ1VBKClcbiAgICAgICAgfVxuICAgICAgfSk7\nXG4gICAgICBpZiAoIWdldFJlc3Auc3RhdHVzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1c\nbiAgICAgIGxldCBwY0RvYyA9IGRvbXV0aWxzLnBhcnNlSFRNTChnZXRSZXNwLmRhdGEucmVzcG9u\nc2VUZXh0LCB0cnVlLCB0cnVlKTtcbiAgICAgIGxldCBsZXZlbCA9IFwiMFwiO1xuICAgICAgbGV0\nIHBvc3ROdW0gPSAwO1xuICAgICAgbGV0IGlwTG9jYXRpb24gPSBcIuacquefpVwiO1xuICAgICAg\nbGV0IHVzZXJOYW1lID0gXCJcIjtcbiAgICAgIGxldCBzaG93VXNlck5hbWUgPSBwY0RvYy5xdWVy\neVNlbGVjdG9yKFwiLnVzZXJpbmZvX3VzZXJuYW1lXCIpLnRleHRDb250ZW50O1xuICAgICAgbGV0\nICRuYXZJY29uID0gcGNEb2MucXVlcnlTZWxlY3RvcihcImEubmF2X2ljb25cIik7XG4gICAgICBp\nZiAoJG5hdkljb24pIHtcbiAgICAgICAgbGV0IHVuID0gbmV3IFVSTCgkbmF2SWNvbi5ocmVmKS5z\nZWFyY2hQYXJhbXMuZ2V0KFwidW5cIik7XG4gICAgICAgIGlmICh1biA9PSBudWxsIHx8IHVuID09\nIFwiXCIpIHtcbiAgICAgICAgICB1c2VyTmFtZSA9IHNob3dVc2VyTmFtZTtcbiAgICAgICAgfSBl\nbHNlIHtcbiAgICAgICAgICB1c2VyTmFtZSA9IHVuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAg\nICBwY0RvYy5xdWVyeVNlbGVjdG9yQWxsKFwiLnVzZXJpbmZvX3VzZXJkYXRhIHNwYW5cIikuZm9y\nRWFjaCgoc3Bhbkl0ZW0pID0+IHtcbiAgICAgICAgbGV0IHNwYW5UZXh0ID0gc3Bhbkl0ZW0uaW5u\nZXJUZXh0LnRyaW0oKTtcbiAgICAgICAgaWYgKHNwYW5UZXh0LmluY2x1ZGVzKFwi5ZCn6b6EXCIp\nKSB7XG4gICAgICAgICAgbGV2ZWwgPSBzcGFuVGV4dC5yZXBsYWNlKFwvKOWQp+m+hHzlubR8Onzv\nvJopXC9nLCBcIlwiKTtcbiAgICAgICAgfSBlbHNlIGlmIChzcGFuVGV4dC5pbmNsdWRlcyhcIklQ\n5bGe5ZywXCIpKSB7XG4gICAgICAgICAgaXBMb2NhdGlvbiA9IHNwYW5UZXh0LnJlcGxhY2UoXC8o\nSVDlsZ7lnLB8OnzvvJopXC9nLCBcIlwiKTtcbiAgICAgICAgfSBlbHNlIGlmIChzcGFuVGV4dC5p\nbmNsdWRlcyhcIuWPkei0tFwiKSkge1xuICAgICAgICAgIHBvc3ROdW0gPSBwYXJzZUludChzcGFu\nVGV4dC5yZXBsYWNlKFwvKOWPkei0tHw6fO+8milcL2csIFwiXCIpKTtcbiAgICAgICAgfVxuICAg\nICAgfSk7XG4gICAgICBsZXQgcG9zdHNMaXN0ID0gW107XG4gICAgICBwY0RvYy5xdWVyeVNlbGVj\ndG9yQWxsKFwidWwubmV3X2xpc3QgPiBkaXZcIikuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAg\nICAgICAgbGV0IHBvc3RJbmZvID0ge1xuICAgICAgICAgIHVybDogbGlzdEl0ZW0ucXVlcnlTZWxl\nY3RvcihcbiAgICAgICAgICAgIFwidWwubmV3X2xpc3QgPiBkaXYgLnRpdGxlXCJcbiAgICAgICAg\nICApLmhyZWYsXG4gICAgICAgICAgdGl0bGU6IGxpc3RJdGVtLnF1ZXJ5U2VsZWN0b3IoXCJ1bC5u\nZXdfbGlzdCA+IGRpdiAudGl0bGVcIikuZ2V0QXR0cmlidXRlKFwidGl0bGVcIikgfHwgbGlzdEl0\nZW0ucXVlcnlTZWxlY3RvcihcInVsLm5ld19saXN0ID4gZGl2IC50aXRsZVwiKS5pbm5lclRleHQs\nXG4gICAgICAgICAgY29udGVudDogbGlzdEl0ZW0ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAg\nIFwidWwubmV3X2xpc3QgPiBkaXYgLm5fdHh0XCJcbiAgICAgICAgICApLmlubmVySFRNTCxcbiAg\nICAgICAgICBmb3J1bU5hbWU6IGxpc3RJdGVtLnF1ZXJ5U2VsZWN0b3IoXCJ1bC5uZXdfbGlzdCA+\nIGRpdiAubl9uYW1lXCIpLmdldEF0dHJpYnV0ZShcInRpdGxlXCIpLFxuICAgICAgICAgIGNyZWF0\nZVRpbWU6IGxpc3RJdGVtLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBcInVsLm5ld19saXN0\nID4gZGl2IC5uX3Bvc3RfdGltZVwiXG4gICAgICAgICAgKS5pbm5lclRleHQsXG4gICAgICAgICAg\nXC8qIOaaguaXtuiOt+WPluS4jeWIsCAqXC9cbiAgICAgICAgICByZXBseU51bTogMCxcbiAgICAg\nICAgICBcL1wvIOWqkuS9k+aVsOaNru+8jOS4gOiIrOaYr+WbvueJh1xuICAgICAgICAgIG1lZGlh\nTGlzdDogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGxpc3RJdGVtLnF1ZXJ5U2VsZWN0b3Io\nXCJ1bC5uZXdfbGlzdCA+IGRpdiAubl9tZWRpYVwiKSkge1xuICAgICAgICAgIGxpc3RJdGVtLnF1\nZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBcInVsLm5ld19saXN0ID4gZGl2IC5uX21lZGlh\nIGltZ1wiXG4gICAgICAgICAgKS5mb3JFYWNoKCgkaW1nKSA9PiB7XG4gICAgICAgICAgICBsZXQg\naW1nU3JjID0gJGltZy5nZXRBdHRyaWJ1dGUoXCJvcmlnaW5hbFwiKSB8fCAkaW1nLnNyYztcbiAg\nICAgICAgICAgIGlmIChpbWdTcmMpIHtcbiAgICAgICAgICAgICAgcG9zdEluZm8ubWVkaWFMaXN0\nLnB1c2goaW1nU3JjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxu\nICAgICAgICBwb3N0c0xpc3QucHVzaChwb3N0SW5mbyk7XG4gICAgICB9KTtcbiAgICAgIGxldCBz\nZXggPSAwO1xuICAgICAgbGV0ICRzZXggPSBwY0RvYy5xdWVyeVNlbGVjdG9yKFwiLnVzZXJpbmZv\nX3NleFwiKTtcbiAgICAgIGlmICgkc2V4KSB7XG4gICAgICAgIGlmICgkc2V4LmNsYXNzTmFtZS5p\nbmNsdWRlcyhcIm1hbGVcIikpIHtcbiAgICAgICAgICBzZXggPSAxO1xuICAgICAgICB9IGVsc2Ug\naWYgKCRzZXguY2xhc3NOYW1lLmluY2x1ZGVzKFwiZmVtYWxlXCIpKSB7XG4gICAgICAgICAgc2V4\nID0gMjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGF2YXRhciA9IFwiXCI7XG4gICAg\nICBsZXQgJGF2YXRhciA9IHBjRG9jLnF1ZXJ5U2VsZWN0b3IoXCIjal91c2VyaGVhZCBpbWdcIik7\nXG4gICAgICBpZiAoJGF2YXRhcikge1xuICAgICAgICBhdmF0YXIgPSAkYXZhdGFyLnNyYztcbiAg\nICAgIH1cbiAgICAgIGxldCBwZXJzb25hbFNpZ25hdHVyZSA9IFwi5pqC5pegXCI7XG4gICAgICBs\nZXQgcmVjZWl2ZWRMaWtlcyA9IDA7XG4gICAgICBsZXQgZm9sbG93ID0gMDtcbiAgICAgIGxldCBm\nb3J1bSA9IHBjRG9jLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgIFwiI2ZvcnVtX2dyb3VwX3dy\nYXAgLnUtZi1pdGVtXCJcbiAgICAgICkubGVuZ3RoO1xuICAgICAgbGV0IGZhbnMgPSAwO1xuICAg\nICAgbGV0IGlzX2xpa2UgPSBmYWxzZTtcbiAgICAgIGxldCBpc19vbmxpbmUgPSBmYWxzZTtcbiAg\nICAgIGxldCBpbXByaW50ID0gW107XG4gICAgICBwY0RvYy5xdWVyeVNlbGVjdG9yQWxsKFwiLnVz\nZXJpbmZvX2hvbm9yIGFcIikuZm9yRWFjaCgoJGhvbm9ySWNvbikgPT4ge1xuICAgICAgICB2YXIg\nX2EzO1xuICAgICAgICBsZXQgYmdTdHlsZSA9ICRob25vckljb24uc3R5bGUuYmFja2dyb3VuZDtc\nbiAgICAgICAgbGV0IHVybCA9ICgoX2EzID0gYmdTdHlsZS5tYXRjaChcL3VybFxcKCguKilcXClc\nLykpID09IG51bGwgPyB2b2lkIDAgOiBfYTNbMV0pIHx8IFwiXCI7XG4gICAgICAgIGlmICh1dGls\ncy5pc05vdE51bGwodXJsKSkge1xuICAgICAgICAgIGltcHJpbnQucHVzaCh1cmwpO1xuICAgICAg\nICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVzZXJOYW1lLFxuICAgICAg\nICBzaG93VXNlck5hbWUsXG4gICAgICAgIHNleCxcbiAgICAgICAgaXA6IHtcbiAgICAgICAgICBs\nb2NhdGlvbjogaXBMb2NhdGlvblxuICAgICAgICB9LFxuICAgICAgICBhdmF0YXIsXG4gICAgICAg\nIGxldmVsLFxuICAgICAgICBwZXJzb25hbFNpZ25hdHVyZSxcbiAgICAgICAgcG9zdEluZm86IHtc\nbiAgICAgICAgICBwb3N0OiBwb3N0TnVtLFxuICAgICAgICAgIGRhdGE6IHBvc3RzTGlzdCxcbiAg\nICAgICAgICByZWNlaXZlZExpa2VzLFxuICAgICAgICAgIGZvbGxvdyxcbiAgICAgICAgICBmb3J1\nbSxcbiAgICAgICAgICBmYW5zXG4gICAgICAgIH0sXG4gICAgICAgIGltcHJpbnQsXG4gICAgICAg\nIGlzX2xpa2UsXG4gICAgICAgIGlzX29ubGluZVxuICAgICAgfTtcbiAgICB9XG4gIH07XG4gIGNv\nbnN0IF9zZmNfbWFpbiQ5ID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBvbmVudCh7\nXG4gICAgX19uYW1lOiBcIkFwcFwiLFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIGxldCBV\nc2VyRGF0YSA9IHZ1ZS5yZWYoe30pO1xuICAgICAgdnVlLm9uTW91bnRlZChhc3luYyAoKSA9PiB7\nXG4gICAgICAgIGxldCB1c2VyRGF0YSA9IGF3YWl0IFRpZWJhSG9tZURhdGEuZ2V0VXNlckRhdGEo\nKTtcbiAgICAgICAgaWYgKHVzZXJEYXRhKSB7XG4gICAgICAgICAgbG9nLmluZm8oW1wi55So5oi3\n5L+h5oGvXCIsIHVzZXJEYXRhXSk7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihVc2VyRGF0YS52\nYWx1ZSwgdXNlckRhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcihc\nIuWKoOi9veeUqOaIt+S\/oeaBr+Wksei0pVwiKTtcbiAgICAgICAgICBRbXNnLmVycm9yKFwi5Yqg\n6L2955So5oi35L+h5oGv5aSx6LSlXCIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJl\ndHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfcm91dGVy\nX3ZpZXcgPSB2dWUucmVzb2x2ZUNvbXBvbmVudChcInJvdXRlci12aWV3XCIpO1xuICAgICAgICBy\nZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2soX2NvbXBvbmVudF9yb3V0ZXJf\ndmlldywgeyBVc2VyRGF0YTogdnVlLnVucmVmKFVzZXJEYXRhKSB9LCBudWxsLCA4LCBbXCJVc2Vy\nRGF0YVwiXSk7XG4gICAgICB9O1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IF9zZmNfbWFpbiQ4ID0g\ne307XG4gIGNvbnN0IF9ob2lzdGVkXzEkOCA9IHsgY2xhc3M6IFwicG9zdHMtaXRlbS1hdmF0YXIt\nY29udGFpbmVyXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMiQ3ID0geyBjbGFzczogXCJwb3N0cy1p\ndGVtLWF2YXRhclwiIH07XG4gIGNvbnN0IF9ob2lzdGVkXzMkNiA9IHsgY2xhc3M6IFwicG9zdHMt\naXRlbS1yaWdodC11c2VyLWluZm9cIiB9O1xuICBjb25zdCBfaG9pc3RlZF80JDYgPSB7IGNsYXNz\nOiBcInBvc3RzLWl0ZW0tdXNlci1uYW1lXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfNSQ2ID0geyBj\nbGFzczogXCJwb3N0cy1pdGVtLXVzZXItb3RoZXItaW5mb1wiIH07XG4gIGNvbnN0IF9ob2lzdGVk\nXzYkNSA9IHsgY2xhc3M6IFwicG9zdHMtaXRlbS10aXRsZVwiIH07XG4gIGNvbnN0IF9ob2lzdGVk\nXzckMyA9IHsgY2xhc3M6IFwicG9zdHMtaXRlbS1jb250ZW50XCIgfTtcbiAgY29uc3QgX2hvaXN0\nZWRfOCQzID0geyBjbGFzczogXCJwb3N0cy1pdGVtLWZvcnVtXCIgfTtcbiAgY29uc3QgX2hvaXN0\nZWRfOSQxID0geyBjbGFzczogXCJwb3N0cy1pdGVtLWZvb3RlclwiIH07XG4gIGZ1bmN0aW9uIF9z\nZmNfcmVuZGVyJDIoX2N0eCwgX2NhY2hlKSB7XG4gICAgY29uc3QgX2NvbXBvbmVudF9lbF9za2Vs\nZXRvbl9pdGVtID0gRWxTa2VsZXRvbkl0ZW07XG4gICAgY29uc3QgX2NvbXBvbmVudF9lbF9yb3cg\nPSBFbFJvdztcbiAgICBjb25zdCBfY29tcG9uZW50X2VsX2NvbCA9IEVsQ29sO1xuICAgIGNvbnN0\nIF9jb21wb25lbnRfZWxfaWNvbiA9IEVsSWNvbjtcbiAgICBjb25zdCBfY29tcG9uZW50X2VsX3Nr\nZWxldG9uID0gRWxTa2VsZXRvbjtcbiAgICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3Jl\nYXRlQmxvY2soX2NvbXBvbmVudF9lbF9za2VsZXRvbiwge1xuICAgICAgY2xhc3M6IFwicG9zdHMt\nY29udGFpbmVyLWl0ZW1cIixcbiAgICAgIGFuaW1hdGVkOiBcIlwiXG4gICAgfSwge1xuICAgICAg\ndGVtcGxhdGU6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRW\nTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xJDgsIFtcbiAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUo\nX2NvbXBvbmVudF9lbF9yb3csIHsgc3R5bGU6IHsgXCJhbGlnbi1pdGVtc1wiOiBcImNlbnRlclwi\nIH0gfSwge1xuICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAg\nICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIkNywgW1xu\nICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0\nZW0sIHtcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6IFwiaW1hZ2VcIixcbiAgICAgICAgICAg\nICAgICAgIHN0eWxlOiB7IFwid2lkdGhcIjogXCIzNXB4XCIsIFwiaGVpZ2h0XCI6IFwiMzVweFwi\nLCBcImJvcmRlci1yYWRpdXNcIjogXCI1MCVcIiB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAg\nICAgICAgICAgXSksXG4gICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZc\nIiwgX2hvaXN0ZWRfMyQ2LCBbXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9k\nZShcImRpdlwiLCBfaG9pc3RlZF80JDYsIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVW\nTm9kZShfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAg\ndmFyaWFudDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IFwid2lkdGhc\nIjogXCI4MHB4XCIsIFwiaGVpZ2h0XCI6IFwiMXJlbVwiIH1cbiAgICAgICAgICAgICAgICAgIH0p\nXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRW\nTm9kZShcImRpdlwiLCBfaG9pc3RlZF81JDYsIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVh\ndGVWTm9kZShfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0sIHtcbiAgICAgICAgICAgICAgICAg\nICAgdmFyaWFudDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IFwid2lk\ndGhcIjogXCIxMjBweFwiLCBcImhlaWdodFwiOiBcIjAuOHJlbVwiIH1cbiAgICAgICAgICAgICAg\nICAgIH0pXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAg\nIF0pLFxuICAgICAgICAgICAgXzogMVxuICAgICAgICAgIH0pXG4gICAgICAgIF0pLFxuICAgICAg\nICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzYkNSwgW1xuICAgICAg\nICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0sIHtcbiAgICAg\nICAgICAgIHZhcmlhbnQ6IFwidGV4dFwiLFxuICAgICAgICAgICAgc3R5bGU6IHsgXCJ3aWR0aFwi\nOiBcIjgwJVwiLCBcImhlaWdodFwiOiBcIjFyZW1cIiB9XG4gICAgICAgICAgfSlcbiAgICAgICAg\nXSksXG4gICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNyQz\nLCBbXG4gICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfc2tlbGV0b25faXRl\nbSwge1xuICAgICAgICAgICAgdmFyaWFudDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBzdHlsZTog\neyBcIndpZHRoXCI6IFwiMTAwJVwiLCBcImhlaWdodFwiOiBcIjUwcHhcIiB9XG4gICAgICAgICAg\nfSlcbiAgICAgICAgXSksXG4gICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwg\nX2hvaXN0ZWRfOCQzLCBbXG4gICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxf\nc2tlbGV0b25faXRlbSwge1xuICAgICAgICAgICAgdmFyaWFudDogXCJ0ZXh0XCIsXG4gICAgICAg\nICAgICBzdHlsZTogeyBcIndpZHRoXCI6IFwiMTAwcHhcIiwgXCJoZWlnaHRcIjogXCIzMHB4XCIs\nIFwiYm9yZGVyLXJhZGl1c1wiOiBcIjIwcHhcIiB9XG4gICAgICAgICAgfSlcbiAgICAgICAgXSks\nXG4gICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfOSQxLCBb\nXG4gICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfcm93LCB7IGp1c3RpZnk6\nIFwic3BhY2UtYmV0d2VlblwiIH0sIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4\nKCgpID0+IFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfY29s\nLCB7XG4gICAgICAgICAgICAgICAgc3BhbjogNixcbiAgICAgICAgICAgICAgICBjbGFzczogXCJw\nb3N0cy1pdGVtLWZvb3Rlci1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgIH0sIHtcbiAg\nICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAg\nICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9za2VsZXRvbl9pdGVtLCB7XG4gICAg\nICAgICAgICAgICAgICAgIHZhcmlhbnQ6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICBz\ndHlsZTogeyBcIndpZHRoXCI6IFwiMXJlbVwiLCBcImhlaWdodFwiOiBcIjFyZW1cIiwgXCJib3Jk\nZXItcmFkaXVzXCI6IFwiNTAlXCIgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAg\nICAgICBdKSxcbiAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgIH0pLFxuICAgICAg\nICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2wsIHtcbiAgICAgICAgICAg\nICAgICBzcGFuOiA2LFxuICAgICAgICAgICAgICAgIGNsYXNzOiBcInBvc3RzLWl0ZW0tZm9vdGVy\nLWljb24tY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgIGRl\nZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVW\nTm9kZShfY29tcG9uZW50X2VsX2ljb24sIG51bGwsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVm\nYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVh\ndGVWTm9kZShfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0sIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHZhcmlhbnQ6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6\nIHsgXCJ3aWR0aFwiOiBcIjFyZW1cIiwgXCJoZWlnaHRcIjogXCIxcmVtXCIsIFwiYm9yZGVyLXJh\nZGl1c1wiOiBcIjUwJVwiIH1cbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAg\nICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAg\nfSlcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAg\nICAgIH0pLFxuICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2ws\nIHtcbiAgICAgICAgICAgICAgICBzcGFuOiA2LFxuICAgICAgICAgICAgICAgIGNsYXNzOiBcInBv\nc3RzLWl0ZW0tZm9vdGVyLWljb24tY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgfSwge1xuICAg\nICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAg\nICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2ljb24sIG51bGwsIHtcbiAgICAgICAg\nICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAg\nICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0sIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6IFwidGV4dFwiLFxuICAgICAgICAgICAgICAg\nICAgICAgICAgc3R5bGU6IHsgXCJ3aWR0aFwiOiBcIjFyZW1cIiwgXCJoZWlnaHRcIjogXCIxcmVt\nXCIsIFwiYm9yZGVyLXJhZGl1c1wiOiBcIjUwJVwiIH1cbiAgICAgICAgICAgICAgICAgICAgICB9\nKVxuICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgXzogMVxuICAg\nICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICBf\nOiAxXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF86IDFc\nbiAgICAgICAgICB9KVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfOiAxXG4gICAgfSk7\nXG4gIH1cbiAgY29uc3QgVGVtcGxhdGVQb3N0c0l0ZW0gPSBcLyogQF9fUFVSRV9fICpcLyBfZXhw\nb3J0X3NmYyQxKF9zZmNfbWFpbiQ4LCBbW1wicmVuZGVyXCIsIF9zZmNfcmVuZGVyJDJdLCBbXCJf\nX3Njb3BlSWRcIiwgXCJkYXRhLXYtNzc0MWQwMzNcIl1dKTtcbiAgY29uc3QgX3dpdGhTY29wZUlk\nJDEgPSAobikgPT4gKHZ1ZS5wdXNoU2NvcGVJZChcImRhdGEtdi1mNTZjMzJiYVwiKSwgbiA9IG4o\nKSwgdnVlLnBvcFNjb3BlSWQoKSwgbik7XG4gIGNvbnN0IF9ob2lzdGVkXzEkNyA9IHsgY2xhc3M6\nIFwicG9zdHMtY29udGFpbmVyXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMiQ2ID0gW1wib25DbGlj\na1wiXTtcbiAgY29uc3QgX2hvaXN0ZWRfMyQ1ID0geyBjbGFzczogXCJwb3N0cy1pdGVtLWF2YXRh\nci1jb250YWluZXJcIiB9O1xuICBjb25zdCBfaG9pc3RlZF80JDUgPSB7IGNsYXNzOiBcInBvc3Rz\nLWl0ZW0tYXZhdGFyXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfNSQ1ID0geyBjbGFzczogXCJwb3N0\ncy1pdGVtLXJpZ2h0LXVzZXItaW5mb1wiIH07XG4gIGNvbnN0IF9ob2lzdGVkXzYkNCA9IHsgY2xh\nc3M6IFwicG9zdHMtaXRlbS11c2VyLW5hbWVcIiB9O1xuICBjb25zdCBfaG9pc3RlZF83JDIgPSB7\nIGNsYXNzOiBcInBvc3RzLWl0ZW0tdXNlci1vdGhlci1pbmZvXCIgfTtcbiAgY29uc3QgX2hvaXN0\nZWRfOCQyID0geyBjbGFzczogXCJwb3N0cy1pdGVtLXRpdGxlXCIgfTtcbiAgY29uc3QgX2hvaXN0\nZWRfOSA9IHsgY2xhc3M6IFwicG9zdHMtaXRlbS1jb250ZW50XCIgfTtcbiAgY29uc3QgX2hvaXN0\nZWRfMTAgPSB7XG4gICAga2V5OiAwLFxuICAgIGNsYXNzOiBcInBvc3RzLWl0ZW0tbWVkaWEtY29u\ndGFpbmVyXCJcbiAgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMTEgPSB7IGNsYXNzOiBcInBvc3RzLWl0\nZW0tZm9ydW1cIiB9O1xuICBjb25zdCBfaG9pc3RlZF8xMiA9IHsgY2xhc3M6IFwicG9zdHMtaXRl\nbS1mb290ZXJcIiB9O1xuICBjb25zdCBfaG9pc3RlZF8xMyA9IFwvKiBAX19QVVJFX18gKlwvIF93\naXRoU2NvcGVJZCQxKCgpID0+IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5jcmVhdGVFbGVtZW50Vk5v\nZGUoXCJzdmdcIiwge1xuICAgIHQ6IFwiMTcxNDY2Mzg1ODQ5MFwiLFxuICAgIHZpZXdCb3g6IFwi\nMCAwIDEwMjQgMTAyNFwiLFxuICAgIHZlcnNpb246IFwiMS4xXCIsXG4gICAgeG1sbnM6IFwiaHR0\ncDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCJcbiAgfSwgW1xuICAgIFwvKiBAX19QVVJFX18g\nKlwvIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJwYXRoXCIsIHtcbiAgICAgIGQ6IFwiTTQyMi41\nNTM2IDI3LjAzMzZ6TTQzMS44MjA4IDI1LjZhMjUuNiAyNS42IDAgMCAxIDQuMDk2IDUwLjg5Mjhj\nLTEuMDI0IDAuMjA0OC0yLjU2IDAuNDA5Ni03LjUyNjQgMS4wMjRIMTY1LjQyNzJjLTQ4LjY0IDAt\nODguNjI3MiA0Mi4wODY0LTg4LjYyNzIgOTQuNjE3NnY2ODAuNDQ4YzAgNTIuNTMxMiAzOS45ODcy\nIDk0LjYxNzYgODguNjI3MiA5NC42MTc2SDg1OC42MjRjNDguNjQgMCA4OC42MjcyLTQyLjA4NjQg\nODguNjI3Mi05NC42MTc2VjQ1MS41ODRhMjUuNiAyNS42IDAgMCAxIDUxLjIgMHY0MDAuOTk4NGMw\nIDgwLjIzMDQtNjIuMzEwNCAxNDUuODE3Ni0xMzkuODI3MiAxNDUuODE3NkgxNjUuMzc2Qzg3Ljkx\nMDQgOTk4LjQgMjUuNiA5MzIuODY0IDI1LjYgODUyLjU4MjRWMTcyLjEzNDRDMjUuNiA5MS45MDQg\nODcuOTEwNCAyNi4zMTY4IDE2NS40MjcyIDI2LjMxNjhsMjU5LjE3NDQgMC4xNTM2QTMwLjQxMjgg\nMzAuNDEyOCAwIDAgMSA0MzEuODIwOCAyNS42eiBtNTMxLjQ1NiA2OC41NTY4YTI0LjgzMiAyNC44\nMzIgMCAwIDEgMTguNDMyIDI5LjMzNzYgMjUuOTA3MiAyNS45MDcyIDAgMCAxLTYuMTQ0IDEyLjhM\nODE0LjQ4OTYgMzYzLjAwOGEyNS42IDI1LjYgMCAwIDEtNDEuNzc5Mi0yOS42OTZsMTI4LjI1Ni0x\nODAuNTMxMkM2MzQuNTIxNiAyMDQuMzkwNCA0MDkuMDg4IDQyMy42Mjg4IDM4Ny4yNzY4IDY4OC4x\nMjhhMjUuNiAyNS42IDAgMCAxLTUxLjA0NjQtNC4xOTg0YzIyLjUyOC0yNzMuNzE1MiAyNDIuMzgw\nOC01MDAuODM4NCA1MTAuNDEyOC01NzEuMjM4NGwtMTU2LjA1NzYtNDYuNjQzMmEyNS42IDI1LjYg\nMCAwIDEgMTQuNjk0NC00OS4wNDk2bDI1Ny45OTY4IDc3LjE1ODR6TTQzNy4yNDggNzYuMDgzMmwt\nMC41NjMyIDAuMjA0OGEyLjgxNiAyLjgxNiAwIDAgMCAwLjU2MzItMC4yMDQ4elwiLFxuICAgICAg\nXCJwLWlkXCI6IFwiNjAwNFwiXG4gICAgfSlcbiAgXSwgLTEpKTtcbiAgY29uc3QgX2hvaXN0ZWRf\nMTQgPSBcLyogQF9fUFVSRV9fICpcLyBfd2l0aFNjb3BlSWQkMSgoKSA9PiBcLyogQF9fUFVSRV9f\nICpcLyB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwic3ZnXCIsIHtcbiAgICB0OiBcIjE3MTQ2NjM5\nNzQzNTNcIixcbiAgICB2aWV3Qm94OiBcIjAgMCAxMDI0IDEwMjRcIixcbiAgICB2ZXJzaW9uOiBc\nIjEuMVwiLFxuICAgIHhtbG5zOiBcImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiXG4g\nIH0sIFtcbiAgICBcLyogQF9fUFVSRV9fICpcLyB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwicGF0\naFwiLCB7XG4gICAgICBkOiBcIk0xNTcuNTY4IDc1MS4yOTZjLTExLjAwOC0xOC42ODgtMTguMjE5\nLTMxLjIyMS0yMS44MDMtMzcuOTFBNDI0Ljg4NSA0MjQuODg1IDAgMCAxIDg1LjMzMyA1MTJjMC0y\nMzUuNjM3IDE5MS4wMy00MjYuNjY3IDQyNi42NjctNDI2LjY2N1M5MzguNjY3IDI3Ni4zNjMgOTM4\nLjY2NyA1MTIgNzQ3LjYzNyA5MzguNjY3IDUxMiA5MzguNjY3YTQyNC43NzkgNDI0Ljc3OSAwIDAg\nMS0yMTkuMTI1LTYwLjUwMkEyNzg2LjU2IDI3ODYuNTYgMCAwIDAgMjcyLjgyIDg2Ni40bC0xMDQu\nNDA1IDI4LjQ4Yy0yMy44OTMgNi41MDctNDUuODAzLTE1LjQxMy0zOS4yODUtMzkuMjk2bDI4LjQz\nNy0xMDQuMjg4eiBtNjUuMzAxIDMuNzg3bC0xNy4yNTggNjMuMzA2IDYzLjMwNi0xNy4yNThhMzIg\nMzIgMCAwIDEgMjQuNTIzIDMuMjEgNDUxNS44NCA0NTE1Ljg0IDAgMCAxIDMyLjM1MiAxOC45NDRB\nMzYwLjc5IDM2MC43OSAwIDAgMCA1MTIgODc0LjY2N2MyMDAuMjk5IDAgMzYyLjY2Ny0xNjIuMzY4\nIDM2Mi42NjctMzYyLjY2N1M3MTIuMjk5IDE0OS4zMzMgNTEyIDE0OS4zMzMgMTQ5LjMzMyAzMTEu\nNzAxIDE0OS4zMzMgNTEyYzAgNjAuNTg3IDE0Ljg0OCAxMTguOTU1IDQyLjgyNyAxNzEuMTM2IDMu\nNzEyIDYuOTEyIDEyLjkyOCAyMi44MjcgMjcuMzcgNDcuMjMyYTMyIDMyIDAgMCAxIDMuMzQgMjQu\nNzE1eiBtMTQ1Ljk5NS03MC43NzRhMzIgMzIgMCAxIDEgNDAuOTE3LTQ5LjIwNUExNTkuMTkgMTU5\nLjE5IDAgMCAwIDUxMiA2NzJjMzcuODg4IDAgNzMuNjc1LTEzLjE3MyAxMDIuMTg3LTM2Ljg4NWEz\nMiAzMiAwIDAgMSA0MC45MTcgNDkuMjE2QTIyMy4xNzkgMjIzLjE3OSAwIDAgMSA1MTIgNzM2YTIy\nMy4xNzkgMjIzLjE3OSAwIDAgMS0xNDMuMTM2LTUxLjY5elwiLFxuICAgICAgXCJwLWlkXCI6IFwi\nMTA1ODhcIlxuICAgIH0pXG4gIF0sIC0xKSk7XG4gIGNvbnN0IF9ob2lzdGVkXzE1ID0gXC8qIEBf\nX1BVUkVfXyAqXC8gX3dpdGhTY29wZUlkJDEoKCkgPT4gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmNy\nZWF0ZUVsZW1lbnRWTm9kZShcInN2Z1wiLCB7XG4gICAgdDogXCIxNzE0NjY0MDE0MDM0XCIsXG4g\nICAgdmlld0JveDogXCIwIDAgMTAyNCAxMDI0XCIsXG4gICAgdmVyc2lvbjogXCIxLjFcIixcbiAg\nICB4bWxuczogXCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIlxuICB9LCBbXG4gICAg\nXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInBhdGhcIiwge1xuICAg\nICAgZDogXCJNODU3LjI4IDM0NC45OTJoLTI2NC44MzJjMTIuNTc2LTQ0LjI1NiAxOC45NDQtODMu\nNTg0IDE4Ljk0NC0xMTguMjA4IDAtNzguNTYtNzEuODA4LTE1My43OTItMTQwLjU0NC0xNDMuODA4\nLTYwLjYwOCA4LjgtODkuNTM2IDU5LjkwNC04OS41MzYgMTI1LjUzNnY1OS4yOTZjMCA3Ni4wNjQt\nNTguMjA4IDE0MC45MjgtMTMyLjIyNCAxNDguMDY0bC0xMTcuNzI4LTAuMTkyQTY3LjM2IDY3LjM2\nIDAgMCAwIDY0IDQ4My4wNFY4NzJjMCAzNy4yMTYgMzAuMTQ0IDY3LjM2IDY3LjM2IDY3LjM2aDY1\nMi4xOTJhMTAyLjcyIDEwMi43MiAwIDAgMCAxMDAuOTI4LTgzLjU4NGw3My43MjgtMzg4Ljk2YTEw\nMi43MiAxMDIuNzIgMCAwIDAtMTAwLjkyOC0xMjEuODI0ek0xMjggODcyVjQ4My4wNGMwLTEuODU2\nIDEuNTA0LTMuMzYgMy4zNi0zLjM2SDIwOHYzOTUuNjhIMTMxLjM2QTMuMzYgMy4zNiAwIDAgMSAx\nMjggODcyeiBtNzY3LjMyOC00MTcuMDg4bC03My43MjggMzg4Ljk2YTM4LjcyIDM4LjcyIDAgMCAx\nLTM4LjA0OCAzMS40ODhIMjcyVjQ3Ni44NjRhMjEzLjMxMiAyMTMuMzEyIDAgMCAwIDE3My4zMTIt\nMjA5LjA4OFYyMDguNTEyYzAtMzcuNTY4IDEyLjA2NC01OC45MTIgMzQuNzItNjIuMTc2IDI3LjA0\nLTMuOTM2IDY3LjM2IDM4LjMzNiA2Ny4zNiA4MC40OCAwIDM3LjMxMi05LjUwNCA4NC0yOC44NjQg\nMTM5LjcxMmEzMiAzMiAwIDAgMCAzMC4yNCA0Mi40OTZoMzA4LjUxMmEzOC43MiAzOC43MiAwIDAg\nMSAzOC4wNDggNDUuODg4elwiLFxuICAgICAgXCJwLWlkXCI6IFwiMTE1OTlcIlxuICAgIH0pXG4g\nIF0sIC0xKSk7XG4gIGNvbnN0IF9ob2lzdGVkXzE2ID0ge1xuICAgIGtleTogMixcbiAgICBzdHls\nZTogeyBcInRleHQtYWxpZ25cIjogXCJjZW50ZXJcIiB9XG4gIH07XG4gIGNvbnN0IF9zZmNfbWFp\nbiQ3ID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBvbmVudCh7XG4gICAgX19uYW1l\nOiBcIlBvc3RzXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIFVzZXJEYXRhOiB7fVxuICAgIH0sXG4g\nICAgc2V0dXAoX19wcm9wcykge1xuICAgICAgY29uc3QgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAg\nbGV0IHBvc3RzSW5mb0xpc3QgPSB2dWUucmVmKFtdKTtcbiAgICAgIGxldCBzaG93SXNMb2FkaW5n\nID0gdnVlLnJlZih0cnVlKTtcbiAgICAgIGxldCBpc0FzeW5jTG9hZEVuZCA9IHZ1ZS5yZWYoZmFs\nc2UpO1xuICAgICAgbGV0IHNob3dMb2FkaW5nRW5kID0gdnVlLnJlZihmYWxzZSk7XG4gICAgICBs\nZXQgJGxvYWRpbmcgPSB2dWUucmVmKG51bGwpO1xuICAgICAgbGV0IHBhZ2VOdW1iZXIgPSB2dWUu\ncmVmKDEpO1xuICAgICAgbGV0IG9ic2VydmUgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVu\ndHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAg\nICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgbG9hZE1vcmUoKTtc\nbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSwge1xuICAgICAgICByb290OiBudWxs\nLFxuICAgICAgICByb290TWFyZ2luOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAgICAgICB0aHJl\nc2hvbGQ6IDAuMlxuICAgICAgfSk7XG4gICAgICBjb25zdCBzdG9wV2F0Y2hMb2FkaW5nID0gdnVl\nLndhdGNoKCRsb2FkaW5nLCAoKSA9PiB7XG4gICAgICAgIGlmICgkbG9hZGluZy52YWx1ZSkge1xu\nICAgICAgICAgIG9ic2VydmUub2JzZXJ2ZSgkbG9hZGluZy52YWx1ZS4kZWwpO1xuICAgICAgICB9\nXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGNhbmNsZUxvYWRNb3JlT2JzZXJ2ZSA9ICgpID0+IHtc\nbiAgICAgICAgc3RvcFdhdGNoTG9hZGluZygpO1xuICAgICAgICBvYnNlcnZlLmRpc2Nvbm5lY3Qo\nKTtcbiAgICAgICAgc2hvd0lzTG9hZGluZy52YWx1ZSA9IGZhbHNlO1xuICAgICAgICBzaG93TG9h\nZGluZ0VuZC52YWx1ZSA9IHRydWU7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwi56e76Zmk5rua5Yqo\n55uR5ZCsXCIpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZVBvc3RJdGVtQ2xpY2sgPSAo\ncG9zdHNJdGVtKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHBvc3RzSXRlbS51cmwsIFwiX2Js\nYW5rXCIpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGhhbmRsZVBvc3RGb3J1bUJ1dHRvbkNsaWNr\nID0gZnVuY3Rpb24ocG9zdHNJdGVtKSB7XG4gICAgICAgIGxldCB1cmwgPSBUaWViYVVybEFwaS5n\nZXRGb3J1bShwb3N0c0l0ZW0uZm9ydW1OYW1lKTtcbiAgICAgICAgd2luZG93Lm9wZW4odXJsLCBc\nIl9ibGFua1wiKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBsb2FkTW9yZSA9IGFzeW5jICgpID0+\nIHtcbiAgICAgICAgdmFyIF9hMywgX2I7XG4gICAgICAgIHNob3dJc0xvYWRpbmcudmFsdWUgPSBm\nYWxzZTtcbiAgICAgICAgbGV0IGlzRmlyc3RMb2FkID0gcGFnZU51bWJlci52YWx1ZSA9PT0gMTtc\nbiAgICAgICAgaWYgKGlzRmlyc3RMb2FkKSB7XG4gICAgICAgICAgaXNBc3luY0xvYWRFbmQudmFs\ndWUgPSBmYWxzZTtcbiAgICAgICAgICBwb3N0c0luZm9MaXN0LnZhbHVlID0gW107XG4gICAgICAg\nIH1cbiAgICAgICAgbGV0IHVzZXJQb3N0c0xpc3QgPSBhd2FpdCBUaWVCYUFwaS5nZXRVc2VyUG9z\ndHMocHJvcHMuVXNlckRhdGEubmFtZSwgcGFnZU51bWJlci52YWx1ZSk7XG4gICAgICAgIGxvZy5p\nbmZvKFtcIuiOt+WPluWIsOeahOW4luWtkFwiLCB1c2VyUG9zdHNMaXN0XSk7XG4gICAgICAgIGlm\nICh1c2VyUG9zdHNMaXN0KSB7XG4gICAgICAgICAgaWYgKGlzRmlyc3RMb2FkICYmIHVzZXJQb3N0\nc0xpc3QuZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGxldCB1c2VyUENQb3N0c0xp\nc3QgPSBhd2FpdCBUaWViYUhvbWVEYXRhLmdldFVzZXJEYXRhV2l0aFBDRG9jKCk7XG4gICAgICAg\nICAgICBsb2cuaW5mbyhbXCLojrflj5ZQQ+S4quS6uuS4u+mhteeahOW4luWtkFwiLCB1c2VyUENQ\nb3N0c0xpc3RdKTtcbiAgICAgICAgICAgIGlmICgoX2EzID0gdXNlclBDUG9zdHNMaXN0ID09IG51\nbGwgPyB2b2lkIDAgOiB1c2VyUENQb3N0c0xpc3QucG9zdEluZm8pID09IG51bGwgPyB2b2lkIDAg\nOiBfYTMuZGF0YSkge1xuICAgICAgICAgICAgICBwb3N0c0luZm9MaXN0LnZhbHVlID0gcG9zdHNJ\nbmZvTGlzdC52YWx1ZS5jb25jYXQodXNlclBDUG9zdHNMaXN0LnBvc3RJbmZvLmRhdGEpO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAodXNlclBvc3RzTGlzdC5kYXRhKSB7XG4g\nICAgICAgICAgICBwb3N0c0luZm9MaXN0LnZhbHVlID0gcG9zdHNJbmZvTGlzdC52YWx1ZS5jb25j\nYXQodXNlclBvc3RzTGlzdC5kYXRhKTtcbiAgICAgICAgICAgIHBhZ2VOdW1iZXIudmFsdWUrKztc\nbiAgICAgICAgICB9XG4gICAgICAgICAgc2hvd0lzTG9hZGluZy52YWx1ZSA9IGZhbHNlO1xuICAg\nICAgICAgIGlmICghdXNlclBvc3RzTGlzdC5oYXNfbW9yZSkge1xuICAgICAgICAgICAgY2FuY2xl\nTG9hZE1vcmVPYnNlcnZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgIGxldCB1c2VyUENQb3N0c0xpc3QgPSBhd2FpdCBUaWViYUhvbWVEYXRhLmdldFVzZXJEYXRh\nV2l0aFBDRG9jKCk7XG4gICAgICAgICAgbG9nLmluZm8oW1wi6I635Y+WUEPkuKrkurrkuLvpobXn\nmoTluJblrZBcIiwgdXNlclBDUG9zdHNMaXN0XSk7XG4gICAgICAgICAgaWYgKChfYiA9IHVzZXJQ\nQ1Bvc3RzTGlzdCA9PSBudWxsID8gdm9pZCAwIDogdXNlclBDUG9zdHNMaXN0LnBvc3RJbmZvKSA9\nPSBudWxsID8gdm9pZCAwIDogX2IuZGF0YSkge1xuICAgICAgICAgICAgcG9zdHNJbmZvTGlzdC52\nYWx1ZSA9IHBvc3RzSW5mb0xpc3QudmFsdWUuY29uY2F0KHVzZXJQQ1Bvc3RzTGlzdC5wb3N0SW5m\nby5kYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FuY2xlTG9hZE1vcmVPYnNlcnZlKCk7\nXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRmlyc3RMb2FkKSB7XG4gICAgICAgICAgaXNBc3lu\nY0xvYWRFbmQudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHJldHVy\nbiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfZW1wdHkg\nPSBFbEVtcHR5O1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2F2YXRhciA9IEVsQXZhdGFy\nO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX3RleHQgPSBFbFRleHQ7XG4gICAgICAgIGNv\nbnN0IF9jb21wb25lbnRfZWxfcm93ID0gRWxSb3c7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRf\nZWxfaW1hZ2UgPSBFbEltYWdlO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2J1dHRvbiA9\nIEVsQnV0dG9uO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2ljb24gPSBFbEljb247XG4g\nICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfY29sID0gRWxDb2w7XG4gICAgICAgIGNvbnN0IF9j\nb21wb25lbnRfZWxfYmFja3RvcCA9IEVsQmFja3RvcDtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQsIG51bGwsIFtcbiAg\nICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzEkNywgW1xu\nICAgICAgICAgICAgdnVlLnVucmVmKGlzQXN5bmNMb2FkRW5kKSAmJiB2dWUudW5yZWYocG9zdHNJ\nbmZvTGlzdCkubGVuZ3RoID09PSAwID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2Nr\nKF9jb21wb25lbnRfZWxfZW1wdHksIHtcbiAgICAgICAgICAgICAga2V5OiAwLFxuICAgICAgICAg\nICAgICBkZXNjcmlwdGlvbjogXCLluJblrZDov5jlnKjphZ3phb\/kuK1cIlxuICAgICAgICAgICAg\nfSkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcIlwiLCB0cnVlKSxcbiAgICAgICAgICAgICh2\ndWUub3BlbkJsb2NrKHRydWUpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKHZ1ZS5GcmFnbWVudCwg\nbnVsbCwgdnVlLnJlbmRlckxpc3QodnVlLnVucmVmKHBvc3RzSW5mb0xpc3QpLCAocG9zdEl0ZW0p\nID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVs\nZW1lbnRCbG9jayhcImRpdlwiLCB7XG4gICAgICAgICAgICAgICAgY2xhc3M6IFwicG9zdHMtY29u\ndGFpbmVyLWl0ZW1cIixcbiAgICAgICAgICAgICAgICBvbkNsaWNrOiAoJGV2ZW50KSA9PiBoYW5k\nbGVQb3N0SXRlbUNsaWNrKHBvc3RJdGVtKVxuICAgICAgICAgICAgICB9LCBbXG4gICAgICAgICAg\nICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zJDUsIFtcbiAg\nICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3JvdywgeyBzdHls\nZTogeyBcImFsaWduLWl0ZW1zXCI6IFwiY2VudGVyXCIgfSB9LCB7XG4gICAgICAgICAgICAgICAg\nICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICB2\ndWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzQkNSwgW1xuICAgICAgICAg\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfYXZhdGFyLCB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDM1LFxuICAgICAgICAgICAgICAgICAgICAg\nICAgICBzcmM6IF9jdHguVXNlckRhdGEuYXZhdGFyXG4gICAgICAgICAgICAgICAgICAgICAgICB9\nLCBudWxsLCA4LCBbXCJzcmNcIl0pXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAg\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF81\nJDUsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJk\naXZcIiwgX2hvaXN0ZWRfNiQ0LCB2dWUudG9EaXNwbGF5U3RyaW5nKF9jdHguVXNlckRhdGEuc2hv\nd05hbWUpLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5v\nZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNyQyLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZ1\nZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3RleHQsIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICB0eXBlOiBcImluZm9cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl\nOiBcInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUodnVlLnRvRGlzcGxheVN0cmlu\nZyhwb3N0SXRlbS5mb3J1bU5hbWUpICsgXCLlkKcgXCIgKyB2dWUudG9EaXNwbGF5U3RyaW5nKHBv\nc3RJdGVtLmNyZWF0ZVRpbWUpLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDJcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgfSwgMTAyNClcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAg\nICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgIF86\nIDJcbiAgICAgICAgICAgICAgICAgIH0sIDEwMjQpXG4gICAgICAgICAgICAgICAgXSksXG4gICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF84JDIs\nIHZ1ZS50b0Rpc3BsYXlTdHJpbmcocG9zdEl0ZW0udGl0bGUpLCAxKSxcbiAgICAgICAgICAgICAg\nICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzksIHZ1ZS50b0Rpc3Bs\nYXlTdHJpbmcocG9zdEl0ZW0uY29udGVudCksIDEpLFxuICAgICAgICAgICAgICAgIHBvc3RJdGVt\nLm1lZGlhTGlzdC5sZW5ndGggPiAwID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1l\nbnRCbG9jayhcImRpdlwiLCBfaG9pc3RlZF8xMCwgW1xuICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfcm93LCB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xp\nY2s6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gdnVlLndpdGhNb2RpZmllcnMoKCkgPT4ge1xu\nICAgICAgICAgICAgICAgICAgICB9LCBbXCJzdG9wXCJdKSlcbiAgICAgICAgICAgICAgICAgIH0s\nIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAg\nICAgICAgICAgICAgICAgICAgICh2dWUub3BlbkJsb2NrKHRydWUpLCB2dWUuY3JlYXRlRWxlbWVu\ndEJsb2NrKHZ1ZS5GcmFnbWVudCwgbnVsbCwgdnVlLnJlbmRlckxpc3QocG9zdEl0ZW0ubWVkaWFM\naXN0LCAobWVkaWEsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g\ndnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2soX2NvbXBvbmVudF9lbF9pbWFnZSwge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBcIndpZHRoXCI6IFwiMTAwcHhcIiwg\nXCJoZWlnaHRcIjogXCIxMDBweFwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzog\nbWVkaWEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiem9vbS1yYXRlXCI6IDEsXG4gICAg\nICAgICAgICAgICAgICAgICAgICAgIFwibWF4LXNjYWxlXCI6IDcsXG4gICAgICAgICAgICAgICAg\nICAgICAgICAgIFwibWluLXNjYWxlXCI6IDAuMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nXCJwcmV2aWV3LXNyYy1saXN0XCI6IHBvc3RJdGVtLm1lZGlhTGlzdCxcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgXCJpbml0aWFsLWluZGV4XCI6IGluZGV4LFxuICAgICAgICAgICAgICAgICAg\nICAgICAgICBmaXQ6IFwiY292ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgbnVsbCwg\nOCwgW1wic3JjXCIsIFwicHJldmlldy1zcmMtbGlzdFwiLCBcImluaXRpYWwtaW5kZXhcIl0pO1xu\nICAgICAgICAgICAgICAgICAgICAgIH0pLCAyNTYpKVxuICAgICAgICAgICAgICAgICAgICBdKSxc\nbiAgICAgICAgICAgICAgICAgICAgXzogMlxuICAgICAgICAgICAgICAgICAgfSwgMTAyNClcbiAg\nICAgICAgICAgICAgICBdKSkgOiB2dWUuY3JlYXRlQ29tbWVudFZOb2RlKFwiXCIsIHRydWUpLFxu\nICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRf\nMTEsIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2J1\ndHRvbiwge1xuICAgICAgICAgICAgICAgICAgICBpY29uOiB2dWUudW5yZWYoaWNvbnNWdWUuQ2hy\nb21lRmlsbGVkKSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJzbWFsbFwiLFxuICAgICAg\nICAgICAgICAgICAgICBzdHlsZTogeyBcImNvbG9yXCI6IFwiIzYxNEZDMFwiLCBcImJvcmRlci1j\nb2xvclwiOiBcIiM2MTRGQzBcIiB9LFxuICAgICAgICAgICAgICAgICAgICBwbGFpbjogXCJcIixc\nbiAgICAgICAgICAgICAgICAgICAgcm91bmQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgIG9u\nQ2xpY2s6IFtcbiAgICAgICAgICAgICAgICAgICAgICAoJGV2ZW50KSA9PiBoYW5kbGVQb3N0Rm9y\ndW1CdXR0b25DbGljayhwb3N0SXRlbSksXG4gICAgICAgICAgICAgICAgICAgICAgX2NhY2hlWzFd\nIHx8IChfY2FjaGVbMV0gPSB2dWUud2l0aE1vZGlmaWVycygoKSA9PiB7XG4gICAgICAgICAgICAg\nICAgICAgICAgfSwgW1wic3RvcFwiXSkpXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAg\nICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgo\nKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUodnVlLnRv\nRGlzcGxheVN0cmluZyhwb3N0SXRlbS5mb3J1bU5hbWUpICsgXCLlkKdcIiwgMSlcbiAgICAgICAg\nICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgIF86IDJcbiAgICAgICAgICAgICAg\nICAgIH0sIDEwMzIsIFtcImljb25cIiwgXCJvbkNsaWNrXCJdKVxuICAgICAgICAgICAgICAgIF0p\nLFxuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0\nZWRfMTIsIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2Vs\nX3JvdywgeyBqdXN0aWZ5OiBcInNwYWNlLWJldHdlZW5cIiB9LCB7XG4gICAgICAgICAgICAgICAg\nICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICB2\ndWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2wsIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIHNwYW46IDYsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJwb3N0cy1pdGVt\nLWZvb3Rlci1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9pY29uLCBu\ndWxsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgo\nKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2hvaXN0ZWRfMTNcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBf\nOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAg\nICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAg\nICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9l\nbF9jb2wsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW46IDYsXG4gICAgICAgICAgICAg\nICAgICAgICAgICBjbGFzczogXCJwb3N0cy1pdGVtLWZvb3Rlci1pY29uLWNvbnRhaW5lclwiXG4g\nICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs\ndDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9pY29uLCBudWxsLCB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgX2hvaXN0ZWRfMTRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgICAg\nICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVGV4dFZOb2RlKFwi\nIFwiICsgdnVlLnRvRGlzcGxheVN0cmluZyhwb3N0SXRlbS5yZXBseU51bSksIDEpXG4gICAgICAg\nICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF86IDJcbiAgICAg\nICAgICAgICAgICAgICAgICB9LCAxMDI0KSxcbiAgICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2wsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNw\nYW46IDYsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJwb3N0cy1pdGVtLWZvb3Rl\nci1pY29uLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9pY29uLCBudWxsLCB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4g\nW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2hvaXN0ZWRfMTVcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4g\nICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICBdKSxc\nbiAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAgICB9KVxu\nICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgXzogMlxuICAgICAg\nICAgICAgICAgICAgfSwgMTAyNClcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICBd\nLCA4LCBfaG9pc3RlZF8yJDYpO1xuICAgICAgICAgICAgfSksIDI1NikpLFxuICAgICAgICAgICAg\ndnVlLnVucmVmKHNob3dJc0xvYWRpbmcpID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJs\nb2NrKFRlbXBsYXRlUG9zdHNJdGVtLCB7XG4gICAgICAgICAgICAgIGtleTogMSxcbiAgICAgICAg\nICAgICAgcmVmX2tleTogXCIkbG9hZGluZ1wiLFxuICAgICAgICAgICAgICByZWY6ICRsb2FkaW5n\nXG4gICAgICAgICAgICB9LCBudWxsLCA1MTIpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJc\nIiwgdHJ1ZSksXG4gICAgICAgICAgICB2dWUudW5yZWYoc2hvd0xvYWRpbmdFbmQpID8gKHZ1ZS5v\ncGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCBfaG9pc3RlZF8xNiwg\nXCLlt7Lnu4\/liLDlupXkuoZ+XCIpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1\nZSlcbiAgICAgICAgICBdKSxcbiAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9l\nbF9iYWNrdG9wLCB7XG4gICAgICAgICAgICByaWdodDogMTAsXG4gICAgICAgICAgICBib3R0b206\nIDUwXG4gICAgICAgICAgfSlcbiAgICAgICAgXSwgNjQpO1xuICAgICAgfTtcbiAgICB9XG4gIH0p\nO1xuICBjb25zdCBQb3N0cyA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjJDEoX3NmY19t\nYWluJDcsIFtbXCJfX3Njb3BlSWRcIiwgXCJkYXRhLXYtZjU2YzMyYmFcIl1dKTtcbiAgY29uc3Qg\nX3NmY19tYWluJDYgPSB7fTtcbiAgY29uc3QgX2hvaXN0ZWRfMSQ2ID0geyBzdHlsZTogeyBcInBh\nZGRpbmdcIjogXCIxMHB4XCIgfSB9O1xuICBjb25zdCBfaG9pc3RlZF8yJDUgPSB7IHN0eWxlOiB7\nIFwiZGlzcGxheVwiOiBcImZsZXhcIiwgXCJhbGlnbi1pdGVtc1wiOiBcImNlbnRlclwiLCBcImp1\nc3RpZnktaXRlbXNcIjogXCJzcGFjZS1iZXR3ZWVuXCIsIFwianVzdGlmeS1jb250ZW50XCI6IFwi\nc3BhY2UtYmV0d2VlblwiIH0gfTtcbiAgZnVuY3Rpb24gX3NmY19yZW5kZXIkMShfY3R4LCBfY2Fj\naGUpIHtcbiAgICBjb25zdCBfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0gPSBFbFNrZWxldG9u\nSXRlbTtcbiAgICBjb25zdCBfY29tcG9uZW50X2VsX3NrZWxldG9uID0gRWxTa2VsZXRvbjtcbiAg\nICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKHZ1ZS5GcmFn\nbWVudCwgbnVsbCwgdnVlLnJlbmRlckxpc3QoMywgKGkpID0+IHtcbiAgICAgIHJldHVybiB2dWUu\nY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9za2VsZXRvbiwge1xuICAgICAgICBzdHlsZTogeyBc\nImJhY2tncm91bmQtY29sb3JcIjogXCIjZmZmZmZmXCIgfSxcbiAgICAgICAgYW5pbWF0ZWQ6IFwi\nXCJcbiAgICAgIH0sIHtcbiAgICAgICAgdGVtcGxhdGU6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAg\nICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzEkNiwgW1xu\nICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yJDUs\nIFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfc2tlbGV0b25f\naXRlbSwge1xuICAgICAgICAgICAgICAgIHZhcmlhbnQ6IFwidGV4dFwiLFxuICAgICAgICAgICAg\nICAgIHN0eWxlOiB7IFwid2lkdGhcIjogXCJjYWxjKCA1MCUgLSA1cHggKVwiLCBcImhlaWdodFwi\nOiBcIjM1cHhcIiB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB2dWUuY3JlYXRl\nVk5vZGUoX2NvbXBvbmVudF9lbF9za2VsZXRvbl9pdGVtLCB7XG4gICAgICAgICAgICAgICAgdmFy\naWFudDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJ3aWR0aFwiOiBcImNh\nbGMoIDUwJSAtIDVweCApXCIsIFwiaGVpZ2h0XCI6IFwiMzVweFwiIH1cbiAgICAgICAgICAgICAg\nfSlcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIF86\nIDFcbiAgICAgIH0pO1xuICAgIH0pLCA2NCk7XG4gIH1cbiAgY29uc3QgVGVtcGxhdGVGb2xsb3dG\nb3J1bSA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjJDEoX3NmY19tYWluJDYsIFtbXCJy\nZW5kZXJcIiwgX3NmY19yZW5kZXIkMV1dKTtcbiAgY29uc3QgVGllYmFIb21lQXBpID0ge1xuICAg\nIFwvKipcbiAgICAgKiDojrflj5bnlKjmiLfnmoTlhbPms6jnmoTlkKfkv6Hmga9cbiAgICAgKiBV\nc2VyLUFnZW506buY6K6k5Li656e75Yqo56uvXG4gICAgICogQHBhcmFtIHVuIOeUqOaIt+WQje+8\njOS4jeaYr3Nob3dfbmlja25hbWV8bmFtZXNob3dcbiAgICAgKiBAcGFyYW0gcG4g56yseHjpobVc\nbiAgICAgKlwvXG4gICAgYXN5bmMgZ2V0Q29uY2Vybih1biwgcG4gPSAxKSB7XG4gICAgICBsZXQg\nZ2JrRW5jb2RlciA9IG5ldyB1dGlscy5HQktFbmNvZGVyKCk7XG4gICAgICB1biA9IGdia0VuY29k\nZXIuZW5jb2RlKHVuKTtcbiAgICAgIGxldCBnZXRSZXNwID0gYXdhaXQgaHR0cHguZ2V0KFxuICAg\nICAgICBgaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwvaG9tZVwvY29uY2Vybj91bj0ke3VufSZp\nc19hamF4PTEmbHA9aG9tZV9tYWluX2NvbmNlcm5fbW9yZSZwbj0ke3BufWAsXG4gICAgICAgIHtc\nbiAgICAgICAgICBmZXRjaDogdHJ1ZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgaWYgKCFn\nZXRSZXNwLnN0YXR1cykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgZGF0\nYSA9IHV0aWxzLnRvSlNPTihnZXRSZXNwLmRhdGEucmVzcG9uc2VUZXh0KTtcbiAgICAgIGlmIChk\nYXRhLm5vICE9IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWxz\nLmlzTnVsbChkYXRhLmRhdGEuY29udGVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxu\nICAgICAgbGV0ICRkb2MgPSBkb211dGlscy5wYXJzZUhUTUwoZGF0YS5kYXRhLmNvbnRlbnQsIHRy\ndWUsIHRydWUpO1xuICAgICAgbGV0IHJlc3VsdERhdGFMaXN0ID0gW107XG4gICAgICAkZG9jLnF1\nZXJ5U2VsZWN0b3JBbGwoXCIuaG9tZV9jb25jZXJuX2ZvcnVtX2l0ZW1cIikuZm9yRWFjaCgoJGxp\nKSA9PiB7XG4gICAgICAgIGxldCAkdXJsID0gJGxpLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAg\nXCJhLmhvbWVfY29uY2Vybl9mb3J1bV9pdGVtX2xpbmtcIlxuICAgICAgICApO1xuICAgICAgICBs\nZXQgdXJsID0gJHVybC5ocmVmO1xuICAgICAgICBsZXQgZm9ydW1OYW1lID0gJHVybC5nZXRBdHRy\naWJ1dGUoXCJkYXRhLXN0YXJ0LWFwcC1wYXJhbVwiKTtcbiAgICAgICAgbGV0ICRsZXZlbCA9ICRs\naS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgIFwiLmhvbWVfY29uY2Vybl9mb3J1bV9pbmZvIC5s\nZXZlbFwiXG4gICAgICAgICk7XG4gICAgICAgIGxldCBsZXZlbCA9IHBhcnNlSW50KCRsZXZlbC5p\nbm5lclRleHQpO1xuICAgICAgICBpZiAoaXNOYU4obGV2ZWwpKSB7XG4gICAgICAgICAgbGV2ZWwg\nPSAwO1xuICAgICAgICB9XG4gICAgICAgIGxldCAkaW50cm8gPSAkbGkucXVlcnlTZWxlY3Rvcihc\nbiAgICAgICAgICBcIi5ob21lX2NvbmNlcm5fZm9ydW1faW50cm9cIlxuICAgICAgICApO1xuICAg\nICAgICBsZXQgaW50cm8gPSAkaW50cm8uaW5uZXJUZXh0O1xuICAgICAgICByZXN1bHREYXRhTGlz\ndC5wdXNoKHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgZm9ydW1OYW1lLFxuICAgICAgICAg\nIGxldmVsLFxuICAgICAgICAgIGludHJvXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBs\nZXQgcmVzdWx0ID0ge1xuICAgICAgICBkYXRhOiByZXN1bHREYXRhTGlzdCxcbiAgICAgICAgaGFz\nX21vcmU6IGRhdGEuZGF0YS5wYWdlLmhhc19tb3JlXG4gICAgICB9O1xuICAgICAgbG9nLmluZm8o\nW1wi6I635Y+W55So5oi355qE5YWz5rOo55qE5ZCn5L+h5oGvXCIsIHJlc3VsdF0pO1xuICAgICAg\ncmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDojrflj5bnlKjmiLflhbPm\ns6jnmoTkurpcbiAgICAgKiBAcGFyYW0gdW4g55So5oi35ZCN77yM5LiN5pivc2hvd19uaWNrbmFt\nZXxuYW1lc2hvd1xuICAgICAqIEBwYXJhbSBvZmZzZXQg5qC55o2ucGFnZV9zaXpl55qE5YGP56e7\n77yM5LiA6Iis5pivcGFnZV9zaXpl55qEbuWAjVxuICAgICAqIEBwYXJhbSBwYWdlX3NpemUg6ZmQ\n5Yi26L+U5Zue55qE5pWw6YePXG4gICAgICogQHJldHVybnNcbiAgICAgKlwvXG4gICAgYXN5bmMg\nZ2V0Rm9sbG93KHVuLCBvZmZzZXQgPSAxMiwgcGFnZV9zaXplID0gMTIpIHtcbiAgICAgIGxldCBn\nZXRSZXNwID0gYXdhaXQgaHR0cHguZ2V0KFxuICAgICAgICBgaHR0cHM6XC9cL3RpZWJhLmJhaWR1\nLmNvbVwvbW9cL3FcL2ZvbGxvdz91bj0ke3VufSZscD1ob21lX21haW5fZm9sbG93X21vcmUmaXNf\nYWpheD0xJm9mZnNldD0ke29mZnNldH0mcm49JHtwYWdlX3NpemV9YCxcbiAgICAgICAge1xuICAg\nICAgICAgIGZldGNoOiB0cnVlXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBpZiAoIWdldFJl\nc3Auc3RhdHVzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCBkYXRhID0g\ndXRpbHMudG9KU09OKGdldFJlc3AuZGF0YS5yZXNwb25zZVRleHQpO1xuICAgICAgaWYgKGRhdGEu\nbm8gIT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodXRpbHMuaXNO\ndWxsKGRhdGEuZGF0YS5jb250ZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAg\nICBsZXQgJGRvYyA9IGRvbXV0aWxzLnBhcnNlSFRNTChkYXRhLmRhdGEuY29udGVudCwgdHJ1ZSwg\ndHJ1ZSk7XG4gICAgICBsZXQgcmVzdWx0RGF0YUxpc3QgPSBbXTtcbiAgICAgICRkb2MucXVlcnlT\nZWxlY3RvckFsbChcIi51bG9hZGVyX2dyaWRfaXRlbV91c2VyXCIpLmZvckVhY2goKCR1cmwpID0+\nIHtcbiAgICAgICAgbGV0IHVybCA9ICR1cmwuaHJlZjtcbiAgICAgICAgbGV0ICR1c2VyTmFtZSA9\nICR1cmwucXVlcnlTZWxlY3RvcihcIi51bG9hZGVyX3VzZXJfbmFtZVwiKTtcbiAgICAgICAgbGV0\nIHVzZXJOYW1lID0gJHVzZXJOYW1lLmlubmVyVGV4dDtcbiAgICAgICAgbGV0ICRhdmF0YXIgPSAk\ndXJsLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgXCIudWxvYWRlcl91c2VyX3BvcnRyYWl0XCJc\nbiAgICAgICAgKTtcbiAgICAgICAgbGV0IGF2YXRhciA9ICRhdmF0YXIuc3R5bGUuYmFja2dyb3Vu\nZEltYWdlLnJlcGxhY2UoXC9edXJsXFwoXCJcLywgXCJcIikucmVwbGFjZShcL1wiXFwpJFwvLCBc\nIlwiKTtcbiAgICAgICAgbGV0IHBvcnRyYWl0ID0gbmV3IFVSTChhdmF0YXIpLnBhdGhuYW1lLnNw\nbGl0KFwiXC9cIikucG9wKCk7XG4gICAgICAgIHJlc3VsdERhdGFMaXN0LnB1c2goe1xuICAgICAg\nICAgIHVybCxcbiAgICAgICAgICB1c2VyTmFtZSxcbiAgICAgICAgICBhdmF0YXIsXG4gICAgICAg\nICAgcG9ydHJhaXRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGxldCByZXN1bHQgPSB7\nXG4gICAgICAgIGRhdGE6IHJlc3VsdERhdGFMaXN0LFxuICAgICAgICBoYXNfbmV4dDogZGF0YS5k\nYXRhLnBhZ2UuaGFzX25leHRcbiAgICAgIH07XG4gICAgICBsb2cuaW5mbyhbXCLojrflj5bnlKjm\niLflhbPms6jnmoTkurpcIiwgcmVzdWx0XSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOiOt+WPlueUqOaIt+eahOeyieS4nVxuICAgICAqIEBwYXJhbSB1\nbiDnlKjmiLflkI3vvIzkuI3mmK9zaG93X25pY2tuYW1lfG5hbWVzaG93XG4gICAgICogQHBhcmFt\nIG9mZnNldCDmoLnmja5wYWdlX3NpemXnmoTlgY\/np7vvvIzkuIDoiKzmmK9wYWdlX3NpemXnmoRu\n5YCNXG4gICAgICogQHBhcmFtIHBhZ2Vfc2l6ZSDpmZDliLbov5Tlm57nmoTmlbDph49cbiAgICAg\nKiBAcmV0dXJuc1xuICAgICAqXC9cbiAgICBhc3luYyBnZXRGYW5zKHVuLCBvZmZzZXQgPSAxMiwg\ncGFnZV9zaXplID0gMTIpIHtcbiAgICAgIGxldCBnZXRSZXNwID0gYXdhaXQgaHR0cHguZ2V0KFxu\nICAgICAgICBgaHR0cHM6XC9cL3RpZWJhLmJhaWR1LmNvbVwvbW9cL3FcL2ZhbnM\/dW49JHt1bn0m\nbHA9aG9tZV9tYWluX2ZhbnNfbW9yZSZpc19hamF4PTEmb2Zmc2V0PSR7b2Zmc2V0fSZybj0ke3Bh\nZ2Vfc2l6ZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgZmV0Y2g6IHRydWVcbiAgICAgICAgfVxu\nICAgICAgKTtcbiAgICAgIGlmICghZ2V0UmVzcC5zdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuO1xu\nICAgICAgfVxuICAgICAgbGV0IGRhdGEgPSB1dGlscy50b0pTT04oZ2V0UmVzcC5kYXRhLnJlc3Bv\nbnNlVGV4dCk7XG4gICAgICBpZiAoZGF0YS5ubyAhPSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAg\nICAgIH1cbiAgICAgIGlmICh1dGlscy5pc051bGwoZGF0YS5kYXRhLmNvbnRlbnQpKSB7XG4gICAg\nICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGxldCAkZG9jID0gZG9tdXRpbHMucGFyc2VIVE1M\nKGRhdGEuZGF0YS5jb250ZW50LCB0cnVlLCB0cnVlKTtcbiAgICAgIGxldCByZXN1bHREYXRhTGlz\ndCA9IFtdO1xuICAgICAgJGRvYy5xdWVyeVNlbGVjdG9yQWxsKFwiLnVsb2FkZXJfZ3JpZF9pdGVt\nX3VzZXJcIikuZm9yRWFjaCgoJHVybCkgPT4ge1xuICAgICAgICBsZXQgdXJsID0gJHVybC5ocmVm\nO1xuICAgICAgICBsZXQgJHVzZXJOYW1lID0gJHVybC5xdWVyeVNlbGVjdG9yKFwiLnVsb2FkZXJf\ndXNlcl9uYW1lXCIpO1xuICAgICAgICBsZXQgdXNlck5hbWUgPSAkdXNlck5hbWUuaW5uZXJUZXh0\nO1xuICAgICAgICBsZXQgJGF2YXRhciA9ICR1cmwucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBc\nIi51bG9hZGVyX3VzZXJfcG9ydHJhaXRcIlxuICAgICAgICApO1xuICAgICAgICBsZXQgYXZhdGFy\nID0gJGF2YXRhci5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UucmVwbGFjZShcL151cmxcXChcIlwvLCBc\nIlwiKS5yZXBsYWNlKFwvXCJcXCkkXC8sIFwiXCIpO1xuICAgICAgICBsZXQgcG9ydHJhaXQgPSBu\nZXcgVVJMKGF2YXRhcikucGF0aG5hbWUuc3BsaXQoXCJcL1wiKS5wb3AoKTtcbiAgICAgICAgcmVz\ndWx0RGF0YUxpc3QucHVzaCh7XG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHVzZXJOYW1lLFxu\nICAgICAgICAgIGF2YXRhcixcbiAgICAgICAgICBwb3J0cmFpdFxuICAgICAgICB9KTtcbiAgICAg\nIH0pO1xuICAgICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgICAgZGF0YTogcmVzdWx0RGF0YUxpc3Qs\nXG4gICAgICAgIGhhc19uZXh0OiBkYXRhLmRhdGEucGFnZS5oYXNfbmV4dFxuICAgICAgfTtcbiAg\nICAgIGxvZy5pbmZvKFtcIuiOt+WPlueUqOaIt+eahOeyieS4nVwiLCByZXN1bHRdKTtcbiAgICAg\nIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9O1xuICBjb25zdCBfaG9pc3RlZF8xJDUgPSB7IGNs\nYXNzOiBcImZvbGxvdy1mb3J1bS1jb250YWluZXJcIiB9O1xuICBjb25zdCBfaG9pc3RlZF8yJDQg\nPSBbXCJvbkNsaWNrXCJdO1xuICBjb25zdCBfaG9pc3RlZF8zJDQgPSB7IGNsYXNzOiBcImZvbGxv\ndy1mb3J1bS1pdGVtLXJpZ2h0LWNvbnRhaW5lclwiIH07XG4gIGNvbnN0IF9ob2lzdGVkXzQkNCA9\nIHsgY2xhc3M6IFwiZm9sbG93LWZvcnVtLWl0ZW0tbmFtZVwiIH07XG4gIGNvbnN0IF9ob2lzdGVk\nXzUkNCA9IFtcImRhdGEtbGV2ZWxcIl07XG4gIGNvbnN0IF9ob2lzdGVkXzYkMyA9IHtcbiAgICBr\nZXk6IDIsXG4gICAgc3R5bGU6IHsgXCJ0ZXh0LWFsaWduXCI6IFwiY2VudGVyXCIgfVxuICB9O1xu\nICBjb25zdCBfc2ZjX21haW4kNSA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25l\nbnQoe1xuICAgIF9fbmFtZTogXCJGb2xsb3dGb3J1bVwiLFxuICAgIHByb3BzOiB7XG4gICAgICBV\nc2VyRGF0YToge31cbiAgICB9LFxuICAgIHNldHVwKF9fcHJvcHMpIHtcbiAgICAgIHZ1ZS51c2VD\nc3NWYXJzKChfY3R4KSA9PiAoe1xuICAgICAgICBcIjVmZjFjNDMyXCI6IHZ1ZS51bnJlZihsZXZl\nbEJnQ29sb3IpLFxuICAgICAgICBcIjc3ZTU5NTZjXCI6IHZ1ZS51bnJlZihsZXZlbENvbG9yKSxc\nbiAgICAgICAgXCJmNDJmYmExMFwiOiB2dWUudW5yZWYobGV2ZWxDb2xvcjBfMyksXG4gICAgICAg\nIFwiZjQyZjliZmNcIjogdnVlLnVucmVmKGxldmVsQ29sb3I0XzkpLFxuICAgICAgICBcImE3MzZh\nYjUwXCI6IHZ1ZS51bnJlZihsZXZlbENvbG9yMTBfMTUpLFxuICAgICAgICBcImE3MzEzNmQ2XCI6\nIHZ1ZS51bnJlZihsZXZlbENvbG9yMTZfMTgpXG4gICAgICB9KSk7XG4gICAgICBjb25zdCBwcm9w\ncyA9IF9fcHJvcHM7XG4gICAgICBsZXQgc2hvd0lzTG9hZGluZyA9IHZ1ZS5yZWYodHJ1ZSk7XG4g\nICAgICBsZXQgaXNBc3luY0xvYWRFbmQgPSB2dWUucmVmKGZhbHNlKTtcbiAgICAgIGxldCBpc0xv\nYWRpbmdFbmQgPSB2dWUucmVmKGZhbHNlKTtcbiAgICAgIGxldCAkbG9hZGluZyA9IHZ1ZS5yZWYo\nbnVsbCk7XG4gICAgICBsZXQgcGFnZU51bWJlciA9IHZ1ZS5yZWYoMSk7XG4gICAgICBsZXQgZm9s\nbG93Rm9ydW0gPSB2dWUucmVmKFtdKTtcbiAgICAgIGxldCBpc0VtcHR5ID0gdnVlLnJlZihmYWxz\nZSk7XG4gICAgICBsZXQgY29sb3JDb252ZXJzaW9uID0gbmV3IHV0aWxzLkNvbG9yQ29udmVyc2lv\nbigpO1xuICAgICAgbGV0IGNvbG9yTGlnaHRMZXZlbCA9IDAuNztcbiAgICAgIGxldCBsZXZlbENv\nbG9yID0gdnVlLnJlZihcIiNmZmZmZmZcIik7XG4gICAgICBsZXQgbGV2ZWxDb2xvcjBfMyA9IHZ1\nZS5yZWYoXCIjNWRjN2EwXCIpO1xuICAgICAgbGV0IGxldmVsQ29sb3I0XzkgPSB2dWUucmVmKFwi\nIzZCQTdGRlwiKTtcbiAgICAgIGxldCBsZXZlbENvbG9yMTBfMTUgPSB2dWUucmVmKFwiI0Y5QjM0\nMVwiKTtcbiAgICAgIGxldCBsZXZlbENvbG9yMTZfMTggPSB2dWUucmVmKFwiI0ZCQTcxQVwiKTtc\nbiAgICAgIGxldCBsZXZlbEJnQ29sb3IgPSB2dWUucmVmKFwiIzAwMDAwMFwiKTtcbiAgICAgIHZ1\nZS5yZWYoXG4gICAgICAgIGNvbG9yQ29udmVyc2lvbi5nZXRMaWdodENvbG9yKGxldmVsQ29sb3Iw\nXzMudmFsdWUsIGNvbG9yTGlnaHRMZXZlbClcbiAgICAgICk7XG4gICAgICB2dWUucmVmKFxuICAg\nICAgICBjb2xvckNvbnZlcnNpb24uZ2V0TGlnaHRDb2xvcihsZXZlbENvbG9yNF85LnZhbHVlLCBj\nb2xvckxpZ2h0TGV2ZWwpXG4gICAgICApO1xuICAgICAgdnVlLnJlZihcbiAgICAgICAgY29sb3JD\nb252ZXJzaW9uLmdldExpZ2h0Q29sb3IobGV2ZWxDb2xvcjEwXzE1LnZhbHVlLCBjb2xvckxpZ2h0\nTGV2ZWwpXG4gICAgICApO1xuICAgICAgdnVlLnJlZihcbiAgICAgICAgY29sb3JDb252ZXJzaW9u\nLmdldExpZ2h0Q29sb3IobGV2ZWxDb2xvcjE2XzE4LnZhbHVlLCBjb2xvckxpZ2h0TGV2ZWwpXG4g\nICAgICApO1xuICAgICAgbGV0IG9ic2VydmUgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4g\nICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkg\nPT4ge1xuICAgICAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAg\nICAgIGxvYWRNb3JlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0s\nXG4gICAgICAgIHtcbiAgICAgICAgICByb290OiBudWxsLFxuICAgICAgICAgIHJvb3RNYXJnaW46\nIFwiMHB4IDBweCAwcHggMHB4XCIsXG4gICAgICAgICAgdGhyZXNob2xkOiAwLjJcbiAgICAgICAg\nfVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHN0b3BXYXRjaExvYWRpbmcgPSB2dWUud2F0Y2goJGxv\nYWRpbmcsICgpID0+IHtcbiAgICAgICAgaWYgKCRsb2FkaW5nLnZhbHVlKSB7XG4gICAgICAgICAg\naWYgKCRsb2FkaW5nLnZhbHVlLiRlbCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgICAg\nIG9ic2VydmUub2JzZXJ2ZSgkbG9hZGluZy52YWx1ZS4kZWwpO1xuICAgICAgICAgIH0gZWxzZSBp\nZiAoJGxvYWRpbmcudmFsdWUuJGVsLm5leHRFbGVtZW50U2libGluZyBpbnN0YW5jZW9mIEVsZW1l\nbnQpIHtcbiAgICAgICAgICAgIG9ic2VydmUub2JzZXJ2ZSgkbG9hZGluZy52YWx1ZS4kZWwubmV4\ndEVsZW1lbnRTaWJsaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAg\nICAgY29uc3QgY2FuY2xlTG9hZE1vcmVPYnNlcnZlID0gKCkgPT4ge1xuICAgICAgICBzdG9wV2F0\nY2hMb2FkaW5nKCk7XG4gICAgICAgIG9ic2VydmUuZGlzY29ubmVjdCgpO1xuICAgICAgICBzaG93\nSXNMb2FkaW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIGlzTG9hZGluZ0VuZC52YWx1ZSA9IHRy\ndWU7XG4gICAgICAgIGxvZy5pbmZvKFtcIuenu+mZpOa7muWKqOebkeWQrFwiXSk7XG4gICAgICB9\nO1xuICAgICAgY29uc3QgaGFuZGxlRm9ydW1JdGVtQ2xpY2sgPSAoZm9ydW1JdGVtKSA9PiB7XG4g\nICAgICAgIHdpbmRvdy5vcGVuKGZvcnVtSXRlbS51cmwsIFwiX2JsYW5rXCIpO1xuICAgICAgfTtc\nbiAgICAgIGNvbnN0IGxvYWRNb3JlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBzaG93SXNMb2Fk\naW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIGxldCBpc0ZpcnN0TG9hZCA9IHBhZ2VOdW1iZXIu\ndmFsdWUgPT09IDE7XG4gICAgICAgIGlmIChpc0ZpcnN0TG9hZCkge1xuICAgICAgICAgIGlzQXN5\nbmNMb2FkRW5kLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgZm9sbG93Rm9ydW0udmFsdWUgPSBb\nXTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgY29uY2VybkRhdGEgPSBhd2FpdCBUaWViYUhvbWVB\ncGkuZ2V0Q29uY2VybihcbiAgICAgICAgICBwcm9wcy5Vc2VyRGF0YS5uYW1lLFxuICAgICAgICAg\nIHBhZ2VOdW1iZXIudmFsdWVcbiAgICAgICAgKTtcbiAgICAgICAgc2hvd0lzTG9hZGluZy52YWx1\nZSA9IHRydWU7XG4gICAgICAgIGlmIChjb25jZXJuRGF0YSkge1xuICAgICAgICAgIGlmIChjb25j\nZXJuRGF0YS5kYXRhKSB7XG4gICAgICAgICAgICBmb2xsb3dGb3J1bS52YWx1ZSA9IGZvbGxvd0Zv\ncnVtLnZhbHVlLmNvbmNhdChjb25jZXJuRGF0YS5kYXRhKTtcbiAgICAgICAgICAgIHBhZ2VOdW1i\nZXIudmFsdWUrKztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFjb25jZXJuRGF0YS5oYXNf\nbW9yZSkge1xuICAgICAgICAgICAgY2FuY2xlTG9hZE1vcmVPYnNlcnZlKCk7XG4gICAgICAgICAg\nfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5pbmZvKFtcIuiOt+WPluWFs+azqOea\nhOWQp+aVsOaNruWksei0pVwiXSk7XG4gICAgICAgICAgaWYgKGlzRmlyc3RMb2FkKSB7XG4gICAg\nICAgICAgICBpc0FzeW5jTG9hZEVuZC52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBjYW5jbGVM\nb2FkTW9yZU9ic2VydmUoKTtcbiAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSB0cnVlO1xuICAg\nICAgICAgICAgaXNMb2FkaW5nRW5kLnZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAg\nICB9XG4gICAgICAgIGxvZy5pbmZvKFtcIuiOt+WPluWIsOeahOWFs+azqOeahOWQp1wiLCBjb25j\nZXJuRGF0YV0pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4g\nICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfZW1wdHkgPSBFbEVtcHR5O1xuICAgICAgICBjb25z\ndCBfY29tcG9uZW50X2VsX2F2YXRhciA9IEVsQXZhdGFyO1xuICAgICAgICBjb25zdCBfY29tcG9u\nZW50X2VsX3RleHQgPSBFbFRleHQ7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfcm93ID0g\nRWxSb3c7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfYmFja3RvcCA9IEVsQmFja3RvcDtc\nbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhc\nImRpdlwiLCBfaG9pc3RlZF8xJDUsIFtcbiAgICAgICAgICB2dWUudW5yZWYoaXNBc3luY0xvYWRF\nbmQpICYmIHZ1ZS51bnJlZihmb2xsb3dGb3J1bSkubGVuZ3RoID09PSAwID8gKHZ1ZS5vcGVuQmxv\nY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfZW1wdHksIHtcbiAgICAgICAgICAg\nIGtleTogMCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIui\/meS9jeiAgemTgeW3suWwhuWF\ns+azqOeahOWQp+iuvuS4uumakOiXj1wiXG4gICAgICAgICAgfSkpIDogdnVlLmNyZWF0ZUNvbW1l\nbnRWTm9kZShcIlwiLCB0cnVlKSxcbiAgICAgICAgICAhdnVlLnVucmVmKGlzRW1wdHkpID8gKHZ1\nZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfcm93LCB7XG4gICAg\nICAgICAgICBrZXk6IDEsXG4gICAgICAgICAgICBjbGFzczogXCJmb2xsb3ctZm9ydW0tbGlzdC1j\nb250YWluZXJcIlxuICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRo\nQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgKHZ1ZS5vcGVuQmxvY2sodHJ1ZSksIHZ1ZS5jcmVh\ndGVFbGVtZW50QmxvY2sodnVlLkZyYWdtZW50LCBudWxsLCB2dWUucmVuZGVyTGlzdCh2dWUudW5y\nZWYoZm9sbG93Rm9ydW0pLCAoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1\ncm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIHtcbiAg\nICAgICAgICAgICAgICAgIGNsYXNzOiBcImZvbGxvdy1mb3J1bS1pdGVtXCIsXG4gICAgICAgICAg\nICAgICAgICBzcGFuOiAyNCxcbiAgICAgICAgICAgICAgICAgIGtleTogaW5kZXgsXG4gICAgICAg\nICAgICAgICAgICBvbkNsaWNrOiAoJGV2ZW50KSA9PiBoYW5kbGVGb3J1bUl0ZW1DbGljayhpdGVt\nKVxuICAgICAgICAgICAgICAgIH0sIFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9k\nZShfY29tcG9uZW50X2VsX2F2YXRhciwge1xuICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJm\nb2xsb3ctZm9ydW0tYXZhdGFyXCIsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IDM1LFxuICAg\nICAgICAgICAgICAgICAgICBzcmM6IFwiXC9cL3RiMi5iZHN0YXRpYy5jb21cL3RiXC9tb2JpbGVc\nL3NnbG9iYWxcL2xheW91dFwvY2xhc3NpY1wvaWNvblwvYXBwbGUtdG91Y2gtaWNvbi0xNDR4MTQ0\nLXByZWNvbXBvc2VkXzA4YTkxYjMucG5nXCJcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zJDQs\nIFtcbiAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBf\naG9pc3RlZF80JDQsIHZ1ZS50b0Rpc3BsYXlTdHJpbmcoaXRlbS5mb3J1bU5hbWUpLCAxKSxcbiAg\nICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwge1xu\nICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcImZvbGxvdy1mb3J1bS1pdGVtLWluZm9cIixc\nbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImluZm9cIixcbiAgICAgICAgICAgICAgICAg\nICAgICBzaXplOiBcInNtYWxsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgdHJ1bmNhdGVkOiBc\nIlwiXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWZh\ndWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVGV4dFZOb2RlKHZ1ZS50b0Rpc3BsYXlTdHJpbmcoaXRlbS5pbnRybyksIDEpXG4gICAgICAg\nICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgXzogMlxuICAgICAgICAg\nICAgICAgICAgICB9LCAxMDI0KVxuICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAg\nICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICAgICAg\nICAgIGNsYXNzOiBcImZvbGxvdy1mb3J1bS1pdGVtLWxldmVsXCIsXG4gICAgICAgICAgICAgICAg\nICAgIFwiZGF0YS1sZXZlbFwiOiBpdGVtLmxldmVsXG4gICAgICAgICAgICAgICAgICB9LCB2dWUu\ndG9EaXNwbGF5U3RyaW5nKGl0ZW0ubGV2ZWwpLCA5LCBfaG9pc3RlZF81JDQpXG4gICAgICAgICAg\nICAgICAgXSwgOCwgX2hvaXN0ZWRfMiQ0KTtcbiAgICAgICAgICAgICAgfSksIDEyOCkpLFxuICAg\nICAgICAgICAgICB2dWUudW5yZWYoc2hvd0lzTG9hZGluZykgPyAodnVlLm9wZW5CbG9jaygpLCB2\ndWUuY3JlYXRlQmxvY2soVGVtcGxhdGVGb2xsb3dGb3J1bSwge1xuICAgICAgICAgICAgICAgIGtl\neTogMCxcbiAgICAgICAgICAgICAgICByZWZfa2V5OiBcIiRsb2FkaW5nXCIsXG4gICAgICAgICAg\nICAgICAgcmVmOiAkbG9hZGluZ1xuICAgICAgICAgICAgICB9LCBudWxsLCA1MTIpKSA6IHZ1ZS5j\ncmVhdGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1ZSlcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgIH0pKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1\nZSksXG4gICAgICAgICAgdnVlLnVucmVmKGlzTG9hZGluZ0VuZCkgPyAodnVlLm9wZW5CbG9jaygp\nLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKFwiZGl2XCIsIF9ob2lzdGVkXzYkMywgXCLlt7Lnu4\/l\niLDlupXkuoZ+XCIpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1ZSksXG4gICAg\nICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfYmFja3RvcCwge1xuICAgICAgICAg\nICAgcmlnaHQ6IDEwLFxuICAgICAgICAgICAgYm90dG9tOiA1MFxuICAgICAgICAgIH0pXG4gICAg\nICAgIF0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBGb2xsb3dGb3J1bSA9IFwv\nKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjJDEoX3NmY19tYWluJDUsIFtbXCJfX3Njb3BlSWRc\nIiwgXCJkYXRhLXYtMDFiMmNlYmZcIl1dKTtcbiAgY29uc3QgX3dpdGhTY29wZUlkID0gKG4pID0+\nICh2dWUucHVzaFNjb3BlSWQoXCJkYXRhLXYtNDkyMjJiMmVcIiksIG4gPSBuKCksIHZ1ZS5wb3BT\nY29wZUlkKCksIG4pO1xuICBjb25zdCBfaG9pc3RlZF8xJDQgPSBcLyogQF9fUFVSRV9fICpcLyBf\nd2l0aFNjb3BlSWQoKCkgPT4gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmNyZWF0ZUVsZW1lbnRWTm9k\nZShcImRpdlwiLCB7IGNsYXNzOiBcInVzZXItaW5mby1iZ1wiIH0sIFtcbiAgICBcLyogQF9fUFVS\nRV9fICpcLyB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwidXNlci1p\nbmZvLWJnLW1haW5cIiB9KVxuICBdLCAtMSkpO1xuICBjb25zdCBfaG9pc3RlZF8yJDMgPSBcLyog\nQF9fUFVSRV9fICpcLyBfd2l0aFNjb3BlSWQoKCkgPT4gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmNy\nZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcInVzZXItYXZhdGFyLXRvcC1iYWNr\nZ3JvdW5kXCIgfSwgbnVsbCwgLTEpKTtcbiAgY29uc3QgX2hvaXN0ZWRfMyQzID0gW1wiZGF0YS1z\nZXhcIl07XG4gIGNvbnN0IF9ob2lzdGVkXzQkMyA9IHtcbiAgICBrZXk6IDEsXG4gICAgc3R5bGU6\nIHsgXCJkaXNwbGF5XCI6IFwiZmxleFwiLCBcImFsaWduLWl0ZW1zXCI6IFwiY2VudGVyXCIsIFwi\ndGV4dC13cmFwXCI6IFwibm93cmFwXCIgfVxuICB9O1xuICBjb25zdCBfaG9pc3RlZF81JDMgPSBc\nLyogQF9fUFVSRV9fICpcLyBfd2l0aFNjb3BlSWQoKCkgPT4gXC8qIEBfX1BVUkVfXyAqXC8gdnVl\nLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBudWxsLCBcIlRh55qE5Y2w6K6wXCIsIC0xKSk7\nXG4gIGNvbnN0IF9zZmNfbWFpbiQ0ID0gXC8qIEBfX1BVUkVfXyAqXC8gdnVlLmRlZmluZUNvbXBv\nbmVudCh7XG4gICAgX19uYW1lOiBcIkhvbWVcIixcbiAgICBwcm9wczoge1xuICAgICAgVXNlckRh\ndGE6IHt9XG4gICAgfSxcbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBwcm9wcyA9\nIF9fcHJvcHM7XG4gICAgICBsZXQgbG9hZFN0YXR1cyA9IHZ1ZS5yZWYoZmFsc2UpO1xuICAgICAg\nbGV0IGFjdGl2ZU5hbWUgPSB2dWUucmVmKFwi5biW5a2QXCIpO1xuICAgICAgY29uc3QgY29weUlk\nRXZlbnQgPSAoKSA9PiB7XG4gICAgICAgIHV0aWxzLnNldENsaXAocHJvcHMuVXNlckRhdGEuaWQp\nLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAg\nIFFtc2cuc3VjY2VzcyhcIuWkjeWItuaIkOWKn1wiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAg\nICAgICAgICAgUW1zZy5lcnJvcihcIuWkjeWItuWksei0pVwiKTtcbiAgICAgICAgICB9XG4gICAg\nICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNoYW5nZUZvbGxvd0J0blN0YXR1cyA9ICh0\naW1lID0gNWUzKSA9PiB7XG4gICAgICAgIGxldCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+\nIHtcbiAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5qX2hvbWVfY2FyZF9y\nZXF1ZXN0X2NhcmQ6aGFzKC5pY29uX2hpZGUpXCIpKSB7XG4gICAgICAgICAgICBwcm9wcy5Vc2Vy\nRGF0YS5pc19saWtlID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJv\ncHMuVXNlckRhdGEuaXNfbGlrZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMjAw\nKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY2xlYXJJbnRlcnZhbChp\nbnRlcnZhbCk7XG4gICAgICAgIH0sIHRpbWUpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNsaWNr\nRm9sbG93QnRuRXZlbnQgPSAoKSA9PiB7XG4gICAgICAgIGxldCBzZWxlY3RvciA9IFwiLmpfaG9t\nZV9jYXJkX3JlcXVlc3RfY2FyZDpub3QoOmhhcyguaWNvbl9oaWRlKSlcIjtcbiAgICAgICAgbGV0\nICRidG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcbiAgICAgICAgJGJ0bi5j\nbGljaygpO1xuICAgICAgICBjaGFuZ2VGb2xsb3dCdG5TdGF0dXMoKTtcbiAgICAgIH07XG4gICAg\nICBjb25zdCBjbGlja0NhbmNlbEZvbGxvd0J0bkV2ZW50ID0gKCkgPT4ge1xuICAgICAgICBsZXQg\nc2VsZWN0b3IgPSBcIi5qX2hvbWVfY2FyZF9yZXF1ZXN0X2NhcmQ6aGFzKC5pY29uX2hpZGUpXCI7\nXG4gICAgICAgIGxldCAkYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4g\nICAgICAgICRidG4uY2xpY2soKTtcbiAgICAgICAgdXRpbHMud2FpdE5vZGUoXCIuZGlhX3dyYXBw\nZXJcIikudGhlbigoJGVsZSkgPT4ge1xuICAgICAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAgICAg\nICAgJGVsZSxcbiAgICAgICAgICAgIFwiY2xpY2tcIixcbiAgICAgICAgICAgIFwiLmRpYV9idG53\ncmFwcGVyIGFcIixcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICBjaGFu\nZ2VGb2xsb3dCdG5TdGF0dXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAg\nICAgICB9KTtcbiAgICAgIH07XG4gICAgICBjb25zdCBjbGlja01lc3NhZ2VCdG5FdmVudCA9ICgp\nID0+IHtcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5qX2hvbWVfY2FyZF9jaGF0\nIFwiKS5jbGljaygpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNsaWNrSXBIZWxwRXZlbnQgPSAo\nKSA9PiB7XG4gICAgICAgIEVsZW1lbnRQbHVzLkVsTWVzc2FnZSh7XG4gICAgICAgICAgXC9cLyBA\ndHMtaWdub3JlXG4gICAgICAgICAgc2hvd0Nsb3NlOiBmYWxzZSxcbiAgICAgICAgICBtZXNzYWdl\nOiBcIklQ5bGe5Zyw5Lul6L+Q6JCl5ZWG5L+h5oGv5Li65YeG77yM5aaC5pyJ6Zeu6aKY5Y+v5ZKo\n6K+i5a6i5pyNXCIsXG4gICAgICAgICAgY2VudGVyOiB0cnVlLFxuICAgICAgICAgIHBsYWluOiB0\ncnVlLFxuICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICBkdXJhdGlvbjogMzUwMCxcbiAg\nICAgICAgICB0eXBlOiBcIlwiLFxuICAgICAgICAgIGN1c3RvbUNsYXNzOiBcInBvcHMtaXAtbG9j\nYXRpb24taGVscFwiXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNsaWNrUmVj\nZWl2ZWRMaWtlc0V2ZW50ID0gKCkgPT4ge1xuICAgICAgICB2YXIgX2EzO1xuICAgICAgICBFbGVt\nZW50UGx1cy5FbE1lc3NhZ2VCb3guY29uZmlybShcbiAgICAgICAgICBgJHtwcm9wcy5Vc2VyRGF0\nYS5zaG93TmFtZX3lhbHojrflvpflkKflj4skeyhfYTMgPSBwcm9wcy5Vc2VyRGF0YS5wb3N0SW5m\nbykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5yZWNlaXZlZExpa2VzfeasoeeCuei1nmAsXG4gICAg\nICAgICAgXCJcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzaG93Q2xvc2U6IGZhbHNlLFxu\nICAgICAgICAgICAgc2hvd0NhbmNlbEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBjZW50ZXI6\nIHRydWUsXG4gICAgICAgICAgICByb3VuZEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZp\ncm1CdXR0b25UZXh0OiBcIuefpemBk+S6hlwiXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAg\nICAgfTtcbiAgICAgIGNvbnN0IGFib3V0VXNlckV2ZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgICAg\nIFRpZWJhUm91dGVyLnJvdXRlci5wdXNoKHtcbiAgICAgICAgICBwYXRoOiBcIlwvYWJvdXRcIlxu\nICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICBjb25zdCBjbGlja0ZvbGxvd0V2ZW50ID0gKCkg\nPT4ge1xuICAgICAgICBUaWViYVJvdXRlci5yb3V0ZXIucHVzaCh7XG4gICAgICAgICAgcGF0aDog\nXCJcL2ZvbGxvd1wiXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGNsaWNrRmFu\nc0V2ZW50ID0gKCkgPT4ge1xuICAgICAgICBUaWViYVJvdXRlci5yb3V0ZXIucHVzaCh7XG4gICAg\nICAgICAgcGF0aDogXCJcL2ZhbnNcIlxuICAgICAgICB9KTtcbiAgICAgIH07XG4gICAgICB2dWUu\nd2F0Y2goXG4gICAgICAgIHByb3BzLlVzZXJEYXRhLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAg\nICAgdmFyIF9hMztcbiAgICAgICAgICBpZiAoKF9hMyA9IHByb3BzLlVzZXJEYXRhLnBvc3RJbmZv\nKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLnBvc3QpIHtcbiAgICAgICAgICAgIGxvYWRTdGF0dXMu\ndmFsdWUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAg\nICAgIGRlZXA6IHRydWUsXG4gICAgICAgICAgaW1tZWRpYXRlOiB0cnVlXG4gICAgICAgIH1cbiAg\nICAgICk7XG4gICAgICByZXR1cm4gKF9jdHgsIF9jYWNoZSkgPT4ge1xuICAgICAgICBjb25zdCBf\nY29tcG9uZW50X2VsX2F2YXRhciA9IEVsQXZhdGFyO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50\nX2VsX2NvbCA9IEVsQ29sO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2J1dHRvbiA9IEVs\nQnV0dG9uO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX3JvdyA9IEVsUm93O1xuICAgICAg\nICBjb25zdCBfY29tcG9uZW50X2VsX3RleHQgPSBFbFRleHQ7XG4gICAgICAgIGNvbnN0IF9jb21w\nb25lbnRfZWxfZGl2aWRlciA9IEVsRGl2aWRlcjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9l\nbF9pY29uID0gRWxJY29uO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2xpbmsgPSBFbExp\nbms7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfc3BhY2UgPSBFbFNwYWNlO1xuICAgICAg\nICBjb25zdCBfY29tcG9uZW50X2VsX3RhYl9wYW5lID0gRWxUYWJQYW5lO1xuICAgICAgICBjb25z\ndCBfY29tcG9uZW50X2VsX3RhYnMgPSBFbFRhYnM7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRf\nZWxfbWFpbiA9IEVsTWFpbjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9jb250YWluZXIg\nPSBFbENvbnRhaW5lcjtcbiAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0\nZUJsb2NrKF9jb21wb25lbnRfZWxfY29udGFpbmVyLCB7IGlkOiBcIm1haW5cIiB9LCB7XG4gICAg\nICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgdnVlLmNyZWF0\nZVZOb2RlKF9jb21wb25lbnRfZWxfbWFpbiwgeyBzdHlsZTogeyBcInBhZGRpbmdcIjogXCIwXCIg\nfSB9LCB7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAg\nICAgICAgICAgICBfaG9pc3RlZF8xJDQsXG4gICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2Rl\nKF9jb21wb25lbnRfZWxfcm93LCB7IGp1c3RpZnk6IFwiY2VudGVyXCIgfSwge1xuICAgICAgICAg\nICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAg\nICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2wsIG51bGwsIHtcbiAgICAgICAgICAg\nICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAg\nICAgICAgICBfaG9pc3RlZF8yJDMsXG4gICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRl\nVk5vZGUoX2NvbXBvbmVudF9lbF9yb3csIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh\nc3M6IFwidXNlci1pbmZvLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBn\ndXR0ZXI6IDIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogXCJib3R0b21cIixc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJtYXJnaW5cIjogXCIwcHggMHB4\nXCIgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfY29sLCB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBzcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIHN0eWxlOiB7IFwicGFkZGluZ1wiOiBcIjBcIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhD\ndHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5v\nZGUoX2NvbXBvbmVudF9lbF9hdmF0YXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBzcmM6IHByb3BzLlVzZXJEYXRhLmF2YXRhcixcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBzaXplOiA5MFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBu\ndWxsLCA4LCBbXCJzcmNcIl0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2Nv\nbXBvbmVudF9lbF9jb2wsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW46IDEy\nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJwYWRkaW5nXCI6IFwi\nMFwiIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3Jvdywge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnk6IFwiZW5kXCIsXG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJmbGV4LXdyYXBcIjogXCJu\nb3dyYXBcIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvcHMuVXNlckRhdGEuaXNfbGlr\nZSA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayhfY29tcG9uZW50X2VsX2J1dHRv\nbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IDAsXG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInVzZXItaGFuZGxlci1m\nb2xsb3ctYnRuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9y\nOiBcIiM3NTU4RkVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91\nbmQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246IHZ1\nZS51bnJlZihpY29uc1Z1ZS5QbHVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgb25DbGljazogY2xpY2tGb2xsb3dCdG5FdmVudFxuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIuWFs+azqFwiKVxuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nfSwgOCwgW1wiaWNvblwiXSkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcIlwiLCB0cnVlKSxc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLlVzZXJEYXRhLmlzX2xp\na2UgPyAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxvY2soX2NvbXBvbmVudF9lbF9idXR0\nb24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAxLFxuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogXCIjNzU1OEZFXCIsXG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInVzZXItaGFuZGxl\nci1jYW5jZWwtZm9sbG93LWJ0blwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBwbGFpbjogXCJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\ncm91bmQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb246\nIHZ1ZS51bnJlZihpY29uc1Z1ZS5DaGVjayksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIG9uQ2xpY2s6IGNsaWNrQ2FuY2VsRm9sbG93QnRuRXZlbnRcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUoXCLlj5bmtojlhbPm\ns6hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIH0sIDgsIFtcImljb25cIl0pKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5v\nZGUoXCJcIiwgdHJ1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUu\nY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9idXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgY29sb3I6IFwiIzc1NThGRVwiLFxuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ1c2VyLWhhbmRsZXItcHJpdmF0ZS1tZXNzYWdl\nLWJ0blwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpbjogIXBy\nb3BzLlVzZXJEYXRhLmlzX2xpa2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHJvdW5kOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp\nY29uOiB2dWUudW5yZWYoaWNvbnNWdWUuTWVzc2FnZSksXG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGNsaWNrTWVzc2FnZUJ0bkV2ZW50XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVGV4dFZOb2RlKFwi56eB5L+hXCIp\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB9LCA4LCBbXCJwbGFpblwiLCBcImljb25cIl0pXG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAg\nICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAg\nXzogMVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgXSksXG4gICAg\nICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAg\ndnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfc3BhY2UsIHtcbiAgICAgICAgICAgICAgICAg\nIGNsYXNzOiBcInRvcC1jb250YWluZXJcIixcbiAgICAgICAgICAgICAgICAgIHNpemU6IDEwLFxu\nICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgICAgICAgICAg\nICAgICBhbGlnbm1lbnQ6IFwic3RyZXRjaFwiXG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAg\nICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAg\nICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9yb3csIG51bGwsIHtcbiAgICAgICAg\nICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAg\nICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF90ZXh0LCB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgIHNpemU6IFwibGFyZ2VcIixcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgY2xhc3M6IHZ1ZS5ub3JtYWxpemVDbGFzcyhcImJpZy10ZXh0XCIpLFxuICAgICAgICAg\nICAgICAgICAgICAgICAgICBzdHlsZTogeyBcImRpc3BsYXlcIjogXCJmbGV4XCIsIFwiYWxpZ24t\naXRlbXNcIjogXCJjZW50ZXJcIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EzLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZVRleHRWTm9kZSh2dWUudG9EaXNwbGF5U3RyaW5nKHByb3BzLlVzZXJEYXRh\nLnNob3dOYW1lKSArIFwiIFwiLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo\nX2MgPSAoX2IgPSAoX2EzID0gcHJvcHMuVXNlckRhdGEub3RoZXJEYXRhKSA9PSBudWxsID8gdm9p\nZCAwIDogX2EzLlBhbmVsVXNlckluZm8pID09IG51bGwgPyB2b2lkIDAgOiBfYi52aXBJbmZvKSA9\nPSBudWxsID8gdm9pZCAwIDogX2MuaWNvbl91cmwpID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNy\nZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfYXZhdGFyLCB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTog\nMTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogKF9lID0gKF9kID0gcHJv\ncHMuVXNlckRhdGEub3RoZXJEYXRhKSA9PSBudWxsID8gdm9pZCAwIDogX2QuUGFuZWxVc2VySW5m\nbykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9lLnZpcEluZm8uaWNvbl91cmwsXG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHNoYXBlOiBcInNxdWFyZVwiLFxuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBzdHlsZTogeyBcIm1hcmdpblwiOiBcIjBweCA1cHhcIiB9XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB9LCBudWxsLCA4LCBbXCJzcmNcIl0pKSA6IHZ1ZS5jcmVh\ndGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBd\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAg\nICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgIH0p\nLFxuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9yb3cs\nIHsgc3R5bGU6IHsgXCJjb2xvclwiOiBcIiM5MDkzOTlcIiB9IH0sIHtcbiAgICAgICAgICAgICAg\nICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICB2YXIgX2EzO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS1zZXhcIjogcHJvcHMuVXNlckRhdGEuc2V4\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHZ1ZS50b0Rpc3BsYXlTdHJpbmcocHJvcHMu\nVXNlckRhdGEuc2V4ID09IDAgPyBcIuS\/neWvhlwiIDogcHJvcHMuVXNlckRhdGEuc2V4ID09IDEg\nPyBcIuKZglwiIDogXCLimYBcIiksIDksIF9ob2lzdGVkXzMkMyksXG4gICAgICAgICAgICAgICAg\nICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2RpdmlkZXIsIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwidmVydGljYWxcIixcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBcImJvcmRlci1zdHlsZVwiOiBcImRhc2hlZFwiXG4gICAgICAg\nICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9saW5rLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdW5kZXJsaW5lOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNr\nOiBjb3B5SWRFdmVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIiBJRCBcIiArIHZ1ZS50\nb0Rpc3BsYXlTdHJpbmcocHJvcHMuVXNlckRhdGEuaWQpICsgXCIgXCIsIDEpLFxuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfaWNvbiwg\nbnVsbCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0\naEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0\nZVZOb2RlKHZ1ZS51bnJlZihpY29uc1Z1ZS5Db3B5RG9jdW1lbnQpKVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzog\nMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAg\nICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRl\nVk5vZGUoX2NvbXBvbmVudF9lbF9kaXZpZGVyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgZGlyZWN0aW9uOiBcInZlcnRpY2FsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nXCJib3JkZXItc3R5bGVcIjogXCJkYXNoZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9\nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcInNw\nYW5cIiwgbnVsbCwgXCIg5ZCn6b6EXCIgKyB2dWUudG9EaXNwbGF5U3RyaW5nKHByb3BzLlVzZXJE\nYXRhLmxldmVsKSArIFwi5bm0IFwiLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdnVl\nLnVucmVmKHV0aWxzKS5pc05vdE51bGwocHJvcHMuVXNlckRhdGEuaXApID8gKHZ1ZS5vcGVuQmxv\nY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfZGl2aWRlciwge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGtleTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBk\naXJlY3Rpb246IFwidmVydGljYWxcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImJv\ncmRlci1zdHlsZVwiOiBcImRhc2hlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pKSA6\nIHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1ZSksXG4gICAgICAgICAgICAgICAgICAg\nICAgICAgIHZ1ZS51bnJlZih1dGlscykuaXNOb3ROdWxsKHByb3BzLlVzZXJEYXRhLmlwKSA\/ICh2\ndWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2soXCJzcGFuXCIsIF9ob2lzdGVk\nXzQkMywgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUo\ndnVlLnRvRGlzcGxheVN0cmluZygoX2EzID0gcHJvcHMuVXNlckRhdGEuaXApID09IG51bGwgPyB2\nb2lkIDAgOiBfYTMubG9jYXRpb24pICsgXCIgXCIsIDEpLFxuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2ljb24sIHsgb25DbGljazogY2xp\nY2tJcEhlbHBFdmVudCB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0\nOiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1\nZS5jcmVhdGVWTm9kZSh2dWUudW5yZWYoaWNvbnNWdWUuUXVlc3Rpb25GaWxsZWQpKVxuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBfOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgXSkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcIlwiLCB0cnVlKVxuICAgICAg\nICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAg\nICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAg\nICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9yb3csIHtcbiAgICAgICAgICAg\nICAgICAgICAgICBqdXN0aWZ5OiBcInNwYWNlLWJldHdlZW5cIixcbiAgICAgICAgICAgICAgICAg\nICAgICBzdHlsZTogeyBcImNvbG9yXCI6IFwiIzkwOTM5OVwiIH0sXG4gICAgICAgICAgICAgICAg\nICAgICAgb25DbGljazogYWJvdXRVc2VyRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgfSwge1xu\nICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgbnVsbCwg\ndnVlLnRvRGlzcGxheVN0cmluZyh2dWUudW5yZWYodXRpbHMpLmlzTnVsbChwcm9wcy5Vc2VyRGF0\nYS5wZXJzb25hbFNpZ25hdHVyZSkgPyBcIuivpeeUqOaIt+i\/mOayoeacieWhq+WGmeetvuWQjVwi\nIDogcHJvcHMuVXNlckRhdGEucGVyc29uYWxTaWduYXR1cmUpLCAxKSxcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3RleHQsIHsgdHlwZTogXCJp\nbmZvXCIgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0\neCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9k\nZShcIiDlhbPkuo5UYSBcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0\nZVZOb2RlKF9jb21wb25lbnRfZWxfaWNvbiwgbnVsbCwge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUodnVlLnVucmVmKGljb25zVnVlLkFycm93Umln\naHQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF86IDFc\nbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4g\nICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAg\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfcm93LCBudWxsLCB7\nXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfc3BhY2Us\nIHsgc2l6ZTogMjUgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUu\nd2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZO\nb2RlKF9jb21wb25lbnRfZWxfY29sLCB7IG9uQ2xpY2s6IGNsaWNrUmVjZWl2ZWRMaWtlc0V2ZW50\nIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4\nKCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2Rl\nKF9jb21wb25lbnRfZWxfdGV4dCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIHNpemU6IFwibGFyZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFz\nczogdnVlLm5vcm1hbGl6ZUNsYXNzKFwiYmlnLXRleHRcIiksXG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJtYXJnaW4tcmlnaHRcIjogXCIwLjVyZW1cIiB9XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EzO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZVRleHRWTm9kZSh2dWUudG9EaXNwbGF5U3RyaW5nKChfYTMgPSBwcm9wcy5V\nc2VyRGF0YS5wb3N0SW5mbykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5yZWNlaXZlZExpa2VzKSwg\nMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwg\neyB0eXBlOiBcImluZm9cIiB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIuiOt+i1nlwiKVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIF86IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMVxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2NvbCwgeyBvbkNsaWNrOiBjbGlja0Zv\nbGxvd0V2ZW50IH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1\nZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIHNpemU6IFwibGFyZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKFwiYmlnLXRleHRcIiksXG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJtYXJnaW4tcmlnaHRcIjogXCIwLjVy\nZW1cIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EzO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZSh2dWUudG9EaXNwbGF5U3RyaW5nKChfYTMg\nPSBwcm9wcy5Vc2VyRGF0YS5wb3N0SW5mbykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5mb2xsb3cp\nLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF90ZXh0\nLCB7IHR5cGU6IFwiaW5mb1wiIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB2dWUuY3JlYXRlVGV4dFZOb2RlKFwi5YWz5rOoXCIpXG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAx\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfY29sLCB7IG9uQ2xpY2s6IGNsaWNr\nRmFuc0V2ZW50IH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1\nZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIHNpemU6IFwibGFyZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBjbGFzczogdnVlLm5vcm1hbGl6ZUNsYXNzKFwiYmlnLXRleHRcIiksXG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJtYXJnaW4tcmlnaHRcIjogXCIwLjVy\nZW1cIiB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EzO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZSh2dWUudG9EaXNwbGF5U3RyaW5nKChfYTMg\nPSBwcm9wcy5Vc2VyRGF0YS5wb3N0SW5mbykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5mYW5zKSwg\nMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwg\neyB0eXBlOiBcImluZm9cIiB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIueyieS4nVwiKVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIF86IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMVxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAg\nIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAg\nICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAg\nIF86IDFcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2RpdmlkZXIsIHsgc3R5bGU6IHsgXCJtYXJnaW5cIjog\nXCIwXCIgfSB9KSxcbiAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25l\nbnRfZWxfcm93LCB7XG4gICAgICAgICAgICAgICAgICAgICAganVzdGlmeTogXCJzcGFjZS1iZXR3\nZWVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJhbGlnbi1pdGVtc1wiOiBc\nImNlbnRlclwiIH1cbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAg\nICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIF9ob2lzdGVkXzUkMyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50\nVk5vZGUoXCJkaXZcIiwgbnVsbCwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAodnVlLm9w\nZW5CbG9jayh0cnVlKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQsIG51bGws\nIHZ1ZS5yZW5kZXJMaXN0KHByb3BzLlVzZXJEYXRhLmltcHJpbnQsIChpbXByaW50U3JjKSA9PiB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVl\nLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfYXZhdGFyLCB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBzaXplOiAyMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzog\naW1wcmludFNyY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG51bGwsIDgsIFtcInNy\nY1wiXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCAyNTYpKSxcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfaWNvbiwgbnVsbCwg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+\nIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZSh2dWUudW5y\nZWYoaWNvbnNWdWUuQXJyb3dSaWdodCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSks\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICAg\nICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAg\nICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgIH0p\nLFxuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9kaXZp\nZGVyLCB7IHN0eWxlOiB7IFwibWFyZ2luXCI6IFwiMFwiIH0gfSksXG4gICAgICAgICAgICAgICAg\nICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3JvdywgbnVsbCwge1xuICAgICAgICAg\nICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3RhYnMsIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgbW9kZWxWYWx1ZTogdnVlLnVucmVmKGFjdGl2ZU5hbWUpLFxuICAg\nICAgICAgICAgICAgICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzBd\nIHx8IChfY2FjaGVbMF0gPSAoJGV2ZW50KSA9PiB2dWUuaXNSZWYoYWN0aXZlTmFtZSkgPyBhY3Rp\ndmVOYW1lLnZhbHVlID0gJGV2ZW50IDogYWN0aXZlTmFtZSA9ICRldmVudCksXG4gICAgICAgICAg\nICAgICAgICAgICAgICAgIGNsYXNzOiBcInVzZXItaW5mby10YWJzXCJcbiAgICAgICAgICAgICAg\nICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndp\ndGhDdHgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTMsIF9iLCBf\nYywgX2Q7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3RhYl9wYW5l\nLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIuW4luWtkFwiICsg\nKCgoX2EzID0gcHJvcHMuVXNlckRhdGEucG9zdEluZm8pID09IG51bGwgPyB2b2lkIDAgOiBfYTMu\ncG9zdCkgIT0gbnVsbCA\/IFwiIFwiICsgKChfYiA9IHByb3BzLlVzZXJEYXRhLnBvc3RJbmZvKSA9\nPSBudWxsID8gdm9pZCAwIDogX2IucG9zdCkgOiBcIlwiKSxcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgbmFtZTogXCLluJblrZBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfSwgbnVsbCwgOCwgW1wibGFiZWxcIl0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGFiX3BhbmUsIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwi5YWz5rOo55qE5ZCnXCIgKyAoKChfYyA9IHBy\nb3BzLlVzZXJEYXRhLnBvc3RJbmZvKSA9PSBudWxsID8gdm9pZCAwIDogX2MuZm9ydW0pICE9IG51\nbGwgPyBcIiBcIiArICgoX2QgPSBwcm9wcy5Vc2VyRGF0YS5wb3N0SW5mbykgPT0gbnVsbCA\/IHZv\naWQgMCA6IF9kLmZvcnVtKSA6IFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBuYW1lOiBcIuWFs+azqOeahOWQp1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9\nLCBudWxsLCA4LCBbXCJsYWJlbFwiXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgOCwgW1wibW9kZWxWYWx1ZVwiXSlcbiAg\nICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAg\nICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAg\nICAgIF86IDFcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB2dWUudW5yZWYo\nYWN0aXZlTmFtZSkgPT09IFwi5biW5a2QXCIgJiYgdnVlLnVucmVmKGxvYWRTdGF0dXMpID8gKHZ1\nZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKFBvc3RzLCB7XG4gICAgICAgICAgICAgICAg\nICBrZXk6IDAsXG4gICAgICAgICAgICAgICAgICBVc2VyRGF0YTogcHJvcHMuVXNlckRhdGFcbiAg\nICAgICAgICAgICAgICB9LCBudWxsLCA4LCBbXCJVc2VyRGF0YVwiXSkpIDogdnVlLmNyZWF0ZUNv\nbW1lbnRWTm9kZShcIlwiLCB0cnVlKSxcbiAgICAgICAgICAgICAgICB2dWUudW5yZWYoYWN0aXZl\nTmFtZSkgPT09IFwi5YWz5rOo55qE5ZCnXCIgJiYgdnVlLnVucmVmKGxvYWRTdGF0dXMpID8gKHZ1\nZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKEZvbGxvd0ZvcnVtLCB7XG4gICAgICAgICAg\nICAgICAgICBrZXk6IDEsXG4gICAgICAgICAgICAgICAgICBVc2VyRGF0YTogcHJvcHMuVXNlckRh\ndGFcbiAgICAgICAgICAgICAgICB9LCBudWxsLCA4LCBbXCJVc2VyRGF0YVwiXSkpIDogdnVlLmNy\nZWF0ZUNvbW1lbnRWTm9kZShcIlwiLCB0cnVlKVxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAg\nICAgICAgXzogMVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBfOiAx\nXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBIb21lID0gXC8q\nIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMkMShfc2ZjX21haW4kNCwgW1tcIl9fc2NvcGVJZFwi\nLCBcImRhdGEtdi00OTIyMmIyZVwiXV0pO1xuICBjb25zdCBfaG9pc3RlZF8xJDMgPSB7IGNsYXNz\nOiBcInVzZXItYXZhdGFyXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfMiQyID0geyBjbGFzczogXCJ1\nc2VyLWluZm9cIiB9O1xuICBjb25zdCBfaG9pc3RlZF8zJDIgPSB7IGNsYXNzOiBcInVzZXItaW5m\nby1pdGVtXCIgfTtcbiAgY29uc3QgX2hvaXN0ZWRfNCQyID0geyBjbGFzczogXCJ1c2VyLWluZm8t\naXRlbVwiIH07XG4gIGNvbnN0IF9ob2lzdGVkXzUkMiA9IHsgY2xhc3M6IFwidXNlci1pbmZvLWl0\nZW1cIiB9O1xuICBjb25zdCBfaG9pc3RlZF82JDIgPSB7IGNsYXNzOiBcInVzZXItaW5mby1pdGVt\nXCIgfTtcbiAgY29uc3QgX3NmY19tYWluJDMgPSBcLyogQF9fUFVSRV9fICpcLyB2dWUuZGVmaW5l\nQ29tcG9uZW50KHtcbiAgICBfX25hbWU6IFwiQWJvdXRcIixcbiAgICBwcm9wczoge1xuICAgICAg\nVXNlckRhdGE6IHt9XG4gICAgfSxcbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBw\ncm9wcyA9IF9fcHJvcHM7XG4gICAgICBsZXQgc2V4U3RyID0gdnVlLnJlZihcIuS\/neWvhlwiKTtc\nbiAgICAgIGlmIChwcm9wcy5Vc2VyRGF0YS5zZXggIT0gbnVsbCkge1xuICAgICAgICBpZiAocHJv\ncHMuVXNlckRhdGEuc2V4ID09PSAxKSB7XG4gICAgICAgICAgc2V4U3RyLnZhbHVlID0gXCLnlLdc\nIjtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5Vc2VyRGF0YS5zZXggPT09IDIpIHtcbiAgICAg\nICAgICBzZXhTdHIudmFsdWUgPSBcIuWls1wiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBj\nb25zdCBhcnJvd0xlZnRDbGlja0V2ZW50ID0gKCkgPT4ge1xuICAgICAgICBUaWViYVJvdXRlci5y\nb3V0ZXIuYmFjaygpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7\nXG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfQXJyb3dMZWZ0ID0gdnVlLnJlc29sdmVDb21wb25l\nbnQoXCJBcnJvd0xlZnRcIik7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfaWNvbiA9IEVs\nSWNvbjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9jb2wgPSBFbENvbDtcbiAgICAgICAg\nY29uc3QgX2NvbXBvbmVudF9lbF9yb3cgPSBFbFJvdztcbiAgICAgICAgY29uc3QgX2NvbXBvbmVu\ndF9lbF9oZWFkZXIgPSBFbEhlYWRlcjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9hdmF0\nYXIgPSBFbEF2YXRhcjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF90ZXh0ID0gRWxUZXh0\nO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX21haW4gPSBFbE1haW47XG4gICAgICAgIGNv\nbnN0IF9jb21wb25lbnRfZWxfY29udGFpbmVyID0gRWxDb250YWluZXI7XG4gICAgICAgIHJldHVy\nbiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayhfY29tcG9uZW50X2VsX2NvbnRhaW5l\nciwgbnVsbCwge1xuICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAg\nICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2hlYWRlciwgeyBjbGFzczogXCJ1\nc2VyLW5hdlwiIH0sIHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4g\nW1xuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3Jvdywge1xu\nICAgICAgICAgICAgICAgICAgZ3V0dGVyOiAyNCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiBc\nIm5hdi1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAg\nIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfY29sLCB7XG4gICAgICAgICAgICAgICAgICAgICAgc3Bh\nbjogNCxcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJuYXYtbGVmdC1hcnJvdy1pY29u\nXCJcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1\nbHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVh\ndGVWTm9kZShfY29tcG9uZW50X2VsX2ljb24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nc2l6ZTogMjAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGFycm93TGVmdENs\naWNrRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X0Fycm93TGVmdClcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAg\nICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAg\nICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfY29sLCB7XG4gICAgICAg\nICAgICAgICAgICAgICAgc3BhbjogMTYsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwi\nbmF2LXRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAg\nICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUoXCLln7rmnKzotYTmlplcIilcbiAgICAgICAgICAgICAgICAg\nICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAg\nIH0pLFxuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9j\nb2wsIHtcbiAgICAgICAgICAgICAgICAgICAgICBzcGFuOiA0LFxuICAgICAgICAgICAgICAgICAg\nICAgIGNsYXNzOiBcIm5hdi1yaWdodC1zcGFjZVwiXG4gICAgICAgICAgICAgICAgICAgIH0pXG4g\nICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAg\nICAgICB9KVxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgXzogMVxuICAgICAgICAg\nICAgfSksXG4gICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9tYWluLCBu\ndWxsLCB7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAg\nICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzEkMywg\nW1xuICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfYXZhdGFy\nLCB7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAg\nc3JjOiBfY3R4LiRwcm9wcy5Vc2VyRGF0YS5hdmF0YXJcbiAgICAgICAgICAgICAgICAgIH0sIG51\nbGwsIDgsIFtcInNyY1wiXSlcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICB2\ndWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIkMiwgW1xuICAgICAgICAg\nICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zJDIsIFtc\nbiAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwg\ne1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5mb1wiLFxuICAgICAgICAgICAgICAg\nICAgICAgIGNsYXNzOiBcInVzZXItZGVzYy1rZXlcIlxuICAgICAgICAgICAgICAgICAgICB9LCB7\nXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIueUqOaIt+WQjVwiKVxu\nICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAg\nICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9k\nZShfY29tcG9uZW50X2VsX3RleHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImlu\nZm9cIixcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ1c2VyLWVuZC10ZXh0XCJcbiAg\nICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1\nZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0\nVk5vZGUodnVlLnRvRGlzcGxheVN0cmluZyhwcm9wcy5Vc2VyRGF0YS5uYW1lKSwgMSlcbiAgICAg\nICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAg\nICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAg\nIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNCQyLCBbXG4gICAgICAg\nICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3RleHQsIHtcbiAgICAg\nICAgICAgICAgICAgICAgICB0eXBlOiBcImluZm9cIixcbiAgICAgICAgICAgICAgICAgICAgICBj\nbGFzczogXCJ1c2VyLWRlc2Mta2V5XCJcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAg\nICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUoXCLmmLXnp7BcIilcbiAgICAgICAgICAg\nICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAg\nICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVu\ndF9lbF90ZXh0LCB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXG4gICAg\nICAgICAgICAgICAgICAgICAgY2xhc3M6IFwidXNlci1lbmQtdGV4dFwiXG4gICAgICAgICAgICAg\nICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgo\nKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVGV4dFZOb2RlKHZ1ZS50\nb0Rpc3BsYXlTdHJpbmcocHJvcHMuVXNlckRhdGEuc2hvd05hbWUpLCAxKVxuICAgICAgICAgICAg\nICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAg\nICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF81JDIsIFtcbiAgICAgICAgICAgICAg\nICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwge1xuICAgICAgICAgICAg\nICAgICAgICAgIHR5cGU6IFwiaW5mb1wiLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBc\nInVzZXItZGVzYy1rZXlcIlxuICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAg\nICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAg\nICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIuaAp+WIq1wiKVxuICAgICAgICAgICAgICAgICAg\nICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAg\nfSksXG4gICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3Rl\neHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImluZm9cIixcbiAgICAgICAgICAg\nICAgICAgICAgICBjbGFzczogXCJ1c2VyLWVuZC10ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAg\nfSwge1xuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUodnVlLnRvRGlzcGxh\neVN0cmluZyh2dWUudW5yZWYoc2V4U3RyKSksIDEpXG4gICAgICAgICAgICAgICAgICAgICAgXSks\nXG4gICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAg\nICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZO\nb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzYkMiwgW1xuICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVk5vZGUoX2NvbXBvbmVudF9lbF90ZXh0LCB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlw\nZTogXCJpbmZvXCIsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwidXNlci1kZXNjLWtl\neVwiXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWZh\ndWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVGV4dFZOb2RlKFwi5ZCn6b6EXCIpXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAg\nICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwge1xuICAgICAg\nICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5mb1wiLFxuICAgICAgICAgICAgICAgICAgICAgIGNs\nYXNzOiBcInVzZXItZW5kLXRleHRcIlxuICAgICAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAg\nICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZSh2dWUudG9EaXNwbGF5U3RyaW5nKHByb3Bz\nLlVzZXJEYXRhLmxldmVsKSArIFwi5bm0XCIsIDEpXG4gICAgICAgICAgICAgICAgICAgICAgXSks\nXG4gICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAg\nICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICBdKSxc\nbiAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdKSxcbiAgICAg\nICAgICBfOiAxXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBB\nYm91dCA9IFwvKiBAX19QVVJFX18gKlwvIF9leHBvcnRfc2ZjJDEoX3NmY19tYWluJDMsIFtbXCJf\nX3Njb3BlSWRcIiwgXCJkYXRhLXYtYzk1MTFkNDRcIl1dKTtcbiAgY29uc3QgX3NmY19tYWluJDIg\nPSB7fTtcbiAgY29uc3QgX2hvaXN0ZWRfMSQyID0geyBzdHlsZTogeyBcInBhZGRpbmdcIjogXCIx\nMHB4XCIgfSB9O1xuICBmdW5jdGlvbiBfc2ZjX3JlbmRlcihfY3R4LCBfY2FjaGUpIHtcbiAgICBj\nb25zdCBfY29tcG9uZW50X2VsX3NrZWxldG9uX2l0ZW0gPSBFbFNrZWxldG9uSXRlbTtcbiAgICBj\nb25zdCBfY29tcG9uZW50X2VsX2NvbCA9IEVsQ29sO1xuICAgIGNvbnN0IF9jb21wb25lbnRfZWxf\ncm93ID0gRWxSb3c7XG4gICAgY29uc3QgX2NvbXBvbmVudF9lbF9za2VsZXRvbiA9IEVsU2tlbGV0\nb247XG4gICAgcmV0dXJuIHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25l\nbnRfZWxfc2tlbGV0b24sIHtcbiAgICAgIHN0eWxlOiB7IFwiYmFja2dyb3VuZC1jb2xvclwiOiBc\nIiNmZmZmZmZcIiB9LFxuICAgICAgYW5pbWF0ZWQ6IFwiXCJcbiAgICB9LCB7XG4gICAgICB0ZW1w\nbGF0ZTogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2Rl\nKFwiZGl2XCIsIF9ob2lzdGVkXzEkMiwgW1xuICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29t\ncG9uZW50X2VsX3JvdywgeyBzdHlsZTogeyBcImRpc3BsYXlcIjogXCJmbGV4XCIsIFwiYWxpZ24t\naXRlbXNcIjogXCJjZW50ZXJcIiB9IH0sIHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRo\nQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxf\nY29sLCB7IHNwYW46IDQgfSwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4\nKCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2Vs\nX3NrZWxldG9uX2l0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyaWFudDogXCJpbWFnZVwi\nLFxuICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBcIndpZHRoXCI6IFwiMzVweFwiLCBcImhl\naWdodFwiOiBcIjM1cHhcIiwgXCJib3JkZXItcmFkaXVzXCI6IFwiNTAlXCIgfVxuICAgICAgICAg\nICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICBfOiAxXG4g\nICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVu\ndF9lbF9jb2wsIHsgc3BhbjogMTYgfSwge1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53\naXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUo\nXCJkaXZcIiwgbnVsbCwgW1xuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2Nv\nbXBvbmVudF9lbF9za2VsZXRvbl9pdGVtLCB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFu\ndDogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsgXCJ3aWR0aFwiOiBc\nIjEwMHB4XCIsIFwiaGVpZ2h0XCI6IFwiMTZweFwiIH1cbiAgICAgICAgICAgICAgICAgICAgfSks\nXG4gICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3NrZWxl\ndG9uX2l0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50OiBcInRleHRcIixcbiAg\nICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBcIndpZHRoXCI6IFwiMTAwJVwiLCBcImhlaWdo\ndFwiOiBcIjEycHhcIiB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAg\nICBdKVxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAg\nICAgICAgfSksXG4gICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2Nv\nbCwgeyBzcGFuOiA0IH0sIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgo\nKSA9PiBbXG4gICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9z\na2VsZXRvbl9pdGVtLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ6IFwidGV4dFwiLFxu\nICAgICAgICAgICAgICAgICAgICBzdHlsZTogeyBcIndpZHRoXCI6IFwiMzVweFwiLCBcImhlaWdo\ndFwiOiBcIjIwcHhcIiwgXCJib3JkZXItcmFkaXVzXCI6IFwiMTZweFwiLCBcImZsb2F0XCI6IFwi\ncmlnaHRcIiB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF0pLFxuICAg\nICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0pLFxuICAg\nICAgICAgICAgXzogMVxuICAgICAgICAgIH0pXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAg\nIF86IDFcbiAgICB9KTtcbiAgfVxuICBjb25zdCBUZW1wbGF0ZUZvbGxvd1VzZXIgPSBcLyogQF9f\nUFVSRV9fICpcLyBfZXhwb3J0X3NmYyQxKF9zZmNfbWFpbiQyLCBbW1wicmVuZGVyXCIsIF9zZmNf\ncmVuZGVyXV0pO1xuICBjb25zdCBfaG9pc3RlZF8xJDEgPSBbXCJvbkNsaWNrXCJdO1xuICBjb25z\ndCBfaG9pc3RlZF8yJDEgPSB7IGNsYXNzOiBcInVzZXItaXRlbS1yb3dcIiB9O1xuICBjb25zdCBf\naG9pc3RlZF8zJDEgPSB7IGNsYXNzOiBcInVzZXItaXRlbS1yb3ctbGVmdFwiIH07XG4gIGNvbnN0\nIF9ob2lzdGVkXzQkMSA9IHsgY2xhc3M6IFwidXNlci1hdmF0YXJcIiB9O1xuICBjb25zdCBfaG9p\nc3RlZF81JDEgPSB7IGNsYXNzOiBcInVzZXItaXRlbS1yb3ctY2VudGVyXCIgfTtcbiAgY29uc3Qg\nX2hvaXN0ZWRfNiQxID0geyBjbGFzczogXCJ1c2VyLWluZm9cIiB9O1xuICBjb25zdCBfaG9pc3Rl\nZF83JDEgPSB7IGNsYXNzOiBcInVzZXItaXRlbS1yb3ctcmlnaHRcIiB9O1xuICBjb25zdCBfaG9p\nc3RlZF84JDEgPSB7XG4gICAga2V5OiAyLFxuICAgIHN0eWxlOiB7IFwidGV4dC1hbGlnblwiOiBc\nImNlbnRlclwiIH1cbiAgfTtcbiAgY29uc3QgcGFnZVNpemUkMSA9IDEyO1xuICBjb25zdCBfc2Zj\nX21haW4kMSA9IFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIF9f\nbmFtZTogXCJGb2xsb3dcIixcbiAgICBwcm9wczoge1xuICAgICAgVXNlckRhdGE6IHt9XG4gICAg\nfSxcbiAgICBzZXR1cChfX3Byb3BzKSB7XG4gICAgICBjb25zdCBwcm9wcyA9IF9fcHJvcHM7XG4g\nICAgICBsZXQgc2hvd0lzTG9hZGluZyA9IHZ1ZS5yZWYodHJ1ZSk7XG4gICAgICBsZXQgaXNFbXB0\neSA9IHZ1ZS5yZWYoZmFsc2UpO1xuICAgICAgbGV0IGlzQXN5bmNMb2FkRW5kID0gdnVlLnJlZihm\nYWxzZSk7XG4gICAgICBsZXQgaXNMb2FkaW5nRW5kID0gdnVlLnJlZihmYWxzZSk7XG4gICAgICBs\nZXQgJGxvYWRpbmcgPSB2dWUucmVmKG51bGwpO1xuICAgICAgbGV0IHBhZ2VPZmZzZXQgPSB2dWUu\ncmVmKDEyKTtcbiAgICAgIGxldCBmb2xsb3dJbmZvTGlzdCA9IHZ1ZS5yZWYoW10pO1xuICAgICAg\nbGV0IG9ic2VydmUgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAg\nICAgICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5p\nc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgbG9hZE1vcmUoKTtcbiAgICAgICAgICB9XG4g\nICAgICAgIH0pO1xuICAgICAgfSwge1xuICAgICAgICByb290OiBudWxsLFxuICAgICAgICByb290\nTWFyZ2luOiBcIjBweCAwcHggMHB4IDBweFwiLFxuICAgICAgICB0aHJlc2hvbGQ6IDAuMlxuICAg\nICAgfSk7XG4gICAgICBjb25zdCBzdG9wV2F0Y2hMb2FkaW5nID0gdnVlLndhdGNoKCRsb2FkaW5n\nLCAoKSA9PiB7XG4gICAgICAgIGlmICgkbG9hZGluZy52YWx1ZSAmJiBBcnJheS5pc0FycmF5KCRs\nb2FkaW5nLnZhbHVlKSAmJiAkbG9hZGluZy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICBvYnNl\ncnZlLm9ic2VydmUoJGxvYWRpbmcudmFsdWVbMF0uJGVsKTtcbiAgICAgICAgfVxuICAgICAgfSwg\ne1xuICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICBpbW1lZGlhdGU6IHRydWVcbiAgICAgIH0p\nO1xuICAgICAgY29uc3QgY2FuY2xlTG9hZE1vcmVPYnNlcnZlID0gKCkgPT4ge1xuICAgICAgICBz\ndG9wV2F0Y2hMb2FkaW5nKCk7XG4gICAgICAgIG9ic2VydmUuZGlzY29ubmVjdCgpO1xuICAgICAg\nICBzaG93SXNMb2FkaW5nLnZhbHVlID0gZmFsc2U7XG4gICAgICAgIGlzTG9hZGluZ0VuZC52YWx1\nZSA9IHRydWU7XG4gICAgICAgIGxvZy5pbmZvKFtcIuenu+mZpOa7muWKqOebkeWQrFwiXSk7XG4g\nICAgICB9O1xuICAgICAgY29uc3QgbG9hZE1vcmUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHNo\nb3dJc0xvYWRpbmcudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgbGV0IGlzRmlyc3RMb2FkID0gcGFn\nZU9mZnNldC52YWx1ZSA9PT0gcGFnZVNpemUkMTtcbiAgICAgICAgaWYgKGlzRmlyc3RMb2FkKSB7\nXG4gICAgICAgICAgaXNBc3luY0xvYWRFbmQudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICBmb2xs\nb3dJbmZvTGlzdC52YWx1ZSA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpc0NhbmNlbGVk\nID0gZmFsc2U7XG4gICAgICAgIGxldCBnZXRGb2xsb3dJbmZvTGlzdCA9IGF3YWl0IFRpZWJhSG9t\nZUFwaS5nZXRGb2xsb3cocHJvcHMuVXNlckRhdGEubmFtZSwgcGFnZU9mZnNldC52YWx1ZSwgcGFn\nZVNpemUkMSk7XG4gICAgICAgIHNob3dJc0xvYWRpbmcudmFsdWUgPSB0cnVlO1xuICAgICAgICBp\nZiAoZ2V0Rm9sbG93SW5mb0xpc3QpIHtcbiAgICAgICAgICBpZiAoZ2V0Rm9sbG93SW5mb0xpc3Qu\nZGF0YSkge1xuICAgICAgICAgICAgZm9sbG93SW5mb0xpc3QudmFsdWUgPSBmb2xsb3dJbmZvTGlz\ndC52YWx1ZS5jb25jYXQoZ2V0Rm9sbG93SW5mb0xpc3QuZGF0YSk7XG4gICAgICAgICAgICBwYWdl\nT2Zmc2V0LnZhbHVlICs9IHBhZ2VTaXplJDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgh\nZ2V0Rm9sbG93SW5mb0xpc3QuaGFzX25leHQpIHtcbiAgICAgICAgICAgIGlzQ2FuY2VsZWQgPSB0\ncnVlO1xuICAgICAgICAgICAgY2FuY2xlTG9hZE1vcmVPYnNlcnZlKCk7XG4gICAgICAgICAgfVxu\nICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5pbmZvKFtcIuiOt+WPluWFs+azqOeahOWQ\np+aVsOaNruWksei0pVwiXSk7XG4gICAgICAgICAgaWYgKGlzRmlyc3RMb2FkKSB7XG4gICAgICAg\nICAgICBpc0FzeW5jTG9hZEVuZC52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICBpc0NhbmNlbGVk\nID0gdHJ1ZTtcbiAgICAgICAgICAgIGlzRW1wdHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAg\nY2FuY2xlTG9hZE1vcmVPYnNlcnZlKCk7XG4gICAgICAgICAgICBpc0xvYWRpbmdFbmQudmFsdWUg\nPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2hvd0lzTG9hZGluZy52\nYWx1ZSA9ICFpc0NhbmNlbGVkO1xuICAgICAgICBsb2cuaW5mbyhbXCLojrflj5bliLDnmoRUYeWF\ns+azqOeahOS6ulwiLCBnZXRGb2xsb3dJbmZvTGlzdF0pO1xuICAgICAgfTtcbiAgICAgIGNvbnN0\nIGFycm93TGVmdENsaWNrRXZlbnQgPSAoKSA9PiB7XG4gICAgICAgIFRpZWJhUm91dGVyLnJvdXRl\nci5iYWNrKCk7XG4gICAgICB9O1xuICAgICAgY29uc3QganVtcFRvVXNlckhvbWUgPSAodXJsKSA9\nPiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHVybCwgXCJfYmxhbmtcIik7XG4gICAgICB9O1xuICAg\nICAgcmV0dXJuIChfY3R4LCBfY2FjaGUpID0+IHtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9B\ncnJvd0xlZnQgPSB2dWUucmVzb2x2ZUNvbXBvbmVudChcIkFycm93TGVmdFwiKTtcbiAgICAgICAg\nY29uc3QgX2NvbXBvbmVudF9lbF9pY29uID0gRWxJY29uO1xuICAgICAgICBjb25zdCBfY29tcG9u\nZW50X2VsX2NvbCA9IEVsQ29sO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX3JvdyA9IEVs\nUm93O1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2hlYWRlciA9IEVsSGVhZGVyO1xuICAg\nICAgICBjb25zdCBfY29tcG9uZW50X2VsX2F2YXRhciA9IEVsQXZhdGFyO1xuICAgICAgICBjb25z\ndCBfY29tcG9uZW50X2VsX3RleHQgPSBFbFRleHQ7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRf\nZWxfYnV0dG9uID0gRWxCdXR0b247XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfZW1wdHkg\nPSBFbEVtcHR5O1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX3Njcm9sbGJhciA9IEVsU2Ny\nb2xsYmFyO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX21haW4gPSBFbE1haW47XG4gICAg\nICAgIGNvbnN0IF9jb21wb25lbnRfZWxfY29udGFpbmVyID0gRWxDb250YWluZXI7XG4gICAgICAg\nIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVCbG9jayhfY29tcG9uZW50X2VsX2Nv\nbnRhaW5lciwgeyBjbGFzczogXCJkaXNhYmxlLWh0bWwtYm9keS1zY3JvbGxcIiB9LCB7XG4gICAg\nICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgdnVlLmNyZWF0\nZVZOb2RlKF9jb21wb25lbnRfZWxfaGVhZGVyLCB7IGNsYXNzOiBcInVzZXItdG9wXCIgfSwge1xu\nICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfcm93LCB7XG4gICAgICAgICAgICAgICAg\nICBndXR0ZXI6IDI0LFxuICAgICAgICAgICAgICAgICAgY2xhc3M6IFwidG9wLW5hdi1jb250YWlu\nZXJcIlxuICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1\nZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9j\nb21wb25lbnRfZWxfY29sLCB7XG4gICAgICAgICAgICAgICAgICAgICAgc3BhbjogNCxcbiAgICAg\nICAgICAgICAgICAgICAgICBjbGFzczogXCJ0b3AtbGVmdC1hcnJvdy1pY29uXCIsXG4gICAgICAg\nICAgICAgICAgICAgICAgb25DbGljazogYXJyb3dMZWZ0Q2xpY2tFdmVudFxuICAgICAgICAgICAg\nICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgo\nKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25l\nbnRfZWxfaWNvbiwgeyBzaXplOiAyMCB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRl\nZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2\ndWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9BcnJvd0xlZnQpXG4gICAgICAgICAgICAgICAgICAg\nICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAg\nICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAg\nICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAg\nIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2NvbCwge1xuICAgICAgICAgICAgICAgICAg\nICAgIHNwYW46IDE2LFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInRvcC10aXRsZS1u\nYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgIGRl\nZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVUZXh0Vk5vZGUoXCLku5blhbPms6jnmoTkurpcIilcbiAgICAgICAgICAgICAgICAgICAg\nICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgIH0p\nLFxuICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2ws\nIHtcbiAgICAgICAgICAgICAgICAgICAgICBzcGFuOiA0LFxuICAgICAgICAgICAgICAgICAgICAg\nIGNsYXNzOiBcInRvcC1yaWdodC1zcGFjZVwiXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAg\nICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAg\nICB9KVxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAg\nfSksXG4gICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9tYWluLCB7IGNs\nYXNzOiBcInVzZXItbWFpblwiIH0sIHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhD\ndHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2Vs\nX3Njcm9sbGJhciwgeyBjbGFzczogXCJ1c2VyLWNvbnRhaW5lclwiIH0sIHtcbiAgICAgICAgICAg\nICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAg\nKHZ1ZS5vcGVuQmxvY2sodHJ1ZSksIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2sodnVlLkZyYWdtZW50\nLCBudWxsLCB2dWUucmVuZGVyTGlzdCh2dWUudW5yZWYoZm9sbG93SW5mb0xpc3QpLCAoZm9sbG93\nSW5mbykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCks\nIHZ1ZS5jcmVhdGVFbGVtZW50QmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgY2xhc3M6IFwidXNlci1pdGVtXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNr\nOiAoJGV2ZW50KSA9PiBqdW1wVG9Vc2VySG9tZShmb2xsb3dJbmZvLnVybClcbiAgICAgICAgICAg\nICAgICAgICAgICB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVu\ndFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIkMSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzMkMSwgW1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hv\naXN0ZWRfNCQxLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5v\nZGUoX2NvbXBvbmVudF9lbF9hdmF0YXIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgc3JjOiBmb2xsb3dJbmZvLmF2YXRhcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgc2l6ZTogMzVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG51bGwsIDgsIFtc\nInNyY1wiXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzUk\nMSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9k\nZShcImRpdlwiLCBfaG9pc3RlZF82JDEsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfdGV4dCwge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInVzZXItbmFtZVwiLFxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHRydW5jYXRlZDogXCJcIlxuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs\ndDogdnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdnVlLmNyZWF0ZVRleHRWTm9kZSh2dWUudG9EaXNwbGF5U3RyaW5nKGZvbGxvd0luZm8udXNl\nck5hbWUpLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDJcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgfSwgMTAyNCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3RleHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBjbGFzczogXCJ1c2VyLXNpZ24tdGV4dFwiLFxuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIHNpemU6IFwic21hbGxcIixcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB0cnVuY2F0ZWQ6IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53\naXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVUZXh0Vk5vZGUoXCLmnaXoh6rotLTlkKflhbPms6gg5pqC5pyq5a6e546w6I635Y+W562+\n5ZCN5L+h5oGv5o6l5Y+jXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSks\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSlcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBd\nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRp\ndlwiLCBfaG9pc3RlZF83JDEsIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUuY3Jl\nYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9idXR0b24sIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIHR5cGU6IFwiaW5mb1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6\nZTogXCJzbWFsbFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhaW46IFwiXCIs\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogXCIjNjI2YWVmXCIsXG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZDogXCJcIixcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGNsYXNzOiBcInVzZXItZm9sbG93LWJ0blwiXG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDog\ndnVlLndpdGhDdHgoKCkgPT4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWUu\nY3JlYXRlVGV4dFZOb2RlKFwi5YWz5rOoXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAg\nICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICBdLCA4LCBfaG9pc3RlZF8x\nJDEpO1xuICAgICAgICAgICAgICAgICAgICB9KSwgMjU2KSksXG4gICAgICAgICAgICAgICAgICAg\nIHZ1ZS51bnJlZihzaG93SXNMb2FkaW5nKSA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVF\nbGVtZW50QmxvY2sodnVlLkZyYWdtZW50LCB7IGtleTogMCB9LCB2dWUucmVuZGVyTGlzdCgzLCAo\naSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2dWUuY3JlYXRlVk5vZGUoVGVt\ncGxhdGVGb2xsb3dVc2VyLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGksXG4gICAg\nICAgICAgICAgICAgICAgICAgICByZWZfZm9yOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAg\nICAgcmVmX2tleTogXCIkbG9hZGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiAk\nbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9\nKSwgNjQpKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUoXCJcIiwgdHJ1ZSksXG4gICAgICAgICAg\nICAgICAgICAgIHZ1ZS51bnJlZihpc0VtcHR5KSA\/ICh2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVh\ndGVCbG9jayhfY29tcG9uZW50X2VsX2VtcHR5LCB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5\nOiAxLFxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIuacquiOt+WPluWIsOaV\nsOaNrlwiXG4gICAgICAgICAgICAgICAgICAgIH0pKSA6IHZ1ZS5jcmVhdGVDb21tZW50Vk5vZGUo\nXCJcIiwgdHJ1ZSksXG4gICAgICAgICAgICAgICAgICAgIHZ1ZS51bnJlZihpc0xvYWRpbmdFbmQp\nID8gKHZ1ZS5vcGVuQmxvY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayhcImRpdlwiLCBfaG9p\nc3RlZF84JDEsIFwi5bey57uP5Yiw5bqV5LqGflwiKSkgOiB2dWUuY3JlYXRlQ29tbWVudFZOb2Rl\nKFwiXCIsIHRydWUpXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgIF86\nIDFcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAg\nXzogMVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBfOiAxXG4gICAg\nICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBGb2xsb3cgPSBcLyogQF9f\nUFVSRV9fICpcLyBfZXhwb3J0X3NmYyQxKF9zZmNfbWFpbiQxLCBbW1wiX19zY29wZUlkXCIsIFwi\nZGF0YS12LTgyYjVkMmQxXCJdXSk7XG4gIGNvbnN0IF9ob2lzdGVkXzEgPSBbXCJvbkNsaWNrXCJd\nO1xuICBjb25zdCBfaG9pc3RlZF8yID0geyBjbGFzczogXCJ1c2VyLWl0ZW0tcm93XCIgfTtcbiAg\nY29uc3QgX2hvaXN0ZWRfMyA9IHsgY2xhc3M6IFwidXNlci1pdGVtLXJvdy1sZWZ0XCIgfTtcbiAg\nY29uc3QgX2hvaXN0ZWRfNCA9IHsgY2xhc3M6IFwidXNlci1hdmF0YXJcIiB9O1xuICBjb25zdCBf\naG9pc3RlZF81ID0geyBjbGFzczogXCJ1c2VyLWl0ZW0tcm93LWNlbnRlclwiIH07XG4gIGNvbnN0\nIF9ob2lzdGVkXzYgPSB7IGNsYXNzOiBcInVzZXItaW5mb1wiIH07XG4gIGNvbnN0IF9ob2lzdGVk\nXzcgPSB7IGNsYXNzOiBcInVzZXItaXRlbS1yb3ctcmlnaHRcIiB9O1xuICBjb25zdCBfaG9pc3Rl\nZF84ID0ge1xuICAgIGtleTogMixcbiAgICBzdHlsZTogeyBcInRleHQtYWxpZ25cIjogXCJjZW50\nZXJcIiB9XG4gIH07XG4gIGNvbnN0IHBhZ2VTaXplID0gMTI7XG4gIGNvbnN0IF9zZmNfbWFpbiA9\nIFwvKiBAX19QVVJFX18gKlwvIHZ1ZS5kZWZpbmVDb21wb25lbnQoe1xuICAgIF9fbmFtZTogXCJG\nYW5zXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgIFVzZXJEYXRhOiB7fVxuICAgIH0sXG4gICAgc2V0\ndXAoX19wcm9wcykge1xuICAgICAgY29uc3QgcHJvcHMgPSBfX3Byb3BzO1xuICAgICAgbGV0IHNo\nb3dJc0xvYWRpbmcgPSB2dWUucmVmKHRydWUpO1xuICAgICAgbGV0IGlzRW1wdHkgPSB2dWUucmVm\nKGZhbHNlKTtcbiAgICAgIGxldCBpc0FzeW5jTG9hZEVuZCA9IHZ1ZS5yZWYoZmFsc2UpO1xuICAg\nICAgbGV0IGlzTG9hZGluZ0VuZCA9IHZ1ZS5yZWYoZmFsc2UpO1xuICAgICAgbGV0ICRsb2FkaW5n\nID0gdnVlLnJlZihudWxsKTtcbiAgICAgIGxldCBwYWdlT2Zmc2V0ID0gdnVlLnJlZigxMik7XG4g\nICAgICBsZXQgZmFuc0luZm9MaXN0ID0gdnVlLnJlZihbXSk7XG4gICAgICBsZXQgbmF2VGl0bGUg\nPSB2dWUucmVmKFwi57KJ5LidXCIpO1xuICAgICAgaWYgKHByb3BzLlVzZXJEYXRhLnNleCAhPSBu\ndWxsKSB7XG4gICAgICAgIGlmIChwcm9wcy5Vc2VyRGF0YS5zZXggPT0gMSkge1xuICAgICAgICAg\nIG5hdlRpdGxlLnZhbHVlID0gXCLku5bnmoTnsonkuJ1cIjtcbiAgICAgICAgfSBlbHNlIGlmIChw\ncm9wcy5Vc2VyRGF0YS5zZXggPT0gMikge1xuICAgICAgICAgIG5hdlRpdGxlLnZhbHVlID0gXCLl\npbnnmoTnsonkuJ1cIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IG9ic2VydmUgPSBu\nZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgZW50cmllcy5m\nb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykg\ne1xuICAgICAgICAgICAgbG9hZE1vcmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAg\nICAgfSwge1xuICAgICAgICByb290OiBudWxsLFxuICAgICAgICByb290TWFyZ2luOiBcIjBweCAw\ncHggMHB4IDBweFwiLFxuICAgICAgICB0aHJlc2hvbGQ6IDAuMlxuICAgICAgfSk7XG4gICAgICBj\nb25zdCBzdG9wV2F0Y2hMb2FkaW5nID0gdnVlLndhdGNoKCRsb2FkaW5nLCAoKSA9PiB7XG4gICAg\nICAgIGlmICgkbG9hZGluZy52YWx1ZSAmJiBBcnJheS5pc0FycmF5KCRsb2FkaW5nLnZhbHVlKSAm\nJiAkbG9hZGluZy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICBvYnNlcnZlLm9ic2VydmUoJGxv\nYWRpbmcudmFsdWVbMF0uJGVsKTtcbiAgICAgICAgfVxuICAgICAgfSwge1xuICAgICAgICBkZWVw\nOiB0cnVlLFxuICAgICAgICBpbW1lZGlhdGU6IHRydWVcbiAgICAgIH0pO1xuICAgICAgY29uc3Qg\nY2FuY2xlU2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICAgIHN0b3BXYXRjaExvYWRpbmco\nKTtcbiAgICAgICAgb2JzZXJ2ZS5kaXNjb25uZWN0KCk7XG4gICAgICAgIHNob3dJc0xvYWRpbmcu\ndmFsdWUgPSBmYWxzZTtcbiAgICAgICAgaXNMb2FkaW5nRW5kLnZhbHVlID0gdHJ1ZTtcbiAgICAg\nICAgbG9nLmluZm8oW1wi56e76Zmk5rua5Yqo55uR5ZCsXCJdKTtcbiAgICAgIH07XG4gICAgICBj\nb25zdCBsb2FkTW9yZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgc2hvd0lzTG9hZGluZy52YWx1\nZSA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNGaXJzdExvYWQgPSBwYWdlT2Zmc2V0LnZhbHVlID09\nPSBwYWdlU2l6ZTtcbiAgICAgICAgaWYgKGlzRmlyc3RMb2FkKSB7XG4gICAgICAgICAgaXNBc3lu\nY0xvYWRFbmQudmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICBmYW5zSW5mb0xpc3QudmFsdWUgPSBb\nXTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZ2V0RmFuc0luZm9MaXN0ID0gYXdhaXQgVGllYmFI\nb21lQXBpLmdldEZhbnMocHJvcHMuVXNlckRhdGEubmFtZSwgcGFnZU9mZnNldC52YWx1ZSwgcGFn\nZVNpemUpO1xuICAgICAgICBsZXQgaXNDYW5jZWxlZCA9IGZhbHNlO1xuICAgICAgICBpZiAoZ2V0\nRmFuc0luZm9MaXN0KSB7XG4gICAgICAgICAgaWYgKGdldEZhbnNJbmZvTGlzdC5kYXRhKSB7XG4g\nICAgICAgICAgICBmYW5zSW5mb0xpc3QudmFsdWUgPSBmYW5zSW5mb0xpc3QudmFsdWUuY29uY2F0\nKGdldEZhbnNJbmZvTGlzdC5kYXRhKTtcbiAgICAgICAgICAgIHBhZ2VPZmZzZXQudmFsdWUgKz0g\ncGFnZVNpemU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZ2V0RmFuc0luZm9MaXN0Lmhh\nc19uZXh0KSB7XG4gICAgICAgICAgICBpc0NhbmNlbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNh\nbmNsZVNjcm9sbExpc3RlbmVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAg\nICAgICAgIGxvZy5pbmZvKFtcIuiOt+WPlueyieS4neaVsOaNruWksei0pVwiXSk7XG4gICAgICAg\nICAgaWYgKGlzRmlyc3RMb2FkKSB7XG4gICAgICAgICAgICBpc0FzeW5jTG9hZEVuZC52YWx1ZSA9\nIHRydWU7XG4gICAgICAgICAgICBpc0NhbmNlbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlzRW1w\ndHkudmFsdWUgPSB0cnVlO1xuICAgICAgICAgICAgY2FuY2xlU2Nyb2xsTGlzdGVuZXIoKTtcbiAg\nICAgICAgICAgIGlzTG9hZGluZ0VuZC52YWx1ZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAg\nICAgfVxuICAgICAgICBzaG93SXNMb2FkaW5nLnZhbHVlID0gIWlzQ2FuY2VsZWQ7XG4gICAgICAg\nIGxvZy5pbmZvKFtcIuiOt+WPluWIsOeahOeyieS4nVwiLCBnZXRGYW5zSW5mb0xpc3RdKTtcbiAg\nICAgIH07XG4gICAgICBjb25zdCBhcnJvd0xlZnRDbGlja0V2ZW50ID0gKCkgPT4ge1xuICAgICAg\nICBUaWViYVJvdXRlci5yb3V0ZXIuYmFjaygpO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IGp1bXBU\nb1VzZXJIb21lID0gKHVybCkgPT4ge1xuICAgICAgICB3aW5kb3cub3Blbih1cmwsIFwiX2JsYW5r\nXCIpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiAoX2N0eCwgX2NhY2hlKSA9PiB7XG4gICAgICAg\nIGNvbnN0IF9jb21wb25lbnRfQXJyb3dMZWZ0ID0gdnVlLnJlc29sdmVDb21wb25lbnQoXCJBcnJv\nd0xlZnRcIik7XG4gICAgICAgIGNvbnN0IF9jb21wb25lbnRfZWxfaWNvbiA9IEVsSWNvbjtcbiAg\nICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9jb2wgPSBFbENvbDtcbiAgICAgICAgY29uc3QgX2Nv\nbXBvbmVudF9lbF9yb3cgPSBFbFJvdztcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9oZWFk\nZXIgPSBFbEhlYWRlcjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9hdmF0YXIgPSBFbEF2\nYXRhcjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF90ZXh0ID0gRWxUZXh0O1xuICAgICAg\nICBjb25zdCBfY29tcG9uZW50X2VsX2J1dHRvbiA9IEVsQnV0dG9uO1xuICAgICAgICBjb25zdCBf\nY29tcG9uZW50X2VsX2VtcHR5ID0gRWxFbXB0eTtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9l\nbF9zY3JvbGxiYXIgPSBFbFNjcm9sbGJhcjtcbiAgICAgICAgY29uc3QgX2NvbXBvbmVudF9lbF9t\nYWluID0gRWxNYWluO1xuICAgICAgICBjb25zdCBfY29tcG9uZW50X2VsX2NvbnRhaW5lciA9IEVs\nQ29udGFpbmVyO1xuICAgICAgICByZXR1cm4gdnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlQmxv\nY2soX2NvbXBvbmVudF9lbF9jb250YWluZXIsIHsgY2xhc3M6IFwiZGlzYWJsZS1odG1sLWJvZHkt\nc2Nyb2xsXCIgfSwge1xuICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAg\nICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2hlYWRlciwgeyBjbGFzczog\nXCJ1c2VyLXRvcFwiIH0sIHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogdnVlLndpdGhDdHgoKCkg\nPT4gW1xuICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX3Jvdywg\ne1xuICAgICAgICAgICAgICAgICAgZ3V0dGVyOiAyNCxcbiAgICAgICAgICAgICAgICAgIGNsYXNz\nOiBcInRvcC1uYXYtY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAg\nICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAg\nIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2NvbCwge1xuICAgICAgICAgICAgICAgICAg\nICAgIHNwYW46IDQsXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwidG9wLWxlZnQtYXJy\nb3ctaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IGFycm93TGVmdENsaWNr\nRXZlbnRcbiAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICAgIGRl\nZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5j\ncmVhdGVWTm9kZShfY29tcG9uZW50X2VsX2ljb24sIHsgc2l6ZTogMjAgfSwge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfQXJyb3dMZWZ0KVxu\nICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nXzogMVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICBd\nKSxcbiAgICAgICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgICAgIH0pLFxu\nICAgICAgICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9jb2wsIHtc\nbiAgICAgICAgICAgICAgICAgICAgICBzcGFuOiAxNixcbiAgICAgICAgICAgICAgICAgICAgICBj\nbGFzczogXCJ0b3AtdGl0bGUtbmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAg\nICAgICAgICAgICAgICAgICBkZWZhdWx0OiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlVGV4dFZOb2RlKHZ1ZS50b0Rpc3BsYXlTdHJpbmcodnVl\nLnVucmVmKG5hdlRpdGxlKSksIDEpXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAg\nICAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAg\nICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfY29sLCB7XG4gICAgICAgICAg\nICAgICAgICAgICAgc3BhbjogNCxcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ0b3At\ncmlnaHQtc3BhY2VcIlxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAg\nXSksXG4gICAgICAgICAgICAgICAgICBfOiAxXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAg\nICAgICAgXSksXG4gICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAg\nICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfbWFpbiwgeyBjbGFzczogXCJ1c2VyLW1h\naW5cIiB9LCB7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAg\nICAgICAgICAgICAgICB2dWUuY3JlYXRlVk5vZGUoX2NvbXBvbmVudF9lbF9zY3JvbGxiYXIsIHsg\nY2xhc3M6IFwidXNlci1jb250YWluZXJcIiB9LCB7XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0\nOiB2dWUud2l0aEN0eCgoKSA9PiBbXG4gICAgICAgICAgICAgICAgICAgICh2dWUub3BlbkJsb2Nr\nKHRydWUpLCB2dWUuY3JlYXRlRWxlbWVudEJsb2NrKHZ1ZS5GcmFnbWVudCwgbnVsbCwgdnVlLnJl\nbmRlckxpc3QodnVlLnVucmVmKGZhbnNJbmZvTGlzdCksIChmYW5zSW5mbykgPT4ge1xuICAgICAg\nICAgICAgICAgICAgICAgIHJldHVybiB2dWUub3BlbkJsb2NrKCksIHZ1ZS5jcmVhdGVFbGVtZW50\nQmxvY2soXCJkaXZcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwidXNlci1p\ndGVtXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoJGV2ZW50KSA9PiBqdW1w\nVG9Vc2VySG9tZShmYW5zSW5mby51cmwpXG4gICAgICAgICAgICAgICAgICAgICAgfSwgW1xuICAg\nICAgICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9p\nc3RlZF8yLCBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVtZW50Vk5v\nZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMywgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1\nZS5jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNCwgW1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfYXZhdGFyLCB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzogZmFuc0luZm8uYXZhdGFyLFxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAzNVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgfSwgbnVsbCwgOCwgW1wic3JjXCJdKVxuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVFbGVt\nZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgdnVlLmNyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF82LCBbXG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVWTm9kZShfY29tcG9uZW50X2Vs\nX3RleHQsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ1c2Vy\nLW5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVuY2F0ZWQ6IFwi\nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZ1ZS5jcmVhdGVUZXh0Vk5vZGUodnVlLnRvRGlz\ncGxheVN0cmluZyhmYW5zSW5mby51c2VyTmFtZSksIDEpXG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXzogMlxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDI0KVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAg\nICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdnVlLmNy\nZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF83LCBbXG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgdnVlLmNyZWF0ZVZOb2RlKF9jb21wb25lbnRfZWxfYnV0dG9uLCB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImluZm9cIixcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIHNpemU6IFwic21hbGxcIixcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIHBsYWluOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6\nIFwiIzYyNmFlZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQ6IFwiXCIs\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJ1c2VyLWZvbGxvdy1idG5c\nIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGRlZmF1bHQ6IHZ1ZS53aXRoQ3R4KCgpID0+IFtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgdnVlLmNyZWF0ZVRleHRWTm9kZShcIuWFs+azqFwiKVxuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf\nOiAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgICAg\nICAgXSwgOCwgX2hvaXN0ZWRfMSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLCAyNTYpKSxcbiAg\nICAgICAgICAgICAgICAgICAgdnVlLnVucmVmKHNob3dJc0xvYWRpbmcpID8gKHZ1ZS5vcGVuQmxv\nY2soKSwgdnVlLmNyZWF0ZUVsZW1lbnRCbG9jayh2dWUuRnJhZ21lbnQsIHsga2V5OiAwIH0sIHZ1\nZS5yZW5kZXJMaXN0KDMsIChpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZ1\nZS5jcmVhdGVWTm9kZShUZW1wbGF0ZUZvbGxvd1VzZXIsIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGtleTogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9mb3I6IHRydWUsXG4gICAg\nICAgICAgICAgICAgICAgICAgICByZWZfa2V5OiBcIiRsb2FkaW5nXCIsXG4gICAgICAgICAgICAg\nICAgICAgICAgICByZWY6ICRsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAg\nICAgICAgICAgICAgICAgIH0pLCA2NCkpIDogdnVlLmNyZWF0ZUNvbW1lbnRWTm9kZShcIlwiLCB0\ncnVlKSxcbiAgICAgICAgICAgICAgICAgICAgdnVlLnVucmVmKGlzRW1wdHkpID8gKHZ1ZS5vcGVu\nQmxvY2soKSwgdnVlLmNyZWF0ZUJsb2NrKF9jb21wb25lbnRfZWxfZW1wdHksIHtcbiAgICAgICAg\nICAgICAgICAgICAgICBrZXk6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246\nIFwi5pyq6I635Y+W5Yiw5pWw5o2uXCJcbiAgICAgICAgICAgICAgICAgICAgfSkpIDogdnVlLmNy\nZWF0ZUNvbW1lbnRWTm9kZShcIlwiLCB0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgdnVlLnVu\ncmVmKGlzTG9hZGluZ0VuZCkgPyAodnVlLm9wZW5CbG9jaygpLCB2dWUuY3JlYXRlRWxlbWVudEJs\nb2NrKFwiZGl2XCIsIF9ob2lzdGVkXzgsIFwi5bey57uP5Yiw5bqV5LqGflwiKSkgOiB2dWUuY3Jl\nYXRlQ29tbWVudFZOb2RlKFwiXCIsIHRydWUpXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAg\nICAgICAgICAgICAgIF86IDFcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBdKSxc\nbiAgICAgICAgICAgICAgXzogMVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdKSxcbiAgICAg\nICAgICBfOiAxXG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gIH0pO1xuICBjb25zdCBG\nYW5zID0gXC8qIEBfX1BVUkVfXyAqXC8gX2V4cG9ydF9zZmMkMShfc2ZjX21haW4sIFtbXCJfX3Nj\nb3BlSWRcIiwgXCJkYXRhLXYtNDE2ZDFjMTBcIl1dKTtcbiAgY29uc3QgVGllYmFSb3V0ZXIgPSB7\nXG4gICAgcm91dGVyOiBudWxsLFxuICAgIGluaXQoKSB7XG4gICAgICB0aGlzLnJvdXRlciA9IHZ1\nZVJvdXRlci5jcmVhdGVSb3V0ZXIoe1xuICAgICAgICBcL1wvIDQuIOWGhemDqOaPkOS+m+S6hiBo\naXN0b3J5IOaooeW8j+eahOWunueOsOOAguS4uuS6hueugOWNlei1t+inge+8jOaIkeS7rOWcqOi\/\nmemHjOS9v+eUqCBoYXNoIOaooeW8j+OAglxuICAgICAgICBoaXN0b3J5OiB2dWVSb3V0ZXIuY3Jl\nYXRlV2ViSGFzaEhpc3RvcnkoKSxcbiAgICAgICAgcm91dGVzOiBbXG4gICAgICAgICAge1xuICAg\nICAgICAgICAgcGF0aDogXCJcL1wiLFxuICAgICAgICAgICAgbmFtZTogXCJIb21lXCIsXG4gICAg\nICAgICAgICBjb21wb25lbnQ6IEhvbWUsXG4gICAgICAgICAgICBtZXRhOiB7XG4gICAgICAgICAg\nICAgIGtlZXBBbGl2ZTogdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAg\nICAge1xuICAgICAgICAgICAgcGF0aDogXCJcL2Fib3V0XCIsXG4gICAgICAgICAgICBuYW1lOiBc\nIkFib3V0XCIsXG4gICAgICAgICAgICBjb21wb25lbnQ6IEFib3V0XG4gICAgICAgICAgfSxcbiAg\nICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBcIlwvZm9sbG93XCIsXG4gICAgICAgICAgICBu\nYW1lOiBcIkZvbGxvd1wiLFxuICAgICAgICAgICAgY29tcG9uZW50OiBGb2xsb3dcbiAgICAgICAg\nICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhdGg6IFwiXC9mYW5zXCIsXG4gICAgICAg\nICAgICBuYW1lOiBcIkZhbnNcIixcbiAgICAgICAgICAgIGNvbXBvbmVudDogRmFuc1xuICAgICAg\nICAgIH1cbiAgICAgICAgXVxuICAgICAgfSk7XG4gICAgICB0aGlzLnJvdXRlci5wdXNoKFwiXC9c\nIik7XG4gICAgfVxuICB9O1xuICBjb25zdCBBcHBDU1MgPSAnaHRtbCxcXHJcXG5ib2R5IHtcXHJc\nXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxuICAgIGhlaWdodDogMTAwJTtcXHJcXG59XFxyXFxuLnVz\nZXItaW5mby10YWJzPi5lbC10YWJzX19oZWFkZXIge1xcclxcbiAgbWFyZ2luOiAwIDAgNXB4O1xc\nclxcbn1cXHJcXG5cXHJcXG4ucG9wcy1pcC1sb2NhdGlvbi1oZWxwIHtcXHJcXG4gIHdpZHRoOiAx\nMDAlO1xcclxcbiAgbWF4LXdpZHRoOiAxMDAlO1xcclxcbiAgbWluLXdpZHRoOiAxMDAlO1xcclxc\nbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbiAgY29sb3I6ICM3NTU4RkU7XFxyXFxufVxcclxc\nblxcclxcbnNwYW5bZGF0YS1zZXg9XCIxXCJdIHtcXHJcXG4gIGNvbG9yOiAjMzdCOEQ1O1xcclxc\nbn1cXHJcXG5cXHJcXG5zcGFuW2RhdGEtc2V4PVwiMlwiXSB7XFxyXFxuICBjb2xvcjogI0ZGODc4\nNztcXHJcXG59JztcbiAgY29uc3QgVGllYmFIb21lID0ge1xuICAgICRkYXRhOiB7XG4gICAgICBh\ncHBOYW1lOiBcInZpdGUtYXBwXCJcbiAgICB9LFxuICAgIGluaXQoKSB7XG4gICAgICBUaWViYVJv\ndXRlci5pbml0KCk7XG4gICAgICBNb3VudFZ1ZShfc2ZjX21haW4kOSwgW1RpZWJhUm91dGVyLnJv\ndXRlciwgRWxlbWVudFBsdXNdKTtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9c\nbiAgICAgICAgYFxuICAgICAgICAjJHtWVUVfRUxFX05BTUVfSUR9e1xuICAgICAgICAgICAgei1p\nbmRleDogMTAwMDtcbiAgICAgICAgfVxuICAgICAgICBib2R5ID4gZGl2Om5vdChbaWQ9XCIke1ZV\nRV9FTEVfTkFNRV9JRH1cIl0pe1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAg\nfVxuICAgICAgICBib2R5ID4gZGl2W2NsYXNzPVwiZGlhX3dyYXBwZXJcIl0sXG4gICAgICAgIGJv\nZHkgPiBkaXZbY2xhc3M9XCJkaWFfbWFza1wiXSxcbiAgICAgICAgIyR7VlVFX0VMRV9OQU1FX0lE\nfSB+ICp7XG4gICAgICAgICAgICBkaXNwbGF5OiB1bnNldDtcbiAgICAgICAgfVxuICAgICAgICBg\nXG4gICAgICApO1xuICAgICAgYWRkU3R5bGUoQXBwQ1NTKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0\nIFRpZWJhQ2hlY2tVcmwgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVu\ndShcImJhaWR1LXRpZWJhLWNoZWNrVXJsLWF1dG9KdW1wVXJsXCIsICgpID0+IHtcbiAgICAgICAg\ndGhpcy5hdXRvSnVtcFVybCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n6Lez6L2s6ZO+5o6lXG4gICAgICpcL1xuICAgIGF1dG9KdW1wVXJsKCkge1xuICAgICAgbG9nLmlu\nZm8oYOi3s+i9rOmTvuaOpWApO1xuICAgICAgbGV0IHVybCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMo\nZ2xvYmFsVGhpcy5sb2NhdGlvbi5zZWFyY2gpLmdldChcInVybFwiKTtcbiAgICAgIGlmICh0eXBl\nb2YgdXJsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKGDot7Povazpk77m\njqXvvJpgICsgdXJsKTtcbiAgICAgICAgZ2xvYmFsVGhpcy5sb2NhdGlvbi5ocmVmID0gdXJsO1xu\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yKGDop6PmnpDlvZPliY3nmoTot7Povazp\nk77mjqXlpLHotKVgKTtcbiAgICAgICAgUW1zZy5lcnJvcihcIuino+aekOW9k+WJjeeahOi3s+i9\nrOmTvuaOpeWksei0pVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaWR1VGll\nQmEgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxlKFRpZUJhU2hpZWxkQ1NTKTtcbiAg\nICAgIGFkZFN0eWxlKFVuaVRpZUJhU2hpZWxkQ1NTKTtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAg\nICBcLypjc3MqXC9cbiAgICAgICAgYFxuXHRcdFwvKiDnlLHkuo5semzlvLnnqpfnmoR6LWluZGV4\n5pivOTk5OTnvvIzmiYDku6XvvIzlm57lpI3moYbjgIF0b2FzdOOAgeeZu+W9leW8ueeql+eahHot\naW5kZXjopoHlpKfkuo45OTk5OSAqXC9cblx0XHRcLyog5bqV6YOo5Zue5aSN5qGGICpcL1xuICAg\nICAgICAuY29tbWVudC1ib3gtd3JhcC1semx7XG4gICAgICAgICAgICB6LWluZGV4OiBjYWxjKDk5\nOTk5ICsgMTApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblx0XHRcLyog55m75b2V5by556qXICpc\nL1xuXHRcdC5sb2dpbi13YWtlLW1vZGFsLW1hc2t7XG5cdFx0XHR6LWluZGV4OiBjYWxjKDk5OTk5\nICsgMjApICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdFwvKiDmtojmga90b2FzdCAqXC9cblx0XHQu\ndGItdG9hc3R7XG5cdFx0XHR6LWluZGV4OiBjYWxjKDk5OTk5ICsgMTAwKSAhaW1wb3J0YW50O1xu\nXHRcdH1cbiAgICAgICAgYFxuICAgICAgKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE\n5YiZXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFxuICAgICAgICBcImJhaWR1X3RpZWJh\nX2NsaWNrT25UaGVPd25lclNBdmF0YXJUb0NvcnJlY3RseVJlZGlyZWN0VG9UaGVIb21lcGFnZVwi\nLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgVGllYmFDb3JlLmFkZEF1dGhvckNsaWNrRXZl\nbnQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcImJh\naWR1X3RpZWJhX2F1dG9KdW1wVG9NYWluSG9zdFwiLCAoKSA9PiB7XG4gICAgICAgIFRpZWJhQ29y\nZS5hdXRvSnVtcFRvTWFpbkhvc3QoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNN\nZW51KFwiYmFpZHVfdGllYmFfY2xpZW50Q2FsbE1hc3F1ZXJhZGVcIiwgKCkgPT4ge1xuICAgICAg\nICBUaWViYUNvcmUuY2xpZW50Q2FsbE1hc3F1ZXJhZGUoKTtcbiAgICAgIH0pO1xuICAgICAgQmFp\nZHVIb29rLmVsZW1lbnRBcHBlbmRDaGlsZCgpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25j\nZShcImJhaWR1X3RpZWJhX2hpamFja193YWtlX3VwXCIsICgpID0+IHtcbiAgICAgICAgQmFpZHVI\nb29rLndpbmRvd1dlYnBhY2tKc29ucF90aWViYSgpO1xuICAgICAgfSk7XG4gICAgICBpZiAoQmFp\nZHVSb3V0ZXIuaXNUaWVCYUluZGV4KCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6\nIOmmlumhtVwiKTtcbiAgICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfdGllYmFfaW5k\nZXhfb3BlbkFOZXdUYWJcIiwgKCkgPT4ge1xuICAgICAgICAgIFRpZWJhQmFOZWkub3BlbkFOZXdU\nYWIoKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzVGllQmFQ\nb3N0KCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOW4luWtkFwiKTtcbiAgICAg\nICAgVGllYmFVbmlBcHBQb3N0LmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIu\naXNUaWVCYU5ld1RvcGljKCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOivnemi\nmOeDreiurlwiKTtcbiAgICAgICAgVGllYmFUb3BpYy5pbml0KCk7XG4gICAgICB9IGVsc2UgaWYg\nKEJhaWR1Um91dGVyLmlzVGllQmFIeWJyaWQoKSkge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIlJv\ndXRlcjog5pCc57Si57u85ZCIXCIpO1xuICAgICAgICBUaWViYUh5YnJpZC5pbml0KCk7XG4gICAg\nICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzVGllQmFOZWkoKSkge1xuICAgICAgICBsb2cuc3Vj\nY2VzcyhcIlJvdXRlcjog5ZCn5YaFXCIpO1xuICAgICAgICBUaWViYUJhTmVpLmluaXQoKTtcbiAg\nICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNUaWVCYUhvbWUoKSkge1xuICAgICAgICBsb2cu\nc3VjY2VzcyhcIlJvdXRlcjog55So5oi35Li76aG1XCIpO1xuICAgICAgICBUaWViYUhvbWUuaW5p\ndCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzVGll\nQmFDaGVja1VybCgpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKGBSb3V0ZXI6IOmqjOivgemTvuaO\npeS4remXtOmhtWApO1xuICAgICAgICBUaWViYUNoZWNrVXJsLmluaXQoKTtcbiAgICAgICAgcmV0\ndXJuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yKFwiUm91dGVyOiDmnKrnn6Vc\nIik7XG4gICAgICB9XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJiYWlkdV90aWViYV9hZGRf\nc2Nyb2xsX3RvcF9idXR0b25faW5fZm9ydW1cIiwgKCkgPT4ge1xuICAgICAgICBUaWViYUNvcmUu\nYWRkU2Nyb2xsVG9wQnV0dG9uKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVu\ndShcImJhaWR1X3RpZWJhX2FkZF9zZWFyY2hcIiwgKCkgPT4ge1xuICAgICAgICBUaWViYVNlYXJj\naC5pbml0KCk7XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLnJlYWR5KCgpID0+IHtcbiAgICAg\nICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfdGllYmFfY2hlY2tTa2VsZXRvblwiLCAoKSA9\nPiB7XG4gICAgICAgICAgVGllYmFDb3JlLmNoZWNrU2tlbGV0b24oKTtcbiAgICAgICAgfSk7XG4g\nICAgICAgIHRoaXMuaW5pdFRpZWJhRGF0YSgpO1xuICAgICAgICB0aGlzLmFkZFRvcExlZnRNZW51\nKCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliJ3lp4vljJbotLTlkKfm\nlbDmja5cbiAgICAgKlxuICAgICAqIOS+i+Wmgu+8muWQp+WQje+8jOmrmOa4heWbvueJh1xuICAg\nICAqXC9cbiAgICBpbml0VGllYmFEYXRhKCkge1xuICAgICAgdXRpbHMud2FpdEFueU5vZGUoW1wi\nLnRiLW1vYmlsZS12aWV3cG9ydFwiLCBcIi5tYWluLXBhZ2Utd3JhcFwiXSkudGhlbihhc3luYyAo\nKSA9PiB7XG4gICAgICAgIGxldCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAg\nICAgICBUaWViYURhdGEuZm9ydW1OYW1lID0gVGllYmFDb3JlLmdldEN1cnJlbnRGb3J1bU5hbWUo\nKTtcbiAgICAgICAgICBUaWViYURhdGEuZm9ydW1JZCA9IFRpZWJhQ29yZS5nZXRDdXJyZW50Rm9y\ndW1JZCgpO1xuICAgICAgICAgIGlmIChUaWViYURhdGEuZm9ydW1OYW1lKSB7XG4gICAgICAgICAg\nICBsb2cuaW5mbyhcIuW9k+WJjeWQp++8mlwiICsgVGllYmFEYXRhLmZvcnVtTmFtZSk7XG4gICAg\nICAgICAgICBpZiAoUG9wc1BhbmVsLmdldFZhbHVlKFwiYmFpZHVfdGllYmFfb3B0aW1pemVfaW1h\nZ2VfcHJldmlld1wiKSkge1xuICAgICAgICAgICAgICBUaWViYVBvc3QuaW5pdFBvc3RJbWFnZUlu\nZm8oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwp\nO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMjUwKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOabv+aNoumhtumDqOW3puS+p+i0tOWQp+aMiemSruS4uuiPnOWNleaMiemS\nrlxuICAgICAqXC9cbiAgICBhZGRUb3BMZWZ0TWVudSgpIHtcbiAgICAgIGFkZFN0eWxlKFxuICAg\nICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxuXHRcdC5sb2dvLXdyYXBwZXJ7XG5cdFx0XHRkaXNw\nbGF5OiAtd2Via2l0LWJveDtcblx0XHRcdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0XHRcdGRp\nc3BsYXk6IC1tcy1mbGV4Ym94O1xuXHRcdFx0ZGlzcGxheTogZmxleDtcblx0XHRcdG1hcmdpbi1s\nZWZ0OiAwLjEzcmVtO1xuXHRcdH1cdFxuXHRcdGBcbiAgICAgICk7XG4gICAgICB1dGlscy53YWl0\nTm9kZShcIi5uYXYtYmFyLXRvcCAubG9nby13cmFwcGVyXCIsIDFlNCkudGhlbigoJGVsZSkgPT4g\ne1xuICAgICAgICBpZiAoISRlbGUpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAg\nICAgICAgJGVsZS5vdXRlckhUTUwgPSBcLypodG1sKlwvXG4gICAgICAgIGBcblx0XHRcdFx0PGRp\ndiBjbGFzcz1cImxvZ28td3JhcHBlclwiPlxuXHRcdFx0XHRcdDxzdmcgdD1cIjE3MTg1OTUzOTYy\nNTVcIiBjbGFzcz1cImljb25cIiB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249XCIx\nLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHAtaWQ9XCIzMTQ3\nXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMjggMjk4LjY2NjY2N2g3\nNjhhNDIuNjY2NjY3IDQyLjY2NjY2NyAwIDAgMCAwLTg1LjMzMzMzNEgxMjhhNDIuNjY2NjY3IDQy\nLjY2NjY2NyAwIDAgMCAwIDg1LjMzMzMzNHogbTc2OCAxNzAuNjY2NjY2SDEyOGE0Mi42NjY2Njcg\nNDIuNjY2NjY3IDAgMCAwIDAgODUuMzMzMzM0aDc2OGE0Mi42NjY2NjcgNDIuNjY2NjY3IDAgMCAw\nIDAtODUuMzMzMzM0eiBtMCAyNTZIMTI4YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAgMCA4NS4z\nMzMzMzRoNzY4YTQyLjY2NjY2NyA0Mi42NjY2NjcgMCAwIDAgMC04NS4zMzMzMzR6XCIgcC1pZD1c\nIjMxNDhcIj48XC9wYXRoPjxcL3N2Zz5cblx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRgO1xuICAg\nICAgICBsZXQgJGxvZ29XcmFwcGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAg\nICBcIi5uYXYtYmFyLXRvcCAubG9nby13cmFwcGVyXCJcbiAgICAgICAgKTtcbiAgICAgICAgZnVu\nY3Rpb24gZ2V0SGVsbG9UZXh0KCkge1xuICAgICAgICAgIHZhciBteURhdGUgPSBcLyogQF9fUFVS\nRV9fICpcLyBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHZhciBpID0gbXlEYXRlLmdldEhvdXJzKCk7\nXG4gICAgICAgICAgaWYgKGkgPCAxMikgcmV0dXJuIFwi5pep5LiK5aW9IVwiO1xuICAgICAgICAg\nIGVsc2UgaWYgKGkgPj0gMTIgJiYgaSA8IDE0KSByZXR1cm4gXCLkuK3ljYjlpb0hXCI7XG4gICAg\nICAgICAgZWxzZSBpZiAoaSA+PSAxNCAmJiBpIDwgMTgpIHJldHVybiBcIuS4i+WNiOWlvSFcIjtc\nbiAgICAgICAgICBlbHNlIGlmIChpID49IDE4KSByZXR1cm4gXCLmmZrkuIrlpb0hXCI7XG4gICAg\nICAgIH1cbiAgICAgICAgbGV0IG1lbnVMaXN0SW5mbyA9IFtcbiAgICAgICAgICB7XG4gICAgICAg\nICAgICBcImRhdGEtdG9cIjogXCJob21lXCIsXG4gICAgICAgICAgICBpY29uOiAnPHN2ZyBmaWxs\nPVwiIzNFQkJGRFwiIHQ9XCIxNzE4NTk4MTI3NjU1XCIgY2xhc3M9XCJpY29uXCIgdmlld0JveD1c\nIjAgMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cudzMu\nb3JnXC8yMDAwXC9zdmdcIiBwLWlkPVwiMjM2MlwiPjxwYXRoIGQ9XCJNNDU5LjcwNDQ0OCA4MzMu\nOTk2NTk4XCIgZmlsbD1cIiNEQTIwMTdcIiBwLWlkPVwiMjM2M1wiPjxcL3BhdGg+PHBhdGggZD1c\nIk05NDcuODU5MzY3IDQ1Ni41NTYyNDcgNTg5Ljk1MjkwOCAxNTYuMjU4ODU2Yy0yMS45MDU5MTYt\nMTguMzgwNjI2LTQ5LjcyMTQyNS0yOC41MTU0NTEtNzguMzIzODU2LTI4LjUyNDY2bC0wLjA0NDAw\nMiAwYy0yOC41ODUwMzUgMC01Ni4zOTU0MjggMTAuMTEwMjY1LTc4LjMwNTQzNyAyOC40NjczNTVs\nLTM1OC41MTczNzMgMzAwLjM0MDM2OWMtMTIuODUyNzI2IDEwLjc2NzIyOC0xNC41NDQyNTEgMjku\nOTEyMjYzLTMuNzc3MDIzIDQyLjc2NDk4OSA2LjAwNzgzMSA3LjE2NTE5IDE0LjYxNjkwNiAxMC44\nNTkzMjUgMjMuMjg4NDAyIDEwLjg1OTMyNSA2Ljg3NTU5NCAwIDEzLjc5MzE0NC0yLjMyMjkwNSAx\nOS40Nzc2MS03LjA4MjMwMmwxOC41MjA4MTktMTUuNTE5NDYyIDAgMzI1LjE2MDY2MWMwIDIxLjg5\nODc1MyA4LjUyNzIxMSA0Mi40ODg2OTcgMjQuMDExODggNTcuOTczMzY2IDE1LjQ4NDY2OSAxNS40\nODI2MjMgMzYuMDcxNTQzIDI0LjAxMDg1NyA1Ny45NzQzODkgMjQuMDEwODU3bDE4NC42NjU4Mzcg\nMCAwLTAuMDE5NDQzYzY2LjE3NDE0MiAwIDYwLjc4MDI5NS02MC42OTMzMTQgNjAuNzgwMjk1LTYw\nLjY5MzMxNEw0NTkuNzA0NDQ4IDYyOS41MzU5MjdjMC00LjE0NzQ2IDEuNjE2ODI0LTguMDQ4MzAz\nIDQuNTUyNjg5LTEwLjk4MzE0NSAyLjkzMDc0OS0yLjkzNDg0MiA2LjgzMzYzOS00LjU0NzU3MyAx\nMC45ODUxOTItNC41NDc1NzNsNzIuMTI0NjY3IDBjNC4xNTA1MyAwIDguMDQ3MjggMS42MTI3MzEg\nMTAuOTg0MTY5IDQuNTQ3NTczIDIuOTM0ODQyIDIuOTM0ODQyIDQuNTUxNjY2IDYuODM2NzA5IDQu\nNTUxNjY2IDEwLjk4MzE0NWwwIDIwNC40NjA2NzItMC4wMTAyMzMgMGMwIDAtNS4zOTM4NDcgNjAu\nNjkzMzE0IDYwLjc4MDI5NSA2MC42OTMzMTRsMCAwLjAxOTQ0MyAxODQuNjc4MTE2IDBjMjEuODk1\nNjgzIDAgNDIuNDg0NjAzLTguNTI4MjM0IDU3Ljk2OTI3My0yNC4wMTA4NTcgMTUuNDg4NzYzLTE1\nLjQ4NTY5MyAyNC4wMTU5NzMtMzYuMDc0NjEzIDI0LjAxNTk3My01Ny45NzMzNjZMODkwLjMzNjI1\nNiA0ODcuNTM5OTEybDE4LjUwMTM3NiAxNS41Mjc2NDhjMTIuODQ0NTM5IDEwLjc3MjM0NCAzMS45\nOTM2NjggOS4xMDEyODUgNDIuNzcwMTA2LTMuNzQ2MzI0Qzk2Mi4zNzkwNTkgNDg2LjQ3NzcyIDk2\nMC43MDI4ODMgNDY3LjMzMzcwOCA5NDcuODU5MzY3IDQ1Ni41NTYyNDd6TTgyOS42MTk0MDYgODEy\nLjcyNDEwOWMwIDUuNjgxMzk2LTIuMjEwMzQxIDExLjAyNjEyNC02LjIyNjgxOCAxNS4wNDM2MjQt\nNC4wMTc1IDQuMDE3NS05LjM1NzExMiA2LjIyODg2NS0xNS4wNDA1NTUgNi4yMjg4NjVMNjIzLjYx\nNDU2NSA4MzMuOTk2NTk4IDYyMy42MTQ1NjUgNjI5LjUzNTkyN2MwLTIwLjM2NDgxNy03LjkzMTY0\nNi0zOS41MTM5NDYtMjIuMzMwNTg4LTUzLjkxMzkxLTE0LjQwMDk4OC0xNC40MDIwMTEtMzMuNTUx\nMTQtMjIuMzM0NjgxLTUzLjkxNTk1Ny0yMi4zMzQ2ODFsLTcyLjEyNDY2NyAwYy0yMC4zNjk5MzMg\nMC0zOS41MjExMDkgNy45MzI2Ny01My45MTgwMDQgMjIuMzM0NjgxLTE0LjM5NzkxOCAxNC4zOTg5\nNDItMjIuMzMwNTg4IDMzLjU0ODA3LTIyLjMzMDU4OCA1My45MTM5MWwwIDIwNC40NjA2NzJMMjE0\nLjI1NzI5NCA4MzMuOTk2NTk4Yy01LjY4MzQ0MyAwLTExLjAyMzA1NC0yLjIxMTM2NS0xNS4wNDA1\nNTUtNi4yMjg4NjUtNC4wMjI2MTctNC4wMTc1LTYuMjMyOTU4LTkuMzYyMjI4LTYuMjMyOTU4LTE1\nLjA0MDU1NWwwLTM3Ni4wMjQwOTYgMjc5LjI3ODY4MS0yMzMuOTY2NjgzYzExLjAwMzYxMi05LjIx\nNjkxOSAyNC45NjY2MjUtMTQuMjkyNTE4IDM5LjMyMTU2NC0xNC4yOTI1MThsMC4wMjA0NjYgMGMx\nNC4zNTkwMzMgMC4wMDUxMTcgMjguMzI4MTg1IDUuMDk0MDE4IDM5LjMyNjY4MSAxNC4zMjExN2wy\nNzguNjg4MjMzIDIzMy44MzY3MjNMODI5LjYxOTQwNiA4MTIuNzI0MTA5elwiIHAtaWQ9XCIyMzY0\nXCI+PFwvcGF0aD48XC9zdmc+JyxcbiAgICAgICAgICAgIHRleHQ6IFwi6aaW6aG1XCIsXG4gICAg\nICAgICAgICBjbGlja0NhbGxCYWNrKGV2ZW50KSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2Nh\ndGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZGF0YS10b1wiOiBcInBvc3Rpbmdc\nIixcbiAgICAgICAgICAgIGljb246ICc8c3ZnIGZpbGw9XCIjRkY5OTAwXCIgdD1cIjE3MTg1OTk1\nMjYxNTZcIiBjbGFzcz1cImljb25cIiB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249\nXCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHAtaWQ9XCIz\nMzYyXCI+PHBhdGggZD1cIk03ODMuNTMwNjY3IDkxMC45NjE3NzhsLTI1Mi4wMTc3NzgtMTIzLjQ0\nODg4OWEzOC4wMDE3NzggMzguMDAxNzc4IDAgMCAxIDMzLjI4LTY4LjI2NjY2N2wyMDYuNjIwNDQ0\nIDEwMS4zMTkxMTEgODkuMTQ0ODg5LTYxMC4yNDcxMTEtNDAxLjYzNTU1NSA0ODEuNjc4MjIydjIy\nMy44NTc3NzhhMzcuOTQ0ODg5IDM3Ljk0NDg4OSAwIDAgMS03NS44MzI4ODkgMHYtMjM2LjMxNjQ0\nNGMwLTEuOTkxMTExIDAuMTEzNzc4LTMuODY4NDQ0IDAuNDU1MTExLTUuODU5NTU2YTM4Ljk2ODg4\nOSAzOC45Njg4ODkgMCAwIDEgOC41MzMzMzMtMjAuMDI0ODg5bDM3OC40MjQ4ODktNDUzLjg1OTU1\nNUwxNjMuODQgNTE0LjM4OTMzM2wxNDMuMDE4NjY3IDc0LjEyNjIyM2MxOC43NzMzMzMgOS44OTg2\nNjcgMjYuMjI1Nzc4IDMyLjgyNDg4OSAxNy4wNjY2NjYgNTEuNzY4ODg4YTM2Ljg2NCAzNi44NjQg\nMCAwIDEtNDkuMzIyNjY2IDE3LjA2NjY2N0w2Ny43NTQ2NjcgNTQ5LjcxNzMzM2EzOC45MTIgMzgu\nOTEyIDAgMCAxLTE3LjY5MjQ0NS0xOC44ODcxMTEgMzcuNTQ2NjY3IDM3LjU0NjY2NyAwIDAgMSAx\nNS41ODc1NTYtNTAuNzQ0ODg5TDg5OS4xODU3NzggNDcuNzg2NjY3YTM5LjEzOTU1NiAzOS4xMzk1\nNTYgMCAwIDEgMTcuOTc2ODg5LTQuMzIzNTU2IDM3LjgzMTExMSAzNy44MzExMTEgMCAwIDEgMzcu\nOTQ0ODg5IDMxLjAwNDQ0NSAzOS4zMTAyMjIgMzkuMzEwMjIyIDAgMCAxLTAuNjgyNjY3IDE4LjMx\nODIyMkw4MzkuMTExMTExIDg4Mi4wNjIyMjJhMzguMTE1NTU2IDM4LjExNTU1NiAwIDAgMS0zMi4x\nNDIyMjIgMzIuMTk5MTExIDM3LjE0ODQ0NCAzNy4xNDg0NDQgMCAwIDEtMjMuNDM4MjIyLTMuMjk5\nNTU1elwiIHAtaWQ9XCIzMzYzXCI+PFwvcGF0aD48XC9zdmc+JyxcbiAgICAgICAgICAgIHRleHQ6\nIFwi5Y+R5biWXCIsXG4gICAgICAgICAgICBjbGlja0NhbGxCYWNrKGV2ZW50KSB7XG4gICAgICAg\nICAgICAgIHZhciBfYTM7XG4gICAgICAgICAgICAgIGlmIChCYWlkdVJvdXRlci5pc1RpZUJhUG9z\ndCgpIHx8IEJhaWR1Um91dGVyLmlzVGllQmFOZWkoKSkge1xuICAgICAgICAgICAgICAgIGxldCAk\nbW9iaWxlVmlld3BvcnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAg\nICAgXCIudGItbW9iaWxlLXZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAg\nICAgICAgIGlmICgkbW9iaWxlVmlld3BvcnQpIHtcbiAgICAgICAgICAgICAgICAgIGxldCB2dWVP\nYmogPSBWdWVVdGlscy5nZXRWdWUoJG1vYmlsZVZpZXdwb3J0KTtcbiAgICAgICAgICAgICAgICAg\nIGlmICh2dWVPYmopIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGdvUG9zdCA9ICh2dWVPYmog\nPT0gbnVsbCA\/IHZvaWQgMCA6IHZ1ZU9iai5nb1Bvc3QpIHx8ICgoX2EzID0gdnVlT2JqID09IG51\nbGwgPyB2b2lkIDAgOiB2dWVPYmouJHBhcmVudCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5nb1Bv\nc3QpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGdvUG9zdCA9PT0gXCJmdW5jdGlv\nblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZ29Qb3N0KCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCAkYXBwVmlldyA9IGRvY3Vt\nZW50LnF1ZXJ5U2VsZWN0b3IoXCIuYXBwLXZpZXdcIik7XG4gICAgICAgICAgICAgICAgaWYgKCRh\ncHBWaWV3KSB7XG4gICAgICAgICAgICAgICAgICBsZXQgYXBwVmlld1Z1ZU9iaiA9IFZ1ZVV0aWxz\nLmdldFZ1ZSgkYXBwVmlldyk7XG4gICAgICAgICAgICAgICAgICBpZiAoYXBwVmlld1Z1ZU9iaiAm\nJiB0eXBlb2YgYXBwVmlld1Z1ZU9iai5nb3RvUG9zdFBhZ2UgPT09IFwiZnVuY3Rpb25cIikge1xu\nICAgICAgICAgICAgICAgICAgICBhcHBWaWV3VnVlT2JqLmdvdG9Qb3N0UGFnZSgpO1xuICAgICAg\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihcIuacquaJvuWIsOWPkeW4luWHveaVsFwi\nKTtcbiAgICAgICAgICAgICAgICBRbXNnLmVycm9yKFwi5pyq5om+5Yiw5Y+R5biW5Ye95pWwXCIp\nO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihcIuiv\nt+WcqOWQp+WGhXzluJblrZDlhoXkvb\/nlKhcIik7XG4gICAgICAgICAgICAgICAgUW1zZy5lcnJv\ncihcIuivt+WcqOWQp+WGhXzluJblrZDlhoXkvb\/nlKhcIik7XG4gICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZGF0\nYS10b1wiOiBcInNlYXJjaFwiLFxuICAgICAgICAgICAgaWNvbjogJzxzdmcgZmlsbD1cIiM5RENB\nMDhcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHZpZXdCb3g9XCIw\nIDAgMTAyNCAxMDI0XCIgPjxwYXRoIGQ9XCJtNzk1LjkwNCA3NTAuNzIgMTI0Ljk5MiAxMjQuOTI4\nYTMyIDMyIDAgMCAxLTQ1LjI0OCA0NS4yNDhMNzUwLjY1NiA3OTUuOTA0YTQxNiA0MTYgMCAxIDEg\nNDUuMjQ4LTQ1LjI0OHpNNDgwIDgzMmEzNTIgMzUyIDAgMSAwIDAtNzA0IDM1MiAzNTIgMCAwIDAg\nMCA3MDRcIj48XC9wYXRoPjxcL3N2Zz4nLFxuICAgICAgICAgICAgdGV4dDogXCLmkJzntKJcIixc\nbiAgICAgICAgICAgIGNsaWNrQ2FsbEJhY2soZXZlbnQpIHtcbiAgICAgICAgICAgICAgbGV0IHVz\nZXJJbnB1dCA9IHByb21wdChcIuivt+i+k+WFpemcgOimgeaQnOe0oueahOWGheWuuVwiKTtcbiAg\nICAgICAgICAgICAgaWYgKHVzZXJJbnB1dCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2Nh\ndGlvbi5ocmVmID0gVGllYmFVcmxBcGkuZ2V0SHlicmlkU2VhcmNoKHVzZXJJbnB1dCk7XG4gICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAg\nICAgICAgICAgIFwiZGF0YS10b1wiOiBcImdvdC10by1mb3J1bVwiLFxuICAgICAgICAgICAgaWNv\nbjogJzxzdmcgZmlsbD1cIiNGMzdEN0RcIiBjbGFzcz1cImljb25cIiB2aWV3Qm94PVwiMCAwIDEw\nMjQgMTAyNFwiIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIw\nMDBcL3N2Z1wiIHAtaWQ9XCI0MjQ3XCI+PHBhdGggZD1cIk04NDAuOTM3IDc4MC41NzNoLTE3My43\nMjFsLTE0MC4zNzYgMTUxLjAwOS00NC41NDItMTUxLjAwOWMtMTAwLjA4OCAwLTE4MS4yNTMtODIu\nMzcyLTE4MS4yNTMtMTg0LjAyMmwtMC03Ni43OTNjMC0xMDEuNjQ5IDgxLjE2NS0xODQuMDIyIDE4\nMS4yNTMtMTg0LjAyMmgzNTguNjM5YzEwMC4xMDggMCAxODEuMjUyIDgyLjM3MyAxODEuMjUyIDE4\nNC4wMjJ2NzYuNzkyYzAgMTAxLjY1LTgxLjE0NCAxODQuMDIzLTE4MS4yNTIgMTg0LjAyM3pNNDY5\nLjM0MyAzMDMuMTk0Yy0xMDAuMDg5IDAtMjAxLjU4MSA3OS42NDEtMjAxLjU4MSAxODEuMjcxdjgx\nLjg0NmMwIDk5Ljg5MiAyOC4wNzUgMTUzLjI3MyA2NS4zMzkgMTc4Ljc1M2wtNzIuMTQ3IDc3LjYx\nNC01MS40NS0xNzQuNDZjLTExNS42NTcgMC0yMDkuNDA0LTk1LjE3My0yMDkuNDA0LTIxMi41ODd2\nLTkwLjE1N2MwLTExNy40MTQgOTMuNzQ3LTIxMi42MDQgMjA5LjQwNC0yMTIuNjA0aDQxOS4zMThj\nOTkuMzgzIDAgMTgyLjQyMSA3MC4zNzQgMjAzLjg0MyAxNjQuNjY3LTYuNCAzLjMzNi0xMy41NCA1\nLjY3Ny0yMi4zMTkgNS42NzdsLTM0MS4wMDItMC4wMTl6XCIgcC1pZD1cIjQyNDhcIj48XC9wYXRo\nPjxcL3N2Zz4nLFxuICAgICAgICAgICAgdGV4dDogXCLov5vlkKdcIixcbiAgICAgICAgICAgIGNs\naWNrQ2FsbEJhY2soZXZlbnQpIHtcbiAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYg\nPSBUaWViYVVybEFwaS5nZXRHb1RvRm9ydW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9\nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFwiZGF0YS10b1wiOiBcIm1pbmVcIixcbiAgICAg\nICAgICAgIGljb246ICc8c3ZnIGZpbGw9XCIjREE5OURCXCIgY2xhc3M9XCJpY29uXCIgdmlld0Jv\neD1cIjAgMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cu\ndzMub3JnXC8yMDAwXC9zdmdcIiBwLWlkPVwiNDI5MVwiIHdpZHRoPVwiMTI4XCIgaGVpZ2h0PVwi\nMTI4XCI+PHBhdGggZD1cIk02NzguNCA1MzcuNmM3Ni44LTUxLjIgMTI4LTE0MC44IDEyOC0yNDMu\nMiAwLTE2Mi4xMzMzMzMtMTMyLjI2NjY2Ny0yOTQuNC0yOTQuNC0yOTQuNHMtMjk0LjQgMTMyLjI2\nNjY2Ny0yOTQuNCAyOTQuNGMwIDEwMi40IDUxLjIgMTkyIDEyOCAyNDMuMi0xNzkuMiA2OC4yNjY2\nNjctMzAyLjkzMzMzMyAyMzguOTMzMzMzLTMwMi45MzMzMzMgNDM5LjQ2NjY2NyAwIDI1LjYgMTcu\nMDY2NjY3IDQyLjY2NjY2NyA0Mi42NjY2NjYgNDIuNjY2NjY2czQyLjY2NjY2Ny0xNy4wNjY2Njcg\nNDIuNjY2NjY3LTQyLjY2NjY2NmMwLTIwOS4wNjY2NjcgMTc0LjkzMzMzMy0zODQgMzg0LTM4NHMz\nODQgMTcwLjY2NjY2NyAzODQgMzg0YzAgMjUuNiAxNy4wNjY2NjcgNDIuNjY2NjY3IDQyLjY2NjY2\nNyA0Mi42NjY2NjZzNDIuNjY2NjY3LTIxLjMzMzMzMyA0Mi42NjY2NjYtNDIuNjY2NjY2YzAtMjAw\nLjUzMzMzMy0xMjgtMzcxLjItMzAyLjkzMzMzMy00MzkuNDY2NjY3eiBtLTM3NS40NjY2NjctMjM4\nLjkzMzMzM2MwLTExNS4yIDkzLjg2NjY2Ny0yMDkuMDY2NjY3IDIwOS4wNjY2NjctMjA5LjA2NjY2\nN3MyMDkuMDY2NjY3IDkzLjg2NjY2NyAyMDkuMDY2NjY3IDIwOS4wNjY2NjctOTMuODY2NjY3IDIw\nOS4wNjY2NjctMjA5LjA2NjY2NyAyMDkuMDY2NjY2LTIwOS4wNjY2NjctOTMuODY2NjY3LTIwOS4w\nNjY2NjctMjA5LjA2NjY2NnpcIiBwLWlkPVwiNDI5MlwiPjxcL3BhdGg+PFwvc3ZnPicsXG4gICAg\nICAgICAgICB0ZXh0OiBcIuaIkeeahFwiLFxuICAgICAgICAgICAgY2xpY2tDYWxsQmFjayhldmVu\ndCkge1xuICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFRpZWJhVXJsQXBpLmdl\ndE1pbmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAg\nIGRvbXV0aWxzLm9uKCRsb2dvV3JhcHBlciwgXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAg\ndmFyIF9hMywgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZztcbiAgICAgICAgICBsZXQgJGRyYXdlciA9\nIF9fcG9wcy5kcmF3ZXIoe1xuICAgICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgICAgZW5h\nYmxlOiB0cnVlLFxuICAgICAgICAgICAgICB0ZXh0OiAoXG4gICAgICAgICAgICAgICAgXC8qaHRt\nbCpcL1xuICAgICAgICAgICAgICAgIGBcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRpZWJh\nX2FjY291bnRfZXhpdFwiPlxuXHRcdFx0XHRcdFx0XHRcdDxhIGhyZWY9XCJqYXZhc2NyaXB0Ojtc\nIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHTpgIDlh7rn\nmbvlvZVcblx0XHRcdFx0XHRcdFx0XHRcdDxcL3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0PFwvYT5c\nblx0XHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRcdFx0XHQ8YSBocmVmPVwiamF2YXNjcmlw\ndDo7XCIgY2xhc3M9XCJ0aWViYV91c2VyXCI+XG5cdFx0XHRcdFx0XHRcdFx0PGVtPlxuXHRcdFx0\nXHRcdFx0XHRcdFx0PGltZyBjbGFzcz1cInRpZWJhX2FjY291bnRfYXZhdGFyXCIgc3JjPVwiXCI+\nXG5cdFx0XHRcdFx0XHRcdFx0PFwvZW0+XG5cdFx0XHRcdFx0XHRcdFx0PHAgY2xhc3M9XCJ0aWVi\nYS11c2VyLWluZm9cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGllYmFfdXNl\ncl9ub2xvZ2luX3RpcF9jZW50ZXJcIj5cblx0XHRcdFx0XHRcdFx0XHRcdCR7Z2V0SGVsbG9UZXh0\nKCl9IOivt+eZu+W9leaIluazqOWGjFxuXHRcdFx0XHRcdFx0XHRcdFx0PFwvc3Bhbj5cblx0XHRc\ndFx0XHRcdFx0XHQ8XC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFz\ncz1cInRpZWJhX3VzZXJfbm9sb2dpbl90aXBfYm90dG9tXCI+55m75b2V5ZCO5pu057K+5b2pLi4u\nPFwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8XC9hPlxuXHRcdFx0XHRcdFx0XHRg\nXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGh0bWw6IHRydWUsXG4gICAgICAgICAg\nICAgIHN0eWxlOiBcIlwiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29udGVudDoge1xu\nICAgICAgICAgICAgICB0ZXh0OiAnPHVsIGNsYXNzPVwidGllYmEtbWVudS1saXN0XCI+PFwvdWw+\nJyxcbiAgICAgICAgICAgICAgaHRtbDogdHJ1ZSxcbiAgICAgICAgICAgICAgc3R5bGU6IFwiXCJc\nbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidG46IHtcbiAgICAgICAgICAgICAgb2s6IHtc\nbiAgICAgICAgICAgICAgICBlbmFibGU6IGZhbHNlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAg\nICAgICAgIGNhbmNlbDoge1xuICAgICAgICAgICAgICAgIGVuYWJsZTogZmFsc2VcbiAgICAgICAg\nICAgICAgfSxcbiAgICAgICAgICAgICAgY2xvc2U6IHtcbiAgICAgICAgICAgICAgICBlbmFibGU6\nIGZhbHNlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbmx5\nOiB0cnVlLFxuICAgICAgICAgICAgc2l6ZTogXCI2NiVcIixcbiAgICAgICAgICAgIGRpcmVjdGlv\nbjogXCJsZWZ0XCIsXG4gICAgICAgICAgICBtYXNrOiB7XG4gICAgICAgICAgICAgIGVuYWJsZTog\ndHJ1ZSxcbiAgICAgICAgICAgICAgY2xpY2tFdmVudDoge1xuICAgICAgICAgICAgICAgIHRvQ2xv\nc2U6IHRydWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0\neWxlOiAoXG4gICAgICAgICAgICAgIFwvKmNzcypcL1xuICAgICAgICAgICAgICBgXG5cdFx0XHRc\ndFx0XHQucG9wc3tcblx0XHRcdFx0XHRcdFx0LS1hdmF0YXItc2l6ZTogNjBweDtcblx0XHRcdFx0\nXHRcdFx0LS11c2VyLWluZm8tZm9udC1jb2xvcjogI2ZmZmZmZjtcblx0XHRcdFx0XHRcdH1cblx0\nXHRcdFx0XHRcdC5wb3BzLWRyYXdlci10aXRsZXtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDog\ndXJsKGh0dHBzOlwvXC9hcGkuY2hvbmdzcy5jb21cL3BjLnBocD9jYXRlZ29yeT1iaW5nKTtcblx0\nXHRcdFx0XHRcdFx0XC9cLyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdFx0XHRcdFx0XHRi\nYWNrZ3JvdW5kLXNpemU6IDEwMCUgMTAwJTtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZC1wb3Np\ndGlvbjogY2VudGVyO1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0\nO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0LnRpZWJhX2FjY291bnRfZXhpdHtcblx0XHRc\ndFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC50aWVi\nYV91c2Vye1xuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0XHRc\ndGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOiAxOHB4IDE1cHggMTJweDtc\nblx0XHRcdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDEw\nMCU7XG5cdFx0XHRcdFx0XHRcdGhlaWdodDogMTc1cHg7XG5cdFx0XHRcdFx0XHRcdHRleHQtZGVj\nb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC50aWViYV91c2VyIGVt\ne1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDY0\ncHg7XG5cdFx0XHRcdFx0XHRcdGhlaWdodDogNjRweDtcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWJv\ndHRvbTogMjNweDtcblx0XHRcdFx0XHRcdFx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1\nLCAwLjQpO1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRcdFx0XHRc\ndHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC50aWViYV9h\nY2NvdW50X2F2YXRhcntcblx0XHRcdFx0XHRcdFx0d2lkdGg6IHZhcigtLWF2YXRhci1zaXplKTtc\nblx0XHRcdFx0XHRcdFx0aGVpZ2h0OiB2YXIoLS1hdmF0YXItc2l6ZSk7XG5cdFx0XHRcdFx0XHRc\ndG1hcmdpbjogMnB4O1xuXHRcdFx0XHRcdFx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0XHRc\ndFx0XHR9XG5cdFx0XHRcdFx0XHQudGllYmFfdXNlcl9ub2xvZ2luX3RpcF9jZW50ZXJ7XG5cdFx0\nXHRcdFx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5c\ndFx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHRcdFx0XHRcdG1hcmdpbi1yaWdo\ndDogNnB4O1xuXHRcdFx0XHRcdFx0XHR0ZXh0LXNoYWRvdzogMXB4IDFweCAwIHJnYmEoMCwgMCwg\nMCwgMC40KTtcblx0XHRcdFx0XHRcdFx0Y29sb3I6IHZhcigtLXVzZXItaW5mby1mb250LWNvbG9y\nKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC50aWViYV91c2VyX25vbG9naW5fdGlwX2Jv\ndHRvbXtcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0XHRcdHdpZHRo\nOiAxMDAlO1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IDI0cHg7XG5cdFx0XHRcdFx0XHRcdGxpbmUt\naGVpZ2h0OiAyNHB4O1xuXHRcdFx0XHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRc\ndFx0XHRjb2xvcjogdmFyKC0tdXNlci1pbmZvLWZvbnQtY29sb3IpO1xuXHRcdFx0XHRcdFx0XHR0\nZXh0LXNoYWRvdzogMXB4IDFweCAwIHJnYmEoMCwgMCwgMCwgMC40KTtcblx0XHRcdFx0XHRcdFx0\nZm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiA1cHg7XG5cdFx0XHRc\ndFx0XHR9XG5cblxuXHRcdFx0XHRcdFx0LnBvcHMtZHJhd2VyLWNvbnRlbnR7XG5cdFx0XHRcdFx0\nXHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQudGllYmEtbWVu\ndS1saXN0e1xuXHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQudGllYmEt\nbWVudS1pdGVte1xuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHRcdFx0XHRh\nbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6IDM4cHg7XG4gICAgXHRc\ndFx0XHRcdFx0bGluZS1oZWlnaHQ6IDM4cHg7XG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMTdw\neDtcblx0XHRcdFx0XHRcdFx0bWFyZ2luOiAzcHggMHB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0\nXHRcdFx0LnRpZWJhLW1lbnUtaXRlbTpmaXJzdC1jaGlsZHtcblx0XHRcdFx0XHRcdFx0bWFyZ2lu\nLXRvcDogMHB4O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0LnRpZWJhLW1lbnUtaWNvbntc\nblx0XHRcdFx0XHRcdFx0ZGlzcGxheTogZmxleDtcbiAgICBcdFx0XHRcdFx0XHRhbGlnbi1pdGVt\nczogY2VudGVyO1xuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6IDIycHg7XG4gICAgXHRcdFx0XHRc\ndFx0bWFyZ2luLXJpZ2h0OiA4cHg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQudGllYmEt\nbWVudS1pY29uIHN2Z3tcblx0XHRcdFx0XHRcdFx0d2lkdGg6IDIwcHg7XG5cdFx0XHRcdFx0XHRc\ndGhlaWdodDogMjBweDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC50ZWJhLW1lbnUtdGV4\ndHtcblx0XHRcdFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHRcdFx0dGV4dC1v\ndmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRcdFx0XHRcdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5c\ndFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRgXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSk7\nXG4gICAgICAgICAgbGV0IGlzTG9naW4gPSBmYWxzZTtcbiAgICAgICAgICBsZXQgJHRpZWJhX3Vz\nZXIgPSAkZHJhd2VyLiRzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoXCIudGllYmFfdXNlclwiKTtc\nbiAgICAgICAgICBsZXQgJG1lbnVMaXN0ID0gJGRyYXdlci4kc2hhZG93Um9vdC5xdWVyeVNlbGVj\ndG9yKFxuICAgICAgICAgICAgXCIudGllYmEtbWVudS1saXN0XCJcbiAgICAgICAgICApO1xuICAg\nICAgICAgIGxldCAkYXZhdGFyID0gJGRyYXdlci4kc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFxu\nICAgICAgICAgICAgXCIudGllYmFfYWNjb3VudF9hdmF0YXJcIlxuICAgICAgICAgICk7XG4gICAg\nICAgICAgJGRyYXdlci4kc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgXCIu\ndGllYmEtdXNlci1pbmZvXCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGxldCAkdGllYmFfdXNl\ncl9ub2xvZ2luX3RpcF9jZW50ZXIgPSAkZHJhd2VyLiRzaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Io\nXG4gICAgICAgICAgICBcIi50aWViYV91c2VyX25vbG9naW5fdGlwX2NlbnRlclwiXG4gICAgICAg\nICAgKTtcbiAgICAgICAgICBsZXQgJHRpZWJhX3VzZXJfbm9sb2dpbl90aXBfYm90dG9tID0gJGRy\nYXdlci4kc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgXCIudGllYmFfdXNl\ncl9ub2xvZ2luX3RpcF9ib3R0b21cIlxuICAgICAgICAgICk7XG4gICAgICAgICAgbWVudUxpc3RJ\nbmZvLmZvckVhY2goKG1lbnVJdGVtSW5mbykgPT4ge1xuICAgICAgICAgICAgbGV0ICRtZW51SXRl\nbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaVwiKTtcbiAgICAgICAgICAgICRtZW51SXRl\nbS5jbGFzc0xpc3QuYWRkKFwidGllYmEtbWVudS1pdGVtXCIpO1xuICAgICAgICAgICAgJG1lbnVJ\ndGVtLnNldEF0dHJpYnV0ZShcImRhdGEtdG9cIiwgbWVudUl0ZW1JbmZvW1wiZGF0YS10b1wiXSk7\nXG4gICAgICAgICAgICAkbWVudUl0ZW0uaW5uZXJIVE1MID0gYFxuXHRcdFx0XHRcdFx0PGkgY2xh\nc3M9XCJ0aWViYS1tZW51LWljb25cIj5cblx0XHRcdFx0XHRcdFx0JHttZW51SXRlbUluZm8uaWNv\nbn1cblx0XHRcdFx0XHRcdDxcL2k+XG5cdFx0XHRcdFx0XHQ8cCBjbGFzcz1cInRlYmEtbWVudS10\nZXh0XCI+JHttZW51SXRlbUluZm8udGV4dH08XC9wPlxuXHRcdFx0XHRcdFx0YDtcbiAgICAgICAg\nICAgIGRvbXV0aWxzLm9uKCRtZW51SXRlbSwgXCJjbGlja1wiLCAoZXZlbnQpID0+IHtcbiAgICAg\nICAgICAgICAgbWVudUl0ZW1JbmZvLmNsaWNrQ2FsbEJhY2soZXZlbnQpO1xuICAgICAgICAgICAg\nfSk7XG4gICAgICAgICAgICAkbWVudUxpc3QuYXBwZW5kQ2hpbGQoJG1lbnVJdGVtKTtcbiAgICAg\nICAgICB9KTtcbiAgICAgICAgICAkYXZhdGFyLnNyYyA9IFRpZWJhVXJsQXBpLmdldFVzZXJBdmF0\nYXIoXCJudWxsXCIpO1xuICAgICAgICAgIGxldCAkZWxlMiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0\nb3IoXCIuYXBwLXZpZXdcIikgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi50Yi1tb2JpbGUt\ndmlld3BvcnRcIik7XG4gICAgICAgICAgaWYgKCRlbGUyKSB7XG4gICAgICAgICAgICBsZXQgZWxl\nVnVlT2JqID0gVnVlVXRpbHMuZ2V0VnVlKCRlbGUyKTtcbiAgICAgICAgICAgIGlmIChlbGVWdWVP\nYmopIHtcbiAgICAgICAgICAgICAgaWYgKChfYTMgPSBlbGVWdWVPYmogPT0gbnVsbCA\/IHZvaWQg\nMCA6IGVsZVZ1ZU9iai51c2VyKSA9PSBudWxsID8gdm9pZCAwIDogX2EzLmlzX2xvZ2luKSB7XG4g\nICAgICAgICAgICAgICAgaXNMb2dpbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgbGV0IHBvcnRy\nYWl0ID0gZWxlVnVlT2JqLnVzZXIucG9ydHJhaXQ7XG4gICAgICAgICAgICAgICAgbGV0IHNob3dO\nYW1lID0gZWxlVnVlT2JqLnVzZXIuc2hvd19uaWNrbmFtZSB8fCBlbGVWdWVPYmoudXNlci5uYW1l\nX3Nob3cgfHwgZWxlVnVlT2JqLnVzZXIubmFtZTtcbiAgICAgICAgICAgICAgICAkYXZhdGFyLnNy\nYyA9IFRpZWJhVXJsQXBpLmdldFVzZXJBdmF0YXIocG9ydHJhaXQpO1xuICAgICAgICAgICAgICAg\nICR0aWViYV91c2VyX25vbG9naW5fdGlwX2NlbnRlci5pbm5lclRleHQgPSBzaG93TmFtZTtcbiAg\nICAgICAgICAgICAgICBkb211dGlscy5oaWRlKCR0aWViYV91c2VyX25vbG9naW5fdGlwX2JvdHRv\nbSk7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoKF9kID0gKF9jID0gKF9iID0gZWxlVnVlT2Jq\nID09IG51bGwgPyB2b2lkIDAgOiBlbGVWdWVPYmouJHN0b3JlKSA9PSBudWxsID8gdm9pZCAwIDog\nX2Iuc3RhdGUpID09IG51bGwgPyB2b2lkIDAgOiBfYy5jb21tb24pID09IG51bGwgPyB2b2lkIDAg\nOiBfZC5pc0xvZ2luKSB7XG4gICAgICAgICAgICAgICAgaXNMb2dpbiA9IHRydWU7XG4gICAgICAg\nICAgICAgICAgZG9tdXRpbHMuaGlkZSgkdGllYmFfdXNlcl9ub2xvZ2luX3RpcF9ib3R0b20pO1xu\nICAgICAgICAgICAgICAgICR0aWViYV91c2VyX25vbG9naW5fdGlwX2NlbnRlci5pbm5lclRleHQg\nPSBcIuacquefpVwiO1xuICAgICAgICAgICAgICAgICRhdmF0YXIuc3JjID0gVGllYmFVcmxBcGku\nZ2V0VXNlckF2YXRhcihcbiAgICAgICAgICAgICAgICAgIChfZyA9IChfZiA9IChfZSA9IGVsZVZ1\nZU9iaiA9PSBudWxsID8gdm9pZCAwIDogZWxlVnVlT2JqLiRzdG9yZSkgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9lLnN0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2YuY29tbW9uKSA9PSBudWxsID8gdm9p\nZCAwIDogX2cucG9ydHJhaXRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGRvbXV0aWxzLm9uKCR0aWViYV91\nc2VyLCBcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0xvZ2luKSB7XG4gICAg\nICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpbmRvdy5vcGVu\nKFRpZWJhVXJsQXBpLmdldExvZ2luVXJsKCksIFwiX2JsYW5rXCIpO1xuICAgICAgICAgIH0pO1xu\nICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgV2VuS3VTaGllbGRD\nU1MgPSAnXC8qIOmmlumhtemhtumDqOeahOW8gOmAmlZJUOaoquW5hSAqXC9cXHJcXG4ubmV3LWhv\nbWUtd3JhcCAudmFuLXN3aXBlLnN3aXBlLWhvbWUsXFxyXFxuXC8qIOS8mOi0qOaWh+aho1ZJUOma\nj+S+v+S4iyAqXC9cXHJcXG4udmlwLWNhcmQtd3JhcCxcXHJcXG4ucmVhZGVyLXBvcC1tYW5hZ2Vy\nLXZpZXctY29udGFpbnRlcixcXHJcXG4uY29yZS1kb3dubG9hZCxcXHJcXG4uY2FyZC13cmFwLmNh\ncmQtdmlwLFxcclxcbi5wb3AtbWFuYWdlci12aWV3LWNvbnRhaW50ZXIsXFxyXFxuI2Nhcm91c2Vs\nLFxcclxcbi5jYXJkLXdyYXAsXFxyXFxuLm4tY2FyZC13cmFwLWV4cCxcXHJcXG4ucGFnZU5vIC5w\nYWdlcn5kaXZbY2xhc3MqPVwiX193bVwiXSxcXHJcXG4uZm9sZC1wYWdlcixcXHJcXG4udmlwLWNo\nb2ljZSxcXHJcXG4ud2stYm90dG9tLWJ0bixcXHJcXG4uY29udGludWUtcmVhZC13cmFwLmludml0\nZS1jbGlwYm9hcmQsXFxyXFxuLndrLXN0dWRlbnQsXFxyXFxuLnNlYXJjaC1wYXktY29udGFpbmVy\nLFxcclxcbi53ay1zdHVkZW50LWRlZmVuc2UsXFxyXFxuLnZpcC1yZWMtY2FyZC1tYWluLFxcclxc\nbi5iYWNrLWRpYWxvZyxcXHJcXG5kaXYubWlkZGxlLWJveC1yb290IHtcXHJcXG4gIGRpc3BsYXk6\nIG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuLmJhcnRvcCB7XFxyXFxuICBkaXNwbGF5OiB1\nbnNldDtcXHJcXG59XFxyXFxuLnJlYWRlci13cmFwIHtcXHJcXG4gIGhlaWdodDogYXV0byAhaW1w\nb3J0YW50O1xcclxcbn1cXHJcXG4jdmlldy1yci1hcHAge1xcclxcbiAgb3ZlcmZsb3cteTogYXV0\nbyAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG4jdmlldy1hcHAsXFxyXFxuI3ZpZXctcnItYXBwIHtc\nXHJcXG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuLnRvcC1jYXJk\nIHtcXHJcXG4gIG1hcmdpbi10b3A6IDEwcHggIWltcG9ydGFudDtcXHJcXG59XFxyXFxuKiB7XFxy\nXFxuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IGluaGVyaXQgIWltcG9ydGFudDtcXHJcXG4gIC1r\naHRtbC11c2VyLXNlbGVjdDogYXV0byAhaW1wb3J0YW50O1xcclxcbiAgLW1vei11c2VyLXNlbGVj\ndDogYXV0byAhaW1wb3J0YW50O1xcclxcbiAgLW1zLXVzZXItc2VsZWN0OiBhdXRvICFpbXBvcnRh\nbnQ7XFxyXFxuICB1c2VyLXNlbGVjdDogYXV0byAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG4nO1xu\nICBjb25zdCBCYWlkdVdlbkt1ID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBhZGRTdHlsZShXZW5L\ndVNoaWVsZENTUyk7XG4gICAgICBsb2cuaW5mbyhcIuaPkuWFpUNTU+inhOWImVwiKTtcbiAgICAg\nIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxuICAgICAgICBcLyog5LiK\n6Z2i55qE5bel5YW35qCP5Lya5oyh5L2P5qCH6aKY5qCPICpcL1xuICAgICAgICAjYXBwLXByZSAu\ndG9wLWNhcmQudG9wLWNhcmQtdG9we1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNTZweCAhaW1w\nb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwu\nZXhlY01lbnVPbmNlKFwiYmFpZHVfd2Vua3VfYmxvY2tfbWVtYmVyX3BpY2tzXCIsICgpID0+IHtc\nbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkVmlwUGlja3MoKTtcbiAgICAgIH0pO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3dlbmt1X2Jsb2NraW5nX2FwcF9mZWF0dXJl\nZFwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZEFwcFBpY2tzKCk7XG4gICAg\nICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV93ZW5rdV9ibG9ja2lu\nZ19yZWxhdGVkX2RvY3VtZW50c1wiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVs\nZFJlbGF0ZWREb2N1bWVudHMoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51\nT25jZShcImJhaWR1X3dlbmt1X2Jsb2NraW5nX2JvdHRvbV90b29sYmFyXCIsICgpID0+IHtcbiAg\nICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkQm90dG9tVG9vbEJhcigpO1xuICAgICAgfSk7XG4gICAg\nICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfd2Vua3Vfc2hpZWxkX25leHRfYnRuXCIs\nICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkTmV4dEFydGljbGVCdXR0b24oKTtc\nbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3dlbmt1X2Js\nb2NrRG9jdW1lbnRBc3Npc3RhbnRcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ibG9j\na0RvY3VtZW50QXNzaXN0YW50KCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKiog5bGP6JS9\n5Lya5ZGY57K+6YCJICpcL1xuICAgIHNoaWVsZFZpcFBpY2tzKCkge1xuICAgICAgbG9nLmluZm8o\nXCLlsY\/olL3kvJrlkZjnsr7pgIlcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9j\na0NTUyhcbiAgICAgICAgJ2RpdltjbGFzcyo9XCJ2aXAtY2hvaWNlX1wiXVtkYXRhLWFpdC1hY3Rp\nb249XCJ2aXBDaG9pY2VTaG93XCJdJ1xuICAgICAgKTtcbiAgICB9LFxuICAgIFwvKiog5bGP6JS9\nQVBQ57K+6YCJICpcL1xuICAgIHNoaWVsZEFwcFBpY2tzKCkge1xuICAgICAgbG9nLmluZm8oXCLl\nsY\/olL1BUFDnsr7pgIlcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhc\nbiAgICAgICAgJ2RpdltjbGFzcyo9XCJhcHAtY2hvaWNlX1wiXVtkYXRhLWFpdC1hY3Rpb249XCJh\ncHBDaG9pY2VOZXdTaG93XCJdJyxcbiAgICAgICAgXCJkaXYuZm9sZGVyLXdyYXAuaW52aXRlLWNs\naXBib2FyZFtkYXRhLWNsaXBib2FyZC10ZXh0XVwiXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8q\nKiDlsY\/olL3nm7jlhbPmlofmoaMgKlwvXG4gICAgc2hpZWxkUmVsYXRlZERvY3VtZW50cygpIHtc\nbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS955u45YWz5paH5qGjXCIpO1xuICAgICAgcmV0dXJuIENv\nbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgIFwiZGl2LmZvbGQtcGFnZS1jb252ZXJzaW9u\nXCIsXG4gICAgICAgIFwiZGl2Lm5ld3JlY29tLWxpc3QuaW52aXRlLWNsaXBib2FyZFtkYXRhLWNs\naXBib2FyZC10ZXh0XVwiXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKiDlsY\/olL3lupXpg6jl\nt6XlhbfmoI8gKlwvXG4gICAgc2hpZWxkQm90dG9tVG9vbEJhcigpIHtcbiAgICAgIGxvZy5pbmZv\nKFwi5bGP6JS95bqV6YOo5bel5YW35qCPXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRk\nQmxvY2tDU1MoXCJkaXYuYmFyYm90dG9tXCIpO1xuICAgIH0sXG4gICAgXC8qKiDlsY\/olL3kuIvk\nuIDnr4fmjInpkq4gKlwvXG4gICAgc2hpZWxkTmV4dEFydGljbGVCdXR0b24oKSB7XG4gICAgICBs\nb2cuaW5mbyhcIuWxj+iUveS4i+S4gOevh+aMiemSrlwiKTtcbiAgICAgIHJldHVybiBDb21tb25V\ndGlsLmFkZEJsb2NrQ1NTKFwiZGl2Lm5leHQtcGFnZS1jb250YWluZXJcIik7XG4gICAgfSxcbiAg\nICBcLyoqIOOAkOWxj+iUveOAkeaWh+aho+WKqeaJiyAqXC9cbiAgICBibG9ja0RvY3VtZW50QXNz\naXN0YW50KCkge1xuICAgICAgbG9nLmluZm8oXCLjgJDlsY\/olL3jgJHmlofmoaPliqnmiYtcIik7\nXG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcIi5haS1jaGF0LXdyYXBcIik7\nXG4gICAgfVxuICB9O1xuICBjb25zdCBKaW5nWWFuU2hpZWxkQ1NTID0gXCIuYXJ0aWNsZS1mZWVk\nLW5leHQsXFxyXFxuLndndC1yZWwtZXhwLWZlZWQsXFxyXFxuLmFydGljbGUtZmVlZC1idG4tZml4\nZWQsXFxyXFxuLnJlYWQtd2hvbGUtbWFzay5hcHAsXFxyXFxuLmFzcC1zZWxmLXJhbmRlcixcXHJc\nXG4uYmFvYmFvLWltYWdlLWl0ZW0sXFxyXFxuI3dndC1hZC1ndWVzcyB7XFxyXFxuICBkaXNwbGF5\nOiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcbi5leHAtY29udGVudC1jb250YWluZXIge1xc\nclxcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcclxcbiAgb3ZlcmZsb3c6IGF1dG8g\nIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IEJhaWR1SmluZ1lhbiA9IHtcbiAg\nICBpbml0KCkge1xuICAgICAgYWRkU3R5bGUoSmluZ1lhblNoaWVsZENTUyk7XG4gICAgICBsb2cu\naW5mbyhcIuaPkuWFpUNTU+inhOWImVwiKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaUtlU2hp\nZWxkQ1NTID0gJ1wvKiDlupXpg6jnmoTlub\/lkYogKlwvXFxyXFxuI0pfeWl0aWFvX2NvbnRhaW5l\ncixcXHJcXG5cLyog6aG26YOo5bm\/5ZGKICpcL1xcclxcbiNCS19iZWZvcmVfY29udGVudF93cmFw\ncGVyID4gZGl2OmhhcyhhW29uY2xpY2sqPVwicGFnZVwiXSkgLFxcclxcblwvKiDlupXpg6jnmoTl\nub\/lkYogKlwvXFxyXFxuLkJLLWFmdGVyLWNvbnRlbnQtd3JhcHBlcj5kaXY6aGFzKGFbb25jbGlj\nayo9XCJwYWdlXCJdKSB7XFxyXFxuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxc\nclxcbic7XG4gIGNvbnN0IEJhaWR1QmFpS2UgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0\neWxlKEJhaUtlU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZXCIp\nO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2JhaWtlX2F1dG9tYXRpY2Fs\nbHlfZXhwYW5kX25leHRfcGFnZVwiLCAoKSA9PiB7XG4gICAgICAgIEJhaWR1QmFpS2UuYXV0b21h\ndGljYWxseUV4cGFuZE5leHRQYWdlKCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDoh6rliqjlsZXlvIDkuIvkuIDpobVcbiAgICAgKiArIHdpbmRvdy5Cb3hcbiAgICAgKlwv\nXG4gICAgYXV0b21hdGljYWxseUV4cGFuZE5leHRQYWdlKCkge1xuICAgICAgbG9nLmluZm8oXCLp\ngJrov4fliqvmjIF3aW5kb3cuQm946Ieq5Yqo5bGV5byA5LiL5LiA6aG1XCIpO1xuICAgICAgbGV0\nIG9sZF9Cb3ggPSBudWxsO1xuICAgICAgT3JpZ2luUHJvdG90eXBlLk9iamVjdC5kZWZpbmVQcm9w\nZXJ0eShfdW5zYWZlV2luZG93LCBcIkJveFwiLCB7XG4gICAgICAgIGdldCgpIHtcbiAgICAgICAg\nICBpZiAob2xkX0JveCA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJveHkob2xkX0JveCwge1xuICAgICAgICAgICAgZ2V0\nKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgaWYgKChwcm9wID09PSBc\nImlzQm94XCIgfHwgcHJvcCA9PT0gXCIkaXNCb3hcIikgJiYgUG9wc1BhbmVsLmdldFZhbHVlKFwi\nYmFpZHUtYmFpa2UtQm94LWlzQm94XCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7\nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKChwcm9wID09PSBcImlzTGl0ZUJv\neFwiIHx8IHByb3AgPT09IFwiJGlzTGl0ZUJveFwiKSAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJi\nYWlkdS1iYWlrZS1Cb3gtaXNMaXRlQm94XCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRy\ndWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKChwcm9wID09PSBcImlzSW5m\nb0JveFwiIHx8IHByb3AgPT09IFwiJGlzSW5mb0JveFwiKSAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUo\nXCJiYWlkdS1iYWlrZS1Cb3gtaXNJbmZvQm94XCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJu\nIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKChwcm9wID09PSBcImlz\nSU9TXCIgfHwgcHJvcCA9PT0gXCIkaXNJT1NcIikgJiYgUG9wc1BhbmVsLmdldFZhbHVlKFwiYmFp\nZHUtYmFpa2UtQm94LWlzSU9TXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4g\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKChwcm9wID09PSBcImlzQW5kcm9pZFwi\nIHx8IHByb3AgPT09IFwiJGlzQW5kcm9pZFwiKSAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlk\ndS1iYWlrZS1Cb3gtaXNBbmRyb2lkXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7\nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKChwcm9wID09PSBcImlzQW5kcm9p\nZFwiIHx8IHByb3AgPT09IFwiJGlzQW5kcm9pZFwiKSAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJi\nYWlkdS1iYWlrZS1Cb3gtaXNBbmRyb2lkXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRy\ndWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHByb3AgPT09IFwiYW5kcm9p\nZFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGFuZHJvaWQgPSBSZWZsZWN0LmdldCh0YXJnZXQs\nIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgICAgICBpZiAoYW5kcm9pZFtcImludm9rZUFw\ncFwiXSAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdS1iYWlrZS1Cb3gtYW5kcm9pZC5pbnZv\na2VBcHBcIikpIHtcbiAgICAgICAgICAgICAgICAgIGFuZHJvaWRbXCJpbnZva2VBcHBcIl0gPSBm\ndW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKFtcIumYu+at\nouiwg+eUqGFuZHJvaWQuaW52b2tlQXBwXCIsIGFyZ3NdKTtcbiAgICAgICAgICAgICAgICAgIH07\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhbmRyb2lkW1wiaW52b2tl\nTGl0ZUFwcFwiXSAmJiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJiYWlkdS1iYWlrZS1Cb3gtYW5kcm9p\nZC5pbnZva2VMaXRlQXBwXCIpKSB7XG4gICAgICAgICAgICAgICAgICBhbmRyb2lkW1wiaW52b2tl\nTGl0ZUFwcFwiXSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9n\nLmluZm8oW1wi6Zi75q2i6LCD55SoYW5kcm9pZC5pbnZva2VMaXRlQXBwXCIsIGFyZ3NdKTtcbiAg\nICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgIGlmIChwcm9wID09PSBcImlvc1wiKSB7XG4gICAgICAgICAgICAgICAgbGV0\nIGlvcyA9IFJlZmxlY3QuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAg\nICAgIGlmIChpb3NbXCJpbnZva2VMaXRlQXBwXCJdICYmIFBvcHNQYW5lbC5nZXRWYWx1ZShcImJh\naWR1LWJhaWtlLUJveC1pb3MuaW52b2tlQXBwXCIpKSB7XG4gICAgICAgICAgICAgICAgICBpb3Nb\nXCJpbnZva2VMaXRlQXBwXCJdID0gZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICAgICAgICAg\nICAgICBsb2cuaW5mbyhbXCLpmLvmraLosIPnlKhpb3MuaW52b2tlQXBwXCIsIGFyZ3NdKTtcbiAg\nICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgIHJldHVybiBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtc\nbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHZh\nbHVlKSB7XG4gICAgICAgICAgb2xkX0JveCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtc\nbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaUtlVGFTaHVvU2hpZWxkQ1NTID0gXCJcIjtcbiAgY29u\nc3QgQmFpZHVCYWlLZVRhU2h1byA9IHtcbiAgICBpbml0KCkge1xuICAgICAgYWRkU3R5bGUoQmFp\nS2VUYVNodW9TaGllbGRDU1MpO1xuICAgICAgbG9nLmluZm8oXCLmj5LlhaVDU1Pop4TliJlcIik7\nXG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfYmFpa2VfdGFzaHVvX3JlbW92\nZV9ib3R0b21fYWRcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUJvdHRvbUFkKCk7XG4g\nICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDljrvpmaTlupXpg6jlub\/lkYpcbiAg\nICAgKlwvXG4gICAgcmVtb3ZlQm90dG9tQWQoKSB7XG4gICAgICB1dGlscy53YWl0Tm9kZShcIiNp\nbmRleF90YXNodW9fbGlzdFwiKS50aGVuKCgkdGFzaHVvTGlzdCkgPT4ge1xuICAgICAgICBsb2cu\naW5mbyhcIuWOu+mZpOW6lemDqOW5v+WRilwiKTtcbiAgICAgICAgdXRpbHMubXV0YXRpb25PYnNl\ncnZlcigkdGFzaHVvTGlzdCwge1xuICAgICAgICAgIGNhbGxiYWNrKCkge1xuICAgICAgICAgICAg\nQXJyYXkuZnJvbSgkdGFzaHVvTGlzdC5jaGlsZHJlbikuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAg\nICAgICAgICAgICBpZiAoaXRlbS5jbGFzc05hbWUgIT09IFwiSi1ob3QtaXRlbS1jb250YWluZXJc\nIikge1xuICAgICAgICAgICAgICAgIGxvZy5pbmZvKFwi5a2Y5Zyo5bm\/5ZGKLeWIoOmZpO+8gVwi\nKTtcbiAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZSgpO1xuICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvbmZpZzogeyBzdWJ0cmVlOiB0\ncnVlLCBjaGlsZExpc3Q6IHRydWUsIGF0dHJpYnV0ZXM6IHRydWUgfVxuICAgICAgICB9KTtcbiAg\nICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgWmhpRGFvU2hpZWxkQ1NTID0gXCJcLyogLmRl\nYyArIGRpdiwgKlwvXFxyXFxuI2ZlZWQtcmVjb21tZW5kLFxcclxcbi5kZWMsXFxyXFxuLndndC10\nb3BpYy1ob3QsXFxyXFxuI3Jlc3BlY3QtZm9vdGVyLFxcclxcbiN3YXAteW91eC1jaGFuZ2UtYXNw\nLFxcclxcbmRpdi5xdWVzdGlvbi1saW5lICsgZGl2Om5vdCgucmVwbGllcy1jb250YWluZXIpLFxc\nclxcbi53Z3QtYXNwLXlvdXgsXFxyXFxuLnctZGV0YWlsLWRpc3BsYXktYnRuLFxcclxcbi5hc2st\nZm9yLWZyaWVuZCxcXHJcXG4ja25vd2xlZGdlLWFuc3dlci1saXN0LFxcclxcbi5nby10by1hc2ss\nXFxyXFxuZGl2W2NsYXNzKj0nYWRzJ10sXFxyXFxuXC8qIOWFjei0uemihuelqCAqXC9cXHJcXG4u\nZG9vZGxlLWNvbnRhaW5lciB7XFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxu\nfVxcclxcbi53LWRldGFpbC1jb250YWluZXIge1xcclxcbiAgbWF4LWhlaWdodDogMTAwJSAhaW1w\nb3J0YW50O1xcclxcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7\nXG4gIGNvbnN0IEJhaWR1WmhpRGFvID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBhZGRTdHlsZSha\naGlEYW9TaGllbGRDU1MpO1xuICAgICAgbG9nLmluZm8oXCLmj5LlhaVDU1Pop4TliJlcIik7XG4g\nICAgICB0aGlzLnJlbW92ZUFkKCk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAg\nICAgICBcImJhaWR1X3poaWRhb19ibG9ja19yZWNvbW1lbmRfbW9yZV9leGNpdGluZ19jb250ZW50\nXCIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5ibG9ja1JlY29tbWVu\nZE1vcmVFeGNpdGluZ0NvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIFBvcHNQ\nYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV96aGlkYW9fYmxvY2tfb3RoZXJfYW5zd2Vyc1wiLCAo\nKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJsb2NrT3RoZXJBbnN3ZXJzKCk7XG4gICAgICB9\nKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV96aGlkYW9fYmxvY2tfcmVs\nYXRlZF9pc3N1ZXNcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ibG9ja1JlbGF0ZWRJ\nc3N1ZXMoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1\nX3poaWRhb19zaGllbGRfdG9wX2ZpeGVkX3Rvb2xiYXJcIiwgKCkgPT4ge1xuICAgICAgICByZXR1\ncm4gdGhpcy5zaGllbGRUb3BGbG9hdFRvb2xCYXIoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOenu+mZpOW5v+WRilxuICAgICAqXC9cbiAgICByZW1vdmVBZCgpIHtcbiAg\nICAgIGxvZy5pbmZvKFwi56e76Zmk5bm\/5ZGKLmVjLWFkXCIpO1xuICAgICAgaWYgKGRvY3VtZW50\nLnF1ZXJ5U2VsZWN0b3IoXCIuZWMtYWRcIikpIHtcbiAgICAgICAgZG9tdXRpbHMucmVtb3ZlKGRv\nbXV0aWxzLnBhcmVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmVjLWFkXCIpKSk7XG4g\nICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS96aG26YOo5oKs5rWu5bel5YW3\n5qCPXG4gICAgICpcL1xuICAgIGJsb2NrUmVjb21tZW5kTW9yZUV4Y2l0aW5nQ29udGVudCgpIHtc\nbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS96aG26YOo5oKs5rWu5bel5YW35qCPXCIpO1xuICAgICAg\ncmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgIFwiLmZlZWQtcmVjb21tZW5k\nLXRpdGxlXCIsXG4gICAgICAgIFwiI2ZlZWQtcmVjb21tZW5kXCIsXG4gICAgICAgIFwiLm1tLWNv\nbnRlbnQtYm94Lm1tLWNvbnRlbnQtbGluZS5mZWVkLXJlY29tbWVuZFwiXG4gICAgICApO1xuICAg\nIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveWFtuS7luWbnuetlFxuICAgICAqXC9cbiAgICBi\nbG9ja090aGVyQW5zd2VycygpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95YW25LuW5Zue562U\nXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCIucmVwbGllcy1jb250\nYWluZXIgKyBkaXZcIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS955u45YWz6Zeu\n6aKYXG4gICAgICpcL1xuICAgIGJsb2NrUmVsYXRlZElzc3VlcygpIHtcbiAgICAgIGxvZy5pbmZv\nKFwi5bGP6JS955u45YWz6Zeu6aKYXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxv\nY2tDU1MoXG4gICAgICAgIFwiZGl2W2lkXj13YWhzZF1cIixcbiAgICAgICAgJ2RpdltjbGFzc149\nXCJ3LXF1ZXN0aW9uLWxpc3RcIl0nXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOWxj+iUvemhtumDqOaCrOa1ruW3peWFt+agj1xuICAgICAqXC9cbiAgICBzaGllbGRUb3BGbG9h\ndFRvb2xCYXIoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUvemhtumDqOaCrOa1ruW3peWFt+ag\nj1wiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFxuICAgICAgICBcIi5p\na25vdy1yb290LWRvbS1lbGVtZW50IC5xdWVzdGlvbi1hbnN3ZXItY29udGFpbmVyIC5xdWVzdGlv\nbi1hbnN3ZXItbGF5ZXIuZml4ZWRcIlxuICAgICAgKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEZh\nbllpU2hpZWxkQ1NTID0gXCIuYXBwLWJhcixcXHJcXG4uamlmZW5nLWNvbnRhaW5lcixcXHJcXG4u\naW50cm8tdGl0bGUsXFxyXFxuLnNpZGVRckNvbnRhaW5lcixcXHJcXG4uaW5uZXIuY2xlYXJmaXgs\nXFxyXFxuc2VjdGlvbi5ib3R0b20taW50cm8sXFxyXFxuI2Rlc2t0b3AtZ3VpZGUtd3JhcHBlciB7\nXFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcbi5uZXctaGVhZGVy\nLWRsIHtcXHJcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0\nIEJhaWR1RmFuWWkgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxlKEZhbllpU2hpZWxk\nQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZXCIpO1xuICAgICAgUG9wc1Bh\nbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2ZhbnlpX3JlY29tbWVuZGVkX3NoaWVsZGluZ19ib3R0\nb21cIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRSZWNvbW1lbmRCb3R0b20o\nKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2Zhbnlp\nX290aGVyX3NoaWVsZGluZ19ib3R0b21cIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5z\naGllbGRCb3R0b20oKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShc\nImJhaWR1X2ZhbnlpX2F1dG9fZm9jdXNcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dG9Gb2N1\ncygpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS95bqV6YOo5o6o\n6I2QXG4gICAgICpcL1xuICAgIHNoaWVsZFJlY29tbWVuZEJvdHRvbSgpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi5bGP6JS95bqV6YOo5o6o6I2QXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRk\nQmxvY2tDU1MoXCJzZWN0aW9uLmFydGljbGUuYW5kcm9pZC1zdHlsZVwiKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6hcbiAgICAgKlwvXG4gICAgc2hpZWxkQm90dG9tKCkg\ne1xuICAgICAgbG9nLmluZm8oXCLlsY\/olL3lupXpg6hcIik7XG4gICAgICByZXR1cm4gQ29tbW9u\nVXRpbC5hZGRCbG9ja0NTUyhcIi50cmFucy1vdGhlci13cmFwLmNsZWFyZml4XCIpO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOiHquWKqOiBmueEpui+k+WFpeahhlxuICAgICAqXC9cbiAgICBh\ndXRvRm9jdXMoKSB7XG4gICAgICB1dGlscy53YWl0Tm9kZShcInRleHRhcmVhI2otdGV4dGFyZWFc\nIikudGhlbigoJHRleHRhcmVhKSA9PiB7XG4gICAgICAgIGxvZy5pbmZvKFwi6Ieq5Yqo6IGa54Sm\n6L6T5YWl5qGGXCIpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAkdGV4\ndGFyZWEuZm9jdXMoKTtcbiAgICAgICAgfSwgMjUwMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07\nXG4gIGNvbnN0IEZhbllpQXBwU2hpZWxkQ1NTID0gXCIuZmFueWktaW52b2tlLWJ0bixcXHJcXG4u\ndG9wLWJuIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7\nXG4gIGNvbnN0IEJhaWR1RmFuWWlBcHAgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxl\nKEZhbllpQXBwU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZXCIp\nO1xuICAgICAgdGhpcy5yZXBhaXJDb250ZW50SGVpZ2h0KCk7XG4gICAgICBQb3BzUGFuZWwuZXhl\nY01lbnVPbmNlKFwiYmFpZHVfZmFueWlfYXBwX3NoaWVsZF9jb2x1bW5faW5mb3JtYXRpb25cIiwg\nKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRDb2x1bW5JbmZvcm1hdGlvbigpO1xu\nICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfZmFueWlfYXBw\nX3NoaWVsZF9yZWNvbW1lbmRlZF9mb3JfeW91XCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRo\naXMuc2hpZWxkUmVjb21tZW5kZWRGb3JZb3UoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVs\nLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJiYWlkdV9mYW55aV9hcHBfc2hpZWxkX2lfbmVlZF90\nb19mb2xsb3dfYWxvbmdcIixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlz\nLnNoaWVsZElOZWVkVG9Gb2xsb3dBbG9uZygpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOS\/ruWkjeWGheWuuemrmOW6plxuICAgICAqXC9cbiAgICByZXBh\naXJDb250ZW50SGVpZ2h0KCkge1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIjcGFnZS1jb250ZW50\nXCIpLnRoZW4oKCRwYWdlQ29udGVudCkgPT4ge1xuICAgICAgICBsb2cuaW5mbyhcIuS\/ruWkjeWG\nheWuuemrmOW6plwiKTtcbiAgICAgICAgJHBhZ2VDb250ZW50LnNldEF0dHJpYnV0ZShcInN0eWxl\nXCIsIFwibWF4LWhlaWdodDp1bnNldCAhaW1wb3J0YW50XCIpO1xuICAgICAgfSk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog6ZqQ6JeP5LiT5qCP5L+h5oGvXG4gICAgICpcL1xuICAgIHNoaWVs\nZENvbHVtbkluZm9ybWF0aW9uKCkge1xuICAgICAgbG9nLmluZm8oXCLpmpDol4\/kuJPmoI\/kv6Hm\nga9cIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcImRpdi5mYW55aS16\naHVhbi1sYW4td3JhcHBlclwiKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDpmpDol4\/mjqjo\njZBcbiAgICAgKlwvXG4gICAgc2hpZWxkUmVjb21tZW5kZWRGb3JZb3UoKSB7XG4gICAgICBsb2cu\naW5mbyhcIumakOiXj+aOqOiNkFwiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2Nr\nQ1NTKFwiI2ZyLXNlY3Rpb25cIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6ZqQ6JeP6ZyA\n6KaB6Lef6ZqPXG4gICAgICpcL1xuICAgIHNoaWVsZElOZWVkVG9Gb2xsb3dBbG9uZygpIHtcbiAg\nICAgIGxvZy5pbmZvKFwi6ZqQ6JeP6ZyA6KaB6Lef6ZqPXCIpO1xuICAgICAgcmV0dXJuIENvbW1v\nblV0aWwuYWRkQmxvY2tDU1MoXCIuY292ZXItYWxsIC5kYWlseS1ib3R0b21cIik7XG4gICAgfVxu\nICB9O1xuICBjb25zdCBJbWFnZVNoaWVsZENTUyA9IFwiI2JveEJhbm5lciB7XFxyXFxuICBkaXNw\nbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcblwiO1xuICBjb25zdCBCYWlkdUltYWdl\nID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBhZGRTdHlsZShJbWFnZVNoaWVsZENTUyk7XG4gICAg\nICBsb2cuaW5mbyhcIuaPkuWFpUNTU+inhOWImVwiKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IE1h\ncFNoaWVsZENTUyA9ICcuaW5kZXgtd2lkZ2V0LWd1aWRlYmFubmVyLFxcclxcbi5jb21tb24td2lk\nZ2V0LWJvdHRvbS1iYW5uZXItY2hhbmdlSWQsXFxyXFxuI2luZGV4LWFyZWFFbnRyeS13aWRnZXQs\nXFxyXFxuZGl2LmNvbW1vbi13aWRnZXQtYm90dG9tLWJhbm5lci1jaGFuZ2VJZCxcXHJcXG4jZG93\nbmxvYWRuYXRpdmVwb3B1cCxcXHJcXG4ueGlhb2R1Vm9pY2VDYXJkLFxcclxcbi5pbmRleC13aWRn\nZXQtZ3VpZGViYW5uZXIsXFxyXFxuI21lc3NhZ2UtY2VudGVyLXBhbmVsLFxcclxcbi54aWFvZHVW\nb2ljZS1iYW5uZXIuLWJvcmRlci1yb3VuZCxcXHJcXG5cLyog5bqV6YOo5Lit6Ze05qiq5bmFLeaJ\nk+W8gOeZvuW6puWcsOWbvkFQUCAqXC9cXHJcXG4jbWFpbiBkaXZbaWRePVwiZmlzX2VsbVwiXSAu\nYnRuLWJhbm5lci1mbG9hdCB7XFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxu\nfVxcclxcbic7XG4gIGNvbnN0IEJhaWR1TWFwSG9vayA9IHtcbiAgICBpbml0KCkge1xuICAgICAg\nYWRkU3R5bGUoTWFwU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZ\nXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X21hcF9oaWphY2stZWxl\nbWVudC1hcHBlbmRDaGlsZFwiLCAoKSA9PiB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiaG9vazog\nRWxlbWVudC5hcHBlbmRDaGlsZFwiKTtcbiAgICAgICAgQmFpZHVIb29rLmVsZW1lbnRBcHBlbmRD\naGlsZCgpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVf\nbWFwX2hpamFjay1zZXRUaW1lb3V0XCIsICgpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJo\nb29rOiB3aW5kb3cuc2V0VGltZW91dFwiKTtcbiAgICAgICAgQmFpZHVIb29rLnNldFRpbWVvdXQo\nXG4gICAgICAgICAgXC9nb1RvRG93bmxvYWRPZkFuZHJvZHxkb3dubG9hZEFuZHJGcm9tTWFya2V0\nfGp1bXBUb0Rvd25sb2FkUGFnZXxqdW1wVG9NaWRkbGVQYWdlfGRvd25sb2FkSW9zUGtnXC9cbiAg\nICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgZG9tdXRpbHMucmVhZHkoZnVuY3Rpb24oKSB7XG4g\nICAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV9tYXBfaGlqYWNrLWpRdWVyeS1h\ncHBlbmRcIiwgKCkgPT4ge1xuICAgICAgICAgIGxvZy5zdWNjZXNzKFwiaG9vazogJC5hcHBlbmRc\nIik7XG4gICAgICAgICAgQmFpZHVIb29rLndpbmRvd0pRdWVyeUFwcGVuZCgpO1xuICAgICAgICB9\nKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQmFpZHVNYXAgPSB7XG4gICAgaW5p\ndCgpIHtcbiAgICAgIGFkZFN0eWxlKE1hcFNoaWVsZENTUyk7XG4gICAgICBsb2cuaW5mbyhcIuaP\nkuWFpUNTU+inhOWImVwiKTtcbiAgICAgIEJhaWR1TWFwSG9vay5pbml0KCk7XG4gICAgfVxuICB9\nO1xuICBjb25zdCBNYmRTaGllbGRDU1MgPSBgZGl2LmhlYWREZWZsZWN0b3JDb250YWluZXIsXFxy\nXG4jYmRyYWlucndEcmFnQnV0dG9uLFxcclxuI3BhZ2Vfd3JhcHBlciAub3RoZXIgZGl2W2NsYXNz\nKj0ndW5kZWZpbmVkJ10sXFxyXG4jcGFnZV93cmFwcGVyIC5vdGhlciA+IGRpdltjbGFzcz1cIlwi\nXSxcXHJcblwvKiDlupXpg6jmjInpkq4t55m+5bqmQVBQ5YaF5pKt5pS+ICpcL1xcclxuZGl2LmNv\nbW1vbi13cmFwLnNpbmdsZS1wZCxcXHJcblwvKiDpobbpg6jmqKrluYUtQVBQ5YaF5pKt5pS+ICpc\nL1xcclxuZGl2I2FwcCBkaXYuZ3VpZC1uZXcsXFxyXG5cLyog6aG26YOo5qiq5bmFLUFQUOWGhemY\nheivuyAqXC9cXHJcbiNoZWFkRGVmbGVjdG9yQ29udGFpbmVyLFxcclxuXC8qIOW6lemDqCDmiZPl\nvIDnmb7luqZBUFDvvIzpmIXor7vkvZPpqozmm7TkvbMgKlwvXFxyXG4jcGFnZV93cmFwcGVyIGRp\ndltjbGFzc149XCJmb2xkTWFza1dyYXBwZXItXCJdLFxcclxuXC8qIOaJk+W8gOeZvuW6pkFQUO+8\njOmYheivu+WujOaVtOWGheWuuSAqXC9cXHJcbiNjb250ZW50X3dyYXBwZXIgLmZvbGRNYXNrV3Jh\ncHBlcixcXHJcblwvKiDlvbHlk43lrprkvY3lhYPntKDnmoTpga7nvanlsYIgKlwvXFxyXG4jcGFn\nZV93cmFwcGVyIC5iZGJveHNoYXJlPmRpdjpmaXJzdC1jaGlsZCxcXHJcblwvKiDmnaXnmb7luqZB\nUFDnlYXkuqvpq5jmuIXlm77niYcgKlwvXFxyXG4uY29udGVudE1lZGlhIC5vcGVuSW1nLFxcclxu\nXC8qIOeyvuW9qeaOqOiNkOWPs+i+ueeahCDmiZPlvIBBUFDnnIvmm7TlpJrnsr7lvanmjqjojZAg\nKlwvXFxyXG5kaXZbY2xhc3MqPVwicmVsYXRlVGl0bGVcIl0gc3BhbltjbGFzcyo9XCJzdWJUaXRs\nZVwiXSxcXHJcblwvKiDkvJroh6rliqjlnKjkuIrpnaLlvLnlh7rnmoTjgJDnmb7luqbng63mppzj\ngJEgKlwvXFxyXG4jcGFnZV93cmFwcGVyIGRpdjpoYXMoPmRpdltjbGFzcyo9XCJsZWZ0Ym94XCJd\nKSB7XFxyXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcbn1cXHJcblwvKiDlsZXlvIDp\nmIXor7sgKlwvXFxyXG4jcGFnZV93cmFwcGVyICNkeW5hbWljSXRlbSxcXHJcblwvKiDmiYvmnLrn\niYgt5bGV5byA6ZiF6K+7ICpcL1xcclxuI21haW5Db250ZW50Q29udGFpbmVyIHtcXHJcblx0aGVp\nZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XFxyXG59XFxyXG5gO1xuICBjb25zdCBCYWlkdU1iZEhvb2sg\nPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudShcImJhaWR1X21iZF9j\nYW1vdWZsYWdlX2xpdGVfYmFpZHVib3hhcHBcIiwgKCkgPT4ge1xuICAgICAgICBsb2cuaW5mbyhc\nImhvb2s6IG5hdmlnYXRvci51c2VyQWdlbnQgPT0+IGxpdGUgYmFpZHVib3hhcHBcIik7XG4gICAg\nICAgIGxldCBvbGROYXZpZ2F0b3JVc2VyQWdlbnQgPSBfdW5zYWZlV2luZG93Lm5hdmlnYXRvci51\nc2VyQWdlbnQ7XG4gICAgICAgIE9yaWdpblByb3RvdHlwZS5PYmplY3QuZGVmaW5lUHJvcGVydHko\nXG4gICAgICAgICAgX3Vuc2FmZVdpbmRvdy5uYXZpZ2F0b3IsXG4gICAgICAgICAgXCJ1c2VyQWdl\nbnRcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICAgIHJl\ndHVybiBvbGROYXZpZ2F0b3JVc2VyQWdlbnQgKyBcIiBsaXRlIGJhaWR1Ym94YXBwXCI7XG4gICAg\nICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBQb3Bz\nUGFuZWwuZXhlY01lbnUoXCJiYWlkdV9tYmRfaGlqYWNrX3dha2V1cFwiLCAoKSA9PiB7XG4gICAg\nICAgIGxvZy5pbmZvKFwiaG9vazogRnVuY3Rpb24ucHJvcGVydHkuY2FsbFwiKTtcbiAgICAgICAg\nQmFpZHVIb29rLmZ1bmN0aW9uQ2FsbChcIm1hcFwiKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1Bh\nbmVsLmV4ZWNNZW51KFwiYmFpZHVfbWJkX2hpamFja19Cb3hKU0JlZm9yZVwiLCAoKSA9PiB7XG4g\nICAgICAgIGxvZy5pbmZvKFwiaG9vazogd2luZG93LkJveEpTQmVmb3JlXCIpO1xuICAgICAgICBC\nYWlkdUhvb2sud2luZG93Qm94SlNCZWZvcmUoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVs\nLmV4ZWNNZW51KFwiYmFpZHVfbWJkX2hpamFja19pZnJhbWVcIiwgKCkgPT4ge1xuICAgICAgICBs\nb2cuaW5mbyhcImhvb2s6IEVsZW1lbnQuYXBwZW5kQ2hpbGRcIik7XG4gICAgICAgIEJhaWR1SG9v\nay5lbGVtZW50QXBwZW5kQ2hpbGQoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3Qg\nQmFpZHVNYmQgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxlKE1iZFNoaWVsZENTUyk7\nXG4gICAgICBsb2cuaW5mbyhcIuaPkuWFpUNTU+inhOWImVwiKTtcbiAgICAgIEJhaWR1TWJkSG9v\nay5pbml0KCk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfbWJkX2Jsb2Nr\nX2V4Y2l0aW5nX2NvbW1lbnRzXCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tF\neGNpdGluZ0NvbW1lbnRzKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9u\nY2UoXCJiYWlkdV9tYmRfYmxvY2tfZXhjaXRpbmdfcmVjb21tZW5kYXRpb25zXCIsICgpID0+IHtc\nbiAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tFeGNpdGluZ1JlY29tbWVuZGF0aW9ucygpO1xuICAg\nICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfbWJkX3NoaWVsZF9i\nb3R0b21fdG9vbGJhclwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZEJvdHRv\nbVRvb2xiYXIoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveac\ngOeDreivhOiuulxuICAgICAqXC9cbiAgICBibG9ja0V4Y2l0aW5nQ29tbWVudHMoKSB7XG4gICAg\nICBsb2cuaW5mbyhcIuWxj+iUveacgOeDreivhOiuulwiKTtcbiAgICAgIHJldHVybiBDb21tb25V\ndGlsLmFkZEJsb2NrQ1NTKFxuICAgICAgICBcImRpdiNjb21tZW50TW9kdWxlXCIsXG4gICAgICAg\nIFwiI2NvbW1lbnRcIixcbiAgICAgICAgJyNwYWdlX3dyYXBwZXIgPiBkaXYgPiBkaXZbY2xhc3Ne\nPVwiYm9yZGVyQm90dG9tLVwiXSdcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n5bGP6JS95pyA54Ot5o6o6I2QXG4gICAgICpcL1xuICAgIGJsb2NrRXhjaXRpbmdSZWNvbW1lbmRh\ndGlvbnMoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUveacgOeDreaOqOiNkFwiKTtcbiAgICAg\nIHJldHVybiBbXG4gICAgICAgIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgICAgJ2Rp\ndltjbGFzc149XCJyZWxhdGVUaXRsZVwiXScsXG4gICAgICAgICAgXCIuaW5maW5pdGUtc2Nyb2xs\nLWNvbXBvbmVudF9fb3V0ZXJkaXZcIixcbiAgICAgICAgICBcImRpdiNmdXNlVmlkZW8gKyBkaXZb\nY2xhc3NdXCIsXG4gICAgICAgICAgXC8qIOeyvuW9qeaOqOiNkOeahOaWh+WtlyAqXC9cbiAgICAg\nICAgICBcIiNjb250ZW50X3dyYXBwZXIgKyBkaXYgKyBkaXZcIixcbiAgICAgICAgICBcLyog566A\n5Y2VVUHkuIvnsr7lvanmjqjojZDnmoTmloflrZcgKlwvXG4gICAgICAgICAgXCIjcGFnZV93cmFw\ncGVyIC5zZWFyY2hDcmFmdCAjY29udGVudF93cmFwcGVyICsgZGl2XCJcbiAgICAgICAgKSxcbiAg\nICAgICAgQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAgICAgICBcLyogR2Vja2\/kuIvnmoTn\nroDljZVVQeS4i+eyvuW9qeaOqOiNkCAqXC9cbiAgICAgICAgICBcIiNwYWdlX3dyYXBwZXIgPiBk\naXYgPiBkaXY6bnRoLWNoaWxkKDYpXCJcbiAgICAgICAgKVxuICAgICAgXTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6jlt6XlhbfmoI9cbiAgICAgKlwvXG4gICAgc2hpZWxk\nQm90dG9tVG9vbGJhcigpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95bqV6YOo5bel5YW35qCP\nXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCJkaXYjd2lzZS1pbnZv\na2UtaW50ZXJhY3QtYmFyXCIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgWHVlU2hpZWxkQ1NTID0g\nXCIuc2MtZGtjRXNuLFxcclxcbi5zYy1mSFN5YWssXFxyXFxuLnNjLWdpa0FmSCxcXHJcXG5zd2Fu\nLXZpZXcuc3RyYXRlZ3ktaW5zdGl0dXRpb24tbGlzdCxcXHJcXG5zd2FuLXZpZXcuc3RyYXRlZ3kt\nd3JhcHBlcixcXHJcXG4uc3dhbi1zcGlkZXItdGFwLFxcclxcbi5ib29raW5nLFxcclxcbi5oZWFk\nLWJhcixcXHJcXG4uaGVhZC1iYXItcGxhY2Vob2xkZXIge1xcclxcbiAgZGlzcGxheTogbm9uZSAh\naW1wb3J0YW50O1xcclxcbn1cXHJcXG4uc2MtY0hHbVBDIHtcXHJcXG4gIHdpZHRoOiBhdXRvICFp\nbXBvcnRhbnQ7XFxyXFxufVxcclxcblwiO1xuICBjb25zdCBCYWlkdVh1ZSA9IHtcbiAgICBpbml0\nKCkge1xuICAgICAgYWRkU3R5bGUoWHVlU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S\n5YWlQ1NT6KeE5YiZXCIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQWlRaUNoYVNoaWVsZENTUyA9\nICdkaXYuaGVhZGVyLWRvd24tYXBwLFxcclxcbmRpdi5hY3RpdmUtZW50ZXIsXFxyXFxuZGl2LmFw\ncC1lbnRlcixcXHJcXG5kaXYuY291cG9uLWFjdGl2ZSxcXHJcXG5kaXYuY3BjLWFkdi1jb250YWlu\nZXIsXFxyXFxuZGl2LmRldGFpbC1mb290ZXIuZGV0YWlsLWZvb3Rlci10ZXN0LFxcclxcbmRpdi5p\nbmRleC1tb3JlW2RhdGEtc2hvdy1pZD1cImluZGV4TW9yZUV4cG9zdXJlXCJdIHtcXHJcXG4gIGRp\nc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuLmJyZWFkLWNydW1icy5oYXMtZG93\nbixcXHJcXG4uYm9yZGVyLWJvdHRvbS1saW5lIHtcXHJcXG4gIHRvcDogMCAhaW1wb3J0YW50O1xc\nclxcbn1cXHJcXG4nO1xuICBjb25zdCBCYWlkdUFpUWlDaGEgPSB7XG4gICAgaW5pdCgpIHtcbiAg\nICAgIGFkZFN0eWxlKEFpUWlDaGFTaGllbGRDU1MpO1xuICAgICAgbG9nLmluZm8oXCLmj5LlhaVD\nU1Pop4TliJlcIik7XG4gICAgICB0aGlzLmNhbW91ZmxhZ2VCb3R0b21Qb3B1cCgpO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2FpcWljaGFfc2hpZWxkX2Nhcm91c2VsXCIs\nICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkQ2Fyb3VzZWwoKTtcbiAgICAgIH0p\nO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2FpcWljaGFfc2hpZWxkX2lu\nZHVzdHJ5X2hvc3RfbmV3c1wiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZElu\nZHVzdHJ5SG9zdE5ld3MoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOS8\nquijheS4uuW3sue7j+W8ueeql+i\/h+S6hlxuICAgICAqXC9cbiAgICBjYW1vdWZsYWdlQm90dG9t\nUG9wdXAoKSB7XG4gICAgICBsb2cuaW5mbyhcIuS8quijheS4uuW3sue7j+W8ueeql+i\/h+S6hlwi\nKTtcbiAgICAgIF91bnNhZmVXaW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgIFwi\nY291cG9uX2JvdHRvbV9wb3B1cFwiLFxuICAgICAgICAoXC8qIEBfX1BVUkVfXyAqXC8gbmV3IERh\ndGUoKSkuZ2V0VGltZSgpLnRvU3RyaW5nKClcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog5bGP6JS96L2u5pKt5Zu+XG4gICAgICpcL1xuICAgIHNoaWVsZENhcm91c2VsKCkge1xu\nICAgICAgbG9nLmluZm8oXCLlsY\/olL3ova7mkq3lm75cIik7XG4gICAgICByZXR1cm4gQ29tbW9u\nVXRpbC5hZGRCbG9ja0NTUyhcImRpdi5pbmRleC1iYW5uZXItY29udGFpbmVyLnZhbi1zd2lwZVwi\nKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3ooYzkuJrng63ngrnmlrDpl7tcbiAg\nICAgKlwvXG4gICAgc2hpZWxkSW5kdXN0cnlIb3N0TmV3cygpIHtcbiAgICAgIGxvZy5pbmZvKFwi\n5bGP6JS96KGM5Lia54Ot54K55paw6Ze7XCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRk\nQmxvY2tDU1MoXCIgZGl2LmhvdC1uZXdzXCIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgUG9zU2hp\nZWxkQ1NTID0gXCJodG1sLFxcclxcbmJvZHkge1xcclxcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0\nYW50O1xcclxcbn1cXHJcXG5cIjtcbiAgY29uc3QgQmFpZHVQb3MgPSB7XG4gICAgaW5pdCgpIHtc\nbiAgICAgIGFkZFN0eWxlKFBvc1NoaWVsZENTUyk7XG4gICAgICBsb2cuaW5mbyhcIuaPkuWFpUNT\nU+inhOWImVwiKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaWR1SGFvS2FuSG9vayA9IHtcbiAg\nICBpbml0KCkge1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHVfaGFva2FuX2hpamFj\na193YWtldXBcIiwgKCkgPT4ge1xuICAgICAgICBsb2cuc3VjY2VzcyhcImhvb2s6IHdpbmRvdy53\nZWJwYWNrSnNvbnBcIik7XG4gICAgICAgIEJhaWR1SG9vay53aW5kb3dXZWJwYWNrSnNvbnBfaGFv\na2FuKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEhhb0thblNoaWVsZENTUyA9\nIFwiZGl2LnNoYXJlLW9yaWdpbi53eC1zaGFyZS1sYXVuY2gsXFxyXFxuZGl2Lm9wZW4tYXBwLXRv\ncCxcXHJcXG5kaXYub3Blbi1hcHAtYm90dG9tLnd4LXNoYXJlLWxhdW5jaCxcXHJcXG5cLyog5omT\n5byAQVBQICDlpb3nnIvmm7TmuIXmmbAoMTA4MFApICpcL1xcclxcbi5OZXdPcGVuQXBwLFxcclxc\nblwvKiDpobbpg6jnqbrnmb3ljLrln58gKlwvXFxyXFxuLnBsYWNlaG9sZGVyLFxcclxcblwvKiDl\nupXpg6jlpb3nnIvop4bpopHlm77niYcgKlwvXFxyXFxuLnBhZ2UtYnV0dG9tLFxcclxcblwvKiDm\nmoLlgZzop4bpopHlvLnlh7rmnaXnmoTmiZPlvIDnmb7luqblpb3nnIvop4bpopEgKlwvXFxyXFxu\nLnZpZGVvLXBsYXllci1kb3dubG9hZC10aXBzIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9y\ndGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IEJhaWR1SGFvS2FuID0ge1xuICAgIGluaXQo\nKSB7XG4gICAgICBhZGRTdHlsZShIYW9LYW5TaGllbGRDU1MpO1xuICAgICAgbG9nLmluZm8oXCLm\nj5LlhaVDU1Pop4TliJlcIik7XG4gICAgICBCYWlkdUhhb0thbkhvb2suaW5pdCgpO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2hhb2thbl9zaGllbGRfbWF5X2Fsc29fbGlr\nZVwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZE1heUFsc29MaWtlKCk7XG4g\nICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV9oYW9rYW5fc2hp\nZWxkX3RvZGF5X3NfaG90X2xpc3RcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGll\nbGRUb2RheUhvdExpc3QoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25j\nZShcImJhaWR1X2hhb2thbl9zaGllbGRfcmlnaHRfdmlkZW9fYWN0aW9uXCIsICgpID0+IHtcbiAg\nICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkUmlnaHRWaWRlb0FjdGlvbigpO1xuICAgICAgfSk7XG4g\nICAgICBkb211dGlscy5yZWFkeSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0UGxheUV2ZW50KCk7\nXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDopobnm5bmkq3mlL7mjInpkq7n\nmoTngrnlh7vkuovku7ZcbiAgICAgKlwvXG4gICAgc2V0UGxheUV2ZW50KCkge1xuICAgICAgbGV0\nIHBsYXlCdG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnBsYXktYnRuXCIpO1xuICAgICAg\nbGV0IHBsYXllclNoYWRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgXCIudmlk\nZW8tcGxheWVyLXNoYWRlXCJcbiAgICAgICk7XG4gICAgICBsb2cuc3VjY2VzcyhcIuimhuebluaS\nreaUvuaMiemSrueahOeCueWHu+S6i+S7tlwiKTtcbiAgICAgIGRvbXV0aWxzLm9uKFxuICAgICAg\nICBwbGF5QnRuLFxuICAgICAgICBcImNsaWNrXCIsXG4gICAgICAgIGZ1bmN0aW9uKGV2ZW50KSB7\nXG4gICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAgICBkb211dGls\ncy5oaWRlKHBsYXllclNoYWRlKTtcbiAgICAgICAgICBsZXQgY3VycmVudFBhZ2VTZWUgPSBkb2N1\nbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgXCIudmlkZW8tcGxheWVyIC52aWRlby1w\nbGF5ZXItcGF1c2UtYnRucyAuY29udGludWVcIlxuICAgICAgICAgICk7XG4gICAgICAgICAgc2V0\nVGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2EzO1xuICAgICAgICAgICAgKF9hMyA9\nIHV0aWxzLmdldFJlYWN0T2JqKGN1cnJlbnRQYWdlU2VlKVtcInJlYWN0RXZlbnRIYW5kbGVyc1wi\nXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hM1tcIm9uQ2xpY2tcIl0oKTtcbiAgICAgICAgICAgIFBv\ncHNQYW5lbC5leGVjTWVudShcbiAgICAgICAgICAgICAgXCJiYWlkdV9oYW9rYW5fcGxheV92aWRl\nb19hbmRfYXV0b21hdGljYWxseV9lbnRlcl9mdWxsX3NjcmVlblwiLFxuICAgICAgICAgICAgICAo\nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHV0aWxzLmlzRnVsbHNjcmVlbkVuYWJsZWQoKSkg\ne1xuICAgICAgICAgICAgICAgICAgbGV0IHZpZGVvRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2Vs\nZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgIFwiI3ZpZGVvIHZpZGVvLmhwbGF5ZXItdmlkZW9c\nIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIHV0aWxzLmVudGVyRnVs\nbFNjcmVlbih2aWRlb0VsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSxcbiAgICAgICAg\ne1xuICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxu\nICAgIFwvKipcbiAgICAgKiDlsY\/olL3lj6\/og73mhJ\/lhbTotqNcbiAgICAgKlwvXG4gICAgc2hp\nZWxkTWF5QWxzb0xpa2UoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUveWPr+iDveaEn+WFtOi2\no1wiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiZGl2LnRvcC12aWRl\nby1saXN0LWNvbnRhaW5lclwiKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3ku4rm\nl6Xng63pl6hcbiAgICAgKlwvXG4gICAgc2hpZWxkVG9kYXlIb3RMaXN0KCkge1xuICAgICAgbG9n\nLmluZm8oXCLlsY\/olL3ku4rml6Xng63pl6hcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5h\nZGRCbG9ja0NTUyhcIi5ob3QtcmFuay12aWRlb1wiKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDlsY\/olL3lj7Pkvqfop4bpopHmk43kvZxcbiAgICAgKlwvXG4gICAgc2hpZWxkUmlnaHRWaWRl\nb0FjdGlvbigpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95Y+z5L6n6KeG6aKR5pON5L2cXCIp\nO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCIudmlkZW8tYXV0aG9yLWlu\nZm8tbWFzayAubmV3LXZpZGVvLWFjdGlvblwiKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IEJhaWR1\nR3JhcGhBcGkgPSB7XG4gICAgXC8qKlxuICAgICAqIOS4iuS8oOWbvueJh1xuICAgICAqIEBwYXJh\nbSBldmVudFxuICAgICAqXC9cbiAgICBhc3luYyB1cGxvYWRJbWFnZShldmVudCkge1xuICAgICAg\ndmFyIF9hMywgX2I7XG4gICAgICBsZXQgdXBsb2FkSW1hZ2VGaWxlID0gKF9iID0gKF9hMyA9IGV2\nZW50LnRhcmdldCkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5maWxlcykgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9iWzBdO1xuICAgICAgaWYgKCF1cGxvYWRJbWFnZUZpbGUpIHtcbiAgICAgICAgYWxlcnQo\nXCLkvLzkuY7lubbmnKrmraPnoa7kuIrkvKDlm77niYfvvJ9cIik7XG4gICAgICAgIHJldHVybjtc\nbiAgICAgIH1cbiAgICAgIGxldCAkaW5wdXQgPSBldmVudC50YXJnZXQ7XG4gICAgICBsZXQgZm9y\nbURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChcImltYWdlXCIs\nIHVwbG9hZEltYWdlRmlsZSk7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoXCJ0blwiLCBcInBjXCIp\nO1xuICAgICAgZm9ybURhdGEuYXBwZW5kKFwiZnJvbVwiLCBcInBjXCIpO1xuICAgICAgZm9ybURh\ndGEuYXBwZW5kKFwiaW1hZ2Vfc291cmNlXCIsIFwiUENfVVBMT0FEX0ZJTEVcIik7XG4gICAgICBm\nb3JtRGF0YS5hcHBlbmQoXCJzZGtQYXJhbXNcIiwgXCJ1bmRlZmluZWRcIik7XG4gICAgICBsZXQg\ncG9zdFJlc3AgPSBhd2FpdCBodHRweC5wb3N0KHtcbiAgICAgICAgdXJsOiBgaHR0cHM6XC9cL2dy\nYXBoLmJhaWR1LmNvbVwvdXBsb2FkP3VwdGltZT0ke0RhdGUubm93KCl9YCxcbiAgICAgICAgZGF0\nYTogZm9ybURhdGEsXG4gICAgICAgIGZldGNoOiB0cnVlLFxuICAgICAgICByZXNwb25zZVR5cGU6\nIFwianNvblwiLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJVc2VyLUFnZW50XCI6\nIHV0aWxzLmdldFJhbmRvbVBDVUEoKSxcbiAgICAgICAgICBPcmlnaW46IFwiaHR0cHM6XC9cL2dy\nYXBoLmJhaWR1LmNvbVwiLFxuICAgICAgICAgIFJlZmVyZXI6IFwiaHR0cHM6XC9cL2dyYXBoLmJh\naWR1LmNvbVwvcGNwYWdlXC9pbmRleD90cGxfZnJvbT1wY1wiLFxuICAgICAgICAgIEFjY2VwdDog\nXCIqXC8qXCJcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAkaW5wdXQudmFsdWUgPSBcIlwi\nO1xuICAgICAgbG9nLnN1Y2Nlc3MocG9zdFJlc3ApO1xuICAgICAgaWYgKCFwb3N0UmVzcC5zdGF0\ndXMgfHwgcG9zdFJlc3AuZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICBhbGVydChcIuWb\nvueJh+S4iuS8oOWksei0pe+8jOivpuaDheivt+eci+aOp+WItuWPsFwiKTtcbiAgICAgICAgcmV0\ndXJuO1xuICAgICAgfVxuICAgICAgbGV0IGltYWdlSlNPTkRhdGEgPSB1dGlscy50b0pTT04ocG9z\ndFJlc3AuZGF0YS5yZXNwb25zZVRleHQpO1xuICAgICAgbG9nLnN1Y2Nlc3MoaW1hZ2VKU09ORGF0\nYSk7XG4gICAgICBpZiAoaW1hZ2VKU09ORGF0YVtcInN0YXR1c1wiXSAhPT0gMCkge1xuICAgICAg\nICBhbGVydChcIuWbvueJh0FQSei\/lOWbnuS\/oeaBr+S4rXN0YXR1c+S4jeS4ujDvvIzor6bmg4Xo\nr7fnnIvmjqfliLblj7BcIik7XG4gICAgICB9XG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLnBh\ndGhuYW1lID09PSBcIlwvc1wiKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gaW1h\nZ2VKU09ORGF0YVtcImRhdGFcIl1bXCJ1cmxcIl07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3\naW5kb3cub3BlbihpbWFnZUpTT05EYXRhW1wiZGF0YVwiXVtcInVybFwiXSwgXCJfYmxhbmtcIik7\nXG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBHcmFwaFNoaWVsZENTUyA9IFwiI2FwcCBz\nZWN0aW9uLnZmLWhvbWUtYm9vdGggZGl2LnZmLXctYnV0dG9uLnZmLWhvbWUtYm9vdGgtY2FtZXJh\nLFxcclxcbiN2aWV3cG9ydCAuZ3JhcGgtaW1hZ2VjdXQtYmFubmVyLWludm9rZSxcXHJcXG5cLyog\n5b6A5LiL5ruR5Yqo5Y+z5LiL6KeS55qE5pCc57Si5Zu+5qCH5oyJ6ZKuICpcL1xcclxcbiNhcHAg\nLnZmLWhvbWUtY2FtZXJhIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59\nXFxyXFxuXCI7XG4gIGNvbnN0IEJhaWR1R3JhcGggPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFk\nZFN0eWxlKEdyYXBoU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZ\nXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHUtZ3JhcGgtcmVwYWlySG9tZVJl\nY29nbml0aW9uUGljdHVyZVwiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVwYWlySG9tZVJlY29n\nbml0aW9uUGljdHVyZSgpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJi\nYWlkdS1ncmFwaC1iYWlkdS1ncmFwaC1yZXBhaXJTZWFyY2hCdXR0b25cIiwgKCkgPT4ge1xuICAg\nICAgICB0aGlzLnJlcGFpclNlYXJjaEJ1dHRvbigpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFu\nZWwuZXhlY01lbnUoXCJiYWlkdS1ncmFwaC1iYWlkdS1ncmFwaC1yZXBhaXJTZWFyY2hOb1Jlc3Vs\ndFwiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVwYWlyU2VhcmNoTm9SZXN1bHQoKTtcbiAgICAg\nIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51KFwiYmFpZHUtZ3JhcGgtYmFpZHUtZ3JhcGgt\ncmVwYWlyUmV0YWtlQnV0dG9uXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXBhaXJSZXRha2VC\ndXR0b24oKTtcbiAgICAgIH0pO1xuICAgICAgZG9tdXRpbHMucmVhZHkoKCkgPT4ge1xuICAgICAg\nICB0aGlzLmFkZE5ld1VwbG9hZEltYWdlQnV0dG9uKCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDmt7vliqDkuIrkvKDlm77niYfmjInpkq7vvIjkuI3lj6\/op4HnmoTvvIlc\nbiAgICAgKlwvXG4gICAgYWRkTmV3VXBsb2FkSW1hZ2VCdXR0b24oKSB7XG4gICAgICBsb2cuaW5m\nbyhcIua3u+WKoOS4iuS8oOWbvueJh+aMiemSru+8iOS4jeWPr+ingeeahO+8iVwiKTtcbiAgICAg\nIGxldCB1cGxvYWRJbWFnZUlucHV0ID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcbiAgICAgICAg\nXCJpbnB1dFwiLFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6IFwid2hpdGVzZXYtdXBsb2FkLWlt\nYWdlXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IFwiZmlsZVwiLFxu\nICAgICAgICAgIGFjY2VwdDogXCJpbWFnZVwvKlwiLFxuICAgICAgICAgIHN0eWxlOiBcImRpc3Bs\nYXk6IG5vbmVcIlxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgZG9tdXRpbHMub24odXBsb2Fk\nSW1hZ2VJbnB1dCwgXCJjaGFuZ2VcIiwgQmFpZHVHcmFwaEFwaS51cGxvYWRJbWFnZSk7XG4gICAg\nICBkb211dGlscy5hcHBlbmQoZG9jdW1lbnQuYm9keSwgdXBsb2FkSW1hZ2VJbnB1dCk7XG4gICAg\nfSxcbiAgICBcLyoqXG4gICAgICrph43mnoTkuLvpobXnmoTor4blm77kuIDkuItcbiAgICAgKlwv\nXG4gICAgcmVwYWlySG9tZVJlY29nbml0aW9uUGljdHVyZSgpIHtcbiAgICAgIHV0aWxzLndhaXRO\nb2RlKFxuICAgICAgICBcIiNhcHAgc2VjdGlvbi52Zi1ob21lLWJvb3RoIGRpdi52Zi13LWJ1dHRv\nbi52Zi1ob21lLWJvb3RoLWNhbWVyYVwiXG4gICAgICApLnRoZW4oKCR2ZkhvbWVCb290aENhbWVy\nYSkgPT4ge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIumHjeaehOS4u+mhteeahOivhuWbvuS4gOS4\ni1wiKTtcbiAgICAgICAgbGV0IHVwbG9hZEltYWdlRGl2RE9NID0gZG9tdXRpbHMuY3JlYXRlRWxl\nbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcInZmLWhvbWUtYm9vdGgtY2Ft\nZXJhXCJcbiAgICAgICAgfSk7XG4gICAgICAgIGRvbXV0aWxzLmNzcyh1cGxvYWRJbWFnZURpdkRP\nTSwge1xuICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgYm90dG9t\nOiBcIi0uNDJyZW1cIixcbiAgICAgICAgICBsZWZ0OiBcIjUwJVwiLFxuICAgICAgICAgIHdpZHRo\nOiBcIjIuMnJlbVwiLFxuICAgICAgICAgIGhlaWdodDogXCIuNzRyZW1cIixcbiAgICAgICAgICBc\nImJhY2tncm91bmQtaW1hZ2VcIjogXCJ1cmwoaHR0cHM6XC9cL2ltZ24wLmJkc3RhdGljLmNvbVwv\naW1hZ2VcL21vYmlsZVwvblwvc3RhdGljXC93aXNlaWtcL3N0YXRpY1wvaW1nXC9jYW1lcmFfNWU3\nMmEzYS5wbmcpXCIsXG4gICAgICAgICAgXCJiYWNrZ3JvdW5kLXJlcGVhdFwiOiBcIm5vLXJlcGVh\ndFwiLFxuICAgICAgICAgIFwiYmFja2dyb3VuZC1zaXplXCI6IFwiY292ZXJcIixcbiAgICAgICAg\nICBcImJhY2tncm91bmQtcG9zaXRpb25cIjogXCJ0b3BcIixcbiAgICAgICAgICBcIi13ZWJraXQt\ndHJhbnNmb3JtXCI6IFwidHJhbnNsYXRlWCgtNTAlKVwiLFxuICAgICAgICAgIFwiLW1zLXRyYW5z\nZm9ybVwiOiBcInRyYW5zbGF0ZVgoLTUwJSlcIixcbiAgICAgICAgICB0cmFuc2Zvcm06IFwidHJh\nbnNsYXRlWCgtNTAlKVwiLFxuICAgICAgICAgIFwiLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9y\nXCI6IFwidHJhbnNwYXJlbnRcIlxuICAgICAgICB9KTtcbiAgICAgICAgZG9tdXRpbHMub24odXBs\nb2FkSW1hZ2VEaXZET00sIFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgZG9jdW1l\nbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgIFwiaW5wdXQjd2hpdGVzZXYtdXBsb2FkLWlt\nYWdlXCJcbiAgICAgICAgICApLmNsaWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBkb211dGls\ncy5hZnRlcigkdmZIb21lQm9vdGhDYW1lcmEsIHVwbG9hZEltYWdlRGl2RE9NKTtcbiAgICAgIH0p\nO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOmHjeaehOS4u+mhteeahOW+gOS4i+a7keWKqOWP\ns+S4i+inkuWHuueOsOeahOaQnOe0ouWbvuagh+aMiemSrlxuICAgICAqXC9cbiAgICByZXBhaXJT\nZWFyY2hCdXR0b24oKSB7XG4gICAgICB1dGlscy53YWl0Tm9kZShcIi52Zi1ob21lLnZpZXctcGFn\nZVwiKS50aGVuKCgkdmlld1BhZ2UpID0+IHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCLph43mnoTk\nuLvpobXnmoTlvoDkuIvmu5Hliqjlj7PkuIvop5Llh7rnjrDnmoTmkJzntKLlm77moIfmjInpkq5c\nIik7XG4gICAgICAgIGxldCBkaXZIb21lQ2FtZXJhID0gZG9tdXRpbHMuY3JlYXRlRWxlbWVudChc\nImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBcIndoaXRlc2V2LXZmLWhvbWUtY2FtZXJh\nXCJcbiAgICAgICAgfSk7XG4gICAgICAgIGRvbXV0aWxzLmNzcyhkaXZIb21lQ2FtZXJhLCB7XG4g\nICAgICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgICAgICAgcG9zaXRpb246IFwiZml4ZWRc\nIixcbiAgICAgICAgICByaWdodDogXCIuMXJlbVwiLFxuICAgICAgICAgIGJvdHRvbTogXCIuNDhy\nZW1cIixcbiAgICAgICAgICBoZWlnaHQ6IFwiLjc0cmVtXCIsXG4gICAgICAgICAgd2lkdGg6IFwi\nLjc0cmVtXCIsXG4gICAgICAgICAgXCJib3JkZXItcmFkaXVzXCI6IFwiM3B4XCIsXG4gICAgICAg\nICAgYmFja2dyb3VuZDogXCJ1cmwoaHR0cHM6XC9cL2ltZ24wLmJkc3RhdGljLmNvbVwvaW1hZ2Vc\nL21vYmlsZVwvblwvc3RhdGljXC93aXNlaWtcL3N0YXRpY1wvaW1nXC9jYW1lcmFCdG5fYzE5YWMx\nZS5wbmcpIG5vLXJlcGVhdCA1MCVcLzEwMCUgYXV0b1wiLFxuICAgICAgICAgIFwidGV4dC1hbGln\nblwiOiBcImNlbnRlclwiXG4gICAgICAgIH0pO1xuICAgICAgICBkb211dGlscy5vbihkaXZIb21l\nQ2FtZXJhLCBcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5\nU2VsZWN0b3IoXG4gICAgICAgICAgICBcImlucHV0I3doaXRlc2V2LXVwbG9hZC1pbWFnZVwiXG4g\nICAgICAgICAgKS5jbGljaygpO1xuICAgICAgICB9KTtcbiAgICAgICAgZG9tdXRpbHMuYXBwZW5k\nKCR2aWV3UGFnZSwgZGl2SG9tZUNhbWVyYSk7XG4gICAgICAgIHV0aWxzLndhdGNoT2JqZWN0KFxu\nICAgICAgICAgICR2aWV3UGFnZS5fX3Z1ZV9fLFxuICAgICAgICAgIFwic2hvd0JvdHRvbUNhbWVy\nYVwiLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAg\nICAgICB9LFxuICAgICAgICAgIChfdmFsdWVfKSA9PiB7XG4gICAgICAgICAgICBpZiAoX3ZhbHVl\nXykge1xuICAgICAgICAgICAgICBkb211dGlscy5zaG93KGRpdkhvbWVDYW1lcmEpO1xuICAgICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZG9tdXRpbHMuaGlkZShkaXZIb21lQ2FtZXJh\nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9KTtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDlpoLmnpzlh7rnjrDor4blm77msqHnu5PmnpzvvIzph43m\nlrDor4bliKvvvIzlj6\/og73mmK\/lm6DkuLrlkI7pnaLlj4LmlbDlpJrkuoZ0cGxfZnJvbT1wY+ea\nhOmXrumimFxuICAgICAqXC9cbiAgICByZXBhaXJTZWFyY2hOb1Jlc3VsdCgpIHtcbiAgICAgIHV0\naWxzLndhaXROb2RlKFwiI2FwcCAuZ3JhcGgtbm9yZXN1bHQtdGV4dDFcIikudGhlbigoKSA9PiB7\nXG4gICAgICAgIGxvZy5pbmZvKFwi5Yik5pat572R6aG15Y+C5pWw5piv5ZCm5YyF5ZCrdHBsX2Zy\nb209cGNcIik7XG4gICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLmVuZHNXaXRoKFwi\nJnRwbF9mcm9tPXBjXCIpKSB7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5k\nb3cubG9jYXRpb24uaHJlZi5yZXBsYWNlKFxuICAgICAgICAgICAgXC8mdHBsX2Zyb209cGMkXC9n\naSxcbiAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtc\nbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlnKjlt7LmkJzntKLlh7rnm7jlhbPnu5PmnpznmoTn\nlYzpnaLkuK3nmoTph43mnoTjgJDph43mi43jgJHmjInpkq5cbiAgICAgKlwvXG4gICAgcmVwYWly\nUmV0YWtlQnV0dG9uKCkge1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIjdmlld3BvcnQgLmdyYXBo\nLWltYWdlY3V0LWJhbm5lci1jdG5cIikudGhlbigoJGltYWdlQ3V0QmFubmVyKSA9PiB7XG4gICAg\nICAgIGxvZy5pbmZvKFwi5Zyo5bey5pCc57Si5Ye655u45YWz57uT5p6c55qE55WM6Z2i5Lit55qE\n6YeN5p6E44CQ6YeN5ouN44CR5oyJ6ZKuXCIpO1xuICAgICAgICBsZXQgcmV0YWtlRGl2RE9NID0g\nZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBc\nInJldGFrZS1pbWFnZVwiLFxuICAgICAgICAgIHRleHRDb250ZW50OiBcIumHjeaLjVwiXG4gICAg\nICAgIH0pO1xuICAgICAgICBkb211dGlscy5jc3MocmV0YWtlRGl2RE9NLCB7XG4gICAgICAgICAg\ncG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICB0b3A6IFwiNTAlXCIsXG4gICAgICAg\nICAgcmlnaHQ6IFwiMFwiLFxuICAgICAgICAgIHBhZGRpbmc6IFwiMCAuMTdyZW1cIixcbiAgICAg\nICAgICBcImZvbnQtc2l6ZVwiOiBcIjE2cHhcIixcbiAgICAgICAgICBcImxpbmUtaGVpZ2h0XCI6\nIFwiNjBweFwiLFxuICAgICAgICAgIGNvbG9yOiBcIiMwMDBcIixcbiAgICAgICAgICBcIi13ZWJr\naXQtdHJhbnNmb3JtXCI6IFwidHJhbnNsYXRlWSgtNTAlKVwiLFxuICAgICAgICAgIHRyYW5zZm9y\nbTogXCJ0cmFuc2xhdGVZKC01MCUpXCJcbiAgICAgICAgfSk7XG4gICAgICAgIGRvbXV0aWxzLm9u\nKHJldGFrZURpdkRPTSwgXCJjbGlja1wiLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgIHV0\naWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rv\ncihcbiAgICAgICAgICAgIFwiaW5wdXQjd2hpdGVzZXYtdXBsb2FkLWltYWdlXCJcbiAgICAgICAg\nICApLmNsaWNrKCk7XG4gICAgICAgICAgZG9tdXRpbHMudHJpZ2dlcihcbiAgICAgICAgICAgIGRv\nY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgIFwiaW5wdXQjd2hpdGVzZXYtdXBs\nb2FkLWltYWdlXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBcImNsaWNrXCJcbiAgICAg\nICAgICApO1xuICAgICAgICB9KTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAg\nICAgZG9tdXRpbHMuYXBwZW5kKCRpbWFnZUN1dEJhbm5lciwgcmV0YWtlRGl2RE9NKTtcbiAgICAg\nICAgfSwgMmUzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgUGFuU2hpZWxkQ1NT\nID0gXCJcLyog5aSx6LSl6aG15bqV6YOo5bm\/5ZGK5o6o6I2QICpcL1xcclxcbmRpdi5zaGFyZS1l\ncnJvci1hZCxcXHJcXG5cLyog5bem5L6n5a+86Iiq5qCP5bqV6YOo5LiL6L2955m+5bqm572R55uY\nQVBQ5qiq5qCPICpcL1xcclxcbiNhcHAgZGl2LmRvd25sb2FkLWFwcCxcXHJcXG5cLyog5aSx6LSl\n6aG1LeWwj+mjnuacuumAgeaDiuWWnCAqXC9cXHJcXG5kaXYuZXJyb3JXcmFwIGRpdi5zaGFyZS1w\nbGFuZSxcXHJcXG5cLyog5L+d5a2Y5Yiw572R55uY5Y+z5LiK6KeS55qE6aKG57qi5YyF5Zu+5qCH\nICpcL1xcclxcbmltZy5zaGFyZWxpc3Qtc2F2ZWJ1dHRvbi1oYi10aXAge1xcclxcbiAgZGlzcGxh\neTogbm9uZSAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG5cIjtcbiAgY29uc3QgQmFpZHVQYW4gPSB7\nXG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxlKFBhblNoaWVsZENTUyk7XG4gICAgICBsb2cu\naW5mbyhcIuaPkuWFpUNTU+inhOWImVwiKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IFlpWWFuU2hp\nZWxkQ1NTID0gXCJcIjtcbiAgY29uc3QgUmVhY3RVdGlscyA9IHtcbiAgICBcLyoqXG4gICAgICog\n562J5b6FcmVhY3Tmn5DkuKrlsZ7mgKflubbov5vooYzorr7nva5cbiAgICAgKlwvXG4gICAgYXN5\nbmMgd2FpdFJlYWN0UHJvcHNUb1NldCgkdGFyZ2V0LCBwcm9wTmFtZSwgbmVlZFNldExpc3QpIHtc\nbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShuZWVkU2V0TGlzdCkpIHtcbiAgICAgICAgdGhpcy53\nYWl0UmVhY3RQcm9wc1RvU2V0KCR0YXJnZXQsIHByb3BOYW1lLCBbbmVlZFNldExpc3RdKTtcbiAg\nICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZ2V0VGFyZ2V0KCkge1xuICAg\nICAgICBsZXQgX190YXJnZXRfXyA9IG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgJHRhcmdldCA9\nPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIF9fdGFyZ2V0X18gPSBkb2N1bWVudC5xdWVyeVNl\nbGVjdG9yKCR0YXJnZXQpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiAkdGFyZ2V0ID09PSBc\nImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBfX3RhcmdldF9fID0gJHRhcmdldCgpO1xuICAgICAg\nICB9IGVsc2UgaWYgKCR0YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICAg\nIF9fdGFyZ2V0X18gPSAkdGFyZ2V0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfX3Rhcmdl\ndF9fO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiAkdGFyZ2V0ID09PSBcInN0cmluZ1wiKSB7\nXG4gICAgICAgIGxldCAkZWxlID0gYXdhaXQgdXRpbHMud2FpdE5vZGUoJHRhcmdldCwgMWU0KTtc\nbiAgICAgICAgaWYgKCEkZWxlKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAg\nICB9XG4gICAgICBuZWVkU2V0TGlzdC5mb3JFYWNoKChuZWVkU2V0T3B0aW9uKSA9PiB7XG4gICAg\nICAgIGlmICh0eXBlb2YgbmVlZFNldE9wdGlvbi5tc2cgPT09IFwic3RyaW5nXCIpIHtcbiAgICAg\nICAgICBsb2cuaW5mbyhuZWVkU2V0T3B0aW9uLm1zZyk7XG4gICAgICAgIH1cbiAgICAgICAgZnVu\nY3Rpb24gY2hlY2tPYmooKSB7XG4gICAgICAgICAgbGV0IHRhcmdldCA9IGdldFRhcmdldCgpO1xu\nICAgICAgICAgIGlmICh0YXJnZXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNl\nO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgdGFyZ2V0T2JqID0gdXRpbHMuZ2V0UmVhY3RP\nYmoodGFyZ2V0KTtcbiAgICAgICAgICBpZiAodGFyZ2V0T2JqID09IG51bGwpIHtcbiAgICAgICAg\nICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbGV0IHRhcmdldE9ialBy\nb3AgPSB0YXJnZXRPYmpbcHJvcE5hbWVdO1xuICAgICAgICAgIGlmICh0YXJnZXRPYmpQcm9wID09\nIG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAg\nICAgbGV0IG5lZWRPd25DaGVjayA9IG5lZWRTZXRPcHRpb24uY2hlY2sodGFyZ2V0T2JqUHJvcCk7\nXG4gICAgICAgICAgcmV0dXJuIEJvb2xlYW4obmVlZE93bkNoZWNrKTtcbiAgICAgICAgfVxuICAg\nICAgICB1dGlscy53YWl0UHJvcGVydHlCeUludGVydmFsKFxuICAgICAgICAgICgpID0+IHtcbiAg\nICAgICAgICAgIHJldHVybiBnZXRUYXJnZXQoKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNo\nZWNrT2JqLFxuICAgICAgICAgIDI1MCxcbiAgICAgICAgICAxZTRcbiAgICAgICAgKS50aGVuKCgp\nID0+IHtcbiAgICAgICAgICBsZXQgdGFyZ2V0ID0gZ2V0VGFyZ2V0KCk7XG4gICAgICAgICAgaWYg\nKHRhcmdldCA9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG5lZWRTZXRPcHRpb24u\nb3ZlclRpbWVDYWxsQmFjayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgIG5lZWRT\nZXRPcHRpb24ub3ZlclRpbWVDYWxsQmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAg\ncmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgdGFyZ2V0T2JqID0gdXRpbHMuZ2V0\nUmVhY3RPYmoodGFyZ2V0KTtcbiAgICAgICAgICBpZiAodGFyZ2V0T2JqID09IG51bGwpIHtcbiAg\nICAgICAgICAgIGlmICh0eXBlb2YgbmVlZFNldE9wdGlvbi5vdmVyVGltZUNhbGxCYWNrID09PSBc\nImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgbmVlZFNldE9wdGlvbi5vdmVyVGltZUNhbGxC\nYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxu\nICAgICAgICAgIGxldCB0YXJnZXRPYmpQcm9wID0gdGFyZ2V0T2JqW3Byb3BOYW1lXTtcbiAgICAg\nICAgICBpZiAodGFyZ2V0T2JqUHJvcCA9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9m\nIG5lZWRTZXRPcHRpb24ub3ZlclRpbWVDYWxsQmFjayA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAg\nICAgICAgICAgIG5lZWRTZXRPcHRpb24ub3ZlclRpbWVDYWxsQmFjaygpO1xuICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBuZWVkU2V0T3B0\naW9uLnNldCh0YXJnZXRPYmpQcm9wKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4g\nIH07XG4gIGNvbnN0IEJhaWR1WWlZYW4gPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxl\nKFlpWWFuU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZXCIpO1xu\nICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X3lpeWFuX3JlbW92ZV9haV9tYXNr\nXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5ibG9ja1dhdGVyTWFyaygpO1xuICAgICAgfSk7XG4g\nICAgICBQb3BzUGFuZWwuZXhlY01lbnUoXCJiYWlkdV95aXlhbi1leGVjQnlVcmxTZWFyY2hQYXJh\nbXNcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLmV4ZWNCeVVybFNlYXJjaFBhcmFtcygpO1xuICAg\nICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog6YCa6L+H5aSE55CGYXR0YWNoU2hhZG93\n5ZKMYXBwZW5kQ2hpbGTljp\/lnovmnaXljrvpmaTmsLTljbBcbiAgICAgKiDlsY\/olL0gQUnnlJ\/m\niJDlhoXlrrnku4Xkvpvlj4LogINcbiAgICAgKiDlsY\/olL0gQUnkvZzlm75cbiAgICAgKlwvXG4g\nICAgYmxvY2tXYXRlck1hcmsoKSB7XG4gICAgICBsb2cuaW5mbyhcImhvb2s6IEVsZW1lbnQuYXR0\nYWNoU2hhZG93XCIpO1xuICAgICAgbGV0IG9sZFNoYWRvdyA9IF91bnNhZmVXaW5kb3cuRWxlbWVu\ndC5wcm90b3R5cGUuYXR0YWNoU2hhZG93O1xuICAgICAgX3Vuc2FmZVdpbmRvdy5FbGVtZW50LnBy\nb3RvdHlwZS5hdHRhY2hTaGFkb3cgPSBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0\nIHNoYWRvd1Jvb3QgPSBvbGRTaGFkb3cuY2FsbCh0aGlzLCAuLi5hcmdzKTtcbiAgICAgICAgdGhp\ncy5fc2hhZG93Um9vdCA9IHNoYWRvd1Jvb3Q7XG4gICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hp\nbGQoXG4gICAgICAgICAgZG9tdXRpbHMuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgIFwic3R5\nbGVcIixcbiAgICAgICAgICAgIFwiZGl2W2lkXj0nbWFzaydde2Rpc3BsYXk6IG5vbmUgIWltcG9y\ndGFudDt9XCJcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBzaGFkb3dS\nb290O1xuICAgICAgfTtcbiAgICAgIGxvZy5zdWNjZXNzKFwiaG9vazogRWxlbWVudC5hcHBlbmRD\naGlsZFwiKTtcbiAgICAgIGxldCBvbGRBcHBlbmRDaGlsZCA9IF91bnNhZmVXaW5kb3cuRWxlbWVu\ndC5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ7XG4gICAgICBfdW5zYWZlV2luZG93LkVsZW1lbnQucHJv\ndG90eXBlLmFwcGVuZENoaWxkID0gZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICBpZiAoZWxl\nbWVudC5sb2NhbE5hbWUgPT09IFwiaW1nXCIpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+\nIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpbWdcIikuZm9yRWFj\naCgoaW1hZ2VFbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChpbWFnZUVsZW1lbnQuc3Jj\nLmVuZHNXaXRoKFwic3R5bGVcL3dtX2FpXCIpKSB7XG4gICAgICAgICAgICAgICAgaW1hZ2VFbGVt\nZW50LnNyYyA9IGltYWdlRWxlbWVudC5zcmMucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgIFwv\nc3R5bGVcXFwvd21fYWkkXC9naSxcbiAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAg\nICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LCAx\nNTApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvbGRBcHBlbmRDaGlsZC5jYWxsKHRoaXMs\nIGVsZW1lbnQpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmj5Dkvpvlr7nl\npJbnmoTmkJzntKLpk77mjqVcbiAgICAgKlxuICAgICAqIOWIpOaWreaWueW8j+S4umxvY2F0aW9u\nLnNlYXJjaOS4reWMheWQq+afpeivouWFs+mUruWtl2dtc2VhcmNoXG4gICAgICpcL1xuICAgIGV4\nZWNCeVVybFNlYXJjaFBhcmFtcygpIHtcbiAgICAgIGxldCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJM\nU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgICAgY29uc3QgS0VZX3Nl\nYXJjaFRleHQgPSBcImdtc2VhcmNoXCI7XG4gICAgICBjb25zdCBLRVlfZGVjb2RlU2VhcmNoVGV4\ndCA9IFwiZ21kZWNvZGVcIjtcbiAgICAgIGlmICghc2VhcmNoUGFyYW1zLmhhcyhLRVlfc2VhcmNo\nVGV4dCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IHNlYXJjaFRleHQg\nPSBzZWFyY2hQYXJhbXMuZ2V0KEtFWV9zZWFyY2hUZXh0KTtcbiAgICAgIGxldCBkZWNvZGVTZWFy\nY2hUZXh0ID0gc2VhcmNoUGFyYW1zLmdldChLRVlfZGVjb2RlU2VhcmNoVGV4dCk7XG4gICAgICBp\nZiAoZGVjb2RlU2VhcmNoVGV4dCkge1xuICAgICAgICBzZWFyY2hUZXh0ID0gZGVjb2RlVVJJQ29t\ncG9uZW50KHNlYXJjaFRleHQpO1xuICAgICAgfVxuICAgICAgbG9nLmluZm8oXCLlrZjlnKjmkJzn\ntKLmjqXlj6PvvIzmn6Xor6LlhoXlrrnvvJpcIiArIHNlYXJjaFRleHQpO1xuICAgICAgbGV0ICRs\nb2FkaW5nID0gUW1zZy5sb2FkaW5nKFwi562J5b6F57yW6L6R5qGG5Yqg6L295a6M5oiQLi4uXCIs\nIHtcbiAgICAgICAgc2hvd0Nsb3NlOiB0cnVlXG4gICAgICB9KTtcbiAgICAgIFJlYWN0VXRpbHMu\nd2FpdFJlYWN0UHJvcHNUb1NldChcIiNkaWFsb2d1ZUZvb3RlclwiLCBcInJlYWN0UHJvcHNcIiwg\ne1xuICAgICAgICBtc2c6IFwi562J5b6F5YWD57SgI2RpYWxvZ3VlRm9vdGVyXCIsXG4gICAgICAg\nIGNoZWNrKHJlYWN0SW5zdGFuY2UpIHtcbiAgICAgICAgICB2YXIgX2EzLCBfYjtcbiAgICAgICAg\nICByZXR1cm4gdHlwZW9mICgoX2IgPSAoX2EzID0gcmVhY3RJbnN0YW5jZSA9PSBudWxsID8gdm9p\nZCAwIDogcmVhY3RJbnN0YW5jZS5jaGlsZHJlbikgPT0gbnVsbCA\/IHZvaWQgMCA6IF9hMy5wcm9w\ncykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLnNldFRleHQpID09PSBcImZ1bmN0aW9uXCI7XG4gICAg\nICAgIH0sXG4gICAgICAgIHNldChyZWFjdEluc3RhbmNlKSB7XG4gICAgICAgICAgJGxvYWRpbmcu\nY2xvc2UoKTtcbiAgICAgICAgICBsZXQgcHJvcHMgPSByZWFjdEluc3RhbmNlLmNoaWxkcmVuLnBy\nb3BzO1xuICAgICAgICAgIGxldCBzZXRUZXh0ID0gcHJvcHMuc2V0VGV4dDtcbiAgICAgICAgICBs\nZXQgaXNMb2dpbiA9IHByb3BzLnVzZXJJbmZvLmlzTG9naW47XG4gICAgICAgICAgc2V0VGV4dChz\nZWFyY2hUZXh0KTtcbiAgICAgICAgICBpZiAoIWlzTG9naW4pIHtcbiAgICAgICAgICAgIGxvZy5l\ncnJvcihcIuWFiOeZu+W9leaJjeWPr+S7peaPkOmXrlwiKTtcbiAgICAgICAgICAgIFFtc2cuZXJy\nb3IoXCLlhYjnmbvlvZXmiY3lj6\/ku6Xmj5Dpl65cIik7XG4gICAgICAgICAgICByZXR1cm47XG4g\nICAgICAgICAgfVxuICAgICAgICAgIGxldCBjdXJyZW50ID0gcHJvcHMuYXJlYVJlZi5jdXJyZW50\nO1xuICAgICAgICAgIGlmIChjdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAg\nICAgICAgIFJlYWN0VXRpbHMud2FpdFJlYWN0UHJvcHNUb1NldChjdXJyZW50LCBcInJlYWN0UHJv\ncHNcIiwge1xuICAgICAgICAgICAgICBtc2c6IFwi562J5b6F5o+Q6Zeu5oyJ6ZKu5YWD57SgXCIs\nXG4gICAgICAgICAgICAgIGNoZWNrKHJlYWN0SW5zdGFuY2UyKSB7XG4gICAgICAgICAgICAgICAg\ndmFyIF9hMywgX2IsIF9jO1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgKChfYyA9IChf\nYiA9IChfYTMgPSByZWFjdEluc3RhbmNlMiA9PSBudWxsID8gdm9pZCAwIDogcmVhY3RJbnN0YW5j\nZTIuY2hpbGRyZW4pID09IG51bGwgPyB2b2lkIDAgOiBfYTNbM10pID09IG51bGwgPyB2b2lkIDAg\nOiBfYi5wcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLm9uQ2xpY2spID09PSBcImZ1bmN0aW9u\nXCI7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHNldChyZWFjdEluc3RhbmNlMikg\ne1xuICAgICAgICAgICAgICAgIGxldCBvbkNsaWNrID0gcmVhY3RJbnN0YW5jZTIuY2hpbGRyZW5b\nM10ucHJvcHMub25DbGljaztcbiAgICAgICAgICAgICAgICBvbkNsaWNrKHsgdHlwZTogMTAgfSk7\nXG4gICAgICAgICAgICAgICAgbG9nLnN1Y2Nlc3MoYOeCueWHu+aPkOmXruaMiemSrmApO1xuICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4g\nICAgICAgIG92ZXJUaW1lQ2FsbEJhY2soKSB7XG4gICAgICAgICAgJGxvYWRpbmcuY2xvc2UoKTtc\nbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBSZWFjdFV0aWxzLndhaXRSZWFjdFByb3BzVG9T\nZXQoXCIjZWJfbW9kZWxfZm9vdGVyXCIsIFwicmVhY3RQcm9wc1wiLCB7XG4gICAgICAgIG1zZzog\nXCLnrYnlvoXlhYPntKAjZWJfbW9kZWxfZm9vdGVyXCIsXG4gICAgICAgIGNoZWNrKHJlYWN0SW5z\ndGFuY2UpIHtcbiAgICAgICAgICB2YXIgX2EzLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwg\nX2k7XG4gICAgICAgICAgcmV0dXJuIHR5cGVvZiAoKF9pID0gKF9oID0gKF9nID0gKF9mID0gKF9l\nID0gKF9kID0gKF9jID0gKF9iID0gKF9hMyA9IHJlYWN0SW5zdGFuY2UgPT0gbnVsbCA\/IHZvaWQg\nMCA6IHJlYWN0SW5zdGFuY2UuY2hpbGRyZW4pID09IG51bGwgPyB2b2lkIDAgOiBfYTNbMl0pID09\nIG51bGwgPyB2b2lkIDAgOiBfYi5wcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9jLmNoaWxkcmVu\nKSA9PSBudWxsID8gdm9pZCAwIDogX2RbMl0pID09IG51bGwgPyB2b2lkIDAgOiBfZS5wcm9wcykg\nPT0gbnVsbCA\/IHZvaWQgMCA6IF9mLmNoaWxkcmVuKSA9PSBudWxsID8gdm9pZCAwIDogX2dbMF0p\nID09IG51bGwgPyB2b2lkIDAgOiBfaC5wcm9wcykgPT0gbnVsbCA\/IHZvaWQgMCA6IF9pLnNldFRl\neHQpID09PSBcImZ1bmN0aW9uXCI7XG4gICAgICAgIH0sXG4gICAgICAgIHNldChyZWFjdEluc3Rh\nbmNlKSB7XG4gICAgICAgICAgdmFyIF9hMywgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2g7XG4g\nICAgICAgICAgJGxvYWRpbmcuY2xvc2UoKTtcbiAgICAgICAgICBsZXQgcHJvcHMgPSAoX2ggPSAo\nX2cgPSAoX2YgPSAoX2UgPSAoX2QgPSAoX2MgPSAoX2IgPSAoX2EzID0gcmVhY3RJbnN0YW5jZSA9\nPSBudWxsID8gdm9pZCAwIDogcmVhY3RJbnN0YW5jZS5jaGlsZHJlbikgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9hM1syXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9iLnByb3BzKSA9PSBudWxsID8gdm9pZCAw\nIDogX2MuY2hpbGRyZW4pID09IG51bGwgPyB2b2lkIDAgOiBfZFsyXSkgPT0gbnVsbCA\/IHZvaWQg\nMCA6IF9lLnByb3BzKSA9PSBudWxsID8gdm9pZCAwIDogX2YuY2hpbGRyZW4pID09IG51bGwgPyB2\nb2lkIDAgOiBfZ1swXSkgPT0gbnVsbCA\/IHZvaWQgMCA6IF9oLnByb3BzO1xuICAgICAgICAgIGxl\ndCBzZXRUZXh0ID0gcHJvcHMuc2V0VGV4dDtcbiAgICAgICAgICBsZXQgaXNMb2dpbiA9IHByb3Bz\nLnVzZXJJbmZvLmlzTG9naW47XG4gICAgICAgICAgc2V0VGV4dChzZWFyY2hUZXh0KTtcbiAgICAg\nICAgICBpZiAoIWlzTG9naW4pIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcihcIuWFiOeZu+W9leaJ\njeWPr+S7peaPkOmXrlwiKTtcbiAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLlhYjnmbvlvZXmiY3l\nj6\/ku6Xmj5Dpl65cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAg\nICAgIGxldCAkc2VuZEJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBg\nI2ViX21vZGVsX2Zvb3RlciBkaXY6aGFzKCtmb290ZXIpIHNwYW46aGFzKHN2Z1twcmVzZXJ2ZUFz\ncGVjdFJhdGlvXSlgXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoJHNlbmRCdG4pIHtcbiAg\nICAgICAgICAgICRzZW5kQnRuLmNsaWNrKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgIGxvZy5lcnJvcihcIuacquaJvuWIsOWPkemAgeaMiemSrlwiKTtcbiAgICAgICAgICB9XG4g\nICAgICAgIH0sXG4gICAgICAgIG92ZXJUaW1lQ2FsbEJhY2soKSB7XG4gICAgICAgICAgJGxvYWRp\nbmcuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBjb25zdCBD\naGF0U2hpZWxkQ1NTID0gXCJcIjtcbiAgY29uc3QgQmFpZHVDaGF0ID0ge1xuICAgIGluaXQoKSB7\nXG4gICAgICBhZGRTdHlsZShDaGF0U2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWl\nQ1NT6KeE5YiZXCIpO1xuICAgICAgZG9tdXRpbHMucmVhZHkoKCkgPT4ge1xuICAgICAgICBQb3Bz\nUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfY2hhdF9yZW1vdmVfYWlfbWFza1wiLCAoKSA9PiB7\nXG4gICAgICAgICAgdGhpcy5yZW1vdmVBaU1hc2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtc\nbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDljrvpmaRBSeeahOmBrue9qVxuICAgICAqXC9cbiAg\nICByZW1vdmVBaU1hc2soKSB7XG4gICAgICBsb2cuaW5mbyhcIuWOu+mZpEFJ55qE6YGu572pXCIp\nO1xuICAgICAgQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAgICAgXCIuYm90LWJvZHkgLndh\ndGVybWFya1wiLFxuICAgICAgICAnI3NlYXJjaENoYXRBcHAgZGl2W2NsYXNzXj1cIndhdGVybWFy\na1wiXSdcbiAgICAgICk7XG4gICAgICBsZXQgbG9ja0Z1bmMgPSBuZXcgdXRpbHMuTG9ja0Z1bmN0\naW9uKGZ1bmN0aW9uKCkge1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaW1n\nW3NyYyo9J3N0eWxlXC93bV9haSddXCIpLmZvckVhY2goKGltZ0VsZW1lbnQpID0+IHtcbiAgICAg\nICAgICBsb2cuaW5mbyhcIuWkhOeQhkFJ5rC05Y2w77yaXCIgKyBpbWdFbGVtZW50LnNyYyk7XG4g\nICAgICAgICAgaW1nRWxlbWVudC5zcmMgPSBpbWdFbGVtZW50LnNyYy5yZXBsYWNlKFwvc3R5bGVc\nXFwvd21fYWlcL2csIFwiXCIpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIDQwMCk7XG4gICAgICB1\ndGlscy5tdXRhdGlvbk9ic2VydmVyKGRvY3VtZW50LmJvZHksIHtcbiAgICAgICAgY29uZmlnOiB7\nIHN1YnRyZWU6IHRydWUsIGNoaWxkTGlzdDogdHJ1ZSB9LFxuICAgICAgICBjYWxsYmFjazogbG9j\na0Z1bmMucnVuXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IE1pbmlKaWFvWXVTaGll\nbGRDU1MgPSBcIlwiO1xuICBjb25zdCBCYWlkdU1pbmlKaWFvWXUgPSB7XG4gICAgaW5pdCgpIHtc\nbiAgICAgIGFkZFN0eWxlKE1pbmlKaWFvWXVTaGllbGRDU1MpO1xuICAgICAgbG9nLmluZm8oXCLm\nj5LlhaVDU1Pop4TliJlcIik7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAg\nICBcIm1pbmlfYmFpZHVfamlhb3l1X3NoaWVsZF9ib3R0b21fcHVsbF9kb3duX21lbnVcIixcbiAg\nICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hpZWxkQm90dG9tUHVsbERvd25NZW51KCk7\nXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwibWlu\naV9iYWlkdV9qaWFveXUtYmxvY2tFdmVyeU9uZVNlYXJjaFwiLCAoKSA9PiB7XG4gICAgICAgIHJl\ndHVybiB0aGlzLmJsb2NrRXZlcnlPbmVTZWFyY2goKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOazqOWFpeWIsGlmcmFtZVxuICAgICAqIEBwYXJhbSBbaWZyYW1lU2VsZWN0\nb3I9XCJpZnJhbWUuc3dhbi13ZWItaWZyYW1lXCJdIGlmcmFtZemAieaLqeWZqFxuICAgICAqIEBw\nYXJhbSByZWFkeUNhbGxiYWNrIOWKoOi9veWujOavleeahOWbnuiwg1xuICAgICAqXC9cbiAgICBp\nbmplY3RJZnJhbWUoaWZyYW1lU2VsZWN0b3IgPSBcImlmcmFtZS5zd2FuLXdlYi1pZnJhbWVcIiwg\ncmVhZHlDYWxsYmFjaykge1xuICAgICAgaWYgKCFQb3BzUGFuZWwuaXNUb3BXaW5kb3coKSkge1xu\nICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBkb211dGlscy5yZWFkeSgoKSA9PiB7XG4g\nICAgICAgIHV0aWxzLndhaXROb2RlKGlmcmFtZVNlbGVjdG9yLCAxZTQpLnRoZW4oKCRpZnJhbWUp\nID0+IHtcbiAgICAgICAgICBpZiAoISRpZnJhbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAg\nICAgICAgICB9XG4gICAgICAgICAgbGV0IGlmcmFtZV9fZG9jdW1lbnQgPSAkaWZyYW1lLmNvbnRl\nbnREb2N1bWVudDtcbiAgICAgICAgICBsZXQgaWZyYW1lX193aW5kb3cgPSAkaWZyYW1lLmNvbnRl\nbnRXaW5kb3c7XG4gICAgICAgICAgbGV0IGlmcmFtZV9fZ2xvYmFsVGhpcyA9IGlmcmFtZV9fd2lu\nZG93O1xuICAgICAgICAgIGxldCBpZnJhbWVfX3NlbGYgPSBpZnJhbWVfX3dpbmRvdztcbiAgICAg\nICAgICBsZXQgY29yZU9wdGlvbiA9IHtcbiAgICAgICAgICAgIGRvY3VtZW50OiBpZnJhbWVfX2Rv\nY3VtZW50LFxuICAgICAgICAgICAgd2luZG93OiBpZnJhbWVfX3dpbmRvdyxcbiAgICAgICAgICAg\nIGdsb2JhbFRoaXM6IGlmcmFtZV9fZ2xvYmFsVGhpcyxcbiAgICAgICAgICAgIHNlbGY6IGlmcmFt\nZV9fc2VsZixcbiAgICAgICAgICAgIHRvcDogX3Vuc2FmZVdpbmRvdy50b3BcbiAgICAgICAgICB9\nO1xuICAgICAgICAgIGxldCBpZnJhbWVET01VdGlscyA9IGRvbXV0aWxzLmNyZWF0ZURPTVV0aWxz\nKGNvcmVPcHRpb24pO1xuICAgICAgICAgIGxldCBpZnJhbWVVdGlscyA9IHV0aWxzLmNyZWF0ZVV0\naWxzKGNvcmVPcHRpb24pO1xuICAgICAgICAgIGlmICh0eXBlb2YgcmVhZHlDYWxsYmFjayA9PT0g\nXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZWFkeUNhbGxiYWNrKHtcbiAgICAgICAgICAg\nICAgLi4uY29yZU9wdGlvbixcbiAgICAgICAgICAgICAgdXRpbHM6IGlmcmFtZVV0aWxzLFxuICAg\nICAgICAgICAgICBET01VdGlsczogaWZyYW1lRE9NVXRpbHNcbiAgICAgICAgICAgIH0pO1xuICAg\nICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDjgJDlsY\/olL3jgJHlupXpg6jkuIvmi4noj5zljZVcbiAgICAgKlwvXG4gICAgc2hpZWxkQm90\ndG9tUHVsbERvd25NZW51KCkge1xuICAgICAgbGV0IGhpZGVDU1MgPSAoXG4gICAgICAgIFwvKmNz\ncypcL1xuICAgICAgICBgXG4gICAgICAgICNwYWdlX2xvZnR7XG4gICAgICAgICAgICBkaXNwbGF5\nOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1gXG4gICAgICApO1xuICAgICAgdGhpcy5pbmpl\nY3RJZnJhbWUodm9pZCAwLCAoaWZyYW1lR2xvYmFsKSA9PiB7XG4gICAgICAgIGlmcmFtZUdsb2Jh\nbC5ET01VdGlscy5yZWFkeSgoKSA9PiB7XG4gICAgICAgICAgbG9nLmluZm8oXCLjgJDlsY\/olL3j\ngJHlupXpg6jkuIvmi4noj5zljZVcIik7XG4gICAgICAgICAgaWZyYW1lR2xvYmFsLnV0aWxzLmFk\nZFN0eWxlKGhpZGVDU1MpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOOAkOWxj+iUveOAkeWkp+Wutui\/mOWcqOaQnFxuICAgICAqXC9cbiAgICBibG9j\na0V2ZXJ5T25lU2VhcmNoKCkge1xuICAgICAgbGV0IGhpZGVDU1MgPSAoXG4gICAgICAgIFwvKmNz\ncypcL1xuICAgICAgICBgXG4gICAgICAgIHN3YW4tZXZlcnlvbmUtc2VhcmNoLWJveHtcbiAgICAg\nICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfWBcbiAgICAgICk7XG4g\nICAgICB0aGlzLmluamVjdElmcmFtZSh2b2lkIDAsIChpZnJhbWVHbG9iYWwpID0+IHtcbiAgICAg\nICAgaWZyYW1lR2xvYmFsLkRPTVV0aWxzLnJlYWR5KCgpID0+IHtcbiAgICAgICAgICBsb2cuaW5m\nbyhcIuOAkOWxj+iUveOAkeWkp+Wutui\/mOWcqOaQnFwiKTtcbiAgICAgICAgICBpZnJhbWVHbG9i\nYWwudXRpbHMuYWRkU3R5bGUoaGlkZUNTUyk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAg\nfVxuICB9O1xuICBjb25zdCBFYXN5TGVhcm5TaGllbGRDU1MgPSBcIlwvKiDkuK3pl7TlvLnnqpct\n6ZmQ5pe25LiT5Lqr56aP5YipICpcL1xcclxcbiNhcHAgLnByZS11bnBhaWQtd3JhcCxcXHJcXG5c\nLyog5bqV6YOo5bel5YW35qCP5LiK6Z2iLeaciOiAg+WFqOiDnCDmgqjmnIl4eOWFg+S9k+mqjOWN\noSAqXC9cXHJcXG4ucXVlc3Rpb24tYm90dG9tLWJhciAudmlwLWJhcixcXHJcXG5cLyog6Kej5p6Q\nLeWFjei0ueafpeeci+etlOahiOWPiuino+aekCAqXC9cXHJcXG4ucXVlc3Rpb24tYW5hbHlzaXMt\nbmV3IC5zZWUtbW9yZSxcXHJcXG5cLyog5pyA5bqV6YOoLeeZvuW6puaVmeiCsuWVhuWKoeWQiOS9\nnOOAgeS6p+WTgeS7o+eQhumUgOWUruaIluWGheWuueWQiOS9nOetiSpcL1xcclxcbi5idXNpbmVz\ncy1lbC1saW5lLFxcclxcbi5idXNpbmVzcy1lbC1saW5lLWJhY2tncm91bmQsXFxyXFxuXC8qIOWx\nleW8gOaMiemSriAqXC9cXHJcXG4ucXVlc3Rpb24tYW5hbHlzaXMtbmV3IC5leHBhbmQsXFxyXFxu\nXC8qIDfml6VWSVDpmZDlhY0g5aSn5a2m55Sf5YWN6LS56aKGICpcL1xcclxcbiNhcHAgLmJnay1x\ndWVzdGlvbi1kZXRhaWwgLmZsb2F0LWZpeGVkIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9y\ndGFudDtcXHJcXG59XFxyXFxuXC8qIOaYvuekuuetlOahiOWPiuino+aekCAqXC9cXHJcXG4ucXVl\ncy10aXRsZS5hbmFseXNpcy10aXRsZSArIGRpdiB7XFxyXFxuICBkaXNwbGF5OiB1bnNldCAhaW1w\nb3J0YW50O1xcclxcbn1cXHJcXG4ucXVlc3Rpb24tYW5hbHlzaXMtbmV3IC5hbmFseXNpcy13cmFw\nLFxcclxcbiNhbmFseXNpcyB7XFxyXFxuICBvdmVyZmxvdzogdW5zZXQgIWltcG9ydGFudDtcXHJc\nXG4gIGhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcXHJcXG4gIG1heC1oZWlnaHQ6IHVuc2V0ICFp\nbXBvcnRhbnQ7XFxyXFxufVxcclxcblwvKiDnlLXohJHnq68gKlwvXFxyXFxuXC8qIOS4remXtOW8\nueeqly3pmZDml7bkuJPkuqvnpo\/liKkgKlwvXFxyXFxuLmthaXh1ZS1kaWFsb2ctbWFzayxcXHJc\nXG5cLyog6Kej5p6QLeWFjei0ueafpeeci+etlOahiOWPiuino+aekCAqXC9cXHJcXG4ucXVlc3Rp\nb24tY29udCAubWFzayxcXHJcXG5cLyog5bqV6YOoLeaoquW5heeVheS6q+eZvuS4h+ino+mimOin\nhumikeOAgSDljYPkuIfmlbTmnKzor5Xpopjop6PmnpBWSVDlhajlnLrlhY3otLnkuIsgKlwvXFxy\nXFxuLnZpcC1iYW5uZXItY29udCB7XFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxy\nXFxufVxcclxcblwiO1xuICBjb25zdCBCYWlkdUVhc3lMZWFybiA9IHtcbiAgICBpbml0KCkge1xu\nICAgICAgYWRkU3R5bGUoRWFzeUxlYXJuU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S\n5YWlQ1NT6KeE5YiZXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImJhaWR1X2Vh\nc3lsZWFybl9zaGllbGRfdGhpc19xdWVzdGlvbl9wYXBlclwiLCAoKSA9PiB7XG4gICAgICAgIHJl\ndHVybiB0aGlzLnNoaWVsZFF1ZXN0aW9uUGFwZXIoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1Bh\nbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJiYWlkdV9lYXN5bGVhcm5fc2hpZWxkX2dvb2Rf\ncXVlc3Rpb25zX2luX3RoaXNfdm9sdW1lXCIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBy\nZXR1cm4gdGhpcy5zaGllbGRHb29kUXVlc3Rpb25zSW5UaGlzVm9sdW1lKCk7XG4gICAgICAgIH1c\nbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfZWFzeWxlYXJu\nX3NoaWVsZF9yZWxhdGVkX3Rlc3RfcGFwZXJzXCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRo\naXMuc2hpZWxkUmVsYXRlZFRlc3RQYXBlcnMoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVs\nLmV4ZWNNZW51T25jZShcImJhaWR1X2Vhc3lsZWFybl9zaGllbGRfdmlkZW9fZXhwbGFuYXRpb25c\nIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRWaWRlb0V4cGxhbmF0aW9uKCk7\nXG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV9lYXN5bGVh\ncm5fc2hpZWxkX3h1ZWJhX25vdGVzXCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hp\nZWxkWHVlYmFOb3RlcygpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNl\nKFwiYmFpZHVfZWFzeWxlYXJuX3NoaWVsZF9ib3R0b21fdG9vbGJhclwiLCAoKSA9PiB7XG4gICAg\nICAgIHJldHVybiB0aGlzLnNoaWVsZEJvdHRvbVRvb2xiYXIoKTtcbiAgICAgIH0pO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJiYWlkdV9lYXN5bGVhcm5fdW5sb2Nr\naW5nX3RoZV91cHBlcl9saW1pdF9vZl9zZWFyY2hfcXVlc3Rpb25zXCIsXG4gICAgICAgICgpID0+\nIHtcbiAgICAgICAgICB0aGlzLmhpamFja1VzZXJTZWFyY2hRdWVzdENvdW50KCk7XG4gICAgICAg\nIH1cbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfZWFzeWxl\nYXJuX2F1dG9fc2hvd19hbnN3ZXJcIiwgKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dBbnN3ZXJD\nb250ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLnJlYWR5KCgpID0+IHtcbiAgICAg\nICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgICBcImJhaWR1X2Vhc3lsZWFybl91\nbmxvY2tpbmdfdG9wX3NlYXJjaF9pbnB1dFwiLFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAg\nICAgIHRoaXMuYWxsb3dVc2VyU2VhcmNoSW5wdXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7\nXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3popjljbdcbiAgICAg\nKlwvXG4gICAgc2hpZWxkUXVlc3Rpb25QYXBlcigpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS9\n6aKY5Y23XCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAg\nIFwiLnF1ZXN0aW9uLXNoaWp1YW4td3JhcFwiLFxuICAgICAgICBcLyogUEPnq68gKlwvXG4gICAg\nICAgIFwiLnF1ZXN0aW9uLWNvbnQgLnRpbXUtd3JhcCAuZG9jLWNvbnQtdjIgLmxlZnRcIlxuICAg\nICAgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3mnKzljbflpb3pophcbiAgICAg\nKlwvXG4gICAgc2hpZWxkR29vZFF1ZXN0aW9uc0luVGhpc1ZvbHVtZSgpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi5bGP6JS95pys5Y235aW96aKYXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRk\nQmxvY2tDU1MoXCIuZXhlcmNpc2UtcXVlc3Rpb25zLXdyYXBcIik7XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog5bGP6JS95pys5Y2355u45YWz6K+V5Y23XG4gICAgICpcL1xuICAgIHNoaWVsZFJl\nbGF0ZWRUZXN0UGFwZXJzKCkge1xuICAgICAgbG9nLmluZm8oXCLlsY\/olL3mnKzljbfnm7jlhbPo\nr5XljbdcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAgICAg\nXCIucmVsYXRlZC1wYXBlcnMtd3JhcFwiLFxuICAgICAgICBcLyogUEPnq68gKlwvXG4gICAgICAg\nIFwiLnF1ZXN0aW9uLWNvbnQgLnRpbXUtd3JhcCAuZG9jLWNvbnQtdjIgLnJpZ2h0XCJcbiAgICAg\nICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS96KeG6aKR6Kej5p6QXG4gICAgICpc\nL1xuICAgIHNoaWVsZFZpZGVvRXhwbGFuYXRpb24oKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iU\nveinhumikeino+aekFwiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFxu\nICAgICAgICBcIi52aWRlby1kb2MtY29tcG9cIixcbiAgICAgICAgXC8qIFBD56uvICpcL1xuICAg\nICAgICBcIi5jb250YWluZXIgI3F1ZXN0aW9uVmlkZW9cIlxuICAgICAgKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsY\/olL3lrabpnLhcbiAgICAgKlwvXG4gICAgc2hpZWxkWHVlYmFOb3Rl\ncygpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95a2m6Zy4XCIpO1xuICAgICAgcmV0dXJuIENv\nbW1vblV0aWwuYWRkQmxvY2tDU1MoXCIubm90ZS1saXN0XCIpO1xuICAgIH0sXG4gICAgXC8qKlxu\nICAgICAqIOWxj+iUveW6lemDqOW3peWFt+agj1xuICAgICAqXC9cbiAgICBzaGllbGRCb3R0b21U\nb29sYmFyKCkge1xuICAgICAgbG9nLmluZm8oXCLlsY\/olL3lupXpg6jlt6XlhbfmoI9cIik7XG4g\nICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcbiAgICAgICAgXCIucXVlc3Rpb24t\nYm90dG9tLWJhclwiLFxuICAgICAgICBcIiNhcHAgLmJnay1xdWVzdGlvbi1kZXRhaWwgLmZsb2F0\nLWJ0bVwiXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOaYvuekuuetlOahiOWG\nheWuuVxuICAgICAqXC9cbiAgICBzaG93QW5zd2VyQ29udGVudCgpIHtcbiAgICAgIHV0aWxzLndh\naXROb2RlKFwiZGl2LnF1ZXN0aW9uLXN3aXBlclwiKS50aGVuKGFzeW5jICgkcXVlc3Rpb25Td2lw\nZXIpID0+IHtcbiAgICAgICAgbG9nLmluZm8oXCLmmL7npLrnrZTmoYjlhoXlrrlcIik7XG4gICAg\nICAgIGF3YWl0IHV0aWxzLndhaXRWdWVCeUludGVydmFsKFxuICAgICAgICAgICRxdWVzdGlvblN3\naXBlcixcbiAgICAgICAgICBmdW5jdGlvbih2dWVPYmoyKSB7XG4gICAgICAgICAgICByZXR1cm4g\nXCIkd2F0Y2hcIiBpbiB2dWVPYmoyO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgMTAwLFxuICAg\nICAgICAgIDFlNFxuICAgICAgICApO1xuICAgICAgICBsZXQgdnVlT2JqID0gVnVlVXRpbHMuZ2V0\nVnVlKCRxdWVzdGlvblN3aXBlcik7XG4gICAgICAgIGlmICghdnVlT2JqKSB7XG4gICAgICAgICAg\nbG9nLmVycm9yKFwi6I635Y+WdnVl5bGe5oCn5aSx6LSlID0+IGRpdi5xdWVzdGlvbi1zd2lwZXJc\nIik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZ1ZU9iai4kd2F0Y2go\nXG4gICAgICAgICAgW1wiaXNTaG93QW5zd2VyXCIsIFwiaXNTaG93QW5zd2VyQ29udGVudFwiXSxc\nbiAgICAgICAgICBmdW5jdGlvbihuZXdWYWwsIG9sZFZhbCkge1xuICAgICAgICAgICAgbG9nLnN1\nY2Nlc3MoXCLmmL7npLrnrZTmoYhcIik7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0Fuc3dlciA9\nIHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0Fuc3dlckNvbnRlbnQgPSB0cnVlO1xuICAg\nICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVlcDogdHJ1ZSxcbiAgICAgICAg\nICAgIGltbWVkaWF0ZTogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgdnVl\nT2JqLiRwYXJlbnQuJHdhdGNoKFxuICAgICAgICAgIFwiaXNPbkFsdGVybmF0aXZlRGlhbG9nXCIs\nXG4gICAgICAgICAgZnVuY3Rpb24obmV3VmFsLCBvbGRWYWwpIHtcbiAgICAgICAgICAgIGxvZy5z\ndWNjZXNzKFwi56aB5q2i5pi+56S65by556qXXCIpO1xuICAgICAgICAgICAgdGhpcy5pc09uQWx0\nZXJuYXRpdmVEaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAg\nICAgICAgIGRlZXA6IHRydWUsXG4gICAgICAgICAgICBpbW1lZGlhdGU6IHRydWVcbiAgICAgICAg\nICB9XG4gICAgICAgICk7XG4gICAgICAgIHZ1ZU9iai4kcGFyZW50LiR3YXRjaChcbiAgICAgICAg\nICBcInVzZXJDaGFuZ2VRdWVzdGlvbkNvdW50XCIsXG4gICAgICAgICAgZnVuY3Rpb24oKSB7XG4g\nICAgICAgICAgICBsb2cuc3VjY2VzcyhcIua7keWKqOaUueWPmOmimOebrlwiKTtcbiAgICAgICAg\nICAgIHZ1ZU9iai5pc1Nob3dBbnN3ZXIgPSB0cnVlO1xuICAgICAgICAgICAgdnVlT2JqLmlzU2hv\nd0Fuc3dlckNvbnRlbnQgPSB0cnVlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAg\nICAgICAgZGVlcDogdHJ1ZSxcbiAgICAgICAgICAgIGltbWVkaWF0ZTogdHJ1ZVxuICAgICAgICAg\nIH1cbiAgICAgICAgKTtcbiAgICAgICAgdnVlT2JqLiRwYXJlbnQub3BlbkJna0FwcCA9IGZ1bmN0\naW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICBsb2cuc3VjY2VzcyhbXCJvcGVuQmdrQXBw77ya6Zi7\n5q2i6LCD55SoQXBwIFNjaGVtZVwiLCBhcmdzXSk7XG4gICAgICAgIH07XG4gICAgICAgIHZ1ZU9i\nai5vcGVuQXBwID0gZnVuY3Rpb24oLi4uYXJncykge1xuICAgICAgICAgIGxvZy5zdWNjZXNzKFtc\nIm9wZW5BcHDvvJrpmLvmraLosIPnlKhBcHAgU2NoZW1lXCIsIGFyZ3NdKTtcbiAgICAgICAgfTtc\nbiAgICAgICAgdnVlT2JqLiRwYXJlbnQuZ29Ub0FwcCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAg\nICAgICAgICBsb2cuc3VjY2VzcyhbXCJnb1RvQXBw77ya6Zi75q2i6LCD55SoQXBwIFNjaGVtZVwi\nLCBhcmdzXSk7XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDliqvmjIEt5LuK5pel5pCc6aKY5qyh5pWw5bey6L6+5LiK6ZmQXG4gICAgICpcL1xuICAgIGhp\namFja1VzZXJTZWFyY2hRdWVzdENvdW50KCkge1xuICAgICAgbG9nLmluZm8oXCLnp7vpmaQt44CQ\n5LuK5pel5pCc6aKY5qyh5pWw5bey6L6+5LiK6ZmQ44CR55qE5pys5qyh5a2Y5YKo55qE6K6w5b2V\nXCIpO1xuICAgICAgX3Vuc2FmZVdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInVzZXJf\nc2VhcmNoX3F1ZXN0X2NvdW50XCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWFgeiuuOS9\nv+eUqOmhtumDqOeahOi+k+WFpeahhlxuICAgICAqXC9cbiAgICBhbGxvd1VzZXJTZWFyY2hJbnB1\ndCgpIHtcbiAgICAgIHV0aWxzLndhaXROb2RlKFxuICAgICAgICBcIi5zZWFyY2gtaW5wdXQgLnNl\nYXJjaC1ib3gtd3JhcC5zZWFyY2gtYm94XCIsXG4gICAgICAgIDFlNFxuICAgICAgKS50aGVuKGFz\neW5jICgkc2VhcmNoQm94KSA9PiB7XG4gICAgICAgIGlmICghJHNlYXJjaEJveCkge1xuICAgICAg\nICAgIGxvZy5lcnJvcihcIuWFg+e0oC5zZWFyY2gtaW5wdXQgLnNlYXJjaC1ib3gtd3JhcC5zZWFy\nY2gtYm945pyq5Ye6546wXCIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAg\nICBsb2cuc3VjY2VzcyhcIuWFgeiuuOS9v+eUqOmhtumDqOeahOi+k+WFpeahhlwiKTtcbiAgICAg\nICAgYXdhaXQgdXRpbHMud2FpdFZ1ZUJ5SW50ZXJ2YWwoXG4gICAgICAgICAgJHNlYXJjaEJveCxc\nbiAgICAgICAgICBmdW5jdGlvbih2dWVPYmoyKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIkd2F0\nY2hcIiBpbiB2dWVPYmoyO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgMjUwLFxuICAgICAgICAg\nIDFlNFxuICAgICAgICApO1xuICAgICAgICBsZXQgdnVlT2JqID0gVnVlVXRpbHMuZ2V0VnVlKCRz\nZWFyY2hCb3gpO1xuICAgICAgICBpZiAodnVlT2JqID09IG51bGwpIHtcbiAgICAgICAgICBsb2cu\nZXJyb3IoXG4gICAgICAgICAgICBcIuiOt+WPlnZ1ZeWxnuaAp+Wksei0pSA9PiAuc2VhcmNoLWlu\ncHV0IC5zZWFyY2gtYm94LXdyYXAuc2VhcmNoLWJveFwiXG4gICAgICAgICAgKTtcbiAgICAgICAg\nICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdnVlT2JqLiR3YXRjaChcbiAgICAgICAgICBc\nImlzRmFrZVwiLFxuICAgICAgICAgIGZ1bmN0aW9uKG5ld1ZhbCwgb2xkVmFsKSB7XG4gICAgICAg\nICAgICBsb2cuc3VjY2VzcyhcIuWFgeiuuOS9v+eUqOmhtumDqOaQnOe0oui+k+WFpeahhlwiKTtc\nbiAgICAgICAgICAgIHRoaXMuaXNGYWtlID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAg\nICB7XG4gICAgICAgICAgICBkZWVwOiB0cnVlLFxuICAgICAgICAgICAgaW1tZWRpYXRlOiB0cnVl\nXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuICBjb25z\ndCBBaVN0dWR5U2hpZWxkQ1NTID0gXCJcIjtcbiAgY29uc3QgQmFpZHVBaVN0dWR5ID0ge1xuICAg\nIGluaXQoKSB7XG4gICAgICBhZGRTdHlsZShBaVN0dWR5U2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5p\nbmZvKFwi5o+S5YWlQ1NT6KeE5YiZXCIpO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShc\nImJhaWR1X2FpX3N0dWR5X3NoaWVsZEJvdHRvbVRvb2xCYXJcIiwgKCkgPT4ge1xuICAgICAgICBy\nZXR1cm4gdGhpcy5zaGllbGRCb3R0b21Ub29sQmFyKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQ\nYW5lbC5leGVjTWVudU9uY2UoXCJiYWlkdV9haV9zdHVkeV9hdXRvRXhwYW5kRnVsbFRleHRcIiwg\nKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvRXhwYW5kRnVsbFRleHQoKTtcbiAgICAg\nIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveW6lemDqOW3peWFt+agj1xuICAg\nICAqXC9cbiAgICBzaGllbGRCb3R0b21Ub29sQmFyKCkge1xuICAgICAgbG9nLmluZm8oXCLlsY\/o\nlL3lupXpg6jlt6XlhbfmoI9cIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NT\nUyhcIi5ndC1lZHUtaDUtYy1hcnRpY2xlLWJvdHRvbVwiKTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDoh6rliqjlsZXlvIDlhajmlodcbiAgICAgKlwvXG4gICAgYXV0b0V4cGFuZEZ1bGxUZXh0\nKCkge1xuICAgICAgbG9nLmluZm8oXCLoh6rliqjlsZXlvIDlhajmlodcIik7XG4gICAgICByZXR1\ncm4gW1xuICAgICAgICBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFxuICAgICAgICAgIFwiLmd0LWVk\ndS1oNS1jLWFydGljbGUtY29udGVudCAuY29udGVudC13cmFwcGVyIC5kZXRhaWwtd3JhcHBlciAu\ndW5mb2xkLXdyYXBwZXJcIlxuICAgICAgICApLFxuICAgICAgICBhZGRTdHlsZShcbiAgICAgICAg\nICBcLypjc3MqXC9cbiAgICAgICAgICBgXG5cdFx0XHQuZ3QtZWR1LWg1LWMtYXJ0aWNsZS1jb250\nZW50IC5jb250ZW50LXdyYXBwZXIgLmRldGFpbC13cmFwcGVye1xuXHRcdFx0XHRtYXgtaGVpZ2h0\nOiB1bnNldCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFx0YFxuICAgICAgICApXG4gICAgICBd\nO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgSVNpdGVTaGllbGRDU1MgPSBcIlwvKiDlupXpg6jmjqjo\njZDlub\/lkYrpobkgKlwvXFxyXFxuLmd0LWxvY2FsLWg1LWFkdmVydC1jYXJkLXJvb3QtY29udGFp\nbmVyIHtcXHJcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4g\nIGNvbnN0IEJhaWR1SVNpdGUgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxlKElTaXRl\nU2hpZWxkQ1NTKTtcbiAgICAgIGxvZy5pbmZvKFwi5o+S5YWlQ1NT6KeE5YiZXCIpO1xuICAgICAg\nUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJiYWlkdV9pc2l0ZV93anoydGRseV9z\naGllbGRCb3R0b21CYXJSb290Q29udGFpbmVyXCIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAg\nICByZXR1cm4gdGhpcy5zaGllbGRCb3R0b21CYXJSb290Q29udGFpbmVyKCk7XG4gICAgICAgIH1c\nbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAgICBcImJhaWR1\nX2lzaXRlX3dqejJ0ZGx5X3NoaWVsZFJpZ2h0U2VlTW9yZVRvb2xCYXJcIixcbiAgICAgICAgKCkg\nPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNoaWVsZFJpZ2h0U2VlTW9yZVRvb2xCYXIoKTtc\nbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJiYWlk\ndV9pc2l0ZV93anoydGRseV9zaGllbGRBcnRpY2xlQm90dG9tXCIsICgpID0+IHtcbiAgICAgICAg\ncmV0dXJuIHRoaXMuc2hpZWxkQXJ0aWNsZUJvdHRvbSgpO1xuICAgICAgfSk7XG4gICAgICBQb3Bz\nUGFuZWwuZXhlY01lbnVPbmNlKFwiYmFpZHVfaXNpdGVfd2p6MnRkbHlfYXV0b0V4cGFuZEZ1bGxU\nZXh0XCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b0V4cGFuZEZ1bGxUZXh0KCk7\nXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6jlhY3otLnl\nnKjnur\/lkqjor6JcbiAgICAgKlwvXG4gICAgc2hpZWxkQm90dG9tQmFyUm9vdENvbnRhaW5lcigp\nIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95bqV6YOo5YWN6LS55Zyo57q\/5ZKo6K+iXCIpO1xu\nICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgIFwiLmd0LWxvY2Fs\nLWg1LWFydGljbGUtYm90dG9tLWJhci1yb290LWNvbnRhaW5lclwiXG4gICAgICApO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveWPs+S+p+aCrOa1ruaMiemSri3mn6XnnIvmm7TlpJpc\nbiAgICAgKlwvXG4gICAgc2hpZWxkUmlnaHRTZWVNb3JlVG9vbEJhcigpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi5bGP6JS95Y+z5L6n5oKs5rWu5oyJ6ZKuLeafpeeci+abtOWkmlwiKTtcbiAgICAgIHJl\ndHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiLmljb24tYXJ0aWNsZS1saXN0Lmljb24tYXJ0\naWNsZS1saXN0LWV4cFwiKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6gt\n5aSn5a626L+Y5Zyo55yLXG4gICAgICpcL1xuICAgIHNoaWVsZEFydGljbGVCb3R0b20oKSB7XG4g\nICAgICBsb2cuaW5mbyhcIuWxj+iUveW6lemDqC3lpKflrrbov5jlnKjnnItcIik7XG4gICAgICBy\nZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcIi5hcnRpY2xlLWJvdHRvbVwiKTtcbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDoh6rliqjlsZXlvIDlhajmlodcbiAgICAgKlwvXG4gICAgYXV0\nb0V4cGFuZEZ1bGxUZXh0KCkge1xuICAgICAgbG9nLmluZm8oXCLoh6rliqjlsZXlvIDlhajmlodc\nIik7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFxuICAg\nICAgICAgIFwvKiDngrnlh7vmn6XnnIvlhajmlofmjInpkq4gKlwvXG4gICAgICAgICAgXCIuZm9s\nZC13cmFwcGVyXCJcbiAgICAgICAgKSxcbiAgICAgICAgYWRkU3R5bGUoXG4gICAgICAgICAgXC8q\nY3NzKlwvXG4gICAgICAgICAgYFxuXHRcdFx0Lmd0LWxvY2FsLWg1LWFydGljbGUtZGV0YWlsLWFy\ndGljbGUtZm9sZC1leHB7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IHVuc2V0ICFpbXBvcnRhbnQ7XG5c\ndFx0XHR9XG5cdFx0XHRgXG4gICAgICAgIClcbiAgICAgIF07XG4gICAgfVxuICB9O1xuICBjb25z\ndCBCYWlkdSA9IHtcbiAgICBpbml0KCkge1xuICAgICAgaWYgKEJhaWR1Um91dGVyLmlzU2VhcmNo\nKCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOeZvuW6puaQnOe0olwiKTtcbiAg\nICAgICAgQmFpZHVTZWFyY2guaW5pdCgpO1xuICAgICAgICBpZiAoQmFpZHVSb3V0ZXIuaXNTZWFy\nY2hIb21lKCkpIHtcbiAgICAgICAgICBsb2cuc3VjY2VzcyhcIlJvdXRlcjog55m+5bqm5pCc57Si\nLeS4u+mhtVwiKTtcbiAgICAgICAgICBCYWlkdVNlYXJjaEhvbWUuaW5pdCgpO1xuICAgICAgICB9\nXG4gICAgICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzQmFpSmlhSGFvKCkpIHtcbiAgICAgICAg\nbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOeZvuWutuWPt1wiKTtcbiAgICAgICAgQmFpZHVCYWlKaWFI\nYW8uaW5pdCgpO1xuICAgICAgfSBlbHNlIGlmIChCYWlkdVJvdXRlci5pc1RpZUJhKCkpIHtcbiAg\nICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOi0tOWQp1wiKTtcbiAgICAgICAgQmFpZHVUaWVC\nYS5pbml0KCk7XG4gICAgICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzV2VuS3UoKSkge1xuICAg\nICAgICBsb2cuc3VjY2VzcyhcIlJvdXRlcjog55m+5bqm5paH5bqTXCIpO1xuICAgICAgICBCYWlk\ndVdlbkt1LmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNKaW5nWWFuKCkp\nIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOeZvuW6pue7j+mqjFwiKTtcbiAgICAg\nICAgQmFpZHVKaW5nWWFuLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNC\nYWlLZSgpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVyOiDnmb7luqbnmb7np5FcIik7\nXG4gICAgICAgIEJhaWR1QmFpS2UuaW5pdCgpO1xuICAgICAgICBpZiAoQmFpZHVSb3V0ZXIuaXNC\nYWlLZVRhU2h1bygpKSB7XG4gICAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOeZvuW6pueZ\nvuenkS3ku5bor7RcIik7XG4gICAgICAgICAgQmFpZHVCYWlLZVRhU2h1by5pbml0KCk7XG4gICAg\nICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNaaGlEYW8oKSkge1xuICAgICAg\nICBsb2cuc3VjY2VzcyhcIlJvdXRlcjog55m+5bqm55+l6YGTXCIpO1xuICAgICAgICBCYWlkdVpo\naURhby5pbml0KCk7XG4gICAgICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzRmFuWWkoKSkge1xu\nICAgICAgICBsb2cuc3VjY2VzcyhcIlJvdXRlcjog55m+5bqm57+76K+RXCIpO1xuICAgICAgICBC\nYWlkdUZhbllpLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNGYW5ZaUFw\ncCgpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVyOiDnmb7luqbnv7vor5EtQXBwXCIp\nO1xuICAgICAgICBCYWlkdUZhbllpQXBwLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVS\nb3V0ZXIuaXNJbWFnZSgpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVyOiDnmb7luqbl\nm77niYdcIik7XG4gICAgICAgIEJhaWR1SW1hZ2UuaW5pdCgpO1xuICAgICAgfSBlbHNlIGlmIChC\nYWlkdVJvdXRlci5pc01hcCgpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVyOiDnmb7l\nuqblnLDlm75cIik7XG4gICAgICAgIEJhaWR1TWFwLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAo\nQmFpZHVSb3V0ZXIuaXNNYmQoKSkge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIlJvdXRlcjogbWJk\nXCIpO1xuICAgICAgICBCYWlkdU1iZC5pbml0KCk7XG4gICAgICB9IGVsc2UgaWYgKEJhaWR1Um91\ndGVyLmlzWHVlKCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOeZvuW6puWlveWt\nplwiKTtcbiAgICAgICAgQmFpZHVYdWUuaW5pdCgpO1xuICAgICAgfSBlbHNlIGlmIChCYWlkdVJv\ndXRlci5pc0FpUWlDaGEoKSkge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIlJvdXRlcjog55m+5bqm\n54ix5LyB5p+lXCIpO1xuICAgICAgICBCYWlkdUFpUWlDaGEuaW5pdCgpO1xuICAgICAgfSBlbHNl\nIGlmIChCYWlkdVJvdXRlci5pc1BvcygpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVy\nOiDnvZHnm59cIik7XG4gICAgICAgIEJhaWR1UG9zLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAo\nQmFpZHVSb3V0ZXIuaXNIYW9LYW4oKSkge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIlJvdXRlcjog\n5aW955yL6KeG6aKRXCIpO1xuICAgICAgICBCYWlkdUhhb0thbi5pbml0KCk7XG4gICAgICB9IGVs\nc2UgaWYgKEJhaWR1Um91dGVyLmlzR3JhcGgoKSkge1xuICAgICAgICBsb2cuc3VjY2VzcyhcIlJv\ndXRlcjog55m+5bqm6K+G5Zu+XCIpO1xuICAgICAgICBCYWlkdUdyYXBoLmluaXQoKTtcbiAgICAg\nIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNQYW4oKSkge1xuICAgICAgICBsb2cuc3VjY2Vzcyhc\nIlJvdXRlcjog55m+5bqm572R55uYXCIpO1xuICAgICAgICBCYWlkdVBhbi5pbml0KCk7XG4gICAg\nICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzWWlZYW4oKSkge1xuICAgICAgICBsb2cuc3VjY2Vz\ncyhcIlJvdXRlcjog5paH5b+D5LiA6KiAXCIpO1xuICAgICAgICBCYWlkdVlpWWFuLmluaXQoKTtc\nbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVSb3V0ZXIuaXNDaGF0KCkpIHtcbiAgICAgICAgbG9nLnN1\nY2Nlc3MoXCJSb3V0ZXI6IGNoYXRcIik7XG4gICAgICAgIEJhaWR1Q2hhdC5pbml0KCk7XG4gICAg\nICB9IGVsc2UgaWYgKEJhaWR1Um91dGVyLmlzTWluaUppYW9ZdSgpKSB7XG4gICAgICAgIGxvZy5z\ndWNjZXNzKFwiUm91dGVyOiDlsI\/nqIvluo8t55m+5bqm5pWZ6IKyXCIpO1xuICAgICAgICBCYWlk\ndU1pbmlKaWFvWXUuaW5pdCgpO1xuICAgICAgfSBlbHNlIGlmIChCYWlkdVJvdXRlci5pc0Vhc3lM\nZWFybigpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVyOiDnmb7luqbmlZnogrJcIik7\nXG4gICAgICAgIEJhaWR1RWFzeUxlYXJuLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQmFpZHVS\nb3V0ZXIuaXNBaVN0dWR5KCkpIHtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoXCJSb3V0ZXI6IOeZvuW6\npueIseWtplwiKTtcbiAgICAgICAgQmFpZHVBaVN0dWR5LmluaXQoKTtcbiAgICAgIH0gZWxzZSBp\nZiAoQmFpZHVSb3V0ZXIuaXNJU2l0ZSgpKSB7XG4gICAgICAgIGxvZy5zdWNjZXNzKFwiUm91dGVy\nOiDnmb7luqbln7rmnKjpsbxcIik7XG4gICAgICAgIEJhaWR1SVNpdGUuaW5pdCgpO1xuICAgICAg\nfSBlbHNlIHtcbiAgICAgICAgbG9nLmVycm9yKFwi6K+lUm91dGVy5pqC5pyq6YCC6YWN77yM6K+3\n6IGU57O75byA5Y+R6ICF77yaXCIgKyB3aW5kb3cubG9jYXRpb24uaHJlZik7XG4gICAgICB9XG4g\nICAgfVxuICB9O1xuICBpZiAodHlwZW9mIF91bnNhZmVXaW5kb3cuQmFpZHVPcHRpbWl6YXRpb25T\nY3JpcHRSdW5Db3VudCAhPT0gXCJudW1iZXJcIikge1xuICAgIF91bnNhZmVXaW5kb3cuQmFpZHVP\ncHRpbWl6YXRpb25TY3JpcHRSdW5Db3VudCA9IDA7XG4gICAgUG9wc1BhbmVsLmluaXQoKTtcbiAg\nICBCYWlkdS5pbml0KCk7XG4gIH0gZWxzZSB7XG4gICAgX3Vuc2FmZVdpbmRvdy5CYWlkdU9wdGlt\naXphdGlvblNjcmlwdFJ1bkNvdW50Kys7XG4gICAgbG9nLndhcm4oXG4gICAgICBcIumYu+atouiE\nmuacrOWuueWZqOWPjeWkjeaJp+ihjOacrOiEmuacrCBcIiArIF91bnNhZmVXaW5kb3cuQmFpZHVP\ncHRpbWl6YXRpb25TY3JpcHRSdW5Db3VudCArIFwiIOasoVwiXG4gICAgKTtcbiAgfVxuXG59KShW\ndWUsIFFtc2csIFV0aWxzLCBET01VdGlscywgcG9wcywgVmlld2VyLCBQaW5pYSwgRWxlbWVudFBs\ndXNJY29uc1Z1ZSwgVnVlRGVtaSwgVnVlUm91dGVyLCBFbGVtZW50UGx1cyk7In0KeyJzY3JpcHRJ\nZCI6ImM2OTA5ZDU5ODJiYzgxMTc3ZGU0NjJmZTljODVlY2YwIiwiZW5hYmxlZCI6dHJ1ZSwidXJs\nIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDA2MTM2XC9DU0RO\nJUU0JUJDJTk4JUU1JThDJTk2LnVzZXIuanMiLCJjb2RlVjIiOiJcL1wvID09VXNlclNjcmlwdD09\nXG5cL1wvIEBuYW1lICAgICAgICAgQ1NETuS8mOWMllxuXC9cLyBAbmFtZXNwYWNlICAgIGh0dHBz\nOlwvXC9naXRodWIuY29tXC9XaGl0ZVNldnNcL1RhbXBlck1vbmtleVNjcmlwdFxuXC9cLyBAdmVy\nc2lvbiAgICAgIDIwMjQuMTEuMTlcblwvXC8gQGF1dGhvciAgICAgICBXaGl0ZVNldnNcblwvXC8g\nQGRlc2NyaXB0aW9uICDmlK\/mjIFQQ+WSjOaJi+acuuerr+OAgeWxj+iUveW5v+WRiuOAgeS8mOWM\nlua1j+iniOS9k+mqjOOAgemHjeWumuWQkeaLpuaIqueahFVybOOAgeiHquWKqOWxleW8gOWFqOaW\nh+OAgeiHquWKqOWxleW8gOS7o+eggeWdl+OAgeWFqOaWh+WxheS4reOAgeWFgeiuuOWkjeWItuWG\nheWuueOAgeWOu+mZpOWkjeWItuWGheWuueeahOWwj+WwvuW3tOOAgeiHquWumuS5ieWxj+iUveWF\ng+e0oOetiVxuXC9cLyBAbGljZW5zZSAgICAgIEdQTC0zLjAtb25seVxuXC9cLyBAaWNvbiAgICAg\nICAgIGRhdGE6aW1hZ2VcL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUlBQUFB\nQ0FDQVlBQUFERFBtSExBQUFBQVhOU1IwSUFyczRjNlFBQUVzRkpSRUZVZUY3dG5RMlFITVYxeDM5\ndjdpUlpSNmxRa05nNXlTRFF6cDZsaE5nNGhnVGlRTVVFSEQ0RUZFNkNrN0pUSkJWVEdBd0pOZ21P\nQ1VwaHUwakFqaXNrZkNYQ2NWSlFNYWtFVndnR0JCaXJjQkFKQml3d0FtU0oyMTBKSWFTYmt5eEZ3\nZ2diM2MzTDl0eXV1TnVibVozWnI5dmRtNjdhMnR2Yjd0ZnZ2ZjV2VFwvZnIxKzhKUFZoZXM4bU9D\nU3RSVmdBckJGWW9EQUFENXQyQytaWFBaZkVQQ2h6MDRHM3pEdmlmRmJaZ1hzS1dmbVh6Y1M3Rlhs\nT1hkTHRBSXpaSHZDVjhCT1VDNE5mTWdBTnpXaVRYSVI4UThEOElEeDZoZkdcL1E1YTBXOWRVV3Ns\nMEpnR0tHRXozaDE0RXpMTGhBb2E4dDJxcnFSR0RjZ3dlQkp5emx2N09qdkRnVGZEVFNaOWNBNEZX\nYlVcL3FVYzBRNFYrR1VSb1J1VlZ1QloxUjVaRng0OUgwdXo3U3FuMmJTN1dnQWRNT2dodzFHdDRD\naEl3RlFzRGxmNERMRmY2NTNmUkY0VU9FdXgrV2hUaE9tb3dEUWF3TmZQZGlkQ0lTT0FFQ3ZEM3du\nQTJGR0FiQjFrT05WdVU3aHNrNmJHdHZCajhCZEl0eTBmSVJ0N2VndnFJOFpBOER3SUZkYUhsOUFP\nR2FtaE8rSWZwVWRuc1hOUXlQY01SUDh0QjBBaGFNNURZdnJnUE5tUXVBTzduTXRIamM1dTNtcW5U\neTJGUUI1bStzRmJteW5nTjNXbDhMcW5NdGZ0WXZ2dGdEQVdPNFFibFE0djEyQ2RYTVwvQWcraHJH\nNkhaYkhsQUNoa3VGd21CbjlSTnc5S3Uza1grTEVxcTUxUlwvckdWZmJjVUFQa01kNHR3U1NzRjZI\nWGFxdHlURytVUFdpVm55d0JRc1BsTzZkVHNvNjFpZkpiUmZkeHgrYzFXeU53U0FPUUhlVjZVWDJv\nRnc3T1ZwZ292NUViNFVMUGxiem9BOGpiYkJZNXROcU1wUFZCNFBlZXlySm02YUNvQUNyYnZIR0U4\nYjlMU09nMGNkRnlPYUJiNXBnR2dZUE5cL3dKSE5ZaXlsRTZtQlwvWTdMd21ib3FDa0FLTmhzQk43\nZkRJWlNHckUxOEpMajhvSFl0VU1xTmd5QWd1MmZjYTlxbEpHMGZWMGFlTmh4R3pPdU5RU0FnczFc\nL0FCZlh4WHJhcUZrYXVNOXgrWGk5eE9vR1FHcmtxVmZseldcL1hpTEdvTGdBWTh5N0NQelJmbEpS\naTNScFFycWpIYkp3WUFPV0RuWFdwYmJcL3VvV3BKUTNOMmdISm0wZ09rNUFDd2ZRZkg5RlN2SmNQ\nWUdGRnppcGgxa3puU0pnSkFlcDdmMkFDMW8zVlNmNExZQUNoNzhxeHZoeEJwSHcxcXdPUDB1SjVG\nOFFGZzgzRHF4dFhnd0xTditWckhqV2ViaVFVQTM0RlR1YjE5XC9LYzlOYW9CVDdncWpxTnBUUUFZ\nMTIzUFlcLzJzOTk1dGRFVGEzVjdaWVZtY1hzdmx2Q1lBaWpaclpxdmZmcnZIck5uOW1Yc0hXWmRQ\nUjlHTkJJQzVzY1BFOWVlMGRLOEdMb2k2a3hnSmdLTE50M3ZsZ21iM2psOWpuSnY3aUZtWEM4T29o\nQUlnXC9mVTNwdmdPYXgwNkM0UUNJUDMxZDlnUU5zQk8xQ3dRQ0lEMDE5K0F0anUzYWVBc0VBaUE5\nTmZmdWFOWUwyZGhzOEEwQVBoaFdlRDc5WGFVdHV0Y0RZekRxZFd4aTZZQllEakRGeTNoaHM0Vkkr\nV3NYZzE0eXBlR1J2bmk1UGJUQUZDMCtYNm5SdUdxVlwvQzAzWVFHVE9DcXJNdXBvUUJJcFwvXC9l\naDByMVkyREtESkJPXC83MFBnT3JId0JRQXBOTlwvN3dPZytqRndHQUQ1Slp3a0hqXC9vZlJXa0Vx\nckZ5YmxkYkNpdkN5WVVraFwvazg2SjhKVlZQNzJ0QWhUXC9QamZEVktRQW8yanltdE9ZT2V1K3J0\nTHNrRlBoTzF1WHN3d0RZdkpnRmNcL3I4eTUxV2Q0bVNjbHVuQnJ4RDR5eGN1WWMzXC9UVkFjWkRm\nVWVXK09vbWx6YnBRQXlKY25CM2hXejRBQ2piXC9CSHlxQytWSVdhNWZBOTl3WEM2dEFPQWw0QmZy\ncDVXMjdFSU52T3k0dkw4Q2dIZGFtR2FsQzNVeksxZys1TGpNRlRcL0JFaFJhSlhJcDd2OU9UOWtv\nVUZUOHBFdEZsTGV4V0NqS1FzUlwvUDByaGFJUU01aDJPRmpoYXFSMEt4WStuQnlcLzQ3OEplVmZh\nS3NsY3Q5bHJxMzVmN21XZXhWSlFscFpqOVMwVllvc3BTb2Z3WjVsYko3cXB5aHpXUk5PcWdXaHcw\nZjQ4cGI1dDNTMWlrNnNjM05uR1FqaEU0eGxPT2xlYkZQQjRSMktiNEFhUzNxYkpIaEgycTdGT0xm\nWmFTVmNpS2VRa3J0WUZnWFAzZ1NHR1E4MURcLzBrZXp5bjZFZTFWNVVwWG5oa2JyQTFmZTV0YlNv\nUDV4RUZPS0g1ZmdLZlY0YW1nM0x6VENlTUUyc1plbWxFZ255cWkraW9OY3JPckhTMGdTTThGRVNc\nL2NIdk45ajJcL0xkakNTUjUwZnZaVkhcL0dLZUpjSnFvdjdXTEg2bEZXQ1VGbTg4QmY1dWswNUM2\nWmgxeEwzM2M2K3hrZTZQMENobldJcHc3bVk3QTkwUzVlZmtvanpWSzM3VGZ1cFNWM2pnXC9ta3ly\nWHpqaHVCRTJOVUpcL3l5TGVPMmNPRjZseUU3Q2dCcTBQT0M1R2R3Mlg0YU00UnVad2h4RHVCRnJW\neVRVR0FDWVVhYVR2ZUJSbkNua0xiczI2M05hd0JKTUk1RzJHQlhLVmY0bHliWGFVcnpXMWp3d2ZF\nK0VcL3B3QmdIa2NkdDUxOXplaW5tTUZXOFFObUJzYnlLVjNrSEJ2b1k4blNuZXhwUm44Vkd2a01m\neVBDbjhXZ3VVYUtOazhvZkNSRzVXbFZ6TW5TZStaeTY3RTcyRnRQKzdBMnV4ZXo0RUFmQnlaOVwv\nMW5INWUrYjJZZWhWYkQ5c1BWXC9QWW51WHNkdGZrempDQjJcLzdqUTU3bDlGbGtLR0g1UnlHNTRV\ncFROXC9SaTNZZm5xelgwbXEzQ0R2a2pBYXd6bm1XZnRaaHNVeWdlVWVEQUlIRUE3Z3NkOHNidm84\nOW1rXC8rdzY5dzc2NVwvZnk4NmtUYU5SSHV5WTVFeDhyZHRKZ2xjXC9zNVd5WXloYzZYU21aUVlU\nNGVBeUxNOTVUdGxzVnJIaFFGWHZtSnNtbUJjS2ZxbEZqR3J6aHU4SGJZS0xURVMxYVZVU2lcL2hE\nMENlenlMK3l1SEswRTZlTlVtYThHek1qMWc5ck9PRzV3QzcwV2JJd2FFWDBZNVVwUWpFVDhFbjNt\nNUlyemhqTEEyYXN6eUdTNHJMWGpYMUJqWFp3MEFFdHNBNGc1K1lRa240XC9FSjhGOTJVcENWNjNc\nL0NjZm0zc0xiNURIOHF3bFhBOFhYU245eHNuZU55VmpVZFB6c3BcL0tUR3IrbDJyNCt2NW5ieWVs\nQzlRb1pcL1FmakR5ZDhKUEpCMXVTaW9mbG11MEVlZStmV1dBSEZMMXVYYllYekZtQVZlbHJ4TndX\nd3A0aXBQNE4rekxyOFhWZisxUVg1aERMNk04dHR4NlliVm16dUhSVkdQbUVZZVlRRjlmdE54K2Yz\ncVwvMit6V1Q0K3NZV05Mc29HRG5HbXM0XC85MVJXRFhPMFYxdVJjTGc4RWdNMXRwZG5GQUR1cXVH\nTmpuTFRpeDd3UlZLbVdkN2ZabHBzMXdNNFNJMHRxeVZiK2ZtUGZPT2NjdjRkZFlmWDl3VmRcL20z\nWkNUSnExcXAzbHVLeUxxbFN3K1R1VFJqWnNzVldyZzhyM0lud3RPOEsxMWZXMzJweml4ZldVVnU1\nMFJya3ljQmF3MlRwbHBsSys2SXp5cGNDNmczd3J6ZzhvYWpZdTJQd3I4TWt3K1FWMm1VZEFraEN2\ndHpndTEwUXB0QmJxNGc3R3BIclwvN0xqeHppbk1JNmRrZlwvZ05DODVRNVp3NityckdjYm1sdXQy\nd3pZVVdQQkNUM203SDlRMWEwMHExeTUwb244Nk9jbGZJRFBDXC9BcjlhcTg5SUFHUzRBK0V6RVRU\nMkd3QWtNUU5IR2tsYWRhTW83cHBqc3FCbWp6OCt4dm1Xc0NydUxrZUUzODJPK0xQWGxESnNjNmtG\nWDY4MUdKWHZMV0Y1MEwzOGFnQllGdWN1MzhXanNXYUxrTTZqZEpPM3VWSGcrZ2krRHlVQ2dPTWF6\nK0x3RXJUUWlhdTBXdldNb0hPRXU0OTNcL1drMFVSbGV6SWZFWXBVbFwvSmJDQjBNYmg4VFdLZHI4\naFJJXC9rVlBRQlF6VDV6U24yM0ZXT0h0NHRab2ZCVE11UDVYcFp1b2cxZ05uTFZPeFVIc0c4QUVR\nOXhGUWM0OWNxSDdHSlJxbVdKVVBsTGFSZHd0OGMza2QyYm0zTG1TaE44K1wvOVBMWm9ONzZJQnNF\nc0JpS25FSXViT0ZhRFlDc3l4eUJzV3BldGkxbXlYZ2ZPK05vUklTUFowZUNmVG55TmdcL1VzQXJ1\najcwSU5CYVwvbk10UUZGUFYxcnM0QWpSUTUyVmdIY3FUOFwvdDVNb2sxTFd5UDdDM2dQVU41Zmxi\nTlV3eEZ2dHRFMmVDTWNuS1FYRlVBR0hYYzRLMnhtYkdzdmdtbnpWckZVejQ4Tk1yVFFmVUtnMnhB\ndzdPTStJdkF1TnZBb0ZzbDFaM09ZRGlaZ3lxc3Q1UW5zVmlmM1VYTmNIWUJnYTRQbEJhQWdma09h\naWx5c2g0aUYyV0RyRWM1clZ4XC9vK055WXNqQXhUNmdtOWZQc2NlOHdZNUFPclp2c0RLbnE0SEYz\nd2JHTlFRWnRHUmRsa1loc2h4TDhMdkF2RnJJYmVYM1pyWVMrRnhVYUpUOElGZUpUam1cLzJPcTR3\nZmFRUWcxRlZtUXh4cG1zNjI5SHA1WHk5dmlWeWhjcVBKWWJDZDZwRkcwK3BmaGVXalZMMkxxc1wv\nTGlyZGFieGNpSlRzQ2VjTVRUaVc2QkNTeUhERmFWelwvVHRyY3Q3aUNyVjJEdmtNRjRsd1wveVEy\nbm5QY1lKTjR3SkZ4RVBlUFc4SmxZVkc1QW01ZGhXNXZpemJYYTR3TXE2cnN5STBHNTJjYUh1UUVT\nekdQeWFqeWJOTERvSnAyQU5OYkllTmJBSzlHT0wzRjR4dzJ0MjNvdDdnazZsaTNZUHY3XC9jT0xR\nUkVlelk1TVBYNDJ4R1A4a3N5YTRaYnNJbTZRVGY2V09yQVViSDh3RGh2SFNvdVwvMWFWRllHQ0sy\nRUtHMjVGZ1k5Sms0Z0pQWjEwK0hOVGhjSWF6TFFuZVlrNmVzUklmQjBldE9xc1pLZHBjNkFrcnk0\nYzA1cURHdk16NXVIRkhQcUR3SnNLYm9teFM0VVVQTmxuS0UyVTZ2a0dsc0pSbEhKbzRTQUtXSVN4\nRHkzK2J6eFBGK0I5c1I5aXVIalwvTWhSaFhKdk5YdEhtaGFrc1lhQVlPK0NXWk00R05DQnZ4ZU5I\nemVIWm9EODlIem9yQmlUVkN6emdLTWEyQUpVQ0ZKb3NvMlB4UnlXdnBHelYrZ0d2cWNnaEpBb0lr\nTTBBaHd5Y1IzM3hwU3VqSlhCS2FRWFh6R2I0aXd1ZXJmazNHcCtIcVJtbFh0d1wvTHFtTEJxV0Zi\nMmJ4TkxDdWdtWG5DTExQRkRIK3B3cGRyeUhOTjNTNWhyWERRS0E1eXJlcmhLMHVoQzZwR0JxbG84\nM1dGUzZ0cGVIRDlrRHZGTjZDUmJpZzdneGdubVVEM01FXC9JREkyd082aVRCUGFVNnh5WG13TkJi\nck9tNUk5NVdhUVF4aVdzRWFmUVpydG9GVzF1MDNkUHdCcktoVk10dUxcLzNOd29KY1pMdzROSWh0\nK2FVV1JNVU81Y3k4Rk9QSzB2T25PWWtMelRKWTlqcXZmQnpIS2x6R1kxbEJWUSs0NHdHWjI2Sms4\nekxkd28xRWlVOER3aFNncmxWOVBRaFpkM0tVVCtGWEYybFlQdFJTZjFrRkdZVjMyZnhTcCt5NFRn\nM3hsRnNRSThHM0llVXM2SUdcL25BejRYeG5wSDduMk9KU1Z1Z1laNVFYYjdYdVdJVGFISHc2NDJ5\nT284Q29SM0hBR3FlYTVJUmJlQmtBaVoxQ3doZzBXeE1Sbml0bERmZmR3QzN6UHM2NEN2TlE1aUhN\nczRTNWVNd2JOMzhyY3oxaG5paTVhb2VKU1gwY0FyYWdiQkZoczNuM2hEY0VCanhod0x3Ykx5RHhH\nUEFtXC9qNFI4VzMrVGh4RituV1VSeEQyQ2V6MWhIMFdqSTZYUFg4c2t3MVZtQ1wvalpmckNnSnAr\nakN1NCtsNjRabkc3T0haZjhLSW53ZVpvUTJQU1FqaVNwTm1XaDFVUTVUNko1bW5LeFpDR0hFTVRD\nSjVXN1J3TnJIRmNMcCtZQVFaWmhmb0pJTk15V3pSUWZ1VDVBREErYndkaHYwTGZiSkZcL05zc3BN\nRDRBUnc2NnZQVnVpQmliKzRWZ0I4WFpyS3hlbEwxa0FQdXZuTXZIakd5VEFmQW5Rdk45NzN0Umdk\nMHVrOExWT1pkYnB3REFKSVJVNFlmZExsektmMjBOaVBMQlNvTEpORXhjYlgzMVZJM1FNSEZHeWpS\nUVpFK05kYUF3a1lFaTAxQ3h2UStBeUZDeFJ2dzBXbWp2Z3FCbXNHamZLSlRoaHRMZVlFcEk4ZDVW\neVN5VExPQW1VcG93WWhaaElGYkNpUEpqSUUwWDEyUEFpSjB5eG44TXBBa2plMno0ZlhIaUo0MUta\nNEhlR3ZcL0VhZVBTV2FDM0FCRDI2NTlpQ2c0U3VRVlh2WHRPczUwdVVOMnBZOU5ab05PSE5qWlwv\nOVNlUExxOEYwdlR4c1hYZFdSVWJUaDl2eE5rNnlQR2V4M3FhRndxMXM3VFVxOXdvT3l5TDA4T3Vx\nbFhFamd6NFVLazBQTWlWbG5KN3IrcXFGK1h5aEt1R1JyaWpsbXl4QUZCZUQ1aDR3dWZWSXBoKzN4\nRWFXT3U0cklyRFNYd0FITTFwNXU1OUhLSnBuUm5XUUVpb215Q3VZZ1BBTk03YlhDOHhyaTNQc1Bp\nenV2dFNcL09IVnVaQmJ4dzBEb0x3cmVGREx0M2RtdGFZN1VIaUJoN0l1RnlSaExkRU00QU1nNDkr\nNldhZlQ0OTRtNlRldDIyUU5tSVFaS0dkV2ZQM2lrazhNQUg5Qm1PRnlKUGhTWXR5TzAzcE4xb0J5\naFRQcWhcLzVQVk9vQ2dMOGV5SEIzNmY3ZkpZbDZTeXUzUkFPcTNKTWJqWTZvSHRaeDNRRHdad0xi\nVDRidzBaWklsUktOcTRISEhiZitqSzhOQWNDZkNRWjVYaHBJWEJSWHlyVGVkQTJvOEVKdUpEd09Z\nQnlkTlF3QUh3UTIyMlVpaTFaYTJxUUJoZGR6VGNnMjBoUUFsQjhIYjJIdTBhZWxIUm80NkxpMVUr\nckZZYVJwQUNpRElHN2M0VGk4cFhXQ05iRGZjVm5ZTE9VMEZRQmxFSmdRTWZGejF6VkxrdGxCNXlY\nSERjNUFWcVwvNFRRZEFHUVFtMkVTc3c0aDZHWitGN1I1MjNJbjRTYzBzTFFGQUdRUW04VUtTREpy\nTmxLdlhhRFUxWXRwazViUU1BUDd1SURVV05RekVSb3c4Y1RwdktRRDhtU0RENVNMY21KNGR4Qm1P\nZCt2NHliQ1YxZldZZDVQMDFISUFHR2JLQjBnR0JFMVwvaGlVUnRsdnFtbE05bE5WSkQzYnFrYTh0\nQUtnd2x2b1QxQjZpcE9mNXRTbEcxMmdyQVB4SHdvUm5rY25abTdxWFRSMmJ0YVhnbVRjNXUzbXEw\nVUZOMHI3dEFLZ3c1enVhZW54aDFuc2JLenM4aTV2ak9IQW1HZGk0ZFdjTUFJWkI0M0t1eW5WYUs2\ncDFYR202cko3eDJ4ZmhwbHF1MjYwVWEwWUJVQkhNM0VZMkFaMlZaTzVNclZSTUsybWI2MW9LZDBY\nbE5HcGxcLzIyekF5UVZvdGVCMEVrRFh4bWJqcGdCcW9IU2EwRG94SUh2YUFCVW1ETlJ5MFE1dDA4\nNFIrR1VwRFBLVE5ZM0FabkdsVWRWZU9SOWRXUTViUmZ2SFRrREJBbmZEV0RvbGtIdjJEVkFYTlRu\nbDNDU2NZRzJsRE1WempJNUZ1SzJiWEk5VCtDN25yRE91TXJuZHNWTDk5cGtIaG9pMXpVelFKaVVt\neGV6WUc0XC9aNnY2V1RqTlk4Sms3NWpUa0ZiQ0cwOWtMb0ZuVEo3QmQ4WjRiT1VlM214UlgyMGgy\nXC9VQUNOS1Nud2hMV0luNllGZ2hzTUtrZURFdWErYmRndm1WeitYMkJ3VU9ldkMyZVFmOHp6b3gy\nRnNRdHZRcm0rdk5YZFNXa2F5emtcLzhId2t3bDJUbWhxeFFBQUFBQVNVVk9SSzVDWUlJPVxuXC9c\nLyBAc3VwcG9ydFVSTCAgIGh0dHBzOlwvXC9naXRodWIuY29tXC9XaGl0ZVNldnNcL1RhbXBlck1v\nbmtleVNjcmlwdFwvaXNzdWVzXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi5jc2RuLm5ldFwv\nKlxuXC9cLyBAcmVxdWlyZSAgICAgIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3Nj\ncmlwdHNcLzQ5NDE2N1wvMTQxMzI1NVwvQ292ZXJVTUQuanNcblwvXC8gQHJlcXVpcmUgICAgICBo\ndHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5ldFwvbnBtXC9Ad2hpdGVzZXZcL3V0aWxzQDIuNS4z\nXC9kaXN0XC9pbmRleC51bWQuanNcblwvXC8gQHJlcXVpcmUgICAgICBodHRwczpcL1wvZmFzdGx5\nLmpzZGVsaXZyLm5ldFwvbnBtXC9Ad2hpdGVzZXZcL2RvbXV0aWxzQDEuNC4yXC9kaXN0XC9pbmRl\neC51bWQuanNcblwvXC8gQHJlcXVpcmUgICAgICBodHRwczpcL1wvZmFzdGx5LmpzZGVsaXZyLm5l\ndFwvbnBtXC9Ad2hpdGVzZXZcL3BvcHNAMS45LjBcL2Rpc3RcL2luZGV4LnVtZC5qc1xuXC9cLyBA\ncmVxdWlyZSAgICAgIGh0dHBzOlwvXC9mYXN0bHkuanNkZWxpdnIubmV0XC9ucG1cL3Ftc2dAMS4y\nLjdcL2Rpc3RcL2luZGV4LnVtZC5qc1xuXC9cLyBAY29ubmVjdCAgICAgIGJsb2cuY3Nkbi5uZXRc\nblwvXC8gQGNvbm5lY3QgICAgICBtcC1hY3Rpb24uY3Nkbi5uZXRcblwvXC8gQGdyYW50ICAgICAg\nICBHTV9kZWxldGVWYWx1ZVxuXC9cLyBAZ3JhbnQgICAgICAgIEdNX2dldFJlc291cmNlVGV4dFxu\nXC9cLyBAZ3JhbnQgICAgICAgIEdNX2dldFZhbHVlXG5cL1wvIEBncmFudCAgICAgICAgR01faW5m\nb1xuXC9cLyBAZ3JhbnQgICAgICAgIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmRcblwvXC8gQGdyYW50\nICAgICAgICBHTV9zZXRWYWx1ZVxuXC9cLyBAZ3JhbnQgICAgICAgIEdNX3VucmVnaXN0ZXJNZW51\nQ29tbWFuZFxuXC9cLyBAZ3JhbnQgICAgICAgIEdNX3htbGh0dHBSZXF1ZXN0XG5cL1wvIEBncmFu\ndCAgICAgICAgdW5zYWZlV2luZG93XG5cL1wvIEBydW4tYXQgICAgICAgZG9jdW1lbnQtc3RhcnRc\nblwvXC8gQGRvd25sb2FkVVJMIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3Njcmlw\ndHNcLzQwNjEzNlwvQ1NETiVFNCVCQyU5OCVFNSU4QyU5Ni51c2VyLmpzXG5cL1wvIEB1cGRhdGVV\nUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDA2MTM2XC9DU0RO\nJUU0JUJDJTk4JUU1JThDJTk2Lm1ldGEuanNcblwvXC8gPT1cL1VzZXJTY3JpcHQ9PVxuXG4oZnVu\nY3Rpb24gKFFtc2csIERPTVV0aWxzLCBVdGlscywgcG9wcykge1xuICAndXNlIHN0cmljdCc7XG5c\nbiAgdmFyIF9hO1xuICB2YXIgX0dNX2RlbGV0ZVZhbHVlID0gXC8qIEBfX1BVUkVfXyAqXC8gKCgp\nID0+IHR5cGVvZiBHTV9kZWxldGVWYWx1ZSAhPSBcInVuZGVmaW5lZFwiID8gR01fZGVsZXRlVmFs\ndWUgOiB2b2lkIDApKCk7XG4gIHZhciBfR01fZ2V0UmVzb3VyY2VUZXh0ID0gXC8qIEBfX1BVUkVf\nXyAqXC8gKCgpID0+IHR5cGVvZiBHTV9nZXRSZXNvdXJjZVRleHQgIT0gXCJ1bmRlZmluZWRcIiA\/\nIEdNX2dldFJlc291cmNlVGV4dCA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV9nZXRWYWx1ZSA9IFwv\nKiBAX19QVVJFX18gKlwvICgoKSA9PiB0eXBlb2YgR01fZ2V0VmFsdWUgIT0gXCJ1bmRlZmluZWRc\nIiA\/IEdNX2dldFZhbHVlIDogdm9pZCAwKSgpO1xuICB2YXIgX0dNX2luZm8gPSBcLyogQF9fUFVS\nRV9fICpcLyAoKCkgPT4gdHlwZW9mIEdNX2luZm8gIT0gXCJ1bmRlZmluZWRcIiA\/IEdNX2luZm8g\nOiB2b2lkIDApKCk7XG4gIHZhciBfR01fcmVnaXN0ZXJNZW51Q29tbWFuZCA9IFwvKiBAX19QVVJF\nX18gKlwvICgoKSA9PiB0eXBlb2YgR01fcmVnaXN0ZXJNZW51Q29tbWFuZCAhPSBcInVuZGVmaW5l\nZFwiID8gR01fcmVnaXN0ZXJNZW51Q29tbWFuZCA6IHZvaWQgMCkoKTtcbiAgdmFyIF9HTV9zZXRW\nYWx1ZSA9IFwvKiBAX19QVVJFX18gKlwvICgoKSA9PiB0eXBlb2YgR01fc2V0VmFsdWUgIT0gXCJ1\nbmRlZmluZWRcIiA\/IEdNX3NldFZhbHVlIDogdm9pZCAwKSgpO1xuICB2YXIgX0dNX3VucmVnaXN0\nZXJNZW51Q29tbWFuZCA9IFwvKiBAX19QVVJFX18gKlwvICgoKSA9PiB0eXBlb2YgR01fdW5yZWdp\nc3Rlck1lbnVDb21tYW5kICE9IFwidW5kZWZpbmVkXCIgPyBHTV91bnJlZ2lzdGVyTWVudUNvbW1h\nbmQgOiB2b2lkIDApKCk7XG4gIHZhciBfR01feG1saHR0cFJlcXVlc3QgPSBcLyogQF9fUFVSRV9f\nICpcLyAoKCkgPT4gdHlwZW9mIEdNX3htbGh0dHBSZXF1ZXN0ICE9IFwidW5kZWZpbmVkXCIgPyBH\nTV94bWxodHRwUmVxdWVzdCA6IHZvaWQgMCkoKTtcbiAgdmFyIF91bnNhZmVXaW5kb3cgPSBcLyog\nQF9fUFVSRV9fICpcLyAoKCkgPT4gdHlwZW9mIHVuc2FmZVdpbmRvdyAhPSBcInVuZGVmaW5lZFwi\nID8gdW5zYWZlV2luZG93IDogdm9pZCAwKSgpO1xuICB2YXIgX21vbmtleVdpbmRvdyA9IFwvKiBA\nX19QVVJFX18gKlwvICgoKSA9PiB3aW5kb3cpKCk7XG4gIGNvbnN0IENvbW1vblV0aWwgPSB7XG4g\nICAgXC8qKlxuICAgICAqIOenu+mZpOWFg+e0oO+8iOacquWHuueOsOS5n+WPr+S7peetieW+heWH\nuueOsO+8iVxuICAgICAqIEBwYXJhbSBzZWxlY3RvciDlhYPntKDpgInmi6nlmahcbiAgICAgKlwv\nXG4gICAgd2FpdFJlbW92ZSguLi5hcmdzKSB7XG4gICAgICBhcmdzLmZvckVhY2goKHNlbGVjdG9y\nKSA9PiB7XG4gICAgICAgIHV0aWxzLndhaXROb2RlTGlzdChzZWxlY3RvcikudGhlbigobm9kZUxp\nc3QpID0+IHtcbiAgICAgICAgICBub2RlTGlzdC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLnJlbW92\nZSgpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDm\nt7vliqDlsY\/olL1DU1NcbiAgICAgKiBAcGFyYW0gYXJnc1xuICAgICAqIEBleGFtcGxlXG4gICAg\nICogYWRkQmxvY2tDU1MoXCJcIilcbiAgICAgKiBhZGRCbG9ja0NTUyhcIlwiLFwiXCIpXG4gICAg\nICogYWRkQmxvY2tDU1MoW1wiXCIsXCJcIl0pXG4gICAgICpcL1xuICAgIGFkZEJsb2NrQ1NTKC4u\nLmFyZ3MpIHtcbiAgICAgIGxldCBzZWxlY3Rvckxpc3QgPSBbXTtcbiAgICAgIGlmIChhcmdzLmxl\nbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoYXJncy5s\nZW5ndGggPT09IDEgJiYgdHlwZW9mIGFyZ3NbMF0gPT09IFwic3RyaW5nXCIgJiYgYXJnc1swXS50\ncmltKCkgPT09IFwiXCIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXJncy5m\nb3JFYWNoKChzZWxlY3RvcikgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3Rv\ncikpIHtcbiAgICAgICAgICBzZWxlY3Rvckxpc3QgPSBzZWxlY3Rvckxpc3QuY29uY2F0KHNlbGVj\ndG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWxlY3Rvckxpc3QucHVzaChzZWxl\nY3Rvcik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKGAke3Nl\nbGVjdG9yTGlzdC5qb2luKFwiLFxcblwiKX17ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O31gKTtc\nbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorr7nva5HTV9nZXRSZXNvdXJjZVRleHTnmoRzdHls\nZeWGheWuuVxuICAgICAqIEBwYXJhbSByZXNvdXJjZU1hcERhdGEg6LWE5rqQ5pWw5o2uXG4gICAg\nICogQGV4YW1wbGVcbiAgICAgKiBzZXRHTVJlc291cmNlQ1NTKHtcbiAgICAgKiAgIGtleU5hbWU6\nIFwiVmlld2VyQ1NTXCIsXG4gICAgICogICB1cmw6IFwiaHR0cHM6XC9cL2V4YW1wbGUuY29tXC9l\neGFtcGxlLmNzc1wiLFxuICAgICAqIH0pXG4gICAgICpcL1xuICAgIHNldEdNUmVzb3VyY2VDU1Mo\ncmVzb3VyY2VNYXBEYXRhKSB7XG4gICAgICBsZXQgY3NzVGV4dCA9IHR5cGVvZiBfR01fZ2V0UmVz\nb3VyY2VUZXh0ID09PSBcImZ1bmN0aW9uXCIgPyBfR01fZ2V0UmVzb3VyY2VUZXh0KHJlc291cmNl\nTWFwRGF0YS5rZXlOYW1lKSA6IFwiXCI7XG4gICAgICBpZiAodHlwZW9mIGNzc1RleHQgPT09IFwi\nc3RyaW5nXCIgJiYgY3NzVGV4dCkge1xuICAgICAgICBhZGRTdHlsZShjc3NUZXh0KTtcbiAgICAg\nIH0gZWxzZSB7XG4gICAgICAgIENvbW1vblV0aWwubG9hZFN0eWxlTGluayhyZXNvdXJjZU1hcERh\ndGEudXJsKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmt7vliqA8bGluaz7m\noIfnrb5cbiAgICAgKiBAcGFyYW0gdXJsXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBsb2FkU3R5\nbGVMaW5rKFwiaHR0cHM6XC9cL2V4YW1wbGUuY29tXC9leGFtcGxlLmNzc1wiKVxuICAgICAqXC9c\nbiAgICBhc3luYyBsb2FkU3R5bGVMaW5rKHVybCkge1xuICAgICAgbGV0ICRsaW5rID0gZG9jdW1l\nbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG4gICAgICAkbGluay5yZWwgPSBcInN0eWxlc2hl\nZXRcIjtcbiAgICAgICRsaW5rLnR5cGUgPSBcInRleHRcL2Nzc1wiO1xuICAgICAgJGxpbmsuaHJl\nZiA9IHVybDtcbiAgICAgIGRvbXV0aWxzLnJlYWR5KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQu\naGVhZC5hcHBlbmRDaGlsZCgkbGluayk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAg\nICAgKiDmt7vliqA8c2NyaXB0Puagh+etvlxuICAgICAqIEBwYXJhbSB1cmxcbiAgICAgKiBAZXhh\nbXBsZVxuICAgICAqIGxvYWRTdHlsZUxpbmsoXCJodHRwczpcL1wvZXhhbXBsZS5jb21cL2V4YW1w\nbGUuanNcIilcbiAgICAgKlwvXG4gICAgYXN5bmMgbG9hZFNjcmlwdCh1cmwpIHtcbiAgICAgIGxl\ndCAkc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICRz\nY3JpcHQuc3JjID0gdXJsO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7\nXG4gICAgICAgICRzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVs\nbCk7XG4gICAgICAgIH07XG4gICAgICAgIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmRvY3Vt\nZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQoJHNjcmlwdCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsIZ1cmzkv67lpI3vvIzkvovlpoLlj6rmnIlzZWFyY2jnmoTpk77mjqXk\nv67lpI3kuLrlrozmlbTnmoTpk77mjqVcbiAgICAgKlxuICAgICAqIOazqOaEj++8muS4jeWMheaL\nrGh0dHDovaxodHRwc1xuICAgICAqIEBwYXJhbSB1cmwg6ZyA6KaB5L+u5aSN55qE6ZO+5o6lXG4g\nICAgICogQGV4YW1wbGVcbiAgICAgKiDkv67lpI3liY3vvJpgXC94eHhcL3h4eD9zcz1zc3NzYFxu\nICAgICAqIOS\/ruWkjeWQju+8mmBodHRwczpcL1wveHh4Lnh4eC54eHhcL3h4eFwveHh4P3NzPXNz\nc3NgXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiDkv67lpI3liY3vvJpgXC9cL3h4eFwveHh4P3Nz\nPXNzc3NgXG4gICAgICog5L+u5aSN5ZCO77yaYGh0dHBzOlwvXC94eHgueHh4Lnh4eFwveHh4XC94\neHg\/c3M9c3Nzc2BcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIOS\/ruWkjeWJje+8mmBodHRwczpc\nL1wveHh4Lnh4eC54eHhcL3h4eFwveHh4P3NzPXNzc3NgXG4gICAgICog5L+u5aSN5ZCO77yaYGh0\ndHBzOlwvXC94eHgueHh4Lnh4eFwveHh4XC94eHg\/c3M9c3Nzc2BcbiAgICAgKiBAZXhhbXBsZVxu\nICAgICAqIOS\/ruWkjeWJje+8mmB4eHhcL3h4eD9zcz1zc3NzYFxuICAgICAqIOS\/ruWkjeWQju+8\nmmBodHRwczpcL1wveHh4Lnh4eC54eHhcL3h4eFwveHh4P3NzPXNzc3NgXG4gICAgICpcL1xuICAg\nIGZpeFVybCh1cmwpIHtcbiAgICAgIHVybCA9IHVybC50cmltKCk7XG4gICAgICBpZiAodXJsLm1h\ndGNoKFwvXmh0dHAoc3wpOlxcXC9cXFwvXC9pKSkge1xuICAgICAgICByZXR1cm4gdXJsO1xuICAg\nICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF1cmwuc3RhcnRzV2l0aChcIlwvXCIpKSB7XG4gICAg\nICAgICAgdXJsICs9IFwiXC9cIjtcbiAgICAgICAgfVxuICAgICAgICB1cmwgPSB3aW5kb3cubG9j\nYXRpb24ub3JpZ2luICsgdXJsO1xuICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgfVxuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIGh0dHDovaxodHRwc1xuICAgICAqIEBwYXJhbSB1cmwg6ZyA6KaB\n5L+u5aSN55qE6ZO+5o6lXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiDkv67lpI3liY3vvJpcbiAg\nICAgKiDkv67lpI3lkI7vvJpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIOS\/ruWkjeWJje+8mlxu\nICAgICAqIOS\/ruWkjeWQju+8mlxuICAgICAqXC9cbiAgICBmaXhIdHRwcyh1cmwpIHtcbiAgICAg\nIGlmICh1cmwuc3RhcnRzV2l0aChcImh0dHBzOlwvXC9cIikpIHtcbiAgICAgICAgcmV0dXJuIHVy\nbDtcbiAgICAgIH1cbiAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoXCJodHRwOlwvXC9cIikpIHtc\nbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgIH1cbiAgICAgIGxldCB1cmxPYmogPSBuZXcgVVJM\nKHVybCk7XG4gICAgICB1cmxPYmoucHJvdG9jb2wgPSBcImh0dHBzOlwiO1xuICAgICAgcmV0dXJu\nIHVybE9iai50b1N0cmluZygpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgX1NDUklQVF9OQU1FXyA9\nIFwiQ1NETuS8mOWMllwiO1xuICBjb25zdCB1dGlscyA9IFV0aWxzLm5vQ29uZmxpY3QoKTtcbiAg\nY29uc3QgZG9tdXRpbHMgPSBET01VdGlscy5ub0NvbmZsaWN0KCk7XG4gIGNvbnN0IF9fcG9wcyA9\nIHBvcHM7XG4gIGNvbnN0IGxvZyA9IG5ldyB1dGlscy5Mb2coXG4gICAgX0dNX2luZm8sXG4gICAg\nX3Vuc2FmZVdpbmRvdy5jb25zb2xlIHx8IF9tb25rZXlXaW5kb3cuY29uc29sZVxuICApO1xuICBj\nb25zdCBTQ1JJUFRfTkFNRSA9ICgoX2EgPSBfR01faW5mbyA9PSBudWxsID8gdm9pZCAwIDogX0dN\nX2luZm8uc2NyaXB0KSA9PSBudWxsID8gdm9pZCAwIDogX2EubmFtZSkgfHwgX1NDUklQVF9OQU1F\nXztcbiAgY29uc3QgREVCVUcgPSBmYWxzZTtcbiAgbG9nLmNvbmZpZyh7XG4gICAgZGVidWc6IERF\nQlVHLFxuICAgIGxvZ01heENvdW50OiAxZTMsXG4gICAgYXV0b0NsZWFyQ29uc29sZTogdHJ1ZSxc\nbiAgICB0YWc6IHRydWVcbiAgfSk7XG4gIFFtc2cuY29uZmlnKFxuICAgIE9iamVjdC5kZWZpbmVQ\ncm9wZXJ0aWVzKFxuICAgICAge1xuICAgICAgICBodG1sOiB0cnVlLFxuICAgICAgICBhdXRvQ2xv\nc2U6IHRydWUsXG4gICAgICAgIHNob3dDbG9zZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICB7XG4g\nICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgZ2V0KCkge1xuICAgICAgICAgICAgcmV0dXJu\nIFBvcHNQYW5lbC5nZXRWYWx1ZShcInFtc2ctY29uZmlnLXBvc2l0aW9uXCIsIFwiYm90dG9tXCIp\nO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWF4TnVtczoge1xuICAgICAgICAg\nIGdldCgpIHtcbiAgICAgICAgICAgIHJldHVybiBQb3BzUGFuZWwuZ2V0VmFsdWUoXCJxbXNnLWNv\nbmZpZy1tYXhudW1zXCIsIDUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgc2hv\nd1JldmVyc2U6IHtcbiAgICAgICAgICBnZXQoKSB7XG4gICAgICAgICAgICByZXR1cm4gUG9wc1Bh\nbmVsLmdldFZhbHVlKFwicW1zZy1jb25maWctc2hvd3JldmVyc2VcIiwgdHJ1ZSk7XG4gICAgICAg\nICAgfVxuICAgICAgICB9LFxuICAgICAgICB6SW5kZXg6IHtcbiAgICAgICAgICBnZXQoKSB7XG4g\nICAgICAgICAgICBsZXQgbWF4WkluZGV4ID0gVXRpbHMuZ2V0TWF4WkluZGV4KCk7XG4gICAgICAg\nICAgICBsZXQgcG9wc01heFpJbmRleCA9IHBvcHMuY29uZmlnLkluc3RhbmNlVXRpbHMuZ2V0UG9w\nc01heFpJbmRleCgpLnpJbmRleDtcbiAgICAgICAgICAgIHJldHVybiBVdGlscy5nZXRNYXhWYWx1\nZShtYXhaSW5kZXgsIHBvcHNNYXhaSW5kZXgpICsgMTAwO1xuICAgICAgICAgIH1cbiAgICAgICAg\nfVxuICAgICAgfVxuICAgIClcbiAgKTtcbiAgY29uc3QgR01fTWVudSA9IG5ldyB1dGlscy5HTV9N\nZW51KHtcbiAgICBHTV9nZXRWYWx1ZTogX0dNX2dldFZhbHVlLFxuICAgIEdNX3NldFZhbHVlOiBf\nR01fc2V0VmFsdWUsXG4gICAgR01fcmVnaXN0ZXJNZW51Q29tbWFuZDogX0dNX3JlZ2lzdGVyTWVu\ndUNvbW1hbmQsXG4gICAgR01fdW5yZWdpc3Rlck1lbnVDb21tYW5kOiBfR01fdW5yZWdpc3Rlck1l\nbnVDb21tYW5kXG4gIH0pO1xuICBjb25zdCBodHRweCA9IG5ldyB1dGlscy5IdHRweChfR01feG1s\naHR0cFJlcXVlc3QpO1xuICBodHRweC5pbnRlcmNlcHRvcnMucmVzcG9uc2UudXNlKHZvaWQgMCwg\nKGRhdGEpID0+IHtcbiAgICBsb2cuZXJyb3IoXCLmi6bmiKrlmagt6K+35rGC6ZSZ6K+vXCIsIGRh\ndGEpO1xuICAgIGlmIChkYXRhLnR5cGUgPT09IFwib25hYm9ydFwiKSB7XG4gICAgICBRbXNnLndh\ncm5pbmcoXCLor7fmsYLlj5bmtohcIik7XG4gICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09IFwi\nb25lcnJvclwiKSB7XG4gICAgICBRbXNnLmVycm9yKFwi6K+35rGC5byC5bi4XCIpO1xuICAgIH0g\nZWxzZSBpZiAoZGF0YS50eXBlID09PSBcIm9udGltZW91dFwiKSB7XG4gICAgICBRbXNnLmVycm9y\nKFwi6K+35rGC6LaF5pe2XCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBRbXNnLmVycm9yKFwi5YW2\n5a6D6ZSZ6K+vXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfSk7XG4gIGh0dHB4LmNv\nbmZpZyh7XG4gICAgbG9nRGV0YWlsczogREVCVUdcbiAgfSk7XG4gICh7XG4gICAgT2JqZWN0OiB7\nXG4gICAgICBkZWZpbmVQcm9wZXJ0eTogX3Vuc2FmZVdpbmRvdy5PYmplY3QuZGVmaW5lUHJvcGVy\ndHlcbiAgICB9LFxuICAgIEZ1bmN0aW9uOiB7XG4gICAgICBhcHBseTogX3Vuc2FmZVdpbmRvdy5G\ndW5jdGlvbi5wcm90b3R5cGUuYXBwbHksXG4gICAgICBjYWxsOiBfdW5zYWZlV2luZG93LkZ1bmN0\naW9uLnByb3RvdHlwZS5jYWxsXG4gICAgfSxcbiAgICBFbGVtZW50OiB7XG4gICAgICBhcHBlbmRD\naGlsZDogX3Vuc2FmZVdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGlsZFxuICAgIH0s\nXG4gICAgc2V0VGltZW91dDogX3Vuc2FmZVdpbmRvdy5zZXRUaW1lb3V0XG4gIH0pO1xuICBjb25z\ndCBhZGRTdHlsZSA9IHV0aWxzLmFkZFN0eWxlLmJpbmQodXRpbHMpO1xuICBjb25zdCAkID0gZG9j\ndW1lbnQucXVlcnlTZWxlY3Rvci5iaW5kKGRvY3VtZW50KTtcbiAgZG9jdW1lbnQucXVlcnlTZWxl\nY3RvckFsbC5iaW5kKGRvY3VtZW50KTtcbiAgY29uc3QgS0VZID0gXCJHTV9QYW5lbFwiO1xuICBj\nb25zdCBBVFRSSUJVVEVfSU5JVCA9IFwiZGF0YS1pbml0XCI7XG4gIGNvbnN0IEFUVFJJQlVURV9L\nRVkgPSBcImRhdGEta2V5XCI7XG4gIGNvbnN0IEFUVFJJQlVURV9ERUZBVUxUX1ZBTFVFID0gXCJk\nYXRhLWRlZmF1bHQtdmFsdWVcIjtcbiAgY29uc3QgQVRUUklCVVRFX0lOSVRfTU9SRV9WQUxVRSA9\nIFwiZGF0YS1pbml0LW1vcmUtdmFsdWVcIjtcbiAgY29uc3QgUFJPUFNfU1RPUkFHRV9BUEkgPSBc\nImRhdGEtc3RvcmFnZS1hcGlcIjtcbiAgY29uc3QgQ1NETlJvdXRlciA9IHtcbiAgICBcLyoqXG4g\nICAgICog5Yik5pat5piv5ZCm5piv5Y2O5Li65LqR6IGU55ufXG4gICAgICogKyBodWF3ZWljbG91\nZC5jc2RuLm5ldFxuICAgICAqXC9cbiAgICBpc0h1YVdlaUNsb3VkQmxvZygpIHtcbiAgICAgIHJl\ndHVybiBCb29sZWFuKFwvaHVhd2VpY2xvdWQuY3Nkbi5uZXRcL2kudGVzdCh3aW5kb3cubG9jYXRp\nb24ub3JpZ2luKSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yik5pat5piv5ZCm5piv5Y2a\n5a6iXG4gICAgICogKyBibG9nLmNzZG4ubmV0XG4gICAgICpcL1xuICAgIGlzQmxvZygpIHtcbiAg\nICAgIHJldHVybiBCb29sZWFuKFwvYmxvZy5jc2RuLm5ldFwvaS50ZXN0KHdpbmRvdy5sb2NhdGlv\nbi5vcmlnaW4pKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliKTmlq3mmK\/lkKbmmK\/mlofl\nupNcbiAgICAgKiArIHdlbmt1LmNzZG4ubmV0XG4gICAgICpcL1xuICAgIGlzV2VuS3UoKSB7XG4g\nICAgICByZXR1cm4gQm9vbGVhbihcL3dlbmt1LmNzZG4ubmV0XC9pLnRlc3Qod2luZG93LmxvY2F0\naW9uLm9yaWdpbikpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWIpOaWreaYr+WQpuaYr+mT\nvuaOpVxuICAgICAqICsgbGluay5jc2RuLm5ldFxuICAgICAqXC9cbiAgICBpc0xpbmsoKSB7XG4g\nICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSBcImxpbmsuY3Nkbi5uZXRc\nIjtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliKTmlq3mmK\/lkKbmmK\/mkJzntKJcbiAgICAg\nKiArIHNvLmNzZG4ubmV0XG4gICAgICpcL1xuICAgIGlzU28oKSB7XG4gICAgICByZXR1cm4gd2lu\nZG93LmxvY2F0aW9uLmhvc3RuYW1lID09PSBcInNvLmNzZG4ubmV0XCI7XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5Yik5pat5piv5ZCm5pivQ+efpemBk1xuICAgICAqICsgc28uY3Nkbi5uZXRc\nL2tub3dcbiAgICAgKiArIFwvY2hhdFxuICAgICAqICsgXC9zb1wvYWlcbiAgICAgKlwvXG4gICAg\naXNTb0NLbm93KCkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNTbygpICYmICh3aW5kb3cubG9jYXRp\nb24ucGF0aG5hbWUuc3RhcnRzV2l0aChcIlwvY2hhdFwiKSB8fCB3aW5kb3cubG9jYXRpb24ucGF0\naG5hbWUuc3RhcnRzV2l0aChcIlwvc29cL2FpXCIpKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAg\nKiDliKTmlq3mmK\/lkKbmmK\/otYTmupDpobXpnaJcbiAgICAgKiArIGRvd25sb2FkLmNzZG4ubmV0\nXG4gICAgICpcL1xuICAgIGlzRG93bmxvYWQoKSB7XG4gICAgICByZXR1cm4gd2luZG93LmxvY2F0\naW9uLmhvc3RuYW1lID09PSBcImRvd25sb2FkLmNzZG4ubmV0XCI7XG4gICAgfVxuICB9O1xuICBj\nb25zdCBVSVNsaWRlciA9IGZ1bmN0aW9uKHRleHQsIGtleSwgZGVmYXVsdFZhbHVlLCBtaW4sIG1h\neCwgY2hhbmdlQ2FsbEJhY2ssIGdldFRvb2xUaXBDb250ZW50LCBkZXNjcmlwdGlvbiwgc3RlcCkg\ne1xuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICB0ZXh0LFxuICAgICAgdHlwZTogXCJzbGlkZXJc\nIixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgYXR0cmlidXRlczoge30sXG4gICAgICBwcm9w\nczoge30sXG4gICAgICBnZXRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHNbUFJP\nUFNfU1RPUkFHRV9BUEldLmdldChrZXksIGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9LFxuICAgICAg\nZ2V0VG9vbFRpcENvbnRlbnQodmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBnZXRUb29sVGlw\nQ29udGVudCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgcmV0dXJuIGdldFRvb2xUaXBD\nb250ZW50KHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYCR7dmFs\ndWV9YDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrKGV2ZW50LCB2YWx1ZSkg\ne1xuICAgICAgICBpZiAodHlwZW9mIGNoYW5nZUNhbGxCYWNrID09PSBcImZ1bmN0aW9uXCIpIHtc\nbiAgICAgICAgICBpZiAoY2hhbmdlQ2FsbEJhY2soZXZlbnQsIHZhbHVlKSkge1xuICAgICAgICAg\nICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3BzW1BS\nT1BTX1NUT1JBR0VfQVBJXS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICB9LFxuICAgICAgbWluLFxu\nICAgICAgbWF4LFxuICAgICAgc3RlcFxuICAgIH07XG4gICAgUmVmbGVjdC5zZXQocmVzdWx0LmF0\ndHJpYnV0ZXMsIEFUVFJJQlVURV9LRVksIGtleSk7XG4gICAgUmVmbGVjdC5zZXQocmVzdWx0LmF0\ndHJpYnV0ZXMsIEFUVFJJQlVURV9ERUZBVUxUX1ZBTFVFLCBkZWZhdWx0VmFsdWUpO1xuICAgIFJl\nZmxlY3Quc2V0KHJlc3VsdC5wcm9wcywgUFJPUFNfU1RPUkFHRV9BUEksIHtcbiAgICAgIGdldChr\nZXkyLCBkZWZhdWx0VmFsdWUyKSB7XG4gICAgICAgIHJldHVybiBQb3BzUGFuZWwuZ2V0VmFsdWUo\na2V5MiwgZGVmYXVsdFZhbHVlMik7XG4gICAgICB9LFxuICAgICAgc2V0KGtleTIsIHZhbHVlKSB7\nXG4gICAgICAgIFBvcHNQYW5lbC5zZXRWYWx1ZShrZXkyLCB2YWx1ZSk7XG4gICAgICB9XG4gICAg\nfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbiAgY29uc3QgVUlTd2l0Y2ggPSBmdW5jdGlv\nbih0ZXh0LCBrZXksIGRlZmF1bHRWYWx1ZSwgY2xpY2tDYWxsQmFjaywgZGVzY3JpcHRpb24sIGFm\ndGVyQWRkVG9VTGlzdENhbGxCYWNrKSB7XG4gICAgbGV0IHJlc3VsdCA9IHtcbiAgICAgIHRleHQs\nXG4gICAgICB0eXBlOiBcInN3aXRjaFwiLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBhdHRy\naWJ1dGVzOiB7fSxcbiAgICAgIHByb3BzOiB7fSxcbiAgICAgIGdldFZhbHVlKCkge1xuICAgICAg\nICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgICB0aGlzLnByb3BzW1BST1BTX1NUT1JBR0VfQVBJ\nXS5nZXQoa2V5LCBkZWZhdWx0VmFsdWUpXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgY2Fs\nbGJhY2soZXZlbnQsIF9fdmFsdWUpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gQm9vbGVhbihfX3Zh\nbHVlKTtcbiAgICAgICAgbG9nLnN1Y2Nlc3MoYCR7dmFsdWUgPyBcIuW8gOWQr1wiIDogXCLlhbPp\nl61cIn0gJHt0ZXh0fWApO1xuICAgICAgICBpZiAodHlwZW9mIGNsaWNrQ2FsbEJhY2sgPT09IFwi\nZnVuY3Rpb25cIikge1xuICAgICAgICAgIGlmIChjbGlja0NhbGxCYWNrKGV2ZW50LCB2YWx1ZSkp\nIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAg\ndGhpcy5wcm9wc1tQUk9QU19TVE9SQUdFX0FQSV0uc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfSxc\nbiAgICAgIGFmdGVyQWRkVG9VTGlzdENhbGxCYWNrXG4gICAgfTtcbiAgICBSZWZsZWN0LnNldChy\nZXN1bHQuYXR0cmlidXRlcywgQVRUUklCVVRFX0tFWSwga2V5KTtcbiAgICBSZWZsZWN0LnNldChy\nZXN1bHQuYXR0cmlidXRlcywgQVRUUklCVVRFX0RFRkFVTFRfVkFMVUUsIGRlZmF1bHRWYWx1ZSk7\nXG4gICAgUmVmbGVjdC5zZXQocmVzdWx0LnByb3BzLCBQUk9QU19TVE9SQUdFX0FQSSwge1xuICAg\nICAgZ2V0KGtleTIsIGRlZmF1bHRWYWx1ZTIpIHtcbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC5n\nZXRWYWx1ZShrZXkyLCBkZWZhdWx0VmFsdWUyKTtcbiAgICAgIH0sXG4gICAgICBzZXQoa2V5Miwg\ndmFsdWUpIHtcbiAgICAgICAgUG9wc1BhbmVsLnNldFZhbHVlKGtleTIsIHZhbHVlKTtcbiAgICAg\nIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuICBjb25zdCBTZXR0aW5nVUlC\nbG9nID0ge1xuICAgIGlkOiBcInBhbmVsLWJsb2dcIixcbiAgICB0aXRsZTogXCLljZrlrqJcIixc\nbiAgICBpc0RlZmF1bHQoKSB7XG4gICAgICByZXR1cm4gQ1NETlJvdXRlci5pc0Jsb2coKTtcbiAg\nICB9LFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAg\nIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICB7XG4gICAgICAg\nICAgICB0ZXh0OiBcIuWFqOWxgOWxj+iUvVwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVu\ndVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAg\nICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAg\nICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAg\nICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHnmbvlvZXlvLnnqpdcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJjc2RuLWJsb2ctc2hpZWxkTG9naW5EaWFsb2dcIixcbiAgICAgICAgICAgICAgICAg\nICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNo\nKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW3puS+p+WNmuWuouS\/oeaBr1wi\nLFxuICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxvZy1zaGllbGRMZWZ0QmxvZ0NvbnRhaW5l\nckFzaWRlXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAp\nLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi44CQ\n5bGP6JS944CR5Y+z5L6n55uu5b2V5L+h5oGvXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY3Nk\nbi1ibG9nLXNoaWVsZFJpZ2h0RGlyZWN0b3J5SW5mb3JtYXRpb25cIixcbiAgICAgICAgICAgICAg\nICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3\naXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHpobbpg6jlt6XlhbfmoI9c\nIixcbiAgICAgICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctc2hpZWxkVG9wVG9vbGJhclwiLFxu\nICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAg\nICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6\nlemDqOeahOaCrOa1ruW3peWFt+agj1wiLFxuICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxv\nZy1zaGllbGRCb3R0b21GbG9hdGluZ1Rvb2xiYXJcIixcbiAgICAgICAgICAgICAgICAgICAgZmFs\nc2VcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAg\nIHRleHQ6IFwi5Y+z5L6n5oKs5rWu5bel5YW35qCPXCIsXG4gICAgICAgICAgICB0eXBlOiBcImRl\nZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAg\nICAgICAgICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1z\nXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNo\nKFxuICAgICAgICAgICAgICAgICAgICBcIuWQr+eUqFwiLFxuICAgICAgICAgICAgICAgICAgICBc\nImNzZG4tYmxvZy1yaWdodFRvb2xiYXJFbmFibGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1\nZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuWI\nm+S9nOS4reW\/g++8jOmakOiXj1wv5pi+56S65L6n5qCP77yM5paw5omL5byV5a+877yM5a6i5pyN\n44CB5Li+5oqlLi4uXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDmt7vliqDmjInpkq7jgJHliY3lvoDo\nr4TorrpcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctYWRkR290b1JlY29tbWFu\nZEJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAg\nICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5Zyo5oKs5rWu5bel5YW35qCP5pyA5ZCO\n6Z2i5re75YqgXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVNs\naWRlcihcbiAgICAgICAgICAgICAgICAgICAgXCJyaWdodOWBj+enu1wiLFxuICAgICAgICAgICAg\nICAgICAgICBcImNzZG4tYmxvZy1yaWdodFRvb2xiYXJSaWdodE9mZnNldFwiLFxuICAgICAgICAg\nICAgICAgICAgICA5MCxcbiAgICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAg\nICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLFxuICAgICAgICAgICAgICAg\nICAgICAoZXZlbnQsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGNzZG5T\naWRlVG9vbGJhciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAg\nICAgICBcIi5jc2RuLXNpZGUtdG9vbGJhclwiXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAg\nICAgICAgICAgICAgICAgICAgICBkb211dGlscy5jc3MoY3NkblNpZGVUb29sYmFyLCB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICByaWdodDogdmFsdWUgKyBcInB4XCJcbiAgICAgICAgICAgICAg\nICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAg\nKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGDlvZPliY3vvJoke3Zh\nbHVlfXB477yM6buY6K6k77yaOTBweGA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVNsaWRlcihcbiAgICAgICAgICAgICAg\nICAgICAgXCJ0b3DlgY\/np7tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctcmln\naHRUb29sYmFyVG9wT2Zmc2V0XCIsXG4gICAgICAgICAgICAgICAgICAgIDE0MCxcbiAgICAgICAg\nICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVt\nZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50LCB2YWx1ZSkgPT4g\ne1xuICAgICAgICAgICAgICAgICAgICAgIGxldCBjc2RuU2lkZVRvb2xiYXIgPSBkb2N1bWVudC5x\ndWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCIuY3Nkbi1zaWRlLXRvb2xi\nYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgZG9t\ndXRpbHMuY3NzKGNzZG5TaWRlVG9vbGJhciwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9w\nOiB2YWx1ZSArIFwicHhcIlxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAg\nICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAodmFsdWUpID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgICByZXR1cm4gYOW9k+WJje+8miR7dmFsdWV9cHjvvIzpu5jorqTvvJo5MHB4YDtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAg\nICAgIF1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAg\nIHRleHQ6IFwi5bGP6JS9XCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAg\nICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAg\nICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHliJvkvZzkuK3lv4NcIixcbiAgICAgICAgICAg\nICAgICAgICAgXCJjc2RuLWJsb2ctcmlnaHRUb29sYmFyQ3JlYXRpdmVDZW50ZXJcIixcbiAgICAg\nICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAg\nICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHmmL7npLpc\nL+makOiXj+S+p+agj1wiLFxuICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxvZy1yaWdodFRv\nb2xiYXJTaG93T3JTaWRlYmFyXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAg\nICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAg\nICAgICAgIFwi44CQ5bGP6JS944CR5paw5omL5byV5a+8XCIsXG4gICAgICAgICAgICAgICAgICAg\nIFwiY3Nkbi1ibG9nLXJpZ2h0VG9vbGJhckJlZ2lubmVyR3VpZGFuY2VcIixcbiAgICAgICAgICAg\nICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHlrqLmnI1cIixcbiAg\nICAgICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctcmlnaHRUb29sYmFyQ3VzdG9tZXJTZXJ2aWNl\nXCIsXG4gICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICApLFxuICAg\nICAgICAgICAgICAgICAgVUlTd2l0Y2goXCLjgJDlsY\/olL3jgJHkuL7miqVcIiwgXCJjc2RuLWJs\nb2ctcmlnaHRUb29sYmFyUmVwb3J0XCIsIGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dp\ndGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuOAkOWxj+iUveOAkei\/lOWbnumhtumDqFwiLFxu\nICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxvZy1yaWdodFRvb2xiYXJCYWNrVG9Ub3BcIixc\nbiAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAg\nICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9LFxu\nICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IFwi5YaF5a65XCIsXG4gICAgICAgICAgICB0\neXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7\nXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAgICAgICB0eXBl\nOiBcImZvcm1zXCIsXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAg\nIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIueCueWHu+S7o+eggeWdl+iHquWKqOWx\nleW8gFwiLFxuICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxvZy1jbGlja1ByZUNvZGVBdXRv\nbWF0aWNhbGx5XCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAg\nICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlvZPpvKDmoIfngrnlh7vku6PnoIHl\nnZfljLrln5\/ml7bvvIzlsIboh6rliqjlsZXlvIDlhoXlrrlcIlxuICAgICAgICAgICAgICAgICAg\nKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuiH\nquWKqOWxleW8gOS7o+eggeWdl1wiLFxuICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxvZy1h\ndXRvRXhwYW5kQ29kZUNvbnRlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAg\nICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuaHkuS6uuaTjeS9\nnO+8jOWFjeaJi+WKqOeCueWHu+WxleW8gFwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAg\nICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi6Ieq5Yqo5bGV5byA\n5YaF5a65XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY3Nkbi1ibG9nLWF1dG9FeHBhbmRDb250\nZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZv\naWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLmh5Lkurrmk43kvZzvvIzlhY3miYvliqjngrnl\nh7vlsZXlvIBcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dp\ndGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuWFqOaWh+WxheS4rVwiLFxuICAgICAgICAgICAg\nICAgICAgICBcImNzZG4tYmxvZy1hcnRpY2xlQ2VudGVyXCIsXG4gICAgICAgICAgICAgICAgICAg\nIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGV2ZW50LCBlbmFibGUpIHtcbiAg\nICAgICAgICAgICAgICAgICAgICBpZiAoZW5hYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICBhbGVydChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCLkuLrkuobmm7Tlpb3nmoTlkYjn\njrDmlYjmnpzvvIzor7flvIDlkK\/lip\/og73vvJrjgJDlsY\/olL3jgJHlt6bkvqfljZrlrqLkv6Hm\nga\/jgIHjgJDlsY\/olL3jgJHlj7Pkvqfnm67lvZXkv6Hmga9cIlxuICAgICAgICAgICAgICAgICAg\nICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0s\nXG4gICAgICAgICAgICAgICAgICAgIFwi6Ieq5Yqo5bGP6JS95bem5L6n5ZKM5Y+z5L6n55qE5L+h\n5oGv77yM5LiU5bCG5paH56ug5bGF5LitXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAg\nICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLlhYHorrjpgInmi6nl\nhoXlrrlcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctYWxsb3dTZWxlY3RDb250\nZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZv\naWQgMFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAg\nICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwi5bGP6JS9XCIs\nXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1z\nOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLj\ngJDlsY\/olL3jgJHlupXpg6h4eOaKgOiDveagkVwiLFxuICAgICAgICAgICAgICAgICAgICBcImNz\nZG4tYmxvZy1zaGllbGRCb3R0b21Ta2lsbFRyZWVcIixcbiAgICAgICAgICAgICAgICAgICAgZmFs\nc2VcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAg\nICAgICAgICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHpgInkuK3mloflrZfmgqzmta7moI9cIixc\nbiAgICAgICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctc2hpZWxkQXJ0aWNsZVNlYXJjaFRpcFwi\nLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAw\nLFxuICAgICAgICAgICAgICAgICAgICBcIumAieS4reaWh+Wtl+W8ueWHuueahO+8jOS+i+Wmgu+8\nmuaQnOe0ouOAgeivhOiuuuOAgeeslOiusFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAg\nICAgICAgICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxc\nbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiBcIuivhOiuuuWMulwiLFxuICAgICAgICAg\nICAgdHlwZTogXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAg\nICAge1xuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTog\nXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLlkK\/nlKhcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJjc2RuLWJsb2ctYmxvY2tDb21tZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIHRy\ndWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLl\nhbPpl63mmK\/lsY\/olL3or4TorrrljLpcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAg\nICAgICAgICAgIFVJU3dpdGNoKFwi5LyY5YyW6K+E6K665Yy655qE5L2N572uXCIsIFwiY3Nkbi1i\nbG9nLXJlc3RvcmVDb21tZW50c1wiLCB0cnVlKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAg\nICAgICAgdGV4dDogXCLlupXpg6jmlofnq6BcIixcbiAgICAgICAgICAgIHR5cGU6IFwiZGVlcE1l\nbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAg\nICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAg\nICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAg\nICAgICAgICAgICAgIFwi5ZCv55SoXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY3Nkbi1ibG9n\nLWJvdHRvbVJlY29tbWVuZEFydGljbGVFbmFibGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1\nZSxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuWF\ns+mXreaYr+Wxj+iUveW6lemDqOaWh+eroFwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAg\nICAgICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICAgICAgICAgIFwi5qCH6K+GQ1NETuS4\ni+i9vVwiLFxuICAgICAgICAgICAgICAgICAgICBcImNzZG4tYmxvZy1pZGVudGl0eUNTRE5Eb3du\nbG9hZFwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB2\nb2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5L2\/55So57qi5qGG5qCH6K+GXCJcbiAgICAg\nICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAg\nICAgICAgICAgXCLnp7vpmaTotYTmupDkuIvovb3nmoTmlofnq6BcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJjc2RuLWJsb2ctcmVtb3ZlUmVzb3VyY2VEb3dubG9hZEFydGljbGVcIixcbiAgICAg\nICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAg\nICAgICAgICAgICAgICAgXCJkb3dubG9hZC5jc2RuLm5ldDxicj53d3cuaXRleWUuY29tPGJyPmVk\ndS5jc2RuLm5ldFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxuICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4g\nICAgICAgICAgICB0ZXh0OiBcIuWKq+aMgVwv5oum5oiqXCIsXG4gICAgICAgICAgICB0eXBlOiBc\nImRlZXBNZW51XCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4gICAg\nICAgICAgICAgICAgdGV4dDogXCJcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcImZvcm1zXCIs\nXG4gICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgICAgICAgICBcIuaLpuaIqi3lpI3liLbnmoTlsI\/lsL7lt7RcIixcbiAgICAg\nICAgICAgICAgICAgICAgXCJjc2RuLWJsb2ctcmVtb3ZlQ2xpcGJvYXJkSGlqYWNraW5nXCIsXG4g\nICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAg\nICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLliqvmjIEt56aB5q2i5aSN\n5Yi2XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY3Nkbi1ibG9nLXVuQmxvY2tDb3B5XCIsXG4g\nICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAg\nICAgICAgICAgICAgICAgICAgXCLlhYHorrjngrnlh7vlpI3liLbmjInpkq7ov5vooYzlpI3liLZc\nIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1c\nbiAgfTtcbiAgY29uc3QgU2V0dGluZ1VJTGluayA9IHtcbiAgICBpZDogXCJwYW5lbC1saW5rXCIs\nXG4gICAgdGl0bGU6IFwi6ZO+5o6lXCIsXG4gICAgaXNEZWZhdWx0KCkge1xuICAgICAgcmV0dXJu\nIENTRE5Sb3V0ZXIuaXNMaW5rKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAg\nICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAg\nIGZvcm1zOiBbXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICBcIumHjeWumuWQkemT\nvuaOpVwiLFxuICAgICAgICAgICAgXCJjc2RuLWxpbmstanVtcFJlZGlyZWN0XCIsXG4gICAgICAg\nICAgICB0cnVlLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgXCLoh6rliqjot7Po\nvazoh7Pooqvmi6bmiKrnmoRVcmzpk77mjqVcIlxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAg\nICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgU2V0dGluZ1VJSHVhV2VpQ2xvdWQgPSB7XG4gICAg\naWQ6IFwicGFuZWwtaHVhLXdlaS1jbG91ZFwiLFxuICAgIHRpdGxlOiBcIuWNjuS4uuS6keW8gOWP\nkeiAheiBlOebn1wiLFxuICAgIGlzRGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiBDU0ROUm91dGVy\nLmlzSHVhV2VpQ2xvdWRCbG9nKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAg\nICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAg\nIGZvcm1zOiBbXG4gICAgICAgICAgVUlTd2l0Y2goXCLoh6rliqjlsZXlvIDlhajmlodcIiwgXCJj\nc2RuLWh1YS13ZWktY2xvdWQtYXV0b0V4cGFuZENvbnRlbnRcIiwgdHJ1ZSlcbiAgICAgICAgXVxu\nICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCLlsY\/olL1cIixcbiAgICAgICAgdHlw\nZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3JtczogW1xuICAgICAgICAgIFVJU3dpdGNoKFxuICAg\nICAgICAgICAgXCLjgJDlsY\/olL3jgJHkupHlvIDlj5HogIXku7vliqHmjJHmiJjmtLvliqhcIixc\nbiAgICAgICAgICAgIFwiY3Nkbi1odWEtd2VpLWNsb3VkLXNoaWVsZENsb3VkRGV2ZWxvcGVyVGFz\na0NoYWxsZW5nZUV2ZW50XCIsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKSxcbiAgICAg\nICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5bem5L6n5oKs5rWu5oyJ\n6ZKuXCIsXG4gICAgICAgICAgICBcImNzZG4taHVhLXdlaS1jbG91ZC1zaGllbGRMZWZ0RmxvYXRp\nbmdCdXR0b25cIixcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgZnVuY3Rpb24oZXZl\nbnQsIGVuYWJsZSkge1xuICAgICAgICAgICAgICBpZiAoZW5hYmxlKSB7XG4gICAgICAgICAgICAg\nICAgYWxlcnQoXG4gICAgICAgICAgICAgICAgICBcIuW8gOWQr+WQjuWwhuWxj+iUveOAkOW9k+WJ\njemYheivu+mHj+OAkeOAgeOAkOeCuei1nuaMiemSruOAkeOAgeOAkOivhOiuuuaMiemSruOAkeOA\ngeOAkOWIhuS6q+aMiemSruOAkVwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAg\nICAgICAgICBcIuOAkOWxj+iUveOAkeWPs+S+p+agj1wiLFxuICAgICAgICAgICAgXCJjc2RuLWh1\nYS13ZWktY2xvdWQtYmxvY2tSaWdodENvbHVtblwiLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAg\nICAgICAgICBmdW5jdGlvbihldmVudCwgZW5hYmxlKSB7XG4gICAgICAgICAgICAgIGlmIChlbmFi\nbGUpIHtcbiAgICAgICAgICAgICAgICBhbGVydChcbiAgICAgICAgICAgICAgICAgIFwi5byA5ZCv\n5ZCO5bCG5bGP6JS944CQ55u45YWz5Lqn5ZOB44CRLeOAkOa0u+WKqOaXpeWOhuOAkS3jgJDov5Do\nkKXmtLvliqjjgJEt44CQ54Ot6Zeo5qCH562+44CRXCJcbiAgICAgICAgICAgICAgICApO1xuICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKSxcbiAgICAgICAgICBVSVN3\naXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5bqV6YOo5o6o6I2Q5YaF5a65XCIsXG4g\nICAgICAgICAgICBcImNzZG4taHVhLXdlaS1jbG91ZC1ibG9ja1JlY29tbWVuZGVkQ29udGVudEF0\nVGhlQm90dG9tXCIsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICksXG4gICAgICAgICAg\nVUlTd2l0Y2goXG4gICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW6lemDqOabtOWkmuaOqOiNkFwi\nLFxuICAgICAgICAgICAgXCJjc2RuLWh1YS13ZWktY2xvdWQtc2hpZWxkVGhlQm90dG9tRm9yTW9y\nZVJlY29tbWVuZGF0aW9uc1wiLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICApXG4gICAg\nICAgIF1cbiAgICAgIH1cbiAgICBdXG4gIH07XG4gIGNvbnN0IFNldHRpbmdVSVdlbkt1ID0ge1xu\nICAgIGlkOiBcInBhbmVsLXdlbmt1XCIsXG4gICAgdGl0bGU6IFwi6LWE5rqQXCIsXG4gICAgaXNE\nZWZhdWx0KCkge1xuICAgICAgcmV0dXJuIENTRE5Sb3V0ZXIuaXNMaW5rKCk7XG4gICAgfSxcbiAg\nICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBcIuWxj+iUvVwiLFxuICAgICAgICB0\neXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgVUlTd2l0Y2goXG4g\nICAgICAgICAgICBcIuOAkOWxj+iUveOAkei1hOa6kOaOqOiNkFwiLFxuICAgICAgICAgICAgXCJj\nc2RuLXdlbmt1LXNoaWVsZFJlc291cmNlUmVjb21tZW5kXCIsXG4gICAgICAgICAgICBmYWxzZVxu\nICAgICAgICAgICksXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICBcIuOAkOWxj+iU\nveOAkeWPs+S+p+eUqOaIt+S\/oeaBr1wiLFxuICAgICAgICAgICAgXCJjc2RuLXdlbmt1LXNoaWVs\nZFJpZ2h0VXNlckluZm9cIixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgKSxcbiAgICAg\nICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5Y+z5L6n5oKs5rWu5bel\n5YW35qCPXCIsXG4gICAgICAgICAgICBcImNzZG4td2Vua3Utc2hpZWxkUmlnaHRUb29sQmFyXCIs\nXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAgICAgfVxuICAg\nIF1cbiAgfTtcbiAgY29uc3QgU2V0dGluZ1VJU28gPSB7XG4gICAgaWQ6IFwicGFuZWwtc29cIixc\nbiAgICB0aXRsZTogXCLmkJzntKJcIixcbiAgICBpc0RlZmF1bHQoKSB7XG4gICAgICByZXR1cm4g\nQ1NETlJvdXRlci5pc1NvKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAg\nICB0ZXh0OiBcIkPnn6XpgZMt5Yqf6IO9XCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAg\nICAgICAgZm9ybXM6IFtVSVN3aXRjaChcIuWOu+mZpOawtOWNsFwiLCBcImNzZG4tc28tY2tub3ct\ncmVtb3ZlTWFza0NvdmVyXCIsIHRydWUpXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3Qg\nTVNldHRpbmdVSUJsb2cgPSB7XG4gICAgaWQ6IFwibS1wYW5lbC1ibG9nXCIsXG4gICAgdGl0bGU6\nIFwi5Y2a5a6iXCIsXG4gICAgaXNEZWZhdWx0KCkge1xuICAgICAgcmV0dXJuIENTRE5Sb3V0ZXIu\naXNCbG9nKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiBc\nImZvcm1zXCIsXG4gICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAg\nICAge1xuICAgICAgICAgICAgdGV4dDogXCLlip\/og71cIixcbiAgICAgICAgICAgIHR5cGU6IFwi\nZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAg\nICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixc\nbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0Y2goXG4g\nICAgICAgICAgICAgICAgICAgIFwi44CQ5bGP6JS944CR5bm\/5ZGKXCIsXG4gICAgICAgICAgICAg\nICAgICAgIFwibS1jc2RuLWJsb2ctcmVtb3ZlQWRzXCIsXG4gICAgICAgICAgICAgICAgICAgIHRy\ndWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLl\njIXmi6zvvJrnmbvlvZXlvLnnqpfjgIHmiZPlvIBBUFDjgIFpb3PniYjmnKzmj5DnpLrnrYlcIlxu\nICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAg\nICAgICAgICAgICAgICBcIuWFgeiuuOWkjeWItlwiLFxuICAgICAgICAgICAgICAgICAgICBcIm0t\nY3Nkbi1ibG9nLXVuQmxvY2tDb3B5XCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAg\nICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlhYHorrjngrnl\nh7vlpI3liLbmjInpkq7ov5vooYzlpI3liLZcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAg\nICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1c\nbiAgICAgICAgXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCJcIixcbiAgICAg\nICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3JtczogW1xuICAgICAgICAgIHtcbiAgICAg\nICAgICAgIHR5cGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIHRleHQ6IFwi6aG26YOo5bel\n5YW35qCPXCIsXG4gICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAg\nICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4g\nICAgICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAg\nICAgICAgICAgICAgICAgICBcIuWQr+eUqFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm0tY3Nk\nbi1ibG9nLXNoaWVsZFRvcFRvb2xiYXJcIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4g\nICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlhbPpl63m\nmK\/lsY\/olL3pobbpg6jlt6XlhbfmoI9cIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAg\nICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4g\nICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogXCLlhoXlrrlcIixcbiAgICAgICAgICAgIHR5\ncGU6IFwiZGVlcE1lbnVcIixcbiAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgIHtc\nbiAgICAgICAgICAgICAgICB0ZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9y\nbXNcIixcbiAgICAgICAgICAgICAgICBmb3JtczogW1xuICAgICAgICAgICAgICAgICAgVUlTd2l0\nY2goXG4gICAgICAgICAgICAgICAgICAgIFwi5YWB6K646YCJ5Lit5paH5a2XXCIsXG4gICAgICAg\nICAgICAgICAgICAgIFwibS1jc2RuLWJsb2ctYWxsb3dTZWxlY3RUZXh0XCIsXG4gICAgICAgICAg\nICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAg\nICAgICAgICAgXCLorr7nva51c2VyLXNlbGVjdDogdGV4dDtcIlxuICAgICAgICAgICAgICAgICAg\nKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuiH\nquWKqOWxleW8gFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm0tY3Nkbi1ibG9nLWF1dG9FeHBh\nbmRDb250ZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAg\nICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLljIXmi6zlhoXlrrnjgIHku6PnoIHl\nnZdcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgICAgICAgICBcIuS4jemZkOWItuS7o+eggeWdl+eahOacgOWkp+mrmOW6plwi\nLFxuICAgICAgICAgICAgICAgICAgICBcIm0tY3Nkbi1ibG9nLW5vdExpbWl0Q29kZVByZU1heEhl\naWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAg\ndm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuiuqeS7o+eggeWdl+eahOmrmOW6puebtOaO\npeiiq+aSkeW8gFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxuICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4g\nICAgICAgICAgICB0ZXh0OiBcIuivhOiuulwiLFxuICAgICAgICAgICAgdHlwZTogXCJkZWVwTWVu\ndVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAg\nICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wiLFxuICAgICAg\nICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAg\nICAgICAgICAgICAgXCLlkK\/nlKhcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtLWNzZG4tYmxv\nZy1jb21tZW50LWVuYWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICB0cnVlLFxuICAgICAgICAg\nICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIFwi5YWz6Zet5piv5bGP6JS9\n6K+E6K665Yy6XCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBVSVN3\naXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLkuI3pmZDliLbor4TorrrljLrnmoTmnIDlpKfp\nq5jluqZcIixcbiAgICAgICAgICAgICAgICAgICAgXCJtLWNzZG4tYmxvZy1ub3RMaW1pdENvbW1l\nbnRNYXhIZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAg\nICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuiuqeivhOiuuuWMuumrmOW6pueb\ntOaOpeiiq+aSkeW8gFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgXVxu\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7\nXG4gICAgICAgICAgICB0ZXh0OiBcIuW6lemDqOaWh+eroFwiLFxuICAgICAgICAgICAgdHlwZTog\nXCJkZWVwTWVudVwiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAgICAge1xuICAg\nICAgICAgICAgICAgIHRleHQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgdHlwZTogXCJmb3Jtc1wi\nLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBVSVN3aXRjaChc\nbiAgICAgICAgICAgICAgICAgICAgXCLlkK\/nlKhcIixcbiAgICAgICAgICAgICAgICAgICAgXCJt\nLWNzZG4tYmxvZy1ib3R0b21BcnRpY2xlRW5hYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgIHRy\ndWUsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLl\nhbPpl63mmK\/lsY\/olL3lupXpg6jmlofnq6BcIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAg\nICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAgICBcIuenu+mZpOi1hOa6\nkOS4i+i9vVwiLFxuICAgICAgICAgICAgICAgICAgICBcIm0tY3Nkbi1ibG9nLXJlbW92ZVJlc291\ncmNlQXJ0aWNsZVwiLFxuICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAg\nICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcImRvd25sb2FkLmNzZG4ubmV0PGJy\nPnd3dy5pdGV5ZS5jb208YnI+ZWR1LmNzZG4ubmV0XCJcbiAgICAgICAgICAgICAgICAgICksXG4g\nICAgICAgICAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLph43mnoRc\nIixcbiAgICAgICAgICAgICAgICAgICAgXCJtLWNzZG4tYmxvZy1yZWZhY3RvcmluZ1JlY29tbWVu\nZGF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgICAg\nIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLmlofnq6DnmoTmoLflvI\/nu5\/kuIBcIlxu\nICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAg\nICAgICAgICAgICAgICBcIuaWsOagh+etvumhteaJk+W8gFwiLFxuICAgICAgICAgICAgICAgICAg\nICBcIm0tY3Nkbi1ibG9nLW9wZW5OZXdUYWJcIixcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxc\nbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcIuaWsOag\nh+etvumhteaJk+W8gOaWh+eroFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAg\nICAgXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAg\nICAgICB7XG4gICAgICAgICAgICB0eXBlOiBcImRlZXBNZW51XCIsXG4gICAgICAgICAgICB0ZXh0\nOiBcIuW6lemDqOW3peWFt+agj1wiLFxuICAgICAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICAg\nICAge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgICAgICAgICB0\nZXh0OiBcIlwiLFxuICAgICAgICAgICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgICAgICAgICBV\nSVN3aXRjaChcbiAgICAgICAgICAgICAgICAgICAgXCLlkK\/nlKhcIixcbiAgICAgICAgICAgICAg\nICAgICAgXCJtLWNzZG4tYmxvZy1ib3R0b20tdG9vbGJhci1lbmFibGVcIixcbiAgICAgICAgICAg\nICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAg\nICAgICAgICAgXCLlhbPpl63mmK\/lsY\/olL3lupXpg6jlt6XlhbfmoI9cIlxuICAgICAgICAgICAg\nICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAgICAgICAg\nICBcIuW4uOmpu+W6lemDqFwiLFxuICAgICAgICAgICAgICAgICAgICBcIm0tY3Nkbi1ibG9nLWJv\ndHRvbS10b29sYmFyLWFsd2F5cy1ib3R0b21cIixcbiAgICAgICAgICAgICAgICAgICAgZmFsc2Us\nXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCLlvIDl\nkK\/lkI7lupXpg6jlt6XlhbfmoI\/kuI3pmo\/kuIvmu5Hmu5rliqjogIzpmpDol49cIlxuICAgICAg\nICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIFVJU3dpdGNoKFxuICAgICAgICAgICAg\nICAgICAgICBcIuS8mOWMluaUtuiXj+aMiemSrlwiLFxuICAgICAgICAgICAgICAgICAgICBcIm0t\nY3Nkbi1ibG9nLWJvdHRvbS10b29sYmFyLW9wdGltaXphdGlvbkNvbGxlY3RCdXR0b25cIixcbiAg\nICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAg\nICAgICAgICAgICAgICAgICAgXCLlj6\/ku6Xoh6rooYzpgInmi6nmlLbol4\/lpLlcIlxuICAgICAg\nICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAg\nY29uc3QgTVNldHRpbmdVSUxpbmsgPSB7XG4gICAgaWQ6IFwibS1wYW5lbC1saW5rXCIsXG4gICAg\ndGl0bGU6IFwi6ZO+5o6lXCIsXG4gICAgaXNEZWZhdWx0KCkge1xuICAgICAgcmV0dXJuIENTRE5S\nb3V0ZXIuaXNMaW5rKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0\nZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1z\nOiBbXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICBcIumHjeWumuWQkemTvuaOpVwi\nLFxuICAgICAgICAgICAgXCJtLWNzZG4tbGluay1qdW1wUmVkaXJlY3RcIixcbiAgICAgICAgICAg\nIHRydWUsXG4gICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICBcIuiHquWKqOi3s+i9rOiH\ns+iiq+aLpuaIqueahFVybOmTvuaOpVwiXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICB9\nXG4gICAgXVxuICB9O1xuICBjb25zdCBNU2V0dGluZ1VJU28gPSB7XG4gICAgaWQ6IFwicGFuZWwt\nc29cIixcbiAgICB0aXRsZTogXCLmkJzntKJcIixcbiAgICBpc0RlZmF1bHQoKSB7XG4gICAgICBy\nZXR1cm4gQ1NETlJvdXRlci5pc1NvKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAge1xu\nICAgICAgICB0ZXh0OiBcIkPnn6XpgZMt5Yqf6IO9XCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNc\nIixcbiAgICAgICAgZm9ybXM6IFtVSVN3aXRjaChcIuWOu+mZpOawtOWNsFwiLCBcIm0tY3Nkbi1z\nby1ja25vdy1yZW1vdmVNYXNrQ292ZXJcIiwgdHJ1ZSldXG4gICAgICB9XG4gICAgXVxuICB9O1xu\nICBjb25zdCBNU2V0dGluZ1VJV2VuS3UgPSB7XG4gICAgaWQ6IFwibS1wYW5lbC13ZW5rdVwiLFxu\nICAgIHRpdGxlOiBcIuaWh+W6k1wiLFxuICAgIGlzRGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiBD\nU0ROUm91dGVyLmlzV2VuS3UoKTtcbiAgICB9LFxuICAgIGZvcm1zOiBbXG4gICAgICB7XG4gICAg\nICAgIHRleHQ6IFwi5bGP6JS9XCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAg\nZm9ybXM6IFtcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAgICAgIFwi44CQ5bGP6JS944CR\n5bqV6YOo5bel5YW35qCPXCIsXG4gICAgICAgICAgICBcIm0tY3Nkbi13ZW5rdS1zaGllbGRCb3R0\nb21Ub29sYmFyXCIsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgIClcbiAgICAgICAgXVxu\nICAgICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgTVNldHRpbmdVSUh1YVdlaUNsb3VkID0ge1xu\nICAgIGlkOiBcIm0tcGFuZWwtaHVhLXdlaS1jbG91ZFwiLFxuICAgIHRpdGxlOiBcIuWNjuS4uuS6\nkeW8gOWPkeiAheiBlOebn1wiLFxuICAgIGlzRGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiBDU0RO\nUm91dGVyLmlzSHVhV2VpQ2xvdWRCbG9nKCk7XG4gICAgfSxcbiAgICBmb3JtczogW1xuICAgICAg\ne1xuICAgICAgICB0ZXh0OiBcIuWKn+iDvVwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4g\nICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICBcIuiHquWK\nqOWxleW8gOWFqOaWh1wiLFxuICAgICAgICAgICAgXCJtLWNzZG4taHVhLXdlaS1jbG91ZC1hdXRv\nRXhwYW5kQ29udGVudFwiLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAg\nXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCLlsY\/olL1cIixcbiAgICAgICAg\ndHlwZTogXCJmb3Jtc1wiLFxuICAgICAgICBmb3JtczogW1xuICAgICAgICAgIFVJU3dpdGNoKFxu\nICAgICAgICAgICAgXCLjgJDlsY\/olL3jgJHlupXpg6jliqDlhaXnpL7ljLpcIixcbiAgICAgICAg\nICAgIFwibS1jc2RuLWh1YS13ZWktY2xvdWQtYmxvY2tCb3R0b21Kb2luVGhlQ29tbXVuaXR5XCIs\nXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICB9XG4gICAg\nXVxuICB9O1xuICBjb25zdCBNU2V0dGluZ1VJRG93bmxvYWQgPSB7XG4gICAgaWQ6IFwibS1wYW5l\nbC1kb3dubG9hZFwiLFxuICAgIHRpdGxlOiBcIui1hOa6kFwiLFxuICAgIGlzRGVmYXVsdCgpIHtc\nbiAgICAgIHJldHVybiBDU0ROUm91dGVyLmlzRG93bmxvYWQoKTtcbiAgICB9LFxuICAgIGZvcm1z\nOiBbXG4gICAgICB7XG4gICAgICAgIHRleHQ6IFwi5Yqf6IO9XCIsXG4gICAgICAgIHR5cGU6IFwi\nZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtcbiAgICAgICAgICBVSVN3aXRjaChcbiAgICAgICAg\nICAgIFwi6Ieq5Yqo5bGV5byA6LWE5rqQ5LuL57uNXCIsXG4gICAgICAgICAgICBcIm0tY3Nkbi1k\nb3dubG9hZC1hdXRvbWF0aWNhbGx5RXhwYW5kUmVzb3VyY2VJbnRyb2R1Y3Rpb25cIixcbiAgICAg\nICAgICAgIHRydWUsXG4gICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICBcIuWxj+iUvei1\nhOa6kOS7i+e7jeOAkOWxleW8gOWFqOmDqOOAkeaMiemSruW5tuWxleW8gOi1hOa6kOS7i+e7jVwi\nXG4gICAgICAgICAgKVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0ZXh0\nOiBcIuWxj+iUvVwiLFxuICAgICAgICB0eXBlOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBb\nXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICBcIuOAkOWxj+iUveOAkeW5v+WRilwi\nLFxuICAgICAgICAgICAgXCJtLWNzZG4tZG93bmxvYWQtcmVtb3ZlQWRzXCIsXG4gICAgICAgICAg\nICB0cnVlLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgXCLljIXmi6zvvJrnmbvl\nvZXlvLnnqpfjgIHkvJrlkZjpmY3ku7fnrYlcIlxuICAgICAgICAgIClcbiAgICAgICAgXVxuICAg\nICAgfVxuICAgIF1cbiAgfTtcbiAgY29uc3QgVUlTZWxlY3QgPSBmdW5jdGlvbih0ZXh0LCBrZXks\nIGRlZmF1bHRWYWx1ZSwgZGF0YSwgY2FsbGJhY2ssIGRlc2NyaXB0aW9uKSB7XG4gICAgbGV0IHNl\nbGVjdERhdGEgPSBbXTtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwiZnVuY3Rpb25cIikge1xu\nICAgICAgc2VsZWN0RGF0YSA9IGRhdGEoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0RGF0\nYSA9IGRhdGE7XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICB0ZXh0LFxuICAgICAg\ndHlwZTogXCJzZWxlY3RcIixcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgYXR0cmlidXRlczog\ne30sXG4gICAgICBwcm9wczoge30sXG4gICAgICBnZXRWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJu\nIHRoaXMucHJvcHNbUFJPUFNfU1RPUkFHRV9BUEldLmdldChrZXksIGRlZmF1bHRWYWx1ZSk7XG4g\nICAgICB9LFxuICAgICAgY2FsbGJhY2soZXZlbnQsIGlzU2VsZWN0ZWRWYWx1ZSwgaXNTZWxlY3Rl\nZFRleHQpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gaXNTZWxlY3RlZFZhbHVlO1xuICAgICAgICBs\nb2cuaW5mbyhg6YCJ5oup77yaJHtpc1NlbGVjdGVkVGV4dH1gKTtcbiAgICAgICAgdGhpcy5wcm9w\nc1tQUk9QU19TVE9SQUdFX0FQSV0uc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICBpZiAodHlwZW9m\nIGNhbGxiYWNrID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICBjYWxsYmFjayhldmVudCwg\ndmFsdWUsIGlzU2VsZWN0ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRhdGE6\nIHNlbGVjdERhdGFcbiAgICB9O1xuICAgIFJlZmxlY3Quc2V0KHJlc3VsdC5hdHRyaWJ1dGVzLCBB\nVFRSSUJVVEVfS0VZLCBrZXkpO1xuICAgIFJlZmxlY3Quc2V0KHJlc3VsdC5hdHRyaWJ1dGVzLCBB\nVFRSSUJVVEVfREVGQVVMVF9WQUxVRSwgZGVmYXVsdFZhbHVlKTtcbiAgICBSZWZsZWN0LnNldChy\nZXN1bHQucHJvcHMsIFBST1BTX1NUT1JBR0VfQVBJLCB7XG4gICAgICBnZXQoa2V5MiwgZGVmYXVs\ndFZhbHVlMikge1xuICAgICAgICByZXR1cm4gUG9wc1BhbmVsLmdldFZhbHVlKGtleTIsIGRlZmF1\nbHRWYWx1ZTIpO1xuICAgICAgfSxcbiAgICAgIHNldChrZXkyLCB2YWx1ZSkge1xuICAgICAgICBQ\nb3BzUGFuZWwuc2V0VmFsdWUoa2V5MiwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJl\ndHVybiByZXN1bHQ7XG4gIH07XG4gIGNvbnN0IFNldHRpbmdVSUNvbW1vbiA9IHtcbiAgICBpZDog\nXCJjb21wb25lbnQtY29tbW9uXCIsXG4gICAgdGl0bGU6IFwi6YCa55SoXCIsXG4gICAgZm9ybXM6\nIFtcbiAgICAgIHtcbiAgICAgICAgdGV4dDogXCJUb2FzdOmFjee9rlwiLFxuICAgICAgICB0eXBl\nOiBcImZvcm1zXCIsXG4gICAgICAgIGZvcm1zOiBbXG4gICAgICAgICAgVUlTZWxlY3QoXG4gICAg\nICAgICAgICBcIlRvYXN05L2N572uXCIsXG4gICAgICAgICAgICBcInFtc2ctY29uZmlnLXBvc2l0\naW9uXCIsXG4gICAgICAgICAgICBcImJvdHRvbVwiLFxuICAgICAgICAgICAgW1xuICAgICAgICAg\nICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwidG9wbGVmdFwiLFxuICAgICAgICAgICAg\nICAgIHRleHQ6IFwi5bem5LiK6KeSXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAg\ne1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcInRvcFwiLFxuICAgICAgICAgICAgICAgIHRleHQ6\nIFwi6aG26YOoXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAg\nICAgICAgIHZhbHVlOiBcInRvcHJpZ2h0XCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlj7Pk\nuIrop5JcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAg\nICAgdmFsdWU6IFwibGVmdFwiLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwi5bem6L65XCJcbiAg\nICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBc\nImNlbnRlclwiLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwi5Lit6Ze0XCJcbiAgICAgICAgICAg\nICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcInJpZ2h0XCIs\nXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlj7PovrlcIlxuICAgICAgICAgICAgICB9LFxuICAg\nICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiYm90dG9tbGVmdFwiLFxuICAg\nICAgICAgICAgICAgIHRleHQ6IFwi5bem5LiL6KeSXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAg\nICAgICAgICAge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcImJvdHRvbVwiLFxuICAgICAgICAg\nICAgICAgIHRleHQ6IFwi5bqV6YOoXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAg\ne1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcImJvdHRvbXJpZ2h0XCIsXG4gICAgICAgICAgICAg\nICAgdGV4dDogXCLlj7PkuIvop5JcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxu\nICAgICAgICAgICAgKGV2ZW50LCBpc1NlbGVjdFZhbHVlLCBpc1NlbGVjdFRleHQpID0+IHtcbiAg\nICAgICAgICAgICAgbG9nLmluZm8oXCLorr7nva7lvZPliY1RbXNn5by55Ye65L2N572uXCIgKyBp\nc1NlbGVjdFRleHQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiVG9hc3TmmL7npLrl\nnKjpobXpnaLkuZ3lrqvmoLznmoTkvY3nva5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgVUlT\nZWxlY3QoXG4gICAgICAgICAgICBcIuacgOWkmuaYvuekuueahOaVsOmHj1wiLFxuICAgICAgICAg\nICAgXCJxbXNnLWNvbmZpZy1tYXhudW1zXCIsXG4gICAgICAgICAgICAzLFxuICAgICAgICAgICAg\nW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IDEsXG4gICAgICAgICAg\nICAgICAgdGV4dDogXCIxXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAg\nICAgICAgICAgICAgIHZhbHVlOiAyLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwiMlwiXG4gICAg\nICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogMyxc\nbiAgICAgICAgICAgICAgICB0ZXh0OiBcIjNcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAg\nICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IDQsXG4gICAgICAgICAgICAgICAgdGV4dDog\nXCI0XCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAg\nIHZhbHVlOiA1LFxuICAgICAgICAgICAgICAgIHRleHQ6IFwiNVwiXG4gICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICBcIumZkOWI\ntlRvYXN05pi+56S655qE5pWw6YePXCJcbiAgICAgICAgICApLFxuICAgICAgICAgIFVJU3dpdGNo\nKFxuICAgICAgICAgICAgXCLpgIbluo\/lvLnlh7pcIixcbiAgICAgICAgICAgIFwicW1zZy1jb25m\naWctc2hvd3JldmVyc2VcIixcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdm9pZCAw\nLFxuICAgICAgICAgICAgXCLkv67mlLlUb2FzdOW8ueWHuueahOmhuuW6j1wiXG4gICAgICAgICAg\nKVxuICAgICAgICBdXG4gICAgICB9XG4gICAgICBcL1wvIHtcbiAgICAgIFwvXC8gXHR0ZXh0OiBc\nIkNvb2tpZemFjee9rlwiLFxuICAgICAgXC9cLyBcdHR5cGU6IFwiZm9ybXNcIixcbiAgICAgIFwv\nXC8gXHRmb3JtczogW1xuICAgICAgXC9cLyBcdFx0VUlTd2l0Y2goXG4gICAgICBcL1wvIFx0XHRc\ndFwi5ZCv55SoXCIsXG4gICAgICBcL1wvIFx0XHRcdFwiaHR0cHgtdXNlLWNvb2tpZS1lbmFibGVc\nIixcbiAgICAgIFwvXC8gXHRcdFx0ZmFsc2UsXG4gICAgICBcL1wvIFx0XHRcdHZvaWQgMCxcbiAg\nICAgIFwvXC8gXHRcdFx0XCLlkK\/nlKjlkI7vvIzlsIbmoLnmja7kuIvpnaLnmoTphY3nva7ov5vo\noYzmt7vliqBjb29raWVcIlxuICAgICAgXC9cLyBcdFx0KSxcbiAgICAgIFwvXC8gXHRcdFVJU3dp\ndGNoKFxuICAgICAgXC9cLyBcdFx0XHRcIuS9v+eUqGRvY3VtZW50LmNvb2tpZVwiLFxuICAgICAg\nXC9cLyBcdFx0XHRcImh0dHB4LXVzZS1kb2N1bWVudC1jb29raWVcIixcbiAgICAgIFwvXC8gXHRc\ndFx0ZmFsc2UsXG4gICAgICBcL1wvIFx0XHRcdHZvaWQgMCxcbiAgICAgIFwvXC8gXHRcdFx0XCLo\nh6rliqjmoLnmja7or7fmsYLnmoTln5\/lkI3mnaXorr7nva7lr7nlupTnmoRjb29raWVcIlxuICAg\nICAgXC9cLyBcdFx0KSxcbiAgICAgIFwvXC8gXHRcdFVJVGV4dEFyZWEoXG4gICAgICBcL1wvIFx0\nXHRcdFwidGllYmEuYmFpZHUuY29tXCIsXG4gICAgICBcL1wvIFx0XHRcdFwiaHR0cHgtY29va2ll\nLXRpZWJhLmJhaWR1LmNvbVwiLFxuICAgICAgXC9cLyBcdFx0XHRcIlwiLFxuICAgICAgXC9cLyBc\ndFx0XHR2b2lkIDAsXG4gICAgICBcL1wvIFx0XHRcdHZvaWQgMCxcbiAgICAgIFwvXC8gXHRcdFx0\nXCJDb29raWXmoLzlvI\/vvJp4eHg9eHh4eDt4eHg9eHh4eFwiXG4gICAgICBcL1wvIFx0XHQpLFxu\nICAgICAgXC9cLyBcdF0sXG4gICAgICBcL1wvIH0sXG4gICAgXVxuICB9O1xuICBjb25zdCBNU2V0\ndGluZ1VJQ29tbW9uID0ge1xuICAgIGlkOiBcImNvbXBvbmVudC1jb21tb25cIixcbiAgICB0aXRs\nZTogXCLpgJrnlKhcIixcbiAgICBmb3JtczogW1xuICAgICAge1xuICAgICAgICB0ZXh0OiBcIlRv\nYXN06YWN572uXCIsXG4gICAgICAgIHR5cGU6IFwiZm9ybXNcIixcbiAgICAgICAgZm9ybXM6IFtc\nbiAgICAgICAgICBVSVNlbGVjdChcbiAgICAgICAgICAgIFwiVG9hc3TkvY3nva5cIixcbiAgICAg\nICAgICAgIFwicW1zZy1jb25maWctcG9zaXRpb25cIixcbiAgICAgICAgICAgIFwiYm90dG9tXCIs\nXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTog\nXCJ0b3BsZWZ0XCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlt6bkuIrop5JcIlxuICAgICAg\nICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwidG9w\nXCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLpobbpg6hcIlxuICAgICAgICAgICAgICB9LFxu\nICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwidG9wcmlnaHRcIixcbiAg\nICAgICAgICAgICAgICB0ZXh0OiBcIuWPs+S4iuinklwiXG4gICAgICAgICAgICAgIH0sXG4gICAg\nICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJsZWZ0XCIsXG4gICAgICAgICAg\nICAgICAgdGV4dDogXCLlt6bovrlcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7\nXG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgdGV4\ndDogXCLkuK3pl7RcIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAg\nICAgICAgICAgdmFsdWU6IFwicmlnaHRcIixcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWPs+i+\nuVwiXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2\nYWx1ZTogXCJib3R0b21sZWZ0XCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlt6bkuIvop5Jc\nIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFs\ndWU6IFwiYm90dG9tXCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCLlupXpg6hcIlxuICAgICAg\nICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiYm90\ndG9tcmlnaHRcIixcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIuWPs+S4i+inklwiXG4gICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAoZXZlbnQsIGlzU2VsZWN0VmFs\ndWUsIGlzU2VsZWN0VGV4dCkgPT4ge1xuICAgICAgICAgICAgICBsb2cuaW5mbyhcIuiuvue9ruW9\nk+WJjVFtc2flvLnlh7rkvY3nva5cIiArIGlzU2VsZWN0VGV4dCk7XG4gICAgICAgICAgICB9LFxu\nICAgICAgICAgICAgXCJUb2FzdOaYvuekuuWcqOmhtemdouS5neWuq+agvOeahOS9jee9rlwiXG4g\nICAgICAgICAgKSxcbiAgICAgICAgICBVSVNlbGVjdChcbiAgICAgICAgICAgIFwi5pyA5aSa5pi+\n56S655qE5pWw6YePXCIsXG4gICAgICAgICAgICBcInFtc2ctY29uZmlnLW1heG51bXNcIixcbiAg\nICAgICAgICAgIDMsXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAg\nICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIjFcIlxuICAgICAgICAgICAg\nICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IDIsXG4gICAgICAg\nICAgICAgICAgdGV4dDogXCIyXCJcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xu\nICAgICAgICAgICAgICAgIHZhbHVlOiAzLFxuICAgICAgICAgICAgICAgIHRleHQ6IFwiM1wiXG4g\nICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTog\nNCxcbiAgICAgICAgICAgICAgICB0ZXh0OiBcIjRcIlxuICAgICAgICAgICAgICB9LFxuICAgICAg\nICAgICAgICB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IDUsXG4gICAgICAgICAgICAgICAgdGV4\ndDogXCI1XCJcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHZv\naWQgMCxcbiAgICAgICAgICAgIFwi6ZmQ5Yi2VG9hc3TmmL7npLrnmoTmlbDph49cIlxuICAgICAg\nICAgICksXG4gICAgICAgICAgVUlTd2l0Y2goXG4gICAgICAgICAgICBcIumAhuW6j+W8ueWHulwi\nLFxuICAgICAgICAgICAgXCJxbXNnLWNvbmZpZy1zaG93cmV2ZXJzZVwiLFxuICAgICAgICAgICAg\nZmFsc2UsXG4gICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICBcIuS\/ruaUuVRvYXN05by5\n5Ye655qE6aG65bqPXCJcbiAgICAgICAgICApXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICAgIFwv\nXC8ge1xuICAgICAgXC9cLyBcdHRleHQ6IFwiQ29va2ll6YWN572uXCIsXG4gICAgICBcL1wvIFx0\ndHlwZTogXCJmb3Jtc1wiLFxuICAgICAgXC9cLyBcdGZvcm1zOiBbXG4gICAgICBcL1wvIFx0XHRV\nSVN3aXRjaChcbiAgICAgIFwvXC8gXHRcdFx0XCLlkK\/nlKhcIixcbiAgICAgIFwvXC8gXHRcdFx0\nXCJodHRweC11c2UtY29va2llLWVuYWJsZVwiLFxuICAgICAgXC9cLyBcdFx0XHRmYWxzZSxcbiAg\nICAgIFwvXC8gXHRcdFx0dm9pZCAwLFxuICAgICAgXC9cLyBcdFx0XHRcIuWQr+eUqOWQju+8jOWw\nhuagueaNruS4i+mdoueahOmFjee9rui\/m+ihjOa3u+WKoGNvb2tpZVwiXG4gICAgICBcL1wvIFx0\nXHQpLFxuICAgICAgXC9cLyBcdFx0VUlTd2l0Y2goXG4gICAgICBcL1wvIFx0XHRcdFwi5L2\/55So\nZG9jdW1lbnQuY29va2llXCIsXG4gICAgICBcL1wvIFx0XHRcdFwiaHR0cHgtdXNlLWRvY3VtZW50\nLWNvb2tpZVwiLFxuICAgICAgXC9cLyBcdFx0XHRmYWxzZSxcbiAgICAgIFwvXC8gXHRcdFx0dm9p\nZCAwLFxuICAgICAgXC9cLyBcdFx0XHRcIuiHquWKqOagueaNruivt+axgueahOWfn+WQjeadpeiu\nvue9ruWvueW6lOeahGNvb2tpZVwiXG4gICAgICBcL1wvIFx0XHQpLFxuICAgICAgXC9cLyBcdFx0\nVUlUZXh0QXJlYShcbiAgICAgIFwvXC8gXHRcdFx0XCJ0aWViYS5iYWlkdS5jb21cIixcbiAgICAg\nIFwvXC8gXHRcdFx0XCJodHRweC1jb29raWUtdGllYmEuYmFpZHUuY29tXCIsXG4gICAgICBcL1wv\nIFx0XHRcdFwiXCIsXG4gICAgICBcL1wvIFx0XHRcdHZvaWQgMCxcbiAgICAgIFwvXC8gXHRcdFx0\ndm9pZCAwLFxuICAgICAgXC9cLyBcdFx0XHRcIkNvb2tpZeagvOW8j++8mnh4eD14eHh4O3h4eD14\neHh4XCJcbiAgICAgIFwvXC8gXHRcdCksXG4gICAgICBcL1wvIFx0XSxcbiAgICAgIFwvXC8gfSxc\nbiAgICBdXG4gIH07XG4gIGNvbnN0IFBhbmVsVUlTaXplID0ge1xuICAgIFwvKipcbiAgICAgKiDk\nuIDoiKzorr7nva7nlYzpnaLnmoTlsLrlr7hcbiAgICAgKlwvXG4gICAgc2V0dGluZzoge1xuICAg\nICAgZ2V0IHdpZHRoKCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPCA1NTAg\nPyBcIjg4dndcIiA6IFwiNTUwcHhcIjtcbiAgICAgIH0sXG4gICAgICBnZXQgaGVpZ2h0KCkge1xu\nICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IDwgNDUwID8gXCI3MHZoXCIgOiBcIjQ1\nMHB4XCI7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Yqf6IO95Liw5a+M77yM\nYXNpZGXpk7rmu6HkuobnmoTorr7nva7nlYzpnaLvvIzopoHnqI3lvq7lpKfkuIDngrlcbiAgICAg\nKlwvXG4gICAgc2V0dGluZ0JpZzoge1xuICAgICAgZ2V0IHdpZHRoKCkge1xuICAgICAgICByZXR1\ncm4gd2luZG93LmlubmVyV2lkdGggPCA4MDAgPyBcIjkydndcIiA6IFwiODAwcHhcIjtcbiAgICAg\nIH0sXG4gICAgICBnZXQgaGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVp\nZ2h0IDwgNjAwID8gXCI4MHZoXCIgOiBcIjYwMHB4XCI7XG4gICAgICB9XG4gICAgfSxcbiAgICBc\nLyoqXG4gICAgICog5L+h5oGv55WM6Z2i77yM5LiA6Iis55So5LqO5o+Q56S65L+h5oGv5LmL57G7\nXG4gICAgICpcL1xuICAgIGluZm86IHtcbiAgICAgIGdldCB3aWR0aCgpIHtcbiAgICAgICAgcmV0\ndXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgMzUwID8gXCIzNTBweFwiIDogXCIzNTBweFwiO1xuICAg\nICAgfSxcbiAgICAgIGdldCBoZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuaW5uZXJI\nZWlnaHQgPCAyNTAgPyBcIjI1MHB4XCIgOiBcIjI1MHB4XCI7XG4gICAgICB9XG4gICAgfVxuICB9\nO1xuICBjb25zdCBQb3BzUGFuZWwgPSB7XG4gICAgXC8qKiDmlbDmja4gKlwvXG4gICAgJGRhdGE6\nIHtcbiAgICAgIF9fZGF0YTogbnVsbCxcbiAgICAgIF9fb25lU3VjY2Vzc0V4ZWNNZW51OiBudWxs\nLFxuICAgICAgX19vbmNlRXhlYzogbnVsbCxcbiAgICAgIF9fbGlzdGVuRGF0YTogbnVsbCxcbiAg\nICAgIFwvKipcbiAgICAgICAqIOiPnOWNlemhueeahOm7mOiupOWAvFxuICAgICAgICpcL1xuICAg\nICAgZ2V0IGRhdGEoKSB7XG4gICAgICAgIGlmIChQb3BzUGFuZWwuJGRhdGEuX19kYXRhID09IG51\nbGwpIHtcbiAgICAgICAgICBQb3BzUGFuZWwuJGRhdGEuX19kYXRhID0gbmV3IHV0aWxzLkRpY3Rp\nb25hcnkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUG9wc1BhbmVsLiRkYXRhLl9fZGF0\nYTtcbiAgICAgIH0sXG4gICAgICBcLyoqXG4gICAgICAgKiDmiJDlip\/lj6rmiafooYzkuobkuIDm\nrKHnmoTpoblcbiAgICAgICAqXC9cbiAgICAgIGdldCBvbmVTdWNjZXNzRXhlY01lbnUoKSB7XG4g\nICAgICAgIGlmIChQb3BzUGFuZWwuJGRhdGEuX19vbmVTdWNjZXNzRXhlY01lbnUgPT0gbnVsbCkg\ne1xuICAgICAgICAgIFBvcHNQYW5lbC4kZGF0YS5fX29uZVN1Y2Nlc3NFeGVjTWVudSA9IG5ldyB1\ndGlscy5EaWN0aW9uYXJ5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC4k\nZGF0YS5fX29uZVN1Y2Nlc3NFeGVjTWVudTtcbiAgICAgIH0sXG4gICAgICBcLyoqXG4gICAgICAg\nKiDmiJDlip\/lj6rmiafooYzkuobkuIDmrKHnmoTpoblcbiAgICAgICAqXC9cbiAgICAgIGdldCBv\nbmNlRXhlYygpIHtcbiAgICAgICAgaWYgKFBvcHNQYW5lbC4kZGF0YS5fX29uY2VFeGVjID09IG51\nbGwpIHtcbiAgICAgICAgICBQb3BzUGFuZWwuJGRhdGEuX19vbmNlRXhlYyA9IG5ldyB1dGlscy5E\naWN0aW9uYXJ5KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFBvcHNQYW5lbC4kZGF0YS5f\nX29uY2VFeGVjO1xuICAgICAgfSxcbiAgICAgIFwvKiog6ISa5pys5ZCN77yM5LiA6Iis55So5Zyo\n6K6+572u55qE5qCH6aKY5LiKICpcL1xuICAgICAgZ2V0IHNjcmlwdE5hbWUoKSB7XG4gICAgICAg\nIHJldHVybiBTQ1JJUFRfTkFNRTtcbiAgICAgIH0sXG4gICAgICBcLyoqIOiPnOWNlemhueeahOaA\nu+WAvOWcqOacrOWcsOaVsOaNrumFjee9rueahOmUruWQjSAqXC9cbiAgICAgIGtleTogS0VZLFxu\nICAgICAgXC8qKiDoj5zljZXpobnlnKhhdHRyaWJ1dGVz5LiK6YWN572u55qE6I+c5Y2V6ZSuICpc\nL1xuICAgICAgYXR0cmlidXRlS2V5TmFtZTogQVRUUklCVVRFX0tFWSxcbiAgICAgIFwvKiog6I+c\n5Y2V6aG55ZyoYXR0cmlidXRlc+S4iumFjee9rueahOiPnOWNlem7mOiupOWAvCAqXC9cbiAgICAg\nIGF0dHJpYnV0ZURlZmF1bHRWYWx1ZU5hbWU6IEFUVFJJQlVURV9ERUZBVUxUX1ZBTFVFXG4gICAg\nfSxcbiAgICBcLyoqIOebkeWQrOWZqCAqXC9cbiAgICAkbGlzdGVuZXI6IHtcbiAgICAgIFwvKipc\nbiAgICAgICAqIOWAvOaUueWPmOeahOebkeWQrOWZqFxuICAgICAgICpcL1xuICAgICAgZ2V0IGxp\nc3RlbkRhdGEoKSB7XG4gICAgICAgIGlmIChQb3BzUGFuZWwuJGRhdGEuX19saXN0ZW5EYXRhID09\nIG51bGwpIHtcbiAgICAgICAgICBQb3BzUGFuZWwuJGRhdGEuX19saXN0ZW5EYXRhID0gbmV3IHV0\naWxzLkRpY3Rpb25hcnkoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUG9wc1BhbmVsLiRk\nYXRhLl9fbGlzdGVuRGF0YTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGluaXQoKSB7XG4gICAgICB0\naGlzLmluaXRQYW5lbERlZmF1bHRWYWx1ZSgpO1xuICAgICAgdGhpcy5pbml0RXh0ZW5zaW9uc01l\nbnUoKTtcbiAgICB9LFxuICAgIGluaXRFeHRlbnNpb25zTWVudSgpIHtcbiAgICAgIGlmIChfdW5z\nYWZlV2luZG93LnRvcCAhPT0gX3Vuc2FmZVdpbmRvdy5zZWxmKSB7XG4gICAgICAgIHJldHVybjtc\nbiAgICAgIH1cbiAgICAgIEdNX01lbnUuYWRkKFtcbiAgICAgICAge1xuICAgICAgICAgIGtleTog\nXCJzaG93X3BvcHNfcGFuZWxfc2V0dGluZ1wiLFxuICAgICAgICAgIHRleHQ6IFwi4pqZIFBD56uv\n6K6+572uXCIsXG4gICAgICAgICAgYXV0b1JlbG9hZDogZmFsc2UsXG4gICAgICAgICAgaXNTdG9y\nZVZhbHVlOiBmYWxzZSxcbiAgICAgICAgICBzaG93VGV4dCh0ZXh0KSB7XG4gICAgICAgICAgICBy\nZXR1cm4gdGV4dDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4g\nICAgICAgICAgICB0aGlzLnNob3dQYW5lbCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAg\nICAgICAge1xuICAgICAgICAgIGtleTogXCJtX3Nob3dfcG9wc19wYW5lbF9zZXR0aW5nXCIsXG4g\nICAgICAgICAgdGV4dDogXCLimpkg56e75Yqo56uv56uv6K6+572uXCIsXG4gICAgICAgICAgYXV0\nb1JlbG9hZDogZmFsc2UsXG4gICAgICAgICAgaXNTdG9yZVZhbHVlOiBmYWxzZSxcbiAgICAgICAg\nICBzaG93VGV4dCh0ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgICB9\nLFxuICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dNUGFu\nZWwoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6\nIFwiZ290b0NTRE5DS25vd1wiLFxuICAgICAgICAgIHRleHQ6IFwi4pqZIOWJjeW+gEPnn6XpgZNc\nIixcbiAgICAgICAgICBpc1N0b3JlVmFsdWU6IGZhbHNlLFxuICAgICAgICAgIGF1dG9SZWxvYWQ6\nIGZhbHNlLFxuICAgICAgICAgIHNob3dUZXh0KHRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0\nZXh0O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY2FsbGJhY2soKSB7XG4gICAgICAgICAgICB3\naW5kb3cub3BlbihcImh0dHBzOlwvXC9zby5jc2RuLm5ldFwvY2hhdFwiLCBcIl9ibGFua1wiKTtc\nbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH0sXG4gICAgXC8qKiDliJ3l\np4vljJboj5zljZXpobnnmoTpu5jorqTlgLzkv53lrZjliLDmnKzlnLDmlbDmja7kuK0gKlwvXG4g\nICAgaW5pdFBhbmVsRGVmYXVsdFZhbHVlKCkge1xuICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuICAg\nICAgZnVuY3Rpb24gaW5pdERlZmF1bHRWYWx1ZShjb25maWcpIHtcbiAgICAgICAgaWYgKCFjb25m\naWcuYXR0cmlidXRlcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBs\nZXQgbmVlZEluaXRDb25maWcgPSB7fTtcbiAgICAgICAgbGV0IGtleSA9IGNvbmZpZy5hdHRyaWJ1\ndGVzW0FUVFJJQlVURV9LRVldO1xuICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHtcbiAgICAgICAg\nICBuZWVkSW5pdENvbmZpZ1trZXldID0gY29uZmlnLmF0dHJpYnV0ZXNbQVRUUklCVVRFX0RFRkFV\nTFRfVkFMVUVdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBfX2F0dHJfaW5pdF9fID0gY29uZmln\nLmF0dHJpYnV0ZXNbQVRUUklCVVRFX0lOSVRdO1xuICAgICAgICBpZiAodHlwZW9mIF9fYXR0cl9p\nbml0X18gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGxldCBfX2F0dHJfcmVzdWx0X18g\nPSBfX2F0dHJfaW5pdF9fKCk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBfX2F0dHJfcmVzdWx0X18g\nPT09IFwiYm9vbGVhblwiICYmICFfX2F0dHJfcmVzdWx0X18pIHtcbiAgICAgICAgICAgIHJldHVy\nbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGluaXRNb3JlVmFsdWUgPSBj\nb25maWcuYXR0cmlidXRlc1tBVFRSSUJVVEVfSU5JVF9NT1JFX1ZBTFVFXTtcbiAgICAgICAgaWYg\nKGluaXRNb3JlVmFsdWUgJiYgdHlwZW9mIGluaXRNb3JlVmFsdWUgPT09IFwib2JqZWN0XCIpIHtc\nbiAgICAgICAgICBPYmplY3QuYXNzaWduKG5lZWRJbml0Q29uZmlnLCBpbml0TW9yZVZhbHVlKTtc\nbiAgICAgICAgfVxuICAgICAgICBsZXQgbmVlZEluaXRDb25maWdMaXN0ID0gT2JqZWN0LmtleXMo\nbmVlZEluaXRDb25maWcpO1xuICAgICAgICBpZiAoIW5lZWRJbml0Q29uZmlnTGlzdC5sZW5ndGgp\nIHtcbiAgICAgICAgICBsb2cud2FybihbXCLor7flhYjphY3nva7plK5cIiwgY29uZmlnXSk7XG4g\nICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG5lZWRJbml0Q29uZmlnTGlzdC5m\nb3JFYWNoKChfX2tleSkgPT4ge1xuICAgICAgICAgIGxldCBfX2RlZmF1bHRWYWx1ZSA9IG5lZWRJ\nbml0Q29uZmlnW19fa2V5XTtcbiAgICAgICAgICBpZiAodGhhdC4kZGF0YS5kYXRhLmhhcyhfX2tl\neSkpIHtcbiAgICAgICAgICAgIGxvZy53YXJuKFwi6K+35qOA5p+l6K+la2V5KOW3suWtmOWcqCk6\nIFwiICsgX19rZXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGF0LiRkYXRhLmRhdGEuc2V0\nKF9fa2V5LCBfX2RlZmF1bHRWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZnVu\nY3Rpb24gbG9vcEluaXREZWZhdWx0VmFsdWUoY29uZmlnTGlzdCkge1xuICAgICAgICBmb3IgKGxl\ndCBpbmRleCA9IDA7IGluZGV4IDwgY29uZmlnTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAg\nICAgICBsZXQgY29uZmlnSXRlbSA9IGNvbmZpZ0xpc3RbaW5kZXhdO1xuICAgICAgICAgIGluaXRE\nZWZhdWx0VmFsdWUoY29uZmlnSXRlbSk7XG4gICAgICAgICAgbGV0IGNoaWxkRm9ybXMgPSBjb25m\naWdJdGVtLmZvcm1zO1xuICAgICAgICAgIGlmIChjaGlsZEZvcm1zICYmIEFycmF5LmlzQXJyYXko\nY2hpbGRGb3JtcykpIHtcbiAgICAgICAgICAgIGxvb3BJbml0RGVmYXVsdFZhbHVlKGNoaWxkRm9y\nbXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IGNvbnRlbnRD\nb25maWdMaXN0ID0gdGhpcy5nZXRQYW5lbENvbnRlbnRDb25maWcoKS5jb25jYXQoXG4gICAgICAg\nIHRoaXMuZ2V0TVBhbmVsQ29udGVudENvbmZpZygpXG4gICAgICApO1xuICAgICAgZm9yIChsZXQg\naW5kZXggPSAwOyBpbmRleCA8IGNvbnRlbnRDb25maWdMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xu\nICAgICAgICBsZXQgbGVmdENvbnRlbnRDb25maWdJdGVtID0gY29udGVudENvbmZpZ0xpc3RbaW5k\nZXhdO1xuICAgICAgICBpZiAoIWxlZnRDb250ZW50Q29uZmlnSXRlbS5mb3Jtcykge1xuICAgICAg\nICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCByaWdodENvbnRlbnRDb25maWdM\naXN0ID0gbGVmdENvbnRlbnRDb25maWdJdGVtLmZvcm1zO1xuICAgICAgICBpZiAocmlnaHRDb250\nZW50Q29uZmlnTGlzdCAmJiBBcnJheS5pc0FycmF5KHJpZ2h0Q29udGVudENvbmZpZ0xpc3QpKSB7\nXG4gICAgICAgICAgbG9vcEluaXREZWZhdWx0VmFsdWUocmlnaHRDb250ZW50Q29uZmlnTGlzdCk7\nXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDorr7nva7lgLxc\nbiAgICAgKiBAcGFyYW0ga2V5IOmUrlxuICAgICAqIEBwYXJhbSB2YWx1ZSDlgLxcbiAgICAgKlwv\nXG4gICAgc2V0VmFsdWUoa2V5LCB2YWx1ZSkge1xuICAgICAgbGV0IGxvY2FEYXRhID0gX0dNX2dl\ndFZhbHVlKEtFWSwge30pO1xuICAgICAgbGV0IG9sZFZhbHVlID0gbG9jYURhdGFba2V5XTtcbiAg\nICAgIGxvY2FEYXRhW2tleV0gPSB2YWx1ZTtcbiAgICAgIF9HTV9zZXRWYWx1ZShLRVksIGxvY2FE\nYXRhKTtcbiAgICAgIGlmICh0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLmhhcyhrZXkpKSB7XG4g\nICAgICAgIHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuZ2V0KGtleSkuY2FsbGJhY2soa2V5LCBv\nbGRWYWx1ZSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiOt+WP\nluWAvFxuICAgICAqIEBwYXJhbSBrZXkg6ZSuXG4gICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSDp\nu5jorqTlgLxcbiAgICAgKlwvXG4gICAgZ2V0VmFsdWUoa2V5LCBkZWZhdWx0VmFsdWUpIHtcbiAg\nICAgIGxldCBsb2NhRGF0YSA9IF9HTV9nZXRWYWx1ZShLRVksIHt9KTtcbiAgICAgIGxldCBsb2Nh\nbFZhbHVlID0gbG9jYURhdGFba2V5XTtcbiAgICAgIGlmIChsb2NhbFZhbHVlID09IG51bGwpIHtc\nbiAgICAgICAgaWYgKHRoaXMuJGRhdGEuZGF0YS5oYXMoa2V5KSkge1xuICAgICAgICAgIHJldHVy\nbiB0aGlzLiRkYXRhLmRhdGEuZ2V0KGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRl\nZmF1bHRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBsb2NhbFZhbHVlO1xuICAgIH0sXG4g\nICAgXC8qKlxuICAgICAqIOWIoOmZpOWAvFxuICAgICAqIEBwYXJhbSBrZXkg6ZSuXG4gICAgICpc\nL1xuICAgIGRlbGV0ZVZhbHVlKGtleSkge1xuICAgICAgbGV0IGxvY2FEYXRhID0gX0dNX2dldFZh\nbHVlKEtFWSwge30pO1xuICAgICAgbGV0IG9sZFZhbHVlID0gbG9jYURhdGFba2V5XTtcbiAgICAg\nIFJlZmxlY3QuZGVsZXRlUHJvcGVydHkobG9jYURhdGEsIGtleSk7XG4gICAgICBfR01fc2V0VmFs\ndWUoS0VZLCBsb2NhRGF0YSk7XG4gICAgICBpZiAodGhpcy4kbGlzdGVuZXIubGlzdGVuRGF0YS5o\nYXMoa2V5KSkge1xuICAgICAgICB0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLmdldChrZXkpLmNh\nbGxiYWNrKGtleSwgb2xkVmFsdWUsIHZvaWQgMCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog55uR5ZCs6LCD55Soc2V0VmFsdWXjgIFkZWxldGVWYWx1ZVxuICAgICAqIEBwYXJh\nbSBrZXkg6ZyA6KaB55uR5ZCs55qE6ZSuXG4gICAgICogQHBhcmFtIGNhbGxiYWNrXG4gICAgICpc\nL1xuICAgIGFkZFZhbHVlQ2hhbmdlTGlzdGVuZXIoa2V5LCBjYWxsYmFjaywgb3B0aW9uKSB7XG4g\nICAgICBsZXQgbGlzdGVuZXJJZCA9IE1hdGgucmFuZG9tKCk7XG4gICAgICB0aGlzLiRsaXN0ZW5l\nci5saXN0ZW5EYXRhLnNldChrZXksIHtcbiAgICAgICAgaWQ6IGxpc3RlbmVySWQsXG4gICAgICAg\nIGtleSxcbiAgICAgICAgY2FsbGJhY2tcbiAgICAgIH0pO1xuICAgICAgaWYgKG9wdGlvbikge1xu\nICAgICAgICBpZiAob3B0aW9uLmltbWVkaWF0ZSkge1xuICAgICAgICAgIGNhbGxiYWNrKGtleSwg\ndGhpcy5nZXRWYWx1ZShrZXkpLCB0aGlzLmdldFZhbHVlKGtleSkpO1xuICAgICAgICB9XG4gICAg\nICB9XG4gICAgICByZXR1cm4gbGlzdGVuZXJJZDtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDn\np7vpmaTnm5HlkKxcbiAgICAgKiBAcGFyYW0gbGlzdGVuZXJJZCDnm5HlkKznmoRpZFxuICAgICAq\nXC9cbiAgICByZW1vdmVWYWx1ZUNoYW5nZUxpc3RlbmVyKGxpc3RlbmVySWQpIHtcbiAgICAgIGxl\ndCBkZWxldGVLZXkgPSBudWxsO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgdGhp\ncy4kbGlzdGVuZXIubGlzdGVuRGF0YS5lbnRyaWVzKCkpIHtcbiAgICAgICAgaWYgKHZhbHVlLmlk\nID09PSBsaXN0ZW5lcklkKSB7XG4gICAgICAgICAgZGVsZXRlS2V5ID0ga2V5O1xuICAgICAgICAg\nIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlbGV0ZUtleSA9\nPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLmRlbGV0\nZShkZWxldGVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKFwi5rKh\n5pyJ5om+5Yiw5a+55bqU55qE55uR5ZCs5ZmoXCIpO1xuICAgICAgfVxuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOS4u+WKqOinpuWPkeiPnOWNleWAvOaUueWPmOeahOWbnuiwg1xuICAgICAqIEBw\nYXJhbSBrZXkg6I+c5Y2V6ZSuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIOaDs+imgeinpuWPkeea\nhOaWsOWAvO+8jOm7mOiupOS9v+eUqOW9k+WJjeWAvFxuICAgICAqIEBwYXJhbSBvbGRWYWx1ZSDm\ng7PopoHop6blj5HnmoTml6flgLzvvIzpu5jorqTkvb\/nlKjlvZPliY3lgLxcbiAgICAgKlwvXG4g\nICAgdHJpZ2dlck1lbnVWYWx1ZUNoYW5nZShrZXksIG5ld1ZhbHVlLCBvbGRWYWx1ZSkge1xuICAg\nICAgaWYgKHRoaXMuJGxpc3RlbmVyLmxpc3RlbkRhdGEuaGFzKGtleSkpIHtcbiAgICAgICAgbGV0\nIGxpc3RlbkRhdGEgPSB0aGlzLiRsaXN0ZW5lci5saXN0ZW5EYXRhLmdldChrZXkpO1xuICAgICAg\nICBpZiAodHlwZW9mIGxpc3RlbkRhdGEuY2FsbGJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAg\nICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoa2V5KTtcbiAgICAgICAgICBsZXQgX19u\nZXdWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIGxldCBfX29sZFZhbHVlID0gdmFsdWU7XG4gICAg\nICAgICAgaWYgKHR5cGVvZiBuZXdWYWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBhcmd1bWVudHMu\nbGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgX19uZXdWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAg\nICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIG9sZFZhbHVlICE9PSBcInVuZGVmaW5lZFwiICYm\nIGFyZ3VtZW50cy5sZW5ndGggPiAyKSB7XG4gICAgICAgICAgICBfX29sZFZhbHVlID0gb2xkVmFs\ndWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxpc3RlbkRhdGEuY2FsbGJhY2soa2V5LCBfX29s\nZFZhbHVlLCBfX25ld1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOWIpOaWreivpemUruaYr+WQpuWtmOWcqFxuICAgICAqIEBwYXJhbSBrZXkg6ZSu\nXG4gICAgICpcL1xuICAgIGhhc0tleShrZXkpIHtcbiAgICAgIGxldCBsb2NhRGF0YSA9IF9HTV9n\nZXRWYWx1ZShLRVksIHt9KTtcbiAgICAgIHJldHVybiBrZXkgaW4gbG9jYURhdGE7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog6Ieq5Yqo5Yik5pat6I+c5Y2V5piv5ZCm5ZCv55So77yM54S25ZCO\n5omn6KGM5Zue6LCDXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEBwYXJhbSBjYWxsYmFjayDl\nm57osINcbiAgICAgKiBAcGFyYW0gW2lzUmV2ZXJzZT1mYWxzZV0g6YCG5Y+N5Yik5pat6I+c5Y2V\n5ZCv55SoXG4gICAgICpcL1xuICAgIGV4ZWNNZW51KGtleSwgY2FsbGJhY2ssIGlzUmV2ZXJzZSA9\nIGZhbHNlKSB7XG4gICAgICBpZiAoISh0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiIHx8IHR5cGVv\nZiBrZXkgPT09IFwib2JqZWN0XCIgJiYgQXJyYXkuaXNBcnJheShrZXkpKSkge1xuICAgICAgICB0\naHJvdyBuZXcgVHlwZUVycm9yKFwia2V5IOW\/hemhu+aYr+Wtl+espuS4suaIluiAheWtl+espuS4\nsuaVsOe7hFwiKTtcbiAgICAgIH1cbiAgICAgIGxldCBydW5LZXlMaXN0ID0gW107XG4gICAgICBp\nZiAodHlwZW9mIGtleSA9PT0gXCJvYmplY3RcIiAmJiBBcnJheS5pc0FycmF5KGtleSkpIHtcbiAg\nICAgICAgcnVuS2V5TGlzdCA9IFsuLi5rZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcnVu\nS2V5TGlzdC5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgICBsZXQgdmFsdWUgPSB2b2lkIDA7XG4g\nICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcnVuS2V5TGlzdC5sZW5ndGg7IGluZGV4\nKyspIHtcbiAgICAgICAgY29uc3QgcnVuS2V5ID0gcnVuS2V5TGlzdFtpbmRleF07XG4gICAgICAg\nIGlmICghdGhpcy4kZGF0YS5kYXRhLmhhcyhydW5LZXkpKSB7XG4gICAgICAgICAgbG9nLndhcm4o\nYCR7a2V5fSDplK7kuI3lrZjlnKhgKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAg\nICAgICAgbGV0IHJ1blZhbHVlID0gUG9wc1BhbmVsLmdldFZhbHVlKHJ1bktleSk7XG4gICAgICAg\nIGlmIChpc1JldmVyc2UpIHtcbiAgICAgICAgICBydW5WYWx1ZSA9ICFydW5WYWx1ZTtcbiAgICAg\nICAgfVxuICAgICAgICBpZiAoIXJ1blZhbHVlKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAg\nIH1cbiAgICAgICAgdmFsdWUgPSBydW5WYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSkg\ne1xuICAgICAgICBjYWxsYmFjayh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog6Ieq5Yqo5Yik5pat6I+c5Y2V5piv5ZCm5ZCv55So77yM54S25ZCO5omn6KGM5Zue6LCD\n77yM5Y+q5Lya5omn6KGM5LiA5qyhXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEBwYXJhbSBj\nYWxsYmFjayDlm57osINcbiAgICAgKiBAcGFyYW0gZ2V0VmFsdWVGbiDoh6rlrprkuYnlpITnkIbo\njrflj5blvZPliY3lgLzvvIzlgLx0cnVl5piv5ZCv55So5bm25omn6KGM5Zue6LCD77yM5YC8ZmFs\nc2XmmK\/kuI3miafooYzlm57osINcbiAgICAgKiBAcGFyYW0gaGFuZGxlVmFsdWVDaGFuZ2VGbiDo\nh6rlrprkuYnlpITnkIblgLzmlLnlj5jml7bnmoTlm57osIPvvIzlgLx0cnVl5piv5ZCv55So5bm2\n5omn6KGM5Zue6LCD77yM5YC8ZmFsc2XmmK\/kuI3miafooYzlm57osINcbiAgICAgKlwvXG4gICAg\nZXhlY01lbnVPbmNlKGtleSwgY2FsbGJhY2ssIGdldFZhbHVlRm4sIGhhbmRsZVZhbHVlQ2hhbmdl\nRm4pIHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHRo\ncm93IG5ldyBUeXBlRXJyb3IoXCJrZXkg5b+F6aG75piv5a2X56ym5LiyXCIpO1xuICAgICAgfVxu\nICAgICAgaWYgKCF0aGlzLiRkYXRhLmRhdGEuaGFzKGtleSkpIHtcbiAgICAgICAgbG9nLndhcm4o\nYCR7a2V5fSDplK7kuI3lrZjlnKhgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAg\naWYgKHRoaXMuJGRhdGEub25lU3VjY2Vzc0V4ZWNNZW51LmhhcyhrZXkpKSB7XG4gICAgICAgIHJl\ndHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuJGRhdGEub25lU3VjY2Vzc0V4ZWNNZW51LnNldChr\nZXksIDEpO1xuICAgICAgbGV0IF9fZ2V0VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgIGxldCBsb2Nh\nbFZhbHVlID0gUG9wc1BhbmVsLmdldFZhbHVlKGtleSk7XG4gICAgICAgIHJldHVybiB0eXBlb2Yg\nZ2V0VmFsdWVGbiA9PT0gXCJmdW5jdGlvblwiID8gZ2V0VmFsdWVGbihrZXksIGxvY2FsVmFsdWUp\nIDogbG9jYWxWYWx1ZTtcbiAgICAgIH07XG4gICAgICBsZXQgcmVzdWx0U3R5bGVMaXN0ID0gW107\nXG4gICAgICBsZXQgZHluYW1pY1B1c2hTdHlsZU5vZGUgPSAoJHN0eWxlKSA9PiB7XG4gICAgICAg\nIGxldCBfX3ZhbHVlID0gX19nZXRWYWx1ZSgpO1xuICAgICAgICBsZXQgZHluYW1pY1Jlc3VsdExp\nc3QgPSBbXTtcbiAgICAgICAgaWYgKCRzdHlsZSBpbnN0YW5jZW9mIEhUTUxTdHlsZUVsZW1lbnQp\nIHtcbiAgICAgICAgICBkeW5hbWljUmVzdWx0TGlzdCA9IFskc3R5bGVdO1xuICAgICAgICB9IGVs\nc2UgaWYgKEFycmF5LmlzQXJyYXkoJHN0eWxlKSkge1xuICAgICAgICAgIGR5bmFtaWNSZXN1bHRM\naXN0ID0gW1xuICAgICAgICAgICAgLi4uJHN0eWxlLmZpbHRlcihcbiAgICAgICAgICAgICAgKGl0\nZW0pID0+IGl0ZW0gIT0gbnVsbCAmJiBpdGVtIGluc3RhbmNlb2YgSFRNTFN0eWxlRWxlbWVudFxu\nICAgICAgICAgICAgKVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF9fdmFs\ndWUpIHtcbiAgICAgICAgICByZXN1bHRTdHlsZUxpc3QgPSByZXN1bHRTdHlsZUxpc3QuY29uY2F0\nKGR5bmFtaWNSZXN1bHRMaXN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3IgKGxl\ndCBpbmRleCA9IDA7IGluZGV4IDwgZHluYW1pY1Jlc3VsdExpc3QubGVuZ3RoOyBpbmRleCsrKSB7\nXG4gICAgICAgICAgICBsZXQgJGNzcyA9IGR5bmFtaWNSZXN1bHRMaXN0W2luZGV4XTtcbiAgICAg\nICAgICAgICRjc3MucmVtb3ZlKCk7XG4gICAgICAgICAgICBkeW5hbWljUmVzdWx0TGlzdC5zcGxp\nY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgICB9XG4gICAgICAg\nIH1cbiAgICAgIH07XG4gICAgICBsZXQgY2hhbmdlQ2FsbEJhY2sgPSAoY3VycmVudFZhbHVlKSA9\nPiB7XG4gICAgICAgIGxldCByZXN1bHRMaXN0ID0gW107XG4gICAgICAgIGlmIChjdXJyZW50VmFs\ndWUpIHtcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gY2FsbGJhY2soY3VycmVudFZhbHVlLCBkeW5h\nbWljUHVzaFN0eWxlTm9kZSk7XG4gICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEhUTUxT\ndHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJlc3VsdExpc3QgPSBbcmVzdWx0XTtcbiAgICAg\nICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgcmVz\ndWx0TGlzdCA9IFtcbiAgICAgICAgICAgICAgLi4ucmVzdWx0LmZpbHRlcihcbiAgICAgICAgICAg\nICAgICAoaXRlbSkgPT4gaXRlbSAhPSBudWxsICYmIGl0ZW0gaW5zdGFuY2VvZiBIVE1MU3R5bGVF\nbGVtZW50XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuICAg\nICAgICB9XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCByZXN1bHRTdHlsZUxp\nc3QubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgbGV0ICRjc3MgPSByZXN1bHRTdHlsZUxp\nc3RbaW5kZXhdO1xuICAgICAgICAgICRjc3MucmVtb3ZlKCk7XG4gICAgICAgICAgcmVzdWx0U3R5\nbGVMaXN0LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgaW5kZXgtLTtcbiAgICAgICAgfVxu\nICAgICAgICByZXN1bHRTdHlsZUxpc3QgPSBbLi4ucmVzdWx0TGlzdF07XG4gICAgICB9O1xuICAg\nICAgdGhpcy5hZGRWYWx1ZUNoYW5nZUxpc3RlbmVyKFxuICAgICAgICBrZXksXG4gICAgICAgIChf\nX2tleSwgb2xkVmFsdWUsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgICAgbGV0IF9fbmV3VmFsdWUg\nPSBuZXdWYWx1ZTtcbiAgICAgICAgICBpZiAodHlwZW9mIGhhbmRsZVZhbHVlQ2hhbmdlRm4gPT09\nIFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgX19uZXdWYWx1ZSA9IGhhbmRsZVZhbHVlQ2hh\nbmdlRm4oX19rZXksIG5ld1ZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAg\nIGNoYW5nZUNhbGxCYWNrKF9fbmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAg\nbGV0IHZhbHVlID0gX19nZXRWYWx1ZSgpO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNo\nYW5nZUNhbGxCYWNrKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDn\niLblrZDoj5zljZXogZTliqjvvIzoh6rliqjliKTmlq3oj5zljZXmmK\/lkKblkK\/nlKjvvIznhLbl\nkI7miafooYzlm57osIPvvIzlj6rkvJrmiafooYzkuIDmrKFcbiAgICAgKiBAcGFyYW0ga2V5IOiP\nnOWNlemUrlxuICAgICAqIEBwYXJhbSBjaGlsZEtleSDlrZDoj5zljZXplK5cbiAgICAgKiBAcGFy\nYW0gY2FsbGJhY2sg5Zue6LCDXG4gICAgICogQHBhcmFtIHJlcGxhY2VWYWx1ZUZuIOeUqOS6juS\/\nruaUuW1haW5WYWx1Ze+8jOi\/lOWbnnVuZGVmaW5lZOWImeS4jeWBmuWkhOeQhlxuICAgICAqXC9c\nbiAgICBleGVjSW5oZXJpdE1lbnVPbmNlKGtleSwgY2hpbGRLZXksIGNhbGxiYWNrLCByZXBsYWNl\nVmFsdWVGbikge1xuICAgICAgbGV0IHRoYXQgPSB0aGlzO1xuICAgICAgY29uc3QgaGFuZGxlSW5o\nZXJpdFZhbHVlID0gKGtleTIsIGNoaWxkS2V5MikgPT4ge1xuICAgICAgICBsZXQgbWFpblZhbHVl\nID0gdGhhdC5nZXRWYWx1ZShrZXkyKTtcbiAgICAgICAgbGV0IGNoaWxkVmFsdWUgPSB0aGF0Lmdl\ndFZhbHVlKGNoaWxkS2V5Mik7XG4gICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZVZhbHVlRm4gPT09\nIFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgIGxldCBjaGFuZ2VkTWFpblZhbHVlID0gcmVwbGFj\nZVZhbHVlRm4obWFpblZhbHVlLCBjaGlsZFZhbHVlKTtcbiAgICAgICAgICBpZiAoY2hhbmdlZE1h\naW5WYWx1ZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hhbmdlZE1haW5WYWx1\nZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1haW5WYWx1ZTtcbiAg\nICAgIH07XG4gICAgICB0aGlzLmV4ZWNNZW51T25jZShcbiAgICAgICAga2V5LFxuICAgICAgICBj\nYWxsYmFjayxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBoYW5kbGVJbmhlcml0\nVmFsdWUoa2V5LCBjaGlsZEtleSk7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IHtcbiAgICAg\nICAgICByZXR1cm4gaGFuZGxlSW5oZXJpdFZhbHVlKGtleSwgY2hpbGRLZXkpO1xuICAgICAgICB9\nXG4gICAgICApO1xuICAgICAgdGhpcy5leGVjTWVudU9uY2UoXG4gICAgICAgIGNoaWxkS2V5LFxu\nICAgICAgICAoKSA9PiB7XG4gICAgICAgIH0sXG4gICAgICAgICgpID0+IGZhbHNlLFxuICAgICAg\nICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy50cmlnZ2VyTWVudVZhbHVlQ2hhbmdlKGtleSk7XG4g\nICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOagueaNrmtleeaJp+ihjOS4gOasoVxuICAgICAqIEBwYXJhbSBrZXlcbiAg\nICAgKlwvXG4gICAgb25jZUV4ZWMoa2V5LCBjYWxsYmFjaykge1xuICAgICAgaWYgKHR5cGVvZiBr\nZXkgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcImtleSDl\nv4XpobvmmK\/lrZfnrKbkuLJcIik7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy4kZGF0YS5vbmNl\nRXhlYy5oYXMoa2V5KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYWxsYmFj\naygpO1xuICAgICAgdGhpcy4kZGF0YS5vbmNlRXhlYy5zZXQoa2V5LCAxKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDmmL7npLrorr7nva7pnaLmnb9cbiAgICAgKlwvXG4gICAgc2hvd1BhbmVs\nKCkge1xuICAgICAgX19wb3BzLnBhbmVsKHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICB0\nZXh0OiBgJHtTQ1JJUFRfTkFNRX0tUEPnq6\/orr7nva5gLFxuICAgICAgICAgIHBvc2l0aW9uOiBc\nImNlbnRlclwiLFxuICAgICAgICAgIGh0bWw6IGZhbHNlLFxuICAgICAgICAgIHN0eWxlOiBcIlwi\nXG4gICAgICAgIH0sXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuZ2V0UGFuZWxDb250ZW50Q29uZmln\nKCksXG4gICAgICAgIG1hc2s6IHtcbiAgICAgICAgICBlbmFibGU6IHRydWUsXG4gICAgICAgICAg\nY2xpY2tFdmVudDoge1xuICAgICAgICAgICAgdG9DbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgIHRv\nSGlkZTogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiBQYW5l\nbFVJU2l6ZS5zZXR0aW5nLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IFBhbmVsVUlTaXplLnNldHRp\nbmcuaGVpZ2h0LFxuICAgICAgICBkcmFnOiB0cnVlLFxuICAgICAgICBvbmx5OiB0cnVlXG4gICAg\nICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmmL7npLrorr7nva7pnaLmnb9cbiAgICAg\nKlwvXG4gICAgc2hvd01QYW5lbCgpIHtcbiAgICAgIF9fcG9wcy5wYW5lbCh7XG4gICAgICAgIHRp\ndGxlOiB7XG4gICAgICAgICAgdGV4dDogYCR7U0NSSVBUX05BTUV9Leenu+WKqOerr+iuvue9rmAs\nXG4gICAgICAgICAgcG9zaXRpb246IFwiY2VudGVyXCIsXG4gICAgICAgICAgaHRtbDogZmFsc2Us\nXG4gICAgICAgICAgc3R5bGU6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAgY29udGVudDogdGhp\ncy5nZXRNUGFuZWxDb250ZW50Q29uZmlnKCksXG4gICAgICAgIG1hc2s6IHtcbiAgICAgICAgICBl\nbmFibGU6IHRydWUsXG4gICAgICAgICAgY2xpY2tFdmVudDoge1xuICAgICAgICAgICAgdG9DbG9z\nZTogdHJ1ZSxcbiAgICAgICAgICAgIHRvSGlkZTogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAg\nIH0sXG4gICAgICAgIHdpZHRoOiBQYW5lbFVJU2l6ZS5zZXR0aW5nLndpZHRoLFxuICAgICAgICBo\nZWlnaHQ6IFBhbmVsVUlTaXplLnNldHRpbmcuaGVpZ2h0LFxuICAgICAgICBkcmFnOiB0cnVlLFxu\nICAgICAgICBvbmx5OiB0cnVlXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDo\njrflj5bphY3nva7lhoXlrrlcbiAgICAgKlwvXG4gICAgZ2V0UGFuZWxDb250ZW50Q29uZmlnKCkg\ne1xuICAgICAgbGV0IGNvbmZpZ0xpc3QgPSBbXG4gICAgICAgIFNldHRpbmdVSUNvbW1vbixcbiAg\nICAgICAgU2V0dGluZ1VJQmxvZyxcbiAgICAgICAgU2V0dGluZ1VJTGluayxcbiAgICAgICAgU2V0\ndGluZ1VJSHVhV2VpQ2xvdWQsXG4gICAgICAgIFNldHRpbmdVSVdlbkt1LFxuICAgICAgICBTZXR0\naW5nVUlTb1xuICAgICAgXTtcbiAgICAgIHJldHVybiBjb25maWdMaXN0O1xuICAgIH0sXG4gICAg\nXC8qKlxuICAgICAqIOiOt+WPlumFjee9ruWGheWuuVxuICAgICAqXC9cbiAgICBnZXRNUGFuZWxD\nb250ZW50Q29uZmlnKCkge1xuICAgICAgbGV0IGNvbmZpZ0xpc3QgPSBbXG4gICAgICAgIE1TZXR0\naW5nVUlDb21tb24sXG4gICAgICAgIE1TZXR0aW5nVUlCbG9nLFxuICAgICAgICBNU2V0dGluZ1VJ\nTGluayxcbiAgICAgICAgTVNldHRpbmdVSUh1YVdlaUNsb3VkLFxuICAgICAgICBNU2V0dGluZ1VJ\nV2VuS3UsXG4gICAgICAgIE1TZXR0aW5nVUlTbyxcbiAgICAgICAgTVNldHRpbmdVSURvd25sb2Fk\nXG4gICAgICBdO1xuICAgICAgcmV0dXJuIGNvbmZpZ0xpc3Q7XG4gICAgfVxuICB9O1xuICBjb25z\ndCBTaGllbGRDU1MkNCA9IFwiXC8qIOW6lemDqOWFjei0ueaKvXh4eOWlluWTgeW5v+WRiiAqXC9c\nXHJcXG5kaXYuc2lkZXJiYXItYm94LFxcclxcblwvKiDljY7kuLrlvIDlj5HogIXogZTnm5\/liqDl\nhaXnpL7ljLogKlwvXFxyXFxuZGl2LnVzZXItZGVzYy51c2VyLWRlc2MtZml4IHtcXHJcXG4gIGRp\nc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IENTRE5IdWFX\nZWlDbG91ZCA9IHtcbiAgICBpbml0KCkge1xuICAgICAgYWRkU3R5bGUoU2hpZWxkQ1NTJDQpO1xu\nICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJjc2RuLWh1YS13ZWktY2xv\ndWQtc2hpZWxkQ2xvdWREZXZlbG9wZXJUYXNrQ2hhbGxlbmdlRXZlbnRcIixcbiAgICAgICAgKCkg\nPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNoaWVsZENsb3VkRGV2ZWxvcGVyVGFza0NoYWxs\nZW5nZUV2ZW50KCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01l\nbnVPbmNlKFwiY3Nkbi1odWEtd2VpLWNsb3VkLWF1dG9FeHBhbmRDb250ZW50XCIsICgpID0+IHtc\nbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b0V4cGFuZENvbnRlbnQoKTtcbiAgICAgIH0pO1xuICAg\nICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJjc2RuLWh1YS13ZWktY2xvdWQt\nc2hpZWxkTGVmdEZsb2F0aW5nQnV0dG9uXCIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBy\nZXR1cm4gdGhpcy5zaGllbGRMZWZ0RmxvYXRpbmdCdXR0b24oKTtcbiAgICAgICAgfVxuICAgICAg\nKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJjc2RuLWh1YS13ZWktY2xvdWQtYmxv\nY2tSaWdodENvbHVtblwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJsb2NrUmlnaHRD\nb2x1bW4oKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAg\nICAgXCJjc2RuLWh1YS13ZWktY2xvdWQtYmxvY2tSZWNvbW1lbmRlZENvbnRlbnRBdFRoZUJvdHRv\nbVwiLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tSZWNvbW1l\nbmRlZENvbnRlbnRBdFRoZUJvdHRvbSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgUG9w\nc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJjc2RuLWh1YS13ZWktY2xvdWQtc2hpZWxk\nVGhlQm90dG9tRm9yTW9yZVJlY29tbWVuZGF0aW9uc1wiLFxuICAgICAgICAoKSA9PiB7XG4gICAg\nICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkVGhlQm90dG9tRm9yTW9yZVJlY29tbWVuZGF0aW9ucygp\nO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiHquWKqOWx\nleW8gOWGheWuuVxuICAgICAqXC9cbiAgICBhdXRvRXhwYW5kQ29udGVudCgpIHtcbiAgICAgIGxv\nZy5pbmZvKFwi6Ieq5Yqo5bGV5byA5YWo5paHXCIpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAg\nQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcImRpdi5hcnRpY2xlLXNob3ctbW9yZVwiKSxcbiAgICAg\nICAgYWRkU3R5bGUoYFxuXHRcdFx0XC8qIOiHquWKqOWxleW8gOWFqOaWhyAqXC9cblx0XHRcdC5t\nYWluLWNvbnRlbnQgLnVzZXItYXJ0aWNsZXtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvICFpbXBvcnRh\nbnQ7XG5cdFx0XHRcdG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0XHRg\nKVxuICAgICAgXTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3kupHlvIDlj5HogIXk\nu7vliqHmjJHmiJjmtLvliqhcbiAgICAgKlwvXG4gICAgc2hpZWxkQ2xvdWREZXZlbG9wZXJUYXNr\nQ2hhbGxlbmdlRXZlbnQoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUveS6keW8gOWPkeiAheS7\nu+WKoeaMkeaImOa0u+WKqFwiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NT\nKFwiLmx1Y2stZHJhdy1tb2RhbC13YXJwXCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWx\nj+iUveW3puS+p+aCrOa1ruaMiemSrlxuICAgICAqXC9cbiAgICBzaGllbGRMZWZ0RmxvYXRpbmdC\ndXR0b24oKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUveW3puS+p+aCrOa1ruaMiemSru+8jOWM\nheaLrOW9k+WJjemYheivu+mHj+OAgeeCuei1nuaMiemSruOAgeivhOiuuuaMiemSruOAgeWIhuS6\nq+aMiemSrlwiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiZGl2LnRv\nb2xiYXItd3JhcHBlci5hcnRpY2xlLWludGVyYWN0LWJhclwiKTtcbiAgICB9LFxuICAgIFwvKipc\nbiAgICAgKiDlsY\/olL3lj7PkvqfmoI9cbiAgICAgKlwvXG4gICAgYmxvY2tSaWdodENvbHVtbigp\nIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95Y+z5L6n5qCP77yM5YyF5ous55u45YWz5Lqn5ZOB\nLea0u+WKqOaXpeWOhi3ov5DokKXmtLvliqgt54Ot6Zeo5qCH562+XCIpO1xuICAgICAgcmV0dXJu\nIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCJkaXYucGFnZS1ob21lLXJpZ2h0LmRwLWFzaWRlLXJp\nZ2h0XCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveW6lemDqOaOqOiNkOWGheWu\nuVxuICAgICAqXC9cbiAgICBibG9ja1JlY29tbWVuZGVkQ29udGVudEF0VGhlQm90dG9tKCkge1xu\nICAgICAgbG9nLmluZm8oXCLlsY\/olL3lupXpg6jmjqjojZDlhoXlrrlcIik7XG4gICAgICByZXR1\ncm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhcImRpdi5yZWNvbW1lbmQtY2FyZC1ib3hcIik7XG4g\nICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS95bqV6YOo5pu05aSa5o6o6I2QXG4gICAgICpc\nL1xuICAgIHNoaWVsZFRoZUJvdHRvbUZvck1vcmVSZWNvbW1lbmRhdGlvbnMoKSB7XG4gICAgICBs\nb2cuaW5mbyhcIuWxj+iUveW6lemDqOabtOWkmuaOqOiNkFwiKTtcbiAgICAgIHJldHVybiBDb21t\nb25VdGlsLmFkZEJsb2NrQ1NTKFwiZGl2Lm1vcmUtYXJ0aWNsZVwiKTtcbiAgICB9XG4gIH07XG4g\nIGNvbnN0IEJsb2dTaGllbGRDU1MgPSBcIi5lY29tbWVuZC1pdGVtLWJveC5yZWNvbW1lbmQtcmVj\nb21tZW5kLWJveCxcXHJcXG4ubG9naW4tbWFyayxcXHJcXG4ub3B0LWJveC50ZXh0LWNlbnRlcixc\nXHJcXG4ubGVmdFBvcCxcXHJcXG4jY3Nkbi1zaG9wLXdpbmRvdyxcXHJcXG4udG9vbGJhci1hZHZl\ncnQsXFxyXFxuLmhpZGUtYXJ0aWNsZS1ib3gsXFxyXFxuLnVzZXItZGVzYy51c2VyLWRlc2MtZml4\nLFxcclxcbi5yZWNvbW1lbmQtY2FyZC1ib3gsXFxyXFxuLm1vcmUtYXJ0aWNsZSxcXHJcXG4uYXJ0\naWNsZS1zaG93LW1vcmUsXFxyXFxuI2NzZG4tdG9vbGJhci1wcm9maWxlLW5vbG9naW4sXFxyXFxu\nLmd1aWRlLXJyLWZpcnN0LFxcclxcbiNyZWNvbW1lbmQtaXRlbS1ib3gtdG93LFxcclxcblwvKiDl\nj5Hmlofnq6Dlvpfljp\/lipvliIblm77niYfmj5DnpLogKlwvXFxyXFxuZGl2LmNzZG4tdG9vbGJh\nci1jcmVhdGl2ZS1tcCxcXHJcXG5cLyog6ZiF6K+757uI54K577yM5Yib5L2c6LW36Iiq77yM5oKo\n5Y+v5Lul5pKw5YaZ5b+D5b6X5oiW5pGY5b2V5paH56ug6KaB54K55YaZ56+H5Y2a5paH44CCICpc\nL1xcclxcbiN0b29sQmFyQm94IGRpdi53cml0ZS1ndWlkZS1idXR0b20tYm94LFxcclxcblwvKiDo\np4nlvpfov5jkuI3plJk\/IOS4gOmUruaUtuiXjyAqXC9cXHJcXG51bC50b29sYm94LWxpc3QgZGl2\nLnRvb2wtYWN0aXZlLWxpc3QsXFxyXFxuXC8qIOWPs+i+ueaMiemSrue7hOeahOacgOS4iumdouea\nhOWIm+S9nOivnemimCAqXC9cXHJcXG5kaXYuY3Nkbi1zaWRlLXRvb2xiYXIgLmFjdGl2aXR5LXN3\naXBlci1ib3gsXFxyXFxuLnNpZGV0b29sLXdyaXRlZ3VpZGUtYm94IC50aXAtYm94LFxcclxcblwv\nKiDlj7PkuIvop5LnmoTnmbvlvZXmj5DnpLogKlwvXFxyXFxuLnBhc3Nwb3J0LWxvZ2luLXRpcC1j\nb250YWluZXIsXFxyXFxuXC8qIOWFqOWxj+WPjOWNgeS4gOe6ouWMhSAqXC9cXHJcXG4uY3Nkbi1y\nZWFwY2stc2VsZWN0IHtcXHJcXG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxy\nXFxuXCI7XG4gIGNvbnN0IEJsb2dDU1MgPSBcIlwvKi5ibG9nX2NvbnRhaW5lcl9hc2lkZSxcXHJc\nXG4jbmF2IHtcXHJcXG5cdG1hcmdpbi1sZWZ0OiAtNDVweDtcXHJcXG59XFxyXFxuLnJlY29tbWVu\nZC1yaWdodC5hbGlnbi1pdGVtcy1zdHJldGNoLmNsZWFyZml4LFxcclxcbi5kbF9yaWdodF9maXhl\nZCB7XFxyXFxuXHRtYXJnaW4tbGVmdDogNDVweDtcXHJcXG59KlwvXFxyXFxuXCI7XG4gIGNvbnN0\nIEJsb2dBcnRpY2xlQ2VudGVyQ1NTID0gJyNtYWluQm94IG1haW4ge1xcclxcblx0d2lkdGg6IGlu\naGVyaXQgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXC8qIOW9k+aWh+eroOWQkeS4i+a7muWKqOaX\ntu+8jOinpuWPkeW3puS+p+S\/oeaBr+aCrOa1riAqXC9cXHJcXG5hc2lkZS5ibG9nX2NvbnRhaW5l\ncl9hc2lkZVtzdHlsZSo9XCJwb3NpdGlvbjogZml4ZWQ7XCJdIHtcXHJcXG5cdGRpc3BsYXk6IG5v\nbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXFxyXFxuQG1lZGlhIChtaW4td2lkdGg6IDEzMjBw\neCkgYW5kIChtYXgtd2lkdGg6IDEzODBweCkge1xcclxcblx0Lm5vZGF0YSAuY29udGFpbmVyIHtc\nXHJcXG5cdFx0d2lkdGg6IDkwMHB4ICFpbXBvcnRhbnQ7XFxyXFxuXHR9XFxyXFxuXFxyXFxuXHQu\nbm9kYXRhIC5jb250YWluZXIgbWFpbiB7XFxyXFxuXHRcdHdpZHRoOiA5MDBweDtcXHJcXG5cdH1c\nXHJcXG5cXHJcXG5cdC5ub2RhdGEgLmNvbnRhaW5lciBtYWluICNwY0NvbW1lbnRCb3ggcHJlID4g\nb2wuaGxqcy1sbiB7XFxyXFxuXHRcdHdpZHRoOiA0OTBweCAhaW1wb3J0YW50O1xcclxcblx0fVxc\nclxcblxcclxcblx0Lm5vZGF0YSAuY29udGFpbmVyIG1haW4gLmFydGljbGVDb25Eb3duU291cmNl\nIHtcXHJcXG5cdFx0d2lkdGg6IDUwMHB4O1xcclxcblx0fVxcclxcbn1cXHJcXG5cXHJcXG5AbWVk\naWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMzIwcHgpIHtcXHJcXG5cdC5ub2RhdGEgLmNvbnRh\naW5lciB7XFxyXFxuXHRcdHdpZHRoOiA3NjBweCAhaW1wb3J0YW50O1xcclxcblx0fVxcclxcblxc\nclxcblx0Lm5vZGF0YSAuY29udGFpbmVyIG1haW4ge1xcclxcblx0XHR3aWR0aDogNzYwcHg7XFxy\nXFxuXHR9XFxyXFxuXFxyXFxuXHQubm9kYXRhIC5jb250YWluZXIgbWFpbiAjcGNDb21tZW50Qm94\nIHByZSA+IG9sLmhsanMtbG4ge1xcclxcblx0XHR3aWR0aDogNDkwcHggIWltcG9ydGFudDtcXHJc\nXG5cdH1cXHJcXG5cXHJcXG5cdC5ub2RhdGEgLmNvbnRhaW5lciBtYWluIC50b29sYm94LWxpc3Qg\nLnRvb2wtcmV3YXJkIHtcXHJcXG5cdFx0ZGlzcGxheTogbm9uZTtcXHJcXG5cdH1cXHJcXG5cXHJc\nXG5cdC5ub2RhdGFcXHJcXG5cdFx0LmNvbnRhaW5lclxcclxcblx0XHRtYWluXFxyXFxuXHRcdC5t\nb3JlLXRvb2xib3gtbmV3XFxyXFxuXHRcdC50b29sYm94LWxlZnRcXHJcXG5cdFx0LnByb2ZpbGUt\nYm94XFxyXFxuXHRcdC5wcm9maWxlLW5hbWUge1xcclxcblx0XHRtYXgtd2lkdGg6IDEyOHB4O1xc\nclxcblx0fVxcclxcblxcclxcblx0Lm5vZGF0YSAuY29udGFpbmVyIG1haW4gLmFydGljbGVDb25E\nb3duU291cmNlIHtcXHJcXG5cdFx0d2lkdGg6IDQyMHB4O1xcclxcblx0fVxcclxcbn1cXHJcXG5c\nXHJcXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMzgwcHgpIHtcXHJcXG5cdC5ub2Rh\ndGEgLmNvbnRhaW5lciB7XFxyXFxuXHRcdHdpZHRoOiAxMDEwcHggIWltcG9ydGFudDtcXHJcXG5c\ndH1cXHJcXG5cXHJcXG5cdC5ub2RhdGEgLmNvbnRhaW5lciBtYWluIHtcXHJcXG5cdFx0d2lkdGg6\nIDEwMTBweDtcXHJcXG5cdH1cXHJcXG5cXHJcXG5cdC5ub2RhdGEgLmNvbnRhaW5lciBtYWluICNw\nY0NvbW1lbnRCb3ggcHJlID4gb2wuaGxqcy1sbiB7XFxyXFxuXHRcdHdpZHRoOiA0OTBweCAhaW1w\nb3J0YW50O1xcclxcblx0fVxcclxcblxcclxcblx0Lm5vZGF0YSAuY29udGFpbmVyIG1haW4gLmFy\ndGljbGVDb25Eb3duU291cmNlIHtcXHJcXG5cdFx0d2lkdGg6IDU2MHB4O1xcclxcblx0fVxcclxc\nbn1cXHJcXG5cXHJcXG5AbWVkaWEgKG1pbi13aWR0aDogMTU1MHB4KSBhbmQgKG1heC13aWR0aDog\nMTcwMHB4KSB7XFxyXFxuXHQubm9kYXRhIC5jb250YWluZXIge1xcclxcblx0XHR3aWR0aDogODIw\ncHggIWltcG9ydGFudDtcXHJcXG5cdH1cXHJcXG5cXHJcXG5cdC5ub2RhdGEgLmNvbnRhaW5lciBt\nYWluIHtcXHJcXG5cdFx0d2lkdGg6IDgyMHB4O1xcclxcblx0fVxcclxcblxcclxcblx0Lm5vZGF0\nYSAuY29udGFpbmVyIG1haW4gI3BjQ29tbWVudEJveCBwcmUgPiBvbC5obGpzLWxuIHtcXHJcXG5c\ndFx0d2lkdGg6IDY5MHB4ICFpbXBvcnRhbnQ7XFxyXFxuXHR9XFxyXFxuXFxyXFxuXHQubm9kYXRh\nIC5jb250YWluZXIgbWFpbiAuYXJ0aWNsZUNvbkRvd25Tb3VyY2Uge1xcclxcblx0XHR3aWR0aDog\nNTAwcHg7XFxyXFxuXHR9XFxyXFxufVxcclxcblxcclxcbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4t\nd2lkdGg6IDE3MDBweCkge1xcclxcblx0Lm5vZGF0YSAuY29udGFpbmVyIHtcXHJcXG5cdFx0d2lk\ndGg6IDEwMTBweCAhaW1wb3J0YW50O1xcclxcblx0fVxcclxcblxcclxcblx0Lm5vZGF0YSAuY29u\ndGFpbmVyIG1haW4ge1xcclxcblx0XHR3aWR0aDogMTAxMHB4O1xcclxcblx0fVxcclxcblxcclxc\nblx0Lm5vZGF0YSAuY29udGFpbmVyIG1haW4gI3BjQ29tbWVudEJveCBwcmUgPiBvbC5obGpzLWxu\nIHtcXHJcXG5cdFx0d2lkdGg6IDY5MHB4ICFpbXBvcnRhbnQ7XFxyXFxuXHR9XFxyXFxuXFxyXFxu\nXHQubm9kYXRhIC5jb250YWluZXIgbWFpbiAuYXJ0aWNsZUNvbkRvd25Tb3VyY2Uge1xcclxcblx0\nXHR3aWR0aDogNTYwcHg7XFxyXFxuXHR9XFxyXFxufVxcclxcbic7XG4gIGNvbnN0IENTRE5CbG9n\nUmlnaHRUb29sQmFyID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVP\nbmNlKFxuICAgICAgICBcImNzZG4tYmxvZy1yaWdodFRvb2xiYXJFbmFibGVcIixcbiAgICAgICAg\nKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnNoaWVsZFJpZ2h0VG9vbGJhcigpO1xuICAg\nICAgICB9LFxuICAgICAgICAoXywgdmFsdWUpID0+IHtcbiAgICAgICAgICByZXR1cm4gIXZhbHVl\nO1xuICAgICAgICB9LFxuICAgICAgICAoXywgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgICByZXR1\ncm4gIW5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNN\nZW51T25jZShcImNzZG4tYmxvZy1yaWdodFRvb2xiYXJDcmVhdGl2ZUNlbnRlclwiLCAoKSA9PiB7\nXG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZENyZWF0aXZlQ2VudGVyKCk7XG4gICAgICB9KTtc\nbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJjc2RuLWJsb2ctcmlnaHRUb29sYmFyU2hv\nd09yU2lkZWJhclwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZFNob3dPclNp\nZGViYXIoKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4t\nYmxvZy1yaWdodFRvb2xiYXJCZWdpbm5lckd1aWRhbmNlXCIsICgpID0+IHtcbiAgICAgICAgcmV0\ndXJuIHRoaXMuc2hpZWxkQmVnaW5uZXJHdWlkYW5jZSgpO1xuICAgICAgfSk7XG4gICAgICBQb3Bz\nUGFuZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLXJpZ2h0VG9vbGJhckN1c3RvbWVyU2Vydmlj\nZVwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZEN1c3RvbWVyU2VydmljZSgp\nO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLXJp\nZ2h0VG9vbGJhclJlcG9ydFwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZFJl\ncG9ydCgpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1i\nbG9nLXJpZ2h0VG9vbGJhckJhY2tUb1RvcFwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlz\nLnNoaWVsZEJhY2tUb1RvcCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmluaXRSaWdodFRvb2xi\nYXJPZmZzZXQoKTtcbiAgICAgIGRvbXV0aWxzLnJlYWR5KCgpID0+IHtcbiAgICAgICAgUG9wc1Bh\nbmVsLmV4ZWNNZW51T25jZShcImNzZG4tYmxvZy1hZGRHb3RvUmVjb21tYW5kQnV0dG9uXCIsICgp\nID0+IHtcbiAgICAgICAgICB0aGlzLmFkZEdvdG9SZWNvbW1hbmRCdXR0b24oKTtcbiAgICAgICAg\nfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDjgJDmt7vliqDjgJHliY3l\nvoDor4TorrrmjInpkq7vvIzlnKjov5Tlm57pobbpg6jnmoTkuIvpnaJcbiAgICAgKlwvXG4gICAg\nYWRkR290b1JlY29tbWFuZEJ1dHRvbigpIHtcbiAgICAgIGxvZy5pbmZvKFwi44CQ5re75Yqg44CR\n5YmN5b6A6K+E6K665oyJ6ZKu77yM5Zyo6L+U5Zue6aG26YOo55qE5LiK6Z2iXCIpO1xuICAgICAg\nbGV0IGdvdG9SZWNvbW1hbmROb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4g\nICAgICBnb3RvUmVjb21tYW5kTm9kZS5jbGFzc05hbWUgPSBcIm9wdGlvbi1ib3hcIjtcbiAgICAg\nIGdvdG9SZWNvbW1hbmROb2RlLnNldEF0dHJpYnV0ZShcImRhdGEtdHlwZVwiLCBcImdvcmVjb21t\nYW5kXCIpO1xuICAgICAgZ290b1JlY29tbWFuZE5vZGUuaW5uZXJIVE1MID0gYDxzcGFuIGNsYXNz\nPVwic2hvdy10eHRcIiBzdHlsZT1cImRpc3BsYXk6ZmxleDtvcGFjaXR5OjEwMDtcIj7liY3lvoA8\nYnI+6K+E6K66PFwvc3Bhbj5gO1xuICAgICAgZ290b1JlY29tbWFuZE5vZGUuYWRkRXZlbnRMaXN0\nZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICBsZXQgdG9vbGJhckJveEVsZW1l\nbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI3Rvb2xCYXJCb3hcIik7XG4gICAgICAgIGlm\nICghdG9vbGJhckJveEVsZW1lbnQgfHwgIXRvb2xiYXJCb3hFbGVtZW50LmdldENsaWVudFJlY3Rz\nKCkubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0ICRwY0NvbW1lbnRCb3ggPSAkKFwiI3BjQ29tbWVu\ndEJveFwiKTtcbiAgICAgICAgICBpZiAoJHBjQ29tbWVudEJveCAmJiAkcGNDb21tZW50Qm94Lmdl\ndENsaWVudFJlY3RzKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0b29sYmFyQm94RWxlbWVudCA9\nICRwY0NvbW1lbnRCb3g7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvZy5lcnJv\ncihcIuivhOiuuuWMuuWkhOS6jumakOiXj+eKtuaAgVwiKTtcbiAgICAgICAgICAgIHJldHVybjtc\nbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbG9nLmluZm8oXCLmu5rliqjliLDor4To\nrrpcIik7XG4gICAgICAgIGxldCB0b29sYmFyQm94T2Zmc2V0VG9wID0gdG9vbGJhckJveEVsZW1l\nbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICAg\nIGxldCBjc2RuVG9vbEJhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAg\nICAgIFwiI2NzZG4tdG9vbGJhclwiXG4gICAgICAgICk7XG4gICAgICAgIGxldCBjc2RuVG9vbEJh\nclN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGNzZG5Ub29sQmFyRWxlbWVudCk7XG4g\nICAgICAgIGxldCBjc2RuVG9vbEJhckhlaWdodCA9IGNzZG5Ub29sQmFyRWxlbWVudC5jbGllbnRI\nZWlnaHQgLSBwYXJzZUZsb2F0KGNzZG5Ub29sQmFyU3R5bGVzLnBhZGRpbmdUb3ApIC0gcGFyc2VG\nbG9hdChjc2RuVG9vbEJhclN0eWxlcy5wYWRkaW5nQm90dG9tKTtcbiAgICAgICAgd2luZG93LnNj\ncm9sbFRvKHtcbiAgICAgICAgICB0b3A6IHRvb2xiYXJCb3hPZmZzZXRUb3AgLSBjc2RuVG9vbEJh\nckhlaWdodCAtIDgsXG4gICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICBiZWhhdmlvcjogXCJz\nbW9vdGhcIlxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIu\nY3Nkbi1zaWRlLXRvb2xiYXJcIikudGhlbigoKSA9PiB7XG4gICAgICAgIGxldCB0YXJnZXRFbGVt\nZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBcIi5jc2RuLXNpZGUtdG9v\nbGJhciBhOm50aC1sYXN0LWNoaWxkKDIpXCJcbiAgICAgICAgKTtcbiAgICAgICAgdGFyZ2V0RWxl\nbWVudC5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShcbiAgICAgICAgICBnb3RvUmVjb21tYW5k\nTm9kZSxcbiAgICAgICAgICB0YXJnZXRFbGVtZW50Lm5leHRTaWJsaW5nXG4gICAgICAgICk7XG4g\nICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDliJ3lp4vljJblj7Pkvqflt6Xlhbfm\noI\/nmoTlgY\/np7vvvIh0b3DjgIFyaWdodO+8iVxuICAgICAqXC9cbiAgICBpbml0UmlnaHRUb29s\nYmFyT2Zmc2V0KCkge1xuICAgICAgbG9nLmluZm8oXCLliJ3lp4vljJblj7Pkvqflt6XlhbfmoI\/n\nmoTlgY\/np7vvvIh0b3DjgIFyaWdodO+8iVwiKTtcbiAgICAgIGFkZFN0eWxlKFxuICAgICAgICBc\nLypjc3MqXC9cbiAgICAgICAgYFxuICAgICAgICAuY3Nkbi1zaWRlLXRvb2xiYXJ7XG4gICAgICAg\nICAgbGVmdDogdW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICBgXG4gICAgICAp\nO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIuY3Nkbi1zaWRlLXRvb2xiYXJcIikudGhlbigoJHNp\nZGVUb29sYmFyKSA9PiB7XG4gICAgICAgIGRvbXV0aWxzLmNzcygkc2lkZVRvb2xiYXIsIHtcbiAg\nICAgICAgICB0b3A6IHBhcnNlSW50KFBvcHNQYW5lbC5nZXRWYWx1ZShcImNzZG4tYmxvZy1yaWdo\ndFRvb2xiYXJUb3BPZmZzZXRcIikpICsgXCJweFwiLFxuICAgICAgICAgIHJpZ2h0OiBwYXJzZUlu\ndChQb3BzUGFuZWwuZ2V0VmFsdWUoXCJjc2RuLWJsb2ctcmlnaHRUb29sYmFyUmlnaHRPZmZzZXRc\nIikpICsgXCJweFwiXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog5bGP6JS95Y+z5L6n5bel5YW35qCPXG4gICAgICpcL1xuICAgIHNoaWVsZFJpZ2h0VG9v\nbGJhcigpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS95Y+z5L6n5bel5YW35qCPXCIpO1xuICAg\nICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoYGRpdi5jc2RuLXNpZGUtdG9vbGJhcmAp\nO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOOAkOWxj+iUveOAkeWIm+S9nOS4reW\/g1xuICAg\nICAqXC9cbiAgICBzaGllbGRDcmVhdGl2ZUNlbnRlcigpIHtcbiAgICAgIGxvZy5pbmZvKFwi44CQ\n5bGP6JS944CR5Yib5L2c5Lit5b+DXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxv\nY2tDU1MoXCIuY3Nkbi1zaWRlLXRvb2xiYXIgLnNpZGV0b29sLXdyaXRlZ3VpZGUtYm94XCIpO1xu\nICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOOAkOWxj+iUveOAkeaYvuekulwv6ZqQ6JeP5L6n5qCP\nXG4gICAgICpcL1xuICAgIHNoaWVsZFNob3dPclNpZGViYXIoKSB7XG4gICAgICBsb2cuaW5mbyhc\nIuOAkOWxj+iUveOAkeaYvuekulwv6ZqQ6JeP5L6n5qCPXCIpO1xuICAgICAgcmV0dXJuIENvbW1v\nblV0aWwuYWRkQmxvY2tDU1MoXCIuY3Nkbi1zaWRlLXRvb2xiYXIgYS5zaWRlY29sdW1uXCIpO1xu\nICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOOAkOWxj+iUveOAkeaWsOaJi+W8leWvvFxuICAgICAq\nXC9cbiAgICBzaGllbGRCZWdpbm5lckd1aWRhbmNlKCkge1xuICAgICAgbG9nLmluZm8oXCLjgJDl\nsY\/olL3jgJHmlrDmiYvlvJXlr7xcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9j\na0NTUyhcbiAgICAgICAgJy5jc2RuLXNpZGUtdG9vbGJhciBhLm9wdGlvbi1ib3hbZGF0YS10eXBl\nPVwiZ3VpZGVcIl0nXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOOAkOWxj+iU\nveOAkeWuouacjVxuICAgICAqXC9cbiAgICBzaGllbGRDdXN0b21lclNlcnZpY2UoKSB7XG4gICAg\nICBsb2cuaW5mbyhcIuOAkOWxj+iUveOAkeWuouacjVwiKTtcbiAgICAgIHJldHVybiBDb21tb25V\ndGlsLmFkZEJsb2NrQ1NTKFxuICAgICAgICAnLmNzZG4tc2lkZS10b29sYmFyIGEub3B0aW9uLWJv\neFtkYXRhLXR5cGU9XCJjc1wiXSdcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n44CQ5bGP6JS944CR5Li+5oqlXG4gICAgICpcL1xuICAgIHNoaWVsZFJlcG9ydCgpIHtcbiAgICAg\nIGxvZy5pbmZvKFwi44CQ5bGP6JS944CR5Li+5oqlXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0\naWwuYWRkQmxvY2tDU1MoXG4gICAgICAgICcuY3Nkbi1zaWRlLXRvb2xiYXIgYS5vcHRpb24tYm94\nW2RhdGEtdHlwZT1cInJlcG9ydFwiXSdcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAg\nICog44CQ5bGP6JS944CR6L+U5Zue6aG26YOoXG4gICAgICpcL1xuICAgIHNoaWVsZEJhY2tUb1Rv\ncCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi44CQ5bGP6JS944CR6L+U5Zue6aG26YOoXCIpO1xuICAg\nICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXG4gICAgICAgICcuY3Nkbi1zaWRlLXRv\nb2xiYXIgYS5vcHRpb24tYm94W2RhdGEtdHlwZT1cImdvdG9wXCJdJ1xuICAgICAgKTtcbiAgICB9\nXG4gIH07XG4gIGNvbnN0IENTRE5CbG9nID0ge1xuICAgIGluaXQoKSB7XG4gICAgICB0aGlzLmFk\nZENTUygpO1xuICAgICAgQ1NETkJsb2dSaWdodFRvb2xCYXIuaW5pdCgpO1xuICAgICAgUG9wc1Bh\nbmVsLmV4ZWNNZW51T25jZShcImNzZG4tYmxvZy1hcnRpY2xlQ2VudGVyXCIsICgpID0+IHtcbiAg\nICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNlbnRlcigpO1xuICAgICAgfSk7XG4gICAgICBQb3Bz\nUGFuZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLXNoaWVsZExvZ2luRGlhbG9nXCIsICgpID0+\nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkTG9naW5EaWFsb2coKTtcbiAgICAgIH0pO1xu\nICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4tYmxvZy1hdXRvRXhwYW5kQ29udGVu\ndFwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9FeHBhbmRDb250ZW50KCk7XG4g\nICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJjc2RuLWJsb2ctYXV0b0V4\ncGFuZENvZGVDb250ZW50XCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b0V4cGFu\nZENvZGVDb250ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2Uo\nXG4gICAgICAgIFwiY3Nkbi1ibG9nLWJsb2NrQ29tbWVudFwiLFxuICAgICAgICAoKSA9PiB7XG4g\nICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tDb21tZW50KCk7XG4gICAgICAgIH0sXG4gICAgICAg\nIChfLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdmFsdWU7XG4gICAgICAgIH0sXG4g\nICAgICAgIChfLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhbmV3VmFsdWU7XG4g\nICAgICAgIH1cbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFxuICAgICAg\nICBcImNzZG4tYmxvZy1ib3R0b21SZWNvbW1lbmRBcnRpY2xlRW5hYmxlXCIsXG4gICAgICAgICgp\nID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRCb3R0b21SZWNvbW1lbmRBcnRpY2xl\nKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChfLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgIHJldHVy\nbiAhdmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIChfLCBuZXdWYWx1ZSkgPT4ge1xuICAgICAg\nICAgIHJldHVybiAhbmV3VmFsdWU7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBQb3BzUGFu\nZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLXNoaWVsZEJvdHRvbVNraWxsVHJlZVwiLCAoKSA9\nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZEJvdHRvbVNraWxsVHJlZSgpO1xuICAgICAg\nfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLXNoaWVsZEJvdHRv\nbUZsb2F0aW5nVG9vbGJhclwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZEJv\ndHRvbUZsb2F0aW5nVG9vbGJhcigpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01l\nbnVPbmNlKFwiY3Nkbi1ibG9nLXNoaWVsZExlZnRCbG9nQ29udGFpbmVyQXNpZGVcIiwgKCkgPT4g\ne1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRMZWZ0QmxvZ0NvbnRhaW5lckFzaWRlKCk7XG4g\nICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJjc2RuLWJsb2ctc2hpZWxk\nUmlnaHREaXJlY3RvcnlJbmZvcm1hdGlvblwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlz\nLnNoaWVsZFJpZ2h0RGlyZWN0b3J5SW5mb3JtYXRpb24oKTtcbiAgICAgIH0pO1xuICAgICAgUG9w\nc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4tYmxvZy1zaGllbGRUb3BUb29sYmFyXCIsICgpID0+\nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkVG9wVG9vbGJhcigpO1xuICAgICAgfSk7XG4g\nICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLXNoaWVsZEFydGljbGVTZWFy\nY2hUaXBcIiwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRBcnRpY2xlU2VhcmNo\nVGlwKCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJjc2RuLWJs\nb2ctYWxsb3dTZWxlY3RDb250ZW50XCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxs\nb3dTZWxlY3RDb250ZW50KCk7XG4gICAgICB9KTtcbiAgICAgIGRvbXV0aWxzLnJlYWR5KCgpID0+\nIHtcbiAgICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4tYmxvZy1yZW1vdmVDbGlw\nYm9hcmRIaWphY2tpbmdcIiwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVtb3ZlQ2xpcGJvYXJk\nSGlqYWNraW5nKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNl\nKFwiY3Nkbi1ibG9nLXVuQmxvY2tDb3B5XCIsICgpID0+IHtcbiAgICAgICAgICB0aGlzLnVuQmxv\nY2tDb3B5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwi\nY3Nkbi1ibG9nLWlkZW50aXR5Q1NETkRvd25sb2FkXCIsICgpID0+IHtcbiAgICAgICAgICB0aGlz\nLmlkZW50aXR5Q1NETkRvd25sb2FkKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBQb3BzUGFuZWwu\nZXhlY01lbnVPbmNlKFwiY3Nkbi1ibG9nLWNsaWNrUHJlQ29kZUF1dG9tYXRpY2FsbHlcIiwgKCkg\nPT4ge1xuICAgICAgICAgIHRoaXMuY2xpY2tQcmVDb2RlQXV0b21hdGljYWxseSgpO1xuICAgICAg\nICB9KTtcbiAgICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4tYmxvZy1yZXN0b3Jl\nQ29tbWVudHNcIiwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzdG9yZUNvbW1lbnRzKCk7XG4g\nICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5re75Yqg5bGP\n6JS9Q1NT5ZKM5Yqf6IO9Q1NTXG4gICAgICpcL1xuICAgIGFkZENTUygpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi5re75Yqg5bGP6JS9Q1NT5ZKM5Yqf6IO9Q1NTXCIpO1xuICAgICAgcmV0dXJuIFthZGRT\ndHlsZShCbG9nU2hpZWxkQ1NTKSwgYWRkU3R5bGUoQmxvZ0NTUyldO1xuICAgIH0sXG4gICAgXC8q\nKlxuICAgICAqIOWOu+mZpOWJqui0tOadv+WKq+aMgVxuICAgICAqXC9cbiAgICByZW1vdmVDbGlw\nYm9hcmRIaWphY2tpbmcoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWOu+mZpOWJqui0tOadv+WKq+aM\ngVwiKTtcbiAgICAgIGxldCAkYXJ0aWNsZV9jb3B5cmlnaHQgPSBkb2N1bWVudC5xdWVyeVNlbGVj\ndG9yKFwiLmFydGljbGUtY29weXJpZ2h0XCIpO1xuICAgICAgaWYgKCRhcnRpY2xlX2NvcHlyaWdo\ndCkge1xuICAgICAgICAkYXJ0aWNsZV9jb3B5cmlnaHQucmVtb3ZlKCk7XG4gICAgICB9XG4gICAg\nICBpZiAoX3Vuc2FmZVdpbmRvdy5hcnRpY2xlVHlwZSkge1xuICAgICAgICBfdW5zYWZlV2luZG93\nLmFydGljbGVUeXBlID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChfdW5zYWZlV2luZG93LmNzZG4g\nJiYgX3Vuc2FmZVdpbmRvdy5jc2RuLmNvcHlyaWdodCAmJiBfdW5zYWZlV2luZG93LmNzZG4uY29w\neXJpZ2h0LnRleHREYXRhKSB7XG4gICAgICAgIF91bnNhZmVXaW5kb3cuY3Nkbi5jb3B5cmlnaHQu\ndGV4dERhdGEgPSBcIlwiO1xuICAgICAgfVxuICAgICAgaWYgKF91bnNhZmVXaW5kb3cuY3NkbiAm\nJiBfdW5zYWZlV2luZG93LmNzZG4uY29weXJpZ2h0ICYmIF91bnNhZmVXaW5kb3cuY3Nkbi5jb3B5\ncmlnaHQuaHRtbERhdGEpIHtcbiAgICAgICAgX3Vuc2FmZVdpbmRvdy5jc2RuLmNvcHlyaWdodC5o\ndG1sRGF0YSA9IFwiXCI7XG4gICAgICB9XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5Y+W5raI\n56aB5q2i5aSN5Yi2XG4gICAgICpcL1xuICAgIHVuQmxvY2tDb3B5KCkge1xuICAgICAgbG9nLmlu\nZm8oXCLlj5bmtojnpoHmraLlpI3liLZcIik7XG4gICAgICBkb211dGlscy5vbihcbiAgICAgICAg\nZG9jdW1lbnQsXG4gICAgICAgIFwiY2xpY2tcIixcbiAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHtc\nbiAgICAgICAgICBsZXQgJGNsaWNrID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgIGxldCAkcGFy\nZW50ID0gJGNsaWNrLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKCEkY2xpY2suY2xhc3NM\naXN0LmNvbnRhaW5zKFwiaGxqcy1idXR0b25cIikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAg\nICAgICAgICB9XG4gICAgICAgICAgdXRpbHMucHJldmVudEV2ZW50KGV2ZW50KTtcbiAgICAgICAg\nICBsZXQgY29weVRleHQgPSAoJHBhcmVudC5pbm5lclRleHQgfHwgJHBhcmVudC50ZXh0Q29udGVu\ndCB8fCBcIlwiKS50b1N0cmluZygpO1xuICAgICAgICAgIGxvZy5pbmZvKFxuICAgICAgICAgICAg\nXCLngrnlh7vlpI3liLbmjInpkq7lpI3liLblhoXlrrnvvJpcIiArIChjb3B5VGV4dC5sZW5ndGgg\nPiA4ID8gY29weVRleHQuc3Vic3RyaW5nKDAsIDgpICsgXCIuLi5cIiA6IGNvcHlUZXh0KVxuICAg\nICAgICAgICk7XG4gICAgICAgICAgdXRpbHMuc2V0Q2xpcChjb3B5VGV4dCk7XG4gICAgICAgICAg\nJGNsaWNrLnNldEF0dHJpYnV0ZShcImRhdGEtdGl0bGVcIiwgXCLlpI3liLbmiJDlip9cIik7XG4g\nICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjYXB0dXJlOiB0cnVlXG4gICAgICAgIH1c\nbiAgICAgICk7XG4gICAgICBsZXQgY2hhbmdlRGF0YVRpdGxlID0gbmV3IHV0aWxzLkxvY2tGdW5j\ndGlvbihmdW5jdGlvbihldmVudCkge1xuICAgICAgICBsZXQgJG1vdXNlID0gZXZlbnQudGFyZ2V0\nO1xuICAgICAgICBpZiAoJG1vdXNlLmxvY2FsTmFtZSAhPT0gXCJwcmVcIikge1xuICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgJGhsanNCdG4gPSAkbW91c2UucXVlcnlT\nZWxlY3RvcihcIi5obGpzLWJ1dHRvblwiKTtcbiAgICAgICAgaWYgKCRobGpzQnRuKSB7XG4gICAg\nICAgICAgJGhsanNCdG4uc2V0QXR0cmlidXRlKFwiZGF0YS10aXRsZVwiLCBcIuWkjeWItlwiKTtc\nbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBkb211dGlscy5vbihcbiAgICAgICAgZG9jdW1l\nbnQsXG4gICAgICAgIFtcIm1vdXNlZW50ZXJcIiwgXCJtb3VzZWxlYXZlXCJdLFxuICAgICAgICBm\ndW5jdGlvbihldmVudCkge1xuICAgICAgICAgIGNoYW5nZURhdGFUaXRsZS5ydW4oZXZlbnQpO1xu\nICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgICB9\nXG4gICAgICApO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIjY29udGVudF92aWV3c1wiKS50aGVu\nKCgkY29udGVudF92aWV3cykgPT4ge1xuICAgICAgICB2YXIgX2EyO1xuICAgICAgICBpZiAoX3Vu\nc2FmZVdpbmRvdy4kKSB7XG4gICAgICAgICAgKF9hMiA9IF91bnNhZmVXaW5kb3cuJChcIiNjb250\nZW50X3ZpZXdzXCIpKSA9PSBudWxsID8gdm9pZCAwIDogX2EyLnVuYmluZChcImNvcHlcIik7XG4g\nICAgICAgIH1cbiAgICAgICAgZG9tdXRpbHMub24oXG4gICAgICAgICAgJGNvbnRlbnRfdmlld3Ms\nXG4gICAgICAgICAgXCJjb3B5XCIsXG4gICAgICAgICAgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAg\nICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4gICAgICAgICAgICBsZXQgc2VsZWN0\nVGV4dCA9IF91bnNhZmVXaW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBsZXQgY29w\neVRleHQgPSBzZWxlY3RUZXh0ID09IG51bGwgPyB2b2lkIDAgOiBzZWxlY3RUZXh0LnRvU3RyaW5n\nKCk7XG4gICAgICAgICAgICBsb2cuaW5mbyhcbiAgICAgICAgICAgICAgXCJDdHJsK0PlpI3liLbl\nhoXlrrnvvJpcIiArIChjb3B5VGV4dC5sZW5ndGggPiA4ID8gY29weVRleHQuc3Vic3RyaW5nKDAs\nIDgpICsgXCIuLi5cIiA6IGNvcHlUZXh0KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHV0\naWxzLnNldENsaXAoY29weVRleHQpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAg\nICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgICAg\nIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIuaGxqcy1i\ndXR0b25cIikudGhlbigoKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAg\nICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuaGxqcy1idXR0b25cIikuZm9yRWFjaCgo\nZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJvbmNs\naWNrXCIpO1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJkYXRhLXJlcG9y\ndC1jbGlja1wiKTtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFwiZGF0YS10aXRs\nZVwiLCBcIuWkjeWItlwiKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICAg\nIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOeCueWHu+S7o+eggeWdl+iHquWKqOWxleW8\ngFxuICAgICAqXC9cbiAgICBjbGlja1ByZUNvZGVBdXRvbWF0aWNhbGx5KCkge1xuICAgICAgbG9n\nLmluZm8oXCLngrnlh7vku6PnoIHlnZfoh6rliqjlsZXlvIBcIik7XG4gICAgICBkb2N1bWVudC5h\nZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgdmFy\nIF9hMjtcbiAgICAgICAgbGV0ICRjbGljayA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgaWYgKCRj\nbGljay5sb2NhbE5hbWUgIT09IFwicHJlXCIpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAg\nIH1cbiAgICAgICAgJGNsaWNrLnN0eWxlLnNldFByb3BlcnR5KFwiaGVpZ2h0XCIsIFwiYXV0b1wi\nKTtcbiAgICAgICAgKF9hMiA9ICRjbGljay5xdWVyeVNlbGVjdG9yKFwiLmhpZGUtcHJlQ29kZS1i\nb3hcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYTIucmVtb3ZlKCk7XG4gICAgICB9KTtcbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDmgaLlpI3or4TorrrliLDmraPnoa7kvY3nva5cbiAgICAgKlwv\nXG4gICAgcmVzdG9yZUNvbW1lbnRzKCkge1xuICAgICAgbG9nLmluZm8oXCLmgaLlpI3or4Torrrl\niLDmraPnoa7kvY3nva4t56ys5LiA5p2h6K+E6K66XCIpO1xuICAgICAgdXRpbHMud2FpdE5vZGUo\nXCIuZmlyc3QtcmVjb21tZW5kLWJveFwiKS50aGVuKCgkZmlyc3RSZWNvbW1lbmRCb3gpID0+IHtc\nbiAgICAgICAgbGV0IHJlY29tbWVuZEJveEVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y\nKFxuICAgICAgICAgIFwiLnJlY29tbWVuZC1ib3guaW5zZXJ0LWJhaWR1LWJveC5yZWNvbW1lbmQt\nYm94LXN0eWxlXCJcbiAgICAgICAgKTtcbiAgICAgICAgcmVjb21tZW5kQm94RWxlbWVudC5pbnNl\ncnRCZWZvcmUoXG4gICAgICAgICAgJGZpcnN0UmVjb21tZW5kQm94LFxuICAgICAgICAgIHJlY29t\nbWVuZEJveEVsZW1lbnQuZmlyc3RDaGlsZFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICBs\nb2cuaW5mbyhcIuaBouWkjeivhOiuuuWIsOato+ehruS9jee9ri3nrKzkuozmnaHor4TorrpcIik7\nXG4gICAgICB1dGlscy53YWl0Tm9kZShcIi5zZWNvbmQtcmVjb21tZW5kLWJveFwiKS50aGVuKCgk\nc2Vjb25kUmVjb21tZW5kQm94KSA9PiB7XG4gICAgICAgIGxldCByZWNvbW1lbmRCb3hFbGVtZW50\nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICBcIi5yZWNvbW1lbmQtYm94Lmlu\nc2VydC1iYWlkdS1ib3gucmVjb21tZW5kLWJveC1zdHlsZVwiXG4gICAgICAgICk7XG4gICAgICAg\nIHJlY29tbWVuZEJveEVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgICAgICRzZWNvbmRSZWNv\nbW1lbmRCb3gsXG4gICAgICAgICAgcmVjb21tZW5kQm94RWxlbWVudC5maXJzdENoaWxkXG4gICAg\nICAgICk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDmoIfor4ZDU0RO5LiL\n6L2955qE6ZO+5o6lXG4gICAgICpcL1xuICAgIGlkZW50aXR5Q1NETkRvd25sb2FkKCkge1xuICAg\nICAgbG9nLmluZm8oXCLmoIfor4ZDU0RO5LiL6L2955qE6ZO+5o6lXCIpO1xuICAgICAgZG9jdW1l\nbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgXCIucmVjb21tZW5kLWl0ZW0tYm94W2RhdGEt\ndXJsKj0naHR0cHM6XC9cL2Rvd25sb2FkLmNzZG4ubmV0XC8nXVwiXG4gICAgICApLmZvckVhY2go\nKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcImNzZG4tYmxvZy1y\nZW1vdmVSZXNvdXJjZURvd25sb2FkQXJ0aWNsZVwiKSkge1xuICAgICAgICAgIGl0ZW0ucmVtb3Zl\nKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5xdWVyeVNlbGVjdG9yKFwiLmNv\nbnRlbnQtYm94XCIpLnN0eWxlLnNldFByb3BlcnR5KFwiYm9yZGVyXCIsIFwiMnB4IHNvbGlkIHJl\nZFwiKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5YWo\n5paH5bGF5LitXG4gICAgICpcL1xuICAgIGFydGljbGVDZW50ZXIoKSB7XG4gICAgICBsb2cuaW5m\nbyhcIuWFqOaWh+WxheS4rVwiKTtcbiAgICAgIHJldHVybiBhZGRTdHlsZShCbG9nQXJ0aWNsZUNl\nbnRlckNTUyk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS955m75b2V5by556qXXG4g\nICAgICpcL1xuICAgIHNoaWVsZExvZ2luRGlhbG9nKCkge1xuICAgICAgbG9nLmluZm8oXCLlsY\/o\nlL3nmbvlvZXlvLnnqpdcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhg\nLnBhc3Nwb3J0LWxvZ2luLWNvbnRhaW5lcmApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiH\nquWKqOWxleW8gOS7o+eggeWdl1xuICAgICAqXC9cbiAgICBhdXRvRXhwYW5kQ29kZUNvbnRlbnQo\nKSB7XG4gICAgICBsb2cuaW5mbyhcIuiHquWKqOWxleW8gOS7o+eggeWdl1wiKTtcbiAgICAgIHJl\ndHVybiBbXG4gICAgICAgIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCJwcmUuc2V0LWNvZGUtaGlk\nZSAuaGlkZS1wcmVDb2RlLWJveFwiKSxcbiAgICAgICAgYWRkU3R5bGUoXG4gICAgICAgICAgXC8q\nY3NzKlwvXG4gICAgICAgICAgYFxuXHRcdFx0cHJlLnNldC1jb2RlLWhpZGV7XG5cdFx0XHRcdGhl\naWdodDogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFx0XC8qIOiHquWKqOWxleW8gOS7\no+eggeWdlyAqXC9cblx0XHRcdC5jb21tZW50LWxpc3QtYm94LFxuXHRcdFx0bWFpbiBkaXYuYmxv\nZy1jb250ZW50LWJveCBwcmUge1xuXHRcdFx0XHRtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7\nXG5cdFx0XHR9XG4gICAgICAgIGBcbiAgICAgICAgKVxuICAgICAgXTtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDoh6rliqjlsZXlvIDlhajmlodcbiAgICAgKlwvXG4gICAgYXV0b0V4cGFuZENv\nbnRlbnQoKSB7XG4gICAgICBsb2cuaW5mbyhcIuiHquWKqOWxleW8gOWFqOaWh1wiKTtcbiAgICAg\nIHJldHVybiBhZGRTdHlsZShcbiAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgIGBcblx0XHRcLyog\n6Ieq5Yqo5bGV5byA5YWo5paHICpcL1xuXHRcdCNhcnRpY2xlX2NvbnRlbnQsXG5cdFx0LnVzZXIt\nYXJ0aWNsZS51c2VyLWFydGljbGUtaGlkZSB7XG5cdFx0XHRoZWlnaHQ6IGF1dG8gIWltcG9ydGFu\ndDtcblx0XHRcdG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0fVxuICAgICAgICBgXG4g\nICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWxj+iUveivhOiuuuWMulxuICAgICAq\nXC9cbiAgICBibG9ja0NvbW1lbnQoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUveivhOiuuuWM\nulwiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKGAjcGNDb21tZW50Qm94\nYCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS95bqV6YOo5o6o6I2Q5paH56ugXG4g\nICAgICpcL1xuICAgIHNoaWVsZEJvdHRvbVJlY29tbWVuZEFydGljbGUoKSB7XG4gICAgICBsb2cu\naW5mbyhcIuWxj+iUveW6lemDqOaOqOiNkOaWh+eroFwiKTtcbiAgICAgIHJldHVybiBDb21tb25V\ndGlsLmFkZEJsb2NrQ1NTKGBtYWluID4gZGl2LnJlY29tbWVuZC1ib3hgKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6h4eOaKgOiDveagkVxuICAgICAqXC9cbiAgICBzaGll\nbGRCb3R0b21Ta2lsbFRyZWUoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUveW6lemDqHh45oqA\n6IO95qCRXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoYCN0cmVlU2tp\nbGxgKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6jmgqzmta7lt6Xlhbfm\noI9cbiAgICAgKlwvXG4gICAgc2hpZWxkQm90dG9tRmxvYXRpbmdUb29sYmFyKCkge1xuICAgICAg\nbG9nLmluZm8oXCLlsY\/olL3lupXpg6jmgqzmta7lt6XlhbfmoI9cIik7XG4gICAgICByZXR1cm4g\nQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhgI3Rvb2xCYXJCb3hgKTtcbiAgICB9LFxuICAgIFwvKipc\nbiAgICAgKiDlsY\/olL3lt6bkvqfljZrlrqLkv6Hmga9cbiAgICAgKlwvXG4gICAgc2hpZWxkTGVm\ndEJsb2dDb250YWluZXJBc2lkZSgpIHtcbiAgICAgIGxvZy5pbmZvKFwi44CQ5bGP6JS944CR5bem\n5L6n5Y2a5a6i5L+h5oGvXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1Mo\nYGFzaWRlLmJsb2dfY29udGFpbmVyX2FzaWRlYCk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n44CQ5bGP6JS944CR5Y+z5L6n55uu5b2V5L+h5oGvXG4gICAgICpcL1xuICAgIHNoaWVsZFJpZ2h0\nRGlyZWN0b3J5SW5mb3JtYXRpb24oKSB7XG4gICAgICBsb2cuaW5mbyhcIuOAkOWxj+iUveOAkeWP\ns+S+p+ebruW9leS\/oeaBr1wiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NT\nKFwiI3JpZ2h0QXNpZGVDb25jaXNpb25cIiwgXCIjcmlnaHRBc2lkZVwiKTtcbiAgICB9LFxuICAg\nIFwvKipcbiAgICAgKiDlsY\/olL3pobbpg6hUb29sYmFyXG4gICAgICpcL1xuICAgIHNoaWVsZFRv\ncFRvb2xiYXIoKSB7XG4gICAgICBsb2cuaW5mbyhcIuWxj+iUvemhtumDqFRvb2xiYXJcIik7XG4g\nICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NTUyhgI3Rvb2xiYXJCb3hgKTtcbiAgICB9\nLFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3mlofnq6DlhoXnmoTpgInkuK3mkJzntKLmgqzmta7m\nj5DnpLpcbiAgICAgKlwvXG4gICAgc2hpZWxkQXJ0aWNsZVNlYXJjaFRpcCgpIHtcbiAgICAgIGxv\nZy5pbmZvKFwi5bGP6JS95paH56ug5YaF55qE6YCJ5Lit5pCc57Si5oKs5rWu5o+Q56S6XCIpO1xu\nICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoYCNhcnRpY2xlU2VhcmNoVGlwYCk7\nXG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5YWB6K646YCJ5oup5YaF5a65XG4gICAgICpcL1xu\nICAgIGFsbG93U2VsZWN0Q29udGVudCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi5YWB6K646YCJ5oup\n5YaF5a65XCIpO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAg\nICAgICAgYFxuXHRcdCNjb250ZW50X3ZpZXdzLFxuXHRcdCNjb250ZW50X3ZpZXdzIHByZSxcblx0\nXHQjY29udGVudF92aWV3cyBwcmUgY29kZSB7XG5cdFx0XHR1c2VyLXNlbGVjdDogdGV4dCAhaW1w\nb3J0YW50O1xuXHRcdH1cblx0XHRgXG4gICAgICApO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgV2Vu\na3VDU1MgPSBcIiNjaGF0Z3B0LWFydGljbGUtZGV0YWlsXFxyXFxuICA+IGRpdi5sYXlvdXQtY2Vu\ndGVyXFxyXFxuICA+IGRpdi5tYWluXFxyXFxuICA+IGRpdi5hcnRpY2xlLWJveFxcclxcbiAgPiBk\naXYuY29udC5maXJzdC1zaG93LmZvcmJpZCB7XFxyXFxuICBtYXgtaGVpZ2h0OiB1bnNldCAhaW1w\nb3J0YW50O1xcclxcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XFxyXFxuICBvdmVyZmxvdzog\nYXV0byAhaW1wb3J0YW50O1xcclxcbn1cXHJcXG5cXHJcXG4uZm9yYmlkIHtcXHJcXG4gIHVzZXIt\nc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcblwiO1xuICBjb25zdCBTaGllbGRD\nU1MkMyA9IFwiXC8qIHdlbmt16aG26YOo5qiq5bmFICpcL1xcclxcbiNhcHAgPiBkaXYgPiBkaXYu\nbWFpbi5wYi0zMiA+IGRpdiA+IGRpdi50b3AtYmFyLFxcclxcblwvKiDlupXpg6jlsZXlvIDlhajm\nlocgKlwvXFxyXFxuI2NoYXRncHQtYXJ0aWNsZS1kZXRhaWwgPiBkaXYubGF5b3V0LWNlbnRlciA+\nIGRpdi5tYWluID4gZGl2LmFydGljbGUtYm94ID4gZGl2LmNvbnQuZmlyc3Qtc2hvdy5mb3JiaWQg\nPiBkaXYub3BlbiB7XFxyXFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVwiO1xu\nICBjb25zdCBDU0ROV2VuS3UgPSB7XG4gICAgaW5pdCgpIHtcbiAgICAgIGFkZFN0eWxlKFdlbmt1\nQ1NTKTtcbiAgICAgIGFkZFN0eWxlKFNoaWVsZENTUyQzKTtcbiAgICAgIFBvcHNQYW5lbC5leGVj\nTWVudU9uY2UoXCJjc2RuLXdlbmt1LXNoaWVsZFJlc291cmNlUmVjb21tZW5kXCIsICgpID0+IHtc\nbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkUmVzb3VyY2VSZWNvbW1lbmQoKTtcbiAgICAgIH0p\nO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4td2Vua3Utc2hpZWxkUmlnaHRV\nc2VySW5mb1wiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNoaWVsZFJpZ2h0VXNlcklu\nZm8oKTtcbiAgICAgIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcImNzZG4td2Vu\na3Utc2hpZWxkUmlnaHRUb29sQmFyXCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hp\nZWxkUmlnaHRUb29sQmFyKCk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDj\ngJDlsY\/olL3jgJHotYTmupDmjqjojZBcbiAgICAgKlwvXG4gICAgc2hpZWxkUmVzb3VyY2VSZWNv\nbW1lbmQoKSB7XG4gICAgICBsb2cuaW5mbyhcIuOAkOWxj+iUveOAkei1hOa6kOaOqOiNkFwiKTtc\nbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiI3JlY29tbWVuZFwiKTtcbiAg\nICB9LFxuICAgIFwvKipcbiAgICAgKiDjgJDlsY\/olL3jgJHlj7PkvqfnlKjmiLfkv6Hmga9cbiAg\nICAgKlwvXG4gICAgc2hpZWxkUmlnaHRVc2VySW5mbygpIHtcbiAgICAgIGxvZy5pbmZvKFwi44CQ\n5bGP6JS944CR5Y+z5L6n55So5oi35L+h5oGvXCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwu\nYWRkQmxvY2tDU1MoXCIubGF5b3V0LXJpZ2h0XCIpO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAq\nIOOAkOWxj+iUveOAkeWPs+S+p+aCrOa1ruW3peWFt+agj1xuICAgICAqXC9cbiAgICBzaGllbGRS\naWdodFRvb2xCYXIoKSB7XG4gICAgICBsb2cuaW5mbyhcIuOAkOWxj+iUveOAkeWPs+S+p+aCrOa1\nruW3peWFt+agj1wiKTtcbiAgICAgIHJldHVybiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiLmNz\nZG4tc2lkZS10b29sYmFyXCIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NETkxpbmsgPSB7XG4g\nICAgaW5pdCgpIHtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJjc2RuLWxpbmstanVt\ncFJlZGlyZWN0XCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5qdW1wUmVkaXJlY3QoKTtcbiAgICAg\nIH0pO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOWOu+mZpENTRE7mi6bmiKrlhbblroPnvZHl\nnYDnmoR1cmzlubboh6rliqjot7PovaxcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGh0dHBzOlwv\nXC9saW5rLmNzZG4ubmV0XC8\/dGFyZ2V0PWh0dHBzJTNBJTJGJTJGamFpc3QuZGwuc291cmNlZm9y\nZ2UubmV0JTJGcHJvamVjdCUyRnBvcnRlY2xlJTJGdjEuMTElMkZwb3J0ZWNsZS0xLjExLnppcFxu\nICAgICAqXC9cbiAgICBqdW1wUmVkaXJlY3QoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBsZXQg\ndXJsU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2Vh\ncmNoKTtcbiAgICAgICAgY29uc3QgVVJMX0tFWSA9IFwidGFyZ2V0XCI7XG4gICAgICAgIGlmICh1\ncmxTZWFyY2hQYXJhbXMuaGFzKFVSTF9LRVkpKSB7XG4gICAgICAgICAgbGV0IHRhcmdldCA9IHVy\nbFNlYXJjaFBhcmFtcy5nZXQoVVJMX0tFWSk7XG4gICAgICAgICAgbGV0IGp1bXBVcmwgPSBkZWNv\nZGVVUklDb21wb25lbnQodGFyZ2V0KTtcbiAgICAgICAgICBsb2cuc3VjY2Vzcyhg6Lez6L2s6ZO+\n5o6l77yaJHtqdW1wVXJsfWApO1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0ganVt\ncFVybDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCLop6PmnpDot7Po\nvaznmoTpk77mjqXlpLHotKXvvIzljp\/lm6DvvJrmkJzntKLlj4LmlbDkuK3msqHmnIl0YXJnZXTl\nj4LmlbBcIik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIFFt\nc2cuZXJyb3IoXCLot7Povazpk77mjqXlpLHotKXvvJpcIiArIGVycm9yLm1lc3NhZ2UpO1xuICAg\nICAgfVxuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NETiA9IHtcbiAgICBpbml0KCkge1xuICAgICAg\naWYgKENTRE5Sb3V0ZXIuaXNMaW5rKCkpIHtcbiAgICAgICAgbG9nLmluZm8oXCJSb3V0ZXI6IOS4\nrei9rOmTvuaOpVwiKTtcbiAgICAgICAgQ1NETkxpbmsuaW5pdCgpO1xuICAgICAgfSBlbHNlIGlm\nIChDU0ROUm91dGVyLmlzSHVhV2VpQ2xvdWRCbG9nKCkpIHtcbiAgICAgICAgbG9nLmluZm8oXCJS\nb3V0ZXI6IOWNjuS4uuS6keiBlOebn1wiKTtcbiAgICAgICAgQ1NETkh1YVdlaUNsb3VkLmluaXQo\nKTtcbiAgICAgIH0gZWxzZSBpZiAoQ1NETlJvdXRlci5pc0Jsb2coKSkge1xuICAgICAgICBsb2cu\naW5mbyhcIlJvdXRlcjog5Y2a5a6iXCIpO1xuICAgICAgICBDU0ROQmxvZy5pbml0KCk7XG4gICAg\nICB9IGVsc2UgaWYgKENTRE5Sb3V0ZXIuaXNXZW5LdSgpKSB7XG4gICAgICAgIGxvZy5pbmZvKFwi\nUm91dGVyOiDmloflupNcIik7XG4gICAgICAgIENTRE5XZW5LdS5pbml0KCk7XG4gICAgICB9IGVs\nc2Uge1xuICAgICAgICBsb2cuZXJyb3IoXCLmmoLmnKrpgILphY3vvIzor7flj43ppojlvIDlj5Ho\ngIXvvJpcIiArIGdsb2JhbFRoaXMubG9jYXRpb24uaHJlZik7XG4gICAgICB9XG4gICAgfVxuICB9\nO1xuICBjb25zdCBNX0NTRE5MaW5rID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBQb3BzUGFuZWwu\nZXhlY01lbnVPbmNlKFwibS1jc2RuLWxpbmstanVtcFJlZGlyZWN0XCIsICgpID0+IHtcbiAgICAg\nICAgQ1NETkxpbmsuanVtcFJlZGlyZWN0KCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG4gIGNv\nbnN0IFNoaWVsZENTUyQyID0gXCJcLyog5Y+z5LiL6KeS55qEIOWFjei0uei1ouWNjuS4uuW5s+ad\nv3h4eHggKlwvXFxyXFxuLm9yZy1tYWluLWNvbnRlbnQgLnNpZGVyYmFyLWJveCB7XFxyXFxuICBk\naXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxyXFxufVxcclxcblwiO1xuICBjb25zdCBNX0NTRE5I\ndWFXZWlDbG91ZCA9IHtcbiAgICBpbml0KCkge1xuICAgICAgYWRkU3R5bGUoU2hpZWxkQ1NTJDIp\nO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcIm0tY3Nkbi1odWEtd2VpLWNsb3VkLWF1\ndG9FeHBhbmRDb250ZW50XCIsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIENTRE5IdWFXZWlDbG91\nZC5hdXRvRXhwYW5kQ29udGVudCgpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01l\nbnVPbmNlKFxuICAgICAgICBcIm0tY3Nkbi1odWEtd2VpLWNsb3VkLWJsb2NrQm90dG9tSm9pblRo\nZUNvbW11bml0eVwiLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxv\nY2tCb3R0b21Kb2luVGhlQ29tbXVuaXR5KCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog44CQ5bGP6JS944CR5bqV6YOo5Yqg5YWl56S+5Yy6XG4gICAgICpc\nL1xuICAgIGJsb2NrQm90dG9tSm9pblRoZUNvbW11bml0eSgpIHtcbiAgICAgIGxvZy5pbmZvKFwi\n44CQ5bGP6JS944CR5bqV6YOo5Yqg5YWl56S+5Yy6XCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0\naWwuYWRkQmxvY2tDU1MoXCIudXNlci1kZXNjXCIpO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgU2hp\nZWxkQ1NTJDEgPSBcIi52aWV3X2NvbW1lbnRfYm94LFxcclxcbi53ZWl4aW4tc2hhZG93Ym94Lndh\ncC1zaGFkb3dib3gsXFxyXFxuLmZlZWQtU2lnbi1zcGFuLFxcclxcbi51c2VyLWRlc2MudXNlci1k\nZXNjLWZpeCxcXHJcXG4uY29tbWVudF9yZWFkX21vcmVfYm94LFxcclxcbiNjb250ZW50X3ZpZXdz\nIHByZS5zZXQtY29kZS1oaWRlIC5oaWRlLXByZUNvZGUtYm94LFxcclxcblwvKiDnmbvlvZXlvLnn\nqpcgKlwvXFxyXFxuLnBhc3Nwb3J0LWxvZ2luLWNvbnRhaW5lcixcXHJcXG4uaGxqcy1idXR0b25b\nZGF0YS10aXRsZT0n55m75b2V5ZCO5aSN5Yi2J10sXFxyXFxuLmFydGljbGUtc2hvdy1tb3JlLFxc\nclxcbiN0cmVlU2tpbGwsXFxyXFxuZGl2LmJ0bl9vcGVuX2FwcF9wcm9tcHRfZGl2LFxcclxcbmRp\ndi5yZWFkYWxsX2JveCxcXHJcXG5kaXYuYXNpZGUtaGVhZGVyLWZpeGVkLFxcclxcbmRpdi5mZWVk\nLVNpZ24td2VpeGluLFxcclxcbmRpdi5pb3Mtc2hhZG93Ym94IHtcXHJcXG5cdGRpc3BsYXk6IG5v\nbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IE1CbG9nQ1NTID0gXCIjbWFp\nbkJveCB7XFxyXFxuICB3aWR0aDogYXV0bztcXHJcXG59XFxyXFxuLnVzZXItZGVzYy51c2VyLWRl\nc2MtZml4IHtcXHJcXG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xcclxcbiAgb3ZlcmZsb3c6\nIGF1dG8gIWltcG9ydGFudDtcXHJcXG59XFxyXFxuLmNvbXBvbmVudC1ib3ggLnByYWlzZSB7XFxy\nXFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyO1xcclxcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcclxc\nbiAgcGFkZGluZzogMHB4IDhweDtcXHJcXG4gIGhlaWdodDogYXV0bztcXHJcXG59XFxyXFxuLmNv\nbXBvbmVudC1ib3ggLnByYWlzZSxcXHJcXG4uY29tcG9uZW50LWJveCAuc2hhcmUge1xcclxcbiAg\nY29sb3I6ICNmZmY7XFxyXFxufVxcclxcbi5jb21wb25lbnQtYm94IGEge1xcclxcbiAgZGlzcGxh\neTogaW5saW5lLWJsb2NrO1xcclxcbiAgZm9udC1zaXplOiB4eC1zbWFsbDtcXHJcXG59XFxyXFxu\nLmNvbXBvbmVudC1ib3gge1xcclxcbiAgZGlzcGxheTogaW5saW5lO1xcclxcbiAgbWFyZ2luOiAw\nO1xcclxcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtc\nXHJcXG59XFxyXFxuLmNzZG4tZWR1LXRpdGxlIHtcXHJcXG4gIGJhY2tncm91bmQ6ICM0ZDZkZTE7\nXFxyXFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxyXFxuICBwYWRkaW5nOiAwcHggOHB4O1xcclxc\nbiAgaGVpZ2h0OiBhdXRvO1xcclxcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcXHJcXG59XFxy\nXFxuXFxyXFxuLkdNLWNzZG4tZGwge1xcclxcbiAgcGFkZGluZzogMC4yNHJlbSAwLjMycmVtO1xc\nclxcbiAgd2lkdGg6IDEwMCU7XFxyXFxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47\nXFxyXFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcclxcbiAgYm9yZGVyLWJvdHRvbTog\nMXB4IHNvbGlkICNmNWY2ZjcgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuLkdNLWNzZG4tdGl0bGUg\ne1xcclxcbiAgZm9udC1zaXplOiAwLjNyZW07XFxyXFxuICBjb2xvcjogIzIyMjIyNjtcXHJcXG4g\nIGxldHRlci1zcGFjaW5nOiAwO1xcclxcbiAgbGluZS1oZWlnaHQ6IDAuNDRyZW07XFxyXFxuICBm\nb250LXdlaWdodDogNjAwO1xcclxcbiAgXC8qbWF4LWhlaWdodDogLjg4cmVtOypcL1xcclxcbiAg\nd29yZC1icmVhazogYnJlYWstYWxsO1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4gIGRp\nc3BsYXk6IC13ZWJraXQtYm94O1xcclxcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtc\nXHJcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXHJcXG59XFxyXFxuLkdNLWNzZG4tdGl0bGUg\nYSB7XFxyXFxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XFxyXFxuICBjb2xvcjogIzIyMjIyNjtc\nXHJcXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XFxyXFxufVxcclxcbi5HTS1jc2RuLXRpdGxlIGVtLFxc\nclxcbi5HTS1jc2RuLWNvbnRlbnQgZW0ge1xcclxcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xcclxc\nbiAgY29sb3I6ICNmYzU1MzE7XFxyXFxufVxcclxcbi5HTS1jc2RuLWNvbnRlbnQge1xcclxcbiAg\nXC8qbWF4LXdpZHRoOiA1LjU4cmVtOypcL1xcclxcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXHJcXG4g\nIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcclxcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxy\nXFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XFxyXFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZl\ncnRpY2FsO1xcclxcbiAgY29sb3I6ICM1NTU2NjY7XFxyXFxuICBmb250LXNpemU6IDAuMjRyZW07\nXFxyXFxuICBsaW5lLWhlaWdodDogMC4zNHJlbTtcXHJcXG4gIG1heC1oZWlnaHQ6IDAuMzRyZW07\nXFxyXFxuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XFxyXFxuICAtd2Via2l0LWJveC1mbGV4OiAx\nO1xcclxcbiAgLW1zLWZsZXg6IDE7XFxyXFxuICBmbGV4OiAxO1xcclxcbiAgbWFyZ2luLXRvcDog\nMC4xNnJlbTtcXHJcXG59XFxyXFxuLkdNLWNzZG4taW1nIGltZyB7XFxyXFxuICB3aWR0aDogMi4x\nOHJlbTtcXHJcXG4gIGhlaWdodDogMS41OHJlbTtcXHJcXG4gIFwvKm1hcmdpbi1sZWZ0OiAuMTZy\nZW0qXC9cXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IEFwaVJlc3BvbnNlQ2hlY2sgPSB7XG4gICAg\naXNTdWNjZXNzUmVzcG9uc2UoZGF0YSkge1xuICAgICAgaWYgKGRhdGEgPT0gbnVsbCkge1xuICAg\nICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwi\nc3RyaW5nXCIpIHtcbiAgICAgICAgZGF0YSA9IHV0aWxzLnRvSlNPTihkYXRhKTtcbiAgICAgIH1c\nbiAgICAgIHJldHVybiAoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5jb2RlKSA9PT0gMjAw\nO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgQ1NETkZhdm9yaXRlQXBpID0ge1xuICAgIFwvKipcbiAg\nICAgKiDojrflj5bmlLbol4\/lpLnkv6Hmga9cbiAgICAgKiBAcGFyYW0gdXJsIOW9k+WJjXVybFxu\nICAgICAqXC9cbiAgICBhc3luYyBmb2xkZXJMaXN0V2l0aENoZWNrKHVybCkge1xuICAgICAgbGV0\nIHJlc3BvbnNlID0gYXdhaXQgaHR0cHguZ2V0KFxuICAgICAgICBgaHR0cHM6XC9cL21wLWFjdGlv\nbi5jc2RuLm5ldFwvaW50ZXJhY3RcL3dyYXBwZXJcL3BjXC9mYXZvcml0ZVwvdjFcL2FwaVwvZm9s\nZGVyTGlzdFdpdGhDaGVja2AsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAg\nICAgICB1cmxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZldGNoOiB0cnVlLFxuICAgICAgICAg\nIGFsbG93SW50ZXJjZXB0Q29uZmlnOiBmYWxzZSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAg\nICAgICAgICBcIlVzZXItQWdlbnRcIjogdXRpbHMuZ2V0UmFuZG9tUENVQSgpXG4gICAgICAgICAg\nfVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgbG9nLmluZm8ocmVzcG9uc2UpO1xuICAgICAg\naWYgKCFyZXNwb25zZS5zdGF0dXMgfHwgIUFwaVJlc3BvbnNlQ2hlY2suaXNTdWNjZXNzUmVzcG9u\nc2UocmVzcG9uc2UuZGF0YS5yZXNwb25zZVRleHQpKSB7XG4gICAgICAgIGxvZy5lcnJvcihcIuiO\nt+WPluaUtuiXj+WkueS\/oeaBr+Wksei0pe+8jOivt+axguW8guW4uFwiKTtcbiAgICAgICAgUW1z\nZy5lcnJvcihcIuiOt+WPluaUtuiXj+WkueS\/oeaBr+Wksei0pVwiKTtcbiAgICAgICAgcmV0dXJu\nO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGEgPSB1dGlscy50b0pTT04ocmVzcG9uc2UuZGF0YS5y\nZXNwb25zZVRleHQpO1xuICAgICAgcmV0dXJuIGRhdGEuZGF0YS5yZXN1bHQ7XG4gICAgfSxcbiAg\nICBcLyoqXG4gICAgICog5re75Yqg5Yiw5p+Q5Liq5pS26JeP5aS5XG4gICAgICpcL1xuICAgIGFz\neW5jIGFkZEZhdm9yaXRlSW5Gb2xkcyhyZXF1ZXN0RGF0YSkge1xuICAgICAgbGV0IHJlc3BvbnNl\nID0gYXdhaXQgaHR0cHgucG9zdChcbiAgICAgICAgXCJodHRwczpcL1wvbXAtYWN0aW9uLmNzZG4u\nbmV0XC9pbnRlcmFjdFwvd3JhcHBlclwvcGNcL2Zhdm9yaXRlXC92MVwvYXBpXC9hZGRGYXZvcml0\nZUluRm9sZHNcIixcbiAgICAgICAge1xuICAgICAgICAgIGZldGNoOiB0cnVlLFxuICAgICAgICAg\nIGRhdGE6IHJlcXVlc3REYXRhLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIFwi\nQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb25cL2pzb25cIixcbiAgICAgICAgICAgIFwiVXNl\nci1BZ2VudFwiOiB1dGlscy5nZXRSYW5kb21QQ1VBKClcbiAgICAgICAgICB9LFxuICAgICAgICAg\nIGFsbG93SW50ZXJjZXB0Q29uZmlnOiBmYWxzZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAg\nbG9nLmluZm8ocmVzcG9uc2UpO1xuICAgICAgaWYgKCFyZXNwb25zZS5zdGF0dXMgfHwgIUFwaVJl\nc3BvbnNlQ2hlY2suaXNTdWNjZXNzUmVzcG9uc2UocmVzcG9uc2UuZGF0YS5yZXNwb25zZVRleHQp\nKSB7XG4gICAgICAgIGxvZy5lcnJvcihcIua3u+WKoOaUtuiXj+Wksei0pe+8jOivt+axguW8guW4\nuFwiLCByZXNwb25zZSk7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLmt7vliqDmlLbol4\/lpLHotKXv\nvIzor7fmsYLlvILluLhcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVy\nbiB0cnVlO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOajgOafpeaUtuiXj+WkueS\/oeaBr1xu\nICAgICAqIEBwYXJhbSB1cmxcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqICsgdHJ1ZSDlt7LmlLbo\nl49cbiAgICAgKiArIGZhbHNlIOacquaUtuiXj1xuICAgICAqXC9cbiAgICBhc3luYyBjaGVja0Zh\ndm9yaXRlQnlVcmwodXJsKSB7XG4gICAgICBkZWJ1Z2dlcjtcbiAgICAgIGxldCByZXNwb25zZSA9\nIGF3YWl0IGh0dHB4LmdldChcbiAgICAgICAgYGh0dHBzOlwvXC9tcC1hY3Rpb24uY3Nkbi5uZXRc\nL2ludGVyYWN0XC93cmFwcGVyXC9wY1wvZmF2b3JpdGVcL3YxXC9hcGlcL2NoZWNrRmF2b3JpdGVC\neVVybGAsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB1cmxcbiAg\nICAgICAgICB9LFxuICAgICAgICAgIGZldGNoOiB0cnVlLFxuICAgICAgICAgIGFsbG93SW50ZXJj\nZXB0Q29uZmlnOiBmYWxzZSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIlVz\nZXItQWdlbnRcIjogdXRpbHMuZ2V0UmFuZG9tUENVQSgpXG4gICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICApO1xuICAgICAgbG9nLmluZm8ocmVzcG9uc2UpO1xuICAgICAgaWYgKCFyZXNwb25z\nZS5zdGF0dXMgfHwgIUFwaVJlc3BvbnNlQ2hlY2suaXNTdWNjZXNzUmVzcG9uc2UocmVzcG9uc2Uu\nZGF0YS5yZXNwb25zZVRleHQpKSB7XG4gICAgICAgIGxvZy5lcnJvcihcIuajgOafpeaUtuiXj+Wk\nueeKtuaAgeWksei0pe+8jOivt+axguW8guW4uFwiKTtcbiAgICAgICAgUW1zZy5lcnJvcihcIuaj\ngOafpeaUtuiXj+WkueeKtuaAgeWksei0pe+8jOivt+axguW8guW4uFwiKTtcbiAgICAgICAgcmV0\ndXJuO1xuICAgICAgfVxuICAgICAgbGV0IGRhdGEgPSB1dGlscy50b0pTT04ocmVzcG9uc2UuZGF0\nYS5yZXNwb25zZVRleHQpO1xuICAgICAgcmV0dXJuIGRhdGEuZGF0YTtcbiAgICB9LFxuICAgIFwv\nKipcbiAgICAgKiDliJvlu7rmlLbol4\/lpLlcbiAgICAgKlwvXG4gICAgYXN5bmMgY3JlYXRlRm9s\nZGVyKGNvbmZpZykge1xuICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgaHR0cHgucG9zdChcbiAg\nICAgICAgYGh0dHBzOlwvXC9tcC1hY3Rpb24uY3Nkbi5uZXRcL2ludGVyYWN0XC93cmFwcGVyXC9w\nY1wvZmF2b3JpdGVcL3YxXC9hcGlcL2NyZWF0ZUZvbGRlcmAsXG4gICAgICAgIHtcbiAgICAgICAg\nICBkYXRhOiBjb25maWcsXG4gICAgICAgICAgZmV0Y2g6IHRydWUsXG4gICAgICAgICAgaGVhZGVy\nczoge1xuICAgICAgICAgICAgQWNjZXB0OiBcImFwcGxpY2F0aW9uXC9qc29uLCB0ZXh0XC9qYXZh\nc2NyaXB0LCAqXC8qOyBxPTAuMDFcIixcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwi\nYXBwbGljYXRpb25cL2pzb25cIixcbiAgICAgICAgICAgIFwiVXNlci1BZ2VudFwiOiB1dGlscy5n\nZXRSYW5kb21QQ1VBKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFsbG93SW50ZXJjZXB0Q29u\nZmlnOiBmYWxzZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgbG9nLmluZm8ocmVzcG9uc2Up\nO1xuICAgICAgaWYgKCFyZXNwb25zZS5zdGF0dXMgfHwgIUFwaVJlc3BvbnNlQ2hlY2suaXNTdWNj\nZXNzUmVzcG9uc2UocmVzcG9uc2UuZGF0YS5yZXNwb25zZVRleHQpKSB7XG4gICAgICAgIFFtc2cu\nZXJyb3IoXCLliJvlu7rmlLbol4\/lpLnlpLHotKVcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAg\nIH1cbiAgICAgIGxldCBkYXRhID0gdXRpbHMudG9KU09OKHJlc3BvbnNlLmRhdGEucmVzcG9uc2VU\nZXh0KTtcbiAgICAgIHJldHVybiBkYXRhLmRhdGE7XG4gICAgfVxuICB9O1xuICBjb25zdCBNX0NT\nRE5CbG9nID0ge1xuICAgIGluaXQoKSB7XG4gICAgICB0aGlzLmFkZENTUygpO1xuICAgICAgUG9w\nc1BhbmVsLmV4ZWNNZW51T25jZShcbiAgICAgICAgXCJtLWNzZG4tYmxvZy1zaGllbGRUb3BUb29s\nYmFyXCIsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5zaGllbGRUb3BU\nb29sYmFyKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChfLCB2YWx1ZSkgPT4gIXZhbHVlLFxuICAg\nICAgICAoXywgdmFsdWUpID0+ICF2YWx1ZVxuICAgICAgKTtcbiAgICAgIFBvcHNQYW5lbC5leGVj\nTWVudU9uY2UoXCJtLWNzZG4tYmxvZy1ub3RMaW1pdENvZGVQcmVNYXhIZWlnaHRcIiwgKCkgPT4g\ne1xuICAgICAgICByZXR1cm4gdGhpcy5ub3RMaW1pdENvZGVQcmVNYXhIZWlnaHQoKTtcbiAgICAg\nIH0pO1xuICAgICAgUG9wc1BhbmVsLmV4ZWNNZW51T25jZShcIm0tY3Nkbi1ibG9nLW5vdExpbWl0\nQ29tbWVudE1heEhlaWdodFwiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vdExpbWl0\nQ29tbWVudE1heEhlaWdodCgpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVP\nbmNlKFwibS1jc2RuLWJsb2ctYWxsb3dTZWxlY3RUZXh0XCIsICgpID0+IHtcbiAgICAgICAgcmV0\ndXJuIHRoaXMuYWxsb3dTZWxlY3RUZXh0KCk7XG4gICAgICB9KTtcbiAgICAgIFBvcHNQYW5lbC5l\neGVjTWVudU9uY2UoXCJtLWNzZG4tYmxvZy1hdXRvRXhwYW5kQ29udGVudFwiLCAoKSA9PiB7XG4g\nICAgICAgIHJldHVybiB0aGlzLmF1dG9FeHBhbmRDb250ZW50KCk7XG4gICAgICB9KTtcbiAgICAg\nIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXG4gICAgICAgIFwibS1jc2RuLWJsb2ctYm90dG9tQXJ0\naWNsZUVuYWJsZVwiLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxv\nY2tCb3R0b21BcnRpY2xlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChfLCB2YWx1ZSkgPT4gIXZh\nbHVlLFxuICAgICAgICAoXywgdmFsdWUpID0+ICF2YWx1ZVxuICAgICAgKTtcbiAgICAgIFBvcHNQ\nYW5lbC5leGVjTWVudU9uY2UoXG4gICAgICAgIFwibS1jc2RuLWJsb2ctY29tbWVudC1lbmFibGVc\nIixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmJsb2NrQ29tbWVudCgp\nO1xuICAgICAgICB9LFxuICAgICAgICAoXywgdmFsdWUpID0+ICF2YWx1ZSxcbiAgICAgICAgKF8s\nIHZhbHVlKSA9PiAhdmFsdWVcbiAgICAgICk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNl\nKFxuICAgICAgICBcIm0tY3Nkbi1ibG9nLWJvdHRvbS10b29sYmFyLWVuYWJsZVwiLFxuICAgICAg\nICAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYmxvY2tCb3R0b21Ub29sQmFyKCk7XG4g\nICAgICAgIH0sXG4gICAgICAgIChfLCB2YWx1ZSkgPT4gIXZhbHVlLFxuICAgICAgICAoXywgdmFs\ndWUpID0+ICF2YWx1ZVxuICAgICAgKTtcbiAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJt\nLWNzZG4tYmxvZy1ib3R0b20tdG9vbGJhci1hbHdheXMtYm90dG9tXCIsICgpID0+IHtcbiAgICAg\nICAgcmV0dXJuIHRoaXMuYm90dG9tVG9vbEJhckFsd2F5c1Nob3coKTtcbiAgICAgIH0pO1xuICAg\nICAgZG9tdXRpbHMucmVhZHkoKCkgPT4ge1xuICAgICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNl\nKFwibS1jc2RuLWJsb2ctcmVtb3ZlQWRzXCIsICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhp\ncy5yZW1vdmVBZHMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9u\nY2UoXCJtLWNzZG4tYmxvZy1yZWZhY3RvcmluZ1JlY29tbWVuZGF0aW9uXCIsICgpID0+IHtcbiAg\nICAgICAgICB0aGlzLnJlZmFjdG9yaW5nUmVjb21tZW5kYXRpb24oKTtcbiAgICAgICAgfSk7XG4g\nICAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXCJtLWNzZG4tYmxvZy11bkJsb2NrQ29weVwi\nLCAoKSA9PiB7XG4gICAgICAgICAgQ1NETkJsb2cudW5CbG9ja0NvcHkoKTtcbiAgICAgICAgfSk7\nXG4gICAgICAgIFBvcHNQYW5lbC5leGVjTWVudU9uY2UoXG4gICAgICAgICAgXCJtLWNzZG4tYmxv\nZy1ib3R0b20tdG9vbGJhci1vcHRpbWl6YXRpb25Db2xsZWN0QnV0dG9uXCIsXG4gICAgICAgICAg\nKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vcHRpbWl6YXRpb25Db2xsZWN0QnV0dG9uKCk7XG4g\nICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBhZGRDU1MoKSB7\nXG4gICAgICBhZGRTdHlsZShTaGllbGRDU1MkMSk7XG4gICAgICBhZGRTdHlsZShNQmxvZ0NTUyk7\nXG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS96aG26YOoVG9vbGJhclxuICAgICAqXC9c\nbiAgICBzaGllbGRUb3BUb29sYmFyKCkge1xuICAgICAgbG9nLmluZm8oXCLlsY\/olL3pobbpg6hU\nb29sYmFyXCIpO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgQ29tbW9uVXRpbC5hZGRCbG9ja0NT\nUyhcIiNjc2RuLXRvb2xiYXJcIiksXG4gICAgICAgIGFkZFN0eWxlKFxuICAgICAgICAgIFwvKmNz\ncypcL1xuICAgICAgICAgIGBcblx0XHRcdFwvKiDlhoXlrrnpobbpg6jopoHlvZLkvY0gKlwvXG5c\ndFx0XHRib2R5ICNtYWluLFxuXHRcdFx0Lm1hcmdpbl9zaWRlc3tcblx0XHRcdCAgbWFyZ2luLXRv\ncDogdW5zZXQgIWltcG9ydGFudDtcblx0XHRcdCAgcGFkZGluZy10b3A6IHVuc2V0ICFpbXBvcnRh\nbnQ7XG5cdFx0XHR9XG5cdFx0XHQjYXJ0aWNsZSAuYXJ0aWNsZV90aXRsZXtcblx0XHRcdCAgbWFy\nZ2luLXRvcDogLjMycmVtICFpbXBvcnRhbnQ7XG5cdFx0XHQgIHBhZGRpbmctdG9wOiB1bnNldCAh\naW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdFx0YFxuICAgICAgICApXG4gICAgICBdO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOmHjeaehOW6lemDqOaOqOiNkFxuICAgICAqXC9cbiAgICByZWZh\nY3RvcmluZ1JlY29tbWVuZGF0aW9uKCkge1xuICAgICAgZnVuY3Rpb24gcmVmYWN0b3JpbmcoKSB7\nXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuY29udGFpbmVyLWZsdWlkXCIp\nLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICB2YXIgX2EyLCBfYjtcbiAgICAgICAgICBs\nZXQgdXJsID0gXCJcIjtcbiAgICAgICAgICBsZXQgdGl0bGUgPSBcIlwiO1xuICAgICAgICAgIGxl\ndCBjb250ZW50ID0gXCJcIjtcbiAgICAgICAgICBsZXQgaW1nID0gXCJcIjtcbiAgICAgICAgICBs\nZXQgaXNDU0RORG93bmxvYWQgPSBmYWxzZTtcbiAgICAgICAgICBsZXQgaXNDU0RORWR1RG93bmxv\nYWQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoaXRlbS5oYXNBdHRyaWJ1dGUoXCJkYXRhLXVybFwi\nKSkge1xuICAgICAgICAgICAgdXJsID0gaXRlbS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXVybFwiKTtc\nbiAgICAgICAgICAgIHRpdGxlID0gKF9hMiA9IGl0ZW0ucXVlcnlTZWxlY3RvcihcIi5yZWNvbW1l\nbmRfdGl0bGUgZGl2LmxlZnRcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYTIuaW5uZXJIVE1MO1xu\nICAgICAgICAgICAgaWYgKCFpdGVtLnF1ZXJ5U2VsZWN0b3IoXCIudGV4dFwiKSkge1xuICAgICAg\nICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb250ZW50ID0gKF9i\nID0gaXRlbS5xdWVyeVNlbGVjdG9yKFwiLnRleHRcIikpID09IG51bGwgPyB2b2lkIDAgOiBfYi5p\nbm5lckhUTUw7XG4gICAgICAgICAgICBpZiAoaXRlbS5xdWVyeVNlbGVjdG9yQWxsKFwiLnJlY29t\nbWVuZC1pbWdcIikubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGl0ZW0ucXVlcnlTZWxlY3RvckFs\nbChcIi5yZWNvbW1lbmQtaW1nXCIpLmZvckVhY2goKGl0ZW0yKSA9PiB7XG4gICAgICAgICAgICAg\nICAgaW1nICs9IGl0ZW0yLmlubmVySFRNTDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAg\nICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHVybCA9IGl0ZW0ucXVlcnlTZWxl\nY3RvcihcImFbZGF0YS10eXBlXVwiKS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpO1xuICAgICAgICAg\nICAgdGl0bGUgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoXCIucmVjb21tZW5kX3RpdGxlIGRpdi5sZWZ0\nXCIpLmlubmVySFRNTDtcbiAgICAgICAgICAgIGNvbnRlbnQgPSBpdGVtLnF1ZXJ5U2VsZWN0b3Io\nXCIudGV4dFwiKS5pbm5lckhUTUw7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBfVVJMXyA9\nIG5ldyBVUkwodXJsKTtcbiAgICAgICAgICBpZiAoX1VSTF8uaG9zdCA9PT0gXCJkb3dubG9hZC5j\nc2RuLm5ldFwiIHx8IF9VUkxfLmhvc3QgPT09IFwid3d3Lml0ZXllLmNvbVwiICYmIF9VUkxfLnBh\ndGhuYW1lLm1hdGNoKFwvXlxcXC9yZXNvdXJjZVwvZ2kpKSB7XG4gICAgICAgICAgICBpc0NTRE5E\nb3dubG9hZCA9IHRydWU7XG4gICAgICAgICAgICB0aXRsZSA9IGA8ZGl2IGNsYXNzPVwiY29tcG9u\nZW50LWJveFwiPjxhIGNsYXNzPVwicHJhaXNlXCIgaHJlZj1cImphdmFzY3JpcHQ6O1wiPkNTRE7k\nuIvovb08XC9hPjxcL2Rpdj5gICsgdGl0bGU7XG4gICAgICAgICAgfSBlbHNlIGlmIChfVVJMXy5v\ncmlnaW4ubWF0Y2goXC9lZHUuY3Nkbi5uZXRcL2dpKSkge1xuICAgICAgICAgICAgaXNDU0RORWR1\nRG93bmxvYWQgPSB0cnVlO1xuICAgICAgICAgICAgdGl0bGUgPSBgPGRpdiBjbGFzcz1cImNvbXBv\nbmVudC1ib3hcIj48YSBjbGFzcz1cImNzZG4tZWR1LXRpdGxlXCIgaHJlZj1cImphdmFzY3JpcHQ6\nO1wiPkNTRE7lrabpmaI8XC9hPjxcL2Rpdj5gICsgdGl0bGU7XG4gICAgICAgICAgfVxuICAgICAg\nICAgIGl0ZW0uc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJHTS1jc2RuLWRsXCIpO1xuICAgICAg\nICAgIGl0ZW0uc2V0QXR0cmlidXRlKFwiZGF0YS11cmxcIiwgdXJsKTtcbiAgICAgICAgICBpdGVt\nLmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPVwiR00tY3Nkbi10aXRsZVwiPjxkaXYgY2xhc3M9XCJs\nZWZ0XCI+JHt0aXRsZX08XC9kaXY+PFwvZGl2PjxkaXYgY2xhc3M9XCJHTS1jc2RuLWNvbnRlbnRc\nIj4ke2NvbnRlbnR9PFwvZGl2PjxkaXYgY2xhc3M9XCJHTS1jc2RuLWltZ1wiPiR7aW1nfTxcL2Rp\ndj5gO1xuICAgICAgICAgIGl0ZW0uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9u\nKCkge1xuICAgICAgICAgICAgaWYgKFBvcHNQYW5lbC5nZXRWYWx1ZShcIm0tY3Nkbi1ibG9nLW9w\nZW5OZXdUYWJcIikpIHtcbiAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsLCBcIl9ibGFua1wi\nKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5o\ncmVmID0gdXJsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICgo\naXNDU0RORG93bmxvYWQgfHwgaXNDU0RORWR1RG93bmxvYWQpICYmIFBvcHNQYW5lbC5nZXRWYWx1\nZShcIm0tY3Nkbi1ibG9nLXJlbW92ZVJlc291cmNlQXJ0aWNsZVwiKSkge1xuICAgICAgICAgICAg\naXRlbS5yZW1vdmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAg\nbGV0IGxvY2tGdW5jdGlvbiA9IG5ldyB1dGlscy5Mb2NrRnVuY3Rpb24ocmVmYWN0b3JpbmcsIDUw\nKTtcbiAgICAgIHV0aWxzLndhaXROb2RlKFwiI3JlY29tbWVuZFwiKS50aGVuKCgkcmVjb21tZW5k\nKSA9PiB7XG4gICAgICAgIGxvZy5pbmZvKFwi6YeN5p6E5bqV6YOo5o6o6I2QXCIpO1xuICAgICAg\nICBsb2NrRnVuY3Rpb24ucnVuKCk7XG4gICAgICAgIHV0aWxzLm11dGF0aW9uT2JzZXJ2ZXIoJHJl\nY29tbWVuZCwge1xuICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgICAgICBsb2Nr\nRnVuY3Rpb24ucnVuKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBjb25maWc6IHsgY2hpbGRM\naXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlLCBhdHRyaWJ1dGVzOiB0cnVlIH1cbiAgICAgICAgfSk7\nXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDlsY\/olL3lupXpg6jmlofnq6Bc\nbiAgICAgKlwvXG4gICAgYmxvY2tCb3R0b21BcnRpY2xlKCkge1xuICAgICAgbG9nLmluZm8oXCLl\nsY\/olL3lupXpg6jmlofnq6BcIik7XG4gICAgICByZXR1cm4gQ29tbW9uVXRpbC5hZGRCbG9ja0NT\nUyhcIiNyZWNvbW1lbmRcIik7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5bGP6JS96K+E6K66\nXG4gICAgICpcL1xuICAgIGJsb2NrQ29tbWVudCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi5bGP6JS9\n6K+E6K66XCIpO1xuICAgICAgcmV0dXJuIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCIjY29tbWVu\ndFwiKTtcbiAgICB9LFxuICAgIFwvKipcbiAgICAgKiDljrvpmaTlub\/lkYpcbiAgICAgKlwvXG4g\nICAgcmVtb3ZlQWRzKCkge1xuICAgICAgbG9nLmluZm8oXCLljrvpmaTlub\/lkYpcIik7XG4gICAg\nICByZXR1cm4gW1xuICAgICAgICBcLyog55m75b2V56qX5Y+jICpcL1xuICAgICAgICBDb21tb25V\ndGlsLndhaXRSZW1vdmUoXCIucGFzc3BvcnQtbG9naW4tY29udGFpbmVyXCIpLFxuICAgICAgICBc\nLyog5omT5byAQVBQICpcL1xuICAgICAgICBDb21tb25VdGlsLndhaXRSZW1vdmUoXCIuYnRuX29w\nZW5fYXBwX3Byb21wdF9ib3guZGV0YWlsLW9wZW4tcmVtb3ZlZFwiKSxcbiAgICAgICAgXC8qIOW5\nv+WRiiAqXC9cbiAgICAgICAgQ29tbW9uVXRpbC53YWl0UmVtb3ZlKFwiLmFkZC1maXJzdEFkXCIp\nLFxuICAgICAgICBcLyog5omT5byAQ1NETiBBUFAg5bCP56iL5bqP55yL5YWo5paHICpcL1xuICAg\nICAgICBDb21tb25VdGlsLndhaXRSZW1vdmUoXCJkaXYuZmVlZC1TaWduLXdlaXhpblwiKSxcbiAg\nICAgICAgXC8qIGlvc+eJiOacrOaPkOekuiAqXC9cbiAgICAgICAgQ29tbW9uVXRpbC53YWl0UmVt\nb3ZlKFwiZGl2Lmlvcy1zaGFkb3dib3hcIilcbiAgICAgIF07XG4gICAgfSxcbiAgICBcLyoqXG4g\nICAgICog5LiN6ZmQ5Yi25Luj56CB5Z2X5pyA5aSn6auY5bqmXG4gICAgICpcL1xuICAgIG5vdExp\nbWl0Q29kZVByZU1heEhlaWdodCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi5LiN6ZmQ5Yi25Luj56CB\n5Z2X5pyA5aSn6auY5bqmXCIpO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKFxuICAgICAgICBcLypj\nc3MqXC9cbiAgICAgICAgYFxuICAgICAgICBwcmV7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiB1\nbnNldCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICk7XG4gICAgfSxc\nbiAgICBcLyoqXG4gICAgICog5LiN6ZmQ5Yi26K+E6K665Yy65pyA5aSn6auY5bqmXG4gICAgICpc\nL1xuICAgIG5vdExpbWl0Q29tbWVudE1heEhlaWdodCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi5LiN\n6ZmQ5Yi26K+E6K665Yy65pyA5aSn6auY5bqmXCIpO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKFxu\nICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxuICAgICAgICAjY29tbWVudHtcbiAgICAgICAg\nICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGBcbiAgICAg\nICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog5YWB6K646YCJ5oup5paH5a2XXG4gICAgICpc\nL1xuICAgIGFsbG93U2VsZWN0VGV4dCgpIHtcbiAgICAgIGxvZy5pbmZvKFwi5YWB6K646YCJ5oup\n5paH5a2XXCIpO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAg\nICAgICAgYFxuICAgICAgICAjY29udGVudF92aWV3cyxcbiAgICAgICAgI2NvbnRlbnRfdmlld3Mg\ncHJlLFxuICAgICAgICAjY29udGVudF92aWV3cyBwcmUgY29kZXtcbiAgICAgICAgICAgIHdlYmtp\ndC10b3VjaC1jYWxsb3V0OiB0ZXh0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAtd2Via2l0LXVz\nZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAta2h0bWwtdXNlci1zZWxl\nY3Q6IHRleHQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IHRleHQg\nIWltcG9ydGFudDtcbiAgICAgICAgICAgIC1tcy11c2VyLXNlbGVjdDogdGV4dCAhaW1wb3J0YW50\nO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxu\nICAgICAgICBgXG4gICAgICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiHquWKqOWxleW8\ngOWGheWuuVxuICAgICAqXC9cbiAgICBhdXRvRXhwYW5kQ29udGVudCgpIHtcbiAgICAgIGxvZy5p\nbmZvKFwi6Ieq5Yqo5bGV5byA5YaF5a65XCIpO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKFxuICAg\nICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxuICAgICAgICAjY29udGVudF92aWV3cyBwcmUuc2V0\nLWNvZGUtaGlkZSxcbiAgICAgICAgLmFydGljbGVfY29udGVudHtcbiAgICAgICAgICBoZWlnaHQ6\nIDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xu\nICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog\n5bGP6JS95bqV6YOo5bel5YW35qCPXG4gICAgICpcL1xuICAgIGJsb2NrQm90dG9tVG9vbEJhcigp\nIHtcbiAgICAgIGxvZy5pbmZvKGDlsY\/olL3lupXpg6jlt6XlhbfmoI9gKTtcbiAgICAgIHJldHVy\nbiBDb21tb25VdGlsLmFkZEJsb2NrQ1NTKFwiI29wZXJhdGVcIik7XG4gICAgfSxcbiAgICBcLyoq\nXG4gICAgICog5bqV6YOo5bel5YW35qCP5bi46am7XG4gICAgICpcL1xuICAgIGJvdHRvbVRvb2xC\nYXJBbHdheXNTaG93KCkge1xuICAgICAgbG9nLmluZm8oYOW6lemDqOW3peWFt+agj+W4uOmpu2Ap\nO1xuICAgICAgcmV0dXJuIGFkZFN0eWxlKFxuICAgICAgICBcLypjc3MqXC9cbiAgICAgICAgYFxu\nXHRcdFx0XC8qIOW6lemDqOW3peWFt+agjyAqXC9cblx0XHRcdCNvcGVyYXRlIHtcblx0XHRcdFx0\nYm90dG9tOiAwICFpbXBvcnRhbnQ7XG5cdFx0XHR9XG5cdFx0XHRgXG4gICAgICApO1xuICAgIH0s\nXG4gICAgXC8qKlxuICAgICAqIOS8mOWMluaUtuiXj+aMiemSrlxuICAgICAqXC9cbiAgICBvcHRp\nbWl6YXRpb25Db2xsZWN0QnV0dG9uKCkge1xuICAgICAgbG9nLmluZm8oYOS8mOWMluaUtuiXj+aM\niemSrmApO1xuICAgICAgdXRpbHMud2FpdE5vZGUoXCIjb3BlcmF0ZSAuY29sbGVjdC1idG5cIiwg\nMWU0KS50aGVuKCgkY29sbGVjdEJ0bikgPT4ge1xuICAgICAgICBpZiAoISRjb2xsZWN0QnRuKSB7\nXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRvbXV0aWxzLm9uKFxuICAg\nICAgICAgICRjb2xsZWN0QnRuLFxuICAgICAgICAgIFwiY2xpY2tcIixcbiAgICAgICAgICBhc3lu\nYyAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHV0aWxzLnByZXZlbnRFdmVudChldmVudCk7XG4g\nICAgICAgICAgICBsZXQgJGlzQ29sbGVjdCA9ICRjb2xsZWN0QnRuLnF1ZXJ5U2VsZWN0b3IoXCIu\nY29sbGVjdFwiKTtcbiAgICAgICAgICAgIGxldCAkdW5Db2xsZWN0ID0gJGNvbGxlY3RCdG4ucXVl\ncnlTZWxlY3RvcihcIi51bmNvbGxlY3RcIik7XG4gICAgICAgICAgICBsZXQgZm9sZGVySW5mbyA9\nIGF3YWl0IENTRE5GYXZvcml0ZUFwaS5mb2xkZXJMaXN0V2l0aENoZWNrKFxuICAgICAgICAgICAg\nICB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lXG4gICAg\nICAgICAgICApO1xuICAgICAgICAgICAgaWYgKCFmb2xkZXJJbmZvKSB7XG4gICAgICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBpc0Zhdm9yaXRlRm9sZGVy\nSWRMaXN0ID0gW107XG4gICAgICAgICAgICBmb2xkZXJJbmZvLmZvckVhY2goKGl0ZW0pID0+IHtc\nbiAgICAgICAgICAgICAgaWYgKGl0ZW0uSXNGYXZvcml0ZSkge1xuICAgICAgICAgICAgICAgIGlz\nRmF2b3JpdGVGb2xkZXJJZExpc3QucHVzaChpdGVtLklEKTtcbiAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgfSk7XG4gICAgICAgICAgICBsZXQgY3JlYXRlQ29sbGVjdEl0ZW0gPSAoZGF0YSkg\nPT4ge1xuICAgICAgICAgICAgICBsZXQgZm9sZGVySWQgPSBkYXRhLklEO1xuICAgICAgICAgICAg\nICBsZXQgJGl0ZW0gPSBkb211dGlscy5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgIFwi\nbGlcIixcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IFwi\nY3Nkbi1jb2xsZWN0aW9uLWl0ZW1cIixcbiAgICAgICAgICAgICAgICAgIGlubmVySFRNTDogKFxu\nICAgICAgICAgICAgICAgICAgICBcLypodG1sKlwvXG4gICAgICAgICAgICAgICAgICAgIGBcblx0\nXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjc2RuLWNvbGxlY3Rpb24taXRlbV9sZWZ0XCI+\nXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjc2RuLWNvbGxlY3Rpb24taXRlbV90\naXRsZVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidGl0bGUtbVwiPiR7\nZGF0YS5OYW1lfTxcL3NwYW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxcL2Rpdj5cblx0XHRcdFx0\nXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjc2RuLWNvbGxlY3Rpb24taXRlbV9leHRcIj5cblx0\nXHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNzZG4tY29sbGVjdGlvbi1pdGVtX2xl\nbmd0aFwiPiR7ZGF0YS5GYXZvcml0ZU51bX3mnaHlhoXlrrk8XC9zcGFuPlxuXHRcdFx0XHRcdFx0\nXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZG90XCI+44O7PFwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0\nXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNzZG4tY29sbGVjdGlvbi1jb250cm9sc1wiPiR7ZGF0YS5J\nc1ByaXZhdGUgPyBcIuengeWvhlwiIDogXCLlhazlvIBcIn08XC9zcGFuPlxuXHRcdFx0XHRcdFx0\nXHRcdFx0XHQ8XC9zcGFuPlxuXHRcdFx0XHRcdFx0XHRcdFx0PFwvZGl2PlxuXHRcdFx0XHRcdFx0\nXHRcdFx0PHNwYW4gY2xhc3M9XCJjb2xsZWN0LWJ0blwiPiR7ZGF0YS5Jc0Zhdm9yaXRlID8gXCLl\nt7LmlLbol49cIiA6IFwi5pS26JePXCJ9PFwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0XHRgXG4gICAg\nICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4g\nICAgICAgICAgICAgICAgICBcImRhdGEtaXMtY29sbGVjdFwiOiBkYXRhLklzRmF2b3JpdGVcbiAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICRpdGVtLnF1\nZXJ5U2VsZWN0b3IoXCIudGl0bGUtbVwiKTtcbiAgICAgICAgICAgICAgbGV0ICRjb250ZW50TGVu\nZ3RoID0gJGl0ZW0ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICBcIi5jc2RuLWNvbGxl\nY3Rpb24taXRlbV9sZW5ndGhcIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAkaXRl\nbS5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgIFwiLmNzZG4tY29sbGVjdGlvbi1jb250\ncm9sc1wiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGxldCAkY29sbGVjdEJ0bjIg\nPSAkaXRlbS5xdWVyeVNlbGVjdG9yKFwiLmNvbGxlY3QtYnRuXCIpO1xuICAgICAgICAgICAgICBk\nb211dGlscy5vbigkY29sbGVjdEJ0bjIsIFwiY2xpY2tcIiwgYXN5bmMgKGV2ZW50MikgPT4ge1xu\nICAgICAgICAgICAgICAgIGxldCBhcnRpY2xlRGV0YWlsVXJsID0gX3Vuc2FmZVdpbmRvdy5hcnRp\nY2xlRGV0YWlsVXJsO1xuICAgICAgICAgICAgICAgIGlmIChhcnRpY2xlRGV0YWlsVXJsID09IG51\nbGwpIHtcbiAgICAgICAgICAgICAgICAgIGFydGljbGVEZXRhaWxVcmwgPSB3aW5kb3cubG9jYXRp\nb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICBsZXQgYXJ0aWNsZUlkID0gX3Vuc2FmZVdpbmRvdy5hcnRpY2xlSWQ7\nXG4gICAgICAgICAgICAgICAgaWYgKGFydGljbGVJZCA9PSBudWxsKSB7XG4gICAgICAgICAgICAg\nICAgICBsb2cuZXJyb3IoXCLojrflj5bmlofnq6BJROWksei0pVwiKTtcbiAgICAgICAgICAgICAg\nICAgIFFtc2cuZXJyb3IoXCLojrflj5bmlofnq6BJROWksei0pVwiKTtcbiAgICAgICAgICAgICAg\nICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHVzZXJu\nYW1lID0gX3Vuc2FmZVdpbmRvdy51c2VybmFtZTtcbiAgICAgICAgICAgICAgICBpZiAodXNlcm5h\nbWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKFwi6I635Y+W5paH56ug\n5L2c6ICF5aSx6LSlXCIpO1xuICAgICAgICAgICAgICAgICAgUW1zZy5lcnJvcihcIuiOt+WPluaW\nh+eroOS9nOiAheWksei0pVwiKTtcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGFydGljbGVUaXRsZSA9IF91bnNhZmVXaW5k\nb3cuYXJ0aWNsZVRpdGxlO1xuICAgICAgICAgICAgICAgIGlmIChhcnRpY2xlVGl0bGUgPT0gbnVs\nbCkge1xuICAgICAgICAgICAgICAgICAgYXJ0aWNsZVRpdGxlID0gZG9jdW1lbnQudGl0bGUucmVw\nbGFjZShcLy1DU0RO5Y2a5a6iJFwvLCBcIlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgaWYgKGFydGljbGVUaXRsZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBs\nb2cuZXJyb3IoXCLojrflj5bmlofnq6DmoIfpopjlpLHotKVcIik7XG4gICAgICAgICAgICAgICAg\nICBRbXNnLmVycm9yKFwi6I635Y+W5paH56ug5qCH6aKY5aSx6LSlXCIpO1xuICAgICAgICAgICAg\nICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgYXJ0\naWNsZURlc2MgPSBfdW5zYWZlV2luZG93LmFydGljbGVEZXNjO1xuICAgICAgICAgICAgICAgIGlm\nIChhcnRpY2xlRGVzYyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgJG1ldGEgPSAk\nKFwibWV0YVtuYW1lPSdkZXNjcmlwdGlvbiddXCIpO1xuICAgICAgICAgICAgICAgICAgaWYgKCRt\nZXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIGFydGljbGVEZXNjID0gJG1ldGEuZ2V0QXR0cmli\ndXRlKFwiY29udGVudFwiKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgaWYgKGFydGljbGVEZXNjID09IG51bGwpIHtcbiAgICAgICAgICAg\nICAgICAgIGxvZy5lcnJvcihcIuiOt+WPluaWh+eroOaPj+i\/sOWksei0pVwiKTtcbiAgICAgICAg\nICAgICAgICAgIFFtc2cuZXJyb3IoXCLojrflj5bmlofnq6Dmj4\/ov7DlpLHotKVcIik7XG4gICAg\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIGxldCBmb2xkZXJJZExpc3QgPSBbLi4uaXNGYXZvcml0ZUZvbGRlcklkTGlzdF07XG4gICAgICAg\nICAgICAgICAgbGV0ICRsb2FkaW5nID0gUW1zZy5sb2FkaW5nKFwi5aSE55CG5LitLi4uXCIpO1xu\nICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICBsZXQgY2hlY2tSZXNwb25z\nZSA9IGF3YWl0IENTRE5GYXZvcml0ZUFwaS5jaGVja0Zhdm9yaXRlQnlVcmwoXG4gICAgICAgICAg\nICAgICAgICAgIGFydGljbGVEZXRhaWxVcmxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAg\nICAgICAgICAgICBpZiAoY2hlY2tSZXNwb25zZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAg\nICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGxvZy5p\nbmZvKGZvbGRlcklkLCBjaGVja1Jlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgIGxldCB0b0Nv\nbGxlY3QgPSAhY2hlY2tSZXNwb25zZVtmb2xkZXJJZF07XG4gICAgICAgICAgICAgICAgICBpZiAo\ndG9Db2xsZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKGDmt7vliqDmlLbol49g\nKTtcbiAgICAgICAgICAgICAgICAgICAgZm9sZGVySWRMaXN0LnB1c2goZm9sZGVySWQpO1xuICAg\nICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oYOWP\nlua2iOaUtuiXj2ApO1xuICAgICAgICAgICAgICAgICAgICBmb2xkZXJJZExpc3Quc3BsaWNlKGZv\nbGRlcklkTGlzdC5pbmRleE9mKGZvbGRlcklkKSwgMSk7XG4gICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBhd2FpdCBDU0RORmF2b3JpdGVBcGkuYWRk\nRmF2b3JpdGVJbkZvbGRzKHtcbiAgICAgICAgICAgICAgICAgICAgYXV0aG9yOiB1c2VybmFtZSxc\nbiAgICAgICAgICAgICAgICAgICAgdXJsOiBhcnRpY2xlRGV0YWlsVXJsLFxuICAgICAgICAgICAg\nICAgICAgICBzb3VyY2U6IFwiYmxvZ1wiLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VJZDog\nYXJ0aWNsZUlkLFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogYXJ0aWNsZVRpdGxlLFxuICAg\nICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYXJ0aWNsZURlc2MsXG4gICAgICAgICAgICAg\nICAgICAgIGZyb21UeXBlOiBcIlBDXCIsXG4gICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lOiBk\nYXRhLlVzZXJuYW1lLFxuICAgICAgICAgICAgICAgICAgICBmb2xkZXJJZExpc3RcbiAgICAgICAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAg\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICBsZXQgY2hlY2tfaXNDb2xsZWN0ID0gYXdhaXQgQ1NETkZhdm9yaXRlQXBpLmNoZWNrRmF2\nb3JpdGVCeVVybChhcnRpY2xlRGV0YWlsVXJsKTtcbiAgICAgICAgICAgICAgICAgIGlmIChjaGVj\na19pc0NvbGxlY3QgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBsb2cuaW5mbyhmb2xkZXJJZCwgY2hl\nY2tfaXNDb2xsZWN0KTtcbiAgICAgICAgICAgICAgICAgICRpdGVtLnNldEF0dHJpYnV0ZShcbiAg\nICAgICAgICAgICAgICAgICAgXCJkYXRhLWlzLWNvbGxlY3RcIixcbiAgICAgICAgICAgICAgICAg\nICAgKCEhY2hlY2tfaXNDb2xsZWN0W2ZvbGRlcklkXSkudG9TdHJpbmcoKVxuICAgICAgICAgICAg\nICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlmICh0b0NvbGxlY3QpIHtcbiAgICAgICAgICAg\nICAgICAgICAgaWYgKCFjaGVja19pc0NvbGxlY3RbZm9sZGVySWRdKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgbG9nLmVycm9yKFwi5pS26JeP5aSx6LSlXCIsIGNoZWNrX2lzQ29sbGVjdCwgZm9s\nZGVySWQpO1xuICAgICAgICAgICAgICAgICAgICAgIFFtc2cuZXJyb3IoXCLmlLbol4\/lpLHotKVc\nIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAg\nbG9nLnN1Y2Nlc3MoXCLmlLbol4\/miJDlip9cIik7XG4gICAgICAgICAgICAgICAgICAgICAgUW1z\nZy5zdWNjZXNzKFwi5pS26JeP5oiQ5YqfXCIpO1xuICAgICAgICAgICAgICAgICAgICAgIGRvbXV0\naWxzLnRleHQoJGNvbGxlY3RCdG4yLCBcIuW3suaUtuiXj1wiKTtcbiAgICAgICAgICAgICAgICAg\nICAgICBpZiAoIWlzRmF2b3JpdGVGb2xkZXJJZExpc3QuaW5jbHVkZXMoZm9sZGVySWQpKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBpc0Zhdm9yaXRlRm9sZGVySWRMaXN0LnB1c2goZm9sZGVy\nSWQpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBkYXRh\nLkZhdm9yaXRlTnVtKys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2hlY2tfaXNDb2xsZWN0W2ZvbGRl\ncklkXSkge1xuICAgICAgICAgICAgICAgICAgICAgIGxvZy5zdWNjZXNzKFwi5Y+W5raI5pS26JeP\n5oiQ5YqfXCIpO1xuICAgICAgICAgICAgICAgICAgICAgIFFtc2cuc3VjY2VzcyhcIuWPlua2iOaU\ntuiXj+aIkOWKn1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICBkb211dGlscy50ZXh0KCRjb2xs\nZWN0QnRuMiwgXCLmlLbol49cIik7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRmF2b3Jp\ndGVGb2xkZXJJZExpc3QuaW5jbHVkZXMoZm9sZGVySWQpKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBpc0Zhdm9yaXRlRm9sZGVySWRMaXN0LnNwbGljZShcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgaXNGYXZvcml0ZUZvbGRlcklkTGlzdC5pbmRleE9mKGZvbGRlcklkKSxcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS5GYXZvcml0ZU51bS0t\nO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGxv\nZy5lcnJvcihcIuWPlua2iOaUtuiXj+Wksei0pVwiLCBjaGVja19pc0NvbGxlY3QsIGZvbGRlcklk\nKTtcbiAgICAgICAgICAgICAgICAgICAgICBRbXNnLmVycm9yKFwi5Y+W5raI5pS26JeP5aSx6LSl\nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICBkb211dGlscy50ZXh0KCRjb250ZW50TGVuZ3RoLCBgJHtkYXRhLkZhdm9yaXRl\nTnVtfeadoeWGheWuuWApO1xuICAgICAgICAgICAgICAgICAgbGV0IGZpbmRWYWx1ZSA9IE9iamVj\ndC52YWx1ZXMoY2hlY2tfaXNDb2xsZWN0KS5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoaXRl\nbSkgPT4gaXRlbVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlmIChm\naW5kVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9tdXRpbHMuc2hvdygkaXNDb2xsZWN0\nLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGRvbXV0aWxzLmhpZGUoJHVuQ29sbGVjdCwg\nZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAg\nZG9tdXRpbHMuc2hvdygkdW5Db2xsZWN0LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGRv\nbXV0aWxzLmhpZGUoJGlzQ29sbGVjdCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgICAgJGxvYWRpbmcuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNo\nIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKGVycm9yKTtcbiAgICAgICAg\nICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgJGxvYWRpbmcuY2xvc2UoKTtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1\ncm4gJGl0ZW07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbGV0ICRhbGVydCA9IF9fcG9w\ncy5hbGVydCh7XG4gICAgICAgICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgICAgICAgdGV4dDog\nXCLmt7vliqDmlLbol4\/lpLlcIixcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJjZW50ZXJc\nIlxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAg\nICAgICAgdGV4dDogKFxuICAgICAgICAgICAgICAgICAgXC8qaHRtbCpcL1xuICAgICAgICAgICAg\nICAgICAgYFxuXHRcdFx0XHRcdFx0XHRcdFx0PHVsIGNsYXNzPVwiY3Nkbi1jb2xsZWN0aW9uLWl0\nZW1zXCI+PFwvdWw+XG5cdFx0XHRcdFx0XHRcdFx0YFxuICAgICAgICAgICAgICAgICksXG4gICAg\nICAgICAgICAgICAgaHRtbDogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBi\ndG46IHtcbiAgICAgICAgICAgICAgICBvazoge1xuICAgICAgICAgICAgICAgICAgZW5hYmxlOiBm\nYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAg\nd2lkdGg6IFBhbmVsVUlTaXplLnNldHRpbmcud2lkdGgsXG4gICAgICAgICAgICAgIGhlaWdodDog\nUGFuZWxVSVNpemUuc2V0dGluZy5oZWlnaHQsXG4gICAgICAgICAgICAgIGRyYWc6IHRydWUsXG4g\nICAgICAgICAgICAgIG1hc2s6IHtcbiAgICAgICAgICAgICAgICBlbmFibGU6IHRydWVcbiAgICAg\nICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc3R5bGU6IChcbiAgICAgICAgICAgICAgICBcLypj\nc3MqXC9cbiAgICAgICAgICAgICAgICBgXG5cdFx0XHRcdFx0XHRcdFx0LmNzZG4tY29sbGVjdGlv\nbi1pdGVtc3tcblx0XHRcdFx0XHRcdFx0XHRcdC0tZm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRc\ndFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHQuY3Nkbi1jb2xsZWN0aW9uLWl0ZW1ze1xuXHRcdFx0\nXHRcdFx0XHRcdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUpO1xuXHRcdFx0XHRcdFx0XHRc\ndFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMjBweCAw\nO1xuXHRcdFx0XHRcdFx0XHRcdFx0bWFyZ2luOiAyNHB4IDA7XG5cdFx0XHRcdFx0XHRcdFx0XHRv\ndmVyZmxvdzogYXV0bztcblx0XHRcdFx0XHRcdFx0XHRcdC1tcy1zY3JvbGwtY2hhaW5pbmc6IG5v\nbmU7XG5cdFx0XHRcdFx0XHRcdFx0XHRvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluO1xuXHRc\ndFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHQuY3Nkbi1jb2xsZWN0aW9uLWl0ZW17XG5c\ndFx0XHRcdFx0XHRcdFx0XHR3aWR0aDogMTAwJTtcbiAgICBcdFx0XHRcdFx0XHRcdFx0aGVpZ2h0\nOiA2MnB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRcdFx0\nXHRcdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmc6\nIDhweCAxMnB4O1xuXHRcdFx0XHRcdFx0XHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0XHRc\ndFx0XHRcdFx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5\nOiAtbXMtZmxleGJveDtcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHRc\ndFx0XHRcdFx0XHQtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdFx0XHRcdFx0\nLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBj\nZW50ZXI7XG5cdFx0XHRcdFx0XHRcdFx0XHQtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xuXHRc\ndFx0XHRcdFx0XHRcdFx0LW1zLWZsZXgtcGFjazoganVzdGlmeTtcblx0XHRcdFx0XHRcdFx0XHRc\ndGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0XHRcdFx0XHRcdFx0XHRcdGJvcmRl\nci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGY1O1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0\nXHRcdFx0XHQuY3Nkbi1jb2xsZWN0aW9uLWl0ZW1fbGVmdHtcblx0XHRcdFx0XHRcdFx0XHRcdGxp\nbmUtaGVpZ2h0OiBub3JtYWw7XG5cdFx0XHRcdFx0XHRcdFx0XHRmbGV4OiAxO1xuXHRcdFx0XHRc\ndFx0XHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0\nXHRcdFx0LmNzZG4tY29sbGVjdGlvbi1pdGVtX3RpdGxle1xuXHRcdFx0XHRcdFx0XHRcdFx0b3Zl\ncmZsb3c6IGhpZGRlbjtcblx0XHRcdFx0XHRcdFx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lz\nO1xuXHRcdFx0XHRcdFx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdFx0XHRcdFx0\nXHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHQuY3Nk\nbi1jb2xsZWN0aW9uLWl0ZW1fZXh0e1xuXHRcdFx0XHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDQw\nMDtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9yOiAjOTk5YWFhO1xuXHRcdFx0XHRcdFx0XHRcdFx0\nbGluZS1oZWlnaHQ6IDE3cHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXJnaW4tdG9wOiA4cHg7XG5c\ndFx0XHRcdFx0XHRcdFx0XHRmb250LXNpemU6IC44ZW07XG5cdFx0XHRcdFx0XHRcdFx0XHRvdmVy\nZmxvdzogaGlkZGVuO1xuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7\nXG5cdFx0XHRcdFx0XHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0XHRcdFx0XHRc\ndFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtZmxleDtc\nblx0XHRcdFx0XHRcdFx0XHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRcdFx0\nfVxuXHRcdFx0XHRcdFx0XHRcdC5jb2xsZWN0LWJ0bntcblx0XHRcdFx0XHRcdFx0XHRcdGNvbG9y\nOiAjNTU1NjY2O1xuXHRcdFx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOiB2YXIoLS1mb250LXNpemUp\nO1xuXHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg6IDY0cHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRoZWln\naHQ6IDMwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogMzBweDtcblx0XHRcdFx0\nXHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cdFx0XHRcdFx0XHRcdFx0XHR0ZXh0LWFs\naWduOiBjZW50ZXI7XG5cdFx0XHRcdFx0XHRcdFx0XHQtd2Via2l0LXRyYW5zaXRpb246IGFsbCAu\nMnM7XG5cdFx0XHRcdFx0XHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwgLjJzO1xuXHRcdFx0XHRcdFx0\nXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjY2NkODtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0\nXHRcdFx0XHRcdFx0LmNzZG4tY29sbGVjdGlvbi1pdGVtW2RhdGEtaXMtY29sbGVjdD1cInRydWVc\nIl0gLmNvbGxlY3QtYnRue1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29sb3I6ICM5OTlhYWE7XG5cdFx0\nXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiByZ2JhKDIzMiwgMjMyLCAyMzcsIC4zKTtcblx0XHRc\ndFx0XHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNlOGU4ZWQ7XG5cdFx0XHRcdFx0XHRcdFx0\nfVxuXHRcdFx0XHRcdFx0XHRcdFwvKiAuY3Nkbi1jb2xsZWN0aW9uLWl0ZW06aG92ZXJ7XG5cdFx0\nXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiAjZjVmNmY3O1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0\nXHRcdFx0XHRcdFx0XHQuY3Nkbi1jb2xsZWN0aW9uLWl0ZW06aG92ZXIgLmNvbGxlY3QtYnRue1xu\nXHRcdFx0XHRcdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzU1NTY2Njtcblx0XHRcdFx0XHRc\ndFx0XHR9ICpcL1xuXHRcdFx0XHRcdFx0XHRgXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAg\nIH0pO1xuICAgICAgICAgICAgbGV0ICRjb2xsZWN0aW9uQ29udGFpbmVyID0gJGFsZXJ0LiRzaGFk\nb3dSb290LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgIFwiLmNzZG4tY29sbGVjdGlvbi1p\ndGVtc1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZm9sZGVySW5mby5mb3JFYWNoKChm\nb2xkZXJJbmZvSXRlbSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgJGl0ZW0gPSBjcmVhdGVDb2xs\nZWN0SXRlbShmb2xkZXJJbmZvSXRlbSk7XG4gICAgICAgICAgICAgICRjb2xsZWN0aW9uQ29udGFp\nbmVyLmFwcGVuZENoaWxkKCRpdGVtKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4g\nICAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1c\nbiAgfTtcbiAgY29uc3QgU2hpZWxkQ1NTID0gXCJcLyog5Y+z5LiL6KeS55qE5Lmw5LiA5bm06YCB\nM+S4quaciOeahOW5v+WRiuWbvuaghyAqXC9cXHJcXG4uYmxpbmRfYm94IHtcXHJcXG4gIGRpc3Bs\nYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IE1fQ1NETldlbkt1\nID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBhZGRTdHlsZShTaGllbGRDU1MpO1xuICAgICAgUG9w\nc1BhbmVsLmV4ZWNNZW51T25jZShcIm0tY3Nkbi13ZW5rdS1zaGllbGRCb3R0b21Ub29sYmFyXCIs\nICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hpZWxkQm90dG9tVG9vbGJhcigpO1xuICAg\nICAgfSk7XG4gICAgfSxcbiAgICBcLyoqXG4gICAgICog44CQ5bGP6JS944CR5bqV6YOo5bel5YW3\n5qCPXG4gICAgICpcL1xuICAgIHNoaWVsZEJvdHRvbVRvb2xiYXIoKSB7XG4gICAgICBsb2cuaW5m\nbyhcIuOAkOWxj+iUveOAkeW6lemDqOW3peWFt+agj1wiKTtcbiAgICAgIHJldHVybiBDb21tb25V\ndGlsLmFkZEJsb2NrQ1NTKGAucGFnZS1jb250YWluZXIgPiBkaXYuYnRuYCk7XG4gICAgfVxuICB9\nO1xuICBjb25zdCBDU0ROQmxvY2tDU1MgPSBcIlwvKiDlj7PkuIvop5Lmgqzmta7lm77moIcg5Lmw\nMeW5tOmAgTPkuKrmnIggKlwvXFxyXFxuLnBhZ2UtY29udGFpbmVyIC5ibGluZF9ib3gsXFxyXFxu\nXC8qIOW6lemDqOW3peWFt+agj+WPs+i+ueeahCDlvIDkvJrlkZjmjInpkq7vvIjkvY7oh7N4eOWF\ng1wv5qyh77yJICpcL1xcclxcbi5wYWdlLWNvbnRhaW5lciAuYnRuIC5tbC0xMixcXHJcXG5cLyog\n55m75b2V5by556qXICpcL1xcclxcbi5wYXNzcG9ydC1sb2dpbi1jb250YWluZXIsXFxyXFxuXC8q\nIOmAmueUqOW5v+WRimNsYXNzTmFtZeWMuemFjSAqXC9cXHJcXG4uYWRzIHtcXHJcXG5cdGRpc3Bs\nYXk6IG5vbmUgIWltcG9ydGFudDtcXHJcXG59XFxyXFxuXCI7XG4gIGNvbnN0IE1fQ1NETkRvd25s\nb2FkID0ge1xuICAgIGluaXQoKSB7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNlKFwibS1j\nc2RuLWRvd25sb2FkLXJlbW92ZUFkc1wiLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiBhZGRTdHls\nZShDU0ROQmxvY2tDU1MpO1xuICAgICAgfSk7XG4gICAgICBQb3BzUGFuZWwuZXhlY01lbnVPbmNl\nKFxuICAgICAgICBcIm0tY3Nkbi1kb3dubG9hZC1hdXRvbWF0aWNhbGx5RXhwYW5kUmVzb3VyY2VJ\nbnRyb2R1Y3Rpb25cIixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmF1\ndG9tYXRpY2FsbHlFeHBhbmRSZXNvdXJjZUludHJvZHVjdGlvbigpO1xuICAgICAgICB9XG4gICAg\nICApO1xuICAgIH0sXG4gICAgXC8qKlxuICAgICAqIOiHquWKqOWxleW8gOi1hOa6kOS7i+e7jVxu\nICAgICAqXC9cbiAgICBhdXRvbWF0aWNhbGx5RXhwYW5kUmVzb3VyY2VJbnRyb2R1Y3Rpb24oKSB7\nXG4gICAgICBsb2cuaW5mbyhcIuiHquWKqOWxleW8gOi1hOa6kOS7i+e7jVwiKTtcbiAgICAgIHJl\ndHVybiBbXG4gICAgICAgIENvbW1vblV0aWwuYWRkQmxvY2tDU1MoXCJsYWJlbC51bmZvbGQtZm9u\ndFwiKSxcbiAgICAgICAgYWRkU3R5bGUoXG4gICAgICAgICAgXC8qY3NzKlwvXG4gICAgICAgICAg\nYFxuXHRcdFx0LnJlc291cmNlLWRlc2N7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IHVuc2V0ICFpbXBv\ncnRhbnQ7XG5cdFx0XHRcdG92ZXJmbG93OiB1bnNldCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRc\ndFx0YFxuICAgICAgICApXG4gICAgICBdO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgTV9DU0ROID0g\ne1xuICAgIGluaXQoKSB7XG4gICAgICBpZiAoQ1NETlJvdXRlci5pc0xpbmsoKSkge1xuICAgICAg\nICBsb2cuaW5mbyhcIlJvdXRlcjog5Lit6L2s6ZO+5o6lXCIpO1xuICAgICAgICBNX0NTRE5MaW5r\nLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQ1NETlJvdXRlci5pc0h1YVdlaUNsb3VkQmxvZygp\nKSB7XG4gICAgICAgIGxvZy5pbmZvKFwiUm91dGVyOiDljY7kuLrkupHogZTnm59cIik7XG4gICAg\nICAgIE1fQ1NETkh1YVdlaUNsb3VkLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQ1NETlJvdXRl\nci5pc0Jsb2coKSkge1xuICAgICAgICBsb2cuaW5mbyhcIlJvdXRlcjog5Y2a5a6iXCIpO1xuICAg\nICAgICBNX0NTRE5CbG9nLmluaXQoKTtcbiAgICAgIH0gZWxzZSBpZiAoQ1NETlJvdXRlci5pc1dl\nbkt1KCkpIHtcbiAgICAgICAgbG9nLmluZm8oXCJSb3V0ZXI6IOaWh+W6k1wiKTtcbiAgICAgICAg\nTV9DU0ROV2VuS3UuaW5pdCgpO1xuICAgICAgfSBlbHNlIGlmIChDU0ROUm91dGVyLmlzRG93bmxv\nYWQoKSkge1xuICAgICAgICBsb2cuaW5mbyhcIlJvdXRlcjog6LWE5rqQ5LiL6L29XCIpO1xuICAg\nICAgICBNX0NTRE5Eb3dubG9hZC5pbml0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cu\nZXJyb3IoXCLmmoLmnKrpgILphY3vvIzor7flj43ppojlvIDlj5HogIXvvJpcIiArIGdsb2JhbFRo\naXMubG9jYXRpb24uaHJlZik7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBQb3BzUGFuZWwuaW5p\ndCgpO1xuICBsZXQgaXNNb2JpbGUgPSB1dGlscy5pc1Bob25lKCk7XG4gIGxldCBDSEFOR0VfRU5W\nX1NFVF9LRVkgPSBcImNoYW5nZV9lbnZfc2V0XCI7XG4gIGxldCBjaG9vc2VNb2RlID0gX0dNX2dl\ndFZhbHVlKENIQU5HRV9FTlZfU0VUX0tFWSk7XG4gIEdNX01lbnUuYWRkKHtcbiAgICBrZXk6IENI\nQU5HRV9FTlZfU0VUX0tFWSxcbiAgICB0ZXh0OiBg4pqZIOiHquWKqDogJHtpc01vYmlsZSA\/IFwi\n56e75Yqo56uvXCIgOiBcIlBD56uvXCJ9YCxcbiAgICBhdXRvUmVsb2FkOiBmYWxzZSxcbiAgICBp\nc1N0b3JlVmFsdWU6IGZhbHNlLFxuICAgIHNob3dUZXh0KHRleHQpIHtcbiAgICAgIGlmIChjaG9v\nc2VNb2RlID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgICB9XG4gICAgICBy\nZXR1cm4gdGV4dCArIGAg5omL5YqoOiAke2Nob29zZU1vZGUgPT0gMSA\/IFwi56e75Yqo56uvXCIg\nOiBjaG9vc2VNb2RlID09IDIgPyBcIlBD56uvXCIgOiBcIuacquefpVwifWA7XG4gICAgfSxcbiAg\nICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgbGV0IGFsbG93VmFsdWUgPSBbMCwgMSwgMl07XG4g\nICAgICBsZXQgY2hvb3NlVGV4dCA9IHdpbmRvdy5wcm9tcHQoXG4gICAgICAgIFwi6K+36L6T5YWl\n5b2T5YmN6ISa5pys546v5aKD5Yik5a6aXFxuXFxu6Ieq5Yqo5Yik5patOiAwXFxu56e75Yqo56uv\nOiAxXFxuUEPnq686IDJcIixcbiAgICAgICAgXCIwXCJcbiAgICAgICk7XG4gICAgICBpZiAoIWNo\nb29zZVRleHQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbGV0IGNob29zZU1v\nZGUyID0gcGFyc2VJbnQoY2hvb3NlVGV4dCk7XG4gICAgICBpZiAoaXNOYU4oY2hvb3NlTW9kZTIp\nKSB7XG4gICAgICAgIFFtc2cuZXJyb3IoXCLovpPlhaXnmoTkuI3mmK\/op4TojIPnmoTmlbDlrZdc\nIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmICghYWxsb3dWYWx1ZS5pbmNs\ndWRlcyhjaG9vc2VNb2RlMikpIHtcbiAgICAgICAgUW1zZy5lcnJvcihcIui+k+WFpeeahOWAvOW\/\nhemhu+aYrzDmiJYx5oiWMlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYg\nKGNob29zZU1vZGUyID09IDApIHtcbiAgICAgICAgX0dNX2RlbGV0ZVZhbHVlKENIQU5HRV9FTlZf\nU0VUX0tFWSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBfR01fc2V0VmFsdWUoQ0hBTkdFX0VO\nVl9TRVRfS0VZLCBjaG9vc2VNb2RlMik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgaWYgKGNo\nb29zZU1vZGUgIT0gbnVsbCkge1xuICAgIGxvZy5pbmZvKGDmiYvliqjliKTlrprkuLoke2Nob29z\nZU1vZGUgPT09IDEgPyBcIuenu+WKqOerr1wiIDogXCJQQ+err1wifWApO1xuICAgIGlmIChjaG9v\nc2VNb2RlID09IDEpIHtcbiAgICAgIE1fQ1NETi5pbml0KCk7XG4gICAgfSBlbHNlIGlmIChjaG9v\nc2VNb2RlID09IDIpIHtcbiAgICAgIENTRE4uaW5pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBR\nbXNnLmVycm9yKFwi5oSP5aSW77yM5omL5Yqo5Yik5a6a55qE5YC85LiN5Zyo6IyD5Zu05YaFXCIp\nO1xuICAgICAgX0dNX2RlbGV0ZVZhbHVlKENIQU5HRV9FTlZfU0VUX0tFWSk7XG4gICAgfVxuICB9\nIGVsc2Uge1xuICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgbG9nLmluZm8oXCLoh6rliqjliKTl\nrprkuLrnp7vliqjnq69cIik7XG4gICAgICBNX0NTRE4uaW5pdCgpO1xuICAgIH0gZWxzZSB7XG4g\nICAgICBsb2cuaW5mbyhcIuiHquWKqOWIpOWumuS4ulBD56uvXCIpO1xuICAgICAgQ1NETi5pbml0\nKCk7XG4gICAgfVxuICB9XG5cbn0pKFFtc2csIERPTVV0aWxzLCBVdGlscywgcG9wcyk7In0KeyJz\nY3JpcHRJZCI6ImZhNmYzMTUzYjU5MWUwNmZiZjAxNzBkOTM1YWQwYWZlIiwiZW5hYmxlZCI6dHJ1\nZSwidXJsIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDM4NjU2\nXC8lRTglODclQUElRTUlOEElQTglRTUlQjElOTUlRTUlQkMlODAudXNlci5qcyIsImNvZGVWMiI6\nIlwvXC8gPT1Vc2VyU2NyaXB0PT1cblwvXC8gQG5hbWUgICAgICAgICDoh6rliqjlsZXlvIBcblwv\nXC8gQHZlcnNpb24gICAgICAxLjMuNzhcblwvXC8gQG5hbWVzcGFjZSAgICBodHRwczpcL1wvZ2l0\naHViLmNvbVwvQWlyQmFzaFhcL0F1dG9VbmZvbGRcL1xuXC9cLyBAaG9tZXBhZ2VVUkwgIGh0dHBz\nOlwvXC9naXRodWIuY29tXC9BaXJCYXNoWFwvVXNlclNjcmlwdFxuXC9cLyBAYXV0aG9yICAgICAg\nIGFpcmJhc2hcblwvXC8gQGRlc2NyaXB0aW9uICDoh6rliqjlsZXlvIDmlofmoaNcdOmakOiXj+mD\nqOWIhjvplb\/mnJ\/nu7TmiqTjgIFQQyvmiYvmnLrlhajlubPlj7DmlK\/mjIE75YWo5bmz5Y+w5pSv\n5oyBOkNTRE7jgIHnvJbnqIvkuYvlrrbjgIHnroDkuabjgIHnn6XkuY7jgIHnmb7lrrblj7fjgIHn\nmb7luqbotYTorq\/jgIHnmb7luqbnmb7np5HjgIHnmb7luqbnu4\/pqozjgIHnmb7luqbnn6XpgZPj\ngIHnmb7luqbotLTlkKfjgIHnmb7luqbmlrDpl7vjgIHmlrDmtarmlrDpl7vjgIHohb7orq\/mlrDp\nl7vjgIHmkJzni5DmlrDpl7vjgIHnvZHmmJPmlrDpl7vjgIHlh6Tlh7DmlrDpl7vjgIHmvo7muYPm\nlrDpl7vjgIHmlrDkuqzmiqXjgIHlpK7lub\/nvZHjgIHnjq\/nkIPnvZHjgIHkurrmsJHml6XmiqXj\ngIHkurrmsJHnvZHjgIHkuK3ljY7nvZHjgIHku4rml6XlpLTmnaHjgIHkuJzmlrnotYTorq\/jgIHk\nuIHpppnlm63jgIHmnInmnaXljLvnlJ\/jgIHlgaXlurfnlYzjgIEzNuawquOAgeaenOWjs+OAgeiZ\njuaJkeOAgeiZjuWXheOAgeWktOadoeOAgULnq5nkuJPmoI\/jgIFC56uZ56yU6K6w44CB5b6u5Y2a\n5paH56ug44CB6LGG55Oj5paH56ug44CB6LGG55Oj5bCP57uE44CB5byA5rqQ5Lit5Zu944CB6Zi\/\n6YeM5LqR5byA5Y+R6ICF56S+5Yy644CB6IW+6K6v5LqR5byA5Y+R6ICF56S+5Yy644CB5Y2O5Li6\n5LqR5byA5Y+R6ICF56S+5Yy644CBMzYw5Zu+5Lmm6aaG44CB5aSq5bmz5rSL55S16ISR572R44CB\n5Lit5YWz5p2R5Zyo57q\/44CB5rG96L2m5LmL5a6244CB5ri45L6g572R44CB5ri45rCR5pif56m6\n44CB572R5piT5aSn56We44CBMzYw6Zeu562U44CB5aSp55y85p+l44CB5aSp5rav56S+5Yy644CB\n5paw5rWq6LSi57uP44CB5Lic5pa56LSi5a+M572R44CB5Zac6ams5ouJ6ZuF44CBaXQxMzUy44CB\n5Luj56CB6ZqP5oOz5b2V44CB5Y+k6K+X5paH572RXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wv\nKi5ibG9nLmNzZG4ubmV0XC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvYmxvZy5jc2RuLm5l\ndFwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2Fzay5jc2RuLm5ldFwvcXVlc3Rpb25zXC8q\nXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvZG93bmxvYWQuY3Nkbi5uZXRcL2Rvd25sb2FkXC8q\nXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvd2Vua3UuY3Nkbi5uZXRcL2Fuc3dlclwvKlxuXC9c\nLyBAbWF0Y2ggICAgICAgICo6XC9cLyouamI1MS5jY1wvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6\nXC9cLyouamlhbnNodS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93d3cuemhpaHUu\nY29tXC9xdWVzdGlvblwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3podWFubGFuLnpoaWh1\nLmNvbVwvcFwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2ppbmd5YW4uYmFpZHUuY29tXC9h\ncnRpY2xlKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3poaWRhby5iYWlkdS5jb21cL3F1ZXN0\naW9uKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2JhaWtlLmJhaWR1LmNvbVwvaXRlbVwvKlxu\nXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3RpZWJhLmJhaWR1LmNvbVwvcCpcblwvXC8gQG1hdGNo\nICAgICAgICAqOlwvXC93ay5iYWlkdS5jb21cL3ZpZXdcLypcblwvXC8gQG1hdGNoICAgICAgICAq\nOlwvXC90YW5iaS5iYWlkdS5jb21cL2g1YXBwdG9waWNcL2Jyb3dzZVwvKlxuXC9cLyBAbWF0Y2gg\nICAgICAgICo6XC9cL2JhaWppYWhhby5iYWlkdS5jb21cL3MqXG5cL1wvIEBtYXRjaCAgICAgICAg\nKjpcL1wvZWFzeWxlYXJuLmJhaWR1LmNvbVwvZWR1LXBhZ2VcLypcblwvXC8gQG1hdGNoICAgICAg\nICAqOlwvXC9tYmQuYmFpZHUuY29tXC9uZXdzcGFnZVwvZGF0YVwvKlxuXC9cLyBAbWF0Y2ggICAg\nICAgICo6XC9cL25ld3MuYmFpZHUuY29tXC9uZXdzKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9c\nL20uYmFpZHUuY29tXC9zZl9iYWlqaWFoYW9cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8q\nLnNpbmEuY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8zZy4xNjMuY29tXC8qXG5cL1wv\nIEBtYXRjaCAgICAgICAgKjpcL1wvKi5zb2h1LmNvbVwvYVwvKlxuXC9cLyBAbWF0Y2ggICAgICAg\nICo6XC9cL3ZpZXcuaW5ld3MucXEuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi5p\nZmVuZy5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLnRoZXBhcGVyLmNuXC9uZXdz\nRGV0YWlsX2ZvcndhcmQqXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvbS5iam5ld3MuY29tLmNu\nXC9kZXRhaWxcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8qLmh1YW5xaXUuY29tXC9hcnRp\nY2xlXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvM3cuaHVhbnFpdS5jb21cL2FcLypcblwv\nXC8gQG1hdGNoICAgICAgICAqOlwvXC8zZy5jaGluYS5jb21cL2FjdFwvKlxuXC9cLyBAbWF0Y2gg\nICAgICAgICo6XC9cL20udG91dGlhby5jb21cL2FydGljbGVcLypcblwvXC8gQG1hdGNoICAgICAg\nICAqOlwvXC9taW5pLmVhc3RkYXkuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi5k\neHkuY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93d3cuY24taGVhbHRoY2FyZS5jb21c\nLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLnlvdWxhaS5jblwvKlxuXC9cLyBAbWF0Y2gg\nICAgICAgICo6XC9cL3NwYWNlLmJpbGliaWxpLmNvbVwvKlwvZHluYW1pYypcblwvXC8gQG1hdGNo\nICAgICAgICAqOlwvXC90LmJpbGliaWxpLmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9c\nL3d3dy5iaWxpYmlsaS5jb21cL3JlYWRcL21vYmlsZSpcblwvXC8gQG1hdGNoICAgICAgICAqOlwv\nXC9tLmJpbGliaWxpLmNvbVwvb3B1c1wvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3dlaWJv\nLmNvbVwvdHRhcnRpY2xlXC9wXC9zaG93P2lkPSpcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9j\nYXJkLndlaWJvLmNvbVwvYXJ0aWNsZVwvbVwvc2hvd1wvaWQqXG5cL1wvIEBtYXRjaCAgICAgICAg\nKjpcL1wvKi5kb3ViYW4uY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvd3d3Lm9zY2hp\nbmEubmV0XC9wXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvZGV2ZWxvcGVyLmFsaXl1bi5j\nb21cL2FydGljbGVcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9jbG91ZC50ZW5jZW50LmNv\nbVwvZGV2ZWxvcGVyXC9hcnRpY2xlXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvY2xvdWQu\ndGVuY2VudC5jb21cL2RldmVsb3BlclwvYmV0YVwvYXJ0aWNsZVwvKlxuXC9cLyBAbWF0Y2ggICAg\nICAgICo6XC9cL2h1YXdlaWNsb3VkLmNzZG4ubmV0XC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpc\nL1wvd3d3LjM2MGRvYy5jblwvYXJ0aWNsZVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3d3\ndy4zNjBkb2MuY29tXC9jb250ZW50XC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvZy5wY29u\nbGluZS5jb20uY25cL3hcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLnpvbC5jb20uY25c\nL2FydGljbGVcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLmF1dG9ob21lLmNvbS5jblwv\nbmV3c1wvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2NoZWppYWhhby5tLmF1dG9ob21lLmNv\nbS5jblwvaW5mb1wvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLyouY25yLmNuXC8qXG5cL1wv\nIEBtYXRjaCAgICAgICAgKjpcL1wvY2x1Yi5tLmF1dG9ob21lLmNvbS5jblwvYmJzXC8qXG5cL1wv\nIEBtYXRjaCAgICAgICAgKjpcL1wvM2cuYWxpMjEzLm5ldFwvKlxuXC9cLyBAbWF0Y2ggICAgICAg\nICo6XC9cL3dhcC5nYW1lcnNreS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLmRz\nLjE2My5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93ZW5kYS5zby5jb21cL3FcLypc\nblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLndlbmRhLnNvLmNvbVwvcVwvKlxuXC9cLyBAbWF0\nY2ggICAgICAgICo6XC9cL24udGlhbnlhbmNoYS5jb21cL2NvbnRlbnRcLypcblwvXC8gQG1hdGNo\nICAgICAgICAqOlwvXC9iYnMudGlhbnlhLmNuXC9tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpc\nL1wvd2FwLmVhc3Rtb25leS5jb21cL2FcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tZ3Vi\nYS5lYXN0bW9uZXkuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvZW1jcmVhdGl2ZS5l\nYXN0bW9uZXkuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi54aW1hbGF5YS5jb21c\nLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93d3cuZ3VzaGl3ZW4uY25cLypcblwvXC8gQG1h\ndGNoICAgICAgICAqOlwvXC8qLml0MTM1Mi5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwv\nXC93d3cudGFvZHVkdS5jY1wvbmV3c1wvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3Byb2dy\nYW1tZXJjYXJsLmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2Jsb2cuZGlkaXNwYWNl\nLmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLyoud2FuZzEzMTQuY29tXC9kb2NcLypc\nblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8qLms0Y2hpbmEuY29tXC8qXG5cL1wvIEBtYXRjaCAg\nICAgICAgKjpcL1wvd3d3LnRvZmFjZWJvb2suY29tXC8qXG5cL1wvIEBydW4tYXQgICAgICAgZG9j\ndW1lbnQtc3RhcnRcblwvXC8gQGljb24gICAgICAgICBkYXRhOmltYWdlXC9wbmc7ZGF0YTppbWFn\nZVwvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRUFBQUFCQUNBWUFBQUNxYVhI\nZUFBQUFBWE5TUjBJQXJzNGM2UUFBQTI5SlJFRlVlRjd0bU12clQwOFl4MVwvZm5WaXdWY3FcL2dx\nS1FhOGd0ZDBLeWs4VnY4MXRaS1dHQnlDMjMzSldJd3A5aVljUE9Sa1Q1NmZsMXBvNXBuak5uNXN5\nYzZkT1p6XC9JejFcL2RyM3M5ejVwazVKdjZibTdoK0tvRHFnSWtUcUNFd2NRUFVKRmhEb0liQXhB\nblVFSmk0QWVwWG9JWkFEWUdKRTRnSmdTUEFGK0JGWVhZbmdVXC9Bc3lIN0NBVWc0czhCODRHTkJT\nR0krRFBBQW1EekVBZ2hBTnJpRGZTOXdPMGhKeEF4OWlCd3ZoRnZodThIYmtiTTFmc3o2QkpmQW9K\nTFwvQ0FJZlJ6UUpYNU1DRjNpb3lINEFPd0dyalF4YnhiNUNpeHkyRzBmY0N2R2hqM0d1TVM3OXZF\nZklIMXY5Smp6XC95NWRBRFR4XC93Q2ZnU2NqUWRERVwvd3Q4ZENUaUlBZ2FBRTM4TWVCQkkxeXly\ndzNoTjNBZ29STzJBOWVzaENjbmZ3SzQyK3hqdlFKQnhqNzBPY0VGUU1SZnRHeitDNUJjWUdmYW5C\nRDZpRGY2RGdGWExiSGloRzNBNHk0SUxnQmJnRWVPUVd1QTE0N1wvVndGdnJQXC9GQ2JLNEsweDho\neUx0bW5qNTNEMTNUQ0Q5THdNTFcyM2ZBY2xMblM3UVFtQ0RzcEFHWVJkd0p4RUVpZm16bGdOXC9B\naUwrbnBKMzVITFdUc3k5eFB1UzRBNWx3VkFJMHQ5MmlPYUNVY1g3QUVoN3FCUEVpdmNkVGxnSHZQ\nSjQzNVh0dTA3K2FITXRueGRxK1wvWStmUGNBNlJ1YUV6UUlxNEczQ29RaTR2czR3T3gzR2ZBaElE\nRXVCOTQ3bk9DQ0VDcGVFdHNsWU5ESm03MzFjWURwNnhJbGJWcE9XQUc4ODBBb0tqN0VBVWJIV3VD\nbHd3bGJsZSt0QzRJTWwxSjZhYXVrTlZOS3pNc0oyM2xFMnBQRXZMMzNFQWZFUWxpcHhQNDM2NFkz\ndXZnWUJcL2dnSEc2dXJqWm9EWUxwSjlmYjR3RW5MXC8xUEtXdDVQalpcL044YzRJRFdFTHZHdWhK\nZE1cL0JBSHhFTFlCRHh0blVGUjhTa0F5QnhhWXR5cFdOcEFLQzQrRlFDWlo0OVNBbXNRcElwY0Fs\neHdCS3pZM25XM1A5MVVxVUV4N3VzOEpBZlljMnNRUWw2UE5mSHlEcEhsdFNrbGdDNG45SUVnb1hI\nZFVkVmxFNTh5Qk5wdWtFdVJxd2JYYm93eVZ1b0h1ZDVHbGJRK20zZTFwM2FBV1N1a2l0UnM3MzNN\nR0NMY2pNMEZRT2J2ODU1UVZIeXVFR2dmVEpjVHBCYVFiSitrcW90MVEwNEhtRDFwN3drXC9Tb3Nm\nd3dFR2d2YWVZTnA3ditIRm5yUTJiZ3dIbUxXMTk0Umk0c2QwZ0ZZN0ZCVmZBa0M3ZGlndXZoUUFB\nMkZ4aW5wK2FFNFlNd2NNM1d1VzhSVkFGcXd6TkdsMXdBd2RWcGF0Vmdka3dUcERrMVlIek5CaFpk\nbHFkVUFXckRNMDZlUWQ4QWN6YVwvRkIycVdiM0FBQUFBQkpSVTVFcmtKZ2dnPT1cblwvXC8gQGdy\nYW50ICAgICAgICBub25lXG5cL1wvIEBsaWNlbnNlICAgICAgR1BMLTMuMFxuXC9cLyBAZG93bmxv\nYWRVUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDM4NjU2XC8l\nRTglODclQUElRTUlOEElQTglRTUlQjElOTUlRTUlQkMlODAudXNlci5qc1xuXC9cLyBAdXBkYXRl\nVVJMIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzQzODY1NlwvJUU4\nJTg3JUFBJUU1JThBJUE4JUU1JUIxJTk1JUU1JUJDJTgwLm1ldGEuanNcblwvXC8gPT1cL1VzZXJT\nY3JpcHQ9PVxuKGZ1bmN0aW9uICgpIHtcblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0XC8qKlxuXHQg\nKiDnvZHnq5nliJfooahcblx0ICogQHR5cGUge25hbWVcL3VybFwv5pON5L2c57G75Z6LfVxuXHQg\nKlwvXG5cdGNvbnN0IHdlYnNpdGVzID0gW1xuXHRcdHtcblx0XHRcdG5hbWU6IFwiQ1NETlwiLFxu\nXHRcdFx0dXJsOiBcImJsb2cuY3Nkbi5uZXRcIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0\nXC9cL1BD56uvOuiHquWKqOWxleW8gOS7o+eggeWdl1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlw\nZTogXCJjbGlja1wiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmhpZGUtcHJlQ29kZS1idFwiLFxuXHRc\ndFx0XHR9LFxuXHRcdFx0XHRcL1wvUEPnq6865YWz5rOo5Y2a5Li75Y2z5Y+v6ZiF6K+75YWo5paH\nXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVt\nOiBcIi5oaWRlLWFydGljbGUtYm94XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/pmIXor7vl\nhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRc\ndGl0ZW06IFwiLmJ0bl9tb2RcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5\ncGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuYXJ0aWNsZV9jb250ZW50XCIsXG5c\ndFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRc\ndFx0XHRpdGVtOiBcIi5yZWFkYWxsX2JveFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcL1wv5bGV\n5byA6K+E6K66XG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImNsaWNrXCIsXG5cdFx0XHRc\ndFx0aXRlbTogXCIuYnRuX2NvbW1lbnRfcmVhZG1vcmVcIixcblx0XHRcdFx0fSxcblx0XHRcdF0s\nXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIkNTRE7pl67nrZRcIixcblx0XHRcdHVybDog\nXCJhc2suY3Nkbi5uZXRcL3F1ZXN0aW9uc1wiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRc\nL1wvUEPnq6865bGV5byA5YWo6YOoXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3Bs\nYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5leHBhbmRCdG5cIixcblx0XHRcdFx0fSxcblx0XHRc\ndFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIubm9y\nbWFsLXN0eWxlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC9QQ+errzrmn6XnnIvnrYnlpJrl\nm57nrZRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiY2xpY2tcIixcblx0XHRcdFx0XHRp\ndGVtOiBcIi5pY19hc2tfZG93bl9yZWVvd1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9\nLFxuXHRcdHtcblx0XHRcdG5hbWU6IFwiQ1NETuS4i+i9vVwiLFxuXHRcdFx0dXJsOiBcImRvd25s\nb2FkLmNzZG4ubmV0XC9kb3dubG9hZFwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHR7XG5c\ndFx0XHRcdFx0dHlwZTogXCJjbGlja1wiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmZsXCIsXG5cdFx0\nXHRcdH0sXG5cdFx0XHRcdFwvXC\/lsZXlvIDlhajpg6hcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5\ncGU6IFwiY2xpY2tcIixcblx0XHRcdFx0XHRpdGVtOiBcIi51bmZvbGQtZm9udFwiLFxuXHRcdFx0\nXHR9LFxuXHRcdFx0XHRcL1wv5p+l55yL5pu05aSaXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBl\nOiBcImNsaWNrXCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuZWwtYnV0dG9uLS10ZXh0XCIsXG5cdFx0\nXHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCJDU0RO5paH5bqT\nXCIsXG5cdFx0XHR1cmw6IFwid2Vua3UuY3Nkbi5uZXRcL2Fuc3dlclwvXCIsXG5cdFx0XHRoYW5k\nbGVzOiBbXG5cdFx0XHRcdFwvXC\/lsZXlvIDlhajpg6hcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5\ncGU6IFwiY2xpY2tcIixcblx0XHRcdFx0XHRpdGVtOiBcIi50ZXh0LWFsbFwiLFxuXHRcdFx0XHR9\nLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwiaXQxMzUyXCIsXG5cdFx0\nXHR1cmw6IFwiaXQxMzUyLmNvbVwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wvUEPn\nq6865p+l55yL5YWo5paHOuino+mZpOWFrOS8l+WPt+mZkOWItlxuXHRcdFx0XHR7XG5cdFx0XHRc\ndFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuYXJjLWJvZHktbWFpbi1t\nb3JlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwi\nLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFyYy1ib2R5LW1haW5cIixcblx0XHRcdFx0fSxcblx0XHRc\ndF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIue8lueoi+S5i+WutlwiLFxuXHRcdFx0\ndXJsOiBcImpiNTEuY2NcIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL1BD56uvOumY\nheivu+WFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0\nXHRcdFx0aXRlbTogXCIjcmVhZC1tb3JlLXdyYXBcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xu\nXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIjY29udGFpbmVy\nXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/lsZXlvIBcblx0XHRcdFx0e1xuXHRcdFx0XHRc\ndHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIucmVhZC1tb3JlLWhpZGRlblwi\nLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi566A\n5LmmXCIsXG5cdFx0XHR1cmw6IFwiamlhbnNodS5jb21cL3BcIixcblx0XHRcdGhhbmRsZXM6IFtc\nblx0XHRcdFx0XC9cL+mYheivu+WFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJk\naXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuY29sbGFwc2UtdGlwc1wiLFxuXHRcdFx0XHR9\nLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVt\nOiBcIi5jb2xsYXBzZS1mcmVlLWNvbnRlbnRcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0XC9cL+WF\ngeiuuOa7keWKqFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJvdmVyZmxvd1wiLFxuXHRc\ndFx0XHRcdGl0ZW06IFwiYm9keVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHRcdFwvXC\/l\niKDpmaTpga7mjKHmoI9cblx0XHRcdGZ1bjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRsZXQgY3Nz\nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXHRcdFx0XHRjc3MuaW5uZXJU\nZXh0ID0gXCIuY29sbGFwc2UtZnJlZS1jb250ZW50OjphZnRlciB7aGVpZ2h0OiAwcHggIWltcG9y\ndGFudH1cIjtcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChjc3MpO1xuXHRcdFx0\nfSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi55+l5LmOXCIsXG5cdFx0XHR1cmw6IFwi\nd3d3LnpoaWh1LmNvbVwvcXVlc3Rpb25cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0e1xu\nXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLkNvbnRlbnRJ\ndGVtLXJpZ2h0QnV0dG9uXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBl\nOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLlJpY2hDb250ZW50LWlubmVyLS1jb2xs\nYXBzZWRcIixcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0XHRmdW46IGZ1bmN0aW9uICgpIHtc\nblx0XHRcdFx0bGV0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcblx0\nXHRcdFx0XC9cL+epuueZvemBruaMoVxuXHRcdFx0XHRjc3MuaW5uZXJUZXh0ICs9IFwiLlJpY2hD\nb250ZW50LS11bmVzY2FwYWJsZS5pcy1jb2xsYXBzZWQgLlJpY2hDb250ZW50LWlubmVyIHttYXNr\nLWltYWdlOiB1bnNldCAhaW1wb3J0YW50O31cIjtcblx0XHRcdFx0XC9cL+eCueWHu+aMiemSrlxu\nXHRcdFx0XHRjc3MuaW5uZXJUZXh0ICs9IFwiLlJpY2hDb250ZW50LmlzLWNvbGxhcHNlZCB7Y3Vy\nc29yOiB1bnNldCAhaW1wb3J0YW50O31cIjtcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmQo\nY3NzKTtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIueZvuW6pue7j+mq\njFwiLFxuXHRcdFx0dXJsOiBcImppbmd5YW4uYmFpZHUuY29tXC9hcnRpY2xlXCIsXG5cdFx0XHRo\nYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC9QQ+errzrlsZXlvIDlhoXlrrlcblx0XHRcdFx0e1xuXHRc\ndFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLnJlYWQtd2hvbGUt\nbWFza1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRc\nIixcblx0XHRcdFx0XHRpdGVtOiBcIi5leHAtY29udGVudC1jb250YWluZXJcIixcblx0XHRcdFx0\nfSxcblx0XHRcdFx0XC9cL+WxleW8gOWGheWuuVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTog\nXCJjbGlja1wiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLm1vcmUtaW1nLW9wdFwiLFxuXHRcdFx0XHR9\nLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi55m+5bqm55+l6YGTXCIs\nXG5cdFx0XHR1cmw6IFwiemhpZGFvLmJhaWR1LmNvbVwvcXVlc3Rpb25cIixcblx0XHRcdGhhbmRs\nZXM6IFtcblx0XHRcdFx0XC9cL+WxleW8gOWJqeS9mVxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlw\nZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIudy1kZXRhaWwtZGlzcGxheS1idG5c\nIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5c\ndFx0XHRcdFx0aXRlbTogXCIudy1kZXRhaWwtY29udGFpbmVyXCIsXG5cdFx0XHRcdH0sXG5cdFx0\nXHRcdFwvXC9QQ+errzrlsZXlvIDlhajpg6goMSlcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6\nIFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLndndC1iZXN0LW1hc2tcIixcblx0XHRc\ndFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0\naXRlbTogXCIuYmVzdC10ZXh0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC9QQ+errzrlsZXl\nvIDlhajpg6goMilcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRc\ndFx0XHRcdGl0ZW06IFwiLndndC1hbnN3ZXJzLW1hc2tcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0\ne1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuYW5zd2Vy\nLXRleHRcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0XC9cL1BD56uvOuabtOWkmuWbnuetlDFcblx0\nXHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwi\nI3Nob3ctaGlkZS1jb250YWluZXJcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRc\ndHR5cGU6IFwiY2xhc3NMaXN0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuYW5zd2VyXCIsXG5cdFx0\nXHRcdFx0cmVtb3ZlOiBcImFuc3dlci1oaWRlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC9Q\nQ+errzrmm7TlpJrlm57nrZQyXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlc\nIixcblx0XHRcdFx0XHRpdGVtOiBcIi5zaG93LWFuc3dlci1kaXNwdXRlXCIsXG5cdFx0XHRcdH0s\nXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImNsYXNzTGlzdFwiLFxuXHRcdFx0XHRcdGl0\nZW06IFwiLmFuc3dlclwiLFxuXHRcdFx0XHRcdHJlbW92ZTogXCJhbnN3ZXItZGlzcHV0ZS1oaWRl\nXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLn\nmb7luqbnmb7np5FcIixcblx0XHRcdHVybDogXCJiYWlrZS5iYWlkdS5jb21cL2l0ZW1cIixcblx0\nXHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+WxleW8gOWFqOmDqFxuXHRcdFx0XHR7XG5cdFx0\nXHRcdFx0dHlwZTogXCJjbGlja1wiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmxheW91dC1pY29uc19k\nb3duLWFycm93XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/ngrnlh7vliqDovb3mm7TlpJpc\nblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06\nIFwiI3VpX3JlZnJlc2hfZG93blwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHRcdGZ1bjog\nZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcL1wv54K55Ye75Yqg6L295pu05aSaXG5cdFx0XHRcdGxl\ndCBidXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnl4LWxvYWQtbW9yZS1pbm5lclwi\nKTtcblx0XHRcdFx0YnV0dG9uLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwidGFwXCIpKTtcblx0\nXHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIueZvuW6pui0tOWQp1wiLFxuXHRc\ndFx0dXJsOiBcInRpZWJhLmJhaWR1LmNvbVwvcFwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0\nXHRcL1wvUEPnq6866Ieq5Yqo5bGV5byA5Zu+54mHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBl\nOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5yZXBsYWNlX3RpcFwiLFxuXHRcdFx0\nXHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRp\ndGVtOiBcIi5yZXBsYWNlX2RpdlwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRcL1wvUEPnq6866Ieq\n5Yqo5bGV5byA5Zue5aSNXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImNsaWNrXCIsXG5c\ndFx0XHRcdFx0aXRlbTogXCIual9semxfbVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9\nLFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi55m+5bqm5paH5bqT5omL5py654mIMVwiLFxuXHRcdFx0\ndXJsOiBcIndrLmJhaWR1LmNvbVwvdmlld1wiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRc\nL1wv6Ieq5Yqo5bGV5byAXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxu\nXHRcdFx0XHRcdGl0ZW06IFwiLnJlYWRlci1jb3B5XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtc\nblx0XHRcdFx0XHRcL1wv6YCP5piO6YGu5oyhXG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIs\nXG5cdFx0XHRcdFx0aXRlbTogXCIuYmx1ci1iZ1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0\nXHRcdGZ1bjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcL1wv5bel5YW355u45YWz5YaF5a655LiL\n56e7LOmBv+WFjemBruaMoVxuXHRcdFx0XHRsZXQgaXRlbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0\nb3IoXCIuZm9sZC1wYWdlclwiKTtcblx0XHRcdFx0aWYgKGl0ZW0pIHtcblx0XHRcdFx0XHRpdGVt\nLnN0eWxlLnNldFByb3BlcnR5KFwibWFyZ2luLXRvcFwiLCBcIjBweFwiKTtcblx0XHRcdFx0fVxu\nXHRcdFx0fSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi55m+5bqm5paH5bqT5omL5py6\n54mIMlwiLFxuXHRcdFx0dXJsOiBcInRhbmJpLmJhaWR1LmNvbVwvaDVhcHB0b3BpY1wvYnJvd3Nl\nXC9cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwvXC\/kuIvovb1h\ncHAs57un57ut6ZiF6K+7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0\naXRlbTogXCIuY29udGludWUtcmVhZC13cmFwXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRc\ndFx0ZnVuOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGxldCBpdGVtID0gZG9jdW1lbnQucXVlcnlT\nZWxlY3RvcihcIiNyZWFkLXZpZXdcIik7XG5cdFx0XHRcdGl0ZW0uc2V0QXR0cmlidXRlKFwic2Ny\nb2xsaW5nXCIsIFwieWVzXCIpO1xuXHRcdFx0fSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6\nIFwi55m+5a626aKY5bqTXCIsXG5cdFx0XHR1cmw6IFwiZWFzeWxlYXJuLmJhaWR1LmNvbVwvZWR1\nLXBhZ2VcL1wiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv6ZiF6K+75YWo5paHXG5c\ndFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBc\nIi5zaGl0aS1hbnN3ZXIgLm1hc2tcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRc\ndHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuc2hpdGktYW5zd2VyIC5hbmFs\neXNpcy10ZXh0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC8g5pi+56S65a6M5pW06aKY55uu\nXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06\nIFwiLnF1ZXN0aW9uLWNvbnQgLnRpZ2FuXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC8g56e7\n6Zmk6YGu572pXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0\nXHRcdGl0ZW06IFwiLnF1ZXN0aW9uLWNvbnQgLnRpZ2FuIC5tYXNrXCIsXG5cdFx0XHRcdH0sXG5c\ndFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnmb7lrrblj7dcIixcblx0XHRc\ndHVybDogXCJiYWlqaWFoYW8uYmFpZHUuY29tXC9zXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0\nXHRcdFwvXC\/pmIXor7vlhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxh\neVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLm9QYWRkaW5nXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRc\ndHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLm1haW5D\nb250ZW50XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/ngrnlh7vlsZXlvIDlhajmloc654uQ\n54y05rWP6KeI5Zmo54m55pyJYnVnXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdo\ndFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI21haW5Db250ZW50Q29udGFpbmVyXCIsXG5cdFx0XHRc\ndH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRp\ndGVtOiBcIi5mb2xkTWFza1dyYXBwZXJcIixcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSxc\nblx0XHR7XG5cdFx0XHRuYW1lOiBcIueZvuW6puaWsOmXu1wiLFxuXHRcdFx0dXJsOiBcIm1iZC5i\nYWlkdS5jb21cL25ld3NwYWdlXC9kYXRhXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwv\nXC\/miZPlvIDnmb7luqZhcHA65pmu6YCa5paw6Ze7XG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBl\nOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIltjbGFzc149Zm9sZE1hc2tXcmFwcGVy\nLV1cIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIs\nXG5cdFx0XHRcdFx0aXRlbTogXCIjZHluYW1pY0l0ZW1cIixcblx0XHRcdFx0fSxcblx0XHRcdFx0\nXC9cL+aJk+W8gOeZvuW6pmFwcDrnmb7luqbpppbpobVcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5\ncGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmZvbGRNYXNrV3JhcHBlclwiLFxu\nXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRc\ndFx0XHRpdGVtOiBcIiNtYWluQ29udGVudENvbnRhaW5lclwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0\nXSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5paw5rWq5paw6Ze7XCIsXG5cdFx0XHR1\ncmw6IFwic2luYS5jblwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv5bGV5byAXG5c\ndFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBc\nIi5sb29rX21vcmVcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwi\naGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuc19jYXJkXCIsXG5cdFx0XHRcdH0sXG5cdFx0\nXHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnvZHmmJPmlrDpl7tcIixcblx0XHRc\ndHVybDogXCIzZy4xNjMuY29tXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/lsZXl\nvIBcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0\nZW06IFwiLnNob3dfYXJ0aWNsZVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0\ndHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcImFydGljbGVcIixcblx0XHRcdFx0\nfSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuaQnOeLkOaWsOmXu1wi\nLFxuXHRcdFx0dXJsOiBcInNvaHUuY29tXC9hXCIsXG5cdFx0XHRoYW5kbGVzOiBbXSxcblx0XHRc\ndGZ1bjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRvbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0\nXHRcdFx0bGV0IGl0ZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiI2FydExvb2tBbGxcIik7\nXG5cdFx0XHRcdFx0aXRlbS5jbGljaygpO1xuXHRcdFx0XHRcdGNsZWFySW50ZXJ2YWwoaW50ZXJ2\nYWwpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi\n6IW+6K6v5paw6Ze7XCIsXG5cdFx0XHR1cmw6IFwidmlldy5pbmV3cy5xcS5jb21cL1wiLFxuXHRc\ndFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv54K55Ye75bGV5byA5YWo5paHXG5cdFx0XHRcdHtc\nblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIltjbGFzc149\nc2hvdy1tb3JlX291dGVyX19dXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0\neXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIltjbGFzc149c2hvdy1tb3JlLWFy\ndGljbGVfY292ZXJfX11cIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6\nIFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCJbY2xhc3NePXNob3ctbW9yZV9oZWlnaHQt\nbm90LWZ1bGxfX11cIixcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0\nXHRuYW1lOiBcIuWHpOWHsOaWsOmXu1wiLFxuXHRcdFx0dXJsOiBcImlmZW5nLmNvbVwvXCIsXG5c\ndFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/ngrnlh7vlsZXlvIDlhajmloco5paw6Ze7KVxu\nXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTog\nXCJbY2xhc3NePWluZGV4X21vcmVfXVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRc\ndFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCJbY2xhc3NePWluZGV4X3Rp\ncF9cIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIs\nXG5cdFx0XHRcdFx0aXRlbTogXCJbY2xhc3NePWluZGV4X21haW5fY29udGVudF9dXCIsXG5cdFx0\nXHRcdH0sXG5cblx0XHRcdFx0XC9cL+eCueWHu+afpeeci+WujOaVtOWGheWuuSjmiL\/kuqcpXG5c\ndFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBc\nIi5zaG93YWxsXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhl\naWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFydGljbGVcIixcblx0XHRcdFx0fSxcblx0XHRc\ndFx0XC9cL+WxleW8gOWFqOaWhyjmsb3ovaYpXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBc\nImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIltjbGFzc149bW9yZV1cIixcblx0XHRcdFx0\nfSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRl\nbTogXCJbY2xhc3NePW1haW5fY29udGVudF1cIixcblx0XHRcdFx0fSxcblx0XHRcdFx0XC9cL+Wx\nleW8gCjop4bpopHnroDku4spXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImNsaWNrXCIs\nXG5cdFx0XHRcdFx0aXRlbTogXCJbY2xhc3NePWluZGV4X3ZpZGVvQnJlZlRleHRCdG5fXVwiLFxu\nXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5r6O5rmD\n5paw6Ze7XCIsXG5cdFx0XHR1cmw6IFwibS50aGVwYXBlci5jblwvbmV3c0RldGFpbF9mb3J3YXJk\nXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/lsZXlvIDlhajmlodcblx0XHRcdFx0\ne1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI2NsaWNr\nRm9yTW9yZVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWln\naHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5uZXdzZGV0YWlsX2JvZHlcIixcblx0XHRcdFx0fSxc\nblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuaWsOS6rOaKpVwiLFxuXHRc\ndFx0dXJsOiBcIm0uYmpuZXdzLmNvbS5jblwvZGV0YWlsXC9cIixcblx0XHRcdGhhbmRsZXM6IFtc\nblx0XHRcdFx0XC9cL+WxleW8gOWFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJk\naXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuc2hhZGVcIixcblx0XHRcdFx0fSxcblx0XHRc\ndFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuYXJ0\naWNsZVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6\nIFwi5aSu5bm\/572RXCIsXG5cdFx0XHR1cmw6IFwiY25yLmNuXCIsXG5cdFx0XHRoYW5kbGVzOiBb\nXG5cdFx0XHRcdFwvXC\/lsZXlvIDlhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwi\nZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI3JlYWRtb3JlXCIsXG5cdFx0XHRcdH0sXG5c\ndFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwi\nI3Blcm55LW1haW5cIixcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0\nXHRuYW1lOiBcIueOr+eQg+e9kTFcIixcblx0XHRcdHVybDogXCJodWFucWl1LmNvbVwvYXJ0aWNs\nZVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/lsZXlvIDlhajmlodcblx0XHRc\ndFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiY2xpY2tcIixcblx0XHRcdFx0XHRpdGVtOiBcIi51bmZv\nbGQtYnRuXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFt\nZTogXCLnjq\/nkIPnvZEyXCIsXG5cdFx0XHR1cmw6IFwiM3cuaHVhbnFpdS5jb21cL2FcL1wiLFxu\nXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv5bGV5byA5YWo5paHXG5cdFx0XHRcdHtcblx0\nXHRcdFx0XHR0eXBlOiBcImNsaWNrXCIsXG5cdFx0XHRcdFx0aXRlbTogXCIjbW9yZVwiLFxuXHRc\ndFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lit5Y2O572R\nXCIsXG5cdFx0XHR1cmw6IFwiM2cuY2hpbmEuY29tXC9hY3RcL1wiLFxuXHRcdFx0aGFuZGxlczog\nW1xuXHRcdFx0XHRcL1wv54K55Ye75p+l55yL5YWo5paHKOWJqeS9mW4lKVxuXHRcdFx0XHR7XG5c\ndFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIjanMtY29udGlu\ndWUtcmVhZGluZ1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJo\nZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIiNhcnRpQ29uXCIsXG5cdFx0XHRcdH0sXG5cdFx0\nXHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLku4rml6XlpLTmnaE656e75Yqo54mI\nXCIsXG5cdFx0XHR1cmw6IFwibS50b3V0aWFvLmNvbVwvYXJ0aWNsZVwvXCIsXG5cdFx0XHRoYW5k\nbGVzOiBbXG5cdFx0XHRcdFwvXC\/ngrnlh7vmn6XnnIvlrozmlbTlhoXlrrlcblx0XHRcdFx0e1xu\nXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLnRvZ2dsZS1i\ndXR0b24tY29udGFpbmVyXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBl\nOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5jb250ZW50LXNoYWRvd1wiLFxuXHRc\ndFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0\nXHRpdGVtOiBcIi5jb250ZW50XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0\ne1xuXHRcdFx0bmFtZTogXCLkuJzmlrnotYTorq9cIixcblx0XHRcdHVybDogXCJtaW5pLmVhc3Rk\nYXkuY29tXC9cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+afpeeci+WFqOaWh1xu\nXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTog\nXCIuVW5mb2xkZWQtYnRuXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBl\nOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFydGljbGUtY29udGVudFwiLFxuXHRc\ndFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5LiB6aaZ5Zut\nXCIsXG5cdFx0XHR1cmw6IFwiZHh5LmNuXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwv\nXC\/mmL7npLrnrKzkuIDmnaHor4Torrpcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVp\nZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuZGljdXNzaW9uLXRleHRcIixcblx0XHRcdFx0fSxc\nblx0XHRcdFx0XC9cL+WxleW8gOmYheivu+WFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlw\nZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCJbY2xhc3NePWNvbnRlbnRXcmFwQm90\ndG9tX19fXVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWln\naHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIltjbGFzc149Y29udGVudFdyYXBfX19dXCIsXG5cdFx0\nXHRcdH0sXG5cdFx0XHRcdFwvXC\/mnLrmnoTlj7c65bGV5byA6ZiF6K+75YWo5paHXG5cdFx0XHRc\ndHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5zaG93\nLWFsbFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRc\nIixcblx0XHRcdFx0XHRpdGVtOiBcIi5hcnRpY2xlX19jb250ZW50XCIsXG5cdFx0XHRcdH0sXG5c\ndFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLlgaXlurfnlYxcIixcblx0XHRc\ndHVybDogXCJ3d3cuY24taGVhbHRoY2FyZS5jb21cL1wiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRc\ndFx0XHRcL1wv6ZiF6K+75YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3Bs\nYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5tYXNrXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtc\nblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI2FydGJvZHlc\nIixcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuac\nieadpeWMu+eUn1wiLFxuXHRcdFx0dXJsOiBcIm0ueW91bGFpLmNuXC9cIixcblx0XHRcdGhhbmRs\nZXM6IFtcblx0XHRcdFx0XC9cL+mYheivu+WFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlw\nZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuc2hvd0J0bi0tbnFvdUFcIixcblx0\nXHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRc\ndFx0aXRlbTogXCIuc2hvdy1tb3JlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5c\ndFx0XC9cLyB7XG5cdFx0XC9cLyBcdG5hbWU6IFwiQuermeinhumikVwiLFxuXHRcdFwvXC8gXHR1\ncmw6IFwid3d3LmJpbGliaWxpLmNvbVwvdmlkZW9cL1wiLFxuXHRcdFwvXC8gXHRoYW5kbGVzOiBb\nXG5cdFx0XC9cLyBcdFx0XC9cL1BD56uvOuWxleW8gOWGheWuuVxuXHRcdFwvXC8gXHRcdHtcblx0\nXHRcL1wvIFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFwvXC8gXHRcdFx0aXRlbTogXCIu\ndG9nZ2xlLWJ0blwiLFxuXHRcdFwvXC8gXHRcdH0sXG5cdFx0XC9cLyBcdFx0e1xuXHRcdFwvXC8g\nXHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcL1wvIFx0XHRcdGl0ZW06IFwiLmJhc2ljLWRl\nc2MtaW5mb1wiLFxuXHRcdFwvXC8gXHRcdH0sXG5cdFx0XC9cLyBcdF0sXG5cdFx0XC9cLyB9LFxu\nXHRcdHtcblx0XHRcdG5hbWU6IFwiQuermeWKqOaAgVwiLFxuXHRcdFx0dXJsOiBcInNwYWNlLmJp\nbGliaWxpLmNvbVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXSxcblx0XHRcdGZ1bjogZnVuY3Rpb24g\nKCkge1xuXHRcdFx0XHRcL1wvUEPnq6\/lsZXlvIDnroDku4tcblx0XHRcdFx0bGV0IGl0ZW0xcyA9\nIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuZm9sZGVkXCIpO1xuXHRcdFx0XHRmb3IgKGxl\ndCBpdGVtIG9mIGl0ZW0xcykge1xuXHRcdFx0XHRcdGl0ZW0uY2xhc3NOYW1lID0gXCJiaWxpLXJp\nY2gtdGV4dF9fY29udGVudFwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCBpdGVtMnMgPSBkb2N1\nbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmJpbGktcmljaC10ZXh0X19hY3Rpb25cIik7XG5cdFx0\nXHRcdGZvciAobGV0IGl0ZW0yIG9mIGl0ZW0ycykge1xuXHRcdFx0XHRcdGl0ZW0yLmlubmVyVGV4\ndCA9IFwi5pS26LW3XCI7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0\nXHRuYW1lOiBcIkLnq5nkuJPmoI9cIixcblx0XHRcdHVybDogXCJ3d3cuYmlsaWJpbGkuY29tXC9y\nZWFkXC9tb2JpbGVcIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+WxleW8gOmYheiv\nu+WFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRc\ndFx0aXRlbTogXCIucmVhZC1tb3JlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0\nXHR0eXBlOiBcImNsYXNzTGlzdFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLnJlYWQtYXJ0aWNsZS1i\nb3hcIixcblx0XHRcdFx0XHRyZW1vdmU6IFwibGltaXRcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0\ne1xuXHRcdFx0XHRcdHR5cGU6IFwiY2xhc3NMaXN0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIucmVh\nZC1hcnRpY2xlLWJveFwiLFxuXHRcdFx0XHRcdHJlbW92ZTogXCJzaG93LWxhdGVyXCIsXG5cdFx0\nXHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCJC56uZ56yU6K6w\nXCIsXG5cdFx0XHR1cmw6IFwibS5iaWxpYmlsaS5jb21cL29wdXNcL1wiLFxuXHRcdFx0aGFuZGxl\nczogW1xuXHRcdFx0XHRcL1wv5bGV5byA6ZiF6K+75YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0\nXHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5vcHVzLXJlYWQtbW9yZVwi\nLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJjbGFzc0xpc3RcIixc\nblx0XHRcdFx0XHRpdGVtOiBcIi5vcHVzLW1vZHVsZS1jb250ZW50XCIsXG5cdFx0XHRcdFx0cmVt\nb3ZlOiBcImxpbWl0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRc\ndFx0bmFtZTogXCLlvq7ljZrmlofnq6BQQ+eJiFwiLFxuXHRcdFx0dXJsOiBcIndlaWJvLmNvbVwv\ndHRhcnRpY2xlXC9wXC9zaG93P2lkPVwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHR7XG5c\ndFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5XQl9lZGl0b3Jf\naWZyYW1lX25ld1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJk\naXNwbGF5XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIuYnRuX2xpbmVcIixcblx0XHRcdFx0fSxcblx0\nXHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuixhueTo1wiLFxuXHRcdFx0dXJs\nOiBcImRvdWJhbi5jb21cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+eCueWHu+Wx\nleW8gOWFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0\nXHRcdFx0aXRlbTogXCIub2lhLXJlYWRhbGxcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRc\ndFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIubm90ZS1jb250ZW50\nXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdFx0ZnVuOiBmdW5jdGlvbiAoKSB7XG5cdFx0\nXHRcdFwvXC\/lsZXlvIAo566A5LuLKVxuXHRcdFx0XHRsZXQgaXRlbTEgPSBkb2N1bWVudC5xdWVy\neVNlbGVjdG9yKFwiLnN1YmplY3QtaW50cm8gcFwiKTtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0\nXHRsZXQgc3RyID0gaXRlbTEuZ2V0QXR0cmlidXRlKFwiZGF0YS1jb250ZW50XCIpO1xuXHRcdFx0\nXHRcdGlmIChzdHIpIHtcblx0XHRcdFx0XHRcdGl0ZW0xLmlubmVyVGV4dCA9IHN0cjtcblx0XHRc\ndFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdFx0XC8qIGVtcHR5ICpc\nL1xuXHRcdFx0XHR9XG5cdFx0XHRcdG9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRc\nL1wv5bGV5byAKOivhOiuuilcblx0XHRcdFx0XHRsZXQgaXRlbXMyID0gZG9jdW1lbnQucXVlcnlT\nZWxlY3RvckFsbChcIi5MaW5lc0VsbGlwc2lzLXJlYWRtb3JlXCIpO1xuXHRcdFx0XHRcdGZvciAo\nbGV0IGl0ZW0gb2YgaXRlbXMyKSB7XG5cdFx0XHRcdFx0XHRpdGVtLmNsaWNrKCk7XG5cdFx0XHRc\ndFx0fVxuXG5cdFx0XHRcdFx0XC9cL+WxleW8gChQQ+errzror4Torro7566A5LuLO+S6uueJqeeu\ngOS7iylcblx0XHRcdFx0XHRsZXQgaXRlbXMzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChc\nIi5leHBhbmQsLmFfc2hvd19mdWxsLC5mb2xkLXN3aXRjaFwiKTtcblx0XHRcdFx0XHRmb3IgKGxl\ndCBpdGVtIG9mIGl0ZW1zMykge1xuXHRcdFx0XHRcdFx0aXRlbS5jbGljaygpO1xuXHRcdFx0XHRc\ndH1cblx0XHRcdFx0fTtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuW8\ngOa6kOS4reWbvVwiLFxuXHRcdFx0dXJsOiBcInd3dy5vc2NoaW5hLm5ldFwvcFwvXCIsXG5cdFx0\nXHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/lsZXlvIDpmIXor7vlhajmlodcblx0XHRcdFx0e1xu\nXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmNvbGxhcHNl\nLWJhclwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRc\nIixcblx0XHRcdFx0XHRpdGVtOiBcIi5hcnRpY2xlLWRldGFpbFwiLFxuXHRcdFx0XHR9LFxuXHRc\ndFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi6Zi\/6YeM5LqR5byA5Y+R6ICF56S+\n5Yy6XCIsXG5cdFx0XHR1cmw6IFwiZGV2ZWxvcGVyLmFsaXl1bi5jb21cL2FydGljbGVcIixcblx0\nXHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+WFs+azqFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0\ndHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5hcnRpY2xlLWhpZGUtY29udGVu\ndFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIs\nXG5cdFx0XHRcdFx0aXRlbTogXCIuYXJ0aWNsZS1oaWRlLWJveFwiLFxuXHRcdFx0XHR9LFxuXHRc\ndFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi6IW+6K6v5LqR5byA5Y+R6ICF56S+\n5Yy6XCIsXG5cdFx0XHR1cmw6IFwiY2xvdWQudGVuY2VudC5jb21cL2RldmVsb3BlclwvYXJ0aWNs\nZVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/ml6fniYg65bGV5byA6ZiF6K+7\n5YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRc\ndGl0ZW06IFwiLmNvbS1tYXJrZG93bi1jb2xscGFzZS1tYWluXCIsXG5cdFx0XHRcdH0sXG5cdFx0\nXHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5j\nb20tbWFya2Rvd24tY29sbHBhc2UtdG9nZ2xlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/m\nlrDniYg65bGV5byA6ZiF6K+75YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhl\naWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmNkYy1leHBhbmQtYXJlYV9fbWFpblwiLFxuXHRc\ndFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0XHRc\ndFx0aXRlbTogXCIuY2RjLWV4cGFuZC1hcmVhX190b2dnbGVcIixcblx0XHRcdFx0fSxcblx0XHRc\ndF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuWNjuS4uuS6keW8gOWPkeiAheekvuWM\nulwiLFxuXHRcdFx0dXJsOiBcImh1YXdlaWNsb3VkLmNzZG4ubmV0XC9cIixcblx0XHRcdGhhbmRs\nZXM6IFtcblx0XHRcdFx0XC9cL+WxleW8gOmYheivu+WFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRc\ndFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi51c2VyLWFydGljbGVcIixc\nblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRc\ndFx0XHRcdGl0ZW06IFwiLmFydGljbGUtc2hvdy1tb3JlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRd\nLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCIzNjDlm77kuabppobmiYvmnLrniYhcIixc\nblx0XHRcdHVybDogXCJ3d3cuMzYwZG9jLmNuXC9hcnRpY2xlXC9cIixcblx0XHRcdGhhbmRsZXM6\nIFtcblx0XHRcdFx0XC9cL+enu+WKqOeJiDrlsZXlvIDliankvZnlhoXlrrlcblx0XHRcdFx0e1xu\nXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFydGljbGVf\nc2hvd2FsbFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWln\naHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5hcnRpY2xlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRd\nLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCIzNjDlm77kuabppoZQQ+eJiFwiLFxuXHRc\ndFx0dXJsOiBcInd3dy4zNjBkb2MuY29tXC9jb250ZW50XC9cIixcblx0XHRcdGhhbmRsZXM6IFtc\nblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiY2xhc3NMaXN0XCIsXG5cdFx0XHRcdFx0aXRl\nbTogXCJib2R5XCIsXG5cdFx0XHRcdFx0cmVtb3ZlOiBcImFydGljbGVNYXhIXCIsXG5cdFx0XHRc\ndH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLlpKrlubPmtIvnlLXo\nhJHnvZFcIixcblx0XHRcdHVybDogXCJnLnBjb25saW5lLmNvbS5jblwveFwvXCIsXG5cdFx0XHRo\nYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/lsZXlvIDlhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRc\ndHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLnNob3dfYXJ0aWNsZVwiLFxu\nXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRc\ndFx0XHRpdGVtOiBcIi5hcnQtY29udGVudFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9\nLFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lit5YWz5p2R5Zyo57q\/XCIsXG5cdFx0XHR1cmw6IFwi\nbS56b2wuY29tLmNuXC9hcnRpY2xlXC9cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9c\nL+WxleW8gOWFqOaWh1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5c\ndFx0XHRcdFx0aXRlbTogXCIudW5mb2xkLWFydGljbGUtYnRuXCIsXG5cdFx0XHRcdH0sXG5cdFx0\nXHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFy\ndGljbGUtY29udGVudFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0\nXHRcdG5hbWU6IFwi5rG96L2m5LmL5a62OuaWsOmXu1wiLFxuXHRcdFx0dXJsOiBcIm0uYXV0b2hv\nbWUuY29tLmNuXC9uZXdzXC9cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+eCueWH\nu+WxleW8gOWJqeS9memDqOWIhlxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5\nXCIsXG5cdFx0XHRcdFx0aXRlbTogXCIjY29udGludWVfcmVhZGluZ1wiLFxuXHRcdFx0XHR9LFxu\nXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJjbGFzc0xpc3RcIixcblx0XHRcdFx0XHRpdGVt\nOiBcIiNjb250ZW50IC5mbi1oaWRlXCIsXG5cdFx0XHRcdFx0cmVtb3ZlOiBcImZuLWhpZGVcIixc\nblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuaxvei9\npuS5i+Wutjrovablrrblj7dcIixcblx0XHRcdHVybDogXCJjaGVqaWFoYW8ubS5hdXRvaG9tZS5j\nb20uY25cL2luZm9cL1wiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv54K55Ye75bGV\n5byA5Ymp5L2Z6YOo5YiGXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixc\nblx0XHRcdFx0XHRpdGVtOiBcIiNjb250aW51ZV9yZWFkaW5nX25ld1wiLFxuXHRcdFx0XHR9LFxu\nXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJjbGFzc0xpc3RcIixcblx0XHRcdFx0XHRpdGVt\nOiBcIi5wZ2MtZGV0YWlscyAuZm4taGlkZVwiLFxuXHRcdFx0XHRcdHJlbW92ZTogXCJmbi1oaWRl\nXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLm\nsb3ovabkuYvlrrY66K665Z2bXCIsXG5cdFx0XHR1cmw6IFwiY2x1Yi5tLmF1dG9ob21lLmNvbS5j\nblwvYmJzXC9cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+eCueWHu+WxleW8gOWJ\nqeS9memDqOWIhlxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJkaXNwbGF5XCIsXG5cdFx0\nXHRcdFx0aXRlbTogXCIjY29udGludWVfcmVhZGluZ1wiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7\nXG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIiN0b3BpY0Nv\nbnRlbnRTZWN0aW9uXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBc\nImNsYXNzTGlzdFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI3RvcGljQ29udGVudFNlY3Rpb24gLmZu\nLWhpZGVcIixcblx0XHRcdFx0XHRyZW1vdmU6IFwiZm4taGlkZVwiLFxuXHRcdFx0XHR9LFxuXHRc\ndFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5ri45L6g572RXCIsXG5cdFx0XHR1\ncmw6IFwiM2cuYWxpMjEzLm5ldFwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv6ZiF\n6K+75YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRc\ndFx0XHRpdGVtOiBcIi5yZWFkLWFsbC1jb25cIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRc\ndFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLnJlYWQtYWxsLWNv\nbjJcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIs\nXG5cdFx0XHRcdFx0aXRlbTogXCIuZGV0YWlsLWNvbnRlbnRcIixcblx0XHRcdFx0fSxcblx0XHRc\ndF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIua4uOawkeaYn+epulwiLFxuXHRcdFx0\ndXJsOiBcIndhcC5nYW1lcnNreS5jb21cL1wiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRc\nL1wv5bGV5byA5YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixc\nblx0XHRcdFx0XHRpdGVtOiBcIi5nc0FyZWFDb250ZXh0T3BlblwiLFxuXHRcdFx0XHR9LFxuXHRc\ndFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIiNn\nc0FyZWFDb250ZXh0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRc\ndFx0bmFtZTogXCLnvZHmmJPlpKfnpZ5cIixcblx0XHRcdHVybDogXCJtLmRzLjE2My5jb21cL1wi\nLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRcL1wv5bGV5byA5YWo5paHXG5cdFx0XHRcdHtc\nblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5mZWVkLXBh\nZ2UtbWFpbi1jb250cm9sbGVyXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0\neXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmZlZWQtcGFnZV9fbWFpbi1jb250\nZW50XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTog\nXCIzNjDmlofmoaNcIixcblx0XHRcdHVybDogXCJ3ZW5kYS5zby5jb21cL3FcL1wiLFxuXHRcdFx0\naGFuZGxlczogW1xuXHRcdFx0XHRcL1wvUEPnq6865bGV5byA6Zeu562UXG5cdFx0XHRcdHtcblx0\nXHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5hbnN3ZXItcGFy\ndF9faGFzLWZvbGRlcl9fYnRuXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0\neXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFuc3dlci1wYXJ0X19oYXMtZm9s\nZGVyXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC9QQ+errzrmm7TlpJrlm57nrZRcblx0XHRc\ndFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmpz\nLXVuZm9sZC1wYWdlXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBc\nImNsYXNzTGlzdFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmhpZGUuanMtdW5mb2xkLWFuc3dlci5h\nbnN3ZXItZm9sZC1ib3hcIixcblx0XHRcdFx0XHRyZW1vdmU6IFwiaGlkZVwiLFxuXHRcdFx0XHR9\nLFxuXHRcdFx0XHRcL1wv5bGV5byA5a6M5pW0562U5qGIXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0\neXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5vdmVyZmxvdy1jb3ZlclwiLFxu\nXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixcblx0XHRc\ndFx0XHRpdGVtOiBcIi5tYXgtaGVpZ2h0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/mm7Tl\npJrlm57nrZRcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0\nXHRcdGl0ZW06IFwiLmpzLXJlc3QtaWNvblwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0\nXHRcdFx0dHlwZTogXCJjbGFzc0xpc3RcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5hbnMtYm94Lmhp\nZGVcIixcblx0XHRcdFx0XHRyZW1vdmU6IFwiaGlkZVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxc\nblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5aSp55y85p+lXCIsXG5cdFx0XHR1cmw6IFwi\nbi50aWFueWFuY2hhLmNvbVwvY29udGVudFwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRcdFx0XHRc\nL1wv5bGV5byA5Ymp5L2Z5YaF5a65XG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3Bs\nYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIltjbGFzc149aW5kZXhfb3RoZXItY29udGVudC1tb3Jl\nX19dXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwi\nLFxuXHRcdFx0XHRcdGl0ZW06IFwiW2NsYXNzXj1pbmRleF9vdGhlci1jb250ZW50LWNvbnRhaW5l\ncl9fXVwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6\nIFwi5aSp5rav56S+5Yy6XCIsXG5cdFx0XHR1cmw6IFwiYmJzLnRpYW55YS5jblwvbVwvXCIsXG5c\ndFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/ngrnlh7vlsZXlvIDlrozmlbTotLTmlodcblx0\nXHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwi\nLm9wZW5GdWxsUG9zdFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTog\nXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5vbmhpZGVcIixcblx0XHRcdFx0fSxcblx0\nXHRcdF0sXG5cdFx0XHRcL1wv5Yig6Zmk6YCP5piO6YGu5oyhXG5cdFx0XHRmdW46IGZ1bmN0aW9u\nICgpIHtcblx0XHRcdFx0bGV0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwi\nKTtcblx0XHRcdFx0Y3NzLmlubmVySFRNTCA9IFwiLml0ZW0tbHogLmJkLm9uaGlkZTpiZWZvcmV7\nY29udGVudDpub25lfVwiO1xuXHRcdFx0XHRkb2N1bWVudC5oZWFkLmFwcGVuZChjc3MpO1xuXHRc\ndFx0fSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5paw5rWq6LSi57uPXCIsXG5cdFx0\nXHR1cmw6IFwiY2ouc2luYS5jblwvYXJ0aWNsZVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0\nXHRcdFwvXC\/miZPlvIBhcHDpmIXor7vlhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6\nIFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLnVuZm9sZC1ib3hcIixcblx0XHRcdFx0\nfSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRl\nbTogXCIubWFpbi1ib2R5XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xu\nXHRcdFx0bmFtZTogXCLkuJzmlrnotKLlr4znvZFcIixcblx0XHRcdHVybDogXCJ3YXAuZWFzdG1v\nbmV5LmNvbVwvYVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/ngrnlh7vlsZXl\nvIDlrozmlbTotLTmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxu\nXHRcdFx0XHRcdGl0ZW06IFwiLmZvbGQtYnRuXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0\nXHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5mb2xkLWFycm93\nXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxu\nXHRcdFx0XHRcdGl0ZW06IFwiI2FydGljbGVDb250ZW50XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRc\ndFwvXC\/liKDpmaTpgI\/mmI7pga7mjKFcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlz\ncGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmZvbGQtbWFza1wiLFxuXHRcdFx0XHR9LFxuXHRc\ndFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lic5pa56LSi5a+M572ROuekvuWM\nulwiLFxuXHRcdFx0dXJsOiBcImVtY3JlYXRpdmUuZWFzdG1vbmV5LmNvbVwvXCIsXG5cdFx0XHRo\nYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/ngrnlh7vpmIXor7vlhajmlodcblx0XHRcdFx0e1xuXHRc\ndFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLm15X2FkX3dyYXBc\nIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5c\ndFx0XHRcdFx0aXRlbTogXCIjdGV4dC1jb250ZW50XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRdLFxu\nXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLkuJzmlrnotKLlr4znvZE66IKh5ZCnXCIsXG5c\ndFx0XHR1cmw6IFwibWd1YmEuZWFzdG1vbmV5LmNvbVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5c\ndFx0XHRcdFwvXC\/ngrnlh7vpmIXor7vlhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6\nIFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI2ZvbGR1cF9ib3hcIixcblx0XHRcdFx0\nfSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRl\nbTogXCIjY29udGVudFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0\nXHRcdG5hbWU6IFwi5Zac6ams5ouJ6ZuFXCIsXG5cdFx0XHR1cmw6IFwid3d3LnhpbWFsYXlhLmNv\nbVwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC\/nroDku4tcblx0XHRcdFx0e1xu\nXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLm1vcmUtaW50\ncm8td3JhcHBlclwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJo\nZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5sYXlvdXQtbWFpbiBkaXY+YXJ0aWNsZVwiLFxu\nXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Zac6ams\n5ouJ6ZuFXCIsXG5cdFx0XHR1cmw6IFwibS54aW1hbGF5YS5jb21cL1wiLFxuXHRcdFx0aGFuZGxl\nczogW1xuXHRcdFx0XHRcL1wv566A5LuLK+ivhOiuulxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlw\nZTogXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5zdHJldGNoLWJveFwiLFxuXHRcdFx0\nXHR9LFxuXHRcdFx0XSxcblx0XHRcdGZ1bjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRvbmxvYWQg\nPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0bGV0IGl0ZW0xID0gZG9jdW1lbnQucXVlcnlTZWxl\nY3RvcihcIi5zdHJldGNoLW1vcmVcIik7XG5cdFx0XHRcdFx0bGV0IGl0ZW0yID0gaXRlbTEucGFy\nZW50RWxlbWVudDtcblx0XHRcdFx0XHRpdGVtMi5yZW1vdmUoKTtcblx0XHRcdFx0fTtcblx0XHRc\ndH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuWPpOivl+aWh+e9kVwiLFxuXHRcdFx0\ndXJsOiBcInd3dy5ndXNoaXdlbi5jblwvXCIsXG5cdFx0XHRoYW5kbGVzOiBbXSxcblx0XHRcdGZ1\nbjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRsZXQgaXRlbTFzID0gZG9jdW1lbnQuZXZhbHVhdGUo\nXCJcL1wvYVtjb250YWlucyh0ZXh0KCksICfpmIXor7vlhajmlocnKV1cIiwgZG9jdW1lbnQsIG51\nbGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFLCBudWxsKTtcblx0XHRc\ndFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtMXMuc25hcHNob3RMZW5ndGg7IGkrKykge1xuXHRc\ndFx0XHRcdGl0ZW0xcy5zbmFwc2hvdEl0ZW0oaSkuY2xpY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0\nXHRjbGVhckludGVydmFsKGludGVydmFsKTtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0\nXHRuYW1lOiBcIua3mOWYn+WYn1wiLFxuXHRcdFx0dXJsOiBcInd3dy50YW9kdWR1LmNjXC9uZXdz\nXC9cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+mYheivu+WFqOaWhyzkurrmnLrm\no4DmtYtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRc\ndGl0ZW06IFwiI3ZpcFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTog\nXCJoZWlnaHRcIixcblx0XHRcdFx0XHRpdGVtOiBcIiNhcnRpY2xlX2NvbnRlbnRcIixcblx0XHRc\ndFx0fSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuS7o+eggemaj+aD\ns+W9lVwiLFxuXHRcdFx0dXJsOiBcInByb2dyYW1tZXJjYXJsLmNvbVwvXCIsXG5cdFx0XHRoYW5k\nbGVzOiBbXG5cdFx0XHRcdFwvXC\/pmIXor7vlhajmlodcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5\ncGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI3JlYWQtbW9yZS13cmFwXCIsXG5c\ndFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0\nXHRcdGl0ZW06IFwiI2NvbnRhaW5lclwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxu\nXHRcdHtcblx0XHRcdG5hbWU6IFwi56iL5bqP54y\/RERcIixcblx0XHRcdHVybDogXCJibG9nLmRp\nZGlzcGFjZS5jb21cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0XC9cL+mYheivu+WFqOaW\nhyzkurrmnLrmo4DmtYtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxu\nXHRcdFx0XHRcdGl0ZW06IFwiI3JlYWQtbW9yZS13cmFwXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRc\ndHtcblx0XHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiLmFydGlj\nbGVcIixcblx0XHRcdFx0fSxcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBc\nIuWlvee9keinkuaUtuiXj+WkuVwiLFxuXHRcdFx0dXJsOiBcIndhbmcxMzE0LmNvbVwvZG9jXCIs\nXG5cdFx0XHRoYW5kbGVzOiBbXG5cdFx0XHRcdFwvXC9QQ+errzrpmIXor7vlhajmlocs5Lq65py6\n5qOA5rWLXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0\nXHRpdGVtOiBcIiNzaG93X2NvbnRlbnRfYmFyXCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0\nXHRcdFx0XHR0eXBlOiBcImhlaWdodFwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI2FydF9ib2R5XCIs\nXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFwvXC\/pmIXor7vljp\/mloflhajpg6jlhoXlrrlcblx0XHRc\ndFx0e1xuXHRcdFx0XHRcdHR5cGU6IFwiZGlzcGxheVwiLFxuXHRcdFx0XHRcdGl0ZW06IFwiI3No\nb3dfY29udGVudF9iYXJcIixcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdHR5cGU6\nIFwiaGVpZ2h0XCIsXG5cdFx0XHRcdFx0aXRlbTogXCIjYm9keV9jb250ZW50XCIsXG5cdFx0XHRc\ndH0sXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnp5HkuK3otYTmupDn\nvZFcIixcblx0XHRcdHVybDogXCJrNGNoaW5hLmNvbVwiLFxuXHRcdFx0aGFuZGxlczogW1xuXHRc\ndFx0XHRcL1wv54K55Ye76ZiF6K+75YWo5paHXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0eXBlOiBc\nImNsaWNrXCIsXG5cdFx0XHRcdFx0aXRlbTogXCIucmVhZG1vcmVcIixcblx0XHRcdFx0fSxcblx0\nXHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcInRvZmFjZWJvb2tcIixcblx0XHRc\ndHVybDogXCJ3d3cudG9mYWNlYm9vay5jb21cIixcblx0XHRcdGhhbmRsZXM6IFtcblx0XHRcdFx0\nXC9cL+mYheivu+WFqOmDqFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0dHlwZTogXCJoZWlnaHRcIixc\nblx0XHRcdFx0XHRpdGVtOiBcIi5wYW5lbC1kZWZhdWx0XCIsXG5cdFx0XHRcdH0sXG5cdFx0XHRc\ndHtcblx0XHRcdFx0XHR0eXBlOiBcImRpc3BsYXlcIixcblx0XHRcdFx0XHRpdGVtOiBcIi5tb3Jl\nLWJveFwiLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHR9LFxuXHRdO1xuXHRsZXQgdGltZSA9\nIDA7XG5cdGxldCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRpZiAoKyt0aW1l\nID09IDEwMCkge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG5cdFx0fVxuXHRcdGZv\nciAobGV0IHdlYnNpdGUgb2Ygd2Vic2l0ZXMpIHtcblx0XHRcdGlmIChsb2NhdGlvbi5ocmVmLmlu\nZGV4T2Yod2Vic2l0ZS51cmwpICE9IC0xKSB7XG5cdFx0XHRcdGlmICh3ZWJzaXRlLmZ1bikge1xu\nXHRcdFx0XHRcdHdlYnNpdGUuZnVuKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Zm9yIChsZXQgaGFu\nZGxlIG9mIHdlYnNpdGUuaGFuZGxlcykge1xuXHRcdFx0XHRcdGxldCBpdGVtcyA9IGRvY3VtZW50\nLnF1ZXJ5U2VsZWN0b3JBbGwoaGFuZGxlLml0ZW0pO1xuXHRcdFx0XHRcdGlmIChpdGVtcy5sZW5n\ndGggIT0gMCkge1xuXHRcdFx0XHRcdFx0aWYgKGhhbmRsZS50eXBlID09IFwiZGlzcGxheVwiKSB7\nXG5cdFx0XHRcdFx0XHRcdFwvXC\/pmpDol4\/pga7mjKHpg6jliIZcblx0XHRcdFx0XHRcdFx0Zm9y\nIChsZXQgaXRlbSBvZiBpdGVtcykge1xuXHRcdFx0XHRcdFx0XHRcdGl0ZW0uc3R5bGUuZGlzcGxh\neSA9IFwibm9uZVwiO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGhh\nbmRsZS50eXBlID09IFwiaGVpZ2h0XCIpIHtcblx0XHRcdFx0XHRcdFx0XC9cL+WKoOmVv+WGheWu\nuemDqOWIhlxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpdGVtIG9mIGl0ZW1zKSB7XG5cdFx0XHRc\ndFx0XHRcdFx0aXRlbS5zdHlsZS5zZXRQcm9wZXJ0eShcImhlaWdodFwiLCBcInVuc2V0XCIsIFwi\naW1wb3J0YW50XCIpO1xuXHRcdFx0XHRcdFx0XHRcdGl0ZW0uc3R5bGUuc2V0UHJvcGVydHkoXCJt\naW4taGVpZ2h0XCIsIFwidW5zZXRcIiwgXCJpbXBvcnRhbnRcIik7XG5cdFx0XHRcdFx0XHRcdFx0\naXRlbS5zdHlsZS5zZXRQcm9wZXJ0eShcIm1heC1oZWlnaHRcIiwgXCJ1bnNldFwiLCBcImltcG9y\ndGFudFwiKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChoYW5kbGUu\ndHlwZSA9PSBcIm92ZXJmbG93XCIpIHtcblx0XHRcdFx0XHRcdFx0XC9cL+mYsuatouaXoOazlea7\nkeWKqFxuXHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpdGVtIG9mIGl0ZW1zKSB7XG5cdFx0XHRcdFx0\nXHRcdFx0aXRlbS5zdHlsZS5zZXRQcm9wZXJ0eShcIm92ZXJmbG93XCIsIFwidW5zZXRcIiwgXCJp\nbXBvcnRhbnRcIik7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaGFu\nZGxlLnR5cGUgPT0gXCJjbGFzc0xpc3RcIikge1xuXHRcdFx0XHRcdFx0XHRcL1wv5Yig6ZmkY2xh\nc3NOYW1lXG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGl0ZW0gb2YgaXRlbXMpIHtcblx0XHRcdFx0\nXHRcdFx0XHRpdGVtLmNsYXNzTGlzdC5yZW1vdmUoaGFuZGxlLnJlbW92ZSk7XG5cdFx0XHRcdFx0\nXHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoaGFuZGxlLnR5cGUgPT0gXCJjbGlja1wiKSB7\nXG5cdFx0XHRcdFx0XHRcdFwvXC\/mqKHmi5\/kuIDmrKHngrnlh7tcblx0XHRcdFx0XHRcdFx0Zm9y\nIChsZXQgaXRlbSBvZiBpdGVtcykge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChpdGVtICE9IG51bGwg\nJiYgaXRlbS5nZXRBdHRyaWJ1dGUoXCJvcGVuZWRcIikgIT0gXCJ5ZXNcIikge1xuXHRcdFx0XHRc\ndFx0XHRcdFx0aXRlbS5jbGljaygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0aXRlbS5zZXRBdHRyaWJ1\ndGUoXCJvcGVuZWRcIiwgXCJ5ZXNcIik7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0\nXHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcL1wv5qih5ouf5aSa5qyh\n54K55Ye7XG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IGl0ZW0gb2YgaXRlbXMpIHtcblx0XHRcdFx0\nXHRcdFx0XHRpZiAoaXRlbSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0aXRlbS5jbGljaygpO1xuXHRc\ndFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRc\ndH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSwgMTAwKTtcbn0pKCk7XG4ifQp7InNj\ncmlwdElkIjoiY2ViMTliZGIxN2VjMGZiYTc5YzgwODM0ZDFmZTQwZjMiLCJlbmFibGVkIjp0cnVl\nLCJ1cmwiOiJodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80NTk1NDFc\nL1lvdVR1YmUlRTUlOEUlQkIlRTUlQjklQkYlRTUlOTElOEEudXNlci5qcyIsImNvZGVWMiI6Ilwv\nXC8gPT1Vc2VyU2NyaXB0PT1cblwvXC8gQG5hbWUgICAgICAgICB5b3V0dWJlLWFkYlxuXC9cLyBA\nbmFtZTp6aC1DTiAgIFlvdVR1YmXljrvlub\/lkYpcblwvXC8gQG5hbWU6emgtVFcgICBZb3VUdWJl\n5Y675buj5ZGKXG5cL1wvIEBuYW1lOnpoLUhLICAgWW91VHViZeWOu+W7o+WRilxuXC9cLyBAbmFt\nZTp6aC1NTyAgIFlvdVR1YmXljrvlu6PlkYpcblwvXC8gQG5hbWVzcGFjZSAgICBodHRwczpcL1wv\nZ2l0aHViLmNvbVwvaWFtZnVndWlcL3lvdXR1YmUtYWRiXG5cL1wvIEB2ZXJzaW9uICAgICAgNi4y\nMVxuXC9cLyBAZGVzY3JpcHRpb24gICAgICAgICBBIHNjcmlwdCB0byByZW1vdmUgWW91VHViZSBh\nZHMsIGluY2x1ZGluZyBzdGF0aWMgYWRzIGFuZCB2aWRlbyBhZHMsIHdpdGhvdXQgaW50ZXJmZXJp\nbmcgd2l0aCB0aGUgbmV0d29yayBhbmQgZW5zdXJpbmcgc2FmZXR5LlxuXC9cLyBAZGVzY3JpcHRp\nb246emgtQ04gICDohJrmnKznlKjkuo7np7vpmaRZb3VUdWJl5bm\/5ZGK77yM5YyF5ous6Z2Z5oCB\n5bm\/5ZGK5ZKM6KeG6aKR5bm\/5ZGK44CC5LiN5Lya5bmy5omw572R57uc77yM5a6J5YWo44CCXG5c\nL1wvIEBkZXNjcmlwdGlvbjp6aC1UVyAgIOiFs+acrOeUqOaWvOenu+mZpCBZb3VUdWJlIOW7o+WR\niu+8jOWMheaLrOmdnOaFi+W7o+WRiuWSjOimlumgu+W7o+WRiuOAguS4jeacg+W5suaTvue2sui3\nr++8jOWuieWFqOOAglxuXC9cLyBAZGVzY3JpcHRpb246emgtSEsgICDohbPmnKznlKjmlrznp7vp\nmaQgWW91VHViZSDlu6PlkYrvvIzljIXmi6zpnZzmhYvlu6PlkYrlkozoppbpoLvlu6PlkYrjgILk\nuI3mnIPlubLmk77ntrLot6\/vvIzlronlhajjgIJcblwvXC8gQGRlc2NyaXB0aW9uOnpoLU1PICAg\n6IWz5pys55So5pa856e76ZmkIFlvdVR1YmUg5buj5ZGK77yM5YyF5ous6Z2c5oWL5buj5ZGK5ZKM\n6KaW6aC75buj5ZGK44CC5LiN5pyD5bmy5pO+57ay6Lev77yM5a6J5YWo44CCXG5cL1wvIEBtYXRj\naCAgICAgICAgKjpcL1wvKi55b3V0dWJlLmNvbVwvKlxuXC9cLyBAZXhjbHVkZSAgICAgICo6XC9c\nL2FjY291bnRzLnlvdXR1YmUuY29tXC8qXG5cL1wvIEBleGNsdWRlICAgICAgKjpcL1wvd3d3Lnlv\ndXR1YmUuY29tXC9saXZlX2NoYXRfcmVwbGF5KlxuXC9cLyBAZXhjbHVkZSAgICAgICo6XC9cL3d3\ndy55b3V0dWJlLmNvbVwvcGVyc2lzdF9pZGVudGl0eSpcblwvXC8gQGljb24gICAgICAgICBodHRw\nczpcL1wvd3d3Lmdvb2dsZS5jb21cL3MyXC9mYXZpY29ucz9zej02NCZkb21haW49WW91VHViZS5j\nb21cblwvXC8gQGdyYW50ICAgICAgICBub25lXG5cL1wvIEBsaWNlbnNlIE1JVFxuXC9cLyBAZG93\nbmxvYWRVUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDU5NTQx\nXC9Zb3VUdWJlJUU1JThFJUJCJUU1JUI5JUJGJUU1JTkxJThBLnVzZXIuanNcblwvXC8gQHVwZGF0\nZVVSTCBodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80NTk1NDFcL1lv\ndVR1YmUlRTUlOEUlQkIlRTUlQjklQkYlRTUlOTElOEEubWV0YS5qc1xuXC9cLyA9PVwvVXNlclNj\ncmlwdD09XG5cbihmdW5jdGlvbigpIHtcbiAgICBgdXNlIHN0cmljdGA7XG5cbiAgICBsZXQgdmlk\nZW87XG4gICAgXC9cL+eVjOmdouW5v+WRiumAieaLqeWZqFxuICAgIGNvbnN0IGNzc1NlbGVjdG9y\nQXJyID0gW1xuICAgICAgICBgI21hc3RoZWFkLWFkYCxcL1wv6aaW6aG16aG26YOo5qiq5bmF5bm\/\n5ZGKLlxuICAgICAgICBgeXRkLXJpY2gtaXRlbS1yZW5kZXJlci5zdHlsZS1zY29wZS55dGQtcmlj\naC1ncmlkLXJvdyAjY29udGVudDpoYXMoLnl0ZC1kaXNwbGF5LWFkLXJlbmRlcmVyKWAsXC9cL+mm\nlumhteinhumikeaOkueJiOW5v+WRii5cbiAgICAgICAgYC52aWRlby1hZHMueXRwLWFkLW1vZHVs\nZWAsXC9cL+aSreaUvuWZqOW6lemDqOW5v+WRii5cbiAgICAgICAgYHRwLXl0LXBhcGVyLWRpYWxv\nZzpoYXMoeXQtbWVhbGJhci1wcm9tby1yZW5kZXJlcilgLFwvXC\/mkq3mlL7pobXkvJrlkZjkv4Pp\nlIDlub\/lkYouXG4gICAgICAgIGB5dGQtZW5nYWdlbWVudC1wYW5lbC1zZWN0aW9uLWxpc3QtcmVu\nZGVyZXJbdGFyZ2V0LWlkPVwiZW5nYWdlbWVudC1wYW5lbC1hZHNcIl1gLFwvXC\/mkq3mlL7pobXl\nj7PkuIrmlrnmjqjojZDlub\/lkYouXG4gICAgICAgIGAjcmVsYXRlZCAjcGxheWVyLWFkc2AsXC9c\nL+aSreaUvumhteivhOiuuuWMuuWPs+S+p+aOqOW5v+W5v+WRii5cbiAgICAgICAgYCNyZWxhdGVk\nIHl0ZC1hZC1zbG90LXJlbmRlcmVyYCxcL1wv5pKt5pS+6aG16K+E6K665Yy65Y+z5L6n6KeG6aKR\n5o6S54mI5bm\/5ZGKLlxuICAgICAgICBgeXRkLWFkLXNsb3QtcmVuZGVyZXJgLFwvXC\/mkJzntKLp\nobXlub\/lkYouXG4gICAgICAgIGB5dC1tZWFsYmFyLXByb21vLXJlbmRlcmVyYCxcL1wv5pKt5pS+\n6aG15Lya5ZGY5o6o6I2Q5bm\/5ZGKLlxuICAgICAgICBgeXRkLXBvcHVwLWNvbnRhaW5lcjpoYXMo\nYVtocmVmPVwiXC9wcmVtaXVtXCJdKWAsXC9cL+S8muWRmOaLpuaIquW5v+WRilxuICAgICAgICBg\nYWQtc2xvdC1yZW5kZXJlcmAsXC9cL03mkq3mlL7pobXnrKzkuInmlrnmjqjojZDlub\/lkYpcbiAg\nICAgICAgYHl0bS1jb21wYW5pb24tYWQtcmVuZGVyZXJgLFwvXC9N5Y+v6Lez6L+H55qE6KeG6aKR\n5bm\/5ZGK6ZO+5o6l5aSEXG4gICAgXTtcbiAgICB3aW5kb3cuZGV2PWZhbHNlO1wvXC\/lvIDlj5Hk\nvb\/nlKhcblxuICAgIFwvKipcbiAgICAqIOWwhuagh+WHhuaXtumXtOagvOW8j+WMllxuICAgICog\nQHBhcmFtIHtEYXRlfSB0aW1lIOagh+WHhuaXtumXtFxuICAgICogQHBhcmFtIHtTdHJpbmd9IGZv\ncm1hdCDmoLzlvI9cbiAgICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICAqXC9cbiAgICBmdW5jdGlv\nbiBtb21lbnQodGltZSkge1xuICAgICAgICBcL1wvIOiOt+WPluW5tOK9ieK9h+aXtuWIhuenklxu\nICAgICAgICBsZXQgeSA9IHRpbWUuZ2V0RnVsbFllYXIoKVxuICAgICAgICBsZXQgbSA9ICh0aW1l\nLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIGAwYClcbiAgICAgICAgbGV0\nIGQgPSB0aW1lLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIGAwYClcbiAgICAgICAg\nbGV0IGggPSB0aW1lLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBgMGApXG4gICAg\nICAgIGxldCBtaW4gPSB0aW1lLmdldE1pbnV0ZXMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIGAw\nYClcbiAgICAgICAgbGV0IHMgPSB0aW1lLmdldFNlY29uZHMoKS50b1N0cmluZygpLnBhZFN0YXJ0\nKDIsIGAwYClcbiAgICAgICAgcmV0dXJuIGAke3l9LSR7bX0tJHtkfSAke2h9OiR7bWlufToke3N9\nYFxuICAgIH1cblxuICAgIFwvKipcbiAgICAqIOi+k+WHuuS\/oeaBr1xuICAgICogQHBhcmFtIHtT\ndHJpbmd9IG1zZyDkv6Hmga9cbiAgICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICAqXC9cbiAg\nICBmdW5jdGlvbiBsb2cobXNnKSB7XG4gICAgICAgIGlmKCF3aW5kb3cuZGV2KXtcbiAgICAgICAg\nICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyh3aW5kb3cu\nbG9jYXRpb24uaHJlZik7XG4gICAgICAgIGNvbnNvbGUubG9nKGAke21vbWVudChuZXcgRGF0ZSgp\nKX0gICR7bXNnfWApO1xuICAgIH1cblxuICAgIFwvKipcbiAgICAqIOiuvue9rui\/kOihjOagh+W\/\nl1xuICAgICogQHBhcmFtIHtTdHJpbmd9IG5hbWVcbiAgICAqIEByZXR1cm4ge3VuZGVmaW5lZH1c\nbiAgICAqXC9cbiAgICBmdW5jdGlvbiBzZXRSdW5GbGFnKG5hbWUpe1xuICAgICAgICBsZXQgc3R5\nbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KGBzdHlsZWApO1xuICAgICAgICBzdHlsZS5pZCA9\nIG5hbWU7XG4gICAgICAgIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmJvZHkpLmFwcGVuZENo\naWxkKHN0eWxlKTtcL1wv5bCG6IqC54K56ZmE5Yqg5YiwSFRNTC5cbiAgICB9XG5cbiAgICBcLyoq\nXG4gICAgKiDojrflj5bov5DooYzmoIflv5dcbiAgICAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4g\nICAgKiBAcmV0dXJuIHt1bmRlZmluZWR8RWxlbWVudH1cbiAgICAqXC9cbiAgICBmdW5jdGlvbiBn\nZXRSdW5GbGFnKG5hbWUpe1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo\nbmFtZSk7XG4gICAgfVxuXG4gICAgXC8qKlxuICAgICog5qOA5p+l5piv5ZCm6K6+572u5LqG6L+Q\n6KGM5qCH5b+XXG4gICAgKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICAgICogQHJldHVybiB7Qm9v\nbGVhbn1cbiAgICAqXC9cbiAgICBmdW5jdGlvbiBjaGVja1J1bkZsYWcobmFtZSl7XG4gICAgICAg\nIGlmKGdldFJ1bkZsYWcobmFtZSkpe1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAg\nIH1lbHNle1xuICAgICAgICAgICAgc2V0UnVuRmxhZyhuYW1lKVxuICAgICAgICAgICAgcmV0dXJu\nIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgXC8qKlxuICAgICog55Sf5oiQ5Y676Zmk\n5bm\/5ZGK55qEY3Nz5YWD57Sgc3R5bGXlubbpmYTliqDliLBIVE1M6IqC54K55LiKXG4gICAgKiBA\ncGFyYW0ge1N0cmluZ30gc3R5bGVzIOagt+W8j+aWh+acrFxuICAgICogQHJldHVybiB7dW5kZWZp\nbmVkfVxuICAgICpcL1xuICAgIGZ1bmN0aW9uIGdlbmVyYXRlUmVtb3ZlQURIVE1MRWxlbWVudChp\nZCkge1xuICAgICAgICBcL1wv5aaC5p6c5bey57uP6K6+572u6L+HLOmAgOWHui5cbiAgICAgICAg\naWYgKGNoZWNrUnVuRmxhZyhpZCkpIHtcbiAgICAgICAgICAgIGxvZyhg5bGP6JS96aG16Z2i5bm\/\n5ZGK6IqC54K55bey55Sf5oiQYCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAg\nfVxuXG4gICAgICAgIFwvXC\/orr7nva7np7vpmaTlub\/lkYrmoLflvI8uXG4gICAgICAgIGxldCBz\ndHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHN0eWxlYCk7XC9cL+WIm+W7unN0eWxl5YWD\n57SgLlxuICAgICAgICAoZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGls\nZChzdHlsZSk7XC9cL+WwhuiKgueCuemZhOWKoOWIsEhUTUwuXG4gICAgICAgIHN0eWxlLmFwcGVu\nZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGdlbmVyYXRlUmVtb3ZlQURDc3NUZXh0KGNz\nc1NlbGVjdG9yQXJyKSkpO1wvXC\/pmYTliqDmoLflvI\/oioLngrnliLDlhYPntKDoioLngrkuXG4g\nICAgICAgIGxvZyhg55Sf5oiQ5bGP6JS96aG16Z2i5bm\/5ZGK6IqC54K55oiQ5YqfYCk7XG4gICAg\nfVxuXG4gICAgXC8qKlxuICAgICog55Sf5oiQ5Y676Zmk5bm\/5ZGK55qEY3Nz5paH5pysXG4gICAg\nKiBAcGFyYW0ge0FycmF5fSBjc3NTZWxlY3RvckFyciDlvoXorr7nva5jc3PpgInmi6nlmajmlbDn\nu4RcbiAgICAqIEByZXR1cm4ge1N0cmluZ31cbiAgICAqXC9cbiAgICBmdW5jdGlvbiBnZW5lcmF0\nZVJlbW92ZUFEQ3NzVGV4dChjc3NTZWxlY3RvckFycil7XG4gICAgICAgIGNzc1NlbGVjdG9yQXJy\nLmZvckVhY2goKHNlbGVjdG9yLGluZGV4KT0+e1xuICAgICAgICAgICAgY3NzU2VsZWN0b3JBcnJb\naW5kZXhdPWAke3NlbGVjdG9yfXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fWA7XC9cL+mBjeWOhuW5\ntuiuvue9ruagt+W8jy5cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjc3NTZWxlY3RvckFy\nci5qb2luKGAgYCk7XC9cL+aLvOaOpeaIkOWtl+espuS4si5cbiAgICB9XG5cbiAgICBcLyoqXG4g\nICAgKiDop6bmkbjkuovku7ZcbiAgICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICAqXC9cbiAg\nICBmdW5jdGlvbiBuYXRpdmVUb3VjaCgpe1xuICAgICAgICBcL1wvIOWIm+W7uiBUb3VjaCDlr7no\nsaFcbiAgICAgICAgbGV0IHRvdWNoID0gbmV3IFRvdWNoKHtcbiAgICAgICAgICAgIGlkZW50aWZp\nZXI6IERhdGUubm93KCksXG4gICAgICAgICAgICB0YXJnZXQ6IHRoaXMsXG4gICAgICAgICAgICBj\nbGllbnRYOiAxMixcbiAgICAgICAgICAgIGNsaWVudFk6IDM0LFxuICAgICAgICAgICAgcmFkaXVz\nWDogNTYsXG4gICAgICAgICAgICByYWRpdXNZOiA3OCxcbiAgICAgICAgICAgIHJvdGF0aW9uQW5n\nbGU6IDAsXG4gICAgICAgICAgICBmb3JjZTogMVxuICAgICAgICB9KTtcblxuICAgICAgICBcL1wv\nIOWIm+W7uiBUb3VjaEV2ZW50IOWvueixoVxuICAgICAgICBsZXQgdG91Y2hTdGFydEV2ZW50ID0g\nbmV3IFRvdWNoRXZlbnQoYHRvdWNoc3RhcnRgLCB7XG4gICAgICAgICAgICBidWJibGVzOiB0cnVl\nLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZpZXc6IHdpbmRv\ndyxcbiAgICAgICAgICAgIHRvdWNoZXM6IFt0b3VjaF0sXG4gICAgICAgICAgICB0YXJnZXRUb3Vj\naGVzOiBbdG91Y2hdLFxuICAgICAgICAgICAgY2hhbmdlZFRvdWNoZXM6IFt0b3VjaF1cbiAgICAg\nICAgfSk7XG5cbiAgICAgICAgXC9cLyDliIbmtL4gdG91Y2hzdGFydCDkuovku7bliLDnm67moIfl\nhYPntKBcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KHRvdWNoU3RhcnRFdmVudCk7XG5cbiAg\nICAgICAgXC9cLyDliJvlu7ogVG91Y2hFdmVudCDlr7nosaFcbiAgICAgICAgbGV0IHRvdWNoRW5k\nRXZlbnQgPSBuZXcgVG91Y2hFdmVudChgdG91Y2hlbmRgLCB7XG4gICAgICAgICAgICBidWJibGVz\nOiB0cnVlLFxuICAgICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZpZXc6\nIHdpbmRvdyxcbiAgICAgICAgICAgIHRvdWNoZXM6IFtdLFxuICAgICAgICAgICAgdGFyZ2V0VG91\nY2hlczogW10sXG4gICAgICAgICAgICBjaGFuZ2VkVG91Y2hlczogW3RvdWNoXVxuICAgICAgICB9\nKTtcblxuICAgICAgICBcL1wvIOWIhua0viB0b3VjaGVuZCDkuovku7bliLDnm67moIflhYPntKBc\nbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KHRvdWNoRW5kRXZlbnQpO1xuICAgIH1cblxuXG4g\nICAgXC8qKlxuICAgICog6I635Y+WZG9tXG4gICAgKiBAcmV0dXJuIHt1bmRlZmluZWR9XG4gICAg\nKlwvXG4gICAgZnVuY3Rpb24gZ2V0VmlkZW9Eb20oKXtcbiAgICAgICAgdmlkZW8gPSBkb2N1bWVu\ndC5xdWVyeVNlbGVjdG9yKGAuYWQtc2hvd2luZyB2aWRlb2ApIHx8IGRvY3VtZW50LnF1ZXJ5U2Vs\nZWN0b3IoYHZpZGVvYCk7XG4gICAgfVxuXG5cbiAgICBcLyoqXG4gICAgKiDoh6rliqjmkq3mlL5c\nbiAgICAqIEByZXR1cm4ge3VuZGVmaW5lZH1cbiAgICAqXC9cbiAgICBmdW5jdGlvbiBwbGF5QWZ0\nZXJBZCgpe1xuICAgICAgICBpZih2aWRlby5wYXVzZWQgJiYgdmlkZW8uY3VycmVudFRpbWU8MSl7\nXG4gICAgICAgICAgICB2aWRlby5wbGF5KCk7XG4gICAgICAgICAgICBsb2coYOiHquWKqOaSreaU\nvuinhumikWApO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBcLyoqXG4gICAgKiDnp7vpmaRZ\nVOaLpuaIquW5v+WRiuaLpuaIquW8ueeql+W5tuS4lOWFs+mXreWFs+mXremBrue9qeWxglxuICAg\nICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgICpcL1xuICAgIGZ1bmN0aW9uIGNsb3NlT3Zlcmxh\neSgpe1xuICAgICAgICBcL1wv56e76ZmkWVTmi6bmiKrlub\/lkYrmi6bmiKrlvLnnqpdcbiAgICAg\nICAgY29uc3QgcHJlbWl1bUNvbnRhaW5lcnMgPSBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs\nbChgeXRkLXBvcHVwLWNvbnRhaW5lcmApXTtcbiAgICAgICAgY29uc3QgbWF0Y2hpbmdDb250YWlu\nZXJzID0gcHJlbWl1bUNvbnRhaW5lcnMuZmlsdGVyKGNvbnRhaW5lciA9PiBjb250YWluZXIucXVl\ncnlTZWxlY3RvcihgYVtocmVmPVwiXC9wcmVtaXVtXCJdYCkpO1xuXG4gICAgICAgIGlmKG1hdGNo\naW5nQ29udGFpbmVycy5sZW5ndGg+MCl7XG4gICAgICAgICAgICBtYXRjaGluZ0NvbnRhaW5lcnMu\nZm9yRWFjaChjb250YWluZXIgPT4gY29udGFpbmVyLnJlbW92ZSgpKTtcbiAgICAgICAgICAgIGxv\nZyhg56e76ZmkWVTmi6bmiKrlmahgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIFwvXC8g6I635Y+W\n5omA5pyJ5YW35pyJ5oyH5a6a5qCH562+55qE5YWD57SgXG4gICAgICAgIGNvbnN0IGJhY2tkcm9w\ncyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYHRwLXl0LWlyb24tb3ZlcmxheS1iYWNrZHJv\ncGApO1xuICAgICAgICBcL1wvIOafpeaJvuWFt+acieeJueWumuagt+W8j+eahOWFg+e0oFxuICAg\nICAgICBjb25zdCB0YXJnZXRCYWNrZHJvcCA9IEFycmF5LmZyb20oYmFja2Ryb3BzKS5maW5kKFxu\nICAgICAgICAgICAgKGJhY2tkcm9wKSA9PiBiYWNrZHJvcC5zdHlsZS56SW5kZXggPT09IGAyMjAx\nYFxuICAgICAgICApO1xuICAgICAgICBcL1wvIOWmguaenOaJvuWIsOivpeWFg+e0oO+8jOa4heep\nuuWFtuexu+W5tuenu+mZpCBvcGVuIOWxnuaAp1xuICAgICAgICBpZiAodGFyZ2V0QmFja2Ryb3Ap\nIHtcbiAgICAgICAgICAgIHRhcmdldEJhY2tkcm9wLmNsYXNzTmFtZSA9IGBgOyBcL1wvIOa4heep\nuuaJgOacieexu1xuICAgICAgICAgICAgdGFyZ2V0QmFja2Ryb3AucmVtb3ZlQXR0cmlidXRlKGBv\ncGVuZWRgKTsgXC9cLyDnp7vpmaQgb3BlbiDlsZ7mgKdcbiAgICAgICAgICAgIGxvZyhg5YWz6Zet\n6YGu572p5bGCYCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIFwvKipcbiAgICAqIOi3s+i\/\nh+W5v+WRilxuICAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgICpcL1xuICAgIGZ1bmN0aW9u\nIHNraXBBZChtdXRhdGlvbnNMaXN0LCBvYnNlcnZlcikge1xuICAgICAgICBjb25zdCBza2lwQnV0\ndG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLnl0cC1hZC1za2lwLWJ1dHRvbmApIHx8IGRv\nY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC55dHAtc2tpcC1hZC1idXR0b25gKSB8fCBkb2N1bWVudC5x\ndWVyeVNlbGVjdG9yKGAueXRwLWFkLXNraXAtYnV0dG9uLW1vZGVybmApO1xuICAgICAgICBjb25z\ndCBzaG9ydEFkTXNnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLnZpZGVvLWFkcy55dHAtYWQt\nbW9kdWxlIC55dHAtYWQtcGxheWVyLW92ZXJsYXlgKSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9y\nKGAueXRwLWFkLWJ1dHRvbi1pY29uYCk7XG5cbiAgICAgICAgaWYoKHNraXBCdXR0b24gfHwgc2hv\ncnRBZE1zZykgJiYgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZihgaHR0cHM6XC9cL20ueW91\ndHViZS5jb21cL2ApID09PSAtMSl7IFwvXC\/np7vliqjnq6\/pnZnpn7PmnIlidWdcbiAgICAgICAg\nICAgIHZpZGVvLm11dGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmKHNraXBCdXR0\nb24pe1xuICAgICAgICAgICAgY29uc3QgZGVsYXlUaW1lID0gMC41O1xuICAgICAgICAgICAgc2V0\nVGltZW91dChza2lwQWQsZGVsYXlUaW1lKjEwMDApO1wvXC\/lpoLmnpxjbGlja+WSjGNhbGzmsqHm\nnInot7Pov4fmm7TmlLnvvIznm7TmjqXmm7TmlLnlub\/lkYrml7bpl7RcbiAgICAgICAgICAgIGlm\nKHZpZGVvLmN1cnJlbnRUaW1lPmRlbGF5VGltZSl7XG4gICAgICAgICAgICAgICAgdmlkZW8uY3Vy\ncmVudFRpbWUgPSB2aWRlby5kdXJhdGlvbjtcL1wv5by65Yi2XG4gICAgICAgICAgICAgICAgbG9n\nKGDnibnmrorotKblj7fot7Pov4fmjInpkq7lub\/lkYpgKTtcbiAgICAgICAgICAgICAgICByZXR1\ncm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBza2lwQnV0dG9uLmNsaWNrKCk7XC9cL1BD\nXG4gICAgICAgICAgICBuYXRpdmVUb3VjaC5jYWxsKHNraXBCdXR0b24pO1wvXC9QaG9uZVxuICAg\nICAgICAgICAgbG9nKGDmjInpkq7ot7Pov4flub\/lkYpgKTtcbiAgICAgICAgfWVsc2UgaWYoc2hv\ncnRBZE1zZyl7XG4gICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHZpZGVvLmR1cmF0aW9u\nO1wvXC\/lvLrliLZcbiAgICAgICAgICAgIGxvZyhg5by65Yi257uT5p2f5LqG6K+l5bm\/5ZGKYCk7\nXG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIFwvKipcbiAgICAqIOWOu+mZpOaSreaUvuS4reea\nhOW5v+WRilxuICAgICogQHJldHVybiB7dW5kZWZpbmVkfVxuICAgICpcL1xuICAgIGZ1bmN0aW9u\nIHJlbW92ZVBsYXllckFEKGlkKXtcbiAgICAgICAgXC9cL+WmguaenOW3sue7j+WcqOi\/kOihjCzp\ngIDlh7ouXG4gICAgICAgIGlmIChjaGVja1J1bkZsYWcoaWQpKSB7XG4gICAgICAgICAgICBsb2co\nYOWOu+mZpOaSreaUvuS4reeahOW5v+WRiuWKn+iDveW3suWcqOi\/kOihjGApO1xuICAgICAgICAg\nICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICBcL1wv55uR5ZCs6KeG6aKR5Lit\n55qE5bm\/5ZGK5bm25aSE55CGXG4gICAgICAgIGNvbnN0IHRhcmdldE5vZGUgPSBkb2N1bWVudC5i\nb2R5O1wvXC\/nm7TmjqXnm5HlkKxib2R55Y+Y5YqoXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtj\naGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfTtcL1wvIOebkeWQrOebruagh+iKgueCueac\nrOi6q+S4juWtkOagkeS4i+iKgueCueeahOWPmOWKqFxuICAgICAgICBjb25zdCBvYnNlcnZlciA9\nIG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpPT57Z2V0VmlkZW9Eb20oKTtjbG9zZU92ZXJsYXkoKTtz\na2lwQWQoKTtwbGF5QWZ0ZXJBZCgpO30pO1wvXC\/lpITnkIbop4bpopHlub\/lkYrnm7jlhbNcbiAg\nICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh0YXJnZXROb2RlLCBjb25maWcpO1wvXC8g5Lul5LiK6L+w\n6YWN572u5byA5aeL6KeC5a+f5bm\/5ZGK6IqC54K5XG4gICAgICAgIGxvZyhg6L+Q6KGM5Y676Zmk\n5pKt5pS+5Lit55qE5bm\/5ZGK5Yqf6IO95oiQ5YqfYCk7XG4gICAgfVxuXG4gICAgXC8qKlxuICAg\nICogbWFpbuWHveaVsFxuICAgICpcL1xuICAgIGZ1bmN0aW9uIG1haW4oKXtcbiAgICAgICAgZ2Vu\nZXJhdGVSZW1vdmVBREhUTUxFbGVtZW50KGByZW1vdmVBREhUTUxFbGVtZW50YCk7XC9cL+enu+mZ\npOeVjOmdouS4reeahOW5v+WRii5cbiAgICAgICAgcmVtb3ZlUGxheWVyQUQoYHJlbW92ZVBsYXll\nckFEYCk7XC9cL+enu+mZpOaSreaUvuS4reeahOW5v+WRii5cbiAgICB9XG5cbiAgICBpZiAoZG9j\ndW1lbnQucmVhZHlTdGF0ZSA9PT0gYGxvYWRpbmdgKSB7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2\nZW50TGlzdGVuZXIoYERPTUNvbnRlbnRMb2FkZWRgLCBtYWluKTtcL1wvIOatpOaXtuWKoOi9veWw\nmuacquWujOaIkFxuICAgICAgICBsb2coYFlvdVR1YmXljrvlub\/lkYrohJrmnKzljbPlsIbosIPn\nlKg6YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWFpbigpO1wvXC8g5q2k5pe2YERPTUNvbnRl\nbnRMb2FkZWRgIOW3sue7j+iiq+inpuWPkVxuICAgICAgICBsb2coYFlvdVR1YmXljrvlub\/lkYro\nhJrmnKzlv6vpgJ\/osIPnlKg6YCk7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VtZVZpZGVvID0gKCkg\nPT4ge1xuICAgICAgICBjb25zdCB2aWRlb2VsZW0gPSBkb2N1bWVudC5ib2R5LnF1ZXJ5U2VsZWN0\nb3IoJ3ZpZGVvLmh0bWw1LW1haW4tdmlkZW8nKVxuICAgICAgICBpZiAodmlkZW9lbGVtICYmIHZp\nZGVvZWxlbS5wYXVzZWQpIHtcbiAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVzdW1lIHZpZGVv\nJylcbiAgICAgICAgICAgICB2aWRlb2VsZW0ucGxheSgpXG4gICAgICAgIH1cbiAgICB9XG5cbiAg\nICBsZXQgcmVtb3ZlUG9wID0gbm9kZSA9PiB7XG4gICAgICAgIGNvbnN0IGVscG9wdXAgPSBub2Rl\nLnF1ZXJ5U2VsZWN0b3IoJy55dGQtcG9wdXAtY29udGFpbmVyID4gLnl0ZC1wb3B1cC1jb250YWlu\nZXIgPiAueXRkLWVuZm9yY2VtZW50LW1lc3NhZ2Utdmlldy1tb2RlbCcpXG5cbiAgICAgICAgaWYg\nKGVscG9wdXApIHtcbiAgICAgICAgICAgIGVscG9wdXAucGFyZW50Tm9kZS5yZW1vdmUoKVxuICAg\nICAgICAgICAgY29uc29sZS5sb2coJ3JlbW92ZSBwb3B1cCcsIGVscG9wdXApXG4gICAgICAgICAg\nICBjb25zdCBiZGVsZW1zID0gZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAuZ2V0RWxlbWVudHNC\neVRhZ05hbWUoJ3RwLXl0LWlyb24tb3ZlcmxheS1iYWNrZHJvcCcpXG4gICAgICAgICAgICBmb3Ig\nKHZhciB4ID0gKGJkZWxlbXMgfHwgW10pLmxlbmd0aDsgeC0tOylcbiAgICAgICAgICAgICAgICBi\nZGVsZW1zW3hdLnJlbW92ZSgpXG4gICAgICAgICAgICByZXN1bWVWaWRlbygpXG4gICAgICAgIH1c\nblxuICAgICAgICBpZiAobm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICd0cC15dC1pcm9u\nLW92ZXJsYXktYmFja2Ryb3AnKSB7XG4gICAgICAgICAgICBub2RlLnJlbW92ZSgpXG4gICAgICAg\nICAgICByZXN1bWVWaWRlbygpXG4gICAgICAgICAgICBjb25zb2xlLmxvZygncmVtb3ZlIGJhY2tk\ncm9wJywgbm9kZSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxldCBvYnMgPSBuZXcgTXV0YXRp\nb25PYnNlcnZlcihtdXRhdGlvbnMgPT4gbXV0YXRpb25zLmZvckVhY2gobXV0YXRpb24gPT4ge1xu\nICAgICAgICBpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcpIHtcbiAgICAgICAgICAg\nIEFycmF5LmZyb20obXV0YXRpb24uYWRkZWROb2RlcylcbiAgICAgICAgICAgICAgICAuZmlsdGVy\nKG5vZGUgPT4gbm9kZS5ub2RlVHlwZSA9PT0gMSlcbiAgICAgICAgICAgICAgICAubWFwKG5vZGUg\nPT4gcmVtb3ZlUG9wKG5vZGUpKVxuICAgICAgICB9XG4gICAgfSkpXG5cbiAgICBcL1wvIGhhdmUg\ndGhlIG9ic2VydmVyIG9ic2VydmUgZm9vIGZvciBjaGFuZ2VzIGluIGNoaWxkcmVuXG4gICAgb2Jz\nLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xuICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAg\nICAgIHN1YnRyZWU6IHRydWVcbiAgICB9KVxufSkoKTsifQp7InNjcmlwdElkIjoiNGZkYjc1OWEw\nNTA5YjNjYTkxN2U4MmExZTFlYjQxMzYiLCJlbmFibGVkIjp0cnVlLCJ1cmwiOiJodHRwczpcL1wv\ndXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80NDA4NzFcLyVFOSVBQSU5QSVFNiU4OSVC\nMCVFNiU4QiVBNiVFNiU4OCVBQS51c2VyLmpzIiwiY29kZVYyIjoiXC9cLyA9PVVzZXJTY3JpcHQ9\nPVxuXC9cLyBAbmFtZSAgICAgICAgIOmqmuaJsOaLpuaIqlxuXC9cLyBAdmVyc2lvbiAgICAgIDEu\nNC4xNVxuXC9cLyBAbmFtZXNwYWNlICAgIGFpcmJhc2hcL0Fubm95YW5jZXNJbnRlcmNlcHRpb25c\nblwvXC8gQGhvbWVwYWdlVVJMICBodHRwczpcL1wvZ2l0aHViLmNvbVwvQWlyQmFzaFhcL1VzZXJT\nY3JpcHRcblwvXC8gQGF1dGhvciAgICAgICBhaXJiYXNoXG5cL1wvIEBkZXNjcmlwdGlvbiAg5omL\n5py644CB55S16ISR5YWo5bmz5Y+w6YCa55SoOuiHquWKqOaLpuaIquaIluWIoOmZpGDkuIvovb3l\nvLnnqpdg44CBYOaCrOa1ruaMiemSrmDnrYnlvbHlk43nlKjmiLfkvZPpqoznmoTlhYPntKA76ZW\/\n5pyf57u05oqkOkNTRE7jgIHnroDkuabjgIHnn6XkuY7jgIHnn6XkuY7kuJPmoI\/jgIHnmb7luqbm\nkJzntKLjgIHnmb7lrrblj7fjgIHnmb7luqbotLTlkKfjgIHnmb7luqbmloflupPjgIHnmb7luqbm\nlrDpl7vjgIHmlrDmtarmlrDpl7vjgIHohb7orq\/op4bpopHjgIHkvJjphbfop4bpopHjgIHniLHl\npYfoibrjgIHlpb3nnIvop4bpopHjgIHlk5Tlk6nlk5Tlk6njgIFC56uZ5LiT5qCP44CBQuermees\nlOiusOOAgeilv+eTnOinhumikeOAgeaKlumfs+OAgeS4gemmmeWbreOAgeWBpeW6t+eVjOOAgeW+\nruWNmuOAgeaWsOa1qui0oue7j+OAgeS4nOaWuei0ouWvjOe9keOAgeeUteWtkOWPkeeDp+WPi+OA\ngeS6uuawkee9keOAgeaWsOS6rOaKpeOAgeinguWvn+iAhee9keOAgea+jua5g+aWsOmXu+OAgeWH\npOWHsOaWsOmXu+OAgee9keaYk+aWsOmXu+OAgeS7iuaXpeWktOadoeOAgeS4nOaWuei1hOiur+OA\ngeiZjuWXheOAgeiZjuaJkeOAgeixhueTo+OAgeS4reWFs+adkeWcqOe6v+OAgeWkquW5s+a0i+eU\nteiEkeOAgeWkquW5s+a0i+axvei9pue9keOAgeaxvei9puS5i+WutuOAgeWkquW5s+a0i+axvei9\npue9keOAgXRhcHRhcOOAgWl05LmL5a6244CBMzYwZG9j44CB5byA5rqQ5Lit5Zu944CBc2VnbWVu\ndGZhdWx044CBVzNDU2Nob29s44CB6Zi\/6YeM5LqR5byA5Y+R6ICF56S+5Yy644CB6IW+6K6v5LqR\n5byA5Y+R6ICF56S+5Yy644CB5Y2O5Li65LqR5byA5Y+R6ICF56S+5Yy644CBMzbmsKrjgIHpm6rn\nkIPjgIHlpKnnnLzmn6XjgIHnq5nphbfjgIHlsI\/nuqLkuabjgIHkuK3lm73nn6XnvZHjgIHoo4Xl\npIfliY3nur\/jgIHlv4XlupTmkJzntKLjgIHku4DkuYjlgLzlvpfkubBcblwvXC8gQG1hdGNoICAg\nICAgICAqOlwvXC8qLmNzZG4ubmV0XC8qXG5cL1wvIEBtYXRjaCAgICAgIFx0ICo6XC9cLyouamlh\nbnNodS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9qdWVqaW4uY25cLypcblwvXC8g\nQG1hdGNoICAgICAgICAqOlwvXC8qLnpoaWh1LmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6\nXC9cL3RpZWJhLmJhaWR1LmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2JhaWppYWhh\nby5iYWlkdS5jb21cL3MqXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvbWJkLmJhaWR1LmNvbVwv\nbmV3c3BhZ2VcL2RhdGFcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9uZXdzLmJhaWR1LmNv\nbVwvbmV3cypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLmJhaWR1LmNvbVwvc2ZfYmFpamlh\naGFvXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvdmlldy5pbmV3cy5xcS5jb21cLypcblwv\nXC8gQG1hdGNoICAgICAgICAqOlwvXC94dy5xcS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAq\nOlwvXC9tLnNvaHUuY29tXC9hXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvbS52LnFxLmNv\nbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLyoueW91a3UuY29tXC8qXG5cL1wvIEBtYXRj\naCAgICAgICAgKjpcL1wvKi5pcWl5aS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9o\nYW9rYW4uYmFpZHUuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi4xOTA1LmNvbVwv\nKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLyouYmFpZHUuY29tXC8qXG5cL1wvIEBtYXRjaCAg\nICAgICAgKjpcL1wvKi5iaWxpYmlsaS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8z\nZy5keHkuY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93d3cuY24taGVhbHRoY2FyZS5j\nb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8qLnNpbmEuY25cLypcblwvXC8gQG1hdGNo\nICAgICAgICAqOlwvXC9tLndlaWJvLmNuXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvd2Fw\nLmVhc3Rtb25leS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tZ3ViYS5lYXN0bW9u\nZXkuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvKi5peGlndWEuY29tXC8qXG5cL1wv\nIEBtYXRjaCAgICAgICAgKjpcL1wvd3d3LmRvdXlpbi5jb21cLypcblwvXC8gQG1hdGNoICAgICAg\nICAqOlwvXC9tLmVsZWNmYW5zLmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2FwcC5w\nZW9wbGUuY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLmJqbmV3cy5jb20uY25cL2Rl\ndGFpbFwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLyouZ3VhbmNoYS5jblwvKlxuXC9cLyBA\nbWF0Y2ggICAgICAgICo6XC9cL20udGhlcGFwZXIuY25cL25ld3NEZXRhaWxfZm9yd2FyZCpcblwv\nXC8gQG1hdGNoICAgICAgICAqOlwvXC8qLmlmZW5nLmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAg\nICo6XC9cL20uMTYzLmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLzNnLjE2My5jb21c\nLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLnRvdXRpYW8uY29tXC8qXG5cL1wvIEBtYXRj\naCAgICAgICAgKjpcL1wvd3d3LnRvdXRpYW8uY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpc\nL1wvbWluaS5lYXN0ZGF5LmNvbVwvbnNhXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvbS5o\ndXhpdS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLmh1cHUuY29tXC8qXG5cL1wv\nIEBtYXRjaCAgICAgICAgKjpcL1wvbS5kb3ViYW4uY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAg\nKjpcL1wvZy5wY29ubGluZS5jb20uY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLnpv\nbC5jb20uY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93YXAuem9sLmNvbS5jblwvKlxu\nXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3d3dy5hdXRvaG9tZS5jb20uY25cLypcblwvXC8gQG1h\ndGNoICAgICAgICAqOlwvXC8qLm0uYXV0b2hvbWUuY29tLmNuXC8qXG5cL1wvIEBtYXRjaCAgICAg\nICAgKjpcL1wvbS5hdXRvaG9tZS5jb20uY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9t\nLnBjYXV0by5jb20uY25cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93d3cudGFwdGFwLmNu\nXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvbS50YXB0YXAuY25cLypcblwvXC8gQG1hdGNo\nICAgICAgICAqOlwvXC9tLml0aG9tZS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93\nd3cuMzYwZG9jLmNvbVwvY29udGVudFwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL3d3dy5v\nc2NoaW5hLm5ldFwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cL2RldmVsb3Blci5hbGl5dW4u\nY29tXC9hcnRpY2xlXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvaHVhd2VpY2xvdWQuY3Nk\nbi5uZXRcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC9tLjM2a3IuY29tXC9wXC8qXG5cL1wv\nIEBtYXRjaCAgICAgICAgKjpcL1wveHVlcWl1LmNvbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6\nXC9cL3NlZ21lbnRmYXVsdC5jb21cL3FcLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC93d3cu\ndzNjc2Nob29sLmNuXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvbS50aWFueWFuY2hhLmNv\nbVwvKlxuXC9cLyBAbWF0Y2ggICAgICAgICo6XC9cLyouemNvb2wuY29tLmNuXC8qXG5cL1wvIEBt\nYXRjaCAgICAgICAgKjpcL1wvbS54aW1hbGF5YS5jb21cLypcblwvXC8gQG1hdGNoICAgICAgICAq\nOlwvXC93d3cueGlhb2hvbmdzaHUuY29tXC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvd2Fw\nLmNua2kubmV0XC8qXG5cL1wvIEBtYXRjaCAgICAgICAgKjpcL1wvd3d3Lnpmcm9udGllci5jb21c\nLypcblwvXC8gQG1hdGNoICAgICAgICAqOlwvXC8qLm0uc216ZG0uY29tXC8qXG5cL1wvIEBpY29u\nICAgICAgICAgZGF0YTppbWFnZVwvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFB\nRUFBQUFCQUNBWUFBQUNxYVhIZUFBQUFBWE5TUjBJQXJzNGM2UUFBRWk1SlJFRlVlRjY5V3dsMFZW\nV3kzZlZDQ0NDVFlMZkRsOGEyR1VJbVNBSUpVU0VSUkkyS0NNaWtJSUlLQWpZeXFzZ1VSQkZiWmRL\nUGlvb0RJQ2lLSWdnT0VFQkVFa0tBSkpBRXNMOXpON2Eyb2tBZ3lidTFcL3pyM2hRYzN5UnN5d0Yy\nTHRWZ3Y1OTV6OXE0NlZYV3E2Z2pPNDhNdEtmWFE1T1NWUUVnVFdOb1VGcHZZMDFzNENaVVRVUGtK\nR25aWXJ0MTY2bnd0Uzg3bFJNeTV1aTNJVzBBckhwVDJVTFFCVVFjS2dHWFwvbEo3XC9uXC9sTm9m\nZ08xRnlvYXd0Z2JjT08zVG1TWm8rbzlhZldDZUNCeEFoUTdvSWx2VUNFd3dQd0cxQnlvSm9EdWdw\nQlwvUVhxK2gxYStqdXNFSVVMaldHaE1ZaUxvUXdIMlJZcUhVRzBLaVBuUjRBclljbHk2YmtycHpa\nWnFEVUNlQ0NwTzRpSlVOd0l3ZzNsTnFpc0JWMGZTc2NkMzFWbjBmeWtVd3VvZElPeXJcLzFkUlNp\nSUx3SE1SYStzOVNJMlBUVjZha3dBODZcL3VETlZGSURwQjhST0l4UkI1VWRwXC8rWjhhcmF6Y3k5\nd1EreWNVaDl3SnVzWkJ0U1dJUExobHZBeksybHlUZWFwTkFBOTMrUk5LM0U5Q01RdzB3RGtERFM1\nY0pxMDNGdGRrUVlIZTVVdnhvV2ptR2d5TDAwQmNDV0kxU2tQSHk5Q2RQd1o2dDdLXC9WNHNBRmx4\nMVBTeXNBTmtZaW9VSWM4Mlc4QjNIcXJJQWZoYmZCS3gzQVZ4dUM3OGUrMDM2NTVkVTZmMTNrdXFq\ncE9RUlFCNkNzZ2lVNFRKMDk5cXFmTU9NclJJQkpGeklUNW9HeFV3UStYRHJBSW5MelBjM0tUZWto\ncUhoMGM2QWRnTVJEd3ZHTTF3QlJaMXkxdjg0bEQrRDJBTmxKaXpaQmZlSm5ZR0k0UnNKYlVCckZZ\nZ09JQmJodTBhVEpHMnJPMWdpZ2lhQVg2ZlV3NG1TdDBIZUNzV2JLQzBaSlIyemkzeE54TStUa3VI\nU3U2RXdCcXlSQnl5XC9BcmtibE8raDhodkkzNkFVZ0JkQzVVSVFsOXZXWCtteFwvdVF2VUx3TlM1\nZkx3RDBaUHVkNkxhVWU5Tml6VUl3R3VSNlVBVExTOTlyT1wvazVRQlBEN3BQbzRpZzlBWEFmbE9P\nbVE4VnhsaXlFaDJORzVONFJUWVNFT3hBa1FIOW9nUWtNXC9seTVmXC9CYU1aTGdtb1Rtb1Y4T1NB\nU0I3UTFFZmhDRnVpdHladGNrbkVVdmlSMFA1SEJRWlFPa3RNam92NEh3QkNXQk96QVZ3TlZnSGxh\nNVEzaXV4R2E5WENqNGpNUVlXWDRES1ZiYmZWNW1ENHFLMzVJYmNFOEdBOWdscWVXSmp1Tno5b1pn\nS3hSVWdOMEV3VnU3YVUxRHBPaGJIOTROeU9ZaHNuSEwza01uKzVcL2RMZ0MzUnZLUjNRUFNHSllN\nbDdzdFY1U2UxN2NLT3hHa0Fwa1B4cSswTm1oOVwvVGFLcVp0UUNrY1IzSXVxaXFQNzlvRTJFd0kz\nV01qTDc5MHBKV0JqWEgrUktFSlwvaDl5YTMrTE1KXC9nbllselFEd0N4WW5DRHhHZk1yZ005TWFB\nNjM2MjBvdXdOWUE5YTlYN3B1XC96a1FtSnI4blVzN0pjUFNyVkRjSUNPelBcL1dwT2ZOaURWa3ZR\nREZQSnUrZDZHdWNUd0s0TCtrR0VCdEFYUzV4bVVNcmdOXC9XcVFWY3JrOUFcL0EyUWtkSzE4cTFS\nRTdBVjVqU3U3K2lwdGFCY0E3VmF5Nmdjdjc2ZlQ4Y3VobklVSVAzazRiM3ZWaWtPNE43T2QwTFJH\nM1wvVUcxeitkRVliZk1nWElKdkNyWDJrVzgyaXNXQkk0cnlrK21oNGFpMVV1a014VkVidldSN29Q\nYWFsMUVQWTBTK2hhSUdTMEdpWmxYV2tcL0R1VmFvQjlpb3ZaY1ZpazRnbU1SdTJMWlR1SVN3RlhO\nMG5ldVRmUVFtcjZkd2Q0aThOa3pONDNnXC8wbVo4ZTBoYmh5b0Znbk1cL2IxQzBnQXN4TzZnYTVO\nSUs2WFRoa09sMk1idk8ySm4wSFJCYXFwNTAzeURXeTE3dzZ0R3ZqVFlQbFk3R3lvR2tOOWc2VGxP\nT3hHQlExZ1Z1ZjNRTVRpUkwySUNxcVwvTmRGakZDbjN5YlVacndRcmhlcU9zeVZ2d0J1MXAzXC93\nZkNybWNsQWlnVG9aOG9qVE8zQjhVbjAwS2pvQTRpaG01OFNieU92MG1pb2hvTk9WVUtFazd2cjY3\nSVZ6Uzhjb0lNU0VxUjlJOTEzOXF3c3EyUGU0cUZVWTZqWitENHBVcUF5WEI3TGY4R254NTdZZkRN\nb1NFUFdoK0JsMEpjdDBaNXpBNlRIM3dwS1hRZlNVSjNQV1Ywb0FNNUtlQjNTcmRNNTBXRXc3SHRp\nUzhBV0lTRmloRVhMOWpuOEZDNlE2NDJ6d2RSb2JUVXkxRHpsK3djZmVCZkkxRU9tZ3pJWEZ0d0Rr\neW94OVBSd0NuQmxSRjhWMURvUDRUcDdLN1ZLQkFHWWt0b2JpRUlCeGNsWG1Rc2ZMNllsOW9Yd1hs\nSkhTSTNOSmRVQUYrNDZ0OW1GbjdmbXh2ZzBlNThZT3RLTStSVG9hMU84bEUzYWVaRnJNV0ZBV2dy\neE9Ic3QxNUFvNE9YbzhJUFBnbGlpWm4zUEFyTW03QmJnallTWW9VM0VLTGVTNnpKOGNCSHlXa0dX\nbnE0NGVieFhvZEJZczBNckcyWklQT2EzMk9sd2UzT2RIN1dQdmdtVkxmdk5wOE9hYk5KTFcwRUpZ\nK0VYbTVDUTRjRXlLK1RPSUgyRnhrU3pJczRPak13UnNUendJb2xDNlp2Wnl2UFJwcDJSUXRrTDVv\nS1JtTGFvSlFIXC92MnBLdld5WjU0K3JHK1pIOEUyVnFEeWQ0cjlWXC9OT1plVUY2R2hVVDVSODR1\nQjU1eDBlc0JpY0tDM0w4YVkyZ1R3TzBKN2FHeUQrQlFTZDdsOExIOHVOTlNVUHJDYlYwcVBZTTdZ\nbGFWSkJ0OHFBRVBFK1FFQWo4UUxGUDdoaDYxTHo4ZjB4SWI0K1RKZjBQNXFqeWROOVpCd05ob2s4\nRmFDc3VLbGNYNSt6d0ViRXNjQThYemNMdGJTbzlzYndLVEcxcUZBYzErQnZpUjNKUTFxS3JBZ2hu\ndkJhOHdTZFhBNEQwbnZYVDRBT1wvVmdza3hiMEZ4UFJxNkw1TlpadzVtSEJ2eEYxZ2gzMEpsdkx5\nUXU4QkRRSHJpbXlBN1NcL2RkYlJ4c2JleWNBc3ZhQXNVQXVUWHJuV0FBVldXTXZlZGhyRDFUWVhH\nNFRQQ3o1NDNhbjk3elIrdjNrdmtWSmU5WSs0U1lXMEdzaFRKWkZ1Wjk3dmpicU9pdm9NaVZsXC9M\nNmVBallsSEFJUkpiMDJIV25ZK0M2aERTUTAzRkttMG5cL3lvK2VWUUhzK0xaUis1QXl0YmN3VENi\nNjJmT1B4UTRFak5vekhiODNDQWpleGpRK3NoblU5UXZJaDJUUlwvbWNjYzQrTU5pZllUdkx5XC9p\ndkZMbGVWRmhWQkpVMXV6SHpNTVhCdFI1TmVDcGZic2xwVkY2aFBhMDlqN1prS0JwQzhBV1wvMlBJ\nTUg3OTBHZjRcLytDaGIyeU9JOFIrREcreUpuUVdVYVFzSWFDVGQydmdLaVgwTTVVRzdLZXR0QndQ\nc0poNkc2WFwvcnU3bDFiQk5ocWI4QmJUQVVDZ3I4THFxXC9CV1BzZ0plOVlcLzVpb2xTYkhLQ1wv\na3RYYjhma1wvMEhWQ3VBQmdwM0ppUVpGZGJ5R1M1T2N1N1Y1Z0dGNkk3RllONFJtN1BtbEliQk5n\nR1QwNWJldzZYU1g3MnZKRzhxaWZJT1JhYzJsZndCcU5qbm9IRkVmSlNYbU1IQWNNaXUwRmxNeXhj\nSzl5UWNCdVU3NE1hTHoyejkzalZaKzNWalZCU1wvQWNnajBxXC9yQ2RyU29BdGVYZVp3VE5xN3c5\nOFdzeEFRSmJEUWpxT1Z3KzhiUWZ1ajVrS1N4XC9IVVEyVDFXZDVnaUZSSFFHYTRPNTI0ZnFPQTJH\nSktUeTJsVDY3VENoc1Axd1pleGxjSVQrQ01rNEdaamxDNDZxUzRRVnY5cnhSKzBEZ1ZUeXVyZ2Jn\nYlF6M1JvM3lsT3B3aWJ5eTN4dmRjbkJNVzZoVkNHQ1FjRjNDYlhBYkRTaEh3RnVKRjBPc0l5RHVs\nenQydjFSVjBGNGlqZHJ6dExYbmNIbllqOW9ieVZ2aVVmdWk2a3ZlT1wvYzkwU09oZkJIVVMrWDFm\nRzgyeUNiQWJSV0NIQ3g4djZNNWJtNEFORjc2bnJVRlRBMnVvWlNBbkNLRHMrZFdod0JiOGlWbGFx\nOEJ3RTh2VVwvdGFBbTlyd0xDb1NWQThEWFUxbEdWbjB1TWNHR1dLTDFtQTloYXU3cGdDWUFzb0tk\nSVwvYTV2RFdMd1pmd3dxcjhqZHU4ZFhsUUF2K05PdXpwXC9rWjNRWUN1VlMrMkJUQzVMM2FzQ1Fx\nRGtBSjJIWmdiQ3preURzSDNtdEhWTlkwbDM0Ym1KcldKWUpoQWJKd04yT3ZEOWZqXC84bktGa3li\nUGZBcWhCZ1czdDNtZHFiUGU4UHZKSDg2VDFcL3N1WnE3eERnNE1oM29ZaVV0dzYwY1wvemVKXC9J\nT2dDdEFWNFFKaE9yZ3lQRVRVTXlSTzNmUGNneGNHcjhhUkh1NUo5c1JJdnNqdzViOHljYnZBWm9L\nQzhQbFVUOTdmbXFIb1FDWFFyRVpwMm9YdkwwRkJrWGxnZndcL1dYWEFlY0x0SFRFTHhIU0VcL25H\nQkp4UmUwYkVBeXIweUpQc09Cd0d2eGsyRzRpbTQzWmZJcU55QURROWU4TlJVYUFEd2o1YnRlV1B0\nendYNHV6czB4YWxTVTF5ZEplOGNtTzNBMVN0eUZjaEUrVERmSElrQkxvdGZBMFdVREhWS21pXC9H\nZGdYRXRMcjBsdEhaSFwvaVZ2Rkg3MHBOcjRUblYrWmU4QVU4eGVmMXpBdDdHTkRDcU55eXVnWVZy\nWk0yQkhRNENla1o4QmRVOThsRmhmdzhCYjNSOHdLNnEwdlVYR1o3MXZkZUlHRTlnOFY4Z1BwRXhl\nd2I3SXNDV2ZGSERzaHhlQVBCVE9nd0Z5d3hlU2UycnZYZnR0N2Q3SFpSZWFGN1wvejdJa3U5VDcr\nMDN0V2tKTThaYVRaR1Boc3g0Q1hvbHJCWkhEVUJrcTkrMTJKa1NlajN2ZVNCUnV2VXpHN3p0YW5n\nUWJcL0lreThBaEM4b3JsVUVsSDZUa0Uzek8rQWVxZU5ESE1TbG1UUDlJaFwvZFNJNFFCZmhZVm8r\nYlJnXC81bVUyTXR4aDZISWw1RjduQVpqUVh3aVJETkFqcEJ4KzE1MmZNeW9cL2FtVG5reU9VZnRw\nZmd5ZWtieXF5UzV0UHBmZ2JZSDJqcndQNUJJSXVzajcrVjg0MW54anU0OUFSTWtuQlMzTjcyY0ll\nREh1YVJBUG9wVFwvSTJQM09pcThuQitiQlVWelwvRkVjZmpxN1lydTZZTUVcL2JQWThsb09TRHZl\nNWs3d052aDlDVUJwUkFBdVwveWJyOFJBZjQ3bEVYSThUNkFZcjVzcW5nSVNjQlwveHRuenZ3bU1U\ncFJIdGl6d0NucDJHUlkyQXBpckR5MDl6bGI3WStWcWIxeGRUUDlTUDZoR0ZOWjlraitISU8zQ2Jn\ndFlnUVVMMEgxVmxsZnVNNkJvMGY0QkZDZWhSdlJzclZndjRNQSsrVkZjUnZOR1JuXC9MVzUxZGg3\nTlwvdHRUN1RkQkpScmdFRkFtdzBJMzI5WDVBMjhrZjNyUDY3bVZ2RWY2a2Mxd2lnZEJGbUI5UWJJ\naitvdVBEMFhURTZZdzhvMmtGNXJvMTM0Y3BURXU2bkF6TERGWm9PRXlZWTlKUkhnZnpvbU5BTGtO\neEVWUW5nSmRJMlRtM21VK1BZT1J2SlpKXC9qeUF0d200cFozcEN1a0xkWFdRalFjYzNXdnMxdTVl\na0o3UzJOWkNINlV4VXdKN05uWUh3SXZocWg5VlB1WE11ZkZOVUd4ZGd4QjNya3piNzNXWEZUekRw\nTFAyUE0rOTVHM3dQU05Hd3VLTFVFNlJqd3NkaHpjYXIzRHNSRDZJbjdHdE1NRlwvY2ZTWnVIZ29k\nOEhpYkpteUw4MlhoSDFLZm1MWm5yZGtNK1E4Z2IrNTdiVlExMGI3R0oxVWNFdjV6bkltaHo4QjRs\nSFFkWjFzejNlVXl5cHZrSGl5d3hzZ0JzRFM5akk5OTJDd0pOQ0FOMFVIazI0NlgrQjd0b3VERzF0\nZzRWdVVoSFdWcmM1WWhTbHR3bUc1OXBsMlBmbWlzRUpWdTNJQ25vaVwvRkxSTVY4VVAwS1pYU1Zy\nZ0N3eWMySDRJbENiNk9uXC9namVRdGwrbGZcL0M5S3JTNlNmc2pSTThTVUsrckJxcGNCeGVWdzE0\nbVV6RE5ab1VxTm9NUG96VzV2K29FM2dueFJadVdPOGFjRm5CRFZBblFkaFBJTHVCb0dsYmNQVnF0\nOGJyVWJJMGFDWEFqaUVOeFdhbm53dGwyNEp0elloQkVnKzhyT1ErOVg5aTNcL2JYSXoyOCtHWWhw\nVXhzZ1QreGI3WE15RDdXOEE5V01RUGVTNVBKK2RuRFVGN1RGMmJTNUNhY2h6SUl5TDNZalNzRHZL\ncTcwOTdxcnd2eHZIRHBWNWtsRlk5VFk1ajFcL3RGNEkyQnorRWlybXNNRWlleXFtMFBNWnhIWnJD\nY3B1emhFTDVPSDdSbDg3T3d0WUs4SlNVT3FoM1pEZ29jMEQ3ZHNsMGZGYndqN010K3VsNWVIVmIw\nMW02RXBDTkNMdmtOdG5xdTNrNmNLdXM2YStwZTJJZGFCcWpaSWc4NDRPRWtaRVJFSmU1T05FZDFH\nOUF6RUZSOGR1eTRxc1wvYWtLQTdjTGNKOHhGaVVkQVhnbkZWcWhyakd4Mit2a3o0TnNNZ0NXbTFy\na0hKK3RkSjdrMWFKWDFmalROK05HU2owQkpCbVNTek11WjUzTTczQmQ5SFVoemtjTGMrVEczd1Q0\nQWRCVktTcitVbFlkK0NZWU0zaHg5SWNTZEFndm1ZTmFuck5zOEUrQVQrTFJ3ZldWU3R6VTJxYzBZ\nVUJiWnpkSmlwVXBtWVBJRGFvQ1hoTkVSRFZHM2ppbFE5Z0w1QW80ZG55Q3ZmK1B6ZWh1SFJTUkNa\nVEFVNWlCMFVkbmRnSDk2dXI3eEkxUlwvOWZRV2l3V3lDVlNhZ21nRGhiazAxUTZLRUNqTThYdTFr\nYWhzY3A3cUhBWTc2Zkw2UUlNRlVCbGhkN2NlRHhrZytmbkhneUU3YUFKc2hrM29cL0VEVURGQk1P\nMDBPM0J3a1NcL0pNZ2NIbnd4SHhvVGhlbEFRTlNRQ1pBQ0lPU3RPcTBzaDdWYzV6WmE3VTVPK2dL\nTEF2VGJnMUhhV1hadnJidlwvYWFPcmR1QjdoV1FoRURsZm40YStGRHNocFdNT0RObUNvUjROV0dV\nYWIyemxlZ2JBekswemphY0k2czlsK3ZMNzhnbTVnanhjMVF4M0loUkk3SjZ1QWs1bDFEZkh3RGhC\nNmJDb3JKXC9SOERjWVwvc1BuaHVyOHc0MUc1TWVITVUxM25LbkFoQm1vNkx4MUdreTJyYitsY2dM\naUtpTHBxNmgwTEZ0TTIzQkdVVlZDWklkc0dcL2c1WDYyZU9xcFFFT0l1Nk82UUxxczZiaHdQVGdR\nYkVBSVNFclpGbmdMSEpWRnN4RWs4eHdEemJOV2lCYWdKSUppMU1rKytDV3FueW5cL05nYUUrQlZ5\nU0dtNUF5VEp6QnQ5cFpKcEVKcG1pRFNaVTNCdDlWWkpGUENyMENwYVpQVlBxWjN1ZXphYlRvZzg3\nR3I4Q05mM3FBcWM5VWFBVjRpQnJTTGdycE1BMk52RUJGZTY2K3lHOUJEc0ZnQWRmMEhxa2RSQjhk\nUUtvU3dNVXBkVFFFdHV6cnJhbXZmTUZQK0RhUzVWMncwYXlVWXNreXk4dTBHeDlwNmFwMEF4XC9i\nb0d4ME90eW1TTUE1a0I0K0xPK3Z5dEczOXkxMmVWaENFNlZneGZjbGZRbHlic0xQUVpHOXJmRTIy\nTXRMT0tRRVZESmc1bmRVTGF3a05hUXJWcHFEeFwvWFRCaldLNDhDdWdSMUJjOUszc1wvS0ZDNzE5\ndFNiejhkXC80ZkVrYmdINEc3MXFZQUFBQUFTVVZPUks1Q1lJST1cblwvXC8gQHJ1bi1hdCAgICAg\nICBkb2N1bWVudC1ib2R5XG5cL1wvIEBncmFudCAgICAgICAgbm9uZVxuXC9cLyBAbGljZW5zZSAg\nICAgIEdQTC0zLjBcblwvXC8gQGRvd25sb2FkVVJMIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9y\nay5vcmdcL3NjcmlwdHNcLzQ0MDg3MVwvJUU5JUFBJTlBJUU2JTg5JUIwJUU2JThCJUE2JUU2JTg4\nJUFBLnVzZXIuanNcblwvXC8gQHVwZGF0ZVVSTCBodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsu\nb3JnXC9zY3JpcHRzXC80NDA4NzFcLyVFOSVBQSU5QSVFNiU4OSVCMCVFNiU4QiVBNiVFNiU4OCVB\nQS5tZXRhLmpzXG5cL1wvID09XC9Vc2VyU2NyaXB0PT1cblxuKGZ1bmN0aW9uICgpIHtcblx0XCJ1\nc2Ugc3RyaWN0XCI7XG5cblx0XC8qKlxuXHQgKiDop4TliJnliJfooahcblx0ICogQHR5cGUge25h\nbWVcL3VybFwvaXRlbXN9XG5cdCAqXC9cblx0Y29uc3Qgd2Vic2l0ZXMgPSBbXG5cdFx0e1xuXHRc\ndFx0bmFtZTogXCJDU0ROXCIsXG5cdFx0XHR1cmw6IFwiY3Nkbi5uZXRcIixcblx0XHRcdGl0ZW1z\nOiBbXG5cdFx0XHRcdFwvXC\/kuIvovb3lvLnnqpdcblx0XHRcdFx0XCIud2VpeGluLXNoYWRvd2Jv\neFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gDrni5DnjLTmtY\/op4jlmajkuK3n\nmoRidWdcblx0XHRcdFx0XCIuZmVlZC1TaWduLXdlaXhpblwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu\n5oyJ6ZKuOkFQUOWGheaJk+W8gCvnmbvlvZVcL+aJk+W8gOazqOWGjCjkuLvpobUpXG5cdFx0XHRc\ndFwiLmZlZWQtU2lnbi1zcGFuXCIsXG5cdFx0XHRcdFwvXC9QQ+errzrlvLnnqpc65a2m55Sf6K6k\n6K+BXG5cdFx0XHRcdFwiI2NzZG4taGlnaHNjaG9vbC13aW5kb3dcIixcblx0XHRcdFx0XC9cL1BD\n56uvOueZu+W9leW8ueeqlyjpobbpg6gpXG5cdFx0XHRcdFwiI2NzZG4tdG9vbGJhci1wcm9maWxl\nLW5vbG9naW5cIixcblx0XHRcdFx0XC9cL1BD56uvOueZu+W9leW8ueeqlyjlupXpg6gpXG5cdFx0\nXHRcdFwiLnBhc3Nwb3J0LWxvZ2luLXRpcC1jb250YWluZXJcIixcblx0XHRcdF0sXG5cdFx0XHRm\ndW46IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XC8qKlxuXHRcdFx0XHQgKiBQQ+errzrlsY\/olL3n\nmbvlvZXlvLnnqpdcblx0XHRcdFx0ICogQHBhcmFtICAgICAge2xpc3R9ICBtdXRhdGlvbnNMaXN0\nICBUaGUgbXV0YXRpb25zIGxpc3Rcblx0XHRcdFx0ICpcL1xuXHRcdFx0XHRsZXQgcmVtb3ZlTG9n\naW5Ob3RpY2UgPSBmdW5jdGlvbiAobXV0YXRpb25zTGlzdCkge1xuXHRcdFx0XHRcdGZvciAobGV0\nIG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IG5vZGUg\nb2YgbXV0YXRpb24uYWRkZWROb2Rlcykge1xuXHRcdFx0XHRcdFx0XHRpZiAoZG9jdW1lbnQucXVl\ncnlTZWxlY3RvcihcIi5wYXNzcG9ydC1sb2dpbi1jb250YWluZXJcIikpIHtcblx0XHRcdFx0XHRc\ndFx0XHRcL1wv5pyJ55m76ZmG5by556qX5pe2OuaooeaLn+eCueWHu+WFs+mXreaMiemSrlxuXHRc\ndFx0XHRcdFx0XHRcdGxldCBidXR0b24gPSBub2RlLnF1ZXJ5U2VsZWN0b3IoXCJpbWdcIik7XG5c\ndFx0XHRcdFx0XHRcdFx0aWYgKGJ1dHRvbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKExvZ2lu\nRmxhZyA9PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJ1dHRvbi5jbGljaygpO1xuXHRc\ndFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0TG9naW5GbGFnID0g\ndHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0\nXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0\nXHR9XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0bGV0IGxvZ2luQnRuID0gZG9jdW1lbnQucXVlcnlT\nZWxlY3RvcihcIi50b29sYmFyLWJ0bi1sb2dpbj4udG9vbGJhci1idG4tbG9naW5mdW5cIik7XG5c\ndFx0XHRcdFwvXC\/mnKrnmbvlvZU6XG5cdFx0XHRcdGlmIChsb2dpbkJ0bikge1xuXHRcdFx0XHRc\ndFwvXC\/mt7vliqDkuovku7Ys5LiN5oum5oiqXG5cdFx0XHRcdFx0bG9naW5CdG4uYWRkRXZlbnRM\naXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdExvZ2luRmxhZyA9\nIGZhbHNlO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFwvXC\/miafooYznm5HlkKxcblx0XHRc\ndFx0XHRsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihyZW1vdmVMb2dpbk5vdGlj\nZSk7XG5cdFx0XHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwgeyBjaGlsZExpc3Q6IHRy\ndWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0XC9cL+enu+WKqOeJiOeZ\nu+W9leW8ueeql1xuXHRcdFx0XHRpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi50b29sYmFy\nQmFja1wiKSkge1xuXHRcdFx0XHRcdGFkZFN0eWxlKFwiLnBhc3Nwb3J0LWxvZ2luLWNvbnRhaW5l\nciB7ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50fVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0\nXHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi566A5LmmXCIsXG5cdFx0XHR1cmw6IFwiamlhbnNo\ndS5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/kuIvovb3lvLnnqpdcblx0XHRc\ndFx0XCIuZG93bmxvYWQtYXBwLWd1aWRhbmNlXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq46\n5omT5byAQXBwLOeci+abtOWkmuebuOS8vOWlveaWh1xuXHRcdFx0XHRcIi5jYWxsLWFwcC1idG5c\nIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIBBcHAs55yL5pu05aSa5aW95paHKOmm\nlumhtSlcblx0XHRcdFx0XCIuaW5kZXhfY2FsbC1hcHAtYnRuXCIsXG5cdFx0XHRcdFwvXC9QQ+er\nrzrpgI\/mmI7pga7mjKFcblx0XHRcdFx0XCIuXzIzSVNGWC1tYXNrXCIsXG5cdFx0XHRcdFwvXC9Q\nQ+errzrnmbvlvZXlvLnnqpdcblx0XHRcdFx0XCIuXzIzSVNGWC13cmFwXCIsXG5cdFx0XHRdLFxu\nXHRcdFx0b3ZlcmZsb3c6IHRydWUsXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuaOmOmH\nkVwiLFxuXHRcdFx0dXJsOiBcImp1ZWppbi5jblwiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0\nXC9cL+aCrOa1ruaMiemSrjpBUFDlhoXmiZPlvIBcblx0XHRcdFx0XCIub3Blbi1idXR0b25cIixc\nblx0XHRcdFx0XC9cL+S4i+i9veW8ueeql1xuXHRcdFx0XHRcIi5hcHAtb3Blbi1kcmF3ZXJcIixc\nblx0XHRcdFx0XC9cL1BD56uvOuS4i+aWueaLk+WxleW8ueeqlyjkuLvpobUpXG5cdFx0XHRcdFwi\nLnJlY29tbWVuZC1ib3hcIixcblx0XHRcdFx0XC9cL1BD56uvOueZu+W9leW8ueeqlyjlj7PkuIro\np5IpXG5cdFx0XHRcdFwiLmxvZ2luLXBvcG92ZXJcIixcblx0XHRcdFx0XC9cL1BD56uvOueZu+W9\nleW8ueeqlyjlj7PkuIvop5IpXG5cdFx0XHRcdFwiLmJvdHRvbS1sb2dpbi1ndWlkZVwiLFxuXHRc\ndFx0XSxcblx0XHRcdG92ZXJmbG93OiB0cnVlLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTog\nXCLnn6XkuY7lj5HnjrDpobVcIixcblx0XHRcdHVybDogXCJ3d3cuemhpaHUuY29tXC9leHBsb3Jl\nXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wvUEPnq68655m75b2V5oyJ6ZKuKOWPkeeO\nsOmhtSlcblx0XHRcdFx0XCIuRXhwbG9yZUhvbWVQYWdlLXNwZWNpYWxzTG9naW5cIixcblx0XHRc\ndF0sXG5cdFx0XHRmdW46IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XC9cL+WPkeeOsOmhtTrng63n\ngrnlkozpl67popjpq5jluqbkv53mjIHkuIDoh7Q7XG5cdFx0XHRcdGlmIChsb2NhdGlvbi5ocmVm\nLmluY2x1ZGVzKFwid3d3LnpoaWh1LmNvbVwvZXhwbG9yZVwiKSkge1xuXHRcdFx0XHRcdGFkZFN0\neWxlKFwiLkV4cGxvcmVIb21lUGFnZS1zcXVhcmUgPiBkaXY6bnRoLWNoaWxkKDMpe21hcmdpbjog\nMHB4fVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6\nIFwi55+l5LmOXCIsXG5cdFx0XHR1cmw6IFwiemhpaHUuY29tXCIsXG5cdFx0XHRpdGVtczogW1xu\nXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaYr+WQpuWcqOefpeS5jmFwcOWGhemYheivu+WFqOaW\nh1xuXHRcdFx0XHRcIi5Nb2JpbGVNb2RhbC13cmFwcGVyXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7m\njInpkq465omT5byA55+l5LmOKOS4u+mhtSks5omT5byAXG5cdFx0XHRcdFwiLk9wZW5JbkFwcEJ1\ndHRvblwiLFxuXHRcdFx0XSxcblx0XHRcdG92ZXJmbG93OiB0cnVlLFxuXHRcdFx0ZnVuOiBmdW5j\ndGlvbiAoKSB7XG5cdFx0XHRcdFwvXC9QQ+err+aLpuaIqueZu+W9leW8ueeql1xuXHRcdFx0XHRp\nZiAoIVwvTW9iaWxlfEFuZHJvaWR8aVBob25lXC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkp\nIHtcblx0XHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRc\nIiwgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0bGV0IGxvZ2luQnRuID0gZG9jdW1lbnQucXVl\ncnlTZWxlY3RvcihcIi5jc3MtMXJ3ejdpc1wiKTtcblx0XHRcdFx0XHRcdFwvXC\/mo4DpqozmmK\/l\nkKbnmbvlvZVcblx0XHRcdFx0XHRcdGlmIChsb2dpbkJ0bikge1xuXHRcdFx0XHRcdFx0XHRcL1wv\n5omn6KGM55uR5ZCsXG5cdFx0XHRcdFx0XHRcdGxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i\nc2VydmVyKHJlbW92ZUxvZ2luTm90aWNlKTtcblx0XHRcdFx0XHRcdFx0b2JzZXJ2ZXIub2JzZXJ2\nZShkb2N1bWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cblx0XHRc\ndFx0XHRcdFx0b25sb2FkID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdGxvZ2luQnRu\nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHRc\ndFx0XHRMb2dpbkZsYWcgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRc\ndFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcLyoqXG5cdFx0\nXHRcdFx0ICog5Yig6Zmk55m75b2V5by556qXXG5cdFx0XHRcdFx0ICpcblx0XHRcdFx0XHQgKiBA\ncGFyYW0gICAgICB7TXV0YXRpb25SZWNvcmRbXX0gIG11dGF0aW9uc0xpc3QgIFRoZSBtdXRhdGlv\nbnMgbGlzdFxuXHRcdFx0XHRcdCAqIEBwYXJhbSAgICAgIHtNdXRhdGlvbk9ic2VydmVyfSAgb2Jz\nZXJ2ZXIgICAgICAgVGhlIG9ic2VydmVyXG5cdFx0XHRcdFx0ICpcL1xuXHRcdFx0XHRcdGZ1bmN0\naW9uIHJlbW92ZUxvZ2luTm90aWNlKG11dGF0aW9uc0xpc3QpIHtcblx0XHRcdFx0XHRcdGZvciAo\nbGV0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHtcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQg\nbm9kZSBvZiBtdXRhdGlvbi5hZGRlZE5vZGVzKSB7XG5cdFx0XHRcdFx0XHRcdFx0XC9cL+acieeZ\nu+mZhuW8ueeqlzHml7Y65qih5ouf54K55Ye75YWz6Zet5oyJ6ZKuXG5cdFx0XHRcdFx0XHRcdFx0\naWYgKG5vZGUucXVlcnlTZWxlY3RvcihcIi5zaWduRmxvd01vZGFsXCIpKSB7XG5cdFx0XHRcdFx0\nXHRcdFx0XHRsZXQgYnV0dG9uID0gbm9kZS5xdWVyeVNlbGVjdG9yKFwiLkJ1dHRvbi5Nb2RhbC1j\nbG9zZUJ1dHRvbi5CdXR0b24tLXBsYWluXCIpO1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGJ1dHRv\nbikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoTG9naW5GbGFnID09IHRydWUpIHtcblx0XHRc\ndFx0XHRcdFx0XHRcdFx0XHRidXR0b24uY2xpY2soKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBl\nbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRMb2dpbkZsYWcgPSB0cnVlO1xuXHRcdFx0XHRc\ndFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0\nXHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XC9cL+aLpuaIqueZu+W9\nleW8ueeqlzJcblx0XHRcdFx0XHRcdFx0XHRpZiAoZ2V0WHBhdGgoJ1wvXC9idXR0b25bdGV4dCgp\nPVwi56uL5Y2z55m75b2VXC\/ms6jlhoxcIl0nLCBub2RlKSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0\nZ2V0WHBhdGgoJ1wvXC9idXR0b25bdGV4dCgpPVwi56uL5Y2z55m75b2VXC\/ms6jlhoxcIl0nLCBu\nb2RlKS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQucmVtb3ZlKCk7XG5cdFx0XHRcdFx0XHRc\ndFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0\nXHR9XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnmb7luqZcIixcblx0\nXHRcdHVybDogXCJiYWlkdS5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/mgqzm\nta7mjInpkq465omT5byA55m+5bqmXG5cdFx0XHRcdFwiI0otaW52b2tlLWJhaWR1QXBwLWZsb2F0\nXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnmb7luqbotLTlkKdc\nIixcblx0XHRcdHVybDogXCJ0aWViYS5iYWlkdS5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0\nXHRcdFwvXC\/mgqzmta7mjInpkq465omT5byA55m+5bqm6LS05ZCnXG5cdFx0XHRcdFwiLm5hdi1i\nYXItYm90dG9tXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnmb7l\nuqbmloflupMxXCIsXG5cdFx0XHR1cmw6IFwiXC93ay5iYWlkdS5jb21cL3ZpZXdcL1wiLFxuXHRc\ndFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrijkuIrmlrkpOueZvuW6puaWh+W6\nk1xuXHRcdFx0XHRcIi53ay1zdHVkZW50LWRlZmVuc2VcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0\nXHR7XG5cdFx0XHRuYW1lOiBcIueZvuW6puaWh+W6kzJcIixcblx0XHRcdHVybDogXCJ0YW5iaS5i\nYWlkdS5jb21cL2g1YXBwdG9waWNcL2Jyb3dzZVwvXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0\nXHRcL1wv5oKs5rWu5oyJ6ZKuKOS4iuaWuSk655m+5bqm5paH5bqTXG5cdFx0XHRcdFwiLndrLXN0\ndWRlbnQtbGltaXQtanVtcFwiLFxuXHRcdFx0XHRcIi5iYXJ0b3BcIixcblx0XHRcdFx0XC9cL+aC\nrOa1ruaMiemSrijkuIvmlrkpOuS4i+i9vUFwcCznu6fnu63pmIXor7tcblx0XHRcdFx0XCIud2st\nYm90dG9tLWJ0blwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi55m+\n5a625Y+3XCIsXG5cdFx0XHR1cmw6IFwiYmFpamlhaGFvLmJhaWR1LmNvbVwvc1wiLFxuXHRcdFx0\naXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrnmb7luqZBUFDlhoXmiZPlvIBcblx0\nXHRcdFx0XCIjYmRyYWlucndEcmFnQnV0dG9uXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xu\nXHRcdFx0bmFtZTogXCLnmb7luqbotYTorq8r55m+5bqm6aaW6aG1XCIsXG5cdFx0XHR1cmw6IFwi\nbWJkLmJhaWR1LmNvbVwvbmV3c3BhZ2VcL2RhdGFcIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRc\ndFwvXC\/mgqzmta7mjInpkq4655m+5bqmQVBQ5YaF5omT5byAXG5cdFx0XHRcdFwiI2JkcmFpbnJ3\nRHJhZ0J1dHRvblwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOueZvuW6pkFQUOWGheaSreaU\nvlxuXHRcdFx0XHRcIi5kcmFnLWJvdHRvbVwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0\nXHRcdG5hbWU6IFwi6IW+6K6v5paw6Ze7MVwiLFxuXHRcdFx0dXJsOiBcInZpZXcuaW5ld3MucXEu\nY29tXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/lm7rlrprmjInpkq465omT5byA\nXG5cdFx0XHRcdFwiLnNsaWRlci10b3AtYmFyX3NsaWRlcldyYXBwZXJfXzFOaXplXCIsXG5cdFx0\nXHRcdFwvXC\/mgqzmta7mjInpkq465omT5byA6IW+6K6v5paw6Ze7LOeci+abtOWkmueDreeCuei1\nhOiur1xuXHRcdFx0XHRcIi5ib3R0b20tYmFyX2J1dHRvbldyYXBfX05YQmUtXCIsXG5cdFx0XHRd\nLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLohb7orq\/mlrDpl7syXCIsXG5cdFx0XHR1\ncmw6IFwieHcucXEuY29tXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/lm7rlrprm\njInpkq465omT5byAKOmmlumhtSlcblx0XHRcdFx0XCIjb3BlQXBwXCIsXG5cdFx0XHRdLFxuXHRc\ndH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLohb7orq\/op4bpopFcIixcblx0XHRcdHVybDogXCJt\nLnYucXEuY29tXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5LiL6L295by556qXXG5c\ndFx0XHRcdFwiLmF0LWFwcC1iYW5uZXJcIixcblx0XHRcdFx0XC9cL+aJk+W8gEFQUOafpeeci+mr\nmOa4heWGheWuuVxuXHRcdFx0XHRcIi5vcGVuX2FwcF9ib3R0b21cIixcblx0XHRcdF0sXG5cdFx0\nfSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuS8mOmFt+inhumikVwiLFxuXHRcdFx0dXJsOiBcInlv\ndWt1LmNvbVwiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+S4i+i9veW8ueeql1xuXHRc\ndFx0XHRcIi5jYWxsRW5kX2JveFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuKOS4u+mhtSk6\n5omT5byA5LyY6YW3QVBQ5pu05rWB55WFXG5cdFx0XHRcdFwiLmNhbGxFbmRfZml4ZWRfYm94XCIs\nXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq465omT5byA5LyY6YW3QVBQ5pu05rWB55WFXG5cdFx0\nXHRcdFwiLnVuZGVmaW5lZFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOue6ouWMhVxuXHRc\ndFx0XHRcIi5Db3JuZXItY29udGFpbmVyXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRc\ndFx0bmFtZTogXCLniLHlpYfoibpcIixcblx0XHRcdHVybDogXCJpcWl5aS5jb21cL1wiLFxuXHRc\ndFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+S4i+i9veW8ueeql1xuXHRcdFx0XHRcIi5tLWlxeUd1\naWRlLWxheWVyXCIsXG5cdFx0XHRcdFwvXC\/miZPlvIDniLHlpYfoibpBUFAs55yL57K+5b2p6KeG\n6aKRXG5cdFx0XHRcdFwiW2NsYXNzXj1DaGFubmVsSG9tZUJhbm5lcl1cIixcblx0XHRcdFx0XC9c\nL1BD56uvOueZu+W9leaPkOekuuS4iuS+p1xuXHRcdFx0XHRcIi5wbF9fMVwiLFxuXHRcdFx0XSxc\nblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5aW955yL6KeG6aKRXCIsXG5cdFx0XHR1cmw6\nIFwiaGFva2FuLmJhaWR1LmNvbVwvXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5oKs\n5rWu5oyJ6ZKuOuaJk+W8gOWlveeci2FwcCjkuK3pl7QpXG5cdFx0XHRcdFwiLm9wZW4tYXBwLXRv\ncFwiLFxuXHRcdFx0XHRcL1wv5Zu65a6a5paH5a2XOuaJk+W8gEFQUCjlpJopXG5cdFx0XHRcdFwi\nLnRvcC12aWRlby1jYXJkLWltZy1hcHBcIixcblx0XHRcdFx0XC9cL+WbuuWumuaMiemSrjrkuIvo\nvb1BUFAo6KeG6aKR5pKt5pS+5pe2KVxuXHRcdFx0XHRcIi52aWRlby1wbGF5ZXItZG93bmxvYWQt\ndGlwc1wiLFxuXHRcdFx0XHRcL1wv5Zu65a6a5oyJ6ZKuOuaJk+W8gCjlupXpg6gpXG5cdFx0XHRc\ndFwiLm9wZW4tYXBwLWJvdHRvbVwiLFxuXHRcdFx0XHRcL1wv5Zu65a6a5oyJ6ZKuOuaJk+W8gCjl\nupXpg6g65Liq5YirKVxuXHRcdFx0XHRcIi5OZXdPcGVuQXBwXCIsXG5cdFx0XHRcdFwvXC9QQ+er\nr+WbuuWumuaMiemSrjrkuIvovb1BUFAo6KeG6aKR5pqC5YGc5pe2KVxuXHRcdFx0XHRcIi5wbGF5\nZXItbGVmdHRpcC1pbm5lclwiLFxuXHRcdFx0XHRcL1wvUEPnq6\/nmbvlvZXmj5DnpLo655m75b2V\n5o+Q56S6XG5cdFx0XHRcdFwiI3Bhc3Nwb3J0LWxvZ2luLXBvcFwiLFxuXHRcdFx0XHRcL1wvUEPn\nq6\/nmbvlvZXmj5DnpLo65pym6IOn6IOM5p2\/XG5cdFx0XHRcdFwiLnBvcC1tYXNrXCIsXG5cdFx0\nXHRcdFwvXC9QQ+err+eZu+W9leaPkOekujrmgqzmta7mj5DnpLpcblx0XHRcdFx0XCIucGFnZS10\nb3AtcmlnaHRpbmZvLXBvcG92ZXJcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRu\nYW1lOiBcIm0xOTA155S15b2x572RXCIsXG5cdFx0XHR1cmw6IFwiMTkwNS5jb21cL1wiLFxuXHRc\ndFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruW8ueeqlzrmiZPlvIBhcHBcblx0XHRcdFx0\nXCIjcG9wdXBNb2R1bGVcIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjpcblx0XHRcdFx0XCIu\nb3Blbi1saW5rXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnmb7l\nuqbmkJzntKJcIixcblx0XHRcdHVybDogXCJiYWlkdS5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5c\ndFx0XHRcdFwvXC\/mkJzntKLnu5Pmnpw65bCP56iL5bqPXG5cdFx0XHRcdFwiW3NyY2lkPXhjeF9t\ndWx0aV1cIixcblx0XHRcdFx0XC9cL+aQnOe0oue7k+aenDrnmb7luqbmiYvmnLrliqnmiYtcblx0\nXHRcdFx0XCJbc3JjaWQ9YXBwX21vYmlsZV9zaW1wbGVdXCIsXG5cdFx0XHRcdFwvXC\/mkJzntKLn\nu5Pmnpw655m+5bqm5omL5py65Yqp5omLOuWuieWFqOS4i+i9vVxuXHRcdFx0XHRcIltzcmNpZD1h\ncHBfbW9iaWxlX3NpbXBsZV9zYWZldHldXCIsXG5cdFx0XHRcdFwvXC\/mkJzntKLnu5Pmnpw655m+\n5bqm5bqU55So5pCc57SiKElPUylcblx0XHRcdFx0XCJbc3JjaWQ9YXBwX21vYmlsZV9pb3NdXCIs\nXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLlk5Tlk6nlk5Tlk6lcIixc\nblx0XHRcdHVybDogXCJiaWxpYmlsaS5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwv\nXC\/mgqzmta7mjInpkq465omT5byAYXBwLOeci+S9oOaEn+WFtOi2o+eahOWGheWuuSjkuLvpobUp\nXG5cdFx0XHRcdFwiLm0taG9tZS1mbG9hdC1vcGVuYXBwXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7m\njInpkq465omT5byAYXBwKFVQ5Li76aG1KVxuXHRcdFx0XHRcIi5tLXNwYWNlLWZsb2F0LW9wZW5h\ncHBcIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIBhcHAs55yL6auY5riF5YaF5a65\nKOinhumikeWFqOWxjylcblx0XHRcdFx0XCIubXBsYXllci13aWRlc2NyZWVuLWNhbGxhcHBcIixc\nblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjpiaWxpYmlsaeWGheaJk+W8gCjlupXpg6gpXG5cdFx0\nXHRcdFwiLm0tZmxvYXQtb3BlbmFwcFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5by556qXOmJpbGli\naWxp5YaF5omT5byAXG5cdFx0XHRcdFwiLm9wZW5hcHAtZGlhbG9nXCIsXG5cdFx0XHRcdFwvXC\/l\nm7rlrprmjInpkq7vvJrmkq3mlL7ml7bkuIvovb1cblx0XHRcdFx0XCIubXBsYXllci13aWRlc2Ny\nZWVuLWNhbGxhcHBcIixcblx0XHRcdFx0XC9cL1BD56uvOueZu+W9leaPkOekuijlj7PkuIvop5Ip\nXG5cdFx0XHRcdFwiLmx0LXJvd1wiLFxuXHRcdFx0XHRcL1wvUEPnq68655m75b2V5o+Q56S6KOWP\ns+S4iuinkilcblx0XHRcdFx0XCIubG9naW4tcGFuZWwtcG9wb3ZlcjpoYXMoLmxvZ2luLXRpcC1j\nb250ZW50KVwiLFxuXHRcdFx0XHRcL1wvUEPnq68655m75b2V5o+Q56S6KOaSreaUvuWZqClcblx0\nXHRcdFx0XCIuYnB4LXBsYXllci10b2FzdC13cmFwXCIsXG5cdFx0XHRcdFwvXC9QQ+errzrnmbvl\nvZXmj5DnpLoo5Y+z5LiK6KeSKVxuXHRcdFx0XHRcImRpdjpoYXMoLnVubG9naW4tcG9wb3Zlci1h\ndmF0YXIpXCIsXG5cdFx0XHRcdFwvXC9QQ+errzrmu5Hliqjmj5DnpLoo5q2j5LiL5pa5Oummluas\noSlcblx0XHRcdFx0XCIudHJpYWwtZmVlZC13cmFwXCIsXG5cdFx0XHRdLFxuXHRcdFx0ZnVuOiBm\ndW5jdGlvbiAoKSB7XG5cdFx0XHRcdGxldCBhZGQ7XG5cdFx0XHRcdGZ1bmN0aW9uIG11dGF0aW9u\nQ2FsbGJhY2socmVjb3JkLCBvYnNlcnZlcikge1xuXHRcdFx0XHRcdFwvXC\/lt7Lnoa7lrprnmbvl\nvZU65YGc5q2i55uR5ZCsXG5cdFx0XHRcdFx0bGV0IGxvZ2luID0gZG9jdW1lbnQucXVlcnlTZWxl\nY3RvcihcIi5oZWFkZXItZW50cnktbWluaVwiKTtcblx0XHRcdFx0XHRpZiAobG9naW4pIHtcblx0\nXHRcdFx0XHRcdG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0\nXC9cL+W3suehruWumuacqueZu+W9lTrmiafooYzlh73mlbBcblx0XHRcdFx0XHRsZXQgbG9naW5C\ndG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLmhlYWRlci1sb2dpbi1lbnRyeVwiKTtcblx0\nXHRcdFx0XHRpZiAobG9naW5CdG4pIHtcblx0XHRcdFx0XHRcdGlmICghYWRkKSB7XG5cdFx0XHRc\ndFx0XHRcdGNvbnNvbGUubG9nKFwi6ISa5pys5rOo5YWl5oiQ5YqfXCIpO1xuXHRcdFx0XHRcdFx0\nXHRcL1wv5re75Yqg5LqL5Lu2OuS4jeaLpuaIqlxuXHRcdFx0XHRcdFx0XHRsb2dpbkJ0bi5hZGRF\ndmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRcdExv\nZ2luRmxhZyA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdFx0YWRkID0g\ndHJ1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGZvciAobGV0IGFyciBvZiByZWNvcmQp\nIHtcblx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgbm9kZSBvZiBhcnIuYWRkZWROb2Rlcykge1xuXHRc\ndFx0XHRcdFx0XHRcdGxldCBidXR0b247XG5cdFx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0\nXHRcdFx0XHRcdGJ1dHRvbiA9IG5vZGUucXVlcnlTZWxlY3RvcihcIi5iaWxpLW1pbmktY2xvc2Ut\naWNvblwiKTtcblx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0XHRcdFx0\nXHRcdFx0XC8qIGVtcHR5ICpcL1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRp\nZiAoYnV0dG9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcL1wv5pyJ55m76ZmG5by556qX5pe2Ouao\noeaLn+eCueWHu+WFs+mXreaMiemSrlxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKExvZ2luRmxhZyA9\nPSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKExvZ2luRmxhZyk7XG5c\ndFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi6Ieq5Yqo5oum5oiqXCIpO1xuXHRcdFx0\nXHRcdFx0XHRcdFx0XHRidXR0b24uY2xpY2soKTtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjb25z\nb2xlLmxvZyhcIuaBouWkjeaSreaUvlwiKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0bGV0IHZpZGVv\nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5icHgtcGxheWVyLXZpZGVvLXdyYXAgdmlkZW9c\nIik7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHZpZGVvLnBsYXkoKTtcblx0XHRcdFx0XHRcdFx0XHRc\ndH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKExvZ2luRmxhZyk7XG5c\ndFx0XHRcdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKFwi5omL5Yqo5oum5oiqXCIpO1xuXHRcdFx0\nXHRcdFx0XHRcdFx0XHRMb2dpbkZsYWcgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRc\ndFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0\nfVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRsZXQgb2Jz\nZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihtdXRhdGlvbkNhbGxiYWNrKTtcblx0XHRcdFx0\nb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRy\ndWUgfSk7XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCJC56uZ5LiT5qCP\nXCIsXG5cdFx0XHR1cmw6IFwiYmlsaWJpbGkuY29tXC9yZWFkXC9cIixcblx0XHRcdGl0ZW1zOiBb\nXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq465omT5byAYXBwXG5cdFx0XHRcdFwiI2FwcD5kaXY+\nYmlsaS1vcGVuLWFwcC5mbG9hdC1idG5cIixcblx0XHRcdFx0XC9cL1BD56uvOueZu+W9leaPkOek\nulxuXHRcdFx0XHRcImRpdjpoYXMoLnVubG9naW4tcG9wb3Zlci1hdmF0YXIpXCIsXG5cdFx0XHRd\nLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCJC56uZ56yU6K6wXCIsXG5cdFx0XHR1cmw6\nIFwiYmlsaWJpbGkuY29tXC9vcHVzXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/m\ngqzmta7mjInpkq465omT5byAQXBwLOeci+abtOWkmueyvuW9qeWGheWuuVxuXHRcdFx0XHRcIi5m\nbG9hdC1idG5cIixcblx0XHRcdFx0XC9cL+aCrOa1ruW8ueeqlzrmiZPlvIBBUFBcblx0XHRcdFx0\nXCIub3BlbmFwcC1kaWFsb2dcIixcblx0XHRcdFx0XC9cL1BD56uvOueZu+W9leaPkOekulxuXHRc\ndFx0XHRcImRpdjpoYXMoLnVubG9naW4tcG9wb3Zlci1hdmF0YXIpXCIsXG5cdFx0XHRdLFxuXHRc\ndH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLopb\/nk5zop4bpopFcIixcblx0XHRcdHVybDogXCJp\neGlndWEuY29tXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5omT5byA5by556qXOuaJ\nk+W8gFxuXHRcdFx0XHRcIi5sYW5kaW5nX2d1aWRlXCIsXG5cdFx0XHRcdFwvXC9QQ+errzrnmbvl\nvZXmj5DnpLpcblx0XHRcdFx0XCIubG9naW5CZW5lZml0Tm90aWZpY2F0aW9uXCIsXG5cdFx0XHRc\ndFwvXC\/mgqzmta7mjInpkq465omT5byA6KW\/55Oc6KeG6aKRLOeci+WFqOe9kei2hea4heinhumi\nkVxuXHRcdFx0XHRcIi54aWd1YS1kb3dubG9hZFwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtc\nblx0XHRcdG5hbWU6IFwi5oqW6Z+z55S16ISR54mIXCIsXG5cdFx0XHR1cmw6IFwid3d3LmRvdXlp\nbi5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC9QQ+errzrkuIvovb3nlLXohJHl\nrqLmiLfnq69cblx0XHRcdFx0XCIjZG91eWluLXdlYi1kb3dubG9hZC1ndWlkZS1jb250YWluZXJc\nIixcblx0XHRcdFx0XC9cL1BD56uvOuWPs+S4i+inkueZu+W9leaPkOekuijnlLvotKgpXG5cdFx0\nXHRcdFwiLmxvZ2luLWNsYXJpdHktbmV3XCIsXG5cdFx0XHRcdFwvXC9QQ+errzrnmbvpmYblkI7m\nn6XnnIvor4Torrpcblx0XHRcdFx0XCIjcmVsYXRlZC12aWRlby1jYXJkLWxvZ2luLWd1aWRlXCIs\nXG5cdFx0XHRcdFwvXC9QQ+errzrlupXpg6jnmbvlvZXmj5DnpLpcblx0XHRcdFx0XCIud3dOWlc2\nemFcIixcblx0XHRcdF0sXG5cdFx0XHRmdW46IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XC9cL+eZ\nu+mZhuWQjuafpeeci+ivhOiuuuaooeezilxuXHRcdFx0XHRhZGRTdHlsZShcIi5fNjFjZ3k2ajN7\nZmlsdGVyOiBub25lICFpbXBvcnRhbnR9XCIpO1xuXHRcdFx0XHRcL1wv5oum5oiq55m75b2V5by5\n56qXXG5cdFx0XHRcdG9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcL1wv5aKe5Yqg\n54K55Ye75LqL5Lu2XG5cdFx0XHRcdFx0bGV0IGludGVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xu\nXHRcdFx0XHRcdFx0bGV0IGxvZ2luQnRuID0gZ2V0WHBhdGgoJ1wvXC9kaXZbdGV4dCgpPVwi55m7\n5b2VXCJdIHwgXC9cL3BbdGV4dCgpPVwi55m75b2VXCJdJywgZG9jdW1lbnQpLnBhcmVudEVsZW1l\nbnQ7XG5cdFx0XHRcdFx0XHRpZiAobG9naW5CdG4pIHtcblx0XHRcdFx0XHRcdFx0bG9naW5CdG4u\nYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0\nXHRMb2dpbkZsYWcgPSBmYWxzZTtcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRcdGNs\nZWFySW50ZXJ2YWwoaW50ZXIpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sIDEwMDApO1xu\nXHRcdFx0XHR9O1xuXG5cdFx0XHRcdFwvKipcblx0XHRcdFx0ICogUmVtb3ZlcyBhIGxvZ2luIG5v\ndGljZS5cblx0XHRcdFx0ICpcblx0XHRcdFx0ICogQHBhcmFtICAgICAge011dGF0aW9uUmVjb3Jk\nW119ICBtdXRhdGlvbnNMaXN0ICBUaGUgbXV0YXRpb25zIGxpc3Rcblx0XHRcdFx0ICogQHBhcmFt\nICAgICAge011dGF0aW9uT2JzZXJ2ZXJ9ICBvYnNlcnZlciAgICAgICBUaGUgb2JzZXJ2ZXJcblx0\nXHRcdFx0ICpcL1xuXHRcdFx0XHRsZXQgcmVtb3ZlTG9naW5Ob3RpY2UgPSBmdW5jdGlvbiAobXV0\nYXRpb25zTGlzdCkge1xuXHRcdFx0XHRcdGZvciAobGV0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xp\nc3QpIHtcblx0XHRcdFx0XHRcdGZvciAobGV0IG5vZGUgb2YgbXV0YXRpb24uYWRkZWROb2Rlcykg\ne1xuXHRcdFx0XHRcdFx0XHRpZiAobm9kZS5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSkg\ne1xuXHRcdFx0XHRcdFx0XHRcdGxldCBjbG9zZUJ0biA9IG5vZGUucXVlcnlTZWxlY3RvcihcIi5k\neS1hY2NvdW50LWNsb3NlXCIpO1xuXHRcdFx0XHRcdFx0XHRcdFwvXC\/lhbPpl63nmbvlvZXlvLnn\nqpdcblx0XHRcdFx0XHRcdFx0XHRpZiAoY2xvc2VCdG4pIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlm\nIChMb2dpbkZsYWcgPT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbG9zZUJ0bi5jbGlj\naygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0TG9n\naW5GbGFnID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5c\ndFx0XHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5c\ndFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRcL1wv5omn6KGM55uR5ZCsXG5cdFx0XHRc\ndGxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHJlbW92ZUxvZ2luTm90aWNlKTtc\nblx0XHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1\nYnRyZWU6IHRydWUgfSk7XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLk\nuIHpppnlm61cIixcblx0XHRcdHVybDogXCIzZy5keHkuY25cIixcblx0XHRcdGl0ZW1zOiBbXG5c\ndFx0XHRcdFwvXC\/mgqzmta7mjInpkq46QVBQ5YaF5omT5byAXG5cdFx0XHRcdFwiW2NsYXNzXj1m\naXhlZEJ0bl1cIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjpBcHDlhoXmiZPlvIAo5Li76aG1\nKVxuXHRcdFx0XHRcIi53cmFwXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFt\nZTogXCLlgaXlurfnlYxcIixcblx0XHRcdHVybDogXCJ3d3cuY24taGVhbHRoY2FyZS5jb21cL1wi\nLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIAo5bqV6YOo\n5rua5YqoKVxuXHRcdFx0XHRcImZvb3RlclwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0\nXHRcdG5hbWU6IFwi5b6u5Y2aXCIsXG5cdFx0XHR1cmw6IFwibS53ZWliby5jblwiLFxuXHRcdFx0\naXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrlnKjlvq7ljZrlhoXmiZPlvIAo55m+\n5bqm54Ot6K6uKVxuXHRcdFx0XHRcIi5hcHAtYnRuLWJveFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu\n5oyJ6ZKuOueZu+W9lVwv5rOo5YaMXG5cdFx0XHRcdFwiLmxvZ2luLWJ0blwiLFxuXHRcdFx0XHRc\nL1wv5bCP56iL5bqPXG5cdFx0XHRcdFwiLndyYXBcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7\nXG5cdFx0XHRuYW1lOiBcIuaWsOa1quaWsOmXu1wiLFxuXHRcdFx0dXJsOiBcInNpbmEuY25cL1wi\nLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIBBUFBcblx0\nXHRcdFx0XCIuY2FsbEFwcF9mbF9idG5cIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0\nXHRuYW1lOiBcIuaWsOa1qui0oue7j1wiLFxuXHRcdFx0dXJsOiBcInNpbmEuY25cL1wiLFxuXHRc\ndFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruW8ueeqlzrnq4vljbPmm7TmlrAo5Li76aG1\nOummluasoeiuv+mXrilcblx0XHRcdFx0XCIjU0ZBX25ld1ZlcnNpb25fcG9wXCIsXG5cdFx0XHRc\ndFwvXC\/mgqzmta7mjInpkq465omT5byAQXBw5Lit5p+l55yLKOS4u+mhtTrlupXpg6gpXG5cdFx0\nXHRcdFwiLm0tY2xpZW50LWNhbGwyXCIsXG5cdFx0XHRcdFwvXC\/lm7rlrprmjInpkq4656uL5Y2z\n55m75b2VKOS4u+mhtTrotYTorq8pXG5cdFx0XHRcdFwiLmxvZ2luLWJveFwiLFxuXHRcdFx0XHRc\nL1wv5oKs5rWu5oyJ6ZKuOueri+WNs+afpeeciyjotYTorq865bqV6YOoLOmmluasoeiuv+mXrilc\nblx0XHRcdFx0XCIud2FwLW1zZy1iYXItd2FwXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq46\n5Y67QVBQ5ZCs6K+t6Z+z5pKt5oqlKOi1hOiurzrkuK3pl7QpXG5cdFx0XHRcdFwiLmJyb2FkY2Fz\ndFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gEFQUCjotYTorq866aG26YOoLOac\niWJ1Zylcblx0XHRcdFx0XCIubS1zZW50aW1lbnQtYmxrXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7m\njInpkq465omT5byAQVBQKOi1hOiurzrlupXpg6gpXG5cdFx0XHRcdFwiLm0tZ3Vzcy1jYWlqaW5n\nXCIsXG5cdFx0XHRcdFwvXC\/lm7rlrprmjInpkq4656uL5Y2z5L2T6aqMKOi1hOiurzrlupXpg6gp\nXG5cdFx0XHRcdFwiI25vcm1fcXJjb2RlX2xpbmtfYXV0b1wiLFxuXHRcdFx0XHRcL1wv5oKs5rWu\n5oyJ6ZKuOuaJk+W8gEFQUCjlrZDmoI8xOuW6lemDqClcblx0XHRcdFx0XCIjc3ViUGFnZV9ib3R0\nb21fY2FsbHVwX2J0blwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gEFQUCjlrZDm\noI8yOuW6lemDqClcblx0XHRcdFx0XCIjX19jYWxsdXBfYm90dG9tX25ld1wiLFxuXHRcdFx0XHRc\nL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gEFQUCjlrZDmoI8yOumhtumDqCzmnIlidWcpXG5cdFx0XHRc\ndFwiLmpzLWFwcC1oZWFkZXJcIixcblx0XHRcdF0sXG5cdFx0XHRmdW46IGZ1bmN0aW9uICgpIHtc\nblx0XHRcdFx0XC9cL+S\/ruWkjeS4iui\/sOinhOWImeS6p+eUn+eahGJ1Z1xuXHRcdFx0XHRsZXQg\naW50ZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHRcdFx0bGV0IGl0ZW0gPSBkb2N1bWVu\ndC5xdWVyeVNlbGVjdG9yKFwiLmNvbXBhdGliaWxpdHktbW9kZVwiKTtcblx0XHRcdFx0XHRpZiAo\naXRlbS5zdHlsZS5tYXJnaW5Ub3AgPT0gXCIwcHhcIikge1xuXHRcdFx0XHRcdFx0Y2xlYXJJbnRl\ncnZhbChpbnRlcik7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGl0ZW0uc3R5bGUu\nbWFyZ2luVG9wID0gXCIwcHhcIjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sIDEwMDApO1xuXHRc\ndFx0fSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lic5pa56LSi5a+M572RXCIsXG5c\ndFx0XHR1cmw6IFwid2FwLmVhc3Rtb25leS5jb21cL1wiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRc\ndFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIBBUFAo6aG26YOoKVxuXHRcdFx0XHRcIi5maXhlZF90\nb3BcIixcblx0XHRcdFx0XC9cL+WbuuWumuaMiemSrjrkuIvovb0o5Li76aG1OumhtumDqClcblx0\nXHRcdFx0XCIjSW5kZXhEVFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gOS4i+i9\nvSjkuLvpobU66aG26YOoKVxuXHRcdFx0XHRcIi5lbXdhcGFzX3hsZHRfZml4ZWRcIixcblx0XHRc\ndFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIBBUFAo5Li76aG1OuW6lemDqClcblx0XHRcdFx0XCIu\nb3Blbi1pbmFwcFwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lic\n5pa56LSi5a+M572ROuiCoeWQp1wiLFxuXHRcdFx0dXJsOiBcIm1ndWJhLmVhc3Rtb25leS5jb21c\nL1wiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruW8ueeqlzrmiZPlvIBBUFBc\nblx0XHRcdFx0XCIjYXBwYm94XCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq465Lic5pa56LSi\n5a+MQVBQ5YaF5omT5byAKOW6lemDqClcblx0XHRcdFx0XCIjb3Blbl9hcHBcIixcblx0XHRcdF0s\nXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIueUteWtkOWPkeeDp+WPi1wiLFxuXHRcdFx0\ndXJsOiBcIm0uZWxlY2ZhbnMuY29tXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5oKs\n5rWu5oyJ6ZKuOuS4u+mhteWPs+S+p1xuXHRcdFx0XHRcIi5obV9xdWlja1wiLFxuXHRcdFx0XHRc\nL1wv5oKs5rWu5oyJ6ZKuOueZu+mZhlwv5rOo5YaMXG5cdFx0XHRcdFwiLmxvZ2luLXJlZy1maXhl\nZFwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuS4iuaWueaJk+W8gGFwcFxuXHRcdFx0XHRc\nIi5vcGVuX2FwcFwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lq6\n5rCR572RXCIsXG5cdFx0XHR1cmw6IFwiYXBwLnBlb3BsZS5jblwiLFxuXHRcdFx0aXRlbXM6IFtc\nblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIAo5bqV6YOoKVxuXHRcdFx0XHRcIi5hcHAt\nYm90LXdyYXBcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuaWsOS6\nrOaKpVwiLFxuXHRcdFx0dXJsOiBcIm0uYmpuZXdzLmNvbS5jblwvZGV0YWlsXC9cIixcblx0XHRc\ndGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq4656uL5Y2z5omT5byAKOmhtumDqClc\nblx0XHRcdFx0XCIueGpiLXRvcFwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5h\nbWU6IFwi6KeC5a+f6ICF572RXCIsXG5cdFx0XHR1cmw6IFwiZ3VhbmNoYS5jblwiLFxuXHRcdFx0\naXRlbXM6IFtcblx0XHRcdFx0XC9cL+WbuuWumuaMiemSrjrngrnlh7vkuIvovb0o6aG26YOoKVxu\nXHRcdFx0XHRcIi5nX2hlYWRlcjQ0XCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq46QVBQ5LiT\n5LqrKOW6lemDqClcblx0XHRcdFx0XCIuZ19zd2lwZXJfY29udGFpbmVyXCIsXG5cdFx0XHRdLFxu\nXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLmvo7muYPmlrDpl7tcIixcblx0XHRcdHVybDog\nXCJtLnRoZXBhcGVyLmNuXC9uZXdzRGV0YWlsX2ZvcndhcmRcIixcblx0XHRcdGl0ZW1zOiBbXG5c\ndFx0XHRcdFwvXC\/mgqzmta7mjInpkq465paw6Ze75rua5p2hKOW6lemDqClcblx0XHRcdFx0XCJb\nY2xhc3NePWluZGV4X2Zvb3Rlcl9iYW5uZXJdXCIsXG5cdFx0XHRcdFwiWy5pbmRleF9mb290ZXJf\nYmFubmVyX19NY3JfUl1cIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBc\nIuWHpOWHsOaWsOmXu1wiLFxuXHRcdFx0dXJsOiBcImlmZW5nLmNvbVwiLFxuXHRcdFx0aXRlbXM6\nIFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrnq4vljbPmiZPlvIAo5Li76aG1KVxuXHRcdFx0\nXHRcIltjbGFzc149aW5kZXhfZml4U2xpZGVfXVwiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKu\nOua7muWKqOaWsOmXuyjmlrDpl7vlupXpg6gpXG5cdFx0XHRcdFwiW2NsYXNzXj1pbmRleF9ib3R0\nb21fYm94X11cIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrnq4vljbPmiZPlvIAo6LSi57uP\n5bqV6YOoKVxuXHRcdFx0XHRcIltjbGFzc149aW5kZXhfYm90dG9tU2xpZGVfXVwiLFxuXHRcdFx0\nXHRcL1wv5oKs5rWu5oyJ6ZKuOua7muWKqOaWsOmXuyjljavop4blupXpg6gpXG5cdFx0XHRcdFwi\nW2NsYXNzXj1pbmRleF9maXhCb3R0b21fXVwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0\nXHRcdG5hbWU6IFwi572R5piT5paw6Ze7XCIsXG5cdFx0XHR1cmw6IFwiM2cuMTYzLmNvbVwiLFxu\nXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+WbuuWumuaMiemSru+8mkFwcOWGheaJk+W8gCjl\nupXpg6gpXG5cdFx0XHRcdFwiLmJhY2tmbG93LWZsb2F0aW5nXCIsXG5cdFx0XHRdLFxuXHRcdH0s\nXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLnvZHmmJPmlrDpl7tcIixcblx0XHRcdHVybDogXCJtLjE2\nMy5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/lm7rlrprmjInpkq7vvJpBcHDl\nhoXmiZPlvIAo5bqV6YOoKVxuXHRcdFx0XHRcIi5iYWNrZmxvdy1mbG9hdGluZ1wiLFxuXHRcdFx0\nXSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5pCc54uQXCIsXG5cdFx0XHR1cmw6IFwi\nbS5zb2h1LmNvbVwvYVwvXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ\n6ZKuOuaJk+W8gEFQUFxuXHRcdFx0XHRcIiNDYWxsQXBwQ29udGFpbmVyXCIsXG5cdFx0XHRcdFwi\nLkNhbGxBcHBDb250YWluZXJcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1l\nOiBcIuS7iuaXpeWktOadoTrnp7vliqjnq69cIixcblx0XHRcdHVybDogXCJtLnRvdXRpYW8uY29t\nXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq7vvJpBcHDlhoXm\niZPlvIAo5bqV6YOoKVxuXHRcdFx0XHRcIi5tLWJvdHRvbS1jb250YWluZXJcIixcblx0XHRcdFx0\nXC9cL+aCrOa1ruaMiemSrjrljrvpppbpobUo5paH56ugKVxuXHRcdFx0XHRcIi5tLWluZGV4LXRh\nZ1wiXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLku4rml6XlpLTmnaE6\nUEPnq69cIixcblx0XHRcdHVybDogXCJ3d3cudG91dGlhby5jb21cL1wiLFxuXHRcdFx0aXRlbXM6\nIFtcblx0XHRcdFx0XC9cL+aCrOa1ruW8ueeqlzrmt7vliqDku4rml6XlpLTmnaHliLDnlLXohJHm\noYzpnaJcblx0XHRcdFx0XCIuYWRkLXBhbmVsXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7lvLnnqpc6\n5omr56CB5LiL6L295LuK5pel5aS05p2hXG5cdFx0XHRcdFwiZG93bmxvYWQtcGFuZWxcIlxuXHRc\ndFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lic5pa56LWE6K6vXCIsXG5cdFx0\nXHR1cmw6IFwibWluaS5lYXN0ZGF5LmNvbVwvbnNhXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0\nXHRcdFwvXC9QQ+errzrmgqzmta7lvLnnqpc65re75Yqg5Yiw5qGM6Z2iXG5cdFx0XHRcdFwiI2Rm\ndHQtbWVzc2FnZS13cmFwcGVyXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFt\nZTogXCLomY7ll4VcIixcblx0XHRcdHVybDogXCJtLmh1eGl1LmNvbVwiLFxuXHRcdFx0aXRlbXM6\nIFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjpnbyEo5Li76aG1KVxuXHRcdFx0XHRcIi5ndWlk\nZS13cmFwXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq465omT5byAKOmhtumDqClcblx0XHRc\ndFx0XCIuanMtdG9wLWZpeGVkXCIsXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq465omT5byAKOW6\nlemDqClcblx0XHRcdFx0XCIuYm90dG9tLW9wZW4tYXBwLWJ0blwiLFxuXHRcdFx0XSxcblx0XHR9\nLFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi6JmO5omRXCIsXG5cdFx0XHR1cmw6IFwibS5odXB1LmNv\nbVwiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjpBcHDlhoXmiZPl\nvIBcblx0XHRcdFx0XCIub3Blbi1odXB1XCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRc\ndFx0bmFtZTogXCLosYbnk6NcIixcblx0XHRcdHVybDogXCJtLmRvdWJhbi5jb21cIixcblx0XHRc\ndGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/lm7rlrprmjInpkq4655SoQXBw5omT5byAKOeUteW9seiv\npuaDhemhtSlcblx0XHRcdFx0XCIuc3ViamVjdC1iYW5uZXJcIixcblx0XHRcdFx0XC9cL+aCrOa1\nruaMiemSrjrosYbnk6NBUFDlhoXmiZPlvIBcblx0XHRcdFx0XCIudGFsaW9uLW5hdi1mb290ZXJc\nIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuWkquW5s+a0i+eUteiE\nkVwiLFxuXHRcdFx0dXJsOiBcImcucGNvbmxpbmUuY29tLmNuXCIsXG5cdFx0XHRpdGVtczogW1xu\nXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gGFwcCjlupXpg6gpXG5cdFx0XHRcdFwiLmJ0\nbkZvckFwcE9wZW5JbWdcIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIDnn6Xnp5Hm\nioBBcHBcblx0XHRcdFx0XCIuYnRuRm9yQXBwT3BlbkFcIixcblx0XHRcdFx0XC9cL+WbuuWumuaM\niemSrjrnq4vljbPmiZPlvIAo5bqV6YOoKVxuXHRcdFx0XHRcIi5XYWtlVXB0b3BcIixcblx0XHRc\ndFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIAo5bqV6YOoKVxuXHRcdFx0XHRcIi5wYWdlLWZsb2F0\nLWJveFwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5Lit5YWz5p2R\n5Zyo57q\/XCIsXG5cdFx0XHR1cmw6IFwibS56b2wuY29tLmNuXCIsXG5cdFx0XHRpdGVtczogW1xu\nXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gEFQUFxuXHRcdFx0XHRcIi5jb3Zlci1iYWNr\nX3NcIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjpBUFDlhoXmiZPlvIBcblx0XHRcdFx0XCIj\nYm90dG9tLWZpeGVkLXdyYXBwZXIgPiBzcGFuXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xu\nXHRcdFx0bmFtZTogXCLkuK3lhbPmnZHlnKjnur8yKOaKpeS7tyvorrrlnZspXCIsXG5cdFx0XHR1\ncmw6IFwid2FwLnpvbC5jb20uY25cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/mgqzm\nta7mjInpkq465omT5byAQVBQXG5cdFx0XHRcdFwiLmNvdmVyLWJhY2tfc1wiLFxuXHRcdFx0XHRc\nL1wv5oKs5rWu5oyJ6ZKuOkFQUOWGheaJk+W8gFxuXHRcdFx0XHRcIiNib3R0b20tZml4ZWQtd3Jh\ncHBlciA+IHNwYW5cIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuax\nvei9puS5i+WutlBD54mIXCIsXG5cdFx0XHR1cmw6IFwid3d3LmF1dG9ob21lLmNvbS5jblwiLFxu\nXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrnmbvlvZXmj5DnpLooUEPn\nq68pXG5cdFx0XHRcdFwiI2xvZ2luR3VpZGVcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5c\ndFx0XHRuYW1lOiBcIuaxvei9puS5i+Wutuenu+WKqOeJiFwiLFxuXHRcdFx0dXJsOiBcIm0uYXV0\nb2hvbWUuY29tLmNuXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKu\nOiBBcHDlhoXmiZPlvIBcblx0XHRcdFx0XCIjZmxvYXRfbmV3X2J1dHRvblwiLFxuXHRcdFx0XSxc\nblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5aSq5bmz5rSL5rG96L2mXCIsXG5cdFx0XHR1\ncmw6IFwibS5wY2F1dG8uY29tLmNuXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/m\ngqzmta7lvLnnqpc6IEFwcOWGheaJk+W8gFxuXHRcdFx0XHRcIiNob21lLWJvdHRvbS1oYWxmLWRp\nYWxvZ1wiLFxuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOiDova7mkq3or4Torrpcblx0XHRcdFx0\nXCIjZG1MaXN0T3V0ZXJcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRcL1wvd3d3\nLnRhcHRhcC5jb21cblx0XHRcdG5hbWU6IFwidGFwdGFwXCIsXG5cdFx0XHR1cmw6IFwid3d3LnRh\ncHRhcC5jblwiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPl\nvIB0YXB0YXBcblx0XHRcdFx0XCIub3Blbi1hcHAtZ2xvYmFsLWZsb2F0XCIsXG5cdFx0XHRdLFxu\nXHRcdH0sXG5cdFx0e1xuXHRcdFx0XC9cL20udGFwdGFwLmNvbVxuXHRcdFx0bmFtZTogXCJ0YXB0\nYXBcIixcblx0XHRcdHVybDogXCJtLnRhcHRhcC5jblwiLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRc\ndFx0XC9cL+aCrOa1ruaMiemSrjrmiZPlvIB0YXB0YXDmn6XnnIvmm7TlpJrnsr7lvanlhoXlrrlc\nblx0XHRcdFx0XCIuYXBwLWRvd25sb2FkX193cmFwcGVyXCIsXG5cdFx0XHRcdFwvXC\/oi7nmnpzn\nq6865oKs5rWu5oyJ6ZKuOua3u+WKoOWIsOahjOmdolxuXHRcdFx0XHRcIi5zaG93LWFkZC10by1z\nY3JlZW5cIixcblx0XHRcdFx0XC9cL+iLueaenOerrzrlm7rlrprmjInpkq465re75Yqg5Yiw5qGM\n6Z2iXG5cdFx0XHRcdFwiLmFkZC10by1zY3JlZW4td3JhcFwiLFxuXHRcdFx0XSxcblx0XHR9LFxu\nXHRcdHtcblx0XHRcdFwvXC9odHRwczpcL1wvbS5pdGhvbWUuY29tXC9cblx0XHRcdG5hbWU6IFwi\naXTkuYvlrrZcIixcblx0XHRcdHVybDogXCJtLml0aG9tZS5jb21cIixcblx0XHRcdGl0ZW1zOiBb\nXG5cdFx0XHRcdFwvXC\/lm7rlrprmjInpkq4o5bqV6YOoKTrnq4vljbPmiZPlvIBcblx0XHRcdFx0\nXCIub3Blbi1hcHAtYmFubmVyXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFt\nZTogXCIzNjBkb2NQQ+eJiFwiLFxuXHRcdFx0dXJsOiBcInd3dy4zNjBkb2MuY29tXC9jb250ZW50\nXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/nmbvlvZXlvLnnqpdcblx0XHRcdFx0\nXCJpZnJhbWVcIixcblx0XHRcdFx0XC9cL+eZu+W9leW8ueeqlzrmnKbog6fmqKHmnb9cblx0XHRc\ndFx0XCJpZnJhbWV+ZGl2XCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTog\nXCLlvIDmupDkuK3lm71cIixcblx0XHRcdHVybDogXCJ3d3cub3NjaGluYS5uZXRcIixcblx0XHRc\ndGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq4o5bqV6YOoKTrnq4vljbPmiZPlvIBc\nblx0XHRcdFx0XCIuYXBwLWRvd25sb2FkLWJhbm5lci1ib3hcIixcblx0XHRcdF0sXG5cdFx0fSxc\nblx0XHR7XG5cdFx0XHRuYW1lOiBcInNlZ21lbnRmYXVsdOaAneWQplwiLFxuXHRcdFx0dXJsOiBc\nInNlZ21lbnRmYXVsdC5jb21cL3FcIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/nmbvl\nvZXlvLnnqpdcblx0XHRcdFx0XCIubW9kYWwtZGlhbG9nLWNlbnRlcmVkXCIsXG5cdFx0XHRdLFxu\nXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLpmL\/ph4zkupHlvIDlj5HogIXnpL7ljLpcIixc\nblx0XHRcdHVybDogXCJkZXZlbG9wZXIuYWxpeXVuLmNvbVwvYXJ0aWNsZVwvXCIsXG5cdFx0XHRp\ndGVtczogW1xuXHRcdFx0XHRcL1wv6Zi\/6YeM5LqRQXBw5YaF5omT5byAXG5cdFx0XHRcdFwiLmFw\ncC1maXhlZC1idG5cIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuWN\njuS4uuS6keW8gOWPkeiAheekvuWMulwiLFxuXHRcdFx0dXJsOiBcImh1YXdlaWNsb3VkLmNzZG4u\nbmV0XC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/liqDlhaXnpL7ljLpcblx0XHRc\ndFx0XCIudXNlci1kZXNjLWZpeFwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdFwv\nXC9odHRwczpcL1wvbS4zNmtyLmNvbVwvcFwvMTk2NDU4ODk1MTQ3MDg1NlxuXHRcdFx0bmFtZTog\nXCIzNuawqlwiLFxuXHRcdFx0dXJsOiBcIm0uMzZrci5jb21cL3BcL1wiLFxuXHRcdFx0aXRlbXM6\nIFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrijpobbpg6gpOuaJk+W8gFxuXHRcdFx0XHRcIi5h\ncnRpY2xlLXRvcC1zd2lwZXItZ29hcHBcIixcblx0XHRcdF0sXG5cdFx0fSxcblx0XHR7XG5cdFx0\nXHRuYW1lOiBcIumbqueQg1wiLFxuXHRcdFx0dXJsOiBcInh1ZXFpdS5jb21cL1wiLFxuXHRcdFx0\naXRlbXM6IFtcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrliqDnvqTlrabkuaAo5Li76aG1KVxu\nXHRcdFx0XHRcIi5GbG9hdERvd25sb2FkQnV0dG9uX21vYmlsZV94aWFveHVlLWJ1dHRvbl8xalpc\nIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrliqDnvqTlrabkuaAo5paH56ugKVxuXHRcdFx0\nXHRcIi5pbmRleF94aWFveHVlLWJ1dHRvbl8xQXZcIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemS\nrjrnmbvlvZXmj5DnpLpcblx0XHRcdFx0XCIud2lkZ2V0X19kb3dubG9hZC1hcHBcIlxuXHRcdFx0\nXSxcblx0XHRcdGZ1bjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJ\nk+W8gGFwcCjor53popgpXG5cdFx0XHRcdGRvY3VtZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1\nbmN0aW9uICgpIHtcblx0XHRcdFx0XHRpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gXCJjb21w\nbGV0ZVwiKSB7XG5cdFx0XHRcdFx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiW2NsYXNzXj1G\nbG9hdERvd25sb2FkQnV0dG9uX21vYmlsZV9vcGVuYXBwX19maXhfXVwiKS5yZW1vdmUoKTtcblx0\nXHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cblx0XHRcdFx0XC8qKlxuXHRcdFx0XHQgKiBSZW1vdmVz\nIGEgbG9naW4gbm90aWNlLlxuXHRcdFx0XHQgKlxuXHRcdFx0XHQgKiBAcGFyYW0gICAgICB7TXV0\nYXRpb25SZWNvcmRbXX0gIG11dGF0aW9uc0xpc3QgIFRoZSBtdXRhdGlvbnMgbGlzdFxuXHRcdFx0\nXHQgKiBAcGFyYW0gICAgICB7TXV0YXRpb25PYnNlcnZlcn0gIG9ic2VydmVyICAgICAgIFRoZSBv\nYnNlcnZlclxuXHRcdFx0XHQgKlwvXG5cdFx0XHRcdGxldCByZW1vdmVMb2dpbk5vdGljZSA9IGZ1\nbmN0aW9uIChtdXRhdGlvbnNMaXN0KSB7XG5cdFx0XHRcdFx0Zm9yIChsZXQgbXV0YXRpb24gb2Yg\nbXV0YXRpb25zTGlzdCkge1xuXHRcdFx0XHRcdFx0Zm9yIChsZXQgbm9kZSBvZiBtdXRhdGlvbi5h\nZGRlZE5vZGVzKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBjbG9zZUJ0biA9IGRvY3VtZW50LnF1ZXJ5\nU2VsZWN0b3IoXCIubW9kYWxfX2xvZ2luIC5jbG9zZVwiKTtcblx0XHRcdFx0XHRcdFx0XC9cL+WF\ns+mXreeZu+W9leW8ueeql1xuXHRcdFx0XHRcdFx0XHRpZiAoTG9naW5GbGFnID09IHRydWUpIHtc\nblx0XHRcdFx0XHRcdFx0XHRjbG9zZUJ0bi5jbGljaygpO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Ug\ne1xuXHRcdFx0XHRcdFx0XHRcdExvZ2luRmxhZyA9PSB0cnVlO1xuXHRcdFx0XHRcdFx0XHR9XG5c\ndFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRc\ndH07XG5cdFx0XHRcdFwvXC\/mi6bmiKrnmbvlvZXlvLnnqpdcblx0XHRcdFx0ZG9jdW1lbnQuYWRk\nRXZlbnRMaXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIiwgZnVuY3Rpb24gKCkge1xuXHRcdFx0\nXHRcdGxldCBsb2dpbkJ0biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIubG9naW5CdG5cIik7\nXG5cdFx0XHRcdFx0XC9cL+ajgOmqjOaYr+WQpueZu+W9lVxuXHRcdFx0XHRcdGlmIChsb2dpbkJ0\nbi50ZXh0Q29udGVudCA9PT0gXCLnmbvlvZVcIikge1xuXHRcdFx0XHRcdFx0XC9cL+WinuWKoOeC\nueWHu+S6i+S7tlxuXHRcdFx0XHRcdFx0bG9naW5CdG4uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNr\nXCIsIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0TG9naW5GbGFnID0gZmFsc2U7XG5cdFx0\nXHRcdFx0XHRcdFwvXC\/mnKrnn6VidWc65a+86Ie056ys5LiA5qyh54K55Ye75peg5rOV55Sf5pWI\nLOaJgOS7pei\/memHjOWGjeeCueWHu+S4gOasoVxuXHRcdFx0XHRcdFx0XHRsb2dpbkJ0bi5jbGlj\naygpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFwvXC\/miafooYzn\nm5HlkKxcblx0XHRcdFx0XHRsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihyZW1v\ndmVMb2dpbk5vdGljZSk7XG5cdFx0XHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudCwgeyBj\naGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSxc\nblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5aSp55y85p+lXCIsXG5cdFx0XHR1cmw6IFwi\nbS50aWFueWFuY2hhLmNvbVwvXCIsXG5cdFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5oKs5rWu\n5oyJ6ZKuOuaJk+W8gGFwcCjkuLvpobUpXG5cdFx0XHRcdFwiLnN3aXBlci1jb250YWluZXJcIixc\nblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrkuIvovb1BUFAo5LyB5LiaKVxuXHRcdFx0XHRcIiNi\nYW5uZXJfbW9iaWxlX3YyXCIsXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTog\nXCLnq5nphbfnp7vliqjniYhcIixcblx0XHRcdHVybDogXCJtLnpjb29sLmNvbS5jblwvXCIsXG5c\ndFx0XHRpdGVtczogW1xuXHRcdFx0XHRcL1wv5oKs5rWu5oyJ6ZKuOuaJk+W8gGFwcCjkuLvpobUp\nXG5cdFx0XHRcdFwiLmJvdHRvbS1BcHBcIixcblx0XHRcdFx0XC9cL+aCrOa1ruaMiemSrjrmiZPl\nvIBhcHBcblx0XHRcdFx0XCJbY2xhc3NePXdhcEhlYWRlcl9mb290ZXItYnV0dG9uXVwiLFxuXHRc\ndFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi56uZ6YW3UEPniYhcIixcblx0XHRc\ndHVybDogXCJ3d3cuemNvb2wuY29tLmNuXC9cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwv\nXC\/nmbvlvZXmjInpkq5cblx0XHRcdFx0XCIuc2lkZVVubG9naW5cIixcblx0XHRcdFx0XC9cL+eZ\nu+W9leW8ueeql1xuXHRcdFx0XHRcIi5SZWFjdE1vZGFsX19PdmVybGF5LS1hZnRlci1vcGVuOm5v\ndCguUmVhY3RNb2RhbF9fT3ZlcmxheV9jb250ZW50LXBhZ2UpXCIsXG5cdFx0XHRdLFxuXHRcdFx0\nZnVuOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFwvXC\/nmbvlvZXlvLnnqpflr7zoh7TnmoTpobXp\nnaLml6Dms5Xmu5Hliqhcblx0XHRcdFx0YWRkU3R5bGUoXCJodG1sLGJvZHkge292ZXJzY3JvbGwt\nYmVoYXZpb3I6IHVuc2V0ICFpbXBvcnRhbnQ7b3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7fVwi\nKTtcblx0XHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRuYW1lOiBcIuWwj+e6ouS5plwiLFxu\nXHRcdFx0dXJsOiBcInd3dy54aWFvaG9uZ3NodS5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0\nXHRcdFwvXC9BcHDlhoXmiZPlvIAo6KeG6aKRKVxuXHRcdFx0XHRcIi5ib3R0b20tYnV0dG9uLWJv\neFwiLFxuXHRcdFx0XHRcL1wvQXBw5YaF5omT5byAKOeslOiusClcblx0XHRcdFx0XCIuYm90dG9t\nLWJhclwiLFxuXHRcdFx0XSxcblx0XHRcdGZ1bjogZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRsZXQg\nbW8gPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbiAobXV0YXRpb25zKSB7XG5cdFx0XHRc\ndFx0Zm9yIChsZXQgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG5cdFx0XHRcdFx0XHRmb3IgKGxl\ndCBub2RlIG9mIG11dGF0aW9uLmFkZGVkTm9kZXMpIHtcblx0XHRcdFx0XHRcdFx0bGV0IGJ1dHRv\nbiA9IG5vZGUucXVlcnlTZWxlY3RvcihcIi5pY29uLWJ0bi13cmFwcGVyXCIpO1xuXHRcdFx0XHRc\ndFx0XHRpZiAoYnV0dG9uKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKExvZ2luRmxhZykge1xuXHRc\ndFx0XHRcdFx0XHRcdFx0YnV0dG9uLmNsaWNrKCk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtc\nblx0XHRcdFx0XHRcdFx0XHRcdExvZ2luRmxhZyA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0fVxu\nXHRcdFx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxu\nXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdGxldCBsb2dpbkJ0biA9IGRvY3VtZW50\nLnF1ZXJ5U2VsZWN0b3IoXCIubG9naW4tYnRuXCIpO1xuXHRcdFx0XHRpZiAobG9naW5CdG4pIHtc\nblx0XHRcdFx0XHRsb2dpbkJ0bi5hZGRFdmVudExpc3RlbmVyKFxuXHRcdFx0XHRcdFx0XCJjbGlj\na1wiLFxuXHRcdFx0XHRcdFx0ZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRMb2dpbkZsYWcg\nPSBmYWxzZTtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR0cnVlLFxuXHRcdFx0XHRcdCk7\nXG5cdFx0XHRcdFx0bW8ub2JzZXJ2ZShkb2N1bWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRy\nZWU6IHRydWUgfSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0fSxcblx0XHR7XG5cdFx0XHRu\nYW1lOiBcIuWWnOmprOaLiembhVwiLFxuXHRcdFx0dXJsOiBcIm0ueGltYWxheWEuY29tXC9cIixc\nblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/mgqzmta7mjInpkq465omT5byAQVBQLOWujOaV\ntOaUtuWQrDFcblx0XHRcdFx0XCIuYWxidW0tYnRuLWNvbnRhaW5lclwiLFxuXHRcdFx0XHRcL1wv\n5oKs5rWu5oyJ6ZKuOuaJk+W8gEFQUCzlrozmlbTmlLblkKwyXG5cdFx0XHRcdFwiLmJ0bi1vcGVu\nXCIsXG5cdFx0XHRcdFwvXC\/miZPlvIBBUFAyXG5cdFx0XHRcdFwiLmRvd25sb2FkQnV0dG9uXCIs\nXG5cdFx0XHRdLFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0XC9cL2h0dHBzOlwvXC93YXAuY25raS5u\nZXRcL3RvdWNoXC93ZWJcL0pvdXJuYWxcL0FydGljbGVcL1dMQVEyMDIzMDIwNjEuaHRtbFxuXHRc\ndFx0bmFtZTogXCLkuK3lm73nn6XnvZFcIixcblx0XHRcdHVybDogXCJ3YXAuY25raS5uZXRcL1wi\nLFxuXHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XC9cL0FwcOWGheaJk+W8gFxuXHRcdFx0XHRcIi5B\ncHBvcGVuXCIsXG5cdFx0XHRcdFwvXC\/mu5rliqjmlrDpl7tcblx0XHRcdFx0XCIjZml4LWJvdHRv\nbVwiLFxuXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwiemZyb250aWVyXCIs\nXG5cdFx0XHR1cmw6IFwid3d3Lnpmcm9udGllci5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0\nXHRcdFwvXC9BcHDlhoXmiZPlvIBcblx0XHRcdFx0XCIuYXBwLW9wZW5lclwiLFxuXHRcdFx0XSxc\nblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwi5b+F5bqU5pCc57SiXCIsXG5cdFx0XHR1cmw6\nIFwiYmluZy5jb21cIixcblx0XHRcdGl0ZW1zOiBbXG5cdFx0XHRcdFwvXC\/lv4XlupTkuK3miZPl\nvIAoQ2hyb21l5Lit5LiT5bGeKVxuXHRcdFx0XHRcIi5ibnBfcmljaF9kaXZfdmlzaWJsZVwiLFxu\nXHRcdFx0XSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdG5hbWU6IFwidzNjc2Nob29sXCIsXG5cdFx0\nXHR1cmw6IFwid3d3LnczY3NjaG9vbC5jblwvXCIsXG5cdFx0XHRpdGVtczogW10sXG5cdFx0XHRm\ndW46IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XC9cL+WkjeWItuaWh+S7tuaXtueahOW8ueeql1xu\nXHRcdFx0XHRvbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0bGV0IG1vID0gbmV3IE11\ndGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKG11dGF0aW9ucykge1xuXHRcdFx0XHRcdFx0Zm9yIChs\nZXQgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG5cdFx0XHRcdFx0XHRcdGZvciAobGV0IG5vZGUg\nb2YgbXV0YXRpb24uYWRkZWROb2Rlcykge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChub2RlLm5vZGVO\nYW1lID09IFwiRElWXCIgJiYgbm9kZS5jbGFzc05hbWUgPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0\nXHRcdFx0bm9kZS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG5cdFx0XHRcdFx0XHRcdFx0fVxu\nXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0\nbW8ub2JzZXJ2ZShkb2N1bWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7\nXG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdH0sXG5cdFx0e1xuXHRcdFx0bmFtZTogXCLku4Dk\nuYjlgLzlvpfkubBcIixcblx0XHRcdHVybDogXCJtLnNtemRtLmNvbVwvXCIsXG5cdFx0XHRpdGVt\nczogW1xuXHRcdFx0XHRcL1wvYXBw5YaF5omT5byAXG5cdFx0XHRcdFwiLmZvb3Rlci1iYW5uZXIt\nd3JhcFwiLFxuXHRcdFx0XHRcL1wv5Zu95YaF5aW95Lu3OnFwcOWGheaJk+W8gFxuXHRcdFx0XHRc\nIi53cmFwcGVyXCIsXG5cdFx0XHRcdFwiLmZvb3QtYmFubmVyXCIsXG5cdFx0XHRdLFxuXHRcdH0s\nXG5cdF07XG5cblx0XC8qKlxuXHQgKiDkuLvkvZPpg6jliIZcblx0ICpcL1xuXHRmb3IgKGxldCB3\nZWJzaXRlIG9mIHdlYnNpdGVzKSB7XG5cdFx0aWYgKGxvY2F0aW9uLmhyZWYuaW5kZXhPZih3ZWJz\naXRlLnVybCkgIT0gLTEpIHtcblx0XHRcdFwvXC\/pmpDol49cL+aLpuaIqumqmuaJsOWFg+e0oFxu\nXHRcdFx0aWYgKHdlYnNpdGUuaXRlbXMpIHtcblx0XHRcdFx0Zm9yIChsZXQgaXRlbSBvZiB3ZWJz\naXRlLml0ZW1zKSB7XG5cdFx0XHRcdFx0YWRkU3R5bGUoaXRlbSArIFwie2Rpc3BsYXk6IG5vbmUg\nIWltcG9ydGFudH1cIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdFwvXC\/kv67lpI3np7vl\niqjniYjpobXpnaLkuI3lhYHorrjmu5Hliqhcblx0XHRcdGlmICh3ZWJzaXRlLm92ZXJmbG93KSB7\nXG5cdFx0XHRcdGFkZFN0eWxlKFwiYm9keXtvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50fVwiKTtc\nblx0XHRcdH1cblx0XHRcdFwvXC\/miafooYzpop3lpJbmlrnmoYhcblx0XHRcdGlmICh3ZWJzaXRl\nLmZ1bikge1xuXHRcdFx0XHR3ZWJzaXRlLmZ1bigpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5c\ndFwvXC\/pu5jorqTnm5HlkKxcblx0bGV0IExvZ2luRmxhZyA9IHRydWU7XG5cdFwvXC\/pu5jorqTm\nt7vliqBcblx0bGV0IENsaWNrRmxhZyA9IHRydWU7XG5cblx0XC8qKlxuXHQgKiDpgJrov4flhoXl\nrrkoeHBhdGgp6I635Y+W6IqC54K5XG5cdCAqXG5cdCAqIEBwYXJhbSAgICAgIHtzdHJpbmd9ICB4\ncGF0aCAgIOWGheWuuVxuXHQgKiBAcGFyYW0gICAgICB7Tm9kZX0gIHBhcmVudCAg54i25YWD57Sg\nXG5cdCAqIEByZXR1cm4gICAgIHtOb2RlfSAg5YWD57SgXG5cdCAqXC9cblx0ZnVuY3Rpb24gZ2V0\nWHBhdGgoeHBhdGgsIHBhcmVudCkge1xuXHRcdGxldCB4cGF0aFJlc3VsdCA9IGRvY3VtZW50LmV2\nYWx1YXRlKHhwYXRoLCBwYXJlbnQgfHwgZG9jdW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0LkZJUlNU\nX09SREVSRURfTk9ERV9UWVBFLCBudWxsKTtcblx0XHRyZXR1cm4geHBhdGhSZXN1bHQuc2luZ2xl\nTm9kZVZhbHVlO1xuXHR9XG5cblx0XC8qKlxuXHQgKiDlkJFoZWFk5qCH562+5YaF5re75Yqg5qC3\n5byPXG5cdCAqXG5cdCAqIEBwYXJhbSAgICAgIHtzdHJpbmd9ICB0ZXh0ICAgIENTU+agt+W8j1xu\nXHQgKlwvXG5cdGZ1bmN0aW9uIGFkZFN0eWxlKHRleHQpIHtcblx0XHRsZXQgY3NzID0gZG9jdW1l\nbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuXHRcdGNzcy5pbm5lclRleHQgKz0gdGV4dDtc\nblx0XHRkb2N1bWVudC5oZWFkLmFwcGVuZChjc3MpO1xuXHR9XG59KSgpO1xuIn0KeyJzY3JpcHRJ\nZCI6IjhhYTU5NzdjNDlmYTQyMzkxZGNiODk2MTI3ODU4ZGYwIiwiZW5hYmxlZCI6dHJ1ZSwidXJs\nIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDUwMzY4XC8lRTUl\nQkMlQkElRTUlODglQjYlRTclQkMlQTklRTYlOTQlQkUlRTQlQjglOEUlRTYlQTElOEMlRTklOUQl\nQTIlRTYlQTglQTElRTUlQkMlOEYudXNlci5qcyIsImNvZGVWMiI6IlwvXC8gPT1Vc2VyU2NyaXB0\nPT1cblwvXC8gQG5hbWUgICAgICAgIOW8uuWItue8qeaUvuS4juahjOmdouaooeW8j1xuXC9cLyBA\nYXV0aG9yICAgICAgTGVtb24zOTlcblwvXC8gQGRlc2NyaXB0aW9uIOa1j+iniOWZqHVh5Li65omL\n5py6dWHml7blkK\/nlKjlvLrliLbnvKnmlL7vvIzmtY\/op4jlmah1YemdnuaJi+acunVh5pe25ZCv\n55So5qGM6Z2i5qih5byP77yM6ISa5pys6I+c5Y2V5Y+v5Lul5Y2V54us6K6+572u5qGM6Z2i5qih\n5byP5a695bqm5oiW5YWo5bGA5a695bqmXG5cL1wvIEBtYXRjaCAgICAgICAqOlwvXC8qXC8qXG5c\nL1wvIEBleGNsdWRlICAgIGh0dHBzOlwvXC9zai5xcS5jb21cLypcblwvXC8gQGdyYW50ICAgICAg\nIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmRcblwvXC8gQGdyYW50ICAgICAgIEdNX3NldFZhbHVlXG5c\nL1wvIEBncmFudCAgICAgICBHTV9nZXRWYWx1ZVxuXC9cLyBAZ3JhbnQgICAgICAgR01fdW5zZXRW\nYWx1ZVxuXC9cLyBAdmVyc2lvbiAgICAgOS4yXG5cL1wvIEBydW4tYXQgICAgIGRvY3VtZW50LXN0\nYXJ0XG5cL1wvIEBuYW1lc3BhY2UgICBodHRwczpcL1wvZ3JlYXN5Zm9yay5vcmdcL3VzZXJzXC80\nNTI5MTFcblwvXC8gQGRvd25sb2FkVVJMIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdc\nL3NjcmlwdHNcLzQ1MDM2OFwvJUU1JUJDJUJBJUU1JTg4JUI2JUU3JUJDJUE5JUU2JTk0JUJFJUU0\nJUI4JThFJUU2JUExJThDJUU5JTlEJUEyJUU2JUE4JUExJUU1JUJDJThGLnVzZXIuanNcblwvXC8g\nQHVwZGF0ZVVSTCBodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80NTAz\nNjhcLyVFNSVCQyVCQSVFNSU4OCVCNiVFNyVCQyVBOSVFNiU5NCVCRSVFNCVCOCU4RSVFNiVBMSU4\nQyVFOSU5RCVBMiVFNiVBOCVBMSVFNSVCQyU4Ri5tZXRhLmpzXG5cL1wvID09XC9Vc2VyU2NyaXB0\nPT1cblxuY29uc3QgZG9tYWluID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xubGV0IGdsb2Jh\nbFZpZXdwb3J0V2lkdGggPSBHTV9nZXRWYWx1ZSgnZ2xvYmFsVmlld3BvcnRXaWR0aCcsIDEwODAp\nO1xubGV0IHZpZXdwb3J0V2lkdGggPSBHTV9nZXRWYWx1ZShgdmlld3BvcnRXaWR0aF8ke2RvbWFp\nbn1gLCBnbG9iYWxWaWV3cG9ydFdpZHRoKTtcbmxldCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNl\nckFnZW50O1xuXG5cL1wvIOajgOafpeiEmuacrOaYr+WQpuWQr+eUqFxubGV0IHNjcmlwdEVuYWJs\nZWQgPSBHTV9nZXRWYWx1ZSgnc2NyaXB0RW5hYmxlZCcsIHRydWUpO1xuXG5mdW5jdGlvbiBzZXRW\naWV3cG9ydFdpZHRoKHdpZHRoKSB7XG4gIHZpZXdwb3J0V2lkdGggPSB3aWR0aDtcbiAgR01fc2V0\nVmFsdWUoYHZpZXdwb3J0V2lkdGhfJHtkb21haW59YCwgd2lkdGgpOyBcL1wvIOWwhuinhuWPo+Wu\nveW6puS4juWfn+WQjeWFs+iBlOWtmOWCqFxuICBhdXRvQ2hhbmdlU2NhbGUoKTsgXC9cLyDmm7Tm\nlrDop4blj6Plrr3luqblkI7oh6rliqjosIPmlbTnvKnmlL7mr5Tkvotcbn1cblxuZnVuY3Rpb24g\nc2V0R2xvYmFsVmlld3BvcnRXaWR0aCh3aWR0aCkge1xuICBnbG9iYWxWaWV3cG9ydFdpZHRoID0g\nd2lkdGg7XG4gIEdNX3NldFZhbHVlKCdnbG9iYWxWaWV3cG9ydFdpZHRoJywgd2lkdGgpOyBcL1wv\nIOiuvue9ruWFqOWxgOinhuWPo+WuveW6plxuICBpZiAoIUdNX2dldFZhbHVlKGB2aWV3cG9ydFdp\nZHRoXyR7ZG9tYWlufWApKSB7XG4gICAgdmlld3BvcnRXaWR0aCA9IHdpZHRoOyBcL1wvIOabtOaW\nsOW9k+WJjee9keermeeahOinhuWPo+WuveW6pu+8jOWmguaenOacquWNleeLrOiuvue9rui\/h1xu\nICB9XG4gIGF1dG9DaGFuZ2VTY2FsZSgpO1xufVxuXG5mdW5jdGlvbiBhdXRvQ2hhbmdlU2NhbGUo\nKSB7XG4gIGlmICghc2NyaXB0RW5hYmxlZCkgcmV0dXJuOyBcL1wvIOWmguaenOiEmuacrOemgeeU\nqO+8jOWImeS4jeaJp+ihjOe8qeaUvuiwg+aVtFxuXG4gIGNvbnN0IG1ldGFUYWcgPSBkb2N1bWVu\ndC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9dmlld3BvcnRdJyk7XG4gIGlmIChtZXRhVGFnKSB7\nXG4gICAgY29uc3QgaXNNb2JpbGUgPVxuICAgICAgdXNlckFnZW50LmluZGV4T2YoJ01vYmlsZScp\nIDwgMCAmJlxuICAgICAgdXNlckFnZW50LmluZGV4T2YoJ1N5bWJpYW5PUycpIDwgMCAmJlxuICAg\nICAgdXNlckFnZW50LmluZGV4T2YoJ1NlYXJjaENyYWZ0JykgPCAwO1xuXG4gICAgbWV0YVRhZy5z\nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnLCBpc01vYmlsZSA\/IGB3aWR0aD0ke3ZpZXdwb3J0V2lkdGh9\nYCA6ICd3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xLjAsbWF4aW11bS1zY2FsZT0x\nMC4wLHVzZXItc2NhbGFibGU9MScpO1xuICB9XG59XG5cbmF1dG9DaGFuZ2VTY2FsZSgpO1xuXG5c\nL1wv55uR5ZCsdXJs5Y+Y5YyW5omn6KGMXG5oaXN0b3J5LnB1c2hTdGF0ZSA9ICggZiA9PiBmdW5j\ndGlvbiBwdXNoU3RhdGUoKXtcbiAgICB2YXIgcmV0ID0gZi5hcHBseSh0aGlzLCBhcmd1bWVudHMp\nO1xuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncHVzaHN0YXRlJykpO1xuICAg\nIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgndXJsY2hhbmdlJykpO1xuICAgIHJldHVy\nbiByZXQ7XG4gIH0pKGhpc3RvcnkucHVzaFN0YXRlKTtcbmhpc3RvcnkucmVwbGFjZVN0YXRlID0g\nKCBmID0+IGZ1bmN0aW9uIHJlcGxhY2VTdGF0ZSgpe1xuICAgIHZhciByZXQgPSBmLmFwcGx5KHRo\naXMsIGFyZ3VtZW50cyk7XG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXBs\nYWNlc3RhdGUnKSk7XG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCd1cmxjaGFu\nZ2UnKSk7XG4gICAgcmV0dXJuIHJldDtcbiAgfSkoaGlzdG9yeS5yZXBsYWNlU3RhdGUpO1xud2lu\nZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BvcHN0YXRlJywoKT0+e1xuICAgIHdpbmRvdy5kaXNwYXRj\naEV2ZW50KG5ldyBFdmVudCgndXJsY2hhbmdlJykpXG59KTtcblxud2luZG93LmFkZEV2ZW50TGlz\ndGVuZXIoJ3VybGNoYW5nZScsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gd2luZG93LnNldFRpbWVvdXQo\nYXV0b0NoYW5nZVNjYWxlLCAxMDApO1xufSk7XG5cblwvXC\/lj4zmjIfmiafooYxcbmRvY3VtZW50\nLmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGZ1bmN0aW9uKGUpIHtcbiAgICBpZiAoZS50\nb3VjaGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIGF1dG9DaGFuZ2VTY2FsZSgpO1xuICAgIH1cbiAg\nfSk7XG5cblwvXC\/nm5HlkKzlrr3luqblj5jljJZcbmNvbnN0IG1lZGlhUXVlcnkgPSB3aW5kb3cu\nbWF0Y2hNZWRpYShgKHdpZHRoOiAke3ZpZXdwb3J0V2lkdGh9cHgpYCk7XG5cbmZ1bmN0aW9uIGhh\nbmRsZVZpZXdwb3J0Q2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudC5tYXRjaGVzKSB7XG4g\nICAgICAgIGF1dG9DaGFuZ2VTY2FsZSgpO1xuICAgIH1cbn1cblxubWVkaWFRdWVyeS5hZGRFdmVu\ndExpc3RlbmVyKCdjaGFuZ2UnLCBoYW5kbGVWaWV3cG9ydENoYW5nZSk7XG5oYW5kbGVWaWV3cG9y\ndENoYW5nZShtZWRpYVF1ZXJ5KTtcblxuXC9cLyDmt7vliqDoj5zljZXlkb3ku6RcbkdNX3JlZ2lz\ndGVyTWVudUNvbW1hbmQoJ+iuvue9ruatpOe9keermeinhuWPo+WuveW6picsIGZ1bmN0aW9uKCkg\ne1xuICBjb25zdCBpbnB1dFdpZHRoID0gcHJvbXB0KCfor7fovpPlhaXop4blj6Plrr3luqbvvJon\nLCB2aWV3cG9ydFdpZHRoKTtcbiAgaWYgKGlucHV0V2lkdGgpIHtcbiAgICBjb25zdCBwYXJzZWRX\naWR0aCA9IHBhcnNlSW50KGlucHV0V2lkdGgsIDEwKTtcbiAgICBpZiAoIWlzTmFOKHBhcnNlZFdp\nZHRoKSkge1xuICAgICAgc2V0Vmlld3BvcnRXaWR0aChwYXJzZWRXaWR0aCk7XG4gICAgfSBlbHNl\nIHtcbiAgICAgIGFsZXJ0KCfovpPlhaXnmoTlrr3luqbml6DmlYjvvIzor7fovpPlhaXkuIDkuKrm\nnInmlYjnmoTmlbDlrZfvvIEnKTtcbiAgICB9XG4gIH1cbn0pO1xuXG5HTV9yZWdpc3Rlck1lbnVD\nb21tYW5kKCforr7nva7lhajlsYDop4blj6Plrr3luqYnLCBmdW5jdGlvbigpIHtcbiAgY29uc3Qg\naW5wdXRXaWR0aCA9IHByb21wdCgn6K+36L6T5YWl5YWo5bGA6KeG5Y+j5a695bqm77yaJywgZ2xv\nYmFsVmlld3BvcnRXaWR0aCk7XG4gIGlmIChpbnB1dFdpZHRoKSB7XG4gICAgY29uc3QgcGFyc2Vk\nV2lkdGggPSBwYXJzZUludChpbnB1dFdpZHRoLCAxMCk7XG4gICAgaWYgKCFpc05hTihwYXJzZWRX\naWR0aCkpIHtcbiAgICAgIHNldEdsb2JhbFZpZXdwb3J0V2lkdGgocGFyc2VkV2lkdGgpO1xuICAg\nIH0gZWxzZSB7XG4gICAgICBhbGVydCgn6L6T5YWl55qE5a695bqm5peg5pWI77yM6K+36L6T5YWl\n5LiA5Liq5pyJ5pWI55qE5pWw5a2X77yBJyk7XG4gICAgfVxuICB9XG59KTtcblxuXC9cLyDlkK\/n\nlKhcL+emgeeUqOiEmuacrOiPnOWNleWRveS7pFxuR01fcmVnaXN0ZXJNZW51Q29tbWFuZChzY3Jp\ncHRFbmFibGVkID8gJ+WcqOatpOe9keermeemgeeUqCcgOiAn5Zyo5q2k572R56uZ5ZCv55SoJywg\nZnVuY3Rpb24oKSB7XG4gIHNjcmlwdEVuYWJsZWQgPSAhc2NyaXB0RW5hYmxlZDtcbiAgR01fc2V0\nVmFsdWUoJ3NjcmlwdEVuYWJsZWQnLCBzY3JpcHRFbmFibGVkKTtcbiAgaWYgKHNjcmlwdEVuYWJs\nZWQpIHtcbiAgICBhdXRvQ2hhbmdlU2NhbGUoKTsgXC9cLyDlkK\/nlKjohJrmnKzlubbnq4vljbPl\nupTnlKjorr7nva5cbiAgICBHTV9yZWdpc3Rlck1lbnVDb21tYW5kKCflnKjmraTnvZHnq5nnpoHn\nlKgnLCBmdW5jdGlvbigpIHtcbiAgICAgIEdNX3NldFZhbHVlKCdzY3JpcHRFbmFibGVkJywgZmFs\nc2UpO1xuICAgICAgbG9jYXRpb24ucmVsb2FkKCk7IFwvXC8g56aB55So6ISa5pys5bm25Yi35paw\n6aG16Z2iXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgR01fcmVnaXN0ZXJNZW51Q29tbWFuZCgn\n5Zyo5q2k572R56uZ5ZCv55SoJywgZnVuY3Rpb24oKSB7XG4gICAgICBHTV9zZXRWYWx1ZSgnc2Ny\naXB0RW5hYmxlZCcsIHRydWUpO1xuICAgICAgYXV0b0NoYW5nZVNjYWxlKCk7IFwvXC8g5ZCv55So\n6ISa5pys5bm256uL5Y2z5bqU55So6K6+572uXG4gICAgfSk7XG4gIH1cbn0pO1xuIn0KeyJzY3Jp\ncHRJZCI6IjU2OWE3Y2Y3YTFlY2NjNTkwMTg4ODYyMDUzNThhNzk5IiwiZW5hYmxlZCI6dHJ1ZSwi\ndXJsIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDM4Njg0XC9Q\nYWdldHVhbC51c2VyLmpzIiwiY29kZVYyIjoiXC9cLyA9PVVzZXJTY3JpcHQ9PVxuXC9cLyBAbmFt\nZSAgICAgICAgIFBhZ2V0dWFsXG5cL1wvIEBuYW1lOnpoLUNOICAg5Lic5pa55rC46aG15py6XG5c\nL1wvIEBuYW1lOnpoLVRXICAg5p2x5pa55rC46aCB5qmfXG5cL1wvIEBuYW1lOmphICAgICAg5p2x\n5pa55rC46aCB5qmfXG5cL1wvIEBuYW1lOmtvICAgICAg5p2x5pa55rC46aCB5qmfXG5cL1wvIEBu\nYW1lOnB0LUJSICAgUGFnZXR1YWxcblwvXC8gQG5hbWU6cnUgICAgICBQYWdldHVhbFxuXC9cLyBA\nbmFtZTpkZSAgICAgIFBhZ2V0dWFsXG5cL1wvIEBuYW1lOmVzICAgICAgUGFnZXR1YWxcblwvXC8g\nQG5hbWU6ZnIgICAgICBQYWdldHVhbFxuXC9cLyBAbmFtZTppdCAgICAgIFBhZ2V0dWFsXG5cL1wv\nIEBuYW1lOmlkICAgICAgUGFnZXR1YWxcblwvXC8gQG5hbWU6dGggICAgICBQYWdldHVhbFxuXC9c\nLyBAbmFtZTpuYiAgICAgIFBhZ2V0dWFsXG5cL1wvIEBuYW1lOnN2ICAgICAgUGFnZXR1YWxcblwv\nXC8gQG5hbWU6c3IgICAgICBQYWdldHVhbFxuXC9cLyBAbmFtZTpzayAgICAgIFBhZ2V0dWFsXG5c\nL1wvIEBuYW1lOmh1ICAgICAgUGFnZXR1YWxcblwvXC8gQG5hbWU6cm8gICAgICBQYWdldHVhbFxu\nXC9cLyBAbmFtZTpmaSAgICAgIFBhZ2V0dWFsXG5cL1wvIEBuYW1lOmVsICAgICAgUGFnZXR1YWxc\nblwvXC8gQG5hbWU6ZW8gICAgICBQYWdldHVhbFxuXC9cLyBAbmFtZTpiZyAgICAgIFBhZ2V0dWFs\nXG5cL1wvIEBuYW1lOmNzICAgICAgUGFnZXR1YWxcblwvXC8gQG5hbWU6dmkgICAgICBQYWdldHVh\nbFxuXC9cLyBAbmFtZTpwbCAgICAgIFBhZ2V0dWFsXG5cL1wvIEBuYW1lOnVrICAgICAgUGFnZXR1\nYWxcblwvXC8gQG5hbWU6dHIgICAgICBQYWdldHVhbFxuXC9cLyBAbmFtZTpubCAgICAgIFBhZ2V0\ndWFsXG5cL1wvIEBuYW1lOmRhICAgICAgUGFnZXR1YWxcblwvXC8gQG5hbWU6ZnItQ0EgICBQYWdl\ndHVhbFxuXC9cLyBAbmFtZXNwYWNlICAgIGhvb3RoaW5cblwvXC8gQHZlcnNpb24gICAgICAxLjku\nMzcuMTEzXG5cL1wvIEBkZXNjcmlwdGlvbiAgUGVycGV0dWFsIHBhZ2VzIC0gcG93ZXJmdWwgYXV0\nby1wYWdlciBzY3JpcHQuIEF1dG8gZmV0Y2hpbmcgbmV4dCBwYWdpbmF0ZWQgd2ViIHBhZ2VzIGFu\nZCBpbnNlcnRpbmcgaW50byBjdXJyZW50IHBhZ2UgZm9yIGluZmluaXRlIHNjcm9sbC4gU3VwcG9y\ndCB0aG91c2FuZHMgb2Ygd2ViIHNpdGVzIHdpdGhvdXQgYW55IHJ1bGUuXG5cL1wvIEBkZXNjcmlw\ndGlvbjp6aC1DTiAg57uI5p6B6Ieq5Yqo57+76aG1IC0g5Yqg6L295bm25ou85o6l5LiL5LiA5YiG\n6aG15YaF5a656Iez5b2T5YmN6aG15bC+77yM5pm66IO96YCC6YWN5Lu75oSP572R6aG1XG5cL1wv\nIEBkZXNjcmlwdGlvbjp6aC1UVyAg57WC5qW16Ieq5YuV57+76aCBIC0g5Yqg6LyJ5Lim5ou85o6l\n5LiL5LiA5YiG6aCB5YWn5a656Iez55W25YmN6aCB5bC+77yM5pm66IO96YGp6YWN5Lu75oSP57ay\n6aCBXG5cL1wvIEBkZXNjcmlwdGlvbjpwdC1CUiAgUMOhZ2luYXMgaW5maW5pdGFzIC0gdW0gcG9k\nZXJvc28gc2NyaXB0IGRlIHBhZ2luYcOnw6NvIGF1dG9tw6F0aWNhLiBDYXJyZWdhIGF1dG9tYXRp\nY2FtZW50ZSBhcyBwcsOzeGltYXMgcMOhZ2luYXMgZGEgd2ViIHBhZ2luYWRhcyBlIGFzIGluc2Vy\nZSBuYSBww6FnaW5hIGF0dWFsIHBhcmEgcm9sYWdlbSBpbmZpbml0YS4gU3Vwb3J0YSBtaWxoYXJl\ncyBkZSBzaXRlcyBzZW0gbmVuaHVtYSByZWdyYS5cblwvXC8gQGRlc2NyaXB0aW9uOmphICAgICBX\nZWLjg5rjg7zjgrjjgpLoh6rli5Xjgafoqq3jgb\/ovrzjgb\/ntpnjgY7otrPjgZfooajnpLrjgpLo\noYzjgYbjg5bjg6njgqbjgrbmi6HlvLXjgafjgZnjgIHmrKHjga7jg5rjg7zjgrjku5jjgZHjgZXj\ngozjgZ8gV2ViIOODmuODvOOCuOOBruiHquWLleiqreOBv+i+vOOBv+OBqOePvuWcqOOBruODmuOD\nvOOCuOOBuOOBruaMv+WFpSDjg6vjg7zjg6vjgarjgZfjgafkvZXljYPjgoLjga4gV2ViIOOCteOC\npOODiOOCkuOCteODneODvOODiOOBl+OBvuOBmeOAglxuXC9cLyBAZGVzY3JpcHRpb246a28gICAg\nIO2OmOydtOyngOqwgCDrp6Tqsqjsp4Qg64uk7J2MIOybuSDtjpjsnbTsp4Drpbwg7J6Q64+Z7Jy8\n66GcIOuhnOuTnO2VmOqzoCDtmITsnqwg7Y6Y7J207KeA7JeQIOyCveyehe2VqeuLiOuLpC4g6rec\n7LmZIOyXhuydtCDsiJjsspwg6rCc7J2YIOybuSDsgqzsnbTtirjrpbwg7KeA7JuQ7ZWp64uI64uk\nLlxuXC9cLyBAZGVzY3JpcHRpb246cnUgICAgINCQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutCw0Y8g\n0L\/QvtC00LPRgNGD0LfQutCwINGB0LvQtdC00YPRjtGJ0LjRhSDRgdGC0YDQsNC90LjRhiDQuCDQ\nstGB0YLQsNCy0LrQsCDQuNGFINGB0L7QtNC10YDQttC40LzQvtCz0L4g0LIg0YLQtdC60YPRidGD\n0Y4g0YHRgtGA0LDQvdC40YbRgy4g0J\/QvtC00LTQtdGA0LbQuNCy0LDQtdGCINGC0YvRgdGP0YfQ\nuCDRgdCw0LnRgtC+0LIg0LTQsNC20LUg0YEg0L3QsNGB0YLRgNC+0LnQutCw0LzQuCDQv9C+INGD\n0LzQvtC70YfQsNC90LjRji5cblwvXC8gQGRlc2NyaXB0aW9uOmRlICAgICBBdXRvbWF0aXNjaGVz\nIExhZGVuIGRlciBuw6RjaHN0ZW4gcGFnaW5pZXJ0ZW4gV2Vic2VpdGVuIHVuZCBFaW5mw7xnZW4g\naW4gZGllIGFrdHVlbGxlIFNlaXRlLiBVbnRlcnN0w7x0emVuIFNpZSBUYXVzZW5kZSB2b24gV2Vi\nc2l0ZXMgb2huZSBSZWdlbG4uXG5cL1wvIEBkZXNjcmlwdGlvbjplcyAgICAgQ2FyZ2EgYXV0b23D\noXRpY2EgZGUgbGFzIHNpZ3VpZW50ZXMgcMOhZ2luYXMgd2ViIHBhZ2luYWRhcyBlIGluc2VyY2nD\ns24gZW4gbGEgcMOhZ2luYSBhY3R1YWwuIEFkbWl0ZSBtaWxlcyBkZSBzaXRpb3Mgd2ViIHNpbiBu\naW5ndW5hIHJlZ2xhLlxuXC9cLyBAZGVzY3JpcHRpb246ZnIgICAgIENoYXJnZW1lbnQgYXV0b21h\ndGlxdWUgZGVzIHBhZ2VzIFdlYiBwYWdpbsOpZXMgc3VpdmFudGVzIGV0IGluc2VydGlvbiBkYW5z\nIGxhIHBhZ2UgZW4gY291cnMuIFByZW5kIGVuIGNoYXJnZSBkZXMgbWlsbGllcnMgZGUgc2l0ZXMg\nV2ViIHNhbnMgYXVjdW5lIHLDqGdsZS5cblwvXC8gQGRlc2NyaXB0aW9uOml0ICAgICBDYXJpY2Ft\nZW50byBhdXRvbWF0aWNvIGRlbGxlIHBhZ2luZSBXZWIgaW1wYWdpbmF0ZSBzdWNjZXNzaXZlIGUg\naW5zZXJpbWVudG8gbmVsbGEgcGFnaW5hIGNvcnJlbnRlLiBTdXBwb3J0YSBtaWdsaWFpYSBkaSBz\naXRpIHdlYiBzZW56YSBhbGN1bmEgcmVnb2xhLlxuXC9cLyBAZGVzY3JpcHRpb246aWQgICAgIFBl\nbmdhbWJpbGFuIG90b21hdGlzIGhhbGFtYW4gd2ViIHlhbmcgZGlwYWdpbmFzaSBiZXJpa3V0bnlh\nIGRhbiBwZW55aXNpcGFuIGtlIGhhbGFtYW4gc2FhdCBpbmkgdW50dWsgcGVuZ2d1bGlyYW4gdGFr\nIHRlcmJhdGFzLiBNZW5kdWt1bmcgcmlidWFuIHNpdHVzIHdlYiB0YW5wYSBhdHVyYW4gYXBhIHB1\nbi5cblwvXC8gQGRlc2NyaXB0aW9uOnRoICAgICDguJTguLbguIfguKvguJnguYnguLLguYDguKfg\nuYfguJrguYHguJrguJrguYHguJrguYjguIfguKvguJnguYnguLLguJbguLHguJTguYTguJvguYLg\nuJTguKLguK3guLHguJXguYLguJnguKHguLHguJXguLTguYHguKXguLDguYHguJfguKPguIHguKXg\nuIfguYPguJnguKvguJnguYnguLLguJvguLHguIjguIjguLjguJrguLHguJnguYDguJ7guLfguYjg\nuK3guYDguKXguLfguYjguK3guJnguYHguJrguJrguYTguKHguYjguKHguLXguJfguLXguYjguKrg\nuLTguYnguJnguKrguLjguJQg4Lij4Lit4LiH4Lij4Lix4Lia4LmA4Lin4LmH4Lia4LmE4LiL4LiV\n4LmM4Lir4Lil4Liy4Lii4Lie4Lix4LiZ4LmB4Lir4LmI4LiH4LmC4LiU4Lii4LmE4Lih4LmI4Lih\n4Li14LiB4LiO4LmA4LiB4LiT4LiR4LmM4LmD4LiU4LmGXG5cL1wvIEBkZXNjcmlwdGlvbjpuYiAg\nICAgSGVudGVyIGF1dG9tYXRpc2sgbmVzdGUgcGFnaW5lcnRlIG5ldHRzaWRlciBvZyBzZXR0ZXIg\naW5uIHDDpSBnamVsZGVuZGUgc2lkZSBmb3IgdWVuZGVsaWcgcnVsbGluZy4gU3TDuHR0IHR1c2Vu\ndmlzIGF2IG5ldHRzaWRlciB1dGVuIG5vZW4gcmVnZWwuXG5cL1wvIEBkZXNjcmlwdGlvbjpzdiAg\nICAgSMOkbXRhciBhdXRvbWF0aXNrdCBuw6RzdGEgcGFnaW5lcmFkZSB3ZWJic2lkb3Igb2NoIGlu\nZm9nYXIgcMOlIGFrdHVlbGwgc2lkYSBmw7ZyIG\/DpG5kbGlnIHJ1bGxuaW5nLiBTdMO2ZCB0dXNl\nbnRhbHMgd2ViYnBsYXRzZXIgdXRhbiBuw6VncmEgcmVnbGVyLlxuXC9cLyBAZGVzY3JpcHRpb246\nc3IgICAgINCQ0YPRgtC+0LzQsNGC0YHQutC+INC\/0YDQtdGD0LfQuNC80LDRmtC1INGB0LvQtdC0\n0LXRm9C40YUg0L\/QsNCz0LjQvdC40YDQsNC90LjRhSDQstC10LEg0YHRgtGA0LDQvdC40YbQsCDQ\nuCDRg9C80LXRgtCw0ZrQtSDRgyDRgtGA0LXQvdGD0YLQvdGDINGB0YLRgNCw0L3QuNGG0YMg0LfQ\nsCDQsdC10YHQutC+0L3QsNGH0L3QviDQv9C+0LzQtdGA0LDRmtC1LiDQn9C+0LTRgNC20LjRgtC1\nINGF0LjRmdCw0LTQtSDQstC10LEg0LvQvtC60LDRhtC40ZjQsCDQsdC10Lcg0LjQutCw0LrQstC+\n0LMg0L\/RgNCw0LLQuNC70LAuXG5cL1wvIEBkZXNjcmlwdGlvbjpzayAgICAgU2Ftb2Rlam5vIHBy\naWRvYml2YW5qZSBuYXNsZWRuamloIHBhZ2luaXJhbmloIHNwbGV0bmloIHN0cmFuaSBpbiB2c3Rh\ndmxqYW5qZSB2IHRyZW51dG5vIHN0cmFuIHphIG5lc2tvbsSNbm8gZHJzZW5qZS4gUG9kcHJpdGUg\nbmEgdGlzb8SNZSBzcGxldG5paCBtZXN0IGJyZXogcHJhdmlsLlxuXC9cLyBAZGVzY3JpcHRpb246\naHUgICAgIEEga8O2dmV0a2V6xZEgb2xkYWxzesOhbW96b3R0IHdlYm9sZGFsYWsgYXV0b21hdGlr\ndXMgbGVrw6lyw6lzZSDDqXMgYmVzesO6csOhc2EgYXogYWt0dcOhbGlzIG9sZGFscmEgYSB2w6ln\ndGVsZW4gZ8O2cmdldMOpcyDDqXJkZWvDqWJlbi4gVMO2YmIgZXplciB3ZWJoZWx5IHTDoW1vZ2F0\nw6FzYSBzemFiw6FseSBuw6lsa8O8bC5cblwvXC8gQGRlc2NyaXB0aW9uOnJvICAgICBQcmVsdWFy\nZSBhdXRvbWF0xIMgYSB1cm3Eg3RvYXJlbG9yIHBhZ2luaSB3ZWIgcGFnaW5hdGUgyJlpIGluc2Vy\nYXJlIMOubiBwYWdpbmEgY3VyZW50xIMgcGVudHJ1IGRlZmlsYXJlIGluZmluaXTEgy4gU3Vwb3J0\nxIMgbWlpIGRlIHNpdGUtdXJpIHdlYiBmxINyxIMgbmljaW8gcmVndWzEgy5cblwvXC8gQGRlc2Ny\naXB0aW9uOmZpICAgICBIYWtlZSBhdXRvbWFhdHRpc2VzdGkgc2V1cmFhdmF0IHNpdnV0ZXR1dCB2\nZXJra29zaXZ1dCBqYSBsaXPDpMOkbcOkbGzDpCBueWt5aXNlbGxlIHNpdnVsbGUgbG9wdXRvbnRh\nIHZpZXJpdHlzdMOkLiBUdWtlZSB0dWhhbnNpYSB3ZWItc2l2dXN0b2phIGlsbWFuIHPDpMOkbnTD\ntmrDpC5cblwvXC8gQGRlc2NyaXB0aW9uOmVsICAgICDOkc+Fz4TPjM68zrHPhM63IM6xzr3OrM66\nz4TOt8+DzrcgzrXPgM+MzrzOtc69z4nOvSDPg861zrvOuc60zr\/PgM6\/zrnOt868zq3Ovc+Jzr0g\nzrnPg8+Ezr\/Pg861zrvOr860z4nOvSDOus6xzrkgzrXOuc+DzrHOs8+JzrPOriDPg8+EzrfOvSDP\nhM+Bzq3Ph86\/z4XPg86xIM+DzrXOu86vzrTOsSDOs865zrEgzqzPgM61zrnPgc63IM66z43Ou865\nz4POty4gzqXPgM6\/z4PPhM63z4HOr86+z4TOtSDPh865zrvOuc6szrTOtc+CIM65z4PPhM6\/z4PO\ntc67zq\/OtM61z4Igz4fPic+Bzq\/PgiDOus6xzr3Orc69zrEgzrrOsc69z4zOvc6xLlxuXC9cLyBA\nZGVzY3JpcHRpb246ZW8gICAgIEHFrXRvbWF0ZSBhbHBvcnRhZG8gZGUgc2VrdmFqIHBhxJ1pZ2l0\nYWogcmV0cGHEnW9qIGthaiBlbm1ldGFkbyBlbiBudW5hbiBwYcSdb24gcG9yIHNlbmZpbmEgbW92\nby4gU3VidGVudSBtaWxvam4gZGEgcmV0ZWpvaiBzZW4gYWpuYSByZWd1bG8uXG5cL1wvIEBkZXNj\ncmlwdGlvbjpiZyAgICAg0JDQstGC0L7QvNCw0YLQuNGH0L3QviDQuNC30LLQu9C40YfQsNC90LUg\n0L3QsCDRgdC70LXQtNCy0LDRidC40YLQtSDRg9C10LEg0YHRgtGA0LDQvdC40YbQuCDRgSDQv9Cw\n0LPQuNC90LjRgNCw0L3QtSDQuCDQstC80YrQutCy0LDQvdC1INCyINGC0LXQutGD0YnQsNGC0LAg\n0YHRgtGA0LDQvdC40YbQsCDQt9CwINCx0LXQt9C60YDQsNC50L3QviDQv9GA0LXQstGK0YDRgtCw\n0L3QtS4g0J\/QvtC00LTRitGA0LbQsNC50YLQtSDRhdC40LvRj9C00Lgg0YPQtdCxINGB0LDQudGC\n0L7QstC1INCx0LXQtyDQvdC40LrQsNC60LLQuCDQv9GA0LDQstC40LvQsC5cblwvXC8gQGRlc2Ny\naXB0aW9uOmNzICAgICBBdXRvbWF0aWNrw6kgbmHEjcOtdMOhbsOtIGRhbMWhw61jaCBzdHLDoW5r\nb3ZhbsO9Y2ggd2Vib3bDvWNoIHN0csOhbmVrIGEgdmtsw6Fkw6Fuw60gZG8gYWt0dcOhbG7DrSBz\ndHLDoW5reSBwcm8gbmVrb25lxI1uw6kgcG9zb3V2w6Fuw60uIFBvZHBvcnVqdGUgdGlzw61jZSB3\nZWJvdsO9Y2ggc3Ryw6FuZWsgYmV6IGpha8O9Y2hrb2xpIHByYXZpZGVsLlxuXC9cLyBAZGVzY3Jp\ncHRpb246dmkgICAgIFThu7EgxJHhu5luZyB0w6xtIGPDoWMgdHJhbmcgd2ViIMSRxrDhu6NjIHBo\nw6JuIHRyYW5nIHRp4bq\/cCB0aGVvIHbDoCBjaMOobiB2w6BvIHRyYW5nIGhp4buHbiB04bqhaSDE\nkeG7gyBjdeG7mW4gdsO0IGjhuqFuLiBI4buXIHRy4bujIGjDoG5nIG5nw6BuIHRyYW5nIHdlYiBt\nw6Aga2jDtG5nIGPhuqduIGLhuqV0IGvhu7MgcXV5IHThuq9jIG7DoG8uXG5cL1wvIEBkZXNjcmlw\ndGlvbjpwbCAgICAgQXV0b21hdHljem5lIHBvYmllcmFuaWUga29sZWpueWNoIHN0cm9uIGludGVy\nbmV0b3d5Y2ggeiBwb2R6aWHFgmVtIG5hIHN0cm9ueSBpIHdzdGF3aWFuaWUgaWNoIGRvIGJpZcW8\nxIVjZWogc3Ryb255IHcgY2VsdSBuaWVza2\/FhGN6b25lZ28gcHJ6ZXdpamFuaWEuIE9ic8WCdWdh\nIHR5c2nEmWN5IHN0cm9uIGludGVybmV0b3d5Y2ggYmV6IMW8YWRuZWogcmVndcWCeS5cblwvXC8g\nQGRlc2NyaXB0aW9uOnVrICAgICDQkNCy0YLQvtC80LDRgtC40YfQvdC1INC+0YLRgNC40LzQsNC9\n0L3RjyDQvdCw0YHRgtGD0L\/QvdC40YUg0LLQtdCxLdGB0YLQvtGA0ZbQvdC+0Log0ZbQtyDRgNC+\n0LfQsdC40LLQutC+0Y4g0L3QsCDRgdGC0L7RgNGW0L3QutC4INGC0LAg0LLRgdGC0LDQstC60LAg\n0L3QsCDQv9C+0YLQvtGH0L3RgyDRgdGC0L7RgNGW0L3QutGDINC00LvRjyDQvdC10YHQutGW0L3R\nh9C10L3QvdC+0LPQviDQv9GA0L7QutGA0YPRh9GD0LLQsNC90L3Rjy4g0J\/RltC00YLRgNC40LzQ\nutCwINGC0LjRgdGP0Ycg0LLQtdCxLdGB0LDQudGC0ZbQsiDQsdC10Lcg0LHRg9C00Ywt0Y\/QutC4\n0YUg0L\/RgNCw0LLQuNC7LlxuXC9cLyBAZGVzY3JpcHRpb246dHIgICAgIFNvbnJha2kgc2F5ZmFs\nxLEgd2ViIHNheWZhbGFyxLFuxLEgb3RvbWF0aWsgb2xhcmFrIGdldGlybWUgdmUgc29uc3V6IGth\neWTEsXJtYSBpw6dpbiBnZcOnZXJsaSBzYXlmYXlhIGVrbGVtZS4gSGnDp2JpciBrdXJhbCBvbG1h\nZGFuIGJpbmxlcmNlIHdlYiBzaXRlc2luaSBkZXN0ZWtsZXlpbi5cblwvXC8gQGRlc2NyaXB0aW9u\nOm5sICAgICBBdXRvbWF0aXNjaCBvcGhhbGVuIHZhbiB2b2xnZW5kZSBnZXBhZ2luZWVyZGUgd2Vi\ncGFnaW5hJ3MgZW4gaW52b2VnZW4gaW4gaHVpZGlnZSBwYWdpbmEgdm9vciBvbmVpbmRpZyBzY3Jv\nbGxlbi4gT25kZXJzdGV1biBkdWl6ZW5kZW4gd2Vic2l0ZXMgem9uZGVyIGVuaWdlIHJlZ2VsLlxu\nXC9cLyBAZGVzY3JpcHRpb246ZGEgICAgIEF1dG9tYXRpc2sgaGVudG5pbmcgYWYgbsOmc3RlIHBh\nZ2luZXJlZGUgd2Vic2lkZXIgb2cgaW5kc8OmdHRlbHNlIHDDpSBudXbDpnJlbmRlIHNpZGUgZm9y\nIHVlbmRlbGlnIHJ1bG5pbmcuIFN0w7h0IHR1c2luZHZpcyBhZiB3ZWJzdGVkZXIgdWRlbiBub2dl\nbiByZWdsZXIuXG5cL1wvIEBkZXNjcmlwdGlvbjpmci1DQSAgUsOpY3Vww6lyYXRpb24gYXV0b21h\ndGlxdWUgZGVzIHBhZ2VzIFdlYiBwYWdpbsOpZXMgc3VpdmFudGVzIGV0IGluc2VydGlvbiBkYW5z\nIGxhIHBhZ2UgYWN0dWVsbGUgcG91ciB1biBkw6lmaWxlbWVudCBpbmZpbmkuIFByaXNlIGVuIGNo\nYXJnZSBkZSBtaWxsaWVycyBkZSBzaXRlcyBXZWIgc2FucyBhdWN1bmUgcsOoZ2xlLlxuXC9cLyBA\nYXV0aG9yICAgICAgIGhvb3RoaW5cblwvXC8gQGxpY2Vuc2UgICAgICBNUEwtMi4wXG5cL1wvIEBt\nYXRjaCAgICAgICAgKjpcL1wvKlwvKlxuXC9cLyBAaWNvbiAgICAgICAgIGRhdGE6aW1hZ2VcL3Bu\nZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUVBQUFBQkFDQU1BQUFDZHQ0SHNBQUFB\nZFZCTVZFVUFBQUQzVlUzM1ZVMzJWRXo4VTA3M1ZVMzJWVTMzVlUzMlZVejBVa1wvM1ZFMzJWVTMy\nVlV6MlZVMzJWVTMyVlUzMlZVMzNWVTMzVTB6MlZVMzRXa3YzVkUzMlZVelwvbXBqXC9uSmoyVlV6\nMlZVMzJWRTMzVkV6MlZVMzJWVTMyVlV6M1ZFMzJWRXozVkUzXC9tWmYyVmt6MlZVM1wvbXBpbEZG\nb2xBQUFBSlhSU1RsTUEzTHBcL0d2VEJUNVlRTHVhd1pcL0RPeVp3bFBRZUtjMjFOMDQrRlgxYnFw\nbTlETm9CNFQ2OGVQd0FBQWl0SlJFRlVXTVB0MXR1YXNpQVVCdUNGQ0c1UnMzUXliVFBWMVwvMWY0\ndlwvM1BEa3lJb2puOHg1cUJySStsdEFmaDMyXC95eXNtQkt2eVhiK25qYjZiREw5a3pUZDVTempE\nQXNZVDhuRm9HU3hZZTZCVnFvTkRwMmpGRGl0MjVCUmdWVUFPREI0WVdjRVRXVlR3Vk5HaUdONWlX\ndEJnZzRZTUNwc29JMzhkTnVubW1XeXhVVHZiUHd3YnNZUjBmSXpaTFEwcFRHOGVpZVJtQkxNbXBk\nSDl1aW1RRWY2VE5SblhYS0xaSGl4cEp0eXdMek9nTUh0RkNxZE02NERhaEhSbk9FMWRzcmVrbTl3\ncjJXdExjQWxwZEh3Y3AxcEFKeVNYWW5FUmNsenA0K3YxOWpYZG1jVHZRVUp0eitaYUk0aTA1XC9W\nXC9VR1lyQ3hiYUFzT1lvTmZJS0VReHBxUXV6Q2dKSkpcLzNmNDJPOHl3RVp1TVZXaVwvOGhPRHhH\najNHVzJiMHVka2JHVUxMRE9qaW1BRzBTM2ZMR2xCblhRTTlpckcxQ2lRZFZRaTBkcVFzT1NEbHlF\nRXo3Vnk5T3h4ZlI3MVZDWHNTQjIzak1yS0pZWlhTanc1N3NxZ0xuNVowd29sc09DejBSeUpreWVZ\namd6N3B3d1ZxMjBlYm9ad3RWVWwyRW5ONWdKNTBkUVpGZHJ5QVR2QUJSVHJcL3RKWGtVTWRhQUs1\ncHd0Q2Fwd3RGTHNrZ3V3dXlNaFwvU2Q5V0NoUTRzSXZJVVlTazNQWXFRdkNRbE9DMDRJZk43UGtk\nak95UktXaGRLWE1taUFGdDlpM3NKNWp4b1J1UjB2cUFnaHh4d0h1cWZRRTVPSEdES09yd0VucXMx\nRGdBWjJlNEVldjFkNDVUTjdKZmhyUUxLZ2Z3TUZZQXN2cDMzZFhJSTA3M2FWUUxJMmdONVM1OGxm\nbUduS0tGdGFoN25rZ25CWkI3emxQN1lcL1FOaVRNNnNZTnphd3dBQUFBQkpSVTVFcmtKZ2dnPT1c\nblwvXC8gQGdyYW50ICAgICAgICBHTV94bWxodHRwUmVxdWVzdFxuXC9cLyBAZ3JhbnQgICAgICAg\nIEdNX3JlZ2lzdGVyTWVudUNvbW1hbmRcblwvXC8gQGdyYW50ICAgICAgICBHTV9ub3RpZmljYXRp\nb25cblwvXC8gQGdyYW50ICAgICAgICBHTV9nZXRWYWx1ZVxuXC9cLyBAZ3JhbnQgICAgICAgIEdN\nX3NldFZhbHVlXG5cL1wvIEBncmFudCAgICAgICAgR01fYWRkU3R5bGVcblwvXC8gQGdyYW50ICAg\nICAgICBHTV9vcGVuSW5UYWJcblwvXC8gQGdyYW50ICAgICAgICBHTV9kZWxldGVWYWx1ZVxuXC9c\nLyBAZ3JhbnQgICAgICAgIEdNX2luZm9cblwvXC8gQGdyYW50ICAgICAgICBHTV9zZXRDbGlwYm9h\ncmRcblwvXC8gQGdyYW50ICAgICAgICBHTS54bWxIdHRwUmVxdWVzdFxuXC9cLyBAZ3JhbnQgICAg\nICAgIEdNLnJlZ2lzdGVyTWVudUNvbW1hbmRcblwvXC8gQGdyYW50ICAgICAgICBHTS5ub3RpZmlj\nYXRpb25cblwvXC8gQGdyYW50ICAgICAgICBHTS5nZXRWYWx1ZVxuXC9cLyBAZ3JhbnQgICAgICAg\nIEdNLnNldFZhbHVlXG5cL1wvIEBncmFudCAgICAgICAgR00uYWRkU3R5bGVcblwvXC8gQGdyYW50\nICAgICAgICBHTS5vcGVuSW5UYWJcblwvXC8gQGdyYW50ICAgICAgICBHTS5kZWxldGVWYWx1ZVxu\nXC9cLyBAZ3JhbnQgICAgICAgIEdNLmluZm9cblwvXC8gQGdyYW50ICAgICAgICBHTS5zZXRDbGlw\nYm9hcmRcblwvXC8gQGhvbWVwYWdlICAgICBodHRwczpcL1wvZ2l0aHViLmNvbVwvaG9vdGhpblwv\nVXNlclNjcmlwdHNcL3RyZWVcL21hc3RlclwvUGFnZXR1YWxcblwvXC8gQHN1cHBvcnRVUkwgICBo\ndHRwczpcL1wvZ2l0aHViLmNvbVwvaG9vdGhpblwvVXNlclNjcmlwdHNcL2lzc3Vlc1xuXC9cLyBA\nY29ubmVjdCAgICAgIHdlZGF0YS5uZXRcblwvXC8gQGNvbm5lY3QgICAgICBnaXRodWJ1c2VyY29u\ndGVudC5jb21cblwvXC8gQGNvbm5lY3QgICAgICBnaHByb3h5LmNvbVxuXC9cLyBAY29ubmVjdCAg\nICAgIGdocC5jaVxuXC9cLyBAY29ubmVjdCAgICAgIGhvb3RoaW4uZ2l0aHViLmlvXG5cL1wvIEBy\ndW4tYXQgICAgICAgZG9jdW1lbnQtZW5kXG5cL1wvIEBjb25uZWN0ICAgICAgKlxuXC9cLyBAY29u\ndHJpYnV0aW9uVVJMICAgICAgaHR0cHM6XC9cL2tvLWZpLmNvbVwvaG9vdGhpblxuXC9cLyBAY29u\ndHJpYnV0aW9uQW1vdW50ICAgMVxuXC9cLyBAZG93bmxvYWRVUkwgaHR0cHM6XC9cL3VwZGF0ZS5n\ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDM4Njg0XC9QYWdldHVhbC51c2VyLmpzXG5cL1wvIEB1\ncGRhdGVVUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDM4Njg0\nXC9QYWdldHVhbC5tZXRhLmpzXG5cL1wvID09XC9Vc2VyU2NyaXB0PT1cblxuKGZ1bmN0aW9uKCkg\ne1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICBjb25zdCBwYXVzZVZpZGVvID0gKCkgPT4ge1xuICAg\nICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbChkb2N1\nbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidmlkZW9cIiksIHZpZGVvID0+IHtcbiAgICAgICAgICAg\nICAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUgJiYgdmlkZW8ucmVtb3ZlQXR0cmlidXRlKFwiYXV0\nb3BsYXlcIik7XG4gICAgICAgICAgICAgICAgdmlkZW8ucGF1c2UgJiYgdmlkZW8ucGF1c2UoKTtc\nbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICB9O1xuICAgIGlmICh3aW5k\nb3cubmFtZSA9PT0gJ3BhZ2V0dWFsLWlmcmFtZScgfHwgKHdpbmRvdy5mcmFtZUVsZW1lbnQgJiYg\nd2luZG93LmZyYW1lRWxlbWVudC5uYW1lID09PSAncGFnZXR1YWwtaWZyYW1lJykpIHtcbiAgICAg\nICAgW10uZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJpZnJhbWVcIiks\nIGlmcmFtZSA9PiB7XG4gICAgICAgICAgICBpZnJhbWUubmFtZSA9ICdwYWdldHVhbC1pZnJhbWUn\nO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGRvbWxvYWRlZCA9IGZ1bmN0aW9uKCkge1xuICAg\nICAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSgncGFnZXR1YWwtaWZyYW1lOkRPTUxv\nYWRlZCcsICcqJyk7XG4gICAgICAgIH07XG4gICAgICAgIGlmICh3aW5kb3cub3BlcmEpIHtcbiAg\nICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBk\nb21sb2FkZWQsIGZhbHNlKTtcbiAgICAgICAgICAgIHBhdXNlVmlkZW8oKTtcbiAgICAgICAgfSBl\nbHNlIHtcbiAgICAgICAgICAgIGRvbWxvYWRlZCgpO1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50\nLnJlYWR5c3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgICBwYXVzZVZpZGVv\nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVu\ndExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwYXVzZVZpZGVv\nKCk7XG4gICAgICAgICAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9\nXG4gICAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCku\nZGlzcGxheSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l\nbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvY3Vt\nZW50LmJvZHkgJiYgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5kaXNwbGF5ID09PSAn\nbm9uZScpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuZGlzcGxheSA9ICdibG9j\nayc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh3aW5kb3cu\ndG9wICE9PSB3aW5kb3cuc2VsZikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHdp\nbmRvdy5zZWxmLmlubmVyV2lkdGggPCAzMDAgfHwgd2luZG93LnNlbGYuaW5uZXJIZWlnaHQgPCAz\nMDApIHtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LnRvcC5sb2NhdGlvbi5vcmlnaW4gIT09\nIHdpbmRvdy5zZWxmLmxvY2F0aW9uLm9yaWdpbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1\ncm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoKGUp\nIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5v\nUnVsZVRlc3QgPSBmYWxzZTtcbiAgICBjb25zdCBsYW5nID0gbmF2aWdhdG9yLmFwcE5hbWUgPT09\nIFwiTmV0c2NhcGVcIiA\/IG5hdmlnYXRvci5sYW5ndWFnZSA6IG5hdmlnYXRvci51c2VyTGFuZ3Vh\nZ2U7XG4gICAgY29uc3QgbGFuZ0RhdGEgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwvXC8g\nRW5nbGlzaCB0cmFuc2xhdGlvbiB1cGRhdGUgYnkgZ2l0aHViLmNvbVwvaHR0cHM0MzMsIGFkbWlu\nQGFiYnkwNjY2Lnh5ei5cbiAgICAgICAgICAgIG5hbWU6IFwiRW5nbGlzaFwiLFxuICAgICAgICAg\nICAgbWF0Y2g6IFtcImVuXCJdLFxuICAgICAgICAgICAgbGFuZzoge1xuICAgICAgICAgICAgICAg\nIGVuYWJsZURlYnVnOiBcIkVuYWJsZSBkZWJ1ZyBvdXRwdXQgdG8gY29uc29sZVwiLFxuICAgICAg\nICAgICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogXCJOb3RpZmljYXRpb24gYWZ0ZXIgcnVsZXMg\ndXBkYXRlZFwiLFxuICAgICAgICAgICAgICAgIGRpc2FibGU6IFwiVGVtcG9yYXJpbHkgZGlzYWJs\nZVwiLFxuICAgICAgICAgICAgICAgIGRpc2FibGVTaXRlOiBcIlRvZ2dsZSBkaXNhYmxlZCBzdGF0\nZVwiLFxuICAgICAgICAgICAgICAgIGRpc2FibGVTaXRlVGlwczogXCJEaXNhYmxlZCBvbiB0aGlz\nIHNpdGUuXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlU2l0ZVRpcHM6IFwiRW5hYmxlZCBvbiB0\naGlzIHNpdGUuXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlOiBcIuKchUVuYWJsZSBhdXRvbWF0\naWMgcGFnZSB0dXJuaW5nXCIsXG4gICAgICAgICAgICAgICAgdGVtcEFjdGl2ZTogXCJUZW1wb3Jh\ncmlseSBhY3RpdmVcIixcbiAgICAgICAgICAgICAgICB0b1RvcDogXCJCYWNrIHRvIFRvcC5cIixc\nbiAgICAgICAgICAgICAgICB0b0JvdHRvbTogXCJHbyB0byBCb3R0b20uXCIsXG4gICAgICAgICAg\nICAgICAgY3VycmVudDogXCJDdXJyZW50IFBhZ2UuXCIsXG4gICAgICAgICAgICAgICAgZm9yY2VJ\nZnJhbWU6IFwiRm9yY2UgdG8gam9pbiBuZXh0IHBhZ2VcIixcbiAgICAgICAgICAgICAgICBjYW5j\nZWxGb3JjZUlmcmFtZTogXCJDYW5jZWwgRm9yY2Ugam9pblwiLFxuICAgICAgICAgICAgICAgIGNv\nbmZpZ3VyZTogXCJDb25maWd1cmUgUGFnZXR1YWxcIixcbiAgICAgICAgICAgICAgICBmaXJzdFVw\nZGF0ZTogXCJDbGljayBoZXJlIHRvIGluaXRpYWxpemUgdGhlIGRlZmF1bHQgcnVsZSBsaXN0XCIs\nXG4gICAgICAgICAgICAgICAgdXBkYXRlOiBcIlVwZGF0ZSBvbmxpbmUgcnVsZXNcIixcbiAgICAg\nICAgICAgICAgICBjbGljazJ1cGRhdGU6IFwiQ2xpY2sgdG8gdXBkYXRlIHJ1bGVzIGZyb20gdXJs\nIG5vd1wiLFxuICAgICAgICAgICAgICAgIGxvYWROb3c6IFwiTG9hZCBuZXh0IGF1dG9tYXRpY2Fs\nbHlcIixcbiAgICAgICAgICAgICAgICBsb2FkQ29uZmlybTogXCJIb3cgbWFueSBwYWdlcyBkbyB5\nb3Ugd2FudCB0byBsb2FkPyAoMCBtZWFucyBpbmZpbml0ZSlcIixcbiAgICAgICAgICAgICAgICBu\nb05leHQ6IFwiTm8gbmV4dCBsaW5rIGZvdW5kLCBwbGVhc2UgY3JlYXRlIGEgbmV3IHJ1bGVcIixc\nbiAgICAgICAgICAgICAgICBwYXNzU2VjOiBcIlVwZGF0ZWQgI3QjIHNlY29uZHMgYWdvXCIsXG4g\nICAgICAgICAgICAgICAgcGFzc01pbjogXCJVcGRhdGVkICN0IyBtaW51dGVzIGFnb1wiLFxuICAg\nICAgICAgICAgICAgIHBhc3NIb3VyOiBcIlVwZGF0ZWQgI3QjIGhvdXJzIGFnb1wiLFxuICAgICAg\nICAgICAgICAgIHBhc3NEYXk6IFwiVXBkYXRlZCAjdCMgZGF5cyBhZ29cIixcbiAgICAgICAgICAg\nICAgICBjYW50RGVsOiBcIkNhbid0IGRlbGV0ZSBidWlsdGluIHJ1bGVzXCIsXG4gICAgICAgICAg\nICAgICAgY29uZmlybURlbDogXCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMg\ncnVsZT9cIixcbiAgICAgICAgICAgICAgICB1cGRhdGVTdWNjOiBcIlVwZGF0ZSBzdWNjZWVkZWRc\nIixcbiAgICAgICAgICAgICAgICBiZWdpblVwZGF0ZTogXCJCZWdpbiB1cGRhdGUsIHdhaXQgYSBt\nb21lbnQgcGxlYXNlXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tVXJsczogXCJJbXBvcnQgUGFn\nZXR1YWwgb3IgQXV0b1BhZ2VyaXplIHJ1bGUgdXJsLCBvbmUgdXJsIHBlciBsaW5lLlwiLFxuICAg\nICAgICAgICAgICAgIGN1c3RvbVJ1bGVzOiBcIklucHV0IGN1c3RvbSBydWxlcy4gPGEgaHJlZj0n\nI3QjJz7inI3vuI9Db250cmlidXRlIHJ1bGVzPFwvYT5cIixcbiAgICAgICAgICAgICAgICBzYXZl\nOiBcIlNhdmVcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dDogXCJTaG9qbyBOb3cgTG9h\nZGluZy4uLlwiLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IFwiT3BhY2l0eVwiLFxuICAgICAg\nICAgICAgICAgIG9wYWNpdHlQbGFjZWhvbGRlcjogXCIwOiBoaWRlIHNwYWNlclwiLFxuICAgICAg\nICAgICAgICAgIGhpZGVCYXI6IFwiSGlkZSB0aGUgcGFnbmF0aW9uIHNwYWNlclwiLFxuICAgICAg\nICAgICAgICAgIGhpZGVCYXJCdXROb1N0b3A6IFwiSGlkZSBidXQgbm90IHN0b3BcIixcbiAgICAg\nICAgICAgICAgICBkYkNsaWNrMlN0b3A6IFwiRG91YmxlLWNsaWNrIG9uIHRoZSBibGFuayBzcGFj\nZSB0byBwYXVzZVwiLFxuICAgICAgICAgICAgICAgIHNvcnRUaXRsZTogXCJTb3J0aW5nIHRha2Vz\nIGVmZmVjdCBhZnRlciB0aGUgbmV4dCBydWxlIHVwZGF0ZVwiLFxuICAgICAgICAgICAgICAgIGF1\ndG9SdW46IFwiQXV0byBlbmFibGUgKGJsYWNrbGlzdCBtb2RlKVwiLFxuICAgICAgICAgICAgICAg\nIGF1dG9Mb2FkTnVtOiBcIkFtb3VudCBmb3IgcHJlbG9hZCBwYWdlc1wiLFxuICAgICAgICAgICAg\nICAgIHR1cm5SYXRlOiBcIlR1cm4gdGhlIG5leHQgcGFnZSB3aGVuIGl0J3MgbGVzcyB0aGFuIOOA\nkFjjgJEgdGltZXMgcGFnZSBoZWlnaHQgZnJvbSB0aGUgZm9vdGVyXCIsXG4gICAgICAgICAgICAg\nICAgaW5wdXRQYWdlTnVtOiBcIkVudGVyIHBhZ2UgbnVtYmVyIHRvIGp1bXBcIixcbiAgICAgICAg\nICAgICAgICBlbmFibGVIaXN0b3J5OiBcIldyaXRlIGJyb3dzaW5nIGhpc3RvcnkgYWZ0ZXIgcGFn\nZSB0dXJuaW5nXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlSGlzdG9yeUFmdGVySW5zZXJ0OiBc\nIldyaXRlIGJyb3dzaW5nIGhpc3RvcnkgaW1tZWRpYXRlbHkgYWZ0ZXIgc3BsaWNpbmcsIG90aGVy\nd2lzZSB3cml0ZSBhZnRlciBicm93c2luZ1wiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRWaXNp\nYmlsaXR5OiBcIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGNvbnRlbnQtdmlzaWJpbGl0eSB0byBpbXBy\nb3ZlIHJlbmRlcmluZyBwZXJmb3JtYW5jZVwiLFxuICAgICAgICAgICAgICAgIGluaXRSdW46IFwi\nVHVybiBwYWdlcyBpbW1lZGlhdGVseSBhZnRlciBvcGVuaW5nXCIsXG4gICAgICAgICAgICAgICAg\ncHJlbG9hZDogXCJQcmVsb2FkIG5leHQgcGFnZSBmb3Igc3BlZWRpbmcgdXBcIixcbiAgICAgICAg\nICAgICAgICBjbGljazJJbXBvcnRSdWxlOiBcIkNsaWNrIHRvIGltcG9ydCBiYXNlIHJ1bGVzIGxp\nbmssIGFuZCB0aGVuIHdhaXQgdW50aWwgdGhlIHVwZGF0ZSBpcyBjb21wbGV0ZTogXCIsXG4gICAg\nICAgICAgICAgICAgZm9yY2VBbGxCb2R5OiBcIkpvaW4gZnVsbCBib2R5IG9mIHBhZ2U\/XCIsXG4g\nICAgICAgICAgICAgICAgb3BlbkluTmV3VGFiOiBcIk9wZW4gdXJscyBvZiBhZGRpdGlvbnMgaW4g\nbmV3IHRhYlwiLFxuICAgICAgICAgICAgICAgIGltcG9ydFN1Y2M6IFwiSW1wb3J0IGNvbXBsZXRl\nXCIsXG4gICAgICAgICAgICAgICAgaW1wb3J0OiBcIkltcG9ydFwiLFxuICAgICAgICAgICAgICAg\nIGVkaXRDdXJyZW50OiBcIkVkaXQgcnVsZSBmb3IgY3VycmVudCB3ZWJzaXRlXCIsXG4gICAgICAg\nICAgICAgICAgZWRpdEJsYWNrbGlzdDogXCJFZGl0IHRoZSB1cmwgYmxhY2tsaXN0LCBvbmUgZW50\ncnkgcGVyIGxpbmUsIFN1cHBvcnRzIFs\/LCpdIHdpbGRjYXJkaW5nLlwiLFxuICAgICAgICAgICAg\nICAgIHVwQnRuSW1nOiBcIkljb24gb2YgYmFjayB0byB0b3BcIixcbiAgICAgICAgICAgICAgICBk\nb3duQnRuSW1nOiBcIkljb24gb2YgZ28gdG8gZm9vdGVyXCIsXG4gICAgICAgICAgICAgICAgc2lk\nZUNvbnRyb2xsZXJJY29uOiBcIkljb24gb2Ygc2lkZWJhclwiLFxuICAgICAgICAgICAgICAgIGxv\nYWRpbmdUZXh0VGl0bGU6IFwiTG9hZGluZ1wiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3Rv\ncEN0cmw6IFwiQ3RybCBrZXlcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BBbHQ6IFwi\nQWx0IGtleVwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcFNoaWZ0OiBcIlNoaWZ0IGtl\neVwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcE1ldGE6IFwiTWV0YSBrZXlcIixcbiAg\nICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BLZXk6IFwiU2hvcnRjdXQga2V5XCIsXG4gICAgICAg\nICAgICAgICAgcGFnZUVsZW1lbnRDc3M6IFwiQ3VzdG9tIHN0eWxlIGZvciBtYWluIHBhZ2UgZWxl\nbWVudHNcIixcbiAgICAgICAgICAgICAgICBjdXN0b21Dc3M6IFwiQ3VzdG9tIGNvbXBsZXRlIGNz\nc1wiLFxuICAgICAgICAgICAgICAgIGZpcnN0QWxlcnQ6IFwiWW91IGhhdmUgbm90IGltcG9ydGVk\nIHRoZSBiYXNlIHJ1bGUsIHBsZWFzZSBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIHJ1bGUgdG8gaW1w\nb3J0XCIsXG4gICAgICAgICAgICAgICAgcGlja2VyOiBcIlBhZ2V0dWFsIGVsZW1lbnQgcGlja2Vy\nXCIsXG4gICAgICAgICAgICAgICAgY2xvc2VQaWNrZXI6IFwiQ2xvc2UgUGFnZXR1YWwgcGlja2Vy\nXCIsXG4gICAgICAgICAgICAgICAgcGlja2VyUGxhY2Vob2xkZXI6IFwiRWxlbWVudCBzZWxlY3Rv\nciwgKEFkdmFuY2VkIHVzZXJzIG9ubHksIGxlYXZlIGJsYW5rIG90aGVyd2lzZSlcIixcbiAgICAg\nICAgICAgICAgICBwaWNrZXJDaGVjazogXCJDaGVjayBzZWxlY3RvciBhbmQgY29weVwiLFxuICAg\nICAgICAgICAgICAgIHN3aXRjaFNlbGVjdG9yOiBcIkNsaWNrIHRvIHN3aXRjaCBlbGVtZW50XCIs\nXG4gICAgICAgICAgICAgICAgZ290b0VkaXQ6IFwiR28gdG8gZWRpdCBydWxlIHdpdGggY3VycmVu\ndCBzZWxlY3RvclwiLFxuICAgICAgICAgICAgICAgIG1hbnVhbE1vZGU6IFwiRGlzYWJsZSBzcGxp\nY2luZywgbWFudWFsbHkgYWR2YW5jZSBuZXh0IHBhZ2UgdXNpbmcgdGhlIHJpZ2h0IGFycm93IGtl\neSAob3IgZGlzcGF0Y2ggZXZlbnQgJ3BhZ2V0dWFsLm5leHQnKVwiLFxuICAgICAgICAgICAgICAg\nIGNsaWNrTW9kZTogXCJEaXNhYmxlIHNwbGljaW5nLCBhdXRvbWF0aWNhbGx5IGNsaWNrIHRoZSBu\nZXh0IHBhZ2Ugd2hlbiBzY3JvbGxpbmcgdG8gdGhlIGVuZCBvZiB0aGUgcGFnZVwiLFxuICAgICAg\nICAgICAgICAgIHBhZ2VCYXJNZW51OiBcIkNsaWNrIHRoZSBjZW50ZXIgb2YgdGhlIHBhZ2UgYmFy\nIHRvIG9wZW4gdGhlIHBpY2tlciBtZW51XCIsXG4gICAgICAgICAgICAgICAgbmV4dFN3aXRjaDog\nXCJTd2l0Y2ggbmV4dCBsaW5rXCIsXG4gICAgICAgICAgICAgICAgYXJyb3dUb1Njcm9sbDogXCJQ\ncmVzcyBsZWZ0IGFycm93IHRvIHNjcm9sbCBiYWNrIGFuZCByaWdodCBhcnJvdyB0byBhZHZhbmNl\nIHBhZ2VcIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlcjogXCJEaXNwbGF5IHRoZSBw\nYWdpbmcgY29udHJvbCBiYXIgaW4gdGhlIHNpZGViYXJcIixcbiAgICAgICAgICAgICAgICBzaWRl\nQ29udHJvbGxlclNjcm9sbDogXCJTY3JvbGwgdG9nZ2xlXCIsXG4gICAgICAgICAgICAgICAgc2lk\nZUNvbnRyb2xsZXJBbHdheXM6IFwiQWx3YXlzIHNob3dcIixcbiAgICAgICAgICAgICAgICBoaWRl\nTG9hZGluZ0ljb246IFwiSGlkZSBsb2FkaW5nIGFuaW1hdGlvblwiLFxuICAgICAgICAgICAgICAg\nIGhpZGVCYXJBcnJvdzogXCJIaWRlIGFycm93IGZvciBwYWdlIGJhclwiLFxuICAgICAgICAgICAg\nICAgIGR1cGxpY2F0ZTogXCJEdXBsaWNhdGUgUGFnZXR1YWwgaGF2ZSBiZWVuIGluc3RhbGxlZCwg\nY2hlY2sgeW91ciBzY3JpcHQgbWFuYWdlciFcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRl\nSWZyYW1lOiBcIkVtYmVkIGZ1bGwgcGFnZSBhcyBpZnJhbWVcIixcbiAgICAgICAgICAgICAgICBm\nb3JjZVN0YXRlRHluYW1pYzogXCJMb2FkIGR5bmFtaWMgY29udGVudCB2aWEgaWZyYW1lXCIsXG4g\nICAgICAgICAgICAgICAgZm9yY2VTdGF0ZURpc2FibGU6IFwiRGlzYWJsZSBwYWdlIHR1cm5pbmcg\nb24gdGhpcyBzaXRlXCIsXG4gICAgICAgICAgICAgICAgYXV0b1Njcm9sbFJhdGU6IFwiU2Nyb2xs\nIHNwZWVkICgxfjEwMDApXCIsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUF1dG9TY3JvbGw6IFwi\nU3RvcCBBdXRvIFNjcm9sbFwiLFxuICAgICAgICAgICAgICAgIGVuYWJsZUF1dG9TY3JvbGw6IFwi\nRW5hYmxlIEF1dG8gU2Nyb2xsXCIsXG4gICAgICAgICAgICAgICAgdG9nZ2xlQXV0b1Njcm9sbDog\nXCJUb2dnbGUgQXV0byBTY3JvbGxcIixcbiAgICAgICAgICAgICAgICBydWxlUmVxdWVzdDogXCJS\ndWxlIFJlcXVlc3RcIixcbiAgICAgICAgICAgICAgICBwYWdlOiBcIlBhZ2UgXCIsXG4gICAgICAg\nICAgICAgICAgcHJldlBhZ2U6IFwiUHJldiBwYWdlXCIsXG4gICAgICAgICAgICAgICAgbmV4dFBh\nZ2U6IFwiTmV4dCBwYWdlXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JSdWxlc011c3RCZUFycmF5\nOiBcIlJ1bGVzIG11c3QgYmUgYW4gQXJyYXkhXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JKc29u\nOiBcIkpTT04gZXJyb3IsIENoZWNrIGFnYWluIVwiLFxuICAgICAgICAgICAgICAgIGVkaXRTdWNj\nZXNzOiBcIkVkaXQgc3VjY2Vzc2Z1bGx5XCIsXG4gICAgICAgICAgICAgICAgZXJyb3JXcm9uZ1Vy\nbDogXCJXcm9uZyB1cmwsIENoZWNrIGFnYWluIVwiLFxuICAgICAgICAgICAgICAgIGVycm9yQWxy\nZWFkeUV4aXN0czogXCJBIHJ1bGUgYWxyZWFkeSBleGlzdHMhXCIsXG4gICAgICAgICAgICAgICAg\nc2V0dGluZ3NTYXZlZDogXCJUaGUgc2V0dGluZ3MgYXJlIHNhdmVkLCByZWZyZXNoIHRvIHZpZXdc\nIixcbiAgICAgICAgICAgICAgICBpZnJhbWU6IFwiRm9yY2VkIHNwbGl0IGJ5IGlmcmFtZVwiLFxu\nICAgICAgICAgICAgICAgIGR5bmFtaWM6IFwiRHluYW1pYyBsb2FkaW5nXCIsXG4gICAgICAgICAg\nICAgICAgcmVsb2FkUGFnZTogXCJFZGl0IGNvbXBsZXRlZCwgcmVsb2FkIG5vdz9cIixcbiAgICAg\nICAgICAgICAgICBjb3BpZWQ6IFwiQ29waWVkXCIsXG4gICAgICAgICAgICAgICAgbm9WYWxpZENv\nbnRlbnQ6IFwiTm8gdmFsaWQgY29udGVudCBkZXRlY3RlZCwgYSBDYXB0Y2hhIG1heSBiZSBwcmVz\nZW50XCIsXG4gICAgICAgICAgICAgICAgb3V0T2ZEYXRlOiBcIlRoZSBzY3JpcHQgaXMgb3V0ZGF0\nZWQsIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZlcnNpb24gcGxlYXNlLlwiLFxuICAgICAgICAgICAg\nICAgIGhpZGVCYXJUaXBzOiBcIkhpZGUgdGhlIHBhZ2luYXRpb24gYmFyLCB0b2dnbGUgaW1tZXJz\naXZlIGV4cGVyaWVuY2VcIixcbiAgICAgICAgICAgICAgICBzZXRDb25maWdQYWdlOiBcIlNldCBj\ndXJyZW50IHBhZ2UgYXMgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBwYWdlXCIsXG4gICAgICAg\nICAgICAgICAgd2VkYXRhMmdpdGh1YjogXCJDaGFuZ2UgdGhlIHdlZGF0YSBhZGRyZXNzIHRvIHRo\nZSBtaXJyb3IgYWRkcmVzcyBpbiB0aGUgZ2l0aHViIHJlcG9zaXRvcnlcIixcbiAgICAgICAgICAg\nICAgICBhZGRPdGhlclByb3A6IFwiQWRkIHJ1bGUgcHJvcGVydGllc1wiLFxuICAgICAgICAgICAg\nICAgIGFkZE5leHRTZWxlY3RvcjogXCJBZGQgc2VsZWN0b3IgY29udGVudCBhcyBuZXh0TGlua1wi\nLFxuICAgICAgICAgICAgICAgIGFkZFBhZ2VTZWxlY3RvcjogXCJBZGQgc2VsZWN0b3IgY29udGVu\ndCBhcyBwYWdlRWxlbWVudFwiLFxuICAgICAgICAgICAgICAgIHByb3BOYW1lOiBcIkVudGVyIHJ1\nbGUgcHJvcGVydHkgbmFtZVwiLFxuICAgICAgICAgICAgICAgIHByb3BWYWx1ZTogXCJFbnRlciBy\ndWxlIHByb3BlcnR5IHZhbHVlXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tRmlyc3Q6IFwiSWdu\nb3JlIGNhY2hlIGZvciBsb2NhbCBjdXN0b20gcnVsZXNcIixcbiAgICAgICAgICAgICAgICBydWxl\nc0V4YW1wbGU6IFwiUnVsZXMgRXhhbXBsZVwiLFxuICAgICAgICAgICAgICAgIGxhc3RQYWdlOiBc\nIlJlYWNoZWQgdGhlIGxhc3QgcGFnZVwiLFxuICAgICAgICAgICAgICAgIGxhc3RQYWdlVGlwczog\nXCJTaG93IHRpcHMgd2hlbiByZWFjaGluZyB0aGUgbGFzdCBwYWdlXCJcbiAgICAgICAgICAgIH1c\nbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJEZXV0c2NoXCIsXG4g\nICAgICAgICAgICBtYXRjaDogW1wiZGVcIiwgXCJkZS1BVFwiLCBcImRlLUNIXCIsIFwiZGUtREVc\nIiwgXCJkZS1MSVwiLCBcImRlLUxVXCJdLFxuICAgICAgICAgICAgbGFuZzoge1xuICAgICAgICAg\nICAgICAgIGVuYWJsZURlYnVnOiBcIkRlYnVnLUF1c2dhYmUgaW4gZGVyIEtvbnNvbGUgYWt0aXZp\nZXJlblwiLFxuICAgICAgICAgICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogXCJCZW5hY2hyaWNo\ndGlndW5nIG5hY2ggQWt0dWFsaXNpZXJ1bmcgZGVyIFJlZ2VsblwiLFxuICAgICAgICAgICAgICAg\nIGRpc2FibGU6IFwiVm9yw7xiZXJnZWhlbmQgZGVha3RpdmllcmVuXCIsXG4gICAgICAgICAgICAg\nICAgZGlzYWJsZVNpdGU6IFwiRGVha3RpdmllcnVuZ3N6dXN0YW5kIHVtc2NoYWx0ZW5cIixcbiAg\nICAgICAgICAgICAgICBkaXNhYmxlU2l0ZVRpcHM6IFwiQXVmIGRpZXNlciBTZWl0ZSBkZWFrdGl2\naWVydC5cIixcbiAgICAgICAgICAgICAgICBlbmFibGVTaXRlVGlwczogXCJBdWYgZGllc2VyIFNl\naXRlIGFrdGl2aWVydC5cIixcbiAgICAgICAgICAgICAgICBlbmFibGU6IFwi4pyFQXV0b21hdGlz\nY2hlcyBCbMOkdHRlcm4gYWt0aXZpZXJlblwiLFxuICAgICAgICAgICAgICAgIHRlbXBBY3RpdmU6\nIFwiVm9yw7xiZXJnZWhlbmQgYWt0aXZcIixcbiAgICAgICAgICAgICAgICB0b1RvcDogXCJadXLD\nvGNrIG5hY2ggb2Jlbi5cIixcbiAgICAgICAgICAgICAgICB0b0JvdHRvbTogXCJOYWNoIHVudGVu\nIGdlaGVuLlwiLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IFwiQWt0dWVsbGUgU2VpdGUuXCIs\nXG4gICAgICAgICAgICAgICAgZm9yY2VJZnJhbWU6IFwiWndpbmdlbiwgZGllIG7DpGNoc3RlIFNl\naXRlIHp1IGxhZGVuXCIsXG4gICAgICAgICAgICAgICAgY2FuY2VsRm9yY2VJZnJhbWU6IFwiWndh\nbmdzw7ZmZm51bmcgYWJicmVjaGVuXCIsXG4gICAgICAgICAgICAgICAgY29uZmlndXJlOiBcIlBh\nZ2V0dWFsIGtvbmZpZ3VyaWVyZW5cIixcbiAgICAgICAgICAgICAgICBmaXJzdFVwZGF0ZTogXCJI\naWVyIGtsaWNrZW4sIHVtIGRpZSBTdGFuZGFyZHJlZ2VsLUxpc3RlIHp1IGluaXRpYWxpc2llcmVu\nXCIsXG4gICAgICAgICAgICAgICAgdXBkYXRlOiBcIk9ubGluZS1SZWdlbG4gYWt0dWFsaXNpZXJl\nblwiLFxuICAgICAgICAgICAgICAgIGNsaWNrMnVwZGF0ZTogXCJKZXR6dCBrbGlja2VuLCB1bSBS\nZWdlbG4gdm9uIGRlciBVUkwgenUgYWt0dWFsaXNpZXJlblwiLFxuICAgICAgICAgICAgICAgIGxv\nYWROb3c6IFwiTsOkY2hzdGUgU2VpdGUgYXV0b21hdGlzY2ggbGFkZW5cIixcbiAgICAgICAgICAg\nICAgICBsb2FkQ29uZmlybTogXCJXaWUgdmllbGUgU2VpdGVuIG3DtmNodGVuIFNpZSBsYWRlbj8g\nKDAgYmVkZXV0ZXQgdW5lbmRsaWNoKVwiLFxuICAgICAgICAgICAgICAgIG5vTmV4dDogXCJLZWlu\nZW4gbsOkY2hzdGVuIExpbmsgZ2VmdW5kZW4sIGJpdHRlIGVyc3RlbGxlbiBTaWUgZWluZSBuZXVl\nIFJlZ2VsXCIsXG4gICAgICAgICAgICAgICAgcGFzc1NlYzogXCJWb3IgI3QjIFNla3VuZGVuIGFr\ndHVhbGlzaWVydFwiLFxuICAgICAgICAgICAgICAgIHBhc3NNaW46IFwiVm9yICN0IyBNaW51dGVu\nIGFrdHVhbGlzaWVydFwiLFxuICAgICAgICAgICAgICAgIHBhc3NIb3VyOiBcIlZvciAjdCMgU3R1\nbmRlbiBha3R1YWxpc2llcnRcIixcbiAgICAgICAgICAgICAgICBwYXNzRGF5OiBcIlZvciAjdCMg\nVGFnZW4gYWt0dWFsaXNpZXJ0XCIsXG4gICAgICAgICAgICAgICAgY2FudERlbDogXCJLYW5uIGlu\ndGVncmllcnRlIFJlZ2VsbiBuaWNodCBsw7ZzY2hlblwiLFxuICAgICAgICAgICAgICAgIGNvbmZp\ncm1EZWw6IFwiU2luZCBTaWUgc2ljaGVyLCBkYXNzIFNpZSBkaWVzZSBSZWdlbCBsw7ZzY2hlbiBt\nw7ZjaHRlbj9cIixcbiAgICAgICAgICAgICAgICB1cGRhdGVTdWNjOiBcIkFrdHVhbGlzaWVydW5n\nIGVyZm9sZ3JlaWNoXCIsXG4gICAgICAgICAgICAgICAgYmVnaW5VcGRhdGU6IFwiQWt0dWFsaXNp\nZXJ1bmcgYmVnaW5uZW4sIGJpdHRlIGVpbmVuIE1vbWVudCB3YXJ0ZW5cIixcbiAgICAgICAgICAg\nICAgICBjdXN0b21VcmxzOiBcIlBhZ2V0dWFsIG9kZXIgQXV0b1BhZ2VyaXplIFJlZ2VsLVVSTCBp\nbXBvcnRpZXJlbiwgZWluZSBVUkwgcHJvIFplaWxlLlwiLFxuICAgICAgICAgICAgICAgIGN1c3Rv\nbVJ1bGVzOiBcIkJlbnV0emVyZGVmaW5pZXJ0ZSBSZWdlbG4gZWluZ2ViZW4uIDxhIGhyZWY9JyN0\nIyc+4pyN77iPUmVnZWxuIGJlaXRyYWdlbjxcL2E+XCIsXG4gICAgICAgICAgICAgICAgc2F2ZTog\nXCJTcGVpY2hlcm5cIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dDogXCJTaG9qbyBsw6Rk\ndCBqZXR6dC4uLlwiLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IFwiT3Bheml0w6R0XCIsXG4g\nICAgICAgICAgICAgICAgb3BhY2l0eVBsYWNlaG9sZGVyOiBcIjA6IFBsYXR6aGFsdGVyIGF1c2Js\nZW5kZW5cIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyOiBcIkRlbiBQbGF0emhhbHRlciBmw7xy\nIGRpZSBTZWl0ZW5hbnphaGwgYXVzYmxlbmRlblwiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXJC\ndXROb1N0b3A6IFwiQXVzYmxlbmRlbiwgYWJlciBuaWNodCBzdG9wcGVuXCIsXG4gICAgICAgICAg\nICAgICAgZGJDbGljazJTdG9wOiBcIkRvcHBlbGtsaWNrZW4gU2llIGF1ZiBkZW4gbGVlcmVuIEJl\ncmVpY2gsIHVtIHp1IHBhdXNpZXJlblwiLFxuICAgICAgICAgICAgICAgIHNvcnRUaXRsZTogXCJE\naWUgU29ydGllcnVuZyB3aXJkIG5hY2ggZGVyIG7DpGNoc3RlbiBSZWdlbGFrdHVhbGlzaWVydW5n\nIHdpcmtzYW1cIixcbiAgICAgICAgICAgICAgICBhdXRvUnVuOiBcIkF1dG9tYXRpc2NoIGFrdGl2\naWVyZW4gKEJsYWNrbGlzdC1Nb2R1cylcIixcbiAgICAgICAgICAgICAgICBhdXRvTG9hZE51bTog\nXCJBbnphaGwgZGVyIHZvcnp1bGFkZW5kZW4gU2VpdGVuXCIsXG4gICAgICAgICAgICAgICAgdHVy\nblJhdGU6IFwiQmzDpHR0ZXJuIHp1ciBuw6RjaHN0ZW4gU2VpdGUsIHdlbm4gc2llIHdlbmlnZXIg\nYWxzIOOAkFjjgJEgTWFsIGRpZSBTZWl0ZW5zaMO2aGUgdm9tIEZ1w59iZXJlaWNoIGVudGZlcm50\nIGlzdFwiLFxuICAgICAgICAgICAgICAgIGlucHV0UGFnZU51bTogXCJTZWl0ZW56YWhsIGVpbmdl\nYmVuLCB1bSB6dSBzcHJpbmdlblwiLFxuICAgICAgICAgICAgICAgIGVuYWJsZUhpc3Rvcnk6IFwi\nQnJvd3NlcnZlcmxhdWYgbmFjaCBkZW0gQmzDpHR0ZXJuIGF1ZnplaWNobmVuXCIsXG4gICAgICAg\nICAgICAgICAgZW5hYmxlSGlzdG9yeUFmdGVySW5zZXJ0OiBcIkJyb3dzZXJ2ZXJsYXVmIHNvZm9y\ndCBuYWNoIGRlbSBFaW5mw7xnZW4gYXVmemVpY2huZW4sIGFuZGVybmZhbGxzIG5hY2ggZGVtIEJy\nb3dzZW4gYXVmemVpY2huZW5cIixcbiAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0eTog\nXCJJbmhhbHRzc2ljaHRiYXJrZWl0IGF1dG9tYXRpc2NoIHVtc2NoYWx0ZW4sIHVtIGRpZSBSZW5k\nZXItTGVpc3R1bmcgenUgdmVyYmVzc2VyblwiLFxuICAgICAgICAgICAgICAgIGluaXRSdW46IFwi\nU2VpdGVuIHNvZm9ydCBuYWNoIGRlbSDDlmZmbmVuIGJsw6R0dGVyblwiLFxuICAgICAgICAgICAg\nICAgIHByZWxvYWQ6IFwiTsOkY2hzdGUgU2VpdGUgdm9ybGFkZW4sIHVtIHp1IGJlc2NobGV1bmln\nZW5cIixcbiAgICAgICAgICAgICAgICBjbGljazJJbXBvcnRSdWxlOiBcIktsaWNrZW4gU2llLCB1\nbSBkZW4gQmFzaXNyZWdlbC1MaW5rIHp1IGltcG9ydGllcmVuLCB1bmQgd2FydGVuIFNpZSwgYmlz\nIGRpZSBBa3R1YWxpc2llcnVuZyBhYmdlc2NobG9zc2VuIGlzdDogXCIsXG4gICAgICAgICAgICAg\nICAgZm9yY2VBbGxCb2R5OiBcIkdlc2FtdGVuIFNlaXRlbmluaGFsdCBhbHMgaWZyYW1lIGVpbmbD\nvGdlbj9cIixcbiAgICAgICAgICAgICAgICBvcGVuSW5OZXdUYWI6IFwiVVJMcyBkZXIgRXJnw6Ru\nenVuZ2VuIGluIG5ldWVtIFRhYiDDtmZmbmVuXCIsXG4gICAgICAgICAgICAgICAgaW1wb3J0U3Vj\nYzogXCJJbXBvcnQgYWJnZXNjaGxvc3NlblwiLFxuICAgICAgICAgICAgICAgIGltcG9ydDogXCJJ\nbXBvcnRpZXJlblwiLFxuICAgICAgICAgICAgICAgIGVkaXRDdXJyZW50OiBcIlJlZ2VsIGbDvHIg\nZGllIGFrdHVlbGxlIFdlYnNpdGUgYmVhcmJlaXRlblwiLFxuICAgICAgICAgICAgICAgIGVkaXRC\nbGFja2xpc3Q6IFwiQmVhcmJlaXRlbiBTaWUgZGllIFVSTC1CbGFja2xpc3QsIGVpbiBFaW50cmFn\nIHBybyBaZWlsZSwgdW50ZXJzdMO8dHp0IFdpbGRjYXJkcyBbPywqXS5cIixcbiAgICAgICAgICAg\nICAgICB1cEJ0bkltZzogXCJTeW1ib2wgenVtIFp1csO8Y2sgbmFjaCBvYmVuXCIsXG4gICAgICAg\nICAgICAgICAgZG93bkJ0bkltZzogXCJTeW1ib2wgenVtIEdlaGVuIHp1bSBGdcOfYmVyZWljaFwi\nLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVySWNvbjogXCJTeW1ib2wgZGVyIFNlaXRl\nbmxlaXN0ZVwiLFxuICAgICAgICAgICAgICAgIGxvYWRpbmdUZXh0VGl0bGU6IFwiTGFkZW5cIixc\nbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BDdHJsOiBcIlN0cmctVGFzdGVcIixcbiAgICAg\nICAgICAgICAgICBkYkNsaWNrMlN0b3BBbHQ6IFwiQWx0LVRhc3RlXCIsXG4gICAgICAgICAgICAg\nICAgZGJDbGljazJTdG9wU2hpZnQ6IFwiU2hpZnQtVGFzdGVcIixcbiAgICAgICAgICAgICAgICBk\nYkNsaWNrMlN0b3BNZXRhOiBcIk1ldGEtVGFzdGVcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNr\nMlN0b3BLZXk6IFwiS3VyemJlZmVobC1UYXN0ZVwiLFxuICAgICAgICAgICAgICAgIHBhZ2VFbGVt\nZW50Q3NzOiBcIkJlbnV0emVyZGVmaW5pZXJ0ZXIgU3RpbCBmw7xyIEhhdXB0ZWxlbWVudGUgZGVy\nIFNlaXRlXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ3NzOiBcIkJlbnV0emVyZGVmaW5pZXJ0\nZXMgdm9sbHN0w6RuZGlnZXMgQ1NTXCIsXG4gICAgICAgICAgICAgICAgZmlyc3RBbGVydDogXCJT\naWUgaGFiZW4gZGllIEJhc2lzcmVnZWwgbmljaHQgaW1wb3J0aWVydCwgYml0dGUgd8OkaGxlbiBT\naWUgZGllIHBhc3NlbmRlIFJlZ2VsIHp1bSBJbXBvcnRpZXJlbiBhdXNcIixcbiAgICAgICAgICAg\nICAgICBwaWNrZXI6IFwiUGFnZXR1YWwgRWxlbWVudGF1c3dhaGxcIixcbiAgICAgICAgICAgICAg\nICBjbG9zZVBpY2tlcjogXCJQYWdldHVhbCBQaWNrZXIgc2NobGllw59lblwiLFxuICAgICAgICAg\nICAgICAgIHBpY2tlclBsYWNlaG9sZGVyOiBcIkVsZW1lbnRhdXN3YWhsLCAobnVyIGbDvHIgRm9y\ndGdlc2Nocml0dGVuZSwgYW5kZXJuZmFsbHMgbGVlciBsYXNzZW4pXCIsXG4gICAgICAgICAgICAg\nICAgcGlja2VyQ2hlY2s6IFwiV8OkaGxlbiBTaWUgZGVuIFNlbGVrdG9yIGF1cyB1bmQga29waWVy\nZW5cIixcbiAgICAgICAgICAgICAgICBzd2l0Y2hTZWxlY3RvcjogXCJLbGlja2VuIFNpZSwgdW0g\nZGFzIEVsZW1lbnQgenUgd2VjaHNlbG5cIixcbiAgICAgICAgICAgICAgICBnb3RvRWRpdDogXCJH\nZWhlIHp1ciBSZWdlbGJlYXJiZWl0dW5nIG1pdCBkZW0gYWt0dWVsbGVuIFNlbGVrdG9yXCIsXG4g\nICAgICAgICAgICAgICAgbWFudWFsTW9kZTogXCJTcGxpY2luZyBkZWFrdGl2aWVyZW4sIG1hbnVl\nbGwgenVyIG7DpGNoc3RlbiBTZWl0ZSBtaXQgZGVyIHJlY2h0ZW4gUGZlaWx0YXN0ZSB3ZWl0ZXJi\nbMOkdHRlcm4gKG9kZXIgZGFzIEVyZWlnbmlzICdwYWdldHVhbC5uZXh0JyBhdXNsw7ZzZW4pXCIs\nXG4gICAgICAgICAgICAgICAgY2xpY2tNb2RlOiBcIlNwbGljaW5nIGRlYWt0aXZpZXJlbiwgYXV0\nb21hdGlzY2ggenVyIG7DpGNoc3RlbiBTZWl0ZSBrbGlja2VuLCB3ZW5uIGRhcyBFbmRlIGRlciBT\nZWl0ZSBlcnJlaWNodCBpc3RcIixcbiAgICAgICAgICAgICAgICBwYWdlQmFyTWVudTogXCJLbGlj\na2VuIFNpZSBhdWYgZGllIE1pdHRlIGRlciBTZWl0ZW5sZWlzdGUsIHVtIGRhcyBQaWNrZXItTWVu\nw7wgenUgw7ZmZm5lblwiLFxuICAgICAgICAgICAgICAgIG5leHRTd2l0Y2g6IFwiTsOkY2hzdGVu\nIExpbmsgd2VjaHNlbG5cIixcbiAgICAgICAgICAgICAgICBhcnJvd1RvU2Nyb2xsOiBcIkRyw7xj\na2VuIFNpZSBkaWUgbGlua2UgUGZlaWx0YXN0ZSwgdW0gbmFjaCBoaW50ZW4genUgc2Nyb2xsZW4s\nIHVuZCBkaWUgcmVjaHRlIFBmZWlsdGFzdGUsIHVtIHp1ciBuw6RjaHN0ZW4gU2VpdGUgenUgYmzD\npHR0ZXJuXCIsXG4gICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXI6IFwiRGllIFN0ZXVlcmxl\naXN0ZSBmw7xyIGRhcyBCbMOkdHRlcm4gaW4gZGVyIFNlaXRlbmxlaXN0ZSBhbnplaWdlblwiLFxu\nICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyU2Nyb2xsOiBcIlNjcm9sbC1VbXNjaGFsdHVu\nZ1wiLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyQWx3YXlzOiBcIkltbWVyIGFuemVp\nZ2VuXCIsXG4gICAgICAgICAgICAgICAgaGlkZUxvYWRpbmdJY29uOiBcIkxhZGVhbmltYXRpb24g\nYXVzYmxlbmRlblwiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXJBcnJvdzogXCJQZmVpbCBmw7xy\nIGRpZSBTZWl0ZW5sZWlzdGUgYXVzYmxlbmRlblwiLFxuICAgICAgICAgICAgICAgIGR1cGxpY2F0\nZTogXCJEdXBsaWthdCBQYWdldHVhbCB3dXJkZSBpbnN0YWxsaWVydCwgw7xiZXJwcsO8ZmVuIFNp\nZSBJaHJlbiBTa3JpcHRtYW5hZ2VyIVwiLFxuICAgICAgICAgICAgICAgIGZvcmNlU3RhdGVJZnJh\nbWU6IFwiR2VzYW10ZSBTZWl0ZSBhbHMgaWZyYW1lIGVpbmbDvGdlblwiLFxuICAgICAgICAgICAg\nICAgIGZvcmNlU3RhdGVEeW5hbWljOiBcIkR5bmFtaXNjaGUgSW5oYWx0ZSDDvGJlciBpZnJhbWUg\nbGFkZW5cIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlRGlzYWJsZTogXCJCbMOkdHRlcm4g\nYXVmIGRpZXNlciBTZWl0ZSBkZWFrdGl2aWVyZW5cIixcbiAgICAgICAgICAgICAgICBhdXRvU2Ny\nb2xsUmF0ZTogXCJTY3JvbGxnZXNjaHdpbmRpZ2tlaXQgKDF+MTAwMClcIixcbiAgICAgICAgICAg\nICAgICBkaXNhYmxlQXV0b1Njcm9sbDogXCJBdXRvLVNjcm9sbCBzdG9wcGVuXCIsXG4gICAgICAg\nICAgICAgICAgZW5hYmxlQXV0b1Njcm9sbDogXCJBdXRvLVNjcm9sbCBha3RpdmllcmVuXCIsXG4g\nICAgICAgICAgICAgICAgdG9nZ2xlQXV0b1Njcm9sbDogXCJBdXRvLVNjcm9sbCB1bXNjaGFsdGVu\nXCIsXG4gICAgICAgICAgICAgICAgcnVsZVJlcXVlc3Q6IFwiUmVnZWxhbmZyYWdlXCIsXG4gICAg\nICAgICAgICAgICAgcGFnZTogXCJTZWl0ZSBcIixcbiAgICAgICAgICAgICAgICBwcmV2UGFnZTog\nXCJWb3JoZXJpZ2UgU2VpdGVcIixcbiAgICAgICAgICAgICAgICBuZXh0UGFnZTogXCJOw6RjaHN0\nZSBTZWl0ZVwiLFxuICAgICAgICAgICAgICAgIGVycm9yUnVsZXNNdXN0QmVBcnJheTogXCJSZWdl\nbG4gbcO8c3NlbiBlaW4gQXJyYXkgc2VpbiFcIixcbiAgICAgICAgICAgICAgICBlcnJvckpzb246\nIFwiSlNPTi1GZWhsZXIsIGJpdHRlIGVybmV1dCDDvGJlcnByw7xmZW4hXCIsXG4gICAgICAgICAg\nICAgICAgZWRpdFN1Y2Nlc3M6IFwiRXJmb2xncmVpY2ggYmVhcmJlaXRldFwiLFxuICAgICAgICAg\nICAgICAgIGVycm9yV3JvbmdVcmw6IFwiRmFsc2NoZSBVUkwsIGJpdHRlIGVybmV1dCDDvGJlcnBy\nw7xmZW4hXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JBbHJlYWR5RXhpc3RzOiBcIkVpbmUgUmVn\nZWwgZXhpc3RpZXJ0IGJlcmVpdHMhXCIsXG4gICAgICAgICAgICAgICAgc2V0dGluZ3NTYXZlZDog\nXCJEaWUgRWluc3RlbGx1bmdlbiB3dXJkZW4gZ2VzcGVpY2hlcnQsIGJpdHRlIGFrdHVhbGlzaWVy\nZW4sIHVtIHNpZSB6dSBzZWhlblwiLFxuICAgICAgICAgICAgICAgIGlmcmFtZTogXCJad2FuZ3Nh\ndWZ0ZWlsdW5nIGR1cmNoIGlmcmFtZVwiLFxuICAgICAgICAgICAgICAgIGR5bmFtaWM6IFwiRHlu\nYW1pc2NoZXMgTGFkZW5cIixcbiAgICAgICAgICAgICAgICByZWxvYWRQYWdlOiBcIkJlYXJiZWl0\ndW5nIGFiZ2VzY2hsb3NzZW4sIGpldHp0IG5ldSBsYWRlbj9cIixcbiAgICAgICAgICAgICAgICBj\nb3BpZWQ6IFwiS29waWVydFwiLFxuICAgICAgICAgICAgICAgIG5vVmFsaWRDb250ZW50OiBcIktl\naW4gZ8O8bHRpZ2VyIEluaGFsdCBlcmthbm50LCBtw7ZnbGljaGVyd2Vpc2UgaXN0IGVpbiBDYXB0\nY2hhIHZvcmhhbmRlblwiLFxuICAgICAgICAgICAgICAgIG91dE9mRGF0ZTogXCJEYXMgU2tyaXB0\nIGlzdCB2ZXJhbHRldCwgYml0dGUgYXVmIGRpZSBuZXVlc3RlIFZlcnNpb24gYWt0dWFsaXNpZXJl\nbi5cIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyVGlwczogXCJEaWUgU2VpdGVuemFobGVubGVp\nc3RlIGF1c2JsZW5kZW4sIHVtIGVpbiBpbW1lcnNpdmVzIEVybGVibmlzIHp1IGVybcO2Z2xpY2hl\nblwiLFxuICAgICAgICAgICAgICAgIHNldENvbmZpZ1BhZ2U6IFwiQWt0dWVsbGUgU2VpdGUgYWxz\nIFN0YW5kYXJka29uZmlndXJhdGlvbnNzZWl0ZSBmZXN0bGVnZW5cIixcbiAgICAgICAgICAgICAg\nICB3ZWRhdGEyZ2l0aHViOiBcIkRpZSB3ZWRhdGEtQWRyZXNzZSBhdWYgZGllIFNwaWVnZWxhZHJl\nc3NlIGltIEdpdEh1Yi1SZXBvc2l0b3J5IMOkbmRlcm5cIixcbiAgICAgICAgICAgICAgICBhZGRP\ndGhlclByb3A6IFwiUmVnZWxhdHRyaWJ1dGUgaGluenVmw7xnZW5cIixcbiAgICAgICAgICAgICAg\nICBhZGROZXh0U2VsZWN0b3I6IFwiU2VsZWN0b3ItSW5oYWx0IGFscyBuZXh0TGluayBoaW56dWbD\nvGdlblwiLFxuICAgICAgICAgICAgICAgIGFkZFBhZ2VTZWxlY3RvcjogXCJTZWxlY3Rvci1Jbmhh\nbHQgYWxzIHBhZ2VFbGVtZW50IGhpbnp1ZsO8Z2VuXCIsXG4gICAgICAgICAgICAgICAgcHJvcE5h\nbWU6IFwiUmVnZWxhdHRyaWJ1dG5hbWVuIGVpbmdlYmVuXCIsXG4gICAgICAgICAgICAgICAgcHJv\ncFZhbHVlOiBcIlJlZ2VsYXR0cmlidXR3ZXJ0IGVpbmdlYmVuXCIsXG4gICAgICAgICAgICAgICAg\nY3VzdG9tRmlyc3Q6IFwiQ2FjaGUgZsO8ciBsb2thbGUgYmVudXR6ZXJkZWZpbmllcnRlIFJlZ2Vs\nbiBpZ25vcmllcmVuXCIsXG4gICAgICAgICAgICAgICAgcnVsZXNFeGFtcGxlOiBcIlJlZ2VsbiBC\nZWlzcGllbFwiLFxuICAgICAgICAgICAgICAgIGxhc3RQYWdlOiBcIkxldHp0ZSBTZWl0ZSBlcnJl\naWNodFwiLFxuICAgICAgICAgICAgICAgIGxhc3RQYWdlVGlwczogXCJUaXBwcyBhbnplaWdlbiwg\nd2VubiBkaWUgbGV0enRlIFNlaXRlIGVycmVpY2h0IGlzdFwiXG4gICAgICAgICAgICB9XG4gICAg\nICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwvXC8gVHJhZHV6aWRvIHBvciBUaGlhZ28g\nUmFtb3MgKHRoaWFnb2pyYW1vc0BvdXRsb29rLmNvbSkuXG4gICAgICAgICAgICBuYW1lOiBcIlBv\ncnR1Z3XDqnMgKEJyYXNpbClcIixcbiAgICAgICAgICAgIG1hdGNoOiBbXCJwdFwiLCBcInB0LUJS\nXCIsIFwicHQtUFRcIl0sXG4gICAgICAgICAgICBsYW5nOiB7XG4gICAgICAgICAgICAgICAgZW5h\nYmxlRGVidWc6IFwiQXRpdmFyIGxvZyBkZSBkZXB1cmHDp8OjbyBubyBjb25zb2xlLlwiLFxuICAg\nICAgICAgICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogXCJOb3RpZmljYXIgYXDDs3MgYSBhdHVh\nbGl6YcOnw6NvIGRhcyByZWdyYXNcIixcbiAgICAgICAgICAgICAgICBkaXNhYmxlOiBcIkRlc2F0\naXZhciB0ZW1wb3JhcmlhbWVudGUuXCIsXG4gICAgICAgICAgICAgICAgZGlzYWJsZVNpdGU6IFwi\nUm9sYWdlbSBpbmZpbml0YTogQXRpdmFyIFwvIERlc2F0aXZhci5cIixcbiAgICAgICAgICAgICAg\nICBkaXNhYmxlU2l0ZVRpcHM6IFwiRGVzYWJpbGl0YWRvIG5lc3RlIHNpdGUuXCIsXG4gICAgICAg\nICAgICAgICAgZW5hYmxlU2l0ZVRpcHM6IFwiQXRpdmFkbyBuZXN0ZSBzaXRlLlwiLFxuICAgICAg\nICAgICAgICAgIGVuYWJsZTogXCLinIVBdGl2YXIgcm9sYWdlbSBhdXRvbcOhdGljYSBkZSBww6Fn\naW5hLlwiLFxuICAgICAgICAgICAgICAgIHRlbXBBY3RpdmU6IFwiVGVtcG9yYXJpYW1lbnRlIGF0\naXZvXCIsXG4gICAgICAgICAgICAgICAgdG9Ub3A6IFwiVm9sdGFyIGFvIFRvcG8uXCIsXG4gICAg\nICAgICAgICAgICAgdG9Cb3R0b206IFwiSXIgcGFyYSBvIFJvZGFww6kuXCIsXG4gICAgICAgICAg\nICAgICAgY3VycmVudDogXCJQw6FnaW5hIEF0dWFsLlwiLFxuICAgICAgICAgICAgICAgIGZvcmNl\nSWZyYW1lOiBcIkZvcsOnYXIgaW5jbHVzw6NvIGRhIHByw7N4aW1hIHDDoWdpbmFcIixcbiAgICAg\nICAgICAgICAgICBjYW5jZWxGb3JjZUlmcmFtZTogXCJDYW5jZWxhciBJbmNsdXPDo28gRm9yw6dh\nZGFcIixcbiAgICAgICAgICAgICAgICBjb25maWd1cmU6IFwiQ29uZmlndXJhciBvIFBhZ2V0dWFs\nXCIsXG4gICAgICAgICAgICAgICAgZmlyc3RVcGRhdGU6IFwiQ2xpcXVlIGFxdWkgcGFyYSBpbmlj\naWFsaXphciBhIGxpc3RhIGRlIHJlZ3JhcyBwYWRyw6NvXCIsXG4gICAgICAgICAgICAgICAgdXBk\nYXRlOiBcIkF0dWFsaXphciByZWdyYXMgb25saW5lXCIsXG4gICAgICAgICAgICAgICAgY2xpY2sy\ndXBkYXRlOiBcIkNsaXF1ZSBwYXJhIGF0dWFsaXphciBhcyByZWdyYXMgZGEgVVJMIGFnb3JhXCIs\nXG4gICAgICAgICAgICAgICAgbG9hZE5vdzogXCJDYXJyZWdhciBtYWlzIHDDoWdpbmFzIGF1dG9t\nYXRpY2FtZW50ZVwiLFxuICAgICAgICAgICAgICAgIGxvYWRDb25maXJtOiBcIlF1YW50YXMgcMOh\nZ2luYXMgdm9jw6ogZGVzZWphIGNhcnJlZ2FyPyAoMCA9IGluZmluaXRhcylcIixcbiAgICAgICAg\nICAgICAgICBub05leHQ6IFwiTmVuaHVtIGxpbmsgcGFyYSBhIHByw7N4aW1hIHDDoWdpbmEgZW5j\nb250cmFkby4gQ3JpZSB1bWEgbm92YSByZWdyYS5cIixcbiAgICAgICAgICAgICAgICBwYXNzU2Vj\nOiBcIkF0dWFsaXphZG8gaMOhICN0IyBzZWd1bmRvc1wiLFxuICAgICAgICAgICAgICAgIHBhc3NN\naW46IFwiQXR1YWxpemFkbyBow6EgI3QjIG1pbnV0b3NcIixcbiAgICAgICAgICAgICAgICBwYXNz\nSG91cjogXCJBdHVhbGl6YWRvIGjDoSAjdCMgaG9yYXNcIixcbiAgICAgICAgICAgICAgICBwYXNz\nRGF5OiBcIkF0dWFsaXphZG8gaMOhICN0IyBkaWFzXCIsXG4gICAgICAgICAgICAgICAgY2FudERl\nbDogXCJOw6NvIMOpIHBvc3PDrXZlbCBleGNsdWlyIGFzIHJlZ3JhcyBpbnRlcm5hc1wiLFxuICAg\nICAgICAgICAgICAgIGNvbmZpcm1EZWw6IFwiVGVtIGNlcnRlemEgcXVlIGRlc2VqYSBleGNsdWly\nIGVzdGEgcmVncmE\/XCIsXG4gICAgICAgICAgICAgICAgdXBkYXRlU3VjYzogXCJBdHVhbGl6YcOn\nw6NvIGNvbmNsdcOtZGEgY29tIHN1Y2Vzc29cIixcbiAgICAgICAgICAgICAgICBiZWdpblVwZGF0\nZTogXCJJbmljaWFuZG8gYXR1YWxpemHDp8Ojby4gQWd1YXJkZSB1bSBtb21lbnRvLCBwb3IgZmF2\nb3IuXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tVXJsczogXCJJbXBvcnRhciBVUkxzIGRlIHJl\nZ3JhcyBkbyBQYWdldHVhbCBvdSBBdXRvUGFnZXJpemUsIHVtYSBVUkwgcG9yIGxpbmhhLlwiLFxu\nICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVzOiBcIkluc2VyaXIgcmVncmFzIHBlcnNvbmFsaXph\nZGFzLiA8YSBocmVmPScjdCMnPuKcje+4j0NvbnRyaWJ1aXIgY29tIHJlZ3JhczxcL2E+XCIsXG4g\nICAgICAgICAgICAgICAgc2F2ZTogXCJTYWx2YXJcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5n\nVGV4dDogXCJDYXJyZWdhbmRvLi4uXCIsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogXCJPcGFj\naWRhZGVcIixcbiAgICAgICAgICAgICAgICBvcGFjaXR5UGxhY2Vob2xkZXI6IFwiMDogb2N1bHRh\nciBlc3Bhw6dhZG9yXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhcjogXCJPY3VsdGFyIG8gZXNw\nYcOnYWRvciBkZSBwYWdpbmHDp8Ojb1wiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXJCdXROb1N0\nb3A6IFwiT2N1bHRhciwgbWFzIG7Do28gcGFyYXJcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNr\nMlN0b3A6IFwiQ2xpcXVlIGR1cGxvIG5vIGVzcGHDp28gZW0gYnJhbmNvIHBhcmEgcGF1c2FyXCIs\nXG4gICAgICAgICAgICAgICAgc29ydFRpdGxlOiBcIkEgY2xhc3NpZmljYcOnw6NvIHRlcsOhIGVm\nZWl0byBhcMOzcyBhIHByw7N4aW1hIGF0dWFsaXphw6fDo28gZGEgcmVncmFcIixcbiAgICAgICAg\nICAgICAgICBhdXRvUnVuOiBcIkF0aXZhciBhdXRvbWF0aWNhbWVudGUgKG1vZG8gZGUgbGlzdGEg\nbmVncmEpXCIsXG4gICAgICAgICAgICAgICAgYXV0b0xvYWROdW06IFwiTsO6bWVybyBkZSBww6Fn\naW5hcyBwYXJhIHByw6ktY2FycmVnYXJcIixcbiAgICAgICAgICAgICAgICB0dXJuUmF0ZTogXCJN\ndWRhciBwYXJhIGEgcHLDs3hpbWEgcMOhZ2luYSBxdWFuZG8gZXN0aXZlciBhIG1lbm9zIGRlIOOA\nkFjjgJEgdmV6ZXMgYSBhbHR1cmEgZGEgcMOhZ2luYSBkbyByb2RhcMOpXCIsXG4gICAgICAgICAg\nICAgICAgaW5wdXRQYWdlTnVtOiBcIkRpZ2l0ZSBvIG7Dum1lcm8gZGEgcMOhZ2luYSBwYXJhIHB1\nbGFyXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlSGlzdG9yeTogXCJHcmF2YXIgaGlzdMOzcmlj\nbyBkZSBuYXZlZ2HDp8OjbyBhcMOzcyB2aXJhciBhIHDDoWdpbmFcIixcbiAgICAgICAgICAgICAg\nICBlbmFibGVIaXN0b3J5QWZ0ZXJJbnNlcnQ6IFwiR3JhdmFyIGhpc3TDs3JpY28gZGUgbmF2ZWdh\nw6fDo28gaW1lZGlhdGFtZW50ZSBhcMOzcyBhIGluY2x1c8OjbywgY2FzbyBjb250csOhcmlvLCBn\ncmF2YXIgYXDDs3MgYSBuYXZlZ2HDp8Ojb1wiLFxuICAgICAgICAgICAgICAgIGNvbnRlbnRWaXNp\nYmlsaXR5OiBcIkFsdGVybmFyIGF1dG9tYXRpY2FtZW50ZSBhIHZpc2liaWxpZGFkZSBkbyBjb250\nZcO6ZG8gcGFyYSBtZWxob3JhciBvIGRlc2VtcGVuaG8gZGUgcmVuZGVyaXphw6fDo29cIixcbiAg\nICAgICAgICAgICAgICBpbml0UnVuOiBcIlZpcmFyIHDDoWdpbmFzIGltZWRpYXRhbWVudGUgYXDD\ns3MgYSBhYmVydHVyYVwiLFxuICAgICAgICAgICAgICAgIHByZWxvYWQ6IFwiUHLDqS1jYXJyZWdh\nciBhIHByw7N4aW1hIHDDoWdpbmEgcGFyYSBhY2VsZXJhclwiLFxuICAgICAgICAgICAgICAgIGNs\naWNrMkltcG9ydFJ1bGU6IFwiQ2xpcXVlIHBhcmEgaW1wb3J0YXIgbyBsaW5rIGNvbSBhcyByZWdy\nYXMgYsOhc2ljYXMgZSBhZ3VhcmRlIGF0w6kgcXVlIGEgYXR1YWxpemHDp8OjbyBzZWphIGNvbmNs\ndcOtZGE6IFwiLFxuICAgICAgICAgICAgICAgIGZvcmNlQWxsQm9keTogXCJJbmNsdWlyIG8gY29y\ncG8gaW50ZWlybyBkYSBww6FnaW5hP1wiLFxuICAgICAgICAgICAgICAgIG9wZW5Jbk5ld1RhYjog\nXCJBYnJpciBVUkxzIGRlIGFkacOnw7VlcyBlbSB1bWEgbm92YSBndWlhXCIsXG4gICAgICAgICAg\nICAgICAgaW1wb3J0U3VjYzogXCJJbXBvcnRhw6fDo28gY29uY2x1w61kYVwiLFxuICAgICAgICAg\nICAgICAgIGltcG9ydDogXCJJbXBvcnRhclwiLFxuICAgICAgICAgICAgICAgIGVkaXRDdXJyZW50\nOiBcIkVkaXRhciByZWdyYSBwYXJhIG8gc2l0ZSBhdHVhbC5cIixcbiAgICAgICAgICAgICAgICBl\nZGl0QmxhY2tsaXN0OiBcIkVkaXRhciBhIGxpc3RhIG5lZ3JhIGRlIFVSTHMsIHVtYSBlbnRyYWRh\nIHBvciBsaW5oYSwgc3Vwb3J0YSBjdXJpbmdhcyBbPywqXS5cIixcbiAgICAgICAgICAgICAgICB1\ncEJ0bkltZzogXCLDjWNvbmUgZGUgdm9sdGFyIGFvIHRvcG9cIixcbiAgICAgICAgICAgICAgICBk\nb3duQnRuSW1nOiBcIsONY29uZSBkZSBpciBwYXJhIG8gcm9kYXDDqVwiLFxuICAgICAgICAgICAg\nICAgIHNpZGVDb250cm9sbGVySWNvbjogXCLDjWNvbmUgZGEgYmFycmEgbGF0ZXJhbFwiLFxuICAg\nICAgICAgICAgICAgIGxvYWRpbmdUZXh0VGl0bGU6IFwiQ2FycmVnYW5kby5cIixcbiAgICAgICAg\nICAgICAgICBkYkNsaWNrMlN0b3BDdHJsOiBcIlRlY2xhIEN0cmxcIixcbiAgICAgICAgICAgICAg\nICBkYkNsaWNrMlN0b3BBbHQ6IFwiVGVjbGEgQWx0XCIsXG4gICAgICAgICAgICAgICAgZGJDbGlj\nazJTdG9wU2hpZnQ6IFwiVGVjbGEgU2hpZnRcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0\nb3BNZXRhOiBcIlRlY2xhIE1ldGFcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BLZXk6\nIFwiVGVjbGEgZGUgQXRhbGhvXCIsXG4gICAgICAgICAgICAgICAgcGFnZUVsZW1lbnRDc3M6IFwi\nRXN0aWxvIENTUyBwZXJzb25hbGl6YWRvIHBhcmEgb3MgZWxlbWVudG9zIGRhIHDDoWdpbmEgcHJp\nbmNpcGFsXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ3NzOiBcIkNTUyBjb21wbGV0byBwZXJz\nb25hbGl6YWRvXCIsXG4gICAgICAgICAgICAgICAgZmlyc3RBbGVydDogXCJWb2PDqiBuw6NvIGlt\ncG9ydG91IGEgcmVncmEgYsOhc2ljYS4gU2VsZWNpb25lIGEgcmVncmEgYXByb3ByaWFkYSBwYXJh\nIGltcG9ydGFyLlwiLFxuICAgICAgICAgICAgICAgIHBpY2tlcjogXCJTZWxldG9yIGRlIGVsZW1l\nbnRvcyBkZSBww6FnaW5hIGRvIFBhZ2V0dWFsXCIsXG4gICAgICAgICAgICAgICAgY2xvc2VQaWNr\nZXI6IFwiRmVjaGFyIHNlbGV0b3IgZG8gUGFnZXR1YWxcIixcbiAgICAgICAgICAgICAgICBwaWNr\nZXJQbGFjZWhvbGRlcjogXCJTZWxldG9yIGRlIGVsZW1lbnRvIChhcGVuYXMgcGFyYSB1c3XDoXJp\nb3MgYXZhbsOnYWRvcywgZGVpeGUgZW0gYnJhbmNvIGNhc28gY29udHLDoXJpbylcIixcbiAgICAg\nICAgICAgICAgICBwaWNrZXJDaGVjazogXCJWZXJpZmljYXIgc2VsZXRvciBlIGNvcGlhclwiLFxu\nICAgICAgICAgICAgICAgIHN3aXRjaFNlbGVjdG9yOiBcIkNsaXF1ZSBwYXJhIGFsdGVybmFyIG8g\nZWxlbWVudG9cIixcbiAgICAgICAgICAgICAgICBnb3RvRWRpdDogXCJJciBwYXJhIGVkaXRhciBy\nZWdyYSBjb20gbyBzZWxldG9yIGF0dWFsXCIsXG4gICAgICAgICAgICAgICAgbWFudWFsTW9kZTog\nXCJEZXNhdGl2YXIgaW5jbHVzw6NvIGF1dG9tw6F0aWNhLiBBdmFuw6dhciBtYW51YWxtZW50ZSBw\nYXJhIGEgcHLDs3hpbWEgcMOhZ2luYSB1c2FuZG8gYSB0ZWNsYSBkZSBzZXRhIHBhcmEgYSBkaXJl\naXRhIChvdSBlbnZpYXIgbyBldmVudG8gJ3BhZ2V0dWFsLm5leHQnKVwiLFxuICAgICAgICAgICAg\nICAgIGNsaWNrTW9kZTogXCJEZXNhdGl2YXIgaW5jbHVzw6NvIGF1dG9tw6F0aWNhLiBDbGljYXIg\nYXV0b21hdGljYW1lbnRlIG5hIHByw7N4aW1hIHDDoWdpbmEgYW8gcm9sYXIgYXTDqSBvIGZpbmFs\nIGRhIHDDoWdpbmFcIixcbiAgICAgICAgICAgICAgICBwYWdlQmFyTWVudTogXCJDbGlxdWUgbm8g\nY2VudHJvIGRhIGJhcnJhIGRlIHDDoWdpbmFzIHBhcmEgYWJyaXIgbyBtZW51IGRvIHNlbGV0b3Jc\nIixcbiAgICAgICAgICAgICAgICBuZXh0U3dpdGNoOiBcIkFsdGVybmFyIGxpbmsgJ3Byw7N4aW1v\nJ1wiLFxuICAgICAgICAgICAgICAgIGFycm93VG9TY3JvbGw6IFwiUHJlc3Npb25lIGFzIHNldGFz\nIHBhcmEgbmF2ZWdhcjogZXNxdWVyZGEgcGFyYSB2b2x0YXIsIGRpcmVpdGEgcGFyYSBhdmFuw6dh\nciBww6FnaW5hXCIsXG4gICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXI6IFwiRXhpYmlyIGEg\nYmFycmEgZGUgY29udHJvbGUgZGUgcGFnaW5hw6fDo28gbmEgYmFycmEgbGF0ZXJhbFwiLFxuICAg\nICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyU2Nyb2xsOiBcIkFsdGVybmFyIHJvbGFnZW1cIixc\nbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlckFsd2F5czogXCJTZW1wcmUgbW9zdHJhclwi\nLFxuICAgICAgICAgICAgICAgIGhpZGVMb2FkaW5nSWNvbjogXCJPY3VsdGFyIGFuaW1hw6fDo28g\nZGUgY2FycmVnYW1lbnRvXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhckFycm93OiBcIk9jdWx0\nYXIgc2V0YSBkYSBiYXJyYSBkZSBww6FnaW5hc1wiLFxuICAgICAgICAgICAgICAgIGR1cGxpY2F0\nZTogXCJQYWdldHVhbCBkdXBsaWNhZG8gaW5zdGFsYWRvISBWZXJpZmlxdWUgc2V1IGdlcmVuY2lh\nZG9yIGRlIHNjcmlwdHMuXCIsXG4gICAgICAgICAgICAgICAgZm9yY2VTdGF0ZUlmcmFtZTogXCJJ\nbmNvcnBvcmFyIHDDoWdpbmEgaW50ZWlyYSBjb21vIGlmcmFtZVwiLFxuICAgICAgICAgICAgICAg\nIGZvcmNlU3RhdGVEeW5hbWljOiBcIkNhcnJlZ2FyIGNvbnRlw7pkbyBkaW7Dom1pY28gdmlhIGlm\ncmFtZVwiLFxuICAgICAgICAgICAgICAgIGZvcmNlU3RhdGVEaXNhYmxlOiBcIkRlc2F0aXZhciBy\nb2xhZ2VtIGRlIHDDoWdpbmFzIG5lc3RlIHNpdGVcIixcbiAgICAgICAgICAgICAgICBhdXRvU2Ny\nb2xsUmF0ZTogXCJWZWxvY2lkYWRlIGRlIHJvbGFnZW0gKDEgYSAxMDAwKVwiLFxuICAgICAgICAg\nICAgICAgIGRpc2FibGVBdXRvU2Nyb2xsOiBcIlBhcmFyIFJvbGFnZW0gQXV0b23DoXRpY2FcIixc\nbiAgICAgICAgICAgICAgICBlbmFibGVBdXRvU2Nyb2xsOiBcIkF0aXZhciBSb2xhZ2VtIEF1dG9t\nw6F0aWNhXCIsXG4gICAgICAgICAgICAgICAgdG9nZ2xlQXV0b1Njcm9sbDogXCJBbHRlcm5hciBS\nb2xhZ2VtIEF1dG9tw6F0aWNhXCIsXG4gICAgICAgICAgICAgICAgcnVsZVJlcXVlc3Q6IFwiU29s\naWNpdGFyIFJlZ3JhXCIsXG4gICAgICAgICAgICAgICAgcGFnZTogXCJQw6FnaW5hIFwiLFxuICAg\nICAgICAgICAgICAgIHByZXZQYWdlOiBcIlDDoWdpbmEgYW50ZXJpb3JcIixcbiAgICAgICAgICAg\nICAgICBuZXh0UGFnZTogXCJQcsOzeGltYSBww6FnaW5hXCIsXG4gICAgICAgICAgICAgICAgZXJy\nb3JSdWxlc011c3RCZUFycmF5OiBcIkFzIHJlZ3JhcyBkZXZlbSBzZXIgdW0gQXJyYXkhXCIsXG4g\nICAgICAgICAgICAgICAgZXJyb3JKc29uOiBcIkVycm8gZGUgSlNPTiEgVmVyaWZpcXVlIG5vdmFt\nZW50ZS5cIixcbiAgICAgICAgICAgICAgICBlZGl0U3VjY2VzczogXCJFZGnDp8OjbyBmZWl0YSBj\nb20gc3VjZXNzbyFcIixcbiAgICAgICAgICAgICAgICBlcnJvcldyb25nVXJsOiBcIlVSTCBpbmNv\ncnJldGEhIFZlcmlmaXF1ZSBub3ZhbWVudGUuXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JBbHJl\nYWR5RXhpc3RzOiBcIkrDoSBleGlzdGUgdW1hIHJlZ3JhIVwiLFxuICAgICAgICAgICAgICAgIHNl\ndHRpbmdzU2F2ZWQ6IFwiQXMgY29uZmlndXJhw6fDtWVzIGZvcmFtIHNhbHZhcy4gQXR1YWxpemUg\ncGFyYSB2aXN1YWxpemFyLlwiLFxuICAgICAgICAgICAgICAgIGlmcmFtZTogXCJEaXZpc8OjbyBm\nb3LDp2FkYSBwb3IgaWZyYW1lLlwiLFxuICAgICAgICAgICAgICAgIGR5bmFtaWM6IFwiQ2FycmVn\nYW1lbnRvIGRpbsOibWljby5cIixcbiAgICAgICAgICAgICAgICByZWxvYWRQYWdlOiBcIkVkacOn\nw6NvIGNvbmNsdcOtZGEuIERlc2VqYSByZWNhcnJlZ2FyIGFnb3JhP1wiLFxuICAgICAgICAgICAg\nICAgIGNvcGllZDogXCJDb3BpYWRvXCIsXG4gICAgICAgICAgICAgICAgbm9WYWxpZENvbnRlbnQ6\nIFwiTmVuaHVtIGNvbnRlw7pkbyB2w6FsaWRvIGRldGVjdGFkby4gVW0gQ2FwdGNoYSBwb2RlIGVz\ndGFyIHByZXNlbnRlLlwiLFxuICAgICAgICAgICAgICAgIG91dE9mRGF0ZTogXCJPIHNjcmlwdCBl\nc3TDoSBkZXNhdHVhbGl6YWRvLCBhdHVhbGl6ZSBwYXJhIGEgdmVyc8OjbyBtYWlzIHJlY2VudGUu\nXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhclRpcHM6IFwiT2N1bHRhciBhIGJhcnJhIGRlIHBh\nZ2luYcOnw6NvLCBtdWRhciBwYXJhIGV4cGVyacOqbmNpYSBpbWVyc2l2YVwiLFxuICAgICAgICAg\nICAgICAgIHNldENvbmZpZ1BhZ2U6IFwiRGVmaW5pciBhIHDDoWdpbmEgYXR1YWwgY29tbyBhIHDD\noWdpbmEgZGUgY29uZmlndXJhw6fDo28gcGFkcsOjb1wiLFxuICAgICAgICAgICAgICAgIHdlZGF0\nYTJnaXRodWI6IFwiQWx0ZXJhciBvIGVuZGVyZcOnbyBkbyBXZWRhdGEgcGFyYSBvIGVuZGVyZcOn\nbyBlc3BlbGhvIG5vIHJlcG9zaXTDs3JpbyBkbyBHaXRIdWJcIixcbiAgICAgICAgICAgICAgICBh\nZGRPdGhlclByb3A6IFwiQWRpY2lvbmFyIHByb3ByaWVkYWRlcyBkZSByZWdyYVwiLFxuICAgICAg\nICAgICAgICAgIGFkZE5leHRTZWxlY3RvcjogXCJBZGljaW9uYXIgY29udGXDumRvIGRvIHNlbGV0\nb3IgY29tbyBuZXh0TGlua1wiLFxuICAgICAgICAgICAgICAgIGFkZFBhZ2VTZWxlY3RvcjogXCJB\nZGljaW9uYXIgY29udGXDumRvIGRvIHNlbGV0b3IgY29tbyBwYWdlRWxlbWVudFwiLFxuICAgICAg\nICAgICAgICAgIHByb3BOYW1lOiBcIkRpZ2l0ZSBvIG5vbWUgZGEgcHJvcHJpZWRhZGUgZGEgcmVn\ncmFcIixcbiAgICAgICAgICAgICAgICBwcm9wVmFsdWU6IFwiRGlnaXRlIG8gdmFsb3IgZGEgcHJv\ncHJpZWRhZGUgZGEgcmVncmFcIixcbiAgICAgICAgICAgICAgICBjdXN0b21GaXJzdDogXCJJZ25v\ncmFyIGNhY2hlIHBhcmEgcmVncmFzIHBlcnNvbmFsaXphZGFzIGxvY2Fpc1wiLFxuICAgICAgICAg\nICAgICAgIHJ1bGVzRXhhbXBsZTogXCJFeGVtcGxvIGRlIFJlZ3Jhc1wiLFxuICAgICAgICAgICAg\nICAgIGxhc3RQYWdlOiBcIsOabHRpbWEgcMOhZ2luYSBhdGluZ2lkYVwiLFxuICAgICAgICAgICAg\nICAgIGxhc3RQYWdlVGlwczogXCJNb3N0cmFyIGRpY2FzIGFvIGF0aW5naXIgYSDDumx0aW1hIHDD\noWdpbmFcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAg\nICBcL1wvIFRyYW5zbGF0ZWQgYnkgU3JLYWxvcHNpYSAoc3JrYWxvcHNpYUBnbWFpbC5jb20pLlxu\nICAgICAgICAgICAgbmFtZTogXCJFc3Bhw7FvbFwiLFxuICAgICAgICAgICAgbWF0Y2g6IFtcImVz\nXCIsIFwiZXMtQVJcIiwgXCJlcy1CT1wiLCBcImVzLUNMXCIsIFwiZXMtQ09cIiwgXCJlcy1DUlwi\nLCBcImVzLURPXCIsIFwiZXMtRUNcIiwgXCJlcy1FU1wiLCBcImVzLUdUXCIsIFwiZXMtSE5cIiwg\nXCJlcy1NWFwiLCBcImVzLU5JXCIsIFwiZXMtUEFcIiwgXCJlcy1QRVwiLCBcImVzLVBSXCIsIFwi\nZXMtUFlcIiwgXCJlcy1TVlwiLCBcImVzLVVZXCIsIFwiZXMtVkVcIl0sXG4gICAgICAgICAgICBs\nYW5nOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlRGVidWc6IFwiSGFiaWxpdGFyIHNhbGlkYSBk\nZSBkZXB1cmFjacOzblwiLFxuICAgICAgICAgICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogXCJO\nb3RpZmljYWNpw7NuIGRlc3B1w6lzIGRlIGFjdHVhbGl6YXIgbGFzIHJlZ2xhc1wiLFxuICAgICAg\nICAgICAgICAgIGRpc2FibGU6IFwiRGVzYWN0aXZhclwiLFxuICAgICAgICAgICAgICAgIGRpc2Fi\nbGVTaXRlOiBcIkFsdGVybmFyIGVzdGFkbyBkZXNhY3RpdmFkb1wiLFxuICAgICAgICAgICAgICAg\nIGRpc2FibGVTaXRlVGlwczogXCJEZXNhY3RpdmFkbyBlbiBlc3RlIHNpdGlvXCIsXG4gICAgICAg\nICAgICAgICAgZW5hYmxlU2l0ZVRpcHM6IFwiQWN0aXZhZG8gZW4gZXN0ZSBzaXRpb1wiLFxuICAg\nICAgICAgICAgICAgIGVuYWJsZTogXCLinIVIYWJpbGl0YXJcIixcbiAgICAgICAgICAgICAgICB0\nZW1wQWN0aXZlOiBcIlRlbXBvcmFsbWVudGUgYWN0aXZvXCIsXG4gICAgICAgICAgICAgICAgdG9U\nb3A6IFwiSXIgYWwgaW5pY2lvXCIsXG4gICAgICAgICAgICAgICAgdG9Cb3R0b206IFwiSXIgYWwg\nZmluYWxcIixcbiAgICAgICAgICAgICAgICBjdXJyZW50OiBcIlDDoWdpbmEgYWN0dWFsXCIsXG4g\nICAgICAgICAgICAgICAgZm9yY2VJZnJhbWU6IFwiRm9yemFyIHBhcmEgdW5pcnNlIGEgbGEgc2ln\ndWllbnRlIHDDoWdpbmFcIixcbiAgICAgICAgICAgICAgICBjYW5jZWxGb3JjZUlmcmFtZTogXCJD\nYW5jZWxhciB1bmnDs24gZm9yemFkYVwiLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyZTogXCJD\nb25maWd1cmFyXCIsXG4gICAgICAgICAgICAgICAgZmlyc3RVcGRhdGU6IFwiSGFnYSBjbGljIGFx\ndcOtIHBhcmEgaW5pY2lhbGl6YXIgbGFzIHJlZ2xhc1wiLFxuICAgICAgICAgICAgICAgIHVwZGF0\nZTogXCJBY3R1YWxpemFyIHJlZ2xhcyBlbiBsw61uZWFcIixcbiAgICAgICAgICAgICAgICBjbGlj\nazJ1cGRhdGU6IFwiSGFnYSBjbGljIHBhcmEgYWN0dWFsaXphciBsYXMgcmVnbGFzIGRlc2RlIGxh\nIFVSTCBhaG9yYVwiLFxuICAgICAgICAgICAgICAgIGxvYWROb3c6IFwiQ2FyZ2FyIGVsIHNpZ3Vp\nZW50ZSBhdXRvbcOhdGljYW1lbnRlXCIsXG4gICAgICAgICAgICAgICAgbG9hZENvbmZpcm06IFwi\nwr9DdcOhbnRhcyBww6FnaW5hcyBkZXNlYSBjYXJnYXI\/ICgwIHNpZ25pZmljYSBpbmZpbml0bylc\nIixcbiAgICAgICAgICAgICAgICBub05leHQ6IFwiTm8gc2UgZW5jb250csOzIGVsIGVubGFjZSBz\naWd1aWVudGUsIHBvciBmYXZvciBjcmVlIHVuYSBudWV2YSByZWdsYVwiLFxuICAgICAgICAgICAg\nICAgIHBhc3NTZWM6IFwiQWN0dWFsaXphZG8gaGFjZSAjdCMgc2VndW5kb3NcIixcbiAgICAgICAg\nICAgICAgICBwYXNzTWluOiBcIkFjdHVhbGl6YWRvIGhhY2UgI3QjIG1pbnV0b3NcIixcbiAgICAg\nICAgICAgICAgICBwYXNzSG91cjogXCJBY3R1YWxpemFkbyBoYWNlICN0IyBob3Jhc1wiLFxuICAg\nICAgICAgICAgICAgIHBhc3NEYXk6IFwiQWN0dWFsaXphZG8gaGFjZSAjdCMgZMOtYXNcIixcbiAg\nICAgICAgICAgICAgICBjYW50RGVsOiBcIk5vIHNlIHB1ZWRlbiBlbGltaW5hciBsYXMgcmVnbGFz\nIGluY29ycG9yYWRhc1wiLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1EZWw6IFwiwr9Fc3TDoSBz\nZWd1cm8gZGUgcXVlIGRlc2VhIGVsaW1pbmFyIGVzdGEgcmVnbGE\/XCIsXG4gICAgICAgICAgICAg\nICAgdXBkYXRlU3VjYzogXCJBY3R1YWxpemFjacOzbiBleGl0b3NhXCIsXG4gICAgICAgICAgICAg\nICAgYmVnaW5VcGRhdGU6IFwiQ29tZW56YXIgYWN0dWFsaXphY2nDs24sIGVzcGVyZSB1biBtb21l\nbnRvIHBvciBmYXZvclwiLFxuICAgICAgICAgICAgICAgIGN1c3RvbVVybHM6IFwiSW1wb3J0YXIg\nVVJMIGRlIHJlZ2xhcyBkZSBQYWdldHVhbCBvIEF1dG9QYWdlcml6ZSwgdW5hIFVSTCBwb3IgbMOt\nbmVhXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tUnVsZXM6IFwiSW50cm9kdXpjYSByZWdsYXMg\ncGVyc29uYWxpemFkYXMuIDxhIGhyZWY9JyN0Iyc+4pyN77iPQ29udHJpYnVpciByZWdsYXM8XC9h\nPlwiLFxuICAgICAgICAgICAgICAgIHNhdmU6IFwiR3VhcmRhclwiLFxuICAgICAgICAgICAgICAg\nIGxvYWRpbmdUZXh0OiBcIlNob2pvIENhcmdhbmRvLi4uXCIsXG4gICAgICAgICAgICAgICAgb3Bh\nY2l0eTogXCJPcGFjaWRhZFwiLFxuICAgICAgICAgICAgICAgIG9wYWNpdHlQbGFjZWhvbGRlcjog\nXCIwOiBvY3VsdGFyIGVzcGFjaWFkb3JcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyOiBcIk9j\ndWx0YXIgZWwgZXNwYWNpYWRvciBkZSBwYWdpbmFjacOzblwiLFxuICAgICAgICAgICAgICAgIGhp\nZGVCYXJCdXROb1N0b3A6IFwiT2N1bHRhciBwZXJvIG5vIGRldGVuZXJcIixcbiAgICAgICAgICAg\nICAgICBkYkNsaWNrMlN0b3A6IFwiSGFnYSBkb2JsZSBjbGljIGVuIGVsIGVzcGFjaW8gZW4gYmxh\nbmNvIHBhcmEgcGF1c2FyXCIsXG4gICAgICAgICAgICAgICAgc29ydFRpdGxlOiBcIkxhIG9yZGVu\nYWNpw7NuIHN1cnRpcsOhIGVmZWN0byBkZXNwdcOpcyBkZSBsYSBwcsOzeGltYSBhY3R1YWxpemFj\nacOzbiBkZSByZWdsYXNcIixcbiAgICAgICAgICAgICAgICBhdXRvUnVuOiBcIkhhYmlsaXRhciBh\ndXRvbcOhdGljYW1lbnRlIChtb2RvIGxpc3RhIG5lZ3JhKVwiLFxuICAgICAgICAgICAgICAgIGF1\ndG9Mb2FkTnVtOiBcIkNhbnRpZGFkIGRlIHDDoWdpbmFzIHBhcmEgcHJlY2FyZ2FyXCIsXG4gICAg\nICAgICAgICAgICAgdHVyblJhdGU6IFwiUGFzYXIgYSBsYSBzaWd1aWVudGUgcMOhZ2luYSBjdWFu\nZG8gZXN0w6kgYSBtZW5vcyBkZSDjgJBY44CRIHZlY2VzIGxhIGFsdHVyYSBkZSBsYSBww6FnaW5h\nIGRlc2RlIGVsIHBpZSBkZSBww6FnaW5hXCIsXG4gICAgICAgICAgICAgICAgaW5wdXRQYWdlTnVt\nOiBcIkluZ3Jlc2UgZWwgbsO6bWVybyBkZSBww6FnaW5hIHBhcmEgc2FsdGFyXCIsXG4gICAgICAg\nICAgICAgICAgZW5hYmxlSGlzdG9yeTogXCJFc2NyaWJpciBoaXN0b3JpYWwgZGUgbmF2ZWdhY2nD\ns24gZGVzcHXDqXMgZGUgcGFzYXIgbGEgcMOhZ2luYVwiLFxuICAgICAgICAgICAgICAgIGVuYWJs\nZUhpc3RvcnlBZnRlckluc2VydDogXCJFc2NyaWJpciBoaXN0b3JpYWwgZGUgbmF2ZWdhY2nDs24g\naW5tZWRpYXRhbWVudGUgZGVzcHXDqXMgZGUgdW5pciwgZGUgbG8gY29udHJhcmlvIGVzY3JpYmly\nIGRlc3B1w6lzIGRlIG5hdmVnYXJcIixcbiAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0\neTogXCJDYW1iaWFyIGF1dG9tw6F0aWNhbWVudGUgbGEgdmlzaWJpbGlkYWQgZGVsIGNvbnRlbmlk\nbyBwYXJhIG1lam9yYXIgZWwgcmVuZGltaWVudG8gZGUgcmVuZGVyaXphY2nDs25cIixcbiAgICAg\nICAgICAgICAgICBpbml0UnVuOiBcIlBhc2FyIHDDoWdpbmFzIGlubWVkaWF0YW1lbnRlIGRlc3B1\nw6lzIGRlIGFicmlyXCIsXG4gICAgICAgICAgICAgICAgcHJlbG9hZDogXCJQcmVjYXJnYXIgbGEg\nc2lndWllbnRlIHDDoWdpbmEgcGFyYSBhY2VsZXJhclwiLFxuICAgICAgICAgICAgICAgIGNsaWNr\nMkltcG9ydFJ1bGU6IFwiSGFnYSBjbGljIHBhcmEgaW1wb3J0YXIgZWwgZW5sYWNlIGRlIHJlZ2xh\ncyBiYXNlLCBsdWVnbyBlc3BlcmUgaGFzdGEgcXVlIGxhIGFjdHVhbGl6YWNpw7NuIGVzdMOpIGNv\nbXBsZXRhOiBcIixcbiAgICAgICAgICAgICAgICBmb3JjZUFsbEJvZHk6IFwiwr9VbmlyIGVsIGN1\nZXJwbyBjb21wbGV0byBkZSBsYSBww6FnaW5hP1wiLFxuICAgICAgICAgICAgICAgIG9wZW5Jbk5l\nd1RhYjogXCJBYnJpciBVUkxzIGRlIGFkaWNpb25lcyBlbiB1bmEgbnVldmEgcGVzdGHDsWFcIixc\nbiAgICAgICAgICAgICAgICBpbXBvcnRTdWNjOiBcIkltcG9ydGFjacOzbiBjb21wbGV0YWRhXCIs\nXG4gICAgICAgICAgICAgICAgaW1wb3J0OiBcIkltcG9ydGFyXCIsXG4gICAgICAgICAgICAgICAg\nZWRpdEN1cnJlbnQ6IFwiRWRpdGFyIHJlZ2xhIHBhcmEgbGEgYWN0dWFsXCIsXG4gICAgICAgICAg\nICAgICAgZWRpdEJsYWNrbGlzdDogXCJFZGl0YXIgVVJMcyBkZSBsYSBsaXN0YSBuZWdyYSwgdW5h\nIHBvciBsw61uZWEsIGFkbWl0ZSA\/ICogcGFyYSBjb21vZMOtblwiLFxuICAgICAgICAgICAgICAg\nIHVwQnRuSW1nOiBcIkljb25vIGRlIHZvbHZlciBhbCBpbmljaW9cIixcbiAgICAgICAgICAgICAg\nICBkb3duQnRuSW1nOiBcIkljb25vIGRlIGlyIGFsIHBpZSBkZSBww6FnaW5hXCIsXG4gICAgICAg\nICAgICAgICAgc2lkZUNvbnRyb2xsZXJJY29uOiBcIkljb25vIGRlIGxhIGJhcnJhIGxhdGVyYWxc\nIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dFRpdGxlOiBcIlRleHRvIGRlIGNhcmdhXCIs\nXG4gICAgICAgICAgICAgICAgZGJDbGljazJTdG9wQ3RybDogXCJUZWNsYSBDdHJsXCIsXG4gICAg\nICAgICAgICAgICAgZGJDbGljazJTdG9wQWx0OiBcIlRlY2xhIEFsdFwiLFxuICAgICAgICAgICAg\nICAgIGRiQ2xpY2syU3RvcFNoaWZ0OiBcIlRlY2xhIFNoaWZ0XCIsXG4gICAgICAgICAgICAgICAg\nZGJDbGljazJTdG9wTWV0YTogXCJUZWNsYSBNZXRhXCIsXG4gICAgICAgICAgICAgICAgZGJDbGlj\nazJTdG9wS2V5OiBcIlRlY2xhIGRlIGFjY2VzbyByw6FwaWRvXCIsXG4gICAgICAgICAgICAgICAg\ncGFnZUVsZW1lbnRDc3M6IFwiRXN0aWxvIHBlcnNvbmFsaXphZG8gcGFyYSBsb3MgZWxlbWVudG9z\nIHByaW5jaXBhbGVzIGRlIGxhIHDDoWdpbmFcIixcbiAgICAgICAgICAgICAgICBjdXN0b21Dc3M6\nIFwiQ1NTIGNvbXBsZXRvIHBlcnNvbmFsaXphZG9cIixcbiAgICAgICAgICAgICAgICBmaXJzdEFs\nZXJ0OiBcIk5vIGhhIGltcG9ydGFkbyBsYSByZWdsYSBiYXNlLCBwb3IgZmF2b3Igc2VsZWNjaW9u\nZSBsYSByZWdsYSBhZGVjdWFkYSBwYXJhIGltcG9ydGFyXCIsXG4gICAgICAgICAgICAgICAgcGlj\na2VyOiBcIlNlbGVjdG9yIGRlIGVsZW1lbnRvcyBkZSBww6FnaW5hIGRlIFBhZ2V0dWFsXCIsXG4g\nICAgICAgICAgICAgICAgY2xvc2VQaWNrZXI6IFwiQ2VycmFyIHNlbGVjdG9yIGRlIFBhZ2V0dWFs\nXCIsXG4gICAgICAgICAgICAgICAgcGlja2VyUGxhY2Vob2xkZXI6IFwiU2VsZWN0b3IgZGUgZWxl\nbWVudG9zLCBkw6lqZWxvIHZhY8OtbyBzaSBubyB0aWVuZSBpZGVhXCIsXG4gICAgICAgICAgICAg\nICAgcGlja2VyQ2hlY2s6IFwiQ29tcHJvYmFyIHNlbGVjdG9yIHkgY29waWFyXCIsXG4gICAgICAg\nICAgICAgICAgc3dpdGNoU2VsZWN0b3I6IFwiSGFnYSBjbGljIHBhcmEgY2FtYmlhciBlbCBlbGVt\nZW50b1wiLFxuICAgICAgICAgICAgICAgIGdvdG9FZGl0OiBcIklyIGEgZWRpdGFyIGxhIHJlZ2xh\nIGNvbiBlbCBzZWxlY3RvciBhY3R1YWxcIixcbiAgICAgICAgICAgICAgICBtYW51YWxNb2RlOiBc\nIkRlc2hhYmlsaXRhciB1bmnDs24sIHBhc2FyIHDDoWdpbmFzIG1hbnVhbG1lbnRlIGNvbiBsYXMg\ndGVjbGFzIGRlIGZsZWNoYSBkZXJlY2hhIChvIGRlc3BhY2hhciBldmVudG8gJ3BhZ2V0dWFsLm5l\neHQnKVwiLFxuICAgICAgICAgICAgICAgIGNsaWNrTW9kZTogXCJEZXNoYWJpbGl0YXIgdW5pw7Nu\nLCBoYWNlciBjbGljIGF1dG9tw6F0aWNhbWVudGUgZW4gbGEgc2lndWllbnRlIHDDoWdpbmEgYWwg\nZGVzcGxhemFyc2UgYWwgZmluYWwgZGUgbGEgcMOhZ2luYVwiLFxuICAgICAgICAgICAgICAgIHBh\nZ2VCYXJNZW51OiBcIkhhZ2EgY2xpYyBlbiBlbCBjZW50cm8gZGUgbGEgYmFycmEgZGUgcMOhZ2lu\nYSBwYXJhIGFicmlyIGVsIG1lbsO6IGRlbCBzZWxlY3RvclwiLFxuICAgICAgICAgICAgICAgIG5l\neHRTd2l0Y2g6IFwiQ2FtYmlhciBhbCBzaWd1aWVudGUgZW5sYWNlXCIsXG4gICAgICAgICAgICAg\nICAgYXJyb3dUb1Njcm9sbDogXCJQcmVzaW9uZSBsYSB0ZWNsYSBkZSBmbGVjaGEgaXpxdWllcmRh\nIHBhcmEgZGVzcGxhemFyc2UgYW50ZXJpb3IgeSBsYSB0ZWNsYSBkZSBmbGVjaGEgZGVyZWNoYSBw\nYXJhIGRlc3BsYXphcnNlIHNpZ3VpZW50ZVwiLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9s\nbGVyOiBcIk1vc3RyYXIgbGEgYmFycmEgZGUgY29udHJvbCBkZSBwYWdpbmFjacOzbiBlbiBsYSBi\nYXJyYSBsYXRlcmFsXCIsXG4gICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXJTY3JvbGw6IFwi\nQWx0ZXJuYXIgZGVzcGxhemFtaWVudG9cIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxl\nckFsd2F5czogXCJNb3N0cmFyIHNpZW1wcmVcIixcbiAgICAgICAgICAgICAgICBoaWRlTG9hZGlu\nZ0ljb246IFwiT2N1bHRhciBhbmltYWNpw7NuIGRlIGNhcmdhXCIsXG4gICAgICAgICAgICAgICAg\naGlkZUJhckFycm93OiBcIk9jdWx0YXIgZmxlY2hhIHBhcmEgbGEgYmFycmEgZGUgcMOhZ2luYVwi\nLFxuICAgICAgICAgICAgICAgIGR1cGxpY2F0ZTogXCJQYWdldHVhbCBkdXBsaWNhZG8gaGEgc2lk\nbyBpbnN0YWxhZG8sIMKhcmV2aXNlIHN1IGdlc3RvciBkZSBzY3JpcHRzIVwiLFxuICAgICAgICAg\nICAgICAgIGZvcmNlU3RhdGVJZnJhbWU6IFwiSW5jcnVzdGFyIHDDoWdpbmEgY29tcGxldGEgY29t\nbyBpZnJhbWVcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlRHluYW1pYzogXCJDYXJnYXIg\nY29udGVuaWRvIGRpbsOhbWljbyBhIHRyYXbDqXMgZGUgaWZyYW1lXCIsXG4gICAgICAgICAgICAg\nICAgZm9yY2VTdGF0ZURpc2FibGU6IFwiRGVzaGFiaWxpdGFyIHBhc2FyIHDDoWdpbmFzIGVuIGVz\ndGUgc2l0aW9cIixcbiAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsUmF0ZTogXCJWZWxvY2lkYWQg\nZGUgZGVzcGxhemFtaWVudG8gKDF+MTAwMClcIixcbiAgICAgICAgICAgICAgICBkaXNhYmxlQXV0\nb1Njcm9sbDogXCJEZXRlbmVyIGRlc3BsYXphbWllbnRvIGF1dG9tw6F0aWNvXCIsXG4gICAgICAg\nICAgICAgICAgZW5hYmxlQXV0b1Njcm9sbDogXCJIYWJpbGl0YXIgZGVzcGxhemFtaWVudG8gYXV0\nb23DoXRpY29cIixcbiAgICAgICAgICAgICAgICB0b2dnbGVBdXRvU2Nyb2xsOiBcIkFsdGVybmFy\nIGRlc3BsYXphbWllbnRvIGF1dG9tw6F0aWNvXCIsXG4gICAgICAgICAgICAgICAgcnVsZVJlcXVl\nc3Q6IFwiU29saWNpdHVkIGRlIHJlZ2xhXCIsXG4gICAgICAgICAgICAgICAgcGFnZTogXCJQw6Fn\naW5hIFwiLFxuICAgICAgICAgICAgICAgIHByZXZQYWdlOiBcIlDDoWdpbmEgYW50ZXJpb3JcIixc\nbiAgICAgICAgICAgICAgICBuZXh0UGFnZTogXCJQw6FnaW5hIHNpZ3VpZW50ZVwiLFxuICAgICAg\nICAgICAgICAgIGVycm9yUnVsZXNNdXN0QmVBcnJheTogXCLCoUxhcyByZWdsYXMgZGViZW4gc2Vy\nIHVuIGFycmF5IVwiLFxuICAgICAgICAgICAgICAgIGVycm9ySnNvbjogXCJFcnJvciBKU09OLCDC\noXZlcmlmaXF1ZSBkZSBudWV2byFcIixcbiAgICAgICAgICAgICAgICBlZGl0U3VjY2VzczogXCJF\nZGl0YWRvIGV4aXRvc2FtZW50ZVwiLFxuICAgICAgICAgICAgICAgIGVycm9yV3JvbmdVcmw6IFwi\nVVJMIGluY29ycmVjdGEsIMKhdmVyaWZpcXVlIGRlIG51ZXZvIVwiLFxuICAgICAgICAgICAgICAg\nIGVycm9yQWxyZWFkeUV4aXN0czogXCLCoVlhIGV4aXN0ZSFcIixcbiAgICAgICAgICAgICAgICBz\nZXR0aW5nc1NhdmVkOiBcIkxhIGNvbmZpZ3VyYWNpw7NuIHNlIGhhIGd1YXJkYWRvLCBhY3R1YWxp\nY2UgcGFyYSB2ZXJcIixcbiAgICAgICAgICAgICAgICBpZnJhbWU6IFwiSWZyYW1lXCIsXG4gICAg\nICAgICAgICAgICAgZHluYW1pYzogXCJEaW7DoW1pY29cIixcbiAgICAgICAgICAgICAgICByZWxv\nYWRQYWdlOiBcIkVkaWNpw7NuIGNvbXBsZXRhZGEsIMK\/cmVjYXJnYXIgcMOhZ2luYSBhaG9yYT9c\nIixcbiAgICAgICAgICAgICAgICBjb3BpZWQ6IFwiQ29waWFkb1wiLFxuICAgICAgICAgICAgICAg\nIG5vVmFsaWRDb250ZW50OiBcIk5vIHNlIGRldGVjdMOzIGNvbnRlbmlkbyB2w6FsaWRvLCBwdWVk\nZSBzZXIgbmVjZXNhcmlvIHJlYWxpemFyIHVuYSBhY2Npw7NuIGRlIENhcHRjaGEsIGhhZ2EgY2xp\nYyBwYXJhIHZlclwiLFxuICAgICAgICAgICAgICAgIG91dE9mRGF0ZTogXCJFbCBzY3JpcHQgZXN0\nw6EgZGVzYWN0dWFsaXphZG8sIMKhYWN0dWFsaWNlIGEgbGEgw7psdGltYSB2ZXJzacOzbiBhIHRp\nZW1wbyFcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyVGlwczogXCJPY3VsdGFyIGxhIGJhcnJh\nIGRlIHBhZ2luYWNpw7NuLCBhbHRlcm5hciBleHBlcmllbmNpYSBpbm1lcnNpdmFcIixcbiAgICAg\nICAgICAgICAgICBzZXRDb25maWdQYWdlOiBcIkVzdGFibGVjZXIgbGEgcMOhZ2luYSBhY3R1YWwg\nY29tbyBsYSBww6FnaW5hIGRlIGNvbmZpZ3VyYWNpw7NuIHByZWRldGVybWluYWRhXCIsXG4gICAg\nICAgICAgICAgICAgd2VkYXRhMmdpdGh1YjogXCJDYW1iaWFyIGxhIGRpcmVjY2nDs24gZGUgd2Vk\nYXRhIGEgbGEgZGlyZWNjacOzbiBlc3Blam8gZW4gZWwgcmVwb3NpdG9yaW8gZGUgR2l0SHViXCIs\nXG4gICAgICAgICAgICAgICAgYWRkT3RoZXJQcm9wOiBcIkFncmVnYXIgcHJvcGllZGFkIGRlIHJl\nZ2xhXCIsXG4gICAgICAgICAgICAgICAgYWRkTmV4dFNlbGVjdG9yOiBcIkFncmVnYXIgY29udGVu\naWRvIGRlbCBzZWxlY3RvciBjb21vIG5leHRMaW5rXCIsXG4gICAgICAgICAgICAgICAgYWRkUGFn\nZVNlbGVjdG9yOiBcIkFncmVnYXIgY29udGVuaWRvIGRlbCBzZWxlY3RvciBjb21vIHBhZ2VFbGVt\nZW50XCIsXG4gICAgICAgICAgICAgICAgcHJvcE5hbWU6IFwiSW5ncmVzZSBlbCBub21icmUgZGUg\nbGEgcHJvcGllZGFkIGRlIGxhIHJlZ2xhXCIsXG4gICAgICAgICAgICAgICAgcHJvcFZhbHVlOiBc\nIkluZ3Jlc2UgZWwgdmFsb3IgZGUgbGEgcHJvcGllZGFkIGRlIGxhIHJlZ2xhXCIsXG4gICAgICAg\nICAgICAgICAgY3VzdG9tRmlyc3Q6IFwiSWdub3JhciBjYWNow6kgcGFyYSByZWdsYXMgcGVyc29u\nYWxpemFkYXMgbG9jYWxlc1wiLFxuICAgICAgICAgICAgICAgIHJ1bGVzRXhhbXBsZTogXCJFamVt\ncGxvIGRlIHJlZ2xhc1wiLFxuICAgICAgICAgICAgICAgIGxhc3RQYWdlOiBcIkxsZWfDsyBhIGxh\nIMO6bHRpbWEgcMOhZ2luYVwiLFxuICAgICAgICAgICAgICAgIGxhc3RQYWdlVGlwczogXCJNb3N0\ncmFyIGNvbnNlam9zIGFsIGxsZWdhciBhIGxhIMO6bHRpbWEgcMOhZ2luYVwiXG4gICAgICAgICAg\nICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwvXC8gVHJhbnNsYXRlZCBi\neSBQcmFua3N0ZXIgMTk5ICh2ZmdnZjk1NTY1KS5cbiAgICAgICAgICAgIG5hbWU6IFwiQXJhYmlj\nXCIsXG4gICAgICAgICAgICBtYXRjaDogW1wiYXJcIiwgXCJhci1BRVwiLCBcImFyLUJIXCIsIFwi\nYXItRFpcIiwgXCJhci1FR1wiLCBcImFyLUlRXCIsIFwiYXItSk9cIiwgXCJhci1LV1wiLCBcImFy\nLUxCXCIsIFwiYXItTFlcIiwgXCJhci1NQVwiLCBcImFyLU9NXCIsIFwiYXItUUFcIiwgXCJhci1T\nQVwiLCBcImFyLVNZXCIsIFwiYXItVE5cIiwgXCJhci1ZRVwiXSxcbiAgICAgICAgICAgIGVuY29k\nZTogdHJ1ZSwgXC9cLyBJbiBGaXJlZm94LCBBcmFiaWMgY2hhcmFjdGVycyBtYXkgY2F1c2UgaXNz\ndWVzLlxuICAgICAgICAgICAgbGFuZzoge1xuICAgICAgICAgICAgICAgIGVuYWJsZURlYnVnOiBc\nIiVEOCVBQSVEOSU4NSVEOSU4MyVEOSU4QSVEOSU4NiUyMCVEOCVBQSVEOCVCNSVEOCVBRCVEOSU4\nQSVEOCVBRCUyMCVEOCVBNyVEOSU4NCVEOCVBMyVEOCVBRSVEOCVCNyVEOCVBNyVEOCVBMVwiLFxu\nICAgICAgICAgICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogXCIlRDglQTUlRDglQjQlRDglQjkl\nRDglQTclRDglQjElMjAlRDglQTglRDglQjklRDglQUYlMjAlRDglQUElRDglQUQlRDglQUYlRDkl\nOEElRDglQUIlMjAlRDglQTclRDklODQlRDklODIlRDklODglRDglQTclRDglQjklRDglQUZcIixc\nbiAgICAgICAgICAgICAgICBkaXNhYmxlOiBcIiVEOSU4NSVEOCVCOSVEOCVCNyVEOSU4NFwiLFxu\nICAgICAgICAgICAgICAgIGRpc2FibGVTaXRlOiBcIiVEOCVBQSVEOCVBOCVEOCVBRiVEOSU4QSVE\nOSU4NCUyMCVEOCVBRCVEOCVBNyVEOSU4NCVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVC\nOSVEOCVCNyVEOSU4QSVEOSU4NFwvJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ5JTgxJUQ4JUI5JUQ5JThB\nJUQ5JTg0JTIwJUQ5JTg0JUQ5JTg0JUQ5JTg1JUQ5JTg4JUQ5JTgyJUQ4JUI5XCIsXG4gICAgICAg\nICAgICAgICAgZGlzYWJsZVNpdGVUaXBzOiBcIiVEOSU4NSVEOCVCOSVEOCVCNyVEOSU4NCUyMCVE\nOCVCOSVEOSU4NCVEOSU4OSUyMCVEOSU4NyVEOCVCMCVEOCVBNyUyMCVEOCVBNyVEOSU4NCVEOSU4\nNSVEOSU4OCVEOSU4MiVEOCVCOVwiLFxuICAgICAgICAgICAgICAgIGVuYWJsZVNpdGVUaXBzOiBc\nIiVEOSU4NSVEOSU4MSVEOCVCOSVEOSU4NCUyMCVEOCVCOSVEOSU4NCVEOSU4OSUyMCVEOSU4NyVE\nOCVCMCVEOCVBNyUyMCVEOCVBNyVEOSU4NCVEOSU4NSVEOSU4OCVEOSU4MiVEOCVCOVwiLFxuICAg\nICAgICAgICAgICAgIGVuYWJsZTogXCIlRDklODUlRDklODElRDglQjklRDklODRcIixcbiAgICAg\nICAgICAgICAgICB0ZW1wQWN0aXZlOiBcIiVEOSU4NiVEOCVCNCVEOCVCNyUyMCVEOSU4NSVEOCVB\nNCVEOSU4MiVEOCVBQSVEOCVBN1wiLFxuICAgICAgICAgICAgICAgIHRvVG9wOiBcIiVEOCVBNSVE\nOSU4NCVEOSU4OSUyMCVEOCVBNyVEOSU4NCVEOCVBMyVEOCVCOSVEOSU4NCVEOSU4OVwiLFxuICAg\nICAgICAgICAgICAgIHRvQm90dG9tOiBcIiVEOCVBNSVEOSU4NCVEOSU4OSUyMCVEOCVBNyVEOSU4\nNCVEOCVBMyVEOCVCMyVEOSU4MSVEOSU4NFwiLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IFwi\nJUQ4JUE3JUQ5JTg0JUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFE\nJUQ4JUE3JUQ5JTg0JUQ5JThBJUQ4JUE5XCIsXG4gICAgICAgICAgICAgICAgZm9yY2VJZnJhbWU6\nIFwiJUQ4JUE1JUQ4JUFDJUQ4JUE4JUQ4JUE3JUQ4JUIxJTIwJUQ4JUI5JUQ5JTg0JUQ5JTg5JTIw\nJUQ4JUE3JUQ5JTg0JUQ4JUE3JUQ5JTg2JUQ4JUI2JUQ5JTg1JUQ4JUE3JUQ5JTg1JTIwJUQ5JTg0\nJUQ5JTg0JUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUE3\nJUQ5JTg0JUQ5JThBJUQ4JUE5XCIsXG4gICAgICAgICAgICAgICAgY2FuY2VsRm9yY2VJZnJhbWU6\nIFwiJUQ4JUE1JUQ5JTg0JUQ4JUJBJUQ4JUE3JUQ4JUExJTIwJUQ4JUE3JUQ5JTg0JUQ4JUE3JUQ5\nJTg2JUQ4JUI2JUQ5JTg1JUQ4JUE3JUQ5JTg1JTIwJUQ4JUE3JUQ5JTg0JUQ5JTgyJUQ4JUIzJUQ4\nJUIxJUQ5JThBXCIsXG4gICAgICAgICAgICAgICAgY29uZmlndXJlOiBcIiVEOCVBNSVEOCVCOSVE\nOCVBRiVEOCVBNyVEOCVBRlwiLFxuICAgICAgICAgICAgICAgIGZpcnN0VXBkYXRlOiBcIiVEOCVB\nNyVEOSU4NiVEOSU4MiVEOCVCMSUyMCVEOSU4NyVEOSU4NiVEOCVBNyUyMCVEOSU4NCVEOCVBQSVE\nOSU4MSVEOCVCOSVEOSU4QSVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOSU4MiVEOSU4OCVEOCVBNyVE\nOCVCOSVEOCVBRiUyMCVEOSU4NCVEOCVBMyVEOSU4OCVEOSU4NCUyMCVEOSU4NSVEOCVCMSVEOCVB\nOVwiLFxuICAgICAgICAgICAgICAgIHVwZGF0ZTogXCIlRDglQUElRDglQUQlRDglQUYlRDklOEEl\nRDglQUIlMjAlRDglQTclRDklODQlRDklODIlRDklODglRDglQTclRDglQjklRDglQUYlMjAlRDgl\nQjklRDglQTglRDglQjElMjAlRDglQTclRDklODQlRDglQTUlRDklODYlRDglQUElRDglQjElRDkl\nODYlRDglQUFcIixcbiAgICAgICAgICAgICAgICBjbGljazJ1cGRhdGU6IFwiJUQ4JUE3JUQ5JTg2\nJUQ5JTgyJUQ4JUIxJTIwJUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUFGJUQ5JThBJUQ4JUFCJTIwJUQ4\nJUE3JUQ5JTg0JUQ5JTgyJUQ5JTg4JUQ4JUE3JUQ4JUI5JUQ4JUFGJTIwJUQ5JTg1JUQ5JTg2JTIw\nJUQ4JUE3JUQ5JTg0JUQ4JUIxJUQ4JUE3JUQ4JUE4JUQ4JUI3JTIwJUQ4JUE3JUQ5JTg0JUQ4JUEy\nJUQ5JTg2XCIsXG4gICAgICAgICAgICAgICAgbG9hZE5vdzogXCIlRDglQUElRDglQUQlRDklODUl\nRDklOEElRDklODQlMjAlRDglQTclRDklODQlRDglQUElRDglQTclRDklODQlRDklOEElMjAlRDgl\nQUElRDklODQlRDklODIlRDglQTclRDglQTYlRDklOEElRDklOEIlRDglQTdcIixcbiAgICAgICAg\nICAgICAgICBsb2FkQ29uZmlybTogXCIlRDklODMlRDklODUlMjAlRDglQjklRDglQUYlRDglQUYl\nMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQlRDglQTclRDglQUElMjAlRDglQTclRDkl\nODQlRDglQUElRDklOEElMjAlRDglQUElRDglQjElRDglQkElRDglQTglMjAlRDglQUElRDglQUQl\nRDklODUlRDklOEElRDklODQlRDklODclRDglQTclRDglOUYlMjAoMCUyMCVEOSU4QSVEOCVCOSVE\nOSU4NiVEOSU4QSUyMCVEOSU4NCVEOCVBNyVEOSU4NiVEOSU4NyVEOCVBNyVEOCVBNiVEOSU4QSlc\nIixcbiAgICAgICAgICAgICAgICBub05leHQ6IFwiJUQ5JTg0JUQ5JTg1JTIwJUQ5JThBJUQ4JUFB\nJUQ5JTg1JTIwJUQ4JUE3JUQ5JTg0JUQ4JUI5JUQ4JUFCJUQ5JTg4JUQ4JUIxJTIwJUQ4JUI5JUQ5\nJTg0JUQ5JTg5JTIwJUQ4JUIxJUQ4JUE3JUQ4JUE4JUQ4JUI3JTIwJUQ4JUE3JUQ5JTg0JUQ4JUI1\nJUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUE3JUQ5JTg0JUQ5JThB\nJUQ4JUE5JUQ4JThDJTIwJUQ5JThBJUQ4JUIxJUQ4JUFDJUQ5JTg5JTIwJUQ4JUE1JUQ5JTg2JUQ4\nJUI0JUQ4JUE3JUQ4JUExJTIwJUQ5JTgyJUQ4JUE3JUQ4JUI5JUQ4JUFGJUQ4JUE5JTIwJUQ4JUFD\nJUQ4JUFGJUQ5JThBJUQ4JUFGJUQ4JUE5XCIsXG4gICAgICAgICAgICAgICAgcGFzc1NlYzogXCIl\nRDglQUElRDklODUlMjAlRDglQTclRDklODQlRDglQUElRDglQUQlRDglQUYlRDklOEElRDglQUIl\nMjAlRDklODUlRDklODYlRDglQjAlMjAjdCMlMjAlRDglQUIlRDglQTclRDklODYlRDklOEElRDgl\nQTlcIixcbiAgICAgICAgICAgICAgICBwYXNzTWluOiBcIiVEOCVBQSVEOSU4NSUyMCVEOCVBNyVE\nOSU4NCVEOCVBQSVEOCVBRCVEOCVBRiVEOSU4QSVEOCVBQiUyMCVEOSU4NSVEOSU4NiVEOCVCMCUy\nMCN0IyUyMCVEOCVBRiVEOSU4MiVEOSU4QSVEOSU4MiVEOCVBOVwiLFxuICAgICAgICAgICAgICAg\nIHBhc3NIb3VyOiBcIiVEOCVBQSVEOSU4NSUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVBRCVEOCVB\nRiVEOSU4QSVEOCVBQiUyMCVEOSU4NSVEOSU4NiVEOCVCMCUyMCN0IyUyMCVEOCVCMyVEOCVBNyVE\nOCVCOSVEOCVBOVwiLFxuICAgICAgICAgICAgICAgIHBhc3NEYXk6IFwiJUQ4JUFBJUQ5JTg1JTIw\nJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUFGJUQ5JThBJUQ4JUFCJTIwJUQ5JTg1JUQ5JTg2\nJUQ4JUIwJTIwI3QjJTIwJUQ5JThBJUQ5JTg4JUQ5JTg1XCIsXG4gICAgICAgICAgICAgICAgY2Fu\ndERlbDogXCIlRDklODQlRDglQTclMjAlRDklOEElRDklODUlRDklODMlRDklODYlMjAlRDglQUQl\nRDglQjAlRDklODElMjAlRDglQTclRDklODQlRDklODIlRDklODglRDglQTclRDglQjklRDglQUYl\nMjAlRDglQTclRDklODQlRDklODUlRDglQUYlRDklODUlRDglQUMlRDglQTlcIixcbiAgICAgICAg\nICAgICAgICBjb25maXJtRGVsOiBcIiVEOSU4NyVEOSU4NCUyMCVEOCVBMyVEOSU4NiVEOCVBQSUy\nMCVEOSU4NSVEOCVBQSVEOCVBMyVEOSU4MyVEOCVBRiUyMCVEOSU4NSVEOSU4NiUyMCVEOCVBRCVE\nOCVCMCVEOSU4MSUyMCVEOSU4NyVEOCVCMCVEOSU4NyUyMCVEOCVBNyVEOSU4NCVEOSU4MiVEOCVB\nNyVEOCVCOSVEOCVBRiVEOCVBOSVEOCU5RlwiLFxuICAgICAgICAgICAgICAgIHVwZGF0ZVN1Y2M6\nIFwiJUQ4JUFBJUQ5JTg1JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUFGJUQ5JThBJUQ4\nJUFCJTIwJUQ4JUE4JUQ5JTg2JUQ4JUFDJUQ4JUE3JUQ4JUFEXCIsXG4gICAgICAgICAgICAgICAg\nYmVnaW5VcGRhdGU6IFwiJUQ4JUE4JUQ4JUFGJUQ4JUEzJTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4\nJUFEJUQ4JUFGJUQ5JThBJUQ4JUFCJUQ4JThDJTIwJUQ5JThBJUQ4JUIxJUQ4JUFDJUQ5JTg5JTIw\nJUQ4JUE3JUQ5JTg0JUQ4JUE3JUQ5JTg2JUQ4JUFBJUQ4JUI4JUQ4JUE3JUQ4JUIxJTIwJUQ5JTg0\nJUQ4JUFEJUQ4JUI4JUQ4JUE5XCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tVXJsczogXCIlRDgl\nQTclRDglQjMlRDglQUElRDklOEElRDglQjElRDglQTclRDglQUYlMjAlRDglQjElRDglQTclRDgl\nQTglRDglQjclMjAlRDklODIlRDglQTclRDglQjklRDglQUYlRDglQTklMjBQYWdldHVhbCUyMCVE\nOCVBMyVEOSU4OCUyMEF1dG9QYWdlcml6ZSVEOCU4QyUyMCVEOCVCMSVEOCVBNyVEOCVBOCVEOCVC\nNyUyMCVEOSU4OCVEOCVBNyVEOCVBRCVEOCVBRiUyMCVEOSU4NCVEOSU4MyVEOSU4NCUyMCVEOCVC\nMyVEOCVCNyVEOCVCMVwiLFxuICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVzOiBcIiVEOCVBNSVE\nOCVBRiVEOCVBRSVEOCVBNyVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOSU4MiVEOSU4OCVEOCVBNyVE\nOCVCOSVEOCVBRiUyMCVEOCVBNyVEOSU4NCVEOSU4NSVEOCVBRSVEOCVCNSVEOCVCNSVEOCVBOS4l\nMjAlM0NhJTIwaHJlZj0nI3QjJyUzRSVFMiU5QyU4RCVFRiVCOCU4RiVEOCVCMyVEOCVBNyVEOSU4\nNyVEOSU4NSUyMCVEOCVBOCVEOCVBNyVEOSU4NCVEOSU4MiVEOSU4OCVEOCVBNyVEOCVCOSVEOCVB\nRiUzQ1wvYSUzRVwiLFxuICAgICAgICAgICAgICAgIHNhdmU6IFwiJUQ4JUFEJUQ5JTgxJUQ4JUI4\nXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZ1RleHQ6IFwiJUQ4JUFDJUQ4JUE3JUQ4JUIxJUQ5\nJThEJTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ5JTg1JUQ5JThBJUQ5JTg0Li4uXCIsXG4g\nICAgICAgICAgICAgICAgb3BhY2l0eTogXCIlRDglQTclRDklODQlRDglQjQlRDklODElRDglQTcl\nRDklODElRDklOEElRDglQTlcIixcbiAgICAgICAgICAgICAgICBvcGFjaXR5UGxhY2Vob2xkZXI6\nIFwiMDolMjAlRDglQTUlRDglQUUlRDklODElRDglQTclRDglQTElMjAlRDglQTclRDklODQlRDkl\nODElRDglQTclRDglQjUlRDklODRcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyOiBcIiVEOCVB\nNSVEOCVBRSVEOSU4MSVEOCVBNyVEOCVBMSUyMCVEOCVBNyVEOSU4NCVEOSU4MSVEOCVBNyVEOCVC\nNSVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVCNSVEOSU4MSVEOCVBRCVEOSU4QVwiLFxu\nICAgICAgICAgICAgICAgIGhpZGVCYXJCdXROb1N0b3A6IFwiJUQ4JUE1JUQ4JUFFJUQ5JTgxJUQ4\nJUE3JUQ4JUExJUQ4JThDJTIwJUQ5JTg0JUQ5JTgzJUQ5JTg2JTIwJUQ5JTg0JUQ4JUE3JTIwJUQ4\nJUFBJUQ4JUFBJUQ5JTg4JUQ5JTgyJUQ5JTgxXCIsXG4gICAgICAgICAgICAgICAgZGJDbGljazJT\ndG9wOiBcIiVEOCVBNyVEOSU4NiVEOSU4MiVEOCVCMSUyMCVEOSU4NSVEOCVCMiVEOCVBRiVEOSU4\nOCVEOCVBQyUyMCVEOCVCOSVEOSU4NCVEOSU4OSUyMCVEOCVBNyVEOSU4NCVEOSU4NSVEOCVCMyVE\nOCVBNyVEOCVBRCVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOSU4MSVEOCVBNyVEOCVCMSVEOCVCQSVE\nOCVBOSUyMCVEOSU4NCVEOSU4NCVEOCVBNSVEOSU4QSVEOSU4MiVEOCVBNyVEOSU4MVwiLFxuICAg\nICAgICAgICAgICAgIHNvcnRUaXRsZTogXCIlRDklOEElRDglQUElRDklODUlMjAlRDglQUElRDkl\nODElRDglQjklRDklOEElRDklODQlMjAlRDglQTclRDklODQlRDklODElRDglQjElRDglQjIlMjAl\nRDglQTglRDglQjklRDglQUYlMjAlRDglQTclRDklODQlRDglQUElRDglQUQlRDglQUYlRDklOEEl\nRDglQUIlMjAlRDglQTclRDklODQlRDglQUElRDglQTclRDklODQlRDklOEElMjAlRDklODQlRDkl\nODQlRDklODIlRDklODglRDglQTclRDglQjklRDglQUZcIixcbiAgICAgICAgICAgICAgICBhdXRv\nUnVuOiBcIiVEOCVBQSVEOSU4NSVEOSU4MyVEOSU4QSVEOSU4NiUyMCVEOCVBQSVEOSU4NCVEOSU4\nMiVEOCVBNyVEOCVBNiVEOSU4QSUyMCglRDklODglRDglQjYlRDglQjklMjAlRDglQTclRDklODQl\nRDklODIlRDglQTclRDglQTYlRDklODUlRDglQTklMjAlRDglQTclRDklODQlRDglQjMlRDklODgl\nRDglQUYlRDglQTclRDglQTEpXCIsXG4gICAgICAgICAgICAgICAgYXV0b0xvYWROdW06IFwiJUQ4\nJUI5JUQ4JUFGJUQ4JUFGJTIwJUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE3JUQ4JUFBJTIwJUQ4JUE3\nJUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ5JTg1JUQ5JThBJUQ5JTg0JTIwJUQ4JUE3JUQ5JTg0JUQ5JTg1\nJUQ4JUIzJUQ4JUE4JUQ5JTgyXCIsXG4gICAgICAgICAgICAgICAgdHVyblJhdGU6IFwiJUQ4JUE3\nJUQ5JTg0JUQ4JUE3JUQ5JTg2JUQ4JUFBJUQ5JTgyJUQ4JUE3JUQ5JTg0JTIwJUQ5JTg0JUQ5JTg0\nJUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUE3JUQ5JTg0\nJUQ5JThBJUQ4JUE5JTIwJUQ4JUI5JUQ5JTg2JUQ4JUFGJUQ5JTg1JUQ4JUE3JTIwJUQ4JUFBJUQ5\nJTgzJUQ5JTg4JUQ5JTg2JTIwJUQ4JUE3JUQ5JTg0JUQ5JTg1JUQ4JUIzJUQ4JUE3JUQ5JTgxJUQ4\nJUE5JTIwJUQ4JUEzJUQ5JTgyJUQ5JTg0JTIwJUQ5JTg1JUQ5JTg2JTIwJUUzJTgwJTkwWCVFMyU4\nMCU5MSUyMCVEOSU4NSVEOCVCMSVEOCVBNyVEOCVBQSUyMCVEOCVBNyVEOCVCMSVEOCVBQSVEOSU4\nMSVEOCVBNyVEOCVCOSUyMCVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVEOCVBRCVEOCVBOSUyMCVE\nOSU4NSVEOSU4NiUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVCMCVEOSU4QSVEOSU4QSVEOSU4NFwi\nLFxuICAgICAgICAgICAgICAgIGlucHV0UGFnZU51bTogXCIlRDglQTMlRDglQUYlRDglQUUlRDkl\nODQlMjAlRDglQjElRDklODIlRDklODUlMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQl\nRDglQTklMjAlRDklODQlRDklODQlRDglQTclRDklODYlRDglQUElRDklODIlRDglQTclRDklODRc\nIixcbiAgICAgICAgICAgICAgICBlbmFibGVIaXN0b3J5OiBcIiVEOSU4MyVEOCVBQSVEOCVBNyVE\nOCVBOCVEOCVBOSUyMCVEOCVCMyVEOCVBQyVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVC\nNSVEOSU4MSVEOCVBRCUyMCVEOCVBOCVEOCVCOSVEOCVBRiUyMCVEOCVBQSVEOCVBRCVEOSU4OCVE\nOSU4QSVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVEOCVBRCVEOCVBOVwiLFxuICAg\nICAgICAgICAgICAgIGVuYWJsZUhpc3RvcnlBZnRlckluc2VydDogXCIlRDklODMlRDglQUElRDgl\nQTclRDglQTglRDglQTklMjAlRDglQjMlRDglQUMlRDklODQlMjAlRDglQTclRDklODQlRDglQUEl\nRDglQjUlRDklODElRDglQUQlMjAlRDklODElRDklODglRDglQjElRDklOEIlRDglQTclMjAlRDgl\nQTglRDglQjklRDglQUYlMjAlRDglQTclRDklODQlRDglQUYlRDklODUlRDglQUMlRDglOEMlMjAl\nRDglQTMlRDklODglMjAlRDglQTglRDglQjklRDglQUYlMjAlRDglQTclRDklODQlRDglQUElRDgl\nQjUlRDklODElRDglQURcIixcbiAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0eTogXCIl\nRDglQTclRDklODQlRDglQUElRDklODYlRDklODIlRDklODQlMjAlRDglQTclRDklODQlRDglQUEl\nRDklODQlRDklODIlRDglQTclRDglQTYlRDklOEElMjAlRDklODQlRDglQjElRDglQTQlRDklOEEl\nRDglQTklMjAlRDglQTclRDklODQlRDklODUlRDglQUQlRDglQUElRDklODglRDklODksJTIwJUQ5\nJTg0JUQ4JUFBJUQ4JUFEJUQ4JUIzJUQ5JThBJUQ5JTg2JTIwJUQ4JUEzJUQ4JUFGJUQ4JUE3JUQ4\nJUExJTIwJUQ4JUE3JUQ5JTg0JUQ4JUI5JUQ4JUIxJUQ4JUI2XCIsXG4gICAgICAgICAgICAgICAg\naW5pdFJ1bjogXCIlRDglQTclRDklODQlRDglQTclRDklODYlRDglQUElRDklODIlRDglQTclRDkl\nODQlMjAlRDglQTglRDklOEElRDklODYlMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQl\nRDglQTclRDglQUElMjAlRDklODElRDklODglRDglQjElMjAlRDglQTclRDklODQlRDklODElRDgl\nQUElRDglQURcIixcbiAgICAgICAgICAgICAgICBwcmVsb2FkOiBcIiVEOCVBQSVEOCVBRCVEOSU4\nNSVEOSU4QSVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVEOCVBRCVEOCVBOSUyMCVE\nOCVBNyVEOSU4NCVEOCVBQSVEOCVBNyVEOSU4NCVEOSU4QSVEOCVBOSUyMCVEOSU4NSVEOCVCMyVE\nOCVBOCVEOSU4MiVEOSU4QiVEOCVBNyUyMCVEOSU4NCVEOCVBQSVEOCVCMyVEOCVCMSVEOSU4QSVE\nOCVCOSUyMCVEOCVBNyVEOSU4NCVEOCVBMyVEOCVBRiVEOCVBNyVEOCVBMVwiLFxuICAgICAgICAg\nICAgICAgIGNsaWNrMkltcG9ydFJ1bGU6IFwiJUQ4JUE3JUQ5JTg2JUQ5JTgyJUQ4JUIxJTIwJUQ5\nJTg0JUQ4JUE3JUQ4JUIzJUQ4JUFBJUQ5JThBJUQ4JUIxJUQ4JUE3JUQ4JUFGJTIwJUQ4JUIxJUQ4\nJUE3JUQ4JUE4JUQ4JUI3JTIwJUQ4JUE3JUQ5JTg0JUQ5JTgyJUQ5JTg4JUQ4JUE3JUQ4JUI5JUQ4\nJUFGJTIwJUQ4JUE3JUQ5JTg0JUQ4JUEzJUQ4JUIzJUQ4JUE3JUQ4JUIzJUQ5JThBJUQ4JUE5JUQ4\nJThDJTIwJUQ4JUFCJUQ5JTg1JTIwJUQ4JUE3JUQ5JTg2JUQ4JUFBJUQ4JUI4JUQ4JUIxJTIwJUQ4\nJUFEJUQ4JUFBJUQ5JTg5JTIwJUQ5JThBJUQ5JTgzJUQ4JUFBJUQ5JTg1JUQ5JTg0JTIwJUQ4JUE3\nJUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUFGJUQ5JThBJUQ4JUFCXCIsXG4gICAgICAgICAgICAgICAg\nZm9yY2VBbGxCb2R5OiBcIiVEOCVBRiVEOSU4NSVEOCVBQyUyMCVEOSU4MyVEOCVBNyVEOSU4NSVE\nOSU4NCUyMCVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVEOCVBRCVEOCVBOSUyMCVEOSU4MyVEOCVB\nNSVEOCVCNyVEOCVBNyVEOCVCMSVEOCU5RlwiLFxuICAgICAgICAgICAgICAgIG9wZW5Jbk5ld1Rh\nYjogXCIlRDklODElRDglQUElRDglQUQlMjAlRDglQTclRDklODQlRDglQjElRDklODglRDglQTcl\nRDglQTglRDglQjclMjAlRDglQTclRDklODQlRDglQTUlRDglQjYlRDglQTclRDklODElRDklOEEl\nRDglQTklMjAlRDklODElRDklOEElMjAlRDglQjklRDklODQlRDglQTclRDklODUlRDglQTklMjAl\nRDglQUElRDglQTglRDklODglRDklOEElRDglQTglMjAlRDglQUMlRDglQUYlRDklOEElRDglQUYl\nRDglQTlcIixcbiAgICAgICAgICAgICAgICBpbXBvcnRTdWNjOiBcIiVEOCVBQSVEOSU4NSUyMCVE\nOCVBNyVEOSU4NCVEOCVBNyVEOCVCMyVEOCVBQSVEOSU4QSVEOCVCMSVEOCVBNyVEOCVBRiUyMCVE\nOCVBOCVEOSU4NiVEOCVBQyVEOCVBNyVEOCVBRFwiLFxuICAgICAgICAgICAgICAgIGltcG9ydDog\nXCIlRDglQTclRDglQjMlRDglQUElRDklOEElRDglQjElRDglQTclRDglQUZcIixcbiAgICAgICAg\nICAgICAgICBlZGl0Q3VycmVudDogXCIlRDglQUElRDglQUQlRDglQjElRDklOEElRDglQjElMjAl\nRDglQTclRDklODQlRDklODIlRDglQTclRDglQjklRDglQUYlRDglQTklMjAlRDklODQlRDklODQl\nRDglQUQlRDglQTclRDklODQlRDklOEElRDglQTlcIixcbiAgICAgICAgICAgICAgICBlZGl0Qmxh\nY2tsaXN0OiBcIiVEOCVBQSVEOCVBRCVEOCVCMSVEOSU4QSVEOCVCMSUyMCVEOCVCOSVEOSU4NiVE\nOCVBNyVEOSU4OCVEOSU4QSVEOSU4NiUyMCVEOCVBNyVEOSU4NCVEOSU4MiVEOCVBNyVEOCVBNiVE\nOSU4NSVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOCVCMyVEOSU4OCVEOCVBRiVEOCVBNyVEOCVBMSVE\nOCU4QyUyMCVEOCVCMyVEOCVCNyVEOCVCMSUyMCVEOCVBOCVEOCVCMyVEOCVCNyVEOCVCMSVEOCU4\nQyUyMCVEOCVBRiVEOCVCOSVEOSU4NSVEOCU5RiUyMColMjAlRDklODQlRDklODQlRDglQjElRDkl\nODUlRDklODglRDglQjIlMjAlRDglQTclRDklODQlRDklODUlRDglQUElRDglQUQlRDglQjElRDkl\nODMlRDglQTlcIixcbiAgICAgICAgICAgICAgICB1cEJ0bkltZzogXCIlRDglQTMlRDklOEElRDkl\nODIlRDklODglRDklODYlRDglQTklMjAlRDglQTclRDklODQlRDglQjklRDklODglRDglQUYlRDgl\nQTklMjAlRDglQTUlRDklODQlRDklODklMjAlRDglQTclRDklODQlRDglQTMlRDglQjklRDklODQl\nRDklODlcIixcbiAgICAgICAgICAgICAgICBkb3duQnRuSW1nOiBcIiVEOCVBMyVEOSU4QSVEOSU4\nMiVEOSU4OCVEOSU4NiVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOCVBNyVEOSU4NiVEOCVBQSVEOSU4\nMiVEOCVBNyVEOSU4NCUyMCVEOCVBNSVEOSU4NCVEOSU4OSUyMCVEOCVBNyVEOSU4NCVEOCVBMyVE\nOCVCMyVEOSU4MSVEOSU4NFwiLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVySWNvbjog\nXCIlRDglQTMlRDklOEElRDklODIlRDklODglRDklODYlRDglQTklMjAlRDglQTclRDklODQlRDgl\nQjQlRDglQjElRDklOEElRDglQjclMjAlRDglQTclRDklODQlRDglQUMlRDglQTclRDklODYlRDgl\nQTglRDklOEFcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dFRpdGxlOiBcIiVEOCVBQSVE\nOCVBRCVEOSU4NSVEOSU4QSVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOSU4NiVEOCVCNVwiLFxuICAg\nICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEN0cmw6IFwiJUQ5JTg1JUQ5JTgxJUQ4JUFBJUQ4JUE3\nJUQ4JUFEJTIwQ3RybFwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEFsdDogXCIlRDkl\nODUlRDklODElRDglQUElRDglQTclRDglQUQlMjBBbHRcIixcbiAgICAgICAgICAgICAgICBkYkNs\naWNrMlN0b3BTaGlmdDogXCIlRDklODUlRDklODElRDglQUElRDglQTclRDglQUQlMjBTaGlmdFwi\nLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcE1ldGE6IFwiJUQ5JTg1JUQ5JTgxJUQ4JUFB\nJUQ4JUE3JUQ4JUFEJTIwTWV0YVwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEtleTog\nXCIlRDklODUlRDklODElRDglQTclRDglQUElRDklOEElRDglQUQlMjAlRDglQTclRDklODQlRDgl\nQTclRDglQUUlRDglQUElRDglQjUlRDglQTclRDglQjFcIixcbiAgICAgICAgICAgICAgICBwYWdl\nRWxlbWVudENzczogXCIlRDklODYlRDklODUlRDglQjclMjAlRDklODUlRDglQUUlRDglQjUlRDgl\nQjUlMjAlRDklODQlRDglQjklRDklODYlRDglQTclRDglQjUlRDglQjElMjAlRDglQTclRDklODQl\nRDglQjUlRDklODElRDglQUQlRDglQTklMjAlRDglQTclRDklODQlRDglQjElRDglQTYlRDklOEEl\nRDglQjMlRDklOEElRDglQTlcIixcbiAgICAgICAgICAgICAgICBjdXN0b21Dc3M6IFwiJUQ5JTg1\nJUQ4JUFFJUQ4JUI1JUQ4JUI1JTIwJUQ4JUE4JUQ4JUE3JUQ5JTg0JUQ5JTgzJUQ4JUE3JUQ5JTg1\nJUQ5JTg0JTIwQ1NTJTIwJUQ5JTg2JUQ5JTg1JUQ4JUI3XCIsXG4gICAgICAgICAgICAgICAgZmly\nc3RBbGVydDogXCIlRDklODQlRDklODUlMjAlRDglQUElRDglQjMlRDglQUElRDklODglRDglQjEl\nRDglQUYlMjAlRDglQTclRDklODQlRDklODIlRDglQTclRDglQjklRDglQUYlRDglQTklMjAlRDgl\nQTclRDklODQlRDglQTMlRDglQjMlRDglQTclRDglQjMlRDklOEElRDglQTklMjAlRDglQTglRDgl\nQjklRDglQUYlRDglOEMlMjAlRDklOEElRDglQjElRDglQUMlRDklODklMjAlRDglQTclRDglQUUl\nRDglQUElRDklOEElRDglQTclRDglQjElMjAlRDglQTclRDklODQlRDklODIlRDglQTclRDglQjkl\nRDglQUYlRDglQTklMjAlRDglQTclRDklODQlRDklODUlRDklODYlRDglQTclRDglQjMlRDglQTgl\nRDglQTklMjAlRDklODQlRDklODQlRDglQTclRDglQjMlRDglQUElRDklOEElRDglQjElRDglQTcl\nRDglQUZcIixcbiAgICAgICAgICAgICAgICBwaWNrZXI6IFwiJUQ5JTg1JUQ4JUFEJUQ4JUFGJUQ4\nJUFGJTIwJUQ4JUI5JUQ5JTg2JUQ4JUE3JUQ4JUI1JUQ4JUIxJTIwJUQ4JUE3JUQ5JTg0JUQ4JUI1\nJUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwUGFnZXR1YWxcIixcbiAgICAgICAgICAgICAgICBjbG9zZVBp\nY2tlcjogXCIlRDglQTUlRDglQkElRDklODQlRDglQTclRDklODIlMjAlRDklODUlRDglQUQlRDgl\nQUYlRDglQUYlMjBQYWdldHVhbFwiLFxuICAgICAgICAgICAgICAgIHBpY2tlclBsYWNlaG9sZGVy\nOiBcIiVEOSU4NSVEOCVBRCVEOCVBRiVEOCVBRiUyMCVEOCVBNyVEOSU4NCVEOCVCOSVEOSU4NiVE\nOCVBNyVEOCVCNSVEOCVCMSVEOCU4QyUyMCVEOCVBNyVEOCVBQSVEOCVCMSVEOSU4MyVEOSU4NyUy\nMCVEOSU4MSVEOCVBNyVEOCVCMSVEOCVCQSVEOSU4QiVEOCVBNyUyMCVEOCVBNSVEOCVCMCVEOCVB\nNyUyMCVEOSU4MyVEOSU4NiVEOCVBQSUyMCVEOSU4NCVEOCVBNyUyMCVEOCVBQSVEOCVCOSVEOCVC\nMSVEOSU4MVwiLFxuICAgICAgICAgICAgICAgIHBpY2tlckNoZWNrOiBcIiVEOCVBQSVEOCVBRCVE\nOSU4MiVEOSU4MiUyMCVEOSU4NSVEOSU4NiUyMCVEOCVBNyVEOSU4NCVEOSU4NSVEOCVBRCVEOCVB\nRiVEOCVBRiUyMCVEOSU4OCVEOSU4NiVEOCVCMyVEOCVBRVwiLFxuICAgICAgICAgICAgICAgIHN3\naXRjaFNlbGVjdG9yOiBcIiVEOCVBNyVEOSU4NiVEOSU4MiVEOCVCMSUyMCVEOSU4NCVEOSU4NCVE\nOCVBQSVEOCVBOCVEOCVBRiVEOSU4QSVEOSU4NCUyMCVEOCVBOCVEOSU4QSVEOSU4NiUyMCVEOCVB\nNyVEOSU4NCVEOCVCOSVEOSU4NiVEOCVBNyVEOCVCNSVEOCVCMVwiLFxuICAgICAgICAgICAgICAg\nIGdvdG9FZGl0OiBcIiVEOCVBNyVEOCVCMCVEOSU4NyVEOCVBOCUyMCVEOSU4NCVEOCVBQSVEOCVB\nRCVEOCVCMSVEOSU4QSVEOCVCMSUyMCVEOCVBNyVEOSU4NCVEOSU4MiVEOCVBNyVEOCVCOSVEOCVB\nRiVEOCVBOSUyMCVEOCVBOCVEOCVBNyVEOSU4NCVEOSU4NSVEOCVBRCVEOCVBRiVEOCVBRiUyMCVE\nOCVBNyVEOSU4NCVEOCVBRCVEOCVBNyVEOSU4NCVEOSU4QVwiLFxuICAgICAgICAgICAgICAgIG1h\nbnVhbE1vZGU6IFwiJUQ4JUFBJUQ4JUI5JUQ4JUI3JUQ5JThBJUQ5JTg0JTIwJUQ4JUE3JUQ5JTg0\nJUQ4JUFGJUQ5JTg1JUQ4JUFDXC8lRDglQTclRDklODQlRDglQjElRDglQTglRDglQjclRDglOEMl\nMjAlRDklODglRDglQTclRDglQjMlRDglQUElRDglQUUlRDglQUYlRDglQTclRDklODUlMjAlRDkl\nODUlRDklODElRDglQUElRDglQTclRDglQUQlMjAlRDglQTclRDklODQlRDglQTclRDglQUElRDgl\nQUMlRDglQTclRDklODclMjAlRDglQTclRDklODQlRDglQTMlRDklOEElRDklODUlRDklODYlMjAl\nRDklOEElRDglQUYlRDklODglRDklOEElRDklOEIlRDglQTclMjAlRDklODQlRDklODQlRDglQUEl\nRDklODUlRDglQjElRDklOEElRDglQjElRDglOEMlMjAlRDklODglRDglQTclRDglQjMlRDglQUEl\nRDglQUUlRDglQUYlRDglQTclRDklODUlMjAlRDklODUlRDklODElRDglQUElRDglQTclRDglQUQl\nMjAlRDglQTclRDklODQlRDglQjMlRDklODclRDklODUlMjAlRDglQTclRDklODQlRDglQTMlRDkl\nOEElRDglQjMlRDglQjElMjAlRDklODQlRDklODQlRDglQjElRDglQUMlRDklODglRDglQjlcIixc\nbiAgICAgICAgICAgICAgICBjbGlja01vZGU6IFwiJUQ4JUFBJUQ4JUI5JUQ4JUI3JUQ5JThBJUQ5\nJTg0JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFGJUQ5JTg1JUQ4JUFDXC8lRDglQTclRDklODQlRDglQjEl\nRDglQTglRDglQjclRDglOEMlMjAlRDglQjklRDklODYlRDglQUYlMjAlRDglQTclRDklODQlRDgl\nQUElRDklODUlRDglQjElRDklOEElRDglQjElMjAlRDglQTUlRDklODQlRDklODklMjAlRDklODYl\nRDklODclRDglQTclRDklOEElRDglQTklMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQl\nRDglQTklRDglOEMlMjAlRDglQjMlRDklOEElRDglQUElRDklODUlMjAlRDglQTclRDklODQlRDkl\nODYlRDklODIlRDglQjElMjAlRDglQUElRDklODQlRDklODIlRDglQTclRDglQTYlRDklOEElRDkl\nOEIlRDglQTclMjAlRDglQjklRDklODQlRDklODklMjAlRDglQTclRDklODQlRDglQjUlRDklODEl\nRDglQUQlRDglQTklMjAlRDglQTclRDklODQlRDglQUElRDglQTclRDklODQlRDklOEElRDglQTlc\nIixcbiAgICAgICAgICAgICAgICBwYWdlQmFyTWVudTogXCIlRDglQTclRDklODYlRDklODIlRDgl\nQjElMjAlRDglQjklRDklODQlRDklODklMjAlRDklODUlRDglQjElRDklODMlRDglQjIlMjAlRDgl\nQjQlRDglQjElRDklOEElRDglQjclMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQlRDgl\nQTklMjAlRDklODQlRDklODElRDglQUElRDglQUQlMjAlRDklODIlRDglQTclRDglQTYlRDklODUl\nRDglQTklMjAlRDglQTclRDklODQlRDglQUElRDglQUQlRDglQUYlRDklOEElRDglQUZcIixcbiAg\nICAgICAgICAgICAgICBuZXh0U3dpdGNoOiBcIiVEOCVBQSVEOCVBOCVEOCVBRiVEOSU4QSVEOSU4\nNCUyMCVEOCVBNyVEOSU4NCVEOCVCMSVEOCVBNyVEOCVBOCVEOCVCNyUyMCVEOCVBNyVEOSU4NCVE\nOCVBQSVEOCVBNyVEOSU4NCVEOSU4QVwiLFxuICAgICAgICAgICAgICAgIGFycm93VG9TY3JvbGw6\nIFwiJUQ4JUE3JUQ5JTg2JUQ5JTgyJUQ4JUIxJTIwJUQ4JUI5JUQ5JTg0JUQ5JTg5JTIwJUQ5JTg1\nJUQ5JTgxJUQ4JUFBJUQ4JUE3JUQ4JUFEJTIwJUQ4JUE3JUQ5JTg0JUQ4JUIzJUQ5JTg3JUQ5JTg1\nJTIwJUQ4JUE3JUQ5JTg0JUQ4JUEzJUQ5JThBJUQ5JTg1JUQ5JTg2JTIwJUQ5JTg0JUQ5JTg0JUQ4\nJUFBJUQ5JTg1JUQ4JUIxJUQ5JThBJUQ4JUIxJTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUE3JUQ5\nJTg0JUQ5JThBJTIwJUQ5JTg4JUQ5JTg1JUQ5JTgxJUQ4JUFBJUQ4JUE3JUQ4JUFEJTIwJUQ4JUE3\nJUQ5JTg0JUQ4JUIzJUQ5JTg3JUQ5JTg1JTIwJUQ4JUE3JUQ5JTg0JUQ4JUEzJUQ5JThBJUQ4JUIz\nJUQ4JUIxJTIwJUQ5JTg0JUQ5JTg0JUQ4JUFBJUQ5JTg1JUQ4JUIxJUQ5JThBJUQ4JUIxJTIwJUQ4\nJUE3JUQ5JTg0JUQ4JUIzJUQ4JUE3JUQ4JUE4JUQ5JTgyXCIsXG4gICAgICAgICAgICAgICAgc2lk\nZUNvbnRyb2xsZXI6IFwiJUQ4JUI5JUQ4JUIxJUQ4JUI2JTIwJUQ4JUI0JUQ4JUIxJUQ5JThBJUQ4\nJUI3JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ5JTgzJUQ5JTg1JTIwJUQ5JTgxJUQ5JThB\nJTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUI1JUQ5JTgxJUQ4JUFEJTIwJUQ4JUE3JUQ5JTg0JUQ4\nJUFBJUQ4JUIxJUQ5JTgyJUQ5JThBJUQ5JTg1JTIwJUQ5JTgxJUQ5JThBJTIwJUQ4JUE3JUQ5JTg0\nJUQ4JUI0JUQ4JUIxJUQ5JThBJUQ4JUI3JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFDJUQ4JUE3JUQ5JTg2\nJUQ4JUE4JUQ5JThBXCIsXG4gICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXJTY3JvbGw6IFwi\nJUQ4JUFBJUQ4JUE4JUQ4JUFGJUQ5JThBJUQ5JTg0JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ5JTg1\nJUQ4JUIxJUQ5JThBJUQ4JUIxXCIsXG4gICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXJBbHdh\neXM6IFwiJUQ4JUI5JUQ4JUIxJUQ4JUI2JTIwJUQ4JUFGJUQ4JUE3JUQ4JUE2JUQ5JTg1JUQ5JThC\nJUQ4JUE3XCIsXG4gICAgICAgICAgICAgICAgaGlkZUxvYWRpbmdJY29uOiBcIiVEOCVBNSVEOCVB\nRSVEOSU4MSVEOCVBNyVEOCVBMSUyMCVEOCVCMSVEOSU4NSVEOCVCMiUyMCVEOCVBNyVEOSU4NCVE\nOCVBQSVEOCVBRCVEOSU4NSVEOSU4QSVEOSU4NFwiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXJB\ncnJvdzogXCIlRDglQTUlRDglQUUlRDklODElRDglQTclRDglQTElMjAlRDglQjMlRDklODclRDkl\nODUlMjAlRDglQjQlRDglQjElRDklOEElRDglQjclMjAlRDglQTclRDklODQlRDglQjUlRDklODEl\nRDglQUQlRDglQTlcIixcbiAgICAgICAgICAgICAgICBkdXBsaWNhdGU6IFwiJUQ4JUFBJUQ5JTg1\nJTIwJUQ4JUFBJUQ4JUFCJUQ4JUE4JUQ5JThBJUQ4JUFBJTIwUGFnZXR1YWwlMjAlRDklODUlRDkl\nODMlRDglQjElRDglQjElRDglOEMlMjAlRDglQUElRDglQUQlRDklODIlRDklODIlMjAlRDklODUl\nRDklODYlMjAlRDklODUlRDglQUYlRDklOEElRDglQjElMjAlRDglQTclRDklODQlRDklODYlRDgl\nQjUlRDklODglRDglQjUlMjAlRDglQTclRDklODQlRDglQTglRDglQjElRDklODUlRDglQUMlRDkl\nOEElRDglQTklMjAlRDglQTclRDklODQlRDglQUUlRDglQTclRDglQjUlMjAlRDglQTglRDklODMh\nXCIsXG4gICAgICAgICAgICAgICAgZm9yY2VTdGF0ZUlmcmFtZTogXCIlRDglQUElRDglQjYlRDkl\nODUlRDklOEElRDklODYlMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQlRDglQTklMjAl\nRDglQTglRDglQTclRDklODQlRDklODMlRDglQTclRDklODUlRDklODQlMjAlRDklODMlRDglQTUl\nRDglQjclRDglQTclRDglQjFcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlRHluYW1pYzog\nXCIlRDglQUElRDglQUQlRDklODUlRDklOEElRDklODQlMjAlRDglQTclRDklODQlRDklODUlRDgl\nQUQlRDglQUElRDklODglRDklODklMjAlRDglQTclRDklODQlRDglQUYlRDklOEElRDklODYlRDgl\nQTclRDklODUlRDklOEElRDklODMlRDklOEElMjAlRDglQjklRDglQTglRDglQjElMjAlRDglQTcl\nRDklODQlRDglQTUlRDglQjclRDglQTclRDglQjFcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0\nYXRlRGlzYWJsZTogXCIlRDglQUElRDglQjklRDglQjclRDklOEElRDklODQlMjAlRDglQUElRDgl\nQUQlRDklODglRDklOEElRDklODQlMjAlRDglQTclRDklODQlRDglQjUlRDklODElRDglQUQlRDgl\nQTclRDglQUElMjAlRDglQjklRDklODQlRDklODklMjAlRDklODclRDglQjAlRDglQTclMjAlRDgl\nQTclRDklODQlRDklODUlRDklODglRDklODIlRDglQjlcIixcbiAgICAgICAgICAgICAgICBhdXRv\nU2Nyb2xsUmF0ZTogXCIlRDglQjMlRDglQjElRDglQjklRDglQTklMjAlRDglQTclRDklODQlRDgl\nQUElRDklODUlRDglQjElRDklOEElRDglQjElMjAoMX4xMDAwKVwiLFxuICAgICAgICAgICAgICAg\nIGRpc2FibGVBdXRvU2Nyb2xsOiBcIiVEOCVBNSVEOSU4QSVEOSU4MiVEOCVBNyVEOSU4MSUyMCVE\nOCVBNyVEOSU4NCVEOCVBQSVEOSU4NSVEOCVCMSVEOSU4QSVEOCVCMSUyMCVEOCVBNyVEOSU4NCVE\nOCVBQSVEOSU4NCVEOSU4MiVEOCVBNyVEOCVBNiVEOSU4QVwiLFxuICAgICAgICAgICAgICAgIGVu\nYWJsZUF1dG9TY3JvbGw6IFwiJUQ4JUFBJUQ5JTg1JUQ5JTgzJUQ5JThBJUQ5JTg2JTIwJUQ4JUE3\nJUQ5JTg0JUQ4JUFBJUQ5JTg1JUQ4JUIxJUQ5JThBJUQ4JUIxJTIwJUQ4JUE3JUQ5JTg0JUQ4JUFB\nJUQ5JTg0JUQ5JTgyJUQ4JUE3JUQ4JUE2JUQ5JThBXCIsXG4gICAgICAgICAgICAgICAgdG9nZ2xl\nQXV0b1Njcm9sbDogXCIlRDglQUElRDglQTglRDglQUYlRDklOEElRDklODQlMjAlRDglQTclRDkl\nODQlRDglQUElRDklODUlRDglQjElRDklOEElRDglQjElMjAlRDglQTclRDklODQlRDglQUElRDkl\nODQlRDklODIlRDglQTclRDglQTYlRDklOEFcIixcbiAgICAgICAgICAgICAgICBydWxlUmVxdWVz\ndDogXCIlRDglQjclRDklODQlRDglQTglMjAlRDklODIlRDglQTclRDglQjklRDglQUYlRDglQTlc\nIixcbiAgICAgICAgICAgICAgICBwYWdlOiBcIiVEOCVCNSVEOSU4MSVEOCVBRCVEOCVBOSUyMFwi\nLFxuICAgICAgICAgICAgICAgIHByZXZQYWdlOiBcIiVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVE\nOCVBRCVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOCVCMyVEOCVBNyVEOCVBOCVEOSU4MiVEOCVBOVwi\nLFxuICAgICAgICAgICAgICAgIG5leHRQYWdlOiBcIiVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVE\nOCVBRCVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVBNyVEOSU4NCVEOSU4QSVEOCVBOVwi\nLFxuICAgICAgICAgICAgICAgIGVycm9yUnVsZXNNdXN0QmVBcnJheTogXCIlRDklOEElRDglQUMl\nRDglQTglMjAlRDglQTMlRDklODYlMjAlRDglQUElRDklODMlRDklODglRDklODYlMjAlRDglQTcl\nRDklODQlRDklODIlRDklODglRDglQTclRDglQjklRDglQUYlMjAlRDklODUlRDglQjUlRDklODEl\nRDklODglRDklODElRDglQTkhXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JKc29uOiBcIiVEOCVB\nRSVEOCVCNyVEOCVBMyUyMCVEOSU4MSVEOSU4QSUyMEpTT04lRDglOEMlMjAlRDglQUElRDglQUQl\nRDklODIlRDklODIlMjAlRDklODUlRDglQjElRDglQTklMjAlRDglQTMlRDglQUUlRDglQjElRDkl\nODkhXCIsXG4gICAgICAgICAgICAgICAgZWRpdFN1Y2Nlc3M6IFwiJUQ4JUFBJUQ5JTg1JTIwJUQ4\nJUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUIxJUQ5JThBJUQ4JUIxJTIwJUQ4JUE4JUQ5JTg2JUQ4\nJUFDJUQ4JUE3JUQ4JUFEXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JXcm9uZ1VybDogXCIlRDgl\nQjklRDklODYlRDklODglRDglQTclRDklODYlMjBVUkwlMjAlRDglQUUlRDglQTclRDglQjclRDgl\nQTYlRDglOEMlMjAlRDglQUElRDglQUQlRDklODIlRDklODIlMjAlRDklODUlRDglQjElRDglQTkl\nMjAlRDglQTMlRDglQUUlRDglQjElRDklODkhXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JBbHJl\nYWR5RXhpc3RzOiBcIiVEOSU4NSVEOSU4OCVEOCVBQyVEOSU4OCVEOCVBRiUyMCVEOCVBOCVEOCVB\nNyVEOSU4NCVEOSU4MSVEOCVCOSVEOSU4NCFcIixcbiAgICAgICAgICAgICAgICBzZXR0aW5nc1Nh\ndmVkOiBcIiVEOCVBQSVEOSU4NSUyMCVEOCVBRCVEOSU4MSVEOCVCOCUyMCVEOCVBNyVEOSU4NCVE\nOCVBNSVEOCVCOSVEOCVBRiVEOCVBNyVEOCVBRiVEOCVBNyVEOCVBQSVEOCU4QyUyMCVEOSU4MiVE\nOSU4NSUyMCVEOCVBOCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVBRCVEOCVBRiVEOSU4QSVEOCVBQiUy\nMCVEOSU4NCVEOCVCOSVEOCVCMSVEOCVCNlwiLFxuICAgICAgICAgICAgICAgIGlmcmFtZTogXCIl\nRDglQTUlRDglQjclRDglQTclRDglQjFcIixcbiAgICAgICAgICAgICAgICBkeW5hbWljOiBcIiVE\nOCVBRiVEOSU4QSVEOSU4NiVEOCVBNyVEOSU4NSVEOSU4QSVEOSU4MyVEOSU4QVwiLFxuICAgICAg\nICAgICAgICAgIHJlbG9hZFBhZ2U6IFwiJUQ4JUE3JUQ5JTgzJUQ4JUFBJUQ5JTg1JUQ5JTg0JTIw\nJUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUIxJUQ5JThBJUQ4JUIxJUQ4JThDJTIwJUQ4JUE1\nJUQ4JUI5JUQ4JUE3JUQ4JUFGJUQ4JUE5JTIwJUQ4JUFBJUQ4JUFEJUQ5JTg1JUQ5JThBJUQ5JTg0\nJTIwJUQ4JUE3JUQ5JTg0JUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4\nJUEyJUQ5JTg2JUQ4JTlGXCIsXG4gICAgICAgICAgICAgICAgY29waWVkOiBcIiVEOCVBQSVEOSU4\nNSUyMCVEOCVBNyVEOSU4NCVEOSU4NiVEOCVCMyVEOCVBRVwiLFxuICAgICAgICAgICAgICAgIG5v\nVmFsaWRDb250ZW50OiBcIiVEOSU4NCVEOSU4NSUyMCVEOSU4QSVEOCVBQSVEOSU4NSUyMCVEOCVB\nNyVEOSU4NCVEOSU4MyVEOCVCNCVEOSU4MSUyMCVEOCVCOSVEOSU4NiUyMCVEOSU4NSVEOCVBRCVE\nOCVBQSVEOSU4OCVEOSU4OSUyMCVEOCVCNSVEOCVBNyVEOSU4NCVEOCVBRCVEOCU4QyUyMCVEOSU4\nMiVEOCVBRiUyMCVEOSU4QSVEOSU4MyVEOSU4OCVEOSU4NiUyMCVEOCVBNyVEOSU4NCVEOCVBNSVE\nOCVBQyVEOCVCMSVEOCVBNyVEOCVBMSUyMENhcHRjaGElMjAlRDklODUlRDglQjclRDklODQlRDkl\nODglRDglQTglRDklOEIlRDglQTclRDglOEMlMjAlRDglQTclRDklODYlRDklODIlRDglQjElMjAl\nRDklODQlRDglQjklRDglQjElRDglQjZcIixcbiAgICAgICAgICAgICAgICBvdXRPZkRhdGU6IFwi\nJUQ4JUE3JUQ5JTg0JUQ5JTg2JUQ4JUI1JTIwJUQ4JUE3JUQ5JTg0JUQ4JUE4JUQ4JUIxJUQ5JTg1\nJUQ4JUFDJUQ5JThBJTIwJUQ5JTgyJUQ4JUFGJUQ5JThBJUQ5JTg1JUQ4JThDJTIwJUQ5JTgyJUQ5\nJTg1JTIwJUQ4JUE4JUQ4JUE3JUQ5JTg0JUQ4JUFBJUQ4JUFEJUQ4JUFGJUQ5JThBJUQ4JUFCJTIw\nJUQ4JUE1JUQ5JTg0JUQ5JTg5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUE1JUQ4JUI1JUQ4JUFGJUQ4JUE3\nJUQ4JUIxJTIwJUQ4JUE3JUQ5JTg0JUQ4JUEzJUQ4JUFEJUQ4JUFGJUQ4JUFCJTIwJUQ5JTgxJUQ5\nJThBJTIwJUQ4JUE3JUQ5JTg0JUQ5JTg4JUQ5JTgyJUQ4JUFBJTIwJUQ4JUE3JUQ5JTg0JUQ5JTg1\nJUQ5JTg2JUQ4JUE3JUQ4JUIzJUQ4JUE4IVwiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXJUaXBz\nOiBcIiVEOCVBNSVEOCVBRSVEOSU4MSVEOCVBNyVEOCVBMSUyMCVEOCVCNCVEOCVCMSVEOSU4QSVE\nOCVCNyUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVBRCVEOSU4MyVEOSU4NSUyMCVEOSU4MSVEOSU4\nQSUyMCVEOCVBNyVEOSU4NCVEOCVBQSVEOCVCNSVEOSU4MSVEOCVBRCUyMCVEOCVBNyVEOSU4NCVE\nOCVBQSVEOCVCMSVEOSU4MiVEOSU4QSVEOSU4NSUyMCVEOCU4QyUyMCVEOSU4OCVEOCVBNyVEOSU4\nNCVEOCVBQSVEOCVBOCVEOCVBRiVEOSU4QSVEOSU4NCUyMCVEOSU4NCVEOSU4OCVEOCVCNiVEOCVC\nOSUyMCVEOSU4MyVEOCVBNyVEOSU4NSVEOSU4NCUyMCVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4MSVE\nOCVBRCVEOCVBOVwiLFxuICAgICAgICAgICAgICAgIHNldENvbmZpZ1BhZ2U6IFwiJUQ4JUFBJUQ4\nJUI5JUQ5JThBJUQ5JThBJUQ5JTg2JTIwJUQ4JUE3JUQ5JTg0JUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4\nJUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUFEJUQ4JUE3JUQ5JTg0JUQ5JThBJUQ4JUE5JTIwJUQ5JTgz\nJUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUE1JUQ4JUI5JUQ4JUFG\nJUQ4JUE3JUQ4JUFGJTIwJUQ4JUE3JUQ5JTg0JUQ4JUE3JUQ5JTgxJUQ4JUFBJUQ4JUIxJUQ4JUE3\nJUQ4JUI2JUQ5JThBJUQ4JUE5XCIsXG4gICAgICAgICAgICAgICAgd2VkYXRhMmdpdGh1YjogXCIl\nRDglQUElRDglQkElRDklOEElRDklOEElRDglQjElMjAlRDglQjklRDklODYlRDklODglRDglQTcl\nRDklODYlMjAlRDglQTclRDklODQlRDklODglRDklOEElRDglQTglMjAlRDglQUYlRDglQTclRDgl\nQUElRDglQTclMjAlRDglQTUlRDklODQlRDklODklMjAlRDglQTclRDklODQlRDglQjklRDklODYl\nRDklODglRDglQTclRDklODYlMjAlRDglQTclRDklODQlRDglQTglRDglQUYlRDklOEElRDklODQl\nMjAlRDglQTclRDklODQlRDklODUlRDglQjElRDglQTIlRDglQTksJTIwJUQ5JTgxJUQ5JThBJTIw\nJUQ5JTg1JUQ4JUIzJUQ4JUFBJUQ5JTg4JUQ4JUFGJUQ4JUI5JTIwJUQ4JUFDJUQ5JThBJUQ4JUFB\nJTIwJUQ5JTg3JUQ4JUE3JUQ4JUE4XCIsXG4gICAgICAgICAgICAgICAgYWRkT3RoZXJQcm9wOiBc\nIiVEOCVBNSVEOCVCNiVEOCVBNyVEOSU4MSVEOCVBOSUyMCVEOCVBRSVEOCVBNyVEOCVCNSVEOSU4\nQSVEOCVBOSUyMCVEOSU4MiVEOCVBNyVEOCVCOSVEOCVBRiVEOCVBOVwiLFxuICAgICAgICAgICAg\nICAgIGFkZE5leHRTZWxlY3RvcjogXCIlRDglQTUlRDglQjYlRDglQTclRDklODElRDglQTklMjAl\nRDklODUlRDglQUQlRDglQUElRDklODglRDklODklMjAlRDglQTclRDklODQlRDklODUlRDglQUQl\nRDglQUYlRDglQUYlMjAlRDklODMlRDklODAlMjBuZXh0TGlua1wiLFxuICAgICAgICAgICAgICAg\nIGFkZFBhZ2VTZWxlY3RvcjogXCIlRDglQTUlRDglQjYlRDglQTclRDklODElRDglQTklMjAlRDkl\nODUlRDglQUQlRDglQUElRDklODglRDklODklMjAlRDglQTclRDklODQlRDklODUlRDglQUQlRDgl\nQUYlRDglQUYlMjAlRDklODMlRDklODAlMjBwYWdlRWxlbWVudFwiLFxuICAgICAgICAgICAgICAg\nIHByb3BOYW1lOiBcIiVEOCVBMyVEOCVBRiVEOCVBRSVEOSU4NCUyMCVEOCVBNyVEOCVCMyVEOSU4\nNSUyMCVEOCVBRSVEOCVBNyVEOCVCNSVEOSU4QSVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOSU4MiVE\nOCVBNyVEOCVCOSVEOCVBRiVEOCVBOVwiLFxuICAgICAgICAgICAgICAgIHByb3BWYWx1ZTogXCIl\nRDglQTMlRDglQUYlRDglQUUlRDklODQlMjAlRDklODIlRDklOEElRDklODUlRDglQTklMjAlRDgl\nQUUlRDglQTclRDglQjUlRDklOEElRDglQTklMjAlRDglQTclRDklODQlRDklODIlRDglQTclRDgl\nQjklRDglQUYlRDglQTlcIixcbiAgICAgICAgICAgICAgICBjdXN0b21GaXJzdDogXCIlRDglQUEl\nRDglQUMlRDglQTclRDklODclRDklODQlMjAlRDglQjAlRDglQTclRDklODMlRDglQjElRDglQTkl\nMjAlRDglQTclRDklODQlRDglQUElRDglQUUlRDglQjIlRDklOEElRDklODYlMjAlRDglQTclRDkl\nODQlRDklODUlRDglQTQlRDklODIlRDglQUElMjAlRDklODQlRDklODQlRDklODIlRDklODglRDgl\nQTclRDglQjklRDglQUYlMjAlRDglQTclRDklODQlRDklODUlRDglQUUlRDglQjUlRDglQjUlRDgl\nQTklMjAlRDglQTclRDklODQlRDklODUlRDglQUQlRDklODQlRDklOEElRDglQTlcIixcbiAgICAg\nICAgICAgICAgICBydWxlc0V4YW1wbGU6IFwiJUQ5JTg1JUQ4JUFCJUQ4JUE3JUQ5JTg0JTIwJUQ4\nJUI5JUQ5JTg0JUQ5JTg5JTIwJUQ4JUE3JUQ5JTg0JUQ5JTgyJUQ5JTg4JUQ4JUE3JUQ4JUI5JUQ4\nJUFGXCIsXG4gICAgICAgICAgICAgICAgbGFzdFBhZ2U6IFwiJUQ4JUFBJUQ5JTg1JTIwJUQ4JUE3\nJUQ5JTg0JUQ5JTg4JUQ4JUI1JUQ5JTg4JUQ5JTg0JTIwJUQ4JUE1JUQ5JTg0JUQ5JTg5JTIwJUQ4\nJUE3JUQ5JTg0JUQ4JUI1JUQ5JTgxJUQ4JUFEJUQ4JUE5JTIwJUQ4JUE3JUQ5JTg0JUQ4JUEzJUQ4\nJUFFJUQ5JThBJUQ4JUIxJUQ4JUE5XCIsXG4gICAgICAgICAgICAgICAgbGFzdFBhZ2VUaXBzOiBc\nIiVEOCVCOSVEOCVCMSVEOCVCNiUyMCVEOCVBQSVEOSU4NCVEOSU4NSVEOSU4QSVEOCVBRCVEOCVB\nNyVEOCVBQSUyMCVEOCVCOSVEOSU4NiVEOCVBRiUyMCVEOCVBNyVEOSU4NCVEOSU4OCVEOCVCNSVE\nOSU4OCVEOSU4NCUyMCVEOCVBNSVEOSU4NCVEOSU4OSUyMCVEOCVBNyVEOSU4NCVEOCVCNSVEOSU4\nMSVEOCVBRCVEOCVBOSUyMCVEOCVBNyVEOSU4NCVEOCVBMyVEOCVBRSVEOSU4QSVEOCVCMSVEOCVB\nOVwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5h\nbWU6IFwi566A5L2T5Lit5paHXCIsXG4gICAgICAgICAgICBtYXRjaDogW1wiemgtQ05cIiwgXCJ6\naC1TR1wiXSxcbiAgICAgICAgICAgIGxhbmc6IHtcbiAgICAgICAgICAgICAgICBlbmFibGVEZWJ1\nZzogXCLosIPor5XmqKHlvI\/vvIzovpPlh7rkv6Hmga\/oh7PmjqfliLblj7BcIixcbiAgICAgICAg\nICAgICAgICB1cGRhdGVOb3RpZmljYXRpb246IFwi6KeE5YiZ5pu05paw5ZCO5o+Q56S6XCIsXG4g\nICAgICAgICAgICAgICAgZGlzYWJsZTogXCLmmoLml7bnpoHnlKhcIixcbiAgICAgICAgICAgICAg\nICBkaXNhYmxlU2l0ZTogXCLnq5nngrnnpoHnlKjlvIDlhbNcIixcbiAgICAgICAgICAgICAgICBk\naXNhYmxlU2l0ZVRpcHM6IFwi5bey5Zyo5q2k56uZ56aB55SoXCIsXG4gICAgICAgICAgICAgICAg\nZW5hYmxlU2l0ZVRpcHM6IFwi5bey5Zyo5q2k56uZ5ZCv55SoXCIsXG4gICAgICAgICAgICAgICAg\nZW5hYmxlOiBcIuKcheWQr+eUqOiHquWKqOe\/u+mhtVwiLFxuICAgICAgICAgICAgICAgIHRlbXBB\nY3RpdmU6IFwi5Li05pe25ZCv55So57+76aG1XCIsXG4gICAgICAgICAgICAgICAgdG9Ub3A6IFwi\n5Zue5Yiw6aG26YOoXCIsXG4gICAgICAgICAgICAgICAgdG9Cb3R0b206IFwi5YmN5b6A6aG15bC+\nXCIsXG4gICAgICAgICAgICAgICAgY3VycmVudDogXCLlvZPliY3pobVcIixcbiAgICAgICAgICAg\nICAgICBmb3JjZUlmcmFtZTogXCLlvLrliLbmi7zmjqVcIixcbiAgICAgICAgICAgICAgICBjYW5j\nZWxGb3JjZUlmcmFtZTogXCLlj5bmtojlvLrliLbmi7zmjqVcIixcbiAgICAgICAgICAgICAgICBj\nb25maWd1cmU6IFwi5omT5byA6YWN572u6aG16Z2iXCIsXG4gICAgICAgICAgICAgICAgZmlyc3RV\ncGRhdGU6IFwi54K55Ye75q2k5aSE5Yid5aeL5YyW6KeE5YiZXCIsXG4gICAgICAgICAgICAgICAg\ndXBkYXRlOiBcIuabtOaWsOWcqOe6v+inhOWImVwiLFxuICAgICAgICAgICAgICAgIGNsaWNrMnVw\nZGF0ZTogXCLngrnlh7vnq4vljbPmm7TmlrDop4TliJlcIixcbiAgICAgICAgICAgICAgICBsb2Fk\nTm93OiBcIueri+WNs+e\/u+mhtVwiLFxuICAgICAgICAgICAgICAgIGxvYWRDb25maXJtOiBcIuim\ngee\/u+WHoOmhte+8n++8iDDkuLrkuI3pl7Tmlq3vvIlcIixcbiAgICAgICAgICAgICAgICBub05l\neHQ6IFwi5rKh5pyJ5om+5Yiw5LiL5LiA6aG177yM6K+35paw5bu66KeE5YiZXCIsXG4gICAgICAg\nICAgICAgICAgcGFzc1NlYzogXCLmm7TmlrDkuo4gI3QjIOenkuWJjVwiLFxuICAgICAgICAgICAg\nICAgIHBhc3NNaW46IFwi5pu05paw5LqOICN0IyDliIbpkp\/liY1cIixcbiAgICAgICAgICAgICAg\nICBwYXNzSG91cjogXCLmm7TmlrDkuo4gI3QjIOWwj+aXtuWJjVwiLFxuICAgICAgICAgICAgICAg\nIHBhc3NEYXk6IFwi5pu05paw5LqOICN0IyDlpKnliY1cIixcbiAgICAgICAgICAgICAgICBjYW50\nRGVsOiBcIuaXoOazleWIoOmZpOWGhee9ruinhOWImVwiLFxuICAgICAgICAgICAgICAgIGNvbmZp\ncm1EZWw6IFwi5piv5ZCm56Gu6K6k6KaB5Yig6Zmk5q2k6KeE5YiZ77yfXCIsXG4gICAgICAgICAg\nICAgICAgdXBkYXRlU3VjYzogXCLmm7TmlrDmiJDlip9cIixcbiAgICAgICAgICAgICAgICBiZWdp\nblVwZGF0ZTogXCLmraPlnKjmm7TmlrDvvIzor7fogJDlv4PnrYnlvoXvvIzkuI3opoHlhbPpl63p\nobXpnaJcIixcbiAgICAgICAgICAgICAgICBjdXN0b21VcmxzOiBcIuWvvOWFpSBQYWdldHVhbCDm\niJYgQXV0b1BhZ2VyaXplIOinhOWImSB1cmzvvIzkuIDooYzkuIDmnaFcIixcbiAgICAgICAgICAg\nICAgICBjdXN0b21SdWxlczogXCLovpPlhaXjgJDkuJzmlrnmsLjpobXmnLrjgJHmoLzlvI\/nmoTo\nh6rlrprkuYnop4TliJkgPGEgaHJlZj0nI3QjJz7inI3vuI\/otKHnjK7op4TliJk8XC9hPlwiLFxu\nICAgICAgICAgICAgICAgIHNhdmU6IFwi5L+d5a2Y6K6+572uXCIsXG4gICAgICAgICAgICAgICAg\nbG9hZGluZ1RleHQ6IFwi5bCR5aWz56WI56W35LitLi4uXCIsXG4gICAgICAgICAgICAgICAgb3Bh\nY2l0eTogXCLkuI3pgI\/mmI7lgLxcIixcbiAgICAgICAgICAgICAgICBvcGFjaXR5UGxhY2Vob2xk\nZXI6IFwiMDog6ZqQ6JeP5YiG6ZqU5p2hXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhcjogXCLp\nmpDol4\/liIbpobXpmpTmnaFcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyQnV0Tm9TdG9wOiBc\nIumakOiXj+S9huS4jeWBnOatolwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcDogXCLn\nqbrnmb3lpITlj4zlh7vmmoLlgZznv7vpobVcIixcbiAgICAgICAgICAgICAgICBzb3J0VGl0bGU6\nIFwi5o6S5bqP5Zyo5LiL5qyh5pu05paw6KeE5YiZ5ZCO55Sf5pWIXCIsXG4gICAgICAgICAgICAg\nICAgYXV0b1J1bjogXCLoh6rliqjlkK\/nlKjvvIzlkKbliJnkuLrnmb3lkI3ljZXmqKHlvI9cIixc\nbiAgICAgICAgICAgICAgICBhdXRvTG9hZE51bTogXCLoh6rliqjliqDovb3mjIflrprpobXmlbBc\nIixcbiAgICAgICAgICAgICAgICB0dXJuUmF0ZTogXCLot53nprvpobXlsL7jgJBY44CR5YCN6aG1\n6Z2i6auY5bqm5pe25bCx5byA5aeL57+76aG1XCIsXG4gICAgICAgICAgICAgICAgaW5wdXRQYWdl\nTnVtOiBcIui+k+WFpemhteeggei3s+i9rFwiLFxuICAgICAgICAgICAgICAgIGVuYWJsZUhpc3Rv\ncnk6IFwi57+76aG15ZCO5YaZ5YWl5Y6G5Y+y6K6w5b2VXCIsXG4gICAgICAgICAgICAgICAgZW5h\nYmxlSGlzdG9yeUFmdGVySW5zZXJ0OiBcIuaLvOaOpeWQjueri+WNs+WGmeWFpeWOhuWPsuiusOW9\nle+8jOWQpuWImea1j+iniOWujOavleWQjuWGjeihjOWGmeWFpVwiLFxuICAgICAgICAgICAgICAg\nIGNvbnRlbnRWaXNpYmlsaXR5OiBcIuiHquWKqOWIh+aNoiBjb250ZW50VmlzaWJpbGl0ee+8jOaP\nkOWNh+a4suafk+aAp+iDvVwiLFxuICAgICAgICAgICAgICAgIGluaXRSdW46IFwi5omT5byA6aG1\n6Z2i5ZCO56uL5Y2z5bCd6K+V57+76aG177yM5ZCm5YiZ5rua5Yqo6Iez6aG15bC+5YaN57+76aG1\nXCIsXG4gICAgICAgICAgICAgICAgcHJlbG9hZDogXCLnv7vpobXliY3pooTor7vkuIvkuIDpobXv\nvIzliqDpgJ\/mtY\/op4hcIixcbiAgICAgICAgICAgICAgICBjbGljazJJbXBvcnRSdWxlOiBcIueC\nueWHu+S4i+aWueS7u+aEj+S4gOadoea3u+WKoOinhOWImeW6k++8jOW5tumdmeW+heabtOaWsOaI\nkOWKn++8jOivt+mihOWFiOaJk+W8gOmTvuaOpeehruiupOiDveato+W4uOiuv+mXruWGjeihjOWv\nvOWFpe+8mlwiLFxuICAgICAgICAgICAgICAgIGZvcmNlQWxsQm9keTogXCLmmK\/lkKbmi7zmjqXm\nlbTkuKrpobXpnaLvvJ9cIixcbiAgICAgICAgICAgICAgICBvcGVuSW5OZXdUYWI6IFwi5L2\/5ou8\n5o6l6aG16Z2i55qE5YaF5a655Zyo5paw6aG16Z2i5omT5byAXCIsXG4gICAgICAgICAgICAgICAg\naW1wb3J0U3VjYzogXCLlr7zlhaXmiJDlip9cIixcbiAgICAgICAgICAgICAgICBpbXBvcnQ6IFwi\n5a+85YWlXCIsXG4gICAgICAgICAgICAgICAgZWRpdEN1cnJlbnQ6IFwi57yW6L6R5q2k56uZ6KeE\n5YiZXCIsXG4gICAgICAgICAgICAgICAgZWRpdEJsYWNrbGlzdDogXCLnvJbovpHpu5HlkI3ljZXn\nvZHlnYDvvIzkuIDooYzkuIDmnaHvvIzmlK\/mjIE\/ICrpgJrphY3nrKbkuI7mraPliJlcIixcbiAg\nICAgICAgICAgICAgICB1cEJ0bkltZzogXCLlm57liLDpobXpppblm77moIdcIixcbiAgICAgICAg\nICAgICAgICBkb3duQnRuSW1nOiBcIuWJjeW+gOmhteWwvuWbvuagh1wiLFxuICAgICAgICAgICAg\nICAgIHNpZGVDb250cm9sbGVySWNvbjogXCLkvqfovrnmoI\/lm77moIdcIixcbiAgICAgICAgICAg\nICAgICBsb2FkaW5nVGV4dFRpdGxlOiBcIuWKoOi9veS4reaWh+Wtl1wiLFxuICAgICAgICAgICAg\nICAgIGRiQ2xpY2syU3RvcEN0cmw6IFwiQ3RybFwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2sy\nU3RvcEFsdDogXCJBbHRcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BTaGlmdDogXCJT\naGlmdFwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcE1ldGE6IFwiTWV0YVwiLFxuICAg\nICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEtleTogXCLlv6vmjbfplK5cIixcbiAgICAgICAgICAg\nICAgICBwYWdlRWxlbWVudENzczogXCLpobXpnaLkuLvkvZPmoYbmnrbnmoTmoLflvI9cIixcbiAg\nICAgICAgICAgICAgICBjdXN0b21Dc3M6IFwi6Ieq5a6a5LmJIGNzc1wiLFxuICAgICAgICAgICAg\nICAgIGZpcnN0QWxlcnQ6IFwi5L2g6L+Y5pyq5a+85YWl6KeE5YiZ5bqT77yM6K+36YCJ5oup5ZCI\n6YCC55qE6KeE5YiZ5bqT5a+85YWl5ZOmXCIsXG4gICAgICAgICAgICAgICAgcGlja2VyOiBcIuS4\nnOaWueawuOmhteacuuS4u+S9k+WFg+e0oOaKk+WPluWZqFwiLFxuICAgICAgICAgICAgICAgIGNs\nb3NlUGlja2VyOiBcIuWFs+mXreS4nOaWueawuOmhteacuuaKk+WPluWZqFwiLFxuICAgICAgICAg\nICAgICAgIHBpY2tlclBsYWNlaG9sZGVyOiBcIuWFg+e0oOmAieaLqeWZqO+8jOayoeaDs+azleW7\nuuiurueVmeepulwiLFxuICAgICAgICAgICAgICAgIHBpY2tlckNoZWNrOiBcIuajgOafpeS9oOe8\nlui+keeahOmAieaLqeWZqOW5tuWkjeWItlwiLFxuICAgICAgICAgICAgICAgIHN3aXRjaFNlbGVj\ndG9yOiBcIueCueWHu+WIh+aNouWFg+e0oFwiLFxuICAgICAgICAgICAgICAgIGdvdG9FZGl0OiBc\nIuS9v+eUqOW9k+WJjeeahOmAieaLqeWZqOWJjeW+gOe8lui+keinhOWImVwiLFxuICAgICAgICAg\nICAgICAgIG1hbnVhbE1vZGU6IFwi56aB55So5ou85o6l77yM5omL5Yqo55So5Y+z5pa55ZCR6ZSu\n57+76aG177yM5Y+v5L2\/55So5bem5pa55ZCR6ZSu6L+U5ZueXCIsXG4gICAgICAgICAgICAgICAg\nY2xpY2tNb2RlOiBcIuemgeeUqOaLvOaOpe+8jOa7muWKqOiHs+mhteWwvuaXtuiHquWKqOeCueWH\nu+S4i+S4gOmhtVwiLFxuICAgICAgICAgICAgICAgIHBhZ2VCYXJNZW51OiBcIueCueWHu+WIhuma\nlOadoeS4remXtOW8ueWHuuiPnOWNlVwiLFxuICAgICAgICAgICAgICAgIG5leHRTd2l0Y2g6IFwi\n5YiH5o2i5YW25LuW6aG156CBXCIsXG4gICAgICAgICAgICAgICAgYXJyb3dUb1Njcm9sbDogXCLl\nt6bmlrnlkJHplK7mu5rliqjoh7PkuIrkuIDpobXvvIzlj7PmlrnlkJHplK7mu5rliqjoh7PkuIvk\nuIDpobVcIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlcjogXCLlnKjkvqfovrnmmL7n\npLrnv7vpobXmjqfliLbmoI9cIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlclNjcm9s\nbDogXCLmu5rliqjlvIDlhbNcIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlckFsd2F5\nczogXCLlp4vnu4jmmL7npLpcIixcbiAgICAgICAgICAgICAgICBoaWRlTG9hZGluZ0ljb246IFwi\n6ZqQ6JeP5Yqg6L295Yqo55S7XCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhckFycm93OiBcIuma\nkOiXj+WIhumalOadoeWumuS9jeeureWktFwiLFxuICAgICAgICAgICAgICAgIGR1cGxpY2F0ZTog\nXCLmo4DmtYvliLDmsLjpobXmnLrph43lpI3lronoo4XvvIzor7fliKDpmaTlhbbku5bohJrmnKzn\nrqHnkIblmajkuK3nmoTmsLjpobXmnLohXCIsXG4gICAgICAgICAgICAgICAgZm9yY2VTdGF0ZUlm\ncmFtZTogXCLku6UgaWZyYW1lIOW1jOWFpeaVtOmhtVwiLFxuICAgICAgICAgICAgICAgIGZvcmNl\nU3RhdGVEeW5hbWljOiBcIumAmui\/hyBpZnJhbWUg5Yqg6L295Yqo5oCB5YaF5a655ZCO5Y+W5Ye6\nXCIsXG4gICAgICAgICAgICAgICAgZm9yY2VTdGF0ZURpc2FibGU6IFwi5Zyo5q2k56uZ56aB55So\nXCIsXG4gICAgICAgICAgICAgICAgYXV0b1Njcm9sbFJhdGU6IFwi5rua5Yqo6YCf5bqm77yIMX4x\nMDAw77yJXCIsXG4gICAgICAgICAgICAgICAgZGlzYWJsZUF1dG9TY3JvbGw6IFwi5YGc5q2i6Ieq\n5Yqo5rua5YqoXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlQXV0b1Njcm9sbDogXCLlvIDlkK\/o\nh6rliqjmu5rliqhcIixcbiAgICAgICAgICAgICAgICB0b2dnbGVBdXRvU2Nyb2xsOiBcIuiHquWK\nqOa7muWKqOW8gOWFs1wiLFxuICAgICAgICAgICAgICAgIHJ1bGVSZXF1ZXN0OiBcIumAgumFjeiv\nt+axglwiLFxuICAgICAgICAgICAgICAgIHBhZ2U6IFwiUGFnZSBcIixcbiAgICAgICAgICAgICAg\nICBwcmV2UGFnZTogXCLkuIrkuIDpobVcIixcbiAgICAgICAgICAgICAgICBuZXh0UGFnZTogXCLk\nuIvkuIDpobVcIixcbiAgICAgICAgICAgICAgICBlcnJvclJ1bGVzTXVzdEJlQXJyYXk6IFwi6KeE\n5YiZ5b+F6aG75Li65pWw57uE5b2i5byPIVwiLFxuICAgICAgICAgICAgICAgIGVycm9ySnNvbjog\nXCJKU09OIOagvOW8j+aciemUme+8jOivt+mHjeaWsOajgOafpSFcIixcbiAgICAgICAgICAgICAg\nICBlZGl0U3VjY2VzczogXCLnvJbovpHmiJDlip9cIixcbiAgICAgICAgICAgICAgICBlcnJvcldy\nb25nVXJsOiBcIlVSTCDplJnor68sIOivt+mHjeaWsOajgOafpSFcIixcbiAgICAgICAgICAgICAg\nICBlcnJvckFscmVhZHlFeGlzdHM6IFwi5bey57uP5a2Y5ZyoIVwiLFxuICAgICAgICAgICAgICAg\nIHNldHRpbmdzU2F2ZWQ6IFwi6K6+572u5bey5L+d5a2Y77yM5Yi35paw5ZCO55Sf5pWIXCIsXG4g\nICAgICAgICAgICAgICAgaWZyYW1lOiBcIuW8uuWItuaLvOaOpVwiLFxuICAgICAgICAgICAgICAg\nIGR5bmFtaWM6IFwi5Yqo5oCB5Yqg6L29XCIsXG4gICAgICAgICAgICAgICAgcmVsb2FkUGFnZTog\nXCLnvJbovpHlrozmiJDvvIzmmK\/lkKbnq4vljbPliLfmlrDpobXpnaLvvJ9cIixcbiAgICAgICAg\nICAgICAgICBjb3BpZWQ6IFwi5bey5aSN5Yi2XCIsXG4gICAgICAgICAgICAgICAgbm9WYWxpZENv\nbnRlbnQ6IFwi5rKh5pyJ5qOA5rWL5Yiw5pyJ5pWI5YaF5a6577yM5Y+v6IO96ZyA6KaB5Lq65py6\n5qCh6aqM77yM54K55Ye75p+l55yLXCIsXG4gICAgICAgICAgICAgICAgb3V0T2ZEYXRlOiBcIuiE\nmuacrOW3sui\/h+aXtu+8jOivt+WPiuaXtuabtOaWsOWIsOacgOaWsOeJiOacrO+8gVwiLFxuICAg\nICAgICAgICAgICAgIGhpZGVCYXJUaXBzOiBcIumakOiXj+WIhumhtemalOadoe+8jOayiea1uOW8\nj+S9k+mqjFwiLFxuICAgICAgICAgICAgICAgIHNldENvbmZpZ1BhZ2U6IFwi5bCG5b2T5YmN6aG1\n6Z2i6K6+5Li66buY6K6k6YWN572u6aG1XCIsXG4gICAgICAgICAgICAgICAgd2VkYXRhMmdpdGh1\nYjogXCLlsIYgd2VkYXRhIOWcsOWdgOabtOaUueS4uiBnaXRodWIg5LuT5bqT5YaF55qE6ZWc5YOP\n5Zyw5Z2AXCIsXG4gICAgICAgICAgICAgICAgYWRkT3RoZXJQcm9wOiBcIua3u+WKoOinhOWImeWx\nnuaAp1wiLFxuICAgICAgICAgICAgICAgIGFkZE5leHRTZWxlY3RvcjogXCLmt7vliqDpgInmi6nl\nmajlhoXlrrnkuLogbmV4dExpbmtcIixcbiAgICAgICAgICAgICAgICBhZGRQYWdlU2VsZWN0b3I6\nIFwi5re75Yqg6YCJ5oup5Zmo5YaF5a655Li6IHBhZ2VFbGVtZW50XCIsXG4gICAgICAgICAgICAg\nICAgcHJvcE5hbWU6IFwi6L6T5YWl6KeE5YiZ5bGe5oCn5ZCNXCIsXG4gICAgICAgICAgICAgICAg\ncHJvcFZhbHVlOiBcIui+k+WFpeinhOWImeWxnuaAp+WAvFwiLFxuICAgICAgICAgICAgICAgIGN1\nc3RvbUZpcnN0OiBcIuS4uuacrOWcsOiHquWumuS5ieinhOWImeW\/veeVpee8k+WtmFwiLFxuICAg\nICAgICAgICAgICAgIHJ1bGVzRXhhbXBsZTogXCLoh6rlrprkuYnop4TliJnor6bop6NcIixcbiAg\nICAgICAgICAgICAgICBsYXN0UGFnZTogXCLlt7LliLDovr7mnIDlkI7kuIDpobVcIixcbiAgICAg\nICAgICAgICAgICBsYXN0UGFnZVRpcHM6IFwi5Yiw6L6+5pyA5ZCO5LiA6aG15pe26L+b6KGM5o+Q\n56S6XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAg\nbmFtZTogXCLmraPpq5TkuK3mlodcIixcbiAgICAgICAgICAgIG1hdGNoOiBbXCJ6aFwiLCBcInpo\nLVRXXCIsIFwiemgtSEtcIl0sXG4gICAgICAgICAgICBsYW5nOiB7XG4gICAgICAgICAgICAgICAg\nZW5hYmxlRGVidWc6IFwi6Kq\/6Kmm5qih5byP77yM6Ly45Ye65L+h5oGv6Iez5o6n5Yi25Y+wXCIs\nXG4gICAgICAgICAgICAgICAgdXBkYXRlTm90aWZpY2F0aW9uOiBcIuimj+WJh+abtOaWsOWQjuaP\nkOekulwiLFxuICAgICAgICAgICAgICAgIGRpc2FibGU6IFwi5pqr5pmC56aB55SoXCIsXG4gICAg\nICAgICAgICAgICAgZGlzYWJsZVNpdGU6IFwi56uZ6bue56aB55So6ZaL6ZecXCIsXG4gICAgICAg\nICAgICAgICAgZGlzYWJsZVNpdGVUaXBzOiBcIuW3suWcqOatpOermeemgeeUqFwiLFxuICAgICAg\nICAgICAgICAgIGVuYWJsZVNpdGVUaXBzOiBcIuW3suWcqOatpOermeWVn+eUqFwiLFxuICAgICAg\nICAgICAgICAgIGVuYWJsZTogXCLinIXllZ\/nlKjoh6rli5Xnv7vpoIFcIixcbiAgICAgICAgICAg\nICAgICB0ZW1wQWN0aXZlOiBcIuiHqOaZguWVn+eUqOe\/u+mggVwiLFxuICAgICAgICAgICAgICAg\nIHRvVG9wOiBcIuWbnuWIsOmggumDqFwiLFxuICAgICAgICAgICAgICAgIHRvQm90dG9tOiBcIuWJ\njeW+gOmggeWwvlwiLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IFwi55W25YmN6aCBXCIsXG4g\nICAgICAgICAgICAgICAgZm9yY2VJZnJhbWU6IFwi5by35Yi25ou85o6lXCIsXG4gICAgICAgICAg\nICAgICAgY2FuY2VsRm9yY2VJZnJhbWU6IFwi5Y+W5raI5by65Yi25ou85o6lXCIsXG4gICAgICAg\nICAgICAgICAgY29uZmlndXJlOiBcIuaJk+mWi+mFjee9rumggemdolwiLFxuICAgICAgICAgICAg\nICAgIGZpcnN0VXBkYXRlOiBcIum7nuaTiuatpOiZleWIneWni+WMluimj+WJh1wiLFxuICAgICAg\nICAgICAgICAgIHVwZGF0ZTogXCLmm7TmlrDlnKjntqvopo\/liYdcIixcbiAgICAgICAgICAgICAg\nICBjbGljazJ1cGRhdGU6IFwi6bue5pOK56uL5Y2z5pu05paw6KaP5YmHXCIsXG4gICAgICAgICAg\nICAgICAgbG9hZE5vdzogXCLnq4vljbPnv7vpoIFcIixcbiAgICAgICAgICAgICAgICBsb2FkQ29u\nZmlybTogXCLopoHnv7vlh6DpoIHvvJ\/vvIgw54K65LiN6ZaT5pa377yJXCIsXG4gICAgICAgICAg\nICAgICAgbm9OZXh0OiBcIuaykuacieaJvuWIsOS4i+S4gOmgge+8jOiri+aWsOW7uuimj+WJh1wi\nLFxuICAgICAgICAgICAgICAgIHBhc3NTZWM6IFwi5pu05paw5LqOICN0IyDnp5LliY1cIixcbiAg\nICAgICAgICAgICAgICBwYXNzTWluOiBcIuabtOaWsOS6jiAjdCMg5YiG6ZCY5YmNXCIsXG4gICAg\nICAgICAgICAgICAgcGFzc0hvdXI6IFwi5pu05paw5LqOICN0IyDlsI\/mmYLliY1cIixcbiAgICAg\nICAgICAgICAgICBwYXNzRGF5OiBcIuabtOaWsOS6jiAjdCMg5aSp5YmNXCIsXG4gICAgICAgICAg\nICAgICAgY2FudERlbDogXCLnhKHms5XliKrpmaTlhoXnva7opo\/liYdcIixcbiAgICAgICAgICAg\nICAgICBjb25maXJtRGVsOiBcIuaYr+WQpueiuuiqjeimgeWIqumZpOatpOimj+WJh++8n1wiLFxu\nICAgICAgICAgICAgICAgIHVwZGF0ZVN1Y2M6IFwi5pu05paw5oiQ5YqfXCIsXG4gICAgICAgICAg\nICAgICAgYmVnaW5VcGRhdGU6IFwi5q2j5Zyo5pu05paw77yM6KuL56iN5YCZXCIsXG4gICAgICAg\nICAgICAgICAgY3VzdG9tVXJsczogXCLlsI7lhaUgUGFnZXR1YWwg5oiWIEF1dG9QYWdlcml6ZSDo\npo\/liYcgdXJs77yM5LiA6KGM5LiA5qKdXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tUnVsZXM6\nIFwi6Ly45YWl44CQ5p2x5pa55rC46aCB5qmf44CR5qC85byP55qE6Ieq5a6a576p6KaP5YmHIDxh\nIGhyZWY9JyN0Iyc+4pyN77iP6LKi54276KaP5YmHPFwvYT5cIixcbiAgICAgICAgICAgICAgICBz\nYXZlOiBcIuWtmOWEsuioree9rlwiLFxuICAgICAgICAgICAgICAgIGxvYWRpbmdUZXh0OiBcIuWw\nkeWls+eliOemseS4rS4uLlwiLFxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IFwi5LiN6YCP5piO\n5YC8XCIsXG4gICAgICAgICAgICAgICAgb3BhY2l0eVBsYWNlaG9sZGVyOiBcIjA6IOmaseiXj+WI\nhumalOainVwiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXI6IFwi6Zqx6JeP5YiG6aCB6ZqU5qKd\nXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhckJ1dE5vU3RvcDogXCLpmrHol4\/kvYbkuI3lgZzm\nraJcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3A6IFwi56m655m96JmV6ZuZ5pOK5pqr\n5YGc57+76aCBXCIsXG4gICAgICAgICAgICAgICAgc29ydFRpdGxlOiBcIuaOkuW6j+WcqOS4i+as\noeabtOaWsOimj+WJh+W+jOeUn+aViFwiLFxuICAgICAgICAgICAgICAgIGF1dG9SdW46IFwi6Ieq\n5YuV5ZWT55So77yM5ZCm5YmH54K655m95ZCN5Zau5qih5byPXCIsXG4gICAgICAgICAgICAgICAg\nYXV0b0xvYWROdW06IFwi6Ieq5YuV5Yqg6LyJ5oyH5a6a6aCB5pW4XCIsXG4gICAgICAgICAgICAg\nICAgdHVyblJhdGU6IFwi6Led6Zui6aCB5bC+44CQWOOAkeWAjemggemdoumrmOW6puaZguWwsemW\ni+Wni+e\/u+mggVwiLFxuICAgICAgICAgICAgICAgIGlucHV0UGFnZU51bTogXCLovLjlhaXpoIHn\norzot7PovYlcIixcbiAgICAgICAgICAgICAgICBlbmFibGVIaXN0b3J5OiBcIue\/u+mggeWQjuWv\nq+WFpeatt+WPsuiomOmMhFwiLFxuICAgICAgICAgICAgICAgIGVuYWJsZUhpc3RvcnlBZnRlcklu\nc2VydDogXCLmi7zmjqXlvoznq4vljbPlr6vlhaXmrbflj7LoqJjpjITvvIzlkKbliYfngI\/opr3l\nroznlaLlvozlho3ooYzlr6vlhaVcIixcbiAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJpbGl0\neTogXCLoh6rli5XliIfmj5sgY29udGVudFZpc2liaWxpdHnvvIzmj5DljYfmuLLmn5PmgKfog71c\nIixcbiAgICAgICAgICAgICAgICBpbml0UnVuOiBcIuaJk+mWi+mggemdouWQjueri+WNs+WYl+ip\npue\/u+mgge+8jOWQpuWJh+a7vuWLleiHs+mggeWwvuWGjee\/u+mggVwiLFxuICAgICAgICAgICAg\nICAgIHByZWxvYWQ6IFwi57+76aCB5YmN6aCQ6K6A5LiL5LiA6aCB77yM5Yqg6YCf54CP6Ka9XCIs\nXG4gICAgICAgICAgICAgICAgY2xpY2sySW1wb3J0UnVsZTogXCLpu57mk4rkuIvmlrnmt7vliqDn\nibnmroropo\/liYfluqvvvIzlubbpnZzlvoXmm7TmlrDmiJDlip\/vvJpcIixcbiAgICAgICAgICAg\nICAgICBmb3JjZUFsbEJvZHk6IFwi5piv5ZCm5ou85o6l5pW05YCL6aCB6Z2i77yfXCIsXG4gICAg\nICAgICAgICAgICAgb3BlbkluTmV3VGFiOiBcIuS9v+aLvOaOpemggemdoueahOWGheWuueWcqOaW\nsOmggemdouaJk+mWi1wiLFxuICAgICAgICAgICAgICAgIGltcG9ydFN1Y2M6IFwi5bCO5YWl5oiQ\n5YqfXCIsXG4gICAgICAgICAgICAgICAgaW1wb3J0OiBcIuWwjuWFpVwiLFxuICAgICAgICAgICAg\nICAgIGVkaXRDdXJyZW50OiBcIue3qOi8r+atpOermeimj+WJh1wiLFxuICAgICAgICAgICAgICAg\nIGVkaXRCbGFja2xpc3Q6IFwi57eo6Lyv6buR5ZCN5Zau57ay5Z2A77yM5LiA6KGM5LiA5qKd77yM\n5pSv5oyBPyAq6YCa6YWN56ym6IiH5q2j5YmHXCIsXG4gICAgICAgICAgICAgICAgdXBCdG5JbWc6\nIFwi5Zue5Yiw6aCB6aaW5ZyW5qiZXCIsXG4gICAgICAgICAgICAgICAgZG93bkJ0bkltZzogXCLl\niY3lvoDpoIHlsL7lnJbmqJlcIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlckljb246\nIFwi5YG06YKK5qyE5ZyW5qiZXCIsXG4gICAgICAgICAgICAgICAgbG9hZGluZ1RleHRUaXRsZTog\nXCLliqDovInkuK3mloflrZdcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BDdHJsOiBc\nIkN0cmxcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BBbHQ6IFwiQWx0XCIsXG4gICAg\nICAgICAgICAgICAgZGJDbGljazJTdG9wU2hpZnQ6IFwiU2hpZnRcIixcbiAgICAgICAgICAgICAg\nICBkYkNsaWNrMlN0b3BNZXRhOiBcIk1ldGFcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0\nb3BLZXk6IFwi5b+r5o236Y21XCIsXG4gICAgICAgICAgICAgICAgcGFnZUVsZW1lbnRDc3M6IFwi\n6aCB6Z2i5Li76auU5qGG5p6255qE5qij5byPXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ3Nz\nOiBcIuiHquWumue+qSBjc3NcIixcbiAgICAgICAgICAgICAgICBmaXJzdEFsZXJ0OiBcIuS9oOmC\nhOacquWwjuWFpeimj+WJh+W6q++8jOiri+mBuOaTh+WQiOmBqeeahOimj+WJh+W6q+WwjuWFpeWT\nplwiLFxuICAgICAgICAgICAgICAgIHBpY2tlcjogXCLmnbHmlrnmsLjpoIHmqZ\/kuLvpq5TlhYPn\ntKDmipPlj5blmahcIixcbiAgICAgICAgICAgICAgICBjbG9zZVBpY2tlcjogXCLpl5zplonmnbHm\nlrnmsLjpoIHmqZ\/mipPlj5blmahcIixcbiAgICAgICAgICAgICAgICBwaWNrZXJQbGFjZWhvbGRl\ncjogXCLlhYPntKDpgbjmk4flmajvvIzmspLmg7Pms5Xlu7rorbDnlZnnqbpcIixcbiAgICAgICAg\nICAgICAgICBwaWNrZXJDaGVjazogXCLmqqLmn6XkvaDnt6jovK\/nmoTpgbjmk4flmajkuKbopIfo\no71cIixcbiAgICAgICAgICAgICAgICBzd2l0Y2hTZWxlY3RvcjogXCLpu57mk4rliIfmj5vlhYPn\ntKBcIixcbiAgICAgICAgICAgICAgICBnb3RvRWRpdDogXCLkvb\/nlKjnlbbliY3nmoTpgbjmk4fl\nmajliY3lvoDnt6jovK\/opo\/liYdcIixcbiAgICAgICAgICAgICAgICBtYW51YWxNb2RlOiBcIuem\ngeeUqOaLvOaOpe+8jOaJi+WLleeUqOWPs+aWueWQkemNtee\/u+mgge+8jOW3puaWueWQkemNtei\/\nlOWbnlwiLFxuICAgICAgICAgICAgICAgIGNsaWNrTW9kZTogXCLnpoHnlKjmi7zmjqXvvIzmu77l\ni5Xoh7PpoIHlsL7mmYLoh6rli5Xpu57mk4rkuIvkuIDpoIFcIixcbiAgICAgICAgICAgICAgICBw\nYWdlQmFyTWVudTogXCLpu57mk4rliIbpmpTmop3kuK3plpPlvYjlh7roj5zllq5cIixcbiAgICAg\nICAgICAgICAgICBuZXh0U3dpdGNoOiBcIuWIh+aPm+WFtuS7lumggeeivFwiLFxuICAgICAgICAg\nICAgICAgIGFycm93VG9TY3JvbGw6IFwi5bem5pa55ZCR6Y215ru+5YuV6Iez5LiK5LiA6aCB77yM\n5Y+z5pa55ZCR6Y215ru+5YuV6Iez5LiL5LiA6aCBXCIsXG4gICAgICAgICAgICAgICAgc2lkZUNv\nbnRyb2xsZXI6IFwi5Zyo5YG06YKK6aGv56S657+76aCB5o6n5Yi25qyEXCIsXG4gICAgICAgICAg\nICAgICAgc2lkZUNvbnRyb2xsZXJTY3JvbGw6IFwi5ru+54eI6ZaL6ZecXCIsXG4gICAgICAgICAg\nICAgICAgc2lkZUNvbnRyb2xsZXJBbHdheXM6IFwi5aeL57WC6aGv56S6XCIsXG4gICAgICAgICAg\nICAgICAgaGlkZUxvYWRpbmdJY29uOiBcIumaseiXj+WKoOi8ieWLleeVq1wiLFxuICAgICAgICAg\nICAgICAgIGhpZGVCYXJBcnJvdzogXCLpmrHol4\/liIbpmpTmop3lrprkvY3nrq3poK1cIixcbiAg\nICAgICAgICAgICAgICBkdXBsaWNhdGU6IFwi5qqi5ris5Yiw5rC46aCB5qmf6YeN6KSH5a6J6KOd\n77yM6KuL5Yiq6Zmk5YW25LuW6IWz5pys566h55CG5Zmo5Lit55qE5rC46aCB5qmfIVwiLFxuICAg\nICAgICAgICAgICAgIGZvcmNlU3RhdGVJZnJhbWU6IFwi5LulIGlmcmFtZSDltYzlhaXmlbTpoIFc\nIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlRHluYW1pYzogXCLpgJrpgY4gaWZyYW1lIOWK\noOi8ieWLleaFi+WFp+WuueW+jOWPluWHulwiLFxuICAgICAgICAgICAgICAgIGZvcmNlU3RhdGVE\naXNhYmxlOiBcIuWcqOatpOermeemgeeUqFwiLFxuICAgICAgICAgICAgICAgIGF1dG9TY3JvbGxS\nYXRlOiBcIua7vuWLlemAn+W6pu+8iDF+MTAwMO+8iVwiLFxuICAgICAgICAgICAgICAgIGRpc2Fi\nbGVBdXRvU2Nyb2xsOiBcIuWBnOatouiHquWLlea7vuWLlVwiLFxuICAgICAgICAgICAgICAgIGVu\nYWJsZUF1dG9TY3JvbGw6IFwi6ZaL5ZWf6Ieq5YuV5ru+5YuVXCIsXG4gICAgICAgICAgICAgICAg\ndG9nZ2xlQXV0b1Njcm9sbDogXCLoh6rli5Xmu77li5Xplovpl5xcIixcbiAgICAgICAgICAgICAg\nICBydWxlUmVxdWVzdDogXCLpganphY3oq4vmsYJcIixcbiAgICAgICAgICAgICAgICBwYWdlOiBc\nIlBhZ2UgXCIsXG4gICAgICAgICAgICAgICAgcHJldlBhZ2U6IFwi5LiK5LiA6aCBXCIsXG4gICAg\nICAgICAgICAgICAgbmV4dFBhZ2U6IFwi5LiL5LiA6aCBXCIsXG4gICAgICAgICAgICAgICAgZXJy\nb3JSdWxlc011c3RCZUFycmF5OiBcIuimj+WJh+W\/hemgiOeCuumZo+WIl+W9ouW8jyFcIixcbiAg\nICAgICAgICAgICAgICBlcnJvckpzb246IFwiSlNPTiDmoLzlvI\/mnInpjK\/vvIzoq4vph43mlrDm\nqqLmn6UhXCIsXG4gICAgICAgICAgICAgICAgZWRpdFN1Y2Nlc3M6IFwi57eo6Lyv5oiQ5YqfXCIs\nXG4gICAgICAgICAgICAgICAgZXJyb3JXcm9uZ1VybDogXCJVUkwg6Yyv6KqkLCDoq4vph43mlrDm\nqqLmn6UhXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JBbHJlYWR5RXhpc3RzOiBcIuW3sue2k+Wt\nmOWcqCFcIixcbiAgICAgICAgICAgICAgICBzZXR0aW5nc1NhdmVkOiBcIuioree9ruW3suS\/neWt\nmO+8jOWIt+aWsOW+jOeUn+aViFwiLFxuICAgICAgICAgICAgICAgIGlmcmFtZTogXCLlvLfliLbm\ni7zmjqVcIixcbiAgICAgICAgICAgICAgICBkeW5hbWljOiBcIuWLleaFi+WKoOi8iVwiLFxuICAg\nICAgICAgICAgICAgIHJlbG9hZFBhZ2U6IFwi57eo6Lyv5a6M5oiQ77yM5piv5ZCm56uL5Y2z5Yi3\n5paw6aCB6Z2i77yfXCIsXG4gICAgICAgICAgICAgICAgY29waWVkOiBcIuW3suW+qeWItlwiLFxu\nICAgICAgICAgICAgICAgIG5vVmFsaWRDb250ZW50OiBcIuaykuacieaqoua4rOWIsOacieaViOWG\nheWuue+8jOWPr+iDvemcgOimgeS6uuapn+agoempl++8jOm7nuaTiuafpeeci1wiLFxuICAgICAg\nICAgICAgICAgIG91dE9mRGF0ZTogXCLohJrmnKzlt7LpgY7mmYLvvIzoq4vlj4rmmYLmm7TmlrDl\niLDmnIDmlrDniYjmnKzvvIFcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyVGlwczogXCLpmrHo\nl4\/liIbpoIHpmpTmop3vvIzmsonmtbjlvI\/pq5TpqZdcIixcbiAgICAgICAgICAgICAgICBzZXRD\nb25maWdQYWdlOiBcIuWwh+eVtuWJjemggemdouioreeCuum7mOiqjemFjee9rumggVwiLFxuICAg\nICAgICAgICAgICAgIHdlZGF0YTJnaXRodWI6IFwi5bCHIHdlZGF0YSDlnLDlnYDmm7TmlLnngrog\nZ2l0aHViIOWAieW6q+WFp+eahOmPoeWDj+WcsOWdgFwiLFxuICAgICAgICAgICAgICAgIGFkZE90\naGVyUHJvcDogXCLmt7vliqDopo\/liYflsazmgKdcIixcbiAgICAgICAgICAgICAgICBhZGROZXh0\nU2VsZWN0b3I6IFwi5re75Yqg6YG45pOH5Zmo5YWn5a6554K6IG5leHRMaW5rXCIsXG4gICAgICAg\nICAgICAgICAgYWRkUGFnZVNlbGVjdG9yOiBcIua3u+WKoOmBuOaTh+WZqOWFp+WuueeCuiBwYWdl\nRWxlbWVudFwiLFxuICAgICAgICAgICAgICAgIHByb3BOYW1lOiBcIui8uOWFpeimj+WJh+WxrOaA\np+WQjVwiLFxuICAgICAgICAgICAgICAgIHByb3BWYWx1ZTogXCLovLjlhaXopo\/liYflsazmgKfl\ngLxcIixcbiAgICAgICAgICAgICAgICBjdXN0b21GaXJzdDogXCLngrrmnKzlnLDoh6rlrprnvqno\npo\/liYflv73nlaXnt6nlrZhcIixcbiAgICAgICAgICAgICAgICBydWxlc0V4YW1wbGU6IFwi6Ieq\n5a6a576p6KaP5YmH6Kmz6KejXCIsXG4gICAgICAgICAgICAgICAgbGFzdFBhZ2U6IFwi5bey5Yiw\n6YGU5pyA5b6M5LiA6aCBXCIsXG4gICAgICAgICAgICAgICAgbGFzdFBhZ2VUaXBzOiBcIuWIsOmB\nlOacgOW+jOS4gOmggeaZgumAsuihjOaPkOekulwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0s\nXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwi5pel5pys6KqeXCIsXG4gICAgICAgICAg\nICBtYXRjaDogW1wiamFcIiwgXCJqYS1KUFwiXSxcbiAgICAgICAgICAgIGxhbmc6IHtcbiAgICAg\nICAgICAgICAgICBlbmFibGVEZWJ1ZzogXCLjg4fjg5Djg4PjgrDjg6Ljg7zjg4lcIixcbiAgICAg\nICAgICAgICAgICB1cGRhdGVOb3RpZmljYXRpb246IFwi44Or44O844Or5pu05paw5b6M44Gu6YCa\n55+lXCIsXG4gICAgICAgICAgICAgICAgZGlzYWJsZTogXCLkuIDmmYLnmoTjgavnhKHlirlcIixc\nbiAgICAgICAgICAgICAgICBkaXNhYmxlU2l0ZTogXCLnhKHlirnnirbmhYvjga7liIfjgormm7\/j\ngYhcIixcbiAgICAgICAgICAgICAgICBkaXNhYmxlU2l0ZVRpcHM6IFwi44GT44Gu44K144Kk44OI\n44Gn5pei44Gr54Sh5Yq544Gr44Gq44Gj44Gm44GE44G+44GZXCIsXG4gICAgICAgICAgICAgICAg\nZW5hYmxlU2l0ZVRpcHM6IFwi44GT44Gu44K144Kk44OI44Gn5pei44Gr5pyJ5Yq544Gr44Gq44Gj\n44Gm44GE44G+44GZXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlOiBcIuKcheODmuODvOOCuOOC\ngeOBj+OCiuOCkuacieWKueOBq+OBmeOCi1wiLFxuICAgICAgICAgICAgICAgIHRlbXBBY3RpdmU6\nIFwi5LiA5pmC55qE44Gr44Ki44Kv44OG44Kj44OWXCIsXG4gICAgICAgICAgICAgICAgdG9Ub3A6\nIFwi44OI44OD44OX44Gr5oi744KLXCIsXG4gICAgICAgICAgICAgICAgdG9Cb3R0b206IFwi44Oa\n44O844K444Gu5LiL6YOo44Gr56e75YuVXCIsXG4gICAgICAgICAgICAgICAgY3VycmVudDogXCLn\nj77lnKjjga7jg5rjg7zjgrhcIixcbiAgICAgICAgICAgICAgICBmb3JjZUlmcmFtZTogXCLlvLfl\niLbjgrnjg4bjg4Pjg4FcIixcbiAgICAgICAgICAgICAgICBjYW5jZWxGb3JjZUlmcmFtZTogXCLl\nvLfliLbjgrnjg4bjg4Pjg4HjgpLjgq3jg6Pjg7Pjgrvjg6tcIixcbiAgICAgICAgICAgICAgICBj\nb25maWd1cmU6IFwi6Kit5a6a44Oa44O844K444KS6ZaL44GPXCIsXG4gICAgICAgICAgICAgICAg\nZmlyc3RVcGRhdGU6IFwi44GT44GT44KS44Kv44Oq44OD44Kv44GX44Gm44Or44O844Or44KS5Yid\n5pyf5YyW44GX44G+44GZXCIsXG4gICAgICAgICAgICAgICAgdXBkYXRlOiBcIuabtOaWsOODq+OD\nvOODq1wiLFxuICAgICAgICAgICAgICAgIGNsaWNrMnVwZGF0ZTogXCLku4rjgZnjgZDjg6vjg7zj\ng6vjgpLmm7TmlrBcIixcbiAgICAgICAgICAgICAgICBsb2FkTm93OiBcIuS7iuOBmeOBkOODmuOD\nvOOCuOOCkuOCgeOBj+OCi1wiLFxuICAgICAgICAgICAgICAgIGxvYWRDb25maXJtOiBcIuaVsOOD\nmuODvOOCuOOCgeOBj+OCiuOBn+OBhOOBp+OBmeOBi++8n++8iDDjga\/pgJTliIfjgozjgarjgYTv\nvIlcIixcbiAgICAgICAgICAgICAgICBub05leHQ6IFwi5qyh44Gu44Oa44O844K444GM6KaL44Gk\n44GL44KK44G+44Gb44KT44CB5paw44GX44GE44Or44O844Or44KS5L2c5oiQ44GX44Gm44GP44Gg\n44GV44GEXCIsXG4gICAgICAgICAgICAgICAgcGFzc1NlYzogXCIjdCPnp5LliY3jgavmm7TmlrBc\nIixcbiAgICAgICAgICAgICAgICBwYXNzTWluOiBcIiN0I+WIhuWJjeOBq+abtOaWsFwiLFxuICAg\nICAgICAgICAgICAgIHBhc3NIb3VyOiBcIiN0I+aZgumWk+WJjeOBq+abtOaWsFwiLFxuICAgICAg\nICAgICAgICAgIHBhc3NEYXk6IFwiI3Qj5pel5YmN44Gr5pu05pawXCIsXG4gICAgICAgICAgICAg\nICAgY2FudERlbDogXCLntYTjgb\/ovrzjgb\/jg6vjg7zjg6vjgpLliYrpmaTjgafjgY3jgb7jgZvj\ngpNcIixcbiAgICAgICAgICAgICAgICBjb25maXJtRGVsOiBcIuOBk+OBruODq+ODvOODq+OCkuWJ\niumZpOOBl+OBpuOCguOCiOOCjeOBl+OBhOOBp+OBmeOBi++8n1wiLFxuICAgICAgICAgICAgICAg\nIHVwZGF0ZVN1Y2M6IFwi5pu05paw44Gr5oiQ5Yqf44GX44G+44GX44GfXCIsXG4gICAgICAgICAg\nICAgICAgYmVnaW5VcGRhdGU6IFwi5pu05paw5Lit44CB44GK5b6F44Gh44GP44Gg44GV44GEXCIs\nXG4gICAgICAgICAgICAgICAgY3VzdG9tVXJsczogXCLjgqTjg7Pjg53jg7zjg4jjg6vjg7zjg6vj\nga5VUkzjgIEx6KGM44GrMeOBpFwiLFxuICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVzOiBcIuOA\nkOadseaWueawuOmggeapn+OAkeOBruW9ouW8j+OBp+ODq+ODvOODq+OCkuWFpeWKm+OBl+OBpuOB\nj+OBoOOBleOBhCA8YSBocmVmPScjdCMnPuKcje+4j+WvhOeovzxcL2E+XCIsXG4gICAgICAgICAg\nICAgICAgc2F2ZTogXCLoqK3lrprjgpLkv53lrZhcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5n\nVGV4dDogXCLlsJHlpbPnpYjnpbfkuK0uLi5cIixcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiBc\nIuS4jemAj+aYjuWApFwiLFxuICAgICAgICAgICAgICAgIG9wYWNpdHlQbGFjZWhvbGRlcjogXCIw\nOiDpmqDjgZlcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFyOiBcIuODmuODvOOCuOWMuuWIh+OC\niuaWh+Wtl+OCkumdnuihqOekuuOBq+OBl+OBvuOBmVwiLFxuICAgICAgICAgICAgICAgIGhpZGVC\nYXJCdXROb1N0b3A6IFwi6Z2e6KGo56S644Gr44GZ44KL44GM5YGc5q2i44GX44Gq44GEXCIsXG4g\nICAgICAgICAgICAgICAgZGJDbGljazJTdG9wOiBcIuepuueZvemDqOWIhuOCkuODgOODluODq+OC\nr+ODquODg+OCr+OBl+OBpuODmuODvOOCuOOCgeOBj+OCiuOCkuS4gOaZguWBnOatouOBl+OBvuOB\nmVwiLFxuICAgICAgICAgICAgICAgIHNvcnRUaXRsZTogXCLkuKbjgbnmm7\/jgYjjga\/jgIHmrKHj\nga7jg6vjg7zjg6vjga7mm7TmlrDlvozjgavmnInlirnjgavjgarjgorjgb7jgZlcIixcbiAgICAg\nICAgICAgICAgICBhdXRvUnVuOiBcIuiHquWLleeahOOBq+acieWKuSAoYmxhY2tsaXN0IG1vZGUp\nXCIsXG4gICAgICAgICAgICAgICAgYXV0b0xvYWROdW06IFwi5oyH5a6a44GX44Gf44Oa44O844K4\n5pWw44KS6Ieq5YuV55qE44Gr6Kqt44G\/6L6844G\/44G+44GZXCIsXG4gICAgICAgICAgICAgICAg\ndHVyblJhdGU6IFwi44Oa44O844K444Gu56uv44GL44KJ44Oa44O844K444Gu6auY44GV44Gu44CQ\nWOOAkeWAjeOBq+OBquOBo+OBn+OCieODmuODvOOCuOOCkuOCgeOBj+OCi1wiLFxuICAgICAgICAg\nICAgICAgIGlucHV0UGFnZU51bTogXCLjgrjjg6Pjg7Pjg5fjgZnjgovjg5rjg7zjgrjnlarlj7fj\ngpLlhaXliptcIixcbiAgICAgICAgICAgICAgICBlbmFibGVIaXN0b3J5OiBcIuODmuODvOOCuOOC\ngeOBj+OCiuW+jOOBruWxpeattOOCkuabuOOBj1wiLFxuICAgICAgICAgICAgICAgIGVuYWJsZUhp\nc3RvcnlBZnRlckluc2VydDogXCLjgrnjg5fjg6njgqTjgrfjg7PjgrDjga7nm7TlvozjgavlsaXm\nrbTjg6zjgrPjg7zjg4njgpLmm7jjgY3ovrzjgb\/jgb7jgZnjgILjgZ3jgozku6XlpJbjga7loLTl\nkIjjga\/jgIHplrLopqflvozjgavmm7jjgY3ovrzjgb\/jgb7jgZlcIixcbiAgICAgICAgICAgICAg\nICBjb250ZW50VmlzaWJpbGl0eTogXCJjb250ZW50VmlzaWJpbGl0eSDjgpLoh6rli5XnmoTjgavl\niIfjgormm7\/jgYjjgabjg6zjg7Pjg4Djg6rjg7PjgrAg44OR44OV44Kp44O844Oe44Oz44K544KS\n5ZCR5LiK44GV44Gb44KLXCIsXG4gICAgICAgICAgICAgICAgaW5pdFJ1bjogXCJXZWLjg5rjg7zj\ngrjjgpLplovjgYTjgZ\/nm7Tlvozjgavjg5rjg7zjgrjjgpLjgoHjgY\/jgotcIixcbiAgICAgICAg\nICAgICAgICBwcmVsb2FkOiBcIuS6i+WJjeOBq+asoeOBruODmuODvOOCuOOCkuiqreOCgFwiLFxu\nICAgICAgICAgICAgICAgIGNsaWNrMkltcG9ydFJ1bGU6IFwi5Lul5LiL44KS44Kv44Oq44OD44Kv\n44GX44Gm44CB44Or44O844Or44OZ44O844K544KS6L+95Yqg44GX44G+44GZ77yaXCIsXG4gICAg\nICAgICAgICAgICAgZm9yY2VBbGxCb2R5OiBcIuODleODq+ODmuODvOOCuOWfi+OCgei+vOOBv++8\nn1wiLFxuICAgICAgICAgICAgICAgIG9wZW5Jbk5ld1RhYjogXCLjgrnjg5fjg6njgqTjgrnjgZXj\ngozjgZ\/jg5rjg7zjgrjjga7jgrPjg7Pjg4bjg7Pjg4TjgpLmlrDjgZfjgYTjg5rjg7zjgrjjgafp\nlovjgY3jgb7jgZlcIixcbiAgICAgICAgICAgICAgICBpbXBvcnRTdWNjOiBcIuOCpOODs+ODneOD\nvOODiOWujOS6hlwiLFxuICAgICAgICAgICAgICAgIGltcG9ydDogXCLjgqTjg7Pjg53jg7zjg4hc\nIixcbiAgICAgICAgICAgICAgICBlZGl0Q3VycmVudDogXCLnj77lnKjjga7jg6vjg7zjg6vjga7n\nt6jpm4ZcIixcbiAgICAgICAgICAgICAgICBlZGl0QmxhY2tsaXN0OiBcIuODluODqeODg+OCr+OD\nquOCueODiOOBrlVSTOOCkue3qOmbhuOBl+OAgTHooYzjgZrjgaTjgIHjgrXjg53jg7zjg4g\/ICrj\ng6\/jgqTjg6vjg4njgqvjg7zjg4lcIixcbiAgICAgICAgICAgICAgICB1cEJ0bkltZzogXCJJY29u\nIG9mIGJhY2sgdG8gdG9wXCIsXG4gICAgICAgICAgICAgICAgZG93bkJ0bkltZzogXCJJY29uIG9m\nIGdvIHRvIGZvb3RlclwiLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVySWNvbjogXCJJ\nY29uIG9mIHNpZGViYXJcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dFRpdGxlOiBcIuOD\nhuOCreOCueODiOOCkuODreODvOODiVwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEN0\ncmw6IFwiQ3RybOOCreODvFwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEFsdDogXCJB\nbHTjgq3jg7xcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BTaGlmdDogXCJTaGlmdOOC\nreODvFwiLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcE1ldGE6IFwiTWV0YeOCreODvFwi\nLFxuICAgICAgICAgICAgICAgIGRiQ2xpY2syU3RvcEtleTogXCJTaG9ydGN1dOOCreODvFwiLFxu\nICAgICAgICAgICAgICAgIHBhZ2VFbGVtZW50Q3NzOiBcIuODmuODvOOCuOacrOaWh+ODleODrOOD\nvOODoOOBriBTVFlMRVwiLFxuICAgICAgICAgICAgICAgIGN1c3RvbUNzczogXCLjgqvjgrnjgr\/j\ng6AgY3NzXCIsXG4gICAgICAgICAgICAgICAgZmlyc3RBbGVydDogXCLjg6vjg7zjg6vjg5njg7zj\ngrnjgpLjgqTjg7Pjg53jg7zjg4jjgZfjgabjgYTjgarjgYTjgZ\/jgoHjgIHjgqTjg7Pjg53jg7zj\ng4jjgZnjgovpganliIfjgarjg6vjg7zjg6vjg5njg7zjgrnjgpLpgbjmip7jgZfjgabjgY\/jgaDj\ngZXjgYRcIixcbiAgICAgICAgICAgICAgICBwaWNrZXI6IFwiUGFnZXR1YWzjg5rjg7zjgrjopoHn\ntKDjg5Tjg4Pjgqvjg7xcIixcbiAgICAgICAgICAgICAgICBjbG9zZVBpY2tlcjogXCJQYWdldHVh\nbOODlOODg+OCq+ODvOOCkumWieOBmOOCi1wiLFxuICAgICAgICAgICAgICAgIHBpY2tlclBsYWNl\naG9sZGVyOiBcIuOCj+OBi+OCieOBquOBhOWgtOWQiOOBr+epuuOBruOBvuOBvuOBq+OBl+OBpuOB\nj+OBoOOBleOBhFwiLFxuICAgICAgICAgICAgICAgIHBpY2tlckNoZWNrOiBcIuOCu+ODrOOCr+OC\nv+ODvOOCkuODgeOCp+ODg+OCr+OBl+OBpuOCs+ODlOODvFwiLFxuICAgICAgICAgICAgICAgIHN3\naXRjaFNlbGVjdG9yOiBcIuOCr+ODquODg+OCr+OBl+OBpuimgee0oOOCkuWIh+OCiuabv+OBiOOB\nvuOBmVwiLFxuICAgICAgICAgICAgICAgIGdvdG9FZGl0OiBcIuePvuWcqOOBruOCu+ODrOOCr+OC\nv+ODvOOBp+ODq+ODvOODq+OCkue3qOmbhuOBmeOCi1wiLFxuICAgICAgICAgICAgICAgIG1hbnVh\nbE1vZGU6IFwi44K544OX44Op44Kk44K344Oz44Kw44KS54Sh5Yq544Gr44GX44G+44GZ44CC5omL\n5YuV44Gn5Y+z44Gu55+i5Y2w44Kt44O844KS5L2\/55So44GX44Gm44Oa44O844K444KS44KB44GP\n44KK44G+44GZXCIsXG4gICAgICAgICAgICAgICAgY2xpY2tNb2RlOiBcIuOCueODhuOCo+ODg+OD\ngeODs+OCsOOCkueEoeWKueOBq+OBl+OBvuOBmeOAguODmuODvOOCuOOBruacgOW+jOOBvuOBp+OC\nueOCr+ODreODvOODq+OBmeOCi+OBqOOAgeasoeOBruODmuODvOOCuOOBjOiHquWLleeahOOBq+OC\nr+ODquODg+OCr+OBleOCjOOBvuOBmVwiLFxuICAgICAgICAgICAgICAgIHBhZ2VCYXJNZW51OiBc\nIuODmuODvOOCuOODkOODvOOBruS4reWkruOCkuOCr+ODquODg+OCr+OBl+OBpuODoeODi+ODpeOD\nvOOCkuODneODg+ODl+OCouODg+ODl+ihqOekulwiLFxuICAgICAgICAgICAgICAgIG5leHRTd2l0\nY2g6IFwi5qyh44Gu44Oa44O844K444Gr5YiH44KK5pu\/44GIXCIsXG4gICAgICAgICAgICAgICAg\nYXJyb3dUb1Njcm9sbDogXCLlt6bnn6LljbDjgq3jg7zjgafliY3jgbjjgIHlj7Pnn6LljbDjgq3j\ng7zjgafmrKHjgbhcIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlcjogXCLjgrXjgqTj\ng4njg5Djg7zjgavjg5rjg7zjgrjjg7PjgrAg44Kz44Oz44OI44Ot44O844OrIOODkOODvOOCkuih\nqOekuuOBmeOCi1wiLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyU2Nyb2xsOiBcIuOC\nueOCr+ODreODvOODqyDjgrnjgqTjg4Pjg4FcIixcbiAgICAgICAgICAgICAgICBzaWRlQ29udHJv\nbGxlckFsd2F5czogXCLluLjjgavooajnpLpcIixcbiAgICAgICAgICAgICAgICBoaWRlTG9hZGlu\nZ0ljb246IFwi6Kqt44G\/6L6844G\/5Lit44Gu44Ki44OL44Oh44O844K344On44Oz44KS6Zqg44GZ\nXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhckFycm93OiBcIuWIhuWJsue3muOBruS9jee9ruef\nouWNsOOCkumaoOOBmVwiLFxuICAgICAgICAgICAgICAgIGR1cGxpY2F0ZTogXCJQYWdldHVhbCDj\nga7ph43opIfjgqTjg7Pjgrnjg4jjg7zjg6vjgYzmpJzlh7rjgZXjgozjgb7jgZfjgZ\/jgILku5bj\nga7jgrnjgq\/jg6rjg5fjg4gg44Oe44ON44O844K444Oj44Gn5rC457aa55qE44Gq44Oa44O844K4\nIOODnuOCt+ODs+OCkuWJiumZpOOBl+OBpuOBj+OBoOOBleOBhCFcIixcbiAgICAgICAgICAgICAg\nICBmb3JjZVN0YXRlSWZyYW1lOiBcImlmcmFtZSDjgavjg5rjg7zjgrjlhajkvZPjgpLln4vjgoHo\nvrzjgoBcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlRHluYW1pYzogXCJpZnJhbWUg57WM\n55Sx44Gn5YuV55qE44Kz44Oz44OG44Oz44OE44KS6Kqt44G\/6L6844KAXCIsXG4gICAgICAgICAg\nICAgICAgZm9yY2VTdGF0ZURpc2FibGU6IFwi44GT44Gu44K544OG44O844K344On44Oz44Gn44Gu\n44Oa44O844K444KB44GP44KK44KS54Sh5Yq544Gr44GZ44KLXCIsXG4gICAgICAgICAgICAgICAg\nYXV0b1Njcm9sbFJhdGU6IFwi44K544Kv44Ot44O844Or6YCf5bqmICgxfjEwMDApXCIsXG4gICAg\nICAgICAgICAgICAgZGlzYWJsZUF1dG9TY3JvbGw6IFwi6Ieq5YuV44K544Kv44Ot44O844Or44KS\n5YGc5q2i44GX44G+44GZXCIsXG4gICAgICAgICAgICAgICAgZW5hYmxlQXV0b1Njcm9sbDogXCLo\nh6rli5Xjgrnjgq\/jg63jg7zjg6vjgpLmnInlirnjgavjgZnjgotcIixcbiAgICAgICAgICAgICAg\nICB0b2dnbGVBdXRvU2Nyb2xsOiBcIuiHquWLleOCueOCr+ODreODvOODq+OBruWIh+OCiuabv+OB\niFwiLFxuICAgICAgICAgICAgICAgIHJ1bGVSZXF1ZXN0OiBcIuODq+ODvOODq+imgeaxglwiLFxu\nICAgICAgICAgICAgICAgIHBhZ2U6IFwiUGFnZSBcIixcbiAgICAgICAgICAgICAgICBwcmV2UGFn\nZTogXCJQcmV2IHBhZ2VcIixcbiAgICAgICAgICAgICAgICBuZXh0UGFnZTogXCJOZXh0IHBhZ2Vc\nIixcbiAgICAgICAgICAgICAgICBlcnJvclJ1bGVzTXVzdEJlQXJyYXk6IFwiUnVsZXMgbXVzdCBi\nZSBhIEFycmF5IVwiLFxuICAgICAgICAgICAgICAgIGVycm9ySnNvbjogXCJKU09OIGVycm9yLCBj\naGVjayBhZ2FpbiFcIixcbiAgICAgICAgICAgICAgICBlZGl0U3VjY2VzczogXCJFZGl0IHN1Y2Nl\nc3NmdWxseVwiLFxuICAgICAgICAgICAgICAgIGVycm9yV3JvbmdVcmw6IFwiV3JvbmcgdXJsLCBj\naGVjayBhZ2FpbiFcIixcbiAgICAgICAgICAgICAgICBlcnJvckFscmVhZHlFeGlzdHM6IFwiQWxy\nZWFkeSBleGlzdHMhXCIsXG4gICAgICAgICAgICAgICAgc2V0dGluZ3NTYXZlZDogXCJUaGUgc2V0\ndGluZ3MgYXJlIHNhdmVkLCByZWZyZXNoIHRvIHZpZXdcIixcbiAgICAgICAgICAgICAgICBpZnJh\nbWU6IFwiSWZyYW1lXCIsXG4gICAgICAgICAgICAgICAgZHluYW1pYzogXCJEeW5hbWljXCIsXG4g\nICAgICAgICAgICAgICAgcmVsb2FkUGFnZTogXCJFZGl0IGNvbXBsZXRlZCwgcmVsb2FkIHBhZ2Ug\nbm93P1wiLFxuICAgICAgICAgICAgICAgIGNvcGllZDogXCJDb3BpZWRcIixcbiAgICAgICAgICAg\nICAgICBub1ZhbGlkQ29udGVudDogXCLmnInlirnjgarjgrPjg7Pjg4bjg7Pjg4TjgYzmpJzlh7rj\ngZXjgozjgb7jgZvjgpPjgafjgZfjgZ\/jgILjgq\/jg6rjg4Pjgq\/jgZfjgabooajnpLpcIixcbiAg\nICAgICAgICAgICAgICBvdXRPZkRhdGU6IFwi44K544Kv44Oq44OX44OI44GM5Y+k44GP44Gq44Gj\n44Gm44GE44G+44GZ44CC5pyA5paw44OQ44O844K444On44Oz44Gr5pu05paw44GX44Gm44GP44Gg\n44GV44GE44CCXCIsXG4gICAgICAgICAgICAgICAgaGlkZUJhclRpcHM6IFwi44Oa44O844K444ON\n44O844K344On44OzIOODkOODvOOCkumdnuihqOekuuOBq+OBl+OBvuOBmeOAguayoeWFpeWei+OC\nqOOCr+OCueODmuODquOCqOODs+OCuVwiLFxuICAgICAgICAgICAgICAgIHNldENvbmZpZ1BhZ2U6\nIFwi54++5Zyo44Gu44Oa44O844K444KS44OH44OV44Kp44Or44OI6Kit5a6a44Oa44O844K444Go\n44GX44Gm6Kit5a6aXCIsXG4gICAgICAgICAgICAgICAgd2VkYXRhMmdpdGh1YjogXCJ3ZWRhdGEg\n44Ki44OJ44Os44K544KSIGdpdGh1YiDjgqbjgqfjgqLjg4\/jgqbjgrnjga7jg5\/jg6njg7wg44Ki\n44OJ44Os44K544Gr5aSJ5pu0XCIsXG4gICAgICAgICAgICAgICAgYWRkT3RoZXJQcm9wOiBcIuOD\nq+ODvOODq+ODl+ODreODkeODhuOCo+OCkui\/veWKoFwiLFxuICAgICAgICAgICAgICAgIGFkZE5l\neHRTZWxlY3RvcjogXCLjgrvjg6zjgq\/jgr\/jg7zjga7jgrPjg7Pjg4bjg7Pjg4TjgpIgbmV4dExp\nbmsg44Go44GX44Gm6L+95YqgXCIsXG4gICAgICAgICAgICAgICAgYWRkUGFnZVNlbGVjdG9yOiBc\nIuOCu+ODrOOCr+OCvyDjgrPjg7Pjg4bjg7Pjg4TjgpIgcGFnZUVsZW1lbnQg44Go44GX44Gm6L+9\n5YqgXCIsXG4gICAgICAgICAgICAgICAgcHJvcE5hbWU6IFwi44Or44O844Or44Gu44OX44Ot44OR\n44OG44Kj5ZCN44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEXCIsXG4gICAgICAgICAgICAgICAg\ncHJvcFZhbHVlOiBcIuODq+ODvOODq+OBruODl+ODreODkeODhuOCo+WApOOCkuWFpeWKm+OBl+OB\npuOBj+OBoOOBleOBhFwiLFxuICAgICAgICAgICAgICAgIGN1c3RvbUZpcnN0OiBcIuODreODvOOC\nq+ODq+OCq+OCueOCv+ODoOODq+ODvOODq+OBruOCreODo+ODg+OCt+ODpeOCkueEoeimluOBmeOC\ni1wiLFxuICAgICAgICAgICAgICAgIHJ1bGVzRXhhbXBsZTogXCLjgqvjgrnjgr\/jg6Djg6vjg7zj\ng6vjga7oqbPjgZfjgYToqqzmmI5cIixcbiAgICAgICAgICAgICAgICBsYXN0UGFnZTogXCLmnIDl\nvozjga7jg5rjg7zjgrjjgavliLDpgZTjgZfjgb7jgZfjgZ9cIixcbiAgICAgICAgICAgICAgICBs\nYXN0UGFnZVRpcHM6IFwi5pyA5b6M44Gu44Oa44O844K444Gr5Yiw6YGU44GX44Gf5pmC44Gr44OS\n44Oz44OI44KS6KGo56S644GZ44KLXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAg\nICAge1xuICAgICAgICAgICAgbmFtZTogXCLQoNGD0YHRgdC60LjQuVwiLFxuICAgICAgICAgICAg\nbWF0Y2g6IFtcInJ1XCIsIFwicnUtUlVcIl0sXG4gICAgICAgICAgICBsYW5nOiB7XG4gICAgICAg\nICAgICAgICAgZW5hYmxlRGVidWc6IFwi0JLQutC70Y7Rh9C40YLRjCDQvtGC0LvQsNC00LrRg1wi\nLFxuICAgICAgICAgICAgICAgIHVwZGF0ZU5vdGlmaWNhdGlvbjogXCLQo9Cy0LXQtNC+0LzQu9C1\n0L3QuNC1INC\/0L7RgdC70LUg0L7QsdC90L7QstC70LXQvdC40Y8g0L\/RgNCw0LLQuNC70LBcIixc\nbiAgICAgICAgICAgICAgICBkaXNhYmxlOiBcItCS0YvQutC70Y7Rh9C40YLRjFwiLFxuICAgICAg\nICAgICAgICAgIGRpc2FibGVTaXRlOiBcItCS0LrQu9GO0YfQuNGC0YxcL9Cy0YvQutC70Y7Rh9C4\n0YLRjCDQvdCwINGB0LDQudGC0LVcIixcbiAgICAgICAgICAgICAgICBkaXNhYmxlU2l0ZVRpcHM6\nIFwi0JLRi9C60LvRjtGH0LXQvdC+INC00LvRjyDRjdGC0L7Qs9C+INGB0LDQudGC0LBcIixcbiAg\nICAgICAgICAgICAgICBlbmFibGVTaXRlVGlwczogXCLQktC60LvRjtGH0LXQvdC+INC00LvRjyDR\njdGC0L7Qs9C+INGB0LDQudGC0LBcIixcbiAgICAgICAgICAgICAgICBlbmFibGU6IFwi4pyF0JLQ\nutC70Y7Rh9C40YLRjFwiLFxuICAgICAgICAgICAgICAgIHRlbXBBY3RpdmU6IFwi0JLRgNC10LzQ\ntdC90L3QviDQsNC60YLQuNCy0LXQvVwiLFxuICAgICAgICAgICAgICAgIHRvVG9wOiBcItCd0LDQ\nstC10YDRhVwiLFxuICAgICAgICAgICAgICAgIHRvQm90dG9tOiBcItCS0L3QuNC3XCIsXG4gICAg\nICAgICAgICAgICAgY3VycmVudDogXCLQotC10LrRg9GJ0LDRjyDRgdGC0YDQsNC90LjRhtCwXCIs\nXG4gICAgICAgICAgICAgICAgZm9yY2VJZnJhbWU6IFwi0J\/QvtC00LPRgNGD0LfQuNGC0Ywg0LXR\nidGRINGB0YLRgNCw0L3QuNGG0YNcIixcbiAgICAgICAgICAgICAgICBjYW5jZWxGb3JjZUlmcmFt\nZTogXCLQntGC0LzQtdC90LjRgtGMINC\/0L7QtNCz0YDRg9C30LrRg1wiLFxuICAgICAgICAgICAg\nICAgIGNvbmZpZ3VyZTogXCLQndCw0YHRgtGA0L7QudC60LhcIixcbiAgICAgICAgICAgICAgICBm\naXJzdFVwZGF0ZTogXCLQndCw0LbQvNC40YLQtSDQt9C00LXRgdGMLCDRh9GC0L7QsdGLINC40L3Q\nuNGG0LjQsNC70LjQt9C40YDQvtCy0LDRgtGMINC\/0YDQsNCy0LjQu9CwXCIsXG4gICAgICAgICAg\nICAgICAgdXBkYXRlOiBcItCe0LHQvdC+0LLQuNGC0Ywg0L\/RgNCw0LLQuNC70LBcIixcbiAgICAg\nICAgICAgICAgICBjbGljazJ1cGRhdGU6IFwi0J3QsNC20LzQuNGC0LUsINGH0YLQvtCx0Ysg0L7Q\nsdC90L7QstC40YLRjCDQv9GA0LDQstC40LvQsFwiLFxuICAgICAgICAgICAgICAgIGxvYWROb3c6\nIFwi0JfQsNCz0YDRg9C30LjRgtGMINGB0LvQtdC00YPRjtGJ0YPRjiDRgdGC0YDQsNC90LjRhtGD\nXCIsXG4gICAgICAgICAgICAgICAgbG9hZENvbmZpcm06IFwi0KHQutC+0LvRjNC60L4g0YHRgtGA\n0LDQvdC40YYg0LLRiyDRhdC+0YLQuNGC0LUg0LfQsNCz0YDRg9C30LjRgtGMPyAoMCDQvtC30L3Q\nsNGH0LDQtdGCINCx0LXRgdC60L7QvdC10YfQvdC+0YHRgtGMKVwiLFxuICAgICAgICAgICAgICAg\nIG5vTmV4dDogXCLQodGB0YvQu9C60LAg0L3QsCDRgdC70LXQtNGD0Y7RidGD0Y4g0YHRgtGA0LDQ\nvdC40YbRgyDQvdC1INC90LDQudC00LXQvdCwLiDQn9C+0LbQsNC70YPQudGB0YLQsCwg0YHQvtC3\n0LTQsNC50YLQtSDQvdC+0LLQvtC1INC\/0YDQsNCy0LjQu9C+XCIsXG4gICAgICAgICAgICAgICAg\ncGFzc1NlYzogXCLQntCx0L3QvtCy0LvQtdC90L4gI3QjINGB0LXQutGD0L3QtCDQvdCw0LfQsNC0\nXCIsXG4gICAgICAgICAgICAgICAgcGFzc01pbjogXCLQntCx0L3QvtCy0LvQtdC90L4gI3QjINC8\n0LjQvdGD0YIg0L3QsNC30LDQtFwiLFxuICAgICAgICAgICAgICAgIHBhc3NIb3VyOiBcItCe0LHQ\nvdC+0LLQu9C10L3QviAjdCMg0YfQsNGB0L7QsiDQvdCw0LfQsNC0XCIsXG4gICAgICAgICAgICAg\nICAgcGFzc0RheTogXCLQntCx0L3QvtCy0LvQtdC90L4gI3QjINC00L3QtdC5INC90LDQt9Cw0LRc\nIixcbiAgICAgICAgICAgICAgICBjYW50RGVsOiBcItCd0LXQu9GM0LfRjyDRg9C00LDQu9C40YLR\njCDQv9GA0LDQstC40LvQsCDQv9C+INGD0LzQvtC70YfQsNC90LjRjlwiLFxuICAgICAgICAgICAg\nICAgIGNvbmZpcm1EZWw6IFwi0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQ\ntSDRg9C00LDQu9C40YLRjCDRjdGC0YMg0YHRgdGL0LvQutGDP1wiLFxuICAgICAgICAgICAgICAg\nIHVwZGF0ZVN1Y2M6IFwi0J\/RgNCw0LLQuNC70LAg0L7QsdC90L7QstC70LXQvdGLXCIsXG4gICAg\nICAgICAgICAgICAgYmVnaW5VcGRhdGU6IFwi0J7QsdC90L7QstC70LXQvdC40LUuINCf0L7QttCw\n0LvRg9C50YHRgtCwLCDQvdC10LzQvdC+0LPQviDQv9C+0LTQvtC20LTQuNGC0LVcIixcbiAgICAg\nICAgICAgICAgICBjdXN0b21VcmxzOiBcItCh0YHRi9C70LrQuCDRgSDQv9GA0LDQstC40LvQsNC8\n0Lgg0LTQu9GPINC40LzQv9C+0YDRgtCwLiDQntC00L3QsCDRgdGB0YvQu9C60LAg0L3QsCDRgdGC\n0YDQvtC60YNcIixcbiAgICAgICAgICAgICAgICBjdXN0b21SdWxlczogXCLQktCy0LXQtNC40YLQ\ntSDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQv9GA0LDQstC40LvQsCDQsiDRhNC+\n0YDQvNCw0YLQtSBQYWdldHVhbC4gPGEgaHJlZj0nI3QjJz7inI3vuI\/Qo9C70YPRh9GI0LjRgtGM\nINCy0YHRgtGA0L7QtdC90L3Ri9C1INC\/0YDQsNCy0LjQu9CwPFwvYT5cIixcbiAgICAgICAgICAg\nICAgICBzYXZlOiBcItCh0L7RhdGA0LDQvdC40YLRjCDQvdCw0YHRgtGA0L7QudC60LhcIixcbiAg\nICAgICAgICAgICAgICBsb2FkaW5nVGV4dDogXCLQodC70LXQtNGD0Y7RidCw0Y8g0YHRgtGA0LDQ\nvdC40YbQsCDQv9C+0LTQs9GA0YPQttCw0LXRgtGB0Y\/igKZcIixcbiAgICAgICAgICAgICAgICBv\ncGFjaXR5OiBcItCf0YDQvtC30YDQsNGH0L3QvtGB0YLRjFwiLFxuICAgICAgICAgICAgICAgIG9w\nYWNpdHlQbGFjZWhvbGRlcjogXCIwIC0g0YHQutGA0YvRgtGMXCIsXG4gICAgICAgICAgICAgICAg\naGlkZUJhcjogXCLQodC60YDRi9GC0Ywg0YDQsNC30LTQtdC70LjRgtC10LvRjCDRgdGC0YDQsNC9\n0LjRhlwiLFxuICAgICAgICAgICAgICAgIGhpZGVCYXJCdXROb1N0b3A6IFwi0KHQutGA0YvRgtGM\nLCDQvdC+INC90LUg0L7RgdGC0LDQvdCw0LLQu9C40LLQsNGC0YxcIixcbiAgICAgICAgICAgICAg\nICBkYkNsaWNrMlN0b3A6IFwi0JTQstC+0LnQvdC+0Lkg0LrQu9C40Log0L3QsCDRgdGC0YDQsNC9\n0LjRhtC1INC00LvRjyDQstGL0LrQu9GO0YfQtdC90LjRj1wiLFxuICAgICAgICAgICAgICAgIHNv\ncnRUaXRsZTogXCLQn9GA0LDQstC40LvQviDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9GA0LjQvNC1\n0L3QuNGC0YHRjyDQv9C+0YHQu9C1INGB0LvQtdC00YPRjtGJ0LXQs9C+INC+0LHQvdC+0LLQu9C1\n0L3QuNGPINC\/0YDQsNCy0LjQu1wiLFxuICAgICAgICAgICAgICAgIGF1dG9SdW46IFwi0JDQstGC\n0L7Qt9Cw0L\/Rg9GB0LogKNGA0LXQttC40Lwg0YfQtdGA0L3QvtCz0L4g0YHQv9C40YHQutCwKVwi\nLFxuICAgICAgICAgICAgICAgIGF1dG9Mb2FkTnVtOiBcItCa0L7Qu9C40YfQtdGB0YLQstC+INGB\n0YLRgNCw0L3QuNGGINC00LvRjyDQv9GA0LXQtNC30LDQs9GA0YPQt9C60LhcIixcbiAgICAgICAg\nICAgICAgICB0dXJuUmF0ZTogXCLQn9C+0LTQs9GA0YPQt9C40YLRjCDRgdGC0YDQsNC90LjRhtGD\nLCDQutC+0LPQtNCwINC+0L3QsCDQsdGD0LTQtdGCINCyIOOAkFjjgJEg0YDQsNC3INCx0L7Qu9GM\n0YjQtSDQstGL0YHQvtGC0Ysg0YHRgtGA0LDQvdC40YbRiyDQvtGCINC60L7QvdGG0LAg0YHRgtGA\n0LDQvdC40YbRi1wiLFxuICAgICAgICAgICAgICAgIGlucHV0UGFnZU51bTogXCLQktCy0LXQtNC4\n0YLQtSDQvdC+0LzQtdGAINGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINC\/0LXRgNC10YXQvtC00LBc\nIixcbiAgICAgICAgICAgICAgICBlbmFibGVIaXN0b3J5OiBcItCX0LDQv9C40YHQsNGC0Ywg0LjR\ngdGC0L7RgNC40Y4g0L\/QvtGB0LvQtSDQv9C10YDQtdC60LvRjtGH0LXQvdC40Y8g0YHRgtGA0LDQ\nvdC40YZcIixcbiAgICAgICAgICAgICAgICBlbmFibGVIaXN0b3J5QWZ0ZXJJbnNlcnQ6IFwi0JfQ\nsNC\/0LjRgdCw0YLRjCDQt9Cw0L\/QuNGB0Ywg0LjRgdGC0L7RgNC40Lgg0YHRgNCw0LfRgyDQv9C+\n0YHQu9C1INCy0YHRgtCw0LLQutC4LCDQuNC90LDRh9C1INC30LDQv9C40YHQsNGC0Ywg0L\/QvtGB\n0LvQtSDQv9GA0L7RgdC80L7RgtGA0LBcIixcbiAgICAgICAgICAgICAgICBjb250ZW50VmlzaWJp\nbGl0eTogXCLQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQv9C10YDQtdC60LvRjtGH0LDRgtGM\nIGNvbnRlbnRWaXNpYmlsaXR5INC00LvRjyDQv9C+0LLRi9GI0LXQvdC40Y8g0L\/RgNC+0LjQt9Cy\n0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4INGA0LXQvdC00LXRgNC40L3Qs9CwXCIsXG4gICAgICAg\nICAgICAgICAgaW5pdFJ1bjogXCLQn9C+0LTQs9GA0YPQttCw0YLRjCDRgdGC0YDQsNC90LjRhtGL\nINGB0YDQsNC30YMg0L\/QvtGB0LvQtSDQvtGC0LrRgNGL0YLQuNGPXCIsXG4gICAgICAgICAgICAg\nICAgcHJlbG9hZDogXCLQn9GA0LXQtNC30LDQs9GA0YPQt9C60LAg0YHQu9C10LTRg9GO0YnQtdC5\nINGB0YLRgNCw0L3QuNGG0YtcIixcbiAgICAgICAgICAgICAgICBjbGljazJJbXBvcnRSdWxlOiBc\nItCd0LDQttC80LjRgtC1LCDRh9GC0L7QsdGLINC40LzQv9C+0YDRgtC40YDQvtCy0LDRgtGMINCx\n0LDQt9C+0LLRi9C1INC\/0YDQsNCy0LjQu9CwOiBcIixcbiAgICAgICAgICAgICAgICBmb3JjZUFs\nbEJvZHk6IFwi0J\/RgNC40YHQvtC10LTQuNC90LjRgtGMINGB0YLRgNCw0L3QuNGG0YMg0YbQtdC7\n0LjQutC+0Lw\/XCIsXG4gICAgICAgICAgICAgICAgb3BlbkluTmV3VGFiOiBcItCe0YLQutGA0YvR\ngtGMINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0YHRgdGL0LvQutC4INCyINC90L7QstC+\n0Lkg0LLQutC70LDQtNC60LVcIixcbiAgICAgICAgICAgICAgICBpbXBvcnRTdWNjOiBcItCY0LzQ\nv9C+0YDRgiDQt9Cw0LLQtdGA0YjQtdC9XCIsXG4gICAgICAgICAgICAgICAgaW1wb3J0OiBcItCY\n0LzQv9C+0YDRglwiLFxuICAgICAgICAgICAgICAgIGVkaXRDdXJyZW50OiBcItCY0LfQvNC10L3Q\nuNGC0Ywg0L\/RgNCw0LLQuNC70L4g0LTQu9GPINGC0LXQutGD0YnQtdCz0L4g0YHQsNC50YLQsFwi\nLFxuICAgICAgICAgICAgICAgIGVkaXRCbGFja2xpc3Q6IFwi0JjQt9C80LXQvdC40YLRjCDRh9C1\n0YDQvdGL0Lkg0YHQv9C40YHQvtC6LiDQntC00L3QsCDRgdGB0YvQu9C60LAg0L3QsCDRgdGC0YDQ\nvtC60YMuINCf0L7QtNC00LXRgNC20LjQstCw0Y7RgtGB0Y8g0LzQtdGC0LDRgdC40LzQstC+0LvR\nizogPyDQuCAqXCIsXG4gICAgICAgICAgICAgICAgdXBCdG5JbWc6IFwi0JjQutC+0L3QutCwINC\/\n0LXRgNC10YXQvtC00LAg0Log0L3QsNGH0LDQu9GDXCIsXG4gICAgICAgICAgICAgICAgZG93bkJ0\nbkltZzogXCLQmNC60L7QvdC60LAg0L\/QtdGA0LXRhdC+0LTQsCDQuiDQutC+0L3RhtGDXCIsXG4g\nICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXJJY29uOiBcItCX0L3QsNGH0L7QuiDQsdC+0LrQ\nvtCy0L7QuSDQv9Cw0L3QtdC70LhcIixcbiAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dFRpdGxl\nOiBcItCi0LXQutGB0YIg0LLQviDQstGA0LXQvNGPINC30LDQs9GA0YPQt9C60LhcIixcbiAgICAg\nICAgICAgICAgICBkYkNsaWNrMlN0b3BDdHJsOiBcIkN0cmxcIixcbiAgICAgICAgICAgICAgICBk\nYkNsaWNrMlN0b3BBbHQ6IFwiQWx0XCIsXG4gICAgICAgICAgICAgICAgZGJDbGljazJTdG9wU2hp\nZnQ6IFwiU2hpZnRcIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BNZXRhOiBcIk1ldGFc\nIixcbiAgICAgICAgICAgICAgICBkYkNsaWNrMlN0b3BLZXk6IFwi0JrQu9Cw0LLQuNGI0LBcIixc\nbiAgICAgICAgICAgICAgICBwYWdlRWxlbWVudENzczogXCLQn9C+0LvRjNC30L7QstCw0YLQtdC7\n0YzRgdC60LjQuSDRgdGC0LjQu9GMINC00LvRjyDQvtGB0L3QvtCy0L3Ri9GFINGN0LvQtdC80LXQ\nvdGC0L7QsiDRgdGC0YDQsNC90LjRhtGLXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ3NzOiBc\nItCf0L7Qu9C90YvQuSDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQuSBDU1NcIixcbiAg\nICAgICAgICAgICAgICBmaXJzdEFsZXJ0OiBcItCS0Ysg0L3QtSDQuNC80L\/QvtGA0YLQuNGA0L7Q\nstCw0LvQuCDQsdCw0LfQvtCy0L7QtSDQv9GA0LDQstC40LvQvi4g0J\/QvtC20LDQu9GD0LnRgdGC\n0LAsINCy0YvQsdC10YDQuNGC0LUg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQtdC1INC\/0YDQ\nsNCy0LjQu9C+INC00LvRjyDQuNC80L\/QvtGA0YLQsFwiLFxuICAgICAgICAgICAgICAgIHBpY2tl\ncjogXCJQYWdldHVhbDog0LLRi9Cx0L7RgCDRjdC70LXQvNC10L3RgtCwINGB0YLRgNCw0L3QuNGG\n0YtcIixcbiAgICAgICAgICAgICAgICBjbG9zZVBpY2tlcjogXCLQl9Cw0LrRgNGL0YLRjCDQvtC6\n0L3QviBQYWdldHVhbFwiLFxuICAgICAgICAgICAgICAgIHBpY2tlclBsYWNlaG9sZGVyOiBcItCV\n0YHQu9C4INC90LUg0LfQvdCw0LXRgtC1LCDRh9GC0L4g0YLRg9GCINC\/0LjRgdCw0YLRjCDigJQg\n0L7RgdGC0LDQstGM0YLQtSDQv9C+0LvQtSDQv9GD0YHRgtGL0LxcIixcbiAgICAgICAgICAgICAg\nICBwaWNrZXJDaGVjazogXCLQn9GA0L7QstC10YDQuNGC0Ywg0Lgg0YHQutC+0L\/QuNGA0L7QstCw\n0YLRjCDRgdC10LvQtdC60YLQvtGAXCIsXG4gICAgICAgICAgICAgICAgc3dpdGNoU2VsZWN0b3I6\nIFwi0J3QsNC20LzQuNGC0LUg0LTQu9GPINCy0YvQsdC+0YDQsCDRjdC70LXQvNC10L3RgtCwXCIs\nXG4gICAgICAgICAgICAgICAgZ290b0VkaXQ6IFwi0J\/QtdGA0LXQudGC0Lgg0Log0YDQtdC00LDQ\nutGC0LjRgNC+0LLQsNC90LjRjiDQv9GA0LDQstC40LvQsCDRgSDRgtC10LrRg9GJ0LjQvCDRgdC1\n0LvQtdC60YLQvtGA0L7QvFwiLFxuICAgICAgICAgICAgICAgIG1hbnVhbE1vZGU6IFwi0J7RgtC6\n0LvRjtGH0LjRgtGMINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutGD0Y4g0LfQsNCz0YDRg9C30LrR\ngyDRgdGC0YDQsNC90LjRhi4g0JfQsNCz0YDRg9C20LDRgtGMINCy0YDRg9GH0L3Rg9GOINGBINC\/\n0L7QvNC+0YnRjNGOINGB0YLRgNC10LvQutC4INCy0L\/RgNCw0LLQviAo0LjQu9C4INCy0YvQt9C+\n0LLQsCDRgdC+0LHRi9GC0LjRjyAncGFnZXR1YWwubmV4dCcpXCIsXG4gICAgICAgICAgICAgICAg\nY2xpY2tNb2RlOiBcItCe0YLQutC70Y7Rh9C40YLRjCBcXFwi0YHRiNC40LLQsNC90LjQtVxcXCIg\n0YHRgtGA0LDQvdC40YYuINCf0YDQuCDQv9GA0L7QutGA0YPRgtC60LUg0LTQviDQutC+0L3RhtCw\nINCw0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INC\/0LXRgNC10YXQvtC00LjRgtGMINC90LAg0YHQ\nu9C10LTRg9GO0YnRg9GOINGB0YLRgNCw0L3QuNGG0YNcIixcbiAgICAgICAgICAgICAgICBwYWdl\nQmFyTWVudTogXCLQntGC0LrRgNGL0LLQsNGC0Ywg0LzQtdC90Y4g0LrQu9C40LrQvtC8INC90LAg\n0YHQtdGA0LXQtNC40L3RgyDQv9Cw0L3QtdC70Lgg0YHRgtGA0LDQvdC40YZcIixcbiAgICAgICAg\nICAgICAgICBuZXh0U3dpdGNoOiBcItCf0LXRgNC10LrQu9GO0YfQuNGC0Ywg0YHRgdGL0LvQutGD\nINC90LAg0YHQu9C10LTRg9GO0YnRg9GOINGB0YLRgNCw0L3QuNGG0YNcIixcbiAgICAgICAgICAg\nICAgICBhcnJvd1RvU2Nyb2xsOiBcItCb0LjRgdGC0LDRgtGMINGB0YLRgNCw0L3QuNGG0Ysg0LrQ\nu9Cw0LLQuNGI0LDQvNC4INGB0L4g0YHRgtGA0LXQu9C60LDQvNC4INCy0LvQtdCy0L4g0Lgg0LLQ\nv9GA0LDQstC+XCIsXG4gICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXI6IFwi0J\/QvtC60LDQ\nt9Cw0YLRjCDRgdC\/0YDQsNCy0LAg0L\/QsNC90LXQu9GMINC\/0LXRgNC10LzQtdGJ0LXQvdC40Y8g\n0L\/QviDQstC60LvQsNC00LrQtVwiLFxuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyU2Ny\nb2xsOiBcItCf0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMINC\/0YDQvtC60YDRg9GC0LrQuFwiLFxu\nICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyQWx3YXlzOiBcItCS0YHQtdCz0LTQsCDQv9C+\n0LrQsNC30YvQstCw0YLRjFwiLFxuICAgICAgICAgICAgICAgIGhpZGVMb2FkaW5nSWNvbjogXCLQ\nodC60YDRi9GC0Ywg0LDQvdC40LzQsNGG0LjRjiDQt9Cw0LPRgNGD0LfQutC4XCIsXG4gICAgICAg\nICAgICAgICAgaGlkZUJhckFycm93OiBcItCh0LrRgNGL0YLRjCDQutC90L7Qv9C60Lgg0L\/QtdGA\n0LXQvNC10YnQtdC90LjRjyDQvdCwINGA0LDQt9C00LXQu9C40YLQtdC70LVcIixcbiAgICAgICAg\nICAgICAgICBkdXBsaWNhdGU6IFwi0J\/QvtGF0L7QttC1LCBQYWdldHVhbCDRg9GB0YLQsNC90L7Q\nstC70LXQvSDQvdC10YHQutC+0LvRjNC60L4g0YDQsNC3LiDQn9C+0LbQsNC70YPQudGB0YLQsCwg\n0YPQtNCw0LvQuNGC0LUgUGFnZXR1YWwg0LjQtyDQtNGA0YPQs9C40YUg0LzQtdC90LXQtNC20LXR\ngNC+0LIg0YHQutGA0LjQv9GC0L7QsiFcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlSWZy\nYW1lOiBcItCS0YHRgtCw0LLQuNGC0Ywg0L\/QvtC70L3Rg9GOINGB0YLRgNCw0L3QuNGG0YMg0LrQ\nsNC6IGlmcmFtZVwiLFxuICAgICAgICAgICAgICAgIGZvcmNlU3RhdGVEeW5hbWljOiBcItCX0LDQ\ns9GA0YPQttCw0YLRjCDQtNC40L3QsNC80LjRh9C10YHQutC40Lkg0LrQvtC90YLQtdC90YIg0YfQ\ntdGA0LXQtyBpZnJhbWVcIixcbiAgICAgICAgICAgICAgICBmb3JjZVN0YXRlRGlzYWJsZTogXCLQ\nntGC0LrQu9GO0YfQuNGC0Ywg0L\/QtdGA0LXQu9C40YHRgtGL0LLQsNC90LjQtSDRgdGC0YDQsNC9\n0LjRhiDQvdCwINGN0YLQvtC5INGB0YLQsNC90YbQuNC4XCIsXG4gICAgICAgICAgICAgICAgYXV0\nb1Njcm9sbFJhdGU6IFwi0KHQutC+0YDQvtGB0YLRjCDQv9GA0L7QutGA0YPRgtC60LggKDF+MTAw\nMClcIixcbiAgICAgICAgICAgICAgICBkaXNhYmxlQXV0b1Njcm9sbDogXCLQntGB0YLQsNC90L7Q\nstC40YLRjCDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrRg9GOINC\/0YDQvtC60YDRg9GC0LrRg1wi\nLFxuICAgICAgICAgICAgICAgIGVuYWJsZUF1dG9TY3JvbGw6IFwi0JLQutC70Y7Rh9C40YLRjCDQ\nsNCy0YLQvtC\/0YDQvtC60YDRg9GC0LrRg1wiLFxuICAgICAgICAgICAgICAgIHRvZ2dsZUF1dG9T\nY3JvbGw6IFwi0J\/QtdGA0LXQutC70Y7Rh9C40YLRjCDQsNCy0YLQvtC\/0YDQvtC60YDRg9GC0LrR\ng1wiLFxuICAgICAgICAgICAgICAgIHJ1bGVSZXF1ZXN0OiBcItCX0LDQv9GA0L7RgSDQv9GA0LDQ\nstC40LtcIixcbiAgICAgICAgICAgICAgICBwYWdlOiBcItCh0YLRgNCw0L3QuNGG0LAgXCIsXG4g\nICAgICAgICAgICAgICAgcHJldlBhZ2U6IFwi0J\/RgNC10LTRi9C00YPRidCw0Y8g0YHRgtGA0LDQ\nvdC40YbQsFwiLFxuICAgICAgICAgICAgICAgIG5leHRQYWdlOiBcItCh0LvQtdC00YPRjtGJ0LDR\njyDRgdGC0YDQsNC90LjRhtCwXCIsXG4gICAgICAgICAgICAgICAgZXJyb3JSdWxlc011c3RCZUFy\ncmF5OiBcItCf0YDQsNCy0LjQu9CwINC00L7Qu9C20L3RiyDQsdGL0YLRjCDQvNCw0YHRgdC40LLQ\nvtC8IVwiLFxuICAgICAgICAgICAgICAgIGVycm9ySnNvbjogXCLQntGI0LjQsdC60LAg0YDQsNC3\n0LHQvtGA0LAgSlNPTi4g0J\/QvtC20LDQu9GD0LnRgdGC0LAsINC40YHQv9GA0LDQstGM0YLQtSDQ\ntdCz0L5cIixcbiAgICAgICAgICAgICAgICBlZGl0U3VjY2VzczogXCLQoNC10LTQsNC60YLQuNGA\n0L7QstCw0L3QuNC1INGD0YHQv9C10YjQvdC+XCIsXG4gICAgICAgICAgICAgICAgZXJyb3JXcm9u\nZ1VybDogXCLQodGB0YvQu9C60LAg0L3QtdC60L7RgNGA0LXQutGC0L3QsC4g0J\/QvtC20LDQu9GD\n0LnRgdGC0LAsINC40YHQv9GA0LDQstGM0YLQtSDQtdGRXCIsXG4gICAgICAgICAgICAgICAgZXJy\nb3JBbHJlYWR5RXhpc3RzOiBcItCj0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgiFcIixcbiAgICAg\nICAgICAgICAgICBzZXR0aW5nc1NhdmVkOiBcItCd0LDRgdGC0YDQvtC50LrQuCDRgdC+0YXRgNCw\n0L3QtdC90YsuINCe0LHQvdC+0LLQuNGC0LUg0YHRgtGA0LDQvdC40YbRi1wiLFxuICAgICAgICAg\nICAgICAgIGlmcmFtZTogXCJpZnJhbWVcIixcbiAgICAgICAgICAgICAgICBkeW5hbWljOiBcItCU\n0LjQvdCw0LzQuNGH0LXRgdC60LhcIixcbiAgICAgICAgICAgICAgICByZWxvYWRQYWdlOiBcItCg\n0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0LfQsNCy0LXRgNGI0LXQvdC+LiDQntCx0L3QvtCy\n0LjRgtGMINGB0YLRgNCw0L3QuNGG0YM\/XCIsXG4gICAgICAgICAgICAgICAgY29waWVkOiBcItCh\n0LrQvtC\/0LjRgNC+0LLQsNC90L5cIixcbiAgICAgICAgICAgICAgICBub1ZhbGlkQ29udGVudDog\nXCLQlNC10LnRgdGC0LLQuNGC0LXQu9GM0L3Ri9C5INC60L7QvdGC0LXQvdGCINC90LUg0L7QsdC9\n0LDRgNGD0LbQtdC9LCDQvdCw0LbQvNC40YLQtSDQtNC70Y8g0L\/RgNC+0YHQvNC+0YLRgNCwXCIs\nXG4gICAgICAgICAgICAgICAgb3V0T2ZEYXRlOiBcItCh0LrRgNC40L\/RgiDRg9GB0YLQsNGA0LXQ\nuywg0YHQstC+0LXQstGA0LXQvNC10L3QvdC+INC+0LHQvdC+0LLQu9GP0LnRgtC1INC00L4g0L\/Q\nvtGB0LvQtdC00L3QtdC5INCy0LXRgNGB0LjQuCFcIixcbiAgICAgICAgICAgICAgICBoaWRlQmFy\nVGlwczogXCLQodC60YDRi9GC0Ywg0L\/QsNC90LXQu9GMINGA0LDQt9Cx0LjQtdC90LjRjyDQvdCw\nINGB0YLRgNCw0L3QuNGG0YssINC40LzQvNC10YDRgdC40LLQvdGL0Lkg0L7Qv9GL0YJcIixcbiAg\nICAgICAgICAgICAgICBzZXRDb25maWdQYWdlOiBcItCj0YHRgtCw0L3QvtCy0LjRgtGMINGC0LXQ\nutGD0YnRg9GOINGB0YLRgNCw0L3QuNGG0YMg0LIg0LrQsNGH0LXRgdGC0LLQtSDRgdGC0YDQsNC9\n0LjRhtGLINC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjlwi\nLFxuICAgICAgICAgICAgICAgIHdlZGF0YTJnaXRodWI6IFwi0JjQt9C80LXQvdC40YLRjCDQsNC0\n0YDQtdGBIHdlZGF0YSDQvdCwINC30LXRgNC60LDQu9GM0L3Ri9C5INCw0LTRgNC10YEg0L3QsCDR\ngdC60LvQsNC00LUgZ2l0aHViXCIsXG4gICAgICAgICAgICAgICAgYWRkT3RoZXJQcm9wOiBcItCU\n0L7QsdCw0LLQuNGC0Ywg0YHQstC+0LnRgdGC0LLQviDQv9GA0LDQstC40LvQsFwiLFxuICAgICAg\nICAgICAgICAgIGFkZE5leHRTZWxlY3RvcjogXCLQlNC+0LHQsNCy0LjRgtGMINGB0L7QtNC10YDQ\nttC40LzQvtC1INGB0LXQu9C10LrRgtC+0YDQsCDQutCw0LogbmV4dExpbmtcIixcbiAgICAgICAg\nICAgICAgICBhZGRQYWdlU2VsZWN0b3I6IFwi0JTQvtCx0LDQstC40YLRjCDRgdC+0LTQtdGA0LbQ\nuNC80L7QtSDRgdC10LvQtdC60YLQvtGA0LAg0LrQsNC6IHBhZ2VFbGVtZW50XCIsXG4gICAgICAg\nICAgICAgICAgcHJvcE5hbWU6IFwi0JLQstC10LTQuNGC0LUg0LjQvNGPINGB0LLQvtC50YHRgtCy\n0LAg0L\/RgNCw0LLQuNC70LBcIixcbiAgICAgICAgICAgICAgICBwcm9wVmFsdWU6IFwi0JLQstC1\n0LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSDRgdCy0L7QudGB0YLQstCwINC\/0YDQsNCy0LjQu9Cw\nXCIsXG4gICAgICAgICAgICAgICAgY3VzdG9tRmlyc3Q6IFwi0JjQs9C90L7RgNC40YDQvtCy0LDR\ngtGMINC60LXRiCDQtNC70Y8g0LvQvtC60LDQu9GM0L3Ri9GFINC\/0L7Qu9GM0LfQvtCy0LDRgtC1\n0LvRjNGB0LrQuNGFINC\/0YDQsNCy0LjQu1wiLFxuICAgICAgICAgICAgICAgIHJ1bGVzRXhhbXBs\nZTogXCLQn9C+0LTRgNC+0LHQvdC+0LUg0L7QsdGK0Y\/RgdC90LXQvdC40LUg0L3QsNGB0YLRgNCw\n0LjQstCw0LXQvNGL0YUg0L\/RgNCw0LLQuNC7XCIsXG4gICAgICAgICAgICAgICAgbGFzdFBhZ2U6\nIFwi0JTQvtGB0YLQuNCz0L3Rg9GC0LAg0L\/QvtGB0LvQtdC00L3Rj9GPINGB0YLRgNCw0L3QuNGG\n0LBcIixcbiAgICAgICAgICAgICAgICBsYXN0UGFnZVRpcHM6IFwi0J\/QvtC60LDQt9GL0LLQsNGC\n0Ywg0L\/QvtC00YHQutCw0LfQutC4INC\/0YDQuCDQtNC+0YHRgtC40LbQtdC90LjQuCDQv9C+0YHQ\nu9C10LTQvdC10Lkg0YHRgtGA0LDQvdC40YbRi1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH1c\nbiAgICBdO1xuICAgIHZhciBsYW5nTGlzdCA9IHt9O1xuICAgIGxhbmdEYXRhLmZvckVhY2gobGFu\nZyA9PiB7XG4gICAgICAgIGxhbmdMaXN0W2xhbmcubWF0Y2hbMF1dID0gbGFuZy5uYW1lO1xuICAg\nIH0pO1xuICAgIHZhciBpMThuRGF0YSA9IGxhbmdEYXRhWzBdLmxhbmc7XG4gICAgZnVuY3Rpb24g\nc2V0TGFuZyhsYSkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhbmdEYXRhLmxlbmd0\naDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgbGFuZyA9IGxhbmdEYXRhW2ldO1xuICAgICAgICAg\nICAgaWYgKGxhbmcgJiYgbGFuZy5tYXRjaC5pbmRleE9mKGxhKSAhPT0gLTEpIHtcbiAgICAgICAg\nICAgICAgICBpMThuRGF0YSA9IGxhbmcubGFuZztcbiAgICAgICAgICAgICAgICBpZiAobGFuZy5l\nbmNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgayBpbiBpMThuRGF0YSkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgaTE4bkRhdGFba10gPSBkZWNvZGVVUkkoaTE4bkRhdGFb\na10pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHNldExh\nbmcobGFuZyk7XG4gICAgdmFyIGVuYWJsZURlYnVnID0gdHJ1ZTtcbiAgICB2YXIgX0dNX3htbGh0\ndHBSZXF1ZXN0LCBfR01fcmVnaXN0ZXJNZW51Q29tbWFuZCwgX0dNX25vdGlmaWNhdGlvbiwgX0dN\nX2FkZFN0eWxlLCBfR01fb3BlbkluVGFiLCBfR01faW5mbywgX0dNX3NldENsaXBib2FyZDtcbiAg\nICBmdW5jdGlvbiBpMThuKG5hbWUsIHBhcmFtKSB7XG4gICAgICAgIHJldHVybiBpMThuRGF0YVtu\nYW1lXSA\/IGkxOG5EYXRhW25hbWVdLnJlcGxhY2UoXCIjdCNcIiwgcGFyYW0pIDogbmFtZTtcbiAg\nICB9XG5cbiAgICBmdW5jdGlvbiBkZWJ1ZyhzdHIsIHRpdGxlKSB7XG4gICAgICAgIGlmIChlbmFi\nbGVEZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYCVj\n44CQUGFnZXR1YWwgdi4ke19HTV9pbmZvLnNjcmlwdC52ZXJzaW9ufeOAkSAke3RpdGxlID8gdGl0\nbGUgOiAnZGVidWcnfTpgLFxuICAgICAgICAgICAgICAgICdjb2xvcjogeWVsbG93O2ZvbnQtc2l6\nZTogbGFyZ2U7Zm9udC13ZWlnaHQ6IGJvbGQ7YmFja2dyb3VuZC1jb2xvcjogZGFya2JsdWU7Ym9y\nZGVyLXJhZGl1czogMTBweDt0ZXh0LXNoYWRvdzogMXB4IDFweCAzcHggYmxhY2s7cGFkZGluZzog\nNXB4OycsXG4gICAgICAgICAgICAgICAgc3RyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4g\nICAgfVxuXG4gICAgaWYgKHR5cGVvZiBHTV94bWxodHRwUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcp\nIHtcbiAgICAgICAgX0dNX3htbGh0dHBSZXF1ZXN0ID0gR01feG1saHR0cFJlcXVlc3Q7XG4gICAg\nfSBlbHNlIGlmICh0eXBlb2YgR00gIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBHTS54bWxIdHRw\nUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgX0dNX3htbGh0dHBSZXF1ZXN0ID0g\nR00ueG1sSHR0cFJlcXVlc3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX0dNX3htbGh0dHBSZXF1\nZXN0ID0gKGYpID0+IHtmZXRjaChmLnVybCwge21ldGhvZDogZi5tZXRob2QgfHwgJ0dFVCcsIGJv\nZHk6IGYuZGF0YSwgaGVhZGVyczogZi5oZWFkZXJzfSkudGhlbihyZXNwb25zZSA9PiByZXNwb25z\nZS50ZXh0KCkpLnRoZW4oZGF0YSA9PiB7Zi5vbmxvYWQgJiYgZi5vbmxvYWQoe3Jlc3BvbnNlOiBk\nYXRhfSl9KS5jYXRjaChmLm9uZXJyb3IgJiYgZi5vbmVycm9yKCkpfTtcbiAgICB9XG4gICAgaWYg\nKHR5cGVvZiBHTV9yZWdpc3Rlck1lbnVDb21tYW5kICE9PSAndW5kZWZpbmVkJykge1xuICAgICAg\nICBfR01fcmVnaXN0ZXJNZW51Q29tbWFuZCA9IEdNX3JlZ2lzdGVyTWVudUNvbW1hbmQ7XG4gICAg\nfSBlbHNlIGlmICh0eXBlb2YgR00gIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBHTS5yZWdpc3Rl\nck1lbnVDb21tYW5kICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBfR01fcmVnaXN0ZXJNZW51\nQ29tbWFuZCA9IEdNLnJlZ2lzdGVyTWVudUNvbW1hbmQ7XG4gICAgfSBlbHNlIHtcbiAgICAgICAg\nX0dNX3JlZ2lzdGVyTWVudUNvbW1hbmQgPSAocywgZikgPT4ge2RlYnVnKHMpOyBkZWJ1ZyhmKTt9\nO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIEdNX2luZm8gIT09ICd1bmRlZmluZWQnKSB7XG4gICAg\nICAgIF9HTV9pbmZvID0gR01faW5mbztcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBHTSAhPT0gJ3Vu\nZGVmaW5lZCcgJiYgdHlwZW9mIEdNLmluZm8gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIF9H\nTV9pbmZvID0gR00uaW5mbztcbiAgICB9IGVsc2Uge1xuICAgICAgICBfR01faW5mbyA9IHtzY3Jp\ncHQ6IHt9fTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBHTV9ub3RpZmljYXRpb24gIT09ICd1bmRl\nZmluZWQnKSB7XG4gICAgICAgIF9HTV9ub3RpZmljYXRpb24gPSBHTV9ub3RpZmljYXRpb247XG4g\nICAgfSBlbHNlIGlmICh0eXBlb2YgR00gIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBHTS5ub3Rp\nZmljYXRpb24gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIF9HTV9ub3RpZmljYXRpb24gPSBH\nTS5ub3RpZmljYXRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX0dNX25vdGlmaWNhdGlvbiA9\nIChzKSA9PiB7c2hvd1RpcHMoU3RyaW5nKHMudGV4dCB8fCBzKSk7fTtcbiAgICB9XG4gICAgaWYg\nKHR5cGVvZiBHTV9vcGVuSW5UYWIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIF9HTV9vcGVu\nSW5UYWIgPSBHTV9vcGVuSW5UYWI7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgR00gIT09ICd1bmRl\nZmluZWQnICYmIHR5cGVvZiBHTS5vcGVuSW5UYWIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAg\nIF9HTV9vcGVuSW5UYWIgPSBHTS5vcGVuSW5UYWI7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX0dN\nX29wZW5JblRhYiA9IChzLHQpID0+IHt3aW5kb3cub3BlbihzKTsgZGVidWcodCk7fTtcbiAgICB9\nXG4gICAgaWYgKHR5cGVvZiBHTV9hZGRTdHlsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAg\nX0dNX2FkZFN0eWxlID0gR01fYWRkU3R5bGU7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgR00gIT09\nICd1bmRlZmluZWQnICYmIHR5cGVvZiBHTS5hZGRTdHlsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAg\nICAgICAgX0dNX2FkZFN0eWxlID0gR00uYWRkU3R5bGU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAg\nX0dNX2FkZFN0eWxlID0gY3NzU3RyID0+IHtcbiAgICAgICAgICAgIGxldCBzdHlsZUVsZSA9IGRv\nY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgICAgICAgICAgIHN0eWxlRWxlLmlu\nbmVySFRNTCA9IGNzc1N0cjtcbiAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQo\nc3R5bGVFbGUpO1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlRWxlO1xuICAgICAgICB9O1xuICAg\nIH1cbiAgICBpZiAodHlwZW9mIEdNX3NldENsaXBib2FyZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAg\nICAgICAgX0dNX3NldENsaXBib2FyZCA9IEdNX3NldENsaXBib2FyZDtcbiAgICB9IGVsc2UgaWYg\nKHR5cGVvZiBHTSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIEdNLnNldENsaXBib2FyZCAhPT0g\nJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgX0dNX3NldENsaXBib2FyZCA9IEdNLnNldENsaXBib2Fy\nZDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBfR01fc2V0Q2xpcGJvYXJkID0gKHMsIGkpID0+IHtk\nZWJ1ZyhzKTsgZGVidWcoaSk7fTtcbiAgICB9XG4gICAgY29uc3QgX3Vuc2FmZVdpbmRvdyA9ICh0\neXBlb2YgdW5zYWZlV2luZG93ID09PSAndW5kZWZpbmVkJykgPyB3aW5kb3cgOiB1bnNhZmVXaW5k\nb3c7XC9cL+WFvOWuuSBpb3MgdXNlcnNjcmlwdHMg55qE5a+r5rOVXG4gICAgY29uc3Qgc3RvcmFn\nZSA9IHtcbiAgICAgICAgc3VwcG9ydEdNOiB0eXBlb2YgR01fZ2V0VmFsdWUgPT09ICdmdW5jdGlv\nbicgJiYgdHlwZW9mIEdNX2dldFZhbHVlKCdhJywgJ2InKSAhPT0gJ3VuZGVmaW5lZCcsXG4gICAg\nICAgIHN1cHBvcnRHTVByb21pc2U6IHR5cGVvZiBHTSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9m\nIEdNLmdldFZhbHVlID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBHTS5nZXRWYWx1ZSgnYScsICdi\nJykgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBHTS5nZXRWYWx1ZSgnYScsICdiJykudGhlbiA9\nPT0gJ2Z1bmN0aW9uJyxcbiAgICAgICAgc3VwcG9ydENyb3NzU2F2ZTogZnVuY3Rpb24oKSB7XG4g\nICAgICAgICAgICByZXR1cm4gdGhpcy5zdXBwb3J0R00gfHwgdGhpcy5zdXBwb3J0R01Qcm9taXNl\nO1xuICAgICAgICB9LFxuICAgICAgICBteEFwcFN0b3JhZ2U6IChmdW5jdGlvbigpIHtcbiAgICAg\nICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5leHRlcm5hbC5teEdl\ndFJ1bnRpbWUoKS5zdG9yYWdlO1xuICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAg\nICB9XG4gICAgICAgIH0pKCksXG4gICAgICAgIG9wZXJhVUpTU3RvcmFnZTogKGZ1bmN0aW9uKCkg\ne1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93Lm9wZXJh\nLnNjcmlwdFN0b3JhZ2U7XG4gICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgIH1c\nbiAgICAgICAgfSkoKSxcbiAgICAgICAgc2V0SXRlbTogZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xu\nICAgICAgICAgICAgaWYgKHRoaXMuc3VwcG9ydEdNUHJvbWlzZSkge1xuICAgICAgICAgICAgICAg\nIEdNLnNldFZhbHVlKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0g\nXCJcIiAmJiB0eXBlb2YgR00gIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBHTS5kZWxldGVWYWx1\nZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgR00uZGVsZXRlVmFsdWUo\na2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3Vw\ncG9ydEdNKSB7XG4gICAgICAgICAgICAgICAgR01fc2V0VmFsdWUoa2V5LCB2YWx1ZSk7XG4gICAg\nICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIlwiICYmIHR5cGVvZiBHTV9kZWxldGVWYWx1ZSAh\nPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgR01fZGVsZXRlVmFsdWUoa2V5\nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub3BlcmFV\nSlNTdG9yYWdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVyYVVKU1N0b3JhZ2Uuc2V0SXRl\nbShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5teEFwcFN0b3JhZ2Up\nIHtcbiAgICAgICAgICAgICAgICB0aGlzLm14QXBwU3RvcmFnZS5zZXRDb25maWcoa2V5LCB2YWx1\nZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICAg\nICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAg\nICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldEl0ZW06IGZ1bmN0aW9uKGtleSwgY2Ip\nIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1cHBvcnRH\nTVByb21pc2UpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IEdNLmdldFZhbHVlKGtleSkudGhl\nbih2ID0+IHtjYih2KTt9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9\nIGVsc2UgaWYgKHRoaXMuc3VwcG9ydEdNKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBHTV9n\nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wZXJhVUpTU3RvcmFn\nZSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5vcGVyYVVKU1N0b3JhZ2UuZ2V0SXRl\nbShrZXkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm14QXBwU3RvcmFnZSkge1xuICAg\nICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5teEFwcFN0b3JhZ2UuZ2V0Q29uZmlnKGtleSk7XG4g\nICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgICAg\nICAgICB2YWx1ZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgY2IodmFsdWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBhc3lu\nYyBmdW5jdGlvbiBnZXREYXRhKGtleSkge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJl\nc29sdmUpID0+IHtcbiAgICAgICAgICAgIHN0b3JhZ2UuZ2V0SXRlbShrZXksIHZhbHVlID0+IHtc\nbiAgICAgICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAg\nICB9KTtcbiAgICB9XG4gICAgYXN5bmMgZnVuY3Rpb24gZ2V0TGlzdERhdGEobGlzdCwga2V5KSB7\nXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAg\nc3RvcmFnZS5nZXRJdGVtKGxpc3QsIGxpc3REYXRhID0+IHtcbiAgICAgICAgICAgICAgICBsZXQg\ndmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3REYXRhKSB7XG4gICAgICAgICAgICAgICAg\nICAgIGZvcih2YXIgaSA9IDA7IGkgPCBsaXN0RGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBsaXN0RGF0YVtpXTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmIChkYXRhLmsgPT09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIHZhbHVlID0gZGF0YS52O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICAgICAgfSk7\nXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRMaXN0RGF0YShsaXN0LCBrZXks\nIHZhbHVlLCBsZW5ndGgpIHtcbiAgICAgICAgc3RvcmFnZS5nZXRJdGVtKGxpc3QsIGxpc3REYXRh\nID0+IHtcbiAgICAgICAgICAgIGlmICghbGlzdERhdGEpIHtcbiAgICAgICAgICAgICAgbGlzdERh\ndGEgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3REYXRhID0gbGlzdERhdGEu\nZmlsdGVyKGRhdGEgPT4gZGF0YSAmJiBkYXRhLmsgIT09IGtleSk7XG4gICAgICAgICAgICBpZiAo\ndmFsdWUgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICBsaXN0RGF0YS51bnNoaWZ0KHtrOiBr\nZXksIHY6IHZhbHVlfSk7XG4gICAgICAgICAgICAgICAgaWYgKGxpc3REYXRhLmxlbmd0aCA+IChs\nZW5ndGggfHwgMTAwKSkge1xuICAgICAgICAgICAgICAgICAgbGlzdERhdGEucG9wKCk7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVt\nKGxpc3QsIGxpc3REYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGlzTW9iaWxl\nID0gKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBcL0FuZHJv\naWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmlc\nL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSk7XG4gICAgY29uc3QgY29uZmlnUGFnZSA9IFtg\naHR0cHM6XC9cL3BhZ2V0dWFsLmhvb3RoaW4uY29tXC8ke2xhbmcgPT09ICd6aC1DTicgPyAnY25c\nLycgOiAnJ31ydWxlLmh0bWxgLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJodHRwczpcL1wv\nZ2l0aHViLmNvbVwvaG9vdGhpblwvVXNlclNjcmlwdHNcL3RyZWVcL21hc3RlclwvUGFnZXR1YWxc\nIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaHR0cHM6XC9cL2hvb3RoaW4uZ2l0aHViLmlv\nXC9Vc2VyU2NyaXB0c1wvUGFnZXR1YWxcL1wiXTtcbiAgICBjb25zdCBmaXJzdFJ1blBhZ2UgPSBc\nImh0dHBzOlwvXC9wYWdldHVhbC5ob290aGluLmNvbVwvZmlyc3RSdW5cIjtcbiAgICBjb25zdCBn\ndWlkZVBhZ2UgPSBcL15odHRwcz86XFxcL1xcXC8uKnBhZ2V0dWFsLipydWxlXFwuaHRtbFwvaTtc\nbiAgICBjb25zdCBydWxlSW1wb3J0VXJsUmVnID0gXC9ncmVhc3lmb3JrXFwub3JnXFxcLy4qc2Ny\naXB0c1xcXC80Mzg2ODQoXFwtW15cXFwvXSopPyhcXFwvZGlzY3Vzc2lvbnN8XFxcLz8kfFxcXC9m\nZWVkYmFjayl8Z2l0aHViXFwuY29tXFxcL2hvb3RoaW5cXFwvVXNlclNjcmlwdHNcXFwvKHRyZWVc\nXFwvbWFzdGVyXFxcL1BhZ2V0dWFsfGlzc3Vlcyl8Xmh0dHBzOlxcXC9cXFwvcGFnZXR1YWxcXC5o\nb290aGluXFwuY29tXFxcLy4qZmlyc3RSdW5cXC5odG1sXC9pO1xuICAgIGNvbnN0IGFsbE9mQm9k\neSA9IFwiYm9keT4qXCI7XG4gICAgY29uc3QgbWFpblNlbCA9IFtcImFydGljbGUsLmFydGljbGVc\nIixcIltyb2xlPW1haW5dLG1haW4sLm1haW4sI21haW5cIixcIiNyZXN1bHRzXCJdO1xuICAgIGNv\nbnN0IG5leHRUZXh0UmVnMSA9IG5ldyBSZWdFeHAoXCJcXHUwMDVlXFx1N2ZmYlxcdTAwM2ZcXHUw\nMDViXFx1NGUwYlxcdTU0MGVcXHU1ZjhjXFx1NmIyMVxcdTAwNWRcXHUwMDViXFx1NGUwMFxcdTMw\nZmNcXHUyNTAwXFx1MDAzMVxcdTAwNWRcXHUwMDNmXFx1MDA1YlxcdTk4NzVcXHU5ODAxXFx1NWYy\nMFxcdTVmMzVcXHUwMDVkXFx1MDA3Y1xcdTAwNWVcXHUwMDZlXFx1MDA2NVxcdTAwNzhcXHUwMDc0\nXFx1MDA1YlxcdTAwNWNcXHUwMDVjXFx1MDA3M1xcdTAwNWZcXHUwMDJkXFx1MDA1ZFxcdTAwM2Zc\nXHUwMDcwXFx1MDA2MVxcdTAwNjdcXHUwMDY1XFx1MDA1Y1xcdTAwNWNcXHUwMDczXFx1MDAyYVxc\ndTAwNWJcXHUyMDNhXFx1MDAzZVxcdTIxOTJcXHUwMGJiXFx1MDA1ZFxcdTAwM2ZcXHUwMDI0XFx1\nMDA3Y1xcdTZiMjFcXHUzMDZlXFx1MzBkYVxcdTMwZmNcXHUzMGI4XFx1MDA3Y1xcdTAwNWVcXHU2\nYjIxXFx1MzA3OFxcdTAwM2ZcXHUwMDI0XFx1MDA3Y1xcdTA0MTJcXHUwNDNmXFx1MDQzNVxcdTA0\nNDBcXHUwNDM1XFx1MDQzNFxcdTAwN2NcXHUwMDVlXFx1MDQ0MVxcdTA0M2JcXHUwNDM1XFx1MDQz\nNFxcdTA0NDNcXHUwNDRlXFx1MDQ0OVxcdTA0MzhcXHUwNDM1XCIsIFwiaVwiKTtcbiAgICBjb25z\ndCBuZXh0VGV4dFJlZzIgPSBuZXcgUmVnRXhwKFwiXFx1MDA1ZVxcdTAwMjhcXHUwMDViXFx1NGUw\nYlxcdTU0MGVcXHU1ZjhjXFx1NmIyMVxcdTAwNWRcXHUwMDViXFx1NGUwMFxcdTMwZmNcXHUyNTAw\nXFx1MDAzMVxcdTAwNWRcXHUwMDNmXFx1MDA1YlxcdTdhZTBcXHU4YmRkXFx1OGE3MVxcdTgyODJc\nXHU3YmMwXFx1NWU0NVxcdTAwNWRcXHUwMDdjXFx1MDA2ZVxcdTAwNjVcXHUwMDc4XFx1MDA3NFxc\ndTAwMmVcXHUwMDNmXFx1MDA2M1xcdTAwNjhcXHUwMDYxXFx1MDA3MFxcdTAwNzRcXHUwMDY1XFx1\nMDA3MlxcdTAwMjlcXHUwMDI4XFx1MDA1YlxcdTAwM2FcXHVmZjFhXFx1MDA1Y1xcdTAwMmRcXHUw\nMDVmXFx1MjAxNFxcdTAwNWNcXHUwMDczXFx1MDA1Y1xcdTAwMmVcXHUzMDAyXFx1MDAzZVxcdTAw\nMjNcXHUwMGI3XFx1MDA1Y1xcdTAwNWJcXHUzMDEwXFx1MzAwMVxcdWZmMDhcXHUwMDVjXFx1MDAy\nOFxcdTAwMmZcXHUwMDJjXFx1ZmYwY1xcdWZmMWJcXHUwMDNiXFx1MjE5MlxcdTAwNWRcXHUwMDdj\nXFx1MDAyNFxcdTAwMjlcIiwgXCJpXCIpO1xuICAgIGNvbnN0IHByZXZSZWcgPSBuZXcgUmVnRXhw\nKFwiXFx1MDA1ZVxcdTAwNWNcXHUwMDczXFx1MDAyYVxcdTAwMjhcXHUwMDViXFx1NGUwYVxcdTUy\nNGRcXHU5OTk2XFx1NWMzZVxcdTAwNWRcXHUwMDdjXFx1MDA3MFxcdTAwNzJcXHUwMDY1XFx1MDA3\nNlxcdTAwNjlcXHUwMDZmXFx1MDA3NVxcdTAwNzNcXHUwMDdjXFx1MDA2NVxcdTAwNmVcXHUwMDY0\nXFx1MDAyOVwiLCBcImlcIik7XG4gICAgY29uc3QgbGF6eUltZ0F0dHIgPSBbXCJkYXRhLWxhenkt\nc3JjXCIsIFwiZGF0YS1zXCIsIFwiZGF0YS1sYXp5XCIsIFwiZGF0YS1pc3JjXCIsIFwiZGF0YS11\ncmxcIiwgXCJkYXRhLW9yaWctZmlsZVwiLCBcInpvb21maWxlXCIsIFwiZmlsZVwiLCBcIm9yaWdp\nbmFsXCIsIFwibG9hZC1zcmNcIiwgXCJpbWdzcmNcIiwgXCJyZWFsX3NyY1wiLCBcInNyYzJcIiwg\nXCJvcmlnaW4tc3JjXCIsIFwiZGF0YS1sYXp5bG9hZFwiLCBcImRhdGEtbGF6eWxvYWQtc3JjXCIs\nIFwiZGF0YS1sYXp5LWxvYWQtc3JjXCIsIFwiZGF0YS1rcy1sYXp5bG9hZFwiLCBcImRhdGEta3Mt\nbGF6eWxvYWQtY3VzdG9tXCIsIFwiZGF0YS1zcmNcIiwgXCJkYXRhLWRlZmVyLXNyY1wiLCBcImRh\ndGEtYWN0dWFsc3JjXCIsIFwiZGF0YS1jb3ZlclwiLCBcImRhdGEtb3JpZ2luYWxcIiwgXCJkYXRh\nLXRodW1iXCIsIFwiZGF0YS1pbWFnZXVybFwiLCBcImRhdGEtcGxhY2Vob2xkZXJcIiwgXCJsYXp5\nc3JjXCJdO1xuICAgIHZhciBydWxlc0RhdGEgPSB7dW5pbml0ZWQ6IHRydWUsIGZpcnN0UnVuOiB0\ncnVlLCBzaWRlQ29udHJvbGxlcjogIWlzTW9iaWxlfSwgcnVsZVVybHMsIHVwZGF0ZURhdGUsIGxv\nYWROb3dOdW0gPSA1LCBhdXRvU2Nyb2xsUmF0ZSA9IDUwO1xuICAgIHZhciBpc1BhdXNlID0gZmFs\nc2UsIG1hbnVhbFBhdXNlID0gZmFsc2UsIGlzSGlkZUJhciA9IGZhbHNlLCBpc0xvYWRpbmcgPSBm\nYWxzZSwgY3VyUGFnZSA9IDEsIGZvcmNlU3RhdGUgPSAwLCBhdXRvU2Nyb2xsID0gMCwgYXV0b1Nj\ncm9sbEludGVydmFsLCBib3R0b21HYXAgPSAxMDAwLCBhdXRvTG9hZE51bSA9IC0xLCBuZXh0SW5k\nZXggPSAwLCBzdG9wU2Nyb2xsID0gZmFsc2UsIGNsaWNrTW9kZSA9IGZhbHNlLCBvcGVuSW5OZXdU\nYWIgPSAwLCBjaGFyc2V0ID0gXCJVVEYtOFwiLCBjaGFyc2V0VmFsaWQgPSB0cnVlLCB1cmxXaWxs\nQ2hhbmdlID0gZmFsc2UsIGhpZGVQYWdlQmFyID0gZmFsc2U7XG4gICAgdmFyIHRyeVRpbWVzID0g\nMCwgc2hvd2VkTGFzdFBhZ2VUaXBzID0gZmFsc2UsIHJhdGUgPSAxLCBhdXRob3IgPSAnJztcblxu\nICAgIGZ1bmN0aW9uIGdldEJvZHkoZG9jKSB7XG4gICAgICAgIHJldHVybiBkb2MuYm9keSB8fCBk\nb2MucXVlcnlTZWxlY3RvcignYm9keScpIHx8IGRvYztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBn\nZXRFbGVtZW50QnlYcGF0aCh4cGF0aCwgZG9jLCBjb250ZXh0Tm9kZSkge1xuICAgICAgICBpZiAo\nZG9jICYmIGRvYy5vd25lckRvY3VtZW50KSBkb2MgPSBkb2Mub3duZXJEb2N1bWVudDtcbiAgICAg\nICAgZG9jID0gKGRvYyAmJiBkb2MuZXZhbHVhdGUpID8gZG9jIDogZG9jdW1lbnQ7XG4gICAgICAg\nIGNvbnRleHROb2RlID0gY29udGV4dE5vZGUgfHwgZG9jO1xuICAgICAgICB0cnkge1xuICAgICAg\nICAgICAgbGV0IHhwYXRoTm9kZSA9IChzLCBkLCBuKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0\nIHJlc3VsdCA9IGQuZXZhbHVhdGUocywgbiwgbnVsbCwgWFBhdGhSZXN1bHQuQU5ZX1VOT1JERVJF\nRF9OT0RFX1RZUEUsIG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuc2luZ2xl\nTm9kZVZhbHVlICYmIHJlc3VsdC5zaW5nbGVOb2RlVmFsdWUubm9kZVR5cGUgPT09IDEgJiYgcmVz\ndWx0LnNpbmdsZU5vZGVWYWx1ZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsZXQgc2Vs\nU3BsaXQgPSB4cGF0aC5zcGxpdChcIiA9Pj4gXCIpO1xuICAgICAgICAgICAgaWYgKHNlbFNwbGl0\nLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgIGxldCBlbGUgPSB4cGF0aE5vZGUoc2Vs\nU3BsaXRbMF0sIGRvYywgY29udGV4dE5vZGUpO1xuICAgICAgICAgICAgICAgIGlmIChlbGUgJiYg\nZWxlLnNoYWRvd1Jvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHhwYXRoTm9kZShz\nZWxTcGxpdFsxXSwgZWxlLnNoYWRvd1Jvb3QsIGVsZS5zaGFkb3dSb290KTtcbiAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB4cGF0\naE5vZGUoeHBhdGgsIGRvYywgY29udGV4dE5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9\nIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGRlYnVnKGBJbnZhbGlkIHhwYXRoOiAke3hwYXRo\nfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0\naW9uIGdldEFsbEVsZW1lbnRzQnlYcGF0aCh4cGF0aCwgY29udGV4dE5vZGUsIGRvYykge1xuICAg\nICAgICBpZiAoZG9jICYmIGRvYy5vd25lckRvY3VtZW50KSBkb2MgPSBkb2Mub3duZXJEb2N1bWVu\ndDtcbiAgICAgICAgZG9jID0gKGRvYyAmJiBkb2MuZXZhbHVhdGUpID8gZG9jIDogZG9jdW1lbnQ7\nXG4gICAgICAgIGNvbnRleHROb2RlID0gY29udGV4dE5vZGUgfHwgZG9jO1xuICAgICAgICB2YXIg\ncmVzdWx0ID0gW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgcXVlcnkgPSBkb2Mu\nZXZhbHVhdGUoeHBhdGgsIGNvbnRleHROb2RlLCBudWxsLCBYUGF0aFJlc3VsdC5PUkRFUkVEX05P\nREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8\nIHF1ZXJ5LnNuYXBzaG90TGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgbm9kZSA9\nIHF1ZXJ5LnNuYXBzaG90SXRlbShpKTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlw\nZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAg\nICAgICAgIGRlYnVnKGBJbnZhbGlkIHhwYXRoOiAke3hwYXRofWApO1xuICAgICAgICB9XG4gICAg\nICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNYUGF0aCh4cGF0aCkg\ne1xuICAgICAgICBpZiAoIXhwYXRoKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAg\nICB9XG4gICAgICAgIHJldHVybiBcL15cXCgqKGRlc2NlbmRhbnQ6OnxcXC5cXFwvfFxcXC98aWRc\nXCgpXC8udGVzdCh4cGF0aCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0QWxsRWxlbWVudHMo\nc2VsLCBkb2MsIGNvbnRleHROb2RlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAo\nc2VsLmluZGV4T2YoXCIgPT4+IFwiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVz\ndWx0ID0gZ2V0RWxlbWVudChzZWwsIGRvYywgY29udGV4dE5vZGUpO1xuICAgICAgICAgICAgICAg\nIHJldHVybiByZXN1bHQgJiYgW3Jlc3VsdF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBp\nZiAoIWlzWFBhdGgoc2VsKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkb2MucXVlcnlTZWxl\nY3RvckFsbChzZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAg\nICAgICAgIGRlYnVnKGUsICdFcnJvciBzZWxlY3RvcicpO1xuICAgICAgICB9XG4gICAgICAgIHJl\ndHVybiBnZXRBbGxFbGVtZW50c0J5WHBhdGgoc2VsLCBjb250ZXh0Tm9kZSwgZG9jKTtcbiAgICB9\nXG5cbiAgICBmdW5jdGlvbiBnZXRFbGVtZW50KHNlbCwgZG9jLCBjb250ZXh0Tm9kZSwgYnlTb3J0\nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoIWlzWFBhdGgoc2VsKSkge1xuICAg\nICAgICAgICAgICAgIGxldCBjaGVja1NoYWRvdyA9IHMgPT4ge1xuICAgICAgICAgICAgICAgICAg\nICBsZXQgc2VsU3BsaXQgPSBzLnNwbGl0KFwiID0+PiBcIik7XG4gICAgICAgICAgICAgICAgICAg\nIGlmIChzZWxTcGxpdC5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxl\ndCBlbGUgPSBkb2MucXVlcnlTZWxlY3RvcihzZWxTcGxpdFswXSk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICByZXR1cm4gZWxlICYmIGVsZS5zaGFkb3dSb290ICYmIGVsZS5zaGFkb3dSb290LnF1\nZXJ5U2VsZWN0b3Ioc2VsU3BsaXRbMV0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgcmV0\ndXJuIGRvYy5xdWVyeVNlbGVjdG9yKHMpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAg\nICAgICAgaWYgKCFieVNvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrU2hh\nZG93KHNlbCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAg\nbGV0IHNlbEFyciA9IHNlbC5zcGxpdChcIixcIik7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbEFyci5sZW5n\ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbGUgPSBjaGVja1No\nYWRvdyhzZWxBcnJbaV0udHJpbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo\nZWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWxlO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1\ncm4gY2hlY2tTaGFkb3coc2VsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4g\nICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgZGVidWcoZSwgJ0Vycm9yIHNlbGVjdG9y\nJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdldEVsZW1lbnRCeVhwYXRoKHNlbCwgZG9j\nLCBjb250ZXh0Tm9kZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29tcGFyZU5vZGVOYW1lKG5v\nZGUsIG5hbWVzKSB7XG4gICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS5ub2RlTmFtZSB8fCAhbm9k\nZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAg\nICAgfVxuICAgICAgICBsZXQgbm9kZU5hbWUgPSBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7\nXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAg\nICAgICAgIGlmIChuYW1lc1tpXSA9PT0gbm9kZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJu\nIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xu\nICAgIH1cblxuICAgIGZ1bmN0aW9uIGdlbmVTZWxlY3RvcihlbGUsIGFkZElELCBleGFjdCkge1xu\nICAgICAgICBsZXQgc2VsZWN0b3IgPSBlbGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAg\nICAgXC9cL0dvb2dsZSBpZCBjbGFzc+mDveaYr+maqOapn+OAgueZvuW6puabtOmBjuWIhu+8jHN0\neWxlIHNjcmlwdOmghuW6j+mDveaYr+maqOapn+eahFxuICAgICAgICBpZiAoc2VsZWN0b3IgIT09\nIFwiaHRtbFwiICYmIHNlbGVjdG9yICE9PSBcImJvZHlcIikge1xuICAgICAgICAgICAgbGV0IGhh\nc0lkID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoYWRkSUQgJiYgZWxlLmlkICYmIFwvXlthLXpf\nXVtcXHdcXC1fXSokXC9pLnRlc3QoZWxlLmlkKSkge1xuICAgICAgICAgICAgICAgIGlmIChlbGUu\nb3duZXJEb2N1bWVudCAmJiBlbGUub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiI1wi\nICsgZWxlLmlkKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFzSWQgPSB0\ncnVlO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9ICcjJyArIGVsZS5pZDtcbiAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWhhc0lkKSB7XG4g\nICAgICAgICAgICAgICAgbGV0IGNsYXNzTmFtZSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYg\nKGVsZS5jbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNsYXNzTGlzdCA9IGVs\nZS5jbGFzc0xpc3Q7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xh\nc3NMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYyA9IGNs\nYXNzTGlzdFtpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjICE9PSAnc2Nyb2xsaW5n\nJyAmJiBcL15bYS16X11bXFx3XFwtX10qJFwvLnRlc3QoYykgJiYgIVwvXFxkezQsfVwvLnRlc3Qo\nYykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWUgKz0gJy4nICsgYztc\nbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICBzZWxlY3RvciArPSBjbGFzc05hbWU7XG4gICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgIGxldCBwYXJlbnQgPSBlbGUucGFyZW50RWxlbWVudDtcbiAgICAgICAg\nICAgICAgICBpZiAocGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChleGFjdCkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGksIG50aCA9IDAsIGFsbCA9IDA7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGFyZW50LmNoaWxkcmVuLmxlbmd0aDsg\naSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudC5jaGlsZHJlbltp\nXS5ub2RlTmFtZSA9PT0gZWxlLm5vZGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGFsbCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50\nLmNoaWxkcmVuW2ldID09PSBlbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIG50aCA9IGFsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnRoID4gMCAmJiBhbGwgPiAxKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yICs9IChh\nbGwgPT09IDEgPyBcIlwiIDogYDpudGgtb2YtdHlwZSgke250aH0pYCk7XG4gICAgICAgICAgICAg\nICAgICAgIH0gZWxzZSBpZiAoIWNsYXNzTmFtZSAmJiAhaGFzSWQgJiYgcGFyZW50LmNoaWxkcmVu\nLmxlbmd0aCA+IDEgJiYgIWNvbXBhcmVOb2RlTmFtZShwYXJlbnQsIFtcImh0bWxcIl0pKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJldkUgPSBlbGUucHJldmlvdXNFbGVtZW50U2li\nbGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2RSAmJiBwcmV2RS5jbGFzc05h\nbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2xhc3NMaXN0ID0gcHJldkUu\nY2xhc3NMaXN0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp\nIDwgY2xhc3NMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIGxldCBjID0gY2xhc3NMaXN0W2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBpZiAoYyAhPT0gJ3Njcm9sbGluZycgJiYgXC9eW2Etel9dW1xcd1xcLV9dKiRcLy50ZXN0KGMp\nICYmICFcL1xcZHs0LH1cLy50ZXN0KGMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBjbGFzc05hbWUgKz0gJy4nICsgYztcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBpZiAoY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHNlbGVjdG9yID0gcHJldkUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSArIGNsYXNzTmFtZSAr\nIFwiK1wiICsgc2VsZWN0b3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGFzc05h\nbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSwgbnRoID0gMCwgYWxsID0g\nMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGFyZW50LmNo\naWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChwYXJlbnQuY2hpbGRyZW5baV0ubm9kZU5hbWUgPT09IGVsZS5ub2RlTmFtZSkge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsKys7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBpZiAocGFyZW50LmNoaWxkcmVuW2ldID09PSBlbGUpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudGggPSBhbGw7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBpZiAobnRoID4gMCAmJiBhbGwgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdG9yICs9IChh\nbGwgPT09IDEgPyBcIlwiIDogYDpudGgtb2YtdHlwZSgke250aH0pYCk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nc2VsZWN0b3IgPSBnZW5lU2VsZWN0b3IocGFyZW50LCBhZGRJRCwgZXhhY3QpICsgJyA+ICcgKyBz\nZWxlY3RvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAg\nICAgICAgcmV0dXJuIHNlbGVjdG9yO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVhQYXRo\nRnJvbUVsZW1lbnQoZWxtKSB7XG4gICAgICAgIGxldCBhbGxOb2RlcyA9IGRvY3VtZW50LmdldEVs\nZW1lbnRzQnlUYWdOYW1lKCcqJyksIHNlZ3M7XG4gICAgICAgIGZvciAoc2VncyA9IFtdOyBlbG0g\nJiYgZWxtLm5vZGVUeXBlID09PSAxOyBlbG0gPSBlbG0ucGFyZW50Tm9kZSkge1xuICAgICAgICAg\nICAgaWYgKGNvbXBhcmVOb2RlTmFtZShlbG0sIFtcImJvZHlcIiwgXCJodG1sXCJdKSkge1xuICAg\nICAgICAgICAgICAgIHNlZ3MudW5zaGlmdChlbG0ubG9jYWxOYW1lLnRvTG93ZXJDYXNlKCkpO1xu\nICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYg\nKGVsbS5oYXNBdHRyaWJ1dGUgJiYgZWxtLmhhc0F0dHJpYnV0ZSgnaWQnKSkge1xuICAgICAgICAg\nICAgICAgIHZhciB1bmlxdWVJZENvdW50ID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBu\nID0gMDsgbiA8IGFsbE5vZGVzLmxlbmd0aDsgbisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlm\nIChhbGxOb2Rlc1tuXS5oYXNBdHRyaWJ1dGUoJ2lkJykgJiYgYWxsTm9kZXNbbl0uaWQgPT09IGVs\nbS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZUlkQ291bnQrKztcbiAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodW5pcXVlSWRDb3VudCA+IDEp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIHVuaXF1ZUlkQ291bnQgPT09\nIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgc2Vncy51bnNoaWZ0KCdpZChcIicgKyBlbG0uZ2V0\nQXR0cmlidXRlKCdpZCcpICsgJ1wiKScpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2Vn\ncy5qb2luKCdcLycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAg\nICAgIHNlZ3MudW5zaGlmdChlbG0ubG9jYWxOYW1lLnRvTG93ZXJDYXNlKCkgKyAnW0BpZD1cIicg\nKyBlbG0uZ2V0QXR0cmlidXRlKCdpZCcpICsgJ1wiXScpO1xuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIH0gZWxzZSBpZiAoZWxtLmhhc0F0dHJpYnV0ZSAmJiBlbG0uaGFzQXR0cmlidXRl\nKCdjbGFzcycpKSB7XG4gICAgICAgICAgICAgICAgc2Vncy51bnNoaWZ0KGVsbS5sb2NhbE5hbWUu\ndG9Mb3dlckNhc2UoKSArICdbQGNsYXNzPVwiJyArIGVsbS5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykg\nKyAnXCJdJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBpLCBz\naWI7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMSwgc2liID0gZWxtLnByZXZpb3VzU2libGlu\nZzsgc2liOyBzaWIgPSBzaWIucHJldmlvdXNTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAg\nIGlmIChzaWIubG9jYWxOYW1lID09PSBlbG0ubG9jYWxOYW1lKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgaSsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIHNlZ3MudW5zaGlmdChlbG0ubG9jYWxOYW1lLnRvTG93ZXJDYXNlKCkgKyAn\nWycgKyBpICsgJ10nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4g\nc2Vncy5sZW5ndGggPyAnXC8nICsgc2Vncy5qb2luKCdcLycpIDogbnVsbDtcbiAgICB9XG5cbiAg\nICBjb25zdCBlc2NhcGVIVE1MUG9saWN5ID0gKF91bnNhZmVXaW5kb3cudHJ1c3RlZFR5cGVzICYm\nIF91bnNhZmVXaW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSkgPyBfdW5zYWZlV2luZG93\nLnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3koJ3BhZ2V0dWFsX2RlZmF1bHQnLCB7XG4gICAgICAg\nIGNyZWF0ZUhUTUw6IChzdHJpbmcsIHNpbmspID0+IHN0cmluZ1xuICAgIH0pIDogbnVsbDtcblxu\nICAgIGZ1bmN0aW9uIGNyZWF0ZUhUTUwoaHRtbCkge1xuICAgICAgICByZXR1cm4gZXNjYXBlSFRN\nTFBvbGljeSA\/IGVzY2FwZUhUTUxQb2xpY3kuY3JlYXRlSFRNTChodG1sKSA6IGh0bWw7XG4gICAg\nfVxuXG4gICAgY29uc3QgQXN5bmNGdW5jdGlvbiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihhc3lu\nYyBmdW5jdGlvbigpe30pLmNvbnN0cnVjdG9yO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gc2xlZXAo\ndGltZSkge1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAg\nICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAg\nICAgICAgICAgfSwgdGltZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNsYXNzIFJ1bGVQ\nYXJzZXIge1xuICAgICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHRoaXMuaHBSdWxl\ncyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5zbWFydFJ1bGVzID0gW107XG4gICAgICAgICAgICB0\naGlzLmN1c3RvbVJ1bGVzID0gW107XG4gICAgICAgICAgICB0aGlzLnJ1bGVzID0gW107XG4gICAg\nICAgICAgICB0aGlzLnBhZ2VEb2MgPSBkb2N1bWVudDtcbiAgICAgICAgICAgIHRoaXMubmV4dExp\nbmtIcmVmID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubmV4dFRpdGxlID0gXCJcIjtcbiAgICAg\nICAgICAgIHRoaXMub2xkVXJsID0gXCJcIjtcbiAgICAgICAgICAgIHRoaXMuY3VyVXJsID0gbG9j\nYXRpb24uaHJlZjtcbiAgICAgICAgICAgIHRoaXMuY3VyU2l0ZVJ1bGUgPSB7fTtcbiAgICAgICAg\nfVxuXG4gICAgICAgIGFzeW5jIGluaXRTYXZlZFJ1bGVzKGNhbGxiYWNrKSB7XG4gICAgICAgICAg\nICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICBsZXQgc21hcnRSdWxlcyA9IGF3YWl0IGdl\ndERhdGEoXCJzbWFydFJ1bGVzXCIpO1xuICAgICAgICAgICAgaWYgKHNtYXJ0UnVsZXMpIHNlbGYu\nc21hcnRSdWxlcyA9IHNtYXJ0UnVsZXM7XG4gICAgICAgICAgICBsZXQgaHBSdWxlcyA9IGF3YWl0\nIGdldERhdGEoXCJocFJ1bGVzXCIpO1xuICAgICAgICAgICAgaWYgKGhwUnVsZXMpIHNlbGYuaHBS\ndWxlcyA9IGhwUnVsZXM7XG4gICAgICAgICAgICBsZXQgY3VzdG9tUnVsZXMgPSBhd2FpdCBnZXRE\nYXRhKFwiY3VzdG9tUnVsZXNcIik7XG4gICAgICAgICAgICBpZiAoY3VzdG9tUnVsZXMpIHNlbGYu\nY3VzdG9tUnVsZXMgPSBjdXN0b21SdWxlcztcbiAgICAgICAgICAgIGlmIChfdW5zYWZlV2luZG93\nLnBhZ2V0dWFsUnVsZXMgJiYgX3Vuc2FmZVdpbmRvdy5wYWdldHVhbFJ1bGVzLmxlbmd0aCkge1xu\nICAgICAgICAgICAgICAgIF91bnNhZmVXaW5kb3cucGFnZXR1YWxSdWxlcy5mb3JFYWNoKHJ1bGUg\nPT4ge1xuICAgICAgICAgICAgICAgICAgICBydWxlLmlzU2NyaXB0ID0gdHJ1ZTtcbiAgICAgICAg\nICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzZWxmLmN1c3RvbVJ1bGVzID0gX3Vuc2FmZVdp\nbmRvdy5wYWdldHVhbFJ1bGVzLmNvbmNhdChzZWxmLmN1c3RvbVJ1bGVzKTtcbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIGxldCBydWxlcyA9IGF3YWl0IGdldERhdGEoXCJydWxlc1wiKTtcbiAg\nICAgICAgICAgIGlmIChydWxlcykgc2VsZi5ydWxlcyA9IHJ1bGVzO1xuICAgICAgICAgICAgY2Fs\nbGJhY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNhdmVDdXJTaXRlUnVsZSgpIHtcbiAgICAg\nICAgICAgIFwvKmlmKCF0aGlzLmN1clNpdGVSdWxlIHx8ICF0aGlzLmN1clNpdGVSdWxlLnVybCB8\nfCB0aGlzLmN1clNpdGVSdWxlLnNtYXJ0IHx8IHRoaXMuY3VyU2l0ZVJ1bGUudXJsLmxlbmd0aDwx\nMylyZXR1cm47XG4gICAgICAgICAgICB0aGlzLmhwUnVsZXM9dGhpcy5ocFJ1bGVzLmZpbHRlcihp\ndGVtPT57cmV0dXJuIGl0ZW0mJml0ZW0udXJsIT10aGlzLmN1clNpdGVSdWxlLnVybH0pO1xuICAg\nICAgICAgICAgdGhpcy5ocFJ1bGVzLnVuc2hpZnQodGhpcy5jdXJTaXRlUnVsZSk7XG4gICAgICAg\nICAgICBpZih0aGlzLmhwUnVsZXMubGVuZ3RoPjMwKXtcbiAgICAgICAgICAgICAgICB0aGlzLmhw\nUnVsZXMucG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0o\nXCJocFJ1bGVzXCIsIHRoaXMuaHBSdWxlcyk7KlwvXG4gICAgICAgIH1cblxuICAgICAgICByZXF1\nZXN0SlNPTih1cmwsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICBfR01feG1saHR0cFJlcXVlc3Qo\ne1xuICAgICAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dF\nVCcsXG4gICAgICAgICAgICAgICAgdGltZW91dDogMTAwMDAwMCxcbiAgICAgICAgICAgICAgICBo\nZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdhY2NlcHQnOiAnYXBwbGljYXRpb25cL2pz\nb24sdGV4dFwvaHRtbCcsXG4gICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogdXJsLFxuICAg\nICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb25sb2FkOiBmdW5jdGlvbihyZXMpIHtc\nbiAgICAgICAgICAgICAgICAgICAgbGV0IGpzb24gPSBudWxsO1xuICAgICAgICAgICAgICAgICAg\nICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAganNvbiA9IEpTT04ucGFyc2UocmVzLnJl\nc3BvbnNlIHx8IHJlcy5yZXNwb25zZVRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNo\nKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKGUsICdFcnJvciBqc29uJyk7XG4g\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soanNvbik7\nXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbmVycm9yOiBmdW5jdGlvbihl\nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGUpO1xuICAgICAgICAgICAg\nICAgIH0sXG4gICAgICAgICAgICAgICAgb250aW1lb3V0OiBmdW5jdGlvbihlKSB7XG4gICAgICAg\nICAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0UnVsZShpdGVtLCBmcm9tKSB7\nXG4gICAgICAgICAgICBpZiAoaXRlbS5kYXRhICYmIGl0ZW0uZGF0YS51cmwpIHtcbiAgICAgICAg\nICAgICAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5h\nbWUsXG4gICAgICAgICAgICAgICAgICAgIGZyb206IGZyb20sXG4gICAgICAgICAgICAgICAgICAg\nIGFjdGlvbjogaXRlbS5kYXRhLmZvcmNlSWZyYW1lID09PSBcInRydWVcIiA\/IDEgOiB1bmRlZmlu\nZWQsXG4gICAgICAgICAgICAgICAgICAgIHVybDogaXRlbS5kYXRhLnVybCxcbiAgICAgICAgICAg\nICAgICAgICAgcGFnZUVsZW1lbnQ6IGl0ZW0uZGF0YS5wYWdlRWxlbWVudCxcbiAgICAgICAgICAg\nICAgICAgICAgbmV4dExpbms6IGl0ZW0uZGF0YS5uZXh0TGluayxcbiAgICAgICAgICAgICAgICAg\nICAgaW5zZXJ0OiBpdGVtLmRhdGEuaW5zZXJ0QmVmb3JlfHx1bmRlZmluZWQsXG4gICAgICAgICAg\nICAgICAgICAgIHVwZGF0ZWRBdDogaXRlbS51cGRhdGVkX2F0XG4gICAgICAgICAgICAgICAgfTtc\nbiAgICAgICAgICAgICAgICBsZXQgX2NzcyA9IChpdGVtLmRhdGEuU3R5bHVzIHx8ICcnKSArIChp\ndGVtLmRhdGEuQ1NTIHx8ICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoX2NzcykgcmVzdWx0LmNz\ncyA9IF9jc3M7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZGF0YS5ib29rbWFya2xldCkgcmVz\ndWx0LnBhZ2VBY3Rpb24gPSBpdGVtLmRhdGEuYm9va21hcmtsZXQ7XG4gICAgICAgICAgICAgICAg\ncmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaXRl\nbS5mcm9tID0gZnJvbTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgYWRkUnVs\nZUJ5VXJsKHVybCwgZnJvbSwgY2FsbGJhY2spIHtcbiAgICAgICAgICAgIGlmICh1cmwuaW5kZXhP\nZihcIj9cIikgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdXJsID0gdXJsICsgXCI\/XCIgKyBE\nYXRlLm5vdygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB1cmwgPSB1\ncmwgKyBcIiZcIiArIERhdGUubm93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlz\nLnJlcXVlc3RKU09OKHVybCwgKGpzb24sZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFq\nc29uKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnKGVyciwgXCJGYWlsZWQgdG8gdXBkYXRl\nIFwiICsgdXJsICsgXCIgcnVsZXMhXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICB0aGlzLmFkZFJ1bGVzKGpzb24sIGZyb20pO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNr\nKGpzb24sIGVycik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZFJ1\nbGVzKHJ1bGVzLCBmcm9tKSB7XG4gICAgICAgICAgICBpZiAocnVsZXMgJiYgcnVsZXMubGVuZ3Ro\nID4gMCkge1xuICAgICAgICAgICAgICAgIGxldCBmaXJzdCA9IC0xO1xuICAgICAgICAgICAgICAg\nIHRoaXMucnVsZXMgPSB0aGlzLnJ1bGVzLmZpbHRlcigoaXRlbSwgaSkgPT4ge1xuICAgICAgICAg\nICAgICAgICAgICBpZiAoaXRlbS5mcm9tID09PSBmcm9tKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBpZiAoZmlyc3QgPT09IC0xKSBmaXJzdCA9IGk7XG4gICAgICAgICAgICAgICAgICAgICAg\nICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gdHJ1ZTtc\nbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3QgPT09IC0xKSBm\naXJzdCA9IDA7XG4gICAgICAgICAgICAgICAgcnVsZXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAg\nICAgICAgICAgICAgICAgbGV0IHJ1bGUgPSB0aGlzLmZvcm1hdFJ1bGUoaXRlbSwgZnJvbSk7XG4g\nICAgICAgICAgICAgICAgICAgIGlmIChydWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0\naGlzLnJ1bGVzLnNwbGljZShmaXJzdCwgMCwgcnVsZSlcbiAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAg\ncnVsZU1hdGNoUHJlKHIpIHtcbiAgICAgICAgICAgIGlmIChyLmluY2x1ZGUpIHtcbiAgICAgICAg\nICAgICAgICBsZXQgaW5jbHVkZTtcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkgJiYgQXJyYXku\naXNBcnJheSAmJiBBcnJheS5pc0FycmF5KHIuaW5jbHVkZSkpIHtcbiAgICAgICAgICAgICAgICAg\nICAgaW5jbHVkZSA9IHIuaW5jbHVkZS5ldmVyeSgoc2VsLCBpKSA9PiB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBsZXQgZWxlID0gZ2V0RWxlbWVudChzZWwsIGRvY3VtZW50KTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIHJldHVybiAhIWVsZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4g\nICAgICAgICAgICAgICAgfSBlbHNlIGluY2x1ZGUgPSBnZXRFbGVtZW50KHIuaW5jbHVkZSwgZG9j\ndW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmICghaW5jbHVkZSkgcmV0dXJuIGZhbHNlO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHIuZXhjbHVkZSkge1xuICAgICAgICAgICAgICAg\nIGxldCBleGNsdWRlO1xuICAgICAgICAgICAgICAgIGlmIChBcnJheSAmJiBBcnJheS5pc0FycmF5\nICYmIEFycmF5LmlzQXJyYXkoci5leGNsdWRlKSkge1xuICAgICAgICAgICAgICAgICAgICBleGNs\ndWRlID0gIXIuZXhjbHVkZS5ldmVyeSgoc2VsLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBsZXQgZWxlID0gZ2V0RWxlbWVudChzZWwsIGRvY3VtZW50KTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHJldHVybiAhZWxlO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAg\nICAgICAgICB9IGVsc2UgZXhjbHVkZSA9IGdldEVsZW1lbnQoci5leGNsdWRlLCBkb2N1bWVudCk7\nXG4gICAgICAgICAgICAgICAgaWYgKGV4Y2x1ZGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcnVsZU1h\ndGNoUmVhZHkocikge1xuICAgICAgICAgICAgbGV0IGZpbmRJbmRleCA9IDA7XG4gICAgICAgICAg\nICBpZiAoci5uZXh0TGluayAmJiByLm5leHRMaW5rICE9PSAwKSB7XG4gICAgICAgICAgICAgICAg\nbGV0IG5leHRMaW5rU2VsID0gci5uZXh0TGluaywgbmV4dExpbms7XG4gICAgICAgICAgICAgICAg\naWYgKEFycmF5ICYmIEFycmF5LmlzQXJyYXkgJiYgQXJyYXkuaXNBcnJheShuZXh0TGlua1NlbCkp\nIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmsgPSAhbmV4dExpbmtTZWwuZXZlcnkoKHNl\nbCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZSA9IGdldEVsZW1lbnQo\nc2VsLCBkb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxlKSBmaW5kSW5k\nZXggPSBpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFlbGU7XG4gICAgICAgICAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBuZXh0TGluayA9IGdldEVsZW1l\nbnQobmV4dExpbmtTZWwsIGRvY3VtZW50KTtcbiAgICAgICAgICAgICAgICBpZiAoIW5leHRMaW5r\nKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoci5wYWdlRWxl\nbWVudCkge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlRWxlbWVudFNlbCA9IHIucGFnZUVsZW1l\nbnQsIHBhZ2VFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChBcnJheSAmJiBBcnJheS5pc0Fy\ncmF5ICYmIEFycmF5LmlzQXJyYXkocGFnZUVsZW1lbnRTZWwpKSB7XG4gICAgICAgICAgICAgICAg\nICAgIHBhZ2VFbGVtZW50U2VsID0gcGFnZUVsZW1lbnRTZWxbZmluZEluZGV4XTtcbiAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFnZUVsZW1lbnQgPSBnZXRFbGVtZW50KHBhZ2VF\nbGVtZW50U2VsLCBkb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKCFwYWdlRWxlbWVudCkg\ncmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHIuaW5zZXJ0KSB7\nXG4gICAgICAgICAgICAgICAgbGV0IGluc2VydFNlbCA9IHIuaW5zZXJ0LCBpbnNlcnQ7XG4gICAg\nICAgICAgICAgICAgaWYgKEFycmF5ICYmIEFycmF5LmlzQXJyYXkgJiYgQXJyYXkuaXNBcnJheShp\nbnNlcnRTZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc2VydFNlbCA9IGluc2VydFNlbFtm\naW5kSW5kZXhdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbnNlcnQgPSBn\nZXRFbGVtZW50KGluc2VydFNlbCwgZG9jdW1lbnQpO1xuICAgICAgICAgICAgICAgIGlmICghaW5z\nZXJ0KSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcL1wvaWYgKGZp\nbmRJbmRleCAhPT0gMCkgbmV4dEluZGV4ID0gZmluZEluZGV4O1xuICAgICAgICAgICAgcmV0dXJu\nIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBydWxlTWF0Y2gocikge1xuICAgICAgICAgICAg\ncmV0dXJuIHRoaXMucnVsZU1hdGNoUHJlKHIpICYmIHRoaXMucnVsZU1hdGNoUmVhZHkocik7XG4g\nICAgICAgIH1cblxuICAgICAgICBzY3JvbGxUb1Nob3coc2VsLCBkb2MpIHtcbiAgICAgICAgICAg\nIGxldCBleGNsdWRlID0gZ2V0RWxlbWVudChzZWwsIGRvYyk7XG4gICAgICAgICAgICBpZiAoZXhj\nbHVkZSkge1xuICAgICAgICAgICAgICAgIHZhciBhY3R1YWxUb3AgPSBleGNsdWRlLm9mZnNldFRv\ncDtcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IGV4Y2x1ZGUub2Zmc2V0UGFyZW50O1xu\nICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAg\nICAgICAgIGFjdHVhbFRvcCArPSBjdXJyZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICAg\nICAgY3VycmVudCA9IGN1cnJlbnQub2Zmc2V0UGFyZW50O1xuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICBnZXRCb2R5KGRvYykuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgICAgICAg\nICBkb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgICAgICAgICAgbGV0\nIG1heEhlaWdodCA9IE1hdGgubWF4KGdldEJvZHkoZG9jKS5zY3JvbGxIZWlnaHQsIGRvYy5kb2N1\nbWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBnZXRCb2R5KGRvYyku\nc2Nyb2xsVG9wID0gYWN0dWFsVG9wIC0gMTA7XG4gICAgICAgICAgICAgICAgZG9jLmRvY3VtZW50\nRWxlbWVudC5zY3JvbGxUb3AgPSBhY3R1YWxUb3AgLSAxMDtcbiAgICAgICAgICAgICAgICBzZXRU\naW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGFjdHVhbFRvcCA8IG1h\neEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsVG9wICs9IDIwMDtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIGdldEJvZHkoZG9jKS5zY3JvbGxUb3AgPSBhY3R1YWxUb3A7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9\nIGFjdHVhbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDAp\nO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgd2FpdEVsZW1lbnQoZG9jLCBz\nZWxBcnIpIHtcbiAgICAgICAgICAgIGlmICghc2VsQXJyKSBzZWxBcnIgPSB0aGlzLmN1clNpdGVS\ndWxlLndhaXRFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNlbEFycikp\nIHtcbiAgICAgICAgICAgICAgICBzZWxBcnIgPSBbc2VsQXJyXTtcbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIGxldCBpbmNsdWRlU2VsID0gc2VsQXJyWzBdLnRyaW0oKSwgZXhjbHVkZVNlbDtc\nbiAgICAgICAgICAgIGlmIChzZWxBcnIubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAg\nZXhjbHVkZVNlbCA9IHNlbEFyclsxXS50cmltKCkucmVwbGFjZShcL14hXC8sICcnKTtcbiAgICAg\nICAgICAgIH0gZWxzZSBpZiAoaW5jbHVkZVNlbC5pbmRleE9mKCchJykgPT09IDApIHtcbiAgICAg\nICAgICAgICAgICBleGNsdWRlU2VsID0gaW5jbHVkZVNlbC5yZXBsYWNlKFwvXiFcLywgJycpO1xu\nICAgICAgICAgICAgICAgIGluY2x1ZGVTZWwgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIGlmIChpbmNsdWRlU2VsKSB7XG4gICAgICAgICAgICAgICAgbGV0IGluY2x1ZGUgPSBnZXRF\nbGVtZW50KGluY2x1ZGVTZWwsIGRvYyk7XG4gICAgICAgICAgICAgICAgaWYgKCFpbmNsdWRlKSB7\nXG4gICAgICAgICAgICAgICAgICAgIGlmIChkb2MgIT09IGRvY3VtZW50KSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBnZXRCb2R5KGRvYykuc2Nyb2xsVG9wID0gOTk5OTk5OTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIGlmIChkb2MuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSA5OTk5OTk5O1xu\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICB9XG4gICAgICAgICAgICBpZiAoZG9jID09PSBkb2N1bWVudCkgcmV0dXJuIHRydWU7XG4gICAg\nICAgICAgICBpZiAoZXhjbHVkZVNlbCkge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zY3Jv\nbGxUb1Nob3coZXhjbHVkZVNlbCwgZG9jKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxv\nYWRpbmdEaXYub2Zmc2V0UGFyZW50ICYmIHRoaXMuaW5zZXJ0LnBhcmVudE5vZGUpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJ0RWxlbWVudChsb2FkaW5nRGl2KTtcbiAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4g\nICAgICAgIH1cblxuICAgICAgICBydW5QYWdlQmFyKHBhZ2VCYXIpIHtcbiAgICAgICAgICAgIGlm\nICh0aGlzLmN1clNpdGVSdWxlLnBhZ2VCYXIgJiYgdGhpcy5jdXJTaXRlUnVsZS5wYWdlQmFyICE9\nPSAwKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgKCh0eXBl\nb2YgdGhpcy5jdXJTaXRlUnVsZS5wYWdlQmFyID09PSAnZnVuY3Rpb24nKSA\/IHRoaXMuY3VyU2l0\nZVJ1bGUucGFnZUJhciA6IEZ1bmN0aW9uKFwicGFnZUJhclwiLCdcInVzZSBzdHJpY3RcIjsnICsg\ndGhpcy5jdXJTaXRlUnVsZS5wYWdlQmFyKSkocGFnZUJhcik7XG4gICAgICAgICAgICAgICAgfSBj\nYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJ1bldhaXQoY2IpIHtcbiAg\nICAgICAgICAgIGxldCBjaGVja0V2YWwgPSBudWxsLCB3YWl0VGltZSA9IDA7XG4gICAgICAgICAg\nICBpZiAodGhpcy5jdXJTaXRlUnVsZS53YWl0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNo\nZWNrRXZhbCA9IGFzeW5jIGRvYyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2Fp\ndCB0aGlzLndhaXRFbGVtZW50KGRvYyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAg\nIH0gZWxzZSBpZih0aGlzLmN1clNpdGVSdWxlLndhaXQpIHtcbiAgICAgICAgICAgICAgICBpZiAo\naXNOYU4odGhpcy5jdXJTaXRlUnVsZS53YWl0KSkge1xuICAgICAgICAgICAgICAgICAgICB0cnkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tFdmFsID0gKHR5cGVvZiB0aGlzLmN1clNp\ndGVSdWxlLndhaXQgPT09ICdmdW5jdGlvbicpID8gdGhpcy5jdXJTaXRlUnVsZS53YWl0IDogbmV3\nIEFzeW5jRnVuY3Rpb24oXCJkb2NcIiwgJ1widXNlIHN0cmljdFwiOycgKyB0aGlzLmN1clNpdGVS\ndWxlLndhaXQpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2FpdFRpbWUgPSB0aGlzLmN1clNp\ndGVSdWxlLndhaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgY2IoY2hlY2tFdmFsLCB3YWl0VGltZSk7XG4gICAgICAgIH1cblxuICAgICAgICBmaW5kTm9O\nZXh0KCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmN1clNpdGVSdWxlIHx8ICF0aGlzLmN1clNp\ndGVSdWxlLnNtYXJ0IHx8IHRoaXMuY3VyU2l0ZVJ1bGUubmV4dExpbmsgPT09IDAgfHwgdGhpcy5w\nb3NzaWJsZVJ1bGUpIHJldHVybjtcbiAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAg\nICAgICAgIHNlbGYuY3VyU2l0ZVJ1bGUubmV4dExpbmsgPSAwO1xuICAgICAgICAgICAgc2VsZi5z\nbWFydFJ1bGVzID0gc2VsZi5zbWFydFJ1bGVzLmZpbHRlcihpdGVtID0+IHtyZXR1cm4gaXRlbSAm\nJiBpdGVtLnVybCAhPT0gc2VsZi5jdXJTaXRlUnVsZS51cmw7fSk7XG4gICAgICAgICAgICBzZWxm\nLnNtYXJ0UnVsZXMudW5zaGlmdChzZWxmLmN1clNpdGVSdWxlKTtcbiAgICAgICAgICAgIHN0b3Jh\nZ2Uuc2V0SXRlbShcInNtYXJ0UnVsZXNcIiwgc2VsZi5zbWFydFJ1bGVzKTtcbiAgICAgICAgfVxu\nXG4gICAgICAgIGFzeW5jIGdldFJ1bGUoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHZhciBocmVm\nID0gbG9jYXRpb24uaHJlZi5zbGljZSgwLCA1MDApO1xuICAgICAgICAgICAgaWYgKG5vUnVsZVRl\nc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1clNpdGVSdWxlID0ge307XG4gICAgICAgICAg\nICAgICAgdGhpcy5jdXJTaXRlUnVsZS51cmwgPSBocmVmO1xuICAgICAgICAgICAgICAgIHRoaXMu\nY3VyU2l0ZVJ1bGUuc21hcnQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4g\nICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF91\nbnNhZmVXaW5kb3cucGFnZXR1YWxSdWxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJTaXRl\nUnVsZSA9IF91bnNhZmVXaW5kb3cucGFnZXR1YWxSdWxlO1xuICAgICAgICAgICAgICAgIGlmICgh\ndGhpcy5jdXJTaXRlUnVsZS51cmwpIHRoaXMuY3VyU2l0ZVJ1bGUudXJsID0gXCIuXCI7XG4gICAg\nICAgICAgICAgICAgdGhpcy5jdXJTaXRlUnVsZS5pc1NjcmlwdCA9IHRydWU7XG4gICAgICAgICAg\nICB9XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJTaXRlUnVsZSAmJiB0aGlzLmN1clNpdGVSdWxl\nLnVybCAmJiAhdGhpcy5jdXJTaXRlUnVsZS5zbWFydCkge1xuICAgICAgICAgICAgICAgIGxldCB1\ncmxSZWcgPSBuZXcgUmVnRXhwKHRoaXMuY3VyU2l0ZVJ1bGUudXJsLCBcImlcIik7XG4gICAgICAg\nICAgICAgICAgaWYgKHVybFJlZy50ZXN0KGhyZWYpICYmIHRoaXMucnVsZU1hdGNoKHRoaXMuY3Vy\nU2l0ZVJ1bGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBvc3Np\nYmxlUnVsZSkge1xuICAgICAgICAgICAgICAgIGxldCB1cmxSZWcgPSBuZXcgUmVnRXhwKHRoaXMu\ncG9zc2libGVSdWxlLnVybCwgXCJpXCIpO1xuICAgICAgICAgICAgICAgIGlmICh1cmxSZWcudGVz\ndChocmVmKSAmJiB0aGlzLnJ1bGVNYXRjaCh0aGlzLnBvc3NpYmxlUnVsZSkpIHtcbiAgICAgICAg\nICAgICAgICAgICAgdGhpcy5jdXJTaXRlUnVsZSA9IHRoaXMucG9zc2libGVSdWxlO1xuICAgICAg\nICAgICAgICAgICAgICBkZWJ1Zyh0aGlzLmN1clNpdGVSdWxlLCAnTWF0Y2gnKTtcbiAgICAgICAg\nICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJTaXRlUnVsZSA9IHt9O1xuICAgICAgICAgICAg\ndmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgICAgICAgICBmdW5jdGlvbiBzZXRSdWxlKHIpIHtcbiAg\nICAgICAgICAgICAgICBpZiAoc2VsZi5wcmVTaXRlUnVsZSkge1xuICAgICAgICAgICAgICAgICAg\nICBocmVmID0gbG9jYXRpb24uaHJlZi5zbGljZSgwLCA1MDApO1xuICAgICAgICAgICAgICAgICAg\nICBsZXQgdXJsUmVnID0gbmV3IFJlZ0V4cChzZWxmLnByZVNpdGVSdWxlLnVybCwgXCJpXCIpO1xu\nICAgICAgICAgICAgICAgICAgICBpZiAodXJsUmVnLnRlc3QoaHJlZikgJiYgc2VsZi5ydWxlTWF0\nY2goc2VsZi5wcmVTaXRlUnVsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3Vy\nU2l0ZVJ1bGUgPSBzZWxmLnByZVNpdGVSdWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0\ndXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgaWYgKHIuZnJvbSA9PT0gMikge1xuICAgICAgICAgICAgICAgICAg\nICBkZWxldGUgci5hdXRvTG9hZE51bTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHIuaGlz\ndG9yeTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHIuc2lkZUNvbnRyb2xsZXI7XG4gICAg\nICAgICAgICAgICAgICAgIGlmIChyLnBhZ2VCYXIgPT09IDApIGRlbGV0ZSByLnBhZ2VCYXI7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghci5zbWFydCkge1xuICAgICAg\nICAgICAgICAgICAgICBzZWxmLmluc2VydCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHNl\nbGYuY3VyU2l0ZVJ1bGUgPSByO1xuICAgICAgICAgICAgICAgICAgICBzZWxmLnByZVNpdGVSdWxl\nID0gcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIuZW5hYmxlICE9PSAwKSBkZWJ1ZyhyLCAn\nTWF0Y2gnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzZWxmLmN1clNpdGVSdWxlIHx8\nICFzZWxmLmN1clNpdGVSdWxlLnNtYXJ0KSBzZWxmLmN1clNpdGVSdWxlID0gcjtcbiAgICAgICAg\nICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlv\nbiBjaGVja1J1bGUocikge1xuICAgICAgICAgICAgICAgIGlmIChyLmZyb20gPT09IDEgJiYgci51\ncmwubGVuZ3RoIDw9IDEzKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgbGV0IHVybFJl\nZyA9IG5ldyBSZWdFeHAoci51cmwsIFwiaVwiKTtcbiAgICAgICAgICAgICAgICBpZiAodXJsUmVn\nLnRlc3QoaHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWxmLnJ1bGVNYXRjaFBy\nZShyKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoci51cmwubGVuZ3Ro\nID4gMTUgJiYgci5mcm9tICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBv\nc3NpYmxlUnVsZSA9IHI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgaWYgKHIud2FpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB3YWl0\nVGltZSA9IDUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjaGVja1JlYWR5ID0gKCkg\nPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNlbGYud2FpdEVsZW1lbnQoZG9jdW1l\nbnQsIHIud2FpdEVsZW1lbnQpIHx8ICFzZWxmLnJ1bGVNYXRjaFJlYWR5KHIpKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1JlYWR5KCk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBzZXRSdWxlKHIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcGFyc2VJbnQod2FpdFRpbWUpKTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja1JlYWR5\nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhyLCAnV2FpdCBmb3InKTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVs\nc2UgaWYgKHIud2FpdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHdhaXRUaW1lID0g\nNTAwLCBjaGVja0V2YWwsIG1heENoZWNrVGltZXMgPSA1MDtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGlmIChpc05hTihyLndhaXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tFdmFsID0gKHR5cGVvZiBy\nLndhaXQgPT09ICdmdW5jdGlvbicpID8gci53YWl0IDogQXN5bmNGdW5jdGlvbihcImRvY1wiLCdc\nInVzZSBzdHJpY3RcIjsnICsgci53YWl0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9\nIGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoZSwgJ0Vy\ncm9yIHdoZW4gY2hlY2tldmFsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICB3YWl0VGltZSA9IHIud2FpdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgICAgIGxldCBjaGVja1JlYWR5ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGlmIChtYXhDaGVja1RpbWVzLS0gPD0gMCkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBkZWJ1ZyhcIldhaXQgZm9yIHJ1bGUgcmVhZHkgYnV0IGZhaWxlZFwi\nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UnVsZShyKTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jKCkgPT4g\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNlbGYucnVsZU1hdGNoUmVh\nZHkocikgfHwgKGNoZWNrRXZhbCAmJiAhYXdhaXQgY2hlY2tFdmFsKGRvY3VtZW50KSkpIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUmVhZHkoKTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHNldFJ1bGUocik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBwYXJzZUludCh3YWl0VGltZSkpO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr\nUmVhZHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKHIsICdXYWl0IGZvcicpO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHIucGluVXJsKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBzZXRSdWxlKHIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7\nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWxmLnJ1\nbGVNYXRjaFJlYWR5KHIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7\nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2V0UnVsZShyKTtc\nbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAg\nZnVuY3Rpb24gY2hlY2tIcFJ1bGVzKCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4g\nc2VsZi5ocFJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBydWxlID0gc2VsZi5ocFJ1\nbGVzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUudXJsIHx8IHJ1\nbGUuc21hcnQpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tSdWxlKHJ1\nbGUpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0\ndXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmdW5jdGlvbiBjaGVja0N1\nc3RvbVJ1bGVzKCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gc2VsZi5jdXN0b21S\ndWxlcykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcnVsZSA9IHNlbGYuY3VzdG9tUnVsZXNb\naV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghcnVsZSB8fCAhcnVsZS51cmwpIGNvbnRpbnVl\nO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hlY2tSdWxlKHJ1bGUpKSByZXR1cm4gdHJ1ZTtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAg\nICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocnVsZXNEYXRhLmN1c3RvbUZpcnN0KSB7XG4gICAg\nICAgICAgICAgICAgaWYgKGNoZWNrQ3VzdG9tUnVsZXMoKSkgcmV0dXJuO1xuICAgICAgICAgICAg\nICAgIGF3YWl0IHNsZWVwKDEpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja0hwUnVsZXMoKSkg\ncmV0dXJuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tI\ncFJ1bGVzKCkpIHJldHVybjtcbiAgICAgICAgICAgICAgICBhd2FpdCBzbGVlcCgxKTtcbiAgICAg\nICAgICAgICAgICBpZiAoY2hlY2tDdXN0b21SdWxlcygpKSByZXR1cm47XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgICBhd2FpdCBzbGVlcCgxKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSBp\nbiB0aGlzLnNtYXJ0UnVsZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgcnVsZSA9IHRoaXMuc21h\ncnRSdWxlc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAoIXJ1bGUgfHwgIXJ1bGUudXJsIHx8ICFy\ndWxlLnNtYXJ0KSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoaHJlZiA9PT0gcnVsZS51\ncmwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UnVsZShydWxlKTtcbiAgICAgICAgICAgICAg\nICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5saXN0ZW5VcmxD\naGFuZ2UgPT09IGZhbHNlICYmIGhyZWYucmVwbGFjZShcL1teXFxcL10rJFwvLCBcIlwiKSA9PT0g\ncnVsZS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UnVsZShydWxlKTtcbiAgICAgICAg\nICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIGxldCByID0gMDtcbiAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHNlYXJjaEJ5\nVGltZSgpIHtcbiAgICAgICAgICAgICAgICB3aGlsZSAoZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAg\nICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDEwMDApO1xuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0\nIGVuZCA9IHIgKyAyMDtcbiAgICAgICAgICAgICAgICAgICAgZW5kID0gZW5kID4gc2VsZi5ydWxl\ncy5sZW5ndGggPyBzZWxmLnJ1bGVzLmxlbmd0aCA6IGVuZDtcbiAgICAgICAgICAgICAgICAgICAg\nZm9yICg7IHIgPCBlbmQ7IHIrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJ1bGUg\nPSBzZWxmLnJ1bGVzW3JdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrUnVsZShy\ndWxlKSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nIGlmIChlbmQgPj0gc2VsZi5ydWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50\nLmNsYXNzTmFtZSAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lLmluZGV4T2Yg\nJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZS5pbmRleE9mKCdkaXNjb3Vyc2Un\nKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSdWxlKHt1cmw6IGhy\nZWYucmVwbGFjZShcL1teXFxcL10rJFwvLCBcIlwiKSwgc21hcnQ6IHRydWUsIG5leHRMaW5rOiAw\nLCBsaXN0ZW5VcmxDaGFuZ2U6IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVs\nc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFJ1bGUoe3VybDogaHJlZiwgc21h\ncnQ6IHRydWV9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIHNlYXJjaEJ5VGltZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZWFyY2hCeVRp\nbWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFkZFRvSHBSdWxlcyhpbnN0ZWFkKSB7XG4gICAg\nICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1clNpdGVSdWxlLmlzU2Ny\naXB0KSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhwUnVsZXMpIHRoaXMuaHBS\ndWxlcyA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCB1cmwgPSB0aGlzLmN1clNpdGVSdWxlICYm\nIHRoaXMuY3VyU2l0ZVJ1bGUudXJsLCBzZWxmID0gdGhpcztcbiAgICAgICAgICAgICAgICBsZXQg\naHJlZiA9IGxvY2F0aW9uLmhyZWYuc2xpY2UoMCwgNTAwKTtcbiAgICAgICAgICAgICAgICBsZXQg\nbWF0Y2hlZFJ1bGVzID0gdGhpcy5ocFJ1bGVzLmZpbHRlcihydWxlID0+IHJ1bGUgIT0gc2VsZi5j\ndXJTaXRlUnVsZSAmJiBuZXcgUmVnRXhwKHJ1bGUudXJsLCBcImlcIikudGVzdChocmVmKSAmJiBz\nZWxmLnJ1bGVNYXRjaChydWxlKSk7XG4gICAgICAgICAgICAgICAgaWYgKHVybCkgbWF0Y2hlZFJ1\nbGVzLnVuc2hpZnQodGhpcy5jdXJTaXRlUnVsZSk7XG4gICAgICAgICAgICAgICAgbWF0Y2hlZFJ1\nbGVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKChhLmluY2x1ZGUg\nfHwgYS5leGNsdWRlKSAmJiAoIWIuaW5jbHVkZSAmJiAhYi5leGNsdWRlKSkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYg\nKChiLmluY2x1ZGUgfHwgYi5leGNsdWRlKSAmJiAoIWEuaW5jbHVkZSAmJiAhYS5leGNsdWRlKSkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGEubmV4dExpbmsgfHwgYS5w\nYWdlRWxlbWVudCkgJiYgKCFiLm5leHRMaW5rICYmICFiLnBhZ2VFbGVtZW50KSkge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIH0gZWxzZSBpZiAoKGIubmV4dExpbmsgfHwgYi5wYWdlRWxlbWVudCkgJiYgKCFhLm5leHRMaW5r\nICYmICFhLnBhZ2VFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy\nbiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhLmZyb20gPT09IGIuZnJv\nbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhLnVybC5sZW5ndGggPiBiLnVy\nbC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYS51cmwubGVuZ3RoIDwgYi51\ncmwubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmhwUnVsZXMg\nPSB0aGlzLmhwUnVsZXMuZmlsdGVyKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1\ncm4gaXRlbSAmJiAhbWF0Y2hlZFJ1bGVzLmZpbmQocnVsZSA9PiBpdGVtLnVybCA9PSBydWxlLnVy\nbCAmJiBKU09OLnN0cmluZ2lmeShpdGVtKSA9PSBKU09OLnN0cmluZ2lmeShydWxlKSk7XG4gICAg\nICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RlYWQpIHtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKHVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ocFJ1\nbGVzLnVuc2hpZnQodGhpcy5jdXJTaXRlUnVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBt\nYXRjaGVkUnVsZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaHBSdWxlcyA9IG1hdGNoZWRSdWxl\ncy5jb25jYXQodGhpcy5ocFJ1bGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgaWYgKG1hdGNoZWRSdWxlcyAmJiBtYXRjaGVkUnVsZXMubGVuZ3RoKSB0aGlzLmN1clNpdGVS\ndWxlID0gbWF0Y2hlZFJ1bGVzWzBdO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhwUnVsZXMu\nbGVuZ3RoID4gMzApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ocFJ1bGVzLnBvcCgpO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXJ1bGVzRGF0YS5zb3J0KSBy\ndWxlc0RhdGEuc29ydCA9IFsxXTtcbiAgICAgICAgICAgICAgICB0aGlzLmhwUnVsZXMuc29ydCgo\nYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgYVNvcnQgPSAtMSwgYlNvcnQgPSAt\nMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcyA9IDA7IHMgPCBydWxlc0RhdGEuc29y\ndC5sZW5ndGg7IHMrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEuZnJvbSA9PSBy\ndWxlc0RhdGEuc29ydFtzXSkgYVNvcnQgPSBzO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKGIuZnJvbSA9PSBydWxlc0RhdGEuc29ydFtzXSkgYlNvcnQgPSBzO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKGFTb3J0ID4gLTEgJiYgYlNvcnQgPiAtMSkgYnJlYWs7XG4gICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFTb3J0IC0gYlNvcnQ7XG4g\nICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwiaHBS\ndWxlc1wiLCB0aGlzLmhwUnVsZXMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAg\nICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAg\ncmVwbGFjZUVsZW1lbnQoZG9jKSB7XG4gICAgICAgICAgICBpZiAoIWRvYyB8fCBkb2MgPT09IGRv\nY3VtZW50KSByZXR1cm47XG4gICAgICAgICAgICBsZXQgcmVwbGFjZUVsZW1lbnRTZWwgPSB0aGlz\nLmN1clNpdGVSdWxlLnJlcGxhY2VFbGVtZW50O1xuICAgICAgICAgICAgaWYgKHJlcGxhY2VFbGVt\nZW50U2VsKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJlcGxhY2VFbGVt\nZW50U2VsKSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlRWxlbWVudFNlbCA9IFtyZXBs\nYWNlRWxlbWVudFNlbF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlcGxh\nY2VFbGVtZW50U2VsLmZvckVhY2goc2VsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBh\nZ2VFbGVzID0gZ2V0QWxsRWxlbWVudHMoc2VsLCBkb2N1bWVudCk7XG4gICAgICAgICAgICAgICAg\nICAgIGxldCByZXBsYWNlRWxlcyA9IGdldEFsbEVsZW1lbnRzKHNlbCwgZG9jKTtcbiAgICAgICAg\nICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYWdlRWxlcy5sZW5ndGg7IGkrKykge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcGxhY2VFbGUgPSByZXBsYWNlRWxlc1tpXTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYWdlRWxlID0gcGFnZUVsZXNbaV07XG4gICAg\nICAgICAgICAgICAgICAgICAgICBpZiAocmVwbGFjZUVsZSkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIHBhZ2VFbGUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQocmVwbGFjZUVsZS5jbG9u\nZU5vZGUodHJ1ZSksIHBhZ2VFbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGJy\nZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAg\nICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZWZyZXNoQnlDbGljaygpIHtcbiAgICAgICAg\nICAgIGxldCByZWZyZXNoQnlDbGlja1NlbCA9IHRoaXMuY3VyU2l0ZVJ1bGUucmVmcmVzaEJ5Q2xp\nY2s7XG4gICAgICAgICAgICBpZiAocmVmcmVzaEJ5Q2xpY2tTZWwpIHtcbiAgICAgICAgICAgICAg\nICBsZXQgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnJlZnJlc2hCeUNs\naWNrSGFuZGxlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hCeUNsaWNrSGFu\nZGxlciA9IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWxmLnJlZnJlc2hp\nbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZnJlc2hpbmcgPSB0cnVl\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNoZWNrRWxlcyA9IGdldEFsbEVsZW1lbnRz\nKHJlZnJlc2hCeUNsaWNrU2VsLCBkb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hlY2tFbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VyRWxlID0gY2hlY2tFbGVzW2ld\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ckVsZSA9PT0gZS50\nYXJnZXQgfHwgY3VyRWxlLmNvbnRhaW5zKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIHJ1bGVQYXJzZXIudXJsQ2hhbmdlZCgpO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGF1c2UgPSB0cnVlO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcnVsZVBhcnNlci5uZXh0TGlua0hy\nZWYpIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVF\ndmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5yZWZyZXNoQnlDbGlja0hhbmRsZXIpO1xuICAg\nICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCB0aGlzLnJl\nZnJlc2hCeUNsaWNrSGFuZGxlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAg\nICBnZXRWYWxpZFNpemUoZWxlLCB3aW4pIHtcbiAgICAgICAgICAgIGlmICghd2luKSByZXR1cm4g\ne2g6IDAsIHc6IDB9O1xuICAgICAgICAgICAgbGV0IGVsZVN0eWxlID0gd2luLmdldENvbXB1dGVk\nU3R5bGUoZWxlKTtcbiAgICAgICAgICAgIGlmICghZWxlLm9mZnNldFBhcmVudCAmJiBlbGVTdHls\nZS5kaXNwbGF5ICE9PSBcImNvbnRlbnRzXCIgJiYgKGVsZVN0eWxlLnBvc2l0aW9uICE9PSBcImZp\neGVkXCIgfHwgZWxlU3R5bGUub3BhY2l0eSA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICByZXR1\ncm4ge2g6IDAsIHc6IDB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZS5jaGls\nZHJlbiAmJiBlbGUuY2hpbGRyZW4ubGVuZ3RoID09PSAxICYmIChlbGUub2Zmc2V0V2lkdGggPT09\nIDAgfHwgZWxlLm9mZnNldEhlaWdodCA9PT0gMCkpIHtcbiAgICAgICAgICAgICAgICBlbGUgPSBl\nbGUuY2hpbGRyZW5bMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgaCA9IGVsZS5z\nY3JvbGxIZWlnaHQsIHc7XG4gICAgICAgICAgICBpZiAoZWxlU3R5bGUub3ZlcmZsb3cgPT09IFwi\naGlkZGVuXCIpIHtcbiAgICAgICAgICAgICAgICBoID0gZWxlLm9mZnNldEhlaWdodDtcbiAgICAg\nICAgICAgICAgICB3ID0gZWxlLm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgfSBlbHNlIHcgPSBw\nYXJzZUludChlbGUub2Zmc2V0V2lkdGggfHwgZWxlLnNjcm9sbFdpZHRoKTtcbiAgICAgICAgICAg\nIGlmIChoID09PSAwICYmIGVsZS5wYXJlbnROb2RlICYmIGVsZS5wYXJlbnROb2RlLmNoaWxkcmVu\nLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGggPSBlbGUucGFyZW50Tm9kZS5zY3Jv\nbGxIZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAoaCA9PT0gMCAmJiBl\nbGUuY2hpbGRyZW4gJiYgZWxlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAg\nICAgIGVsZSA9IGVsZS5jaGlsZHJlblswXTtcbiAgICAgICAgICAgICAgICBoID0gZWxlLnNjcm9s\nbEhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoID09PSAwICYmIGVsZS5j\naGlsZHJlbiAmJiBlbGUuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgbGV0IG1h\neENoaWxkU2l6ZSA9IHtoOiAwfSwgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgW10uZm9y\nRWFjaC5jYWxsKGVsZS5jaGlsZHJlbiwgZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQg\nY2hpbGRTaXplID0gc2VsZi5nZXRWYWxpZFNpemUoZWwsIHdpbik7XG4gICAgICAgICAgICAgICAg\nICAgIGlmIChjaGlsZFNpemUuaCA+IG1heENoaWxkU2l6ZS5oKSBtYXhDaGlsZFNpemUgPSBjaGls\nZFNpemU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1heENoaWxk\nU2l6ZS5oICE9PSAwKSByZXR1cm4gbWF4Q2hpbGRTaXplO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgY29uc3QgbWF4TnVtID0gMjE0NzQ4MzY0NztcbiAgICAgICAgICAgIGxldCBtb3JlQ2hp\nbGQgPSBlbGUuY2hpbGRyZW5bMF0sIG1pbk9mZnNldFRvcCA9IG1heE51bTtcbiAgICAgICAgICAg\nIHdoaWxlIChtb3JlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICBpZiAoKG1vcmVDaGlsZC5vZmZz\nZXRQYXJlbnQgPT09IGVsZSB8fCBtb3JlQ2hpbGQub2Zmc2V0UGFyZW50ID09PSBlbGUub2Zmc2V0\nUGFyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VyT2Zmc2V0VG9wID0gbW9yZUNo\naWxkLm9mZnNldFBhcmVudCA9PT0gZWxlLm9mZnNldFBhcmVudCA\/IG1vcmVDaGlsZC5vZmZzZXRU\nb3AgLSBlbGUub2Zmc2V0VG9wIDogbW9yZUNoaWxkLm9mZnNldFRvcDtcbiAgICAgICAgICAgICAg\nICAgICAgaWYgKGN1ck9mZnNldFRvcCA8IG1pbk9mZnNldFRvcCkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgbWluT2Zmc2V0VG9wID0gY3VyT2Zmc2V0VG9wO1xuICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1vcmVDaGlsZCA9IG1vcmVD\naGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAo\naCAmJiBtaW5PZmZzZXRUb3AgIT09IG1heE51bSAmJiBtaW5PZmZzZXRUb3AgPiAwKSB7XG4gICAg\nICAgICAgICAgICAgaCAtPSBtaW5PZmZzZXRUb3A7XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nICByZXR1cm4ge2g6IGgsIHc6IHd9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2hlY2tUYXJnZXRD\naGlsZHJlbihlbGUsIGN1cldpbiwgYXJ0aWNsZU51bSwgY3VySGVpZ2h0KSB7XG4gICAgICAgICAg\nICBsZXQgcGYgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChlbGUucGFyZW50Tm9kZSkge1xuICAg\nICAgICAgICAgICAgIGxldCBwYVN0eWxlID0gY3VyV2luLmdldENvbXB1dGVkU3R5bGUoZWxlLnBh\ncmVudE5vZGUpO1xuICAgICAgICAgICAgICAgIGxldCBwYURpc3BsYXkgPSBwYVN0eWxlLmRpc3Bs\nYXk7XG4gICAgICAgICAgICAgICAgbGV0IHBhT3ZlcmZsb3cgPSBwYVN0eWxlLm92ZXJmbG93O1xu\nICAgICAgICAgICAgICAgIHBmID0gKHBhRGlzcGxheS5pbmRleE9mKCdmbGV4JykgIT09IC0xICYm\nIHBhU3R5bGUuZmxleERpcmVjdGlvbi5pbmRleE9mKFwicm93XCIpID09PSAwICYmIHBhU3R5bGUu\nZmxleFdyYXAgIT09IFwid3JhcFwiKSB8fCBjb21wYXJlTm9kZU5hbWUoZWxlLnBhcmVudE5vZGUs\nIFtcInVsXCJdKSB8fCBwYURpc3BsYXkuaW5kZXhPZignZ3JpZCcpICE9PSAtMSB8fCBwYU92ZXJm\nbG93ID09PSBcImhpZGRlblwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGN1clN0\neWxlID0gY3VyV2luLmdldENvbXB1dGVkU3R5bGUoZWxlKTtcbiAgICAgICAgICAgIGlmIChlbGUu\nY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGlmIChhcnRpY2xlTnVtID4g\nMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCI+YXJ0aWNsZVwiO1xuICAgICAgICAg\nICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBoYXNUZXh0ID0gZmFsc2U7\nXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gZWxlLmNoaWxkTm9kZXMpIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZCA9IGVsZS5jaGlsZE5vZGVzW2ldO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVUeXBlID09PSAzICYmIGNoaWxkLm5v\nZGVWYWx1ZS50cmltKCkgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFz\nVGV4dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAg\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAg\nICAgICAgbGV0IGdyaWRBcmVhID0gY3VyU3R5bGUuZ3JpZEFyZWE7XG4gICAgICAgICAgICAgICAg\nICAgIGlmIChncmlkQXJlYSAmJiBncmlkQXJlYSAhPT0gXCJhdXRvXCIgJiYgZ3JpZEFyZWEgIT09\nIFwiYXV0byBcLyBhdXRvIFwvIGF1dG8gXC8gYXV0b1wiKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICByZXR1cm4gXCI+KlwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgbGV0IG1pZGRsZUNoaWxkID0gZWxlLmNoaWxkcmVuW3BhcnNlSW50\nKGVsZS5jaGlsZHJlbi5sZW5ndGggXC8gMildO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKGNvbXBhcmVOb2RlTmFtZShtaWRkbGVDaGlsZCwgW1wiYnJcIl0pICYmIGhhc1RleHQpIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIH0gZWxzZSBpZiAoKGN1clN0eWxlLmRpc3BsYXkgPT09ICdmbGV4JyAmJiBjdXJTdHls\nZS5mbGV4RGlyZWN0aW9uLmluZGV4T2YoXCJyb3dcIikgPT09IDAgJiYgY3VyU3R5bGUuZmxleFdy\nYXAgIT09IFwid3JhcFwiKSB8fCAoY3VyU3R5bGUuZmxvYXQgPT09IFwibm9uZVwiICYmIGN1clN0\neWxlLmRpc3BsYXkgIT09IFwidGFibGUtY2VsbFwiICYmIChydWxlc0RhdGEub3BhY2l0eSAhPT0g\nMCB8fCBoYXNUZXh0KSAmJiAhcGYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0\ndXJuIFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChtaWRkbGVDaGls\nZC5zdHlsZSAmJiBtaWRkbGVDaGlsZC5zdHlsZS5wb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiICYm\nIG1pZGRsZUNoaWxkLnN0eWxlLmxlZnQgJiYgbWlkZGxlQ2hpbGQuc3R5bGUudG9wKSB8fCBjb21w\nYXJlTm9kZU5hbWUoZWxlLCBbXCJ1bFwiXSkgfHwgY3VySGVpZ2h0ID09PSAwKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcIj4qXCI7XG4g\nICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZS5jaGlsZHJlbi5sZW5ndGggJiYg\nKHBmIHx8IGN1clN0eWxlLnBvc2l0aW9uID09PSBcImFic29sdXRlXCIpKSB7XG4gICAgICAgICAg\nICAgICAgcmV0dXJuIFwiPipcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBc\nIlwiO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2V0UGFnZUVsZW1lbnQoZG9jLCBjdXJXaW4sIGRv\nbnRGaW5kKSB7XG4gICAgICAgICAgICBpZiAoZG9jID09PSBkb2N1bWVudCAmJiB0aGlzLmRvY0Vs\nZW1lbnRWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZG9jUGFnZUVsZW1l\nbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWN1cldpbikgY3VyV2luID0gZG9j\nLmRlZmF1bHRWaWV3O1xuICAgICAgICAgICAgbGV0IHBhZ2VFbGVtZW50ID0gbnVsbDtcbiAgICAg\nICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgICAgIGxldCBib2R5ID0gZ2V0Qm9keShk\nb2MpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnQpIHtcbiAg\nICAgICAgICAgICAgICBsZXQgcGFnZUVsZW1lbnRTZWwgPSB0aGlzLmN1clNpdGVSdWxlLnBhZ2VF\nbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChBcnJheSAmJiBBcnJheS5pc0FycmF5ICYmIEFy\ncmF5LmlzQXJyYXkocGFnZUVsZW1lbnRTZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2VF\nbGVtZW50U2VsID0gcGFnZUVsZW1lbnRTZWxbbmV4dEluZGV4IDwgcGFnZUVsZW1lbnRTZWwubGVu\nZ3RoID8gbmV4dEluZGV4IDogMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIHBhZ2VFbGVtZW50ID0gZ2V0QWxsRWxlbWVudHMocGFnZUVsZW1lbnRTZWwsIGRvYyk7XG4gICAg\nICAgICAgICAgICAgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUuc21hcnQgJiYgKCFwYWdlRWxlbWVudCB8\nfCBwYWdlRWxlbWVudC5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0\nIGNoaWxkU2VsTWF0Y2ggPSBcLz5cXHMqXFwqJFwvO1xuICAgICAgICAgICAgICAgICAgICBjb25z\ndCB0YXJnZXRDaGlsZCA9IGNoaWxkU2VsTWF0Y2gudGVzdChwYWdlRWxlbWVudFNlbCk7XG4gICAg\nICAgICAgICAgICAgICAgIGlmICh0YXJnZXRDaGlsZCkgcGFnZUVsZW1lbnRTZWwgPSBwYWdlRWxl\nbWVudFNlbC5yZXBsYWNlKGNoaWxkU2VsTWF0Y2gsIFwiXCIpO1xuICAgICAgICAgICAgICAgICAg\nICBsZXQgcGFnZUVsZW1lbnRTZWxTcGxpdCA9IHBhZ2VFbGVtZW50U2VsLnNwbGl0KFwiPlwiKTtc\nbiAgICAgICAgICAgICAgICAgICAgd2hpbGUocGFnZUVsZW1lbnRTZWxTcGxpdCAmJiBwYWdlRWxl\nbWVudFNlbFNwbGl0Lmxlbmd0aCA+IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VF\nbGVtZW50U2VsU3BsaXQuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1w\nU2VsID0gcGFnZUVsZW1lbnRTZWxTcGxpdC5qb2luKFwiPlwiKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHBhZ2VFbGVtZW50ID0gZ2V0QWxsRWxlbWVudHModGVtcFNlbCwgZG9jKTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChwYWdlRWxlbWVudCAmJiBwYWdlRWxlbWVudC5sZW5ndGgg\nPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0Q2hpbGQpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUVsZW1lbnQgPSBwYWdlRWxlbWVu\ndC5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgdGhpcy5jdXJTaXRlUnVsZS5wYWdlRWxlbWVudCA9IHRlbXBTZWwgKyAo\ndGFyZ2V0Q2hpbGQgPyBcIj4qXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXBhZ2VFbGVtZW50IHx8IHBhZ2VFbGVtZW50Lmxl\nbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUVsZW1lbnRTZWwgPSBw\nYWdlRWxlbWVudFNlbC5yZXBsYWNlKFwvOm50aC1vZi10eXBlXFwoXFxkK1xcKVwvZywgXCJcIik7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlRWxlbWVudCA9IGdldEFsbEVsZW1lbnRzKHBh\nZ2VFbGVtZW50U2VsLCBkb2MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VFbGVt\nZW50ICYmIHBhZ2VFbGVtZW50Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGlmICh0YXJnZXRDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBwYWdlRWxlbWVudCA9IHBhZ2VFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1clNpdGVSdWxl\nLnBhZ2VFbGVtZW50ID0gcGFnZUVsZW1lbnRTZWwgKyAodGFyZ2V0Q2hpbGQgPyBcIj4qXCIgOiBc\nIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJTaXRlUnVsZS5z\nbWFydCAmJiBwYWdlRWxlbWVudCAmJiBwYWdlRWxlbWVudC5sZW5ndGgpIHtcbiAgICAgICAgICAg\nICAgICAgICAgaWYgKHBhZ2VFbGVtZW50Lmxlbmd0aCA9PT0gMSAmJiAhcGFnZUVsZW1lbnRbMF0u\nc3JjICYmIHBhZ2VFbGVtZW50WzBdLmlubmVySFRNTC50cmltKCkgPT09IFwiXCIpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHBhZ2VFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAg\nICAgfSBlbHNlIGlmIChjdXJXaW4gJiYgY3VyV2luICE9PSBfdW5zYWZlV2luZG93KSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50ID0gcGFnZUVsZW1lbnRbMF0ucGFyZW50Tm9k\nZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2FkaW5nID0gcGFyZW50LnF1ZXJ5U2Vs\nZWN0b3IoJ1tjbGFzcyo9bG9hZGluZ10sW2NsYXNzKj1Mb2FkZXJdJyk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBpZiAobG9hZGluZyAmJiBsb2FkaW5nLm9mZnNldFBhcmVudCAmJiBsb2FkaW5n\nLm9mZnNldEhlaWdodCA+IChwYXJlbnQuY2hpbGRFbGVtZW50Q291bnQgPT09IDEgPyBwYXJlbnQu\nZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0SGVpZ2h0IDogcGFyZW50Lm9mZnNldEhlaWdodCk+PjIp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRWxlbWVudCA9IG51bGw7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGxvYWRpbmcgPSBwYXJlbnQucXVlcnlTZWxlY3RvcignW2NsYXNzKj1za2VsZXRvbi1pdGVtXScp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsb2FkaW5nICYmIGxvYWRpbmcub2Zm\nc2V0UGFyZW50ICYmIGxvYWRpbmcub2Zmc2V0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHZhciBhY3R1YWxUb3AgPSBsb2FkaW5nLm9mZnNldFRvcDtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBsb2FkaW5nLm9mZnNldFBhcmVu\ndDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnQgIT09IG51\nbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbFRvcCArPSBj\ndXJyZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1\ncnJlbnQgPSBjdXJyZW50Lm9mZnNldFBhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRCb2R5KGRvYykuc2Ny\nb2xsVG9wID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jLmRvY3VtZW50\nRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs\nZXQgbWF4SGVpZ2h0ID0gTWF0aC5tYXgoZ2V0Qm9keShkb2MpLnNjcm9sbEhlaWdodCwgZG9jLmRv\nY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBnZXRCb2R5KGRvYykuc2Nyb2xsVG9wID0gYWN0dWFsVG9wIC0gMTA7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0gYWN0\ndWFsVG9wIC0gMTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VFbGVtZW50\nID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFnZUVsZW1lbnQgJiYgcGFnZUVsZW1lbnQubGVu\nZ3RoID09PSAxICYmIHBhZ2VFbGVtZW50WzBdLnN0eWxlLmRpc3BsYXkgPT09ICdub25lJykge1xu\nICAgICAgICAgICAgICAgIHBhZ2VFbGVtZW50ID0gW2JvZHldO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgaWYgKCh0aGlzLmN1clNpdGVSdWxlLnNtYXJ0IHx8ICF0aGlzLmN1clNpdGVSdWxl\nLnBhZ2VFbGVtZW50KSAmJiAoIXBhZ2VFbGVtZW50IHx8IHBhZ2VFbGVtZW50Lmxlbmd0aCA9PSAw\nKSAmJiBjdXJXaW4gJiYgIWRvbnRGaW5kKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFib2R5KSBy\nZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgYm9keUhlaWdodCA9IHBhcnNlSW50KGJv\nZHkub2Zmc2V0SGVpZ2h0IHx8IGJvZHkuc2Nyb2xsSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBs\nZXQgY3VySGVpZ2h0ID0gYm9keUhlaWdodCwgY3VyV2lkdGggPSAwO1xuICAgICAgICAgICAgICAg\nIGxldCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1l\nbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICBsZXQgd2luZG93V2lkdGgg\nPSB3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lk\ndGg7XG4gICAgICAgICAgICAgICAgbGV0IG5lZWRDaGVja05leHQgPSAoZG9jID09IGRvY3VtZW50\nICYmIHRoaXMuaW5pdE5leHQpLCBuZXh0TGVmdFBvcyA9IDA7XG4gICAgICAgICAgICAgICAgaWYg\nKG5lZWRDaGVja05leHQgJiYgdGhpcy5pbml0TmV4dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QpIHtc\nbiAgICAgICAgICAgICAgICAgICAgbmV4dExlZnRQb3MgPSB0aGlzLmluaXROZXh0LmdldEJvdW5k\naW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIGZ1bmN0aW9uIGNoZWNrRWxlbWVudChlbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNv\nbXBhcmVOb2RlTmFtZShlbGUsIFtcInByZVwiLCBcImNvZGVcIl0pKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBzZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50ID0gZ2VuZVNlbGVjdG9yKGVs\nZS5wYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKHNlbGYuY3VyU2l0\nZVJ1bGUucGFnZUVsZW1lbnQsICdQYWdlIGVsZW1lbnQnKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIHJldHVybiBbZWxlLnBhcmVudE5vZGVdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgIGlmIChlbGUuY2hpbGRyZW4gJiYgZWxlLmNoaWxkcmVuLmxlbmd0aCA9\nPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGhhc1RleHQgPSBmYWxzZTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gZWxlLmNoaWxkTm9kZXMpIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2hpbGQgPSBlbGUuY2hpbGROb2Rlc1tpXTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZVR5cGUgPT09IDMgJiYg\nY2hpbGQubm9kZVZhbHVlLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaGFzVGV4dCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzVGV4dCkge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIGVsZSA9IGVsZS5jaGlsZHJlblswXTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBsZXQgdmFsaWRTaXplID0gc2VsZi5nZXRWYWxpZFNpemUoZWxlLCBj\ndXJXaW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1ckhlaWdodCA9IHZhbGlkU2l6\nZS5oO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cldpZHRoID0gdmFsaWRTaXplLnc7\nXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVOb2RlTmFtZShlbGUsIFtcInBpY3R1cmVcIl0pIHx8\nICFlbGUuaW5uZXJUZXh0IHx8IGVsZS5pbm5lclRleHQudHJpbSgpID09PSAnJykge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgc2VsZi5jdXJTaXRlUnVsZS5wYWdlRWxlbWVudCA9IGdlbmVTZWxl\nY3RvcihlbGUucGFyZW50Tm9kZSkgKyBcIj5cIiArIGVsZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoc2VsZi5jdXJTaXRlUnVsZS5wYWdlRWxl\nbWVudCwgJ1BhZ2UgZWxlbWVudCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVsZXMg\nPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlLnBh\ncmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBsZXQgY3VyTm9kZSA9IGVsZS5wYXJlbnROb2RlLmNoaWxkcmVuW2ldO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChjdXJOb2RlLm5vZGVOYW1lID09PSBlbGUubm9kZU5hbWUg\nJiYgY3VyTm9kZS5pZCA9PT0gZWxlLmlkICYmIGN1ck5vZGUuY2xhc3NOYW1lID09PSBlbGUuY2xh\nc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZXMucHVzaChjdXJO\nb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWxlcztcbiAgICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFyZU5vZGVOYW1lKGVsZSwg\nW1wiZm9ybVwiXSkgJiYgZWxlLnBhcmVudE5vZGUgIT09IGdldEJvZHkoZG9jdW1lbnQpKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50ID0gZ2Vu\nZVNlbGVjdG9yKGVsZSkgKyBcIj4qXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Zyhz\nZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50LCAnUGFnZSBlbGVtZW50Jyk7XG4gICAgICAgICAg\nICAgICAgICAgICAgICByZXR1cm4gZWxlLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGUuY2hpbGRyZW4ubGVuZ3RoID09PSAwICYmICFz\nZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBp\nZiAoY29tcGFyZU5vZGVOYW1lKGVsZS5wYXJlbnROb2RlLCBbXCJwXCJdKSkgZWxlID0gZWxlLnBh\ncmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1clNpdGVSdWxlLnBhZ2VF\nbGVtZW50ID0gZ2VuZVNlbGVjdG9yKGVsZS5wYXJlbnROb2RlKSArIFwiPlwiICsgZWxlLm5vZGVO\nYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhzZWxmLmN1\nclNpdGVSdWxlLnBhZ2VFbGVtZW50LCAnUGFnZSBlbGVtZW50Jyk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICByZXR1cm4gZ2V0QWxsRWxlbWVudHMoc2VsZi5jdXJTaXRlUnVsZS5wYWdlRWxlbWVu\ndCwgZG9jKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsZXQg\naSwgbWluSGVpZ2h0ID0gY3VySGVpZ2h0ICogMC41MiwgY3VyTWF4RWxlID0gbnVsbCwgY3VyTWF4\nQXJlYSA9IDAsIG1pbldpZHRoID0gTWF0aC5taW4oY3VyV2lkdGggKiAwLjM4LCA1MDApO1xuICAg\nICAgICAgICAgICAgICAgICBsZXQgaXNIb3JpLCBwcmVPZmZzZXRUb3AgPSAtMTtcbiAgICAgICAg\nICAgICAgICAgICAgbGV0IGFydGljbGVOdW0gPSAwO1xuICAgICAgICAgICAgICAgICAgICBmb3Ig\nKGkgPSAwOyBpIDwgZWxlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBsZXQgY3VyTm9kZSA9IGVsZS5jaGlsZHJlbltpXTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmIChlbGUgIT09IGJvZHkgJiYgZWxlLnBhcmVudE5vZGUgIT09IGJvZHkgJiYgXC9e\nSFxcZCRcL2kudGVzdChjdXJOb2RlLm5vZGVOYW1lKSAmJiBjdXJOb2RlLm9mZnNldFBhcmVudCAm\nJiBjdXJOb2RlLm9mZnNldEhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1\nck1heEVsZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFy\nZU5vZGVOYW1lKGN1ck5vZGUsIFtcImNhbnZhc1wiLCBcIm5hdlwiXSkpIGNvbnRpbnVlO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgaWYgKGN1ck5vZGUucm9sZSA9PT0gXCJtZW51XCIpIGNvbnRp\nbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1clN0eWxlID0gY3VyV2luLmdldENv\nbXB1dGVkU3R5bGUoY3VyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyU3R5\nbGUub3BhY2l0eSA9PT0gXCIwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250\naW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmICghY3VyTm9kZS5vZmZzZXRQYXJlbnQgJiYgY3VyU3R5bGUuZGlzcGxheSAhPT0gXCJjb250\nZW50c1wiICYmIGN1clN0eWxlLnBvc2l0aW9uICE9PSBcImZpeGVkXCIpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICAgICAgICAgIGlmICghY29tcGFyZU5vZGVOYW1lKGN1ck5vZGUsIFtcImlt\nZ1wiXSkgJiYgY3VyTm9kZS5xdWVyeVNlbGVjdG9yKCdpbWcnKSA9PT0gbnVsbCAmJiBcL15cXHMq\nJFwvLnRlc3QoY3VyTm9kZS5pbm5lclRleHQpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmIChuZWVkQ2hlY2tOZXh0ICYmICFjdXJOb2RlLmNvbnRhaW5zKHNlbGYuaW5pdE5l\neHQpICYmIGdldEVsZW1lbnRUb3AoY3VyTm9kZSkgPiB3aW5kb3dIZWlnaHQpIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUoY3VyTm9kZSwgW1wi\nYXJ0aWNsZVwiXSkpIGFydGljbGVOdW0rKztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2\nYWxpZFNpemUgPSBzZWxmLmdldFZhbGlkU2l6ZShjdXJOb2RlLCBjdXJXaW4pO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgbGV0IGggPSB2YWxpZFNpemUuaDtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGxldCB3ID0gdmFsaWRTaXplLnc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNO\nYU4oaCkgfHwgaXNOYU4odykgfHwgIWggfHwgIXcpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgbGV0IGVsZW1lbnRTaWJsaW5nID0gY3VyTm9kZS5uZXh0RWxlbWVudFNpYmxpbmcg\nfHwgY3VyTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgaXNIb3JpID0gTWF0aC5hYnMocHJlT2Zmc2V0VG9wIC0gY3VyTm9kZS5vZmZzZXRUb3ApIDw9\nIDIwID8gdHJ1ZSA6IChwcmVPZmZzZXRUb3AgPT09IC0xICYmIGVsZW1lbnRTaWJsaW5nICYmIGVs\nZW1lbnRTaWJsaW5nLm9mZnNldFRvcCA9PT0gY3VyTm9kZS5vZmZzZXRUb3ApO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgaWYgKGlzSG9yaSAmJiBoIDw9IDUwKSBjb250aW51ZTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIFwvKmlmIChpc0hvcmkgJiYgbmV4dExlZnRQb3MgJiYgY3VyTWF4RWxl\nICYmIGN1cldpZHRoID4gNTAwICYmIGN1ckhlaWdodCA+IDUwMCkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGxldCBjdXJSZWN0ID0gY3VyTm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3Qo\nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyUmVjdC5sZWZ0ID4gd2luZG93\nV2lkdGg+PjIgJiYgY3VyUmVjdC5sZWZ0IDw9IG5leHRMZWZ0UG9zICYmIGN1clJlY3QucmlnaHQg\nPiBuZXh0TGVmdFBvcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51\nZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAg\nICB9KlwvXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYSA9IGggKiB3LCBtb3JlQ2hpbGQg\nPSBjdXJOb2RlLmNoaWxkcmVuWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG1v\ncmVDaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWxpZFNpemUgPSBz\nZWxmLmdldFZhbGlkU2l6ZShtb3JlQ2hpbGQsIGN1cldpbik7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgbGV0IGNoID0gdmFsaWRTaXplLmg7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgbGV0IGN3ID0gdmFsaWRTaXplLnc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKGggPCBjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoID0gY2g7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChtb3JlQ2hpbGQuaW5uZXJUZXh0ICE9PSBcIlwiICYmIGNoICYmIGN3KSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIGEgKz0gY2ggKiBjdztcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZUNoaWxkID0gbW9yZUNo\naWxkLm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgICAgIGxldCBpc01heCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGlzSG9yaSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJN\nYXhFbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHcgPiBjdXJXaWR0\naCAmJiAod2luZG93V2lkdGg+PjEpID4gY3VyV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGlzTWF4ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgfSBlbHNlIGlmICh3ICsgMzAwID4gY3VyV2lkdGggJiYgYSA+IGN1ck1heEFyZWEpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTWF4ID0gdHJ1ZTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKGN1ck1heEVsZSAmJiBjdXJNYXhFbGUub2Zmc2V0UGFyZW50ID09PSBjdXJO\nb2RlLm9mZnNldFBhcmVudCAmJiBjdXJNYXhFbGUub2Zmc2V0VG9wID09PSBjdXJOb2RlLm9mZnNl\ndFRvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VyTWF4QXJlYSAq\nIDIgPiBhKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgaXNNYXggPSBjdXJNYXhBcmVhIDwgYTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJNYXhFbGUgPT09\nIG51bGwgfHwgaXNNYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNIb3Jp\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3IDwgbWluV2lkdGgpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoIDwgbWluSGVpZ2h0KSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmVlZENoZWNrTmV4dCB8fCBoIDwgKG1pbkhl\naWdodD4+MSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGlmICghZWxlLmNvbnRhaW5zKHNlbGYuaW5pdE5leHQpKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgfSBlbHNlIGlmICghY3VyTm9kZS5jb250YWlucyhzZWxmLmluaXROZXh0\nKSAmJiBoIDwgY3VySGVpZ2h0ID4+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1\nckhlaWdodCA9IGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyTWF4QXJlYSA9IGE7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyV2lkdGggPSB3O1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGN1ck1heEVsZSA9IGN1ck5vZGU7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgcHJlT2Zmc2V0VG9wID0gY3VyTm9kZS5vZmZzZXRUb3A7XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nbGV0IGN1ckhlaWdodFBlcmNlbnQgPSBjdXJIZWlnaHQgXC8gYm9keUhlaWdodDtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKGN1ck1heEVsZSAmJiBjdXJIZWlnaHRQZXJjZW50IDw9IDAuMTgpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcnRpY2xlO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYWluU2VsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgYXJ0aWNsZSA9IGRvYy5xdWVyeVNlbGVjdG9yQWxsKG1haW5T\nZWxbaV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcnRpY2xlICYmIGFydGlj\nbGUubGVuZ3RoID09PSAxKSBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChhcnRpY2xlICYmIGFydGljbGUubGVuZ3RoID09PSAxKSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJ0aWNsZSA9IGFydGljbGVbMF07XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuRW5kID0gc2VsZi5jaGVja1Rhcmdl\ndENoaWxkcmVuKGFydGljbGUsIGN1cldpbiwgYXJ0aWNsZU51bSwgY3VySGVpZ2h0KTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50ID0gYXJ0\naWNsZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICsgKGFydGljbGUuaWQgPyBcIiNcIiArIGFydGlj\nbGUuaWQgOiBcIlwiKSArIChhcnRpY2xlLmNsYXNzTmFtZSA\/IFwiLlwiICsgYXJ0aWNsZS5jbGFz\nc05hbWUucmVwbGFjZShcLyBcL2csIFwiLlwiKSA6IFwiXCIpICsgY2hpbGRyZW5FbmQ7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoc2VsZi5jdXJTaXRlUnVsZS5wYWdlRWxlbWVu\ndCwgJ1BhZ2UgZWxlbWVudCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj\naGlsZHJlbkVuZCA\/IGFydGljbGUuY2hpbGRyZW4gOiBbYXJ0aWNsZV07XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJNYXhFbGUgPSBudWxsO1xu\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJNYXhFbGUg\nJiYgKCFjb21wYXJlTm9kZU5hbWUoY3VyTWF4RWxlLCBbXCJ1bFwiXSkgfHwgY3VySGVpZ2h0UGVy\nY2VudCA+IDAuOCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzYW1lQ2xhc3NOdW0g\nPSAwLCBoYXNEaWZmZXJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj\ndXJNYXhFbGUuY2xhc3NOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGkg\nPSAwOyBpIDwgZWxlLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGxldCBjdXJOb2RlID0gZWxlLmNoaWxkcmVuW2ldO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBpZiAoY3VyTWF4RWxlICE9PSBjdXJOb2RlICYmIGN1ck5vZGUu\nc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnICYmIGN1ck1heEVsZS5jbGFzc05hbWUgPT09IGN1ck5v\nZGUuY2xhc3NOYW1lICYmIGN1ck1heEVsZS5ub2RlTmFtZSA9PT0gY3VyTm9kZS5ub2RlTmFtZSl7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1lQ2xhc3NOdW0rKztcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJNYXhFbGUuY2xhc3NO\nYW1lICE9PSBjdXJOb2RlLmNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaGFzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzYW1lQ2xhc3NOdW0gPCAyIHx8\nIChzYW1lQ2xhc3NOdW0gPCA1ICYmIGhhc0RpZmZlcmVudCkpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICByZXR1cm4gY2hlY2tFbGVtZW50KGN1ck1heEVsZSk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\naWYgKGVsZS5ub2RlTmFtZSA9PT0gXCJBUFAtUk9PVFwiKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBpc1BhdXNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKGVsZSwg\nXCJBbmd1bGFyIHJvb3RcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY29tcGFy\nZU5vZGVOYW1lKGVsZSwgW1wicFwiLCBcImJyXCIsIFwidGRcIl0pKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBlbGUgPSBlbGUucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFyZU5vZGVOYW1lKGVsZSwgW1widGJvZHlcIl0p\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50\nID0gZ2VuZVNlbGVjdG9yKGVsZSkgKyBcIj4qXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBp\nZiAoZWxlLmNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgZWxlLmNoaWxkcmVuWzBdLnF1ZXJ5U2VsZWN0\nb3IoXCJ0aFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VyU2l0ZVJ1\nbGUucGFnZUVsZW1lbnQgKz0gXCI6bm90KDpmaXJzdC1jaGlsZClcIjtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKHNlbGYuY3VyU2l0ZVJ1\nbGUucGFnZUVsZW1lbnQsICdQYWdlIGVsZW1lbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHJldHVybiBlbGUuY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgbGV0IGltZ3MgPSBlbGUucXVlcnlTZWxlY3RvckFsbCgnaW1nJyk7XG4gICAgICAg\nICAgICAgICAgICAgIGlmIChpbWdzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgbGV0IGltZyA9IGltZ3NbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1n\nLm9mZnNldFdpZHRoID4gZWxlLm9mZnNldFdpZHRoIFwvIDMgKiAyICYmIGltZy5vZmZzZXRIZWln\naHQgPiBlbGUub2Zmc2V0SGVpZ2h0IFwvIDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBlbGUgPSBpbWc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuRW5kID0gc2VsZi5jaGVja1Rh\ncmdldENoaWxkcmVuKGVsZSwgY3VyV2luLCBhcnRpY2xlTnVtLCBjdXJIZWlnaHQpO1xuICAgICAg\nICAgICAgICAgICAgICBpZiAoY2hpbGRyZW5FbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHNlbGYuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnQgPSBnZW5lU2VsZWN0b3IoZWxlKSArIGNoaWxk\ncmVuRW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlID0gZWxlLmNoaWxkcmVuO1xuICAg\nICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVs\nZS5zY3JvbGxIZWlnaHQgPT09IDAgJiYgZWxlLnBhcmVudE5vZGUuY2hpbGRyZW4ubGVuZ3RoID09\nPSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlID0gZWxlLnBhcmVudE5vZGU7\nXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxm\nLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50ID0gZ2VuZVNlbGVjdG9yKGVsZSk7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBlbGUgPSBbZWxlXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICBkZWJ1ZyhzZWxmLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50LCAnUGFnZSBl\nbGVtZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGU7XG4gICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIHBhZ2VFbGVtZW50ID0gY2hlY2tFbGVtZW50KGJvZHkpO1xu\nICAgICAgICAgICAgICAgIGlmIChkb2MgPT09IGRvY3VtZW50ICYmIHBhZ2VFbGVtZW50ICYmIHBh\nZ2VFbGVtZW50Lmxlbmd0aCA+IDAgJiYgc2VsZi5pbml0TmV4dCkge1xuICAgICAgICAgICAgICAg\nICAgICBsZXQgcG9zRWxlID0gcGFnZUVsZW1lbnRbcGFnZUVsZW1lbnQubGVuZ3RoIC0gMV07XG4g\nICAgICAgICAgICAgICAgICAgIHdoaWxlIChwb3NFbGUgJiYgIXBvc0VsZS5vZmZzZXRQYXJlbnQp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc0VsZSA9IHBvc0VsZS5wcmV2aW91c0VsZW1l\nbnRTaWJsaW5nIHx8IHBvc0VsZS5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgIGlmIChwb3NFbGUgJiYgcG9zRWxlLmxhc3RFbGVtZW50Q2hpbGQp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3NFbGUuc2Nyb2xsSGVpZ2h0ID09PSAw\nKSBwb3NFbGUgPSBwb3NFbGUubGFzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGVsc2UgaWYgKHBvc0VsZS5sYXN0RWxlbWVudENoaWxkLm9mZnNldFRvcCA+IDUwMCkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc0VsZSA9IHBvc0VsZS5sYXN0RWxlbWVudENo\naWxkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgIGxldCBsYXN0Qm90dG9tID0gZm9yY2VTdGF0ZSAhPT0gMiAmJiBm\nb3JjZVN0YXRlICE9PSAzICYmIHBvc0VsZSAmJiBnZXRFbGVtZW50Qm90dG9tKHBvc0VsZSk7XG4g\nICAgICAgICAgICAgICAgICAgIGlmIChsYXN0Qm90dG9tICYmIGdldEVsZW1lbnRUb3Aoc2VsZi5p\nbml0TmV4dCkgLSBsYXN0Qm90dG9tID4gMTAwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nZGVidWcoXCJTdG9wIGFzIHRvbyBsb25nIGJldHdlZW4gbmV4dCAmIHBhZ2UgZWxlbWVudCwgdHJ5\nIHRvIGVuYWJsZSBGb3JjZS1Kb2luIG1vZGUuXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAg\naXNQYXVzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlRWxlbWVudCA9IFtd\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXIucmVtb3ZlKCk7XG4gICAg\nICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFn\nZUVsZW1lbnQubGVuZ3RoID09PSAxICYmIGNvbXBhcmVOb2RlTmFtZShwYWdlRWxlbWVudFswXSwg\nW1wiaW1nXCJdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VyU2l0ZVJ1\nbGUucGFnZUJhciA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXC9cL2lmKHBhZ2VF\nbGVtZW50KXRoaXMuc2F2ZUN1clNpdGVSdWxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nICBpZiAodGhpcy5pbnNlcnQgJiYgdGhpcy5jdXJTaXRlUnVsZS5zbWFydCAmJiBwYWdlRWxlbWVu\ndCAmJiBwYWdlRWxlbWVudC5sZW5ndGggPiAwICYmIGNvbXBhcmVOb2RlTmFtZSh0aGlzLmluc2Vy\ndC5wYXJlbnROb2RlLCBbXCJ0Ym9keVwiLCBcInRhYmxlXCJdKSkge1xuICAgICAgICAgICAgICAg\nIGxldCBtYWluVHIgPSB0aGlzLmluc2VydC5wYXJlbnROb2RlLmxhc3RFbGVtZW50Q2hpbGQsIG1h\naW5UZE51bSA9IDAsIG5ld1RkTnVtID0gMDtcbiAgICAgICAgICAgICAgICB3aGlsZSAobWFpblRy\nICYmICFjb21wYXJlTm9kZU5hbWUobWFpblRyLCBbXCJ0clwiXSkpIHtcbiAgICAgICAgICAgICAg\nICAgICAgaWYgKCFtYWluVHIucHJldmlvdXNFbGVtZW50U2libGluZykgYnJlYWs7XG4gICAgICAg\nICAgICAgICAgICAgIG1haW5UciA9IG1haW5Uci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobWFpblRyKSB7XG4gICAgICAgICAg\nICAgICAgICAgIFtdLmZvckVhY2guY2FsbChtYWluVHIuY2hpbGRyZW4sIGVsID0+IHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUoZWwsIFtcInRkXCIsIFwidGhc\nIl0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpblRkTnVtICs9IGVsLmNvbFNw\nYW4gfHwgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUocGFnZUVsZW1lbnRb\nMF0sIFtcInRyXCJdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxs\nKHBhZ2VFbGVtZW50WzBdLmNoaWxkcmVuLCBlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGNvbXBhcmVOb2RlTmFtZShlbCwgW1widGRcIiwgXCJ0aFwiXSkpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3VGROdW0gKz0gZWwuY29sU3BhbiB8fCAxO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0p\nO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYWluVGRO\ndW0gIT09IG5ld1RkTnVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1clNpdGVS\ndWxlLnBhZ2VFbGVtZW50ID0gdGhpcy5jdXJTaXRlUnVsZS5wYWdlRWxlbWVudC5yZXBsYWNlKFwv\nPiAqdGFibGUuKlwvLCBcIj50YWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu\nZ2V0SW5zZXJ0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0\nUGFnZUVsZW1lbnQoZG9jLCBjdXJXaW4sIGRvbnRGaW5kKTtcbiAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRv\nYyAhPT0gZG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VFbGVtZW50Q3Nz\nKHBhZ2VFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhenlJbWdBY3Rpb24ocGFnZUVs\nZW1lbnQsIGRvYyk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJFbGVzKGRvYywgcGFnZUVs\nZW1lbnQpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5kb2NQYWdlRWxlbWVudCkge1xu\nICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZUVsZW1lbnRDc3MocGFnZUVsZW1lbnQsIHRydWUp\nO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jUGFnZUVsZW1lbnQgPSBwYWdlRWxlbWVudDtcbiAg\nICAgICAgICAgICAgICB0aGlzLmZpbHRlckVsZXMoZG9jLCBwYWdlRWxlbWVudCk7XG4gICAgICAg\nICAgICAgICAgaWYgKHRoaXMubmV4dExpbmtIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHRo\naXMub3BlbkluTmV3VGFiKHBhZ2VFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGFnZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAg\nICAgICBzaG93QWRkZWRFbGVtZW50cygpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hZGRlZEVs\nZW1lbnRzSXNIaWRlKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodGhpcy5hZGRlZEVsZVBvb2wg\nJiYgdGhpcy5hZGRlZEVsZVBvb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRl\nZEVsZVBvb2wuZm9yRWFjaChlbGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbGUuY2xhc3NM\naXN0ICYmIGVsZS5jbGFzc0xpc3QucmVtb3ZlKFwicGFnZXR1YWwtaGlkZVwiKTtcbiAgICAgICAg\nICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWRkZWRFbGVtZW50\nc0lzSGlkZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaGlkZUFkZGVkRWxlbWVudHMo\nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hZGRlZEVsZVBvb2wgJiYgdGhpcy5hZGRlZEVsZVBv\nb2wubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRlZEVsZVBvb2wuZm9yRWFjaChl\nbGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbGUuY2xhc3NMaXN0ICYmIGVsZS5jbGFzc0xp\nc3QuYWRkKFwicGFnZXR1YWwtaGlkZVwiKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWRkZWRFbGVtZW50c0lzSGlkZSA9IHRydWU7XG4gICAg\nICAgIH1cblxuICAgICAgICB0b2dnbGVBZGRlZEVsZW1lbnRzKCkge1xuICAgICAgICAgICAgaWYg\nKHRoaXMuYWRkZWRFbGVtZW50c0lzSGlkZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Fk\nZGVkRWxlbWVudHMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhp\ncy5oaWRlQWRkZWRFbGVtZW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAg\nICAgY2hhbmdlVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgICAgIGxldCBjb250ZW50VmlzaWJpbGl0\neSA9IHRoaXMuY3VyU2l0ZVJ1bGUuY29udGVudFZpc2liaWxpdHkgfHwgcnVsZXNEYXRhLmNvbnRl\nbnRWaXNpYmlsaXR5O1xuICAgICAgICAgICAgaWYgKCFjb250ZW50VmlzaWJpbGl0eSkgcmV0dXJu\nO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmNoYW5naW5nVmlzaWJpbGl0eSkge1xuICAgICAgICAg\nICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNoYW5nZVZpc2liaWxpdHlUaW1lcik7XG4gICAgICAg\nICAgICAgICAgdGhpcy5jaGFuZ2VWaXNpYmlsaXR5VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtc\nbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2luZ1Zpc2liaWxpdHkgPSB0cnVlO1xuICAg\nICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZpc2liaWxpdHkoKTtcbiAgICAgICAgICAgICAg\nICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgIHRoaXMuY2hhbmdpbmdWaXNpYmlsaXR5ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAo\nIXRoaXMudmlzaWJpbGl0eUl0ZW1zIHx8ICF0aGlzLnZpc2liaWxpdHlJdGVtcy5sZW5ndGggfHwg\ndGhpcy52aXNpYmxlSW5kZXggPCAwKSByZXR1cm47XG4gICAgICAgICAgICBsZXQgdGVtcEluZGV4\nID0gdGhpcy52aXNpYmxlSW5kZXgsIGZpbmRWaXNpYmxlID0gZmFsc2UsIGxhc3RWaXNpYmxlID0g\nMDtcbiAgICAgICAgICAgIGxldCB2aWV3UG9ydEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8\nfCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IGdldEJvZHkoZG9jdW1l\nbnQpLmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGxldCBjaGVja0l0ZW0gPSB0aGlzLnZpc2li\naWxpdHlJdGVtc1t0ZW1wSW5kZXhdO1xuICAgICAgICAgICAgd2hpbGUoY2hlY2tJdGVtKSB7XG4g\nICAgICAgICAgICAgICAgaWYgKGNoZWNrSXRlbS5vZmZzZXRQYXJlbnQpIHtcbiAgICAgICAgICAg\nICAgICAgICAgaWYgKCFjaGVja0l0ZW0uc3R5bGUuY29udGFpbkludHJpbnNpY1NpemUpIHJldHVy\nbjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNsaWVudFJlY3QgPSBjaGVja0l0ZW0uZ2V0Qm91\nbmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0b3AgPSBjbGllbnRS\nZWN0ICYmIGNsaWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYm90dG9tID0g\nY2xpZW50UmVjdCAmJiBjbGllbnRSZWN0LmJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgaWYg\nKGJvdHRvbSA+IDAgJiYgdG9wIDwgdmlld1BvcnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmICghZmluZFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBm\naW5kVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFZpc2li\nbGUgPSB0ZW1wSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICAgICAgICBjaGVja0l0ZW0uc3R5bGUuY29udGVudFZpc2liaWxpdHkgPSBcInZpc2libGVc\nIjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmICh0b3AgPCB2aWV3UG9ydEhlaWdodCAmJiBjaGVja0l0ZW0uc3R5bGUuY29udGVudFZpc2li\naWxpdHkgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7\nXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgY2hlY2tJdGVtLnN0eWxlLmNvbnRlbnRW\naXNpYmlsaXR5ID0gXCJhdXRvXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRlbXBJbmRleCA9PT0gMCkgYnJlYWs7XG4gICAg\nICAgICAgICAgICAgdGVtcEluZGV4LS07XG4gICAgICAgICAgICAgICAgY2hlY2tJdGVtID0gdGhp\ncy52aXNpYmlsaXR5SXRlbXNbdGVtcEluZGV4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIHRlbXBJbmRleCA9IHRoaXMudmlzaWJsZUluZGV4ICsgMTtcbiAgICAgICAgICAgIGlmIChmaW5k\nVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUluZGV4ID0gbGFzdFZpc2li\nbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjaGVja0l0ZW0gPSB0aGlzLnZpc2liaWxp\ndHlJdGVtc1t0ZW1wSW5kZXhdO1xuICAgICAgICAgICAgd2hpbGUoY2hlY2tJdGVtKSB7XG4gICAg\nICAgICAgICAgICAgaWYgKGNoZWNrSXRlbS5vZmZzZXRQYXJlbnQpIHtcbiAgICAgICAgICAgICAg\nICAgICAgaWYgKCFjaGVja0l0ZW0uc3R5bGUuY29udGFpbkludHJpbnNpY1NpemUpIHJldHVybjtc\nbiAgICAgICAgICAgICAgICAgICAgbGV0IGNsaWVudFJlY3QgPSBjaGVja0l0ZW0uZ2V0Qm91bmRp\nbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0b3AgPSBjbGllbnRSZWN0\nICYmIGNsaWVudFJlY3QudG9wO1xuICAgICAgICAgICAgICAgICAgICBsZXQgYm90dG9tID0gY2xp\nZW50UmVjdCAmJiBjbGllbnRSZWN0LmJvdHRvbTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJv\ndHRvbSA+IDAgJiYgdG9wIDwgdmlld1BvcnRIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGZpbmRWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RWaXNp\nYmxlID0gdGVtcEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tJdGVtLnN0eWxl\nLmNvbnRlbnRWaXNpYmlsaXR5ID0gXCJ2aXNpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmluZFZpc2libGUgJiYgY2hlY2tJ\ndGVtLnN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5ID09PSBcImF1dG9cIikge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGNo\nZWNrSXRlbS5zdHlsZS5jb250ZW50VmlzaWJpbGl0eSA9IFwiYXV0b1wiO1xuICAgICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0ZW1wSW5k\nZXggPT09IHRoaXMudmlzaWJpbGl0eUl0ZW1zLmxlbmd0aCAtIDEpIGJyZWFrO1xuICAgICAgICAg\nICAgICAgIHRlbXBJbmRleCsrO1xuICAgICAgICAgICAgICAgIGNoZWNrSXRlbSA9IHRoaXMudmlz\naWJpbGl0eUl0ZW1zW3RlbXBJbmRleF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAo\nZmluZFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVJbmRleCA9IGxhc3RW\naXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UGFnZUVsZW1l\nbnRDc3MocGFnZUVsZW1lbnQsIGluaXQpIHtcbiAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcztc\nbiAgICAgICAgICAgIGlmIChwYWdlRWxlbWVudCAmJiBwYWdlRWxlbWVudC5sZW5ndGggPiAwKSB7\nXG4gICAgICAgICAgICAgICAgbGV0IHBhZ2VFbGVtZW50Q3NzID0gdGhpcy5jdXJTaXRlUnVsZS5w\nYWdlRWxlbWVudENzcyB8fCBydWxlc0RhdGEucGFnZUVsZW1lbnRDc3M7XG4gICAgICAgICAgICAg\nICAgaWYgKCFwYWdlRWxlbWVudENzcyAmJiBpbml0ICYmICF0aGlzLm5leHRMaW5rSHJlZikgcmV0\ndXJuO1xuICAgICAgICAgICAgICAgIGxldCBjb250ZW50VmlzaWJpbGl0eSA9IHRoaXMuY3VyU2l0\nZVJ1bGUuY29udGVudFZpc2liaWxpdHkgfHwgcnVsZXNEYXRhLmNvbnRlbnRWaXNpYmlsaXR5O1xu\nICAgICAgICAgICAgICAgIGlmICghY29udGVudFZpc2liaWxpdHkgJiYgIXBhZ2VFbGVtZW50Q3Nz\nKSByZXR1cm47XG4gICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKHBhZ2VFbGVtZW50LCAo\nZWxlLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29tcGFyZU5vZGVOYW1lKGVs\nZSwgW1wibGlua1wiLCBcIm1ldGFcIiwgXCJzdHlsZVwiLCBcInNjcmlwdFwiLCBcInRpdGxlXCJd\nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VFbGVtZW50Q3NzKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VFbGVtZW50Q3NzICE9PSAnMCcgJiYgIWVs\nZS5kYXRhc2V0LnBhZ2V0dWFsUGFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZWxlLnN0eWxlLmNzc1RleHQgPSAoZWxlLnN0eWxlLmNzc1RleHQgfHwgJycpICsg\ncGFnZUVsZW1lbnRDc3M7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZS5kYXRh\nc2V0LnBhZ2V0dWFsUGFnZUVsZW1lbnQgPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChjb250ZW50VmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZS5z\ndHlsZS5jb250YWluSW50cmluc2ljU2l6ZSA9IGBhdXRvICR7ZWxlLm9mZnNldEhlaWdodCB8fCBz\nZWxmLnByZVZpc2libGVIZWlnaHQgfHwgMTAwfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBpZiAoZWxlLnN0eWxlLmNvbnRhaW5JbnRyaW5zaWNTaXplKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChlbGUub2Zmc2V0SGVpZ2h0KSBzZWxmLnByZVZpc2libGVI\nZWlnaHQgPSBlbGUub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBpZiAoaW5pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlLnN0\neWxlLmNvbnRlbnRWaXNpYmlsaXR5ID0gXCJ2aXNpYmxlXCI7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBzZWxmLnZpc2liaWxpdHlJdGVtcy5wdXNoKGVsZSk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZpc2libGVJbmRleCsrO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgZWxlLnN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5ID0gZW11SWZyYW1lID8g\nXCJ2aXNpYmxlXCIgOiBcImF1dG9cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAg\nICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY2xlYXJBZGRlZEVsZW1lbnRzKCkge1xuICAgICAg\nICAgICAgaWYgKHRoaXMuYWRkZWRFbGVQb29sICYmIHRoaXMuYWRkZWRFbGVQb29sLmxlbmd0aCkg\ne1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkZWRFbGVQb29sLmZvckVhY2goZWxlID0+IHtcbiAg\nICAgICAgICAgICAgICAgICAgaWYgKGVsZS5wYXJlbnROb2RlKSBlbGUucGFyZW50Tm9kZS5yZW1v\ndmVDaGlsZChlbGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgdGhpcy5hZGRlZEVsZVBvb2wgPSBbXTtcbiAgICAgICAgICAgIHNpZGVDb250cm9sbGVy\nLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGlua0hhc0hyZWYobGluaykge1xuICAg\nICAgICAgICAgcmV0dXJuIGxpbmsgJiYgbGluay5ocmVmICYmIGxpbmsuaHJlZi5yZXBsYWNlICYm\nICF0aGlzLmhyZWZJc0pzKGxpbmsuaHJlZik7XG4gICAgICAgIH1cblxuICAgICAgICBocmVmSXNK\ncyhocmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gXC9eKGphdmFzY3JpcHR8I3wkKVwvLnRlc3Qo\naHJlZi50cmltKCkucmVwbGFjZShcIiNwe1wiLCBcIlwiKS5yZXBsYWNlKGxvY2F0aW9uLmhyZWYs\nIFwiXCIpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFzeW5jIHF1ZXJ5U2VsZWN0b3JMaXN0KHNv\ndXJjZSwgbGlzdCwgZGVmYXVsdFZpZXcpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp\nIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDEpO1xu\nICAgICAgICAgICAgICAgIGxldCBzZWwgPSBsaXN0W2ldO1xuICAgICAgICAgICAgICAgIGxldCBy\nZXN1bHQgPSBnZXRBbGxFbGVtZW50cyhzZWwsIHNvdXJjZSk7XG4gICAgICAgICAgICAgICAgaWYg\nKHJlc3VsdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBy\nZXN1bHQubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGxldCBlbGUgPSByZXN1bHRbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldlJl\nZy50ZXN0KGVsZS5pbm5lclRleHQpKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmICghZGVmYXVsdFZpZXcgfHwgaXNWaXNpYmxlKGVsZSwgZGVmYXVsdFZpZXcpKSByZXR1cm4g\nZWxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBy\nZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdmVyaWZ5\nRWxlbWVudChlbGUpIHtcbiAgICAgICAgICAgIGxldCB2ZXJpZnlIYW5kbGVyID0gZSA9PiB7XG4g\nICAgICAgICAgICAgICAgaWYgKGUubm9kZVR5cGUgPT0gOSkgcmV0dXJuIHRydWU7XG4gICAgICAg\nICAgICAgICAgaWYgKGUuc3R5bGUuZGlzcGxheSA9PT0gXCJub25lXCIgfHwgZS5nZXRBdHRyaWJ1\ndGUoXCJhcmlhLWRpc2FibGVkXCIpID09PSBcInRydWVcIikge1xuICAgICAgICAgICAgICAgICAg\nICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChc\nL1xcYmJhbm5lcnxzbGlja3xzbGlkZXxjYXJvdXNlbHxnYWxsZXJ5XC9pLnRlc3QoZS5pZCkpIHJl\ndHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoZS5jbGFzc05hbWUpIHtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKCFcL3BhZ2VcL2kudGVzdChlLmNsYXNzTmFtZSkgJiYgXC9cXGJiYW5u\nZXJ8c2xpY2t8c2xpZGV8Y2Fyb3VzZWx8Z2FsbGVyeXxkaXNhYmxlZFxccyokXC9pLnRlc3QoZS5j\nbGFzc05hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAg\nICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChlLmNsYXNzTGlzdC5jb250YWlucygnZGlzYWJsZWQnKSB8fCBlLmNsYXNz\nTGlzdC5jb250YWlucygnYWN0aXZlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBy\nZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGFyaWFMYWJlbCA9\nIGUuZ2V0QXR0cmlidXRlKFwiYXJpYS1sYWJlbFwiKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJp\nYUxhYmVsICYmIFwvXFxiYmFubmVyfHNsaWNrfHNsaWRlfGNhcm91c2VsfGdhbGxlcnlcL2kudGVz\ndChhcmlhTGFiZWwpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7\nXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKCFlbGUpIHJldHVybiBmYWxzZTtcbiAg\nICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgIHdoaWxlIChlbGUgJiYgaSsrIDwgNikg\ne1xuICAgICAgICAgICAgICAgIGlmICghdmVyaWZ5SGFuZGxlcihlbGUpKSByZXR1cm4gZmFsc2U7\nXG4gICAgICAgICAgICAgICAgZWxlID0gZWxlLnBhcmVudE5vZGU7XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFzeW5jIGdldFBh\nZ2UoZG9jLCBleGlzdCkge1xuICAgICAgICAgICAgbGV0IGJvZHkgPSBnZXRCb2R5KGRvYyk7XG4g\nICAgICAgICAgICBsZXQgY2FuU2F2ZSA9IGZhbHNlO1wvXC\/nmbznj77poIHnorzpgbjmk4flmajl\nnKjlhbbku5bpoIHlsI3kuI3kuIrvvIzpgoTmmK\/liKXkv53lrZjkuoZcbiAgICAgICAgICAgIGxl\ndCB1cmwgPSB0aGlzLmN1clVybC5zbGljZSgwLCAyNTApLnJlcGxhY2UoXCJpbmRleC5waHA\/XCIs\nIFwiP1wiKTtcbiAgICAgICAgICAgIGxldCBfdXJsID0gdXJsLnJlcGxhY2UoXC9cXC5zP2h0bWw\/\nJFwvaSwgXCJcIikudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGxldCBwYWdlTnVtID0gMSwg\ncHJlU3RyID0gXCJcIiwgYWZ0ZXJTdHIgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IHBhZ2VUd29S\nZWcgPSBcL15bXFxcL1xcPyZdP1tfLV0\/KHB8cGFnZSk\/PT9cXFwvPzIoXFxcL1teXFxcL10qJHxc\nXD98JnwkKVwvaTtcbiAgICAgICAgICAgIGxldCBwYWdlTWF0Y2gxID0gdXJsLm1hdGNoKFwvKC4q\nW1xcPyZdcCg\/OmFnZSk\/PSkoXFxkKykoJHxbIyZdLiopXC9pKTtcbiAgICAgICAgICAgIGxldCBk\nb3VidFRleHRSZWcgPSBcL15cXHMqKMK7fD4+KVxccyokXC87XG4gICAgICAgICAgICBpZiAocGFn\nZU1hdGNoMSkge1xuICAgICAgICAgICAgICAgIHByZVN0ciA9IHBhZ2VNYXRjaDFbMV07XG4gICAg\nICAgICAgICAgICAgcGFnZU51bSA9IHBhcnNlSW50KHBhZ2VNYXRjaDFbMl0pO1xuICAgICAgICAg\nICAgICAgIGFmdGVyU3RyID0gcGFnZU1hdGNoMVszXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4g\nICAgICAgICAgICAgICAgbGV0IHBhZ2VNYXRjaDIgPSB1cmwubWF0Y2goXC8oLipbYS16XFxcL1xc\nLV9dKD86cHxwYWdlKT9cXFwvPykoXFxkKykoXFwucz9odG1sPyR8XFxcLz8kKVwvaSk7XG4gICAg\nICAgICAgICAgICAgaWYgKHBhZ2VNYXRjaDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJlU3Ry\nID0gcGFnZU1hdGNoMlsxXTtcbiAgICAgICAgICAgICAgICAgICAgcGFnZU51bSA9IHBhcnNlSW50\nKHBhZ2VNYXRjaDJbMl0pO1xuICAgICAgICAgICAgICAgICAgICBhZnRlclN0ciA9IHBhZ2VNYXRj\naDJbM107XG4gICAgICAgICAgICAgICAgICAgIGlmIChcL15cXFwvPyRcLy50ZXN0KGFmdGVyU3Ry\nKSAmJiAhXC8ocChhZ2UpP3xffFxcLXxcXFwvKSRcLy50ZXN0KHByZVN0cikpIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIHByZVN0ciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBh\nZnRlclN0ciA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFnZU51bSA+IDk5OSkge1xuICAgICAg\nICAgICAgICAgIHBhZ2VOdW0gPSAxO1xuICAgICAgICAgICAgICAgIHByZVN0ciA9IFwiXCI7XG4g\nICAgICAgICAgICAgICAgYWZ0ZXJTdHIgPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgbGV0IGN1clBhZ2UgPSBkb2MsIGksIGN1ciwganNOZXh0O1xuICAgICAgICAgICAgbGV0IG5l\neHQxLCBuZXh0MiwgbmV4dDMsIG5leHQ0LCBuZXh0SnMxLCBuZXh0SnMyO1xuICAgICAgICAgICAg\nbGV0IHNlbGVjdG9yTGlzdCA9IFtcbiAgICAgICAgICAgICAgICBcIi5wYWdlLW5leHQ+YVwiLFxu\nICAgICAgICAgICAgICAgIFwiYS5uZXh0X3BhZ2VcIixcbiAgICAgICAgICAgICAgICBcIiNuZXh0\nX3BhZ2VcIixcbiAgICAgICAgICAgICAgICBcIi5jdXJQYWdlK2FcIixcbiAgICAgICAgICAgICAg\nICBcIi5uZXh0UGFnZVwiLFxuICAgICAgICAgICAgICAgIFwiLnBhZ2luYXRpb24tbmV4dD5hXCIs\nXG4gICAgICAgICAgICAgICAgXCIucGFnaW5hdGlvbj4uYWN0aXZlK2FcIixcbiAgICAgICAgICAg\nICAgICBcImFbZGF0YS1wYWdpbmF0aW9uPW5leHRdXCIsXG4gICAgICAgICAgICAgICAgXCIucGFn\nZUJ1dHRvbnNDdXJyZW50K2FcIixcbiAgICAgICAgICAgICAgICBcImFbY2xhc3MqPW5leHRwYWdl\nXVwiLFxuICAgICAgICAgICAgICAgIFwibGkucGFnZS1jdXJyZW50K2xpPmFcIixcbiAgICAgICAg\nICAgICAgICBcIltjbGFzc149cGFnXSBhW3JlbD1uZXh0XVwiLFxuICAgICAgICAgICAgICAgIFwi\nW2NsYXNzXj1QYWddIFthcmlhLWxhYmVsPW5leHRdXCIsXG4gICAgICAgICAgICAgICAgXCJbY2xh\nc3NePVBhZ10gW2FyaWEtbGFiZWw9TmV4dF1cIixcbiAgICAgICAgICAgICAgICBcIlthcmlhLWxh\nYmVsPSdOZXh0IFBhZ2UnXVwiLFxuICAgICAgICAgICAgICAgIFwiW2FyaWEtbGFiZWw9J05leHQg\ncGFnZSddXCIsXG4gICAgICAgICAgICAgICAgXCJbYXJpYS1sYWJlbCQ9J25leHQgcGFnZSddXCIs\nXG4gICAgICAgICAgICAgICAgXCIucGFnaW5hdGlvbi1uYXZfX2l0ZW0tLW5leHQ+YVwiLFxuICAg\nICAgICAgICAgICAgIFwiYS5wYWdlcmlnaHRcIixcbiAgICAgICAgICAgICAgICBcIi5wYWdlcl9v\nbithLnBhZ2VyXCIsXG4gICAgICAgICAgICAgICAgXCIucGFnZXJfX25leHQ+YVwiLFxuICAgICAg\nICAgICAgICAgIFwiLnBhZ2UtbnVtYmVycy5jdXJyZW50K2FcIixcbiAgICAgICAgICAgICAgICBc\nImEucGFnZS1udW1iZXJzLm5leHRcIixcbiAgICAgICAgICAgICAgICBcImJvZHkgW2NsYXNzKj1w\nYWdpbmF0XSBsaS5hY3RpdmUrc3BhbitsaT5hXCIsXG4gICAgICAgICAgICAgICAgXCJib2R5IFtj\nbGFzcyo9cGFnaW5hdF0gbGkuYWN0aXZlK2xpPmFcIixcbiAgICAgICAgICAgICAgICBcImJvZHkg\nW2NsYXNzXj1wYWddIC5jdXJyZW50K2FcIixcbiAgICAgICAgICAgICAgICBcIi5wYWdlX2N1cnJl\nbnQrYVwiLFxuICAgICAgICAgICAgICAgIFwiaW5wdXRbdmFsdWU9J25leHQnXVwiLFxuICAgICAg\nICAgICAgICAgIFwiaW5wdXRbdmFsdWU9J05leHQgcGFnZSddXCIsXG4gICAgICAgICAgICAgICAg\nXCJpbnB1dFt2YWx1ZT0n5LiL5LiA6aG1J11cIixcbiAgICAgICAgICAgICAgICBcImlucHV0W3Zh\nbHVlPSfkuIvkuIDpoIEnXVwiLFxuICAgICAgICAgICAgICAgIFwiYSNwYl9uZXh0XCIsXG4gICAg\nICAgICAgICAgICAgXCJhI3JpZ2h0Rml4XCIsXG4gICAgICAgICAgICAgICAgXCJhI2J0blByZUdu\nXCIsXG4gICAgICAgICAgICAgICAgXCJhLnBhZ2UtbmV4dFwiLFxuICAgICAgICAgICAgICAgIFwi\nYS5wYWdlcy1uZXh0XCIsXG4gICAgICAgICAgICAgICAgXCJhLnBhZ2UucmlnaHRcIixcbiAgICAg\nICAgICAgICAgICBcIi5wYWdpbmc+LmFjdGl2ZSsuaXRlbVwiLFxuICAgICAgICAgICAgICAgIFwi\nYSNuZXh0XCIsXG4gICAgICAgICAgICAgICAgXCIubmV4dD5hXCIsXG4gICAgICAgICAgICAgICAg\nXCIubmV4dD5idXR0b25cIixcbiAgICAgICAgICAgICAgICBcImFbYWx0PW5leHRdXCIsXG4gICAg\nICAgICAgICAgICAgXCIucGdfYXJlYT5lbSthXCIsXG4gICAgICAgICAgICAgICAgXCJidXR0b24u\nbmV4dDpub3QoW2Rpc2FibGVkXSlcIixcbiAgICAgICAgICAgICAgICBcIi5idG5fbmV4dDpub3Qo\nW2Rpc2FibGVkXSlcIixcbiAgICAgICAgICAgICAgICBcIi5idG4tbmV4dDpub3QoW2Rpc2FibGVk\nXSlcIixcbiAgICAgICAgICAgICAgICBcImEjbGlua05leHRcIixcbiAgICAgICAgICAgICAgICBc\nImJvZHkgYVtjbGFzcyo9cGFnZV9fbmV4dF1cIixcbiAgICAgICAgICAgICAgICBcImJvZHkgW2Ns\nYXNzKj1wYWdlcl0+YS5uZXh0XCIsXG4gICAgICAgICAgICAgICAgXCJib2R5IFtjbGFzcyo9cGFn\naW5hdGlvbi1uZXh0XT5hXCIsXG4gICAgICAgICAgICAgICAgXCJib2R5IFtjbGFzcyo9cGFnaW5h\ndGlvbi1uZXh0XT5idXR0b25cIixcbiAgICAgICAgICAgICAgICBcImJvZHkgW2NsYXNzKj1wYWdl\nLS1jdXJyZW50XStsaT5hXCIsXG4gICAgICAgICAgICAgICAgXCJib2R5IFtjbGFzcyo9UGFnZXNd\nPi5jdXJyK2FcIixcbiAgICAgICAgICAgICAgICBcImJvZHkgW2NsYXNzKj1wYWdlXT4uY3VyK2Fc\nIixcbiAgICAgICAgICAgICAgICBcImJvZHkgW2NsYXNzKj1wYWdpbmF0XSBbY2xhc3MqPWN1cnJl\nbnRdK2xpPmFcIixcbiAgICAgICAgICAgICAgICBcImJvZHkgW2NsYXNzKj1wYWdpbmF0XSBbY2xh\nc3MqPW5leHRdXCIsXG4gICAgICAgICAgICAgICAgXCJib2R5IFtjbGFzcyo9cGFnaW5hdF0gW2Ns\nYXNzKj1yaWdodF1cIixcbiAgICAgICAgICAgICAgICBcIi5wYWdlPmVtK2FcIixcbiAgICAgICAg\nICAgICAgICBcIltuYW1lKj1uZXh0UGFnZV1cIixcbiAgICAgICAgICAgICAgICAnXC9cL2J1dHRv\nbltjb250YWlucyhAY2xhc3MsIFwiUGFnZVwiKV1bdGV4dCgpPVwiTmV4dFwiXScsXG4gICAgICAg\nICAgICAgICAgJ1wvXC9idXR0b25bY29udGFpbnMoQGNsYXNzLCBcInBhZ2VcIildW3RleHQoKT1c\nIm5leHRcIl0nXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgbGV0IG5leHQgPSBhd2FpdCB0\naGlzLnF1ZXJ5U2VsZWN0b3JMaXN0KGJvZHksIHNlbGVjdG9yTGlzdCwgZG9jLmRlZmF1bHRWaWV3\nKTtcbiAgICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVw\nKDEpO1xuICAgICAgICAgICAgICAgIGxldCBuZXh0cyA9IGJvZHkucXVlcnlTZWxlY3RvckFsbChc\nImEubmV4dFwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmV4dHMubGVuZ3Ro\nOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG4gPSBuZXh0c1tpXTtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKHRoaXMudmVyaWZ5RWxlbWVudChuKSAmJiB0aGlzLmxpbmtIYXNIcmVm\nKG4pICYmICFwcmV2UmVnLnRlc3Qobi5pbm5lclRleHQudHJpbSgpKSkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgbmV4dCA9IG47XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgICAgICAgICAgbGV0IGlubmVyVGV4dCA9IG5l\neHQuaW5uZXJUZXh0O1xuICAgICAgICAgICAgICAgIGxldCBpc0pzID0gIXRoaXMubGlua0hhc0hy\nZWYobmV4dCk7XG4gICAgICAgICAgICAgICAgaWYgKGlubmVyVGV4dCAmJiBuZXh0VGV4dFJlZzIu\ndGVzdChpbm5lclRleHQudHJpbSgpKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNKcykg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmVyaWZ5RWxlbWVudChuZXh0KSkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRKczIgPSBuZXh0O1xuICAgICAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgbmV4dDIgPSBuZXh0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgIG5leHQgPSBudWxsO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4g\nICAgICAgICAgICAgICAgICAgIGlmIChpc0pzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBp\nZiAodGhpcy52ZXJpZnlFbGVtZW50KG5leHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAganNOZXh0ID0gbmV4dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgICAgIG5leHQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFuZXh0KSB7XG4gICAg\nICAgICAgICAgICAgYXdhaXQgc2xlZXAoMSk7XG4gICAgICAgICAgICAgICAgbmV4dCA9IGJvZHku\ncXVlcnlTZWxlY3RvcihcImEuY3VycithXCIpIHx8XG4gICAgICAgICAgICAgICAgICAgIGJvZHku\ncXVlcnlTZWxlY3RvcihcImRpdi53cC1wYWdlbmF2aT5zcGFuLmN1cnJlbnQrYSxkaXYucGFnZS1u\nYXY+c3Bhbi5jdXJyZW50K2EsZGl2LmFydGljbGUtcGFnaW5nPnNwYW4rYVwiKSB8fFxuICAgICAg\nICAgICAgICAgICAgICBib2R5LnF1ZXJ5U2VsZWN0b3IoXCIubnVtYmVyPnVsPmxpLmFjdGl2ZSts\naT5hLC5wYWdlciBhLm5leHRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW5l\neHQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzbGVlcCgxKTtcbiAgICAgICAgICAgICAgICBs\nZXQgcGFnZURpdiA9IGJvZHkucXVlcnlTZWxlY3RvcihcIi5wYWdlcz51bCwucGFnZV9ubz51bFwi\nKTtcbiAgICAgICAgICAgICAgICBpZiAocGFnZURpdikge1xuICAgICAgICAgICAgICAgICAgICBj\ndXIgPSBwYWdlRGl2LnF1ZXJ5U2VsZWN0b3IoXCJsaT5iLGxpPnN0cm9uZ1wiKTtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKGN1cikgbmV4dCA9IGN1ci5wYXJlbnROb2RlLm5leHRFbGVtZW50U2li\nbGluZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5ub2RlTmFtZSA9PT0g\nY3VyLnBhcmVudE5vZGUubm9kZU5hbWUpIG5leHQgPSBuZXh0LnF1ZXJ5U2VsZWN0b3IoXCJhXCIp\nO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIG5leHQgPSBudWxsO1xuICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAg\nICAgIGF3YWl0IHNsZWVwKDEpO1xuICAgICAgICAgICAgICAgIG5leHQgPSBib2R5LnF1ZXJ5U2Vs\nZWN0b3IoXCIucGFnZXM+YVtocmVmPSdqYXZhc2NyaXB0OjsnXSthXCIpO1xuICAgICAgICAgICAg\nICAgIGlmIChuZXh0ICYmIChuZXh0LmhyZWYgPT09IFwiamF2YXNjcmlwdDo7XCIgfHwgbmV4dC5n\nZXRBdHRyaWJ1dGUoXCJocmVmXCIpID09PSBcIiNcIikpIG5leHQgPSBudWxsO1xuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgaWYgKCFuZXh0KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgc2xl\nZXAoMSk7XG4gICAgICAgICAgICAgICAgbGV0IHBhZ2VEaXYgPSBib2R5LnF1ZXJ5U2VsZWN0b3Io\nXCIucGFnaW5hdGlvbiwucGFnaW5hdGlvbi1saXN0XCIpO1xuICAgICAgICAgICAgICAgIGlmIChw\nYWdlRGl2KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1ciA9IHBhZ2VEaXYucXVlcnlTZWxlY3Rv\ncihcIltjbGFzcyo9Y3VycmVudF0sLnBhZ2Utc2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAg\nICAgIGlmIChjdXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBjdXIucGFyZW50\nTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4\ndCAmJiBuZXh0Lm5vZGVOYW1lID09PSBjdXIucGFyZW50Tm9kZS5ub2RlTmFtZSkgbmV4dCA9IG5l\neHQucXVlcnlTZWxlY3RvcihcImFcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIG5l\neHQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKCFwYWdlRGl2LnF1ZXJ5U2VsZWN0b3IoXCJhXCIpKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgY3VyID0gcGFnZURpdi5xdWVyeVNlbGVjdG9yKFwiW2NsYXNzKj1j\ndXJyZW50XSxbY2xhc3MqPWFjdGl2ZV1cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\naWYgKGN1cikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc05leHQgPSBjdXIu\nbmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo\nanNOZXh0ICYmIGpzTmV4dC5ub2RlTmFtZSAhPT0gY3VyLm5vZGVOYW1lKSBqc05leHQgPSBudWxs\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIGlmICghbmV4dCkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVw\nKDEpO1xuICAgICAgICAgICAgICAgIGN1ciA9IGJvZHkucXVlcnlTZWxlY3RvcihcIi5wYWdpbmF0\nb3IgdGQgc3Ryb25nXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjdXIpIHtcbiAgICAgICAgICAg\nICAgICAgICAgd2hpbGUgKGN1ciAmJiAhY29tcGFyZU5vZGVOYW1lKGN1ciwgW1widGRcIl0pKSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXIgPSBjdXIucGFyZW50Tm9kZTtcbiAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gY3VyICYmIGN1ci5uZXh0\nRWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0KSBuZXh0ID0gbmV4\ndC5xdWVyeVNlbGVjdG9yKFwiYVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCBzbGVlcCgx\nKTtcbiAgICAgICAgICAgICAgICBsZXQgcGFnZURpdnMgPSBib2R5LnF1ZXJ5U2VsZWN0b3JBbGwo\nXCJbY2xhc3MqPXBhZ2luYXRpb25dLFtjbGFzcyo9UGFnaW5hdGlvbl1cIik7XG4gICAgICAgICAg\nICAgICAgaWYgKHBhZ2VEaXZzICYmIHBhZ2VEaXZzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAg\nICAgICBmb3IgKGxldCBpID0gcGFnZURpdnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIGxldCBwID0gcGFnZURpdnNbaV07XG4gICAgICAgICAgICAg\nICAgICAgICAgICBpZiAoXC8obmV4dFxccyoowrt8Pj58PnzigLp84oaSfOKdryk\/fCZndDt84pa2\nfD584oC6fOKGknzina8pXC9pLnRlc3QocC50aXRsZSB8fCBwLnZhbHVlIHx8ICcnKSkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBwLnF1ZXJ5U2VsZWN0b3IoXCJhLGJ1dHRv\nbixbdHlwZT0nYnV0dG9uJ11cIikgfHwgcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBi\ncmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXC9eKG5leHRcXHMqKMK7\nfD4+fD584oC6fOKGknzina8pP3wmZ3Q7fOKWtnw+fOKAunzihpJ84p2vKSRcL2kudGVzdCgocC5p\nbm5lclRleHQgfHwgJycpLnRyaW0oKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBu\nZXh0ID0gcC5xdWVyeVNlbGVjdG9yKFwiYSxidXR0b24sW3R5cGU9J2J1dHRvbiddXCIpIHx8IHA7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5l\neHQgJiYgIXRoaXMubGlua0hhc0hyZWYobmV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmICghanNOZXh0KSBqc05leHQgPSBuZXh0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV4\ndCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgICAgICBsZXQg\naXNBcHAgPSAhIWJvZHkucXVlcnlTZWxlY3RvcihcIm1haW4jYXBwXCIpO1xuICAgICAgICAgICAg\nICAgIGxldCBhVGFncyA9IGJvZHkucXVlcnlTZWxlY3RvckFsbChcImEsYnV0dG9uLFt0eXBlPSdi\ndXR0b24nXSwuYnRuLWFjdGlvblwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSBhVGFncy5s\nZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV4dDEp\nIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSAlIDEwMCA9PT0gMCkge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgYXdhaXQgc2xlZXAoMSk7XG4gICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgbGV0IGFUYWcgPSBhVGFnc1tpXTtcbiAgICAgICAgICAgICAg\nICAgICAgbGV0IHRpdGxlID0gYVRhZy50aXRsZSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgICAg\nICBsZXQgdmFsdWUgPSBhVGFnLnZhbHVlIHx8IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxl\ndCBpbm5lclRleHQgPSBhVGFnLmlubmVyVGV4dCB8fCBcIlwiO1xuICAgICAgICAgICAgICAgICAg\nICBpZiAoaW5uZXJUZXh0ID09PSBcIlwiIHx8ICh0aXRsZSAhPT0gXCJcIiAmJiB0aXRsZS5sZW5n\ndGggPCBpbm5lclRleHQubGVuZ3RoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJU\nZXh0ID0gdGl0bGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\naWYgKGlubmVyVGV4dCA9PT0gXCJcIiB8fCAodmFsdWUgIT09IFwiXCIgJiYgdmFsdWUubGVuZ3Ro\nIDwgaW5uZXJUZXh0Lmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyVGV4\ndCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlm\nIChpbm5lclRleHQgIT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbm5l\nclRleHQgPT09IFwiwqdcIikgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbm5l\nclRleHQgPSBpbm5lclRleHQudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlu\nbmVyVGV4dC5sZW5ndGggPiA4MCkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnZlcmlmeUVsZW1lbnQoYVRhZykpIGNvbnRpbnVl\nO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYVRhZy5kYXRhc2V0ICYmIGFUYWcuZGF0YXNldC5w\ncmV2aWV3KSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGF2YWlsYWJsZUhyZWYg\nPSBhVGFnLmhyZWYgJiYgYVRhZy5ocmVmLmxlbmd0aCA8IDI1MCAmJiAhXC9eKGphdmFzY3JpcHQ6\nfCMpXC8udGVzdChhVGFnLmhyZWYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXZhaWxhYmxl\nSHJlZiAmJiBcL25leHRcXC0\/KHBhZ2UpPyR8XFxcL3ZpZGVvXFxcL3xcXFwvdm9kXFxcL3BsYXlc\nXFwvXC9pLnRlc3QoYVRhZy5ocmVmKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlm\nIChjb21wYXJlTm9kZU5hbWUoYVRhZy5wYXJlbnROb2RlLCBbXCJibG9ja3F1b3RlXCJdKSkgY29u\ndGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhVGFnLnByZXZpb3VzRWxlbWVudFNpYmxp\nbmcgJiYgXC9cXGIocGxheXx2b2x1bWUpXFxiXC8udGVzdChhVGFnLnByZXZpb3VzRWxlbWVudFNp\nYmxpbmcuY2xhc3NOYW1lKSkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhVGFn\nLm5leHRFbGVtZW50U2libGluZyAmJiBcL1xcYihwbGF5fHZvbHVtZSlcXGJcLy50ZXN0KGFUYWcu\nbmV4dEVsZW1lbnRTaWJsaW5nLmNsYXNzTmFtZSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAg\nICAgICBsZXQgaXNKcyA9ICF0aGlzLmxpbmtIYXNIcmVmKGFUYWcpO1xuICAgICAgICAgICAgICAg\nICAgICBpZiAoZXhpc3QgJiYgaXNKcyAmJiAhYVRhZy5vZmZzZXRQYXJlbnQpIGNvbnRpbnVlO1xu\nICAgICAgICAgICAgICAgICAgICBpZiAoaW5uZXJUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBpbm5lclRleHQgPSBpbm5lclRleHQuc3BsaXQoXC9cXG5cLylbMF0ucmVwbGFjZShcLyBc\nL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0pzICYmIFwvXijCu3w+Pnw+\nfOKAunzihpJ84p2vKSRcLy50ZXN0KGlubmVyVGV4dCkpIGNvbnRpbnVlO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgaWYgKGlubmVyVGV4dCAmJiBpbm5lclRleHQubGVuZ3RoIDw9IDI1KSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0MSkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBpZiAobmV4dFRleHRSZWcxLnRlc3QoaW5uZXJUZXh0KSkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSnMpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5leHRKczEpIG5leHRKczEgPSBhVGFn\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0MSA9IGFUYWc7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKCFuZXh0NCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp\nZiAoIW5leHQyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4\ndFRleHRSZWcyLnRlc3QoaW5uZXJUZXh0KSB8fCBcL25leHRwYWdlfHBhZ2VyXFwtb2xkZXJ8bmV4\ndC5jaGFwXC9pLnRlc3QoYVRhZy5jbGFzc05hbWUpIHx8IFwvXijCu3w+PikkXC8udGVzdChpbm5l\nclRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlz\nSnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFu\nZXh0SnMyKSBuZXh0SnMyID0gYVRhZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBuZXh0MiA9IGFUYWc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm\nICghaXNBcHAgJiYgIW5leHQzICYmICFpc0pzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBpZiAoXC9eKG5leHRcXHMqKMK7fD4+fD584oC6fOKGknzina98XFxkKyk\/fCZn\ndDt84pa2fD584oC6fOKGknzina8pXFxzKiRcL2kudGVzdChhVGFnLnRleHRDb250ZW50KSAmJiBh\nVGFnLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlICYmICFhVGFnLnBhcmVudE5vZGUuaGFzQXR0cmli\ndXRlKFwianNhY3Rpb25cIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBuZXh0MyA9IGFUYWc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzSnMpIGNvbnRpbnVlO1xuICAgICAgICAgICAg\nICAgICAgICBpZiAoIW5leHQ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJldkVs\nZSA9IGFUYWcucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmIChwcmV2RWxlICYmIGNvbXBhcmVOb2RlTmFtZShwcmV2RWxlLCBbXCJiXCIsIFwic3Bhblwi\nLCBcInN0cm9uZ1wiXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXC9eXFxk\nKyRcLy50ZXN0KGFUYWcuaW5uZXJUZXh0LnRyaW0oKSkgJiYgXC9eXFxkKyRcLy50ZXN0KHByZXZF\nbGUuaW5uZXJUZXh0LnRyaW0oKSkgJiYgcGFyc2VJbnQoYVRhZy5pbm5lclRleHQpID09PSBwYXJz\nZUludChwcmV2RWxlLmlubmVyVGV4dCkgKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIG5leHQ0ID0gYVRhZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgaWYgKHVybFdpbGxDaGFuZ2UpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAg\nICBpZiAoIW5leHQ0ICYmIGF2YWlsYWJsZUhyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGxldCBhSHJlZiA9IGFUYWcuaHJlZi5pbmRleE9mKFwiaHR0cFwiKSA9PT0gMCA\/IGFUYWcuaHJl\nZiA6IHRoaXMuY2Fub25pY2FsVXJpKGFUYWcuaHJlZik7XG4gICAgICAgICAgICAgICAgICAgICAg\nICBpZiAoYUhyZWYuaW5kZXhPZihsb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSBjb250aW51ZTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfYUhyZWYgPSBhSHJlZi5yZXBsYWNlKFwiPyZc\nIiwgXCI\/XCIpLnJlcGxhY2UoXCJpbmRleC5waHA\/XCIsIFwiP1wiKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChwcmVTdHIgfHwgYWZ0ZXJTdHIpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBsZXQgX2FIcmVmVHJpbSA9IF9hSHJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBpZiAocHJlU3RyKSBfYUhyZWZUcmltID0gX2FIcmVmVHJpbS5yZXBsYWNlKHByZVN0ciwg\nXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFmdGVyU3RyKSBfYUhyZWZU\ncmltID0gX2FIcmVmVHJpbS5yZXBsYWNlKGFmdGVyU3RyLCBcIlwiKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBpZiAoX2FIcmVmVHJpbSA9PSBwYWdlTnVtICsgMSkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBuZXh0NCA9IGFUYWc7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1clVy\nbCAhPT0gYUhyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYUhyZWYgPSBfYUhy\nZWYucmVwbGFjZShcL1xcLnM\/aHRtbD8kXC9pLCBcIlwiKS50b0xvd2VyQ2FzZSgpO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIGlmIChfYUhyZWYuaW5kZXhPZihfdXJsKSAhPT0gLTEpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhZ2VUd29NYXRjaCA9IF9hSHJl\nZi5yZXBsYWNlKF91cmwsIFwiXCIpLm1hdGNoKHBhZ2VUd29SZWcpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBpZiAocGFnZVR3b01hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBhZnRlclN0ciA9IHBhZ2VUd29NYXRjaFsyXTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQ0ID0gYVRhZztcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0NCAmJiAh\nXC9wYWdlXC8udGVzdChuZXh0NC5ocmVmKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGxldCBjdXJIcmVmID0gbmV4dDQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBsZXQgY3VyUGFnZVJlZyA9IG5ldyBSZWdFeHAoXCIoLiopXCIgKyAo\ncGFnZU51bSArIDEpICsgYWZ0ZXJTdHIucmVwbGFjZShcLyhbXFwuXFw\/XSlcL2csICdcXFxcJDEn\nKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG90aGVyUGFnZUhyZWYgPSBjdXJI\ncmVmLnJlcGxhY2UoY3VyUGFnZVJlZywgYCQxJHtwYWdlTnVtfSR7YWZ0ZXJTdHJ9YCk7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG90aGVyUGFnZUVsZSA9IGJvZHkucXVlcnlTZWxl\nY3RvcihgYVtocmVmPScke290aGVyUGFnZUhyZWZ9J11gKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBpZiAoIW90aGVyUGFnZUVsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBvdGhlclBhZ2VIcmVmID0gY3VySHJlZi5yZXBsYWNlKGN1clBhZ2VSZWcsIGAkMSR7cGFn\nZU51bSArIDJ9JHthZnRlclN0cn1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nb3RoZXJQYWdlRWxlID0gYm9keS5xdWVyeVNlbGVjdG9yKGBhW2hyZWY9JyR7b3RoZXJQYWdlSHJl\nZn0nXWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBpZiAob3RoZXJQYWdlRWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGxldCBwYXJlbnQgPSBvdGhlclBhZ2VFbGUucGFyZW50Tm9kZTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQucGFyZW50Tm9kZSkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVu\ndE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50LnBh\ncmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJl\nbnQgPSBwYXJlbnQucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5jb250YWlucyhuZXh0NCkgJiYg\nIVwvXlxcZCskXC8udGVzdChuZXh0NC5pbm5lclRleHQudHJpbSgpKSkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgIGlmIChuZXh0MiAmJiBkb3VidFRleHRSZWcudGVzdChuZXh0Mi5p\nbm5lclRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQyID0gdGhpcy52ZXJpZnlOZXh0\nKG5leHQyLCBkb2MsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\naWYgKG5leHRKczIgJiYgZG91YnRUZXh0UmVnLnRlc3QobmV4dEpzMi5pbm5lclRleHQpKSB7XG4g\nICAgICAgICAgICAgICAgICAgIG5leHRKczIgPSB0aGlzLnZlcmlmeU5leHQobmV4dEpzMiwgZG9j\nLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5leHQzKSB7\nXG4gICAgICAgICAgICAgICAgICAgIG5leHQzID0gdGhpcy52ZXJpZnlOZXh0KG5leHQzLCBkb2Ms\nIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBp\nZiAoIW5leHQpIG5leHQgPSBuZXh0MSB8fCBuZXh0NCB8fCBuZXh0MyB8fCBuZXh0MjtcbiAgICAg\nICAgICAgIGlmICghbmV4dCAmJiBsb2NhdGlvbi5wYXRobmFtZSArIGxvY2F0aW9uLnNlYXJjaCAh\nPT0gXCJcL1wiKSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IGpzTmV4dCB8fCBuZXh0SnMxIHx8\nIG5leHRKczI7XG4gICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5wYXJlbnROb2RlLmNs\nYXNzTmFtZSAmJiBuZXh0LnBhcmVudE5vZGUuY2xhc3NOYW1lLmluZGV4T2YgJiYgbmV4dC5wYXJl\nbnROb2RlLmNsYXNzTmFtZS5pbmRleE9mKCd0YWInKSAhPT0gLTEpIG5leHQgPSBudWxsO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5jbGFzc0xpc3QgJiYgKG5l\neHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwicmVzdWx0cy1tb3JlXCIpIHx8IG5leHQuY2xhc3NMaXN0\nLmNvbnRhaW5zKFwibm9cIikpKSBuZXh0ID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChuZXh0ICYm\nIG5leHQuaGFzQXR0cmlidXRlICYmIG5leHQuaGFzQXR0cmlidXRlKFwiZGlzYWJsZWRcIikpIG5l\neHQgPSBudWxsO1xuICAgICAgICAgICAgaWYgKG5leHQgJiYgbmV4dC5vZmZzZXRIZWlnaHQgJiYg\nbmV4dC5vZmZzZXRIZWlnaHQgPiAyMDApIG5leHQgPSBudWxsO1xuICAgICAgICAgICAgaWYgKG5l\neHQgJiYgbmV4dC5wYXJlbnROb2RlLmhyZWYgJiYgY29tcGFyZU5vZGVOYW1lKG5leHQucGFyZW50\nTm9kZSwgW1wiYVwiXSkpIG5leHQgPSBuZXh0LnBhcmVudE5vZGU7XG4gICAgICAgICAgICByZXR1\ncm4ge25leHQ6bmV4dCwgY2FuU2F2ZTpjYW5TYXZlfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZl\ncmlmeU5leHQobmV4dCwgZG9jLCBpc0pzKSB7XG4gICAgICAgICAgICBpZiAoIW5leHQpIHJldHVy\nbiBudWxsO1xuICAgICAgICAgICAgaWYgKCFpc0pzKSB7XG4gICAgICAgICAgICAgICAgbGV0IGhy\nZWYgPSBuZXh0LmdldEF0dHJpYnV0ZShcImhyZWZcIik7XG4gICAgICAgICAgICAgICAgaWYgKGhy\nZWYgJiYgIVwvXFxkXC8udGVzdChuZXh0LmdldEF0dHJpYnV0ZShcImhyZWZcIikpKSB7XG4gICAg\nICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIGlmIChuZXh0LnByZXZpb3VzRWxlbWVudFNpYmxpbmcgJiYgY29t\ncGFyZU5vZGVOYW1lKG5leHQucHJldmlvdXNFbGVtZW50U2libGluZywgW1wiYnJcIl0pKSByZXR1\ncm4gbnVsbDtcbiAgICAgICAgICAgIGxldCBlbGVzID0gW107XG4gICAgICAgICAgICBpZiAobmV4\ndC5pbm5lclRleHQgJiYgbmV4dC5pbm5lclRleHQuaW5kZXhPZihcIlxcblwiKSA9PT0gLTEpIHtc\nbiAgICAgICAgICAgICAgICBlbGVzID0gZ2V0QWxsRWxlbWVudHMoYFwvXC8ke25leHQubm9kZU5h\nbWV9W3RleHQoKT0nJHtuZXh0LmlubmVyVGV4dH0nXWAsIGRvYyk7XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICBpZiAoZWxlcy5sZW5ndGggPj0gMiAmJiBlbGVzWzBdLmhyZWYgIT09IGVsZXNb\nMV0uaHJlZikge1xuICAgICAgICAgICAgICAgIG5leHQgPSBudWxsO1xuICAgICAgICAgICAgfSBl\nbHNlIGlmIChkb2MgPT09IGRvY3VtZW50ICYmIG5leHQub2Zmc2V0UGFyZW50KSB7XG4gICAgICAg\nICAgICAgICAgbGV0IGxlZnQgPSBnZXRFbGVtZW50TGVmdChuZXh0KTtcbiAgICAgICAgICAgICAg\nICBpZiAobGVmdCA8IDIwIHx8IChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsV2lkdGgg\nPiA1MDAgJiYgbGVmdCA8IDI1MCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IG51bGw7\nXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRvcCA9\nIGdldEVsZW1lbnRUb3AobmV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3AgPCAyMCB8\nfCAobGVmdCA8IHdpbmRvdy5pbm5lcldpZHRoIFwvIDMgJiYgdG9wIDwgd2luZG93LmlubmVySGVp\nZ2h0IFwvIDMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID0gbnVsbDtcbiAgICAg\nICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBib3R0\nb20gPSB0b3AgKyBuZXh0Lm9mZnNldEhlaWdodCB8fCAwO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgbGV0IHNjcm9sbEggPSBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs\nSGVpZ2h0LCBnZXRCb2R5KGRvY3VtZW50KS5zY3JvbGxIZWlnaHQpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKHNjcm9sbEggLSBib3R0b20gPCAxMCkgbmV4dCA9IG51bGw7XG4gICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNhbm9uaWNhbFVyaShzcmMp\nIHtcbiAgICAgICAgICAgIGlmICghc3JjKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCI7\nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc3JjLmNoYXJBdCgwKSA9PT0gXCIjXCIp\nIHJldHVybiB0aGlzLmN1clVybCArIHNyYztcbiAgICAgICAgICAgIGlmIChzcmMuY2hhckF0KDAp\nID09PSBcIj9cIikgcmV0dXJuIHRoaXMuY3VyVXJsLnJlcGxhY2UoXC9eKFteXFw\/I10rKS4qXC8s\nIFwiJDFcIiArIHNyYyk7XG4gICAgICAgICAgICBsZXQgb3JpZ2luID0gbG9jYXRpb24ucHJvdG9j\nb2wgKyAnXC9cLycgKyBsb2NhdGlvbi5ob3N0O1xuICAgICAgICAgICAgbGV0IHVybCA9IHRoaXMu\nYmFzZVBhdGggfHwgb3JpZ2luO1xuICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoXC8oXFw\/\nfCMpLipcLywgXCJcIik7XG4gICAgICAgICAgICBpZiAoXC9odHRwcz86XFxcL1xcXC9bXlxcXC9d\nKyRcLy50ZXN0KHVybCkpIHVybCA9IHVybCArICdcLyc7XG4gICAgICAgICAgICBpZiAodXJsLmlu\nZGV4T2YoXCJodHRwXCIpICE9PSAwKSB1cmwgPSBvcmlnaW4gKyB1cmw7XG4gICAgICAgICAgICB2\nYXIgcm9vdF9wYWdlID0gXC9eW15cXD8jXSpcXFwvXC8uZXhlYyh1cmwpWzBdLFxuICAgICAgICAg\nICAgICAgIHJvb3RfZG9tYWluID0gXC9eXFx3K1xcOlxcXC9cXFwvXFxcLz9bXlxcXC9dK1wvLmV4\nZWMocm9vdF9wYWdlKVswXSxcbiAgICAgICAgICAgICAgICBhYnNvbHV0ZV9yZWdleCA9IFwvXlxc\ndytcXDpcXFwvXFxcL1wvO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVVcmwgPSBmYWxzZTtcbiAg\nICAgICAgICAgIHdoaWxlIChzcmMuaW5kZXhPZihcIi4uXC9cIikgPT09IDApIHtcbiAgICAgICAg\nICAgICAgICBzcmMgPSBzcmMuc3Vic3RyKDMpO1xuICAgICAgICAgICAgICAgIHJvb3RfcGFnZSA9\nIHJvb3RfcGFnZS5yZXBsYWNlKFwvXFxcL1teXFxcL10rXFxcLyRcLywgXCJcL1wiKTtcbiAgICAg\nICAgICAgICAgICB0aGlzLnVwZGF0ZVVybCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICBzcmMgPSBzcmMucmVwbGFjZShcL1xcLlxcXC9cLywgXCJcIik7XG4gICAgICAgICAgICBp\nZiAoXC9eXFxcL1xcXC9cXFwvP1wvLnRlc3Qoc3JjKSkge1xuICAgICAgICAgICAgICAgIHNyYyA9\nIGxvY2F0aW9uLnByb3RvY29sICsgc3JjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0\ndXJuIChhYnNvbHV0ZV9yZWdleC50ZXN0KHNyYykgPyBzcmMgOiAoKHNyYy5jaGFyQXQoMCkgPT09\nIFwiXC9cIiA\/IHJvb3RfZG9tYWluIDogcm9vdF9wYWdlKSArIHNyYykpO1xuICAgICAgICB9XG5c\nbiAgICAgICAgZ2V0TGlua0J5UGFnZSh1cmwsIHBhZ2VOdW0pIHtcbiAgICAgICAgICAgIGlmICgh\ndXJsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1clNpdGVSdWxlLnBhZ2VO\ndW0pIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5jdXJTaXRlUnVsZS5wYWdl\nTnVtO1xuICAgICAgICAgICAgICAgIGxldCBzdHJNYXRjaCA9IHJlc3VsdC5tYXRjaChcL1xcey4q\nP31cLyk7XG4gICAgICAgICAgICAgICAgaWYgKCFzdHJNYXRjaCkgcmV0dXJuIG51bGw7XG4gICAg\nICAgICAgICAgICAgbGV0IHVybFJlZyA9IG5ldyBSZWdFeHAoXCIoXCIgKyByZXN1bHQucmVwbGFj\nZShzdHJNYXRjaFswXSwgXCIpXFxcXGQrKFwiKSArIFwiKVwiLCBcImlcIik7XG4gICAgICAgICAg\nICAgICAgbGV0IGNvZGUgPSBzdHJNYXRjaFswXS5yZXBsYWNlKFwvXntcLywgXCJcIikucmVwbGFj\nZShcL30kXC8sIFwiXCIpLnJlcGxhY2UoXC9cXCRwXC9nLCBwYWdlTnVtKTtcbiAgICAgICAgICAg\nICAgICBpZiAoY29kZSA9PT0gcGFnZU51bSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQg\nPSB1cmwucmVwbGFjZSh1cmxSZWcsIFwiJDFcIiArIGNvZGUgKyBcIiQyXCIpO1xuICAgICAgICAg\nICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBjb2RlID0gRnVuY3Rpb24oJ1widXNlIHN0cmljdFwiO3JldHVybiAnICsgY29k\nZSkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlICYmIGNvZGUgJSAxID09IDAp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB1cmwucmVwbGFjZSh1cmxS\nZWcsIFwiJDFcIiArIGNvZGUgKyBcIiQyXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBl\nbHNlIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gdXJsKSB7XG4gICAg\nICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVybC5yZXBsYWNlKFwvKFsmXFxcL1xcP10ocD18\ncGFnZVs9XFxcL18tXT8pKVxcZCtcL2ksIFwiJDFcIiArIHBhZ2VOdW0pLnJlcGxhY2UoXC8oW18t\nXSlcXGQrXFwuXC9pLCBcIiQxXCIgKyBwYWdlTnVtICsgXCIuXCIpO1xuICAgICAgICB9XG5cbiAg\nICAgICAgZ2V0UGFnZU51bUZyb21VcmwodXJsLCBkZWZhdWx0UGFnZSkge1xuICAgICAgICAgICAg\naWYgKCF1cmwpIHJldHVybiBkZWZhdWx0UGFnZTtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1clNp\ndGVSdWxlLnBhZ2VOdW0pIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5jdXJT\naXRlUnVsZS5wYWdlTnVtO1xuICAgICAgICAgICAgICAgIGxldCBzdHJNYXRjaCA9IHJlc3VsdC5t\nYXRjaChcL1xcey4qP31cLyk7XG4gICAgICAgICAgICAgICAgaWYgKCFzdHJNYXRjaCkgcmV0dXJu\nIGRlZmF1bHRQYWdlO1xuICAgICAgICAgICAgICAgIGxldCB1cmxSZWcgPSBuZXcgUmVnRXhwKFwi\nLipcIiArIHJlc3VsdC5yZXBsYWNlKHN0ck1hdGNoWzBdLCBcIihcXFxcZCspXCIpICsgXCIuKlwi\nLCBcImlcIik7XG4gICAgICAgICAgICAgICAgbGV0IGN1clNob3dOdW0gPSB1cmwucmVwbGFjZSh1\ncmxSZWcsIFwiJDFcIik7XG4gICAgICAgICAgICAgICAgaWYgKGN1clNob3dOdW0gIT09IHVybCkg\ne1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29kZSA9IHN0ck1hdGNoWzBdLnJlcGxhY2UoXC9e\ne1wvLCBcIlwiKS5yZXBsYWNlKFwvfSRcLywgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIGlm\nIChjb2RlID09PSBcIiRwXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJT\naG93TnVtO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFnZTEgPSBwYXJz\nZUludChGdW5jdGlvbignXCJ1c2Ugc3RyaWN0XCI7cmV0dXJuICcgKyBjb2RlLnJlcGxhY2UoXCIk\ncFwiLCBcIjBcIikpKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYWdlMiA9\nIHBhcnNlSW50KEZ1bmN0aW9uKCdcInVzZSBzdHJpY3RcIjtyZXR1cm4gJyArIGNvZGUucmVwbGFj\nZShcIiRwXCIsIFwiMVwiKSkoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG51\nbUdhcCA9IHBhZ2UyIC0gcGFnZTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9w\nYWdlID0gKHBhcnNlSW50KGN1clNob3dOdW0pIC0gcGFnZTEpIFwvIG51bUdhcDtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBpZiAoX3BhZ2UgJiYgX3BhZ2UgJSAxID09PSAwKSByZXR1cm4g\nX3BhZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHRoaXMuY3VyU2l0ZVJ1bGUucGFnZU51bSA9IG51bGw7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0UGFnZTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0UGFnZTtcbiAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgcGFnZU51bSA9IHVybC5yZXBs\nYWNlKFwvLipbJlxcXC9cXD9dKHA9fHBhZ2VbPVxcXC9fLV0\/KShcXGQrKS4qXC9pLCBcIiQyXCIp\nO1xuICAgICAgICAgICAgcmV0dXJuIHBhZ2VOdW0gPT09IHVybCA\/IGRlZmF1bHRQYWdlIDogKHBh\nZ2VOdW0ubGVuZ3RoID4gNCA\/IGRlZmF1bHRQYWdlIDogcGFnZU51bSk7XG4gICAgICAgIH1cblxu\nICAgICAgICByZWFjaGVkTGFzdFBhZ2UoKSB7XG4gICAgICAgICAgICBpZiAocnVsZXNEYXRhLmxh\nc3RQYWdlVGlwcykge1xuICAgICAgICAgICAgICAgIHNob3dUaXBzKGkxOG4oXCJsYXN0UGFnZVwi\nKSwgXCJcIiwgODAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF91bnNhZmVXaW5kb3cu\ncG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIGFjdGlvbjogXCJsYXN0UGFnZVwiLFxuICAg\nICAgICAgICAgICAgIGNvbW1hbmQ6ICdwYWdldHVhbCdcbiAgICAgICAgICAgIH0sICcqJyk7XG4g\nICAgICAgICAgICBpZiAoc2lkZUNvbnRyb2xsZXIuaW5pdGVkKSB7XG4gICAgICAgICAgICAgICAg\nc2lkZUNvbnRyb2xsZXIuZnJhbWUuY2xhc3NMaXN0LmFkZChcImVuZFwiKTtcbiAgICAgICAgICAg\nIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGFzeW5jIGdldE5leHRMaW5rKGRvYywgZXhpc3QpIHtc\nbiAgICAgICAgICAgIGxldCBuZXh0TGluayA9IG51bGwsIHBhZ2UsIGhyZWY7XG4gICAgICAgICAg\nICBsZXQgZ2V0TmV4dExpbmtCeUZvcm0gPSAoZm9ybSwgc3VibWl0QnRuLCBuKSA9PiB7XG4gICAg\nICAgICAgICAgICAgbGV0IHBhcmFtcyA9IFtdO1xuICAgICAgICAgICAgICAgIGxldCBmb3JtRGF0\nYSA9IG5ldyBGb3JtRGF0YShmb3JtKTtcbiAgICAgICAgICAgICAgICBpZiAoc3VibWl0QnRuICYm\nIHN1Ym1pdEJ0bi5nZXRBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJ0blZh\nbHVlLCBidG5OYW1lO1xuICAgICAgICAgICAgICAgICAgICBidG5OYW1lID0gc3VibWl0QnRuLmdl\ndEF0dHJpYnV0ZShcIm5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGJ0blZhbHVlID0gc3Vi\nbWl0QnRuLmdldEF0dHJpYnV0ZShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAo\nYnRuTmFtZSAmJiBidG5WYWx1ZSkgcGFyYW1zID0gW2J0bk5hbWUgKyBcIj1cIiArIGVuY29kZVVS\nSUNvbXBvbmVudChidG5WYWx1ZSldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAg\nICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgZm9ybURhdGEpIHtcbiAgICAgICAgICAgICAgICAg\nICAgaWYgKG4gJiYgXC9eKHB8cGFnZSkkXC9pLnRlc3Qoa2V5KSkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgcGFyYW1zLnB1c2goa2V5ICsgJz0nICsgbik7XG4gICAgICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMucHVzaChrZXkgKyAnPScg\nKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuam9pbignJicp\nO1xuICAgICAgICAgICAgICAgIHJldHVybiBmb3JtLmFjdGlvbiArIChmb3JtLmFjdGlvbi5pbmRl\neE9mKCc\/JykgPT09IC0xID8gJz8nIDogJyYnKSArIHBhcmFtcyArIChmb3JtLm1ldGhvZCA9PT0g\nJ3Bvc3QnID8gJyNweycgKyBwYXJhbXMgKyAnfScgOiAnJyk7XG4gICAgICAgICAgICB9O1xuICAg\nICAgICAgICAgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnRCeUpzKSB7XG4gICAgICAg\nICAgICAgICAgdGhpcy5uZXh0TGlua0hyZWYgPSBcIiNcIjtcbiAgICAgICAgICAgICAgICByZXR1\ncm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJTaXRlUnVsZS5uZXh0TGlu\na0J5SnMpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBsZXQg\nb3ZlciA9IF91cmwgPT4ge307XG4gICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRVcmwgPSBh\nd2FpdCAoKHR5cGVvZiB0aGlzLmN1clNpdGVSdWxlLm5leHRMaW5rQnlKcyA9PT0gJ2Z1bmN0aW9u\nJykgPyB0aGlzLmN1clNpdGVSdWxlLm5leHRMaW5rQnlKcyA6IG5ldyBBc3luY0Z1bmN0aW9uKFwi\nZG9jXCIsICdcInVzZSBzdHJpY3RcIjsnICsgdGhpcy5jdXJTaXRlUnVsZS5uZXh0TGlua0J5SnMp\nKShkb2MpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VXJsKSBuZXh0TGluayA9IHto\ncmVmOiB0YXJnZXRVcmx9O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAg\nICAgICAgICAgICBkZWJ1ZyhlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVs\nc2UgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUubmV4dExpbmtCeVVybCkge1xuICAgICAgICAgICAgICAg\nIGxldCB0YXJnZXRVcmwgPSB0aGlzLmN1clVybC5yZXBsYWNlKG5ldyBSZWdFeHAodGhpcy5jdXJT\naXRlUnVsZS5uZXh0TGlua0J5VXJsWzBdLCBcImlcIiksIHRoaXMuY3VyU2l0ZVJ1bGUubmV4dExp\nbmtCeVVybFsxXSk7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldFVybCAhPT0gdGhpcy5jdXJV\ncmwpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluY2x1ZGVTZWwgPSB0aGlzLmN1clNpdGVS\ndWxlLm5leHRMaW5rQnlVcmxbMl07XG4gICAgICAgICAgICAgICAgICAgIGxldCBleGNsdWRlU2Vs\nID0gdGhpcy5jdXJTaXRlUnVsZS5uZXh0TGlua0J5VXJsWzNdO1xuICAgICAgICAgICAgICAgICAg\nICBpZiAoaW5jbHVkZVNlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZVNlbCA9\nIGluY2x1ZGVTZWwudHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnZXRFbGVt\nZW50KGluY2x1ZGVTZWwsIGRvYykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz\nLm5leHRMaW5rSHJlZj1mYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g\nbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICBpZiAoZXhjbHVkZVNlbCkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgZXhjbHVkZVNlbCA9IGV4Y2x1ZGVTZWwudHJpbSgpO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGdldEVsZW1lbnQoZXhjbHVkZVNlbCwgZG9jKSkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHRoaXMubmV4dExpbmtIcmVmPWZhbHNlO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXBzID0gdGFyZ2V0VXJs\nLm1hdGNoKFwvey4qP31cL2cpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVwcykge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgcmVwcy5mb3JFYWNoKHJlcCA9PiB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgbGV0IGNvZGUgPSByZXAucmVwbGFjZShcIntcIiwgXCJcIikucmVwbGFj\nZShcIn1cIiwgXCJcIikucmVwbGFjZShcL1xcKFxcKVwvZywgXCIwXCIpO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBjb2RlLm1hdGNoKFwvXihcXGQqKVxcKzEkXC8p\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VJbnQocmVzdWx0WzFdIHx8IDEpICsg\nMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgcmVzdWx0ID0gRnVuY3Rpb24oJ1widXNlIHN0cmljdFwiO3JldHVybiAnICsgY29kZSkoKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB0YXJnZXRVcmwgPSB0YXJnZXRVcmwucmVwbGFjZShyZXAsIHJlc3Vs\ndCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXh0TGluayA9IHtocmVmOiB0YXJn\nZXRVcmx9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5jdXJTaXRlUnVsZS5u\nZXh0TGluayAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dExpbmtT\nZWwgPSB0aGlzLmN1clNpdGVSdWxlLm5leHRMaW5rO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0\nTGlua1NlbCAhPSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChBcnJheSAmJiBBcnJheS5p\nc0FycmF5ICYmIEFycmF5LmlzQXJyYXkobmV4dExpbmtTZWwpKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBuZXh0TGluayA9IGdldEVsZW1lbnQobmV4dExpbmtTZWxbbmV4dEluZGV4XSwgZG9j\nLCBudWxsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dExpbmsgJiYg\nY3VyUGFnZSA9PT0gMSAmJiBuZXh0SW5kZXggIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBuZXh0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRM\naW5rID0gZ2V0RWxlbWVudChuZXh0TGlua1NlbFtuZXh0SW5kZXhdLCBkb2MsIG51bGwsIHRydWUp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug\nbmV4dExpbmsgPSBnZXRFbGVtZW50KG5leHRMaW5rU2VsLCBkb2MsIG51bGwsIHRydWUpO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobmV4dExpbmsgJiYgKHRoaXMuY3Vy\nU2l0ZVJ1bGUuYWN0aW9uID09IDAgfHwgdGhpcy5jdXJTaXRlUnVsZS5hY3Rpb24gPT0gMSB8fCB0\naGlzLmN1clNpdGVSdWxlLmFjdGlvbiA9PSAyKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQg\nZm9ybSA9IGRvYy5xdWVyeVNlbGVjdG9yKCcjc2VhcmNoLWZvcm0nKTtcbiAgICAgICAgICAgICAg\nICAgICAgaWYgKCFuZXh0TGluay5ocmVmICYmIG5leHRMaW5rLmhhc0F0dHJpYnV0ZSAmJiBuZXh0\nTGluay5oYXNBdHRyaWJ1dGUoXCJvbmNsaWNrXCIpICYmIGZvcm0pIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChcL15cXGQrJFwvLnRlc3QobmV4dExpbmsuaW5uZXJUZXh0KSkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRMaW5rLmhyZWYgPSBnZXROZXh0TGlua0J5Rm9y\nbShmb3JtLCBuZXh0TGluaywgbmV4dExpbmsuaW5uZXJUZXh0KTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb21wYXJlTm9kZU5hbWUo\nbmV4dExpbmssIFtcImlucHV0XCJdKSB8fCBuZXh0TGluay50eXBlID09PSBcInN1Ym1pdFwiKSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtID0gbmV4dExpbmsucGFyZW50Tm9kZTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChmb3JtKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKGNvbXBhcmVOb2RlTmFtZShmb3JtLCBbXCJmb3JtXCJdKSkgYnJlYWs7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBmb3JtID0gZm9ybS5wYXJlbnROb2RlO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZv\ncm0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0TGluay5ocmVmID0gZ2V0TmV4\ndExpbmtCeUZvcm0oZm9ybSwgbmV4dExpbmspO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0TGluay5o\ncmVmICYmIHRoaXMuY3VyU2l0ZVJ1bGUuYWN0aW9uICE9IDApIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIG5leHRMaW5rLmhyZWYgPSBuZXh0TGluay5ocmVmLnJlcGxhY2UoXC8jcHsuKlwvLCBc\nIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFnZSA9IGF3YWl0IHRoaXMuZ2V0UGFnZShk\nb2MsIGV4aXN0KTtcbiAgICAgICAgICAgICAgICBuZXh0TGluayA9IHBhZ2UubmV4dDtcbiAgICAg\nICAgICAgICAgICBpZiAobmV4dExpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBh\ncmVOb2RlTmFtZShuZXh0TGluaywgW1wiaW5wdXRcIl0pIHx8IG5leHRMaW5rLnR5cGUgPT09IFwi\nc3VibWl0XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghXC9uZXh0XC9pLnRlc3Qo\nbmV4dExpbmsuZ2V0QXR0cmlidXRlKFwib25jbGlja1wiKSkpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBsZXQgZm9ybSA9IG5leHRMaW5rLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgd2hpbGUgKGZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGNvbXBhcmVOb2RlTmFtZShmb3JtLCBbXCJmb3JtXCJdKSkgYnJlYWs7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZm9ybSA9IGZvcm0ucGFyZW50Tm9kZTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgaWYgKGZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dExpbmsu\naHJlZiA9IGdldE5leHRMaW5rQnlGb3JtKGZvcm0sIG5leHRMaW5rKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudCA9IG5leHRMaW5rO1xuICAg\nICAgICAgICAgICAgICAgICB3aGlsZSAocGFyZW50ICYmICFjb21wYXJlTm9kZU5hbWUocGFyZW50\nLCBbXCJib2R5XCJdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudC5oYXNB\ndHRyaWJ1dGUgJiYgcGFyZW50Lmhhc0F0dHJpYnV0ZShcImRpc2FibGVkXCIpKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0TGlua0hyZWYgPSBmYWxzZTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuY2xhc3NOYW1lICYmIHBhcmVu\ndC5jbGFzc0xpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50LmNs\nYXNzTGlzdC5jb250YWlucyhcIm5vQ2xpY2tcIikgfHwgcGFyZW50LmNsYXNzTGlzdC5jb250YWlu\ncyhcIm5vLXBhZ2VzXCIpIHx8IHBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJkaXNhYmxlZFwi\nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRMaW5rSHJlZiA9\nIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50LnN0eWxlICYmIHBhcmVudC5zdHlsZS5k\naXNwbGF5ID09PSBcIm5vbmVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu\nbmV4dExpbmtIcmVmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu\nIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAg\nICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgICAgICBpZiAoZG9jID09PSBkb2N1bWVudCkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKCF0aGlzLmxpbmtIYXNIcmVmKG5leHRMaW5rKSAmJiAhaXNWaXNpYmxlKG5l\neHRMaW5rLCBfdW5zYWZlV2luZG93KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo\naXMubmV4dExpbmtIcmVmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0\ndXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICBsZXQgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwidmlkZW8saWZyYW1lW2lk\nKj1wbGF5XSxbaWQqPXBsYXldPmlmcmFtZSxpZnJhbWVbc3JjKj1wbGF5ZXJdLGlmcmFtZVtzcmMq\nPW0zdThdXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZGVvKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZGVvLm9mZnNldFBhcmVudCAmJiB2aWRlby5uYW1l\nICE9PSAncGFnZXR1YWwtaWZyYW1lJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBsZXQgc2Nyb2xsV2lkdGggPSB2aWRlby5zY3JvbGxXaWR0aCB8fCB2aWRlby5vZmZzZXRXaWR0\naDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbEhlaWdodCA9IHZp\nZGVvLnNjcm9sbEhlaWdodCB8fCB2aWRlby5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUodmlkZW8sIFtcImlmcmFtZVwiXSkp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzY3JvbGxXaWR0\naCA+IDEwMCAmJiBzY3JvbGxIZWlnaHQgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGxldCB3aW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50\nLmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGxldCB3aW5IZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQu\nZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChzY3JvbGxXaWR0aCA+IHdpbldpZHRoPj4xICYmIHNjcm9sbEhlaWdodCA+\nIHdpbkhlaWdodD4+MSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGRlYnVnKFwiRGlzYWJsZSB3aGVuIGxhcmdlIG1lZGlhIGZvdW5kXCIpO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB2aWRlbyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlbyA9IG51bGw7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlbyA9IG51bGw7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpZGVvKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaXNQYXVzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp\ncy5jbGVhckFkZGVkRWxlbWVudHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz\nLm5leHRMaW5rSHJlZiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy\nbiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAg\nICAgICBsZXQgbmV4dExpbmtDcyA9IF91bnNhZmVXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShuZXh0\nTGluayk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV4dExpbmtDcy5jdXJzb3IgPT09\nIFwibm90LWFsbG93ZWRcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV4\ndExpbmtIcmVmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51\nbGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0\naGlzLmluaXROZXh0ID0gbmV4dExpbms7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgbGV0IGZvcm0gPSBkb2MucXVlcnlTZWxlY3RvcignI3NlYXJjaC1mb3JtJyk7\nXG4gICAgICAgICAgICAgICAgICAgIGlmICghbmV4dExpbmsuaHJlZiAmJiBuZXh0TGluay5oYXNB\ndHRyaWJ1dGUoXCJvbmNsaWNrXCIpICYmIGZvcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmIChmb3JtICYmIFwvXlxcZCskXC8udGVzdChuZXh0TGluay5pbm5lclRleHQpKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgaHJlZiA9IGdldE5leHRMaW5rQnlGb3JtKGZvcm0sIG5l\neHRMaW5rLCBuZXh0TGluay5pbm5lclRleHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgaWYgKG5leHRMaW5rKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRvYyA9PT0g\nZG9jdW1lbnQgJiYgbmV4dExpbmsub2Zmc2V0UGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAg\nIGxldCBzY3JvbGxIID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhl\naWdodCwgZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xsSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAg\nICAgbGV0IGFjdHVhbEJvdHRvbSA9IGdldEVsZW1lbnRCb3R0b20obmV4dExpbmspO1xuICAgICAg\nICAgICAgICAgICAgICBib3R0b21HYXAgPSBzY3JvbGxIIC0gYWN0dWFsQm90dG9tICsgKHdpbmRv\ndy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAq\nIHJhdGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChib3R0b21HYXAgPCAxMDApIGJvdHRvbUdh\ncCA9IDEwMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNo\nZWNrU3RvcFNpZ24obmV4dExpbmssIGRvYykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1\nclBhZ2UgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZWRMYXN0UGFn\nZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBu\ndWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJTaXRl\nUnVsZS5hY3Rpb24gPT0gMykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9jID09IGRvY3Vt\nZW50KSBkZWJ1ZyhuZXh0TGluaywgJ05leHQgbGluaycpO1xuICAgICAgICAgICAgICAgICAgICB0\naGlzLm5leHRMaW5rSHJlZiA9ICcjJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgICAgICAgICAgICBsZXQgbmVlZFVybCA9ICh0aGlzLmN1clNpdGVSdWxlLmFjdGlvbiA9PSAw\nIHx8IHRoaXMuY3VyU2l0ZVJ1bGUuYWN0aW9uID09IDEgfHwgdGhpcy5jdXJTaXRlUnVsZS5hY3Rp\nb24gPT0gMik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaHJlZikgaHJlZiA9IG5leHRMaW5r\nLmhyZWY7XG4gICAgICAgICAgICAgICAgICAgIGlmIChocmVmICYmIG5leHRMaW5rLmdldEF0dHJp\nYnV0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9ocmVmID0gbmV4dExpbmsuZ2V0\nQXR0cmlidXRlKFwiaHJlZlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfaHJlZikg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWFsSHJlZiA9IF9ocmVmLnJlcGxh\nY2UobG9jYXRpb24uaHJlZiwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKHJlYWxIcmVmLmNoYXJBdCgwKSA9PT0gXCIjXCIgfHwgcmVhbEhyZWYgPT09IFwiP1wiKXtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZiA9IFwiI1wiO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGhyZWYgPSBfaHJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgICAgICAgICB9IGVsc2UgaWYgKF9ocmVmID09PSBcIlwiKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgaHJlZiA9IF9ocmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5lZWRVcmwg\nJiYgKGhyZWYgPT09IFwiXCIgfHwgaHJlZiA9PT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHRoaXMubmV4dExpbmtIcmVmID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH0g\nZWxzZSBpZiAobmVlZFVybCAmJiBcL14oamF2YXNjcmlwdDp8IylcLy50ZXN0KGhyZWYpKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRMaW5rSHJlZiA9IGZhbHNlO1xuICAgICAg\nICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0\nTGlua0hyZWYgPSAoaHJlZiAmJiAhXC9eKGphdmFzY3JpcHQ6fCMpXC8udGVzdChocmVmKSkgPyB0\naGlzLmNhbm9uaWNhbFVyaShocmVmKSA6IFwiI1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nbGV0IHRlbXBVcmwgPSB0aGlzLm5leHRMaW5rSHJlZjtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmICh0ZW1wVXJsICE9PSBcIiNcIiAmJiAodGhpcy5jb21wYXJlVXJsKHRlbXBVcmwsIHRoaXMu\naW5pdFVybCkgfHwgdGhpcy5jb21wYXJlVXJsKHRlbXBVcmwsIHRoaXMuY3VyVXJsKSB8fCB0aGlz\nLmNvbXBhcmVVcmwodGVtcFVybCwgdGhpcy5jdXJVcmwgKyBcIiNcIikgfHwgdGhpcy5jb21wYXJl\nVXJsKHRlbXBVcmwsIHRoaXMub2xkVXJsKSB8fCB0aGlzLmNvbXBhcmVVcmwodGVtcFVybCwgdGhp\ncy5vbGRVcmwgKyBcIiNcIikpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5u\nZXh0TGlua0hyZWYgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo\nZG9jID09PSBkb2N1bWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKG5l\neHRMaW5rLCAnTmV4dCBsaW5rJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xu\nICAgICAgICAgICAgICAgIHRoaXMubmV4dExpbmtIcmVmID0gZmFsc2U7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgICB0aGlzLm5leHRMaW5rRWxlID0gbmV4dExpbms7XG4gICAgICAgICAgICB0\naGlzLnByZWxvYWQoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXh0TGluaztcbiAgICAgICAgfVxu\nXG4gICAgICAgIGNvbXBhcmVVcmwodXJsMSwgdXJsMikge1xuICAgICAgICAgICAgaWYgKHVybDEg\nPT09IHVybDIpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgaWYgKCF1cmwxIHx8ICF1cmwyKSBy\nZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBsZXQgdXJsMUFyciA9IHVybDEuc3BsaXQoXCI\/XCIp\nO1xuICAgICAgICAgICAgbGV0IHVybDJBcnIgPSB1cmwyLnNwbGl0KFwiP1wiKTtcbiAgICAgICAg\nICAgIGlmICh1cmwxQXJyWzBdICE9IHVybDJBcnJbMF0pIHJldHVybiBmYWxzZTtcbiAgICAgICAg\nICAgIGlmICghdXJsMUFyclsxXSB8fCAhdXJsMkFyclsxXSkgcmV0dXJuIGZhbHNlO1xuICAgICAg\nICAgICAgdXJsMUFyciA9IHVybDFBcnJbMV0uc3BsaXQoXCImXCIpLnNvcnQoKS5qb2luKFwiJlwi\nKTtcbiAgICAgICAgICAgIHVybDJBcnIgPSB1cmwyQXJyWzFdLnNwbGl0KFwiJlwiKS5zb3J0KCku\nam9pbihcIiZcIik7XG4gICAgICAgICAgICByZXR1cm4gdXJsMUFyciA9PT0gdXJsMkFycjtcbiAg\nICAgICAgfVxuXG4gICAgICAgIGZpbHRlckVsZXMoZG9jLCBlbGVzKSB7XG4gICAgICAgICAgICBs\nZXQgZmlsdGVyID0gdGhpcy5jdXJTaXRlUnVsZS5maWx0ZXI7XG4gICAgICAgICAgICBpZiAoIWZp\nbHRlciB8fCAhZWxlcyB8fCBlbGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgICAgICAgICAg\naWYgKGVsZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgZWxlcyA9IGVsZXNbMF0u\nY2hpbGRyZW47XG4gICAgICAgICAgICAgICAgaWYgKGVsZXMubGVuZ3RoID09PSAxKSB7XG4gICAg\nICAgICAgICAgICAgICAgIGVsZXMgPSBlbGVzWzBdLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSBcInN0\ncmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgaWYgKFwvXlxcZCskXC8udGVzdChmaWx0ZXIpKSB7\nXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHtjb3VudDogcGFyc2VJbnQoZmlsdGVyKX07\nXG4gICAgICAgICAgICAgICAgfSBlbHNlIGZpbHRlciA9IHt3b3JkczogZmlsdGVyfTtcbiAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbChlbGVzLCBlbGUgPT4ge1xuICAg\nICAgICAgICAgICAgIGlmICghZWxlLnBhcmVudE5vZGUpIHJldHVybjtcbiAgICAgICAgICAgICAg\nICBsZXQgY2FuS2VlcCA9ICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbm5lclRl\neHQgPSAoZWxlLmlubmVyVGV4dCAmJiBlbGUuaW5uZXJUZXh0LnRyaW0oKSkgfHwgXCJcIjtcbiAg\nICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlci5jb3VudCkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGlubmVyVGV4dC5sZW5ndGggPCBmaWx0ZXIuY291bnQpIHJldHVybiBmYWxzZTtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLndv\ncmRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgd29yZHNSZWdFeHAgPSBuZXcgUmVn\nRXhwKGZpbHRlci53b3JkcywgXCJpXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlu\nbmVyVGV4dCAmJiB3b3Jkc1JlZ0V4cC50ZXN0KGlubmVyVGV4dCkpIHJldHVybiBmYWxzZTtcbiAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyLmxpbmsp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rUmVnRXhwID0gbmV3IFJlZ0V4cChm\naWx0ZXIubGluaywgXCJpXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBhcmVO\nb2RlTmFtZShlbGUsIFtcImFcIl0pICYmIGxpbmtSZWdFeHAudGVzdChlbGUuaHJlZikpIHJldHVy\nbiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhQ2hpbGRyZW4gPSBlbGUucXVl\ncnlTZWxlY3RvckFsbChcImFcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp\nID0gMDsgaSA8IGFDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGxldCBjaGlsZCA9IGFDaGlsZHJlbltpXTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBpZiAobGlua1JlZ0V4cC50ZXN0KGNoaWxkLmhyZWYpKSByZXR1cm4gZmFsc2U7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgaWYgKGZpbHRlci5zZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAg\naWYgKGdldEVsZW1lbnQoZmlsdGVyLnNlbGVjdG9yLCBkb2MsIGVsZSkpIHJldHVybiBmYWxzZTtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtc\nbiAgICAgICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgICAgIGlmICghY2FuS2VlcCkge1xu\nICAgICAgICAgICAgICAgICAgICBlbGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGUpO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY2hl\nY2tTdG9wU2lnbihuZXh0TGluaywgZG9jKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJTaXRl\nUnVsZS5zdG9wU2lnbikge1xuICAgICAgICAgICAgICAgIGxldCB0eXBlQXJyYXkgPSBBcnJheSAm\nJiBBcnJheS5pc0FycmF5ICYmIEFycmF5LmlzQXJyYXkodGhpcy5jdXJTaXRlUnVsZS5zdG9wU2ln\nbik7XG4gICAgICAgICAgICAgICAgbGV0IHR5cGVPYmplY3QgPSAhdHlwZUFycmF5ICYmICh0aGlz\nLmN1clNpdGVSdWxlLnN0b3BTaWduLmluY2x1ZGUgfHwgdGhpcy5jdXJTaXRlUnVsZS5zdG9wU2ln\nbi5leGNsdWRlIHx8IHRoaXMuY3VyU2l0ZVJ1bGUuc3RvcFNpZ24ucGFnZU51bSk7XG4gICAgICAg\nICAgICAgICAgaWYgKHR5cGVBcnJheSB8fCB0eXBlT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAg\nICAgIGxldCBpbmNsdWRlU2VsLCBleGNsdWRlU2VsLCBjdXJTaWduLCBtYXhTaWduO1xuICAgICAg\nICAgICAgICAgICAgICBpZiAodHlwZUFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBp\nbmNsdWRlU2VsID0gdGhpcy5jdXJTaXRlUnVsZS5zdG9wU2lnblswXTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGV4Y2x1ZGVTZWwgPSB0aGlzLmN1clNpdGVSdWxlLnN0b3BTaWduWzFdO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgY3VyU2lnbiA9IHRoaXMuY3VyU2l0ZVJ1bGUuc3RvcFNpZ25b\nMl07XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhTaWduID0gdGhpcy5jdXJTaXRlUnVsZS5z\ndG9wU2lnblszXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheSAmJiBBcnJheS5p\nc0FycmF5ICYmIEFycmF5LmlzQXJyYXkoaW5jbHVkZVNlbCkgJiYgIWN1clNpZ24pIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBjdXJTaWduID0gaW5jbHVkZVNlbDtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBpbmNsdWRlU2VsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhjbHVkZVNlbCAmJiBBcnJheSAm\nJiBBcnJheS5pc0FycmF5ICYmIEFycmF5LmlzQXJyYXkoZXhjbHVkZVNlbCkgJiYgIW1heFNpZ24p\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhTaWduID0gZXhjbHVkZVNlbDtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlU2VsID0gZmFsc2U7XG4gICAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBpbmNsdWRlU2VsID0gdGhpcy5jdXJTaXRlUnVsZS5zdG9wU2lnbi5pbmNs\ndWRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZVNlbCA9IHRoaXMuY3VyU2l0ZVJ1\nbGUuc3RvcFNpZ24uZXhjbHVkZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1clNpZ24gPSB0\naGlzLmN1clNpdGVSdWxlLnN0b3BTaWduLnBhZ2VOdW07XG4gICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgaWYgKGluY2x1ZGVTZWwpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGluY2x1ZGVTZWwgPSBpbmNsdWRlU2VsLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmICghZ2V0RWxlbWVudChpbmNsdWRlU2VsLCBkb2MpKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgaXNQYXVzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgdGhpcy5uZXh0TGlua0hyZWYgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2x1ZGVTZWwpIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIGV4Y2x1ZGVTZWwgPSBleGNsdWRlU2VsLnRyaW0oKTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIGlmIChnZXRFbGVtZW50KGV4Y2x1ZGVTZWwsIGRvYykpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICBpc1BhdXNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB0aGlzLm5leHRMaW5rSHJlZiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyU2lnbikge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXhTaWduKSBtYXhTaWduID0gY3VyU2lnbi5zbGlj\nZSgyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50RWxlID0gZ2V0RWxlbWVu\ndChjdXJTaWduWzBdLCBkb2MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1heEVsZSA9\nIGdldEVsZW1lbnQobWF4U2lnblswXSwgZG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChjdXJyZW50RWxlICYmIG1heEVsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl\ndCBjdXJyZW50U2lnbk51bSwgbWF4U2lnbk51bTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBpZiAoXC9cXCguKlxcKVwvLnRlc3QoY3VyU2lnblsxXSkpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgY3VycmVudFNpZ25OdW0gPSBjdXJyZW50RWxlLmlubmVyVGV4dC5tYXRj\naChuZXcgUmVnRXhwKGN1clNpZ25bMV0pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgaWYgKGN1cnJlbnRTaWduTnVtKSBjdXJyZW50U2lnbk51bSA9IGN1cnJlbnRTaWduTnVtWzFd\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEVsZS5nZXRB\ndHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFNpZ25O\ndW0gPSBjdXJyZW50RWxlLmdldEF0dHJpYnV0ZShjdXJTaWduWzFdKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwvXFwoLipc\nXClcLy50ZXN0KG1heFNpZ25bMV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIG1heFNpZ25OdW0gPSBtYXhFbGUuaW5uZXJUZXh0Lm1hdGNoKG5ldyBSZWdFeHAobWF4U2lnblsx\nXSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4U2lnbk51bSkgbWF4\nU2lnbk51bSA9IG1heFNpZ25OdW1bMV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBl\nbHNlIGlmIChtYXhFbGUuZ2V0QXR0cmlidXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIG1heFNpZ25OdW0gPSBtYXhFbGUuZ2V0QXR0cmlidXRlKG1heFNpZ25bMV0pO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp\nZiAoY3VycmVudFNpZ25OdW0gJiYgbWF4U2lnbk51bSAmJiBjdXJyZW50U2lnbk51bSA9PSBtYXhT\naWduTnVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGF1c2UgPSB0cnVl\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRMaW5rSHJlZiA9IGZh\nbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAg\nICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdG9wU2lnbiA9ICgo\ndHlwZW9mIHRoaXMuY3VyU2l0ZVJ1bGUuc3RvcFNpZ24gPT09ICdmdW5jdGlvbicpID8gdGhpcy5j\ndXJTaXRlUnVsZS5zdG9wU2lnbiA6IEZ1bmN0aW9uKFwiZG9jXCIsIFwibmV4dExpbmtcIiwgJ1wi\ndXNlIHN0cmljdFwiOycgKyB0aGlzLmN1clNpdGVSdWxlLnN0b3BTaWduKSkoZG9jLCBuZXh0TGlu\nayk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RvcFNpZ24pIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBpc1BhdXNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICB0aGlzLm5leHRMaW5rSHJlZiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlKTtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJlbG9hZE9u\nZUltZyhzcmMpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtc\nbiAgICAgICAgICAgICAgICBsZXQgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7\nXG4gICAgICAgICAgICAgICAgaW1nLnNyYyA9IHNyYztcbiAgICAgICAgICAgICAgICB0aGlzLnBy\nZWxvYWREaXYuYXBwZW5kQ2hpbGQoaW1nKTtcbiAgICAgICAgICAgICAgICBpZiAoaW1nLmNvbXBs\nZXRlKSByZXNvbHZlKCdjb21wbGV0ZScpO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAg\nICAgICAgICAgICAgICBpbWcub25sb2FkID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICByZXNvbHZlKCdsb2FkJyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAg\nICAgICAgIGltZy5vbmVycm9yID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNv\nbHZlKCdlcnJvcicpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH0pLnRoZW4oZSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNyYyA9IHRo\naXMudW5DaGVja2VkSW1ncy5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIGlmIChzcmMpIHtcbiAg\nICAgICAgICAgICAgICAgICAgdGhpcy5wcmVsb2FkT25lSW1nKHNyYyk7XG4gICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAg\nIH1cblxuICAgICAgICBwcmVsb2FkSW1hZ2VIYW5kbGVyKCkge1xuICAgICAgICAgICAgaWYgKHRo\naXMucHJlbG9hZGluZ0ltYWdlIHx8ICF0aGlzLnVuQ2hlY2tlZEltZ3MubGVuZ3RoKSByZXR1cm47\nXG4gICAgICAgICAgICB0aGlzLnByZWxvYWRpbmdJbWFnZSA9IHRydWU7XG4gICAgICAgICAgICBs\nZXQgc3JjID0gdGhpcy51bkNoZWNrZWRJbWdzLnNoaWZ0KCksIGkgPSAwLCBwcm9taXNlTGlzdCA9\nIFtdO1xuXG4gICAgICAgICAgICB3aGlsZShzcmMpIHtcbiAgICAgICAgICAgICAgICBwcm9taXNl\nTGlzdC5wdXNoKHRoaXMucHJlbG9hZE9uZUltZyhzcmMpKTtcbiAgICAgICAgICAgICAgICBpZiAo\nKytpID4gNSkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcmMgPSB0aGlzLnVuQ2hlY2tlZEltZ3Muc2hp\nZnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBQcm9t\naXNlLmFsbChwcm9taXNlTGlzdCkudGhlbihlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBy\nZWxvYWRpbmdJbWFnZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAg\nICAgICBwcmVsb2FkKCkge1xuICAgICAgICAgICAgaWYgKCFydWxlc0RhdGEucHJlbG9hZCkgcmV0\ndXJuO1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUucHJlbG9hZCA9PT0gMCkgcmV0\ndXJuO1xuICAgICAgICAgICAgaWYgKCF0aGlzLm5leHRMaW5rSHJlZiB8fCB0aGlzLm5leHRMaW5r\nSHJlZiA9PSBcIiNcIikgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZVVu\nQ29tcGxldGUpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9\nPSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkeVN0YXRlVW5Db21wbGV0\nZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGYgPSB0aGlzO1xuICAgICAgICAgICAg\nICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibG9hZFwiLCBlID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgc2VsZi5yZWFkeVN0YXRlVW5Db21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICAgICAg\nICAgICAgICBzZWxmLnByZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAg\nICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXMs\nIHVybCA9IHRoaXMubmV4dExpbmtIcmVmO1xuICAgICAgICAgICAgbGV0IHBvc3RQYXJhbXMgPSB1\ncmwubWF0Y2goXC8jcHsoLiopfSRcLyk7XG4gICAgICAgICAgICBpZiAocG9zdFBhcmFtcykge1xu\nICAgICAgICAgICAgICAgIHBvc3RQYXJhbXMgPSBwb3N0UGFyYW1zWzFdO1xuICAgICAgICAgICAg\nICAgIHVybCA9IHVybC5yZXBsYWNlKFwvI3B7LipcLywgXCJcIik7XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICBfR01feG1saHR0cFJlcXVlc3Qoe1xuICAgICAgICAgICAgICAgIHVybDogdXJs\nLFxuICAgICAgICAgICAgICAgIG1ldGhvZDogcG9zdFBhcmFtcyA\/ICdQT1NUJyA6ICdHRVQnLFxu\nICAgICAgICAgICAgICAgIGRhdGE6IHBvc3RQYXJhbXMsXG4gICAgICAgICAgICAgICAgb3ZlcnJp\nZGVNaW1lVHlwZTogJ3RleHRcL2h0bWw7Y2hhcnNldD0nICsgY2hhcnNldCxcbiAgICAgICAgICAg\nICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogbG9jYXRpb24u\naHJlZixcbiAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBuYXZpZ2F0b3IudXNlckFn\nZW50LFxuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiAocG9zdFBhcmFtcyA\/\nIFwiYXBwbGljYXRpb25cL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIDogXCJ0ZXh0XC9odG1sXCIp\nICsgXCI7Y2hhcnNldD1cIiArIGNoYXJzZXQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAg\nICAgICAgICB0aW1lb3V0OiAxMDAwMCxcbiAgICAgICAgICAgICAgICBvbmxvYWQ6IGZ1bmN0aW9u\nKHJlcykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZG9jID0gbnVsbDtcbiAgICAgICAgICAg\nICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvYyA9IGRvY3VtZW50Lmlt\ncGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgnJyk7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCA9IGNyZWF0ZUhUTUwocmVzLnJlc3Bv\nbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBib2R5ID0gZ2V0Qm9keShkb2MpO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzZWxmLnByZWxvYWREaXYpIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBzZWxmLnByZWxvYWREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVt\nZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByZWxvYWREaXYu\naWQgPSBcInBhZ2V0dWFsLXByZWxvYWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBz\nZWxmLnByZWxvYWREaXYuc3R5bGUuY3NzVGV4dCA9ICdkaXNwbGF5Om5vbmUhaW1wb3J0YW50Oyc7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkuYXBwZW5kQ2hp\nbGQoc2VsZi5wcmVsb2FkRGl2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNo\nZWNrZWRJbWdzID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51bkNoZWNr\nZWRJbWdzID0gW107XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgICAgICBsZXQgY29kZSA9IHNlbGYuY3VyU2l0ZVJ1bGUucHJlbG9hZEltYWdlcztcbiAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChjb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgbGV0IGltZ1NyY0FyciA9IG5ldyBGdW5jdGlvbihcImRvY1wiLCAnXCJ1c2Ugc3RyaWN0XCI7\nJyArIGNvZGUpKGRvYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltZ1NyY0Fy\nciAmJiBpbWdTcmNBcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGltZ1NyY0Fyci5mb3JFYWNoKGltZ1NyYyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBpZiAoaW1nU3JjICYmICFzZWxmLmNoZWNrZWRJbWdzW2ltZ1NyY10pIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoZWNrZWRJbWdzW2lt\nZ1NyY10gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl\nbGYudW5DaGVja2VkSW1ncy5wdXNoKGltZ1NyYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm\nLnByZWxvYWRJbWFnZUhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBp\nZiAoY29kZSAhPT0gMCAmJiBjb2RlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGlmIChib2R5ICYmIGJvZHkuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBzZWxmLmxhenlJbWdBY3Rpb24oYm9keS5jaGlsZHJlbiwgZG9jKTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nW10uZm9yRWFjaC5jYWxsKGRvYy5pbWFnZXMsIGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBsZXQgaVNyYyA9IGkuc3JjO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBpZiAoaVNyYyAmJiAhc2VsZi5jaGVja2VkSW1nc1tpU3JjXSkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja2VkSW1nc1tpU3JjXSA9IHRydWU7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVuQ2hlY2tlZEltZ3MucHVz\naChpU3JjKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJl\nbG9hZEltYWdlSGFuZGxlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNhdGNoKGUpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7\nXG4gICAgICAgIH1cblxuICAgICAgICBnZXRJbnNlcnQocmVmcmVzaCkge1xuICAgICAgICAgICAg\naWYgKHJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY1BhZ2VFbGVtZW50ID0gbnVs\nbDtcbiAgICAgICAgICAgICAgICB0aGlzLmluc2VydCA9IG51bGw7XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICBpZiAodGhpcy5pbnNlcnQgJiYgdGhpcy5pbnNlcnQucGFyZW50Tm9kZSAmJiBk\nb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY29udGFpbnModGhpcy5pbnNlcnQpKSB7XG4gICAgICAg\nICAgICAgICAgcmV0dXJuIHRoaXMuaW5zZXJ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAg\naWYgKHRoaXMuY3VyU2l0ZVJ1bGUuaW5zZXJ0KSB7XG4gICAgICAgICAgICAgICAgbGV0IGluc2Vy\ndFNlbCA9IHRoaXMuY3VyU2l0ZVJ1bGUuaW5zZXJ0O1xuICAgICAgICAgICAgICAgIGlmIChBcnJh\neSAmJiBBcnJheS5pc0FycmF5ICYmIEFycmF5LmlzQXJyYXkoaW5zZXJ0U2VsKSkge1xuICAgICAg\nICAgICAgICAgICAgICBpbnNlcnRTZWwgPSBpbnNlcnRTZWxbbmV4dEluZGV4IDwgaW5zZXJ0U2Vs\nLmxlbmd0aCA\/IG5leHRJbmRleCA6IDBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICB0aGlzLmluc2VydCA9IGdldEVsZW1lbnQoaW5zZXJ0U2VsLCBkb2N1bWVudCwgbnVsbCwg\ndHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRv\nY1BhZ2VFbGVtZW50ICYmIHRoaXMuZG9jUGFnZUVsZW1lbnQubGVuZ3RoICYmICFkb2N1bWVudC5k\nb2N1bWVudEVsZW1lbnQuY29udGFpbnModGhpcy5kb2NQYWdlRWxlbWVudFswXSkpIHtcbiAgICAg\nICAgICAgICAgICAgICAgdGhpcy5kb2NQYWdlRWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIGxldCBwYWdlRWxlbWVudCA9IHRoaXMuZ2V0UGFnZUVsZW1l\nbnQoZG9jdW1lbnQsIF91bnNhZmVXaW5kb3cpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1\nclNpdGVSdWxlLnNtYXJ0ICYmIHRoaXMubmV4dExpbmtIcmVmID09IFwiI1wiICYmIHRoaXMuY3Vy\nU2l0ZVJ1bGUucGFnZUVsZW1lbnQgPT09ICdib2R5Jykge1xuICAgICAgICAgICAgICAgICAgICBk\nZWJ1ZyhcIlN0b3AgYXMganNOZXh0ICYgd2hvbGUgYm9keVwiKTtcbiAgICAgICAgICAgICAgICAg\nICAgaXNQYXVzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGFnZUVsZW1lbnQgJiYgcGFnZUVs\nZW1lbnQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcEVJbmRleCA9IHBh\nZ2VFbGVtZW50Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwRUxhc3QgPSBw\nYWdlRWxlbWVudFtwRUluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgd2hpbGUocEVMYXN0ICYm\nIGNvbXBhcmVOb2RlTmFtZShwRUxhc3QsIFtcImxpbmtcIiwgXCJtZXRhXCIsIFwic3R5bGVcIiwg\nXCJzY3JpcHRcIiwgXCJ0aXRsZVwiXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBFSW5k\nZXgtLTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBFTGFzdCA9IHBhZ2VFbGVtZW50W3BFSW5k\nZXhdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5z\nZXJ0ID0gcEVMYXN0Lm5leHRTaWJsaW5nID8gcEVMYXN0Lm5leHRTaWJsaW5nIDogcEVMYXN0LnBh\ncmVudE5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSk7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5z\nZXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgcGFnZUluaXQoZG9jLCBlbGVzKSB7XG4gICAgICAg\nICAgICBsZXQgY29kZSA9IHRoaXMuY3VyU2l0ZVJ1bGUucGFnZUluaXQ7XG4gICAgICAgICAgICBp\nZiAoY29kZSkge1xuICAgICAgICAgICAgICAgIGxldCBpbml0RnVuYyA9ICgodHlwZW9mIGNvZGUg\nPT0gJ2Z1bmN0aW9uJykgPyBjb2RlIDogRnVuY3Rpb24oXCJkb2NcIiwgXCJlbGVzXCIsICdcInVz\nZSBzdHJpY3RcIjsnICsgY29kZSkpO1xuICAgICAgICAgICAgICAgIGxldCBjaGVja0luaXQgPSAo\ncmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKGluaXRGdW5jKGRvYywgZWxlcykgPT09IGZhbHNlKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGNoZWNrSW5pdChyZXNvbHZlKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoZSk7\nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAg\nICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAg\nICBjaGVja0luaXQoZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2\nZShlKVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAg\nICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcGFnZUFjdGlvbihkb2MsIGVsZXMpIHtcbiAg\nICAgICAgICAgIGxldCBjb2RlID0gdGhpcy5jdXJTaXRlUnVsZS5wYWdlQWN0aW9uO1xuICAgICAg\nICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAg\nICAgICAoKHR5cGVvZiBjb2RlID09ICdmdW5jdGlvbicpID8gY29kZSA6IEZ1bmN0aW9uKFwiZG9j\nXCIsIFwiZWxlc1wiLCAnXCJ1c2Ugc3RyaWN0XCI7JyArIGNvZGUpKShkb2MsIGVsZXMpO1xuICAg\nICAgICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlKTtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9wZW5J\nbk5ld1RhYihlbGVzKTtcbiAgICAgICAgICAgIHRoaXMucmVwbGFjZUVsZW1lbnQoZG9jKTtcbiAg\nICAgICAgfVxuXG4gICAgICAgIG9wZW5Jbk5ld1RhYihlbGVzKSB7XG4gICAgICAgICAgICBpZiAo\nb3BlbkluTmV3VGFiKSB7XG4gICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKGVsZXMsIGVs\nZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUoZWxlLCBbXCJh\nXCJdKSAmJiBlbGUuaHJlZiAmJiAhXC9eKG1haWx0bzp8amF2YXNjcmlwdDopfCNcLy50ZXN0KGVs\nZS5ocmVmKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlLnNldEF0dHJpYnV0ZSgndGFy\nZ2V0Jywgb3BlbkluTmV3VGFiID09IDEgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICAgICAgICAg\nICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5j\nYWxsKGVsZS5xdWVyeVNlbGVjdG9yQWxsKCdhW2hyZWZdOm5vdChbaHJlZl49XCJtYWlsdG86XCJd\nKTpub3QoW2hyZWZePVwiamF2YXNjcmlwdDpcIl0pOm5vdChbaHJlZl49XCIjXCJdKScpLCBhID0+\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3BlbkluTmV3VGFiID09IDEpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcs\nICdfYmxhbmsnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEuZ2V0QXR0\ncmlidXRlKCdvbmNsaWNrJykgPT0gJ2F0YXJnZXQodGhpcyknKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBhLnJlbW92ZUF0dHJpYnV0ZSgnb25jbGljaycpO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nfSBlbHNlIGEuc2V0QXR0cmlidXRlKCd0YXJnZXQnLCAnX3NlbGYnKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7\nXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYXp5SW1nQWN0aW9uKGVsZXMs\nIGRvYykge1xuICAgICAgICAgICAgaWYgKCFlbGVzIHx8IGVsZXMubGVuZ3RoID09IDApIHJldHVy\nbjtcbiAgICAgICAgICAgIGxldCBsYXp5SW1nU3JjID0gdGhpcy5jdXJTaXRlUnVsZS5sYXp5SW1n\nU3JjO1xuICAgICAgICAgICAgaWYgKGxhenlJbWdTcmMgPT09IDAgfHwgbGF6eUltZ1NyYyA9PT0g\nJzAnKSByZXR1cm47XG4gICAgICAgICAgICBsZXQgaW1nTGF6eUF0dHJzID0gW107XG4gICAgICAg\nICAgICBsZXQgbGF6eUF0dHJzID0gW1wiZGl2W2RhdGEtdGh1bWJdfGRhdGEtc3JjXCIsIFwiZGl2\nLmltZ3xkYXRhLXNyY1wiLCBcImRpdi5sYXp5fGRhdGEtc3JjXCIsIFwiZGl2Lmxhenl8ZGF0YS1v\ncmlnaW5hbFwiLCBcImEubGF6eXxkYXRhLWJnXCIsIFwiYS5sYXp5bG9hZHxkYXRhLW9yaWdpbmFs\nXCJdO1xuICAgICAgICAgICAgbGV0IHJlbW92ZVByb3BzID0gW107XG4gICAgICAgICAgICBsZXQg\nc2V0TGF6eUltZyA9IGltZyA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHJlYWxTcmM7XG4gICAg\nICAgICAgICAgICAgaW1nTGF6eUF0dHJzLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICAgICAgICAg\nICAgICAgIHJlYWxTcmMgPSBpbWcuZ2V0QXR0cmlidXRlKGxhenlJbWdTcmNbMF0pO1xuICAgICAg\nICAgICAgICAgICAgICBpZiAocmVhbFNyYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVt\nb3ZlUHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp\nbWcucmVtb3ZlQXR0cmlidXRlKHByb3AudHJpbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1nLnNyYyA9IHJlYWxTcmM7XG4gICAgICAg\nICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGlmICghcmVhbFNyYykge1xuICAgICAgICAgICAg\nICAgICAgICBsZXQgbGF6eUF0dHIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1n\nLmdldEF0dHJpYnV0ZShcIl9zcmNcIikgJiYgIWltZy5zcmMpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGxhenlBdHRyID0gXCJfc3JjXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFs\nU3JjID0gaW1nLmdldEF0dHJpYnV0ZShsYXp5QXR0cik7XG4gICAgICAgICAgICAgICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpIGluIGxhenlJbWdBdHRy\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF6eUF0dHIgPSBsYXp5SW1nQXR0cltp\nXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXR0clZhbHVlID0gaW1nLmdldEF0\ndHJpYnV0ZShsYXp5QXR0cik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJW\nYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFsU3JjID0gYXR0clZh\nbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWFsU3JjICYmIGltZy5fbGF6\neXJpYXMgJiYgaW1nLl9sYXp5cmlhcy5zcmNzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHJlYWxTcmMgPSBpbWcuX2xhenlyaWFzLnNyY3NldFtpbWcuX2xhenlyaWFzLnNyY3NldC5sZW5n\ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhenlBdHRyID0gXCJfbGF6eXJpYXNc\nIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlYWxT\ncmMgJiYgaW1nLnNyY3NldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF6eUF0dHIgPSBc\nInNyY3NldFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNyY3MgPSBpbWcuc3Jjc2V0\nLnNwbGl0KFwvW3h3XSxcL2kpLCBsYXJnZVNpemUgPSAwO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgc3Jjcy5mb3JFYWNoKHNyY2kgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl\ndCBzcmNJbmZvID0gc3JjaS50cmltKCkuc3BsaXQoXCIgXCIpLCBjdXJTaXplID0gcGFyc2VJbnQo\nc3JjSW5mb1sxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNyY0luZm9bMV0g\nJiYgY3VyU2l6ZSA+IGxhcmdlU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBsYXJnZVNpemUgPSBjdXJTaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy\nZWFsU3JjID0gc3JjSW5mb1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgICBpZiAocmVhbFNyYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1nLnNy\nYyA9IHJlYWxTcmM7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbWcucmVtb3ZlQXR0cmlidXRl\nKFwic3Jjc2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1nLnJlbW92ZUF0dHJpYnV0\nZShsYXp5QXR0cik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1nLmNsYXNzTGlzdCAm\nJiBpbWcuY2xhc3NMaXN0LmNvbnRhaW5zICYmIGltZy5jbGFzc0xpc3QuY29udGFpbnMoXCJsYXp5\nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1nLmNsYXNzTGlzdC5yZW1vdmUo\nXCJsYXp5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGltZy5zdHlsZS5kaXNwbGF5ID09IFwibm9uZVwiKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgaW1nLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGltZy5zdHlsZS52aXNpYmls\naXR5ID09IFwiaGlkZGVuXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWcuc3R5\nbGUudmlzaWJpbGl0eSA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgICAgICBpZiAoaW1nLnN0eWxlLm9wYWNpdHkgPT0gMCkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGltZy5zdHlsZS5vcGFjaXR5ID0gXCJcIjtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobGF6eUltZ1NyYykge1xuICAgICAgICAg\nICAgICAgIGlmICghQXJyYXkuaXNBcnJheShsYXp5SW1nU3JjKSkge1xuICAgICAgICAgICAgICAg\nICAgICBsYXp5QXR0cnMgPSBsYXp5SW1nU3JjLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsYXp5QXR0cnMgPSBsYXp5SW1nU3JjWzBd\nLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcHMgPSBsYXp5SW1n\nU3JjWzFdLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICBsYXp5QXR0cnMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgICAgICAgICBs\nZXQgYXR0ckFyciA9IGF0dHIuc3BsaXQoXCJ8XCIpO1xuICAgICAgICAgICAgICAgIGlmIChhdHRy\nQXJyLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgICAgICAgICAgICBpbWdMYXp5QXR0cnMucHVz\naChhdHRyLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAg\nICAgICAgbGV0IHNlbGVjdG9yID0gYXR0ckFyclswXS50cmltKCk7XG4gICAgICAgICAgICAgICAg\nICAgIGxldCBsYXp5QXR0ciA9IGF0dHJBcnJbMV0udHJpbSgpO1xuICAgICAgICAgICAgICAgICAg\nICBpZiAoc2VsZWN0b3IgPT0gXCJpbWdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW1n\nTGF6eUF0dHJzLnB1c2gobGF6eUF0dHIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgKz0gXCJbXCIgKyBsYXp5QXR0ciArIFwi\nXVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKGRvYy5xdWVyeVNl\nbGVjdG9yQWxsKHNlbGVjdG9yKSwgZWxlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBlbGUuc3R5bGUuc2V0UHJvcGVydHkoXCJiYWNrZ3JvdW5kLWltYWdlXCIsIFwidXJsKFwiICsg\nZWxlLmdldEF0dHJpYnV0ZShsYXp5QXR0cikgKyBcIilcIiwgXCJpbXBvcnRhbnRcIik7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcHMuZm9yRWFjaChwcm9wID0+IHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlLnJlbW92ZUF0dHJpYnV0ZShwcm9wLnRy\naW0oKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKGRvYy5xdWVyeVNlbGVj\ndG9yQWxsKFwiaW1nLHBpY3R1cmU+c291cmNlXCIpLCBpbWcgPT4ge1xuICAgICAgICAgICAgICAg\nIHNldExhenlJbWcoaW1nKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAg\nY2FuTGlzdGVuVXJsQ2hhbmdlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUp\nIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJTaXRlUnVsZS5saXN0ZW5VcmxDaGFuZ2Ug\nPT09IHRydWUpIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1clNpdGVS\ndWxlLmxpc3RlblVybENoYW5nZSA9PT0gZmFsc2UpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAg\nICAgICBpZiAodGhpcy5kb2NFbGVtZW50VmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBy\nZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjaGVja0NsaWNrSHJlZigpIHtc\nbiAgICAgICAgICAgIGlmICh0aGlzLm5leHRMaW5rSHJlZiA9PT0gJyMnKSB7XG4gICAgICAgICAg\nICAgICAgdGhpcy51cmxDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgaXNQYXVzZSA9IHRydWU7\nXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm5leHRMaW5rSHJlZikgaXNMb2FkaW5nID0gZmFs\nc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBuZWVkQ2hlY2tDbGljayhl\nbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHRMaW5rSHJlZiA9PT0gJyMnICYmICFw\naWNrZXIuY29udGFpbnMoZWxlKSAmJiBlbGUucGFyZW50Tm9kZSAmJiAhZWxlLnBhcmVudE5vZGUu\nY2xhc3NMaXN0LmNvbnRhaW5zKCdwYWdldHVhbF9wYWdlQmFyJyk7XG4gICAgICAgIH1cblxuICAg\nICAgICBkb2NFbGVtZW50VmFsaWQoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZG9jUGFnZUVs\nZW1lbnQgfHwgdGhpcy5kb2NQYWdlRWxlbWVudC5sZW5ndGggPT0gMCkgcmV0dXJuIGZhbHNlO1xu\nICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrUGFnZUVsZSkge1xuICAgICAgICAgICAgICAgIGxl\ndCBlbGU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZG9jUGFnZUVsZW1lbnQubGVuZ3RoID09\nIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlID0gdGhpcy5kb2NQYWdlRWxlbWVudFswXTtc\nbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbGUgPSB0aGlz\nLmRvY1BhZ2VFbGVtZW50W01hdGguZmxvb3IodGhpcy5kb2NQYWdlRWxlbWVudC5sZW5ndGggXC8g\nMildO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZWxlLmNoaWxkcmVu\nLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBlbGUgPSBlbGUuY2hpbGRyZW5bTWF0aC5m\nbG9vcihlbGUuY2hpbGRyZW4ubGVuZ3RoIFwvIDIpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgdGhpcy5jaGVja1BhZ2VFbGUgPSBlbGU7XG4gICAgICAgICAgICB9XG4gICAg\nICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKHRoaXMuY2hl\nY2tQYWdlRWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVybENoYW5nZWQoKSB7XG4gICAgICAg\nICAgICB1cmxDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJBZGRlZEVsZW1l\nbnRzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpbml0UGFnZShjYWxsYmFjaykge1xuICAgICAg\nICAgICAgbGV0IHNlbGYgPSB0aGlzO1xuICAgICAgICAgICAgaWYgKHNlbGYuaW5pdGluZykgcmV0\ndXJuO1xuICAgICAgICAgICAgc2VsZi5pbml0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRp\nbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuaW5pdGluZyA9IGZhbHNlO1xuICAg\nICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIGN1clBhZ2UgPSAxO1xuICAgICAgICAgICAg\ndXJsQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdHJ5VGltZXMgPSAwO1xuICAgICAgICAg\nICAgdGhpcy5jbGVhckFkZGVkRWxlbWVudHMoKTtcbiAgICAgICAgICAgIHRoaXMuaW5zZXJ0ID0g\nbnVsbDtcbiAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eUl0ZW1zID0gW107XG4gICAgICAgICAg\nICB0aGlzLnZpc2libGVJbmRleCA9IC0xO1xuICAgICAgICAgICAgdGhpcy5wYWdlRG9jID0gZG9j\ndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLm5leHRMaW5rSHJlZiA9IG51bGw7XG4gICAgICAgICAg\nICB0aGlzLmN1clVybCA9IGxvY2F0aW9uLmhyZWY7XG4gICAgICAgICAgICB0aGlzLm9sZFVybCA9\nIFwiXCI7XG4gICAgICAgICAgICB0aGlzLmluaXRVcmwgPSBsb2NhdGlvbi5ocmVmO1xuICAgICAg\nICAgICAgdGhpcy5oaXN0b3J5VXJsID0gXCJcIjtcbiAgICAgICAgICAgIHRoaXMucG9zc2libGVD\naGVjayA9IDA7XG4gICAgICAgICAgICBsZXQgYmFzZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io\nXCJiYXNlXCIpO1xuICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IChiYXNlICYmIGJhc2UuaHJl\nZikgfHwgbG9jYXRpb24uaHJlZjtcbiAgICAgICAgICAgIHRoaXMuZ2V0UnVsZShhc3luYyAoKSA9\nPiB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuY3VyU2l0ZVJ1bGUuc2lkZUNvbnRyb2xsZXIg\nPT09IHRydWUgfHwgKHNlbGYuY3VyU2l0ZVJ1bGUuc2lkZUNvbnRyb2xsZXIgIT09IGZhbHNlICYm\nIHJ1bGVzRGF0YS5zaWRlQ29udHJvbGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNQYXVz\nZSA9IG1hbnVhbFBhdXNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBoaWRl\nUGFnZUJhciA9IHJ1bGVzRGF0YS5vcGFjaXR5ID09IDAgfHwgc2VsZi5jdXJTaXRlUnVsZS5wYWdl\nQmFyID09PSAwO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yoc2VsZi5jdXJTaXRlUnVsZS5y\nYXRlKSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICByYXRlID0gc2Vs\nZi5jdXJTaXRlUnVsZS5yYXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBp\nZiAoc2VsZi5jdXJTaXRlUnVsZS5lbmFibGUgPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBk\nZWJ1ZyhcIlN0b3AgYXMgcnVsZSBkaXNhYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpc1Bh\ndXNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgX0dNX3JlZ2lzdGVyTWVudUNvbW1hbmQo\naTE4bihcImVuYWJsZVwiKSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1Rp\ncHMoaTE4bihcImVuYWJsZVNpdGVUaXBzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlm\nKCFzZWxmLmN1c3RvbVJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j\ndXN0b21SdWxlcyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgICAgICAgZm9yIChsZXQgaSBpbiBzZWxmLmN1c3RvbVJ1bGVzKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuY3VzdG9tUnVsZXNbaV0udXJsID09IHNlbGYuY3Vy\nU2l0ZVJ1bGUudXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3Vz\ndG9tUnVsZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi\ncmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1clNpdGVSdWxlLmVuYWJsZSA9\nIDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmN1c3RvbVJ1bGVzLnVuc2hpZnQoc2Vs\nZi5jdXJTaXRlUnVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0o\nXCJjdXN0b21SdWxlc1wiLCBzZWxmLmN1c3RvbVJ1bGVzKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAg\nICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBp\nZiAocnVsZXNEYXRhLnNpZGVDb250cm9sbGVyQWx3YXlzKSB7XG4gICAgICAgICAgICAgICAgICAg\nIHNpZGVDb250cm9sbGVyLnNldHVwKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgIFwvXC\/oi6XmmK\/lho3kuoLljLnphY3lsLHkuI3nt6nlrZh3ZWRhdGHvvIzmiJbogIXlj6rl\nnKjmib7lrozmnKzlnLDopo\/liYfkuYvlvozlho3ogIPmha53ZWRhdGHnmoTnt6nlrZhcbiAgICAg\nICAgICAgICAgICBpZiAoc2VsZi5jdXJTaXRlUnVsZS5zbWFydCkge1xuICAgICAgICAgICAgICAg\nICAgICBkZWxldGUgc2VsZi5jdXJTaXRlUnVsZS5wYWdlRWxlbWVudDtcbiAgICAgICAgICAgICAg\nICAgICAgaWYgKCFzZWxmLnBvc3NpYmxlUnVsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nc2VsZi5zbWFydFJ1bGVzID0gc2VsZi5zbWFydFJ1bGVzLmZpbHRlcihpdGVtID0+IHtyZXR1cm4g\naXRlbSAmJiBpdGVtLnVybCAhPSBzZWxmLmN1clNpdGVSdWxlLnVybH0pO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgc2VsZi5zbWFydFJ1bGVzLnVuc2hpZnQoc2VsZi5jdXJTaXRlUnVsZSk7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5zbWFydFJ1bGVzLmxlbmd0aCA+IDEwMCkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc21hcnRSdWxlcy5wb3AoKTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uu\nc2V0SXRlbShcInNtYXJ0UnVsZXNcIiwgc2VsZi5zbWFydFJ1bGVzKTtcbiAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2VsZi5jdXJTaXRlUnVsZSAmJiBz\nZWxmLmN1clNpdGVSdWxlLnVybC5sZW5ndGggPiAxMykge1xuICAgICAgICAgICAgICAgICAgICBz\nZWxmLmFkZFRvSHBSdWxlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBs\nZXQgY3NzO1xuICAgICAgICAgICAgICAgIGlmIChydWxlc0RhdGEuY3VzdG9tQ3NzICYmIHNlbGYu\nY3VyU2l0ZVJ1bGUuY3NzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBnbG9iYWxDc3NBcnIg\nPSBydWxlc0RhdGEuY3VzdG9tQ3NzLnNwbGl0KFwiaW5JZnJhbWU6XCIpO1xuICAgICAgICAgICAg\nICAgICAgICBsZXQgcnVsZUNzc0FyciA9IHNlbGYuY3VyU2l0ZVJ1bGUuY3NzLnNwbGl0KFwiaW5J\nZnJhbWU6XCIpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbWFpbkNzcyA9IGdsb2JhbENzc0Fy\nclswXSArIHJ1bGVDc3NBcnJbMF0sIGluQ3NzID0gKGdsb2JhbENzc0FyclsxXSB8fCBcIlwiKSAr\nIChydWxlQ3NzQXJyWzFdIHx8IFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICBjc3MgPSBtYWlu\nQ3NzICsgKGluQ3NzID8gKFwiaW5JZnJhbWU6XCIgKyBpbkNzcykgOiBcIlwiKTtcbiAgICAgICAg\nICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjc3MgPSBzZWxmLmN1clNpdGVS\ndWxlLmNzcyB8fCBydWxlc0RhdGEuY3VzdG9tQ3NzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICBpZiAoY3NzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjc3NBcnIgPSBj\nc3Muc3BsaXQoXCJpbklmcmFtZTpcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjc3NBcnIg\nJiYgY3NzQXJyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX0dNX2FkZFN0eWxl\nKGNzc0FyclswXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgaWYgKFwvc2lkZXNlYXJjaD0oMXx0cnVlKSRcLy50ZXN0KHNlbGYuY3Vy\nVXJsKSkge1xuICAgICAgICAgICAgICAgICAgICBvcGVuSW5OZXdUYWIgPSAwO1xuICAgICAgICAg\nICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNlbGYuY3VyU2l0ZVJ1bGUub3BlbkluTmV3VGFiICE9\nPSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBvcGVuSW5OZXdUYWIgPSBzZWxm\nLmN1clNpdGVSdWxlLm9wZW5Jbk5ld1RhYiA\/IDEgOiAyO1xuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICBsZXQgYXV0b0NsaWNrID0gc2VsZi5jdXJTaXRlUnVsZS5hdXRvQ2xpY2s7\nXG4gICAgICAgICAgICAgICAgaWYgKGF1dG9DbGljaykge1xuICAgICAgICAgICAgICAgICAgICBs\nZXQgYXV0b0NsaWNrQnRuO1xuICAgICAgICAgICAgICAgICAgICBhdXRvQ2xpY2tCdG4gPSBnZXRF\nbGVtZW50KGF1dG9DbGljaywgZG9jdW1lbnQsIG51bGwsIHRydWUpO1xuICAgICAgICAgICAgICAg\nICAgICBpZiAoYXV0b0NsaWNrQnRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbXVDbGlj\nayhhdXRvQ2xpY2tCdG4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgIGxldCBjb2RlID0gc2VsZi5jdXJTaXRlUnVsZS5pbml0O1xuICAg\nICAgICAgICAgICAgIGlmIChjb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICBhd2FpdCAoKHR5cGVvZiBjb2RlID09ICdmdW5jdGlvbicpID8g\nY29kZSA6IG5ldyBBc3luY0Z1bmN0aW9uKCdkb2MnLCAnd2luJywgJ2lmcmFtZScsICdjbGljaycs\nICdlbnRlcicsICdpbnB1dCcsICdzbGVlcCcsICdcInVzZSBzdHJpY3RcIjsnICsgY29kZSkpKG51\nbGwsIG51bGwsIG51bGwsIGFzeW5jIHNlbCA9PiB7YXdhaXQgY2xpY2tBY3Rpb24oc2VsLCBkb2N1\nbWVudCl9LCBhc3luYyBzZWwgPT4ge2F3YWl0IGVudGVyQWN0aW9uKHNlbCwgZG9jdW1lbnQpfSwg\nYXN5bmMgKHNlbCwgdikgPT57YXdhaXQgaW5wdXRBY3Rpb24oc2VsLCB2LCBkb2N1bWVudCl9LCBh\nc3luYyB0aW1lID0+IHthd2FpdCBzbGVlcCh0aW1lKX0pO1xuICAgICAgICAgICAgICAgICAgICB9\nIGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHNl\nbGYuZ2V0TmV4dExpbmsoZG9jdW1lbnQsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChzZWxm\nLmN1clNpdGVSdWxlLnBhZ2VOdW0gJiYgc2VsZi5uZXh0TGlua0hyZWYgJiYgc2VsZi5uZXh0TGlu\na0hyZWYgIT0gXCIjXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bTFzdCA9IHNlbGYu\nZ2V0UGFnZU51bUZyb21VcmwobG9jYXRpb24uaHJlZiwgMSk7XG4gICAgICAgICAgICAgICAgICAg\nIGxldCBudW0ybmQgPSBzZWxmLmdldFBhZ2VOdW1Gcm9tVXJsKHNlbGYubmV4dExpbmtIcmVmLCAx\nKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KG51bTJuZCkgIT0gcGFyc2VJbnQo\nbnVtMXN0KSArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VyU2l0ZVJ1bGUu\ncGFnZU51bSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuY3VyU2l0ZVJ1bGUuc21hcnQgJiYgc2VsZi5uZXh0\nTGlua0hyZWYgPT0gZmFsc2UgJiYgc2VsZi5wb3NzaWJsZVJ1bGUpIHtcbiAgICAgICAgICAgICAg\nICAgICAgbGV0IHVybFJlZyA9IG5ldyBSZWdFeHAoc2VsZi5wb3NzaWJsZVJ1bGUudXJsLCBcImlc\nIik7XG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrUG9zc2libGUgKCkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYucG9zc2libGVDaGVjaysrIDwgMykge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZi5jdXJTaXRlUnVsZS5zbWFydCkge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhyZWYgPSBsb2NhdGlvbi5ocmVmLnNs\naWNlKDAsIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJs\nUmVnLnRlc3QoaHJlZikgJiYgc2VsZi5ydWxlTWF0Y2goc2VsZi5wb3NzaWJsZVJ1bGUpKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbml0UGFnZSgoKSA9\nPiB7fSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgY2hlY2tQ\nb3NzaWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tQb3NzaWJsZSgp\nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZWxmLnJlZnJlc2hCeUNsaWNr\nKCk7XG4gICAgICAgICAgICAgICAgaWYgKGVtdUlmcmFtZSAmJiBlbXVJZnJhbWUucGFyZW50Tm9k\nZSkge1xuICAgICAgICAgICAgICAgICAgICBlbXVJZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGls\nZChlbXVJZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgICBlbXVJZnJhbWUgPSBudWxsO1xuICAg\nICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYWdlRWxlbWVudENzcyA9IHNl\nbGYuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnRDc3MgfHwgcnVsZXNEYXRhLnBhZ2VFbGVtZW50Q3Nz\nO1xuICAgICAgICAgICAgICAgIGlmIChwYWdlRWxlbWVudENzcyAmJiBwYWdlRWxlbWVudENzcyAh\nPT0gJzAnKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0UGFnZUVsZW1lbnQoZG9jdW1l\nbnQsIF91bnNhZmVXaW5kb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBj\nYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIGxldCBpbml0UnVuID0gdHlwZW9mIHNlbGYuY3Vy\nU2l0ZVJ1bGUuaW5pdFJ1biA9PSAndW5kZWZpbmVkJyA\/IHJ1bGVzRGF0YS5pbml0UnVuIDogc2Vs\nZi5jdXJTaXRlUnVsZS5pbml0UnVuO1xuICAgICAgICAgICAgICAgIGlmIChzZWxmLm5leHRMaW5r\nSHJlZikge1xuICAgICAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlci5zZXR1cCgpO1xuICAg\nICAgICAgICAgICAgICAgICBpZiAoaW5pdFJ1biAmJiBpbml0UnVuICE9IGZhbHNlKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBuZXh0UGFnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpc1BhdXNlID0g\nZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFzeW5jIGhvb2tV\ncmxTZXRFbGUoZWxlLCBkb2MpIHtcbiAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAg\nICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAg\nIGxldCBjYXRjaFVybCA9IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBlbGUuZGF0YXNldC51\ncmwgPSBzZWxmLmNhdGNoZWRVcmw7XG4gICAgICAgICAgICAgICAgICAgIGVsZS5zZXRBdHRyaWJ1\ndGUoJ29uY2xpY2snLCAnd2luZG93Lm9wZW4odGhpcy5kYXRhc2V0LnVybCknKTtcbiAgICAgICAg\nICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BhZ2V0dWFsX29wZW5Vcmwn\nLCBjYXRjaFVybCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAg\nICAgICB9O1xuICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdldHVh\nbF9vcGVuVXJsJywgY2F0Y2hVcmwpO1xuICAgICAgICAgICAgICAgIGVtdUNsaWNrKGVsZSwgZG9j\nKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYXN5bmMgaG9va1VybChk\nb2MpIHtcbiAgICAgICAgICAgIGxldCBzZWwgPSB0aGlzLmN1clNpdGVSdWxlLmhvb2tVcmw7XG4g\nICAgICAgICAgICBpZiAoIXNlbCkgcmV0dXJuO1xuICAgICAgICAgICAgbGV0IHNlbGYgPSB0aGlz\nO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluaXRIb29rKSB7XG4gICAgICAgICAgICAgICAgdGhp\ncy5pbml0SG9vayA9IHRydWU7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5\nKGRvYy5kZWZhdWx0VmlldywgJ29wZW4nLCB7XG4gICAgICAgICAgICAgICAgICAgIGdldDogZnVu\nY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChzKSA9PiB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jYXRjaGVkVXJsID0gcztcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB2YXIgZSA9IG5ldyBDdXN0b21FdmVudCgncGFnZXR1YWxfb3BlblVy\nbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KGUp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZWxlcyA9IGdl\ndEFsbEVsZW1lbnRzKHNlbCwgZG9jKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg\nZWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHNsZWVwKDEpO1xuICAg\nICAgICAgICAgICAgIGxldCBlbGUgPSBlbGVzW2ldO1xuICAgICAgICAgICAgICAgIGlmICghZWxl\nLmRhdGFzZXQudXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaG9va1VybFNl\ndEVsZShlbGUsIGRvYyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAg\nICB9XG5cbiAgICAgICAgYmVnaW5Mb2FkaW5nKCkge1xuICAgICAgICAgICAgaXNMb2FkaW5nID0g\ndHJ1ZTtcbiAgICAgICAgICAgIGlmICh0YXJnZXRZID49IDApIHtcbiAgICAgICAgICAgICAgICB3\naW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdldFksIGJlaGF2aW9yOiAnaW5zdGFudCd9KTtcbiAg\nICAgICAgICAgICAgICB0YXJnZXRZID0gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBs\nZXQgbGFzdFNjcm9sbFRvcCA9IGdldEJvZHkoZG9jdW1lbnQpLnNjcm9sbFRvcCB8fCBkb2N1bWVu\ndC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgcnVsZVBhcnNlci5pbnNl\ncnRFbGVtZW50KGxvYWRpbmdEaXYpO1xuICAgICAgICAgICAgaWYgKGZvcmNlU3RhdGUgPT0gMikg\ne1xuICAgICAgICAgICAgICAgIGdldEJvZHkoZG9jdW1lbnQpLmFwcGVuZENoaWxkKGxvYWRpbmdE\naXYpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyZW50ID0g\nbG9hZGluZ0Rpdi5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5h\nbWUocGFyZW50LCBbXCJ0Ym9keVwiXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0g\ncGFyZW50LnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlm\nIChjb21wYXJlTm9kZU5hbWUocGFyZW50LCBbXCJ0YWJsZVwiXSkpIHtcbiAgICAgICAgICAgICAg\nICAgICAgcGFyZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobG9hZGluZ0Rpdik7XG4gICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCku\nc2Nyb2xsVG9wID0gbGFzdFNjcm9sbFRvcDtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50\nRWxlbWVudC5zY3JvbGxUb3AgPSBsYXN0U2Nyb2xsVG9wO1xuICAgICAgICAgICAgaWYgKHNpZGVD\nb250cm9sbGVyLmluaXRlZCkge1xuICAgICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyLmZyYW1l\nLmNsYXNzTGlzdC5hZGQoXCJwYWdldHVhbC1zaWRlQ29udHJvbGxlci1sb2FkaW5nXCIpO1xuICAg\nICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5zZXJ0RWxlbWVudChlbGUpIHtcbiAg\nICAgICAgICAgIGlmICghdGhpcy5pbnNlcnQgfHwgIXRoaXMuaW5zZXJ0LnBhcmVudE5vZGUpIHtc\nbiAgICAgICAgICAgICAgICB0aGlzLmdldEluc2VydCgpO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgaWYgKHRoaXMuaW5zZXJ0ICYmIHRoaXMuaW5zZXJ0LnBhcmVudE5vZGUpIHtcbiAgICAg\nICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKGVsZS5ub2Rl\nTmFtZSA9PSBcIiNkb2N1bWVudC1mcmFnbWVudFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIFtd\nLmZvckVhY2guY2FsbChlbGUuY2hpbGRyZW4sIGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIHNlbGYuYWRkZWRFbGVQb29sLnB1c2goZWwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtc\nbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGVk\nRWxlUG9vbC5wdXNoKGVsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlm\nICh0aGlzLmN1clNpdGVSdWxlLmluc2VydFBvcyA9PSAyIHx8IHRoaXMuY3VyU2l0ZVJ1bGUuaW5z\nZXJ0UG9zID09IFwiaW5cIikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VydC5hcHBl\nbmRDaGlsZChlbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAg\nICAgIHRoaXMuaW5zZXJ0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZSwgdGhpcy5pbnNlcnQp\nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAg\nIG5vVmFsaWRDb250ZW50KHVybCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmN1clNpdGVSdWxl\nLm5leHRMaW5rQnlVcmwpIHNob3dUaXBzKGkxOG4oXCJub1ZhbGlkQ29udGVudFwiKSwgdXJsKTtc\nbiAgICAgICAgfVxuXG4gICAgICAgIGFzeW5jIGluc2VydFBhZ2UoZG9jLCBlbGVzLCB1cmwsIGNh\nbGxiYWNrLCB0cmllZCkge1xuICAgICAgICAgICAgdGhpcy5vbGRVcmwgPSB0aGlzLmN1clVybDtc\nbiAgICAgICAgICAgIGxldCBvbGRUaXRsZSA9IGRvY3VtZW50LnRpdGxlO1xuICAgICAgICAgICAg\ndHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgb2xkVGl0bGUgPSB0aGlzLnBhZ2VEb2MudGl0bGU7\nXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICAgICAgdGhpcy5wYWdlRG9jID0g\nZG9jO1xuICAgICAgICAgICAgdGhpcy5jdXJVcmwgPSB1cmw7XG4gICAgICAgICAgICBpc0xvYWRp\nbmcgPSB0cnVlO1xuICAgICAgICAgICAgbGV0IG5leHRMaW5rID0gYXdhaXQgdGhpcy5nZXROZXh0\nTGluayhkb2MpO1xuICAgICAgICAgICAgdGhpcy5uZXh0VGl0bGUgPSBcIlwiO1xuICAgICAgICAg\nICAgaWYgKHRoaXMuY3VyU2l0ZVJ1bGUucGFnZUJhclRleHQpIHtcbiAgICAgICAgICAgICAgICBp\nZiAodGhpcy5jdXJTaXRlUnVsZS5wYWdlQmFyVGV4dCA9PSAxIHx8IHRoaXMuY3VyU2l0ZVJ1bGUu\ncGFnZUJhclRleHQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUaXRs\nZSA9IGRvYy50aXRsZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAg\nICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0VGl0bGUgPSAoKHR5\ncGVvZiB0aGlzLmN1clNpdGVSdWxlLnBhZ2VCYXJUZXh0ID09ICdmdW5jdGlvbicpID8gdGhpcy5j\ndXJTaXRlUnVsZS5wYWdlQmFyVGV4dCA6IEZ1bmN0aW9uKFwiZG9jXCIsJ1widXNlIHN0cmljdFwi\nOycgKyB0aGlzLmN1clNpdGVSdWxlLnBhZ2VCYXJUZXh0KSkoZG9jKTtcbiAgICAgICAgICAgICAg\nICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlKTtcbiAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIGlmIChjdXJQYWdlID09IDEgJiYgIXRyaWVkICYmICFuZXh0TGluayAmJiB0aGlz\nLmN1clNpdGVSdWxlLnNtYXJ0ICYmIHRoaXMuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnQgJiYgdGhp\ncy5jdXJTaXRlUnVsZS5hY3Rpb24gIT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VyU2l0\nZVJ1bGUuYWN0aW9uID0gMTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1clVybCA9IGxvY2F0aW9u\nLmhyZWY7XG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAg\nICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGFyZ2V0\nWSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiB0YXJnZXRZ\nLCBiZWhhdmlvcjogJ2luc3RhbnQnfSk7XG4gICAgICAgICAgICAgICAgdGFyZ2V0WSA9IC0xO1xu\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGxhc3RTY3JvbGxUb3AgPSBnZXRCb2R5KGRv\nY3VtZW50KS5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtc\nbiAgICAgICAgICAgIHRoaXMuZ2V0SW5zZXJ0KCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnBh\nZ2VJbml0KGRvYywgZWxlcyk7XG4gICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXMsIG5ld0VsZXMg\nPSBbXTtcbiAgICAgICAgICAgIGlmICghZWxlcyB8fCBlbGVzLmxlbmd0aCA9PSAwIHx8ICFzZWxm\nLmluc2VydCB8fCAhc2VsZi5pbnNlcnQucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgIGlm\nIChjYWxsYmFjaykgY2FsbGJhY2soZWxlcyk7XG4gICAgICAgICAgICAgICAgbG9hZFBhZ2VPdmVy\nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykg\nY2FsbGJhY2soZWxlcyk7XG4gICAgICAgICAgICAgICAgbG9hZFBhZ2VPdmVyKCk7XG4gICAgICAg\nICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21l\nbnQoKTtcbiAgICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwoZWxlcywgZWxlID0+IHtcbiAg\nICAgICAgICAgICAgICAgICAgbGV0IG5ld0VsZSA9IGVsZS5jbG9uZU5vZGUodHJ1ZSk7XG4gICAg\nICAgICAgICAgICAgICAgIGxldCBvbGRDYW52YXNzID0gZWxlLnF1ZXJ5U2VsZWN0b3JBbGwoXCJj\nYW52YXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXdDYW52YXNzID0gbmV3RWxlLnF1\nZXJ5U2VsZWN0b3JBbGwoXCJjYW52YXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxm\nLnVwZGF0ZVVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKG5l\nd0VsZS5xdWVyeVNlbGVjdG9yQWxsKFwiaW1nXCIpLCBpbWcgPT4ge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGlmIChpbWcuZ2V0QXR0cmlidXRlKFwic3JjXCIpKSBpbWcuc3JjID0gc2Vs\nZi5jYW5vbmljYWxVcmkoaW1nLmdldEF0dHJpYnV0ZShcInNyY1wiKSk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbChu\nZXdFbGUucXVlcnlTZWxlY3RvckFsbChcImFcIiksIGEgPT4ge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChhLmdldEF0dHJpYnV0ZShcImhyZWZcIikpIGEuaHJlZiA9IHNlbGYuY2Fu\nb25pY2FsVXJpKGEuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSk7XG4gICAgICAgICAgICAgICAgICAg\nICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBmb3Ig\nKGxldCBpID0gMDsgaSA8IG9sZENhbnZhc3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGxldCBvbGRDYW52YXMgPSBvbGRDYW52YXNzW2ldO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgbGV0IG5ld0NhbnZhcyA9IG5ld0NhbnZhc3NbaV07XG4gICAgICAgICAgICAgICAg\nICAgICAgICBpZiAob2xkQ2FudmFzLndpZHRoICYmIG9sZENhbnZhcy5oZWlnaHQpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBuZXdDYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2Uob2xkQ2FudmFzLCAwLCAw\nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHt9XG4gICAgICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgaWYgKCFjb21wYXJlTm9kZU5hbWUobmV3RWxlLCBbXCJzdHlsZVwiLCBcInNjcmlwdFwiXSkp\nIHNlbGYudmlzaWJpbGl0eUl0ZW1zLnB1c2gobmV3RWxlKTtcbiAgICAgICAgICAgICAgICAgICAg\nY29sbGVjdGlvbi5hcHBlbmRDaGlsZChuZXdFbGUpO1xuICAgICAgICAgICAgICAgICAgICBuZXdF\nbGVzLnB1c2gobmV3RWxlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBs\nZXQgY3NzID0gdGhpcy5jdXJTaXRlUnVsZS5jc3M7XG4gICAgICAgICAgICAgICAgbGV0IGFkZENz\ncyA9IChwYXJlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNzcykge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgbGV0IGNzc0FyciA9IGNzcy5zcGxpdChcImluSWZyYW1lOlwiKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjc3NBcnIgJiYgY3NzQXJyLmxlbmd0aCA9PSAy\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN0eWxlRWxlID0gZG9jdW1lbnQu\nY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0\neWxlRWxlLmlubmVySFRNTCA9IGNzc0FyclsxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3R5bGVFbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAg\nICAgICBpZiAodGhpcy5jdXJTaXRlUnVsZS5zdXJyb3VuZCA9PT0gXCJpZnJhbWVcIikge1xuICAg\nICAgICAgICAgICAgICAgICBsZXQgZWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlmcmFt\nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZWxlLnN0eWxlLmJvcmRlciA9IFwidW5zZXRcIjtc\nbiAgICAgICAgICAgICAgICAgICAgZWxlLnN0eWxlLm1heFdpZHRoID0gXCIxMDAlXCI7XG4gICAg\nICAgICAgICAgICAgICAgIGVsZS5zdHlsZS53aWR0aCA9IFwiMTAwdndcIjtcbiAgICAgICAgICAg\nICAgICAgICAgc2VsZi5pbnNlcnRFbGVtZW50KGVsZSk7XG4gICAgICAgICAgICAgICAgICAgIHRy\neSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZG9jID0gZWxlLmNvbnRlbnREb2N1bWVu\ndCB8fCBlbGUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGRvYy5ib2R5LmFwcGVuZENoaWxkKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgZWxlLnN0eWxlLndpZHRoID0gZG9jLmJvZHkuc2Nyb2xsV2lkdGggKyBcInB4XCI7XG4gICAg\nICAgICAgICAgICAgICAgICAgICBlbGUuc3R5bGUuaGVpZ2h0ID0gZG9jLmJvZHkuc2Nyb2xsSGVp\nZ2h0ICsgXCJweFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVu\ndC5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBk\nb2MuYm9keS5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBhZGRDc3MoZG9jLmJvZHkpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1clNpdGVSdWxlLnN1cnJv\ndW5kID09PSBcInNoYWRvd0RvbVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbGUgPSBk\nb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICAgICAgICAgICAgICBzZWxm\nLmluc2VydEVsZW1lbnQoZWxlKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNoYWRvd1Jvb3Qg\nPSBlbGUuYXR0YWNoU2hhZG93KHsgbW9kZTogXCJvcGVuXCIgfSk7XG4gICAgICAgICAgICAgICAg\nICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY29sbGVjdGlvbik7XG4gICAgICAgICAgICAgICAg\nICAgIGFkZENzcyhzaGFkb3dSb290KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgICAgICAgICAgICBzZWxmLmluc2VydEVsZW1lbnQoY29sbGVjdGlvbik7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkuc2Ny\nb2xsVG9wID0gbGFzdFNjcm9sbFRvcDtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxl\nbWVudC5zY3JvbGxUb3AgPSBsYXN0U2Nyb2xsVG9wO1xuICAgICAgICAgICAgdGhpcy5wYWdlQWN0\naW9uKGRvYywgbmV3RWxlcyk7XG4gICAgICAgICAgICBsZXQgZW5hYmxlSGlzdG9yeSA9IHRoaXMu\nY3VyU2l0ZVJ1bGUuaGlzdG9yeTtcbiAgICAgICAgICAgIGxldCBlbmFibGVIaXN0b3J5QWZ0ZXJJ\nbnNlcnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChlbmFibGVIaXN0b3J5ID09IDEpIHtcbiAg\nICAgICAgICAgICAgICBlbmFibGVIaXN0b3J5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBp\nZiAoZW5hYmxlSGlzdG9yeSA9PSAyKSB7XG4gICAgICAgICAgICAgICAgZW5hYmxlSGlzdG9yeSA9\nIHRydWU7XG4gICAgICAgICAgICAgICAgZW5hYmxlSGlzdG9yeUFmdGVySW5zZXJ0ID0gdHJ1ZTtc\nbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZW5hYmxlSGlzdG9yeSA9PSAwKSB7XG4gICAgICAgICAg\nICAgICAgZW5hYmxlSGlzdG9yeSA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAg\nICAgICAgICAgICBlbmFibGVIaXN0b3J5ID0gcnVsZXNEYXRhLmVuYWJsZUhpc3Rvcnk7XG4gICAg\nICAgICAgICAgICAgZW5hYmxlSGlzdG9yeUFmdGVySW5zZXJ0ID0gcnVsZXNEYXRhLmVuYWJsZUhp\nc3RvcnlBZnRlckluc2VydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmFibGVI\naXN0b3J5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5VXJsID0gZW5hYmxlSGlzdG9y\neUFmdGVySW5zZXJ0ID8gdGhpcy5jdXJVcmwgOiB0aGlzLm9sZFVybDtcbiAgICAgICAgICAgICAg\nICBpZih0aGlzLmhpc3RvcnlVcmwgIT0gbG9jYXRpb24uaHJlZikge1xuICAgICAgICAgICAgICAg\nICAgICBsZXQgaXNKcyA9IHRoaXMuaHJlZklzSnModGhpcy5oaXN0b3J5VXJsKTtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKCFpc0pzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGlz\ndG9yeVRpdGxlID0gZW5hYmxlSGlzdG9yeUFmdGVySW5zZXJ0ID8gZG9jLnRpdGxlIDogb2xkVGl0\nbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdW5zYWZlV2luZG93Lmhpc3RvcnkucmVwbGFj\nZVN0YXRlKHVuZGVmaW5lZCwgaGlzdG9yeVRpdGxlLCB0aGlzLmhpc3RvcnlVcmwpO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgZG9jdW1lbnQudGl0bGUgPSBoaXN0b3J5VGl0bGU7XG4gICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIF91bnNhZmVXaW5kb3cucG9zdE1l\nc3NhZ2Uoe1xuICAgICAgICAgICAgICAgIGFjdGlvbjogXCJpbnNlcnRcIixcbiAgICAgICAgICAg\nICAgICBjb21tYW5kOiAncGFnZXR1YWwnXG4gICAgICAgICAgICB9LCAnKicpO1xuICAgICAgICAg\nICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIHJ1bGVQYXJzZXIgPSBu\nZXcgUnVsZVBhcnNlcigpO1xuXG4gICAgY2xhc3MgU2lkZUNvbnRyb2xsZXIge1xuICAgICAgICBc\nL1wvc3RhdGljIGNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAg\nICAgdGhpcy5pbml0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIFwvKnN0YXRpYyBn\nZXRJbnN0YW5jZSgpIHtcbiAgICAgICAgICAgIGlmICghU2lkZUNvbnRyb2xsZXIuY29udHJvbGxl\ncikge1xuICAgICAgICAgICAgICAgIFNpZGVDb250cm9sbGVyLmNvbnRyb2xsZXIgPSBuZXcgU2lk\nZUNvbnRyb2xsZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBTaWRlQ29u\ndHJvbGxlci5jb250cm9sbGVyO1xuICAgICAgICB9KlwvXG5cbiAgICAgICAgc2V0dXAoKSB7XG4g\nICAgICAgICAgICBpZiAocnVsZVBhcnNlci5jdXJTaXRlUnVsZS5zaWRlQ29udHJvbGxlciA9PT0g\nZmFsc2UpIHJldHVybjtcbiAgICAgICAgICAgIGlmICghcnVsZXNEYXRhLnNpZGVDb250cm9sbGVy\nICYmICFydWxlUGFyc2VyLmN1clNpdGVSdWxlLnNpZGVDb250cm9sbGVyKSByZXR1cm47XG4gICAg\nICAgICAgICB0aGlzLmFkZFRvU3RhZ2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGluaXQoKSB7\nXG4gICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMu\naW5pdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgICAg\nIHRoaXMuY3NzVGV4dCA9IGBcbiAgICAgICAgICAgICAjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXIg\ne1xuICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgIHRv\ncDogY2FsYyg1MCUgLSA4M3B4KTtcbiAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyg5OSUgLSA0\nMHB4KTtcbiAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgIGJv\ncmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHJnYigwIDAg\nMCkgMHB4IDBweCAxMHB4O1xuICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4g\nICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmZkMCFpbXBvcnRhbnQ7XG4gICAgICAg\nICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICAgICB6LWluZGV4OiAy\nMTQ3NDgzNjQ2IWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgcGFkZGluZzogMCFpbXBvcnRh\nbnQ7XG4gICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICAgdHJh\nbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZSwgYmFja2dyb3VuZCAuNXMsIGJveC1zaGFkb3cgLjVz\nO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXIu\nZW5kIHtcbiAgICAgICAgICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXIgKiB7XG4gICAgICAgICAgICAgICAg\nIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogYXJpYWw7\nXG4gICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAg\nZm9udC1zaXplOiAyMHB4IWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgY29sb3I6IGJsYWNr\nIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbiAgICAg\nICAgICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNl\nbnRlcjtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXNpZGVDb250cm9s\nbGVyLnN0b3Age1xuICAgICAgICAgICAgICAgICAtd2Via2l0LWZpbHRlcjogaW52ZXJ0KDEwMCUp\nO1xuICAgICAgICAgICAgICAgICBmaWx0ZXI6IGludmVydCgxMDAlKTtcbiAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgLnBhZ2V0dWFsLXNpZGVDb250cm9sbGVyLWJ0biB7XG4gICAgICAgICAg\nICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7\nXG4gICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0\nLCBvcGFjaXR5IC4zcyBlYXNlO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1\nYWwtc2lkZUNvbnRyb2xsZXIgLnBhZ2V0dWFsLXNpZGVDb250cm9sbGVyLWJ0bjpob3ZlciB7XG4g\nICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgICAgICAgICAg\nY29sb3I6IHJlZCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdl\ndHVhbC1zaWRlQ29udHJvbGxlciAjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXItbW92ZSA+IHN2ZyB7\nXG4gICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZTtcbiAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVyICNwYWdldHVh\nbC1zaWRlQ29udHJvbGxlci1tb3ZlID4gc3ZnOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgdHJh\nbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAke3J1bGVz\nRGF0YS5oaWRlTG9hZGluZ0ljb24gPyAnJyA6IGBcbiAgICAgICAgICAgICAjcGFnZXR1YWwtc2lk\nZUNvbnRyb2xsZXIubWluU2l6ZSAjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXItbW92ZTo6YmVmb3Jl\nIHtcbiAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgIHBvc2l0\naW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICAgICAg\nICAgICAgIGhlaWdodDogMzRweDtcbiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog\nIzFhMjMyYTtcbiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtc\nbiAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgICAgICAg\nICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgICAgICAgbWFyZ2luOiAtMnB4O1xuICAgICAg\nICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci5taW5TaXplLnBhZ2V0dWFsLXNpZGVDb250cm9s\nbGVyLWxvYWRpbmcgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVyLW1vdmU6OmJlZm9yZSB7XG4gICAg\nICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGNvbmljLWdyYWRpZW50KHRyYW5zcGFyZW50\nLCAjYThlZmZmLCB0cmFuc3BhcmVudCA1MCUpO1xuICAgICAgICAgICAgICAgICAtd2Via2l0LWFu\naW1hdGlvbjogc2lkZXJvdGF0ZSAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICAgICAg\nIGFuaW1hdGlvbjogc2lkZXJvdGF0ZSAxcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgIEBrZXlmcmFtZXMgc2lkZXJvdGF0ZSB7XG4gICAgICAgICAgICAgICAg\nIDEwMCUge1xuICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMXR1cm4pO1xu\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgI3BhZ2V0\ndWFsLXNpZGVDb250cm9sbGVyLm1pblNpemUgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVyLW1vdmUg\nPiBzdmcge1xuICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAg\nICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFs\nLXNpZGVDb250cm9sbGVyICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci1tb3ZlID4gaW1nLFxuICAg\nICAgICAgICAgICNwYWdldHVhbC1zaWRlQ29udHJvbGxlciAjcGFnZXR1YWwtc2lkZUNvbnRyb2xs\nZXItbW92ZSA+IHNwYW4ge1xuICAgICAgICAgICAgICAgICB3aWR0aDogMzVweDtcbiAgICAgICAg\nICAgICAgICAgaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7\nXG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci5t\naW5TaXplICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci1tb3ZlID4gaW1nLFxuICAgICAgICAgICAg\nICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci5taW5TaXplICNwYWdldHVhbC1zaWRlQ29udHJvbGxl\nci1tb3ZlID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4g\nICAgICAgICAgICAgICAgIHRleHQtc2hhZG93OiByZ2IoMjU1IDI1NSAyNTUpIDBweCAwcHggMTBw\neDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVy\nICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci1wYWdlbnVtIHtcbiAgICAgICAgICAgICAgICAgZm9u\ndC1zaXplOiAxNXB4IWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMw\ncHg7XG4gICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAg\nICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICByaWdodDogY2FsYyg1MCUg\nLSAxNXB4KTtcbiAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDE1cHgpO1xuICAgICAg\nICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwMDAwOTk7XG4gICAgICAgICAgICAgICAg\nIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4g\nICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICAgYm94LXNpemlu\nZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAg\nICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgb3BhY2l0\neTogMDtcbiAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuNXMgZWFzZTtcbiAg\nICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci5taW5TaXplICNwYWdldHVhbC1zaWRl\nQ29udHJvbGxlci1wYWdlbnVtIHtcbiAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVyOmhvdmVyIHtc\nbiAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVyPi5leHRyYSB7XG4gICAgICAgICAgICAgICAgIGJv\ndHRvbTogMTcwcHg7XG4gICAgICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAg\nICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXNpZGVDb250cm9sbGVyPi5leHRy\nYT5zdmcge1xuICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAg\naGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgICAg\nICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgNXB4\nIDA7XG4gICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2U7XG4gICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci5taW5TaXpl\nPi5leHRyYT5zdmcge1xuICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXI+LmV4dHJhPnN2Zzpob3Zl\nciB7XG4gICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci5taW5TaXplIHtcbiAgICAgICAgICAgICAg\nICAgYm94LXNoYWRvdzogcmdiKDAgMCAwIFwvIDAlKSAwcHggMHB4IDBweDtcbiAgICAgICAgICAg\nICAgICAgYmFja2dyb3VuZDogIzAwMDAwMDAwIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAg\ncG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdl\ndHVhbC1zaWRlQ29udHJvbGxlci5taW5TaXplICNwYWdldHVhbC1zaWRlQ29udHJvbGxlci1tb3Zl\nIHtcbiAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgICAgICAg\nICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwt\nc2lkZUNvbnRyb2xsZXIubWluU2l6ZSAucGFnZXR1YWwtc2lkZUNvbnRyb2xsZXItYnRuIHtcbiAg\nICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICBg\nO1xuICAgICAgICAgICAgbGV0IGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwi\nKTtcbiAgICAgICAgICAgIGZyYW1lLmlkID0gXCJwYWdldHVhbC1zaWRlQ29udHJvbGxlclwiO1xu\nICAgICAgICAgICAgZnJhbWUuaW5uZXJIVE1MID0gY3JlYXRlSFRNTChgXG4gICAgICAgICAgICAg\nICAgPGRpdiBjbGFzcz1cImV4dHJhXCI+XG4gICAgICAgICAgICAgICAgICA8c3ZnIGlkPVwibG9h\nZE5vd1wiIGNsYXNzPVwicGFnZXR1YWxcIiB2aWV3Qm94PVwiMCAwIDEwMzAgMTAyNFwiIHZlcnNp\nb249XCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPjx0aXRs\nZT4ke2kxOG4oXCJsb2FkTm93XCIpfTxcL3RpdGxlPjxwYXRoIGQ9XCJNNzEyLjEwNjY2NyA1MjUu\nNjUzMzMzbC0yOTEuNDEzMzM0IDI0Ny44OTMzMzRhMjEuMzMzMzMzIDIxLjMzMzMzMyAwIDAgMS0x\nNC41MDY2NjYgNS41NDY2NjYgMjAuMDUzMzMzIDIwLjA1MzMzMyAwIDAgMS0yMi4xODY2NjctMTku\nMlYyNjQuMTA2NjY3YTIwLjA1MzMzMyAyMC4wNTMzMzMgMCAwIDEgMjAuOTA2NjY3LTE5LjIgMjAu\nOTA2NjY3IDIwLjkwNjY2NyAwIDAgMSAxNC41MDY2NjYgNS41NDY2NjZsMjkxLjQxMzMzNCAyNDcu\nODkzMzM0YTE3LjkyIDE3LjkyIDAgMCAxIDEuMjggMjcuMzA2NjY2ek01MTIgMGE1MTIgNTEyIDAg\nMSAwIDUxMiA1MTJBNTEyIDUxMiAwIDAgMCA1MTIgMHpcIiBmaWxsPVwiIzVFNUM1Q1wiPjxcL3Bh\ndGg+PFwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPHN2ZyBpZD1cInNjcm9sbFwiIGNsYXNzPVwi\ncGFnZXR1YWxcIiB2aWV3Qm94PVwiMCAwIDEwMzAgMTAyNFwiIHZlcnNpb249XCIxLjFcIiB4bWxu\ncz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPjx0aXRsZT4ke2kxOG4oXCJzaWRl\nQ29udHJvbGxlclNjcm9sbFwiKX08XC90aXRsZT48cGF0aCBkPVwiTTkxMiA1NDR2ODIuNjRDOTEy\nIDg0Ni4wOTYgNzMyLjkxMiAxMDI0IDUxMiAxMDI0UzExMiA4NDYuMDk2IDExMiA2MjYuNjRWNTQ0\naDgwMHpcIiBmaWxsPVwiIzVFNUM1Q1wiPjxcL3BhdGg+PHBhdGggZD1cIk00NzguNjU2IDB2NDMu\nMzI4YTk2IDk2IDAgMCAxLTMyLjQ4IDcxLjk1MmMtMjcuNjggMjQuNDQ4LTQxLjk2OCA0OC4xMjgt\nNDIuODk2IDcxLjA0bC0wLjA5NiA0LjM1MnYxMDRjMCAyNC4yMjQgMTQuNTEyIDQ5LjM0NCA0My41\nMiA3NS4zMTJhOTYgOTYgMCAwIDEgMzEuOTUyIDcxLjUyVjQ5NkgxMTIuMDMyTDExMiAzOTMuNzEy\nQzExMiAxODEuNjQ4IDI2NC44NDggOC43MiA0NzIuMzUyIDAuMjA4TDQ3OC42NTYgMHpcIiBmaWxs\nPVwiIzk5OTk5OVwiPjxcL3BhdGg+PHBhdGggZD1cIk01MzQuMjQgMEM3NDcuNTg0IDUuMjMyIDkx\nMiAxNzkuNTA0IDkxMiAzOTMuNzI4djEwMi4yNTZMNTM0LjIwOCA0OTZ2LTUyLjkxMmE5NiA5NiAw\nIDAgMSAzMy41MzYtNzIuODhjMjguNDgtMjQuNDE2IDQzLjItNDguMTYgNDQuMTYtNzEuMmwwLjA5\nNi00LjMzNnYtMTA0YzAtMjQuMzUyLTE0LjkyOC00OS41Mi00NC43ODQtNzUuNDg4YTk2IDk2IDAg\nMCAxLTMzLjAwOC03Mi40MzJWMHpcIiBmaWxsPVwiIzVFNUM1Q1wiPjxcL3BhdGg+PFwvc3ZnPlxu\nICAgICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwicGFnZXR1\nYWwtc2lkZUNvbnRyb2xsZXItdG9wXCIgY2xhc3M9XCJwYWdldHVhbC1zaWRlQ29udHJvbGxlci1i\ndG5cIj7iirw8XC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAg\nIDxkaXYgaWQ9XCJwYWdldHVhbC1zaWRlQ29udHJvbGxlci1wcmVcIiBjbGFzcz1cInBhZ2V0dWFs\nLXNpZGVDb250cm9sbGVyLWJ0blwiPuKIpzxcL2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYg\naWQ9XCJwYWdldHVhbC1zaWRlQ29udHJvbGxlci1tb3ZlXCI+PHN2ZyBjbGFzcz1cInBhZ2V0dWFs\nXCIgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAxNXB4\nO2Rpc3BsYXk6IGluaXRpYWw7cG9zaXRpb246IHJlbGF0aXZlO2N1cnNvcjogcG9pbnRlcjttYXJn\naW46IDA7d2lkdGg6IDMwcHg7aGVpZ2h0OiAzMHB4O3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Zmls\nbDogY3VycmVudENvbG9yO292ZXJmbG93OiBoaWRkZW47XCIgdmlld0JveD1cIjAgMCAxMDI0IDEw\nMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9z\ndmdcIj48cGF0aCBkPVwiTTI5NiA0NDBjLTQ0LjEgMC04MCAzNS45LTgwIDgwczM1LjkgODAgODAg\nODAgODAtMzUuOSA4MC04MC0zNS45LTgwLTgwLTgwelwiIGZpbGw9XCIjNjA0YjRhXCI+PFwvcGF0\naD48cGF0aCBkPVwiTTk2MCA1MTJjMC0yNDctMjAxLTQ0OC00NDgtNDQ4UzY0IDI2NSA2NCA1MTJj\nMCAxLjggMC4xIDMuNSAwLjEgNS4zIDAgMC45LTAuMSAxLjgtMC4xIDIuN2gwLjJDNjguNSA3NjMu\nMyAyNjcuNyA5NjAgNTEyIDk2MGMyMzYuMiAwIDQzMC4xLTE4My43IDQ0Ni43LTQxNS43IDAuMS0w\nLjggMC4xLTEuNiAwLjItMi4zIDAuNC00LjYgMC41LTkuMyAwLjctMTMuOSAwLjEtMi43IDAuNC01\nLjMgMC40LThoLTAuMmMwLTIuOCAwLjItNS40IDAuMi04LjF6IG0tMTUyIDhjMCA0NC4xLTM1Ljkg\nODAtODAgODBzLTgwLTM1LjktODAtODAgMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwek01MTIg\nOTI4QzI4NC40IDkyOCA5OSA3NDQuMyA5Ni4xIDUxNy4zIDk3LjYgNDA4LjMgMTg2LjYgMzIwIDI5\nNiAzMjBjMTEwLjMgMCAyMDAgODkuNyAyMDAgMjAwIDAgMTI3LjkgMTA0LjEgMjMyIDIzMiAyMzIg\nNjIuOSAwIDExOS45LTI1LjIgMTYxLjctNjYtNjYgMTQyLjctMjEwLjQgMjQyLTM3Ny43IDI0Mnpc\nIiBmaWxsPVwiIzYwNGI0YVwiPjxcL3BhdGg+PFwvc3ZnPjxkaXYgaWQ9XCJwYWdldHVhbC1zaWRl\nQ29udHJvbGxlci1wYWdlbnVtXCI+PFwvZGl2PjxcL2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxk\naXYgaWQ9XCJwYWdldHVhbC1zaWRlQ29udHJvbGxlci1uZXh0XCIgY2xhc3M9XCJwYWdldHVhbC1z\naWRlQ29udHJvbGxlci1idG5cIj7iiKg8XC9kaXY+XG4gICAgICAgICAgICAgICAgPFwvZGl2Plxu\nICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJwYWdldHVhbC1zaWRlQ29udHJvbGxlci1ib3R0b21c\nIiBjbGFzcz1cInBhZ2V0dWFsLXNpZGVDb250cm9sbGVyLWJ0blwiPuKKuzxcL2Rpdj5cbiAgICAg\nICAgICAgIGApO1xuICAgICAgICAgICAgZnJhbWUuY2xhc3NMaXN0LmFkZChcInN0b3BcIik7XG4g\nICAgICAgICAgICBsZXQgdG9wID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNwYWdldHVhbC1zaWRl\nQ29udHJvbGxlci10b3BcIik7XG4gICAgICAgICAgICBsZXQgcHJlID0gZnJhbWUucXVlcnlTZWxl\nY3RvcihcIiNwYWdldHVhbC1zaWRlQ29udHJvbGxlci1wcmVcIik7XG4gICAgICAgICAgICBsZXQg\nbW92ZSA9IGZyYW1lLnF1ZXJ5U2VsZWN0b3IoXCIjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXItbW92\nZVwiKTtcbiAgICAgICAgICAgIGxldCBuZXh0ID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNwYWdl\ndHVhbC1zaWRlQ29udHJvbGxlci1uZXh0XCIpO1xuICAgICAgICAgICAgbGV0IGJvdHRvbSA9IGZy\nYW1lLnF1ZXJ5U2VsZWN0b3IoXCIjcGFnZXR1YWwtc2lkZUNvbnRyb2xsZXItYm90dG9tXCIpO1xu\nICAgICAgICAgICAgbGV0IHBhZ2VudW0gPSBmcmFtZS5xdWVyeVNlbGVjdG9yKFwiI3BhZ2V0dWFs\nLXNpZGVDb250cm9sbGVyLXBhZ2VudW1cIik7XG4gICAgICAgICAgICBsZXQgc2Nyb2xsID0gZnJh\nbWUucXVlcnlTZWxlY3RvcihcIiNzY3JvbGxcIik7XG4gICAgICAgICAgICBsZXQgbG9hZE5vdyA9\nIGZyYW1lLnF1ZXJ5U2VsZWN0b3IoXCIjbG9hZE5vd1wiKTtcbiAgICAgICAgICAgIGlmIChydWxl\nc0RhdGEuc2lkZUNvbnRyb2xsZXJTY3JvbGwgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAg\nc2Nyb2xsLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIGlmIChydWxlc0RhdGEuc2lkZUNvbnRyb2xsZXJMb2FkTm93ID09PSBmYWxzZSkge1xuICAg\nICAgICAgICAgICAgIGxvYWROb3cuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgaWYgKHNpZGVDb250cm9sbGVySWNvbikgbW92ZS5pbm5lckhUTUwg\nPSBzaWRlQ29udHJvbGxlckljb247XG5cbiAgICAgICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVu\nZXIoXCJkYmxjbGlja1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0\nKCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0p\nO1xuXG4gICAgICAgICAgICBmcmFtZS5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLCBl\nID0+IHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoc2VsZi5oaWRlVGltZXIpO1xuICAg\nICAgICAgICAgICAgIGZyYW1lLmNsYXNzTGlzdC5yZW1vdmUoXCJtaW5TaXplXCIpO1xuICAgICAg\nICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWxl\nYXZlXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChzZWxmLmhpZGVUaW1l\ncik7XG4gICAgICAgICAgICAgICAgc2VsZi5oaWRlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtc\nbiAgICAgICAgICAgICAgICAgICAgZnJhbWUuY2xhc3NMaXN0LmFkZChcIm1pblNpemVcIik7XG4g\nICAgICAgICAgICAgICAgfSwgODAwKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBk\nb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBlID0+IHtcbiAgICAg\nICAgICAgICAgICBpZiAoZS50YXJnZXQgPT09IGZyYW1lIHx8IGZyYW1lLmNvbnRhaW5zKGUudGFy\nZ2V0KSkge1xuICAgICAgICAgICAgICAgICAgICBmcmFtZS5jbGFzc0xpc3QucmVtb3ZlKFwibWlu\nU2l6ZVwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBm\ncmFtZS5jbGFzc0xpc3QuYWRkKFwibWluU2l6ZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICB9KTtcblxuICAgICAgICAgICAgc2Nyb2xsLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlj\na1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsID0gKGF1dG9TY3JvbGwgPyAw\nIDogcHJvbXB0KGkxOG4oXCJhdXRvU2Nyb2xsUmF0ZVwiKSwgYXV0b1Njcm9sbFJhdGUpKSB8fCAw\nO1xuICAgICAgICAgICAgICAgIGF1dG9TY3JvbGwgPSBwYXJzZUludChhdXRvU2Nyb2xsKSB8fCAw\nO1xuICAgICAgICAgICAgICAgIGlmIChhdXRvU2Nyb2xsIDwgMCkgYXV0b1Njcm9sbCA9IDA7XG4g\nICAgICAgICAgICAgICAgaWYgKGF1dG9TY3JvbGwgJiYgYXV0b1Njcm9sbCAhPSBhdXRvU2Nyb2xs\nUmF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsUmF0ZSA9IGF1dG9TY3JvbGw7\nXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcImF1dG9TY3JvbGxSYXRlXCIs\nIGF1dG9TY3JvbGxSYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0\nTGlzdERhdGEoXCJhdXRvU2Nyb2xsXCIsIGxvY2F0aW9uLmhvc3QgKyBsb2NhdGlvbi5wYXRobmFt\nZSwgYXV0b1Njcm9sbCk7XG4gICAgICAgICAgICAgICAgc3RhcnRBdXRvU2Nyb2xsKCk7XG4gICAg\nICAgICAgICB9LCB0cnVlKTtcblxuICAgICAgICAgICAgbG9hZE5vdy5hZGRFdmVudExpc3RlbmVy\nKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGF1dG9Mb2FkTnVtICE9IC0x\nKSB7XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Mb2FkTnVtID0gLTE7XG4gICAgICAgICAgICAg\nICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGxv\nYWROdW0gPSB3aW5kb3cucHJvbXB0KGkxOG4oXCJsb2FkQ29uZmlybVwiKSwgbG9hZE5vd051bSk7\nXG4gICAgICAgICAgICAgICAgaWYgKGxvYWROdW0gPT09IFwiXCIgfHwgbG9hZE51bSA9PT0gbnVs\nbCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxvYWROdW0gPSBNYXRoLmFicyhwYXJzZUludChs\nb2FkTnVtKSkgfHwgMDtcbiAgICAgICAgICAgICAgICBpZiAobG9hZE5vd051bSAhPSBsb2FkTnVt\nKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWROb3dOdW0gPSBsb2FkTnVtO1xuICAgICAgICAg\nICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oXCJsb2FkTm93TnVtXCIsIGxvYWROb3dOdW0pO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhdXRvTG9hZE51bSA9IGxvYWROdW07\nXG4gICAgICAgICAgICAgICAgbmV4dFBhZ2UoKTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xuXG4g\nICAgICAgICAgICBsZXQgbWFudWFsTW9kZSA9IHR5cGVvZiBydWxlUGFyc2VyLmN1clNpdGVSdWxl\nLm1hbnVhbE1vZGUgPT0gJ3VuZGVmaW5lZCcgPyBydWxlc0RhdGEubWFudWFsTW9kZSA6IHJ1bGVQ\nYXJzZXIuY3VyU2l0ZVJ1bGUubWFudWFsTW9kZTtcbiAgICAgICAgICAgIHByZS5hZGRFdmVudExp\nc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1hbnVhbE1vZGUp\nIHtcbiAgICAgICAgICAgICAgICAgICAgaGlzdG9yeS5iYWNrKCk7XG4gICAgICAgICAgICAgICAg\nICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHByZVBh\nZ2VCYXIgPSBnZXRQYWdlQmFyKCkucHJlQmFyO1xuICAgICAgICAgICAgICAgIGlmIChwcmVQYWdl\nQmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvUGFnZUJhcihwcmVQYWdlQmFyKTtc\nbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2Nyb2xs\nVG9wID0gZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmRvY3VtZW50RWxl\nbWVudC5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFkgPSBzY3JvbGxUb3Ag\nLSAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRI\nZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdl\ndFksIGJlaGF2aW9yOiAnc21vb3RoJ30pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIH0sIHRydWUpO1xuXG4gICAgICAgICAgICBuZXh0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wi\nLCBhc3luYyBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobWFudWFsTW9kZSkge1xuICAgICAg\nICAgICAgICAgICAgICBsZXQgbmV4dExpbmsgPSBydWxlUGFyc2VyLm5leHRMaW5rSHJlZjtcbiAg\nICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0TGluaykgcmV0dXJuO1xuICAgICAgICAgICAgICAg\nICAgICBsZXQgaXNKcyA9IHJ1bGVQYXJzZXIuaHJlZklzSnMobmV4dExpbmspO1xuICAgICAgICAg\nICAgICAgICAgICBpZiAoaXNKcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5leHRC\ndG4gPSBydWxlUGFyc2VyLm5leHRMaW5rRWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKCFuZXh0QnRuIHx8ICFuZXh0QnRuLm9mZnNldFBhcmVudCkgbmV4dEJ0biA9IGF3YWl0IHJ1bGVQ\nYXJzZXIuZ2V0TmV4dExpbmsoZG9jdW1lbnQsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgaWYgKG5leHRCdG4pIGVtdUNsaWNrKG5leHRCdG4pO1xuICAgICAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBu\nZXh0TGluaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1\ncm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBwYWdlQmFyT2JqID0g\nZ2V0UGFnZUJhcigpO1xuICAgICAgICAgICAgICAgIGxldCBuZXh0UGFnZUJhciA9IHBhZ2VCYXJP\nYmoubmV4dEJhcjtcbiAgICAgICAgICAgICAgICBpZiAobmV4dFBhZ2VCYXIpIHtcbiAgICAgICAg\nICAgICAgICAgICAgc2Nyb2xsVG9QYWdlQmFyKG5leHRQYWdlQmFyKTtcbiAgICAgICAgICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFnZUJhck9iai5wcmVCYXIpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzY3JvbGxIID0gTWF0aC5tYXgoZG9jdW1lbnQu\nZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCwgZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xsSGVp\nZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFkgPSBzY3JvbGxIIHx8IDk5OTk5\nOTk7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdl\ndFksIGJlaGF2aW9yOiAnc21vb3RoJ30pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvcCA9IGdldEJvZHkoZG9jdW1lbnQp\nLnNjcm9sbFRvcCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgdGFyZ2V0WSA9IHNjcm9sbFRvcCArICh3aW5kb3cuaW5uZXJIZWln\naHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gICAgICAgICAg\nICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdldFksIGJlaGF2aW9yOiAn\nc21vb3RoJ30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgfSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIHRvcC5hZGRFdmVudExpc3RlbmVyKFwi\nY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xs\nVG9wID0gMDtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs\nVG9wID0gMDtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAg\nICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xuXG4gICAg\nICAgICAgICBib3R0b20uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAg\nICAgICAgICAgIGlmICghZS5hbHRLZXkgJiYgIWUuY3RybEtleSAmJiAhZS5zaGlmdEtleSAmJiAh\nZS5tZXRhS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZVN0b3AodHJ1ZSk7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBzY3JvbGxIID0gTWF0aC5tYXgoZG9j\ndW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCwgZ2V0Qm9keShkb2N1bWVudCkuc2Ny\nb2xsSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50KS5zY3JvbGxUb3Ag\nPSBzY3JvbGxIIHx8IDk5OTk5OTk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRF\nbGVtZW50LnNjcm9sbFRvcCA9IHNjcm9sbEggfHwgOTk5OTk5OTtcbiAgICAgICAgICAgICAgICBl\nLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtc\nbiAgICAgICAgICAgIH0sIHRydWUpO1xuXG4gICAgICAgICAgICBsZXQgaW5pdFgsIGluaXRZLCBt\nb3ZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCByZW1vdmVUaW1lcjtcbiAgICAgICAgICAg\nIG1vdmUuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAg\nIGlmICghbW92aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZVN0b3AoIWlzUGF1c2Us\nIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRydWUpO1xuICAgICAg\nICAgICAgbW92ZS5hZGRFdmVudExpc3RlbmVyKFwiZGJsY2xpY2tcIiwgZSA9PiB7XG4gICAgICAg\nICAgICAgICAgY2xlYXJUaW1lb3V0KHJlbW92ZVRpbWVyKTtcbiAgICAgICAgICAgICAgICBkb2N1\nbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG1vdXNlTW92ZUhhbmRsZXIs\nIHRydWUpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJt\nb3VzZXVwXCIsIG1vdXNlVXBIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VT\ndG9wKCFpc1BhdXNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNQYXVzZSkge1xuICAg\nICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmhpZGVBZGRlZEVsZW1lbnRzKCk7XG4gICAgICAg\nICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5zaG93QWRk\nZWRFbGVtZW50cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRydWUpO1xu\nXG4gICAgICAgICAgICBtb3ZlLm9uY29udGV4dG1lbnUgPSBlID0+IHtcbiAgICAgICAgICAgICAg\nICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgcGlja2VyLnN0YXJ0KCk7XG4g\nICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgY2xpZW50WCA9IGUgPT4ge1xuICAgICAg\nICAgICAgICAgIGlmIChlLnR5cGUuaW5kZXhPZignbW91c2UnKSA9PT0gMCkge1xuICAgICAgICAg\nICAgICAgICAgICByZXR1cm4gZS5jbGllbnRYO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4g\nICAgICAgICAgICAgICAgICAgIHJldHVybiBlLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFg7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGNsaWVu\ndFkgPSBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZS50eXBlLmluZGV4T2YoJ21vdXNlJykg\nPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGUuY2xpZW50WTtcbiAgICAgICAg\nICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZS5jaGFuZ2VkVG91\nY2hlc1swXS5jbGllbnRZO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAg\nICAgICAgICAgIGxldCBtb3VzZU1vdmVIYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICAgICAg\naWYgKG1vdmluZykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgd2luZG93SGVpZ2h0ID0gd2lu\nZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7\nXG4gICAgICAgICAgICAgICAgICAgIGxldCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRo\nIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAg\nICAgICAgaW5pdFggPSAoY2xpZW50WChlKSAtIDEwICsgNDApIFwvIHdpbmRvd1dpZHRoICogMTAw\nO1xuICAgICAgICAgICAgICAgICAgICBpbml0WSA9IChjbGllbnRZKGUpIC0gODMgKyA4MykgXC8g\nd2luZG93SGVpZ2h0ICogMTAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZyYW1lLnN0eWxl\nLnRvcCA9IGBjYWxjKCR7aW5pdFl9JSAtIDgzcHgpYDtcbiAgICAgICAgICAgICAgICAgICAgdGhp\ncy5mcmFtZS5zdHlsZS5sZWZ0ID0gYGNhbGMoJHtpbml0WH0lIC0gNDBweClgO1xuICAgICAgICAg\nICAgICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoY2xpZW50WChlKSAtIGluaXRYKSArIE1hdGguYWJz\nKGNsaWVudFkoZSkgLSBpbml0WSkgPiA1KSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdmluZyA9\nIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChyZW1vdmVUaW1lcik7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxldCBtb3VzZVVw\nSGFuZGxlciA9IGUgPT4ge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChyZW1vdmVUaW1l\ncik7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNl\nbW92ZVwiLCBtb3VzZU1vdmVIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVu\ndC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLCBtb3VzZVVwSGFuZGxlciwgdHJ1ZSk7\nXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92\nZVwiLCBtb3VzZU1vdmVIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5y\nZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIiwgbW91c2VVcEhhbmRsZXIsIHRydWUpO1xu\nICAgICAgICAgICAgICAgIGlmIChtb3ZpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNE\nYXRhLnNpZGVDb250cm9sbGVyUG9zID0ge3g6IHBhcnNlSW50KGluaXRYKSwgeTogcGFyc2VJbnQo\naW5pdFkpfTtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwicnVsZXNEYXRh\nXCIsIHJ1bGVzRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAg\nICAgICAgIGxldCBtb3VzZURvd25IYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgaW5p\ndFggPSBjbGllbnRYKGUpO1xuICAgICAgICAgICAgICAgIGluaXRZID0gY2xpZW50WShlKTtcbiAg\nICAgICAgICAgICAgICBtb3ZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVv\ndXQocmVtb3ZlVGltZXIpO1xuICAgICAgICAgICAgICAgIHJlbW92ZVRpbWVyID0gc2V0VGltZW91\ndCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnR5cGUgPT09IFwidG91Y2hzdGFy\ndFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNrZXIuc3RhcnQoKTtcbiAgICAgICAg\nICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVtb3Zl\nKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAxNTAwKTtcbiAg\nICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG1v\ndXNlTW92ZUhhbmRsZXIsIHRydWUpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50\nTGlzdGVuZXIoXCJtb3VzZXVwXCIsIG1vdXNlVXBIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAg\nICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIG1vdXNlTW92ZUhh\nbmRsZXIsIHRydWUpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIo\nXCJ0b3VjaGVuZFwiLCBtb3VzZVVwSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAgICAgICB9O1xuXG4g\nICAgICAgICAgICBtb3ZlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgbW91c2VEb3du\nSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAgICAgICBtb3ZlLmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3Vj\naHN0YXJ0XCIsIG1vdXNlRG93bkhhbmRsZXIsIHsgcGFzc2l2ZTogZmFsc2UsIGNhcHR1cmU6IHRy\ndWUgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcbiAgICAgICAgICAgIHRo\naXMucGFnZW51bSA9IHBhZ2VudW07XG4gICAgICAgICAgICBpZiAocnVsZXNEYXRhLnNpZGVDb250\ncm9sbGVyUG9zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mcmFtZS5zdHlsZS50b3AgPSBgY2Fs\nYygke3J1bGVzRGF0YS5zaWRlQ29udHJvbGxlclBvcy55fSUgLSA4M3B4KWA7XG4gICAgICAgICAg\nICAgICAgdGhpcy5mcmFtZS5zdHlsZS5sZWZ0ID0gYGNhbGMoJHtydWxlc0RhdGEuc2lkZUNvbnRy\nb2xsZXJQb3MueH0lIC0gNDBweClgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAg\nICAgYWRkVG9TdGFnZSgpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAg\naWYgKCF0aGlzLnN0eWxlRWxlIHx8ICF0aGlzLnN0eWxlRWxlLnBhcmVudE5vZGUpIHtcbiAgICAg\nICAgICAgICAgICB0aGlzLnN0eWxlRWxlID0gX0dNX2FkZFN0eWxlKHRoaXMuY3NzVGV4dCk7XG4g\nICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzUGF1c2UpIHtcbiAgICAgICAgICAgICAg\nICB0aGlzLmZyYW1lLmNsYXNzTGlzdC5yZW1vdmUoXCJzdG9wXCIpO1xuICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgdGhpcy5wYWdlbnVtLmlubmVySFRNTCA9IGNyZWF0ZUhUTUwoY3VyUGFnZSk7\nXG4gICAgICAgICAgICB0aGlzLmZyYW1lLnRpdGxlID0gaTE4bihcInBhZ2VcIikgKyBjdXJQYWdl\nO1xuICAgICAgICAgICAgaWYgKHRoaXMuZnJhbWUucGFyZW50Tm9kZSkgcmV0dXJuO1xuICAgICAg\nICAgICAgZ2V0Qm9keShkb2N1bWVudCkuYXBwZW5kQ2hpbGQodGhpcy5mcmFtZSk7XG4gICAgICAg\nICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZXIpO1xuICAgICAgICAgICAgaWYgKCFpc01v\nYmlsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZnJhbWUuY2xhc3NMaXN0LmFkZChcIm1pblNp\nemVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZW1vdmUoKSB7XG4g\nICAgICAgICAgICBpZiAodGhpcy5mcmFtZSAmJiB0aGlzLmZyYW1lLnBhcmVudE5vZGUpIHRoaXMu\nZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmZyYW1lKTtcbiAgICAgICAgfVxuICAg\nIH1cbiAgICBjb25zdCBzaWRlQ29udHJvbGxlciA9IG5ldyBTaWRlQ29udHJvbGxlcigpO1xuXG4g\nICAgY2xhc3MgTmV4dFN3aXRjaCB7XG4gICAgICAgIFwvXC9zdGF0aWMgbmV4dFN3aXRjaDtcbiAg\nICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRlZCA9IGZhbHNlO1xu\nICAgICAgICB9XG5cbiAgICAgICAgXC8qc3RhdGljIGdldEluc3RhbmNlKCkge1xuICAgICAgICAg\nICAgaWYgKCFOZXh0U3dpdGNoLm5leHRTd2l0Y2gpIHtcbiAgICAgICAgICAgICAgICBOZXh0U3dp\ndGNoLm5leHRTd2l0Y2ggPSBuZXcgTmV4dFN3aXRjaCgpO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgcmV0dXJuIE5leHRTd2l0Y2gubmV4dFN3aXRjaDtcbiAgICAgICAgfSpcL1xuXG4gICAg\nICAgIGluaXQoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHJldHVybjtcbiAgICAg\nICAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcztc\nbiAgICAgICAgICAgIHRoaXMuY3NzVGV4dCA9IGBcbiAgICAgICAgICAgICAjcGFnZXR1YWwtbmV4\ndFN3aXRjaCB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAg\ndG9wOiAxMHB4O1xuICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDUwJSAtIDE2MHB4KTtcbiAgICAg\nICAgICAgICAgYmFja2dyb3VuZDogYWxpY2VibHVlO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAx\nMHB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgIHRl\neHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgb3BhY2l0eTogMC45NTtcbiAgICAgICAg\nICAgICAgY29sb3I6ICMxNjE2MTY7XG4gICAgICAgICAgICAgIHotaW5kZXg6IDIxNDc0ODM2NDc7\nXG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgYm94LXNoYWRv\ndzogcmdiKDAgMCAwKSAwcHggMHB4IDEwcHg7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICNwYWdldHVhbC1uZXh0U3dpdGNoPi50aXRsZSB7XG4gICAgICAgICAgICAgIG1hcmdpbjogLTVw\neCA0NXB4IDEwcHggNDVweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAg\nICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTog\nMXB4IHNvbGlkIGJsYWNrO1xuICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAg\nICAgICAgICAgY29sb3I6IG9yYW5nZXJlZDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nI3BhZ2V0dWFsLW5leHRTd2l0Y2g+Lmdyb3VwIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxl\neDtcbiAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgI3BhZ2V0dWFsLW5leHRTd2l0Y2g+Lmdyb3VwPnNwYW4ge1xuICAgICAg\nICAgICAgICBjb2xvcjogIzE2MTYxNjtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xu\nICAgICAgICAgICAgICBtYXJnaW46IDNweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiBsYXJn\nZXI7XG4gICAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgIG92ZXJm\nbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAg\nICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAjcGFnZXR1YWwtbmV4dFN3aXRjaD4uZ3JvdXA+c3Bhbjpob3ZlciB7XG4gICAgICAgICAg\nICAgIGNvbG9yOiByZWQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVhbC1u\nZXh0U3dpdGNoPi5ncm91cD5zcGFuLmN1cnJlbnQge1xuICAgICAgICAgICAgICBib3JkZXI6IDJw\neCBkb3R0ZWQgcmVkO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtbmV4dFN3aXRjaD4uY2xvc2VTd2l0Y2gg\ne1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDog\nM3B4O1xuICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgYmFja2dyb3Vu\nZDogbm9uZTtcbiAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICB2ZXJ0\naWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1\ncyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAg\nICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVh\nbC1uZXh0U3dpdGNoIHN2ZyB7XG4gICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAg\nICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7\nXG4gICAgICAgICAgICAgIGZpbGw6ICMxNjE2MTY7XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBo\naWRkZW47XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVhbC1uZXh0U3dpdGNo\nIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICBgO1xuICAgICAgICAgICAgbGV0IGZyYW1lID0gZG9j\ndW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgICAgIGZyYW1lLmlkID0gXCJw\nYWdldHVhbC1uZXh0U3dpdGNoXCI7XG4gICAgICAgICAgICBmcmFtZS5pbm5lckhUTUwgPSBjcmVh\ndGVIVE1MKGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj4ke2kxOG4oXCJu\nZXh0U3dpdGNoXCIpfTxcL2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0\nb25cIiBjbGFzcz1cImNsb3NlU3dpdGNoXCI+XG4gICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdC\nb3g9XCIwIDAgMTAyNCAxMDI0XCIgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDpcL1wvd3d3\nLnczLm9yZ1wvMjAwMFwvc3ZnXCIgcC1pZD1cIjI3NTRcIj5cbiAgICAgICAgICAgICAgICAgICAg\nPHBhdGggZD1cIk01MTIgMTI4YzIxMiAwIDM4NCAxNzIgMzg0IDM4NHMtMTcyIDM4NC0zODQgMzg0\nLTM4NC0xNzItMzg0LTM4NCAxNzItMzg0IDM4NC0zODRtMC02NEMyNjQuOCA2NCA2NCAyNjQuOCA2\nNCA1MTJzMjAwLjggNDQ4IDQ0OCA0NDggNDQ4LTIwMC44IDQ0OC00NDhTNzU5LjIgNjQgNTEyIDY0\neiBtMjM4LjQgMjU0LjRsLTQ1LjYtNDUuNkw1MTIgNDY3LjIgMzE4LjQgMjczLjZsLTQ1LjYgNDUu\nNkw0NjcuMiA1MTIgMjczLjYgNzA1LjZsNDUuNiA0NS42TDUxMiA1NTcuNmwxOTMuNiAxOTMuNiA0\nNS42LTQ1LjZMNTU3LjYgNTEybDE5Mi44LTE5My42elwiIHAtaWQ9XCIyNzU1XCI+XG4gICAgICAg\nICAgICAgICAgICAgIDxcL3BhdGg+XG4gICAgICAgICAgICAgICAgICA8XC9zdmc+XG4gICAgICAg\nICAgICAgICAgPFwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncm91cFwi\nPjxcL2Rpdj5cbiAgICAgICAgICAgIGApO1xuICAgICAgICAgICAgbGV0IGdyb3VwID0gZnJhbWUu\ncXVlcnlTZWxlY3RvcihcIi5ncm91cFwiKTtcbiAgICAgICAgICAgIGxldCBjbG9zZUJ0biA9IGZy\nYW1lLnF1ZXJ5U2VsZWN0b3IoXCIuY2xvc2VTd2l0Y2hcIik7XG4gICAgICAgICAgICBjbG9zZUJ0\nbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgc2Vs\nZi5jbG9zZSgpO1xuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmZyYW1l\nID0gZnJhbWU7XG4gICAgICAgICAgICBsZXQgY3VycmVudFNwYW47XG4gICAgICAgICAgICBydWxl\nUGFyc2VyLmN1clNpdGVSdWxlLm5leHRMaW5rLmZvckVhY2goKGxpbmssIGkpID0+IHtcbiAgICAg\nICAgICAgICAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xu\nICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBnZXRFbGVtZW50KGxpbmssIGRvY3VtZW50KTtc\nbiAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSBcIjxiPlwiICsgKGkgKyAxKSArIFwiPFwvYj46\nIFwiO1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAg\nbGV0IHRhcmdldElubmVyID0gdGFyZ2V0LmlubmVyVGV4dC50cmltKCk7XG4gICAgICAgICAgICAg\nICAgICAgIHNwYW4uaW5uZXJIVE1MID0gaW5kZXggKyAodGFyZ2V0SW5uZXIgfHwgbGluayk7XG4g\nICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhU\nTUwgPSBpbmRleCArIFwiTm90IEZvdW5kXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIHNwYW4udGl0bGUgPSBsaW5rO1xuICAgICAgICAgICAgICAgIHNwYW4uYWRkRXZlbnRM\naXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVu\ndFNwYW4pIGN1cnJlbnRTcGFuLmNsYXNzTGlzdC5yZW1vdmUoXCJjdXJyZW50XCIpO1xuICAgICAg\nICAgICAgICAgICAgICBzcGFuLmNsYXNzTGlzdC5hZGQoXCJjdXJyZW50XCIpO1xuICAgICAgICAg\nICAgICAgICAgICBjdXJyZW50U3BhbiA9IHNwYW47XG4gICAgICAgICAgICAgICAgICAgIG5leHRJ\nbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIHNldExpc3REYXRhKFwibmV4dFN3aXRjaFwi\nLCBsb2NhdGlvbi5ob3N0LCBuZXh0SW5kZXggPT09IDAgPyBcIlwiIDogbmV4dEluZGV4KTtcbiAg\nICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5jdXJVcmwgKz0gXCIjcGFnZXR1YWxcIjtcbiAg\nICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5vbGRVcmwgPSBydWxlUGFyc2VyLmN1clVybDtc\nbiAgICAgICAgICAgICAgICAgICAgYXV0b0xvYWROdW0gPSAtMTtcbiAgICAgICAgICAgICAgICAg\nICAgaWYgKCFydWxlUGFyc2VyLm5leHRMaW5rSHJlZikge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgcnVsZVBhcnNlci5nZXROZXh0TGluayhydWxlUGFyc2VyLnBhZ2VEb2MgfHwgZG9j\ndW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCk7XG4gICAgICAgICAgICAg\nICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGkgPT0gbmV4dEluZGV4KSB7XG4gICAg\nICAgICAgICAgICAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZChcImN1cnJlbnRcIik7XG4gICAgICAg\nICAgICAgICAgICAgIGN1cnJlbnRTcGFuID0gc3BhbjtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgZ3JvdXAuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICAgICAgICB9KTtcbiAg\nICAgICAgfVxuXG4gICAgICAgIHN0YXJ0KCkge1xuICAgICAgICAgICAgdGhpcy5pbml0KCk7XG4g\nICAgICAgICAgICBpZiAoIXRoaXMuc3R5bGVFbGUgfHwgIXRoaXMuc3R5bGVFbGUucGFyZW50Tm9k\nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVFbGUgPSBfR01fYWRkU3R5bGUodGhpcy5j\nc3NUZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxl\nbWVudC5hcHBlbmRDaGlsZCh0aGlzLmZyYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNsb3Nl\nKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZnJhbWUucGFyZW50Tm9kZSkgdGhpcy5mcmFtZS5w\nYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZnJhbWUpO1xuICAgICAgICB9XG4gICAgfVxuICAg\nIGNvbnN0IG5leHRTd2l0Y2ggPSBuZXcgTmV4dFN3aXRjaCgpO1xuXG4gICAgY2xhc3MgUGlja2Vy\nIHtcbiAgICAgICAgXC9cL3N0YXRpYyBwaWNrZXI7XG4gICAgICAgIGNvbnN0cnVjdG9yKCkge1xu\nICAgICAgICAgICAgdGhpcy5pbml0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIFwv\nKnN0YXRpYyBnZXRJbnN0YW5jZSgpIHtcbiAgICAgICAgICAgIGlmICghUGlja2VyLnBpY2tlcikg\ne1xuICAgICAgICAgICAgICAgIFBpY2tlci5waWNrZXIgPSBuZXcgUGlja2VyKCk7XG4gICAgICAg\nICAgICB9XG4gICAgICAgICAgICByZXR1cm4gUGlja2VyLnBpY2tlcjtcbiAgICAgICAgfSpcL1xu\nXG4gICAgICAgIGluaXQoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbml0ZWQpIHJldHVybjtc\nbiAgICAgICAgICAgIHRoaXMuaW5pdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGxldCBzZWxmID0g\ndGhpcztcbiAgICAgICAgICAgIHRoaXMuc2lnbkxpc3QgPSBbXTtcbiAgICAgICAgICAgIHRoaXMu\nY3NzVGV4dCA9IGBcbiAgICAgICAgICAgICBib2R5LnBhZ2V0dWFsLXBpY2tlcixcbiAgICAgICAg\nICAgICBib2R5LnBhZ2V0dWFsLXBpY2tlciAqOmhvdmVyLFxuICAgICAgICAgICAgIGJvZHkucGFn\nZXR1YWwtcGlja2VyIGE6aG92ZXIge1xuICAgICAgICAgICAgICBjdXJzb3I6IGNyb3NzaGFpciAh\naW1wb3J0YW50O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2Vy\nIHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgICBtYXgtd2lk\ndGg6IDgwdnc7XG4gICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgbGVmdDog\nY2FsYyg1MCUgLSAxNzhweCk7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IGFsaWNlYmx1ZTtc\nbiAgICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1\nczogNXB4O1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAg\nIG9wYWNpdHk6IDAuOTU7XG4gICAgICAgICAgICAgIGNvbG9yOiAjMTYxNjE2O1xuICAgICAgICAg\nICAgICB6LWluZGV4OiAyMTQ3NDgzNjQ2O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE2cHg7\nXG4gICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgIGJveC1zaGFk\nb3c6IHJnYigwIDAgMCkgMHB4IDBweCAxMHB4O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAjcGFnZXR1YWwtcGlja2VyICoge1xuICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAg\nICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBUaW1lcyBOZXcg\nUm9tYW47XG4gICAgICAgICAgICAgIG92ZXJmbG93OiBpbml0aWFsO1xuICAgICAgICAgICAgICB1\nc2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuc2V0O1xuICAg\nICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgICBtaW4taGVpZ2h0OiB1\nbnNldDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBpY2tlcj4udGl0\nbGUge1xuICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgIG1hcmdp\nbjogLTVweCA0NXB4IDEwcHggNDVweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xu\nICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgY3Vyc29yOiBw\nb2ludGVyO1xuICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7XG4g\nICAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgICAgICBjb2xvcjogb3Jh\nbmdlcmVkO1xuICAgICAgICAgICAgICBoZWlnaHQ6IGluaXRpYWw7XG4gICAgICAgICAgICAgIHdp\nZHRoOiBpbml0aWFsO1xuICAgICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAg\nICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlO1xuICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyPi50aXRsZTpob3ZlciB7XG4gICAgICAgICAgICAg\nIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3Bh\nZ2V0dWFsLXBpY2tlciBidXR0b24ge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xu\nICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWdu\nOiB0b3A7XG4gICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4t\nb3V0O1xuICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgIGN1cnNvcjog\ncG9pbnRlcjtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAg\nYmFja2dyb3VuZC1jb2xvcjogdW5zZXQhaW1wb3J0YW50O1xuICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAjcGFnZXR1YWwtcGlja2VyIGJ1dHRvbjpob3ZlciB7XG4gICAgICAgICAgICAgIHRy\nYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0\ndWFsLXBpY2tlcj4uY2xvc2VQaWNrZXIge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1\ndGU7XG4gICAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICAgICAgICByaWdodDogMTBweDtc\nbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBpY2tlcj4ubG9nb0ljb24g\ne1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDog\nM3B4O1xuICAgICAgICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAjcGFnZXR1YWwtcGlja2VyPi5sb2dvSWNvbi5zaG93U2lnbj5zdmc+cGF0aCB7XG4gICAg\nICAgICAgICAgIGZpbGw6IGdyYXkhaW1wb3J0YW50O1xuICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAjcGFnZXR1YWwtcGlja2VyIHRleHRhcmVhe1xuICAgICAgICAgICAgICBkaXNwbGF5OiBp\nbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA2NXB4KTtcbiAg\nICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4\nO1xuICAgICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNjV2dyAtIDUwcHgpO1xuICAgICAgICAg\nICAgICBtaW4taGVpZ2h0OiB1bnNldDtcbiAgICAgICAgICAgICAgbWF4LWhlaWdodDogdW5zZXQ7\nXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICAgICAgICBmb250LXNp\nemU6IDE2cHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAg\nIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICAgIGNvbG9yOiAjNDk1MDU3O1xuICAgICAg\nICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5k\nLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2Vk\nNGRhO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgIHRy\nYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBl\nYXNlLWluLW91dDtcbiAgICAgICAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAg\nICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICByZXNpemU6IGJvdGg7\nXG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCAxcHggI2RkZDtcbiAgICAgICAg\nICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICNwYWdldHVhbC1waWNrZXIgdGV4dGFyZWE6Zm9jdXMge1xuICAgICAgICAgICAgICBjb2xv\ncjogYmxhY2s7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAg\nICAgICAgIGJvcmRlci1jb2xvcjogIzgwYmRmZjtcbiAgICAgICAgICAgICAgb3V0bGluZTogMDtc\nbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMy4ycHggcmdiKDAgMTIzIDI1NSBcLyAy\nNSUpO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIFt0eXBl\nPWNoZWNrYm94XSxcbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIFt0eXBlPXJhZGlvXSB7\nXG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6\nIDI1cHg7XG4gICAgICAgICAgICAgIHdpZHRoOiAyNXB4O1xuICAgICAgICAgICAgICBtYXJnaW4t\nbGVmdDogNXB4O1xuICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAg\nICAgICAgICBhcHBlYXJhbmNlOiBhdXRvO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUt\nYmxvY2s7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIFt0eXBlPWNoZWNrYm94XTphZnRlcixcbiAg\nICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIFt0eXBlPXJhZGlvXTphZnRlcixcbiAgICAgICAg\nICAgICAjcGFnZXR1YWwtcGlja2VyIFt0eXBlPWNoZWNrYm94XTpiZWZvcmUsXG4gICAgICAgICAg\nICAgI3BhZ2V0dWFsLXBpY2tlciBbdHlwZT1yYWRpb106YmVmb3JlIHtcbiAgICAgICAgICAgICAg\nYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIGxhYmVsIHtcbiAgICAgICAgICAg\nICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAg\nICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgZGlzcGxh\neTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgICAgICAg\nICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4g\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVhbC1waWNrZXIgLmJvdHRvbSB7XG4g\nICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgIG1hcmdpbjogMTBw\neCAwO1xuICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgI3BhZ2V0dWFsLXBpY2tlciAuYm90dG9tPmJ1dHRvbiB7XG4gICAgICAgICAgICAgIGZs\nb2F0OiByaWdodDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBpY2tl\nciBzdmcge1xuICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0\nOiAzMHB4O1xuICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAg\nICAgICBmaWxsOiAjMTYxNjE2O1xuICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIHN2ZyAqIHtcbiAgICAg\nICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICNwYWdldHVhbC1waWNrZXIgLmFsbHBhdGgge1xuICAgICAgICAgICAgICBmb250LXNpemU6\nIDE4cHg7XG4gICAgICAgICAgICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgICAgICAgICAgICBt\nYXgtd2lkdGg6IDMzMHB4O1xuICAgICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4g\nICAgICAgICAgICAgIGN1cnNvcjogY29udGV4dC1tZW51O1xuICAgICAgICAgICAgICBvdmVyZmxv\ndzogaGlkZGVuO1xuICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MnB4O1xuICAgICAgICAgICAg\nICAtbW96LXRyYW5zaXRpb246bWF4LWhlaWdodCAxcyBlYXNlLWluO1xuICAgICAgICAgICAgICAt\nd2Via2l0LXRyYW5zaXRpb246bWF4LWhlaWdodCAxcyBlYXNlLWluO1xuICAgICAgICAgICAgICB0\ncmFuc2l0aW9uOm1heC1oZWlnaHQgMXMgZWFzZS1pbjtcbiAgICAgICAgICAgICAgY29sb3I6IGJs\nYWNrO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIC5hbGxw\nYXRoOmhvdmVyIHtcbiAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEzMHB4\nKTtcbiAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICNwYWdldHVhbC1waWNrZXIgLmFsbHBhdGg+c3Bhbi5wYXRoIHtcbiAgICAgICAgICAg\nICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1\nYWwtcGlja2VyIC5hbGxwYXRoPnNwYW4ucGF0aDpob3ZlciB7XG4gICAgICAgICAgICAgIG9wYWNp\ndHk6IDAuNjtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBpY2tlciAu\nYWxscGF0aD5zcGFuLnBhdGg6aG92ZXIsXG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBpY2tlciAu\nYWxscGF0aD5zcGFuLnBhdGguY2hlY2tlZCB7XG4gICAgICAgICAgICAgIGNvbG9yOiBvcmFuZ2Vy\nZWQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdldHVhbC1waWNrZXIgLm1vcmVD\nb25maWcge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBqdXN0\naWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgIGJvcmRlci10b3A6IDFw\neCBzb2xpZDtcbiAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgICAgICAg\nIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlj\na2VyIC5jb21tYW5kIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAg\nIGNvbG9yOiBibGFjayFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRl\ncjtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiBsYXJnZTtcbiAgICAgICAgICAgICAgbWFyZ2lu\nLXRvcDogMTBweDtcbiAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNnB4IDAgcmdiYSgw\nLCAwLCAwLCAwLjEyKTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyIC5jb21tYW5kOmhvdmVyIHtc\nbiAgICAgICAgICAgICAgY29sb3I6IG9yYW5nZXJlZDtcbiAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgI3BhZ2V0dWFsLXBpY2tlciAjc2hvd0RldGFpbCB7XG4gICAgICAgICAgICAgIGZsb2F0\nOiBpbml0aWFsO1xuICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAjcGFnZXR1YWwtcGlja2VyLnNob3dEZXRhaWwgI3Nob3dEZXRhaWwg\ne1xuICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICNwYWdldHVhbC1waWNrZXIgI3Nob3dEZXRhaWw+c3ZnIHtcbiAgICAgICAgICAgICAgLW1v\nei10cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgIC13ZWJraXQt\ndHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICAgICAgICAgICAgICB0cmFuc2l0aW9u\nOnRyYW5zZm9ybSAwLjMgZWFzZTtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0\ndWFsLXBpY2tlci5zaG93RGV0YWlsICNzaG93RGV0YWlsPnN2ZyB7XG4gICAgICAgICAgICAgIHRy\nYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNw\nYWdldHVhbC1waWNrZXIgLnRlbXBSdWxlIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtc\nbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAz\nMDBweDtcbiAgICAgICAgICAgICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICNwYWdldHVhbC1waWNrZXIuc2hvd0RldGFpbCAudGVtcFJ1bGUge1xuICAg\nICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgIHdvcmQtYnJl\nYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBp\nY2tlciAjc2F2ZURldGFpbCB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAg\nICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgYm90dG9tOiAxMHB4O1xu\nICAgICAgICAgICAgICByaWdodDogOHB4O1xuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAj\ncGFnZXR1YWwtcGlja2VyLnNob3dEZXRhaWwgI3NhdmVEZXRhaWwge1xuICAgICAgICAgICAgICBk\naXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICNwYWdl\ndHVhbC1waWNrZXIgI3NhdmVEZXRhaWwgc3ZnIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDM1cHg7\nXG4gICAgICAgICAgICAgIGhlaWdodDogMzVweDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgI3BhZ2V0dWFsLXBpY2tlciAuYWRkUHJvcCB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5v\nbmU7XG4gICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAg\nIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgYm90dG9tOiA0NXB4O1xuICAgICAg\nICAgICAgICByaWdodDogMTJweDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0\ndWFsLXBpY2tlci5zaG93RGV0YWlsIC5hZGRQcm9wIHtcbiAgICAgICAgICAgICAgZGlzcGxheTog\nZmxleDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgI3BhZ2V0dWFsLXBpY2tlciAuYWRk\nUHJvcD5idXR0b24ge1xuICAgICAgICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgICAg\nICAgIGZvbnQtZmFtaWx5OiBBcmlhbCxzYW5zLXNlcmlmO1xuICAgICAgICAgICAgICBsaW5lLWhl\naWdodDogMzVweDtcbiAgICAgICAgICAgICAgY29sb3I6ICMxNjE2MTY7XG4gICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICNwYWdldHVhbC1waWNrZXIgI2VkaXR7XG4gICAgICAgICAgICAgIC13\nZWJraXQtYW5pbWF0aW9uOiBqdW1wQW5pbWF0aW9uIC42cyA1O1xuICAgICAgICAgICAgICBhbmlt\nYXRpb246IGp1bXBBbmltYXRpb24gLjZzIDU7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nIEBrZXlmcmFtZXMganVtcEFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgIDAlIHtcbiAgICAgICAg\nICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gICAgICAgICAgICAg\nICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgNTAlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEu\nMikgdHJhbnNsYXRlWSgtNXB4KTtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1\nbmN0aW9uOiBlYXNlLWluO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDEwMCUge1xu\nICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgICAg\nICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMg\nanVtcEFuaW1hdGlvbiB7XG4gICAgICAgICAgICAgIDAlIHtcbiAgICAgICAgICAgICAgICAtd2Vi\na2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgICBh\nbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICA1MCUge1xuICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2Fs\nZSgxLjIpIHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLXRpbWlu\nZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAxMDAl\nIHtcbiAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRl\nWSgwKTtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91\ndDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGA7XG4gICAg\nICAgICAgICB0aGlzLm1haW5TaWduRGl2ID0gdGhpcy5jcmVhdGVTaWduRGl2KCk7XG4gICAgICAg\nICAgICB0aGlzLmFsbFNpZ25EaXYgPSBbXTtcbiAgICAgICAgICAgIGxldCBmcmFtZSA9IGRvY3Vt\nZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgICAgICBmcmFtZS5pZCA9IFwicGFn\nZXR1YWwtcGlja2VyXCI7XG4gICAgICAgICAgICBmcmFtZS5pbm5lckhUTUwgPSBjcmVhdGVIVE1M\nKGBcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHRpdGxlPVwiUGFnZXR1YWxcIiB0eXBlPVwiYnV0\ndG9uXCIgY2xhc3M9XCJsb2dvSWNvblwiPlxuICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1c\nIjMwXCIgaGVpZ2h0PVwiMzBcIiBjbGFzcz1cInVwU3ZnIHBhZ2V0dWFsXCIgdmlld0JveD1cIjAg\nMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3Jn\nXC8yMDAwXC9zdmdcIj48cGF0aCBkPVwiTTI5NiA0NDBjLTQ0LjEgMC04MCAzNS45LTgwIDgwczM1\nLjkgODAgODAgODAgODAtMzUuOSA4MC04MC0zNS45LTgwLTgwLTgwelwiIHN0eWxlPVwiZmlsbDog\nIzYwNGI0YTtcIiBmaWxsPVwiIzYwNGI0YVwiPjxcL3BhdGg+PHBhdGggZD1cIk05NjAgNTEyYzAt\nMjQ3LTIwMS00NDgtNDQ4LTQ0OFM2NCAyNjUgNjQgNTEyYzAgMS44IDAuMSAzLjUgMC4xIDUuMyAw\nIDAuOS0wLjEgMS44LTAuMSAyLjdoMC4yQzY4LjUgNzYzLjMgMjY3LjcgOTYwIDUxMiA5NjBjMjM2\nLjIgMCA0MzAuMS0xODMuNyA0NDYuNy00MTUuNyAwLjEtMC44IDAuMS0xLjYgMC4yLTIuMyAwLjQt\nNC42IDAuNS05LjMgMC43LTEzLjkgMC4xLTIuNyAwLjQtNS4zIDAuNC04aC0wLjJjMC0yLjggMC4y\nLTUuNCAwLjItOC4xeiBtLTE1MiA4YzAgNDQuMS0zNS45IDgwLTgwIDgwcy04MC0zNS45LTgwLTgw\nIDM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MHpNNTEyIDkyOEMyODQuNCA5MjggOTkgNzQ0LjMg\nOTYuMSA1MTcuMyA5Ny42IDQwOC4zIDE4Ni42IDMyMCAyOTYgMzIwYzExMC4zIDAgMjAwIDg5Ljcg\nMjAwIDIwMCAwIDEyNy45IDEwNC4xIDIzMiAyMzIgMjMyIDYyLjkgMCAxMTkuOS0yNS4yIDE2MS43\nLTY2LTY2IDE0Mi43LTIxMC40IDI0Mi0zNzcuNyAyNDJ6XCIgc3R5bGU9XCJmaWxsOiAjNjA0YjRh\nO1wiIGZpbGw9XCIjNjA0YjRhXCI+PFwvcGF0aD48XC9zdmc+XG4gICAgICAgICAgICAgICAgPFwv\nYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiIHRpdGxlPVwiJHtp\nMThuKFwiY29uZmlndXJlXCIpfVwiPiR7aTE4bihcInBpY2tlclwiKX08XC9kaXY+XG4gICAgICAg\nICAgICAgICAgPGJ1dHRvbiB0aXRsZT1cIiR7aTE4bihcImNsb3NlUGlja2VyXCIpfVwiIHR5cGU9\nXCJidXR0b25cIiBjbGFzcz1cImNsb3NlUGlja2VyXCI+XG4gICAgICAgICAgICAgICAgICA8c3Zn\nIHZpZXdCb3g9XCIwIDAgMTAyNCAxMDI0XCIgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDpc\nL1wvd3d3LnczLm9yZ1wvMjAwMFwvc3ZnXCI+PHBhdGggZD1cIk01MTIgMTI4YzIxMiAwIDM4NCAx\nNzIgMzg0IDM4NHMtMTcyIDM4NC0zODQgMzg0LTM4NC0xNzItMzg0LTM4NCAxNzItMzg0IDM4NC0z\nODRtMC02NEMyNjQuOCA2NCA2NCAyNjQuOCA2NCA1MTJzMjAwLjggNDQ4IDQ0OCA0NDggNDQ4LTIw\nMC44IDQ0OC00NDhTNzU5LjIgNjQgNTEyIDY0eiBtMjM4LjQgMjU0LjRsLTQ1LjYtNDUuNkw1MTIg\nNDY3LjIgMzE4LjQgMjczLjZsLTQ1LjYgNDUuNkw0NjcuMiA1MTIgMjczLjYgNzA1LjZsNDUuNiA0\nNS42TDUxMiA1NTcuNmwxOTMuNiAxOTMuNiA0NS42LTQ1LjZMNTU3LjYgNTEybDE5Mi44LTE5My42\nelwiIHN0eWxlPVwiZmlsbDogIzYwNGI0YTtcIiBmaWxsPVwiIzYwNGI0YVwiPjxcL3BhdGg+PFwv\nc3ZnPlxuICAgICAgICAgICAgICAgIDxcL2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNs\nYXNzPVwiYWxscGF0aFwiIHRpdGxlPVwiJHtpMThuKFwic3dpdGNoU2VsZWN0b3JcIil9XCI+PFwv\nZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8dGV4dGFyZWEg\nY2xhc3M9XCJzZWxlY3RvclwiIHNwZWxsY2hlY2s9XCJmYWxzZVwiIG5hbWU9XCJzZWxlY3Rvclwi\nIHBsYWNlaG9sZGVyPVwiJHtpMThuKFwicGlja2VyUGxhY2Vob2xkZXJcIil9XCI+PFwvdGV4dGFy\nZWE+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiY2hlY2tcIiB0aXRsZT1cIiR7aTE4\nbihcInBpY2tlckNoZWNrXCIpfVwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICAg\nICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249XCIxLjFcIiB4bWxucz1c\nImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPjxwYXRoIGQ9XCJNNTEyIDEyOGEzODQg\nMzg0IDAgMSAwIDAgNzY4IDM4NCAzODQgMCAwIDAgMC03Njh6IG0wLTg1LjMzMzMzM2MyNTkuMiAw\nIDQ2OS4zMzMzMzMgMjEwLjEzMzMzMyA0NjkuMzMzMzMzIDQ2OS4zMzMzMzNzLTIxMC4xMzMzMzMg\nNDY5LjMzMzMzMy00NjkuMzMzMzMzIDQ2OS4zMzMzMzNTNDIuNjY2NjY3IDc3MS4yIDQyLjY2NjY2\nNyA1MTIgMjUyLjggNDIuNjY2NjY3IDUxMiA0Mi42NjY2Njd6TTY5Ni4xNDkzMzMgMjk4LjY2NjY2\nN0w3NjggMzQ5Ljg2NjY2NyA0NzEuNTk0NjY3IDcyNS4zMzMzMzMgMjU2IDU3MS43MzMzMzNsNTMu\nODg4LTY4LjI2NjY2NiAxNDMuNzQ0IDEwMi40elwiIHN0eWxlPVwiZmlsbDogIzYwNGI0YTtcIiBm\naWxsPVwiIzYwNGI0YVwiPjxcL3BhdGg+PFwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPFwvYnV0\ndG9uPlxuICAgICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz\nPVwiYm90dG9tXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT1cInhwYXRoXCIgaWQ9\nXCJjaGVja2JveF9pZFwiIHR5cGU9XCJjaGVja2JveFwiIFwvPlxuICAgICAgICAgICAgICAgICAg\nPGxhYmVsIGZvcj1cImNoZWNrYm94X2lkXCI+WFBhdGg8XC9sYWJlbD5cbiAgICAgICAgICAgICAg\nICAgIDxidXR0b24gaWQ9XCJlZGl0XCIgdGl0bGU9XCIke2kxOG4oXCJnb3RvRWRpdFwiKX1cIiB0\neXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAx\nMDI0IDEwMjRcIiBzdHlsZT1cImNvbG9yOiBvcmFuZ2VyZWQ7ZmlsbDogb3JhbmdlcmVkO1wiIHZl\ncnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPlxu\nICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNzc1Ljg0IDM5Mi43NjhsLTE1NS4yLTE3\nMi4zNTJMMTYwLjc2OCA2NDMuMjY0bC0zOC4zNjggMTg3LjkzNiAxOTAuNTYtMTIuODMyek05Mjku\nOTUyIDIyOS45NTJsLTEzMS4yLTE1MC45NDQtMC4yODgtMC4zMmExNiAxNiAwIDAgMC0yMi41OTIt\nMC45NmwtMTMxLjE2OCAxMjAuNTc2IDE1NS4xNjggMTcyLjM1MiAxMjguODMyLTExOC40NjRhMTUu\nOTM2IDE1LjkzNiAwIDAgMCAxLjI0OC0yMi4yNHpNOTYgODk2aDgzMnY2NEg5NnpcIj5cbiAgICAg\nICAgICAgICAgICAgICAgICA8XC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICA8XC9zdmc+XG4g\nICAgICAgICAgICAgICAgICA8XC9idXR0b24+XG4gICAgICAgICAgICAgICAgPFwvZGl2PlxuICAg\nICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb3JlQ29uZmlnXCI+XG4gICAgICAgICAgICAgICAg\nICA8ZGl2IHRpdGxlPVwiJHtpMThuKCdmb3JjZVN0YXRlSWZyYW1lJyl9XCI+XG4gICAgICAgICAg\nICAgICAgICAgIDxpbnB1dCBuYW1lPVwiZm9yY2VTdGF0ZVwiIGlkPVwiZm9yY2VTdGF0ZUlmcmFt\nZVwiIHR5cGU9XCJyYWRpb1wiIFwvPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwi\nZm9yY2VTdGF0ZUlmcmFtZVwiPiR7aTE4bignaWZyYW1lJyl9PFwvbGFiZWw+XG4gICAgICAgICAg\nICAgICAgICA8XC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPVwiJHtpMThuKCdm\nb3JjZVN0YXRlRHluYW1pYycpfVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT1c\nImZvcmNlU3RhdGVcIiBpZD1cImZvcmNlU3RhdGVEeW5hbWljXCIgdHlwZT1cInJhZGlvXCIgXC8+\nXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmb3JjZVN0YXRlRHluYW1pY1wiPiR7\naTE4bignZHluYW1pYycpfTxcL2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPFwvZGl2PlxuICAg\nICAgICAgICAgICAgICAgPGRpdiB0aXRsZT1cIiR7aTE4bignZm9yY2VTdGF0ZURpc2FibGUnKX1c\nIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9XCJmb3JjZVN0YXRlXCIgaWQ9XCJm\nb3JjZVN0YXRlRGlzYWJsZVwiIHR5cGU9XCJyYWRpb1wiIFwvPlxuICAgICAgICAgICAgICAgICAg\nICA8bGFiZWwgZm9yPVwiZm9yY2VTdGF0ZURpc2FibGVcIj4ke2kxOG4oJ2Rpc2FibGUnKX08XC9s\nYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxcL2Rpdj5cbiAgICAgICAgICAgICAgICA8XC9kaXY+\nXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cIm5leHRTd2l0Y2hcIiBjbGFzcz1cImNvbW1h\nbmRcIiB0aXRsZT1cIiR7aTE4bihcIm5leHRTd2l0Y2hcIil9XCIgdHlwZT1cImJ1dHRvblwiPiR7\naTE4bihcIm5leHRTd2l0Y2hcIil9PFwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24g\naWQ9XCJsb2FkTm93XCIgY2xhc3M9XCJjb21tYW5kXCIgdGl0bGU9XCIke2kxOG4oXCJsb2FkTm93\nXCIpfVwiIHR5cGU9XCJidXR0b25cIj4ke2kxOG4oXCJsb2FkTm93XCIpfTxcL2J1dHRvbj5cbiAg\nICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYXV0b1Njcm9sbFwiIGNsYXNzPVwiY29tbWFuZFwi\nIHRpdGxlPVwiJHtpMThuKFwidG9nZ2xlQXV0b1Njcm9sbFwiKX1cIiB0eXBlPVwiYnV0dG9uXCI+\nPFwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJydWxlUmVxdWVzdFwiIGNs\nYXNzPVwiY29tbWFuZFwiIHRpdGxlPVwiJHtpMThuKFwicnVsZVJlcXVlc3RcIil9XCIgdHlwZT1c\nImJ1dHRvblwiPiR7aTE4bihcInJ1bGVSZXF1ZXN0XCIpfTxcL2J1dHRvbj5cbiAgICAgICAgICAg\nICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwidGVtcFJ1bGVc\nIiBzcGVsbGNoZWNrPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIntSdWxlIG9iamVjdH1cIiB0aXRs\nZT1cIlJ1bGUgZm9yIGN1cnJlbnQgc2l0ZVwiPjxcL3RleHRhcmVhPlxuICAgICAgICAgICAgICAg\nICAgPGJ1dHRvbiBpZD1cInNob3dEZXRhaWxcIiB0aXRsZT1cIlwiIHR5cGU9XCJidXR0b25cIj5c\nbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNp\nb249XCIxLjFcIiB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPjxwYXRo\nIGQ9XCJNNTExLjEgNjMuN2MtMjQ3LjQgMC00NDggMjAwLjYtNDQ4IDQ0OHMyMDAuNiA0NDggNDQ4\nIDQ0OCA0NDgtMjAwLjYgNDQ4LTQ0OC0yMDAuNi00NDgtNDQ4LTQ0OHogbTI4MS4yIDM3NC41TDUz\nNS42IDY5NC45Yy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMGwtMjU1LjgtMjU2Yy0xMi41LTEy\nLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDIxMC43IDIxMC43YzEyLjUgMTIu\nNSAzMi44IDEyLjUgNDUuMyAwbDIxMS40LTIxMS40YzEyLjUtMTIuNSAzMi44LTEyLjUgNDUuMyAw\nIDEyLjMgMTIuNSAxMi4zIDMyLjgtMC4yIDQ1LjN6XCIgc3R5bGU9XCJmaWxsOiBvcmFuZ2VyZWQ7\nXCIgZmlsbD1cIm9yYW5nZXJlZFwiPjxcL3BhdGg+PFwvc3ZnPlxuICAgICAgICAgICAgICAgICAg\nPFwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZFByb3BcIj5cbiAg\nICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD1cImFkZE90aGVyUHJvcFwiIHRpdGxlPVwiJHtp\nMThuKFwiYWRkT3RoZXJQcm9wXCIpfVwiIHR5cGU9XCJidXR0b25cIj4rPFwvYnV0dG9uPlxuICAg\nICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYWRkTmV4dFNlbGVjdG9yXCIgdGl0bGU9XCIk\ne2kxOG4oXCJhZGROZXh0U2VsZWN0b3JcIil9XCIgdHlwZT1cImJ1dHRvblwiPj48XC9idXR0b24+\nXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9XCJhZGRQYWdlU2VsZWN0b3JcIiB0aXRs\nZT1cIiR7aTE4bihcImFkZFBhZ2VTZWxlY3RvclwiKX1cIiB0eXBlPVwiYnV0dG9uXCI+4p2PPFwv\nYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPFwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGJ1\ndHRvbiBpZD1cInNhdmVEZXRhaWxcIiB0aXRsZT1cIiR7aTE4bihcInNhdmVcIil9XCIgdHlwZT1c\nImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMTAyNCAx\nMDI0XCIgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDpcL1wvd3d3LnczLm9yZ1wvMjAwMFwv\nc3ZnXCI+PHBhdGggZD1cIk03MDQgMTI4SDE5MmMtMzUuMiAwLTY0IDI4LjgtNjQgNjR2NjQwYzAg\nMzUuMiAyOC44IDY0IDY0IDY0aDY0MGMzNS4yIDAgNjQtMjguOCA2NC02NFYzMjBMNzA0IDEyOHpN\nMjU2IDI1NmgzMjB2MTI4SDI1NlYyNTZ6IG0yNTYgNTEyYy03MC40IDAtMTI4LTU3LjYtMTI4LTEy\nOHM1Ny42LTEyOCAxMjgtMTI4IDEyOCA1Ny42IDEyOCAxMjgtNTcuNiAxMjgtMTI4IDEyOHpcIiBz\ndHlsZT1cImZpbGw6IG9yYW5nZXJlZDtcIiBmaWxsPVwib3JhbmdlcmVkXCI+PFwvcGF0aD48XC9z\ndmc+XG4gICAgICAgICAgICAgICAgICA8XC9idXR0b24+XG4gICAgICAgICAgICAgICAgPFwvZGl2\nPlxuICAgICAgICAgICAgYCk7XG4gICAgICAgICAgICBsZXQgZm9yY2VTdGF0ZUlmcmFtZSA9IGZy\nYW1lLnF1ZXJ5U2VsZWN0b3IoXCIjZm9yY2VTdGF0ZUlmcmFtZVwiKTtcL1wvZm9yY2VTdGF0ZSAx\nIOemgeeUqCAyIOW8uuW1jCAzIOWKqOaAgVxuICAgICAgICAgICAgbGV0IGZvcmNlU3RhdGVEeW5h\nbWljID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNmb3JjZVN0YXRlRHluYW1pY1wiKTtcbiAgICAg\nICAgICAgIGxldCBmb3JjZVN0YXRlRGlzYWJsZSA9IGZyYW1lLnF1ZXJ5U2VsZWN0b3IoXCIjZm9y\nY2VTdGF0ZURpc2FibGVcIik7XG4gICAgICAgICAgICBsZXQgY2xpY2tSYWRpbyA9IGUgPT4ge1xu\nICAgICAgICAgICAgICAgIGxldCByYWRpbyA9IGUuY3VycmVudFRhcmdldC5xdWVyeVNlbGVjdG9y\nKCdpbnB1dCcpO1xuICAgICAgICAgICAgICAgIGlmIChyYWRpby5jaGVja2VkKSB7XG4gICAgICAg\nICAgICAgICAgICAgIGZvcmNlU3RhdGUgPSBcIlwiO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7\nXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocmFkaW8uaWQpIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGNhc2UgXCJmb3JjZVN0YXRlSWZyYW1lXCI6XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZm9yY2VTdGF0ZSA9IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl\nYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZm9yY2VTdGF0ZUR5bmFtaWNcIjpc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZVN0YXRlID0gMztcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJm\nb3JjZVN0YXRlRGlzYWJsZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlU3Rh\ndGUgPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47\nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgc2V0TGlzdERhdGEoXCJmb3JjZVN0YXRlXCIsIGxvY2F0aW9uLmhvc3QsIGZvcmNlU3RhdGUp\nO1xuICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1l\nb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAg\nICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBmb3JjZVN0\nYXRlSWZyYW1lLnBhcmVudE5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBjbGlj\na1JhZGlvKTtcbiAgICAgICAgICAgIGZvcmNlU3RhdGVEeW5hbWljLnBhcmVudE5vZGUuYWRkRXZl\nbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBjbGlja1JhZGlvKTtcbiAgICAgICAgICAgIGZvcmNl\nU3RhdGVEaXNhYmxlLnBhcmVudE5vZGUuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCBj\nbGlja1JhZGlvKTtcbiAgICAgICAgICAgIGlmIChmb3JjZVN0YXRlID09IDEpIGZvcmNlU3RhdGVE\naXNhYmxlLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgZWxzZSBpZiAoZm9yY2VTdGF0ZSA9\nPSAyKSBmb3JjZVN0YXRlSWZyYW1lLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgZWxzZSBp\nZiAoZm9yY2VTdGF0ZSA9PSAzKSBmb3JjZVN0YXRlRHluYW1pYy5jaGVja2VkID0gdHJ1ZTtcbiAg\nICAgICAgICAgIGxldCBjbG9zZUJ0biA9IGZyYW1lLnF1ZXJ5U2VsZWN0b3IoXCIuY2xvc2VQaWNr\nZXJcIik7XG4gICAgICAgICAgICBsZXQgbG9nb0J0biA9IGZyYW1lLnF1ZXJ5U2VsZWN0b3IoXCIu\nbG9nb0ljb25cIik7XG4gICAgICAgICAgICBsZXQgdGl0bGUgPSBmcmFtZS5xdWVyeVNlbGVjdG9y\nKFwiLnRpdGxlXCIpO1xuICAgICAgICAgICAgbGV0IGFsbHBhdGggPSBmcmFtZS5xdWVyeVNlbGVj\ndG9yKFwiLmFsbHBhdGhcIik7XG4gICAgICAgICAgICBsZXQgc2VsZWN0b3JJbnB1dCA9IGZyYW1l\nLnF1ZXJ5U2VsZWN0b3IoXCIuc2VsZWN0b3JcIik7XG4gICAgICAgICAgICBsZXQgeHBhdGggPSBm\ncmFtZS5xdWVyeVNlbGVjdG9yKFwiI2NoZWNrYm94X2lkXCIpO1xuICAgICAgICAgICAgbGV0IGNo\nZWNrQnRuID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNjaGVja1wiKTtcbiAgICAgICAgICAgIGxl\ndCBlZGl0QnRuID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNlZGl0XCIpO1xuICAgICAgICAgICAg\nbGV0IG5leHRTd2l0Y2hCdG4gPSBmcmFtZS5xdWVyeVNlbGVjdG9yKFwiI25leHRTd2l0Y2hcIik7\nXG4gICAgICAgICAgICBsZXQgYXV0b1Njcm9sbEJ0biA9IGZyYW1lLnF1ZXJ5U2VsZWN0b3IoXCIj\nYXV0b1Njcm9sbFwiKTtcbiAgICAgICAgICAgIGxldCBsb2FkTm93ID0gZnJhbWUucXVlcnlTZWxl\nY3RvcihcIiNsb2FkTm93XCIpO1xuICAgICAgICAgICAgbGV0IHRlbXBSdWxlID0gZnJhbWUucXVl\ncnlTZWxlY3RvcihcIi50ZW1wUnVsZVwiKTtcbiAgICAgICAgICAgIGxldCBzaG93RGV0YWlsQnRu\nID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNzaG93RGV0YWlsXCIpO1xuICAgICAgICAgICAgbGV0\nIHNhdmVEZXRhaWxCdG4gPSBmcmFtZS5xdWVyeVNlbGVjdG9yKFwiI3NhdmVEZXRhaWxcIik7XG4g\nICAgICAgICAgICBsZXQgYWRkT3RoZXJQcm9wID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNhZGRP\ndGhlclByb3BcIik7XG4gICAgICAgICAgICBsZXQgYWRkTmV4dFNlbGVjdG9yID0gZnJhbWUucXVl\ncnlTZWxlY3RvcihcIiNhZGROZXh0U2VsZWN0b3JcIik7XG4gICAgICAgICAgICBsZXQgYWRkUGFn\nZVNlbGVjdG9yID0gZnJhbWUucXVlcnlTZWxlY3RvcihcIiNhZGRQYWdlU2VsZWN0b3JcIik7XG4g\nICAgICAgICAgICBsZXQgcnVsZVJlcXVlc3RCdG4gPSBmcmFtZS5xdWVyeVNlbGVjdG9yKFwiI3J1\nbGVSZXF1ZXN0XCIpO1xuICAgICAgICAgICAgcnVsZVJlcXVlc3RCdG4uYWRkRXZlbnRMaXN0ZW5l\ncihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAgIF9HTV9vcGVuSW5UYWIoXCJodHRw\nczpcL1wvZ2l0aHViLmNvbVwvaG9vdGhpblwvVXNlclNjcmlwdHNcL2lzc3Vlc1wvbmV3P2xhYmVs\ncz1QYWdldHVhbCZ0ZW1wbGF0ZT1jdXN0b20tcnVsZS1yZXF1ZXN0Lm1kJnRpdGxlPVJlcXVlc3Ql\nMjBQYWdldHVhbCUyMHN1cHBvcnQlMjBmb3IlMjBcIiArIGxvY2F0aW9uLmhvc3RuYW1lICsgXCIj\nXCIgKyBsb2NhdGlvbi5ocmVmLCB7YWN0aXZlOiB0cnVlfSk7XG4gICAgICAgICAgICB9LCB0cnVl\nKTtcbiAgICAgICAgICAgIGF1dG9TY3JvbGxCdG4uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIs\nIGUgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICBh\ndXRvU2Nyb2xsID0gKGF1dG9TY3JvbGwgPyAwIDogcHJvbXB0KGkxOG4oXCJhdXRvU2Nyb2xsUmF0\nZVwiKSwgYXV0b1Njcm9sbFJhdGUpKSB8fCAwO1xuICAgICAgICAgICAgICAgIGF1dG9TY3JvbGwg\nPSBwYXJzZUludChhdXRvU2Nyb2xsKSB8fCAwO1xuICAgICAgICAgICAgICAgIGlmIChhdXRvU2Ny\nb2xsIDwgMCkgYXV0b1Njcm9sbCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKGF1dG9TY3JvbGwg\nJiYgYXV0b1Njcm9sbCAhPSBhdXRvU2Nyb2xsUmF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBh\ndXRvU2Nyb2xsUmF0ZSA9IGF1dG9TY3JvbGw7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uu\nc2V0SXRlbShcImF1dG9TY3JvbGxSYXRlXCIsIGF1dG9TY3JvbGxSYXRlKTtcbiAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgc2V0TGlzdERhdGEoXCJhdXRvU2Nyb2xsXCIsIGxvY2F0\naW9uLmhvc3QgKyBsb2NhdGlvbi5wYXRobmFtZSwgYXV0b1Njcm9sbCk7XG4gICAgICAgICAgICAg\nICAgc3RhcnRBdXRvU2Nyb2xsKCk7XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICAg\nIGFkZE90aGVyUHJvcC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAg\nICAgICAgICAgbGV0IHByb3BOYW1lID0gcHJvbXB0KGkxOG4oXCJwcm9wTmFtZVwiKSwgXCJhdXRo\nb3JcIik7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9wTmFtZSkgcmV0dXJuO1xuICAgICAgICAg\nICAgICAgIGxldCBwcm9wVmFsdWUgPSBwcm9tcHQoaTE4bihcInByb3BWYWx1ZVwiKSk7XG4gICAg\nICAgICAgICAgICAgaWYgKCFwcm9wVmFsdWUpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAo\ncHJvcFZhbHVlID09PSBcInRydWVcIikgcHJvcFZhbHVlID0gdHJ1ZTtcbiAgICAgICAgICAgICAg\nICBlbHNlIGlmIChwcm9wVmFsdWUgPT09IFwiZmFsc2VcIikgcHJvcFZhbHVlID0gZmFsc2U7XG4g\nICAgICAgICAgICAgICAgZWxzZSBpZiAoXC9eXFxkKyRcLy50ZXN0KHByb3BWYWx1ZSkpIHByb3BW\nYWx1ZSA9IHBhcnNlSW50KHByb3BWYWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHByb3BOYW1l\nID09PSBcImF1dGhvclwiICYmIHByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBhdXRo\nb3IgPSBwcm9wVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcImF1\ndGhvclwiLCBwcm9wVmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBs\nZXQgZWRpdFRlbXAgPSBzZWxmLmdldFRlbXBSdWxlKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAg\nICAgICBpZiAoIWVkaXRUZW1wKSByZXR1cm47XG4gICAgICAgICAgICAgICAgZWRpdFRlbXBbcHJv\ncE5hbWVdID0gcHJvcFZhbHVlO1xuICAgICAgICAgICAgICAgIHNlbGYudGVtcFJ1bGUudmFsdWUg\nPSBKU09OLnN0cmluZ2lmeShlZGl0VGVtcCwgbnVsbCwgNCk7XG4gICAgICAgICAgICB9LCB0cnVl\nKTtcbiAgICAgICAgICAgIGFkZE90aGVyUHJvcC5hZGRFdmVudExpc3RlbmVyKFwiY29udGV4dG1l\nbnVcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAg\nICAgICAgICAgIF9HTV9vcGVuSW5UYWIoY29uZmlnUGFnZVswXSwge2FjdGl2ZTogdHJ1ZX0pO1xu\nICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICBhZGROZXh0U2VsZWN0b3IuYWRkRXZl\nbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBlZGl0VGVt\ncCA9IHNlbGYuZ2V0VGVtcFJ1bGUoZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmICgh\nZWRpdFRlbXApIHJldHVybjtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0b3IgPSBzZWxmLnNl\nbGVjdG9ySW5wdXQudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yKSB7XG4gICAg\nICAgICAgICAgICAgICAgIGVkaXRUZW1wLm5leHRMaW5rID0gc2VsZWN0b3I7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIHNlbGYudGVtcFJ1bGUudmFsdWUgPSBKU09OLnN0cmlu\nZ2lmeShlZGl0VGVtcCwgbnVsbCwgNCk7XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAg\nICAgIGFkZE5leHRTZWxlY3Rvci5hZGRFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIiwgZSA9\nPiB7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAg\nIF9HTV9vcGVuSW5UYWIoY29uZmlnUGFnZVswXS5yZXBsYWNlKFwicnVsZS5odG1sXCIsIFwicnVs\nZXNcL25leHRMaW5rLmh0bWxcIiksIHthY3RpdmU6IHRydWV9KTtcbiAgICAgICAgICAgIH0sIHRy\ndWUpO1xuICAgICAgICAgICAgYWRkUGFnZVNlbGVjdG9yLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlj\na1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZWRpdFRlbXAgPSBzZWxmLmdldFRlbXBS\ndWxlKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAoIWVkaXRUZW1wKSByZXR1cm47\nXG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdG9yID0gc2VsZi5zZWxlY3RvcklucHV0LnZhbHVl\nO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICBl\nZGl0VGVtcC5wYWdlRWxlbWVudCA9IHNlbGVjdG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICBzZWxmLnRlbXBSdWxlLnZhbHVlID0gSlNPTi5zdHJpbmdpZnkoZWRpdFRlbXAs\nIG51bGwsIDQpO1xuICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICBhZGRQYWdlU2Vs\nZWN0b3IuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsIGUgPT4ge1xuICAgICAgICAg\nICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBfR01fb3BlbkluVGFi\nKGNvbmZpZ1BhZ2VbMF0ucmVwbGFjZShcInJ1bGUuaHRtbFwiLCBcInJ1bGVzXC9wYWdlRWxlbWVu\ndC5odG1sXCIpLCB7YWN0aXZlOiB0cnVlfSk7XG4gICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAg\nICAgICAgIHNob3dEZXRhaWxCdG4uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xu\nICAgICAgICAgICAgICAgIGZyYW1lLmNsYXNzTGlzdC50b2dnbGUoXCJzaG93RGV0YWlsXCIpO1xu\nICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICBzYXZlRGV0YWlsQnRuLmFkZEV2ZW50\nTGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZWRpdFRlbXAg\nPSBzZWxmLmdldFRlbXBSdWxlKHRydWUsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmICh0ZW1w\nUnVsZS52YWx1ZSAmJiAhZWRpdFRlbXApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZighcnVsZVBhcnNlci5jdXN0b21S\ndWxlcykge1xuICAgICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmN1c3RvbVJ1bGVzID0gW107\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJ1bGVQYXJzZXIuY3VzdG9tUnVs\nZXMgPSBydWxlUGFyc2VyLmN1c3RvbVJ1bGVzLmZpbHRlcihpdGVtID0+IHtyZXR1cm4gaXRlbS51\ncmwgIT0gZWRpdFRlbXAudXJsIHx8IGl0ZW0ubmFtZSAhPSBlZGl0VGVtcC5uYW1lfSk7XG4gICAg\nICAgICAgICAgICAgaWYgKHRlbXBSdWxlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1\nbGVQYXJzZXIuY3VzdG9tUnVsZXMudW5zaGlmdChlZGl0VGVtcCk7XG4gICAgICAgICAgICAgICAg\nICAgIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUgPSBlZGl0VGVtcDtcbiAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmN1clNpdGVSdWxlID0ge307\nXG4gICAgICAgICAgICAgICAgICAgIGlzUGF1c2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oXCJjdXN0b21SdWxlc1wiLCBydWxlUGFy\nc2VyLmN1c3RvbVJ1bGVzKTtcbiAgICAgICAgICAgICAgICBpZiAocnVsZVBhcnNlci5ocFJ1bGVz\nICYmIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUgJiYgIXJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc21h\ncnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5hZGRUb0hwUnVsZXModHJ1ZSk7\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY29uZmlybShp\nMThuKFwicmVsb2FkUGFnZVwiKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgo\nKSA9PiB7bG9jYXRpb24ucmVsb2FkKCl9LCAxMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgIH0sIHRydWUpO1xuICAgICAgICAgICAgbmV4dFN3aXRjaEJ0bi5hZGRFdmVudExpc3Rl\nbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5jbG9zZSgpO1xuICAg\nICAgICAgICAgICAgIG5leHRTd2l0Y2guc3RhcnQoKTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xu\nICAgICAgICAgICAgbG9hZE5vdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4g\nICAgICAgICAgICAgICAgc2VsZi5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIGxldCBsb2FkTnVt\nID0gd2luZG93LnByb21wdChpMThuKFwibG9hZENvbmZpcm1cIiksIFwiMVwiKTtcbiAgICAgICAg\nICAgICAgICBpZiAobG9hZE51bSA9PT0gXCJcIiB8fCBsb2FkTnVtID09PSBudWxsKSByZXR1cm47\nXG4gICAgICAgICAgICAgICAgYXV0b0xvYWROdW0gPSBNYXRoLmFicyhwYXJzZUludChsb2FkTnVt\nKSk7XG4gICAgICAgICAgICAgICAgbmV4dFBhZ2UoKTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xu\nICAgICAgICAgICAgY2xvc2VCdG4uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xu\nICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xuICAg\nICAgICAgICAgdGhpcy5zaG93U2lnbiA9IHRydWU7XG4gICAgICAgICAgICBsb2dvQnRuLmFkZEV2\nZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBsb2dvQnRuLmNs\nYXNzTGlzdC50b2dnbGUoXCJzaG93U2lnblwiKTtcbiAgICAgICAgICAgICAgICBzZWxmLnNob3dT\naWduID0gIXNlbGYuc2hvd1NpZ247XG4gICAgICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCku\nY2xhc3NMaXN0LnRvZ2dsZShcInBhZ2V0dWFsLXBpY2tlclwiKTtcbiAgICAgICAgICAgIH0sIHRy\ndWUpO1xuICAgICAgICAgICAgbGV0IG1vdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGlu\naXRYID0gMCwgaW5pdFkgPSAwLCBpbml0UG9zID0ge3g6IDAsIHk6IDB9O1xuICAgICAgICAgICAg\nbGV0IG1vdmVIYW5sZGVyID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG1vdmluZykge1xu\nICAgICAgICAgICAgICAgICAgICBmcmFtZS5zdHlsZS5sZWZ0ID0gY2xpZW50WChlKSAtIGluaXRY\nICsgXCJweFwiO1xuICAgICAgICAgICAgICAgICAgICBmcmFtZS5zdHlsZS50b3AgPSBjbGllbnRZ\nKGUpIC0gaW5pdFkgKyBcInB4XCI7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0\naW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAg\nICAgICAgICB9IGVsc2UgaWYoTWF0aC5hYnMoY2xpZW50WChlKSAtIGluaXRQb3MueCkgKyBNYXRo\nLmFicyhjbGllbnRZKGUpIC0gaW5pdFBvcy55KSA+IDIwKSB7XG4gICAgICAgICAgICAgICAgICAg\nIG1vdmluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAg\nICAgICAgIGxldCB1cEhhbmxkZXIgPSBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobW92aW5n\nKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIF9HTV9vcGVuSW5UYWIoY29uZmlnUGFnZVsw\nXSwge2FjdGl2ZTogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBk\nb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIG1vdmVIYW5sZGVyLCB0\ncnVlKTtcbiAgICAgICAgICAgICAgICB0aXRsZS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1\ncFwiLCB1cEhhbmxkZXIsIHRydWUpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9u\nKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfTtc\nbiAgICAgICAgICAgIHRpdGxlLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgZSA9PiB7\nXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUu\nc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaW5pdFBvcyA9IHt4OiBlLmNsaWVu\ndFgsIHk6IGUuY2xpZW50WX07XG4gICAgICAgICAgICAgICAgaW5pdFggPSBlLmNsaWVudFggLSBw\nYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGZyYW1lKS5sZWZ0KTtcbiAgICAgICAgICAgICAgICBp\nbml0WSA9IGUuY2xpZW50WSAtIHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUoZnJhbWUpLnRvcCk7\nXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwi\nLCBtb3ZlSGFubGRlciwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGl0bGUuYWRkRXZlbnRMaXN0\nZW5lcihcIm1vdXNldXBcIiwgdXBIYW5sZGVyLCB0cnVlKTtcbiAgICAgICAgICAgIH0sIHsgcGFz\nc2l2ZTogZmFsc2UsIGNhcHR1cmU6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICB0aXRsZS5hZGRF\ndmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5wcmV2\nZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAg\nICAgICAgICAgICAgaW5pdFBvcyA9IHt4OiBjbGllbnRYKGUpLCB5OiBjbGllbnRZKGUpfTtcbiAg\nICAgICAgICAgICAgICBpbml0WCA9IGluaXRQb3MueCAtIHBhcnNlSW50KGdldENvbXB1dGVkU3R5\nbGUoZnJhbWUpLmxlZnQpO1xuICAgICAgICAgICAgICAgIGluaXRZID0gaW5pdFBvcy55IC0gcGFy\nc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShmcmFtZSkudG9wKTtcbiAgICAgICAgICAgICAgICBkb2N1\nbWVudC5hZGRFdmVudExpc3RlbmVyKFwidG91Y2htb3ZlXCIsIG1vdmVIYW5sZGVyLCB0cnVlKTtc\nbiAgICAgICAgICAgICAgICB0aXRsZS5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHVwSGFu\nbGRlciwgZmFsc2UpO1xuICAgICAgICAgICAgfSwgeyBwYXNzaXZlOiBmYWxzZSwgY2FwdHVyZTog\nZmFsc2UgfSk7XG5cbiAgICAgICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWVu\ndGVyXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghc2VsZi5zaG93U2lnbiB8fCBtb3Zp\nbmcpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5tYWluU2lnbkRpdi5wYXJlbnRO\nb2RlKSBzZWxmLm1haW5TaWduRGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc2VsZi5tYWluU2ln\nbkRpdik7XG4gICAgICAgICAgICAgICAgc2VsZi5jaGVja0lucHV0U2VsZWN0b3IoZmFsc2UpO1xu\nICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmcmFtZS5hZGRFdmVudExpc3RlbmVyKFwibW91\nc2VsZWF2ZVwiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXNlbGYuc2hvd1NpZ24pIHtc\nbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYubWFpblNpZ25EaXYucGFyZW50Tm9kZSkgc2Vs\nZi5tYWluU2lnbkRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNlbGYubWFpblNpZ25EaXYpO1xu\nICAgICAgICAgICAgICAgICAgICBzZWxmLmNsZWFyU2lnbnMoKTtcbiAgICAgICAgICAgICAgICAg\nICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobW92aW5n\nKSByZXR1cm47XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVu\nZENoaWxkKHNlbGYubWFpblNpZ25EaXYpO1xuICAgICAgICAgICAgICAgIHNlbGYuY2xlYXJTaWdu\ncygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjaGVja0J0bi5hZGRFdmVudExpc3Rl\nbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5jaGVja0lucHV0U2Vs\nZWN0b3IoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RvcklucHV0LnZhbHVlICYm\nIHNlbGYuZm91bmRFbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVidWcoc2VsZi5mb3VuZEVs\nZSk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuZm91bmRFbGVbMF0uc2Nyb2xsSW50b1ZpZXco\neyBiZWhhdmlvcjogXCJzbW9vdGhcIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgX0dNX3NldENs\naXBib2FyZCh0aGlzLnNlbGVjdG9ySW5wdXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBz\naG93VGlwcyhpMThuKFwiY29waWVkXCIpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Ugc2hvd1Rp\ncHMoXCJOdWxsXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB4cGF0aC5hZGRFdmVu\ndExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFzZWxlY3Rv\ncklucHV0LnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0U2VsZWN0b3JEaXYo\nXCJcIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSBnZXRFbGVtZW50KHNlbGVjdG9ySW5wdXQudmFs\ndWUsIGRvY3VtZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgc2VsZWN0b3IgPSBzZWxmLmdldFNl\nbGVjdG9yRnJvbUVsZShlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBzZWxlY3RvcklucHV0LnZh\nbHVlID0gc2VsZWN0b3I7XG4gICAgICAgICAgICAgICAgc2VsZi5zZXRTZWxlY3RvckRpdihzZWxl\nY3Rvcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGVkaXRCdG4uYWRkRXZlbnRMaXN0\nZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAgICAgICAgIHJ1bGVzRGF0YS5lZGl0VGVt\ncCA9IHNlbGYuZ2V0VGVtcFJ1bGUoZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgIHN0b3Jh\nZ2Uuc2V0SXRlbShcInJ1bGVzRGF0YVwiLCBydWxlc0RhdGEpO1xuICAgICAgICAgICAgICAgIF9H\nTV9vcGVuSW5UYWIocnVsZXNEYXRhLmNvbmZpZ1BhZ2UgfHwgY29uZmlnUGFnZVswXSwge2FjdGl2\nZTogdHJ1ZX0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlZGl0QnRuLm9uY29udGV4\ndG1lbnUgPSBlID0+IHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAg\nICAgICAgICAgICAgX0dNX29wZW5JblRhYihydWxlc0RhdGEuY29uZmlnUGFnZSB8fCBjb25maWdQ\nYWdlWzBdLCB7YWN0aXZlOiB0cnVlfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhp\ncy5mcmFtZSA9IGZyYW1lO1xuICAgICAgICAgICAgdGhpcy54cGF0aCA9IHhwYXRoO1xuICAgICAg\nICAgICAgdGhpcy5hbGxwYXRoID0gYWxscGF0aDtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0b3JJ\nbnB1dCA9IHNlbGVjdG9ySW5wdXQ7XG4gICAgICAgICAgICB0aGlzLm5leHRTd2l0Y2hCdG4gPSBu\nZXh0U3dpdGNoQnRuO1xuICAgICAgICAgICAgdGhpcy5hdXRvU2Nyb2xsQnRuID0gYXV0b1Njcm9s\nbEJ0bjtcbiAgICAgICAgICAgIHRoaXMubG9hZE5vdyA9IGxvYWROb3c7XG4gICAgICAgICAgICB0\naGlzLnRlbXBSdWxlID0gdGVtcFJ1bGU7XG4gICAgICAgICAgICB0aGlzLmxvZ29CdG4gPSBsb2dv\nQnRuO1xuICAgICAgICAgICAgbGV0IHNldFRpdGxlVGltZXI7XG4gICAgICAgICAgICB0aGlzLm1v\ndmVIYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFzZWxmLnNob3dTaWduIHx8\nIGUudGFyZ2V0ID09PSBkb2N1bWVudCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCB0YXJn\nZXQgPSBzZWxmLmdldFRhcmdldChlLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgc2VsZi5hZGp1\nc3RTaWduRGl2KHNlbGYubWFpblNpZ25EaXYsIHRhcmdldCk7XG4gICAgICAgICAgICAgICAgY2xl\nYXJUaW1lb3V0KHNldFRpdGxlVGltZXIpO1xuICAgICAgICAgICAgICAgIHNldFRpdGxlVGltZXIg\nPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuaW5QaWNr\nZXIgJiYgdGFyZ2V0Lmhhc0F0dHJpYnV0ZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nbGV0IHRpdGxlID0gdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgKyBcIlxcblwiO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdHRyIG9mIHRhcmdldC5hdHRyaWJ1dGVz\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgKz0gYOOAkCR7YXR0ci5uYW1l\nfeOAkSR7YXR0ci52YWx1ZSA\/IFwiIOKeoe+4jyBcIiArIGF0dHIudmFsdWUgOiBcIlwifVxcbmA7\nXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRC\nb2R5KGRvY3VtZW50KS50aXRsZSA9IHRpdGxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmNs\naWNrSGFuZGxlciA9IGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghc2VsZi5zaG93U2lnbiB8\nfCAhZS5pc1RydXN0ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZi5pblBpY2tl\ncikge1xuICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAg\nICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgIGxldCB0YXJnZXQgPSBzZWxmLmdldFRhcmdldChlLnRhcmdldCk7XG4gICAgICAg\nICAgICAgICAgbGV0IHNlbGVjdG9yID0gc2VsZi5nZXRTZWxlY3RvckZyb21FbGUodGFyZ2V0KTtc\nbiAgICAgICAgICAgICAgICBzZWxlY3RvcklucHV0LnZhbHVlID0gc2VsZWN0b3I7XG4gICAgICAg\nICAgICAgICAgc2VsZi5zZXRTZWxlY3RvckRpdihzZWxlY3Rvcik7XG4gICAgICAgICAgICB9O1xu\nICAgICAgICB9XG5cbiAgICAgICAgY29udGFpbnMoZWxlKSB7XG4gICAgICAgICAgICByZXR1cm4g\ndGhpcy5mcmFtZSAmJiB0aGlzLmZyYW1lLmNvbnRhaW5zKGVsZSk7XG4gICAgICAgIH1cblxuICAg\nICAgICBnZXRUZW1wUnVsZShkZXRhaWwsIG5vRmlsbCkge1xuICAgICAgICAgICAgaWYgKHRoaXMu\ndGVtcFJ1bGUudmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAg\nICAgICB0aGlzLmVkaXRUZW1wID0gSlNPTi5wYXJzZSh0aGlzLnRlbXBSdWxlLnZhbHVlKTtcbiAg\nICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRp\ndFRlbXAgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlsKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBsZXQgcG9zID0gZSAmJiBlLm1lc3NhZ2UgJiYgZS5tZXNzYWdlLm1h\ndGNoKFwvcG9zaXRpb24gKFxcZCspXC8pO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBv\ncykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IHBhcnNlSW50KHBvc1sxXSk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZW1wUnVsZS52YWx1ZSA9IHRoaXMu\ndGVtcFJ1bGUudmFsdWUuc2xpY2UoMCwgcG9zKSArIFwi4p6h77iPXCIgKyB0aGlzLnRlbXBSdWxl\nLnZhbHVlLnNsaWNlKHBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKFwiZXJyb3JKc29uXCIpKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmVkaXRUZW1w\nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUudXJsICYmICFy\ndWxlUGFyc2VyLmN1clNpdGVSdWxlLnNtYXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMu\nZWRpdFRlbXAgPSBydWxlUGFyc2VyLmN1clNpdGVSdWxlO1xuICAgICAgICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdFRlbXAgPSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBuYW1lOiBkb2N1bWVudC50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHVybDogXCJeXCIgKyAobG9jYXRpb24ub3JpZ2luICsgbG9jYXRpb24ucGF0aG5hbWUpLnJlcGxh\nY2UoXC9bXlxcXC9dKiRcLywgXCJcIikucmVwbGFjZShcL15odHRwcz9cLywgXCJodHRwcz9cIiku\ncmVwbGFjZShcL1xcLlwvZywgXCJcXFxcLlwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4\nYW1wbGU6IGxvY2F0aW9uLmhyZWZcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAg\nICAgICAgICAgaWYgKGF1dGhvcikgdGhpcy5lZGl0VGVtcC5hdXRob3IgPSBhdXRob3I7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmVkaXRUZW1wLmZyb207\nXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuZWRpdFRlbXAudHlwZTtcbiAgICAgICAgICAg\nICAgICBkZWxldGUgdGhpcy5lZGl0VGVtcC51cGRhdGVkQXQ7XG4gICAgICAgICAgICB9XG4gICAg\nICAgICAgICBpZiAoIW5vRmlsbCAmJiB0aGlzLnNlbGVjdG9ySW5wdXQudmFsdWUgJiYgKCF0aGlz\nLmZyYW1lLmNsYXNzTGlzdC5jb250YWlucyhcInNob3dEZXRhaWxcIikgfHwgIXRoaXMuZWRpdFRl\nbXAgfHwgIXRoaXMuZWRpdFRlbXAucGFnZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgaWYg\nKHRoaXMuZm91bmRFbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm91bmRFbGUu\nbGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZm91bmRFbGVSZWN0\nID0gdGhpcy5mb3VuZEVsZVswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGlmIChmb3VuZEVsZVJlY3QuaGVpZ2h0IDwgMTAwKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgc2hvd1RpcHMoXCJOZXh0IExpbmtcIiwgXCJcIiwgNTAwKTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRUZW1wLm5leHRMaW5rID0gdGhpcy5z\nZWxlY3RvcklucHV0LnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0\naGlzLmVkaXRUZW1wO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nICAgICB9IGVsc2UgaWYgKHRoaXMuZm91bmRFbGUubGVuZ3RoIDw9IDMpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGxldCBmb3VuZEVsZVJlY3QgPSB0aGlzLmZvdW5kRWxlWzBdLmdldEJvdW5k\naW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZvdW5kRWxlUmVj\ndC5oZWlnaHQgPCAzMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUaXBzKFwi\nTmV4dCBMaW5rXCIsIFwiXCIsIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp\ncy5lZGl0VGVtcC5uZXh0TGluayA9IHRoaXMuc2VsZWN0b3JJbnB1dC52YWx1ZTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lZGl0VGVtcDtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICBzaG93VGlwcyhcIlBhZ2UgRWxlbWVudFwiLCBcIlwiLCA1MDApO1xuICAg\nICAgICAgICAgICAgIHRoaXMuZWRpdFRlbXAucGFnZUVsZW1lbnQgPSB0aGlzLnNlbGVjdG9ySW5w\ndXQudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lZGl0VGVt\ncDtcbiAgICAgICAgfVxuXG4gICAgICAgIGdldFRhcmdldChlbGUpIHtcbiAgICAgICAgICAgIHdo\naWxlIChlbGUucGFyZW50Tm9kZSAmJiAoZWxlLm9mZnNldFdpZHRoID09PSAwIHx8IGVsZS5vZmZz\nZXRIZWlnaHQgPT09IDApKSB7XG4gICAgICAgICAgICAgICAgZWxlID0gZWxlLnBhcmVudE5vZGU7\nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZWxlO1xuICAgICAgICB9XG5cbiAg\nICAgICAgY2xvc2UoKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2lnbnMoKTtcbiAgICAgICAg\nICAgIGlmICh0aGlzLmZyYW1lLnBhcmVudE5vZGUpIHRoaXMuZnJhbWUucGFyZW50Tm9kZS5yZW1v\ndmVDaGlsZCh0aGlzLmZyYW1lKTtcbiAgICAgICAgICAgIGlmICh0aGlzLm1haW5TaWduRGl2LnBh\ncmVudE5vZGUpIHRoaXMubWFpblNpZ25EaXYucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLm1h\naW5TaWduRGl2KTtcbiAgICAgICAgICAgIGdldEJvZHkoZG9jdW1lbnQpLmNsYXNzTGlzdC5yZW1v\ndmUoXCJwYWdldHVhbC1waWNrZXJcIik7XG4gICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50KS5y\nZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMubW92ZUhhbmRsZXIsIHRydWUp\nO1xuICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNs\naWNrXCIsIHRoaXMuY2xpY2tIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAgICAgIGdldEJvZHkoZG9j\ndW1lbnQpLnRpdGxlID0gXCJcIjtcbiAgICAgICAgICAgIHRoaXMuaW5QaWNrZXIgPSBmYWxzZTtc\nbiAgICAgICAgfVxuXG4gICAgICAgIHNldEltcG9ydGFudChlbGUsIHByb3AsIHZhbHVlKSB7XG4g\nICAgICAgICAgICBlbGUuc3R5bGUuc2V0UHJvcGVydHkocHJvcCwgdmFsdWUsIFwiaW1wb3J0YW50\nXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY3JlYXRlU2lnbkRpdigpIHtcbiAgICAgICAgICAg\nIGxldCBzaWduRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAg\nICAgIHRoaXMuc2V0SW1wb3J0YW50KHNpZ25EaXYsIFwicG9zaXRpb25cIiwgXCJhYnNvbHV0ZVwi\nKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1wb3J0YW50KHNpZ25EaXYsIFwicG9pbnRlci1ldmVu\ndHNcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgdGhpcy5zZXRJbXBvcnRhbnQoc2lnbkRpdiwg\nXCJ6LWluZGV4XCIsIFwiMjE0NzQ4MzY0NVwiKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1wb3J0\nYW50KHNpZ25EaXYsIFwiYmFja2dyb3VuZFwiLCBcInJnYmEoMTIwLCAxNzAsIDIxMCwgMC42KVwi\nKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1wb3J0YW50KHNpZ25EaXYsIFwidHJhbnNpdGlvblwi\nLCBcImFsbCAwLjE1cyBlYXNlLW91dFwiKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1wb3J0YW50\nKHNpZ25EaXYsIFwiYm94LXNoYWRvd1wiLCBcInJnYigwIDAgMCkgMHB4IDBweCAzcHggMHB4XCIp\nO1xuICAgICAgICAgICAgcmV0dXJuIHNpZ25EaXY7XG4gICAgICAgIH1cblxuICAgICAgICBhZGp1\nc3RTaWduRGl2KGRpdiwgdGFyZ2V0KSB7XG4gICAgICAgICAgICBsZXQgcmVjdCA9IHRhcmdldC5n\nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1wb3J0YW50KGRp\ndiwgXCJ3aWR0aFwiLCByZWN0LndpZHRoICsgXCJweFwiKTtcbiAgICAgICAgICAgIHRoaXMuc2V0\nSW1wb3J0YW50KGRpdiwgXCJoZWlnaHRcIiwgcmVjdC5oZWlnaHQgKyBcInB4XCIpO1xuICAgICAg\nICAgICAgdGhpcy5zZXRJbXBvcnRhbnQoZGl2LCBcImxlZnRcIiwgcmVjdC5sZWZ0ICsgd2luZG93\nLnNjcm9sbFggKyBcInB4XCIpO1xuICAgICAgICAgICAgdGhpcy5zZXRJbXBvcnRhbnQoZGl2LCBc\nInRvcFwiLCByZWN0LnRvcCArIHdpbmRvdy5zY3JvbGxZICsgXCJweFwiKTtcbiAgICAgICAgfVxu\nXG4gICAgICAgIGdldFNlbGVjdG9yRnJvbUVsZShlbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0\naGlzLnhwYXRoLmNoZWNrZWQgPyBjcmVhdGVYUGF0aEZyb21FbGVtZW50KGVsZSkgOiBnZW5lU2Vs\nZWN0b3IoZWxlLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbGxUZW1wUnVsZVRleHRh\ncmVhKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZyYW1lLmNsYXNzTGlzdC5jb250YWlucyhc\nInNob3dEZXRhaWxcIikgfHwgIXRoaXMuZWRpdFRlbXAgfHwgIXRoaXMuZWRpdFRlbXAucGFnZUVs\nZW1lbnQpIHRoaXMudGVtcFJ1bGUudmFsdWUgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmdldFRlbXBS\ndWxlKCksIG51bGwsIDQpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U2VsZWN0b3JEaXYoc2Vs\nZWN0b3IpIHtcbiAgICAgICAgICAgIGxldCBzZWxmID0gdGhpcztcbiAgICAgICAgICAgIHRoaXMu\nYWxscGF0aC5pbm5lckhUTUwgPSBjcmVhdGVIVE1MKFwiXCIpO1xuICAgICAgICAgICAgaWYgKHNl\nbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMueHBhdGguY2hlY2tlZCkge1xuICAg\nICAgICAgICAgICAgICAgICBsZXQgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFu\nXCIpO1xuICAgICAgICAgICAgICAgICAgICBzcGFuLmlubmVyVGV4dCA9IHNlbGVjdG9yO1xuICAg\nICAgICAgICAgICAgICAgICBzcGFuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0b3JJbnB1dC52YWx1ZSA9IHNlbGVj\ndG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja0lucHV0U2VsZWN0b3IoKTtc\nbiAgICAgICAgICAgICAgICAgICAgfSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMu\nYWxscGF0aC5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAg\nICAgICAgICAgICAgICAgICBzZWxlY3Rvci5zcGxpdChcIj5cIikuZm9yRWFjaCgoaXRlbSwgaW5k\nZXgpID0+IHNlbGYuZ2VuZVNlbGVjdG9ySXRlbShpdGVtLCBpbmRleCkpO1xuICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hlY2tJbnB1dFNlbGVjdG9y\nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBnZW5lU2VsZWN0b3JJdGVtKGl0ZW0sIGluZGV4KSB7\nXG4gICAgICAgICAgICBsZXQgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICBpdGVtID0gaXRlbS50\ncmltKCk7XG4gICAgICAgICAgICBpZiAoIWl0ZW0pIHJldHVybjtcbiAgICAgICAgICAgIGlmIChp\nbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRl\nRWxlbWVudChcInNwYW5cIik7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lclRleHQgPSBcIiA+\nIFwiO1xuICAgICAgICAgICAgICAgIHRoaXMuYWxscGF0aC5hcHBlbmRDaGlsZChzcGFuKTtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu\ndChcInNwYW5cIik7XG4gICAgICAgICAgICBzcGFuLmNsYXNzTmFtZSA9IFwicGF0aFwiO1xuICAg\nICAgICAgICAgc3Bhbi5pbm5lclRleHQgPSBpdGVtO1xuICAgICAgICAgICAgc3Bhbi5hZGRFdmVu\ndExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdG9y\nID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZS50YXJnZXQ7XG4gICAgICAg\nICAgICAgICAgd2hpbGUgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9\nIHRhcmdldC5pbm5lclRleHQgKyBzZWxlY3RvcjtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0\nID0gdGFyZ2V0LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIHNlbGYuc2VsZWN0b3JJbnB1dC52YWx1ZSA9IHNlbGVjdG9yO1xuICAgICAg\nICAgICAgICAgIHNlbGYuY2hlY2tJbnB1dFNlbGVjdG9yKCk7XG4gICAgICAgICAgICAgICAgaWYg\nKHNlbGYuY2hlY2tlZFBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja2VkUGF0\naC5jbGFzc0xpc3QucmVtb3ZlKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAg\nICAgICBzZWxmLmNoZWNrZWRQYXRoID0gc3BhbjtcbiAgICAgICAgICAgIH0sIHRydWUpO1xuICAg\nICAgICAgICAgdGhpcy5hbGxwYXRoLmFwcGVuZENoaWxkKHNwYW4pO1xuICAgICAgICB9XG5cbiAg\nICAgICAgY2hlY2tJbnB1dFNlbGVjdG9yKGZpbGwgPSB0cnVlKSB7XG4gICAgICAgICAgICBsZXQg\nc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2lnbnMoKTtcbiAgICAgICAgICAg\nIGlmICghdGhpcy5zZWxlY3RvcklucHV0LnZhbHVlKSByZXR1cm47XG4gICAgICAgICAgICBsZXQg\nZWxlcyA9IGdldEFsbEVsZW1lbnRzKHRoaXMuc2VsZWN0b3JJbnB1dC52YWx1ZSwgZG9jdW1lbnQp\nO1xuICAgICAgICAgICAgdGhpcy5mb3VuZEVsZSA9IG51bGw7XG4gICAgICAgICAgICBpZiAoZWxl\ncyAmJiBlbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvdW5kRWxlID0g\nZWxlcztcbiAgICAgICAgICAgICAgICBlbGVzLmZvckVhY2goZWxlID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgbGV0IHNpZ24gPSBzZWxmLmNyZWF0ZVNpZ25EaXYoKTtcbiAgICAgICAgICAgICAg\nICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHNpZ24pO1xuICAgICAg\nICAgICAgICAgICAgICBzZWxmLmFkanVzdFNpZ25EaXYoc2lnbiwgZWxlKTtcbiAgICAgICAgICAg\nICAgICAgICAgc2VsZi5zaWduTGlzdC5wdXNoKHNpZ24pO1xuICAgICAgICAgICAgICAgIH0pO1xu\nICAgICAgICAgICAgICAgIGlmIChmaWxsKSB0aGlzLmZpbGxUZW1wUnVsZVRleHRhcmVhKCk7XG4g\nICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjbGVhclNpZ25zKCkge1xuICAgICAg\nICAgICAgdGhpcy5zaWduTGlzdC5mb3JFYWNoKHNpZ24gPT4ge1xuICAgICAgICAgICAgICAgIGlm\nIChzaWduLnBhcmVudE5vZGUpIHNpZ24ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzaWduKTtcbiAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zaWduTGlzdCA9IFtdO1xuICAgICAgICB9\nXG5cbiAgICAgICAgc3RhcnQoKSB7XG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAg\nICAgIGlmICh0aGlzLmluUGlja2VyKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmluUGlja2Vy\nID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdHlsZUVsZSB8fCAhdGhpcy5zdHlsZUVs\nZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUVsZSA9IF9HTV9hZGRT\ndHlsZSh0aGlzLmNzc1RleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9jdW1lbnQu\nZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZnJhbWUpO1xuICAgICAgICAgICAgZG9j\ndW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubWFpblNpZ25EaXYpO1xuICAg\nICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkuY2xhc3NMaXN0LmFkZChcInBhZ2V0dWFsLXBpY2tl\nclwiKTtcblxuICAgICAgICAgICAgdGhpcy5sb2dvQnRuLmNsYXNzTGlzdC5yZW1vdmUoXCJzaG93\nU2lnblwiKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1NpZ24gPSB0cnVlO1xuXG4gICAgICAgICAg\nICBnZXRCb2R5KGRvY3VtZW50KS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsIHRoaXMu\nbW92ZUhhbmRsZXIsIHRydWUpO1xuICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkuYWRkRXZl\nbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMuY2xpY2tIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAg\nICAgIHRoaXMueHBhdGguY2hlY2tlZCA9IGlzWFBhdGgocnVsZVBhcnNlci5jdXJTaXRlUnVsZS5w\nYWdlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLnRlbXBSdWxlLnZhbHVlID0gXCJcIjtcbiAg\nICAgICAgICAgIHRoaXMuZWRpdFRlbXAgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5mcmFtZS5j\nbGFzc0xpc3QucmVtb3ZlKFwic2hvd0RldGFpbFwiKTtcblxuICAgICAgICAgICAgdGhpcy5sb2Fk\nTm93LnN0eWxlLmRpc3BsYXkgPSBydWxlUGFyc2VyLm5leHRMaW5rSHJlZiA\/IFwiYmxvY2tcIiA6\nIFwibm9uZVwiO1xuICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUubmV4dExp\nbmsgJiYgQXJyYXkgJiYgQXJyYXkuaXNBcnJheSAmJiBBcnJheS5pc0FycmF5KHJ1bGVQYXJzZXIu\nY3VyU2l0ZVJ1bGUubmV4dExpbmspKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZXh0U3dpdGNo\nQnRuLnN0eWxlLmRpc3BsYXkgPSBcImJsb2NrXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAg\nICAgICAgICAgICAgIHRoaXMubmV4dFN3aXRjaEJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7\nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmF1dG9TY3JvbGxCdG4uaW5uZXJUZXh0\nID0gaTE4bihhdXRvU2Nyb2xsID8gXCJkaXNhYmxlQXV0b1Njcm9sbFwiIDogXCJlbmFibGVBdXRv\nU2Nyb2xsXCIpO1xuXG4gICAgICAgICAgICBsZXQgcGFnZUVsZW1lbnRTZWwgPSBydWxlUGFyc2Vy\nLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50IHx8IFwiXCI7XG4gICAgICAgICAgICBpZiAoQXJyYXkg\nJiYgQXJyYXkuaXNBcnJheSAmJiBBcnJheS5pc0FycmF5KHBhZ2VFbGVtZW50U2VsKSkge1xuICAg\nICAgICAgICAgICAgIHBhZ2VFbGVtZW50U2VsID0gcGFnZUVsZW1lbnRTZWxbbmV4dEluZGV4IDwg\ncGFnZUVsZW1lbnRTZWwubGVuZ3RoID8gbmV4dEluZGV4IDogMF07XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICB0aGlzLnNldFNlbGVjdG9yRGl2KHBhZ2VFbGVtZW50U2VsKTtcbiAgICAgICAg\nICAgIHRoaXMuZmlsbFRlbXBSdWxlVGV4dGFyZWEoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBj\nb25zdCBwaWNrZXIgPSBuZXcgUGlja2VyKCk7XG5cbiAgICB2YXIgZWRpdG9yLCBlZGl0b3JDaGFu\nZ2VkID0gZmFsc2UsIGN1c3RvbVJ1bGVzSW5wdXQ7XG4gICAgZnVuY3Rpb24gY3JlYXRlRWRpdCgp\nIHtcbiAgICAgICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtb2RlOiAnY29kZScsXG4g\nICAgICAgICAgICBtb2RlczogWydjb2RlJywgJ3RyZWUnXSxcbiAgICAgICAgICAgIHRlbXBsYXRl\nczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogJ05ldyBz\naXRlJyxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdJbnNlcnQgYSBuZXcgc2l0ZScsXG4g\nICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ2pzb25lZGl0b3ItdHlwZS1vYmplY3QnLFxu\nICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ1NpdGVUZW1wbGF0ZScsXG4gICAgICAgICAgICAg\nICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdTaXRlIG5h\nbWUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VybCc6ICdTaXRlIHVybCdcbiAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAg\nICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgICAgICBcInRpdGxlXCI6IFwiU2l0ZXMgZGF0YVwi\nLFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJPYmplY3QgY29udGFpbmluZyBz\naXRlIGNvbmZpZ1wiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcImFycmF5XCIsXG4gICAg\nICAgICAgICAgICAgXCJpdGVtc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiAn\nb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIFwibmFtZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nXCJ0aXRsZVwiOiBcIlNpdGUgTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwi\nZGVzY3JpcHRpb25cIjogXCJUaGUgc2l0ZSdzIG5hbWUuXCIsXG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgXCJleGFtcGxlc1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIFwiR29vZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiXG4gICAgICAgICAgICAgICAgICAg\nICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ1cmxcIjoge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIFwidGl0bGVcIjogXCJTaXRlIFVybFwiLFxuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJUaGUgUmVnZXhwIG9mIHNpdGUncyB1cmwu\nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJleGFtcGxlc1wiOiBbXG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIFwiXmh0dHBzOlxcXC9cXFwveWFuZGVcXFxcLnJlXFxc\nL1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6\nIFtcIm5hbWVcIiwgXCJ1cmxcIl1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxu\nICAgICAgICAgICAgb25DaGFuZ2U6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBlZGl0b3JDaGFu\nZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgc2V0VGltZW91\ndCgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu\ndEJ5SWQoXCJqc29uZWRpdG9yXCIpO1xuICAgICAgICAgICAgaWYgKCFjb250YWluZXIpIHtcbiAg\nICAgICAgICAgICAgICBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIp\nO1xuICAgICAgICAgICAgICAgIGNvbmZpZ0Nvbi5hcHBlbmRDaGlsZChjb250YWluZXIpO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICc4MDBweCc7\nXG4gICAgICAgICAgICBjb250YWluZXIuaW5uZXJIVE1MID0gXCJcIjtcbiAgICAgICAgICAgIHRy\neSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yID0gbmV3IF91bnNhZmVXaW5kb3cuSlNPTkVkaXRv\ncihjb250YWluZXIsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgIGVkaXRvci5zZXQocnVsZVBh\ncnNlci5jdXN0b21SdWxlcyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAg\nICAgICAgZWRpdG9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuc3R5bGUuZGlz\ncGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICBjdXN0b21SdWxlc0lucHV0LnN0eWxlLmRp\nc3BsYXkgPSBcIlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA1MDApO1xuICAgIH1cblxu\nICAgIGZ1bmN0aW9uIGNoZWNrR3VpZGVQYWdlKGhyZWYpIHtcbiAgICAgICAgaWYgKGd1aWRlUGFn\nZS50ZXN0KGhyZWYpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIF91bnNhZmVXaW5kb3cuSlNP\nTkVkaXRvciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBjcmVhdGVFZGl0KCk7\nXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCB0aW1lb3V0ID0gMzA7\nXG4gICAgICAgICAgICAgICAgbGV0IGNoZWNrRWRpdG9yUmVhZHkgPSBzZXRJbnRlcnZhbCgoKSA9\nPiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgX3Vuc2FmZVdpbmRvdy5KU09ORWRp\ndG9yICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWRp\ndCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja0VkaXRvclJl\nYWR5KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aW1lb3V0LS0gPD0gMCkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yID0gbnVsbDtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGN1c3RvbVJ1bGVzSW5wdXQuc3R5bGUuZGlzcGxheSA9IFwiXCI7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBjbGVhckludGVydmFsKGNoZWNrRWRpdG9yUmVhZHkpO1xuICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtc\nbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzdGFydEF1dG9TY3JvbGwoKSB7XG4gICAgICAgIGNsZWFy\nSW50ZXJ2YWwoYXV0b1Njcm9sbEludGVydmFsKTtcbiAgICAgICAgaWYgKGF1dG9TY3JvbGwgPD0g\nMCkgcmV0dXJuO1xuICAgICAgICBsZXQgc2Nyb2xsUmFuZ2VfbyA9IDE7XG4gICAgICAgIGlmIChh\ndXRvU2Nyb2xsID4gMTAwMCkge1xuICAgICAgICAgICAgc2Nyb2xsUmFuZ2VfbyA9IHBhcnNlSW50\nKGF1dG9TY3JvbGwgXC8gMTAwMCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGRldmljZVBpeGVs\nUmF0aW8gPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgbGV0IHNjcm9sbFJhbmdl\nID0gTWF0aC5jZWlsKHNjcm9sbFJhbmdlX28gXC8gZGV2aWNlUGl4ZWxSYXRpbyk7XG5cbiAgICAg\nICAgbGV0IHNjcm9sbFRhcmdldCwgYm9keSA9IGdldEJvZHkoZG9jdW1lbnQpO1xuICAgICAgICBs\nZXQgY2hlY2tPdmVyZmxvdyA9IGVsZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZWxlLnNjcm9s\nbEhlaWdodCAhPT0gZWxlLmNsaWVudEhlaWdodCAmJiBnZXRDb21wdXRlZFN0eWxlKGVsZSkub3Zl\ncmZsb3dZICE9PSBcImhpZGRlblwiO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZG9jdW1lbnQu\nZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBjaGVja092ZXJmbG93KGRvY3VtZW50LmRvY3Vt\nZW50RWxlbWVudCkpIHtcbiAgICAgICAgICAgIHNjcm9sbFRhcmdldCA9IGRvY3VtZW50LmRvY3Vt\nZW50RWxlbWVudDtcbiAgICAgICAgfSBlbHNlIGlmIChib2R5LnNjcm9sbFRvcCB8fCBjaGVja092\nZXJmbG93KGJvZHkpKSB7XG4gICAgICAgICAgICBzY3JvbGxUYXJnZXQgPSBib2R5O1xuICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHRlbXBFbGU7XG4gICAgICAgICAgICBsZXQgaW1n\nID0gYm9keS5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICAgICAgICAgIGlmIChpbWcpIHtcbiAg\nICAgICAgICAgICAgICB0ZW1wRWxlID0gaW1nO1xuICAgICAgICAgICAgICAgIHdoaWxlICh0ZW1w\nRWxlICYmICFjaGVja092ZXJmbG93KHRlbXBFbGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRl\nbXBFbGUgPSB0ZW1wRWxlLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgaWYgKCF0ZW1wRWxlICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQp\nIHtcbiAgICAgICAgICAgICAgICBsZXQgdGVtcEVsZSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7\nXG4gICAgICAgICAgICAgICAgd2hpbGUgKHRlbXBFbGUgJiYgIWNoZWNrT3ZlcmZsb3codGVtcEVs\nZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcEVsZSA9IHRlbXBFbGUucGFyZW50Tm9kZTtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGVtcEVs\nZSkgc2Nyb2xsVGFyZ2V0ID0gdGVtcEVsZTtcbiAgICAgICAgfVxuICAgICAgICBzY3JvbGxUYXJn\nZXQgPSBzY3JvbGxUYXJnZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgICAg\nIGF1dG9TY3JvbGxJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlm\nIChpc1BhdXNlICYmICF1cmxDaGFuZ2luZykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGRldmlj\nZVBpeGVsUmF0aW8gIT09IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSB7XG4gICAgICAgICAgICAg\nICAgZGV2aWNlUGl4ZWxSYXRpbyA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICAg\nICAgICAgIHNjcm9sbFJhbmdlID0gTWF0aC5jZWlsKHNjcm9sbFJhbmdlX28gXC8gZGV2aWNlUGl4\nZWxSYXRpbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY3JvbGxUYXJnZXQuc2Nyb2xs\nVG9wICs9IHNjcm9sbFJhbmdlO1xuICAgICAgICB9LCBwYXJzZUludCgxMDAwIFwvIGF1dG9TY3Jv\nbGwpKTtcbiAgICB9XG5cbiAgICB2YXIgaW5VcGRhdGUgPSBmYWxzZTtcbiAgICB2YXIgaW1wb3J0\nSGFuZGxlciwgY29uZmlnQ29uO1xuICAgIGZ1bmN0aW9uIGluaXRDb25maWcoaHJlZikge1xuICAg\nICAgICBpZiAobG9jYXRpb24uaG9zdG5hbWUgPT09IFwiZ2l0aHViLmNvbVwiKSB7XG4gICAgICAg\nICAgICBpZiAobG9jYXRpb24uaHJlZi5pbmRleE9mKFwiaHR0cHM6XC9cL2dpdGh1Yi5jb21cL2hv\nb3RoaW5cL1VzZXJTY3JpcHRzXC9pc3N1ZXNcL25ldz9sYWJlbHM9UGFnZXR1YWwmdGVtcGxhdGU9\nY3VzdG9tLXJ1bGUtcmVxdWVzdC5tZCZ0aXRsZT1SZXF1ZXN0JTIwUGFnZXR1YWwlMjBzdXBwb3J0\nJTIwZm9yJTIwXCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgbGV0IGlzc3VlX2JvZHkgPSBk\nb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImlzc3VlX2JvZHlcIik7XG4gICAgICAgICAgICAgICAg\naWYgKCFpc3N1ZV9ib2R5KSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc3N1ZV9ib2R5\nLnZhbHVlID0gaXNzdWVfYm9keS52YWx1ZS5yZXBsYWNlKFwiXFxuXCIsIFwiXFxuXCIgKyBsb2Nh\ndGlvbi5oYXNoLnNsaWNlKDEpICsgXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgbGV0IHN0YXJC\ndXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICAgICAgICBz\ndGFyQnV0dG9uLmhyZWYgPSBcImh0dHBzOlwvXC9naXRodWIuY29tXC9ob290aGluXC9Vc2VyU2Ny\naXB0cyNzdGFyXCI7XG4gICAgICAgICAgICAgICAgc3RhckJ1dHRvbi5jbGFzc05hbWUgPSBcImpz\nLXRvZ2dsZXItdGFyZ2V0IHJvdW5kZWQtbGVmdC0yIGJ0bi13aXRoLWFyaWEtY291bnQgYnRuLXNt\nIGJ0blwiO1xuICAgICAgICAgICAgICAgIHN0YXJCdXR0b24uaW5uZXJIVE1MID0gY3JlYXRlSFRN\nTCgnPHN2ZyBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB2ZXJzaW9uPVwiMS4x\nXCIgd2lkdGg9XCIxNlwiIGNsYXNzPVwib2N0aWNvbiBvY3RpY29uLXN0YXIgZC1pbmxpbmUtYmxv\nY2sgbXItMlwiPjxwYXRoIGQ9XCJNOCAuMjVhLjc1Ljc1IDAgMCAxIC42NzMuNDE4bDEuODgyIDMu\nODE1IDQuMjEuNjEyYS43NS43NSAwIDAgMSAuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5\nMmEuNzUxLjc1MSAwIDAgMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAg\nMCAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwIDEgLjQxNi0xLjI4\nbDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMCAxIDggLjI1Wm0wIDIuNDQ1TDYuNjE1IDUu\nNWEuNzUuNzUgMCAwIDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwIDEg\nLjIxNi42NjRsLS41MjggMy4wODQgMi43NjktMS40NTZhLjc1Ljc1IDAgMCAxIC42OTggMGwyLjc3\nIDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwIDEgLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYt\nLjQ1YS43NS43NSAwIDAgMS0uNTY0LS40MUw4IDIuNjk0WlwiPjxcL3BhdGg+PFwvc3ZnPjxzcGFu\nIGNsYXNzPVwiZC1pbmxpbmVcIj5TdGFyPFwvc3Bhbj4nKTtcbiAgICAgICAgICAgICAgICBzdGFy\nQnV0dG9uLnN0eWxlLmZsb2F0ID0gXCJyaWdodFwiO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50\nLnF1ZXJ5U2VsZWN0b3IoXCIuTGF5b3V0LW1haW4+aDJcIikuYXBwZW5kQ2hpbGQoc3RhckJ1dHRv\nbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYg\nKGxvY2F0aW9uLmhyZWYgPT09IFwiaHR0cHM6XC9cL2dpdGh1Yi5jb21cL2hvb3RoaW5cL1VzZXJT\nY3JpcHRzI3N0YXJcIikge1xuICAgICAgICAgICAgICAgIGxldCBzdGFyQnV0dG9uID0gZG9jdW1l\nbnQucXVlcnlTZWxlY3RvcihcIi5zdGFycmluZy1jb250YWluZXI6bm90KC5vbik+LnVuc3RhcnJl\nZD5mb3JtPmJ1dHRvblwiKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhckJ1dHRvbikgZW11Q2xp\nY2soc3RhckJ1dHRvbik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAg\nICB9XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlzR3VpZGVQYWdlID0gY2hlY2tHdWlkZVBhZ2Uo\naHJlZik7XG5cbiAgICAgICAgdmFyIGNsaWNrMmltcG9ydCwgaW1wb3J0VXJsUHJlcztcblxuICAg\nICAgICBsZXQgaW5Db25maWcgPSBpc0d1aWRlUGFnZTtcbiAgICAgICAgaWYgKCFpbkNvbmZpZykg\ne1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb25maWdQYWdlLmxlbmd0aDsgaSsr\nKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZ1BhZ2VbaV0gPT0gbG9jYXRpb24uaHJlZikg\ne1xuICAgICAgICAgICAgICAgICAgICBpbkNvbmZpZyA9IHRydWU7XG4gICAgICAgICAgICAgICAg\nICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxu\nICAgICAgICBpZiAoIWlzR3VpZGVQYWdlKSB7XG4gICAgICAgICAgICBpZiAobG9jYXRpb24uaG9z\ndG5hbWUgPT09IFwiaG9vdGhpbi5naXRodWIuaW9cIiB8fCBsb2NhdGlvbi5ob3N0bmFtZSA9PT0g\nXCJwYWdldHVhbC5ob290aGluLmNvbVwiKSBpc0d1aWRlUGFnZSA9IHRydWU7XG4gICAgICAgIH1c\nbiAgICAgICAgY29uZmlnQ29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjb25maWdDb25c\nIik7XG4gICAgICAgIGlmIChjb25maWdDb24pIHtcbiAgICAgICAgICAgIGNvbmZpZ0Nvbi5wYXJl\nbnROb2RlLnJlbW92ZUNoaWxkKGNvbmZpZ0Nvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJ1\nbGVJbXBvcnRVcmxSZWcudGVzdChocmVmKSB8fCBpbkNvbmZpZykge1xuICAgICAgICAgICAgbGV0\nIGltcG9ydGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCFpblVwZGF0ZSAmJiBydWxlc0Rh\ndGEudW5pbml0ZWQpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAg\nICAgICAgICAgICAgICAgaWYgKCFpblVwZGF0ZSAmJiAhaW1wb3J0aW5nKSBzaG93VGlwcyhpMThu\nKFwiZmlyc3RBbGVydFwiKSk7XG4gICAgICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgICAg\nICAgICAgc2hvd1RpcHMoaTE4bihcImZpcnN0QWxlcnRcIikpO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgbGV0IGRlZmF1bHRPcHRpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjZGlz\nY3Vzc2lvbl9yYXRpbmdfNCcpO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRPcHRpb24pIGRlZmF1\nbHRPcHRpb24uY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICBsZXQgY3JlYXRlSW1wb3J0QnRu\nID0gKHByZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBpbXBvcnRCdG4gPSBkb2N1bWVudC5j\ncmVhdGVFbGVtZW50KFwiYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgIGltcG9ydEJ0bi5pZCA9\nIFwicGFnZXR1YWxJbXBvcnRcIjtcbiAgICAgICAgICAgICAgICBpbXBvcnRCdG4uaW5uZXJUZXh0\nID0gaTE4bihcImltcG9ydFwiKTtcbiAgICAgICAgICAgICAgICBpbXBvcnRCdG4uc3R5bGUubWFy\nZ2luVG9wID0gXCIxMDBweFwiO1xuICAgICAgICAgICAgICAgIGltcG9ydEJ0bi5zdHlsZS5mbG9h\ndCA9IFwicmlnaHRcIjtcbiAgICAgICAgICAgICAgICBpbXBvcnRCdG4uc3R5bGUucG9zaXRpb24g\nPSBcInJlbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgaW1wb3J0QnRuLnN0eWxlLmRpc3BsYXkg\nPSBcImJsb2NrXCI7XG4gICAgICAgICAgICAgICAgaW1wb3J0QnRuLnN0eWxlLmZvbnRTaXplID0g\nXCIyMHB4XCI7XG4gICAgICAgICAgICAgICAgaW1wb3J0QnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJj\nbGlja1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGUgPSBpbXBv\ncnRCdG4ucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJlbnROb2RlKSBy\nZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaW1wb3J0\nQnRuKTtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGxldCBydWxlcyA9IHBhcmVudE5vZGUuaW5uZXJUZXh0LnRyaW0oKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGxldCBpc0NvbnRlbnQgPSBcL1snXCJdbmFtZVsnXCJdXC9pLnRlc3QocnVsZXMp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29udGVudCkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGxldCBydWxlTGlzdCA9IEpTT04ucGFyc2UoYFske3J1bGVzfV1gKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpIGluIHJ1bGVMaXN0KSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoYXNSdWxlID0gZmFsc2U7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByID0gcnVsZUxpc3RbaV07XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogaW4gcnVsZVBhcnNlci5jdXN0b21S\ndWxlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGVQYXJz\nZXIuY3VzdG9tUnVsZXNbal0ubmFtZSA9PSByLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmN1c3RvbVJ1bGVzW2pdID0gcjtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNSdWxlID0gdHJ1ZTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1J1bGUpIHJ1bGVQYXJz\nZXIuY3VzdG9tUnVsZXMucHVzaChyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\ncnVsZVBhcnNlci5ocFJ1bGVzLnVuc2hpZnQocik7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcImN1c3Rv\nbVJ1bGVzXCIsIHJ1bGVQYXJzZXIuY3VzdG9tUnVsZXMpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcImhwUnVsZXNcIiwgcnVsZVBhcnNlci5ocFJ1bGVzKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oXCJzbWFydFJ1bGVz\nXCIsIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKFwiaW1w\nb3J0U3VjY1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gcnVsZXMuc3BsaXQoXCJcXG5cIik7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBmb3IgKGxldCBjID0gMDsgYyA8IHJ1bGVzLmxlbmd0aDsgYysrKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmxBcnIgPSBydWxlc1tjXS5zcGxpdChc\nInxcIiksIHVybCwgdHlwZSA9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm\nICh1cmxBcnIubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHVybCA9IHVybEFyclswXS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBpZiAoIVwvXmh0dHBcLy50ZXN0KHVybCkpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKFwiZXJyb3JXcm9uZ1VybFwiKSk7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICB9IGVsc2UgaWYgKHVybEFyci5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgdHlwZSA9IHVybEFyclswXS50cmltKCk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmxBcnJbMV0udHJpbSgpO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFcL15odHRwXC8udGVzdCh1cmwpKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RpcHMoaTE4bihcImVy\ncm9yV3JvbmdVcmxcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXhJZCA9IDEsIGhhc1VybCA9IGZh\nbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGVzRGF0YS51cmxz\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEudXJscyA9\nIFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SWQgPSAxO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgcnVsZXNEYXRhLnVybHMuZm9yRWFjaCh1ID0+IHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF4SWQgPCB1LmlkKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heElkID0gdS5pZDtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHUudXJsID09IHVybCkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNVcmwgPSB0cnVlO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg\nKGhhc1VybCkgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZiA9IHRydWU7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGlmICghcnVsZXNEYXRhLnNvcnQpIHJ1bGVzRGF0YS5zb3J0ID0gWzFd\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEudXJscy5wdXNoKHtp\nZDogbWF4SWQgKyAxLCB1cmw6IHVybCwgdHlwZTogdHlwZX0pO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBydWxlc0RhdGEuc29ydC51bnNoaWZ0KG1heElkICsgMSk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgh\nZGlmZikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKFwi\nZXJyb3JBbHJlYWR5RXhpc3RzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz\naG93VGlwcyhpMThuKFwiYmVnaW5VcGRhdGVcIiksIFwiXCIsIDUwMDAwKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVJ1bGVzKCgpID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKFwidXBkYXRlU3VjY1wi\nKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVs\nb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAocnVsZSwgZXJy\nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RpcHMo\nYEZhaWxlZCB0byB1cGRhdGUgJHtydWxlLnVybH0gcnVsZXMhYCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCA1\nMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uu\nc2V0SXRlbShcInJ1bGVzRGF0YVwiLCBydWxlc0RhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKHJ1bGVzRGF0YS51cmxzKSBydWxlVXJscyA9IHJ1bGVVcmxzLmNvbmNhdChy\ndWxlc0RhdGEudXJscyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGVzRGF0\nYS5zb3J0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmxzID0gW107\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVzRGF0YS5zb3J0LmZvckVhY2go\naWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcyA9\nIDA7IHMgPCBydWxlVXJscy5sZW5ndGg7IHMrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGlmIChpZCA9PSBydWxlVXJsc1tzXS5pZCkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzLnB1c2gocnVsZVVybHNbc10pO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlVXJscyA9IHVybHM7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dU\naXBzKGkxOG4oXCJiZWdpblVwZGF0ZVwiKSwgXCJcIiwgMzAwMDApO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHVwZGF0ZVJ1bGVzKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgc2hvd1RpcHMoaTE4bihcInVwZGF0ZVN1Y2NcIikpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICB9LCAocnVsZSwgZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHNob3dUaXBzKGBGYWlsZWQgdG8gdXBkYXRlICR7cnVsZS51cmx9IHJ1bGVzIWApO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlcnIpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydGluZyA9\nIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0g\nY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9HTV9ub3RpZmljYXRpb24oZS50\nb1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xu\nICAgICAgICAgICAgICAgIGlmIChwcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNsaWVu\ndEhlaWdodCA9IDM1IC0gcHJlLmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgaWYg\nKGNsaWVudEhlaWdodCA+IC0yMCkgY2xpZW50SGVpZ2h0ID0gLTIwO1xuICAgICAgICAgICAgICAg\nICAgICBpbXBvcnRCdG4uc3R5bGUubWFyZ2luVG9wID0gYCR7Y2xpZW50SGVpZ2h0fXB4YDtcbiAg\nICAgICAgICAgICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGltcG9ydEJ0bik7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpbXBvcnRCdG47XG4gICAgICAgICAgICB9\nO1xuICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo\nJ3ByZVtuYW1lPXBhZ2V0dWFsXSxwcmVbbmFtZT11c2VyLWNvbnRlbnQtcGFnZXR1YWxdJyksIHBy\nZSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGltcG9ydEJ0biA9IGNyZWF0ZUltcG9ydEJ0bihw\ncmUpO1xuICAgICAgICAgICAgICAgIGlmIChydWxlc0RhdGEudW5pbml0ZWQpIHtcbiAgICAgICAg\nICAgICAgICAgICAgcHJlLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY2xpY2syaW1wb3J0ID0gZG9jdW1lbnQucXVl\ncnlTZWxlY3RvcihcIltuYW1lPSd1c2VyLWNvbnRlbnQtY2xpY2syaW1wb3J0J10sW25hbWU9J2Ns\naWNrMmltcG9ydCddXCIpO1xuICAgICAgICAgICAgaWYgKGNsaWNrMmltcG9ydCkge1xuICAgICAg\nICAgICAgICAgIGNsaWNrMmltcG9ydC5pbm5lclRleHQgPSBpMThuKFwiY2xpY2sySW1wb3J0UnVs\nZVwiKTtcbiAgICAgICAgICAgICAgICBjbGljazJpbXBvcnQuc3R5bGUuZGlzcGxheSA9IHJ1bGVz\nRGF0YS51bmluaXRlZCA\/IFwiYmxvY2tcIiA6IFwibm9uZVwiO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgaWYgKCFpbXBvcnRIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgaW1wb3J0SGFu\nZGxlciA9IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcGFyZU5vZGVOYW1lKGUu\ndGFyZ2V0LCBbXCJwcmVcIl0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmFtZUF0\ndHIgPSBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKG5hbWVBdHRyID09IFwicGFnZXR1YWxcIiB8fCBuYW1lQXR0ciA9PSBcInVzZXIt\nY29udGVudC1wYWdldHVhbFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUu\ndGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoJyNwYWdldHVhbEltcG9ydCcpKSByZXR1cm47XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgbGV0IGltcG9ydEJ0biA9IGNyZWF0ZUltcG9ydEJ0bihlLnRh\ncmdldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9jdW1lbnQu\ncmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCBpbXBvcnRIYW5kbGVyKTtcbiAgICAg\nICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW92ZXJcIiwgaW1wb3J0SGFu\nZGxlcik7XG5cbiAgICAgICAgICAgIGlmIChpbkNvbmZpZykge1xuICAgICAgICAgICAgICAgIGlm\nICghaW5VcGRhdGUgJiYgX0dNX2luZm8uc2NyaXB0ICYmIF9HTV9pbmZvLnNjcmlwdC52ZXJzaW9u\nICYmIF9HTV9pbmZvLnNjcmlwdC52ZXJzaW9uICE9PSAnMS4wLjAnKSB7XG4gICAgICAgICAgICAg\nICAgICAgIGxldCB2ZXJzaW9uRWxlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1hcmtkb3du\nLWJvZHk+aDFbaWRdLGFydGljbGU+aDEnKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxhdGVz\ndFZlciA9IHZlcnNpb25FbGUgJiYgdmVyc2lvbkVsZS5pbm5lclRleHQubWF0Y2goXC9cXGRbXFxk\nXFwuXStcLylbMF07XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXRlc3RWZXIgJiYgbGF0ZXN0\nVmVyICE9IF9HTV9pbmZvLnNjcmlwdC52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICBzaG93VGlwcyhpMThuKCdvdXRPZkRhdGUnKSwgXCJcIiwgMzAwMCk7XG4gICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX0dNX2FkZFN0eWxl\nKGBcbiAgICAgICAgICAgICAgICAgcD5zcGFuOm50aC1jaGlsZCgxKSxwPnNwYW46bnRoLWNoaWxk\nKDIpLHA+c3BhbjpudGgtY2hpbGQoMyl7XG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50\nZXI7XG4gICAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgICAg\nICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdo\ndDogNXB4O1xuICAgICAgICAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOmNvbG9yIDAuM3MgZWFz\nZSwgdHJhbnNmb3JtIDAuM3M7XG4gICAgICAgICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246\nY29sb3IgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgICAgICAgICAgIHRyYW5z\naXRpb246Y29sb3IgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgICBwPnNwYW46bnRoLWNoaWxkKDEpOmhvdmVyLHA+c3BhbjpudGgt\nY2hpbGQoMik6aG92ZXIscD5zcGFuOm50aC1jaGlsZCgzKTpob3ZlcntcbiAgICAgICAgICAgICAg\nICAgIGNvbG9yOnJlZDtcbiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtc\nbiAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgIC51cGRhdGVEYXRle1xuICAgICAgICAgICAg\nICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5v\nbmU7XG4gICAgICAgICAgICAgICAgICAtbW96LXRyYW5zaXRpb246Y29sb3IgMC4zcyBlYXNlLCB0\ncmFuc2Zvcm0gMC4zcztcbiAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjpjb2xv\nciAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlv\nbjpjb2xvciAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICAgICAgICAgICAgdHJh\nbnNmb3JtLW9yaWdpbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt\nLW9yaWdpbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAudXBk\nYXRlRGF0ZTpob3ZlcntcbiAgICAgICAgICAgICAgICAgIGNvbG9yOnJlZDtcbiAgICAgICAgICAg\nICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgICAgICAgICAgIC13ZWJraXQt\ndHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgIGlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgICAg\nICAgICAgICAgICAgaW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9u\nIHtcbiAgICAgICAgICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAg\nICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nICBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgICAgICAgICAgICAgICAgLW1vei1hcHBlYXJhbmNl\nOnRleHRmaWVsZDtcbiAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICB0YWJsZSB0\nZD5oMyB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW46IDE2cHghaW1wb3J0YW50O1xuICAgICAg\nICAgICAgICAgICAgcGFkZGluZzogMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICAgdGFibGUgdGQ+aDQge1xuICAgICAgICAgICAgICAgICAgcGFkZGluZzog\nMCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgI3NhdmVC\ndG4ge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDYwdnc7XG4gICAgICAgICAgICAgICAgICBw\nb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAg\nICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICBsZWZ0OiAyMHZ3O1xuICAg\nICAgICAgICAgICAgICAgZm9udC1zaXplOiB4eC1sYXJnZTtcbiAgICAgICAgICAgICAgICAgIG9w\nYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAg\nICAgICAgICAgIC1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlO1xuICAgICAgICAgICAgICAg\nICAgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgICAgICB0\ncmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgI2NvbmZpZ0NvbiAjc2F2ZUJ0bjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICBvcGFj\naXR5OiAxO1xuICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICNjb25maWdDb24gI3NhdmVCdG4ge1xuICAgICAg\nICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTMwcHg7XG4gICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICAgI2NvbmZpZ0Nvbi5zaG93U2F2ZSAjc2F2ZUJ0biB7XG4gICAgICAgICAg\nICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICBgKTtcbiAgICAgICAgICAgICAgICBjb25maWdDb24gPSBkb2N1bWVudC5xdWVyeVNl\nbGVjdG9yKFwiLm1hcmtkb3duLWJvZHksLnRoZW1lLWRlZmF1bHQtY29udGVudFwiKTtcbiAgICAg\nICAgICAgICAgICBpZiAoIWNvbmZpZ0Nvbikge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1l\nb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xu\nICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJu\nIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBpbnNlcnRQb3Mg\nPSBjb25maWdDb24ucXVlcnlTZWxlY3RvcihcImhyLCNqc29uZWRpdG9yXCIpO1xuICAgICAgICAg\nICAgICAgIGNvbmZpZ0NvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAg\nICAgICAgICAgICAgY29uZmlnQ29uLmlkID0gXCJjb25maWdDb25cIjtcbiAgICAgICAgICAgICAg\nICBjb25maWdDb24uY2xhc3NMaXN0LmFkZChcInNob3dTYXZlXCIpO1xuICAgICAgICAgICAgICAg\nIGluc2VydFBvcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjb25maWdDb24sIGluc2VydFBvcyk7\nXG5cbiAgICAgICAgICAgICAgICBpbXBvcnRVcmxQcmVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv\nckFsbChcInByZVtuYW1lPSd1c2VyLWNvbnRlbnQtcGFnZXR1YWwnXSxwcmVbbmFtZT0ncGFnZXR1\nYWwnXVwiKTtcbiAgICAgICAgICAgICAgICBpZiAoaW1wb3J0VXJsUHJlcykge1xuICAgICAgICAg\nICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwoaW1wb3J0VXJsUHJlcywgaW1wb3J0VXJsUHJlID0+\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydFVybFByZS5zdHlsZS5vdmVyZmxvdyA9\nIFwiaGlkZGVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRVcmxQcmUuc3R5bGUu\nZGlzcGxheSA9IHJ1bGVzRGF0YS51bmluaXRlZCA\/IFwiYmxvY2tcIiA6IFwibm9uZVwiO1xuICAg\nICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nbGV0IG90aGVyY29uZmlnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcImFbbmFtZT0ndXNlci1j\nb250ZW50LW90aGVyY29uZmlnJ10sYVtuYW1lPSdvdGhlcmNvbmZpZyddXCIpO1xuICAgICAgICAg\nICAgICAgIGlmIChvdGhlcmNvbmZpZykgb3RoZXJjb25maWcucGFyZW50Tm9kZS5yZW1vdmVDaGls\nZChvdGhlcmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgbGV0IHJ1bGVzRXhhbXBsZSA9IGRvY3Vt\nZW50LnF1ZXJ5U2VsZWN0b3IoXCIjdXNlci1jb250ZW50LXJ1bGVzLWV4YW1wbGUrYSwjcnVsZXMt\nZXhhbXBsZT5hXCIpO1xuICAgICAgICAgICAgICAgIGlmIChydWxlc0V4YW1wbGUpIHtcbiAgICAg\nICAgICAgICAgICAgICAgcnVsZXNFeGFtcGxlLmlubmVyVGV4dCA9IGkxOG4oXCJydWxlc0V4YW1w\nbGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYW5nID09IFwiemgtQ05cIikge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgcnVsZXNFeGFtcGxlLmhyZWYgPSBydWxlc0V4YW1wbGUuaHJl\nZi5yZXBsYWNlKFwiZW5cIiwgXCJjblwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlm\nIChsYW5nID09IFwiemgtVFdcIiB8fCBsYW5nID09IFwiemgtSEtcIikge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgcnVsZXNFeGFtcGxlLmhyZWYgPSBydWxlc0V4YW1wbGUuaHJlZi5yZXBsYWNl\nKFwiXC9lblwiLCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0g\nMDtcblxuICAgICAgICAgICAgICAgIGxldCBuZXdQb3MsIGxhc3RQb3MgPSAwO1xuICAgICAgICAg\nICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBmdW5jdGlvbihlKSB7XG4g\nICAgICAgICAgICAgICAgICAgIG5ld1BvcyA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICAgICAg\nICAgICAgICBpZiAobmV3UG9zID4gbGFzdFBvcykge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nY29uZmlnQ29uLmNsYXNzTGlzdC5hZGQoXCJzaG93U2F2ZVwiKTtcbiAgICAgICAgICAgICAgICAg\nICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0Nvbi5jbGFzc0xpc3Qu\ncmVtb3ZlKFwic2hvd1NhdmVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgbGFzdFBvcyA9IG5ld1BvcztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAg\nICAgIH0gZWxzZSByZXR1cm4gaXNHdWlkZVBhZ2U7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gaXNH\ndWlkZVBhZ2U7XG4gICAgICAgIGxldCBydWxlQmFySW5zZXJ0UG9zID0gZG9jdW1lbnQuY3JlYXRl\nVGV4dE5vZGUoJyAnKTtcbiAgICAgICAgY29uZmlnQ29uLmFwcGVuZENoaWxkKHJ1bGVCYXJJbnNl\ncnRQb3MpO1xuICAgICAgICBjbGFzcyBSdWxlYmFyIHtcbiAgICAgICAgICAgIGluaXQocnVsZVVy\nbCkge1xuICAgICAgICAgICAgICAgIGxldCBpZCA9IHJ1bGVVcmwuaWQ7XG4gICAgICAgICAgICAg\nICAgdGhpcy5ydWxlVXJsID0gcnVsZVVybDtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW0gPSBk\nb2N1bWVudC5jcmVhdGVFbGVtZW50KFwicFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW0u\nZGF0YXNldC5pZCA9IGlkO1xuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBkb2N1bWVudC5jcmVh\ndGVFbGVtZW50KFwiYVwiKTtcbiAgICAgICAgICAgICAgICB1cmwuaHJlZiA9IHJ1bGVVcmwudXJs\nO1xuICAgICAgICAgICAgICAgIHVybC5pbm5lckhUTUwgPSBydWxlVXJsLnVybDtcbiAgICAgICAg\nICAgICAgICB1cmwudGl0bGUgPSBydWxlVXJsLnVybDtcbiAgICAgICAgICAgICAgICBsZXQgdXAg\nPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcbiAgICAgICAgICAgICAgICB1cC5p\nbm5lckhUTUwgPSBcIuKGkSBcIjtcbiAgICAgICAgICAgICAgICB1cC50aXRsZSA9IGkxOG4oXCJz\nb3J0VGl0bGVcIik7XG4gICAgICAgICAgICAgICAgbGV0IGRvd24gPSBkb2N1bWVudC5jcmVhdGVF\nbGVtZW50KFwic3BhblwiKTtcbiAgICAgICAgICAgICAgICBkb3duLmlubmVySFRNTCA9IFwi4oaT\nIFwiO1xuICAgICAgICAgICAgICAgIGRvd24udGl0bGUgPSBpMThuKFwic29ydFRpdGxlXCIpO1xu\nICAgICAgICAgICAgICAgIGxldCBkZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3Bhblwi\nKTtcbiAgICAgICAgICAgICAgICBkZWwuaW5uZXJIVE1MID0gXCLDlyBcIjtcbiAgICAgICAgICAg\nICAgICB1cC5vbmNsaWNrID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVVw\nKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBkb3duLm9uY2xpY2sgPSBl\nID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlRG93bigpO1xuICAgICAgICAgICAg\nICAgIH07XG4gICAgICAgICAgICAgICAgZGVsLm9uY2xpY2sgPSBlID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgdGhpcy5kZWwoKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAg\nIHRoaXMuaXRlbS5hcHBlbmRDaGlsZCh1cCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtLmFw\ncGVuZENoaWxkKGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbS5hcHBlbmRDaGlsZChk\nZWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbS5hcHBlbmRDaGlsZCh1cmwpO1xuICAgICAg\nICAgICAgICAgIGlmIChydWxlUGFyc2VyLnJ1bGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHVy\nbC5zdHlsZS5tYXhXaWR0aCA9IFwiY2FsYygxMDAlIC0gMTUwcHgpXCI7XG4gICAgICAgICAgICAg\nICAgICAgIHVybC5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gICAgICAgICAgICAgICAg\nICAgIHVybC5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcbiAgICAgICAgICAgICAg\nICAgICAgdXJsLnN0eWxlLnRleHRPdmVyZmxvdyA9IFwiZWxsaXBzaXNcIjtcbiAgICAgICAgICAg\nICAgICAgICAgdXJsLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSBcImJvdHRvbVwiO1xuICAgICAgICAg\nICAgICAgICAgICB1cmwuc3R5bGUud2hpdGVTcGFjZSA9IFwibm93cmFwXCI7XG4gICAgICAgICAg\nICAgICAgICAgIGxldCBydWxlc0xlbmd0aCA9IHJ1bGVQYXJzZXIucnVsZXMucmVkdWNlKChhY2Ms\nIGN1cikgPT4gYWNjICsgKGN1ci5mcm9tID09IGlkID8gMSA6IDApLCAwKTtcbiAgICAgICAgICAg\nICAgICAgICAgbGV0IGlkU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xu\nICAgICAgICAgICAgICAgICAgICBpZFNwYW4uc3R5bGUuZmxvYXQgPSBcInJpZ2h0XCI7XG4gICAg\nICAgICAgICAgICAgICAgIGlkU3Bhbi5pbm5lckhUTUwgPSBgW3J1bGVzOiAke3J1bGVzTGVuZ3Ro\nfV1gO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW0uYXBwZW5kQ2hpbGQoaWRTcGFuKTtc\nbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pZFNwYW4gPSBpZFNwYW47XG4gICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgIGNvbmZpZ0Nvbi5pbnNlcnRCZWZvcmUodGhpcy5pdGVtLCBy\ndWxlQmFySW5zZXJ0UG9zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZU51bSgp\nIHtcbiAgICAgICAgICAgICAgICBpZiAocnVsZVBhcnNlci5ydWxlcykge1xuICAgICAgICAgICAg\nICAgICAgICBsZXQgcnVsZXNMZW5ndGggPSBydWxlUGFyc2VyLnJ1bGVzLnJlZHVjZSgoYWNjLCBj\ndXIpID0+IGFjYyArIChjdXIuZnJvbSA9PSB0aGlzLml0ZW0uZGF0YXNldC5pZCA\/IDEgOiAwKSwg\nMCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaWRTcGFuLmlubmVySFRNTCA9IGBbcnVsZXM6\nICR7cnVsZXNMZW5ndGh9XWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgc2F2ZVNvcnQoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNvcnQgPSBbXTtcbiAg\nICAgICAgICAgICAgICBbXS5mb3JFYWNoLmNhbGwodGhpcy5pdGVtLnBhcmVudE5vZGUucXVlcnlT\nZWxlY3RvckFsbChcInBbZGF0YS1pZF1cIiksIGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBz\nb3J0LnB1c2goaS5kYXRhc2V0LmlkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAg\nICAgICBydWxlc0RhdGEuc29ydCA9IHNvcnQ7XG4gICAgICAgICAgICAgICAgbGV0IHVybHMgPSBb\nXTtcbiAgICAgICAgICAgICAgICBzb3J0LmZvckVhY2goaWQgPT4ge1xuICAgICAgICAgICAgICAg\nICAgICBmb3IgKGxldCBzID0gMDsgcyA8IHJ1bGVVcmxzLmxlbmd0aDsgcysrKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBpZiAoaWQgPT0gcnVsZVVybHNbc10uaWQpIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB1cmxzLnB1c2gocnVsZVVybHNbc10pO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcnVsZVVy\nbHMgPSB1cmxzO1xuICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInJ1bGVzRGF0YVwi\nLCBydWxlc0RhdGEpO1xuICAgICAgICAgICAgICAgIHNob3dUaXBzKGkxOG4oXCJzb3J0VGl0bGVc\nIikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW92ZVVwKCkge1xuICAgICAgICAgICAg\nICAgIGxldCBwcmVFID0gdGhpcy5pdGVtLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgICAg\nICAgICAgICAgaWYgKGNvbXBhcmVOb2RlTmFtZShwcmVFLCBbXCJwXCJdKSAmJiBwcmVFLmNoaWxk\ncmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtLnBhcmVudE5v\nZGUuaW5zZXJ0QmVmb3JlKHRoaXMuaXRlbSwgcHJlRSk7XG4gICAgICAgICAgICAgICAgICAgIHRo\naXMuc2F2ZVNvcnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICBtb3ZlRG93bigpIHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dEUgPSB0aGlzLml0ZW0u\nbmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUo\nbmV4dEUsIFtcInBcIl0pICYmIG5leHRFLmNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgICAg\nICAgICAgICAgICAgdGhpcy5pdGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG5leHRFLCB0aGlz\nLml0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmVTb3J0KCk7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsKCkge1xuICAgICAgICAgICAg\nICAgIGlmICh0aGlzLnJ1bGVVcmwuaWQgPCAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dU\naXBzKGkxOG4oXCJjYW50RGVsXCIpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRv\ndy5jb25maXJtKGkxOG4oXCJjb25maXJtRGVsXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICBm\nb3IgKGxldCB1ID0gMDsgdSA8IHJ1bGVzRGF0YS51cmxzLmxlbmd0aDsgdSsrKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBpZiAodGhpcy5ydWxlVXJsLmlkID09IHJ1bGVzRGF0YS51cmxzW3Vd\nLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNEYXRhLnVybHMuc3BsaWNl\nKHUsIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nIGZvciAobGV0IHUgPSAwOyB1IDwgcnVsZVVybHMubGVuZ3RoOyB1KyspIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGlmICh0aGlzLnJ1bGVVcmwuaWQgPT0gcnVsZVVybHNbdV0uaWQpIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlVXJscy5zcGxpY2UodSwgMSk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgdSA9IDA7\nIHUgPCBydWxlc0RhdGEuc29ydC5sZW5ndGg7IHUrKykge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgaWYgKHRoaXMucnVsZVVybC5pZCA9PSBydWxlc0RhdGEuc29ydFt1XSkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIHJ1bGVzRGF0YS5zb3J0LnNwbGljZSh1LCAxKTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEucnVsZVZl\ncnNpb24gPSAwO1xuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oXCJydWxlc0Rh\ndGFcIiwgcnVsZXNEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5ydWxlcyA9\nIHJ1bGVQYXJzZXIucnVsZXMuZmlsdGVyKGl0ZW0gPT4ge3JldHVybiBpdGVtLmZyb20gIT0gdGhp\ncy5ydWxlVXJsLmlkfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInJ1\nbGVzXCIsIHJ1bGVQYXJzZXIucnVsZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW0u\ncGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLml0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBc\nL1wvbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxu\nICAgICAgICB9XG4gICAgICAgIGxldCBsYW5nU2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu\ndChcInNlbGVjdFwiKTtcbiAgICAgICAgbGFuZ1NlbGVjdC5zdHlsZS5mbG9hdCA9IFwicmlnaHRc\nIjtcbiAgICAgICAgbGFuZ1NlbGVjdC5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAg\nICAgICAgbGFuZ1NlbGVjdC5zdHlsZS56SW5kZXggPSBcIjFcIjtcbiAgICAgICAgbGV0IG9wdGlv\nbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIik7XG4gICAgICAgIG9wdGlvbi52\nYWx1ZSA9IFwiXCI7XG4gICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBcIkxhbmd1YWdlXCI7XG4g\nICAgICAgIGxhbmdTZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTtcbiAgICAgICAgZm9yIChsZXQg\na2V5IGluIGxhbmdMaXN0KSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9uID0gZG9jdW1lbnQuY3Jl\nYXRlRWxlbWVudChcIm9wdGlvblwiKTtcbiAgICAgICAgICAgIG9wdGlvbi52YWx1ZSA9IGtleTtc\nbiAgICAgICAgICAgIG9wdGlvbi5pbm5lclRleHQgPSBsYW5nTGlzdFtrZXldO1xuICAgICAgICAg\nICAgbGFuZ1NlbGVjdC5hcHBlbmRDaGlsZChvcHRpb24pO1xuICAgICAgICB9XG4gICAgICAgIGxh\nbmdTZWxlY3QudmFsdWUgPSBydWxlc0RhdGEubGFuZyB8fCBcIlwiO1xuICAgICAgICBjb25maWdD\nb24uYXBwZW5kQ2hpbGQobGFuZ1NlbGVjdCk7XG5cbiAgICAgICAgbGV0IHVwZGF0ZVAgPSBkb2N1\nbWVudC5jcmVhdGVFbGVtZW50KFwicFwiKSwgaSA9IDA7XG4gICAgICAgIGxldCBub3cgPSBuZXcg\nRGF0ZSgpLmdldFRpbWUoKTtcblxuXG4gICAgICAgIGxldCBwYXN0RGF0ZSA9IChuZXcgRGF0ZSh1\ncGRhdGVEYXRlKSkudG9TdHJpbmcoKSwgcGFzc1N0cjtcbiAgICAgICAgbGV0IHBhc3NUaW1lID0g\nKG5vdyAtIHVwZGF0ZURhdGUpIFwvIDEwMDA7XG4gICAgICAgIGlmIChpc05hTihwYXNzVGltZSkp\nIHtcbiAgICAgICAgICAgIHBhc3NTdHIgPSBpMThuKFwiZmlyc3RVcGRhdGVcIik7XG4gICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocGFzc1RpbWUgPCA2MCkge1xuICAgICAgICAgICAg\nICAgIHBhc3NTdHIgPSBpMThuKFwicGFzc1NlY1wiLCBwYXJzZUludChwYXNzVGltZSkpO1xuICAg\nICAgICAgICAgfSBlbHNlIGlmIChwYXNzVGltZSA8IDYwICogNjApIHtcbiAgICAgICAgICAgICAg\nICBwYXNzU3RyID0gaTE4bihcInBhc3NNaW5cIiwgcGFyc2VJbnQocGFzc1RpbWUgXC8gNjApKTtc\nbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFzc1RpbWUgPCA2MCAqIDYwICogMjQpIHtcbiAgICAg\nICAgICAgICAgICBwYXNzU3RyID0gaTE4bihcInBhc3NIb3VyXCIsIHBhcnNlSW50KHBhc3NUaW1l\nIFwvIDM2MDApKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFzc1N0\nciA9IGkxOG4oXCJwYXNzRGF5XCIsIHBhcnNlSW50KHBhc3NUaW1lIFwvIDg2NDAwKSk7XG4gICAg\nICAgICAgICB9XG4gICAgICAgICAgICBwYXNzU3RyICs9IFwiIPCflrEgXCIgKyBpMThuKFwiY2xp\nY2sydXBkYXRlXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHJ1bGViYXJMaXN0ID0gW10s\nIHVwZGF0ZUZhaWwgPSBmYWxzZTtcbiAgICAgICAgdXBkYXRlUC5jbGFzc05hbWUgPSBcInVwZGF0\nZURhdGVcIjtcbiAgICAgICAgdXBkYXRlUC5pbm5lckhUTUwgPSBwYXNzU3RyO1xuICAgICAgICB1\ncGRhdGVQLnRpdGxlID0gaTE4bihcInVwZGF0ZVwiKSArIFwiIC0gXCIgKyBwYXN0RGF0ZTtcbiAg\nICAgICAgY29uZmlnQ29uLmFwcGVuZENoaWxkKHVwZGF0ZVApO1xuICAgICAgICBpZiAocnVsZVVy\nbHMpIHtcbiAgICAgICAgICAgIHJ1bGVVcmxzLmZvckVhY2gocnVsZVVybCA9PiB7XG4gICAgICAg\nICAgICAgICAgbGV0IHJ1bGViYXIgPSBuZXcgUnVsZWJhcigpO1xuICAgICAgICAgICAgICAgIHJ1\nbGViYXIuaW5pdChydWxlVXJsKTtcbiAgICAgICAgICAgICAgICBydWxlYmFyTGlzdC5wdXNoKHJ1\nbGViYXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGN1c3RvbVVy\nbHNUaXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJoMlwiKTtcbiAgICAgICAgY3VzdG9t\nVXJsc1RpdGxlLmlubmVySFRNTCA9IGkxOG4oXCJjdXN0b21VcmxzXCIpO1xuICAgICAgICBjb25m\naWdDb24uYXBwZW5kQ2hpbGQoY3VzdG9tVXJsc1RpdGxlKTtcbiAgICAgICAgbGV0IGN1c3RvbVVy\nbHNJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcbiAgICAgICAg\nY3VzdG9tVXJsc0lucHV0LnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgIGN1c3RvbVVy\nbHNJbnB1dC5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgICAgY3VzdG9tVXJs\nc0lucHV0LnBsYWNlaG9sZGVyID0gXCJodHRwOlwvXC93ZWRhdGEubmV0XC9kYXRhYmFzZXNcL0F1\ndG9QYWdlcml6ZVwvaXRlbXNfYWxsLmpzb24gXFxuaHR0cHM6XC9cL2hvb3RoaW4uZ2l0aHViLmlv\nXC9Vc2VyU2NyaXB0c1wvUGFnZXR1YWxcL3BhZ2V0dWFsUnVsZXMuanNvblwiO1xuICAgICAgICBj\ndXN0b21VcmxzSW5wdXQuc3BlbGxjaGVjayA9IGZhbHNlO1xuICAgICAgICBjb25maWdDb24uYXBw\nZW5kQ2hpbGQoY3VzdG9tVXJsc0lucHV0KTtcblxuICAgICAgICBsZXQgYnRucyA9IGRvY3VtZW50\nLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIGJ0bnMuc3R5bGUuZGlzcGxheSA9IFwi\nZmxleFwiO1xuICAgICAgICBjb25maWdDb24uYXBwZW5kQ2hpbGQoYnRucyk7XG4gICAgICAgIGxl\ndCB1cEJ0bkltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIHVw\nQnRuSW1nLnN0eWxlLndpZHRoID0gXCIzMyVcIjtcbiAgICAgICAgbGV0IHVwQnRuSW1nVGl0bGUg\nPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaDJcIik7XG4gICAgICAgIHVwQnRuSW1nVGl0bGUu\nc3R5bGUud2hpdGVTcGFjZSA9IFwibm93cmFwXCI7XG4gICAgICAgIHVwQnRuSW1nVGl0bGUuc3R5\nbGUub3ZlcmZsb3cgPSBcImF1dG9cIjtcbiAgICAgICAgdXBCdG5JbWdUaXRsZS5pbm5lckhUTUwg\nPSBpMThuKFwidXBCdG5JbWdcIik7XG4gICAgICAgIHVwQnRuSW1nLmFwcGVuZENoaWxkKHVwQnRu\nSW1nVGl0bGUpO1xuICAgICAgICBsZXQgdXBCdG5JbWdJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVs\nZW1lbnQoXCJpbnB1dFwiKTtcbiAgICAgICAgdXBCdG5JbWdJbnB1dC5zdHlsZS53aWR0aCA9IFwi\nMTAwJVwiO1xuICAgICAgICB1cEJ0bkltZ0lucHV0LnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2\nZVwiO1xuICAgICAgICB1cEJ0bkltZ0lucHV0LnBsYWNlaG9sZGVyID0gXCJkYXRhOmltYWdlXC9w\nbmc7YmFzZTY0LFVwQnRuXCI7XG4gICAgICAgIHVwQnRuSW1nSW5wdXQudmFsdWUgPSBydWxlc0Rh\ndGEudXBCdG5JbWcgfHwgJyc7XG4gICAgICAgIHVwQnRuSW1nSW5wdXQuc3BlbGxjaGVjayA9IGZh\nbHNlO1xuICAgICAgICB1cEJ0bkltZy5hcHBlbmRDaGlsZCh1cEJ0bkltZ0lucHV0KTtcbiAgICAg\nICAgYnRucy5hcHBlbmRDaGlsZCh1cEJ0bkltZyk7XG5cbiAgICAgICAgbGV0IGRvd25CdG5JbWcg\nPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICBkb3duQnRuSW1nLnN0\neWxlLndpZHRoID0gXCIzMyVcIjtcbiAgICAgICAgbGV0IGRvd25CdG5JbWdUaXRsZSA9IGRvY3Vt\nZW50LmNyZWF0ZUVsZW1lbnQoXCJoMlwiKTtcbiAgICAgICAgZG93bkJ0bkltZ1RpdGxlLnN0eWxl\nLndoaXRlU3BhY2UgPSBcIm5vd3JhcFwiO1xuICAgICAgICBkb3duQnRuSW1nVGl0bGUuc3R5bGUu\nb3ZlcmZsb3cgPSBcImF1dG9cIjtcbiAgICAgICAgZG93bkJ0bkltZ1RpdGxlLmlubmVySFRNTCA9\nIGkxOG4oXCJkb3duQnRuSW1nXCIpO1xuICAgICAgICBkb3duQnRuSW1nLmFwcGVuZENoaWxkKGRv\nd25CdG5JbWdUaXRsZSk7XG4gICAgICAgIGxldCBkb3duQnRuSW1nSW5wdXQgPSBkb2N1bWVudC5j\ncmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG4gICAgICAgIGRvd25CdG5JbWdJbnB1dC5zdHlsZS53\naWR0aCA9IFwiMTAwJVwiO1xuICAgICAgICBkb3duQnRuSW1nSW5wdXQuc3R5bGUucG9zaXRpb24g\nPSBcInJlbGF0aXZlXCI7XG4gICAgICAgIGRvd25CdG5JbWdJbnB1dC5wbGFjZWhvbGRlciA9IFwi\nZGF0YTppbWFnZVwvcG5nO2Jhc2U2NCxEb3duQnRuXCI7XG4gICAgICAgIGRvd25CdG5JbWdJbnB1\ndC52YWx1ZSA9IHJ1bGVzRGF0YS5kb3duQnRuSW1nIHx8ICcnO1xuICAgICAgICBkb3duQnRuSW1n\nSW5wdXQuc3BlbGxjaGVjayA9IGZhbHNlO1xuICAgICAgICBkb3duQnRuSW1nLmFwcGVuZENoaWxk\nKGRvd25CdG5JbWdJbnB1dCk7XG4gICAgICAgIGJ0bnMuYXBwZW5kQ2hpbGQoZG93bkJ0bkltZyk7\nXG5cbiAgICAgICAgbGV0IHNpZGVDb250cm9sbGVySWNvbkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs\nZW1lbnQoXCJkaXZcIik7XG4gICAgICAgIHNpZGVDb250cm9sbGVySWNvbkRpdi5zdHlsZS53aWR0\naCA9IFwiMzMlXCI7XG4gICAgICAgIGxldCBzaWRlQ29udHJvbGxlckljb25UaXRsZSA9IGRvY3Vt\nZW50LmNyZWF0ZUVsZW1lbnQoXCJoMlwiKTtcbiAgICAgICAgc2lkZUNvbnRyb2xsZXJJY29uVGl0\nbGUuc3R5bGUud2hpdGVTcGFjZSA9IFwibm93cmFwXCI7XG4gICAgICAgIHNpZGVDb250cm9sbGVy\nSWNvblRpdGxlLnN0eWxlLm92ZXJmbG93ID0gXCJhdXRvXCI7XG4gICAgICAgIHNpZGVDb250cm9s\nbGVySWNvblRpdGxlLmlubmVySFRNTCA9IGkxOG4oXCJzaWRlQ29udHJvbGxlckljb25cIik7XG4g\nICAgICAgIHNpZGVDb250cm9sbGVySWNvbkRpdi5hcHBlbmRDaGlsZChzaWRlQ29udHJvbGxlcklj\nb25UaXRsZSk7XG4gICAgICAgIGxldCBzaWRlQ29udHJvbGxlckljb25JbnB1dCA9IGRvY3VtZW50\nLmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcbiAgICAgICAgc2lkZUNvbnRyb2xsZXJJY29uSW5w\ndXQuc3R5bGUud2lkdGggPSBcIjEwMCVcIjtcbiAgICAgICAgc2lkZUNvbnRyb2xsZXJJY29uSW5w\ndXQuc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG4gICAgICAgIHNpZGVDb250cm9sbGVy\nSWNvbklucHV0LnBsYWNlaG9sZGVyID0gXCLwn5OEXCI7XG4gICAgICAgIHNpZGVDb250cm9sbGVy\nSWNvbklucHV0LnZhbHVlID0gcnVsZXNEYXRhLnNpZGVDb250cm9sbGVySWNvbiB8fCAnJztcbiAg\nICAgICAgc2lkZUNvbnRyb2xsZXJJY29uSW5wdXQuc3BlbGxjaGVjayA9IGZhbHNlO1xuICAgICAg\nICBzaWRlQ29udHJvbGxlckljb25EaXYuYXBwZW5kQ2hpbGQoc2lkZUNvbnRyb2xsZXJJY29uSW5w\ndXQpO1xuICAgICAgICBidG5zLmFwcGVuZENoaWxkKHNpZGVDb250cm9sbGVySWNvbkRpdik7XG5c\nbiAgICAgICAgbGV0IG90aGVyQnRucyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7\nXG4gICAgICAgIG90aGVyQnRucy5zdHlsZS5kaXNwbGF5ID0gXCJmbGV4XCI7XG4gICAgICAgIGNv\nbmZpZ0Nvbi5hcHBlbmRDaGlsZChvdGhlckJ0bnMpO1xuICAgICAgICBsZXQgbG9hZGluZ1RleHQg\nPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICBsb2FkaW5nVGV4dC5z\ndHlsZS53aWR0aCA9IFwiMTAwJVwiO1xuICAgICAgICBsZXQgbG9hZGluZ1RleHRUaXRsZSA9IGRv\nY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJoMlwiKTtcbiAgICAgICAgbG9hZGluZ1RleHRUaXRsZS5z\ndHlsZS53aGl0ZVNwYWNlID0gXCJub3dyYXBcIjtcbiAgICAgICAgbG9hZGluZ1RleHRUaXRsZS5z\ndHlsZS5vdmVyZmxvdyA9IFwiYXV0b1wiO1xuICAgICAgICBsb2FkaW5nVGV4dFRpdGxlLmlubmVy\nSFRNTCA9IGkxOG4oXCJsb2FkaW5nVGV4dFRpdGxlXCIpO1xuICAgICAgICBsb2FkaW5nVGV4dC5h\ncHBlbmRDaGlsZChsb2FkaW5nVGV4dFRpdGxlKTtcbiAgICAgICAgbGV0IGxvYWRpbmdUZXh0SW5w\ndXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG4gICAgICAgIGxvYWRpbmdU\nZXh0SW5wdXQudmFsdWUgPSBydWxlc0RhdGEubG9hZGluZ1RleHQgfHwgJyc7XG4gICAgICAgIGxv\nYWRpbmdUZXh0SW5wdXQucGxhY2Vob2xkZXIgPSBpMThuKFwibG9hZGluZ1RleHRcIik7XG4gICAg\nICAgIGxvYWRpbmdUZXh0SW5wdXQuc3R5bGUud2lkdGggPSBcIjEwMCVcIjtcbiAgICAgICAgbG9h\nZGluZ1RleHRJbnB1dC5zdHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgICAgbG9h\nZGluZ1RleHRJbnB1dC5zdHlsZS5tYXJnaW4gPSBcIjBcIjtcbiAgICAgICAgbG9hZGluZ1RleHRJ\nbnB1dC5zcGVsbGNoZWNrID0gZmFsc2U7XG4gICAgICAgIGxvYWRpbmdUZXh0LmFwcGVuZENoaWxk\nKGxvYWRpbmdUZXh0SW5wdXQpO1xuICAgICAgICBvdGhlckJ0bnMuYXBwZW5kQ2hpbGQobG9hZGlu\nZ1RleHQpO1xuXG4gICAgICAgIGxldCBvcGFjaXR5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChc\nImRpdlwiKTtcbiAgICAgICAgbGV0IG9wYWNpdHlUaXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l\nbnQoXCJoMlwiKTtcbiAgICAgICAgb3BhY2l0eVRpdGxlLnN0eWxlLndoaXRlU3BhY2UgPSBcIm5v\nd3JhcFwiO1xuICAgICAgICBvcGFjaXR5VGl0bGUuc3R5bGUub3ZlcmZsb3cgPSBcInZpc2libGVc\nIjtcbiAgICAgICAgb3BhY2l0eVRpdGxlLmlubmVySFRNTCA9IGkxOG4oXCJvcGFjaXR5XCIpO1xu\nICAgICAgICBvcGFjaXR5LmFwcGVuZENoaWxkKG9wYWNpdHlUaXRsZSk7XG4gICAgICAgIGxldCBv\ncGFjaXR5SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG4gICAgICAg\nIG9wYWNpdHlJbnB1dC52YWx1ZSA9IHJ1bGVzRGF0YS5vcGFjaXR5ICogMTAwO1xuICAgICAgICBv\ncGFjaXR5SW5wdXQudHlwZSA9IFwibnVtYmVyXCI7XG4gICAgICAgIG9wYWNpdHlJbnB1dC5taW4g\nPSAwO1xuICAgICAgICBvcGFjaXR5SW5wdXQubWF4ID0gMTAwO1xuICAgICAgICBvcGFjaXR5SW5w\ndXQuc3R5bGUud2lkdGggPSBcIjExMHB4XCI7XG4gICAgICAgIG9wYWNpdHlJbnB1dC5zdHlsZS5w\nb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgICAgb3BhY2l0eUlucHV0LnN0eWxlLm1hcmdp\nbiA9IFwiMFwiO1xuICAgICAgICBvcGFjaXR5SW5wdXQucGxhY2Vob2xkZXIgPSBpMThuKFwib3Bh\nY2l0eVBsYWNlaG9sZGVyXCIpO1xuICAgICAgICBvcGFjaXR5SW5wdXQuc3BlbGxjaGVjayA9IGZh\nbHNlO1xuICAgICAgICBvcGFjaXR5SW5wdXQub25pbnB1dCA9IGUgPT4ge1xuICAgICAgICAgICAg\naWYgKG9wYWNpdHlJbnB1dC52YWx1ZSA+IDEwMCkgb3BhY2l0eUlucHV0LnZhbHVlID0gMTAwO1xu\nICAgICAgICAgICAgZWxzZSBpZiAob3BhY2l0eUlucHV0LnZhbHVlIDwgMCkgb3BhY2l0eUlucHV0\nLnZhbHVlID0gMDtcbiAgICAgICAgfTtcbiAgICAgICAgb3BhY2l0eS5hcHBlbmRDaGlsZChvcGFj\naXR5SW5wdXQpO1xuICAgICAgICBvdGhlckJ0bnMuYXBwZW5kQ2hpbGQob3BhY2l0eSk7XG5cbiAg\nICAgICAgbGV0IHBhZ2VFbGVtZW50Q3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwi\nKTtcbiAgICAgICAgcGFnZUVsZW1lbnRDc3Muc3R5bGUubWFyZ2luQm90dG9tID0gXCIzMHB4XCI7\nXG4gICAgICAgIGxldCBwYWdlRWxlbWVudENzc1RpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu\ndChcImgyXCIpO1xuICAgICAgICBwYWdlRWxlbWVudENzc1RpdGxlLmlubmVySFRNTCA9IGkxOG4o\nXCJwYWdlRWxlbWVudENzc1wiKTtcbiAgICAgICAgcGFnZUVsZW1lbnRDc3MuYXBwZW5kQ2hpbGQo\ncGFnZUVsZW1lbnRDc3NUaXRsZSk7XG4gICAgICAgIGxldCBwYWdlRWxlbWVudENzc0lucHV0ID0g\nZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICAgICAgICBwYWdlRWxlbWVudENz\nc0lucHV0LnZhbHVlID0gcnVsZXNEYXRhLnBhZ2VFbGVtZW50Q3NzIHx8ICcnO1xuICAgICAgICBw\nYWdlRWxlbWVudENzc0lucHV0LnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgIHBhZ2VF\nbGVtZW50Q3NzSW5wdXQuc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG4gICAgICAgIHBh\nZ2VFbGVtZW50Q3NzSW5wdXQuc3R5bGUubWFyZ2luID0gXCIwXCI7XG4gICAgICAgIHBhZ2VFbGVt\nZW50Q3NzSW5wdXQucGxhY2Vob2xkZXIgPSBcImZvbnQtc2l6ZTogeHgtbGFyZ2U7XCI7XG4gICAg\nICAgIHBhZ2VFbGVtZW50Q3NzSW5wdXQuc3BlbGxjaGVjayA9IGZhbHNlO1xuICAgICAgICBwYWdl\nRWxlbWVudENzcy5hcHBlbmRDaGlsZChwYWdlRWxlbWVudENzc0lucHV0KTtcbiAgICAgICAgY29u\nZmlnQ29uLmFwcGVuZENoaWxkKHBhZ2VFbGVtZW50Q3NzKTtcblxuICAgICAgICBsZXQgY3VzdG9t\nQ3NzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgY3VzdG9tQ3Nz\nLnN0eWxlLm1hcmdpbkJvdHRvbSA9IFwiNTBweFwiO1xuICAgICAgICBsZXQgY3VzdG9tQ3NzVGl0\nbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaDJcIik7XG4gICAgICAgIGN1c3RvbUNzc1Rp\ndGxlLmlubmVySFRNTCA9IGkxOG4oXCJjdXN0b21Dc3NcIik7XG4gICAgICAgIGN1c3RvbUNzcy5h\ncHBlbmRDaGlsZChjdXN0b21Dc3NUaXRsZSk7XG4gICAgICAgIGxldCBjdXN0b21Dc3NJbnB1dCA9\nIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcbiAgICAgICAgY3VzdG9tQ3Nz\nSW5wdXQudmFsdWUgPSBydWxlc0RhdGEuY3VzdG9tQ3NzIHx8ICcnO1xuICAgICAgICBjdXN0b21D\nc3NJbnB1dC5zdHlsZS53aWR0aCA9IFwiMTAwJVwiO1xuICAgICAgICBjdXN0b21Dc3NJbnB1dC5z\ndHlsZS5wb3NpdGlvbiA9IFwicmVsYXRpdmVcIjtcbiAgICAgICAgY3VzdG9tQ3NzSW5wdXQuc3R5\nbGUubWFyZ2luID0gXCIwXCI7XG4gICAgICAgIGN1c3RvbUNzc0lucHV0LnBsYWNlaG9sZGVyID0g\nXCIucGFnZXR1YWwge1xcbn1cIjtcbiAgICAgICAgY3VzdG9tQ3NzSW5wdXQuc3BlbGxjaGVjayA9\nIGZhbHNlO1xuICAgICAgICBjdXN0b21Dc3MuYXBwZW5kQ2hpbGQoY3VzdG9tQ3NzSW5wdXQpO1xu\nICAgICAgICBjb25maWdDb24uYXBwZW5kQ2hpbGQoY3VzdG9tQ3NzKTtcblxuICAgICAgICBsZXQg\nY29uZmlnVGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGFibGVcIik7XG4gICAgICAg\nIGNvbmZpZ1RhYmxlLnN0eWxlLndpZHRoID0gXCIxMDAlXCI7XG4gICAgICAgIGxldCBjb25maWdU\nYm9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0Ym9keVwiKTtcbiAgICAgICAgY29uZmln\nVGJvZHkuc3R5bGUud2lkdGggPSBcIjk5JVwiO1xuICAgICAgICBjb25maWdUYm9keS5zdHlsZS5k\naXNwbGF5ID0gXCJpbmxpbmUtdGFibGVcIjtcbiAgICAgICAgY29uZmlnVGFibGUuYXBwZW5kQ2hp\nbGQoY29uZmlnVGJvZHkpO1xuICAgICAgICBjb25maWdDb24uYXBwZW5kQ2hpbGQoY29uZmlnVGFi\nbGUpO1xuICAgICAgICBmdW5jdGlvbiBjcmVhdGVDaGVja2JveChpbm5lclRleHQsIHZhbCwgdGFn\nLCBwYXJlbnRDaGVjaywgb3RoZXJUeXBlLCBhbHdheXNTaG93KSB7XG4gICAgICAgICAgICBpZiAo\ndHlwZW9mIHZhbCA9PSAndW5kZWZpbmVkJykgdmFsID0gXCJcIjtcbiAgICAgICAgICAgIGxldCB0\naXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnIHx8IFwiaDNcIik7XG4gICAgICAgICAg\nICB0aXRsZS5pbm5lckhUTUwgPSBpbm5lclRleHQ7XG4gICAgICAgICAgICB0aXRsZS5zdHlsZS5v\ndmVyZmxvd1dyYXAgPSBcIm5vcm1hbFwiO1xuICAgICAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1l\nbnQuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuICAgICAgICAgICAgaWYgKG90aGVyVHlwZSA9\nPT0gJ2tleScpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgICAg\nICAgICAgICAgIGlucHV0LnNldEF0dHJpYnV0ZSgncmVhZE9ubHknLCAncmVhZG9ubHknKTtcbiAg\nICAgICAgICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBlID0+IHtc\nbiAgICAgICAgICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJyB8fCBlLmtleSA9PT0g\nJ0JhY2tzcGFjZScpIGlucHV0LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGVsc2Ug\naW5wdXQudmFsdWUgPSBlLmtleTtcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRp\nb24oKTtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAg\nICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnB1dC50\neXBlID0gb3RoZXJUeXBlIHx8IFwiY2hlY2tib3hcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIGlucHV0LnN0eWxlLndpZHRoID0gXCIzNXB4XCI7XG4gICAgICAgICAgICBpbnB1dC5zdHls\nZS5oZWlnaHQgPSBcIjIwcHhcIjtcbiAgICAgICAgICAgIGlucHV0LnN0eWxlLmZsb2F0ID0gXCJs\nZWZ0XCI7XG4gICAgICAgICAgICBpbnB1dC5zdHlsZS5tYXJnaW4gPSBcIjAgMnB4XCI7XG4gICAg\nICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbDtcbiAgICAgICAgICAgIGlucHV0LmNoZWNrZWQgPSB2\nYWw7XG4gICAgICAgICAgICBsZXQgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGRcIik7\nXG4gICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChpbnB1dCk7XG4gICAgICAgICAgICBpZiAocGFy\nZW50Q2hlY2spIHtcbiAgICAgICAgICAgICAgICB0aXRsZS5hcHBlbmRDaGlsZChpbnB1dCk7XG4g\nICAgICAgICAgICAgICAgdGl0bGUuc3R5bGUubWFyZ2luID0gXCIwXCI7XG4gICAgICAgICAgICAg\nICAgdGQuYXBwZW5kQ2hpbGQodGl0bGUpO1xuICAgICAgICAgICAgICAgIGxldCBwYXJlbnQgPSBw\nYXJlbnRDaGVjay5wYXJlbnROb2RlLm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgICAgICAg\nICBsZXQgdHIgPSBwYXJlbnQucXVlcnlTZWxlY3RvcihcInRyXCIpO1xuICAgICAgICAgICAgICAg\nIGlmICghdHIpIHtcbiAgICAgICAgICAgICAgICAgICAgdHIgPSBkb2N1bWVudC5jcmVhdGVFbGVt\nZW50KFwidHJcIik7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0cik7\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyLmFwcGVuZENoaWxkKHRkKTtc\nbiAgICAgICAgICAgICAgICBpZiAoIWFsd2F5c1Nob3cpIHtcbiAgICAgICAgICAgICAgICAgICAg\naWYgKCFwYXJlbnRDaGVjay5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZC5z\ndHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgcGFyZW50Q2hlY2suYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4g\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgdGQuc3R5bGUuZGlzcGxheSA9IHBhcmVudENoZWNr\nLmNoZWNrZWQgPyBcIlwiIDogXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0\nIHRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRyXCIpO1xuICAgICAgICAgICAgICAgIHRy\nLmFwcGVuZENoaWxkKHRkKTtcbiAgICAgICAgICAgICAgICB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVs\nZW1lbnQoXCJ0ZFwiKTtcbiAgICAgICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZCh0aXRsZSk7XG4g\nICAgICAgICAgICAgICAgdHIuYXBwZW5kQ2hpbGQodGQpO1xuICAgICAgICAgICAgICAgIGNvbmZp\nZ1RhYmxlLmNoaWxkcmVuWzBdLmFwcGVuZENoaWxkKHRyKTtcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgIGxldCB4Tm9kZVBvcyA9IGlubmVyVGV4dC5pbmRleE9mKCfjgJBY44CRJyk7XG4gICAg\nICAgICAgICBpZiAoeE5vZGVQb3MgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuc3R5\nbGUuZmxvYXQgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGxldCB4Tm9kZSA9IHRpdGxlLmZpcnN0\nQ2hpbGQuc3BsaXRUZXh0KHhOb2RlUG9zKTtcbiAgICAgICAgICAgICAgICB4Tm9kZS5zcGxpdFRl\neHQoMyk7XG4gICAgICAgICAgICAgICAgeE5vZGUucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoaW5w\ndXQsIHhOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAg\nICAgICAgfVxuXG4gICAgICAgIGxldCBzZXRDb25maWdQYWdlSW5wdXQgPSBjcmVhdGVDaGVja2Jv\neChpMThuKFwic2V0Q29uZmlnUGFnZVwiKSwgZmFsc2UpO1xuICAgICAgICBsZXQgZW5hYmxlV2hp\ndGVMaXN0SW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwiYXV0b1J1blwiKSwgcnVsZXNEYXRh\nLmVuYWJsZVdoaXRlTGlzdCAhPSB0cnVlKTtcbiAgICAgICAgbGV0IHNpZGVDb250cm9sbGVySW5w\ndXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwic2lkZUNvbnRyb2xsZXJcIiksIHJ1bGVzRGF0YS5z\naWRlQ29udHJvbGxlcik7XG4gICAgICAgIGxldCBzaWRlQ29udHJvbGxlckFsd2F5c0lucHV0ID0g\nY3JlYXRlQ2hlY2tib3goaTE4bihcInNpZGVDb250cm9sbGVyQWx3YXlzXCIpLCBydWxlc0RhdGEu\nc2lkZUNvbnRyb2xsZXJBbHdheXMsIFwiaDRcIiwgc2lkZUNvbnRyb2xsZXJJbnB1dCk7XG4gICAg\nICAgIGxldCBzaWRlQ29udHJvbGxlclNjcm9sbElucHV0ID0gY3JlYXRlQ2hlY2tib3goaTE4bihc\nInNpZGVDb250cm9sbGVyU2Nyb2xsXCIpLCBydWxlc0RhdGEuc2lkZUNvbnRyb2xsZXJTY3JvbGwg\nIT09IGZhbHNlLCBcImg0XCIsIHNpZGVDb250cm9sbGVySW5wdXQpO1xuICAgICAgICBsZXQgc2lk\nZUNvbnRyb2xsZXJMb2FkTm93SW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwibG9hZE5vd1wi\nKSwgcnVsZXNEYXRhLnNpZGVDb250cm9sbGVyTG9hZE5vdyAhPT0gZmFsc2UsIFwiaDRcIiwgc2lk\nZUNvbnRyb2xsZXJJbnB1dCk7XG4gICAgICAgIGxldCBlbmFibGVEZWJ1Z0lucHV0ID0gY3JlYXRl\nQ2hlY2tib3goaTE4bihcImVuYWJsZURlYnVnXCIpLCBydWxlc0RhdGEuZW5hYmxlRGVidWcgIT0g\nZmFsc2UpO1xuICAgICAgICBsZXQgZW5hYmxlSGlzdG9yeUlucHV0ID0gY3JlYXRlQ2hlY2tib3go\naTE4bihcImVuYWJsZUhpc3RvcnlcIiksIHJ1bGVzRGF0YS5lbmFibGVIaXN0b3J5ID09PSB0cnVl\nKTtcbiAgICAgICAgbGV0IGVuYWJsZUhpc3RvcnlBZnRlckluc2VydElucHV0ID0gY3JlYXRlQ2hl\nY2tib3goaTE4bihcImVuYWJsZUhpc3RvcnlBZnRlckluc2VydFwiKSwgcnVsZXNEYXRhLmVuYWJs\nZUhpc3RvcnlBZnRlckluc2VydCA9PT0gdHJ1ZSwgXCJoNFwiLCBlbmFibGVIaXN0b3J5SW5wdXQp\nO1xuICAgICAgICBsZXQgb3BlbkluTmV3VGFiSW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwi\nb3BlbkluTmV3VGFiXCIpLCBydWxlc0RhdGEub3BlbkluTmV3VGFiICE9IGZhbHNlKTtcbiAgICAg\nICAgbGV0IGhpZGVQYWdlQmFySW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwiaGlkZUJhclRp\ncHNcIiksIHJ1bGVzRGF0YS5vcGFjaXR5ID09IDApO1xuICAgICAgICBsZXQgaGlkZVBhZ2VCYXJB\ncnJvd0lucHV0ID0gY3JlYXRlQ2hlY2tib3goaTE4bihcImhpZGVCYXJBcnJvd1wiKSwgcnVsZXNE\nYXRhLmhpZGVCYXJBcnJvdyk7XG4gICAgICAgIGxldCBoaWRlTG9hZGluZ0ljb25JbnB1dCA9IGNy\nZWF0ZUNoZWNrYm94KGkxOG4oXCJoaWRlTG9hZGluZ0ljb25cIiksIHJ1bGVzRGF0YS5oaWRlTG9h\nZGluZ0ljb24gIT0gZmFsc2UpO1xuICAgICAgICBsZXQgaW5pdFJ1bklucHV0ID0gY3JlYXRlQ2hl\nY2tib3goaTE4bihcImluaXRSdW5cIiksIHJ1bGVzRGF0YS5pbml0UnVuICE9IGZhbHNlKTtcbiAg\nICAgICAgbGV0IGF1dG9Mb2FkTnVtSW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwiYXV0b0xv\nYWROdW1cIiksIHJ1bGVzRGF0YS5hdXRvTG9hZE51bSwgXCJoNFwiLCBpbml0UnVuSW5wdXQsIFwi\nbnVtYmVyXCIpO1xuICAgICAgICBsZXQgcHJlbG9hZElucHV0ID0gY3JlYXRlQ2hlY2tib3goaTE4\nbihcInByZWxvYWRcIiksIHJ1bGVzRGF0YS5wcmVsb2FkKTtcbiAgICAgICAgbGV0IHJhdGVJbnB1\ndCA9IGNyZWF0ZUNoZWNrYm94KGkxOG4oXCJ0dXJuUmF0ZVwiKSwgcnVsZXNEYXRhLnJhdGUsIFwi\naDRcIiwgcHJlbG9hZElucHV0LCBcIm51bWJlclwiLCB0cnVlKTtcbiAgICAgICAgbGV0IGRiQ2xp\nY2syU3RvcElucHV0ID0gY3JlYXRlQ2hlY2tib3goaTE4bihcImRiQ2xpY2syU3RvcFwiKSwgcnVs\nZXNEYXRhLmRiQ2xpY2syU3RvcCk7XG4gICAgICAgIGxldCBtYW51YWxNb2RlSW5wdXQgPSBjcmVh\ndGVDaGVja2JveChpMThuKFwibWFudWFsTW9kZVwiKSwgcnVsZXNEYXRhLm1hbnVhbE1vZGUpO1xu\nICAgICAgICBsZXQgY2xpY2tNb2RlSW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwiY2xpY2tN\nb2RlXCIpLCBydWxlc0RhdGEuY2xpY2tNb2RlKTtcbiAgICAgICAgbGV0IHBhZ2VCYXJNZW51SW5w\ndXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwicGFnZUJhck1lbnVcIiksIHJ1bGVzRGF0YS5wYWdl\nQmFyTWVudSAhPSBmYWxzZSk7XG4gICAgICAgIGxldCBhcnJvd1RvU2Nyb2xsSW5wdXQgPSBjcmVh\ndGVDaGVja2JveChpMThuKFwiYXJyb3dUb1Njcm9sbFwiKSwgcnVsZXNEYXRhLmFycm93VG9TY3Jv\nbGwpO1xuICAgICAgICBsZXQgY29udGVudFZpc2liaWxpdHlJbnB1dCA9IGNyZWF0ZUNoZWNrYm94\nKGkxOG4oXCJjb250ZW50VmlzaWJpbGl0eVwiKSwgcnVsZXNEYXRhLmNvbnRlbnRWaXNpYmlsaXR5\nKTtcbiAgICAgICAgbGV0IHdlZGF0YTJnaXRodWJJbnB1dCA9IGNyZWF0ZUNoZWNrYm94KGkxOG4o\nXCJ3ZWRhdGEyZ2l0aHViXCIpLCBydWxlc0RhdGEud2VkYXRhMmdpdGh1Yik7XG4gICAgICAgIGxl\ndCBjdXN0b21GaXJzdElucHV0ID0gY3JlYXRlQ2hlY2tib3goaTE4bihcImN1c3RvbUZpcnN0XCIp\nLCBydWxlc0RhdGEuY3VzdG9tRmlyc3QpO1xuICAgICAgICBsZXQgbGFzdFBhZ2VUaXBzSW5wdXQg\nPSBjcmVhdGVDaGVja2JveChpMThuKFwibGFzdFBhZ2VUaXBzXCIpLCBydWxlc0RhdGEubGFzdFBh\nZ2VUaXBzKTtcbiAgICAgICAgbGV0IHVwZGF0ZU5vdGlmaWNhdGlvbklucHV0ID0gY3JlYXRlQ2hl\nY2tib3goaTE4bihcInVwZGF0ZU5vdGlmaWNhdGlvblwiKSwgcnVsZXNEYXRhLnVwZGF0ZU5vdGlm\naWNhdGlvbiAhPSBmYWxzZSk7XG5cbiAgICAgICAgbGV0IGhpZGVCYXJJbnB1dCA9IGNyZWF0ZUNo\nZWNrYm94KGkxOG4oXCJoaWRlQmFyXCIpLCBydWxlc0RhdGEuaGlkZUJhciAmJiAhcnVsZXNEYXRh\nLmhpZGVCYXJCdXROb1N0b3AsIFwiaDRcIiwgZGJDbGljazJTdG9wSW5wdXQsICdyYWRpbycpO1xu\nICAgICAgICBoaWRlQmFySW5wdXQubmFtZSA9ICdoaWRlQmFyJztcbiAgICAgICAgbGV0IGhpZGVC\nYXJCdXROb1N0b3BJbnB1dCA9IGNyZWF0ZUNoZWNrYm94KGkxOG4oXCJoaWRlQmFyQnV0Tm9TdG9w\nXCIpLCBydWxlc0RhdGEuaGlkZUJhckJ1dE5vU3RvcCwgXCJoNFwiLCBkYkNsaWNrMlN0b3BJbnB1\ndCwgJ3JhZGlvJyk7XG4gICAgICAgIGhpZGVCYXJCdXROb1N0b3BJbnB1dC5uYW1lID0gJ2hpZGVC\nYXInO1xuICAgICAgICBoaWRlQmFySW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGUg\nPT4ge1xuICAgICAgICAgICAgaWYgKGhpZGVCYXJJbnB1dC5jaGVja2VkKSB7XG4gICAgICAgICAg\nICAgICAgc2V0VGltZW91dCgoKSA9PiB7aGlkZUJhcklucHV0LmNoZWNrZWQgPSBmYWxzZX0sIDAp\nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaGlkZUJhckJ1dE5vU3RvcElu\ncHV0LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBlID0+IHtcbiAgICAgICAgICAgIGlmICho\naWRlQmFyQnV0Tm9TdG9wSW5wdXQuY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVv\ndXQoKCkgPT4ge2hpZGVCYXJCdXROb1N0b3BJbnB1dC5jaGVja2VkID0gZmFsc2V9LCAwKTtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGhpZGVQYWdlQmFySW5wdXQuYWRkRXZl\nbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHtcbiAgICAgICAgICAgIG9wYWNpdHlJbnB1dC52YWx1\nZSA9IGhpZGVQYWdlQmFySW5wdXQuY2hlY2tlZCA\/IDAgOiAxMDA7XG4gICAgICAgIH0pO1xuXG4g\nICAgICAgIGxldCBkYkNsaWNrMlN0b3BDdHJsSW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwi\nZGJDbGljazJTdG9wQ3RybFwiKSwgcnVsZXNEYXRhLmRiQ2xpY2syU3RvcEN0cmwsIFwiaDRcIiwg\nZGJDbGljazJTdG9wSW5wdXQpO1xuICAgICAgICBsZXQgZGJDbGljazJTdG9wQWx0SW5wdXQgPSBj\ncmVhdGVDaGVja2JveChpMThuKFwiZGJDbGljazJTdG9wQWx0XCIpLCBydWxlc0RhdGEuZGJDbGlj\nazJTdG9wQWx0LCBcImg0XCIsIGRiQ2xpY2syU3RvcElucHV0KTtcbiAgICAgICAgbGV0IGRiQ2xp\nY2syU3RvcFNoaWZ0SW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwiZGJDbGljazJTdG9wU2hp\nZnRcIiksIHJ1bGVzRGF0YS5kYkNsaWNrMlN0b3BTaGlmdCwgXCJoNFwiLCBkYkNsaWNrMlN0b3BJ\nbnB1dCk7XG4gICAgICAgIGxldCBkYkNsaWNrMlN0b3BNZXRhSW5wdXQgPSBjcmVhdGVDaGVja2Jv\neChpMThuKFwiZGJDbGljazJTdG9wTWV0YVwiKSwgcnVsZXNEYXRhLmRiQ2xpY2syU3RvcE1ldGEs\nIFwiaDRcIiwgZGJDbGljazJTdG9wSW5wdXQpO1xuICAgICAgICBsZXQgZGJDbGljazJTdG9wS2V5\nSW5wdXQgPSBjcmVhdGVDaGVja2JveChpMThuKFwiZGJDbGljazJTdG9wS2V5XCIpLCBydWxlc0Rh\ndGEuZGJDbGljazJTdG9wS2V5LCBcImg0XCIsIGRiQ2xpY2syU3RvcElucHV0LCBcImtleVwiKTtc\nblxuICAgICAgICBsZXQgb3RoZXJDb25maWdQYWdlID0gKHJ1bGVzRGF0YS5jb25maWdQYWdlIHx8\nIGNvbmZpZ1BhZ2VbMF0pICE9IGxvY2F0aW9uLmhyZWYucmVwbGFjZShcLyMuKlwvLCBcIlwiKTtc\nbiAgICAgICAgaWYgKCFvdGhlckNvbmZpZ1BhZ2UpIHtcbiAgICAgICAgICAgIHNldENvbmZpZ1Bh\nZ2VJbnB1dC5wYXJlbnROb2RlLnBhcmVudE5vZGUuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xu\nICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlUC5vbmNsaWNrID0gZSA9PiB7XG4gICAgICAgICAg\nICB1cGRhdGVGYWlsID0gZmFsc2U7XG4gICAgICAgICAgICBcL1wvcnVsZVBhcnNlci5ydWxlcyA9\nIFtdO1xuICAgICAgICAgICAgc2hvd1RpcHMoaTE4bihcImJlZ2luVXBkYXRlXCIpLCBcIlwiLCAz\nMDAwMCk7XG4gICAgICAgICAgICB1cGRhdGVSdWxlcygoKSA9PiB7XG4gICAgICAgICAgICAgICAg\naWYgKCF1cGRhdGVGYWlsKSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dUaXBzKGkxOG4oXCJ1\ncGRhdGVTdWNjXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGltcG9ydFVybFByZXMpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIFtdLmZvckVhY2guY2FsbChpbXBvcnRVcmxQcmVzLCBp\nbXBvcnRVcmxQcmUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydFVybFBy\nZS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY2xpY2syaW1w\nb3J0KSBjbGljazJpbXBvcnQuc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICB1cGRhdGVQLmlubmVySFRNTCA9IGkxOG4oXCJwYXNzU2Vj\nXCIsIDApO1xuICAgICAgICAgICAgICAgIHVwZGF0ZVAudGl0bGUgPSBpMThuKFwidXBkYXRlXCIp\nO1xuICAgICAgICAgICAgICAgIHJ1bGViYXJMaXN0LmZvckVhY2gocnVsZWJhciA9PiB7XG4gICAg\nICAgICAgICAgICAgICAgIHJ1bGViYXIudXBkYXRlTnVtKCk7XG4gICAgICAgICAgICAgICAgfSk7\nXG4gICAgICAgICAgICB9LCAocnVsZSwgZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJ1\nbGUuaWQgPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhgRmFpbGVkIHRvIHVw\nZGF0ZSB3ZWRhdGEgcnVsZXMhIFRyeSB0byBzd2l0Y2ggdG8gd2VkYXRhIG1pcnJvciFgKTtcbiAg\nICAgICAgICAgICAgICAgICAgd2VkYXRhMmdpdGh1YklucHV0LnNjcm9sbEludG9WaWV3KHsgYmVo\nYXZpb3I6IFwic21vb3RoXCIgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgICAgICAgICAgc2hvd1RpcHMoYEZhaWxlZCB0byB1cGRhdGUgJHtydWxlLnVybH0gcnVsZXMh\nYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlYnVnKGVycik7XG4gICAg\nICAgICAgICAgICAgdXBkYXRlRmFpbCA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAg\nfTtcbiAgICAgICAgbGV0IGN1c3RvbVJ1bGVzVGl0bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50\nKFwiaDJcIik7XG4gICAgICAgIGN1c3RvbVJ1bGVzVGl0bGUuaW5uZXJIVE1MID0gaTE4bihcImN1\nc3RvbVJ1bGVzXCIsIFwvdHJlZVwvLnRlc3QobG9jYXRpb24uaHJlZikgPyBsb2NhdGlvbi5ocmVm\nLnJlcGxhY2UoJ3RyZWUnLCAnZWRpdCcpLnJlcGxhY2UoXC9cXFwvJFwvLCAnJykgKyAnXC9wYWdl\ndHVhbFJ1bGVzLmpzb24nIDogJ2h0dHBzOlwvXC9naXRodWIuY29tXC9ob290aGluXC9Vc2VyU2Ny\naXB0c1wvZWRpdFwvbWFzdGVyXC9QYWdldHVhbFwvcGFnZXR1YWxSdWxlcy5qc29uJyk7XG4gICAg\nICAgIGNvbmZpZ0Nvbi5hcHBlbmRDaGlsZChjdXN0b21SdWxlc1RpdGxlKTtcbiAgICAgICAgY3Vz\ndG9tUnVsZXNJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJ0ZXh0YXJlYVwiKTtcbiAg\nICAgICAgY3VzdG9tUnVsZXNJbnB1dC5zcGVsbGNoZWNrID0gZmFsc2U7XG4gICAgICAgIGNvbmZp\nZ0Nvbi5hcHBlbmRDaGlsZChjdXN0b21SdWxlc0lucHV0KTtcbiAgICAgICAgaWYgKHJ1bGVzRGF0\nYS5lZGl0VGVtcCkge1xuICAgICAgICAgICAgaWYgKCFydWxlUGFyc2VyLmN1c3RvbVJ1bGVzKSB7\nXG4gICAgICAgICAgICAgICAgcnVsZVBhcnNlci5jdXN0b21SdWxlcyA9IFtdO1xuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgZm9yIChsZXQgaSBpbiBydWxlUGFyc2VyLmN1c3RvbVJ1bGVzKSB7\nXG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VzdG9tUnVsZXNbaV0udXJsID09IHJ1\nbGVzRGF0YS5lZGl0VGVtcC51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5j\ndXN0b21SdWxlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJ1bGVQYXJzZXIuY3Vz\ndG9tUnVsZXMudW5zaGlmdChydWxlc0RhdGEuZWRpdFRlbXApO1xuICAgICAgICAgICAgcnVsZXNE\nYXRhLmVkaXRUZW1wID0gbnVsbDtcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInJ1bGVz\nRGF0YVwiLCBydWxlc0RhdGEpO1xuICAgICAgICAgICAgY3VzdG9tUnVsZXNJbnB1dC5wcmV2aW91\nc0VsZW1lbnRTaWJsaW5nLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cbiAgICAgICAgY3Vz\ndG9tUnVsZXNJbnB1dC5zdHlsZS53aWR0aCA9IFwiMTAwJVwiO1xuICAgICAgICBjdXN0b21SdWxl\nc0lucHV0LnN0eWxlLmhlaWdodCA9IFwiODAwcHhcIjtcbiAgICAgICAgY3VzdG9tUnVsZXNJbnB1\ndC5wbGFjZWhvbGRlciA9IGBbXFxuICB7XFxuICAgIFwibmFtZVwiOlwieWFuZGVcIixcXG4gICAg\nXCJhY3Rpb25cIjpcIjBcIixcXG4gICAgXCJ1cmxcIjpcIl5odHRwczpcXFwvXFxcL3lhbmRlXFxc\nXC5yZVxcXC9cIixcXG4gICAgXCJwYWdlRWxlbWVudFwiOlwidWwjcG9zdC1saXN0LXBvc3RzPmxp\nXCIsXFxuICAgIFwibmV4dExpbmtcIjpcImEubmV4dF9wYWdlXCIsXFxuICAgIFwiY3NzXCI6XCIu\namF2YXNjcmlwdC1oaWRlIHtkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDt9XCJcXG4g\nIH0sXFxuICB7XFxuICAgIFwibmFtZVwiOlwidGllYmFcIixcXG4gICAgXCJhY3Rpb25cIjpcIjFc\nIixcXG4gICAgXCJ1cmxcIjpcIl5odHRwczpcXFwvXFxcL3RpZWJhXFxcXC5iYWlkdS5jb21cXFwv\nZlxcXFw\/a3c9XCIsXFxuICAgIFwicGFnZUVsZW1lbnRcIjpcInVsI3RocmVhZF9saXN0PmxpXCIs\nXFxuICAgIFwibmV4dExpbmtcIjpcIi5uZXh0LnBhZ2luYXRpb24taXRlbSBcIlxcbiAgfVxcbl1g\nO1xuICAgICAgICBsZXQgcHJlQ3VzdG9tID0gZ2V0Rm9ybWF0SlNPTihydWxlUGFyc2VyLmN1c3Rv\nbVJ1bGVzKTtcbiAgICAgICAgY3VzdG9tUnVsZXNJbnB1dC52YWx1ZSA9IHByZUN1c3RvbTtcbiAg\nICAgICAgaWYgKGlzR3VpZGVQYWdlKSBjdXN0b21SdWxlc0lucHV0LnN0eWxlLmRpc3BsYXkgPSBc\nIm5vbmVcIjtcbiAgICAgICAgbGV0IGJsYWNrbGlzdElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl\nbWVudChcInRleHRhcmVhXCIpO1xuICAgICAgICBibGFja2xpc3RJbnB1dC5zdHlsZS53aWR0aCA9\nIFwiMTAwJVwiO1xuICAgICAgICBibGFja2xpc3RJbnB1dC5zdHlsZS5oZWlnaHQgPSBcIjUwMHB4\nXCI7XG4gICAgICAgIGJsYWNrbGlzdElucHV0LnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAg\nICAgICAgYmxhY2tsaXN0SW5wdXQuc3BlbGxjaGVjayA9IGZhbHNlO1xuICAgICAgICBibGFja2xp\nc3RJbnB1dC5wbGFjZWhvbGRlciA9IFwiaHR0cDpcL1wvKi54eHguY29tXC8qXC95XFxuXC9eaHR0\ncHM\/OlwvXC8uKlxcXFwueHh4XFxcXC5jb21cL2kgXFx0XFx0PD0gUmVnZXhwXFxuXC9cL2h0dHA6\nXC9cLyouYWFhLmNvbVwvIFxcdFxcdDw9IERpc2FibGVcXG5cLypodHRwOlwvXC8qLmJiYi5jb21c\nXG5odHRwOlwvXC8qLmNjYy5jb20qXC8gXFx0XFx0PD0gQmxvY2sgY29tbWVudFwiO1xuICAgICAg\nICBibGFja2xpc3RJbnB1dC52YWx1ZSA9IHJ1bGVzRGF0YS5ibGFja2xpc3QgPyBydWxlc0RhdGEu\nYmxhY2tsaXN0LmpvaW4oXCJcXG5cIikgOiBcIlwiO1xuICAgICAgICBsZXQgYmxhY2tsaXN0QnRu\nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiKTtcbiAgICAgICAgYmxhY2tsaXN0\nQnRuLmlubmVyVGV4dCA9IGkxOG4oXCJlZGl0QmxhY2tsaXN0XCIpO1xuICAgICAgICBibGFja2xp\nc3RCdG4uc3R5bGUud2lkdGggPSBcIjEwMCVcIjtcbiAgICAgICAgYmxhY2tsaXN0QnRuLm9uY2xp\nY2sgPSBlID0+IHtcbiAgICAgICAgICAgIGJsYWNrbGlzdElucHV0LnN0eWxlLmRpc3BsYXkgPSBi\nbGFja2xpc3RJbnB1dC5zdHlsZS5kaXNwbGF5ID09IFwibm9uZVwiID8gXCJcIiA6IFwibm9uZVwi\nO1xuICAgICAgICB9O1xuICAgICAgICBjb25maWdDb24uYXBwZW5kQ2hpbGQoYmxhY2tsaXN0QnRu\nKTtcbiAgICAgICAgY29uZmlnQ29uLmFwcGVuZENoaWxkKGJsYWNrbGlzdElucHV0KTtcbiAgICAg\nICAgbGV0IHNhdmVCdG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnV0dG9uXCIpO1xuICAg\nICAgICBzYXZlQnRuLmlubmVySFRNTCA9IGkxOG4oXCJzYXZlXCIpO1xuICAgICAgICBzYXZlQnRu\nLmlkID0gXCJzYXZlQnRuXCI7XG4gICAgICAgIGNvbmZpZ0Nvbi5hcHBlbmRDaGlsZChzYXZlQnRu\nKTtcbiAgICAgICAgc2F2ZUJ0bi5vbmNsaWNrID0gZSA9PiB7XG4gICAgICAgICAgICB0cnkge1xu\nICAgICAgICAgICAgICAgIGxldCBjdXN0b21SdWxlcztcbiAgICAgICAgICAgICAgICBpZiAoZWRp\ndG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlZGl0b3JDaGFuZ2VkKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBlZGl0b3JDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBzdG9yYWdlLnNldEl0ZW0oXCJocFJ1bGVzXCIsIFtdKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInNtYXJ0UnVsZXNcIiwgW10pO1xuICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbVJ1bGVzID0gZWRpdG9yLmdl\ndCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN1c3RvbVJ1bGVzKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBjdXN0b21SdWxlcyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIH0g\nZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkgJiYgQXJyYXkuaXNBcnJh\neSAmJiAhQXJyYXkuaXNBcnJheShjdXN0b21SdWxlcykpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBzaG93VGlwcyhpMThuKFwiZXJyb3JSdWxlc011c3RCZUFycmF5XCIpKTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgICAgICAgICAgICBpZiAoY3VzdG9tUnVsZXNJbnB1dC52YWx1ZSAhPSBwcmVDdXN0b20pIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcImhwUnVsZXNcIiwgW10p\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwic21hcnRSdWxlc1wi\nLCBbXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1\nc3RvbVJ1bGVzSW5wdXQudmFsdWUgPT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nY3VzdG9tUnVsZXMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgY3VzdG9tUnVsZXMgPSBKU09OLnBhcnNlKGN1c3RvbVJ1bGVzSW5w\ndXQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5ICYmIEFycmF5Lmlz\nQXJyYXkgJiYgIUFycmF5LmlzQXJyYXkoY3VzdG9tUnVsZXMpKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgc2hvd1RpcHMoaTE4bihcImVycm9yUnVsZXNNdXN0QmVBcnJheVwiKSk7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tUnVsZXNJbnB1dC52YWx1ZSA9IEpT\nT04uc3RyaW5naWZ5KGN1c3RvbVJ1bGVzLCBudWxsLCA0KTtcbiAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWJ1ZyhjdXN0b21SdWxlcyk7\nXG4gICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwiY3VzdG9tUnVsZXNcIiwgY3VzdG9t\nUnVsZXMpO1xuICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgZGVidWco\nZSk7XG4gICAgICAgICAgICAgICAgbGV0IHBvcyA9IGUgJiYgZS5tZXNzYWdlICYmIGUubWVzc2Fn\nZS5tYXRjaChcL3Bvc2l0aW9uIChcXGQrKVwvKTtcbiAgICAgICAgICAgICAgICBpZiAocG9zICYm\nICFlZGl0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gcGFyc2VJbnQocG9zWzFdKTtc\nbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tUnVsZXNJbnB1dC52YWx1ZSA9IGN1c3RvbVJ1bGVz\nSW5wdXQudmFsdWUuc2xpY2UoMCwgcG9zKSArIFwi4p6h77iPXCIgKyBjdXN0b21SdWxlc0lucHV0\nLnZhbHVlLnNsaWNlKHBvcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNo\nb3dUaXBzKGkxOG4oXCJlcnJvckpzb25cIikpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIHJ1bGVzRGF0YS5sYW5nID0gbGFuZ1NlbGVjdC52YWx1\nZSB8fCBcIlwiO1xuICAgICAgICAgICAgaWYgKHNldENvbmZpZ1BhZ2VJbnB1dC5jaGVja2VkKSBy\ndWxlc0RhdGEuY29uZmlnUGFnZSA9IGxvY2F0aW9uLmhyZWY7XG4gICAgICAgICAgICBydWxlc0Rh\ndGEud2VkYXRhMmdpdGh1YiA9IHdlZGF0YTJnaXRodWJJbnB1dC5jaGVja2VkO1xuICAgICAgICAg\nICAgbGV0IG9wYWNpdHkgPSBwYXJzZUludChvcGFjaXR5SW5wdXQudmFsdWUpIHx8IDA7XG4gICAg\nICAgICAgICBpZiAob3BhY2l0eSA+IDEwMCkgb3BhY2l0eSA9IDEwMDtcbiAgICAgICAgICAgIGVs\nc2UgaWYgKG9wYWNpdHkgPCAwKSBvcGFjaXR5ID0gMDtcbiAgICAgICAgICAgIHJ1bGVzRGF0YS5v\ncGFjaXR5ID0gb3BhY2l0eSBcLyAxMDA7XG4gICAgICAgICAgICBydWxlc0RhdGEuYmxhY2tsaXN0\nID0gYmxhY2tsaXN0SW5wdXQudmFsdWUgPyBibGFja2xpc3RJbnB1dC52YWx1ZS50cmltKCkuc3Bs\naXQoXCJcXG5cIikgOiBcIlwiO1xuICAgICAgICAgICAgcnVsZXNEYXRhLmhpZGVCYXIgPSBoaWRl\nQmFySW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJ1bGVzRGF0YS5oaWRlQmFyQnV0Tm9TdG9w\nID0gaGlkZUJhckJ1dE5vU3RvcElucHV0LmNoZWNrZWQ7XG4gICAgICAgICAgICBydWxlc0RhdGEu\nZGJDbGljazJTdG9wID0gZGJDbGljazJTdG9wSW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJ1\nbGVzRGF0YS5lbmFibGVXaGl0ZUxpc3QgPSAhZW5hYmxlV2hpdGVMaXN0SW5wdXQuY2hlY2tlZDtc\nbiAgICAgICAgICAgIHJ1bGVzRGF0YS5lbmFibGVEZWJ1ZyA9IGVuYWJsZURlYnVnSW5wdXQuY2hl\nY2tlZDtcbiAgICAgICAgICAgIHJ1bGVzRGF0YS51cGRhdGVOb3RpZmljYXRpb24gPSB1cGRhdGVO\nb3RpZmljYXRpb25JbnB1dC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRhLmVuYWJsZUhp\nc3RvcnkgPSBlbmFibGVIaXN0b3J5SW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJ1bGVzRGF0\nYS5lbmFibGVIaXN0b3J5QWZ0ZXJJbnNlcnQgPSBlbmFibGVIaXN0b3J5QWZ0ZXJJbnNlcnRJbnB1\ndC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRhLm9wZW5Jbk5ld1RhYiA9IG9wZW5Jbk5l\nd1RhYklucHV0LmNoZWNrZWQ7XG4gICAgICAgICAgICBydWxlc0RhdGEuaGlkZUxvYWRpbmdJY29u\nID0gaGlkZUxvYWRpbmdJY29uSW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJ1bGVzRGF0YS5o\naWRlQmFyQXJyb3cgPSBoaWRlUGFnZUJhckFycm93SW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAg\nIHJ1bGVzRGF0YS5jdXN0b21GaXJzdCA9IGN1c3RvbUZpcnN0SW5wdXQuY2hlY2tlZDtcbiAgICAg\nICAgICAgIHJ1bGVzRGF0YS5sYXN0UGFnZVRpcHMgPSBsYXN0UGFnZVRpcHNJbnB1dC5jaGVja2Vk\nO1xuICAgICAgICAgICAgcnVsZXNEYXRhLmluaXRSdW4gPSBpbml0UnVuSW5wdXQuY2hlY2tlZDtc\nbiAgICAgICAgICAgIHJ1bGVzRGF0YS5hdXRvTG9hZE51bSA9IGF1dG9Mb2FkTnVtSW5wdXQudmFs\ndWUgIT09IFwiMFwiID8gYXV0b0xvYWROdW1JbnB1dC52YWx1ZSA6ICcnO1xuICAgICAgICAgICAg\ncnVsZXNEYXRhLnJhdGUgPSBwYXJzZUZsb2F0KHJhdGVJbnB1dC52YWx1ZSkgfHwgMDtcbiAgICAg\nICAgICAgIHJ1bGVzRGF0YS5wcmVsb2FkID0gcHJlbG9hZElucHV0LmNoZWNrZWQ7XG4gICAgICAg\nICAgICBydWxlc0RhdGEubWFudWFsTW9kZSA9IG1hbnVhbE1vZGVJbnB1dC5jaGVja2VkO1xuICAg\nICAgICAgICAgcnVsZXNEYXRhLmNsaWNrTW9kZSA9IGNsaWNrTW9kZUlucHV0LmNoZWNrZWQ7XG4g\nICAgICAgICAgICBydWxlc0RhdGEucGFnZUJhck1lbnUgPSBwYWdlQmFyTWVudUlucHV0LmNoZWNr\nZWQ7XG4gICAgICAgICAgICBydWxlc0RhdGEuYXJyb3dUb1Njcm9sbCA9IGFycm93VG9TY3JvbGxJ\nbnB1dC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRhLmNvbnRlbnRWaXNpYmlsaXR5ID0g\nY29udGVudFZpc2liaWxpdHlJbnB1dC5jaGVja2VkO1xuICAgICAgICAgICAgaWYgKHJ1bGVzRGF0\nYS5zaWRlQ29udHJvbGxlciAhPSBzaWRlQ29udHJvbGxlcklucHV0LmNoZWNrZWQpIHtcbiAgICAg\nICAgICAgICAgICBydWxlc0RhdGEuc2lkZUNvbnRyb2xsZXJQb3MgPSBmYWxzZTtcbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIHJ1bGVzRGF0YS5zaWRlQ29udHJvbGxlciA9IHNpZGVDb250cm9s\nbGVySW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJ1bGVzRGF0YS5zaWRlQ29udHJvbGxlclNj\ncm9sbCA9IHNpZGVDb250cm9sbGVyU2Nyb2xsSW5wdXQuY2hlY2tlZDtcbiAgICAgICAgICAgIHJ1\nbGVzRGF0YS5zaWRlQ29udHJvbGxlckxvYWROb3cgPSBzaWRlQ29udHJvbGxlckxvYWROb3dJbnB1\ndC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRhLnNpZGVDb250cm9sbGVyQWx3YXlzID0g\nc2lkZUNvbnRyb2xsZXJBbHdheXNJbnB1dC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRh\nLnBhZ2VFbGVtZW50Q3NzID0gcGFnZUVsZW1lbnRDc3NJbnB1dC52YWx1ZTtcbiAgICAgICAgICAg\nIHJ1bGVzRGF0YS5jdXN0b21Dc3MgPSBjdXN0b21Dc3NJbnB1dC52YWx1ZTtcbiAgICAgICAgICAg\nIHJ1bGVzRGF0YS51cEJ0bkltZyA9IHVwQnRuSW1nSW5wdXQudmFsdWU7XG4gICAgICAgICAgICBy\ndWxlc0RhdGEuZG93bkJ0bkltZyA9IGRvd25CdG5JbWdJbnB1dC52YWx1ZTtcbiAgICAgICAgICAg\nIHJ1bGVzRGF0YS5zaWRlQ29udHJvbGxlckljb24gPSBzaWRlQ29udHJvbGxlckljb25JbnB1dC52\nYWx1ZTtcbiAgICAgICAgICAgIHJ1bGVzRGF0YS5sb2FkaW5nVGV4dCA9IGxvYWRpbmdUZXh0SW5w\ndXQudmFsdWU7XG4gICAgICAgICAgICBydWxlc0RhdGEuZGJDbGljazJTdG9wQ3RybCA9IGRiQ2xp\nY2syU3RvcEN0cmxJbnB1dC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRhLmRiQ2xpY2sy\nU3RvcEFsdCA9IGRiQ2xpY2syU3RvcEFsdElucHV0LmNoZWNrZWQ7XG4gICAgICAgICAgICBydWxl\nc0RhdGEuZGJDbGljazJTdG9wU2hpZnQgPSBkYkNsaWNrMlN0b3BTaGlmdElucHV0LmNoZWNrZWQ7\nXG4gICAgICAgICAgICBydWxlc0RhdGEuZGJDbGljazJTdG9wTWV0YSA9IGRiQ2xpY2syU3RvcE1l\ndGFJbnB1dC5jaGVja2VkO1xuICAgICAgICAgICAgcnVsZXNEYXRhLmRiQ2xpY2syU3RvcEtleSA9\nIGRiQ2xpY2syU3RvcEtleUlucHV0LnZhbHVlO1xuICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVt\nKFwicnVsZXNEYXRhXCIsIHJ1bGVzRGF0YSk7XG4gICAgICAgICAgICBsZXQgY3VzdG9tVXJscyA9\nIGN1c3RvbVVybHNJbnB1dC52YWx1ZS50cmltKCksIHVybEltcG9ydGVkID0gZmFsc2U7XG4gICAg\nICAgICAgICBpZiAoY3VzdG9tVXJscykge1xuICAgICAgICAgICAgICAgIGN1c3RvbVVybHMgPSBj\ndXN0b21VcmxzLnNwbGl0KFwvXFxuXC8pO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGMgPSAw\nOyBjIDwgY3VzdG9tVXJscy5sZW5ndGg7IGMrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQg\ndXJsO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXC9eMFxccypcXHxcLy50ZXN0KGN1c3RvbVVy\nbHNbY10pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSBjdXN0b21VcmxzW2NdLnJl\ncGxhY2UoXC9eMFxccypcXHxcXHMqXC8sIFwiXCIpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmICghXC9eaHR0cFwvLnRlc3QodXJsKSkge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIHNob3dUaXBzKGkxOG4oXCJlcnJvcldyb25nVXJsXCIpKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSBjdXN0\nb21VcmxzW2NdLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghXC9eaHR0cFwv\nLnRlc3QodXJsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUaXBzKGkxOG4o\nXCJlcnJvcldyb25nVXJsXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47\nXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgbGV0IG1heElkID0gMSwgaGFzVXJsID0gZmFsc2U7XG4gICAgICAgICAg\nICAgICAgICAgIGlmICghcnVsZXNEYXRhLnVybHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHJ1bGVzRGF0YS51cmxzID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICAgICAgcnVsZVVybHMuZm9yRWFjaCh1ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmIChtYXhJZCA8IHUuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhJZCA9\nIHUuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAg\nICBpZiAodS51cmwgPT0gdXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzVXJs\nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNVcmwpIGJyZWFrO1xuICAgICAgICAgICAg\nICAgICAgICBpZiAoIXJ1bGVzRGF0YS5zb3J0KSBydWxlc0RhdGEuc29ydCA9IFsxXTtcbiAgICAg\nICAgICAgICAgICAgICAgbGV0IG5ld1J1bGUgPSB7aWQ6IG1heElkICsgMSwgdXJsOiB1cmx9O1xu\nICAgICAgICAgICAgICAgICAgICBydWxlVXJscy5wdXNoKG5ld1J1bGUpO1xuICAgICAgICAgICAg\nICAgICAgICBydWxlc0RhdGEudXJscy5wdXNoKG5ld1J1bGUpO1xuICAgICAgICAgICAgICAgICAg\nICBydWxlc0RhdGEuc29ydC5wdXNoKG1heElkICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIHN0\nb3JhZ2Uuc2V0SXRlbShcInJ1bGVzRGF0YVwiLCBydWxlc0RhdGEpO1xuICAgICAgICAgICAgICAg\nICAgICBsZXQgcnVsZWJhciA9IG5ldyBSdWxlYmFyKCk7XG4gICAgICAgICAgICAgICAgICAgIHJ1\nbGViYXIuaW5pdChuZXdSdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgcnVsZWJhckxpc3QucHVz\naChydWxlYmFyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nICBzaG93VGlwcyhpMThuKFwic2V0dGluZ3NTYXZlZFwiKSk7XG4gICAgICAgIH07XG4gICAgICAg\nIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVwZGF0ZVJ1bGVzIChzdWNjZXNz\nLCBmYWlsLCBrZWVwQ2FjaGUpIHtcbiAgICAgICAgaWYgKCFzdG9yYWdlLnN1cHBvcnRDcm9zc1Nh\ndmUoKSkge1xuICAgICAgICAgICAgZmFpbCh7dXJsOicnfSwgXCJOb3Qgc3VwcG9ydCBjcm9zcyBz\ndG9yYWdlXCIpO1xuICAgICAgICAgICAgc2hvd1RpcHMoXCJDdXJyZW50IHBsYXRmb3JtIGRvIG5v\ndCBzdXBwb3J0IGNyb3NzIHN0b3JhZ2UhXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAg\nICB9XG4gICAgICAgIGlmIChpblVwZGF0ZSkgcmV0dXJuO1xuICAgICAgICBpblVwZGF0ZSA9IHRy\ndWU7XG4gICAgICAgIGxldCBydWxlSW5kZXggPSBydWxlVXJscy5sZW5ndGggLSAxO1xuICAgICAg\nICBpZiAoIWtlZXBDYWNoZSkge1xuICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwiaHBSdWxl\nc1wiLCBbXSk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldEl0ZW0oXCJzbWFydFJ1bGVzXCIsIFtd\nKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYWxsT2sgPSB0cnVlO1xuICAgICAgICBsZXQgcHJl\nTGVuZ3RoID0gcnVsZVBhcnNlci5ydWxlcy5sZW5ndGg7XG4gICAgICAgIGxldCBmZXRjaFZlcnNp\nb24gPSAtMTtcbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbmVlZFVwZGF0ZSh1cmwsIGlkKSB7XG4g\nICAgICAgICAgICBpZiAoIVwvXmh0dHBzOlxcXC9cXFwvaG9vdGhpblxcLmdpdGh1YlxcLmlvXFxc\nL3xcXFwvaG9vdGhpblxcXC9Vc2VyU2NyaXB0c1xcXC8uKlxcXC9QYWdldHVhbFxcXC9wYWdldHVh\nbFJ1bGVzXFwuanNvblwvaS50ZXN0KHVybCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1\nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBydWxlc0xlbmd0aCA9IHJ1bGVQYXJz\nZXIucnVsZXMucmVkdWNlKChhY2MsIGN1cikgPT4gYWNjICsgKGN1ci5mcm9tID09IGlkID8gMSA6\nIDApLCAwKTtcbiAgICAgICAgICAgIGlmIChydWxlc0xlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7\nXG4gICAgICAgICAgICBpZiAoZmV0Y2hWZXJzaW9uID49IDApIHtcbiAgICAgICAgICAgICAgICBy\nZXR1cm4gZmV0Y2hWZXJzaW9uID4gKHJ1bGVzRGF0YS5ydWxlVmVyc2lvbiB8fCAwKTtcbiAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgIGZldGNoVmVyc2lvbiA9IGF3YWl0IG5ldyBQcm9taXNlKHJl\nc29sdmUgPT4ge1xuICAgICAgICAgICAgICAgIF9HTV94bWxodHRwUmVxdWVzdCh7XG4gICAgICAg\nICAgICAgICAgICAgIHVybDogdXJsLnJlcGxhY2UoXC9cXFwvXFx3K1xcLmpzb25cL2ksIFwiXC92\nZXJzaW9uXCIpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAg\nICAgICAgICAgICB0aW1lb3V0OiAyMDAwMCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczog\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2FjY2VwdCc6ICdhcHBsaWNhdGlvblwvanNvbix0\nZXh0XC9odG1sJ1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBv\nbmxvYWQ6IGZ1bmN0aW9uKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZlcnNp\nb24gPSBwYXJzZUludChyZXMucmVzcG9uc2UgfHwgcmVzLnJlc3BvbnNlVGV4dCk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICByZXNvbHZlKHZlcnNpb24gfHwgLTEpO1xuICAgICAgICAgICAgICAg\nICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbmVycm9yOiBmdW5jdGlvbihlKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICByZXNvbHZlKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgfSxc\nbiAgICAgICAgICAgICAgICAgICAgb250aW1lb3V0OiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICByZXNvbHZlKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmV0Y2hW\nZXJzaW9uID4gKHJ1bGVzRGF0YS5ydWxlVmVyc2lvbiB8fCAwKTtcbiAgICAgICAgfVxuICAgICAg\nICBhc3luYyBmdW5jdGlvbiBhZGROZXh0UnVsZSgpIHtcbiAgICAgICAgICAgIGlmIChydWxlSW5k\nZXggPCAwKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgp\nO1xuICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInJ1bGVMYXN0VXBkYXRlXCIsIG5v\ndyk7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwicnVsZXNcIiwgcnVsZVBhcnNl\nci5ydWxlcyk7XG4gICAgICAgICAgICAgICAgbGV0IGN1ckxlbmd0aCA9IHJ1bGVQYXJzZXIucnVs\nZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGlmIChjdXJMZW5ndGggIT09IHByZUxlbmd0aCAm\nJiBydWxlc0RhdGEudXBkYXRlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIF9H\nTV9ub3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogYFJ1bGVzIGhh\ncyB1cGRhdGVkKCAke3ByZUxlbmd0aH0gPT4gJHtjdXJMZW5ndGh9IClgLFxuICAgICAgICAgICAg\nICAgICAgICAgICAgdGl0bGU6IFwiUGFnZXR1YWwgcnVsZXMgdXBkYXRlZFwiLFxuICAgICAgICAg\nICAgICAgICAgICAgICAgb25jbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBfR01fb3BlbkluVGFiKGNvbmZpZ1BhZ2VbMF0sIHthY3RpdmU6IHRydWV9KTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIGluVXBkYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAg\nICAgbGV0IHJ1bGVzRGF0YUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoZmV0\nY2hWZXJzaW9uID49IDAgJiYgcnVsZXNEYXRhLnJ1bGVWZXJzaW9uICE9PSBmZXRjaFZlcnNpb24p\nIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNEYXRhLnJ1bGVWZXJzaW9uID0gZmV0Y2hWZXJz\naW9uO1xuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGFDaGFuZ2VkID0gdHJ1ZTtcbiAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVzRGF0YS51bmluaXRlZCAmJiBh\nbGxPayAmJiBydWxlVXJscy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVz\nRGF0YS51bmluaXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGFDaGFu\nZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVz\nRGF0YUNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwicnVs\nZXNEYXRhXCIsIHJ1bGVzRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIHN1Y2Nlc3MoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IHJ1\nbGUgPSBydWxlVXJsc1tydWxlSW5kZXgtLV07XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IG5l\nZWRVcGRhdGUocnVsZS51cmwsIHJ1bGUuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVQ\nYXJzZXIuYWRkUnVsZUJ5VXJsKHJ1bGUudXJsLCBydWxlLmlkLCAoanNvbiwgZXJyKSA9PiB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWpzb24pIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBhbGxPayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwo\ncnVsZSwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAg\nICAgICAgIGFkZE5leHRSdWxlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAg\nICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZE5leHRSdWxlKCk7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFkZE5leHRS\ndWxlKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb2JqSXNBcnIob2JqKSB7XG4gICAgICAgIHJl\ndHVybiBvYmogJiZcbiAgICAgICAgICAgIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmXG4gICAg\nICAgICAgICB0eXBlb2Ygb2JqLmxlbmd0aCA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgICAgICEo\nb2JqLnByb3BlcnR5SXNFbnVtZXJhYmxlKCdsZW5ndGgnKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rp\nb24gaXNWaXNpYmxlKGVsLCB3aW4pIHtcbiAgICAgICAgaWYoIWVsIHx8ICFlbC5vZmZzZXRQYXJl\nbnQpcmV0dXJuIGZhbHNlO1xuICAgICAgICB2YXIgbG9vcGFibGUgPSB0cnVlLFxuICAgICAgICAg\nICAgdmlzaWJsZSA9IGVsLm5vZGVOYW1lICYmIHdpbi5nZXRDb21wdXRlZFN0eWxlKGVsKS5kaXNw\nbGF5ICE9ICdub25lJyAmJiB3aW4uZ2V0Q29tcHV0ZWRTdHlsZShlbCkudmlzaWJpbGl0eSAhPSAn\naGlkZGVuJztcbiAgICAgICAgd2hpbGUobG9vcGFibGUgJiYgdmlzaWJsZSkge1xuICAgICAgICAg\nICAgZWwgPSBlbC5wYXJlbnROb2RlO1xuXG4gICAgICAgICAgICBpZihlbCAmJiBlbC5ub2RlVHlw\nZSA9PT0gMSAmJiAhY29tcGFyZU5vZGVOYW1lKGVsLCBbXCJib2R5XCJdKSkge1xuICAgICAgICAg\nICAgICAgIHZpc2libGUgPSB3aW4uZ2V0Q29tcHV0ZWRTdHlsZShlbCkuZGlzcGxheSAhPSAnbm9u\nZScgJiYgd2luLmdldENvbXB1dGVkU3R5bGUoZWwpLnZpc2liaWxpdHkgIT0gJ2hpZGRlbic7XG4g\nICAgICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9vcGFibGUgPSBmYWxzZTtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmlzaWJsZTtcbiAgICB9XG5c\nbiAgICBmdW5jdGlvbiBnZXRFbGVtZW50VG9wKGVsZSkge1xuICAgICAgICBpZiAoIWVsZSkgcmV0\ndXJuIDA7XG4gICAgICAgIGlmIChlbGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAg\nICAgICByZXR1cm4gZWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGRvY3VtZW50LmRv\nY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjdHVhbFRv\ncCA9IGVsZS5vZmZzZXRUb3A7XG4gICAgICAgIHZhciBjdXJyZW50ID0gZWxlLm9mZnNldFBhcmVu\ndDtcbiAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGFjdHVhbFRvcCArPSBj\ndXJyZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm9mZnNldFBh\ncmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0dWFsVG9wO1xuICAgIH1cblxuICAg\nIGZ1bmN0aW9uIGdldEVsZW1lbnRMZWZ0KGVsZSkge1xuICAgICAgICBpZiAoIWVsZSkgcmV0dXJu\nIDA7XG4gICAgICAgIGlmIChlbGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KSB7XG4gICAgICAgICAg\nICByZXR1cm4gZWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgKyBkb2N1bWVudC5kb2N1\nbWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYWN0dWFsTGVm\ndCA9IGVsZS5vZmZzZXRMZWZ0O1xuICAgICAgICB2YXIgY3VycmVudCA9IGVsZS5vZmZzZXRQYXJl\nbnQ7XG4gICAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgICAgICBhY3R1YWxMZWZ0ICs9\nIGN1cnJlbnQub2Zmc2V0TGVmdDtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm9mZnNl\ndFBhcmVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWN0dWFsTGVmdDtcbiAgICB9XG5c\nbiAgICBmdW5jdGlvbiBnZXRFbGVtZW50Qm90dG9tKGVsZSkge1xuICAgICAgICByZXR1cm4gZ2V0\nRWxlbWVudFRvcChlbGUpICsgKGVsZS5vZmZzZXRIZWlnaHQgfHwgZWxlLnNjcm9sbEhlaWdodCk7\nXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Rm9ybWF0SlNPTihvYmope1xuICAgICAgICBpZigh\nb2JqSXNBcnIob2JqKSB8fCBvYmoubGVuZ3RoID09PSAwKXJldHVybiBcIlwiO1xuICAgICAgICBy\nZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCA0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlv\nbiBnbG9iTWF0Y2goZmlyc3QsIHNlY29uZCkge1xuICAgICAgICBpZiAoZmlyc3QgPT09ICcqJykg\ne1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpcnN0\nLmxlbmd0aCA9PSAwICYmIHNlY29uZC5sZW5ndGggPT0gMCl7XG4gICAgICAgICAgICByZXR1cm4g\ndHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaXJzdC5sZW5ndGggPiAxICYmIGZpcnN0\nWzBdID09ICcqJyAmJlxuICAgICAgICAgICAgc2Vjb25kLmxlbmd0aCA9PSAwKXtcbiAgICAgICAg\nICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZmlyc3QubGVuZ3Ro\nID4gMSAmJiBmaXJzdFswXSA9PSAnPycpIHx8XG4gICAgICAgICAgICAoZmlyc3QubGVuZ3RoICE9\nIDAgJiYgc2Vjb25kLmxlbmd0aCAhPSAwICYmXG4gICAgICAgICAgICAgZmlyc3RbMF0gPT0gc2Vj\nb25kWzBdKSl7XG4gICAgICAgICAgICByZXR1cm4gZ2xvYk1hdGNoKGZpcnN0LnN1YnN0cmluZygx\nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmQuc3Vic3RyaW5nKDEpKTtcbiAgICAg\nICAgfVxuXG4gICAgICAgIGlmIChmaXJzdC5sZW5ndGggPiAwICYmIGZpcnN0WzBdID09ICcqJyl7\nXG4gICAgICAgICAgICByZXR1cm4gZ2xvYk1hdGNoKGZpcnN0LnN1YnN0cmluZygxKSwgc2Vjb25k\nKSB8fFxuICAgICAgICAgICAgICAgIGdsb2JNYXRjaChmaXJzdCwgc2Vjb25kLnN1YnN0cmluZygx\nKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0\nIHBhZ2VSZWFkeSA9IGZhbHNlO1xuICAgIGZ1bmN0aW9uIGluaXRSdWxlcyhjYWxsYmFjaykge1xu\nICAgICAgICBjaGFyc2V0ID0gKGRvY3VtZW50LmNoYXJhY3RlclNldCB8fCBkb2N1bWVudC5jaGFy\nc2V0IHx8IGRvY3VtZW50LmlucHV0RW5jb2RpbmcpO1xuICAgICAgICBsZXQgZXF1aXYgPSBkb2N1\nbWVudC5xdWVyeVNlbGVjdG9yKCdbaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiXScpO1xuICAg\nICAgICBpZiAoZXF1aXYgJiYgZXF1aXYuY29udGVudCkge1xuICAgICAgICAgICAgbGV0IGlubmVy\nQ2hhclNldCA9IGVxdWl2LmNvbnRlbnQubWF0Y2goXC9jaGFyc2V0XFw9KFteO10rKVwvKTtcbiAg\nICAgICAgICAgIGlmICghaW5uZXJDaGFyU2V0KSB7XG4gICAgICAgICAgICAgICAgY2hhcnNldFZh\nbGlkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlubmVyQ2hhclNldFsxXS5yZXBs\nYWNlKFwiLVwiLCBcIlwiKS50b0xvd2VyQ2FzZSgpICE9IGNoYXJzZXQucmVwbGFjZShcIi1cIiwg\nXCJcIikudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIGNoYXJzZXRWYWxpZCA9IGZh\nbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgY2hhcnNldFZhbGlkID0gZmFsc2U7\nXG4gICAgICAgIHN0b3JhZ2UuZ2V0SXRlbShcInJ1bGVzRGF0YVwiLCBkYXRhID0+IHtcbiAgICAg\nICAgICAgIFwvKjAgd2VkYXRh5qC85byP77yMMSBwYWdldHVhbOagvOW8jypcL1xuICAgICAgICAg\nICAgcnVsZVVybHMgPSBbe1xuICAgICAgICAgICAgICAgIGlkOiAxLFxuICAgICAgICAgICAgICAg\nIHVybDogZGF0YSAmJiBkYXRhLndlZGF0YTJnaXRodWIgPyAnaHR0cHM6XC9cL2hvb3RoaW4uZ2l0\naHViLmlvXC9Vc2VyU2NyaXB0c1wvUGFnZXR1YWxcL2l0ZW1zX2FsbC5qc29uJyA6ICdodHRwOlwv\nXC93ZWRhdGEubmV0XC9kYXRhYmFzZXNcL0F1dG9QYWdlcml6ZVwvaXRlbXNfYWxsLmpzb24nLFxu\nICAgICAgICAgICAgICAgIHR5cGU6IDAsXG4gICAgICAgICAgICB9XTtcbiAgICAgICAgICAgIGlm\nIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgcnVsZXNEYXRhID0gZGF0YTtcbiAgICAgICAgICAg\nICAgICBpZiAoZGF0YS51cmxzKSBydWxlVXJscyA9IHJ1bGVVcmxzLmNvbmNhdChkYXRhLnVybHMp\nO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLnNvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAg\nbGV0IHVybHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5zb3J0LmZvckVhY2goaWQg\nPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcyA9IDA7IHMgPCBydWxlVXJs\ncy5sZW5ndGg7IHMrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZCA9PSBy\ndWxlVXJsc1tzXS5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzLnB1\nc2gocnVsZVVybHNbc10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBydWxlVXJscyA9\nIHVybHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYg\nKHJ1bGVzRGF0YS5sYW5nKSB7XG4gICAgICAgICAgICAgICAgc2V0TGFuZyhydWxlc0RhdGEubGFu\nZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocnVsZXNEYXRhLmZpcnN0UnVuICYm\nIHN0b3JhZ2Uuc3VwcG9ydENyb3NzU2F2ZSgpKSB7XG4gICAgICAgICAgICAgICAgcnVsZXNEYXRh\nLmZpcnN0UnVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5zZXRJdGVtKFwicnVs\nZXNEYXRhXCIsIHJ1bGVzRGF0YSk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7\nXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UuZ2V0SXRlbShcInJ1bGVzRGF0YVwiLCBkYXRh\nID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmZpcnN0UnVuID09PSBmYWxz\nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9HTV9vcGVuSW5UYWIoZmlyc3RSdW5Q\nYWdlLCB7YWN0aXZlOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgICBfR01fcmVnaXN0ZXJNZW51Q29tbWFuZChpMThuKFwiY29uZmlndXJlXCIp\nLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgX0dNX29wZW5JblRhYihydWxlc0RhdGEuY29uZmln\nUGFnZSB8fCBjb25maWdQYWdlWzBdLCB7YWN0aXZlOiB0cnVlfSk7XG4gICAgICAgICAgICB9KTtc\nbiAgICAgICAgICAgIGlmIChydWxlc0RhdGEuYmxhY2tsaXN0ICYmIHJ1bGVzRGF0YS5ibGFja2xp\nc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxldCBocmVmID0gbG9jYXRpb24uaHJl\nZi5zbGljZSgwLCA1MDApO1xuICAgICAgICAgICAgICAgIGxldCBjb21tZW50U3RhcnQgPSBmYWxz\nZTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJ1bGVzRGF0YS5ibGFja2xp\nc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGN1ckdsb2IgPSBydWxl\nc0RhdGEuYmxhY2tsaXN0W2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWN1ckdsb2IpIGNv\nbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyR2xvYi5pbmRleE9mKFwiXC9cL1wi\nKSA9PSAwKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbW1lbnRTdGFydCkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFwvXFwqXFxcLyRcLy50ZXN0KGN1ckdsb2Ip\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudFN0YXJ0ID0gZmFsc2U7XG4g\nICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51\nZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyR2xv\nYi5pbmRleE9mKFwiXC8qXCIpID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1l\nbnRTdGFydCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY3VyR2xvYi5pbmRleE9m\nKFwiXC9cIikgPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZ01hdGNoID0g\nY3VyR2xvYi5tYXRjaChcL15cXFwvKC4qKVxcXC8oXFx3KikkXC8pO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKHJlZ01hdGNoICYmIG5ldyBSZWdFeHAocmVnTWF0Y2hbMV0sIHJlZ01hdGNo\nWzJdKS50ZXN0KGhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VTdGF0\nZSA9PSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnbG9iTWF0Y2go\nY3VyR2xvYiwgaHJlZikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlU3RhdGUgPT0g\nMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9HTV9yZWdp\nc3Rlck1lbnVDb21tYW5kKGkxOG4oXCJlZGl0Q3VycmVudFwiKSwgKCkgPT4ge1xuICAgICAgICAg\nICAgICAgIHBpY2tlci5zdGFydCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBydWxl\nUGFyc2VyLmluaXRTYXZlZFJ1bGVzKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQg\ndXBCdG5JbWcgPSBydWxlc0RhdGEudXBCdG5JbWcsIGRvd25CdG5JbWcgPSBydWxlc0RhdGEuZG93\nbkJ0bkltZywgX3NpZGVDb250cm9sbGVySWNvbiA9IHJ1bGVzRGF0YS5zaWRlQ29udHJvbGxlcklj\nb247XG4gICAgICAgICAgICAgICAgaWYgKHVwQnRuSW1nICYmIGRvd25CdG5JbWcpIHtcbiAgICAg\nICAgICAgICAgICAgICAgZG93blN2Z0NTUyA9IGRvd25TdmdDU1MucmVwbGFjZShcInRyYW5zZm9y\nbTogcm90YXRlKDE4MGRlZyk7XCIsIFwiXCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAo\ndXBCdG5JbWcgJiYgIWRvd25CdG5JbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgZG93bkJ0bklt\nZyA9IHVwQnRuSW1nO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZihkb3duQnRuSW1nICYmICF1\ncEJ0bkltZykge1xuICAgICAgICAgICAgICAgICAgICB1cEJ0bkltZyA9IGRvd25CdG5JbWc7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh1cEJ0bkltZykge1xuICAgICAg\nICAgICAgICAgICAgICB1cFN2ZyA9IFwvaHR0cHM\/OnxkYXRhXC8udGVzdCh1cEJ0bkltZykgPyBg\nPGltZyBjbGFzcz1cInBhZ2V0dWFsXCIgc3JjPVwiJHt1cEJ0bkltZ31cIlwvPmAgOiBgPHNwYW4+\nJHt1cEJ0bkltZ308XC9zcGFuPmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIGlmIChkb3duQnRuSW1nKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvd25TdmcgPSBcL2h0dHBz\nPzp8ZGF0YVwvLnRlc3QoZG93bkJ0bkltZykgPyBgPGltZyBjbGFzcz1cInBhZ2V0dWFsXCIgc3Jj\nPVwiJHtkb3duQnRuSW1nfVwiXC8+YCA6IGA8c3Bhbj4ke2Rvd25CdG5JbWd9PFwvc3Bhbj5gO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoX3NpZGVDb250cm9sbGVySWNv\nbikge1xuICAgICAgICAgICAgICAgICAgICBzaWRlQ29udHJvbGxlckljb24gPSBcL2h0dHBzPzp8\nZGF0YVwvLnRlc3QoX3NpZGVDb250cm9sbGVySWNvbikgPyBgPGltZyBjbGFzcz1cInBhZ2V0dWFs\nXCIgc3JjPVwiJHtfc2lkZUNvbnRyb2xsZXJJY29ufVwiXC8+YCA6IGA8c3Bhbj4ke19zaWRlQ29u\ndHJvbGxlckljb259PFwvc3Bhbj5gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAg\nICBzZXRMb2FkaW5nRGl2KHJ1bGVzRGF0YS5sb2FkaW5nVGV4dCB8fCBpMThuKFwibG9hZGluZ1Rl\neHRcIikpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YocnVsZXNEYXRhLm9wYWNpdHkpID09\nIFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNEYXRhLm9wYWNpdHkg\nPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKHJ1bGVz\nRGF0YS5oaWRlQmFyKSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1\nbGVzRGF0YS5oaWRlQmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgIGlmICh0eXBlb2YocnVsZXNEYXRhLmRiQ2xpY2syU3RvcCkgPT0gXCJ1bmRlZmluZWRcIikg\ne1xuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEuZGJDbGljazJTdG9wID0gdHJ1ZTtcbiAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihydWxlc0RhdGEuZW5h\nYmxlV2hpdGVMaXN0KSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1\nbGVzRGF0YS5lbmFibGVXaGl0ZUxpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgaWYgKHR5cGVvZihydWxlc0RhdGEuZW5hYmxlSGlzdG9yeSkgPT0gXCJ1bmRl\nZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEuZW5hYmxlSGlzdG9yeSA9\nIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKHJ1\nbGVzRGF0YS5vcGVuSW5OZXdUYWIpID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAg\nICAgICAgcnVsZXNEYXRhLm9wZW5Jbk5ld1RhYiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKHJ1bGVzRGF0YS5lbmFibGVEZWJ1ZykgPT0gXCJ1\nbmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEuZW5hYmxlRGVidWcg\nPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKHJ1\nbGVzRGF0YS51cGRhdGVOb3RpZmljYXRpb24pID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAg\nICAgICAgICAgICAgcnVsZXNEYXRhLnVwZGF0ZU5vdGlmaWNhdGlvbiA9IHRydWU7XG4gICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YocnVsZXNEYXRhLmluaXRSdW4p\nID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNEYXRhLmluaXRS\ndW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9m\nKHJ1bGVzRGF0YS5wcmVsb2FkKSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAg\nICAgIHJ1bGVzRGF0YS5wcmVsb2FkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgIGlmICh0eXBlb2YocnVsZXNEYXRhLmN1c3RvbUZpcnN0KSA9PSBcInVuZGVmaW5l\nZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzRGF0YS5jdXN0b21GaXJzdCA9IGZhbHNl\nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mKHJ1bGVzRGF0\nYS5tYW51YWxNb2RlKSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1\nbGVzRGF0YS5tYW51YWxNb2RlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIGlmICh0eXBlb2YocnVsZXNEYXRhLmNsaWNrTW9kZSkgPT0gXCJ1bmRlZmluZWRcIikg\ne1xuICAgICAgICAgICAgICAgICAgICBydWxlc0RhdGEuY2xpY2tNb2RlID0gZmFsc2U7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YocnVsZXNEYXRhLnBhZ2VC\nYXJNZW51KSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzRGF0\nYS5wYWdlQmFyTWVudSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIGlmICh0eXBlb2YocnVsZXNEYXRhLmFycm93VG9TY3JvbGwpID09IFwidW5kZWZpbmVkXCIpIHtc\nbiAgICAgICAgICAgICAgICAgICAgcnVsZXNEYXRhLmFycm93VG9TY3JvbGwgPSBmYWxzZTtcbiAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihydWxlc0RhdGEuaGlk\nZUxvYWRpbmdJY29uKSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1\nbGVzRGF0YS5oaWRlTG9hZGluZ0ljb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgaWYgKHR5cGVvZihydWxlc0RhdGEuaGlkZUJhckFycm93KSA9PSBcInVuZGVm\naW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzRGF0YS5oaWRlQmFyQXJyb3cgPSBm\nYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihydWxl\nc0RhdGEubGFzdFBhZ2VUaXBzKSA9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAg\nICAgIHJ1bGVzRGF0YS5sYXN0UGFnZVRpcHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICBpZiAodHlwZW9mKHJ1bGVzRGF0YS5yYXRlKSA9PSBcInVuZGVmaW5lZFwi\nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzRGF0YS5yYXRlID0gMTtcbiAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgcmF0ZSA9IHJ1bGVzRGF0YS5yYXRlO1xuICAgICAgICAg\nICAgICAgIGlmIChydWxlc0RhdGEuYXV0b0xvYWROdW0gJiYgcnVsZXNEYXRhLmluaXRSdW4pIHtc\nbiAgICAgICAgICAgICAgICAgICAgYXV0b0xvYWROdW0gPSBwYXJzZUludChydWxlc0RhdGEuYXV0\nb0xvYWROdW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcGVuSW5OZXdU\nYWIgPSBydWxlc0RhdGEub3BlbkluTmV3VGFiID8gMSA6IDA7XG4gICAgICAgICAgICAgICAgZW5h\nYmxlRGVidWcgPSBydWxlc0RhdGEuZW5hYmxlRGVidWc7XG5cbiAgICAgICAgICAgICAgICBsZXQg\nX25leHRTd2l0Y2ggPSBhd2FpdCBnZXRMaXN0RGF0YShcIm5leHRTd2l0Y2hcIiwgbG9jYXRpb24u\naG9zdCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihfbmV4dFN3aXRjaCkgIT09IFwidW5k\nZWZpbmVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dEluZGV4ID0gX25leHRTd2l0Y2gg\nfHwgMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgX2ZvcmNlU3Rh\ndGUgPSBhd2FpdCBnZXRMaXN0RGF0YShcImZvcmNlU3RhdGVcIiwgbG9jYXRpb24uaG9zdCk7XG4g\nICAgICAgICAgICAgICAgaWYgKHR5cGVvZihfZm9yY2VTdGF0ZSkgPT0gXCJ1bmRlZmluZWRcIikg\ne1xuICAgICAgICAgICAgICAgICAgICBfZm9yY2VTdGF0ZSA9IGF3YWl0IGdldERhdGEoXCJmb3Jj\nZVN0YXRlX1wiICsgbG9jYXRpb24uaG9zdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIGlmICh0eXBlb2YoX2ZvcmNlU3RhdGUpID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAg\nICAgICAgICAgICAgICAgX2ZvcmNlU3RhdGUgPSAocnVsZXNEYXRhLmVuYWJsZVdoaXRlTGlzdCA\/\nIDEgOiAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yY2VTdGF0ZSA9\nIF9mb3JjZVN0YXRlO1xuXG4gICAgICAgICAgICAgICAgYXV0b1Njcm9sbCA9IGF3YWl0IGdldExp\nc3REYXRhKFwiYXV0b1Njcm9sbFwiLCBsb2NhdGlvbi5ob3N0ICsgbG9jYXRpb24ucGF0aG5hbWUp\nIHx8IDA7XG5cbiAgICAgICAgICAgICAgICB1cGRhdGVEYXRlID0gYXdhaXQgZ2V0RGF0YShcInJ1\nbGVMYXN0VXBkYXRlXCIpO1xuXG4gICAgICAgICAgICAgICAgbGV0IF9sb2FkTm93TnVtID0gYXdh\naXQgZ2V0RGF0YShcImxvYWROb3dOdW1cIik7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihf\nbG9hZE5vd051bSkgIT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgICAgICAgICBsb2Fk\nTm93TnVtID0gX2xvYWROb3dOdW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIGxldCBfYXV0b1Njcm9sbFJhdGUgPSBhd2FpdCBnZXREYXRhKFwiYXV0b1Njcm9sbFJhdGVcIik7\nXG4gICAgICAgICAgICAgICAgaWYgKF9hdXRvU2Nyb2xsUmF0ZSkge1xuICAgICAgICAgICAgICAg\nICAgICBhdXRvU2Nyb2xsUmF0ZSA9IF9hdXRvU2Nyb2xsUmF0ZTtcbiAgICAgICAgICAgICAgICB9\nXG5cbiAgICAgICAgICAgICAgICBhdXRob3IgPSBhd2FpdCBnZXREYXRhKFwiYXV0aG9yXCIpIHx8\nIFwiXCI7XG5cbiAgICAgICAgICAgICAgICBtYW51YWxQYXVzZSA9ICEhYXdhaXQgZ2V0TGlzdERh\ndGEoXCJwYXVzZVN0YXRlXCIsIGxvY2F0aW9uLmhvc3QpO1xuXG4gICAgICAgICAgICAgICAgbGV0\nIGhyZWYgPSBsb2NhdGlvbi5ocmVmLnNsaWNlKDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgdHJ5\nIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKF91bnNhZmVXaW5kb3cuaW5pdGVkUGFnZXR1YWwp\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChydWxlSW1wb3J0VXJsUmVnLnRlc3QoaHJl\nZikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKCdkdXBsaWNh\ndGUnKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAg\nICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgX3Vu\nc2FmZVdpbmRvdy5pbml0ZWRQYWdldHVhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBjYXRj\naChlKSB7c2hvd1RpcHMoZSl9XG4gICAgICAgICAgICAgICAgbGlzdGVuVXJsKCk7XG4gICAgICAg\nICAgICAgICAgX0dNX3JlZ2lzdGVyTWVudUNvbW1hbmQoaTE4bihcInVwZGF0ZVwiKSwgKCkgPT4g\ne1xuICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThuKFwiYmVnaW5VcGRhdGVcIiksIFwi\nXCIsIDYwMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlUnVsZXMoKCkgPT4ge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgc2hvd1RpcHMoaTE4bihcInVwZGF0ZVN1Y2NcIikpO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAg\nICAgIH0sKHJ1bGUsIGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RpcHMo\nYEZhaWxlZCB0byB1cGRhdGUgJHtydWxlLnVybH0gcnVsZXMhYCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBkZWJ1ZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAg\nICAgICB9KTtcbiAgICAgICAgICAgICAgICBfR01fcmVnaXN0ZXJNZW51Q29tbWFuZChpMThuKGZv\ncmNlU3RhdGUgPT0gMSA\/IFwiZW5hYmxlXCIgOiBcImRpc2FibGVTaXRlXCIpLCAoKSA9PiB7XG4g\nICAgICAgICAgICAgICAgICAgIGlmIChmb3JjZVN0YXRlID09IDEpIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGZvcmNlU3RhdGUgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1Rp\ncHMoaTE4bihcImVuYWJsZVNpdGVUaXBzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNo\nYW5nZVN0b3AoZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgZm9yY2VTdGF0ZSA9IDE7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBzaG93VGlwcyhpMThuKFwiZGlzYWJsZVNpdGVUaXBzXCIpKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGNoYW5nZVN0b3AodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaWRl\nQ29udHJvbGxlci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgICAgICBzZXRMaXN0RGF0YShcImZvcmNlU3RhdGVcIiwgbG9jYXRpb24uaG9zdCwgZm9yY2VT\ndGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcnVsZVBhcnNlci5jdXJTaXRlUnVsZS51\ncmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIH0pO1xuICAgICAgICAgICAgICAgIGlmIChmb3JjZVN0YXRlID09IDEpIHtcbiAgICAgICAgICAg\nICAgICAgICAgbGV0IHRlbXBBY3RpdmUgPSBhd2FpdCBnZXRMaXN0RGF0YShcInRlbXBBY3RpdmVc\nIiwgbG9jYXRpb24uaG9zdCArIGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICAgICAgICAgICAgICAg\nICAgaWYgKHRlbXBBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldExpc3REYXRh\nKFwidGVtcEFjdGl2ZVwiLCBsb2NhdGlvbi5ob3N0ICsgbG9jYXRpb24ucGF0aG5hbWUsIFwiXCIp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VTdGF0ZSA9IDA7XG4gICAgICAgICAgICAg\nICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfR01fcmVnaXN0ZXJNZW51\nQ29tbWFuZChpMThuKFwidGVtcEFjdGl2ZVwiKSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChmb3JjZVN0YXRlID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZm9yY2VTdGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIHNob3dUaXBzKGkxOG4oXCJlbmFibGVTaXRlVGlwc1wiKSk7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGNoYW5nZVN0b3AoZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBzZXRMaXN0RGF0YShcInRlbXBBY3RpdmVcIiwgbG9jYXRpb24uaG9zdCAr\nIGxvY2F0aW9uLnBhdGhuYW1lLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgaWYgKCFydWxlUGFyc2VyLmN1clNpdGVSdWxlLnVybCkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAg\nICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgX0dNX3JlZ2lzdGVyTWVudUNvbW1hbmQoaTE4bihcInRvZ2dsZUF1dG9TY3Jv\nbGxcIiksICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYXV0b1Njcm9sbCA9IChhdXRvU2Ny\nb2xsID8gMCA6IHByb21wdChpMThuKFwiYXV0b1Njcm9sbFJhdGVcIiksIGF1dG9TY3JvbGxSYXRl\nKSkgfHwgMDtcbiAgICAgICAgICAgICAgICAgICAgYXV0b1Njcm9sbCA9IHBhcnNlSW50KGF1dG9T\nY3JvbGwpIHx8IDA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvU2Nyb2xsIDwgMCkgYXV0\nb1Njcm9sbCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvU2Nyb2xsICYmIGF1dG9T\nY3JvbGwgIT0gYXV0b1Njcm9sbFJhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9T\nY3JvbGxSYXRlID0gYXV0b1Njcm9sbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uu\nc2V0SXRlbShcImF1dG9TY3JvbGxSYXRlXCIsIGF1dG9TY3JvbGxSYXRlKTtcbiAgICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZXRMaXN0RGF0YShcImF1dG9TY3JvbGxc\nIiwgbG9jYXRpb24uaG9zdCArIGxvY2F0aW9uLnBhdGhuYW1lLCBhdXRvU2Nyb2xsKTtcbiAgICAg\nICAgICAgICAgICAgICAgc3RhcnRBdXRvU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4g\nICAgICAgICAgICAgICAgc3RhcnRBdXRvU2Nyb2xsKCk7XG5cblxuICAgICAgICAgICAgICAgIGlm\nIChpbml0Q29uZmlnKGhyZWYpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2\nZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChlLnRhcmdldCAmJiB0eXBlb2YgZS50YXJnZXQuZGF0YXNldC5wYWdldHVhbFBpY2tlciAhPT0g\nJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZh\ndWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWNrZXIuc3RhcnQoKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAg\nICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFnZVJlYWR5\nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZm9yY2VTdGF0ZSA9PSAxKSByZXR1cm47XG4g\nICAgICAgICAgICAgICAgbGV0IG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICAg\nICAgICAgIGlmICghdXBkYXRlRGF0ZSB8fCBub3cgLSB1cGRhdGVEYXRlID4gMiAqIDI0ICogNjAg\nKiA2MCAqIDEwMDApIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlUnVsZXMoKCkgPT4ge1xu\nICAgICAgICAgICAgICAgICAgICB9LCAocnVsZSwgZXJyKSA9PiB7fSwgdHJ1ZSk7XG4gICAgICAg\nICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInJ1bGVMYXN0VXBkYXRlXCIsIG5vdyk7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAg\nICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IHhockZhaWxlZCA9IGZhbHNlO1xu\nICAgIGZ1bmN0aW9uIHJlcXVlc3REb2ModXJsLCBjYWxsYmFjaykge1xuICAgICAgICBsZXQgcG9z\ndFBhcmFtcyA9IHVybC5tYXRjaChcLyNweyguKil9JFwvKTtcbiAgICAgICAgaWYgKHBvc3RQYXJh\nbXMpIHtcbiAgICAgICAgICAgIHBvc3RQYXJhbXMgPSBwb3N0UGFyYW1zWzFdO1xuICAgICAgICAg\nICAgdXJsID0gdXJsLnJlcGxhY2UoXC8jcHsuKlwvLCBcIlwiKTtcbiAgICAgICAgfVxuICAgICAg\nICBsZXQgcnVsZUhlYWRlcnMgPSBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmhlYWRlcnM7XG4gICAg\nICAgIGxldCBoZWFkZXJzID0ge1xuICAgICAgICAgICAgJ1JlZmVyZXInOiBsb2NhdGlvbi5ocmVm\nLFxuICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBuYXZpZ2F0b3IudXNlckFnZW50LFxuICAgICAg\nICAgICAgJ2FjY2VwdCc6ICd0ZXh0XC9odG1sLGFwcGxpY2F0aW9uXC94aHRtbCt4bWwsYXBwbGlj\nYXRpb25cL3htbCcsXG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiAocG9zdFBhcmFtcyA\/\nIFwiYXBwbGljYXRpb25cL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiIDogXCJ0ZXh0XC9odG1sXCIp\nICsgXCI7Y2hhcnNldD1cIiArIGNoYXJzZXQsXG4gICAgICAgIH07XG4gICAgICAgIGlmIChydWxl\nSGVhZGVycykge1xuICAgICAgICAgICAgaWYgKHJ1bGVIZWFkZXJzLnJlZmVyZXIpIHtcbiAgICAg\nICAgICAgICAgICBoZWFkZXJzLnJlZmVyZXIgPSBydWxlSGVhZGVycy5yZWZlcmVyO1xuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGVIZWFkZXJzLnVzZXJBZ2VudCkge1xuICAgICAg\nICAgICAgICAgIGhlYWRlcnMudXNlckFnZW50ID0gcnVsZUhlYWRlcnMudXNlckFnZW50O1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGVIZWFkZXJzLmFjY2VwdCkge1xuICAgICAg\nICAgICAgICAgIGhlYWRlcnMuYWNjZXB0ID0gcnVsZUhlYWRlcnMuYWNjZXB0O1xuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGVIZWFkZXJzLmNvbnRlbnRUeXBlKSB7XG4gICAgICAg\nICAgICAgICAgaGVhZGVycy5jb250ZW50VHlwZSA9IHJ1bGVIZWFkZXJzLmNvbnRlbnRUeXBlO1xu\nICAgICAgICAgICAgICAgIGxldCBydWxlQ2hhcnNldCA9IHJ1bGVIZWFkZXJzLmNvbnRlbnRUeXBl\nLm1hdGNoKFwvY2hhcnNldFxcPShbXjtdKylcLyk7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVD\naGFyc2V0KSBjaGFyc2V0ID0gcnVsZUNoYXJzZXRbMV07XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICBpZiAocnVsZUhlYWRlcnMuY29va2llKSB7XG4gICAgICAgICAgICAgICAgaGVhZGVycy5j\nb29raWUgPSBydWxlSGVhZGVycy5jb29raWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAg\nICAgICAgX0dNX3htbGh0dHBSZXF1ZXN0KHtcbiAgICAgICAgICAgIHVybDogdXJsLFxuICAgICAg\nICAgICAgbWV0aG9kOiBwb3N0UGFyYW1zID8gJ1BPU1QnIDogJ0dFVCcsXG4gICAgICAgICAgICBk\nYXRhOiBwb3N0UGFyYW1zLFxuICAgICAgICAgICAgb3ZlcnJpZGVNaW1lVHlwZTogJ3RleHRcL2h0\nbWw7Y2hhcnNldD0nICsgY2hhcnNldCxcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4g\nICAgICAgICAgICB0aW1lb3V0OiA1MDAwMCxcbiAgICAgICAgICAgIG9ubG9hZDogYXN5bmMgZnVu\nY3Rpb24ocmVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUGF1c2UpIHJldHVybiBjYWxsYmFj\nayhmYWxzZSk7XG4gICAgICAgICAgICAgICAgdmFyIGRvYyA9IG51bGwsIHJlc3BvbnNlID0gcmVz\nLnJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRv\nYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgnJyk7XG4gICAg\nICAgICAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MID0gcmVzcG9uc2U7\nXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBkZWJ1\nZygncGFyc2UgZXJyb3I6JyArIGUudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgICAgIGxldCBwYWdlRWxlbWVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0\nIHByZUNvZGUgPSBydWxlUGFyc2VyLmN1clNpdGVSdWxlLnBhZ2VQcmU7XG4gICAgICAgICAgICAg\nICAgaWYgKHByZUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGxldCBwcmVSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAo\ndHlwZW9mIHByZUNvZGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHByZVJlc3VsdCA9IGF3YWl0IHByZUNvZGUocmVzcG9uc2UsIGRvYyk7XG4gICAgICAgICAg\nICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZUNvZGUubGVuZ3RoID09IDIpIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBwcmVSZXN1bHQgPSByZXNwb25zZS5yZXBsYWNlKG5ldyBSZWdF\neHAocHJlQ29kZVswXSwgXCJnaVwiKSwgcHJlQ29kZVsxXSk7XG4gICAgICAgICAgICAgICAgICAg\nICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZVJlc3VsdCA9IGF3\nYWl0IG5ldyBBc3luY0Z1bmN0aW9uKFwicmVzcG9uc2VcIiwgXCJkb2NcIiwgJ1widXNlIHN0cmlj\ndFwiOycgKyBwcmVDb2RlKShyZXNwb25zZSwgZG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJlUmVzdWx0ICE9PSBcInVu\nZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmVS\nZXN1bHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nZG9jLmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwgPSBwcmVSZXN1bHQ7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgfSBlbHNlIHBhZ2VFbGVtZW50ID0gcHJlUmVzdWx0O1xuICAgICAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBiYXNlID0gZG9jLnF1ZXJ5U2VsZWN0\nb3IoXCJiYXNlXCIpO1xuICAgICAgICAgICAgICAgIHJ1bGVQYXJzZXIuYmFzZVBhdGggPSAoYmFz\nZSAmJiBiYXNlLmhyZWYpIHx8IHVybDtcbiAgICAgICAgICAgICAgICBpZiAoY2hhcnNldFZhbGlk\nICYmICFydWxlSGVhZGVycykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXF1aXYgPSBkb2Mu\ncXVlcnlTZWxlY3RvcignW2h0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIl0nKTtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKGVxdWl2ICYmIGVxdWl2LmNvbnRlbnQpIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGxldCBpbm5lckNoYXJTZXQgPSBlcXVpdi5jb250ZW50Lm1hdGNoKFwvY2hhcnNl\ndFxcPShbXjtdKylcLyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5uZXJDaGFyU2V0\nICYmIGlubmVyQ2hhclNldFsxXS5yZXBsYWNlKFwiLVwiLCBcIlwiKS50b0xvd2VyQ2FzZSgpICE9\nIGNoYXJzZXQucmVwbGFjZShcIi1cIiwgXCJcIikudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSBpbm5lckNoYXJTZXRbMV07XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3REb2ModXJsLCBjYWxsYmFjayk7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VFbGVtZW50ID09PSBudWxsKSB7XG4gICAg\nICAgICAgICAgICAgICAgIHBhZ2VFbGVtZW50ID0gcnVsZVBhcnNlci5nZXRQYWdlRWxlbWVudChk\nb2MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKCFwYWdlRWxlbWVu\ndCB8fCBwYWdlRWxlbWVudC5sZW5ndGggPT0gMCkgJiYgcmVzLnN0YXR1cyA+PSA0MDApIHtcbiAg\nICAgICAgICAgICAgICAgICAgZGVidWcocmVzLnN0YXR1cyArIFwiIFwiICsgdXJsICsgXCIgXCIg\nKyByZXNwb25zZSwgXCJFcnJvciBzdGF0dXNcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICgh\ncnVsZVBhcnNlci5jdXJTaXRlUnVsZS5zbWFydCB8fCAheGhyRmFpbGVkKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICB4aHJGYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAg\ncmV0dXJuIGNhbGxiYWNrKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5Db3JzICYmICghcGFnZUVsZW1lbnQgfHwg\ncGFnZUVsZW1lbnQubGVuZ3RoID09IDApICYmIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc21hcnQp\nIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFydGljbGU7XG4gICAgICAgICAgICAgICAgICAg\nIGZvciAobGV0IGkgPSAwOyBpIDwgbWFpblNlbC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgYXJ0aWNsZSA9IGRvYy5xdWVyeVNlbGVjdG9yQWxsKG1haW5TZWxbaV0pO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFydGljbGUgJiYgYXJ0aWNsZS5sZW5ndGggPT09\nIDEpIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlm\nIChhcnRpY2xlICYmIGFydGljbGUubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIGFydGljbGUgPSBhcnRpY2xlWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVBh\ncnNlci5jdXJTaXRlUnVsZS5wYWdlRWxlbWVudCA9IGFydGljbGUubm9kZU5hbWUudG9Mb3dlckNh\nc2UoKSArIChhcnRpY2xlLmlkID8gXCIjXCIgKyBhcnRpY2xlLmlkIDogXCJcIikgKyAoYXJ0aWNs\nZS5jbGFzc05hbWUgPyBcIi5cIiArIGFydGljbGUuY2xhc3NOYW1lLnJlcGxhY2UoXC8gXC9nLCBc\nIi5cIikgOiBcIlwiKSArIFwiPipcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VFbGVt\nZW50ID0gYXJ0aWNsZS5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnQg\nPSBhbGxPZkJvZHk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlRWxlbWVudCA9IHJ1bGVQ\nYXJzZXIuZ2V0UGFnZUVsZW1lbnQoZG9jKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgICAgICBydWxlUGFyc2VyLmdldEluc2VydCh0cnVlKTtcbiAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgXC9cL+WPquaciTHnmoToqbHmgJXkuI3mmK\/lnJbniYflk6Zc\nbiAgICAgICAgICAgICAgICBpZiAocGFnZUVsZW1lbnQgJiYgKHBhZ2VFbGVtZW50Lmxlbmd0aCA+\nIDEgfHwgKHBhZ2VFbGVtZW50Lmxlbmd0aCA9PSAxICYmICFjb21wYXJlTm9kZU5hbWUocGFnZUVs\nZW1lbnRbMF0sIFtcImltZ1wiXSkpKSkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBydWxl\nUGFyc2VyLmluc2VydFBhZ2UoZG9jLCBwYWdlRWxlbWVudCwgdXJsLCBjYWxsYmFjaywgZmFsc2Up\nO1xuICAgICAgICAgICAgICAgICAgICBpZiAocnVsZVBhcnNlci5jdXJTaXRlUnVsZS5hY3Rpb24g\nPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHJlcXVlc3RGcm9tSWZyYW1lKHVybCwgYXN5bmMgKGRvYywgZWxl\ncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVzKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHJ1bGVQYXJzZXIuaW5zZXJ0UGFnZShkb2Ms\nIGVsZXMsIHVybCwgY2FsbGJhY2ssIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIH0gZWxzZSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xu\nICAgICAgICAgICAgICAgICAgICB9IGVsc2UgcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5hY3Rpb24g\nPSAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUu\nc21hcnQgfHwgY3VyUGFnZSA9PSAxKSAmJiAhaW5Db3JzKSB7XG4gICAgICAgICAgICAgICAgICAg\nIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuYWN0aW9uID0gMTtcbiAgICAgICAgICAgICAgICAgICAg\ncmVxdWVzdEZyb21JZnJhbWUodXJsLCBhc3luYyAoZG9jLCBlbGVzKSA9PiB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBpZiAoZWxlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3\nYWl0IHJ1bGVQYXJzZXIuaW5zZXJ0UGFnZShkb2MsIGVsZXMsIHVybCwgY2FsbGJhY2ssIHRydWUp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlzTG9hZGluZyA9IGZhbHNlO1xuICAg\nICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAg\nICAgICAgICAgICBkZWJ1ZyhcIlN0b3AgYXMgbm8gcGFnZSBlbGVtZW50XCIpO1xuICAgICAgICAg\nICAgICAgICAgICBydWxlUGFyc2VyLm5vVmFsaWRDb250ZW50KHVybCk7XG4gICAgICAgICAgICAg\nICAgICAgIGNoYW5nZVN0b3AodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGZh\nbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25l\ncnJvcjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIGRlYnVnKGUsIFwiTmV0RXJyb3Jc\nIik7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UpO1xuICAgICAgICAgICAgfSxcbiAg\nICAgICAgICAgIG9udGltZW91dDogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIGRlYnVn\nKGUsIFwiTmV0VGltZW91dFwiKTtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSk7XG4g\nICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluaXRQYWdl\nKCkge1xuICAgICAgICBydWxlUGFyc2VyLmluaXRQYWdlKCgpID0+IHtcbiAgICAgICAgICAgIGlm\nIChydWxlUGFyc2VyLmN1clNpdGVSdWxlLmF1dG9Mb2FkTnVtKSB7XG4gICAgICAgICAgICAgICAg\nYXV0b0xvYWROdW0gPSBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmF1dG9Mb2FkTnVtO1xuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUubmV4dExpbmsg\nJiYgQXJyYXkgJiYgQXJyYXkuaXNBcnJheSAmJiBBcnJheS5pc0FycmF5KHJ1bGVQYXJzZXIuY3Vy\nU2l0ZVJ1bGUubmV4dExpbmspKSB7XG4gICAgICAgICAgICAgICAgX0dNX3JlZ2lzdGVyTWVudUNv\nbW1hbmQoaTE4bihcIm5leHRTd2l0Y2hcIiksICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAg\nbmV4dFN3aXRjaC5zdGFydCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIubmV4dExpbmtIcmVmKSB7XG4gICAgICAgICAgICAg\nICAgbGV0IGlzSnMgPSBydWxlUGFyc2VyLmhyZWZJc0pzKHJ1bGVQYXJzZXIubmV4dExpbmtIcmVm\nKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzSnMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0\nIGluRm9yY2UgPSAoZm9yY2VTdGF0ZSA9PSAyIHx8IGZvcmNlU3RhdGUgPT0gMyk7XG4gICAgICAg\nICAgICAgICAgICAgIF9HTV9yZWdpc3Rlck1lbnVDb21tYW5kKGkxOG4oaW5Gb3JjZSA\/IFwiY2Fu\nY2VsRm9yY2VJZnJhbWVcIiA6IFwiZm9yY2VJZnJhbWVcIiksICgpID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGNoYW5nZVN0b3AoZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKGluRm9yY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRMaXN0\nRGF0YShcImZvcmNlU3RhdGVcIiwgbG9jYXRpb24uaG9zdCwgXCJcIik7XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBfc3Rh\ndGUgPSBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmFjdGlvbiA+IDAgfHwgY29uZmlybShpMThuKFwi\nZm9yY2VBbGxCb2R5XCIpKSA\/IDIgOiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl\ndExpc3REYXRhKFwiZm9yY2VTdGF0ZVwiLCBsb2NhdGlvbi5ob3N0LCBfc3RhdGUpO1xuICAgICAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgo\nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4g\nICAgICAgICAgICAgICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICAgICAgICAgICAgICB9KTtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgX0dNX3JlZ2lzdGVyTWVudUNvbW1h\nbmQoaTE4bihcImxvYWROb3dcIiksICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1\ndG9Mb2FkTnVtICE9IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvTG9hZE51bSA9\nIC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgICAgIGxldCBsb2FkTnVtID0gd2luZG93LnByb21wdChpMThu\nKFwibG9hZENvbmZpcm1cIiksIGxvYWROb3dOdW0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAo\nbG9hZE51bSA9PT0gXCJcIiB8fCBsb2FkTnVtID09PSBudWxsKSByZXR1cm47XG4gICAgICAgICAg\nICAgICAgICAgIGxvYWROdW0gPSBNYXRoLmFicyhwYXJzZUludChsb2FkTnVtKSkgfHwgMDtcbiAg\nICAgICAgICAgICAgICAgICAgaWYgKGxvYWROb3dOdW0gIT0gbG9hZE51bSkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgbG9hZE5vd051bSA9IGxvYWROdW07XG4gICAgICAgICAgICAgICAgICAg\nICAgICBzdG9yYWdlLnNldEl0ZW0oXCJsb2FkTm93TnVtXCIsIGxvYWROb3dOdW0pO1xuICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGF1dG9Mb2FkTnVtID0gbG9hZE51\nbTtcbiAgICAgICAgICAgICAgICAgICAgbmV4dFBhZ2UoKTtcbiAgICAgICAgICAgICAgICB9KTtc\nbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGluaXRMaXN0ZW5lcigpO1xuICAgICAgICB9KTtc\nbiAgICB9XG5cbiAgICB2YXIgcGFnZUJhclN0eWxlLCBtYWluU3R5bGVFbGUsIG1haW5TdHlsZVN0\neWxlO1xuICAgIGZ1bmN0aW9uIGluaXRWaWV3KCkge1xuICAgICAgICBpZiAoIW1haW5TdHlsZVN0\neWxlKSB7XG4gICAgICAgICAgICBtYWluU3R5bGVTdHlsZSA9IGBcbiAgICAgICAgIC5wYWdldHVh\nbF9wYWdlQmFye1xuICAgICAgICAgICAtbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZS1pbi1v\ndXQgMHM7XG4gICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlLWluLW91\ndCAwcztcbiAgICAgICAgICAgdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlLWluLW91dCAwcztcbiAg\nICAgICAgICAgZm9udC1mYW1pbHk6IEFyaWFsLHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgICAg\nICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgICAgICB9XG4gICAgICAg\nICAucGFnZXR1YWxfcGFnZUJhci5zdG9wIHtcbiAgICAgICAgICAgLXdlYmtpdC1maWx0ZXI6IGlu\ndmVydCgxMDAlKTtcbiAgICAgICAgICAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7XG4gICAgICAgICAg\nIG9wYWNpdHk6IDEhaW1wb3J0YW50O1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX3Bh\nZ2VCYXIuaGlkZSB7XG4gICAgICAgICAgIGRpc3BsYXk6IG5vbmUhaW1wb3J0YW50O1xuICAgICAg\nICAgfVxuICAgICAgICAgLnBhZ2V0dWFsLWhpZGUge1xuICAgICAgICAgICBkaXNwbGF5OiBub25l\nIWltcG9ydGFudDtcbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVhbF9wYWdlQmFyOmhvdmVy\nIHtcbiAgICAgICAgICAgb3BhY2l0eTogMSFpbXBvcnRhbnQ7XG4gICAgICAgICAgIGJveC1zaGFk\nb3c6IDBweCAwcHggMTBweCAwcHggIzAwMDAwMGFhO1xuICAgICAgICAgICBib3JkZXItcmFkaXVz\nOiAyMHB4O1xuICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQwIDI0MCAyNDAgXC8g\nODAlKTtcbiAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCFpbXBvcnRhbnQ7XG4g\nICAgICAgICB9XG4gICAgICAgICAucGFnZXR1YWxfcGFnZUJhciBzcGFuIHtcbiAgICAgICAgICAg\ndmVydGljYWwtYWxpZ246IHN1cGVyO1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX3Bh\nZ2VCYXIgYTo6YmVmb3JlLFxuICAgICAgICAgLnBhZ2V0dWFsX3BhZ2VCYXIgYTo6YWZ0ZXIge1xu\nICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFs\nX3BhZ2VCYXIgYT5zcGFuIHtcbiAgICAgICAgICAgbWFyZ2luLXRvcDogMCFpbXBvcnRhbnQ7XG4g\nICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICBwYWRkaW5nOiB1bnNl\ndDtcbiAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgLW1vei10cmFuc2l0aW9uOm1h\ncmdpbi10b3AgMC4zcyBlYXNlLWluLW91dCAwcywgb3BhY2l0eSAuM3M7XG4gICAgICAgICAgIC13\nZWJraXQtdHJhbnNpdGlvbjptYXJnaW4tdG9wIDAuM3MgZWFzZS1pbi1vdXQgMHMsIG9wYWNpdHkg\nLjNzO1xuICAgICAgICAgICB0cmFuc2l0aW9uOm1hcmdpbi10b3AgMC4zcyBlYXNlLWluLW91dCAw\ncywgb3BhY2l0eSAuM3M7XG4gICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAg\nbGVmdDogMDtcbiAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlIC0gMjBweCk7XG4gICAg\nICAgICB9XG4gICAgICAgICAucGFnZXR1YWxfcGFnZUJhciBhPnNwYW46aG92ZXIge1xuICAgICAg\nICAgICBjb2xvcjogcmVkO1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX3BhZ2VCYXIg\nYTpob3Zlcj5zcGFuIHtcbiAgICAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICAgICAg\nICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX3BhZ2VCYXIgc3Bhbi5wcmV2U2NyZWVuLFxuICAgICAg\nICAgLnBhZ2V0dWFsX3BhZ2VCYXIgc3Bhbi5uZXh0U2NyZWVuIHtcbiAgICAgICAgICAgZGlzcGxh\neTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgICAgdG9wOiB1bnNldCAhaW1wb3J0YW50O1xu\nICAgICAgICAgICBwYWRkaW5nOiB1bnNldCAhaW1wb3J0YW50O1xuICAgICAgICAgICBvcGFjaXR5\nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICB9XG4gICAgICAgICAucGFnZXR1YWxfcGFnZUJhciBh\nOmhvdmVyPnNwYW4ucHJldlNjcmVlbiB7XG4gICAgICAgICAgIG1hcmdpbi10b3A6IC0ke3J1bGVz\nRGF0YS5vcGFjaXR5ID09IDEgPyAzMSA6IDMwfXB4IWltcG9ydGFudDtcbiAgICAgICAgICAgcG9p\nbnRlci1ldmVudHM6IGFsbDtcbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVhbF9wYWdlQmFy\nIHNwYW4ucmVmcmVzaFJpbmcge1xuICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAg\nICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgaGVpZ2h0\nOiAzMHB4O1xuICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyg1MCUgLSAyM3B4KTtcbiAgICAg\nICAgICAgZGlzcGxheTogYmxvY2shaW1wb3J0YW50O1xuICAgICAgICAgfVxuICAgICAgICAgLnBh\nZ2V0dWFsX3BhZ2VCYXIgc3Bhbi5yZWZyZXNoUmluZz5zdmcge1xuICAgICAgICAgICBiYWNrZ3Jv\ndW5kOiB3aGl0ZTtcbiAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgfVxu\nICAgICAgICAgLnBhZ2V0dWFsX3BhZ2VCYXIgYTpob3Zlcj5zcGFuLnJlZnJlc2hSaW5nIHtcbiAg\nICAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogcGFn\nZXR1YWxfcmluZyAyLjBzIGluZmluaXRlIGxpbmVhcjtcbiAgICAgICAgICAgYW5pbWF0aW9uOiBw\nYWdldHVhbF9yaW5nIDIuMHMgaW5maW5pdGUgbGluZWFyO1xuICAgICAgICAgfVxuICAgICAgICAg\nQC13ZWJraXQta2V5ZnJhbWVzIHBhZ2V0dWFsX3Jpbmcge1xuICAgICAgICAgICAwJSB7IC13ZWJr\naXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgfVxuICAgICAgICAgICAxMDAlIHtcbiAgICAgICAg\nICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgICAgIH1cbiAg\nICAgICAgIH1cbiAgICAgICAgIEBrZXlmcmFtZXMgcGFnZXR1YWxfcmluZyB7XG4gICAgICAgICAg\nIDAlIHtcbiAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICAgICAgICAg\nICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICB9IDEwMCUge1xu\nICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgICAgICAgICAgLXdl\nYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAgICB9XG4gICAgICAgICB9\nXG4gICAgICAgICAucGFnZXR1YWxfcGFnZUJhciBhOmhvdmVyPnNwYW4ubmV4dFNjcmVlbiB7XG4g\nICAgICAgICAgIG1hcmdpbi10b3A6IDMwcHghaW1wb3J0YW50O1xuICAgICAgICAgICBwb2ludGVy\nLWV2ZW50czogYWxsO1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX3BhZ2VCYXIgc3Bh\nbj5zdmcge1xuICAgICAgICAgICAtbW96LXRyYW5zaXRpb246dHJhbnNmb3JtIDAuNXMgZWFzZSwg\nb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjp0cmFuc2Zv\ncm0gMC41cyBlYXNlLCBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAgICAgICAgdHJhbnNpdGlvbjp0\ncmFuc2Zvcm0gMC41IGVhc2UsIG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgICAgICBvcGFjaXR5\nOiAwO1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX3BhZ2VCYXIuc3RvcCBzcGFuPnN2\nZ3tcbiAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVh\nbF9wYWdlQmFyLnN0b3Agc3Bhbj5zdmc+cGF0aHtcbiAgICAgICAgICAgdHJhbnNmb3JtOiBzY2Fs\nZSguOCk7XG4gICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgICAg\nLW1vei10cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gICAgICAgICAgIC13ZWJraXQt\ndHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICAgICAgICAgICB0cmFuc2l0aW9uOnRy\nYW5zZm9ybSAwLjMgZWFzZTtcbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVhbF9wYWdlQmFy\nLnN0b3A6aG92ZXIgc3Bhbj5zdmc+cGF0aHtcbiAgICAgICAgICAgdHJhbnNmb3JtOiB1bnNldDtc\nbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVhbF9wYWdlQmFyOmhvdmVyIHNwYW4+c3ZnIHtc\nbiAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVhbF9w\nYWdlQmFyIHNwYW4+c3ZnLnVwU3ZnOmhvdmVyIHtcbiAgICAgICAgICAgdHJhbnNmb3JtOiByb3Rh\ndGUoMzYwZGVnKSBzY2FsZTNkKDEuMiwgMS4yLCAxLjIpO1xuICAgICAgICAgfVxuICAgICAgICAg\nLnBhZ2V0dWFsX3BhZ2VCYXIgc3Bhbj5zdmcuZG93blN2Zzpob3ZlciB7XG4gICAgICAgICAgIHRy\nYW5zZm9ybTogcm90YXRlKDU0MGRlZykgc2NhbGUzZCgxLjIsIDEuMiwgMS4yKSFpbXBvcnRhbnQ7\nXG4gICAgICAgICB9XG4gICAgICAgICAucGFnZXR1YWxfcGFnZUJhciAucGFnZXR1YWxfcGFnZU51\nbXtcbiAgICAgICAgICAgY29sb3I6ICM1NTU1NWY7XG4gICAgICAgICB9XG4gICAgICAgICAucGFn\nZXR1YWxfcGFnZUJhciAucGFnZXR1YWxfcGFnZU51bTpob3ZlcntcbiAgICAgICAgICAgY29sb3I6\nICNmZjY0NjQ7XG4gICAgICAgICB9XG4gICAgICAgICAucGFnZXR1YWxfdGlwc1dvcmRzIHtcbiAg\nICAgICAgICAgZm9udC1zaXplOiA1MHB4O1xuICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtc\nbiAgICAgICAgICAgZm9udC1mYW1pbHk6IFwi6buR5L2TXCIsIC1hcHBsZS1zeXN0ZW0sIEJsaW5r\nTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIlJvYm90b1wiLFxuICAgICAgICAgICAgIFwi\nT3h5Z2VuXCIsIFwiVWJ1bnR1XCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2Vy\naWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIixcbiAgICAgICAgICAgICBcIlNlZ29lIFVJIEVtb2pp\nXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCI7XG4gICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAg\nICAgICAgICBtaW4taGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICBtYXgtd2lkdGg6IDgwJTtcbiAg\nICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xu\nICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgIHRvcDogMTAlO1xuICAgICAgICAgICBt\nYXJnaW4tbGVmdDogLTk5OTk5cHg7XG4gICAgICAgICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgICAg\nICAgICAgei1pbmRleDogMjE0NzQ4MzY0NztcbiAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog\nIzAwMDtcbiAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMwMzAzMDtcbiAgICAgICAgICAg\nYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAg\nZmlsdGVyOiBhbHBoYShvcGFjaXR5PTY1KTtcbiAgICAgICAgICAgYm94LXNoYWRvdzogNXB4IDVw\neCAyMHB4IDBweCAjMDAwO1xuICAgICAgICAgICAtbW96LXRyYW5zaXRpb246b3BhY2l0eSAwLjNz\nIGVhc2UtaW4tb3V0IDBzO1xuICAgICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAw\nLjNzIGVhc2UtaW4tb3V0IDBzO1xuICAgICAgICAgICB0cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBl\nYXNlLWluLW91dCAwcztcbiAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAg\nICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRl\ncjtcbiAgICAgICAgIH1cbiAgICAgICAgIC5wYWdldHVhbF90aXBzV29yZHM+YSB7XG4gICAgICAg\nICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgfVxuICAgICAgICAgLnBhZ2V0dWFsX2xvYWRp\nbmcge1xuICAgICAgICAgICB3aWR0aDogNTBweDtcbiAgICAgICAgICAgaGVpZ2h0OiA1MHB4O1xu\nICAgICAgICAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgICAgICAgICAgYm9yZGVyLXJhZGl1czog\nMTAwJTtcbiAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgLXdlYmtpdC1hbmlt\nYXRpb246IHBhZ2V0dWFsX2xvYWRpbmdfc2NhbGVvdXQgMS4wcyBpbmZpbml0ZSBlYXNlLWluLW91\ndDtcbiAgICAgICAgICAgYW5pbWF0aW9uOiBwYWdldHVhbF9sb2FkaW5nX3NjYWxlb3V0IDEuMHMg\naW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gICAgICAgICB9XG4gICAgICAgICBALXdlYmtpdC1rZXlm\ncmFtZXMgcGFnZXR1YWxfbG9hZGluZ19zY2FsZW91dCB7XG4gICAgICAgICAgIDAlIHsgLXdlYmtp\ndC10cmFuc2Zvcm06IHNjYWxlKDAuMCkgfVxuICAgICAgICAgICAxMDAlIHtcbiAgICAgICAgICAg\nICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICAgICAgICAgICBvcGFjaXR5OiAw\nO1xuICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICBAa2V5ZnJhbWVzIHBhZ2V0dWFs\nX2xvYWRpbmdfc2NhbGVvdXQge1xuICAgICAgICAgICAwJSB7XG4gICAgICAgICAgICAgdHJhbnNm\nb3JtOiBzY2FsZSgwLjApO1xuICAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgw\nLjApO1xuICAgICAgICAgICB9IDEwMCUge1xuICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUo\nMS4wKTtcbiAgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICAg\nICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgICAu\ncGFnZXR1YWxfbG9hZGluZ190ZXh0IHtcbiAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtc\nbiAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb246IHBhZ2V0dWFsX2xvYWRpbmdfb3BhY2l0eSAy\nLjZzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICBhbmltYXRpb246IHBhZ2V0dWFs\nX2xvYWRpbmdfb3BhY2l0eSAyLjZzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xuICAgICAgICAgfVxu\nICAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHBhZ2V0dWFsX2xvYWRpbmdfb3BhY2l0eSB7XG4g\nICAgICAgICAgIDAlIHsgb3BhY2l0eTogMSB9XG4gICAgICAgICAgIDUwJSB7IG9wYWNpdHk6IDAu\nMiB9XG4gICAgICAgICAgIDEwMCUgeyBvcGFjaXR5OiAxIH1cbiAgICAgICAgIH1cbiAgICAgICAg\nIEBrZXlmcmFtZXMgcGFnZXR1YWxfbG9hZGluZ19vcGFjaXR5IHtcbiAgICAgICAgICAgMCUgeyBv\ncGFjaXR5OiAxIH1cbiAgICAgICAgICAgNTAlIHsgb3BhY2l0eTogMC4yIH1cbiAgICAgICAgICAg\nMTAwJSB7IG9wYWNpdHk6IDEgfVxuICAgICAgICAgfVxuICAgICAgICBgO1xuICAgICAgICAgICAg\ncGFnZUJhclN0eWxlID0gYG92ZXJmbG93OiB2aXNpYmxlO3RleHQtaW5kZW50OiBpbml0aWFsO3Zl\ncnRpY2FsLWFsaWduOiBzdXBlcjtsaW5lLWhlaWdodDoxO29wYWNpdHk6JHtydWxlc0RhdGEub3Bh\nY2l0eX07ZGlzcGxheToke3J1bGVzRGF0YS5vcGFjaXR5ID09IDAgPyBcIm5vbmVcIiA6IFwiaW5s\naW5lLWZsZXhcIn07cGFkZGluZzowO2ZvbnQtc2l6ZTogMzBweDt2aXNpYmlsaXR5OiB2aXNpYmxl\nOyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiBhdXRvOyBtYXgtd2lkdGg6IDEwMHZ3OyBoZWln\naHQ6IDMwcHg7IGZsb2F0OiBub25lOyBjbGVhcjogYm90aDsgbWFyZ2luOiA1cHggYXV0bzsgdGV4\ndC1hbGlnbjogY2VudGVyO2p1c3RpZnktY29udGVudDogY2VudGVyO2JveC1zaXppbmc6IGNvbnRl\nbnQtYm94OyR7cnVsZXNEYXRhLm9wYWNpdHkgPT0gMSA\/IFwiYm9yZGVyLXRvcDogMXB4IHNvbGlk\nIHJnYig4MCwgODAsIDgwKTtcIiA6IFwiYm94LXNoYWRvdzogMHB4IDBweCAxMHB4IDBweCAjMDAw\nMDAwYWE7Ym9yZGVyLXJhZGl1czogMjBweDtiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjQwIDI0MCAy\nNDAgXC8gODAlKTtcIn1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbWFpblN0eWxlRWxlIHx8\nICFtYWluU3R5bGVFbGUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgbWFpblN0eWxlRWxlID0g\nX0dNX2FkZFN0eWxlKG1haW5TdHlsZVN0eWxlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB2YXIg\nbG9hZGluZ0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgaWYgKGxv\nYWRpbmdEaXYuc3R5bGUpIGxvYWRpbmdEaXYuc3R5bGUuY3NzVGV4dCA9IFwidGV4dC1pbmRlbnQ6\nIGluaXRpYWw7Y3k6IGluaXRpYWw7ZDogaW5pdGlhbDtkb21pbmFudC1iYXNlbGluZTogaW5pdGlh\nbDtlbXB0eS1jZWxsczogaW5pdGlhbDtmaWxsOiBpbml0aWFsO2ZpbGwtb3BhY2l0eTogaW5pdGlh\nbDtmaWxsLXJ1bGU6IGluaXRpYWw7ZmlsdGVyOiBpbml0aWFsO2ZsZXg6IGluaXRpYWw7ZmxleC1m\nbG93OiBpbml0aWFsO2Zsb2F0OiBpbml0aWFsO2Zsb29kLWNvbG9yOiBpbml0aWFsO2Zsb29kLW9w\nYWNpdHk6IGluaXRpYWw7Z3JpZDogaW5pdGlhbDtncmlkLWFyZWE6IGluaXRpYWw7aGVpZ2h0OiBp\nbml0aWFsO2h5cGhlbnM6IGluaXRpYWw7aW1hZ2Utb3JpZW50YXRpb246IGluaXRpYWw7aW1hZ2Ut\ncmVuZGVyaW5nOiBpbml0aWFsO2lubGluZS1zaXplOiBpbml0aWFsO2luc2V0LWJsb2NrOiBpbml0\naWFsO2luc2V0LWlubGluZTogaW5pdGlhbDtpc29sYXRpb246IGluaXRpYWw7bGV0dGVyLXNwYWNp\nbmc6IGluaXRpYWw7bGlnaHRpbmctY29sb3I6IGluaXRpYWw7bGluZS1icmVhazogaW5pdGlhbDts\naXN0LXN0eWxlOiBpbml0aWFsO21hcmdpbi1ibG9jazogaW5pdGlhbDttYXJnaW46IDBweCBhdXRv\nO21hcmdpbi1pbmxpbmU6IGluaXRpYWw7bWFya2VyOiBpbml0aWFsO21hc2s6IGluaXRpYWw7bWFz\nay10eXBlOiBpbml0aWFsO21heC1ibG9jay1zaXplOiBpbml0aWFsO21heC1oZWlnaHQ6IGluaXRp\nYWw7bWF4LWlubGluZS1zaXplOiBpbml0aWFsO21heC13aWR0aDogaW5pdGlhbDttaW4tYmxvY2st\nc2l6ZTogaW5pdGlhbDttaW4taGVpZ2h0OiBpbml0aWFsO21pbi1pbmxpbmUtc2l6ZTogaW5pdGlh\nbDttaW4td2lkdGg6IGluaXRpYWw7bWl4LWJsZW5kLW1vZGU6IGluaXRpYWw7b2JqZWN0LWZpdDog\naW5pdGlhbDtvYmplY3QtcG9zaXRpb246IGluaXRpYWw7b2Zmc2V0OiBpbml0aWFsO29wYWNpdHk6\nIGluaXRpYWw7b3JkZXI6IGluaXRpYWw7b3JpZ2luLXRyaWFsLXRlc3QtcHJvcGVydHk6IGluaXRp\nYWw7b3JwaGFuczogaW5pdGlhbDtvdXRsaW5lOiBpbml0aWFsO291dGxpbmUtb2Zmc2V0OiBpbml0\naWFsO292ZXJmbG93LWFuY2hvcjogaW5pdGlhbDtvdmVyZmxvdy1jbGlwLW1hcmdpbjogaW5pdGlh\nbDtvdmVyZmxvdy13cmFwOiBpbml0aWFsO292ZXJmbG93OiBpbml0aWFsO292ZXJzY3JvbGwtYmVo\nYXZpb3ItYmxvY2s6IGluaXRpYWw7b3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGluaXRpYWw7\nb3ZlcnNjcm9sbC1iZWhhdmlvcjogaW5pdGlhbDtwYWRkaW5nLWJsb2NrOiBpbml0aWFsO3BhZGRp\nbmc6IGluaXRpYWw7cGFkZGluZy1pbmxpbmU6IGluaXRpYWw7cGFnZTogaW5pdGlhbDtwYWdlLW9y\naWVudGF0aW9uOiBpbml0aWFsO3BhaW50LW9yZGVyOiBpbml0aWFsO3BlcnNwZWN0aXZlOiBpbml0\naWFsO3BlcnNwZWN0aXZlLW9yaWdpbjogaW5pdGlhbDtwb2ludGVyLWV2ZW50czogaW5pdGlhbDtw\nb3NpdGlvbjogaW5pdGlhbDtxdW90ZXM6IGluaXRpYWw7cjogaW5pdGlhbDtyZXNpemU6IGluaXRp\nYWw7cnVieS1wb3NpdGlvbjogaW5pdGlhbDtyeDogaW5pdGlhbDtyeTogaW5pdGlhbDtzY3JvbGwt\nYmVoYXZpb3I6IGluaXRpYWw7c2Nyb2xsLW1hcmdpbi1ibG9jazogaW5pdGlhbDtzY3JvbGwtbWFy\nZ2luOiBpbml0aWFsO3Njcm9sbC1tYXJnaW4taW5saW5lOiBpbml0aWFsO3Njcm9sbC1wYWRkaW5n\nLWJsb2NrOiBpbml0aWFsO3Njcm9sbC1wYWRkaW5nOiBpbml0aWFsO3Njcm9sbC1wYWRkaW5nLWlu\nbGluZTogaW5pdGlhbDtzY3JvbGwtc25hcC1hbGlnbjogaW5pdGlhbDtzY3JvbGwtc25hcC1zdG9w\nOiBpbml0aWFsO3Njcm9sbC1zbmFwLXR5cGU6IGluaXRpYWw7c2Nyb2xsYmFyLWd1dHRlcjogaW5p\ndGlhbDtzaGFwZS1pbWFnZS10aHJlc2hvbGQ6IGluaXRpYWw7c2hhcGUtbWFyZ2luOiBpbml0aWFs\nO3NoYXBlLW91dHNpZGU6IGluaXRpYWw7c2hhcGUtcmVuZGVyaW5nOiBpbml0aWFsO3NpemU6IGlu\naXRpYWw7c3BlYWs6IGluaXRpYWw7c3RvcC1jb2xvcjogaW5pdGlhbDtzdG9wLW9wYWNpdHk6IGlu\naXRpYWw7c3Ryb2tlOiBpbml0aWFsO3N0cm9rZS1kYXNoYXJyYXk6IGluaXRpYWw7c3Ryb2tlLWRh\nc2hvZmZzZXQ6IGluaXRpYWw7c3Ryb2tlLWxpbmVjYXA6IGluaXRpYWw7c3Ryb2tlLWxpbmVqb2lu\nOiBpbml0aWFsO3N0cm9rZS1taXRlcmxpbWl0OiBpbml0aWFsO3N0cm9rZS1vcGFjaXR5OiBpbml0\naWFsO3N0cm9rZS13aWR0aDogaW5pdGlhbDt0YWItc2l6ZTogaW5pdGlhbDt0YWJsZS1sYXlvdXQ6\nIGluaXRpYWw7dGV4dC1hbGlnbjogaW5pdGlhbDt0ZXh0LWFsaWduLWxhc3Q6IGluaXRpYWw7dGV4\ndC1hbmNob3I6IGluaXRpYWw7dGV4dC1jb21iaW5lLXVwcmlnaHQ6IGluaXRpYWw7dGV4dC1kZWNv\ncmF0aW9uOiBpbml0aWFsO3RleHQtZGVjb3JhdGlvbi1za2lwLWluazogaW5pdGlhbDt0ZXh0LWlu\nZGVudDogaW5pdGlhbDt0ZXh0LW92ZXJmbG93OiBpbml0aWFsO3RleHQtc2hhZG93OiBpbml0aWFs\nO3RleHQtc2l6ZS1hZGp1c3Q6IGluaXRpYWw7dGV4dC10cmFuc2Zvcm06IGluaXRpYWw7dGV4dC11\nbmRlcmxpbmUtb2Zmc2V0OiBpbml0aWFsO3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uOiBpbml0aWFs\nO3RvdWNoLWFjdGlvbjogaW5pdGlhbDt0cmFuc2Zvcm06IGluaXRpYWw7dHJhbnNmb3JtLWJveDog\naW5pdGlhbDt0cmFuc2Zvcm0tb3JpZ2luOiBpbml0aWFsO3RyYW5zZm9ybS1zdHlsZTogaW5pdGlh\nbDt0cmFuc2l0aW9uOiBpbml0aWFsO3VzZXItc2VsZWN0OiBpbml0aWFsO3ZlY3Rvci1lZmZlY3Q6\nIGluaXRpYWw7dmVydGljYWwtYWxpZ246IGluaXRpYWw7dmlzaWJpbGl0eTogaW5pdGlhbDtib3Jk\nZXItc3BhY2luZzogaW5pdGlhbDstd2Via2l0LWJvcmRlci1pbWFnZTogaW5pdGlhbDstd2Via2l0\nLWJveC1hbGlnbjogaW5pdGlhbDstd2Via2l0LWJveC1kZWNvcmF0aW9uLWJyZWFrOiBpbml0aWFs\nOy13ZWJraXQtYm94LWRpcmVjdGlvbjogaW5pdGlhbDstd2Via2l0LWJveC1mbGV4OiBpbml0aWFs\nOy13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IGluaXRpYWw7LXdlYmtpdC1ib3gtb3JpZW50OiBp\nbml0aWFsOy13ZWJraXQtYm94LXBhY2s6IGluaXRpYWw7LXdlYmtpdC1ib3gtcmVmbGVjdDogaW5p\ndGlhbDstd2Via2l0LWhpZ2hsaWdodDogaW5pdGlhbDstd2Via2l0LWh5cGhlbmF0ZS1jaGFyYWN0\nZXI6IGluaXRpYWw7LXdlYmtpdC1saW5lLWJyZWFrOiBpbml0aWFsOy13ZWJraXQtbGluZS1jbGFt\ncDogaW5pdGlhbDstd2Via2l0LW1hc2stYm94LWltYWdlOiBpbml0aWFsOy13ZWJraXQtbWFzazog\naW5pdGlhbDstd2Via2l0LW1hc2stY29tcG9zaXRlOiBpbml0aWFsOy13ZWJraXQtcGVyc3BlY3Rp\ndmUtb3JpZ2luLXg6IGluaXRpYWw7LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4teTogaW5pdGlh\nbDstd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogaW5pdGlhbDstd2Via2l0LXJ0bC1vcmRlcmlu\nZzogaW5pdGlhbDstd2Via2l0LXJ1YnktcG9zaXRpb246IGluaXRpYWw7LXdlYmtpdC10YXAtaGln\naGxpZ2h0LWNvbG9yOiBpbml0aWFsOy13ZWJraXQtdGV4dC1jb21iaW5lOiBpbml0aWFsOy13ZWJr\naXQtdGV4dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3Q6IGluaXRpYWw7LXdlYmtpdC10ZXh0LWVtcGhh\nc2lzOiBpbml0aWFsOy13ZWJraXQtdGV4dC1lbXBoYXNpcy1wb3NpdGlvbjogaW5pdGlhbDstd2Vi\na2l0LXRleHQtZmlsbC1jb2xvcjogaW5pdGlhbDstd2Via2l0LXRleHQtc2VjdXJpdHk6IGluaXRp\nYWw7LXdlYmtpdC10ZXh0LXN0cm9rZTogaW5pdGlhbDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4t\neDogaW5pdGlhbDstd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4teTogaW5pdGlhbDstd2Via2l0LXRy\nYW5zZm9ybS1vcmlnaW4tejogaW5pdGlhbDstd2Via2l0LXVzZXItZHJhZzogaW5pdGlhbDstd2Vi\na2l0LXVzZXItbW9kaWZ5OiBpbml0aWFsO3doaXRlLXNwYWNlOiBpbml0aWFsO3dpZG93czogaW5p\ndGlhbDt3aWR0aDogaW5pdGlhbDt3aWxsLWNoYW5nZTogaW5pdGlhbDt3b3JkLWJyZWFrOiBpbml0\naWFsO3dvcmQtc3BhY2luZzogaW5pdGlhbDt4OiBpbml0aWFsO3k6IGluaXRpYWw7ei1pbmRleDog\nMjE0NzQ4MzY0NztcIjtcblxuICAgIGNvbnN0IGxvYWRpbmdDU1MgPSBgZm9udC1zaXplOiBpbml0\naWFsOyB0ZXh0LWluZGVudDogdW5zZXQ7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogaW5pdGlh\nbDsgbWFyZ2luOiBhdXRvIGF1dG8gNXB4IGF1dG87IHNoYXBlLXJlbmRlcmluZzogYXV0bzsgdmVy\ndGljYWwtYWxpZ246IG1pZGRsZTsgdmlzaWJpbGl0eTogdmlzaWJsZTsgd2lkdGg6IGluaXRpYWw7\nIGhlaWdodDogaW5pdGlhbDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzZlNmU2ZTsgZmxl\neDogMDtgO1xuICAgIGZ1bmN0aW9uIHNldExvYWRpbmdEaXYobG9hZGluZ1RleHQpIHtcbiAgICAg\nICAgbG9hZGluZ0Rpdi5pbm5lckhUTUwgPSBjcmVhdGVIVE1MKGA8cCBjbGFzcz1cInBhZ2V0dWFs\nX2xvYWRpbmdfdGV4dFwiIHN0eWxlPVwiJHtsb2FkaW5nQ1NTfWRpc3BsYXk6IGlubGluZS1ibG9j\nazt3aWR0aDogMTAwJTtcIj4ke2xvYWRpbmdUZXh0fTxcL3A+JHtydWxlc0RhdGEuaGlkZUxvYWRp\nbmdJY29uID8gXCJcIiA6IGA8ZGl2IGNsYXNzPVwicGFnZXR1YWxfbG9hZGluZ1wiPjxzdmcgd2lk\ndGg9XCI1MFwiIGhlaWdodD1cIjUwXCIgc3R5bGU9XCJwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6\nIHBvaW50ZXI7d2lkdGg6IDUwcHg7aGVpZ2h0OiA1MHB4O3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7\nZmlsbDogY3VycmVudENvbG9yO292ZXJmbG93OiBoaWRkZW47XCIgdmlld0JveD1cIjAgMCAxMDI0\nIDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAw\nXC9zdmdcIj48cGF0aCBkPVwiTTI5NiA0NDBjLTQ0LjEgMC04MCAzNS45LTgwIDgwczM1LjkgODAg\nODAgODAgODAtMzUuOSA4MC04MC0zNS45LTgwLTgwLTgwelwiIHN0eWxlPVwiZmlsbDogIzZlNmU2\nZTtcIiBmaWxsPVwiIzZlNmU2ZVwiPjxcL3BhdGg+PHBhdGggZD1cIk05NjAgNTEyYzAtMjQ3LTIw\nMS00NDgtNDQ4LTQ0OFM2NCAyNjUgNjQgNTEyYzAgMS44IDAuMSAzLjUgMC4xIDUuMyAwIDAuOS0w\nLjEgMS44LTAuMSAyLjdoMC4yQzY4LjUgNzYzLjMgMjY3LjcgOTYwIDUxMiA5NjBjMjM2LjIgMCA0\nMzAuMS0xODMuNyA0NDYuNy00MTUuNyAwLjEtMC44IDAuMS0xLjYgMC4yLTIuMyAwLjQtNC42IDAu\nNS05LjMgMC43LTEzLjkgMC4xLTIuNyAwLjQtNS4zIDAuNC04aC0wLjJjMC0yLjggMC4yLTUuNCAw\nLjItOC4xeiBtLTE1MiA4YzAgNDQuMS0zNS45IDgwLTgwIDgwcy04MC0zNS45LTgwLTgwIDM1Ljkt\nODAgODAtODAgODAgMzUuOSA4MCA4MHpNNTEyIDkyOEMyODQuNCA5MjggOTkgNzQ0LjMgOTYuMSA1\nMTcuMyA5Ny42IDQwOC4zIDE4Ni42IDMyMCAyOTYgMzIwYzExMC4zIDAgMjAwIDg5LjcgMjAwIDIw\nMCAwIDEyNy45IDEwNC4xIDIzMiAyMzIgMjMyIDYyLjkgMCAxMTkuOS0yNS4yIDE2MS43LTY2LTY2\nIDE0Mi43LTIxMC40IDI0Mi0zNzcuNyAyNDJ6XCIgc3R5bGU9XCJmaWxsOiAjNmU2ZTZlO1wiIGZp\nbGw9XCIjNmU2ZTZlXCI+PFwvcGF0aD48XC9zdmc+PFwvZGl2PmB9YCk7XG4gICAgfVxuXG4gICAg\ndmFyIHVwU3ZnID0gYDxzdmcgd2lkdGg9XCIzMFwiIGhlaWdodD1cIjMwXCIgY2xhc3M9XCJ1cFN2\nZyBwYWdldHVhbFwiIHN0eWxlPVwiZGlzcGxheTppbml0aWFsO3Bvc2l0aW9uOnJlbGF0aXZlO2N1\ncnNvcjogcG9pbnRlcjttYXJnaW46IDAgOHB4O3dpZHRoOiAzMHB4O2hlaWdodDogMzBweDt2ZXJ0\naWNhbC1hbGlnbjogYmFzZWxpbmU7ZmlsbDogY3VycmVudENvbG9yO292ZXJmbG93OiBoaWRkZW47\nXCIgdmlld0JveD1cIjAgMCAxMDI0IDEwMjRcIiB2ZXJzaW9uPVwiMS4xXCIgeG1sbnM9XCJodHRw\nOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIj48cGF0aCBkPVwiTTI5NiA0NDBjLTQ0LjEgMC04\nMCAzNS45LTgwIDgwczM1LjkgODAgODAgODAgODAtMzUuOSA4MC04MC0zNS45LTgwLTgwLTgwelwi\nIHN0eWxlPVwiZmlsbDogIzYwNGI0YTtcIiBmaWxsPVwiIzYwNGI0YVwiPjxcL3BhdGg+PHBhdGgg\nZD1cIk05NjAgNTEyYzAtMjQ3LTIwMS00NDgtNDQ4LTQ0OFM2NCAyNjUgNjQgNTEyYzAgMS44IDAu\nMSAzLjUgMC4xIDUuMyAwIDAuOS0wLjEgMS44LTAuMSAyLjdoMC4yQzY4LjUgNzYzLjMgMjY3Ljcg\nOTYwIDUxMiA5NjBjMjM2LjIgMCA0MzAuMS0xODMuNyA0NDYuNy00MTUuNyAwLjEtMC44IDAuMS0x\nLjYgMC4yLTIuMyAwLjQtNC42IDAuNS05LjMgMC43LTEzLjkgMC4xLTIuNyAwLjQtNS4zIDAuNC04\naC0wLjJjMC0yLjggMC4yLTUuNCAwLjItOC4xeiBtLTE1MiA4YzAgNDQuMS0zNS45IDgwLTgwIDgw\ncy04MC0zNS45LTgwLTgwIDM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MHpNNTEyIDkyOEMyODQu\nNCA5MjggOTkgNzQ0LjMgOTYuMSA1MTcuMyA5Ny42IDQwOC4zIDE4Ni42IDMyMCAyOTYgMzIwYzEx\nMC4zIDAgMjAwIDg5LjcgMjAwIDIwMCAwIDEyNy45IDEwNC4xIDIzMiAyMzIgMjMyIDYyLjkgMCAx\nMTkuOS0yNS4yIDE2MS43LTY2LTY2IDE0Mi43LTIxMC40IDI0Mi0zNzcuNyAyNDJ6XCIgc3R5bGU9\nXCJmaWxsOiAjNjA0YjRhO1wiIGZpbGw9XCIjNjA0YjRhXCI+PFwvcGF0aD48XC9zdmc+YDtcbiAg\nICB2YXIgdXBTdmdDU1MgPSBgdGV4dC1hbGlnbjogY2VudGVyO2Rpc3BsYXk6IGluaXRpYWw7cG9z\naXRpb246IHJlbGF0aXZlO2N1cnNvcjogcG9pbnRlcjttYXJnaW46IDAgOHB4O3dpZHRoOiAzMHB4\nO2hlaWdodDogMzBweDt2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7ZmlsbDogY3VycmVudENvbG9y\nO292ZXJmbG93OiBoaWRkZW47YDtcbiAgICB2YXIgZG93blN2ZyA9IGA8c3ZnIHdpZHRoPVwiMzBc\nIiBoZWlnaHQ9XCIzMFwiIGNsYXNzPVwiZG93blN2ZyBwYWdldHVhbFwiIHN0eWxlPVwiZGlzcGxh\neTppbml0aWFsO3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjogcG9pbnRlcjttYXJnaW46IDAgOHB4\nO3dpZHRoOiAzMHB4O2hlaWdodDogMzBweDt2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7ZmlsbDog\nY3VycmVudENvbG9yO292ZXJmbG93OiBoaWRkZW47dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtc\nIiB2aWV3Qm94PVwiMCAwIDEwMjQgMTAyNFwiIHZlcnNpb249XCIxLjFcIiB4bWxucz1cImh0dHA6\nXC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiPjxwYXRoIGQ9XCJNMjk2IDQ0MGMtNDQuMSAwLTgw\nIDM1LjktODAgODBzMzUuOSA4MCA4MCA4MCA4MC0zNS45IDgwLTgwLTM1LjktODAtODAtODB6XCIg\nc3R5bGU9XCJmaWxsOiAjNjA0YjRhO1wiIGZpbGw9XCIjNjA0YjRhXCI+PFwvcGF0aD48cGF0aCBk\nPVwiTTk2MCA1MTJjMC0yNDctMjAxLTQ0OC00NDgtNDQ4UzY0IDI2NSA2NCA1MTJjMCAxLjggMC4x\nIDMuNSAwLjEgNS4zIDAgMC45LTAuMSAxLjgtMC4xIDIuN2gwLjJDNjguNSA3NjMuMyAyNjcuNyA5\nNjAgNTEyIDk2MGMyMzYuMiAwIDQzMC4xLTE4My43IDQ0Ni43LTQxNS43IDAuMS0wLjggMC4xLTEu\nNiAwLjItMi4zIDAuNC00LjYgMC41LTkuMyAwLjctMTMuOSAwLjEtMi43IDAuNC01LjMgMC40LTho\nLTAuMmMwLTIuOCAwLjItNS40IDAuMi04LjF6IG0tMTUyIDhjMCA0NC4xLTM1LjkgODAtODAgODBz\nLTgwLTM1LjktODAtODAgMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwek01MTIgOTI4QzI4NC40\nIDkyOCA5OSA3NDQuMyA5Ni4xIDUxNy4zIDk3LjYgNDA4LjMgMTg2LjYgMzIwIDI5NiAzMjBjMTEw\nLjMgMCAyMDAgODkuNyAyMDAgMjAwIDAgMTI3LjkgMTA0LjEgMjMyIDIzMiAyMzIgNjIuOSAwIDEx\nOS45LTI1LjIgMTYxLjctNjYtNjYgMTQyLjctMjEwLjQgMjQyLTM3Ny43IDI0MnpcIiBzdHlsZT1c\nImZpbGw6ICM2MDRiNGE7XCIgZmlsbD1cIiM2MDRiNGFcIj48XC9wYXRoPjxcL3N2Zz5gO1xuICAg\nIHZhciBkb3duU3ZnQ1NTID0gYHRleHQtYWxpZ246IGNlbnRlcjtkaXNwbGF5OiBpbml0aWFsO3Bv\nc2l0aW9uOiByZWxhdGl2ZTtjdXJzb3I6IHBvaW50ZXI7bWFyZ2luOiAwIDhweDt3aWR0aDogMzBw\neDtoZWlnaHQ6IDMwcHg7dmVydGljYWwtYWxpZ246IGJhc2VsaW5lO2ZpbGw6IGN1cnJlbnRDb2xv\ncjtvdmVyZmxvdzogaGlkZGVuO3RyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7YDtcblxuICAgIGNv\nbnN0IGluaXRTdHlsZSA9IGB0ZXh0LWluZGVudDogaW5pdGlhbDtkaXNwbGF5OiBjb250ZW50czty\naWdodDogdW5zZXQ7bGVmdDogdW5zZXQ7dG9wOiB1bnNldDtib3R0b206IHVuc2V0O2luc2V0OiB1\nbnNldDtjbGVhcjogYm90aDtjeTogaW5pdGlhbDtkOiBpbml0aWFsO2RvbWluYW50LWJhc2VsaW5l\nOiBpbml0aWFsO2VtcHR5LWNlbGxzOiBpbml0aWFsO2ZpbGw6IGluaXRpYWw7ZmlsbC1vcGFjaXR5\nOiBpbml0aWFsO2ZpbGwtcnVsZTogaW5pdGlhbDtmaWx0ZXI6IGluaXRpYWw7ZmxleDogaW5pdGlh\nbDtmbGV4LWZsb3c6IGluaXRpYWw7ZmxvYXQ6IGluaXRpYWw7Zmxvb2QtY29sb3I6IGluaXRpYWw7\nZmxvb2Qtb3BhY2l0eTogaW5pdGlhbDtncmlkOiBpbml0aWFsO2dyaWQtYXJlYTogaW5pdGlhbDto\nZWlnaHQ6IGluaXRpYWw7aHlwaGVuczogaW5pdGlhbDtpbWFnZS1vcmllbnRhdGlvbjogaW5pdGlh\nbDtpbWFnZS1yZW5kZXJpbmc6IGluaXRpYWw7aW5saW5lLXNpemU6IGluaXRpYWw7aW5zZXQtYmxv\nY2s6IGluaXRpYWw7aW5zZXQtaW5saW5lOiBpbml0aWFsO2lzb2xhdGlvbjogaW5pdGlhbDtsZXR0\nZXItc3BhY2luZzogaW5pdGlhbDtsaWdodGluZy1jb2xvcjogaW5pdGlhbDtsaW5lLWJyZWFrOiBp\nbml0aWFsO2xpc3Qtc3R5bGU6IGluaXRpYWw7bWFyZ2luLWJsb2NrOiBpbml0aWFsO21hcmdpbjog\nMHB4IDVweDttYXJnaW4taW5saW5lOiBpbml0aWFsO21hcmtlcjogaW5pdGlhbDttYXNrOiBpbml0\naWFsO21hc2stdHlwZTogaW5pdGlhbDttYXgtYmxvY2stc2l6ZTogaW5pdGlhbDttYXgtaGVpZ2h0\nOiBpbml0aWFsO21heC1pbmxpbmUtc2l6ZTogaW5pdGlhbDttYXgtd2lkdGg6IGluaXRpYWw7bWlu\nLWJsb2NrLXNpemU6IGluaXRpYWw7bWluLWhlaWdodDogaW5pdGlhbDttaW4taW5saW5lLXNpemU6\nIGluaXRpYWw7bWluLXdpZHRoOiBpbml0aWFsO21peC1ibGVuZC1tb2RlOiBpbml0aWFsO29iamVj\ndC1maXQ6IGluaXRpYWw7b2JqZWN0LXBvc2l0aW9uOiBpbml0aWFsO29mZnNldDogaW5pdGlhbDtv\ncGFjaXR5OiBpbml0aWFsO29yZGVyOiBpbml0aWFsO29ycGhhbnM6IGluaXRpYWw7b3V0bGluZTog\naW5pdGlhbDtvdXRsaW5lLW9mZnNldDogaW5pdGlhbDtvdmVyZmxvdy1hbmNob3I6IGluaXRpYWw7\nb3ZlcmZsb3ctY2xpcC1tYXJnaW46IGluaXRpYWw7b3ZlcmZsb3ctd3JhcDogaW5pdGlhbDtvdmVy\nZmxvdzogaW5pdGlhbDtvdmVyc2Nyb2xsLWJlaGF2aW9yLWJsb2NrOiBpbml0aWFsO292ZXJzY3Jv\nbGwtYmVoYXZpb3ItaW5saW5lOiBpbml0aWFsO292ZXJzY3JvbGwtYmVoYXZpb3I6IGluaXRpYWw7\ncGFkZGluZy1ibG9jazogaW5pdGlhbDtwYWRkaW5nOiBpbml0aWFsO3BhZGRpbmctaW5saW5lOiBp\nbml0aWFsO3BhZ2U6IGluaXRpYWw7cGFnZS1vcmllbnRhdGlvbjogaW5pdGlhbDtwYWludC1vcmRl\ncjogaW5pdGlhbDtwZXJzcGVjdGl2ZTogaW5pdGlhbDtwZXJzcGVjdGl2ZS1vcmlnaW46IGluaXRp\nYWw7cG9pbnRlci1ldmVudHM6IGluaXRpYWw7cG9zaXRpb246IHJlbGF0aXZlO3F1b3RlczogaW5p\ndGlhbDtyOiBpbml0aWFsO3Jlc2l6ZTogaW5pdGlhbDtydWJ5LXBvc2l0aW9uOiBpbml0aWFsO3J4\nOiBpbml0aWFsO3J5OiBpbml0aWFsO3Njcm9sbC1iZWhhdmlvcjogaW5pdGlhbDtzY3JvbGwtbWFy\nZ2luLWJsb2NrOiBpbml0aWFsO3Njcm9sbC1tYXJnaW46IGluaXRpYWw7c2Nyb2xsLW1hcmdpbi1p\nbmxpbmU6IGluaXRpYWw7c2Nyb2xsLXBhZGRpbmctYmxvY2s6IGluaXRpYWw7c2Nyb2xsLXBhZGRp\nbmc6IGluaXRpYWw7c2Nyb2xsLXBhZGRpbmctaW5saW5lOiBpbml0aWFsO3Njcm9sbC1zbmFwLWFs\naWduOiBpbml0aWFsO3Njcm9sbC1zbmFwLXN0b3A6IGluaXRpYWw7c2Nyb2xsLXNuYXAtdHlwZTog\naW5pdGlhbDtzY3JvbGxiYXItZ3V0dGVyOiBpbml0aWFsO3NoYXBlLWltYWdlLXRocmVzaG9sZDog\naW5pdGlhbDtzaGFwZS1tYXJnaW46IGluaXRpYWw7c2hhcGUtb3V0c2lkZTogaW5pdGlhbDtzaGFw\nZS1yZW5kZXJpbmc6IGluaXRpYWw7c2l6ZTogaW5pdGlhbDtzcGVhazogaW5pdGlhbDtzdG9wLWNv\nbG9yOiBpbml0aWFsO3N0b3Atb3BhY2l0eTogaW5pdGlhbDtzdHJva2U6IGluaXRpYWw7c3Ryb2tl\nLWRhc2hhcnJheTogaW5pdGlhbDtzdHJva2UtZGFzaG9mZnNldDogaW5pdGlhbDtzdHJva2UtbGlu\nZWNhcDogaW5pdGlhbDtzdHJva2UtbGluZWpvaW46IGluaXRpYWw7c3Ryb2tlLW1pdGVybGltaXQ6\nIGluaXRpYWw7c3Ryb2tlLW9wYWNpdHk6IGluaXRpYWw7c3Ryb2tlLXdpZHRoOiBpbml0aWFsO3Rh\nYi1zaXplOiBpbml0aWFsO3RhYmxlLWxheW91dDogaW5pdGlhbDt0ZXh0LWFsaWduOiBpbml0aWFs\nO3RleHQtYWxpZ24tbGFzdDogaW5pdGlhbDt0ZXh0LWFuY2hvcjogaW5pdGlhbDt0ZXh0LWNvbWJp\nbmUtdXByaWdodDogaW5pdGlhbDt0ZXh0LWRlY29yYXRpb246IGluaXRpYWw7dGV4dC1kZWNvcmF0\naW9uLXNraXAtaW5rOiBpbml0aWFsO3RleHQtaW5kZW50OiBpbml0aWFsO3RleHQtb3ZlcmZsb3c6\nIGluaXRpYWw7dGV4dC1zaGFkb3c6IGluaXRpYWw7dGV4dC1zaXplLWFkanVzdDogaW5pdGlhbDt0\nZXh0LXRyYW5zZm9ybTogaW5pdGlhbDt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IGluaXRpYWw7dGV4\ndC11bmRlcmxpbmUtcG9zaXRpb246IGluaXRpYWw7dG91Y2gtYWN0aW9uOiBpbml0aWFsO3RyYW5z\nZm9ybTogaW5pdGlhbDt0cmFuc2Zvcm0tYm94OiBpbml0aWFsO3RyYW5zZm9ybS1vcmlnaW46IGlu\naXRpYWw7dHJhbnNmb3JtLXN0eWxlOiBpbml0aWFsO3RyYW5zaXRpb246IGluaXRpYWw7dXNlci1z\nZWxlY3Q6IGluaXRpYWw7dmVjdG9yLWVmZmVjdDogaW5pdGlhbDt2ZXJ0aWNhbC1hbGlnbjogaW5p\ndGlhbDt2aXNpYmlsaXR5OiBpbml0aWFsO2JvcmRlci1zcGFjaW5nOiBpbml0aWFsOy13ZWJraXQt\nYm9yZGVyLWltYWdlOiBpbml0aWFsOy13ZWJraXQtYm94LWFsaWduOiBpbml0aWFsOy13ZWJraXQt\nYm94LWRlY29yYXRpb24tYnJlYWs6IGluaXRpYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBpbml0\naWFsOy13ZWJraXQtYm94LWZsZXg6IGluaXRpYWw7LXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDog\naW5pdGlhbDstd2Via2l0LWJveC1vcmllbnQ6IGluaXRpYWw7LXdlYmtpdC1ib3gtcGFjazogaW5p\ndGlhbDstd2Via2l0LWJveC1yZWZsZWN0OiBpbml0aWFsOy13ZWJraXQtaGlnaGxpZ2h0OiBpbml0\naWFsOy13ZWJraXQtaHlwaGVuYXRlLWNoYXJhY3RlcjogaW5pdGlhbDstd2Via2l0LWxpbmUtYnJl\nYWs6IGluaXRpYWw7LXdlYmtpdC1saW5lLWNsYW1wOiBpbml0aWFsOy13ZWJraXQtbWFzay1ib3gt\naW1hZ2U6IGluaXRpYWw7LXdlYmtpdC1tYXNrOiBpbml0aWFsOy13ZWJraXQtbWFzay1jb21wb3Np\ndGU6IGluaXRpYWw7LXdlYmtpdC1wZXJzcGVjdGl2ZS1vcmlnaW4teDogaW5pdGlhbDstd2Via2l0\nLXBlcnNwZWN0aXZlLW9yaWdpbi15OiBpbml0aWFsOy13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0\nOiBpbml0aWFsOy13ZWJraXQtcnRsLW9yZGVyaW5nOiBpbml0aWFsOy13ZWJraXQtcnVieS1wb3Np\ndGlvbjogaW5pdGlhbDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IGluaXRpYWw7LXdlYmtp\ndC10ZXh0LWNvbWJpbmU6IGluaXRpYWw7LXdlYmtpdC10ZXh0LWRlY29yYXRpb25zLWluLWVmZmVj\ndDogaW5pdGlhbDstd2Via2l0LXRleHQtZW1waGFzaXM6IGluaXRpYWw7LXdlYmtpdC10ZXh0LWVt\ncGhhc2lzLXBvc2l0aW9uOiBpbml0aWFsOy13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiBpbml0aWFs\nOy13ZWJraXQtdGV4dC1zZWN1cml0eTogaW5pdGlhbDstd2Via2l0LXRleHQtc3Ryb2tlOiBpbml0\naWFsOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbi14OiBpbml0aWFsOy13ZWJraXQtdHJhbnNmb3Jt\nLW9yaWdpbi15OiBpbml0aWFsOy13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbi16OiBpbml0aWFsOy13\nZWJraXQtdXNlci1kcmFnOiBpbml0aWFsOy13ZWJraXQtdXNlci1tb2RpZnk6IGluaXRpYWw7d2hp\ndGUtc3BhY2U6IGluaXRpYWw7d2lkb3dzOiBpbml0aWFsO3dpZHRoOiBpbml0aWFsO3dpbGwtY2hh\nbmdlOiBpbml0aWFsO3dvcmQtYnJlYWs6IGluaXRpYWw7d29yZC1zcGFjaW5nOiBpbml0aWFsO3g6\nIGluaXRpYWw7eTogaW5pdGlhbDtgO1xuICAgIGNvbnN0IHBhZ2VUZXh0U3R5bGUgPSBgb3BhY2l0\neTogMSFpbXBvcnRhbnQ7dGV4dC1pbmRlbnQ6IGluaXRpYWw7cGFkZGluZzogdW5zZXQ7Ym9yZGVy\nOiBub25lO2JhY2tncm91bmQ6IHVuc2V0IWltcG9ydGFudDtsaW5lLWhlaWdodDogMzBweDt0ZXh0\nLWRlY29yYXRpb246IG5vbmU7dXNlci1zZWxlY3Q6IG5vbmU7dmlzaWJpbGl0eTogdmlzaWJsZTtw\nb3NpdGlvbjogaW5pdGlhbDt3aWR0aDogYXV0bzttYXgtd2lkdGg6IDgwJTsgd2hpdGUtc3BhY2U6\nIG5vd3JhcDsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7b3ZlcmZsb3c6IGhpZGRlbjtoZWlnaHQ6\nIGF1dG87ZmxvYXQ6IG5vbmU7Y2xlYXI6IGJvdGg7bWFyZ2luOiAwcHg7dGV4dC1hbGlnbjogY2Vu\ndGVyO2Rpc3BsYXk6IGlubGluZS1ibG9jaztmb250LXdlaWdodDogYm9sZDtmb250LXN0eWxlOiBu\nb3JtYWw7Zm9udC1zaXplOiAxNnB4O2xldHRlci1zcGFjaW5nOiBpbml0aWFsO3ZlcnRpY2FsLWFs\naWduOiB0b3A7Y29sb3I6IHJnYig4NSwgODUsIDk1KSFpbXBvcnRhbnQ7YDtcbiAgICB2YXIgc2lk\nZUNvbnRyb2xsZXJJY29uID0gJyc7XG5cbiAgICB2YXIgdGlwc1dvcmRzID0gZG9jdW1lbnQuY3Jl\nYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICB0aXBzV29yZHMuY2xhc3NOYW1lID0gXCJwYWdldHVh\nbF90aXBzV29yZHNcIjtcblxuICAgIGZ1bmN0aW9uIGNoYW5nZVN0b3Aoc3RvcCwgc2F2ZSkge1xu\nICAgICAgICBpc1BhdXNlID0gc3RvcDtcbiAgICAgICAgW10uZm9yRWFjaC5jYWxsKGdldEJvZHko\nZG9jdW1lbnQpLnF1ZXJ5U2VsZWN0b3JBbGwoXCIucGFnZXR1YWxfcGFnZUJhciwjcGFnZXR1YWwt\nc2lkZUNvbnRyb2xsZXJcIiksIGJhciA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQYXVzZSkge1xu\nICAgICAgICAgICAgICAgIGJhci5jbGFzc0xpc3QuYWRkKFwic3RvcFwiKTtcbiAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYmFyLmNsYXNzTGlzdC5yZW1vdmUoXCJzdG9wXCIp\nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFpc1BhdXNlKSBydWxl\nUGFyc2VyLnNob3dBZGRlZEVsZW1lbnRzKCk7XG4gICAgICAgIG1hbnVhbFBhdXNlID0gaXNQYXVz\nZTtcbiAgICAgICAgaWYgKHNhdmUgJiYgc2lkZUNvbnRyb2xsZXIuaW5pdGVkKSBzZXRMaXN0RGF0\nYShcInBhdXNlU3RhdGVcIiwgbG9jYXRpb24uaG9zdCwgaXNQYXVzZSA\/IHRydWUgOiBcIlwiKTtc\nbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGFuZ2VIaWRlQmFyKGhpZGUpIHtcbiAgICAgICAgaXNI\naWRlQmFyID0gaGlkZTtcbiAgICAgICAgW10uZm9yRWFjaC5jYWxsKGdldEJvZHkoZG9jdW1lbnQp\nLnF1ZXJ5U2VsZWN0b3JBbGwoXCIucGFnZXR1YWxfcGFnZUJhclwiKSwgYmFyID0+IHtcbiAgICAg\nICAgICAgIGlmIChpc0hpZGVCYXIpIHtcbiAgICAgICAgICAgICAgICBiYXIuY2xhc3NMaXN0LmFk\nZChcImhpZGVcIik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJhci5j\nbGFzc0xpc3QucmVtb3ZlKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4g\nICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJblZpZXdQb3J0KGVsZW1lbnQpIHtcbiAgICAgICAgY29u\nc3Qgdmlld1dpZHRoID0gd2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVt\nZW50LmNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCB2aWV3SGVpZ2h0ID0gd2luZG93LmlubmVy\nSGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAg\nIGNvbnN0IHtcbiAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgIHJpZ2h0LFxuICAgICAgICAg\nICAgYm90dG9tLFxuICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgfSA9IGVsZW1lbnQuZ2V0Qm91\nbmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRvcCA+\nPSAwICYmXG4gICAgICAgICAgICBsZWZ0ID49IDAgJiZcbiAgICAgICAgICAgIHJpZ2h0IDw9IHZp\nZXdXaWR0aCArIDEgJiZcbiAgICAgICAgICAgIHRvcCA8PSB2aWV3SGVpZ2h0ICogcmF0ZSAmJlxu\nICAgICAgICAgICAgaXNWaXNpYmxlKGVsZW1lbnQsIF91bnNhZmVXaW5kb3cpXG4gICAgICAgICk7\nXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UGFnZUJhcigpIHtcbiAgICAgICAgbGV0IHByZUJh\nciA9IG51bGwsIG5leHRCYXIgPSBudWxsO1xuICAgICAgICBsZXQgcGFnZUJhcnMgPSBbXS5zbGlj\nZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIucGFnZXR1YWxfcGFnZUJhclwiKSk7\nXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFnZUJhcnMubGVuZ3RoOyBpKyspIHtcbiAg\nICAgICAgICAgIGxldCBwYWdlQmFyID0gcGFnZUJhcnNbaV07XG4gICAgICAgICAgICBpZiAoIXBh\nZ2VCYXIgfHwgIWdldEJvZHkoZG9jdW1lbnQpLmNvbnRhaW5zKHBhZ2VCYXIpKSBjb250aW51ZTtc\nbiAgICAgICAgICAgIGxldCB7XG4gICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAg\nIHJpZ2h0LFxuICAgICAgICAgICAgICAgIGJvdHRvbSxcbiAgICAgICAgICAgICAgICBsZWZ0LFxu\nICAgICAgICAgICAgfSA9IHBhZ2VCYXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAg\nICAgICBpZiAodG9wID4gNTAwKSB7XG4gICAgICAgICAgICAgICAgbmV4dEJhciA9IHBhZ2VCYXI7\nXG4gICAgICAgICAgICAgICAgcHJlQmFyID0gKGkgLSAxID49IDAgPyBwYWdlQmFyc1tpIC0gMV0g\nOiBudWxsKTtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUJhciAmJiBnZXRCb2R5KGRvY3VtZW50\nKS5jb250YWlucyhwYWdlQmFyKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgdG9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQsXG4g\nICAgICAgICAgICAgICAgICAgICAgICBib3R0b20sXG4gICAgICAgICAgICAgICAgICAgICAgICBs\nZWZ0LFxuICAgICAgICAgICAgICAgICAgICB9ID0gcGFnZUJhci5nZXRCb3VuZGluZ0NsaWVudFJl\nY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRvcCA8IC01MDApIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIHByZUJhciA9IHBhZ2VCYXI7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxz\nZSBwcmVCYXIgPSAoaSAtIDIgPj0gMCA\/IHBhZ2VCYXJzW2kgLSAyXSA6IG51bGwpO1xuICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAg\nICAgfVxuICAgICAgICBpZiAoIW5leHRCYXIpIHByZUJhciA9IHBhZ2VCYXJzW3BhZ2VCYXJzLmxl\nbmd0aCAtIDJdO1xuICAgICAgICByZXR1cm4ge3ByZUJhcjogcHJlQmFyLCBuZXh0QmFyOiBuZXh0\nQmFyfTtcbiAgICB9XG5cbiAgICB2YXIgdXJsQ2hhbmdlZCA9IGZhbHNlO1xuICAgIHZhciB1cmxD\naGFuZ2luZyA9IGZhbHNlO1xuICAgIHZhciB1cmxjaGFuZ2VIYW5kbGVyID0gZSA9PiB7XG4gICAg\nICAgIGlmIChydWxlUGFyc2VyICYmIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUgJiYgcnVsZVBhcnNl\nci5jdXJTaXRlUnVsZS5saXN0ZW5VcmxDaGFuZ2UgPT0gZmFsc2UpIHJldHVybjtcbiAgICAgICAg\naXNQYXVzZSA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAg\nbGFzdEFjdGl2ZVVybCA9IGxvY2F0aW9uLmhyZWY7XG4gICAgICAgICAgICBpZiAodXJsQ2hhbmdp\nbmcpIHJldHVybjtcbiAgICAgICAgICAgIHVybENoYW5naW5nID0gdHJ1ZTtcbiAgICAgICAgICAg\nIGxldCBocmVmID0gbG9jYXRpb24uaHJlZi5zbGljZSgwLCA2MCk7XG4gICAgICAgICAgICBpZiAo\naHJlZiA9PSBjb25maWdQYWdlWzFdKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9\nPiB7XG4gICAgICAgICAgICAgICAgICAgIGluaXRDb25maWcoaHJlZik7XG4gICAgICAgICAgICAg\nICAgICAgIHVybENoYW5naW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSwgMTAwMCk7XG4g\nICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xu\nICAgICAgICAgICAgICAgICAgICBpZiAoZ3VpZGVQYWdlLnRlc3QoaHJlZikpIHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGluaXRDb25maWcoaHJlZik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJs\nQ2hhbmdpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuICAg\nICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVBh\ncnNlci51cmxDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGVQYXJz\nZXIubmV4dExpbmtIcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5n\nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nICAgICB1cmxDaGFuZ2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgXC9cL2lm\nICghcGFnZVJlYWR5ICYmICFydWxlSW1wb3J0VXJsUmVnLnRlc3QoaHJlZikpIGxvY2F0aW9uLnJl\nbG9hZCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgNTAwKTtc\nbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMSk7XG4gICAgfTtcbiAgICB3aW5kb3cuYWRkRXZl\nbnRMaXN0ZW5lcigncGFnZXR1YWxfcHVzaFN0YXRlJywgdXJsY2hhbmdlSGFuZGxlcik7XG4gICAg\nXC8qdmFyIF93ciA9IGZ1bmN0aW9uKHR5cGUpIHtcbiAgICAgICAgdmFyIG9yaWcgPSBoaXN0b3J5\nW3R5cGVdO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgcnYg\nPSBvcmlnLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB2YXIgZSA9IG5ldyBF\ndmVudCgncGFnZXR1YWxfJyArIHR5cGUpO1xuICAgICAgICAgICAgZS5hcmd1bWVudHMgPSBhcmd1\nbWVudHM7XG4gICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChlKTtcbiAgICAgICAgICAg\nIHJldHVybiBydjtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGhpc3RvcnkucHVzaFN0YXRlID0g\nX3dyKCdwdXNoU3RhdGUnKTsqXC9cblxuICAgIGZ1bmN0aW9uIGxpc3RlblVybCgpIHtcbiAgICAg\nICAgdmFyIHByZXZQYXRobmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICAgICAg\ndmFyIHByZXZTZWFyY2ggPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgICAgICB2YXIgY2hl\nY2tVcmxUaW1lID0gMTAwO1xuICAgICAgICB2YXIgY2hlY2tVcmxUaW1lcjtcbiAgICAgICAgdmFy\nIGNoZWNrQ2xpY2tlZEVsZSA9IG51bGw7XG4gICAgICAgIHZhciBjbGlja2VkU3RoID0gZmFsc2U7\nXG4gICAgICAgIHZhciBjaGVja0Z1bmMgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9yY2VT\ndGF0ZSA9PSAxKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoY2hlY2tDbGlja2VkRWxlKSB7XG4g\nICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxlUGFyc2VyLmN1clNpdGVSdWxlLnJlZnJlc2hC\neUNsaWNrICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgh\nY2xpY2tlZFN0aCAmJiBjaGVja0NsaWNrZWRFbGUgJiYgY2hlY2tDbGlja2VkRWxlLm5vZGVOYW1l\nKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUoY2hlY2tDbGlja2Vk\nRWxlLCBbXCJhXCIsIFwiYnV0dG9uXCJdKSAmJiBjaGVja0NsaWNrZWRFbGUudGFyZ2V0ICE9PSBc\nIl9ibGFua1wiICYmIHJ1bGVQYXJzZXIubmVlZENoZWNrQ2xpY2soY2hlY2tDbGlja2VkRWxlKSkg\ne1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tlZFN0aCA9IHRydWU7XG4gICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2hlY2tDbGlj\na2VkRWxlID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGVja1VybFRp\nbWUgPCA1MDAwKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tVcmxUaW1lICs9IGNoZWNrVXJsVGlt\nZT4+MTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNsZWFyVGltZW91dChjaGVja1VybFRp\nbWVyKTtcbiAgICAgICAgICAgIGNoZWNrVXJsVGltZXIgPSBzZXRUaW1lb3V0KGNoZWNrRnVuYywg\nY2hlY2tVcmxUaW1lKTtcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5oaWRkZW4pIHJldHVybjtc\nbiAgICAgICAgICAgIGlmIChjbGlja2VkU3RoKSB7XG4gICAgICAgICAgICAgICAgcnVsZVBhcnNl\nci5jaGVja0NsaWNrSHJlZigpO1xuICAgICAgICAgICAgICAgIGNsaWNrZWRTdGggPSBmYWxzZTtc\nbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJ1bGVQYXJzZXIuY2FuTGlzdGVuVXJsQ2hhbmdlKCkp\nIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBp\nZiAoKHByZXZQYXRobmFtZSAhPT0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lIHx8IHByZXZTZWFy\nY2ggIT09IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggfHwgd2luZG93LmxvY2F0aW9uLmhhc2guaW5k\nZXhPZihcIiMhXCIpID09PSAwKSAmJiB3aW5kb3cubG9jYXRpb24uaHJlZiAhPSBydWxlUGFyc2Vy\nLmhpc3RvcnlVcmwpIHtcbiAgICAgICAgICAgICAgICBjaGVja1VybFRpbWUgPSAyMDAwO1xuICAg\nICAgICAgICAgICAgIHVybFdpbGxDaGFuZ2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHZhciBl\nID0gbmV3IEV2ZW50KCdwYWdldHVhbF9wdXNoU3RhdGUnKTtcbiAgICAgICAgICAgICAgICBlLmFy\nZ3VtZW50cyA9IGFyZ3VtZW50cztcbiAgICAgICAgICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVu\ndChlKTtcbiAgICAgICAgICAgICAgICBjbGlja2VkU3RoID0gZmFsc2U7XG4gICAgICAgICAgICB9\nXG4gICAgICAgICAgICBwcmV2UGF0aG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4g\nICAgICAgICAgICBwcmV2U2VhcmNoID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICAgICAg\nfTtcbiAgICAgICAgY2hlY2tVcmxUaW1lciA9IHNldFRpbWVvdXQoY2hlY2tGdW5jLCBjaGVja1Vy\nbFRpbWUpO1xuXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBl\nID0+IHtcbiAgICAgICAgICAgIGlmIChlLmlzVHJ1c3RlZCAmJiAhY2hlY2tDbGlja2VkRWxlKSB7\nXG4gICAgICAgICAgICAgICAgY2hlY2tDbGlja2VkRWxlID0gZS50YXJnZXQ7XG4gICAgICAgICAg\nICAgICAgY2hlY2tVcmxUaW1lID0gMzAwO1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChj\naGVja1VybFRpbWVyKTtcbiAgICAgICAgICAgICAgICBjaGVja1VybFRpbWVyID0gc2V0VGltZW91\ndChjaGVja0Z1bmMsIGNoZWNrVXJsVGltZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRy\ndWUpO1xuICAgIH1cblxuICAgIGxldCBzY3JvbGxDb250YWluZXI7XG4gICAgZnVuY3Rpb24gZGlz\ndFRvQm90dG9tICgpIHtcbiAgICAgICAgbGV0IHNjcm9sbHkgPSB3aW5kb3cuc2Nyb2xsWTtcbiAg\nICAgICAgbGV0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5k\nb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICBpZiAoIXNjcm9sbENvbnRhaW5l\nciB8fCAhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zKHNjcm9sbENvbnRhaW5lcikp\nIHtcbiAgICAgICAgICAgIGlmIChjdXJQYWdlID4gMSB8fCBydWxlUGFyc2VyLm5leHRMaW5rSHJl\nZikge1xuICAgICAgICAgICAgICAgIGxldCBwYWdlRWxlID0gcnVsZVBhcnNlci5nZXRQYWdlRWxl\nbWVudChkb2N1bWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VFbGUgJiYgcGFnZUVsZS5s\nZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudCA9IHBhZ2VFbGVbMF0ucGFy\nZW50Tm9kZSwgcGFnZVNjcm9sbFkgPSBwYXJlbnQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAg\nICAgICB3aGlsZSAocGFyZW50ICYmIHBhZ2VTY3JvbGxZID09IDApIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgcGFnZVNjcm9sbFkgPSBwYXJlbnQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYWdlU2Nyb2xsWSkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgc2Nyb2xsQ29udGFpbmVyID0gcGFyZW50O1xuICAgICAgICAgICAgICAgICAg\nICAgICAgcmV0dXJuIHNjcm9sbENvbnRhaW5lci5zY3JvbGxIZWlnaHQgLSBwYWdlU2Nyb2xsWSAt\nIHdpbmRvd0hlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2Nyb2xsQ29udGFpbmVyKSB7\nXG4gICAgICAgICAgICByZXR1cm4gc2Nyb2xsQ29udGFpbmVyLnNjcm9sbEhlaWdodCAtIHNjcm9s\nbENvbnRhaW5lci5zY3JvbGxUb3AgLSB3aW5kb3dIZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAg\nICBsZXQgc2Nyb2xsSCA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxI\nZWlnaHQsIGdldEJvZHkoZG9jdW1lbnQpLnNjcm9sbEhlaWdodCk7XG4gICAgICAgIHJldHVybiBz\nY3JvbGxIIC0gc2Nyb2xseSAtIHdpbmRvd0hlaWdodDtcbiAgICB9XG5cbiAgICBsZXQgc2Nyb2xs\nSGFuZGxlciwgY2xpY2tUb1Jlc2V0SGFuZGxlciwgZGJsY2xpY2tIYW5kbGVyLCBrZXlkb3duSGFu\nZGxlciwgaGFzaGNoYW5nZUhhbmRsZXIsIG1hbnVhbE1vZGVLZXlIYW5kbGVyLCBwYWdldHVhbE5l\neHRIYW5kbGVyLCBrZXl1cEhhbmRsZXIsIG1lc3NhZ2VIYW5kbGVyO1xuICAgIGZ1bmN0aW9uIGlu\naXRMaXN0ZW5lciAoKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nj\ncm9sbCcsIHNjcm9sbEhhbmRsZXIsIHRydWUpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVu\ndExpc3RlbmVyKCd3aGVlbCcsIHNjcm9sbEhhbmRsZXIsIHRydWUpO1xuICAgICAgICBkb2N1bWVu\ndC5yZW1vdmVFdmVudExpc3RlbmVyKCdkYmxjbGljaycsIGRibGNsaWNrSGFuZGxlcik7XG4gICAg\nICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBrZXlkb3duSGFuZGxl\ncik7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywgaGFz\naGNoYW5nZUhhbmRsZXIsIGZhbHNlKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0\nZW5lcigna2V5ZG93bicsIG1hbnVhbE1vZGVLZXlIYW5kbGVyKTtcbiAgICAgICAgZG9jdW1lbnQu\ncmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXR1YWwubmV4dCcsIHBhZ2V0dWFsTmV4dEhhbmRsZXIs\nIGZhbHNlKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBr\nZXl1cEhhbmRsZXIpO1xuICAgICAgICBfdW5zYWZlV2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIo\nJ21lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAgIGxldCBsb2FkbW9yZUJ0\nbiwgbG9hZGluZ01vcmUgPSB0cnVlLCBsYXN0U2Nyb2xsID0gMCwgY2hlY2tMb2FkTW9yZVRpbWVz\nID0gMCwgbG9hZE1vcmVJbnY7XG4gICAgICAgIGlmIChydWxlUGFyc2VyLmN1clNpdGVSdWxlLnNt\nYXJ0KSB7XG4gICAgICAgICAgICBsb2FkaW5nTW9yZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Ug\naWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUubG9hZE1vcmUpIHtcbiAgICAgICAgICAgIGxvYWRp\nbmdNb3JlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tNb2RlID0gdHlwZW9mIHJ1\nbGVQYXJzZXIuY3VyU2l0ZVJ1bGUuY2xpY2tNb2RlID09ICd1bmRlZmluZWQnID8gcnVsZXNEYXRh\nLmNsaWNrTW9kZSA6IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuY2xpY2tNb2RlO1xuICAgICAgICBs\nZXQgY2xpY2tpbmdOZXh0ID0gZmFsc2U7XG4gICAgICAgIGxldCBjbGlja05leHQgPSBhc3luYyAo\nKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xpY2tpbmdOZXh0KSByZXR1cm47XG4gICAgICAgICAg\nICBjbGlja2luZ05leHQgPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4g\nICAgICAgICAgICAgICAgY2xpY2tpbmdOZXh0ID0gZmFsc2U7XG4gICAgICAgICAgICB9LCAxNTAw\nKTtcbiAgICAgICAgICAgIGxldCBuZXh0TGluayA9IHJ1bGVQYXJzZXIubmV4dExpbmtIcmVmO1xu\nICAgICAgICAgICAgaWYgKCFuZXh0TGluaykgcmV0dXJuO1xuICAgICAgICAgICAgbGV0IGlzSnMg\nPSBydWxlUGFyc2VyLmhyZWZJc0pzKG5leHRMaW5rKTtcbiAgICAgICAgICAgIGlmIChpc0pzKSB7\nXG4gICAgICAgICAgICAgICAgbGV0IG5leHRCdG4gPSBydWxlUGFyc2VyLm5leHRMaW5rRWxlO1xu\nICAgICAgICAgICAgICAgIGlmICghbmV4dEJ0biB8fCAhbmV4dEJ0bi5vZmZzZXRQYXJlbnQpIG5l\neHRCdG4gPSBhd2FpdCBydWxlUGFyc2VyLmdldE5leHRMaW5rKGRvY3VtZW50LCB0cnVlKTtcbiAg\nICAgICAgICAgICAgICBpZiAobmV4dEJ0bikgZW11Q2xpY2sobmV4dEJ0bik7XG4gICAgICAgICAg\nICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbmV4dExp\nbms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGxldCBjaGVja1Njcm9sbFJl\nYWNoID0gKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGRpc3QgPSBkaXN0VG9Cb3R0b20oKTtcbiAg\nICAgICAgICAgIGlmIChjbGlja01vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGlzdCA8IDEw\nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsaWNrTmV4dCgpO1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzdCA8IGJvdHRvbUdhcCkge1xuICAgICAgICAgICAg\nICAgIG5leHRQYWdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIG1lc3Nh\nZ2VIYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICBpZiAoZS5kYXRhLmNvbW1hbmQgPT09ICdw\nYWdldHVhbCcpIHtcbiAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gZS5kYXRhLmFjdGlvbjtc\nbiAgICAgICAgICAgICAgICBsZXQgZGV0YWlsID0gZS5kYXRhLmRldGFpbDtcbiAgICAgICAgICAg\nICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiY29uZmln\nXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWRldGFpbCB8fCB0eXBlb2YgZGV0YWls\nICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXNEYXRh\nID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJ1bGVzRGF0YSxcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAuLi5kZXRhaWxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShcInJ1bGVzRGF0YVwiLCBy\ndWxlc0RhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAg\nICAgICAgIGNhc2UgXCJuZXh0UGFnZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRl\ndGFpbCA9PT0gXCJcIiB8fCBkZXRhaWwgPT09IG51bGwpIHJldHVybjtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGRldGFpbCA9IHBhcnNlSW50KGRldGFpbCkgfHwgMDtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGlmIChsb2FkTm93TnVtICE9IGRldGFpbCkge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGxvYWROb3dOdW0gPSBkZXRhaWw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvTG9hZE51bSA9IGRldGFpbDtcbiAgICAgICAg\nICAgICAgICAgICAgICAgIG5leHRQYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVh\naztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcImxvYWRNb3JlXCI6XG4gICAgICAgICAgICAg\nICAgICAgICAgICBjbGVhckludGVydmFsKGxvYWRNb3JlSW52KTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmIChkZXRhaWwgPT09IC0xKSByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAg\nICBsb2FkbW9yZUJ0biA9IGdldExvYWRNb3JlKGRvY3VtZW50LCBsb2FkbW9yZUJ0bik7XG4gICAg\nICAgICAgICAgICAgICAgICAgICBsb2FkbW9yZUJ0biAmJiBlbXVDbGljayhsb2FkbW9yZUJ0bik7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlsID09PSAwKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICAgICAgbG9hZE1vcmVJbnYgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRtb3JlQnRuID0gZ2V0TG9hZE1vcmUoZG9j\ndW1lbnQsIGxvYWRtb3JlQnRuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9h\nZG1vcmVCdG4gJiYgZW11Q2xpY2sobG9hZG1vcmVCdG4pO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAg\nICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBfdW5zYWZlV2luZG93LmFk\nZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlciwgdHJ1ZSk7XG4gICAgICAg\nIGxldCBmb3VuZExvYWRNb3JlID0gZmFsc2UsIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICBz\nY3JvbGxIYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICBpZiAodXJsQ2hhbmdlZCAmJiAhaXNM\nb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgcnVsZVBhcnNlci5pbml0UGFnZSgoKSA9PiB7fSk7\nXG4gICAgICAgICAgICAgICAgdXJsQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxv\nYWRpbmdNb3JlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgaWYgKGlzUGF1c2UpIHJldHVybjtcbiAgICAgICAgICAgIGlmICghbG9h\nZGluZ01vcmUpIHtcbiAgICAgICAgICAgICAgICBsb2FkbW9yZUJ0biA9IGdldExvYWRNb3JlKGRv\nY3VtZW50LCBsb2FkbW9yZUJ0bik7XG4gICAgICAgICAgICAgICAgaWYgKGxvYWRtb3JlQnRuKSB7\nXG4gICAgICAgICAgICAgICAgICAgIGZvdW5kTG9hZE1vcmUgPSB0cnVlO1xuICAgICAgICAgICAg\nICAgICAgICBjaGVja0xvYWRNb3JlVGltZXMgPSAwO1xuICAgICAgICAgICAgICAgICAgICBpZiAo\naXNJblZpZXdQb3J0KGxvYWRtb3JlQnRuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW11\nQ2xpY2sobG9hZG1vcmVCdG4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ01vcmUg\nPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7bG9hZGlu\nZ01vcmUgPSBmYWxzZX0sIDMwMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nTW9yZSA9IHRydWU7XG4g\nICAgICAgICAgICAgICAgICAgIGlmICghcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5zbWFydCkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7bG9hZGluZ01vcmUgPSBm\nYWxzZX0sIDMwMCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hlY2tMb2FkTW9y\nZVRpbWVzKysgPCAxMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9\nPiB7bG9hZGluZ01vcmUgPSBmYWxzZX0sIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxz\nZSBpZiAoZm91bmRMb2FkTW9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91\ndCgoKSA9PiB7bG9hZGluZ01vcmUgPSBmYWxzZX0sIDEwMDApO1xuICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNj\ncm9sbGluZykgcmV0dXJuO1xuICAgICAgICAgICAgc2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAg\nICAgIGxldCBjdXJTY3JvbGwgPSBnZXRCb2R5KGRvY3VtZW50KS5zY3JvbGxUb3AgfHwgZG9jdW1l\nbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkg\nPT4ge1xuICAgICAgICAgICAgICAgIHNjcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAg\nIGN1clNjcm9sbCA9IGdldEJvZHkoZG9jdW1lbnQpLnNjcm9sbFRvcCB8fCBkb2N1bWVudC5kb2N1\nbWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgIGlmIChjdXJTY3JvbGwgPD0g\nMjApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpZGVDb250cm9sbGVyLmluaXRlZCkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXIucGFnZW51bS5pbm5lckhUTUwg\nPSBjcmVhdGVIVE1MKFwiMVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICBpZiAoIWlzTG9hZGluZyAm\nJiAhc3RvcFNjcm9sbCkge1xuICAgICAgICAgICAgICAgIGNoZWNrU2Nyb2xsUmVhY2goKTtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIHJ1bGVQYXJzZXIuY2hhbmdlVmlzaWJpbGl0eSgpO1xu\nICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUubG9ja1Njcm9sbCkge1xuICAg\nICAgICAgICAgICAgIGlmIChpc0xvYWRpbmcgJiYgTWF0aC5hYnMobGFzdFNjcm9sbCAtIGN1clNj\ncm9sbCkgPiAzNTApIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0Qm9keShkb2N1bWVudCkuc2Ny\nb2xsVG9wID0gbGFzdFNjcm9sbDtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1l\nbnRFbGVtZW50LnNjcm9sbFRvcCA9IGxhc3RTY3JvbGw7XG4gICAgICAgICAgICAgICAgfSBlbHNl\nIHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFNjcm9sbCA9IGN1clNjcm9sbDtcbiAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0WSA+PSAwKSB7\nXG4gICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHRhcmdldFkgLSBjdXJTY3JvbGwpIDwgMTAw\nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFkgPSAtMTtcbiAgICAgICAgICAgICAgICB9\nXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGRibGNsaWNrSGFuZGxlciA9IGUg\nPT4ge1xuICAgICAgICAgICAgaWYgKGZvcmNlU3RhdGUgPT0gMSB8fCBjb21wYXJlTm9kZU5hbWUo\nZS50YXJnZXQsIFtcImlucHV0XCIsIFwidGV4dGFyZWFcIiwgXCJzZWxlY3RcIiwgXCJhXCIsIFwi\nYnV0dG9uXCIsIFwic3ZnXCIsIFwidXNlXCIsIFwiaW1nXCIsIFwicGF0aFwiXSkpIHJldHVybjtc\nbiAgICAgICAgICAgIGlmICghcnVsZXNEYXRhLmRiQ2xpY2syU3RvcEtleSkge1xuICAgICAgICAg\nICAgICAgIGlmICgocnVsZXNEYXRhLmRiQ2xpY2syU3RvcEN0cmwgJiYgIWUuY3RybEtleSkgfHxc\nbiAgICAgICAgICAgICAgICAgICAocnVsZXNEYXRhLmRiQ2xpY2syU3RvcEFsdCAmJiAhZS5hbHRL\nZXkpIHx8XG4gICAgICAgICAgICAgICAgICAgKHJ1bGVzRGF0YS5kYkNsaWNrMlN0b3BTaGlmdCAm\nJiAhZS5zaGlmdEtleSkgfHxcbiAgICAgICAgICAgICAgICAgICAocnVsZXNEYXRhLmRiQ2xpY2sy\nU3RvcE1ldGEgJiYgIWUubWV0YUtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZS50YXJn\nZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdwYWdldHVhbF9wYWdlQmFyJykpIHtcbiAgICAgICAgICAg\nICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0aW9uID0gd2luZG93Lmdl\ndFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsT2JqID0gc2VsZWN0aW9u\nLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2VsT2JqKSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIHNlbE9iaiA9IHNlbGVjdGlvbiAmJiBzZWxlY3Rpb24uY2xv\nbmVDb250ZW50cygpLmNoaWxkcmVuWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNl\nbE9iaiAmJiAhY29tcGFyZU5vZGVOYW1lKHNlbE9iaiwgW1wiaW1nXCJdKSkgc2VsT2JqID0gZmFs\nc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbE9i\naikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgIGlmIChydWxlc0RhdGEuZGJDbGljazJTdG9wICYmIChydWxlUGFyc2VyLm5leHRMaW5r\nSHJlZiB8fCBsb2FkbW9yZUJ0bikpIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+\nIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGVzRGF0YS5oaWRlQmFyQnV0Tm9TdG9wIHx8\nIHJ1bGVzRGF0YS5oaWRlQmFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VIaWRl\nQmFyKCFpc0hpZGVCYXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgIGlmICghcnVsZXNEYXRhLmhpZGVCYXJCdXROb1N0b3ApIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGNoYW5nZVN0b3AoIWlzUGF1c2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hv\nd1RpcHMoaTE4bihpc1BhdXNlID8gXCJkaXNhYmxlXCIgOiBcImVuYWJsZVwiKSk7XG4gICAgICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1BhdXNlKSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICBjaGVja1Njcm9sbFJlYWNoKCk7XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICB9LCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07\nXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2RibGNsaWNrJywgZGJsY2xpY2tI\nYW5kbGVyKTtcbiAgICAgICAgY2xpY2tUb1Jlc2V0SGFuZGxlciA9IGUgPT4ge1xuICAgICAgICAg\nICAgaWYgKCFydWxlUGFyc2VyLm5leHRMaW5rSHJlZikgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAg\nICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tU\nb1Jlc2V0SGFuZGxlcik7XG4gICAgICAgIGlmIChydWxlc0RhdGEuZGJDbGljazJTdG9wS2V5KSB7\nXG4gICAgICAgICAgICBrZXlkb3duSGFuZGxlciA9IGUgPT4ge1xuICAgICAgICAgICAgICAgIGlm\nICgocnVsZXNEYXRhLmRiQ2xpY2syU3RvcEN0cmwgJiYgIWUuY3RybEtleSkgfHxcbiAgICAgICAg\nICAgICAgICAgICAocnVsZXNEYXRhLmRiQ2xpY2syU3RvcEFsdCAmJiAhZS5hbHRLZXkpIHx8XG4g\nICAgICAgICAgICAgICAgICAgKHJ1bGVzRGF0YS5kYkNsaWNrMlN0b3BTaGlmdCAmJiAhZS5zaGlm\ndEtleSkgfHxcbiAgICAgICAgICAgICAgICAgICAocnVsZXNEYXRhLmRiQ2xpY2syU3RvcE1ldGEg\nJiYgIWUubWV0YUtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxu\nICAgICAgICAgICAgICAgICAgICAoY29tcGFyZU5vZGVOYW1lKGRvY3VtZW50LmFjdGl2ZUVsZW1l\nbnQsIFtcImlucHV0XCIsIFwidGV4dGFyZWFcIl0pIHx8XG4gICAgICAgICAgICAgICAgICAgICBk\nb2N1bWVudC5hY3RpdmVFbGVtZW50LmNvbnRlbnRFZGl0YWJsZSA9PSAndHJ1ZScpKSB7XG4gICAg\nICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAg\nICAgdmFyIGtleSA9IGUua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJ1\nbGVzRGF0YS5kYkNsaWNrMlN0b3BLZXkudG9Mb3dlckNhc2UoKSA9PSBrZXkpIHtcbiAgICAgICAg\nICAgICAgICAgICAgaWYgKGZvcmNlU3RhdGUgPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAg\nICAgZm9yY2VTdGF0ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VGlwcyhpMThu\nKFwiZW5hYmxlU2l0ZVRpcHNcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlU3Rv\ncChmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBmb3JjZVN0YXRlID0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNo\nb3dUaXBzKGkxOG4oXCJkaXNhYmxlU2l0ZVRpcHNcIikpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgY2hhbmdlU3RvcCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZGVDb250cm9s\nbGVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nIGlmICghcnVsZVBhcnNlci5jdXJTaXRlUnVsZS51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIHNldExpc3REYXRhKFwiZm9yY2VTdGF0ZVwiLCBsb2NhdGlvbi5ob3N0LCBmb3JjZVN0YXRl\nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdr\nZXlkb3duJywga2V5ZG93bkhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChydWxlUGFy\nc2VyLmN1clNpdGVSdWxlLmxpc3Rlbkhhc2hDaGFuZ2UpIHtcbiAgICAgICAgICAgIGhhc2hjaGFu\nZ2VIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzUGF1c2UgPSB0cnVlO1xuICAg\nICAgICAgICAgICAgIHJ1bGVQYXJzZXIudXJsQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgIGlm\nICghcnVsZVBhcnNlci5uZXh0TGlua0hyZWYpIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAg\nICAgfTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdoYXNoY2hhbmdlJywg\naGFzaGNoYW5nZUhhbmRsZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWFudWFs\nTW9kZSA9IHR5cGVvZiBydWxlUGFyc2VyLmN1clNpdGVSdWxlLm1hbnVhbE1vZGUgPT0gJ3VuZGVm\naW5lZCcgPyBydWxlc0RhdGEubWFudWFsTW9kZSA6IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUubWFu\ndWFsTW9kZTtcbiAgICAgICAgaWYgKG1hbnVhbE1vZGUpIHtcbiAgICAgICAgICAgIG1hbnVhbE1v\nZGVLZXlIYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2\nZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgKGNvbXBhcmVOb2RlTmFtZShkb2N1bWVu\ndC5hY3RpdmVFbGVtZW50LCBbXCJpbnB1dFwiLCBcInRleHRhcmVhXCJdKSB8fFxuICAgICAgICAg\nICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jb250ZW50RWRpdGFibGUgPT0gJ3Ry\ndWUnIHx8XG4gICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJp\nbmcoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09IDM5KSB7XG4gICAgICAgICAgICAgICAg\nICAgIGNsaWNrTmV4dCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09\nIDM3KSB7XG4gICAgICAgICAgICAgICAgICAgIGhpc3RvcnkuYmFjaygpO1xuICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3Rl\nbmVyKCdrZXlkb3duJywgbWFudWFsTW9kZUtleUhhbmRsZXIpO1xuICAgICAgICAgICAgcGFnZXR1\nYWxOZXh0SGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjbGlja05leHQoKTtcbiAg\nICAgICAgICAgIH07XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwYWdl\ndHVhbC5uZXh0JywgcGFnZXR1YWxOZXh0SGFuZGxlciwgZmFsc2UpO1xuICAgICAgICAgICAgcmV0\ndXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChydWxlc0RhdGEuYXJyb3dUb1Njcm9sbCkge1xu\nICAgICAgICAgICAga2V5dXBIYW5kbGVyID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRv\nY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgKGNvbXBhcmVOb2Rl\nTmFtZShkb2N1bWVudC5hY3RpdmVFbGVtZW50LCBbXCJpbnB1dFwiLCBcInRleHRhcmVhXCJdKSB8\nfFxuICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5jb250ZW50RWRp\ndGFibGUgPT0gJ3RydWUnIHx8XG4gICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0\naW9uKCkudG9TdHJpbmcoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09IDM5KSB7XG4gICAg\nICAgICAgICAgICAgICAgIGxldCBuZXh0UGFnZUJhcj1nZXRQYWdlQmFyKCkubmV4dEJhcjtcbiAg\nICAgICAgICAgICAgICAgICAgaWYgKG5leHRQYWdlQmFyKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICBzY3JvbGxUb1BhZ2VCYXIobmV4dFBhZ2VCYXIpO1xuICAgICAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjcm9sbFRvcCA9IGdldEJvZHko\nZG9jdW1lbnQpLnNjcm9sbFRvcCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9w\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiBzY3JvbGxU\nb3AgKyAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGll\nbnRIZWlnaHQpLCBiZWhhdmlvcjogJ2luc3RhbnQnfSk7XG4gICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUua2V5Q29kZSA9PSAzNykge1xuICAgICAgICAg\nICAgICAgICAgICBsZXQgcHJlUGFnZUJhciA9IGdldFBhZ2VCYXIoKS5wcmVCYXI7XG4gICAgICAg\nICAgICAgICAgICAgIGlmIChwcmVQYWdlQmFyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBz\nY3JvbGxUb1BhZ2VCYXIocHJlUGFnZUJhcik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsVG9wID0gZ2V0Qm9keShkb2N1bWVu\ndCkuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHNjcm9sbFRvcCAtICh3\naW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdo\ndCksIGJlaGF2aW9yOiAnaW5zdGFudCd9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVu\ndExpc3RlbmVyKCdrZXl1cCcsIGtleXVwSGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYg\nKCFydWxlUGFyc2VyLmN1clNpdGVSdWxlLndoZWVsKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5h\nZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVyLCB0cnVlKTtcbiAgICAgICAg\nfVxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHNjcm9sbEhhbmRs\nZXIsIHRydWUpO1xuICAgIH1cblxuICAgIGxldCBoaWRlVGlwc1RpbWVvdXQ7XG4gICAgZnVuY3Rp\nb24gc2hvd1RpcHMoY29udGVudCwgaHJlZiwgdGltZSwgd29yZENvbG9yLCBiYWNrQ29sb3IpIHtc\nbiAgICAgICAgaW5pdFZpZXcoKTtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFw\ncGVuZENoaWxkKHRpcHNXb3Jkcyk7XG4gICAgICAgIHRpcHNXb3Jkcy5zdHlsZS5jb2xvciA9IHdv\ncmRDb2xvciB8fCAweEZGRkZGRjtcbiAgICAgICAgdGlwc1dvcmRzLnN0eWxlLmJhY2tncm91bmRD\nb2xvciA9IGJhY2tDb2xvciB8fCAweDAwMDtcbiAgICAgICAgbGV0IF90aW1lID0gMTUwMDtcbiAg\nICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICAgIF90aW1lID0gMzUwMDtcbiAgICAgICAgICAg\nIHRpcHNXb3Jkcy5pbm5lckhUTUwgPSBjcmVhdGVIVE1MKGA8YSBocmVmPScke2hyZWZ9JyB0YXJn\nZXQ9J19ibGFuayc+JHtjb250ZW50fTxcL2E+YCk7XG4gICAgICAgICAgICB0aXBzV29yZHMuc3R5\nbGUucG9pbnRlckV2ZW50cyA9ICdhbGwnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAg\ndGlwc1dvcmRzLmlubmVySFRNTCA9IGNyZWF0ZUhUTUwoY29udGVudCk7XG4gICAgICAgIH1cbiAg\nICAgICAgdGlwc1dvcmRzLnN0eWxlLm1hcmdpbkxlZnQgPSAtdGlwc1dvcmRzLm9mZnNldFdpZHRo\nIFwvIDIgKyBcInB4XCI7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAg\ndGlwc1dvcmRzLnN0eWxlLm1hcmdpbkxlZnQgPSAtdGlwc1dvcmRzLm9mZnNldFdpZHRoIFwvIDIg\nKyBcInB4XCI7XG4gICAgICAgIH0sIDApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAg\nICAgICAgICAgIHRpcHNXb3Jkcy5zdHlsZS5vcGFjaXR5ID0gMC44O1xuICAgICAgICAgICAgY2xl\nYXJUaW1lb3V0KGhpZGVUaXBzVGltZW91dCk7XG4gICAgICAgICAgICBoaWRlVGlwc1RpbWVvdXQg\nPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aXBzV29yZHMuc3R5bGUub3Bh\nY2l0eSA9IDA7XG4gICAgICAgICAgICAgICAgdGlwc1dvcmRzLnN0eWxlLnBvaW50ZXJFdmVudHMg\nPSAnJztcbiAgICAgICAgICAgIH0sIHRpbWUgfHwgX3RpbWUpO1xuICAgICAgICB9LCAxKTtcbiAg\nICB9XG5cbiAgICBjb25zdCBsb2FkbW9yZVJlZyA9IFwvXlxccyooKOeCueWHuyk\/KCjliqDovb18\n5bGV5byAKSjmm7TlpJp85Ymp5L2ZKXznu6fnu63liqDovb0pfCjpu57mk4opPygo5Yqg6LyJfOWx\nlemWiyko5pu05aSafOWJqemkmCl857m857qM5Yqg6LyJKXxsb2FkXFxzKm1vcmV844KC44Gj44Go\n6Kqt44G\/6L6844KAKVtcXC7igKbilrxcXHNcXGQlXSokXC9pO1xuICAgIGNvbnN0IGRlZmF1bHRM\nb2FkbW9yZVNlbCA9IFwiLmxvYWRNb3JlLC5Mb2FkTW9yZSxbY2xhc3MqPSdsb2FkLW1vcmUnXSxi\ndXR0b24uc2hvd19tb3JlLC5idXR0b24tc2hvdy1tb3JlLGJ1dHRvbltkYXRhLXRlc3RpZD0nbW9y\nZS1yZXN1bHRzLWJ1dHRvbiddLCNidG5fcHJldmlld19yZW1haW4sLnZpZXctbW9yZS1idG5cIjtc\nbiAgICBmdW5jdGlvbiBnZXRMb2FkTW9yZShkb2MsIGxvYWRtb3JlQnRuKSB7XG4gICAgICAgIGlm\nICghbG9hZG1vcmVCdG4gfHwgIWdldEJvZHkoZG9jKS5jb250YWlucyhsb2FkbW9yZUJ0bikgfHwg\nXC9sZXNzXC8udGVzdChsb2FkbW9yZUJ0bi5pbm5lclRleHQpKSBsb2FkbW9yZUJ0biA9IG51bGw7\nXG4gICAgICAgIGxldCBsb2FkTW9yZVNlbCA9IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUubG9hZE1v\ncmU7XG4gICAgICAgIGlmICghcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5zbWFydCAmJiAhbG9hZE1v\ncmVTZWwpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAobG9hZG1vcmVCdG4pIHJldHVybiBsb2Fk\nbW9yZUJ0bjtcbiAgICAgICAgbGV0IGJ0blNlbCA9IGxvYWRNb3JlU2VsIHx8IGRlZmF1bHRMb2Fk\nbW9yZVNlbDtcbiAgICAgICAgaWYgKGJ0blNlbCkge1xuICAgICAgICAgICAgbG9hZG1vcmVCdG4g\nPSBnZXRFbGVtZW50KGJ0blNlbCwgZG9jLCBudWxsLCB0cnVlKTtcbiAgICAgICAgICAgIGlmIChs\nb2FkbW9yZUJ0biAmJiAhbG9hZE1vcmVTZWwpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRC\ndG5zID0gbG9hZG1vcmVCdG4ucXVlcnlTZWxlY3RvckFsbChcImJ1dHRvbiwuYnRuXCIpO1xuICAg\nICAgICAgICAgICAgIGlmIChjaGlsZEJ0bnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAg\nICAgICAgIGxvYWRtb3JlQnRuID0gY2hpbGRCdG5zWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxvYWRtb3JlQnRuKSB7XG4gICAg\nICAgICAgICBsZXQgYnV0dG9ucyA9IGdldEJvZHkoZG9jKS5xdWVyeVNlbGVjdG9yQWxsKFwiaW5w\ndXQsYnV0dG9uLGEsZGl2W29uY2xpY2tdXCIpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7\nIGkgPCBidXR0b25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGJ1dHRvbiA9\nIGJ1dHRvbnNbaV07XG4gICAgICAgICAgICAgICAgaWYgKCFidXR0b24uaW5uZXJUZXh0IHx8IGJ1\ndHRvbi5pbm5lclRleHQubGVuZ3RoID4gMjApIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGlm\nIChidXR0b24gJiYgbG9hZG1vcmVSZWcudGVzdChidXR0b24uaW5uZXJUZXh0KSkge1xuICAgICAg\nICAgICAgICAgICAgICBsb2FkbW9yZUJ0biA9IGJ1dHRvbjtcbiAgICAgICAgICAgICAgICAgICAg\nYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAg\nICAgIGlmIChsb2FkbW9yZUJ0biAmJiAhcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5sb2FkTW9yZSAm\nJiBsb2FkbW9yZUJ0bi5kYXRhc2V0LmFqYXggIT09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICBs\nZXQgaHJlZiA9IGxvYWRtb3JlQnRuLmdldEF0dHJpYnV0ZShcImhyZWZcIik7XG4gICAgICAgICAg\nICBpZiAoaHJlZiAmJiBocmVmICE9IFwiXC9cIiAmJiAhcnVsZVBhcnNlci5ocmVmSXNKcyhocmVm\nKSkge1xuICAgICAgICAgICAgICAgIGxvYWRtb3JlQnRuID0gbnVsbDtcbiAgICAgICAgICAgIH1c\nbiAgICAgICAgfVxuICAgICAgICBpZiAobG9hZG1vcmVCdG4gJiYgXC9sZXNzXC8udGVzdChsb2Fk\nbW9yZUJ0bi5pbm5lclRleHQpKSBsb2FkbW9yZUJ0biA9IG51bGw7XG4gICAgICAgIGlmIChsb2Fk\nbW9yZUJ0bikgZGVidWcobG9hZG1vcmVCdG4sICdMb2FkIG1vcmUgYnV0dG9uJyk7XG4gICAgICAg\nIHJldHVybiBsb2FkbW9yZUJ0bjtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0WSA9IC0xO1xuICAg\nIGZ1bmN0aW9uIHNjcm9sbFRvUGFnZUJhcihiYXIpIHtcbiAgICAgICAgaWYgKHdpbmRvdy5wYWdl\nWU9mZnNldCA9PSAwKSB7XG4gICAgICAgICAgICBiYXIuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlv\ncjogXCJzbW9vdGhcIiwgYmxvY2s6IFwic3RhcnRcIiwgaW5saW5lOiBcIm5lYXJlc3RcIiB9KTtc\nbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCB5T2Zmc2V0ID0gLTIwO1xuICAgICAg\nICAgICAgaWYgKHR5cGVvZiBydWxlUGFyc2VyLmN1clNpdGVSdWxlLnBhZ2VCYXJUb3AgIT09ICd1\nbmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgeU9mZnNldCA9IC1ydWxlUGFyc2VyLmN1clNp\ndGVSdWxlLnBhZ2VCYXJUb3A7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YXJnZXRZID0g\nYmFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5wYWdlWU9mZnNldCArIHlP\nZmZzZXQ7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdldFksIGJlaGF2\naW9yOiAnc21vb3RoJ30pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZU51bVJl\nZz1cL1smXFxcL1xcP10ocD18cGFnZVs9XFxcL18tXT8pXFxkK3xbXy1dXFxkK1xcLlwvO1xuICAg\nIGZ1bmN0aW9uIGNyZWF0ZVBhZ2VCYXIodXJsKSB7XG4gICAgICAgIGN1clBhZ2UrKztcbiAgICAg\nICAgc2lkZUNvbnRyb2xsZXIuc2V0dXAoKTtcbiAgICAgICAgbGV0IHBvc0VsZSA9IG51bGw7XG4g\nICAgICAgIGxldCBzY3JvbGxIID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNj\ncm9sbEhlaWdodCwgZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xsSGVpZ2h0KTtcbiAgICAgICAgbGV0\nIGluc2VydCA9IHJ1bGVQYXJzZXIuZ2V0SW5zZXJ0KCk7XG4gICAgICAgIGlmICghaW5zZXJ0IHx8\nICFpbnNlcnQucGFyZW50Tm9kZSkgcmV0dXJuO1xuICAgICAgICBpZiAoZm9yY2VTdGF0ZSA9PSAy\nKSB7XG4gICAgICAgICAgICBwb3NFbGUgPSBnZXRCb2R5KGRvY3VtZW50KTtcbiAgICAgICAgICAg\nIHBvc0VsZSA9IHBvc0VsZS5jaGlsZHJlbltwb3NFbGUuY2hpbGRyZW4ubGVuZ3RoIC0gMV07XG4g\nICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3NFbGUgPSBpbnNlcnQ7XG4gICAgICAgIH1c\nbiAgICAgICAgd2hpbGUgKHBvc0VsZSAmJiAhcG9zRWxlLm9mZnNldFBhcmVudCkge1xuICAgICAg\nICAgICAgcG9zRWxlID0gcG9zRWxlLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgfHwgcG9zRWxlLnBh\ncmVudE5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvc0VsZSkge1xuICAgICAgICAgICAg\nbGV0IGFjdHVhbEJvdHRvbSA9IGdldEVsZW1lbnRCb3R0b20ocG9zRWxlKTtcbiAgICAgICAgICAg\nIGJvdHRvbUdhcCA9IHNjcm9sbEggLSBhY3R1YWxCb3R0b20gKyAod2luZG93LmlubmVySGVpZ2h0\nIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpICogcmF0ZTtcbiAgICAg\nICAgICAgIGlmIChib3R0b21HYXAgPCAxMDApIGJvdHRvbUdhcCA9IDEwMDtcbiAgICAgICAgfSBl\nbHNlIHtcbiAgICAgICAgICAgIGJvdHRvbUdhcCA9IDEwMDA7XG4gICAgICAgIH1cbiAgICAgICAg\naWYgKGhpZGVQYWdlQmFyKSByZXR1cm4gbnVsbDtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2Uo\nXC8jcHsuKlwvLCBcIlwiKTtcbiAgICAgICAgbGV0IGV4YW1wbGUgPSAocnVsZVBhcnNlci5jdXJT\naXRlUnVsZS5pbnNlcnRQb3MgPT0gMiB8fCBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmluc2VydFBv\ncyA9PSBcImluXCIpID8gaW5zZXJ0LmNoaWxkcmVuWzBdIDogKGluc2VydC5wYXJlbnROb2RlLmNo\naWxkcmVuWzBdIHx8IGluc2VydCk7XG4gICAgICAgIHdoaWxlIChleGFtcGxlICYmIChjb21wYXJl\nTm9kZU5hbWUoZXhhbXBsZSwgW1wic2NyaXB0XCIsIFwic3R5bGVcIl0pIHx8IGV4YW1wbGUuY2xh\nc3NMaXN0LmNvbnRhaW5zKFwicGFnZXR1YWxfcGFnZUJhclwiKSkpIHtcbiAgICAgICAgICAgIGV4\nYW1wbGUgPSBleGFtcGxlLm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgfVxuICAgICAgICBp\nZiAoIWV4YW1wbGUgfHwgIWV4YW1wbGUucGFyZW50Tm9kZSkgZXhhbXBsZSA9IGluc2VydDtcbiAg\nICAgICAgaWYgKGV4YW1wbGUubm9kZVR5cGUgIT0gMSkge1xuICAgICAgICAgICAgZXhhbXBsZSA9\nIGV4YW1wbGUucHJldmlvdXNFbGVtZW50U2libGluZyB8fCBleGFtcGxlLnBhcmVudE5vZGU7XG4g\nICAgICAgICAgICBpZiAoIWV4YW1wbGUgfHwgZXhhbXBsZS5ub2RlVHlwZSAhPSAxKSByZXR1cm47\nXG4gICAgICAgIH1cbiAgICAgICAgbGV0IGV4YW1wbGVTdHlsZSA9IF91bnNhZmVXaW5kb3cuZ2V0\nQ29tcHV0ZWRTdHlsZShleGFtcGxlKTtcbiAgICAgICAgbGV0IGluVGFibGUsIGluTGk7XG4gICAg\nICAgIGlmIChmb3JjZVN0YXRlID09IDIpIHtcbiAgICAgICAgICAgIGluVGFibGUgPSBpbkxpID0g\nZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpblRhYmxlID0gY29tcGFyZU5v\nZGVOYW1lKGV4YW1wbGUucGFyZW50Tm9kZSwgW1widGFibGVcIiwgXCJ0Ym9keVwiXSkgfHxcbiAg\nICAgICAgICAgIGNvbXBhcmVOb2RlTmFtZShleGFtcGxlLCBbXCJ0clwiLCBcInRib2R5XCJdKSB8\nfFxuICAgICAgICAgICAgZXhhbXBsZVN0eWxlLmRpc3BsYXkgPT0gXCJ0YWJsZS1yb3dcIiB8fFxu\nICAgICAgICAgICAgKGV4YW1wbGUubmV4dEVsZW1lbnRTaWJsaW5nICYmIGNvbXBhcmVOb2RlTmFt\nZShleGFtcGxlLm5leHRFbGVtZW50U2libGluZywgW1widHJcIiwgXCJ0Ym9keVwiXSkpO1xuICAg\nICAgICAgICAgaW5MaSA9IGNvbXBhcmVOb2RlTmFtZShleGFtcGxlLCBbXCJsaVwiXSkgfHwgKGV4\nYW1wbGUubmV4dEVsZW1lbnRTaWJsaW5nICYmIGNvbXBhcmVOb2RlTmFtZShleGFtcGxlLm5leHRF\nbGVtZW50U2libGluZywgW1wibGlcIl0pKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFnZUJh\nciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaW5UYWJsZSA\/IFwidHJcIiA6IChpbkxpID8gXCJs\naVwiIDogXCJkaXZcIikpO1xuICAgICAgICBsZXQgdXBTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxl\nbWVudChcInNwYW5cIik7XG4gICAgICAgIGxldCBkb3duU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVs\nZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgICBsZXQgcGFnZVRleHQgPSBkb2N1bWVudC5jcmVhdGVF\nbGVtZW50KFwiYVwiKTtcbiAgICAgICAgbGV0IHBhZ2VOdW07XG4gICAgICAgIHBhZ2VCYXIuY2xh\nc3NOYW1lID0gaXNIaWRlQmFyID8gXCJwYWdldHVhbF9wYWdlQmFyIGF1dG9wYWdlcml6ZV9wYWdl\nX2luZm8gaGlkZVwiIDogXCJwYWdldHVhbF9wYWdlQmFyIGF1dG9wYWdlcml6ZV9wYWdlX2luZm9c\nIjtcbiAgICAgICAgcGFnZUJhci5pZCA9IFwicGFnZXR1YWxfcGFnZUJhclwiICsgY3VyUGFnZTtc\nbiAgICAgICAgcGFnZUJhci5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2xhdGVcIiwgXCJub1wiKTtcbiAg\nICAgICAgaWYgKGlzUGF1c2UpIHtcbiAgICAgICAgICAgIHBhZ2VCYXIuY2xhc3NMaXN0LmFkZChc\nInN0b3BcIik7XG4gICAgICAgIH1cbiAgICAgICAgcGFnZUJhci5zdHlsZS5jc3NUZXh0ID0gcGFn\nZUJhclN0eWxlO1xuICAgICAgICBwYWdlQmFyLnRpdGxlID0gaTE4bihpc1BhdXNlID8gXCJlbmFi\nbGVcIiA6IFwiZGlzYWJsZVwiKTtcbiAgICAgICAgdXBTcGFuLmlubmVySFRNTCA9IGNyZWF0ZUhU\nTUwodXBTdmcpO1xuICAgICAgICB1cFNwYW4uY2hpbGRyZW5bMF0uc3R5bGUuY3NzVGV4dCA9IHVw\nU3ZnQ1NTO1xuICAgICAgICB1cFNwYW4udGl0bGUgPSBpMThuKFwidG9Ub3BcIik7XG4gICAgICAg\nIGRvd25TcGFuLmlubmVySFRNTCA9IGNyZWF0ZUhUTUwoZG93blN2Zyk7XG4gICAgICAgIGRvd25T\ncGFuLmNoaWxkcmVuWzBdLnN0eWxlLmNzc1RleHQgPSBkb3duU3ZnQ1NTO1xuICAgICAgICBkb3du\nU3Bhbi50aXRsZSA9IGkxOG4oXCJ0b0JvdHRvbVwiKTtcbiAgICAgICAgdXBTcGFuLnN0eWxlLmNz\nc1RleHQgPSBpbml0U3R5bGU7XG4gICAgICAgIGRvd25TcGFuLnN0eWxlLmNzc1RleHQgPSBpbml0\nU3R5bGU7XG4gICAgICAgIHBhZ2VUZXh0LmhyZWYgPSB1cmw7XG4gICAgICAgIHBhZ2VUZXh0LnN0\neWxlLmNzc1RleHQgPSBwYWdlVGV4dFN0eWxlO1xuICAgICAgICBwYWdlVGV4dC50aXRsZSA9IGkx\nOG4oXCJjdXJyZW50XCIpO1xuICAgICAgICBpZiAob3BlbkluTmV3VGFiID09IDEpIHBhZ2VUZXh0\nLnRhcmdldCA9IFwiX2JsYW5rXCI7XG4gICAgICAgIHBhZ2VCYXIuYXBwZW5kQ2hpbGQodXBTcGFu\nKTtcbiAgICAgICAgcGFnZUJhci5hcHBlbmRDaGlsZChwYWdlVGV4dCk7XG4gICAgICAgIGxldCB0\nb3VjaGVkID0gZmFsc2U7XG4gICAgICAgIGxldCB0b3VjaEJvZHlIYW5kbGVyID0gZSA9PiB7XG4g\nICAgICAgICAgICB0b3VjaGVkID0gZmFsc2U7XG4gICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50\nKS5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdG91Y2hCb2R5SGFuZGxlciwgeyBw\nYXNzaXZlOiBmYWxzZSwgY2FwdHVyZTogZmFsc2UgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGlm\nIChydWxlUGFyc2VyLm5leHRUaXRsZSkge1xuICAgICAgICAgICAgcGFnZVRleHQuaW5uZXJIVE1M\nID0gY3JlYXRlSFRNTChydWxlUGFyc2VyLm5leHRUaXRsZSArIFwiIFwiKTtcbiAgICAgICAgICAg\nIHBhZ2VUZXh0LnRpdGxlID0gcnVsZVBhcnNlci5uZXh0VGl0bGU7XG4gICAgICAgIH1cbiAgICAg\nICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUucGFnZU51bSB8fCBwYWdlTnVtUmVnLnRlc3Qo\ndXJsKSkge1xuICAgICAgICAgICAgcGFnZVRleHQuaW5uZXJIVE1MID0gY3JlYXRlSFRNTChwYWdl\nVGV4dC5pbm5lckhUTUwgKyBpMThuKFwicGFnZVwiKSk7XG4gICAgICAgICAgICBwYWdlTnVtID0g\nZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7XG4gICAgICAgICAgICBsZXQgbnVtID0g\ncnVsZVBhcnNlci5nZXRQYWdlTnVtRnJvbVVybCh1cmwsIGN1clBhZ2UpO1xuICAgICAgICAgICAg\ncGFnZU51bS5pbm5lckhUTUwgPSBjcmVhdGVIVE1MKG51bSArIFwiPGkgc3R5bGU9J2ZvbnQtc2l6\nZTogMDsnPiZuYnNwOzxcL2k+XCIpO1xuICAgICAgICAgICAgcGFnZU51bS5jbGFzc05hbWUgPSBc\nInBhZ2V0dWFsX3BhZ2VOdW1cIjtcbiAgICAgICAgICAgIHBhZ2VOdW0udGl0bGUgPSBpMThuKFwi\naW5wdXRQYWdlTnVtXCIpO1xuICAgICAgICAgICAgcGFnZU51bS5zdHlsZS5jc3NUZXh0ID0gcGFn\nZVRleHRTdHlsZTtcbiAgICAgICAgICAgIHBhZ2VOdW0uc3R5bGUuY3Vyc29yID0gXCJwb2ludGVy\nXCI7XG4gICAgICAgICAgICBwYWdlTnVtLnN0eWxlLmNvbG9yID0gXCJcIjtcbiAgICAgICAgICAg\nIHBhZ2VOdW0uc3R5bGUubWFyZ2luTGVmdCA9IFwiNXB4XCI7XG4gICAgICAgICAgICBwYWdlTnVt\nLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAgICAgICAgICAgICAgICBsZXQg\ncGFnZUlucHV0ID0gcHJvbXB0KGkxOG4oXCJpbnB1dFBhZ2VOdW1cIiksIG51bSB8fCBcIjFcIik7\nXG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VJbnB1dCkge1xuICAgICAgICAgICAgICAgICAgICBs\nZXQgbG9jYWxQYWdlQmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwYWdldHVhbF9wYWdl\nQmFyXCIgKyBwYWdlSW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobG9jYWxQYWdlQmFy\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb1BhZ2VCYXIobG9jYWxQYWdlQmFy\nKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGxldCBwYWdlTGluayA9IHJ1bGVQYXJzZXIuZ2V0TGlua0J5UGFnZSh1cmwsIHBhZ2VJbnB1dCk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFnZUxpbmspIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBfR01fb3BlbkluVGFiKHBhZ2VMaW5rLCB7YWN0aXZlOnRydWV9KTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAg\nICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAg\ncGFnZUJhci5hcHBlbmRDaGlsZChwYWdlTnVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgIHBhZ2VUZXh0LmlubmVySFRNTCA9IGNyZWF0ZUhUTUwocGFnZVRleHQuaW5uZXJIVE1MICsg\naTE4bihcInBhZ2VcIikgKyBjdXJQYWdlICsgXCI8aSBzdHlsZT0nZm9udC1zaXplOiAwOyc+Jm5i\nc3A7PFwvaT5cIik7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHByZUJ0biA9IGRvY3VtZW50LmNy\nZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgICBwcmVCdG4uaW5uZXJIVE1MID0gY3JlYXRl\nSFRNTChcIuKIp1wiKTtcbiAgICAgICAgcHJlQnRuLnRpdGxlID0gaTE4bihcInByZXZQYWdlXCIp\nO1xuICAgICAgICBwcmVCdG4uY2xhc3NOYW1lID0gXCJwcmV2U2NyZWVuXCI7XG4gICAgICAgIHBy\nZUJ0bi5zdHlsZS5jc3NUZXh0ID0gXCJkaXNwbGF5OiBub25lO3RleHQtYWxpZ246IGNlbnRlcjty\naWdodDogdW5zZXQ7IGZsb2F0OiBsZWZ0OyB3aWR0aDogNDBweDsgYmFja2dyb3VuZDogcmdiYSgy\nNDAsIDI0MCwgMjQwLCAwLjgpOyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDk5OTk5OTk7\nIGJveC1zaGFkb3c6IHJnYigwIDAgMCBcLyA1MCUpIDBweCAtNXB4IDVweDsgYm9yZGVyLXJhZGl1\nczogMjBweCAyMHB4IDAgMDsgbWFyZ2luLXRvcDogLTMwcHg7IFwiO1xuICAgICAgICBsZXQgbmV4\ndEJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpO1xuICAgICAgICBuZXh0QnRu\nLmlubmVySFRNTCA9IGNyZWF0ZUhUTUwoXCLiiKhcIik7XG4gICAgICAgIG5leHRCdG4udGl0bGUg\nPSBpMThuKFwibmV4dFBhZ2VcIik7XG4gICAgICAgIG5leHRCdG4uY2xhc3NOYW1lID0gXCJuZXh0\nU2NyZWVuXCI7XG4gICAgICAgIG5leHRCdG4uc3R5bGUuY3NzVGV4dCA9IFwiZGlzcGxheTogbm9u\nZTt0ZXh0LWFsaWduOiBjZW50ZXI7cmlnaHQ6IHVuc2V0OyBmbG9hdDogbGVmdDsgd2lkdGg6IDQw\ncHg7IGJhY2tncm91bmQ6IHJnYmEoMjQwLCAyNDAsIDI0MCwgMC44KTsgcG9zaXRpb246IGFic29s\ndXRlOyB6LWluZGV4OiA5OTk5OTk5OyBib3gtc2hhZG93OiByZ2IoMCAwIDAgXC8gNTAlKSAwcHgg\nNXB4IDVweDsgYm9yZGVyLXJhZGl1czogMCAwIDIwcHggMjBweDsgbWFyZ2luLXRvcDogMzBweDsg\nXCI7XG4gICAgICAgIGxldCBsb2NhbFBhZ2UgPSBjdXJQYWdlO1xuICAgICAgICBwcmVCdG4uYWRk\nRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFn\nYXRpb24oKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGxl\ndCBwcmVQYWdlQmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwYWdldHVhbF9wYWdlQmFy\nXCIgKyAobG9jYWxQYWdlIC0gMSkpO1xuICAgICAgICAgICAgaWYgKHByZVBhZ2VCYXIpIHtcbiAg\nICAgICAgICAgICAgICBzY3JvbGxUb1BhZ2VCYXIocHJlUGFnZUJhcik7XG4gICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBzY3JvbGxUb3AgPSBnZXRCb2R5KGRvY3VtZW50\nKS5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAg\nICAgICAgICAgICB0YXJnZXRZID0gc2Nyb2xsVG9wIC0gKHdpbmRvdy5pbm5lckhlaWdodCB8fCBk\nb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB3\naW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdldFksIGJlaGF2aW9yOiAnc21vb3RoJ30pO1xuICAg\nICAgICAgICAgfVxuICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgbmV4dEJ0bi5hZGRFdmVudExp\nc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigp\nO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgbGV0IG5leHRQ\nYWdlQmFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIiNwYWdldHVhbF9wYWdlQmFyXCIgKyAo\nbG9jYWxQYWdlICsgMSkpO1xuICAgICAgICAgICAgaWYgKG5leHRQYWdlQmFyKSB7XG4gICAgICAg\nICAgICAgICAgc2Nyb2xsVG9QYWdlQmFyKG5leHRQYWdlQmFyKTtcbiAgICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsSCA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50\nRWxlbWVudC5zY3JvbGxIZWlnaHQsIGdldEJvZHkoZG9jdW1lbnQpLnNjcm9sbEhlaWdodCk7XG4g\nICAgICAgICAgICAgICAgdGFyZ2V0WSA9IHNjcm9sbEggfHwgOTk5OTk5OTtcbiAgICAgICAgICAg\nICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdldFksIGJlaGF2aW9yOiAnc21vb3RoJ30p\nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgaWYgKCFydWxlc0Rh\ndGEuaGlkZUJhckFycm93KSB7XG4gICAgICAgICAgICBwYWdlVGV4dC5pbnNlcnRCZWZvcmUocHJl\nQnRuLCBwYWdlVGV4dC5maXJzdENoaWxkKTtcbiAgICAgICAgICAgIHBhZ2VUZXh0Lmluc2VydEJl\nZm9yZShuZXh0QnRuLCBwYWdlVGV4dC5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBp\nZiAoY3VyRm9yY2VJZnJhbWUpIHtcbiAgICAgICAgICAgIGxldCBiZ1JpbmcgPSBkb2N1bWVudC5j\ncmVhdGVFbGVtZW50KFwic3BhblwiKTtcbiAgICAgICAgICAgIGJnUmluZy5jbGFzc05hbWUgPSBc\nInJlZnJlc2hSaW5nXCI7XG4gICAgICAgICAgICBiZ1Jpbmcuc3R5bGUuZGlzcGxheSA9IFwibm9u\nZVwiO1xuICAgICAgICAgICAgYmdSaW5nLmlubmVySFRNTCA9IGNyZWF0ZUhUTUwodXBTdmcpO1xu\nICAgICAgICAgICAgcGFnZVRleHQudGl0bGUgPSBcIlJlZnJlc2hcIjtcbiAgICAgICAgICAgIHBh\nZ2VUZXh0LmFwcGVuZENoaWxkKGJnUmluZyk7XG4gICAgICAgICAgICBwYWdlVGV4dC5hZGRFdmVu\ndExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0\nICE9PSBwYWdlVGV4dCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmIChlLmN0cmxLZXkgfHwg\nZS5hbHRLZXkgfHwgZS5zaGlmdEtleSB8fCBlLm1ldGFLZXkpIHJldHVybjtcbiAgICAgICAgICAg\nICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgbGV0IG5leHRFbGUgPSBw\nYWdlQmFyICYmIHBhZ2VCYXIubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgICAgIGlm\nIChuZXh0RWxlICYmIG5leHRFbGUubmFtZSA9PSAncGFnZXR1YWwtaWZyYW1lJykge1xuICAgICAg\nICAgICAgICAgICAgICBpZiAoY3VyRm9yY2VJZnJhbWUgPT0gbmV4dEVsZSkge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgbmV4dEVsZS5zZXRBdHRyaWJ1dGUoXCJsb2FkZWRcIiwgXCJyZWZyZXNo\nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5leHRFbGUu\nc3JjID0gbmV4dEVsZS5zcmM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdHJ1\nZSk7XG4gICAgICAgIH0gZWxzZSBpZiAocnVsZXNEYXRhLnBhZ2VCYXJNZW51KSB7XG4gICAgICAg\nICAgICBwYWdlVGV4dC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZSA9PiB7XG4gICAgICAg\nICAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBwYWdlVGV4dCkgcmV0dXJuO1xuICAgICAgICAgICAg\nICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGUuY3RybEtleSB8\nfCBlLmFsdEtleSB8fCBlLnNoaWZ0S2V5IHx8IGUubWV0YUtleSkgcmV0dXJuO1xuICAgICAgICAg\nICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBwaWNrZXIuc3RhcnQo\nKTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAg\ncGFnZVRleHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgZSA9PiB7XG4gICAgICAg\nICAgICAgICAgaWYgKHRvdWNoZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICB0b3VjaGVkID0g\ndHJ1ZTtcbiAgICAgICAgICAgICAgICBwYWdlVGV4dC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25v\nbmUnO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAg\nICAgICBwYWdlVGV4dC5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ2FsbCc7XG4gICAgICAgICAgICAg\nICAgfSwgMjUwKTtcbiAgICAgICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50KS5hZGRFdmVudExp\nc3RlbmVyKFwidG91Y2hzdGFydFwiLCB0b3VjaEJvZHlIYW5kbGVyLCB7IHBhc3NpdmU6IGZhbHNl\nLCBjYXB0dXJlOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH0sIHsgcGFzc2l2ZTogZmFsc2UsIGNh\ncHR1cmU6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICAgIHBhZ2VCYXIuYXBwZW5kQ2hpbGQo\nZG93blNwYW4pO1xuICAgICAgICBpZiAoZm9yY2VTdGF0ZSA9PSAyKSB7XG4gICAgICAgICAgICBw\nYWdlQmFyLnN0eWxlLndpZHRoID0gXCI5OSVcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgIGxldCBwYXJlbnRTdHlsZSA9IF91bnNhZmVXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShleGFt\ncGxlLnBhcmVudE5vZGUpO1xuICAgICAgICAgICAgbGV0IHBhcmVudFdpZHRoID0gZXhhbXBsZS5w\nYXJlbnROb2RlLm9mZnNldFdpZHRoIHx8IHBhcnNlSW50KHBhcmVudFN0eWxlLndpZHRoKTtcbiAg\nICAgICAgICAgIHBhZ2VCYXIuc3R5bGUud2lkdGggPSBwYXJlbnRXaWR0aCAtIHBhcnNlSW50KHBh\ncmVudFN0eWxlLnBhZGRpbmdMZWZ0KSAtIHBhcnNlSW50KHBhcmVudFN0eWxlLnBhZGRpbmdSaWdo\ndCkgLSAxMCArIFwicHhcIjtcbiAgICAgICAgICAgIHBhZ2VCYXIuc3R5bGUubWFyZ2luID0gJzEw\ncHggNXB4JztcbiAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZS5kaXNwbGF5ID09IFwiZ3JpZFwi\nIHx8IHBhcmVudFN0eWxlLmRpc3BsYXkgPT0gXCJpbmxpbmUtZ3JpZFwiKSB7XG4gICAgICAgICAg\nICAgICAgcGFnZUJhci5zdHlsZS5ncmlkQ29sdW1uID0gXCIxXC8tMVwiO1xuICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgaWYgKGluVGFibGUpIHtcbiAgICAgICAgICAgICAgICBleGFtcGxlID0g\nY29tcGFyZU5vZGVOYW1lKGV4YW1wbGUsIFtcInRyXCIsIFwidGJvZHlcIl0pID8gZXhhbXBsZSA6\nIGV4YW1wbGUubmV4dEVsZW1lbnRTaWJsaW5nIHx8IGV4YW1wbGU7XG4gICAgICAgICAgICAgICAg\naWYgKGNvbXBhcmVOb2RlTmFtZShleGFtcGxlLCBbXCJ0Ym9keVwiXSkpIGV4YW1wbGUgPSBleGFt\ncGxlLnF1ZXJ5U2VsZWN0b3IoXCJ0clwiKTtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dFRyID0g\nZXhhbXBsZTtcbiAgICAgICAgICAgICAgICB3aGlsZSAobmV4dFRyICYmIG5leHRUci5jaGlsZHJl\nbi5sZW5ndGggPT0gMCkgbmV4dFRyID0gbmV4dFRyLm5leHRFbGVtZW50U2libGluZztcbiAgICAg\nICAgICAgICAgICBpZiAobmV4dFRyKSBleGFtcGxlID0gbmV4dFRyO1xuICAgICAgICAgICAgICAg\nIGxldCB0ZE51bSA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKGV4YW1wbGVTdHlsZS5kaXNwbGF5\nID09IFwidGFibGUtcm93XCIpIHtcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxs\nKGV4YW1wbGUuY2hpbGRyZW4sIGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRkTnVt\nICs9IGVsLmNvbFNwYW4gfHwgMTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgW10uZm9yRWFjaC5jYWxsKGV4YW1w\nbGUuY2hpbGRyZW4sIGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJl\nTm9kZU5hbWUoZWwsIFtcInRkXCIsIFwidGhcIl0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAg\nICAgICAgdGROdW0gKz0gZWwuY29sU3BhbiB8fCAxO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAg\nICAgICAgcGFnZUJhci5zdHlsZS5jc3NUZXh0ID0gXCJcIjtcbiAgICAgICAgICAgICAgICBwYWdl\nQmFyLnN0eWxlLmRpc3BsYXkgPSBcInRhYmxlLXJvd1wiO1xuICAgICAgICAgICAgICAgIHBhZ2VC\nYXIuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gXCJ1bnNldFwiO1xuICAgICAgICAgICAgICAgIHBh\nZ2VCYXIuc3R5bGUubGluZUhlaWdodCA9IFwiMjBweFwiO1xuICAgICAgICAgICAgICAgIHBhZ2VC\nYXIuc3R5bGUuYm94U2hhZG93ID0gXCJcIjtcbiAgICAgICAgICAgICAgICBsZXQgdGQgPSBkb2N1\nbWVudC5jcmVhdGVFbGVtZW50KFwidGRcIik7XG4gICAgICAgICAgICAgICAgdGQuY29sU3BhbiA9\nIHRkTnVtIHx8IDE7XG4gICAgICAgICAgICAgICAgbGV0IGluVGQgPSBkb2N1bWVudC5jcmVhdGVF\nbGVtZW50KFwiZGl2XCIpO1xuICAgICAgICAgICAgICAgIGluVGQuc3R5bGUuY3NzVGV4dCA9IHBh\nZ2VCYXJTdHlsZTtcbiAgICAgICAgICAgICAgICBpblRkLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xu\nICAgICAgICAgICAgICAgIGluVGQuY2xhc3NOYW1lID0gcGFnZUJhci5jbGFzc05hbWU7XG4gICAg\nICAgICAgICAgICAgcGFnZUJhci5jbGFzc05hbWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgIGlu\nVGQuYXBwZW5kQ2hpbGQodXBTcGFuKTtcbiAgICAgICAgICAgICAgICBpblRkLmFwcGVuZENoaWxk\nKHBhZ2VUZXh0KTtcbiAgICAgICAgICAgICAgICBpZiAocGFnZU51bSkgaW5UZC5hcHBlbmRDaGls\nZChwYWdlTnVtKTtcbiAgICAgICAgICAgICAgICBpblRkLmFwcGVuZENoaWxkKGRvd25TcGFuKTtc\nbiAgICAgICAgICAgICAgICB0ZC5hcHBlbmRDaGlsZChpblRkKTtcbiAgICAgICAgICAgICAgICBw\nYWdlQmFyLmFwcGVuZENoaWxkKHRkKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5MaSkge1xu\nICAgICAgICAgICAgICAgIGV4YW1wbGUgPSBjb21wYXJlTm9kZU5hbWUoZXhhbXBsZSwgW1wibGlc\nIl0pID8gZXhhbXBsZSA6IGV4YW1wbGUubmV4dEVsZW1lbnRTaWJsaW5nIHx8IGV4YW1wbGU7XG4g\nICAgICAgICAgICAgICAgcGFnZUJhci5zdHlsZS5vcGFjaXR5ID0gMTtcbiAgICAgICAgICAgICAg\nICBwYWdlQmFyLnN0eWxlLmRpc3BsYXkgPSBnZXRDb21wdXRlZFN0eWxlKGV4YW1wbGUpLmRpc3Bs\nYXk7XG4gICAgICAgICAgICAgICAgcGFnZUJhci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcInVu\nc2V0XCI7XG4gICAgICAgICAgICAgICAgcGFnZUJhci5zdHlsZS5saW5lSGVpZ2h0ID0gXCIyMHB4\nXCI7XG4gICAgICAgICAgICAgICAgcGFnZUJhci5zdHlsZS5ib3hTaGFkb3cgPSBcIlwiO1xuICAg\nICAgICAgICAgICAgIHBhZ2VCYXIuc3R5bGUuYm9yZGVyID0gXCJcIjtcbiAgICAgICAgICAgICAg\nICBwYWdlQmFyLnN0eWxlLndpZHRoID0gXCJcIjtcbiAgICAgICAgICAgICAgICBwYWdlQmFyLnN0\neWxlLm1heFdpZHRoID0gXCJ1bnNldFwiO1xuICAgICAgICAgICAgICAgIHBhZ2VCYXIuc3R5bGUu\nZmxleCA9IFwiYXV0b1wiO1xuICAgICAgICAgICAgICAgIGxldCBpblRkID0gZG9jdW1lbnQuY3Jl\nYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICAgICAgICAgICAgICBpblRkLnN0eWxlLmNzc1RleHQg\nPSBwYWdlQmFyU3R5bGU7XG4gICAgICAgICAgICAgICAgaW5UZC5zdHlsZS5kaXNwbGF5ID0gXCJc\nIjtcbiAgICAgICAgICAgICAgICBpblRkLnN0eWxlLm1hcmdpbiA9IFwiMFwiXG4gICAgICAgICAg\nICAgICAgaW5UZC5zdHlsZS5wYWRkaW5nID0gXCIwIDBcIjtcbiAgICAgICAgICAgICAgICBpblRk\nLnN0eWxlLnRleHRBbGlnbiA9IFwiY2VudGVyXCI7XG4gICAgICAgICAgICAgICAgaW5UZC5zdHls\nZS5taW5XaWR0aCA9IFwiMTUwcHhcIjtcbiAgICAgICAgICAgICAgICBpblRkLnN0eWxlLndpZHRo\nID0gJ2NhbGMoMTAwJSAtIDIwcHgpJztcbiAgICAgICAgICAgICAgICBpblRkLmNsYXNzTmFtZSA9\nIHBhZ2VCYXIuY2xhc3NOYW1lO1xuICAgICAgICAgICAgICAgIHBhZ2VCYXIuY2xhc3NOYW1lID0g\nXCJcIjtcbiAgICAgICAgICAgICAgICBpblRkLmFwcGVuZENoaWxkKHVwU3Bhbik7XG4gICAgICAg\nICAgICAgICAgaW5UZC5hcHBlbmRDaGlsZChwYWdlVGV4dCk7XG4gICAgICAgICAgICAgICAgaWYg\nKHBhZ2VOdW0pIGluVGQuYXBwZW5kQ2hpbGQocGFnZU51bSk7XG4gICAgICAgICAgICAgICAgaW5U\nZC5hcHBlbmRDaGlsZChkb3duU3Bhbik7XG4gICAgICAgICAgICAgICAgaWYgKHBhZ2VCYXIuc3R5\nbGUuZGlzcGxheSA9PT0gJ3RhYmxlLXJvdycpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRk\nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRkXCIpO1xuICAgICAgICAgICAgICAgICAgICB0\nZC5jb2xTcGFuID0gZXhhbXBsZS5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAg\nIHRkLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgICAgICAgICB0ZC5hcHBlbmRD\naGlsZChpblRkKTtcbiAgICAgICAgICAgICAgICAgICAgcGFnZUJhci5hcHBlbmRDaGlsZCh0ZCk7\nXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaW5UZC5zdHls\nZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgICAgICAgICAgcGFnZUJhci5hcHBlbmRDaGls\nZChpblRkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxu\nICAgICAgICB1cFNwYW4uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAg\nICAgICAgZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgICAgIGRvY3Vt\nZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgZS5wcmV2ZW50\nRGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSk7\nXG4gICAgICAgIGRvd25TcGFuLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBlID0+IHtcbiAg\nICAgICAgICAgIGlmICghZS5hbHRLZXkgJiYgIWUuY3RybEtleSAmJiAhZS5zaGlmdEtleSAmJiAh\nZS5tZXRhS2V5KSB7XG4gICAgICAgICAgICAgICAgY2hhbmdlU3RvcCh0cnVlKTtcbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIHBhZ2VCYXIudGl0bGUgPSBpMThuKGlzUGF1c2UgPyBcImVuYWJs\nZVwiIDogXCJkaXNhYmxlXCIpO1xuICAgICAgICAgICAgc2Nyb2xsSCA9IE1hdGgubWF4KGRvY3Vt\nZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQsIGdldEJvZHkoZG9jdW1lbnQpLnNjcm9s\nbEhlaWdodCk7XG4gICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50KS5zY3JvbGxUb3AgPSBzY3Jv\nbGxIIHx8IDk5OTk5OTk7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Ny\nb2xsVG9wID0gc2Nyb2xsSCB8fCA5OTk5OTk5O1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVs\ndCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAg\nICAgIHBhZ2VCYXIuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGUgPT4ge1xuICAgICAgICAg\nICAgY2hhbmdlU3RvcCghaXNQYXVzZSk7XG4gICAgICAgICAgICBwYWdlQmFyLnRpdGxlID0gaTE4\nbihpc1BhdXNlID8gXCJlbmFibGVcIiA6IFwiZGlzYWJsZVwiKTtcbiAgICAgICAgfSk7XG4gICAg\nICAgIHJ1bGVQYXJzZXIuaW5zZXJ0RWxlbWVudChwYWdlQmFyKTtcbiAgICAgICAgcnVsZVBhcnNl\nci5ydW5QYWdlQmFyKHBhZ2VCYXIpO1xuXG4gICAgICAgIGlmIChzaWRlQ29udHJvbGxlci5pbml0\nZWQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG9ic2VydmVyID0g\nbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgICAgICAg\nICBpZiAoZW50cmllc1swXS5pbnRlcnNlY3Rpb25SYXRpbyA+IDApIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIHNpZGVDb250cm9sbGVyLnBhZ2VudW0uaW5uZXJIVE1MID0gY3JlYXRlSFRNTChs\nb2NhbFBhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4g\nICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShwYWdlQmFyKTtcbiAgICAgICAgICAgIH0g\nY2F0Y2goZSkge31cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFnZUJhcjtcbiAgICB9XG5c\nbiAgICBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yRWxlbWVudChzZWwsIGRvYywgbWF4VGltZSkge1xu\nICAgICAgICBpZiAoIXNlbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlz\nZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHBhc3NlZFRpbWUgPSAwO1xuICAgICAg\nICAgICAgbGV0IGNoZWNrSW52ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAg\nIGxldCByZXN1bHQgPSBnZXRFbGVtZW50KHNlbCwgZG9jLCBudWxsLCB0cnVlKTtcbiAgICAgICAg\nICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwo\nY2hlY2tJbnYpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAg\nICAgICAgICAgfSBlbHNlIGlmIChtYXhUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhc3Nl\nZFRpbWUgKz0gMTAwO1xuICAgICAgICAgICAgICAgICAgICBpZiAocGFzc2VkVGltZSA+PSBtYXhU\naW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGNoZWNrSW52KTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAg\nIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JFbGVtZW50cyhzZWwsIGRv\nYywgbWF4VGltZSkge1xuICAgICAgICBpZiAoIXNlbCkgcmV0dXJuIG51bGw7XG4gICAgICAgIHJl\ndHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHBhc3NlZFRp\nbWUgPSAwO1xuICAgICAgICAgICAgbGV0IGNoZWNrSW52ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xu\nICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBnZXRBbGxFbGVtZW50cyhzZWwsIGRvYywgbnVs\nbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQubGVuZ3RoKSB7\nXG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tJbnYpO1xuICAgICAgICAg\nICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICht\nYXhUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhc3NlZFRpbWUgKz0gMTAwO1xuICAgICAg\nICAgICAgICAgICAgICBpZiAocGFzc2VkVGltZSA+PSBtYXhUaW1lKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBjbGVhckludGVydmFsKGNoZWNrSW52KTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFz\neW5jIGZ1bmN0aW9uIGNsaWNrQWN0aW9uKHNlbCwgZG9jKSB7XG4gICAgICAgIGxldCBidG4gPSBh\nd2FpdCB3YWl0Rm9yRWxlbWVudChzZWwsIGRvYyk7XG4gICAgICAgIGVtdUNsaWNrKGJ0biwgZG9j\nKTtcbiAgICB9XG5cbiAgICBhc3luYyBmdW5jdGlvbiBlbnRlckFjdGlvbihzZWwsIGRvYykge1xu\nICAgICAgICBsZXQgYnRuID0gYXdhaXQgd2FpdEZvckVsZW1lbnQoc2VsLCBkb2MpO1xuICAgICAg\nICBsZXQgZXZlbnRQYXJhbSA9IHsga2V5OiBcIkVudGVyXCIsIGtleUNvZGU6IDEzLCBidWJibGVz\nOiB0cnVlIH07XG4gICAgICAgIGxldCBldmVudCA9IG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3du\nJywgZXZlbnRQYXJhbSk7XG4gICAgICAgIGJ0bi5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAg\nICAgZXZlbnQgPSBuZXcgS2V5Ym9hcmRFdmVudCgna2V5dXAnLCBldmVudFBhcmFtKTtcbiAgICAg\nICAgYnRuLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICBldmVudCA9IG5ldyBLZXlib2Fy\nZEV2ZW50KCdrZXlwcmVzcycsIGV2ZW50UGFyYW0pO1xuICAgICAgICBidG4uZGlzcGF0Y2hFdmVu\ndChldmVudCk7XG4gICAgfVxuXG4gICAgYXN5bmMgZnVuY3Rpb24gaW5wdXRBY3Rpb24oc2VsLCB2\nLCBkb2MpIHtcbiAgICAgICAgbGV0IGlucHV0ID0gYXdhaXQgd2FpdEZvckVsZW1lbnQoc2VsLCBk\nb2MpO1xuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoJ2ZvY3VzJywgeyBidWJibGVzOiB0\ncnVlIH0pO1xuICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgbGV0\nIGxhc3RWYWx1ZSA9IGlucHV0LnZhbHVlO1xuICAgICAgICBpZiAoaW5wdXQubm9kZU5hbWUudG9V\ncHBlckNhc2UoKSA9PSBcIklOUFVUXCIpIHtcbiAgICAgICAgICAgIHZhciBuYXRpdmVJbnB1dFZh\nbHVlU2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTElu\ncHV0RWxlbWVudC5wcm90b3R5cGUsIFwidmFsdWVcIikuc2V0O1xuICAgICAgICAgICAgbmF0aXZl\nSW5wdXRWYWx1ZVNldHRlci5jYWxsKGlucHV0LCB2KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1\ndC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpID09IFwiVEVYVEFSRUFcIikge1xuICAgICAgICAgICAg\ndmFyIG5hdGl2ZVRleHRhcmVhVmFsdWVTZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj\ncmlwdG9yKHdpbmRvdy5IVE1MVGV4dEFyZWFFbGVtZW50LnByb3RvdHlwZSwgXCJ2YWx1ZVwiKS5z\nZXQ7XG4gICAgICAgICAgICBuYXRpdmVUZXh0YXJlYVZhbHVlU2V0dGVyLmNhbGwoaW5wdXQsIHYp\nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5wdXQuaW5uZXJIVE1MID0gY3JlYXRl\nSFRNTCh2KTtcbiAgICAgICAgfVxuICAgICAgICBldmVudCA9IG5ldyBFdmVudCgnaW5wdXQnLCB7\nIGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgIGxldCB0cmFja2VyID0gaW5wdXQuX3ZhbHVlVHJh\nY2tlcjtcbiAgICAgICAgaWYgKHRyYWNrZXIpIHtcbiAgICAgICAgICAgIHRyYWNrZXIuc2V0VmFs\ndWUobGFzdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2\nZW50KTtcbiAgICAgICAgZXZlbnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1\nZSB9KTtcbiAgICAgICAgaW5wdXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICAgIGRlYnVn\nKGlucHV0LCBgaW5wdXQgJHtzZWx9YCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZW11Q2xpY2so\nYnRuLCBkb2MpIHtcbiAgICAgICAgaWYgKCFkb2MpIGRvYyA9IGRvY3VtZW50O1xuICAgICAgICBs\nZXQgY3VyU2Nyb2xsID0gZ2V0Qm9keShkb2MpLnNjcm9sbFRvcCB8fCBkb2MuZG9jdW1lbnRFbGVt\nZW50LnNjcm9sbFRvcDtcbiAgICAgICAgbGV0IG9yZ0hyZWYgPSBidG4uZ2V0QXR0cmlidXRlKCdo\ncmVmJyk7XG4gICAgICAgIGlmIChvcmdIcmVmICYmIG9yZ0hyZWYucmVwbGFjZShsb2NhdGlvbi5v\ncmlnaW4gKyBsb2NhdGlvbi5wYXRobmFtZSwgXCJcIikuaW5kZXhPZihcIiNcIikgPT09IDApIHtc\nbiAgICAgICAgICAgIGxldCBoYXNoQWN0aW9uID0gZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5w\ncmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGdldEJvZHkoZG9jKS5zY3JvbGxUb3Ag\nPSBjdXJTY3JvbGw7XG4gICAgICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxU\nb3AgPSBjdXJTY3JvbGw7XG4gICAgICAgICAgICAgICAgYnRuLnJlbW92ZUV2ZW50TGlzdGVuZXIo\nJ2NsaWNrJywgaGFzaEFjdGlvbiwgZmFsc2UpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAg\nIGJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGhhc2hBY3Rpb24sIGZhbHNlKTtcbiAgICAg\nICAgfVxuICAgICAgICBpZiAoIVBvaW50ZXJFdmVudCkgcmV0dXJuIGJ0bi5jbGljaygpO1xuICAg\nICAgICBsZXQgZXZlbnRQYXJhbSA9IHtcbiAgICAgICAgICAgIGlzVHJ1c3RlZDogdHJ1ZSxcbiAg\nICAgICAgICAgIGFsdEtleTogZmFsc2UsXG4gICAgICAgICAgICBhemltdXRoQW5nbGU6IDAsXG4g\nICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgYnV0dG9uOiAwLFxuICAgICAg\nICAgICAgYnV0dG9uczogMCxcbiAgICAgICAgICAgIGNsaWVudFg6IDEsXG4gICAgICAgICAgICBj\nbGllbnRZOiAxLFxuICAgICAgICAgICAgY2FuY2VsQnViYmxlOiBmYWxzZSxcbiAgICAgICAgICAg\nIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAg\nICAgIGN0cmxLZXk6IGZhbHNlLFxuICAgICAgICAgICAgZGVmYXVsdFByZXZlbnRlZDogZmFsc2Us\nXG4gICAgICAgICAgICBkZXRhaWw6IDEsXG4gICAgICAgICAgICBldmVudFBoYXNlOiAyLFxuICAg\nICAgICAgICAgZnJvbUVsZW1lbnQ6IG51bGwsXG4gICAgICAgICAgICBoZWlnaHQ6IDEsXG4gICAg\nICAgICAgICBpc1ByaW1hcnk6IGZhbHNlLFxuICAgICAgICAgICAgbWV0YUtleTogZmFsc2UsXG4g\nICAgICAgICAgICBwb2ludGVySWQ6IDEsXG4gICAgICAgICAgICBwb2ludGVyVHlwZTogXCJtb3Vz\nZVwiLFxuICAgICAgICAgICAgcHJlc3N1cmU6IDAsXG4gICAgICAgICAgICByZWxhdGVkVGFyZ2V0\nOiBudWxsLFxuICAgICAgICAgICAgcmV0dXJuVmFsdWU6IHRydWUsXG4gICAgICAgICAgICBzaGlm\ndEtleTogZmFsc2UsXG4gICAgICAgICAgICB0b0VsZW1lbnQ6IG51bGwsXG4gICAgICAgICAgICB0\nd2lzdDogMCxcbiAgICAgICAgICAgIHdoaWNoOiAxXG4gICAgICAgIH07XG4gICAgICAgIGxldCBt\nb3VzZUV2ZW50ID0gbmV3IFBvaW50ZXJFdmVudChcIm1vdXNlZG93blwiLCBldmVudFBhcmFtKTtc\nbiAgICAgICAgYnRuLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7XG4gICAgICAgIG1vdXNlRXZl\nbnQgPSBuZXcgUG9pbnRlckV2ZW50KFwibW91c2V1cFwiLCBldmVudFBhcmFtKTtcbiAgICAgICAg\nYnRuLmRpc3BhdGNoRXZlbnQobW91c2VFdmVudCk7XG4gICAgICAgIGxldCBkaXNwYXRjaFRvdWNo\nRXZlbnQgPSAoZWxlLCB0eXBlKSA9PiB7XG4gICAgICAgICAgICBsZXQgdG91Y2hFdmVudDtcbiAg\nICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdG91Y2hFdmVudCA9IGRvY3VtZW50LmNy\nZWF0ZUV2ZW50KCdUb3VjaEV2ZW50JylcbiAgICAgICAgICAgICAgICB0b3VjaEV2ZW50LmluaXRU\nb3VjaEV2ZW50KHR5cGUsIHRydWUsIHRydWUpXG4gICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtc\nbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0b3VjaEV2ZW50ID0g\nZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ1VJRXZlbnQnKVxuICAgICAgICAgICAgICAgICAgICB0b3Vj\naEV2ZW50LmluaXRVSUV2ZW50KHR5cGUsIHRydWUsIHRydWUpXG4gICAgICAgICAgICAgICAgfSBj\nYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvdWNoRXZlbnQgPSBkb2N1bWVudC5j\ncmVhdGVFdmVudCgnRXZlbnQnKVxuICAgICAgICAgICAgICAgICAgICB0b3VjaEV2ZW50LmluaXRF\ndmVudCh0eXBlLCB0cnVlLCB0cnVlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgIGlmICh0b3VjaEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAg\nICAgICAgICAgICAgICAgICAgdG91Y2hFdmVudC50YXJnZXRUb3VjaGVzID0gW3tcbiAgICAgICAg\nICAgICAgICAgICAgICAgIHBhZ2VYOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVk6\nIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRYOiAxLFxuICAgICAgICAgICAgICAg\nICAgICAgICAgY2xpZW50WTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogYnRu\nXG4gICAgICAgICAgICAgICAgICAgIH1dO1xuICAgICAgICAgICAgICAgICAgICB0b3VjaEV2ZW50\nLnRvdWNoZXMgPSBbe1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVg6IDEsXG4gICAgICAg\nICAgICAgICAgICAgICAgICBwYWdlWTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu\ndFg6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRZOiAxLFxuICAgICAgICAgICAg\nICAgICAgICAgICAgdGFyZ2V0OiBidG5cbiAgICAgICAgICAgICAgICAgICAgfV07XG4gICAgICAg\nICAgICAgICAgICAgIHRvdWNoRXZlbnQuY2hhbmdlZFRvdWNoZXMgPSBbe1xuICAgICAgICAgICAg\nICAgICAgICAgICAgcGFnZVg6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlWTogMSxc\nbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFg6IDEsXG4gICAgICAgICAgICAgICAgICAg\nICAgICBjbGllbnRZOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBidG5cbiAg\nICAgICAgICAgICAgICAgICAgfV07XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxu\nICAgICAgICAgICAgICAgIGVsZS5kaXNwYXRjaEV2ZW50KHRvdWNoRXZlbnQpO1xuICAgICAgICAg\nICAgfVxuICAgICAgICB9XG4gICAgICAgIGRpc3BhdGNoVG91Y2hFdmVudChidG4sIFwidG91Y2hz\ndGFydFwiKTtcbiAgICAgICAgZGlzcGF0Y2hUb3VjaEV2ZW50KGJ0biwgXCJ0b3VjaGVuZFwiKTtc\nblxuICAgICAgICBidG4uY2xpY2soKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbXVJbnB1dChp\nbnB1dCwgdikge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIGlmICghaW5w\ndXQpIHJldHVybiB0cnVlO1xuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoJ2ZvY3VzJywg\neyBidWJibGVzOiB0cnVlIH0pO1xuICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtc\nbiAgICAgICAgbGV0IGxhc3RWYWx1ZSA9IGlucHV0LnZhbHVlO1xuICAgICAgICBpZiAoaW5wdXQu\ndHlwZSA9PSAnZmlsZScpIHtcbiAgICAgICAgICAgIGxldCBmaWxlID0gdjtcbiAgICAgICAgICAg\nIGxldCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdLCB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3Rl\neHRcL3BsYWluJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmaWxlID0gbmV3IEZpbGUo\nW2Jsb2JdLCAnbm9uYW1lLnR4dCcsIHsgdHlwZTogYmxvYi50eXBlIH0pO1xuICAgICAgICAgICAg\nbGV0IGRhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKTtcbiAgICAgICAgICAgIGRhdGFU\ncmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gICAgICAgICAgICBpbnB1dC5maWxlcyA9IGRhdGFU\ncmFuc2Zlci5maWxlcztcbiAgICAgICAgICAgIHYgPSBcImM6XC9mYWtlcGF0aFwvZmFrZWZpbGVc\nIjtcbiAgICAgICAgfSBlbHNlIGlmIChcL0lOUFVUXC9pLnRlc3QoaW5wdXQubm9kZU5hbWUpKSB7\nXG4gICAgICAgICAgICB2YXIgbmF0aXZlSW5wdXRWYWx1ZVNldHRlciA9IE9iamVjdC5nZXRPd25Q\ncm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LkhUTUxJbnB1dEVsZW1lbnQucHJvdG90eXBlLCBcInZh\nbHVlXCIpLnNldDtcbiAgICAgICAgICAgIG5hdGl2ZUlucHV0VmFsdWVTZXR0ZXIuY2FsbChpbnB1\ndCwgdik7XG4gICAgICAgIH0gZWxzZSBpZiAoXC9TRUxFQ1RcL2kudGVzdChpbnB1dC5ub2RlTmFt\nZSkpIHtcbiAgICAgICAgICAgIHZhciBuYXRpdmVTZWxlY3RWYWx1ZVNldHRlciA9IE9iamVjdC5n\nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LkhUTUxTZWxlY3RFbGVtZW50LnByb3RvdHlw\nZSwgXCJ2YWx1ZVwiKS5zZXQ7XG4gICAgICAgICAgICBuYXRpdmVTZWxlY3RWYWx1ZVNldHRlci5j\nYWxsKGlucHV0LCB2KTtcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5ub2RlTmFtZS50b1VwcGVy\nQ2FzZSgpID09IFwiVEVYVEFSRUFcIikge1xuICAgICAgICAgICAgdmFyIG5hdGl2ZVRleHRhcmVh\nVmFsdWVTZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5IVE1M\nVGV4dEFyZWFFbGVtZW50LnByb3RvdHlwZSwgXCJ2YWx1ZVwiKS5zZXQ7XG4gICAgICAgICAgICBu\nYXRpdmVUZXh0YXJlYVZhbHVlU2V0dGVyLmNhbGwoaW5wdXQsIHYpO1xuICAgICAgICB9IGVsc2Ug\ne1xuICAgICAgICAgICAgaW5wdXQuaW5uZXJIVE1MID0gY3JlYXRlSFRNTCh2KTtcbiAgICAgICAg\nfVxuICAgICAgICBldmVudCA9IG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSk7\nXG4gICAgICAgIGxldCB0cmFja2VyID0gaW5wdXQuX3ZhbHVlVHJhY2tlcjtcbiAgICAgICAgaWYg\nKHRyYWNrZXIpIHtcbiAgICAgICAgICAgIHRyYWNrZXIuc2V0VmFsdWUobGFzdFZhbHVlKTtcbiAg\nICAgICAgfVxuICAgICAgICBpbnB1dC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgZXZl\nbnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KTtcbiAgICAgICAgaW5w\ndXQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxu\nXG4gICAgZnVuY3Rpb24gY2xpZW50WChlKSB7XG4gICAgICAgIGlmIChlLnR5cGUuaW5kZXhPZign\ndG91Y2gnKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGUuY2hhbmdlZFRvdWNoZXMgPyBl\nLmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFggOiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAg\nICAgICAgcmV0dXJuIGUuY2xpZW50WDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9u\nIGNsaWVudFkoZSkge1xuICAgICAgICBpZiAoZS50eXBlLmluZGV4T2YoJ3RvdWNoJykgPT09IDAp\nIHtcbiAgICAgICAgICAgIHJldHVybiBlLmNoYW5nZWRUb3VjaGVzID8gZS5jaGFuZ2VkVG91Y2hl\nc1swXS5jbGllbnRZIDogMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBl\nLmNsaWVudFk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZmFpbEZyb21JZnJhbWUgPSAw\nO1xuICAgIHZhciBpbkNvcnMgPSBmYWxzZTtcbiAgICB2YXIgY2hlY2tSZW1vdmVJbnR2O1xuICAg\nIGZ1bmN0aW9uIHJlcXVlc3RGcm9tSWZyYW1lKHVybCwgY2FsbGJhY2spe1xuICAgICAgICBpZiAo\nbG9jYXRpb24ucHJvdG9jb2wgPT09ICdodHRwczonICYmICFcL15odHRwczpcLy50ZXN0KHVybCkp\nIHtcbiAgICAgICAgICAgIHJ1bGVQYXJzZXIubm9WYWxpZENvbnRlbnQodXJsKTtcbiAgICAgICAg\nfVxuICAgICAgICB1cmwgPSB1cmwuaW5kZXhPZignPScpID09IC0xID8gdXJsLnJlcGxhY2UoXC8j\nW14jXSpcLyxcIlwiKSA6IHVybDtcbiAgICAgICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0\nZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgICBpZnJhbWUubmFtZSA9ICdwYWdldHVhbC1pZnJh\nbWUnO1xuICAgICAgICBpZnJhbWUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgIGlmcmFtZS5oZWln\naHQgPSAnMTAwMCc7XG4gICAgICAgIGlmcmFtZS5mcmFtZUJvcmRlciA9ICcwJztcbiAgICAgICAg\naWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc2FuZGJveCAhPSBmYWxzZSkge1xuICAgICAgICAg\nICAgaWZyYW1lLnNhbmRib3ggPSBcImFsbG93LXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMgYWxs\nb3ctcG9wdXBzIGFsbG93LWZvcm1zXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWZyYW1lLnN0eWxl\nLmNzc1RleHQgPSAnbWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7dmlzaWJp\nbGl0eTpoaWRkZW4haW1wb3J0YW50O2ZsZXg6MDtvcGFjaXR5OjAhaW1wb3J0YW50O3BvaW50ZXIt\nZXZlbnRzOm5vbmUhaW1wb3J0YW50O3Bvc2l0aW9uOmZpeGVkO3RvcDowcHg7bGVmdDowcHg7ei1p\nbmRleDotMjE0NzQ4MzY0NzsnO1xuICAgICAgICBsZXQgd2FpdFRpbWUgPSAxMDAsIGNoZWNrRXZh\nbDtcbiAgICAgICAgcnVsZVBhcnNlci5ydW5XYWl0KChfY2hlY2tFdmFsLCBfd2FpdFRpbWUpID0+\nIHtcbiAgICAgICAgICAgIGlmIChfY2hlY2tFdmFsKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tF\ndmFsID0gX2NoZWNrRXZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfd2FpdFRp\nbWUpIHtcbiAgICAgICAgICAgICAgICB3YWl0VGltZSA9IF93YWl0VGltZTtcbiAgICAgICAgICAg\nIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjaGVja1JlbW92ZUludHYpIGNsZWFySW50ZXJ2\nYWwoY2hlY2tSZW1vdmVJbnR2KTtcbiAgICAgICAgY2hlY2tSZW1vdmVJbnR2ID0gc2V0SW50ZXJ2\nYWwoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpZnJhbWUgfHwgIWdldEJvZHkoZG9jdW1lbnQp\nLmNvbnRhaW5zKGlmcmFtZSkpIHtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGNoZWNr\nUmVtb3ZlSW50dik7XG4gICAgICAgICAgICAgICAgbG9hZFBhZ2VPdmVyKCk7XG4gICAgICAgICAg\nICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICAgIGxldCBsb2FkZWRIYW5kbGVyID0gYXN5bmMg\nZSA9PiB7XG4gICAgICAgICAgICBpZiAoZS5kYXRhICE9ICdwYWdldHVhbC1pZnJhbWU6RE9NTG9h\nZGVkJyAmJiBlLnR5cGUgIT0gJ2xvYWQnKSByZXR1cm47XG4gICAgICAgICAgICBjbGVhckludGVy\ndmFsKGNoZWNrUmVtb3ZlSW50dik7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0\nZW5lcignbWVzc2FnZScsIGxvYWRlZEhhbmRsZXIsIGZhbHNlKTtcbiAgICAgICAgICAgIGlmcmFt\nZS5yZW1vdmVFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkSGFuZGxlciwgZmFsc2UpO1xuICAg\nICAgICAgICAgbGV0IGRvYztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgZG9j\nID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVu\ndDtcbiAgICAgICAgICAgICAgICBkb2MuaGFzRm9jdXMgPSAoKSA9PiB0cnVlO1xuICAgICAgICAg\nICAgfSBjYXRjaChlKSB7fVxuICAgICAgICAgICAgbGV0IHBhZ2VFbGVUcnlUaW1lcyA9IDA7XG4g\nICAgICAgICAgICBhc3luYyBmdW5jdGlvbiBjaGVja0lmcmFtZSgpIHtcbiAgICAgICAgICAgICAg\nICBpZiAodXJsQ2hhbmdlZCB8fCBpc1BhdXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVy\nbiBjYWxsYmFjayhmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkb2MgPSBkb2MgfHwgaWZyYW1lLmNvbnRl\nbnREb2N1bWVudCB8fCBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICAgICAgICAg\nICAgICAgICAgaWYgKGNoZWNrRXZhbCAmJiAhYXdhaXQgY2hlY2tFdmFsKGRvYykpIHtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIGNoZWNrSWZyYW1lKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB3YWl0\nVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAg\nICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJlQ29kZSA9IHJ1bGVQ\nYXJzZXIuY3VyU2l0ZVJ1bGUucGFnZVByZSwgZWxlcyA9IG51bGw7XG4gICAgICAgICAgICAgICAg\nICAgICAgICBpZiAocHJlQ29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwcmVSZXN1bHQ7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcHJlQ29kZSA9PSAnZnVuY3Rpb24n\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVSZXN1bHQgPSBhd2Fp\ndCBwcmVDb2RlKGRvYy5kb2N1bWVudEVsZW1lbnQuaW5uZXJIVE1MLCBkb2MpO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHByZUNvZGUubGVuZ3RoID09IDIpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZVJlc3VsdCA9IGRvYy5kb2N1\nbWVudEVsZW1lbnQuaW5uZXJIVE1MLnJlcGxhY2UobmV3IFJlZ0V4cChwcmVDb2RlWzBdLCBcImdp\nXCIpLCBwcmVDb2RlWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZVJlc3VsdCA9IGF3YWl0\nIG5ldyBBc3luY0Z1bmN0aW9uKFwicmVzcG9uc2VcIiwgXCJkb2NcIiwgJ1widXNlIHN0cmljdFwi\nOycgKyBwcmVDb2RlKShkb2MuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTCwgZG9jKTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBpZiAodHlwZW9mIHByZVJlc3VsdCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBwcmVSZXN1bHQgPT09IFwic3Ry\naW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2MuZG9j\ndW1lbnRFbGVtZW50LmlubmVySFRNTCA9IHByZVJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIH0gZWxzZSBlbGVzID0gcHJlUmVzdWx0O1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChl\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgICAgIGxldCBiYXNlID0gZG9jLnF1ZXJ5U2VsZWN0b3IoXCJiYXNlXCIpO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5iYXNlUGF0aCA9IChiYXNlICYmIGJh\nc2UuaHJlZikgfHwgdXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsZXMgPT09IG51\nbGwpIGVsZXMgPSBydWxlUGFyc2VyLmdldFBhZ2VFbGVtZW50KGRvYywgaWZyYW1lLmNvbnRlbnRX\naW5kb3csIHBhZ2VFbGVUcnlUaW1lcyA8IDI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChlbGVzICYmIGVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGF3YWl0IHJ1bGVQYXJzZXIuaG9va1VybChkb2MpO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIGF3YWl0IGNhbGxiYWNrKGRvYywgZWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9\nIGVsc2UgaWYgKHBhZ2VFbGVUcnlUaW1lcysrIDwgMTAwKSB7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgZ2V0Qm9keShkb2MpLnNjcm9sbFRvcCA9IDk5OTk5OTk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgaWYgKGRvYy5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSA5OTk5OTk5\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nY2hlY2tJZnJhbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB3YWl0VGltZSk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbEZyb21J\nZnJhbWUrKyA+IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbEZyb21J\nZnJhbWUgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhcIlN0b3Ag\nYXMgZmFpbEZyb21JZnJhbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo\nYW5nZVN0b3AodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNr\nKGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5ub1ZhbGlkQ29udGVudCh1\ncmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgZmFs\nc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkg\ne1xuICAgICAgICAgICAgICAgICAgICBpbkNvcnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAg\nICBpZiAoZm9yY2VTdGF0ZSA9PT0gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVidWco\nXCJTdG9wIGFzIGNvcnNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1BhdXNlID0gdHJ1\nZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJ1bGVQ\nYXJzZXIuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUucGFnZUVsZW1lbnQgPSBhbGxPZkJvZHk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmdldEluc2VydCh0cnVlKTtcbiAgICAgICAgICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmFj\ndGlvbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHJ1bGVQYXJzZXIubmV4dExpbmtIcmVmID0g\ndXJsO1xuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgZmFsc2UpO1xuICAgICAg\nICAgICAgICAgICAgICBuZXh0UGFnZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nICAgICBpZiAoaWZyYW1lICYmIGlmcmFtZS5wYXJlbnROb2RlKSBpZnJhbWUucGFyZW50Tm9kZS5y\nZW1vdmVDaGlsZChpZnJhbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0VGltZW91\ndCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2hlY2tJZnJhbWUoKTtcbiAgICAgICAgICAgIH0s\nIHdhaXRUaW1lKTtcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IGNvZGUgPSBydWxlUGFyc2VyLmN1\nclNpdGVSdWxlLmlmcmFtZUluaXQ7XG4gICAgICAgIGlmIChjb2RlKSB7XG4gICAgICAgICAgICBs\nZXQgY2hlY2tSZWFkeSA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQg\nZG9jO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGRvYyA9IGlm\ncmFtZS5jb250ZW50RG9jdW1lbnQgfHwgKGlmcmFtZS5jb250ZW50V2luZG93ICYmIGlmcmFtZS5j\nb250ZW50V2luZG93LmRvY3VtZW50KTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAg\nICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja1JlYWR5KTtcbiAgICAgICAgICAg\nICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAo\nZG9jKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tSZWFkeSk7XG4g\nICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBGdW5jdGlv\nbignd2luJywgJ2lmcmFtZScsICdcInVzZSBzdHJpY3RcIjsnICsgY29kZSkoaWZyYW1lLmNvbnRl\nbnRXaW5kb3csIGlmcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgZGVidWcoZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgIH1cbiAgICAgICAg\nd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBsb2FkZWRIYW5kbGVyLCBmYWxzZSk7\nXG4gICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgbG9hZGVkSGFuZGxlciwg\nZmFsc2UpO1xuICAgICAgICBpZnJhbWUuc3JjID0gdXJsO1xuICAgICAgICB0cnkge1xuICAgICAg\nICAgICAgZ2V0Qm9keShkb2N1bWVudCkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICAgICAgfSBj\nYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGZhbHNlLCBmYWxzZSk7XG4g\nICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgZW11SWZyYW1lLCBsYXN0QWN0aXZlVXJsLCBvcmdD\nb250ZW50LCBtZWV0Q29ycyA9IGZhbHNlO1xuICAgIGZ1bmN0aW9uIGVtdVBhZ2UoY2FsbGJhY2sp\nIHtcbiAgICAgICAgbGV0IG9yZ1BhZ2UgPSBudWxsLCBwcmVDb250ZW50ID0gbnVsbCwgaWZyYW1l\nRG9jLCBjaGVja1RpbWVzID0gMCwgbG9hZG1vcmVCdG4sIHBhZ2VFbGUsIG5leHRMaW5rLCBsb2Fk\nbW9yZUVuZCA9IGZhbHNlLCB3YWl0VGltZXMgPSA4MCwgY2hhbmdlZCA9IGZhbHNlLCBjaGVja05l\neHQgPSAwO1xuICAgICAgICBsZXQgYWN0aXZlQ2xhc3MgPSBcImFjdGl2ZVwiO1xuICAgICAgICBp\nZiAodHlwZW9mIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuYWN0aXZlQ2xhc3MgIT09ICd1bmRlZmlu\nZWQnKSB7XG4gICAgICAgICAgICBhY3RpdmVDbGFzcyA9IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUu\nYWN0aXZlQ2xhc3M7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gcmV0dXJuRmFsc2UobG9n\nKSB7XG4gICAgICAgICAgICBpZiAoY3VyUGFnZSA+IDEpIHtcbiAgICAgICAgICAgICAgICBydWxl\nUGFyc2VyLnJlYWNoZWRMYXN0UGFnZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAg\nICAgICAgICBzaWRlQ29udHJvbGxlci5yZW1vdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIGRlYnVnKGxvZyk7XG4gICAgICAgICAgICBpc1BhdXNlID0gdHJ1ZTtcbiAgICAgICAgICAg\nIGNhbGxiYWNrKGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoZW11SWZyYW1lICYmIGVt\ndUlmcmFtZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgZW11SWZyYW1lLnBhcmVudE5v\nZGUucmVtb3ZlQ2hpbGQoZW11SWZyYW1lKTtcbiAgICAgICAgICAgICAgICBlbXVJZnJhbWUgPSBu\ndWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFzeW5jIGZ1bmN0aW9uIGNs\nb25lU3RhdHVzKCkge1xuICAgICAgICAgICAgaWYgKCFpZnJhbWVEb2MgfHwgcnVsZVBhcnNlci5j\ndXJTaXRlUnVsZS5jbG9uZVN0YXR1cyA9PT0gZmFsc2UpIHJldHVybjtcbiAgICAgICAgICAgIGxl\ndCBpbnB1dHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXQ6bm90KFt0eXBlPWJ1\ndHRvbl0sW3R5cGU9aW1hZ2VdLFt0eXBlPXJlc2V0XSxbdHlwZT1zdWJtaXRdKVwiKTtcbiAgICAg\nICAgICAgIGxldCBzZWxlY3RPcHRpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInNl\nbGVjdD5vcHRpb25cIik7XG4gICAgICAgICAgICBbLi4uaW5wdXRzXS5mb3JFYWNoKGlucHV0ID0+\nIHtcbiAgICAgICAgICAgICAgICBsZXQgc2VsID0gZ2VuZVNlbGVjdG9yKGlucHV0LCB0cnVlLCB0\ncnVlKTtcbiAgICAgICAgICAgICAgICBsZXQgbWlycm9yRWxlID0gaWZyYW1lRG9jLnF1ZXJ5U2Vs\nZWN0b3Ioc2VsKTtcbiAgICAgICAgICAgICAgICBpZiAoIW1pcnJvckVsZSkgcmV0dXJuO1xuICAg\nICAgICAgICAgICAgIGlmIChtaXJyb3JFbGUudHlwZSA9PT0gXCJjaGVja2JveFwiIHx8IG1pcnJv\nckVsZS50eXBlID09PSBcInJhZGlvXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgbWlycm9yRWxl\nLmNoZWNrZWQgPSAhIWlucHV0LmNoZWNrZWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAg\nICAgICAgICAgICAgICAgICAgZW11SW5wdXQobWlycm9yRWxlLCBpbnB1dC52YWx1ZSk7XG4gICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBbLi4uc2VsZWN0T3B0\naW9uc10uZm9yRWFjaChvcHRpb24gPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzZWwgPSBnZW5l\nU2VsZWN0b3Iob3B0aW9uLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBsZXQgbWlycm9y\nRWxlID0gaWZyYW1lRG9jLnF1ZXJ5U2VsZWN0b3Ioc2VsKTtcbiAgICAgICAgICAgICAgICBpZiAo\nIW1pcnJvckVsZSkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IG9wdGlv\nbi5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICBtaXJyb3JFbGUuc2VsZWN0ZWQgPSAhIXNlbGVj\ndGVkO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAg\nICBtaXJyb3JFbGUucGFyZW50Tm9kZS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2hhbmdlJykp\nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGFj\ndGl2ZUNsYXNzKSB7XG4gICAgICAgICAgICAgICAgbGV0IGFjdGl2ZXMgPSBkb2N1bWVudC5xdWVy\neVNlbGVjdG9yQWxsKFwiLlwiICsgYWN0aXZlQ2xhc3MpO1xuICAgICAgICAgICAgICAgIGZvciAo\nbGV0IGFjdGl2ZSBvZiBhY3RpdmVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzZWwgPSBn\nZW5lU2VsZWN0b3IoYWN0aXZlLCB0cnVlLCB0cnVlKS5yZXBsYWNlKFwiLlwiICsgYWN0aXZlQ2xh\nc3MsIFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbWlycm9yRWxlID0gYXdhaXQgd2Fp\ndEZvckVsZW1lbnQoc2VsLCBpZnJhbWVEb2MsIDUwMDApO1xuICAgICAgICAgICAgICAgICAgICBp\nZiAoIW1pcnJvckVsZSB8fCBtaXJyb3JFbGUuY2xhc3NMaXN0LmNvbnRhaW5zKGFjdGl2ZUNsYXNz\nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZW11Q2xpY2sobWlycm9yRWxlKTtcbiAgICAgICAg\nICAgICAgICAgICAgYXdhaXQgc2xlZXAoMzAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tQYWdlKCkge1xu\nICAgICAgICAgICAgaWYgKGlzUGF1c2UpIHJldHVybiBsb2FkUGFnZU92ZXIoKTtcbiAgICAgICAg\nICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWZyYW1lRG9jID0gZW11SWZyYW1lLmNvbnRlbnRE\nb2N1bWVudCB8fCBlbXVJZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudDtcbiAgICAgICAgICAg\nIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgICAgIHJldHVybkZhbHNlKFwiU3RvcCBhcyBjb3Jz\nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIGdldEJvZHkoaWZyYW1lRG9jKS5zY3JvbGxUb3AgPSA5OTk5OTk5O1xuICAgICAgICAgICAgaWYg\nKGlmcmFtZURvYy5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBpZnJhbWVEb2Mu\nZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IDk5OTk5OTk7XG4gICAgICAgICAgICB9XG5cbiAg\nICAgICAgICAgIGxldCB3YWl0VGltZSA9IDIwMCwgY2hlY2tFdmFsO1xuICAgICAgICAgICAgcnVs\nZVBhcnNlci5ydW5XYWl0KChfY2hlY2tFdmFsLCBfd2FpdFRpbWUpID0+IHtcbiAgICAgICAgICAg\nICAgICBpZiAoX2NoZWNrRXZhbCkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0V2YWwgPSBf\nY2hlY2tFdmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoX3dhaXRU\naW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHdhaXRUaW1lID0gX3dhaXRUaW1lO1xuICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoIW9yZ1BhZ2Up\nIHtcbiAgICAgICAgICAgICAgICBpZiAoIWxvYWRtb3JlRW5kKSB7XG4gICAgICAgICAgICAgICAg\nICAgIGxvYWRtb3JlQnRuID0gZ2V0TG9hZE1vcmUoaWZyYW1lRG9jKTtcbiAgICAgICAgICAgICAg\nICAgICAgaWYgKGxvYWRtb3JlQnRuICYmIGlzVmlzaWJsZShsb2FkbW9yZUJ0biwgZW11SWZyYW1l\nLmNvbnRlbnRXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbXVDbGljayhsb2Fk\nbW9yZUJ0biwgaWZyYW1lRG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpbnR2ID0g\nc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRtb3Jl\nQnRuID0gZ2V0TG9hZE1vcmUoaWZyYW1lRG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAg\nICBpZiAoIWxvYWRtb3JlQnRuIHx8ICFnZXRCb2R5KGRvY3VtZW50KS5jb250YWlucyhsb2FkbW9y\nZUJ0bikgfHwgIWlzVmlzaWJsZShsb2FkbW9yZUJ0biwgZW11SWZyYW1lLmNvbnRlbnRXaW5kb3cp\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50dik7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRtb3JlRW5kID0gdHJ1ZTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1BhZ2UoKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9\nIGVsc2UgaWYgKGlzSW5WaWV3UG9ydChsb2FkbW9yZUJ0bikpIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgZW11Q2xpY2sobG9hZG1vcmVCdG4sIGlmcmFtZURvYyk7XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBl\nbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRtb3JlRW5kID0gdHJ1ZTtcbiAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAo\nY2hlY2tFdmFsICYmICFhd2FpdCBjaGVja0V2YWwoaWZyYW1lRG9jKSkge1xuICAgICAgICAgICAg\nICAgICAgICB3YWl0VGltZXMgPSA1MDtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgo\nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja1BhZ2UoKTtcbiAgICAgICAgICAg\nICAgICAgICAgfSwgd2FpdFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAg\nICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXh0TGluayB8\nfCAhbmV4dExpbmsub2Zmc2V0UGFyZW50KSBuZXh0TGluayA9IGF3YWl0IHJ1bGVQYXJzZXIuZ2V0\nTmV4dExpbmsoaWZyYW1lRG9jLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRM\naW5rKSBwYWdlRWxlID0gcnVsZVBhcnNlci5nZXRQYWdlRWxlbWVudChpZnJhbWVEb2MsIGVtdUlm\ncmFtZS5jb250ZW50V2luZG93LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdl\nRWxlIHx8IHBhZ2VFbGUubGVuZ3RoID09IDAgfHwgIW5leHRMaW5rKSB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICBnZXRCb2R5KGlmcmFtZURvYykuc2Nyb2xsVG9wID0gOTk5OTk5OTtcbiAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChpZnJhbWVEb2MuZG9jdW1lbnRFbGVtZW50KSB7XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxU\nb3AgPSA5OTk5OTk5O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nICAgICAgICAgaWYgKHdhaXRUaW1lcy0tID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj\naGVja1BhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB3YWl0VGltZSk7XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIGlmICghcGFnZUVsZSB8fCBwYWdlRWxlLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAg\nICAgICAgICAgIHJldHVybkZhbHNlKFwiU3RvcCBhcyBubyBwYWdlIHdoZW4gZW11XCIpO1xuICAg\nICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgIHBhZ2VFbGUgPSBbXS5maWx0ZXIuY2FsbChwYWdlRWxlLCBlbGUgPT4ge3JldHVybiBlbGUg\nJiYgIWNvbXBhcmVOb2RlTmFtZShlbGUsIFtcInN0eWxlXCIsIFwic2NyaXB0XCIsIFwibWV0YVwi\nXSl9KTtcbiAgICAgICAgICAgICAgICBpZiAoY29tcGFyZU5vZGVOYW1lKHBhZ2VFbGVbMF0sIFtc\nInVsXCJdKSB8fCBwYWdlRWxlLmxlbmd0aCA9PSAxKSBwYWdlRWxlID0gcGFnZUVsZVswXTtcbiAg\nICAgICAgICAgICAgICBlbHNlIGlmIChwYWdlRWxlWzBdLnBhcmVudE5vZGUgPT0gcGFnZUVsZVsx\nXS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZ2VFbGUgPSBwYWdlRWxlWzBd\nLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAg\nICAgcGFnZUVsZSA9IHBhZ2VFbGVbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nICAgIGlmIChydWxlUGFyc2VyLmN1clNpdGVSdWxlLnNtYXJ0ICYmIG9yZ0NvbnRlbnQgIT0gcGFn\nZUVsZS5pbm5lckhUTUwpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JnQ29udGVudCA9IHBhZ2VF\nbGUuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgICAgICBpZiAod2FpdFRpbWVzLS0gPiAwKSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBjaGVja1BhZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0s\nIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3JnUGFnZSA9IHBhZ2VF\nbGU7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAg\nIGlmIChjb21wYXJlTm9kZU5hbWUob3JnUGFnZSwgW1wiaW1nXCJdKSkge1xuICAgICAgICAgICAg\nICAgICAgICAgICAgaWYgKCFydWxlUGFyc2VyLmN1clNpdGVSdWxlLmxhenlJbWdTcmMpIHJ1bGVQ\nYXJzZXIuY3VyU2l0ZVJ1bGUubGF6eUltZ1NyYyA9IFwiMFwiO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKG9yZ1BhZ2Uuc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Jn\nQ29udGVudCA9IG9yZ1BhZ2Uuc3JjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tQYWdlKCk7XG4gICAgICAgICAgICAgICAgICAg\nICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4g\nICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBvcmdDb250ZW50ID0gb3JnUGFnZS5pbm5lckhUTUw7XG4g\nICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcHJlQ29udGVudCA9IG9y\nZ0NvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNWaXNpYmxlKG5leHRMaW5rLCBl\nbXVJZnJhbWUuY29udGVudFdpbmRvdykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy\nbkZhbHNlKFwiU3RvcCBhcyBuZXh0IGhpZGUgd2hlbiBlbXVcIik7XG4gICAgICAgICAgICAgICAg\nICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbXVDbGljayhuZXh0TGluaywg\naWZyYW1lRG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUGFnZSgpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybkZhbHNlKFwiU3RvcCBhcyBubyBu\nZXh0IHdoZW4gZW11XCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1\ncm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJ1bGVQYXJzZXIuY2hlY2tTdG9w\nU2lnbihuZXh0TGluaywgaWZyYW1lRG9jKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXR1\ncm5GYWxzZShcIlN0b3AgYXMgc3RvcFNpZ25cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAg\nICBpZiAoY2hlY2tUaW1lcysrID4gMjAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuRmFsc2Uo\nXCJTdG9wIGFzIHRpbWVvdXQgd2hlbiBlbXVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xu\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNoZWNrRXZhbCAmJiAhYXdhaXQgY2hlY2tF\ndmFsKGlmcmFtZURvYykpIHtcbiAgICAgICAgICAgICAgICBjaGVja1RpbWVzID0gMDtcbiAgICAg\nICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tQ\nYWdlKCk7XG4gICAgICAgICAgICAgICAgfSwgd2FpdFRpbWUpO1xuICAgICAgICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBlbGVzID0gcnVsZVBhcnNlci5n\nZXRQYWdlRWxlbWVudChpZnJhbWVEb2MsIGVtdUlmcmFtZS5jb250ZW50V2luZG93LCB0cnVlKSwg\nY2hlY2tJdGVtO1xuICAgICAgICAgICAgaWYgKGVsZXMgJiYgZWxlcy5sZW5ndGggPiAwKSB7XG4g\nICAgICAgICAgICAgICAgZWxlcyA9IFtdLmZpbHRlci5jYWxsKGVsZXMsIGVsZSA9PiB7cmV0dXJu\nIGVsZSAmJiAhY29tcGFyZU5vZGVOYW1lKGVsZSwgW1wic3R5bGVcIiwgXCJzY3JpcHRcIiwgXCJt\nZXRhXCJdKX0pO1xuICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUoZWxlc1swXSwg\nW1widWxcIl0pIHx8IGVsZXMubGVuZ3RoID09IDEpIGNoZWNrSXRlbSA9IGVsZXNbMF07XG4gICAg\nICAgICAgICAgICAgZWxzZSBpZiAoZWxlc1swXS5wYXJlbnROb2RlID09IGVsZXNbMV0ucGFyZW50\nTm9kZSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0l0ZW0gPSBlbGVzWzBdLnBhcmVudE5v\nZGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tJ\ndGVtID0gZWxlc1swXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAg\nICAgICBpZiAoIWNoZWNrSXRlbSkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4g\ne1xuICAgICAgICAgICAgICAgICAgICBjaGVja1BhZ2UoKTtcbiAgICAgICAgICAgICAgICB9LCB3\nYWl0VGltZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBjaGVj\na0lubmVyO1xuICAgICAgICAgICAgICAgIGlmIChjb21wYXJlTm9kZU5hbWUoY2hlY2tJdGVtLCBb\nXCJpbWdcIl0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja0l0ZW0uc3JjKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBjaGVja0lubmVyID0gY2hlY2tJdGVtLnNyYztcbiAgICAg\nICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVv\ndXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUGFnZSgpO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgfSwgd2FpdFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNl\nIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tJbm5lciA9IGNoZWNrSXRlbS5pbm5lckhUTUw7\nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjaGVja0lubmVyICE9IHBy\nZUNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAg\nICAgICAgICAgICAgIGNoZWNrTmV4dCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIG9yZ1BhZ2Ug\nPSBjaGVja0l0ZW07XG4gICAgICAgICAgICAgICAgICAgIHByZUNvbnRlbnQgPSBjaGVja0lubmVy\nO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGNoZWNrUGFnZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LCA1MDApO1xuICAg\nICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICBj\naGVja1RpbWVzID0gMDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9yZ0NvbnRlbnQgPT0gcHJl\nQ29udGVudCAmJiAocnVsZVBhcnNlci5jdXJTaXRlUnVsZS5zbWFydCB8fCBydWxlUGFyc2VyLmN1\nclNpdGVSdWxlLnN0b3BTYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmFs\nc2UoXCJTdG9wIGFzIHNhbWUgY29udGVudFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNl\nIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZ0NvbnRlbnQgPSBwcmVDb250ZW50O1xuICAg\nICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcnVsZVBhcnNlci5ob29rVXJsKGlmcmFtZURvYyk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW5leHRMaW5rIHx8ICFuZXh0TGluay5vZmZz\nZXRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0TGluayA9IGF3YWl0\nIHJ1bGVQYXJzZXIuZ2V0TmV4dExpbmsoaWZyYW1lRG9jLCB0cnVlKTtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV4dExpbmsgJiYgKytj\naGVja05leHQgPCA1KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgo\nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrUGFnZSgpO1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHdhaXRUaW1lKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGlmcmFtZURvYywgZWxl\ncyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAg\nICAgICAgICAgICAgICAgICBpZiAoY2hlY2tUaW1lcyAlIDEwID09PSA1KSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBpZiAoIW5leHRMaW5rIHx8ICFuZXh0TGluay5vZmZzZXRQYXJlbnQpIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0TGluayA9IGF3YWl0IHJ1bGVQYXJzZXIu\nZ2V0TmV4dExpbmsoaWZyYW1lRG9jLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1c\nbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0TGluaykge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGVtdUNsaWNrKG5leHRMaW5rLCBpZnJhbWVEb2MpO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAg\nIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tQYWdlKCk7\nXG4gICAgICAgICAgICAgICAgICAgIH0sIHdhaXRUaW1lKTtcbiAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFlbXVJZnJhbWUpIHtcbiAgICAg\nICAgICAgIGxldCBsb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGVtdUlmcmFtZSA9IGRvY3Vt\nZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO1xuICAgICAgICAgICAgZW11SWZyYW1lLm5hbWUg\nPSAncGFnZXR1YWwtaWZyYW1lJztcbiAgICAgICAgICAgIGxldCBub3RTZXRTYW5kYm94ID0gdHlw\nZW9mIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc2FuZGJveCA9PSAndW5kZWZpbmVkJztcbiAgICAg\nICAgICAgIGlmIChub3RTZXRTYW5kYm94IHx8IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc2FuZGJv\neCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgZW11SWZyYW1lLnNhbmRib3ggPSBcImFsbG93\nLXNhbWUtb3JpZ2luIGFsbG93LXNjcmlwdHMgYWxsb3ctcG9wdXBzIGFsbG93LWZvcm1zXCI7XG4g\nICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc2FuZGJveCkge1xu\nICAgICAgICAgICAgICAgIGVtdUlmcmFtZS5zYW5kYm94ID0gcnVsZVBhcnNlci5jdXJTaXRlUnVs\nZS5zYW5kYm94O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW11SWZyYW1lLndpZHRoID0g\nJzEwMCUnO1xuICAgICAgICAgICAgZW11SWZyYW1lLmhlaWdodCA9ICcxMDAlJztcbiAgICAgICAg\nICAgIGVtdUlmcmFtZS5mcmFtZUJvcmRlciA9ICcwJztcbiAgICAgICAgICAgIGVtdUlmcmFtZS5z\ndHlsZS5jc3NUZXh0ID0gJ21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2Zs\nZXg6MDtvcGFjaXR5OjAhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50O3Bv\nc2l0aW9uOmZpeGVkO3RvcDowcHg7bGVmdDowcHg7ei1pbmRleDotMjE0NzQ4MzY0NzsnO1xuICAg\nICAgICAgICAgZW11SWZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGUgPT4ge1xuICAg\nICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmcmFtZURvYyA9IGVtdUlm\ncmFtZS5jb250ZW50RG9jdW1lbnQgfHwgZW11SWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7\nXG4gICAgICAgICAgICAgICAgICAgIGlmcmFtZURvYy5oYXNGb2N1cyA9ICgpID0+IHRydWU7XG4g\nICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLm1l\nc3NhZ2UgJiYgZS5tZXNzYWdlLmluZGV4T2YoXCJjcm9zcy1vcmlnaW5cIikgIT0gLTEgJiYgbm90\nU2V0U2FuZGJveCAmJiBlbXVJZnJhbWUuaGFzQXR0cmlidXRlKFwic2FuZGJveFwiKSkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgZW11SWZyYW1lLnJlbW92ZUF0dHJpYnV0ZShcInNhbmRib3hc\nIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZWV0Q29ycyA9IHRydWU7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAg\nICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc21hcnQpIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgICAgICBydWxlUGFyc2VyLmZpbmROb05leHQoKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHJldHVybkZhbHNlKFwiU3RvcCBhcyBjb3JzXCIpO1xuICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAg\nIGlmIChtZWV0Q29ycyAmJiBydWxlUGFyc2VyLmN1clNpdGVSdWxlLnNtYXJ0KSB7XG4gICAgICAg\nICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLnNtYXJ0UnVsZXMgPSBydWxlUGFyc2VyLnNtYXJ0\nUnVsZXMuZmlsdGVyKGl0ZW0gPT4ge3JldHVybiBpdGVtICYmIGl0ZW0udXJsICE9PSBydWxlUGFy\nc2VyLmN1clNpdGVSdWxlLnVybDt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2Uu\nc2V0SXRlbShcInNtYXJ0UnVsZXNcIiwgcnVsZVBhcnNlci5zbWFydFJ1bGVzKTtcbiAgICAgICAg\nICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtZWV0Q29ycyA9IGZhbHNlO1xuICAg\nICAgICAgICAgICAgICAgICBsZXQgY29kZSA9IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuaW5pdDtc\nbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmV3IEFzeW5jRnVuY3Rp\nb24oJ2RvYycsJ3dpbicsJ2lmcmFtZScsJ2NsaWNrJywgJ2VudGVyJywgJ2lucHV0JywgJ3NsZWVw\nJywgJ1widXNlIHN0cmljdFwiOycgKyBjb2RlKShpZnJhbWVEb2MsIGVtdUlmcmFtZS5jb250ZW50\nV2luZG93LCBlbXVJZnJhbWUsIGFzeW5jIHNlbCA9PiB7YXdhaXQgY2xpY2tBY3Rpb24oc2VsLCBp\nZnJhbWVEb2MpfSwgYXN5bmMgc2VsID0+IHthd2FpdCBlbnRlckFjdGlvbihzZWwsIGlmcmFtZURv\nYyl9LCBhc3luYyAoc2VsLCB2KSA9Pnthd2FpdCBpbnB1dEFjdGlvbihzZWwsIHYsIGlmcmFtZURv\nYyl9LCBhc3luYyB0aW1lID0+IHthd2FpdCBzbGVlcCh0aW1lKX0pO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWco\nZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVmcmVzaEJ5Q2xpY2tTZWwgPSBydWxl\nUGFyc2VyLmN1clNpdGVSdWxlLnJlZnJlc2hCeUNsaWNrO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgaWYgKGlmcmFtZURvYyAmJiByZWZyZXNoQnlDbGlja1NlbCkge1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIGxldCBjbGlja0J0biA9IGF3YWl0IHdhaXRGb3JFbGVtZW50cyhyZWZyZXNo\nQnlDbGlja1NlbCwgaWZyYW1lRG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2Fp\ndCBzbGVlcCg1MDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGNsb25lU3Rh\ndHVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNsaWNrQnRuLmxlbmd0aCA9\nPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbXVDbGljayhjbGlja0J0\nblswXSwgaWZyYW1lRG9jKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2xlZXAoNTAwKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgY2xvbmVT\ndGF0dXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzbGVlcCg1MDApO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAg\nICAgICAgICAgICAgIGlmIChsb2FkZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgbG9h\nZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tQYWdlKCk7XG4gICAgICAgICAg\nICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IGNvZGUgPSBy\ndWxlUGFyc2VyLmN1clNpdGVSdWxlLmlmcmFtZUluaXQ7XG4gICAgICAgICAgICBpZiAoY29kZSkg\ne1xuICAgICAgICAgICAgICAgIGxldCBjaGVja1JlYWR5ID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xu\nICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1l\nRG9jID0gZW11SWZyYW1lLmNvbnRlbnREb2N1bWVudCB8fCAoZW11SWZyYW1lLmNvbnRlbnRXaW5k\nb3cgJiYgZW11SWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpO1xuICAgICAgICAgICAgICAg\nICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwo\nY2hlY2tSZWFkeSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlmcmFtZURvYykge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja1JlYWR5KTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb24o\nJ3dpbicsICdpZnJhbWUnLCAnXCJ1c2Ugc3RyaWN0XCI7JyArIGNvZGUpKGVtdUlmcmFtZS5jb250\nZW50V2luZG93LCBlbXVJZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChl\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoZSk7XG4gICAgICAgICAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCA1\nMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWxhc3RBY3RpdmVVcmwpIGxhc3RB\nY3RpdmVVcmwgPSBsb2NhdGlvbi5ocmVmO1xuICAgICAgICAgICAgZW11SWZyYW1lLnNyYyA9IGxh\nc3RBY3RpdmVVcmw7XG4gICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50KS5hcHBlbmRDaGlsZChl\nbXVJZnJhbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGVtdUlmcmFtZS5z\ncmMgIT0gbGFzdEFjdGl2ZVVybCB8fCBtZWV0Q29ycykge1xuICAgICAgICAgICAgICAgIGVtdUlm\ncmFtZS5zcmMgPSBsYXN0QWN0aXZlVXJsO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgIGNoZWNrUGFnZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4g\nICAgdmFyIHNjcm9sbFRvUmVzaXplSW5pdGVkID0gZmFsc2U7XG4gICAgdmFyIHJlc2l6ZVBvb2wg\nPSBbXTtcbiAgICB2YXIgc2Nyb2xsaW5nVG9SZXNpemUgPSBmYWxzZTtcblxuICAgIGZ1bmN0aW9u\nIGlzVG91Y2hWaWV3UG9ydChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHZpZXdXaWR0aCA9IHdp\nbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDtc\nbiAgICAgICAgY29uc3Qgdmlld0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVu\ndC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICBjb25zdCB7XG4gICAgICAg\nICAgICB0b3AsXG4gICAgICAgICAgICByaWdodCxcbiAgICAgICAgICAgIGJvdHRvbSxcbiAgICAg\nICAgICAgIGxlZnQsXG4gICAgICAgIH0gPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp\nO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0b3AgPCB2aWV3SGVpZ2h0ICYmXG4g\nICAgICAgICAgICBsZWZ0IDwgdmlld1dpZHRoICYmXG4gICAgICAgICAgICByaWdodCA+IDAgJiZc\nbiAgICAgICAgICAgIGJvdHRvbSA+IDBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlv\nbiByZXNpemVJZnJhbWUoaWZyYW1lLCBmcmFtZURvYywgcGFnZUVsZSkge1xuICAgICAgICBpZiAo\ndGFyZ2V0WSA+PSAwKSB7XG4gICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IHRhcmdl\ndFksIGJlaGF2aW9yOiAnaW5zdGFudCd9KTtcbiAgICAgICAgICAgIHRhcmdldFkgPSAtMTtcbiAg\nICAgICAgfVxuICAgICAgICBsZXQgY3VyU2Nyb2xsID0gZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xs\nVG9wIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgIGlmIChy\ndWxlUGFyc2VyLmN1clNpdGVSdWxlLnNtYXJ0IHx8IGZvcmNlU3RhdGUgPT09IDIpIHtcbiAgICAg\nICAgICAgIGxldCBoZWlnaHQgPSAoZ2V0Qm9keShmcmFtZURvYykuc2Nyb2xsSGVpZ2h0IHx8IGdl\ndEJvZHkoZnJhbWVEb2MpLm9mZnNldEhlaWdodCB8fCA1MDApO1xuICAgICAgICAgICAgaWYgKCFp\nZnJhbWUuc3R5bGUuaGVpZ2h0IHx8IHBhcnNlSW50KGlmcmFtZS5zdHlsZS5oZWlnaHQpID09PSAw\nIHx8IGhlaWdodCAtIHBhcnNlSW50KGlmcmFtZS5zdHlsZS5oZWlnaHQpID4gd2luZG93LmlubmVy\nSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgaWZyYW1lLnN0eWxlLmhlaWdodCA9IGhlaWdodCAr\nIFwicHhcIjtcbiAgICAgICAgICAgICAgICBpZnJhbWUuc3R5bGUubWluSGVpZ2h0ID0gaWZyYW1l\nLnN0eWxlLmhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmcmFtZS5zdHlsZS53\naWR0aCA9IFwiMTAwJVwiO1xuICAgICAgICAgICAgZnJhbWVEb2MuZG9jdW1lbnRFbGVtZW50LnNj\ncm9sbFRvcCA9IDA7XG4gICAgICAgICAgICBmcmFtZURvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xs\nTGVmdCA9IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocGFnZUVsZSkge1xu\nICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoKSBmcmFtZURvYy5k\nb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSBkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoICsg\nXCJweFwiO1xuICAgICAgICAgICAgICAgIGxldCBmaXRXaWR0aCA9IHJ1bGVQYXJzZXIuY3VyU2l0\nZVJ1bGUuZml0V2lkdGggIT09IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCB0YXJnZXRFbGVt\nZW50ID0gcGFnZUVsZVswXTtcbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHJl\ndHVybjtcbiAgICAgICAgICAgICAgICBpZiAocGFnZUVsZS5sZW5ndGggPiAxKSB7XG4gICAgICAg\nICAgICAgICAgICAgIHRhcmdldEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50LnBhcmVudE5vZGU7XG4g\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBzY3JvbGxIZWlnaHQgPSB0YXJn\nZXRFbGVtZW50LnNjcm9sbEhlaWdodCB8fCB0YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCB8fCA1\nMDA7XG4gICAgICAgICAgICAgICAgaWZyYW1lLnN0eWxlLmhlaWdodCA9IHNjcm9sbEhlaWdodCAr\nIFwicHhcIjtcbiAgICAgICAgICAgICAgICBsZXQgc2Nyb2xsVG9wID0gMCwgc2Nyb2xsTGVmdCA9\nIDA7XG4gICAgICAgICAgICAgICAgZ2V0Qm9keShmcmFtZURvYykuc2Nyb2xsVG9wID0gMDtcbiAg\nICAgICAgICAgICAgICBnZXRCb2R5KGZyYW1lRG9jKS5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAg\nICAgICAgICB3aGlsZSAodGFyZ2V0RWxlbWVudCAmJiB0YXJnZXRFbGVtZW50Lm9mZnNldFBhcmVu\ndCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldFBhcmVudC5zY3Jv\nbGxUb3AgPSB0YXJnZXRFbGVtZW50Lm9mZnNldFRvcDtcbiAgICAgICAgICAgICAgICAgICAgaWYg\nKHRhcmdldEVsZW1lbnQub2Zmc2V0UGFyZW50LnNjcm9sbFRvcCA9PSAwKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBzY3JvbGxUb3AgKz0gdGFyZ2V0RWxlbWVudC5vZmZzZXRUb3A7XG4gICAg\nICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpdFdpZHRoKSB7XG4g\nICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRFbGVtZW50Lm9mZnNldFBhcmVudC5zY3JvbGxM\nZWZ0ID0gdGFyZ2V0RWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAg\naWYgKHRhcmdldEVsZW1lbnQub2Zmc2V0UGFyZW50LnNjcm9sbExlZnQgPT0gMCkge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbExlZnQgKz0gdGFyZ2V0RWxlbWVudC5vZmZzZXRM\nZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4g\nICAgICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50Lm9mZnNldFBh\ncmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZnJhbWVEb2MuZG9jdW1l\nbnRFbGVtZW50LnNjcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICBmcmFtZURv\nYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCA9IHNjcm9sbExlZnQ7XG4gICAgICAgICAgICAg\nICAgaWYgKGZyYW1lRG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPT0gMCAmJiBmcmFtZURv\nYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAg\nIGdldEJvZHkoZnJhbWVEb2MpLnNjcm9sbFRvcCArPSBzY3JvbGxUb3A7XG4gICAgICAgICAgICAg\nICAgICAgIGdldEJvZHkoZnJhbWVEb2MpLnNjcm9sbExlZnQgKz0gc2Nyb2xsTGVmdDtcbiAgICAg\nICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCFmaXRXaWR0aCAmJiBpZnJhbWUuc3R5\nbGUubWFyZ2luTGVmdCA9PSAnMHB4Jykge1xuICAgICAgICAgICAgICAgICAgICBpZnJhbWUuc3R5\nbGUud2lkdGggPSBcIjEwMHZ3XCI7XG4gICAgICAgICAgICAgICAgICAgIGlmcmFtZS5zdHlsZS5t\nYXhXaWR0aCA9IFwiMTAwdndcIjtcbiAgICAgICAgICAgICAgICAgICAgaWZyYW1lLnN0eWxlLm1p\nbldpZHRoID0gXCIxMDB2d1wiO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY1dpZHRoID0gZG9j\ndW1lbnQuYm9keS5jbGllbnRXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50\nV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0\naDtcbiAgICAgICAgICAgICAgICAgICAgaWZyYW1lLnN0eWxlLm1hcmdpbkxlZnQgPSAtaWZyYW1l\nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLSAoaVdpZHRoIC0gY1dpZHRoKSBcLyAyICsg\nXCJweFwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAg\nICAgICBsZXQgbmV3U2Nyb2xsID0gZ2V0Qm9keShkb2N1bWVudCkuc2Nyb2xsVG9wIHx8IGRvY3Vt\nZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgIGlmIChuZXdTY3JvbGwgIT0g\nY3VyU2Nyb2xsKSB7XG4gICAgICAgICAgICBnZXRCb2R5KGRvY3VtZW50KS5zY3JvbGxUb3AgPSBj\ndXJTY3JvbGw7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9w\nID0gY3VyU2Nyb2xsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9S\nZXNpemUoZSkge1xuICAgICAgICBpZiAoc2Nyb2xsaW5nVG9SZXNpemUpIHJldHVybjtcbiAgICAg\nICAgZWxzZSB7XG4gICAgICAgICAgICBzY3JvbGxpbmdUb1Jlc2l6ZSA9IHRydWU7XG4gICAgICAg\nICAgICBsZXQgcmVzaXplSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdG91\nY2hlZCA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNpemVQb29s\nLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXNpemVBcnIgPSByZXNp\nemVQb29sW2ldO1xuICAgICAgICAgICAgICAgICAgICBsZXQgaWZyYW1lID0gcmVzaXplQXJyWzFd\nKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1RvdWNoVmlld1BvcnQoaWZyYW1lKSkge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2hlZCsrO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgbGV0IHBhZ2VFbGUgPSByZXNpemVBcnJbMF0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGxldCBmcmFtZURvYyA9IHJlc2l6ZUFyclsyXSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAg\ncmVzaXplSWZyYW1lKGlmcmFtZSwgZnJhbWVEb2MsIHBhZ2VFbGUpO1xuICAgICAgICAgICAgICAg\nICAgICB9IGVsc2UgaWYgKHRvdWNoZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0\nb3VjaGVkID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFnZUVsZSA9\nIHJlc2l6ZUFyclswXSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmcmFtZURv\nYyA9IHJlc2l6ZUFyclsyXSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZUlm\ncmFtZShpZnJhbWUsIGZyYW1lRG9jLCBwYWdlRWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9\nIGVsc2UgaWYgKCFpZnJhbWUucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAg\ncmVzaXplUG9vbC5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztc\nbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07\nXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBzY3JvbGxp\nbmdUb1Jlc2l6ZSA9IGZhbHNlO1xuICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgIHJl\nc2l6ZUhhbmRsZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBjdXJGb3JjZUlmcmFt\nZTtcbiAgICBmdW5jdGlvbiBmb3JjZUlmcmFtZSh1cmwsIGNhbGxiYWNrKSB7XG4gICAgICAgIHVy\nbCA9IHVybC5pbmRleE9mKCc9JykgPT0gLTEgPyB1cmwucmVwbGFjZShcLyNbXiNdKlwvLFwiXCIp\nIDogdXJsO1xuICAgICAgICBsZXQgY3VySWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn\naWZyYW1lJyksIGlmcmFtZURvYywgcGFnZUVsZW1lbnQgPSBudWxsLCBpbkFjdGlvbiA9IHRydWU7\nXG4gICAgICAgIGxldCBsb2FkZWRIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGdl\ndFBhZ2VFbGUgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIuY3VyU2l0\nZVJ1bGUuc21hcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAg\nICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYWdlRWxlbWVudCB8\nfCBwYWdlRWxlbWVudC5sZW5ndGggPT09IDAgfHwgIXBhZ2VFbGVtZW50WzBdLm9mZnNldFBhcmVu\ndCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZUVsZW1lbnQgPSBydWxlUGFyc2VyLmdl\ndFBhZ2VFbGVtZW50KGlmcmFtZURvYywgY3VySWZyYW1lLmNvbnRlbnRXaW5kb3cpO1xuICAgICAg\nICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwYWdlRWxlbWVudDtc\nbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVzaXplSWZy\nYW1lKGN1cklmcmFtZSwgaWZyYW1lRG9jLCBnZXRQYWdlRWxlKCkpO1xuICAgICAgICAgICAgbGV0\nIGxvYWRlZCA9IGN1cklmcmFtZS5nZXRBdHRyaWJ1dGUoXCJsb2FkZWRcIik7XG4gICAgICAgICAg\nICBpZiAobG9hZGVkID09IFwidHJ1ZVwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAg\nICAgICAgICAgfVxuICAgICAgICAgICAgY3VySWZyYW1lLnNldEF0dHJpYnV0ZShcImxvYWRlZFwi\nLCBcInRydWVcIik7XG4gICAgICAgICAgICBsZXQgZ2V0SWZyYW1lID0gKCkgPT4ge1xuICAgICAg\nICAgICAgICAgIHJldHVybiBjdXJJZnJhbWU7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAg\nbGV0IGdldEZyYW1lRG9jID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpZnJhbWVE\nb2M7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcnVsZVBhcnNlci5pbnNlcnRQYWdlKGlm\ncmFtZURvYywgW10sIHVybCwgZWxlID0+IHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhjdXJJ\nZnJhbWUsIGxvYWRlZCA9PSBcInJlZnJlc2hcIik7XG4gICAgICAgICAgICAgICAgaW5BY3Rpb24g\nPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIHRydWUpO1xuICAgICAgICAgICAgaWYgKCFsb2FkZWQp\nIHtcbiAgICAgICAgICAgICAgICByZXNpemVQb29sLnB1c2goW2dldFBhZ2VFbGUsIGdldElmcmFt\nZSwgZ2V0RnJhbWVEb2NdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgbGV0\nIGNoZWNrSWZyYW1lVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAo\nIWN1cklmcmFtZS5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChj\naGVja0lmcmFtZVRpbWVyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY3VySWZyYW1lLmdldEF0\ndHJpYnV0ZShcImxvYWRlZFwiKSA9PSBcInRydWVcIiB8fCBjYWxsYmFjayhmYWxzZSk7XG4gICAg\nICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICAgIGxldCBjb2RlID0gcnVsZVBhcnNl\nci5jdXJTaXRlUnVsZS5pZnJhbWVJbml0O1xuICAgICAgICBpZiAoY29kZSkge1xuICAgICAgICAg\nICAgbGV0IGNoZWNrUmVhZHkgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAg\ndHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWZyYW1lRG9jID0gY3VySWZyYW1lLmNvbnRlbnRE\nb2N1bWVudCB8fCAoY3VySWZyYW1lLmNvbnRlbnRXaW5kb3cgJiYgY3VySWZyYW1lLmNvbnRlbnRX\naW5kb3cuZG9jdW1lbnQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAg\nICAgICAgICAgICBjbGVhckludGVydmFsKGNoZWNrUmVhZHkpO1xuICAgICAgICAgICAgICAgICAg\nICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpZnJhbWVE\nb2MpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja1JlYWR5KTtcbiAg\nICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9u\nKCd3aW4nLCAnaWZyYW1lJywgJ1widXNlIHN0cmljdFwiOycgKyBjb2RlKShjdXJJZnJhbWUuY29u\ndGVudFdpbmRvdywgY3VySWZyYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhlKTtcbiAgICAgICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDUwKTtcbiAgICAgICAgfVxuICAg\nICAgICBsZXQgd2FpdFRpbWUgPSAzMDAsIGNoZWNrRXZhbDtcbiAgICAgICAgcnVsZVBhcnNlci5y\ndW5XYWl0KChfY2hlY2tFdmFsLCBfd2FpdFRpbWUpID0+IHtcbiAgICAgICAgICAgIGlmIChfY2hl\nY2tFdmFsKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tFdmFsID0gX2NoZWNrRXZhbDtcbiAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgIGlmIChfd2FpdFRpbWUpIHtcbiAgICAgICAgICAgICAgICB3\nYWl0VGltZSA9IF93YWl0VGltZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAg\nIGFzeW5jIGZ1bmN0aW9uIGNoZWNrSWZyYW1lKCkge1xuICAgICAgICAgICAgaWYgKGNoZWNrRXZh\nbCAmJiAhYXdhaXQgY2hlY2tFdmFsKGlmcmFtZURvYykpIHtcbiAgICAgICAgICAgICAgICBzZXRU\naW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tJZnJhbWUoKTtcbiAgICAg\nICAgICAgICAgICB9LCB3YWl0VGltZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgbG9hZGVkSGFuZGxlcigpO1xuICAgICAgICB9XG4gICAgICAg\nIGN1cklmcmFtZS5uYW1lID0gJ3BhZ2V0dWFsLWlmcmFtZSc7XG4gICAgICAgIGN1cklmcmFtZS5z\nYW5kYm94ID0gXCJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIGFsbG93LXBvcHVwcyBh\nbGxvdy1mb3Jtc1wiO1xuICAgICAgICBjdXJJZnJhbWUuZnJhbWVCb3JkZXIgPSAnMCc7XG4gICAg\nICAgIGN1cklmcmFtZS5zY3JvbGxpbmcgPSBcIm5vXCI7XG4gICAgICAgIGN1cklmcmFtZS5zdHls\nZS5jc3NUZXh0ID0gJ2Rpc3BsYXk6IGJsb2NrOyB2aXNpYmlsaXR5OiB2aXNpYmxlOyBmbG9hdDog\nbm9uZTsgY2xlYXI6IGJvdGg7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDA7IGJhY2tncm91bmQ6IGlu\naXRpYWw7IGJvcmRlcjogMHB4OyBib3JkZXItcmFkaXVzOiAwcHg7IG1hcmdpbjogMHB4OyBwYWRk\naW5nOiAwcHg7IHotaW5kZXg6IDIxNDc0ODM2NDU7Y29udGVudC12aXNpYmlsaXR5OiBhdXRvO2Nv\nbnRhaW4taW50cmluc2ljLXNpemU6IGF1dG8gMzAwcHg7JztcbiAgICAgICAgY3VySWZyYW1lLmFk\nZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGFzeW5jIGUgPT4ge1xuICAgICAgICAgICAgY2xlYXJJ\nbnRlcnZhbChjaGVja0lmcmFtZVRpbWVyKTtcbiAgICAgICAgICAgIGlmIChpc1BhdXNlKSByZXR1\ncm4gY2FsbGJhY2soZmFsc2UpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBp\nZnJhbWVEb2MgPSBjdXJJZnJhbWUuY29udGVudERvY3VtZW50IHx8IGN1cklmcmFtZS5jb250ZW50\nV2luZG93LmRvY3VtZW50O1xuICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAg\nICAgZGVidWcoXCJTdG9wIGFzIGNvcnNcIik7XG4gICAgICAgICAgICAgICAgaXNQYXVzZSA9IHRy\ndWU7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJl\ndHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBjc3M7XG4gICAgICAgICAgICBp\nZiAocnVsZXNEYXRhLmN1c3RvbUNzcyAmJiBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmNzcykge1xu\nICAgICAgICAgICAgICAgIGxldCBnbG9iYWxDc3NBcnIgPSBydWxlc0RhdGEuY3VzdG9tQ3NzLnNw\nbGl0KFwiaW5JZnJhbWU6XCIpO1xuICAgICAgICAgICAgICAgIGxldCBydWxlQ3NzQXJyID0gcnVs\nZVBhcnNlci5jdXJTaXRlUnVsZS5jc3Muc3BsaXQoXCJpbklmcmFtZTpcIik7XG4gICAgICAgICAg\nICAgICAgbGV0IG1haW5Dc3MgPSBnbG9iYWxDc3NBcnJbMF0gKyBydWxlQ3NzQXJyWzBdLCBpbkNz\ncyA9IChnbG9iYWxDc3NBcnJbMV0gfHwgXCJcIikgKyAocnVsZUNzc0FyclsxXSB8fCBcIlwiKTtc\nbiAgICAgICAgICAgICAgICBjc3MgPSBtYWluQ3NzICsgKGluQ3NzID8gKFwiaW5JZnJhbWU6XCIg\nKyBpbkNzcykgOiBcIlwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAg\nY3NzID0gcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5jc3MgfHwgcnVsZXNEYXRhLmN1c3RvbUNzcztc\nbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjc3MpIHtcbiAgICAgICAgICAgICAgICBs\nZXQgY3NzQXJyID0gY3NzLnNwbGl0KFwiaW5JZnJhbWU6XCIpO1xuICAgICAgICAgICAgICAgIGlm\nIChjc3NBcnIgJiYgY3NzQXJyLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0\nIHN0eWxlRWxlID0gaWZyYW1lRG9jLmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgICAgICAg\nICAgICAgICAgICAgc3R5bGVFbGUuaW5uZXJIVE1MID0gY3NzQXJyWzFdO1xuICAgICAgICAgICAg\nICAgICAgICBpZnJhbWVEb2MuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZSk7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3VySWZyYW1lLnN0eWxlLmhlaWdo\ndCA9IFwiXCI7XG4gICAgICAgICAgICBjaGVja0lmcmFtZSgpO1xuICAgICAgICAgICAgaWZyYW1l\nRG9jLmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgZSA9PiB7XG4gICAgICAgICAgICAgICAgZG9j\ndW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3doZWVsJykpO1xuICAgICAgICAgICAgfSwg\ndHJ1ZSk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBl\nID0+IHtcbiAgICAgICAgICAgICAgICBjdXJJZnJhbWUuY29udGVudFdpbmRvdy5kaXNwYXRjaEV2\nZW50KG5ldyBFdmVudCgnc2Nyb2xsJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xu\nICAgICAgICBsZXQgY2hlY2tUaW1lcyA9IDAsIGZpbmRQYWdlRWxlID0gZmFsc2U7XG4gICAgICAg\nIGxldCBmb3JjZVJlZnJlc2ggPSBlID0+IHtcbiAgICAgICAgICAgIGlmIChpbkFjdGlvbiB8fCAh\naWZyYW1lRG9jKSByZXR1cm47XG4gICAgICAgICAgICBpbkFjdGlvbiA9IHRydWU7XG4gICAgICAg\nICAgICBsZXQgZm91bmROZXh0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJl\nbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZm9yY2VSZWZyZXNoKTtcbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAg\nIGluQWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKCFydWxlUGFyc2VyLm5leHRM\naW5rSHJlZiAmJiAhaXNQYXVzZSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja1RpbWVzKys7\nXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHJ1bGVQYXJzZXIuZ2V0TmV4dExpbmsoaWZyYW1l\nRG9jLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJ1bGVQYXJzZXIubmV4dExpbmtI\ncmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3VuZE5leHQoKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGlmIChpc0xvYWRpbmcpIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAg\nICAgICAgICAgICB9IGVsc2UgaWYgKGNoZWNrVGltZXMgPj0gMTApIHtcbiAgICAgICAgICAgICAg\nICAgICAgICAgIGZvdW5kTmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNo\nZWNrVGltZXMgPj0gMyAmJiAhZmluZFBhZ2VFbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGlmICghcGFnZUVsZW1lbnQpIHBhZ2VFbGVtZW50ID0gcnVsZVBhcnNlci5nZXRQYWdlRWxlbWVu\ndChpZnJhbWVEb2MsIGN1cklmcmFtZS5jb250ZW50V2luZG93KTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmICghcGFnZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBp\nbkFjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VySWZyYW1lLmNv\nbnRlbnRXaW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmRQYWdlRWxlID0gdHJ1ZTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kTmV4dCgpO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH07XG4gICAgICAg\nIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZm9yY2VSZWZyZXNoKTtcbiAg\nICAgICAgY3VySWZyYW1lLnNyYyA9IHVybDtcbiAgICAgICAgY3VyRm9yY2VJZnJhbWUgPSBjdXJJ\nZnJhbWU7XG4gICAgICAgIGxldCBpbnNlcnQgPSBydWxlUGFyc2VyLmdldEluc2VydCgpO1xuICAg\nICAgICBsZXQgYm9keSA9IGdldEJvZHkoZG9jdW1lbnQpO1xuICAgICAgICBsZXQgY3VyU2Nyb2xs\nID0gYm9keS5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtc\nbiAgICAgICAgaWYgKGZvcmNlU3RhdGUgPT0gMikge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9j\ndW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGxvYWRpbmdEaXYpO1xuICAgICAgICAgICAgYm9keS5h\ncHBlbmRDaGlsZChjdXJJZnJhbWUpO1xuICAgICAgICAgICAgbGV0IGJvZHlTdHlsZSA9IGdldENv\nbXB1dGVkU3R5bGUoYm9keSk7XG4gICAgICAgICAgICBpZiAoYm9keVN0eWxlLmRpc3BsYXkgPT0g\nXCJmbGV4XCIgfHwgYm9keVN0eWxlLmRpc3BsYXkgPT0gXCJpbmxpbmUtZmxleFwiKSB7XG4gICAg\nICAgICAgICAgICAgYm9keS5zdHlsZS5mbGV4RGlyZWN0aW9uID0gXCJjb2x1bW5cIjtcbiAgICAg\nICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJ1bGVQYXJzZXIuaW5zZXJ0\nRWxlbWVudChjdXJJZnJhbWUpO1xuICAgICAgICB9XG4gICAgICAgIGJvZHkuc2Nyb2xsVG9wID0g\nY3VyU2Nyb2xsO1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wID0g\nY3VyU2Nyb2xsO1xuXG4gICAgICAgIGlmICghc2Nyb2xsVG9SZXNpemVJbml0ZWQpIHtcbiAgICAg\nICAgICAgIHNjcm9sbFRvUmVzaXplSW5pdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGRvY3VtZW50\nLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgc2Nyb2xsVG9SZXNpemUpO1xuICAgICAgICB9\nXG4gICAgICAgIHJldHVybiBjdXJJZnJhbWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZFBh\nZ2VPdmVyKCkge1xuICAgICAgICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3RvcFNjcm9s\nbCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3N0b3BTY3JvbGwgPSBmYWxzZTt9\nLCAzMDApO1xuICAgICAgICBpZiAobG9hZGluZ0Rpdi5wYXJlbnROb2RlKSB7XG4gICAgICAgICAg\nICBsb2FkaW5nRGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobG9hZGluZ0Rpdik7XG4gICAgICAg\nIH1cbiAgICAgICAgaWYgKHJhdGUgIT09IDEgJiYgIWNsaWNrTW9kZSkge1xuICAgICAgICAgICAg\nc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRpc3RUb0JvdHRvbSgpIDwg\nYm90dG9tR2FwKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRQYWdlKCk7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgfSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNpZGVD\nb250cm9sbGVyLmluaXRlZCkge1xuICAgICAgICAgICAgc2lkZUNvbnRyb2xsZXIuZnJhbWUuY2xh\nc3NMaXN0LnJlbW92ZShcInBhZ2V0dWFsLXNpZGVDb250cm9sbGVyLWxvYWRpbmdcIik7XG4gICAg\nICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjaGVja0F1dG9Mb2FkTnVtKCkge1xuICAgICAg\nICBpZiAoYXV0b0xvYWROdW0gPj0gMCkge1xuICAgICAgICAgICAgaWYgKGF1dG9Mb2FkTnVtICE9\nPSAwICYmIC0tYXV0b0xvYWROdW0gPT09IDApIHtcbiAgICAgICAgICAgICAgICBhdXRvTG9hZE51\nbSA9IC0xO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0\nKCgpID0+IG5leHRQYWdlKCksIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxu\nXG4gICAgYXN5bmMgZnVuY3Rpb24gbmV4dFBhZ2UoKSB7XG4gICAgICAgIGlmIChpc1BhdXNlIHx8\nIGlzTG9hZGluZyB8fCBmb3JjZVN0YXRlID09PSAxKSByZXR1cm47XG4gICAgICAgIGlmIChydWxl\nUGFyc2VyLmN1clNpdGVSdWxlLmRlbGF5KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAg\nICAgICAgIGxldCBjaGVja0RlbGF5ID0gKCh0eXBlb2YgcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5k\nZWxheSA9PT0gJ2Z1bmN0aW9uJykgPyBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmRlbGF5IDogRnVu\nY3Rpb24oJ1widXNlIHN0cmljdFwiOycgKyBydWxlUGFyc2VyLmN1clNpdGVSdWxlLmRlbGF5KSko\nKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNoZWNrRGVsYXkpIHJldHVybjtcbiAgICAgICAgICAg\nIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgICAgIGRlYnVnKGUpO1xuICAgICAgICAgICAgfVxu\nICAgICAgICB9XG4gICAgICAgIGxldCBuZXh0TGluayA9IHJ1bGVQYXJzZXIubmV4dExpbmtIcmVm\nO1xuICAgICAgICBpZiAoIW5leHRMaW5rKSB7XG4gICAgICAgICAgICBpc0xvYWRpbmcgPSB0cnVl\nO1xuICAgICAgICAgICAgaWYgKGN1clBhZ2UgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBhd2Fp\ndCBydWxlUGFyc2VyLmdldE5leHRMaW5rKGRvY3VtZW50LCB0cnVlKTtcbiAgICAgICAgICAgICAg\nICBuZXh0TGluayA9IHJ1bGVQYXJzZXIubmV4dExpbmtIcmVmO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgaWYgKCFuZXh0TGluaykge1xuICAgICAgICAgICAgICAgIGlmIChjdXJQYWdlID09\nPSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChydWxlUGFyc2VyLmN1clNpdGVSdWxlLnBp\nblVybCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7aXNMb2Fk\naW5nID0gZmFsc2U7fSwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0cnlU\naW1lcysrIDwgNSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7\naXNMb2FkaW5nID0gZmFsc2U7fSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLmZpbmROb05leHQoKTtcbiAgICAg\nICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXNob3dlZExhc3RQ\nYWdlVGlwcykge1xuICAgICAgICAgICAgICAgICAgICBydWxlUGFyc2VyLnJlYWNoZWRMYXN0UGFn\nZSgpO1xuICAgICAgICAgICAgICAgICAgICBzaG93ZWRMYXN0UGFnZVRpcHMgPSB0cnVlO1xuICAg\nICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4g\nICAgICAgICAgICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBzaG93ZWRM\nYXN0UGFnZVRpcHMgPSBmYWxzZTtcbiAgICAgICAgbGV0IHB2R2FsbGVyeSA9IGRvY3VtZW50LnF1\nZXJ5U2VsZWN0b3IoXCJzcGFuLnB2LWdhbGxlcnktY29udGFpbmVyXCIpO1xuICAgICAgICBpZiAo\ncHZHYWxsZXJ5ICYmIHB2R2FsbGVyeS5zdHlsZS5kaXNwbGF5ICE9PSBcIm5vbmVcIikgcmV0dXJu\nO1xuICAgICAgICBsZXQgaW5zZXJ0ID0gcnVsZVBhcnNlci5nZXRJbnNlcnQoKTtcbiAgICAgICAg\naWYgKGluc2VydCkge1xuICAgICAgICAgICAgaWYgKGN1clBhZ2UgPT09IDEpIHtcbiAgICAgICAg\nICAgICAgICBpbml0VmlldygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXC8qaWYgKGN1\nclBhZ2UgPT0gMSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZSh7XG4gICAg\nICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICdwYWdldHVhbC5pbnNlcnQnXG4gICAgICAgICAgICAg\nICAgfSwgJyonKTtcbiAgICAgICAgICAgIH0qXC9cbiAgICAgICAgICAgIGxldCBpc0pzID0gcnVs\nZVBhcnNlci5jdXJTaXRlUnVsZS5hY3Rpb24gPT0gMyB8fCBydWxlUGFyc2VyLmhyZWZJc0pzKG5l\neHRMaW5rKTtcbiAgICAgICAgICAgIGlmICghaXNKcykge1xuICAgICAgICAgICAgICAgIGlmIChl\nbXVJZnJhbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVtdUlmcmFtZS5wYXJlbnROb2Rl\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbXVJZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVD\naGlsZChlbXVJZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgIGVtdUlmcmFtZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAg\nIGxhc3RBY3RpdmVVcmwgPSBuZXh0TGluaztcbiAgICAgICAgICAgICAgICBpZiAobG9jYXRpb24u\ncHJvdG9jb2wgPT09IFwiaHR0cHM6XCIgJiYgXC9eaHR0cDpcLy50ZXN0KG5leHRMaW5rKSkge1xu\nICAgICAgICAgICAgICAgICAgICBuZXh0TGluayA9IG5leHRMaW5rLnJlcGxhY2UoXC9eaHR0cFwv\nLCBcImh0dHBzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIGlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICBpZiAoY3VyUGFnZSAhPT0gMSB8fCAh\naXNKcyB8fCAhcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5zbWFydCkge1xuICAgICAgICAgICAgICAg\nIHJ1bGVQYXJzZXIuYmVnaW5Mb2FkaW5nKGxvYWRpbmdEaXYpO1xuICAgICAgICAgICAgfSBlbHNl\nIHtcbiAgICAgICAgICAgICAgICBpZiAoc2lkZUNvbnRyb2xsZXIuaW5pdGVkKSB7XG4gICAgICAg\nICAgICAgICAgICAgIHNpZGVDb250cm9sbGVyLmZyYW1lLmNsYXNzTGlzdC5hZGQoXCJwYWdldHVh\nbC1zaWRlQ29udHJvbGxlci1sb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgIGxldCBzbGVlcCA9IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUuc2xl\nZXAgfHwgMDtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAg\nIGlmIChydWxlUGFyc2VyLmN1clNpdGVSdWxlLnBhZ2VFbGVtZW50QnlKcykge1xuICAgICAgICAg\nICAgICAgICAgICB2YXIgb3ZlciA9IGVsZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAg\naWYgKHVybENoYW5nZWQgfHwgaXNQYXVzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGxvYWRQYWdlT3ZlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAg\nICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbGVz\nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVBhcnNlci5pbnNlcnRQYWdlKGRv\nY3VtZW50LCBlbGVzLCBuZXh0TGluaywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBjcmVhdGVQYWdlQmFyKG5leHRMaW5rKTtcbiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgY2hlY2tBdXRvTG9hZE51bSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIH0sIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICBkZWJ1ZyhcIlN0b3AgYXMgbm8gcGFnZSB3aGVuIGdldCBieSBqc1wi\nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BhdXNlID0gdHJ1ZTtcbiAgICAgICAg\nICAgICAgICAgICAgICAgICAgICBsb2FkUGFnZU92ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICgodHlwZW9mIHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUu\ncGFnZUVsZW1lbnRCeUpzID09PSAnZnVuY3Rpb24nKSA\/IHJ1bGVQYXJzZXIuY3VyU2l0ZVJ1bGUu\ncGFnZUVsZW1lbnRCeUpzIDogRnVuY3Rpb24oXCJvdmVyXCIsIFwicGFnZU51bVwiLCdcInVzZSBz\ndHJpY3RcIjsnICsgcnVsZVBhcnNlci5jdXJTaXRlUnVsZS5wYWdlRWxlbWVudEJ5SnMpKShvdmVy\nLCBjdXJQYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBkZWJ1ZyhlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgIH0gZWxzZSBpZiAoKGZvcmNlU3RhdGUgPT09IDIgfHwgcnVsZVBhcnNlci5jdXJTaXRl\nUnVsZS5hY3Rpb24gPT0gMikgJiYgIWlzSnMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yY2VJ\nZnJhbWUobmV4dExpbmssIChpZnJhbWUsIHJlZnJlc2gpID0+IHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIGlmICh1cmxDaGFuZ2VkIHx8IGlzUGF1c2UpIHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBsb2FkUGFnZU92ZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1\ncm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBp\nZiAoIXJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFnZUJhciA9\nIGNyZWF0ZVBhZ2VCYXIobmV4dExpbmspO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm\nIChwYWdlQmFyICYmIGlmcmFtZSAmJiBpZnJhbWUucGFyZW50Tm9kZSkgaWZyYW1lLnBhcmVudE5v\nZGUuaW5zZXJ0QmVmb3JlKHBhZ2VCYXIsIGlmcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAg\nICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkUGFnZU92ZXIoKTtcbiAgICAgICAgICAg\nICAgICAgICAgICAgIGNoZWNrQXV0b0xvYWROdW0oKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7\nXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgoZm9yY2VTdGF0ZSA9PT0gMyB8fCBydWxlUGFy\nc2VyLmN1clNpdGVSdWxlLmFjdGlvbiA9PSAxKSAmJiAhaXNKcykge1xuICAgICAgICAgICAgICAg\nICAgICByZXF1ZXN0RnJvbUlmcmFtZShuZXh0TGluaywgYXN5bmMgKGRvYywgZWxlcykgPT4ge1xu\nICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybENoYW5nZWQgfHwgaXNQYXVzZSkge1xuICAg\nICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRQYWdlT3ZlcigpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICAgICAgICAgIGlmIChlbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nYXdhaXQgcnVsZVBhcnNlci5pbnNlcnRQYWdlKGRvYywgZWxlcywgbmV4dExpbmssICgpID0+IHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUGFnZUJhcihuZXh0TGluayk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrQXV0b0xvYWROdW0oKTtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAg\nICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZFBhZ2VPdmVyKCk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG9Mb2FkTnVtID49IDApIHtcbiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBuZXh0UGFnZSgp\nLCAyMDAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxz\nZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNKcykge1xuICAgICAgICAgICAgICAgICAg\nICAgICAgcmVxdWVzdERvYyhuZXh0TGluaywgKGVsZXMpID0+IHtcbiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICBpZiAodXJsQ2hhbmdlZCB8fCBpc1BhdXNlKSB7XG4gICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGxvYWRQYWdlT3ZlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgICAgICAgICAgICAgICAgIGlmIChlbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIGNyZWF0ZVBhZ2VCYXIobmV4dExpbmspO1xuICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICBjaGVja0F1dG9Mb2FkTnVtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg\nfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZFBhZ2VPdmVyKCk7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvTG9hZE51bSA+PSAwKSB7\nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IG5l\neHRQYWdlKCksIDIwMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4g\nICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbXVQ\nYWdlKChkb2MsIGVsZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJs\nQ2hhbmdlZCB8fCBpc1BhdXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv\nYWRQYWdlT3ZlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4g\nICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAg\nIGlmIChlbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVQYXJzZXIu\naW5zZXJ0UGFnZShkb2MsIGVsZXMsIFwiXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgIGNyZWF0ZVBhZ2VCYXIobmV4dExpbmspO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgY2hlY2tBdXRvTG9hZE51bSgpO1xuICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB9LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9\nIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkUGFnZU92ZXIoKTtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG9Mb2FkTnVtID49IDApIHtc\nbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gbmV4\ndFBhZ2UoKSwgMjAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAg\nICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAg\nICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHNs\nZWVwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgICAg\nIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycgfHwgZG9jdW1lbnQucmVhZHlT\ndGF0ZSA9PT0gJ3VuaW5pdGlhbGl6ZWQnKSB7XG4gICAgICAgICAgICBsZXQgZG9tUmVhZHkgPSBl\nID0+IHtcbiAgICAgICAgICAgICAgICBpbml0UnVsZXMoKCkgPT4ge1xuICAgICAgICAgICAgICAg\nICAgICBpbml0UGFnZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGRv\nY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsIGRvbVJlYWR5\nLCBmYWxzZSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM\naXN0ZW5lcihcIkRPTUNvbnRlbnRMb2FkZWRcIiwgZG9tUmVhZHksIGZhbHNlKTtcbiAgICAgICAg\nfSBlbHNlIHtcbiAgICAgICAgICAgIGluaXRSdWxlcygoKSA9PiB7XG4gICAgICAgICAgICAgICAg\naW5pdFBhZ2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVu\nY3Rpb24gdmlzaWJpbGl0eWNoYW5nZUhhbmRsZXIoKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92\nZUV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB2aXNpYmlsaXR5Y2hhbmdlSGFuZGxl\ncik7XG4gICAgICAgIGluaXQoKTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAg\nICAgICAgaWYgKGRvY3VtZW50LmhpZGRlbikge1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZl\nbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIHZpc2liaWxpdHljaGFuZ2VIYW5kbGVyKTtc\nbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluaXQoKTtcbiAgICAgICAgfVxuICAgIH0s\nIDMwMCk7XG59KSgpO1xuIn0KeyJzY3JpcHRJZCI6ImFlNDE4ZTU5ZDgwNWIzZTI3OGQ2OTAxMjg0\nMzUyYmFkIiwiZW5hYmxlZCI6dHJ1ZSwidXJsIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3Jr\nLm9yZ1wvc2NyaXB0c1wvMzk1OTcwXC8lRTglQjclQjMlRTglQkQlQUMlRTklOTMlQkUlRTYlOEUl\nQTUlRTQlQkYlQUUlRTUlQTQlOEQlRUYlQkMlODglRTclQTclQkIlRTklOTklQTQlRTklODclOEQl\nRTUlQUUlOUElRTUlOTAlOTElRTUlQTQlOTYlRTklOTMlQkUlRTclOUIlQjQlRTglQkUlQkUlRUYl\nQkMlODkudXNlci5qcyIsImNvZGVWMiI6IlwvXC8gPT1Vc2VyU2NyaXB0PT1cblwvXC8gQG5hbWUg\nICAgICAgIOi3s+i9rOmTvuaOpeS\/ruWkje+8iOenu+mZpOmHjeWumuWQkeWklumTvuebtOi+vu+8\niVxuXC9cLyBAZGVzY3JpcHRpb24g5L+u5aSN6Lez6L2s6ZO+5o6l5Li656uZ5aSW55u06ZO+77yI\n56e76Zmk6YeN5a6a5ZCR55u05o6l6Lez6L2s77yJ77yM5YWN5Y675oum5oiq6aG16Z2i54K55Ye7\n5q2l6aqk5Y+v55u06L6+56uZ5aSW77yb5oum5oiq6aG16Z2i6Ieq5Yqo6Lez6L2s77yI5peg6aG7\n6aKd5aSW5pON5L2c77yJ77yb5bey6YCC6YWNQUNH55uS5a2Q44CB54ix5Y+R55S144CB55m+5bqm\n5pCc57Si44CB55m+5bqm6LS05ZCn44CB5ZOU5ZOp5ZOU5ZOp5ri45oiPV0lLSeOAgUJpbmcg5pCc\n57Si44CB5Lmm562+5Zyw55CD44CB6YW35a6J44CBQ1NETuOAgeixhueTo+OAgUZhY2Vib29r44CB\n56CB5LqR44CBR29vZ2xlIOaQnOe0ouOAgUdvb2dsZSDph43lrprlkJHpobXjgIHoirHnk6PnvZHj\ngIFJbmZvUeOAgUluc3RhZ3JhbeOAgeeugOS5puOAgeaOmOmHkeOAgemHkeWxseaWh+aho+OAgemT\nvua7tOOAgeWKm+aJo++8iExlZXRjb2Rl77yJ44CBNTFDVE8g5Y2a5a6i44CBTkdBIOeOqeWutuek\nvuWMuuOAgeeJm+Wuoue9keOAgeW8gOa6kOS4reWbveOAgXBpeGl244CB5b6u5L+h44CB5b6u5L+h\n5byA5pS+56S+5Yy644CBUVEg6YKu566x44CBUEMg54mIIFFR44CB6IW+6K6v5paH5qGj44CB6IW+\n6K6v5YWU5bCP5bei44CB55+z5aKo5paH5qGj44CBMzYwIOaQnOe0ouOAgeaQnOeLl+aQnOe0ouOA\ngeWwkeaVsOa0vuOAgeiFvuiur+S6keW8gOWPkeiAheekvuWMuuOAgeaOqOeJue+8iFR3aXR0ZXLv\nvInjgIHlvq7ljZrjgIFZb3VUdWJl44CB6K+t6ZuA44CB55+l5LmO44CB55+l5LmO5LiT5qCPXG5c\nL1wvIEBuYW1lc3BhY2UgICBtYW9tYW8xOTk2LnJlbW92ZS1yZWRpcmVjdFxuXC9cLyBAdmVyc2lv\nbiAgICAgMi4xOS4xXG5cL1wvIEBhdXRob3IgICAgICBtYW9tYW8xOTk2XG5cL1wvIEBob21lcGFn\nZSAgICBodHRwczpcL1wvZ2l0aHViLmNvbVwvbWFvbWFvMTk5NlwvdGFtcGVybW9ua2V5LXNjcmlw\ndHNcblwvXC8gQHN1cHBvcnRVUkwgIGh0dHBzOlwvXC9naXRodWIuY29tXC9tYW9tYW8xOTk2XC90\nYW1wZXJtb25rZXktc2NyaXB0c1wvaXNzdWVzXG5cL1wvIEBsaWNlbnNlICAgICBNSVRcblwvXC8g\nQG1hdGNoICAgICAgICo6XC9cLypcLypcblwvXC8gQGV4Y2x1ZGUgICAgICo6XC9cL2xvY2FsaG9z\ndDoqXC8qXG5cL1wvIEBleGNsdWRlICAgICAqOlwvXC8xMjcuMC4wLjE6KlwvKlxuXC9cLyBAZXhj\nbHVkZSAgICAgKjpcL1wvMC4wLjAuMCpcblwvXC8gQGV4Y2x1ZGUgICAgICo6XC9cLzE5Mi4xNjgu\nKlxuXC9cLyBAY29ubmVjdCAgICAgYmFpZHUuY29tXG5cL1wvIEBjb25uZWN0ICAgICAqXG5cL1wv\nIEBncmFudCAgICAgICB1bnNhZmVXaW5kb3dcblwvXC8gQGdyYW50ICAgICAgIEdNLnhtbEh0dHBS\nZXF1ZXN0XG5cL1wvIEBncmFudCAgICAgICBHTV94bWxodHRwUmVxdWVzdFxuXC9cLyBAZG93bmxv\nYWRVUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvMzk1OTcwXC8l\nRTglQjclQjMlRTglQkQlQUMlRTklOTMlQkUlRTYlOEUlQTUlRTQlQkYlQUUlRTUlQTQlOEQlRUYl\nQkMlODglRTclQTclQkIlRTklOTklQTQlRTklODclOEQlRTUlQUUlOUElRTUlOTAlOTElRTUlQTQl\nOTYlRTklOTMlQkUlRTclOUIlQjQlRTglQkUlQkUlRUYlQkMlODkudXNlci5qc1xuXC9cLyBAdXBk\nYXRlVVJMIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzM5NTk3MFwv\nJUU4JUI3JUIzJUU4JUJEJUFDJUU5JTkzJUJFJUU2JThFJUE1JUU0JUJGJUFFJUU1JUE0JThEJUVG\nJUJDJTg4JUU3JUE3JUJCJUU5JTk5JUE0JUU5JTg3JThEJUU1JUFFJTlBJUU1JTkwJTkxJUU1JUE0\nJTk2JUU5JTkzJUJFJUU3JTlCJUI0JUU4JUJFJUJFJUVGJUJDJTg5Lm1ldGEuanNcblwvXC8gPT1c\nL1VzZXJTY3JpcHQ9PVxuIWZ1bmN0aW9uKCkge1xuICBcInVzZSBzdHJpY3RcIjtcbiAgdmFyIEZF\nTU1fQVRUUl9LRVkgPSBcImZlbW0taGVscGVyXCIsIG1hcCA9IG5ldyBXZWFrTWFwO1xuICB2YXIg\naXNBcnJheSA9IEFycmF5LmlzQXJyYXksIGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xu\nICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHZhbHVlO1xuICB9LCBpc1N0cmluZyA9\nIGZ1bmN0aW9uKHZhbCkge1xuICAgIHJldHVybiBcInN0cmluZ1wiID09IHR5cGVvZiB2YWw7XG4g\nIH0sIGlzQnJvd3NlciA9IFwidW5kZWZpbmVkXCIgIT0gdHlwZW9mIHdpbmRvdztcbiAgZnVuY3Rp\nb24gdmFsaWRhdGVVcmwodXJsKSB7XG4gICAgaWYgKCFpc1N0cmluZyhcInN0cmluZ1wiKSkgcmV0\ndXJuICExO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IFVSTCh1cmwpLCAhMDtcbiAgICB9\nIGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gIH1cbiAgdmFyIHJlcXVl\nc3RGdW5jdGlvbiwgY2FjaGUsIEdNQ2FjaGVkUmVxdWVzdCA9IChyZXF1ZXN0RnVuY3Rpb24gPSBH\nTS54bWxIdHRwUmVxdWVzdCwgXG4gIGNhY2hlID0gbmV3IE1hcCwgZnVuY3Rpb24ob3B0aW9ucykg\ne1xuICAgIGlmICh2b2lkIDAgIT09IG9wdGlvbnMuY2FjaGVUaW1lICYmIChcIm51bWJlclwiICE9\nIHR5cGVvZiBvcHRpb25zLmNhY2hlVGltZSB8fCBvcHRpb25zLmNhY2hlVGltZSA8IDApKSB0aHJv\ndyBuZXcgRXJyb3IoXCJcXHU2NWUwXFx1NjU0OFxcdTc2ODQgY2FjaGVUaW1lIFxcdTkwMDlcXHU5\nODc5XCIpO1xuICAgIHZhciBfb3B0aW9uc19zaG91bGRDYWNoZUVycm9yLCBjYWNoZUtleSA9IEpT\nT04uc3RyaW5naWZ5KG9wdGlvbnMpLCBjYWNoZWREYXRhID0gY2FjaGUuZ2V0KGNhY2hlS2V5KTtc\nbiAgICBpZiAoY2FjaGVkRGF0YSkge1xuICAgICAgdmFyIF9vcHRpb25zX2NhY2hlVGltZSwgZGF0\nYSA9IGNhY2hlZERhdGEuZGF0YSwgdGltZSA9IGNhY2hlZERhdGEudGltZSwgZXJyb3IgPSBjYWNo\nZWREYXRhLmVycm9yLCByZXF1ZXN0UHJvbWlzZSA9IGNhY2hlZERhdGEucmVxdWVzdFByb21pc2U7\nXG4gICAgICBpZiAocmVxdWVzdFByb21pc2UpIHJldHVybiByZXF1ZXN0UHJvbWlzZTtcbiAgICAg\nIHZhciBjYWNoZVRpbWUgPSBudWxsICE9PSAoX29wdGlvbnNfY2FjaGVUaW1lID0gb3B0aW9ucy5j\nYWNoZVRpbWUpICYmIHZvaWQgMCAhPT0gX29wdGlvbnNfY2FjaGVUaW1lID8gX29wdGlvbnNfY2Fj\naGVUaW1lIDogMDtcbiAgICAgIGlmICghZXJyb3IgJiYgdGltZSAmJiBjYWNoZVRpbWUgJiYgRGF0\nZS5ub3coKSAtIHRpbWUgPCBjYWNoZVRpbWUpIHJldHVybiBQcm9taXNlLnJlc29sdmUoZGF0YSk7\nXG4gICAgICBjYWNoZS5kZWxldGUoY2FjaGVLZXkpO1xuICAgIH1cbiAgICB2YXIgc2hvdWxkQ2Fj\naGVFcnJvciA9IG51bGwgIT09IChfb3B0aW9uc19zaG91bGRDYWNoZUVycm9yID0gb3B0aW9ucy5z\naG91bGRDYWNoZUVycm9yKSAmJiB2b2lkIDAgIT09IF9vcHRpb25zX3Nob3VsZENhY2hlRXJyb3Ig\nJiYgX29wdGlvbnNfc2hvdWxkQ2FjaGVFcnJvciwgcmVxdWVzdFByb21pc2UxID0gcmVxdWVzdEZ1\nbmN0aW9uKG9wdGlvbnMpLnRoZW4oKGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgIHZhciB0aW1lID0g\nRGF0ZS5ub3coKTtcbiAgICAgIHJldHVybiBjYWNoZS5zZXQoY2FjaGVLZXksIHtcbiAgICAgICAg\nZGF0YTogZGF0YSxcbiAgICAgICAgdGltZTogdGltZVxuICAgICAgfSksIGRhdGE7XG4gICAgfSkp\nLmNhdGNoKChmdW5jdGlvbihlcnJvcikge1xuICAgICAgaWYgKHNob3VsZENhY2hlRXJyb3IpIHtc\nbiAgICAgICAgdmFyIHRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgICBjYWNoZS5zZXQoY2FjaGVL\nZXksIHtcbiAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgdGltZTogdGltZVxuICAg\nICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pKTtcbiAgICByZXR1\ncm4gY2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICByZXF1ZXN0UHJvbWlzZTogcmVxdWVzdFBy\nb21pc2UxXG4gICAgfSksIHJlcXVlc3RQcm9taXNlMTtcbiAgfSk7XG4gIGZ1bmN0aW9uIF9hcnJh\neV9saWtlX3RvX2FycmF5JDEoYXJyLCBsZW4pIHtcbiAgICAobnVsbCA9PSBsZW4gfHwgbGVuID4g\nYXJyLmxlbmd0aCkgJiYgKGxlbiA9IGFyci5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwLCBh\ncnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykgYXJyMltpXSA9IGFycltpXTtcbiAg\nICByZXR1cm4gYXJyMjtcbiAgfVxuICBmdW5jdGlvbiBfc2xpY2VkX3RvX2FycmF5JDEoYXJyLCBp\nKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGFycikge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXko\nYXJyKSkgcmV0dXJuIGFycjtcbiAgICB9KGFycikgfHwgZnVuY3Rpb24oYXJyLCBpKSB7XG4gICAg\nICB2YXIgX2kgPSBudWxsID09IGFyciA\/IG51bGwgOiBcInVuZGVmaW5lZFwiICE9IHR5cGVvZiBT\neW1ib2wgJiYgYXJyW1N5bWJvbC5pdGVyYXRvcl0gfHwgYXJyW1wiQEBpdGVyYXRvclwiXTtcbiAg\nICAgIGlmIChudWxsICE9IF9pKSB7XG4gICAgICAgIHZhciBfcywgX2UsIF9hcnIgPSBbXSwgX24g\nPSAhMCwgX2QgPSAhMTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBmb3IgKF9pID0gX2kuY2Fs\nbChhcnIpOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKSAmJiAoX2Fyci5wdXNoKF9zLnZh\nbHVlKSwgIWkgfHwgX2Fyci5sZW5ndGggIT09IGkpOyBfbiA9ICEwKSA7XG4gICAgICAgIH0gY2F0\nY2ggKGVycikge1xuICAgICAgICAgIF9kID0gITAsIF9lID0gZXJyO1xuICAgICAgICB9IGZpbmFs\nbHkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBfbiB8fCBudWxsID09IF9pLnJldHVy\nbiB8fCBfaS5yZXR1cm4oKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgaWYg\nKF9kKSB0aHJvdyBfZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9h\ncnI7XG4gICAgICB9XG4gICAgfShhcnIsIGkpIHx8IGZ1bmN0aW9uKG8sIG1pbkxlbikge1xuICAg\nICAgaWYgKCFvKSByZXR1cm47XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PSB0eXBlb2YgbykgcmV0\ndXJuIF9hcnJheV9saWtlX3RvX2FycmF5JDEobywgbWluTGVuKTtcbiAgICAgIHZhciBuID0gT2Jq\nZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgICAgIFwiT2Jq\nZWN0XCIgPT09IG4gJiYgby5jb25zdHJ1Y3RvciAmJiAobiA9IG8uY29uc3RydWN0b3IubmFtZSk7\nXG4gICAgICBpZiAoXCJNYXBcIiA9PT0gbiB8fCBcIlNldFwiID09PSBuKSByZXR1cm4gQXJyYXku\nZnJvbShuKTtcbiAgICAgIGlmIChcIkFyZ3VtZW50c1wiID09PSBuIHx8IFwvXig\/OlVpfEkpbnQo\nPzo4fDE2fDMyKSg\/OkNsYW1wZWQpP0FycmF5JFwvLnRlc3QobikpIHJldHVybiBfYXJyYXlfbGlr\nZV90b19hcnJheSQxKG8sIG1pbkxlbik7XG4gICAgfShhcnIsIGkpIHx8IGZ1bmN0aW9uKCkge1xu\nICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVy\nZSBub24taXRlcmFibGUgaW5zdGFuY2UuXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9u\nLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIp\nO1xuICAgIH0oKTtcbiAgfVxuICBmdW5jdGlvbiBkZWZpbmVTaXRlKHNpdGVJbmZvLCBkb21haW4s\nIG9wdGlvbnMpIHtcbiAgICB2YXIgcmVmO1xuICAgIEFycmF5LmlzQXJyYXkoc2l0ZUluZm8pICYm\nIChzaXRlSW5mbyA9IChyZWYgPSBfc2xpY2VkX3RvX2FycmF5JDEoc2l0ZUluZm8sIDMpKVswXSwg\nXG4gICAgZG9tYWluID0gcmVmWzFdLCBvcHRpb25zID0gcmVmWzJdKTtcbiAgICByZXR1cm4gWyBz\naXRlSW5mbywgZG9tYWluLCBvcHRpb25zIF07XG4gIH1cbiAgZnVuY3Rpb24gZ2V0U2VhcmNoUGFy\nYW1zVmFsdWUoc2VhcmNoUGFyYW1zLCBxdWVyeU5hbWUpIHtcbiAgICBzZWFyY2hQYXJhbXMgPSBu\nZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaFBhcmFtcyk7XG4gICAgdmFyIHJlc3VsdCA9IG51bGw7\nXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlOYW1lKSkge1xuICAgICAgdmFyIF9pdGVyYXRv\nck5vcm1hbENvbXBsZXRpb24gPSAhMCwgX2RpZEl0ZXJhdG9yRXJyb3IgPSAhMSwgX2l0ZXJhdG9y\nRXJyb3IgPSB2b2lkIDA7XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKHZhciBfc3RlcCwgX2l0\nZXJhdG9yID0gcXVlcnlOYW1lW1N5bWJvbC5pdGVyYXRvcl0oKTsgIShfaXRlcmF0b3JOb3JtYWxD\nb21wbGV0aW9uID0gKF9zdGVwID0gX2l0ZXJhdG9yLm5leHQoKSkuZG9uZSk7IF9pdGVyYXRvck5v\ncm1hbENvbXBsZXRpb24gPSAhMCkge1xuICAgICAgICAgIHZhciBuYW1lID0gX3N0ZXAudmFsdWU7\nXG4gICAgICAgICAgaWYgKHNlYXJjaFBhcmFtcy5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIHJl\nc3VsdCA9IHNlYXJjaFBhcmFtcy5nZXQobmFtZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAg\nICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBfZGlkSXRl\ncmF0b3JFcnJvciA9ICEwLCBfaXRlcmF0b3JFcnJvciA9IGVycjtcbiAgICAgIH0gZmluYWxseSB7\nXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiB8fCBu\ndWxsID09IF9pdGVyYXRvci5yZXR1cm4gfHwgX2l0ZXJhdG9yLnJldHVybigpO1xuICAgICAgICB9\nIGZpbmFsbHkge1xuICAgICAgICAgIGlmIChfZGlkSXRlcmF0b3JFcnJvcikgdGhyb3cgX2l0ZXJh\ndG9yRXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgcmVzdWx0ID0gc2VhcmNo\nUGFyYW1zLmdldChxdWVyeU5hbWUpO1xuICAgIHJldHVybiByZXN1bHQgfHwgXCJcIjtcbiAgfVxu\nICBmdW5jdGlvbiByZXF1ZXN0T3JpZ2luYWxMaW5rKGVsZW1lbnQpIHtcbiAgICAhZnVuY3Rpb24o\nZWxlbWVudCwgY2FsbGJhY2spIHtcbiAgICAgIGlmICghbWFwLmhhcyhlbGVtZW50KSAmJiAhZWxl\nbWVudC5nZXRBdHRyaWJ1dGUoRkVNTV9BVFRSX0tFWSkpIHtcbiAgICAgICAgbWFwLnNldChlbGVt\nZW50LCAxKTtcbiAgICAgICAgdmFyIG9iID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChmdW5j\ndGlvbihlbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24g\nPSAhMCwgX2RpZEl0ZXJhdG9yRXJyb3IgPSAhMSwgX2l0ZXJhdG9yRXJyb3IgPSB2b2lkIDA7XG4g\nICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciAodmFyIF9zdGVwLCBfaXRlcmF0b3IgPSBl\nbnRyaWVzW1N5bWJvbC5pdGVyYXRvcl0oKTsgIShfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0g\nKF9zdGVwID0gX2l0ZXJhdG9yLm5leHQoKSkuZG9uZSk7IF9pdGVyYXRvck5vcm1hbENvbXBsZXRp\nb24gPSAhMCkgX3N0ZXAudmFsdWUuaXNJbnRlcnNlY3RpbmcgJiYgKGVsZW1lbnQuc2V0QXR0cmli\ndXRlKEZFTU1fQVRUUl9LRVksIFwib2JzZXJ2ZXJlZFwiKSwgXG4gICAgICAgICAgICBjYWxsYmFj\naygpLCBvYi51bm9ic2VydmUoZWxlbWVudCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xu\nICAgICAgICAgICAgX2RpZEl0ZXJhdG9yRXJyb3IgPSAhMCwgX2l0ZXJhdG9yRXJyb3IgPSBlcnI7\nXG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAg\nIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gfHwgbnVsbCA9PSBfaXRlcmF0b3IucmV0dXJuIHx8\nIF9pdGVyYXRvci5yZXR1cm4oKTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAg\nICAgIGlmIChfZGlkSXRlcmF0b3JFcnJvcikgdGhyb3cgX2l0ZXJhdG9yRXJyb3I7XG4gICAgICAg\nICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICAgIG9iLm9ic2VydmUoZWxl\nbWVudCk7XG4gICAgICB9XG4gICAgfShlbGVtZW50LCAoZnVuY3Rpb24oKSB7XG4gICAgICBHTUNh\nY2hlZFJlcXVlc3Qoe1xuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgIHVybDogZWxl\nbWVudC5ocmVmLFxuICAgICAgICBhbm9ueW1vdXM6ICEwXG4gICAgICB9KS50aGVuKChmdW5jdGlv\nbihyZXMpIHtcbiAgICAgICAgcmVzLmZpbmFsVXJsICYmIHJlcy5maW5hbFVybCAhPT0gZWxlbWVu\ndC5ocmVmICYmIChlbGVtZW50LmhyZWYgPSByZXMuZmluYWxVcmwpO1xuICAgICAgfSkpO1xuICAg\nIH0pKTtcbiAgfVxuICB2YXIgc2l0ZXMkeiA9IFsgZGVmaW5lU2l0ZShbIFwiQUNHXFx1NzZkMlxc\ndTViNTBcIiwgXCJhY2dib3gubGlua1wiLCB7XG4gICAgdHJhbnNmb3JtOiB7XG4gICAgICBzZWxl\nY3RvcjogJ2FbaHJlZio9XCJcL2dvXC8\/dXJsXCJdJyxcbiAgICAgIGN1c3RvbVRyYW5zZm9ybTog\nZnVuY3Rpb24obm9kZSkge1xuICAgICAgICB2YXIgb3JpZ2luVXJsID0gZGVjb2RlVVJJQ29tcG9u\nZW50KG5vZGUuaHJlZi5zcGxpdChcIj91cmw9XCIpWzFdKTtcbiAgICAgICAgdHJ5IHtcbiAgICAg\nICAgICB2YWxpZGF0ZVVybChvcmlnaW5VcmwgPSBhdG9iKG9yaWdpblVybCkpICYmIChub2RlLmhy\nZWYgPSBvcmlnaW5VcmwpO1xuICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgfVxuICAgIH0s\nXG4gICAgYXV0b2p1bXA6IHtcbiAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAg\nICAgICAgcmV0dXJuIFwiXC9nb1wvXCIgPT09IHBhcmFtLnBhdGhuYW1lO1xuICAgICAgfSxcbiAg\nICAgIHNlbGVjdG9yOiBcImEubG9hZGluZy1idG5cIlxuICAgIH1cbiAgfSBdKSBdLCBCQUlEVV9S\nRSA9IFwvXihodHRwOlxcXC9cXFwvW14uXStcXC5bXi5dK1xcLmJhaWR1XFwuY29tfGh0dHBzOlxc\nXC9cXFwvYmFpa2VcXC5iYWlkdVxcLmNvbSlcLywgc2l0ZXMkeCA9IFsgZGVmaW5lU2l0ZShbIFwi\nXFx1NzY3ZVxcdTVlYTZcXHU2NDFjXFx1N2QyMlwiLCBcImJhaWR1LmNvbVwiLCB7XG4gICAgdHJh\nbnNmb3JtOiB7XG4gICAgICBzZWxlY3RvcjogXCIjY29udGVudF9sZWZ0ID4gW211XVwiLFxuICAg\nICAgZmFsbGJhY2tTZWxlY3RvcjogJ2FbaHJlZio9XCJiYWlkdS5jb21cL2xpbms\/dXJsPVwiXScs\nXG4gICAgICBjdXN0b21UcmFuc2Zvcm06IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgdmFyIG9y\naWdpblVybCA9IG5vZGUuZ2V0QXR0cmlidXRlKFwibXVcIik7XG4gICAgICAgIHZhbGlkYXRlVXJs\nKG9yaWdpblVybCkgJiYgIUJBSURVX1JFLnRlc3Qob3JpZ2luVXJsKSAmJiBub2RlLnF1ZXJ5U2Vs\nZWN0b3JBbGwoJ2RpdltoYXMtdHRzXSBhW2hyZWYqPVwiYmFpZHUuY29tXC9saW5rP3VybD1cIl0n\nKS5mb3JFYWNoKChmdW5jdGlvbihhKSB7XG4gICAgICAgICAgcmV0dXJuIGEuc2V0QXR0cmlidXRl\nKFwiaHJlZlwiLCBvcmlnaW5VcmwpO1xuICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9\nIF0pLCBkZWZpbmVTaXRlKFsgXCJcXHU3NjdlXFx1NWVhNlxcdThkMzRcXHU1NDI3XCIsIFwvXihq\ndW1wfGp1bXAyKVxcLmJkaW1nXFwuY29tJFwvLCB7XG4gICAgYXV0b2p1bXA6IHtcbiAgICAgIHZh\nbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIFwiXC9zYWZlY2hlY2tc\nL2luZGV4XCIgPT09IHBhcmFtLnBhdGhuYW1lO1xuICAgICAgfSxcbiAgICAgIHF1ZXJ5TmFtZTog\nXCJ1cmxcIixcbiAgICAgIHNlbGVjdG9yOiBcImEuYnRuLmJ0bi1uZXh0W2hyZWZdXCJcbiAgICB9\nXG4gIH0gXSksIGRlZmluZVNpdGUoWyAsIFwidGllYmEuYmFpZHUuY29tXCIsIHtcbiAgICBhdXRv\nanVtcDoge1xuICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICByZXR1\ncm4gXCJcL21vXC9xXC9jaGVja3VybFwiID09PSBwYXJhbS5wYXRobmFtZTtcbiAgICAgIH0sXG4g\nICAgICBxdWVyeU5hbWU6IFwidXJsXCIsXG4gICAgICBzZWxlY3RvcjogXCIuYnRucyBzcGFuLmpf\nbmV4dFwiXG4gICAgfVxuICB9IF0pIF0sIHVybE1hcCA9IG5ldyBNYXAsIHNpdGVzJHYgPSBbIGRl\nZmluZVNpdGUoWyBcIkJpbmcgXFx1NjQxY1xcdTdkMjJcIiwgXC9eKD86XFx3K1xcLik\/YmluZ1xc\nLmNvbSRcLywge1xuICAgIHRyYW5zZm9ybToge1xuICAgICAgc2VsZWN0b3I6ICcjYl9yZXN1bHRz\nIGFbdGFyZ2V0PVwiX2JsYW5rXCJdW2hyZWYqPVwid3d3LmJpbmcuY29tXC9ja1wvYVwiXVtocmVm\nKj1cIiZ1PWExXCJdJyxcbiAgICAgIGN1c3RvbVRyYW5zZm9ybTogZnVuY3Rpb24obm9kZSkge1xu\nICAgICAgICB2YXIgdSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobm9kZS5ocmVmKS5nZXQoXCJ1XCIp\nO1xuICAgICAgICBpZiAodXJsTWFwLmhhcyh1KSkgbm9kZS5ocmVmID0gdXJsTWFwLmdldCh1KTsg\nZWxzZSB7XG4gICAgICAgICAgdmFyIG9yaWdpblVybCA9IGF0b2IodS5yZXBsYWNlKFwvXmExXC8s\nIFwiXCIpLnJlcGxhY2UoXC9bLV9dXC9nLCAoZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgcmV0\ndXJuIFwiLVwiID09IGUgPyBcIitcIiA6IFwiXC9cIjtcbiAgICAgICAgICB9KSkucmVwbGFjZShc\nL1teQS1aYS16MC05XFxcXCtcXFxcXC9dXC9nLCBcIlwiKSk7XG4gICAgICAgICAgdmFsaWRhdGVV\ncmwob3JpZ2luVXJsKSAmJiAobm9kZS5ocmVmID0gb3JpZ2luVXJsLCB1cmxNYXAuc2V0KHUsIG9y\naWdpblVybCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IF0pIF0sIHNpdGVzJHUg\nPSBbIGRlZmluZVNpdGUoWyBcIlxcdTRlNjZcXHU3YjdlXFx1NTczMFxcdTc0MDNcIiwgXCJib29r\nbWFya2VhcnRoLmNuXCIsIHtcbiAgICB0cmFuc2Zvcm06IHtcbiAgICAgIHNlbGVjdG9yOiAnYVto\ncmVmKj1cIlwvdmlld1wvXCJdW2RhdGEtZXh0XScsXG4gICAgICBhdHRyaWJ1dGU6IFwiZGF0YS1l\neHRcIlxuICAgIH0sXG4gICAgYXV0b2p1bXA6IHtcbiAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24o\ncGFyYW0pIHtcbiAgICAgICAgdmFyIHBhdGhuYW1lID0gcGFyYW0ucGF0aG5hbWU7XG4gICAgICAg\nIHJldHVybiBcL15cXFwvdmlld1xcXC9cLy50ZXN0KHBhdGhuYW1lKSAmJiAhIWRvY3VtZW50LnF1\nZXJ5U2VsZWN0b3IoXCIuanVtcC10YXJnZXQtdXJsXCIpO1xuICAgICAgfSxcbiAgICAgIGdldE9y\naWdpbmFsVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2Vs\nZWN0b3IoXCIuanVtcC10YXJnZXQtdXJsXCIpLmdldEF0dHJpYnV0ZShcImRhdGEtdXJsXCIpO1xu\nICAgICAgfVxuICAgIH1cbiAgfSBdKSBdLCBzaXRlcyRvID0gWyBkZWZpbmVTaXRlKFsgXCJHb29n\nbGUgXFx1NjQxY1xcdTdkMjJcXHUzMDAxR29vZ2xlIFxcdTkxY2RcXHU1YjlhXFx1NTQxMVxcdTk4\nNzVcIiwgXC9eZ29vZ2xlXFwuKGNvbXxjb20\/XFwuW2Etel17Mn18W2Etel17Mn0pJFwvLCB7XG4g\nICAgdHJhbnNmb3JtOiB7XG4gICAgICBzZWxlY3RvcjogWyBcImFbanNuYW1lXVtocmVmXVtkYXRh\nLWpzYXJ3dF1cIiwgXCJhW2pzbmFtZV1baHJlZl1bcGluZ11cIiBdLmpvaW4oXCIsXCIpLFxuICAg\nICAgY3VzdG9tVHJhbnNmb3JtOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIG5vZGUuc2V0QXR0\ncmlidXRlKFwiZGF0YS1qcnd0XCIsIFwiMVwiKSwgbm9kZS5yZW1vdmVBdHRyaWJ1dGUoXCJwaW5n\nXCIpO1xuICAgICAgICB2YXIgbWF0Y2ggPSAobm9kZS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpIHx8\nIFwiXCIpLm1hdGNoKFwvXFw\/KC4qKVwvKTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAg\nICAgdmFyIHVybCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMobWF0Y2hbMV0pLmdldChcInVybFwiKTtc\nbiAgICAgICAgICB1cmwgJiYgdmFsaWRhdGVVcmwodXJsKSAmJiBub2RlLnNldEF0dHJpYnV0ZShc\nImhyZWZcIiwgdXJsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYXV0b2p1bXA6\nIHtcbiAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgcmV0dXJuIFwi\nXC91cmxcIiA9PT0gcGFyYW0ucGF0aG5hbWU7XG4gICAgICB9LFxuICAgICAgcXVlcnlOYW1lOiBc\nInFcIlxuICAgIH1cbiAgfSBdKSBdLCBSRU1PVkVfQVRUUlMgPSBbIFwib25jbGlja1wiLCBcIm9u\nbW91c2VvdmVyXCIsIFwib25tb3VzZW91dFwiIF0sIHNpdGVzJGYgPSBbIGRlZmluZVNpdGUoWyBc\nIk5HQSBcXHU3M2E5XFx1NWJiNlxcdTc5M2VcXHU1MzNhXCIsIFwvXihiYnNcXC5uZ2FcXC5jbnxu\nZ2FiYnNcXC5jb218Z1xcLm5nYVxcLmNuKSRcLywge1xuICAgIHRyYW5zZm9ybToge1xuICAgICAg\nc2VsZWN0b3I6ICdhW3RhcmdldD1cIl9ibGFua1wiXVtvbmNsaWNrKj1cInNob3dVcmxBbGVydFwi\nXScsXG4gICAgICBjdXN0b21UcmFuc2Zvcm06IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAgICAgUkVN\nT1ZFX0FUVFJTLmZvckVhY2goKGZ1bmN0aW9uKGF0dHIpIHtcbiAgICAgICAgICByZXR1cm4gbm9k\nZS5yZW1vdmVBdHRyaWJ1dGUoYXR0cik7XG4gICAgICAgIH0pKTtcbiAgICAgIH1cbiAgICB9XG4g\nIH0gXSkgXSwgc2l0ZXMkZSA9IFsgWyBcIlxcdTcyNWJcXHU1YmEyXFx1N2Y1MVwiLCBcIm5vd2Nv\nZGVyLmNvbVwiLCB7XG4gICAgdHJhbnNmb3JtOiB7XG4gICAgICBzZWxlY3RvcjogWyAnW2hyZWYq\nPVwiZ3ctYy5ub3djb2Rlci5jb21cL2FwaVwvc3BhcnRhXC9qdW1wXC9saW5rP2xpbms9XCJdJywg\nJ1tocmVmKj1cImhkLm5vd2NvZGVyLmNvbVwvbGluay5odG1sP3RhcmdldD1cIl0nIF0uam9pbihc\nIixcIiksXG4gICAgICBzZXBhcmF0b3I6IFwvXFw\/dGFyZ2V0fGxpbmtcXD1cL1xuICAgIH1cbiAg\nfSBdLCBbICwgXCJoZC5ub3djb2Rlci5jb21cIiwge1xuICAgIGF1dG9qdW1wOiB7fVxuICB9IF0g\nXSwgc2l0ZXMkYiA9IFsgWyBcIlxcdTVmYWVcXHU0ZmUxXCIsIFwid2VpeGluMTEwLnFxLmNvbVwi\nLCB7XG4gICAgYXV0b2p1bXA6IHtcbiAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtc\nbiAgICAgICAgcmV0dXJuIFwiXC9jZ2ktYmluXC9tbXNwYW1zdXBwb3J0LWJpblwvbmV3cmVkaXJl\nY3Rjb25maXJtY2dpXCIgPT09IHBhcmFtLnBhdGhuYW1lO1xuICAgICAgfSxcbiAgICAgIGdldE9y\naWdpbmFsVXJsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2Vs\nZWN0b3IoXCIud2V1aS1tc2cgcC53ZXVpLW1zZ19fZGVzY1wiKS50ZXh0Q29udGVudDtcbiAgICAg\nIH0sXG4gICAgICBzZWxlY3RvcjogXCJhLndldWktYnRuLndldWktYnRuX2RlZmF1bHRcIlxuICAg\nIH1cbiAgfSBdLCBbIFwiXFx1NWZhZVxcdTRmZTFcXHU1ZjAwXFx1NjUzZVxcdTc5M2VcXHU1MzNh\nXCIsIFwiZGV2ZWxvcGVycy53ZWl4aW4ucXEuY29tXCIsIHtcbiAgICBhdXRvanVtcDoge1xuICAg\nICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICByZXR1cm4gXCJcL2NvbW11\nbml0eVwvbWlkZGxlcGFnZVwvaHJlZlwiID09PSBwYXJhbS5wYXRobmFtZTtcbiAgICAgIH0sXG4g\nICAgICBxdWVyeU5hbWU6IFwiaHJlZlwiXG4gICAgfVxuICB9IF0sIFsgXCJRUSBcXHU5MGFlXFx1\nN2JiMVwiLCBcIm1haWwucXEuY29tXCIsIHtcbiAgICByZXdyaXRlV2luZG93T3Blbjoge1xuICAg\nICAgdmFsaWRhdGlvblJ1bGU6IFwidXJsPVwiLFxuICAgICAgcXVlcnlOYW1lOiBcInVybFwiXG4g\nICAgfSxcbiAgICBhdXRvanVtcDoge1xuICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkg\ne1xuICAgICAgICByZXR1cm4gXCJcL2NnaS1iaW5cL3JlYWR0ZW1wbGF0ZVwiID09PSBwYXJhbS5w\nYXRobmFtZTtcbiAgICAgIH0sXG4gICAgICBzZWxlY3RvcjogXCJkaXYuYy1mb290ZXIgYS5jLWZv\nb3Rlci1hMVwiLFxuICAgICAgcXVlcnlOYW1lOiBcImdvdXJsXCJcbiAgICB9XG4gIH0gXSwgWyBc\nIlBDIFxcdTcyNDggUVFcIiwgXCJjLnBjLnFxLmNvbVwiLCB7XG4gICAgYXV0b2p1bXA6IHtcbiAg\nICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgdmFyIHBhdGhuYW1lID0g\ncGFyYW0ucGF0aG5hbWU7XG4gICAgICAgIHJldHVybiBcL15cXFwvKG1pZGRsZWJ8bWlkZGxlbXxw\nY3xpb3N8YW5kcm9pZClcXC5odG1sJFwvLnRlc3QocGF0aG5hbWUpO1xuICAgICAgfSxcbiAgICAg\nIHF1ZXJ5TmFtZTogWyBcInBmdXJsXCIsIFwidXJsXCIgXVxuICAgIH1cbiAgfSBdLCBbIFwiXFx1\nODE3ZVxcdThiYWZcXHU2NTg3XFx1Njg2M1wiLCBcImRvY3MucXEuY29tXCIsIHtcbiAgICBhdXRv\nanVtcDoge1xuICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICByZXR1\ncm4gXCJcL3NjZW5hcmlvXC9saW5rLmh0bWxcIiA9PT0gcGFyYW0ucGF0aG5hbWU7XG4gICAgICB9\nLFxuICAgICAgcXVlcnlOYW1lOiBcInVybFwiXG4gICAgfVxuICB9IF0sIFsgXCJcXHU4MTdlXFx1\nOGJhZlxcdTUxNTRcXHU1YzBmXFx1NWRlMlwiLCBcLyh0eGN8c3VwcG9ydClcXC5xcVxcLmNvbVwv\nLCB7XG4gICAgdHJhbnNmb3JtOiB7XG4gICAgICBzZWxlY3RvcjogJ2FbaHJlZio9XCJcL2xpbmst\nanVtcD9qdW1wPVwiXScsXG4gICAgICBxdWVyeU5hbWU6IFwianVtcFwiXG4gICAgfSxcbiAgICBh\ndXRvanVtcDoge1xuICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICB2\nYXIgcGF0aG5hbWUgPSBwYXJhbS5wYXRobmFtZTtcbiAgICAgICAgcmV0dXJuIFwvXFxcL2xpbmst\nanVtcCRcLy50ZXN0KHBhdGhuYW1lKTtcbiAgICAgIH0sXG4gICAgICBxdWVyeU5hbWU6IFwianVt\ncFwiXG4gICAgfVxuICB9IF0gXSwgc2l0ZXMkOSA9IFsgZGVmaW5lU2l0ZShbIFwiMzYwIFxcdTY0\nMWNcXHU3ZDIyXCIsIFwic28uY29tXCIsIHtcbiAgICB0cmFuc2Zvcm06IHtcbiAgICAgIHNlbGVj\ndG9yOiAnYVtocmVmKj1cInNvLmNvbVwvbGluaz9cIl1bZGF0YS1tZHVybF0nLFxuICAgICAgYXR0\ncmlidXRlOiBcImRhdGEtbWR1cmxcIlxuICAgIH1cbiAgfSBdKSBdLCBzaXRlcyQ4ID0gWyBkZWZp\nbmVTaXRlKFsgXCJcXHU2NDFjXFx1NzJkN1xcdTY0MWNcXHU3ZDIyXCIsIFwic29nb3UuY29tXCIs\nIHtcbiAgICB0cmFuc2Zvcm06IHtcbiAgICAgIHNlbGVjdG9yOiBcIi5yZXN1bHRzIC52cndyYXBc\nIixcbiAgICAgIGN1c3RvbVRyYW5zZm9ybTogZnVuY3Rpb24obm9kZSkge1xuICAgICAgICB2YXIg\nZGF0YU5vZGUgPSBub2RlLnF1ZXJ5U2VsZWN0b3IoXCJbZGF0YS11cmxdXCIpO1xuICAgICAgICBp\nZiAoZGF0YU5vZGUpIHtcbiAgICAgICAgICB2YXIgb3JpZ2luVXJsID0gZGF0YU5vZGUuZGF0YXNl\ndC51cmw7XG4gICAgICAgICAgdmFsaWRhdGVVcmwob3JpZ2luVXJsKSAmJiBub2RlLnF1ZXJ5U2Vs\nZWN0b3JBbGwoJ2FbaHJlZio9XCJcL2xpbms\/dXJsPVwiXScpLmZvckVhY2goKGZ1bmN0aW9uKGEp\nIHtcbiAgICAgICAgICAgIHJldHVybiBhLnNldEF0dHJpYnV0ZShcImhyZWZcIiwgb3JpZ2luVXJs\nKTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gXSksIGRl\nZmluZVNpdGUoWyAsIFwibS5zb2dvdS5jb21cIiwge1xuICAgIHRyYW5zZm9ybToge1xuICAgICAg\nc2VsZWN0b3I6ICdhW2hyZWZePVwiLlwvaWQ9XCJdJyxcbiAgICAgIHF1ZXJ5TmFtZTogXCJ1cmxc\nIlxuICAgIH1cbiAgfSBdKSBdLCBzaXRlcyQ1ID0gWyBkZWZpbmVTaXRlKFsgXCJcXHU2M2E4XFx1\nNzI3OVxcdWZmMDhUd2l0dGVyXFx1ZmYwOVwiLCBcL14odHdpdHRlcnx4KVxcLmNvbSRcLywge1xu\nICAgIHRyYW5zZm9ybToge1xuICAgICAgc2VsZWN0b3I6ICdhW2hyZWYqPVwiOlwvXC90LmNvXC9c\nIl0nLFxuICAgICAgY3VzdG9tVHJhbnNmb3JtOiBmdW5jdGlvbihub2RlKSB7XG4gICAgICAgIHZh\nciBvcmlnaW5VcmwgPSBub2RlLmlubmVyVGV4dC5yZXBsYWNlKFwiXFx1MjAyNlwiLCBcIlwiKTtc\nbiAgICAgICAgdmFsaWRhdGVVcmwob3JpZ2luVXJsKSAmJiBub2RlLnNldEF0dHJpYnV0ZShcImhy\nZWZcIiwgb3JpZ2luVXJsKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gXSkgXSwgc2l0ZXMgPSBPYmpl\nY3QuZnJlZXplKHtcbiAgICBfX3Byb3RvX186IG51bGwsXG4gICAgYWNnYm94TGluazogc2l0ZXMk\neixcbiAgICBhZmRpYW5Db206IFsgWyBcIlxcdTcyMzFcXHU1M2QxXFx1NzUzNVwiLCBcImFmZGlh\nbi5jb21cIiwge1xuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHNlbGVjdG9yOiAnW2hyZWYq\nPVwiYWZkaWFuLmNvbVwvbGluaz90YXJnZXQ9XCJdJ1xuICAgICAgfSxcbiAgICAgIGF1dG9qdW1w\nOiB7XG4gICAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgICByZXR1\ncm4gXCJcL2xpbmtcIiA9PT0gcGFyYW0ucGF0aG5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAg\nICB9IF0gXSxcbiAgICBiYWlkdUNvbTogc2l0ZXMkeCxcbiAgICBiaWxpYmlsaUNvbTogWyBbIFwi\nXFx1NTRkNFxcdTU0ZTlcXHU1NGQ0XFx1NTRlOVxcdTZlMzhcXHU2MjBmV0lLSVwiLCBcImdhbWUu\nYmlsaWJpbGkuY29tXCIsIHtcbiAgICAgIGF1dG9qdW1wOiB7XG4gICAgICAgIHZhbGlkYXRvcjog\nZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gcGFyYW0ucGF0aG5hbWUuaW5jbHVk\nZXMoXCJcL2xpbmtmaWx0ZXJcL1wiKTtcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlOYW1lOiBc\nInVybFwiXG4gICAgICB9XG4gICAgfSBdIF0sXG4gICAgYmluZ0NvbTogc2l0ZXMkdixcbiAgICBi\nb29rbWFya2VhcnRoQ246IHNpdGVzJHUsXG4gICAgY29vbGFwa0NvbTogWyBbIFwiXFx1OTE3N1xc\ndTViODlcIiwgXCJjb29sYXBrLmNvbVwiLCB7XG4gICAgICBhdXRvanVtcDoge1xuICAgICAgICB2\nYWxpZGF0b3I6IGZ1bmN0aW9uKHBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXC9saW5rXCIg\nPT09IHBhcmFtLnBhdGhuYW1lO1xuICAgICAgICB9LFxuICAgICAgICBxdWVyeU5hbWU6IFwidXJs\nXCJcbiAgICAgIH1cbiAgICB9IF0gXSxcbiAgICBjc2RuTmV0OiBbIFsgLCBcImJsb2cuY3Nkbi5u\nZXRcIiwge1xuICAgICAgcmV3cml0ZVdpbmRvd09wZW46IHtcbiAgICAgICAgdmFsaWRhdGlvblJ1\nbGU6IFwibGluay5jc2RuLm5ldD90YXJnZXQ9XCJcbiAgICAgIH1cbiAgICB9IF0sIFsgXCJDU0RO\nXCIsIFwibGluay5jc2RuLm5ldFwiLCB7XG4gICAgICBhdXRvanVtcDoge31cbiAgICB9IF0gXSxc\nbiAgICBkb3ViYW5Db206IFsgWyBcIlxcdThjNDZcXHU3NGUzXCIsIFwiZG91YmFuLmNvbVwiLCB7\nXG4gICAgICBhdXRvanVtcDoge1xuICAgICAgICB2YWxpZGF0b3I6IGZ1bmN0aW9uKHBhcmFtKSB7\nXG4gICAgICAgICAgcmV0dXJuIFwiXC9saW5rMlwvXCIgPT09IHBhcmFtLnBhdGhuYW1lO1xuICAg\nICAgICB9LFxuICAgICAgICBxdWVyeU5hbWU6IFwidXJsXCJcbiAgICAgIH1cbiAgICB9IF0gXSxc\nbiAgICBmYWNlYm9va0NvbTogWyBbIFwiRmFjZWJvb2tcIiwgXC9eKD86bFxcLik\/ZmFjZWJvb2tc\nXC5jb20kXC8sIHtcbiAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICBzZWxlY3RvcjogJ2FbdGFy\nZ2V0PVwiX2JsYW5rXCJdJyxcbiAgICAgICAgY3VzdG9tVHJhbnNmb3JtOiBmdW5jdGlvbihub2Rl\nKSB7XG4gICAgICAgICAgbm9kZS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgKGZ1bmN0aW9u\nKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAg\nIH0pLCB7XG4gICAgICAgICAgICBjYXB0dXJlOiAhMFxuICAgICAgICAgIH0pO1xuICAgICAgICB9\nXG4gICAgICB9LFxuICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRhdG9yOiBmdW5jdGlv\nbihwYXJhbSkge1xuICAgICAgICAgIHJldHVybiBwYXJhbS5zZWFyY2guaW5jbHVkZXMoXCJ1PVwi\nKTtcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlOYW1lOiBcInVcIlxuICAgICAgfVxuICAgIH0g\nXSBdLFxuICAgIGdpdGVlQ29tOiBbIFsgXCJcXHU3ODAxXFx1NGU5MVwiLCBcImdpdGVlLmNvbVwi\nLCB7XG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgc2VsZWN0b3I6ICdbaHJlZio9XCJcL2xp\nbms\/dGFyZ2V0PVwiXSdcbiAgICAgIH0sXG4gICAgICBhdXRvanVtcDoge1xuICAgICAgICB2YWxp\nZGF0b3I6IGZ1bmN0aW9uKHBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXC9saW5rXCIgPT09\nIHBhcmFtLnBhdGhuYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBdIF0sXG4gICAgZ29v\nZ2xlQ29tOiBzaXRlcyRvLFxuICAgIGh1YWJhbkNvbTogWyBbIFwiXFx1ODJiMVxcdTc0ZTNcXHU3\nZjUxXCIsIFwiaHVhYmFuLmNvbVwiLCB7XG4gICAgICBhdXRvanVtcDoge1xuICAgICAgICB2YWxp\nZGF0b3I6IGZ1bmN0aW9uKHBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXC9nb1wiID09PSBw\nYXJhbS5wYXRobmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0b3I6IFwiLndyYXBwZXIg\nYnV0dG9uLmFudC1idG5cIlxuICAgICAgfVxuICAgIH0gXSBdLFxuICAgIGluZm9xQ246IFsgWyBc\nIkluZm9RXCIsIFwvXig\/OnhpZVxcLik\/aW5mb3FcXC5jbiRcLywge1xuICAgICAgcmV3cml0ZVdp\nbmRvd09wZW46IHtcbiAgICAgICAgdmFsaWRhdGlvblJ1bGU6IFwiaW5mb3EuY25cL2xpbms\/dGFy\nZ2V0PVwiXG4gICAgICB9LFxuICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRhdG9yOiBm\ndW5jdGlvbihwYXJhbSkge1xuICAgICAgICAgIHJldHVybiBcIlwvbGlua1wiID09PSBwYXJhbS5w\nYXRobmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gXSBdLFxuICAgIGluc3RhZ3JhbUNv\nbTogWyBbIFwiSW5zdGFncmFtXCIsIFwvXig\/OmxcXC4pP2luc3RhZ3JhbVxcLmNvbSRcLywge1xu\nICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkge1xu\nICAgICAgICAgIHJldHVybiBwYXJhbS5zZWFyY2guaW5jbHVkZXMoXCJ1PVwiKTtcbiAgICAgICAg\nfSxcbiAgICAgICAgcXVlcnlOYW1lOiBcInVcIlxuICAgICAgfVxuICAgIH0gXSBdLFxuICAgIGpp\nYW5zaHVDb206IFsgWyBcIlxcdTdiODBcXHU0ZTY2XCIsIFwiamlhbnNodS5jb21cIiwge1xuICAg\nICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHNlbGVjdG9yOiAnW2hyZWYqPVwibGlua3MuamlhbnNo\ndS5jb21cL2dvP3RvPVwiXScsXG4gICAgICAgIHNlcGFyYXRvcjogXCJnbz90bz1cIlxuICAgICAg\nfSxcbiAgICAgIGF1dG9qdW1wOiB7XG4gICAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0p\nIHtcbiAgICAgICAgICByZXR1cm4gXCJcL2dvLXdpbGRcIiA9PT0gcGFyYW0ucGF0aG5hbWU7XG4g\nICAgICAgIH0sXG4gICAgICAgIHF1ZXJ5TmFtZTogXCJ1cmxcIlxuICAgICAgfVxuICAgIH0gXSBd\nLFxuICAgIGp1ZWppbkNuOiBbIFsgXCJcXHU2Mzk4XFx1OTFkMVwiLCBcImp1ZWppbi5jblwiLCB7\nXG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgc2VsZWN0b3I6ICdbaHJlZio9XCJsaW5rLmp1\nZWppbi5jbj90YXJnZXQ9XCJdJ1xuICAgICAgfVxuICAgIH0gXSwgWyAsIFwibGluay5qdWVqaW4u\nY25cIiwge1xuICAgICAgYXV0b2p1bXA6IHt9XG4gICAgfSBdIF0sXG4gICAga2RvY3NDbjogWyBb\nIFwiXFx1OTFkMVxcdTVjNzFcXHU2NTg3XFx1Njg2M1wiLCBcImtkb2NzLmNuXCIsIHtcbiAgICAg\nIGF1dG9qdW1wOiB7XG4gICAgICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAg\nICAgICByZXR1cm4gXCJcL29mZmljZVwvbGlua1wiID09PSBwYXJhbS5wYXRobmFtZTtcbiAgICAg\nICAgfVxuICAgICAgfVxuICAgIH0gXSBdLFxuICAgIGxkMjQ2Q29tOiBbIFsgXCJcXHU5NGZlXFx1\nNmVmNFwiLCBcImxkMjQ2LmNvbVwiLCB7XG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgc2Vs\nZWN0b3I6ICdbaHJlZio9XCJcL2ZvcndhcmQ\/Z290bz1cIl0nLFxuICAgICAgICBxdWVyeU5hbWU6\nIFwiZ290b1wiXG4gICAgICB9LFxuICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRhdG9y\nOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICAgIHJldHVybiBcIlwvZm9yd2FyZFwiID09PSBw\nYXJhbS5wYXRobmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2VsZWN0b3I6IFwiLnRleHQgYVto\ncmVmXVwiLFxuICAgICAgICBxdWVyeU5hbWU6IFwiZ290b1wiXG4gICAgICB9XG4gICAgfSBdIF0s\nXG4gICAgbGVldGNvZGVDbjogWyBbIFwiXFx1NTI5YlxcdTYyNjNcXHVmZjA4TGVldGNvZGVcXHVm\nZjA5XCIsIFwibGVldGNvZGUuY25cIiwge1xuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHNl\nbGVjdG9yOiAnW2hyZWYqPVwiXC9saW5rXC8\/dGFyZ2V0PVwiXSdcbiAgICAgIH1cbiAgICB9IF0g\nXSxcbiAgICBtXzUxQ3RvQ29tOiBbIFsgXCI1MUNUTyBcXHU1MzVhXFx1NWJhMlwiLCBcImJsb2cu\nNTFjdG8uY29tXCIsIHtcbiAgICAgIHJld3JpdGVXaW5kb3dPcGVuOiB7XG4gICAgICAgIHZhbGlk\nYXRpb25SdWxlOiBcIjUxY3RvLmNvbVwvdHJhbnNmZXI\/XCIsXG4gICAgICAgIHNlcGFyYXRvcjog\nXCI\/XCJcbiAgICAgIH0sXG4gICAgICBhdXRvanVtcDoge1xuICAgICAgICB2YWxpZGF0b3I6IGZ1\nbmN0aW9uKHBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXC90cmFuc2ZlclwiID09PSBwYXJh\nbS5wYXRobmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2VwYXJhdG9yOiBcIj9cIlxuICAgICAg\nfVxuICAgIH0gXSBdLFxuICAgIG5nYUNuOiBzaXRlcyRmLFxuICAgIG5vd2NvZGVyQ29tOiBzaXRl\ncyRlLFxuICAgIG9zY2hpbmFOZXQ6IFsgWyBcIlxcdTVmMDBcXHU2ZTkwXFx1NGUyZFxcdTU2ZmRc\nIiwgXC9eKD86bXlcXC4pP29zY2hpbmFcXC5uZXQkXC8sIHtcbiAgICAgIHRyYW5zZm9ybToge1xu\nICAgICAgICBzZWxlY3RvcjogJ1tocmVmKj1cIm9zY2hpbmEubmV0XC9hY3Rpb25cL0dvVG9MaW5r\nP3VybD1cIl0nLFxuICAgICAgICBzZXBhcmF0b3I6IFwiR29Ub0xpbms\/dXJsPVwiXG4gICAgICB9\nLFxuICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkg\ne1xuICAgICAgICAgIHJldHVybiBcIlwvYWN0aW9uXC9Hb1RvTGlua1wiID09PSBwYXJhbS5wYXRo\nbmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlOYW1lOiBcInVybFwiXG4gICAgICB9XG4g\nICAgfSBdIF0sXG4gICAgcGl4aXZOZXQ6IFsgWyBcInBpeGl2XCIsIFwicGl4aXYubmV0XCIsIHtc\nbiAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICBzZWxlY3RvcjogJ1tocmVmKj1cIlwvanVtcC5w\naHA\/XCJdJyxcbiAgICAgICAgc2VwYXJhdG9yOiBcIj9cIixcbiAgICAgICAgcXVlcnlOYW1lOiBc\nInVybFwiXG4gICAgICB9LFxuICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRhdG9yOiBm\ndW5jdGlvbihwYXJhbSkge1xuICAgICAgICAgIHJldHVybiBcIlwvanVtcC5waHBcIiA9PT0gcGFy\nYW0ucGF0aG5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIHNlbGVjdG9yOiBcImFbaHJlZl1cIixc\nbiAgICAgICAgc2VwYXJhdG9yOiBcIj9cIlxuICAgICAgfVxuICAgIH0gXSBdLFxuICAgIHFxQ29t\nOiBzaXRlcyRiLFxuICAgIHNoaW1vSW06IFsgWyBcIlxcdTc3ZjNcXHU1OGE4XFx1NjU4N1xcdTY4\nNjNcIiwgXCJzaGltby5pbVwiLCB7XG4gICAgICByZXdyaXRlV2luZG93T3Blbjoge1xuICAgICAg\nICB2YWxpZGF0aW9uUnVsZTogXCJvdXRsaW5rXC9ncmF5P3VybD1cIixcbiAgICAgICAgcXVlcnlO\nYW1lOiBcInVybFwiXG4gICAgICB9LFxuICAgICAgYXV0b2p1bXA6IHtcbiAgICAgICAgdmFsaWRh\ndG9yOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICAgIHJldHVybiBcIlwvb3V0bGlua1wvZ3Jh\neVwiID09PSBwYXJhbS5wYXRobmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlOYW1lOiBc\nInVybFwiXG4gICAgICB9XG4gICAgfSBdIF0sXG4gICAgc29Db206IHNpdGVzJDksXG4gICAgc29n\nb3VDb206IHNpdGVzJDgsXG4gICAgc3NwYWlDb206IFsgWyBcIlxcdTVjMTFcXHU2NTcwXFx1NmQz\nZVwiLCBcInNzcGFpLmNvbVwiLCB7XG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgc2VsZWN0\nb3I6ICdbaHJlZio9XCJzc3BhaS5jb21cL2xpbms\/dGFyZ2V0PVwiXSdcbiAgICAgIH0sXG4gICAg\nICBhdXRvanVtcDoge1xuICAgICAgICB2YWxpZGF0b3I6IGZ1bmN0aW9uKHBhcmFtKSB7XG4gICAg\nICAgICAgcmV0dXJuIFwiXC9saW5rXCIgPT09IHBhcmFtLnBhdGhuYW1lO1xuICAgICAgICB9XG4g\nICAgICB9XG4gICAgfSBdIF0sXG4gICAgdGVuY2VudENvbTogWyBbIFwiXFx1ODE3ZVxcdThiYWZc\nXHU0ZTkxXFx1NWYwMFxcdTUzZDFcXHU4MDA1XFx1NzkzZVxcdTUzM2FcIiwgXCJjbG91ZC50ZW5j\nZW50LmNvbVwiLCB7XG4gICAgICB0cmFuc2Zvcm06IHtcbiAgICAgICAgc2VsZWN0b3I6ICdbaHJl\nZio9XCJcL2RldmVsb3BlclwvdG9vbHNcL2Jsb2ctZW50cnk\/dGFyZ2V0PVwiXScsXG4gICAgICAg\nIHF1ZXJ5TmFtZTogXCJ0YXJnZXRcIlxuICAgICAgfSxcbiAgICAgIGF1dG9qdW1wOiB7XG4gICAg\nICAgIHZhbGlkYXRvcjogZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gXCJcL2Rl\ndmVsb3BlclwvdG9vbHNcL2Jsb2ctZW50cnlcIiA9PT0gcGFyYW0ucGF0aG5hbWU7XG4gICAgICAg\nIH1cbiAgICAgIH1cbiAgICB9IF0gXSxcbiAgICB0d2l0dGVyQ29tOiBzaXRlcyQ1LFxuICAgIHdl\naWJvQ29tOiBbIFsgXCJcXHU1ZmFlXFx1NTM1YVwiLCBcIndlaWJvLmNvbVwiLCB7XG4gICAgICB0\ncmFuc2Zvcm06IHtcbiAgICAgICAgc2VsZWN0b3I6ICdbaHJlZio9XCJ3ZWliby5jblwvc2luYXVy\nbD91PVwiXScsXG4gICAgICAgIHF1ZXJ5TmFtZTogXCJ1XCJcbiAgICAgIH1cbiAgICB9IF0sIFsg\nLCBcIndlaWJvLmNuXCIsIHtcbiAgICAgIGF1dG9qdW1wOiB7XG4gICAgICAgIHZhbGlkYXRvcjog\nZnVuY3Rpb24ocGFyYW0pIHtcbiAgICAgICAgICByZXR1cm4gXCJcL3NpbmF1cmxcIiA9PT0gcGFy\nYW0ucGF0aG5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIHF1ZXJ5TmFtZTogXCJ1XCJcbiAgICAg\nIH1cbiAgICB9IF0gXSxcbiAgICB5b3V0dWJlQ29tOiBbIFsgXCJZb3VUdWJlXCIsIFwieW91dHVi\nZS5jb21cIiwge1xuICAgICAgdHJhbnNmb3JtOiB7XG4gICAgICAgIHNlbGVjdG9yOiAnW2hyZWYq\nPVwieW91dHViZS5jb21cL3JlZGlyZWN0P2V2ZW50PVwiXScsXG4gICAgICAgIHF1ZXJ5TmFtZTog\nXCJxXCJcbiAgICAgIH0sXG4gICAgICBhdXRvanVtcDoge1xuICAgICAgICB2YWxpZGF0b3I6IGZ1\nbmN0aW9uKHBhcmFtKSB7XG4gICAgICAgICAgcmV0dXJuIFwiXC9yZWRpcmVjdFwiID09PSBwYXJh\nbS5wYXRobmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcXVlcnlOYW1lOiBcInFcIlxuICAgICAg\nfVxuICAgIH0gXSBdLFxuICAgIHl1cXVlQ29tOiBbIFsgXCJcXHU4YmVkXFx1OTZjMFwiLCBcL14o\nPzpbYS16QS1aMC05LV0rXFwuKT95dXF1ZVxcLmNvbSRcLywge1xuICAgICAgYXV0b2p1bXA6IHtc\nbiAgICAgICAgdmFsaWRhdG9yOiBmdW5jdGlvbihwYXJhbSkge1xuICAgICAgICAgIHJldHVybiBc\nIlwvclwvZ290b1wiID09PSBwYXJhbS5wYXRobmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgcXVl\ncnlOYW1lOiBcInVybFwiXG4gICAgICB9XG4gICAgfSBdIF0sXG4gICAgemhpaHVDb206IFsgWyBc\nIlxcdTc3ZTVcXHU0ZTRlXFx1MzAwMVxcdTc3ZTVcXHU0ZTRlXFx1NGUxM1xcdTY4MGZcIiwgXC9e\nKD86emh1YW5sYW5cXC4pP3poaWh1XFwuY29tJFwvLCB7XG4gICAgICB0cmFuc2Zvcm06IHtcbiAg\nICAgICAgc2VsZWN0b3I6ICdbaHJlZio9XCJsaW5rLnpoaWh1LmNvbVwvP3RhcmdldD1cIl0nXG4g\nICAgICB9XG4gICAgfSBdLCBbICwgXCJsaW5rLnpoaWh1LmNvbVwiLCB7XG4gICAgICBhdXRvanVt\ncDoge31cbiAgICB9IF0gXVxuICB9KTtcbiAgZnVuY3Rpb24gX2FycmF5X2xpa2VfdG9fYXJyYXko\nYXJyLCBsZW4pIHtcbiAgICAobnVsbCA9PSBsZW4gfHwgbGVuID4gYXJyLmxlbmd0aCkgJiYgKGxl\nbiA9IGFyci5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxl\nbik7IGkgPCBsZW47IGkrKykgYXJyMltpXSA9IGFycltpXTtcbiAgICByZXR1cm4gYXJyMjtcbiAg\nfVxuICBmdW5jdGlvbiBfc2xpY2VkX3RvX2FycmF5KGFyciwgaSkge1xuICAgIHJldHVybiBmdW5j\ndGlvbihhcnIpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnI7XG4g\nICAgfShhcnIpIHx8IGZ1bmN0aW9uKGFyciwgaSkge1xuICAgICAgdmFyIF9pID0gbnVsbCA9PSBh\ncnIgPyBudWxsIDogXCJ1bmRlZmluZWRcIiAhPSB0eXBlb2YgU3ltYm9sICYmIGFycltTeW1ib2wu\naXRlcmF0b3JdIHx8IGFycltcIkBAaXRlcmF0b3JcIl07XG4gICAgICBpZiAobnVsbCAhPSBfaSkg\ne1xuICAgICAgICB2YXIgX3MsIF9lLCBfYXJyID0gW10sIF9uID0gITAsIF9kID0gITE7XG4gICAg\nICAgIHRyeSB7XG4gICAgICAgICAgZm9yIChfaSA9IF9pLmNhbGwoYXJyKTsgIShfbiA9IChfcyA9\nIF9pLm5leHQoKSkuZG9uZSkgJiYgKF9hcnIucHVzaChfcy52YWx1ZSksICFpIHx8IF9hcnIubGVu\nZ3RoICE9PSBpKTsgX24gPSAhMCkgO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAg\nICBfZCA9ICEwLCBfZSA9IGVycjtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICB0cnkg\ne1xuICAgICAgICAgICAgX24gfHwgbnVsbCA9PSBfaS5yZXR1cm4gfHwgX2kucmV0dXJuKCk7XG4g\nICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGlmIChfZCkgdGhyb3cgX2U7XG4gICAg\nICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfYXJyO1xuICAgICAgfVxuICAgIH0o\nYXJyLCBpKSB8fCBmdW5jdGlvbihvLCBtaW5MZW4pIHtcbiAgICAgIGlmICghbykgcmV0dXJuO1xu\nICAgICAgaWYgKFwic3RyaW5nXCIgPT0gdHlwZW9mIG8pIHJldHVybiBfYXJyYXlfbGlrZV90b19h\ncnJheShvLCBtaW5MZW4pO1xuICAgICAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5n\nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICAgICAgXCJPYmplY3RcIiA9PT0gbiAmJiBvLmNvbnN0\ncnVjdG9yICYmIChuID0gby5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgICAgIGlmIChcIk1hcFwiID09\nPSBuIHx8IFwiU2V0XCIgPT09IG4pIHJldHVybiBBcnJheS5mcm9tKG4pO1xuICAgICAgaWYgKFwi\nQXJndW1lbnRzXCIgPT09IG4gfHwgXC9eKD86VWl8SSludCg\/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk\/\nQXJyYXkkXC8udGVzdChuKSkgcmV0dXJuIF9hcnJheV9saWtlX3RvX2FycmF5KG8sIG1pbkxlbik7\nXG4gICAgfShhcnIsIGkpIHx8IGZ1bmN0aW9uKCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJv\ncihcIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2Uu\nXFxcXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZl\nIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xuICAgIH0oKTtcbiAgfVxuICB2YXIg\ncGFyYW0sIHNlbGVjdG9yLCBhdHRyaWJ1dGUsIHF1ZXJ5TmFtZSwgX3BhcmFtX3NlcGFyYXRvciwg\nc2VwYXJhdG9yLCBmYWxsYmFja1NlbGVjdG9yLCBfcGFyYW1fY3VzdG9tVHJhbnNmb3JtLCBjdXN0\nb21UcmFuc2Zvcm0sIG9ic2VydmVyLCBob3N0bmFtZSA9IGZ1bmN0aW9uKCkge1xuICAgIHZhciBo\nb3N0bmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzBd\nID8gYXJndW1lbnRzWzBdIDogbG9jYXRpb24uaG9zdG5hbWU7XG4gICAgcmV0dXJuIGlzQnJvd3Nl\nciA\/IGhvc3RuYW1lLnJlcGxhY2UoXC9ed3d3XFwuXC8sIFwiXCIpIDogXCJcIjtcbiAgfSgpLCBj\ndXJyZW50U2l0ZSA9IE9iamVjdC52YWx1ZXMoc2l0ZXMpLmZsYXQoKS5maW5kKChmdW5jdGlvbihw\nYXJhbSkge1xuICAgIHZhciB1cmwgPSBfc2xpY2VkX3RvX2FycmF5KHBhcmFtLCAyKVsxXTtcbiAg\nICByZXR1cm4gaXNTdHJpbmcodXJsKSA\/IHVybCA9PT0gaG9zdG5hbWUgOiB1cmwudGVzdChob3N0\nbmFtZSk7XG4gIH0pKTtcbiAgaWYgKGlzQXJyYXkoY3VycmVudFNpdGUpKSB7XG4gICAgdmFyIF9j\ndXJyZW50U2l0ZV8gPSBjdXJyZW50U2l0ZVsyXSwgdHJhbnNmb3JtID0gX2N1cnJlbnRTaXRlXy50\ncmFuc2Zvcm0sIHJld3JpdGVXaW5kb3dPcGVuID0gX2N1cnJlbnRTaXRlXy5yZXdyaXRlV2luZG93\nT3BlbiwgYXV0b2p1bXAgPSBfY3VycmVudFNpdGVfLmF1dG9qdW1wO1xuICAgIHRyYW5zZm9ybSAm\nJiAoc2VsZWN0b3IgPSAocGFyYW0gPSB0cmFuc2Zvcm0pLnNlbGVjdG9yLCBhdHRyaWJ1dGUgPSBw\nYXJhbS5hdHRyaWJ1dGUsIFxuICAgIHF1ZXJ5TmFtZSA9IHBhcmFtLnF1ZXJ5TmFtZSwgX3BhcmFt\nX3NlcGFyYXRvciA9IHBhcmFtLnNlcGFyYXRvciwgc2VwYXJhdG9yID0gdm9pZCAwID09PSBfcGFy\nYW1fc2VwYXJhdG9yID8gXCI\/dGFyZ2V0PVwiIDogX3BhcmFtX3NlcGFyYXRvciwgXG4gICAgZmFs\nbGJhY2tTZWxlY3RvciA9IHBhcmFtLmZhbGxiYWNrU2VsZWN0b3IsIF9wYXJhbV9jdXN0b21UcmFu\nc2Zvcm0gPSBwYXJhbS5jdXN0b21UcmFuc2Zvcm0sIFxuICAgIGN1c3RvbVRyYW5zZm9ybSA9IHZv\naWQgMCA9PT0gX3BhcmFtX2N1c3RvbVRyYW5zZm9ybSA\/IGZ1bmN0aW9uKG5vZGUpIHtcbiAgICAg\nIHZhciBvcmlnaW5VcmwgPSBcIlwiO1xuICAgICAgYXR0cmlidXRlICYmIChvcmlnaW5VcmwgPSBu\nb2RlLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpIHx8IFwiXCIpLCAhYXR0cmlidXRlICYmIHF1ZXJ5\nTmFtZSAmJiAob3JpZ2luVXJsID0gZ2V0U2VhcmNoUGFyYW1zVmFsdWUobmV3IFVSTChub2RlLmhy\nZWYpLnNlYXJjaCwgcXVlcnlOYW1lKSksIFxuICAgICAgdmFsaWRhdGVVcmwob3JpZ2luVXJsKSB8\nfCAob3JpZ2luVXJsID0gbm9kZS5ocmVmLnNwbGl0KHNlcGFyYXRvcilbMV0pLCB2YWxpZGF0ZVVy\nbChvcmlnaW5VcmwgPSBkZWNvZGVVUklDb21wb25lbnQob3JpZ2luVXJsKSkgJiYgKG5vZGUuaHJl\nZiA9IG9yaWdpblVybCk7XG4gICAgfSA6IF9wYXJhbV9jdXN0b21UcmFuc2Zvcm0sIG9ic2VydmVy\nID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGZ1bmN0aW9uKCkge1xuICAgICAgZG9jdW1lbnQucXVl\ncnlTZWxlY3RvckFsbChzZWxlY3RvcikuZm9yRWFjaChjdXN0b21UcmFuc2Zvcm0pLCBmYWxsYmFj\na1NlbGVjdG9yICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZmFsbGJhY2tTZWxlY3Rvciku\nbGVuZ3RoICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZmFsbGJhY2tTZWxlY3RvcikuZm9y\nRWFjaChyZXF1ZXN0T3JpZ2luYWxMaW5rKTtcbiAgICB9KSksIGRvY3VtZW50LmJvZHkuc2V0QXR0\ncmlidXRlKEZFTU1fQVRUUl9LRVksIFwicmVtb3ZlLXJlZGlyZWN0XCIpLCBvYnNlcnZlci5vYnNl\ncnZlKGRvY3VtZW50LmJvZHksIHtcbiAgICAgIGNoaWxkTGlzdDogITAsXG4gICAgICBzdWJ0cmVl\nOiAhMFxuICAgIH0pKSwgcmV3cml0ZVdpbmRvd09wZW4gJiYgZnVuY3Rpb24ocGFyYW0pIHtcbiAg\nICAgIHZhciB2YWxpZGF0aW9uUnVsZSA9IHBhcmFtLnZhbGlkYXRpb25SdWxlLCBnZXRPcmlnaW5h\nbFVybCA9IHBhcmFtLmdldE9yaWdpbmFsVXJsLCBzZXBhcmF0b3IgPSBwYXJhbS5zZXBhcmF0b3Is\nIF9wYXJhbV9xdWVyeU5hbWUgPSBwYXJhbS5xdWVyeU5hbWUsIHF1ZXJ5TmFtZSA9IHZvaWQgMCA9\nPT0gX3BhcmFtX3F1ZXJ5TmFtZSA\/IFwidGFyZ2V0XCIgOiBfcGFyYW1fcXVlcnlOYW1lLCBvcmln\naW5hbFdpbmRvd09wZW4gPSB1bnNhZmVXaW5kb3cub3BlbjtcbiAgICAgIHVuc2FmZVdpbmRvdy5v\ncGVuID0gZnVuY3Rpb24odXJsLCB0YXJnZXQsIGZlYXR1cmVzKSB7XG4gICAgICAgIGlmIChpc1N0\ncmluZyh1cmwpKSB7XG4gICAgICAgICAgaWYgKGlzU3RyaW5nKHZhbGlkYXRpb25SdWxlKSAmJiAh\ndXJsLmluY2x1ZGVzKHZhbGlkYXRpb25SdWxlKSB8fCBpc0Z1bmN0aW9uKHZhbGlkYXRpb25SdWxl\nKSAmJiAhdmFsaWRhdGlvblJ1bGUodXJsKSkgcmV0dXJuIG9yaWdpbmFsV2luZG93T3Blbi5jYWxs\nKHRoaXMsIHVybCwgdGFyZ2V0LCBmZWF0dXJlcyk7XG4gICAgICAgICAgaWYgKGlzRnVuY3Rpb24o\nZ2V0T3JpZ2luYWxVcmwpKSB7XG4gICAgICAgICAgICB2YXIgb3JpZ2luVXJsID0gZ2V0T3JpZ2lu\nYWxVcmwodXJsKTtcbiAgICAgICAgICAgIG9yaWdpblVybCAmJiB2YWxpZGF0ZVVybChvcmlnaW5V\ncmwpICYmICh1cmwgPSBvcmlnaW5VcmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAg\nICB2YXIgX3NlYXJjaF9zcGxpdCwgc2VhcmNoID0gbmV3IFVSTCh1cmwpLnNlYXJjaDtcbiAgICAg\nICAgICAgIHVybCA9IGRlY29kZVVSSUNvbXBvbmVudChzZXBhcmF0b3IgPyBudWxsID09PSAoX3Nl\nYXJjaF9zcGxpdCA9IHNlYXJjaC5zcGxpdChzZXBhcmF0b3IpKSB8fCB2b2lkIDAgPT09IF9zZWFy\nY2hfc3BsaXQgPyB2b2lkIDAgOiBfc2VhcmNoX3NwbGl0WzFdIDogZ2V0U2VhcmNoUGFyYW1zVmFs\ndWUoc2VhcmNoLCBxdWVyeU5hbWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAg\ncmV0dXJuIG9yaWdpbmFsV2luZG93T3Blbi5jYWxsKHRoaXMsIHVybCwgdGFyZ2V0LCBmZWF0dXJl\ncyk7XG4gICAgICB9O1xuICAgIH0ocmV3cml0ZVdpbmRvd09wZW4pLCBhdXRvanVtcCAmJiBmdW5j\ndGlvbihwYXJhbSkge1xuICAgICAgdmFyIG9yaWdpblVybCwgdmFsaWRhdG9yID0gcGFyYW0udmFs\naWRhdG9yLCBnZXRPcmlnaW5hbFVybCA9IHBhcmFtLmdldE9yaWdpbmFsVXJsLCBzZWxlY3RvciA9\nIHBhcmFtLnNlbGVjdG9yLCBzZXBhcmF0b3IgPSBwYXJhbS5zZXBhcmF0b3IsIF9wYXJhbV9xdWVy\neU5hbWUgPSBwYXJhbS5xdWVyeU5hbWUsIHF1ZXJ5TmFtZSA9IHZvaWQgMCA9PT0gX3BhcmFtX3F1\nZXJ5TmFtZSA\/IFwidGFyZ2V0XCIgOiBfcGFyYW1fcXVlcnlOYW1lO1xuICAgICAgaWYgKHZhbGlk\nYXRvciAmJiAhdmFsaWRhdG9yKGxvY2F0aW9uKSkgcmV0dXJuO1xuICAgICAgaWYgKHNlbGVjdG9y\nICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpKSByZXR1cm4gZG9jdW1lbnQucXVl\ncnlTZWxlY3RvcihzZWxlY3RvcikuY2xpY2soKTtcbiAgICAgIGlzRnVuY3Rpb24oZ2V0T3JpZ2lu\nYWxVcmwpICYmIChvcmlnaW5VcmwgPSBnZXRPcmlnaW5hbFVybCgpKTtcbiAgICAgIGlmICghdmFs\naWRhdGVVcmwob3JpZ2luVXJsKSkge1xuICAgICAgICB2YXIgX3NlYXJjaF9zcGxpdCwgc2VhcmNo\nID0gbG9jYXRpb24uc2VhcmNoO1xuICAgICAgICBpZiAoc2VwYXJhdG9yKSBvcmlnaW5VcmwgPSBu\ndWxsID09PSAoX3NlYXJjaF9zcGxpdCA9IHNlYXJjaC5zcGxpdChzZXBhcmF0b3IpKSB8fCB2b2lk\nIDAgPT09IF9zZWFyY2hfc3BsaXQgPyB2b2lkIDAgOiBfc2VhcmNoX3NwbGl0WzFdO1xuICAgICAg\nICB2YWxpZGF0ZVVybChvcmlnaW5VcmwpIHx8IChvcmlnaW5VcmwgPSBnZXRTZWFyY2hQYXJhbXNW\nYWx1ZShzZWFyY2gsIHF1ZXJ5TmFtZSkpLCBcbiAgICAgICAgb3JpZ2luVXJsID0gZGVjb2RlVVJJ\nQ29tcG9uZW50KG9yaWdpblVybCB8fCBcIlwiKTtcbiAgICAgIH1cbiAgICAgIHZhbGlkYXRlVXJs\nKG9yaWdpblVybCkgJiYgbG9jYXRpb24ucmVwbGFjZShvcmlnaW5VcmwpO1xuICAgIH0oYXV0b2p1\nbXApO1xuICB9XG59KCk7XG4ifQp7InNjcmlwdElkIjoiYjQ0YWMxNjg1NmY0NmRiZGIxNmMzZmVm\nMDIzNTdkM2MiLCJlbmFibGVkIjp0cnVlLCJ1cmwiOiJodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZv\ncmsub3JnXC9zY3JpcHRzXC80NzMwNjhcLyVFOCVBRSVBOSVFOSU5MyVCRSVFNiU4RSVBNSVFNSU4\nRiVBRiVFNyU4MiVCOSVFNSU4NyVCQi51c2VyLmpzIiwiY29kZVYyIjoiXC9cLyA9PVVzZXJTY3Jp\ncHQ9PVxuXC9cLyBAbmFtZSAgICAgICAgIOiuqemTvuaOpeWPr+eCueWHu1xuXC9cLyBAbmFtZXNw\nYWNlICAgIGh0dHBzOlwvXC92aWF5b28uY29tXC9cblwvXC8gQHZlcnNpb24gICAgICAwLjFcblwv\nXC8gQGhvbWVwYWdlVVJMICBodHRwczpcL1wvYXBwLnZpYXlvby5jb21cL2FkZG9uc1wvMzFcblwv\nXC8gQGF1dGhvciAgICAgICDosLfoirHms7BcblwvXC8gQHJ1bi1hdCAgICAgICBkb2N1bWVudC1z\ndGFydFxuXC9cLyBAbWF0Y2ggICAgICAgICpcblwvXC8gQGRlc2NyaXB0aW9uICDlpoLlhbblkI1c\nblwvXC8gQGdyYW50ICAgICAgICBub25lXG5cL1wvIEBkb3dubG9hZFVSTCBodHRwczpcL1wvdXBk\nYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80NzMwNjhcLyVFOCVBRSVBOSVFOSU5MyVCRSVF\nNiU4RSVBNSVFNSU4RiVBRiVFNyU4MiVCOSVFNSU4NyVCQi51c2VyLmpzXG5cL1wvIEB1cGRhdGVV\nUkwgaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDczMDY4XC8lRTgl\nQUUlQTklRTklOTMlQkUlRTYlOEUlQTUlRTUlOEYlQUYlRTclODIlQjklRTUlODclQkIubWV0YS5q\nc1xuXC9cLyA9PVwvVXNlclNjcmlwdD09XG4oZnVuY3Rpb24gKCkge1xuXC8qIOWIpOaWreaYr+WQ\npuivpeaJp+ihjCAqXC9cblwvKiDnvZHlnYDpu5HlkI3ljZXliLbvvIzpgYfliLDov5nkupvln5\/l\nkI3kuI3miafooYwgKlwvXG5jb25zdCBibGFja0xpc3QgPSBbJ2V4YW1wbGUuY29tJ107XG5cbmNv\nbnN0IGhvc3RuYW1lID0gd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuY29uc3Qga2V5ID0gZW5j\nb2RlVVJJQ29tcG9uZW50KCfosLfoirHms7A66K6p6ZO+5o6l5Y+v54K55Ye7OuaJp+ihjOWIpOaW\nrScpO1xuY29uc3QgaXNCbGFjayA9IGJsYWNrTGlzdC5zb21lKGtleXdvcmQgPT4ge1xuaWYgKGhv\nc3RuYW1lLm1hdGNoKGtleXdvcmQpKSB7XG5yZXR1cm4gdHJ1ZTtcbn07XG5yZXR1cm4gZmFsc2U7\nXG59KTtcblxuaWYgKGlzQmxhY2sgfHwgd2luZG93W2tleV0pIHtcbnJldHVybjtcbn07XG53aW5k\nb3dba2V5XSA9IHRydWU7XG5cbmNsYXNzIENsaWNrTGluayB7XG5jb25zdHJ1Y3RvcigpIHtcbnRo\naXMuaW5pdCgpO1xufTtcbmluaXQoKSB7XG5jb25zb2xlLmxvZygn5Zi\/5Zi\/5Zi\/Jyk7XG50aGlz\nLnVybF9yZWdleHAgPSBcLygoaHR0cHM\/OlxcXC9cXFwvfHd3d1xcLilbXFx4MjEtXFx4N2VdK1tc\nXHdcXFwvPV18XFx3KFtcXHcuXy1dKStAXFx3W1xcd1xcLl8tXStcXC4oY29tfGNufG9yZ3xuZXR8\naW5mb3x0dnxjY3xnb3Z8ZWR1KXwoXFx3W1xcdy5fLV0rXFwuKGNvbXxjbnxvcmd8bmV0fGluZm98\ndHZ8Y2N8Z292fGVkdSkpKFxcXC9bXFx4MjEtXFx4N2VdKltcXHdcXFwvXSk\/fGVkMms6XFxcL1xc\nXC9bXFx4MjEtXFx4N2VdK1xcfFxcXC98dGh1bmRlcjpcXFwvXFxcL1tcXHgyMS1cXHg3ZV0rPSlc\nL2dpO1xudGhpcy51cmxQcmVmaXhlcyA9IFsnaHR0cDpcL1wvJywgJ2h0dHBzOlwvXC8nLCAnZnRw\nOlwvXC8nLCAndGh1bmRlcjpcL1wvJywgJ2VkMms6XC9cLycsICdtYWlsdG86XC9cLycsICdmaWxl\nOlwvXC8nXTtcbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW92ZXJcIiwgdGhpcy5j\nbGVhckxpbmsuYmluZCh0aGlzKSk7XG50aGlzLmV4Y2x1ZGVkVGFncyA9IFwiYSxzdmcsY2FudmFz\nLGFwcGxldCxpbnB1dCxidXR0b24sYXJlYSxwcmUsZW1iZWQsZnJhbWUsZnJhbWVzZXQsaGVhZCxp\nZnJhbWUsaW1nLG9wdGlvbixtYXAsbWV0YSxub3NjcmlwdCxvYmplY3Qsc2NyaXB0LHN0eWxlLHRl\neHRhcmVhLGNvZGVcIi5zcGxpdChcIixcIik7XG50aGlzLnhQYXRoID0gXCJcL1wvdGV4dCgpW25v\ndChhbmNlc3Rvcjo6XCIgKyB0aGlzLmV4Y2x1ZGVkVGFncy5qb2luKCcpIGFuZCBub3QoYW5jZXN0\nb3I6OicpICsgXCIpXVwiO1xudGhpcy5zdGFydE9ic2VydmUoKTtcbnNldFRpbWVvdXQodGhpcy5s\naW5rTWl4SW5pdC5iaW5kKHRoaXMpLCAxMDApO1xufTtcbmNsZWFyTGluayhldmVudCkge1xubGV0\nIGosIGxlbiwgbGluaywgcHJlZml4LCByZWYsIHJlZjEsIHVybDtcbmxpbmsgPSAocmVmID0gZXZl\nbnQub3JpZ2luYWxUYXJnZXQpICE9IG51bGwgPyByZWYgOiBldmVudC50YXJnZXQ7XG5cbmlmICgh\nKGxpbmsgIT0gbnVsbCAmJiBsaW5rLmxvY2FsTmFtZSA9PT0gXCJhXCIgJiYgKChyZWYxID0gbGlu\nay5jbGFzc05hbWUpICE9IG51bGwgPyByZWYxLmluZGV4T2YoXCJ0ZXh0VG9MaW5rXCIpIDogdm9p\nZCAwKSAhPT0gLTEpKSB7XG5yZXR1cm47XG59O1xuXG51cmwgPSBsaW5rLmdldEF0dHJpYnV0ZShc\nImhyZWZcIik7XG5cbmZvciAoaiA9IDAsIGxlbiA9IHRoaXMudXJsUHJlZml4ZXMubGVuZ3RoOyBq\nIDwgbGVuOyBqKyspIHtcbnByZWZpeCA9IHRoaXMudXJsUHJlZml4ZXNbal07XG5cbmlmICh1cmwu\naW5kZXhPZihwcmVmaXgpID09PSAwKSB7XG5yZXR1cm47XG59O1xufTtcbn07XG5zZXRMaW5rKGNh\nbmRpZGF0ZSkge1xubGV0IHJlZiwgcmVmMSwgcmVmMiwgc3BhbiwgdGV4dDtcblxuaWYgKGNhbmRp\nZGF0ZSA9PSBudWxsIHx8ICgocmVmID0gY2FuZGlkYXRlLnBhcmVudE5vZGUpICE9IG51bGwgPyAo\ncmVmMSA9IHJlZi5jbGFzc05hbWUpICE9IG51bGwgPyB0eXBlb2YgcmVmMS5pbmRleE9mID09PSBc\nImZ1bmN0aW9uXCIgPyByZWYxLmluZGV4T2YoXCJ0ZXh0VG9MaW5rXCIpIDogdm9pZCAwIDogdm9p\nZCAwIDogdm9pZCAwKSAhPT0gLTEgfHwgY2FuZGlkYXRlLm5vZGVOYW1lID09PSBcIiNjZGF0YS1z\nZWN0aW9uXCIpIHtcbnJldHVybjtcbn07XG5cbnRleHQgPSBjYW5kaWRhdGUudGV4dENvbnRlbnQu\ncmVwbGFjZSh0aGlzLnVybF9yZWdleHAsICc8YSBocmVmPVwiJDFcIiB0YXJnZXQ9XCJfYmxhbmtc\nIiBjbGFzcz1cInRleHRUb0xpbmtcIj4kMTxcL2E+Jyk7XG5cbmlmICgoKHJlZjIgPSBjYW5kaWRh\ndGUudGV4dENvbnRlbnQpICE9IG51bGwgPyByZWYyLmxlbmd0aCA6IHZvaWQgMCkgPT09IHRleHQu\nbGVuZ3RoKSB7XG5yZXR1cm47XG59O1xuXG5zcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChc\nInNwYW5cIik7XG5zcGFuLmlubmVySFRNTCA9IHRleHQ7XG5yZXR1cm4gY2FuZGlkYXRlLnBhcmVu\ndE5vZGUucmVwbGFjZUNoaWxkKHNwYW4sIGNhbmRpZGF0ZSk7XG59O1xubGlua1BhY2socmVzdWx0\nLCBzdGFydCkge1xubGV0IGksIGosIGssIHJlZiwgcmVmMSwgcmVmMiwgcmVmMywgc3RhcnRUaW1l\nO1xuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxud2hpbGUgKHN0YXJ0ICsgMTAwMDAgPCByZXN1\nbHQuc25hcHNob3RMZW5ndGgpIHtcbmZvciAoaSA9IGogPSByZWYgPSBzdGFydCwgcmVmMSA9IHN0\nYXJ0ICsgMTAwMDA7IHJlZiA8PSByZWYxID8gaiA8PSByZWYxIDogaiA+PSByZWYxOyBpID0gcmVm\nIDw9IHJlZjEgPyArK2ogOiAtLWopIHtcbnRoaXMuc2V0TGluayhyZXN1bHQuc25hcHNob3RJdGVt\nKGkpKTtcbn07XG5cbnN0YXJ0ICs9IDEwMDAwO1xuXG5pZiAoRGF0ZS5ub3coKSAtIHN0YXJ0VGlt\nZSA+IDI1MDApIHtcbnJldHVybjtcbn07XG59O1xuXG5mb3IgKGkgPSBrID0gcmVmMiA9IHN0YXJ0\nLCByZWYzID0gcmVzdWx0LnNuYXBzaG90TGVuZ3RoOyByZWYyIDw9IHJlZjMgPyBrIDw9IHJlZjMg\nOiBrID49IHJlZjM7IGkgPSByZWYyIDw9IHJlZjMgPyArK2sgOiAtLWspIHtcbnRoaXMuc2V0TGlu\nayhyZXN1bHQuc25hcHNob3RJdGVtKGkpKTtcbn07XG59O1xubGlua2lmeShub2RlKSB7XG5sZXQg\ncmVzdWx0O1xucmVzdWx0ID0gZG9jdW1lbnQuZXZhbHVhdGUodGhpcy54UGF0aCwgbm9kZSwgbnVs\nbCwgWFBhdGhSZXN1bHQuVU5PUkRFUkVEX05PREVfU05BUFNIT1RfVFlQRSwgbnVsbCk7XG5yZXR1\ncm4gdGhpcy5saW5rUGFjayhyZXN1bHQsIDApO1xufTtcbmxpbmtGaWx0ZXIobm9kZSkge1xubGV0\nIGosIGxlbiwgdGFnO1xuXG5mb3IgKGogPSAwLCBsZW4gPSB0aGlzLmV4Y2x1ZGVkVGFncy5sZW5n\ndGg7IGogPCBsZW47IGorKykge1xudGFnID0gdGhpcy5leGNsdWRlZFRhZ3Nbal07XG5cbmlmICh0\nYWcgPT09IG5vZGUucGFyZW50Tm9kZS5sb2NhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xucmV0dXJu\nIE5vZGVGaWx0ZXIuRklMVEVSX1JFSkVDVDtcbn07XG59O1xuXG5yZXR1cm4gTm9kZUZpbHRlci5G\nSUxURVJfQUNDRVBUO1xufTtcbm9ic2VydmVQYWdlKHJvb3QpIHtcbmNvbnN0IHRXID0gZG9jdW1l\nbnQuY3JlYXRlVHJlZVdhbGtlcihyb290LCBOb2RlRmlsdGVyLlNIT1dfVEVYVCwge1xuYWNjZXB0\nTm9kZTogdGhpcy5saW5rRmlsdGVyXG59LCBmYWxzZSk7XG5cbndoaWxlICh0Vy5uZXh0Tm9kZSgp\nKSB7XG50aGlzLnNldExpbmsodFcuY3VycmVudE5vZGUpO1xufTtcbn07XG5zdGFydE9ic2VydmUo\nKSB7XG50aGlzLm9ic2VydmVyID0gbmV3IHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKG11dGF0aW9u\ncyA9PiB7XG5sZXQgTm9kZSwgaiwgaywgbGVuLCBsZW4xLCBtdXRhdGlvbiwgcmVmO1xuXG5mb3Ig\nKGogPSAwLCBsZW4gPSBtdXRhdGlvbnMubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHtcbm11dGF0aW9u\nID0gbXV0YXRpb25zW2pdO1xuXG5pZiAobXV0YXRpb24udHlwZSA9PT0gXCJjaGlsZExpc3RcIikg\ne1xucmVmID0gbXV0YXRpb24uYWRkZWROb2RlcztcblxuZm9yIChrID0gMCwgbGVuMSA9IHJlZi5s\nZW5ndGg7IGsgPCBsZW4xOyBrKyspIHtcbk5vZGUgPSByZWZba107XG50aGlzLm9ic2VydmVQYWdl\nKE5vZGUpO1xufTtcbn07XG59O1xufSk7XG5cbn07XG5saW5rTWl4SW5pdCgpIHtcbmlmICh3aW5k\nb3cgIT09IHdpbmRvdy50b3AgfHwgd2luZG93LmRvY3VtZW50LnRpdGxlID09PSBcIlwiKSB7XG5y\nZXR1cm47XG59O1xuXG50aGlzLmxpbmtpZnkoZG9jdW1lbnQuYm9keSk7XG5cbnJldHVybiB0aGlz\nLm9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwge1xuY2hpbGRMaXN0OiB0cnVlLFxuc3Vi\ndHJlZTogdHJ1ZVxufSk7XG59O1xufTtcblxudHJ5IHtcbm5ldyBDbGlja0xpbmsoKTtcbn0gY2F0\nY2ggKGVycikge1xuY29uc29sZS5sb2coJ3ZpYeaPkuS7tu+8muiuqemTvuaOpeWPr+eCueWHu++8\nmuWKoOi9veWksei0pScsIGVycik7XG59O1xufSkoKTtcbiJ9Cnsic2NyaXB0SWQiOiJiZmNmZjVj\nNjcwNTVhMzUyMzJiMDViODkwMTE2NTdiMyIsImVuYWJsZWQiOnRydWUsInVybCI6Imh0dHBzOlwv\nXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzQ1ODE0NVwvJUU1JUJDJUJBJUU1JTg4\nJUI2JUU1JUE0JThEJUU1JTg4JUI2LnVzZXIuanMiLCJjb2RlVjIiOiJcL1wvID09VXNlclNjcmlw\ndD09XG5cL1wvIEBuYW1lICAgICAgICAg5by65Yi25aSN5Yi2XG5cL1wvIEBuYW1lc3BhY2UgICAg\naHR0cHM6XC9cL3ZpYXlvby5jb21cL1xuXC9cLyBAdmVyc2lvbiAgICAgIDAuNFxuXC9cLyBAZGVz\nY3JpcHRpb24gIOeQhuiuuuS4iuWPr+S7peWkjeWItuaJgOacieaWh+Wtl1xuXC9cLyBAYXV0aG9y\nICAgICAgIOWRhuavm+mjmOWViumjmFxuXC9cLyBAcnVuLWF0ICAgICAgIGRvY3VtZW50LWlkbGVc\nblwvXC8gQG1hdGNoICAgICAgICBodHRwczpcL1wvKlwvKlxuXC9cLyBAZ3JhbnQgICAgICAgIG5v\nbmVcblwvXC8gQGxpY2Vuc2UgICAgICBNSVRcblwvXC8gQGRvd25sb2FkVVJMIGh0dHBzOlwvXC91\ncGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3NjcmlwdHNcLzQ1ODE0NVwvJUU1JUJDJUJBJUU1JTg4JUI2\nJUU1JUE0JThEJUU1JTg4JUI2LnVzZXIuanNcblwvXC8gQHVwZGF0ZVVSTCBodHRwczpcL1wvdXBk\nYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRzXC80NTgxNDVcLyVFNSVCQyVCQSVFNSU4OCVCNiVF\nNSVBNCU4RCVFNSU4OCVCNi5tZXRhLmpzXG5cL1wvID09XC9Vc2VyU2NyaXB0PT1cblxuKGZ1bmN0\naW9uKCkge1xuXC9cL+azqOWFpWNzc+S9v+aJgOacieWGheWuueWPr+WkjeWItu+8jOS4pOiAheWd\nh+WPr+WNleeLrOS9v+eUqFxudmFyIG4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVc\nIik7XG5uLnR5cGUgPSBcInRleHRcL2Nzc1wiO1xubi5pbm5lckhUTUwgPSBcIip7dXNlci1zZWxl\nY3Q6IGF1dG8haW1wb3J0YW50O31cIjtcbmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobik7XG5c\nL1wv5rOo5YWlanPkvb\/miYDmnInlhoXlrrnlj6\/lpI3liLbvvIzkuKTogIXlnYflj6\/ljZXni6zk\nvb\/nlKhcbmxldCB5cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCcqJyk7XG5mb3Ig\nKHZhciBpPTA7aTx5cy5sZW5ndGg7aSsrKSB7XG55c1tpXS5zdHlsZS51c2VyU2VsZWN0PSdhdXRv\nJztcbn07XG5cbn0pKCk7In0KeyJzY3JpcHRJZCI6ImNiY2Y3NGU4ZjczM2EyY2IzOTg0MTIxMjFm\nNjE3MTgwIiwiZW5hYmxlZCI6dHJ1ZSwidXJsIjoiaHR0cHM6XC9cL3VwZGF0ZS5ncmVhc3lmb3Jr\nLm9yZ1wvc2NyaXB0c1wvNDg3NjA3XC8lRTUlQTQlOEQlRTUlODglQjYlRTklOTklOTAlRTUlODgl\nQjYlRTglQTclQTMlRTklOTklQTQlMjglRTYlOUMlQUMlRTUlOUMlQjAlRTclODklODglMjkudXNl\nci5qcyIsImNvZGVWMiI6IlwvXC8gPT1Vc2VyU2NyaXB0PT1cblwvXC8gQG5hbWUgICAgICAgICDl\npI3liLbpmZDliLbop6PpmaQo5pys5Zyw54mIKVxuXC9cLyBAbmFtZXNwYWNlICAgIGh0dHBzOlwv\nXC92aWF5b28uY29tXC9cblwvXC8gQHZlcnNpb24gICAgICAxLjMuMlxuXC9cLyBAZGVzY3JpcHRp\nb24gIOino+mZpOe9kemhteWvuemAieaLqeaWh+acrOWkjeWItueahOmZkOWItlxuXC9cLyBAYXV0\naG9yICAgICAgIFNreVxuXC9cLyBAcnVuLWF0ICAgICAgIGRvY3VtZW50LXN0YXJ0XG5cL1wvIEBt\nYXRjaCAgICAgICAgKlxuXC9cLyBAZ3JhbnQgICAgICAgIG5vbmVcblwvXC8gQGxpY2Vuc2UgICAg\nICBNSVRcblwvXC8gQGRvd25sb2FkVVJMIGh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdc\nL3NjcmlwdHNcLzQ4NzYwN1wvJUU1JUE0JThEJUU1JTg4JUI2JUU5JTk5JTkwJUU1JTg4JUI2JUU4\nJUE3JUEzJUU5JTk5JUE0JTI4JUU2JTlDJUFDJUU1JTlDJUIwJUU3JTg5JTg4JTI5LnVzZXIuanNc\nblwvXC8gQHVwZGF0ZVVSTCBodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsub3JnXC9zY3JpcHRz\nXC80ODc2MDdcLyVFNSVBNCU4RCVFNSU4OCVCNiVFOSU5OSU5MCVFNSU4OCVCNiVFOCVBNyVBMyVF\nOSU5OSVBNCUyOCVFNiU5QyVBQyVFNSU5QyVCMCVFNyU4OSU4OCUyOS5tZXRhLmpzXG5cL1wvID09\nXC9Vc2VyU2NyaXB0PT1cblxuKGZ1bmN0aW9uKCl7Y29uc3Qga2V5PWVuY29kZVVSSUNvbXBvbmVu\ndCgn5aSN5Yi26ZmQ5Yi26Kej6ZmkOuaJp+ihjOWIpOaWrScpO2lmKHdpbmRvd1trZXldKXtyZXR1\ncm47fXdpbmRvd1trZXldPXRydWU7J3VzZSBzdHJpY3QnO3ZhciBydWxlcz17YmxhY2tfcnVsZTp7\nbmFtZTpcImJsYWNrXCIsaG9va19ldmVudE5hbWVzOlwiXCIsdW5ob29rX2V2ZW50TmFtZXM6XCJc\nIn0sZGVmYXVsdF9ydWxlOntuYW1lOlwiZGVmYXVsdFwiLGhvb2tfZXZlbnROYW1lczpcImNvbnRl\neHRtZW51fHNlbGVjdHxzZWxlY3RzdGFydHxjb3B5fGN1dHxkcmFnc3RhcnRcIix1bmhvb2tfZXZl\nbnROYW1lczpcIm1vdXNlZG93bnxtb3VzZXVwfGtleWRvd258a2V5dXBcIixkb20wOnRydWUsaG9v\na19hZGRFdmVudExpc3RlbmVyOnRydWUsaG9va19wcmV2ZW50RGVmYXVsdDp0cnVlLGhvb2tfc2V0\nX3JldHVyblZhbHVlOnRydWUsYWRkX2Nzczp0cnVlfX07dmFyIGxpc3RzPXtibGFja19saXN0Oltc\nLy4qXFwueW91dHViZVxcLmNvbS4qXC8sXC8uKlxcLndpa2lwZWRpYVxcLm9yZy4qXC8sXC9tYWls\nXFwucXFcXC5jb20uKlwvLFwvdHJhbnNsYXRlXFwuZ29vZ2xlXFwuLipcLyxcLy4qXFwuYmluZ1xc\nLmNvbS4qXC9dfTt2YXIgaG9va19ldmVudE5hbWVzLHVuaG9va19ldmVudE5hbWVzLGV2ZW50TmFt\nZXM7dmFyIHN0b3JhZ2VOYW1lPWdldFJhbmRTdHIoJ3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5t\nUVdFUlRZVUlPUEFTREZHSEpLTFpYQ1ZCTk0nLHBhcnNlSW50KE1hdGgucmFuZG9tKCkqMTIrOCkp\nO3ZhciBFdmVudFRhcmdldF9hZGRFdmVudExpc3RlbmVyPUV2ZW50VGFyZ2V0LnByb3RvdHlwZS5h\nZGRFdmVudExpc3RlbmVyO3ZhciBkb2N1bWVudF9hZGRFdmVudExpc3RlbmVyPWRvY3VtZW50LmFk\nZEV2ZW50TGlzdGVuZXI7dmFyIEV2ZW50X3ByZXZlbnREZWZhdWx0PUV2ZW50LnByb3RvdHlwZS5w\ncmV2ZW50RGVmYXVsdDtmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVyKHR5cGUsZnVuYyx1c2VDYXB0\ndXJlKXt2YXIgX2FkZEV2ZW50TGlzdGVuZXI9dGhpcz09PWRvY3VtZW50P2RvY3VtZW50X2FkZEV2\nZW50TGlzdGVuZXI6RXZlbnRUYXJnZXRfYWRkRXZlbnRMaXN0ZW5lcjtpZihob29rX2V2ZW50TmFt\nZXMuaW5kZXhPZih0eXBlKT49MCl7X2FkZEV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcyxbdHlwZSxy\nZXR1cm5UcnVlLHVzZUNhcHR1cmVdKTt9ZWxzZSBpZih1bmhvb2tfZXZlbnROYW1lcy5pbmRleE9m\nKHR5cGUpPj0wKXt2YXIgZnVuY3NOYW1lPXN0b3JhZ2VOYW1lK3R5cGUrKHVzZUNhcHR1cmU\/J3Qn\nOidmJyk7aWYodGhpc1tmdW5jc05hbWVdPT09dW5kZWZpbmVkKXt0aGlzW2Z1bmNzTmFtZV09W107\nX2FkZEV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcyxbdHlwZSx1c2VDYXB0dXJlP3VuaG9va190OnVu\naG9va19mLHVzZUNhcHR1cmVdKTt9dGhpc1tmdW5jc05hbWVdLnB1c2goZnVuYyk7fWVsc2V7X2Fk\nZEV2ZW50TGlzdGVuZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO319ZnVuY3Rpb24gY2xlYXJMb29w\nKCl7dmFyIGVsZW1lbnRzPWdldEVsZW1lbnRzKCk7Zm9yKHZhciBpIGluIGVsZW1lbnRzKXtmb3Io\ndmFyIGogaW4gZXZlbnROYW1lcyl7dmFyIG5hbWU9J29uJytldmVudE5hbWVzW2pdO2lmKGVsZW1l\nbnRzW2ldW25hbWVdIT09bnVsbCYmZWxlbWVudHNbaV1bbmFtZV0hPT1vbnh4eCl7aWYodW5ob29r\nX2V2ZW50TmFtZXMuaW5kZXhPZihldmVudE5hbWVzW2pdKT49MCl7ZWxlbWVudHNbaV1bc3RvcmFn\nZU5hbWUrbmFtZV09ZWxlbWVudHNbaV1bbmFtZV07ZWxlbWVudHNbaV1bbmFtZV09b254eHg7fWVs\nc2V7ZWxlbWVudHNbaV1bbmFtZV09bnVsbDt9fX19fWZ1bmN0aW9uIHJldHVyblRydWUoZSl7cmV0\ndXJuIHRydWU7fWZ1bmN0aW9uIHVuaG9va190KGUpe3JldHVybiB1bmhvb2soZSx0aGlzLHN0b3Jh\nZ2VOYW1lK2UudHlwZSsndCcpO31mdW5jdGlvbiB1bmhvb2tfZihlKXtyZXR1cm4gdW5ob29rKGUs\ndGhpcyxzdG9yYWdlTmFtZStlLnR5cGUrJ2YnKTt9ZnVuY3Rpb24gdW5ob29rKGUsc2VsZixmdW5j\nc05hbWUpe3ZhciBsaXN0PXNlbGZbZnVuY3NOYW1lXTtmb3IodmFyIGkgaW4gbGlzdCl7bGlzdFtp\nXShlKTt9ZS5yZXR1cm5WYWx1ZT10cnVlO3JldHVybiB0cnVlO31mdW5jdGlvbiBvbnh4eChlKXt2\nYXIgbmFtZT1zdG9yYWdlTmFtZSsnb24nK2UudHlwZTt0aGlzW25hbWVdKGUpO2UucmV0dXJuVmFs\ndWU9dHJ1ZTtyZXR1cm4gdHJ1ZTt9ZnVuY3Rpb24gZ2V0UmFuZFN0cihjaHMsbGVuKXt2YXIgc3Ry\nPScnO3doaWxlKGxlbi0tKXtzdHIrPWNoc1twYXJzZUludChNYXRoLnJhbmRvbSgpKmNocy5sZW5n\ndGgpXTt9cmV0dXJuIHN0cjt9ZnVuY3Rpb24gZ2V0RWxlbWVudHMoKXt2YXIgZWxlbWVudHM9QXJy\nYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyon\nKSk7ZWxlbWVudHMucHVzaChkb2N1bWVudCk7cmV0dXJuIGVsZW1lbnRzO31mdW5jdGlvbiBhZGRT\ndHlsZShjc3Mpe3ZhciBzdHlsZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO3N0eWxl\nLmlubmVySFRNTD1jc3M7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7fWZ1bmN0aW9u\nIGdldFJ1bGUodXJsKXtmdW5jdGlvbiB0ZXN0VXJsKGxpc3QsdXJsKXtmb3IodmFyIGkgaW4gbGlz\ndCl7aWYobGlzdFtpXS50ZXN0KHVybCkpe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO31pZih0\nZXN0VXJsKGxpc3RzLmJsYWNrX2xpc3QsdXJsKSl7cmV0dXJuIHJ1bGVzLmJsYWNrX3J1bGU7fXJl\ndHVybiBydWxlcy5kZWZhdWx0X3J1bGU7fWZ1bmN0aW9uIGluaXQoKXt2YXIgdXJsPXdpbmRvdy5s\nb2NhdGlvbi5ob3N0K3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTt2YXIgcnVsZT1nZXRSdWxlKHVy\nbCk7aG9va19ldmVudE5hbWVzPXJ1bGUuaG9va19ldmVudE5hbWVzLnNwbGl0KFwifFwiKTt1bmhv\nb2tfZXZlbnROYW1lcz1ydWxlLnVuaG9va19ldmVudE5hbWVzLnNwbGl0KFwifFwiKTtldmVudE5h\nbWVzPWhvb2tfZXZlbnROYW1lcy5jb25jYXQodW5ob29rX2V2ZW50TmFtZXMpO2lmKHJ1bGUuZG9t\nMCl7c2V0SW50ZXJ2YWwoY2xlYXJMb29wLDMwKjEwMDApO3NldFRpbWVvdXQoY2xlYXJMb29wLDI1\nMDApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJyxjbGVhckxvb3AsdHJ1ZSk7Y2xlYXJM\nb29wKCk7fWlmKHJ1bGUuaG9va19hZGRFdmVudExpc3RlbmVyKXtFdmVudFRhcmdldC5wcm90b3R5\ncGUuYWRkRXZlbnRMaXN0ZW5lcj1hZGRFdmVudExpc3RlbmVyO2RvY3VtZW50LmFkZEV2ZW50TGlz\ndGVuZXI9YWRkRXZlbnRMaXN0ZW5lcjt9aWYocnVsZS5ob29rX3ByZXZlbnREZWZhdWx0KXtFdmVu\ndC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtpZihldmVudE5hbWVzLmluZGV4\nT2YodGhpcy50eXBlKTwwKXtFdmVudF9wcmV2ZW50RGVmYXVsdC5hcHBseSh0aGlzLGFyZ3VtZW50\ncyk7fX07fWlmKHJ1bGUuaG9va19zZXRfcmV0dXJuVmFsdWUpe0V2ZW50LnByb3RvdHlwZS5fX2Rl\nZmluZVNldHRlcl9fKCdyZXR1cm5WYWx1ZScsZnVuY3Rpb24oKXtpZih0aGlzLnJldHVyblZhbHVl\nIT09dHJ1ZSYmZXZlbnROYW1lcy5pbmRleE9mKHRoaXMudHlwZSk+PTApe3RoaXMucmV0dXJuVmFs\ndWU9dHJ1ZTt9fSk7fWNvbnNvbGUuZGVidWcoJ3VybDogJyt1cmwsJ3N0b3JhZ2VOYW1l77yaJytz\ndG9yYWdlTmFtZSwncnVsZTogJytydWxlLm5hbWUpO2lmKHJ1bGUuYWRkX2Nzcyl7YWRkU3R5bGUo\nJ2h0bWwsKnstd2Via2l0LXVzZXItc2VsZWN0OnRleHQhaW1wb3J0YW50O30nKTt9fWluaXQoKTt9\nKSgpOyJ9Cnsic2NyaXB0SWQiOiJlZjFlYmEzMGE1MGU5NDRkY2NkMTRhY2JhMjRlNjA5NSIsImVu\nYWJsZWQiOnRydWUsInVybCI6Imh0dHBzOlwvXC91cGRhdGUuZ3JlYXN5Zm9yay5vcmdcL3Njcmlw\ndHNcLzQwNTg5N1wvJUU4JUE3JUE2JUU2JTkxJUI4JUU1JUIxJThGJUU4JUE3JTg2JUU5JUEyJTkx\nJUU0JUJDJTk4JUU1JThDJTk2LnVzZXIuanMiLCJjb2RlVjIiOiJcL1wvID09VXNlclNjcmlwdD09\nXG5cL1wvIEBuYW1lICAgICAgICAg6Kem5pG45bGP6KeG6aKR5LyY5YyWXG5cL1wvIEBuYW1lc3Bh\nY2UgICAgaHR0cHM6XC9cL2dpdGh1Yi5jb21cL0hlcm9DaGFuMDMzMFxuXC9cLyBAdmVyc2lvbiAg\nICAgIDIuMjNcblwvXC8gQGRlc2NyaXB0aW9uICDop6bmkbjlsY\/op4bpopHmkq3mlL7miYvlir\/m\nlK\/mjIHvvIzkuIrkuIvmu5HosIPmlbTpn7Pph4\/vvIzlt6blj7Pmu5HosIPmlbTov5vluqZcblwv\nXC8gQGF1dGhvciAgICAgICBIZXJvQ2hhblN5c3VcblwvXC8gQG1hdGNoICAgICAgICBodHRwczpc\nL1wvKlwvKlxuXC9cLyBAbWF0Y2ggICAgICAgIGh0dHA6XC9cLypcLypcblwvXC8gQG1hdGNoICAg\nICAgICBmdHA6XC9cLypcLypcblwvXC8gQGdyYW50ICAgICAgICBHTV9hZGRTdHlsZVxuXC9cLyBA\nZ3JhbnQgICAgICAgIEdNX3NldFZhbHVlICBcblwvXC8gQGdyYW50ICAgICAgICBHTV9nZXRWYWx1\nZSAgXG5cL1wvIEBkb3dubG9hZFVSTCBodHRwczpcL1wvdXBkYXRlLmdyZWFzeWZvcmsub3JnXC9z\nY3JpcHRzXC80MDU4OTdcLyVFOCVBNyVBNiVFNiU5MSVCOCVFNSVCMSU4RiVFOCVBNyU4NiVFOSVB\nMiU5MSVFNCVCQyU5OCVFNSU4QyU5Ni51c2VyLmpzXG5cL1wvIEB1cGRhdGVVUkwgaHR0cHM6XC9c\nL3VwZGF0ZS5ncmVhc3lmb3JrLm9yZ1wvc2NyaXB0c1wvNDA1ODk3XC8lRTglQTclQTYlRTYlOTEl\nQjglRTUlQjElOEYlRTglQTclODYlRTklQTIlOTElRTQlQkMlOTglRTUlOEMlOTYubWV0YS5qc1xu\nXC9cLyA9PVwvVXNlclNjcmlwdD09XG5cbnZhciBUR1VzZXJEZWZhdWx0U2V0dGluZyA9IHtcbiAg\nICBnbG9iYWwgOiB7XG4gICAgICAgIGdTd2l0Y2hTdGF0ZTp0cnVlLFxuICAgICAgICBnU3dpdGNo\nUHJvZ3Jlc3M6dHJ1ZSxcbiAgICAgICAgZ1N3aXRjaEJyaWdodG5lc3M6dHJ1ZSxcbiAgICAgICAg\nZ1N3aXRjaFZvbHVtZTp0cnVlLFxuICAgICAgICBnU3dpdGNoU3BlZWRYNDp0cnVlLFxuICAgICAg\nICBnU3dpdGNoU3BlZWQ6dHJ1ZSxcbiAgICAgICAgZ1N3aXRjaFNwZWVkWDRTaWdsZTpmYWxzZSxc\nbiAgICAgICAgZ1NlbGVjdFRvYXN0UG9zOlwibWlkZGxlXCJcbiAgICB9LFxuICAgIHdlYnNpdGUg\nOntcblxuICAgIH1cbn07XG52YXIgVEdVc2VyU2V0dGluZztcblxuXC9cLyDpu5HlkI3ljZVcbnZh\nciBUb3VjaEdlc3R1cmVCbGFja0xpc3Q9W1xuICAgIFxuXTtcblxudmFyIFRvdWNoR2VzdHVyZT17\nZm9yYmlkU2Nyb2xsOmZhbHNlLG9yaWVudGF0aW9uTG9ja2VkOmZhbHNlLGlzbW9iaWxlOmZhbHNl\nLGRlYnVnOmZhbHNlfTtcbnZhciBUb3VjaEdlc3R1cmVTZXR0aW5nID0ge3ZvbHVtZTp0cnVlLGJy\naWdodG5lc3M6dHJ1ZSxwcm9ncmVzczp0cnVlLHNwZWVkOnRydWUsc3BlZWR4NDp0cnVlLHNwZWVk\neDRzaW5nbGU6dHJ1ZSxzdGF0ZTp0cnVlLGZvcmJpZFNjcm9sbE5GUzpmYWxzZX07XG5cLypcbiog\nICAgV2hpdGVMaXN0IGZvcm1hdFxuKiAgICBmdW5jdGlvbiBjb250YWluZXIodmlkZW9fZWxlbWVu\ndCl7XG4qICAgICAgIGNhbGxiYWNrKHJvb3RfZWxlbWVudCxsaXN0ZW5fZWxlbWVudO+8jG9wdGlv\nbnMpO1xuKiAgICAgICBjYWxsYmFjayhudWxsLG51bGwsb3B0aW9ucyk7XG4qICAgfVxuKiAgIG9w\ndGlvbnMgPSB7dm9sdW1lOnRydWUsYnJpZ2h0bmVzczp0cnVlLHByb2dyZXNzOnRydWUsc3BlZWQ6\ndHJ1ZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNpbmdsZTp0cnVlLHN0YXRlOnRydWV9XG4qXC9cbnZh\nciBUb3VjaEdlc3R1cmVXaGl0ZUxpc3Q9e1xuICAgIFwid3d3LmJpbGliaWxpLmNvbVwiOntcbiAg\nICAgICAgY29udGFpbmVyOmZ1bmN0aW9uKHZpZGVvX2VsZW1lbnQsY2FsbGJhY2spe1xuICAgICAg\nICAgICAgdmFyIHBhcmVudCA9IHZpZGVvX2VsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAg\nICAgIGlmKHBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJicHgtcGxheWVyLXZpZGVvLXdyYXBc\nIikpe1xuICAgICAgICAgICAgICAgIGlmKHRnX0lzRnVsbHNjcmVlbigpPT10cnVlKXtcbiAgICAg\nICAgICAgICAgICAgICAgdmFyIHJvb3RfZWxlbWVudCA9IHNlZWtHcmFuZFBhcmVudEJ5Q2xhc3Mo\ncGFyZW50LFwiYnB4LXBsYXllci12aWRlby1hcmVhXCIpO1xuICAgICAgICAgICAgICAgICAgICB2\nYXIgbGlzdGVuX2VsZW1lbnQgPSBzZWVrR3JhbmRQYXJlbnRCeUNsYXNzKHJvb3RfZWxlbWVudCxc\nInZpZGVvLWNvbnRhaW5lci12MVwiKTtcbiAgICAgICAgICAgICAgICAgICAgXC9cLyByZXR1cm4g\nW3Jvb3RfZWxlbWVudCxsaXN0ZW5fZWxlbWVudF07XG4gICAgICAgICAgICAgICAgICAgIGNhbGxi\nYWNrKHJvb3RfZWxlbWVudCxsaXN0ZW5fZWxlbWVudCx7dm9sdW1lOnRydWUsYnJpZ2h0bmVzczp0\ncnVlLHByb2dyZXNzOnRydWUsc3BlZWQ6dHJ1ZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNpbmdsZTp0\ncnVlLHN0YXRlOnRydWV9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxz\nZXtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJvb3RfZWxlbWVudCA9IHNlZWtHcmFuZFBhcmVu\ndEJ5Q2xhc3MocGFyZW50LFwiYnB4LXBsYXllci12aWRlby1hcmVhXCIpO1xuICAgICAgICAgICAg\nICAgICAgICB2YXIgbGlzdGVuX2VsZW1lbnQgPSBzZWVrR3JhbmRQYXJlbnRCeUNsYXNzKHJvb3Rf\nZWxlbWVudCxcInBsYXllci13cmFwXCIpO1xuICAgICAgICAgICAgICAgICAgICBcL1wvIHJldHVy\nbiBbcm9vdF9lbGVtZW50LGxpc3Rlbl9lbGVtZW50XTtcbiAgICAgICAgICAgICAgICAgICAgY2Fs\nbGJhY2socm9vdF9lbGVtZW50LGxpc3Rlbl9lbGVtZW50LHt2b2x1bWU6dHJ1ZSxicmlnaHRuZXNz\nOnRydWUscHJvZ3Jlc3M6dHJ1ZSxzcGVlZDp0cnVlLHNwZWVkeDQ6dHJ1ZSxzcGVlZHg0c2luZ2xl\nOnRydWUsc3RhdGU6dHJ1ZX0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAg\nICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgXC9cLyByZXR1cm4gbnVsbDtcbiAgICAg\nICAgICAgICAgICBjYWxsYmFjayhudWxsLG51bGwse3ZvbHVtZTp0cnVlLGJyaWdodG5lc3M6dHJ1\nZSxwcm9ncmVzczp0cnVlLHNwZWVkOnRydWUsc3BlZWR4NDp0cnVlLHNwZWVkeDRzaW5nbGU6dHJ1\nZSxzdGF0ZTp0cnVlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZvcmJp\nZFNjcm9sbExpc3Q6W1wiYmlsaWJpbGktcGxheWVyLWRtLXRpcC13cmFwXCJdXG4gICAgfSxcbiAg\nICBcIm0uYmlsaWJpbGkuY29tXCI6e1xuICAgICAgICBjb250YWluZXI6ZnVuY3Rpb24odmlkZW9f\nZWxlbWVudCxjYWxsYmFjayl7XG4gICAgICAgICAgICB2YXIgcGFyZW50ID0gdmlkZW9fZWxlbWVu\ndC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgaWYocGFyZW50LmNsYXNzTGlzdC5jb250YWlu\ncyhcIm1wbGF5ZXItdmlkZW8td3JhcFwiKSl7XG4gICAgICAgICAgICAgICAgdmFyIHJvb3RfZWxl\nbWVudCA9IHNlZWtHcmFuZFBhcmVudEJ5Q2xhc3MocGFyZW50LFwibXBsYXllclwiKTtcbiAgICAg\nICAgICAgICAgICBcL1wvIHJldHVybiBbcm9vdF9lbGVtZW50LGxpc3Rlbl9lbGVtZW50XTtcbiAg\nICAgICAgICAgICAgICBjYWxsYmFjayhyb290X2VsZW1lbnQscm9vdF9lbGVtZW50LHt2b2x1bWU6\ndHJ1ZSxicmlnaHRuZXNzOnRydWUscHJvZ3Jlc3M6dHJ1ZSxzcGVlZDp0cnVlLHNwZWVkeDQ6dHJ1\nZSxzcGVlZHg0c2luZ2xlOnRydWUsc3RhdGU6dHJ1ZX0pO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICBcL1wvIHJldHVybiBudWxsO1xuICAgICAgICAg\nICAgICAgIGNhbGxiYWNrKG51bGwsbnVsbCx7dm9sdW1lOnRydWUsYnJpZ2h0bmVzczp0cnVlLHBy\nb2dyZXNzOnRydWUsc3BlZWQ6dHJ1ZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNpbmdsZTp0cnVlLHN0\nYXRlOnRydWV9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZm9yYmlkU2Ny\nb2xsTGlzdDpbXCJwbGF5ZXItbW9iaWxlLWRpc3BsYXlcIixcIm1wbGF5ZXItZGlzcGxheVwiXVxu\nICAgIH0sXG4gICAgXCJ3ZWliby5jb21cIjp7XG4gICAgICAgIGNvbnRhaW5lcjpmdW5jdGlvbih2\naWRlb19lbGVtZW50LGNhbGxiYWNrKXtcbiAgICAgICAgICAgIFwvXC8gcmV0dXJuIG51bGw7XG4g\nICAgICAgICAgICBjYWxsYmFjayhudWxsLG51bGwse3ZvbHVtZTp0cnVlLGJyaWdodG5lc3M6dHJ1\nZSxwcm9ncmVzczp0cnVlLHNwZWVkOnRydWUsc3BlZWR4NDp0cnVlLHNwZWVkeDRzaW5nbGU6dHJ1\nZSxzdGF0ZTp0cnVlfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGZvcmJpZFNjcm9sbExpc3Q6W1wi\nd2Jwdi10ZWNoXCIsXCJ3YnB2LW9wZW4tbGF5ZXItYnV0dG9uXCJdXG4gICAgfSxcbiAgICBcInd3\ndy55b3V0dWJlLmNvbVwiOntcbiAgICAgICAgY29udGFpbmVyOmZ1bmN0aW9uKHZpZGVvX2VsZW1l\nbnQsY2FsbGJhY2spe1xuICAgICAgICAgICAgdmFyIHBhcmVudCA9IHZpZGVvX2VsZW1lbnQucGFy\nZW50RWxlbWVudDtcbiAgICAgICAgICAgIGlmKHBhcmVudC5jbGFzc0xpc3QuY29udGFpbnMoXCJo\ndG1sNS12aWRlby1jb250YWluZXJcIikpe1xuICAgICAgICAgICAgICAgIFwvXC8gdmFyIHRlbXAg\nPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgXC9cLyB3aGlsZSh0ZW1wIT1udWxsKXtcbiAgICAg\nICAgICAgICAgICBcL1wvICAgICBpZih0ZW1wICYmIHRlbXAuaWQ9PSdwbGF5ZXInKXtcbiAgICAg\nICAgICAgICAgICBcL1wvICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgXC9cLyAgICAg\nfVxuICAgICAgICAgICAgICAgIFwvXC8gICAgIHRlbXAgPSB0ZW1wLnBhcmVudEVsZW1lbnQ7XG4g\nICAgICAgICAgICAgICAgXC9cLyB9XG4gICAgICAgICAgICAgICAgXC9cLyB2YXIgcm9vdF9lbGVt\nZW50O1xuICAgICAgICAgICAgICAgIFwvXC8gaWYodGVtcCE9bnVsbCl7XG4gICAgICAgICAgICAg\nICAgXC9cLyAgICAgcm9vdF9lbGVtZW50ID0gdGVtcDtcbiAgICAgICAgICAgICAgICBcL1wvIH1c\nbiAgICAgICAgICAgICAgICBcL1wvIGVsc2V7XG4gICAgICAgICAgICAgICAgXC9cLyAgICAgcm9v\ndF9lbGVtZW50ID0gcGFyZW50O1xuICAgICAgICAgICAgICAgIFwvXC8gfVxuICAgICAgICAgICAg\nICAgIHZhciByb290X2VsZW1lbnQgPSBzZWVrR3JhbmRQYXJlbnRCeUNsYXNzKHBhcmVudCxcInl0\nZC1wbGF5ZXJcIik7XG4gICAgICAgICAgICAgICAgXC9cLyByZXR1cm4gW3Jvb3RfZWxlbWVudCxs\naXN0ZW5fZWxlbWVudF07XG4gICAgICAgICAgICAgICAgY2FsbGJhY2socm9vdF9lbGVtZW50LHJv\nb3RfZWxlbWVudCx7dm9sdW1lOnRydWUsYnJpZ2h0bmVzczp0cnVlLHByb2dyZXNzOnRydWUsc3Bl\nZWQ6dHJ1ZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNpbmdsZTp0cnVlLHN0YXRlOnRydWV9KTtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgXC9cLyByZXR1\ncm4gbnVsbDtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLG51bGwse3ZvbHVtZTp0cnVl\nLGJyaWdodG5lc3M6dHJ1ZSxwcm9ncmVzczp0cnVlLHNwZWVkOnRydWUsc3BlZWR4NDp0cnVlLHNw\nZWVkeDRzaW5nbGU6dHJ1ZSxzdGF0ZTp0cnVlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0s\nXG4gICAgICAgIGZvcmJpZFNjcm9sbExpc3Q6W1widmlkZW8tc3RyZWFtXCIsXCJ5dGQtd2F0Y2gt\nZmxleHlcIl1cbiAgICB9LFxuICAgIFwibS55b3V0dWJlLmNvbVwiOntcbiAgICAgICAgY29udGFp\nbmVyOmZ1bmN0aW9uKHZpZGVvX2VsZW1lbnQsY2FsbGJhY2spe1xuICAgICAgICAgICAgdmFyIHBh\ncmVudCA9IHZpZGVvX2VsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICAgIGlmKHBhcmVu\ndC5jbGFzc0xpc3QuY29udGFpbnMoXCJodG1sNS12aWRlby1jb250YWluZXJcIikpe1xuICAgICAg\nICAgICAgICAgIHZhciByb290X2VsZW1lbnQgPSBzZWVrR3JhbmRQYXJlbnRCeUNsYXNzKHBhcmVu\ndCxcInBsYXllci1jb250YWluZXJcIik7XG4gICAgICAgICAgICAgICAgdmFyIGxpc3Rlbl9lbGVt\nZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB5dEZpbmRMaXN0ZW5FbGVtZW50KCk7XG4gICAg\nICAgICAgICAgICAgZnVuY3Rpb24geXRGaW5kTGlzdGVuRWxlbWVudCgpe1xuICAgICAgICAgICAg\nICAgICAgICBsaXN0ZW5fZWxlbWVudCA9IHJvb3RfZWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO\nYW1lKFwicGxheWVyLWNvbnRyb2xzLWJhY2tncm91bmRcIilbMF07XG4gICAgICAgICAgICAgICAg\nICAgIFwvXC8gY29uc29sZS5sb2cocm9vdF9lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAg\nXC9cLyBjb25zb2xlLmxvZyhsaXN0ZW5fZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlm\nKGxpc3Rlbl9lbGVtZW50PT1udWxsKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVv\ndXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHl0RmluZExpc3RlbkVsZW1l\nbnQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgICAgICAg\nICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgICAg\nIGNhbGxiYWNrKHJvb3RfZWxlbWVudCxsaXN0ZW5fZWxlbWVudCx7dm9sdW1lOnRydWUsYnJpZ2h0\nbmVzczp0cnVlLHByb2dyZXNzOnRydWUsc3BlZWQ6dHJ1ZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNp\nbmdsZTp0cnVlLHN0YXRlOnRydWV9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwvXC8gY29u\nc29sZS5sb2coXCJjYWxsYmFjayFcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAg\nICAgICAgXC9cLyByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxsLG51\nbGwse3ZvbHVtZTp0cnVlLGJyaWdodG5lc3M6dHJ1ZSxwcm9ncmVzczp0cnVlLHNwZWVkOnRydWUs\nc3BlZWR4NDp0cnVlLHNwZWVkeDRzaW5nbGU6dHJ1ZSxzdGF0ZTp0cnVlfSk7XG4gICAgICAgICAg\nICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZvcmJpZFNjcm9sbExpc3Q6W1wiYW5pbWF0aW9uLWVu\nYWJsZWRcIixcInBsYXllci1jb250cm9scy1iYWNrZ3JvdW5kXCJdXG4gICAgfSxcbiAgICBcInYu\neW91a3UuY29tXCI6e1xuICAgICAgICBjb250YWluZXI6ZnVuY3Rpb24odmlkZW9fZWxlbWVudCxj\nYWxsYmFjayl7XG4gICAgICAgICAgICB2YXIgcGFyZW50ID0gdmlkZW9fZWxlbWVudC5wYXJlbnRF\nbGVtZW50O1xuICAgICAgICAgICAgaWYocGFyZW50LmNsYXNzTGlzdC5jb250YWlucyhcInlvdWt1\nLWZpbG0tcGxheWVyXCIpKXtcbiAgICAgICAgICAgICAgICB2YXIgcm9vdF9lbGVtZW50ID0gc2Vl\na0dyYW5kUGFyZW50QnlDbGFzcyhwYXJlbnQsXCJ5b3VrdS1maWxtLXBsYXllclwiKTtcbiAgICAg\nICAgICAgICAgICBcL1wvIHJldHVybiBbcm9vdF9lbGVtZW50LGxpc3Rlbl9lbGVtZW50XTtcbiAg\nICAgICAgICAgICAgICBjYWxsYmFjayhyb290X2VsZW1lbnQscm9vdF9lbGVtZW50LHt2b2x1bWU6\ndHJ1ZSxicmlnaHRuZXNzOnRydWUscHJvZ3Jlc3M6dHJ1ZSxzcGVlZDp0cnVlLHNwZWVkeDQ6dHJ1\nZSxzcGVlZHg0c2luZ2xlOnRydWUsc3RhdGU6dHJ1ZX0pO1xuICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgZWxzZSBpZihwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwidmlkZW8tbGF5ZXJcIikp\ne1xuICAgICAgICAgICAgICAgIHZhciByb290X2VsZW1lbnQgPSBzZWVrR3JhbmRQYXJlbnRCeUNs\nYXNzKHBhcmVudCxcInlvdWt1LXBsYXllclwiKTtcbiAgICAgICAgICAgICAgICBcL1wvIHJldHVy\nbiBbcm9vdF9lbGVtZW50LGxpc3Rlbl9lbGVtZW50XTtcbiAgICAgICAgICAgICAgICBjYWxsYmFj\nayhyb290X2VsZW1lbnQscm9vdF9lbGVtZW50LHt2b2x1bWU6dHJ1ZSxicmlnaHRuZXNzOnRydWUs\ncHJvZ3Jlc3M6dHJ1ZSxzcGVlZDp0cnVlLHNwZWVkeDQ6dHJ1ZSxzcGVlZHg0c2luZ2xlOnRydWUs\nc3RhdGU6dHJ1ZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAg\nICAgICAgICBcL1wvIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGws\nbnVsbCx7dm9sdW1lOnRydWUsYnJpZ2h0bmVzczp0cnVlLHByb2dyZXNzOnRydWUsc3BlZWQ6dHJ1\nZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNpbmdsZTp0cnVlLHN0YXRlOnRydWV9KTtcbiAgICAgICAg\nICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZm9yYmlkU2Nyb2xsTGlzdDpbXCJ5ay10cmlnZ2Vy\nLWxheWVyXCIsXCJrdWktZGFzaGJvYXJkLWRpc3BsYXktcGFuZWxcIixcImt1aS1tZXNzYWdlLWlu\nZm9ybWF0aW9uXCJdXG4gICAgfSxcbiAgICBcInd3dy5mYWNlYm9vay5jb21cIjp7XG4gICAgICAg\nIGNvbnRhaW5lcjpmdW5jdGlvbih2aWRlb19lbGVtZW50LGNhbGxiYWNrKXtcbiAgICAgICAgICAg\nIFwvXC8gcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLG51bGwse3ZvbHVt\nZTp0cnVlLGJyaWdodG5lc3M6dHJ1ZSxwcm9ncmVzczp0cnVlLHNwZWVkOnRydWUsc3BlZWR4NDp0\ncnVlLHNwZWVkeDRzaW5nbGU6dHJ1ZSxzdGF0ZTp0cnVlfSk7XG4gICAgICAgIH0sXG4gICAgICAg\nIGZvcmJpZFNjcm9sbExpc3Q6W1wiaTA5cXR6d2JcIl1cbiAgICB9LFxuICAgIFwidi5xcS5jb21c\nIjp7XG4gICAgICAgIGNvbnRhaW5lcjpmdW5jdGlvbih2aWRlb19lbGVtZW50LGNhbGxiYWNrKXtc\nbiAgICAgICAgICAgIHZhciBwYXJlbnQgPSB2aWRlb19lbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4g\nICAgICAgICAgICBpZihwYXJlbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwidHhwX3ZpZGVvX2NvbnRh\naW5lclwiKSl7XG4gICAgICAgICAgICAgICAgdmFyIHJvb3RfZWxlbWVudCA9IHNlZWtHcmFuZFBh\ncmVudEJ5Q2xhc3MocGFyZW50LFwidHhwX3BsYXllclwiKTtcbiAgICAgICAgICAgICAgICBcL1wv\nIHJldHVybiBbcm9vdF9lbGVtZW50LGxpc3Rlbl9lbGVtZW50XTtcbiAgICAgICAgICAgICAgICBj\nYWxsYmFjayhyb290X2VsZW1lbnQscm9vdF9lbGVtZW50LHt2b2x1bWU6dHJ1ZSxicmlnaHRuZXNz\nOnRydWUscHJvZ3Jlc3M6dHJ1ZSxzcGVlZDp0cnVlLHNwZWVkeDQ6dHJ1ZSxzcGVlZHg0c2luZ2xl\nOnRydWUsc3RhdGU6dHJ1ZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAg\nICAgICAgICAgICAgICBcL1wvIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIGNhbGxiYWNr\nKG51bGwsbnVsbCx7dm9sdW1lOnRydWUsYnJpZ2h0bmVzczp0cnVlLHByb2dyZXNzOnRydWUsc3Bl\nZWQ6dHJ1ZSxzcGVlZHg0OnRydWUsc3BlZWR4NHNpbmdsZTp0cnVlLHN0YXRlOnRydWV9KTtcbiAg\nICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZm9yYmlkU2Nyb2xsTGlzdDpbXCJ0eHBf\nc2hhZG93XCIsXCJwbHVnaW5fY3RybF90eHBfc2hhZG93XCJdXG4gICAgfVxuXG59O1xuXG5cbnZh\nciBDdXN0b21pemVkVmlkZW9UQUcgPSB7XG4gICAgXCJ3d3cuYmlsaWJpbGkuY29tXCI6W1wiYndw\nLXZpZGVvXCJdXG59O1xuXG5cblxuZnVuY3Rpb24gc2Vla0dyYW5kUGFyZW50QnlDbGFzcyhjaGls\nZCxwYXJlbnRDbGFzcyl7XG4gICAgdmFyIHRlbXAgPSBjaGlsZDtcbiAgICB3aGlsZSh0ZW1wIT1u\ndWxsKXtcbiAgICAgICAgaWYodGVtcC5jbGFzc0xpc3QhPW51bGwgJiYgdGVtcC5jbGFzc0xpc3Qu\nY29udGFpbnMocGFyZW50Q2xhc3MpKXtcbiAgICAgICAgICAgIHJldHVybiB0ZW1wO1xuICAgICAg\nICB9XG4gICAgICAgIHRlbXAgPSB0ZW1wLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVy\nbiBudWxsO1xufVxuXG52YXIgZm9yYmlkU2Nyb2xsTGlzdD1bXTtcblxuVG91Y2hHZXN0dXJlLlZp\nZGVvR2VzdHVyZT1mdW5jdGlvbih2aWRlb0VsZW1lbnQpe1xuICAgIHRoaXMudG91Y2hEb3duUHQ9\nbnVsbDsgXC9cL+inpuaRuOaMieS4i+aXtuW+l+S9jee9rlxuICAgIHRoaXMudG91Y2hEb3duVGlt\nZSA9IDA7XG4gICAgdGhpcy50b3VjaFN0YXJ0UHQ9bnVsbDsgXC9cL+mhuuedgOS4gOWumuaWueWQ\nkea7keWKqOaXtuW5tuinpuWPkeWKn+iDve+8jOW8gOWni+iuoeeul+eahOeCuVxuICAgIFxuICAg\nIHRoaXMuc3dlZXBEaXI9MDsgXC9cLzA6bm8gc3dlZXAgMTp1cCAyOmRvd24gMzpsZWZ0IDQ6cmln\naHRcbiAgICB0aGlzLnN0YXJ0VG91Y2hWaWRlb1RpbWU7IFxuICAgIHRoaXMuc3RhcnRUb3VjaFZp\nZGVvVm9sdW1lO1xuICAgIHRoaXMudG91Y2hSZXN1bHQ9MDsgXC9cL+inpuaRuOe7k+aenOaaguWt\nmFxuICAgIHRoaXMuc3RhcnRUb3VjaEZpbmdlcnM9MDsgXC9cL+WcqOinpuWPkeWKn+iDveWJjein\npuaRuOeCueaVsFxuICAgIHRoaXMub3JpZ2luYWxQbGF5cmF0ZT0xOyBcL1wv6KeG6aKR5Y6f5pys\n55qE5pKt5pS+6YCf546HXG4gICAgXC9cL3RoaXMuYm9keVBvc2l0aW9uPVwiXCI7XG4gICAgdGhp\ncy52aWRlb0JyaWdodG5lc3M9MTtcbiAgICB0aGlzLnN0YXJ0VG91Y2hCcmlnaHRuZXNzPTE7XG4g\nICAgdGhpcy5sb25nVG91Y2g9ZmFsc2U7XG5cbiAgICB0aGlzLl92aWRlb1NyY1N0b3JlPW51bGw7\nXG4gICAgdGhpcy5fdmlkZW9FbGVtZW50PXZpZGVvRWxlbWVudDtcL1wv5a+56LGhdmlkZW\/moIfn\nrb5cbiAgICB0aGlzLl92aWRlb0VsZW1lbnRBYkxlZnQ9MDsgXC9cL3ZpZGVv5qCH562+55u45a+5\n6aG16Z2i55qEbGVmdFxuICAgIHRoaXMuX2VsZW1lbnRGcmFtZT1udWxsO1wvXC\/mloflrZfmmL7n\npLrnmoTmoYbmnrZcbiAgICB0aGlzLl90b2FzdFRleHQ9bnVsbDsgXC9cL+aWh+Wtl+aYvuekulxu\nICAgIHRoaXMuX3VubG9ja0J0biA9IG51bGw7IFwvXC\/op6PplIHmjInpkq5cbiAgICB0aGlzLl9z\nZXR0aW5nQnRuID0gbnVsbDsgXC9cLyDorr7nva7mjInpkq5cblxuICAgIHRoaXMuX2NvbnRhaW5F\nbGVtZW50PW51bGw7IFwvXC9fZWxlbWVudEZyYW1l55qE54i257qnXG4gICAgdGhpcy5fZXZlbnRM\naXN0ZW5FbGVtZW50PW51bGw7XC9cL+ebkeWQrOinpuaRuOWKqOS9nOeahOWFg+e0oFxuXG4gICAg\ndGhpcy5fb3B0aW9ucyA9IFRvdWNoR2VzdHVyZVNldHRpbmc7XG4gICAgdGhpcy5fY29udGV4dE1l\nbnVGdW5jID0gZG9jdW1lbnQub25jb250ZXh0bWVudTtcblxuICAgIHRoaXMuX2Z1bGxTY3JlZW5O\nb3c9dGdfSXNGdWxsc2NyZWVuKCk7XG4gICAgaWYodGhpcy5fdmlkZW9FbGVtZW50LnN0eWxlLmZp\nbHRlcj09XCJcIiB8fCB0aGlzLl92aWRlb0VsZW1lbnQuc3R5bGUuZmlsdGVyPT1udWxsKVxuICAg\nICAgICB0aGlzLl92aWRlb0VsZW1lbnQuc3R5bGUuZmlsdGVyID0gXCJicmlnaHRuZXNzKDEpXCI7\nXG4gICAgXC9cLyBjb25zb2xlLmxvZyhcIl9mdWxsU2NyZWVuTm93OlwiK3RoaXMuX2Z1bGxTY3Jl\nZW5Ob3cpO1xuXG4gICAgXC9cLyBjb25zb2xlLmxvZyhUb3VjaEdlc3R1cmVXaGl0ZUxpc3QpO1xu\nICAgIFwvXC8gY29uc29sZS5sb2coVG91Y2hHZXN0dXJlV2hpdGVMaXN0W1wid3d3LmJpbGliaWxp\nLmNvbVwiXSE9bnVsbCk7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICBzZWxmLmNyZWF0\nZURvbSgpO1xuICAgIHNlbGYuZmluZEJlc3RSb290KGZ1bmN0aW9uKHJvb3RfZWxlbWVudCxsaXN0\nZW5fZWxlbWVudCl7XG4gICAgICAgIHNlbGYuYXBwbHlEb20oKTsgIFxuICAgICAgICBcbiAgICAg\nICAgXC9cLyB2aWRlb+WGheWcsOWdgOabtOaUueaXtu+8jOmHjeaWsOiuvue9rumhtemdoijpkojl\nr7liaWxpYmlsaei\/nue7reaSreaUvilcbiAgICAgICAgc2VsZi5fdmlkZW9FbGVtZW50LmFkZEV2\nZW50TGlzdGVuZXIoJ3BsYXknLCBmdW5jdGlvbiAoKSB7IFwvXC\/mkq3mlL7lvIDlp4vmiafooYzn\nmoTlh73mlbBcbiAgICAgICAgICAgIGlmKHNlbGYuX3ZpZGVvU3JjU3RvcmUgPT0gbnVsbCl7XG4g\nICAgICAgICAgICAgICAgXC9cLyBhbGVydChcImZpcnN0IHBsYXlcIik7XG4gICAgICAgICAgICAg\nICAgc2VsZi5fdmlkZW9TcmNTdG9yZT1zZWxmLl92aWRlb0VsZW1lbnQuc3JjO1xuXG4gICAgICAg\nICAgICB9ZWxzZSBpZihzZWxmLl92aWRlb0VsZW1lbnQuc3JjIT1zZWxmLl92aWRlb1NyY1N0b3Jl\nKXtcbiAgICAgICAgICAgICAgICBcL1wvIGFsZXJ0KFwicmVwbGF5XCIpO1xuICAgICAgICAgICAg\nICAgIHNlbGYucmVzdG9yZURvbSgpO1xuICAgICAgICAgICAgICAgIHNlbGYuZmluZEJlc3RSb290\nKGZ1bmN0aW9uKHJvb3RfZWxlbWVudCxsaXN0ZW5fZWxlbWVudCl7XG4gICAgICAgICAgICAgICAg\nICAgIHNlbGYuYXBwbHlEb20oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAg\nICBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgICBcblxuXG5cbiAg\nICB0aGlzLl92aWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGxheScsIGZ1bmN0aW9uICgp\nIHtcbiAgICAgICAgc2VsZi5fc2V0dGluZ0J0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XG4g\nICAgfSk7XG5cbiAgICB0aGlzLl92aWRlb0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncGF1c2Un\nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNlbGYuX3NldHRpbmdCdG4uc3R5bGUuZGlzcGxheSA9\nIFwiYmxvY2tcIjtcbiAgICAgICAgc2VsZi5zZXRTZXR0aW5nQnRuTGF5b3V0KCk7XG4gICAgICAg\nIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2VsZi5fc2V0dGluZ0J0bi5zdHlsZS5k\naXNwbGF5ID0gXCJub25lXCI7XG4gICAgICAgIH0sIDMwMDApO1xuICAgIH0pO1xuXG59O1xuXG5c\nL1wvIOS6p+eUn+aYvuekuuWFg+e0oFxuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5\ncGUuY3JlYXRlRG9tPWZ1bmN0aW9uKHBhcmVudEVsZW1lbnQpe1xuXG4gICAgdmFyIHRvYXN0RGl2\nPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgdmFyIHRvYXN0VGV4dD1kb2N1\nbWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKTtcbiAgICB2YXIgdW5sb2NrQnRuID0gZG9jdW1l\nbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICB2YXIgc2V0dGluZ0J0biA9IGRvY3VtZW50\nLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cbiAgICB0b2FzdERpdi5hcHBlbmRDaGlsZCh0b2Fz\ndFRleHQpO1xuICAgIHRvYXN0RGl2LmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVfVG9hc3Rc\nIik7XG4gICAgdG9hc3RUZXh0LmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVfVG9hc3RUZXh0\nXCIpO1xuICAgIHVubG9ja0J0bi5jbGFzc0xpc3QuYWRkKFwiVG91Y2hHZXN0dXJlX0J0blwiKTtc\nbiAgICBzZXR0aW5nQnRuLmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVfQnRuXCIpO1xuICAg\nIFxuICAgIHRvYXN0RGl2LnN0eWxlLmRpc3BsYXk9XCJub25lXCI7XG4gICAgdW5sb2NrQnRuLnN0\neWxlLmRpc3BsYXk9XCJub25lXCI7XG4gICAgdW5sb2NrQnRuLnN0eWxlLnBvc2l0aW9uPVwiZml4\nZWRcIjtcbiAgICB1bmxvY2tCdG4uaW5uZXJIVE1MID0gXCImIzEyODI3NDtcIjtcblxuICAgIHNl\ndHRpbmdCdG4uc3R5bGUuZGlzcGxheSA9IFwibm9uZVwiO1xuICAgIHNldHRpbmdCdG4uc3R5bGUu\ncG9zaXRpb249XCJhYnNvbHV0ZVwiO1xuICAgIHNldHRpbmdCdG4uaW5uZXJIVE1MID0gXCImIzk4\nODE7XCI7XG4gICAgXG4gICAgdGhpcy5fZWxlbWVudEZyYW1lPXRvYXN0RGl2O1xuICAgIHRoaXMu\nX3RvYXN0VGV4dD10b2FzdFRleHQ7XG4gICAgdGhpcy5fdW5sb2NrQnRuID0gdW5sb2NrQnRuO1xu\nICAgIHRoaXMuX3NldHRpbmdCdG4gPSBzZXR0aW5nQnRuO1xuXG4gICAgdGhpcy5fZWxlbWVudEZy\nYW1lLmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVGb3JiaWRTY3JvbGxcIik7XG4gICAgdGhp\ncy5fdG9hc3RUZXh0LmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVGb3JiaWRTY3JvbGxcIik7\nXG4gICAgdGhpcy5fdW5sb2NrQnRuLmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVGb3JiaWRT\nY3JvbGxcIik7XG4gICAgdGhpcy5fc2V0dGluZ0J0bi5jbGFzc0xpc3QuYWRkKFwiVG91Y2hHZXN0\ndXJlRm9yYmlkU2Nyb2xsXCIpO1xuXG4gICAgdGhpcy5fdG91Y2hTdGFydEhhbmRsZXI9dGhpcy5v\nblRvdWNoU3RhcnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLl90b3VjaEVuZEhhbmRsZXI9dGhpcy5v\nblRvdWNoRW5kLmJpbmQodGhpcyk7XG4gICAgdGhpcy5fdG91Y2hNb3ZlSGFuZGxlcj10aGlzLm9u\nVG91Y2hNb3ZlLmJpbmQodGhpcyk7XG4gICAgdGhpcy5fd2luZG93UmVzaXplSGFuZGVsZXI9dGhp\ncy5mdWxsU2NyZWVuRGV0ZWN0LmJpbmQodGhpcyk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVu\nZXIoXCJyZXNpemVcIix0aGlzLl93aW5kb3dSZXNpemVIYW5kZWxlcixcImZhbHNlXCIpO1xuICAg\nIFwvXC8gdGhpcy5fb3JpZW50YXRpb25DaGFuZ2UgPSB0aGlzLm9uT3JpZW50YXRpb25DaGFuZ2U7\nXG4gICAgXC9cLyB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm9yaWVudGF0aW9uY2hhbmdlXCIs\ndGhpcy5fb3JpZW50YXRpb25DaGFuZ2UsXCJmYWxzZVwiKTtcblxuICAgIHZhciBzZWxmID0gdGhp\ncztcbiAgICB0aGlzLl91bmxvY2tCdG4ub25jbGljaz1mdW5jdGlvbihldmVudCl7XG4gICAgICAg\nIFwvXC8gY29uc29sZS5sb2coXCJ1bmxvY2sgY2FuY2VsXCIpO1xuICAgICAgICBzY3JlZW4ub3Jp\nZW50YXRpb24udW5sb2NrKCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAg\nIH07XG5cbiAgICB0aGlzLl9zZXR0aW5nQnRuLm9uY2xpY2s9ZnVuY3Rpb24oZXZlbnQpe1xuICAg\nICAgICBcL1wvIGFsZXJ0KFwic2V0dGluZyBjbGlja2VkXCIpO1xuICAgICAgICB2YXIgZG9tYWlu\nID0gd2luZG93LmxvY2F0aW9uLmhvc3Q7XG4gICAgICAgIHZhciB1cmwgPSBcImh0dHBzOlwvXC9o\nZXJvY2hhbnN5c3UuZ2l0bGFiLmlvXC90b3VjaGdlc3R1cmVzZXR0aW5nXC9pbmRleF92Mi5odG1s\nP3RhcmdldD1cIitkb21haW47XG4gICAgICAgIFwvXC8gdmFyIHVybCA9IFwiaHR0cDpcL1wvMTky\nLjE2OC4xLjMzOjg4NDhcL1RvdWNoR2VzdHVyZVNldHRpbmdcL2luZGV4X3YyLmh0bWw\/dGFyZ2V0\nPVwiK2RvbWFpbjtcbiAgICAgICAgXC9cLyB3aW5kb3cucGFyZW50Lm9wZW4odXJsKTtcbiAgICAg\nICAgIHdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICB9O1xuXG4gICAgdGhp\ncy5fdW5sb2NrQnRuLmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZnVuY3Rpb24o\nKXtcbiAgICAgICAgc2VsZi5fdW5sb2NrQnRuLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcbiAg\nICB9KTtcblxufTtcblxuXC9cLyDmib7liLDmmL7npLrlhYPntKDmnIDkvbPnmoRwYXJlbnTlj4rn\nm5HlkKzlhYPntKBcblRvdWNoR2VzdHVyZS5WaWRlb0dlc3R1cmUucHJvdG90eXBlLmZpbmRCZXN0\nUm9vdD1mdW5jdGlvbihjYWxsYmFjayl7XG4gICAgdmFyIHNlbGY9dGhpcztcbiAgICB2YXIgdGFy\nZ2V0RWxlbWVudD10aGlzLl92aWRlb0VsZW1lbnQ7XG4gICAgdmFyIGhvc3REb21haW49d2luZG93\nLmxvY2F0aW9uLmhvc3Q7XG4gICAgdmFyIGRlZmF1bHRTZXR0aW5nPVRvdWNoR2VzdHVyZVdoaXRl\nTGlzdFtob3N0RG9tYWluXTtcbiAgICB2YXIgZGVmYXVsdFNldHRpbmdTdWNjZXNzPWZhbHNlO1xu\nICAgIGlmKGRlZmF1bHRTZXR0aW5nIT1udWxsKXtcbiAgICAgICAgXC9cLyBjb25zb2xlLmxvZyhc\nImRlZmF1bHRTZXR0aW5nIT1udWxsXCIpO1xuICAgICAgICBkZWZhdWx0U2V0dGluZy5jb250YWlu\nZXIodGhpcy5fdmlkZW9FbGVtZW50LGZ1bmN0aW9uKHJvb3RfZWxlbWVudCxsaXN0ZW5fZWxlbWVu\ndCxvcHRpb25zKXtcbiAgICAgICAgICAgIGlmKHJvb3RfZWxlbWVudCE9bnVsbCYmbGlzdGVuX2Vs\nZW1lbnQhPW51bGwpe1xuICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRhaW5FbGVtZW50PXJvb3Rf\nZWxlbWVudDtcbiAgICAgICAgICAgICAgICBzZWxmLl9ldmVudExpc3RlbkVsZW1lbnQ9bGlzdGVu\nX2VsZW1lbnQ7XG4gICAgICAgICAgICAgICAgZGVmYXVsdFNldHRpbmdTdWNjZXNzID0gdHJ1ZTtc\nbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgc2VsZi5m\naW5kQmVzdFJvb3RCeVBhcmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYob3B0\naW9ucyE9bnVsbCl7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBrZXkgaW4gc2VsZi5fb3B0aW9u\ncyl7XG4gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnNba2V5XSA9IFRvdWNoR2VzdHVy\nZVNldHRpbmdba2V5XSAmJiBvcHRpb25zW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgY2FsbGJhY2soc2VsZi5fY29udGFpbkVsZW1lbnQsc2VsZi5f\nZXZlbnRMaXN0ZW5FbGVtZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG4gICAgZWxzZXtcbiAg\nICAgICAgc2VsZi5maW5kQmVzdFJvb3RCeVBhcmVudCgpO1xuICAgICAgICBjYWxsYmFjayhzZWxm\nLl9jb250YWluRWxlbWVudCxzZWxmLl9ldmVudExpc3RlbkVsZW1lbnQpO1xuICAgIH1cblxuICAg\nIFxuXG5cbn07XG5cblxuXG5Ub3VjaEdlc3R1cmUuVmlkZW9HZXN0dXJlLnByb3RvdHlwZS5maW5k\nQmVzdFJvb3RCeVBhcmVudD1mdW5jdGlvbigpe1xuICAgIHZhciBzZWxmPXRoaXM7XG4gICAgdmFy\nIHRhcmdldEVsZW1lbnQ9dGhpcy5fdmlkZW9FbGVtZW50O1xuICAgIHZhciBlbGVtZW50SW5GdWxs\nU2NyZWVuID0gZmFsc2U7XG4gICAgaWYoc2VsZi5fZnVsbFNjcmVlbk5vdyA9PSB0cnVlKXtcbiAg\nICAgICAgdmFyIHRlbXAgPSB0YXJnZXRFbGVtZW50O1xuICAgICAgICB3aGlsZSh0ZW1wICE9IG51\nbGwpe1xuICAgICAgICAgICAgaWYodGVtcCA9PSBkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCl7\nXG4gICAgICAgICAgICAgICAgZWxlbWVudEluRnVsbFNjcmVlbiA9IHRydWU7XG4gICAgICAgICAg\nICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcL1wvIGNvbnNvbGUubG9n\nKHRlbXApO1xuICAgICAgICAgICAgdGVtcCA9IHRlbXAucGFyZW50RWxlbWVudDtcbiAgICAgICAg\nfVxuICAgIH1cbiAgICBcL1wvIGNvbnNvbGUubG9nKFwidmlkZW8gaW4gZnVsbHNjZWVuXCIpO1xu\nICAgIFwvXC8gY29uc29sZS5sb2coZWxlbWVudEluRnVsbFNjcmVlbik7XG5cbiAgICBpZihlbGVt\nZW50SW5GdWxsU2NyZWVuPT1mYWxzZSl7XG4gICAgICAgIHRhcmdldEVsZW1lbnQ9dGFyZ2V0RWxl\nbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB2YXIgdG9wZXN0PWZhbHNlO1xuICAgICAgICB3\naGlsZSghdG9wZXN0KXtcbiAgICAgICAgICAgIFwvXC8gdGFyZ2V0RWxlbWVudC5jbGFzc0xpc3Qu\nYWRkKFwiVG91Y2hHZXN0dXJlRm9yYmlkU2Nyb2xsXCIpO1xuICAgICAgICAgICAgdmFyIHRlbXA9\ndGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgdmFyIHNpemUxPXRhcmdl\ndEVsZW1lbnQub2Zmc2V0V2lkdGgqdGFyZ2V0RWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAg\nICAgICB2YXIgc2l6ZTI9dGVtcC5vZmZzZXRXaWR0aCp0ZW1wLm9mZnNldEhlaWdodDtcbiAgICAg\nICAgICAgIGlmKHRlbXAub2Zmc2V0V2lkdGg+PXRhcmdldEVsZW1lbnQub2Zmc2V0V2lkdGgmJnRl\nbXAub2Zmc2V0SGVpZ2h0Pj10YXJnZXRFbGVtZW50Lm9mZnNldEhlaWdodCYmc2l6ZTJcL3NpemUx\nPD0xLjIpe1xuICAgICAgICAgICAgICAgIHRhcmdldEVsZW1lbnQ9dGVtcDtcbiAgICAgICAgICAg\nIH1lbHNle1xuICAgICAgICAgICAgICAgIHRvcGVzdD10cnVlO1xuICAgICAgICAgICAgfVxuICAg\nICAgICAgICAgaWYodGVtcC50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PVwiYm9keVwiKXtcbiAgICAg\nICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzZWxm\nLl9jb250YWluRWxlbWVudD10YXJnZXRFbGVtZW50O1xuICAgICAgICBzZWxmLl9ldmVudExpc3Rl\nbkVsZW1lbnQ9dGFyZ2V0RWxlbWVudDtcbiAgICB9ZWxzZXtcbiAgICAgICAgXC9cLyBhbGVydChc\nIkZVTExTQ1JFRU4hXCIpO1xuICAgICAgICBpZihkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCE9\nbnVsbCl7XG4gICAgICAgICAgICBzZWxmLl9jb250YWluRWxlbWVudD1kb2N1bWVudC5mdWxsc2Ny\nZWVuRWxlbWVudDtcbiAgICAgICAgICAgIHNlbGYuX2V2ZW50TGlzdGVuRWxlbWVudD1kb2N1bWVu\ndC5mdWxsc2NyZWVuRWxlbWVudDtcbiAgICAgICAgICAgIFwvXC8gXC9cLyBkZWxldGUgb3RoZXIg\ndG9hc3QgZm9yIG90aGVyIHZpZGVvIHVuZGVyIGZ1bGxzY3JlZW5cbiAgICAgICAgICAgIFwvXC8g\naWYoc2VsZi5fY29udGFpbkVsZW1lbnQhPW51bGwpe1xuICAgICAgICAgICAgXC9cLyAgICAgdmFy\nIHRvYXN0cyA9IHNlbGYuX2NvbnRhaW5FbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJU\nb3VjaEdlc3R1cmVfVG9hc3RcIik7XG4gICAgICAgICAgICBcL1wvICAgICB0b2FzdHMuZm9yRWFj\naCh0ID0+IHtcbiAgICAgICAgICAgIFwvXC8gICAgICAgICBzZWxmLl9jb250YWluRWxlbWVudC5y\nZW1vdmVDaGlsZCh0KTtcbiAgICAgICAgICAgIFwvXC8gICAgIH0pO1xuICAgICAgICAgICAgXC9c\nLyB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cL1wvIFRvdWNoR2VzdHVyZS5maW5kRnVsbFNjcmVl\nblJvb3Q9ZnVuY3Rpb24oKXtcblxuXC9cLyB9O1xuXG5Ub3VjaEdlc3R1cmUuVmlkZW9HZXN0dXJl\nLnByb3RvdHlwZS5zaW1Nb3VzZU1vdmVEb2NrPWZ1bmN0aW9uKCl7XG4gICAgaWYodGhpcy50b3Vj\naERvd25QdD09bnVsbClcbiAgICAgICAgcmV0dXJuO1xuICAgIHZhciBzZWxmPXRoaXM7XG4gICAg\ndmFyIGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ21vdXNlbW92ZScsIHtcbiAgICAgICAgdmlldzog\nZG9jdW1lbnQuZGVmYXVsdFZpZXcsXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNh\nbmNlbGFibGU6IGZhbHNlLFxuICAgICAgICBjbGllbnRYOnNlbGYuX3ZpZGVvRWxlbWVudC5jbGll\nbnRXaWR0aFwvMitNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMjApLFxuICAgICAgICBjbGllbnRZ\nOnNlbGYuX3ZpZGVvRWxlbWVudC5jbGllbnRIZWlnaHQqMS41XG4gICAgfSk7XG4gICAgc2VsZi5f\ndmlkZW9FbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4g\ne1xuICAgICAgICBzZWxmLnNpbU1vdXNlTW92ZURvY2soKTtcbiAgICB9LCAxMDAwKTtcbn07XG5c\nblxuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUuc2ltTW91c2VNb3ZlQ2VudGVy\nPWZ1bmN0aW9uKCl7XG4gICAgdmFyIHNlbGY9dGhpcztcbiAgICB2YXIgZXZlbnQgPSBuZXcgTW91\nc2VFdmVudCgnbW91c2Vtb3ZlJywge1xuICAgICAgICB2aWV3OiBkb2N1bWVudC5kZWZhdWx0Vmll\ndyxcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXG4g\nICAgICAgIGNsaWVudFg6c2VsZi5fdmlkZW9FbGVtZW50LmNsaWVudFdpZHRoXC8yLFxuICAgICAg\nICBjbGllbnRZOnNlbGYuX3ZpZGVvRWxlbWVudC5jbGllbnRIZWlnaHRcLzJcbiAgICB9KTtcbiAg\nICBzZWxmLl92aWRlb0VsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG59O1xuXG5cL1wvIOin\npuaRuOW8gOWni1xuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUub25Ub3VjaFN0\nYXJ0PWZ1bmN0aW9uKGUpe1xuICAgIGlmKHRoaXMuX3ZpZGVvRWxlbWVudC5zcmMubGVuZ3RoPD0y\nKXtcbiAgICAgICAgXC9cLyDop4bpopHnmoRzcmPplb\/luqblpKrkvY7vvIzop4bpopHln7rmnKzm\nl6DmlYjjgIJcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZih0aGlzLnN3ZWVwRGlyIT0w\nKXtcbiAgICAgICAgXC9cLyDlvZPmu5HliqjkuIDlrprot53nprvlkI7vvIzkuI3lho3lk43lupR0\nb3VjaGRvd25cbiAgICAgICAgaWYoZS50b3VjaGVzLmxlbmd0aCE9dGhpcy5zdGFydFRvdWNoRmlu\nZ2Vycyl7XG4gICAgICAgICAgICBcL1wvIOinpuaRuOeCueaVsOWPmOWMlu+8jOWPlua2iOW9k+WJ\njeeahOinpuaRuOe7k+aenFxuICAgICAgICAgICAgdGhpcy5jYW5jZWxUb3VjaCgpO1xuICAgICAg\nICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgXC9cLyB0aGlzLmZvcmJpZFNjcm9sbCgp\nO1xuICAgIFwvXC8gY29uc29sZS5sb2coZSk7XG4gICAgdGhpcy5zZXRFbGVtZW50TGF5b3V0KFRH\nVXNlclNldHRpbmcuZ2xvYmFsLmdTZWxlY3RUb2FzdFBvcyk7XG4gICAgXC9cLyBjb25zb2xlLmxv\nZyhlKTtcbiAgICB0aGlzLnN0YXJ0VG91Y2hGaW5nZXJzPWUudG91Y2hlcy5sZW5ndGg7XG4gICAg\naWYodGhpcy5zdGFydFRvdWNoRmluZ2Vycz4wKXtcbiAgICAgICAgdGhpcy5vcmlnaW5hbFBsYXly\nYXRlPXRoaXMuX3ZpZGVvRWxlbWVudC5wbGF5YmFja1JhdGU7XG4gICAgICAgIGlmKHRoaXMuc3Rh\ncnRUb3VjaEZpbmdlcnM9PTIpe1xuICAgICAgICAgICAgdmFyIGRpcz1NYXRoLnNxcnQoKGUudG91\nY2hlc1swXS5jbGllbnRYLWUudG91Y2hlc1sxXS5jbGllbnRYKSooZS50b3VjaGVzWzBdLmNsaWVu\ndFgtZS50b3VjaGVzWzFdLmNsaWVudFgpKyhlLnRvdWNoZXNbMF0uY2xpZW50WS1lLnRvdWNoZXNb\nMV0uY2xpZW50WSkqKGUudG91Y2hlc1swXS5jbGllbnRZLWUudG91Y2hlc1sxXS5jbGllbnRZKSk7\nXG4gICAgICAgICAgICB2YXIgbG9uZ3NpZGUgPSAoZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aD5k\nb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCk\/ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDpkb2N1\nbWVudC5ib2R5LmNsaWVudEhlaWdodDtcbiAgICAgICAgICAgIGlmKGRpcz5sb25nc2lkZVwvNCl7\nXG4gICAgICAgICAgICAgICAgXC9cLyDkuKTkuKrop6bmkbjliLDnm7jpmpTlpKrov5zvvIzlj5bm\ntojop6bmkbjnu5PmnpxcbiAgICAgICAgICAgICAgICB0aGlzLnRvdWNoRG93blB0PW51bGw7XG4g\nICAgICAgICAgICAgICAgdGhpcy5zdGFydFRvdWNoRmluZ2Vycz0wO1xuICAgICAgICAgICAgICAg\nIHRoaXMuY2FuY2VsVG91Y2goKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAg\nICB9ZWxzZXtcbiAgICAgICAgICAgICAgICBcL1wvIOiusOW9leWOn+acrOeahOaSreaUvumAn+eO\nh++8jOW5tuS4lDTlgI3pgJ\/mkq3mlL5cbiAgICAgICAgICAgICAgICB0aGlzLnNldEVsZW1lbnRM\nYXlvdXQoXCJ0b3BcIik7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5fb3B0aW9ucy5zcGVlZHg0\nPT10cnVlKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmlkZW9FbGVtZW50LnBsYXliYWNr\nUmF0ZT00LjA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VG9hc3QoJzTlgI3pgJ\/mkq3m\nlL48Yj4+Pj48XC9iPicpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90b2FzdFRleHQuY2xh\nc3NMaXN0LmFkZChcInRvYXN0X2JsaW5rXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKHRoaXMuc3RhcnRUb3VjaEZpbmdlcnM9\nPTEpe1xuICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgICAgICAgICAgaWYodGhpcy5f\nb3B0aW9ucy5zcGVlZHg0PT10cnVlICYmIHRoaXMuX29wdGlvbnMuc3BlZWR4NHNpbmdsZT09dHJ1\nZSl7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAg\nICAgIHZhciBkdCA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBlbGlwc2Ug\nPSBkdC5nZXRUaW1lKCkgLSBzZWxmLnRvdWNoRG93blRpbWU7XG4gICAgICAgICAgICAgICAgICAg\nIGlmKGVsaXBzZSA+IDQwMCAmJiBzZWxmLnRvdWNoRG93blB0ICE9IG51bGwgJiYgc2VsZi5zd2Vl\ncERpcj09MCAmJiBzZWxmLnN0YXJ0VG91Y2hGaW5nZXJzPT0xKXtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHNlbGYuc2V0RWxlbWVudExheW91dChcInRvcFwiKTtcbiAgICAgICAgICAgICAgICAg\nICAgICAgIHNlbGYuX3ZpZGVvRWxlbWVudC5wbGF5YmFja1JhdGU9NC4wO1xuICAgICAgICAgICAg\nICAgICAgICAgICAgc2VsZi5zZXRUb2FzdCgnNOWAjemAn+aSreaUvjxiPj4+PjxcL2I+Jyk7XG4g\nICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90b2FzdFRleHQuY2xhc3NMaXN0LmFkZChcInRv\nYXN0X2JsaW5rXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgXC9cLyBkb2N1bWVudC5hZGRF\ndmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsdGdQcmV2ZW50RGVmYXVsdCk7XG4gICAgICAgICAg\nICAgICAgICAgICAgICBzZWxmLl9jb250ZXh0TWVudUZ1bmMgPSBkb2N1bWVudC5vbmNvbnRleHRt\nZW51O1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQub25jb250ZXh0bWVudSA9IGZ1\nbmN0aW9uKCl7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBmYWxzZTt9XG4gICAgICAgICAgICAg\nICAgICAgICAgICBzZWxmLnN3ZWVwRGlyPS0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAg\nICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgIH1lbHNlIGlmKHRoaXMuX29wdGlvbnMu\nc3RhdGU9PXRydWUpe1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAg\nICAgICAgICAgICAgICB2YXIgZHQgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB2\nYXIgZWxpcHNlID0gZHQuZ2V0VGltZSgpIC0gc2VsZi50b3VjaERvd25UaW1lO1xuICAgICAgICAg\nICAgICAgICAgICBpZihlbGlwc2UgPiA0MDAgJiYgc2VsZi50b3VjaERvd25QdCAhPSBudWxsICYm\nIHNlbGYudG91Y2hSZXN1bHQ9PTAgJiYgc2VsZi5zdGFydFRvdWNoRmluZ2Vycz09MSl7XG4gICAg\nICAgICAgICAgICAgICAgICAgICB2YXIgc3RyID0gc2Vjb25kczJUaW1lU3RyKE1hdGguZmxvb3Io\nc2VsZi5fdmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKSkgKyBcIiBcLyBcIiArIHNlY29uZHMyVGlt\nZVN0cihNYXRoLmZsb29yKHNlbGYuX3ZpZGVvRWxlbWVudC5kdXJhdGlvbikpO1xuICAgICAgICAg\nICAgICAgICAgICAgICAgc2VsZi5zZXRUb2FzdChzdHIpO1xuICAgICAgICAgICAgICAgICAgICAg\nICAgc2VsZi5zaW1Nb3VzZU1vdmVEb2NrKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxm\nLmxvbmdUb3VjaD10cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAg\nICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICAgICAgfVxuICAgICAg\nICB9XG4gICAgICAgIHRoaXMudG91Y2hEb3duUHQ9ZS50b3VjaGVzWzBdO1xuICAgICAgICB2YXIg\nZHQgPSBuZXcgRGF0ZSgpO1xuICAgICAgICB0aGlzLnRvdWNoRG93blRpbWUgPSBkdC5nZXRUaW1l\nKCk7XG4gICAgICAgIHZhciB0b3IgPSB3aW5kb3cuc2NyZWVuLmhlaWdodFwvMTA7XG4gICAgICAg\nIGlmKFRvdWNoR2VzdHVyZS5pc21vYmlsZSA9PSB0cnVlICYmIHRoaXMuX2Z1bGxTY3JlZW5Ob3cg\nPT0gdHJ1ZSAmJiAodGhpcy50b3VjaERvd25QdC5wYWdlWSA8IHRvciB8fCB0aGlzLnRvdWNoRG93\nblB0LnBhZ2VZID4gd2luZG93LnNjcmVlbi5oZWlnaHQtdG9yKSl7XG4gICAgICAgICAgICB0aGlz\nLmNhbmNlbFRvdWNoKCk7IFwvXC8g56e75Yqo56uv6L6557yY5LiK5ruR44CB5LiL5ruR5Yik5a6a\nXG4gICAgICAgIH1cblxuICAgICAgICB2YXIgYWJsZWZ0PXRoaXMuX3ZpZGVvRWxlbWVudC5vZmZz\nZXRMZWZ0O1xuICAgICAgICB2YXIgdGVtcD10aGlzLl92aWRlb0VsZW1lbnQub2Zmc2V0UGFyZW50\nO1xuICAgICAgICB3aGlsZSh0ZW1wIT1udWxsKXtcbiAgICAgICAgICAgIGFibGVmdCs9dGVtcC5v\nZmZzZXRMZWZ0O1xuICAgICAgICAgICAgdGVtcD10ZW1wLm9mZnNldFBhcmVudDtcbiAgICAgICAg\nfVxuICAgICAgICB0aGlzLl92aWRlb0VsZW1lbnRBYkxlZnQ9YWJsZWZ0O1xuICAgICAgICBcL1wv\nIGNvbnNvbGUubG9nKFwiYWJsZWZ0OlwiK2FibGVmdCk7XG4gICAgXG4gICAgfWVsc2V7XG4gICAg\nICAgIHRoaXMuY2FuY2VsVG91Y2goKTtcbiAgICB9XG59O1xuXG5Ub3VjaEdlc3R1cmUuVmlkZW9H\nZXN0dXJlLnByb3RvdHlwZS5vblRvdWNoTW92ZT1mdW5jdGlvbihlKXtcbiAgICBcL1wvIGNvbnNv\nbGUubG9nKGUpO1xuICAgIHZhciB2aWRlb0VsZW1lbnQ9dGhpcy5fdmlkZW9FbGVtZW50O1xuICAg\nIGlmKHRoaXMudG91Y2hEb3duUHQ9PW51bGwpXG4gICAgICAgIHJldHVybjtcbiAgICBcL1wvIGlm\nKGUudG91Y2hlcy5sZW5ndGghPXRoaXMuc3RhcnRUb3VjaEZpbmdlcnMpe1xuICAgIFwvXC8gICAg\nIHRoaXMuY2FuY2VsVG91Y2goKTtcbiAgICBcL1wvICAgICByZXR1cm47XG4gICAgXC9cLyB9XG4g\nICAgaWYodGhpcy5zdGFydFRvdWNoRmluZ2Vycz09MSl7XG4gICAgICAgIFwvXC8g5Y2V5Liq5omL\n5oyH6Kem5pG4XG4gICAgICAgIHZhciB0b3VjaFB0PWUudG91Y2hlc1swXTtcbiAgICAgICAgZGVs\nWD10b3VjaFB0LmNsaWVudFgtdGhpcy50b3VjaERvd25QdC5jbGllbnRYO1xuICAgICAgICBkZWxZ\nPXRvdWNoUHQuY2xpZW50WS10aGlzLnRvdWNoRG93blB0LmNsaWVudFk7XG4gICAgICAgIGlmKHRo\naXMuc3dlZXBEaXI9PTApe1xuICAgICAgICAgICAgdmFyIHJhZGl1cz1NYXRoLnNxcnQoZGVsWCpk\nZWxYK2RlbFkqZGVsWSk7XG4gICAgICAgICAgICB2YXIgdz12aWRlb0VsZW1lbnQub2Zmc2V0V2lk\ndGgsaD12aWRlb0VsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgdmFyIGp1ZGdlPU1h\ndGguc3FydCh3KncraCpoKVwvMzA7XG4gICAgICAgICAgICBpZihyYWRpdXM+anVkZ2Upe1xuICAg\nICAgICAgICAgICAgIGlmKE1hdGguYWJzKGRlbFgpPk1hdGguYWJzKGRlbFkpKXtcbiAgICAgICAg\nICAgICAgICAgICAgaWYoZGVsWD4wKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zd2Vl\ncERpcj00O1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAg\nICB0aGlzLnN3ZWVwRGlyPTM7XG4gICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAg\nICAgICAgIGlmKGRlbFk+MClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3dlZXBEaXI9\nMjtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhp\ncy5zd2VlcERpcj0xO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwvXC8g\nY29uc29sZS5sb2coXCJnZXQgc3dlZXAgZGlyOlwiK3RoaXMuc3dlZXBEaXIpO1xuICAgICAgICAg\nICAgICAgIHRoaXMuc3RhcnRUb3VjaFZpZGVvVGltZT1NYXRoLmZsb29yKHZpZGVvRWxlbWVudC5j\ndXJyZW50VGltZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRvdWNoVmlkZW9Wb2x1bWU9\ndmlkZW9FbGVtZW50LnZvbHVtZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VG91Y2hCcmln\naHRuZXNzPXRoaXMudmlkZW9CcmlnaHRuZXNzO1xuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hT\ndGFydFB0PXRvdWNoUHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1lbHNlIGlmKHRoaXMuX29w\ndGlvbnMucHJvZ3Jlc3M9PXRydWUgJiYgKHRoaXMuc3dlZXBEaXI9PTN8fHRoaXMuc3dlZXBEaXI9\nPTQpKXtcbiAgICAgICAgICAgIGRlbFg9dG91Y2hQdC5jbGllbnRYLXRoaXMudG91Y2hTdGFydFB0\nLmNsaWVudFg7XG4gICAgICAgICAgICB2YXIgZGVsWFJhdGlvPWRlbFhcL3ZpZGVvRWxlbWVudC5v\nZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIFwvXC8gY29uc29sZS5sb2coZGVsWFJhdGlvKTtcbiAg\nICAgICAgICAgIHZhciBkdXJhdGlvbiA9IHRoaXMuX3ZpZGVvRWxlbWVudC5kdXJhdGlvbjtcbiAg\nICAgICAgICAgIGlmKGlzTmFOKGR1cmF0aW9uKT09dHJ1ZSl7XG4gICAgICAgICAgICAgICAgZHVy\nYXRpb24gPSAxODAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYoTWF0aC5hYnMoZGVs\nWFJhdGlvKTwwLjUpe1xuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hSZXN1bHQ9TWF0aC5mbG9v\ncihkZWxYUmF0aW8qMjQwKTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgIGlm\nKGRlbFhSYXRpbz4wKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdWNoUmVzdWx0PU1hdGgu\nZmxvb3IoKE1hdGgucG93KDEwMDAwLGRlbFhSYXRpby0wLjUpLTEpXC81MCpkdXJhdGlvbitkZWxY\nUmF0aW8qMjQwKTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHRo\naXMudG91Y2hSZXN1bHQ9TWF0aC5mbG9vcigtKE1hdGgucG93KDEwMDAwLC1kZWxYUmF0aW8tMC41\nKS0xKVwvNTAqZHVyYXRpb24rZGVsWFJhdGlvKjI0MCk7XG4gICAgICAgICAgICAgICAgXC9cL3Ro\naXMudG91Y2hSZXN1bHQ9TWF0aC5mbG9vcihNYXRoLnBvdygyKmRlbFhcL3ZpZGVvRWxlbWVudC5v\nZmZzZXRXaWR0aCwzKSoxMjApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYodGhpcy50\nb3VjaFJlc3VsdCt0aGlzLnN0YXJ0VG91Y2hWaWRlb1RpbWU8MClcbiAgICAgICAgICAgICAgICB0\naGlzLnRvdWNoUmVzdWx0PS10aGlzLnN0YXJ0VG91Y2hWaWRlb1RpbWU7XG4gICAgICAgICAgICBp\nZih0aGlzLnRvdWNoUmVzdWx0K3RoaXMuc3RhcnRUb3VjaFZpZGVvVGltZT52aWRlb0VsZW1lbnQu\nZHVyYXRpb24pe1xuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hSZXN1bHQ9TWF0aC5mbG9vcih2\naWRlb0VsZW1lbnQuZHVyYXRpb24tdGhpcy5zdGFydFRvdWNoVmlkZW9UaW1lKS0xO1xuICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgaWYoICh0aGlzLnN3ZWVwRGlyPT0zJiZ0aGlzLnRvdWNoUmVz\ndWx0PjApfHwodGhpcy5zd2VlcERpcj09NCYmdGhpcy50b3VjaFJlc3VsdDwwKSl7XG4gICAgICAg\nICAgICAgICAgdGhpcy50b3VjaFJlc3VsdD0wO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAg\ndmFyIG9mZnNldFZhbFN0cjtcbiAgICAgICAgICAgIGlmKE1hdGguYWJzKHRoaXMudG91Y2hSZXN1\nbHQpPDYwKVxuICAgICAgICAgICAgICAgIG9mZnNldFZhbFN0cj10aGlzLnRvdWNoUmVzdWx0K1wi\nc1wiO1xuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnRvdWNoUmVz\ndWx0PjApe1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VjID0gdGhpcy50b3VjaFJlc3VsdCU2\nMDtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VmFsU3RyPU1hdGguZmxvb3IodGhpcy50b3Vj\naFJlc3VsdFwvNjApK1wiOlwiKyhzZWMgPCAxMD8gJzAnICsgc2VjIDogc2VjKTtcbiAgICAgICAg\nICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgdmFy\nIHNlYyA9ICgtdGhpcy50b3VjaFJlc3VsdCklNjA7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNl\ndFZhbFN0cj1cIi1cIitNYXRoLmZsb29yKC10aGlzLnRvdWNoUmVzdWx0XC82MCkrXCI6XCIrKHNl\nYyA8IDEwPyAnMCcgKyBzZWMgOiBzZWMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgIFwvXC8gaWYodGhpcy50b3VjaFJlc3VsdD09SW5maW5pdHkpe1xuICAg\nICAgICAgICAgXC9cLyAgICAgdGhpcy5fZWxlbWVudEZyYW1lLnN0eWxlLmRpc3BsYXk9XCJub25l\nXCI7XG4gICAgICAgICAgICBcL1wvIH1cbiAgICAgICAgICAgIGlmKHRoaXMudG91Y2hSZXN1bHQ+\nMClcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRvYXN0KHNlY29uZHMyVGltZVN0cih0aGlzLnN0\nYXJ0VG91Y2hWaWRlb1RpbWUpK1wiICtcIitvZmZzZXRWYWxTdHIpO1xuICAgICAgICAgICAgZWxz\nZVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0VG9hc3Qoc2Vjb25kczJUaW1lU3RyKHRoaXMuc3Rh\ncnRUb3VjaFZpZGVvVGltZSkrXCIgXCIrb2Zmc2V0VmFsU3RyKTtcbiAgICAgICAgICAgIFwvXC8g\nY29uc29sZS5sb2codmlkZW9FbGVtZW50KTtcbiAgICAgICAgfWVsc2UgaWYodGhpcy5zd2VlcERp\ncj09MXx8dGhpcy5zd2VlcERpcj09Mil7XG4gICAgICAgICAgICBpZih0aGlzLnRvdWNoU3RhcnRQ\ndC5jbGllbnRYLXRoaXMuX3ZpZGVvRWxlbWVudEFiTGVmdDx0aGlzLl92aWRlb0VsZW1lbnQuY2xp\nZW50V2lkdGhcLzIpe1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuX29wdGlvbnMuYnJpZ2h0bmVz\ncz09dHJ1ZSl7XG4gICAgICAgICAgICAgICAgICAgIGRlbFk9dG91Y2hQdC5jbGllbnRZLXRoaXMu\ndG91Y2hTdGFydFB0LmNsaWVudFk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwbHVzPS1kZWxZ\nXC92aWRlb0VsZW1lbnQub2Zmc2V0SGVpZ2h0KjQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMu\ndG91Y2hSZXN1bHQ9dGhpcy5zdGFydFRvdWNoQnJpZ2h0bmVzcytwbHVzO1xuICAgICAgICAgICAg\nICAgICAgICBpZih0aGlzLnRvdWNoUmVzdWx0PDApIHRoaXMudG91Y2hSZXN1bHQ9MDtcbiAgICAg\nICAgICAgICAgICAgICAgZWxzZSBpZih0aGlzLnRvdWNoUmVzdWx0PjEpIHRoaXMudG91Y2hSZXN1\nbHQ9MTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWRlb0JyaWdodG5lc3M9dGhpcy50b3Vj\naFJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlYWxCcmlnaHRuZXNzPU1hdGguc3Fy\ndCh0aGlzLnRvdWNoUmVzdWx0KSowLjg1KzAuMTU7XG4gICAgICAgICAgICAgICAgICAgIHZpZGVv\nRWxlbWVudC5zdHlsZS5maWx0ZXI9XCJicmlnaHRuZXNzKFwiK3JlYWxCcmlnaHRuZXNzK1wiKVwi\nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRvYXN0KFwiJiN4MjYwMDsmbmJzcDtcIitN\nYXRoLmZsb29yKHRoaXMudG91Y2hSZXN1bHQqMTAwKStcIiVcIik7XG4gICAgICAgICAgICAgICAg\nfVxuICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5fb3B0aW9ucy52\nb2x1bWU9PXRydWUpe1xuICAgICAgICAgICAgICAgICAgICBkZWxZPXRvdWNoUHQuY2xpZW50WS10\naGlzLnRvdWNoU3RhcnRQdC5jbGllbnRZO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGx1cz0t\nZGVsWVwvdmlkZW9FbGVtZW50Lm9mZnNldEhlaWdodCo0O1xuICAgICAgICAgICAgICAgICAgICB0\naGlzLnRvdWNoUmVzdWx0PXRoaXMuc3RhcnRUb3VjaFZpZGVvVm9sdW1lK3BsdXM7XG4gICAgICAg\nICAgICAgICAgICAgIGlmKHRoaXMudG91Y2hSZXN1bHQ8MCkgdGhpcy50b3VjaFJlc3VsdD0wO1xu\nICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHRoaXMudG91Y2hSZXN1bHQ+MSkgdGhpcy50b3Vj\naFJlc3VsdD0xO1xuICAgICAgICAgICAgICAgICAgICB2aWRlb0VsZW1lbnQudm9sdW1lID10aGlz\nLnRvdWNoUmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICBcL1wvIGlmKHZpZGVvRWxlbWVudC52\nb2x1bWUhPTApXG4gICAgICAgICAgICAgICAgICAgIFwvXC8gICAgdmlkZW9FbGVtZW50Lm11dGVk\nPWZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFRvYXN0KFwiJiN4MjY2YjsmbmJz\ncDtcIitNYXRoLmZsb29yKHRoaXMudG91Y2hSZXN1bHQqMTAwKStcIiVcIik7XG4gICAgICAgICAg\nICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgXC9cL2NvbnNvbGUu\nbG9nKFwiZGVseDpcIitkZWxYKTtcbiAgICB9ZWxzZSBpZih0aGlzLnN0YXJ0VG91Y2hGaW5nZXJz\nPT0yKXtcbiAgICAgICAgXC9cLyAy5Liq5omL5oyH6Kem5pG4XG4gICAgICAgIHZhciB0b3VjaFB0\nPWUudG91Y2hlc1swXTtcbiAgICAgICAgZGVsWD10b3VjaFB0LmNsaWVudFgtdGhpcy50b3VjaERv\nd25QdC5jbGllbnRYO1xuICAgICAgICBkZWxZPXRvdWNoUHQuY2xpZW50WS10aGlzLnRvdWNoRG93\nblB0LmNsaWVudFk7XG4gICAgICAgIGlmKHRoaXMuc3dlZXBEaXI9PTApe1xuICAgICAgICAgICAg\ndmFyIHJhZGl1cz1NYXRoLnNxcnQoZGVsWCpkZWxYK2RlbFkqZGVsWSk7XG4gICAgICAgICAgICB2\nYXIgdz12aWRlb0VsZW1lbnQub2Zmc2V0V2lkdGgsaD12aWRlb0VsZW1lbnQub2Zmc2V0SGVpZ2h0\nO1xuICAgICAgICAgICAgdmFyIGp1ZGdlPU1hdGguc3FydCh3KncraCpoKVwvMzA7XG4gICAgICAg\nICAgICBpZihyYWRpdXM+anVkZ2Upe1xuICAgICAgICAgICAgICAgIGlmKE1hdGguYWJzKGRlbFgp\nPk1hdGguYWJzKGRlbFkpKXtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmlkZW9FbGVtZW50\nLnBsYXliYWNrUmF0ZT10aGlzLm9yaWdpbmFsUGxheXJhdGU7XG4gICAgICAgICAgICAgICAgICAg\nIGlmKGRlbFg+MClcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3dlZXBEaXI9NDtcbiAg\nICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zd2Vl\ncERpcj0zO1xuICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICBpZihk\nZWxZPjApXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN3ZWVwRGlyPTI7XG4gICAgICAg\nICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3dlZXBEaXI9\nMTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcL1wvIGNvbnNvbGUubG9n\nKFwiZ2V0IHN3ZWVwIGRpcjpcIit0aGlzLnN3ZWVwRGlyKTtcbiAgICAgICAgICAgICAgICB0aGlz\nLnRvdWNoU3RhcnRQdD10b3VjaFB0O1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxu\nICAgICAgICB9ZWxzZSBpZih0aGlzLnN3ZWVwRGlyPT0zfHx0aGlzLnN3ZWVwRGlyPT00KXtcbiAg\nICAgICAgICAgIGlmKHRoaXMuX29wdGlvbnMuc3BlZWQ9PXRydWUpe1xuICAgICAgICAgICAgICAg\nIGRlbFg9dG91Y2hQdC5jbGllbnRYLXRoaXMudG91Y2hTdGFydFB0LmNsaWVudFg7XG4gICAgICAg\nICAgICAgICAgdGhpcy50b3VjaFJlc3VsdD10aGlzLm9yaWdpbmFsUGxheXJhdGUrTWF0aC5mbG9v\ncigoZGVsWFwvdmlkZW9FbGVtZW50Lm9mZnNldFdpZHRoKSoxMCkqMC4yNTtcbiAgICAgICAgICAg\nICAgICBpZih0aGlzLnRvdWNoUmVzdWx0PjQpIHRoaXMudG91Y2hSZXN1bHQ9NDtcbiAgICAgICAg\nICAgICAgICBpZih0aGlzLnRvdWNoUmVzdWx0PDAuMjUpIHRoaXMudG91Y2hSZXN1bHQ9MC4yNTtc\nbiAgICAgICAgICAgICAgICB0aGlzLnNldFRvYXN0KFwi5YCN6YCfWCBcIit0aGlzLnRvdWNoUmVz\ndWx0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn07XG5cblxuVG91Y2hHZXN0\ndXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUub25Ub3VjaEVuZD1mdW5jdGlvbihlKXtcbiAgICB2\nYXIgdmlkZW9FbGVtZW50PXRoaXMuX3ZpZGVvRWxlbWVudDtcbiAgICB0aGlzLnRvdWNoRG93blB0\nPW51bGw7XG4gICAgaWYodGhpcy50b3VjaFJlc3VsdCE9MCl7XG4gICAgICAgIGlmKHRoaXMuc3Rh\ncnRUb3VjaEZpbmdlcnM9PTEpe1xuICAgICAgICAgICAgaWYodGhpcy5zd2VlcERpcj09M3x8dGhp\ncy5zd2VlcERpcj09NCl7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5fb3B0aW9ucy5wcm9ncmVz\ncz09dHJ1ZSl7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXM9dGhpcy5zdGFydFRvdWNoVmlk\nZW9UaW1lK3RoaXMudG91Y2hSZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgIFwvXC8gY29uc29s\nZS5sb2codmlkZW9FbGVtZW50LmN1cnJlbnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgXC9c\nLyBjb25zb2xlLmxvZyhcInRvdWNoIGVuZDpcIityZXMpO1xuICAgICAgICAgICAgICAgICAgICB2\naWRlb0VsZW1lbnQuY3VycmVudFRpbWU9cmVzO1xuICAgICAgICAgICAgICAgICAgICBcL1wvIHRo\naXMuaGlkZVRvYXN0KCk7XG4gICAgICAgICAgICAgICAgICAgIFwvXC8gdmlkZW9FbGVtZW50LnBs\nYXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9ZWxzZSBpZih0aGlzLnN3ZWVw\nRGlyPT0xfHx0aGlzLnN3ZWVwRGlyPT0yKXtcbiAgICAgICAgICAgICAgICBcL1wvIHRoaXMuaGlk\nZVRvYXN0KCk7XG4gICAgICAgICAgICAgICAgXC9cLyB2aWRlb0VsZW1lbnQucGxheSgpO1xuICAg\nICAgICAgICAgfVxuICAgICAgICB9ZWxzZSBpZih0aGlzLnN0YXJ0VG91Y2hGaW5nZXJzPT0yKXtc\nbiAgICAgICAgICAgIGlmKHRoaXMuc3dlZXBEaXI9PTN8fHRoaXMuc3dlZXBEaXI9PTQpe1xuICAg\nICAgICAgICAgICAgIGlmKHRoaXMuX29wdGlvbnMuc3BlZWQ9PXRydWUpe1xuICAgICAgICAgICAg\nICAgICAgICB0aGlzLl92aWRlb0VsZW1lbnQucGxheWJhY2tSYXRlPXRoaXMudG91Y2hSZXN1bHQ7\nXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luYWxQbGF5cmF0ZT10aGlzLnRvdWNoUmVz\ndWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1l\nbHNle1xuXG4gICAgfVxuICAgIHRoaXMuc3dlZXBEaXI9MDtcbiAgICB0aGlzLnRvdWNoUmVzdWx0\nPTA7XG4gICAgdGhpcy5fdmlkZW9FbGVtZW50LnBsYXliYWNrUmF0ZT10aGlzLm9yaWdpbmFsUGxh\neXJhdGU7XG4gICAgdGhpcy5oaWRlVG9hc3QoKTtcbiAgICBpZih0aGlzLmxvbmdUb3VjaD09dHJ1\nZSlcbiAgICAgICAgdGhpcy5zaW1Nb3VzZU1vdmVDZW50ZXIoKTtcbiAgICB0aGlzLmxvbmdUb3Vj\naD1mYWxzZTtcbiAgICBpZih0aGlzLl9vcHRpb25zLnNwZWVkeDQ9PXRydWUgJiYgdGhpcy5fb3B0\naW9ucy5zcGVlZHg0c2luZ2xlPT10cnVlKVxuICAgICAgICBkb2N1bWVudC5vbmNvbnRleHRtZW51\nID0gdGhpcy5fY29udGV4dE1lbnVGdW5jO1xuXG4gICAgXC9cLyB0aGlzLmNhbmNlbFRvdWNoKCk7\nXG5cbiAgICBcL1wvIHRoaXMucGVybWl0Y3JvbGwoKTtcbn07XG5cblwvXC8g5ZCv5Yqo55uR5ZCs\nXG5Ub3VjaEdlc3R1cmUuVmlkZW9HZXN0dXJlLnByb3RvdHlwZS5hcHBseURvbT1mdW5jdGlvbih2\naWRlb0VsZW1lbnQpe1xuICAgIHRoaXMuX2NvbnRhaW5FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMu\nX3NldHRpbmdCdG4pO1xuICAgIHZhciBob3N0RG9tYWluPXdpbmRvdy5sb2NhdGlvbi5ob3N0O1xu\nICAgIGlmKFRHVXNlclNldHRpbmcud2Vic2l0ZVtob3N0RG9tYWluXSE9bnVsbCAmJiBUR1VzZXJT\nZXR0aW5nLndlYnNpdGVbaG9zdERvbWFpbl1bXCJ3U3dpdGNoRW5hYmxlXCJdPT1mYWxzZSl7IFwv\nXC\/nlKjmiLforr7nva7or6XnvZHnq5nkuIrkuI3lj6\/nlKjvvIzkuI3nm5HlkKzmiYvlir9cbiAg\nICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jb250YWluRWxlbWVudC5hcHBlbmRDaGls\nZCh0aGlzLl9lbGVtZW50RnJhbWUpO1xuICAgIHRoaXMuX2NvbnRhaW5FbGVtZW50LmFwcGVuZENo\naWxkKHRoaXMuX3VubG9ja0J0bik7XG5cbiAgICB2YXIgdGVtcD10aGlzLl92aWRlb0VsZW1lbnQ7\nXG4gICAgd2hpbGUodGVtcCE9dGhpcy5fZXZlbnRMaXN0ZW5FbGVtZW50ICYmIHRlbXAhPW51bGwp\ne1xuICAgICAgICAgICAgaWYodGVtcC5jbGFzc0xpc3QhPW51bGwpXG4gICAgICAgICAgICB0ZW1w\nLmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVGb3JiaWRTY3JvbGxcIik7XG4gICAgICAgICAg\nICB0ZW1wPXRlbXAucGFyZW50RWxlbWVudDtcbiAgICB9XG4gICAgdGhpcy5fZXZlbnRMaXN0ZW5F\nbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJUb3VjaEdlc3R1cmVGb3JiaWRTY3JvbGxcIik7XG5cbiAg\nICB0aGlzLl9ldmVudExpc3RlbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRc\nIix0aGlzLl90b3VjaFN0YXJ0SGFuZGxlcixmYWxzZSk7XG4gICAgdGhpcy5fZXZlbnRMaXN0ZW5F\nbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLHRoaXMuX3RvdWNoRW5kSGFuZGxl\ncixmYWxzZSk7XG4gICAgdGhpcy5fZXZlbnRMaXN0ZW5FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIo\nXCJ0b3VjaG1vdmVcIix0aGlzLl90b3VjaE1vdmVIYW5kbGVyLGZhbHNlKTtcblxuXG59O1xuXG5c\nL1wvIFJlc2l6ZeaXtuaBouWkjeWFg+e0oOWOn+agt++8jOWPlua2iOS6i+S7tuebkeWQrFxuVG91\nY2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUucmVzdG9yZURvbT1mdW5jdGlvbigpe1xu\nICAgIGlmKHRoaXMuX2NvbnRhaW5FbGVtZW50IT1udWxsKXtcbiAgICAgICAgdGhpcy5fY29udGFp\nbkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudEZyYW1lKTtcbiAgICAgICAgXC9cLyB0\naGlzLl9jb250YWluRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50RnJhbWUpO1xuICAg\nIH1cblxuICAgIHZhciB0ZW1wPXRoaXMuX3ZpZGVvRWxlbWVudDtcbiAgICB3aGlsZSh0ZW1wIT10\naGlzLl9ldmVudExpc3RlbkVsZW1lbnQpe1xuICAgICAgICBpZih0ZW1wLmNsYXNzTGlzdCE9bnVs\nbClcbiAgICAgICAgICAgIHRlbXAuY2xhc3NMaXN0LnJlbW92ZShcIlRvdWNoR2VzdHVyZUZvcmJp\nZFNjcm9sbFwiKTtcbiAgICAgICAgdGVtcD10ZW1wLnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIGlm\nKHRlbXAgPT0gbnVsbClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZih0aGlzLl9l\ndmVudExpc3RlbkVsZW1lbnQ9PW51bGwpXG4gICAgICAgIHJldHVybjtcbiAgICB0aGlzLl9ldmVu\ndExpc3RlbkVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIlRvdWNoR2VzdHVyZUZvcmJpZFNjcm9s\nbFwiKTtcblxuICAgIHRoaXMuX2V2ZW50TGlzdGVuRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVy\nKFwidG91Y2hzdGFydFwiLHRoaXMuX3RvdWNoU3RhcnRIYW5kbGVyKTtcbiAgICB0aGlzLl9ldmVu\ndExpc3RlbkVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIsdGhpcy5fdG91\nY2hFbmRIYW5kbGVyKTtcbiAgICB0aGlzLl9ldmVudExpc3RlbkVsZW1lbnQucmVtb3ZlRXZlbnRM\naXN0ZW5lcihcInRvdWNobW92ZVwiLHRoaXMuX3RvdWNoTW92ZUhhbmRsZXIpO1xufTtcblxuXC9c\nLyDnqpflj6NyZXNpemXml7bmo4DmtYvmmK\/lkKblhajlsY\/lubbkuJTpgILphY1cblRvdWNoR2Vz\ndHVyZS5WaWRlb0dlc3R1cmUucHJvdG90eXBlLmZ1bGxTY3JlZW5EZXRlY3Q9ZnVuY3Rpb24oKXtc\nbiAgICBcL1wvIGFsZXJ0KFwicmVzaXplXCIpO1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICB0\naGlzLnNldFVubG9ja0J0bkxheW91dCgpOyBcbiAgICB0aGlzLnNldFNldHRpbmdCdG5MYXlvdXQo\nKTtcblxuICAgIHZhciBmdWxsU2NyZWVuU3RhdGU9dGdfSXNGdWxsc2NyZWVuKCk7XG4gICAgaWYo\nZnVsbFNjcmVlblN0YXRlIT10aGlzLl9mdWxsU2NyZWVuTm93KXtcbiAgICAgICAgdGhpcy5fZnVs\nbFNjcmVlbk5vdz1mdWxsU2NyZWVuU3RhdGU7XG4gICAgICAgIHRoaXMucmVzdG9yZURvbSgpO1xu\nICAgICAgICB0aGlzLmZpbmRCZXN0Um9vdChmdW5jdGlvbihyb290X2VsZW1lbnQsbGlzdGVuX2Vs\nZW1lbnQpe1xuICAgICAgICAgICAgc2VsZi5hcHBseURvbSgpO1xuICAgICAgICAgICAgaWYoZnVs\nbFNjcmVlblN0YXRlID09IHRydWUpe1xuICAgICAgICAgICAgICAgIFwvXC8gY29uc29sZS5sb2co\nXCJmdWxsc2NyZWVuXCIpO1xuICAgICAgICAgICAgICAgIHNlbGYuX2VsZW1lbnRGcmFtZS5zdHls\nZS5wb3NpdGlvbiA9IFwiZml4ZWRcIjtcbiAgICAgICAgICAgICAgICBzZWxmLnNpbU1vdXNlTW92\nZUNlbnRlcigpO1xuICAgICAgICAgICAgICAgIFwvXC\/mqKHmi5\/pvKDmoIfnp7vliLDkuK3pl7Tv\nvIzkvb\/lvpfoh6rliqjpmpDol4\/op4bpopHlupXpg6hcbiAgICAgICAgICAgIH1cbiAgICAgICAg\nICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgc2VsZi5fZWxlbWVudEZyYW1lLnN0eWxlLnBvc2l0\naW9uID0gXCJhYnNvbHV0ZVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4g\nICAgaWYoZnVsbFNjcmVlblN0YXRlPT10cnVlICYmIHRoaXMudmlkZW9JbkZ1bGxzY3JlZW5FbGVt\nZW50KCkpe1xuICAgICAgICBpZih0aGlzLl92aWRlb0VsZW1lbnQudmlkZW9XaWR0aFwvdGhpcy5f\ndmlkZW9FbGVtZW50LnZpZGVvSGVpZ2h0PjEuMyl7XG4gICAgICAgICAgICBcL1wvIGNvbnNvbGUu\nbG9nKFwibG9ja1wiKTtcbiAgICAgICAgICAgIGlmKFRvdWNoR2VzdHVyZS5vcmllbnRhdGlvbkxv\nY2tlZCA9PSBmYWxzZSAmJiBUb3VjaEdlc3R1cmUuaXNtb2JpbGUgPT0gdHJ1ZSl7XG4gICAgICAg\nICAgICAgICAgVG91Y2hHZXN0dXJlLm9yaWVudGF0aW9uTG9ja2VkID0gdHJ1ZTtcbiAgICAgICAg\nICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAg\nICAgICAgICAgICAgICAgICAgc2NyZWVuLm9yaWVudGF0aW9uLmxvY2soXCJsYW5kc2NhcGVcIik7\nXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAg\nICAgICAgICAgICAgICAgICB0aGlzLl91bmxvY2tCdG4uc3R5bGUuZGlzcGxheSA9IFwiYmxvY2tc\nIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91bmxvY2tCdG4uY2xhc3NMaXN0\nLnJlbW92ZShcImZhZGVvdXRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAzMDApO1xu\nICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAg\nICAgICAgICAgICAgICAgc2VsZi5fdW5sb2NrQnRuLmNsYXNzTGlzdC5hZGQoXCJmYWRlb3V0XCIp\nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjMwMCk7XG4gICAgICAgICAgICAgICAgICAg\nIH1cbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAg\nXC9cLyBzY3JlZW4ubG9ja09yaWVudGF0aW9uVW5pdmVyc2FsKFwibGFuZHNjYXBlLXByaW1hcnlc\nIik7XG4gICAgICAgIH1cbiAgICB9ZWxzZSBpZihmdWxsU2NyZWVuU3RhdGUgPT0gZmFsc2Upe1xu\nICAgICAgICBUb3VjaEdlc3R1cmUub3JpZW50YXRpb25Mb2NrZWQgPSBmYWxzZTtcbiAgICAgICAg\nc2NyZWVuLm9yaWVudGF0aW9uLnVubG9jaygpO1xuICAgIH1cbn07XG5cblwvXC8gVG91Y2hHZXN0\ndXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUub25PcmllbnRhdGlvbkNoYW5nZT1mdW5jdGlvbigp\ne1xuXC9cLyAgICAgdmFyIHNlbGYgPSB0aGlzO1xuXG5cL1wvIH07XG5cblxuVG91Y2hHZXN0dXJl\nLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUudmlkZW9JbkZ1bGxzY3JlZW5FbGVtZW50PWZ1bmN0aW9u\nKCl7XG4gICAgdmFyIHRlbXAgPSB0aGlzLl92aWRlb0VsZW1lbnQ7XG4gICAgd2hpbGUodGVtcCE9\nbnVsbCAmJiB0ZW1wIT1kb2N1bWVudC5ib2R5KXtcbiAgICAgICAgaWYodGVtcCA9PSBkb2N1bWVu\ndC5mdWxsc2NyZWVuRWxlbWVudClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB0\nZW1wID0gdGVtcC5wYXJlbnRFbGVtZW50O1xuICAgIH1cbn07XG5cblwvXC\/oh6rliqjosIPoioJE\nSVblhYPntKDkvY3nva5cblRvdWNoR2VzdHVyZS5WaWRlb0dlc3R1cmUucHJvdG90eXBlLnNldEVs\nZW1lbnRMYXlvdXQ9ZnVuY3Rpb24ocG9zKXtcbiAgICB2YXIgdmlkZW9UYXJnZXQ9dGhpcy5fY29u\ndGFpbkVsZW1lbnQ7XG4gICAgdmFyIHZ3PXZpZGVvVGFyZ2V0Lm9mZnNldFdpZHRoLHZoPXZpZGVv\nVGFyZ2V0Lm9mZnNldEhlaWdodDtcbiAgICB2YXIgdz12d1wvNTtcbiAgICBcL1wvdmFyIGg9dmhc\nLzg7XG4gICAgdmFyIGg9d1wvMztcbiAgICB2YXIgeD0odnctdylcLzIrdmlkZW9UYXJnZXQub2Zm\nc2V0TGVmdDtcbiAgICB2YXIgeTtcbiAgICBpZihwb3MgPT0gXCJib3R0b21cIil7XG4gICAgICAg\nIHk9IHZoKjdcLzgtaFwvMit2aWRlb1RhcmdldC5vZmZzZXRUb3A7XG4gICAgfWVsc2UgaWYocG9z\nID09IFwidG9wXCIpe1xuICAgICAgICB5PSB2aCoxXC84LWhcLzIrdmlkZW9UYXJnZXQub2Zmc2V0\nVG9wO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgICB5PSB2aFwvMi1oXC8yK3ZpZGVvVGFyZ2V0\nLm9mZnNldFRvcDtcbiAgICB9XG4gICAgXC9cLyBjb25zb2xlLmxvZyhcInc6XCIrdyxcIiBoOlwi\nK2grXCIgeDpcIit4K1wiIHk6XCIreSk7XG4gICAgdGhpcy5fZWxlbWVudEZyYW1lLnN0eWxlLndp\nZHRoPXcrXCJweFwiO1xuICAgIHRoaXMuX2VsZW1lbnRGcmFtZS5zdHlsZS5oZWlnaHQ9aCtcInB4\nXCI7XG4gICAgdGhpcy5fZWxlbWVudEZyYW1lLnN0eWxlLmxlZnQ9eCtcInB4XCI7XG4gICAgdGhp\ncy5fZWxlbWVudEZyYW1lLnN0eWxlLnRvcD15K1wicHhcIjtcbiAgICBcL1wvIHRoaXMuX2VsZW1l\nbnQuc3R5bGUuZGlzcGxheT1cImJsb2NrXCI7XG4gICAgdmFyIGZvbnRzaXplPWhcLzM7XG4gICAg\ndGhpcy5fdG9hc3RUZXh0LnN0eWxlLmZvbnRTaXplPWZvbnRzaXplK1wicHhcIjtcbiAgICB0aGlz\nLl90b2FzdFRleHQuc3R5bGUubWFyZ2luVG9wPShoLWZvbnRzaXplKVwvMitcInB4XCI7XG4gICAg\ndGhpcy5fZWxlbWVudEZyYW1lLnN0eWxlLmRpc3BsYXk9XCJub25lXCI7XG4gICAgdGhpcy5fZWxl\nbWVudEZyYW1lLnN0eWxlLmJvcmRlclJhZGl1cyA9IHdcLzEwICtcInB4XCI7XG5cblxufTtcblxu\nVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUuc2V0VW5sb2NrQnRuTGF5b3V0PWZ1\nbmN0aW9uKCl7XG4gICAgdmFyIHZpZGVvVGFyZ2V0PXRoaXMuX2NvbnRhaW5FbGVtZW50O1xuICAg\nIHZhciB2dz13aW5kb3cuc2NyZWVuLndpZHRoLHZoPXdpbmRvdy5zY3JlZW4uaGVpZ2h0O1xuICAg\nIHZhciB3ID0gdmhcLzg7XG4gICAgdmFyIGggPSB2aFwvODtcbiAgICB2YXIgeD0odnctdylcLzI7\nXG4gICAgdmFyIHk9KHZoLWgpXC8yK3ZoXC82O1xuXG4gICAgdGhpcy5fdW5sb2NrQnRuLnN0eWxl\nLmZvbnRTaXplPXdcLzIrXCJweFwiO1xuICAgIHRoaXMuX3VubG9ja0J0bi5zdHlsZS53aWR0aD13\nK1wicHhcIjtcbiAgICB0aGlzLl91bmxvY2tCdG4uc3R5bGUuaGVpZ2h0PWgrXCJweFwiO1xuICAg\nIHRoaXMuX3VubG9ja0J0bi5zdHlsZS5saW5lSGVpZ2h0ID0gaCtcInB4XCI7XG4gICAgdGhpcy5f\ndW5sb2NrQnRuLnN0eWxlLmxlZnQ9eCtcInB4XCI7XG4gICAgdGhpcy5fdW5sb2NrQnRuLnN0eWxl\nLnRvcD15K1wicHhcIjtcbiAgICB0aGlzLl91bmxvY2tCdG4uc3R5bGUuYm9yZGVyUmFkaXVzID0g\nd1wvMitcInB4XCI7XG4gICAgXC9cLyB0aGlzLl91bmxvY2tCdG4uc3R5bGUuZGlzcGxheSA9IFwi\nYmxvY2tcIjtcbiAgICBcL1wvIHRoaXMuX3VubG9ja0J0bi5jbGFzc0xpc3QucmVtb3ZlKFwiZmFk\nZW91dFwiKTtcbn1cblxuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUuc2V0U2V0\ndGluZ0J0bkxheW91dD1mdW5jdGlvbigpe1xuICAgIHZhciB2aWRlb1RhcmdldD10aGlzLl9jb250\nYWluRWxlbWVudDtcbiAgICB2YXIgdnc9dmlkZW9UYXJnZXQub2Zmc2V0V2lkdGgsdmg9dmlkZW9U\nYXJnZXQub2Zmc2V0SGVpZ2h0O1xuICAgIHZhciB3ID0gdmhcLzg7XG4gICAgdmFyIGggPSB2aFwv\nODtcbiAgICB2YXIgeD0gdncgLSB3IC0gdndcLzEyO1xuICAgIHZhciB5PSh2aC1oKVwvMjtcbiAg\nICBpZih2d1wvd2luZG93LnNjcmVlbi53aWR0aDwwLjMpe1xuICAgICAgICB0aGlzLl9zZXR0aW5n\nQnRuLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjsgXC9cLyDpmpDol4\/lsI\/op4bpopHnmoTorr7n\nva7mjInpkq5cbiAgICB9ZWxzZXtcbiAgICAgICAgdGhpcy5fc2V0dGluZ0J0bi5zdHlsZS5mb250\nU2l6ZT13XC8yK1wicHhcIjtcbiAgICAgICAgdGhpcy5fc2V0dGluZ0J0bi5zdHlsZS53aWR0aD13\nK1wicHhcIjtcbiAgICAgICAgdGhpcy5fc2V0dGluZ0J0bi5zdHlsZS5oZWlnaHQ9aCtcInB4XCI7\nXG4gICAgICAgIHRoaXMuX3NldHRpbmdCdG4uc3R5bGUubGluZUhlaWdodCA9IGgrXCJweFwiO1xu\nICAgICAgICB0aGlzLl9zZXR0aW5nQnRuLnN0eWxlLmxlZnQ9eCtcInB4XCI7XG4gICAgICAgIHRo\naXMuX3NldHRpbmdCdG4uc3R5bGUudG9wPXkrXCJweFwiO1xuICAgICAgICB0aGlzLl9zZXR0aW5n\nQnRuLnN0eWxlLmJvcmRlclJhZGl1cyA9IHdcLzIrXCJweFwiO1xuICAgIH1cblxufVxuXG5cblwv\nXC\/mmL7npLpUb2FzdFxuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUuc2V0VG9h\nc3Q9ZnVuY3Rpb24oc3RyKXtcbiAgICBcL1wvIHRoaXMuX2VsZW1lbnQuc3R5bGUub3BhY2l0eT0w\nLjc1O1xuICAgIHRoaXMuX2VsZW1lbnRGcmFtZS5zdHlsZS5kaXNwbGF5PVwiYmxvY2tcIjtcbiAg\nICB0aGlzLl9lbGVtZW50RnJhbWUuY2xhc3NMaXN0LnJlbW92ZShcImZhZGVvdXRcIik7XG4gICAg\ndGhpcy5fdG9hc3RUZXh0LmlubmVySFRNTD1zdHI7XG59XG5cblwvXC\/lnKhUb3VjaGVuZOS5i+WJ\njeWPlua2iOaJi+WKv1xuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5wcm90b3R5cGUuY2FuY2Vs\nVG91Y2g9ZnVuY3Rpb24oKXtcbiAgICB0aGlzLnN3ZWVwRGlyPTA7XG4gICAgdGhpcy5fdmlkZW9F\nbGVtZW50LnBsYXliYWNrUmF0ZT10aGlzLm9yaWdpbmFsUGxheXJhdGU7XG4gICAgdGhpcy50b3Vj\naERvd25QdD1udWxsO1xuICAgIHRoaXMuaGlkZVRvYXN0KCk7XG59XG5cblwvXC8g6ZqQ6JePdG9h\nc3RcblRvdWNoR2VzdHVyZS5WaWRlb0dlc3R1cmUucHJvdG90eXBlLmhpZGVUb2FzdD1mdW5jdGlv\nbigpe1xuICAgIHZhciBzZWxmID0gdGhpcztcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4g\nICAgICAgIHNlbGYuX2VsZW1lbnRGcmFtZS5jbGFzc0xpc3QuYWRkKFwiZmFkZW91dFwiKTtcbiAg\nICAgICAgc2VsZi5fdG9hc3RUZXh0LmNsYXNzTGlzdC5yZW1vdmUoXCJ0b2FzdF9ibGlua1wiKTtc\nbiAgICB9LDUwMCk7XG4gICAgXC9cLyBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgXC9cLyAg\nICAgZWxlbWVudC5zdHlsZS5vcGFjaXR5PTA7XG4gICAgXC9cLyAgICAgZWxlbWVudC5jbGFzc0xp\nc3QucmVtb3ZlKFwiZmFkZW91dFwiKTtcbiAgICBcL1wvIH0sMTUwMCk7XG59XG5cblwvXC8g5qOA\n5rWLPHZpZGVvPuW5tuaPkuWFpeWFg+e0oFxuVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5pbnNl\ncnREb209ZnVuY3Rpb24oZG9tKXtcbiAgICB2YXIgdmlkZW9UYWdzTmF0aXZlID0gZG9tLmdldEVs\nZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpO1xuICAgIFwvXC8gY29uc29sZS5sb2coZG9tKTtcbiAg\nICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHZpZGVvVGFnc05hdGl2ZSwgZnVuY3Rpb24o\ndmlkZW9UYWcpIHtcbiAgICAgICAgaWYgKCF2aWRlb1RhZy5nZXRBdHRyaWJ1dGUoJ1RvdWNoR2Vz\ndHVyZV9WaWRlbycpKSB7XG4gICAgICAgICAgICB2aWRlb1RhZy5zZXRBdHRyaWJ1dGUoJ1RvdWNo\nR2VzdHVyZV9WaWRlbycsIHRydWUpO1xuICAgICAgICAgICAgbmV3IFRvdWNoR2VzdHVyZS5WaWRl\nb0dlc3R1cmUodmlkZW9UYWcpO1xuICAgICAgICBcL1wvICAgY29uc29sZS5sb2coXCJpbnNlcnQg\nbm9kZVwiKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIGhvc3REb21haW49d2luZG93\nLmxvY2F0aW9uLmhvc3Q7XG4gICAgaWYoQ3VzdG9taXplZFZpZGVvVEFHW2hvc3REb21haW5dID09\nIG51bGwpXG4gICAgICAgIHJldHVybjtcblxuICAgIEN1c3RvbWl6ZWRWaWRlb1RBR1tob3N0RG9t\nYWluXS5mb3JFYWNoKGZ1bmN0aW9uKHZpZGVvVGFnTmFtZSl7XG4gICAgICAgIHZhciB2aWRlb1Rh\nZ3MgPSBkb20uZ2V0RWxlbWVudHNCeVRhZ05hbWUodmlkZW9UYWdOYW1lKTtcbiAgICAgICAgXC9c\nLyBjb25zb2xlLmxvZyhkb20pO1xuICAgICAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxs\nKHZpZGVvVGFncywgZnVuY3Rpb24odmlkZW9UYWcpIHtcbiAgICAgICAgICAgIGlmICghdmlkZW9U\nYWcuZ2V0QXR0cmlidXRlKCdUb3VjaEdlc3R1cmVfVmlkZW8nKSkge1xuICAgICAgICAgICAgICAg\nIHZpZGVvVGFnLnNldEF0dHJpYnV0ZSgnVG91Y2hHZXN0dXJlX1ZpZGVvJywgdHJ1ZSk7XG4gICAg\nICAgICAgICAgICAgbmV3IFRvdWNoR2VzdHVyZS5WaWRlb0dlc3R1cmUodmlkZW9UYWcpO1xuICAg\nICAgICAgICAgXC9cLyAgIGNvbnNvbGUubG9nKFwiaW5zZXJ0IG5vZGVcIik7XG4gICAgICAgICAg\nICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIFxufTtcblxuVG91Y2hHZXN0dXJlLlZpZGVv\nR2VzdHVyZS5pbnNlcnRBbGw9ZnVuY3Rpb24oKXtcbiAgICBcL1wvIHZhciBzZWxmPXRoaXM7XG4g\nICAgVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5pbnNlcnREb20oZG9jdW1lbnQpO1xuXG59O1xu\nXG5cL1wvIFRvdWNoR2VzdHVyZS5WaWRlb0dlc3R1cmUucHJvdG90eXBlLmZvcmJpZFNjcm9sbD1m\ndW5jdGlvbigpe1xuXC9cLyAgICAgXC9cLyB2YXIgYm9kaWVzPWRvY3VtZW50LmdldEVsZW1lbnRz\nQnlUYWdOYW1lKFwiYm9keVwiKTtcblwvXC8gICAgIFwvXC8gQXJyYXkucHJvdG90eXBlLmZvckVh\nY2guY2FsbChib2RpZXMsIGZ1bmN0aW9uKGJvZHkpIHtcblwvXC8gICAgIFwvXC8gICAgIGJvZHku\nc3R5bGUucG9zaXRpb249XCJmaXhlZFwiO1xuXC9cLyAgICAgXC9cLyB9KTtcblwvXC8gICAgIFRv\ndWNoR2VzdHVyZS5mb3JiaWRTY3JvbGw9dHJ1ZTtcblwvXC8gfVxuXG5cL1wvIFRvdWNoR2VzdHVy\nZS5WaWRlb0dlc3R1cmUucHJvdG90eXBlLnBlcm1pdGNyb2xsPWZ1bmN0aW9uKCl7XG5cL1wvICAg\nICBcL1wvIHZhciBib2RpZXM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIp\nO1xuXC9cLyAgICAgXC9cLyBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGJvZGllcywgZnVu\nY3Rpb24oYm9keSkge1xuXC9cLyAgICAgXC9cLyAgICAgYm9keS5zdHlsZS5wb3NpdGlvbj1cInJl\nbGF0aXZlXCI7XG5cL1wvICAgICBcL1wvIH0pO1xuXC9cLyAgICAgVG91Y2hHZXN0dXJlLmZvcmJp\nZFNjcm9sbD1mYWxzZTtcblwvXC8gfVxuXG5mdW5jdGlvbiBzZWNvbmRzMlRpbWVTdHIoc2Vjcyl7\nXG4gICAgdmFyIGhvdXI9cGFyc2VJbnQoc2Vjc1wvMzYwMCk7XG4gICAgdmFyIG1pbj1wYXJzZUlu\ndChzZWNzXC82MCktNjAqaG91cjtcbiAgICB2YXIgc2VjPXNlY3MlNjA7XG4gICAgdmFyIHJldD1c\nIlwiO1xuICAgIGlmKGhvdXI+MCl7XG4gICAgICAgIHJldCs9aG91citcIjpcIjtcbiAgICB9XG4g\nICAgcmV0Kz0obWluIDwgMTA\/ICcwJyArIG1pbiA6IG1pbikgKyAnOicgKyAoc2VjIDwgMTA\/ICcw\nJyArIHNlYyA6IHNlYyk7XG4gICAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gaW5pdEZvcmJp\nZFNjcm9sbExpc3QoKXtcbiAgICB2YXIgaG9zdERvbWFpbj13aW5kb3cubG9jYXRpb24uaG9zdDtc\nbiAgICB2YXIgZGVmYXVsdFNldHRpbmc9VG91Y2hHZXN0dXJlV2hpdGVMaXN0W2hvc3REb21haW5d\nO1xuICAgIGlmKGRlZmF1bHRTZXR0aW5nIT1udWxsKXtcbiAgICAgICAgaWYoZGVmYXVsdFNldHRp\nbmcuZm9yYmlkU2Nyb2xsTGlzdCE9bnVsbClcbiAgICAgICAgICAgIGZvcmJpZFNjcm9sbExpc3Q9\nZGVmYXVsdFNldHRpbmcuZm9yYmlkU2Nyb2xsTGlzdDtcbiAgICAgICAgXC9cLyBjb25zb2xlLmxv\nZyhmb3JiaWRTY3JvbGxMaXN0KTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIHdoZXRoZXJJbkJsYWNr\nTGlzdCgpe1xuICAgIHZhciBob3N0RG9tYWluPXdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIGlm\nKFRvdWNoR2VzdHVyZUJsYWNrTGlzdC5pbmRleE9mKGhvc3REb21haW4pPj0wKXtcbiAgICAgICAg\ncmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIHRnX0lz\nRnVsbHNjcmVlbigpe1xuICAgIHJldHVybiBkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCE9bnVs\nbCAgICB8fFxuICAgICAgICAgICBkb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50IT1udWxsICB8\nfFxuICAgICAgICAgICBkb2N1bWVudC5tb3pGdWxsU2NyZWVuRWxlbWVudCE9bnVsbCB8fFxuICAg\nICAgICAgICBkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudCE9bnVsbCB8fFxuICAgICAg\nICAgICBkb2N1bWVudC5mdWxsc2NyZWVuID09IHRydWUgfHwgZmFsc2U7XG59XG5cbmZ1bmN0aW9u\nIHRnX0lzTW9iaWxlKCl7XG4gICAgaWYod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2go\nXC8ocGhvbmV8cGFkfHBvZHxpUGhvbmV8aVBvZHxpb3N8aVBhZHxBbmRyb2lkfE1vYmlsZXxCbGFj\na0JlcnJ5fElFTW9iaWxlfE1RUUJyb3dzZXJ8SlVDfEZlbm5lY3x3T1NCcm93c2VyfEJyb3dzZXJO\nR3xXZWJPU3xTeW1iaWFufFdpbmRvd3MgUGhvbmUpXC9pKSkge1xuICAgICAgICByZXR1cm4gdHJ1\nZTsgXC9cLyDnp7vliqjnq69cbiAgICB9ZWxzZSBpZih3aW5kb3cuc2NyZWVuLmhlaWdodFwvd2lu\nZG93LnNjcmVlbi53aWR0aD4xLjMpe1xuICAgICAgICByZXR1cm4gdHJ1ZTsgXC9cLyDlsY\/luZXn\nurXlkJFcbiAgICB9ZWxzZXtcbiAgICAgICAgcmV0dXJuIGZhbHNlOyBcL1wvIFBD56uvXG4gICAg\nfVxufVxuXG5mdW5jdGlvbiB0Z1ZpZGVvUGFnZUluaXQoKXtcbiAgICBHTV9hZGRTdHlsZSgnZGl2\nLlRvdWNoR2VzdHVyZV9Ub2FzdHsgIHdpZHRoOiAyMDBweDsgIGhlaWdodDogMTAwcHg7ICBvcGFj\naXR5OiAwLjc1OyAgcG9zaXRpb246IGFic29sdXRlOyAgei1pbmRleDogMjE0NzQ4MzY0ODsgIHRv\ncDogMTAwcHg7ICBsZWZ0OiAyMDBweDsgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOyBwb2ludGVy\nLWV2ZW50czpub25lO30gJyk7XG4gICAgR01fYWRkU3R5bGUoJ3NwYW4uVG91Y2hHZXN0dXJlX1Rv\nYXN0VGV4dHsgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgIGxlZnQ6IDA7ICByaWdodDogMDsgIHRleHQt\nYWxpZ246IGNlbnRlcjsgIGNvbG9yOiB3aGl0ZTsgcG9pbnRlci1ldmVudHM6bm9uZTsgZm9udC1m\nYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsSGVsdmV0aWNhIE5ldWUsSGVs\ndmV0aWNhLEFyaWFsLFBpbmdGYW5nIFNDLEhpcmFnaW5vIFNhbnMgR0IsTWljcm9zb2Z0IFlhSGVp\nLHNhbnMtc2VyaWY7fScpO1xuICAgIEdNX2FkZFN0eWxlKCdkaXYuVG91Y2hHZXN0dXJlX1RvYXN0\nLmZhZGVvdXR7ICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAxLjVzOyAtbW96LXRyYW5zaXRpb246\nIGFsbCAxLjVzOyAtbXMtdHJhbnNpdGlvbjogYWxsIDEuNXM7IC1vLXRyYW5zaXRpb246IGFsbCAx\nLjVzOyB0cmFuc2l0aW9uOiBhbGwgMS41czsgb3BhY2l0eTogMDt9Jyk7XG4gICAgR01fYWRkU3R5\nbGUoJ2Rpdi5Ub3VjaEdlc3R1cmVfQnRue29wYWNpdHk6IDAuNzU7IHotaW5kZXg6IDIxNDc0ODM2\nNDg7IHdpZHRoOiA1MHB4O2hlaWdodDogNTBweDt0ZXh0LWFsaWduOiBjZW50ZXI7Zm9udC1zaXpl\nOiAyNTttYXJnaW46IDIwO2JhY2tncm91bmQtY29sb3I6IGJsYWNrO2NvbG9yOiB3aGl0ZTsgZm9u\ndC1mYW1pbHk6YXBwbGUgY29sb3IgZW1vamksc2Vnb2UgdWkgZW1vamksbm90byBjb2xvciBlbW9q\naSxhbmRyb2lkIGVtb2ppLGVtb2ppc3ltYm9scyxlbW9qaW9uZSBtb3ppbGxhLHR3ZW1vamkgbW96\naWxsYSxzZWdvZSB1aSBzeW1ib2w7fScpO1xuICAgIEdNX2FkZFN0eWxlKCdkaXYuVG91Y2hHZXN0\ndXJlX0J0bi5mYWRlb3V0eyAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMS41czsgLW1vei10cmFu\nc2l0aW9uOiBhbGwgMS41czsgLW1zLXRyYW5zaXRpb246IGFsbCAxLjVzOyAtby10cmFuc2l0aW9u\nOiBhbGwgMS41czsgdHJhbnNpdGlvbjogYWxsIDEuNXM7IG9wYWNpdHk6IDA7fScpO1xuICAgIEdN\nX2FkZFN0eWxlKCdAbWVkaWEgYWxsIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlv\nOjApIGFuZCAobWluLXJlc29sdXRpb246IC4wMDFkcGNtKSB7IC50b2FzdF9ibGluayB7YmFja2dy\nb3VuZDogLXdlYmtpdC1ncmFkaWVudCggbGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xv\nci1zdG9wKDAsICMwMDAwMDApLCBjb2xvci1zdG9wKDAuNSwgI2ZmZmZmZiksY29sb3Itc3RvcCgx\nLCMwMDAwMDApICk7LXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50Oy13ZWJraXQt\nYmFja2dyb3VuZC1jbGlwOiB0ZXh0Oy13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7\nLXdlYmtpdC1hbmltYXRpb246IHRvYXN0X2JsaW5rX2FuaW1hdGlvbiAxcyBpbmZpbml0ZSBsaW5l\nYXI7fX0nKTtcbiAgICBHTV9hZGRTdHlsZSgnQC13ZWJraXQta2V5ZnJhbWVzIHRvYXN0X2JsaW5r\nX2FuaW1hdGlvbiB7MCUgIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMTUwJSAwO30xMDAlIHsgYmFj\na2dyb3VuZC1wb3NpdGlvbjogLTUwJSAwO319Jyk7XG5cbiAgICB2YXIgaG9zdERvbWFpbiA9IHdp\nbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIHZhciBnbGJTZXR0aW5nID0gVEdVc2VyU2V0dGluZy5n\nbG9iYWw7XG4gICAgdmFyIHVzclNldHRpbmcgPSBUR1VzZXJTZXR0aW5nLndlYnNpdGVbaG9zdERv\nbWFpbl07XG4gICAgdmFyIGdsYiA9IFtnbGJTZXR0aW5nW1wiZ1N3aXRjaFZvbHVtZVwiXSxnbGJT\nZXR0aW5nW1wiZ1N3aXRjaEJyaWdodG5lc3NcIl0sZ2xiU2V0dGluZ1tcImdTd2l0Y2hQcm9ncmVz\nc1wiXSxnbGJTZXR0aW5nW1wiZ1N3aXRjaFNwZWVkXCJdLGdsYlNldHRpbmdbXCJnU3dpdGNoU3Bl\nZWRYNFwiXSxnbGJTZXR0aW5nW1wiZ1N3aXRjaFN0YXRlXCJdLGdsYlNldHRpbmdbXCJnU3dpdGNo\nU3BlZWRYNFNpZ2xlXCJdXTtcbiAgICB2YXIgdXNyID0gW3RydWUsdHJ1ZSx0cnVlLHRydWUsdHJ1\nZSx0cnVlLHRydWVdO1xuICAgIFwvXC8gY29uc29sZS5sb2coaG9zdERvbWFpbik7XG4gICAgaWYo\ndXNyU2V0dGluZyE9bnVsbCl7XG4gICAgICAgIHVzciA9IFt1c3JTZXR0aW5nW1wid1N3aXRjaFZv\nbHVtZVwiXSx1c3JTZXR0aW5nW1wid1N3aXRjaEJyaWdodG5lc3NcIl0sdXNyU2V0dGluZ1tcIndT\nd2l0Y2hQcm9ncmVzc1wiXSx1c3JTZXR0aW5nW1wid1N3aXRjaFNwZWVkXCJdLHVzclNldHRpbmdb\nXCJ3U3dpdGNoU3BlZWRYNFwiXSx1c3JTZXR0aW5nW1wid1N3aXRjaFN0YXRlXCJdLHVzclNldHRp\nbmdbXCJ3U3dpdGNoU3BlZWRYNFNpZ2xlXCJdXTtcbiAgICAgICAgXC9cLyBjb25zb2xlLmxvZyhc\nInVzciBzZXR0aW5nIGV4aXN0XCIpO1xuICAgIH1cbiAgICBcbiAgICBUb3VjaEdlc3R1cmVTZXR0\naW5nW1widm9sdW1lXCJdID0gIGdsYlswXSAmJiB1c3JbMF07XG4gICAgVG91Y2hHZXN0dXJlU2V0\ndGluZ1tcImJyaWdodG5lc3NcIl0gPSAgZ2xiWzFdICYmIHVzclsxXTtcbiAgICBUb3VjaEdlc3R1\ncmVTZXR0aW5nW1wicHJvZ3Jlc3NcIl0gPSAgZ2xiWzJdICYmIHVzclsyXTtcbiAgICBUb3VjaEdl\nc3R1cmVTZXR0aW5nW1wic3BlZWRcIl0gPSAgZ2xiWzNdICYmIHVzclszXTtcbiAgICBUb3VjaEdl\nc3R1cmVTZXR0aW5nW1wic3BlZWR4NFwiXSA9ICBnbGJbNF0gJiYgdXNyWzRdO1xuICAgIFRvdWNo\nR2VzdHVyZVNldHRpbmdbXCJzdGF0ZVwiXSA9ICBnbGJbNV0gJiYgdXNyWzVdO1xuICAgIFRvdWNo\nR2VzdHVyZVNldHRpbmdbXCJzcGVlZHg0c2luZ2xlXCJdID0gIGdsYls2XSAmJiB1c3JbNl07XG4g\nICAgVG91Y2hHZXN0dXJlU2V0dGluZ1tcImZvcmJpZFNjcm9sbE5GU1wiXSA9ICBmYWxzZTtcbiAg\nICBpZih1c3JTZXR0aW5nIT1udWxsKXtcbiAgICAgICAgVG91Y2hHZXN0dXJlU2V0dGluZ1tcImZv\ncmJpZFNjcm9sbE5GU1wiXSA9ICAodXNyU2V0dGluZ1tcIndTd2l0Y2hGb3JiaWRTY3JvbGxORlNc\nIl09PXRydWUpO1xuICAgIH1cbiAgICBcL1wvIGNvbnNvbGUubG9nKFwiZm9yYmlkU2Nyb2xsTkZT\nXCIpO1xuICAgIFwvXC8gY29uc29sZS5sb2coVG91Y2hHZXN0dXJlU2V0dGluZy5mb3JiaWRTY3Jv\nbGxORlMpO1xuICAgIFxuICAgIFwvXC8gY29uc29sZS5sb2coZ2xiKTtcbiAgICBcL1wvIGNvbnNv\nbGUubG9nKHVzcik7XG5cbiAgICBpbml0Rm9yYmlkU2Nyb2xsTGlzdCgpO1xuXG4gICAgVG91Y2hH\nZXN0dXJlLmlzbW9iaWxlID0gdGdfSXNNb2JpbGUoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0\nZW5lcigncmVzaXplJyxmdW5jdGlvbihlKXtcbiAgICAgICAgVG91Y2hHZXN0dXJlLmlzbW9iaWxl\nID0gdGdfSXNNb2JpbGUoKTtcbiAgICB9KTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVu\nZXIoJ3RvdWNoc3RhcnQnLGZ1bmN0aW9uKGUpe1xuICAgICAgICBpZihmb3JiaWRTY3JvbGxMaXN0\nLmluZGV4T2YoZS5zcmNFbGVtZW50LmNsYXNzTGlzdFswXSk+PTApe1xuICAgICAgICAgICAgZG9j\ndW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJyx0Z1ByZXZlbnREZWZhdWx0LHtwYXNz\naXZlOmZhbHNlfSk7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgdmFyIG5vVmlkZW89dHJ1\nZTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgZXYgPSB3aW5kb3cuZXZlbnQgfHwg\nZTtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBlLnBhdGggfHwgKGUuY29tcG9zZWRQYXRoICYm\nIGUuY29tcG9zZWRQYXRoKCkpO1xuICAgICAgICAgICAgXC9cLyBjb25zb2xlLmxvZyhwYXRoKTtc\nblxuICAgICAgICAgICAgZm9yKHZhciBpPTA7aTxwYXRoLmxlbmd0aDtpKyspe1xuICAgICAgICAg\nICAgICAgIHZhciBlbGVtZW50PXBhdGhbaV07XG4gICAgICAgICAgICAgICAgXC9cLyBjb25zb2xl\nLmxvZyhlbGVtZW50KTtcbiAgICAgICAgICAgICAgICBpZihlbGVtZW50LnRhZ05hbWU9PVwiVklE\nRU9cInx8KGVsZW1lbnQuY2xhc3NMaXN0JiZlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcIlRv\ndWNoR2VzdHVyZUZvcmJpZFNjcm9sbFwiKSkpe1xuICAgICAgICAgICAgICAgICAgICBcL1wvIFRv\ndWNoR2VzdHVyZS5mb3JiaWRTY3JvbGw9dHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgbm9WaWRl\nbz1mYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxu\nICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgZnMgPSB0Z19Jc0Z1bGxzY3JlZW4oKTtc\nbiAgICAgICAgICAgIGlmKGZzID09IGZhbHNlICYmICFub1ZpZGVvKXtcbiAgICAgICAgICAgICAg\nICBpZihUb3VjaEdlc3R1cmVTZXR0aW5nLmZvcmJpZFNjcm9sbE5GUz09ZmFsc2UpXG4gICAgICAg\nICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsdGdQcmV2\nZW50RGVmYXVsdCx7cGFzc2l2ZTpmYWxzZX0pO1xuICAgICAgICAgICAgfWVsc2UgaWYoZnMpe1xu\nICAgICAgICAgICAgICAgIGlmKCFub1ZpZGVvKXtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1l\nbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJyx0Z1ByZXZlbnREZWZhdWx0LHtwYXNzaXZl\nOmZhbHNlfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYoZS50\nb3VjaGVzWzBdLnBhZ2VYPndpbmRvdy5zY3JlZW4ud2lkdGhcLzgmJmUudG91Y2hlc1swXS5wYWdl\nWDx3aW5kb3cuc2NyZWVuLndpZHRoKXtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRk\nRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJyx0Z1ByZXZlbnREZWZhdWx0LHtwYXNzaXZlOmZhbHNl\nfSk7XG4gICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAg\nICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0p\nO1xuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLGZ1bmN0aW9uKGUp\ne1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLHRnUHJl\ndmVudERlZmF1bHQpO1xuICAgIH0pO1xuICAgIGlmKFRvdWNoR2VzdHVyZS5kZWJ1ZyA9PSB0cnVl\nKXtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJyxmdW5jdGlv\nbihlKXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUuc3JjRWxlbWVudC5jbGFzc0xpc3QpO1xu\nICAgICAgICB9KTtcbiAgICB9XG4gICAgVG91Y2hHZXN0dXJlLlZpZGVvR2VzdHVyZS5pbnNlcnRB\nbGwoKTtcbiAgICBzZXRJbnRlcnZhbChUb3VjaEdlc3R1cmUuVmlkZW9HZXN0dXJlLmluc2VydEFs\nbCwgMjAwMCk7XG59XG5cbmZ1bmN0aW9uIHRnUHJldmVudERlZmF1bHQoZSl7XG4gICAgZS5wcmV2\nZW50RGVmYXVsdCgpO1xuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmZ1bmN0aW9uIHRnU2V0dGlu\nZ1BhZ2UoKXtcbiAgICBjb25zb2xlLmxvZyhcInNldHRpbmcgcGFnZVwiKTtcbiAgICB2YXIgdGFy\nZ2V0RG9tYWluID0gdGdHZXRRdWVyeVN0cmluZyhcInRhcmdldFwiKTtcbiAgICBjb25zb2xlLmxv\nZyh0YXJnZXREb21haW4pO1xuICAgIGNvbnNvbGUubG9nKFRHVXNlclNldHRpbmcpO1xuICAgIHZh\nciB3ZWJzaXRlU2V0dGluZztcbiAgICBpZihUR1VzZXJTZXR0aW5nLndlYnNpdGVbdGFyZ2V0RG9t\nYWluXSl7XG4gICAgICAgIHdlYnNpdGVTZXR0aW5nPVRHVXNlclNldHRpbmcud2Vic2l0ZVt0YXJn\nZXREb21haW5dO1xuICAgICAgICBcL1wvIGNvbnNvbGUubG9nKFwiZm91bmRcIik7XG4gICAgfWVs\nc2V7XG4gICAgICAgIFwvXC8gY29uc29sZS5sb2coXCJub3QgZm91bmRcIik7XG4gICAgICAgIHdl\nYnNpdGVTZXR0aW5nPXtcbiAgICAgICAgICAgIHdTd2l0Y2hFbmFibGU6dHJ1ZSxcbiAgICAgICAg\nICAgIHdTd2l0Y2hTdGF0ZTp0cnVlLFxuICAgICAgICAgICAgd1N3aXRjaFByb2dyZXNzOnRydWUs\nXG4gICAgICAgICAgICB3U3dpdGNoQnJpZ2h0bmVzczp0cnVlLFxuICAgICAgICAgICAgd1N3aXRj\naFZvbHVtZTp0cnVlLFxuICAgICAgICAgICAgd1N3aXRjaFNwZWVkWDQ6dHJ1ZSxcbiAgICAgICAg\nICAgIHdTd2l0Y2hTcGVlZFg0U2lnbGU6dHJ1ZSxcbiAgICAgICAgICAgIHdTd2l0Y2hTcGVlZDp0\ncnVlLFxuICAgICAgICAgICAgd1N3aXRjaEZvcmJpZFNjcm9sbE5GUzpmYWxzZVxuICAgICAgICB9\nO1xuICAgIH1cbiAgICBcbiAgICAkKFwiLmdfdGdzXCIpLmVhY2goZnVuY3Rpb24oaW5kZXgsZWxl\nKXtcbiAgICAgICAgdmFyIHZhbCA9IFRHVXNlclNldHRpbmcuZ2xvYmFsW2VsZS5pZF07XG4gICAg\nICAgIGlmKHZhbCE9dHJ1ZSl7XG4gICAgICAgICAgICBlbGUuY2xhc3NMaXN0LnJlbW92ZShcIm11\naS1hY3RpdmVcIilcbiAgICAgICAgfVxuICAgIH0pO1xuICAgICQoXCIjZ1NlbGVjdFRvYXN0UG9z\nXCIpLnRleHQoVEdVc2VyU2V0dGluZy5nbG9iYWxbXCJnU2VsZWN0VG9hc3RQb3NcIl0pO1xuXG4g\nICAgJChcIi53X3Rnc1wiKS5lYWNoKGZ1bmN0aW9uKGluZGV4LGVsZSl7XG4gICAgICAgIHZhciB2\nYWwgPSB3ZWJzaXRlU2V0dGluZ1tlbGUuaWRdO1xuICAgICAgICBpZih2YWwhPXRydWUpe1xuICAg\nICAgICAgICAgZWxlLmNsYXNzTGlzdC5yZW1vdmUoXCJtdWktYWN0aXZlXCIpXG4gICAgICAgIH1c\nbiAgICB9KTtcblxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiZ2xvYmFsU2V0dGluZ0lu\ncHV0XCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixmdW5jdGlvbigpe1xuICAgICAgICB2\nYXIgZ1ZhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiZ2xvYmFsU2V0dGluZ0lucHV0XCIp\nLnZhbHVlO1xuICAgICAgICBnVmFsID0gSlNPTi5wYXJzZShnVmFsKTtcbiAgICAgICAgVEdVc2Vy\nU2V0dGluZy5nbG9iYWwgPSBnVmFsO1xuICAgICAgICBHTV9zZXRWYWx1ZShcInRnX3NldHRpbmdc\nIixKU09OLnN0cmluZ2lmeShUR1VzZXJTZXR0aW5nKSk7XG4gICAgfSk7XG5cbiAgICBkb2N1bWVu\ndC5nZXRFbGVtZW50QnlJZChcIndlYnNpdGVTZXR0aW5nSW5wdXRcIikuYWRkRXZlbnRMaXN0ZW5l\ncihcImNoYW5nZVwiLGZ1bmN0aW9uKCl7XG4gICAgICAgIFwvXC8gYWxlcnQoXCJjaGFuZ2VcIik7\nXG4gICAgICAgIHZhciB3VmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3ZWJzaXRlU2V0\ndGluZ0lucHV0XCIpLnZhbHVlO1xuICAgICAgICB3VmFsID0gSlNPTi5wYXJzZSh3VmFsKTtcbiAg\nICAgICAgVEdVc2VyU2V0dGluZy53ZWJzaXRlW3RhcmdldERvbWFpbl0gPSB3VmFsO1xuICAgICAg\nICBHTV9zZXRWYWx1ZShcInRnX3NldHRpbmdcIixKU09OLnN0cmluZ2lmeShUR1VzZXJTZXR0aW5n\nKSk7XG4gICAgfSk7XG5cbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInJlc2V0U2V0dGlu\nZ0lucHV0XCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIixmdW5jdGlvbigpe1xuICAgICAg\nICBcL1wvIGFsZXJ0KFwicmVzZXRcIik7XG4gICAgICAgIEdNX3NldFZhbHVlKFwidGdfc2V0dGlu\nZ1wiLEpTT04uc3RyaW5naWZ5KFRHVXNlckRlZmF1bHRTZXR0aW5nKSk7XG4gICAgfSk7XG59XG5c\nbmZ1bmN0aW9uIHRnR2V0UXVlcnlTdHJpbmcobmFtZSl7XG4gICAgdmFyIHJlZyA9IG5ldyBSZWdF\neHAoXCIoXnwmKVwiICsgbmFtZSArIFwiPShbXiZdKikoJnwkKVwiLCBcImlcIik7XG4gICAgdmFy\nIHIgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cigxKS5tYXRjaChyZWcpO1xuICAgIGlm\nIChyICE9IG51bGwpIHJldHVybiB1bmVzY2FwZShyWzJdKTsgcmV0dXJuIG51bGw7XG59XG5cblxu\nKGZ1bmN0aW9uKCkge1xuICAgIGlmKHdoZXRoZXJJbkJsYWNrTGlzdCgpKXtcbiAgICAgICAgcmV0\ndXJuO1xuICAgIH1cblxuICAgIFRHVXNlclNldHRpbmcgPSBHTV9nZXRWYWx1ZShcInRnX3NldHRp\nbmdcIixKU09OLnN0cmluZ2lmeShUR1VzZXJEZWZhdWx0U2V0dGluZykpO1xuICAgIFRHVXNlclNl\ndHRpbmcgPSBKU09OLnBhcnNlKFRHVXNlclNldHRpbmcpO1xuICAgIFwvXC8gY29uc29sZS5sb2co\nVEdVc2VyU2V0dGluZyk7XG4gICAgXC9cLyBZb3VyIGNvZGUgaGVyZS4uLlxuXG4gICAgdmFyIGRv\nbWFpbiA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0O1xuICAgIFxuICAgIGlmKGRvbWFpbiA9PSBcImhl\ncm9jaGFuc3lzdS5naXRsYWIuaW9cIil7XG4gICAgXC9cLyBpZihkb21haW4gPT0gXCIxOTIuMTY4\nLjEuMzM6ODg0OFwiKXtcbiAgICAgICAgdGdTZXR0aW5nUGFnZSgpO1xuICAgIH1lbHNle1xuICAg\nICAgICB0Z1ZpZGVvUGFnZUluaXQoKTtcbiAgICB9XG5cbn0pKCk7In0=\n","adrules":"eyJzdWJzY3JpYmVkIjoie1widXJsXCI6XCJodHRwczpcXFwvXFxcL2Vhc3lsaXN0LWRvd25sb2Fk\ncy5hZGJsb2NrcGx1cy5vcmdcXFwvZWFzeWxpc3QudHh0XCJ9XG57XCJ1cmxcIjpcImh0dHBzOlxc\nXC9cXFwvZWFzeWxpc3QtZG93bmxvYWRzLmFkYmxvY2twbHVzLm9yZ1xcXC9lYXN5bGlzdGNoaW5h\nLnR4dFwifVxue1widXJsXCI6XCJodHRwczpcXFwvXFxcL2Zhc3RseS5qc2RlbGl2ci5uZXRcXFwv\nZ2hcXFwvY2p4ODI2MzBcXFwvY2p4bGlzdFxcXC9jangtYW5ub3lhbmNlLnR4dFwifVxue1widXJs\nXCI6XCJodHRwczpcXFwvXFxcL2Vhc3lsaXN0LWRvd25sb2Fkcy5hZGJsb2NrcGx1cy5vcmdcXFwv\nZWFzeXByaXZhY3kudHh0XCJ9XG57XCJ1cmxcIjpcImh0dHBzOlxcXC9cXFwvZWFzeWxpc3QtZG93\nbmxvYWRzLmFkYmxvY2twbHVzLm9yZ1xcXC9hbnRpYWRibG9ja2ZpbHRlcnMudHh0XCJ9XG4ifQ==\n","conf":"e30=\n","favorite":""}