Skip to content

Instantly share code, notes, and snippets.

@enactdev
Last active October 31, 2017 01:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save enactdev/d434e9799f598e28910ba546496a6e9c to your computer and use it in GitHub Desktop.
Save enactdev/d434e9799f598e28910ba546496a6e9c to your computer and use it in GitHub Desktop.
Data Products Week 3
This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<html>
<head>
<title>Philly Population</title>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="generator" content="pandoc" />
<meta name="date" content="2017-10-30" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes">
<base target="_blank">
<script type="text/javascript">
var SLIDE_CONFIG = {
// Slide settings
settings: {
title: 'Philly Population',
useBuilds: true,
usePrettify: true,
enableSlideAreas: true,
enableTouch: true,
},
// Author information
presenters: [
{
name: 'Chris Williams' ,
company: '',
gplus: '',
twitter: '',
www: '',
github: ''
},
]
};
</script>
<link href="data:text/css;charset=utf-8,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAQAQAABAAARkZUTVyseR0AAI5wAAAAHE9TLzKhPb8OAAABiAAAAGBjbWFwjOjcmQAABUAAAAGyY3Z0IA9NGKQAAA%2B0AAAAomZwZ21%2BYbYRAAAG9AAAB7RnYXNwABUAIwAAjmAAAAAQZ2x5ZqzBrbUAABIIAABRVGhlYWT5NhTaAAABDAAAADZoaGVhDrcE%2BgAAAUQAAAAkaG10eJh3VwIAAAHoAAADWGtlcm4Mlg8JAABjXAAAIwRsb2NhdpdjTAAAEFgAAAGubWF4cAJdAUoAAAFoAAAAIG5hbWXeiHLCAACGYAAABglwb3N0gnjp1QAAjGwAAAHycHJlcEO3lqQAAA6oAAABCQABAAAAARmaMibrIV8PPPUAHwgAAAAAAMnt2GAAAAAAye3YYP55%2FhAHrgdzAAAACAACAAAAAAAAAAEAAAiN%2FagAAAgA%2Fnn%2BeweuAAEAAAAAAAAAAAAAAAAAAADWAAEAAADWAEIABQA9AAQAAgAQAC8AXAAAAQ4AmQADAAEAAwROAZAABQAIBZoFMwAAAR8FmgUzAAAD0QBmAfEIAgILBgYDBQQCAgTgAALvQAAgWwAAACgAAAAAMUFTQwBAACAgrAYf%2FhQAhAiNAlggAAGfAAAAAARIBbYAAAAgAAEIAAAAAAAAAAQUAAACFAAAAiMAmAM1AIUFKwAzBJMAgwaWAGgF1wBxAcUAhQJeAFICXgA9BGoAVgSTAGgB9gA%2FApMAVAIhAJgC8AAUBJMAZgSTALwEkwBkBJMAXgSTACsEkwCFBJMAdQSTAF4EkwBoBJMAagIhAJgCIQA%2FBJMAaASTAHcEkwBoA28AGwcxAHkFEAAABS8AyQUMAH0F1QDJBHMAyQQhAMkF0wB9BecAyQI7AMkCI%2F9gBOkAyQQnAMkHOQDJBggAyQY7AH0E0QDJBjsAfQTyAMkEZABqBG0AEgXTALoEwwAAB2gAGwSeAAgEewAABJEAUgKiAKYC8AAXAqIAMwRWADEDlv%2F8BJ4BiQRzAF4E5wCwA88AcwTnAHMEfQBzArYAHQRiACcE6QCwAgYAogIG%2F5EEMwCwAgYAsAdxALAE6QCwBNUAcwTnALAE5wBzA0QAsAPRAGoC0wAfBOkApAQCAAAGOQAXBDEAJwQIAAIDvgBSAwgAPQRoAe4DCABIBJMAaAIUAAACIwCYBJMAvgSTAD8EkwB7BJMAHwRoAe4EIQB7BJ4BNQaoAGQC1QBGA%2FoAUgSTAGgCkwBUBqgAZAQA%2F%2FoDbQB%2FBJMAaALHADECxwAhBJ4BiQT0ALAFPQBxAiEAmAHRACUCxwBMAwAAQgP6AFAGPQBLBj0ALgY9ABoDbwAzBRAAAAUQAAAFEAAABRAAAAUQAAAFEAAABvz%2F%2FgUMAH0EcwDJBHMAyQRzAMkEcwDJAjsABQI7ALMCO%2F%2FHAjsABQXHAC8GCADJBjsAfQY7AH0GOwB9BjsAfQY7AH0EkwCFBjsAfQXTALoF0wC6BdMAugXTALoEewAABOMAyQT6ALAEcwBeBHMAXgRzAF4EcwBeBHMAXgRzAF4G3QBeA88AcwR9AHMEfQBzBH0AcwR9AHMCBv%2FaAgYAqQIG%2F7MCBv%2FsBMUAcQTpALAE1QBzBNUAcwTVAHME1QBzBNUAcwSTAGgE1QBzBOkApATpAKQE6QCkBOkApAQIAAIE5wCwBAgAAgIGALAHYgB9B4kAcQS8AQwEngFvBLwBCAQAAFIIAABSAVwAGQFcABkB9gA%2FAs0AGQLNABkDPQAZAwIApAJvAFICbwBQAQr%2BeQLHABQEuAA%2FAAAAAwAAAAMAAAAcAAEAAAAAAKwAAwABAAAAHAAEAJAAAAAgACAABAAAAH4A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCs%2F%2F8AAAAgAKABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrP%2F%2F%2F%2BP%2Fwv%2BR%2F3H9%2F%2F3s%2FevgteCy4LHgruCY4I%2FgYOApAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0%2BP0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAhoeJi5OYnqOipKalp6mrqqytr66wsbO1tLa4t7y7vb4AcmRladB4oXBrAHZqAIiaAHMAAGd3AAAAAABsfACouoFjbgAAAABtfQBigoWXw8TIyc3Oysu5AMEA09XR0gAAAHnMzwCEjIONio%2BQkY6VlgCUnJ2bwsXHcQAAxnoAAAAAAEBHW1pZWFVUU1JRUE9OTUxLSklIR0ZFRENCQUA%2FPj08Ozo5ODc2NTEwLy4tLCgnJiUkIyIhHxgUERAPDg0LCgkIBwYFBAMCAQAsILABYEWwAyUgEUZhI0UjYUgtLCBFGGhELSxFI0ZgsCBhILBGYLAEJiNISC0sRSNGI2GwIGAgsCZhsCBhsAQmI0hILSxFI0ZgsEBhILBmYLAEJiNISC0sRSNGI2GwQGAgsCZhsEBhsAQmI0hILSwBECA8ADwtLCBFIyCwzUQjILgBWlFYIyCwjUQjWSCw7VFYIyCwTUQjWSCwBCZRWCMgsA1EI1khIS0sICBFGGhEILABYCBFsEZ2aIpFYEQtLAGxCwpDI0NlCi0sALEKC0MjQwstLACwKCNwsQEoPgGwKCNwsQIoRTqxAgAIDS0sIEWwAyVFYWSwUFFYRUQbISFZLSxJsA4jRC0sIEWwAENgRC0sAbAGQ7AHQ2UKLSwgabBAYbAAiyCxLMCKjLgQAGJgKwxkI2RhXFiwA2FZLSyKA0WKioewESuwKSNEsCl65BgtLEVlsCwjREWwKyNELSxLUlhFRBshIVktLEtRWEVEGyEhWS0sAbAFJRAjIIr1ALABYCPt7C0sAbAFJRAjIIr1ALABYSPt7C0sAbAGJRD1AO3sLSywAkOwAVJYISEhISEbRiNGYIqKRiMgRopgimG4%2F4BiIyAQI4qxDAyKcEVgILAAUFiwAWG4%2F7qLG7BGjFmwEGBoATpZLSwgRbADJUZSS7ATUVtYsAIlRiBoYbADJbADJT8jITgbIRFZLSwgRbADJUZQWLACJUYgaGGwAyWwAyU%2FIyE4GyERWS0sALAHQ7AGQwstLCEhDGQjZIu4QABiLSwhsIBRWAxkI2SLuCAAYhuyAEAvK1mwAmAtLCGwwFFYDGQjZIu4FVViG7IAgC8rWbACYC0sDGQjZIu4QABiYCMhLSxLU1iKsAQlSWQjRWmwQIthsIBisCBharAOI0QjELAO9hshI4oSESA5L1ktLEtTWCCwAyVJZGkgsAUmsAYlSWQjYbCAYrAgYWqwDiNEsAQmELAO9ooQsA4jRLAO9rAOI0SwDu0birAEJhESIDkjIDkvL1ktLEUjRWAjRWAjRWAjdmgYsIBiIC0ssEgrLSwgRbAAVFiwQEQgRbBAYUQbISFZLSxFsTAvRSNFYWCwAWBpRC0sS1FYsC8jcLAUI0IbISFZLSxLUVggsAMlRWlTWEQbISFZGyEhWS0sRbAUQ7AAYGOwAWBpRC0ssC9FRC0sRSMgRYpgRC0sRSNFYEQtLEsjUVi5ADP%2F4LE0IBuzMwA0AFlERC0ssBZDWLADJkWKWGRmsB9gG2SwIGBmIFgbIbBAWbABYVkjWGVZsCkjRCMQsCngGyEhISEhWS0ssAJDVFhLUyNLUVpYOBshIVkbISEhIVktLLAWQ1iwBCVFZLAgYGYgWBshsEBZsAFhI1gbZVmwKSNEsAUlsAglCCBYAhsDWbAEJRCwBSUgRrAEJSNCPLAEJbAHJQiwByUQsAYlIEawBCWwAWAjQjwgWAEbAFmwBCUQsAUlsCngsCkgRWVEsAclELAGJbAp4LAFJbAIJQggWAIbA1mwBSWwAyVDSLAEJbAHJQiwBiWwAyWwAWBDSBshWSEhISEhISEtLAKwBCUgIEawBCUjQrAFJQiwAyVFSCEhISEtLAKwAyUgsAQlCLACJUNIISEhLSxFIyBFGCCwAFAgWCNlI1kjaCCwQFBYIbBAWSNYZVmKYEQtLEtTI0tRWlggRYpgRBshIVktLEtUWCBFimBEGyEhWS0sS1MjS1FaWDgbISFZLSywACFLVFg4GyEhWS0ssAJDVFiwRisbISEhIVktLLACQ1RYsEcrGyEhIVktLLACQ1RYsEgrGyEhISFZLSywAkNUWLBJKxshISFZLSwgiggjS1OKS1FaWCM4GyEhWS0sALACJUmwAFNYILBAOBEbIVktLAFGI0ZgI0ZhIyAQIEaKYbj%2FgGKKsUBAinBFYGg6LSwgiiNJZIojU1g8GyFZLSxLUlh9G3pZLSywEgBLAUtUQi0ssQIAQrEjAYhRsUABiFNaWLkQAAAgiFRYsgIBAkNgQlmxJAGIUVi5IAAAQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuUAAAICIVFiyAgQCQ2BCWblAAACAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAIuAGAsQlAG7IFQAi6AYAACQFAWblAAACAiFW5QAACAGO4BACIVVpYswwADQEbswwADQFZWVlCQkJCQi0sRRhoI0tRWCMgRSBksEBQWHxZaIpgWUQtLLAAFrACJbACJQGwASM%2BALACIz6xAQIGDLAKI2VCsAsjQgGwASM%2FALACIz%2BxAQIGDLAGI2VCsAcjQrABFgEtLLCAsAJDULABsAJDVFtYISMQsCAayRuKEO1ZLSywWSstLIoQ5S1AmQkhSCBVIAEeVR9IA1UfHgEPHj8erx4DTUsmH0xLMx9LRiUfJjQQVSUzJFUZE%2F8fBwT%2FHwYD%2Fx9KSTMfSUYlHxMzElUFAQNVBDMDVR8DAQ8DPwOvAwNHRhkf60YBIzMiVRwzG1UWMxVVEQEPVRAzD1UPD08PAh8Pzw8CDw%2F%2FDwIGAgEAVQEzAFVvAH8ArwDvAAQQAAGAFgEFAbgBkLFUUysrS7gH%2F1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQBCHUuwMlNYsCAdWUuwZFNYsBAdsRYAQllzcysrXnN0dSsrKysrdCtzdCsrKysrKysrKysrKytzdCsrKxheAAAABhQAFwBOBbYAFwB1BbYFzQAAAAAAAAAAAAAAAAAABEgAFACRAAD%2F7AAAAAD%2F7AAAAAD%2F7AAA%2FhT%2F7AAABbYAE%2FyU%2F%2B3%2Bhf%2Fq%2Fqn%2F7AAY%2FrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAiwCBAN0AmACPAI4AmQCIAIEBDwCKAAAAAAAAAAAAAAAAADIAWADgAVwBzgJMAmYCkgK%2BAvoDJgNEA1oDfAOWA9gEAgREBKIE5AUwBY4FsAYgBn4GtAboBwgHMgdSB6oIMghyCM4JDAlICX4JrAn8Ci4KRApsCpwKugr4CzALdgu0DAgMVgyqDM4NAg0qDW4Nng3GDfIOFg4wDlQOdg6MDqwPCA9eD5oP7hA8EHwREBFOEXwRuhH4EhASaBKiEuQTOhOOE8IUFBRUFJIUuhUGFTYVcBWcFd4V9hY8FnYWdhaoFvQXRheUF%2BgYDhiKGMAZPBmKGcYZ5BnsGnYajBrEGuIbHBtsG4wbzBv8HB4cUBx4HLIc6h0AHRYdLB2KHZwdrh3AHdId5B3wHj4eSh5cHm4egB6SHqQeth7IHtofMh9EH1YfaB96H4wfnh%2FMIDggSiBcIG4ggCCSINQhPCFMIVwhbCF8IY4hoCIsIjgiSCJYImgieiKMIp4isCLCIyojOiNKI1ojaiN6I4wj0iQ4JEgkWCRoJHokiiTiJPQlDCVwJeomFCZKJoQmmiawJs4m7Cb0JyQnVidwJ5AntCfYJ%2FIoNCiqAAAAAgCY%2F%2BMBiQW2AAMADgArQBQDCQkCBAQPEAEBDAIMBk9ZDBYCAwA%2FPysREgA5GC8REgE5ETMzETMxMAEjAzMDNDMyFhUUBiMiJgFGaTPP4Xg6P0A5NEQBkwQj%2BrSIRkJARz8AAAIAhQOmArAFtgADAAcAH0ANAAMHBAMECAkGAgcDAwA%2FM80yERIBOTkRMxEzMTABAyMDIQMjAwE%2FKGkpAispaCkFtv3wAhD98AIQAAACADMAAAT2BbYAGwAfAJlAVQgfHBUEFAkRDAwJEg8OCwQKExMUFh0eBwQGFwQBABkEGAUFBhQGCiEDGhcDGAoYICEIBAwNDE5ZHAENHwAQERBOWRkVEU8NAU8RAQ0RDREFFxMDCgUALzM%2FMxI5OS8vXV0RMzMrEQAzMxEzMysRADMzERIBOTkRFzMREjk5ETMREhc5ERIXOREzERIXOTIyETMREhc5MTABAyEVIQMjEyEDIxMhNSETITUhEzMDIRMzAyEVASETIQPVQgEb%2Fs1UiVT%2B0VKIUP76AR9E%2FusBK1KLUgExVIZUAQj85QEvQv7RA4P%2BrIH%2BUgGu%2FlIBroEBVH8BtP5MAbT%2BTH%2F%2BrAFUAAMAg%2F%2BJBAwGEgAgACYALQBmQDUnESUdFwQEKhQNBSEAABkFEQkFLi8lDQYNTVkDBiQOKg5MWR0qKxwUHE1ZFyoUBhQGFAUWBQAvLxI5OS8vEjkyKxEAMxEzKxEAMxEzKxEAMxESARc5ETMRMzMzMxEzMzMRMzEwARQGBxUjNSImJzUeATMRLgE1NDY3NTMVFhcHJicRHgIHNCYnETYBFBYXEQ4BBAzMt4Fw0kNT2VnNpcungbirNJWanZxKqlmA2f3dWm9jZgHBiLEX6N8jH5wlLwG4QayIg6gStrQFRYM7C%2F5OMl97ZUhZLP57HgMHTFwpAYMQXQAABQBo%2F%2BwGLQXLAAkAFQAhAC0AMQBFQCQAEAUKFigcIiIuKAowEAYyMwMNHysNKw0rMDEGMBgZJRkHEwcAPzM%2FMz8%2FEjk5Ly8RMxEzERIBFzkRMxEzETMRMzEwExQWMzIRECMiBgUUBiMiJjU0NjMyFgEUFjMyNjU0JiMiBgUUBiMiJjU0NjMyFgkBIwHySlOkpFNKAcqZlIyblZKRnAGmSlRUUFBUVEoBy5mUjpmVko6f%2Fv781ZMDKwQCqqoBVAFSqKrk6e7f4%2Bbu%2FNurqaetq6Wlq%2BPp7t7j5usDIPpKBbYAAAAAAwBx%2F%2BwF0wXNAAsAFQA1AFFAMBMWAB0GIyorListIw4mGR0WCTY3MwxJWTMTDyctDjAFLwMZJgMqKiAvEiAJSlkgBAA%2FKwAYPxI5Lxc5Ehc5PysREgEXOREzETMRMxEzMTABFBYXPgE1NCYjIgYTMjcBDgIVFBYlNDY3LgI1NDYzMhYVFAYHAT4BNzMCBwEjJw4BIyImAZ5IV4FlZ1ZZb5vxn%2F5Lb1wsm%2F65i7RVPSTEr6K6iJ0BlzhDF6hEiQEr5bl29JbX7QSTRX1YS39TTWFg%2B52aAahEWWZBdYn6gshmX2JqOZaop5VrtV3%2BeT6nY%2F7ilP7dsmpc1AAAAQCFA6YBPwW2AAMAFLcAAwMEBQIDAwA%2FzRESATkRMzEwAQMjAwE%2FKGkpBbb98AIQAAAAAAEAUv68AiEFtgANABxADAcACgQABA4PCycDAwA%2FPxESATk5ETMRMzEwExASNzMGAhUUEhcjJgJSm5KikJGUi6CTmgIxAQkBzq7B%2FjL08P42vaoBxgAAAAABAD3%2BvAIMBbYADQAcQAwECgcACgAODwoDBCcAPz8REgE5OREzETMxMAEQAgcjNhI1NAInMxYSAgybkqCLlJGQopOaAjH%2B%2Bf46qLwBy%2FD0Ac7Br%2F4xAAAAAQBWAn8EDgYUAA4AMEAbAwUEAQcNCgkLCQ8QBAoBDQIMDA0KBwQGCA4AAD%2FEMhc5ETMRMxEzERIBFzkxMAEDJRcFEwcLAScTJTcFAwKRKwGOGv6D%2BKywoLDy%2FocdAYcrBhT%2BdW%2B2H%2F66XgFq%2FpZeAUYftm8BiwAAAQBoAOMEKQTDAAsAKEATAAQECQUFDA0DBwgHUFkADwgBCAAvXTMrEQAzERIBOREzMxEzMTABIRUhESMRITUhETMCjQGc%2FmSL%2FmYBmosDF4r%2BVgGqigGsAAEAP%2F74AW0A7gAIABG1BQAJCgUAAC%2FNERIBOTkxMCUXBgIHIzYSNwFeDxpiNX0bQQ3uF2T%2B93JoATJcAAEAVAHZAj8CcQADABG1AgAFBAABAC8zERIBOTkxMBM1IRVUAesB2ZiYAAAAAQCY%2F%2BMBiQDyAAsAGEALBgAADA0JA09ZCRYAPysREgE5ETMxMDc0NjMyFhUUBiMiJpg9OTpBQjkzQ2pDRUVDQUY%2FAAABABQAAALbBbYAAwATtwIABAUDAwISAD8%2FERIBOTkxMAkBIwEC2%2F3fpgIhBbb6SgW2AAAAAgBm%2F%2BwELQXNAAsAFwAoQBQSAAwGAAYZGAkVS1kJBwMPS1kDGQA%2FKwAYPysREgE5OREzETMxMAEQAiMiAhEQEjMyEgEQEjMyEhEQAiMiAgQt7%2Fbs9u707vf84ZakppWVpqSWAt3%2Bhf6KAX8BcgF%2BAXL%2Bfv6S%2FsH%2B3QEnATsBOwEl%2Ft8AAQC8AAACywW2AAoAJEAQCQABCAELDAQJBwcBCQYBGAA%2FPxI5LxI5ERIBOTkRMzMxMCEjETQ3DgEHJwEzAsuiCBU01FgBg4wEEoJ0FS6scgErAAAAAQBkAAAEJQXLABkAK0AXGAEHEwATDgEEGhsQCktZEAcBGExZARgAPysAGD8rERIBFzkRMxEzMTApATUBPgI1NCYjIgYHJzYzMhYVFAIHARUhBCX8PwGBsHA4jn5bo2RYyu7O6pzW%2FsAC8I8Bg7KYkFN1iTxPcajTsov%2B8ND%2BxwgAAAAAAQBe%2F%2BwEGwXLACcAQ0AkGwATBwcAAxYiDQYoKQMXFhcWS1kXFwolJR5LWSUHChFLWQoZAD8rABg%2FKxESADkYLysREgA5ERIBFzkRMxEzMTABFAYHFR4BFRQEISImJzUeATMgERAhIzUzMjY1NCYjIgYHJz4BMzIWA%2B6dkLCq%2Ft7%2B9XTBW1%2FXYAF7%2Fl6QkqvIk35gqm1UWuuC1ewEXoyyHggWtJLR4SMsni8xASkBCo%2BXhmt6NEZwR1HDAAACACsAAARqBb4ACgASADxAHhIFCQICCwcDAAMFAxMUAQUSBUxZCQ8HEhIDBwYDGAA%2FPxI5LxI5MysRADMREgEXOREzMzMRMxEzMTABIxEjESE1ATMRMyERNDcjBgcBBGrZn%2F05Araw2f6ICggwKv43AVD%2BsAFQkQPd%2FCkB5o%2B0YD%2F9dgABAIX%2F7AQdBbYAGgA6QB8PAxkUCBQXAwQcGwARS1kAAAYVFRhMWRUGBgxLWQYZAD8rABg%2FKxESADkYLysREgEXOREzETMxMAEyBBUUACMiJzUeATMyNjUQISIHJxMhFSEDNgIt5wEJ%2Ft%2F%2B94JG0GWww%2F6JX59WNwLX%2FbclcwN95cfj%2Fv5PoC0zpp0BMh03AqyZ%2FkkXAAAAAAIAdf%2FsBC8FywAWACQAREAjGhELISEAAAYRAyYlDAsOHU1ZCw4OFAMUF0tZFBkDCE1ZAwcAPysAGD8rERIAORgvOSsRADMREgEXOREzETMRMzEwExAAITIXFSYjIgIDMzYzMhYVFAIjIgAFMjY1NCYjIg4BFRQeAXUBTwFIcUFNY%2Bv4DAxu7sXj%2BdTj%2FvYB646dkpFalllQkwJxAa8BqxOPGf7b%2Fsas7szk%2FvsBVcizqZGmSoJGZ7JoAAAAAQBeAAAEKwW2AAYAH0AQAQUFAAIDBwgDAkxZAwYAGAA%2FPysREgEXOREzMTAhASE1IRUBAR0CXvzjA839qgUdmYX6zwADAGj%2F7AQpBcsAFgAiAC4ATUApFw8mFCwDHQkJAwYRFA8GLzAGESkgKSBLWSkpDAAMGk1ZDBkAI01ZAAcAPysAGD8rERIAORgvKxESADk5ERIBFzkRMxEzETMRMzEwATIWFRQGBx4BFRQGIyImNTQlLgE1NDYDFBYzMjY1NCYnDgEBIgYVFBYXPgE1NCYCSMjqhpOylv7d6vwBMop463enl5WmnMKVhgE6fY52n493kQXLuqRssklVu3u22c28%2B4xOtXCfvfumeIaMemGXR0CbA2d4ZFyEQjyKXGV3AAAAAAIAav%2FsBCUFywAXACUAQUAiGxEiCgoAAAQRAyYnDh5NWQsUDg4CFBQYS1kUBwIHTVkCGQA%2FKwAYPysREgA5GC8SOSsREgEXOREzETMRMzEwARAhIic1FjMyEhMjDgEjIiY1NAAzMhYSASIGFRQWMzI%2BATU0LgEEJf1odERQZvD1Cww3tnLC5AD%2F0JXfeP4Uj5yQk1uZWFKTA0b8phSPGgEpATNTV%2BjQ5AEImf7bATC4pJClSoBGabJmAAAAAgCY%2F%2BMBiQRkAAsAFQAoQBQQBgYMAAAWFw4TT1kOEAkDT1kJFgA%2FKwAYPysREgE5ETMzETMxMDc0NjMyFhUUBiMiJhE0MzIVFAYjIiaYPTk6QUI5M0N2e0I5M0NqQ0VFQ0FGPwO7h4dBRj8AAgA%2F%2FvgBhQRkAAgAEgAiQBABDQ0FCQkUEwsQT1kLEAUAAC%2FNPysREgE5ETMzETMxMCUXBgIHIzYSNwM0MzIVFAYjIiYBXg8aYjV9G0ENFXd7Qjk6Pe4XZP73cmgBMlwC74eHQUZGAAABAGgA8gQpBNkABgAVQAkEAAUBBAcIAwAALy8REgEXOTEwJQE1ARUJAQQp%2FD8DwfzyAw7yAaZiAd%2BV%2Fo3%2BuAAAAgB3AcEEGQPjAAMABwAqQBUHAgQAAgAJCAQFUFkEAQBQWQ8BAQEAL10rABgvKxESATk5ETMRMzEwEzUhFQE1IRV3A6L8XgOiA1qJif5niYkAAAAAAQBoAPIEKQTZAAYAFUAJBQECAAQHCAYDAC8vERIBFzkxMBMJATUBFQFoAw%2F88QPB%2FD8BiQFGAXWV%2FiFi%2FloAAAIAG%2F%2FjAzkFywAbACYAOUAdIRwbAAcTEwAcDgQnKAAAJBAkHk9ZJBYQCklZEAQAPysAGD8rERIAORgvERIBFzkRMxEzETMxMAE1NDY3PgE1NCYjIgYHJzYzMhYVFA4BBw4BHQEDNDMyFhUUBiMiJgEhSGKIR4N7T5ZhO73Ov9QnTH5lQbJ4Oj9AOTREAZM2dZdUc3RSZm8lMYdjvKtJb2NuVnJfIf7XiEZCQEc%2FAAAAAgB5%2F0YGuAW0ADUAPwBFQCIjLjYOOwcUGwAAKRQOLgVAQRg4OAQ9CBELEQsRKx8yAyYrAC8zPzMSOTkvLxI5MjMzETMREgEXOREzETMzETMRMzEwARQOASMiJicjDgEjIiY1NBIzMhYXAxUUMzI2NTQCJCMiBAIVEAAhMjcVBiMgABEQEiQhMgQSARQzMhsBJiMiBga4WKBoVnYLCCiVZpap7MBErEUZhVtylP7vsd%2F%2Btq4BQgEv0uLA9P6V%2Fm%2FWAYwBANcBT7f79sPPEg5IVYKTAtmO7IJoUVdizbDMAP8ZFv4qFrLXrLUBEJO5%2Fqnh%2Fs%2F%2BuFaFVAGPAWYBBAGW37X%2Bs%2F6k%2FgE5AQUUtAAAAAACAAAAAAUQBbwABwAOADlAHgIOCwgBBQADAAcDBAcEEA8OAklZCwUODgQFAwAEEgA%2FMz8SOS8SOSsREgE5OREzETMREhc5MTAhAyEDIwEzCQEDJicGBwMEYLb9trSsAkKPAj%2F%2BZaohIxYprAHR%2Fi8FvPpEAmoBxVZ9YHP%2BOwAAAAMAyQAABL4FtgAOABcAIABJQCYTBB0KDxkZDgoEBw4EISIIDxgPGEpZDw8OAA4ZSlkOEgAXSlkAAwA%2FKwAYPysREgA5GC8rERIAORESARc5ETMRMxEzETMxMBMhIAQVFAYHFQQRFAQjIRMhMjY1NCYrARkBITI2NTQmI8kBnQEjAQSRiwFN%2Fvfu%2FgKqARi0nrDA%2BgExsbO3uwW2rryCqRkKOf7bxNwDRHGGe239kf3diZKIgAAAAAABAH3%2F7ATPBcsAFgAmQBQDDhQJDgMXGBIASVkSBAsGSVkLEwA%2FKwAYPysREgEXOREzMTABIgAREAAzMjcVBiMgABE0EiQzMhcHJgM78f7pAQ35mcSY3%2F69%2FqGpAT%2FY5qxIpgUz%2Fr%2F%2B6f7h%2Fsc3lTkBiAFp4gFUuFSSTgAAAgDJAAAFWAW2AAgAEQAoQBQOBAkABAASEwUNSlkFAwQOSlkEEgA%2FKwAYPysREgE5OREzETMxMAEQACkBESEgAAMQACEjETMgAAVY%2Fnf%2Bj%2F5rAcABVQF6tP7h%2FuX3zwEwATIC6f6W%2FoEFtv6G%2FqcBHgEi%2B3ABKwAAAQDJAAAD%2BAW2AAsAOkAfBgoKAQQACAEEDA0GCUlZBgYBAgIFSVkCAwEKSVkBEgA%2FKwAYPysREgA5GC8rERIBFzkRMxEzMTApAREhFSERIRUhESED%2BPzRAy%2F9ewJe%2FaIChQW2l%2F4plv3mAAAAAQDJAAAD%2BAW2AAkAMkAaBgAAAQMIAQMKCwYJSVkGBgECAgVJWQIDARIAPz8rERIAORgvKxESARc5ETMRMzEwISMRIRUhESEVIQFzqgMv%2FXsCXv2iBbaX%2FemXAAABAH3%2F7AU9BcsAGwA6QB8UCBkCAg4bCAQcHQAbSVkAAAUMDBFJWQwEBRdJWQUTAD8rABg%2FKxESADkYLysREgEXOREzETMxMAEhEQ4BIyAAETQSJDMyFwcmIyAAERAAITI3ESEDTAHxdPCe%2FrT%2BjrcBWOfqykLGt%2F71%2FtQBIQEYmJH%2BuQL%2B%2FTklJgGLAWTkAVe1VpZU%2FsL%2B5v7Y%2Fs4jAcIAAQDJAAAFHwW2AAsAM0AZCQEBAAgEBAUABQ0MCANJWQgIBQoGAwEFEgA%2FMz8zEjkvKxESATk5ETMRMxEzETMxMCEjESERIxEzESERMwUfqvz%2BqqoDAqoCsP1QBbb9kgJuAAAAAAEAyQAAAXMFtgADABG2AAQFAQMAEgA%2FPxESATkxMDMRMxHJqgW2%2BkoAAAAAAf9g%2Fn8BaAW2AA0AHUANCwgIDg8JAwAFSVkAIgA%2FKwAYPxESATkRMzEwAyInNRYzMjY1ETMRFAYMXjZHTWNnqsD%2BfxuRFHhxBbb6WL7RAAABAMkAAATpBbYACwAqQBUIBAQFBQILCgAFDQwCCAUJBgMBBRIAPzM%2FMxI5ORESARc5ETMRMzEwISMBBxEjETMRATMBBOnI%2FeuZqqoCl8n9tALFiP3DBbb9KwLV%2FYUAAAABAMkAAAP4BbYABQAfQA4DAAAEBgcBAwADSVkAEgA%2FKwAYPxESATk5ETMxMDMRMxEhFcmqAoUFtvrkmgABAMkAAAZxBbYAEwAyQBgIBQUGCw4ODQYNFBUBChEDBgsHAw4ABhIAPzMzPzMSFzkREgE5OREzETMRMxEzMTAhASMWFREjESEBMwEzESMRNDcjAQNQ%2FhAIDp0BAAHPCAHT%2FqoOCP4MBRCa1PxeBbb7SgS2%2BkoDrqK%2B%2BvIAAQDJAAAFPwW2ABAALkAVCQYGBwEPDwAHABESCwMHDwgDAQcSAD8zPzMSOTkREgE5OREzETMRMxEzMTAhIwEjFhURIxEzATMmAjcRMwU%2FwvzhCBCdwAMdCAIOAp8Ey9i0%2FMEFtvs6GwElPwNHAAAAAAIAff%2FsBb4FzQALABcAKEAUEgAMBgAGGRgJFUlZCQQDD0lZAxMAPysAGD8rERIBOTkRMxEzMTABEAAhIAAREAAhIAABEBIzMhIREAIjIgIFvv6d%2FsT%2Bvf6hAWABRAE7AWL7c%2F3x8%2Fj38vP9At3%2Bof5uAYsBaAFlAYn%2BcP6g%2Ftf%2BzQEyASoBJwEx%2Fs0AAgDJAAAEaAW2AAkAEgA0QBoKBQUGDgAGABMUCgRKWQoKBgcHEkpZBwMGEgA%2FPysREgA5GC8rERIBOTkRMxEzETMxMAEUBCEjESMRISABMzI2NTQmKwEEaP7R%2FuasqgF7AiT9C5niyr7JvgQM3u%2F9wQW2%2FRuSoZGOAAAAAAIAff6kBb4FzQAPABsANEAbEAoWAAAEAwoEHB0DDQcNGUlZDQQHE0lZBQcTAD%2FGKwAYPysREgA5ERIBFzkRMxEzMTABEAIHASMBByAAERAAISAAARASMzISERACIyICBb7izgFc9%2F7jN%2F69%2FqEBYAFEATsBYvtz%2FfHz%2BPfy8%2F0C3f7n%2FoxC%2FpYBSgIBiwFoAWUBif5w%2FqD%2B1%2F7NATIBKgEnATH%2BzQAAAAIAyQAABM8FtgAMABUASEAlDQEBAgwJEQcLCgoHCQIEFhcJDQANAEpZDQ0CAwMVSVkDAwsCEgA%2FMz8rERIAORgvKxESADkREgEXOREzETMRMxEzETMxMAERIxEhIAQVEAUBIwElMzI2NTQmKwEBc6oBkQENAQH%2B2gGNyf6e%2Fs%2FptKirvd0CYP2gBbbOz%2F7eZv1vAmCSj4%2BRgAAAAAEAav%2FsBAIFywAkADRAGx4TDAAAGBMFBCUmDB4DFhYbSVkWBAMJSVkDEwA%2FKwAYPysREgA5ORESARc5ETMRMzEwARQEIyAnNR4BMzI2NTQuAScuATU0NjMyFwcmIyIGFRQeARceAQQC%2Fujw%2FvyMWtRoqqw9j5LMr%2F7R2rc1tauHmDiFieatAYXB2EOkJiyBc0xhUjRJyKGpyFCUTHRnTGFRMVK8AAAAAAEAEgAABFoFtgAHACRAEgABBQEDAwgJBwMEA0lZBAMBEgA%2FPysRADMREgEXOREzMTAhIxEhNSEVIQKLqv4xBEj%2BMQUfl5cAAAEAuv%2FsBRkFtgARACVAERABCgcBBxMSEQgDBA1JWQQTAD8rABg%2FMxESATk5ETMRMzEwAREUACEgADURMxEUFjMyNjURBRn%2B0v74%2Fvj%2B36rIwrnIBbb8Tvr%2B4gEg%2FAOu%2FEa3xMW4A7gAAQAAAAAEwwW2AAoAGkALAQQMCwgDAAQDAxIAPz8zEjkREgE5OTEwATMBIwEzARYXNjcEDLf98aj99LQBUDoiJDoFtvpKBbb8TqOaoqEAAAABABsAAAdMBbYAGQAkQBAZChsaFQ4OBQkYEQoDAQkSAD8zPzMzEjk5ETMREgE5OTEwISMBLgEnBgcBIwEzExYXNjcBMwEWFzY3EzMFxaj%2B2RU0ARYw%2FuKo%2Fnu05zAWGzUBBrQBEzAhEzXmtAPTQcYUhJ38MwW2%2FHm%2BmrevA3n8f5vDjswDhQAAAQAIAAAElgW2AAsAI0ASBAYFCwoABg0MAggECQYDAQQSAD8zPzMSOTkREgEXOTEwISMJASMJATMJATMBBJbB%2Fnf%2BcLQB5v47vAFrAW61%2FjsCg%2F19AvwCuv29AkP9TAAAAQAAAAAEewW2AAgAIEAPBAUCBQcDCQoABQEHAwUSAD8%2FMxI5ERIBFzkRMzEwCQEzAREjEQEzAj0Bhrj%2BGKz%2BGboC2wLb%2FIH9yQIvA4cAAAABAFIAAAQ%2FBbYACQArQBcIAQMHAAcEAQQKCwUESVkFAwEISVkBEgA%2FKwAYPysREgEXOREzETMxMCkBNQEhNSEVASEEP%2FwTAwj9EAO%2F%2FPgDHoUEmJmF%2B2kAAQCm%2FrwCbwW2AAcAIEAOBgEEAAEACAkFAgMGAScAPzM%2FMxESATk5ETMRMzEwASERIRUhESECb%2F43Acn%2B3wEh%2FrwG%2Bo36IQAAAQAXAAAC3QW2AAMAE7cDAQQFAwMCEgA%2FPxESATk5MTATASMBugIjpv3gBbb6SgW2AAAAAAEAM%2F68AfwFtgAHACBADgMAAQYABggJAAcnAwQDAD8zPzMREgE5OREzETMxMBchESE1IREhMwEh%2Ft8Byf43tgXfjfkGAAAAAAEAMQInBCMFwQAGABhACQADBwgFAgAEAgAvLzMSORESATk5MTATATMBIwkBMQGyYwHdmP6M%2FrICJwOa%2FGYC6f0XAAAAAf%2F8%2FsUDmv9IAAMAEbUABQEEAQIALzMRATMRMzEwASE1IQOa%2FGIDnv7FgwABAYkE2QMSBiEACQATtgAECwoGgAEALxrNERIBOTkxMAEjLgEnNTMeARcDEm5BsijLIHIsBNk0wD8VRbU1AAAAAgBe%2F%2BwDzQRaABkAJABHQCUiCAseHhkZEggDJSYBAgseR1kCCwsAFRUPRlkVEAUaRlkFFgAVAD8%2FKwAYPysREgA5GC85KxEAMxESARc5ETMRMxEzMTAhJyMOASMiJjUQJTc1NCYjIgcnPgEzMhYVESUyNj0BBw4BFRQWA1IhCFKjeqO5AhO6b3qJrTNRwWHEvf4Om7Gmxq9tnGdJqJsBTBAGRIF7VH8sMq7A%2FRR1qpljBwdtc1peAAIAsP%2FsBHUGFAATAB8AREAiChcXDw8MHQMMAyAhDQAMFRIRChEGAAYaRlkGFgAURlkAEAA%2FKwAYPysREgA5OREzGD8%2FERIBOTkRMxEzETMRMzEwATISERACIyImJyMHIxEzERQHMzYXIgYVFBYzMjY1NCYCrtjv8dZrsTwMI3emCAh0zKqWmqqZlpYEWv7Z%2FvL%2B8v7VT1KNBhT%2Bhn9lpIvD5%2BfH39HW0gAAAAABAHP%2F7AOLBFwAFgAmQBQPAwMVCQMYFwYNRlkGEAASRlkAFgA%2FKwAYPysREgEXOREzMTAFIgAREAAzMhYXBy4BIyARFBYzMjcVBgJm7v77AQn1T54tMzeCMv6yo6CJkG4UASUBDAETASwiF40WHf5Wytg7kzkAAAACAHP%2F7AQ3BhQAEgAfAEJAIR0GFwAODhEGESAhEhUPAAABAQwDCQkaRlkJEAMTRlkDFgA%2FKwAYPysREgA5OREzGD8%2FERIBOTkRMxEzMxEzMTAlIwYjIgIREBIzMhczLwERMxEjJTI2PQE0JiMiBhUUFgOaCXPl1%2B%2Fw1t93DQcEpof%2BnqqZm6qSm5qTpwEmAQ8BDwEsok9NAb757He5ziPpx%2BPP0tYAAAACAHP%2F7AQSBFwAEwAaADtAHxgKFwsDAxEKAxwbFwtGWRcXAAYGFEZZBhAADkZZABYAPysAGD8rERIAORgvKxESARc5ETMzETMxMAUiABEQADMyEh0BIR4BMzI3FQ4BAyIGByE0JgJ%2F8%2F7nAQXczvD9DQW5qLGtWJ2chJ0OAj2MFAEoAQcBCQE4%2FvHeacHISpQmIQPlrJidpwAAAAABAB0AAAMOBh8AFAA5QB0UDAwTAgIHAwUDFRYKD0ZZCgABBQcFRlkTBw8DFQA%2FPzMrEQAzGD8rERIBOTkRMzMRMzMSOTEwASERIxEjNTc1ECEyFwcmIyIGHQEhAp7%2B6abExAFhV3UrYEReWgEXA8f8OQPHSzw9AZQjhR99ikcAAAMAJ%2F4UBDEEXAAqADcAQQBuQD4rGTglDB89BTETARMFAioiHB8lGQpCQxwPNQ81RlkIO0dZCiIIKg8IDwgWKioCR1kqDyg%2FR1koEBYuR1kWGwA%2FKwAYPysAGD8rERIAOTkYLy8REjk5KysREgA5ERIBFzkRMxEzETMRMxEzMTABFQceARUUBiMiJwYVFBY7ATIWFRQEISImNTQ2Ny4BNTQ2Ny4BNTQ2MzIXARQWMzI2NTQmKwEiBhMUFjMyNTQjIgYEMcscLNzAMStqSlrCsr%2F%2B3P7o1%2BmAdCo5QEVVa9jGVkX%2BEZaM0clumMdxflqCdPP2dX4ESGkYI3FHocAIOFUtK5aPtr%2BgkmSSGhNQNTxaKiOobLTDFPsAWVx9a1lFbAM8c3bs934AAQCwAAAERAYUABYAM0AZDgwICAkAFgkWFxgOCRISBEZZEhAKAAAJFQA%2FMz8%2FKxESADkREgE5OREzETMRMzMxMCERNCYjIgYVESMRMxEUBzM%2BATMyFhURA556gq2fpqYICjG1dMnJAsWGhLzW%2FcMGFP4pVThPW7%2FQ%2FTUAAAIAogAAAWYF3wADAA8AI0ARCgAABAEBEBENB0hZDQIPARUAPz%2FOKxESATkRMzMRMzEwISMRMwM0NjMyFhUUBiMiJgFWpqa0OCooOjooKjgESAEpOTU2ODg3NwAAAv%2BR%2FhQBZgXfAAwAGAAsQBYTCwsNCAgZGhYQSFkWQAkPAAVGWQAbAD8rABg%2FGs4rERIBOREzMxEzMTATIic1FjMyNjURMxEQAzQ2MzIWFRQGIyImK187RUNOSaa0OCooOjooKjj%2BFBmHFFVXBPz7EP68B105NTY4ODc3AAEAsAAABB0GFAAQADZAGxAOCgoLCwgGBAUIBBESDAAAEBAICAMHCxUDDwA%2FPzMSOS85ETM%2FERIBFzkROREzETMzMTABNjcBMwkBIwEHESMRMxEUBwFUK1gBYsX%2BRAHbyf59faSkCAIxPWMBd%2F4t%2FYsCBmz%2BZgYU%2FMc3cwABALAAAAFWBhQAAwAWQAkAAQEEBQIAARUAPz8REgE5ETMxMCEjETMBVqamBhQAAAABALAAAAbLBFwAIwBGQCMVERESCAkAIwkSIwMkJRwWFRUSGQQNGQ1GWR8ZEBMPCQASFQA%2FMzM%2FPzMrEQAzERI5GC8zMxESARc5ETMRMxEzETMxMCERNCYjIgYVESMRNCYjIgYVESMRMxczPgEzIBczPgEzMhYVEQYlcHablKZwd5yRpocbCC%2BragEBTwgxune6uQLJg4Oyuf2cAsmDg7vV%2FcEESJZQWrpWZL%2FS%2FTUAAAEAsAAABEQEXAAUADFAGAAUDAgICRQJFhUMCRAQBEZZEBAKDwAJFQA%2FMz8%2FKxESADkREgE5OREzETMRMzEwIRE0JiMiBhURIxEzFzM%2BATMyFhURA556gqygpocbCDO4ccbIAsWGhLrW%2FcEESJZRWb%2FS%2FTUAAgBz%2F%2BwEYgRcAAwAGAAoQBQTAA0HAAcaGQoWRlkKEAMQRlkDFgA%2FKwAYPysREgE5OREzETMxMAEQACMiJgI1EAAzMgABFBYzMjY1NCYjIgYEYv7y7pPkfAEM7uYBD%2Fy9qKOjqamlo6YCJf70%2FtOKAQKtAQwBK%2F7O%2FvvS3NvT0dnWAAAAAgCw%2FhQEdQRcABQAIQA%2FQCAZCwQHBwgfEggSIiMECwAPDxVGWQ8QCQ8IGwAcRlkAFgA%2FKwAYPz8%2FKxESADk5ERIBOTkRMxEzETMzMzEwBSImJyMWFREjETMXMz4BMzISERACAyIGBxUUFjMyNjU0JgKua7E8DAymhxcIQKpu2u3x7qiWApqqjqGhFE9SYFb%2BPQY0llpQ%2Ftb%2B8%2F7y%2FtUD47rLJefH5srN2wAAAAIAc%2F4UBDcEXAAMAB8AREAiChAdFgMaGhkQGSAhGhsXDx0eHhYNExMHRlkTEA0ARlkNFgA%2FKwAYPysREgA5OREzGD8%2FERIBOTkRMxEzMzMRMzEwJTI2NzU0JiMiBhUUFhciAhEQEjMyFzM3MxEjETQ3IwYCTqaYBZypkpuZfdTu8NbheQkYg6YLDXN3stMl5srjz8%2FZiwEqAQsBDQEuqpb5zAHVZEanAAEAsAAAAycEXAAQACpAFA0JCQoKAhESCw8NAAoVAAVGWQAQAD8rABg%2FEjk%2FERIBOTkRMxEzMTABMhcHJiMiBhURIxEzFzM%2BAQKkSToXRDSFvaaJEwg9rARcDJoP2KH9tARIy2t0AAAAAQBq%2F%2BwDcwRcACQANkAcHhMMAAAYBRMEJSYMHgMWFhtGWRYQBgMJRlkDFgA%2FKwAYLz8rERIAOTkREgEXOREzETMxMAEUBiMiJzUeATMyNjU0JicuAjU0NjMyFwcmIyIGFRQeARceAQNz5M7aek%2B1VIKMb6GZgT%2FavrGpO6WGdngtZI7DiQErmaZFmiguU1VAWz45VWxLhptIh0RKQSw%2BODVHkAABAB%2F%2F7AKoBUYAFgA0QBsQFBQJCwkSAwQYFwoTEBNHWQ5AEA8HAEZZBxYAPysAGD8azSsRADMREgEXOREzETMxMCUyNjcVDgEjIBkBIzU%2FATMVIRUhERQWAhIsUhgbaSr%2Bwp2dRmABPv7CXnUNB38NEQFPAoxQRer%2Bgf17Y2oAAAEApP%2FsBDkESAAUADRAGQETBwwMChMKFRYMDQ0QCBQPEARGWRAWCxUAPz8rABg%2FMxI5ETMREgE5OREzETMRMzEwAREUFjMyNjURMxEjJyMOASMiJjURAUx6gqyfpokYCTO1dMjHBEj9OYaEvNUCQPu4k1FWvtECzQAAAAABAAAAAAQCBEgACwAYQAoBCgwNBQkBDwAVAD8%2FMzkREgE5OTEwIQEzExYXMzYSEzMBAaD%2BYLLsUA4IC3XMsv5gBEj9duRENQFNAjD7uAAAAAEAFwAABiMESAAcACxAFAkbHR4XFg4NAwQNBAgaEgkPAAgVAD8zPzMzEjk5ETMRMzMzERIBOTkxMCEDJicjBgcDIwEzGgEXMz4BNxMzExYXMz4BEzMBBC%2FJEzQIKB7PwP7VrmpvCAgLMRLJtMQ4FAgEI7%2Bs%2FtECgzvRr1%2F9fwRI%2FmP%2BUEs5tTUCdf2LrHUklgLc%2B7gAAAAAAQAnAAAECARIAAsAIkARBwUGAAEFDA0JAwEICxUEAQ8APzM%2FMxI5ORESARc5MTAJATMJATMJASMJASMBuP6DvQEhASC7%2FoMBkbz%2Bzf7KvAIxAhf%2BXAGk%2Fen9zwG8%2FkQAAQAC%2FhQEBgRIABUAJEASCQ8AAxYXBA0ADRJGWQ0bCAAPAD8yPysREgA5ERIBFzkxMBMzExYXMz4BEzMBDgEjIic1FjMyPwECsvBPEwgNU%2Bay%2FilGu4hMSjdEq0k9BEj9j9ZfM%2FcCfPsguZsRhQzAnAAAAAABAFIAAANtBEgACQArQBcIAQMHAAcEAQQKCwUER1kFDwEIR1kBFQA%2FKwAYPysREgEXOREzETMxMCkBNQEhNSEVASEDbfzlAlb9zwLn%2FbICXXEDVoGB%2FLoAAQA9%2FrwCwQW2ABwALEAVGRoaCxcAAA8HFAMDBwsDHR4TAwQnAD8%2FERIBFzkRMxEzMxEzETMRMzEwJRQWFxUuATURNCYjNT4BNRE0NjMVBhURFAcVFhUB23VxvtB%2BeIJ02Lbm398MZlwCjAKqmgEvaFmNAlxgATKbrIsGwf7Z1ycMJ9cAAQHu%2FhACewYUAAMAFkAJAgMDBAUDGwAAAD8%2FERIBOREzMTABMxEjAe6NjQYU9%2FwAAQBI%2FrwCywW2AB0ALEAVFQUKEhICGQAdHQ4OGQUDHh8VJwYDAD8%2FERIBFzkRMxEzETMzETMRMzEwASY1ETQnNTIWFREUFhcVIgYVERQGBzU%2BATURNDY3Agrf47jTdoJ6fs2%2Bb3RucQI%2FJ9cBJ8EGi66Z%2Fs5hWwKNWWj%2B0ZmrAowCXGYBKXJ4FAAAAAABAGgCUAQpA1QAFwAkQBEDDxgZEgxQWQMSDwYGAFBZBgAvKwAQGMQvxCsREgE5OTEwASIGBzU2MzIWFx4BMzI2NxUGIyImJy4BAVI1fzZkkERxWUJiLzaANmaOSH5IS1oCyUM2l20cJhwbQDmWbiEgIBgAAAIAmP6LAYkEXgADAA4AK0AUAgQEAwkJDxAAAAMMDAZPWQwQAyIAPz8rERIAORgvERIBOREzMxEzMTATMxMjExQjIiY1NDYzMhbbaTPP4Xk8PD85M0YCrPvfBUyHR0A%2FSEAAAAABAL7%2F7APbBcsAGwA%2BQB4WCA0DAwoEABAQBAgDHB0ZBQITCg0CDQINBAsHBBkAPz8SOTkvLxEzMxEzMxESARc5ETMRMzMRMxEzMTAlBgcVIzUmAjUQJTUzFR4BFwcmIyIGFRQWMzI3A8tpk4XLwQGMh0uOMTGFbayin6eNjvA2BsjOIAER%2BgH8PqykAyEXjDPT2dTLOwAAAAEAPwAABEQFyQAdAEhAJhgTCQ0NGhYRAgsWEwUeHwwYGRhOWQkZGRMAExBMWRMYAAVLWQAHAD8rABg%2FKxESADkYLzMrEQAzERIBFzkRMzMRMxEzMTABMhcHJiMiBhURIRUhFRQGByEVITU2PQEjNTMRNDYCqr6qPZqPe30Bpv5aQUoDG%2Fv7zcbG4AXJVIVNfIz%2B2X%2FdZIgsmo0v9N9%2FATyyzQAAAgB7AQYEFwSgABsAJwAgQA0cACIOAA4oKR8VFSUHAC8zMy8zERIBOTkRMxEzMTATNDcnNxc2MzIXNxcHFhUUBxcHJwYjIicHJzcmNxQWMzI2NTQmIyIGuEqHXodogn9miV%2BGSkqDXIlmf4Zkh1yFSoGddHSeoHJ0nQLTemuMXIVJSYVcinF2g2eHXIVHSYVciGt8cKCfcXKipAAAAQAfAAAEcQW2ABYAVkAuEg4HCwsQDAUJAgkDDBQOFQcXGAoODgcPBhISAwATFQ8THxMCDxMPEwwBFQYMGAA%2FPzMSOTkvL10REjkyMhEzETMzETMREgEXOREzETMzETMRMzEwCQEzASEVIRUhFSERIxEhNSE1ITUhATMCSAF7rv5gAQb%2BwwE9%2FsOk%2FsQBPP7EAQD%2BZbIC3wLX%2FP5%2Fqn%2F%2B9AEMf6p%2FAwIAAgHu%2FhACewYUAAMABwAkQBACBgYDBwcICQQDBAMHGwAAAD8%2FOTkvLxESATkRMzMRMzEwATMRIxEzESMB7o2NjY0GFPz4%2Fg389wAAAAIAe%2F%2F4A5YGHQAxAD0AQ0AmMgATBioeOBkZHgwGACMGPj8VAzs2HC0GIQkhJ0dZIRUJEEdZCQAAPysAGD8rERIAFzkREgEXOREzETMRMxEzMTATNDY3LgE1NDYzMhYXBy4BIyIGFRQWFx4BFRQGBxYVFAYjIic1HgEzMjY1NC4BJy4CNxQWHwE2NTQmJw4Bi1ZOSlTPxV6fYTVih0x0dHuaupZSSpnq1NqATsJSho0wbHOOhkKShKcxiZO5RFUDKVaJJShvVXmLHSeDJxs7QDxUN0SXa1qNKVGSjJlBlCUtTEcuOjorNFpyYk1pPRNQb1NwORNkAAAAAgE1BQ4DaAXTAAsAFwAeQAwGAAwSABIYGQ8DFQkALzPNMhESATk5ETMRMzEwATQ2MzIWFRQGIyImJTQ2MzIWFRQGIyImATU1JSY3NyYlNQF9NSUlNzclJTUFcTQuLjQyMTEyNC4uNDIxMQAAAwBk%2F%2BwGRAXLABYAJgA2AEZAJycXAw8vHx8UCQ8XBTc4BgwAEg8MHwwCABIQEgIMEgwSGysjEzMbBAA%2FMz8zEjk5Ly9dXREzETMREgEXOREzETMRMzEwASIGFRQWMzI3FQ4BIyImNTQ2MzIXByYBNBIkMzIEEhUUAgQjIiQCNxQSBDMyJBI1NAIkIyIEAgN9fYd%2Fg1Z9MGVGwtDdv4B2Omz8l8gBXsrIAV7Kwv6i0M%2F%2BosNprgEtrK4BKq%2Bu%2Ftewrv7WrwQjrpqooi18FBzx2NH2PHYz%2FrjIAV7KyP6iysX%2BptDPAVrGrf7Tra4BKbCuASqvrv7XAAACAEYDFAJxBccAFgAfADdAHBcGGwoBARYWEAYDICEcCgoSGRYAAxADAgMNEh8APzPUXcQzEjkvMxESARc5ETMRMzMRMzEwAScGIyImNTQ2PwE1NCMiByc2MzIWFRElFDMyPQEHDgECFBhcjF9vmqV1lGRoK3KFgon%2BUHDJYnBnAyFUYWNmZmkGBCeFM2A4aXn%2BPLxktDEEBDkAAAACAFIAdQOqA74ABgANAClAEwMGCg0CBAsJCQQNBgQODwwFCAEALzMvMxESARc5ETMRMxEzETMxMBMBFwkBBwElARcJAQcBUgFWd%2F7fASF3%2FqoBiwFYdf7hAR91%2FqgCJwGXRf6i%2FqFHAZcbAZdF%2FqL%2BoUcBlwAAAAABAGgBCAQpAxcABQAbQAwCAQQBBgcFBFBZBQIALy8rERIBOTkRMzEwAREjESE1BCmJ%2FMgDF%2F3xAYWKAP%2F%2FAFQB2QI%2FAnESBgAQAAAABABk%2F%2BwGRAXLAAgAFgAmADYAXUAzJxcAERESBAkvHx8NCQwSFwY3OAwQEAAADhMOEggTDxIfEgIAExATAhITEhMbKyMTMxsEAD8zPzMSOTkvL11dETMRMxESOS8zETMREgEXOREzETMRMxEzETMxMAEzMjY1NCYrAQUUBgcTIwMjESMRITIWATQSJDMyBBIVFAIEIyIkAjcUEgQzMiQSNTQCJCMiBAIC02xQYVZdagGyVU3uqM%2BHlAEFppv738gBXsrIAV7Kwv6i0M%2F%2BosNprgEtrK4BKq%2Bu%2Ftewrv7WrwL6U0BLQYhQex7%2BdQFi%2Fp4De4L%2BxcgBXsrI%2FqLKxf6m0M8BWsat%2FtOtrgEpsK4BKq%2Bu%2FtcAAf%2F6BhQEBgaTAAMAEbUABQEEAQIALzMRATMRMzEwASE1IQQG%2B%2FQEDAYUfwACAH8DXALuBcsADAAYACFADg0AEwYABhkaEArAFgMEAD8zGswyERIBOTkRMxEzMTATNDYzMhYVFA4BIyImNxQWMzI2NTQmIyIGf7WCgrZSklSCtXN1UVBzcVJTcwSTgra1g1SPVLSDUnJxU1RxcgAAAgBoAAEEKQTDAAMADwAANzUhFQEhFSERIxEhNSERM2gDwf5kAZz%2BZIv%2BZgGaiwGKigMWiv5WAaqKAawAAQAxAkoCjQXJABgAI0ARBxMXAQEOEwAEGhkKEB8XASAAPzM%2FMxESARc5ETMRMzEwASE1Nz4CNTQmIyIGByc2MzIWFRQGDwEhAo39pOxZUiFQPzRiRUKDmISTWZOuAbgCSmjmVmFMNkRFJjJYb4JwUJeKpQABACECOQKNBckAIwA5QCIPBQUAAxIeCgYkJRJdE20TAkwTAQsTGxMCExMIGiEfDQghAD8zPzMSOS9dXV0zERIBFzkRMzEwARQGBxYVFAYjIic1FjMyNTQrATUzMjY1NCYjIgYHJz4BMzIWAnNSRLC4qJh0k3vT53V3Z2NQQ0JwOEU%2FjF6InQTnUGcXL6KAjzh7RKKRa09EPUQrI1otNncAAQGJBNkDEgYhAAkAE7YJBAoLBIAJAC8azRESATk5MTABPgE3MxUOAQcjAYkwbyDKLK5AbwTyPrBBFUG%2BNAAAAAEAsP4UBEQESAAWADVAGgUKCggQABMTFAgUGBcGFQ8UGw0CRlkNFgkVAD8%2FKwAYPz8zERIBOTkRMxEzMxEzETMxMAEQMzI2NREzESMnIwYjIicjFhURIxEzAVb%2Bq5%2BmiBoKb%2BWWWAoKpqYBff76vdQCQPu4k6dcVKD%2BwAY0AAAAAQBx%2FvwEYAYUAA8AJ0ASBAUBAAAFCwMQEQgIBQMPBQEFAC8zPzMSOS8REgEXOREzETMxMAEjESMRIxEGIyImNRA2MyEEYHLVcz5U2Mva6AIt%2FvwGsPlQAzMS%2BvsBBP4AAQCYAkwBiQNaAAsAF0AKBgAADQwDCU9ZAwAvKxESATkRMzEwEzQ2MzIWFRQGIyImmD44OkFCOTNDAtNCRUVCQUY%2FAAABACX%2BFAG0AAAAEgAkQBARDgsAAA4FAxMUDhERCAMQAC%2FMMjkvMxESARc5ETMRMzEwARQGIyInNRYzMjY1NCYnNzMHFgG0mZYzLS07T1FPbVhuN7T%2B32FqCWoIKDYrNRGycycAAQBMAkoB4QW2AAoAIEAOAgADAwoMCwkJAyAGAB4APzI%2FOS8REgE5OREzMzEwATMRIxE0Nw4BBycBUo%2BFBhY2h0MFtvyUAkNbWhYtX2AAAAACAEIDFAK%2BBccACwAXACVAEgwGEgAGABgZDwADEAMCAxUJHwA%2FM8RdMhESATk5ETMRMzEwARQGIyImNTQ2MzIWBRQWMzI2NTQmIyIGAr6rlpKpqJeYpf3%2BW2hpXFxpZ1wEb6S3uqGjtbaienp6ent2dgAAAAIAUAB1A6gDvgAGAA0AI0ARCwkEAgADBwIKCQYODwwFCAEALzMvMxESARc5ETMRMzEwCQEnCQE3AQUBJwkBNwEDqP6odQEf%2FuF1AVj%2Bdf6odQEf%2FuF1AVgCDP5pRwFfAV5F%2Fmkb%2FmlHAV8BXkX%2Baf%2F%2FAEsAAAXRBbYQJwDTAoMAABAmAHv%2FABEHANQDHf23AAmzAwISGAA%2FNTUA%2F%2F8ALgAABdsFthAnANMCPwAAECYAe%2BIAEQcAdANO%2FbcAB7ICEBgAPzUAAAD%2F%2FwAaAAAGIQXJECYAdfkAECcA0wLfAAARBwDUA239twAJswMCKxgAPzU1AAACADP%2BdwNUBF4AHQAoAEFAIggUHiMBHA8cIxQEKSoAHQEMAx0dESYmIE9ZJhARC0lZESMAPysAGD8rERIAORgvX15dERIBFzkRMxEzETMxMAEVFAYHDgIVFBYzMjY3FwYjIiY1ND4CNz4BPQETFCMiJjU0NjMyFgJOS2F5PRmEelCWYjvFxr7YI0BZNmVBtHk7PkI3M0YCrDN6lFRqS004ZHEmMIdguqpGaVlSL1h0XR8BK4dFQkBHQAAA%2F%2F8AAAAABRAHcxImACQAABEHAEP%2FwgFSAAizAhAFJgArNQAA%2F%2F8AAAAABRAHcxImACQAABEHAHYAhQFSAAizAhgFJgArNQAA%2F%2F8AAAAABRAHcxImACQAABEHAMUAIwFSAAizAh0FJgArNQAA%2F%2F8AAAAABRAHLxImACQAABEHAMcABAFSAAizAhgFJgArNQAA%2F%2F8AAAAABRAHJRImACQAABEHAGoANwFSAAq0AwIkBSYAKzU1%2F%2F8AAAAABRAHBhImACQAABAHAMYAOQCBAAL%2F%2FgAABoEFtgAPABMATkAsCg4OEQEACAwBEAUFFQUUCRMGE0lZEANJWQoNSVkQChAKAQYDBRIBDklZARIAPysAGD8%2FEjk5Ly8rKysRADMRATMREhc5ETMzETMxMCkBESEDIwEhFSERIRUhESEBIREjBoH9Ev3%2B47ACugPJ%2FbwCHf3jAkT7VAG%2BdgHR%2Fi8Ftpf%2BKZb95gHSArUA%2F%2F8Aff4UBM8FyxImACYAABAHAHoCAgAA%2F%2F8AyQAAA%2FgHcxImACgAABEHAEP%2FtwFSAAizAQ0FJgArNQAA%2F%2F8AyQAAA%2FgHcxImACgAABEHAHYAPwFSAAizARUFJgArNQAA%2F%2F8AyQAAA%2FgHcxImACgAABEHAMX%2F%2BwFSAAizARoFJgArNQAA%2F%2F8AyQAAA%2FgHJRImACgAABEHAGoAEgFSAAq0AgEhBSYAKzU1%2F%2F8ABQAAAY4HcxImACwAABEHAEP%2BfAFSAAizAQUFJgArNQAA%2F%2F8AswAAAjwHcxImACwAABEHAHb%2FKgFSAAizAQ0FJgArNQAA%2F%2F%2F%2FxwAAAmkHcxImACwAABEHAMX%2BuwFSAAizARIFJgArNQAA%2F%2F8ABQAAAjgHJRImACwAABEHAGr%2B0AFSAAq0AgEZBSYAKzU1AAIALwAABUgFtgAMABcAV0AyERUVCAQNAAATBAYEGBkUBgcGSVkRDwc%2FB68HzwffBwULAwcHBAkJEEpZCQMEFUpZBBIAPysAGD8rERIAORgvX15dMysRADMREgEXOREzETMzETMxMAEQACkBESM1MxEhIAADECEjESEVIREzIAVI%2Fnf%2Bj%2F57mpoBsgFRAXy1%2FcfnAXv%2Bhb4CYgLp%2Fpb%2BgQKJlgKX%2Fon%2BpAJA%2FfyW%2Fgr%2F%2FwDJAAAFPwcvEiYAMQAAEQcAxwCTAVIACLMBGgUmACs1AAD%2F%2FwB9%2F%2BwFvgdzEiYAMgAAEQcAQwB5AVIACLMCGQUmACs1AAD%2F%2FwB9%2F%2BwFvgdzEiYAMgAAEQcAdgEKAVIACLMCIQUmACs1AAD%2F%2FwB9%2F%2BwFvgdzEiYAMgAAEQcAxQC0AVIACLMCJgUmACs1AAD%2F%2FwB9%2F%2BwFvgcvEiYAMgAAEQcAxwCaAVIACLMCIQUmACs1AAD%2F%2FwB9%2F%2BwFvgclEiYAMgAAEQcAagDVAVIACrQDAi0FJgArNTUAAQCFARAEDASYAAsAGUAJBwkDAQkBDA0IABkvERIBOTkRMxEzMTABFwkBBwkBJwkBNwEDrGD%2BoAFeYP6e%2FqRlAV7%2BoGQBYQSYY%2F6e%2FqBjAV%2F%2BoWMBYAFgZf6dAAADAH3%2FwwW%2BBfYAEwAbACMATkAsFh8XHgQcFBwKFAAAEg8FCAoGJCUWHiEZDSFJWQ8SCAUEAxANBAMZSVkGAxMAP8YrABg%2FxhIXOSsREgA5ORESARc5ETMRMxESFzkxMAEQACEiJwcnNyYREAAhMhc3FwcWAxAnARYzMhIBEBcBJiMiAgW%2B%2Fp3%2BxOuUZXhssgFgAUTRnWF4asC0bv1gc7Dz%2BPwnZQKdaqjz%2FQLd%2FqH%2BbmSNT5rGAW0BZQGJXodQlMr%2BlQEQmvxMUgEyASr%2B%2BpoDr0n%2BzQAAAP%2F%2FALr%2F7AUZB3MSJgA4AAARBwBDAEYBUgAIswETBSYAKzUAAP%2F%2FALr%2F7AUZB3MSJgA4AAARBwB2AM8BUgAIswEbBSYAKzUAAP%2F%2FALr%2F7AUZB3MSJgA4AAARBwDFAH0BUgAIswEgBSYAKzUAAP%2F%2FALr%2F7AUZByUSJgA4AAARBwBqAJgBUgAKtAIBJwUmACs1Nf%2F%2FAAAAAAR7B3MSJgA8AAARBwB2ADEBUgAIswESBSYAKzUAAAACAMkAAAR5BbYADAAVADZAHA0JBQUGEQAGABYXDQRKWQkVSlkNCQ0JBgcDBhIAPz8SOTkvLysrERIBOTkRMxEzETMzMTABFAQhIxEjETMRMyAEATMyNjU0JisBBHn%2B0f7huKqq1wEZARb8%2Bqjiyr7KzAMQ4%2B7%2BwQW2%2FwDP%2FeqPpJWKAAABALD%2F7AScBh8AMABBQCIpKgUdIwAXDAwAHREqBTEyEhIqLi4mRlkuACoVDxVGWQ8WAD8rABg%2FPysREgA5GC8REgEXOREzETMRMxEzMTABFAcOARUUHgEXHgEVFAYjIic1HgEzMjU0JicuATU0Njc%2BATU0JiMgFREjETQ2MzIWBBmPWDgbR06MZsKzvGs%2FnEjXU25%2FYEVHS0CIf%2F7sptzezuEE8odzRkMhICo5M1%2BdZaCrRZonL7ZLa0ZSe1Q%2FajU5WjVQVd%2F7TASysrudAAD%2F%2FwBe%2F%2BwDzQYhEiYARAAAEQYAQ44AAAizAiYRJgArNf%2F%2FAF7%2F7APNBiESJgBEAAARBgB2KwAACLMCLhEmACs1%2F%2F8AXv%2FsA80GIRImAEQAABEGAMXYAAAIswIzESYAKzX%2F%2FwBe%2F%2BwDzQXdEiYARAAAEQYAx70AAAizAi4RJgArNf%2F%2FAF7%2F7APNBdMSJgBEAAARBgBq4gAACrQDAjoRJgArNTUAAP%2F%2FAF7%2F7APNBoUSJgBEAAARBgDG9wAACrQDAigRJgArNTUAAAADAF7%2F7AZzBFwAKQA0ADsAYUAzKgAkETA4GRkEMDkYGB8wCwAFPD0bLSctRlkZMQQxR1k4JCcRBAQOIicWNQgOCEZZFA4QAD8zKxEAMxg%2FMxI5LzkSOTMrEQAzKxEAMxESARc5ETMRMzMRMxI5OREzMTATNDY%2FATU0JiMiByc%2BATMyFhc%2BATMyEh0BIRIhMjY3FQ4BIyAnDgEjIiY3FBYzMjY9AQcOAQEiBgchNCZe%2BP64dHeQozRKx2KCpSk1q27A6P1DCAE6W51UVpVl%2Ft99UcWGo7mua1iRqJ66pAO9eYsLAgeAAS%2BhswgGRIF7VH8pNVdfWGD%2B9d5r%2FnUjJ5QmIel%2FaqqXX1mpmmMHCG0CMqaenKgAAAD%2F%2FwBz%2FhQDiwRcEiYARgAAEAcAegFGAAD%2F%2FwBz%2F%2BwEEgYhEiYASAAAEQYAQ7UAAAizAhwRJgArNf%2F%2FAHP%2F7AQSBiESJgBIAAARBgB2TgAACLMCJBEmACs1%2F%2F8Ac%2F%2FsBBIGIRImAEgAABEGAMX3AAAIswIpESYAKzX%2F%2FwBz%2F%2BwEEgXTEiYASAAAEQYAagoAAAq0AwIwESYAKzU1AAD%2F%2F%2F%2FaAAABYwYhEiYAwgAAEQcAQ%2F5RAAAACLMBBREmACs1AAD%2F%2FwCpAAACMgYhEiYAwgAAEQcAdv8gAAAACLMBDREmACs1AAD%2F%2F%2F%2BzAAACVQYhEiYAwgAAEQcAxf6nAAAACLMBEhEmACs1AAD%2F%2F%2F%2FsAAACHwXTEiYAwgAAEQcAav63AAAACrQCARkRJgArNTUAAgBx%2F%2BwEYgYhABsAJgBKQCshBgwcHAAAGBkWDhETEAYJJygJH0ZZCwMWERkODwUUCQkDFxQBAyRGWQMWAD8rABg%2FMxI5LxIXORI5KxESARc5ETMRMxEzMTABEAAjIgA1NAAzMhc3JicFJzcmJzcWFzcXBxYSAzQmIyARFBYzMjYEYv77997%2B6QEH3OJkCDnN%2FvFJ6VxeRZxm7kzPmKWotJz%2Br6%2Bir6ECM%2F7n%2FtIBDeLmAQZ5BNa%2Fm2yFPjF1SUuKa3eP%2FnL%2B6JOq%2Fpint8kA%2F%2F8AsAAABEQF3RImAFEAABEGAMcOAAAIswEeESYAKzX%2F%2FwBz%2F%2BwEYgYhEiYAUgAAEQYAQ9QAAAizAhoRJgArNf%2F%2FAHP%2F7ARiBiESJgBSAAARBgB2VgAACLMCIhEmACs1%2F%2F8Ac%2F%2FsBGIGIRImAFIAABEGAMUOAAAIswInESYAKzX%2F%2FwBz%2F%2BwEYgXdEiYAUgAAEQYAx%2FEAAAizAiIRJgArNf%2F%2FAHP%2F7ARiBdMSJgBSAAARBgBqGwAACrQDAi4RJgArNTUAAAADAGgA%2FAQpBKgAAwAPABsAM0AYFgoKEAQCBAEDHB0ZExMBBw0NAQEAUFkBAC8rEQAzGC8zETMvMxESARc5ETMzETMxMBM1IRUBNDYzMhYVFAYjIiYRNDYzMhYVFAYjIiZoA8H9rjs2NDo7MzQ9OzY0OjszND0CjYqK%2Fug8PT86OUA%2FAvQ8PT86OUA%2FAAMAc%2F%2B8BGIEhwATABsAIwBLQCkXHxwUFAocAAASDwUICgYkJRYeIRkNGUZZDxIIBQQDEA0QAyFGWQYDFgA%2FxisAGD%2FGEhc5KxESADk5ERIBFzkRMxEzERI5OTEwARAAIyInByc3JhEQADMyFzcXBxYFFBcBJiMiBgU0JwEWMzI2BGL%2B8u6acFRyXoEBDO6adFR1YX%2F8vTUB0Utyo6YClzP%2BL0dxo6kCJf70%2FtNFdU6DmAEAAQwBK0x3TIWY%2BatmAoY11tSkZP19M9sA%2F%2F8ApP%2FsBDkGIRImAFgAABEGAEPEAAAIswEWESYAKzX%2F%2FwCk%2F%2BwEOQYhEiYAWAAAEQYAdnEAAAizAR4RJgArNf%2F%2FAKT%2F7AQ5BiESJgBYAAARBgDFEgAACLMBIxEmACs1%2F%2F8ApP%2FsBDkF0xImAFgAABEGAGohAAAKtAIBKhEmACs1NQAA%2F%2F8AAv4UBAYGIRImAFwAABEGAHYSAAAIswEfESYAKzUAAgCw%2FhQEdQYUABYAIgA%2BQB8gBhsUEBARBhEkIxIAERsMFgkDCR5GWQkWAxdGWQMQAD8rABg%2FKxESADk5GD8%2FERIBOTkRMxEzMxEzMTABPgEzMhIREAIjIicjFxYVESMRMxEUByUiBgcVFBYzIBE0JgFYQqpq1%2FDx1t56DAQIpqYGAUiomAKaqgEvlAO0WU%2F%2B1P71%2FvT%2B06EiTT%2F%2BNQgA%2Fi40Whu4ySnnxwGw19EAAP%2F%2FAAL%2BFAQGBdMSJgBcAAARBgBqtQAACrQCASsRJgArNTUAAAABALAAAAFWBEgAAwAWQAkAAQEFBAIPARUAPz8REgE5ETMxMCEjETMBVqamBEgAAAACAH3%2F7AbnBc0AFAAfAFNALhgGDxMTHQANER0GBSAhDxJJWQ8PAAsLDklZCwMJFUlZCQQDG0lZAxIAE0lZABIAPysAGD8rABg%2FKwAYPysREgA5GC8rERIBFzkRMxEzETMxMCkBBiMgABEQACEyFyEVIREhFSERIQEiABEQADMyNxEmBuf9AGZc%2Frn%2BnwFcAUBmWgMO%2FbMCJ%2F3ZAk38RPn%2B%2FwEB93BXVxQBiQFqAWgBhheX%2FimW%2FeYEnf7P%2Ftn%2B1%2F7NIQR1HgAAAAMAcf%2FsBx8EWgAeACoAMQBVQC0fCA4CFhYlLxUVHCUIBDIzKygLKEZZLhZGWQIFDgsuLgURCxAYIgUiRlkABRYAPzMrEQAzGD8zEjkvEjkSOSsrEQAzERIBFzkRMxEzEjk5ETMxMAUgJw4BIyIAERAAMzIWFz4BMzISHQEhEiEyNjcVDgEBFBYzMjY1NCYjIgYlIgYHITQmBZb%2B230%2B0Ynf%2FvQBBuuDzT46wH7J7v0nCAFKXqFXWJj7IZino5mbpaaVBEd%2FkQwCIIQU63R3ATEBCAEJASx3cnB5%2Fvfiaf53IyeUJyACOdPb1dHd1djYpJ6epAABAQwE2QOuBiEADgAYQAkHABAPCwSADgkALzMazTIREgE5OTEwAT4BNzMeARcVIyYnBgcjAQx%2FZhemFm19d1iFiFNzBPCIgCkqhYIXN4OGNAAAAAACAW8E2QMtBoUACwAXAB5ADBIGDAAGABgZDwkVAwAvM8wyERIBOTkRMxEzMTABFAYjIiY1NDYzMhYHNCYjIgYVFBYzMjYDLXtmZXh5ZGV8bEIzM0I8OTRBBbJid3ViYnN3Xjg9PTg4PT0AAAABAQgE2QPwBd0AFwAkQA8JFRgZEQAFDAAMAAwVgAkALxrMOTkvLxEzETMREgE5OTEwASIuAiMiBgcjPgEzMh4CMzI2NzMOAQMUK1JPSSIyMw5iDXNbLlZOSCAxMA9jDXEE2yUtJTw9eYklLSU7PnmJAAAAAAEAUgHZA64CcQADABG1AAIEBQABAC8zERIBOTkxMBM1IRVSA1wB2ZiYAAAAAQBSAdkHrgJxAAMAEbUAAgQFAAEALzMREgE5OTEwEzUhFVIHXAHZmJgAAAABABkDwQFEBbYABwAStgEFCAkABAMAP80REgE5OTEwEyc2EjczBgclDBZiOHtCJQPBFloBDHn%2B9wAAAAABABkDwQFEBbYABwAStgUBCAkFBwMAP8YREgE5OTEwARcGAgcjEjcBNQ8aYjV6RiAFthZk%2FvdyAR3YAP%2F%2FAD%2F%2B%2BAFtAO4SBgAPAAAAAgAZA8ECtAW2AAcADwAaQAwEAQ0JBBARAAgDDAMAPzPNMhESARc5MTABJzYTMwYCByEnNhI3MwYHAZYPOHp7HjsN%2FdcMFmI4e0IlA8EW1wEIc%2F7fYRZaAQx5%2FvcAAAAAAgAZA8ECtAW2AAcAEAAaQAwJDQEFBBESDQUQBwMAPzPGMhESARc5MTABFwYCByMSNyEXBgIHIzYSNwE1DxpiNXpGIAInDhhgOH0aQg0FthZk%2FvdyAR3YFlv%2B9npkATRdAAAA%2F%2F8AGf75ArQA7hEHAM4AAPs4ACC3AQAHQA0NSAe4%2F8CzDAxIB7j%2FwLMJCUgHABErKys1NQABAKQB9AJeA%2BMACwATtgYAAAwNCQMAL80REgE5ETMxMBM0NjMyFhUUBiMiJqRxbGl0c2prcgLseX58e3eBgwAAAQBSAHUCHwO%2BAAYAGkAKBAIDBgIGCAcFAQAvLxESATk5ETMRMzEwEwEXCQEHAVIBVnf%2B3wEhd%2F6qAicBl0X%2Bov6hRwGXAAAAAQBQAHUCHQO%2BAAYAGkAKAwAEAgACCAcFAQAvLxESATk5ETMRMzEwCQEnCQE3AQId%2Fqh1AR%2F%2B4XUBWAIM%2FmlHAV8BXkX%2BaQAAAf55AAACjwW2AAMAE7cABQIEAwMCEgA%2FPxEBMxEzMTAJASMBAo%2F8eY8DhwW2%2BkoFtgAAAAIAFAJKArQFvAAKABQAPEAfFAULBwMDCQIAAgUDFRYBBQUJDxQfFAIUFAMOBx8DIAA%2FPzMSOS9dMzMRMxESARc5ETMzETMzETMxMAEjFSM1ITUBMxEzITU0Nw4DDwECtH2R%2Fm4BmIt9%2FvIGBRgeHguoAxTKymUCQ%2F3Nw4ZLDCctLRH2AAEAP%2F%2FsBIkFywAmAHFAPx0XHxYWGgsCBwcaJBEEChoXBicoCxcYF05ZCBgFHR4dTlkCHg8eHx4vHgMJAxgeGB4TIiIATFkiBxMOTFkTGQA%2FKwAYPysREgA5ORgvL19eXREzKxEAMxEzKxEAMxESARc5ETMRMzMRMxEzETMxMAEgAyEVIQcVFyEVIR4BMzI3FQYjIgADIzUzJzU3IzUzEgAzMhcHJgMb%2FsFPAf799AICAc%2F%2BQSXLqpyZkqvt%2Ft8uppgCApikJwEk7cmlR6YFNf5tgTlALYG0xUKWQQENAQGBKixQgQEFASRhi1YAAAABAAAjAAABBdMYAAAKCvIABQAk%2F3EABQA3ACkABQA5ACkABQA6ACkABQA8ABQABQBE%2F64ABQBG%2F4UABQBH%2F4UABQBI%2F4UABQBK%2F8MABQBQ%2F8MABQBR%2F8MABQBS%2F4UABQBT%2F8MABQBU%2F4UABQBV%2F8MABQBW%2F8MABQBY%2F8MABQCC%2F3EABQCD%2F3EABQCE%2F3EABQCF%2F3EABQCG%2F3EABQCH%2F3EABQCfABQABQCi%2F4UABQCj%2F64ABQCk%2F64ABQCl%2F64ABQCm%2F64ABQCn%2F64ABQCo%2F64ABQCp%2F4UABQCq%2F4UABQCr%2F4UABQCs%2F4UABQCt%2F4UABQC0%2F4UABQC1%2F4UABQC2%2F4UABQC3%2F4UABQC4%2F4UABQC6%2F4UABQC7%2F8MABQC8%2F8MABQC9%2F8MABQC%2B%2F8MABQDE%2F4UACgAk%2F3EACgA3ACkACgA5ACkACgA6ACkACgA8ABQACgBE%2F64ACgBG%2F4UACgBH%2F4UACgBI%2F4UACgBK%2F8MACgBQ%2F8MACgBR%2F8MACgBS%2F4UACgBT%2F8MACgBU%2F4UACgBV%2F8MACgBW%2F8MACgBY%2F8MACgCC%2F3EACgCD%2F3EACgCE%2F3EACgCF%2F3EACgCG%2F3EACgCH%2F3EACgCfABQACgCi%2F4UACgCj%2F64ACgCk%2F64ACgCl%2F64ACgCm%2F64ACgCn%2F64ACgCo%2F64ACgCp%2F4UACgCq%2F4UACgCr%2F4UACgCs%2F4UACgCt%2F4UACgC0%2F4UACgC1%2F4UACgC2%2F4UACgC3%2F4UACgC4%2F4UACgC6%2F4UACgC7%2F8MACgC8%2F8MACgC9%2F8MACgC%2B%2F8MACgDE%2F4UACwAtALgADwAm%2F5oADwAq%2F5oADwAy%2F5oADwA0%2F5oADwA3%2F3EADwA4%2F9cADwA5%2F4UADwA6%2F4UADwA8%2F4UADwCJ%2F5oADwCU%2F5oADwCV%2F5oADwCW%2F5oADwCX%2F5oADwCY%2F5oADwCa%2F5oADwCb%2F9cADwCc%2F9cADwCd%2F9cADwCe%2F9cADwCf%2F4UADwDD%2F5oAEAA3%2F64AEQAm%2F5oAEQAq%2F5oAEQAy%2F5oAEQA0%2F5oAEQA3%2F3EAEQA4%2F9cAEQA5%2F4UAEQA6%2F4UAEQA8%2F4UAEQCJ%2F5oAEQCU%2F5oAEQCV%2F5oAEQCW%2F5oAEQCX%2F5oAEQCY%2F5oAEQCa%2F5oAEQCb%2F9cAEQCc%2F9cAEQCd%2F9cAEQCe%2F9cAEQCf%2F4UAEQDD%2F5oAJAAF%2F3EAJAAK%2F3EAJAAm%2F9cAJAAq%2F9cAJAAtAQoAJAAy%2F9cAJAA0%2F9cAJAA3%2F3EAJAA5%2F64AJAA6%2F64AJAA8%2F4UAJACJ%2F9cAJACU%2F9cAJACV%2F9cAJACW%2F9cAJACX%2F9cAJACY%2F9cAJACa%2F9cAJACf%2F4UAJADD%2F9cAJADL%2F3EAJADO%2F3EAJQAP%2F64AJQAR%2F64AJQAk%2F9cAJQA3%2F8MAJQA5%2F%2BwAJQA6%2F%2BwAJQA7%2F9cAJQA8%2F%2BwAJQA9%2F%2BwAJQCC%2F9cAJQCD%2F9cAJQCE%2F9cAJQCF%2F9cAJQCG%2F9cAJQCH%2F9cAJQCf%2F%2BwAJQDM%2F64AJQDP%2F64AJgAm%2F9cAJgAq%2F9cAJgAy%2F9cAJgA0%2F9cAJgCJ%2F9cAJgCU%2F9cAJgCV%2F9cAJgCW%2F9cAJgCX%2F9cAJgCY%2F9cAJgCa%2F9cAJgDD%2F9cAJwAP%2F64AJwAR%2F64AJwAk%2F9cAJwA3%2F8MAJwA5%2F%2BwAJwA6%2F%2BwAJwA7%2F9cAJwA8%2F%2BwAJwA9%2F%2BwAJwCC%2F9cAJwCD%2F9cAJwCE%2F9cAJwCF%2F9cAJwCG%2F9cAJwCH%2F9cAJwCf%2F%2BwAJwDM%2F64AJwDP%2F64AKAAtAHsAKQAP%2F4UAKQAR%2F4UAKQAiACkAKQAk%2F9cAKQCC%2F9cAKQCD%2F9cAKQCE%2F9cAKQCF%2F9cAKQCG%2F9cAKQCH%2F9cAKQDM%2F4UAKQDP%2F4UALgAm%2F9cALgAq%2F9cALgAy%2F9cALgA0%2F9cALgCJ%2F9cALgCU%2F9cALgCV%2F9cALgCW%2F9cALgCX%2F9cALgCY%2F9cALgCa%2F9cALgDD%2F9cALwAF%2F1wALwAK%2F1wALwAm%2F9cALwAq%2F9cALwAy%2F9cALwA0%2F9cALwA3%2F9cALwA4%2F%2BwALwA5%2F9cALwA6%2F9cALwA8%2F8MALwCJ%2F9cALwCU%2F9cALwCV%2F9cALwCW%2F9cALwCX%2F9cALwCY%2F9cALwCa%2F9cALwCb%2F%2BwALwCc%2F%2BwALwCd%2F%2BwALwCe%2F%2BwALwCf%2F8MALwDD%2F9cALwDL%2F1wALwDO%2F1wAMgAP%2F64AMgAR%2F64AMgAk%2F9cAMgA3%2F8MAMgA5%2F%2BwAMgA6%2F%2BwAMgA7%2F9cAMgA8%2F%2BwAMgA9%2F%2BwAMgCC%2F9cAMgCD%2F9cAMgCE%2F9cAMgCF%2F9cAMgCG%2F9cAMgCH%2F9cAMgCf%2F%2BwAMgDM%2F64AMgDP%2F64AMwAP%2FvYAMwAR%2FvYAMwAk%2F5oAMwA7%2F9cAMwA9%2F%2BwAMwCC%2F5oAMwCD%2F5oAMwCE%2F5oAMwCF%2F5oAMwCG%2F5oAMwCH%2F5oAMwDM%2FvYAMwDP%2FvYANAAP%2F64ANAAR%2F64ANAAk%2F9cANAA3%2F8MANAA5%2F%2BwANAA6%2F%2BwANAA7%2F9cANAA8%2F%2BwANAA9%2F%2BwANACC%2F9cANACD%2F9cANACE%2F9cANACF%2F9cANACG%2F9cANACH%2F9cANACf%2F%2BwANADM%2F64ANADP%2F64ANwAP%2F4UANwAQ%2F64ANwAR%2F4UANwAiACkANwAk%2F3EANwAm%2F9cANwAq%2F9cANwAy%2F9cANwA0%2F9cANwA3ACkANwBE%2F1wANwBG%2F3EANwBH%2F3EANwBI%2F3EANwBK%2F3EANwBQ%2F5oANwBR%2F5oANwBS%2F3EANwBT%2F5oANwBU%2F3EANwBV%2F5oANwBW%2F4UANwBY%2F5oANwBZ%2F9cANwBa%2F9cANwBb%2F9cANwBc%2F9cANwBd%2F64ANwCC%2F3EANwCD%2F3EANwCE%2F3EANwCF%2F3EANwCG%2F3EANwCH%2F3EANwCJ%2F9cANwCU%2F9cANwCV%2F9cANwCW%2F9cANwCX%2F9cANwCY%2F9cANwCa%2F9cANwCi%2F3EANwCj%2F1wANwCk%2F1wANwCl%2F1wANwCm%2F1wANwCn%2F1wANwCo%2F1wANwCp%2F3EANwCq%2F3EANwCr%2F3EANwCs%2F3EANwCt%2F3EANwC0%2F3EANwC1%2F3EANwC2%2F3EANwC3%2F3EANwC4%2F3EANwC6%2F3EANwC7%2F5oANwC8%2F5oANwC9%2F5oANwC%2B%2F5oANwC%2F%2F9cANwDD%2F9cANwDE%2F3EANwDI%2F64ANwDJ%2F64ANwDM%2F4UANwDP%2F4UAOAAP%2F9cAOAAR%2F9cAOAAk%2F%2BwAOACC%2F%2BwAOACD%2F%2BwAOACE%2F%2BwAOACF%2F%2BwAOACG%2F%2BwAOACH%2F%2BwAOADM%2F9cAOADP%2F9cAOQAP%2F5oAOQAR%2F5oAOQAiACkAOQAk%2F64AOQAm%2F%2BwAOQAq%2F%2BwAOQAy%2F%2BwAOQA0%2F%2BwAOQBE%2F9cAOQBG%2F9cAOQBH%2F9cAOQBI%2F9cAOQBK%2F%2BwAOQBQ%2F%2BwAOQBR%2F%2BwAOQBS%2F9cAOQBT%2F%2BwAOQBU%2F9cAOQBV%2F%2BwAOQBW%2F%2BwAOQBY%2F%2BwAOQCC%2F64AOQCD%2F64AOQCE%2F64AOQCF%2F64AOQCG%2F64AOQCH%2F64AOQCJ%2F%2BwAOQCU%2F%2BwAOQCV%2F%2BwAOQCW%2F%2BwAOQCX%2F%2BwAOQCY%2F%2BwAOQCa%2F%2BwAOQCi%2F9cAOQCj%2F9cAOQCk%2F9cAOQCl%2F9cAOQCm%2F9cAOQCn%2F9cAOQCo%2F9cAOQCp%2F9cAOQCq%2F9cAOQCr%2F9cAOQCs%2F9cAOQCt%2F9cAOQC0%2F9cAOQC1%2F9cAOQC2%2F9cAOQC3%2F9cAOQC4%2F9cAOQC6%2F9cAOQC7%2F%2BwAOQC8%2F%2BwAOQC9%2F%2BwAOQC%2B%2F%2BwAOQDD%2F%2BwAOQDE%2F9cAOQDM%2F5oAOQDP%2F5oAOgAP%2F5oAOgAR%2F5oAOgAiACkAOgAk%2F64AOgAm%2F%2BwAOgAq%2F%2BwAOgAy%2F%2BwAOgA0%2F%2BwAOgBE%2F9cAOgBG%2F9cAOgBH%2F9cAOgBI%2F9cAOgBK%2F%2BwAOgBQ%2F%2BwAOgBR%2F%2BwAOgBS%2F9cAOgBT%2F%2BwAOgBU%2F9cAOgBV%2F%2BwAOgBW%2F%2BwAOgBY%2F%2BwAOgCC%2F64AOgCD%2F64AOgCE%2F64AOgCF%2F64AOgCG%2F64AOgCH%2F64AOgCJ%2F%2BwAOgCU%2F%2BwAOgCV%2F%2BwAOgCW%2F%2BwAOgCX%2F%2BwAOgCY%2F%2BwAOgCa%2F%2BwAOgCi%2F9cAOgCj%2F9cAOgCk%2F9cAOgCl%2F9cAOgCm%2F9cAOgCn%2F9cAOgCo%2F9cAOgCp%2F9cAOgCq%2F9cAOgCr%2F9cAOgCs%2F9cAOgCt%2F9cAOgC0%2F9cAOgC1%2F9cAOgC2%2F9cAOgC3%2F9cAOgC4%2F9cAOgC6%2F9cAOgC7%2F%2BwAOgC8%2F%2BwAOgC9%2F%2BwAOgC%2B%2F%2BwAOgDD%2F%2BwAOgDE%2F9cAOgDM%2F5oAOgDP%2F5oAOwAm%2F9cAOwAq%2F9cAOwAy%2F9cAOwA0%2F9cAOwCJ%2F9cAOwCU%2F9cAOwCV%2F9cAOwCW%2F9cAOwCX%2F9cAOwCY%2F9cAOwCa%2F9cAOwDD%2F9cAPAAP%2F4UAPAAR%2F4UAPAAiACkAPAAk%2F4UAPAAm%2F9cAPAAq%2F9cAPAAy%2F9cAPAA0%2F9cAPABE%2F5oAPABG%2F5oAPABH%2F5oAPABI%2F5oAPABK%2F9cAPABQ%2F8MAPABR%2F8MAPABS%2F5oAPABT%2F8MAPABU%2F5oAPABV%2F8MAPABW%2F64APABY%2F8MAPABd%2F9cAPACC%2F4UAPACD%2F4UAPACE%2F4UAPACF%2F4UAPACG%2F4UAPACH%2F4UAPACJ%2F9cAPACU%2F9cAPACV%2F9cAPACW%2F9cAPACX%2F9cAPACY%2F9cAPACa%2F9cAPACi%2F5oAPACj%2F5oAPACk%2F5oAPACl%2F5oAPACm%2F5oAPACn%2F5oAPACo%2F5oAPACp%2F5oAPACq%2F5oAPACr%2F5oAPACs%2F5oAPACt%2F5oAPAC0%2F5oAPAC1%2F5oAPAC2%2F5oAPAC3%2F5oAPAC4%2F5oAPAC6%2F5oAPAC7%2F8MAPAC8%2F8MAPAC9%2F8MAPAC%2B%2F8MAPADD%2F9cAPADE%2F5oAPADM%2F4UAPADP%2F4UAPQAm%2F%2BwAPQAq%2F%2BwAPQAy%2F%2BwAPQA0%2F%2BwAPQCJ%2F%2BwAPQCU%2F%2BwAPQCV%2F%2BwAPQCW%2F%2BwAPQCX%2F%2BwAPQCY%2F%2BwAPQCa%2F%2BwAPQDD%2F%2BwAPgAtALgARAAF%2F%2BwARAAK%2F%2BwARADL%2F%2BwARADO%2F%2BwARQAF%2F%2BwARQAK%2F%2BwARQBZ%2F9cARQBa%2F9cARQBb%2F9cARQBc%2F9cARQBd%2F%2BwARQC%2F%2F9cARQDL%2F%2BwARQDO%2F%2BwARgAFACkARgAKACkARgDLACkARgDOACkASAAF%2F%2BwASAAK%2F%2BwASABZ%2F9cASABa%2F9cASABb%2F9cASABc%2F9cASABd%2F%2BwASAC%2F%2F9cASADL%2F%2BwASADO%2F%2BwASQAFAHsASQAKAHsASQDLAHsASQDOAHsASwAF%2F%2BwASwAK%2F%2BwASwDL%2F%2BwASwDO%2F%2BwATgBG%2F9cATgBH%2F9cATgBI%2F9cATgBS%2F9cATgBU%2F9cATgCi%2F9cATgCp%2F9cATgCq%2F9cATgCr%2F9cATgCs%2F9cATgCt%2F9cATgC0%2F9cATgC1%2F9cATgC2%2F9cATgC3%2F9cATgC4%2F9cATgC6%2F9cATgDE%2F9cAUAAF%2F%2BwAUAAK%2F%2BwAUADL%2F%2BwAUADO%2F%2BwAUQAF%2F%2BwAUQAK%2F%2BwAUQDL%2F%2BwAUQDO%2F%2BwAUgAF%2F%2BwAUgAK%2F%2BwAUgBZ%2F9cAUgBa%2F9cAUgBb%2F9cAUgBc%2F9cAUgBd%2F%2BwAUgC%2F%2F9cAUgDL%2F%2BwAUgDO%2F%2BwAUwAF%2F%2BwAUwAK%2F%2BwAUwBZ%2F9cAUwBa%2F9cAUwBb%2F9cAUwBc%2F9cAUwBd%2F%2BwAUwC%2F%2F9cAUwDL%2F%2BwAUwDO%2F%2BwAVQAFAFIAVQAKAFIAVQBE%2F9cAVQBG%2F9cAVQBH%2F9cAVQBI%2F9cAVQBK%2F%2BwAVQBS%2F9cAVQBU%2F9cAVQCi%2F9cAVQCj%2F9cAVQCk%2F9cAVQCl%2F9cAVQCm%2F9cAVQCn%2F9cAVQCo%2F9cAVQCp%2F9cAVQCq%2F9cAVQCr%2F9cAVQCs%2F9cAVQCt%2F9cAVQC0%2F9cAVQC1%2F9cAVQC2%2F9cAVQC3%2F9cAVQC4%2F9cAVQC6%2F9cAVQDE%2F9cAVQDLAFIAVQDOAFIAVwAFACkAVwAKACkAVwDLACkAVwDOACkAWQAFAFIAWQAKAFIAWQAP%2F64AWQAR%2F64AWQAiACkAWQDLAFIAWQDM%2F64AWQDOAFIAWQDP%2F64AWgAFAFIAWgAKAFIAWgAP%2F64AWgAR%2F64AWgAiACkAWgDLAFIAWgDM%2F64AWgDOAFIAWgDP%2F64AWwBG%2F9cAWwBH%2F9cAWwBI%2F9cAWwBS%2F9cAWwBU%2F9cAWwCi%2F9cAWwCp%2F9cAWwCq%2F9cAWwCr%2F9cAWwCs%2F9cAWwCt%2F9cAWwC0%2F9cAWwC1%2F9cAWwC2%2F9cAWwC3%2F9cAWwC4%2F9cAWwC6%2F9cAWwDE%2F9cAXAAFAFIAXAAKAFIAXAAP%2F64AXAAR%2F64AXAAiACkAXADLAFIAXADM%2F64AXADOAFIAXADP%2F64AXgAtALgAggAF%2F3EAggAK%2F3EAggAm%2F9cAggAq%2F9cAggAtAQoAggAy%2F9cAggA0%2F9cAggA3%2F3EAggA5%2F64AggA6%2F64AggA8%2F4UAggCJ%2F9cAggCU%2F9cAggCV%2F9cAggCW%2F9cAggCX%2F9cAggCY%2F9cAggCa%2F9cAggCf%2F4UAggDD%2F9cAggDL%2F3EAggDO%2F3EAgwAF%2F3EAgwAK%2F3EAgwAm%2F9cAgwAq%2F9cAgwAtAQoAgwAy%2F9cAgwA0%2F9cAgwA3%2F3EAgwA5%2F64AgwA6%2F64AgwA8%2F4UAgwCJ%2F9cAgwCU%2F9cAgwCV%2F9cAgwCW%2F9cAgwCX%2F9cAgwCY%2F9cAgwCa%2F9cAgwCf%2F4UAgwDD%2F9cAgwDL%2F3EAgwDO%2F3EAhAAF%2F3EAhAAK%2F3EAhAAm%2F9cAhAAq%2F9cAhAAtAQoAhAAy%2F9cAhAA0%2F9cAhAA3%2F3EAhAA5%2F64AhAA6%2F64AhAA8%2F4UAhACJ%2F9cAhACU%2F9cAhACV%2F9cAhACW%2F9cAhACX%2F9cAhACY%2F9cAhACa%2F9cAhACf%2F4UAhADD%2F9cAhADL%2F3EAhADO%2F3EAhQAF%2F3EAhQAK%2F3EAhQAm%2F9cAhQAq%2F9cAhQAtAQoAhQAy%2F9cAhQA0%2F9cAhQA3%2F3EAhQA5%2F64AhQA6%2F64AhQA8%2F4UAhQCJ%2F9cAhQCU%2F9cAhQCV%2F9cAhQCW%2F9cAhQCX%2F9cAhQCY%2F9cAhQCa%2F9cAhQCf%2F4UAhQDD%2F9cAhQDL%2F3EAhQDO%2F3EAhgAF%2F3EAhgAK%2F3EAhgAm%2F9cAhgAq%2F9cAhgAtAQoAhgAy%2F9cAhgA0%2F9cAhgA3%2F3EAhgA5%2F64AhgA6%2F64AhgA8%2F4UAhgCJ%2F9cAhgCU%2F9cAhgCV%2F9cAhgCW%2F9cAhgCX%2F9cAhgCY%2F9cAhgCa%2F9cAhgCf%2F4UAhgDD%2F9cAhgDL%2F3EAhgDO%2F3EAhwAF%2F3EAhwAK%2F3EAhwAm%2F9cAhwAq%2F9cAhwAtAQoAhwAy%2F9cAhwA0%2F9cAhwA3%2F3EAhwA5%2F64AhwA6%2F64AhwA8%2F4UAhwCJ%2F9cAhwCU%2F9cAhwCV%2F9cAhwCW%2F9cAhwCX%2F9cAhwCY%2F9cAhwCa%2F9cAhwCf%2F4UAhwDD%2F9cAhwDL%2F3EAhwDO%2F3EAiAAtAHsAiQAm%2F9cAiQAq%2F9cAiQAy%2F9cAiQA0%2F9cAiQCJ%2F9cAiQCU%2F9cAiQCV%2F9cAiQCW%2F9cAiQCX%2F9cAiQCY%2F9cAiQCa%2F9cAiQDD%2F9cAigAtAHsAiwAtAHsAjAAtAHsAjQAtAHsAkgAP%2F64AkgAR%2F64AkgAk%2F9cAkgA3%2F8MAkgA5%2F%2BwAkgA6%2F%2BwAkgA7%2F9cAkgA8%2F%2BwAkgA9%2F%2BwAkgCC%2F9cAkgCD%2F9cAkgCE%2F9cAkgCF%2F9cAkgCG%2F9cAkgCH%2F9cAkgCf%2F%2BwAkgDM%2F64AkgDP%2F64AlAAP%2F64AlAAR%2F64AlAAk%2F9cAlAA3%2F8MAlAA5%2F%2BwAlAA6%2F%2BwAlAA7%2F9cAlAA8%2F%2BwAlAA9%2F%2BwAlACC%2F9cAlACD%2F9cAlACE%2F9cAlACF%2F9cAlACG%2F9cAlACH%2F9cAlACf%2F%2BwAlADM%2F64AlADP%2F64AlQAP%2F64AlQAR%2F64AlQAk%2F9cAlQA3%2F8MAlQA5%2F%2BwAlQA6%2F%2BwAlQA7%2F9cAlQA8%2F%2BwAlQA9%2F%2BwAlQCC%2F9cAlQCD%2F9cAlQCE%2F9cAlQCF%2F9cAlQCG%2F9cAlQCH%2F9cAlQCf%2F%2BwAlQDM%2F64AlQDP%2F64AlgAP%2F64AlgAR%2F64AlgAk%2F9cAlgA3%2F8MAlgA5%2F%2BwAlgA6%2F%2BwAlgA7%2F9cAlgA8%2F%2BwAlgA9%2F%2BwAlgCC%2F9cAlgCD%2F9cAlgCE%2F9cAlgCF%2F9cAlgCG%2F9cAlgCH%2F9cAlgCf%2F%2BwAlgDM%2F64AlgDP%2F64AlwAP%2F64AlwAR%2F64AlwAk%2F9cAlwA3%2F8MAlwA5%2F%2BwAlwA6%2F%2BwAlwA7%2F9cAlwA8%2F%2BwAlwA9%2F%2BwAlwCC%2F9cAlwCD%2F9cAlwCE%2F9cAlwCF%2F9cAlwCG%2F9cAlwCH%2F9cAlwCf%2F%2BwAlwDM%2F64AlwDP%2F64AmAAP%2F64AmAAR%2F64AmAAk%2F9cAmAA3%2F8MAmAA5%2F%2BwAmAA6%2F%2BwAmAA7%2F9cAmAA8%2F%2BwAmAA9%2F%2BwAmACC%2F9cAmACD%2F9cAmACE%2F9cAmACF%2F9cAmACG%2F9cAmACH%2F9cAmACf%2F%2BwAmADM%2F64AmADP%2F64AmgAP%2F64AmgAR%2F64AmgAk%2F9cAmgA3%2F8MAmgA5%2F%2BwAmgA6%2F%2BwAmgA7%2F9cAmgA8%2F%2BwAmgA9%2F%2BwAmgCC%2F9cAmgCD%2F9cAmgCE%2F9cAmgCF%2F9cAmgCG%2F9cAmgCH%2F9cAmgCf%2F%2BwAmgDM%2F64AmgDP%2F64AmwAP%2F9cAmwAR%2F9cAmwAk%2F%2BwAmwCC%2F%2BwAmwCD%2F%2BwAmwCE%2F%2BwAmwCF%2F%2BwAmwCG%2F%2BwAmwCH%2F%2BwAmwDM%2F9cAmwDP%2F9cAnAAP%2F9cAnAAR%2F9cAnAAk%2F%2BwAnACC%2F%2BwAnACD%2F%2BwAnACE%2F%2BwAnACF%2F%2BwAnACG%2F%2BwAnACH%2F%2BwAnADM%2F9cAnADP%2F9cAnQAP%2F9cAnQAR%2F9cAnQAk%2F%2BwAnQCC%2F%2BwAnQCD%2F%2BwAnQCE%2F%2BwAnQCF%2F%2BwAnQCG%2F%2BwAnQCH%2F%2BwAnQDM%2F9cAnQDP%2F9cAngAP%2F9cAngAR%2F9cAngAk%2F%2BwAngCC%2F%2BwAngCD%2F%2BwAngCE%2F%2BwAngCF%2F%2BwAngCG%2F%2BwAngCH%2F%2BwAngDM%2F9cAngDP%2F9cAnwAP%2F4UAnwAR%2F4UAnwAiACkAnwAk%2F4UAnwAm%2F9cAnwAq%2F9cAnwAy%2F9cAnwA0%2F9cAnwBE%2F5oAnwBG%2F5oAnwBH%2F5oAnwBI%2F5oAnwBK%2F9cAnwBQ%2F8MAnwBR%2F8MAnwBS%2F5oAnwBT%2F8MAnwBU%2F5oAnwBV%2F8MAnwBW%2F64AnwBY%2F8MAnwBd%2F9cAnwCC%2F4UAnwCD%2F4UAnwCE%2F4UAnwCF%2F4UAnwCG%2F4UAnwCH%2F4UAnwCJ%2F9cAnwCU%2F9cAnwCV%2F9cAnwCW%2F9cAnwCX%2F9cAnwCY%2F9cAnwCa%2F9cAnwCi%2F5oAnwCj%2F5oAnwCk%2F5oAnwCl%2F5oAnwCm%2F5oAnwCn%2F5oAnwCo%2F5oAnwCp%2F5oAnwCq%2F5oAnwCr%2F5oAnwCs%2F5oAnwCt%2F5oAnwC0%2F5oAnwC1%2F5oAnwC2%2F5oAnwC3%2F5oAnwC4%2F5oAnwC6%2F5oAnwC7%2F8MAnwC8%2F8MAnwC9%2F8MAnwC%2B%2F8MAnwDD%2F9cAnwDE%2F5oAnwDM%2F4UAnwDP%2F4UAoAAP%2FvYAoAAR%2FvYAoAAk%2F5oAoAA7%2F9cAoAA9%2F%2BwAoACC%2F5oAoACD%2F5oAoACE%2F5oAoACF%2F5oAoACG%2F5oAoACH%2F5oAoADM%2FvYAoADP%2FvYAogAF%2F%2BwAogAK%2F%2BwAogDL%2F%2BwAogDO%2F%2BwAowAF%2F%2BwAowAK%2F%2BwAowDL%2F%2BwAowDO%2F%2BwApAAF%2F%2BwApAAK%2F%2BwApADL%2F%2BwApADO%2F%2BwApQAF%2F%2BwApQAK%2F%2BwApQDL%2F%2BwApQDO%2F%2BwApgAF%2F%2BwApgAK%2F%2BwApgDL%2F%2BwApgDO%2F%2BwApwAF%2F%2BwApwAK%2F%2BwApwDL%2F%2BwApwDO%2F%2BwAqgAF%2F%2BwAqgAK%2F%2BwAqgBZ%2F9cAqgBa%2F9cAqgBb%2F9cAqgBc%2F9cAqgBd%2F%2BwAqgC%2F%2F9cAqgDL%2F%2BwAqgDO%2F%2BwAqwAF%2F%2BwAqwAK%2F%2BwAqwBZ%2F9cAqwBa%2F9cAqwBb%2F9cAqwBc%2F9cAqwBd%2F%2BwAqwC%2F%2F9cAqwDL%2F%2BwAqwDO%2F%2BwArAAF%2F%2BwArAAK%2F%2BwArABZ%2F9cArABa%2F9cArABb%2F9cArABc%2F9cArABd%2F%2BwArAC%2F%2F9cArADL%2F%2BwArADO%2F%2BwArQAF%2F%2BwArQAK%2F%2BwArQBZ%2F9cArQBa%2F9cArQBb%2F9cArQBc%2F9cArQBd%2F%2BwArQC%2F%2F9cArQDL%2F%2BwArQDO%2F%2BwAsgAF%2F%2BwAsgAK%2F%2BwAsgBZ%2F9cAsgBa%2F9cAsgBb%2F9cAsgBc%2F9cAsgBd%2F%2BwAsgC%2F%2F9cAsgDL%2F%2BwAsgDO%2F%2BwAtAAF%2F%2BwAtAAK%2F%2BwAtABZ%2F9cAtABa%2F9cAtABb%2F9cAtABc%2F9cAtABd%2F%2BwAtAC%2F%2F9cAtADL%2F%2BwAtADO%2F%2BwAtQAF%2F%2BwAtQAK%2F%2BwAtQBZ%2F9cAtQBa%2F9cAtQBb%2F9cAtQBc%2F9cAtQBd%2F%2BwAtQC%2F%2F9cAtQDL%2F%2BwAtQDO%2F%2BwAtgAF%2F%2BwAtgAK%2F%2BwAtgBZ%2F9cAtgBa%2F9cAtgBb%2F9cAtgBc%2F9cAtgBd%2F%2BwAtgC%2F%2F9cAtgDL%2F%2BwAtgDO%2F%2BwAuAAF%2F9cAuAAK%2F9cAuADL%2F9cAuADO%2F9cAugAF%2F%2BwAugAK%2F%2BwAugBZ%2F9cAugBa%2F9cAugBb%2F9cAugBc%2F9cAugBd%2F%2BwAugC%2F%2F9cAugDL%2F%2BwAugDO%2F%2BwAvwAFAFIAvwAKAFIAvwAP%2F64AvwAR%2F64AvwAiACkAvwDLAFIAvwDM%2F64AvwDOAFIAvwDP%2F64AwAAF%2F%2BwAwAAK%2F%2BwAwABZ%2F9cAwABa%2F9cAwABb%2F9cAwABc%2F9cAwABd%2F%2BwAwAC%2F%2F9cAwADL%2F%2BwAwADO%2F%2BwAwQAFAFIAwQAKAFIAwQAP%2F64AwQAR%2F64AwQAiACkAwQDLAFIAwQDM%2F64AwQDOAFIAwQDP%2F64AwwAtAHsAyAA3%2F64AyQA3%2F64AygAk%2F3EAygA3ACkAygA5ACkAygA6ACkAygA8ABQAygBE%2F64AygBG%2F4UAygBH%2F4UAygBI%2F4UAygBK%2F8MAygBQ%2F8MAygBR%2F8MAygBS%2F4UAygBT%2F8MAygBU%2F4UAygBV%2F8MAygBW%2F8MAygBY%2F8MAygCC%2F3EAygCD%2F3EAygCE%2F3EAygCF%2F3EAygCG%2F3EAygCH%2F3EAygCfABQAygCi%2F4UAygCj%2F64AygCk%2F64AygCl%2F64AygCm%2F64AygCn%2F64AygCo%2F64AygCp%2F4UAygCq%2F4UAygCr%2F4UAygCs%2F4UAygCt%2F4UAygC0%2F4UAygC1%2F4UAygC2%2F4UAygC3%2F4UAygC4%2F4UAygC6%2F4UAygC7%2F8MAygC8%2F8MAygC9%2F8MAygC%2B%2F8MAygDE%2F4UAywAk%2F3EAywA3ACkAywA5ACkAywA6ACkAywA8ABQAywBE%2F64AywBG%2F4UAywBH%2F4UAywBI%2F4UAywBK%2F8MAywBQ%2F8MAywBR%2F8MAywBS%2F4UAywBT%2F8MAywBU%2F4UAywBV%2F8MAywBW%2F8MAywBY%2F8MAywCC%2F3EAywCD%2F3EAywCE%2F3EAywCF%2F3EAywCG%2F3EAywCH%2F3EAywCfABQAywCi%2F4UAywCj%2F64AywCk%2F64AywCl%2F64AywCm%2F64AywCn%2F64AywCo%2F64AywCp%2F4UAywCq%2F4UAywCr%2F4UAywCs%2F4UAywCt%2F4UAywC0%2F4UAywC1%2F4UAywC2%2F4UAywC3%2F4UAywC4%2F4UAywC6%2F4UAywC7%2F8MAywC8%2F8MAywC9%2F8MAywC%2B%2F8MAywDE%2F4UAzAAm%2F5oAzAAq%2F5oAzAAy%2F5oAzAA0%2F5oAzAA3%2F3EAzAA4%2F9cAzAA5%2F4UAzAA6%2F4UAzAA8%2F4UAzACJ%2F5oAzACU%2F5oAzACV%2F5oAzACW%2F5oAzACX%2F5oAzACY%2F5oAzACa%2F5oAzACb%2F9cAzACc%2F9cAzACd%2F9cAzACe%2F9cAzACf%2F4UAzADD%2F5oAzQAk%2F3EAzQA3ACkAzQA5ACkAzQA6ACkAzQA8ABQAzQBE%2F64AzQBG%2F4UAzQBH%2F4UAzQBI%2F4UAzQBK%2F8MAzQBQ%2F8MAzQBR%2F8MAzQBS%2F4UAzQBT%2F8MAzQBU%2F4UAzQBV%2F8MAzQBW%2F8MAzQBY%2F8MAzQCC%2F3EAzQCD%2F3EAzQCE%2F3EAzQCF%2F3EAzQCG%2F3EAzQCH%2F3EAzQCfABQAzQCi%2F4UAzQCj%2F64AzQCk%2F64AzQCl%2F64AzQCm%2F64AzQCn%2F64AzQCo%2F64AzQCp%2F4UAzQCq%2F4UAzQCr%2F4UAzQCs%2F4UAzQCt%2F4UAzQC0%2F4UAzQC1%2F4UAzQC2%2F4UAzQC3%2F4UAzQC4%2F4UAzQC6%2F4UAzQC7%2F8MAzQC8%2F8MAzQC9%2F8MAzQC%2B%2F8MAzQDE%2F4UAzwAm%2F5oAzwAq%2F5oAzwAy%2F5oAzwA0%2F5oAzwA3%2F3EAzwA4%2F9cAzwA5%2F4UAzwA6%2F4UAzwA8%2F4UAzwCJ%2F5oAzwCU%2F5oAzwCV%2F5oAzwCW%2F5oAzwCX%2F5oAzwCY%2F5oAzwCa%2F5oAzwCb%2F9cAzwCc%2F9cAzwCd%2F9cAzwCe%2F9cAzwCf%2F4UAzwDD%2F5oAAAAaAT4AAQAAAAAAAAA5AHQAAQAAAAAAAQAJAMIAAQAAAAAAAgAHANwAAQAAAAAAAwAeASIAAQAAAAAABAAJAVUAAQAAAAAABQAMAXkAAQAAAAAABgAIAZgAAQAAAAAABwBSAkcAAQAAAAAACAAUAsQAAQAAAAAACwAcAxMAAQAAAAAADAAuA44AAQAAAAAADQAuBBsAAQAAAAAADgAqBKAAAwABBAkAAAByAAAAAwABBAkAAQASAK4AAwABBAkAAgAOAMwAAwABBAkAAwA8AOQAAwABBAkABAASAUEAAwABBAkABQAYAV8AAwABBAkABgAQAYYAAwABBAkABwCkAaEAAwABBAkACAAoApoAAwABBAkACwA4AtkAAwABBAkADABcAzAAAwABBAkADQBcA70AAwABBAkADgBUBEoARABpAGcAaQB0AGkAegBlAGQAIABkAGEAdABhACAAYwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADEAMAAtADIAMAAxADEALAAgAEcAbwBvAGcAbABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4AAERpZ2l0aXplZCBkYXRhIGNvcHlyaWdodCCpIDIwMTAtMjAxMSwgR29vZ2xlIENvcnBvcmF0aW9uLgAATwBwAGUAbgAgAFMAYQBuAHMAAE9wZW4gU2FucwAAUgBlAGcAdQBsAGEAcgAAUmVndWxhcgAAQQBzAGMAZQBuAGQAZQByACAALQAgAE8AcABlAG4AIABTAGEAbgBzACAAQgB1AGkAbABkACAAMQAwADAAAEFzY2VuZGVyIC0gT3BlbiBTYW5zIEJ1aWxkIDEwMAAATwBwAGUAbgAgAFMAYQBuAHMAAE9wZW4gU2FucwAAVgBlAHIAcwBpAG8AbgAgADEALgAxADAAAFZlcnNpb24gMS4xMAAATwBwAGUAbgBTAGEAbgBzAABPcGVuU2FucwAATwBwAGUAbgAgAFMAYQBuAHMAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABHAG8AbwBnAGwAZQAgAGEAbgBkACAAbQBhAHkAIABiAGUAIAByAGUAZwBpAHMAdABlAHIAZQBkACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuAHMALgAAT3BlbiBTYW5zIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZSBhbmQgbWF5IGJlIHJlZ2lzdGVyZWQgaW4gY2VydGFpbiBqdXJpc2RpY3Rpb25zLgAAQQBzAGMAZQBuAGQAZQByACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAABBc2NlbmRlciBDb3Jwb3JhdGlvbgAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcwBjAGUAbgBkAGUAcgBjAG8AcgBwAC4AYwBvAG0ALwAAaHR0cDovL3d3dy5hc2NlbmRlcmNvcnAuY29tLwAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcwBjAGUAbgBkAGUAcgBjAG8AcgBwAC4AYwBvAG0ALwB0AHkAcABlAGQAZQBzAGkAZwBuAGUAcgBzAC4AaAB0AG0AbAAAaHR0cDovL3d3dy5hc2NlbmRlcmNvcnAuY29tL3R5cGVkZXNpZ25lcnMuaHRtbAAATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMAAATGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMAAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAAAAAAAAgAAAAAAAP9mAGYAAAAAAAAAAAAAAAAAAAAAAAAAAADWAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA%2BAD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCsAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAQIAigEDAIMAkwDyAPMAjQCXAIgAwwDeAPEAngCqAPUA9AD2AKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAPAAkQDWANQA1QBoAOsA7QCJAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA6gB4AHoAeQB7AH0AfAC4AKEAfwB%2BAIAAgQDsAO4AugDXALAAsQDYAN0A2QCyALMAtgC3AMQAtAC1AMUAhwC%2BAL8AvAEEAQUHdW5pMDBBRAlvdmVyc2NvcmUMZm91cnN1cGVyaW9yBEV1cm8AAAABAAMACAAKAA0AB%2F%2F%2FAA8AAAABAAAAAMmJbzEAAAAAyTUxiwAAAADJ7dhg%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20600%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAQAQAABAAARkZUTVzEMhEAAJKkAAAAHE9TLzKiDbgUAAABiAAAAGBjbWFwjOjcmQAABUAAAAGyY3Z0IBCRGjQAAA%2FAAAAApmZwZ21%2BYbYRAAAG9AAAB7RnYXNwAAgAGwAAkpgAAAAMZ2x5ZhQyYgAAABIYAABUuGhlYWT5NRTiAAABDAAAADZoaGVhDrUE%2BgAAAUQAAAAkaG10eLHEUI0AAAHoAAADWGtlcm4Mlg8JAABm0AAAIwRsb2Nh0PO82gAAEGgAAAGubWF4cAJSAT8AAAFoAAAAIG5hbWUEDhKHAACJ1AAABs9wb3N0gnjp1QAAkKQAAAHycHJlcHism24AAA6oAAABGAABAAAAARmawtwUTF8PPPUAHwgAAAAAAMnt2GIAAAAAye3YYv53%2FhQHrgdzAAEACAACAAAAAAAAAAEAAAiN%2FagAAAgA%2Fnf%2BeweuAAEAAAAAAAAAAAAAAAAAAADWAAEAAADWAEQABQA%2FAAQAAgAQAC8AXAAAAQMAigADAAEAAwRsAlgABQAIBZoFMwAAAR8FmgUzAAAD0QBmAfYAAAILBwYDCAQCAgTgAALvQAAgWwAAACgAAAAAMUFTQwAgACAgrAYf%2FhQAhAiNAlggAAGfAAAAAARSBbYAAAAgAAEIAAAAAAAAAAQUAAACFAAAAjUAhQN9AIUFKwAvBJEAbwblAFQF7ABgAfIAhQKJAFICiQA9BGIASgSRAGACIwA%2FApMASAIzAIUDHwAQBJEAWASRAJoEkQBaBJEAVgSRACcEkQB1BJEAXgSRAEoEkQBYBJEAVgIzAIUCOQA%2FBJEAYASRAGYEkQBgA6AAEAcvAG8FSgAABUgAwQUSAHkF3wDBBHcAwQRCAMEFzwB5BgIAwQJxAMECZP9kBR0AwQRWAMEHYgDBBkQAwQZMAHkE7ADBBkwAeQUdAMEEZgBkBIcAHQXwALQE%2BgAAB5EADAT6AAQEvAAABJoAQgKkAJoDHwAQAqQAMwRMAB0Db%2F%2F8BLwBagSkAFoE%2FACoA%2FYAZgT8AGYEnABmAucAIwRzABcFFACoAjsAmgI7%2F4cEkwCoAjsAqAemAKgFFACoBOMAZgT8AKgE%2FABmA3MAqAPlAGIDJQAnBRQAngRIAAAGiQAUBGgAGQRKAAAD0wBEAxcALQRoAdkC%2BAAtBJEAYAIUAAACNQCFBJEApgSRAEgEkQB1BJEAEgRoAdkEAgBzBLwBJQaoAGQC8gA5BHMAUgSRAGACkwBIBqgAZAQA%2F%2FoDbQBtBJEAYALnADMC5wAtBLwBagUdAKgFPQBxAjMAhQG6AAAC5wBUAwwAPQRzAFAGpAA8BqQALgakADcDoAA3BUoAAAVKAAAFSgAABUoAAAVKAAAFSgAAB0z%2F%2FgUSAHkEdwDBBHcAwQR3AMEEdwDBAnH%2F%2BgJxALMCcf%2B1AnEAAQXZAC8GRADBBkwAeQZMAHkGTAB5BkwAeQZMAHkEkQCDBkwAeQXwALQF8AC0BfAAtAXwALQEvAAABPQAwQVUAKgEpABaBKQAWgSkAFoEpABaBKQAWgSkAFoHGQBaA%2FYAZgScAGYEnABmBJwAZgScAGYCO%2F%2B7AjsAnAI7%2F5wCO%2F%2FnBNsAZgUUAKgE4wBmBOMAZgTjAGYE4wBmBOMAZgSRAGAE4wBmBRQAngUUAJ4FFACeBRQAngRKAAAE%2FACoBEoAAAI7AKgHlgB5B64AZgTLAOMEngFgBMsA7AQAAFIIAABSAYsAGQGLABkCJQA%2FAy0AGQMtABkDsAArAwIAgwKwAFICsABQAQr%2BdwLnABAEpAA%2FAAAAAwAAAAMAAAAcAAEAAAAAAKwAAwABAAAAHAAEAJAAAAAgACAABAAAAH4A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCs%2F%2F8AAAAgAKABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrP%2F%2F%2F%2BP%2Fwv%2BR%2F3H9%2F%2F3s%2FevgteCy4LHgruCY4I%2FgYOApAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0%2BP0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAhoeJi5OYnqOipKalp6mrqqytr66wsbO1tLa4t7y7vb4AcmRladB4oXBrAHZqAIiaAHMAAGd3AAAAAABsfACouoFjbgAAAABtfQBigoWXw8TIyc3Oysu5AMEA09XR0gAAAHnMzwCEjIONio%2BQkY6VlgCUnJ2bwsXHcQAAxnoAAAAAAEBHW1pZWFVUU1JRUE9OTUxLSklIR0ZFRENCQUA%2FPj08Ozo5ODc2NTEwLy4tLCgnJiUkIyIhHxgUERAPDg0LCgkIBwYFBAMCAQAsILABYEWwAyUgEUZhI0UjYUgtLCBFGGhELSxFI0ZgsCBhILBGYLAEJiNISC0sRSNGI2GwIGAgsCZhsCBhsAQmI0hILSxFI0ZgsEBhILBmYLAEJiNISC0sRSNGI2GwQGAgsCZhsEBhsAQmI0hILSwBECA8ADwtLCBFIyCwzUQjILgBWlFYIyCwjUQjWSCw7VFYIyCwTUQjWSCwBCZRWCMgsA1EI1khIS0sICBFGGhEILABYCBFsEZ2aIpFYEQtLAGxCwpDI0NlCi0sALEKC0MjQwstLACwKCNwsQEoPgGwKCNwsQIoRTqxAgAIDS0sIEWwAyVFYWSwUFFYRUQbISFZLSxJsA4jRC0sIEWwAENgRC0sAbAGQ7AHQ2UKLSwgabBAYbAAiyCxLMCKjLgQAGJgKwxkI2RhXFiwA2FZLSyKA0WKioewESuwKSNEsCl65BgtLEVlsCwjREWwKyNELSxLUlhFRBshIVktLEtRWEVEGyEhWS0sAbAFJRAjIIr1ALABYCPt7C0sAbAFJRAjIIr1ALABYSPt7C0sAbAGJRD1AO3sLSywAkOwAVJYISEhISEbRiNGYIqKRiMgRopgimG4%2F4BiIyAQI4qxDAyKcEVgILAAUFiwAWG4%2F7qLG7BGjFmwEGBoATpZLSwgRbADJUZSS7ATUVtYsAIlRiBoYbADJbADJT8jITgbIRFZLSwgRbADJUZQWLACJUYgaGGwAyWwAyU%2FIyE4GyERWS0sALAHQ7AGQwstLCEhDGQjZIu4QABiLSwhsIBRWAxkI2SLuCAAYhuyAEAvK1mwAmAtLCGwwFFYDGQjZIu4FVViG7IAgC8rWbACYC0sDGQjZIu4QABiYCMhLSxLU1iKsAQlSWQjRWmwQIthsIBisCBharAOI0QjELAO9hshI4oSESA5L1ktLEtTWCCwAyVJZGkgsAUmsAYlSWQjYbCAYrAgYWqwDiNEsAQmELAO9ooQsA4jRLAO9rAOI0SwDu0birAEJhESIDkjIDkvL1ktLEUjRWAjRWAjRWAjdmgYsIBiIC0ssEgrLSwgRbAAVFiwQEQgRbBAYUQbISFZLSxFsTAvRSNFYWCwAWBpRC0sS1FYsC8jcLAUI0IbISFZLSxLUVggsAMlRWlTWEQbISFZGyEhWS0sRbAUQ7AAYGOwAWBpRC0ssC9FRC0sRSMgRYpgRC0sRSNFYEQtLEsjUVi5ADP%2F4LE0IBuzMwA0AFlERC0ssBZDWLADJkWKWGRmsB9gG2SwIGBmIFgbIbBAWbABYVkjWGVZsCkjRCMQsCngGyEhISEhWS0ssAJDVFhLUyNLUVpYOBshIVkbISEhIVktLLAWQ1iwBCVFZLAgYGYgWBshsEBZsAFhI1gbZVmwKSNEsAUlsAglCCBYAhsDWbAEJRCwBSUgRrAEJSNCPLAEJbAHJQiwByUQsAYlIEawBCWwAWAjQjwgWAEbAFmwBCUQsAUlsCngsCkgRWVEsAclELAGJbAp4LAFJbAIJQggWAIbA1mwBSWwAyVDSLAEJbAHJQiwBiWwAyWwAWBDSBshWSEhISEhISEtLAKwBCUgIEawBCUjQrAFJQiwAyVFSCEhISEtLAKwAyUgsAQlCLACJUNIISEhLSxFIyBFGCCwAFAgWCNlI1kjaCCwQFBYIbBAWSNYZVmKYEQtLEtTI0tRWlggRYpgRBshIVktLEtUWCBFimBEGyEhWS0sS1MjS1FaWDgbISFZLSywACFLVFg4GyEhWS0ssAJDVFiwRisbISEhIVktLLACQ1RYsEcrGyEhIVktLLACQ1RYsEgrGyEhISFZLSywAkNUWLBJKxshISFZLSwgiggjS1OKS1FaWCM4GyEhWS0sALACJUmwAFNYILBAOBEbIVktLAFGI0ZgI0ZhIyAQIEaKYbj%2FgGKKsUBAinBFYGg6LSwgiiNJZIojU1g8GyFZLSxLUlh9G3pZLSywEgBLAUtUQi0ssQIAQrEjAYhRsUABiFNaWLkQAAAgiFRYsgIBAkNgQlmxJAGIUVi5IAAAQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuUAAAICIVFiyAgQCQ2BCWblAAACAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAIuAGAsQlAG7IFQAi6AYAACQFAWblAAACAiFW5QAACAGO4BACIVVpYswwADQEbswwADQFZWVlCQkJCQi0sRRhoI0tRWCMgRSBksEBQWHxZaIpgWUQtLLAAFrACJbACJQGwASM%2BALACIz6xAQIGDLAKI2VCsAsjQgGwASM%2FALACIz%2BxAQIGDLAGI2VCsAcjQrABFgEtLLCAsAJDULABsAJDVFtYISMQsCAayRuKEO1ZLSywWSstLIoQ5S1ApQkhSCBVIAEeVR9IHlUfHgEPHj8erx4DT0YcH05NGx9NRhofJjQQVSUkSB8ZE%2F8fBwT%2FHwYD%2Fx9MSxwfS0YbHxMzElUFAQNVBDMDVR8DAQ8DPwOvAwPLSttK60oDy0kBSEYSH0dGEh9JRgEjSCJVHDMbVRYzFVURAQ9VEDMPVc8PAR8PAQ8P3w%2F%2FDwMGAgEAVQEzAFVvAH8ArwDvAAQQAAGAFgEFAbgBkLFUUysrS7gH%2F1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQBCHUuwMlNYsCAdWUuwZFNYsBAdsRYAQllzcysrXnN0dCsrKysrdCsrc3NzdCsrKysrKysrKysrKytzdCsrKxheBhQAFwBOBbYAFwB1BbYFzQAAAAAAAAAAAAAAAAAABFIAFACGAAD%2F7AAAAAD%2F7AAAAAD%2F7AAA%2FhT%2F7AAABbYAGfyU%2F%2B3%2Be%2F%2Fy%2Fqj%2BngAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAwAC4ALAAowCUAMAAzQDFAM8AugCaATEAsgAAAAAAAAAAAAAAAAA0AFoA2AFWAc4CTAJmApICwALyAyADQgNaA3wDmgPcBAQESgSmBO4FPAWYBb4GJgaGBr4G%2BAcgB0oHcgfOCFgImAjyCTIJagmiCdQKIgpUCmoKkgrMCuoLMgtuC7QL8gxKDJYM6A0MDUANcg3IDgQOMg5mDooOqA7KDvQPCg8qD4oP3hAYEGoQwBECEZwR2hISElwSnBK0EwwTRhOGE9oULhReFKwU8BUqFVoVshXsFiwWYBawFsgXGhdgF2AXkhfkGDwYmBjuGRQZjhnEGkAakhrOGvAa%2BBuCG5gb0BwMHEYclhy2HPwdMB1SHYgdsh3sHiYePB5SHmgeyB7aHuwe%2Fh8QHyIfNB%2BOH5ofrB%2B%2BH9Af4h%2F0IAYgGCAqIHwgjiCgILIgxCDWIOghGCGCIZQhpiG4Icoh3CImIpIioiKyIsIi0iLkIvYjhCOQI6AjsCPAI9Ij5CP2JAgkGiSGJJYkpiS2JMYk1iToJTAlmCWoJbolyiXcJewmRCZWJm4m0idYJ4YnwCf%2BKBQoKihKKGoojCi%2BKO4pIilCKWQpiCmmKeYqXAAAAAIAhf%2FjAa4FtgADAA8AKUATCgMEAwICERABAQ0CAw0HUVkNEwA%2FKwAYPxI5LxESATkRMzMRMzEwASMDIQE0NjMyFhUUBiMiJgFzrjQBFf7fTkhHTE1GR08BvAP6%2BsdKTVBHR1NQAAAAAgCFA6YC%2BAW2AAMABwAfQA0HBAADBAMJCAYCBwMDAD8zzTIREgE5OREzETMxMAEDIwMhAyMDAW0plikCcymWKQW2%2FfACEP3wAhAAAAIALwAABPoFtAAbAB8AikBKCB8cFQQUCREMDAkSDw4LBAoTExQWHR4HBAYXBAEAGQQYBQUGFAYKIQMaFwMYChggIQgEDAwcAQ0fABAQGRURDRENEQUXEwMKBRIAPzM%2FMxI5OS8vETMzMxEzMxEzMzMRMzMREgE5OREXMxESOTkRMxESFzkREhc5ETMREhc5MjIRMxESFzkxMAEDIRUhAyMTIwMjEyM1IRMhNSETMwMzEzMDMxUBMxMjA903AQ7%2B0VCyUPhQrkz6ARs5%2FvgBJVC0UPxQrlD8%2FQD6OfoDZv7kqP5eAaL%2BXgGiqAEcqAGm%2FloBpv5aqP7kARwAAAMAb%2F%2BJBCcGEgAgACYALQBnQDkMFBcdJSoGBAQFIQAnEQAFCBEZBS8uBQYWQA8SSBYXQB0NJAMqKgYXJQwGDE9ZAwYrHBQXFxxPWRcALysRADMRMxgvMysRADMREjkRFzMaGBDNKxDNERIBFzkRMxEzETMSFzkxMAEUBgcVIzUmJzUeARcRJy4BNTQ2NzUzFRYXByYnERceAQc0JicRNgEUFhcRDgEEJ9TIhfifVuZbVKSX17iFy7ZJnZtMvpLsUV%2Bw%2FidHXVBUAcWRvBbZ0wRI0yo5AQF2Hz%2BvgYqyE6ilB0u3Pgz%2BlB1JooQ6SyP%2BwRsC4zlMJQE3DEoAAAUAVP%2FsBpEFywAJABQAHgApAC0AV0AwLSorLBofFSUFCgAQChAfJSosBi8uHKAnAScnLQNgDQGvDQENDSwtAywSBxIEGCITAD8zPzM%2FPxI5L11xMxE5L10zERIBFzkRMxEzETMRMxEzETMxMAEUFjMyERAjIgYFFAYjIiY1ECEyFgEUFjMyERAjIgYFFAYjIiY1ECEyFgkBIwEBFzpChIRCOgHCpaGYpwE%2FnakB9jtCg4NCOwHCpp%2BYqAFAmqv%2B1%2FzVwgMrBACVkgEnASeSk%2Bbn794Bye382pWUASkBJZCV5ubt3wHJ7AMh%2BkoFtgAAAAMAYP%2FsBekFywALABQAMgBUQC4sKxIVJygGIQAbKxUbISgFNDMlDi0qBCwnAyQYAw8nHiwSHglLWR4EMAxMWTATAD8rABg%2FKwAYPxI5ERc5ERIXORESARc5ETMRMxEzETMRMzEwARQWFz4BNTQmIyIGEzI3AQ4BFRQWJTQ2Ny4BNTQ2MzIWFRQGBwE2NzMCBwEhJw4BIyIkAcNDPHFbV0hPXZW3gv6BalCL%2Fn2Ap19F2bexyoeeAVpRNvJGmgEt%2FtGVZueM5v76BHs%2FcD9Ab0VBTlH792sBeUR3TGJ7zYPDYG%2BZUpiwq5Fyul3%2BsmvP%2FuSz%2Ft2RUlPaAAAAAAEAhQOmAW0FtgADABS3AAMDBQQCAwMAP80REgE5ETMxMAEDIwMBbSmWKQW2%2FfACEAAAAAABAFL%2BvAJMBbYADQAfQA4DBAsDCgcACgAPDgsDAwA%2FLxESATk5ETMRFzMxMBMQEjczBgIVFBIXIyYCUpuSzYuUlInLk5oCMQEJAc6uvP4t9PT%2BNrmqAcYAAQA9%2FrwCNwW2AA0AH0AOAwoLAwQHAAQADw4ECgMAPy8REgE5OREzERczMTABEAIHIzYSNTQCJzMWEgI3m5LLipOUi82TmgIx%2Fvn%2BOqi7Acj09QHRva%2F%2BMQAAAAABAEoCagQUBhQADgAbQA8DBQQBBw0KCQsJDxAIDgAAP8QREgEXOTEwAQMlFwUTBwsBJxMlNwUDAqApAYEc%2Fpjsx6aVzef%2BmiMBeCkGFP6CbNkd%2FslrAVL%2BrmsBNx3ZbAF%2BAAAAAQBgAOMEMQTDAAsALEAWBgMKCgsLAQgDDQwJAQIBUlkGLwIBAgAvXTMrEQAzERIBFzkRMxI5OTEwASE1IREzESEVIREjAe7%2BcgGOtAGP%2FnG0AnmyAZj%2BaLL%2BagABAD%2F%2B%2BAGcAO4ABgAeQA8ABQMFCAcDQAZQBtAGAwYAL13NERIBOTkRMzEwJQYDIxI3MwGcMICtRSLn17r%2B2wEO6AAAAAEASAHBAkoCiQADABVACQMABQQBAE1ZAQAvKxESATk5MTATNSEVSAICAcHIyAAAAAEAhf%2FjAa4BFAALABhACwYAAA0MCQNRWQkTAD8rERIBOREzMTA3NDYzMhYVFAYjIiaFTEhJTE1ISEx9SU5RRkdTUgAAAQAQAAADDgW2AAMAHEAMAwABAgIABQQDAwISAD8%2FERIBOTkRMxEzMTAJASMBAw794N4CIQW2%2BkoFtgAAAgBY%2F%2BwEOQXNAAsAFwAoQBQSAAwGBgAZGAkVTVkJBwMPTVkDGQA%2FKwAYPysREgE5OREzETMxMAEQAiMiAhEQEjMyEgEQEjMyEhEQAiMiAgQ59fz0%2FPX79fz9DXuHh319h4d7Atv%2Bg%2F6OAX4BcQGDAW%2F%2BgP6O%2FtX%2FAAEEAScBJgEH%2Fv4AAQCaAAADDAW2AAoAIUAQAAQICQQBAQwLBAcBCQYBGAA%2FPxI5ORESATkRFzMxMCEjETQ3DgEHJwEzAwzrCBdDv3YBrsQDsKljGDqblQFSAAABAFoAAAQ5BcsAGwAxQBoHFBoCAg4UGwQdHBEKTVkRBwIaAQEaTlkBGAA%2FKxESADkYPysREgEXOREzETMxMCkBNQE%2BAjU0JiMiBgcnPgEzMhYVFA4BDwEVIQQ5%2FCEBeadtMndpVJ1nf3rmgsz2R5Or%2FgK2sgF7q49%2BSGNyPlGbZ1bVtGOyvaH2CgAAAAEAVv%2FsBC0FywAmAENAJBMHGwAABAcNFyIGKCcDFxgYF09ZGBgKJCQeTVkkBwoQTVkKGQA%2FKwAYPysREgA5GC8rERIAORESARc5ETMRMzEwARQGBxUeARUUBCEiJzUeATMyNjU0JisBNTMgNTQmIyIGByc2ITIWBAKik7Cw%2Ftb%2B7fOnXdBgqqi6x3%2BBAV56d1OaaXPJAQrd%2BARmi7kgCBavkdPlT9EuMn6EdW6%2F8l5mL0SklL4AAAACACcAAARtBboACgASAEhAJwkBAQ4LBwQSBQUEAAMUEwEFEgVNWQkGUBIBDxIfEgISEgMPBwYDGAA%2FPzMSOS9dXTMzKxEAMxESARc5ETMRMzMzMxEzMTABIxEjESE1ATMRMyERNDcjBgcBBG3F5f1kApzlxf5WCggcPP6VAT%2F%2BwQE%2FtQPG%2FEgBb8R9Ql798AABAHX%2F7AQpBbYAHAA6QB8PAxoVAwgVGAQeHQARTVkAAAYWFhlOWRYGBgxNWQYZAD8rABg%2FKxESADkYLysREgEXOREzETMxMAEyBBUUACEiJzUeATMyNjUQISIGBycTIRUhAz4BAkrdAQL%2B2%2F7y9YxR0lqfpv6yL4o0aTgC%2BP3XISNlA5Hqyur%2B%2BU%2FVLjKOiQEGEww%2BAsrR%2FpYGEAACAF7%2F7AQ%2FBckAFwAkAERAIxsRIgoKAAAFEQMmJQoUDg4eT1kODhQCAgdPWQIHFBhNWRQZAD8rABg%2FKxESADkYLysREgA5ERIBFzkRMxEzETMxMBMQITIXFSYjIgYDMz4BMzIWFRQAIyImAgUyNjU0JiMiDgEVFBZeArtuTExk6%2BwKDC%2Bqc8fe%2Fv%2Feneh9Af55g3t7TIBKmQJvA1oRxBb8%2FupRWfTR5v71lwEh9pyRfpBBcTuNwQAAAQBKAAAEPQW0AAYAJUASBgABBQACBQMIBwAYAwJOWQMGAD8rABg%2FERIBFzkRMxEzMTAhASE1IRUBAQACQv0IA%2FP9wQTlz6T68AAAAAMAWP%2FsBDkFyQAWACMAMAA3QB0DCA4UKyEGMjEFESEhKysLAAAkT1kABwsaT1kLGQA%2FKwAYPysREgA5GC8zEjk5ERIBFzkxMAEyFhUUBR4BFRQEIyIkNTQ2Ny4BNTQ2AxQWMzI2NTQmLwEOAQEiBhUUHgEXPgE1NCYCSNDy%2FvKskf724%2B7%2B%2BomchnL6RpJ9gY%2BEhh2EdAENZHosVGR4Y3sFyb%2Bg4YVWvnW12sy7esNMULJvn737smhzd2ZRhjkNOosDP2NVNFJDLzV1TlVjAAACAFb%2F7AQ3BckAGAAlAERAIyIMDAAcEgAGEgMnJgwPFQ8fT1kPDwMVFRlNWRUHAwhPWQMZAD8rABg%2FKxESADkYLysREgA5ERIBFzkRMxEzETMxMAEQACEiJzUWMzISEyMOASMiJjU0ADMyFhIlIgYVFBYzMjY1NC4BBDf%2BpP6ihTpZWu7qCww7p3DC3gEB3pzofv4CeoJ5e3eiRXwDRv5Q%2FlYQxRkBAAESWlDy0%2BUBD5j%2B3%2FafkH2Pjl9Zm1oAAAACAIX%2F4wGuBGoACwAWAChAFBEMBgYAABgXDhRRWQ4QCQNRWQkTAD8rABg%2FKxESATkRMxI5OTEwNzQ2MzIWFRQGIyImETQzMhYVFAYjIiaFTEhJTE1ISEyUS0pNSEhMfUlOUUZHU1IDnpdQR0dTUgAAAgA%2F%2FvgBrARqAAYAEQAyQBsMBwEGBgQHAxMSBAAGEAaQBgMNAwYJD1FZCRAAPysAGC9fXl3GERIBFzkRMxEzMTAlFwYDIxI3AzQzMhYVFAYjIiYBjQ8wgK1FIiOUS0pNSEhM7he6%2FtsBDugC5ZdQR0dTUgABAGAA3QQxBOwABgAmQBYFAQABBAMIBwAPAwE%2FA28DjwPvAwQDAC9dccYREgEXOREzMTAlATUBFQkBBDH8LwPR%2FSMC3d0BrnkB6MP%2BqP7RAAIAZgGwBCkD8gADAAcALUAbBAcAAwQJCAQFUlkEAQEAUlkPAS8BTwFvAQQBAC9dKwAYEMYrERIBFzkxMBM1IRUBNSEVZgPD%2FD0DwwM%2Fs7P%2BcbKyAAEAYADdBDEE7AAGACZAFgEFAgUGAwgHBg8DAT8DbwOPA%2B8DBAMAL11xxhESARc5ETMxMBMJATUBFQFgAt39IwPR%2FC8BogEvAVjD%2Fhh5%2FlIAAgAQ%2F%2BMDbQXLABsAJgBBQCEhHBsABxMADhMcBCgnBBcXEAAAJBAQCktZEAQkHlFZJBMAPysAGD8rERIAORgvEjkRMxESARc5ETMRMxEzMTABNTQ2Nz4BNTQmIyIGByc2MzIWFRQOAQcOAR0BAzQzMhYVFAYjIiYBG1Bkd0VwaV%2BiTVTL6MTmLFltXT%2Ftk0hMTUdHTAG8QG6STl5oSFRaNiawccCpS3VqVUlgUS3%2BwZdPSEdTUQAAAAIAb%2F9WBr4FvgA1AD8ATEAmGwA7FDoHFjYOIy4ADhQWKC4GQUAICz0RETIYODgECwsrHzIDJisALzM%2FMxI5LzMzETMROS8zEjkREgEXOREzETMRMzMRMxEzMTABFA4BIyImJyMOASMiJjU0EjMyFhcDFRQzMjY1NAIkIyIEAhUQACEyNxUGIyAAERASJDMyBBIBFDMyEzcmIyIGBr5ao2tPdBQMMZBao7v40Uy5SBZoT12M%2Fv6n1f7FpgE2ASLd8NL3%2Fo7%2BYuABjfvZAVO7%2B%2Fy3wRIMP0iAjwLjj%2B2EVEhOTtKzzgEBGxj%2BLxigzJ6rAQOMsP652P7e%2FshapFYBjwFlAQUBl9i0%2FrP%2Bp%2BkBJe8RqgAAAAIAAAAABUoFvAAHAA8AN0AeBgUMAAcDBAECBAcIDA8HERAPAkxZDw8FAAQSDAUDAD8zPzMSOS8rERIBFzkRMxEzETMzMTAhAyEDIwEhCQEDLgEnBgcDBEyS%2FdGP%2FAIjAQQCI%2F4xiQ81Chs0hAGW%2FmoFvPpEAmQBjiisKHuS%2FoMAAwDBAAAE2QW2AA8AGAAhAElAJhQEHgsQGhoPBAgLDwQjIggZEBAZS1kQEA8AABhMWQADDxpMWQ8SAD8rABg%2FKxESADkYLysREgA5ERIBFzkRMxEzETMRMzEwEyEgBBUUBgcVHgEVFAQjIRMzMjY1NCYrARkBMzI2NTQmI8EBsgEuAQ2EfJqR%2Fu31%2FfDv5paKlaLP%2FpaZnJ8FtrC%2BgKoWCh2rksXfA1pfcmdc%2Far%2BMXN8cm4AAQB5%2F%2BwEzwXLABgAJkAUAw8JDxUDGhkTAExZEwQMBkxZDBMAPysAGD8rERIBFzkRMzEwASICERASMzI2NxUGIyAAETQSJDMyFwcuAQMvzuzj112uXqza%2Fr%2F%2BqKcBPNXgvlZKpQT%2B%2Ftz%2B%2F%2F7z%2FuwlHc1BAYUBauQBVrZexyM1AAACAMEAAAVmBbYACAAPAChAFA0ECQAEABARBQxMWQUDBA1MWQQSAD8rABg%2FKxESATk5ETMRMzEwARAAKQERISAAAxAhIxEzIAVm%2Fm7%2Bhv5nAcQBXQGE%2FP4Vz6oCEALp%2Fpb%2BgQW2%2Foj%2BowIN%2B9sAAAAAAQDBAAAD%2FAW2AAsAPUAgBAAGCgoBAAEIAw0MBglMWQYGAQICBUxZAgMBCkxZARIAPysAGD8rERIAORgvKxESARc5ETMRMxEzMTApAREhFSERIRUhESED%2FPzFAzv9tAIn%2FdkCTAW2yv5yyP41AAAAAAEAwQAAA%2FoFtgAJADhAHgYAAAEEBwEDCgsGCUxZDwYBCwMGBgIBEgIFTFkCAwA%2FKwAYPxI5L19eXSsREgEXOREzETMxMCEjESEVIREhFSEBru0DOf20Aif92QW2yv43ywAAAAABAHn%2F7AUxBcsAGgA6QB8YAhMIAggaDQQcGwAaTFkAAAULCxBMWQsEBRZMWQUTAD8rABg%2FKxESADkYLysREgEXOREzETMxMAEhEQ4BIyAAERAAITIXByYjIgAVEBIzMjcRIQMXAhqE843%2BtP6YAZYBZOXNVLKy6v7w9eZ0hP7RAxn9IiskAYkBZgFhAY9Yx1L%2B2v%2F%2B9P7pHQF5AAABAMEAAAVCBbYACwAzQBkIBAQFCQEBAAUADA0IA0xZCAgFCgYDAQUSAD8zPzMSOS8rERIBOTkRMxEzETMRMzEwISMRIREjETMRIREzBULw%2FV7v7wKi8AKT%2FW0Ftv2qAlYAAAAAAQDBAAABsAW2AAMAEbYABQQBAwASAD8%2FERIBOTEwMxEzEcHvBbb6SgAAAAAB%2F2T%2BaAGqBbYADAAfQA4KAwcHDg0IAwAFTFkAIwA%2FKwAYPxESATkRMzMxMBMiJzUWMzI1ETMRFAYIYkJUPsTw1f5oGckV%2BAWJ%2Bn%2Fg7QAAAAEAwQAABR0FtgAOADVAHAsMAQAIBAQFAAIFDA4FEA8CDgMIBAULBgMBBRIAPzM%2FMxIXORESARc5ETMRMxEzETMxMCkBAQcRIxEzETY3ASEABwUd%2Fuv%2BNY3v72JhAYsBEP6BpgKWc%2F3dBbb9RnhvAdP%2BPr8AAQDBAAAEGwW2AAUAH0AOAwAFAAcGAQMAA0xZABIAPysAGD8REgE5OREzMTAzETMRIRXB7wJrBbb7F80AAQDBAAAGogW2ABQAPkAfEgsODg0UAAkCCAUFBgYJDQMWFQISCQMGCwcDAA4GEgA%2FMzM%2FMxIXORESARc5ETMRMzMRMzMRMxEzMzEwIQEjEhURIxEhATMBIREjETQSNyMBAzn%2BWAgR2QFRAZYGAaIBUuYLBAj%2BSQTF%2FvDu%2FTkFtvt1BIv6SgLTbQFeJfs9AAAAAQDBAAAFgwW2ABEAMkAXDAEQEAADCgcHCAgAExIDDAgQCQMBCBIAPzM%2FMxI5ORESATk5ETMRMzMRMxEzMzEwKQEBIxcWFREjESEBMyYCNREzBYP%2B2%2F0xCAUO2QEiAs0GAgzbBI1Bupr9CAW2%2B3kXASFRAv4AAAAAAgB5%2F%2BwF0wXNAAsAFwAoQBQMBhIABgAYGQkVTFkJBAMPTFkDEwA%2FKwAYPysREgE5OREzETMxMAEQACEgABEQACEgAAEQEjMyEhEQAiMiAgXT%2Fpv%2Buf61%2Fp0BZQFLAUYBZPuk2tbV2dfV19sC3f6b%2FnQBiQFqAWoBhP52%2Fpr%2B8v7pARQBEQENARb%2B6gACAMEAAASJBbYACgATADJAGQ8ACwUFBgYAFRQLBExZCwsHBhIHE0xZBwMAPysAGD8SOS8rERIBOTkRMxEzETMxMAEUBCEjESMRISAEATMyNjU0JisBBIn%2B1P7rmO8BpQESARH9J3%2B4rJqjpgP85fT93QW24P4WgIh%2BfAAAAgB5%2FqQF0wXNAA8AGwA7QB8FBAMGFgAQCgAEBgoEHRwNGUxZDQQFBwMHBxNMWQcTAD8rEQAzGBDGPysREgEXOREzETMRMxEzMTABEAIHASEBIyAAERAAISAAARASMzISERACIyICBdPLwgFe%2Fr7%2B7Cf%2Btf6dAWUBSwFGAWT7pNrW1dnX1dfbAt3%2B9v6USv6HAUgBiQFqAWoBhP52%2Fpr%2B8v7pARQBEQENARb%2B6gAAAAACAMEAAAUKBbYACAAVAERAIxIVBBAUEwAKCgsLEBMVBBcWEgkACUtZAAAMFAsSDAhMWQwDAD8rABg%2FMxI5LysRADMREgEXOREzETMRMxEzETMxMAEzMjY1NCYrARkBIxEhIAQVEAUBIQEBsKanlqKjnu8BnQEbARD%2B5AGd%2FvD%2BogMOfHp8bP1c%2FbgFttTW%2Fu90%2FXkCSAAAAAEAZP%2FsBAwFywAkADRAGwwAHRIFEhcABCYlDB0DFRUaTFkVBAMJTFkDEwA%2FKwAYPysREgA5ORESARc5ETMRMzEwARQEIyInNR4BMzI2NTQmJy4BNTQkMzIXByYjIgYVFB4BFx4CBAz%2B5vj4nmThYY6HfMLIpAEE29LQTMOZdHgwbo%2BhlkYBjcPeTeIvNmxbUnJOUdCSt9Jcw1JlUzlRSDtDdJIAAQAdAAAEaAW2AAcAJUASAAEBAwYDCQgBEgcDBANMWQQDAD8rEQAzGD8REgEXOREzMTAhIxEhNSEVIQK67%2F5SBEv%2BUgTpzc0AAQC0%2F%2BwFOwW2ABEAJUAREAELCAgBExIRCQMFDkxZBRMAPysAGD8zERIBOTkRMxEzMTABERQGBCMgADURMxEUFjMgGQEFO4v%2B%2Bbf%2B8P7S8KiuAVIFtvxOovODASD8A678Y7WsAWMDmwABAAAAAAT6BbYADAAqQBQDAgkAAQUEAQQJAw4NCQMABAMDEgA%2FPzMSORESARc5ETMRMxEzMzEwATMBIwEzAR4BFz4BNwQC%2BP4A%2FP4C9gExGDYIDTYRBbb6SgW2%2FHNBzTJMyDAAAQAMAAAHgwW2ABwAQEAhAQAYCgkQFRQFGxwNDAUMEBgcBR4dEAUYAwobFAwDAQoSAD8zPzMzEhc5ERIBFzkRMxEzETMzETMzETMzMTApAQMuAScOAQcDIQsBMxMWFz4BNxMzExYXNjcTMwYG%2Fvz4EDAFCi0P8v78vcD00TEVCywS7u30IycPOdDyA2g51ypAzDL8nALcAtr8rM2dVdJBA1b8pnftj90DUgAAAAEABAAABPYFtgALADVAHAEACQoHBgMEBAACBQYICgsIDQwCCAQJBgMBBBIAPzM%2FMxI5ORESARc5ETMRMxEzETMxMCkBCQEhCQEhCQEhAQT2%2Fu3%2Bkv6P%2FwAB5f46AQoBUgFSAQL%2BNwJW%2FaoC9gLA%2FdcCKf08AAAAAAEAAAAABLwFtgAIACxAFQECCAcABAQFAgUHAwoJAAUBBwMFEgA%2FPzMSORESARc5ETMSOREzETMxMAkBIQERIxEBIQJeAVoBBP4Z8P4bAQQDGwKb%2FIH9yQIvA4cAAQBCAAAEWAW2AAkAOEAdAwcIAgACBAcECwoHBAUFBExZBQMCCAEBCExZARIAPysREgA5GD8rERIAORESARc5ETMRMzEwKQE1ASE1IRUBIQRY%2B%2BoC4f0zA%2B79HAL4pgRDzaj7vwAAAAABAJr%2BvAJxBbYABwAfQA0EAAYBAQAJCAYBBQIDAD8zLzMREgE5OREzETMxMAEhESEVIREhAnH%2BKQHX%2FwABAP68Bvqw%2BmcAAAABABAAAAMOBbYAAwAcQAwCAQADAwEFBAMDAhIAPz8REgE5OREzETMxMBMBIwHuAiDd%2Fd8FtvpKBbYAAAABADP%2BvAIIBbYABwAfQA0DAAEGBgAJCAAHAwQDAD8zLzMREgE5OREzETMxMBchESE1IREhMwEA%2FwAB1f4rkwWZsPkGAAEAHQIXBC8FvgAGACdAEgIBBQQDBgAAAwUDCAcFAAQCAwA%2FzTI5ERIBFzkRMxEzETMzMTATATMBIwkBHQG0eQHlwv6j%2Fs0CFwOn%2FFkCtv1KAAAAAAH%2F%2FP7BA3P%2FSAADABG1AwUCBAECAC8zEQEzETMxMAEhNSEDc%2FyJA3f%2BwYcAAQFqBNkDUAYhAAkAE7YIAwsKBYAAAC8azRESATk5MTABLgEnNSEeARcVArJF0zABESaDLATZNMU6FUa2MxkAAAIAWv%2FsBAQEZgAbACYASUAmDAEfHxskCAgUGwMoJwIFFwwgSlkMDAUXABUXEEhZFxAFHEhZBRYAPysAGD8rABg%2FERI5LysREgA5ERIBFzkRMxEzETMzMTAhJyMOASMiJjU0NiU3NTQmIyIGByc%2BATMyFhURJTI2PQEHDgEVFBYDXC8IUKJ%2Fo7f%2BAQS%2FY2hVnEhMWtZf09f9%2BoCbjqaXWJplSbChq64IBjtqaTIiqC8xuMX9F6CPgWAGBmNmSlEAAAIAqP%2FsBJMGFAATAB8AQEAhCRgRAw0eAw0LCwMhIAgRBgAMAAsVABRGWQAQBhtGWQYWAD8rABg%2FKwAYPz8REjk5ERIBOTkRMxEzERczMTABMhIREAIjIicjByMRMxEUBgczNhciBgcVFBYzMjY1EALdz%2Bfq0NJ0ECuw6wgCCnCdjn0CgJF9gQRm%2FtT%2B8f7w%2FtGXgwYU%2Fo4pohalwKfEEMq1xrsBeQAAAAEAZv%2FsA7QEZgAVACZAFA0DAwgSAxcWBgtGWQYQABBGWQAWAD8rABg%2FKxESARc5ETMxMAUiABEQACEyFwcmIyARFBYzMjcVDgECZvv%2B%2BwERAQKvjEeVYf7hj4qdjD%2BPFAElARIBFwEsQb06%2FoO6u07NJSAAAgBm%2F%2BwEVAYUABIAHwBAQCEQFwkDDAwOHQMOAyEgCREABgwADxUGGkZZBhAAE0ZZABYAPysAGD8rABg%2FPxESOTkREgE5OREzETMRFzMxMAUiAhEQEjMyFzMmNREzESMnIwYnMjY3NTQmIyIGFRQWAh3P6OvQ2nIMEey4KQtxm5GEAoiRfIaCFAEsAQ8BEAEvoXdFAZP57JGlvqO3IdGwybq4wQACAGb%2F7AQ5BGYAFAAbAEdAJxkKGAsLAwMKEQMdHBgLSFkMGBwYAhADGBgABgYVSFkGEAAOR1kAFgA%2FKwAYPysREgA5GC9fXl0rERIBFzkRMxEzETMxMAUgABEQADMyEh0BIR4BMzI2NxUOAQMiBgchLgECi%2F7%2B%2Ft0BDuzb%2Fv0fBaSVYqlhVrCccIcNAfYCgBQBLQEIAQ8BNv726X%2BhrSUrvykiA8iOiImNAAAAAQAjAAADQgYfABUAO0AeDRQUBwICAwADBQMXFgMVCxBGWQsABQEUAUhZBxQPAD8zKxEAMxg%2FKwAYPxESARc5ETMSOTkRMzEwASERIxEjNTc1NDYzMhcHJiMiBh0BIQLT%2FvLstra4vXx4PldPUEkBDgOg%2FGADoG5ISMS9KbIcY2NIAAAAAwAX%2FhQETgRmACsAOABDAHJAPSsCJT4FOSUMHzITLBkABRMZHyUGRUQiCAg8SlkICBYoHDYPDzZGWQ8PFigoQUpZKBArAklZKw8WL0lZFhsAPysAGD8rABg%2FKxESADkYLysREgA5ERI5GC8rEQAzERIBFzkRMxEzETMRMxEzEjk5MTABFQceARUUBiMiJwYVFBY7ATIWFRQEISImNTQ2Ny4BNTQ2Ny4BNTQ2MzIWFwEUFjMyNjU0JisBIgYTFBYzMjU0JiMiBgROvRoi7M81K0xHX8G3vv7K%2Ftvi7oF0Lz1GRVZr49IvZxr%2BGol8wLxnjLJld2VrZMxlZ2ZpBFKBIyNmOavECC8%2FJiack7zMoJRmixsUWTE%2BViolp3C0xg0H%2BwJMUm5bSD1fA0docNpsdXQAAAABAKgAAAR1BhQAFQAzQBkBAA8NCQkKAAoXFg8KExMFRlkTEAsAAQoVAD8zPz8rERIAORESATk5ETMRMzMRMzEwISMRNCYjIgYVESMRMxEUBzM%2BATMgEQR17GdwlIvr6wwPMKtyAZICqIB%2BsdD92wYU%2FnVfbFBY%2FmsAAAAAAgCaAAABogX6AAMADwA2QCIKAAQAAQEREA0fBy8HAl8Hbwd%2FB58HrwffB%2B8HBwcCDwEVAD8%2FL11xzRESATkRMzMRMzEwISMRMwM0NjMyFhUUBiMiJgGT6%2Bv5RUA%2BRUU%2BQEUEUgElP0REPzxFRQAAAAL%2Fh%2F4UAaIF%2BgAMABgAQ0AqEwoKDQMDBwcaGRZADxAfEC8QTxBfEI8QnxDPEN8QCQ4DEAgPAAVGWQAbAD8rABg%2FL19eXRrNERIBOREXMxEzMTATIic1FjMyNREzERQGAzQ2MzIWFRQGIyImN2pGREeW67NGRUA%2BRUU%2BQEX%2BFBm6EqoE0%2Fsdq7AHYz9ERD88RUUAAAABAKgAAASJBhQADgA6QB8CAwYFDgwJCQoDBAUHCgUQDw4IBwQECgILAAIPBgoVAD8zPz8REhc5ERIBFzkRMxEzMxEzETMxMAE3ASEJASEBBxEjETMRBwGLhQFOAQ%2F%2BQwHZ%2Fuz%2BnYHp6QwCSKYBZP4l%2FYkB5Wr%2BhQYU%2FQnVAAAAAAEAqAAAAZMGFAADABZACQABAQUEAgABFQA%2FPxESATkRMzEwISMRMwGT6%2BsGFAAAAAEAqAAABwYEZgAjAEZAIxwbEwAAAQ0JCQoBChsDJSQUDQoRCw8cAQoVIAURBUZZFxEQAD8zKxEAMxg%2FMzM%2FERI5ORESARc5ETMRMxEzEjkRMzEwISMRNCYjIgYVESMRMxczPgEzIBczPgEzMhYVESMRNCYjIgYVBEzsYGaIf%2Bu4IQwur2kA%2F1MQMbJzxrXrYWaJfwKqf32xzv3ZBFKRT1auUlzIzf0vAqp%2FfauxAAAAAQCoAAAEdQRmABMAMUAYDQkJCgEACgAUFQ0KEREFRlkREAsPAQoVAD8zPz8rERIAORESATk5ETMRMxEzMTAhIxE0JiMiBhURIxEzFzM%2BATMgEQR17GdwlYrruCEMMrhwAY4CqIB%2BsM%2F92QRSkU9W%2FmsAAAACAGb%2F7AR9BGYADAAVAChAFA0HEQAHABYXChNGWQoQAw9GWQMWAD8rABg%2FKxESATk5ETMRMzEwARAAIyImAjUQADMyAAEQISARECEiBgR9%2Fur4m%2B6AART78AEY%2FNsBGwEY%2FuaUhQIr%2FvH%2B0IwBBq0BDQEu%2Fsv%2B%2Bv6BAX8Be8QAAAIAqP4UBJMEZgATACAAP0AgGAsDBgYHHhEHESEiAwsADg4URlkOEAgPBxsAG0ZZABYAPysAGD8%2FPysREgA5ORESATk5ETMRMxEzMzMxMAUiJyMWFREjETMWFzM2MzISERACASIGHQEUFjMyNjU0JgLZ0nQODuu%2BCBkMbtzP5%2Bv%2B%2BIyBgJF6hIMUl4we%2FjsGPh91qP7U%2FvH%2B8f7QA7qktCPKtci5ur8AAAIAZv4UBFQEZgALACAAQEAgHhYDGhoZCg8ZDyIhGhsXDx8WDBISB0ZZEhAMAEZZDBYAPysAGD8rERIAOTkYPz8REgE5OREzETMRMzMzMTAlMjY9ATQmIyIGFRAXIgIREBIzMhYXMzczESMRNDY3IwYCXpSBhZR%2BhMPN6OzPaKVBCBrD7AgDDWioq60lzbTIu%2F6FvAEtAQ4BDgExTViR%2BcIB1SxiGqUAAAEAqAAAA04EZgAQACNAEA0JCQoCChIRCw8NChUFABAAPzI%2FOT8REgE5OREzETMxMAEyFwcmIyIGFREjETMXMz4BAtlHLhcyNo2v67gfDDexBGYK2wy4k%2F2%2BBFLDY3QAAAEAYv%2FsA48EZgAhADRAGwoAGxEABhEWBCMiChsDFBQZR1kUEAMISFkDFgA%2FKwAYPysREgA5ORESARc5ETMRMzEwARQGIyInNRYzMjU0LgEnLgE1NDYzMhcHJiMiFRQWFx4CA4%2Fs3N2Gw6jZMG5iv4flxcOuTLN6umGjiXw8ATuirUPLWoMqODwmSpR2jp1PsUpqNEg%2FNVhzAAAAAAEAJ%2F%2FsAvAFSAAVAD1AHw8MExMIAggKEQQXFg0PQAkSDA8PEkhZDw8GAEZZBhYAPysAGD8rEQAzETMaGBDNERIBFzkRMxI5OTEwJTI3FQ4BIyAZASM1PwEzFSEVIREUFgJEVlYne0L%2BspeiUJEBO%2F7FVaobsREXAWACVGhW6vay%2FbBVUQAAAAABAJ7%2F7ARtBFIAFAAwQBcBEREUCwgUCBYVAgUSCQ8AFQUORlkFFgA%2FKwAYPz8zEjkREgE5OREzETMRMzEwIScjDgEjIiY1ETMRFBYzMjY1ETMRA7QhDDG1dMnG7WhvlIvskU1YyMsC0%2F1Wf3%2Bx0AIn%2B64AAAEAAAAABEgEUgALAChAEwkKAgELAAUBCgUDDQwJAQ8FABUAPzI%2FMxESARc5ETMzETMRMzEwIQEzExYXMzY3EzMBAaT%2BXPjhOgwICT3h%2Bv5aBFL9faJkSL4Cg%2FuuAAAAAAEAFAAABnMEUgAdAD5AIR0AFxMSBAgHDhscCgkECQ4XHAUfHgANFwMIFQkbBAMSDwA%2FFzM%2FFzMREgEXOREzETMRMzMRMzMRMzMxMCEDJgMjAgcDIQEzExYXMz4BNxMhEx4BFzM2NxMzAQQzjxpECToik%2F78%2FsrwjTAUBgopD6gBAqMPLQQIDzeP7P7IAgRSASv%2B8nH9%2FgRS%2Fd%2FKkEm9LwJG%2Fboxyjh73QIh%2B64AAAAAAQAZAAAETgRSAAsAM0AaCAcEBQIBCgsAAQUGBwsGDQwJAwsEAQ8ICxUAPzM%2FMxI5ORESARc5ETMRMxEzETMxMAkBIRsBIQkBIQkBIQGe%2Fo0BDPz%2BAQr%2BjAGH%2Fvb%2B7%2F7w%2FvYCNQId%2Fn0Bg%2F3j%2FcsBnv5iAAABAAD%2BFARKBFIAFAAzQBoUCgQICQEAAAQJDwQWFQQUFQgADwwRRlkMGwA%2FKwAYPzM%2FMxESARc5ETMRMxEzMzEwESETFhczPgETMwECISInNRYzMj8BAQDhMxEICTDm%2Fv4ngf7TTko1RKpFKQRS%2FY2GdjedApv7G%2F6nEboMxWgAAAEARAAAA4sEUgAJADhAHQMHCAICBAcJBAsKBwQFBQRIWQUPAggBAQhIWQEVAD8rERIAORg%2FKxESADkREgEXOREzETMxMCkBNQEhNSEVASEDi%2Fy5Ai%2F98wMV%2Fd0CM5EDDbSk%2FQYAAAAAAQAt%2FrwC6QW2ABwARUAnCxgSAg4HFRUcAhgcAx4dEQICDwN%2FA48DrwO%2FA88DBgMDChgZCwoDAD8zLzMSOS9dMxI5ERIBFzkRMxI5ORE5ETMxMAE0ITUyNjURNDYzFQ4BFREUBxUWFREUFhcVLgE1ATf%2B9oeD2dlyZ%2BXlZnPnywEfur9bXQE3nJO2BVNS%2FtfHJwwkyf7VUlQCtwKZqwAAAAEB2f4fAo0GEAADABS3AgMDBQQDAAAAPy8REgE5ETMxMAEzESMB2bS0BhD4DwAAAAEALf68AssFtgAeAEVAJwsbEgQXDgcHAAAEGwMgHwwbGw8afxqPGq8avxrPGgYaGhMEAxITAwA%2FMy8zEjkvXTMSORESARc5ETMSOTkRMxE5MTAFFAYHNT4BNRE0Njc1JjURNCYnNTIWFREUFjMVIgYVAc%2FH219qanvlW27fw399e4EUnJICtwFLXAEGeYQVDCfHASlSUwW2ma7%2B4WRUv1VlAAAAAQBgAjsEMQNoABUAQEAkDwMXFg4GAxERC1JZABEQEQIJAxEGQAYAUlkPBh8GPwZvBgQGAC9dKwAaGBDNX15dKwAQGMQQxhESATk5MTABIgYHNTYzMhYXFjMyNjcVBiMiJicmAUoyez1jl0J2WINZNH06aZFBfVR%2FArQ8Pb9sGiU3Pjq%2Bbx8jNwAAAAACAIX%2BjQGuBF4AAwAPAChAEgQCCgIDAxEQAAANAw0HUVkNEAA%2FKwAYLxI5LxESATkRMzMRMzEwEzMTIQEUBiMiJjU0NjMyFsGuM%2F7rASFLSkhMTEhITQKF%2FAgFOEpOT0lFVFEAAQCm%2F%2BwD9gXLABwASkApDgILAgUWCAUIEBwEHh0FAgIZTVkAAhACAhADAgQZDhNNWQuQDgEODAcAP81dMisAGD%2FFX15dKxEAMxESARc5ETMRMzMRMzEwJQYHFSM1JgI1NBI3NTMVFhcHJiMiBhUUFjMyNjcD23eLnM%2FIyc6emINGkmiSjJCKS4dX7jsFwsgfARj6%2FgEeIKqiBT28O77BwrIeJQABAEgAAARWBckAHQBVQC4aCAsLFw8TAgkQExcYBh8eCxgZGE9ZCA8ZAQsDGRkSAAAFTVkABxMPEg9OWRIYAD8rEQAzGD8rERIAORgvX15dMysRADMREgEXOREzETMSOTkxMAEyFwcmIyIdASEVIRUUBgchFSE1PgE9ASM1MxE0NgKywrVMonrNAY3%2Bc0JQAvT78mJevLzjBclStkfb9Ky2W4Atz8MehHC4rAEAvNQAAAIAdQECBBsEpAAbACcAOkAlIg4cAAACBQkMDhATFxoKKSgJDBATFxoCBQgfFSUPBx8HbwcDBwAvXTPEMhc5ERIBFzkRMxEzMTATNDcnNxc2MzIXNxcHFhUUBxcHJwYjIicHJzcmNxQWMzI2NTQmIyIGukCFeYNkc3NihXmDPz%2BBd4Vjcn5Zg3eDQKiIXmGIiGFdiQLTbWiFd4E%2FQYN1hWRzd2KBd4E9PX93gWN0YoWFYmGIiAAAAAABABIAAAR9BbYAFgBbQDMABxADCwsMAgUJDA4SFQcYFwYSExJQWQADDxMfEwIJAxMTDBUKDg8OUFkHDw8MARUGDBgAPz8zEjkvMysRADMREjkYL19eXTMzKxEAMxESARc5ETMSFzkxMAkBMwEzFSEVIRUhFSM1ITUhNSE1MwEzAkgBQfT%2BceP%2B5wEZ%2Fufh%2FuUBG%2F7l4P529gMdApn9CJeamfT0mZqXAvgAAAAAAgHZ%2Fh8CjQYQAAMABwAkQBADAgUFBAQJCAMEAwQHGwAAAD8%2FOTkvLxESATkRMxI5OTEwATMRIxEzESMB2bS0tLQGEPzm%2FkX85AAAAAIAc%2F%2FyA4kGIwAtADkATUAsNBcmGy4AEQUyGTcDAAMFCxcZGyEIOzoDGTcUMioGHggID0lZCAEeJElZHhYAPysAGD8rERIAFzkREgEXOREzETMRMxEzETMRMzEwEzQ2NyY1NDYzMhYXBy4BIyIVFBYXHgEVFAcWFRQGIyInNR4BMzI1NC4BJy4CNxQeARc2NTQmJw4BgU1Jktu5W6ZjRHR4PcJuiK%2BWi4vs0NSGTcBR6ypkYY2CPbgwbYxtfJ82RQMnUIMrU5iBkiIqojIabTZPM0SdbbFZUI%2BOpUezKDODKzY2JjdddWEtRkQ4QWdLZzUQWwACASUFAgOWBewACwAXAB5ADAwSBgASABkYDwMVCQAvM80yERIBOTkRMxEzMTABNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYBJUMwNT9ANDBDAYlDMDVAQjMwQwV3Pjc%2BNzVAOjs%2BNz43Nj86AAADAGT%2F7AZEBcsAFgAmADYARkAoAw8vHycXCQ8UFx8FODcAABIQEgISEhsGDwwfDJ8MAwwMIzMbBCsjEwA%2FMz8zEjkvXTMROS9dMxESARc5ETMRMxEzMTABIgYVFBYzMjY3FQYjIiY1NDYzMhcHJgE0EiQzMgQSFRQCBCMiJAI3FBIEMzIkEjU0AiQjIgQCA31veGx7N34uc3jF2dzEiohBavyGyAFeysgBXsrC%2FqLQz%2F6iw3upASSoqgEkp6n%2B26eo%2Ft%2BsBAqhjpOeHhWeM%2FHe1vdGjzf%2B0cgBXsrI%2FqLKxf6m0M8BWsaq%2Ft2oqwEhqagBJaim%2FtwAAAIAOQMCApMFxwAXACEAOUAdCwEhIRcbBwcRFwMjIiELCxMdAQAABBAEAgQOEwQAPzPUXcQzMxI5LzMREgEXOREzETMRMzMxMAEnDgEjIiY1NDY%2FATQmIyIHJzYzMhYVEQEOARUUMzI2PQECIx0udkdxcaioa0VFWng2kI2Kiv7%2BR21gW1wDDmE3NmlqaG8GBEhIOHNGfX3%2BQQE8AkAxWFJSKwAAAgBSAGgEIQPhAAYADQApQBMDBgoNAgQLCQkEDQYEDg8MBQgBAC8zxDIREgEXOREzETMRMxEzMTATARcJAQcBJQEXCQEHAVIBZKj%2B5gEaqP6cAcIBZaj%2B5QEbqP6bAjEBsF7%2Bov6kYQGvGgGwXv6i%2FqRhAa8AAAAAAQBgAQAEMQMrAAUAI0AQAQADAAcGAQQEA1JZLwQBBAAvXSsAGBDEERIBOTkRMzEwASMRITUhBDGy%2FOED0QEAAXmyAP%2F%2FAEgBwQJKAokSBgAQAAAABABk%2F%2BwGRAXLAAgAFQAlADUAXUAzBAkLDg0MABAQES4eJhYJDA4RFh4GNzYPAAASDQ8RHxECEREaCAASEBICEhIiMhoEKiITAD8zPzMSOS9dMxE5L10zEjkvMxESARc5ETMRMxEzETMRMxEzETMxMAEzMjY1NCYrAQUUBxMjAyMRIxEhMhYBNBIkMzIEEhUUAgQjIiQCNxQSBDMyJBI1NAIkIyIEAgLsRUpMSU9DAZmZ7dPAWr0BBq6i%2B9%2FIAV7KyAFeysL%2BotDP%2FqLDe6kBJKiqASSnqf7bp6j%2B36wDAkZBSDl9qz7%2BcwFa%2FqYDh4j%2BxcgBXsrI%2FqLKxf6m0M8BWsaq%2Ft2oqwEhqagBJaim%2FtwAAAAAAf%2F6BhQEBga4AAMAEbUABQEEAQIALzMRATMRMzEwASE1IQQG%2B%2FQEDAYUpAACAG0DOQL%2BBcsADAAYAB9ADRMGDQAGABoZEAkWAwQAPzPEMhESATk5ETMRMzEwEzQ2MzIWFRQGIyIuATcUFjMyNjU0JiMiBm2%2Bi4q%2BwIhYmViZZkpKZmhISGgEgYfDwIqLvVeYWUZoZ0dMZmgAAAAAAgBgAAAEMQThAAsADwA3QB4GAwoKCwwPAQgLBREQDA1SWQwSCQECAVJZBp8CAQIAL10zKxEAMxg%2FKxESARc5ETMSOTkxMAEhNSERMxEhFSERIwE1IRUB7v5yAY60AY%2F%2BcbT%2BcgPRApiyAZf%2BabL%2Bav7%2BsrIAAAAAAQAzAkoCpgXJABYAJ0ATBhEVAgIMERYEGBcJDh8CFRUBIAA%2FMxI5PzMREgEXOREzETMxMAEhNTc%2BATU0JiMiByc2MzIWFRQGDwEhAqb9jeZ1QUAzXWxei6qIl1yJiwGNAkqH4XBqOzQ2WHl3hHJTl3%2BBAAABAC0COQKiBckAIwA5QB8XABAGAAYLEx4DBiUkAxMTHxQBHxQBFBQJGiEfDgkhAD8zPzMSOS9dcTMSORESARc5ETMRMzEwARQGBx4BFRQGIyInNRYzMjU0KwE1MzI1NCYjIgYHJz4BMzIWAoVRT15fuq2UepF9s8dzabhFODlhOVQ9kmKGnQTjS18nFW5Nf4o%2BnU%2BHfYWBNDgoJXIuO3sAAQFqBNkDUAYhAAkAE7YFAAsKBYAAAC8azRESATk5MTABNT4BNyEVDgEHAWo5eSMBETTPRwTZGUasPRU9wTUAAAEAqP4UBHUEUgAYADtAHQoFBQgRABUVFhYIGhkRCw4GFw8JFRYbDgJGWQ4WAD8rABg%2FPz8zEjk5ERIBOTkRMxEzMxEzETMxMAEUMzI2NREzESMnIw4BIyInIx4BFREjETMBk9qSiuy3Ig0wj2iMTwQDB%2BvrAab8sdACJ%2Fuuk1NUWhyyJP7ABj4AAAAAAQBx%2FvwEdwYUAA8ALUAVAQAEBQAFCwMREAEFCAgOBQ4DS1kOAC8rABgvEjkvETMREgEXOREzETMxMAEjESMRIxEGIyImNRA2MyEEd4m%2FiT5U2Mva6AJE%2FvwGf%2FmBAzMS%2BvsBBP4AAAABAIUCOQGuA2oACwAXQAoGAAANDAMJUVkDAC8rERIBOREzMTATNDYzMhYVFAYjIiaFTEhJTE1ISEwC00lOUUZHU1IAAAEAAP4UAaoAAAARAC1AFw8MCgAABQwDExIMD0ALDkgPDw4HAhsOAC8%2FMxI5LyszERIBFzkRMxEzMTABFCEiJzUWMzI2NTQnNzMHHgEBqv7PQjc2RTY%2Fs1SYKVBa%2FvLeD4kOIS1VGaZYFV8AAAEAVAJKAhQFtgAKACJAEAAECQMBCAEMCwcJASAECR4APzM%2FEjkREgE5OREXMzEwASMRPwEOAQcnJTMCFLoDBREvdlgBGacCSgIAZ1sSLFlw0QAAAAIAPQMCAs8FxwALABcAJUASEgAMBgAGGRgPAAMQAwIDFQkEAD8zxF0yERIBOTkRMxEzMTABFAYjIiY1NDYzMhYFFBYzMjY1NCYjIgYCz6%2BdlrCxmZiw%2FhBOWFhOTlhYTgRkpL6%2Fo6m6vaZvbm5vcW1tAAAAAgBQAGgEIQPhAAYADQAlQBILCQQCAAMHAgoJBg4PCAEBDAUALzPELzIREgEXOREzETMxMAkBJwkBNwEFAScJATcBBCH%2BmagBG%2F7lqAFn%2Fj3%2BmqgBGv7mqAFmAhf%2BUWEBXAFeXv5QGv5RYQFcAV5e%2FlAAAP%2F%2FADwAAAYxBbYQJwDTAqYAABAmAHvoABEHANQDXP23AAmzAwIRGAA%2FNTUA%2F%2F8ALgAABkgFthAnANMCgwAAECYAe9oAEQcAdAOi%2FbcAB7ICEBgAPzUAAAD%2F%2FwA3AAAGaAXJECcA0wL4AAAQJwDUA5P9txEGAHUKAAAJswIBBxgAPzU1AAACADf%2BdwOWBF4AGwAnAEhAJhwiABsHExMbIgMpKAQXFwAbEBsCCwMbGxAlJR9RWSUQEApLWRAiAD8rABg%2FKxESADkYL19eXTkRMxESARc5ETMRMxEzMTABFRQGBw4BFRQWMzI2NxcGIyImNTQ%2BATc%2BAT0BExQGIyImNTQ2MzIWAotSZnw%2BbGtaqFJS3MzP6CpWcl4%2B70tKSExMSEhNAoU%2FapZQYmJLTl43JrNuv6lJcmhaTGFPLQFASk5PSUVUUf%2F%2FAAAAAAVKB3MSJgAkAAARBwBD%2F%2BQBUgAIswIZBSYAKzUAAP%2F%2FAAAAAAVKB3MSJgAkAAARBwB2AKoBUgAIswIZBSYAKzUAAP%2F%2FAAAAAAVKB3MSJgAkAAARBwDFADsBUgAIswIcBSYAKzUAAP%2F%2FAAAAAAVKB0gSJgAkAAARBwDHAC0BUgAIswIYBSYAKzUAAP%2F%2FAAAAAAVKBz4SJgAkAAARBwBqAEYBUgAKtAMCJQUmACs1Nf%2F%2FAAAAAAVKBwkSJgAkAAARBgDGVm0ACbMDAiQDAD81NQAAAAAC%2F%2F4AAAbTBbYADwATAGVANgYTExERCg4OAQgABAUFAAEMEBIFFRQKDUxZCgoBBhADTFkQEAEGBRIJEwYTTFkGAwEOTFkBEgA%2FKwAYPysRADMYPxESOS8rERIAORgvKxESARc5MxEzETMRMxI5OREzETMxMCkBESEDIwEhFSERIRUhESEBIREjBtP81f4IvPYCpgQv%2FcUCFP3sAjv7NwGeewGW%2FmoFtsr%2Bcsj%2BNQGZAoEAAP%2F%2FAHn%2BFATPBcsSJgAmAAAQBwB6Ag4AAP%2F%2FAMEAAAP8B3MSJgAoAAARBwBD%2F7cBUgAIswEVBSYAKzUAAP%2F%2FAMEAAAP8B3MSJgAoAAARBwB2AE4BUgAIswEVBSYAKzUAAP%2F%2FAMEAAAP8B3MSJgAoAAARBwDF%2F%2FkBUgAIswEYBSYAKzUAAP%2F%2FAMEAAAP8Bz4SJgAoAAARBwBqAAQBUgAKtAIBIQUmACs1Nf%2F%2F%2F%2FoAAAHgB3MSJgAsAAARBwBD%2FpABUgAIswENBSYAKzUAAP%2F%2FALMAAAKZB3MSJgAsAAARBwB2%2F0kBUgAIswENBSYAKzUAAP%2F%2F%2F7UAAAK3B3MSJgAsAAARBwDF%2FtIBUgAIswEQBSYAKzUAAP%2F%2FAAEAAAJyBz4SJgAsAAARBwBq%2FtwBUgAKtAIBGQUmACs1NQACAC8AAAVeBbYADAAYAEdAJQ0AEggWFgQABAYUBBoZFQYHBkxZEgcHBAkJEUxZCQMEFkxZBBIAPysAGD8rERIAORgvMysRADMREgEXOREzEjk5ETMxMAEQACkBESM1MxEhIAADEAIrAREhFSERMyAFXv5u%2Fob%2Bb5KSAb4BWwGE%2FPn0xQEz%2Fs2gAhIC6f6Y%2Fn8Cb8gCf%2F6H%2FqQBBAEJ%2FknI%2FloA%2F%2F8AwQAABYMHSBImADEAABEHAMcAsgFSAAizARoFJgArNQAA%2F%2F8Aef%2FsBdMHcxImADIAABEHAEMAdwFSAAizAiEFJgArNQAA%2F%2F8Aef%2FsBdMHcxImADIAABEHAHYBJwFSAAizAiEFJgArNQAA%2F%2F8Aef%2FsBdMHcxImADIAABEHAMUAugFSAAizAiQFJgArNQAA%2F%2F8Aef%2FsBdMHSBImADIAABEHAMcArgFSAAizAiAFJgArNQAA%2F%2F8Aef%2FsBdMHPhImADIAABEHAGoAywFSAAq0AwItBSYAKzU1AAEAgwEOBA4EmAALABxADwEDBQcJCwYNDC8AXwACAAAZL10REgEXOTEwCQE3CQEXCQEHCQEnAcn%2Bun0BSAFJff63AUV7%2Frf%2BvH0C0wFGf%2F66AUZ7%2Frb%2BuH0BRv66fQAAAAMAef%2B0BdMF%2FAATABsAIwBOQC0WFx4fBBQcFAAcCgAFCAoPBSUkFx4WHwQhGQ8SCAUEAw0NIUxZDQQDGUxZAxMAPysAGD8rERIAFzkREhc5ERIBFzkRMxEzERIXOTEwARAAISInByc3JhEQACEyFzcXBxYDNCcBFjMyEgEUFwEmIyICBdP%2Bm%2F651ZRejWK8AWUBS8ebWo5jw%2F5Q%2FbZhi9XZ%2FKJOAktci9fbAt3%2Bm%2F50UYlekMQBeQFqAYRSgVyMx%2F6Q4Yj8rjwBFAER54MDUjv%2B6gD%2F%2FwC0%2F%2BwFOwdzEiYAOAAAEQcAQwA3AVIACLMBGwUmACs1AAD%2F%2FwC0%2F%2BwFOwdzEiYAOAAAEQcAdgDuAVIACLMBGwUmACs1AAD%2F%2FwC0%2F%2BwFOwdzEiYAOAAAEQcAxQCLAVIACLMBHgUmACs1AAD%2F%2FwC0%2F%2BwFOwc%2BEiYAOAAAEQcAagCYAVIACrQCAScFJgArNTX%2F%2FwAAAAAEvAdzEiYAPAAAEQcAdgBYAVIACLMBEgUmACs1AAAAAgDBAAAEkQW2AAwAFQBGQCURAA0JBQUGBgAXFgkVTFkACRAJAgwDCQkGBw0ETFkNDQYHAwYSAD8%2FEjkvKxESADkYL19eXSsREgE5OREzETMzETMxMAEUBCEjESMRMxUzIAQBMzI2NTQmKwEEkf7c%2Fuuo7%2B%2FFAQwBEP0fhbusnKykAwjj9P7PBbbz4P4Vfox%2FewAAAAEAqP%2FsBQIGHwAzAEFAIiUABh8ZDiwtAA4UHy0FNTQZJRExLRUxKEZZMQARF0hZERYAPysAGD8rABg%2FERI5ORESARc5ETMRMxEzETMxMAEUBgcOARUUFh8BHgIVFAYjIic1HgEzMjU0JicuATU0Njc%2BATU0JiMiBhURIxE0JDMyBAR9TUJaNi05X1xXLNbMvm06okPARXl3aERHS0CGb3%2BG6wEB7%2BEBBATlSoUzRTocHjMmQD5fcEelrEHHJTGXPVhKSXxUP2k1N1UzSFFsaftzBJHBzagA%2F%2F8AWv%2FsBAQGIRImAEQAABEGAEOZAAAIswIwESYAKzX%2F%2FwBa%2F%2BwEBAYhEiYARAAAEQYAdkwAAAizAjARJgArNf%2F%2FAFr%2F7AQEBiESJgBEAAARBgDF6AAACLMCMxEmACs1%2F%2F8AWv%2FsBAQF9hImAEQAABEGAMfkAAAIswIvESYAKzX%2F%2FwBa%2F%2BwEBAXsEiYARAAAEQYAavUAAAq0AwI8ESYAKzU1AAD%2F%2FwBa%2F%2BwEBAacEiYARAAAEQYAxg4AAAq0AwIqESYAKzU1AAAAAwBa%2F%2BwGuARmACYAMAA3AHNAPyEPFgQtNBYWLTUVJwAAChUaLQU5OA8hJA0ELUpZBAQkDTQWSVk0NCQNETFIWQ0HSFkRDRAeGEdZJClIWR4kFgA%2FMysrABg%2FMysrERIAORgvKxESADkYLysREgA5ORESARc5ETMRMxEzETMRMxI5OTEwEzQ2PwE1NCMiByc%2BATMyFzYzMhIdASESITI3FQ4BIyImJw4BIyImNxQzMjY9AQcOAQEiBgchNCZa8%2Fm8yY2mSljRY%2FFjeOLO9P04CgEjuKxWq26M2UNewZGlu%2FSmfJCHm5ADpHCDCQHZdQE9rK0IBkzCUqYvMZub%2FvPkf%2F6wUL8pIm1ufV60m5uRf2AGBmECEYuLgpQAAP%2F%2FAGb%2BFAO0BGYSJgBGAAAQBwB6AWQAAP%2F%2FAGb%2F7AQ5BiESJgBIAAARBgBDrwAACLMCJREmACs1%2F%2F8AZv%2FsBDkGIRImAEgAABEGAHZgAAAIswIlESYAKzX%2F%2FwBm%2F%2BwEOQYhEiYASAAAEQYAxQAAAAizAigRJgArNf%2F%2FAGb%2F7AQ5BewSJgBIAAARBgBqDgAACrQDAjERJgArNTUAAP%2F%2F%2F7sAAAGhBiESJgDCAAARBwBD%2FlEAAAAIswENESYAKzUAAP%2F%2FAJwAAAKCBiESJgDCAAARBwB2%2FzIAAAAIswENESYAKzUAAP%2F%2F%2F5wAAAKeBiESJgDCAAARBwDF%2FrkAAAAIswEQESYAKzUAAP%2F%2F%2F%2BcAAAJYBewSJgDCAAARBwBq%2FsIAAAAKtAIBGREmACs1NQACAGb%2F7AR9BiEAGwAnAFBAKwwcHAAiBgAGEBMYBSkoFhkRDhAFFw8PFAwDCQkfR1kJCQMXFAEDJUdZAxYAPysAGD%2FGEjkvKxESADkSORgvEhc5ERIBFzkRMxEzETMxMAEQACMiADU0ADMyFzcmJwcnNyYnNxYXNxcHFhIDNCYjIgYVFBYzMjYEff7t%2B%2Bv%2B4gEG3NZXCD6l%2BljMVlFUjHbnWLyYn%2FCXg5eGlImUhgI3%2Fun%2BzAEQ5ecBDW8EvZyWhXc7K5I%2FUYqBcYz%2BhP7pf5aknpmitgAAAP%2F%2FAKgAAAR1BfYSJgBRAAARBgDHIQAACLMBHBEmACs1%2F%2F8AZv%2FsBH0GIRImAFIAABEGAEO7AAAIswIfESYAKzX%2F%2FwBm%2F%2BwEfQYhEiYAUgAAEQYAdm8AAAizAh8RJgArNf%2F%2FAGb%2F7AR9BiESJgBSAAARBgDFDAAACLMCIhEmACs1%2F%2F8AZv%2FsBH0F9hImAFIAABEGAMf%2FAAAIswIeESYAKzX%2F%2FwBm%2F%2BwEfQXsEiYAUgAAEQYAahIAAAq0AwIrESYAKzU1AAAAAwBgAOwEMQS2AAMADwAbADRAGhYQCgQAAwQQBB0cBw0ZEw0TAQEAUlkvAQEBAC9dKxEAMzMYLzMvMxESARc5ETMRMzEwEzUhFQE0NjMyFhUUBiMiJhE0NjMyFhUUBiMiJmAD0f2YP0A9QEQ5PEM%2FQD1ARDk8QwJ5srL%2B%2FEBHSD8%2FSkcC%2FEBHSD8%2FSkcAAAAAAwBm%2F7gEfQSLABMAGwAiAE9ALhYXHh8EHBQcABQKAAUICg8SBiQjFx4WHwQhGQ8SCAUEAw0NGUZZDRADIUZZAxYAPysAGD8rERIAFzkREhc5ERIBFzkRMxEzERIXOTEwARAAIyInByc3JhEQADMyFzcXBxYBFBcBJiMiBgU0JwEWMyAEff7q%2BJBqTIdSjgEU%2B5ByRYhOh%2FzbJQGHPFeUhQIzIf59NlYBGAIr%2FvH%2B0DltWnWbAQkBDQEuP2RcbJj%2FAIdUAi8nxLd5Uv3XIQAA%2F%2F8Anv%2FsBG0GIRImAFgAABEGAEO3AAAIswEeESYAKzX%2F%2FwCe%2F%2BwEbQYhEiYAWAAAEQcAdgCLAAAACLMBHhEmACs1AAD%2F%2FwCe%2F%2BwEbQYhEiYAWAAAEQYAxSEAAAizASERJgArNf%2F%2FAJ7%2F7ARtBewSJgBYAAARBgBqJwAACrQCASoRJgArNTUAAP%2F%2FAAD%2BFARKBiESJgBcAAARBgB2JwAACLMBHhEmACs1AAIAqP4UBJMGFAAVACEAQUAiHwYMEhUaBA8PEBAGIyIMFQkDEQAQGwMWRlkDEAkdRlkJFgA%2FKwAYPysAGD8%2FERI5ORESATk5ETMRFzMRMzEwAT4BMzISERACIyInIx8BESMRMxEPAQUiBh0BFBYzMhE0JgGTPaNqzujpzdtvDggG6%2BsHAwEZjoGAkf57A8FWT%2F7S%2FvP%2B8P7RlUhc%2FjcIAP5SihsbpLIlyrUBgb67AAD%2F%2FwAA%2FhQESgXsEiYAXAAAEQYAasoAAAq0AgEqESYAKzU1AAAAAQCoAAABkwRSAAMAFkAJAAEBBQQCDwEVAD8%2FERIBOREzMTAhIxEzAZPr6wRSAAAAAgB5%2F%2BwHGwXNABQAHwBWQC8NAA8TEx0YBgAGER0EISAPEkxZDw8BCwsOTFkLAwkVTFkJBAETTFkBEwMbTFkDEgA%2FKwAYPysAGD8rABg%2FKxESADkYLysREgEXOREzETMRMxEzMTApAQYjIAAREAAhMhchFSERIRUhESEBIgIREBIzMjcRJgcb%2FMxmbf7A%2FqUBWAE%2Fc14DOv3AAhv95QJA%2B%2F7Q1tTQgVRQFAGJAWoBaAGGF8r%2Bcsj%2BNQQ1%2Fur%2B8%2F7z%2FugjBAAlAAADAGb%2F7AdMBGYAHQApADAAb0A9DQIkLRQUJC4THgcHExokBDIxDQIECi0USFkMLRwtAhADLS0ECg8qSFkPCgonRlkKEAAXR1kABAQhRlkEFgA%2FKxEAMysAGD8rEQAzKxESADkYL19eXSsREgA5ORESARc5ETMRMxEzETMSOTkxMAUgJwYhIgAREAAzMhYXNjMyAB0BIR4BMzI2NxUOAQEUFjMyNjU0JiMiBiUiBgchNCYFnv7ni4T%2B9Oz%2B6AES9XnMQoP43QEA%2FR4LlZpmqmBUr%2FtHg5KNg4SRj4EEGW6HCwHxfhTCwgE2AQkBEAErYmDC%2FvXof6SqJSu%2FKCMCP73Cv7zAv77Mi4uGkAAAAQDjBNkD5QYhAAwAKEASCQgCAAwEBQIFDAMODQIJgAUAAC8yGs0yERIBFzkRMxEzETMzMTABJicGByM1NjchFhcVA0Z7aWd6nr8%2FAQQ%2FwQTZSWtnTRnGaW7BGQACAWAE1wM7BpwACwAWACpAFgwAEgYGABgXD3AJAQ8JHwkvCQMJFAMALzPEXV0yERIBOTkRMxEzMTABFAYjIiY1NDYzMhYHNCYjIgYVFDMyNgM7g2xsgH9taIeFPC4vPGsuPAW8Zn99ZmV9fGYyOTkyajcAAAEA7ATXA%2F4F9gAVADJAGBITBwgTCBcWEAAFCwALAAt%2FE48TAhOACAAvGsxdOTkvLxEzETMREgE5OREzETMxMAEiLgIjIgcjPgEzMh4CMzI3Mw4BAwgqUU5KIlEcegyDZitSTkkiTxt9DIIE2SMrI3OLkiMrI3OGlwAAAAABAFIBxwOuAoUAAwARtQMABQQAAQAvMxESATk5MTATNSEVUgNcAce%2BvgAAAAEAUgHHB64ChQADABG1AwAFBAABAC8zERIBOTkxMBM1IRVSB1wBx76%2BAAAAAQAZA8EBcwW2AAcAF0AJAQcHBQkIAAQDAD%2FNERIBOTkRMzEwEyc2EjczAgclDBRmNqpAJQPBFlMBGnL%2FAPUAAAEAGQPBAXMFtgAGABdACQEGBgQIBwQGAwA%2FxhESATk5ETMxMAEXBgMjEjcBZA81e6pFHwW2FtH%2B8gEh1AAAAAABAD%2F%2B%2BAGcAO4ABgAeQA8ABQUDCAcDQAZQBtAGAwYAL13NERIBOTkRMzEwJQYDIxI3MwGcMICtRSLn17r%2B2wEO6AAAAAIAGQPBAxQFtgAGAA4AIkAQBw0ABQMFCw0EEA8GDgIKAwA%2FM80yERIBFzkRMxEzMTABNhMzAgcjJTYSNzMCByMBuDV9qkUf6f5SFGY2qkAl6QPXywEU%2FtjNFlMBGnL%2FAPUAAAACABkDwQMUBbYABgANACJAEAcMAAUDBQoMBA8OCgMMBQMAPzPGMhESARc5ETMRMzEwAQYDIxI3MwUGAyMSNzMBczV7qkUf5wGwNXusRSLnBaDR%2FvIBIdQW0f7yAQ%2FmAAACACv%2B%2BAMpAO4ABgANAClAFgcMAAUDBQoMBA8OCgMMQAZQBtAGAwYAL10zzTIREgEXOREzETMxMCUGAyMSNzMFBgMjEjczAYc3eaxCJOgBsDCArEIk6NfW%2FvcBBPIXuv7bAQTyAAAAAAEAgwHRAn8EBgALABO2BgAADQwJAwAvzRESATkRMzEwEzQ2MzIWFRQGIyImg4R6eYWGeHiGAuyKkJGJh5SRAAABAFIAaAJeA%2BEABgAYQAoDBgIEBgMIBwUBAC%2FEERIBFzkRMzEwEwEXCQEHAVIBZKj%2B5gEaqP6cAjEBsF7%2Bov6kYQGvAAEAUABoAl4D4QAGABhACgMAAAIEAwgHAQUAL8QREgEXOREzMTAJAScJATcBAl7%2BmqgBGv7mqAFmAhf%2BUWEBXAFeXv5QAAAAAAH%2BdwAAAo8FtgADABpACwMABQECAgQDAwISAD8%2FEQEzETMRMzIxMAkBIwECj%2FyowANaBbb6SgW2AAAAAAIAEAJKAtUFvAAKABEAPkAgCQEBCwcEEQYABAYDExIBBQUGCQ8RHxECEREHAyAOBx4APzM%2FEjkvXTMzMxEzERIBFzkRMxEzMzMRMzEwASMVIzUhNQEzETMhNTQ3Bg8BAtV9wP54AYy8ff7DBjQklAL6sLB%2FAkP9zbJhZGg22QAAAQA%2F%2F%2BwEhQXFACYAcUBCDAMICBYfAxsFChEYGx0kBygnBh0eHVBZAw8eHx4vHr8eBAkDHhcJGBcYUFkMAxcBFAMXFxMiIgBNWSIHEw5NWRMZAD8rABg%2FKxESADkYL19eXTMrEQAzGBDGX15dMisRADMREgEXOREXMxEzMzEwASIGByEVIQcVFyEVIRIhMjcVBiMiACcjNTMnNTcjNTM2ADMyFwcmAx%2BNsx4ByP4pAgIBmP55QAEsj5aDrvH%2B0y6YiAICiJYmATLyyJ5UmgT%2BqKqaLTcnmf7IPss9AQj6mSUlQZr7AR5Yu0wAAAAAAAEAACMAAAEF0xgAAAoK8gAFACT%2FcQAFADcAKQAFADkAKQAFADoAKQAFADwAFAAFAET%2FrgAFAEb%2FhQAFAEf%2FhQAFAEj%2FhQAFAEr%2FwwAFAFD%2FwwAFAFH%2FwwAFAFL%2FhQAFAFP%2FwwAFAFT%2FhQAFAFX%2FwwAFAFb%2FwwAFAFj%2FwwAFAIL%2FcQAFAIP%2FcQAFAIT%2FcQAFAIX%2FcQAFAIb%2FcQAFAIf%2FcQAFAJ8AFAAFAKL%2FhQAFAKP%2FrgAFAKT%2FrgAFAKX%2FrgAFAKb%2FrgAFAKf%2FrgAFAKj%2FrgAFAKn%2FhQAFAKr%2FhQAFAKv%2FhQAFAKz%2FhQAFAK3%2FhQAFALT%2FhQAFALX%2FhQAFALb%2FhQAFALf%2FhQAFALj%2FhQAFALr%2FhQAFALv%2FwwAFALz%2FwwAFAL3%2FwwAFAL7%2FwwAFAMT%2FhQAKACT%2FcQAKADcAKQAKADkAKQAKADoAKQAKADwAFAAKAET%2FrgAKAEb%2FhQAKAEf%2FhQAKAEj%2FhQAKAEr%2FwwAKAFD%2FwwAKAFH%2FwwAKAFL%2FhQAKAFP%2FwwAKAFT%2FhQAKAFX%2FwwAKAFb%2FwwAKAFj%2FwwAKAIL%2FcQAKAIP%2FcQAKAIT%2FcQAKAIX%2FcQAKAIb%2FcQAKAIf%2FcQAKAJ8AFAAKAKL%2FhQAKAKP%2FrgAKAKT%2FrgAKAKX%2FrgAKAKb%2FrgAKAKf%2FrgAKAKj%2FrgAKAKn%2FhQAKAKr%2FhQAKAKv%2FhQAKAKz%2FhQAKAK3%2FhQAKALT%2FhQAKALX%2FhQAKALb%2FhQAKALf%2FhQAKALj%2FhQAKALr%2FhQAKALv%2FwwAKALz%2FwwAKAL3%2FwwAKAL7%2FwwAKAMT%2FhQALAC0AuAAPACb%2FmgAPACr%2FmgAPADL%2FmgAPADT%2FmgAPADf%2FcQAPADj%2F1wAPADn%2FhQAPADr%2FhQAPADz%2FhQAPAIn%2FmgAPAJT%2FmgAPAJX%2FmgAPAJb%2FmgAPAJf%2FmgAPAJj%2FmgAPAJr%2FmgAPAJv%2F1wAPAJz%2F1wAPAJ3%2F1wAPAJ7%2F1wAPAJ%2F%2FhQAPAMP%2FmgAQADf%2FrgARACb%2FmgARACr%2FmgARADL%2FmgARADT%2FmgARADf%2FcQARADj%2F1wARADn%2FhQARADr%2FhQARADz%2FhQARAIn%2FmgARAJT%2FmgARAJX%2FmgARAJb%2FmgARAJf%2FmgARAJj%2FmgARAJr%2FmgARAJv%2F1wARAJz%2F1wARAJ3%2F1wARAJ7%2F1wARAJ%2F%2FhQARAMP%2FmgAkAAX%2FcQAkAAr%2FcQAkACb%2F1wAkACr%2F1wAkAC0BCgAkADL%2F1wAkADT%2F1wAkADf%2FcQAkADn%2FrgAkADr%2FrgAkADz%2FhQAkAIn%2F1wAkAJT%2F1wAkAJX%2F1wAkAJb%2F1wAkAJf%2F1wAkAJj%2F1wAkAJr%2F1wAkAJ%2F%2FhQAkAMP%2F1wAkAMv%2FcQAkAM7%2FcQAlAA%2F%2FrgAlABH%2FrgAlACT%2F1wAlADf%2FwwAlADn%2F7AAlADr%2F7AAlADv%2F1wAlADz%2F7AAlAD3%2F7AAlAIL%2F1wAlAIP%2F1wAlAIT%2F1wAlAIX%2F1wAlAIb%2F1wAlAIf%2F1wAlAJ%2F%2F7AAlAMz%2FrgAlAM%2F%2FrgAmACb%2F1wAmACr%2F1wAmADL%2F1wAmADT%2F1wAmAIn%2F1wAmAJT%2F1wAmAJX%2F1wAmAJb%2F1wAmAJf%2F1wAmAJj%2F1wAmAJr%2F1wAmAMP%2F1wAnAA%2F%2FrgAnABH%2FrgAnACT%2F1wAnADf%2FwwAnADn%2F7AAnADr%2F7AAnADv%2F1wAnADz%2F7AAnAD3%2F7AAnAIL%2F1wAnAIP%2F1wAnAIT%2F1wAnAIX%2F1wAnAIb%2F1wAnAIf%2F1wAnAJ%2F%2F7AAnAMz%2FrgAnAM%2F%2FrgAoAC0AewApAA%2F%2FhQApABH%2FhQApACIAKQApACT%2F1wApAIL%2F1wApAIP%2F1wApAIT%2F1wApAIX%2F1wApAIb%2F1wApAIf%2F1wApAMz%2FhQApAM%2F%2FhQAuACb%2F1wAuACr%2F1wAuADL%2F1wAuADT%2F1wAuAIn%2F1wAuAJT%2F1wAuAJX%2F1wAuAJb%2F1wAuAJf%2F1wAuAJj%2F1wAuAJr%2F1wAuAMP%2F1wAvAAX%2FXAAvAAr%2FXAAvACb%2F1wAvACr%2F1wAvADL%2F1wAvADT%2F1wAvADf%2F1wAvADj%2F7AAvADn%2F1wAvADr%2F1wAvADz%2FwwAvAIn%2F1wAvAJT%2F1wAvAJX%2F1wAvAJb%2F1wAvAJf%2F1wAvAJj%2F1wAvAJr%2F1wAvAJv%2F7AAvAJz%2F7AAvAJ3%2F7AAvAJ7%2F7AAvAJ%2F%2FwwAvAMP%2F1wAvAMv%2FXAAvAM7%2FXAAyAA%2F%2FrgAyABH%2FrgAyACT%2F1wAyADf%2FwwAyADn%2F7AAyADr%2F7AAyADv%2F1wAyADz%2F7AAyAD3%2F7AAyAIL%2F1wAyAIP%2F1wAyAIT%2F1wAyAIX%2F1wAyAIb%2F1wAyAIf%2F1wAyAJ%2F%2F7AAyAMz%2FrgAyAM%2F%2FrgAzAA%2F%2B9gAzABH%2B9gAzACT%2FmgAzADv%2F1wAzAD3%2F7AAzAIL%2FmgAzAIP%2FmgAzAIT%2FmgAzAIX%2FmgAzAIb%2FmgAzAIf%2FmgAzAMz%2B9gAzAM%2F%2B9gA0AA%2F%2FrgA0ABH%2FrgA0ACT%2F1wA0ADf%2FwwA0ADn%2F7AA0ADr%2F7AA0ADv%2F1wA0ADz%2F7AA0AD3%2F7AA0AIL%2F1wA0AIP%2F1wA0AIT%2F1wA0AIX%2F1wA0AIb%2F1wA0AIf%2F1wA0AJ%2F%2F7AA0AMz%2FrgA0AM%2F%2FrgA3AA%2F%2FhQA3ABD%2FrgA3ABH%2FhQA3ACIAKQA3ACT%2FcQA3ACb%2F1wA3ACr%2F1wA3ADL%2F1wA3ADT%2F1wA3ADcAKQA3AET%2FXAA3AEb%2FcQA3AEf%2FcQA3AEj%2FcQA3AEr%2FcQA3AFD%2FmgA3AFH%2FmgA3AFL%2FcQA3AFP%2FmgA3AFT%2FcQA3AFX%2FmgA3AFb%2FhQA3AFj%2FmgA3AFn%2F1wA3AFr%2F1wA3AFv%2F1wA3AFz%2F1wA3AF3%2FrgA3AIL%2FcQA3AIP%2FcQA3AIT%2FcQA3AIX%2FcQA3AIb%2FcQA3AIf%2FcQA3AIn%2F1wA3AJT%2F1wA3AJX%2F1wA3AJb%2F1wA3AJf%2F1wA3AJj%2F1wA3AJr%2F1wA3AKL%2FcQA3AKP%2FXAA3AKT%2FXAA3AKX%2FXAA3AKb%2FXAA3AKf%2FXAA3AKj%2FXAA3AKn%2FcQA3AKr%2FcQA3AKv%2FcQA3AKz%2FcQA3AK3%2FcQA3ALT%2FcQA3ALX%2FcQA3ALb%2FcQA3ALf%2FcQA3ALj%2FcQA3ALr%2FcQA3ALv%2FmgA3ALz%2FmgA3AL3%2FmgA3AL7%2FmgA3AL%2F%2F1wA3AMP%2F1wA3AMT%2FcQA3AMj%2FrgA3AMn%2FrgA3AMz%2FhQA3AM%2F%2FhQA4AA%2F%2F1wA4ABH%2F1wA4ACT%2F7AA4AIL%2F7AA4AIP%2F7AA4AIT%2F7AA4AIX%2F7AA4AIb%2F7AA4AIf%2F7AA4AMz%2F1wA4AM%2F%2F1wA5AA%2F%2FmgA5ABH%2FmgA5ACIAKQA5ACT%2FrgA5ACb%2F7AA5ACr%2F7AA5ADL%2F7AA5ADT%2F7AA5AET%2F1wA5AEb%2F1wA5AEf%2F1wA5AEj%2F1wA5AEr%2F7AA5AFD%2F7AA5AFH%2F7AA5AFL%2F1wA5AFP%2F7AA5AFT%2F1wA5AFX%2F7AA5AFb%2F7AA5AFj%2F7AA5AIL%2FrgA5AIP%2FrgA5AIT%2FrgA5AIX%2FrgA5AIb%2FrgA5AIf%2FrgA5AIn%2F7AA5AJT%2F7AA5AJX%2F7AA5AJb%2F7AA5AJf%2F7AA5AJj%2F7AA5AJr%2F7AA5AKL%2F1wA5AKP%2F1wA5AKT%2F1wA5AKX%2F1wA5AKb%2F1wA5AKf%2F1wA5AKj%2F1wA5AKn%2F1wA5AKr%2F1wA5AKv%2F1wA5AKz%2F1wA5AK3%2F1wA5ALT%2F1wA5ALX%2F1wA5ALb%2F1wA5ALf%2F1wA5ALj%2F1wA5ALr%2F1wA5ALv%2F7AA5ALz%2F7AA5AL3%2F7AA5AL7%2F7AA5AMP%2F7AA5AMT%2F1wA5AMz%2FmgA5AM%2F%2FmgA6AA%2F%2FmgA6ABH%2FmgA6ACIAKQA6ACT%2FrgA6ACb%2F7AA6ACr%2F7AA6ADL%2F7AA6ADT%2F7AA6AET%2F1wA6AEb%2F1wA6AEf%2F1wA6AEj%2F1wA6AEr%2F7AA6AFD%2F7AA6AFH%2F7AA6AFL%2F1wA6AFP%2F7AA6AFT%2F1wA6AFX%2F7AA6AFb%2F7AA6AFj%2F7AA6AIL%2FrgA6AIP%2FrgA6AIT%2FrgA6AIX%2FrgA6AIb%2FrgA6AIf%2FrgA6AIn%2F7AA6AJT%2F7AA6AJX%2F7AA6AJb%2F7AA6AJf%2F7AA6AJj%2F7AA6AJr%2F7AA6AKL%2F1wA6AKP%2F1wA6AKT%2F1wA6AKX%2F1wA6AKb%2F1wA6AKf%2F1wA6AKj%2F1wA6AKn%2F1wA6AKr%2F1wA6AKv%2F1wA6AKz%2F1wA6AK3%2F1wA6ALT%2F1wA6ALX%2F1wA6ALb%2F1wA6ALf%2F1wA6ALj%2F1wA6ALr%2F1wA6ALv%2F7AA6ALz%2F7AA6AL3%2F7AA6AL7%2F7AA6AMP%2F7AA6AMT%2F1wA6AMz%2FmgA6AM%2F%2FmgA7ACb%2F1wA7ACr%2F1wA7ADL%2F1wA7ADT%2F1wA7AIn%2F1wA7AJT%2F1wA7AJX%2F1wA7AJb%2F1wA7AJf%2F1wA7AJj%2F1wA7AJr%2F1wA7AMP%2F1wA8AA%2F%2FhQA8ABH%2FhQA8ACIAKQA8ACT%2FhQA8ACb%2F1wA8ACr%2F1wA8ADL%2F1wA8ADT%2F1wA8AET%2FmgA8AEb%2FmgA8AEf%2FmgA8AEj%2FmgA8AEr%2F1wA8AFD%2FwwA8AFH%2FwwA8AFL%2FmgA8AFP%2FwwA8AFT%2FmgA8AFX%2FwwA8AFb%2FrgA8AFj%2FwwA8AF3%2F1wA8AIL%2FhQA8AIP%2FhQA8AIT%2FhQA8AIX%2FhQA8AIb%2FhQA8AIf%2FhQA8AIn%2F1wA8AJT%2F1wA8AJX%2F1wA8AJb%2F1wA8AJf%2F1wA8AJj%2F1wA8AJr%2F1wA8AKL%2FmgA8AKP%2FmgA8AKT%2FmgA8AKX%2FmgA8AKb%2FmgA8AKf%2FmgA8AKj%2FmgA8AKn%2FmgA8AKr%2FmgA8AKv%2FmgA8AKz%2FmgA8AK3%2FmgA8ALT%2FmgA8ALX%2FmgA8ALb%2FmgA8ALf%2FmgA8ALj%2FmgA8ALr%2FmgA8ALv%2FwwA8ALz%2FwwA8AL3%2FwwA8AL7%2FwwA8AMP%2F1wA8AMT%2FmgA8AMz%2FhQA8AM%2F%2FhQA9ACb%2F7AA9ACr%2F7AA9ADL%2F7AA9ADT%2F7AA9AIn%2F7AA9AJT%2F7AA9AJX%2F7AA9AJb%2F7AA9AJf%2F7AA9AJj%2F7AA9AJr%2F7AA9AMP%2F7AA%2BAC0AuABEAAX%2F7ABEAAr%2F7ABEAMv%2F7ABEAM7%2F7ABFAAX%2F7ABFAAr%2F7ABFAFn%2F1wBFAFr%2F1wBFAFv%2F1wBFAFz%2F1wBFAF3%2F7ABFAL%2F%2F1wBFAMv%2F7ABFAM7%2F7ABGAAUAKQBGAAoAKQBGAMsAKQBGAM4AKQBIAAX%2F7ABIAAr%2F7ABIAFn%2F1wBIAFr%2F1wBIAFv%2F1wBIAFz%2F1wBIAF3%2F7ABIAL%2F%2F1wBIAMv%2F7ABIAM7%2F7ABJAAUAewBJAAoAewBJAMsAewBJAM4AewBLAAX%2F7ABLAAr%2F7ABLAMv%2F7ABLAM7%2F7ABOAEb%2F1wBOAEf%2F1wBOAEj%2F1wBOAFL%2F1wBOAFT%2F1wBOAKL%2F1wBOAKn%2F1wBOAKr%2F1wBOAKv%2F1wBOAKz%2F1wBOAK3%2F1wBOALT%2F1wBOALX%2F1wBOALb%2F1wBOALf%2F1wBOALj%2F1wBOALr%2F1wBOAMT%2F1wBQAAX%2F7ABQAAr%2F7ABQAMv%2F7ABQAM7%2F7ABRAAX%2F7ABRAAr%2F7ABRAMv%2F7ABRAM7%2F7ABSAAX%2F7ABSAAr%2F7ABSAFn%2F1wBSAFr%2F1wBSAFv%2F1wBSAFz%2F1wBSAF3%2F7ABSAL%2F%2F1wBSAMv%2F7ABSAM7%2F7ABTAAX%2F7ABTAAr%2F7ABTAFn%2F1wBTAFr%2F1wBTAFv%2F1wBTAFz%2F1wBTAF3%2F7ABTAL%2F%2F1wBTAMv%2F7ABTAM7%2F7ABVAAUAUgBVAAoAUgBVAET%2F1wBVAEb%2F1wBVAEf%2F1wBVAEj%2F1wBVAEr%2F7ABVAFL%2F1wBVAFT%2F1wBVAKL%2F1wBVAKP%2F1wBVAKT%2F1wBVAKX%2F1wBVAKb%2F1wBVAKf%2F1wBVAKj%2F1wBVAKn%2F1wBVAKr%2F1wBVAKv%2F1wBVAKz%2F1wBVAK3%2F1wBVALT%2F1wBVALX%2F1wBVALb%2F1wBVALf%2F1wBVALj%2F1wBVALr%2F1wBVAMT%2F1wBVAMsAUgBVAM4AUgBXAAUAKQBXAAoAKQBXAMsAKQBXAM4AKQBZAAUAUgBZAAoAUgBZAA%2F%2FrgBZABH%2FrgBZACIAKQBZAMsAUgBZAMz%2FrgBZAM4AUgBZAM%2F%2FrgBaAAUAUgBaAAoAUgBaAA%2F%2FrgBaABH%2FrgBaACIAKQBaAMsAUgBaAMz%2FrgBaAM4AUgBaAM%2F%2FrgBbAEb%2F1wBbAEf%2F1wBbAEj%2F1wBbAFL%2F1wBbAFT%2F1wBbAKL%2F1wBbAKn%2F1wBbAKr%2F1wBbAKv%2F1wBbAKz%2F1wBbAK3%2F1wBbALT%2F1wBbALX%2F1wBbALb%2F1wBbALf%2F1wBbALj%2F1wBbALr%2F1wBbAMT%2F1wBcAAUAUgBcAAoAUgBcAA%2F%2FrgBcABH%2FrgBcACIAKQBcAMsAUgBcAMz%2FrgBcAM4AUgBcAM%2F%2FrgBeAC0AuACCAAX%2FcQCCAAr%2FcQCCACb%2F1wCCACr%2F1wCCAC0BCgCCADL%2F1wCCADT%2F1wCCADf%2FcQCCADn%2FrgCCADr%2FrgCCADz%2FhQCCAIn%2F1wCCAJT%2F1wCCAJX%2F1wCCAJb%2F1wCCAJf%2F1wCCAJj%2F1wCCAJr%2F1wCCAJ%2F%2FhQCCAMP%2F1wCCAMv%2FcQCCAM7%2FcQCDAAX%2FcQCDAAr%2FcQCDACb%2F1wCDACr%2F1wCDAC0BCgCDADL%2F1wCDADT%2F1wCDADf%2FcQCDADn%2FrgCDADr%2FrgCDADz%2FhQCDAIn%2F1wCDAJT%2F1wCDAJX%2F1wCDAJb%2F1wCDAJf%2F1wCDAJj%2F1wCDAJr%2F1wCDAJ%2F%2FhQCDAMP%2F1wCDAMv%2FcQCDAM7%2FcQCEAAX%2FcQCEAAr%2FcQCEACb%2F1wCEACr%2F1wCEAC0BCgCEADL%2F1wCEADT%2F1wCEADf%2FcQCEADn%2FrgCEADr%2FrgCEADz%2FhQCEAIn%2F1wCEAJT%2F1wCEAJX%2F1wCEAJb%2F1wCEAJf%2F1wCEAJj%2F1wCEAJr%2F1wCEAJ%2F%2FhQCEAMP%2F1wCEAMv%2FcQCEAM7%2FcQCFAAX%2FcQCFAAr%2FcQCFACb%2F1wCFACr%2F1wCFAC0BCgCFADL%2F1wCFADT%2F1wCFADf%2FcQCFADn%2FrgCFADr%2FrgCFADz%2FhQCFAIn%2F1wCFAJT%2F1wCFAJX%2F1wCFAJb%2F1wCFAJf%2F1wCFAJj%2F1wCFAJr%2F1wCFAJ%2F%2FhQCFAMP%2F1wCFAMv%2FcQCFAM7%2FcQCGAAX%2FcQCGAAr%2FcQCGACb%2F1wCGACr%2F1wCGAC0BCgCGADL%2F1wCGADT%2F1wCGADf%2FcQCGADn%2FrgCGADr%2FrgCGADz%2FhQCGAIn%2F1wCGAJT%2F1wCGAJX%2F1wCGAJb%2F1wCGAJf%2F1wCGAJj%2F1wCGAJr%2F1wCGAJ%2F%2FhQCGAMP%2F1wCGAMv%2FcQCGAM7%2FcQCHAAX%2FcQCHAAr%2FcQCHACb%2F1wCHACr%2F1wCHAC0BCgCHADL%2F1wCHADT%2F1wCHADf%2FcQCHADn%2FrgCHADr%2FrgCHADz%2FhQCHAIn%2F1wCHAJT%2F1wCHAJX%2F1wCHAJb%2F1wCHAJf%2F1wCHAJj%2F1wCHAJr%2F1wCHAJ%2F%2FhQCHAMP%2F1wCHAMv%2FcQCHAM7%2FcQCIAC0AewCJACb%2F1wCJACr%2F1wCJADL%2F1wCJADT%2F1wCJAIn%2F1wCJAJT%2F1wCJAJX%2F1wCJAJb%2F1wCJAJf%2F1wCJAJj%2F1wCJAJr%2F1wCJAMP%2F1wCKAC0AewCLAC0AewCMAC0AewCNAC0AewCSAA%2F%2FrgCSABH%2FrgCSACT%2F1wCSADf%2FwwCSADn%2F7ACSADr%2F7ACSADv%2F1wCSADz%2F7ACSAD3%2F7ACSAIL%2F1wCSAIP%2F1wCSAIT%2F1wCSAIX%2F1wCSAIb%2F1wCSAIf%2F1wCSAJ%2F%2F7ACSAMz%2FrgCSAM%2F%2FrgCUAA%2F%2FrgCUABH%2FrgCUACT%2F1wCUADf%2FwwCUADn%2F7ACUADr%2F7ACUADv%2F1wCUADz%2F7ACUAD3%2F7ACUAIL%2F1wCUAIP%2F1wCUAIT%2F1wCUAIX%2F1wCUAIb%2F1wCUAIf%2F1wCUAJ%2F%2F7ACUAMz%2FrgCUAM%2F%2FrgCVAA%2F%2FrgCVABH%2FrgCVACT%2F1wCVADf%2FwwCVADn%2F7ACVADr%2F7ACVADv%2F1wCVADz%2F7ACVAD3%2F7ACVAIL%2F1wCVAIP%2F1wCVAIT%2F1wCVAIX%2F1wCVAIb%2F1wCVAIf%2F1wCVAJ%2F%2F7ACVAMz%2FrgCVAM%2F%2FrgCWAA%2F%2FrgCWABH%2FrgCWACT%2F1wCWADf%2FwwCWADn%2F7ACWADr%2F7ACWADv%2F1wCWADz%2F7ACWAD3%2F7ACWAIL%2F1wCWAIP%2F1wCWAIT%2F1wCWAIX%2F1wCWAIb%2F1wCWAIf%2F1wCWAJ%2F%2F7ACWAMz%2FrgCWAM%2F%2FrgCXAA%2F%2FrgCXABH%2FrgCXACT%2F1wCXADf%2FwwCXADn%2F7ACXADr%2F7ACXADv%2F1wCXADz%2F7ACXAD3%2F7ACXAIL%2F1wCXAIP%2F1wCXAIT%2F1wCXAIX%2F1wCXAIb%2F1wCXAIf%2F1wCXAJ%2F%2F7ACXAMz%2FrgCXAM%2F%2FrgCYAA%2F%2FrgCYABH%2FrgCYACT%2F1wCYADf%2FwwCYADn%2F7ACYADr%2F7ACYADv%2F1wCYADz%2F7ACYAD3%2F7ACYAIL%2F1wCYAIP%2F1wCYAIT%2F1wCYAIX%2F1wCYAIb%2F1wCYAIf%2F1wCYAJ%2F%2F7ACYAMz%2FrgCYAM%2F%2FrgCaAA%2F%2FrgCaABH%2FrgCaACT%2F1wCaADf%2FwwCaADn%2F7ACaADr%2F7ACaADv%2F1wCaADz%2F7ACaAD3%2F7ACaAIL%2F1wCaAIP%2F1wCaAIT%2F1wCaAIX%2F1wCaAIb%2F1wCaAIf%2F1wCaAJ%2F%2F7ACaAMz%2FrgCaAM%2F%2FrgCbAA%2F%2F1wCbABH%2F1wCbACT%2F7ACbAIL%2F7ACbAIP%2F7ACbAIT%2F7ACbAIX%2F7ACbAIb%2F7ACbAIf%2F7ACbAMz%2F1wCbAM%2F%2F1wCcAA%2F%2F1wCcABH%2F1wCcACT%2F7ACcAIL%2F7ACcAIP%2F7ACcAIT%2F7ACcAIX%2F7ACcAIb%2F7ACcAIf%2F7ACcAMz%2F1wCcAM%2F%2F1wCdAA%2F%2F1wCdABH%2F1wCdACT%2F7ACdAIL%2F7ACdAIP%2F7ACdAIT%2F7ACdAIX%2F7ACdAIb%2F7ACdAIf%2F7ACdAMz%2F1wCdAM%2F%2F1wCeAA%2F%2F1wCeABH%2F1wCeACT%2F7ACeAIL%2F7ACeAIP%2F7ACeAIT%2F7ACeAIX%2F7ACeAIb%2F7ACeAIf%2F7ACeAMz%2F1wCeAM%2F%2F1wCfAA%2F%2FhQCfABH%2FhQCfACIAKQCfACT%2FhQCfACb%2F1wCfACr%2F1wCfADL%2F1wCfADT%2F1wCfAET%2FmgCfAEb%2FmgCfAEf%2FmgCfAEj%2FmgCfAEr%2F1wCfAFD%2FwwCfAFH%2FwwCfAFL%2FmgCfAFP%2FwwCfAFT%2FmgCfAFX%2FwwCfAFb%2FrgCfAFj%2FwwCfAF3%2F1wCfAIL%2FhQCfAIP%2FhQCfAIT%2FhQCfAIX%2FhQCfAIb%2FhQCfAIf%2FhQCfAIn%2F1wCfAJT%2F1wCfAJX%2F1wCfAJb%2F1wCfAJf%2F1wCfAJj%2F1wCfAJr%2F1wCfAKL%2FmgCfAKP%2FmgCfAKT%2FmgCfAKX%2FmgCfAKb%2FmgCfAKf%2FmgCfAKj%2FmgCfAKn%2FmgCfAKr%2FmgCfAKv%2FmgCfAKz%2FmgCfAK3%2FmgCfALT%2FmgCfALX%2FmgCfALb%2FmgCfALf%2FmgCfALj%2FmgCfALr%2FmgCfALv%2FwwCfALz%2FwwCfAL3%2FwwCfAL7%2FwwCfAMP%2F1wCfAMT%2FmgCfAMz%2FhQCfAM%2F%2FhQCgAA%2F%2B9gCgABH%2B9gCgACT%2FmgCgADv%2F1wCgAD3%2F7ACgAIL%2FmgCgAIP%2FmgCgAIT%2FmgCgAIX%2FmgCgAIb%2FmgCgAIf%2FmgCgAMz%2B9gCgAM%2F%2B9gCiAAX%2F7ACiAAr%2F7ACiAMv%2F7ACiAM7%2F7ACjAAX%2F7ACjAAr%2F7ACjAMv%2F7ACjAM7%2F7ACkAAX%2F7ACkAAr%2F7ACkAMv%2F7ACkAM7%2F7AClAAX%2F7AClAAr%2F7AClAMv%2F7AClAM7%2F7ACmAAX%2F7ACmAAr%2F7ACmAMv%2F7ACmAM7%2F7ACnAAX%2F7ACnAAr%2F7ACnAMv%2F7ACnAM7%2F7ACqAAX%2F7ACqAAr%2F7ACqAFn%2F1wCqAFr%2F1wCqAFv%2F1wCqAFz%2F1wCqAF3%2F7ACqAL%2F%2F1wCqAMv%2F7ACqAM7%2F7ACrAAX%2F7ACrAAr%2F7ACrAFn%2F1wCrAFr%2F1wCrAFv%2F1wCrAFz%2F1wCrAF3%2F7ACrAL%2F%2F1wCrAMv%2F7ACrAM7%2F7ACsAAX%2F7ACsAAr%2F7ACsAFn%2F1wCsAFr%2F1wCsAFv%2F1wCsAFz%2F1wCsAF3%2F7ACsAL%2F%2F1wCsAMv%2F7ACsAM7%2F7ACtAAX%2F7ACtAAr%2F7ACtAFn%2F1wCtAFr%2F1wCtAFv%2F1wCtAFz%2F1wCtAF3%2F7ACtAL%2F%2F1wCtAMv%2F7ACtAM7%2F7ACyAAX%2F7ACyAAr%2F7ACyAFn%2F1wCyAFr%2F1wCyAFv%2F1wCyAFz%2F1wCyAF3%2F7ACyAL%2F%2F1wCyAMv%2F7ACyAM7%2F7AC0AAX%2F7AC0AAr%2F7AC0AFn%2F1wC0AFr%2F1wC0AFv%2F1wC0AFz%2F1wC0AF3%2F7AC0AL%2F%2F1wC0AMv%2F7AC0AM7%2F7AC1AAX%2F7AC1AAr%2F7AC1AFn%2F1wC1AFr%2F1wC1AFv%2F1wC1AFz%2F1wC1AF3%2F7AC1AL%2F%2F1wC1AMv%2F7AC1AM7%2F7AC2AAX%2F7AC2AAr%2F7AC2AFn%2F1wC2AFr%2F1wC2AFv%2F1wC2AFz%2F1wC2AF3%2F7AC2AL%2F%2F1wC2AMv%2F7AC2AM7%2F7AC4AAX%2F1wC4AAr%2F1wC4AMv%2F1wC4AM7%2F1wC6AAX%2F7AC6AAr%2F7AC6AFn%2F1wC6AFr%2F1wC6AFv%2F1wC6AFz%2F1wC6AF3%2F7AC6AL%2F%2F1wC6AMv%2F7AC6AM7%2F7AC%2FAAUAUgC%2FAAoAUgC%2FAA%2F%2FrgC%2FABH%2FrgC%2FACIAKQC%2FAMsAUgC%2FAMz%2FrgC%2FAM4AUgC%2FAM%2F%2FrgDAAAX%2F7ADAAAr%2F7ADAAFn%2F1wDAAFr%2F1wDAAFv%2F1wDAAFz%2F1wDAAF3%2F7ADAAL%2F%2F1wDAAMv%2F7ADAAM7%2F7ADBAAUAUgDBAAoAUgDBAA%2F%2FrgDBABH%2FrgDBACIAKQDBAMsAUgDBAMz%2FrgDBAM4AUgDBAM%2F%2FrgDDAC0AewDIADf%2FrgDJADf%2FrgDKACT%2FcQDKADcAKQDKADkAKQDKADoAKQDKADwAFADKAET%2FrgDKAEb%2FhQDKAEf%2FhQDKAEj%2FhQDKAEr%2FwwDKAFD%2FwwDKAFH%2FwwDKAFL%2FhQDKAFP%2FwwDKAFT%2FhQDKAFX%2FwwDKAFb%2FwwDKAFj%2FwwDKAIL%2FcQDKAIP%2FcQDKAIT%2FcQDKAIX%2FcQDKAIb%2FcQDKAIf%2FcQDKAJ8AFADKAKL%2FhQDKAKP%2FrgDKAKT%2FrgDKAKX%2FrgDKAKb%2FrgDKAKf%2FrgDKAKj%2FrgDKAKn%2FhQDKAKr%2FhQDKAKv%2FhQDKAKz%2FhQDKAK3%2FhQDKALT%2FhQDKALX%2FhQDKALb%2FhQDKALf%2FhQDKALj%2FhQDKALr%2FhQDKALv%2FwwDKALz%2FwwDKAL3%2FwwDKAL7%2FwwDKAMT%2FhQDLACT%2FcQDLADcAKQDLADkAKQDLADoAKQDLADwAFADLAET%2FrgDLAEb%2FhQDLAEf%2FhQDLAEj%2FhQDLAEr%2FwwDLAFD%2FwwDLAFH%2FwwDLAFL%2FhQDLAFP%2FwwDLAFT%2FhQDLAFX%2FwwDLAFb%2FwwDLAFj%2FwwDLAIL%2FcQDLAIP%2FcQDLAIT%2FcQDLAIX%2FcQDLAIb%2FcQDLAIf%2FcQDLAJ8AFADLAKL%2FhQDLAKP%2FrgDLAKT%2FrgDLAKX%2FrgDLAKb%2FrgDLAKf%2FrgDLAKj%2FrgDLAKn%2FhQDLAKr%2FhQDLAKv%2FhQDLAKz%2FhQDLAK3%2FhQDLALT%2FhQDLALX%2FhQDLALb%2FhQDLALf%2FhQDLALj%2FhQDLALr%2FhQDLALv%2FwwDLALz%2FwwDLAL3%2FwwDLAL7%2FwwDLAMT%2FhQDMACb%2FmgDMACr%2FmgDMADL%2FmgDMADT%2FmgDMADf%2FcQDMADj%2F1wDMADn%2FhQDMADr%2FhQDMADz%2FhQDMAIn%2FmgDMAJT%2FmgDMAJX%2FmgDMAJb%2FmgDMAJf%2FmgDMAJj%2FmgDMAJr%2FmgDMAJv%2F1wDMAJz%2F1wDMAJ3%2F1wDMAJ7%2F1wDMAJ%2F%2FhQDMAMP%2FmgDNACT%2FcQDNADcAKQDNADkAKQDNADoAKQDNADwAFADNAET%2FrgDNAEb%2FhQDNAEf%2FhQDNAEj%2FhQDNAEr%2FwwDNAFD%2FwwDNAFH%2FwwDNAFL%2FhQDNAFP%2FwwDNAFT%2FhQDNAFX%2FwwDNAFb%2FwwDNAFj%2FwwDNAIL%2FcQDNAIP%2FcQDNAIT%2FcQDNAIX%2FcQDNAIb%2FcQDNAIf%2FcQDNAJ8AFADNAKL%2FhQDNAKP%2FrgDNAKT%2FrgDNAKX%2FrgDNAKb%2FrgDNAKf%2FrgDNAKj%2FrgDNAKn%2FhQDNAKr%2FhQDNAKv%2FhQDNAKz%2FhQDNAK3%2FhQDNALT%2FhQDNALX%2FhQDNALb%2FhQDNALf%2FhQDNALj%2FhQDNALr%2FhQDNALv%2FwwDNALz%2FwwDNAL3%2FwwDNAL7%2FwwDNAMT%2FhQDPACb%2FmgDPACr%2FmgDPADL%2FmgDPADT%2FmgDPADf%2FcQDPADj%2F1wDPADn%2FhQDPADr%2FhQDPADz%2FhQDPAIn%2FmgDPAJT%2FmgDPAJX%2FmgDPAJb%2FmgDPAJf%2FmgDPAJj%2FmgDPAJr%2FmgDPAJv%2F1wDPAJz%2F1wDPAJ3%2F1wDPAJ7%2F1wDPAJ%2F%2FhQDPAMP%2FmgAAAB4BbgABAAAAAAAAADQAagABAAAAAAABABIAxQABAAAAAAACAAcA6AABAAAAAAADACcBQAABAAAAAAAEABIBjgABAAAAAAAFAAwBuwABAAAAAAAGABEB7AABAAAAAAAHAFICpAABAAAAAAAIABQDIQABAAAAAAALABwDcAABAAAAAAAMAC4D6wABAAAAAAANAC4EeAABAAAAAAAOACoE%2FQABAAAAAAAQAAkFPAABAAAAAAARAAgFWAADAAEECQAAAGgAAAADAAEECQABACQAnwADAAEECQACAA4A2AADAAEECQADAE4A8AADAAEECQAEACQBaAADAAEECQAFABgBoQADAAEECQAGACIByAADAAEECQAHAKQB%2FgADAAEECQAIACgC9wADAAEECQALADgDNgADAAEECQAMAFwDjQADAAEECQANAFwEGgADAAEECQAOAFQEpwADAAEECQAQABIFKAADAAEECQARABAFRgBEAGkAZwBpAHQAaQB6AGUAZAAgAGQAYQB0AGEAIABjAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQAxACwAIABHAG8AbwBnAGwAZQAgAEMAbwByAHAAbwByAGEAdABpAG8AbgAuAABEaWdpdGl6ZWQgZGF0YSBjb3B5cmlnaHQgqSAyMDExLCBHb29nbGUgQ29ycG9yYXRpb24uAABPAHAAZQBuACAAUwBhAG4AcwAgAFMAZQBtAGkAYgBvAGwAZAAAT3BlbiBTYW5zIFNlbWlib2xkAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABBAHMAYwBlAG4AZABlAHIAIAAtACAATwBwAGUAbgAgAFMAYQBuAHMAIABTAGUAbQBpAGIAbwBsAGQAIABCAHUAaQBsAGQAIAAxADAAMAAAQXNjZW5kZXIgLSBPcGVuIFNhbnMgU2VtaWJvbGQgQnVpbGQgMTAwAABPAHAAZQBuACAAUwBhAG4AcwAgAFMAZQBtAGkAYgBvAGwAZAAAT3BlbiBTYW5zIFNlbWlib2xkAABWAGUAcgBzAGkAbwBuACAAMQAuADEAMAAAVmVyc2lvbiAxLjEwAABPAHAAZQBuAFMAYQBuAHMALQBTAGUAbQBpAGIAbwBsAGQAAE9wZW5TYW5zLVNlbWlib2xkAABPAHAAZQBuACAAUwBhAG4AcwAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEcAbwBvAGcAbABlACAAYQBuAGQAIABtAGEAeQAgAGIAZQAgAHIAZQBnAGkAcwB0AGUAcgBlAGQAIABpAG4AIABjAGUAcgB0AGEAaQBuACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4AcwAuAABPcGVuIFNhbnMgaXMgYSB0cmFkZW1hcmsgb2YgR29vZ2xlIGFuZCBtYXkgYmUgcmVnaXN0ZXJlZCBpbiBjZXJ0YWluIGp1cmlzZGljdGlvbnMuAABBAHMAYwBlAG4AZABlAHIAIABDAG8AcgBwAG8AcgBhAHQAaQBvAG4AAEFzY2VuZGVyIENvcnBvcmF0aW9uAABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBzAGMAZQBuAGQAZQByAGMAbwByAHAALgBjAG8AbQAvAABodHRwOi8vd3d3LmFzY2VuZGVyY29ycC5jb20vAABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBzAGMAZQBuAGQAZQByAGMAbwByAHAALgBjAG8AbQAvAHQAeQBwAGUAZABlAHMAaQBnAG4AZQByAHMALgBoAHQAbQBsAABodHRwOi8vd3d3LmFzY2VuZGVyY29ycC5jb20vdHlwZWRlc2lnbmVycy5odG1sAABMAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAEEAcABhAGMAaABlACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADIALgAwAABMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wAABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMAAAaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wAABPAHAAZQBuACAAUwBhAG4AcwAAT3BlbiBTYW5zAABTAGUAbQBpAGIAbwBsAGQAAFNlbWlib2xkAAAAAgAAAAAAAP9mAGYAAAAAAAAAAAAAAAAAAAAAAAAAAADWAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA%2BAD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCsAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAQIAigEDAIMAkwDyAPMAjQCXAIgAwwDeAPEAngCqAPUA9AD2AKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAPAAkQDWANQA1QBoAOsA7QCJAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA6gB4AHoAeQB7AH0AfAC4AKEAfwB%2BAIAAgQDsAO4AugDXALAAsQDYAN0A2QCyALMAtgC3AMQAtAC1AMUAhwC%2BAL8AvAEEAQUHdW5pMDBBRAlvdmVyc2NvcmUMZm91cnN1cGVyaW9yBEV1cm8AAAABAAIACAAK%2F%2F8ADwAAAAEAAAAAyYlvMQAAAADJTOp9AAAAAMnt2GI%3D%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20italic%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAQAQAABAAARkZUTVzakEwAAIZUAAAAHE9TLzKhTLaOAAABiAAAAGBjbWFwjOjcmQAABUAAAAGyY3Z0IA7AFxkAAA%2B0AAAAoGZwZ21%2BYbYRAAAG9AAAB7RnYXNwABUAIwAAhkQAAAAQZ2x5Zr%2FLVRcAABIEAABJAGhlYWT4qxTOAAABDAAAADZoaGVhDj8E%2FgAAAUQAAAAkaG10eGTdQjIAAAHoAAADWGtlcm4Mlg8JAABbBAAAIwRsb2NhW7BKSgAAEFQAAAGubWF4cAJdAPoAAAFoAAAAIG5hbWVqCPoKAAB%2BCAAABkVwb3N0gmzp1QAAhFAAAAHycHJlcFSBlpMAAA6oAAABCQABAAAAARmacz8BIV8PPPUAHwgAAAAAAMnt2FoAAAAAye3YWv4Z%2FhAHgQdzAAIACAACAAAAAAAAAAEAAAiN%2FagAAAgA%2Fhn%2BHAeBAGQAFQAAAAAAAAAAAAAAAADWAAEAAADWAEQABQA5AAQAAgAQAC8AXAAAAQ4ASwADAAEAAwQPAZAABQAIBZoFMwAAAR8FmgUzAAAD0QBmAgAAAAILBgYDBQQCAgTgAALvQAAgWwAAACgAAAAAMUFTQwABACAgrAYf%2FhQAhAiNAlggAAGfAAAAAARIBbYAAAAgAAEIAAAAAAAAAAQUAAACFAAAAhIAKwMXAOEFKwA%2FBGgASAZYAKgFXABCAbwA4QJIAFICSP9gBGoA1wRoAH8B7P%2BcAn8ANwIGACsCzf%2BiBGgAeQRoAS8EaAAMBGgALwRoABAEaABQBGgAhQRoAK4EaABgBGgAYgIGACsCBv%2BcBGgAeQRoAH8EaAB5A2oAngbHAG8Ecf%2BLBMkAVgSuAJYFVABWBBcAVgPHAFYFagCWBW0AVgIvAFYCI%2F7BBHUAVgPLAFYGsgBUBZ4AVAXDAJYEhwBWBcMAlgSNAFYEBAAnA%2FwAugVoAKQEYgC8BtEA3wQn%2F5gEBgC8BD%2F%2F8AJK%2F%2FACzQDdAkr%2FagQjADUDJ%2F9EBG8CPwSFAGIEngA7A5oAYgSeAGID8gBiAoH%2FGwQC%2F4EEngA7AggAOwII%2Fv4D5wA5AggAOQb6ADsEngA7BH0AYgSe%2F9UEngBiAysAOwNtAAgCmABaBJ4AcQOyAGIFvAB1A9P%2FtgOy%2FzsDjf%2FjAssAGwRoAh0Cy%2F%2B2BGgAcwIUAAACEv%2FyBGgA4QRo%2F%2BkEaACoBGgAfwRoAh0D4wA7BG8ByQaoAIsCrgCqA74AWARoAH8CfwA3BqgAiwMOAOMDbQDXBGgAfwLNAGACzQB3BG8CFASq%2F9UFPQDHAgYAqgGk%2F1YCzQECArAAqAO%2BABcF7gB7Be4AQgYdAFcDav%2F8BHH%2FiwRx%2F4sEcf%2BLBHH%2FiwRx%2F4sEcf%2BLBon%2FiQSuAJYEFwBWBBcAVgQXAFYEFwBWAi8AVgIvAFYCLwBWAi8AVgVUAEgFngBUBcMAlgXDAJYFwwCWBcMAlgXDAJYEaACoBcMAdwVoAKQFaACkBWgApAVoAKQEBgC8BIcAVgSe%2FwAEhQBiBIUAYgSFAGIEhQBiBIUAYgSFAGIGhQBiA5oAYgPyAGID8gBiA%2FIAYgPyAGICCAA7AggAOwIIADsCCAA7BI0AWgSeADsEfQBiBH0AYgR9AGIEfQBiBH0AYgRoAH8EfQA9BJ4AcQSeAHEEngBxBJ4AcQOy%2FzsEnv%2FVA7L%2FOwIIADsG1wCWBukAYgRvAY8EngInBG8BUAPXADcHrgA3AVwAewFcAH0B7P%2BcAs8AewLPAH0DWv%2BcAwYAxwJEAFgCRAAXAQz%2BGQLNAFwEaAA%2FAAAAAwAAAAMAAAAcAAEAAAAAAKwAAwABAAAAHAAEAJAAAAAgACAABAAAAH4A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCs%2F%2F8AAAAgAKABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrP%2F%2F%2F%2BP%2Fwv%2BR%2F3H9%2F%2F3s%2FevgteCy4LHgruCY4I%2FgYOApAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0%2BP0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAhoeJi5OYnqOipKalp6mrqqytr66wsbO1tLa4t7y7vb4AcmRladB4oXBrAHZqAIiaAHMAAGd3AAAAAABsfACouoFjbgAAAABtfQBigoWXw8TIyc3Oysu5AMEA09XR0gAAAHnMzwCEjIONio%2BQkY6VlgCUnJ2bwsXHcQAAxnoAAAAAAEBHW1pZWFVUU1JRUE9OTUxLSklIR0ZFRENCQUA%2FPj08Ozo5ODc2NTEwLy4tLCgnJiUkIyIhHxgUERAPDg0LCgkIBwYFBAMCAQAsILABYEWwAyUgEUZhI0UjYUgtLCBFGGhELSxFI0ZgsCBhILBGYLAEJiNISC0sRSNGI2GwIGAgsCZhsCBhsAQmI0hILSxFI0ZgsEBhILBmYLAEJiNISC0sRSNGI2GwQGAgsCZhsEBhsAQmI0hILSwBECA8ADwtLCBFIyCwzUQjILgBWlFYIyCwjUQjWSCw7VFYIyCwTUQjWSCwBCZRWCMgsA1EI1khIS0sICBFGGhEILABYCBFsEZ2aIpFYEQtLAGxCwpDI0NlCi0sALEKC0MjQwstLACwKCNwsQEoPgGwKCNwsQIoRTqxAgAIDS0sIEWwAyVFYWSwUFFYRUQbISFZLSxJsA4jRC0sIEWwAENgRC0sAbAGQ7AHQ2UKLSwgabBAYbAAiyCxLMCKjLgQAGJgKwxkI2RhXFiwA2FZLSyKA0WKioewESuwKSNEsCl65BgtLEVlsCwjREWwKyNELSxLUlhFRBshIVktLEtRWEVEGyEhWS0sAbAFJRAjIIr1ALABYCPt7C0sAbAFJRAjIIr1ALABYSPt7C0sAbAGJRD1AO3sLSywAkOwAVJYISEhISEbRiNGYIqKRiMgRopgimG4%2F4BiIyAQI4qxDAyKcEVgILAAUFiwAWG4%2F7qLG7BGjFmwEGBoATpZLSwgRbADJUZSS7ATUVtYsAIlRiBoYbADJbADJT8jITgbIRFZLSwgRbADJUZQWLACJUYgaGGwAyWwAyU%2FIyE4GyERWS0sALAHQ7AGQwstLCEhDGQjZIu4QABiLSwhsIBRWAxkI2SLuCAAYhuyAEAvK1mwAmAtLCGwwFFYDGQjZIu4FVViG7IAgC8rWbACYC0sDGQjZIu4QABiYCMhLSxLU1iKsAQlSWQjRWmwQIthsIBisCBharAOI0QjELAO9hshI4oSESA5L1ktLEtTWCCwAyVJZGkgsAUmsAYlSWQjYbCAYrAgYWqwDiNEsAQmELAO9ooQsA4jRLAO9rAOI0SwDu0birAEJhESIDkjIDkvL1ktLEUjRWAjRWAjRWAjdmgYsIBiIC0ssEgrLSwgRbAAVFiwQEQgRbBAYUQbISFZLSxFsTAvRSNFYWCwAWBpRC0sS1FYsC8jcLAUI0IbISFZLSxLUVggsAMlRWlTWEQbISFZGyEhWS0sRbAUQ7AAYGOwAWBpRC0ssC9FRC0sRSMgRYpgRC0sRSNFYEQtLEsjUVi5ADP%2F4LE0IBuzMwA0AFlERC0ssBZDWLADJkWKWGRmsB9gG2SwIGBmIFgbIbBAWbABYVkjWGVZsCkjRCMQsCngGyEhISEhWS0ssAJDVFhLUyNLUVpYOBshIVkbISEhIVktLLAWQ1iwBCVFZLAgYGYgWBshsEBZsAFhI1gbZVmwKSNEsAUlsAglCCBYAhsDWbAEJRCwBSUgRrAEJSNCPLAEJbAHJQiwByUQsAYlIEawBCWwAWAjQjwgWAEbAFmwBCUQsAUlsCngsCkgRWVEsAclELAGJbAp4LAFJbAIJQggWAIbA1mwBSWwAyVDSLAEJbAHJQiwBiWwAyWwAWBDSBshWSEhISEhISEtLAKwBCUgIEawBCUjQrAFJQiwAyVFSCEhISEtLAKwAyUgsAQlCLACJUNIISEhLSxFIyBFGCCwAFAgWCNlI1kjaCCwQFBYIbBAWSNYZVmKYEQtLEtTI0tRWlggRYpgRBshIVktLEtUWCBFimBEGyEhWS0sS1MjS1FaWDgbISFZLSywACFLVFg4GyEhWS0ssAJDVFiwRisbISEhIVktLLACQ1RYsEcrGyEhIVktLLACQ1RYsEgrGyEhISFZLSywAkNUWLBJKxshISFZLSwgiggjS1OKS1FaWCM4GyEhWS0sALACJUmwAFNYILBAOBEbIVktLAFGI0ZgI0ZhIyAQIEaKYbj%2FgGKKsUBAinBFYGg6LSwgiiNJZIojU1g8GyFZLSxLUlh9G3pZLSywEgBLAUtUQi0ssQIAQrEjAYhRsUABiFNaWLkQAAAgiFRYsgIBAkNgQlmxJAGIUVi5IAAAQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuUAAAICIVFiyAgQCQ2BCWblAAACAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAIuAGAsQlAG7IFQAi6AYAACQFAWblAAACAiFW5QAACAGO4BACIVVpYswwADQEbswwADQFZWVlCQkJCQi0sRRhoI0tRWCMgRSBksEBQWHxZaIpgWUQtLLAAFrACJbACJQGwASM%2BALACIz6xAQIGDLAKI2VCsAsjQgGwASM%2FALACIz%2BxAQIGDLAGI2VCsAcjQrABFgEtLLCAsAJDULABsAJDVFtYISMQsCAayRuKEO1ZLSywWSstLIoQ5S1AmQkhSCBVIAEeVR9IA1UfHgEPHj8erx4DTUsmH0xLMx9LRiUfJjQQVSUzJFUZE%2F8fBwT%2FHwYD%2Fx9KSTMfSUYlHxMzElUFAQNVBDMDVR8DAQ8DPwOvAwNHRhkf60YBIyIzHxwzG1UWMxVVEQEPVRAzD1UPD08PAh8Pzw8CDw%2F%2FDwIGAgEAVQEzAFVvAH8ArwDvAAQQAAGAFgEFAbgBkLFUUysrS7gH%2F1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQBCHUuwMlNYsCAdWUuwZFNYsBAdsRYAQllzcysrXnN0dSsrKysrdCtzdCsrKysrKysrKysrKytzdCsrKxheAAAABhQAFwBOBbYAFwB1BbYFzQAAAAAAAAAAAAAAAAAABEgAFACRAAD%2F7AAAAAD%2F7AAAAAD%2F7AAA%2FhT%2F7AAABbYAF%2FyU%2F%2Bv%2Bhf5e%2Fqj%2F6wAW%2FrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAiwCBAN0AmACPAI4AmQCIAIEBDwAAAAAAAAAAAAAALgBMAKQBDAF6AeYB%2BgIcAjwCZgKGApwCrgLKAuADHAM%2BA3oDzAQIBE4EpgTEBSgFfgWuBdoF%2FAYaBj4GjgcKBzoHiAfAB%2FYIJAhKCJIIugjOCPIJHAk2CW4JmgnaCg4KWgqYCuQLBAs2C1oLmgvCC%2BIMCgwmDDoMVgxyDIQMnAzmDTINZg2yDfwORg7ODw4PMA9mD5YPqBAAEDoQdhDCERARQBGIEcgSABIiEmYSjhLGEu4TOBNKE5QTxhPGE%2FAUNhSAFNAVGhU6FaQVzhY%2BFnwWshbIFtAXQBdSF4AXsBfiGCIYPBh6GKQYrhjSGPIZIBlUGWoZgBmWGeQZ9hoIGhoaLBpAGloapBqwGsIa1BrmGvobDBseGzAbRBuQG6IbtBvGG9gb6hv%2BHCochhyYHKocvBzQHOIdHh2QHaIdtB3GHdgd6h38HoAejB6eHrAewh7UHuYe%2BB8KHx4fgh%2BUH6YfuB%2FKH9wf7iAgIH4gkCCiILQgxiDYISghOiFMIaQiGCI8Im4inCKuIsAi2CLyIwgjLiNWI3ojlCOyI9Ij6CQcJIAAAAACACv%2F4wIrBbYABAAQABhACwICDgQDDghPWQ4WAD8rABg%2FEjkvMTAJASMSEwE0NjMyFhUUBiMiJgIr%2Fu5tMX%2F%2Bz09ELThOQjE3Bbb73QEzAvD6mExYNzZEXjgAAAIA4QOmA0IFtgADAAcADbQGAgcDAwA%2FM80yMTABAyMTIQMjEwHlmWtIAhmaa0gFtv3wAhD98AIQAAAAAAIAPwAABTsFtgAbAB8AM0AYAB8QEBkVERETBAgMDAEcDQ0KFxMDBgoSAD8zPzMSOS8zMzMRMzMROS8zMzMRMzMxMAEDIQchAyMTIQMjEyE3IRMhNyETMwMhEzMDIQcBIRMhBAxiAR0N%2Fst9i4H%2B0X%2BFef77DQEcZf7rDQEte4t9ATF%2FhX0BCAz8xQEvYP7RA4P%2BrIH%2BUgGu%2FlIBroEBVH8BtP5MAbT%2BTH%2F%2BrAFUAAAAAwBI%2F4kELwYQAB4AJQAsADpAHx8MAykiLBwNJQYGEwYMS1kbJhMmS1kWEwYTBhMVBRUALy8SOTkvLxEzKxEAMysREgAXOTIRMzEwARQGDwEjNyYnNR4BMxMuATU0Nj8BMwcWFwcmJwMeAQE%2BATU0JicDDgEVFBYXA67hxTGFMcN4UrtJYot92L8nhSeffD95f16Vf%2F53a35CUQhsdkVJAeyiyhbh3w46miktAcQxlXKfwBGwsgxAhz8J%2Fkg3jP6iDXxcNlQgAkoLdGI1WRoAAAUAqP%2FsBfwFywADAA8AHgArADoAJUASBBwcAyUxMQIDBgIYHzgHChUZAD8zPzM%2FPxI5LzMROS8zMTAJASMBAyIOARUUMzI2EjU0FxQCDgEjIiY1NBI2MzIWASIOARUUMzI%2BAjU0FxQCDgEjIiY1NBI2MzIWBbz7w5gEPiFDaT9qQWhFiz9ljVZuemWscnR4%2FCNCakBrNFQ%2FJoxAZYxXbXplrHJ0eAW2%2BkoFtv1Ogfh0rYIBC2eml2v%2B%2FrFjlZGmATGYjwJcfvl3rE%2BVyUemmGz%2B%2FbBilpGmATGYkAADAEL%2F7AUfBc0ACwAWADUAMEAbKioaBRAnBA8oMC0EHy8SHwBKWR8EMwxKWTMTAD8rABg%2FKwAYPxIXORc5OS8xMAEiBhUUFz4CNTQmATI2NwEOAhUUFiU0NjcmNTQ2MzIWFRQOAgcBNjczBgcTIycOASMiJgLhaXRSi2g%2BVf6lV6Jy%2Fs6AcDuF%2Fti01WfUr5WvQW6RUQEWf0ioZbbLyXV43ImoygVEeG54c0dOXDpNWfszQlsBsUNidUlqgd%2BU22alkKTJnoVOdmJSKv57brnssP7ypmRWwAABAOEDpgHlBbYAAwAJsgIDAwA%2FzTEwAQMjEwHlmWtIBbb98AIQAAAAAQBS%2FrwC5wW2AAsACrMDAwonAD8%2FMTATEBIBMwoBERATIwJS8AEInfb7coOTARABUwJAARP%2B8v2o%2FsL%2Brf79AQoAAAAB%2F2D%2BvAH0BbYACgAKswgDBCcAPz8xMAEQAgEjABEQAzMSAfTz%2FvucAfBxg5IDYP6r%2Fb%2F%2B8gInAn0BVQEB%2FvMAAQDXAmoEgQYbAA4AC7MGBg4AAD8zLzEwAQMlByUTBwMBJwElNwUTA1Z7AaYI%2Fne0pnH%2B%2FnQBNf6LNwFzKQX4%2FoESnS%2F%2BgTQBlv6oeQEcbZq5AZAAAQB%2FAQgEFwSgAAsADrQJAQEGAgAvMzMRMzEwASE1IREzESEVIREjAgT%2BewGFjQGG%2FnqNAouOAYf%2BeY7%2BfQAAAAH%2FnP74ASsA7gAGAAixBAAAL80xMCUXBgcjEjcBIwhxnYF%2BTu4X6%2FQBHtgAAQA3AdUCOQJzAAMACLEAAQAvMzEwEzchBzcjAd8iAdWengAAAQAr%2F%2BMBIwDyAAsADLUJA09ZCRYAPysxMDc0NjMyFhUUBiMiJitRRys1UEQuNkpNWzQ1R180AAAB%2F6IAAAN9BbYAAwAKswMDAhIAPz8xMAkBIwEDffzTrgMtBbb6SgW2AAAAAAIAef%2FsBEQFzQAMABkAF0AMCw1LWQsHBBRLWQQZAD8rABg%2FKzEwARACBCMiAjUQEiQzIAUiBgIVFBYzMjYSNRAERJ3%2B8bOwvKQBDa0Bbf6JccB3ZG9zvHED9v7Z%2Fhj7AP%2FyAQ4B6fmQ5%2F5h2Ky45AGs7wFDAAAAAAEBLwAAA4UFtgAKABC2BAcBCQYBGAA%2FPxI5OTEwISMTEjcGDwEnATMCTKzEOx0yWbJQAcGVA5EBBWI1Om5%2FARwAAAAAAQAMAAAENwXLABsAHEAOAhoRC0tZEQcBGkxZARgAPysAGD8rEQAzMTApATcBPgM1NCYjIgYHJzYzMhYVFA4BBwEVIQOP%2FH0fAdFmlWEveGdNk1lSv96wzU%2B3y%2F6gAqaTAaRdjX17S2N0OURzmrGbb7rQsf7NCAAAAQAv%2F%2BwEMQXLACgALUAXAxgZGRhLWRkZCyYmIEtZJgcLEUtZCxkAPysAGD8rERIAORgvKxESADkxMAEUBgcVHgEVFA4BIyInNR4BMzI2NTQmKwE3MzI2NTQmIyIGByc2MzIWBDHKs3yOfO6k0q9e0lWitJ6Ngx%2BLpdp0Y1CaYlDD5bPEBIec2SAJF6d9hctyT6QxNZ%2BKg4eProxcbDZCdpCuAAACABAAAARMBb4ACgATACVAEgYTDwcBBRMFTFkJExMDBwYDGAA%2FPxI5LzMrEQAzETMRMzEwASMDIxMhNwEzAzMhNhITIw4BBwEEK%2BlIpEr9cB0DQsTP6P51LkBUCBFjF%2F3rAU7%2BsgFOngPS%2FCncATIBJB2HHf2PAAABAFD%2F7ARIBbYAHAAtQBcbBwAAEk1ZAAAHFxcaTFkXBgcMS1kHGQA%2FKwAYPysREgA5GC8rERIAOTEwATIWFRQGBCMiJzUWMzI2NTQmIyIGBycTIQchAzYCVrbXkv76scGJpKq%2F1pODMGJaSsUCnCH99n9XA33RsqH0eU%2BkZsCsfpMNGDkCrJn%2BSRcAAAIAhf%2FsBFoFywAaACgALUAXDRgFESFNWRERGAUFCktZBQcYG0tZGBkAPysAGD8rERIAORgvKxESADkxMBM0GgEkMzIXByYjIgADMz4BMzIWFRQCBiMiJgUyPgE1NCMiDgIVFBaFec4BHrhvSSNEZtT%2B30QIO69qmrSF5JO2xwGPXpNR3UJ8YDB5AajRAZwBI5MXkRb%2B1v7aT17FrKH%2B9Y3mWWy%2Bcfg5X3JiiZ4AAAAAAQCuAAAEeQW2AAYAFkAKBQIAGAMCTFkDBgA%2FKwAYPxEzMTAzASE3IQcBrgMA%2FTEfA3sb%2FQQFIZWL%2BtUAAwBg%2F%2BwEVgXNABkAJQAxADJAGxMGKSMEDQAsGktZLCwNAAAmS1kABw0gS1kNGQA%2FKwAYPysREgA5GC8rERIAFzkxMAEyFhUUBgceARUUDgEjIiY1NDY3LgE1ND4BAw4BFRQWMzI2NTQmEyIGFRQWFz4BNTQmAuWuw5y8f2p44Zi%2B2L7JX1Ftxgq5mYpwi6ZoCHKITlihhnMFza2VgcBQTq5zer9mxamU2ExFl2Bvr2H87zynd2t%2BlHpjlgK9g25SfDY8j2ZaagACAGL%2F7AQrBcsAGgAoAC1AFw4FGCERTVkhIQUYGBtLWRgHBQpLWQUZAD8rABg%2FKxESADkYLysREgA5MTABFAoBBCMiJzUWMzISEyMOASMiJjU0EjYzMhYlIgYVFBYzMj4CNTQmBCtwt%2F78rIhqhnDK%2BkAKM6NjqbiB55C0x%2F5%2FlrZtbEyAWSl2BArC%2Flf%2B2Ywini8BGgEsS1fFvpkA%2F4%2FlV%2BKxfIQ5anpag5kAAgAr%2F%2BMBwwRkAAsAFgAXQAwPFE9ZDxAJA09ZCRYAPysAGD8rMTA3NDYzMhYVFAYjIiYTNDYzMhUUBiMiJitRRys1UEQuNqBQR2FTQS42Sk1bNDVHXzQDpU1baEldNQAAAv%2Bc%2FvgBwwRkAAYAEQAVQAkEQAYKD09ZChAAPysAGC8azjEwJRcGByMSNxM0NjMyFRQGIyImASMIcZ2Bfk5jUEdhU0EuNu4X6%2FQBHtgCzk1baEldNQAAAAEAeQDyBBAE2QAGABdACQECBQUGBAMAAwAvLxEzMjkRMzMxMCUBNQEVCQEEEPxpA5f9FQLr8gGmYgHflf6N%2FrgAAAAAAgB%2FAbwEFwPlAAMABwAStwUABAEEBAABAC8zMy9dMzEwEzUhFQE1IRV%2FA5j8aAOYA1qLi%2F5ijo4AAAAAAQB5APIEEATZAAYAG0ALBQQBAQMABgIDBgMALy8RMxEzEjkRMzMxMBMJATUBFQF5Aun9FwOX%2FGkBiQFIAXOV%2FiFi%2FloAAAAAAgCe%2F%2BMDmgXLABoAJgAlQBIHEQAAJBEkHk9ZJBYRCklZEQQAPysAGD8rERIAORgvEjkxMAE%2BATc%2BAjU0JiMiBgcnPgEzMhYVFAYHDgEHAzQ2MzIWFRQGIyImAQQWZXOAUC5nYFGUQj1cyFKnuIOgfVgX7VBHLDVTQS42AZOCp1tkWGQ%2BXWUzH4EzMqiae894W3Fo%2FrdNWzQ1SV00AAAAAAIAb%2F9GBo8FtAA1AEEAKkATJisHCTYQGD09BAkQCRAJKx8yAwA%2FM8Q5OS8vETMzETMRMxI5ETMxMAEUAgYjIicjBiMiJjU0PgEzMhYXDgEXFDMyPgE1NAAjIgQCFRAAITI3FQYjIAAREBIkITIEEgUiDgEVFBYzMhsBJgaPbsh6xRAIb7Rzg4jxjEF9WEBEA2ZOf0r%2FAPLk%2FpvFAR8BCsXf2%2BD%2Bxv6X%2FQGyAQ2%2FARSR%2FUpeoFxCQbtVRj8DVLP%2B3qS4uJeGnf6QGCTy%2FC51hul%2F7wEA1v6H5P7y%2FtdWf1oBcQFBAQUBwfaX%2FuxfbsRyXVMBOwECFwAAAv%2BLAAAEEAW2AAcADgAdQA4LBA4BSVkODgMEAwcDEgA%2FMz8SOS8rEQAzMTABIQMjATMTIwsBJicOAQMDLf4Q9b0DH664qksjGAUlV84B0f4vBbb6SgJtASuzq1iu%2Fn0AAwBWAAAEsgW2AA4AFwAgAC1AFwUgDw8gSlkPDw0ODhdKWQ4DDRhKWQ0SAD8rABg%2FKxESADkYLysREgA5MTABIBEUBgcVHgEVFAQjIQETMzI2NTQmKwEDITI2NTQmKwEDAgGwrp5ze%2F7Q%2F%2F4xATUn%2BJy6hY%2FT%2BgEKtcKVjOwFtv6wjcIdCiCdbtTxBbb9jpJ%2BaGf7bqGTdHsAAAAAAQCW%2F%2BwFCgXLABgAF0AMFABJWRQEDQdJWQ0TAD8rABg%2FKzEwASIEAhUUFjMyNxUOASMiABEQEiQzMhcHJgOurv7tocOri7dWnG7y%2FuzTAWThxZdFigUzwv6J3bvfOZUfHAErAQIBBQHB7FCNRQAAAAIAVgAABRQFtgAJABMAF0AMBhJKWQYDBRNKWQUSAD8rABg%2FKzEwARACBCkBASEgAAEyJBI1NCYrAQMFFNL%2Bev76%2FqABNQFWARQBH%2FytygEyo87HsvoDbf77%2FnDYBbb%2B1fwItwFO19fd%2B3AAAAEAVgAABGoFtgALACZAFAYJSVkGBgECAgVJWQIDAQpJWQESAD8rABg%2FKxESADkYLysxMCkBASEHIQMhByEDIQM1%2FSEBNQLfIP3KYgIPHf3vcgI1BbaZ%2FiuY%2FegAAQBWAAAEagW2AAkAHUAPBglJWQYGAgESAgVJWQIDAD8rABg%2FEjkvKzEwISMBIQchAyEHIQECrAE1At8e%2FchuAhAg%2Fe8Ftpn965kAAAEAlv%2FsBU4FywAdACZAFAAdSVkAAAQLCxJJWQsEBBlJWQQTAD8rABg%2FKxESADkYLysxMAEhAwYjIAAREBIkMzIWFwcuASMiBAIVFBYzMjcTIQM1Acua2Mv%2B%2BP7bywFo23XNaEJNsWqp%2FuuazbiaamD%2B3wL%2B%2FTlLASEBAwENAbn1KCyYIjLL%2FpThvtonAbwAAAEAVgAABXMFtgALABpADQgDSVkICAUKBgMBBRIAPzM%2FMxI5LysxMCEjEyEDIwEzAyETMwQ9p4%2F9bJGqATWqgwKUhagCsP1QBbb9kgJuAAAAAQBWAAACNQW2AAMACrMBAwASAD8%2FMTAzATMBVgE3qP7JBbb6SgAAAAH%2Bwf5%2FAjUFtgAMABG3CQMABUlZACIAPysAGD8xMAMiJzcWMzI2NwEzAQKmaTAGRUxkgxkBM6r%2By0%2F%2BfxmTFH14Bar6RP6FAAEAVgAABSsFtgANABVACQoEBwsIAwEHEgA%2FMz8zEjk5MTAhIyYCJwcDIwEzAwEzAQQKukiVSK59qgE1qpcCvNH9gbUBZbeD%2FbIFtv06Asb9gwAAAAEAVgAAA1YFtgAFABG3AQMAA0lZABIAPysAGD8xMDMBMwEhB1YBNar%2B7AI1IQW2%2BuSaAAABAFQAAAa4BbYAFAAZQAwKAhMDBwwIAwAPBxIAPzMzPzMSFzkxMCEDIw4BBwMjATMTMwEhASMaATcjAQKkpggHKxC%2BogE19JUJApMBCv7Rrn6GGwb9MwUQSPtK%2FH0FtvtMBLT6SgJOAndN%2Bu4AAAAAAQBUAAAFqAW2AA8AFUAJAwsHDggDAQcSAD8zPzMSOTkxMCEjASMGBwMjATMBMzY3EzMEc7X%2BNAYgKqyiATW0AcsGHiqupATH3cX82wW2%2BzzgtQMvAAAAAAIAlv%2FsBYMFzQANABsAF0AMCw5JWQsEBBVJWQQTAD8rABg%2FKzEwARACBCMgABEQEiQzMgAlIgYCFRQWMzI2EjU0JgWDsP641%2F8A%2FuLAAU%2FS9AEY%2Feed%2BInEqJjxjLwDi%2F7z%2FlfpASsBDgEIAbTs%2Fsycyv6Y2sffwwFs3cffAAAAAgBWAAAEhwW2AAoAEwAdQA8LBEpZCwsHBhIHE0pZBwMAPysAGD8SOS8rMTABFAAhIwMjASEyFgEzMjY1NCYrAQSH%2Frj%2Bw4d7qgE1AUrW3P0Thdjgi5CjBD34%2Fvr9wQW2vf3YtrB9bwACAJb%2BpAWDBc0ADQAfACNAER8QHRAHFwBJWRcEEAdJWRATAD8rABg%2FKxESADkYEMYxMAEiBgIVFBYzMjYSNTQmAQcjIAAREBIkMzIAERAABwEjA2qd%2BInEqJ7yhbz%2BxBEQ%2FwD%2B4sABT9L0ARj%2B6uwBEtsFNcr%2BmNrH38gBadvH3%2Fq5AgErAQ4BCAG07P7M%2FvL%2Bs%2F4aTv6aAAIAVgAABIkFtgALABUAJkATCAAODgBKWQ4OAwoCEgMMSVkDAwA%2FKwAYPzMSOS8rERIAOTEwAQMjASEgERAFEyMLAQIHMzI2NTQmIwGBgaoBNQFAAb7%2BkO%2B60WlmDqjB0IeYAmD9oAW2%2FpL%2BpGX9eQJgAsH%2BEkGqn3ltAAABACf%2F7AQjBcsAJgAgQBAfDBUDFRxJWRUEAwlJWQMTAD8rABg%2FKxESADk5MTABFAQjIiYnNRYzMjY1NCYnLgE1NCQzMhYXBy4BIyIGFRQeARceAgOR%2Fuf%2FaqFHorKivmmPl3UBCNdjq19CQqRFhqMiSmmTZzUBqNPpHSKqVJeETndRVap0u%2BsmLpYmLIt3Nk1EPVhkeQAAAAEAugAABLQFtgAHABZACgESBwMEA0lZBAMAPysRADMYPzEwISMBITchByEB56wBFf5qIQPZHv5oBR%2BXlwAAAAABAKT%2F7AV%2FBbYAFQAUQAkVCgMEEUlZBBMAPysAGD8zMTABAwIEIyImNTQ3EzMDBhUUFjMyNjcTBX%2FNN%2F7j9ubeGL2qvxaSkay%2FLM0Ftvw6%2Fvn90MNReANu%2FIVqUnWHr8oDugAAAQC8AAAFHwW2AAsAELYLBgMHAwYSAD8%2FMxEzMTAlNjcBMwEjAzMTFhUB3z1lAd%2B%2F%2FPO0oqphFMWQwgOf%2BkoFtvxexIsAAAAAAQDfAAAHgQW2AB0AGUAMBA8YAwkcEwoDAQkSAD8zPzMzEhc5MTAhIwMmNSMOAQEjAzMTFxQHMzY3ATMTFhUHMzY3ATME6aoxCAYZSP4srj6qHwIKBllDAZWyKwkBCUs4AYO2A8WIkkil%2FA4Ftvx7WGKg84wDYPykmZdT4IIDfQAB%2F5gAAATRBbYACwAVQAkIAgQJBgMBBBIAPzM%2FMxI5OTEwISMDASMJATMTATMBA7y01f4fugJU%2FvmsywG7uv3VAoH9fwMIAq79zQIz%2FUoAAAEAvAAABMMFtgAIABC2AAUBBwMFEgA%2FPzMSOTEwCQEzAQMjEwMzAhkB6cH9jXGsd%2B6qAssC6%2Fxn%2FeMCJQORAAAB%2F%2FAAAASTBbYACQAgQBAHBAIIBQRJWQUDAQhJWQESAD8rABg%2FKxEAMxEzMTApATcBITchBwEhA3X8exwDnP1xIANaGvxkArmJBJKbi%2FtvAAH%2F8P68AvAFtgAHAA61BQIDBgEnAD8zPzMxMAEhASEHIwEzAXP%2BfQF9AYMf4%2F7C4%2F68BvqN%2BiEAAQDdAAACUAW2AAMACrMDAwISAD8%2FMTABEyMDAXfZmtkFtvpKBbYAAAH%2Fav68AmoFtgAHAA61AwQDAAcnAD8zPzMxMAczASM3IQEhd%2BEBQOMeAYX%2BhP58tgXfjfkGAAAAAQA1AikEAgXBAAYADrQFAQAEAgAvLzMRMzEwEwEzASMDATUCVm0BCpHJ%2Fi0CKQOY%2FGgC6%2F0VAAAB%2F0T%2BvAKN%2F0gAAwAIsQECAC8zMTABITchAm%2F81R4DK%2F68jAABAj8E2QOHBiEACAAIsQYBAC%2FNMTABIy4BJzUzFhcDh2g9hxy1K2gE2T26PBWIpwACAGL%2F7ARgBFwAEgAgACdAFAoEDAAFDwgVABpGWQAQDBNGWQwWAD8rABg%2FKwAYPz8REjk5MTABMhYXMzczAyM3IwYjIiY1NBI2AzI2EjU0JiMiBgIVFBYCf1yQKAtDf%2BmFGgizxouejvopYcB4cFtos2ZeBFxjXaz7uNHlxqzQAWTK%2FBu5ASmVZ3qs%2FtqjcnEAAAAAAgA7%2F%2BwEOQYUABUAIgAnQBQLBAAPBwAGFQ8WRlkPEAAdRlkAFgA%2FKwAYPysAGD8%2FERI5OTEwBSImJyMHIwEzBgIHMz4BMzIWFRQCBhMiBgIVFBYzMjYSNTQCIWGTJQpGfQFKqDM3MAldtWCNnon1IGDHdW9pY6toFGZYqgYU8v7%2FrHZvxq3R%2Fp3HA%2BO%2B%2FuCXbnWiASuo4wABAGL%2F7AOqBFwAGAAXQAwHDEZZBxAAE0ZZABYAPysAGD8rMTAFIiY1NBIkMzIXByYjIgYCFRQWMzI2NxUGAfrC1pQBBaOJgy94Y3C5aYV1SIA%2BfBTWw8gBUr0zjTOZ%2Fu%2BggI4oG48%2FAAIAYv%2FsBMMGFAAUACEAJ0AUAwsOAAYACRUAHEZZABAOFUZZDhYAPysAGD8rABg%2FPxESOTkxMAEyFzM2NxMzASM3Iw4BIyImNTQSNgMyNhI1NCYjIgYCFRQCf8JXChEcTqb%2BtosWCGWwXouckPUmXsh1bGdlrWkEWr6bdwFm%2BezRfWjErtYBZML8HbsBI5dvdKX%2B1aXjAAAAAgBi%2F%2BwDtARcABgAIgAmQBQcDkZZHBwABwcZRlkHEAASRlkAFgA%2FKwAYPysREgA5GC8rMTAFIiY1NBI2MzIWFRQEISMHFBYzMjY3FQ4BEyIGBzMyNjU0JgHsuNKV9pSZmv60%2FsshBHuBP4VjXpA0Z7UwDOTzSRTawbwBWcCFd7TNUIOTJDCSLCMD4bynd3E1RgAAAAH%2FG%2F4UA4MGHwAgACpAFgwaCR0QFkZZEAAaHUdZGg8ABUZZABsAPysAGD8rABg%2FKxEAMxEzMTADIic1FjMyNjcTIz8CPgEzMhYXByYjIgYPATMHIwMOAWhFOEAwTFIZ48ENzhcuo6AodCArTD1XXR0Z7hnt6Cei%2FhQVjRZ8cwQ6Q0JkyKUXDoEdYYFsf%2Fu2va4AAAAD%2F4H%2BFARMBFwAKAA1AEMASEAoGzMzDkZZBzlHWQQgCQMHJjMHMwcVKCZAR1kmECgCR1koDxUsR1kVGwA%2FKwAYPysAGD8rERIAOTkYLy8REhc5KysRADMxMAEPARYVFAYjIicGFRQWHwEeARUUBCEiJjU0NjcmNTQ2Ny4BNTQ2MzIXARQWMzI2NTQmLwEOAQEUFjMyPgE1NCYjIg4BBEwZ0ynpwzcdi0I%2FdbWj%2Ftz%2B98LckKFOZls%2FUO%2B6Tkz9SoKAts1sgp94gAEWWlBPdj9YUk51QQRIaxg%2BYL%2FjCDVOKRsIDhaEgLjKk4ZpmjYpUEVjKyB9U8L4FPr1TVp%2FdD5IDhAZfgMSVVlUk1ZSVlGRAAEAOwAABCkGFAAdAB1ADhILFgwAAAsVFgVGWRYQAD8rABg%2FMz8REjkxMCETNjU0IyIOAQcDIwEzDgMHMz4BMzIWFRQHBgMC2ZQSk1mpgSFlqAFKqBIhIykbC163ZIOPFydqArReKZR24Z%2F%2BJwYUUpqfrmZ7apCEPmjB%2FiEAAAAAAgA7AAACHwXfAAMADgAOtQwHAg8BFQA%2FP8QyMTAzIxMzAzQ2MzIVFAYjIibjqOqoeUAzWEMsKDQESAEYOEdaN0wxAAAC%2Fv7%2BFAIdBd8ADAAXABZAChUQCA8ABUZZABsAPysAGD%2FEMjEwAyInNRYzMjcBMwEOAQE0NjMyFRQGIyImh0U2PTp9KwEIpv72JJ0BVEAzVkMsJjT%2BFBWNFs0E2%2FsWq58HTDhHWjdMMQAAAAABADkAAAQhBhQADgAYQAsGDgkBCgABDwUJFQA%2FMz8%2FERI5OTEwCQEzCQEjAwcDIwEzCgEHAUoCDsn%2BKwEnu%2BuYUqoBSqpIci0CLwIZ%2Fi39iwIMe%2F5vBhT%2BsP3sgQAAAAABADkAAAItBhQAAwAKswIAARUAPz8xMDMjATPhqAFMqAYUAAABADsAAAaHBFwALAAnQBMWDwwTDQ8AIQwVJwYTBkZZGhMQAD8zKxEAMxg%2FMzM%2FERI5OTEwIRM2NTQmIyIOAQcDIxMzBzM%2BATMyFhczPgEzMhYVFAcDIxM2NTQmIyIOAQcDAriUEj5LVJ95IWWo6osWCletXHF6CwhWwmN%2FixaQqpQURUpRnncfawK0XilGTnjfnf4lBEjLd2iCdH15iIJEbv1gArRoKj5LdNWS%2FgwAAAEAOwAABCkEXAAZAB1ADg8MEw0PAAwVEwZGWRMQAD8rABg%2FMz8REjkxMCETNjU0JiMiDgEHAyMTMwczPgEzMhYVFAcDAtmUFEdOWamBIWWo6osWCmCzYH%2BTF48CtGgoP0x43p7%2BJQRIy3pli31PZf1gAAAAAgBi%2F%2FAEHQRWAA0AGwAXQAwAEUZZABAHGEZZBxYAPysAGD8rMTABMhYVFAIGIyImNTQSNgE0JiMiBgIVFBYzMjYSAoO%2B3JD2m8DakvgBg31rba1ff3dopl0EVuHFvP6ytuLEvgFPs%2F5xc4%2BU%2Fvmhg4%2BSAQ0AAAAAAv%2FV%2FhQEOQRaABUAIgAnQBQEDAAPCg8JGw8WRlkPEAAdRlkAFgA%2FKwAYPysAGD8%2FERI5OTEwBSImJyMHDgEDIwEzBzM2MzIWFRQCBhMiBgIVFBYzMjYSNTQCIWGSKAoEAw9rpgFQixoIs8GJnor0IGDHdW9pY6toFGRaJhla%2FgMGNNHjw7DU%2Fp7FA%2BO%2B%2FuCXbnWiASuo4wACAGL%2BFARgBFwAFQAiACdAFAQLAA8FDwgbAB1GWQAQDxZGWQ8WAD8rABg%2FKwAYPz8REjk5MTABMhYXMzczASMTNjcjDgEjIiY1NBI2AzI2EjU0JiMiBgIVFAKBXo8lDUN9%2FrCmZQkwCF%2B0YIyfkfcpXMR5bWJlsGgEXGVbrPnMAeAtsHlsw6%2FUAWjC%2FBu4ASKbaXqp%2Ftej4wAAAAABADsAAANoBFwAEgAbQA0OCwAMDwsVAAVGWQAQAD8rABg%2FPxESOTEwATIXByYjIg4BBwMjEzMHMz4CAvBFMyQ1NFufdxxrqOqLFgpIXmcEXA6WDXjVgv4KBEjLX1MtAAABAAj%2F7ANEBFwAJAAgQBAMHgMVFRtGWRUQAwlGWQMWAD8rABg%2FKxESADk5MTABFAYjIic1HgEzMjY1NCYnLgE1NDYzMhcHJyYjIgYVFBYXHgIC393JqYhGokV%2BgEZ0gmzKpaufNjhld11qR29rXS4BN5yvRZ4qLmROOU5ESYxgiqlKiRkrV0U4UD88VmMAAAABAFr%2F7ALbBUQAGgAnQBMQEkAMFQ8SEhVHWRIPBgBGWQYWAD8rABg%2FKxEAMxEzGhgQzTEwJTI3FQ4BIyImNTQ3EyM%2FAjMHIQchAwYVFBYBizdZImQefYUSf6wOuX1iNwESGv7vgRI6dRqBDhR3dkJUAlpJTuT8f%2F2kVy04PAAAAAEAcf%2FsBF4ESAAYABtADQ8SChgPDRUSBUZZEhYAPysAGD8%2FMxI5MTABAwYVFDMyPgE3EzMDIzcjDgEjIiY1NDcTAcOWEpNYqoIiZKbnixYMYrJfgJIWkgRI%2FUlZMo944J4B2%2Fu4y31ii4E%2BbgKkAAABAGIAAAQSBEgACwAOtQkBDwUAFQA%2FMj8zMTAzAzMTEhUzEjcBMwHffahAGAZ%2FNAFFsv2xBEj9m%2F7%2BaAETYAJc%2B7gAAAEAdQAABgYESAAfABlADAUPGQMJHRMKDwAJFQA%2FMz8zMxIXOTEwIQMmPQEjDwEBIwMzExUUBzM2NwEzExYdAQczNhIBMwEDPyAECTJT%2Ft3KK6QSCAYvWgEntiUGAgYcbgEMsv4GAlpeTpx2vf2RBEj9rliTenzGAnX9rqheNSpWAQkCWPu4AAAB%2F7YAAAQGBEgACwAVQAkGAAIHBA8LAhUAPzM%2FMxI5OTEwCQEjAQMzEwEzARMjAdP%2BpsMB2%2B%2BqrgFKwv45%2FKgBsv5OAjUCE%2F5kAZz95f3TAAH%2FO%2F4UBBIESAAYABhACwUPCgAPDxRGWQ8bAD8rABg%2FMxI5MTATMxMWEhUzPgE3ATMBDgEjIic1FjMyNj8BYqhKChMGI2gZAUWy%2FUhdtoBIRD9EUnU3TARI%2Fd9F%2FvNSV%2BIrAmH6%2FqyGFYcSZWOIAAAB%2F%2BMAAAN9BEgACQAgQBAHBAIIBQRHWQUPAQhHWQEVAD8rABg%2FKxEAMxEzMTApATcBITchBwEhArL9MRcCtv4hGwKRHf1YAhN1A1Z9jPzBAAEAG%2F68Ay8FtgAnABlACxsKCgsLJhQSAwAnAD8%2FMzI5LzMSOTEwASImNTQ3PgEnNCM3MjY3Ez4BOwEHIgYHAw4BBxUWFRQPAQYVFBYzFQG6jZcUISUE0SB2jxZEIqerIR9pXBRHHH5olxIvD0lT%2FrxpdzRZkqMVj49XaAFGoICNSVf%2Bv3t6EQUprDtI0zooNTGOAAABAh3%2BEAKoBhQAAwAKswAAAxsAPz8xMAEzESMCHYuLBhT3%2FAAB%2F7b%2BvALBBbYAJwAbQAwcCwsKChQTJgADEycAPz8yETM5LzMSOTEwATIWFRQPAQYVFDMHIgYHAw4BKwE1MjY3Ez4BNzUmNTQ%2FATY1NCYjNwEdkJkVMRDRIXeOFkMkprUNc2gTSBl%2Ba5YSMg5RYxwFtml2MF3bRCuPkFZo%2FrqkfY5IVwFCdX0SBiqpO0jVQSI1MY0AAQBzAlAEMwNUABcAErYPAAaADAMSAC8zMxrNMjIxMAEiBgc1NjMyFhceATMyNjcVBiMiJicuAQFcNoEyYpFFdFZAYTI3gTNkkEh%2BSEtaAslFNJdtHSUbHEI3lm4hICAYAAAAAAL%2F8v6LAfIEXgADAA8AGEALAAAHAyIHDU9ZBxAAPysAGD8SOS8xMAEzAyMBNDYzMhYVFAYjIiYBBG2wzwEIUUYsNVFBMDYCrPvfBStMXDQ2R10zAAEA4f%2FsBCkFywAeAChAFQIeDAkJEU1ZHhhLWR4JHgkBCgcBGQA%2FPxI5OS8vKysRADMRMzEwBSM3LgE1NBI2PwEzBxYXByYjIgYCFRQWMzI2NxUGBwJGfSuEj3%2FmkSN7JXdiL21ucLlphHZIgD57oxTXIs%2BauQE%2BxxWqqAkojjSZ%2Fu%2BgfZIoHI8%2BBAAAAf%2FpAAAEmgXJABsAMUAZCxcYF05ZCBgYEgAABUtZAAcTDxIPTFkSGAA%2FKxEAMxg%2FKxESADkYLzMrEQAzMTABMhcHJiMiBwMhByEHDgEHIQchNzY%2FASM3MxMSA0q4mEKShNUyRQFyGv6NLxZYUALVIfxHG801L8gayUxLBclWhU%2Ft%2Frp%2F22KJK5qNLvPdfwFeAWEAAAIAqAEhBBAEhwAbACcAJEATBQIaFxMQDAkIBxIYFQoEHxUlBwAvM8QyzjIQzjISFzkxMBM0Nyc3FzYzMhc3FwcWFRQHFwcnBiMiJwcnNyY3FBYzMjY1NCYjIgblRIFcf2dycmWBXIFGRn9agWJ1d2J%2FWn9EgY9naJKSaGaQAtN1YoFcgUZGgVqBaHF3Yn9af0RGf1p%2FYHdnj49naJKRAAABAH8AAATsBbYAFgA9QCEKDg8OTVkHDwYSExJNWQMAExUPEx8TAg8TDxMMARUGDBgAPz8zEjk5Ly9dERI5MisRADMRMysRADMxMAkBMwEzByEHIQchAyMTITchNyE3MwMzAkYB67v96%2Bcc%2FtchASkd%2Ftk5mjj%2B3R0BIiH%2B3R3hyqMCywLr%2FP6FoIX%2B9gEKhaCFAwIAAgId%2FhACqAYUAAMABwAXQAoDAwcEBAcAAAcbAD8%2FETkvETkvMTABMxEjETMRIwIdi4uLiwYU%2FPj%2BDfz3AAAAAAIAO%2F%2F4A%2BUGHQAsADgALUAZGTMCLQ8tNjAzJwYeBx4kR1keFQcMR1kHAAA%2FKwAYPysREgAXOREzETMxMBM0NyY1NDYzMhcHJiMiBhUUFhceAhUUBgcWFRQGIyInNR4BMzI2NTQmJy4BAQ4BFRQWFz4BNTQmru53z7C9hDWUdmZ5THxkYjR6b3LkzLB3OKFMhY5lZopwAVRSamWUUF9jAwLJakaFf55EezxRRTFFOCxPZEBhpjhHdpirPZQiLFlVMFIuPYsBURp7RkZeQCx%2BRDxbAAAAAgHJBQ4D6QXTAAoAFQAMsw4DEwgALzPNMjEwATQ2MzIVFAYjIiYlNDYzMhUUBiMiJgHJOC5OOycjLwFsOC9NOycjLwViLkNQMUQsKC5DUDFELAAAAwCL%2F%2BwGagXLABYAJgA2AC1AGQYMABIPDB8MAgASEBICDBIMEhsrIxMzGwQAPzM%2FMxI5OS8vXV0RMxEzMTABIgYVFBYzMjcVDgEjIiY1NDYzMhcHJgE0EiQzMgQSFRQCBCMiJAI3FBIEMzIkEjU0AiQjIgQCA6B9hYKAUoFCXjnA0ty%2BgnY8avyXyAFeysUBWtDJ%2FqfNz%2F6iw2muAS2srgEqr67%2B17Cu%2FtavBCOumqmhK3ocFO%2Fc0PU8eDX%2BuMgBXsrC%2FqLQzP6nys8BWsat%2FtOtrgEpsK4BKq%2Bu%2FtcAAAACAKoDFAMMBccAEgAeABtADAkDAAcTDAAEHhoAHwA%2FMj8Q1DLEEjk5MTABMhczNzMDIzcjDgEjIiY1ND4BAzI%2BATU0JiMiBhUUAfJyJwYlVotcDgQoZElNY1OWFj1nRTk5XH0Fx2da%2FWd1OEp4an%2FXe%2F20YrFPPkXOjIsAAgBYAHEDqAO%2BAAYADQAhQA4NBwoGAAMKAwUIAQwFAQAvLzMRMxI5OREzMxEzMzEwEwEXARMHAwUBFwETBwNYAYdO%2FtescecBiwFvVv7lnnHXAkgBdlH%2BuP59MQG6DgGVRf6T%2FqIxAY0AAAAAAQB%2FAQgEFwMZAAUACrICBAUALzMvMTABESMRITUEF4z89AMZ%2Fe8Bg44AAP%2F%2FADcB1QI5AnMSBgAQAAAABACL%2F%2BwGagXLAA8AHwAtADUALUAVJSkpBDUqKgwEIycnLi4MHAQEFAwTAD8zPzMSOS8zEjkREjkvMxE5LzMxMBM0EiQzMgQSFRQCBCMiJAI3FBIEMzIkEjU0AiQjIgQCJRQGBxMjAyMRIxEzMhYBMzI1NCYrAYvIAV7KxQFa0Mn%2Bp83P%2FqLDaa4BLayuASqvrv7XsK7%2B1q8Dtl9V45XPcX%2Flo53%2BWlzDX2ZaAtvIAV7Kwv6i0Mz%2Bp8rPAVrGrf7Tra4BKbCuASqvrv7XCE5%2BI%2F5%2FAWD%2BoANwfv7llUw%2BAAABAOMGFAQXBpgAAwAIsQECAC8zMTABITchA%2FT87yEDEwYUhAACANcDXgNGBcsADAAYAAyzEAoWAwAvMy8zMTATNDYzMh4BFRQGIyImNxQWMzI2NTQmIyIG17WCU5FUtYODtHF0UlNyc1JQdgSTgLhTkVSAtbWAUHR1T1J1dQAAAAIAfwAABBcEmAALAA8AIUAOCQEBBgILAgsCDQUNDAUALy8zERI5OS8vETMzETMxMAEhNSERMxEhFSERIwE1IRUCBP57AYWNAYb%2Beo3%2BewOYAoONAYj%2BeI3%2Bff8AjY0AAAEAYAJKAvYFyQAXABK3Cg8fAhYWASAAPzMRMz8zMTABITclPgI1NCYjIgcnNjMyFhUUBg8BIQKR%2Fc8XAQhzVyg%2BO1ppO32VbX1pkd0BiwJKauRkY1cvNUBQWmVxXmOhfbsAAAABAHcCOQL0BckAIgAbQAwiEBAREQYYHR8LBiEAPzM%2FMxI5LzMSOTEwAR4BFRQGIyInNRYzMjU0KwE3MzI2NTQmIyIHJzYzMhYVFAcCJUVOtqJ9bH1yzbJaFl9hdEU7Zl43bZ9ygM8EDBFmRYSTOH9IqolrUkc8PURdWHBftDYAAAECFATZA7oGIQAJAAixBAkAL80xMAE%2BATczFQ4BByMCFDiLJb4mzEtpBPQ8tzoVMcw2AAAB%2F9X%2BFARqBEgAGgAgQBASDA8HFw8KFRYbDwJGWQ8WAD8rABg%2FPz8zEjk5MTABFDMyPgE3EzMDIzcjDgEjIicjDgEDIwEzAwYBJ5NZpoMiaaPpixgMXbRicDMJCxdIpAFQqJQSAQqTduCdAd77uM15aGBOjP6iBjT9SVwAAQDH%2FvwEtgYUAA8AGkALBggIDgUBDgNJWQ4ALysAGC8zEjkvOTEwASMRIxEjEQYjIiY1EDYzIQS2ctVzPlTYy9roAi3%2B%2FAZ9%2BYMDMxL6%2BwEE%2FgD%2F%2FwCqAksBogNaEAcAEQB%2FAmgAAAAB%2F1b%2BFADTAAAAEQAMswgDEA8ALzPMMjEwExQGIyInNRYzMjU0Jic3MwcW06KFKS0mHq5OPGVqPYP%2B7GJ2CWQGbi4rCLZ5JgABAQICSgKPBbYACgAOtQkGAyAAHgA%2FPzk5MTABMwMjEzY3DgEHJwIZdrqHcBkhGTJ4MwW2%2FJQCDmd6GStPWgAAAgCoAxQC6QXHAAwAFwANtBMDDQofAD8zxDIxMAEUBiMiJjU0PgEzMhYnIgYVFBYzMjY1NALpsZhxh1SXY3V%2B9WZ1TEVedQTDv%2FCOfXXFboYfr45VVbGQpgAAAAACABcAcwNoA8EABgANAB9ADQAGAwcNCgoDBQgBDAUALzMvMxI5OREzMxEzMzEwCQEnAQM3EyUBJwEDNxMDaP53TgEprHHp%2FnX%2BkFYBGp5x2QHl%2Fo5SAUMBhzL%2BQQ7%2Bb0YBaAFiMv5u%2F%2F8AewAABVIFthAnANMCYgAAECYAe8oAEQcA1AJm%2FbcACbMDAhIYAD81NQD%2F%2FwBCAAAFpAW2ECYAe5IAECcA0wIpAAARBwB0Aq79twAHsgIQGAA%2FNQAAAP%2F%2FAFcAAAXoBckQJgB14AAQJwDTAvgAABEHANQC%2FP23AAmzAwIqGAA%2FNTUAAAL%2F%2FP5xAvgEWAAZACUAI0ARBhkZECMjHU9ZIxAQCUlZECMAPysAGD8rERIAORgvOTEwAQ4BDwEGFRQWMzI2NxcOASMiJjU0Njc%2BATcTFAYjIiY1NDYzMhYCkRZkc1%2BfZ2BQlEI%2BWsZXqLaEn4RRFu5RRys1UEMvNgKogqRdS3%2BUXWYzH4EwNKeafNB3Ym1kAUpNWzQ0R18zAAAA%2F%2F%2F%2FiwAABBAHcxImACQAABEHAEP%2F2AFSAAq0AhAQBSYAKxE1%2F%2F%2F%2FiwAABE0HcxImACQAABEHAHYAkwFSAAq0AhgYBSYAKxE1%2F%2F%2F%2FiwAABDgHcxImACQAABEHAMUAQgFSAAq0AhUVBSYAKxE1%2F%2F%2F%2FiwAABI8HLxImACQAABEHAMcAYAFSAAq0AhgYBSYAKxE1%2F%2F%2F%2FiwAABCsHJRImACQAABEHAGoAQgFSAAy1AwIiIgUmACsRNTUAAP%2F%2F%2F4sAAAQQBwISJgAkAAARBwDGAAIAgQAZQA8DAu8YAd8YAW8YAQ8YARgAEV1dXV01NQAAAv%2BJAAAG3QW2AA8AEwA8QCAKDUlZCgoBBhMDSVkTEwEGBRIJEgYSSVkGAwEOSVkBEgA%2FKwAYPysRADMYPxESOS8rERIAORgvKzEwKQETIQEjASEHIQMhByEDIQETIwEFqP0fYv5K%2FtvFA6oDqiH9y2QCEBz973MCNv1%2Fk1T%2BTgHR%2Fi8Ftpn%2BK5b95gHVArD9UAAA%2F%2F8Alv4UBQoFyxImACYAABAHAHoCIwAA%2F%2F8AVgAABGoHcxImACgAABEHAEP%2F%2BwFSAAq0AQ0NBSYAKxE1%2F%2F8AVgAABGoHcxImACgAABEHAHYAfQFSAAq0ARUVBSYAKxE1%2F%2F8AVgAABGoHcxImACgAABEHAMUARgFSAAq0ARISBSYAKxE1%2F%2F8AVgAABGoHJRImACgAABEHAGoAQgFSAAy1AgEfHwUmACsRNTUAAP%2F%2FAFYAAAJRB3MSJgAsAAARBwBD%2FsoBUgAKtAEFBQUmACsRNf%2F%2FAFYAAANCB3MSJgAsAAARBwB2%2F4gBUgAKtAENDQUmACsRNf%2F%2FAFYAAAMoB3MSJgAsAAARBwDF%2FzIBUgAKtAEKCgUmACsRNf%2F%2FAFYAAAMpByUSJgAsAAARBwBq%2F0ABUgAMtQIBFxcFJgArETU1AAAAAgBIAAAFFAW2AA0AGwAtQBcaBwgHSVkXCAgFCgoWSlkKAwUbSlkFEgA%2FKwAYPysREgA5GC8zKxEAMzEwARACBCkBEyM3MxMhIAABMiQSNTQmKwEDIQchAwUU0v56%2Fvr%2BoIeVIJaNAVYBFAEf%2FK3KATKjzseybwFKIf62agNt%2Fvv%2BcNgCiZYCl%2F7V%2FAi3AU7X1939%2FJb%2BCv%2F%2FAFQAAAWoBy8SJgAxAAARBwDHAQgBUgAKtAEZGQUmACsRNf%2F%2FAJb%2F7AWDB3MSJgAyAAARBwBDAGgBUgAKtAIdHQUmACsRNf%2F%2FAJb%2F7AWDB3MSJgAyAAARBwB2ASEBUgAKtAIlJQUmACsRNf%2F%2FAJb%2F7AWDB3MSJgAyAAARBwDFANUBUgAKtAIiIgUmACsRNf%2F%2FAJb%2F7AWDBy8SJgAyAAARBwDHAOUBUgAKtAIlJQUmACsRNf%2F%2FAJb%2F7AWDByUSJgAyAAARBwBqAM8BUgAMtQMCLy8FJgArETU1AAAAAQCoATED8AR3AAsAFkAKAwYACQQCCggEAgAvMy8zEhc5MTAJATcJARcJAQcJAScB5%2F7BYgFAAUNj%2FrwBQmH%2Bvf7AYALTAUFj%2FsABQGD%2BvP6%2BYAFA%2FsJgAAMAd%2F%2BsBbYGBAAXACAAKQAjQBMfIx4kBCYYDxhJWQ8EBCZJWQQTAD8rABg%2FKxESABc5MTABEAIEIyInByc3JjUQEiQzMhYXNxcHHgEBIgYCFRQXASYTNCcBFjMyNhIFg7D%2BuNfIhIFwiWrAAU%2FSY59Ig3KVMDL95534iSkC4VrRIf0jW46Y8YwDi%2F7z%2FlfpYKBcqojrAQgBtOw2OaZcuD68AT%2FK%2Fpjah1wDl1j%2BWnZX%2FHFKwwFsAP%2F%2FAKT%2F7AV%2FB3MSJgA4AAARBwBDAFgBUgAKtAEXFwUmACsRNf%2F%2FAKT%2F7AV%2FB3MSJgA4AAARBwB2ASMBUgAKtAEfHwUmACsRNf%2F%2FAKT%2F7AV%2FB3MSJgA4AAARBwDFAMsBUgAKtAEcHAUmACsRNf%2F%2FAKT%2F7AV%2FByUSJgA4AAARBwBqALoBUgAMtQIBKSkFJgArETU1AAD%2F%2FwC8AAAEwwdzEiYAPAAAEQcAdgBUAVIACrQBEhIFJgArETUAAgBWAAAEUgW2AAwAFQAlQBMJFUpZCQkGBw0ESlkNDQYHAwYSAD8%2FEjkvKxESADkYLysxMAEUACEjAyMBMwMzMhYBMzI2NTQmKwEEUv64%2FsGFRqoBNao1oNXd%2FRCH1%2BKMkaYDPfj%2B%2Bv7BBbb%2FAL792bawfm4AAAAAAf8A%2FhQEWAYfAD8ALEAYNhUnAx4MDDlGWQwAHiRGWR4WAAVGWQAbAD8rABg%2FKwAYPysREgAXOTEwAyInNRYzMjY3AT4BMzIWFRQOAQcGFRQXHgIVFAYjIic1HgEzMjY1NC4BJy4BNTQ%2BATc%2BAjU0JiMiBgcBDgGFRTY9MkFUFwEYK%2BLCorQqUYpuXy9sM9m4r10zhz5xiBUuQlhFJT5dUD4iaVl3hhz%2B7iii%2FhQVjxZfbgUiyMaOfTljW2lTRDhCImtxQ6%2FHR6ApM3RlKD44N0VuPDVWR0U4P0MlQEl9gPrpva7%2F%2FwBi%2F%2BwEYAYhEiYARAAAEQYAQ7EAAAq0AiIiESYAKxE1AAD%2F%2FwBi%2F%2BwEYAYhEiYARAAAEQYAdkQAAAq0AioqESYAKxE1AAD%2F%2FwBi%2F%2BwEYAYhEiYARAAAEQYAxfcAAAq0AicnESYAKxE1AAD%2F%2FwBi%2F%2BwEYAXdEiYARAAAEQYAxxIAAAq0AioqESYAKxE1AAD%2F%2FwBi%2F%2BwEYAXTEiYARAAAEQYAav0AAAy1AwI0NBEmACsRNTX%2F%2FwBi%2F%2BwEYAaBEiYARAAAEQYAxtoAAAy1AwIkJBEmACsRNTUAAwBi%2F%2BwGWARcACoAOABCAEJAJBUYAwYEChE8IUZZPDwFFg8FFTkyETJGWRoRECUrCitGWQAKFgA%2FMysRADMYPzMrEQAzGD8%2FEjkvKxESABc5MTAFIiYnByM3Iw4BIyImNTQSNjMyFhczNzMHNjMyFhUUBCEjBxQWMzI2NxUGJTI2EjU0JiMiBgIVFBYBIgYHMzI2NTQmBI1soygfchoIbaVfeoqN8o5SficLQ20fe9F3k%2F6z%2Fs4nBH2DN3t1pPxrX7t3W01jsGRKA9V1vC8O4vVGFE9Qi9GEYcaqzgFmzGFfrJKmiHS2y1CDkyEzlkuLtwEqlmd6rf7epHJzA1a9pnVvPUIAAAD%2F%2FwBi%2FhQDqgRcEiYARgAAEAcAegF9AAD%2F%2FwBi%2F%2BwDtAYhEiYASAAAEQYAQ4IAAAq0AiQkESYAKxE1AAD%2F%2FwBi%2F%2BwD7wYhEiYASAAAEQYAdjUAAAq0AiwsESYAKxE1AAD%2F%2FwBi%2F%2BwDxgYhEiYASAAAEQYAxdAAAAq0AikpESYAKxE1AAD%2F%2FwBi%2F%2BwDvQXTEiYASAAAEQYAatQAAAy1AwI2NhEmACsRNTX%2F%2FwA7AAAB7AYhEiYAwgAAEQcAQ%2F5lAAAACrQBBQURJgArETX%2F%2FwA7AAAC6gYhEiYAwgAAEQcAdv8wAAAACrQBDQ0RJgArETX%2F%2FwA7AAACxAYhEiYAwgAAEQcAxf7OAAAACrQBCgoRJgArETX%2F%2FwA7AAACwQXTEiYAwgAAEQcAav7YAAAADLUCARcXESYAKxE1NQAAAAIAWv%2FsBHEGJQAgAC4ANEAcGQ8WHgAIBQQDHxYoRlkWFg8fDwYDAQ8hRlkPFgA%2FKwAYPzM%2FEjkvKxESABc5ERI5MTABJic3FhclFwceARUUAgQjIiY1NBI2MzIWFzc1NCYnBScTMj4BNTQmIyIOARUUFgKkQlBfdkYBBEDwV0%2BP%2Fvm0ts2H75RpmSMGSUr%2B8jgxa6Zmg3FtoFdzBT86N3VURpJphXP7kP3%2BfMTQuaABFJ5bTwIRiNBdlWz7vXDgcnaKc8%2BAfoL%2F%2FwA7AAAEUAXdEiYAUQAAEQYAxyEAAAq0ASMjESYAKxE1AAD%2F%2FwBi%2F%2FAEHQYhEiYAUgAAEQYAQ5cAAAq0Ah0dESYAKxE1AAD%2F%2FwBi%2F%2FAEHQYhEiYAUgAAEQYAdjkAAAq0AiUlESYAKxE1AAD%2F%2FwBi%2F%2FAEHQYhEiYAUgAAEQYAxe8AAAq0AiIiESYAKxE1AAD%2F%2FwBi%2F%2FAENQXdEiYAUgAAEQYAxwYAAAq0AiUlESYAKxE1AAD%2F%2FwBi%2F%2FAEHQXTEiYAUgAAEQYAaugAAAy1AwIvLxEmACsRNTUAAwB%2FAPwEFwSoAAMADgAZABC1AAEBEQwRAC8vEjkvMzEwEzUhFQE0MzIWFRQGIyImETQzMhYVFAYjIiZ%2FA5j9xG81Ozw0NDtvNTs8NDQ7AouOjv7qeT08Oj8%2BAvV5PTw6Pz4AAAMAPf%2B0BFAEkwAVAB4AJwAwQBsSDwcEBgkiHB0hERQIDwQPFkZZDxAEJEZZBBYAPysAGD8rERIAFzkYEMYQxjEwARQCBiMiJwcnNyY1NBI2MzIXNxcHFiUiBgIVFBcBJhM0JwEWMzI2EgQXi%2FSakmRiaW1Ek%2FSWkmpoaXc%2B%2FnBsr2QRAgY2jA39%2FjllZ6tfAsG9%2Fqq%2BQX1Sh2eiwgFOsESBT4FhaZL%2B%2FpdcLQKFL%2F7lVCP9fy2PAQIAAAD%2F%2FwBx%2F%2BwEXgYhEiYAWAAAEQYAQ5kAAAq0ARoaESYAKxE1AAD%2F%2FwBx%2F%2BwEXgYhEiYAWAAAEQYAdmgAAAq0ASIiESYAKxE1AAD%2F%2FwBx%2F%2BwEXgYhEiYAWAAAEQYAxQoAAAq0AR8fESYAKxE1AAD%2F%2FwBx%2F%2BwEXgXTEiYAWAAAEQYAagAAAAy1AgEsLBEmACsRNTX%2F%2F%2F87%2FhQEEgYhEiYAXAAAEQYAduAAAAq0ASIiESYAKxE1AAAAAv%2FV%2FhQEOQYUABcAJAAnQBQEDQARCQAIGxEYRlkREAAfRlkAFgA%2FKwAYPysAGD8%2FERI5OTEwBSImJyMGBwMjATMCBgczPgEzMhYVFAIGEyIGAhUUFjMyNhI1NAIhYpQnCggRZqYBsKhfKBMJZbBfi56K9CBgx3VvaWOraBRmWGhI%2FhoIAP5HokR9aMOw1P6exQPjvv7gl251ogErqOMA%2F%2F%2F%2FO%2F4UBBIF0xImAFwAABEGAGqGAAAMtQIBLCwRJgArETU1AAEAOwAAAc0ESAADAAqzAg8BFQA%2FPzEwMyMTM%2BOo6qgESAAAAAIAlv%2FsBykFzQAVACEAOUAgEBNJWRAQAQwMD0lZDAMKG0lZCgQDFklZAxIBEgEUSVkrABg%2FPysAGD8rABg%2FKxESADkYLysxMCkBBiMgABEQEiQzMhchByEDIQchAyEFMjcTJiMiBgIVFBYF9P1eTlD%2FAP7iwAFP0phVAsUf%2FctkAhAf%2FfBzAjX8pEU29kxznfiJxBQBKwEOAQgBtOwXmf4rlv3mFRMEiRbK%2Fpjax98AAwBi%2F%2BwGrARcACEALgA4ADtAHgIOBQwyGEZZMjIFDC8iDCJGWREMEBwpBSlGWQAFFgA%2FMysRADMYPzMrEQAzERI5GC8rERIAOTkxMAUgJw4BIyImNTQSNjMgFz4BMzIWFRQEISMHFBYzMjY3FQYBIgYCFRQWMzISETQmJSIGBzMyNjU0JgTj%2FvJWRc17uNiW%2FJsBDllLzXeLnP63%2FtApBHuBS4xQov0Cba5gfG6xyncCiX2%2FLBLn8EAU4Wty5MLBAU6x4W16g3m3ylCDkzEjlksD3ZL%2B%2FpuNkgFBAQt8hgS9pnp0MEUAAAEBjwTZA%2FYGIQAOAAyzAwsGAQAvM80yMTABIyYnBgcjNT4BNzMWHwED9mc5aIZsbZF3F54lWyoE2TCNd0YbhYEnY4hCAAAAAAICJwTZA90GgQALABcAFUALDx8JLwk%2FCQMJFQMALzPMXTIxMAEUBiMiJjU0NjMyFgc0JiMiBhUUFjMyNgPdeGNldnxfZXZoQDMxQjs4M0AFsGN0c2JedXJhNT4%2BNTY9PQAAAAABAVAE2QQvBd0AFQAStgUTC4AQAAkAL8QyGt3GMzEwASIuAiMiBgcjEjMyHgIzMjY3MwIDRihLR0MgLDMWZDqtLE9HPhssMxpkQgTbIysjOToBAiQrJDY%2F%2Fv4AAAEANwHVA5ECdQADAAixAAEALzMxMBM3IQc3IwM3IgHVoKAAAAEANwHVB2gCdQADAAixAAEALzMxMBM3IQc3IwcOIgHVoKAAAAEAewPBAggFtgAGAAmyAAMDAD%2FNMTATJzYTMwIHgQZirH%2BTOAPBFtMBDP6nnAAAAAEAfQPBAgwFtgAHAAmyBQcDAD%2FGMTABFw4BByMSNwIECCiOWIGGRQW2Flv%2FhQEqywAAAAAB%2F5z%2B%2BAErAO4ABgAIsQQAAC%2FNMTAlFwYHIxI3ASMIcZ2Bfk7uF%2Bv0AR7YAAIAewPBA3sFtgAGAA0ADbQABwMKAwA%2FM80yMTABJzYTMwIHISc2EzMCBwH0CFDAf6Ip%2FdEGYqx%2FkzgDwRa1ASr%2BhXoW0wEM%2FqecAAACAH0DwQN%2FBbYABwAPAA20DAUPBwMAPzPGMjEwARcOAQcjEjchFwYDIzYSNwIECCiOWIGGRQItCl60fzl1HAW2Flv%2FhQEqyxbO%2Fu9%2BASVSAAL%2FnP74ApwA7gAGAA0ADLMLDQQAAC%2FNMzIxMCUXBgcjEjchFwYDIxI3ASMIcZ2Bfk4CKwlfsIGMP%2B4X6%2FQBHtgXzf7uATy6AAEAxwHsApED6QALAAixCQMAL80xMBM0NjMyFhUUBiMiJseTfVxelIBZXQKskaxiXI2yYwABAFgAcQItA74ABgAStgYAAwMBBQEALy8SOREzMzEwEwEXARMHA1gBh07%2B16xx5wJCAXxR%2FrL%2BgzEBtAABABcAcwHsA8EABgAStgAGAwMFAQUALy8SOREzMzEwCQEnAQM3EwHs%2FnhNASiscegB8P6DUgFNAX0y%2FksAAAAAAf4ZAAAC8AW2AAMACrMDAwISAD8%2FMTAJASMBAvD7wpkEPQW2%2BkoFtgAAAAACAFwCSgLfBbwACgAQACFADw0HBhABBQUJEBADBx4DIAA%2FPxI5LzMzETMRMxEzMTABIwcjNyE3ATMDMyMSNwYPAQLJgSt%2FK%2F6TFwHhhXl%2F%2FkUVFFrNAxTKymUCQ%2F3NAUJJJHH2AAAAAAEAP%2F%2FsBNcFyQAmAEtAKQsXGBdOWQgYBhwdHE1ZAx0PHR8dAgkDGB0YHRIhIQBMWSEHEg1MWRIZAD8rABg%2FKxESADk5GC8vX15dETMrEQAzETMrEQAzMTABIgYHIQchBgchByEQITI3FQYjIgI9ASM3MzY3IzczEgAzMhYXByYDoIzkSwGqGv5HFQsBfR3%2BlwEpe4V%2Fl9TpqhuaCBaXG59hAUXPWY5GUHEFMcbHhUFjg%2F6LN5M7AQv1DINQVIUBCwEaKzGKTgAAAAABAAAjAAABBdMYAAAKCvIABQAk%2F3EABQA3ACkABQA5ACkABQA6ACkABQA8ABQABQBE%2F64ABQBG%2F4UABQBH%2F4UABQBI%2F4UABQBK%2F8MABQBQ%2F8MABQBR%2F8MABQBS%2F4UABQBT%2F8MABQBU%2F4UABQBV%2F8MABQBW%2F8MABQBY%2F8MABQCC%2F3EABQCD%2F3EABQCE%2F3EABQCF%2F3EABQCG%2F3EABQCH%2F3EABQCfABQABQCi%2F4UABQCj%2F64ABQCk%2F64ABQCl%2F64ABQCm%2F64ABQCn%2F64ABQCo%2F64ABQCp%2F4UABQCq%2F4UABQCr%2F4UABQCs%2F4UABQCt%2F4UABQC0%2F4UABQC1%2F4UABQC2%2F4UABQC3%2F4UABQC4%2F4UABQC6%2F4UABQC7%2F8MABQC8%2F8MABQC9%2F8MABQC%2B%2F8MABQDE%2F4UACgAk%2F3EACgA3ACkACgA5ACkACgA6ACkACgA8ABQACgBE%2F64ACgBG%2F4UACgBH%2F4UACgBI%2F4UACgBK%2F8MACgBQ%2F8MACgBR%2F8MACgBS%2F4UACgBT%2F8MACgBU%2F4UACgBV%2F8MACgBW%2F8MACgBY%2F8MACgCC%2F3EACgCD%2F3EACgCE%2F3EACgCF%2F3EACgCG%2F3EACgCH%2F3EACgCfABQACgCi%2F4UACgCj%2F64ACgCk%2F64ACgCl%2F64ACgCm%2F64ACgCn%2F64ACgCo%2F64ACgCp%2F4UACgCq%2F4UACgCr%2F4UACgCs%2F4UACgCt%2F4UACgC0%2F4UACgC1%2F4UACgC2%2F4UACgC3%2F4UACgC4%2F4UACgC6%2F4UACgC7%2F8MACgC8%2F8MACgC9%2F8MACgC%2B%2F8MACgDE%2F4UACwAtALgADwAm%2F5oADwAq%2F5oADwAy%2F5oADwA0%2F5oADwA3%2F3EADwA4%2F9cADwA5%2F4UADwA6%2F4UADwA8%2F4UADwCJ%2F5oADwCU%2F5oADwCV%2F5oADwCW%2F5oADwCX%2F5oADwCY%2F5oADwCa%2F5oADwCb%2F9cADwCc%2F9cADwCd%2F9cADwCe%2F9cADwCf%2F4UADwDD%2F5oAEAA3%2F64AEQAm%2F5oAEQAq%2F5oAEQAy%2F5oAEQA0%2F5oAEQA3%2F3EAEQA4%2F9cAEQA5%2F4UAEQA6%2F4UAEQA8%2F4UAEQCJ%2F5oAEQCU%2F5oAEQCV%2F5oAEQCW%2F5oAEQCX%2F5oAEQCY%2F5oAEQCa%2F5oAEQCb%2F9cAEQCc%2F9cAEQCd%2F9cAEQCe%2F9cAEQCf%2F4UAEQDD%2F5oAJAAF%2F3EAJAAK%2F3EAJAAm%2F9cAJAAq%2F9cAJAAtAQoAJAAy%2F9cAJAA0%2F9cAJAA3%2F3EAJAA5%2F64AJAA6%2F64AJAA8%2F4UAJACJ%2F9cAJACU%2F9cAJACV%2F9cAJACW%2F9cAJACX%2F9cAJACY%2F9cAJACa%2F9cAJACf%2F4UAJADD%2F9cAJADL%2F3EAJADO%2F3EAJQAP%2F64AJQAR%2F64AJQAk%2F9cAJQA3%2F8MAJQA5%2F%2BwAJQA6%2F%2BwAJQA7%2F9cAJQA8%2F%2BwAJQA9%2F%2BwAJQCC%2F9cAJQCD%2F9cAJQCE%2F9cAJQCF%2F9cAJQCG%2F9cAJQCH%2F9cAJQCf%2F%2BwAJQDM%2F64AJQDP%2F64AJgAm%2F9cAJgAq%2F9cAJgAy%2F9cAJgA0%2F9cAJgCJ%2F9cAJgCU%2F9cAJgCV%2F9cAJgCW%2F9cAJgCX%2F9cAJgCY%2F9cAJgCa%2F9cAJgDD%2F9cAJwAP%2F64AJwAR%2F64AJwAk%2F9cAJwA3%2F8MAJwA5%2F%2BwAJwA6%2F%2BwAJwA7%2F9cAJwA8%2F%2BwAJwA9%2F%2BwAJwCC%2F9cAJwCD%2F9cAJwCE%2F9cAJwCF%2F9cAJwCG%2F9cAJwCH%2F9cAJwCf%2F%2BwAJwDM%2F64AJwDP%2F64AKAAtAHsAKQAP%2F4UAKQAR%2F4UAKQAiACkAKQAk%2F9cAKQCC%2F9cAKQCD%2F9cAKQCE%2F9cAKQCF%2F9cAKQCG%2F9cAKQCH%2F9cAKQDM%2F4UAKQDP%2F4UALgAm%2F9cALgAq%2F9cALgAy%2F9cALgA0%2F9cALgCJ%2F9cALgCU%2F9cALgCV%2F9cALgCW%2F9cALgCX%2F9cALgCY%2F9cALgCa%2F9cALgDD%2F9cALwAF%2F1wALwAK%2F1wALwAm%2F9cALwAq%2F9cALwAy%2F9cALwA0%2F9cALwA3%2F9cALwA4%2F%2BwALwA5%2F9cALwA6%2F9cALwA8%2F8MALwCJ%2F9cALwCU%2F9cALwCV%2F9cALwCW%2F9cALwCX%2F9cALwCY%2F9cALwCa%2F9cALwCb%2F%2BwALwCc%2F%2BwALwCd%2F%2BwALwCe%2F%2BwALwCf%2F8MALwDD%2F9cALwDL%2F1wALwDO%2F1wAMgAP%2F64AMgAR%2F64AMgAk%2F9cAMgA3%2F8MAMgA5%2F%2BwAMgA6%2F%2BwAMgA7%2F9cAMgA8%2F%2BwAMgA9%2F%2BwAMgCC%2F9cAMgCD%2F9cAMgCE%2F9cAMgCF%2F9cAMgCG%2F9cAMgCH%2F9cAMgCf%2F%2BwAMgDM%2F64AMgDP%2F64AMwAP%2FvYAMwAR%2FvYAMwAk%2F5oAMwA7%2F9cAMwA9%2F%2BwAMwCC%2F5oAMwCD%2F5oAMwCE%2F5oAMwCF%2F5oAMwCG%2F5oAMwCH%2F5oAMwDM%2FvYAMwDP%2FvYANAAP%2F64ANAAR%2F64ANAAk%2F9cANAA3%2F8MANAA5%2F%2BwANAA6%2F%2BwANAA7%2F9cANAA8%2F%2BwANAA9%2F%2BwANACC%2F9cANACD%2F9cANACE%2F9cANACF%2F9cANACG%2F9cANACH%2F9cANACf%2F%2BwANADM%2F64ANADP%2F64ANwAP%2F4UANwAQ%2F64ANwAR%2F4UANwAiACkANwAk%2F3EANwAm%2F9cANwAq%2F9cANwAy%2F9cANwA0%2F9cANwA3ACkANwBE%2F1wANwBG%2F3EANwBH%2F3EANwBI%2F3EANwBK%2F3EANwBQ%2F5oANwBR%2F5oANwBS%2F3EANwBT%2F5oANwBU%2F3EANwBV%2F5oANwBW%2F4UANwBY%2F5oANwBZ%2F9cANwBa%2F9cANwBb%2F9cANwBc%2F9cANwBd%2F64ANwCC%2F3EANwCD%2F3EANwCE%2F3EANwCF%2F3EANwCG%2F3EANwCH%2F3EANwCJ%2F9cANwCU%2F9cANwCV%2F9cANwCW%2F9cANwCX%2F9cANwCY%2F9cANwCa%2F9cANwCi%2F3EANwCj%2F1wANwCk%2F1wANwCl%2F1wANwCm%2F1wANwCn%2F1wANwCo%2F1wANwCp%2F3EANwCq%2F3EANwCr%2F3EANwCs%2F3EANwCt%2F3EANwC0%2F3EANwC1%2F3EANwC2%2F3EANwC3%2F3EANwC4%2F3EANwC6%2F3EANwC7%2F5oANwC8%2F5oANwC9%2F5oANwC%2B%2F5oANwC%2F%2F9cANwDD%2F9cANwDE%2F3EANwDI%2F64ANwDJ%2F64ANwDM%2F4UANwDP%2F4UAOAAP%2F9cAOAAR%2F9cAOAAk%2F%2BwAOACC%2F%2BwAOACD%2F%2BwAOACE%2F%2BwAOACF%2F%2BwAOACG%2F%2BwAOACH%2F%2BwAOADM%2F9cAOADP%2F9cAOQAP%2F5oAOQAR%2F5oAOQAiACkAOQAk%2F64AOQAm%2F%2BwAOQAq%2F%2BwAOQAy%2F%2BwAOQA0%2F%2BwAOQBE%2F9cAOQBG%2F9cAOQBH%2F9cAOQBI%2F9cAOQBK%2F%2BwAOQBQ%2F%2BwAOQBR%2F%2BwAOQBS%2F9cAOQBT%2F%2BwAOQBU%2F9cAOQBV%2F%2BwAOQBW%2F%2BwAOQBY%2F%2BwAOQCC%2F64AOQCD%2F64AOQCE%2F64AOQCF%2F64AOQCG%2F64AOQCH%2F64AOQCJ%2F%2BwAOQCU%2F%2BwAOQCV%2F%2BwAOQCW%2F%2BwAOQCX%2F%2BwAOQCY%2F%2BwAOQCa%2F%2BwAOQCi%2F9cAOQCj%2F9cAOQCk%2F9cAOQCl%2F9cAOQCm%2F9cAOQCn%2F9cAOQCo%2F9cAOQCp%2F9cAOQCq%2F9cAOQCr%2F9cAOQCs%2F9cAOQCt%2F9cAOQC0%2F9cAOQC1%2F9cAOQC2%2F9cAOQC3%2F9cAOQC4%2F9cAOQC6%2F9cAOQC7%2F%2BwAOQC8%2F%2BwAOQC9%2F%2BwAOQC%2B%2F%2BwAOQDD%2F%2BwAOQDE%2F9cAOQDM%2F5oAOQDP%2F5oAOgAP%2F5oAOgAR%2F5oAOgAiACkAOgAk%2F64AOgAm%2F%2BwAOgAq%2F%2BwAOgAy%2F%2BwAOgA0%2F%2BwAOgBE%2F9cAOgBG%2F9cAOgBH%2F9cAOgBI%2F9cAOgBK%2F%2BwAOgBQ%2F%2BwAOgBR%2F%2BwAOgBS%2F9cAOgBT%2F%2BwAOgBU%2F9cAOgBV%2F%2BwAOgBW%2F%2BwAOgBY%2F%2BwAOgCC%2F64AOgCD%2F64AOgCE%2F64AOgCF%2F64AOgCG%2F64AOgCH%2F64AOgCJ%2F%2BwAOgCU%2F%2BwAOgCV%2F%2BwAOgCW%2F%2BwAOgCX%2F%2BwAOgCY%2F%2BwAOgCa%2F%2BwAOgCi%2F9cAOgCj%2F9cAOgCk%2F9cAOgCl%2F9cAOgCm%2F9cAOgCn%2F9cAOgCo%2F9cAOgCp%2F9cAOgCq%2F9cAOgCr%2F9cAOgCs%2F9cAOgCt%2F9cAOgC0%2F9cAOgC1%2F9cAOgC2%2F9cAOgC3%2F9cAOgC4%2F9cAOgC6%2F9cAOgC7%2F%2BwAOgC8%2F%2BwAOgC9%2F%2BwAOgC%2B%2F%2BwAOgDD%2F%2BwAOgDE%2F9cAOgDM%2F5oAOgDP%2F5oAOwAm%2F9cAOwAq%2F9cAOwAy%2F9cAOwA0%2F9cAOwCJ%2F9cAOwCU%2F9cAOwCV%2F9cAOwCW%2F9cAOwCX%2F9cAOwCY%2F9cAOwCa%2F9cAOwDD%2F9cAPAAP%2F4UAPAAR%2F4UAPAAiACkAPAAk%2F4UAPAAm%2F9cAPAAq%2F9cAPAAy%2F9cAPAA0%2F9cAPABE%2F5oAPABG%2F5oAPABH%2F5oAPABI%2F5oAPABK%2F9cAPABQ%2F8MAPABR%2F8MAPABS%2F5oAPABT%2F8MAPABU%2F5oAPABV%2F8MAPABW%2F64APABY%2F8MAPABd%2F9cAPACC%2F4UAPACD%2F4UAPACE%2F4UAPACF%2F4UAPACG%2F4UAPACH%2F4UAPACJ%2F9cAPACU%2F9cAPACV%2F9cAPACW%2F9cAPACX%2F9cAPACY%2F9cAPACa%2F9cAPACi%2F5oAPACj%2F5oAPACk%2F5oAPACl%2F5oAPACm%2F5oAPACn%2F5oAPACo%2F5oAPACp%2F5oAPACq%2F5oAPACr%2F5oAPACs%2F5oAPACt%2F5oAPAC0%2F5oAPAC1%2F5oAPAC2%2F5oAPAC3%2F5oAPAC4%2F5oAPAC6%2F5oAPAC7%2F8MAPAC8%2F8MAPAC9%2F8MAPAC%2B%2F8MAPADD%2F9cAPADE%2F5oAPADM%2F4UAPADP%2F4UAPQAm%2F%2BwAPQAq%2F%2BwAPQAy%2F%2BwAPQA0%2F%2BwAPQCJ%2F%2BwAPQCU%2F%2BwAPQCV%2F%2BwAPQCW%2F%2BwAPQCX%2F%2BwAPQCY%2F%2BwAPQCa%2F%2BwAPQDD%2F%2BwAPgAtALgARAAF%2F%2BwARAAK%2F%2BwARADL%2F%2BwARADO%2F%2BwARQAF%2F%2BwARQAK%2F%2BwARQBZ%2F9cARQBa%2F9cARQBb%2F9cARQBc%2F9cARQBd%2F%2BwARQC%2F%2F9cARQDL%2F%2BwARQDO%2F%2BwARgAFACkARgAKACkARgDLACkARgDOACkASAAF%2F%2BwASAAK%2F%2BwASABZ%2F9cASABa%2F9cASABb%2F9cASABc%2F9cASABd%2F%2BwASAC%2F%2F9cASADL%2F%2BwASADO%2F%2BwASQAFAHsASQAKAHsASQDLAHsASQDOAHsASwAF%2F%2BwASwAK%2F%2BwASwDL%2F%2BwASwDO%2F%2BwATgBG%2F9cATgBH%2F9cATgBI%2F9cATgBS%2F9cATgBU%2F9cATgCi%2F9cATgCp%2F9cATgCq%2F9cATgCr%2F9cATgCs%2F9cATgCt%2F9cATgC0%2F9cATgC1%2F9cATgC2%2F9cATgC3%2F9cATgC4%2F9cATgC6%2F9cATgDE%2F9cAUAAF%2F%2BwAUAAK%2F%2BwAUADL%2F%2BwAUADO%2F%2BwAUQAF%2F%2BwAUQAK%2F%2BwAUQDL%2F%2BwAUQDO%2F%2BwAUgAF%2F%2BwAUgAK%2F%2BwAUgBZ%2F9cAUgBa%2F9cAUgBb%2F9cAUgBc%2F9cAUgBd%2F%2BwAUgC%2F%2F9cAUgDL%2F%2BwAUgDO%2F%2BwAUwAF%2F%2BwAUwAK%2F%2BwAUwBZ%2F9cAUwBa%2F9cAUwBb%2F9cAUwBc%2F9cAUwBd%2F%2BwAUwC%2F%2F9cAUwDL%2F%2BwAUwDO%2F%2BwAVQAFAFIAVQAKAFIAVQBE%2F9cAVQBG%2F9cAVQBH%2F9cAVQBI%2F9cAVQBK%2F%2BwAVQBS%2F9cAVQBU%2F9cAVQCi%2F9cAVQCj%2F9cAVQCk%2F9cAVQCl%2F9cAVQCm%2F9cAVQCn%2F9cAVQCo%2F9cAVQCp%2F9cAVQCq%2F9cAVQCr%2F9cAVQCs%2F9cAVQCt%2F9cAVQC0%2F9cAVQC1%2F9cAVQC2%2F9cAVQC3%2F9cAVQC4%2F9cAVQC6%2F9cAVQDE%2F9cAVQDLAFIAVQDOAFIAVwAFACkAVwAKACkAVwDLACkAVwDOACkAWQAFAFIAWQAKAFIAWQAP%2F64AWQAR%2F64AWQAiACkAWQDLAFIAWQDM%2F64AWQDOAFIAWQDP%2F64AWgAFAFIAWgAKAFIAWgAP%2F64AWgAR%2F64AWgAiACkAWgDLAFIAWgDM%2F64AWgDOAFIAWgDP%2F64AWwBG%2F9cAWwBH%2F9cAWwBI%2F9cAWwBS%2F9cAWwBU%2F9cAWwCi%2F9cAWwCp%2F9cAWwCq%2F9cAWwCr%2F9cAWwCs%2F9cAWwCt%2F9cAWwC0%2F9cAWwC1%2F9cAWwC2%2F9cAWwC3%2F9cAWwC4%2F9cAWwC6%2F9cAWwDE%2F9cAXAAFAFIAXAAKAFIAXAAP%2F64AXAAR%2F64AXAAiACkAXADLAFIAXADM%2F64AXADOAFIAXADP%2F64AXgAtALgAggAF%2F3EAggAK%2F3EAggAm%2F9cAggAq%2F9cAggAtAQoAggAy%2F9cAggA0%2F9cAggA3%2F3EAggA5%2F64AggA6%2F64AggA8%2F4UAggCJ%2F9cAggCU%2F9cAggCV%2F9cAggCW%2F9cAggCX%2F9cAggCY%2F9cAggCa%2F9cAggCf%2F4UAggDD%2F9cAggDL%2F3EAggDO%2F3EAgwAF%2F3EAgwAK%2F3EAgwAm%2F9cAgwAq%2F9cAgwAtAQoAgwAy%2F9cAgwA0%2F9cAgwA3%2F3EAgwA5%2F64AgwA6%2F64AgwA8%2F4UAgwCJ%2F9cAgwCU%2F9cAgwCV%2F9cAgwCW%2F9cAgwCX%2F9cAgwCY%2F9cAgwCa%2F9cAgwCf%2F4UAgwDD%2F9cAgwDL%2F3EAgwDO%2F3EAhAAF%2F3EAhAAK%2F3EAhAAm%2F9cAhAAq%2F9cAhAAtAQoAhAAy%2F9cAhAA0%2F9cAhAA3%2F3EAhAA5%2F64AhAA6%2F64AhAA8%2F4UAhACJ%2F9cAhACU%2F9cAhACV%2F9cAhACW%2F9cAhACX%2F9cAhACY%2F9cAhACa%2F9cAhACf%2F4UAhADD%2F9cAhADL%2F3EAhADO%2F3EAhQAF%2F3EAhQAK%2F3EAhQAm%2F9cAhQAq%2F9cAhQAtAQoAhQAy%2F9cAhQA0%2F9cAhQA3%2F3EAhQA5%2F64AhQA6%2F64AhQA8%2F4UAhQCJ%2F9cAhQCU%2F9cAhQCV%2F9cAhQCW%2F9cAhQCX%2F9cAhQCY%2F9cAhQCa%2F9cAhQCf%2F4UAhQDD%2F9cAhQDL%2F3EAhQDO%2F3EAhgAF%2F3EAhgAK%2F3EAhgAm%2F9cAhgAq%2F9cAhgAtAQoAhgAy%2F9cAhgA0%2F9cAhgA3%2F3EAhgA5%2F64AhgA6%2F64AhgA8%2F4UAhgCJ%2F9cAhgCU%2F9cAhgCV%2F9cAhgCW%2F9cAhgCX%2F9cAhgCY%2F9cAhgCa%2F9cAhgCf%2F4UAhgDD%2F9cAhgDL%2F3EAhgDO%2F3EAhwAF%2F3EAhwAK%2F3EAhwAm%2F9cAhwAq%2F9cAhwAtAQoAhwAy%2F9cAhwA0%2F9cAhwA3%2F3EAhwA5%2F64AhwA6%2F64AhwA8%2F4UAhwCJ%2F9cAhwCU%2F9cAhwCV%2F9cAhwCW%2F9cAhwCX%2F9cAhwCY%2F9cAhwCa%2F9cAhwCf%2F4UAhwDD%2F9cAhwDL%2F3EAhwDO%2F3EAiAAtAHsAiQAm%2F9cAiQAq%2F9cAiQAy%2F9cAiQA0%2F9cAiQCJ%2F9cAiQCU%2F9cAiQCV%2F9cAiQCW%2F9cAiQCX%2F9cAiQCY%2F9cAiQCa%2F9cAiQDD%2F9cAigAtAHsAiwAtAHsAjAAtAHsAjQAtAHsAkgAP%2F64AkgAR%2F64AkgAk%2F9cAkgA3%2F8MAkgA5%2F%2BwAkgA6%2F%2BwAkgA7%2F9cAkgA8%2F%2BwAkgA9%2F%2BwAkgCC%2F9cAkgCD%2F9cAkgCE%2F9cAkgCF%2F9cAkgCG%2F9cAkgCH%2F9cAkgCf%2F%2BwAkgDM%2F64AkgDP%2F64AlAAP%2F64AlAAR%2F64AlAAk%2F9cAlAA3%2F8MAlAA5%2F%2BwAlAA6%2F%2BwAlAA7%2F9cAlAA8%2F%2BwAlAA9%2F%2BwAlACC%2F9cAlACD%2F9cAlACE%2F9cAlACF%2F9cAlACG%2F9cAlACH%2F9cAlACf%2F%2BwAlADM%2F64AlADP%2F64AlQAP%2F64AlQAR%2F64AlQAk%2F9cAlQA3%2F8MAlQA5%2F%2BwAlQA6%2F%2BwAlQA7%2F9cAlQA8%2F%2BwAlQA9%2F%2BwAlQCC%2F9cAlQCD%2F9cAlQCE%2F9cAlQCF%2F9cAlQCG%2F9cAlQCH%2F9cAlQCf%2F%2BwAlQDM%2F64AlQDP%2F64AlgAP%2F64AlgAR%2F64AlgAk%2F9cAlgA3%2F8MAlgA5%2F%2BwAlgA6%2F%2BwAlgA7%2F9cAlgA8%2F%2BwAlgA9%2F%2BwAlgCC%2F9cAlgCD%2F9cAlgCE%2F9cAlgCF%2F9cAlgCG%2F9cAlgCH%2F9cAlgCf%2F%2BwAlgDM%2F64AlgDP%2F64AlwAP%2F64AlwAR%2F64AlwAk%2F9cAlwA3%2F8MAlwA5%2F%2BwAlwA6%2F%2BwAlwA7%2F9cAlwA8%2F%2BwAlwA9%2F%2BwAlwCC%2F9cAlwCD%2F9cAlwCE%2F9cAlwCF%2F9cAlwCG%2F9cAlwCH%2F9cAlwCf%2F%2BwAlwDM%2F64AlwDP%2F64AmAAP%2F64AmAAR%2F64AmAAk%2F9cAmAA3%2F8MAmAA5%2F%2BwAmAA6%2F%2BwAmAA7%2F9cAmAA8%2F%2BwAmAA9%2F%2BwAmACC%2F9cAmACD%2F9cAmACE%2F9cAmACF%2F9cAmACG%2F9cAmACH%2F9cAmACf%2F%2BwAmADM%2F64AmADP%2F64AmgAP%2F64AmgAR%2F64AmgAk%2F9cAmgA3%2F8MAmgA5%2F%2BwAmgA6%2F%2BwAmgA7%2F9cAmgA8%2F%2BwAmgA9%2F%2BwAmgCC%2F9cAmgCD%2F9cAmgCE%2F9cAmgCF%2F9cAmgCG%2F9cAmgCH%2F9cAmgCf%2F%2BwAmgDM%2F64AmgDP%2F64AmwAP%2F9cAmwAR%2F9cAmwAk%2F%2BwAmwCC%2F%2BwAmwCD%2F%2BwAmwCE%2F%2BwAmwCF%2F%2BwAmwCG%2F%2BwAmwCH%2F%2BwAmwDM%2F9cAmwDP%2F9cAnAAP%2F9cAnAAR%2F9cAnAAk%2F%2BwAnACC%2F%2BwAnACD%2F%2BwAnACE%2F%2BwAnACF%2F%2BwAnACG%2F%2BwAnACH%2F%2BwAnADM%2F9cAnADP%2F9cAnQAP%2F9cAnQAR%2F9cAnQAk%2F%2BwAnQCC%2F%2BwAnQCD%2F%2BwAnQCE%2F%2BwAnQCF%2F%2BwAnQCG%2F%2BwAnQCH%2F%2BwAnQDM%2F9cAnQDP%2F9cAngAP%2F9cAngAR%2F9cAngAk%2F%2BwAngCC%2F%2BwAngCD%2F%2BwAngCE%2F%2BwAngCF%2F%2BwAngCG%2F%2BwAngCH%2F%2BwAngDM%2F9cAngDP%2F9cAnwAP%2F4UAnwAR%2F4UAnwAiACkAnwAk%2F4UAnwAm%2F9cAnwAq%2F9cAnwAy%2F9cAnwA0%2F9cAnwBE%2F5oAnwBG%2F5oAnwBH%2F5oAnwBI%2F5oAnwBK%2F9cAnwBQ%2F8MAnwBR%2F8MAnwBS%2F5oAnwBT%2F8MAnwBU%2F5oAnwBV%2F8MAnwBW%2F64AnwBY%2F8MAnwBd%2F9cAnwCC%2F4UAnwCD%2F4UAnwCE%2F4UAnwCF%2F4UAnwCG%2F4UAnwCH%2F4UAnwCJ%2F9cAnwCU%2F9cAnwCV%2F9cAnwCW%2F9cAnwCX%2F9cAnwCY%2F9cAnwCa%2F9cAnwCi%2F5oAnwCj%2F5oAnwCk%2F5oAnwCl%2F5oAnwCm%2F5oAnwCn%2F5oAnwCo%2F5oAnwCp%2F5oAnwCq%2F5oAnwCr%2F5oAnwCs%2F5oAnwCt%2F5oAnwC0%2F5oAnwC1%2F5oAnwC2%2F5oAnwC3%2F5oAnwC4%2F5oAnwC6%2F5oAnwC7%2F8MAnwC8%2F8MAnwC9%2F8MAnwC%2B%2F8MAnwDD%2F9cAnwDE%2F5oAnwDM%2F4UAnwDP%2F4UAoAAP%2FvYAoAAR%2FvYAoAAk%2F5oAoAA7%2F9cAoAA9%2F%2BwAoACC%2F5oAoACD%2F5oAoACE%2F5oAoACF%2F5oAoACG%2F5oAoACH%2F5oAoADM%2FvYAoADP%2FvYAogAF%2F%2BwAogAK%2F%2BwAogDL%2F%2BwAogDO%2F%2BwAowAF%2F%2BwAowAK%2F%2BwAowDL%2F%2BwAowDO%2F%2BwApAAF%2F%2BwApAAK%2F%2BwApADL%2F%2BwApADO%2F%2BwApQAF%2F%2BwApQAK%2F%2BwApQDL%2F%2BwApQDO%2F%2BwApgAF%2F%2BwApgAK%2F%2BwApgDL%2F%2BwApgDO%2F%2BwApwAF%2F%2BwApwAK%2F%2BwApwDL%2F%2BwApwDO%2F%2BwAqgAF%2F%2BwAqgAK%2F%2BwAqgBZ%2F9cAqgBa%2F9cAqgBb%2F9cAqgBc%2F9cAqgBd%2F%2BwAqgC%2F%2F9cAqgDL%2F%2BwAqgDO%2F%2BwAqwAF%2F%2BwAqwAK%2F%2BwAqwBZ%2F9cAqwBa%2F9cAqwBb%2F9cAqwBc%2F9cAqwBd%2F%2BwAqwC%2F%2F9cAqwDL%2F%2BwAqwDO%2F%2BwArAAF%2F%2BwArAAK%2F%2BwArABZ%2F9cArABa%2F9cArABb%2F9cArABc%2F9cArABd%2F%2BwArAC%2F%2F9cArADL%2F%2BwArADO%2F%2BwArQAF%2F%2BwArQAK%2F%2BwArQBZ%2F9cArQBa%2F9cArQBb%2F9cArQBc%2F9cArQBd%2F%2BwArQC%2F%2F9cArQDL%2F%2BwArQDO%2F%2BwAsgAF%2F%2BwAsgAK%2F%2BwAsgBZ%2F9cAsgBa%2F9cAsgBb%2F9cAsgBc%2F9cAsgBd%2F%2BwAsgC%2F%2F9cAsgDL%2F%2BwAsgDO%2F%2BwAtAAF%2F%2BwAtAAK%2F%2BwAtABZ%2F9cAtABa%2F9cAtABb%2F9cAtABc%2F9cAtABd%2F%2BwAtAC%2F%2F9cAtADL%2F%2BwAtADO%2F%2BwAtQAF%2F%2BwAtQAK%2F%2BwAtQBZ%2F9cAtQBa%2F9cAtQBb%2F9cAtQBc%2F9cAtQBd%2F%2BwAtQC%2F%2F9cAtQDL%2F%2BwAtQDO%2F%2BwAtgAF%2F%2BwAtgAK%2F%2BwAtgBZ%2F9cAtgBa%2F9cAtgBb%2F9cAtgBc%2F9cAtgBd%2F%2BwAtgC%2F%2F9cAtgDL%2F%2BwAtgDO%2F%2BwAuAAF%2F9cAuAAK%2F9cAuADL%2F9cAuADO%2F9cAugAF%2F%2BwAugAK%2F%2BwAugBZ%2F9cAugBa%2F9cAugBb%2F9cAugBc%2F9cAugBd%2F%2BwAugC%2F%2F9cAugDL%2F%2BwAugDO%2F%2BwAvwAFAFIAvwAKAFIAvwAP%2F64AvwAR%2F64AvwAiACkAvwDLAFIAvwDM%2F64AvwDOAFIAvwDP%2F64AwAAF%2F%2BwAwAAK%2F%2BwAwABZ%2F9cAwABa%2F9cAwABb%2F9cAwABc%2F9cAwABd%2F%2BwAwAC%2F%2F9cAwADL%2F%2BwAwADO%2F%2BwAwQAFAFIAwQAKAFIAwQAP%2F64AwQAR%2F64AwQAiACkAwQDLAFIAwQDM%2F64AwQDOAFIAwQDP%2F64AwwAtAHsAyAA3%2F64AyQA3%2F64AygAk%2F3EAygA3ACkAygA5ACkAygA6ACkAygA8ABQAygBE%2F64AygBG%2F4UAygBH%2F4UAygBI%2F4UAygBK%2F8MAygBQ%2F8MAygBR%2F8MAygBS%2F4UAygBT%2F8MAygBU%2F4UAygBV%2F8MAygBW%2F8MAygBY%2F8MAygCC%2F3EAygCD%2F3EAygCE%2F3EAygCF%2F3EAygCG%2F3EAygCH%2F3EAygCfABQAygCi%2F4UAygCj%2F64AygCk%2F64AygCl%2F64AygCm%2F64AygCn%2F64AygCo%2F64AygCp%2F4UAygCq%2F4UAygCr%2F4UAygCs%2F4UAygCt%2F4UAygC0%2F4UAygC1%2F4UAygC2%2F4UAygC3%2F4UAygC4%2F4UAygC6%2F4UAygC7%2F8MAygC8%2F8MAygC9%2F8MAygC%2B%2F8MAygDE%2F4UAywAk%2F3EAywA3ACkAywA5ACkAywA6ACkAywA8ABQAywBE%2F64AywBG%2F4UAywBH%2F4UAywBI%2F4UAywBK%2F8MAywBQ%2F8MAywBR%2F8MAywBS%2F4UAywBT%2F8MAywBU%2F4UAywBV%2F8MAywBW%2F8MAywBY%2F8MAywCC%2F3EAywCD%2F3EAywCE%2F3EAywCF%2F3EAywCG%2F3EAywCH%2F3EAywCfABQAywCi%2F4UAywCj%2F64AywCk%2F64AywCl%2F64AywCm%2F64AywCn%2F64AywCo%2F64AywCp%2F4UAywCq%2F4UAywCr%2F4UAywCs%2F4UAywCt%2F4UAywC0%2F4UAywC1%2F4UAywC2%2F4UAywC3%2F4UAywC4%2F4UAywC6%2F4UAywC7%2F8MAywC8%2F8MAywC9%2F8MAywC%2B%2F8MAywDE%2F4UAzAAm%2F5oAzAAq%2F5oAzAAy%2F5oAzAA0%2F5oAzAA3%2F3EAzAA4%2F9cAzAA5%2F4UAzAA6%2F4UAzAA8%2F4UAzACJ%2F5oAzACU%2F5oAzACV%2F5oAzACW%2F5oAzACX%2F5oAzACY%2F5oAzACa%2F5oAzACb%2F9cAzACc%2F9cAzACd%2F9cAzACe%2F9cAzACf%2F4UAzADD%2F5oAzQAk%2F3EAzQA3ACkAzQA5ACkAzQA6ACkAzQA8ABQAzQBE%2F64AzQBG%2F4UAzQBH%2F4UAzQBI%2F4UAzQBK%2F8MAzQBQ%2F8MAzQBR%2F8MAzQBS%2F4UAzQBT%2F8MAzQBU%2F4UAzQBV%2F8MAzQBW%2F8MAzQBY%2F8MAzQCC%2F3EAzQCD%2F3EAzQCE%2F3EAzQCF%2F3EAzQCG%2F3EAzQCH%2F3EAzQCfABQAzQCi%2F4UAzQCj%2F64AzQCk%2F64AzQCl%2F64AzQCm%2F64AzQCn%2F64AzQCo%2F64AzQCp%2F4UAzQCq%2F4UAzQCr%2F4UAzQCs%2F4UAzQCt%2F4UAzQC0%2F4UAzQC1%2F4UAzQC2%2F4UAzQC3%2F4UAzQC4%2F4UAzQC6%2F4UAzQC7%2F8MAzQC8%2F8MAzQC9%2F8MAzQC%2B%2F8MAzQDE%2F4UAzwAm%2F5oAzwAq%2F5oAzwAy%2F5oAzwA0%2F5oAzwA3%2F3EAzwA4%2F9cAzwA5%2F4UAzwA6%2F4UAzwA8%2F4UAzwCJ%2F5oAzwCU%2F5oAzwCV%2F5oAzwCW%2F5oAzwCX%2F5oAzwCY%2F5oAzwCa%2F5oAzwCb%2F9cAzwCc%2F9cAzwCd%2F9cAzwCe%2F9cAzwCf%2F4UAzwDD%2F5oAAAAaAT4AAQAAAAAAAAA5AHQAAQAAAAAAAQAJAMIAAQAAAAAAAgAGANoAAQAAAAAAAwAlAS0AAQAAAAAABAAQAXUAAQAAAAAABQAMAaAAAQAAAAAABgAPAc0AAQAAAAAABwBSAoMAAQAAAAAACAAUAwAAAQAAAAAACwAcA08AAQAAAAAADAAuA8oAAQAAAAAADQAuBFcAAQAAAAAADgAqBNwAAwABBAkAAAByAAAAAwABBAkAAQASAK4AAwABBAkAAgAMAMwAAwABBAkAAwBKAOEAAwABBAkABAAgAVMAAwABBAkABQAYAYYAAwABBAkABgAeAa0AAwABBAkABwCkAd0AAwABBAkACAAoAtYAAwABBAkACwA4AxUAAwABBAkADABcA2wAAwABBAkADQBcA%2FkAAwABBAkADgBUBIYARABpAGcAaQB0AGkAegBlAGQAIABkAGEAdABhACAAYwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADEAMAAtADIAMAAxADEALAAgAEcAbwBvAGcAbABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4AAERpZ2l0aXplZCBkYXRhIGNvcHlyaWdodCCpIDIwMTAtMjAxMSwgR29vZ2xlIENvcnBvcmF0aW9uLgAATwBwAGUAbgAgAFMAYQBuAHMAAE9wZW4gU2FucwAASQB0AGEAbABpAGMAAEl0YWxpYwAAQQBzAGMAZQBuAGQAZQByACAALQAgAE8AcABlAG4AIABTAGEAbgBzACAASQB0AGEAbABpAGMAIABCAHUAaQBsAGQAIAAxADAAMAAAQXNjZW5kZXIgLSBPcGVuIFNhbnMgSXRhbGljIEJ1aWxkIDEwMAAATwBwAGUAbgAgAFMAYQBuAHMAIABJAHQAYQBsAGkAYwAAT3BlbiBTYW5zIEl0YWxpYwAAVgBlAHIAcwBpAG8AbgAgADEALgAxADAAAFZlcnNpb24gMS4xMAAATwBwAGUAbgBTAGEAbgBzAC0ASQB0AGEAbABpAGMAAE9wZW5TYW5zLUl0YWxpYwAATwBwAGUAbgAgAFMAYQBuAHMAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABHAG8AbwBnAGwAZQAgAGEAbgBkACAAbQBhAHkAIABiAGUAIAByAGUAZwBpAHMAdABlAHIAZQBkACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuAHMALgAAT3BlbiBTYW5zIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZSBhbmQgbWF5IGJlIHJlZ2lzdGVyZWQgaW4gY2VydGFpbiBqdXJpc2RpY3Rpb25zLgAAQQBzAGMAZQBuAGQAZQByACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAABBc2NlbmRlciBDb3Jwb3JhdGlvbgAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcwBjAGUAbgBkAGUAcgBjAG8AcgBwAC4AYwBvAG0ALwAAaHR0cDovL3d3dy5hc2NlbmRlcmNvcnAuY29tLwAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcwBjAGUAbgBkAGUAcgBjAG8AcgBwAC4AYwBvAG0ALwB0AHkAcABlAGQAZQBzAGkAZwBuAGUAcgBzAC4AaAB0AG0AbAAAaHR0cDovL3d3dy5hc2NlbmRlcmNvcnAuY29tL3R5cGVkZXNpZ25lcnMuaHRtbAAATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMAAATGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMAAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAAAAAAAAgAA%2F%2FQAAP9mAGYAAAAAAAAAAAAAAAAAAAAAAAAAAADWAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA%2BAD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCsAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAQIAigEDAIMAkwDyAPMAjQCXAIgAwwDeAPEAngCqAPUA9AD2AKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAPAAkQDWANQA1QBoAOsA7QCJAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA6gB4AHoAeQB7AH0AfAC4AKEAfwB%2BAIAAgQDsAO4AugDXALAAsQDYAN0A2QCyALMAtgC3AMQAtAC1AMUAhwC%2BAL8AvAEEAQUHdW5pMDBBRAlvdmVyc2NvcmUMZm91cnN1cGVyaW9yBEV1cm8AAAABAAMACAAKAA0AB%2F%2F%2FAA8AAAABAAAAAMmJbzEAAAAAyWNIwAAAAADJ7dha%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20italic%3B%0Afont%2Dweight%3A%20600%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAQAQAABAAARkZUTVzakCwAAIdAAAAAHE9TLzKiF7fYAAABiAAAAGBjbWFwjOjcmQAABUAAAAGyY3Z0IBCQGPYAAA%2FAAAAApmZwZ21%2BYbYRAAAG9AAAB7RnYXNwAAgAGwAAhzQAAAAMZ2x5ZlP99RUAABIYAABI%2BGhlYWT4yBTmAAABDAAAADZoaGVhDlsE5gAAAUQAAAAkaG10eH8IOQoAAAHoAAADWGtlcm4Mlg8JAABbEAAAIwRsb2NhVbZEUAAAEGgAAAGubWF4cAJpAQYAAAFoAAAAIG5hbWUVGrLBAAB%2BFAAAByxwb3N0gmzp1QAAhUAAAAHycHJlcHisnCUAAA6oAAABGAABAAAAARmaflhYuV8PPPUAHwgAAAAAAMnt2GQAAAAAye3YZP4C%2FhQHtAdzAAMACAACAAAAAAAAAAEAAAiN%2FagAAAgA%2FgL%2BBAe0AGQAFQAAAAAAAAAAAAAAAADWAAEAAADWAEUABQA8AAQAAgAQAC8AXAAAARoAUwADAAEAAwQvAlgABQAIBZoFMwAAAR8FmgUzAAAD0QBmAgAAAAILBwYDCAQCAgTgAALvQAAgWwAAACgAAAAAMUFTQwAhACAgrAYf%2FhQAhAiNAlggAAGfAAAAAARSBbYAAAAgAAEIAAAAAAAAAAQUAAACFAAAAi0AIQNaANUFKwAzBGgAPQaYAI0FgwBCAeMA1QJ%2FAE4Cf%2F9mBGIAwQRoAHUCEv%2BaAokALwInACEDFP%2BkBGgAXARoAPIEaP%2FuBGgAHwRo%2F%2FwEaAA1BGgAbwRoAH0EaABMBGgAXAInACECJ%2F%2BcBGgAcwRoAHUEaABzA4sAogbPAGQEuv%2BHBN8ARgTJAIcFXgBGBDUARgQCAEYFdwCHBYMARgJgAEYCZP6%2BBK4ARgP4AEYG3QBEBdMARAXNAIcElgBGBc0AhwS2AEYEIQAnBB0AsAV3AJgEjQC6BvwAywR%2F%2F5EERAC6BET%2F2QJ3%2F%2BUDFADdAnf%2FcQQtACUDLf9EBG8CHQSiAF4EsAAvA7oAXgSuAF4EMwBeAr7%2FHwQr%2F4cEuAAvAjMALwIz%2FvoEOQAvAjMALwcbAC8EuAAvBJYAXgSw%2F8kErgBeA0QALwOaAA4C8ABcBLgAbwPlAGQGBAB5BAj%2FqgPs%2F1YDmP%2FZAtEACARoAfIC0f%2BoBGgAbwIUAAACLf%2FTBGgAwwRo%2F%2B4EaACNBGgAagRoAfID4wAnBG8BqgaoAIMC2QCgBB8AUARoAHUCiQAvBqgAgwOHAG8DbQC8BGgAdQLpAE4C6QBoBG8B%2FATF%2F8kFPQCsAicAlgGk%2F0QC6QDBAtEApAQfAAoGfQCVBn0AeQaTAGwDi%2F%2FdBLr%2FhwS6%2F4cEuv%2BHBLr%2FhwS6%2F4cEuv%2BHBtn%2FhwTJAIcENQBGBDUARgQ1AEYENQBGAmAARgJgAEYCYABGAmAARgVeADUF0wBEBc0AhwXNAIcFzQCHBc0AhwXNAIcEaACTBc0AbQV3AJgFdwCYBXcAmAV3AJgERAC6BJYARgTy%2Fv4EogBeBKIAXgSiAF4EogBeBKIAXgSiAF4GvgBeA7oAXgQzAF4EMwBeBDMAXgQzAF4CMwAvAjMALwIzAC8CMwAvBJYAUAS4AC8ElgBeBJYAXgSWAF4ElgBeBJYAXgRoAHUElgAzBLgAbwS4AG8EuABvBLgAbwPs%2F1YEsP%2FJA%2Bz%2FVgIzAC8HBgCHBvwAXgRvAWIEngIdBG8BRgPXAC8HrgAvAYkAdwGJAHMCEv%2BaAyMAdwMjAHMDqv%2BaAvQAmAJtAFACbQAKAQb%2BAgLpAEYEaAAzAAAAAwAAAAMAAAAcAAEAAAAAAKwAAwABAAAAHAAEAJAAAAAgACAABAAAAH4A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCs%2F%2F8AAAAgAKABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrP%2F%2F%2F%2BP%2Fwv%2BR%2F3H9%2F%2F3s%2FevgteCy4LHgruCY4I%2FgYOApAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAEAAAAAAAAAAQIAAAACAAAAAAAAAAAAAAAAAAAAAQAAAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0%2BP0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGEAhoeJi5OYnqOipKalp6mrqqytr66wsbO1tLa4t7y7vb4AcmRladB4oXBrAHZqAIiaAHMAAGd3AAAAAABsfACouoFjbgAAAABtfQBigoWXw8TIyc3Oysu5AMEA09XR0gAAAHnMzwCEjIONio%2BQkY6VlgCUnJ2bwsXHcQAAxnoAAAAAAEBHW1pZWFVUU1JRUE9OTUxLSklIR0ZFRENCQUA%2FPj08Ozo5ODc2NTEwLy4tLCgnJiUkIyIhHxgUERAPDg0LCgkIBwYFBAMCAQAsILABYEWwAyUgEUZhI0UjYUgtLCBFGGhELSxFI0ZgsCBhILBGYLAEJiNISC0sRSNGI2GwIGAgsCZhsCBhsAQmI0hILSxFI0ZgsEBhILBmYLAEJiNISC0sRSNGI2GwQGAgsCZhsEBhsAQmI0hILSwBECA8ADwtLCBFIyCwzUQjILgBWlFYIyCwjUQjWSCw7VFYIyCwTUQjWSCwBCZRWCMgsA1EI1khIS0sICBFGGhEILABYCBFsEZ2aIpFYEQtLAGxCwpDI0NlCi0sALEKC0MjQwstLACwKCNwsQEoPgGwKCNwsQIoRTqxAgAIDS0sIEWwAyVFYWSwUFFYRUQbISFZLSxJsA4jRC0sIEWwAENgRC0sAbAGQ7AHQ2UKLSwgabBAYbAAiyCxLMCKjLgQAGJgKwxkI2RhXFiwA2FZLSyKA0WKioewESuwKSNEsCl65BgtLEVlsCwjREWwKyNELSxLUlhFRBshIVktLEtRWEVEGyEhWS0sAbAFJRAjIIr1ALABYCPt7C0sAbAFJRAjIIr1ALABYSPt7C0sAbAGJRD1AO3sLSywAkOwAVJYISEhISEbRiNGYIqKRiMgRopgimG4%2F4BiIyAQI4qxDAyKcEVgILAAUFiwAWG4%2F7qLG7BGjFmwEGBoATpZLSwgRbADJUZSS7ATUVtYsAIlRiBoYbADJbADJT8jITgbIRFZLSwgRbADJUZQWLACJUYgaGGwAyWwAyU%2FIyE4GyERWS0sALAHQ7AGQwstLCEhDGQjZIu4QABiLSwhsIBRWAxkI2SLuCAAYhuyAEAvK1mwAmAtLCGwwFFYDGQjZIu4FVViG7IAgC8rWbACYC0sDGQjZIu4QABiYCMhLSxLU1iKsAQlSWQjRWmwQIthsIBisCBharAOI0QjELAO9hshI4oSESA5L1ktLEtTWCCwAyVJZGkgsAUmsAYlSWQjYbCAYrAgYWqwDiNEsAQmELAO9ooQsA4jRLAO9rAOI0SwDu0birAEJhESIDkjIDkvL1ktLEUjRWAjRWAjRWAjdmgYsIBiIC0ssEgrLSwgRbAAVFiwQEQgRbBAYUQbISFZLSxFsTAvRSNFYWCwAWBpRC0sS1FYsC8jcLAUI0IbISFZLSxLUVggsAMlRWlTWEQbISFZGyEhWS0sRbAUQ7AAYGOwAWBpRC0ssC9FRC0sRSMgRYpgRC0sRSNFYEQtLEsjUVi5ADP%2F4LE0IBuzMwA0AFlERC0ssBZDWLADJkWKWGRmsB9gG2SwIGBmIFgbIbBAWbABYVkjWGVZsCkjRCMQsCngGyEhISEhWS0ssAJDVFhLUyNLUVpYOBshIVkbISEhIVktLLAWQ1iwBCVFZLAgYGYgWBshsEBZsAFhI1gbZVmwKSNEsAUlsAglCCBYAhsDWbAEJRCwBSUgRrAEJSNCPLAEJbAHJQiwByUQsAYlIEawBCWwAWAjQjwgWAEbAFmwBCUQsAUlsCngsCkgRWVEsAclELAGJbAp4LAFJbAIJQggWAIbA1mwBSWwAyVDSLAEJbAHJQiwBiWwAyWwAWBDSBshWSEhISEhISEtLAKwBCUgIEawBCUjQrAFJQiwAyVFSCEhISEtLAKwAyUgsAQlCLACJUNIISEhLSxFIyBFGCCwAFAgWCNlI1kjaCCwQFBYIbBAWSNYZVmKYEQtLEtTI0tRWlggRYpgRBshIVktLEtUWCBFimBEGyEhWS0sS1MjS1FaWDgbISFZLSywACFLVFg4GyEhWS0ssAJDVFiwRisbISEhIVktLLACQ1RYsEcrGyEhIVktLLACQ1RYsEgrGyEhISFZLSywAkNUWLBJKxshISFZLSwgiggjS1OKS1FaWCM4GyEhWS0sALACJUmwAFNYILBAOBEbIVktLAFGI0ZgI0ZhIyAQIEaKYbj%2FgGKKsUBAinBFYGg6LSwgiiNJZIojU1g8GyFZLSxLUlh9G3pZLSywEgBLAUtUQi0ssQIAQrEjAYhRsUABiFNaWLkQAAAgiFRYsgIBAkNgQlmxJAGIUVi5IAAAQIhUWLICAgJDYEKxJAGIVFiyAiACQ2BCAEsBS1JYsgIIAkNgQlkbuUAAAICIVFiyAgQCQ2BCWblAAACAY7gBAIhUWLICCAJDYEJZuUAAAQBjuAIAiFRYsgIQAkNgQlmxJgGIUVi5QAACAGO4BACIVFiyAkACQ2BCWblAAAQAY7gIAIhUWLICgAJDYEJZWVlZWVmxAAJDVFhACgVACEAJQAwCDQIbsQECQ1RYsgVACLoBAAAJAQCzDAENARuxgAJDUliyBUAIuAGAsQlAG7IFQAi6AYAACQFAWblAAACAiFW5QAACAGO4BACIVVpYswwADQEbswwADQFZWVlCQkJCQi0sRRhoI0tRWCMgRSBksEBQWHxZaIpgWUQtLLAAFrACJbACJQGwASM%2BALACIz6xAQIGDLAKI2VCsAsjQgGwASM%2FALACIz%2BxAQIGDLAGI2VCsAcjQrABFgEtLLCAsAJDULABsAJDVFtYISMQsCAayRuKEO1ZLSywWSstLIoQ5S1ApQkhSCBVIAEeVR9IHlUfHgEPHj8erx4DT0YcH05NGx9NRhofJjQQVSUk%2Fx8ZE%2F8fBwT%2FHwYD%2Fx9MSxwfS0YbHxMzElUFAQNVBDMDVR8DAQ8DPwOvAwPLSttK60oDy0kBSEYSH0dGEh9JRgEjSCJVHDMbVRYzFVURAQ9VEDMPVc8PAR8PAQ8P3w%2F%2FDwMGAgEAVQEzAFVvAH8ArwDvAAQQAAGAFgEFAbgBkLFUUysrS7gH%2F1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQBCHUuwMlNYsCAdWUuwZFNYsBAdsRYAQllzcysrXnN0dCsrKysrdCsrc3NzdCsrKysrKysrKysrKytzdCsrKxheBhQAFwBOBbYAFwB1BbYFzQAAAAAAAAAAAAAAAAAABFIAFACGAAD%2F7AAAAAD%2F7AAAAAD%2F7AAA%2FhT%2F7AAABbYAFfyU%2F%2Bv%2Bef%2F0%2Fqj%2BqAAX%2FrwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAwAC4ALAAowCUAMAAzQDFAM8AugCaATEAsgAAAAAAAAAAAAAAAAAsAEoAngEIAXIB3AHwAhACMAJaAnwClAKoAsQC2gMWAzYDdAPIBAQERgSeBL4FHAVwBaIF0AXqBg4GKAZ2BvYHJgdyB6oH4AgOCDQIfAikCLgI3AkGCSAJVgmGCcYJ%2BgpGCoIKygrqCxwLQguEC64Lzgv2DBIMJgxCDF4McAyKDNINIA1UDaQN8A42DroO9g8mD2oPmA%2BqD%2FoQMhBsELYRBBEuEXIRsBHqEgwSThJ4Eq4S2BMmEzgThBO8E7wT5hQqFHYUwBUKFSgVjhW8FiwWbBaWFrAWuBcsFz4XbBeeF9IYGhg0GHIYmBiiGNAY8BkiGU4ZZBl6GZAZ4hn0GgYaGBoqGj4aUBqaGqYauBrKGtwa8BsCGxQbJhs6G4YbmBuqG7wbzhvgG%2FQcIBx%2BHJAcohy0HMgc2h0SHXwdjh2gHbIdxB3WHegeaB50HoYemB6qHrwezh7gHvIfBh9oH3ofjB%2BeH7Afwh%2FUIBAgaiB8II4goCCyIMQhFCEmITghkiIGIigiXCKSIqQitiLQIuwjAiMqI1QjeCOSI6wjxiPcJBIkfAAAAAIAIf%2FlAlgFtgADAA8AGEALAQENAgMNB1FZDRMAPysAGD8SOS8xMAEjEyEBNDYzMhYVFAYjIiYBULCoARD9yVtVOUReTD5FAbwD%2BvqqUGRBPU9iQwAAAAACANUDpgN9BbYAAwAHAA20BgIHAwMAPzPNMjEwAQMjEyEDIxMCBJeYSAJgmJlKBbb98AIQ%2FfACEAAAAAACADMAAAU3BbYAGwAfADNAGAAfEBAZFREECAwMARwNEQ0RChcTAwYKEgA%2FMz8zEjk5Ly8zMzMRMzMRMzMzETMzMTABAyEHIQMjEyMDIxMjNyETITchEzMDMxMzAzMHATMTIwQMVAEPD%2F7RebR7%2BHmudfoRARhU%2FvgQASd5snn8ea55%2FA785fpS%2BgNo%2FuKo%2Fl4Bov5eAaKoAR6oAab%2BWgGm%2Flqo%2FuIBHgADAD3%2FiQRIBhIAHwAlACsAQUAiFUAPEkgcJQ0DKysTBAZAIAwGDE9ZAwYVE0AbJhMmTVkWEwAvMysRADMaGBDNLzMrEQAzGhgQzRI5ERczKzEwARQGDwEjNyYnNR4BFxMuATU0Nj8BMwcWFwcmJwMeAgE%2BATU0JwMOARUUFwPb79othy3FiU7LXFSch%2B3OJYcjoYBWhm5QgHU4%2FmBWZXMOWVluAe6s0hTT0w1D0So4AgGDOKV1p8kRo6UQQrlCCP6NM1hy%2FuELYk1lLAJEC11MYikAAAUAjf%2FsBkYFywALABkAHQApADcAJ0ATHjUGEDUQNRAcHQMcEgAXByQuEwA%2FMz8zPz8SOTkvLxEzETMxMAEiDgEVFDMyPgE1NBcUAgYjIiY1NBI2MzIWJQEjARMiDgEVFDMyPgE1NBcUAgYjIiY1NBI2MzIWAhI3WDVQNFc7wW%2B2c3yEarN3f4UCwvvDwwQ%2BDDRXOVE0WDvBb7Zxf4Vqs3Z%2FiAUjeuBnh3TrZoOBoP7Nmp6VpgEnlpiD%2BkoFtv0lc%2BNshnXoaIN%2Fof7LmpmSqwEqlZYAAwBC%2F%2BwFWgXNAAoAFAAxADRAHQUYIw8ELx0kDiksBCYmHSsSHQBLWR0ELwtLWS8TAD8rABg%2FKwAYPxI5Ehc5ERIXOTEwASIGFRQXPgE1NCYBMjY3AQ4BFRQWJTQ2NyY1NDYzMhYVFAYHEzY3MwIHEyEnDgEjIiYC7FdePpNpSP7TTYxK%2FviFYXD%2BoavJWOG5oLizzOttSOlxuM3%2B615q0ny%2B0wUSbFhtXEt1REJH%2B542NwF9SodWVm2uk9Zil4S01aKJgcpb%2Frpwt%2F7yuP7pg1BHwwABANUDpgIEBbYAAwAJsgIDAwA%2FzTEwAQMjEwIEl5hIBbb98AIQAAAAAQBO%2FrwDFwW2AAoACrMJJwMDAD8%2FMTATEBIBMwAREBMjAk75AP%2FR%2Fg5zt5MBFAFXAkMBCP3c%2FX7%2Bt%2F71AQUAAAH%2FZv68Ai8FtgAKAAqzBCcIAwA%2FPzEwARACASMAERADMxICL%2Fb%2B%2FtEB8nO3kwNc%2Fqr9wf71AiQCggFHAQ3%2B9wABAMECVgSDBh8ADgAJsgYOAAA%2FzTEwAQMlByUTBwsBJwElNwUTA2R0AZMM%2FpGqzWbjogEl%2FqJHAWIlBfT%2BkRfNLf6XPQFz%2FsiQAQpkw7IBfwAAAAABAHUBAAQdBKgACwAStwkBAgFSWQYCAC8zKxEAMzEwASE1IREzESEVIREjAfD%2BhQF7tAF5%2Foe0Ane0AX3%2Bg7T%2BiQAAAAH%2Fmv74AVYA7gAGAAixBAAAL80xMCUXAgcjNhMBTgh9jbJpX%2B4X%2Fvzb7gEIAAAAAAEALwG%2BAlICiQADAAu0AQBMWQEALysxMBM3IQcvLQH2LQG%2By8sAAAABACH%2F4wFOARQACwAMtQkDUVkJEwA%2FKzEwNzQ2MzIWFRQGIyImIV5UOENfTUI%2FXlNjPz1OZ0cAAAH%2FpAAAA7gFtgADAAqzAwMCEgA%2FPzEwCQEjAQO4%2FNXpAysFtvpKBbYAAAAAAgBc%2F%2BwETAXNAA0AGgAXQAwLDk1ZCwcEFU1ZBBkAPysAGD8rMTABEAIEIyICNRASJDMyFiUiBgIVFBYzMjYSNRAETJ7%2B6LnCv6YBF7a7wv5wYaZrTlpkpWMD9P7O%2Fh%2F1AP%2FsARwB5PbtKOD%2Bb8KPluMBltMBDAAAAQDyAAADtAW2AAoAELYHBAEJBgEYAD8%2FEjk5MTAhIxM2NwYPAScBMwJ97r0cNjlOu2oB%2FMYDZpauNy91qgE9AAH%2F7gAABD8FywAbAB1ADxEKTVkRBwIaAQEaTlkBGAA%2FKxESADkYPysxMCkBNwE%2BAjU0JiMiBgcnPgEzMhYVFA4BBwEVIQOP%2FF8kAdewfThjWkaKZXN43nW11k6oyP7JAm60AaafkHtGVWM8T6BhU7qebLrDq%2F74CAAAAAABAB%2F%2F7AQ%2FBcsAKAAtQBcDFxgYF09ZGBgLJiYfTVkmBwsRTVkLGQA%2FKwAYPysREgA5GC8rERIAOTEwARQGBxUeARUUBgQjIic1HgEzMjY1NCEjNzMyNjU0JiMiBgcnPgEzMhYEP8aqf4uI%2Fv%2Bw4aBUy16dsP7qhSVqpM9jWkiVWGh403m3zgSBntQfBxike4XPck%2FXMTWPfdu3lX1PWzM7oVFBsQAAAAAC%2F%2FwAAARCBboACgASAClAFwEFEgVNWQkPEh8SAlASARISAw8HBgMYAD8%2FMxI5L11dMysRADMxMAEjAyMTITcBMwMzIRM2NyMGBwEEF8lE5UX9kiUDI%2F7Jyf5RRB9FCDNU%2FloBPf7DAT3FA7j8SAE1iPFWZP4MAAABADX%2F7ARYBbYAGwAmQBQAEk9ZAAAHFhYZTlkWBgcMTVkHGQA%2FKwAYPysREgA5GC8rMTABMhYVFAYEIyInNRYzMjY1NCYjIgcnEyEHIQM2AmK114z%2B9L7WjaevrcJ8fl%2BCWMgCyS3%2BBmpdA4vPtqH0hU%2FZZKaTaX8jRALE0f6UEgAAAAACAG%2F%2F7ARtBcsAGQAoAC1AFw0XEBAgT1kQEBcFBQpNWQUHFxpNWRcZAD8rABg%2FKxESADkYLysREgA5MTATNBoBJDMyFwcmIyIAAzM2MzIWFRQCBiMiJgUyPgE1NCMiDgMXFBZvedEBJcR1VitIbc3%2B%2BEEGfcmcr4nqmcLRAaNRfESyM1lFMB4CYwG%2BzQGSARySGcIW%2Fv3%2B%2BarGraL%2B6o%2FwLmGsZsgmOkddQ26GAAAAAAEAfQAABJwFtgAGABhACwAYBQIDAwJOWQMGAD8rERIAORg%2FMTAzASE3IQcBfQLy%2FV4rA6Qh%2FQoE6c2o%2BvIAAAADAEz%2F7AReBc0AFwAjAC8AKUAUBhIYGCoqDQAAJE9ZAAcNHk9ZDRkAPysAGD8rERIAORgvMxI5OTEwATIWFRQGBx4BFRQOASMiJjUQJS4BNTQ2Ew4BFRQWMzI2NTQmEyIGFRQWFz4BNTQmAtuz0J6peGl75J3L5QFwW0%2F%2BQpWGdmNzi2EaXXJOQXN9YAXNspaEw0JOr3J5v2nIqAEph0aWV7Pb%2FNM2kWhdcIBnW4UCqXBcU2wnK3xfUVsAAAIAXP%2FsBDcFywAZACYALUAXDhAXECFPWRAQBRcXGk1ZFwcFCk1ZBRkAPysAGD8rERIAORgvKxESADkxMAEUCgEEIyInNRYzMjYTIwYjIiY1NBI2MzIWJSIOARUUFjMyNjU0JgQ3dL3%2B%2BbOFa3lzvOw7BnHApbWG75vAzf5hUn9EXFh1omAD%2Bs3%2BXf7phyDPK%2FYBCqDMupwBCo%2FvLF6mYGluvJJsgQAAAAIAIf%2FjAfoEagALABcAF0AMAwlRWQMQFQ9RWRUWAD8rABg%2FKzEwEzQ2MzIWFRQGIyImAzQ2MzIWFRQGIyImzV5UOENhTUI9rF5UOENfTUI%2FA7RTYz89T2ZH%2FN5TYz89TmdHAAAC%2F5z%2B%2BAH6BGoABgASABVACQRABgoQUVkKEAA%2FKwAYLxrOMTAlFwIHIzYbATQ2MzIWFRQGIyImAU4IfY2wX2drXlQ4Q2FNQj3uF%2F7829YBIALGU2M%2FPU9mRwAAAAEAcwDdBBsE7AAGAAixAAMAL8YxMCUBNQEVCQEEG%2FxYA6j9RwK53QGueQHow%2F6o%2FtEAAAACAHUBrgQdA%2FIAAwAHAB9AEQQFUlkEAQEAUlkPAQGQAQEBAC9dXSsAGBDGKzEwEzUhFQE1IRV1A6j8WAOoAz%2Bzs%2F5vtLQAAAABAHMA3QQbBOwABgAIsQYDAC%2FGMTATCQE1ARUBcwK2%2FUoDqPxYAaIBLwFYw%2F4Yef5SAAAAAgCi%2F%2BUDwwXLABkAJQAlQBIHEAAAIxAjHVFZIxYQCk1ZEAQAPysAGD8rERIAORgvEjkxMAE%2BATc%2BAjU0JiMiBgcnNjMyFhUUBgcOAQcBNDYzMhYVFAYjIiYBBBJre2tPJVVRTZJOTs%2FLq8R%2FqGhcD%2F7ZXlQ4Q2JMQj0BvIWvWk1QUTBGWDclsHGrnXjDd0p2Vf6iU2M%2FPU9kRQAAAgBk%2F0YGqgW0ADgARAAsQBQHCjkRESg1BAoaPz8KCi0hNQMoLQAvMz8zEjkvMxEzETMREjkvMxI5MTABFAIGIyImJyMGIyImNTQSNjMyHgEXAwYVFDMyPgE1NCQjIgQCFRAAMzI3FQYjIiQCNRASJCEyBBIFIg4BFRQzMjY%2FASYGqnfWhGJpDAZlsHuFh%2FGPNFVKXGUeT0h8R%2F7%2F69b%2Bqr8BGfvI5tvr0v7GqfUBuQERyAEkm%2F0zVpFScFJ3KUA1A06w%2FtumXEqmnYyXAQGVChAf%2FnhyLVyF2Hrk78f%2BlOD%2B%2Ff7kVptapwE40QEOAbb6lf7odmu1Z52QlPAQAAAAAAL%2FhwAABE4FuAAHAA4AGkANDgFMWQ4OBAcDEgsEAwA%2FMz8zEjkvKzEwASEDIwEhEyMDAiY1BgcDAzv%2BG9H%2BAw8BEqbqOSgLN1esAZb%2BagW4%2BkgCZgGgrzSLqP6wAAAAAAMARgAABMsFtgAPABcAIAAtQBcGIBAQIEtZEBAODw8XTFkPAw4YTFkOEgA%2FKwAYPysREgA5GC8rERIAOTEwATIWFRQGBxUeARUUBCkBARMzMjY1NCsBAzMyNjU0JisBAwre462ZbHf%2B1P71%2FhUBNW7Hi5jftePfk6d4dMgFtqikksIeCByXbNn4Bbb9pHlvrPvbiH5iZwAAAQCH%2F%2BwFIQXLABgAF0AMEwBMWRMEDAdMWQwTAD8rABg%2FKzEwASIGAhUUFjMyNxUGIyIAERASJDMyFwcuAQOcmvKRpaGNvLTC%2BP7n0wFg4tmsXj%2BOBP6y%2FqvMtL9EzUMBKQEMAQQBvuhcwyIwAAAAAAIARgAABR8FtgAJABMAF0AMBhJMWQYDBRNMWQUSAD8rABg%2FKzEwARACBCkBASEgAAEyJBI1NCYrAQMFH8j%2Bgv7%2B%2Fm8BNQFxAQ8BJPzEsQEIjbCokuMDff7x%2FmzaBbb%2B3vw1rAE4yLjB%2B9sAAAEARgAABIMFtgALACZAFAYJTFkGBgECAgVMWQIDAQpMWQESAD8rABg%2FKxESADkYLysxMCkBASEHIQMhByEDIQNO%2FPgBNQMIK%2F3lVAH2Kf4IYAIbBbbN%2FnXL%2FjgAAQBGAAAEgQW2AAkAHUAPBglMWQYGAgESAgVMWQIDAD8rABg%2FEjkvKzEwISMBIQchAyEHIQEz7QE1AwYr%2FedgAfYt%2FgwFts3%2BOssAAAEAh%2F%2FsBVwFywAdACZAFAAdTFkAAAUMDBJMWQwEBRlMWQUTAD8rABg%2FKxESADkYLysxMAEhAw4BIyAAERASJDMyFhcHJiMiBAIVFBYzMjcTIQMSAgCdcNWE%2Fvv%2B4M0Bd%2B9vzGdarqCe%2Fv6VsqRtalD%2B6wMZ%2FSAoJQEkAQsBCAG28ikxy1a1%2FrHNt7whAXMAAAEARgAABYsFtgALABpADQgDTFkICAUKBgMBBRIAPzM%2FMxI5LysxMCEjEyEDIwEzAyETMwRW7oz9yovtATXtfwI2f%2B0Ck%2F1tBbb9qgJWAAAAAQBGAAACaAW2AAMACrMBAwASAD8%2FMTAzATMBRgE36%2F7JBbb6SgAAAAH%2Bvv5oAnMFtgAMABG3CAMABUxZACMAPysAGD8xMAMiJzcWMzI3ATMBDgGYaEIFVEXJNQEr7v7PLuf%2BaBnJFfoFh%2Fpa2c8AAAEARgAABWYFtgAMABVACQgCBQoGAwEFEgA%2FMz8zEjk5MTApAQMHAyMBMwM3ASEBBD%2F%2B%2BvyVde0BNe2XjQHsARz9mAKPZP3VBbb9PqYCHP1jAAAAAAEARgAAA3kFtgAFABG3AQMAA0xZABIAPysAGD8xMDMBMwEhB0YBNe3%2B9gIbKwW2%2BxfNAAABAEQAAAblBbYAEwAbQAwRAgIJBgsHAwAOBhIAPzMzPzMSOTkRMzEwIQMjBgcDIwEhEzMBIQEjEzY3IwECh3MGCS642wE1AUNtBgJeAVj%2Bz%2BO2Jy8G%2FX0Evnbe%2FJYFtvuDBH36SgNoupz7QgABAEQAAAXdBbYAEQAVQAkDCwgQCQMBCBIAPzM%2FMxI5OTEwKQEBIwcOAQMjASEBMzYSNxMzBKj%2B%2FP5mBgoYF6zbATUBDAGPBwYyD6DbBItFlX%2F8zgW2%2B4M2ARVBAvEAAAACAIf%2F7AWNBc0ADQAbABdADAsOTFkLBAQVTFkEEwA%2FKwAYPysxMAEQAgQjIAAREBIkMzIAJSIGAhUUFjMyNhI1NCYFjb7%2Bs9z%2B%2Ff7kxQFW2fsBF%2F3biuB%2Fo5KK3XueA5r%2B6f5M4wErAQgBCwG56v7WXcD%2Bq8qtvL8BU86qvgAAAAIARgAABJYFtgAIABMAHUAPDQBMWQ0NEA8SEAhMWRADAD8rABg%2FEjkvKzEwATMyNjU0JisBBRQAISMDIwEhMhYB0V6yw3V5dwJX%2Fq3%2B0W5z7QE1AU7l6ALsn5JtZMn4%2Fvb93QW2yQAAAgCH%2FqQFjQXNABAAHgAjQBEFBw4RTFkOBAMYBwcYTFkHEwA%2FKxESADkYPysAGBDGMTABEAAHASEDIyAAERASJDMyACUiBgIVFBYzMjYSNTQmBY3%2B%2FOEBCP7fyh%2F%2B%2Ff7kxQFW2fsBF%2F3biuB%2Fo5KK3XueA5r%2Bvv4eW%2F6JAUgBKwEIAQsBuer%2B1l3A%2FqvKrby8AVPRqr4AAAACAEYAAASaBbYADQAWACZAEwoADg4AS1kODgMMAhIDFkxZAwMAPysAGD8zEjkvKxESADkxMAEDIwEhMhYVFAYHEyEDJzMyNjU0JisBAa577QE1AVLf7q2r%2Bf78z497qqh2fHcCSP24Bba9xKXjNP2HAkjGloNpXAABACf%2F7AQ7BcsAJAAgQBALHgMWFhtMWRYEAwhMWQMTAD8rABg%2FKxESADk5MTABFAQjIic1FjMyNjU0JicuAjU0PgEzMhcHJiMiBhUUHgEXHgEDov7f%2FtKKrbGJnlKDaWQ1e%2BGNzbBWoYZthB4%2FZ5t2AazS7kvgYXVoRWtTQ26DT4DGbFy%2FTnVeL0c9QWG1AAABALAAAATDBbYABwAWQAoBEgcDBANMWQQDAD8rEQAzGD8xMCEjASE3IQchAhDtAQj%2BhS0D5iv%2BgwTpzc0AAAAAAQCY%2F%2BwFiwW2ABUAFEAJFQoDBBFMWQQTAD8rABg%2FMzEwAQMCACMiJjU0NxMzAwYVFBYzMjY3EwWLyjj%2B0PvZ7RTB7cAVd3mRqifHBbb8RP71%2Fv3Ux1NXA4X8d1hGZnGhtQOoAAEAugAABUgFtgAMABC2DAYDBwMGEgA%2FPzMSOTEwJTY3ATMBIQMzExYXBwH6RkMBx%2F79BP7%2BkOhKCQIB%2BLKDA4n6SgW2%2FHdngkwAAAABAMsAAAe0BbYAHAAbQAwXDgUOCRsSCgMBCRIAPzM%2FMzMSOTkRMzEwKQEDJzcjBgcBIQMzExQHMzY3ATMTFwczPgE3ATMFJf7%2BJQYEBi9G%2Fn%2F%2FADXlEw0GUzsBg%2BEfAwMIHFQTAWb2A0q5apCT%2FLYFtvyuiNLdhgNJ%2FLmpvFjbKwNOAAAB%2F5EAAAUlBbYACwAVQAkCCAQJBgMBBBIAPzM%2FMxI5OTEwKQEDASEBAzMTASEBBBD%2FAMD%2BSv73Akr69rIBkgEK%2FdkCUP2wAwICtP3kAhz9OgAAAAABALoAAAUABbYACAAQtgAFAQcDBRIAPz8zEjkxMAkBIQEDIxMDMwJGAbABCv2Rcu537vIDGQKd%2FG%2F92wIpA40AAf%2FZAAAEogW2AAkAIEAQBwQFBExZBQMCCAEITFkBEgA%2FKxEAMxg%2FKxEAMzEwKQE3ASE3IQcBIQOF%2FFQhA1L9qisDgSP8rAKFqAQ%2Fz6z7wwAB%2F%2BX%2BvAMQBbYABwAOtQUCAwYBJwA%2FMz8zMTABIQEhByMBMwGT%2FlIBfQGuJ93%2B0d3%2BvAb6sPpnAAEA3QAAAocFtgADAAqzAwMCEgA%2FPzEwARMjAwGs29HZBbb6SgW2AAAB%2F3H%2BvAKaBbYABwAOtQMEAwAHJwA%2FMz8zMTAHMwEjNyEBIWrbATHdJwGu%2FoP%2BVJMFmbD5BgAAAAEAJQIZBBQFvgAGAA60BQIABAIALy8zEjkxMBMBMwEjAwElAmB%2FARC4vP5OAhkDpfxbArL9TgAAAf9E%2FrwCk%2F9IAAMACLEBAgAvMzEwASE3IQJ1%2FM8eAzH%2BvIwAAQIdBNkDlgYhAAgACrIGgAEALxrNMTABIy4BJzUzFhcDlpBBhiL1L1UE2T%2BxQxWalQAAAAIAXv%2FsBH8EZgASACAAJ0AUCxEABwwPBxpGWQcQDxUAE0ZZABYAPysAGD8%2FKwAYPxESOTkxMAUiJjU0EjYzMhYXMzczAyM3IwYnMjYSNTQmIyIGAhUUFgGPjaSL9JJhjCcKPrTsthUGnmlSnmZeTFWWWlEUy7jKAWDNW1ee%2B66wxL6bAQSaWGua%2FveOZmUAAAIAL%2F%2FsBFAGFAAWACMAJ0AUBAwAEAcABhUQF0ZZEBAAHkZZABYAPysAGD8rABg%2FPxESOTkxMAUiJicjByMBMwMOAQczPgEzMhYVFAIGAyIGAhUUFjMyNhI1NAJCYo0oCkCyAUrrRw0yDwhallaRoovyDFGiY11VVZRWFFpWnAYU%2FrM%2Fuy9xV8%2B2yv6dyAO6oP77jGBrnQEHj8kAAAEAXv%2FsA80EZgAXABdADAcMRlkHEAASRlkAFgA%2FKwAYPysxMAUiJjU0EiQzMhcHJiMiAhUUFjMyNjcVBgH6xNiTAQqppIVGemOWyHBjSoFBjBTUxc8BU789uDX%2BzeJveCwgw0cAAAAAAgBe%2F%2BwE3QYUABQAIQAuQBgDCw4ABgAAHEZZABAJCkhZCRUOFUZZDhYAPysAGD8rABg%2FKwAYPxESOTkxMAEyFzM2NxMzASM3Iw4BIyImNTQSNhMyNhI1NCYjIgYCFRQCb7NZCA0YTOn%2BtrgTB1ikXI%2Bij%2FAMUqFhV1lVlFgEZrKSaAFm%2BeywalrLus0BZMT8RKQBCIdbbpr%2B9IvLAAAAAAIAXv%2FsA%2FoEZgAJACMAJkAUAxhIWQMDChERAEhZERAKHUdZChYAPysAGD8rERIAORgvKzEwASIGBzMyNjU0JgMiJjU0EiQzMhYVFAQhIwcVFBYzMjY3FQ4BAphgqSUdvNRA18XdmwEJpKGz%2FrP%2BzCsCcXBIjmFgoQOyrI1rYjM5%2FDrex8YBVbqRhbbNHx1vfiYuuywlAAAAAf8f%2FhQDrgYfAB4AKUAWDxRGWQ8ACBsLGBgbSFkYDwAFRlkAGwA%2FKwAYPysRADMRMxg%2FKzEwAyInNRYzMjcTIz8CPgEzMhcHJiMiBg8BMwcjAw4BTFo7QDKGK9mzFcIVLLWmc2A9Sj5FUxYS5SXl3yi2%2FhQXvhTNA%2F5qTFzGpyuwHFZiVrL7472yAAAD%2F4f%2BFAR3BGYAJwA0AEEASEAoGygoDkZZBzxKWQQgCQMHJSgHKAcVJScCSFknDyU1SVklEBUuSVkVGwA%2FKwAYPysAGD8rERIAOTkYLy8REhc5KysRADMxMAEPARYVFAYjIicGFRQWHwEeARUUBCEiJjU0NjcmNTQ2NyY1NDYzMhcBDgEVFBYzMjY1NCYnEyIOARUUFjMyPgE1NAR3H8Ac7sg0KG8%2FPH%2BwmP7S%2FurL34uaTF1kh%2FXJUFD%2BTHB4b3KjuFpxhUFiNkdCQV81BFKJITpPweMIKEAmHAgQFoN6xNaWg2eWNC1SRWUvUavE8BT7wBJqTkFNbGUzOgwDxU2FT0dNTohRjgABAC8AAARKBhQAGgAcQA4QChQUBUZZFBALAAAKFQA%2FMz8%2FKxESADkxMCETNjU0IyIGBwMjATMDBg8BMz4BMzIWFRQHAwK%2BjhKBcMMtYuwBSus5Gy4TCFSpXYiRF4sCoFolh%2FrZ%2Fi0GFP76fqdLal6bkExi%2FXMAAAACAC8AAAJWBfoACwAPACVAGgkfAy8DAl8DbwN%2FA58DrwPfA%2B8DBwMODw0VAD8%2FL11xzTEwATQ2MzIWFRQGIyImAyMTMwFKTkc1QlBBNUYv7OzrBWJEVDU2R1I0%2BtYEUgAC%2Fvr%2BFAJWBfoADAAYADBAIBZADxAfEC8QTxBfEI8QnxDPEN8QCQ4DEAgPAAVGWQAbAD8rABg%2FL19eXRrNMTADIic1FjMyNwEzAQ4BATQ2MzIWFRQGIyImcVo7QDWDJwEE6f72JrMBKUxHNkFQQTVE%2FhQXvhS6BMP7IbWqB05EVDU2R1IzAAAAAQAvAAAEhwYUAA4AGUANAg0FBgQICQAADwQIFQA%2FMz8%2FERc5MTABIQkBIQMHAyMBMwIGBzMDdwEQ%2Fh0BI%2F760YhN7AFK64cxIwQEUv4b%2FZMB12D%2BiQYU%2FY3NfAABAC8AAAJkBhQAAwAKswIAARUAPz8xMCEjATMBGeoBSusGFAABAC8AAAauBGYAJgAlQBIDJAAXDSEVEhwAHEZZBgAQIg8APz8yKxEAMxg%2FMzMSOTkxMAEyFzM%2BATMyFhUUBwMjEzY1NCMiBgcDIxM2NTQjIgYHAyMTMwczNgMn3CIIS79nhYsWjOuPE3lsuytl648RdW67LWLs7LgVCZQEZut0d5mLQHX9cwKgXyaB%2BM3%2BHwKgUi2H%2FtP%2BKwRSzeEAAAAAAQAvAAAESgRmABgAHEAODgsSEgVGWRIQDA8ACxUAPzM%2FPysREgA5MTAhEzY1NCMiDgEHAyMTMwczPgEzMhYVFAcDAr6OEoFIjHAcYuzsuBUJU7BnhpMXiQKgWimDcteI%2FisEUs12a5iMRXD9cwAAAAIAXv%2FuBDcEZAANABsAF0AMGQNGWRkQEgpGWRIWAD8rABg%2FKzEwATQmIyIOARUUFjMyPgE3FAIGIyImNTQSJDMyFgNKYltdk1FjYVqQUO2S%2F6bA4o8BAqnD3AK%2Ba3mP9Ytvdoj1icr%2BtbHlxccBTLnoAAAAAv%2FJ%2FhQEUARmABMAIAAmQBQDCgANDRRGWQ0QCA8HGwAbRlkAFgA%2FKwAYPz8%2FKxESADk5MTAFIicjBgcDIwEzBzM2MzIWFRQCBgMiBgIVFBYzMjYSNTQCQrVYCgcSYOkBUrgVCZ27j6KM8QxRoGVdVVWUVhSwYVj%2BMQY%2BvNDOt8z%2BncYDup%2F%2B%2Boxga50BB4%2FJAAAAAAIAXv4UBH8EZgAVACIAJ0AUDAMPAAQPBxsAHUZZABAPFkZZDxYAPysAGD8rABg%2FPxESOTkxMAEyFzM3MwEjEz4BNyMOASMiJjU0EjYTMjYSNTQmIyIGAhUUAnG3WwpAsv6s6UsMPwcIVKBai6CS7w1QnmFbUVaUWQRmsp75wgFdOPgRbFrNttABZsH8RKIBCIlea5v%2B%2BI7LAAAAAAEALwAAA4kEZgAQABRACQUNCgAQChULDwA%2FPz8ROTIxMAEyFwcmIyIGBwMjEzMHMz4BAx0%2BLjM2MH7GJ2rs7LgVCVOmBGYM2w7it%2F4MBFLNeGkAAAEADv%2FsA3EEZgAiACBAEAscAxQUGUdZFBADCEhZAxYAPysAGD8rERIAOTkxMAEUBiMiJzUWMzI2NTQmJy4BNTQ2MzIXByYjIgYVFBYXHgIDDuzSvoSZn2F4RWt9Z9a2xJZMjH5JW0JmaVguAVStu0PLWlBFM0k9Q4tfm7BUsExCOy1GNztUYwABAFz%2F7AMlBUgAGQAnQBMPEUALFA4RERRIWREPBgBGWQYWAD8rABg%2FKxEAMxEzGhgQzTEwJTI3FQ4BIyA1NDcTIz8CMwchByEDBhUUFgHHRFMjeDz%2B7hB5ohW%2BgZI0ARcn%2Fut6DTKqH7IRGvc5SgI6blLo9rL9xDclKzMAAQBv%2F%2BwEhwRSABkAG0ANDxIKGQ8NFRIFRlkSFgA%2FKwAYPz8zEjkxMAEDBhUUMzI%2BATcTMwMjNyMOASMiJjU0NjcTAfqBH39Ijm4eY%2BnpuRUIUrJnhpIYDHsEUv2ejTSFctOOAdX7rs10bZiOP3s%2BAkgAAAABAGQAAARQBFIADAAOtQUKAQ8AFQA%2FPzMyMTAzAzMTFhUzPgE3ATMB54PoNw4HHFQXATf6%2FaoEUv2qn4pKtikCVvuuAAEAeQAABl4EUgAbAB1ADRQMAwwHEBAZCA8ABxUAPzM%2FMzMREjk5ETMxMCEDJzcOAQEhAzMTBgczNjcBMxMXBzM%2BAhMzAQNMEwEDGTX%2Bwf76L90NAgkGQisBFv4TAQMGEVAv5PT9%2BgJzRsg%2Bfv07BFL9eleesGACa%2F2kNeoy2W4CAvuuAAH%2FqgAABFQEUgALABVACQAGAgcEDwsCFQA%2FMz8zEjk5MTAJASEBAzMTASEBEyMB6f7P%2FvIB2%2Bf1kAEfARL%2BM%2Fj2AYP%2BfQI5Ahn%2BiwF1%2Fdv90wAAAAH%2FVv4UBFIEUgAXABhACwUOCQAPDhNGWQ4bAD8rABg%2FMxI5MTATMxMeARUzNjcBMwEOASMiJzUWMzI2PwFk6D8JDgZWMQEl%2Fv1QWtSPTENLMkp4QDMEUv3tPuFF12ICPvsApZkTvBBXcFwAAAH%2F2QAAA6IEUgAJACRAEgcEBQUESFkFDwIIAQEISFkBFQA%2FKxESADkYPysREgA5MTApATcBITchBwEhAs%2F9Ch0Ce%2F5JJwLBJf2RAeaTAw2yqv0KAAEACP68A0oFtgAnACBAEBsJCa8KvwoCCgoTJicUEwMAPzMvMxI5L10zEjkxMAEgNTQ%2FATY1NCM3MjY3Ez4COwEHIgYHAw4BBxUWFRQPAQYVFBYzFQHJ%2FsQRLQ7RJ3iPFjscWpZ7PClgVxJGGH50oBArC0FN%2FrzsPUjJQSGNu1VlAROGhzy4RFL%2By2x9EQYtqiZTwjAaMy%2B5AAAAAAEB8v4fAqQGEAADAAmyAAADAC8%2FMTABMxEjAfKysgYQ%2BA8AAAH%2FqP68AtEFtgAmACBAEBoKCq8JvwkCCQkmExIlJgMAPzMvMxI5L10zEjkxMAEgFRQPAQYVFDMHIgYHAw4BKwE1PgE3Ez4BNzUmNTQ%2FATY1NCYjNwEOAT4RLQ7RJ3mOFj8is7Qdal0SRhh%2BdJ4RKwpWTiMFtus9SMtBIY66VGT%2BzqWGtwJFUAE1bXoRBjCnN0LFLB46KLgAAQBvAjsEKwNoABcAH0AODwYDEhIMUlkSBgBSWQYALysAGC8rABAYxBDGMTABIgYHNTYzMhYXHgEzMjY3FQYjIiYnLgEBWDN6PGSVQG1cRloxMn06Z5M%2Fek1MVwK0Pju%2FbBgnHhk%2BOr5vISEgFwAAAAL%2F0%2F6LAgoEXgADAA8AF0AKAAANAw0HUVkNEAA%2FKwAYLxI5LzEwEzMDIQEUBiMiJjU0NjMyFt2upv7uAjdeUDtEYk5BPAKF%2FAYFVlBkPzxSZEcAAAEAw%2F%2FsBDEFywAeACRAEgIeHhhNWR4BGQkMDBFPWQwKBgA%2FzSsRADMYP8UrEQAzMTAFIzcuATU0EjY%2FATMHFhcHJiMiDgEVFBYzMjY3FQYHAkKcLYSMf%2BWTI5wlfGFFfWFjollwY0qBQYWgFNUiyZ6%2BAULHFqSkDC25NY%2F2j294KyDCRQUAAAAB%2F%2B4AAAS4BcsAHAAxQBkLFxgXT1kIGBgSAAAFTVkABxMPEg9OWRIYAD8rEQAzGD8rERIAORgvMysRADMxMAEyFwcmIyIHAyEHIQcOAQchByE3Nj8BIzczEz4BA1i8pFiPc7kqOQFNIv6wIRVfUwKyLfw0JsgyI8QkxT0m5gXLVrdKzf7qrJhihirPwS3npKwBK7nCAAAAAAIAjQEOBBkEmAAbACcAGEANCQwQExcaAgUIHxUlBwAvM8QyFzkxMBM0Nyc3FzYzMhc3FwcWFRQHFwcnBiMiJwcnNyY3FBYzMjY1NCYjIgbRPYF3f2ZpbGN%2FeYE9PX93f19weFd%2FdX89qH1cW4KCW1x9AtNuX4F3fz0%2FgXWBY2xyX313fzs7fXd9X3BbfnxdXX6AAAABAGoAAAT6BbYAFgA9QCEKDg8OUFkHDwYSExJQWQMAExUPEx8TAg8TDxMMARUGDBgAPz8zEjk5Ly9dERI5MisRADMRMysRADMxMAkBMwEzByEHIQchByM3ITchNyE3MwMzAlIBsPj9%2Btkj%2Fu4fARIh%2FvA13TP%2B7yEBER7%2B8CPTx%2BgDGQKd%2FQiblJv09JuUmwL4AAAAAgHy%2Fh8CpAYQAAMABwATtwMEAwQHAAAHAC8%2FETk5Ly8xMAEzESMRMxEjAfKysrKyBhD85v5F%2FOQAAAAAAgAn%2F%2FID9AYjACwAOAAlQBUCLRQzGikGHwgIDklZCAEfJElZHxYAPysAGD8rERIAFzkxMBM0Ny4BNTQ2MzIXBy4BIyIGFRQWFx4BFRQGBxYVFAYjIic1FjMyNjU0JicuAQEOARUUFhc%2BATU0JqLbLz7fubKaRD6HTVZhSXB%2Fd2lsZvbPvH%2BYp3R0TmaCdgFcRVNdfz5LYwL8vHcgZEGKpU6eHStFPCtDMjiPYFyePUx1nbBDu11RRytJMDyPAUEaaj49VzkkbTw8WQAAAgGqBQIEFwXsAAsAFwAMsw8DFQkALzPNMjEwATQ2MzIWFRQGIyImJTQ2MzIWFRQGIyImAapGPzA5RzovPgF%2FRj8wOUc6Lz4FZDxMLzBBSi8zPEwvMEFKLwAAAAADAIP%2F7AZiBcsAFQAlADUAL0AbBQsPCx8LnwsDABEAERARAgsRCxEiMhoEKiITAD8zPzMSOTkvL10RM10RMzEwASIGFRAzMjY3FQYjIiY1NDYzMhcHJgE0EiQzMgQSFRQCBCMiJAI3FBIEMzIkEjU0AiQjIgQCA6Jxfe4vgix1e8XU48eKgERq%2FIfIAV7KxwFdy8X%2BpM7P%2FqLDe6YBJKutASWipP7draj%2B26gECpib%2FtMgE54z99TY%2BUKTN%2F7RyAFeysb%2Bn8nH%2FqTMzwFaxqj%2B36yuASGmpQEjran%2B2wAAAAIAoAMCAzsFxwASAB0AH0AQBwgDEwAMEAwCDAAEHhkAHwA%2FMj8Q1F0yOTnEMTABMhczNzMDIzcjDgEjIiY1ND4BEzI%2BATU0IyIGFRQB8nE1Bid2k3sKBDJgPVtpXpcHMl87ZlJxBcdnWv1UaT43hHKA3XL9umCfT3fDhX0AAAAAAgBQAGQEEgPjAAYADQAMswwFCAEALzPEMjEwEwEXARMHAyUBFwETBwNQAYuH%2FuCZstkBuAGBif7ok7TRAj8BpHb%2BtP6PTAHFAgGycP6h%2FqJMAa4AAQB1AQAEHQMrAAUAEbYCBQUEUlkFAC8rABgQxDEwAREjESE1BB2z%2FQsDK%2F3VAXe0AAAA%2F%2F8ALwG%2BAlICiRIGABAAAAAEAIP%2F7AZiBcsADwAfACwANQAzQB0lKQ8pHykCNSoAKhAqAictKSoqKS0DDBwEBBQMEwA%2FMz8zEhc5Ly8vM10RM10RMzEwEzQSJDMyBBIVFAIEIyIkAjcUEgQzMiQSNTQCJCMiBAIlFAYHEyMDIxEjESEgATMyNjU0JisBg8gBXsrHAV3Lxf6kzs%2F%2BosN7pgEkq60BJaKk%2Ft2tqP7bqAPAW1XTyKxbsgENAVH%2BVEhUWltTSALbyAFeysb%2Bn8nH%2FqTMzwFaxqj%2B36yuASGmpQEjran%2B2wlTfCT%2BiwFF%2FrsDbv5nSD9JOAAAAQBvBhQEJQa6AAMACLEBAgAvMzEwASE3IQP8%2FHMnA48GFKYAAgC8AzsDTgXLAAwAGAAMsxAJFgMALzPEMjEwEzQ2MzIWFRQGIyIuATcUFjMyNjU0JiMiBrzCiIjAwIhYmliYaEpIaGdJSmgEgYjCwoiJvViWWEZoaEZKaGcAAAACAHUAAAQdBMMACwAPACRAFAwNUlkMQgkBAgFSWQYQAgFwAgECAC9dcTMrEQAzGD8rMTABITUhETMRIRUhESMBNSEVAfD%2BhQF7tAF5%2Foe0%2FoUDqAKRtQF9%2FoO1%2For%2B5bS0AAAAAQBOAkoDEAXJABkAErcKEB8CGBgBIAA%2FMxI5PzMxMAEhNyU%2BAjU0JiMiByc%2BATMyFhUUDgEPASECqv2kHAENb0sjODBbZFBElV5ziS9ldq4BcwJKh99fUkgmLjRQezY3eF9Fb25bjgABAGgCOQMQBckAIwAnQBYDFRUPFh8WAg8WHxYCFhYKHCEfDwohAD8zPzMSOS9dcTMSOTEwARQGBxUeARUUBiMiJzUWMzI2NTQrATczMjY1NCMiByc2MzIWAxBtaE5Kx6qKcH56WmOSbBxdWWt1XGBEfqV8igT4WnYaBBJiQoGaOJ9HSkVxhURBZEF5Wm8AAAABAfwE2QPlBiEACAAKsgOACAAvGs0xMAE2NyEVDgEHIwH8YYABCDbQR5wE8mzDE0K%2FNAAAAf%2FJ%2FhQEkwRSABoAIEAQEgwKBxcPFhsKFQ8DRlkPFgA%2FKwAYPz8%2FMxI5OTEwARQWMzI2NxMzAyM3Iw4BIyInIwYHAyMBMwMGAWZCP3HBLWbn67gWCkucV2wvCAkeQukBUuuNEwEzQUj71AHZ%2B66%2Bb2NRSaL%2BwgY%2B%2FWJUAAEArP78BLQGFAAPABO3CAgBAw4ABQEALzM%2FMxI5LzEwASMRIxEjEQYjIiY1EDYzIQS0i7yMPlPYzNrpAkX%2B%2FAZm%2BZoDMxL6%2BwEE%2Fv%2F%2FAJYCOQHDA2oQBwARAHUCVgAAAAH%2FRP4UAOwAAAASABpADQ0QQAsOSBAQDwgDGw8ALz8zEjkvKzMxMBMUBiMiJzUWMzI1NCYnNzMHHgHspI5ANi8xiUZFYpIySED%2B%2BGp6D4cOYCgrCahgGVQAAAAAAQDBAkoCtgW2AAoADrUJAyAGAB4APzI%2FOTEwATMDIxM2Nw4BBycCFKK6v2MRKBU5fU0FtvyUAc1PihQuUIEAAAIApAMCAwgFxwANABcAFEAKEwAEEAQCBA4LHwA%2FM8RdMjEwARQOASMiJjU0PgEzMhYlIgYVFDMyNjU0AwhUnm56ilija3yC%2FvZRZ3BNZQS2fsZwkoN6x2%2BPCq%2BBja%2BEigAAAAACAAoAXAPPA9sABgANAA60CAEBDAUALzPELzIxMAkBJwEDNxMFAScBAzcTA8%2F%2Bc4YBH5m02f5I%2Fn%2BMARmSs9MB%2Fv5edwFKAXJM%2FjkC%2FlBxAVwBYEz%2BUAD%2F%2FwCVAAAFxQW2ECcA0wKTAAAQJgB71gARBwDUAsH9twAJswMCERgAPzU1AP%2F%2FAHkAAAYeBbYQJwDTAncAABAmAHu5ABEHAHQDDv23AAeyAhAYAD81AAAA%2F%2F8AbAAABi8FyRAnANMDIQAAECcA1AMr%2FbcRBgB1BAAACbMCAQYYAD81NQAAAv%2Fd%2FnUC%2FgRaABkAJQAtQBgHABkQGQILAxkZECMjHVFZIxAQCk1ZECIAPysAGD8rERIAORgvX15dOTEwAQ4BBw4CFRQWMzI2NxcGIyImNTQ2Nz4BNwEUBiMiJjU0NjMyFgKcGW10a00lVFFMk09Lzcyuv4CnXWAWASdgUjhDXU9CPwKDkqpTT05QMEdXNyaxcKuceMZ1QHVfAV5VY0E8TmZEAP%2F%2F%2F4cAAAROB3MSJgAkAAARBwBD%2F%2F0BUgAKtAIQEAUmACsRNf%2F%2F%2F4cAAASsB3MSJgAkAAARBwB2AMcBUgAKtAIXFwUmACsRNf%2F%2F%2F4cAAASFB3MSJgAkAAARBwDFAFoBUgAKtAIVFQUmACsRNf%2F%2F%2F4cAAATLB0gSJgAkAAARBwDHAHMBUgAKtAIYGAUmACsRNf%2F%2F%2F4cAAARzBz4SJgAkAAARBwBqAFwBUgAMtQMCJCQFJgArETU1AAD%2F%2F%2F%2BHAAAETgcHEiYAJAAAEQYAxhttAAmzAwIkAwA%2FNTUAAAAAAv%2BHAAAHJQW2AA8AEwA8QCAKDUxZCgoBBhMDTFkTEwEGBRIJEgYSTFkGAwEOTFkBEgA%2FKwAYPysRADMYPxESOS8rERIAORgvKzEwKQETIQEhASEHIQMhByEDIQETIwEF8Pz3Vv5Q%2FwD%2B%2BgOiA%2Fwr%2FeVUAfgr%2FgpiAhv9TYpS%2FnABlv5qBbbN%2FnXI%2FjUBmwKD%2FX0A%2F%2F8Ah%2F4UBSEFyxImACYAABAHAHoCKwAA%2F%2F8ARgAABIMHcxImACgAABEHAEP%2F8QFSAAq0AQ0NBSYAKxE1%2F%2F8ARgAABIMHcxImACgAABEHAHYAfQFSAAq0ARQUBSYAKxE1%2F%2F8ARgAABIMHcxImACgAABEHAMUAPwFSAAq0ARISBSYAKxE1%2F%2F8ARgAABIMHPhImACgAABEHAGoANQFSAAy1AgEhIQUmACsRNTUAAP%2F%2FAEYAAAJ2B3MSJgAsAAARBwBD%2FuABUgAKtAEFBQUmACsRNf%2F%2FAEYAAAOIB3MSJgAsAAARBwB2%2F6MBUgAKtAEMDAUmACsRNf%2F%2FAEYAAANpB3MSJgAsAAARBwDF%2Fz4BUgAKtAEKCgUmACsRNf%2F%2FAEYAAANgBz4SJgAsAAARBwBq%2F0kBUgAMtQIBGRkFJgArETU1AAAAAgA1AAAFHwW2AA0AGwAtQBcaBwgHTFkXCAgFCgoWTFkKAwUbTFkFEgA%2FKwAYPysREgA5GC8zKxEAMzEwARACBCkBEyM3MxMhIAABMiQSNTQmKwEDIQchAwUfyP6C%2Fv7%2Bb4GSLZCJAXEBDwEk%2FMSxAQiNsKiSXgEdLf7lWgN9%2FvH%2BbNoCb8gCf%2F7e%2FDWsATjIuMH%2BScj%2BWv%2F%2FAEQAAAXdB0gSJgAxAAARBwDHAQABUgAKtAEbGwUmACsRNf%2F%2FAIf%2F7AWNB3MSJgAyAAARBwBDAG8BUgAKtAIdHQUmACsRNf%2F%2FAIf%2F7AWNB3MSJgAyAAARBwB2ARcBUgAKtAIkJAUmACsRNf%2F%2FAIf%2F7AWNB3MSJgAyAAARBwDFAMkBUgAKtAIiIgUmACsRNf%2F%2FAIf%2F7AWNB0gSJgAyAAARBwDHANkBUgAKtAIlJQUmACsRNf%2F%2FAIf%2F7AWNBz4SJgAyAAARBwBqAMUBUgAMtQMCMTEFJgArETU1AAAAAQCTAR8EAASHAAsAFkAKAwAGCQQCCggEAgAvMy8zEhc5MTAJATcJARcJAQcJAScByf7KfQE4ATl%2F%2FsUBN3v%2Bx%2F7IegLTATd9%2FssBNXv%2Bx%2F7HewE1%2Fs17AAMAbf%2BqBbQGBAAVAB4AJwAuQBodIRwiBCQWERQJBgQEDw8WTFkPBAQkTFkEEwA%2FKwAYPysREgAXORESFzkxMAEQAgQjIicHJzcmNRASJDMyFzcXBxYlIgYCFRQXASYTNCcBFjMyNhIFjb7%2Bs9zBfXaFgWfFAVbZvYB3hYVe%2FduN4IIYApxQvxP9a0t3i998A5r%2B6f5M41OVaKCK4wELAbnqXpVopoKOuv6oz1hMA0RB%2FpZYN%2FzHOL8BUgD%2F%2FwCY%2F%2BwFiwdzEiYAOAAAEQcAQwBOAVIACrQBFxcFJgArETX%2F%2FwCY%2F%2BwFiwdzEiYAOAAAEQcAdgEbAVIACrQBHh4FJgArETX%2F%2FwCY%2F%2BwFiwdzEiYAOAAAEQcAxQC2AVIACrQBHBwFJgArETX%2F%2FwCY%2F%2BwFiwc%2BEiYAOAAAEQcAagCwAVIADLUCASsrBSYAKxE1NQAA%2F%2F8AugAABQAHcxImADwAABEHAHYAZgFSAAq0ARERBSYAKxE1AAIARgAABGQFtgAMABUAH0ARCRVMWQ0ETFkJDQkNBgcDBhIAPz8SOTkvLysrMTABFAAhIwMjATMHMzIWATMyNjU0JisBBGT%2Bs%2F7KbELtATXtM2Hj6%2F06YLDFd3l5AzHz%2FvP%2BzwW288r%2BAZ2UbWIAAAAB%2Fv7%2BFAS2BhsAOQAsQBgxFCUDHQwMNEdZDAAdIkhZHRYABUZZABsAPysAGD8rABg%2FKxESABc5MTADIic1FjMyNjcBPgEzMhYVFAcOARUUFx4CFRQGIyInNRYzMjY1NCYnLgE1NDY3PgE1NCYjIgcBDgF1RUg9NEFTFgEGMPrgvNGzdj1Ka0gm6Ma2ZX5%2BaXYvWFJOWVtiUV5V0jT%2B%2BCq5%2FhQXwRVXaATS58ygh6mCV0EjLDlUVmM8rMhByVZYUDBKRkBzRUuAPEJcNEFI7%2FsUxa4A%2F%2F8AXv%2FsBH8GIRImAEQAABEGAEO5AAAKtAIiIhEmACsRNQAA%2F%2F8AXv%2FsBH8GIRImAEQAABEGAHZaAAAKtAIpKREmACsRNQAA%2F%2F8AXv%2FsBH8GIRImAEQAABEGAMX9AAAKtAInJxEmACsRNQAA%2F%2F8AXv%2FsBH8F9hImAEQAABEGAMcSAAAKtAIqKhEmACsRNQAA%2F%2F8AXv%2FsBH8F7BImAEQAABEGAGr%2FAAAMtQMCNjYRJgArETU1%2F%2F8AXv%2FsBH8GmhImAEQAABEGAMboAAAMtQMCJCQRJgArETU1AAMAXv%2FsBo8EZgApADcAQQA%2FQCM7IUhZOzsGAhQXBAkQFQ84MRAxRlkaEBAEFSUqCSpGWQAJFgA%2FMysRADMYPz8zKxEAMxg%2FERIXOTkvKzEwBSInByM3Iw4BIyImNTQSNjMyFhczNzMHPgEzMhYVFAQhIwcUFjMyNxUGJTI2EjU0JiMiBgIVFBYBIgYHMzI2NTQmBKLeUxeXFAhVoV6Gl4rvjViALAk%2FlBkzoGSMof6z%2FswtBHlzfbSv%2FIZVm2BNS1WVU0oDn2erJR%2B71EQUiXWwalrOtckBYsxXW551P0qZfbbNPHV4VL1PvqEBDoRbbqD%2B%2BotpYgMIrI1rYDo0AP%2F%2FAF7%2BFAPNBGYSJgBGAAAQBwB6AYEAAP%2F%2FAF7%2F7AP6BiESJgBIAAARBgBDlwAACrQCJSURJgArETUAAP%2F%2FAF7%2F7AQWBiESJgBIAAARBgB2MQAACrQCLCwRJgArETUAAP%2F%2FAF7%2F7AQJBiESJgBIAAARBgDF3gAACrQCKioRJgArETUAAP%2F%2FAF7%2F7AP6BewSJgBIAAARBgBq2gAADLUDAjk5ESYAKxE1Nf%2F%2FAC8AAAIYBiESJgDCAAARBwBD%2FoIAAAAKtAEFBREmACsRNf%2F%2FAC8AAAMdBiESJgDCAAARBwB2%2FzgAAAAKtAEMDBEmACsRNf%2F%2FAC8AAAMJBiESJgDCAAARBwDF%2Ft4AAAAKtAEKChEmACsRNf%2F%2FAC8AAAL7BewSJgDCAAARBwBq%2FuQAAAAMtQIBGRkRJgArETU1AAAAAgBQ%2F%2BwEewYlAB0AKwA2QBwFCAAbBAYcHAMZDhUVJUdZFRUOBgMBDh5HWQ4WAD8rABg%2FMxI5LysREgA5EjkYLxIXOTEwASYnNxYXNxcHFhEUAgQjIiY1NBI2MzIWFzMmJwcnEzI%2BATU0JiMiDgEVFBYChyxbaoFQ%2BkbZm5L%2B%2BrXF24Puk2CQKQYKe%2FpIUFyLTmhcW4tKYgUtKTeYSEqKf3nN%2Fs3%2F%2FoW%2F1sOiARKcTUbzjI6B%2B%2B53x2phdHDDc2hvAAAA%2F%2F8ALwAABH0F9hImAFEAABEGAMclAAAKtAEiIhEmACsRNQAA%2F%2F8AXv%2FuBDcGIRImAFIAABEGAEOfAAAKtAIdHREmACsRNQAA%2F%2F8AXv%2FuBDcGIRImAFIAABEGAHZIAAAKtAIkJBEmACsRNQAA%2F%2F8AXv%2FuBDcGIRImAFIAABEGAMXzAAAKtAIiIhEmACsRNQAA%2F%2F8AXv%2FuBFoF9hImAFIAABEGAMcCAAAKtAIlJREmACsRNQAA%2F%2F8AXv%2FuBDcF7BImAFIAABEGAGrvAAAMtQMCMTERJgArETU1AAMAdQDsBB0EtgADAA8AGwAcQAwHDRkTDRMBAQBSWQEALysRADMzGC8zLzMxMBM1IRUBNDYzMhYVFAYjIiYRNDYzMhYVFAYjIiZ1A6j9rj8%2BPkFFOjpDPz4%2BQUU6OkMCd7S0%2Fv5AR0g%2FQElHAvxAR0g%2FQElHAAAAAAMAM%2F%2BmBFoEkwAVAB0AJgAuQBocJBslBB4WERQJBgQEDw8WR1kPEAQeR1kEFgA%2FKwAYPysREgAXORESFzkxMAEUAgYjIicHJzcmNTQSJDMyFzcXBxYlIgIVFBcBJgMyPgE1NCcBFgQ1lP2iiWJpe3NGjQECqYhnVn1kP%2F5YjbwIAbotyVmUVQb%2BTCkCvND%2BsK47g2CNaJ3IAUq6PWxgdWRO%2Ft3bJyMCJSP9AIXrjC0W%2FeIh%2F%2F8Ab%2F%2FsBIcGIRImAFgAABEGAEOhAAAKtAEbGxEmACsRNQAA%2F%2F8Ab%2F%2FsBIcGIRImAFgAABEGAHZzAAAKtAEiIhEmACsRNQAA%2F%2F8Ab%2F%2FsBIcGIRImAFgAABEGAMUQAAAKtAEgIBEmACsRNQAA%2F%2F8Ab%2F%2FsBIcF7BImAFgAABEGAGoGAAAMtQIBLy8RJgArETU1%2F%2F%2F%2FVv4UBFIGIRImAFwAABEGAHb5AAAKtAEgIBEmACsRNQAAAAL%2Fyf4UBFAGFAAWACQAJ0AUBA0AEAkACBsQF0ZZEBAAHkZZABYAPysAGD8rABg%2FPxESOTkxMAUiJicjBgcDIwEzDgEHMzYzMhYVFAIGAyIGAhUUFjMyNhI1NCYCSl6OKwgHEmDpAbDrMDIzCJutkKGI6RxUnmBcVlaTVlIUW1VbXv4xCADf6K%2FIzLnM%2Fp3GA7qi%2FveGYmmaAQiRZGUAAP%2F%2F%2F1b%2BFARSBewSJgBcAAARBgBqmQAADLUCAS0tESYAKxE1NQABAC8AAAIGBFIAAwAKswIPARUAPz8xMCEjEzMBG%2Bzs6wRSAAACAIf%2F7AdSBc0AFQAhADpAIBATTFkQEAEMDA9MWQwDChtMWQoEARRMWQESAxZMWQMTAD8rABg%2FKwAYPysAGD8rERIAORgvKzEwKQEGIyAAERASJDMyFyEHIQMhByEDIQUyNxMmIyIGAhUUFgYd%2FTNUVv79%2FuTFAVbZkU4C%2BCv95VQB%2BCv%2BCGACG%2FxsSkHeRHGK4H%2BjFAErAQgBCwG56hfN%2FnXI%2FjUTGwQOH8D%2Bq8qtvAAAAAADAF7%2F7AbDBGYAIgAvADkAO0AeDgMFDDMYSFkzMwUMMCMMI0ZZEQwQHCoFKkZZAAUWAD8zKxEAMxg%2FMysRADMREjkYLysREgA5OTEwBSImJwYjIiY1NBIkMzIXPgEzMhYVFAQhIwcUFjMyNjcVDgEBIg4BFRQWMzISNTQmJSIGBzMyNjU0JgTJeLkwie262pMA%2F6btYknKfZ%2Bv%2FrX%2Bzi8DcXFFg29bqP1dV41XYVuPrWMCiWmuIh%2B90jwUXFy258XOAU2vwFtnlYG3zDxvfiMxvSskA7aA9ZF0egEl6291EKuObGUwOAAAAQFiBNkEKwYhAA0ADrQDC4AGAQAvMxrNMjEwASMmJwYHIzU%2BATczFhcEK5hMVYNppIp%2BG%2FgmiATZP3NuRBmAhyhjzAACAh0E1wP0BpoACwAXABlADg8PCR8JLwkDcAkBCRUDAC8zzF1dMjEwARQGIyImNTQ2MzIWBzQmIyIGFRQWMzI2A%2FSEamp%2FgmdohoM8Ly07NTMvPAW6aHt6Z2d7eWkyOTkyMTc3AAAAAAEBRgTXBFgF9gAVACFAEBAABQsACwALfxSPFAIUgAkALxrMXTk5Ly8RMxEzMTABIi4CIyIGByMSMzIeAjMyNjczAgNULUtEPyAmMhKJOccuTkM8HSgyF4lCBNkiKSI3OAEdIykjNTz%2B4wAAAAEALwHFA6AChwADAAixAAEALzMxMBM3IQcvKwNGKwHFwsIAAAEALwHFB3cChwADAAixAAEALzMxMBM3IQcvKwcdKwHFwsIAAAEAdwPBAjEFtgAHAAmyAAQDAD%2FNMTATJzYSNzMCB30GIpFXsHpNA8EWTAEKif7i1wAAAAABAHMDwQIvBbYACAAJsgUIAwA%2FzjEwARcGAgcjNhI3AicIJZNSsit%2BHQW2FlP%2B839fAUBWAAAAAAH%2Fmv74AVYA7gAGAAixBAAAL80xMCUXBgcjNhMBTghsnrJpX%2B4X6fbuAQgAAgB3A8EDyQW2AAYADgANtAAHAwsDAD8zzTIxMAEnNhMzAgchJzYSNzMCBwIXCVS3sHpN%2FXsGIpFXsHpNA8EWvgEh%2FuLXFkwBCon%2B4tcAAAACAHMDwQPHBbYACAAQAA20DQUQCAMAPzPOMjEwARcGAgcjNhI3IRcGAyM2EjcCJwglk1KyK34dAoUJYquwM3QgBbYWU%2F7zf18BQFYW3P79cgEmXQAC%2F5r%2B%2BALuAO4ABgANAAyzCwQNAAAvMs0yMTAlFwYHIzYTIRcGAyMSNwFOCGyesmlfAoMJXK%2BweE%2FuF%2Bn27gEIF87%2B7wEZ3QABAJgBzQKkBAgACwAIsQkDAC8vMTATNDYzMhYVFAYjIiaYp4xkdaSRZnECrJzAbXKcwHMAAQBQAGQCYgPjAAYACLEFAQAvxDEwEwEXARMHA1ABi4f%2B4Jmy2QI9AaZ2%2FrL%2BkUwBwQAAAAEACgBcAh0D2wAGAAixAQUAL8QxMAkBJwEDNxMCHf50hwEhmrPZAgL%2BWncBTgFuTP5AAAAB%2FgIAAAMCBbYAAwAKswMDAhIAPz8xMAkBIwEDAvvFxQQ9Bbb6SgW2AAAAAAIARgJKAwQFvAAKABAAJUAUDQcBBQkFBgMPEB8QAhAQAwceAyAAPz8SOS9dFzMRMxEzMTABIwcjNyE3ATMDMyE%2FAQYPAQLneie3J%2F6QGgHdxXl7%2Fs80IiBCuwL6sLCJAjn9zd2BM1DbAAAAAAEAM%2F%2FsBNkFywAnAFNALwYcHRxQWQMdCxcYF1BZCBgPHR8dAgkAGHAYAgsDHRgdGBMhIQBNWSEHEw5OWRMZAD8rABg%2FKxESADk5GC8vX15dXl0RMysRADMRMysRADMxMAEiBgchByEGByEHIRQWMzI3FQYjIgI1IzczNjcjNzMSADMyFhcHLgEDkXbBQQGDIf5uEgoBVCH%2BwXmHeIqBsdjkoiGLDwyJIJRcAUfQWJlQZjZqBQKuqJpDSJuhkzzLPQEE%2FJtfLJoBBAEbLDe0IiwAAAAAAAABAAAjAAABBdMYAAAKCvIABQAk%2F3EABQA3ACkABQA5ACkABQA6ACkABQA8ABQABQBE%2F64ABQBG%2F4UABQBH%2F4UABQBI%2F4UABQBK%2F8MABQBQ%2F8MABQBR%2F8MABQBS%2F4UABQBT%2F8MABQBU%2F4UABQBV%2F8MABQBW%2F8MABQBY%2F8MABQCC%2F3EABQCD%2F3EABQCE%2F3EABQCF%2F3EABQCG%2F3EABQCH%2F3EABQCfABQABQCi%2F4UABQCj%2F64ABQCk%2F64ABQCl%2F64ABQCm%2F64ABQCn%2F64ABQCo%2F64ABQCp%2F4UABQCq%2F4UABQCr%2F4UABQCs%2F4UABQCt%2F4UABQC0%2F4UABQC1%2F4UABQC2%2F4UABQC3%2F4UABQC4%2F4UABQC6%2F4UABQC7%2F8MABQC8%2F8MABQC9%2F8MABQC%2B%2F8MABQDE%2F4UACgAk%2F3EACgA3ACkACgA5ACkACgA6ACkACgA8ABQACgBE%2F64ACgBG%2F4UACgBH%2F4UACgBI%2F4UACgBK%2F8MACgBQ%2F8MACgBR%2F8MACgBS%2F4UACgBT%2F8MACgBU%2F4UACgBV%2F8MACgBW%2F8MACgBY%2F8MACgCC%2F3EACgCD%2F3EACgCE%2F3EACgCF%2F3EACgCG%2F3EACgCH%2F3EACgCfABQACgCi%2F4UACgCj%2F64ACgCk%2F64ACgCl%2F64ACgCm%2F64ACgCn%2F64ACgCo%2F64ACgCp%2F4UACgCq%2F4UACgCr%2F4UACgCs%2F4UACgCt%2F4UACgC0%2F4UACgC1%2F4UACgC2%2F4UACgC3%2F4UACgC4%2F4UACgC6%2F4UACgC7%2F8MACgC8%2F8MACgC9%2F8MACgC%2B%2F8MACgDE%2F4UACwAtALgADwAm%2F5oADwAq%2F5oADwAy%2F5oADwA0%2F5oADwA3%2F3EADwA4%2F9cADwA5%2F4UADwA6%2F4UADwA8%2F4UADwCJ%2F5oADwCU%2F5oADwCV%2F5oADwCW%2F5oADwCX%2F5oADwCY%2F5oADwCa%2F5oADwCb%2F9cADwCc%2F9cADwCd%2F9cADwCe%2F9cADwCf%2F4UADwDD%2F5oAEAA3%2F64AEQAm%2F5oAEQAq%2F5oAEQAy%2F5oAEQA0%2F5oAEQA3%2F3EAEQA4%2F9cAEQA5%2F4UAEQA6%2F4UAEQA8%2F4UAEQCJ%2F5oAEQCU%2F5oAEQCV%2F5oAEQCW%2F5oAEQCX%2F5oAEQCY%2F5oAEQCa%2F5oAEQCb%2F9cAEQCc%2F9cAEQCd%2F9cAEQCe%2F9cAEQCf%2F4UAEQDD%2F5oAJAAF%2F3EAJAAK%2F3EAJAAm%2F9cAJAAq%2F9cAJAAtAQoAJAAy%2F9cAJAA0%2F9cAJAA3%2F3EAJAA5%2F64AJAA6%2F64AJAA8%2F4UAJACJ%2F9cAJACU%2F9cAJACV%2F9cAJACW%2F9cAJACX%2F9cAJACY%2F9cAJACa%2F9cAJACf%2F4UAJADD%2F9cAJADL%2F3EAJADO%2F3EAJQAP%2F64AJQAR%2F64AJQAk%2F9cAJQA3%2F8MAJQA5%2F%2BwAJQA6%2F%2BwAJQA7%2F9cAJQA8%2F%2BwAJQA9%2F%2BwAJQCC%2F9cAJQCD%2F9cAJQCE%2F9cAJQCF%2F9cAJQCG%2F9cAJQCH%2F9cAJQCf%2F%2BwAJQDM%2F64AJQDP%2F64AJgAm%2F9cAJgAq%2F9cAJgAy%2F9cAJgA0%2F9cAJgCJ%2F9cAJgCU%2F9cAJgCV%2F9cAJgCW%2F9cAJgCX%2F9cAJgCY%2F9cAJgCa%2F9cAJgDD%2F9cAJwAP%2F64AJwAR%2F64AJwAk%2F9cAJwA3%2F8MAJwA5%2F%2BwAJwA6%2F%2BwAJwA7%2F9cAJwA8%2F%2BwAJwA9%2F%2BwAJwCC%2F9cAJwCD%2F9cAJwCE%2F9cAJwCF%2F9cAJwCG%2F9cAJwCH%2F9cAJwCf%2F%2BwAJwDM%2F64AJwDP%2F64AKAAtAHsAKQAP%2F4UAKQAR%2F4UAKQAiACkAKQAk%2F9cAKQCC%2F9cAKQCD%2F9cAKQCE%2F9cAKQCF%2F9cAKQCG%2F9cAKQCH%2F9cAKQDM%2F4UAKQDP%2F4UALgAm%2F9cALgAq%2F9cALgAy%2F9cALgA0%2F9cALgCJ%2F9cALgCU%2F9cALgCV%2F9cALgCW%2F9cALgCX%2F9cALgCY%2F9cALgCa%2F9cALgDD%2F9cALwAF%2F1wALwAK%2F1wALwAm%2F9cALwAq%2F9cALwAy%2F9cALwA0%2F9cALwA3%2F9cALwA4%2F%2BwALwA5%2F9cALwA6%2F9cALwA8%2F8MALwCJ%2F9cALwCU%2F9cALwCV%2F9cALwCW%2F9cALwCX%2F9cALwCY%2F9cALwCa%2F9cALwCb%2F%2BwALwCc%2F%2BwALwCd%2F%2BwALwCe%2F%2BwALwCf%2F8MALwDD%2F9cALwDL%2F1wALwDO%2F1wAMgAP%2F64AMgAR%2F64AMgAk%2F9cAMgA3%2F8MAMgA5%2F%2BwAMgA6%2F%2BwAMgA7%2F9cAMgA8%2F%2BwAMgA9%2F%2BwAMgCC%2F9cAMgCD%2F9cAMgCE%2F9cAMgCF%2F9cAMgCG%2F9cAMgCH%2F9cAMgCf%2F%2BwAMgDM%2F64AMgDP%2F64AMwAP%2FvYAMwAR%2FvYAMwAk%2F5oAMwA7%2F9cAMwA9%2F%2BwAMwCC%2F5oAMwCD%2F5oAMwCE%2F5oAMwCF%2F5oAMwCG%2F5oAMwCH%2F5oAMwDM%2FvYAMwDP%2FvYANAAP%2F64ANAAR%2F64ANAAk%2F9cANAA3%2F8MANAA5%2F%2BwANAA6%2F%2BwANAA7%2F9cANAA8%2F%2BwANAA9%2F%2BwANACC%2F9cANACD%2F9cANACE%2F9cANACF%2F9cANACG%2F9cANACH%2F9cANACf%2F%2BwANADM%2F64ANADP%2F64ANwAP%2F4UANwAQ%2F64ANwAR%2F4UANwAiACkANwAk%2F3EANwAm%2F9cANwAq%2F9cANwAy%2F9cANwA0%2F9cANwA3ACkANwBE%2F1wANwBG%2F3EANwBH%2F3EANwBI%2F3EANwBK%2F3EANwBQ%2F5oANwBR%2F5oANwBS%2F3EANwBT%2F5oANwBU%2F3EANwBV%2F5oANwBW%2F4UANwBY%2F5oANwBZ%2F9cANwBa%2F9cANwBb%2F9cANwBc%2F9cANwBd%2F64ANwCC%2F3EANwCD%2F3EANwCE%2F3EANwCF%2F3EANwCG%2F3EANwCH%2F3EANwCJ%2F9cANwCU%2F9cANwCV%2F9cANwCW%2F9cANwCX%2F9cANwCY%2F9cANwCa%2F9cANwCi%2F3EANwCj%2F1wANwCk%2F1wANwCl%2F1wANwCm%2F1wANwCn%2F1wANwCo%2F1wANwCp%2F3EANwCq%2F3EANwCr%2F3EANwCs%2F3EANwCt%2F3EANwC0%2F3EANwC1%2F3EANwC2%2F3EANwC3%2F3EANwC4%2F3EANwC6%2F3EANwC7%2F5oANwC8%2F5oANwC9%2F5oANwC%2B%2F5oANwC%2F%2F9cANwDD%2F9cANwDE%2F3EANwDI%2F64ANwDJ%2F64ANwDM%2F4UANwDP%2F4UAOAAP%2F9cAOAAR%2F9cAOAAk%2F%2BwAOACC%2F%2BwAOACD%2F%2BwAOACE%2F%2BwAOACF%2F%2BwAOACG%2F%2BwAOACH%2F%2BwAOADM%2F9cAOADP%2F9cAOQAP%2F5oAOQAR%2F5oAOQAiACkAOQAk%2F64AOQAm%2F%2BwAOQAq%2F%2BwAOQAy%2F%2BwAOQA0%2F%2BwAOQBE%2F9cAOQBG%2F9cAOQBH%2F9cAOQBI%2F9cAOQBK%2F%2BwAOQBQ%2F%2BwAOQBR%2F%2BwAOQBS%2F9cAOQBT%2F%2BwAOQBU%2F9cAOQBV%2F%2BwAOQBW%2F%2BwAOQBY%2F%2BwAOQCC%2F64AOQCD%2F64AOQCE%2F64AOQCF%2F64AOQCG%2F64AOQCH%2F64AOQCJ%2F%2BwAOQCU%2F%2BwAOQCV%2F%2BwAOQCW%2F%2BwAOQCX%2F%2BwAOQCY%2F%2BwAOQCa%2F%2BwAOQCi%2F9cAOQCj%2F9cAOQCk%2F9cAOQCl%2F9cAOQCm%2F9cAOQCn%2F9cAOQCo%2F9cAOQCp%2F9cAOQCq%2F9cAOQCr%2F9cAOQCs%2F9cAOQCt%2F9cAOQC0%2F9cAOQC1%2F9cAOQC2%2F9cAOQC3%2F9cAOQC4%2F9cAOQC6%2F9cAOQC7%2F%2BwAOQC8%2F%2BwAOQC9%2F%2BwAOQC%2B%2F%2BwAOQDD%2F%2BwAOQDE%2F9cAOQDM%2F5oAOQDP%2F5oAOgAP%2F5oAOgAR%2F5oAOgAiACkAOgAk%2F64AOgAm%2F%2BwAOgAq%2F%2BwAOgAy%2F%2BwAOgA0%2F%2BwAOgBE%2F9cAOgBG%2F9cAOgBH%2F9cAOgBI%2F9cAOgBK%2F%2BwAOgBQ%2F%2BwAOgBR%2F%2BwAOgBS%2F9cAOgBT%2F%2BwAOgBU%2F9cAOgBV%2F%2BwAOgBW%2F%2BwAOgBY%2F%2BwAOgCC%2F64AOgCD%2F64AOgCE%2F64AOgCF%2F64AOgCG%2F64AOgCH%2F64AOgCJ%2F%2BwAOgCU%2F%2BwAOgCV%2F%2BwAOgCW%2F%2BwAOgCX%2F%2BwAOgCY%2F%2BwAOgCa%2F%2BwAOgCi%2F9cAOgCj%2F9cAOgCk%2F9cAOgCl%2F9cAOgCm%2F9cAOgCn%2F9cAOgCo%2F9cAOgCp%2F9cAOgCq%2F9cAOgCr%2F9cAOgCs%2F9cAOgCt%2F9cAOgC0%2F9cAOgC1%2F9cAOgC2%2F9cAOgC3%2F9cAOgC4%2F9cAOgC6%2F9cAOgC7%2F%2BwAOgC8%2F%2BwAOgC9%2F%2BwAOgC%2B%2F%2BwAOgDD%2F%2BwAOgDE%2F9cAOgDM%2F5oAOgDP%2F5oAOwAm%2F9cAOwAq%2F9cAOwAy%2F9cAOwA0%2F9cAOwCJ%2F9cAOwCU%2F9cAOwCV%2F9cAOwCW%2F9cAOwCX%2F9cAOwCY%2F9cAOwCa%2F9cAOwDD%2F9cAPAAP%2F4UAPAAR%2F4UAPAAiACkAPAAk%2F4UAPAAm%2F9cAPAAq%2F9cAPAAy%2F9cAPAA0%2F9cAPABE%2F5oAPABG%2F5oAPABH%2F5oAPABI%2F5oAPABK%2F9cAPABQ%2F8MAPABR%2F8MAPABS%2F5oAPABT%2F8MAPABU%2F5oAPABV%2F8MAPABW%2F64APABY%2F8MAPABd%2F9cAPACC%2F4UAPACD%2F4UAPACE%2F4UAPACF%2F4UAPACG%2F4UAPACH%2F4UAPACJ%2F9cAPACU%2F9cAPACV%2F9cAPACW%2F9cAPACX%2F9cAPACY%2F9cAPACa%2F9cAPACi%2F5oAPACj%2F5oAPACk%2F5oAPACl%2F5oAPACm%2F5oAPACn%2F5oAPACo%2F5oAPACp%2F5oAPACq%2F5oAPACr%2F5oAPACs%2F5oAPACt%2F5oAPAC0%2F5oAPAC1%2F5oAPAC2%2F5oAPAC3%2F5oAPAC4%2F5oAPAC6%2F5oAPAC7%2F8MAPAC8%2F8MAPAC9%2F8MAPAC%2B%2F8MAPADD%2F9cAPADE%2F5oAPADM%2F4UAPADP%2F4UAPQAm%2F%2BwAPQAq%2F%2BwAPQAy%2F%2BwAPQA0%2F%2BwAPQCJ%2F%2BwAPQCU%2F%2BwAPQCV%2F%2BwAPQCW%2F%2BwAPQCX%2F%2BwAPQCY%2F%2BwAPQCa%2F%2BwAPQDD%2F%2BwAPgAtALgARAAF%2F%2BwARAAK%2F%2BwARADL%2F%2BwARADO%2F%2BwARQAF%2F%2BwARQAK%2F%2BwARQBZ%2F9cARQBa%2F9cARQBb%2F9cARQBc%2F9cARQBd%2F%2BwARQC%2F%2F9cARQDL%2F%2BwARQDO%2F%2BwARgAFACkARgAKACkARgDLACkARgDOACkASAAF%2F%2BwASAAK%2F%2BwASABZ%2F9cASABa%2F9cASABb%2F9cASABc%2F9cASABd%2F%2BwASAC%2F%2F9cASADL%2F%2BwASADO%2F%2BwASQAFAHsASQAKAHsASQDLAHsASQDOAHsASwAF%2F%2BwASwAK%2F%2BwASwDL%2F%2BwASwDO%2F%2BwATgBG%2F9cATgBH%2F9cATgBI%2F9cATgBS%2F9cATgBU%2F9cATgCi%2F9cATgCp%2F9cATgCq%2F9cATgCr%2F9cATgCs%2F9cATgCt%2F9cATgC0%2F9cATgC1%2F9cATgC2%2F9cATgC3%2F9cATgC4%2F9cATgC6%2F9cATgDE%2F9cAUAAF%2F%2BwAUAAK%2F%2BwAUADL%2F%2BwAUADO%2F%2BwAUQAF%2F%2BwAUQAK%2F%2BwAUQDL%2F%2BwAUQDO%2F%2BwAUgAF%2F%2BwAUgAK%2F%2BwAUgBZ%2F9cAUgBa%2F9cAUgBb%2F9cAUgBc%2F9cAUgBd%2F%2BwAUgC%2F%2F9cAUgDL%2F%2BwAUgDO%2F%2BwAUwAF%2F%2BwAUwAK%2F%2BwAUwBZ%2F9cAUwBa%2F9cAUwBb%2F9cAUwBc%2F9cAUwBd%2F%2BwAUwC%2F%2F9cAUwDL%2F%2BwAUwDO%2F%2BwAVQAFAFIAVQAKAFIAVQBE%2F9cAVQBG%2F9cAVQBH%2F9cAVQBI%2F9cAVQBK%2F%2BwAVQBS%2F9cAVQBU%2F9cAVQCi%2F9cAVQCj%2F9cAVQCk%2F9cAVQCl%2F9cAVQCm%2F9cAVQCn%2F9cAVQCo%2F9cAVQCp%2F9cAVQCq%2F9cAVQCr%2F9cAVQCs%2F9cAVQCt%2F9cAVQC0%2F9cAVQC1%2F9cAVQC2%2F9cAVQC3%2F9cAVQC4%2F9cAVQC6%2F9cAVQDE%2F9cAVQDLAFIAVQDOAFIAVwAFACkAVwAKACkAVwDLACkAVwDOACkAWQAFAFIAWQAKAFIAWQAP%2F64AWQAR%2F64AWQAiACkAWQDLAFIAWQDM%2F64AWQDOAFIAWQDP%2F64AWgAFAFIAWgAKAFIAWgAP%2F64AWgAR%2F64AWgAiACkAWgDLAFIAWgDM%2F64AWgDOAFIAWgDP%2F64AWwBG%2F9cAWwBH%2F9cAWwBI%2F9cAWwBS%2F9cAWwBU%2F9cAWwCi%2F9cAWwCp%2F9cAWwCq%2F9cAWwCr%2F9cAWwCs%2F9cAWwCt%2F9cAWwC0%2F9cAWwC1%2F9cAWwC2%2F9cAWwC3%2F9cAWwC4%2F9cAWwC6%2F9cAWwDE%2F9cAXAAFAFIAXAAKAFIAXAAP%2F64AXAAR%2F64AXAAiACkAXADLAFIAXADM%2F64AXADOAFIAXADP%2F64AXgAtALgAggAF%2F3EAggAK%2F3EAggAm%2F9cAggAq%2F9cAggAtAQoAggAy%2F9cAggA0%2F9cAggA3%2F3EAggA5%2F64AggA6%2F64AggA8%2F4UAggCJ%2F9cAggCU%2F9cAggCV%2F9cAggCW%2F9cAggCX%2F9cAggCY%2F9cAggCa%2F9cAggCf%2F4UAggDD%2F9cAggDL%2F3EAggDO%2F3EAgwAF%2F3EAgwAK%2F3EAgwAm%2F9cAgwAq%2F9cAgwAtAQoAgwAy%2F9cAgwA0%2F9cAgwA3%2F3EAgwA5%2F64AgwA6%2F64AgwA8%2F4UAgwCJ%2F9cAgwCU%2F9cAgwCV%2F9cAgwCW%2F9cAgwCX%2F9cAgwCY%2F9cAgwCa%2F9cAgwCf%2F4UAgwDD%2F9cAgwDL%2F3EAgwDO%2F3EAhAAF%2F3EAhAAK%2F3EAhAAm%2F9cAhAAq%2F9cAhAAtAQoAhAAy%2F9cAhAA0%2F9cAhAA3%2F3EAhAA5%2F64AhAA6%2F64AhAA8%2F4UAhACJ%2F9cAhACU%2F9cAhACV%2F9cAhACW%2F9cAhACX%2F9cAhACY%2F9cAhACa%2F9cAhACf%2F4UAhADD%2F9cAhADL%2F3EAhADO%2F3EAhQAF%2F3EAhQAK%2F3EAhQAm%2F9cAhQAq%2F9cAhQAtAQoAhQAy%2F9cAhQA0%2F9cAhQA3%2F3EAhQA5%2F64AhQA6%2F64AhQA8%2F4UAhQCJ%2F9cAhQCU%2F9cAhQCV%2F9cAhQCW%2F9cAhQCX%2F9cAhQCY%2F9cAhQCa%2F9cAhQCf%2F4UAhQDD%2F9cAhQDL%2F3EAhQDO%2F3EAhgAF%2F3EAhgAK%2F3EAhgAm%2F9cAhgAq%2F9cAhgAtAQoAhgAy%2F9cAhgA0%2F9cAhgA3%2F3EAhgA5%2F64AhgA6%2F64AhgA8%2F4UAhgCJ%2F9cAhgCU%2F9cAhgCV%2F9cAhgCW%2F9cAhgCX%2F9cAhgCY%2F9cAhgCa%2F9cAhgCf%2F4UAhgDD%2F9cAhgDL%2F3EAhgDO%2F3EAhwAF%2F3EAhwAK%2F3EAhwAm%2F9cAhwAq%2F9cAhwAtAQoAhwAy%2F9cAhwA0%2F9cAhwA3%2F3EAhwA5%2F64AhwA6%2F64AhwA8%2F4UAhwCJ%2F9cAhwCU%2F9cAhwCV%2F9cAhwCW%2F9cAhwCX%2F9cAhwCY%2F9cAhwCa%2F9cAhwCf%2F4UAhwDD%2F9cAhwDL%2F3EAhwDO%2F3EAiAAtAHsAiQAm%2F9cAiQAq%2F9cAiQAy%2F9cAiQA0%2F9cAiQCJ%2F9cAiQCU%2F9cAiQCV%2F9cAiQCW%2F9cAiQCX%2F9cAiQCY%2F9cAiQCa%2F9cAiQDD%2F9cAigAtAHsAiwAtAHsAjAAtAHsAjQAtAHsAkgAP%2F64AkgAR%2F64AkgAk%2F9cAkgA3%2F8MAkgA5%2F%2BwAkgA6%2F%2BwAkgA7%2F9cAkgA8%2F%2BwAkgA9%2F%2BwAkgCC%2F9cAkgCD%2F9cAkgCE%2F9cAkgCF%2F9cAkgCG%2F9cAkgCH%2F9cAkgCf%2F%2BwAkgDM%2F64AkgDP%2F64AlAAP%2F64AlAAR%2F64AlAAk%2F9cAlAA3%2F8MAlAA5%2F%2BwAlAA6%2F%2BwAlAA7%2F9cAlAA8%2F%2BwAlAA9%2F%2BwAlACC%2F9cAlACD%2F9cAlACE%2F9cAlACF%2F9cAlACG%2F9cAlACH%2F9cAlACf%2F%2BwAlADM%2F64AlADP%2F64AlQAP%2F64AlQAR%2F64AlQAk%2F9cAlQA3%2F8MAlQA5%2F%2BwAlQA6%2F%2BwAlQA7%2F9cAlQA8%2F%2BwAlQA9%2F%2BwAlQCC%2F9cAlQCD%2F9cAlQCE%2F9cAlQCF%2F9cAlQCG%2F9cAlQCH%2F9cAlQCf%2F%2BwAlQDM%2F64AlQDP%2F64AlgAP%2F64AlgAR%2F64AlgAk%2F9cAlgA3%2F8MAlgA5%2F%2BwAlgA6%2F%2BwAlgA7%2F9cAlgA8%2F%2BwAlgA9%2F%2BwAlgCC%2F9cAlgCD%2F9cAlgCE%2F9cAlgCF%2F9cAlgCG%2F9cAlgCH%2F9cAlgCf%2F%2BwAlgDM%2F64AlgDP%2F64AlwAP%2F64AlwAR%2F64AlwAk%2F9cAlwA3%2F8MAlwA5%2F%2BwAlwA6%2F%2BwAlwA7%2F9cAlwA8%2F%2BwAlwA9%2F%2BwAlwCC%2F9cAlwCD%2F9cAlwCE%2F9cAlwCF%2F9cAlwCG%2F9cAlwCH%2F9cAlwCf%2F%2BwAlwDM%2F64AlwDP%2F64AmAAP%2F64AmAAR%2F64AmAAk%2F9cAmAA3%2F8MAmAA5%2F%2BwAmAA6%2F%2BwAmAA7%2F9cAmAA8%2F%2BwAmAA9%2F%2BwAmACC%2F9cAmACD%2F9cAmACE%2F9cAmACF%2F9cAmACG%2F9cAmACH%2F9cAmACf%2F%2BwAmADM%2F64AmADP%2F64AmgAP%2F64AmgAR%2F64AmgAk%2F9cAmgA3%2F8MAmgA5%2F%2BwAmgA6%2F%2BwAmgA7%2F9cAmgA8%2F%2BwAmgA9%2F%2BwAmgCC%2F9cAmgCD%2F9cAmgCE%2F9cAmgCF%2F9cAmgCG%2F9cAmgCH%2F9cAmgCf%2F%2BwAmgDM%2F64AmgDP%2F64AmwAP%2F9cAmwAR%2F9cAmwAk%2F%2BwAmwCC%2F%2BwAmwCD%2F%2BwAmwCE%2F%2BwAmwCF%2F%2BwAmwCG%2F%2BwAmwCH%2F%2BwAmwDM%2F9cAmwDP%2F9cAnAAP%2F9cAnAAR%2F9cAnAAk%2F%2BwAnACC%2F%2BwAnACD%2F%2BwAnACE%2F%2BwAnACF%2F%2BwAnACG%2F%2BwAnACH%2F%2BwAnADM%2F9cAnADP%2F9cAnQAP%2F9cAnQAR%2F9cAnQAk%2F%2BwAnQCC%2F%2BwAnQCD%2F%2BwAnQCE%2F%2BwAnQCF%2F%2BwAnQCG%2F%2BwAnQCH%2F%2BwAnQDM%2F9cAnQDP%2F9cAngAP%2F9cAngAR%2F9cAngAk%2F%2BwAngCC%2F%2BwAngCD%2F%2BwAngCE%2F%2BwAngCF%2F%2BwAngCG%2F%2BwAngCH%2F%2BwAngDM%2F9cAngDP%2F9cAnwAP%2F4UAnwAR%2F4UAnwAiACkAnwAk%2F4UAnwAm%2F9cAnwAq%2F9cAnwAy%2F9cAnwA0%2F9cAnwBE%2F5oAnwBG%2F5oAnwBH%2F5oAnwBI%2F5oAnwBK%2F9cAnwBQ%2F8MAnwBR%2F8MAnwBS%2F5oAnwBT%2F8MAnwBU%2F5oAnwBV%2F8MAnwBW%2F64AnwBY%2F8MAnwBd%2F9cAnwCC%2F4UAnwCD%2F4UAnwCE%2F4UAnwCF%2F4UAnwCG%2F4UAnwCH%2F4UAnwCJ%2F9cAnwCU%2F9cAnwCV%2F9cAnwCW%2F9cAnwCX%2F9cAnwCY%2F9cAnwCa%2F9cAnwCi%2F5oAnwCj%2F5oAnwCk%2F5oAnwCl%2F5oAnwCm%2F5oAnwCn%2F5oAnwCo%2F5oAnwCp%2F5oAnwCq%2F5oAnwCr%2F5oAnwCs%2F5oAnwCt%2F5oAnwC0%2F5oAnwC1%2F5oAnwC2%2F5oAnwC3%2F5oAnwC4%2F5oAnwC6%2F5oAnwC7%2F8MAnwC8%2F8MAnwC9%2F8MAnwC%2B%2F8MAnwDD%2F9cAnwDE%2F5oAnwDM%2F4UAnwDP%2F4UAoAAP%2FvYAoAAR%2FvYAoAAk%2F5oAoAA7%2F9cAoAA9%2F%2BwAoACC%2F5oAoACD%2F5oAoACE%2F5oAoACF%2F5oAoACG%2F5oAoACH%2F5oAoADM%2FvYAoADP%2FvYAogAF%2F%2BwAogAK%2F%2BwAogDL%2F%2BwAogDO%2F%2BwAowAF%2F%2BwAowAK%2F%2BwAowDL%2F%2BwAowDO%2F%2BwApAAF%2F%2BwApAAK%2F%2BwApADL%2F%2BwApADO%2F%2BwApQAF%2F%2BwApQAK%2F%2BwApQDL%2F%2BwApQDO%2F%2BwApgAF%2F%2BwApgAK%2F%2BwApgDL%2F%2BwApgDO%2F%2BwApwAF%2F%2BwApwAK%2F%2BwApwDL%2F%2BwApwDO%2F%2BwAqgAF%2F%2BwAqgAK%2F%2BwAqgBZ%2F9cAqgBa%2F9cAqgBb%2F9cAqgBc%2F9cAqgBd%2F%2BwAqgC%2F%2F9cAqgDL%2F%2BwAqgDO%2F%2BwAqwAF%2F%2BwAqwAK%2F%2BwAqwBZ%2F9cAqwBa%2F9cAqwBb%2F9cAqwBc%2F9cAqwBd%2F%2BwAqwC%2F%2F9cAqwDL%2F%2BwAqwDO%2F%2BwArAAF%2F%2BwArAAK%2F%2BwArABZ%2F9cArABa%2F9cArABb%2F9cArABc%2F9cArABd%2F%2BwArAC%2F%2F9cArADL%2F%2BwArADO%2F%2BwArQAF%2F%2BwArQAK%2F%2BwArQBZ%2F9cArQBa%2F9cArQBb%2F9cArQBc%2F9cArQBd%2F%2BwArQC%2F%2F9cArQDL%2F%2BwArQDO%2F%2BwAsgAF%2F%2BwAsgAK%2F%2BwAsgBZ%2F9cAsgBa%2F9cAsgBb%2F9cAsgBc%2F9cAsgBd%2F%2BwAsgC%2F%2F9cAsgDL%2F%2BwAsgDO%2F%2BwAtAAF%2F%2BwAtAAK%2F%2BwAtABZ%2F9cAtABa%2F9cAtABb%2F9cAtABc%2F9cAtABd%2F%2BwAtAC%2F%2F9cAtADL%2F%2BwAtADO%2F%2BwAtQAF%2F%2BwAtQAK%2F%2BwAtQBZ%2F9cAtQBa%2F9cAtQBb%2F9cAtQBc%2F9cAtQBd%2F%2BwAtQC%2F%2F9cAtQDL%2F%2BwAtQDO%2F%2BwAtgAF%2F%2BwAtgAK%2F%2BwAtgBZ%2F9cAtgBa%2F9cAtgBb%2F9cAtgBc%2F9cAtgBd%2F%2BwAtgC%2F%2F9cAtgDL%2F%2BwAtgDO%2F%2BwAuAAF%2F9cAuAAK%2F9cAuADL%2F9cAuADO%2F9cAugAF%2F%2BwAugAK%2F%2BwAugBZ%2F9cAugBa%2F9cAugBb%2F9cAugBc%2F9cAugBd%2F%2BwAugC%2F%2F9cAugDL%2F%2BwAugDO%2F%2BwAvwAFAFIAvwAKAFIAvwAP%2F64AvwAR%2F64AvwAiACkAvwDLAFIAvwDM%2F64AvwDOAFIAvwDP%2F64AwAAF%2F%2BwAwAAK%2F%2BwAwABZ%2F9cAwABa%2F9cAwABb%2F9cAwABc%2F9cAwABd%2F%2BwAwAC%2F%2F9cAwADL%2F%2BwAwADO%2F%2BwAwQAFAFIAwQAKAFIAwQAP%2F64AwQAR%2F64AwQAiACkAwQDLAFIAwQDM%2F64AwQDOAFIAwQDP%2F64AwwAtAHsAyAA3%2F64AyQA3%2F64AygAk%2F3EAygA3ACkAygA5ACkAygA6ACkAygA8ABQAygBE%2F64AygBG%2F4UAygBH%2F4UAygBI%2F4UAygBK%2F8MAygBQ%2F8MAygBR%2F8MAygBS%2F4UAygBT%2F8MAygBU%2F4UAygBV%2F8MAygBW%2F8MAygBY%2F8MAygCC%2F3EAygCD%2F3EAygCE%2F3EAygCF%2F3EAygCG%2F3EAygCH%2F3EAygCfABQAygCi%2F4UAygCj%2F64AygCk%2F64AygCl%2F64AygCm%2F64AygCn%2F64AygCo%2F64AygCp%2F4UAygCq%2F4UAygCr%2F4UAygCs%2F4UAygCt%2F4UAygC0%2F4UAygC1%2F4UAygC2%2F4UAygC3%2F4UAygC4%2F4UAygC6%2F4UAygC7%2F8MAygC8%2F8MAygC9%2F8MAygC%2B%2F8MAygDE%2F4UAywAk%2F3EAywA3ACkAywA5ACkAywA6ACkAywA8ABQAywBE%2F64AywBG%2F4UAywBH%2F4UAywBI%2F4UAywBK%2F8MAywBQ%2F8MAywBR%2F8MAywBS%2F4UAywBT%2F8MAywBU%2F4UAywBV%2F8MAywBW%2F8MAywBY%2F8MAywCC%2F3EAywCD%2F3EAywCE%2F3EAywCF%2F3EAywCG%2F3EAywCH%2F3EAywCfABQAywCi%2F4UAywCj%2F64AywCk%2F64AywCl%2F64AywCm%2F64AywCn%2F64AywCo%2F64AywCp%2F4UAywCq%2F4UAywCr%2F4UAywCs%2F4UAywCt%2F4UAywC0%2F4UAywC1%2F4UAywC2%2F4UAywC3%2F4UAywC4%2F4UAywC6%2F4UAywC7%2F8MAywC8%2F8MAywC9%2F8MAywC%2B%2F8MAywDE%2F4UAzAAm%2F5oAzAAq%2F5oAzAAy%2F5oAzAA0%2F5oAzAA3%2F3EAzAA4%2F9cAzAA5%2F4UAzAA6%2F4UAzAA8%2F4UAzACJ%2F5oAzACU%2F5oAzACV%2F5oAzACW%2F5oAzACX%2F5oAzACY%2F5oAzACa%2F5oAzACb%2F9cAzACc%2F9cAzACd%2F9cAzACe%2F9cAzACf%2F4UAzADD%2F5oAzQAk%2F3EAzQA3ACkAzQA5ACkAzQA6ACkAzQA8ABQAzQBE%2F64AzQBG%2F4UAzQBH%2F4UAzQBI%2F4UAzQBK%2F8MAzQBQ%2F8MAzQBR%2F8MAzQBS%2F4UAzQBT%2F8MAzQBU%2F4UAzQBV%2F8MAzQBW%2F8MAzQBY%2F8MAzQCC%2F3EAzQCD%2F3EAzQCE%2F3EAzQCF%2F3EAzQCG%2F3EAzQCH%2F3EAzQCfABQAzQCi%2F4UAzQCj%2F64AzQCk%2F64AzQCl%2F64AzQCm%2F64AzQCn%2F64AzQCo%2F64AzQCp%2F4UAzQCq%2F4UAzQCr%2F4UAzQCs%2F4UAzQCt%2F4UAzQC0%2F4UAzQC1%2F4UAzQC2%2F4UAzQC3%2F4UAzQC4%2F4UAzQC6%2F4UAzQC7%2F8MAzQC8%2F8MAzQC9%2F8MAzQC%2B%2F8MAzQDE%2F4UAzwAm%2F5oAzwAq%2F5oAzwAy%2F5oAzwA0%2F5oAzwA3%2F3EAzwA4%2F9cAzwA5%2F4UAzwA6%2F4UAzwA8%2F4UAzwCJ%2F5oAzwCU%2F5oAzwCV%2F5oAzwCW%2F5oAzwCX%2F5oAzwCY%2F5oAzwCa%2F5oAzwCb%2F9cAzwCc%2F9cAzwCd%2F9cAzwCe%2F9cAzwCf%2F4UAzwDD%2F5oAAAAeAW4AAQAAAAAAAAA5AHQAAQAAAAAAAQASANQAAQAAAAAAAgAGAPUAAQAAAAAAAwAuAVoAAQAAAAAABAAZAb0AAQAAAAAABQAMAfEAAQAAAAAABgAXAi4AAQAAAAAABwBSAuwAAQAAAAAACAAUA2kAAQAAAAAACwAcA7gAAQAAAAAADAAuBDMAAQAAAAAADQAuBMAAAQAAAAAADgAqBUUAAQAAAAAAEAAJBYQAAQAAAAAAEQAPBa4AAwABBAkAAAByAAAAAwABBAkAAQAkAK4AAwABBAkAAgAMAOcAAwABBAkAAwBcAPwAAwABBAkABAAyAYkAAwABBAkABQAYAdcAAwABBAkABgAuAf4AAwABBAkABwCkAkYAAwABBAkACAAoAz8AAwABBAkACwA4A34AAwABBAkADABcA9UAAwABBAkADQBcBGIAAwABBAkADgBUBO8AAwABBAkAEAASBXAAAwABBAkAEQAeBY4ARABpAGcAaQB0AGkAegBlAGQAIABkAGEAdABhACAAYwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADEAMAAtADIAMAAxADEALAAgAEcAbwBvAGcAbABlACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAC4AAERpZ2l0aXplZCBkYXRhIGNvcHlyaWdodCCpIDIwMTAtMjAxMSwgR29vZ2xlIENvcnBvcmF0aW9uLgAATwBwAGUAbgAgAFMAYQBuAHMAIABTAGUAbQBpAGIAbwBsAGQAAE9wZW4gU2FucyBTZW1pYm9sZAAASQB0AGEAbABpAGMAAEl0YWxpYwAAQQBzAGMAZQBuAGQAZQByACAALQAgAE8AcABlAG4AIABTAGEAbgBzACAAUwBlAG0AaQBiAG8AbABkACAASQB0AGEAbABpAGMAIABCAHUAaQBsAGQAIAAxADAAMAAAQXNjZW5kZXIgLSBPcGVuIFNhbnMgU2VtaWJvbGQgSXRhbGljIEJ1aWxkIDEwMAAATwBwAGUAbgAgAFMAYQBuAHMAIABTAGUAbQBpAGIAbwBsAGQAIABJAHQAYQBsAGkAYwAAT3BlbiBTYW5zIFNlbWlib2xkIEl0YWxpYwAAVgBlAHIAcwBpAG8AbgAgADEALgAxADAAAFZlcnNpb24gMS4xMAAATwBwAGUAbgBTAGEAbgBzAC0AUwBlAG0AaQBiAG8AbABkAEkAdABhAGwAaQBjAABPcGVuU2Fucy1TZW1pYm9sZEl0YWxpYwAATwBwAGUAbgAgAFMAYQBuAHMAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABHAG8AbwBnAGwAZQAgAGEAbgBkACAAbQBhAHkAIABiAGUAIAByAGUAZwBpAHMAdABlAHIAZQBkACAAaQBuACAAYwBlAHIAdABhAGkAbgAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuAHMALgAAT3BlbiBTYW5zIGlzIGEgdHJhZGVtYXJrIG9mIEdvb2dsZSBhbmQgbWF5IGJlIHJlZ2lzdGVyZWQgaW4gY2VydGFpbiBqdXJpc2RpY3Rpb25zLgAAQQBzAGMAZQBuAGQAZQByACAAQwBvAHIAcABvAHIAYQB0AGkAbwBuAABBc2NlbmRlciBDb3Jwb3JhdGlvbgAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcwBjAGUAbgBkAGUAcgBjAG8AcgBwAC4AYwBvAG0ALwAAaHR0cDovL3d3dy5hc2NlbmRlcmNvcnAuY29tLwAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcwBjAGUAbgBkAGUAcgBjAG8AcgBwAC4AYwBvAG0ALwB0AHkAcABlAGQAZQBzAGkAZwBuAGUAcgBzAC4AaAB0AG0AbAAAaHR0cDovL3d3dy5hc2NlbmRlcmNvcnAuY29tL3R5cGVkZXNpZ25lcnMuaHRtbAAATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMAAATGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMAAAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAcABhAGMAaABlAC4AbwByAGcALwBsAGkAYwBlAG4AcwBlAHMALwBMAEkAQwBFAE4AUwBFAC0AMgAuADAAAGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAAATwBwAGUAbgAgAFMAYQBuAHMAAE9wZW4gU2FucwAAUwBlAG0AaQBiAG8AbABkACAASQB0AGEAbABpAGMAAFNlbWlib2xkIEl0YWxpYwAAAgAA%2F%2FQAAP9mAGYAAAAAAAAAAAAAAAAAAAAAAAAAAADWAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA%2BAD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCsAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAQIAigEDAIMAkwDyAPMAjQCXAIgAwwDeAPEAngCqAPUA9AD2AKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAPAAkQDWANQA1QBoAOsA7QCJAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA6gB4AHoAeQB7AH0AfAC4AKEAfwB%2BAIAAgQDsAO4AugDXALAAsQDYAN0A2QCyALMAtgC3AMQAtAC1AMUAhwC%2BAL8AvAEEAQUHdW5pMDBBRAlvdmVyc2NvcmUMZm91cnN1cGVyaW9yBEV1cm8AAAABAAIACAAK%2F%2F8ADwAAAAEAAAAAyYlvMQAAAADJY0iWAAAAAMnt2GQ%3D%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Code%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAPAIAAAwBwRkZUTWaiaLcAAKVwAAAAHE9TLzJyvPgMAAABeAAAAGBjbWFwVIOo9QAAA8QAAAICY3Z0IAC%2FC3EAAAeAAAAAImZwZ20GWZw3AAAFyAAAAXNnYXNw%2F%2F8AAwAApWgAAAAIZ2x5ZrbD8a4AAAmIAABdUGhlYWT7xXV0AAAA%2FAAAADZoaGVhBi4C3QAAATQAAAAkaG10eDZGLdMAAAHYAAAB6mxvY2F%2FBGjeAAAHpAAAAeJtYXhwAwgBUgAAAVgAAAAgbmFtZXFCsfwAAGbYAAA7ZHBvc3QKYvRKAACiPAAAAylwcmVwJrMjsAAABzwAAABBAAEAAAABBFos1IC0Xw889QAfA%2BgAAAAAzR8W4gAAAADNHxbi%2F%2F%2F%2FBgJVA2sAAAAIAAIAAAAAAAAAAQAAA9j%2B7wAAA%2Bj%2F%2FwAAAlUAAQAAAAAAAAAAAAAAAAAAAAUAAQAAAPAAVgAEAEgABgABAAAAAAAKAAACAACyAAMAAQADAlgBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIAAAAgsFCQMEAwICBCAAAAcAABgBAAAAAAAAAABBREJFAEAADSIVAu7%2FBgAAA9gBEWAAAZMAAAAAAeYCkAAAACAAAQPoAAAAAAAAAU0AAAAAAAACWAAAAAAA4wCDAFcAVQAcACoA9QDQAHoAVABVAMUAVQDbAGMARwBiAEUAOQAnADgATQBGAEQAQwDbAMUAeABVAGsAbQAxACAAZwBCAFUAcwCHADUATwBfAFEAYgCGAFEAUwAwAGYAMQBkAEMAKgBPACsACgA2ACYAQQDiAGMAYwBvADwAuQBRAF0AUAA8AEUAZwBIAF0AWgA3AGoAUQA8AF0APABdADwAkgBIAEUATQAzAAgAQAAxAEcAeAEHAGMATAAAAOMAcQBNADoANQEHAFsAlgAeAKcAUwBVAFUAcACxAK8AVQCuAKwA6wBNAEgA2wDdANAAjgBhABwAHAAnAHsAIAAgACAAIAAgACD%2F%2FwBCAHMAcwBzAHMAXwBfAF8AXwAQAFMAMAAwADAAMAAwAGYALQBPAE8ATwBPACYAZQBYAFEAUQBRAFEAUQBRABEAUABFAEUARQBFAFoAWgBaAFoAPABdADwAPAA8ADwAPABVADwATQBNAE0ATQAxAF0AMQBaACEACwCoAM8AngC5AOsAqACeALEAlgDPANcApwCOAFAAFADRANkA2QBfAGcAZwCXAMUA0wAcAKwAOgBVABwAoQDQAK0ArACsAKkA%2BQCkAJsApQDPANIAAAAAAAMAAAADAAAAHAABAAAAAAD8AAMAAQAAABwABADgAAAANAAgAAQAFAAAAA0AfgD%2FATEBUwLGAtoC3AMEAwgDCgMnHUMdUiAUIBogHiAiIDogRCB0IKwiEiIV%2F%2F8AAAAAAA0AIACgATEBUgLGAtoC3AMAAwgDCgMnHUMdUiATIBggHCAiIDkgRCB0IKwiEiIV%2F%2F8AA%2F%2F3%2F%2BX%2FxP%2BT%2F3P%2BAf3u%2Fe39yv3H%2Fcb9quOP44HgweC%2B4L3guuCk4JvgbOA13tDezgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQYAAAMAAAAAAAAAAQIAAAAEAAAAAAAAAAAAAAAAAAAAAQAABQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmMAiImLjZWaoKWkpqinqautrK6vsbCys7W3tri6ub69v8AAdGZna9x6o3JtAHhsAIqcAHUAAGl5AAAAAABufgCqvINlcAAAAABvfwBkhIeZxcbU1dna1te7AMMA3%2BHd3gAAAHvY2wCGjoWPjJGSk5CXmACWnp%2BdxMfJcwAAyHwAAAAAALgAACxLuAAJUFixAQGOWbgB%2F4W4AEQduQAJAANfXi24AAEsICBFaUSwAWAtuAACLLgAASohLbgAAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbgABCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv%2FS24AAUsSyCwAyZQWFFYsIBEG7BARFkbISEgRbDAUFiwwEQbIVlZLbgABiwgIEVpRLABYCAgRX1pGESwAWAtuAAHLLgABiotuAAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbgAwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kguAADJlNYsAMlRbgBgFBYIyG4AYAjIRuwAyVFIyEjIVkbIVlELbgACSxLU1hFRBshIVktALAAKwCyAQECKwGyAgECKwG3AkA2KiEUAAgrALcBTUAyJBcACCsAsgMHByuwACBFfWkYREuwYFJYsAEbsABZsAGOAAAAABQARABWAAAADP8zAAwB5gAMAj4ADAJ%2BAAwCkAAMAsgADAAAAAAAAAAAAAAAAAAAAAAAOABEALoBJAE0AeYB%2FAIeAj4CdAKYAr4CxgLoAwIDZAOcA%2B4EYASyBRgFjAXCBkgGvAbIBtQHBgcSB0QHlggMCFAItAkECUIJgAm2ChYKUgqICsQLFAs6C5AL4Aw0DH4M8A1EDbIN3g4gDlgOuA8UD1IPiA%2BmD8AP3hAIEBwQJBCqESYRdhHuEkwSnBNqE8IUABRWFKYU3hViFboWDhaIFwAXTBeyGAIYVhiQGQIZYBm%2BGfQaVhpqGswbChsKGzgbohwKHGQcxhzkHXAdeB4AHggeFB4qHjIeqh6yHu4fLB82H0AfSB%2B%2BH%2FAf%2BiACIAwgFCAgIDAgQCBQIKAgrCC4IMQg0CDcIOghQiFOIVohZiFyIX4hiiGWIaIhriH%2BIgoiFiIiIi4iOiJGInQi%2FCMIIxQjICMsIzgjfCP4JAQkECQcJCgkNCRAJPglBCUQJRwlKCU0JUAlTCVYJWQl8CX8JggmFCYgJiwmOCZ4JwAnDCcYJyQnMCc8J7YnwifqKDwo5CjsKPQo%2FCkOKSIpQil6KY4pwin0KiIqdiqyKsYq2isAKyQrLis6K0YrVCt6K5IrqivGK9AsTixiLGospCzGLQQtWC2SLaQtuC3YLhQuSC56LqgAAAACAOP%2F9AF1Ap4ABQARAC0AuAAARVi4AAEvG7kAAQANPlm4AABFWLgADy8buQAPAAM%2BWbgACdy4AAXcMDEBJzMHAyMHNDYzMhYVFAYjIiYBBgJQAgo4LSseHisrHh4rAkBeXv6opiMpKSMkKioAAAD%2F%2FwCDAWAB1gKvEiYADI4AEAYADHMAAAAAAgBXAAACBwKKABsAHwCLALgAAEVYuAAILxu5AAgACz5ZuAAARVi4AAwvG7kADAALPlm4AABFWLgAGy8buQAbAAM%2BWbgAAEVYuAAXLxu5ABcAAz5ZuwACAAEAAQAEK7sABgABAAUABCu4AAYQuAAK0LgADtC4AAUQuAAe0LgAEdC4AAIQuAAf0LgAEtC4AAEQuAAZ0LgAFdAwMTcjNTM3IzUzNzMHMzczBzMVIwczFSMHIzcjByMTNyMHpk9WE1VbGDUXhBg1F1FXE1ZdGDYZhRg22ROFEsw5lDq3t7e3OpQ5zMzMAQWUlAAAAAABAFX%2FkgIAAuwAMQBHALgAFi%2B4ACwvuAAr3LkABQAB9LgAFhC4ABfcugAIABcAKxESObgAFNC4ABcQuQAeAAH0ugAhACsAFxESObgAKxC4AC7QMDEBLgMjIgYVFB4EFRQOAgcVIzUuASc3HgEzMjY1NC4ENTQ2NzUzFR4BFwHDER8iKBkzOy9HUkcvGS9BJzw4ZCMnJls5PD0vRlNGL1lJPDdKHgHtDRUPCC0mHCQeHio8LiA3KRsEkpEFLB05GykxJh8pIB4pOSw%2FUAiEgwUqHQAA%2F%2F8AHP%2F0Aj0CihInAOT%2FewFNECYA3wAAEAcA5ACGAAAAAwAq%2F%2FQCQQKcAA0AGwBHAJAAuAAARVi4ADMvG7kAMwANPlm4AABFWLgAIS8buQAhAAM%2BWbgAAEVYuAAcLxu5ABwAAz5ZuAAhELkABQAB9LoACAAhADMREjm6ABEAMwAhERI5uAARELgAK9C4AAvQuAAzELkAGQAB9LgACBC4AB7QuAARELkAOwAB9LgAHhC4AEXQuAA%2B0LgAHBC4AEfQMDE3FB4CMzI2Ny4BJw4BExQWFz4DNTQmIyIGASYnDgEjIi4CNTQ%2BAjcuATU0PgIzMhYVFA4CBx4BFz4BNzMOAQcWF3oUIi4aHzoaMFUiICpGEA4VJR0QGyEjJgFqQUgkVzgsSDMdFCMsGBUXFSU1IT1CGSgyGiBTLRwpDkwSNCQ8Na8bLSARHBgqZDYcPQEtGzoeDx8hJRYdKzb9yRQ3IygbMEMoIDYtJxIpTyMhOCoYSDogNC8pFDNeJyhfOUF2NC4RAAABAPUBYAFjAq8ABQALALoAAgAEAAMrMDETJzMPASP3Am4CGTgCQW5u4QAAAAEA0P9QAd4C3AAOAAsAugAGAAAAAyswMQUuATU0NjcXDgEVFBYXBwGxaHl5aC1lX19lLbBR5JGR5FEqVch%2Ff8hVKgAAAQB6%2F1ABiALcAA0ACwC6AAcADQADKzAxFz4BNTQmJzceARUUBgd6ZV9fZS1oeXlohlXIf3%2FIVSpR5JGR5FEAAAEAVABvAgQCLAAOAC8AuAAOL7oAAQAOAAUREjm4AAEQuQAEAAH0uAAH0LgAARC4AArQuAAOELgADNAwMT8BJzcXNzMXNxcHFwcnB4psohCnCTAJpxCibCp4eI2lRi43vb03LkalHp%2BfAAAAAAEAVQBoAgMCLAALAB0AuwACAAEAAQAEK7gAAhC4AAbQuAABELgACdAwMQEjNTM1MxUzFSMVIwELtrZCtrZCASs%2Bw8M%2BwwAAAAEAxf8rAYwAmwASAAsAugAMAAYAAyswMRc%2BATcOASMiJjU0NjMyFhUUBgfFPj4CBQkFIC4wIC0tXVOhHE88AQElJiUnRTtYeR8AAP%2F%2FAFUBKwIDAWkSBgDiAAAAAQDb%2F%2FQBfQCdAAsAGAC4AABFWLgACS8buQAJAAM%2BWbgAA9wwMTc0NjMyFhUUBiMiJtsvIiIvLyIiL0gmLy8mJi4uAAABAGP%2FYAH1AsYAAwAYALgAAEVYuAACLxu5AAIADz5ZuAAA3DAxFyMBM61KAUhKoANmAAAAAwBH%2F%2FQCEQKKAAsAGwAnAEsAuAAARVi4AAYvG7kABgALPlm4AABFWLgAAC8buQAAAAM%2BWbgABhC5AAwAAfS4AAAQuQAUAAH0ugAcABQADBESObgAHC%2B4ACLcMDEFIiY1NDYzMhYVFAYDIg4CFRQWMzI2NTQuAgMiJjU0NjMyFhUUBgEsa3p6a2t6emshOCkWVUNDVRYpOCEZJSUZGSUlDK2goaiooaCtAlQeQWNFiYKCiUVjQR7%2BvSMgHyMjHyAjAAAAAAEAYgAAAhACfgAMAD0AuAAARVi4AAovG7kACgALPlm4AABFWLgAAi8buQACAAM%2BWbkAAwAB9LgAANC4AAoQuAAF0LkABwAB9DAxJRUhNTMRIzU%2BATczEQIQ%2FlK1iDNMHj1EREQB1jUIFxD9xgAAAAABAEUAAAIKAooAHwBDALgAAEVYuAAPLxu5AA8ACz5ZuAAARVi4AB4vG7kAHgADPlm5ABwAAfS4AADQugAFAA8AHhESObgADxC5AAgAAfQwMTc%2BAzU0JiMiBgcnPgEzMh4CFRQOAgc%2BATsBFSFJUX1VLERHLU0fLytjRDBNNh0rTmxBHT0d0v4%2FMUh0YVQoN0YtIC8sNRsxRiotW2FpOwIERwAAAAEAOf%2F0AgYCigAzAFMAuAAARVi4AB0vG7kAHQALPlm4AABFWLgAMC8buQAwAAM%2BWbkAAwAB9LoADQAdADAREjm4AA0vuQAOAAH0uAAdELkAFgAB9LoAJgANAA4REjkwMTceATMyPgI1NC4CIzUyPgI1NCYjIgYHJz4BMzIeAhUUBgcVHgMVFA4CIyImJ2MgWT4hOCkXGThYPzlPMhdHOy1QICwoZj4tTTkgTDwgOSwZJD9UMFNwI4QeLhEeKxscLyISPxIgLBkvNiQdNCMtFik8JzpKFAQHGyk2ISpELxk3IwAAAAIAJwAAAiECfgAJABQAWQC4AABFWLgAES8buQARAAs%2BWbgAAEVYuAANLxu5AA0AAz5ZuwAOAAEAAAAEK7gAERC5AAQAAfS4AAAQuAAJ0LgADhC4AAvQuAAJELgAENC4AAAQuAAT0DAxJTU%2BATcjDgEPAQUjFSM1ITUBMxEzAXABAgIFDyIQrQGfY07%2BtwE%2FWGPyxho9GhcvF9pCsLA3AZf%2BdAAAAQA4%2F%2FQCCgJ%2BACgAVQC4AABFWLgAEi8buQASAAs%2BWbgAAEVYuAAjLxu5ACMAAz5ZuwAZAAEADQAEK7gAIxC5AAUAAfS6ABYAIwASERI5uAAWELgAEdC4ABIQuQAUAAH0MDE3HgMzMj4CNTQmIyIGBycTIRUhBz4BMzIeAhUUDgIjIi4CJ2EQJCs1ICI7LBlVSCg4IiwVAWn%2B4BEcNSUuUDsiJ0JVLitFNy0SgQ4bFAwVJjYhQkoUExwBM0e9DA4YMUs0NFA3HQ8YHxEAAgBN%2F%2FQCFgKKAA0AMABXALgAAEVYuAAtLxu5AC0ACz5ZuAAARVi4ACMvG7kAIwADPlm7AAgAAQAZAAQruAAjELkAAAAB9LoAFgAjAC0REjm4ABYQuQALAAH0uAAtELkAEQAB9DAxJTI%2BAjU0JiMiBgceARMuASMiDgIHPgEzMh4CFRQOAiMiLgI1ND4CMzIWFwFBHDIkFUZCJlQpCVXhGUIkJkY1IQEmXzAsSTUdIzpNKzRZQiUsSmE0O1cgNRQlMyBCRScvXWAB3hcbHEBpTSYtGTFKMS5LNh4mTXNNYIdVJycdAAAAAAEARgAAAhQCfgAPADMAuAAARVi4AAcvG7kABwALPlm4AABFWLgAAC8buQAAAAM%2BWbgABxC5AAUAAfS4AAnQMDEzPgM3ITUhFQ4DByPiBBoyTTf%2BkAHOP1IyFgNWW5WGfkNHM0iEiZheAAAAAAMARP%2F0AhMCigANABoAQABXALgAAEVYuAApLxu5ACkACz5ZuAAARVi4ADwvG7kAPAADPlm5AAMAAfS4ACkQuQATAAH0ugALAAMAExESObgACy%2B4ADHQuAAxL7gADty4AAsQuAAg3DAxNxQWMzI2NTQuAicOATc2NTQmIyIGFRQeAgc0PgI3NS4BNTQ%2BAjMyHgIVFAYHFR4DFRQOAiMiLgKPV0pITB82SSovPtFQQj82QhouPfgYJjEaKDkdNUgrL0kzGzkoGi4iEx86VTc2VzwhqzZEPjIhLSAZDhpBgTpGMEE4Lx0pIBnEITQqHwwEGUkzJTwrGBktPyUtTxwEDR4mMyIkPi4aGi9AAAACAEP%2F9AIMAooADQAwAFcAuAAARVi4ACMvG7kAIwALPlm4AABFWLgALS8buQAtAAM%2BWbsAAAABABkABCu6ABYALQAjERI5uAAWELkAAwAB9LgAIxC5AAYAAfS4AC0QuQARAAH0MDEBMjY3LgEjIg4CFRQWBx4BMzI%2BAjcOASMiLgI1ND4CMzIeAhUUDgIjIiYnARklVCoKU0cdMSQVRVkYQiUmRTUgAiddMSxJNB0iO00qNFpCJS1KYDQ7VyABNicuXmAUJTQfQkXLFxwcQWhNJiwZMUoxLks2HiZNc01gh1UnJh0AAAD%2F%2FwDb%2F%2FQBfQIDEicAEwAAAWYQBgATAAD%2F%2FwDF%2FysBjAIDEicAEwAAAWYQBgARAAAAAQB4ADAB7QJoAAcAOwC7AAAAAQAHAAQruAAAELgAAtC4AAIvuQABAAH0ugAEAAAABxESObgABxC4AAXQuAAFL7kABgAB9DAxEyUVBRUFFSV4AXX%2B0wEt%2FosBa%2F1PywTLT%2F0A%2F%2F8AVQDBAgMB1BImAOIAaxAGAOIAlgAAAAEAawAwAeACaAAHADsAuwAHAAEAAAAEK7gAABC4AALQuAACL7kAAQAB9LoABAAHAAAREjm4AAcQuAAF0LgABS%2B5AAYAAfQwMQEFNSU1JTUFAeD%2BiwEt%2FtMBdQEt%2FU%2FLBMtP%2FQACAG3%2F9AHfAqoAHQApACoAuAAARVi4ACcvG7kAJwADPlm7ABEAAQAKAAQruAAnELgAIdy4AADcMDE3Jj4ENTQmIyIGByc%2BATMyHgIVFA4EFwc0NjMyFhUUBiMiJvIGEiMsJxo3NyZBGzEiXDoqRDEbGyctJRUFZiseHisrHh4r6CQ4LignKhoqNx8bLSMuFik5JCEzKygsMyCmIykpIyQqKgAAAAIAMf9wAiICewA0AD0APwC7AB4AAQAlAAQruwAvAAEAFAAEK7sAOAABAAYABCu7ADsAAQAOAAQrugACAAYALxESObgAAhC5ADoAAfQwMSUjJyMOASMiLgI1NDY3NTQuAiMiDgIVFB4CMzI2NxcOASMiLgI1ND4CMzIeAhUFFBYzMjc1DgECIjIHBBZHJxsvIxSIgBEkOSctUj8lJD5UMS1DHRwnUjI7alAvLVBrPjRMMhn%2FACslODhoWGQ6HCoSIjEeTU4QDiRAMBwqU31TUH1WLRcWLRscM2OUYGCQYDEkQFczsCMoQH4ONwAAAgAgAAACOAKQAAkAEQBBALgAAEVYuAAOLxu5AA4ADT5ZuAAARVi4AA0vG7kADQADPlm7AAoAAQAJAAQruAAOELkABQAB9LgADRC4ABHQMDEBJy4BJyMOAQ8BFyMHIxMzEyMBjR8RIBAEECARH9nuP1XdXt1YAQtkN205OW03ZEPIApD9cAAAAAMAZwAAAiECkAATABwAJQBXALgAAEVYuAAALxu5AAAADT5ZuAAARVi4ABMvG7kAEwADPlm6ACQAEwAAERI5uAAkL7kAHAAB9LoACgAkABwREjm4AAAQuQAbAAH0uAATELkAJQAB9DAxEzMyHgIVFAYHFR4BFRQOAisBEzI2NTQmKwEVEzI2NTQmKwEVZ7QyUzshOTpIUCRBWzfDplRJTUxWY1VcWldjApASJj0rMU8PBAtORDBIMBgBeDo3Ni%2FW%2Fso%2FQz05%2BAAAAQBC%2F%2FQCKgKcACEAOQC4AABFWLgABS8buQAFAA0%2BWbgAAEVYuAAdLxu5AB0AAz5ZuAAFELkADAAB9LgAHRC5ABYAAfQwMRM0PgIzMhYXBy4BIyIOAhUUHgIzMjY3Fw4BIyIuAkIrTmxAPFodLxpAKi9NNh0dNk0vLUYgMCdiPz5pTSwBSE9%2BWC8wIDUbISVFYj0%2BY0YmJiMzLTIuV38AAAIAVQAAAiUCkAAKABMAOQC4AABFWLgAAC8buQAAAA0%2BWbgAAEVYuAAKLxu5AAoAAz5ZuAAAELkAEgAB9LgAChC5ABMAAfQwMRMzMhYVFA4CKwE3MjY1NCYrARFVoJWbJ0xwSaSbcG9vcEgCkKidTntVLUSKfX2E%2FfgAAAABAHMAAAISApAACwBNALgAAEVYuAAALxu5AAAADT5ZuAAARVi4AAsvG7kACwADPlm4AAAQuQADAAH0ugAHAAsAABESObgABy%2B5AAQAAfS4AAsQuQAIAAH0MDETIRUhFSEVIRUhFSFzAZX%2BvwEP%2FvEBS%2F5hApBGzkfuRwAAAQCHAAACGAKQAAkAQwC4AABFWLgAAC8buQAAAA0%2BWbgAAEVYuAAJLxu5AAkAAz5ZuAAAELkAAwAB9LoABwAJAAAREjm4AAcvuQAEAAH0MDETIRUhFSEVIREjhwGR%2FsIBDf7zUwKQRt5G%2FtoAAQA1%2F%2FQCFQKcACcATQC4AABFWLgABS8buQAFAA0%2BWbgAAEVYuAAjLxu5ACMAAz5ZuAAFELkADgAB9LgAIxC5ABgAAfS6AB0AIwAFERI5uAAdL7kAHgAB9DAxEzQ%2BAjMyHgIXBy4BIyIOAhUUHgIzMjY3NSM1MxEOASMiLgI1K01rQCE2LSMOLxg%2BMC5LNh0bM0wwIzwTg9AgZEA%2BaEwqAUhPf1cvDhccDzUaIiVFYj0%2BY0YmFRKrRf7sICwuV38AAQBPAAACCQKQAAsASQC4AABFWLgAAC8buQAAAA0%2BWbgAAEVYuAALLxu5AAsAAz5ZugAJAAsAABESObgACS%2B5AAIAAfS4AAAQuAAE0LgACxC4AAfQMDETMxEhETMRIxEhESNPVAESVFT%2B7lQCkP7tARP9cAE1%2FssAAQBfAAAB%2BQKQAAsAQQC4AABFWLgABC8buQAEAA0%2BWbgAAEVYuAALLxu5AAsAAz5ZuQAAAAH0uAAEELkAAwAB9LgABtC4AAAQuAAJ0DAxNzMRIzUhFSMRMxUhX6OjAZqjo%2F5mRwIDRkb9%2FUcAAQBR%2F%2FQB7QKRABMANQC4AABFWLgACS8buQAJAA0%2BWbgAAEVYuAAQLxu5ABAAAz5ZuQADAAH0uAAJELkABwAB9DAxNx4BMzI2NREhNSERFA4CIyImJ4cdSCZHQf7tAWYWM1M9OGkikywqS1EBckb%2BQS5RPCM0OQAAAQBiAAACQwKQAAwAawC4AABFWLgAAC8buQAAAA0%2BWbgAAEVYuAAELxu5AAQADT5ZuAAARVi4AAsvG7kACwADPlm4AABFWLgACC8buQAIAAM%2BWboAAwAHAAAREjm6AAkABwAAERI5uAAJELgABtC4AAMQuAAK0DAxEzMRMwEzBxMjAwcVI2JUAwEUXs%2FnXb5yVAKQ%2FrcBSfr%2BagFVhdAAAAEAhgAAAh0CkAAFACsAuAAARVi4AAAvG7kAAAANPlm4AABFWLgABS8buQAFAAM%2BWbkAAgAB9DAxEzMRIRUhhlIBRf5pApD9t0cAAAABAFEAAAIHApAAHQBNALgAAEVYuAAALxu5AAAADT5ZuAAARVi4AB0vG7kAHQADPlm7ABIAAQAEAAQruAAAELgABtC4AB0QuAAJ0LgAABC5ABYAAfS4ABDQMDETMxMXMzcTMxEjETQ%2BAjcjDwEjLwEjHgMVESNRXF0hBCBcXEcCAwMCAytaLVosAwEEBAJGApD%2B6WpqARf9cAFxFDY3NRSM%2Ff2MFDU3NhT%2BjwAAAQBTAAACBQKQABMAWQC4AABFWLgAAS8buQABAA0%2BWbgAAEVYuAALLxu5AAsAAz5ZugACAAEACxESObkABAAB9LgAARC4AAjQugAMAAsAARESObgAARC5AA0AAfS4AAsQuAAS0DAxEzMTFzMuATURMxEjAycjHgEVESNTVdVCAgIJT1XVQgICCU8CkP5ihjFrNAFU%2FXABnoYzZzP%2BqQAAAAIAMP%2F0AigCnAATACcANQC4AABFWLgACi8buQAKAA0%2BWbgAAEVYuAAALxu5AAAAAz5ZuQAUAAH0uAAKELkAHgAB9DAxBSIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIBLDhcQyUlQ1w4N11DJSVDXTclPisYGCs%2BJSY9KxgYKz0MMFl%2FT099Vy4vV31OT39ZMEkmR2M%2BPWJEJSVEYj0%2BY0cmAAIAZgAAAiECkAAOABcARwC4AABFWLgAAC8buQAAAA0%2BWbgAAEVYuAAOLxu5AA4AAz5ZugAMAA4AABESObgADC%2B4AAAQuQAWAAH0uAAMELkAFwAB9DAxEzMyHgIVFA4CKwERIxMyNjU0JisBEWbJNlo%2FIyNAWTZ2U75XU1VVawKQFC1KNjRMMhn%2B%2FAFIQUZHN%2F77AAACADH%2FXQIpAp0AEwA0AEsAuAAARVi4ACQvG7kAJAANPlm4AABFWLgAGi8buQAaAAM%2BWbsAMQABABcABCu4ABoQuQAFAAH0uAAkELkADwAB9LgAGhC4AC7QMDETFB4CMzI%2BAjU0LgIjIg4CAQ4BIyImJy4DNTQ%2BAjMyHgIVFA4CBx4BMzI2N4YXKz0mJT0rFxcrPSUmPSsXAaMQJBZXbRkvTTceJEJcODdcQiQdNEstEUozDxkJAUs9ZEcnJ0dkPT1jRSUlRWP94wYIWEMIN1d2R099Vy8vV35ORnRXOAkqKwYEAAACAGQAAAIpApAACAAYAFMAuAAARVi4AA4vG7kADgANPlm4AABFWLgADS8buQANAAM%2BWboACwANAA4REjm4AAsvuQAAAAH0uAAOELkACAAB9LgADRC4AAnQuAALELgAF9AwMRMzMjY1NCYrAQEDIxEjETMyHgIVFAYHE7dtTVFRTW0BE551U8wyVD0iUEOnAVk%2FQEE0%2FbMBFf7rApATLEYzTVwR%2FuIAAAABAEP%2F9AIZApwAMwBJALgAAEVYuAAWLxu5ABYADT5ZuAAARVi4ADAvG7kAMAADPlm5AAMAAfS6AAYAMAAWERI5uAAWELkAHQAB9LoAIAAWADAREjkwMTceATMyNjU0LgIvAS4DNTQ%2BAjMyFhcHLgEjIgYVFB4CHwEeAxUUDgIjIiYndSViNkZMEiArGV4ZMikaIDlPLz5oJCwgTTE8RhUhKhVcHjUnFyA8VjZIeS2PJS07MBkjGRQLKQocKDckJUAvGi0kNh0hMy0YIRkSCSgMHyk3JCdEMx00LQAAAQAqAAACLgKQAAcAMwC4AABFWLgAAi8buQACAA0%2BWbgAAEVYuAAHLxu5AAcAAz5ZuAACELkAAQAB9LgABdAwMQEjNSEVIxEjAQLYAgTYVAJKRkb9tgAAAAEAT%2F%2F0AgkCkAAZADMAuAAARVi4AAAvG7kAAAANPlm4AABFWLgAFC8buQAUAAM%2BWbkABwAB9LgAABC4AA3QMDETMxEUHgIzMj4CNREzERQOAiMiLgI1T1QVJTIeHjImFVEhOlEwMFI7IQKQ%2FmYzRysUFCtHMwGa%2FmhHYj8cHD9iRwAAAAEAKwAAAi0CkAAPADMAuAAARVi4AAAvG7kAAAANPlm4AABFWLgADy8buQAPAAM%2BWbkABQAB9LgAABC4AAzQMDETMxMeARczPgM3EzMDIytYahEcEgQJEA8PCGlV0GECkP6eO2Q6HTU0Nh0BYv1wAAABAAoAAAJOApEAIQBNALgAAEVYuAABLxu5AAEADT5ZuAAARVi4ACAvG7kAIAADPlm7ABwAAQAKAAQruAAgELkABgAB9LgAD9C4AAEQuAAU0LgAIBC4ABfQMDETMxMeARczPgE%2FATMXHgEXMz4BNxMzAyMDLgEnIw4BBwMjClM1AgkDAwsVCkU7RQkVCwQDCAMyT2FcSwcMBQMGDAhIWgKR%2FmQqTykpUCny8ihRKSlQKQGc%2FW8BEx08HR08Hf7tAAABADYAAAIiApAAGQBdALgAAEVYuAACLxu5AAIADT5ZuAAARVi4ABgvG7kAGAADPlm6AAAAGAACERI5ugAGABgAAhESObgAAhC4AAvQugANABgAAhESObgAGBC4AA%2FQugAUABgAAhESOTAxEwMzFx4BFzM%2BAT8BMwMTIycuAScjDgEPASP6t1xcDRgQBA4VDFpYt8RcYw4bEQQOGg1iWAFTAT2oFysdHSsXqP6%2F%2FrGxGDMeHjMYsQAAAQAmAAACMgKQAA8AQAC4AABFWLgAAS8buQABAA0%2BWbgAAEVYuAALLxu5AAsADT5ZuAAARVi4AA4vG7kADgADPlm6AAcADgABERI5MDElAzMXHgEXMz4BPwEzAxUjAQLcWGMTJBQEFCYTX1bcVOoBpsMmSygoTCbC%2FlrqAAEAQQAAAhsCkQAJAD0AuAAARVi4AAMvG7kAAwANPlm4AABFWLgACC8buQAIAAM%2BWbkABgAB9LgAANC4AAMQuQABAAH0uAAF0DAxNwEhNSEVASEVIUEBb%2F6xAbX%2BkAF1%2FiYyAhlGMv3oRwAAAAEA4v9oAfYCxAAHABcAuwAFAAEABgAEK7sAAQABAAIABCswMRMhFSMRMxUh4gEU09P%2B7ALEMP0EMAAAAAEAY%2F9gAfUCxgADABgAuAAARVi4AAAvG7kAAAAPPlm4AALcMDETMwEjY0oBSEoCxvyaAAABAGP%2FaAF3AsQABwAXALsAAAABAAUABCu7AAQAAQABAAQrMDEFESM1IREhNQE10gEU%2FuxoAvww%2FKQwAAABAG8BHAHpAp4ACQAmALgAAEVYuAAALxu5AAAADT5ZuAAC3LoABQAAAAIREjm4AAnQMDEBMxMjLwEjDwEjAQhImUhCMQQxQkgCnv5%2BsIWFsAAAAAABADz%2FdAIc%2F7sAAwANALsAAAABAAEABCswMQUVITUCHP4gRUdHAAD%2F%2FwC5Aj0BbQLREgYAygAAAAIAUf%2F0AgMB8gAhAC8AgAC4AABFWLgAEy8buQATAAc%2BWbgAAEVYuAAdLxu5AB0AAz5ZuAAARVi4ABcvG7kAFwADPlm6AAUAEwAXERI5uAAFL7gAExC5AAoAAfS4AB0QuQAnAAH0ugANAAoAJxESOboAGQAXABMREjm4ABkQuQAqAAH0uAAFELkAKwAB9DAxNzQ%2BAjcuAyMiBgcnPgMzMhYVESMnIw4BIyIuAjcUHgIzMjY3NQ4DUSdVhl4BDh4xIzBYIiASMTc%2BIGRhQwcDKWM0IjwtGlASHScVKlEqTmk%2FGn4pPSwcCBksIRQlFTgMGRQNbVv%2B1kIgLhMjMycVHRMJJSOABhYfJwAAAAACAF3%2F9AIcAsgAFgAnAIMAuAAARVi4AAYvG7kABgAHPlm4AABFWLgAAC8buQAAAA8%2BWbgAAEVYuAAQLxu5ABAAAz5ZuAAARVi4ABYvG7kAFgADPlm6AAMABgAQERI5ugAUABAABhESObgAFBC5ABcAAfS4ABAQuQAaAAH0uAAGELkAJAAB9LgAAxC5ACcAAfQwMRMzFQc%2BATMyHgIVFA4CIyImJyMHIzceATMyPgI1NC4CIyIGB11SAiNXKzFMMxokPVArI1EjAwdCUiNHGiA2KBYQITQkIEkmAsjCXiIoI0FbOD5iRCMjHzZyHxobMUgtKEIvGiMmAAEAUP%2F0AhsB8gAhADkAuAAARVi4AAUvG7kABQAHPlm4AABFWLgAHS8buQAdAAM%2BWbgABRC5AAwAAfS4AB0QuQAWAAH0MDE3ND4CMzIWFwcuASMiDgIVFB4CMzI2NxcOASMiLgJQK0pjNzxXHikeQSYqRjEcGzFFKi1LHyQoYzY5YUgo8j1fQiIqHTUaHhsyRSoqRDEbIxo1JCgiQV8AAAACADz%2F9AH7AsgAFgAkAIMAuAAARVi4AAUvG7kABQAHPlm4AABFWLgACi8buQAKAA8%2BWbgAAEVYuAASLxu5ABIAAz5ZuAAARVi4AAwvG7kADAADPlm6AAgABQASERI5ugAOABIABRESObgAEhC5ABoAAfS4AA4QuQAcAAH0uAAIELkAHQAB9LgABRC5ACAAAfQwMTc0PgIzMhYXJzUzESMnIw4BIyIuAjcUFjMyNzUuASMiDgI8JT1QKy1EIgNSRAcDHlMtME04HlVLREhBIT8gIDcpGPI7X0IkIh1au%2F04QB8tIkFePlhiSfIfGhsxRAACAEX%2F9AIZAfIAHgAnAEMAuAAARVi4AAUvG7kABQAHPlm4AABFWLgAGi8buQAaAAM%2BWbsAJwABAA0ABCu4ABoQuQATAAH0uAAFELkAIgAB9DAxNzQ%2BAjMyHgIVFAYHIR4DMzI2NxcOASMiLgIlNCYjIg4CB0UqRVkvNFI5HgEC%2FoQBHTFDKCtHIh0kXDs2X0cpAYhMRB43LB4F8jxfQiMhPFQzDRkJJz4sGBgVNhciI0FeZElOFCc4JAAAAAEAZwAAAkIC1AAWAFYAuAAARVi4ABQvG7kAFAAPPlm4AABFWLgAEC8buQAQAAc%2BWbgAAEVYuAAMLxu5AAwAAz5ZuAAUELkAAwAB9LgAEBC4AAfQuAAQELkADQAB9LgACtAwMQEuASMiBh0BMxUjESMRIzU3NTQ2MzIXAi8eMyBCOczMUYuLX2VIRAJ6DglDPCxD%2Fl0Boz4FKVlsHAAAAAADAEj%2FIAI2AfIAEQBFAFUAsgC4AABFWLgAJS8buQAlAAc%2BWbgAAEVYuAAoLxu5ACgABz5ZuAAARVi4ACcvG7kAJwAHPlm4AABFWLgAQy8buQBDAAU%2BWbgAAEVYuAAMLxu5AAwAAz5ZuABDELkAAwAB9LgADBC4AA%2FQuAAV0LgADBC5ADoAAfS4ADLcuQBGAAH0ugA1AEYAMhESObgANRC4ABzQuAAoELkAKQAB9LgAJxC5ACoAAfS4ACUQuQBOAAH0MDEXFBYzMj4CNTQmKwEiJicOAQc0Njc1LgE1NDY3NS4BNTQ%2BAjMyFzMVIx4BFRQOAiMiJicGFRQWOwEyFhUUDgIjIiYTMjY1NC4CIyIOAhUUFo9RTipEMBk3OF8VJRAjG0cpJxQeHhwZIx80RScoIMmCERwdM0UnEysUJjUwbV5bJkZkPmt12y9BEh4pFxcpHhJCUSYwERwkEyMYAwUTKR0dOBcECyYfFzETBBM%2FLChALRkMPxI0ICc%2BKxcJCRggHRs0PiI%2BLhxGAWs%2BNRkqHhERHioZNT4AAAAAAQBdAAACCwLIABYAZQC4AABFWLgAAC8buQAAAA8%2BWbgAAEVYuAAGLxu5AAYABz5ZuAAARVi4ABYvG7kAFgADPlm4AABFWLgACy8buQALAAM%2BWboAAwAGAAsREjm4AAYQuQAPAAH0uAADELkAFAAB9DAxEzMVBz4BMzIWFREjETQmIyIOAgcRI11SBCdYOVdRUjQ8FiUkJhVSAsjCcyk2Y2H%2B0gEjRUMLFiEW%2Fq0AAAACAFoAAAGeAskABQARADsAuAAARVi4AAAvG7kAAAAHPlm4AABFWLgAAi8buQACAAM%2BWbgAABC5AAQAAfS4AAAQuAAG3LgADNwwMRMhESMRIyUiJjU0NjMyFhUUBloBNFLiAQIdJSUdHCYmAeb%2BGgGjpyIdHSMjHR0iAAAAAgA3%2FycBngLJABUAIQBBALgAAEVYuAAALxu5AAAABz5ZuAAARVi4AAcvG7kABwAFPlm5AA4AAfS4AAAQuQAUAAH0uAAAELgAFty4ABzcMDETIREUDgIjIiYnNx4BMzI%2BAjURIyUiJjU0NjMyFhUUBloBNBQvTjsmSB0bGjkcJDAcC%2BIBAh0lJR0cJiYB5v4OLUs3HhMOPQ0OEiIxHwG1pyIdHSMjHR0iAAAAAAEAagAAAj4CyAAMAG0AuAAARVi4AAQvG7kABAAHPlm4AABFWLgAAC8buQAAAA8%2BWbgAAEVYuAAMLxu5AAwAAz5ZuAAARVi4AAgvG7kACAADPlm6AAIAAAAMERI5ugAJAAAACBESObgACRC4AAbQuAACELkACgAB9DAxEzMRMwEzBxMjJwcVI2pSBAEGXsLcXLNzUgLI%2Fh4BAMH%2B2%2FNvhAABAFH%2F9AIZAsgAEAA1ALgAAEVYuAAALxu5AAAADz5ZuAAARVi4AAsvG7kACwADPlm5AAUAAfS4AAAQuQAQAAH0MDETMxEUFjMyNxcOASMiJjURI1H4MywoNBUhOihOUaYCyP3VNi8XPgwRWFcB4gAAAQA8AAACLAHyACAAowC4AABFWLgABi8buQAGAAc%2BWbgAAEVYuAALLxu5AAsABz5ZuAAARVi4AAAvG7kAAAAHPlm4AABFWLgAIC8buQAgAAM%2BWbgAAEVYuAAYLxu5ABgAAz5ZuAAARVi4ABAvG7kAEAADPlm6AAIAIAAAERI5uAACELgACNC4AAsQuQATAAH0uAAIELkAFgAB9LgABhC5ABsAAfS4AAIQuQAeAAH0MDETMxczPgEzMhc%2BATMyFhURIxE0IyIGBxEjETQjIgYHESM8QAcDEjEqShIWNCkzN081GiYTQjcaJBNPAeZAIipUJi5NSf6kAVVWJSb%2BoAFVViUm%2FqAAAAAAAQBdAAACCwHyABYAZQC4AABFWLgABi8buQAGAAc%2BWbgAAEVYuAAALxu5AAAABz5ZuAAARVi4ABYvG7kAFgADPlm4AABFWLgACy8buQALAAM%2BWboAAgAGABYREjm4AAYQuQAPAAH0uAACELkAFAAB9DAxEzMXMz4BMzIWFREjETQmIyIOAgcRI11EBwQmWDlXUVI0PBYlJCYVUgHmUyk2Y2H%2B0gEjRUMLFiEW%2Fq0AAAACADz%2F9AIcAfIAEwAnADUAuAAARVi4AAUvG7kABQAHPlm4AABFWLgADy8buQAPAAM%2BWbkAGQAB9LgABRC5ACMAAfQwMTc0PgIzMh4CFRQOAiMiLgI3FB4CMzI%2BAjU0LgIjIg4CPCdCVzAwV0InJ0JXMDBXQidVFik5IyM5KRYWKTkjIzkpFvI9X0IiIkJfPTxfQSIiQV88KkQxGxsxRCoqRTIbGzJFAAACAF3%2FMwIcAfIAFgAlAIMAuAAARVi4AAkvG7kACQAHPlm4AABFWLgAAy8buQADAAc%2BWbgAAEVYuAATLxu5ABMAAz5ZuAAARVi4AAIvG7kAAgAFPlm6AAUACQATERI5ugAWABMACRESObgAFhC5ABcAAfS4ABMQuQAaAAH0uAAJELkAIgAB9LgABRC5ACUAAfQwMRcVIxEzFzM%2BATMyHgIVFA4CIyImJzceATMyNjU0LgIjIgYHr1JEBwMiWS0xSzMaJD1QLCJPIQIjRhlCVBAhNCQgSSYppAKzPiAqI0FbOT5hRCMhHj8fGmZbKEIvGiMmAAAAAgA8%2FzMB%2BwHyABYAJACDALgAAEVYuAAFLxu5AAUABz5ZuAAARVi4AAsvG7kACwAHPlm4AABFWLgAEi8buQASAAM%2BWbgAAEVYuAANLxu5AA0ABT5ZugAIAAUAEhESOboADwASAAUREjm4ABIQuQAaAAH0uAAPELkAHAAB9LgACBC5AB0AAfS4AAUQuQAgAAH0MDE3ND4CMzIWFzM3MxEjNTcOASMiLgI3FBYzMjc1LgEjIg4CPCU9UCstRiMDB0JSBCBRLTBNOB5VS0RIQSE%2FICA3KRjyO19CJCIgNv1Ns1gfKyJBXj5YYknyHxobMUQAAQCSAAACGQHyABIAVAC4AABFWLgAAC8buQAAAAc%2BWbgAAEVYuAAGLxu5AAYABz5ZuAAARVi4ABEvG7kAEQADPlm6AAIAEQAAERI5uAAGELkADQAB9LgAAhC5ABAAAfQwMRMzFzM%2BATMyFhcHLgEjIgYHESOSRAcDJm9EGy4XExojHTdlLFIB5nM7RAkLRwkIP0z%2B4wAAAAABAEj%2F9AIOAfIALQBJALgAAEVYuAATLxu5ABMABz5ZuAAARVi4ACovG7kAKgADPlm5AAMAAfS6AAYAKgATERI5uAATELkAGgAB9LoAHwATACoREjkwMTceATMyNjU0JicuAzU0PgIzMhYXBy4BIyIOAhUUFhceARUUDgIjIiYncCleQkJARVkmQzIeGjNNMjdoJCggTi0iLhwMUkJjXxw3UTRIeS12HiQsIBwsFgkaIyoaHTMlFSUZNRccCxMaDh4nERlAOB40KBctHwABAEX%2F9AIiAm4AGwBNALgABS%2B4AABFWLgAAy8buQADAAc%2BWbgAAEVYuAAWLxu5ABYAAz5ZuAADELkAAQAB9LgAAxC4AAfQuAABELgACNC4ABYQuQAPAAH0MDETIzU%2FATMVMxUjFRQeAjMyNjcXDgEjIi4CNc6JjAtE7%2B8MHDAjIzgaEiFQKDVIKxMBoz4FiIhD5yExIhEMCjwMER01Si0AAQBN%2F%2FQB%2BQHmABQAZQC4AABFWLgACi8buQAKAAc%2BWbgAAEVYuAATLxu5ABMABz5ZuAAARVi4AAYvG7kABgADPlm4AABFWLgAAC8buQAAAAM%2BWboAAgAGABMREjm4AAYQuQAPAAH0uAACELkAEgAB9DAxISMnIw4BIyImNREzERQWMzI2NxEzAflDBwQlVzlYUVMzPSpEKVJVKzZjYQEu%2Ft1FQysvAVEAAQAzAAACJQHmAA0APAC4AABFWLgAAC8buQAAAAc%2BWbgAAEVYuAAKLxu5AAoABz5ZuAAARVi4AA0vG7kADQADPlm5AAUAAfQwMRMzEx4BFzM%2BATcTMwMjM1NwDxsNBA0ZD3BPyVwB5v7sJUcjI0clART%2BGgABAAgAAAJQAeYAIQB0ALgAAEVYuAAALxu5AAAABz5ZuAAARVi4AAovG7kACgAHPlm4AABFWLgAFC8buQAUAAc%2BWbgAAEVYuAAhLxu5ACEAAz5ZuAAARVi4ABcvG7kAFwADPlm6AAYAAAAhERI5uAAGELgAD9C6ABwAAAAXERI5MDETMxMeARczPgE%2FATMXHgEXMz4BNxMzAyMnLgEnIw4BDwEjCFQ7BwwFBAcOCDtGPAgOCAQHCwY7TmpjOgcMCAQGDAk4YgHm%2FucjQiIiQyL8%2FCNCIiJCIwEZ%2Fhr2I0UlIEQq9QABAEAAAAIXAeYAGQBlALgAAEVYuAABLxu5AAEABz5ZuAAARVi4AAsvG7kACwAHPlm4AABFWLgAGS8buQAZAAM%2BWbgAAEVYuAAPLxu5AA8AAz5ZugATAAEAGRESObgAExC4AADQuAATELgADdC4AAfQMDE3JzMXHgEXMz4BPwEzBxcjJy4BJyMOAQ8BI%2FmrW00NHQ8EDhwNSVetulpVDyEQBA8eD1BY%2FOprFCoUFCwUafH1cBUuFRYrF3AAAAEAMf8vAicB5gAcAFsAuAAARVi4AAgvG7kACAAHPlm4AABFWLgAEi8buQASAAc%2BWbgAAEVYuAAZLxu5ABkABT5ZuAAARVi4AAcvG7kABwADPlm4ABkQuQADAAH0ugAOAAgABxESOTAxFx4BMzI2PwEDMxMeARczPgE3EzMDDgMjIic3VAoXCzNAEg%2FjU3cOHw8EDRsMak7WDiQyQSkkHBGGAwQ7LSQB5%2F7zIEojI0khAQ398iQ%2BLRoKQQAAAQBHAAACFAHmAAkAPQC4AABFWLgAAy8buQADAAc%2BWbgAAEVYuAAILxu5AAgAAz5ZuQAGAAH0uAAA0LgAAxC5AAEAAfS4AAXQMDE3ASE1IRUBIRUhRwFN%2FtgBnv6yAVj%2BMywBd0Ms%2FolDAAAAAQB4%2F2gB9gLEADkAKwC7ADMAAQA0AAQruwAZAAEAGgAEK7sACwABAAoABCu6ACcACgALERI5MDEFND4CNTQuAiM1Mj4CNTQmNTQ%2BAjsBFSMiDgIVFBYVFAYHFR4BFRQGFRQeAjsBFSMiLgIBAAMDAwwgOSwsOSAMCRYuRi89NCYxGwoGJzQ0JwYKGzEmND0vRi4WExsxLi4ZDxsWDjQOFhsPMF00JzMeDTAKFSMYK1svMTMJBAkzMTNULhgjFQowDR4zAAEBB%2F8GAVEC7gADAAsAugABAAIAAyswMQEzESMBB0pKAu78GAAAAAABAGP%2FaAHgAsQAOQArALsAAAABADcABCu7ABoAAQAXAAQruwAnAAEAKAAEK7oADAAoACcREjkwMRcyPgI1NCY1NDY3NS4BNTQ2NTQuAisBNTMyHgIVFAYVFB4CMxUiDgIVFB4CFRQOAisBNZYmMRwKBiY0NCYGChwxJjM9L0UuFgkMIDksLDkgDAMDAxYuRS89aAoVIxguVDMxMwkECTMxL1srGCMVCjANHjMnNF0wDxsWDjQOFhsPGS4uMRsnMx4NMAAAAQBMAP8CDAGVABkAJwC7AAMAAQAWAAQruwARAAEACAAEK7gAAxC4AA3QuAARELgAGdAwMRM%2BATMyHgIzMj4CNxcOASMiLgIjIgYHTBpIJh4vKScVDBUVEgk1GkgmHi8pJxUXKREBFkY3GiAaBxMiGhhGNhogGiI0AAAAAAIA4%2F9IAXUB8gAFABEAHAC4AABFWLgADy8buQAPAAc%2BWbgACdy4AATcMDEFFyM3EzM3FAYjIiY1NDYzMhYBUgJQAgo4LSseHisrHh4rWl5eAVinJCkpJCMqKgAAAgBx%2F98B%2BgKNAAYAJQBcALgAAEVYuAAYLxu5ABgACz5ZuwAiAAEACgAEK7sAGgABACEABCu4ACEQuAAA0LgAAC%2B4ACIQuAAG0LgABi%2B4AAoQuAAN0LgADS%2B4AAzcuAAaELgAF9C4ABcvMDEBDgEVFBYfAQ4BBxUjNS4DNTQ%2BAjc1MxUeARcHLgEnET4BNwE6OEA%2FOcAeSCczLUo1HR82SiozLEAXKBQtGiA0FQHdDVhCQ1gNCRoiA2doBSQ9VDU0UzwkBmpnAiIWNBIWAv6oAhsSAAABAE0AAAITAooAKQBXALgAAEVYuAATLxu5ABMACz5ZuAAARVi4AAEvG7kAAQADPlm7AAgAAQALAAQruAABELkAAAAB9LgAA9C4ABMQuQAaAAH0uAALELgAINC4AAgQuAAj0DAxJRUhNT4BNTQnIzU3LgE1ND4CMzIWFwcuASMiBhUUFhczFSMWFRQGBxUCE%2F47Pz0IdWMLFR43TTA%2BVR0wFzsqQkUTC72tBiUmR0cyHF85Gh00BCA9ICpEMBorIC8XHkE0IDsgOBsdNUYfBAAAAgA6AFMCHgJBACAANAAXALsAJgABAB0ABCu7AAwAAQAwAAQrMDE%2FAS4BNTQ2Nyc3FzYzMhc3FwceARUUBgcXBycOASMiJwc3FB4CMzI%2BAjU0LgIjIg4COlQRExIRUyxXMD8%2BMVcsVBETExFULFgXOR4%2BMVdQEyArGBgrIBMTICsYGCsgE4BVFzojIzsXVi1aJSVaLVYXOyMjOhdVLVkTEyZZ9h4xJBMTJDEeHjEkExMkMQAAAQA1AAACIwJ%2BAB0AbAC4AABFWLgAAC8buQAAAAs%2BWbgAAEVYuAAJLxu5AAkACz5ZuAAARVi4ABMvG7kAEwADPlm6AAUAEwAJERI5uAAFELgAC9C5AA4AAfS4ABnQuAAY3LgAD9C5ABIAAfS4ABXQuAALELgAHNAwMRMXHgEXMz4BPwEzAzMVIxUzFSMVIzUjNTM1IzUzA4pcESETBBIiElxSuqK3t7dStbW1obkCfqshQyMjQyGr%2FsAvQTCenjBBLwFAAAIBB%2F8GAVEC7gADAAcAEwC6AAEABQADK7oAAwAHAAMrMDEBMxEjFxEjEQEHSkpKSgLu%2FjVN%2FjAB0AAAAAIAW%2F%2FAAf0CrAAPAEcATwC7AC8AAQAoAAQruwBEAAEAEwAEK7oAMgAoABMREjm6ABYARAAvERI5ugAgADIAFhESObgAIBC4AADQugA8ABYAMhESObgAPBC4AAjQMDElPgE1NC4CJw4BFRQeAhMuASMiBhUUHgQVFAYHHgEVFA4CIyImJzceATMyNjU0LgQ1NDY3LgE1ND4CMzIWFwFzICMpPkkgHyUpP0lUGjgjKiYqP0k%2FKjEpDg8YKjskN1wgMho9KiktKj5KPiozKA4REyY4JjJRHsAOJiIiLCEdEhApHyErIRwBaxQaJRobJB4eKz0uMDwWECcaHjIkFSYhLRgcKB0cJh4dKj0uLUAVECcaGi8kFSIXAP%2F%2FAJYCTAHCAroSBgDPAAAAAwAe%2F%2FUCOgKNABMAJwBFAE0AuAAARVi4AAUvG7kABQALPlm4AABFWLgADy8buQAPAAM%2BWbkAGQAB9LgABRC5ACMAAfS4AC3QuQA0AAH0uAAZELgAQdC5ADoAAfQwMRM0PgIzMh4CFRQOAiMiLgI3FB4CMzI%2BAjU0LgIjIg4CFzQ%2BAjMyFhcHLgEjIgYVFBYzMjY3Fw4BIyIuAh4pSWM5OWNJKSlJYzk5Y0kpLiA7UzIyUzsgIDtTMjJTOyBGGy47ISMxFCIQHxQuODUtGiYRHhc0JiI7LBkBQ0x7VS4uVXtMTXtXLy9Xe01Ca00qKk1rQkJqTCkpTGpCK0YyGhsUJw4RSztCTRQOKhQbGzNJAP%2F%2FAKcA%2FAG6Ak4SBgDSAAD%2F%2FwBTADQB%2BAHEEiYA3Y4AEAYA3XMAAAAAAQBVAGgCAwFpAAUADQC7AAEAAQAEAAQrMDETIREjNSFVAa5C%2FpQBaf7%2Fw%2F%2F%2FAFUBKwIDAWkSBgDiAAAABABwAT8B6ALJABMAJwA1AD4APQC7ABQAAQAAAAQruwAKAAEAHgAEK7sANgABADIABCu4AB4QuAAp0LgAMhC4AC%2FQuAAUELgANNC4ADHQMDEBIi4CNTQ%2BAjMyHgIVFA4CJzI%2BAjU0LgIjIg4CFRQeAgMzMhYVFAYHFyMnIxUjNzI2NTQmKwEVASwnRTMdHTNFJydEMx4eM0QnHzcnFxcnNx8gNigXFyg2KUwgLxURLi4jKSlDFBgTFxwBPx00SCwsSDQdHTRILCxINB0lFyo7JCM7KxgYKzsjJDsqFwEIHSQSHwZTRkZmEREPEkMAAAD%2F%2FwCxAlkBpwKSEgYAzgAAAAIArwGtAaoCrQATAB8AFwC7AAoAAQAaAAQruwAUAAEAAAAEKzAxASIuAjU0PgIzMh4CFRQOAicyNjU0JiMiBhUUFgEsGS0jFBQjLRkZLiIVFSIuGSIqKiIhKioBrRIhLx0eLyISEiIvHh0vIRIuLiMlLi4lIy4AAAIAVQAAAgMCLAALAA8ARAC4AABFWLgADi8buQAOAAM%2BWbsAAwABAAAABCu4AAMQuAAE3LgAAxC4AAbQuAAAELgACNC4AA4QuQAMAAH0uAAL3DAxASM1MzUzFTMVIxUjByEVIQELtrZCtrZCtgGu%2FlIBMD6%2Bvj6xQT4AAP%2F%2FAK4BuAGnAvUSBwDmAAEBuAAA%2F%2F8ArAGsAaQC9RIHAOcAAAG4AAD%2F%2FwDrAj0BnwLREgYAywAAAAEATf9FAi4B5gAoAHMAuAAoL7gAAEVYuAAALxu5AAAABz5ZuAAARVi4AAsvG7kACwAHPlm4AABFWLgAHy8buQAfAAM%2BWbgAAEVYuAAYLxu5ABgAAz5ZuAAfELkABQAB9LoAHAALAB8REjm4ABwQuQAKAAH0uAAYELkAEgAB9DAxEzMRFBYzMj4CNxEzDgEVFBYzOgE3FwYjIiYnIw4BIyImJxwBHgEXI01TNDkTJiYnFFMCAxALBAcHDBMdJiQFAyBRLyM7FAICAlMB5v7dQ0UJGCsjATxjz1gUEAI%2BCDU6ODUVICY7NDMeAAAAAgBI%2F7AB5QKQAAMAEAAlALgAAEVYuAAALxu5AAAADT5ZuAAARVi4AA8vG7kADwANPlkwMQEzESMDIyIuAjU0PgI7AQGUUVE2IDVaQiUkP1YyKwKQ%2FSABMhk1Ujk7UTMWAAAA%2F%2F8A2wEHAX0BsBIHABMAAAETAAD%2F%2FwDd%2FysBdgADEgYA0QYA%2F%2F8A0AG4AWEC6RIHAOUAAAG4AAD%2F%2FwCOAPwBygJOEgYA0wAA%2F%2F8AYQA0AgYBxBImAN6OABAGAN5zAAAA%2F%2F8AHAAAAj8CfhInAOX%2FewFNECYA3wAAEAcA6ACGAAD%2F%2FwAcAAACPAJ%2BEicA5f97AU0QJgDfAAAQBwDmAIcAAP%2F%2FACcAAAJVAooSJwDn%2F3sBTRAmAN8ZABAHAOgAhgAAAAIAe%2F88AewB8gAbACcAKgC4AABFWLgAJS8buQAlAAc%2BWbsACgABABEABCu4ACUQuAAf3LgAG9wwMSUWDgQVFBYzMjY3Fw4BIyImNTQ%2BBCc3FAYjIiY1NDYzMhYBZwYSIywnGjg3JkEbMCFdOlRlGyctJBQEZyweHisrHh4s%2FiQ4LignKxkqNh4bLSMuVEghMysoLDIhpyQpKSQjKioAAP%2F%2FACAAAAI4AzISJgAmAAAQBgDpAAAAAP%2F%2FACAAAAI4AzISJgAmAAAQBgDqAAAAAP%2F%2FACAAAAI4AzISJgAmAAAQBgDrAAAAAP%2F%2FACAAAAI4AzMSJgAmAAAQBgDsAAAAAP%2F%2FACAAAAI4Ay0SJgAmAAAQBgDtAAAAAP%2F%2FACAAAAI4A2sSJgAmAAAQBgDuAAAAAAAC%2F%2F8AAAJPApAABgAWAGYAuAAARVi4AA4vG7kADgANPlm4AABFWLgACC8buQAIAAM%2BWbgAAEVYuAAMLxu5AAwAAz5ZuwAAAAEACgAEK7sAEwABABQABCu4AA4QuQABAAH0uAAIELkABwAB9LgAARC4ABHQMDEBESMOAQ8BBRUhNSMHIwEhFSMVMxUjFQE9AxQrFC4Blv7unklXAQQBQ72TkwECAUw2aTZ3u0e%2FvwKQRs1H7%2F%2F%2FAEL%2FKwIqApwSJgAoAAAQBgDvLwAAAP%2F%2FAHMAAAISAzISJgAqAAAQBgDpHwAAAP%2F%2FAHMAAAISAzISJgAqAAAQBgDqHwAAAP%2F%2FAHMAAAISAzISJgAqAAAQBgDrHwAAAP%2F%2FAHMAAAISAy0SJgAqAAAQBgDtHwAAAP%2F%2FAF8AAAH5AzISJgAuAAAQBgDpAAAAAP%2F%2FAF8AAAH5AzISJgAuAAAQBgDqAAAAAP%2F%2FAF8AAAH5AzISJgAuAAAQBgDrAAAAAP%2F%2FAF8AAAH5Ay0SJgAuAAAQBgDtAAAAAAACABAAAAIrApAADAAZAFMAuAAARVi4AAQvG7kABAANPlm4AABFWLgACy8buQALAAM%2BWbsAAwABAAAABCu4AAsQuQANAAH0uAAEELkAEwAB9LgAAxC4ABXQuAAAELgAF9AwMRMjNTcRMzIWFRQGKwE3MjY1NCYrARUzFSMVW0tLoZSbm5Gkm3Bvb3BIj48BQSoFASConZ2uRIp9fYTcL%2F3%2F%2FwBTAAACBQMzEiYAMwAAEAYA7AYAAAD%2F%2FwAw%2F%2FQCKAMyEiYANAAAEAYA6QAAAAD%2F%2FwAw%2F%2FQCKAMyEiYANAAAEAYA6gAAAAD%2F%2FwAw%2F%2FQCKAMyEiYANAAAEAYA6wAAAAD%2F%2FwAw%2F%2FQCKAMzEiYANAAAEAYA7AAAAAD%2F%2FwAw%2F%2FQCKAMtEiYANAAAEAYA7QAAAAAAAQBmAH4B8gIVAAsAKQC6AAUACQADK7oACgAJAAUREjm4AAoQuAAB0LgAChC4AAfQuAAE0DAxPwEnNxc3FwcXBycHZpqaLJqaLJqaLJqaq5%2BeLZ%2BfLZ6fLaCgAAADAC3%2F4gIsAq4ACgAVAC8AfQC4AABFWLgAKy8buQArAA0%2BWbgAAEVYuAAeLxu5AB4AAz5ZugAVAB4AKxESObgAFRC4AADQuAAeELkAAwAB9LoACgAeACsREjm4AAoQuAAL0LgAKxC5AA4AAfS4AAoQuAAW0LgAABC4ACDQuAAVELgAI9C4AAsQuAAt0DAxNx4BMzI%2BAjU0LwEuASMiDgIVFBcBHgEVFA4CIyInByc3LgE1ND4CMzIXNxfAFTcgJT4rGBkfFTghJj0rGBsBTB0eJUNdN1pANTA%2FHR8lQ1w4XD82L3QaHSZHYz5ZQDgaHSVEYj1fQAGFK3NIT39ZMD1PIF0tdklPfVcuPU8gAAAA%2F%2F8AT%2F%2F0AgkDMhImADoAABAGAOkAAAAA%2F%2F8AT%2F%2F0AgkDMhImADoAABAGAOoAAAAA%2F%2F8AT%2F%2F0AgkDMhImADoAABAGAOsAAAAA%2F%2F8AT%2F%2F0AgkDLRImADoAABAGAO0AAAAA%2F%2F8AJgAAAjIDMhImAD4AABAGAOoAAAAAAAIAZQAAAiECkAAQABkAOQC4AABFWLgAAC8buQAAAA0%2BWbgAAEVYuAAPLxu5AA8AAz5ZuwARAAEADQAEK7sAAwABABcABCswMRMzFTMyHgIVFA4CKwEVIzcyNjU0JisBEWVUdjZaPyMjQFk2dlS%2FV1NVVWsCkG4ULkk2NE0yGJbaQEdHNv78AAABAFj%2F9AI0AtQAOQBaALgAAEVYuAAFLxu5AAUADz5ZuAAARVi4ADkvG7kAOQADPlm4AABFWLgAGy8buQAbAAM%2BWbkAIgAB9LoADwAFACIREjm4AAUQuQA0AAH0ugAlABsANBESOTAxEzQ%2BAjMyHgIVFA4CFRQeBBUUDgIjIiYnNx4BMzI2NTQuBDU0PgI1NCYjIgYVESNYHDRKLyg9KhUcIhweLDUsHhcrPCUqRiAhHDQdKi0eLTQtHhwiHCwqNz9SAgcuTDYdGCk1HiY1LCkaGCAbGiQ1JyA2KBcYFToUEy8fHSYdGSEtIyIxLS8gJTFLS%2F4FAAAA%2F%2F8AUf%2F0AgMC0RImAEYAABAGAMoOAAAA%2F%2F8AUf%2F0AgMC0RImAEYAABAGAMsOAAAA%2F%2F8AUf%2F0AgMC0RImAEYAABAGAMwOAAAA%2F%2F8AUf%2F0AgMCsBImAEYAABAGAM0OAAAA%2F%2F8AUf%2F0AgMCuhImAEYAABAGAM8OAAAA%2F%2F8AUf%2F0AgMC1xImAEYAABAGANAOAAAAAAMAEf%2F0AlUB8gAuADcARAClALgAAEVYuAANLxu5AA0ABz5ZuAAARVi4ABMvG7kAEwAHPlm4AABFWLgAJi8buQAmAAM%2BWbgAAEVYuAAsLxu5ACwAAz5ZuwAvAAEAGwAEK7oAAwANACwREjm4AAMvuAANELkABgAB9LoAEAAmAA0REjm4ACYQuQAfAAH0ugApACYADRESObgAExC5ADQAAfS4ACwQuQA7AAH0uAADELkAQgAB9DAxNzQ2Ny4BIyIGByc%2BATMyFhc%2BATMyHgIVFAYHIR4BMzI2NxcOASMiJicOASMiJiU0LgIjIgYPARQWMzI2Ny4BLwEOARF8fAEnLxpBFx8eUC0wOw4YRTAlNyUSAgL%2B%2FgM8OxwvFR0ZQSY1SBgpTyY8RgH%2FCBQhGC85BfEoIho%2BGggHAQFcT4FJVxM2RRkQOBQgOCovMyQ9UC0OGg1MXRINNhEaMCstLkvXHzgrGVJJkScoJCMWNR0ZEDr%2F%2FwBQ%2FysCGwHyEiYASAAAEAYA0SoAAAD%2F%2FwBF%2F%2FQCGQLREiYASgAAEAYAyg8AAAD%2F%2FwBF%2F%2FQCGQLREiYASgAAEAYAyw8AAAD%2F%2FwBF%2F%2FQCGQLREiYASgAAEAYAzA8AAAD%2F%2FwBF%2F%2FQCGQK6EiYASgAAEAYAzw8AAAD%2F%2FwBaAAABnQLREiYAxAAAEAYAyjAAAAD%2F%2FwBaAAABzwLREiYAxAAAEAYAyzAAAAD%2F%2FwBaAAAB4ALREiYAxAAAEAYAzDAAAAD%2F%2FwBaAAAB8gK6EiYAxAAAEAYAzzAAAAAAAgA8%2F%2FQCGALaABQAOQBrALgAAEVYuAA0Lxu5ADQADz5ZuAAARVi4AB0vG7kAHQADPlm7ACcAAQALAAQruAAdELkAAAAB9LoAKgA0AB0REjm4ACoQuQAIAAH0ugAVADQAHRESObgAFRC4AC3QuAAVELgAN9C4ADDQMDElMj4CNTwBJy4BIyIOAhUUHgITHgEVFA4CIyIuAjU0PgIzMhYXLgEnByc3LgEnNx4BFzcXASwoOycTASNSJyg9KRUaLDx7QlAhPlg3L1ZCJyI9UzIvVBwOPS6WF4QaPCImKEoihxc4HTVILAsWCy8mGCw7IiY9KxgCKj2reTxjRycgPVc2M1M7IComRWUoTSlEEyERNBMqGkUpAAAA%2F%2F8AXQAAAgsCsBImAFMAABAGAM0SAAAA%2F%2F8APP%2F0AhwC0RImAFQAABAGAMoAAAAA%2F%2F8APP%2F0AhwC0RImAFQAABAGAMsAAAAA%2F%2F8APP%2F0AhwC0RImAFQAABAGAMwAAAAA%2F%2F8APP%2F0AhwCsBImAFQAABAGAM0AAAAA%2F%2F8APP%2F0AhwCuhImAFQAABAGAM8AAAAAAAMAVQBgAgMCMwALABcAGwAlALsAGQABABoABCu4ABkQuAAA3LgABty4ABoQuAAP3LgAFdwwMQEiJjU0NjMyFhUUBgM0NjMyFhUUBiMiJichFSEBLBcfHxcXHx9NHxcXHx8XFx%2BhAa7%2BUgHIHhgXHh4XGB7%2BzhceHhcYHh7rPgAAAwA8%2F%2BkCHAH9AAoAFgAwAH0AuAAARVi4ACwvG7kALAAHPlm4AABFWLgAHy8buQAfAAM%2BWboAFgAfACwREjm4ABYQuAAA0LgAHxC5AAIAAfS6AAoALAAfERI5uAAKELgAC9C4ACwQuQAOAAH0uAAKELgAF9C4AAAQuAAh0LgAFhC4ACTQuAALELgALtAwMTcWMzI%2BAjU0Ji8BLgEjIg4CFRQWFwEeARUUDgIjIicHJzcuATU0PgIzMhc3F8kpOiM5KRYODR4TMh0jOSkWDg0BNRsgJ0JXMFM%2FMyU1GyAnQlcwUz8zJVwmHDFFKiE6FyYSFBwyRiohOBcBICBZNzxfQSIwOx0%2BIFg2PV9CIjA7Hf%2F%2FAE3%2F9AH5AtESJgBaAAAQBgDK%2FAAAAP%2F%2FAE3%2F9AH5AtESJgBaAAAQBgDL%2FAAAAP%2F%2FAE3%2F9AH5AtESJgBaAAAQBgDM%2FAAAAP%2F%2FAE3%2F9AH5AroSJgBaAAAQBgDP%2FAAAAP%2F%2FADH%2FLwInAtESJgBeAAAQBgDLBAAAAAACAF3%2FMwIcAsgAFgAlAIMAuAAARVi4AAIvG7kAAgAPPlm4AABFWLgACC8buQAIAAc%2BWbgAAEVYuAABLxu5AAEABT5ZuAAARVi4ABIvG7kAEgADPlm6AAUACAASERI5ugAVABIACBESObgAFRC5ABcAAfS4ABIQuQAaAAH0uAAIELkAIgAB9LgABRC5ACUAAfQwMRcjETMVBz4BMzIeAhUUDgIjIiYnFzUeATMyPgI1NCYjIgYHr1JSAiNWKzFMMxslPVArJEwhASNFGiA3KBdBSSBIJs0DlclXIigjQVs5PmFEIyIdXJsfGhsxSC1QYyMmAAD%2F%2FwAx%2Fy8CJwK6EiYAXgAAEAYAzwQAAAAAAQBaAAABjgHmAAUALwC4AABFWLgAAC8buQAAAAc%2BWbgAAEVYuAACLxu5AAIAAz5ZuAAAELkABAAB9DAxEyERIxEjWgE0UuIB5v4aAaMAAAACACEAAAJPApEAEgAbAE8AuAAARVi4AAMvG7kAAwANPlm4AABFWLgADS8buQANAAM%2BWbsACAABAAkABCu4AAMQuQAGAAH0uAANELkACwAB9LgAFtC4AAYQuAAY0DAxEzQ2MyEVIxUzFSMVMxUhIi4CNxQWOwERIyIGIY19ARrClJTM%2Ftk%2BYUQkVlRWFRVWVAFLnqhGz0fuRy1Ve05%2BiQIIgwAAAAMAC%2F%2F0AlQB8gATADsARACNALgAAEVYuAAZLxu5ABkABz5ZuAAARVi4AB8vG7kAHwAHPlm4AABFWLgAMi8buQAyAAM%2BWbgAAEVYuAA3Lxu5ADcAAz5ZuwA8AAEAJwAEK7gANxC5AAUAAfS4ABkQuQAPAAH0ugAcADIAGRESObgAMhC5ACsAAfS6ADUAMgAZERI5uAAfELkAQQAB9DAxNxQeAjMyPgI1NC4CIyIOAgc0PgIzMhYXPgEzMh4CFRQGByMeATMyNjcXDgEjIiYnBiMiLgIlNC4CIyIGB1gNGiYaFiUaDg4aJRYaJhoNTRswQCUvRRQUQTAiNSMSAQLxBDo2GicUHRc7IzBIFitdJkAvGwIFCBIeFi0wBvMqRTEcHDFFKipEMhsbMkQqPV9BIj04Nz4kPFEtDhcQTF0RDjYRGjk3cCJBX2AfOCsZU0gA%2F%2F8AqAI9AbAC0RIGAMwAAP%2F%2FAM8CHgGJAtcSBgDQAAD%2F%2FwCeAkMBugKwEgYAzQAAAAEAuQI9AW0C0QADAAsAugABAAMAAyswMRMzFyO5Wlo%2FAtGUAAEA6wI9AZ8C0QADAAsAugACAAAAAyswMQEjNzMBKj9aWgI9lAAAAAABAKgCPQGwAtEABwAZALsAAQABAAQABCu4AAQQuAAD3LgABtAwMQEzFyMnIwcjAQlGYT9DBEM%2FAtGUY2MAAAAAAQCeAkMBugKwABYAJwC7AAgAAQAOAAQruAAOELgAE9y5AAMAAfS4AArQuAAOELgAFdAwMRM%2BATMyHgIzMjczDgEjIi4CIyIHI54FKygSHhkYDB8JLwUrKBIeGRgMHwkvAkMwPREUETYvPhEVETcAAAEAsQJZAacCkgADAA0AuwABAAEAAgAEKzAxEzMVI7H29gKSOQAAAAACAJYCTAHCAroACwAXAB0AuwAAAAEABgAEK7gAABC4AAzQuAAGELgAEtAwMRMiJjU0NjMyFhUUBjMiJjU0NjMyFhUUBswYHh4YFx8fqRcfHxcYHh4CTCAXFyAgFxcgIBcXICAXFyAAAAIAzwIeAYkC1wALABcAFwC6AAwAAAADK7gADBC4ABLcuAAG3DAxASImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWASwpNDQpKTQ0KRQcHBQUHBwCHjMqKjIyKiozJR4aGR4eGRoeAAABANf%2FKwFwAAMAEQAdALoAAQACAAMruAACELgAEdC4AAvcuQAKAAH0MDElMwceARUUDgIHJz4BNTQmJwEZNRkYIxgoNRwIKDEhHgM1CCAfFiAWDQMpBRcUFBUIAAIApwD8AboCTgAZACMAOQC4ABIvuwAdAAEAFwAEK7sADQABAAYABCu7AAMAAQAhAAQrugATAA0AFxESObgAExC5ACAAAfQwMRM0NjcuASMiBgcnPgEzMhYdASMnIw4BIyImNxQWMzI2NzUOAadmbQEeJx00FhkaSCg%2FPTQFAhg5ICs8PyIZFysXUUMBWTU4Cx4sFQ0rDxtIP8MlExoyLxgXFRNSCSUAAAIAjgD8AcoCTgATAB8AFwC7ABcAAQAPAAQruwAFAAEAHQAEKzAxEzQ%2BAjMyHgIVFA4CIyIuAjcUFjMyNjU0JiMiBo4aKzkgIDksGRksOSAgOSsaQjErKzExKysxAaUoPysXFys%2FKCg%2FKxcXKz8oNUBANTRBQQAAAAEAUADYAggBIAADAA0AuwABAAEAAgAEKzAxEyEVIVABuP5IASBIAAABABQA2AJEASAAAwANALsAAQABAAIABCswMRMhFSEUAjD90AEgSAAAAQDRAV4BfAK7ABEACwC6AAUACwADKzAxAQ4BBzYzMhYVFAYjIiY1NDY3AXwvNQMMDh8nKiAnM0xEAosbTzQGKCAjKj85S3cjAAAAAAEA2QFeAYQCuwARAAsAugAFAAsAAyswMRM%2BATcGIyImNTQ2MzIWFRQGB9kwNQMMDiAnKiAoMkxDAY4aTzUGJyAjK0A5S3Yj%2F%2F8A2f8fAYQAfBIHANcAAP3BAAD%2F%2FwBfAV4B7wK7EiYA1o4AEAYA1nMAAAD%2F%2FwBnAV4B9wK7EiYA144AEAYA13MAAAD%2F%2FwBn%2Fx8B9wB8EicA1%2F%2BO%2FcEQBwDXAHP9wQAAAAEAlwBzAcEBmQATAAsAugAKAAAAAyswMSUiLgI1ND4CMzIeAhUUDgIBLB42KRgYKTYeHjYpGBgpNnMVJzYhITYnFRUnNiEhNicVAAABAMUANAGFAcQABgALALoAAgAGAAMrMDE3NTcXBxcHxZknf38n1FCgI6WmIgAAAAABANMANAGTAcQABgALALoAAgAFAAMrMDElJzcXFQcnAVJ%2FJ5mZJ%2FylI6BQoCIAAAACABwAIAI8AnAAAwAHAAsAugAHAAMAAyswMT8BFwcBByc3HLchpwHvtyGnTbweywIjvB7LAAAA%2F%2F8ArAG4AbkC6RIHAOgAAAG4AAAAAQA6%2F%2FQCNgKKADEAbQC4AABFWLgAFS8buQAVAAs%2BWbgAAEVYuAADLxu5AAMAAz5ZugAoACIAAyu4ACgQuQArAAH0uAAG0LgAKBC4AAnQuAAiELgAD9C4ACIQuQAfAAH0uAAS0LgAFRC5ABwAAfS4AAMQuQAuAAH0MDElDgEjIiYnIzU3JjQ1PAE3IzU3PgEzMhYXBy4BIyIGByEVIQYUFRwBFyEVIx4BMzI2NwI2Jlw%2BYocTQDsBATtAE41qM1geMRo7JkpaDgEm%2FtUBAQED%2FQ5YRStBHlEsMYF2KwQJEgkIEAgsBXaFLSEvGiFiVzEHDggKEwkwVWAkIwAAAQBVASsCAwFpAAMADQC7AAEAAQACAAQrMDETIRUhVQGu%2FlIBaT4A%2F%2F8AHAAgAjwCcBIGAN8AAAACAKH%2F9AG3AT0ACwAXACgAuAAARVi4AAAvG7kAAAADPlm7AAYAAQASAAQruAAAELkADAAB9DAxBSImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWASw9Tk49PU5OPSAuLiAgLi4MWE9OVFROT1gyOTw8NTU8PDkAAAEA0AAAAWEBMQAIAB4AuAAARVi4AAgvG7kACAADPlm7AAUAAQAAAAQrMDElIzU%2BATczESMBIlIhKRUyP%2BYqBRAM%2Fs8AAQCtAAABpgE9ABgALAC4AABFWLgAFy8buQAXAAM%2BWbsADQABAAYABCu4ABcQuQAVAAH0uAAA0DAxNz4BNTQmIyIGByc%2BATMyFhUUDgIHMxUjt05THx0UJg4nFzskNj4TISwZiO8kO04hGyAXEyEaIzUyFCcnKRY1AAAAAAEArP%2F0AaQBPQAkADwAuAAARVi4ACEvG7kAIQADPlm7ABYAAQAPAAQruwAJAAEACAAEK7gAIRC5AAMAAfS6ABsACAAJERI5MDE3HgEzMjY1NCM1MjY1NCYjIgYHJz4BMzIWFRQHHgEVFAYjIiYnzA8xGxsjYConGh0SKA8eEz0jLzs4ICdGMyNDGVESGRYZMyYcFxQXEw8mFBksKDcUCCYfLTAcGgAAAAIArAAAAbkBMQAFABAAOAC4AABFWLgACS8buQAJAAM%2BWbsAEAABAAYABCu7AAIAAQANAAQruAAQELgAANC4AAYQuAAK0DAxJTU3Iw8BFyMVIzUjNTczFTMBTgQDLTbNMjmilEcydDhSQUkrSUkfyb0AAAAAAQCpAsIBXwMyAAMACwC6AAEAAwADKzAxEzMXI6leWEUDMnAAAQD5AsIBrwMyAAMACwC6AAIAAAADKzAxASM3MwE%2BRVheAsJwAAAAAAEApALCAbQDMgAHABkAuwACAAEABQAEK7gABRC4AATcuAAH0DAxEzczFyMnIwekYFBgQ0MEQwLCcHBERAAAAAABAJsCxwG9AzMAFwArALsAEQABAAAABCu4AAAQuAAF3LgAABC4AAjQuAAFELkADAAB9LgAFNAwMQEiLgIjIgYHIz4BMzIeAjMyNjczDgEBaBQgGxoODhYELgUsJBQgGxoODhYELgUsAscQFBAaGi89EBQQGxkuPgACAKUCywGzAy0ACwAXAB0AuwAGAAEAAAAEK7gAABC4AAzQuAAGELgAEtAwMRMiJjU0NjMyFhUUBjMiJjU0NjMyFhUUBtYWGxsWFRwclxUcHBUWGxsCyxwVFhsbFhUcHBUWGxsWFRwAAAIAzwK7AYkDawALABcAFwC6AAwAAAADK7gADBC4ABLcuAAG3DAxASImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWASwpNDQpKDU1KBMcHBMUHBwCuy8pKDAwKCkvJBsZFxwcFxkbAAABANL%2FKwFrAAMAEQAdALoAAQACAAMruAACELgAEdC4AAvcuQAKAAH0MDElMwceARUUDgIHJz4BNTQmJwETNhkYIxgoNRwIKDEhHwM1CCAfFiAWDQMpBRcUFBUIAAAAGgE%2BAAEAAAAAAAAAFgAuAAEAAAAAAAEADwBlAAEAAAAAAAIABwCFAAEAAAAAAAMAJgDbAAEAAAAAAAQADwEiAAEAAAAAAAUAQQG2AAEAAAAAAAYAFQIkAAEAAAAAAAcAYAL8AAEAAAAAAAgAGgOTAAEAAAAAAAkADAPIAAEAAAAAAAsAGQQJAAEAAAAAAA0R2yfbAAEAAAAAAA4AJDoBAAMAAQQJAAAALAAAAAMAAQQJAAEAHgBFAAMAAQQJAAIADgB1AAMAAQQJAAMATACNAAMAAQQJAAQAHgECAAMAAQQJAAUAggEyAAMAAQQJAAYAKgH4AAMAAQQJAAcAwAI6AAMAAQQJAAgANANdAAMAAQQJAAkAGAOuAAMAAQQJAAsAMgPVAAMAAQQJAA0jtgQjAAMAAQQJAA4ASDm3AFQAeQBwAG8AZwByAGEAcABoAGkAYwAgAGEAbAB0AGUAcgBuAGEAdABlAHMAAFR5cG9ncmFwaGljIGFsdGVybmF0ZXMAAFMAbwB1AHIAYwBlACAAQwBvAGQAZQAgAFAAcgBvAABTb3VyY2UgQ29kZSBQcm8AAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAADEALgAwADEANwA7AEEARABCAEUAOwBTAG8AdQByAGMAZQBDAG8AZABlAFAAcgBvAC0AUgBlAGcAdQBsAGEAcgA7AEEARABPAEIARQAAMS4wMTc7QURCRTtTb3VyY2VDb2RlUHJvLVJlZ3VsYXI7QURPQkUAAFMAbwB1AHIAYwBlACAAQwBvAGQAZQAgAFAAcgBvAABTb3VyY2UgQ29kZSBQcm8AAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAxADcAOwBQAFMAIABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAwADsAaABvAHQAYwBvAG4AdgAgADEALgAwAC4ANwAwADsAbQBhAGsAZQBvAHQAZgAuAGwAaQBiADIALgA1AC4ANQA5ADAAMAAAVmVyc2lvbiAxLjAxNztQUyBWZXJzaW9uIDEuMDAwO2hvdGNvbnYgMS4wLjcwO21ha2VvdGYubGliMi41LjU5MDAAAFMAbwB1AHIAYwBlAEMAbwBkAGUAUAByAG8ALQBSAGUAZwB1AGwAYQByAABTb3VyY2VDb2RlUHJvLVJlZ3VsYXIAAFMAbwB1AHIAYwBlACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAQQBkAG8AYgBlACAAUwB5AHMAdABlAG0AcwAgAEkAbgBjAG8AcgBwAG8AcgBhAHQAZQBkACAAaQBuACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAYQBuAGQALwBvAHIAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgBpAGUAcwAuAABTb3VyY2UgaXMgYSB0cmFkZW1hcmsgb2YgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMgYW5kL29yIG90aGVyIGNvdW50cmllcy4AAEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAAQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQAAFAAYQB1AGwAIABEAC4AIABIAHUAbgB0AABQYXVsIEQuIEh1bnQAAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAGQAbwBiAGUALgBjAG8AbQAvAHQAeQBwAGUAAGh0dHA6Ly93d3cuYWRvYmUuY29tL3R5cGUAAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADEAMAAsACAAMgAwADEAMgAgAEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgACgAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAZABvAGIAZQAuAGMAbwBtAC8AKQAsACAAdwBpAHQAaAAgAFIAZQBzAGUAcgB2AGUAZAAgAEYAbwBuAHQAIABOAGEAbQBlACAAJwBTAG8AdQByAGMAZQAnAC4AIABBAGwAbAAgAFIAaQBnAGgAdABzACAAUgBlAHMAZQByAHYAZQBkAC4AIABTAG8AdQByAGMAZQAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgAGkAbgAgAHQAaABlACAAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAgAGEAbgBkAC8AbwByACAAbwB0AGgAZQByACAAYwBvAHUAbgB0AHIAaQBlAHMALgANAAoADQAKAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4ADQAKAA0ACgBUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAGMAbwBwAGkAZQBkACAAYgBlAGwAbwB3ACwAIABhAG4AZAAgAGkAcwAgAGEAbABzAG8AIABhAHYAYQBpAGwAYQBiAGwAZQAgAHcAaQB0AGgAIABhACAARgBBAFEAIABhAHQAOgAgAGgAdAB0AHAAOgAvAC8AcwBjAHIAaQBwAHQAcwAuAHMAaQBsAC4AbwByAGcALwBPAEYATAANAAoADQAKAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQANAAoAUwBJAEwAIABPAFAARQBOACAARgBPAE4AVAAgAEwASQBDAEUATgBTAEUAIABWAGUAcgBzAGkAbwBuACAAMQAuADEAIAAtACAAMgA2ACAARgBlAGIAcgB1AGEAcgB5ACAAMgAwADAANwANAAoALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtAA0ACgANAAoAUABSAEUAQQBNAEIATABFAA0ACgBUAGgAZQAgAGcAbwBhAGwAcwAgAG8AZgAgAHQAaABlACAATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACAAKABPAEYATAApACAAYQByAGUAIAB0AG8AIABzAHQAaQBtAHUAbABhAHQAZQAgAHcAbwByAGwAZAB3AGkAZABlACAAZABlAHYAZQBsAG8AcABtAGUAbgB0ACAAbwBmACAAYwBvAGwAbABhAGIAbwByAGEAdABpAHYAZQAgAGYAbwBuAHQAIABwAHIAbwBqAGUAYwB0AHMALAAgAHQAbwAgAHMAdQBwAHAAbwByAHQAIAB0AGgAZQAgAGYAbwBuAHQAIABjAHIAZQBhAHQAaQBvAG4AIABlAGYAZgBvAHIAdABzACAAbwBmACAAYQBjAGEAZABlAG0AaQBjACAAYQBuAGQAIABsAGkAbgBnAHUAaQBzAHQAaQBjACAAYwBvAG0AbQB1AG4AaQB0AGkAZQBzACwAIABhAG4AZAAgAHQAbwAgAHAAcgBvAHYAaQBkAGUAIABhACAAZgByAGUAZQAgAGEAbgBkACAAbwBwAGUAbgAgAGYAcgBhAG0AZQB3AG8AcgBrACAAaQBuACAAdwBoAGkAYwBoACAAZgBvAG4AdABzACAAbQBhAHkAIABiAGUAIABzAGgAYQByAGUAZAAgAGEAbgBkACAAaQBtAHAAcgBvAHYAZQBkACAAaQBuACAAcABhAHIAdABuAGUAcgBzAGgAaQBwACAAdwBpAHQAaAAgAG8AdABoAGUAcgBzAC4ADQAKAA0ACgBUAGgAZQAgAE8ARgBMACAAYQBsAGwAbwB3AHMAIAB0AGgAZQAgAGwAaQBjAGUAbgBzAGUAZAAgAGYAbwBuAHQAcwAgAHQAbwAgAGIAZQAgAHUAcwBlAGQALAAgAHMAdAB1AGQAaQBlAGQALAAgAG0AbwBkAGkAZgBpAGUAZAAgAGEAbgBkACAAcgBlAGQAaQBzAHQAcgBpAGIAdQB0AGUAZAAgAGYAcgBlAGUAbAB5ACAAYQBzACAAbABvAG4AZwAgAGEAcwAgAHQAaABlAHkAIABhAHIAZQAgAG4AbwB0ACAAcwBvAGwAZAAgAGIAeQAgAHQAaABlAG0AcwBlAGwAdgBlAHMALgAgAFQAaABlACAAZgBvAG4AdABzACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAGEAbgB5ACAAZABlAHIAaQB2AGEAdABpAHYAZQAgAHcAbwByAGsAcwAsACAAYwBhAG4AIABiAGUAIABiAHUAbgBkAGwAZQBkACwAIABlAG0AYgBlAGQAZABlAGQALAAgAHIAZQBkAGkAcwB0AHIAaQBiAHUAdABlAGQAIABhAG4AZAAvAG8AcgAgAHMAbwBsAGQAIAB3AGkAdABoACAAYQBuAHkAIABzAG8AZgB0AHcAYQByAGUAIABwAHIAbwB2AGkAZABlAGQAIAB0AGgAYQB0ACAAYQBuAHkAIAByAGUAcwBlAHIAdgBlAGQAIABuAGEAbQBlAHMAIABhAHIAZQAgAG4AbwB0ACAAdQBzAGUAZAAgAGIAeQAgAGQAZQByAGkAdgBhAHQAaQB2AGUAIAB3AG8AcgBrAHMALgAgAFQAaABlACAAZgBvAG4AdABzACAAYQBuAGQAIABkAGUAcgBpAHYAYQB0AGkAdgBlAHMALAAgAGgAbwB3AGUAdgBlAHIALAAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcgBlAGwAZQBhAHMAZQBkACAAdQBuAGQAZQByACAAYQBuAHkAIABvAHQAaABlAHIAIAB0AHkAcABlACAAbwBmACAAbABpAGMAZQBuAHMAZQAuACAAVABoAGUAIAByAGUAcQB1AGkAcgBlAG0AZQBuAHQAIABmAG8AcgAgAGYAbwBuAHQAcwAgAHQAbwAgAHIAZQBtAGEAaQBuACAAdQBuAGQAZQByACAAdABoAGkAcwAgAGwAaQBjAGUAbgBzAGUAIABkAG8AZQBzACAAbgBvAHQAIABhAHAAcABsAHkAIAB0AG8AIABhAG4AeQAgAGQAbwBjAHUAbQBlAG4AdAAgAGMAcgBlAGEAdABlAGQAIAB1AHMAaQBuAGcAIAB0AGgAZQAgAGYAbwBuAHQAcwAgAG8AcgAgAHQAaABlAGkAcgAgAGQAZQByAGkAdgBhAHQAaQB2AGUAcwAuAA0ACgANAAoARABFAEYASQBOAEkAVABJAE8ATgBTAA0ACgAiAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIgAgAHIAZQBmAGUAcgBzACAAdABvACAAdABoAGUAIABzAGUAdAAgAG8AZgAgAGYAaQBsAGUAcwAgAHIAZQBsAGUAYQBzAGUAZAAgAGIAeQAgAHQAaABlACAAQwBvAHAAeQByAGkAZwBoAHQAIABIAG8AbABkAGUAcgAoAHMAKQAgAHUAbgBkAGUAcgAgAHQAaABpAHMAIABsAGkAYwBlAG4AcwBlACAAYQBuAGQAIABjAGwAZQBhAHIAbAB5ACAAbQBhAHIAawBlAGQAIABhAHMAIABzAHUAYwBoAC4AIABUAGgAaQBzACAAbQBhAHkAIABpAG4AYwBsAHUAZABlACAAcwBvAHUAcgBjAGUAIABmAGkAbABlAHMALAAgAGIAdQBpAGwAZAAgAHMAYwByAGkAcAB0AHMAIABhAG4AZAAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4ALgANAAoADQAKACIAUgBlAHMAZQByAHYAZQBkACAARgBvAG4AdAAgAE4AYQBtAGUAIgAgAHIAZQBmAGUAcgBzACAAdABvACAAYQBuAHkAIABuAGEAbQBlAHMAIABzAHAAZQBjAGkAZgBpAGUAZAAgAGEAcwAgAHMAdQBjAGgAIABhAGYAdABlAHIAIAB0AGgAZQAgAGMAbwBwAHkAcgBpAGcAaAB0ACAAcwB0AGEAdABlAG0AZQBuAHQAKABzACkALgANAAoADQAKACIATwByAGkAZwBpAG4AYQBsACAAVgBlAHIAcwBpAG8AbgAiACAAcgBlAGYAZQByAHMAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAGwAZQBjAHQAaQBvAG4AIABvAGYAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYwBvAG0AcABvAG4AZQBuAHQAcwAgAGEAcwAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAZAAgAGIAeQAgAHQAaABlACAAQwBvAHAAeQByAGkAZwBoAHQAIABIAG8AbABkAGUAcgAoAHMAKQAuAA0ACgANAAoAIgBNAG8AZABpAGYAaQBlAGQAIABWAGUAcgBzAGkAbwBuACIAIAByAGUAZgBlAHIAcwAgAHQAbwAgAGEAbgB5ACAAZABlAHIAaQB2AGEAdABpAHYAZQAgAG0AYQBkAGUAIABiAHkAIABhAGQAZABpAG4AZwAgAHQAbwAsACAAZABlAGwAZQB0AGkAbgBnACwAIABvAHIAIABzAHUAYgBzAHQAaQB0AHUAdABpAG4AZwAgAC0ALQAgAGkAbgAgAHAAYQByAHQAIABvAHIAIABpAG4AIAB3AGgAbwBsAGUAIAAtAC0AIABhAG4AeQAgAG8AZgAgAHQAaABlACAAYwBvAG0AcABvAG4AZQBuAHQAcwAgAG8AZgAgAHQAaABlACAATwByAGkAZwBpAG4AYQBsACAAVgBlAHIAcwBpAG8AbgAsACAAYgB5ACAAYwBoAGEAbgBnAGkAbgBnACAAZgBvAHIAbQBhAHQAcwAgAG8AcgAgAGIAeQAgAHAAbwByAHQAaQBuAGcAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB0AG8AIABhACAAbgBlAHcAIABlAG4AdgBpAHIAbwBuAG0AZQBuAHQALgANAAoADQAKACIAQQB1AHQAaABvAHIAIgAgAHIAZQBmAGUAcgBzACAAdABvACAAYQBuAHkAIABkAGUAcwBpAGcAbgBlAHIALAAgAGUAbgBnAGkAbgBlAGUAcgAsACAAcAByAG8AZwByAGEAbQBtAGUAcgAsACAAdABlAGMAaABuAGkAYwBhAGwAIAB3AHIAaQB0AGUAcgAgAG8AcgAgAG8AdABoAGUAcgAgAHAAZQByAHMAbwBuACAAdwBoAG8AIABjAG8AbgB0AHIAaQBiAHUAdABlAGQAIAB0AG8AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgANAAoADQAKAFAARQBSAE0ASQBTAFMASQBPAE4AIAAmACAAQwBPAE4ARABJAFQASQBPAE4AUwANAAoAUABlAHIAbQBpAHMAcwBpAG8AbgAgAGkAcwAgAGgAZQByAGUAYgB5ACAAZwByAGEAbgB0AGUAZAAsACAAZgByAGUAZQAgAG8AZgAgAGMAaABhAHIAZwBlACwAIAB0AG8AIABhAG4AeQAgAHAAZQByAHMAbwBuACAAbwBiAHQAYQBpAG4AaQBuAGcAIABhACAAYwBvAHAAeQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAdABvACAAdQBzAGUALAAgAHMAdAB1AGQAeQAsACAAYwBvAHAAeQAsACAAbQBlAHIAZwBlACwAIABlAG0AYgBlAGQALAAgAG0AbwBkAGkAZgB5ACwAIAByAGUAZABpAHMAdAByAGkAYgB1AHQAZQAsACAAYQBuAGQAIABzAGUAbABsACAAbQBvAGQAaQBmAGkAZQBkACAAYQBuAGQAIAB1AG4AbQBvAGQAaQBmAGkAZQBkACAAYwBvAHAAaQBlAHMAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALAAgAHMAdQBiAGoAZQBjAHQAIAB0AG8AIAB0AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAYwBvAG4AZABpAHQAaQBvAG4AcwA6AA0ACgANAAoAMQApACAATgBlAGkAdABoAGUAcgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG4AbwByACAAYQBuAHkAIABvAGYAIABpAHQAcwAgAGkAbgBkAGkAdgBpAGQAdQBhAGwAIABjAG8AbQBwAG8AbgBlAG4AdABzACwAIABpAG4AIABPAHIAaQBnAGkAbgBhAGwAIABvAHIAIABNAG8AZABpAGYAaQBlAGQAIABWAGUAcgBzAGkAbwBuAHMALAAgAG0AYQB5ACAAYgBlACAAcwBvAGwAZAAgAGIAeQAgAGkAdABzAGUAbABmAC4ADQAKAA0ACgAyACkAIABPAHIAaQBnAGkAbgBhAGwAIABvAHIAIABNAG8AZABpAGYAaQBlAGQAIABWAGUAcgBzAGkAbwBuAHMAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABtAGEAeQAgAGIAZQAgAGIAdQBuAGQAbABlAGQALAAgAHIAZQBkAGkAcwB0AHIAaQBiAHUAdABlAGQAIABhAG4AZAAvAG8AcgAgAHMAbwBsAGQAIAB3AGkAdABoACAAYQBuAHkAIABzAG8AZgB0AHcAYQByAGUALAAgAHAAcgBvAHYAaQBkAGUAZAAgAHQAaABhAHQAIABlAGEAYwBoACAAYwBvAHAAeQAgAGMAbwBuAHQAYQBpAG4AcwAgAHQAaABlACAAYQBiAG8AdgBlACAAYwBvAHAAeQByAGkAZwBoAHQAIABuAG8AdABpAGMAZQAgAGEAbgBkACAAdABoAGkAcwAgAGwAaQBjAGUAbgBzAGUALgAgAFQAaABlAHMAZQAgAGMAYQBuACAAYgBlACAAaQBuAGMAbAB1AGQAZQBkACAAZQBpAHQAaABlAHIAIABhAHMAIABzAHQAYQBuAGQALQBhAGwAbwBuAGUAIAB0AGUAeAB0ACAAZgBpAGwAZQBzACwAIABoAHUAbQBhAG4ALQByAGUAYQBkAGEAYgBsAGUAIABoAGUAYQBkAGUAcgBzACAAbwByACAAaQBuACAAdABoAGUAIABhAHAAcAByAG8AcAByAGkAYQB0AGUAIABtAGEAYwBoAGkAbgBlAC0AcgBlAGEAZABhAGIAbABlACAAbQBlAHQAYQBkAGEAdABhACAAZgBpAGUAbABkAHMAIAB3AGkAdABoAGkAbgAgAHQAZQB4AHQAIABvAHIAIABiAGkAbgBhAHIAeQAgAGYAaQBsAGUAcwAgAGEAcwAgAGwAbwBuAGcAIABhAHMAIAB0AGgAbwBzAGUAIABmAGkAZQBsAGQAcwAgAGMAYQBuACAAYgBlACAAZQBhAHMAaQBsAHkAIAB2AGkAZQB3AGUAZAAgAGIAeQAgAHQAaABlACAAdQBzAGUAcgAuAA0ACgANAAoAMwApACAATgBvACAATQBvAGQAaQBmAGkAZQBkACAAVgBlAHIAcwBpAG8AbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG0AYQB5ACAAdQBzAGUAIAB0AGgAZQAgAFIAZQBzAGUAcgB2AGUAZAAgAEYAbwBuAHQAIABOAGEAbQBlACgAcwApACAAdQBuAGwAZQBzAHMAIABlAHgAcABsAGkAYwBpAHQAIAB3AHIAaQB0AHQAZQBuACAAcABlAHIAbQBpAHMAcwBpAG8AbgAgAGkAcwAgAGcAcgBhAG4AdABlAGQAIABiAHkAIAB0AGgAZQAgAGMAbwByAHIAZQBzAHAAbwBuAGQAaQBuAGcAIABDAG8AcAB5AHIAaQBnAGgAdAAgAEgAbwBsAGQAZQByAC4AIABUAGgAaQBzACAAcgBlAHMAdAByAGkAYwB0AGkAbwBuACAAbwBuAGwAeQAgAGEAcABwAGwAaQBlAHMAIAB0AG8AIAB0AGgAZQAgAHAAcgBpAG0AYQByAHkAIABmAG8AbgB0ACAAbgBhAG0AZQAgAGEAcwAgAHAAcgBlAHMAZQBuAHQAZQBkACAAdABvACAAdABoAGUAIAB1AHMAZQByAHMALgANAAoADQAKADQAKQAgAFQAaABlACAAbgBhAG0AZQAoAHMAKQAgAG8AZgAgAHQAaABlACAAQwBvAHAAeQByAGkAZwBoAHQAIABIAG8AbABkAGUAcgAoAHMAKQAgAG8AcgAgAHQAaABlACAAQQB1AHQAaABvAHIAKABzACkAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABzAGgAYQBsAGwAIABuAG8AdAAgAGIAZQAgAHUAcwBlAGQAIAB0AG8AIABwAHIAbwBtAG8AdABlACwAIABlAG4AZABvAHIAcwBlACAAbwByACAAYQBkAHYAZQByAHQAaQBzAGUAIABhAG4AeQAgAE0AbwBkAGkAZgBpAGUAZAAgAFYAZQByAHMAaQBvAG4ALAAgAGUAeABjAGUAcAB0ACAAdABvACAAYQBjAGsAbgBvAHcAbABlAGQAZwBlACAAdABoAGUAIABjAG8AbgB0AHIAaQBiAHUAdABpAG8AbgAoAHMAKQAgAG8AZgAgAHQAaABlACAAQwBvAHAAeQByAGkAZwBoAHQAIABIAG8AbABkAGUAcgAoAHMAKQAgAGEAbgBkACAAdABoAGUAIABBAHUAdABoAG8AcgAoAHMAKQAgAG8AcgAgAHcAaQB0AGgAIAB0AGgAZQBpAHIAIABlAHgAcABsAGkAYwBpAHQAIAB3AHIAaQB0AHQAZQBuACAAcABlAHIAbQBpAHMAcwBpAG8AbgAuAA0ACgANAAoANQApACAAVABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACwAIABtAG8AZABpAGYAaQBlAGQAIABvAHIAIAB1AG4AbQBvAGQAaQBmAGkAZQBkACwAIABpAG4AIABwAGEAcgB0ACAAbwByACAAaQBuACAAdwBoAG8AbABlACwAIABtAHUAcwB0ACAAYgBlACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAZQBuAHQAaQByAGUAbAB5ACAAdQBuAGQAZQByACAAdABoAGkAcwAgAGwAaQBjAGUAbgBzAGUALAAgAGEAbgBkACAAbQB1AHMAdAAgAG4AbwB0ACAAYgBlACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAdQBuAGQAZQByACAAYQBuAHkAIABvAHQAaABlAHIAIABsAGkAYwBlAG4AcwBlAC4AIABUAGgAZQAgAHIAZQBxAHUAaQByAGUAbQBlAG4AdAAgAGYAbwByACAAZgBvAG4AdABzACAAdABvACAAcgBlAG0AYQBpAG4AIAB1AG4AZABlAHIAIAB0AGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGQAbwBlAHMAIABuAG8AdAAgAGEAcABwAGwAeQAgAHQAbwAgAGEAbgB5ACAAZABvAGMAdQBtAGUAbgB0ACAAYwByAGUAYQB0AGUAZAAgAHUAcwBpAG4AZwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuAA0ACgANAAoAVABFAFIATQBJAE4AQQBUAEkATwBOAA0ACgBUAGgAaQBzACAAbABpAGMAZQBuAHMAZQAgAGIAZQBjAG8AbQBlAHMAIABuAHUAbABsACAAYQBuAGQAIAB2AG8AaQBkACAAaQBmACAAYQBuAHkAIABvAGYAIAB0AGgAZQAgAGEAYgBvAHYAZQAgAGMAbwBuAGQAaQB0AGkAbwBuAHMAIABhAHIAZQAgAG4AbwB0ACAAbQBlAHQALgANAAoADQAKAEQASQBTAEMATABBAEkATQBFAFIADQAKAFQASABFACAARgBPAE4AVAAgAFMATwBGAFQAVwBBAFIARQAgAEkAUwAgAFAAUgBPAFYASQBEAEUARAAgACIAQQBTACAASQBTACIALAAgAFcASQBUAEgATwBVAFQAIABXAEEAUgBSAEEATgBUAFkAIABPAEYAIABBAE4AWQAgAEsASQBOAEQALAAgAEUAWABQAFIARQBTAFMAIABPAFIAIABJAE0AUABMAEkARQBEACwAIABJAE4AQwBMAFUARABJAE4ARwAgAEIAVQBUACAATgBPAFQAIABMAEkATQBJAFQARQBEACAAVABPACAAQQBOAFkAIABXAEEAUgBSAEEATgBUAEkARQBTACAATwBGACAATQBFAFIAQwBIAEEATgBUAEEAQgBJAEwASQBUAFkALAAgAEYASQBUAE4ARQBTAFMAIABGAE8AUgAgAEEAIABQAEEAUgBUAEkAQwBVAEwAQQBSACAAUABVAFIAUABPAFMARQAgAEEATgBEACAATgBPAE4ASQBOAEYAUgBJAE4ARwBFAE0ARQBOAFQAIABPAEYAIABDAE8AUABZAFIASQBHAEgAVAAsACAAUABBAFQARQBOAFQALAAgAFQAUgBBAEQARQBNAEEAUgBLACwAIABPAFIAIABPAFQASABFAFIAIABSAEkARwBIAFQALgAgAEkATgAgAE4ATwAgAEUAVgBFAE4AVAAgAFMASABBAEwATAAgAFQASABFACAAQwBPAFAAWQBSAEkARwBIAFQAIABIAE8ATABEAEUAUgAgAEIARQAgAEwASQBBAEIATABFACAARgBPAFIAIABBAE4AWQAgAEMATABBAEkATQAsACAARABBAE0AQQBHAEUAUwAgAE8AUgAgAE8AVABIAEUAUgAgAEwASQBBAEIASQBMAEkAVABZACwAIABJAE4AQwBMAFUARABJAE4ARwAgAEEATgBZACAARwBFAE4ARQBSAEEATAAsACAAUwBQAEUAQwBJAEEATAAsACAASQBOAEQASQBSAEUAQwBUACwAIABJAE4AQwBJAEQARQBOAFQAQQBMACwAIABPAFIAIABDAE8ATgBTAEUAUQBVAEUATgBUAEkAQQBMACAARABBAE0AQQBHAEUAUwAsACAAVwBIAEUAVABIAEUAUgAgAEkATgAgAEEATgAgAEEAQwBUAEkATwBOACAATwBGACAAQwBPAE4AVABSAEEAQwBUACwAIABUAE8AUgBUACAATwBSACAATwBUAEgARQBSAFcASQBTAEUALAAgAEEAUgBJAFMASQBOAEcAIABGAFIATwBNACwAIABPAFUAVAAgAE8ARgAgAFQASABFACAAVQBTAEUAIABPAFIAIABJAE4AQQBCAEkATABJAFQAWQAgAFQATwAgAFUAUwBFACAAVABIAEUAIABGAE8ATgBUACAAUwBPAEYAVABXAEEAUgBFACAATwBSACAARgBSAE8ATQAgAE8AVABIAEUAUgAgAEQARQBBAEwASQBOAEcAUwAgAEkATgAgAFQASABFACAARgBPAE4AVAAgAFMATwBGAFQAVwBBAFIARQAuAA0ACgAAQ29weXJpZ2h0IDIwMTAsIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQgKGh0dHA6Ly93d3cuYWRvYmUuY29tLyksIHdpdGggUmVzZXJ2ZWQgRm9udCBOYW1lICdTb3VyY2UnLiBBbGwgUmlnaHRzIFJlc2VydmVkLiBTb3VyY2UgaXMgYSB0cmFkZW1hcmsgb2YgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQgaW4gdGhlIFVuaXRlZCBTdGF0ZXMgYW5kL29yIG90aGVyIGNvdW50cmllcy4NCg0KVGhpcyBGb250IFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBTSUwgT3BlbiBGb250IExpY2Vuc2UsIFZlcnNpb24gMS4xLg0KDQpUaGlzIGxpY2Vuc2UgaXMgY29waWVkIGJlbG93LCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgd2l0aCBhIEZBUSBhdDogaHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NClNJTCBPUEVOIEZPTlQgTElDRU5TRSBWZXJzaW9uIDEuMSAtIDI2IEZlYnJ1YXJ5IDIwMDcNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClBSRUFNQkxFDQpUaGUgZ29hbHMgb2YgdGhlIE9wZW4gRm9udCBMaWNlbnNlIChPRkwpIGFyZSB0byBzdGltdWxhdGUgd29ybGR3aWRlIGRldmVsb3BtZW50IG9mIGNvbGxhYm9yYXRpdmUgZm9udCBwcm9qZWN0cywgdG8gc3VwcG9ydCB0aGUgZm9udCBjcmVhdGlvbiBlZmZvcnRzIG9mIGFjYWRlbWljIGFuZCBsaW5ndWlzdGljIGNvbW11bml0aWVzLCBhbmQgdG8gcHJvdmlkZSBhIGZyZWUgYW5kIG9wZW4gZnJhbWV3b3JrIGluIHdoaWNoIGZvbnRzIG1heSBiZSBzaGFyZWQgYW5kIGltcHJvdmVkIGluIHBhcnRuZXJzaGlwIHdpdGggb3RoZXJzLg0KDQpUaGUgT0ZMIGFsbG93cyB0aGUgbGljZW5zZWQgZm9udHMgdG8gYmUgdXNlZCwgc3R1ZGllZCwgbW9kaWZpZWQgYW5kIHJlZGlzdHJpYnV0ZWQgZnJlZWx5IGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IHNvbGQgYnkgdGhlbXNlbHZlcy4gVGhlIGZvbnRzLCBpbmNsdWRpbmcgYW55IGRlcml2YXRpdmUgd29ya3MsIGNhbiBiZSBidW5kbGVkLCBlbWJlZGRlZCwgcmVkaXN0cmlidXRlZCBhbmQvb3Igc29sZCB3aXRoIGFueSBzb2Z0d2FyZSBwcm92aWRlZCB0aGF0IGFueSByZXNlcnZlZCBuYW1lcyBhcmUgbm90IHVzZWQgYnkgZGVyaXZhdGl2ZSB3b3Jrcy4gVGhlIGZvbnRzIGFuZCBkZXJpdmF0aXZlcywgaG93ZXZlciwgY2Fubm90IGJlIHJlbGVhc2VkIHVuZGVyIGFueSBvdGhlciB0eXBlIG9mIGxpY2Vuc2UuIFRoZSByZXF1aXJlbWVudCBmb3IgZm9udHMgdG8gcmVtYWluIHVuZGVyIHRoaXMgbGljZW5zZSBkb2VzIG5vdCBhcHBseSB0byBhbnkgZG9jdW1lbnQgY3JlYXRlZCB1c2luZyB0aGUgZm9udHMgb3IgdGhlaXIgZGVyaXZhdGl2ZXMuDQoNCkRFRklOSVRJT05TDQoiRm9udCBTb2Z0d2FyZSIgcmVmZXJzIHRvIHRoZSBzZXQgb2YgZmlsZXMgcmVsZWFzZWQgYnkgdGhlIENvcHlyaWdodCBIb2xkZXIocykgdW5kZXIgdGhpcyBsaWNlbnNlIGFuZCBjbGVhcmx5IG1hcmtlZCBhcyBzdWNoLiBUaGlzIG1heSBpbmNsdWRlIHNvdXJjZSBmaWxlcywgYnVpbGQgc2NyaXB0cyBhbmQgZG9jdW1lbnRhdGlvbi4NCg0KIlJlc2VydmVkIEZvbnQgTmFtZSIgcmVmZXJzIHRvIGFueSBuYW1lcyBzcGVjaWZpZWQgYXMgc3VjaCBhZnRlciB0aGUgY29weXJpZ2h0IHN0YXRlbWVudChzKS4NCg0KIk9yaWdpbmFsIFZlcnNpb24iIHJlZmVycyB0byB0aGUgY29sbGVjdGlvbiBvZiBGb250IFNvZnR3YXJlIGNvbXBvbmVudHMgYXMgZGlzdHJpYnV0ZWQgYnkgdGhlIENvcHlyaWdodCBIb2xkZXIocykuDQoNCiJNb2RpZmllZCBWZXJzaW9uIiByZWZlcnMgdG8gYW55IGRlcml2YXRpdmUgbWFkZSBieSBhZGRpbmcgdG8sIGRlbGV0aW5nLCBvciBzdWJzdGl0dXRpbmcgLS0gaW4gcGFydCBvciBpbiB3aG9sZSAtLSBhbnkgb2YgdGhlIGNvbXBvbmVudHMgb2YgdGhlIE9yaWdpbmFsIFZlcnNpb24sIGJ5IGNoYW5naW5nIGZvcm1hdHMgb3IgYnkgcG9ydGluZyB0aGUgRm9udCBTb2Z0d2FyZSB0byBhIG5ldyBlbnZpcm9ubWVudC4NCg0KIkF1dGhvciIgcmVmZXJzIHRvIGFueSBkZXNpZ25lciwgZW5naW5lZXIsIHByb2dyYW1tZXIsIHRlY2huaWNhbCB3cml0ZXIgb3Igb3RoZXIgcGVyc29uIHdobyBjb250cmlidXRlZCB0byB0aGUgRm9udCBTb2Z0d2FyZS4NCg0KUEVSTUlTU0lPTiAmIENPTkRJVElPTlMNClBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhlIEZvbnQgU29mdHdhcmUsIHRvIHVzZSwgc3R1ZHksIGNvcHksIG1lcmdlLCBlbWJlZCwgbW9kaWZ5LCByZWRpc3RyaWJ1dGUsIGFuZCBzZWxsIG1vZGlmaWVkIGFuZCB1bm1vZGlmaWVkIGNvcGllcyBvZiB0aGUgRm9udCBTb2Z0d2FyZSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6DQoNCjEpIE5laXRoZXIgdGhlIEZvbnQgU29mdHdhcmUgbm9yIGFueSBvZiBpdHMgaW5kaXZpZHVhbCBjb21wb25lbnRzLCBpbiBPcmlnaW5hbCBvciBNb2RpZmllZCBWZXJzaW9ucywgbWF5IGJlIHNvbGQgYnkgaXRzZWxmLg0KDQoyKSBPcmlnaW5hbCBvciBNb2RpZmllZCBWZXJzaW9ucyBvZiB0aGUgRm9udCBTb2Z0d2FyZSBtYXkgYmUgYnVuZGxlZCwgcmVkaXN0cmlidXRlZCBhbmQvb3Igc29sZCB3aXRoIGFueSBzb2Z0d2FyZSwgcHJvdmlkZWQgdGhhdCBlYWNoIGNvcHkgY29udGFpbnMgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgbGljZW5zZS4gVGhlc2UgY2FuIGJlIGluY2x1ZGVkIGVpdGhlciBhcyBzdGFuZC1hbG9uZSB0ZXh0IGZpbGVzLCBodW1hbi1yZWFkYWJsZSBoZWFkZXJzIG9yIGluIHRoZSBhcHByb3ByaWF0ZSBtYWNoaW5lLXJlYWRhYmxlIG1ldGFkYXRhIGZpZWxkcyB3aXRoaW4gdGV4dCBvciBiaW5hcnkgZmlsZXMgYXMgbG9uZyBhcyB0aG9zZSBmaWVsZHMgY2FuIGJlIGVhc2lseSB2aWV3ZWQgYnkgdGhlIHVzZXIuDQoNCjMpIE5vIE1vZGlmaWVkIFZlcnNpb24gb2YgdGhlIEZvbnQgU29mdHdhcmUgbWF5IHVzZSB0aGUgUmVzZXJ2ZWQgRm9udCBOYW1lKHMpIHVubGVzcyBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSB0aGUgY29ycmVzcG9uZGluZyBDb3B5cmlnaHQgSG9sZGVyLiBUaGlzIHJlc3RyaWN0aW9uIG9ubHkgYXBwbGllcyB0byB0aGUgcHJpbWFyeSBmb250IG5hbWUgYXMgcHJlc2VudGVkIHRvIHRoZSB1c2Vycy4NCg0KNCkgVGhlIG5hbWUocykgb2YgdGhlIENvcHlyaWdodCBIb2xkZXIocykgb3IgdGhlIEF1dGhvcihzKSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBzaGFsbCBub3QgYmUgdXNlZCB0byBwcm9tb3RlLCBlbmRvcnNlIG9yIGFkdmVydGlzZSBhbnkgTW9kaWZpZWQgVmVyc2lvbiwgZXhjZXB0IHRvIGFja25vd2xlZGdlIHRoZSBjb250cmlidXRpb24ocykgb2YgdGhlIENvcHlyaWdodCBIb2xkZXIocykgYW5kIHRoZSBBdXRob3Iocykgb3Igd2l0aCB0aGVpciBleHBsaWNpdCB3cml0dGVuIHBlcm1pc3Npb24uDQoNCjUpIFRoZSBGb250IFNvZnR3YXJlLCBtb2RpZmllZCBvciB1bm1vZGlmaWVkLCBpbiBwYXJ0IG9yIGluIHdob2xlLCBtdXN0IGJlIGRpc3RyaWJ1dGVkIGVudGlyZWx5IHVuZGVyIHRoaXMgbGljZW5zZSwgYW5kIG11c3Qgbm90IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIGFueSBvdGhlciBsaWNlbnNlLiBUaGUgcmVxdWlyZW1lbnQgZm9yIGZvbnRzIHRvIHJlbWFpbiB1bmRlciB0aGlzIGxpY2Vuc2UgZG9lcyBub3QgYXBwbHkgdG8gYW55IGRvY3VtZW50IGNyZWF0ZWQgdXNpbmcgdGhlIEZvbnQgU29mdHdhcmUuDQoNClRFUk1JTkFUSU9ODQpUaGlzIGxpY2Vuc2UgYmVjb21lcyBudWxsIGFuZCB2b2lkIGlmIGFueSBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucyBhcmUgbm90IG1ldC4NCg0KRElTQ0xBSU1FUg0KVEhFIEZPTlQgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIEFOWSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVCBPRiBDT1BZUklHSFQsIFBBVEVOVCwgVFJBREVNQVJLLCBPUiBPVEhFUiBSSUdIVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElORElSRUNULCBJTkNJREVOVEFMLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBGT05UIFNPRlRXQVJFIE9SIEZST00gT1RIRVIgREVBTElOR1MgSU4gVEhFIEZPTlQgU09GVFdBUkUuDQoAAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAGQAbwBiAGUALgBjAG8AbQAvAHQAeQBwAGUALwBsAGUAZwBhAGwALgBoAHQAbQBsAABodHRwOi8vd3d3LmFkb2JlLmNvbS90eXBlL2xlZ2FsLmh0bWwAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAEAAgECAQMAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAQQAowCEAIUAvQCWAOgAhgCOAIsAnQCpAKQBBQCKANoAgwCTAQYBBwCNAQgAiADDAN4BCQCeAKoA9QD0APYAogCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAOkAZgDTANAA0QCvAGcA8ACRANYA1ADVAGgA6wDtAIkAagBpAGsAbQBsAG4AoABvAHEAcAByAHMAdQB0AHYAdwDqAHgAegB5AHsAfQB8ALgAoQB%2FAH4AgACBAOwA7gC6ANcAsACxANgA3QDZAQoBCwEMAQ0BDgEPARABEQESARMAsgCzALYAtwDEALQAtQDFAIcAvgC%2FALwBFAEVAO8BFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgROVUxMAkNSB3VuaTAwQTAHdW5pMDBBRAh0d28uc3Vwcwp0aHJlZS5zdXBzB3VuaTAwQjUIb25lLnN1cHMHdW5pMDMwMAd1bmkwMzAxB3VuaTAzMDIHdW5pMDMwMwd1bmkwMzA0B3VuaTAzMDgHdW5pMDMwQQd1bmkwMzI3BmEuc3VwcwZvLnN1cHMJZm91ci5zdXBzBEV1cm8HdW5pMjIxNQl6ZXJvLmRub20Ib25lLmRub20IdHdvLmRub20KdGhyZWUuZG5vbQlmb3VyLmRub20LdW5pMDMwMC5jYXALdW5pMDMwMS5jYXALdW5pMDMwMi5jYXALdW5pMDMwMy5jYXALdW5pMDMwOC5jYXALdW5pMDMwQS5jYXALdW5pMDMyNy5jYXAAAAAAAAAB%2F%2F8AAgAAAAEAAAAAzG2xVQAAAADNFaB%2FAAAAAM0fFuI%3D%29%20format%28%27truetype%27%29%3B%0A%7D%0A" rel="stylesheet" />
<link href="data:text/css;charset=utf-8,%40charset%20%22UTF%2D8%22%3B%0A%0Ahtml%2C%20body%2C%20div%2C%20span%2C%20applet%2C%20object%2C%20iframe%2C%0Ah1%2C%20h2%2C%20h3%2C%20h4%2C%20h5%2C%20h6%2C%20p%2C%20blockquote%2C%20pre%2C%0Aa%2C%20abbr%2C%20acronym%2C%20address%2C%20big%2C%20cite%2C%20code%2C%0Adel%2C%20dfn%2C%20em%2C%20img%2C%20ins%2C%20kbd%2C%20q%2C%20s%2C%20samp%2C%0Asmall%2C%20strike%2C%20strong%2C%20tt%2C%20var%2C%0Ab%2C%20u%2C%20i%2C%20center%2C%0Adl%2C%20dt%2C%20dd%2C%20ol%2C%20ul%2C%20li%2C%0Afieldset%2C%20form%2C%20label%2C%20legend%2C%0Atable%2C%20caption%2C%20tbody%2C%20tfoot%2C%20thead%2C%20tr%2C%20th%2C%20td%2C%0Aarticle%2C%20aside%2C%20canvas%2C%20details%2C%20embed%2C%0Afigure%2C%20figcaption%2C%20footer%2C%20header%2C%20hgroup%2C%0Amenu%2C%20nav%2C%20output%2C%20ruby%2C%20section%2C%20summary%2C%0Atime%2C%20mark%2C%20audio%2C%20video%20%7B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%200%3B%0Afont%3A%20inherit%3B%0Afont%2Dsize%3A%20100%25%3B%0Avertical%2Dalign%3A%20baseline%3B%0A%7D%0A%0Ahtml%20%7B%0Aline%2Dheight%3A%201%2E2%3B%0A%7D%0A%0Aul%20%7B%0Alist%2Dstyle%3A%20none%3B%0A%7D%0A%0Atable%20%7B%0Aborder%2Dcollapse%3A%20collapse%3B%0Aborder%2Dspacing%3A%200%3B%0A%7D%0A%0Acaption%2C%20th%2C%20td%20%7B%0Afont%2Dweight%3A%20normal%3B%0Avertical%2Dalign%3A%20middle%3B%0A%7D%0A%0Aq%2C%20blockquote%20%7B%0Aquotes%3A%20none%3B%0A%7D%0A%0Aq%3Abefore%2C%20q%3Aafter%2C%20blockquote%3Abefore%2C%20blockquote%3Aafter%20%7B%0Acontent%3A%20%22%22%3B%0Acontent%3A%20none%3B%0A%7D%0A%0Aa%20img%20%7B%0Aborder%3A%20none%3B%0A%7D%0A%0Aarticle%2C%20aside%2C%20details%2C%20figcaption%2C%20figure%2C%20footer%2C%20header%2C%20hgroup%2C%20menu%2C%20nav%2C%20section%2C%20summary%20%7B%0Adisplay%3A%20block%3B%0A%7D%0A%0A%0Ahtml%20%7B%0Aheight%3A%20100%25%3B%0Aoverflow%3A%20hidden%3B%0A%7D%0A%0Abody%20%7B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aopacity%3A%200%3B%0Aheight%3A%20100%25%3B%0Amin%2Dheight%3A%20740px%3B%0Awidth%3A%20100%25%3B%0Aoverflow%3A%20hidden%3B%0Acolor%3A%20%23fff%3B%0A%2Dwebkit%2Dfont%2Dsmoothing%3A%20antialiased%3B%0A%2Dmoz%2Dfont%2Dsmoothing%3A%20antialiased%3B%0A%2Dms%2Dfont%2Dsmoothing%3A%20antialiased%3B%0A%2Do%2Dfont%2Dsmoothing%3A%20antialiased%3B%0A%2Dwebkit%2Dtransition%3A%20opacity%20250ms%20ease%2Din%3B%0A%2Dwebkit%2Dtransition%2Ddelay%3A%20100ms%3B%0A%2Dmoz%2Dtransition%3A%20opacity%20250ms%20ease%2Din%20100ms%3B%0A%2Do%2Dtransition%3A%20opacity%20250ms%20ease%2Din%20100ms%3B%0Atransition%3A%20opacity%20250ms%20ease%2Din%20100ms%3B%0A%7D%0A%0Abody%2Eloaded%20%7B%0Aopacity%3A%201%20%21important%3B%0A%7D%0A%0Ainput%2C%20button%20%7B%0Avertical%2Dalign%3A%20middle%3B%0A%7D%0A%0Aslides%20%3E%20slide%5Bhidden%5D%20%7B%0Adisplay%3A%20none%20%21important%3B%0A%7D%0A%0Aslides%20%7B%0Awidth%3A%20100%25%3B%0Aheight%3A%20100%25%3B%0Aposition%3A%20absolute%3B%0Aleft%3A%200%3B%0Atop%3A%200%3B%0A%2Dwebkit%2Dtransform%3A%20translate3d%280%2C%200%2C%200%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%280%2C%200%2C%200%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%280%2C%200%2C%200%29%3B%0A%2Do%2Dtransform%3A%20translate3d%280%2C%200%2C%200%29%3B%0Atransform%3A%20translate3d%280%2C%200%2C%200%29%3B%0A%2Dwebkit%2Dperspective%3A%201000%3B%0A%2Dmoz%2Dperspective%3A%201000%3B%0A%2Dms%2Dperspective%3A%201000%3B%0A%2Do%2Dperspective%3A%201000%3B%0Aperspective%3A%201000%3B%0A%2Dwebkit%2Dtransform%2Dstyle%3A%20preserve%2D3d%3B%0A%2Dmoz%2Dtransform%2Dstyle%3A%20preserve%2D3d%3B%0A%2Dms%2Dtransform%2Dstyle%3A%20preserve%2D3d%3B%0A%2Do%2Dtransform%2Dstyle%3A%20preserve%2D3d%3B%0Atransform%2Dstyle%3A%20preserve%2D3d%3B%0A%2Dwebkit%2Dtransition%3A%20opacity%20250ms%20ease%2Din%3B%0A%2Dwebkit%2Dtransition%2Ddelay%3A%20100ms%3B%0A%2Dmoz%2Dtransition%3A%20opacity%20250ms%20ease%2Din%20100ms%3B%0A%2Do%2Dtransition%3A%20opacity%20250ms%20ease%2Din%20100ms%3B%0Atransition%3A%20opacity%20250ms%20ease%2Din%20100ms%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%7B%0Adisplay%3A%20block%3B%0Aposition%3A%20absolute%3B%0Aoverflow%3A%20hidden%3B%0Aleft%3A%2050%25%3B%0Atop%3A%2050%25%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%7D%0A%0A%0A%0A%0A%3A%3Aselection%20%7B%0Acolor%3A%20white%3B%0Abackground%2Dcolor%3A%20%23ffd14d%3B%0Atext%2Dshadow%3A%20none%3B%0A%7D%0A%0A%3A%3A%2Dwebkit%2Dscrollbar%20%7B%0Aheight%3A%2016px%3B%0Aoverflow%3A%20visible%3B%0Awidth%3A%2016px%3B%0A%7D%0A%0A%3A%3A%2Dwebkit%2Dscrollbar%2Dthumb%20%7B%0Abackground%2Dcolor%3A%20rgba%280%2C%200%2C%200%2C%200%2E1%29%3B%0Abackground%2Dclip%3A%20padding%2Dbox%3B%0Aborder%3A%20solid%20transparent%3B%0Amin%2Dheight%3A%2028px%3B%0Apadding%3A%20100px%200%200%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20inset%201px%201px%200%20rgba%280%2C%200%2C%200%2C%200%2E1%29%2C%20inset%200%20%2D1px%200%20rgba%280%2C%200%2C%200%2C%200%2E07%29%3B%0A%2Dmoz%2Dbox%2Dshadow%3A%20inset%201px%201px%200%20rgba%280%2C%200%2C%200%2C%200%2E1%29%2C%20inset%200%20%2D1px%200%20rgba%280%2C%200%2C%200%2C%200%2E07%29%3B%0Abox%2Dshadow%3A%20inset%201px%201px%200%20rgba%280%2C%200%2C%200%2C%200%2E1%29%2C%20inset%200%20%2D1px%200%20rgba%280%2C%200%2C%200%2C%200%2E07%29%3B%0Aborder%2Dwidth%3A%201px%201px%201px%206px%3B%0A%7D%0A%0A%3A%3A%2Dwebkit%2Dscrollbar%2Dthumb%3Ahover%20%7B%0Abackground%2Dcolor%3A%20rgba%280%2C%200%2C%200%2C%200%2E5%29%3B%0A%7D%0A%0A%3A%3A%2Dwebkit%2Dscrollbar%2Dbutton%20%7B%0Aheight%3A%200%3B%0Awidth%3A%200%3B%0A%7D%0A%0A%3A%3A%2Dwebkit%2Dscrollbar%2Dtrack%20%7B%0Abackground%2Dclip%3A%20padding%2Dbox%3B%0Aborder%3A%20solid%20transparent%3B%0Aborder%2Dwidth%3A%200%200%200%204px%3B%0A%7D%0A%0A%3A%3A%2Dwebkit%2Dscrollbar%2Dcorner%20%7B%0Abackground%3A%20transparent%3B%0A%7D%0A%0Abody%20%7B%0Abackground%3A%20black%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%7B%0Adisplay%3A%20none%3B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%2C%20Arial%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2026px%3B%0Acolor%3A%20%23797979%3B%0Awidth%3A%20900px%3B%0Aheight%3A%20700px%3B%0Amargin%2Dleft%3A%20%2D450px%3B%0Amargin%2Dtop%3A%20%2D350px%3B%0Apadding%3A%2040px%2060px%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%205px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%205px%3B%0A%2Dms%2Dborder%2Dradius%3A%205px%3B%0A%2Do%2Dborder%2Dradius%3A%205px%3B%0Aborder%2Dradius%3A%205px%3B%0A%2Dwebkit%2Dtransition%3A%20all%200%2E6s%20ease%2Din%2Dout%3B%0A%2Dmoz%2Dtransition%3A%20all%200%2E6s%20ease%2Din%2Dout%3B%0A%2Do%2Dtransition%3A%20all%200%2E6s%20ease%2Din%2Dout%3B%0Atransition%3A%20all%200%2E6s%20ease%2Din%2Dout%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Efar%2Dpast%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Epast%20%7B%0Adisplay%3A%20block%3B%0Aopacity%3A%200%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Ecurrent%20%7B%0Adisplay%3A%20block%3B%0Aopacity%3A%201%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Ecurrent%20%2Eauto%2Dfadein%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Ecurrent%20%2Egdbar%20%7B%0A%2Dwebkit%2Dbackground%2Dsize%3A%20100%25%20100%25%3B%0A%2Dmoz%2Dbackground%2Dsize%3A%20100%25%20100%25%3B%0A%2Do%2Dbackground%2Dsize%3A%20100%25%20100%25%3B%0Abackground%2Dsize%3A%20100%25%20100%25%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Enext%20%7B%0Adisplay%3A%20block%3B%0Aopacity%3A%200%3B%0Apointer%2Devents%3A%20none%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Efar%2Dnext%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Edark%20%7B%0Abackground%3A%20%23515151%20%21important%3B%0A%7D%0A%0Aslides%20%3E%20slide%3Anot%28%2Enobackground%29%3Aafter%20%7B%0Afont%2Dsize%3A%2012pt%3B%0Acontent%3A%20attr%28data%2Dslide%2Dnum%29%20%22%2F%22%20attr%28data%2Dtotal%2Dslides%29%3B%0Aposition%3A%20absolute%3B%0Abottom%3A%2020px%3B%0Aright%3A%2060px%3B%0Aline%2Dheight%3A%201%2E9%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Etitle%2Dslide%3Aafter%20%7B%0Acontent%3A%20%27%27%3B%0Aposition%3A%20absolute%3B%0Abottom%3A%2040px%3B%0Aright%3A%2040px%3B%0Awidth%3A%20100%25%3B%0Aheight%3A%2060px%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Ebackdrop%20%7B%0Az%2Dindex%3A%20%2D10%3B%0Adisplay%3A%20block%20%21important%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%280%25%2C%20%23ffffff%29%2C%20color%2Dstop%2885%25%2C%20%23ffffff%29%2C%20color%2Dstop%28100%25%2C%20%23e6e6e6%29%29%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20linear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%2Dcolor%3A%20white%3B%0A%7D%0A%0Aslides%20%3E%20slide%2Ebackdrop%3Aafter%2C%20slides%20%3E%20slide%2Ebackdrop%3Abefore%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%3E%20hgroup%20%2B%20article%20%7B%0Amargin%2Dtop%3A%2045px%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%3E%20hgroup%20%2B%20article%2Eflexbox%2Evcenter%2C%20slides%20%3E%20slide%20%3E%20hgroup%20%2B%20article%2Eflexbox%2Evleft%2C%20slides%20%3E%20slide%20%3E%20hgroup%20%2B%20article%2Eflexbox%2Evright%20%7B%0Aheight%3A%2080%25%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%3E%20hgroup%20%2B%20article%20p%20%7B%0Amargin%2Dbottom%3A%201em%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%3E%20article%3Aonly%2Dchild%20%7B%0Aheight%3A%20100%25%3B%0A%7D%0A%0Aslides%20%3E%20slide%20%3E%20article%3Aonly%2Dchild%20%3E%20iframe%20%7B%0Aheight%3A%2095%25%3B%0A%7D%0A%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%20%7B%0Apadding%3A%2040px%20160px%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%3E%20slide%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%20%7B%0Amargin%2Dleft%3A%20%2D550px%3B%0Awidth%3A%201100px%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%3E%20slide%2Efar%2Dpast%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%2Efar%2Dpast%20%7B%0Adisplay%3A%20block%3B%0Adisplay%3A%20none%3B%0A%2Dwebkit%2Dtransform%3A%20translate%28%2D2260px%29%3B%0A%2Dmoz%2Dtransform%3A%20translate%28%2D2260px%29%3B%0A%2Dms%2Dtransform%3A%20translate%28%2D2260px%29%3B%0A%2Do%2Dtransform%3A%20translate%28%2D2260px%29%3B%0Atransform%3A%20translate%28%2D2260px%29%3B%0A%2Dwebkit%2Dtransform%3A%20translate3d%28%2D2260px%2C%200%2C%200%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%28%2D2260px%2C%200%2C%200%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%28%2D2260px%2C%200%2C%200%29%3B%0A%2Do%2Dtransform%3A%20translate3d%28%2D2260px%2C%200%2C%200%29%3B%0Atransform%3A%20translate3d%28%2D2260px%2C%200%2C%200%29%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%3E%20slide%2Epast%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%2Epast%20%7B%0Adisplay%3A%20block%3B%0Aopacity%3A%200%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%3E%20slide%2Ecurrent%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%2Ecurrent%20%7B%0Adisplay%3A%20block%3B%0Aopacity%3A%201%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%3E%20slide%2Enext%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%2Enext%20%7B%0Adisplay%3A%20block%3B%0Aopacity%3A%200%3B%0Apointer%2Devents%3A%20none%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%3E%20slide%2Efar%2Dnext%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%3E%20slide%2Efar%2Dnext%20%7B%0Adisplay%3A%20block%3B%0Adisplay%3A%20none%3B%0A%2Dwebkit%2Dtransform%3A%20translate%282260px%29%3B%0A%2Dmoz%2Dtransform%3A%20translate%282260px%29%3B%0A%2Dms%2Dtransform%3A%20translate%282260px%29%3B%0A%2Do%2Dtransform%3A%20translate%282260px%29%3B%0Atransform%3A%20translate%282260px%29%3B%0A%2Dwebkit%2Dtransform%3A%20translate3d%282260px%2C%200%2C%200%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%282260px%2C%200%2C%200%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%282260px%2C%200%2C%200%29%3B%0A%2Do%2Dtransform%3A%20translate3d%282260px%2C%200%2C%200%29%3B%0Atransform%3A%20translate3d%282260px%2C%200%2C%200%29%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%23prev%2Dslide%2Darea%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%23prev%2Dslide%2Darea%20%7B%0Amargin%2Dleft%3A%20%2D650px%3B%0A%7D%0A%0Aslides%2Elayout%2Dwidescreen%20%23next%2Dslide%2Darea%2C%0Aslides%2Elayout%2Dfaux%2Dwidescreen%20%23next%2Dslide%2Darea%20%7B%0Amargin%2Dleft%3A%20550px%3B%0A%7D%0A%0Ab%20%7B%0Afont%2Dweight%3A%20600%3B%0A%7D%0A%0Aa%20%7B%0Acolor%3A%20%232a7cdf%3B%0Atext%2Ddecoration%3A%20none%3B%0Aborder%2Dbottom%3A%201px%20solid%20rgba%2842%2C%20124%2C%20223%2C%200%2E5%29%3B%0A%7D%0A%0Aa%3Ahover%20%7B%0Acolor%3A%20black%20%21important%3B%0A%7D%0A%0Ah1%2C%20h2%2C%20h3%20%7B%0Afont%2Dweight%3A%20600%3B%0A%7D%0A%0Ah2%20%7B%0Afont%2Dsize%3A%2045px%3B%0Aline%2Dheight%3A%2065px%3B%0Aletter%2Dspacing%3A%20%2D2px%3B%0Acolor%3A%20%23515151%3B%0A%7D%0A%0Ah3%20%7B%0Afont%2Dsize%3A%2030px%3B%0Aletter%2Dspacing%3A%20%2D1px%3B%0Aline%2Dheight%3A%202%3B%0Afont%2Dweight%3A%20inherit%3B%0Acolor%3A%20%23797979%3B%0A%7D%0A%0Aol%2C%20ul%20%7B%0Amargin%2Dleft%3A%201%2E2em%3B%0Amargin%2Dbottom%3A%201em%3B%0Aposition%3A%20relative%3B%0A%7D%0Aol%20%7B%0Amargin%2Dleft%3A%201%2E4em%3B%0A%7D%0A%0Aol%20li%2C%0Aul%20li%20%7B%0Amargin%2Dbottom%3A%200%2E5em%3B%0A%7D%0A%0Aul%20li%20ul%20%7B%0Amargin%2Dleft%3A%202em%3B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0A%0Aul%20li%20ul%20li%3Abefore%20%7B%0Acontent%3A%20%27%2D%27%3B%0Afont%2Dweight%3A%20600%3B%0A%7D%0A%0Aul%20%3E%20li%3Abefore%20%7B%0Acontent%3A%20%27%5C00B7%27%3B%0Amargin%2Dleft%3A%20%2D1em%3B%0Aposition%3A%20absolute%3B%0Afont%2Dweight%3A%20600%3B%0A%7D%0A%0Aul%20ul%2C%0Aol%20ul%20%7B%0Amargin%2Dtop%3A%20%2E5em%3B%0A%7D%0Aol%20ul%2C%0Aol%20ol%20%7B%0Amargin%2Dtop%3A%20%2E5em%3B%0A%7D%0A%0A%2Ehighlight%2Dcode%20slide%2Ecurrent%20pre%20%3E%20%2A%20%7B%0Aopacity%3A%200%2E25%3B%0A%2Dwebkit%2Dtransition%3A%20opacity%200%2E5s%20ease%2Din%3B%0A%2Dmoz%2Dtransition%3A%20opacity%200%2E5s%20ease%2Din%3B%0A%2Do%2Dtransition%3A%20opacity%200%2E5s%20ease%2Din%3B%0Atransition%3A%20opacity%200%2E5s%20ease%2Din%3B%0A%7D%0A%0A%2Ehighlight%2Dcode%20slide%2Ecurrent%20b%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%0Apre%20%7B%0Afont%2Dfamily%3A%20%27Source%20Code%20Pro%27%2C%20%27Courier%20New%27%2C%20monospace%3B%0Afont%2Dsize%3A%2020px%3B%0Aline%2Dheight%3A%2028px%3B%0Apadding%3A%2010px%200%2010px%2060px%3B%0Aletter%2Dspacing%3A%20%2D1px%3B%0Amargin%2Dbottom%3A%2020px%3B%0Awidth%3A%20106%25%3B%0Aleft%3A%20%2D60px%3B%0Aposition%3A%20relative%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%0A%7D%0A%2Eprettyprint%20%7B%0Abackground%2Dcolor%3A%20%23e6e6e6%3B%0A%7D%0A%0Apre%5Bdata%2Dlang%5D%3Aafter%20%7B%0Acontent%3A%20attr%28data%2Dlang%29%3B%0Abackground%2Dcolor%3A%20darkgrey%3B%0Aright%3A%200%3B%0Atop%3A%200%3B%0Aposition%3A%20absolute%3B%0Afont%2Dsize%3A%2016pt%3B%0Acolor%3A%20white%3B%0Apadding%3A%202px%2025px%3B%0Atext%2Dtransform%3A%20uppercase%3B%0A%7D%0A%0Apre%5Bdata%2Dlang%3D%22go%22%5D%20%7B%0Acolor%3A%20%23333%3B%0A%7D%0A%0Acode%20%7B%0Afont%2Dsize%3A%2095%25%3B%0Afont%2Dfamily%3A%20%27Source%20Code%20Pro%27%2C%20%27Courier%20New%27%2C%20monospace%3B%0Acolor%3A%20black%3B%0A%7D%0A%0Aiframe%20%7B%0Awidth%3A%20100%25%3B%0Aheight%3A%20510px%3B%0Abackground%3A%20white%3B%0Aborder%3A%201px%20solid%20%23e6e6e6%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%7D%0A%0Adt%20%7B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0A%0Abutton%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%2840%25%2C%20%23f9f9f9%29%2C%20color%2Dstop%2870%25%2C%20%23e3e3e3%29%29%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28%23f9f9f9%2040%25%2C%20%23e3e3e3%2070%25%29%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28%23f9f9f9%2040%25%2C%20%23e3e3e3%2070%25%29%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28%23f9f9f9%2040%25%2C%20%23e3e3e3%2070%25%29%3B%0Abackground%3A%20linear%2Dgradient%28%23f9f9f9%2040%25%2C%20%23e3e3e3%2070%25%29%3B%0Aborder%3A%201px%20solid%20darkgrey%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%203px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%203px%3B%0A%2Dms%2Dborder%2Dradius%3A%203px%3B%0A%2Do%2Dborder%2Dradius%3A%203px%3B%0Aborder%2Dradius%3A%203px%3B%0Apadding%3A%205px%208px%3B%0Aoutline%3A%20none%3B%0Awhite%2Dspace%3A%20nowrap%3B%0A%2Dwebkit%2Duser%2Dselect%3A%20none%3B%0A%2Dmoz%2Duser%2Dselect%3A%20none%3B%0Auser%2Dselect%3A%20none%3B%0Acursor%3A%20pointer%3B%0Atext%2Dshadow%3A%201px%201px%20white%3B%0Afont%2Dsize%3A%2010pt%3B%0A%7D%0A%0Abutton%3Anot%28%3Adisabled%29%3Ahover%20%7B%0Aborder%2Dcolor%3A%20%23515151%3B%0A%7D%0A%0Abutton%3Anot%28%3Adisabled%29%3Aactive%20%7B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%2840%25%2C%20%23e3e3e3%29%2C%20color%2Dstop%2870%25%2C%20%23f9f9f9%29%29%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28%23e3e3e3%2040%25%2C%20%23f9f9f9%2070%25%29%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28%23e3e3e3%2040%25%2C%20%23f9f9f9%2070%25%29%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28%23e3e3e3%2040%25%2C%20%23f9f9f9%2070%25%29%3B%0Abackground%3A%20linear%2Dgradient%28%23e3e3e3%2040%25%2C%20%23f9f9f9%2070%25%29%3B%0A%7D%0A%0A%3Adisabled%20%7B%0Acolor%3A%20darkgrey%3B%0A%7D%0A%0A%2Eblue%20%7B%0Acolor%3A%20%234387fd%3B%0A%7D%0A%0A%2Eblue2%20%7B%0Acolor%3A%20%233c8ef3%3B%0A%7D%0A%0A%2Eblue3%20%7B%0Acolor%3A%20%232a7cdf%3B%0A%7D%0A%0A%2Eyellow%20%7B%0Acolor%3A%20%23ffd14d%3B%0A%7D%0A%0A%2Eyellow2%20%7B%0Acolor%3A%20%23f9cc46%3B%0A%7D%0A%0A%2Eyellow3%20%7B%0Acolor%3A%20%23f6c000%3B%0A%7D%0A%0A%2Egreen%20%7B%0Acolor%3A%20%230da861%3B%0A%7D%0A%0A%2Egreen2%20%7B%0Acolor%3A%20%2300a86d%3B%0A%7D%0A%0A%2Egreen3%20%7B%0Acolor%3A%20%23009f5d%3B%0A%7D%0A%0A%2Ered%20%7B%0Acolor%3A%20%23f44a3f%3B%0A%7D%0A%0A%2Ered2%20%7B%0Acolor%3A%20%23e0543e%3B%0A%7D%0A%0A%2Ered3%20%7B%0Acolor%3A%20%23d94d3a%3B%0A%7D%0A%0A%2Egray%20%7B%0Acolor%3A%20%23e6e6e6%3B%0A%7D%0A%0A%2Egray2%20%7B%0Acolor%3A%20darkgrey%3B%0A%7D%0A%0A%2Egray3%20%7B%0Acolor%3A%20%23797979%3B%0A%7D%0A%0A%2Egray4%20%7B%0Acolor%3A%20%23515151%3B%0A%7D%0A%0A%2Ewhite%20%7B%0Acolor%3A%20white%20%21important%3B%0A%7D%0A%0A%2Eblack%20%7B%0Acolor%3A%20black%20%21important%3B%0A%7D%0A%0A%2Ecolumns%2D2%20%7B%0A%2Dwebkit%2Dcolumn%2Dcount%3A%202%3B%0A%2Dmoz%2Dcolumn%2Dcount%3A%202%3B%0A%2Dms%2Dcolumn%2Dcount%3A%202%3B%0A%2Do%2Dcolumn%2Dcount%3A%202%3B%0Acolumn%2Dcount%3A%202%3B%0A%7D%0A%0A%2Ecolumns%2D2%20ul%2C%20%2Ecolumns%2D2%20ol%20%7B%0A%2Dwebkit%2Dtransform%3A%20translate3d%280%2C%200%2C%200%29%3B%0A%7D%0A%0Atable%2Ermdtable%20%7B%0Awidth%3A%20100%25%3B%0Aborder%2Dcollapse%3A%20%2Dmoz%2Dinitial%3B%0Aborder%2Dcollapse%3A%20initial%3B%0Aborder%2Dspacing%3A%202px%3B%0Aborder%2Dbottom%3A%201px%20solid%20%23797979%3B%0A%7D%0A%0Atable%2Ermdtable%20tr%20%3E%20td%3Afirst%2Dchild%2C%20table%20th%20%7B%0Afont%2Dweight%3A%20600%3B%0Acolor%3A%20%23515151%3B%0A%7D%0A%0Atable%2Ermdtable%20tr%3Anth%2Dchild%28odd%29%20%7B%0Abackground%2Dcolor%3A%20%23e6e6e6%3B%0A%7D%0A%0Atable%2Ermdtable%20th%20%7B%0Acolor%3A%20white%3B%0Afont%2Dsize%3A%2018px%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%2840%25%2C%20%234387fd%29%2C%20color%2Dstop%2880%25%2C%20%232a7cdf%29%29%20no%2Drepeat%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%234387fd%2040%25%2C%20%232a7cdf%2080%25%29%20no%2Drepeat%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%234387fd%2040%25%2C%20%232a7cdf%2080%25%29%20no%2Drepeat%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28top%2C%20%234387fd%2040%25%2C%20%232a7cdf%2080%25%29%20no%2Drepeat%3B%0Abackground%3A%20linear%2Dgradient%28top%2C%20%234387fd%2040%25%2C%20%232a7cdf%2080%25%29%20no%2Drepeat%3B%0A%7D%0A%0Atable%2Ermdtable%20td%2C%20table%20th%20%7B%0Afont%2Dsize%3A%2018px%3B%0Apadding%3A%201em%200%2E5em%3B%0A%7D%0A%0Atable%2Ermdtable%20td%2Ehighlight%20%7B%0Acolor%3A%20%23515151%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%2840%25%2C%20%23ffd14d%29%2C%20color%2Dstop%2880%25%2C%20%23f6c000%29%29%20no%2Drepeat%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23ffd14d%2040%25%2C%20%23f6c000%2080%25%29%20no%2Drepeat%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23ffd14d%2040%25%2C%20%23f6c000%2080%25%29%20no%2Drepeat%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28top%2C%20%23ffd14d%2040%25%2C%20%23f6c000%2080%25%29%20no%2Drepeat%3B%0Abackground%3A%20linear%2Dgradient%28top%2C%20%23ffd14d%2040%25%2C%20%23f6c000%2080%25%29%20no%2Drepeat%3B%0A%7D%0A%0Atable%2Ermdtable%2Erows%20%7B%0Aborder%2Dbottom%3A%20none%3B%0Aborder%2Dright%3A%201px%20solid%20%23797979%3B%0A%7D%0A%0Aq%20%7B%0Afont%2Dsize%3A%2045px%3B%0Aline%2Dheight%3A%2072px%3B%0A%7D%0A%0Aq%3Abefore%20%7B%0Acontent%3A%20%27%5C201C%27%3B%0Aposition%3A%20absolute%3B%0Amargin%2Dleft%3A%20%2D0%2E5em%3B%0A%7D%0A%0Aq%3Aafter%20%7B%0Acontent%3A%20%27%5C201D%27%3B%0Aposition%3A%20absolute%3B%0Amargin%2Dleft%3A%200%2E1em%3B%0A%7D%0A%0Aslide%2Efill%20%7B%0Abackground%2Drepeat%3A%20no%2Drepeat%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%205px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%205px%3B%0A%2Dms%2Dborder%2Dradius%3A%205px%3B%0A%2Do%2Dborder%2Dradius%3A%205px%3B%0Aborder%2Dradius%3A%205px%3B%0A%2Dwebkit%2Dbackground%2Dsize%3A%20cover%3B%0A%2Dmoz%2Dbackground%2Dsize%3A%20cover%3B%0A%2Do%2Dbackground%2Dsize%3A%20cover%3B%0Abackground%2Dsize%3A%20cover%3B%0A%7D%0A%0A%0Aarticle%2Esmaller%20p%2C%20article%2Esmaller%20ul%2C%20article%2Esmaller%20ol%20%7B%0Afont%2Dsize%3A%2020px%3B%0Aline%2Dheight%3A%2024px%3B%0Aletter%2Dspacing%3A%200%3B%0A%7D%0A%0Aarticle%2Esmaller%20table%20td%2C%20article%2Esmaller%20table%20th%20%7B%0Afont%2Dsize%3A%2014px%3B%0A%7D%0A%0Aarticle%2Esmaller%20pre%20%7B%0Afont%2Dsize%3A%2015px%3B%0Aline%2Dheight%3A%2020px%3B%0Aletter%2Dspacing%3A%200%3B%0A%7D%0A%0Aarticle%2Esmaller%20q%20%7B%0Afont%2Dsize%3A%2040px%3B%0Aline%2Dheight%3A%2048px%3B%0A%7D%0A%0Aarticle%2Esmaller%20q%3Abefore%2C%20article%2Esmaller%20q%3Aafter%20%7B%0Afont%2Dsize%3A%2060px%3B%0A%7D%0A%0A%0A%2Ebuild%20%3E%20%2A%20%7B%0A%2Dwebkit%2Dtransition%3A%20opacity%200%2E5s%20ease%2Din%2Dout%3B%0A%2Dwebkit%2Dtransition%2Ddelay%3A%200%2E2s%3B%0A%2Dmoz%2Dtransition%3A%20opacity%200%2E5s%20ease%2Din%2Dout%200%2E2s%3B%0A%2Do%2Dtransition%3A%20opacity%200%2E5s%20ease%2Din%2Dout%200%2E2s%3B%0Atransition%3A%20opacity%200%2E5s%20ease%2Din%2Dout%200%2E2s%3B%0A%7D%0A%0A%2Ebuild%20%2Eto%2Dbuild%20%7B%0Aopacity%3A%200%3B%0A%7D%0A%0A%2Ebuild%20%2Ebuild%2Dfade%20%7B%0Aopacity%3A%200%2E3%3B%0A%7D%0A%0A%2Ebuild%20%2Ebuild%2Dfade%3Ahover%20%7B%0Aopacity%3A%201%2E0%3B%0A%7D%0A%0A%2Epopup%20%2Enext%20%2Ebuild%20%2Eto%2Dbuild%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%0A%2Epopup%20%2Enext%20%2Ebuild%20%2Ebuild%2Dfade%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%0A%0A%2Eprettyprint%20%2Estr%2C%0A%2Eprettyprint%20%2Eatv%20%7B%0A%0Acolor%3A%20%23009f5d%3B%0A%7D%0A%0A%2Eprettyprint%20%2Ekwd%2C%0A%2Eprettyprint%20%2Etag%20%7B%0A%0Acolor%3A%20%230066cc%3B%0A%7D%0A%0A%2Eprettyprint%20%2Ecom%20%7B%0A%0Acolor%3A%20%23797979%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0A%0A%2Eprettyprint%20%2Elit%20%7B%0A%0Acolor%3A%20%237f0000%3B%0A%7D%0A%0A%2Eprettyprint%20%2Epun%2C%0A%2Eprettyprint%20%2Eopn%2C%0A%2Eprettyprint%20%2Eclo%20%7B%0Acolor%3A%20%23515151%3B%0A%7D%0A%0A%2Eprettyprint%20%2Etyp%2C%0A%2Eprettyprint%20%2Eatn%2C%0A%2Eprettyprint%20%2Edec%2C%0A%2Eprettyprint%20%2Evar%20%7B%0A%0Acolor%3A%20%23d94d3a%3B%0A%7D%0A%0A%2Eprettyprint%20%2Epln%20%7B%0Acolor%3A%20%23515151%3B%0A%7D%0A%0A%2Enote%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%20100%3B%0Awidth%3A%20100%25%3B%0Aheight%3A%20100%25%3B%0Atop%3A%200%3B%0Aleft%3A%200%3B%0Apadding%3A%201em%3B%0Abackground%3A%20rgba%280%2C%200%2C%200%2C%200%2E3%29%3B%0Aopacity%3A%200%3B%0Apointer%2Devents%3A%20none%3B%0Adisplay%3A%20%2Dwebkit%2Dbox%20%21important%3B%0Adisplay%3A%20%2Dmoz%2Dbox%20%21important%3B%0Adisplay%3A%20%2Dms%2Dbox%20%21important%3B%0Adisplay%3A%20%2Do%2Dbox%20%21important%3B%0Adisplay%3A%20box%20%21important%3B%0A%2Dwebkit%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dmoz%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dms%2Dbox%2Dorient%3A%20vertical%3B%0Abox%2Dorient%3A%20vertical%3B%0A%2Dwebkit%2Dbox%2Dalign%3A%20center%3B%0A%2Dmoz%2Dbox%2Dalign%3A%20center%3B%0A%2Dms%2Dbox%2Dalign%3A%20center%3B%0Abox%2Dalign%3A%20center%3B%0A%2Dwebkit%2Dbox%2Dpack%3A%20center%3B%0A%2Dmoz%2Dbox%2Dpack%3A%20center%3B%0A%2Dms%2Dbox%2Dpack%3A%20center%3B%0Abox%2Dpack%3A%20center%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%205px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%205px%3B%0A%2Dms%2Dborder%2Dradius%3A%205px%3B%0A%2Do%2Dborder%2Dradius%3A%205px%3B%0Aborder%2Dradius%3A%205px%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dwebkit%2Dtransform%3A%20translateY%28350px%29%3B%0A%2Dmoz%2Dtransform%3A%20translateY%28350px%29%3B%0A%2Dms%2Dtransform%3A%20translateY%28350px%29%3B%0A%2Do%2Dtransform%3A%20translateY%28350px%29%3B%0Atransform%3A%20translateY%28350px%29%3B%0A%2Dwebkit%2Dtransition%3A%20all%200%2E4s%20ease%2Din%2Dout%3B%0A%2Dmoz%2Dtransition%3A%20all%200%2E4s%20ease%2Din%2Dout%3B%0A%2Do%2Dtransition%3A%20all%200%2E4s%20ease%2Din%2Dout%3B%0Atransition%3A%20all%200%2E4s%20ease%2Din%2Dout%3B%0A%7D%0A%0A%2Enote%20%3E%20section%20%7B%0Abackground%3A%20%23fff%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%205px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%205px%3B%0A%2Dms%2Dborder%2Dradius%3A%205px%3B%0A%2Do%2Dborder%2Dradius%3A%205px%3B%0Aborder%2Dradius%3A%205px%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0A%2Dmoz%2Dbox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0Abox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0Awidth%3A%2060%25%3B%0Apadding%3A%202em%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slides%2Elayout%2Dwidescreen%20slide%2Enext%2C%0A%2Ewith%2Dnotes%2Epopup%20slides%2Elayout%2Dfaux%2Dwidescreen%20slide%2Enext%20%7B%0A%2Dwebkit%2Dtransform%3A%20translate3d%28690px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%28690px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%28690px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%2Do%2Dtransform%3A%20translate3d%28690px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0Atransform%3A%20translate3d%28690px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slides%2Elayout%2Dwidescreen%20slide%20%2Enote%2C%0A%2Ewith%2Dnotes%2Epopup%20slides%2Elayout%2Dfaux%2Dwidescreen%20slide%20%2Enote%20%7B%0A%2Dwebkit%2Dtransform%3A%20translate3d%28300px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%28300px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%28300px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Do%2Dtransform%3A%20translate3d%28300px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0Atransform%3A%20translate3d%28300px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slide%20%7B%0Aoverflow%3A%20visible%3B%0Abackground%3A%20white%3B%0A%2Dwebkit%2Dtransition%3A%20none%3B%0A%2Dmoz%2Dtransition%3A%20none%3B%0A%2Do%2Dtransition%3A%20none%3B%0Atransition%3A%20none%3B%0Apointer%2Devents%3A%20none%3B%0A%2Dwebkit%2Dtransform%2Dorigin%3A%200%200%3B%0A%2Dmoz%2Dtransform%2Dorigin%3A%200%200%3B%0A%2Dms%2Dtransform%2Dorigin%3A%200%200%3B%0A%2Do%2Dtransform%2Dorigin%3A%200%200%3B%0Atransform%2Dorigin%3A%200%200%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slide%3Anot%28%2Ebackdrop%29%20%7B%0A%2Dwebkit%2Dtransform%3A%20scale%280%2E6%29%20translate3d%280%2E5em%2C%200%2E5em%2C%200%29%3B%0A%2Dmoz%2Dtransform%3A%20scale%280%2E6%29%20translate3d%280%2E5em%2C%200%2E5em%2C%200%29%3B%0A%2Dms%2Dtransform%3A%20scale%280%2E6%29%20translate3d%280%2E5em%2C%200%2E5em%2C%200%29%3B%0A%2Do%2Dtransform%3A%20scale%280%2E6%29%20translate3d%280%2E5em%2C%200%2E5em%2C%200%29%3B%0Atransform%3A%20scale%280%2E6%29%20translate3d%280%2E5em%2C%200%2E5em%2C%200%29%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0A%2Dmoz%2Dbox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0Abox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slide%2Ebackdrop%20%7B%0Abackground%2Dimage%3A%20%2Dwebkit%2Dgradient%28radial%2C%2050%25%2050%25%2C%200%2C%2050%25%2050%25%2C%20600%2C%20color%2Dstop%280%25%2C%20%23b1dfff%29%2C%20color%2Dstop%28100%25%2C%20%234387fd%29%29%3B%0Abackground%2Dimage%3A%20%2Dwebkit%2Dradial%2Dgradient%2850%25%2050%25%2C%20%23b1dfff%200%25%2C%20%234387fd%20600px%29%3B%0Abackground%2Dimage%3A%20%2Dmoz%2Dradial%2Dgradient%2850%25%2050%25%2C%20%23b1dfff%200%25%2C%20%234387fd%20600px%29%3B%0Abackground%2Dimage%3A%20%2Do%2Dradial%2Dgradient%2850%25%2050%25%2C%20%23b1dfff%200%25%2C%20%234387fd%20600px%29%3B%0Abackground%2Dimage%3A%20radial%2Dgradient%2850%25%2050%25%2C%20%23b1dfff%200%25%2C%20%234387fd%20600px%29%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slide%2Enext%20%7B%0A%2Dwebkit%2Dtransform%3A%20translate3d%28570px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%28570px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%28570px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0A%2Do%2Dtransform%3A%20translate3d%28570px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0Atransform%3A%20translate3d%28570px%2C%2080px%2C%200%29%20scale%280%2E35%29%3B%0Aopacity%3A%201%20%21important%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20slide%2Enext%20%2Enote%20%7B%0Adisplay%3A%20none%20%21important%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20%2Enote%20%7B%0Awidth%3A%20109%25%3B%0Aheight%3A%20260px%3B%0Abackground%3A%20%23e6e6e6%3B%0Apadding%3A%200%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0A%2Dmoz%2Dbox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0Abox%2Dshadow%3A%200%200%2010px%20%23797979%3B%0A%2Dwebkit%2Dtransform%3A%20translate3d%28250px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Dmoz%2Dtransform%3A%20translate3d%28250px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Dms%2Dtransform%3A%20translate3d%28250px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Do%2Dtransform%3A%20translate3d%28250px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0Atransform%3A%20translate3d%28250px%2C%20800px%2C%200%29%20scale%281%2E5%29%3B%0A%2Dwebkit%2Dtransition%3A%20opacity%20400ms%20ease%2Din%2Dout%3B%0A%2Dmoz%2Dtransition%3A%20opacity%20400ms%20ease%2Din%2Dout%3B%0A%2Do%2Dtransition%3A%20opacity%20400ms%20ease%2Din%2Dout%3B%0Atransition%3A%20opacity%20400ms%20ease%2Din%2Dout%3B%0A%7D%0A%0A%2Ewith%2Dnotes%2Epopup%20%2Enote%20%3E%20section%20%7B%0Abackground%3A%20%23fff%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%205px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%205px%3B%0A%2Dms%2Dborder%2Dradius%3A%205px%3B%0A%2Do%2Dborder%2Dradius%3A%205px%3B%0Aborder%2Dradius%3A%205px%3B%0Aheight%3A%20100%25%3B%0Awidth%3A%20100%25%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20none%3B%0A%2Dmoz%2Dbox%2Dshadow%3A%20none%3B%0Abox%2Dshadow%3A%20none%3B%0Aoverflow%3A%20auto%3B%0Apadding%3A%201em%3B%0A%7D%0A%0A%2Ewith%2Dnotes%20%2Enote%20%7B%0Aopacity%3A%201%3B%0A%2Dwebkit%2Dtransform%3A%20translateY%280%29%3B%0A%2Dmoz%2Dtransform%3A%20translateY%280%29%3B%0A%2Dms%2Dtransform%3A%20translateY%280%29%3B%0A%2Do%2Dtransform%3A%20translateY%280%29%3B%0Atransform%3A%20translateY%280%29%3B%0Apointer%2Devents%3A%20auto%3B%0A%7D%0A%0A%2Esource%20%7B%0Afont%2Dsize%3A%2014px%3B%0Acolor%3A%20darkgrey%3B%0Aposition%3A%20absolute%3B%0Abottom%3A%2070px%3B%0Aleft%3A%2060px%3B%0A%7D%0A%0A%2Ecentered%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%0A%2Ereflect%20%7B%0A%2Dwebkit%2Dbox%2Dreflect%3A%20below%203px%20%2Dwebkit%2Dlinear%2Dgradient%28rgba%28255%2C%20255%2C%20255%2C%200%29%2085%25%2C%20white%20150%25%29%3B%0A%2Dmoz%2Dbox%2Dreflect%3A%20below%203px%20%2Dmoz%2Dlinear%2Dgradient%28rgba%28255%2C%20255%2C%20255%2C%200%29%2085%25%2C%20white%20150%25%29%3B%0A%2Do%2Dbox%2Dreflect%3A%20below%203px%20%2Do%2Dlinear%2Dgradient%28rgba%28255%2C%20255%2C%20255%2C%200%29%2085%25%2C%20white%20150%25%29%3B%0A%2Dms%2Dbox%2Dreflect%3A%20below%203px%20%2Dms%2Dlinear%2Dgradient%28rgba%28255%2C%20255%2C%20255%2C%200%29%2085%25%2C%20white%20150%25%29%3B%0Abox%2Dreflect%3A%20below%203px%20linear%2Dgradient%28rgba%28255%2C%20255%2C%20255%2C%200%29%2085%25%2C%20%23ffffff%20150%25%29%3B%0A%7D%0A%0A%2Eflexbox%20%7B%0Adisplay%3A%20%2Dwebkit%2Dbox%20%21important%3B%0Adisplay%3A%20%2Dmoz%2Dbox%20%21important%3B%0Adisplay%3A%20%2Dms%2Dbox%20%21important%3B%0Adisplay%3A%20%2Do%2Dbox%20%21important%3B%0Adisplay%3A%20box%20%21important%3B%0A%7D%0A%0A%2Eflexbox%2Evcenter%20%7B%0A%2Dwebkit%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dmoz%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dms%2Dbox%2Dorient%3A%20vertical%3B%0Abox%2Dorient%3A%20vertical%3B%0A%2Dwebkit%2Dbox%2Dalign%3A%20center%3B%0A%2Dmoz%2Dbox%2Dalign%3A%20center%3B%0A%2Dms%2Dbox%2Dalign%3A%20center%3B%0Abox%2Dalign%3A%20center%3B%0A%2Dwebkit%2Dbox%2Dpack%3A%20center%3B%0A%2Dmoz%2Dbox%2Dpack%3A%20center%3B%0A%2Dms%2Dbox%2Dpack%3A%20center%3B%0Abox%2Dpack%3A%20center%3B%0Aheight%3A%20100%25%3B%0Awidth%3A%20100%25%3B%0A%7D%0A%0A%2Eflexbox%2Evleft%20%7B%0A%2Dwebkit%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dmoz%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dms%2Dbox%2Dorient%3A%20vertical%3B%0Abox%2Dorient%3A%20vertical%3B%0A%2Dwebkit%2Dbox%2Dalign%3A%20left%3B%0A%2Dmoz%2Dbox%2Dalign%3A%20left%3B%0A%2Dms%2Dbox%2Dalign%3A%20left%3B%0Abox%2Dalign%3A%20left%3B%0A%2Dwebkit%2Dbox%2Dpack%3A%20center%3B%0A%2Dmoz%2Dbox%2Dpack%3A%20center%3B%0A%2Dms%2Dbox%2Dpack%3A%20center%3B%0Abox%2Dpack%3A%20center%3B%0Aheight%3A%20100%25%3B%0Awidth%3A%20100%25%3B%0A%7D%0A%0A%2Eflexbox%2Evright%20%7B%0A%2Dwebkit%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dmoz%2Dbox%2Dorient%3A%20vertical%3B%0A%2Dms%2Dbox%2Dorient%3A%20vertical%3B%0Abox%2Dorient%3A%20vertical%3B%0A%2Dwebkit%2Dbox%2Dalign%3A%20end%3B%0A%2Dmoz%2Dbox%2Dalign%3A%20end%3B%0A%2Dms%2Dbox%2Dalign%3A%20end%3B%0Abox%2Dalign%3A%20end%3B%0A%2Dwebkit%2Dbox%2Dpack%3A%20center%3B%0A%2Dmoz%2Dbox%2Dpack%3A%20center%3B%0A%2Dms%2Dbox%2Dpack%3A%20center%3B%0Abox%2Dpack%3A%20center%3B%0Aheight%3A%20100%25%3B%0Awidth%3A%20100%25%3B%0A%7D%0A%0A%2Eauto%2Dfadein%20%7B%0A%2Dwebkit%2Dtransition%3A%20opacity%200%2E6s%20ease%2Din%3B%0A%2Dwebkit%2Dtransition%2Ddelay%3A%200%2E6s%3B%0A%2Dmoz%2Dtransition%3A%20opacity%200%2E6s%20ease%2Din%200%2E6s%3B%0A%2Do%2Dtransition%3A%20opacity%200%2E6s%20ease%2Din%200%2E6s%3B%0Atransition%3A%20opacity%200%2E6s%20ease%2Din%200%2E6s%3B%0Aopacity%3A%200%3B%0A%7D%0A%0A%0A%2Eslide%2Darea%20%7B%0Az%2Dindex%3A%201000%3B%0Aposition%3A%20absolute%3B%0Aleft%3A%200%3B%0Atop%3A%200%3B%0Awidth%3A%20100px%3B%0Aheight%3A%20700px%3B%0Aleft%3A%2050%25%3B%0Atop%3A%2050%25%3B%0Acursor%3A%20pointer%3B%0Amargin%2Dtop%3A%20%2D350px%3B%0A%7D%0A%0A%23prev%2Dslide%2Darea%20%7B%0Amargin%2Dleft%3A%20%2D550px%3B%0A%7D%0A%0A%23next%2Dslide%2Darea%20%7B%0Amargin%2Dleft%3A%20450px%3B%0A%7D%0A%0A%0A%2Elogoslide%20img%20%7B%0Awidth%3A%20383px%3B%0Aheight%3A%2092px%3B%0A%7D%0A%0A%2Esegue%20%7B%0Apadding%3A%2060px%20120px%3B%0A%7D%0A%0A%2Esegue%20h2%20%7B%0Acolor%3A%20%23e6e6e6%3B%0Afont%2Dsize%3A%2060px%3B%0A%7D%0A%0A%2Esegue%20h3%20%7B%0Acolor%3A%20%23e6e6e6%3B%0Aline%2Dheight%3A%202%2E8%3B%0A%7D%0A%0A%2Esegue%20hgroup%20%7B%0Aposition%3A%20absolute%3B%0Abottom%3A%20225px%3B%0A%7D%0A%0A%2Ethank%2Dyou%2Dslide%20%7B%0Abackground%3A%20%234387fd%20%21important%3B%0Acolor%3A%20white%3B%0A%7D%0A%0A%2Ethank%2Dyou%2Dslide%20h2%20%7B%0Afont%2Dsize%3A%2060px%3B%0Acolor%3A%20inherit%3B%0A%7D%0A%0A%2Ethank%2Dyou%2Dslide%20article%20%3E%20p%20%7B%0Amargin%2Dtop%3A%202em%3B%0Afont%2Dsize%3A%2020pt%3B%0A%7D%0A%0A%2Ethank%2Dyou%2Dslide%20%3E%20p%20%7B%0Aposition%3A%20absolute%3B%0Abottom%3A%2080px%3B%0Afont%2Dsize%3A%2024pt%3B%0Aline%2Dheight%3A%201%2E3%3B%0A%7D%0A%0Aaside%2Egdbar%20%7B%0Aheight%3A%2097px%3B%0Awidth%3A%20215px%3B%0Aposition%3A%20absolute%3B%0Aleft%3A%20%2D1px%3B%0Atop%3A%20125px%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%200%2010px%2010px%200%3B%0A%2Dmoz%2Dborder%2Dradius%3A%200%2010px%2010px%200%3B%0A%2Dms%2Dborder%2Dradius%3A%200%2010px%2010px%200%3B%0A%2Do%2Dborder%2Dradius%3A%200%2010px%2010px%200%3B%0Aborder%2Dradius%3A%200%2010px%2010px%200%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%200%25%2050%25%2C%20100%25%2050%25%2C%20color%2Dstop%280%25%2C%20%23e6e6e6%29%2C%20color%2Dstop%28100%25%2C%20%23e6e6e6%29%29%20no%2Drepeat%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20%23e6e6e6%2C%20%23e6e6e6%29%20no%2Drepeat%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28left%2C%20%23e6e6e6%2C%20%23e6e6e6%29%20no%2Drepeat%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28left%2C%20%23e6e6e6%2C%20%23e6e6e6%29%20no%2Drepeat%3B%0Abackground%3A%20linear%2Dgradient%28left%2C%20%23e6e6e6%2C%20%23e6e6e6%29%20no%2Drepeat%3B%0A%2Dwebkit%2Dbackground%2Dsize%3A%200%25%20100%25%3B%0A%2Dmoz%2Dbackground%2Dsize%3A%200%25%20100%25%3B%0A%2Do%2Dbackground%2Dsize%3A%200%25%20100%25%3B%0Abackground%2Dsize%3A%200%25%20100%25%3B%0A%2Dwebkit%2Dtransition%3A%20all%200%2E5s%20ease%2Dout%3B%0A%2Dwebkit%2Dtransition%2Ddelay%3A%200%2E5s%3B%0A%2Dmoz%2Dtransition%3A%20all%200%2E5s%20ease%2Dout%200%2E5s%3B%0A%2Do%2Dtransition%3A%20all%200%2E5s%20ease%2Dout%200%2E5s%3B%0Atransition%3A%20all%200%2E5s%20ease%2Dout%200%2E5s%3B%0A%0A%7D%0A%0Aaside%2Egdbar%2Eright%20%7B%0Aright%3A%200%3B%0Aleft%3A%20%2Dmoz%2Dinitial%3B%0Aleft%3A%20initial%3B%0Atop%3A%20254px%3B%0A%0A%2Dwebkit%2Dtransform%3A%20rotateZ%28180deg%29%3B%0A%2Dmoz%2Dtransform%3A%20rotateZ%28180deg%29%3B%0A%2Dms%2Dtransform%3A%20rotateZ%28180deg%29%3B%0A%2Do%2Dtransform%3A%20rotateZ%28180deg%29%3B%0Atransform%3A%20rotateZ%28180deg%29%3B%0A%7D%0A%0Aaside%2Egdbar%2Eright%20img%20%7B%0A%2Dwebkit%2Dtransform%3A%20rotateZ%28180deg%29%3B%0A%2Dmoz%2Dtransform%3A%20rotateZ%28180deg%29%3B%0A%2Dms%2Dtransform%3A%20rotateZ%28180deg%29%3B%0A%2Do%2Dtransform%3A%20rotateZ%28180deg%29%3B%0Atransform%3A%20rotateZ%28180deg%29%3B%0A%7D%0A%0Aaside%2Egdbar%2Ebottom%20%7B%0Atop%3A%20%2Dmoz%2Dinitial%3B%0Atop%3A%20initial%3B%0Abottom%3A%2060px%3B%0A%7D%0A%0Aaside%2Egdbar%20img%20%7B%0Awidth%3A%2085px%3B%0Aheight%3A%2085px%3B%0Aposition%3A%20absolute%3B%0Aright%3A%200%3B%0Amargin%3A%208px%2015px%3B%0A%7D%0A%0A%2Etitle%2Dslide%20hgroup%20%7B%0Abottom%3A%20100px%3B%0A%7D%0A%0A%2Etitle%2Dslide%20hgroup%20h1%20%7B%0Afont%2Dsize%3A%2065px%3B%0Aline%2Dheight%3A%201%2E4%3B%0Aletter%2Dspacing%3A%20%2D3px%3B%0Acolor%3A%20%23515151%3B%0A%7D%0A%0A%2Etitle%2Dslide%20hgroup%20h2%20%7B%0Afont%2Dsize%3A%2034px%3B%0Acolor%3A%20darkgrey%3B%0Afont%2Dweight%3A%20inherit%3B%0A%7D%0A%0A%2Etitle%2Dslide%20hgroup%20p%20%7B%0Afont%2Dsize%3A%2020px%3B%0Acolor%3A%20%23797979%3B%0Aline%2Dheight%3A%201%2E3%3B%0Amargin%2Dtop%3A%202em%3B%0A%7D%0A%0A%2Equote%20%7B%0Acolor%3A%20%23e6e6e6%3B%0A%7D%0A%0A%2Equote%20%2Eauthor%20%7B%0Afont%2Dsize%3A%2024px%3B%0Aposition%3A%20absolute%3B%0Abottom%3A%2080px%3B%0Aline%2Dheight%3A%201%2E4%3B%0A%7D%0A%0A%5Bdata%2Dconfig%2Dcontact%5D%20a%20%7B%0Acolor%3A%20white%3B%0Aborder%2Dbottom%3A%20none%3B%0A%7D%0A%0A%5Bdata%2Dconfig%2Dcontact%5D%20span%20%7B%0Awidth%3A%20115px%3B%0Adisplay%3A%20inline%2Dblock%3B%0A%7D%0A%0A%2Eoverview%2Epopup%20%2Enote%20%7B%0Adisplay%3A%20none%20%21important%3B%0A%7D%0A%0A%2Eoverview%20slides%20slide%20%7B%0Adisplay%3A%20block%3B%0Acursor%3A%20pointer%3B%0Aopacity%3A%200%2E5%3B%0Apointer%2Devents%3A%20auto%20%21important%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%280%25%2C%20%23ffffff%29%2C%20color%2Dstop%2885%25%2C%20%23ffffff%29%2C%20color%2Dstop%28100%25%2C%20%23e6e6e6%29%29%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20linear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%2Dcolor%3A%20white%3B%0A%7D%0A%0A%2Eoverview%20slides%20slide%2Ebackdrop%20%7B%0Adisplay%3A%20none%20%21important%3B%0A%7D%0A%0A%2Eoverview%20slides%20slide%2Efar%2Dpast%2C%20%2Eoverview%20slides%20slide%2Epast%2C%20%2Eoverview%20slides%20slide%2Enext%2C%20%2Eoverview%20slides%20slide%2Efar%2Dnext%2C%20%2Eoverview%20slides%20slide%2Efar%2Dpast%20%7B%0Aopacity%3A%200%2E5%3B%0Adisplay%3A%20block%3B%0A%7D%0A%0A%2Eoverview%20slides%20slide%2Ecurrent%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%0A%2Eoverview%20%2Eslide%2Darea%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%40media%20print%20%7B%0A%0Aslides%20slide%20%7B%0Adisplay%3A%20block%20%21important%3B%0Aposition%3A%20relative%3B%0Abackground%3A%20%2Dwebkit%2Dgradient%28linear%2C%2050%25%200%25%2C%2050%25%20100%25%2C%20color%2Dstop%280%25%2C%20%23ffffff%29%2C%20color%2Dstop%2885%25%2C%20%23ffffff%29%2C%20color%2Dstop%28100%25%2C%20%23e6e6e6%29%29%3B%0Abackground%3A%20%2Dwebkit%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20%2Dmoz%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20%2Do%2Dlinear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%3A%20linear%2Dgradient%28%23ffffff%2C%20%23ffffff%2085%25%2C%20%23e6e6e6%29%3B%0Abackground%2Dcolor%3A%20white%3B%0A%2Dwebkit%2Dtransform%3A%20none%20%21important%3B%0A%2Dmoz%2Dtransform%3A%20none%20%21important%3B%0A%2Dms%2Dtransform%3A%20none%20%21important%3B%0A%2Do%2Dtransform%3A%20none%20%21important%3B%0Atransform%3A%20none%20%21important%3B%0Awidth%3A%20100%25%3B%0Aheight%3A%20100%25%3B%0Apage%2Dbreak%2Dafter%3A%20always%3B%0Atop%3A%20auto%20%21important%3B%0Aleft%3A%20auto%20%21important%3B%0Amargin%2Dtop%3A%200%20%21important%3B%0Amargin%2Dleft%3A%200%20%21important%3B%0Aopacity%3A%201%20%21important%3B%0Acolor%3A%20%23555%3B%0A%7D%0A%0Aslides%20slide%2Efar%2Dpast%2C%20slides%20slide%2Epast%2C%20slides%20slide%2Enext%2C%20slides%20slide%2Efar%2Dnext%2C%20slides%20slide%2Efar%2Dpast%2C%20slides%20slide%2Ecurrent%20%7B%0Aopacity%3A%201%20%21important%3B%0Adisplay%3A%20block%20%21important%3B%0A%7D%0A%0Aslides%20slide%20%2Ebuild%20%3E%20%2A%20%7B%0A%2Dwebkit%2Dtransition%3A%20none%3B%0A%2Dmoz%2Dtransition%3A%20none%3B%0A%2Do%2Dtransition%3A%20none%3B%0Atransition%3A%20none%3B%0A%7D%0A%0Aslides%20slide%20%2Ebuild%20%2Eto%2Dbuild%2C%0Aslides%20slide%20%2Ebuild%20%2Ebuild%2Dfade%20%7B%0Aopacity%3A%201%3B%0A%7D%0A%0Aslides%20slide%20%2Eauto%2Dfadein%20%7B%0Aopacity%3A%201%20%21important%3B%0A%7D%0A%0Aslides%20slide%2Ebackdrop%20%7B%0Adisplay%3A%20none%20%21important%3B%0A%7D%0A%0Aslides%20slide%20table%2Erows%20%7B%0Aborder%2Dright%3A%200%3B%0A%7D%0A%0Aslides%20slide%5Bhidden%5D%20%7B%0Adisplay%3A%20none%20%21important%3B%0A%7D%0A%0A%2Eslide%2Darea%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%0A%2Ereflect%20%7B%0A%2Dwebkit%2Dbox%2Dreflect%3A%20none%3B%0A%2Dmoz%2Dbox%2Dreflect%3A%20none%3B%0A%2Do%2Dbox%2Dreflect%3A%20none%3B%0A%2Dms%2Dbox%2Dreflect%3A%20none%3B%0Abox%2Dreflect%3A%20none%3B%0A%7D%0A%0Apre%2C%20code%20%7B%0Afont%2Dfamily%3A%20monospace%20%21important%3B%0A%7D%0A%7D%0A%0Alabel%20%7B%0Adisplay%3A%20block%3B%0Amargin%2Dbottom%3A%204px%3B%0A%7D%0Alabel%2C%20input%20%7B%0Afont%2Dsize%3A%2016px%3B%0Acolor%3A%20%23333%3B%0A%7D%0Ainput%20%7B%0Awidth%3A%20220px%3B%0A%7D%0A%2Ejslider%20%7B%0Amargin%2Dtop%3A%208px%3B%0A%7D%0A%0A%2EdataTables%5Finfo%2C%20%2EdataTables%5Fpaginate%20%7B%0Afont%2Dsize%3A%2014px%3B%0A%7D%0A" rel="stylesheet" />
<link href="data:text/css;charset=utf-8,%0A%40media%20only%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%20480px%29%20%7B%0Aslides%3Eslide%7B%2Dwebkit%2Dtransition%3Anone%20%21important%3B%2Dwebkit%2Dtransition%3Anone%20%21important%3B%2Dmoz%2Dtransition%3Anone%20%21important%3B%2Do%2Dtransition%3Anone%20%21important%3Btransition%3Anone%20%21important%7D%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyogTW9kZXJuaXpyIDIuNS4zIChDdXN0b20gQnVpbGQpIHwgTUlUICYgQlNECiAqIEJ1aWxkOiBodHRwOi8vd3d3Lm1vZGVybml6ci5jb20vZG93bmxvYWQvIy1mb250ZmFjZS1iYWNrZ3JvdW5kc2l6ZS1ib3JkZXJpbWFnZS1ib3JkZXJyYWRpdXMtYm94c2hhZG93LWZsZXhib3gtZmxleGJveF9sZWdhY3ktaHNsYS1tdWx0aXBsZWJncy1vcGFjaXR5LXJnYmEtdGV4dHNoYWRvdy1jc3NhbmltYXRpb25zLWNzc2NvbHVtbnMtZ2VuZXJhdGVkY29udGVudC1jc3NncmFkaWVudHMtY3NzcmVmbGVjdGlvbnMtY3NzdHJhbnNmb3Jtcy1jc3N0cmFuc2Zvcm1zM2QtY3NzdHJhbnNpdGlvbnMtYXBwbGljYXRpb25jYWNoZS1jYW52YXMtY2FudmFzdGV4dC1kcmFnYW5kZHJvcC1oYXNoY2hhbmdlLWhpc3RvcnktYXVkaW8tdmlkZW8taW5kZXhlZGRiLWlucHV0LWlucHV0dHlwZXMtbG9jYWxzdG9yYWdlLXBvc3RtZXNzYWdlLXNlc3Npb25zdG9yYWdlLXdlYnNvY2tldHMtd2Vic3FsZGF0YWJhc2Utd2Vid29ya2Vycy1nZW9sb2NhdGlvbi1pbmxpbmVzdmctc21pbC1zdmctc3ZnY2xpcHBhdGhzLXRvdWNoLXdlYmdsLW1xLXByZWZpeGVkLXRlc3RzdHlsZXMtdGVzdHByb3AtdGVzdGFsbHByb3BzLWhhc2V2ZW50LXByZWZpeGVzLWRvbXByZWZpeGVzLWxvYWQKICovCjt3aW5kb3cuTW9kZXJuaXpyPWZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBDKGEpe2kuY3NzVGV4dD1hfWZ1bmN0aW9uIEQoYSxiKXtyZXR1cm4gQyhtLmpvaW4oYSsiOyIpKyhifHwiIikpfWZ1bmN0aW9uIEUoYSxiKXtyZXR1cm4gdHlwZW9mIGE9PT1ifWZ1bmN0aW9uIEYoYSxiKXtyZXR1cm4hIX4oIiIrYSkuaW5kZXhPZihiKX1mdW5jdGlvbiBHKGEsYil7Zm9yKHZhciBkIGluIGEpaWYoaVthW2RdXSE9PWMpcmV0dXJuIGI9PSJwZngiP2FbZF06ITA7cmV0dXJuITF9ZnVuY3Rpb24gSChhLGIsZCl7Zm9yKHZhciBlIGluIGEpe3ZhciBmPWJbYVtlXV07aWYoZiE9PWMpcmV0dXJuIGQ9PT0hMT9hW2VdOkUoZiwiZnVuY3Rpb24iKT9mLmJpbmQoZHx8Yik6Zn1yZXR1cm4hMX1mdW5jdGlvbiBJKGEsYixjKXt2YXIgZD1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyKDEpLGU9KGErIiAiK28uam9pbihkKyIgIikrZCkuc3BsaXQoIiAiKTtyZXR1cm4gRShiLCJzdHJpbmciKXx8RShiLCJ1bmRlZmluZWQiKT9HKGUsYik6KGU9KGErIiAiK3Auam9pbihkKyIgIikrZCkuc3BsaXQoIiAiKSxIKGUsYixjKSl9ZnVuY3Rpb24gSygpe2UuaW5wdXQ9ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT1jLmxlbmd0aDtkPGU7ZCsrKXRbY1tkXV09Y1tkXWluIGo7cmV0dXJuIHQubGlzdCYmKHQubGlzdD0hIWIuY3JlYXRlRWxlbWVudCgiZGF0YWxpc3QiKSYmISFhLkhUTUxEYXRhTGlzdEVsZW1lbnQpLHR9KCJhdXRvY29tcGxldGUgYXV0b2ZvY3VzIGxpc3QgcGxhY2Vob2xkZXIgbWF4IG1pbiBtdWx0aXBsZSBwYXR0ZXJuIHJlcXVpcmVkIHN0ZXAiLnNwbGl0KCIgIikpLGUuaW5wdXR0eXBlcz1mdW5jdGlvbihhKXtmb3IodmFyIGQ9MCxlLGcsaCxpPWEubGVuZ3RoO2Q8aTtkKyspai5zZXRBdHRyaWJ1dGUoInR5cGUiLGc9YVtkXSksZT1qLnR5cGUhPT0idGV4dCIsZSYmKGoudmFsdWU9ayxqLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO3Zpc2liaWxpdHk6aGlkZGVuOyIsL15yYW5nZSQvLnRlc3QoZykmJmouc3R5bGUuV2Via2l0QXBwZWFyYW5jZSE9PWM/KGYuYXBwZW5kQ2hpbGQoaiksaD1iLmRlZmF1bHRWaWV3LGU9aC5nZXRDb21wdXRlZFN0eWxlJiZoLmdldENvbXB1dGVkU3R5bGUoaixudWxsKS5XZWJraXRBcHBlYXJhbmNlIT09InRleHRmaWVsZCImJmoub2Zmc2V0SGVpZ2h0IT09MCxmLnJlbW92ZUNoaWxkKGopKTovXihzZWFyY2h8dGVsKSQvLnRlc3QoZyl8fCgvXih1cmx8ZW1haWwpJC8udGVzdChnKT9lPWouY2hlY2tWYWxpZGl0eSYmai5jaGVja1ZhbGlkaXR5KCk9PT0hMTovXmNvbG9yJC8udGVzdChnKT8oZi5hcHBlbmRDaGlsZChqKSxmLm9mZnNldFdpZHRoLGU9ai52YWx1ZSE9ayxmLnJlbW92ZUNoaWxkKGopKTplPWoudmFsdWUhPWspKSxzW2FbZF1dPSEhZTtyZXR1cm4gc30oInNlYXJjaCB0ZWwgdXJsIGVtYWlsIGRhdGV0aW1lIGRhdGUgbW9udGggd2VlayB0aW1lIGRhdGV0aW1lLWxvY2FsIG51bWJlciByYW5nZSBjb2xvciIuc3BsaXQoIiAiKSl9dmFyIGQ9IjIuNS4zIixlPXt9LGY9Yi5kb2N1bWVudEVsZW1lbnQsZz0ibW9kZXJuaXpyIixoPWIuY3JlYXRlRWxlbWVudChnKSxpPWguc3R5bGUsaj1iLmNyZWF0ZUVsZW1lbnQoImlucHV0Iiksaz0iOikiLGw9e30udG9TdHJpbmcsbT0iIC13ZWJraXQtIC1tb3otIC1vLSAtbXMtICIuc3BsaXQoIiAiKSxuPSJXZWJraXQgTW96IE8gbXMiLG89bi5zcGxpdCgiICIpLHA9bi50b0xvd2VyQ2FzZSgpLnNwbGl0KCIgIikscT17c3ZnOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyJ9LHI9e30scz17fSx0PXt9LHU9W10sdj11LnNsaWNlLHcseD1mdW5jdGlvbihhLGMsZCxlKXt2YXIgaCxpLGosaz1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9Yi5ib2R5LG09bD9sOmIuY3JlYXRlRWxlbWVudCgiYm9keSIpO2lmKHBhcnNlSW50KGQsMTApKXdoaWxlKGQtLSlqPWIuY3JlYXRlRWxlbWVudCgiZGl2Iiksai5pZD1lP2VbZF06ZysoZCsxKSxrLmFwcGVuZENoaWxkKGopO3JldHVybiBoPVsiJiMxNzM7IiwiPHN0eWxlPiIsYSwiPC9zdHlsZT4iXS5qb2luKCIiKSxrLmlkPWcsKGw/azptKS5pbm5lckhUTUwrPWgsbS5hcHBlbmRDaGlsZChrKSxsfHwobS5zdHlsZS5iYWNrZ3JvdW5kPSIiLGYuYXBwZW5kQ2hpbGQobSkpLGk9YyhrLGEpLGw/ay5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGspOm0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtKSwhIWl9LHk9ZnVuY3Rpb24oYil7dmFyIGM9YS5tYXRjaE1lZGlhfHxhLm1zTWF0Y2hNZWRpYTtpZihjKXJldHVybiBjKGIpLm1hdGNoZXM7dmFyIGQ7cmV0dXJuIHgoIkBtZWRpYSAiK2IrIiB7ICMiK2crIiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSB9IixmdW5jdGlvbihiKXtkPShhLmdldENvbXB1dGVkU3R5bGU/Z2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlKVsicG9zaXRpb24iXT09ImFic29sdXRlIn0pLGR9LHo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGQsZSl7ZT1lfHxiLmNyZWF0ZUVsZW1lbnQoYVtkXXx8ImRpdiIpLGQ9Im9uIitkO3ZhciBmPWQgaW4gZTtyZXR1cm4gZnx8KGUuc2V0QXR0cmlidXRlfHwoZT1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxlLnNldEF0dHJpYnV0ZSYmZS5yZW1vdmVBdHRyaWJ1dGUmJihlLnNldEF0dHJpYnV0ZShkLCIiKSxmPUUoZVtkXSwiZnVuY3Rpb24iKSxFKGVbZF0sInVuZGVmaW5lZCIpfHwoZVtkXT1jKSxlLnJlbW92ZUF0dHJpYnV0ZShkKSkpLGU9bnVsbCxmfXZhciBhPXtzZWxlY3Q6ImlucHV0IixjaGFuZ2U6ImlucHV0IixzdWJtaXQ6ImZvcm0iLHJlc2V0OiJmb3JtIixlcnJvcjoiaW1nIixsb2FkOiJpbWciLGFib3J0OiJpbWcifTtyZXR1cm4gZH0oKSxBPXt9Lmhhc093blByb3BlcnR5LEI7IUUoQSwidW5kZWZpbmVkIikmJiFFKEEuY2FsbCwidW5kZWZpbmVkIik/Qj1mdW5jdGlvbihhLGIpe3JldHVybiBBLmNhbGwoYSxiKX06Qj1mdW5jdGlvbihhLGIpe3JldHVybiBiIGluIGEmJkUoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGVbYl0sInVuZGVmaW5lZCIpfSxGdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8KEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7aWYodHlwZW9mIGMhPSJmdW5jdGlvbiIpdGhyb3cgbmV3IFR5cGVFcnJvcjt2YXIgZD12LmNhbGwoYXJndW1lbnRzLDEpLGU9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2YgZSl7dmFyIGE9ZnVuY3Rpb24oKXt9O2EucHJvdG90eXBlPWMucHJvdG90eXBlO3ZhciBmPW5ldyBhLGc9Yy5hcHBseShmLGQuY29uY2F0KHYuY2FsbChhcmd1bWVudHMpKSk7cmV0dXJuIE9iamVjdChnKT09PWc/ZzpmfXJldHVybiBjLmFwcGx5KGIsZC5jb25jYXQodi5jYWxsKGFyZ3VtZW50cykpKX07cmV0dXJuIGV9KTt2YXIgSj1mdW5jdGlvbihjLGQpe3ZhciBmPWMuam9pbigiIiksZz1kLmxlbmd0aDt4KGYsZnVuY3Rpb24oYyxkKXt2YXIgZj1iLnN0eWxlU2hlZXRzW2Iuc3R5bGVTaGVldHMubGVuZ3RoLTFdLGg9Zj9mLmNzc1J1bGVzJiZmLmNzc1J1bGVzWzBdP2YuY3NzUnVsZXNbMF0uY3NzVGV4dDpmLmNzc1RleHR8fCIiOiIiLGk9Yy5jaGlsZE5vZGVzLGo9e307d2hpbGUoZy0tKWpbaVtnXS5pZF09aVtnXTtlLnRvdWNoPSJvbnRvdWNoc3RhcnQiaW4gYXx8YS5Eb2N1bWVudFRvdWNoJiZiIGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaHx8KGoudG91Y2gmJmoudG91Y2gub2Zmc2V0VG9wKT09PTksZS5jc3N0cmFuc2Zvcm1zM2Q9KGouY3NzdHJhbnNmb3JtczNkJiZqLmNzc3RyYW5zZm9ybXMzZC5vZmZzZXRMZWZ0KT09PTkmJmouY3NzdHJhbnNmb3JtczNkLm9mZnNldEhlaWdodD09PTMsZS5nZW5lcmF0ZWRjb250ZW50PShqLmdlbmVyYXRlZGNvbnRlbnQmJmouZ2VuZXJhdGVkY29udGVudC5vZmZzZXRIZWlnaHQpPj0xLGUuZm9udGZhY2U9L3NyYy9pLnRlc3QoaCkmJmguaW5kZXhPZihkLnNwbGl0KCIgIilbMF0pPT09MH0sZyxkKX0oWydAZm9udC1mYWNlIHtmb250LWZhbWlseToiZm9udCI7c3JjOnVybCgiaHR0cHM6Ly8iKX0nLFsiQG1lZGlhICgiLG0uam9pbigidG91Y2gtZW5hYmxlZCksKCIpLGcsIikiLCJ7I3RvdWNoe3RvcDo5cHg7cG9zaXRpb246YWJzb2x1dGV9fSJdLmpvaW4oIiIpLFsiQG1lZGlhICgiLG0uam9pbigidHJhbnNmb3JtLTNkKSwoIiksZywiKSIsInsjY3NzdHJhbnNmb3JtczNke2xlZnQ6OXB4O3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDozcHg7fX0iXS5qb2luKCIiKSxbJyNnZW5lcmF0ZWRjb250ZW50OmFmdGVye2NvbnRlbnQ6IicsaywnIjt2aXNpYmlsaXR5OmhpZGRlbn0nXS5qb2luKCIiKV0sWyJmb250ZmFjZSIsInRvdWNoIiwiY3NzdHJhbnNmb3JtczNkIiwiZ2VuZXJhdGVkY29udGVudCJdKTtyLmZsZXhib3g9ZnVuY3Rpb24oKXtyZXR1cm4gSSgiZmxleE9yZGVyIil9LHJbImZsZXhib3gtbGVnYWN5Il09ZnVuY3Rpb24oKXtyZXR1cm4gSSgiYm94RGlyZWN0aW9uIil9LHIuY2FudmFzPWZ1bmN0aW9uKCl7dmFyIGE9Yi5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4hIWEuZ2V0Q29udGV4dCYmISFhLmdldENvbnRleHQoIjJkIil9LHIuY2FudmFzdGV4dD1mdW5jdGlvbigpe3JldHVybiEhZS5jYW52YXMmJiEhRShiLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIikuZmlsbFRleHQsImZ1bmN0aW9uIil9LHIud2ViZ2w9ZnVuY3Rpb24oKXt0cnl7dmFyIGQ9Yi5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxlO2U9ISghYS5XZWJHTFJlbmRlcmluZ0NvbnRleHR8fCFkLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIpJiYhZC5nZXRDb250ZXh0KCJ3ZWJnbCIpKSxkPWN9Y2F0Y2goZil7ZT0hMX1yZXR1cm4gZX0sci50b3VjaD1mdW5jdGlvbigpe3JldHVybiBlLnRvdWNofSxyLmdlb2xvY2F0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuISFuYXZpZ2F0b3IuZ2VvbG9jYXRpb259LHIucG9zdG1lc3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4hIWEucG9zdE1lc3NhZ2V9LHIud2Vic3FsZGF0YWJhc2U9ZnVuY3Rpb24oKXtyZXR1cm4hIWEub3BlbkRhdGFiYXNlfSxyLmluZGV4ZWREQj1mdW5jdGlvbigpe3JldHVybiEhSSgiaW5kZXhlZERCIixhKX0sci5oYXNoY2hhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHooImhhc2hjaGFuZ2UiLGEpJiYoYi5kb2N1bWVudE1vZGU9PT1jfHxiLmRvY3VtZW50TW9kZT43KX0sci5oaXN0b3J5PWZ1bmN0aW9uKCl7cmV0dXJuISFhLmhpc3RvcnkmJiEhaGlzdG9yeS5wdXNoU3RhdGV9LHIuZHJhZ2FuZGRyb3A9ZnVuY3Rpb24oKXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiJkcmFnZ2FibGUiaW4gYXx8Im9uZHJhZ3N0YXJ0ImluIGEmJiJvbmRyb3AiaW4gYX0sci53ZWJzb2NrZXRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPS0xLGM9by5sZW5ndGg7KytiPGM7KWlmKGFbb1tiXSsiV2ViU29ja2V0Il0pcmV0dXJuITA7cmV0dXJuIldlYlNvY2tldCJpbiBhfSxyLnJnYmE9ZnVuY3Rpb24oKXtyZXR1cm4gQygiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1MCwyNTUsMTUwLC41KSIpLEYoaS5iYWNrZ3JvdW5kQ29sb3IsInJnYmEiKX0sci5oc2xhPWZ1bmN0aW9uKCl7cmV0dXJuIEMoImJhY2tncm91bmQtY29sb3I6aHNsYSgxMjAsNDAlLDEwMCUsLjUpIiksRihpLmJhY2tncm91bmRDb2xvciwicmdiYSIpfHxGKGkuYmFja2dyb3VuZENvbG9yLCJoc2xhIil9LHIubXVsdGlwbGViZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gQygiYmFja2dyb3VuZDp1cmwoaHR0cHM6Ly8pLHVybChodHRwczovLykscmVkIHVybChodHRwczovLykiKSwvKHVybFxzKlwoLio/KXszfS8udGVzdChpLmJhY2tncm91bmQpfSxyLmJhY2tncm91bmRzaXplPWZ1bmN0aW9uKCl7cmV0dXJuIEkoImJhY2tncm91bmRTaXplIil9LHIuYm9yZGVyaW1hZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gSSgiYm9yZGVySW1hZ2UiKX0sci5ib3JkZXJyYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gSSgiYm9yZGVyUmFkaXVzIil9LHIuYm94c2hhZG93PWZ1bmN0aW9uKCl7cmV0dXJuIEkoImJveFNoYWRvdyIpfSxyLnRleHRzaGFkb3c9ZnVuY3Rpb24oKXtyZXR1cm4gYi5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZS50ZXh0U2hhZG93PT09IiJ9LHIub3BhY2l0eT1mdW5jdGlvbigpe3JldHVybiBEKCJvcGFjaXR5Oi41NSIpLC9eMC41NSQvLnRlc3QoaS5vcGFjaXR5KX0sci5jc3NhbmltYXRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIEkoImFuaW1hdGlvbk5hbWUiKX0sci5jc3Njb2x1bW5zPWZ1bmN0aW9uKCl7cmV0dXJuIEkoImNvbHVtbkNvdW50Iil9LHIuY3NzZ3JhZGllbnRzPWZ1bmN0aW9uKCl7dmFyIGE9ImJhY2tncm91bmQtaW1hZ2U6IixiPSJncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgYm90dG9tLGZyb20oIzlmOSksdG8od2hpdGUpKTsiLGM9ImxpbmVhci1ncmFkaWVudChsZWZ0IHRvcCwjOWY5LCB3aGl0ZSk7IjtyZXR1cm4gQygoYSsiLXdlYmtpdC0gIi5zcGxpdCgiICIpLmpvaW4oYithKSttLmpvaW4oYythKSkuc2xpY2UoMCwtYS5sZW5ndGgpKSxGKGkuYmFja2dyb3VuZEltYWdlLCJncmFkaWVudCIpfSxyLmNzc3JlZmxlY3Rpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIEkoImJveFJlZmxlY3QiKX0sci5jc3N0cmFuc2Zvcm1zPWZ1bmN0aW9uKCl7cmV0dXJuISFJKCJ0cmFuc2Zvcm0iKX0sci5jc3N0cmFuc2Zvcm1zM2Q9ZnVuY3Rpb24oKXt2YXIgYT0hIUkoInBlcnNwZWN0aXZlIik7cmV0dXJuIGEmJiJ3ZWJraXRQZXJzcGVjdGl2ZSJpbiBmLnN0eWxlJiYoYT1lLmNzc3RyYW5zZm9ybXMzZCksYX0sci5jc3N0cmFuc2l0aW9ucz1mdW5jdGlvbigpe3JldHVybiBJKCJ0cmFuc2l0aW9uIil9LHIuZm9udGZhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gZS5mb250ZmFjZX0sci5nZW5lcmF0ZWRjb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VuZXJhdGVkY29udGVudH0sci52aWRlbz1mdW5jdGlvbigpe3ZhciBhPWIuY3JlYXRlRWxlbWVudCgidmlkZW8iKSxjPSExO3RyeXtpZihjPSEhYS5jYW5QbGF5VHlwZSljPW5ldyBCb29sZWFuKGMpLGMub2dnPWEuY2FuUGxheVR5cGUoJ3ZpZGVvL29nZzsgY29kZWNzPSJ0aGVvcmEiJykucmVwbGFjZSgvXm5vJC8sIiIpLGMuaDI2ND1hLmNhblBsYXlUeXBlKCd2aWRlby9tcDQ7IGNvZGVjcz0iYXZjMS40MkUwMUUiJykucmVwbGFjZSgvXm5vJC8sIiIpLGMud2VibT1hLmNhblBsYXlUeXBlKCd2aWRlby93ZWJtOyBjb2RlY3M9InZwOCwgdm9yYmlzIicpLnJlcGxhY2UoL15ubyQvLCIiKX1jYXRjaChkKXt9cmV0dXJuIGN9LHIuYXVkaW89ZnVuY3Rpb24oKXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImF1ZGlvIiksYz0hMTt0cnl7aWYoYz0hIWEuY2FuUGxheVR5cGUpYz1uZXcgQm9vbGVhbihjKSxjLm9nZz1hLmNhblBsYXlUeXBlKCdhdWRpby9vZ2c7IGNvZGVjcz0idm9yYmlzIicpLnJlcGxhY2UoL15ubyQvLCIiKSxjLm1wMz1hLmNhblBsYXlUeXBlKCJhdWRpby9tcGVnOyIpLnJlcGxhY2UoL15ubyQvLCIiKSxjLndhdj1hLmNhblBsYXlUeXBlKCdhdWRpby93YXY7IGNvZGVjcz0iMSInKS5yZXBsYWNlKC9ebm8kLywiIiksYy5tNGE9KGEuY2FuUGxheVR5cGUoImF1ZGlvL3gtbTRhOyIpfHxhLmNhblBsYXlUeXBlKCJhdWRpby9hYWM7IikpLnJlcGxhY2UoL15ubyQvLCIiKX1jYXRjaChkKXt9cmV0dXJuIGN9LHIubG9jYWxzdG9yYWdlPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShnLGcpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGcpLCEwfWNhdGNoKGEpe3JldHVybiExfX0sci5zZXNzaW9uc3RvcmFnZT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShnLGcpLHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oZyksITB9Y2F0Y2goYSl7cmV0dXJuITF9fSxyLndlYndvcmtlcnM9ZnVuY3Rpb24oKXtyZXR1cm4hIWEuV29ya2VyfSxyLmFwcGxpY2F0aW9uY2FjaGU9ZnVuY3Rpb24oKXtyZXR1cm4hIWEuYXBwbGljYXRpb25DYWNoZX0sci5zdmc9ZnVuY3Rpb24oKXtyZXR1cm4hIWIuY3JlYXRlRWxlbWVudE5TJiYhIWIuY3JlYXRlRWxlbWVudE5TKHEuc3ZnLCJzdmciKS5jcmVhdGVTVkdSZWN0fSxyLmlubGluZXN2Zz1mdW5jdGlvbigpe3ZhciBhPWIuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIGEuaW5uZXJIVE1MPSI8c3ZnLz4iLChhLmZpcnN0Q2hpbGQmJmEuZmlyc3RDaGlsZC5uYW1lc3BhY2VVUkkpPT1xLnN2Z30sci5zbWlsPWZ1bmN0aW9uKCl7cmV0dXJuISFiLmNyZWF0ZUVsZW1lbnROUyYmL1NWR0FuaW1hdGUvLnRlc3QobC5jYWxsKGIuY3JlYXRlRWxlbWVudE5TKHEuc3ZnLCJhbmltYXRlIikpKX0sci5zdmdjbGlwcGF0aHM9ZnVuY3Rpb24oKXtyZXR1cm4hIWIuY3JlYXRlRWxlbWVudE5TJiYvU1ZHQ2xpcFBhdGgvLnRlc3QobC5jYWxsKGIuY3JlYXRlRWxlbWVudE5TKHEuc3ZnLCJjbGlwUGF0aCIpKSl9O2Zvcih2YXIgTCBpbiByKUIocixMKSYmKHc9TC50b0xvd2VyQ2FzZSgpLGVbd109cltMXSgpLHUucHVzaCgoZVt3XT8iIjoibm8tIikrdykpO3JldHVybiBlLmlucHV0fHxLKCksQygiIiksaD1qPW51bGwsZS5fdmVyc2lvbj1kLGUuX3ByZWZpeGVzPW0sZS5fZG9tUHJlZml4ZXM9cCxlLl9jc3NvbVByZWZpeGVzPW8sZS5tcT15LGUuaGFzRXZlbnQ9eixlLnRlc3RQcm9wPWZ1bmN0aW9uKGEpe3JldHVybiBHKFthXSl9LGUudGVzdEFsbFByb3BzPUksZS50ZXN0U3R5bGVzPXgsZS5wcmVmaXhlZD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI/SShhLGIsYyk6SShhLCJwZngiKX0sZX0odGhpcyx0aGlzLmRvY3VtZW50KSxmdW5jdGlvbihhLGIsYyl7ZnVuY3Rpb24gZChhKXtyZXR1cm4gby5jYWxsKGEpPT0iW29iamVjdCBGdW5jdGlvbl0ifWZ1bmN0aW9uIGUoYSl7cmV0dXJuIHR5cGVvZiBhPT0ic3RyaW5nIn1mdW5jdGlvbiBmKCl7fWZ1bmN0aW9uIGcoYSl7cmV0dXJuIWF8fGE9PSJsb2FkZWQifHxhPT0iY29tcGxldGUifHxhPT0idW5pbml0aWFsaXplZCJ9ZnVuY3Rpb24gaCgpe3ZhciBhPXAuc2hpZnQoKTtxPTEsYT9hLnQ/bShmdW5jdGlvbigpeyhhLnQ9PSJjIj9CLmluamVjdENzczpCLmluamVjdEpzKShhLnMsMCxhLmEsYS54LGEuZSwxKX0sMCk6KGEoKSxoKCkpOnE9MH1mdW5jdGlvbiBpKGEsYyxkLGUsZixpLGope2Z1bmN0aW9uIGsoYil7aWYoIW8mJmcobC5yZWFkeVN0YXRlKSYmKHUucj1vPTEsIXEmJmgoKSxsLm9ubG9hZD1sLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIpKXthIT0iaW1nIiYmbShmdW5jdGlvbigpe3QucmVtb3ZlQ2hpbGQobCl9LDUwKTtmb3IodmFyIGQgaW4geVtjXSl5W2NdLmhhc093blByb3BlcnR5KGQpJiZ5W2NdW2RdLm9ubG9hZCgpfX12YXIgaj1qfHxCLmVycm9yVGltZW91dCxsPXt9LG89MCxyPTAsdT17dDpkLHM6YyxlOmYsYTppLHg6an07eVtjXT09PTEmJihyPTEseVtjXT1bXSxsPWIuY3JlYXRlRWxlbWVudChhKSksYT09Im9iamVjdCI/bC5kYXRhPWM6KGwuc3JjPWMsbC50eXBlPWEpLGwud2lkdGg9bC5oZWlnaHQ9IjAiLGwub25lcnJvcj1sLm9ubG9hZD1sLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2suY2FsbCh0aGlzLHIpfSxwLnNwbGljZShlLDAsdSksYSE9ImltZyImJihyfHx5W2NdPT09Mj8odC5pbnNlcnRCZWZvcmUobCxzP251bGw6biksbShrLGopKTp5W2NdLnB1c2gobCkpfWZ1bmN0aW9uIGooYSxiLGMsZCxmKXtyZXR1cm4gcT0wLGI9Ynx8ImoiLGUoYSk/aShiPT0iYyI/djp1LGEsYix0aGlzLmkrKyxjLGQsZik6KHAuc3BsaWNlKHRoaXMuaSsrLDAsYSkscC5sZW5ndGg9PTEmJmgoKSksdGhpc31mdW5jdGlvbiBrKCl7dmFyIGE9QjtyZXR1cm4gYS5sb2FkZXI9e2xvYWQ6aixpOjB9LGF9dmFyIGw9Yi5kb2N1bWVudEVsZW1lbnQsbT1hLnNldFRpbWVvdXQsbj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXSxvPXt9LnRvU3RyaW5nLHA9W10scT0wLHI9Ik1vekFwcGVhcmFuY2UiaW4gbC5zdHlsZSxzPXImJiEhYi5jcmVhdGVSYW5nZSgpLmNvbXBhcmVOb2RlLHQ9cz9sOm4ucGFyZW50Tm9kZSxsPWEub3BlcmEmJm8uY2FsbChhLm9wZXJhKT09IltvYmplY3QgT3BlcmFdIixsPSEhYi5hdHRhY2hFdmVudCYmIWwsdT1yPyJvYmplY3QiOmw/InNjcmlwdCI6ImltZyIsdj1sPyJzY3JpcHQiOnUsdz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4gby5jYWxsKGEpPT0iW29iamVjdCBBcnJheV0ifSx4PVtdLHk9e30sej17dGltZW91dDpmdW5jdGlvbihhLGIpe3JldHVybiBiLmxlbmd0aCYmKGEudGltZW91dD1iWzBdKSxhfX0sQSxCO0I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXt2YXIgYT1hLnNwbGl0KCIhIiksYj14Lmxlbmd0aCxjPWEucG9wKCksZD1hLmxlbmd0aCxjPXt1cmw6YyxvcmlnVXJsOmMscHJlZml4ZXM6YX0sZSxmLGc7Zm9yKGY9MDtmPGQ7ZisrKWc9YVtmXS5zcGxpdCgiPSIpLChlPXpbZy5zaGlmdCgpXSkmJihjPWUoYyxnKSk7Zm9yKGY9MDtmPGI7ZisrKWM9eFtmXShjKTtyZXR1cm4gY31mdW5jdGlvbiBnKGEsZSxmLGcsaSl7dmFyIGo9YihhKSxsPWouYXV0b0NhbGxiYWNrO2oudXJsLnNwbGl0KCIuIikucG9wKCkuc3BsaXQoIj8iKS5zaGlmdCgpLGouYnlwYXNzfHwoZSYmKGU9ZChlKT9lOmVbYV18fGVbZ118fGVbYS5zcGxpdCgiLyIpLnBvcCgpLnNwbGl0KCI/IilbMF1dfHxoKSxqLmluc3RlYWQ/ai5pbnN0ZWFkKGEsZSxmLGcsaSk6KHlbai51cmxdP2oubm9leGVjPSEwOnlbai51cmxdPTEsZi5sb2FkKGoudXJsLGouZm9yY2VDU1N8fCFqLmZvcmNlSlMmJiJjc3MiPT1qLnVybC5zcGxpdCgiLiIpLnBvcCgpLnNwbGl0KCI/Iikuc2hpZnQoKT8iYyI6YyxqLm5vZXhlYyxqLmF0dHJzLGoudGltZW91dCksKGQoZSl8fGQobCkpJiZmLmxvYWQoZnVuY3Rpb24oKXtrKCksZSYmZShqLm9yaWdVcmwsaSxnKSxsJiZsKGoub3JpZ1VybCxpLGcpLHlbai51cmxdPTJ9KSkpfWZ1bmN0aW9uIGkoYSxiKXtmdW5jdGlvbiBjKGEsYyl7aWYoYSl7aWYoZShhKSljfHwoaj1mdW5jdGlvbigpe3ZhciBhPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtrLmFwcGx5KHRoaXMsYSksbCgpfSksZyhhLGosYiwwLGgpO2Vsc2UgaWYoT2JqZWN0KGEpPT09YSlmb3IobiBpbiBtPWZ1bmN0aW9uKCl7dmFyIGI9MCxjO2ZvcihjIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShjKSYmYisrO3JldHVybiBifSgpLGEpYS5oYXNPd25Qcm9wZXJ0eShuKSYmKCFjJiYhLS1tJiYoZChqKT9qPWZ1bmN0aW9uKCl7dmFyIGE9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2suYXBwbHkodGhpcyxhKSxsKCl9Ompbbl09ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpO2EmJmEuYXBwbHkodGhpcyxiKSxsKCl9fShrW25dKSksZyhhW25dLGosYixuLGgpKX1lbHNlIWMmJmwoKX12YXIgaD0hIWEudGVzdCxpPWEubG9hZHx8YS5ib3RoLGo9YS5jYWxsYmFja3x8ZixrPWosbD1hLmNvbXBsZXRlfHxmLG0sbjtjKGg/YS55ZXA6YS5ub3BlLCEhaSksaSYmYyhpKX12YXIgaixsLG09dGhpcy55ZXBub3BlLmxvYWRlcjtpZihlKGEpKWcoYSwwLG0sMCk7ZWxzZSBpZih3KGEpKWZvcihqPTA7ajxhLmxlbmd0aDtqKyspbD1hW2pdLGUobCk/ZyhsLDAsbSwwKTp3KGwpP0IobCk6T2JqZWN0KGwpPT09bCYmaShsLG0pO2Vsc2UgT2JqZWN0KGEpPT09YSYmaShhLG0pfSxCLmFkZFByZWZpeD1mdW5jdGlvbihhLGIpe3pbYV09Yn0sQi5hZGRGaWx0ZXI9ZnVuY3Rpb24oYSl7eC5wdXNoKGEpfSxCLmVycm9yVGltZW91dD0xZTQsYi5yZWFkeVN0YXRlPT1udWxsJiZiLmFkZEV2ZW50TGlzdGVuZXImJihiLnJlYWR5U3RhdGU9ImxvYWRpbmciLGIuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQT1mdW5jdGlvbigpe2IucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQSwwKSxiLnJlYWR5U3RhdGU9ImNvbXBsZXRlIn0sMCkpLGEueWVwbm9wZT1rKCksYS55ZXBub3BlLmV4ZWN1dGVTdGFjaz1oLGEueWVwbm9wZS5pbmplY3RKcz1mdW5jdGlvbihhLGMsZCxlLGksail7dmFyIGs9Yi5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxsLG8sZT1lfHxCLmVycm9yVGltZW91dDtrLnNyYz1hO2ZvcihvIGluIGQpay5zZXRBdHRyaWJ1dGUobyxkW29dKTtjPWo/aDpjfHxmLGsub25yZWFkeXN0YXRlY2hhbmdlPWsub25sb2FkPWZ1bmN0aW9uKCl7IWwmJmcoay5yZWFkeVN0YXRlKSYmKGw9MSxjKCksay5vbmxvYWQ9ay5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCl9LG0oZnVuY3Rpb24oKXtsfHwobD0xLGMoMSkpfSxlKSxpP2sub25sb2FkKCk6bi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShrLG4pfSxhLnllcG5vcGUuaW5qZWN0Q3NzPWZ1bmN0aW9uKGEsYyxkLGUsZyxpKXt2YXIgZT1iLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxqLGM9aT9oOmN8fGY7ZS5ocmVmPWEsZS5yZWw9InN0eWxlc2hlZXQiLGUudHlwZT0idGV4dC9jc3MiO2ZvcihqIGluIGQpZS5zZXRBdHRyaWJ1dGUoaixkW2pdKTtnfHwobi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlLG4pLG0oYywwKSl9fSh0aGlzLGRvY3VtZW50KSxNb2Rlcm5penIubG9hZD1mdW5jdGlvbigpe3llcG5vcGUuYXBwbHkod2luZG93LFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX07"></script>
<script src="data:application/x-javascript;base64,dmFyIHE9bnVsbDt3aW5kb3cuUFJfU0hPVUxEX1VTRV9DT05USU5VQVRJT049ITA7CihmdW5jdGlvbigpe2Z1bmN0aW9uIEwoYSl7ZnVuY3Rpb24gbShhKXt2YXIgZj1hLmNoYXJDb2RlQXQoMCk7aWYoZiE9PTkyKXJldHVybiBmO3ZhciBiPWEuY2hhckF0KDEpO3JldHVybihmPXJbYl0pP2Y6IjAiPD1iJiZiPD0iNyI/cGFyc2VJbnQoYS5zdWJzdHJpbmcoMSksOCk6Yj09PSJ1Inx8Yj09PSJ4Ij9wYXJzZUludChhLnN1YnN0cmluZygyKSwxNik6YS5jaGFyQ29kZUF0KDEpfWZ1bmN0aW9uIGUoYSl7aWYoYTwzMilyZXR1cm4oYTwxNj8iXFx4MCI6IlxceCIpK2EudG9TdHJpbmcoMTYpO2E9U3RyaW5nLmZyb21DaGFyQ29kZShhKTtpZihhPT09IlxcInx8YT09PSItInx8YT09PSJbInx8YT09PSJdIilhPSJcXCIrYTtyZXR1cm4gYX1mdW5jdGlvbiBoKGEpe2Zvcih2YXIgZj1hLnN1YnN0cmluZygxLGEubGVuZ3RoLTEpLm1hdGNoKC9cXHVbXGRBLUZhLWZdezR9fFxceFtcZEEtRmEtZl17Mn18XFxbMC0zXVswLTddezAsMn18XFxbMC03XXsxLDJ9fFxcW1xTXHNdfFteXFxdL2cpLGE9CltdLGI9W10sbz1mWzBdPT09Il4iLGM9bz8xOjAsaT1mLmxlbmd0aDtjPGk7KytjKXt2YXIgaj1mW2NdO2lmKC9cXFtiZHN3XS9pLnRlc3QoaikpYS5wdXNoKGopO2Vsc2V7dmFyIGo9bShqKSxkO2MrMjxpJiYiLSI9PT1mW2MrMV0/KGQ9bShmW2MrMl0pLGMrPTIpOmQ9ajtiLnB1c2goW2osZF0pO2Q8NjV8fGo+MTIyfHwoZDw2NXx8aj45MHx8Yi5wdXNoKFtNYXRoLm1heCg2NSxqKXwzMixNYXRoLm1pbihkLDkwKXwzMl0pLGQ8OTd8fGo+MTIyfHxiLnB1c2goW01hdGgubWF4KDk3LGopJi0zMyxNYXRoLm1pbihkLDEyMikmLTMzXSkpfX1iLnNvcnQoZnVuY3Rpb24oYSxmKXtyZXR1cm4gYVswXS1mWzBdfHxmWzFdLWFbMV19KTtmPVtdO2o9W05hTixOYU5dO2ZvcihjPTA7YzxiLmxlbmd0aDsrK2MpaT1iW2NdLGlbMF08PWpbMV0rMT9qWzFdPU1hdGgubWF4KGpbMV0saVsxXSk6Zi5wdXNoKGo9aSk7Yj1bIlsiXTtvJiZiLnB1c2goIl4iKTtiLnB1c2guYXBwbHkoYixhKTtmb3IoYz0wO2M8CmYubGVuZ3RoOysrYylpPWZbY10sYi5wdXNoKGUoaVswXSkpLGlbMV0+aVswXSYmKGlbMV0rMT5pWzBdJiZiLnB1c2goIi0iKSxiLnB1c2goZShpWzFdKSkpO2IucHVzaCgiXSIpO3JldHVybiBiLmpvaW4oIiIpfWZ1bmN0aW9uIHkoYSl7Zm9yKHZhciBmPWEuc291cmNlLm1hdGNoKC9cWyg/OlteXFxcXV18XFxbXFNcc10pKl18XFx1W1xkQS1GYS1mXXs0fXxcXHhbXGRBLUZhLWZdezJ9fFxcXGQrfFxcW15cZHV4XXxcKFw/WyE6PV18WygpXl18W14oKVtcXF5dKy9nKSxiPWYubGVuZ3RoLGQ9W10sYz0wLGk9MDtjPGI7KytjKXt2YXIgaj1mW2NdO2o9PT0iKCI/KytpOiJcXCI9PT1qLmNoYXJBdCgwKSYmKGo9K2ouc3Vic3RyaW5nKDEpKSYmajw9aSYmKGRbal09LTEpfWZvcihjPTE7YzxkLmxlbmd0aDsrK2MpLTE9PT1kW2NdJiYoZFtjXT0rK3QpO2ZvcihpPWM9MDtjPGI7KytjKWo9ZltjXSxqPT09IigiPygrK2ksZFtpXT09PXZvaWQgMCYmKGZbY109Iig/OiIpKToiXFwiPT09ai5jaGFyQXQoMCkmJgooaj0rai5zdWJzdHJpbmcoMSkpJiZqPD1pJiYoZltjXT0iXFwiK2RbaV0pO2ZvcihpPWM9MDtjPGI7KytjKSJeIj09PWZbY10mJiJeIiE9PWZbYysxXSYmKGZbY109IiIpO2lmKGEuaWdub3JlQ2FzZSYmcylmb3IoYz0wO2M8YjsrK2Mpaj1mW2NdLGE9ai5jaGFyQXQoMCksai5sZW5ndGg+PTImJmE9PT0iWyI/ZltjXT1oKGopOmEhPT0iXFwiJiYoZltjXT1qLnJlcGxhY2UoL1tBLVphLXpdL2csZnVuY3Rpb24oYSl7YT1hLmNoYXJDb2RlQXQoMCk7cmV0dXJuIlsiK1N0cmluZy5mcm9tQ2hhckNvZGUoYSYtMzMsYXwzMikrIl0ifSkpO3JldHVybiBmLmpvaW4oIiIpfWZvcih2YXIgdD0wLHM9ITEsbD0hMSxwPTAsZD1hLmxlbmd0aDtwPGQ7KytwKXt2YXIgZz1hW3BdO2lmKGcuaWdub3JlQ2FzZSlsPSEwO2Vsc2UgaWYoL1thLXpdL2kudGVzdChnLnNvdXJjZS5yZXBsYWNlKC9cXHVbXGRhLWZdezR9fFxceFtcZGEtZl17Mn18XFxbXlVYdXhdL2dpLCIiKSkpe3M9ITA7bD0hMTticmVha319Zm9yKHZhciByPQp7Yjo4LHQ6OSxuOjEwLHY6MTEsZjoxMixyOjEzfSxuPVtdLHA9MCxkPWEubGVuZ3RoO3A8ZDsrK3Ape2c9YVtwXTtpZihnLmdsb2JhbHx8Zy5tdWx0aWxpbmUpdGhyb3cgRXJyb3IoIiIrZyk7bi5wdXNoKCIoPzoiK3koZykrIikiKX1yZXR1cm4gUmVnRXhwKG4uam9pbigifCIpLGw/ImdpIjoiZyIpfWZ1bmN0aW9uIE0oYSl7ZnVuY3Rpb24gbShhKXtzd2l0Y2goYS5ub2RlVHlwZSl7Y2FzZSAxOmlmKGUudGVzdChhLmNsYXNzTmFtZSkpYnJlYWs7Zm9yKHZhciBnPWEuZmlyc3RDaGlsZDtnO2c9Zy5uZXh0U2libGluZyltKGcpO2c9YS5ub2RlTmFtZTtpZigiQlIiPT09Z3x8IkxJIj09PWcpaFtzXT0iXG4iLHRbczw8MV09eSsrLHRbcysrPDwxfDFdPWE7YnJlYWs7Y2FzZSAzOmNhc2UgNDpnPWEubm9kZVZhbHVlLGcubGVuZ3RoJiYoZz1wP2cucmVwbGFjZSgvXHJcbj8vZywiXG4iKTpnLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLGhbc109Zyx0W3M8PDFdPXkseSs9Zy5sZW5ndGgsCnRbcysrPDwxfDFdPWEpfX12YXIgZT0vKD86Xnxccylub2NvZGUoPzpcc3wkKS8saD1bXSx5PTAsdD1bXSxzPTAsbDthLmN1cnJlbnRTdHlsZT9sPWEuY3VycmVudFN0eWxlLndoaXRlU3BhY2U6d2luZG93LmdldENvbXB1dGVkU3R5bGUmJihsPWRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxxKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aGl0ZS1zcGFjZSIpKTt2YXIgcD1sJiYicHJlIj09PWwuc3Vic3RyaW5nKDAsMyk7bShhKTtyZXR1cm57YTpoLmpvaW4oIiIpLnJlcGxhY2UoL1xuJC8sIiIpLGM6dH19ZnVuY3Rpb24gQihhLG0sZSxoKXttJiYoYT17YTptLGQ6YX0sZShhKSxoLnB1c2guYXBwbHkoaCxhLmUpKX1mdW5jdGlvbiB4KGEsbSl7ZnVuY3Rpb24gZShhKXtmb3IodmFyIGw9YS5kLHA9W2wsInBsbiJdLGQ9MCxnPWEuYS5tYXRjaCh5KXx8W10scj17fSxuPTAsej1nLmxlbmd0aDtuPHo7KytuKXt2YXIgZj1nW25dLGI9cltmXSxvPXZvaWQgMCxjO2lmKHR5cGVvZiBiPT09CiJzdHJpbmciKWM9ITE7ZWxzZXt2YXIgaT1oW2YuY2hhckF0KDApXTtpZihpKW89Zi5tYXRjaChpWzFdKSxiPWlbMF07ZWxzZXtmb3IoYz0wO2M8dDsrK2MpaWYoaT1tW2NdLG89Zi5tYXRjaChpWzFdKSl7Yj1pWzBdO2JyZWFrfW98fChiPSJwbG4iKX1pZigoYz1iLmxlbmd0aD49NSYmImxhbmctIj09PWIuc3Vic3RyaW5nKDAsNSkpJiYhKG8mJnR5cGVvZiBvWzFdPT09InN0cmluZyIpKWM9ITEsYj0ic3JjIjtjfHwocltmXT1iKX1pPWQ7ZCs9Zi5sZW5ndGg7aWYoYyl7Yz1vWzFdO3ZhciBqPWYuaW5kZXhPZihjKSxrPWorYy5sZW5ndGg7b1syXSYmKGs9Zi5sZW5ndGgtb1syXS5sZW5ndGgsaj1rLWMubGVuZ3RoKTtiPWIuc3Vic3RyaW5nKDUpO0IobCtpLGYuc3Vic3RyaW5nKDAsaiksZSxwKTtCKGwraStqLGMsQyhiLGMpLHApO0IobCtpK2ssZi5zdWJzdHJpbmcoayksZSxwKX1lbHNlIHAucHVzaChsK2ksYil9YS5lPXB9dmFyIGg9e30seTsoZnVuY3Rpb24oKXtmb3IodmFyIGU9YS5jb25jYXQobSksCmw9W10scD17fSxkPTAsZz1lLmxlbmd0aDtkPGc7KytkKXt2YXIgcj1lW2RdLG49clszXTtpZihuKWZvcih2YXIgaz1uLmxlbmd0aDstLWs+PTA7KWhbbi5jaGFyQXQoayldPXI7cj1yWzFdO249IiIrcjtwLmhhc093blByb3BlcnR5KG4pfHwobC5wdXNoKHIpLHBbbl09cSl9bC5wdXNoKC9bXFNcc10vKTt5PUwobCl9KSgpO3ZhciB0PW0ubGVuZ3RoO3JldHVybiBlfWZ1bmN0aW9uIHUoYSl7dmFyIG09W10sZT1bXTthLnRyaXBsZVF1b3RlZFN0cmluZ3M/bS5wdXNoKFsic3RyIiwvXig/OicnJyg/OlteJ1xcXXxcXFtcU1xzXXwnJz8oPz1bXiddKSkqKD86JycnfCQpfCIiIig/OlteIlxcXXxcXFtcU1xzXXwiIj8oPz1bXiJdKSkqKD86IiIifCQpfCcoPzpbXidcXF18XFxbXFNcc10pKig/Oid8JCl8Iig/OlteIlxcXXxcXFtcU1xzXSkqKD86InwkKSkvLHEsIidcIiJdKTphLm11bHRpTGluZVN0cmluZ3M/bS5wdXNoKFsic3RyIiwvXig/OicoPzpbXidcXF18XFxbXFNcc10pKig/Oid8JCl8Iig/OlteIlxcXXxcXFtcU1xzXSkqKD86InwkKXxgKD86W15cXGBdfFxcW1xTXHNdKSooPzpgfCQpKS8sCnEsIidcImAiXSk6bS5wdXNoKFsic3RyIiwvXig/OicoPzpbXlxuXHInXFxdfFxcLikqKD86J3wkKXwiKD86W15cblxyIlxcXXxcXC4pKig/OiJ8JCkpLyxxLCJcIiciXSk7YS52ZXJiYXRpbVN0cmluZ3MmJmUucHVzaChbInN0ciIsL15AIig/OlteIl18IiIpKig/OiJ8JCkvLHFdKTt2YXIgaD1hLmhhc2hDb21tZW50cztoJiYoYS5jU3R5bGVDb21tZW50cz8oaD4xP20ucHVzaChbImNvbSIsL14jKD86IyMoPzpbXiNdfCMoPyEjIykpKig/OiMjI3wkKXwuKikvLHEsIiMiXSk6bS5wdXNoKFsiY29tIiwvXiMoPzooPzpkZWZpbmV8ZWxpZnxlbHNlfGVuZGlmfGVycm9yfGlmZGVmfGluY2x1ZGV8aWZuZGVmfGxpbmV8cHJhZ21hfHVuZGVmfHdhcm5pbmcpXGJ8W15cblxyXSopLyxxLCIjIl0pLGUucHVzaChbInN0ciIsL148KD86KD86KD86XC5cLlwvKSp8XC8/KSg/Oltcdy1dKyg/OlwvW1x3LV0rKSspP1tcdy1dK1wuaHxbYS16XVx3Kik+LyxxXSkpOm0ucHVzaChbImNvbSIsL14jW15cblxyXSovLApxLCIjIl0pKTthLmNTdHlsZUNvbW1lbnRzJiYoZS5wdXNoKFsiY29tIiwvXlwvXC9bXlxuXHJdKi8scV0pLGUucHVzaChbImNvbSIsL15cL1wqW1xTXHNdKj8oPzpcKlwvfCQpLyxxXSkpO2EucmVnZXhMaXRlcmFscyYmZS5wdXNoKFsibGFuZy1yZWdleCIsL14oPzpeXlwuP3xbISstXXwhPXwhPT18I3wlfCU9fCZ8JiZ8JiY9fCY9fFwofFwqfFwqPXxcKz18LHwtPXwtPnxcL3xcLz18Onw6Onw7fDx8PDx8PDw9fDw9fD18PT18PT09fD58Pj18Pj58Pj49fD4+Pnw+Pj49fFs/QFteXXxcXj18XF5cXnxcXlxePXx7fFx8fFx8PXxcfFx8fFx8XHw9fH58YnJlYWt8Y2FzZXxjb250aW51ZXxkZWxldGV8ZG98ZWxzZXxmaW5hbGx5fGluc3RhbmNlb2Z8cmV0dXJufHRocm93fHRyeXx0eXBlb2YpXHMqKFwvKD89W14qL10pKD86W14vW1xcXXxcXFtcU1xzXXxcWyg/OlteXFxcXV18XFxbXFNcc10pKig/Ol18JCkpK1wvKS9dKTsoaD1hLnR5cGVzKSYmZS5wdXNoKFsidHlwIixoXSk7YT0oIiIrYS5rZXl3b3JkcykucmVwbGFjZSgvXiB8ICQvZywKIiIpO2EubGVuZ3RoJiZlLnB1c2goWyJrd2QiLFJlZ0V4cCgiXig/OiIrYS5yZXBsYWNlKC9bXHMsXSsvZywifCIpKyIpXFxiIikscV0pO20ucHVzaChbInBsbiIsL15ccysvLHEsIiBcclxuXHRceGEwIl0pO2UucHVzaChbImxpdCIsL15AWyRfYS16XVtcdyRAXSovaSxxXSxbInR5cCIsL14oPzpbQF9dP1tBLVpdK1thLXpdW1x3JEBdKnxcdytfdFxiKS8scV0sWyJwbG4iLC9eWyRfYS16XVtcdyRAXSovaSxxXSxbImxpdCIsL14oPzoweFtcZGEtZl0rfCg/OlxkKD86X1xkKykqXGQqKD86XC5cZCopP3xcLlxkXCspKD86ZVsrLV0/XGQrKT8pW2Etel0qL2kscSwiMDEyMzQ1Njc4OSJdLFsicGxuIiwvXlxcW1xTXHNdPy8scV0sWyJwdW4iLC9eLlteXHNcdyItJCcuL0BcXGBdKi8scV0pO3JldHVybiB4KG0sZSl9ZnVuY3Rpb24gRChhLG0pe2Z1bmN0aW9uIGUoYSl7c3dpdGNoKGEubm9kZVR5cGUpe2Nhc2UgMTppZihrLnRlc3QoYS5jbGFzc05hbWUpKWJyZWFrO2lmKCJCUiI9PT1hLm5vZGVOYW1lKWgoYSksCmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpO2Vsc2UgZm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWUoYSk7YnJlYWs7Y2FzZSAzOmNhc2UgNDppZihwKXt2YXIgYj1hLm5vZGVWYWx1ZSxkPWIubWF0Y2godCk7aWYoZCl7dmFyIGM9Yi5zdWJzdHJpbmcoMCxkLmluZGV4KTthLm5vZGVWYWx1ZT1jOyhiPWIuc3Vic3RyaW5nKGQuaW5kZXgrZFswXS5sZW5ndGgpKSYmYS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzLmNyZWF0ZVRleHROb2RlKGIpLGEubmV4dFNpYmxpbmcpO2goYSk7Y3x8YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpfX19fWZ1bmN0aW9uIGgoYSl7ZnVuY3Rpb24gYihhLGQpe3ZhciBlPWQ/YS5jbG9uZU5vZGUoITEpOmEsZj1hLnBhcmVudE5vZGU7aWYoZil7dmFyIGY9YihmLDEpLGc9YS5uZXh0U2libGluZztmLmFwcGVuZENoaWxkKGUpO2Zvcih2YXIgaD1nO2g7aD1nKWc9aC5uZXh0U2libGluZyxmLmFwcGVuZENoaWxkKGgpfXJldHVybiBlfQpmb3IoOyFhLm5leHRTaWJsaW5nOylpZihhPWEucGFyZW50Tm9kZSwhYSlyZXR1cm47Zm9yKHZhciBhPWIoYS5uZXh0U2libGluZywwKSxlOyhlPWEucGFyZW50Tm9kZSkmJmUubm9kZVR5cGU9PT0xOylhPWU7ZC5wdXNoKGEpfXZhciBrPS8oPzpefFxzKW5vY29kZSg/OlxzfCQpLyx0PS9cclxuP3xcbi8scz1hLm93bmVyRG9jdW1lbnQsbDthLmN1cnJlbnRTdHlsZT9sPWEuY3VycmVudFN0eWxlLndoaXRlU3BhY2U6d2luZG93LmdldENvbXB1dGVkU3R5bGUmJihsPXMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLHEpLmdldFByb3BlcnR5VmFsdWUoIndoaXRlLXNwYWNlIikpO3ZhciBwPWwmJiJwcmUiPT09bC5zdWJzdHJpbmcoMCwzKTtmb3IobD1zLmNyZWF0ZUVsZW1lbnQoIkxJIik7YS5maXJzdENoaWxkOylsLmFwcGVuZENoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKHZhciBkPVtsXSxnPTA7ZzxkLmxlbmd0aDsrK2cpZShkW2ddKTttPT09KG18MCkmJmRbMF0uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsCm0pO3ZhciByPXMuY3JlYXRlRWxlbWVudCgiT0wiKTtyLmNsYXNzTmFtZT0ibGluZW51bXMiO2Zvcih2YXIgbj1NYXRoLm1heCgwLG0tMXwwKXx8MCxnPTAsej1kLmxlbmd0aDtnPHo7KytnKWw9ZFtnXSxsLmNsYXNzTmFtZT0iTCIrKGcrbiklMTAsbC5maXJzdENoaWxkfHxsLmFwcGVuZENoaWxkKHMuY3JlYXRlVGV4dE5vZGUoIlx4YTAiKSksci5hcHBlbmRDaGlsZChsKTthLmFwcGVuZENoaWxkKHIpfWZ1bmN0aW9uIGsoYSxtKXtmb3IodmFyIGU9bS5sZW5ndGg7LS1lPj0wOyl7dmFyIGg9bVtlXTtBLmhhc093blByb3BlcnR5KGgpP3dpbmRvdy5jb25zb2xlJiZjb25zb2xlLndhcm4oImNhbm5vdCBvdmVycmlkZSBsYW5ndWFnZSBoYW5kbGVyICVzIixoKTpBW2hdPWF9fWZ1bmN0aW9uIEMoYSxtKXtpZighYXx8IUEuaGFzT3duUHJvcGVydHkoYSkpYT0vXlxzKjwvLnRlc3QobSk/ImRlZmF1bHQtbWFya3VwIjoiZGVmYXVsdC1jb2RlIjtyZXR1cm4gQVthXX1mdW5jdGlvbiBFKGEpe3ZhciBtPQphLmc7dHJ5e3ZhciBlPU0oYS5oKSxoPWUuYTthLmE9aDthLmM9ZS5jO2EuZD0wO0MobSxoKShhKTt2YXIgaz0vXGJNU0lFXGIvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbT0vXG4vZyx0PWEuYSxzPXQubGVuZ3RoLGU9MCxsPWEuYyxwPWwubGVuZ3RoLGg9MCxkPWEuZSxnPWQubGVuZ3RoLGE9MDtkW2ddPXM7dmFyIHIsbjtmb3Iobj1yPTA7bjxnOylkW25dIT09ZFtuKzJdPyhkW3IrK109ZFtuKytdLGRbcisrXT1kW24rK10pOm4rPTI7Zz1yO2ZvcihuPXI9MDtuPGc7KXtmb3IodmFyIHo9ZFtuXSxmPWRbbisxXSxiPW4rMjtiKzI8PWcmJmRbYisxXT09PWY7KWIrPTI7ZFtyKytdPXo7ZFtyKytdPWY7bj1ifWZvcihkLmxlbmd0aD1yO2g8cDspe3ZhciBvPWxbaCsyXXx8cyxjPWRbYSsyXXx8cyxiPU1hdGgubWluKG8sYyksaT1sW2grMV0sajtpZihpLm5vZGVUeXBlIT09MSYmKGo9dC5zdWJzdHJpbmcoZSxiKSkpe2smJihqPWoucmVwbGFjZShtLCJcciIpKTtpLm5vZGVWYWx1ZT0Kajt2YXIgdT1pLm93bmVyRG9jdW1lbnQsdj11LmNyZWF0ZUVsZW1lbnQoIlNQQU4iKTt2LmNsYXNzTmFtZT1kW2ErMV07dmFyIHg9aS5wYXJlbnROb2RlO3gucmVwbGFjZUNoaWxkKHYsaSk7di5hcHBlbmRDaGlsZChpKTtlPG8mJihsW2grMV09aT11LmNyZWF0ZVRleHROb2RlKHQuc3Vic3RyaW5nKGIsbykpLHguaW5zZXJ0QmVmb3JlKGksdi5uZXh0U2libGluZykpfWU9YjtlPj1vJiYoaCs9Mik7ZT49YyYmKGErPTIpfX1jYXRjaCh3KXsiY29uc29sZSJpbiB3aW5kb3cmJmNvbnNvbGUubG9nKHcmJncuc3RhY2s/dy5zdGFjazp3KX19dmFyIHY9WyJicmVhayxjb250aW51ZSxkbyxlbHNlLGZvcixpZixyZXR1cm4sd2hpbGUiXSx3PVtbdiwiYXV0byxjYXNlLGNoYXIsY29uc3QsZGVmYXVsdCxkb3VibGUsZW51bSxleHRlcm4sZmxvYXQsZ290byxpbnQsbG9uZyxyZWdpc3RlcixzaG9ydCxzaWduZWQsc2l6ZW9mLHN0YXRpYyxzdHJ1Y3Qsc3dpdGNoLHR5cGVkZWYsdW5pb24sdW5zaWduZWQsdm9pZCx2b2xhdGlsZSJdLAoiY2F0Y2gsY2xhc3MsZGVsZXRlLGZhbHNlLGltcG9ydCxuZXcsb3BlcmF0b3IscHJpdmF0ZSxwcm90ZWN0ZWQscHVibGljLHRoaXMsdGhyb3csdHJ1ZSx0cnksdHlwZW9mIl0sRj1bdywiYWxpZ25vZixhbGlnbl91bmlvbixhc20sYXhpb20sYm9vbCxjb25jZXB0LGNvbmNlcHRfbWFwLGNvbnN0X2Nhc3QsY29uc3RleHByLGRlY2x0eXBlLGR5bmFtaWNfY2FzdCxleHBsaWNpdCxleHBvcnQsZnJpZW5kLGlubGluZSxsYXRlX2NoZWNrLG11dGFibGUsbmFtZXNwYWNlLG51bGxwdHIscmVpbnRlcnByZXRfY2FzdCxzdGF0aWNfYXNzZXJ0LHN0YXRpY19jYXN0LHRlbXBsYXRlLHR5cGVpZCx0eXBlbmFtZSx1c2luZyx2aXJ0dWFsLHdoZXJlIl0sRz1bdywiYWJzdHJhY3QsYm9vbGVhbixieXRlLGV4dGVuZHMsZmluYWwsZmluYWxseSxpbXBsZW1lbnRzLGltcG9ydCxpbnN0YW5jZW9mLG51bGwsbmF0aXZlLHBhY2thZ2Usc3RyaWN0ZnAsc3VwZXIsc3luY2hyb25pemVkLHRocm93cyx0cmFuc2llbnQiXSwKSD1bRywiYXMsYmFzZSxieSxjaGVja2VkLGRlY2ltYWwsZGVsZWdhdGUsZGVzY2VuZGluZyxkeW5hbWljLGV2ZW50LGZpeGVkLGZvcmVhY2gsZnJvbSxncm91cCxpbXBsaWNpdCxpbixpbnRlcmZhY2UsaW50ZXJuYWwsaW50byxpcyxsb2NrLG9iamVjdCxvdXQsb3ZlcnJpZGUsb3JkZXJieSxwYXJhbXMscGFydGlhbCxyZWFkb25seSxyZWYsc2J5dGUsc2VhbGVkLHN0YWNrYWxsb2Msc3RyaW5nLHNlbGVjdCx1aW50LHVsb25nLHVuY2hlY2tlZCx1bnNhZmUsdXNob3J0LHZhciJdLHc9W3csImRlYnVnZ2VyLGV2YWwsZXhwb3J0LGZ1bmN0aW9uLGdldCxudWxsLHNldCx1bmRlZmluZWQsdmFyLHdpdGgsSW5maW5pdHksTmFOIl0sST1bdiwiYW5kLGFzLGFzc2VydCxjbGFzcyxkZWYsZGVsLGVsaWYsZXhjZXB0LGV4ZWMsZmluYWxseSxmcm9tLGdsb2JhbCxpbXBvcnQsaW4saXMsbGFtYmRhLG5vbmxvY2FsLG5vdCxvcixwYXNzLHByaW50LHJhaXNlLHRyeSx3aXRoLHlpZWxkLEZhbHNlLFRydWUsTm9uZSJdLApKPVt2LCJhbGlhcyxhbmQsYmVnaW4sY2FzZSxjbGFzcyxkZWYsZGVmaW5lZCxlbHNpZixlbmQsZW5zdXJlLGZhbHNlLGluLG1vZHVsZSxuZXh0LG5pbCxub3Qsb3IscmVkbyxyZXNjdWUscmV0cnksc2VsZixzdXBlcix0aGVuLHRydWUsdW5kZWYsdW5sZXNzLHVudGlsLHdoZW4seWllbGQsQkVHSU4sRU5EIl0sdj1bdiwiY2FzZSxkb25lLGVsaWYsZXNhYyxldmFsLGZpLGZ1bmN0aW9uLGluLGxvY2FsLHNldCx0aGVuLHVudGlsIl0sSz0vXihESVJ8RklMRXx2ZWN0b3J8KGRlfHByaW9yaXR5Xyk/cXVldWV8bGlzdHxzdGFja3woY29uc3RfKT9pdGVyYXRvcnwobXVsdGkpPyhzZXR8bWFwKXxiaXRzZXR8dT8oaW50fGZsb2F0KVxkKikvLE49L1xTLyxPPXUoe2tleXdvcmRzOltGLEgsdywiY2FsbGVyLGRlbGV0ZSxkaWUsZG8sZHVtcCxlbHNpZixldmFsLGV4aXQsZm9yZWFjaCxmb3IsZ290byxpZixpbXBvcnQsbGFzdCxsb2NhbCxteSxuZXh0LG5vLG91cixwcmludCxwYWNrYWdlLHJlZG8scmVxdWlyZSxzdWIsdW5kZWYsdW5sZXNzLHVudGlsLHVzZSx3YW50YXJyYXksd2hpbGUsQkVHSU4sRU5EIisKSSxKLHZdLGhhc2hDb21tZW50czohMCxjU3R5bGVDb21tZW50czohMCxtdWx0aUxpbmVTdHJpbmdzOiEwLHJlZ2V4TGl0ZXJhbHM6ITB9KSxBPXt9O2soTyxbImRlZmF1bHQtY29kZSJdKTtrKHgoW10sW1sicGxuIiwvXltePD9dKy9dLFsiZGVjIiwvXjwhXHdbXj5dKig/Oj58JCkvXSxbImNvbSIsL148XCEtLVtcU1xzXSo/KD86LS1cPnwkKS9dLFsibGFuZy0iLC9ePFw/KFtcU1xzXSs/KSg/Olw/PnwkKS9dLFsibGFuZy0iLC9ePCUoW1xTXHNdKz8pKD86JT58JCkvXSxbInB1biIsL14oPzo8WyU/XXxbJT9dPikvXSxbImxhbmctIiwvXjx4bXBcYltePl0qPihbXFNcc10rPyk8XC94bXBcYltePl0qPi9pXSxbImxhbmctanMiLC9ePHNjcmlwdFxiW14+XSo+KFtcU1xzXSo/KSg8XC9zY3JpcHRcYltePl0qPikvaV0sWyJsYW5nLWNzcyIsL148c3R5bGVcYltePl0qPihbXFNcc10qPykoPFwvc3R5bGVcYltePl0qPikvaV0sWyJsYW5nLWluLnRhZyIsL14oPFwvP1thLXpdW148Pl0qPikvaV1dKSwKWyJkZWZhdWx0LW1hcmt1cCIsImh0bSIsImh0bWwiLCJteG1sIiwieGh0bWwiLCJ4bWwiLCJ4c2wiXSk7ayh4KFtbInBsbiIsL15ccysvLHEsIiBcdFxyXG4iXSxbImF0diIsL14oPzoiW14iXSoiP3wnW14nXSonPykvLHEsIlwiJyJdXSxbWyJ0YWciLC9eXjxcLz9bYS16XSg/Oltcdy0uOl0qXHcpP3xcLz8+JC9pXSxbImF0biIsL14oPyFzdHlsZVtccz1dfG9uKVthLXpdKD86W1x3Oi1dKlx3KT8vaV0sWyJsYW5nLXVxLnZhbCIsL149XHMqKFteXHMiJz5dKig/OlteXHMiJy8+XXxcLyg/PVxzKSkpL10sWyJwdW4iLC9eWy88LT5dKy9dLFsibGFuZy1qcyIsL15vblx3K1xzKj1ccyoiKFteIl0rKSIvaV0sWyJsYW5nLWpzIiwvXm9uXHcrXHMqPVxzKicoW14nXSspJy9pXSxbImxhbmctanMiLC9eb25cdytccyo9XHMqKFteXHMiJz5dKykvaV0sWyJsYW5nLWNzcyIsL15zdHlsZVxzKj1ccyoiKFteIl0rKSIvaV0sWyJsYW5nLWNzcyIsL15zdHlsZVxzKj1ccyonKFteJ10rKScvaV0sWyJsYW5nLWNzcyIsCi9ec3R5bGVccyo9XHMqKFteXHMiJz5dKykvaV1dKSxbImluLnRhZyJdKTtrKHgoW10sW1siYXR2IiwvXltcU1xzXSsvXV0pLFsidXEudmFsIl0pO2sodSh7a2V5d29yZHM6RixoYXNoQ29tbWVudHM6ITAsY1N0eWxlQ29tbWVudHM6ITAsdHlwZXM6S30pLFsiYyIsImNjIiwiY3BwIiwiY3h4IiwiY3ljIiwibSJdKTtrKHUoe2tleXdvcmRzOiJudWxsLHRydWUsZmFsc2UifSksWyJqc29uIl0pO2sodSh7a2V5d29yZHM6SCxoYXNoQ29tbWVudHM6ITAsY1N0eWxlQ29tbWVudHM6ITAsdmVyYmF0aW1TdHJpbmdzOiEwLHR5cGVzOkt9KSxbImNzIl0pO2sodSh7a2V5d29yZHM6RyxjU3R5bGVDb21tZW50czohMH0pLFsiamF2YSJdKTtrKHUoe2tleXdvcmRzOnYsaGFzaENvbW1lbnRzOiEwLG11bHRpTGluZVN0cmluZ3M6ITB9KSxbImJzaCIsImNzaCIsInNoIl0pO2sodSh7a2V5d29yZHM6SSxoYXNoQ29tbWVudHM6ITAsbXVsdGlMaW5lU3RyaW5nczohMCx0cmlwbGVRdW90ZWRTdHJpbmdzOiEwfSksClsiY3YiLCJweSJdKTtrKHUoe2tleXdvcmRzOiJjYWxsZXIsZGVsZXRlLGRpZSxkbyxkdW1wLGVsc2lmLGV2YWwsZXhpdCxmb3JlYWNoLGZvcixnb3RvLGlmLGltcG9ydCxsYXN0LGxvY2FsLG15LG5leHQsbm8sb3VyLHByaW50LHBhY2thZ2UscmVkbyxyZXF1aXJlLHN1Yix1bmRlZix1bmxlc3MsdW50aWwsdXNlLHdhbnRhcnJheSx3aGlsZSxCRUdJTixFTkQiLGhhc2hDb21tZW50czohMCxtdWx0aUxpbmVTdHJpbmdzOiEwLHJlZ2V4TGl0ZXJhbHM6ITB9KSxbInBlcmwiLCJwbCIsInBtIl0pO2sodSh7a2V5d29yZHM6SixoYXNoQ29tbWVudHM6ITAsbXVsdGlMaW5lU3RyaW5nczohMCxyZWdleExpdGVyYWxzOiEwfSksWyJyYiJdKTtrKHUoe2tleXdvcmRzOncsY1N0eWxlQ29tbWVudHM6ITAscmVnZXhMaXRlcmFsczohMH0pLFsianMiXSk7ayh1KHtrZXl3b3JkczoiYWxsLGFuZCxieSxjYXRjaCxjbGFzcyxlbHNlLGV4dGVuZHMsZmFsc2UsZmluYWxseSxmb3IsaWYsaW4saXMsaXNudCxsb29wLG5ldyxubyxub3QsbnVsbCxvZixvZmYsb24sb3IscmV0dXJuLHN1cGVyLHRoZW4sdHJ1ZSx0cnksdW5sZXNzLHVudGlsLHdoZW4sd2hpbGUseWVzIiwKaGFzaENvbW1lbnRzOjMsY1N0eWxlQ29tbWVudHM6ITAsbXVsdGlsaW5lU3RyaW5nczohMCx0cmlwbGVRdW90ZWRTdHJpbmdzOiEwLHJlZ2V4TGl0ZXJhbHM6ITB9KSxbImNvZmZlZSJdKTtrKHgoW10sW1sic3RyIiwvXltcU1xzXSsvXV0pLFsicmVnZXgiXSk7d2luZG93LnByZXR0eVByaW50T25lPWZ1bmN0aW9uKGEsbSxlKXt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJQUkUiKTtoLmlubmVySFRNTD1hO2UmJkQoaCxlKTtFKHtnOm0saTplLGg6aH0pO3JldHVybiBoLmlubmVySFRNTH07d2luZG93LnByZXR0eVByaW50PWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIG0oKXtmb3IodmFyIGU9d2luZG93LlBSX1NIT1VMRF9VU0VfQ09OVElOVUFUSU9OP2wubm93KCkrMjUwOkluZmluaXR5O3A8aC5sZW5ndGgmJmwubm93KCk8ZTtwKyspe3ZhciBuPWhbcF0saz1uLmNsYXNzTmFtZTtpZihrLmluZGV4T2YoInByZXR0eXByaW50Iik+PTApe3ZhciBrPWsubWF0Y2goZyksZixiO2lmKGI9CiFrKXtiPW47Zm9yKHZhciBvPXZvaWQgMCxjPWIuZmlyc3RDaGlsZDtjO2M9Yy5uZXh0U2libGluZyl2YXIgaT1jLm5vZGVUeXBlLG89aT09PTE/bz9iOmM6aT09PTM/Ti50ZXN0KGMubm9kZVZhbHVlKT9iOm86bztiPShmPW89PT1iP3ZvaWQgMDpvKSYmIkNPREUiPT09Zi50YWdOYW1lfWImJihrPWYuY2xhc3NOYW1lLm1hdGNoKGcpKTtrJiYoaz1rWzFdKTtiPSExO2ZvcihvPW4ucGFyZW50Tm9kZTtvO289by5wYXJlbnROb2RlKWlmKChvLnRhZ05hbWU9PT0icHJlInx8by50YWdOYW1lPT09ImNvZGUifHxvLnRhZ05hbWU9PT0ieG1wIikmJm8uY2xhc3NOYW1lJiZvLmNsYXNzTmFtZS5pbmRleE9mKCJwcmV0dHlwcmludCIpPj0wKXtiPSEwO2JyZWFrfWJ8fCgoYj0oYj1uLmNsYXNzTmFtZS5tYXRjaCgvXGJsaW5lbnVtc1xiKD86OihcZCspKT8vKSk/YlsxXSYmYlsxXS5sZW5ndGg/K2JbMV06ITA6ITEpJiZEKG4sYiksZD17ZzprLGg6bixpOmJ9LEUoZCkpfX1wPGgubGVuZ3RoP3NldFRpbWVvdXQobSwKMjUwKTphJiZhKCl9Zm9yKHZhciBlPVtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicHJlIiksZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImNvZGUiKSxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgieG1wIildLGg9W10saz0wO2s8ZS5sZW5ndGg7KytrKWZvcih2YXIgdD0wLHM9ZVtrXS5sZW5ndGg7dDxzOysrdCloLnB1c2goZVtrXVt0XSk7dmFyIGU9cSxsPURhdGU7bC5ub3d8fChsPXtub3c6ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9fSk7dmFyIHA9MCxkLGc9L1xibGFuZyg/OnVhZ2UpPy0oW1x3Ll0rKSg/IVxTKS87bSgpfTt3aW5kb3cuUFI9e2NyZWF0ZVNpbXBsZUxleGVyOngscmVnaXN0ZXJMYW5nSGFuZGxlcjprLHNvdXJjZURlY29yYXRvcjp1LFBSX0FUVFJJQl9OQU1FOiJhdG4iLFBSX0FUVFJJQl9WQUxVRToiYXR2IixQUl9DT01NRU5UOiJjb20iLFBSX0RFQ0xBUkFUSU9OOiJkZWMiLFBSX0tFWVdPUkQ6Imt3ZCIsUFJfTElURVJBTDoibGl0IiwKUFJfTk9DT0RFOiJub2NvZGUiLFBSX1BMQUlOOiJwbG4iLFBSX1BVTkNUVUFUSU9OOiJwdW4iLFBSX1NPVVJDRToic3JjIixQUl9TVFJJTkc6InN0ciIsUFJfVEFHOiJ0YWciLFBSX1RZUEU6InR5cCJ9fSkoKTsK"></script>
<script src="data:application/x-javascript;base64,Ly8gQ29weXJpZ2h0IChDKSAyMDEyIEplZmZyZXkgQi4gQXJub2xkCi8vCi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwovLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAovLwovLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAovLwovLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgovLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCi8qKgogKiBAZmlsZW92ZXJ2aWV3CiAqIFJlZ2lzdGVycyBhIGxhbmd1YWdlIGhhbmRsZXIgZm9yIFMsIFMtcGx1cywgYW5kIFIgc291cmNlIGNvZGUuCiAqCiAqCiAqIFRvIHVzZSwgaW5jbHVkZSBwcmV0dGlmeS5qcyBhbmQgdGhpcyBmaWxlIGluIHlvdXIgSFRNTCBwYWdlLgogKiBUaGVuIHB1dCB5b3VyIGNvZGUgaW4gYW4gSFRNTCB0YWcgbGlrZQogKiAgICAgIDxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctciI+IGNvZGUgPC9wcmU+CiAqCiAqIExhbmd1YWdlIGRlZmluaXRpb24gZnJvbQogKiBodHRwOi8vY3Jhbi5yLXByb2plY3Qub3JnL2RvYy9tYW51YWxzL1ItbGFuZy5odG1sLgogKiBNYW55IG9mIHRoZSByZWdleGVzIGFyZSBzaGFyZWQgIHdpdGggdGhlIHB5Z21lbnRzIFNMZXhlciwKICogaHR0cDovL3B5Z21lbnRzLm9yZy8uCiAqCiAqIE9yaWdpbmFsOiBodHRwczovL3Jhdy5naXRodWIuY29tL2pybm9sZC9wcmV0dGlmeS1sYW5nLXItYnVncy9tYXN0ZXIvbGFuZy1yLmpzCiAqCiAqIEBhdXRob3IgamVmZnJleS5hcm5vbGRAZ21haWwuY29tCiAqLwpQUlsncmVnaXN0ZXJMYW5nSGFuZGxlciddKAogICAgUFJbJ2NyZWF0ZVNpbXBsZUxleGVyJ10oCiAgICAgICAgWwogICAgICAgICAgICBbUFJbJ1BSX1BMQUlOJ10sICAgICAgIC9eW1x0XG5cciBceEEwXSsvLCBudWxsLCAnXHRcblxyIFx4QTAnXSwKCSAgICBbUFJbJ1BSX1NUUklORyddLCAgICAgIC9eXCIoPzpbXlwiXFxdfFxcW1xzXFNdKSooPzpcInwkKS8sIG51bGwsICciJ10sCgkgICAgW1BSWydQUl9TVFJJTkcnXSwgICAgICAvXlwnKD86W15cJ1xcXXxcXFtcc1xTXSkqKD86XCd8JCkvLCBudWxsLCAiJyJdCiAgICAgICAgXSwKICAgICAgICBbCiAgICAgICAgICAgIFtQUlsnUFJfQ09NTUVOVCddLCAgICAgL14jLiovXSwKCSAgICBbUFJbJ1BSX0tFWVdPUkQnXSwgICAgIC9eKD86aWZ8ZWxzZXxmb3J8d2hpbGV8cmVwZWF0fGlufG5leHR8YnJlYWt8cmV0dXJufHN3aXRjaHxmdW5jdGlvbikoPyFbQS1aYS16MC05Xy5dKS9dLAoJICAgIC8vIGhleCBudW1iZXMKCSAgICBbUFJbJ1BSX0xJVEVSQUwnXSwgL14wW3hYXVthLWZBLUYwLTldKyhbcFBdWzAtOV0rKT9bTGldPy9dLAoJICAgIC8vIERlY2ltYWwgbnVtYmVycwogICAgICAgICAgICBbUFJbJ1BSX0xJVEVSQUwnXSwgL15bKy1dPyhbMC05XSsoXC5bMC05XSspP3xcLlswLTldKykoW2VFXVsrLV0/WzAtOV0rKT9bTGldPy9dLAoJICAgIC8vIGJ1aWx0aW4gc3ltYm9scwoJICAgIFtQUlsnUFJfTElURVJBTCddLCAvXig/Ok5VTEx8TkEoPzpfKD86aW50ZWdlcnxyZWFsfGNvbXBsZXh8Y2hhcmFjdGVyKV8pP3xJbmZ8VFJVRXxGQUxTRXxOYU58XC5cLig/OlwufFswLTldKykpKD8hW0EtWmEtejAtOV8uXSkvXSwKCSAgICAvLyBhc3NpZ25tZW50LCBvcGVyYXRvcnMsIGFuZCBwYXJlbnMsIGV0Yy4KCSAgICBbUFJbJ1BSX1BVTkNUVUFUSU9OJ10sIC9eKD86PDw/LXwtPj4/fC18PT18PD18Pj18PHw+fCYmP3whPXxcfFx8P3xcKnxcK3xcXnxcL3whfCUuKj8lfD18fnxcJHxAfDp7MSwzfXxbXFtcXSgpe307LD9dKS9dLAoJICAgIC8vIHZhbGlkIHZhcmlhYmxlIG5hbWVzCgkgICAgW1BSWydQUl9QTEFJTiddLCAvXig/OltBLVphLXpdK1tBLVphLXowLTlfLl0qfFwuW2EtekEtWl9dWzAtOWEtekEtWlwuX10qKSg/IVtBLVphLXowLTlfLl0pL10sCgkgICAgLy8gc3RyaW5nIGJhY2t0aWNrCgkgICAgW1BSWydQUl9TVFJJTkcnXSwgL15gLitgL10KICAgICAgICBdKSwKICAgIFsncicsICdzJywgJ1InLCAnUycsICdTcGx1cyddKTsK"></script>
<script src="data:application/x-javascript;base64,dmFyIGE9bnVsbDsKUFIucmVnaXN0ZXJMYW5nSGFuZGxlcihQUi5jcmVhdGVTaW1wbGVMZXhlcihbWyJwdW4iLC9eWzo+P3xdKy8sYSwiOnw+PyJdLFsiZGVjIiwvXiUoPzpZQU1MfFRBRylbXlxuXHIjXSsvLGEsIiUiXSxbInR5cCIsL14mXFMrLyxhLCImIl0sWyJ0eXAiLC9eIVxTKi8sYSwiISJdLFsic3RyIiwvXiIoPzpbXiJcXF18XFwuKSooPzoifCQpLyxhLCciJ10sWyJzdHIiLC9eJyg/OlteJ118JycpKig/Oid8JCkvLGEsIiciXSxbImNvbSIsL14jW15cblxyXSovLGEsIiMiXSxbInBsbiIsL15ccysvLGEsIiBcdFxyXG4iXV0sW1siZGVjIiwvXig/Oi0tLXxcLlwuXC4pKD86W1xuXHJdfCQpL10sWyJwdW4iLC9eLS9dLFsia3dkIiwvXlx3KzpbXG5cciBdL10sWyJwbG4iLC9eXHcrL11dKSxbInlhbWwiLCJ5bWwiXSk7Cg=="></script>
<script src="data:application/x-javascript;base64,LyoKICogSGFtbWVyLkpTCiAqIHZlcnNpb24gMC40CiAqIGF1dGhvcjogRWlnaHQgTWVkaWEKICogaHR0cHM6Ly9naXRodWIuY29tL0VpZ2h0TWVkaWEvaGFtbWVyLmpzCiAqLwpmdW5jdGlvbiBIYW1tZXIoZWxlbWVudCwgb3B0aW9ucywgdW5kZWZpbmVkKQp7CiAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgdmFyIGRlZmF1bHRzID0gewogICAgICAgIC8vIHByZXZlbnQgdGhlIGRlZmF1bHQgZXZlbnQgb3Igbm90Li4uIG1pZ2h0IGJlIGJ1Z2d5IHdoZW4gZmFsc2UKICAgICAgICBwcmV2ZW50X2RlZmF1bHQgICAgOiBmYWxzZSwKICAgICAgICBjc3NfaGFja3MgICAgICAgICAgOiB0cnVlLAoKICAgICAgICBkcmFnICAgICAgICAgICAgICAgOiB0cnVlLAogICAgICAgIGRyYWdfdmVydGljYWwgICAgICA6IHRydWUsCiAgICAgICAgZHJhZ19ob3Jpem9udGFsICAgIDogdHJ1ZSwKICAgICAgICAvLyBtaW5pbXVtIGRpc3RhbmNlIGJlZm9yZSB0aGUgZHJhZyBldmVudCBzdGFydHMKICAgICAgICBkcmFnX21pbl9kaXN0YW5jZSAgOiAyMCwgLy8gcGl4ZWxzCgogICAgICAgIC8vIHBpbmNoIHpvb20gYW5kIHJvdGF0aW9uCiAgICAgICAgdHJhbnNmb3JtICAgICAgICAgIDogdHJ1ZSwKICAgICAgICBzY2FsZV90cmVzaG9sZCAgICAgOiAwLjEsCiAgICAgICAgcm90YXRpb25fdHJlc2hvbGQgIDogMTUsIC8vIGRlZ3JlZXMKCiAgICAgICAgdGFwICAgICAgICAgICAgICAgIDogdHJ1ZSwKICAgICAgICB0YXBfZG91YmxlICAgICAgICAgOiB0cnVlLAogICAgICAgIHRhcF9tYXhfaW50ZXJ2YWwgICA6IDMwMCwKICAgICAgICB0YXBfZG91YmxlX2Rpc3RhbmNlOiAyMCwKCiAgICAgICAgaG9sZCAgICAgICAgICAgICAgIDogdHJ1ZSwKICAgICAgICBob2xkX3RpbWVvdXQgICAgICAgOiA1MDAKICAgIH07CiAgICBvcHRpb25zID0gbWVyZ2VPYmplY3QoZGVmYXVsdHMsIG9wdGlvbnMpOwoKICAgIC8vIHNvbWUgY3NzIGhhY2tzCiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYoIW9wdGlvbnMuY3NzX2hhY2tzKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHZhciB2ZW5kb3JzID0gWyd3ZWJraXQnLCdtb3onLCdtcycsJ28nLCcnXTsKICAgICAgICB2YXIgY3NzX3Byb3BzID0gewogICAgICAgICAgICAidXNlclNlbGVjdCI6ICJub25lIiwKICAgICAgICAgICAgInRvdWNoQ2FsbG91dCI6ICJub25lIiwKICAgICAgICAgICAgInVzZXJEcmFnIjogIm5vbmUiLAogICAgICAgICAgICAidGFwSGlnaGxpZ2h0Q29sb3IiOiAicmdiYSgwLDAsMCwwKSIKICAgICAgICB9OwoKICAgICAgICB2YXIgcHJvcCA9ICcnOwogICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCB2ZW5kb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGZvcih2YXIgcCBpbiBjc3NfcHJvcHMpIHsKICAgICAgICAgICAgICAgIHByb3AgPSBwOwogICAgICAgICAgICAgICAgaWYodmVuZG9yc1tpXSkgewogICAgICAgICAgICAgICAgICAgIHByb3AgPSB2ZW5kb3JzW2ldICsgcHJvcC5zdWJzdHJpbmcoMCwgMSkudG9VcHBlckNhc2UoKSArIHByb3Auc3Vic3RyaW5nKDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxlbWVudC5zdHlsZVsgcHJvcCBdID0gY3NzX3Byb3BzW3BdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSkoKTsKCiAgICAvLyBob2xkcyB0aGUgZGlzdGFuY2UgdGhhdCBoYXMgYmVlbiBtb3ZlZAogICAgdmFyIF9kaXN0YW5jZSA9IDA7CgogICAgLy8gaG9sZHMgdGhlIGV4YWN0IGFuZ2xlIHRoYXQgaGFzIGJlZW4gbW92ZWQKICAgIHZhciBfYW5nbGUgPSAwOwoKICAgIC8vIGhvbGRzIHRoZSBkaXJhY3Rpb24gdGhhdCBoYXMgYmVlbiBtb3ZlZAogICAgdmFyIF9kaXJlY3Rpb24gPSAwOwoKICAgIC8vIGhvbGRzIHBvc2l0aW9uIG1vdmVtZW50IGZvciBzbGlkaW5nCiAgICB2YXIgX3BvcyA9IHsgfTsKCiAgICAvLyBob3cgbWFueSBmaW5nZXJzIGFyZSBvbiB0aGUgc2NyZWVuCiAgICB2YXIgX2ZpbmdlcnMgPSAwOwoKICAgIHZhciBfZmlyc3QgPSBmYWxzZTsKCiAgICB2YXIgX2dlc3R1cmUgPSBudWxsOwogICAgdmFyIF9wcmV2X2dlc3R1cmUgPSBudWxsOwoKICAgIHZhciBfdG91Y2hfc3RhcnRfdGltZSA9IG51bGw7CiAgICB2YXIgX3ByZXZfdGFwX3BvcyA9IHt4OiAwLCB5OiAwfTsKICAgIHZhciBfcHJldl90YXBfZW5kX3RpbWUgPSBudWxsOwoKICAgIHZhciBfaG9sZF90aW1lciA9IG51bGw7CgogICAgdmFyIF9vZmZzZXQgPSB7fTsKCiAgICAvLyBrZWVwIHRyYWNrIG9mIHRoZSBtb3VzZSBzdGF0dXMKICAgIHZhciBfbW91c2Vkb3duID0gZmFsc2U7CgogICAgdmFyIF9ldmVudF9zdGFydDsKICAgIHZhciBfZXZlbnRfbW92ZTsKICAgIHZhciBfZXZlbnRfZW5kOwoKCiAgICAvKioKICAgICAqIGFuZ2xlIHRvIGRpcmVjdGlvbiBkZWZpbmUKICAgICAqIEBwYXJhbSAgZmxvYXQgICAgYW5nbGUKICAgICAqIEByZXR1cm4gc3RyaW5nICAgZGlyZWN0aW9uCiAgICAgKi8KICAgIHRoaXMuZ2V0RGlyZWN0aW9uRnJvbUFuZ2xlID0gZnVuY3Rpb24oIGFuZ2xlICkKICAgIHsKICAgICAgICB2YXIgZGlyZWN0aW9ucyA9IHsKICAgICAgICAgICAgZG93bjogYW5nbGUgPj0gNDUgJiYgYW5nbGUgPCAxMzUsIC8vOTAKICAgICAgICAgICAgbGVmdDogYW5nbGUgPj0gMTM1IHx8IGFuZ2xlIDw9IC0xMzUsIC8vMTgwCiAgICAgICAgICAgIHVwOiBhbmdsZSA8IC00NSAmJiBhbmdsZSA+IC0xMzUsIC8vMjcwCiAgICAgICAgICAgIHJpZ2h0OiBhbmdsZSA+PSAtNDUgJiYgYW5nbGUgPD0gNDUgLy8wCiAgICAgICAgfTsKCiAgICAgICAgdmFyIGRpcmVjdGlvbiwga2V5OwogICAgICAgIGZvcihrZXkgaW4gZGlyZWN0aW9ucyl7CiAgICAgICAgICAgIGlmKGRpcmVjdGlvbnNba2V5XSl7CiAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSBrZXk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZGlyZWN0aW9uOwogICAgfTsKCgogICAgLyoqCiAgICAgKiBjb3VudCB0aGUgbnVtYmVyIG9mIGZpbmdlcnMgaW4gdGhlIGV2ZW50CiAgICAgKiB3aGVuIG5vIGZpbmdlcnMgYXJlIGRldGVjdGVkLCBvbmUgZmluZ2VyIGlzIHJldHVybmVkIChtb3VzZSBwb2ludGVyKQogICAgICogQHBhcmFtICBldmVudAogICAgICogQHJldHVybiBpbnQgIGZpbmdlcnMKICAgICAqLwogICAgZnVuY3Rpb24gY291bnRGaW5nZXJzKCBldmVudCApCiAgICB7CiAgICAgICAgLy8gdGhlcmUgaXMgYSBidWcgb24gYW5kcm9pZCAodW50aWwgdjQ/KSB0aGF0IHRvdWNoZXMgaXMgYWx3YXlzIDEsCiAgICAgICAgLy8gc28gbm8gbXVsdGl0b3VjaCBpcyBzdXBwb3J0ZWQsIGUuZy4gbm8sIHpvb20gYW5kIHJvdGF0aW9uLi4uCiAgICAgICAgcmV0dXJuIGV2ZW50LnRvdWNoZXMgPyBldmVudC50b3VjaGVzLmxlbmd0aCA6IDE7CiAgICB9CgoKICAgIC8qKgogICAgICogZ2V0IHRoZSB4IGFuZCB5IHBvc2l0aW9ucyBmcm9tIHRoZSBldmVudCBvYmplY3QKICAgICAqIEBwYXJhbSAgZXZlbnQKICAgICAqIEByZXR1cm4gYXJyYXkgIFt7IHg6IGludCwgeTogaW50IH1dCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFhZZnJvbUV2ZW50KCBldmVudCApCiAgICB7CiAgICAgICAgZXZlbnQgPSBldmVudCB8fCB3aW5kb3cuZXZlbnQ7CgogICAgICAgIC8vIG5vIHRvdWNoZXMsIHVzZSB0aGUgZXZlbnQgcGFnZVggYW5kIHBhZ2VZCiAgICAgICAgaWYoIWV2ZW50LnRvdWNoZXMpIHsKICAgICAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LAogICAgICAgICAgICAgICAgYm9keSA9IGRvYy5ib2R5OwoKICAgICAgICAgICAgcmV0dXJuIFt7CiAgICAgICAgICAgICAgICB4OiBldmVudC5wYWdlWCB8fCBldmVudC5jbGllbnRYICsgKCBkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCApIC0gKCBkb2MgJiYgZG9jLmNsaWVudExlZnQgfHwgYm9keSAmJiBkb2MuY2xpZW50TGVmdCB8fCAwICksCiAgICAgICAgICAgICAgICB5OiBldmVudC5wYWdlWSB8fCBldmVudC5jbGllbnRZICsgKCBkb2MgJiYgZG9jLnNjcm9sbFRvcCB8fCBib2R5ICYmIGJvZHkuc2Nyb2xsVG9wIHx8IDAgKSAtICggZG9jICYmIGRvYy5jbGllbnRUb3AgfHwgYm9keSAmJiBkb2MuY2xpZW50VG9wIHx8IDAgKQogICAgICAgICAgICB9XTsKICAgICAgICB9CiAgICAgICAgLy8gbXVsdGl0b3VjaCwgcmV0dXJuIGFycmF5IHdpdGggcG9zaXRpb25zCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciBwb3MgPSBbXSwgc3JjOwogICAgICAgICAgICBmb3IodmFyIHQ9MCwgbGVuPWV2ZW50LnRvdWNoZXMubGVuZ3RoOyB0PGxlbjsgdCsrKSB7CiAgICAgICAgICAgICAgICBzcmMgPSBldmVudC50b3VjaGVzW3RdOwogICAgICAgICAgICAgICAgcG9zLnB1c2goeyB4OiBzcmMucGFnZVgsIHk6IHNyYy5wYWdlWSB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcG9zOwogICAgICAgIH0KICAgIH0KCgogICAgLyoqCiAgICAgKiBjYWxjdWxhdGUgdGhlIGFuZ2xlIGJldHdlZW4gdHdvIHBvaW50cwogICAgICogQHBhcmFtIG9iamVjdCBwb3MxIHsgeDogaW50LCB5OiBpbnQgfQogICAgICogQHBhcmFtIG9iamVjdCBwb3MyIHsgeDogaW50LCB5OiBpbnQgfQogICAgICovCiAgICBmdW5jdGlvbiBnZXRBbmdsZSggcG9zMSwgcG9zMiApCiAgICB7CiAgICAgICAgcmV0dXJuIE1hdGguYXRhbjIocG9zMi55IC0gcG9zMS55LCBwb3MyLnggLSBwb3MxLngpICogMTgwIC8gTWF0aC5QSTsKICAgIH0KCiAgICAvKioKICAgICAqIHRyaWdnZXIgYW4gZXZlbnQvY2FsbGJhY2sgYnkgbmFtZSB3aXRoIHBhcmFtcwogICAgICogQHBhcmFtIHN0cmluZyBuYW1lCiAgICAgKiBAcGFyYW0gYXJyYXkgIHBhcmFtcwogICAgICovCiAgICBmdW5jdGlvbiB0cmlnZ2VyRXZlbnQoIGV2ZW50TmFtZSwgcGFyYW1zICkKICAgIHsKICAgICAgICAvLyByZXR1cm4gdG91Y2hlcyBvYmplY3QKICAgICAgICBwYXJhbXMudG91Y2hlcyA9IGdldFhZZnJvbUV2ZW50KHBhcmFtcy5vcmlnaW5hbEV2ZW50KTsKICAgICAgICBwYXJhbXMudHlwZSA9IGV2ZW50TmFtZTsKCiAgICAgICAgLy8gdHJpZ2dlciBjYWxsYmFjawogICAgICAgIGlmKGlzRnVuY3Rpb24oc2VsZlsib24iKyBldmVudE5hbWVdKSkgewogICAgICAgICAgICBzZWxmWyJvbiIrIGV2ZW50TmFtZV0uY2FsbChzZWxmLCBwYXJhbXMpOwogICAgICAgIH0KICAgIH0KCgogICAgLyoqCiAgICAgKiBjYW5jZWwgZXZlbnQKICAgICAqIEBwYXJhbSAgIG9iamVjdCAgZXZlbnQKICAgICAqIEByZXR1cm4gIHZvaWQKICAgICAqLwoKICAgIGZ1bmN0aW9uIGNhbmNlbEV2ZW50KGV2ZW50KXsKICAgICAgICBldmVudCA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsKICAgICAgICBpZihldmVudC5wcmV2ZW50RGVmYXVsdCl7CiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2U7CiAgICAgICAgICAgIGV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7CiAgICAgICAgfQogICAgfQoKCiAgICAvKioKICAgICAqIHJlc2V0IHRoZSBpbnRlcm5hbCB2YXJzIHRvIHRoZSBzdGFydCB2YWx1ZXMKICAgICAqLwogICAgZnVuY3Rpb24gcmVzZXQoKQogICAgewogICAgICAgIF9wb3MgPSB7fTsKICAgICAgICBfZmlyc3QgPSBmYWxzZTsKICAgICAgICBfZmluZ2VycyA9IDA7CiAgICAgICAgX2Rpc3RhbmNlID0gMDsKICAgICAgICBfYW5nbGUgPSAwOwogICAgICAgIF9nZXN0dXJlID0gbnVsbDsKICAgIH0KCgogICAgdmFyIGdlc3R1cmVzID0gewogICAgICAgIC8vIGhvbGQgZ2VzdHVyZQogICAgICAgIC8vIGZpcmVkIG9uIHRvdWNoc3RhcnQKICAgICAgICBob2xkIDogZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgewogICAgICAgICAgICAvLyBvbmx5IHdoZW4gb25lIGZpbmdlciBpcyBvbiB0aGUgc2NyZWVuCiAgICAgICAgICAgIGlmKG9wdGlvbnMuaG9sZCkgewogICAgICAgICAgICAgICAgX2dlc3R1cmUgPSAnaG9sZCc7CiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoX2hvbGRfdGltZXIpOwoKICAgICAgICAgICAgICAgIF9ob2xkX3RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBpZihfZ2VzdHVyZSA9PSAnaG9sZCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCJob2xkIiwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudCAgIDogZXZlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiAgICAgICAgOiBfcG9zLnN0YXJ0CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sIG9wdGlvbnMuaG9sZF90aW1lb3V0KTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgoKICAgICAgICAvLyBkcmFnIGdlc3R1cmUKICAgICAgICAvLyBmaXJlZCBvbiBtb3VzZW1vdmUKICAgICAgICBkcmFnIDogZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgewogICAgICAgICAgICAvLyBnZXQgdGhlIGRpc3RhbmNlIHdlIG1vdmVkCiAgICAgICAgICAgIHZhciBfZGlzdGFuY2VfeCA9IF9wb3MubW92ZVswXS54IC0gX3Bvcy5zdGFydFswXS54OwogICAgICAgICAgICB2YXIgX2Rpc3RhbmNlX3kgPSBfcG9zLm1vdmVbMF0ueSAtIF9wb3Muc3RhcnRbMF0ueTsKICAgICAgICAgICAgX2Rpc3RhbmNlID0gTWF0aC5zcXJ0KF9kaXN0YW5jZV94ICogX2Rpc3RhbmNlX3ggKyBfZGlzdGFuY2VfeSAqIF9kaXN0YW5jZV95KTsKCiAgICAgICAgICAgIC8vIGRyYWcKICAgICAgICAgICAgLy8gbWluaW1hbCBtb3ZlbWVudCByZXF1aXJlZAogICAgICAgICAgICBpZihvcHRpb25zLmRyYWcgJiYgKF9kaXN0YW5jZSA+IG9wdGlvbnMuZHJhZ19taW5fZGlzdGFuY2UpIHx8IF9nZXN0dXJlID09ICdkcmFnJykgewogICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIHRoZSBhbmdsZQogICAgICAgICAgICAgICAgX2FuZ2xlID0gZ2V0QW5nbGUoX3Bvcy5zdGFydFswXSwgX3Bvcy5tb3ZlWzBdKTsKICAgICAgICAgICAgICAgIF9kaXJlY3Rpb24gPSBzZWxmLmdldERpcmVjdGlvbkZyb21BbmdsZShfYW5nbGUpOwoKICAgICAgICAgICAgICAgIC8vIGNoZWNrIHRoZSBtb3ZlbWVudCBhbmQgc3RvcCBpZiB3ZSBnbyBpbiB0aGUgd3JvbmcgZGlyZWN0aW9uCiAgICAgICAgICAgICAgICB2YXIgaXNfdmVydGljYWwgPSAoX2RpcmVjdGlvbiA9PSAndXAnIHx8IF9kaXJlY3Rpb24gPT0gJ2Rvd24nKTsKICAgICAgICAgICAgICAgIGlmKCgoaXNfdmVydGljYWwgJiYgIW9wdGlvbnMuZHJhZ192ZXJ0aWNhbCkgfHwgKCFpc192ZXJ0aWNhbCAmJiAhb3B0aW9ucy5kcmFnX2hvcml6b250YWwpKQogICAgICAgICAgICAgICAgICAgICYmIChfZGlzdGFuY2UgPiBvcHRpb25zLmRyYWdfbWluX2Rpc3RhbmNlKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBfZ2VzdHVyZSA9ICdkcmFnJzsKCiAgICAgICAgICAgICAgICB2YXIgcG9zaXRpb24gPSB7IHg6IF9wb3MubW92ZVswXS54IC0gX29mZnNldC5sZWZ0LAogICAgICAgICAgICAgICAgICAgIHk6IF9wb3MubW92ZVswXS55IC0gX29mZnNldC50b3AgfTsKCiAgICAgICAgICAgICAgICB2YXIgZXZlbnRfb2JqID0gewogICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQgICA6IGV2ZW50LAogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICAgICAgICA6IHBvc2l0aW9uLAogICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiAgICAgICA6IF9kaXJlY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2UgICAgICAgIDogX2Rpc3RhbmNlLAogICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlWCAgICAgICA6IF9kaXN0YW5jZV94LAogICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlWSAgICAgICA6IF9kaXN0YW5jZV95LAogICAgICAgICAgICAgICAgICAgIGFuZ2xlICAgICAgICAgICA6IF9hbmdsZQogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAvLyBvbiB0aGUgZmlyc3QgdGltZSB0cmlnZ2VyIHRoZSBzdGFydCBldmVudAogICAgICAgICAgICAgICAgaWYoX2ZpcnN0KSB7CiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCJkcmFnc3RhcnQiLCBldmVudF9vYmopOwoKICAgICAgICAgICAgICAgICAgICBfZmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBub3JtYWwgc2xpZGUgZXZlbnQKICAgICAgICAgICAgICAgIHRyaWdnZXJFdmVudCgiZHJhZyIsIGV2ZW50X29iaik7CgogICAgICAgICAgICAgICAgY2FuY2VsRXZlbnQoZXZlbnQpOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCgogICAgICAgIC8vIHRyYW5zZm9ybSBnZXN0dXJlCiAgICAgICAgLy8gZmlyZWQgb24gdG91Y2htb3ZlCiAgICAgICAgdHJhbnNmb3JtIDogZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgewogICAgICAgICAgICBpZihvcHRpb25zLnRyYW5zZm9ybSkgewogICAgICAgICAgICAgICAgdmFyIHNjYWxlID0gZXZlbnQuc2NhbGUgfHwgMTsKICAgICAgICAgICAgICAgIHZhciByb3RhdGlvbiA9IGV2ZW50LnJvdGF0aW9uIHx8IDA7CgogICAgICAgICAgICAgICAgaWYoY291bnRGaW5nZXJzKGV2ZW50KSAhPSAyKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKF9nZXN0dXJlICE9ICdkcmFnJyAmJgogICAgICAgICAgICAgICAgICAgIChfZ2VzdHVyZSA9PSAndHJhbnNmb3JtJyB8fCBNYXRoLmFicygxLXNjYWxlKSA+IG9wdGlvbnMuc2NhbGVfdHJlc2hvbGQKICAgICAgICAgICAgICAgICAgICAgICAgfHwgTWF0aC5hYnMocm90YXRpb24pID4gb3B0aW9ucy5yb3RhdGlvbl90cmVzaG9sZCkpIHsKICAgICAgICAgICAgICAgICAgICBfZ2VzdHVyZSA9ICd0cmFuc2Zvcm0nOwoKICAgICAgICAgICAgICAgICAgICBfcG9zLmNlbnRlciA9IHsgIHg6ICgoX3Bvcy5tb3ZlWzBdLnggKyBfcG9zLm1vdmVbMV0ueCkgLyAyKSAtIF9vZmZzZXQubGVmdCwKICAgICAgICAgICAgICAgICAgICAgICAgeTogKChfcG9zLm1vdmVbMF0ueSArIF9wb3MubW92ZVsxXS55KSAvIDIpIC0gX29mZnNldC50b3AgfTsKCiAgICAgICAgICAgICAgICAgICAgdmFyIGV2ZW50X29iaiA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudCAgIDogZXZlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICAgICAgICA6IF9wb3MuY2VudGVyLAogICAgICAgICAgICAgICAgICAgICAgICBzY2FsZSAgICAgICAgICAgOiBzY2FsZSwKICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gICAgICAgIDogcm90YXRpb24KICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAvLyBvbiB0aGUgZmlyc3QgdGltZSB0cmlnZ2VyIHRoZSBzdGFydCBldmVudAogICAgICAgICAgICAgICAgICAgIGlmKF9maXJzdCkgewogICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyRXZlbnQoInRyYW5zZm9ybXN0YXJ0IiwgZXZlbnRfb2JqKTsKICAgICAgICAgICAgICAgICAgICAgICAgX2ZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyRXZlbnQoInRyYW5zZm9ybSIsIGV2ZW50X29iaik7CgogICAgICAgICAgICAgICAgICAgIGNhbmNlbEV2ZW50KGV2ZW50KTsKCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9LAoKCiAgICAgICAgLy8gdGFwIGFuZCBkb3VibGUgdGFwIGdlc3R1cmUKICAgICAgICAvLyBmaXJlZCBvbiB0b3VjaGVuZAogICAgICAgIHRhcCA6IGZ1bmN0aW9uKGV2ZW50KQogICAgICAgIHsKICAgICAgICAgICAgLy8gY29tcGFyZSB0aGUga2luZCBvZiBnZXN0dXJlIGJ5IHRpbWUKICAgICAgICAgICAgdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICB2YXIgdG91Y2hfdGltZSA9IG5vdyAtIF90b3VjaF9zdGFydF90aW1lOwoKICAgICAgICAgICAgLy8gZG9udCBmaXJlIHdoZW4gaG9sZCBpcyBmaXJlZAogICAgICAgICAgICBpZihvcHRpb25zLmhvbGQgJiYgIShvcHRpb25zLmhvbGQgJiYgb3B0aW9ucy5ob2xkX3RpbWVvdXQgPiB0b3VjaF90aW1lKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyB3aGVuIHByZXZpb3VzIGV2ZW50IHdhcyB0YXAgYW5kIHRoZSB0YXAgd2FzIG1heF9pbnRlcnZhbCBtcyBhZ28KICAgICAgICAgICAgdmFyIGlzX2RvdWJsZV90YXAgPSAoZnVuY3Rpb24oKXsKICAgICAgICAgICAgICAgIGlmIChfcHJldl90YXBfcG9zICYmIG9wdGlvbnMudGFwX2RvdWJsZSAmJiBfcHJldl9nZXN0dXJlID09ICd0YXAnICYmIChfdG91Y2hfc3RhcnRfdGltZSAtIF9wcmV2X3RhcF9lbmRfdGltZSkgPCBvcHRpb25zLnRhcF9tYXhfaW50ZXJ2YWwpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgeF9kaXN0YW5jZSA9IE1hdGguYWJzKF9wcmV2X3RhcF9wb3NbMF0ueCAtIF9wb3Muc3RhcnRbMF0ueCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIHlfZGlzdGFuY2UgPSBNYXRoLmFicyhfcHJldl90YXBfcG9zWzBdLnkgLSBfcG9zLnN0YXJ0WzBdLnkpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiAoX3ByZXZfdGFwX3BvcyAmJiBfcG9zLnN0YXJ0ICYmIE1hdGgubWF4KHhfZGlzdGFuY2UsIHlfZGlzdGFuY2UpIDwgb3B0aW9ucy50YXBfZG91YmxlX2Rpc3RhbmNlKTsKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pKCk7CgogICAgICAgICAgICBpZihpc19kb3VibGVfdGFwKSB7CiAgICAgICAgICAgICAgICBfZ2VzdHVyZSA9ICdkb3VibGVfdGFwJzsKICAgICAgICAgICAgICAgIF9wcmV2X3RhcF9lbmRfdGltZSA9IG51bGw7CgogICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCJkb3VibGV0YXAiLCB7CiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudCAgIDogZXZlbnQsCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gICAgICAgIDogX3Bvcy5zdGFydAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBjYW5jZWxFdmVudChldmVudCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNpbmdsZSB0YXAgaXMgc2luZ2xlIHRvdWNoCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgX2dlc3R1cmUgPSAndGFwJzsKICAgICAgICAgICAgICAgIF9wcmV2X3RhcF9lbmRfdGltZSA9IG5vdzsKICAgICAgICAgICAgICAgIF9wcmV2X3RhcF9wb3MgPSBfcG9zLnN0YXJ0OwoKICAgICAgICAgICAgICAgIGlmKG9wdGlvbnMudGFwKSB7CiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCJ0YXAiLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQgICA6IGV2ZW50LAogICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiAgICAgICAgOiBfcG9zLnN0YXJ0CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgY2FuY2VsRXZlbnQoZXZlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0KCiAgICB9OwoKCiAgICBmdW5jdGlvbiBoYW5kbGVFdmVudHMoZXZlbnQpCiAgICB7CiAgICAgICAgc3dpdGNoKGV2ZW50LnR5cGUpCiAgICAgICAgewogICAgICAgICAgICBjYXNlICdtb3VzZWRvd24nOgogICAgICAgICAgICBjYXNlICd0b3VjaHN0YXJ0JzoKICAgICAgICAgICAgICAgIF9wb3Muc3RhcnQgPSBnZXRYWWZyb21FdmVudChldmVudCk7CiAgICAgICAgICAgICAgICBfdG91Y2hfc3RhcnRfdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgX2ZpbmdlcnMgPSBjb3VudEZpbmdlcnMoZXZlbnQpOwogICAgICAgICAgICAgICAgX2ZpcnN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF9ldmVudF9zdGFydCA9IGV2ZW50OwoKICAgICAgICAgICAgICAgIC8vIGJvcnJvd2VkIGZyb20ganF1ZXJ5IG9mZnNldCBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9ibG9iL21hc3Rlci9zcmMvb2Zmc2V0LmpzCiAgICAgICAgICAgICAgICB2YXIgYm94ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgICAgIHZhciBjbGllbnRUb3AgID0gZWxlbWVudC5jbGllbnRUb3AgIHx8IGRvY3VtZW50LmJvZHkuY2xpZW50VG9wICB8fCAwOwogICAgICAgICAgICAgICAgdmFyIGNsaWVudExlZnQgPSBlbGVtZW50LmNsaWVudExlZnQgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRMZWZ0IHx8IDA7CiAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsVG9wICA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBlbGVtZW50LnNjcm9sbFRvcCAgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7CiAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsTGVmdCA9IHdpbmRvdy5wYWdlWE9mZnNldCB8fCBlbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0OwoKICAgICAgICAgICAgICAgIF9vZmZzZXQgPSB7CiAgICAgICAgICAgICAgICAgICAgdG9wOiBib3gudG9wICsgc2Nyb2xsVG9wIC0gY2xpZW50VG9wLAogICAgICAgICAgICAgICAgICAgIGxlZnQ6IGJveC5sZWZ0ICsgc2Nyb2xsTGVmdCAtIGNsaWVudExlZnQKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgX21vdXNlZG93biA9IHRydWU7CgogICAgICAgICAgICAgICAgLy8gaG9sZCBnZXN0dXJlCiAgICAgICAgICAgICAgICBnZXN0dXJlcy5ob2xkKGV2ZW50KTsKCiAgICAgICAgICAgICAgICBpZihvcHRpb25zLnByZXZlbnRfZGVmYXVsdCkgewogICAgICAgICAgICAgICAgICAgIGNhbmNlbEV2ZW50KGV2ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbW91c2Vtb3ZlJzoKICAgICAgICAgICAgY2FzZSAndG91Y2htb3ZlJzoKICAgICAgICAgICAgICAgIGlmKCFfbW91c2Vkb3duKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX2V2ZW50X21vdmUgPSBldmVudDsKICAgICAgICAgICAgICAgIF9wb3MubW92ZSA9IGdldFhZZnJvbUV2ZW50KGV2ZW50KTsKCiAgICAgICAgICAgICAgICBpZighZ2VzdHVyZXMudHJhbnNmb3JtKGV2ZW50KSkgewogICAgICAgICAgICAgICAgICAgIGdlc3R1cmVzLmRyYWcoZXZlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdtb3VzZXVwJzoKICAgICAgICAgICAgY2FzZSAnbW91c2VvdXQnOgogICAgICAgICAgICBjYXNlICd0b3VjaGNhbmNlbCc6CiAgICAgICAgICAgIGNhc2UgJ3RvdWNoZW5kJzoKICAgICAgICAgICAgICAgIGlmKCFfbW91c2Vkb3duIHx8IChfZ2VzdHVyZSAhPSAndHJhbnNmb3JtJyAmJiBldmVudC50b3VjaGVzICYmIGV2ZW50LnRvdWNoZXMubGVuZ3RoID4gMCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgX21vdXNlZG93biA9IGZhbHNlOwogICAgICAgICAgICAgICAgX2V2ZW50X2VuZCA9IGV2ZW50OwoKICAgICAgICAgICAgICAgIC8vIGRyYWcgZ2VzdHVyZQogICAgICAgICAgICAgICAgLy8gZHJhZ3N0YXJ0IGlzIHRyaWdnZXJlZCwgc28gZHJhZ2VuZCBpcyBwb3NzaWJsZQogICAgICAgICAgICAgICAgaWYoX2dlc3R1cmUgPT0gJ2RyYWcnKSB7CiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV2ZW50KCJkcmFnZW5kIiwgewogICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50ICAgOiBldmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uICAgICAgIDogX2RpcmVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2UgICAgICAgIDogX2Rpc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgICBhbmdsZSAgICAgICAgICAgOiBfYW5nbGUKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyB0cmFuc2Zvcm0KICAgICAgICAgICAgICAgIC8vIHRyYW5zZm9ybXN0YXJ0IGlzIHRyaWdnZXJlZCwgc28gdHJhbnNmb3JtZWQgaXMgcG9zc2libGUKICAgICAgICAgICAgICAgIGVsc2UgaWYoX2dlc3R1cmUgPT0gJ3RyYW5zZm9ybScpIHsKICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyRXZlbnQoInRyYW5zZm9ybWVuZCIsIHsKICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudCAgIDogZXZlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uICAgICAgICA6IF9wb3MuY2VudGVyLAogICAgICAgICAgICAgICAgICAgICAgICBzY2FsZSAgICAgICAgICAgOiBldmVudC5zY2FsZSwKICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb24gICAgICAgIDogZXZlbnQucm90YXRpb24KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGdlc3R1cmVzLnRhcChfZXZlbnRfc3RhcnQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIF9wcmV2X2dlc3R1cmUgPSBfZ2VzdHVyZTsKCiAgICAgICAgICAgICAgICAvLyByZXNldCB2YXJzCiAgICAgICAgICAgICAgICByZXNldCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKCiAgICAvLyBiaW5kIGV2ZW50cyBmb3IgdG91Y2ggZGV2aWNlcwogICAgLy8gZXhjZXB0IGZvciB3aW5kb3dzIHBob25lIDcuNSwgaXQgZG9lc250IHN1cHBvcnQgdG91Y2ggZXZlbnRzLi4hCiAgICBpZignb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpIHsKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBoYW5kbGVFdmVudHMsIGZhbHNlKTsKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIGhhbmRsZUV2ZW50cywgZmFsc2UpOwogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCBoYW5kbGVFdmVudHMsIGZhbHNlKTsKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIiwgaGFuZGxlRXZlbnRzLCBmYWxzZSk7CiAgICB9CiAgICAvLyBmb3Igbm9uLXRvdWNoCiAgICBlbHNlIHsKCiAgICAgICAgaWYoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKXsgLy8gcHJldmVudCBvbGQgSUUgZXJyb3JzCiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgaWYoIWlzSW5zaWRlSGFtbWVyKGVsZW1lbnQsIGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXZlbnRzKGV2ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLCBoYW5kbGVFdmVudHMsIGZhbHNlKTsKICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCBoYW5kbGVFdmVudHMsIGZhbHNlKTsKICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBoYW5kbGVFdmVudHMsIGZhbHNlKTsKCiAgICAgICAgICAgIC8vIGV2ZW50cyBmb3Igb2xkZXIgSUUKICAgICAgICB9ZWxzZSBpZihkb2N1bWVudC5hdHRhY2hFdmVudCl7CiAgICAgICAgICAgIGVsZW1lbnQuYXR0YWNoRXZlbnQoIm9ubW91c2VvdXQiLCBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICAgICAgaWYoIWlzSW5zaWRlSGFtbWVyKGVsZW1lbnQsIGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7CiAgICAgICAgICAgICAgICAgICAgaGFuZGxlRXZlbnRzKGV2ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwgZmFsc2UpOwogICAgICAgICAgICBlbGVtZW50LmF0dGFjaEV2ZW50KCJvbm1vdXNldXAiLCBoYW5kbGVFdmVudHMpOwogICAgICAgICAgICBlbGVtZW50LmF0dGFjaEV2ZW50KCJvbm1vdXNlZG93biIsIGhhbmRsZUV2ZW50cyk7CiAgICAgICAgICAgIGVsZW1lbnQuYXR0YWNoRXZlbnQoIm9ubW91c2Vtb3ZlIiwgaGFuZGxlRXZlbnRzKTsKICAgICAgICB9CiAgICB9CgoKICAgIC8qKgogICAgICogZmluZCBpZiBlbGVtZW50IGlzIChpbnNpZGUpIGdpdmVuIHBhcmVudCBlbGVtZW50CiAgICAgKiBAcGFyYW0gICBvYmplY3QgIGVsZW1lbnQKICAgICAqIEBwYXJhbSAgIG9iamVjdCAgcGFyZW50CiAgICAgKiBAcmV0dXJuICBib29sICAgIGluc2lkZQogICAgICovCiAgICBmdW5jdGlvbiBpc0luc2lkZUhhbW1lcihwYXJlbnQsIGNoaWxkKSB7CiAgICAgICAgLy8gZ2V0IHJlbGF0ZWQgdGFyZ2V0IGZvciBJRQogICAgICAgIGlmKCFjaGlsZCAmJiB3aW5kb3cuZXZlbnQgJiYgd2luZG93LmV2ZW50LnRvRWxlbWVudCl7CiAgICAgICAgICAgIGNoaWxkID0gd2luZG93LmV2ZW50LnRvRWxlbWVudDsKICAgICAgICB9CgogICAgICAgIGlmKHBhcmVudCA9PT0gY2hpbGQpewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIC8vIGxvb3Agb3ZlciBwYXJlbnROb2RlcyBvZiBjaGlsZCB1bnRpbCB3ZSBmaW5kIGhhbW1lciBlbGVtZW50CiAgICAgICAgaWYoY2hpbGQpewogICAgICAgICAgICB2YXIgbm9kZSA9IGNoaWxkLnBhcmVudE5vZGU7CiAgICAgICAgICAgIHdoaWxlKG5vZGUgIT09IG51bGwpewogICAgICAgICAgICAgICAgaWYobm9kZSA9PT0gcGFyZW50KXsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCgogICAgLyoqCiAgICAgKiBtZXJnZSAyIG9iamVjdHMgaW50byBhIG5ldyBvYmplY3QKICAgICAqIEBwYXJhbSAgIG9iamVjdCAgb2JqMQogICAgICogQHBhcmFtICAgb2JqZWN0ICBvYmoyCiAgICAgKiBAcmV0dXJuICBvYmplY3QgIG1lcmdlZCBvYmplY3QKICAgICAqLwogICAgZnVuY3Rpb24gbWVyZ2VPYmplY3Qob2JqMSwgb2JqMikgewogICAgICAgIHZhciBvdXRwdXQgPSB7fTsKCiAgICAgICAgaWYoIW9iajIpIHsKICAgICAgICAgICAgcmV0dXJuIG9iajE7CiAgICAgICAgfQoKICAgICAgICBmb3IgKHZhciBwcm9wIGluIG9iajEpIHsKICAgICAgICAgICAgaWYgKHByb3AgaW4gb2JqMikgewogICAgICAgICAgICAgICAgb3V0cHV0W3Byb3BdID0gb2JqMltwcm9wXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG91dHB1dFtwcm9wXSA9IG9iajFbcHJvcF07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgIH0KCiAgICBmdW5jdGlvbiBpc0Z1bmN0aW9uKCBvYmogKXsKICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKCBvYmogKSA9PSAiW29iamVjdCBGdW5jdGlvbl0iOwogICAgfQp9"></script>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKHdpbmRvdykgewoKdmFyIE9SSUdJTl8gPSBsb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyBsb2NhdGlvbi5ob3N0OwoKLy8gY2hlY2sgZm9yIGxvY2FsIHN0b3JhZ2UKdmFyIGhhdmVMb2NhbFN0b3JhZ2UgPSAoZnVuY3Rpb24oKSB7CiAgdmFyIG1vZCA9ICdtb2QnOwogIHRyeSB7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShtb2QsIG1vZCk7CiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShtb2QpOwogICAgcmV0dXJuIHRydWU7CiAgfSBjYXRjaChlKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQp9KCkpOwoKZnVuY3Rpb24gU2xpZGVDb250cm9sbGVyKCkgewogIHRoaXMucG9wdXAgPSBudWxsOwogIHRoaXMuaXNQb3B1cCA9IHdpbmRvdy5vcGVuZXI7CgogIGlmICh0aGlzLnNldHVwRG9uZSgpKSB7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMub25NZXNzYWdlXy5iaW5kKHRoaXMpLCBmYWxzZSk7CgogICAgLy8gQ2xvc2UgcG9wdXBzIGlmIHdlIHJlbG9hZCB0aGUgbWFpbiB3aW5kb3cuCiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmVmb3JldW5sb2FkJywgZnVuY3Rpb24oZSkgewogICAgICBpZiAodGhpcy5wb3B1cCkgewogICAgICAgIHRoaXMucG9wdXAuY2xvc2UoKTsKICAgICAgfQogICAgfS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgfQp9CgpTbGlkZUNvbnRyb2xsZXIuUFJFU0VOVEVSX01PREVfUEFSQU0gPSAncHJlc2VudG1lJzsKClNsaWRlQ29udHJvbGxlci5wcm90b3R5cGUuc2V0dXBEb25lID0gZnVuY3Rpb24oKSB7CiAgdmFyIHBhcmFtcyA9IGxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkuc3BsaXQoJyYnKS5tYXAoZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5zcGxpdCgnPScpOwogIH0pOwoKICB2YXIgcHJlc2VudE1lID0gbnVsbDsKICBmb3IgKHZhciBpID0gMCwgcGFyYW07IHBhcmFtID0gcGFyYW1zW2ldOyArK2kpIHsKICAgIGlmIChwYXJhbVswXS50b0xvd2VyQ2FzZSgpID09IFNsaWRlQ29udHJvbGxlci5QUkVTRU5URVJfTU9ERV9QQVJBTSkgewogICAgICBwcmVzZW50TWUgPSBwYXJhbVsxXSA9PSAndHJ1ZSc7CiAgICAgIGJyZWFrOwogICAgfQogIH0KCiAgaWYgKHByZXNlbnRNZSAhPT0gbnVsbCkgewogICAgaWYgKGhhdmVMb2NhbFN0b3JhZ2UpCiAgICAgIGxvY2FsU3RvcmFnZS5FTkFCTEVfUFJFU0VOVE9SX01PREUgPSBwcmVzZW50TWU7CiAgICAvLyBUT0RPOiB1c2Ugd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlIHRvIHVwZGF0ZSBVUkwgaW5zdGVhZCBvZiB0aGUgcmVkaXJlY3QuCiAgICBpZiAod2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKSB7CiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgJycsIGxvY2F0aW9uLnBhdGhuYW1lKTsKICAgIH0gZWxzZSB7CiAgICAgIGxvY2F0aW9uLnJlcGxhY2UobG9jYXRpb24ucGF0aG5hbWUpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfQoKICB2YXIgZW5hYmxlUHJlc2VudGVyTW9kZSA9IGhhdmVMb2NhbFN0b3JhZ2UgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0VOQUJMRV9QUkVTRU5UT1JfTU9ERScpOwogIGlmIChlbmFibGVQcmVzZW50ZXJNb2RlICYmIEpTT04ucGFyc2UoZW5hYmxlUHJlc2VudGVyTW9kZSkpIHsKICAgIC8vIE9ubHkgb3BlbiBwb3B1cCBmcm9tIG1haW4gZGVjay4gRG9uJ3Qgd2FudCByZWN1cnNpdmUgcG9wdXAgb3BlbmluZyEKICAgIGlmICghdGhpcy5pc1BvcHVwKSB7CiAgICAgIHZhciBvcHRzID0gJ21lbnViYXI9bm8sbG9jYXRpb249eWVzLHJlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz1ubyxzdGF0dXM9bm8nOwogICAgICB0aGlzLnBvcHVwID0gd2luZG93Lm9wZW4obG9jYXRpb24uaHJlZiwgJ215d2luZG93Jywgb3B0cyk7CgogICAgICAvLyBMb2FkaW5nIGluIHRoZSBwb3B1cD8gVHJpZ2dlciB0aGUgaG90a2V5IGZvciB0dXJuaW5nIHByZXNlbnRlciBtb2RlIG9uLgogICAgICB0aGlzLnBvcHVwLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGV2dCA9IHRoaXMucG9wdXAuZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7CiAgICAgICAgZXZ0LmluaXRFdmVudCgna2V5ZG93bicsIHRydWUsIHRydWUpOwogICAgICAgIGV2dC5rZXlDb2RlID0gJ1AnLmNoYXJDb2RlQXQoMCk7CiAgICAgICAgdGhpcy5wb3B1cC5kb2N1bWVudC5kaXNwYXRjaEV2ZW50KGV2dCk7CiAgICAgICAgLy8gdGhpcy5wb3B1cC5kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3dpdGgtbm90ZXMnKTsKICAgICAgICAvLyBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3BvcHVwJyk7CiAgICAgIH0uYmluZCh0aGlzKSwgZmFsc2UpOwogICAgfQogIH0KCiAgcmV0dXJuIHRydWU7Cn0KClNsaWRlQ29udHJvbGxlci5wcm90b3R5cGUub25NZXNzYWdlXyA9IGZ1bmN0aW9uKGUpIHsKICB2YXIgZGF0YSA9IGUuZGF0YTsKCiAgLy8gUmVzdHJpY3QgbWVzc2FnZXMgdG8gYmVpbmcgZnJvbSB0aGlzIG9yaWdpbi4gQWxsb3cgbG9jYWwgZGV2ZWxvcG1ldAogIC8vIGZyb20gZmlsZTovLyB0aG91Z2guCiAgLy8gVE9ETzogSXQgd291bGQgYmUgZG9wZSBpZiBGRiBpbXBsZW1lbnRlZCBsb2NhdGlvbi5vcmlnaW4hCiAgaWYgKGUub3JpZ2luICE9IE9SSUdJTl8gJiYgT1JJR0lOXy5pbmRleE9mKCdmaWxlOi8vJykgIT0gMCkgewogICAgLy8gSWdub3JlIG1lc3NhZ2VzIGZyb20gdW5yZWNvZ25pemVkIG9yaWdpbnMKICAgIHJldHVybjsKICB9CgogIC8vIGlmIChlLnNvdXJjZS5sb2NhdGlvbi5ob3N0bmFtZSAhPSAnbG9jYWxob3N0JykgewogIC8vICAgYWxlcnQoJ1NvbWVvbmUgdHJpZWQgdG8gcG9zdE1lc3NhZ2UgZnJvbSBhbiB1bmtub3duIG9yaWdpbicpOwogIC8vICAgcmV0dXJuOwogIC8vIH0KCiAgaWYgKCdrZXlDb2RlJyBpbiBkYXRhKSB7CiAgICB2YXIgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50Jyk7CiAgICBldnQuaW5pdEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwgdHJ1ZSk7CiAgICBldnQua2V5Q29kZSA9IGRhdGEua2V5Q29kZTsKICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQoZXZ0KTsKICB9Cn07CgpTbGlkZUNvbnRyb2xsZXIucHJvdG90eXBlLnNlbmRNc2cgPSBmdW5jdGlvbihtc2cpIHsKICAvLyAvLyBTZW5kIG1lc3NhZ2UgdG8gcG9wdXAgd2luZG93LgogIC8vIGlmICh0aGlzLnBvcHVwKSB7CiAgLy8gICB0aGlzLnBvcHVwLnBvc3RNZXNzYWdlKG1zZywgT1JJR0lOXyk7CiAgLy8gfQoKICAvLyBTZW5kIG1lc3NhZ2UgdG8gbWFpbiB3aW5kb3cuCiAgaWYgKHRoaXMuaXNQb3B1cCkgewogICAgLy8gVE9ETzogSXQgd291bGQgYmUgZG9wZSBpZiBGRiBpbXBsZW1lbnRlZCBsb2NhdGlvbi5vcmlnaW4uCiAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKG1zZywgJyonKTsKICB9Cn07Cgp3aW5kb3cuU2xpZGVDb250cm9sbGVyID0gU2xpZGVDb250cm9sbGVyOwoKfSkod2luZG93KTsKCg=="></script>
<script src="data:application/x-javascript;base64,LyoqCiAqIEBhdXRob3JzIEx1a2UgTWFoZQogKiBAYXV0aG9ycyBFcmljIEJpZGVsbWFuCiAqIEBmaWxlb3ZlcnZpZXcgVE9ETwogKi8KZG9jdW1lbnQuY2FuY2VsRnVsbFNjcmVlbiA9IGRvY3VtZW50LndlYmtpdENhbmNlbEZ1bGxTY3JlZW4gfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW47CgovKioKICogQGNvbnN0cnVjdG9yCiAqLwpmdW5jdGlvbiBTbGlkZURlY2soZWwpIHsKICB0aGlzLmN1clNsaWRlXyA9IDA7CiAgdGhpcy5wcmV2U2xpZGVfID0gMDsKICB0aGlzLmNvbmZpZ18gPSBudWxsOwogIHRoaXMuY29udGFpbmVyID0gZWwgfHwgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2xpZGVzJyk7CiAgdGhpcy5zbGlkZXMgPSBbXTsKICB0aGlzLmNvbnRyb2xsZXIgPSBudWxsOwoKICB0aGlzLmdldEN1cnJlbnRTbGlkZUZyb21IYXNoXygpOwoKICAvLyBDYWxsIHRoaXMgZXhwbGljaXRseS4gTW9kZXJuaXpyLmxvYWQgd29uJ3QgYmUgZG9uZSB1bnRpbCBhZnRlciBET00gbG9hZC4KICB0aGlzLm9uRG9tTG9hZGVkXy5iaW5kKHRoaXMpKCk7Cn0KCi8qKgogKiBAY29uc3QKICogQHByaXZhdGUKICovClNsaWRlRGVjay5wcm90b3R5cGUuU0xJREVfQ0xBU1NFU18gPSBbCiAgJ2Zhci1wYXN0JywgJ3Bhc3QnLCAnY3VycmVudCcsICduZXh0JywgJ2Zhci1uZXh0J107CgovKioKICogQGNvbnN0CiAqIEBwcml2YXRlCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLkNTU19ESVJfID0gJ3RoZW1lL2Nzcy8nOwoKLyoqCiAqIEBwcml2YXRlCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmdldEN1cnJlbnRTbGlkZUZyb21IYXNoXyA9IGZ1bmN0aW9uKCkgewogIHZhciBzbGlkZU5vID0gcGFyc2VJbnQoZG9jdW1lbnQubG9jYXRpb24uaGFzaC5zdWJzdHIoMSkpOwoKICBpZiAoc2xpZGVObykgewogICAgdGhpcy5jdXJTbGlkZV8gPSBzbGlkZU5vIC0gMTsKICB9IGVsc2UgewogICAgdGhpcy5jdXJTbGlkZV8gPSAwOwogIH0KfTsKCi8qKgogKiBAcGFyYW0ge251bWJlcn0gc2xpZGVObwogKi8KU2xpZGVEZWNrLnByb3RvdHlwZS5sb2FkU2xpZGUgPSBmdW5jdGlvbihzbGlkZU5vKSB7CiAgaWYgKHNsaWRlTm8pIHsKICAgIHRoaXMuY3VyU2xpZGVfID0gc2xpZGVObyAtIDE7CiAgICB0aGlzLnVwZGF0ZVNsaWRlc18oKTsKICB9Cn07CgovKioKICogQHByaXZhdGUKICovClNsaWRlRGVjay5wcm90b3R5cGUub25Eb21Mb2FkZWRfID0gZnVuY3Rpb24oZSkgewogIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbG9hZGVkJyk7IC8vIEFkZCBsb2FkZWQgY2xhc3MgZm9yIHRlbXBsYXRlcyB0byB1c2UuCgogIHRoaXMuc2xpZGVzID0gdGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgnc2xpZGU6bm90KFtoaWRkZW5dKTpub3QoLmhpZGRlbik6bm90KC5iYWNrZHJvcCknKTsKCiAgLy8gSWYgd2UncmUgb24gYSBzbWFydHBob25lLCBhcHBseSBzcGVjaWFsIHNhdWNlLgogIGlmIChNb2Rlcm5penIubXEoJ29ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDogNDgwcHgpJykpIHsKICAgIC8vIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKICAgIC8vIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JzsKICAgIC8vIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnOwogICAgLy8gc3R5bGUuaHJlZiA9IHRoaXMuQ1NTX0RJUl8gKyAncGhvbmUuY3NzJzsKICAgIC8vIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKS5hcHBlbmRDaGlsZChzdHlsZSk7CgogICAgLy8gTm8gbmVlZCBmb3Igd2lkZXNjcmVlbiBsYXlvdXQgb24gYSBwaG9uZS4KICAgIHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2xheW91dC13aWRlc2NyZWVuJyk7CiAgfQoKICB0aGlzLmxvYWRDb25maWdfKFNMSURFX0NPTkZJRyk7CiAgdGhpcy5hZGRFdmVudExpc3RlbmVyc18oKTsKICB0aGlzLnVwZGF0ZVNsaWRlc18oKTsKCiAgLy8gQWRkIHNsaWRlIG51bWJlcnMgYW5kIHRvdGFsIHNsaWRlIGNvdW50IG1ldGFkYXRhIHRvIGVhY2ggc2xpZGUuCiAgdmFyIHRoYXQgPSB0aGlzOwogIGZvciAodmFyIGkgPSAwLCBzbGlkZTsgc2xpZGUgPSB0aGlzLnNsaWRlc1tpXTsgKytpKSB7CiAgICBzbGlkZS5kYXRhc2V0LnNsaWRlTnVtID0gaSArIDE7CiAgICBzbGlkZS5kYXRhc2V0LnRvdGFsU2xpZGVzID0gdGhpcy5zbGlkZXMubGVuZ3RoOwoKICAgIHNsaWRlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ292ZXJ2aWV3JykpIHsKICAgICAgICB0aGF0LmxvYWRTbGlkZSh0aGlzLmRhdGFzZXQuc2xpZGVOdW0pOwogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgIHRoYXQudG9nZ2xlT3ZlcnZpZXcoKTsKICAgICAgICB9LCA1MDApOwogICAgICB9CiAgICB9LCBmYWxzZSk7CiAgfQoKICAvLyBOb3RlOiB0aGlzIG5lZWRzIHRvIGNvbWUgYWZ0ZXIgYWRkRXZlbnRMaXN0ZW5lcnNfKCksIHdoaWNoIGFkZHMgYQogIC8vICdrZXlkb3duJyBsaXN0ZW5lciB0aGF0IHRoaXMgY29udHJvbGxlciByZWxpZXMgb24uCgogIC8vIE1vZGVybml6ci50b3VjaCBpc24ndCBhIHN1ZmZpY2llbnQgY2hlY2sgZm9yIGRldmljZXMgdGhhdCBzdXBwb3J0IGJvdGgKICAvLyB0b3VjaCBhbmQgbW91c2UuIENyZWF0ZSB0aGUgY29udHJvbGxlciBpbiBhbGwgY2FzZXMuCiAgLy8gLy8gQWxzbywgbm8gbmVlZCB0byBzZXQgdGhpcyB1cCBpZiB3ZSdyZSBvbiBtb2JpbGUuCiAgLy8gaWYgKCFNb2Rlcm5penIudG91Y2gpIHsKICAgIHRoaXMuY29udHJvbGxlciA9IG5ldyBTbGlkZUNvbnRyb2xsZXIodGhpcyk7CiAgICBpZiAodGhpcy5jb250cm9sbGVyLmlzUG9wdXApIHsKICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdwb3B1cCcpOwogICAgfQogIC8vfQp9OwoKLyoqCiAqIEBwcml2YXRlCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXJzXyA9IGZ1bmN0aW9uKCkgewogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLm9uQm9keUtleURvd25fLmJpbmQodGhpcyksIHRydWUpOwogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwb3BzdGF0ZScsIHRoaXMub25Qb3BTdGF0ZV8uYmluZCh0aGlzKSwgZmFsc2UpOwoKICAvLyB2YXIgdHJhbnNFbmRFdmVudE5hbWVzID0gewogIC8vICAgJ1dlYmtpdFRyYW5zaXRpb24nOiAnd2Via2l0VHJhbnNpdGlvbkVuZCcsCiAgLy8gICAnTW96VHJhbnNpdGlvbic6ICd0cmFuc2l0aW9uZW5kJywKICAvLyAgICdPVHJhbnNpdGlvbic6ICdvVHJhbnNpdGlvbkVuZCcsCiAgLy8gICAnbXNUcmFuc2l0aW9uJzogJ01TVHJhbnNpdGlvbkVuZCcsCiAgLy8gICAndHJhbnNpdGlvbic6ICd0cmFuc2l0aW9uZW5kJwogIC8vIH07CiAgLy8KICAvLyAvLyBGaW5kIHRoZSBjb3JyZWN0IHRyYW5zaXRpb25FbmQgdmVuZG9yIHByZWZpeC4KICAvLyB3aW5kb3cudHJhbnNFbmRFdmVudE5hbWUgPSB0cmFuc0VuZEV2ZW50TmFtZXNbCiAgLy8gICAgIE1vZGVybml6ci5wcmVmaXhlZCgndHJhbnNpdGlvbicpXTsKICAvLwogIC8vIC8vIFdoZW4gc2xpZGVzIGFyZSBkb25lIHRyYW5zaXRpb25pbmcsIGtpY2tvZmYgbG9hZGluZyBpZnJhbWVzLgogIC8vIC8vIE5vdGU6IHdlJ3JlIG9ubHkgbG9va2luZyBhdCBhIHNpbmdsZSB0cmFuc2l0aW9uIChvbiB0aGUgc2xpZGUpLiBUaGlzCiAgLy8gLy8gZG9lc24ndCBpbmNsdWRlIGF1dG9idWlsZHMgdGhlIHNsaWRlcyBtYXkgaGF2ZS4gQWxzbywgaWYgdGhlIHNsaWRlCiAgLy8gLy8gdHJhbnNpdGlvbnMgb24gbXVsdGlwbGUgcHJvcGVydGllcyAoZS5nLiBub3QganVzdCAnYWxsJyksIHRoaXMgZG9lc24ndAogIC8vIC8vIGhhbmRsZSB0aGF0IGNhc2UuCiAgLy8gdGhpcy5jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcih0cmFuc0VuZEV2ZW50TmFtZSwgZnVuY3Rpb24oZSkgewogIC8vICAgICB0aGlzLmVuYWJsZVNsaWRlRnJhbWVzXyh0aGlzLmN1clNsaWRlXyk7CiAgLy8gfS5iaW5kKHRoaXMpLCBmYWxzZSk7CgogIC8vIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NsaWRlZW50ZXInLCBmdW5jdGlvbihlKSB7CiAgLy8gICB2YXIgc2xpZGUgPSBlLnRhcmdldDsKICAvLyAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogIC8vICAgICB0aGlzLmVuYWJsZVNsaWRlRnJhbWVzXyhlLnNsaWRlTnVtYmVyKTsKICAvLyAgICAgdGhpcy5lbmFibGVTbGlkZUZyYW1lc18oZS5zbGlkZU51bWJlciArIDEpOwogIC8vICAgfS5iaW5kKHRoaXMpLCAzMDApOwogIC8vIH0uYmluZCh0aGlzKSwgZmFsc2UpOwp9OwoKLyoqCiAqIEBwcml2YXRlCiAqIEBwYXJhbSB7RXZlbnR9IGUgVGhlIHBvcCBldmVudC4KICovClNsaWRlRGVjay5wcm90b3R5cGUub25Qb3BTdGF0ZV8gPSBmdW5jdGlvbihlKSB7CiAgaWYgKGUuc3RhdGUgIT0gbnVsbCkgewogICAgdGhpcy5jdXJTbGlkZV8gPSBlLnN0YXRlOwogICAgdGhpcy51cGRhdGVTbGlkZXNfKHRydWUpOwogIH0KfTsKCi8qKgogKiBAcGFyYW0ge0V2ZW50fSBlCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLm9uQm9keUtleURvd25fID0gZnVuY3Rpb24oZSkgewoKICAvLyBEb24ndCBoYW5kbGUga2V5cyBpZiBhbiBpbnB1dCBvciB0ZXh0IGFyZWEgaXMgYWN0aXZlLiBEbyBzcGVjaWFsIGhhbmRsaW5nCiAgLy8gZm9yIHNlbGVjdGl6ZSBiZWNhdXNlIGl0IGtlZXBzIGZvY3VzIHdpdGhpbiBhbiBvZmZzY3JlZW4gdGV4dGJveCBldmVuCiAgLy8gd2hlbiBqdXN0IHRoZSBzZWxlY3QgY29udHJvbCBpcyBzaG93aW5nIC0tIGZvciBzZWxlY3RpemUgd2UgcmVmcmFpbiBmcm9tCiAgLy8gaGFuZGxpbmcga2V5cyBvbmx5IHdoZW4gdGhlIHRleHQgaW5wdXQgaXMgYWN0aXZlIG9yIHdoZW4gdGhlIHVwIG9yIGRvd24KICAvLyBhcnJvdyBrZXkgaXMgcHJlc3NlZCAod2hpY2ggaXMgdXNlZCB0byBvcGVuIHRoZSBsaXN0IGZyb20gdGhlIGtleWJvYXJkKQogIHZhciBwYXJlbnROb2RlID0gZS50YXJnZXQucGFyZW50Tm9kZSB8fCBlLnRhcmdldDsgLy8gaGFuZGxlIG5vIHBhcmVudAogIGlmIChwYXJlbnROb2RlLmNsYXNzTGlzdCAmJiBwYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucygnc2VsZWN0aXplLWlucHV0JykpIHsKICAgIGlmIChwYXJlbnROb2RlLmNsYXNzTGlzdC5jb250YWlucygnaW5wdXQtYWN0aXZlJykgfHwgIC8vIHRleHQgaW5wdXQgaXMgYWN0aXZlCiAgICAgICAoZS5rZXlDb2RlID09IDM4KSB8fCAoZS5rZXlDb2RlID09IDQwKSkgICAgICAgICAgICAvLyB1cCBvciBkb3duIGFycm93CiAgICAgIHJldHVybjsKICB9IGVsc2UgaWYgKC9eKGlucHV0fHRleHRhcmVhKSQvaS50ZXN0KGUudGFyZ2V0Lm5vZGVOYW1lKSB8fAogICAgICBlLnRhcmdldC5pc0NvbnRlbnRFZGl0YWJsZSkgewogICAgcmV0dXJuOwogIH0KCiAgLy8gRm9yd2FyZCBrZXlkb3ducyB0byB0aGUgbWFpbiBzbGlkZXMgaWYgd2UncmUgdGhlIHBvcHVwLgogIGlmICh0aGlzLmNvbnRyb2xsZXIgJiYgdGhpcy5jb250cm9sbGVyLmlzUG9wdXApIHsKICAgIHRoaXMuY29udHJvbGxlci5zZW5kTXNnKHtrZXlDb2RlOiBlLmtleUNvZGV9KTsKICB9CgogIHN3aXRjaCAoZS5rZXlDb2RlKSB7CiAgICBjYXNlIDEzOiAvLyBFbnRlcgogICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ292ZXJ2aWV3JykpIHsKICAgICAgICB0aGlzLnRvZ2dsZU92ZXJ2aWV3KCk7CiAgICAgIH0KICAgICAgYnJlYWs7CgogICAgY2FzZSAzOTogLy8gcmlnaHQgYXJyb3cKICAgIGNhc2UgMzI6IC8vIHNwYWNlCiAgICBjYXNlIDM0OiAvLyBQZ0RuCiAgICAgIHRoaXMubmV4dFNsaWRlKCk7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAzNzogLy8gbGVmdCBhcnJvdwogICAgY2FzZSA4OiAvLyBCYWNrc3BhY2UKICAgIGNhc2UgMzM6IC8vIFBnVXAKICAgICAgdGhpcy5wcmV2U2xpZGUoKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBicmVhazsKCiAgICBjYXNlIDQwOiAvLyBkb3duIGFycm93CiAgICAgIHRoaXMubmV4dFNsaWRlKCk7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSAzODogLy8gdXAgYXJyb3cKICAgICAgdGhpcy5wcmV2U2xpZGUoKTsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICBicmVhazsKCiAgICBjYXNlIDcyOiAvLyBIOiBUb2dnbGUgY29kZSBoaWdobGlnaHRpbmcKICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWdobGlnaHQtY29kZScpOwogICAgICBicmVhazsKCiAgICBjYXNlIDc5OiAvLyBPOiBUb2dnbGUgb3ZlcnZpZXcKICAgICAgdGhpcy50b2dnbGVPdmVydmlldygpOwogICAgICBicmVhazsKCiAgICBjYXNlIDgwOiAvLyBQCiAgICAgIGlmICh0aGlzLmNvbnRyb2xsZXIgJiYgdGhpcy5jb250cm9sbGVyLmlzUG9wdXApIHsKICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ3dpdGgtbm90ZXMnKTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2xsZXIgJiYgIXRoaXMuY29udHJvbGxlci5wb3B1cCkgewogICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZSgnd2l0aC1ub3RlcycpOwogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgODI6IC8vIFIKICAgICAgLy8gVE9ETzogaW1wbGVtZW50IHJlZnJlc2ggb24gbWFpbiBzbGlkZXMgd2hlbiBwb3B1cCBpcyByZWZyZXNoZWQuCiAgICAgIGJyZWFrOwoKICAgIGNhc2UgMjc6IC8vIEVTQzogSGlkZSBub3RlcyBhbmQgaGlnaGxpZ2h0aW5nCiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnd2l0aC1ub3RlcycpOwogICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZ2hsaWdodC1jb2RlJyk7CgogICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ292ZXJ2aWV3JykpIHsKICAgICAgICB0aGlzLnRvZ2dsZU92ZXJ2aWV3KCk7CiAgICAgIH0KICAgICAgYnJlYWs7CgogICAgY2FzZSA3MDogLy8gRjogVG9nZ2xlIGZ1bGxzY3JlZW4KICAgICAgIC8vIE9ubHkgcmVzcGVjdCAnZicgb24gYm9keS4gRG9uJ3Qgd2FudCB0byBjYXB0dXJlIGtleXMgZnJvbSBhbiA8aW5wdXQ+LgogICAgICAgLy8gQWxzbywgaWdub3JlIGJyb3dzZXIncyBmdWxsc2NyZWVuIHNob3J0Y3V0IChjbWQrc2hpZnQrZikgc28gd2UgZG9uJ3QKICAgICAgIC8vIGdldCB0cmFwcGVkIGluIGZ1bGxzY3JlZW4hCiAgICAgIGlmIChkb2N1bWVudC5jYW5jZWxGdWxsU2NyZWVuICE9PSB1bmRlZmluZWQgJiYgZS50YXJnZXQgPT0gZG9jdW1lbnQuYm9keSAmJiAhKGUuc2hpZnRLZXkgJiYgZS5tZXRhS2V5KSkgewogICAgICAgIGlmIChkb2N1bWVudC5tb3pGdWxsU2NyZWVuICE9PSB1bmRlZmluZWQgJiYgIWRvY3VtZW50Lm1vekZ1bGxTY3JlZW4pIHsKICAgICAgICAgIGRvY3VtZW50LmJvZHkubW96UmVxdWVzdEZ1bGxTY3JlZW4oRWxlbWVudC5BTExPV19LRVlCT0FSRF9JTlBVVCk7CiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC53ZWJraXRJc0Z1bGxTY3JlZW4gIT09IHVuZGVmaW5lZCAmJiAhZG9jdW1lbnQud2Via2l0SXNGdWxsU2NyZWVuKSB7CiAgICAgICAgICBkb2N1bWVudC5ib2R5LndlYmtpdFJlcXVlc3RGdWxsU2NyZWVuKEVsZW1lbnQuQUxMT1dfS0VZQk9BUkRfSU5QVVQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBkb2N1bWVudC5jYW5jZWxGdWxsU2NyZWVuKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgODc6IC8vIFc6IFRvZ2dsZSB3aWRlc2NyZWVuCiAgICAgIC8vIE9ubHkgcmVzcGVjdCAndycgb24gYm9keS4gRG9uJ3Qgd2FudCB0byBjYXB0dXJlIGtleXMgZnJvbSBhbiA8aW5wdXQ+LgogICAgICBpZiAoZS50YXJnZXQgPT0gZG9jdW1lbnQuYm9keSAmJiAhKGUuc2hpZnRLZXkgJiYgZS5tZXRhS2V5KSkgewogICAgICAgIHRoaXMuY29udGFpbmVyLmNsYXNzTGlzdC50b2dnbGUoJ2xheW91dC13aWRlc2NyZWVuJyk7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgfQp9OwoKLyoqCiAqCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmZvY3VzT3ZlcnZpZXdfID0gZnVuY3Rpb24oKSB7CiAgdmFyIG92ZXJ2aWV3ID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ292ZXJ2aWV3Jyk7CgogIGZvciAodmFyIGkgPSAwLCBzbGlkZTsgc2xpZGUgPSB0aGlzLnNsaWRlc1tpXTsgaSsrKSB7CiAgICBzbGlkZS5zdHlsZVtNb2Rlcm5penIucHJlZml4ZWQoJ3RyYW5zZm9ybScpXSA9IG92ZXJ2aWV3ID8KICAgICAgICAndHJhbnNsYXRlWigtMjUwMHB4KSB0cmFuc2xhdGUoJyArICgoIGkgLSB0aGlzLmN1clNsaWRlXyApICogMTA1KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICclLCAwJSknIDogJyc7CiAgfQp9OwoKLyoqCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLnRvZ2dsZU92ZXJ2aWV3ID0gZnVuY3Rpb24oKSB7CiAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdvdmVydmlldycpOwoKICB0aGlzLmZvY3VzT3ZlcnZpZXdfKCk7Cn07CgovKioKICogQHByaXZhdGUKICovClNsaWRlRGVjay5wcm90b3R5cGUubG9hZENvbmZpZ18gPSBmdW5jdGlvbihjb25maWcpIHsKICBpZiAoIWNvbmZpZykgewogICAgcmV0dXJuOwogIH0KCiAgdGhpcy5jb25maWdfID0gY29uZmlnOwoKICB2YXIgc2V0dGluZ3MgPSB0aGlzLmNvbmZpZ18uc2V0dGluZ3M7CgogIHRoaXMubG9hZFRoZW1lXyhzZXR0aW5ncy50aGVtZSB8fCBbXSk7CgogIGlmIChzZXR0aW5ncy5mYXZJY29uKSB7CiAgICB0aGlzLmFkZEZhdkljb25fKHNldHRpbmdzLmZhdkljb24pOwogIH0KCiAgLy8gUHJldHR5cHJpbnQuIERlZmF1bHQgdG8gb24uCiAgaWYgKCEhISgndXNlUHJldHRpZnknIGluIHNldHRpbmdzKSB8fCBzZXR0aW5ncy51c2VQcmV0dGlmeSkgewogICAgcHJldHR5UHJpbnQoKTsKICB9CgogIGlmIChzZXR0aW5ncy5hbmFseXRpY3MpIHsKICAgIHRoaXMubG9hZEFuYWx5dGljc18oKTsKICB9CgogIGlmIChzZXR0aW5ncy5mb250cykgewogICAgdGhpcy5hZGRGb250c18oc2V0dGluZ3MuZm9udHMpOwogIH0KCiAgLy8gQnVpbGRzLiBEZWZhdWx0IHRvIG9uLgogIGlmICghISEoJ3VzZUJ1aWxkcycgaW4gc2V0dGluZ3MpIHx8IHNldHRpbmdzLnVzZUJ1aWxkcykgewogICAgdGhpcy5tYWtlQnVpbGRMaXN0c18oKTsKICB9CgogIGlmIChzZXR0aW5ncy50aXRsZSkgewogICAgZG9jdW1lbnQudGl0bGUgPSBzZXR0aW5ncy50aXRsZS5yZXBsYWNlKC88YnJcLz8+LywgJyAnKTsKICAgIGlmIChzZXR0aW5ncy5ldmVudEluZm8gJiYgc2V0dGluZ3MuZXZlbnRJbmZvLnRpdGxlKSB7CiAgICAgIGRvY3VtZW50LnRpdGxlICs9ICAnIC0gJyArIHNldHRpbmdzLmV2ZW50SW5mby50aXRsZTsKICAgIH0KICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNvbmZpZy10aXRsZV0nKS5pbm5lckhUTUwgPSBzZXR0aW5ncy50aXRsZTsKICB9CgogIGlmIChzZXR0aW5ncy5zdWJ0aXRsZSkgewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtY29uZmlnLXN1YnRpdGxlXScpLmlubmVySFRNTCA9IHNldHRpbmdzLnN1YnRpdGxlOwogIH0KCiAgaWYgKHRoaXMuY29uZmlnXy5wcmVzZW50ZXJzKSB7CiAgICB2YXIgcHJlc2VudGVycyA9IHRoaXMuY29uZmlnXy5wcmVzZW50ZXJzOwogICAgdmFyIGRhdGFDb25maWdDb250YWN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtY29uZmlnLWNvbnRhY3RdJyk7CgogICAgdmFyIGh0bWwgPSBbXTsKICAgIGlmIChwcmVzZW50ZXJzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHZhciBwID0gcHJlc2VudGVyc1swXTsKCiAgICAgIHZhciBwcmVzZW50ZXJUaXRsZSA9IFtwLm5hbWVdOwogICAgICBpZiAocC5jb21wYW55KSB7CiAgICAgICAgcHJlc2VudGVyVGl0bGUucHVzaChwLmNvbXBhbnkpOwogICAgICB9CiAgICAgIGh0bWwgPSBwcmVzZW50ZXJUaXRsZS5qb2luKCcgLSAnKSArICc8YnI+JzsKCiAgICAgIHZhciBncGx1cyA9IHAuZ3BsdXMgPyAnPHNwYW4+Zys8L3NwYW4+PGEgaHJlZj0iJyArIHAuZ3BsdXMgKwogICAgICAgICAgJyI+JyArIHAuZ3BsdXMucmVwbGFjZSgvaHR0cHM/OlwvXC8vLCAnJykgKyAnPC9hPicgOiAnJzsKCiAgICAgIHZhciB0d2l0dGVyID0gcC50d2l0dGVyID8gJzxzcGFuPnR3aXR0ZXI8L3NwYW4+JyArCiAgICAgICAgICAnPGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tLycgKyBwLnR3aXR0ZXIgKyAnIj4nICsKICAgICAgICAgIHAudHdpdHRlciArICc8L2E+JyA6ICcnOwoKICAgICAgdmFyIHd3dyA9IHAud3d3ID8gJzxzcGFuPnd3dzwvc3Bhbj48YSBocmVmPSInICsgcC53d3cgKwogICAgICAgICAgICAgICAgICAgICAgICAnIj4nICsgcC53d3cucmVwbGFjZSgvaHR0cHM/OlwvXC8vLCAnJykgKyAnPC9hPicgOiAnJzsKCiAgICAgIHZhciBnaXRodWIgPSBwLmdpdGh1YiA/ICc8c3Bhbj5naXRodWI8L3NwYW4+PGEgaHJlZj0iJyArIHAuZ2l0aHViICsKICAgICAgICAgICciPicgKyBwLmdpdGh1Yi5yZXBsYWNlKC9odHRwcz86XC9cLy8sICcnKSArICc8L2E+JyA6ICcnOwoKICAgICAgdmFyIGh0bWwyID0gW2dwbHVzLCB0d2l0dGVyLCB3d3csIGdpdGh1Yl0uam9pbignPGJyPicpOwoKICAgICAgaWYgKGRhdGFDb25maWdDb250YWN0KSB7CiAgICAgICAgZGF0YUNvbmZpZ0NvbnRhY3QuaW5uZXJIVE1MID0gaHRtbDI7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBwOyBwID0gcHJlc2VudGVyc1tpXTsgKytpKSB7CiAgICAgICAgaHRtbC5wdXNoKHAubmFtZSArICcgLSAnICsgcC5jb21wYW55KTsKICAgICAgfQogICAgICBodG1sID0gaHRtbC5qb2luKCc8YnI+Jyk7CiAgICAgIGlmIChkYXRhQ29uZmlnQ29udGFjdCkgewogICAgICAgIGRhdGFDb25maWdDb250YWN0LmlubmVySFRNTCA9IGh0bWw7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZGF0YUNvbmZpZ1ByZXNlbnRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNvbmZpZy1wcmVzZW50ZXJdJyk7CiAgICBpZiAoZGF0YUNvbmZpZ1ByZXNlbnRlcikgewogICAgICBkYXRhQ29uZmlnUHJlc2VudGVyLmlubmVySFRNTCA9IGh0bWw7CiAgICAgIGlmIChzZXR0aW5ncy5ldmVudEluZm8pIHsKICAgICAgICB2YXIgZGF0ZSA9IHNldHRpbmdzLmV2ZW50SW5mby5kYXRlOwogICAgICAgIHZhciBkYXRlSW5mbyA9IGRhdGUgPyAnIC0gPHRpbWU+JyArIGRhdGUgKyAnPC90aW1lPicgOiAnJzsKICAgICAgICBkYXRhQ29uZmlnUHJlc2VudGVyLmlubmVySFRNTCArPSBzZXR0aW5ncy5ldmVudEluZm8udGl0bGUgKyBkYXRlSW5mbzsKICAgICAgfQogICAgfQogIH0KCiAgLyogTGVmdC9SaWdodCB0YXAgYXJlYXMuIERlZmF1bHQgdG8gaW5jbHVkaW5nLiAqLwogIGlmICghISEoJ2VuYWJsZVNsaWRlQXJlYXMnIGluIHNldHRpbmdzKSB8fCBzZXR0aW5ncy5lbmFibGVTbGlkZUFyZWFzKSB7CiAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGVsLmNsYXNzTGlzdC5hZGQoJ3NsaWRlLWFyZWEnKTsKICAgIGVsLmlkID0gJ3ByZXYtc2xpZGUtYXJlYSc7CiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMucHJldlNsaWRlLmJpbmQodGhpcyksIGZhbHNlKTsKICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGVsKTsKCiAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGVsLmNsYXNzTGlzdC5hZGQoJ3NsaWRlLWFyZWEnKTsKICAgIGVsLmlkID0gJ25leHQtc2xpZGUtYXJlYSc7CiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMubmV4dFNsaWRlLmJpbmQodGhpcyksIGZhbHNlKTsKICAgIHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKGVsKTsKICB9CgogIGlmIChNb2Rlcm5penIudG91Y2ggJiYgKCEhISgnZW5hYmxlVG91Y2gnIGluIHNldHRpbmdzKSB8fAogICAgICBzZXR0aW5ncy5lbmFibGVUb3VjaCkpIHsKICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAvLyBOb3RlOiB0aGlzIHByZXZlbnRzIG1vYmlsZSB6b29tIGluL291dCBidXQgcHJldmVudHMgaU9TIGZyb20gZG9pbmcKICAgIC8vIGl0J3MgY3Jhenkgc2Nyb2xsIG92ZXIgZWZmZWN0IGFuZCBkaXNhbGlnbmluZyB0aGUgc2xpZGVzLgogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBmdW5jdGlvbihlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIH0sIGZhbHNlKTsKCiAgICB2YXIgaGFtbWVyID0gbmV3IEhhbW1lcih0aGlzLmNvbnRhaW5lcik7CiAgICBoYW1tZXIub25kcmFnZW5kID0gZnVuY3Rpb24oZSkgewogICAgICBpZiAoZS5kaXJlY3Rpb24gPT0gJ3JpZ2h0JyB8fCBlLmRpcmVjdGlvbiA9PSAnZG93bicpIHsKICAgICAgICBzZWxmLnByZXZTbGlkZSgpOwogICAgICB9IGVsc2UgaWYgKGUuZGlyZWN0aW9uID09ICdsZWZ0JyB8fCBlLmRpcmVjdGlvbiA9PSAndXAnKSB7CiAgICAgICAgc2VsZi5uZXh0U2xpZGUoKTsKICAgICAgfQogICAgfTsKICB9Cn07CgovKioKICogQHByaXZhdGUKICogQHBhcmFtIHtBcnJheS48c3RyaW5nPn0gZm9udHMKICovClNsaWRlRGVjay5wcm90b3R5cGUuYWRkRm9udHNfID0gZnVuY3Rpb24oZm9udHMpIHsKICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7CiAgZWwucmVsID0gJ3N0eWxlc2hlZXQnOwogIGVsLmhyZWYgPSAoJ2h0dHBzOicgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wgPyAnaHR0cHMnIDogJ2h0dHAnKSArCiAgICAgICc6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PScgKyBmb250cy5qb2luKCd8JykgKyAnJnYyJzsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkJykuYXBwZW5kQ2hpbGQoZWwpOwp9OwoKLyoqCiAqIEBwcml2YXRlCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmJ1aWxkTmV4dEl0ZW1fID0gZnVuY3Rpb24oKSB7CiAgdmFyIHNsaWRlID0gdGhpcy5zbGlkZXNbdGhpcy5jdXJTbGlkZV9dOwogIHZhciB0b0J1aWxkID0gc2xpZGUucXVlcnlTZWxlY3RvcignLnRvLWJ1aWxkJyk7CiAgdmFyIGJ1aWx0ID0gc2xpZGUucXVlcnlTZWxlY3RvcignLmJ1aWxkLWN1cnJlbnQnKTsKCiAgaWYgKGJ1aWx0KSB7CiAgICBidWlsdC5jbGFzc0xpc3QucmVtb3ZlKCdidWlsZC1jdXJyZW50Jyk7CiAgICBpZiAoYnVpbHQuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlJykpIHsKICAgICAgYnVpbHQuY2xhc3NMaXN0LmFkZCgnYnVpbGQtZmFkZScpOwogICAgfQogIH0KCiAgaWYgKCF0b0J1aWxkKSB7CiAgICB2YXIgaXRlbXMgPSBzbGlkZS5xdWVyeVNlbGVjdG9yQWxsKCcuYnVpbGQtZmFkZScpOwogICAgZm9yICh2YXIgaiA9IDAsIGl0ZW07IGl0ZW0gPSBpdGVtc1tqXTsgaisrKSB7CiAgICAgIGl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnYnVpbGQtZmFkZScpOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgdG9CdWlsZC5jbGFzc0xpc3QucmVtb3ZlKCd0by1idWlsZCcpOwogIHRvQnVpbGQuY2xhc3NMaXN0LmFkZCgnYnVpbGQtY3VycmVudCcpOwoKICByZXR1cm4gdHJ1ZTsKfTsKCi8qKgogKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfZG9udFB1c2gKICovClNsaWRlRGVjay5wcm90b3R5cGUucHJldlNsaWRlID0gZnVuY3Rpb24ob3B0X2RvbnRQdXNoKSB7CiAgaWYgKHRoaXMuY3VyU2xpZGVfID4gMCkgewogICAgdmFyIGJvZHlDbGFzc0xpc3QgPSBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdDsKICAgIGJvZHlDbGFzc0xpc3QucmVtb3ZlKCdoaWdobGlnaHQtY29kZScpOwoKICAgIC8vIFRvZ2dsZSBvZmYgc3BlYWtlciBub3RlcyBpZiB0aGV5J3JlIHNob3dpbmcgd2hlbiB3ZSBtb3ZlIGJhY2t3YXJkcyBvbiB0aGUKICAgIC8vIG1haW4gc2xpZGVzLiBJZiB3ZSdyZSB0aGUgc3BlYWtlciBub3RlcyBwb3B1cCwgbGVhdmUgdGhlbSB1cC4KICAgIGlmICh0aGlzLmNvbnRyb2xsZXIgJiYgIXRoaXMuY29udHJvbGxlci5pc1BvcHVwKSB7CiAgICAgIGJvZHlDbGFzc0xpc3QucmVtb3ZlKCd3aXRoLW5vdGVzJyk7CiAgICB9IGVsc2UgaWYgKCF0aGlzLmNvbnRyb2xsZXIpIHsKICAgICAgYm9keUNsYXNzTGlzdC5yZW1vdmUoJ3dpdGgtbm90ZXMnKTsKICAgIH0KCiAgICB0aGlzLnByZXZTbGlkZV8gPSB0aGlzLmN1clNsaWRlXy0tOwoKICAgIHRoaXMudXBkYXRlU2xpZGVzXyhvcHRfZG9udFB1c2gpOwogIH0KfTsKCi8qKgogKiBAcGFyYW0ge2Jvb2xlYW49fSBvcHRfZG9udFB1c2gKICovClNsaWRlRGVjay5wcm90b3R5cGUubmV4dFNsaWRlID0gZnVuY3Rpb24ob3B0X2RvbnRQdXNoKSB7CiAgaWYgKCFkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucygnb3ZlcnZpZXcnKSAmJiB0aGlzLmJ1aWxkTmV4dEl0ZW1fKCkpIHsKICAgIHJldHVybjsKICB9CgogIGlmICh0aGlzLmN1clNsaWRlXyA8IHRoaXMuc2xpZGVzLmxlbmd0aCAtIDEpIHsKICAgIHZhciBib2R5Q2xhc3NMaXN0ID0gZG9jdW1lbnQuYm9keS5jbGFzc0xpc3Q7CiAgICBib2R5Q2xhc3NMaXN0LnJlbW92ZSgnaGlnaGxpZ2h0LWNvZGUnKTsKCiAgICAvLyBUb2dnbGUgb2ZmIHNwZWFrZXIgbm90ZXMgaWYgdGhleSdyZSBzaG93aW5nIHdoZW4gd2UgYWR2YW5jZWQgb24gdGhlIG1haW4KICAgIC8vIHNsaWRlcy4gSWYgd2UncmUgdGhlIHNwZWFrZXIgbm90ZXMgcG9wdXAsIGxlYXZlIHRoZW0gdXAuCiAgICBpZiAodGhpcy5jb250cm9sbGVyICYmICF0aGlzLmNvbnRyb2xsZXIuaXNQb3B1cCkgewogICAgICBib2R5Q2xhc3NMaXN0LnJlbW92ZSgnd2l0aC1ub3RlcycpOwogICAgfSBlbHNlIGlmICghdGhpcy5jb250cm9sbGVyKSB7CiAgICAgIGJvZHlDbGFzc0xpc3QucmVtb3ZlKCd3aXRoLW5vdGVzJyk7CiAgICB9CgogICAgdGhpcy5wcmV2U2xpZGVfID0gdGhpcy5jdXJTbGlkZV8rKzsKCiAgICB0aGlzLnVwZGF0ZVNsaWRlc18ob3B0X2RvbnRQdXNoKTsKICB9Cn07CgovKiBTbGlkZSBldmVudHMgKi8KCi8qKgogKiBUcmlnZ2VyZWQgd2hlbiBhIHNsaWRlIGVudGVyL2xlYXZlIGV2ZW50IHNob3VsZCBiZSBkaXNwYXRjaGVkLgogKgogKiBAcGFyYW0ge3N0cmluZ30gdHlwZSBUaGUgdHlwZSBvZiBldmVudCB0byB0cmlnZ2VyCiAqICAgICAoZS5nLiAnc2xpZGVlbnRlcicsICdzbGlkZWxlYXZlJykuCiAqIEBwYXJhbSB7bnVtYmVyfSBzbGlkZU5vIFRoZSBpbmRleCBvZiB0aGUgc2xpZGUgdGhhdCBpcyBiZWluZyBsZWZ0LgogKi8KU2xpZGVEZWNrLnByb3RvdHlwZS50cmlnZ2VyU2xpZGVFdmVudCA9IGZ1bmN0aW9uKHR5cGUsIHNsaWRlTm8pIHsKICB2YXIgZWwgPSB0aGlzLmdldFNsaWRlRWxfKHNsaWRlTm8pOwogIGlmICghZWwpIHsKICAgIHJldHVybjsKICB9CgogIC8vIENhbGwgb25zbGlkZWVudGVyL29uc2xpZGVsZWF2ZSBpZiB0aGUgYXR0cmlidXRlIGlzIGRlZmluZWQgb24gdGhpcyBzbGlkZS4KICB2YXIgZnVuYyA9IGVsLmdldEF0dHJpYnV0ZSh0eXBlKTsKICBpZiAoZnVuYykgewogICAgbmV3IEZ1bmN0aW9uKGZ1bmMpLmNhbGwoZWwpOyAvLyBUT0RPOiBEb24ndCB1c2UgbmV3IEZ1bmN0aW9uKCkgOigKICB9CgogIC8vIERpc3BhdGNoIGV2ZW50IHRvIGxpc3RlbmVycyBzZXR1cCB1c2luZyBhZGRFdmVudExpc3RlbmVyLgogIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKTsKICBldnQuaW5pdEV2ZW50KHR5cGUsIHRydWUsIHRydWUpOwogIGV2dC5zbGlkZU51bWJlciA9IHNsaWRlTm8gKyAxOyAvLyBNYWtlIGl0IHJlYWRhYmxlCiAgZXZ0LnNsaWRlID0gZWw7CgogIGVsLmRpc3BhdGNoRXZlbnQoZXZ0KTsKfTsKCi8qKgogKiBAcHJpdmF0ZQogKi8KU2xpZGVEZWNrLnByb3RvdHlwZS51cGRhdGVTbGlkZXNfID0gZnVuY3Rpb24ob3B0X2RvbnRQdXNoKSB7CiAgdmFyIGRvbnRQdXNoID0gb3B0X2RvbnRQdXNoIHx8IGZhbHNlOwoKICB2YXIgY3VyU2xpZGUgPSB0aGlzLmN1clNsaWRlXzsKICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc2xpZGVzLmxlbmd0aDsgKytpKSB7CiAgICBzd2l0Y2ggKGkpIHsKICAgICAgY2FzZSBjdXJTbGlkZSAtIDI6CiAgICAgICAgdGhpcy51cGRhdGVTbGlkZUNsYXNzXyhpLCAnZmFyLXBhc3QnKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSBjdXJTbGlkZSAtIDE6CiAgICAgICAgdGhpcy51cGRhdGVTbGlkZUNsYXNzXyhpLCAncGFzdCcpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIGN1clNsaWRlOgogICAgICAgIHRoaXMudXBkYXRlU2xpZGVDbGFzc18oaSwgJ2N1cnJlbnQnKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSBjdXJTbGlkZSArIDE6CiAgICAgICAgdGhpcy51cGRhdGVTbGlkZUNsYXNzXyhpLCAnbmV4dCcpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIGN1clNsaWRlICsgMjoKICAgICAgICB0aGlzLnVwZGF0ZVNsaWRlQ2xhc3NfKGksICdmYXItbmV4dCcpOwogICAgICAgIGJyZWFrOwogICAgICBkZWZhdWx0OgogICAgICAgIHRoaXMudXBkYXRlU2xpZGVDbGFzc18oaSk7CiAgICAgICAgYnJlYWs7CiAgICB9CiAgfTsKCiAgdGhpcy50cmlnZ2VyU2xpZGVFdmVudCgnc2xpZGVsZWF2ZScsIHRoaXMucHJldlNsaWRlXyk7CiAgdGhpcy50cmlnZ2VyU2xpZGVFdmVudCgnc2xpZGVlbnRlcicsIGN1clNsaWRlKTsKCi8vIHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZGlzYWJsZVNsaWRlRnJhbWVzXy5iaW5kKHRoaXMsIGN1clNsaWRlIC0gMiksIDMwMSk7Ci8vCi8vIHRoaXMuZW5hYmxlU2xpZGVGcmFtZXNfKGN1clNsaWRlIC0gMSk7IC8vIFByZXZpb3VzIHNsaWRlLgovLyB0aGlzLmVuYWJsZVNsaWRlRnJhbWVzXyhjdXJTbGlkZSArIDEpOyAvLyBDdXJyZW50IHNsaWRlLgovLyB0aGlzLmVuYWJsZVNsaWRlRnJhbWVzXyhjdXJTbGlkZSArIDIpOyAvLyBOZXh0IHNsaWRlLgoKICAgLy8gRW5hYmxlIGN1cnJlbnQgc2xpZGUncyBpZnJhbWVzIChuZWVkZWQgZm9yIHBhZ2UgbG9hdCBhdCBjdXJyZW50IHNsaWRlKS4KICAgdGhpcy5lbmFibGVTbGlkZUZyYW1lc18oY3VyU2xpZGUgKyAxKTsKCiAgIC8vIE5vIHdheSB0byB0ZWxsIHdoZW4gYWxsIHNsaWRlIHRyYW5zaXRpb25zICsgYXV0byBidWlsZHMgYXJlIGRvbmUuCiAgIC8vIEdpdmUgb3Vyc2VsdmVzIGEgZ29vZCBidWZmZXIgdG8gcHJlbG9hZCB0aGUgbmV4dCBzbGlkZSdzIGlmcmFtZXMuCiAgIHdpbmRvdy5zZXRUaW1lb3V0KHRoaXMuZW5hYmxlU2xpZGVGcmFtZXNfLmJpbmQodGhpcywgY3VyU2xpZGUgKyAyKSwgMTAwMCk7CgogIHRoaXMudXBkYXRlSGFzaF8oZG9udFB1c2gpOwoKICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoJ292ZXJ2aWV3JykpIHsKICAgIHRoaXMuZm9jdXNPdmVydmlld18oKTsKICAgIHJldHVybjsKICB9Cgp9OwoKLyoqCiAqIEBwcml2YXRlCiAqIEBwYXJhbSB7bnVtYmVyfSBzbGlkZU5vCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmVuYWJsZVNsaWRlRnJhbWVzXyA9IGZ1bmN0aW9uKHNsaWRlTm8pIHsKICB2YXIgZWwgPSB0aGlzLnNsaWRlc1tzbGlkZU5vIC0gMV07CiAgaWYgKCFlbCkgewogICAgcmV0dXJuOwogIH0KCiAgdmFyIGZyYW1lcyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpOwogIGZvciAodmFyIGkgPSAwLCBmcmFtZTsgZnJhbWUgPSBmcmFtZXNbaV07IGkrKykgewogICAgdGhpcy5lbmFibGVGcmFtZV8oZnJhbWUpOwogIH0KfTsKCi8qKgogKiBAcHJpdmF0ZQogKiBAcGFyYW0ge251bWJlcn0gc2xpZGVObwogKi8KU2xpZGVEZWNrLnByb3RvdHlwZS5lbmFibGVGcmFtZV8gPSBmdW5jdGlvbihmcmFtZSkgewogIHZhciBzcmMgPSBmcmFtZS5kYXRhc2V0LnNyYzsKICBpZiAoc3JjICYmIGZyYW1lLnNyYyAhPSBzcmMpIHsKICAgIGZyYW1lLnNyYyA9IHNyYzsKICB9Cn07CgovKioKICogQHByaXZhdGUKICogQHBhcmFtIHtudW1iZXJ9IHNsaWRlTm8KICovClNsaWRlRGVjay5wcm90b3R5cGUuZGlzYWJsZVNsaWRlRnJhbWVzXyA9IGZ1bmN0aW9uKHNsaWRlTm8pIHsKICB2YXIgZWwgPSB0aGlzLnNsaWRlc1tzbGlkZU5vIC0gMV07CiAgaWYgKCFlbCkgewogICAgcmV0dXJuOwogIH0KCiAgdmFyIGZyYW1lcyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpOwogIGZvciAodmFyIGkgPSAwLCBmcmFtZTsgZnJhbWUgPSBmcmFtZXNbaV07IGkrKykgewogICAgdGhpcy5kaXNhYmxlRnJhbWVfKGZyYW1lKTsKICB9Cn07CgovKioKICogQHByaXZhdGUKICogQHBhcmFtIHtOb2RlfSBmcmFtZQogKi8KU2xpZGVEZWNrLnByb3RvdHlwZS5kaXNhYmxlRnJhbWVfID0gZnVuY3Rpb24oZnJhbWUpIHsKICBmcmFtZS5zcmMgPSAnYWJvdXQ6YmxhbmsnOwp9OwoKLyoqCiAqIEBwcml2YXRlCiAqIEBwYXJhbSB7bnVtYmVyfSBzbGlkZU5vCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmdldFNsaWRlRWxfID0gZnVuY3Rpb24obm8pIHsKICBpZiAoKG5vIDwgMCkgfHwgKG5vID49IHRoaXMuc2xpZGVzLmxlbmd0aCkpIHsKICAgIHJldHVybiBudWxsOwogIH0gZWxzZSB7CiAgICByZXR1cm4gdGhpcy5zbGlkZXNbbm9dOwogIH0KfTsKCi8qKgogKiBAcHJpdmF0ZQogKiBAcGFyYW0ge251bWJlcn0gc2xpZGVObwogKiBAcGFyYW0ge3N0cmluZ30gY2xhc3NOYW1lCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLnVwZGF0ZVNsaWRlQ2xhc3NfID0gZnVuY3Rpb24oc2xpZGVObywgY2xhc3NOYW1lKSB7CiAgdmFyIGVsID0gdGhpcy5nZXRTbGlkZUVsXyhzbGlkZU5vKTsKCiAgaWYgKCFlbCkgewogICAgcmV0dXJuOwogIH0KCiAgaWYgKGNsYXNzTmFtZSkgewogICAgZWwuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpOwogIH0KCiAgZm9yICh2YXIgaSA9IDAsIHNsaWRlQ2xhc3M7IHNsaWRlQ2xhc3MgPSB0aGlzLlNMSURFX0NMQVNTRVNfW2ldOyArK2kpIHsKICAgIGlmIChjbGFzc05hbWUgIT0gc2xpZGVDbGFzcykgewogICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKHNsaWRlQ2xhc3MpOwogICAgfQogIH0KfTsKCi8qKgogKiBAcHJpdmF0ZQogKi8KU2xpZGVEZWNrLnByb3RvdHlwZS5tYWtlQnVpbGRMaXN0c18gPSBmdW5jdGlvbiAoKSB7CiAgZm9yICh2YXIgaSA9IHRoaXMuY3VyU2xpZGVfLCBzbGlkZTsgc2xpZGUgPSB0aGlzLnNsaWRlc1tpXTsgKytpKSB7CiAgICB2YXIgaXRlbXMgPSBzbGlkZS5xdWVyeVNlbGVjdG9yQWxsKCcuYnVpbGQgPiAqJyk7CiAgICBmb3IgKHZhciBqID0gMCwgaXRlbTsgaXRlbSA9IGl0ZW1zW2pdOyArK2opIHsKICAgICAgaWYgKGl0ZW0uY2xhc3NMaXN0KSB7CiAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCd0by1idWlsZCcpOwogICAgICAgIGlmIChpdGVtLnBhcmVudE5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdmYWRlJykpIHsKICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnZmFkZScpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0KfTsKCi8qKgogKiBAcHJpdmF0ZQogKiBAcGFyYW0ge2Jvb2xlYW59IGRvbnRQdXNoCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLnVwZGF0ZUhhc2hfID0gZnVuY3Rpb24oZG9udFB1c2gpIHsKICBpZiAoIWRvbnRQdXNoKSB7CiAgICB2YXIgc2xpZGVObyA9IHRoaXMuY3VyU2xpZGVfICsgMTsKICAgIC8vIEFkZCBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgaGFzaC4KICAgIHZhciBsb2MgPSBsb2NhdGlvbi5wcm90b2NvbCsnLy8nK2xvY2F0aW9uLmhvc3QrbG9jYXRpb24ucGF0aG5hbWUrKGxvY2F0aW9uLnNlYXJjaD9sb2NhdGlvbi5zZWFyY2g6IiIpOwogICAgdmFyIGhhc2ggPSAnIycgKyBzbGlkZU5vOwogICAgaWYgKHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSAmJiAobG9jYXRpb24ucHJvdG9jb2wgIT09ICJmaWxlOiIpKSB7CiAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZSh0aGlzLmN1clNsaWRlXywgJ1NsaWRlICcgKyBzbGlkZU5vLCBsb2MgKyBoYXNoKTsKICAgIH0gZWxzZSB7CiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGxvYyArIGhhc2gpOwogICAgfQoKICAgIC8vIFJlY29yZCBHQSBoaXQgb24gdGhpcyBzbGlkZS4KICAgIGlmKHR5cGVvZiB3aW5kb3cuZ2EgPT09ICdmdW5jdGlvbicpIHsKICAgICAgZ2EoJ3NldCcsICdwYWdlJywgaGFzaCkKICAgICAgZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTsKICAgIH0KICB9Cn07CgoKLyoqCiAqIEBwcml2YXRlCiAqIEBwYXJhbSB7c3RyaW5nfSBmYXZJY29uCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmFkZEZhdkljb25fID0gZnVuY3Rpb24oZmF2SWNvbikgewogIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKICBlbC5yZWwgPSAnaWNvbic7CiAgZWwudHlwZSA9ICdpbWFnZS9wbmcnOwogIGVsLmhyZWYgPSBmYXZJY29uOwogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKS5hcHBlbmRDaGlsZChlbCk7Cn07CgovKioKICogQHByaXZhdGUKICogQHBhcmFtIHtzdHJpbmd9IHRoZW1lCiAqLwpTbGlkZURlY2sucHJvdG90eXBlLmxvYWRUaGVtZV8gPSBmdW5jdGlvbih0aGVtZSkgewogIHZhciBzdHlsZXMgPSBbXTsKICBpZiAodGhlbWUuY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0cmluZycpIHsKICAgIHN0eWxlcy5wdXNoKHRoZW1lKTsKICB9IGVsc2UgewogICAgc3R5bGVzID0gdGhlbWU7CiAgfQoKICBmb3IgKHZhciBpID0gMCwgc3R5bGU7IHRoZW1lVXJsID0gc3R5bGVzW2ldOyBpKyspIHsKICAgIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsKICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JzsKICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnOwogICAgaWYgKHRoZW1lVXJsLmluZGV4T2YoJ2h0dHAnKSA9PSAtMSkgewogICAgICBzdHlsZS5ocmVmID0gdGhpcy5DU1NfRElSXyArIHRoZW1lVXJsICsgJy5jc3MnOwogICAgfSBlbHNlIHsKICAgICAgc3R5bGUuaHJlZiA9IHRoZW1lVXJsOwogICAgfQogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLmFwcGVuZENoaWxkKHN0eWxlKTsKICB9Cn07CgovKioKICogQHByaXZhdGUKICovClNsaWRlRGVjay5wcm90b3R5cGUubG9hZEFuYWx5dGljc18gPSBmdW5jdGlvbigpIHsKICAoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsnR29vZ2xlQW5hbHl0aWNzT2JqZWN0J109cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7CiAgICAoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0saVtyXS5sPTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSwKICAgIG09cy5nZXRFbGVtZW50c0J5VGFnTmFtZShvKVswXTthLmFzeW5jPTE7YS5zcmM9ZzttLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbSkKICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJy8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcycsJ2dhJyk7CgogIGdhKCdjcmVhdGUnLCB0aGlzLmNvbmZpZ18uc2V0dGluZ3MuYW5hbHl0aWNzLCAnYXV0bycpOwogIGdhKCdzZW5kJywgJ3BhZ2V2aWV3Jyk7Cn07CgoKdmFyIGxvYWREZWNrID0gZnVuY3Rpb24oZXZlbnQpIHsKICAvLyBQb2x5ZmlsbCBtaXNzaW5nIEFQSXMgKGlmIHdlIG5lZWQgdG8pLCB0aGVuIGNyZWF0ZSB0aGUgc2xpZGUgZGVjay4KICAvLyBpT1MgPCA1IG5lZWRzIGNsYXNzTGlzdCwgZGF0YXNldCwgYW5kIHdpbmRvdy5tYXRjaE1lZGlhLiBNb2Rlcm5penIgY29udGFpbnMKICAvLyB0aGUgbGFzdCBvbmUuCiAgTW9kZXJuaXpyLmxvYWQoewogICAgY29tcGxldGU6IGZ1bmN0aW9uKCkgewogICAgICB3aW5kb3cuc2xpZGVkZWNrID0gbmV3IFNsaWRlRGVjaygpOwogICAgfQogIH0pOwp9OwoKaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgIT09ICJsb2FkaW5nIiAmJgogICAgZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2xpZGVzJykgPT09IG51bGwpIHsgCiAgLy8gaWYgdGhlIGRvY3VtZW50IGlzIGRvbmUgbG9hZGluZyBidXQgb3VyIGVsZW1lbnQgaGFzbid0IHlldCBhcHBlYXJlZCwgZGVmZXIKICAvLyBsb2FkaW5nIG9mIHRoZSBkZWNrCiAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICBsb2FkRGVjayhudWxsKTsKICB9LCAwKTsKfSBlbHNlIHsKICAvLyBzdGlsbCBsb2FkaW5nIHRoZSBET00sIHNvIHdhaXQgdW50aWwgaXQncyBmaW5pc2hlZAogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBsb2FkRGVjayk7Cn0KCgoK"></script>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gZXZhbCgiKCIgKyB0YXNrICsgIikiKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQoKICAgIC8vIFN1cHBvcnQgbmV3LXN0eWxlIGluc3RhbmNlLWJvdW5kIGRlZmluaXRpb25zLiBPbGQtc3R5bGUgY2xhc3MtYm91bmQKICAgIC8vIGRlZmluaXRpb25zIGhhdmUgb25lIHdpZGdldCAib2JqZWN0IiBwZXIgd2lkZ2V0IHBlciB0eXBlL2NsYXNzIG9mCiAgICAvLyB3aWRnZXQ7IHRoZSByZW5kZXJWYWx1ZSBhbmQgcmVzaXplIG1ldGhvZHMgb24gc3VjaCB3aWRnZXQgb2JqZWN0cwogICAgLy8gdGFrZSBlbCBhbmQgaW5zdGFuY2UgYXJndW1lbnRzLCBiZWNhdXNlIHRoZSB3aWRnZXQgb2JqZWN0IGNhbid0CiAgICAvLyBzdG9yZSB0aGVtLiBOZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0CiAgICAvLyBvYmplY3QgcGVyIHdpZGdldCBpbnN0YW5jZTsgdGhlIGRlZmluaXRpb24gdGhhdCdzIHBhc3NlZCBpbiBkb2Vzbid0CiAgICAvLyBwcm92aWRlIHJlbmRlclZhbHVlIG9yIHJlc2l6ZSBtZXRob2RzIGF0IGFsbCwganVzdCB0aGUgc2luZ2xlIG1ldGhvZAogICAgLy8gICBmYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KQogICAgLy8gd2hpY2ggcmV0dXJucyBhbiBvYmplY3QgdGhhdCBoYXMgcmVuZGVyVmFsdWUoeCkgYW5kIHJlc2l6ZSh3LCBoKS4KICAgIC8vIFRoaXMgZW5hYmxlcyBhIGZhciBtb3JlIG5hdHVyYWwgcHJvZ3JhbW1pbmcgc3R5bGUgZm9yIHRoZSB3aWRnZXQKICAgIC8vIGF1dGhvciwgd2hvIGNhbiBzdG9yZSBwZXItaW5zdGFuY2Ugc3RhdGUgdXNpbmcgZWl0aGVyIE9PLXN0eWxlCiAgICAvLyBpbnN0YW5jZSBmaWVsZHMgb3IgZnVuY3Rpb25hbC1zdHlsZSBjbG9zdXJlIHZhcmlhYmxlcyAoSSBndWVzcyB0aGlzCiAgICAvLyBpcyBpbiBjb250cmFzdCB0byB3aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCBDLXN0eWxlIHBzZXVkby1PTyB3aGljaCBpcwogICAgLy8gd2hhdCB3ZSByZXF1aXJlZCBiZWZvcmUpLgogICAgaWYgKGRlZmluaXRpb24uZmFjdG9yeSkgewogICAgICBkZWZpbml0aW9uID0gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmaW5pdGlvbik7CiAgICB9CgogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gd2l0aCBhbiBvdXRwdXQgYmluZGluZy4KICAgICAgLy8gVGhlIGRlZmluaXRpb24gaXRzZWxmIHdpbGwgbm90IGJlIHRoZSBvdXRwdXQgYmluZGluZywgaW5zdGVhZAogICAgICAvLyB3ZSB3aWxsIG1ha2UgYW4gb3V0cHV0IGJpbmRpbmcgb2JqZWN0IHRoYXQgZGVsZWdhdGVzIHRvIHRoZQogICAgICAvLyBkZWZpbml0aW9uLiBUaGlzIGlzIGJlY2F1c2Ugd2UgZm9vbGlzaGx5IHVzZWQgdGhlIHNhbWUgbWV0aG9kCiAgICAgIC8vIG5hbWUgKHJlbmRlclZhbHVlKSBmb3IgaHRtbHdpZGdldHMgZGVmaW5pdGlvbiBhbmQgU2hpbnkgYmluZGluZ3MKICAgICAgLy8gYnV0IHRoZXkgYWN0dWFsbHkgaGF2ZSBxdWl0ZSBkaWZmZXJlbnQgc2VtYW50aWNzICh0aGUgU2hpbnkKICAgICAgLy8gYmluZGluZ3MgcmVjZWl2ZSBkYXRhIHRoYXQgaW5jbHVkZXMgbG90cyBvZiBtZXRhZGF0YSB0aGF0IGl0CiAgICAgIC8vIHN0cmlwcyBvZmYgYmVmb3JlIGNhbGxpbmcgaHRtbHdpZGdldHMgcmVuZGVyVmFsdWUpLiBXZSBjYW4ndAogICAgICAvLyBqdXN0IGlnbm9yZSB0aGUgZGlmZmVyZW5jZSBiZWNhdXNlIGluIHNvbWUgd2lkZ2V0cyBpdCdzIGhlbHBmdWwKICAgICAgLy8gdG8gY2FsbCB0aGlzLnJlbmRlclZhbHVlKCkgZnJvbSBpbnNpZGUgb2YgcmVzaXplKCksIGFuZCBpZgogICAgICAvLyB3ZSdyZSBub3QgZGVsZWdhdGluZywgdGhlbiB0aGF0IGNhbGwgd2lsbCBnbyB0byB0aGUgU2hpbnkKICAgICAgLy8gdmVyc2lvbiBpbnN0ZWFkIG9mIHRoZSBodG1sd2lkZ2V0cyB2ZXJzaW9uLgoKICAgICAgLy8gTWVyZ2UgZGVmYXVsdHMgd2l0aCBkZWZpbml0aW9uLCB3aXRob3V0IG11dGF0aW5nIGVpdGhlci4KICAgICAgdmFyIGJpbmRpbmdEZWYgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKCiAgICAgIC8vIFRoaXMgb2JqZWN0IHdpbGwgYmUgb3VyIGFjdHVhbCBTaGlueSBiaW5kaW5nLgogICAgICB2YXIgc2hpbnlCaW5kaW5nID0gbmV3IFNoaW55Lk91dHB1dEJpbmRpbmcoKTsKCiAgICAgIC8vIFdpdGggYSBmZXcgZXhjZXB0aW9ucywgd2UnbGwgd2FudCB0byBzaW1wbHkgdXNlIHRoZSBiaW5kaW5nRGVmJ3MKICAgICAgLy8gdmVyc2lvbiBvZiBtZXRob2RzIGlmIHRoZXkgYXJlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0bwogICAgICAvLyBTaGlueSdzIGRlZmF1bHRzLiBOT1RFOiBJZiBTaGlueSdzIG91dHB1dCBiaW5kaW5ncyBnYWluIGFkZGl0aW9uYWwKICAgICAgLy8gbWV0aG9kcyBpbiB0aGUgZnV0dXJlLCBhbmQgd2Ugd2FudCB0aGVtIHRvIGJlIG92ZXJyaWRlYWJsZSBieQogICAgICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcgZGVmaW5pdGlvbnMsIHRoZW4gd2UnbGwgbmVlZCB0byBhZGQgdGhlbSB0byB0aGlzCiAgICAgIC8vIGxpc3QuCiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImdldElkIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgIm9uVmFsdWVDaGFuZ2UiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgInJlbmRlckVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImNsZWFyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAic2hvd1Byb2dyZXNzIik7CgogICAgICAvLyBUaGUgZmluZCwgcmVuZGVyVmFsdWUsIGFuZCByZXNpemUgYXJlIGhhbmRsZWQgZGlmZmVyZW50bHksIGJlY2F1c2Ugd2UKICAgICAgLy8gd2FudCB0byBhY3R1YWxseSBkZWNvcmF0ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJpbmRpbmdEZWYgbWV0aG9kcy4KCiAgICAgIHNoaW55QmluZGluZy5maW5kID0gZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgICB2YXIgcmVzdWx0cyA9IGJpbmRpbmdEZWYuZmluZChzY29wZSk7CgogICAgICAgIC8vIE9ubHkgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIFNoaW55IG91dHB1dHMsIG5vdCBzdGF0aWMgb25lcwogICAgICAgIHZhciBkeW5hbWljUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKCIuaHRtbC13aWRnZXQtb3V0cHV0Iik7CgogICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAvLyBuZXcgZHluYW1pYyBvdXRwdXRzLCBhbHNvIGNhdXNlZCB0aGVyZSB0byBiZSBuZXcgc3RhdGljIG91dHB1dHMuCiAgICAgICAgLy8gU2luY2UgdGhlcmUgbWlnaHQgYmUgbG90cyBvZiBkaWZmZXJlbnQgaHRtbHdpZGdldHMgYmluZGluZ3MsIHdlCiAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAvLyB0aW1lcy4KICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT09IGR5bmFtaWNSZXN1bHRzLmxlbmd0aCkKICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgIHJldHVybiBkeW5hbWljUmVzdWx0czsKICAgICAgfTsKCiAgICAgIC8vIFdyYXAgcmVuZGVyVmFsdWUgdG8gaGFuZGxlIGluaXRpYWxpemF0aW9uLCB3aGljaCB1bmZvcnR1bmF0ZWx5IGlzbid0CiAgICAgIC8vIHN1cHBvcnRlZCBuYXRpdmVseSBieSBTaGlueSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuCgogICAgICBzaGlueUJpbmRpbmcucmVuZGVyVmFsdWUgPSBmdW5jdGlvbihlbCwgZGF0YSkgewogICAgICAgIFNoaW55LnJlbmRlckRlcGVuZGVuY2llcyhkYXRhLmRlcHMpOwogICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgZGF0YS5ldmFscyAmJiBpIDwgZGF0YS5ldmFscy5sZW5ndGg7IGkrKykgewogICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgfQogICAgICAgIGlmICghYmluZGluZ0RlZi5yZW5kZXJPbk51bGxWYWx1ZSkgewogICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaW5oZXJpdCI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICBpbml0U2l6aW5nKGVsKTsKCiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICBpZiAoYmluZGluZ0RlZi5pbml0aWFsaXplKSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBiaW5kaW5nRGVmLmluaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiLCByZXN1bHQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBiaW5kaW5nRGVmLnJlbmRlclZhbHVlKGVsLCBkYXRhLngsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgZXZhbEFuZFJ1bihkYXRhLmpzSG9va3MucmVuZGVyLCBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiksIFtlbCwgZGF0YS54XSk7CiAgICAgIH07CgogICAgICAvLyBPbmx5IG92ZXJyaWRlIHJlc2l6ZSBpZiBiaW5kaW5nRGVmIGltcGxlbWVudHMgaXQKICAgICAgaWYgKGJpbmRpbmdEZWYucmVzaXplKSB7CiAgICAgICAgc2hpbnlCaW5kaW5nLnJlc2l6ZSA9IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgICAvLyBTaGlueSBjYW4gY2FsbCByZXNpemUgYmVmb3JlIGluaXRpYWxpemUvcmVuZGVyVmFsdWUgaGF2ZSBiZWVuCiAgICAgICAgICAvLyBjYWxsZWQsIHdoaWNoIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3Igd2lkZ2V0cy4KICAgICAgICAgIGlmIChlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgYmluZGluZ0RlZi5yZXNpemUoZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQoKICAgICAgU2hpbnkub3V0cHV0QmluZGluZ3MucmVnaXN0ZXIoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIGluaXRSZXN1bHQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7fTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJzaG93bi5odG1sd2lkZ2V0cyBzaG93bi5icy50YWIuaHRtbHdpZGdldHMgc2hvd24uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd2luZG93LmpRdWVyeShkb2N1bWVudCkub24oCiAgICAgICAgICAgICAgImhpZGRlbi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMudGFiLmh0bWx3aWRnZXRzIGhpZGRlbi5icy5jb2xsYXBzZS5odG1sd2lkZ2V0cyIsCiAgICAgICAgICAgICAgcmVzaXplSGFuZGxlcgogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgc3BlY2lmaWMgY2FzZSBvZiBpb3NsaWRlcywgd2hpY2gKICAgICAgICAgIC8vIGZsaXBzIHNsaWRlcyBiZXR3ZWVuIGRpc3BsYXk6bm9uZSBhbmQgZGlzcGxheTpibG9jay4KICAgICAgICAgIC8vIElkZWFsbHkgd2Ugd291bGQgbm90IGhhdmUgdG8gaGF2ZSBpb3NsaWRlLXNwZWNpZmljIGNvZGUKICAgICAgICAgIC8vIGhlcmUsIGJ1dCByYXRoZXIgaGF2ZSBpb3NsaWRlcyByYWlzZSBhIGdlbmVyaWMgZXZlbnQsCiAgICAgICAgICAvLyBidXQgdGhlIHJtYXJrZG93biBwYWNrYWdlIGp1c3Qgd2VudCB0byBDUkFOIHNvIHRoZQogICAgICAgICAgLy8gd2luZG93IHRvIGdldHRpbmcgdGhhdCBmaXhlZCBtYXkgYmUgbG9uZy4KICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgICAgICAvLyBJdCdzIE9LIHRvIGxpbWl0IHRoaXMgdG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgLy8gYnJvd3NlcnMgYmVjYXVzZSBpb3NsaWRlcyBpdHNlbGYgb25seSBzdXBwb3J0cwogICAgICAgICAgICAvLyBzdWNoIGJyb3dzZXJzLgogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlZW50ZXIiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWxlYXZlIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgc2NyaXB0RGF0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXSIpOwogICAgICAgIGlmIChzY3JpcHREYXRhKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc2NyaXB0RGF0YS50ZXh0Q29udGVudCB8fCBzY3JpcHREYXRhLnRleHQpOwogICAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICAgIGlmICghKGRhdGEuZXZhbHMgaW5zdGFuY2VvZiBBcnJheSkpIGRhdGEuZXZhbHMgPSBbZGF0YS5ldmFsc107CiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgZGF0YS5ldmFscyAmJiBrIDwgZGF0YS5ldmFscy5sZW5ndGg7IGsrKykgewogICAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2tdKTsKICAgICAgICAgIH0KICAgICAgICAgIGJpbmRpbmcucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGluaXRSZXN1bHQsIFtlbCwgZGF0YS54XSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwoKICAgIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpOwogIH0KCiAgLy8gV2FpdCB1bnRpbCBhZnRlciB0aGUgZG9jdW1lbnQgaGFzIGxvYWRlZCB0byByZW5kZXIgdGhlIHdpZGdldHMuCiAgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGFyZ3VtZW50cy5jYWxsZWUsIGZhbHNlKTsKICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgfSwgZmFsc2UpOwogIH0gZWxzZSBpZiAoZG9jdW1lbnQuYXR0YWNoRXZlbnQpIHsKICAgIGRvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBmdW5jdGlvbigpIHsKICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIpIHsKICAgICAgICBkb2N1bWVudC5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgYXJndW1lbnRzLmNhbGxlZSk7CiAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgICB9CiAgICB9KTsKICB9CgoKICB3aW5kb3cuSFRNTFdpZGdldHMuZ2V0QXR0YWNobWVudFVybCA9IGZ1bmN0aW9uKGRlcG5hbWUsIGtleSkgewogICAgLy8gSWYgbm8ga2V5LCBkZWZhdWx0IHRvIHRoZSBmaXJzdCBpdGVtCiAgICBpZiAodHlwZW9mKGtleSkgPT09ICJ1bmRlZmluZWQiKQogICAgICBrZXkgPSAxOwoKICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVwbmFtZSArICItIiArIGtleSArICItYXR0YWNobWVudCIpOwogICAgaWYgKCFsaW5rKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0YWNobWVudCAiICsgZGVwbmFtZSArICIvIiArIGtleSArICIgbm90IGZvdW5kIGluIGRvY3VtZW50Iik7CiAgICB9CiAgICByZXR1cm4gbGluay5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMuZGF0YWZyYW1lVG9EMyA9IGZ1bmN0aW9uKGRmKSB7CiAgICB2YXIgbmFtZXMgPSBbXTsKICAgIHZhciBsZW5ndGg7CiAgICBmb3IgKHZhciBuYW1lIGluIGRmKSB7CiAgICAgICAgaWYgKGRmLmhhc093blByb3BlcnR5KG5hbWUpKQogICAgICAgICAgICBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgIGlmICh0eXBlb2YoZGZbbmFtZV0pICE9PSAib2JqZWN0IiB8fCB0eXBlb2YoZGZbbmFtZV0ubGVuZ3RoKSA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIik7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YobGVuZ3RoKSAhPT0gInVuZGVmaW5lZCIgJiYgbGVuZ3RoICE9PSBkZltuYW1lXS5sZW5ndGgpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpOwogICAgICAgIH0KICAgICAgICBsZW5ndGggPSBkZltuYW1lXS5sZW5ndGg7CiAgICB9CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGl0ZW07CiAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCBsZW5ndGg7IHJvdysrKSB7CiAgICAgICAgaXRlbSA9IHt9OwogICAgICAgIGZvciAodmFyIGNvbCA9IDA7IGNvbCA8IG5hbWVzLmxlbmd0aDsgY29sKyspIHsKICAgICAgICAgICAgaXRlbVtuYW1lc1tjb2xdXSA9IGRmW25hbWVzW2NvbF1dW3Jvd107CiAgICAgICAgfQogICAgICAgIHJlc3VsdHMucHVzaChpdGVtKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy50cmFuc3Bvc2VBcnJheTJEID0gZnVuY3Rpb24oYXJyYXkpIHsKICAgICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIGFycmF5OwogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gZXZhbCgiKCIgKyBvW3BhcnRdICsgIikiKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIC8vIFJldHJpZXZlIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YgYW4KICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCBhbiBlbGVtZW50LCBvciBudWxsIGlmIG5vbmUuCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0Iik7CiAgfTsKCiAgLy8gRmluZHMgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2hlcyB0aGUgc2VsZWN0b3IsCiAgLy8gYW5kIHJldHVybnMgdGhlIEhUTUxXaWRnZXQgaW5zdGFuY2UgKGkuZS4gdGhlIHJldHVybiB2YWx1ZSBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoYXQgZWxlbWVudCwgaWYgYW55LiBJZiBubyBlbGVtZW50IG1hdGNoZXMgdGhlCiAgLy8gc2VsZWN0b3IsIG9yIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50IGhhcyBubyBIVE1MV2lkZ2V0CiAgLy8gaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGl0LCB0aGVuIG51bGwgaXMgcmV0dXJuZWQuCiAgLy8KICAvLyBUaGUgc2NvcGUgYXJndW1lbnQgaXMgb3B0aW9uYWwsIGFuZCBkZWZhdWx0cyB0byB3aW5kb3cuZG9jdW1lbnQuCiAgd2luZG93LkhUTUxXaWRnZXRzLmZpbmQgPSBmdW5jdGlvbihzY29wZSwgc2VsZWN0b3IpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgc2VsZWN0b3IgPSBzY29wZTsKICAgICAgc2NvcGUgPSBkb2N1bWVudDsKICAgIH0KCiAgICB2YXIgZWwgPSBzY29wZS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKICAgIGlmIChlbCA9PT0gbnVsbCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiB3aW5kb3cuSFRNTFdpZGdldHMuZ2V0SW5zdGFuY2UoZWwpOwogICAgfQogIH07CgogIC8vIEZpbmRzIGFsbCBlbGVtZW50cyBpbiB0aGUgc2NvcGUgdGhhdCBtYXRjaCB0aGUgc2VsZWN0b3IsIGFuZAogIC8vIHJldHVybnMgdGhlIEhUTUxXaWRnZXQgaW5zdGFuY2VzIChpLmUuIHRoZSByZXR1cm4gdmFsdWVzIG9mCiAgLy8gYW4gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIGVsZW1lbnRzLCBpbiBhbiBhcnJheS4gSWYgZWxlbWVudHMgdGhhdAogIC8vIG1hdGNoIHRoZSBzZWxlY3RvciBkb24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgSFRNTFdpZGdldAogIC8vIGluc3RhbmNlLCB0aGUgcmV0dXJuZWQgYXJyYXkgd2lsbCBjb250YWluIG51bGxzLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kQWxsID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIG5vZGVzID0gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewogICAgICByZXN1bHRzLnB1c2god2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKG5vZGVzW2ldKSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB2YXIgcG9zdFJlbmRlckhhbmRsZXJzID0gW107CiAgZnVuY3Rpb24gaW52b2tlUG9zdFJlbmRlckhhbmRsZXJzKCkgewogICAgd2hpbGUgKHBvc3RSZW5kZXJIYW5kbGVycy5sZW5ndGgpIHsKICAgICAgdmFyIGhhbmRsZXIgPSBwb3N0UmVuZGVySGFuZGxlcnMuc2hpZnQoKTsKICAgICAgaWYgKGhhbmRsZXIpIHsKICAgICAgICBoYW5kbGVyKCk7CiAgICAgIH0KICAgIH0KICB9CgogIC8vIFJlZ2lzdGVyIHRoZSBnaXZlbiBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIGFmdGVyIHRoZQogIC8vIG5leHQgdGltZSBzdGF0aWMgd2lkZ2V0cyBhcmUgcmVuZGVyZWQuCiAgd2luZG93LkhUTUxXaWRnZXRzLmFkZFBvc3RSZW5kZXJIYW5kbGVyID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgIHBvc3RSZW5kZXJIYW5kbGVycy5wdXNoKGNhbGxiYWNrKTsKICB9OwoKICAvLyBUYWtlcyBhIG5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9uLCBhbmQgcmV0dXJucyBhbgogIC8vIG9sZC1zdHlsZSBjbGFzcy1ib3VuZCBkZWZpbml0aW9uLiBUaGlzIHNhdmVzIHVzIGZyb20gaGF2aW5nCiAgLy8gdG8gcmV3cml0ZSBhbGwgdGhlIGxvZ2ljIGluIHRoaXMgZmlsZSB0byBhY2NvbW9kYXRlIGJvdGgKICAvLyB0eXBlcyBvZiBkZWZpbml0aW9ucy4KICBmdW5jdGlvbiBjcmVhdGVMZWdhY3lEZWZpbml0aW9uQWRhcHRlcihkZWZuKSB7CiAgICB2YXIgcmVzdWx0ID0gewogICAgICBuYW1lOiBkZWZuLm5hbWUsCiAgICAgIHR5cGU6IGRlZm4udHlwZSwKICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICByZXR1cm4gZGVmbi5mYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgfSwKICAgICAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgICAgIHJldHVybiBpbnN0YW5jZS5yZW5kZXJWYWx1ZSh4KTsKICAgICAgfSwKICAgICAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVzaXplKHdpZHRoLCBoZWlnaHQpOwogICAgICB9CiAgICB9OwoKICAgIGlmIChkZWZuLmZpbmQpCiAgICAgIHJlc3VsdC5maW5kID0gZGVmbi5maW5kOwogICAgaWYgKGRlZm4ucmVuZGVyRXJyb3IpCiAgICAgIHJlc3VsdC5yZW5kZXJFcnJvciA9IGRlZm4ucmVuZGVyRXJyb3I7CiAgICBpZiAoZGVmbi5jbGVhckVycm9yKQogICAgICByZXN1bHQuY2xlYXJFcnJvciA9IGRlZm4uY2xlYXJFcnJvcjsKCiAgICByZXR1cm4gcmVzdWx0OwogIH0KfSkoKTsKCg=="></script>
<script src="data:application/x-javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAvLyB3aGVuIHVwZ3JhZGluZyBwbG90bHkuanMsCiAgICAvLyB1bmNvbW1lbnQgdGhpcyBjb25zb2xlLmxvZygpLCB0aGVuIGRvIGBsb2FkX2FsbCgpOyBwbG90X2x5KClgIAogICAgLy8gb3BlbiBpbiBjaHJvbWUsIHJpZ2h0LWNsaWNrIG9uIGNvbnNvbGUgb3V0cHV0OiAic2F2ZS1hcyIgLT4gInNjaGVtYS5qc29uIgogICAgLy8gU2NoZW1hIDwtIGpzb25saXRlOjpmcm9tSlNPTigifi9Eb3dubG9hZHMvc2NoZW1hLmpzb24iKQogICAgLy8gZGV2dG9vbHM6OnVzZV9kYXRhKFNjaGVtYSwgb3ZlcndyaXRlID0gVCwgaW50ZXJuYWwgPSBUKQogICAgLy8gY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoUGxvdGx5LlBsb3RTY2hlbWEuZ2V0KCkpKTsKICAgIAogICAgcmV0dXJuIHt9OwogIH0sCgogIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICBpZiAoaW5zdGFuY2UuYXV0b3NpemUpIHsKICAgICAgdmFyIHdpZHRoID0gaW5zdGFuY2Uud2lkdGggfHwgd2lkdGg7CiAgICAgIHZhciBoZWlnaHQgPSBpbnN0YW5jZS5oZWlnaHQgfHwgaGVpZ2h0OwogICAgICBQbG90bHkucmVsYXlvdXQoZWwuaWQsIHt3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0fSk7CiAgICB9CiAgfSwgIAogIAogIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgfQoKICAgIHZhciBncmFwaERpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsLmlkKTsKICAgIAogICAgLy8gVE9ETzogbW92ZSB0aGUgY29udHJvbCBwYW5lbCBpbmplY3Rpb24gc3RyYXRlZ3kgaW5zaWRlIGhlcmUuLi4KICAgIEhUTUxXaWRnZXRzLmFkZFBvc3RSZW5kZXJIYW5kbGVyKGZ1bmN0aW9uKCkgewogICAgICAKICAgICAgLy8gbG93ZXIgdGhlIHotaW5kZXggb2YgdGhlIG1vZGViYXIgdG8gcHJldmVudCBpdCBmcm9tIGhpZ2hqYWNraW5nIGhvdmVyCiAgICAgIC8vIChUT0RPOiBkbyB0aGlzIHZpYSBDU1M/KQogICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcm9wZW5zY2kvcGxvdGx5L2lzc3Vlcy85NTYKICAgICAgLy8gaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9wcm9wX3N0eWxlX3ppbmRleC5hc3AKICAgICAgdmFyIG1vZGViYXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmpzLXBsb3RseS1wbG90IC5wbG90bHkgLm1vZGViYXIiKTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtb2RlYmFycy5sZW5ndGg7IGkrKykgewogICAgICAgIG1vZGViYXJzW2ldLnN0eWxlLnpJbmRleCA9IDE7CiAgICAgIH0KICAgIH0pOwogICAgICAKICAgICAgLy8gaW5qZWN0IGEgImNvbnRyb2wgcGFuZWwiIGhvbGRpbmcgc2VsZWN0aXplL2R5bmFtaWMgY29sb3Igd2lkZ2V0KHMpCiAgICBpZiAoeC5zZWxlY3RpemUgfHwgeC5oaWdobGlnaHQuZHluYW1pYyAmJiAhaW5zdGFuY2UucGxvdGx5KSB7CiAgICAgIHZhciBmbGV4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIGZsZXguY2xhc3MgPSAicGxvdGx5LWNyb3NzdGFsay1jb250cm9sLXBhbmVsIjsKICAgICAgZmxleC5zdHlsZSA9ICJkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXAiOwogICAgICAKICAgICAgLy8gaW5qZWN0IHRoZSBjb2xvdXJwaWNrZXIgSFRNTCBjb250YWluZXIgaW50byB0aGUgZmxleGJveAogICAgICBpZiAoeC5oaWdobGlnaHQuZHluYW1pYykgewogICAgICAgIHZhciBwaWNrZXJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAKICAgICAgICB2YXIgcGlja2VySW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgIHBpY2tlcklucHV0LmlkID0gZWwuaWQgKyAiLWNvbG91cnBpY2tlciI7CiAgICAgICAgcGlja2VySW5wdXQucGxhY2Vob2xkZXIgPSAiYXNkYXNkIjsKICAgICAgICAKICAgICAgICB2YXIgcGlja2VyTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgIHBpY2tlckxhYmVsLmZvciA9IHBpY2tlcklucHV0LmlkOwogICAgICAgIHBpY2tlckxhYmVsLmlubmVySFRNTCA9ICJCcnVzaCBjb2xvciZuYnNwOyZuYnNwOyI7CiAgICAgICAgCiAgICAgICAgcGlja2VyRGl2LmFwcGVuZENoaWxkKHBpY2tlckxhYmVsKTsKICAgICAgICBwaWNrZXJEaXYuYXBwZW5kQ2hpbGQocGlja2VySW5wdXQpOwogICAgICAgIGZsZXguYXBwZW5kQ2hpbGQocGlja2VyRGl2KTsKICAgICAgfQogICAgICAKICAgICAgLy8gaW5qZWN0IHNlbGVjdGl6ZSBIVE1MIGNvbnRhaW5lcnMgKG9uZSBmb3IgZXZlcnkgY3Jvc3N0YWxrIGdyb3VwKQogICAgICBpZiAoeC5zZWxlY3RpemUpIHsKICAgICAgICB2YXIgaWRzID0gT2JqZWN0LmtleXMoeC5zZWxlY3RpemUpOwogICAgICAgIAogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICBjb250YWluZXIuaWQgPSBpZHNbaV07CiAgICAgICAgICBjb250YWluZXIuc3R5bGUgPSAid2lkdGg6IDgwJTsgaGVpZ2h0OiAxMCUiOwogICAgICAgICAgY29udGFpbmVyLmNsYXNzID0gImZvcm0tZ3JvdXAgY3Jvc3N0YWxrLWlucHV0LXBsb3RseS1oaWdobGlnaHQiOwogICAgICAgICAgCiAgICAgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICAgbGFiZWwuZm9yID0gaWRzW2ldOwogICAgICAgICAgbGFiZWwuaW5uZXJIVE1MID0geC5zZWxlY3RpemVbaWRzW2ldXS5ncm91cDsKICAgICAgICAgIGxhYmVsLmNsYXNzID0gImNvbnRyb2wtbGFiZWwiOwogICAgICAgICAgCiAgICAgICAgICB2YXIgc2VsZWN0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CiAgICAgICAgICBzZWxlY3QubXVsdGlwbGUgPSB0cnVlOwogICAgICAgICAgCiAgICAgICAgICBzZWxlY3REaXYuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChsYWJlbCk7CiAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoc2VsZWN0RGl2KTsKICAgICAgICAgIGZsZXguYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGZpbmFsbHksIGluc2VydCB0aGUgZmxleGJveCBpbnNpZGUgdGhlIGh0bWx3aWRnZXQgY29udGFpbmVyLAogICAgICAvLyBidXQgYmVmb3JlIHRoZSBwbG90bHkgZ3JhcGggZGl2CiAgICAgIGdyYXBoRGl2LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGZsZXgsIGdyYXBoRGl2KTsKICAgICAgCiAgICAgIGlmICh4LmhpZ2hsaWdodC5keW5hbWljKSB7CiAgICAgICAgdmFyIHBpY2tlciA9ICQoIiMiICsgcGlja2VySW5wdXQuaWQpOwogICAgICAgIHZhciBjb2xvcnMgPSB4LmhpZ2hsaWdodC5jb2xvciB8fCBbXTsKICAgICAgICAvLyBUT0RPOiBsZXQgdXNlcnMgc3BlY2lmeSBvcHRpb25zPwogICAgICAgIHZhciBvcHRzID0gewogICAgICAgICAgdmFsdWU6IGNvbG9yc1swXSwKICAgICAgICAgIHNob3dDb2xvdXI6ICJib3RoIiwKICAgICAgICAgIHBhbGV0dGU6ICJsaW1pdGVkIiwKICAgICAgICAgIGFsbG93ZWRDb2xzOiBjb2xvcnMuam9pbigiICIpLAogICAgICAgICAgd2lkdGg6ICIyMCUiLAogICAgICAgICAgaGVpZ2h0OiAiMTAlIgogICAgICAgIH07CiAgICAgICAgcGlja2VyLmNvbG91cnBpY2tlcih7Y2hhbmdlRGVsYXk6IDB9KTsKICAgICAgICBwaWNrZXIuY29sb3VycGlja2VyKCJzZXR0aW5ncyIsIG9wdHMpOwogICAgICAgIHBpY2tlci5jb2xvdXJwaWNrZXIoInZhbHVlIiwgb3B0cy52YWx1ZSk7CiAgICAgICAgLy8gaW5mb3JtIGNyb3NzdGFsayBhYm91dCBhIGNoYW5nZSBpbiB0aGUgY3VycmVudCBzZWxlY3Rpb24gY29sb3VyCiAgICAgICAgdmFyIGdycHMgPSB4LmhpZ2hsaWdodC5jdEdyb3VwcyB8fCBbXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdycHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNyb3NzdGFsay5ncm91cChncnBzW2ldKS52YXIoJ3Bsb3RseVNlbGVjdGlvbkNvbG91cicpCiAgICAgICAgICAgIC5zZXQocGlja2VyLmNvbG91cnBpY2tlcigndmFsdWUnKSk7CiAgICAgICAgfQogICAgICAgIHBpY2tlci5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdycHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgY3Jvc3N0YWxrLmdyb3VwKGdycHNbaV0pLnZhcigncGxvdGx5U2VsZWN0aW9uQ29sb3VyJykKICAgICAgICAgICAgICAuc2V0KHBpY2tlci5jb2xvdXJwaWNrZXIoJ3ZhbHVlJykpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIHJlbW92ZSAic2VuZERhdGFUb0Nsb3VkIiwgdW5sZXNzIHVzZXIgaGFzIHNwZWNpZmllZCB0aGV5IHdhbnQgaXQKICAgIHguY29uZmlnID0geC5jb25maWcgfHwge307CiAgICBpZiAoIXguY29uZmlnLmNsb3VkKSB7CiAgICAgIHguY29uZmlnLm1vZGVCYXJCdXR0b25zVG9SZW1vdmUgPSB4LmNvbmZpZy5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlIHx8IFtdOwogICAgICB4LmNvbmZpZy5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlLnB1c2goInNlbmREYXRhVG9DbG91ZCIpOwogICAgfQogICAgCiAgICAvLyBpZiBubyBwbG90IGV4aXN0cyB5ZXQsIGNyZWF0ZSBvbmUgd2l0aCBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbgogICAgaWYgKCFpbnN0YW5jZS5wbG90bHkpIHsKICAgICAgCiAgICAgIHZhciBwbG90ID0gUGxvdGx5LnBsb3QoZ3JhcGhEaXYsIHgpOwogICAgICBpbnN0YW5jZS5wbG90bHkgPSB0cnVlOwogICAgICBpbnN0YW5jZS5hdXRvc2l6ZSA9IHgubGF5b3V0LmF1dG9zaXplIHx8IHRydWU7CiAgICAgIGluc3RhbmNlLndpZHRoID0geC5sYXlvdXQud2lkdGg7CiAgICAgIGluc3RhbmNlLmhlaWdodCA9IHgubGF5b3V0LmhlaWdodDsKICAgICAgCiAgICB9IGVsc2UgewogICAgICAKICAgICAgLy8gdGhpcyBpcyBlc3NlbnRpYWxseSBlcXVpdmFsZW50IHRvIFBsb3RseS5uZXdQbG90KCksIGJ1dCBhdm9pZHMgY3JlYXRpbmcgCiAgICAgIC8vIGEgbmV3IHdlYmdsIGNvbnRleHQKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Bsb3RseS9wbG90bHkuanMvYmxvYi8yYjI0ZjlkZWY5MDE4MzFlNjEyODIwNzZjZjNmODM1NTk4ZDU2ZjBlL3NyYy9wbG90X2FwaS9wbG90X2FwaS5qcyNMNTMxLUw1MzIKICAgICAgCiAgICAgIC8vIFRPRE86IHJlc3RvcmUgY3Jvc3N0YWxrIHNlbGVjdGlvbnM/CiAgICAgIFBsb3RseS5wdXJnZShncmFwaERpdik7CiAgICAgIC8vIFRPRE86IHdoeSBpcyB0aGlzIG5lY2Vzc2FyeSB0byBnZXQgY3Jvc3N0YWxrIHdvcmtpbmc/CiAgICAgIGdyYXBoRGl2LmRhdGEgPSB1bmRlZmluZWQ7CiAgICAgIGdyYXBoRGl2LmxheW91dCA9IHVuZGVmaW5lZDsKICAgICAgdmFyIHBsb3QgPSBQbG90bHkucGxvdChncmFwaERpdiwgeCk7CiAgICAgIAogICAgfQogICAgCiAgICAvLyBUcmlnZ2VyIHBsb3RseS5qcyBjYWxscyBkZWZpbmVkIHZpYSBgcGxvdGx5UHJveHkoKWAKICAgIHBsb3QudGhlbihmdW5jdGlvbigpIHsKICAgICAgaWYgKEhUTUxXaWRnZXRzLnNoaW55TW9kZSkgewogICAgICAgIFNoaW55LmFkZEN1c3RvbU1lc3NhZ2VIYW5kbGVyKCJwbG90bHktY2FsbHMiLCBmdW5jdGlvbihtc2cpIHsKICAgICAgICAgIHZhciBnZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1zZy5pZCk7CiAgICAgICAgICBpZiAoIWdkKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgZmluZCBwbG90bHkgZ3JhcGggd2l0aCBpZDogIiArIG1zZy5pZCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIVBsb3RseVttc2cubWV0aG9kXSkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWV0aG9kICIgKyBtc2cubWV0aG9kKTsKICAgICAgICAgIH0KICAgICAgICAgIHZhciBhcmdzID0gW2dkXS5jb25jYXQobXNnLmFyZ3MpOwogICAgICAgICAgUGxvdGx5W21zZy5tZXRob2RdLmFwcGx5KG51bGwsIGFyZ3MpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9KTsKICAgIAogICAgLy8gQXR0YWNoIGF0dHJpYnV0ZXMgKGUuZy4sICJrZXkiLCAieiIpIHRvIHBsb3RseSBldmVudCBkYXRhCiAgICBmdW5jdGlvbiBldmVudERhdGFXaXRoS2V5KGV2ZW50RGF0YSkgewogICAgICBpZiAoZXZlbnREYXRhID09PSB1bmRlZmluZWQgfHwgIWV2ZW50RGF0YS5oYXNPd25Qcm9wZXJ0eSgicG9pbnRzIikpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZXR1cm4gZXZlbnREYXRhLnBvaW50cy5tYXAoZnVuY3Rpb24ocHQpIHsKICAgICAgICB2YXIgb2JqID0gewogICAgICAgICAgY3VydmVOdW1iZXI6IHB0LmN1cnZlTnVtYmVyLCAKICAgICAgICAgIHBvaW50TnVtYmVyOiBwdC5wb2ludE51bWJlciwgCiAgICAgICAgICB4OiBwdC54LAogICAgICAgICAgeTogcHQueQogICAgICAgIH07CiAgICAgICAgLyogCiAgICAgICAgICBUTDtEUjogKEkgdGhpbmspIHdlIGhhdmUgdG8gc2VsZWN0IHRoZSBncmFwaCBkaXYgKGFnYWluKSB0byBhdHRhY2gga2V5cy4uLgogICAgICAgICAgCiAgICAgICAgICBXaHk/IFJlbWVtYmVyIHRoYXQgY3Jvc3N0YWxrIHdpbGwgZHluYW1pY2FsbHkgYWRkL2RlbGV0ZSB0cmFjZXMgCiAgICAgICAgICAoc2VlIHRyYWNlTWFuYWdlci5wcm90b3R5cGUudXBkYXRlU2VsZWN0aW9uKCkgYmVsb3cpCiAgICAgICAgICBGb3IgdGhpcyByZWFzb24sIHdlIGNhbid0IHNpbXBseSBncmFiIGtleXMgZnJvbSB4LmRhdGEgKGxpa2Ugd2UgZGlkIHByZXZpb3VzbHkpCiAgICAgICAgICBNb3Jlb3Zlciwgd2UgY2FuJ3QgdXNlIF9mdWxsRGF0YSwgc2luY2UgdGhhdCBkb2Vzbid0IGluY2x1ZGUgCiAgICAgICAgICB1bm9mZmljaWFsIGF0dHJpYnV0ZXMuIEl0J3MgdHJ1ZSB0aGF0IGNsaWNrL2hvdmVyIGV2ZW50cyBmaXJlIHdpdGggCiAgICAgICAgICBwdC5kYXRhLCBidXQgZHJhZyBldmVudHMgZG9uJ3QuLi4KICAgICAgICAqLwogICAgICAgIHZhciBnZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsLmlkKTsKICAgICAgICB2YXIgdHJhY2UgPSBnZC5kYXRhW3B0LmN1cnZlTnVtYmVyXTsKICAgICAgICAKICAgICAgICAvLyBBZGQgb3RoZXIgYXR0cmlidXRlcyBoZXJlLCBpZiBkZXNpcmVkCiAgICAgICAgaWYgKCF0cmFjZS5faXNTaW1wbGVLZXkpIHsKICAgICAgICAgIHZhciBhdHRyc1RvQXR0YWNoID0gWyJrZXkiLCAieiJdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyBzaW1wbGUga2V5cyBmaXJlIHRoZSB3aG9sZSBrZXkKICAgICAgICAgIG9iai5rZXkgPSB0cmFjZS5rZXk7CiAgICAgICAgICB2YXIgYXR0cnNUb0F0dGFjaCA9IFsieiJdOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF0dHJzVG9BdHRhY2gubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBhdHRyID0gdHJhY2VbYXR0cnNUb0F0dGFjaFtpXV07CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhdHRyKSkgewogICAgICAgICAgICAgIC8vIHBvaW50TnVtYmVyIGNhbiBiZSBhbiBhcnJheSAoZS5nLiwgaGVhdG1hcHMpCiAgICAgICAgICAgICAgLy8gVE9ETzogY2FuIHBvaW50TnVtYmVyIGJlIDNEPwogICAgICAgICAgICAgIG9ialthdHRyc1RvQXR0YWNoW2ldXSA9IHR5cGVvZiBwdC5wb2ludE51bWJlciA9PT0gIm51bWJlciIgPyAKICAgICAgICAgICAgICAgIGF0dHJbcHQucG9pbnROdW1iZXJdIDogYXR0cltwdC5wb2ludE51bWJlclswXV1bcHQucG9pbnROdW1iZXJbMV1dOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gb2JqOwogICAgICB9KTsKICAgIH0KICAgIAogICAgLy8gc2VuZCB1c2VyIGlucHV0IGV2ZW50IGRhdGEgdG8gc2hpbnkKICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHsKICAgICAgLy8gaHR0cHM6Ly9wbG90Lmx5L2phdmFzY3JpcHQvem9vbS1ldmVudHMvCiAgICAgIGdyYXBoRGl2Lm9uKCdwbG90bHlfcmVsYXlvdXQnLCBmdW5jdGlvbihkKSB7CiAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZSgKICAgICAgICAgICIuY2xpZW50VmFsdWUtcGxvdGx5X3JlbGF5b3V0LSIgKyB4LnNvdXJjZSwgCiAgICAgICAgICBKU09OLnN0cmluZ2lmeShkKQogICAgICAgICk7CiAgICAgIH0pOwogICAgICBncmFwaERpdi5vbigncGxvdGx5X2hvdmVyJywgZnVuY3Rpb24oZCkgewogICAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UoCiAgICAgICAgICAiLmNsaWVudFZhbHVlLXBsb3RseV9ob3Zlci0iICsgeC5zb3VyY2UsIAogICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZXZlbnREYXRhV2l0aEtleShkKSkKICAgICAgICApOwogICAgICB9KTsKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV9jbGljaycsIGZ1bmN0aW9uKGQpIHsKICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKAogICAgICAgICAgIi5jbGllbnRWYWx1ZS1wbG90bHlfY2xpY2stIiArIHguc291cmNlLCAKICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGV2ZW50RGF0YVdpdGhLZXkoZCkpCiAgICAgICAgKTsKICAgICAgfSk7CiAgICAgIGdyYXBoRGl2Lm9uKCdwbG90bHlfc2VsZWN0ZWQnLCBmdW5jdGlvbihkKSB7CiAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZSgKICAgICAgICAgICIuY2xpZW50VmFsdWUtcGxvdGx5X3NlbGVjdGVkLSIgKyB4LnNvdXJjZSwgCiAgICAgICAgICBKU09OLnN0cmluZ2lmeShldmVudERhdGFXaXRoS2V5KGQpKQogICAgICAgICk7CiAgICAgIH0pOwogICAgICBncmFwaERpdi5vbigncGxvdGx5X3VuaG92ZXInLCBmdW5jdGlvbihldmVudERhdGEpIHsKICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKCIuY2xpZW50VmFsdWUtcGxvdGx5X2hvdmVyLSIgKyB4LnNvdXJjZSwgbnVsbCk7CiAgICAgIH0pOwogICAgICBncmFwaERpdi5vbigncGxvdGx5X2RvdWJsZWNsaWNrJywgZnVuY3Rpb24oZXZlbnREYXRhKSB7CiAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLXBsb3RseV9jbGljay0iICsgeC5zb3VyY2UsIG51bGwpOwogICAgICB9KTsKICAgICAgLy8gJ3Bsb3RseV9kZXNlbGVjdCcgaXMgY29kZSBmb3IgZG91YmxlY2xpY2sgd2hlbiBpbiBzZWxlY3QgbW9kZQogICAgICBncmFwaERpdi5vbigncGxvdGx5X2Rlc2VsZWN0JywgZnVuY3Rpb24oZXZlbnREYXRhKSB7CiAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLXBsb3RseV9zZWxlY3RlZC0iICsgeC5zb3VyY2UsIG51bGwpOwogICAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UoIi5jbGllbnRWYWx1ZS1wbG90bHlfY2xpY2stIiArIHguc291cmNlLCBudWxsKTsKICAgICAgfSk7CiAgICB9IAogICAgCiAgICAKICAgIC8vIEdpdmVuIGFuIGFycmF5IG9mIHtjdXJ2ZU51bWJlcjogeCwgcG9pbnROdW1iZXI6IHl9IG9iamVjdHMsCiAgICAvLyByZXR1cm4gYSBoYXNoIG9mIHsKICAgIC8vICAgc2V0MToge3ZhbHVlOiBba2V5MSwga2V5MiwgLi4uXSwgX2lzU2ltcGxlS2V5OiBmYWxzZX0sIAogICAgLy8gICBzZXQyOiB7dmFsdWU6IFtrZXkzLCBrZXk0LCAuLi5dLCBfaXNTaW1wbGVLZXk6IGZhbHNlfQogICAgLy8gfQogICAgZnVuY3Rpb24gcG9pbnRzVG9LZXlzKHBvaW50cykgewogICAgICB2YXIga2V5c0J5U2V0ID0ge307CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgCiAgICAgICAgdmFyIHRyYWNlID0gZ3JhcGhEaXYuZGF0YVtwb2ludHNbaV0uY3VydmVOdW1iZXJdOwogICAgICAgIGlmICghdHJhY2Uua2V5IHx8ICF0cmFjZS5zZXQpIHsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBzZXQgZGVmYXVsdHMgZm9yIHRoaXMga2V5U2V0CiAgICAgICAgLy8gbm90ZSB0aGF0IHdlIGRvbid0IHRyYWNrIHRoZSBuZXN0ZWQgcHJvcGVydHkgKHlldCkgc2luY2Ugd2UgYWx3YXlzIAogICAgICAgIC8vIGVtaXQgdGhlIHVuaW9uIC0tIGh0dHA6Ly9jcHNpZXZlcnQuZ2l0aHViLmlvL3RhbGtzLzIwMTYxMjEyYi8jMjEKICAgICAgICBrZXlzQnlTZXRbdHJhY2Uuc2V0XSA9IGtleXNCeVNldFt0cmFjZS5zZXRdIHx8IHsKICAgICAgICAgIHZhbHVlOiBbXSwKICAgICAgICAgIF9pc1NpbXBsZUtleTogdHJhY2UuX2lzU2ltcGxlS2V5CiAgICAgICAgfTsKICAgICAgICAKICAgICAgICAvLyBzZWxlY3RpbmcgYSBwb2ludCBvZiBhICJzaW1wbGUiIHRyYWNlIG1lYW5zOiBzZWxlY3QgdGhlIAogICAgICAgIC8vIGVudGlyZSBrZXkgYXR0YWNoZWQgdG8gdGhpcyB0cmFjZSwgd2hpY2ggaXMgdXNlZnVsIGZvciwKICAgICAgICAvLyBzYXkgY2xpY2tpbmcgb24gYSBmaXR0ZWQgbGluZSB0byBzZWxlY3QgY29ycmVzcG9uZGluZyBvYnNlcnZhdGlvbnMgCiAgICAgICAgdmFyIGtleSA9IHRyYWNlLl9pc1NpbXBsZUtleSA/IHRyYWNlLmtleSA6IHRyYWNlLmtleVtwb2ludHNbaV0ucG9pbnROdW1iZXJdOwogICAgICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA4NjUwMjUvbWVyZ2UtZmxhdHRlbi1hbi1hcnJheS1vZi1hcnJheXMtaW4tamF2YXNjcmlwdAogICAgICAgIHZhciBrZXlGbGF0ID0gdHJhY2UuX2lzTmVzdGVkS2V5ID8gW10uY29uY2F0LmFwcGx5KFtdLCBrZXkpIDoga2V5OwogICAgICAgIAogICAgICAgIC8vIFRPRE86IGJldHRlciB0byBvbmx5IGFkZCBuZXcgdmFsdWVzPwogICAgICAgIGtleXNCeVNldFt0cmFjZS5zZXRdLnZhbHVlID0ga2V5c0J5U2V0W3RyYWNlLnNldF0udmFsdWUuY29uY2F0KGtleUZsYXQpOwogICAgICB9CiAgICAgIAogICAgICByZXR1cm4ga2V5c0J5U2V0OwogICAgfQogICAgCiAgICAKICAgIHguaGlnaGxpZ2h0LmNvbG9yID0geC5oaWdobGlnaHQuY29sb3IgfHwgW107CiAgICAvLyBtYWtlIHN1cmUgaGlnaGxpZ2h0IGNvbG9yIGlzIGFuIGFycmF5CiAgICBpZiAoIUFycmF5LmlzQXJyYXkoeC5oaWdobGlnaHQuY29sb3IpKSB7CiAgICAgIHguaGlnaGxpZ2h0LmNvbG9yID0gW3guaGlnaGxpZ2h0LmNvbG9yXTsKICAgIH0KCiAgICB2YXIgdHJhY2VNYW5hZ2VyID0gbmV3IFRyYWNlTWFuYWdlcihncmFwaERpdiwgeC5oaWdobGlnaHQpOwoKICAgIC8vIEdhdGhlciBhbGwgKnVuaXF1ZSogc2V0cy4KICAgIHZhciBhbGxTZXRzID0gW107CiAgICBmb3IgKHZhciBjdXJ2ZUlkeCA9IDA7IGN1cnZlSWR4IDwgeC5kYXRhLmxlbmd0aDsgY3VydmVJZHgrKykgewogICAgICB2YXIgbmV3U2V0ID0geC5kYXRhW2N1cnZlSWR4XS5zZXQ7CiAgICAgIGlmIChuZXdTZXQpIHsKICAgICAgICBpZiAoYWxsU2V0cy5pbmRleE9mKG5ld1NldCkgPT09IC0xKSB7CiAgICAgICAgICBhbGxTZXRzLnB1c2gobmV3U2V0KTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICAvLyByZWdpc3RlciBldmVudCBsaXN0ZW5lcnMgZm9yIGFsbCBzZXRzCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbFNldHMubGVuZ3RoOyBpKyspIHsKICAgICAgCiAgICAgIHZhciBzZXQgPSBhbGxTZXRzW2ldOwogICAgICB2YXIgc2VsZWN0aW9uID0gbmV3IGNyb3NzdGFsay5TZWxlY3Rpb25IYW5kbGUoc2V0KTsKICAgICAgdmFyIGZpbHRlciA9IG5ldyBjcm9zc3RhbGsuRmlsdGVySGFuZGxlKHNldCk7CiAgICAgIAogICAgICB2YXIgZmlsdGVyQ2hhbmdlID0gZnVuY3Rpb24oZSkgewogICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlRmlsdGVyKHNldCwgZS52YWx1ZSk7CiAgICAgIH07CiAgICAgIGZpbHRlci5vbigiY2hhbmdlIiwgZmlsdGVyQ2hhbmdlKTsKICAgICAgCiAgICAgIAogICAgICB2YXIgc2VsZWN0aW9uQ2hhbmdlID0gZnVuY3Rpb24oZSkgewogICAgICAgIAogICAgICAgIC8vIGFycmF5IG9mICJldmVudCBvYmplY3RzIiB0cmFja2luZyB0aGUgc2VsZWN0aW9uIGhpc3RvcnkKICAgICAgICAvLyB0aGlzIGlzIHVzZWQgdG8gYXZvaWQgYWRkaW5nIHJlZHVuZGFudCBzZWxlY3Rpb25zCiAgICAgICAgdmFyIHNlbGVjdGlvbkhpc3RvcnkgPSBjcm9zc3RhbGsudmFyKCJwbG90bHlTZWxlY3Rpb25IaXN0b3J5IikuZ2V0KCkgfHwgW107CiAgICAgICAgCiAgICAgICAgLy8gQ29uc3RydWN0IGFuIGV2ZW50IG9iamVjdCAiZGVmaW5pbmciIHRoZSBjdXJyZW50IGV2ZW50LiAKICAgICAgICB2YXIgZXZlbnQgPSB7CiAgICAgICAgICByZWNlaXZlcklEOiB0cmFjZU1hbmFnZXIuZ2QuaWQsCiAgICAgICAgICBwbG90bHlTZWxlY3Rpb25Db2xvdXI6IGNyb3NzdGFsay5ncm91cChzZXQpLnZhcigicGxvdGx5U2VsZWN0aW9uQ29sb3VyIikuZ2V0KCkKICAgICAgICB9OwogICAgICAgIGV2ZW50W3NldF0gPSBlLnZhbHVlOwogICAgICAgIC8vIFRPRE86IGlzIHRoZXJlIGEgc21hcnRlciB3YXkgdG8gY2hlY2sgb2JqZWN0IGVxdWFsaXR5PwogICAgICAgIGlmIChzZWxlY3Rpb25IaXN0b3J5Lmxlbmd0aCA+IDApIHsKICAgICAgICAgIHZhciBldiA9IEpTT04uc3RyaW5naWZ5KGV2ZW50KTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0aW9uSGlzdG9yeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgc2VsID0gSlNPTi5zdHJpbmdpZnkoc2VsZWN0aW9uSGlzdG9yeVtpXSk7CiAgICAgICAgICAgIGlmIChzZWwgPT0gZXYpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gYWNjdW11bGF0ZSBoaXN0b3J5IGZvciBwZXJzaXN0ZW50IHNlbGVjdGlvbgogICAgICAgIGlmICgheC5oaWdobGlnaHQucGVyc2lzdGVudCkgewogICAgICAgICAgc2VsZWN0aW9uSGlzdG9yeSA9IFtldmVudF07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNlbGVjdGlvbkhpc3RvcnkucHVzaChldmVudCk7CiAgICAgICAgfQogICAgICAgIGNyb3NzdGFsay52YXIoInBsb3RseVNlbGVjdGlvbkhpc3RvcnkiKS5zZXQoc2VsZWN0aW9uSGlzdG9yeSk7CiAgICAgICAgCiAgICAgICAgLy8gZG8gdGhlIGFjdHVhbCB1cGRhdGluZyBvZiB0cmFjZXMsIGZyYW1lcywgYW5kIHRoZSBzZWxlY3RpemUgd2lkZ2V0CiAgICAgICAgdHJhY2VNYW5hZ2VyLnVwZGF0ZVNlbGVjdGlvbihzZXQsIGUudmFsdWUpOwogICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zZWxlY3RpemUvc2VsZWN0aXplLmpzL2Jsb2IvbWFzdGVyL2RvY3MvYXBpLm1kI21ldGhvZHNfaXRlbXMKICAgICAgICBpZiAoeC5zZWxlY3RpemUpIHsKICAgICAgICAgIGlmICgheC5oaWdobGlnaHQucGVyc2lzdGVudCB8fCBlLnZhbHVlID09PSBudWxsKSB7CiAgICAgICAgICAgIHNlbGVjdGl6ZS5jbGVhcih0cnVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHNlbGVjdGl6ZS5hZGRJdGVtcyhlLnZhbHVlLCB0cnVlKTsKICAgICAgICAgIHNlbGVjdGl6ZS5jbG9zZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBzZWxlY3Rpb24ub24oImNoYW5nZSIsIHNlbGVjdGlvbkNoYW5nZSk7CiAgICAgIAogICAgICAvLyBTZXQgYSBjcm9zc3RhbGsgdmFyaWFibGUgc2VsZWN0aW9uIHZhbHVlLCB0cmlnZ2VyaW5nIGFuIHVwZGF0ZQogICAgICBncmFwaERpdi5vbih4LmhpZ2hsaWdodC5vbiwgZnVuY3Rpb24gdHVybk9uKGUpIHsKICAgICAgICBpZiAoZSkgewogICAgICAgICAgdmFyIHNlbGVjdGVkS2V5cyA9IHBvaW50c1RvS2V5cyhlLnBvaW50cyk7CiAgICAgICAgICAvLyBLZXlzIGFyZSBncm91cCBuYW1lcywgdmFsdWVzIGFyZSBhcnJheSBvZiBzZWxlY3RlZCBrZXlzIGZyb20gZ3JvdXAuCiAgICAgICAgICBmb3IgKHZhciBzZXQgaW4gc2VsZWN0ZWRLZXlzKSB7CiAgICAgICAgICAgIGlmIChzZWxlY3RlZEtleXMuaGFzT3duUHJvcGVydHkoc2V0KSkgewogICAgICAgICAgICAgIHNlbGVjdGlvbi5zZXQoc2VsZWN0ZWRLZXlzW3NldF0udmFsdWUsIHtzZW5kZXI6IGVsfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICAKICAgICAgZ3JhcGhEaXYub24oeC5oaWdobGlnaHQub2ZmLCBmdW5jdGlvbiB0dXJuT2ZmKGUpIHsKICAgICAgICAvLyByZW1vdmUgYW55IHZpc3VhbCBjbHVlcwogICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICAvLyByZW1vdmUgYW55IHNlbGVjdGlvbiBoaXN0b3J5CiAgICAgICAgY3Jvc3N0YWxrLnZhcigicGxvdGx5U2VsZWN0aW9uSGlzdG9yeSIpLnNldChudWxsKTsKICAgICAgICAvLyB0cmlnZ2VyIHRoZSBhY3R1YWwgcmVtb3ZhbCBvZiBzZWxlY3Rpb24gdHJhY2VzCiAgICAgICAgc2VsZWN0aW9uLnNldChudWxsLCB7c2VuZGVyOiBlbH0pOwogICAgICB9KTsKICAgICAgICAgIAogICAgICAvLyByZWdpc3RlciBhIGNhbGxiYWNrIGZvciBzZWxlY3RpemUgc28gdGhhdCB0aGVyZSBpcyBiaS1kaXJlY3Rpb25hbAogICAgICAvLyBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHdpZGdldCBhbmQgZGlyZWN0IG1hbmlwdWxhdGlvbiBldmVudHMKICAgICAgaWYgKHguc2VsZWN0aXplKSB7CiAgICAgICAgdmFyIHNlbGVjdGl6ZUlEID0gT2JqZWN0LmtleXMoeC5zZWxlY3RpemUpW2ldOwogICAgICAgIHZhciBpdGVtcyA9IHguc2VsZWN0aXplW3NlbGVjdGl6ZUlEXS5pdGVtczsKICAgICAgICB2YXIgZmlyc3QgPSBbe3ZhbHVlOiAiIiwgbGFiZWw6ICIoQWxsKSJ9XTsKICAgICAgICB2YXIgb3B0cyA9IHsKICAgICAgICAgIG9wdGlvbnM6IGZpcnN0LmNvbmNhdChpdGVtcyksCiAgICAgICAgICBzZWFyY2hGaWVsZDogImxhYmVsIiwKICAgICAgICAgIHZhbHVlRmllbGQ6ICJ2YWx1ZSIsCiAgICAgICAgICBsYWJlbEZpZWxkOiAibGFiZWwiLAogICAgICAgICAgbWF4SXRlbXM6IDUwCiAgICAgICAgfTsKICAgICAgICB2YXIgc2VsZWN0ID0gJCgiIyIgKyBzZWxlY3RpemVJRCkuZmluZCgic2VsZWN0IilbMF07CiAgICAgICAgdmFyIHNlbGVjdGl6ZSA9ICQoc2VsZWN0KS5zZWxlY3RpemUob3B0cylbMF0uc2VsZWN0aXplOwogICAgICAgIC8vIE5PVEU6IHRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gKmRpcmVjdGx5KiBhbHRlcmluZyAKICAgICAgICAvLyBkcm9wZG93biBpdGVtcwogICAgICAgIHNlbGVjdGl6ZS5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgY3VycmVudEl0ZW1zID0gdHJhY2VNYW5hZ2VyLmdyb3VwU2VsZWN0aW9uc1tzZXRdIHx8IFtdOwogICAgICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjdXJyZW50SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICBzZWxlY3RpemUucmVtb3ZlSXRlbShjdXJyZW50SXRlbXNbaV0sIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbmV3SXRlbXMgPSBzZWxlY3RpemUuaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGlkeCkgeyAKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJdGVtcy5pbmRleE9mKGlkeCkgPCAwOwogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlU2VsZWN0aW9uKHNldCwgbmV3SXRlbXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gSXRlbSBoYXMgYmVlbiByZW1vdmVkLi4uCiAgICAgICAgICAgIC8vIFRPRE86IHRoaXMgbG9naWMgd29uJ3Qgd29yayBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgcGFsZXR0ZSAKICAgICAgICAgICAgdHJhY2VNYW5hZ2VyLnVwZGF0ZVNlbGVjdGlvbihzZXQsIG51bGwpOwogICAgICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlU2VsZWN0aW9uKHNldCwgc2VsZWN0aXplLml0ZW1zKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICAKICAgICAgCiAgICAgIAogICAgICAKICAgICAgCiAgICAgICAgICAKICAgICAgCiAgICAgIAogICAgfQogICAgCiAgfSAvLyBlbmQgb2YgcmVuZGVyVmFsdWUKfSk7IC8vIGVuZCBvZiB3aWRnZXQgZGVmaW5pdGlvbgoKLyoqCiAqIEBwYXJhbSBncmFwaERpdiBUaGUgUGxvdGx5IGdyYXBoIGRpdgogKiBAcGFyYW0gaGlnaGxpZ2h0IEFuIG9iamVjdCB3aXRoIG9wdGlvbnMgZm9yIHVwZGF0aW5nIHNlbGVjdGlvbihzKQogKi8KZnVuY3Rpb24gVHJhY2VNYW5hZ2VyKGdyYXBoRGl2LCBoaWdobGlnaHQpIHsKICAvLyBUaGUgUGxvdGx5IGdyYXBoIGRpdgogIHRoaXMuZ2QgPSBncmFwaERpdjsKCiAgLy8gUHJlc2VydmUgdGhlIG9yaWdpbmFsIGRhdGEuCiAgLy8gVE9ETzogdHJ5IHVzaW5nIExpYi5leHRlbmRGbGF0KCkgYXMgZG9uZSBpbiAgCiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3Bsb3RseS9wbG90bHkuanMvcHVsbC8xMTM2IAogIHRoaXMub3JpZ0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGdyYXBoRGl2LmRhdGEpKTsKICAKICAvLyBhdm9pZCBkb2luZyB0aGlzIG92ZXIgYW5kIG92ZXIKICB0aGlzLm9yaWdPcGFjaXR5ID0gW107CiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9yaWdEYXRhLmxlbmd0aDsgaSsrKSB7CiAgICB0aGlzLm9yaWdPcGFjaXR5W2ldID0gdGhpcy5vcmlnRGF0YVtpXS5vcGFjaXR5IHx8IDE7CiAgfQoKICAvLyBrZXk6IGdyb3VwIG5hbWUsIHZhbHVlOiBudWxsIG9yIGFycmF5IG9mIGtleXMgcmVwcmVzZW50aW5nIHRoZQogIC8vIG1vc3QgcmVjZW50bHkgcmVjZWl2ZWQgc2VsZWN0aW9uIGZvciB0aGF0IGdyb3VwLgogIHRoaXMuZ3JvdXBTZWxlY3Rpb25zID0ge307CiAgCiAgLy8gc2VsZWN0aW9uIHBhcmFtZXRlcnMgKGUuZy4sIHRyYW5zaWVudCB2ZXJzdXMgcGVyc2lzdGVudCBzZWxlY3Rpb24pCiAgdGhpcy5oaWdobGlnaHQgPSBoaWdobGlnaHQ7Cn0KClRyYWNlTWFuYWdlci5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbigpIHsKICAvLyBUT0RPOiBVbmhvb2sgYWxsIGV2ZW50IGhhbmRsZXJzCn07CgpUcmFjZU1hbmFnZXIucHJvdG90eXBlLnVwZGF0ZUZpbHRlciA9IGZ1bmN0aW9uKGdyb3VwLCBrZXlzKSB7CgogIGlmICh0eXBlb2Yoa2V5cykgPT09ICJ1bmRlZmluZWQiIHx8IGtleXMgPT09IG51bGwpIHsKICAgIAogICAgdGhpcy5nZC5kYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLm9yaWdEYXRhKSk7CiAgICAKICB9IGVsc2UgewogIAogICAgdmFyIHRyYWNlcyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9yaWdEYXRhLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciB0cmFjZSA9IHRoaXMub3JpZ0RhdGFbaV07CiAgICAgIGlmICghdHJhY2Uua2V5IHx8IHRyYWNlLnNldCAhPT0gZ3JvdXApIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICB2YXIgbWF0Y2hGdW5jID0gZ2V0TWF0Y2hGdW5jKHRyYWNlKTsKICAgICAgdmFyIG1hdGNoZXMgPSBtYXRjaEZ1bmModHJhY2Uua2V5LCBrZXlzKTsKICAgICAgCiAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IDApIHsKICAgICAgICBpZiAoIXRyYWNlLl9pc1NpbXBsZUtleSkgewogICAgICAgICAgLy8gc3Vic2V0QXJyYXlBdHRycyBkb2Vzbid0IG11dGF0ZSB0cmFjZSAoaXQgbWFrZXMgYSBtb2RpZmllZCBjbG9uZSkKICAgICAgICAgIHRyYWNlID0gc3Vic2V0QXJyYXlBdHRycyh0cmFjZSwgbWF0Y2hlcyk7CiAgICAgICAgfQogICAgICAgIHRyYWNlcy5wdXNoKHRyYWNlKTsKICAgICAgfQogICAgfQogIH0KICAKICB0aGlzLmdkLmRhdGEgPSB0cmFjZXM7CiAgUGxvdGx5LnJlZHJhdyh0aGlzLmdkKTsKICAKICAvLyBOT1RFOiB3ZSBwdXJwb3NlbHkgZG8gX25vdF8gcmVzdG9yZSBzZWxlY3Rpb24ocyksIHNpbmNlIG9uIGZpbHRlciwKICAvLyBheGlzIGxpa2VseSB3aWxsIHVwZGF0ZSwgY2hhbmdpbmcgdGhlIHBpeGVsIC0+IGRhdGEgbWFwcGluZywgbGVhZGluZyAKICAvLyB0byBhIGxpa2VseSBtaXNtYXRjaCBpbiB0aGUgYnJ1c2ggb3V0bGluZSBhbmQgaGlnaGxpZ2h0ZWQgbWFya3MKICAKfTsKClRyYWNlTWFuYWdlci5wcm90b3R5cGUudXBkYXRlU2VsZWN0aW9uID0gZnVuY3Rpb24oZ3JvdXAsIGtleXMpIHsKICAKICBpZiAoa2V5cyAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShrZXlzKSkgewogICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGtleXMgYXJndW1lbnQ7IG51bGwgb3IgYXJyYXkgZXhwZWN0ZWQiKTsKICB9CiAgCiAgLy8gaWYgc2VsZWN0aW9uIGhhcyBiZWVuIGNsZWFyZWQsIG9yIGlmIHRoaXMgaXMgdHJhbnNpZW50CiAgLy8gc2VsZWN0aW9uLCBkZWxldGUgdGhlICJzZWxlY3Rpb24gdHJhY2VzIgogIHZhciBuTmV3VHJhY2VzID0gdGhpcy5nZC5kYXRhLmxlbmd0aCAtIHRoaXMub3JpZ0RhdGEubGVuZ3RoOwogIGlmIChrZXlzID09PSBudWxsIHx8ICF0aGlzLmhpZ2hsaWdodC5wZXJzaXN0ZW50ICYmIG5OZXdUcmFjZXMgPiAwKSB7CiAgICB2YXIgdHJhY2VzVG9SZW1vdmUgPSBbXTsKICAgIGZvciAodmFyIGkgPSB0aGlzLm9yaWdEYXRhLmxlbmd0aDsgaSA8IHRoaXMuZ2QuZGF0YS5sZW5ndGg7IGkrKykgewogICAgICB0cmFjZXNUb1JlbW92ZS5wdXNoKGkpOwogICAgfQogICAgUGxvdGx5LmRlbGV0ZVRyYWNlcyh0aGlzLmdkLCB0cmFjZXNUb1JlbW92ZSk7CiAgICB0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0gPSBrZXlzOwogIH0gZWxzZSB7CiAgICAvLyBhZGQgdG8gdGhlIGdyb3VwU2VsZWN0aW9uLCByYXRoZXIgdGhhbiBvdmVyd3JpdGluZyBpdAogICAgLy8gVE9ETzogY2FuIHRoaXMgYmUgcmVtb3ZlZD8KICAgIHRoaXMuZ3JvdXBTZWxlY3Rpb25zW2dyb3VwXSA9IHRoaXMuZ3JvdXBTZWxlY3Rpb25zW2dyb3VwXSB8fCBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgayA9IGtleXNbaV07CiAgICAgIGlmICh0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0uaW5kZXhPZihrKSA8IDApIHsKICAgICAgICB0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0ucHVzaChrKTsKICAgICAgfQogICAgfQogIH0KICAKICBpZiAoa2V5cyA9PT0gbnVsbCkgewogICAgCiAgICBQbG90bHkucmVzdHlsZSh0aGlzLmdkLCB7Im9wYWNpdHkiOiB0aGlzLm9yaWdPcGFjaXR5fSk7CiAgICAKICB9IGVsc2UgaWYgKGtleXMubGVuZ3RoID49IDEpIHsKICAgIAogICAgLy8gcGxhY2Vob2xkZXIgZm9yIG5ldyAic2VsZWN0aW9uIHRyYWNlcyIKICAgIHZhciB0cmFjZXMgPSBbXTsKICAgIC8vIHRoaXMgdmFyaWFibGUgaXMgc2V0IGluIFIvaGlnaGxpZ2h0LlIKICAgIHZhciBzZWxlY3Rpb25Db2xvdXIgPSBjcm9zc3RhbGsuZ3JvdXAoZ3JvdXApLnZhcigicGxvdGx5U2VsZWN0aW9uQ29sb3VyIikuZ2V0KCkgfHwgCiAgICAgIHRoaXMuaGlnaGxpZ2h0LmNvbG9yWzBdOwoKICAgIC8vIHNlbGVjdGlvbiBicnVzaCBhdHRyaWJ1dGVzCiAgICB2YXIgc2VsZWN0QXR0cnMgPSBPYmplY3Qua2V5cyh0aGlzLmhpZ2hsaWdodC5zZWxlY3RlZCk7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9yaWdEYXRhLmxlbmd0aDsgaSsrKSB7CiAgICAgIC8vIFRPRE86IHRyeSB1c2luZyBMaWIuZXh0ZW5kRmxhdCgpIGFzIGRvbmUgaW4gIAogICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGxvdGx5L3Bsb3RseS5qcy9wdWxsLzExMzYgCiAgICAgIHZhciB0cmFjZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5nZC5kYXRhW2ldKSk7CiAgICAgIGlmICghdHJhY2Uua2V5IHx8IHRyYWNlLnNldCAhPT0gZ3JvdXApIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICAvLyBHZXQgc29ydGVkIGFycmF5IG9mIG1hdGNoaW5nIGluZGljZXMgaW4gdHJhY2Uua2V5CiAgICAgIHZhciBtYXRjaEZ1bmMgPSBnZXRNYXRjaEZ1bmModHJhY2UpOwogICAgICB2YXIgbWF0Y2hlcyA9IG1hdGNoRnVuYyh0cmFjZS5rZXksIGtleXMpOwogICAgICAKICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID4gMCkgewogICAgICAgIC8vIElmIHRoaXMgaXMgYSAic2ltcGxlIiBrZXksIHRoYXQgbWVhbnMgc2VsZWN0IHRoZSBlbnRpcmUgdHJhY2UKICAgICAgICBpZiAoIXRyYWNlLl9pc1NpbXBsZUtleSkgewogICAgICAgICAgdHJhY2UgPSBzdWJzZXRBcnJheUF0dHJzKHRyYWNlLCBtYXRjaGVzKTsKICAgICAgICB9CiAgICAgICAgLy8gQXBwbHkgc2VsZWN0aW9uIGJydXNoIGF0dHJpYnV0ZXMgKHN1cHBsaWVkIGZyb20gUikKICAgICAgICAvLyBUT0RPOiBpdCB3b3VsZCBiZSBuZWF0IHRvIGhhdmUgYSBkcm9wZG93biB0byBkeW5hbWljYWxseSBzcGVjaWZ5IHRoZXNlCiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBzZWxlY3RBdHRycy5sZW5ndGg7IGorKykgewogICAgICAgICAgdmFyIGF0dHIgPSBzZWxlY3RBdHRyc1tqXTsKICAgICAgICAgIHRyYWNlW2F0dHJdID0gdGhpcy5oaWdobGlnaHQuc2VsZWN0ZWRbYXR0cl07CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIGlmIGl0IGlzIGRlZmluZWQsIG92ZXJyaWRlIGNvbG9yIHdpdGggdGhlICJkeW5hbWljIGJydXNoIGNvbG9yIiIKICAgICAgICAvLyBUT0RPOiBEUlkgdGhpcyB1cAogICAgICAgIHZhciBkID0gdGhpcy5nZC5fZnVsbERhdGFbaV07CiAgICAgICAgaWYgKGQubWFya2VyKSB7CiAgICAgICAgICB0cmFjZS5tYXJrZXIgPSB0cmFjZS5tYXJrZXIgfHwge307CiAgICAgICAgICB0cmFjZS5tYXJrZXIuY29sb3IgPSAgc2VsZWN0aW9uQ29sb3VyIHx8IHRyYWNlLm1hcmtlci5jb2xvciB8fCBkLm1hcmtlci5jb2xvcjsKICAgICAgICAgIAogICAgICAgICAgLy8gYWRvcHQgYW55IHVzZXItZGVmaW5lZCBzdHlsaW5nIGZvciB0aGUgc2VsZWN0aW9uCiAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGlzLmhpZ2hsaWdodC5zZWxlY3RlZC5tYXJrZXIgfHwge307CiAgICAgICAgICB2YXIgYXR0cnMgPSBPYmplY3Qua2V5cyhzZWxlY3RlZCk7CiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHRyYWNlLm1hcmtlclthdHRyc1tqXV0gPSBzZWxlY3RlZFthdHRyc1tqXV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChkLmxpbmUpIHsKICAgICAgICAgIHRyYWNlLmxpbmUgPSB0cmFjZS5saW5lIHx8IHt9OwogICAgICAgICAgdHJhY2UubGluZS5jb2xvciA9ICBzZWxlY3Rpb25Db2xvdXIgfHwgdHJhY2UubGluZS5jb2xvciB8fCBkLmxpbmUuY29sb3I7CiAgICAgICAgICAKICAgICAgICAgIC8vIGFkb3B0IGFueSB1c2VyLWRlZmluZWQgc3R5bGluZyBmb3IgdGhlIHNlbGVjdGlvbgogICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhpcy5oaWdobGlnaHQuc2VsZWN0ZWQubGluZSB8fCB7fTsKICAgICAgICAgIHZhciBhdHRycyA9IE9iamVjdC5rZXlzKHNlbGVjdGVkKTsKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYXR0cnMubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgdHJhY2UubGluZVthdHRyc1tqXV0gPSBzZWxlY3RlZFthdHRyc1tqXV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChkLnRleHRmb250KSB7CiAgICAgICAgICB0cmFjZS50ZXh0Zm9udCA9IHRyYWNlLnRleHRmb250IHx8IHt9OwogICAgICAgICAgdHJhY2UudGV4dGZvbnQuY29sb3IgPSAgc2VsZWN0aW9uQ29sb3VyIHx8IHRyYWNlLnRleHRmb250LmNvbG9yIHx8IGQudGV4dGZvbnQuY29sb3I7CiAgICAgICAgICAKICAgICAgICAgIC8vIGFkb3B0IGFueSB1c2VyLWRlZmluZWQgc3R5bGluZyBmb3IgdGhlIHNlbGVjdGlvbgogICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhpcy5oaWdobGlnaHQuc2VsZWN0ZWQudGV4dGZvbnQgfHwge307CiAgICAgICAgICB2YXIgYXR0cnMgPSBPYmplY3Qua2V5cyhzZWxlY3RlZCk7CiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF0dHJzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHRyYWNlLnRleHRmb250W2F0dHJzW2pdXSA9IHNlbGVjdGVkW2F0dHJzW2pdXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gYXR0YWNoIGEgc2Vuc2libGUgbmFtZS9sZWdlbmRncm91cAogICAgICAgIHRyYWNlLm5hbWUgPSB0cmFjZS5uYW1lIHx8IGtleXMuam9pbigiPGJyIC8+Iik7CiAgICAgICAgdHJhY2UubGVnZW5kZ3JvdXAgPSB0cmFjZS5sZWdlbmRncm91cCB8fCBrZXlzLmpvaW4oIjxiciAvPiIpOwogICAgICAgIAogICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgbWFwcGluZyBiZXR3ZWVuIHRoaXMgbmV3IHRyYWNlIGFuZCB0aGUgdHJhY2UgaXQgdGFyZ2V0cwogICAgICAgIC8vIChuZWNlc3NhcnkgZm9yIHVwZGF0aW5nIGZyYW1lcyB0byByZWZsZWN0IHRoZSBzZWxlY3Rpb24gdHJhY2VzKQogICAgICAgIHRyYWNlLl9vcmlnaW5hbEluZGV4ID0gaTsKICAgICAgICB0cmFjZS5fbmV3SW5kZXggPSB0aGlzLmdkLl9mdWxsRGF0YS5sZW5ndGggKyB0cmFjZXMubGVuZ3RoOwogICAgICAgIHRyYWNlcy5wdXNoKHRyYWNlKTsKICAgICAgfQogICAgfQogICAgCiAgICBpZiAodHJhY2VzLmxlbmd0aCA+IDApIHsKICAgICAgCiAgICAgIFBsb3RseS5hZGRUcmFjZXModGhpcy5nZCwgdHJhY2VzKS50aGVuKGZ1bmN0aW9uKGdkKSB7CiAgICAgICAgLy8gaW5jcmVtZW50YWxseSBhZGQgc2VsZWN0aW9uIHRyYWNlcyB0byBmcmFtZXMKICAgICAgICAvLyAodGhpcyBpcyBoZWF2aWx5IGluc3BpcmVkIGJ5IFBsb3RseS5QbG90cy5tb2RpZnlGcmFtZXMoKSAKICAgICAgICAvLyBpbiBzcmMvcGxvdHMvcGxvdHMuanMpCiAgICAgICAgdmFyIF9oYXNoID0gZ2QuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g7CiAgICAgICAgdmFyIF9mcmFtZXMgPSBnZC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lcyB8fCBbXTsKICAgICAgICAKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IF9mcmFtZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIAogICAgICAgICAgLy8gYWRkIHRvIF9mcmFtZXNbaV0udHJhY2VzICppZiogdGhpcyBmcmFtZSByZWZlcmVuY2VzIHNlbGVjdGVkIHRyYWNlKHMpCiAgICAgICAgICB2YXIgbmV3SW5kaWNlcyA9IFtdOwogICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB0cmFjZXMubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgdmFyIHRyID0gdHJhY2VzW2pdOwogICAgICAgICAgICBpZiAoX2ZyYW1lc1tpXS50cmFjZXMuaW5kZXhPZih0ci5fb3JpZ2luYWxJbmRleCkgPiAtMSkgewogICAgICAgICAgICAgIG5ld0luZGljZXMucHVzaCh0ci5fbmV3SW5kZXgpOwogICAgICAgICAgICAgIF9mcmFtZXNbaV0udHJhY2VzLnB1c2godHIuX25ld0luZGV4KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAvLyBub3RoaW5nIHRvIGRvLi4uCiAgICAgICAgICBpZiAobmV3SW5kaWNlcy5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIHZhciBjdHIgPSAwOwogICAgICAgICAgdmFyIG5GcmFtZVRyYWNlcyA9IF9mcmFtZXNbaV0uZGF0YS5sZW5ndGg7CiAgICAgICAgICAKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbkZyYW1lVHJhY2VzOyBqKyspIHsKICAgICAgICAgICAgdmFyIGZyYW1lVHJhY2UgPSBfZnJhbWVzW2ldLmRhdGFbal07CiAgICAgICAgICAgIGlmICghZnJhbWVUcmFjZS5rZXkgfHwgZnJhbWVUcmFjZS5zZXQgIT09IGdyb3VwKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHZhciBtYXRjaEZ1bmMgPSBnZXRNYXRjaEZ1bmMoZnJhbWVUcmFjZSk7CiAgICAgICAgICAgIHZhciBtYXRjaGVzID0gbWF0Y2hGdW5jKGZyYW1lVHJhY2Uua2V5LCBrZXlzKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICBpZiAoIXRyYWNlLl9pc1NpbXBsZUtleSkgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZSA9IHN1YnNldEFycmF5QXR0cnMoZnJhbWVUcmFjZSwgbWF0Y2hlcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHZhciBkID0gZ2QuX2Z1bGxEYXRhW25ld0luZGljZXNbY3RyXV07CiAgICAgICAgICAgICAgaWYgKGQubWFya2VyKSB7CiAgICAgICAgICAgICAgICBmcmFtZVRyYWNlLm1hcmtlciA9IGQubWFya2VyOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoZC5saW5lKSB7CiAgICAgICAgICAgICAgICBmcmFtZVRyYWNlLmxpbmUgPSBkLmxpbmU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChkLnRleHRmb250KSB7CiAgICAgICAgICAgICAgICBmcmFtZVRyYWNlLnRleHRmb250ID0gZC50ZXh0Zm9udDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY3RyID0gY3RyICsgMTsKICAgICAgICAgICAgICBfZnJhbWVzW2ldLmRhdGEucHVzaChmcmFtZVRyYWNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICAvLyB1cGRhdGUgZ2QuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2gKICAgICAgICAgIF9oYXNoW19mcmFtZXNbaV0ubmFtZV0gPSBfZnJhbWVzW2ldOwogICAgICAgIH0KICAgICAgCiAgICAgIH0pOwogICAgICAKICAgICAgLy8gZGltIHRyYWNlcyB0aGF0IGhhdmUgYSBzZXQgbWF0Y2hpbmcgdGhlIHNldCBvZiBzZWxlY3Rpb24gc2V0cwogICAgICB2YXIgdHJhY2VzVG9EaW0gPSBbXSwKICAgICAgICAgIG9wYWNpdGllcyA9IFtdLAogICAgICAgICAgc2V0cyA9IE9iamVjdC5rZXlzKHRoaXMuZ3JvdXBTZWxlY3Rpb25zKSwKICAgICAgICAgIG4gPSB0aGlzLm9yaWdEYXRhLmxlbmd0aDsKICAgICAgICAgIAogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHZhciBvcGFjaXR5ID0gdGhpcy5vcmlnT3BhY2l0eVtpXSB8fCAxOwogICAgICAgIC8vIGhhdmUgd2UgYWxyZWFkeSBkaW1tZWQgdGhpcyB0cmFjZT8gT3IgaXMgdGhpcyBldmVuIHdvcnRoIGRvaW5nPwogICAgICAgIGlmIChvcGFjaXR5ICE9PSB0aGlzLmdkLl9mdWxsRGF0YVtpXS5vcGFjaXR5IHx8IHRoaXMuaGlnaGxpZ2h0Lm9wYWNpdHlEaW0gPT09IDEpIHsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAvLyBpcyB0aGlzIHNldCBhbiBlbGVtZW50IG9mIHRoZSBzZXQgb2Ygc2VsZWN0aW9uIHNldHM/CiAgICAgICAgdmFyIG1hdGNoZXMgPSBmaW5kTWF0Y2hlcyhzZXRzLCBbdGhpcy5nZC5kYXRhW2ldLnNldF0pOwogICAgICAgIGlmIChtYXRjaGVzLmxlbmd0aCkgewogICAgICAgICAgdHJhY2VzVG9EaW0ucHVzaChpKTsKICAgICAgICAgIG9wYWNpdGllcy5wdXNoKG9wYWNpdHkgKiB0aGlzLmhpZ2hsaWdodC5vcGFjaXR5RGltKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIGlmICh0cmFjZXNUb0RpbS5sZW5ndGggPiAwKSB7CiAgICAgICAgUGxvdGx5LnJlc3R5bGUodGhpcy5nZCwgeyJvcGFjaXR5Ijogb3BhY2l0aWVzfSwgdHJhY2VzVG9EaW0pOwogICAgICB9CiAgICAgIAogICAgfQogICAgCiAgfQp9OwoKLyogCk5vdGU6IGluIGFsbCBvZiB0aGVzZSBtYXRjaCBmdW5jdGlvbnMsIHdlIGFzc3VtZSBuZWVkbGVTZXQgKGkuZS4gdGhlIHNlbGVjdGVkIGtleXMpCmlzIGEgMUQgKG9yIGZsYXQpIGFycmF5LiBUaGUgcmVhbCBkaWZmZXJlbmNlIGlzIHRoZSBtZWFuaW5nIG9mIGhheXN0YWNrLgpmaW5kTWF0Y2hlcygpIGRvZXMgdGhlIHVzdWFsIHRoaW5nIHlvdSdkIGV4cGVjdCBmb3IgCmxpbmtlZCBicnVzaGluZyBvbiBhIHNjYXR0ZXJwbG90IG1hdHJpeC4gZmluZFNpbXBsZU1hdGNoZXMoKSByZXR1cm5zIGEgbWF0Y2ggaWZmIApoYXlzdGFjayBpcyBhIHN1YnNldCBvZiB0aGUgbmVlZGxlU2V0LiBmaW5kTmVzdGVkTWF0Y2hlcygpIHJldHVybnMgCiovCgpmdW5jdGlvbiBnZXRNYXRjaEZ1bmModHJhY2UpIHsKICByZXR1cm4gKHRyYWNlLl9pc05lc3RlZEtleSkgPyBmaW5kTmVzdGVkTWF0Y2hlcyA6IAogICAgKHRyYWNlLl9pc1NpbXBsZUtleSkgPyBmaW5kU2ltcGxlTWF0Y2hlcyA6IGZpbmRNYXRjaGVzOwp9CgovLyBmaW5kIG1hdGNoZXMgZm9yICJmbGF0IiBrZXlzCmZ1bmN0aW9uIGZpbmRNYXRjaGVzKGhheXN0YWNrLCBuZWVkbGVTZXQpIHsKICB2YXIgbWF0Y2hlcyA9IFtdOwogIGhheXN0YWNrLmZvckVhY2goZnVuY3Rpb24ob2JqLCBpKSB7CiAgICBpZiAob2JqID09PSBudWxsIHx8IG5lZWRsZVNldC5pbmRleE9mKG9iaikgPj0gMCkgewogICAgICBtYXRjaGVzLnB1c2goaSk7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG1hdGNoZXM7Cn0KCi8vIGZpbmQgbWF0Y2hlcyBmb3IgInNpbXBsZSIga2V5cwpmdW5jdGlvbiBmaW5kU2ltcGxlTWF0Y2hlcyhoYXlzdGFjaywgbmVlZGxlU2V0KSB7CiAgdmFyIG1hdGNoID0gaGF5c3RhY2suZXZlcnkoZnVuY3Rpb24odmFsKSB7CiAgICByZXR1cm4gdmFsID09PSBudWxsIHx8IG5lZWRsZVNldC5pbmRleE9mKHZhbCkgPj0gMDsKICB9KTsKICAvLyB5ZXMsIHRoaXMgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2Ugb3RoZXIgdGhhbiBjb25mb3JtaW5nIAogIC8vIHRvIHRoZSBvdXRwdXQgdHlwZSBvZiB0aGUgb3RoZXIgbWF0Y2ggZnVuY3Rpb25zCiAgcmV0dXJuIChtYXRjaCkgPyBbMF0gOiBbXQp9CgovLyBmaW5kIG1hdGNoZXMgZm9yIGEgIm5lc3RlZCIgaGF5c3RhY2sgKDJEIGFycmF5cykKZnVuY3Rpb24gZmluZE5lc3RlZE1hdGNoZXMoaGF5c3RhY2ssIG5lZWRsZVNldCkgewogIHZhciBtYXRjaGVzID0gW107CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYXlzdGFjay5sZW5ndGg7IGkrKykgewogICAgdmFyIGhheSA9IGhheXN0YWNrW2ldOwogICAgdmFyIG1hdGNoID0gaGF5LmV2ZXJ5KGZ1bmN0aW9uKHZhbCkgeyAKICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCBuZWVkbGVTZXQuaW5kZXhPZih2YWwpID49IDA7IAogICAgfSk7CiAgICBpZiAobWF0Y2gpIHsKICAgICAgbWF0Y2hlcy5wdXNoKGkpOwogICAgfQogIH0KICByZXR1cm4gbWF0Y2hlczsKfQoKZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHsKICByZXR1cm4gKAogICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nICYmCiAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gT2JqZWN0LnByb3RvdHlwZQogICk7Cn0KCmZ1bmN0aW9uIHN1YnNldEFycmF5QXR0cnMob2JqLCBpbmRpY2VzKSB7CiAgdmFyIG5ld09iaiA9IHt9OwogIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICB2YXIgdmFsID0gb2JqW2tdOwoKICAgIGlmIChrLmNoYXJBdCgwKSA9PT0gIl8iKSB7CiAgICAgIG5ld09ialtrXSA9IHZhbDsKICAgIH0gZWxzZSBpZiAoayA9PT0gInRyYW5zZm9ybXMiICYmIEFycmF5LmlzQXJyYXkodmFsKSkgewogICAgICBuZXdPYmpba10gPSB2YWwubWFwKGZ1bmN0aW9uKHRyYW5zZm9ybSkgewogICAgICAgIHJldHVybiBzdWJzZXRBcnJheUF0dHJzKHRyYW5zZm9ybSwgaW5kaWNlcyk7CiAgICAgIH0pOwogICAgfSBlbHNlIGlmIChrID09PSAiY29sb3JzY2FsZSIgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHZhbDsKICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHN1YnNldEFycmF5QXR0cnModmFsLCBpbmRpY2VzKTsKICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHN1YnNldEFycmF5KHZhbCwgaW5kaWNlcyk7CiAgICB9IGVsc2UgewogICAgICBuZXdPYmpba10gPSB2YWw7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG5ld09iajsKfQoKZnVuY3Rpb24gc3Vic2V0QXJyYXkoYXJyLCBpbmRpY2VzKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7IGkrKykgewogICAgcmVzdWx0LnB1c2goYXJyW2luZGljZXNbaV1dKTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQoKLy8gQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHJlbW92aW5nIHBsb3RseSdzIGJydXNoIApmdW5jdGlvbiByZW1vdmVCcnVzaChlbCkgewogIHZhciBvdXRsaW5lcyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWxlY3Qtb3V0bGluZSIpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgb3V0bGluZXMubGVuZ3RoOyBpKyspIHsKICAgIG91dGxpbmVzW2ldLnJlbW92ZSgpOwogIH0KfQo="></script>
<script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpdHMpPj0yKXtlPWUrMTtmPTF9aWYoZT5iaWFzKXtlPSgxPDxlYml0cyktMTtmPTB9ZWxzZXtlPWUrYmlhcztmPWYtcG93KDIsZmJpdHMpfX1lbHNle2U9MDtmPXJvdW5kVG9FdmVuKHYvcG93KDIsMS1iaWFzLWZiaXRzKSl9fWJpdHM9W107Zm9yKGk9ZmJpdHM7aTtpLT0xKXtiaXRzLnB1c2goZiUyPzE6MCk7Zj1mbG9vcihmLzIpfWZvcihpPWViaXRzO2k7aS09MSl7Yml0cy5wdXNoKGUlMj8xOjApO2U9Zmxvb3IoZS8yKX1iaXRzLnB1c2gocz8xOjApO2JpdHMucmV2ZXJzZSgpO3N0cj1iaXRzLmpvaW4oIiIpO2J5dGVzPVtdO3doaWxlKHN0ci5sZW5ndGgpe2J5dGVzLnB1c2gocGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLDgpLDIpKTtzdHI9c3RyLnN1YnN0cmluZyg4KX1yZXR1cm4gYnl0ZXN9ZnVuY3Rpb24gdW5wYWNrSUVFRTc1NChieXRlcyxlYml0cyxmYml0cyl7dmFyIGJpdHM9W10saSxqLGIsc3RyLGJpYXMscyxlLGY7Zm9yKGk9Ynl0ZXMubGVuZ3RoO2k7aS09MSl7Yj1ieXRlc1tpLTFdO2ZvcihqPTg7ajtqLT0xKXtiaXRzLnB1c2goYiUyPzE6MCk7Yj1iPj4xfX1iaXRzLnJldmVyc2UoKTtzdHI9Yml0cy5qb2luKCIiKTtiaWFzPSgxPDxlYml0cy0xKS0xO3M9cGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLDEpLDIpPy0xOjE7ZT1wYXJzZUludChzdHIuc3Vic3RyaW5nKDEsMStlYml0cyksMik7Zj1wYXJzZUludChzdHIuc3Vic3RyaW5nKDErZWJpdHMpLDIpO2lmKGU9PT0oMTw8ZWJpdHMpLTEpe3JldHVybiBmIT09MD9OYU46cypJbmZpbml0eX1lbHNlIGlmKGU+MCl7cmV0dXJuIHMqcG93KDIsZS1iaWFzKSooMStmL3BvdygyLGZiaXRzKSl9ZWxzZSBpZihmIT09MCl7cmV0dXJuIHMqcG93KDIsLShiaWFzLTEpKSooZi9wb3coMixmYml0cykpfWVsc2V7cmV0dXJuIHM8MD8tMDowfX1mdW5jdGlvbiB1bnBhY2tGNjQoYil7cmV0dXJuIHVucGFja0lFRUU3NTQoYiwxMSw1Mil9ZnVuY3Rpb24gcGFja0Y2NCh2KXtyZXR1cm4gcGFja0lFRUU3NTQodiwxMSw1Mil9ZnVuY3Rpb24gdW5wYWNrRjMyKGIpe3JldHVybiB1bnBhY2tJRUVFNzU0KGIsOCwyMyl9ZnVuY3Rpb24gcGFja0YzMih2KXtyZXR1cm4gcGFja0lFRUU3NTQodiw4LDIzKX0oZnVuY3Rpb24oKXtmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpe2xlbmd0aD1Ub0ludDMyKGxlbmd0aCk7aWYobGVuZ3RoPDApdGhyb3cgUmFuZ2VFcnJvcigiQXJyYXlCdWZmZXIgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJfYnl0ZXMiLHt2YWx1ZTpBcnJheShsZW5ndGgpfSk7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSs9MSl0aGlzLl9ieXRlc1tpXT0wfWdsb2JhbC5BcnJheUJ1ZmZlcj1nbG9iYWwuQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyO2Z1bmN0aW9uICRUeXBlZEFycmF5JCgpe2lmKCFhcmd1bWVudHMubGVuZ3RofHx0eXBlb2YgYXJndW1lbnRzWzBdIT09Im9iamVjdCIpe3JldHVybiBmdW5jdGlvbihsZW5ndGgpe2xlbmd0aD1Ub0ludDMyKGxlbmd0aCk7aWYobGVuZ3RoPDApdGhyb3cgUmFuZ2VFcnJvcigibGVuZ3RoIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJsZW5ndGgiLHt2YWx1ZTpsZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOm5ldyBBcnJheUJ1ZmZlcih0aGlzLmJ5dGVMZW5ndGgpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ5dGVPZmZzZXQiLHt2YWx1ZTowfSl9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1pZihhcmd1bWVudHMubGVuZ3RoPj0xJiZUeXBlKGFyZ3VtZW50c1swXSk9PT0ib2JqZWN0IiYmYXJndW1lbnRzWzBdaW5zdGFuY2VvZiAkVHlwZWRBcnJheSQpe3JldHVybiBmdW5jdGlvbih0eXBlZEFycmF5KXtpZih0aGlzLmNvbnN0cnVjdG9yIT09dHlwZWRBcnJheS5jb25zdHJ1Y3Rvcil0aHJvdyBUeXBlRXJyb3IoKTt2YXIgYnl0ZUxlbmd0aD10eXBlZEFycmF5Lmxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJidWZmZXIiLHt2YWx1ZTpuZXcgQXJyYXlCdWZmZXIoYnl0ZUxlbmd0aCl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmJ5dGVMZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZU9mZnNldCIse3ZhbHVlOjB9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibGVuZ3RoIix7dmFsdWU6dHlwZWRBcnJheS5sZW5ndGh9KTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpdGhpcy5fc2V0dGVyKGksdHlwZWRBcnJheS5fZ2V0dGVyKGkpKX0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWlmKGFyZ3VtZW50cy5sZW5ndGg+PTEmJlR5cGUoYXJndW1lbnRzWzBdKT09PSJvYmplY3QiJiYhKGFyZ3VtZW50c1swXWluc3RhbmNlb2YgJFR5cGVkQXJyYXkkKSYmIShhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxDbGFzcyhhcmd1bWVudHNbMF0pPT09IkFycmF5QnVmZmVyIikpe3JldHVybiBmdW5jdGlvbihhcnJheSl7dmFyIGJ5dGVMZW5ndGg9YXJyYXkubGVuZ3RoKnRoaXMuQllURVNfUEVSX0VMRU1FTlQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOm5ldyBBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlTGVuZ3RoIix7dmFsdWU6Ynl0ZUxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlT2Zmc2V0Iix7dmFsdWU6MH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJsZW5ndGgiLHt2YWx1ZTphcnJheS5sZW5ndGh9KTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpe3ZhciBzPWFycmF5W2ldO3RoaXMuX3NldHRlcihpLE51bWJlcihzKSl9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9aWYoYXJndW1lbnRzLmxlbmd0aD49MSYmVHlwZShhcmd1bWVudHNbMF0pPT09Im9iamVjdCImJihhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxDbGFzcyhhcmd1bWVudHNbMF0pPT09IkFycmF5QnVmZmVyIikpe3JldHVybiBmdW5jdGlvbihidWZmZXIsYnl0ZU9mZnNldCxsZW5ndGgpe2J5dGVPZmZzZXQ9VG9VaW50MzIoYnl0ZU9mZnNldCk7aWYoYnl0ZU9mZnNldD5idWZmZXIuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJieXRlT2Zmc2V0IG91dCBvZiByYW5nZSIpO2lmKGJ5dGVPZmZzZXQldGhpcy5CWVRFU19QRVJfRUxFTUVOVCl0aHJvdyBSYW5nZUVycm9yKCJidWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIik7aWYobGVuZ3RoPT09dW5kZWZpbmVkKXt2YXIgYnl0ZUxlbmd0aD1idWZmZXIuYnl0ZUxlbmd0aC1ieXRlT2Zmc2V0O2lmKGJ5dGVMZW5ndGgldGhpcy5CWVRFU19QRVJfRUxFTUVOVCl0aHJvdyBSYW5nZUVycm9yKCJsZW5ndGggb2YgYnVmZmVyIG1pbnVzIGJ5dGVPZmZzZXQgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQgc2l6ZSIpO2xlbmd0aD1ieXRlTGVuZ3RoL3RoaXMuQllURVNfUEVSX0VMRU1FTlR9ZWxzZXtsZW5ndGg9VG9VaW50MzIobGVuZ3RoKTtieXRlTGVuZ3RoPWxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UfWlmKGJ5dGVPZmZzZXQrYnl0ZUxlbmd0aD5idWZmZXIuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJieXRlT2Zmc2V0IGFuZCBsZW5ndGggcmVmZXJlbmNlIGFuIGFyZWEgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJidWZmZXIiLHt2YWx1ZTpidWZmZXJ9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmJ5dGVMZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZU9mZnNldCIse3ZhbHVlOmJ5dGVPZmZzZXR9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibGVuZ3RoIix7dmFsdWU6bGVuZ3RofSl9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10aHJvdyBUeXBlRXJyb3IoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLCJmcm9tIix7dmFsdWU6ZnVuY3Rpb24oaXRlcmFibGUpe3JldHVybiBuZXcgdGhpcyhpdGVyYWJsZSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JCwib2YiLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcyhhcmd1bWVudHMpfX0pO3ZhciAkVHlwZWRBcnJheVByb3RvdHlwZSQ9e307JFR5cGVkQXJyYXkkLnByb3RvdHlwZT0kVHlwZWRBcnJheVByb3RvdHlwZSQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsIl9nZXR0ZXIiLHt2YWx1ZTpmdW5jdGlvbihpbmRleCl7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXRocm93IFN5bnRheEVycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO2luZGV4PVRvVWludDMyKGluZGV4KTtpZihpbmRleD49dGhpcy5sZW5ndGgpcmV0dXJuIHVuZGVmaW5lZDt2YXIgYnl0ZXM9W10saSxvO2ZvcihpPTAsbz10aGlzLmJ5dGVPZmZzZXQraW5kZXgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpPHRoaXMuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSxvKz0xKXtieXRlcy5wdXNoKHRoaXMuYnVmZmVyLl9ieXRlc1tvXSl9cmV0dXJuIHRoaXMuX3VucGFjayhieXRlcyl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImdldCIse3ZhbHVlOiRUeXBlZEFycmF5JC5wcm90b3R5cGUuX2dldHRlcn0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJfc2V0dGVyIix7dmFsdWU6ZnVuY3Rpb24oaW5kZXgsdmFsdWUpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBTeW50YXhFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiKTtpbmRleD1Ub1VpbnQzMihpbmRleCk7aWYoaW5kZXg+PXRoaXMubGVuZ3RoKXJldHVybjt2YXIgYnl0ZXM9dGhpcy5fcGFjayh2YWx1ZSksaSxvO2ZvcihpPTAsbz10aGlzLmJ5dGVPZmZzZXQraW5kZXgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpPHRoaXMuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSxvKz0xKXt0aGlzLmJ1ZmZlci5fYnl0ZXNbb109Ynl0ZXNbaV19fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJjb25zdHJ1Y3RvciIse3ZhbHVlOiRUeXBlZEFycmF5JH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJjb3B5V2l0aGluIix7dmFsdWU6ZnVuY3Rpb24odGFyZ2V0LHN0YXJ0KXt2YXIgZW5kPWFyZ3VtZW50c1syXTt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTtsZW49bWF4KGxlbiwwKTt2YXIgcmVsYXRpdmVUYXJnZXQ9VG9JbnQzMih0YXJnZXQpO3ZhciB0bztpZihyZWxhdGl2ZVRhcmdldDwwKXRvPW1heChsZW4rcmVsYXRpdmVUYXJnZXQsMCk7ZWxzZSB0bz1taW4ocmVsYXRpdmVUYXJnZXQsbGVuKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgZnJvbTtpZihyZWxhdGl2ZVN0YXJ0PDApZnJvbT1tYXgobGVuK3JlbGF0aXZlU3RhcnQsMCk7ZWxzZSBmcm9tPW1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kO2lmKGVuZD09PXVuZGVmaW5lZClyZWxhdGl2ZUVuZD1sZW47ZWxzZSByZWxhdGl2ZUVuZD1Ub0ludDMyKGVuZCk7dmFyIGZpbmFsO2lmKHJlbGF0aXZlRW5kPDApZmluYWw9bWF4KGxlbityZWxhdGl2ZUVuZCwwKTtlbHNlIGZpbmFsPW1pbihyZWxhdGl2ZUVuZCxsZW4pO3ZhciBjb3VudD1taW4oZmluYWwtZnJvbSxsZW4tdG8pO3ZhciBkaXJlY3Rpb247aWYoZnJvbTx0byYmdG88ZnJvbStjb3VudCl7ZGlyZWN0aW9uPS0xO2Zyb209ZnJvbStjb3VudC0xO3RvPXRvK2NvdW50LTF9ZWxzZXtkaXJlY3Rpb249MX13aGlsZShjb3VudD4wKXtvLl9zZXR0ZXIodG8sby5fZ2V0dGVyKGZyb20pKTtmcm9tPWZyb20rZGlyZWN0aW9uO3RvPXRvK2RpcmVjdGlvbjtjb3VudD1jb3VudC0xfXJldHVybiBvfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJldmVyeSIse3ZhbHVlOmZ1bmN0aW9uKGNhbGxiYWNrZm4pe2lmKHRoaXM9PT11bmRlZmluZWR8fHRoaXM9PT1udWxsKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PU9iamVjdCh0aGlzKTt2YXIgbGVuPVRvVWludDMyKHQubGVuZ3RoKTtpZighSXNDYWxsYWJsZShjYWxsYmFja2ZuKSl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdGhpc0FyZz1hcmd1bWVudHNbMV07Zm9yKHZhciBpPTA7aTxsZW47aSsrKXtpZighY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsdC5fZ2V0dGVyKGkpLGksdCkpcmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaWxsIix7dmFsdWU6ZnVuY3Rpb24odmFsdWUpe3ZhciBzdGFydD1hcmd1bWVudHNbMV0sZW5kPWFyZ3VtZW50c1syXTt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTtsZW49bWF4KGxlbiwwKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgaztpZihyZWxhdGl2ZVN0YXJ0PDApaz1tYXgobGVuK3JlbGF0aXZlU3RhcnQsMCk7ZWxzZSBrPW1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kO2lmKGVuZD09PXVuZGVmaW5lZClyZWxhdGl2ZUVuZD1sZW47ZWxzZSByZWxhdGl2ZUVuZD1Ub0ludDMyKGVuZCk7dmFyIGZpbmFsO2lmKHJlbGF0aXZlRW5kPDApZmluYWw9bWF4KGxlbityZWxhdGl2ZUVuZCwwKTtlbHNlIGZpbmFsPW1pbihyZWxhdGl2ZUVuZCxsZW4pO3doaWxlKGs8ZmluYWwpe28uX3NldHRlcihrLHZhbHVlKTtrKz0xfXJldHVybiBvfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaWx0ZXIiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHJlcz1bXTt2YXIgdGhpc3A9YXJndW1lbnRzWzFdO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7dmFyIHZhbD10Ll9nZXR0ZXIoaSk7aWYoY2FsbGJhY2tmbi5jYWxsKHRoaXNwLHZhbCxpLHQpKXJlcy5wdXNoKHZhbCl9cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHJlcyl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImZpbmQiLHt2YWx1ZTpmdW5jdGlvbihwcmVkaWNhdGUpe3ZhciBvPVRvT2JqZWN0KHRoaXMpO3ZhciBsZW5WYWx1ZT1vLmxlbmd0aDt2YXIgbGVuPVRvVWludDMyKGxlblZhbHVlKTtpZighSXNDYWxsYWJsZShwcmVkaWNhdGUpKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dW5kZWZpbmVkO3ZhciBrPTA7d2hpbGUoazxsZW4pe3ZhciBrVmFsdWU9by5fZ2V0dGVyKGspO3ZhciB0ZXN0UmVzdWx0PXByZWRpY2F0ZS5jYWxsKHQsa1ZhbHVlLGssbyk7aWYoQm9vbGVhbih0ZXN0UmVzdWx0KSlyZXR1cm4ga1ZhbHVlOysra31yZXR1cm4gdW5kZWZpbmVkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaW5kSW5kZXgiLHt2YWx1ZTpmdW5jdGlvbihwcmVkaWNhdGUpe3ZhciBvPVRvT2JqZWN0KHRoaXMpO3ZhciBsZW5WYWx1ZT1vLmxlbmd0aDt2YXIgbGVuPVRvVWludDMyKGxlblZhbHVlKTtpZighSXNDYWxsYWJsZShwcmVkaWNhdGUpKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dW5kZWZpbmVkO3ZhciBrPTA7d2hpbGUoazxsZW4pe3ZhciBrVmFsdWU9by5fZ2V0dGVyKGspO3ZhciB0ZXN0UmVzdWx0PXByZWRpY2F0ZS5jYWxsKHQsa1ZhbHVlLGssbyk7aWYoQm9vbGVhbih0ZXN0UmVzdWx0KSlyZXR1cm4gazsrK2t9cmV0dXJuLTF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImZvckVhY2giLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHRoaXNwPWFyZ3VtZW50c1sxXTtmb3IodmFyIGk9MDtpPGxlbjtpKyspY2FsbGJhY2tmbi5jYWxsKHRoaXNwLHQuX2dldHRlcihpKSxpLHQpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJpbmRleE9mIix7dmFsdWU6ZnVuY3Rpb24oc2VhcmNoRWxlbWVudCl7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO2lmKGxlbj09PTApcmV0dXJuLTE7dmFyIG49MDtpZihhcmd1bWVudHMubGVuZ3RoPjApe249TnVtYmVyKGFyZ3VtZW50c1sxXSk7aWYobiE9PW4pe249MH1lbHNlIGlmKG4hPT0wJiZuIT09MS8wJiZuIT09LSgxLzApKXtuPShuPjB8fC0xKSpmbG9vcihhYnMobikpfX1pZihuPj1sZW4pcmV0dXJuLTE7dmFyIGs9bj49MD9uOm1heChsZW4tYWJzKG4pLDApO2Zvcig7azxsZW47aysrKXtpZih0Ll9nZXR0ZXIoayk9PT1zZWFyY2hFbGVtZW50KXtyZXR1cm4ga319cmV0dXJuLTF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImpvaW4iLHt2YWx1ZTpmdW5jdGlvbihzZXBhcmF0b3Ipe2lmKHRoaXM9PT11bmRlZmluZWR8fHRoaXM9PT1udWxsKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PU9iamVjdCh0aGlzKTt2YXIgbGVuPVRvVWludDMyKHQubGVuZ3RoKTt2YXIgdG1wPUFycmF5KGxlbik7Zm9yKHZhciBpPTA7aTxsZW47KytpKXRtcFtpXT10Ll9nZXR0ZXIoaSk7cmV0dXJuIHRtcC5qb2luKHNlcGFyYXRvcj09PXVuZGVmaW5lZD8iLCI6c2VwYXJhdG9yKX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwibGFzdEluZGV4T2YiLHt2YWx1ZTpmdW5jdGlvbihzZWFyY2hFbGVtZW50KXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYobGVuPT09MClyZXR1cm4tMTt2YXIgbj1sZW47aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtuPU51bWJlcihhcmd1bWVudHNbMV0pO2lmKG4hPT1uKXtuPTB9ZWxzZSBpZihuIT09MCYmbiE9PTEvMCYmbiE9PS0oMS8wKSl7bj0obj4wfHwtMSkqZmxvb3IoYWJzKG4pKX19dmFyIGs9bj49MD9taW4obixsZW4tMSk6bGVuLWFicyhuKTtmb3IoO2s+PTA7ay0tKXtpZih0Ll9nZXR0ZXIoayk9PT1zZWFyY2hFbGVtZW50KXJldHVybiBrfXJldHVybi0xfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJtYXAiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHJlcz1bXTtyZXMubGVuZ3RoPWxlbjt2YXIgdGhpc3A9YXJndW1lbnRzWzFdO2Zvcih2YXIgaT0wO2k8bGVuO2krKylyZXNbaV09Y2FsbGJhY2tmbi5jYWxsKHRoaXNwLHQuX2dldHRlcihpKSxpLHQpO3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcihyZXMpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJyZWR1Y2UiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7aWYobGVuPT09MCYmYXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgVHlwZUVycm9yKCk7dmFyIGs9MDt2YXIgYWNjdW11bGF0b3I7aWYoYXJndW1lbnRzLmxlbmd0aD49Mil7YWNjdW11bGF0b3I9YXJndW1lbnRzWzFdfWVsc2V7YWNjdW11bGF0b3I9dC5fZ2V0dGVyKGsrKyl9d2hpbGUoazxsZW4pe2FjY3VtdWxhdG9yPWNhbGxiYWNrZm4uY2FsbCh1bmRlZmluZWQsYWNjdW11bGF0b3IsdC5fZ2V0dGVyKGspLGssdCk7aysrfXJldHVybiBhY2N1bXVsYXRvcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwicmVkdWNlUmlnaHQiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7aWYobGVuPT09MCYmYXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgVHlwZUVycm9yKCk7dmFyIGs9bGVuLTE7dmFyIGFjY3VtdWxhdG9yO2lmKGFyZ3VtZW50cy5sZW5ndGg+PTIpe2FjY3VtdWxhdG9yPWFyZ3VtZW50c1sxXX1lbHNle2FjY3VtdWxhdG9yPXQuX2dldHRlcihrLS0pfXdoaWxlKGs+PTApe2FjY3VtdWxhdG9yPWNhbGxiYWNrZm4uY2FsbCh1bmRlZmluZWQsYWNjdW11bGF0b3IsdC5fZ2V0dGVyKGspLGssdCk7ay0tfXJldHVybiBhY2N1bXVsYXRvcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwicmV2ZXJzZSIse3ZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO3ZhciBoYWxmPWZsb29yKGxlbi8yKTtmb3IodmFyIGk9MCxqPWxlbi0xO2k8aGFsZjsrK2ksLS1qKXt2YXIgdG1wPXQuX2dldHRlcihpKTt0Ll9zZXR0ZXIoaSx0Ll9nZXR0ZXIoaikpO3QuX3NldHRlcihqLHRtcCl9cmV0dXJuIHR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNldCIse3ZhbHVlOmZ1bmN0aW9uKGluZGV4LHZhbHVlKXtpZihhcmd1bWVudHMubGVuZ3RoPDEpdGhyb3cgU3ludGF4RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7dmFyIGFycmF5LHNlcXVlbmNlLG9mZnNldCxsZW4saSxzLGQsYnl0ZU9mZnNldCxieXRlTGVuZ3RoLHRtcDtpZih0eXBlb2YgYXJndW1lbnRzWzBdPT09Im9iamVjdCImJmFyZ3VtZW50c1swXS5jb25zdHJ1Y3Rvcj09PXRoaXMuY29uc3RydWN0b3Ipe2FycmF5PWFyZ3VtZW50c1swXTtvZmZzZXQ9VG9VaW50MzIoYXJndW1lbnRzWzFdKTtpZihvZmZzZXQrYXJyYXkubGVuZ3RoPnRoaXMubGVuZ3RoKXt0aHJvdyBSYW5nZUVycm9yKCJPZmZzZXQgcGx1cyBsZW5ndGggb2YgYXJyYXkgaXMgb3V0IG9mIHJhbmdlIil9Ynl0ZU9mZnNldD10aGlzLmJ5dGVPZmZzZXQrb2Zmc2V0KnRoaXMuQllURVNfUEVSX0VMRU1FTlQ7Ynl0ZUxlbmd0aD1hcnJheS5sZW5ndGgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpZihhcnJheS5idWZmZXI9PT10aGlzLmJ1ZmZlcil7dG1wPVtdO2ZvcihpPTAscz1hcnJheS5ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLHMrPTEpe3RtcFtpXT1hcnJheS5idWZmZXIuX2J5dGVzW3NdfWZvcihpPTAsZD1ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLGQrPTEpe3RoaXMuYnVmZmVyLl9ieXRlc1tkXT10bXBbaV19fWVsc2V7Zm9yKGk9MCxzPWFycmF5LmJ5dGVPZmZzZXQsZD1ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLHMrPTEsZCs9MSl7dGhpcy5idWZmZXIuX2J5dGVzW2RdPWFycmF5LmJ1ZmZlci5fYnl0ZXNbc119fX1lbHNlIGlmKHR5cGVvZiBhcmd1bWVudHNbMF09PT0ib2JqZWN0IiYmdHlwZW9mIGFyZ3VtZW50c1swXS5sZW5ndGghPT0idW5kZWZpbmVkIil7c2VxdWVuY2U9YXJndW1lbnRzWzBdO2xlbj1Ub1VpbnQzMihzZXF1ZW5jZS5sZW5ndGgpO29mZnNldD1Ub1VpbnQzMihhcmd1bWVudHNbMV0pO2lmKG9mZnNldCtsZW4+dGhpcy5sZW5ndGgpe3Rocm93IFJhbmdlRXJyb3IoIk9mZnNldCBwbHVzIGxlbmd0aCBvZiBhcnJheSBpcyBvdXQgb2YgcmFuZ2UiKX1mb3IoaT0wO2k8bGVuO2krPTEpe3M9c2VxdWVuY2VbaV07dGhpcy5fc2V0dGVyKG9mZnNldCtpLE51bWJlcihzKSl9fWVsc2V7dGhyb3cgVHlwZUVycm9yKCJVbmV4cGVjdGVkIGFyZ3VtZW50IHR5cGUocykiKX19fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNsaWNlIix7dmFsdWU6ZnVuY3Rpb24oc3RhcnQsZW5kKXt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgaz1yZWxhdGl2ZVN0YXJ0PDA/bWF4KGxlbityZWxhdGl2ZVN0YXJ0LDApOm1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kPWVuZD09PXVuZGVmaW5lZD9sZW46VG9JbnQzMihlbmQpO3ZhciBmaW5hbD1yZWxhdGl2ZUVuZDwwP21heChsZW4rcmVsYXRpdmVFbmQsMCk6bWluKHJlbGF0aXZlRW5kLGxlbik7dmFyIGNvdW50PWZpbmFsLWs7dmFyIGM9by5jb25zdHJ1Y3Rvcjt2YXIgYT1uZXcgYyhjb3VudCk7dmFyIG49MDt3aGlsZShrPGZpbmFsKXt2YXIga1ZhbHVlPW8uX2dldHRlcihrKTthLl9zZXR0ZXIobixrVmFsdWUpOysrazsrK259cmV0dXJuIGF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNvbWUiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHRoaXNwPWFyZ3VtZW50c1sxXTtmb3IodmFyIGk9MDtpPGxlbjtpKyspe2lmKGNhbGxiYWNrZm4uY2FsbCh0aGlzcCx0Ll9nZXR0ZXIoaSksaSx0KSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwic29ydCIse3ZhbHVlOmZ1bmN0aW9uKGNvbXBhcmVmbil7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO3ZhciB0bXA9QXJyYXkobGVuKTtmb3IodmFyIGk9MDtpPGxlbjsrK2kpdG1wW2ldPXQuX2dldHRlcihpKTtpZihjb21wYXJlZm4pdG1wLnNvcnQoY29tcGFyZWZuKTtlbHNlIHRtcC5zb3J0KCk7Zm9yKGk9MDtpPGxlbjsrK2kpdC5fc2V0dGVyKGksdG1wW2ldKTtyZXR1cm4gdH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwic3ViYXJyYXkiLHt2YWx1ZTpmdW5jdGlvbihzdGFydCxlbmQpe2Z1bmN0aW9uIGNsYW1wKHYsbWluLG1heCl7cmV0dXJuIHY8bWluP21pbjp2Pm1heD9tYXg6dn1zdGFydD1Ub0ludDMyKHN0YXJ0KTtlbmQ9VG9JbnQzMihlbmQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSl7c3RhcnQ9MH1pZihhcmd1bWVudHMubGVuZ3RoPDIpe2VuZD10aGlzLmxlbmd0aH1pZihzdGFydDwwKXtzdGFydD10aGlzLmxlbmd0aCtzdGFydH1pZihlbmQ8MCl7ZW5kPXRoaXMubGVuZ3RoK2VuZH1zdGFydD1jbGFtcChzdGFydCwwLHRoaXMubGVuZ3RoKTtlbmQ9Y2xhbXAoZW5kLDAsdGhpcy5sZW5ndGgpO3ZhciBsZW49ZW5kLXN0YXJ0O2lmKGxlbjwwKXtsZW49MH1yZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5idWZmZXIsdGhpcy5ieXRlT2Zmc2V0K3N0YXJ0KnRoaXMuQllURVNfUEVSX0VMRU1FTlQsbGVuKX19KTtmdW5jdGlvbiBtYWtlVHlwZWRBcnJheShlbGVtZW50U2l6ZSxwYWNrLHVucGFjayl7dmFyIFR5cGVkQXJyYXk9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29uc3RydWN0b3IiLHt2YWx1ZTpUeXBlZEFycmF5fSk7JFR5cGVkQXJyYXkkLmFwcGx5KHRoaXMsYXJndW1lbnRzKTttYWtlQXJyYXlBY2Nlc3NvcnModGhpcyl9O2lmKCJfX3Byb3RvX18iaW4gVHlwZWRBcnJheSl7VHlwZWRBcnJheS5fX3Byb3RvX189JFR5cGVkQXJyYXkkfWVsc2V7VHlwZWRBcnJheS5mcm9tPSRUeXBlZEFycmF5JC5mcm9tO1R5cGVkQXJyYXkub2Y9JFR5cGVkQXJyYXkkLm9mfVR5cGVkQXJyYXkuQllURVNfUEVSX0VMRU1FTlQ9ZWxlbWVudFNpemU7dmFyIFR5cGVkQXJyYXlQcm90b3R5cGU9ZnVuY3Rpb24oKXt9O1R5cGVkQXJyYXlQcm90b3R5cGUucHJvdG90eXBlPSRUeXBlZEFycmF5UHJvdG90eXBlJDtUeXBlZEFycmF5LnByb3RvdHlwZT1uZXcgVHlwZWRBcnJheVByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZWRBcnJheS5wcm90b3R5cGUsIkJZVEVTX1BFUl9FTEVNRU5UIix7dmFsdWU6ZWxlbWVudFNpemV9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZWRBcnJheS5wcm90b3R5cGUsIl9wYWNrIix7dmFsdWU6cGFja30pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShUeXBlZEFycmF5LnByb3RvdHlwZSwiX3VucGFjayIse3ZhbHVlOnVucGFja30pO3JldHVybiBUeXBlZEFycmF5fXZhciBJbnQ4QXJyYXk9bWFrZVR5cGVkQXJyYXkoMSxwYWNrSTgsdW5wYWNrSTgpO3ZhciBVaW50OEFycmF5PW1ha2VUeXBlZEFycmF5KDEscGFja1U4LHVucGFja1U4KTt2YXIgVWludDhDbGFtcGVkQXJyYXk9bWFrZVR5cGVkQXJyYXkoMSxwYWNrVThDbGFtcGVkLHVucGFja1U4KTt2YXIgSW50MTZBcnJheT1tYWtlVHlwZWRBcnJheSgyLHBhY2tJMTYsdW5wYWNrSTE2KTt2YXIgVWludDE2QXJyYXk9bWFrZVR5cGVkQXJyYXkoMixwYWNrVTE2LHVucGFja1UxNik7dmFyIEludDMyQXJyYXk9bWFrZVR5cGVkQXJyYXkoNCxwYWNrSTMyLHVucGFja0kzMik7dmFyIFVpbnQzMkFycmF5PW1ha2VUeXBlZEFycmF5KDQscGFja1UzMix1bnBhY2tVMzIpO3ZhciBGbG9hdDMyQXJyYXk9bWFrZVR5cGVkQXJyYXkoNCxwYWNrRjMyLHVucGFja0YzMik7dmFyIEZsb2F0NjRBcnJheT1tYWtlVHlwZWRBcnJheSg4LHBhY2tGNjQsdW5wYWNrRjY0KTtnbG9iYWwuSW50OEFycmF5PWdsb2JhbC5JbnQ4QXJyYXl8fEludDhBcnJheTtnbG9iYWwuVWludDhBcnJheT1nbG9iYWwuVWludDhBcnJheXx8VWludDhBcnJheTtnbG9iYWwuVWludDhDbGFtcGVkQXJyYXk9Z2xvYmFsLlVpbnQ4Q2xhbXBlZEFycmF5fHxVaW50OENsYW1wZWRBcnJheTtnbG9iYWwuSW50MTZBcnJheT1nbG9iYWwuSW50MTZBcnJheXx8SW50MTZBcnJheTtnbG9iYWwuVWludDE2QXJyYXk9Z2xvYmFsLlVpbnQxNkFycmF5fHxVaW50MTZBcnJheTtnbG9iYWwuSW50MzJBcnJheT1nbG9iYWwuSW50MzJBcnJheXx8SW50MzJBcnJheTtnbG9iYWwuVWludDMyQXJyYXk9Z2xvYmFsLlVpbnQzMkFycmF5fHxVaW50MzJBcnJheTtnbG9iYWwuRmxvYXQzMkFycmF5PWdsb2JhbC5GbG9hdDMyQXJyYXl8fEZsb2F0MzJBcnJheTtnbG9iYWwuRmxvYXQ2NEFycmF5PWdsb2JhbC5GbG9hdDY0QXJyYXl8fEZsb2F0NjRBcnJheX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihhcnJheSxpbmRleCl7cmV0dXJuIElzQ2FsbGFibGUoYXJyYXkuZ2V0KT9hcnJheS5nZXQoaW5kZXgpOmFycmF5W2luZGV4XX12YXIgSVNfQklHX0VORElBTj1mdW5jdGlvbigpe3ZhciB1MTZhcnJheT1uZXcgVWludDE2QXJyYXkoWzQ2NjBdKSx1OGFycmF5PW5ldyBVaW50OEFycmF5KHUxNmFycmF5LmJ1ZmZlcik7cmV0dXJuIHIodThhcnJheSwwKT09PTE4fSgpO2Z1bmN0aW9uIERhdGFWaWV3KGJ1ZmZlcixieXRlT2Zmc2V0LGJ5dGVMZW5ndGgpe2lmKCEoYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fENsYXNzKGJ1ZmZlcik9PT0iQXJyYXlCdWZmZXIiKSl0aHJvdyBUeXBlRXJyb3IoKTtieXRlT2Zmc2V0PVRvVWludDMyKGJ5dGVPZmZzZXQpO2lmKGJ5dGVPZmZzZXQ+YnVmZmVyLmJ5dGVMZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcigiYnl0ZU9mZnNldCBvdXQgb2YgcmFuZ2UiKTtpZihieXRlTGVuZ3RoPT09dW5kZWZpbmVkKWJ5dGVMZW5ndGg9YnVmZmVyLmJ5dGVMZW5ndGgtYnl0ZU9mZnNldDtlbHNlIGJ5dGVMZW5ndGg9VG9VaW50MzIoYnl0ZUxlbmd0aCk7aWYoYnl0ZU9mZnNldCtieXRlTGVuZ3RoPmJ1ZmZlci5ieXRlTGVuZ3RoKXRocm93IFJhbmdlRXJyb3IoImJ5dGVPZmZzZXQgYW5kIGxlbmd0aCByZWZlcmVuY2UgYW4gYXJlYSBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOmJ1ZmZlcn0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlTGVuZ3RoIix7dmFsdWU6Ynl0ZUxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlT2Zmc2V0Iix7dmFsdWU6Ynl0ZU9mZnNldH0pfWZ1bmN0aW9uIG1ha2VHZXR0ZXIoYXJyYXlUeXBlKXtyZXR1cm4gZnVuY3Rpb24gR2V0Vmlld1ZhbHVlKGJ5dGVPZmZzZXQsbGl0dGxlRW5kaWFuKXtieXRlT2Zmc2V0PVRvVWludDMyKGJ5dGVPZmZzZXQpO2lmKGJ5dGVPZmZzZXQrYXJyYXlUeXBlLkJZVEVTX1BFUl9FTEVNRU5UPnRoaXMuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSBpbmRleCBvdXQgb2YgcmFuZ2UiKTtieXRlT2Zmc2V0Kz10aGlzLmJ5dGVPZmZzZXQ7dmFyIHVpbnQ4QXJyYXk9bmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsYnl0ZU9mZnNldCxhcnJheVR5cGUuQllURVNfUEVSX0VMRU1FTlQpLGJ5dGVzPVtdO2Zvcih2YXIgaT0wO2k8YXJyYXlUeXBlLkJZVEVTX1BFUl9FTEVNRU5UO2krPTEpYnl0ZXMucHVzaChyKHVpbnQ4QXJyYXksaSkpO2lmKEJvb2xlYW4obGl0dGxlRW5kaWFuKT09PUJvb2xlYW4oSVNfQklHX0VORElBTikpYnl0ZXMucmV2ZXJzZSgpO3JldHVybiByKG5ldyBhcnJheVR5cGUobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLmJ1ZmZlciksMCl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldFVpbnQ4Iix7dmFsdWU6bWFrZUdldHRlcihVaW50OEFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEludDgiLHt2YWx1ZTptYWtlR2V0dGVyKEludDhBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJnZXRVaW50MTYiLHt2YWx1ZTptYWtlR2V0dGVyKFVpbnQxNkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEludDE2Iix7dmFsdWU6bWFrZUdldHRlcihJbnQxNkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldFVpbnQzMiIse3ZhbHVlOm1ha2VHZXR0ZXIoVWludDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwiZ2V0SW50MzIiLHt2YWx1ZTptYWtlR2V0dGVyKEludDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwiZ2V0RmxvYXQzMiIse3ZhbHVlOm1ha2VHZXR0ZXIoRmxvYXQzMkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEZsb2F0NjQiLHt2YWx1ZTptYWtlR2V0dGVyKEZsb2F0NjRBcnJheSl9KTtmdW5jdGlvbiBtYWtlU2V0dGVyKGFycmF5VHlwZSl7cmV0dXJuIGZ1bmN0aW9uIFNldFZpZXdWYWx1ZShieXRlT2Zmc2V0LHZhbHVlLGxpdHRsZUVuZGlhbil7Ynl0ZU9mZnNldD1Ub1VpbnQzMihieXRlT2Zmc2V0KTtpZihieXRlT2Zmc2V0K2FycmF5VHlwZS5CWVRFU19QRVJfRUxFTUVOVD50aGlzLmJ5dGVMZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcigiQXJyYXkgaW5kZXggb3V0IG9mIHJhbmdlIik7dmFyIHR5cGVBcnJheT1uZXcgYXJyYXlUeXBlKFt2YWx1ZV0pLGJ5dGVBcnJheT1uZXcgVWludDhBcnJheSh0eXBlQXJyYXkuYnVmZmVyKSxieXRlcz1bXSxpLGJ5dGVWaWV3O2ZvcihpPTA7aTxhcnJheVR5cGUuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSlieXRlcy5wdXNoKHIoYnl0ZUFycmF5LGkpKTtpZihCb29sZWFuKGxpdHRsZUVuZGlhbik9PT1Cb29sZWFuKElTX0JJR19FTkRJQU4pKWJ5dGVzLnJldmVyc2UoKTtieXRlVmlldz1uZXcgVWludDhBcnJheSh0aGlzLmJ1ZmZlcixieXRlT2Zmc2V0LGFycmF5VHlwZS5CWVRFU19QRVJfRUxFTUVOVCk7Ynl0ZVZpZXcuc2V0KGJ5dGVzKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0VWludDgiLHt2YWx1ZTptYWtlU2V0dGVyKFVpbnQ4QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0SW50OCIse3ZhbHVlOm1ha2VTZXR0ZXIoSW50OEFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsInNldFVpbnQxNiIse3ZhbHVlOm1ha2VTZXR0ZXIoVWludDE2QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0SW50MTYiLHt2YWx1ZTptYWtlU2V0dGVyKEludDE2QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0VWludDMyIix7dmFsdWU6bWFrZVNldHRlcihVaW50MzJBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJzZXRJbnQzMiIse3ZhbHVlOm1ha2VTZXR0ZXIoSW50MzJBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJzZXRGbG9hdDMyIix7dmFsdWU6bWFrZVNldHRlcihGbG9hdDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0RmxvYXQ2NCIse3ZhbHVlOm1ha2VTZXR0ZXIoRmxvYXQ2NEFycmF5KX0pO2dsb2JhbC5EYXRhVmlldz1nbG9iYWwuRGF0YVZpZXd8fERhdGFWaWV3fSkoKX0pKHRoaXMpOw=="></script>
<script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMS4zIHwgKGMpIDIwMDUsIDIwMTUgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gfCBqcXVlcnkub3JnL2xpY2Vuc2UgKi8KIWZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YS5kb2N1bWVudD9iKGEsITApOmZ1bmN0aW9uKGEpe2lmKCFhLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiBiKGEpfTpiKGEpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ9Yy5zbGljZSxlPWMuY29uY2F0LGY9Yy5wdXNoLGc9Yy5pbmRleE9mLGg9e30saT1oLnRvU3RyaW5nLGo9aC5oYXNPd25Qcm9wZXJ0eSxrPXt9LGw9IjEuMTEuMyIsbT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbS5mbi5pbml0KGEsYil9LG49L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLG89L14tbXMtLyxwPS8tKFtcZGEtel0pL2dpLHE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTttLmZuPW0ucHJvdG90eXBlPXtqcXVlcnk6bCxjb25zdHJ1Y3RvcjptLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZC5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTpkLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1tLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZWFjaCh0aGlzLGEsYil9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobS5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLGM9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhjPj0wJiZiPmM/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpmLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbS5leHRlbmQ9bS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG0uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihtLmlzUGxhaW5PYmplY3QoYyl8fChiPW0uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbS5pc0FycmF5KGEpP2E6W10pOmY9YSYmbS5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1tLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbS5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKGwrTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW0udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bS50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4hbS5pc0FycmF5KGEpJiZhLXBhcnNlRmxvYXQoYSkrMT49MH0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtmb3IoYiBpbiBhKXJldHVybiExO3JldHVybiEwfSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwib2JqZWN0IiE9PW0udHlwZShhKXx8YS5ub2RlVHlwZXx8bS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1Y3RvciYmIWouY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhai5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2goYyl7cmV0dXJuITF9aWYoay5vd25MYXN0KWZvcihiIGluIGEpcmV0dXJuIGouY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxqLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aFtpLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZtLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UobywibXMtIikucmVwbGFjZShwLHEpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9MCxmPWEubGVuZ3RoLGc9cihhKTtpZihjKXtpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmFwcGx5KGFbZV0sYyksZD09PSExKWJyZWFrfWVsc2UgZm9yKGUgaW4gYSlpZihkPWIuYXBwbHkoYVtlXSxjKSxkPT09ITEpYnJlYWt9ZWxzZSBpZihnKXtmb3IoO2Y+ZTtlKyspaWYoZD1iLmNhbGwoYVtlXSxlLGFbZV0pLGQ9PT0hMSlicmVha31lbHNlIGZvcihlIGluIGEpaWYoZD1iLmNhbGwoYVtlXSxlLGFbZV0pLGQ9PT0hMSlicmVhaztyZXR1cm4gYX0sdHJpbTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShuLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8W107cmV0dXJuIG51bGwhPWEmJihyKE9iamVjdChhKSk/bS5tZXJnZShjLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6Zi5jYWxsKGMsYSkpLGN9LGluQXJyYXk6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2lmKGIpe2lmKGcpcmV0dXJuIGcuY2FsbChiLGEsYyk7Zm9yKGQ9Yi5sZW5ndGgsYz1jPzA+Yz9NYXRoLm1heCgwLGQrYyk6YzowO2Q+YztjKyspaWYoYyBpbiBiJiZiW2NdPT09YSlyZXR1cm4gY31yZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgYz0rYi5sZW5ndGgsZD0wLGU9YS5sZW5ndGg7d2hpbGUoYz5kKWFbZSsrXT1iW2QrK107aWYoYyE9PWMpd2hpbGUodm9pZCAwIT09YltkXSlhW2UrK109YltkKytdO3JldHVybiBhLmxlbmd0aD1lLGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCxlPVtdLGY9MCxnPWEubGVuZ3RoLGg9IWM7Zz5mO2YrKylkPSFiKGFbZl0sZiksZCE9PWgmJmUucHVzaChhW2ZdKTtyZXR1cm4gZX0sbWFwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxmPTAsZz1hLmxlbmd0aCxoPXIoYSksaT1bXTtpZihoKWZvcig7Zz5mO2YrKylkPWIoYVtmXSxmLGMpLG51bGwhPWQmJmkucHVzaChkKTtlbHNlIGZvcihmIGluIGEpZD1iKGFbZl0sZixjKSxudWxsIT1kJiZpLnB1c2goZCk7cmV0dXJuIGUuYXBwbHkoW10saSl9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihhLGIpe3ZhciBjLGUsZjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGImJihmPWFbYl0sYj1hLGE9ZiksbS5pc0Z1bmN0aW9uKGEpPyhjPWQuY2FsbChhcmd1bWVudHMsMiksZT1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsYy5jb25jYXQoZC5jYWxsKGFyZ3VtZW50cykpKX0sZS5ndWlkPWEuZ3VpZD1hLmd1aWR8fG0uZ3VpZCsrLGUpOnZvaWQgMH0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSxzdXBwb3J0Omt9KSxtLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtoWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIHIoYSl7dmFyIGI9Imxlbmd0aCJpbiBhJiZhLmxlbmd0aCxjPW0udHlwZShhKTtyZXR1cm4iZnVuY3Rpb24iPT09Y3x8bS5pc1dpbmRvdyhhKT8hMToxPT09YS5ub2RlVHlwZSYmYj8hMDoiYXJyYXkiPT09Y3x8MD09PWJ8fCJudW1iZXIiPT10eXBlb2YgYiYmYj4wJiZiLTEgaW4gYX12YXIgcz1mdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1PSJzaXp6bGUiKzEqbmV3IERhdGUsdj1hLmRvY3VtZW50LHc9MCx4PTAseT1oYSgpLHo9aGEoKSxBPWhhKCksQj1mdW5jdGlvbihhLGIpe3JldHVybiBhPT09YiYmKGw9ITApLDB9LEM9MTw8MzEsRD17fS5oYXNPd25Qcm9wZXJ0eSxFPVtdLEY9RS5wb3AsRz1FLnB1c2gsSD1FLnB1c2gsST1FLnNsaWNlLEo9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2Q+YztjKyspaWYoYVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9LEs9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixMPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixNPSIoPzpcXFxcLnxbXFx3LV18W15cXHgwMC1cXHhhMF0pKyIsTj1NLnJlcGxhY2UoInciLCJ3IyIpLE89IlxcWyIrTCsiKigiK00rIikoPzoiK0wrIiooWypeJHwhfl0/PSkiK0wrIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitOKyIpKXwpIitMKyIqXFxdIixQPSI6KCIrTSsiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrTysiKSopfC4qKVxcKXwpIixRPW5ldyBSZWdFeHAoTCsiKyIsImciKSxSPW5ldyBSZWdFeHAoIl4iK0wrIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTCsiKyQiLCJnIiksUz1uZXcgUmVnRXhwKCJeIitMKyIqLCIrTCsiKiIpLFQ9bmV3IFJlZ0V4cCgiXiIrTCsiKihbPit+XXwiK0wrIikiK0wrIioiKSxVPW5ldyBSZWdFeHAoIj0iK0wrIiooW15cXF0nXCJdKj8pIitMKyIqXFxdIiwiZyIpLFY9bmV3IFJlZ0V4cChQKSxXPW5ldyBSZWdFeHAoIl4iK04rIiQiKSxYPXtJRDpuZXcgUmVnRXhwKCJeIygiK00rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTS5yZXBsYWNlKCJ3IiwidyoiKSsiKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrTyksUFNFVURPOm5ldyBSZWdFeHAoIl4iK1ApLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTCsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTCsiKig/OihbKy1dfCkiK0wrIiooXFxkKyl8KSkiK0wrIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK0srIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitMKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK0wrIiooKD86LVxcZCk/XFxkKikiK0wrIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxaPS9eaFxkJC9pLCQ9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLF89L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxhYT0vWyt+XS8sYmE9Lyd8XFwvZyxjYT1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK0wrIj98KCIrTCsiKXwuKSIsImlnIiksZGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9LGVhPWZ1bmN0aW9uKCl7bSgpfTt0cnl7SC5hcHBseShFPUkuY2FsbCh2LmNoaWxkTm9kZXMpLHYuY2hpbGROb2RlcyksRVt2LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChmYSl7SD17YXBwbHk6RS5sZW5ndGg/ZnVuY3Rpb24oYSxiKXtHLmFwcGx5KGEsSS5jYWxsKGIpKX06ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aCxkPTA7d2hpbGUoYVtjKytdPWJbZCsrXSk7YS5sZW5ndGg9Yy0xfX19ZnVuY3Rpb24gZ2EoYSxiLGQsZSl7dmFyIGYsaCxqLGssbCxvLHIscyx3LHg7aWYoKGI/Yi5vd25lckRvY3VtZW50fHxiOnYpIT09biYmbShiKSxiPWJ8fG4sZD1kfHxbXSxrPWIubm9kZVR5cGUsInN0cmluZyIhPXR5cGVvZiBhfHwhYXx8MSE9PWsmJjkhPT1rJiYxMSE9PWspcmV0dXJuIGQ7aWYoIWUmJnApe2lmKDExIT09ayYmKGY9Xy5leGVjKGEpKSlpZihqPWZbMV0pe2lmKDk9PT1rKXtpZihoPWIuZ2V0RWxlbWVudEJ5SWQoaiksIWh8fCFoLnBhcmVudE5vZGUpcmV0dXJuIGQ7aWYoaC5pZD09PWopcmV0dXJuIGQucHVzaChoKSxkfWVsc2UgaWYoYi5vd25lckRvY3VtZW50JiYoaD1iLm93bmVyRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaikpJiZ0KGIsaCkmJmguaWQ9PT1qKXJldHVybiBkLnB1c2goaCksZH1lbHNle2lmKGZbMl0pcmV0dXJuIEguYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpKSxkO2lmKChqPWZbM10pJiZjLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEguYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaikpLGR9aWYoYy5xc2EmJighcXx8IXEudGVzdChhKSkpe2lmKHM9cj11LHc9Yix4PTEhPT1rJiZhLDE9PT1rJiYib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7bz1nKGEpLChyPWIuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXIucmVwbGFjZShiYSwiXFwkJiIpOmIuc2V0QXR0cmlidXRlKCJpZCIscykscz0iW2lkPSciK3MrIiddICIsbD1vLmxlbmd0aDt3aGlsZShsLS0pb1tsXT1zK3JhKG9bbF0pO3c9YWEudGVzdChhKSYmcGEoYi5wYXJlbnROb2RlKXx8Yix4PW8uam9pbigiLCIpfWlmKHgpdHJ5e3JldHVybiBILmFwcGx5KGQsdy5xdWVyeVNlbGVjdG9yQWxsKHgpKSxkfWNhdGNoKHkpe31maW5hbGx5e3J8fGIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFIsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGhhKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBpYShhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGphKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1hLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24gbGEoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEMpLSh+YS5zb3VyY2VJbmRleHx8Qyk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIG1hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG5hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBvYShhKXtyZXR1cm4gaWEoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaWEoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBwYShhKXtyZXR1cm4gYSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZhfWM9Z2Euc3VwcG9ydD17fSxmPWdhLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWdhLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGUsZz1hP2Eub3duZXJEb2N1bWVudHx8YTp2O3JldHVybiBnIT09biYmOT09PWcubm9kZVR5cGUmJmcuZG9jdW1lbnRFbGVtZW50PyhuPWcsbz1nLmRvY3VtZW50RWxlbWVudCxlPWcuZGVmYXVsdFZpZXcsZSYmZSE9PWUudG9wJiYoZS5hZGRFdmVudExpc3RlbmVyP2UuYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixlYSwhMSk6ZS5hdHRhY2hFdmVudCYmZS5hdHRhY2hFdmVudCgib251bmxvYWQiLGVhKSkscD0hZihnKSxjLmF0dHJpYnV0ZXM9amEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1qYShmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChnLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT0kLnRlc3QoZy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxjLmdldEJ5SWQ9amEoZnVuY3Rpb24oYSl7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoYSkuaWQ9dSwhZy5nZXRFbGVtZW50c0J5TmFtZXx8IWcuZ2V0RWxlbWVudHNCeU5hbWUodSkubGVuZ3RofSksYy5nZXRCeUlkPyhkLmZpbmQuSUQ9ZnVuY3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudEJ5SWQmJnApe3ZhciBjPWIuZ2V0RWxlbWVudEJ5SWQoYSk7cmV0dXJuIGMmJmMucGFyZW50Tm9kZT9bY106W119fSxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoY2EsZGEpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgZC5maW5kLklELGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYSxkYSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlJiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFsdWU9PT1ifX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOmMucXNhP2IucXVlcnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3doaWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LGQuZmluZC5DTEFTUz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7cmV0dXJuIHA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT0kLnRlc3QoZy5xdWVyeVNlbGVjdG9yQWxsKSkmJihqYShmdW5jdGlvbihhKXtvLmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD0iPGEgaWQ9JyIrdSsiJz48L2E+PHNlbGVjdCBpZD0nIit1KyItXGZdJyBtc2FsbG93Y2FwdHVyZT0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsYS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NhcHR1cmVePScnXSIpLmxlbmd0aCYmcS5wdXNoKCJbKl4kXT0iK0wrIiooPzonJ3xcIlwiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8cS5wdXNoKCJcXFsiK0wrIiooPzp2YWx1ZXwiK0srIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49Iit1KyItXSIpLmxlbmd0aHx8cS5wdXNoKCJ+PSIpLGEucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fHEucHVzaCgiOmNoZWNrZWQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIit1KyIrKiIpLmxlbmd0aHx8cS5wdXNoKCIuIy4rWyt+XSIpfSksamEoZnVuY3Rpb24oYSl7dmFyIGI9Zy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO2Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksYS5hcHBlbmRDaGlsZChiKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT1kXSIpLmxlbmd0aCYmcS5wdXNoKCJuYW1lIitMKyIqWypeJHwhfl0/PSIpLGEucXVlcnlTZWxlY3RvckFsbCgiOmVuYWJsZWQiKS5sZW5ndGh8fHEucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSxxLnB1c2goIiwuKjoiKX0pKSwoYy5tYXRjaGVzU2VsZWN0b3I9JC50ZXN0KHM9by5tYXRjaGVzfHxvLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8by5tb3pNYXRjaGVzU2VsZWN0b3J8fG8ub01hdGNoZXNTZWxlY3Rvcnx8by5tc01hdGNoZXNTZWxlY3RvcikpJiZqYShmdW5jdGlvbihhKXtjLmRpc2Nvbm5lY3RlZE1hdGNoPXMuY2FsbChhLCJkaXYiKSxzLmNhbGwoYSwiW3MhPScnXTp4Iiksci5wdXNoKCIhPSIsUCl9KSxxPXEubGVuZ3RoJiZuZXcgUmVnRXhwKHEuam9pbigifCIpKSxyPXIubGVuZ3RoJiZuZXcgUmVnRXhwKHIuam9pbigifCIpKSxiPSQudGVzdChvLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKSx0PWJ8fCQudGVzdChvLmNvbnRhaW5zKT9mdW5jdGlvbihhLGIpe3ZhciBjPTk9PT1hLm5vZGVUeXBlP2EuZG9jdW1lbnRFbGVtZW50OmEsZD1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1kfHwhKCFkfHwxIT09ZC5ub2RlVHlwZXx8IShjLmNvbnRhaW5zP2MuY29udGFpbnMoZCk6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmMTYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihkKSkpfTpmdW5jdGlvbihhLGIpe2lmKGIpd2hpbGUoYj1iLnBhcmVudE5vZGUpaWYoYj09PWEpcmV0dXJuITA7cmV0dXJuITF9LEI9Yj9mdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGQ9IWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIWIuY29tcGFyZURvY3VtZW50UG9zaXRpb247cmV0dXJuIGQ/ZDooZD0oYS5vd25lckRvY3VtZW50fHxhKT09PShiLm93bmVyRG9jdW1lbnR8fGIpP2EuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYik6MSwxJmR8fCFjLnNvcnREZXRhY2hlZCYmYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihhKT09PWQ/YT09PWd8fGEub3duZXJEb2N1bWVudD09PXYmJnQodixhKT8tMTpiPT09Z3x8Yi5vd25lckRvY3VtZW50PT09diYmdCh2LGIpPzE6az9KKGssYSktSihrLGIpOjA6NCZkPy0xOjEpfTpmdW5jdGlvbihhLGIpe2lmKGE9PT1iKXJldHVybiBsPSEwLDA7dmFyIGMsZD0wLGU9YS5wYXJlbnROb2RlLGY9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFlfHwhZilyZXR1cm4gYT09PWc/LTE6Yj09PWc/MTplPy0xOmY/MTprP0ooayxhKS1KKGssYik6MDtpZihlPT09ZilyZXR1cm4gbGEoYSxiKTtjPWE7d2hpbGUoYz1jLnBhcmVudE5vZGUpaC51bnNoaWZ0KGMpO2M9Yjt3aGlsZShjPWMucGFyZW50Tm9kZSlpLnVuc2hpZnQoYyk7d2hpbGUoaFtkXT09PWlbZF0pZCsrO3JldHVybiBkP2xhKGhbZF0saVtkXSk6aFtkXT09PXY/LTE6aVtkXT09PXY/MTowfSxnKTpufSxnYS5tYXRjaGVzPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGdhKGEsbnVsbCxudWxsLGIpfSxnYS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oYSxiKXtpZigoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSksYj1iLnJlcGxhY2UoVSwiPSckMSddIiksISghYy5tYXRjaGVzU2VsZWN0b3J8fCFwfHxyJiZyLnRlc3QoYil8fHEmJnEudGVzdChiKSkpdHJ5e3ZhciBkPXMuY2FsbChhLGIpO2lmKGR8fGMuZGlzY29ubmVjdGVkTWF0Y2h8fGEuZG9jdW1lbnQmJjExIT09YS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gZH1jYXRjaChlKXt9cmV0dXJuIGdhKGIsbixudWxsLFthXSkubGVuZ3RoPjB9LGdhLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLHQoYSxiKX0sZ2EuYXR0cj1mdW5jdGlvbihhLGIpeyhhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKTt2YXIgZT1kLmF0dHJIYW5kbGVbYi50b0xvd2VyQ2FzZSgpXSxmPWUmJkQuY2FsbChkLmF0dHJIYW5kbGUsYi50b0xvd2VyQ2FzZSgpKT9lKGEsYiwhcCk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1mP2Y6Yy5hdHRyaWJ1dGVzfHwhcD9hLmdldEF0dHJpYnV0ZShiKTooZj1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZmLnNwZWNpZmllZD9mLnZhbHVlOm51bGx9LGdhLmVycm9yPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIithKX0sZ2EudW5pcXVlU29ydD1mdW5jdGlvbihhKXt2YXIgYixkPVtdLGU9MCxmPTA7aWYobD0hYy5kZXRlY3REdXBsaWNhdGVzLGs9IWMuc29ydFN0YWJsZSYmYS5zbGljZSgwKSxhLnNvcnQoQiksbCl7d2hpbGUoYj1hW2YrK10pYj09PWFbZl0mJihlPWQucHVzaChmKSk7d2hpbGUoZS0tKWEuc3BsaWNlKGRbZV0sMSl9cmV0dXJuIGs9bnVsbCxhfSxlPWdhLmdldFRleHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixkPTAsZj1hLm5vZGVUeXBlO2lmKGYpe2lmKDE9PT1mfHw5PT09Znx8MTE9PT1mKXtpZigic3RyaW5nIj09dHlwZW9mIGEudGV4dENvbnRlbnQpcmV0dXJuIGEudGV4dENvbnRlbnQ7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWMrPWUoYSl9ZWxzZSBpZigzPT09Znx8ND09PWYpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2Ugd2hpbGUoYj1hW2QrK10pYys9ZShiKTtyZXR1cm4gY30sZD1nYS5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzppYSxtYXRjaDpYLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnJlcGxhY2UoY2EsZGEpLGFbM109KGFbM118fGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGNhLGRhKSwifj0iPT09YVsyXSYmKGFbM109IiAiK2FbM10rIiAiKSxhLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWFbMV0uc2xpY2UoMCwzKT8oYVszXXx8Z2EuZXJyb3IoYVswXSksYVs0XT0rKGFbNF0/YVs1XSsoYVs2XXx8MSk6MiooImV2ZW4iPT09YVszXXx8Im9kZCI9PT1hWzNdKSksYVs1XT0rKGFbN10rYVs4XXx8Im9kZCI9PT1hWzNdKSk6YVszXSYmZ2EuZXJyb3IoYVswXSksYX0sUFNFVURPOmZ1bmN0aW9uKGEpe3ZhciBiLGM9IWFbNl0mJmFbMl07cmV0dXJuIFguQ0hJTEQudGVzdChhWzBdKT9udWxsOihhWzNdP2FbMl09YVs0XXx8YVs1XXx8IiI6YyYmVi50ZXN0KGMpJiYoYj1nKGMsITApKSYmKGI9Yy5pbmRleE9mKCIpIixjLmxlbmd0aC1iKS1jLmxlbmd0aCkmJihhWzBdPWFbMF0uc2xpY2UoMCxiKSxhWzJdPWMuc2xpY2UoMCxiKSksYS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShjYSxkYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1ifX0sQ0xBU1M6ZnVuY3Rpb24oYSl7dmFyIGI9eVthKyIgIl07cmV0dXJuIGJ8fChiPW5ldyBSZWdFeHAoIihefCIrTCsiKSIrYSsiKCIrTCsifCQpIikpJiZ5KGEsZnVuY3Rpb24oYSl7cmV0dXJuIGIudGVzdCgic3RyaW5nIj09dHlwZW9mIGEuY2xhc3NOYW1lJiZhLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9Z2EuYXR0cihkLGEpO3JldHVybiBudWxsPT1lPyIhPSI9PT1iOmI/KGUrPSIiLCI9Ij09PWI/ZT09PWM6IiE9Ij09PWI/ZSE9PWM6Il49Ij09PWI/YyYmMD09PWUuaW5kZXhPZihjKToiKj0iPT09Yj9jJiZlLmluZGV4T2YoYyk+LTE6IiQ9Ij09PWI/YyYmZS5zbGljZSgtYy5sZW5ndGgpPT09Yzoifj0iPT09Yj8oIiAiK2UucmVwbGFjZShRLCIgIikrIiAiKS5pbmRleE9mKGMpPi0xOiJ8PSI9PT1iP2U9PT1jfHxlLnNsaWNlKDAsYy5sZW5ndGgrMSk9PT1jKyItIjohMSk6ITB9fSxDSElMRDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSJudGgiIT09YS5zbGljZSgwLDMpLGc9Imxhc3QiIT09YS5zbGljZSgtNCksaD0ib2YtdHlwZSI9PT1iO3JldHVybiAxPT09ZCYmMD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLHE9Yi5wYXJlbnROb2RlLHI9aCYmYi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHM9IWkmJiFoO2lmKHEpe2lmKGYpe3doaWxlKHApe2w9Yjt3aGlsZShsPWxbcF0paWYoaD9sLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1sLm5vZGVUeXBlKXJldHVybiExO289cD0ib25seSI9PT1hJiYhbyYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihvPVtnP3EuZmlyc3RDaGlsZDpxLmxhc3RDaGlsZF0sZyYmcyl7az1xW3VdfHwocVt1XT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLG09alswXT09PXcmJmpbMl0sbD1uJiZxLmNoaWxkTm9kZXNbbl07d2hpbGUobD0rK24mJmwmJmxbcF18fChtPW49MCl8fG8ucG9wKCkpaWYoMT09PWwubm9kZVR5cGUmJisrbSYmbD09PWIpe2tbYV09W3csbixtXTticmVha319ZWxzZSBpZihzJiYoaj0oYlt1XXx8KGJbdV09e30pKVthXSkmJmpbMF09PT13KW09alsxXTtlbHNlIHdoaWxlKGw9KytuJiZsJiZsW3BdfHwobT1uPTApfHxvLnBvcCgpKWlmKChoP2wubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PWwubm9kZVR5cGUpJiYrK20mJihzJiYoKGxbdV18fChsW3VdPXt9KSlbYV09W3csbV0pLGw9PT1iKSlicmVhaztyZXR1cm4gbS09ZSxtPT09ZHx8bSVkPT09MCYmbS9kPj0wfX19LFBTRVVETzpmdW5jdGlvbihhLGIpe3ZhciBjLGU9ZC5wc2V1ZG9zW2FdfHxkLnNldEZpbHRlcnNbYS50b0xvd2VyQ2FzZSgpXXx8Z2EuZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIithKTtyZXR1cm4gZVt1XT9lKGIpOmUubGVuZ3RoPjE/KGM9W2EsYSwiIixiXSxkLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoYS50b0xvd2VyQ2FzZSgpKT9pYShmdW5jdGlvbihhLGMpe3ZhciBkLGY9ZShhLGIpLGc9Zi5sZW5ndGg7d2hpbGUoZy0tKWQ9SihhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDppYShmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUiwiJDEiKSk7cmV0dXJuIGRbdV0/aWEoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksYlswXT1udWxsLCFjLnBvcCgpfX0pLGhhczppYShmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIGdhKGEsYikubGVuZ3RoPjB9fSksY29udGFpbnM6aWEoZnVuY3Rpb24oYSl7cmV0dXJuIGE9YS5yZXBsYWNlKGNhLGRhKSxmdW5jdGlvbihiKXtyZXR1cm4oYi50ZXh0Q29udGVudHx8Yi5pbm5lclRleHR8fGUoYikpLmluZGV4T2YoYSk+LTF9fSksbGFuZzppYShmdW5jdGlvbihhKXtyZXR1cm4gVy50ZXN0KGF8fCIiKXx8Z2EuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrYSksYT1hLnJlcGxhY2UoY2EsZGEpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oYil7dmFyIGM7ZG8gaWYoYz1wP2IubGFuZzpiLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8Yi5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4gYz1jLnRvTG93ZXJDYXNlKCksYz09PWF8fDA9PT1jLmluZGV4T2YoYSsiLSIpO3doaWxlKChiPWIucGFyZW50Tm9kZSkmJjE9PT1iLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oYil7dmFyIGM9YS5sb2NhdGlvbiYmYS5sb2NhdGlvbi5oYXNoO3JldHVybiBjJiZjLnNsaWNlKDEpPT09Yi5pZH0scm9vdDpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW99LGZvY3VzOmZ1bmN0aW9uKGEpe3JldHVybiBhPT09bi5hY3RpdmVFbGVtZW50JiYoIW4uaGFzRm9jdXN8fG4uaGFzRm9jdXMoKSkmJiEhKGEudHlwZXx8YS5ocmVmfHx+YS50YWJJbmRleCl9LGVuYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMX0sZGlzYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMH0sY2hlY2tlZDpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiEhYS5jaGVja2VkfHwib3B0aW9uIj09PWImJiEhYS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsYS5zZWxlY3RlZD09PSEwfSxlbXB0eTpmdW5jdGlvbihhKXtmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpaWYoYS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIWQucHNldWRvcy5lbXB0eShhKX0saGVhZGVyOmZ1bmN0aW9uKGEpe3JldHVybiBaLnRlc3QoYS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGEpe3JldHVybiBZLnRlc3QoYS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiJidXR0b24iPT09YS50eXBlfHwiYnV0dG9uIj09PWJ9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuImlucHV0Ij09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09YS50eXBlJiYobnVsbD09KGI9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PWIudG9Mb3dlckNhc2UoKSl9LGZpcnN0Om9hKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpvYShmdW5jdGlvbihhLGIpe3JldHVybltiLTFdfSksZXE6b2EoZnVuY3Rpb24oYSxiLGMpe3JldHVyblswPmM/YytiOmNdfSksZXZlbjpvYShmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2I+YztjKz0yKWEucHVzaChjKTtyZXR1cm4gYX0pLG9kZDpvYShmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2I+YztjKz0yKWEucHVzaChjKTtyZXR1cm4gYX0pLGx0Om9hKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOy0tZD49MDspYS5wdXNoKGQpO3JldHVybiBhfSksZ3Q6b2EoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7KytkPGI7KWEucHVzaChkKTtyZXR1cm4gYX0pfX0sZC5wc2V1ZG9zLm50aD1kLnBzZXVkb3MuZXE7Zm9yKGIgaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pZC5wc2V1ZG9zW2JdPW1hKGIpO2ZvcihiIGlue3N1Ym1pdDohMCxyZXNldDohMH0pZC5wc2V1ZG9zW2JdPW5hKGIpO2Z1bmN0aW9uIHFhKCl7fXFhLnByb3RvdHlwZT1kLmZpbHRlcnM9ZC5wc2V1ZG9zLGQuc2V0RmlsdGVycz1uZXcgcWEsZz1nYS50b2tlbml6ZT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZixnLGgsaSxqLGs9elthKyIgIl07aWYoaylyZXR1cm4gYj8wOmsuc2xpY2UoMCk7aD1hLGk9W10saj1kLnByZUZpbHRlcjt3aGlsZShoKXsoIWN8fChlPVMuZXhlYyhoKSkpJiYoZSYmKGg9aC5zbGljZShlWzBdLmxlbmd0aCl8fGgpLGkucHVzaChmPVtdKSksYz0hMSwoZT1ULmV4ZWMoaCkpJiYoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZVswXS5yZXBsYWNlKFIsIiAiKX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2ZvcihnIGluIGQuZmlsdGVyKSEoZT1YW2ddLmV4ZWMoaCkpfHxqW2ddJiYhKGU9altnXShlKSl8fChjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTpnLG1hdGNoZXM6ZX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2lmKCFjKWJyZWFrfXJldHVybiBiP2gubGVuZ3RoOmg/Z2EuZXJyb3IoYSk6eihhLGkpLnNsaWNlKDApfTtmdW5jdGlvbiByYShhKXtmb3IodmFyIGI9MCxjPWEubGVuZ3RoLGQ9IiI7Yz5iO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1bmN0aW9uIHNhKGEsYixjKXt2YXIgZD1iLmRpcixlPWMmJiJwYXJlbnROb2RlIj09PWQsZj14Kys7cmV0dXJuIGIuZmlyc3Q/ZnVuY3Rpb24oYixjLGYpe3doaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSlyZXR1cm4gYShiLGMsZil9OmZ1bmN0aW9uKGIsYyxnKXt2YXIgaCxpLGo9W3csZl07aWYoZyl7d2hpbGUoYj1iW2RdKWlmKCgxPT09Yi5ub2RlVHlwZXx8ZSkmJmEoYixjLGcpKXJldHVybiEwfWVsc2Ugd2hpbGUoYj1iW2RdKWlmKDE9PT1iLm5vZGVUeXBlfHxlKXtpZihpPWJbdV18fChiW3VdPXt9KSwoaD1pW2RdKSYmaFswXT09PXcmJmhbMV09PT1mKXJldHVybiBqWzJdPWhbMl07aWYoaVtkXT1qLGpbMl09YShiLGMsZykpcmV0dXJuITB9fX1mdW5jdGlvbiB0YShhKXtyZXR1cm4gYS5sZW5ndGg+MT9mdW5jdGlvbihiLGMsZCl7dmFyIGU9YS5sZW5ndGg7d2hpbGUoZS0tKWlmKCFhW2VdKGIsYyxkKSlyZXR1cm4hMTtyZXR1cm4hMH06YVswXX1mdW5jdGlvbiB1YShhLGIsYyl7Zm9yKHZhciBkPTAsZT1iLmxlbmd0aDtlPmQ7ZCsrKWdhKGEsYltkXSxjKTtyZXR1cm4gY31mdW5jdGlvbiB2YShhLGIsYyxkLGUpe2Zvcih2YXIgZixnPVtdLGg9MCxpPWEubGVuZ3RoLGo9bnVsbCE9YjtpPmg7aCsrKShmPWFbaF0pJiYoIWN8fGMoZixkLGUpKSYmKGcucHVzaChmKSxqJiZiLnB1c2goaCkpO3JldHVybiBnfWZ1bmN0aW9uIHdhKGEsYixjLGQsZSxmKXtyZXR1cm4gZCYmIWRbdV0mJihkPXdhKGQpKSxlJiYhZVt1XSYmKGU9d2EoZSxmKSksaWEoZnVuY3Rpb24oZixnLGgsaSl7dmFyIGosayxsLG09W10sbj1bXSxvPWcubGVuZ3RoLHA9Znx8dWEoYnx8IioiLGgubm9kZVR5cGU/W2hdOmgsW10pLHE9IWF8fCFmJiZiP3A6dmEocCxtLGEsaCxpKSxyPWM/ZXx8KGY/YTpvfHxkKT9bXTpnOnE7aWYoYyYmYyhxLHIsaCxpKSxkKXtqPXZhKHIsbiksZChqLFtdLGgsaSksaz1qLmxlbmd0aDt3aGlsZShrLS0pKGw9altrXSkmJihyW25ba11dPSEocVtuW2tdXT1sKSl9aWYoZil7aWYoZXx8YSl7aWYoZSl7aj1bXSxrPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmai5wdXNoKHFba109bCk7ZShudWxsLHI9W10saixpKX1rPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmKGo9ZT9KKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj12YShyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SC5hcHBseShnLHIpfSl9ZnVuY3Rpb24geGEoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1zYShmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9c2EoZnVuY3Rpb24oYSl7cmV0dXJuIEooYixhKT4tMX0saCwhMCksbT1bZnVuY3Rpb24oYSxjLGQpe3ZhciBlPSFnJiYoZHx8YyE9PWopfHwoKGI9Yykubm9kZVR5cGU/ayhhLGMsZCk6bChhLGMsZCkpO3JldHVybiBiPW51bGwsZX1dO2Y+aTtpKyspaWYoYz1kLnJlbGF0aXZlW2FbaV0udHlwZV0pbT1bc2EodGEobSksYyldO2Vsc2V7aWYoYz1kLmZpbHRlclthW2ldLnR5cGVdLmFwcGx5KG51bGwsYVtpXS5tYXRjaGVzKSxjW3VdKXtmb3IoZT0rK2k7Zj5lO2UrKylpZihkLnJlbGF0aXZlW2FbZV0udHlwZV0pYnJlYWs7cmV0dXJuIHdhKGk+MSYmdGEobSksaT4xJiZyYShhLnNsaWNlKDAsaS0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWFbaS0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKFIsIiQxIiksYyxlPmkmJnhhKGEuc2xpY2UoaSxlKSksZj5lJiZ4YShhPWEuc2xpY2UoZSkpLGY+ZSYmcmEoYSkpfW0ucHVzaChjKX1yZXR1cm4gdGEobSl9ZnVuY3Rpb24geWEoYSxiKXt2YXIgYz1iLmxlbmd0aD4wLGU9YS5sZW5ndGg+MCxmPWZ1bmN0aW9uKGYsZyxoLGksayl7dmFyIGwsbSxvLHA9MCxxPSIwIixyPWYmJltdLHM9W10sdD1qLHU9Znx8ZSYmZC5maW5kLlRBRygiKiIsayksdj13Kz1udWxsPT10PzE6TWF0aC5yYW5kb20oKXx8LjEseD11Lmxlbmd0aDtmb3IoayYmKGo9ZyE9PW4mJmcpO3EhPT14JiZudWxsIT0obD11W3FdKTtxKyspe2lmKGUmJmwpe209MDt3aGlsZShvPWFbbSsrXSlpZihvKGwsZyxoKSl7aS5wdXNoKGwpO2JyZWFrfWsmJih3PXYpfWMmJigobD0hbyYmbCkmJnAtLSxmJiZyLnB1c2gobCkpfWlmKHArPXEsYyYmcSE9PXApe209MDt3aGlsZShvPWJbbSsrXSlvKHIscyxnLGgpO2lmKGYpe2lmKHA+MCl3aGlsZShxLS0pcltxXXx8c1txXXx8KHNbcV09Ri5jYWxsKGkpKTtzPXZhKHMpfUguYXBwbHkoaSxzKSxrJiYhZiYmcy5sZW5ndGg+MCYmcCtiLmxlbmd0aD4xJiZnYS51bmlxdWVTb3J0KGkpfXJldHVybiBrJiYodz12LGo9dCkscn07cmV0dXJuIGM/aWEoZik6Zn1yZXR1cm4gaD1nYS5jb21waWxlPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPVtdLGY9QVthKyIgIl07aWYoIWYpe2J8fChiPWcoYSkpLGM9Yi5sZW5ndGg7d2hpbGUoYy0tKWY9eGEoYltjXSksZlt1XT9kLnB1c2goZik6ZS5wdXNoKGYpO2Y9QShhLHlhKGUsZCkpLGYuc2VsZWN0b3I9YX1yZXR1cm4gZn0saT1nYS5zZWxlY3Q9ZnVuY3Rpb24oYSxiLGUsZil7dmFyIGksaixrLGwsbSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhLG89IWYmJmcoYT1uLnNlbGVjdG9yfHxhKTtpZihlPWV8fFtdLDE9PT1vLmxlbmd0aCl7aWYoaj1vWzBdPW9bMF0uc2xpY2UoMCksai5sZW5ndGg+MiYmIklEIj09PShrPWpbMF0pLnR5cGUmJmMuZ2V0QnlJZCYmOT09PWIubm9kZVR5cGUmJnAmJmQucmVsYXRpdmVbalsxXS50eXBlXSl7aWYoYj0oZC5maW5kLklEKGsubWF0Y2hlc1swXS5yZXBsYWNlKGNhLGRhKSxiKXx8W10pWzBdLCFiKXJldHVybiBlO24mJihiPWIucGFyZW50Tm9kZSksYT1hLnNsaWNlKGouc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWk9WC5uZWVkc0NvbnRleHQudGVzdChhKT8wOmoubGVuZ3RoO3doaWxlKGktLSl7aWYoaz1qW2ldLGQucmVsYXRpdmVbbD1rLnR5cGVdKWJyZWFrO2lmKChtPWQuZmluZFtsXSkmJihmPW0oay5tYXRjaGVzWzBdLnJlcGxhY2UoY2EsZGEpLGFhLnRlc3QoalswXS50eXBlKSYmcGEoYi5wYXJlbnROb2RlKXx8YikpKXtpZihqLnNwbGljZShpLDEpLGE9Zi5sZW5ndGgmJnJhKGopLCFhKXJldHVybiBILmFwcGx5KGUsZiksZTticmVha319fXJldHVybihufHxoKGEsbykpKGYsYiwhcCxlLGFhLnRlc3QoYSkmJnBhKGIucGFyZW50Tm9kZSl8fGIpLGV9LGMuc29ydFN0YWJsZT11LnNwbGl0KCIiKS5zb3J0KEIpLmpvaW4oIiIpPT09dSxjLmRldGVjdER1cGxpY2F0ZXM9ISFsLG0oKSxjLnNvcnREZXRhY2hlZD1qYShmdW5jdGlvbihhKXtyZXR1cm4gMSZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG4uY3JlYXRlRWxlbWVudCgiZGl2IikpfSksamEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IiwiIyI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIil9KXx8a2EoInR5cGV8aHJlZnxoZWlnaHR8d2lkdGgiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYz92b2lkIDA6YS5nZXRBdHRyaWJ1dGUoYiwidHlwZSI9PT1iLnRvTG93ZXJDYXNlKCk/MToyKX0pLGMuYXR0cmlidXRlcyYmamEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1MPSI8aW5wdXQvPiIsYS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSwiIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoInZhbHVlIil9KXx8a2EoInZhbHVlIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGN8fCJpbnB1dCIhPT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk/dm9pZCAwOmEuZGVmYXVsdFZhbHVlfSksamEoZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWEuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpfSl8fGthKEssZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDphW2JdPT09ITA/Yi50b0xvd2VyQ2FzZSgpOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJmQuc3BlY2lmaWVkP2QudmFsdWU6bnVsbH0pLGdhfShhKTttLmZpbmQ9cyxtLmV4cHI9cy5zZWxlY3RvcnMsbS5leHByWyI6Il09bS5leHByLnBzZXVkb3MsbS51bmlxdWU9cy51bmlxdWVTb3J0LG0udGV4dD1zLmdldFRleHQsbS5pc1hNTERvYz1zLmlzWE1MLG0uY29udGFpbnM9cy5jb250YWluczt2YXIgdD1tLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHU9L148KFx3KylccypcLz8+KD86PFwvXDE+fCkkLyx2PS9eLlteOiNcW1wuLF0qJC87ZnVuY3Rpb24gdyhhLGIsYyl7aWYobS5pc0Z1bmN0aW9uKGIpKXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhLGQpe3JldHVybiEhYi5jYWxsKGEsZCxhKSE9PWN9KTtpZihiLm5vZGVUeXBlKXJldHVybiBtLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gYT09PWIhPT1jfSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKXtpZih2LnRlc3QoYikpcmV0dXJuIG0uZmlsdGVyKGIsYSxjKTtiPW0uZmlsdGVyKGIsYSl9cmV0dXJuIG0uZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBtLmluQXJyYXkoYSxiKT49MCE9PWN9KX1tLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYxPT09ZC5ub2RlVHlwZT9tLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGQsYSk/W2RdOltdOm0uZmluZC5tYXRjaGVzKGEsbS5ncmVwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfSkpfSxtLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPVtdLGQ9dGhpcyxlPWQubGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2sobShhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2U+YjtiKyspaWYobS5jb250YWlucyhkW2JdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihiPTA7ZT5iO2IrKyltLmZpbmQoYSxkW2JdLGMpO3JldHVybiBjPXRoaXMucHVzaFN0YWNrKGU+MT9tLnVuaXF1ZShjKTpjKSxjLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3RvcisiICIrYTphLGN9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodyh0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sodyh0aGlzLGF8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhdyh0aGlzLCJzdHJpbmciPT10eXBlb2YgYSYmdC50ZXN0KGEpP20oYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgeCx5PWEuZG9jdW1lbnQsej0vXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSopKSQvLEE9bS5mbi5pbml0PWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtpZighYSlyZXR1cm4gdGhpcztpZigic3RyaW5nIj09dHlwZW9mIGEpe2lmKGM9IjwiPT09YS5jaGFyQXQoMCkmJiI+Ij09PWEuY2hhckF0KGEubGVuZ3RoLTEpJiZhLmxlbmd0aD49Mz9bbnVsbCxhLG51bGxdOnouZXhlYyhhKSwhY3x8IWNbMV0mJmIpcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHx4KS5maW5kKGEpOnRoaXMuY29uc3RydWN0b3IoYikuZmluZChhKTtpZihjWzFdKXtpZihiPWIgaW5zdGFuY2VvZiBtP2JbMF06YixtLm1lcmdlKHRoaXMsbS5wYXJzZUhUTUwoY1sxXSxiJiZiLm5vZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8Yjp5LCEwKSksdS50ZXN0KGNbMV0pJiZtLmlzUGxhaW5PYmplY3QoYikpZm9yKGMgaW4gYiltLmlzRnVuY3Rpb24odGhpc1tjXSk/dGhpc1tjXShiW2NdKTp0aGlzLmF0dHIoYyxiW2NdKTtyZXR1cm4gdGhpc31pZihkPXkuZ2V0RWxlbWVudEJ5SWQoY1syXSksZCYmZC5wYXJlbnROb2RlKXtpZihkLmlkIT09Y1syXSlyZXR1cm4geC5maW5kKGEpO3RoaXMubGVuZ3RoPTEsdGhpc1swXT1kfXJldHVybiB0aGlzLmNvbnRleHQ9eSx0aGlzLnNlbGVjdG9yPWEsdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpcy5jb250ZXh0PXRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOm0uaXNGdW5jdGlvbihhKT8idW5kZWZpbmVkIiE9dHlwZW9mIHgucmVhZHk/eC5yZWFkeShhKTphKG0pOih2b2lkIDAhPT1hLnNlbGVjdG9yJiYodGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yLHRoaXMuY29udGV4dD1hLmNvbnRleHQpLG0ubWFrZUFycmF5KGEsdGhpcykpfTtBLnByb3RvdHlwZT1tLmZuLHg9bSh5KTt2YXIgQj0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxDPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O20uZXh0ZW5kKHtkaXI6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9YVtiXTt3aGlsZShlJiY5IT09ZS5ub2RlVHlwZSYmKHZvaWQgMD09PWN8fDEhPT1lLm5vZGVUeXBlfHwhbShlKS5pcyhjKSkpMT09PWUubm9kZVR5cGUmJmQucHVzaChlKSxlPWVbYl07cmV0dXJuIGR9LHNpYmxpbmc6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W107YTthPWEubmV4dFNpYmxpbmcpMT09PWEubm9kZVR5cGUmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9fSksbS5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYixjPW0oYSx0aGlzKSxkPWMubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7ZD5iO2IrKylpZihtLmNvbnRhaW5zKHRoaXMsY1tiXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTAsZT10aGlzLmxlbmd0aCxmPVtdLGc9dC50ZXN0KGEpfHwic3RyaW5nIiE9dHlwZW9mIGE/bShhLGJ8fHRoaXMuY29udGV4dCk6MDtlPmQ7ZCsrKWZvcihjPXRoaXNbZF07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoYy5ub2RlVHlwZTwxMSYmKGc/Zy5pbmRleChjKT4tMToxPT09Yy5ub2RlVHlwZSYmbS5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zi5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjayhmLmxlbmd0aD4xP20udW5pcXVlKGYpOmYpfSxpbmRleDpmdW5jdGlvbihhKXtyZXR1cm4gYT8ic3RyaW5nIj09dHlwZW9mIGE/bS5pbkFycmF5KHRoaXNbMF0sbShhKSk6bS5pbkFycmF5KGEuanF1ZXJ5P2FbMF06YSx0aGlzKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnB1c2hTdGFjayhtLnVuaXF1ZShtLm1lcmdlKHRoaXMuZ2V0KCksbShhLGIpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT1hP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtmdW5jdGlvbiBEKGEsYil7ZG8gYT1hW2JdO3doaWxlKGEmJjEhPT1hLm5vZGVUeXBlKTtyZXR1cm4gYX1tLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJjExIT09Yi5ub2RlVHlwZT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uZGlyKGEsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5kaXIoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEQoYSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gRChhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gbS5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gbS5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0uZGlyKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIG0uc2libGluZygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIG0uc2libGluZyhhLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLCJpZnJhbWUiKT9hLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50V2luZG93LmRvY3VtZW50Om0ubWVyZ2UoW10sYS5jaGlsZE5vZGVzKX19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihjLGQpe3ZhciBlPW0ubWFwKHRoaXMsYixjKTtyZXR1cm4iVW50aWwiIT09YS5zbGljZSgtNSkmJihkPWMpLGQmJiJzdHJpbmciPT10eXBlb2YgZCYmKGU9bS5maWx0ZXIoZCxlKSksdGhpcy5sZW5ndGg+MSYmKENbYV18fChlPW0udW5pcXVlKGUpKSxCLnRlc3QoYSkmJihlPWUucmV2ZXJzZSgpKSksdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIEU9L1xTKy9nLEY9e307ZnVuY3Rpb24gRyhhKXt2YXIgYj1GW2FdPXt9O3JldHVybiBtLmVhY2goYS5tYXRjaChFKXx8W10sZnVuY3Rpb24oYSxjKXtiW2NdPSEwfSksYn1tLkNhbGxiYWNrcz1mdW5jdGlvbihhKXthPSJzdHJpbmciPT10eXBlb2YgYT9GW2FdfHxHKGEpOm0uZXh0ZW5kKHt9LGEpO3ZhciBiLGMsZCxlLGYsZyxoPVtdLGk9IWEub25jZSYmW10saj1mdW5jdGlvbihsKXtmb3IoYz1hLm1lbW9yeSYmbCxkPSEwLGY9Z3x8MCxnPTAsZT1oLmxlbmd0aCxiPSEwO2gmJmU+ZjtmKyspaWYoaFtmXS5hcHBseShsWzBdLGxbMV0pPT09ITEmJmEuc3RvcE9uRmFsc2Upe2M9ITE7YnJlYWt9Yj0hMSxoJiYoaT9pLmxlbmd0aCYmaihpLnNoaWZ0KCkpOmM/aD1bXTprLmRpc2FibGUoKSl9LGs9e2FkZDpmdW5jdGlvbigpe2lmKGgpe3ZhciBkPWgubGVuZ3RoOyFmdW5jdGlvbiBmKGIpe20uZWFjaChiLGZ1bmN0aW9uKGIsYyl7dmFyIGQ9bS50eXBlKGMpOyJmdW5jdGlvbiI9PT1kP2EudW5pcXVlJiZrLmhhcyhjKXx8aC5wdXNoKGMpOmMmJmMubGVuZ3RoJiYic3RyaW5nIiE9PWQmJmYoYyl9KX0oYXJndW1lbnRzKSxiP2U9aC5sZW5ndGg6YyYmKGc9ZCxqKGMpKX1yZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGgmJm0uZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxjKXt2YXIgZDt3aGlsZSgoZD1tLmluQXJyYXkoYyxoLGQpKT4tMSloLnNwbGljZShkLDEpLGImJihlPj1kJiZlLS0sZj49ZCYmZi0tKX0pLHRoaXN9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gYT9tLmluQXJyYXkoYSxoKT4tMTohKCFofHwhaC5sZW5ndGgpfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBoPVtdLGU9MCx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGg9aT1jPXZvaWQgMCx0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFofSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGk9dm9pZCAwLGN8fGsuZGlzYWJsZSgpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiFpfSxmaXJlV2l0aDpmdW5jdGlvbihhLGMpe3JldHVybiFofHxkJiYhaXx8KGM9Y3x8W10sYz1bYSxjLnNsaWNlP2Muc2xpY2UoKTpjXSxiP2kucHVzaChjKTpqKGMpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGsuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFkfX07cmV0dXJuIGt9LG0uZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihhKXt2YXIgYj1bWyJyZXNvbHZlIiwiZG9uZSIsbS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixtLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVqZWN0ZWQiXSxbIm5vdGlmeSIsInByb2dyZXNzIixtLkNhbGxiYWNrcygibWVtb3J5IildXSxjPSJwZW5kaW5nIixkPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZS5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LHRoZW46ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHM7cmV0dXJuIG0uRGVmZXJyZWQoZnVuY3Rpb24oYyl7bS5lYWNoKGIsZnVuY3Rpb24oYixmKXt2YXIgZz1tLmlzRnVuY3Rpb24oYVtiXSkmJmFbYl07ZVtmWzFdXShmdW5jdGlvbigpe3ZhciBhPWcmJmcuYXBwbHkodGhpcyxhcmd1bWVudHMpO2EmJm0uaXNGdW5jdGlvbihhLnByb21pc2UpP2EucHJvbWlzZSgpLmRvbmUoYy5yZXNvbHZlKS5mYWlsKGMucmVqZWN0KS5wcm9ncmVzcyhjLm5vdGlmeSk6Y1tmWzBdKyJXaXRoIl0odGhpcz09PWQ/Yy5wcm9taXNlKCk6dGhpcyxnP1thXTphcmd1bWVudHMpfSl9KSxhPW51bGx9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/bS5leHRlbmQoYSxkKTpkfX0sZT17fTtyZXR1cm4gZC5waXBlPWQudGhlbixtLmVhY2goYixmdW5jdGlvbihhLGYpe3ZhciBnPWZbMl0saD1mWzNdO2RbZlsxXV09Zy5hZGQsaCYmZy5hZGQoZnVuY3Rpb24oKXtjPWh9LGJbMV5hXVsyXS5kaXNhYmxlLGJbMl1bMl0ubG9jayksZVtmWzBdXT1mdW5jdGlvbigpe3JldHVybiBlW2ZbMF0rIldpdGgiXSh0aGlzPT09ZT9kOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxlW2ZbMF0rIldpdGgiXT1nLmZpcmVXaXRofSksZC5wcm9taXNlKGUpLGEmJmEuY2FsbChlLGUpLGV9LHdoZW46ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPWQuY2FsbChhcmd1bWVudHMpLGU9Yy5sZW5ndGgsZj0xIT09ZXx8YSYmbS5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/ZTowLGc9MT09PWY/YTptLkRlZmVycmVkKCksaD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGUpe2JbYV09dGhpcyxjW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9kLmNhbGwoYXJndW1lbnRzKTplLGM9PT1pP2cubm90aWZ5V2l0aChiLGMpOi0tZnx8Zy5yZXNvbHZlV2l0aChiLGMpfX0saSxqLGs7aWYoZT4xKWZvcihpPW5ldyBBcnJheShlKSxqPW5ldyBBcnJheShlKSxrPW5ldyBBcnJheShlKTtlPmI7YisrKWNbYl0mJm0uaXNGdW5jdGlvbihjW2JdLnByb21pc2UpP2NbYl0ucHJvbWlzZSgpLmRvbmUoaChiLGssYykpLmZhaWwoZy5yZWplY3QpLnByb2dyZXNzKGgoYixqLGkpKTotLWY7cmV0dXJuIGZ8fGcucmVzb2x2ZVdpdGgoayxjKSxnLnByb21pc2UoKX19KTt2YXIgSDttLmZuLnJlYWR5PWZ1bmN0aW9uKGEpe3JldHVybiBtLnJlYWR5LnByb21pc2UoKS5kb25lKGEpLHRoaXN9LG0uZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLGhvbGRSZWFkeTpmdW5jdGlvbihhKXthP20ucmVhZHlXYWl0Kys6bS5yZWFkeSghMCl9LHJlYWR5OmZ1bmN0aW9uKGEpe2lmKGE9PT0hMD8hLS1tLnJlYWR5V2FpdDohbS5pc1JlYWR5KXtpZigheS5ib2R5KXJldHVybiBzZXRUaW1lb3V0KG0ucmVhZHkpO20uaXNSZWFkeT0hMCxhIT09ITAmJi0tbS5yZWFkeVdhaXQ+MHx8KEgucmVzb2x2ZVdpdGgoeSxbbV0pLG0uZm4udHJpZ2dlckhhbmRsZXImJihtKHkpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpLG0oeSkub2ZmKCJyZWFkeSIpKSl9fX0pO2Z1bmN0aW9uIEkoKXt5LmFkZEV2ZW50TGlzdGVuZXI/KHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSiwhMSksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixKLCExKSk6KHkuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSiksYS5kZXRhY2hFdmVudCgib25sb2FkIixKKSl9ZnVuY3Rpb24gSigpeyh5LmFkZEV2ZW50TGlzdGVuZXJ8fCJsb2FkIj09PWV2ZW50LnR5cGV8fCJjb21wbGV0ZSI9PT15LnJlYWR5U3RhdGUpJiYoSSgpLG0ucmVhZHkoKSl9bS5yZWFkeS5wcm9taXNlPWZ1bmN0aW9uKGIpe2lmKCFIKWlmKEg9bS5EZWZlcnJlZCgpLCJjb21wbGV0ZSI9PT15LnJlYWR5U3RhdGUpc2V0VGltZW91dChtLnJlYWR5KTtlbHNlIGlmKHkuYWRkRXZlbnRMaXN0ZW5lcil5LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEosITEpLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsSiwhMSk7ZWxzZXt5LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEopLGEuYXR0YWNoRXZlbnQoIm9ubG9hZCIsSik7dmFyIGM9ITE7dHJ5e2M9bnVsbD09YS5mcmFtZUVsZW1lbnQmJnkuZG9jdW1lbnRFbGVtZW50fWNhdGNoKGQpe31jJiZjLmRvU2Nyb2xsJiYhZnVuY3Rpb24gZSgpe2lmKCFtLmlzUmVhZHkpe3RyeXtjLmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7cmV0dXJuIHNldFRpbWVvdXQoZSw1MCl9SSgpLG0ucmVhZHkoKX19KCl9cmV0dXJuIEgucHJvbWlzZShiKX07dmFyIEs9InVuZGVmaW5lZCIsTDtmb3IoTCBpbiBtKGspKWJyZWFrO2sub3duTGFzdD0iMCIhPT1MLGsuaW5saW5lQmxvY2tOZWVkc0xheW91dD0hMSxtKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQ7Yz15LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChkKS5hcHBlbmRDaGlsZChiKSx0eXBlb2YgYi5zdHlsZS56b29tIT09SyYmKGIuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTppbmxpbmU7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsay5pbmxpbmVCbG9ja05lZWRzTGF5b3V0PWE9Mz09PWIub2Zmc2V0V2lkdGgsYSYmKGMuc3R5bGUuem9vbT0xKSksYy5yZW1vdmVDaGlsZChkKSl9KSxmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYobnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBhLnRlc3R9Y2F0Y2goYil7ay5kZWxldGVFeHBhbmRvPSExfX1hPW51bGx9KCksbS5hY2NlcHREYXRhPWZ1bmN0aW9uKGEpe3ZhciBiPW0ubm9EYXRhWyhhLm5vZGVOYW1lKyIgIikudG9Mb3dlckNhc2UoKV0sYz0rYS5ub2RlVHlwZXx8MTtyZXR1cm4gMSE9PWMmJjkhPT1jPyExOiFifHxiIT09ITAmJmEuZ2V0QXR0cmlidXRlKCJjbGFzc2lkIik9PT1ifTt2YXIgTT0vXig/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLE49LyhbQS1aXSkvZztmdW5jdGlvbiBPKGEsYixjKXtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSl7dmFyIGQ9ImRhdGEtIitiLnJlcGxhY2UoTiwiLSQxIikudG9Mb3dlckNhc2UoKTtpZihjPWEuZ2V0QXR0cmlidXRlKGQpLCJzdHJpbmciPT10eXBlb2YgYyl7dHJ5e2M9InRydWUiPT09Yz8hMDoiZmFsc2UiPT09Yz8hMToibnVsbCI9PT1jP251bGw6K2MrIiI9PT1jPytjOk0udGVzdChjKT9tLnBhcnNlSlNPTihjKTpjfWNhdGNoKGUpe31tLmRhdGEoYSxiLGMpfWVsc2UgYz12b2lkIDB9cmV0dXJuIGN9ZnVuY3Rpb24gUChhKXt2YXIgYjtmb3IoYiBpbiBhKWlmKCgiZGF0YSIhPT1ifHwhbS5pc0VtcHR5T2JqZWN0KGFbYl0pKSYmInRvSlNPTiIhPT1iKXJldHVybiExOwoKcmV0dXJuITB9ZnVuY3Rpb24gUShhLGIsZCxlKXtpZihtLmFjY2VwdERhdGEoYSkpe3ZhciBmLGcsaD1tLmV4cGFuZG8saT1hLm5vZGVUeXBlLGo9aT9tLmNhY2hlOmEsaz1pP2FbaF06YVtoXSYmaDtpZihrJiZqW2tdJiYoZXx8altrXS5kYXRhKXx8dm9pZCAwIT09ZHx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBrfHwoaz1pP2FbaF09Yy5wb3AoKXx8bS5ndWlkKys6aCksaltrXXx8KGpba109aT97fTp7dG9KU09OOm0ubm9vcH0pLCgib2JqZWN0Ij09dHlwZW9mIGJ8fCJmdW5jdGlvbiI9PXR5cGVvZiBiKSYmKGU/altrXT1tLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1tLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbS5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbS5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFIoYSxiLGMpe2lmKG0uYWNjZXB0RGF0YShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP20uY2FjaGU6YSxoPWY/YVttLmV4cGFuZG9dOm0uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bS5pc0FycmF5KGIpP2I9Yi5jb25jYXQobS5tYXAoYixtLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1tLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFQKGQpOiFtLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxQKGdbaF0pKSkmJihmP20uY2xlYW5EYXRhKFthXSwhMCk6ay5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPW51bGwpfX19bS5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP20uY2FjaGVbYVttLmV4cGFuZG9dXTphW20uZXhwYW5kb10sISFhJiYhUChhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFIoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBRKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUihhLGIsITApfX0pLG0uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bS5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbS5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW0uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLE8oZixkLGVbZF0pKSk7bS5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXttLmRhdGEodGhpcyxhLGIpfSk6Zj9PKGYsYSxtLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXttLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG0uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1tLl9kYXRhKGEsYiksYyYmKCFkfHxtLmlzQXJyYXkoYyk/ZD1tLl9kYXRhKGEsYixtLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW0ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bS5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXttLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbS5fZGF0YShhLGMpfHxtLl9kYXRhKGEsYyx7ZW1wdHk6bS5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bS5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbS5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxtLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bS5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1tLnF1ZXVlKHRoaXMsYSxiKTttLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm0uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1tLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW0uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFyIFM9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVD1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW0uY3NzKGEsImRpc3BsYXkiKXx8IW0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxWPW0uYWNjZXNzPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1tLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyltLmFjY2VzcyhhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxtLmlzRnVuY3Rpb24oZCl8fChnPSEwKSxqJiYoZz8oYi5jYWxsKGEsZCksYj1udWxsKTooaj1iLGI9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBqLmNhbGwobShhKSxjKX0pKSxiKSlmb3IoO2k+aDtoKyspYihhW2hdLGMsZz9kOmQuY2FsbChhW2hdLGgsYihhW2hdLGMpKSk7cmV0dXJuIGU/YTpqP2IuY2FsbChhKTppP2IoYVswXSxjKTpmfSxXPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pOyFmdW5jdGlvbigpe3ZhciBhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYz15LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixrLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1iLmZpcnN0Q2hpbGQubm9kZVR5cGUsay50Ym9keT0hYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsay5odG1sU2VyaWFsaXplPSEhYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxrLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09eS5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxhLnR5cGU9ImNoZWNrYm94IixhLmNoZWNrZWQ9ITAsYy5hcHBlbmRDaGlsZChhKSxrLmFwcGVuZENoZWNrZWQ9YS5jaGVja2VkLGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixrLm5vQ2xvbmVDaGVja2VkPSEhYi5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYy5hcHBlbmRDaGlsZChiKSxiLmlubmVySFRNTD0iPGlucHV0IHR5cGU9J3JhZGlvJyBjaGVja2VkPSdjaGVja2VkJyBuYW1lPSd0Jy8+IixrLmNoZWNrQ2xvbmU9Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsay5ub0Nsb25lRXZlbnQ9ITAsYi5hdHRhY2hFdmVudCYmKGIuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uKCl7ay5ub0Nsb25lRXZlbnQ9ITF9KSxiLmNsb25lTm9kZSghMCkuY2xpY2soKSksbnVsbD09ay5kZWxldGVFeHBhbmRvKXtrLmRlbGV0ZUV4cGFuZG89ITA7dHJ5e2RlbGV0ZSBiLnRlc3R9Y2F0Y2goZCl7ay5kZWxldGVFeHBhbmRvPSExfX19KCksZnVuY3Rpb24oKXt2YXIgYixjLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChrW2IrIkJ1YmJsZXMiXT1jIGluIGEpfHwoZC5zZXRBdHRyaWJ1dGUoYywidCIpLGtbYisiQnViYmxlcyJdPWQuYXR0cmlidXRlc1tjXS5leHBhbmRvPT09ITEpO2Q9bnVsbH0oKTt2YXIgWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksWT0vXmtleS8sWj0vXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLywkPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxfPS9eKFteLl0qKSg/OlwuKC4rKXwpJC87ZnVuY3Rpb24gYWEoKXtyZXR1cm4hMH1mdW5jdGlvbiBiYSgpe3JldHVybiExfWZ1bmN0aW9uIGNhKCl7dHJ5e3JldHVybiB5LmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1tLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbixvLHAscSxyPW0uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW0uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgbT09PUt8fGEmJm0uZXZlbnQudHJpZ2dlcmVkPT09YS50eXBlP3ZvaWQgMDptLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGsuZWxlbSxhcmd1bWVudHMpfSxrLmVsZW09YSksYj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGg9Yi5sZW5ndGg7d2hpbGUoaC0tKWY9Xy5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bS5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW0uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm0uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChuPWdbb10pfHwobj1nW29dPVtdLG4uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP24uc3BsaWNlKG4uZGVsZWdhdGVDb3VudCsrLDAsbCk6bi5wdXNoKGwpLG0uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLG8scCxxLHI9bS5oYXNEYXRhKGEpJiZtLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEUpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9Xy5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1tLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbj1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW4ubGVuZ3RoO3doaWxlKGYtLSlnPW5bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChuLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm4uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFuLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG0ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW0uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bS5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG0uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZCxlKXt2YXIgZixnLGgsaSxrLGwsbixvPVtkfHx5XSxwPWouY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscT1qLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihoPWw9ZD1kfHx5LDMhPT1kLm5vZGVUeXBlJiY4IT09ZC5ub2RlVHlwZSYmISQudGVzdChwK20uZXZlbnQudHJpZ2dlcmVkKSYmKHAuaW5kZXhPZigiLiIpPj0wJiYocT1wLnNwbGl0KCIuIikscD1xLnNoaWZ0KCkscS5zb3J0KCkpLGc9cC5pbmRleE9mKCI6Iik8MCYmIm9uIitwLGI9YlttLmV4cGFuZG9dP2I6bmV3IG0uRXZlbnQocCwib2JqZWN0Ij09dHlwZW9mIGImJmIpLGIuaXNUcmlnZ2VyPWU/MjozLGIubmFtZXNwYWNlPXEuam9pbigiLiIpLGIubmFtZXNwYWNlX3JlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Euam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxjPW51bGw9PWM/W2JdOm0ubWFrZUFycmF5KGMsW2JdKSxrPW0uZXZlbnQuc3BlY2lhbFtwXXx8e30sZXx8IWsudHJpZ2dlcnx8ay50cmlnZ2VyLmFwcGx5KGQsYykhPT0hMSkpe2lmKCFlJiYhay5ub0J1YmJsZSYmIW0uaXNXaW5kb3coZCkpe2ZvcihpPWsuZGVsZWdhdGVUeXBlfHxwLCQudGVzdChpK3ApfHwoaD1oLnBhcmVudE5vZGUpO2g7aD1oLnBhcmVudE5vZGUpby5wdXNoKGgpLGw9aDtsPT09KGQub3duZXJEb2N1bWVudHx8eSkmJm8ucHVzaChsLmRlZmF1bHRWaWV3fHxsLnBhcmVudFdpbmRvd3x8YSl9bj0wO3doaWxlKChoPW9bbisrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW4+MT9pOmsuYmluZFR5cGV8fHAsZj0obS5fZGF0YShoLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm0uX2RhdGEoaCwiaGFuZGxlIiksZiYmZi5hcHBseShoLGMpLGY9ZyYmaFtnXSxmJiZmLmFwcGx5JiZtLmFjY2VwdERhdGEoaCkmJihiLnJlc3VsdD1mLmFwcGx5KGgsYyksYi5yZXN1bHQ9PT0hMSYmYi5wcmV2ZW50RGVmYXVsdCgpKTtpZihiLnR5cGU9cCwhZSYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJighay5fZGVmYXVsdHx8ay5fZGVmYXVsdC5hcHBseShvLnBvcCgpLGMpPT09ITEpJiZtLmFjY2VwdERhdGEoZCkmJmcmJmRbcF0mJiFtLmlzV2luZG93KGQpKXtsPWRbZ10sbCYmKGRbZ109bnVsbCksbS5ldmVudC50cmlnZ2VyZWQ9cDt0cnl7ZFtwXSgpfWNhdGNoKHIpe31tLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbCYmKGRbZ109bCl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1tLmV2ZW50LmZpeChhKTt2YXIgYixjLGUsZixnLGg9W10saT1kLmNhbGwoYXJndW1lbnRzKSxqPShtLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1tLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1tLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGc9MDt3aGlsZSgoZT1mLmhhbmRsZXJzW2crK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKSghYS5uYW1lc3BhY2VfcmV8fGEubmFtZXNwYWNlX3JlLnRlc3QoZS5uYW1lc3BhY2UpKSYmKGEuaGFuZGxlT2JqPWUsYS5kYXRhPWUuZGF0YSxjPSgobS5ldmVudC5zcGVjaWFsW2Uub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxlLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1jJiYoYS5yZXN1bHQ9Yyk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoIWEuYnV0dG9ufHwiY2xpY2siIT09YS50eXBlKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZT1bXSxmPTA7aD5mO2YrKylkPWJbZl0sYz1kLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1lW2NdJiYoZVtjXT1kLm5lZWRzQ29udGV4dD9tKGMsdGhpcykuaW5kZXgoaSk+PTA6bS5maW5kKGMsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxlW2NdJiZlLnB1c2goZCk7ZS5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmV9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW20uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxkLGU9YS50eXBlLGY9YSxnPXRoaXMuZml4SG9va3NbZV07Z3x8KHRoaXMuZml4SG9va3NbZV09Zz1aLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOlkudGVzdChlKT90aGlzLmtleUhvb2tzOnt9KSxkPWcucHJvcHM/dGhpcy5wcm9wcy5jb25jYXQoZy5wcm9wcyk6dGhpcy5wcm9wcyxhPW5ldyBtLkV2ZW50KGYpLGI9ZC5sZW5ndGg7d2hpbGUoYi0tKWM9ZFtiXSxhW2NdPWZbY107cmV0dXJuIGEudGFyZ2V0fHwoYS50YXJnZXQ9Zi5zcmNFbGVtZW50fHx5KSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1hLnRhcmdldC5wYXJlbnROb2RlKSxhLm1ldGFLZXk9ISFhLm1ldGFLZXksZy5maWx0ZXI/Zy5maWx0ZXIoYSxmKTphfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9Yi5idXR0b24sZz1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihkPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fHksZT1kLmRvY3VtZW50RWxlbWVudCxjPWQuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZSYmZS5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShlJiZlLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGUmJmUuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGUmJmUuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmcmJihhLnJlbGF0ZWRUYXJnZXQ9Zz09PWEudGFyZ2V0P2IudG9FbGVtZW50OmcpLGEud2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09Y2EoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1jYSgpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbS5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5leHRlbmQobmV3IG0uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwLG9yaWdpbmFsRXZlbnQ6e319KTtkP20uZXZlbnQudHJpZ2dlcihlLG51bGwsYik6bS5ldmVudC5kaXNwYXRjaC5jYWxsKGIsZSksZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbS5yZW1vdmVFdmVudD15LnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYywhMSl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKHR5cGVvZiBhW2RdPT09SyYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbS5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgbS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/YWE6YmEpOnRoaXMudHlwZT1hLGImJm0uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG0ubm93KCksdm9pZCh0aGlzW20uZXhwYW5kb109ITApKTpuZXcgbS5FdmVudChhLGIpfSxtLkV2ZW50LnByb3RvdHlwZT17aXNEZWZhdWx0UHJldmVudGVkOmJhLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJhLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJhLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFhLGEmJihhLnByZXZlbnREZWZhdWx0P2EucHJldmVudERlZmF1bHQoKTphLnJldHVyblZhbHVlPSExKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWEsYSYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWEsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG0uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXttLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybighZXx8ZSE9PWQmJiFtLmNvbnRhaW5zKGQsZSkpJiYoYS50eXBlPWYub3JpZ1R5cGUsYz1mLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGEudHlwZT1iKSxjfX19KSxrLnN1Ym1pdEJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBtLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG0uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1tLm5vZGVOYW1lKGIsImlucHV0Iil8fG0ubm9kZU5hbWUoYiwiYnV0dG9uIik/Yi5mb3JtOnZvaWQgMDtjJiYhbS5fZGF0YShjLCJzdWJtaXRCdWJibGVzIikmJihtLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLG0uX2RhdGEoYywic3VibWl0QnViYmxlcyIsITApKX0pfSxwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRfYnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZtLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhLCEwKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG0ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbS5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxrLmNoYW5nZUJ1YmJsZXN8fChtLmV2ZW50LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBYLnRlc3QodGhpcy5ub2RlTmFtZSk/KCgiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlKSYmKG0uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITApfSksbS5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdF9jaGFuZ2VkJiYhYS5pc1RyaWdnZXImJih0aGlzLl9qdXN0X2NoYW5nZWQ9ITEpLG0uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKX0pKSwhMSk6dm9pZCBtLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtYLnRlc3QoYi5ub2RlTmFtZSkmJiFtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiKSYmKG0uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bS5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSwhMCl9KSxtLl9kYXRhKGIsImNoYW5nZUJ1YmJsZXMiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBtLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFYLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksay5mb2N1c2luQnViYmxlc3x8bS5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe20uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxtLmV2ZW50LmZpeChhKSwhMCl9O20uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1tLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbS5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW0uX2RhdGEoZCxiKS0xO2U/bS5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG0uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG0uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGc7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWN8fGIsYj12b2lkIDApO2ZvcihmIGluIGEpdGhpcy5vbihmLGIsYyxhW2ZdLGUpO3JldHVybiB0aGlzfWlmKG51bGw9PWMmJm51bGw9PWQ/KGQ9YixjPWI9dm9pZCAwKTpudWxsPT1kJiYoInN0cmluZyI9PXR5cGVvZiBiPyhkPWMsYz12b2lkIDApOihkPWMsYz1iLGI9dm9pZCAwKSksZD09PSExKWQ9YmE7ZWxzZSBpZighZClyZXR1cm4gdGhpcztyZXR1cm4gMT09PWUmJihnPWQsZD1mdW5jdGlvbihhKXtyZXR1cm4gbSgpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZC5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1tLmd1aWQrKykpLHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQuYWRkKHRoaXMsYSxkLGMsYil9KX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixtKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGI9PT0hMXx8ImZ1bmN0aW9uIj09dHlwZW9mIGIpJiYoYz1iLGI9dm9pZCAwKSxjPT09ITEmJihjPWJhKSx0aGlzLmVhY2goZnVuY3Rpb24oKXttLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe20uZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzWzBdO3JldHVybiBjP20uZXZlbnQudHJpZ2dlcihhLGIsYywhMCk6dm9pZCAwfX0pO2Z1bmN0aW9uIGRhKGEpe3ZhciBiPWVhLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfXZhciBlYT0iYWJicnxhcnRpY2xlfGFzaWRlfGF1ZGlvfGJkaXxjYW52YXN8ZGF0YXxkYXRhbGlzdHxkZXRhaWxzfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1hcmt8bWV0ZXJ8bmF2fG91dHB1dHxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGltZXx2aWRlbyIsZmE9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyxnYT1uZXcgUmVnRXhwKCI8KD86IitlYSsiKVtcXHMvPl0iLCJpIiksaGE9L15ccysvLGlhPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vZ2ksamE9LzwoW1x3Ol0rKS8sa2E9Lzx0Ym9keS9pLGxhPS88fCYjP1x3KzsvLG1hPS88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksbmE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksb2E9L14kfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHBhPS9edHJ1ZVwvKC4qKS8scWE9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLHJhPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDprLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX0sc2E9ZGEoeSksdGE9c2EuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSk7cmEub3B0Z3JvdXA9cmEub3B0aW9uLHJhLnRib2R5PXJhLnRmb290PXJhLmNvbGdyb3VwPXJhLmNhcHRpb249cmEudGhlYWQscmEudGg9cmEudGQ7ZnVuY3Rpb24gdWEoYSxiKXt2YXIgYyxkLGU9MCxmPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lIT09Sz9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbCE9PUs/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bS5ub2RlTmFtZShkLGIpP2YucHVzaChkKTptLm1lcmdlKGYsdWEoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm0ubm9kZU5hbWUoYSxiKT9tLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIHZhKGEpe1cudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIHdhKGEsYil7cmV0dXJuIG0ubm9kZU5hbWUoYSwidGFibGUiKSYmbS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiB4YShhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bS5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24geWEoYSl7dmFyIGI9cGEuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiB6YShhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW0uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG0uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX1mdW5jdGlvbiBBYShhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZtLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW0uX2RhdGEoYSksZz1tLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyltLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW0uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBCYShhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWsubm9DbG9uZUV2ZW50JiZiW20uZXhwYW5kb10pe2U9bS5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyltLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobS5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oeGEoYikudGV4dD1hLnRleHQseWEoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGsuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFtLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmVy50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOigiaW5wdXQiPT09Y3x8InRleHRhcmVhIj09PWMpJiYoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1tLmV4dGVuZCh7Y2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1tLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihrLmh0bWw1Q2xvbmV8fG0uaXNYTUxEb2MoYSl8fCFnYS50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KHRhLmlubmVySFRNTD1hLm91dGVySFRNTCx0YS5yZW1vdmVDaGlsZChmPXRhLmZpcnN0Q2hpbGQpKSwhKGsubm9DbG9uZUV2ZW50JiZrLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxtLmlzWE1MRG9jKGEpKSlmb3IoZD11YShmKSxoPXVhKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmQmEoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8dWEoYSksZD1kfHx1YShmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUFhKGUsZFtnXSk7ZWxzZSBBYShhLGYpO3JldHVybiBkPXVhKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJnphKGQsIWkmJnVhKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGJ1aWxkRnJhZ21lbnQ6ZnVuY3Rpb24oYSxiLGMsZCl7Zm9yKHZhciBlLGYsZyxoLGksaixsLG49YS5sZW5ndGgsbz1kYShiKSxwPVtdLHE9MDtuPnE7cSsrKWlmKGY9YVtxXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PW0udHlwZShmKSltLm1lcmdlKHAsZi5ub2RlVHlwZT9bZl06Zik7ZWxzZSBpZihsYS50ZXN0KGYpKXtoPWh8fG8uYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaT0oamEuZXhlYyhmKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSxsPXJhW2ldfHxyYS5fZGVmYXVsdCxoLmlubmVySFRNTD1sWzFdK2YucmVwbGFjZShpYSwiPCQxPjwvJDI+IikrbFsyXSxlPWxbMF07d2hpbGUoZS0tKWg9aC5sYXN0Q2hpbGQ7aWYoIWsubGVhZGluZ1doaXRlc3BhY2UmJmhhLnRlc3QoZikmJnAucHVzaChiLmNyZWF0ZVRleHROb2RlKGhhLmV4ZWMoZilbMF0pKSwhay50Ym9keSl7Zj0idGFibGUiIT09aXx8a2EudGVzdChmKT8iPHRhYmxlPiIhPT1sWzFdfHxrYS50ZXN0KGYpPzA6aDpoLmZpcnN0Q2hpbGQsZT1mJiZmLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGUtLSltLm5vZGVOYW1lKGo9Zi5jaGlsZE5vZGVzW2VdLCJ0Ym9keSIpJiYhai5jaGlsZE5vZGVzLmxlbmd0aCYmZi5yZW1vdmVDaGlsZChqKX1tLm1lcmdlKHAsaC5jaGlsZE5vZGVzKSxoLnRleHRDb250ZW50PSIiO3doaWxlKGguZmlyc3RDaGlsZCloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7aD1vLmxhc3RDaGlsZH1lbHNlIHAucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtoJiZvLnJlbW92ZUNoaWxkKGgpLGsuYXBwZW5kQ2hlY2tlZHx8bS5ncmVwKHVhKHAsImlucHV0IiksdmEpLHE9MDt3aGlsZShmPXBbcSsrXSlpZigoIWR8fC0xPT09bS5pbkFycmF5KGYsZCkpJiYoZz1tLmNvbnRhaW5zKGYub3duZXJEb2N1bWVudCxmKSxoPXVhKG8uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGcmJnphKGgpLGMpKXtlPTA7d2hpbGUoZj1oW2UrK10pb2EudGVzdChmLnR5cGV8fCIiKSYmYy5wdXNoKGYpfXJldHVybiBoPW51bGwsb30sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW0uZXhwYW5kbyxqPW0uY2FjaGUsbD1rLmRlbGV0ZUV4cGFuZG8sbj1tLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxtLmFjY2VwdERhdGEoZCkpJiYoZj1kW2ldLGc9ZiYmaltmXSkpe2lmKGcuZXZlbnRzKWZvcihlIGluIGcuZXZlbnRzKW5bZV0/bS5ldmVudC5yZW1vdmUoZCxlKTptLnJlbW92ZUV2ZW50KGQsZSxnLmhhbmRsZSk7altmXSYmKGRlbGV0ZSBqW2ZdLGw/ZGVsZXRlIGRbaV06dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlIT09Sz9kLnJlbW92ZUF0dHJpYnV0ZShpKTpkW2ldPW51bGwsYy5wdXNoKGYpKX19fSksbS5mbi5leHRlbmQoe3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9tLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHx5KS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj13YSh0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPXdhKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjLGQ9YT9tLmZpbHRlcihhLHRoaXMpOnRoaXMsZT0wO251bGwhPShjPWRbZV0pO2UrKylifHwxIT09Yy5ub2RlVHlwZXx8bS5jbGVhbkRhdGEodWEoYykpLGMucGFyZW50Tm9kZSYmKGImJm0uY29udGFpbnMoYy5vd25lckRvY3VtZW50LGMpJiZ6YSh1YShjLCJzY3JpcHQiKSksYy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMpKTtyZXR1cm4gdGhpc30sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm0uY2xlYW5EYXRhKHVhKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbS5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbS5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UoZmEsIiIpOnZvaWQgMDtpZighKCJzdHJpbmciIT10eXBlb2YgYXx8bWEudGVzdChhKXx8IWsuaHRtbFNlcmlhbGl6ZSYmZ2EudGVzdChhKXx8IWsubGVhZGluZ1doaXRlc3BhY2UmJmhhLnRlc3QoYSl8fHJhWyhqYS5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSkpe2E9YS5yZXBsYWNlKGlhLCI8JDE+PC8kMj4iKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihtLmNsZWFuRGF0YSh1YShiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50c1swXTtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZnVuY3Rpb24oYil7YT10aGlzLnBhcmVudE5vZGUsbS5jbGVhbkRhdGEodWEodGhpcykpLGEmJmEucmVwbGFjZUNoaWxkKGIsdGhpcyl9KSxhJiYoYS5sZW5ndGh8fGEubm9kZVR5cGUpP3RoaXM6dGhpcy5yZW1vdmUoKX0sZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLCEwKX0sZG9tTWFuaXA6ZnVuY3Rpb24oYSxiKXthPWUuYXBwbHkoW10sYSk7dmFyIGMsZCxmLGcsaCxpLGo9MCxsPXRoaXMubGVuZ3RoLG49dGhpcyxvPWwtMSxwPWFbMF0scT1tLmlzRnVuY3Rpb24ocCk7aWYocXx8bD4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFrLmNoZWNrQ2xvbmUmJm5hLnRlc3QocCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZD1uLmVxKGMpO3EmJihhWzBdPXAuY2FsbCh0aGlzLGMsZC5odG1sKCkpKSxkLmRvbU1hbmlwKGEsYil9KTtpZihsJiYoaT1tLmJ1aWxkRnJhZ21lbnQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQsITEsdGhpcyksYz1pLmZpcnN0Q2hpbGQsMT09PWkuY2hpbGROb2Rlcy5sZW5ndGgmJihpPWMpLGMpKXtmb3IoZz1tLm1hcCh1YShpLCJzY3JpcHQiKSx4YSksZj1nLmxlbmd0aDtsPmo7aisrKWQ9aSxqIT09byYmKGQ9bS5jbG9uZShkLCEwLCEwKSxmJiZtLm1lcmdlKGcsdWEoZCwic2NyaXB0IikpKSxiLmNhbGwodGhpc1tqXSxkLGopO2lmKGYpZm9yKGg9Z1tnLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG0ubWFwKGcseWEpLGo9MDtmPmo7aisrKWQ9Z1tqXSxvYS50ZXN0KGQudHlwZXx8IiIpJiYhbS5fZGF0YShkLCJnbG9iYWxFdmFsIikmJm0uY29udGFpbnMoaCxkKSYmKGQuc3JjP20uX2V2YWxVcmwmJm0uX2V2YWxVcmwoZC5zcmMpOm0uZ2xvYmFsRXZhbCgoZC50ZXh0fHxkLnRleHRDb250ZW50fHxkLmlubmVySFRNTHx8IiIpLnJlcGxhY2UocWEsIiIpKSk7aT1jPW51bGx9cmV0dXJuIHRoaXN9fSksbS5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXttLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxnPW0oYSksaD1nLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxtKGdbZF0pW2JdKGMpLGYuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIENhLERhPXt9O2Z1bmN0aW9uIEVhKGIsYyl7dmFyIGQsZT1tKGMuY3JlYXRlRWxlbWVudChiKSkuYXBwZW5kVG8oYy5ib2R5KSxmPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUmJihkPWEuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUoZVswXSkpP2QuZGlzcGxheTptLmNzcyhlWzBdLCJkaXNwbGF5Iik7cmV0dXJuIGUuZGV0YWNoKCksZn1mdW5jdGlvbiBGYShhKXt2YXIgYj15LGM9RGFbYV07cmV0dXJuIGN8fChjPUVhKGEsYiksIm5vbmUiIT09YyYmY3x8KENhPShDYXx8bSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj0oQ2FbMF0uY29udGVudFdpbmRvd3x8Q2FbMF0uY29udGVudERvY3VtZW50KS5kb2N1bWVudCxiLndyaXRlKCksYi5jbG9zZSgpLGM9RWEoYSxiKSxDYS5kZXRhY2goKSksRGFbYV09YyksY30hZnVuY3Rpb24oKXt2YXIgYTtrLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxkO3JldHVybiBjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksZD15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZCkuYXBwZW5kQ2hpbGQoYiksdHlwZW9mIGIuc3R5bGUuem9vbSE9PUsmJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChkKSxhKTp2b2lkIDB9fSgpO3ZhciBHYT0vXm1hcmdpbi8sSGE9bmV3IFJlZ0V4cCgiXigiK1MrIikoPyFweClbYS16JV0rJCIsImkiKSxJYSxKYSxLYT0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhJYT1mdW5jdGlvbihiKXtyZXR1cm4gYi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3Lm9wZW5lcj9iLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmEuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpfSxKYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fElhKGEpLGc9Yz9jLmdldFByb3BlcnR5VmFsdWUoYil8fGNbYl06dm9pZCAwLGMmJigiIiE9PWd8fG0uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHwoZz1tLnN0eWxlKGEsYikpLEhhLnRlc3QoZykmJkdhLnRlc3QoYikmJihkPWgud2lkdGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lkdGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgubWF4V2lkdGg9ZikpLHZvaWQgMD09PWc/ZzpnKyIifSk6eS5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlJiYoSWE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3VycmVudFN0eWxlfSxKYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLnN0eWxlO3JldHVybiBjPWN8fElhKGEpLGc9Yz9jW2JdOnZvaWQgMCxudWxsPT1nJiZoJiZoW2JdJiYoZz1oW2JdKSxIYS50ZXN0KGcpJiYhS2EudGVzdChiKSYmKGQ9aC5sZWZ0LGU9YS5ydW50aW1lU3R5bGUsZj1lJiZlLmxlZnQsZiYmKGUubGVmdD1hLmN1cnJlbnRTdHlsZS5sZWZ0KSxoLmxlZnQ9ImZvbnRTaXplIj09PWI/IjFlbSI6ZyxnPWgucGl4ZWxMZWZ0KyJweCIsaC5sZWZ0PWQsZiYmKGUubGVmdD1mKSksdm9pZCAwPT09Zz9nOmcrIiJ8fCJhdXRvIn0pO2Z1bmN0aW9uIExhKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe3ZhciBjPWEoKTtpZihudWxsIT1jKXJldHVybiBjP3ZvaWQgZGVsZXRlIHRoaXMuZ2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0hZnVuY3Rpb24oKXt2YXIgYixjLGQsZSxmLGcsaDtpZihiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5pbm5lckhUTUw9IiAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9Jy9hJz5hPC9hPjxpbnB1dCB0eXBlPSdjaGVja2JveCcvPiIsZD1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIilbMF0sYz1kJiZkLnN0eWxlKXtjLmNzc1RleHQ9ImZsb2F0OmxlZnQ7b3BhY2l0eTouNSIsay5vcGFjaXR5PSIwLjUiPT09Yy5vcGFjaXR5LGsuY3NzRmxvYXQ9ISFjLmNzc0Zsb2F0LGIuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixiLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsay5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWIuc3R5bGUuYmFja2dyb3VuZENsaXAsay5ib3hTaXppbmc9IiI9PT1jLmJveFNpemluZ3x8IiI9PT1jLk1vekJveFNpemluZ3x8IiI9PT1jLldlYmtpdEJveFNpemluZyxtLmV4dGVuZChrLHtyZWxpYWJsZUhpZGRlbk9mZnNldHM6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09ZyYmaSgpLGd9LGJveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWYmJmkoKSxmfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWUmJmkoKSxlfSxyZWxpYWJsZU1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWgmJmkoKSxofX0pO2Z1bmN0aW9uIGkoKXt2YXIgYixjLGQsaTtjPXkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlJiYoYj15LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQ9eS5jcmVhdGVFbGVtZW50KCJkaXYiKSxkLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2JvcmRlcjowO3dpZHRoOjA7aGVpZ2h0OjA7dG9wOjA7bGVmdDotOTk5OXB4IixjLmFwcGVuZENoaWxkKGQpLmFwcGVuZENoaWxkKGIpLGIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxJTt0b3A6MSU7Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt3aWR0aDo0cHg7cG9zaXRpb246YWJzb2x1dGUiLGU9Zj0hMSxoPSEwLGEuZ2V0Q29tcHV0ZWRTdHlsZSYmKGU9IjElIiE9PShhLmdldENvbXB1dGVkU3R5bGUoYixudWxsKXx8e30pLnRvcCxmPSI0cHgiPT09KGEuZ2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxpPWIuYXBwZW5kQ2hpbGQoeS5jcmVhdGVFbGVtZW50KCJkaXYiKSksaS5zdHlsZS5jc3NUZXh0PWIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowIixpLnN0eWxlLm1hcmdpblJpZ2h0PWkuc3R5bGUud2lkdGg9IjAiLGIuc3R5bGUud2lkdGg9IjFweCIsaD0hcGFyc2VGbG9hdCgoYS5nZXRDb21wdXRlZFN0eWxlKGksbnVsbCl8fHt9KS5tYXJnaW5SaWdodCksYi5yZW1vdmVDaGlsZChpKSksYi5pbm5lckhUTUw9Ijx0YWJsZT48dHI+PHRkPjwvdGQ+PHRkPnQ8L3RkPjwvdHI+PC90YWJsZT4iLGk9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGQiKSxpWzBdLnN0eWxlLmNzc1RleHQ9Im1hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MDtkaXNwbGF5Om5vbmUiLGc9MD09PWlbMF0ub2Zmc2V0SGVpZ2h0LGcmJihpWzBdLnN0eWxlLmRpc3BsYXk9IiIsaVsxXS5zdHlsZS5kaXNwbGF5PSJub25lIixnPTA9PT1pWzBdLm9mZnNldEhlaWdodCksYy5yZW1vdmVDaGlsZChkKSl9fX0oKSxtLnN3YXA9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnPXt9O2ZvcihmIGluIGIpZ1tmXT1hLnN0eWxlW2ZdLGEuc3R5bGVbZl09YltmXTtlPWMuYXBwbHkoYSxkfHxbXSk7Zm9yKGYgaW4gYilhLnN0eWxlW2ZdPWdbZl07cmV0dXJuIGV9O3ZhciBNYT0vYWxwaGFcKFteKV0qXCkvaSxOYT0vb3BhY2l0eVxzKj1ccyooW14pXSopLyxPYT0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sUGE9bmV3IFJlZ0V4cCgiXigiK1MrIikoLiopJCIsImkiKSxRYT1uZXcgUmVnRXhwKCJeKFsrLV0pPSgiK1MrIikiLCJpIiksUmE9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LFNhPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifSxUYT1bIldlYmtpdCIsIk8iLCJNb3oiLCJtcyJdO2Z1bmN0aW9uIFVhKGEsYil7aWYoYiBpbiBhKXJldHVybiBiO3ZhciBjPWIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKSxkPWIsZT1UYS5sZW5ndGg7d2hpbGUoZS0tKWlmKGI9VGFbZV0rYyxiIGluIGEpcmV0dXJuIGI7cmV0dXJuIGR9ZnVuY3Rpb24gVmEoYSxiKXtmb3IodmFyIGMsZCxlLGY9W10sZz0wLGg9YS5sZW5ndGg7aD5nO2crKylkPWFbZ10sZC5zdHlsZSYmKGZbZ109bS5fZGF0YShkLCJvbGRkaXNwbGF5IiksYz1kLnN0eWxlLmRpc3BsYXksYj8oZltnXXx8Im5vbmUiIT09Y3x8KGQuc3R5bGUuZGlzcGxheT0iIiksIiI9PT1kLnN0eWxlLmRpc3BsYXkmJlUoZCkmJihmW2ddPW0uX2RhdGEoZCwib2xkZGlzcGxheSIsRmEoZC5ub2RlTmFtZSkpKSk6KGU9VShkKSwoYyYmIm5vbmUiIT09Y3x8IWUpJiZtLl9kYXRhKGQsIm9sZGRpc3BsYXkiLGU/YzptLmNzcyhkLCJkaXNwbGF5IikpKSk7Zm9yKGc9MDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoYiYmIm5vbmUiIT09ZC5zdHlsZS5kaXNwbGF5JiYiIiE9PWQuc3R5bGUuZGlzcGxheXx8KGQuc3R5bGUuZGlzcGxheT1iP2ZbZ118fCIiOiJub25lIikpO3JldHVybiBhfWZ1bmN0aW9uIFdhKGEsYixjKXt2YXIgZD1QYS5leGVjKGIpO3JldHVybiBkP01hdGgubWF4KDAsZFsxXS0oY3x8MCkpKyhkWzJdfHwicHgiKTpifWZ1bmN0aW9uIFhhKGEsYixjLGQsZSl7Zm9yKHZhciBmPWM9PT0oZD8iYm9yZGVyIjoiY29udGVudCIpPzQ6IndpZHRoIj09PWI/MTowLGc9MDs0PmY7Zis9MikibWFyZ2luIj09PWMmJihnKz1tLmNzcyhhLGMrVFtmXSwhMCxlKSksZD8oImNvbnRlbnQiPT09YyYmKGctPW0uY3NzKGEsInBhZGRpbmciK1RbZl0sITAsZSkpLCJtYXJnaW4iIT09YyYmKGctPW0uY3NzKGEsImJvcmRlciIrVFtmXSsiV2lkdGgiLCEwLGUpKSk6KGcrPW0uY3NzKGEsInBhZGRpbmciK1RbZl0sITAsZSksInBhZGRpbmciIT09YyYmKGcrPW0uY3NzKGEsImJvcmRlciIrVFtmXSsiV2lkdGgiLCEwLGUpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gWWEoYSxiLGMpe3ZhciBkPSEwLGU9IndpZHRoIj09PWI/YS5vZmZzZXRXaWR0aDphLm9mZnNldEhlaWdodCxmPUlhKGEpLGc9ay5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PW0uY3NzKGEsImJveFNpemluZyIsITEsZik7aWYoMD49ZXx8bnVsbD09ZSl7aWYoZT1KYShhLGIsZiksKDA+ZXx8bnVsbD09ZSkmJihlPWEuc3R5bGVbYl0pLEhhLnRlc3QoZSkpcmV0dXJuIGU7ZD1nJiYoay5ib3hTaXppbmdSZWxpYWJsZSgpfHxlPT09YS5zdHlsZVtiXSksZT1wYXJzZUZsb2F0KGUpfHwwfXJldHVybiBlK1hhKGEsYixjfHwoZz8iYm9yZGVyIjoiY29udGVudCIpLGQsZikrInB4In1tLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPUphKGEsIm9wYWNpdHkiKTtyZXR1cm4iIj09PWM/IjEiOmN9fX19LGNzc051bWJlcjp7Y29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6ay5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZSxmLGcsaD1tLmNhbWVsQ2FzZShiKSxpPWEuc3R5bGU7aWYoYj1tLmNzc1Byb3BzW2hdfHwobS5jc3NQcm9wc1toXT1VYShpLGgpKSxnPW0uY3NzSG9va3NbYl18fG0uY3NzSG9va3NbaF0sdm9pZCAwPT09YylyZXR1cm4gZyYmImdldCJpbiBnJiZ2b2lkIDAhPT0oZT1nLmdldChhLCExLGQpKT9lOmlbYl07aWYoZj10eXBlb2YgYywic3RyaW5nIj09PWYmJihlPVFhLmV4ZWMoYykpJiYoYz0oZVsxXSsxKSplWzJdK3BhcnNlRmxvYXQobS5jc3MoYSxiKSksZj0ibnVtYmVyIiksbnVsbCE9YyYmYz09PWMmJigibnVtYmVyIiE9PWZ8fG0uY3NzTnVtYmVyW2hdfHwoYys9InB4Iiksay5jbGVhckNsb25lU3R5bGV8fCIiIT09Y3x8MCE9PWIuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoaVtiXT0iaW5oZXJpdCIpLCEoZyYmInNldCJpbiBnJiZ2b2lkIDA9PT0oYz1nLnNldChhLGMsZCkpKSkpdHJ5e2lbYl09Y31jYXRjaChqKXt9fX0sY3NzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZyxoPW0uY2FtZWxDYXNlKGIpO3JldHVybiBiPW0uY3NzUHJvcHNbaF18fChtLmNzc1Byb3BzW2hdPVVhKGEuc3R5bGUsaCkpLGc9bS5jc3NIb29rc1tiXXx8bS5jc3NIb29rc1toXSxnJiYiZ2V0ImluIGcmJihmPWcuZ2V0KGEsITAsYykpLHZvaWQgMD09PWYmJihmPUphKGEsYixkKSksIm5vcm1hbCI9PT1mJiZiIGluIFNhJiYoZj1TYVtiXSksIiI9PT1jfHxjPyhlPXBhcnNlRmxvYXQoZiksYz09PSEwfHxtLmlzTnVtZXJpYyhlKT9lfHwwOmYpOmZ9fSksbS5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe20uY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihhLGMsZCl7cmV0dXJuIGM/T2EudGVzdChtLmNzcyhhLCJkaXNwbGF5IikpJiYwPT09YS5vZmZzZXRXaWR0aD9tLnN3YXAoYSxSYSxmdW5jdGlvbigpe3JldHVybiBZYShhLGIsZCl9KTpZYShhLGIsZCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWQmJklhKGEpO3JldHVybiBXYShhLGMsZD9YYShhLGIsZCxrLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bS5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxlKTowKX19fSksay5vcGFjaXR5fHwobS5jc3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gTmEudGVzdCgoYiYmYS5jdXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGUuZmlsdGVyOmEuc3R5bGUuZmlsdGVyKXx8IiIpPy4wMSpwYXJzZUZsb2F0KFJlZ0V4cC4kMSkrIiI6Yj8iMSI6IiJ9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjPWEuc3R5bGUsZD1hLmN1cnJlbnRTdHlsZSxlPW0uaXNOdW1lcmljKGIpPyJhbHBoYShvcGFjaXR5PSIrMTAwKmIrIikiOiIiLGY9ZCYmZC5maWx0ZXJ8fGMuZmlsdGVyfHwiIjtjLnpvb209MSwoYj49MXx8IiI9PT1iKSYmIiI9PT1tLnRyaW0oZi5yZXBsYWNlKE1hLCIiKSkmJmMucmVtb3ZlQXR0cmlidXRlJiYoYy5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpLCIiPT09Ynx8ZCYmIWQuZmlsdGVyKXx8KGMuZmlsdGVyPU1hLnRlc3QoZik/Zi5yZXBsYWNlKE1hLGUpOmYrIiAiK2UpfX0pLG0uY3NzSG9va3MubWFyZ2luUmlnaHQ9TGEoay5yZWxpYWJsZU1hcmdpblJpZ2h0LGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/bS5zd2FwKGEse2Rpc3BsYXk6ImlubGluZS1ibG9jayJ9LEphLFthLCJtYXJnaW5SaWdodCJdKTp2b2lkIDB9KSxtLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihhLGIpe20uY3NzSG9va3NbYStiXT17ZXhwYW5kOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZD0wLGU9e30sZj0ic3RyaW5nIj09dHlwZW9mIGM/Yy5zcGxpdCgiICIpOltjXTs0PmQ7ZCsrKWVbYStUW2RdK2JdPWZbZF18fGZbZC0yXXx8ZlswXTtyZXR1cm4gZX19LEdhLnRlc3QoYSl8fChtLmNzc0hvb2tzW2ErYl0uc2V0PVdhKX0pLG0uZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9e30sZz0wO2lmKG0uaXNBcnJheShiKSl7Zm9yKGQ9SWEoYSksZT1iLmxlbmd0aDtlPmc7ZysrKWZbYltnXV09bS5jc3MoYSxiW2ddLCExLGQpO3JldHVybiBmfXJldHVybiB2b2lkIDAhPT1jP20uc3R5bGUoYSxiLGMpOm0uY3NzKGEsYil9LGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMsITApfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIFZhKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oYSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgYT9hP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe1UodGhpcyk/bSh0aGlzKS5zaG93KCk6bSh0aGlzKS5oaWRlKCl9KX19KTtmdW5jdGlvbiBaYShhLGIsYyxkLGUpewpyZXR1cm4gbmV3IFphLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bS5Ud2Vlbj1aYSxaYS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlphLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fCJzd2luZyIsdGhpcy5vcHRpb25zPWIsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPWQsdGhpcy51bml0PWZ8fChtLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9WmEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOlphLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPVphLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9Yj1tLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1iPWEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ/Yy5zZXQodGhpcyk6WmEucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0sWmEucHJvdG90eXBlLmluaXQucHJvdG90eXBlPVphLnByb3RvdHlwZSxaYS5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuIG51bGw9PWEuZWxlbVthLnByb3BdfHxhLmVsZW0uc3R5bGUmJm51bGwhPWEuZWxlbS5zdHlsZVthLnByb3BdPyhiPW0uY3NzKGEuZWxlbSxhLnByb3AsIiIpLGImJiJhdXRvIiE9PWI/YjowKTphLmVsZW1bYS5wcm9wXX0sc2V0OmZ1bmN0aW9uKGEpe20uZnguc3RlcFthLnByb3BdP20uZnguc3RlcFthLnByb3BdKGEpOmEuZWxlbS5zdHlsZSYmKG51bGwhPWEuZWxlbS5zdHlsZVttLmNzc1Byb3BzW2EucHJvcF1dfHxtLmNzc0hvb2tzW2EucHJvcF0pP20uc3R5bGUoYS5lbGVtLGEucHJvcCxhLm5vdythLnVuaXQpOmEuZWxlbVthLnByb3BdPWEubm93fX19LFphLnByb3BIb29rcy5zY3JvbGxUb3A9WmEucHJvcEhvb2tzLnNjcm9sbExlZnQ9e3NldDpmdW5jdGlvbihhKXthLmVsZW0ubm9kZVR5cGUmJmEuZWxlbS5wYXJlbnROb2RlJiYoYS5lbGVtW2EucHJvcF09YS5ub3cpfX0sbS5lYXNpbmc9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfX0sbS5meD1aYS5wcm90b3R5cGUuaW5pdCxtLmZ4LnN0ZXA9e307dmFyICRhLF9hLGFiPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxiYj1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrUysiKShbYS16JV0qKSQiLCJpIiksY2I9L3F1ZXVlSG9va3MkLyxkYj1baWJdLGViPXsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpLGQ9Yy5jdXIoKSxlPWJiLmV4ZWMoYiksZj1lJiZlWzNdfHwobS5jc3NOdW1iZXJbYV0/IiI6InB4IiksZz0obS5jc3NOdW1iZXJbYV18fCJweCIhPT1mJiYrZCkmJmJiLmV4ZWMobS5jc3MoYy5lbGVtLGEpKSxoPTEsaT0yMDtpZihnJiZnWzNdIT09Zil7Zj1mfHxnWzNdLGU9ZXx8W10sZz0rZHx8MTtkbyBoPWh8fCIuNSIsZy89aCxtLnN0eWxlKGMuZWxlbSxhLGcrZik7d2hpbGUoaCE9PShoPWMuY3VyKCkvZCkmJjEhPT1oJiYtLWkpfXJldHVybiBlJiYoZz1jLnN0YXJ0PStnfHwrZHx8MCxjLnVuaXQ9ZixjLmVuZD1lWzFdP2crKGVbMV0rMSkqZVsyXTorZVsyXSksY31dfTtmdW5jdGlvbiBmYigpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JGE9dm9pZCAwfSksJGE9bS5ub3coKX1mdW5jdGlvbiBnYihhLGIpe3ZhciBjLGQ9e2hlaWdodDphfSxlPTA7Zm9yKGI9Yj8xOjA7ND5lO2UrPTItYiljPVRbZV0sZFsibWFyZ2luIitjXT1kWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZC5vcGFjaXR5PWQud2lkdGg9YSksZH1mdW5jdGlvbiBoYihhLGIsYyl7Zm9yKHZhciBkLGU9KGViW2JdfHxbXSkuY29uY2F0KGViWyIqIl0pLGY9MCxnPWUubGVuZ3RoO2c+ZjtmKyspaWYoZD1lW2ZdLmNhbGwoYyxiLGEpKXJldHVybiBkfWZ1bmN0aW9uIGliKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixsLG49dGhpcyxvPXt9LHA9YS5zdHlsZSxxPWEubm9kZVR5cGUmJlUoYSkscj1tLl9kYXRhKGEsImZ4c2hvdyIpO2MucXVldWV8fChoPW0uX3F1ZXVlSG9va3MoYSwiZngiKSxudWxsPT1oLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLGk9aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fGkoKX0pLGgudW5xdWV1ZWQrKyxuLmFsd2F5cyhmdW5jdGlvbigpe24uYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tLG0ucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksMT09PWEubm9kZVR5cGUmJigiaGVpZ2h0ImluIGJ8fCJ3aWR0aCJpbiBiKSYmKGMub3ZlcmZsb3c9W3Aub3ZlcmZsb3cscC5vdmVyZmxvd1gscC5vdmVyZmxvd1ldLGo9bS5jc3MoYSwiZGlzcGxheSIpLGw9Im5vbmUiPT09aj9tLl9kYXRhKGEsIm9sZGRpc3BsYXkiKXx8RmEoYS5ub2RlTmFtZSk6aiwiaW5saW5lIj09PWwmJiJub25lIj09PW0uY3NzKGEsImZsb2F0IikmJihrLmlubGluZUJsb2NrTmVlZHNMYXlvdXQmJiJpbmxpbmUiIT09RmEoYS5ub2RlTmFtZSk/cC56b29tPTE6cC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKHAub3ZlcmZsb3c9ImhpZGRlbiIsay5zaHJpbmtXcmFwQmxvY2tzKCl8fG4uYWx3YXlzKGZ1bmN0aW9uKCl7cC5vdmVyZmxvdz1jLm92ZXJmbG93WzBdLHAub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0scC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxhYi5leGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KHE/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFyfHx2b2lkIDA9PT1yW2RdKWNvbnRpbnVlO3E9ITB9b1tkXT1yJiZyW2RdfHxtLnN0eWxlKGEsZCl9ZWxzZSBqPXZvaWQgMDtpZihtLmlzRW1wdHlPYmplY3QobykpImlubGluZSI9PT0oIm5vbmUiPT09aj9GYShhLm5vZGVOYW1lKTpqKSYmKHAuZGlzcGxheT1qKTtlbHNle3I/ImhpZGRlbiJpbiByJiYocT1yLmhpZGRlbik6cj1tLl9kYXRhKGEsImZ4c2hvdyIse30pLGYmJihyLmhpZGRlbj0hcSkscT9tKGEpLnNob3coKTpuLmRvbmUoZnVuY3Rpb24oKXttKGEpLmhpZGUoKX0pLG4uZG9uZShmdW5jdGlvbigpe3ZhciBiO20uX3JlbW92ZURhdGEoYSwiZnhzaG93Iik7Zm9yKGIgaW4gbyltLnN0eWxlKGEsYixvW2JdKX0pO2ZvcihkIGluIG8pZz1oYihxP3JbZF06MCxkLG4pLGQgaW4gcnx8KHJbZF09Zy5zdGFydCxxJiYoZy5lbmQ9Zy5zdGFydCxnLnN0YXJ0PSJ3aWR0aCI9PT1kfHwiaGVpZ2h0Ij09PWQ/MTowKSl9fWZ1bmN0aW9uIGpiKGEsYil7dmFyIGMsZCxlLGYsZztmb3IoYyBpbiBhKWlmKGQ9bS5jYW1lbENhc2UoYyksZT1iW2RdLGY9YVtjXSxtLmlzQXJyYXkoZikmJihlPWZbMV0sZj1hW2NdPWZbMF0pLGMhPT1kJiYoYVtkXT1mLGRlbGV0ZSBhW2NdKSxnPW0uY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtmPWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtjXT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24ga2IoYSxiLGMpe3ZhciBkLGUsZj0wLGc9ZGIubGVuZ3RoLGg9bS5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSBpLmVsZW19KSxpPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTtmb3IodmFyIGI9JGF8fGZiKCksYz1NYXRoLm1heCgwLGouc3RhcnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0wLGk9ai50d2VlbnMubGVuZ3RoO2k+ZztnKyspai50d2VlbnNbZ10ucnVuKGYpO3JldHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSwxPmYmJmk/YzooaC5yZXNvbHZlV2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOm0uZXh0ZW5kKHt9LGIpLG9wdHM6bS5leHRlbmQoITAse3NwZWNpYWxFYXNpbmc6e319LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTokYXx8ZmIoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3ZhciBkPW0uVHdlZW4oYSxqLm9wdHMsYixjLGoub3B0cy5zcGVjaWFsRWFzaW5nW2JdfHxqLm9wdHMuZWFzaW5nKTtyZXR1cm4gai50d2VlbnMucHVzaChkKSxkfSxzdG9wOmZ1bmN0aW9uKGIpe3ZhciBjPTAsZD1iP2oudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7ZD5jO2MrKylqLnR3ZWVuc1tjXS5ydW4oMSk7cmV0dXJuIGI/aC5yZXNvbHZlV2l0aChhLFtqLGJdKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJvcHM7Zm9yKGpiKGssai5vcHRzLnNwZWNpYWxFYXNpbmcpO2c+ZjtmKyspaWYoZD1kYltmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGQ7cmV0dXJuIG0ubWFwKGssaGIsaiksbS5pc0Z1bmN0aW9uKGoub3B0cy5zdGFydCkmJmoub3B0cy5zdGFydC5jYWxsKGEsaiksbS5meC50aW1lcihtLmV4dGVuZChpLHtlbGVtOmEsYW5pbTpqLHF1ZXVlOmoub3B0cy5xdWV1ZX0pKSxqLnByb2dyZXNzKGoub3B0cy5wcm9ncmVzcykuZG9uZShqLm9wdHMuZG9uZSxqLm9wdHMuY29tcGxldGUpLmZhaWwoai5vcHRzLmZhaWwpLmFsd2F5cyhqLm9wdHMuYWx3YXlzKX1tLkFuaW1hdGlvbj1tLmV4dGVuZChrYix7dHdlZW5lcjpmdW5jdGlvbihhLGIpe20uaXNGdW5jdGlvbihhKT8oYj1hLGE9WyIqIl0pOmE9YS5zcGxpdCgiICIpO2Zvcih2YXIgYyxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKWM9YVtkXSxlYltjXT1lYltjXXx8W10sZWJbY10udW5zaGlmdChiKX0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9kYi51bnNoaWZ0KGEpOmRiLnB1c2goYSl9fSksbS5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSYmIm9iamVjdCI9PXR5cGVvZiBhP20uZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8bS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJmJ8fGImJiFtLmlzRnVuY3Rpb24oYikmJmJ9O3JldHVybiBkLmR1cmF0aW9uPW0uZngub2ZmPzA6Im51bWJlciI9PXR5cGVvZiBkLmR1cmF0aW9uP2QuZHVyYXRpb246ZC5kdXJhdGlvbiBpbiBtLmZ4LnNwZWVkcz9tLmZ4LnNwZWVkc1tkLmR1cmF0aW9uXTptLmZ4LnNwZWVkcy5fZGVmYXVsdCwobnVsbD09ZC5xdWV1ZXx8ZC5xdWV1ZT09PSEwKSYmKGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21wbGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bS5pc0Z1bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlJiZtLmRlcXVldWUodGhpcyxkLnF1ZXVlKX0sZH0sbS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoVSkuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxhLGMsZCl9LGFuaW1hdGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9bS5pc0VtcHR5T2JqZWN0KGEpLGY9bS5zcGVlZChiLGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPWtiKHRoaXMsbS5leHRlbmQoe30sYSksZik7KGV8fG0uX2RhdGEodGhpcywiZmluaXNoIikpJiZiLnN0b3AoITApfTtyZXR1cm4gZy5maW5pc2g9ZyxlfHxmLnF1ZXVlPT09ITE/dGhpcy5lYWNoKGcpOnRoaXMucXVldWUoZi5xdWV1ZSxnKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zdG9wO2RlbGV0ZSBhLnN0b3AsYihjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmYSE9PSExJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPSEwLGU9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsZj1tLnRpbWVycyxnPW0uX2RhdGEodGhpcyk7aWYoZSlnW2VdJiZnW2VdLnN0b3AmJmQoZ1tlXSk7ZWxzZSBmb3IoZSBpbiBnKWdbZV0mJmdbZV0uc3RvcCYmY2IudGVzdChlKSYmZChnW2VdKTtmb3IoZT1mLmxlbmd0aDtlLS07KWZbZV0uZWxlbSE9PXRoaXN8fG51bGwhPWEmJmZbZV0ucXVldWUhPT1hfHwoZltlXS5hbmltLnN0b3AoYyksYj0hMSxmLnNwbGljZShlLDEpKTsoYnx8IWMpJiZtLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1tLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1tLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbS5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxtLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bS5mbltiXTttLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoZ2IoYiwhMCksYSxkLGUpfX0pLG0uZWFjaCh7c2xpZGVEb3duOmdiKCJzaG93Iiksc2xpZGVVcDpnYigiaGlkZSIpLHNsaWRlVG9nZ2xlOmdiKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bS5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxtLnRpbWVycz1bXSxtLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW0udGltZXJzLGM9MDtmb3IoJGE9bS5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxtLmZ4LnN0b3AoKSwkYT12b2lkIDB9LG0uZngudGltZXI9ZnVuY3Rpb24oYSl7bS50aW1lcnMucHVzaChhKSxhKCk/bS5meC5zdGFydCgpOm0udGltZXJzLnBvcCgpfSxtLmZ4LmludGVydmFsPTEzLG0uZnguc3RhcnQ9ZnVuY3Rpb24oKXtfYXx8KF9hPXNldEludGVydmFsKG0uZngudGljayxtLmZ4LmludGVydmFsKSl9LG0uZnguc3RvcD1mdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoX2EpLF9hPW51bGx9LG0uZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LG0uZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1tLmZ4P20uZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihiLGMpe3ZhciBkPXNldFRpbWVvdXQoYixhKTtjLnN0b3A9ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoZCl9fSl9LGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZTtiPXkuY3JlYXRlRWxlbWVudCgiZGl2IiksYi5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxiLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixkPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxjPXkuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksZT1jLmFwcGVuZENoaWxkKHkuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGE9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxkLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGsuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWIuY2xhc3NOYW1lLGsuc3R5bGU9L3RvcC8udGVzdChkLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksay5ocmVmTm9ybWFsaXplZD0iL2EiPT09ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSxrLmNoZWNrT249ISFhLnZhbHVlLGsub3B0U2VsZWN0ZWQ9ZS5zZWxlY3RlZCxrLmVuY3R5cGU9ISF5LmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGMuZGlzYWJsZWQ9ITAsay5vcHREaXNhYmxlZD0hZS5kaXNhYmxlZCxhPXkuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxhLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxrLmlucHV0PSIiPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYS52YWx1ZT0idCIsYS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGsucmFkaW9WYWx1ZT0idCI9PT1hLnZhbHVlfSgpO3ZhciBsYj0vXHIvZzttLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlPXRoaXNbMF07e2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGQ9bS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsxPT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLG0odGhpcykudmFsKCkpOmEsbnVsbD09ZT9lPSIiOiJudW1iZXIiPT10eXBlb2YgZT9lKz0iIjptLmlzQXJyYXkoZSkmJihlPW0ubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6YSsiIn0pKSxiPW0udmFsSG9va3NbdGhpcy50eXBlXXx8bS52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxlLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT1lKSl9KTtpZihlKXJldHVybiBiPW0udmFsSG9va3NbZS50eXBlXXx8bS52YWxIb29rc1tlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldLGImJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZSwidmFsdWUiKSk/YzooYz1lLnZhbHVlLCJzdHJpbmciPT10eXBlb2YgYz9jLnJlcGxhY2UobGIsIiIpOm51bGw9PWM/IiI6Yyl9fX0pLG0uZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bS5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOm0udHJpbShtLnRleHQoYSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0ic2VsZWN0LW9uZSI9PT1hLnR5cGV8fDA+ZSxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQubGVuZ3RoLGk9MD5lP2g6Zj9lOjA7aD5pO2krKylpZihjPWRbaV0sISghYy5zZWxlY3RlZCYmaSE9PWV8fChrLm9wdERpc2FibGVkP2MuZGlzYWJsZWQ6bnVsbCE9PWMuZ2V0QXR0cmlidXRlKCJkaXNhYmxlZCIpKXx8Yy5wYXJlbnROb2RlLmRpc2FibGVkJiZtLm5vZGVOYW1lKGMucGFyZW50Tm9kZSwib3B0Z3JvdXAiKSkpe2lmKGI9bShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPW0ubWFrZUFycmF5KGIpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWlmKGQ9ZVtnXSxtLmluQXJyYXkobS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPj0wKXRyeXtkLnNlbGVjdGVkPWM9ITB9Y2F0Y2goaCl7ZC5zY3JvbGxIZWlnaHR9ZWxzZSBkLnNlbGVjdGVkPSExO3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxlfX19fSksbS5lYWNoKFsicmFkaW8iLCJjaGVja2JveCJdLGZ1bmN0aW9uKCl7bS52YWxIb29rc1t0aGlzXT17c2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uaXNBcnJheShiKT9hLmNoZWNrZWQ9bS5pbkFycmF5KG0oYSkudmFsKCksYik+PTA6dm9pZCAwfX0say5jaGVja09ufHwobS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBtYixuYixvYj1tLmV4cHIuYXR0ckhhbmRsZSxwYj0vXig/OmNoZWNrZWR8c2VsZWN0ZWQpJC9pLHFiPWsuZ2V0U2V0QXR0cmlidXRlLHJiPWsuaW5wdXQ7bS5mbi5leHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0uYXR0cixhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bS5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KSxtLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoYSYmMyE9PWYmJjghPT1mJiYyIT09ZilyZXR1cm4gdHlwZW9mIGEuZ2V0QXR0cmlidXRlPT09Sz9tLnByb3AoYSxiLGMpOigxPT09ZiYmbS5pc1hNTERvYyhhKXx8KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9bS5hdHRySG9va3NbYl18fChtLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP25iOm1iKSksdm9pZCAwPT09Yz9kJiYiZ2V0ImluIGQmJm51bGwhPT0oZT1kLmdldChhLGIpKT9lOihlPW0uZmluZC5hdHRyKGEsYiksbnVsbD09ZT92b2lkIDA6ZSk6bnVsbCE9PWM/ZCYmInNldCJpbiBkJiZ2b2lkIDAhPT0oZT1kLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6dm9pZCBtLnJlbW92ZUF0dHIoYSxiKSl9LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9MCxmPWImJmIubWF0Y2goRSk7aWYoZiYmMT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1tLnByb3BGaXhbY118fGMsbS5leHByLm1hdGNoLmJvb2wudGVzdChjKT9yYiYmcWJ8fCFwYi50ZXN0KGMpP2FbZF09ITE6YVttLmNhbWVsQ2FzZSgiZGVmYXVsdC0iK2MpXT1hW2RdPSExOm0uYXR0cihhLGMsIiIpLGEucmVtb3ZlQXR0cmlidXRlKHFiP2M6ZCl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIWsucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJm0ubm9kZU5hbWUoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19fSksbmI9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9PT0hMT9tLnJlbW92ZUF0dHIoYSxjKTpyYiYmcWJ8fCFwYi50ZXN0KGMpP2Euc2V0QXR0cmlidXRlKCFxYiYmbS5wcm9wRml4W2NdfHxjLGMpOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtjXT0hMCxjfX0sbS5lYWNoKG0uZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9b2JbYl18fG0uZmluZC5hdHRyO29iW2JdPXJiJiZxYnx8IXBiLnRlc3QoYik/ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGY7cmV0dXJuIGR8fChmPW9iW2JdLG9iW2JdPWUsZT1udWxsIT1jKGEsYixkKT9iLnRvTG93ZXJDYXNlKCk6bnVsbCxvYltiXT1mKSxlfTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmFbbS5jYW1lbENhc2UoImRlZmF1bHQtIitiKV0/Yi50b0xvd2VyQ2FzZSgpOm51bGx9fSkscmImJnFifHwobS5hdHRySG9va3MudmFsdWU9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIG0ubm9kZU5hbWUoYSwiaW5wdXQiKT92b2lkKGEuZGVmYXVsdFZhbHVlPWIpOm1iJiZtYi5zZXQoYSxiLGMpfX0pLHFifHwobWI9e3NldDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGMpO3JldHVybiBkfHxhLnNldEF0dHJpYnV0ZU5vZGUoZD1hLm93bmVyRG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKGMpKSxkLnZhbHVlPWIrPSIiLCJ2YWx1ZSI9PT1jfHxiPT09YS5nZXRBdHRyaWJ1dGUoYyk/Yjp2b2lkIDB9fSxvYi5pZD1vYi5uYW1lPW9iLmNvb3Jkcz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOihkPWEuZ2V0QXR0cmlidXRlTm9kZShiKSkmJiIiIT09ZC52YWx1ZT9kLnZhbHVlOm51bGx9LG0udmFsSG9va3MuYnV0dG9uPXtnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoYik7cmV0dXJuIGMmJmMuc3BlY2lmaWVkP2MudmFsdWU6dm9pZCAwfSxzZXQ6bWIuc2V0fSxtLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e3NldDpmdW5jdGlvbihhLGIsYyl7bWIuc2V0KGEsIiI9PT1iPyExOmIsYyl9fSxtLmVhY2goWyJ3aWR0aCIsImhlaWdodCJdLGZ1bmN0aW9uKGEsYil7bS5hdHRySG9va3NbYl09e3NldDpmdW5jdGlvbihhLGMpe3JldHVybiIiPT09Yz8oYS5zZXRBdHRyaWJ1dGUoYiwiYXV0byIpLGMpOnZvaWQgMH19fSkpLGsuc3R5bGV8fChtLmF0dHJIb29rcy5zdHlsZT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLnN0eWxlLmNzc1RleHR8fHZvaWQgMH0sc2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dD1iKyIifX0pO3ZhciBzYj0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvaSx0Yj0vXig/OmF8YXJlYSkkL2k7bS5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gVih0aGlzLG0ucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gYT1tLnByb3BGaXhbYV18fGEsdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3RoaXNbYV09dm9pZCAwLGRlbGV0ZSB0aGlzW2FdfWNhdGNoKGIpe319KX19KSxtLmV4dGVuZCh7cHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9LHByb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnPWEubm9kZVR5cGU7aWYoYSYmMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gZj0xIT09Z3x8IW0uaXNYTUxEb2MoYSksZiYmKGI9bS5wcm9wRml4W2JdfHxiLGU9bS5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM/ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNldChhLGMsYikpP2Q6YVtiXT1jOmUmJiJnZXQiaW4gZSYmbnVsbCE9PShkPWUuZ2V0KGEsYikpP2Q6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW0uZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwxMCk6c2IudGVzdChhLm5vZGVOYW1lKXx8dGIudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX19KSxrLmhyZWZOb3JtYWxpemVkfHxtLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXttLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxrLm9wdFNlbGVjdGVkfHwobS5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH19KSxtLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe20ucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxrLmVuY3R5cGV8fChtLnByb3BGaXguZW5jdHlwZT0iZW5jb2RpbmciKTt2YXIgdWI9L1tcdFxyXG5cZl0vZzttLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9InN0cmluZyI9PXR5cGVvZiBhJiZhO2lmKG0uaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20odGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoailmb3IoYj0oYXx8IiIpLm1hdGNoKEUpfHxbXTtpPmg7aCsrKWlmKGM9dGhpc1toXSxkPTE9PT1jLm5vZGVUeXBlJiYoYy5jbGFzc05hbWU/KCIgIitjLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWIsIiAiKToiICIpKXtmPTA7d2hpbGUoZT1iW2YrK10pZC5pbmRleE9mKCIgIitlKyIgIik8MCYmKGQrPWUrIiAiKTtnPW0udHJpbShkKSxjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGg9MCxpPXRoaXMubGVuZ3RoLGo9MD09PWFyZ3VtZW50cy5sZW5ndGh8fCJzdHJpbmciPT10eXBlb2YgYSYmYTtpZihtLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXttKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGopZm9yKGI9KGF8fCIiKS5tYXRjaChFKXx8W107aT5oO2grKylpZihjPXRoaXNbaF0sZD0xPT09Yy5ub2RlVHlwZSYmKGMuY2xhc3NOYW1lPygiICIrYy5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHViLCIgIik6IiIpKXtmPTA7d2hpbGUoZT1iW2YrK10pd2hpbGUoZC5pbmRleE9mKCIgIitlKyIgIik+PTApZD1kLnJlcGxhY2UoIiAiK2UrIiAiLCIgIik7Zz1hP20udHJpbShkKToiIixjLmNsYXNzTmFtZSE9PWcmJihjLmNsYXNzTmFtZT1nKX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6dGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihjKXttKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsdGhpcy5jbGFzc05hbWUsYiksYil9OmZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT1jKXt2YXIgYixkPTAsZT1tKHRoaXMpLGY9YS5tYXRjaChFKXx8W107d2hpbGUoYj1mW2QrK10pZS5oYXNDbGFzcyhiKT9lLnJlbW92ZUNsYXNzKGIpOmUuYWRkQ2xhc3MoYil9ZWxzZShjPT09S3x8ImJvb2xlYW4iPT09YykmJih0aGlzLmNsYXNzTmFtZSYmbS5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSksdGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT0hMT8iIjptLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7ZD5jO2MrKylpZigxPT09dGhpc1tjXS5ub2RlVHlwZSYmKCIgIit0aGlzW2NdLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UodWIsIiAiKS5pbmRleE9mKGIpPj0wKXJldHVybiEwO3JldHVybiExfX0pLG0uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxvYWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLG0uZm4uZXh0ZW5kKHtob3ZlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoYSkubW91c2VsZWF2ZShifHxhKX0sYmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLm9uKGIsYSxjLGQpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9fSk7dmFyIHZiPW0ubm93KCksd2I9L1w/Lyx4Yj0vKCwpfChcW3x7KXwofXxdKXwiKD86W14iXFxcclxuXXxcXFsiXFxcL2JmbnJ0XXxcXHVbXGRhLWZBLUZdezR9KSoiXHMqOj98dHJ1ZXxmYWxzZXxudWxsfC0/KD8hMFxkKVxkKyg/OlwuXGQrfCkoPzpbZUVdWystXT9cZCt8KS9nO20ucGFyc2VKU09OPWZ1bmN0aW9uKGIpe2lmKGEuSlNPTiYmYS5KU09OLnBhcnNlKXJldHVybiBhLkpTT04ucGFyc2UoYisiIik7dmFyIGMsZD1udWxsLGU9bS50cmltKGIrIiIpO3JldHVybiBlJiYhbS50cmltKGUucmVwbGFjZSh4YixmdW5jdGlvbihhLGIsZSxmKXtyZXR1cm4gYyYmYiYmKGQ9MCksMD09PWQ/YTooYz1lfHxiLGQrPSFmLSFlLCIiKX0pKT9GdW5jdGlvbigicmV0dXJuICIrZSkoKTptLmVycm9yKCJJbnZhbGlkIEpTT046ICIrYil9LG0ucGFyc2VYTUw9ZnVuY3Rpb24oYil7dmFyIGMsZDtpZighYnx8InN0cmluZyIhPXR5cGVvZiBiKXJldHVybiBudWxsO3RyeXthLkRPTVBhcnNlcj8oZD1uZXcgRE9NUGFyc2VyLGM9ZC5wYXJzZUZyb21TdHJpbmcoYiwidGV4dC94bWwiKSk6KGM9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIHliLHpiLEFiPS8jLiokLyxCYj0vKFs/Jl0pXz1bXiZdKi8sQ2I9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxEYj0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxFYj0vXig/OkdFVHxIRUFEKSQvLEZiPS9eXC9cLy8sR2I9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sSGI9e30sSWI9e30sSmI9IiovIi5jb25jYXQoIioiKTt0cnl7emI9bG9jYXRpb24uaHJlZn1jYXRjaChLYil7emI9eS5jcmVhdGVFbGVtZW50KCJhIiksemIuaHJlZj0iIix6Yj16Yi5ocmVmfXliPUdiLmV4ZWMoemIudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIExiKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbXTtpZihtLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gTWIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09SWI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxtLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBOYihhLGIpe3ZhciBjLGQsZT1tLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZtLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gT2IoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gUGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1tLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6emIsdHlwZToiR0VUIixpc0xvY2FsOkRiLnRlc3QoeWJbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SmIsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L3htbC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjptLnBhcnNlSlNPTiwidGV4dCB4bWwiOm0ucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP05iKE5iKGEsbS5hamF4U2V0dGluZ3MpLGIpOk5iKG0uYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOkxiKEhiKSxhamF4VHJhbnNwb3J0OkxiKEliKSxhamF4OmZ1bmN0aW9uKGEsYil7Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxiPWJ8fHt9O3ZhciBjLGQsZSxmLGcsaCxpLGosaz1tLmFqYXhTZXR1cCh7fSxiKSxsPWsuY29udGV4dHx8ayxuPWsuY29udGV4dCYmKGwubm9kZVR5cGV8fGwuanF1ZXJ5KT9tKGwpOm0uZXZlbnQsbz1tLkRlZmVycmVkKCkscD1tLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxxPWsuc3RhdHVzQ29kZXx8e30scj17fSxzPXt9LHQ9MCx1PSJjYW5jZWxlZCIsdj17cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT10KXtpZighail7aj17fTt3aGlsZShiPUNiLmV4ZWMoZikpaltiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19Yj1qW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXQ/ZjpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2VyQ2FzZSgpO3JldHVybiB0fHwoYT1zW2NdPXNbY118fGEsclthXT1iKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB0fHwoay5taW1lVHlwZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYoMj50KWZvcihiIGluIGEpcVtiXT1bcVtiXSxhW2JdXTtlbHNlIHYuYWx3YXlzKGFbdi5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9YXx8dTtyZXR1cm4gaSYmaS5hYm9ydChiKSx4KDAsYiksdGhpc319O2lmKG8ucHJvbWlzZSh2KS5jb21wbGV0ZT1wLmFkZCx2LnN1Y2Nlc3M9di5kb25lLHYuZXJyb3I9di5mYWlsLGsudXJsPSgoYXx8ay51cmx8fHpiKSsiIikucmVwbGFjZShBYiwiIikucmVwbGFjZShGYix5YlsxXSsiLy8iKSxrLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ay5tZXRob2R8fGsudHlwZSxrLmRhdGFUeXBlcz1tLnRyaW0oay5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKEUpfHxbIiJdLG51bGw9PWsuY3Jvc3NEb21haW4mJihjPUdiLmV4ZWMoay51cmwudG9Mb3dlckNhc2UoKSksay5jcm9zc0RvbWFpbj0hKCFjfHxjWzFdPT09eWJbMV0mJmNbMl09PT15YlsyXSYmKGNbM118fCgiaHR0cDoiPT09Y1sxXT8iODAiOiI0NDMiKSk9PT0oeWJbM118fCgiaHR0cDoiPT09eWJbMV0/IjgwIjoiNDQzIikpKSksay5kYXRhJiZrLnByb2Nlc3NEYXRhJiYic3RyaW5nIiE9dHlwZW9mIGsuZGF0YSYmKGsuZGF0YT1tLnBhcmFtKGsuZGF0YSxrLnRyYWRpdGlvbmFsKSksTWIoSGIsayxiLHYpLDI9PT10KXJldHVybiB2O2g9bS5ldmVudCYmay5nbG9iYWwsaCYmMD09PW0uYWN0aXZlKysmJm0uZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksay50eXBlPWsudHlwZS50b1VwcGVyQ2FzZSgpLGsuaGFzQ29udGVudD0hRWIudGVzdChrLnR5cGUpLGU9ay51cmwsay5oYXNDb250ZW50fHwoay5kYXRhJiYoZT1rLnVybCs9KHdiLnRlc3QoZSk/IiYiOiI/Iikray5kYXRhLGRlbGV0ZSBrLmRhdGEpLGsuY2FjaGU9PT0hMSYmKGsudXJsPUJiLnRlc3QoZSk/ZS5yZXBsYWNlKEJiLCIkMV89Iit2YisrKTplKyh3Yi50ZXN0KGUpPyImIjoiPyIpKyJfPSIrdmIrKykpLGsuaWZNb2RpZmllZCYmKG0ubGFzdE1vZGlmaWVkW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixtLmxhc3RNb2RpZmllZFtlXSksbS5ldGFnW2VdJiZ2LnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLG0uZXRhZ1tlXSkpLChrLmRhdGEmJmsuaGFzQ29udGVudCYmay5jb250ZW50VHlwZSE9PSExfHxiLmNvbnRlbnRUeXBlKSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGsuY29udGVudFR5cGUpLHYuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IixrLmRhdGFUeXBlc1swXSYmay5hY2NlcHRzW2suZGF0YVR5cGVzWzBdXT9rLmFjY2VwdHNbay5kYXRhVHlwZXNbMF1dKygiKiIhPT1rLmRhdGFUeXBlc1swXT8iLCAiK0piKyI7IHE9MC4wMSI6IiIpOmsuYWNjZXB0c1siKiJdKTtmb3IoZCBpbiBrLmhlYWRlcnMpdi5zZXRSZXF1ZXN0SGVhZGVyKGQsay5oZWFkZXJzW2RdKTtpZihrLmJlZm9yZVNlbmQmJihrLmJlZm9yZVNlbmQuY2FsbChsLHYsayk9PT0hMXx8Mj09PXQpKXJldHVybiB2LmFib3J0KCk7dT0iYWJvcnQiO2ZvcihkIGlue3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbZF0oa1tkXSk7aWYoaT1NYihJYixrLGIsdikpe3YucmVhZHlTdGF0ZT0xLGgmJm4udHJpZ2dlcigiYWpheFNlbmQiLFt2LGtdKSxrLmFzeW5jJiZrLnRpbWVvdXQ+MCYmKGc9c2V0VGltZW91dChmdW5jdGlvbigpe3YuYWJvcnQoInRpbWVvdXQiKX0say50aW1lb3V0KSk7dHJ5e3Q9MSxpLnNlbmQocix4KX1jYXRjaCh3KXtpZighKDI+dCkpdGhyb3cgdzt4KC0xLHcpfX1lbHNlIHgoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGoscixzLHUsdyx4PWI7MiE9PXQmJih0PTIsZyYmY2xlYXJUaW1lb3V0KGcpLGk9dm9pZCAwLGY9ZHx8IiIsdi5yZWFkeVN0YXRlPWE+MD80OjAsaj1hPj0yMDAmJjMwMD5hfHwzMDQ9PT1hLGMmJih1PU9iKGssdixjKSksdT1QYihrLHUsdixqKSxqPyhrLmlmTW9kaWZpZWQmJih3PXYuZ2V0UmVzcG9uc2VIZWFkZXIoIkxhc3QtTW9kaWZpZWQiKSx3JiYobS5sYXN0TW9kaWZpZWRbZV09dyksdz12LmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIiksdyYmKG0uZXRhZ1tlXT13KSksMjA0PT09YXx8IkhFQUQiPT09ay50eXBlP3g9Im5vY29udGVudCI6MzA0PT09YT94PSJub3Rtb2RpZmllZCI6KHg9dS5zdGF0ZSxyPXUuZGF0YSxzPXUuZXJyb3Isaj0hcykpOihzPXgsKGF8fCF4KSYmKHg9ImVycm9yIiwwPmEmJihhPTApKSksdi5zdGF0dXM9YSx2LnN0YXR1c1RleHQ9KGJ8fHgpKyIiLGo/by5yZXNvbHZlV2l0aChsLFtyLHgsdl0pOm8ucmVqZWN0V2l0aChsLFt2LHgsc10pLHYuc3RhdHVzQ29kZShxKSxxPXZvaWQgMCxoJiZuLnRyaWdnZXIoaj8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt2LGssaj9yOnNdKSxwLmZpcmVXaXRoKGwsW3YseF0pLGgmJihuLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3Ysa10pLC0tbS5hY3RpdmV8fG0uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB2fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbS5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG0uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG0uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe21bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG0uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG0uYWpheCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0pfX0pLG0uX2V2YWxVcmw9ZnVuY3Rpb24oYSl7cmV0dXJuIG0uYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0Iixhc3luYzohMSxnbG9iYWw6ITEsInRocm93cyI6ITB9KX0sbS5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7aWYobS5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bSh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGIpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPW0oYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKTt0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFyIGE9dGhpczt3aGlsZShhLmZpcnN0Q2hpbGQmJjE9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUpYT1hLmZpcnN0Q2hpbGQ7cmV0dXJuIGF9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKG0uaXNGdW5jdGlvbihhKT9mdW5jdGlvbihiKXttKHRoaXMpLndyYXBJbm5lcihhLmNhbGwodGhpcyxiKSl9OmZ1bmN0aW9uKCl7dmFyIGI9bSh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1tLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihjKXttKHRoaXMpLndyYXBBbGwoYj9hLmNhbGwodGhpcyxjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCl7bS5ub2RlTmFtZSh0aGlzLCJib2R5Iil8fG0odGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLG0uZXhwci5maWx0ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4gYS5vZmZzZXRXaWR0aDw9MCYmYS5vZmZzZXRIZWlnaHQ8PTB8fCFrLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpJiYibm9uZSI9PT0oYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxtLmNzcyhhLCJkaXNwbGF5IikpfSxtLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiFtLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9O3ZhciBRYj0vJTIwL2csUmI9L1xbXF0kLyxTYj0vXHI/XG4vZyxUYj0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksVWI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIFZiKGEsYixjLGQpe3ZhciBlO2lmKG0uaXNBcnJheShiKSltLmVhY2goYixmdW5jdGlvbihiLGUpe2N8fFJiLnRlc3QoYSk/ZChhLGUpOlZiKGErIlsiKygib2JqZWN0Ij09dHlwZW9mIGU/YjoiIikrIl0iLGUsYyxkKX0pO2Vsc2UgaWYoY3x8Im9iamVjdCIhPT1tLnR5cGUoYikpZChhLGIpO2Vsc2UgZm9yKGUgaW4gYilWYihhKyJbIitlKyJdIixiW2VdLGMsZCl9bS5wYXJhbT1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT1mdW5jdGlvbihhLGIpe2I9bS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYil9O2lmKHZvaWQgMD09PWImJihiPW0uYWpheFNldHRpbmdzJiZtLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCksbS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIW0uaXNQbGFpbk9iamVjdChhKSltLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKVZiKGMsYVtjXSxiLGUpO3JldHVybiBkLmpvaW4oIiYiKS5yZXBsYWNlKFFiLCIrIil9LG0uZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gbS5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPW0ucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP20ubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIW0odGhpcykuaXMoIjpkaXNhYmxlZCIpJiZVYi50ZXN0KHRoaXMubm9kZU5hbWUpJiYhVGIudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IVcudGVzdChhKSl9KS5tYXAoZnVuY3Rpb24oYSxiKXt2YXIgYz1tKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1jP251bGw6bS5pc0FycmF5KGMpP20ubWFwKGMsZnVuY3Rpb24oYSl7cmV0dXJue25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShTYiwiXHJcbiIpfX0pOntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoU2IsIlxyXG4iKX19KS5nZXQoKX19KSxtLmFqYXhTZXR0aW5ncy54aHI9dm9pZCAwIT09YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNMb2NhbCYmL14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmWmIoKXx8JGIoKX06WmI7dmFyIFdiPTAsWGI9e30sWWI9bS5hamF4U2V0dGluZ3MueGhyKCk7YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIFhiKVhiW2FdKHZvaWQgMCwhMCl9KSxrLmNvcnM9ISFZYiYmIndpdGhDcmVkZW50aWFscyJpbiBZYixZYj1rLmFqYXg9ISFZYixZYiYmbS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe2lmKCFhLmNyb3NzRG9tYWlufHxrLmNvcnMpe3ZhciBiO3JldHVybntzZW5kOmZ1bmN0aW9uKGMsZCl7dmFyIGUsZj1hLnhocigpLGc9KytXYjtpZihmLm9wZW4oYS50eXBlLGEudXJsLGEuYXN5bmMsYS51c2VybmFtZSxhLnBhc3N3b3JkKSxhLnhockZpZWxkcylmb3IoZSBpbiBhLnhockZpZWxkcylmW2VdPWEueGhyRmllbGRzW2VdO2EubWltZVR5cGUmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKGEubWltZVR5cGUpLGEuY3Jvc3NEb21haW58fGNbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGNbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZSBpbiBjKXZvaWQgMCE9PWNbZV0mJmYuc2V0UmVxdWVzdEhlYWRlcihlLGNbZV0rIiIpO2Yuc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCksYj1mdW5jdGlvbihjLGUpe3ZhciBoLGksajtpZihiJiYoZXx8ND09PWYucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIFhiW2ddLGI9dm9pZCAwLGYub25yZWFkeXN0YXRlY2hhbmdlPW0ubm9vcCxlKTQhPT1mLnJlYWR5U3RhdGUmJmYuYWJvcnQoKTtlbHNle2o9e30saD1mLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGYucmVzcG9uc2VUZXh0JiYoai50ZXh0PWYucmVzcG9uc2VUZXh0KTt0cnl7aT1mLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1ofHwhYS5pc0xvY2FsfHxhLmNyb3NzRG9tYWluPzEyMjM9PT1oJiYoaD0yMDQpOmg9ai50ZXh0PzIwMDo0MDR9aiYmZChoLGksaixmLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYS5hc3luYz80PT09Zi5yZWFkeVN0YXRlP3NldFRpbWVvdXQoYik6Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9WGJbZ109YjpiKCl9LGFib3J0OmZ1bmN0aW9uKCl7YiYmYih2b2lkIDAsITApfX19fSk7ZnVuY3Rpb24gWmIoKXt0cnl7cmV0dXJuIG5ldyBhLlhNTEh0dHBSZXF1ZXN0fWNhdGNoKGIpe319ZnVuY3Rpb24gJGIoKXt0cnl7cmV0dXJuIG5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7fX1tLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6Lyg/OmphdmF8ZWNtYSlzY3JpcHQvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBtLmdsb2JhbEV2YWwoYSksYX19fSksbS5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG0uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPXkuaGVhZHx8bSgiaGVhZCIpWzBdfHx5LmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihkLGUpe2I9eS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxlKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgX2I9W10sYWM9Lyg9KVw/KD89JnwkKXxcP1w/LzttLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9X2IucG9wKCl8fG0uZXhwYW5kbysiXyIrdmIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG0uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGFjLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYhKGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmYWMudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW0uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGFjLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPSh3Yi50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bS5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXthW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssX2IucHVzaChlKSksZyYmbS5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fHk7dmFyIGQ9dS5leGVjKGEpLGU9IWMmJltdO3JldHVybiBkP1tiLmNyZWF0ZUVsZW1lbnQoZFsxXSldOihkPW0uYnVpbGRGcmFnbWVudChbYV0sYixlKSxlJiZlLmxlbmd0aCYmbShlKS5yZW1vdmUoKSxtLm1lcmdlKFtdLGQuY2hpbGROb2RlcykpfTt2YXIgYmM9bS5mbi5sb2FkO20uZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZiYylyZXR1cm4gYmMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTtyZXR1cm4gaD49MCYmKGQ9bS50cmltKGEuc2xpY2UoaCxhLmxlbmd0aCkpLGE9YS5zbGljZSgwLGgpKSxtLmlzRnVuY3Rpb24oYik/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLGcubGVuZ3RoPjAmJm0uYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2U9YXJndW1lbnRzLGcuaHRtbChkP20oIjxkaXY+IikuYXBwZW5kKG0ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuY29tcGxldGUoYyYmZnVuY3Rpb24oYSxiKXtnLmVhY2goYyxlfHxbYS5yZXNwb25zZVRleHQsYixhXSl9KSx0aGlzfSxtLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihhLGIpe20uZm5bYl09ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMub24oYixhKX19KSxtLmV4cHIuZmlsdGVycy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gbS5ncmVwKG0udGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofTt2YXIgY2M9YS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7ZnVuY3Rpb24gZGMoYSl7cmV0dXJuIG0uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1tLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW0uY3NzKGEsInBvc2l0aW9uIiksbD1tKGEpLG49e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1tLmNzcyhhLCJ0b3AiKSxpPW0uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZtLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbS5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLGgpKSxudWxsIT1iLnRvcCYmKG4udG9wPWIudG9wLWgudG9wK2cpLG51bGwhPWIubGVmdCYmKG4ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJpbiBiP2IudXNpbmcuY2FsbChhLG4pOmwuY3NzKG4pfX0sbS5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbihhKXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1hP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe20ub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsYil9KTt2YXIgYixjLGQ9e3RvcDowLGxlZnQ6MH0sZT10aGlzWzBdLGY9ZSYmZS5vd25lckRvY3VtZW50O2lmKGYpcmV0dXJuIGI9Zi5kb2N1bWVudEVsZW1lbnQsbS5jb250YWlucyhiLGUpPyh0eXBlb2YgZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QhPT1LJiYoZD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSxjPWRjKGYpLHt0b3A6ZC50b3ArKGMucGFnZVlPZmZzZXR8fGIuc2Nyb2xsVG9wKS0oYi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5sZWZ0KyhjLnBhZ2VYT2Zmc2V0fHxiLnNjcm9sbExlZnQpLShiLmNsaWVudExlZnR8fDApfSk6ZH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiLGM9e3RvcDowLGxlZnQ6MH0sZD10aGlzWzBdO3JldHVybiJmaXhlZCI9PT1tLmNzcyhkLCJwb3NpdGlvbiIpP2I9ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTooYT10aGlzLm9mZnNldFBhcmVudCgpLGI9dGhpcy5vZmZzZXQoKSxtLm5vZGVOYW1lKGFbMF0sImh0bWwiKXx8KGM9YS5vZmZzZXQoKSksYy50b3ArPW0uY3NzKGFbMF0sImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1tLmNzcyhhWzBdLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSkse3RvcDpiLnRvcC1jLnRvcC1tLmNzcyhkLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmIubGVmdC1jLmxlZnQtbS5jc3MoZCwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxjYzt3aGlsZShhJiYhbS5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bS5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxjY30pfX0pLG0uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO20uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFYodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9ZGMoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bShmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bShmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbS5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bS5jc3NIb29rc1tiXT1MYShrLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1KYShhLGIpLEhhLnRlc3QoYyk/bShhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxtLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe20uZWFjaCh7cGFkZGluZzoiaW5uZXIiK2EsY29udGVudDpiLCIiOiJvdXRlciIrYX0sZnVuY3Rpb24oYyxkKXttLmZuW2RdPWZ1bmN0aW9uKGQsZSl7dmFyIGY9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGQpLGc9Y3x8KGQ9PT0hMHx8ZT09PSEwPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gVih0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gbS5pc1dpbmRvdyhiKT9iLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsiY2xpZW50IithXTo5PT09Yi5ub2RlVHlwZT8oZT1iLmRvY3VtZW50RWxlbWVudCxNYXRoLm1heChiLmJvZHlbInNjcm9sbCIrYV0sZVsic2Nyb2xsIithXSxiLmJvZHlbIm9mZnNldCIrYV0sZVsib2Zmc2V0IithXSxlWyJjbGllbnQiK2FdKSk6dm9pZCAwPT09ZD9tLmNzcyhiLGMsZyk6bS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9KSxtLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG0uZm4uYW5kU2VsZj1tLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTt2YXIgZWM9YS5qUXVlcnksZmM9YS4kO3JldHVybiBtLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW0mJihhLiQ9ZmMpLGImJmEualF1ZXJ5PT09bSYmKGEualF1ZXJ5PWVjKSxtfSx0eXBlb2YgYj09PUsmJihhLmpRdWVyeT1hLiQ9bSksbX0pOwo="></script>
<link href="data:text/css;charset=utf-8,%0A%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20%2D30px%3B%0Amargin%2Dright%3A%20%2D30px%3B%0Awhite%2Dspace%3A%20normal%3B%0A%7D%0A%0Abody%20%3E%20%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%2Dright%3A%2012px%3B%0Avertical%2Dalign%3A%20top%3B%0A%7D%0A%40media%20only%20screen%20and%20%28max%2Dwidth%3A480px%29%20%7B%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20block%3B%0Apadding%2Dright%3A%20inherit%3B%0A%7D%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,IWZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dmFyIGo9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpO3Rocm93IGouY29kZT0iTU9EVUxFX05PVF9GT1VORCIsan12YXIgaz1jW2ddPXtleHBvcnRzOnt9fTtiW2ddWzBdLmNhbGwoay5leHBvcnRzLGZ1bmN0aW9uKGEpe3ZhciBjPWJbZ11bMV1bYV07cmV0dXJuIGUoYz9jOmEpfSxrLGsuZXhwb3J0cyxhLGIsYyxkKX1yZXR1cm4gY1tnXS5leHBvcnRzfWZvcih2YXIgZj0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxnPTA7ZzxkLmxlbmd0aDtnKyspZShkW2ddKTtyZXR1cm4gZX0oezE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2QodGhpcyxhKSx0aGlzLl90eXBlcz17fSx0aGlzLl9zZXE9MH1yZXR1cm4gZShhLFt7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl90eXBlc1thXTtjfHwoYz10aGlzLl90eXBlc1thXT17fSk7dmFyIGQ9InN1YiIrdGhpcy5fc2VxKys7cmV0dXJuIGNbZF09YixkfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX3R5cGVzW2FdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiKXtmb3IodmFyIGQgaW4gYylpZihjLmhhc093blByb3BlcnR5KGQpJiZjW2RdPT09YilyZXR1cm4gZGVsZXRlIGNbZF0sZDtyZXR1cm4hMX1pZigic3RyaW5nIj09dHlwZW9mIGIpcmV0dXJuISghY3x8IWNbYl0pJiYoZGVsZXRlIGNbYl0sYik7dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgZm9yIGxpc3RlbmVyIil9fSx7a2V5OiJ0cmlnZ2VyIix2YWx1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5fdHlwZXNbYV07Zm9yKHZhciBlIGluIGQpZC5oYXNPd25Qcm9wZXJ0eShlKSYmZFtlXS5jYWxsKGMsYil9fV0pLGF9KCk7Yy5kZWZhdWx0PWZ9LHt9XSwyOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7aWYoYSYmYS5fX2VzTW9kdWxlKXJldHVybiBhO3ZhciBiPXt9O2lmKG51bGwhPWEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJihiW2NdPWFbY10pO3JldHVybiBiLmRlZmF1bHQ9YSxifWZ1bmN0aW9uIGUoYSl7cmV0dXJuIGEmJmEuX19lc01vZHVsZT9hOntkZWZhdWx0OmF9fWZ1bmN0aW9uIGYoYSxiKXtpZighKGEgaW5zdGFuY2VvZiBiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBnKGEpe3ZhciBiPWEudmFyKCJmaWx0ZXJzZXQiKSxjPWIuZ2V0KCk7cmV0dXJuIGN8fChjPW5ldyBtLmRlZmF1bHQsYi5zZXQoYykpLGN9ZnVuY3Rpb24gaCgpe3JldHVybiByKyt9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGMuRmlsdGVySGFuZGxlPXZvaWQgMDt2YXIgaT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxqPWEoIi4vZXZlbnRzIiksaz1lKGopLGw9YSgiLi9maWx0ZXJzZXQiKSxtPWUobCksbj1hKCIuL2dyb3VwIiksbz1lKG4pLHA9YSgiLi91dGlsIikscT1kKHApLHI9MTtjLkZpbHRlckhhbmRsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYixjKXtmKHRoaXMsYSksdGhpcy5fZXZlbnRSZWxheT1uZXcgay5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IHEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPXEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sYyksdGhpcy5faWQ9ImZpbHRlciIraCgpLHRoaXMuc2V0R3JvdXAoYil9cmV0dXJuIGkoYSxbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYodGhpcy5fZ3JvdXAhPT1hJiYodGhpcy5fZ3JvdXB8fGEpJiYodGhpcy5fZmlsdGVyVmFyJiYodGhpcy5fZmlsdGVyVmFyLm9mZigiY2hhbmdlIix0aGlzLl92YXJPbkNoYW5nZVN1YiksdGhpcy5jbGVhcigpLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZmlsdGVyVmFyPW51bGwsdGhpcy5fZmlsdGVyU2V0PW51bGwpLHRoaXMuX2dyb3VwPWEsYSkpe2E9KDAsby5kZWZhdWx0KShhKSx0aGlzLl9maWx0ZXJTZXQ9ZyhhKSx0aGlzLl9maWx0ZXJWYXI9KDAsby5kZWZhdWx0KShhKS52YXIoImZpbHRlciIpO3ZhciBjPXRoaXMuX2ZpbHRlclZhci5vbigiY2hhbmdlIixmdW5jdGlvbihhKXtiLl9ldmVudFJlbGF5LnRyaWdnZXIoImNoYW5nZSIsYSxiKX0pO3RoaXMuX3Zhck9uQ2hhbmdlU3ViPWN9fX0se2tleToiX21lcmdlRXh0cmFJbmZvIix2YWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gcS5leHRlbmQoe30sdGhpcy5fZXh0cmFJbmZvP3RoaXMuX2V4dHJhSW5mbzpudWxsLGE/YTpudWxsKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5jbGVhcigpLHRoaXMuc2V0R3JvdXAobnVsbCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oYSl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LmNsZWFyKHRoaXMuX2lkKSx0aGlzLl9vbkNoYW5nZShhKSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGEsYil7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LnVwZGF0ZSh0aGlzLl9pZCxhKSx0aGlzLl9vbkNoYW5nZShiKSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbihhLGIpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9mZihhLGIpfX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihhKXt0aGlzLl9maWx0ZXJTZXQmJnRoaXMuX2ZpbHRlclZhci5zZXQodGhpcy5fZmlsdGVyU2V0LnZhbHVlLHRoaXMuX21lcmdlRXh0cmFJbmZvKGEpKX19LHtrZXk6ImZpbHRlcmVkS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbHRlclNldD90aGlzLl9maWx0ZXJTZXQudmFsdWU6bnVsbH19XSksYX0oKX0seyIuL2V2ZW50cyI6MSwiLi9maWx0ZXJzZXQiOjMsIi4vZ3JvdXAiOjQsIi4vdXRpbCI6MTF9XSwzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtpZighKGEgaW5zdGFuY2VvZiBiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGE9PT1iPzA6YTxiPy0xOmE+Yj8xOnZvaWQgMH1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZC5lbnVtZXJhYmxlPWQuZW51bWVyYWJsZXx8ITEsZC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGQmJihkLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxkLmtleSxkKX19cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYyYmYShiLnByb3RvdHlwZSxjKSxkJiZhKGIsZCksYn19KCksZz1hKCIuL3V0aWwiKSxoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2QodGhpcyxhKSx0aGlzLnJlc2V0KCl9cmV0dXJuIGYoYSxbe2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faGFuZGxlcz17fSx0aGlzLl9rZXlzPXt9LHRoaXMuX3ZhbHVlPW51bGwsdGhpcy5fYWN0aXZlSGFuZGxlcz0wfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihhLGIpe251bGwhPT1iJiYoYj1iLnNsaWNlKDApLGIuc29ydChlKSk7dmFyIGM9KDAsZy5kaWZmU29ydGVkTGlzdHMpKHRoaXMuX2hhbmRsZXNbYV0sYiksZD1jLmFkZGVkLGY9Yy5yZW1vdmVkO3RoaXMuX2hhbmRsZXNbYV09Yjtmb3IodmFyIGg9MDtoPGQubGVuZ3RoO2grKyl0aGlzLl9rZXlzW2RbaF1dPSh0aGlzLl9rZXlzW2RbaF1dfHwwKSsxO2Zvcih2YXIgaT0wO2k8Zi5sZW5ndGg7aSsrKXRoaXMuX2tleXNbZltpXV0tLTt0aGlzLl91cGRhdGVWYWx1ZShiKX19LHtrZXk6Il91cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fYWxsS2V5cyxiPU9iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXMpLmxlbmd0aDtpZigwPT09Yil0aGlzLl92YWx1ZT1udWxsO2Vsc2V7dGhpcy5fdmFsdWU9W107Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBkPXRoaXMuX2tleXNbYVtjXV07ZD09PWImJnRoaXMuX3ZhbHVlLnB1c2goYVtjXSl9fX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMuX2hhbmRsZXNbYV0pe3ZhciBiPXRoaXMuX2hhbmRsZXNbYV07Ynx8KGI9W10pO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXRoaXMuX2tleXNbYltjXV0tLTtkZWxldGUgdGhpcy5faGFuZGxlc1thXSx0aGlzLl91cGRhdGVWYWx1ZSgpfX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9fSx7a2V5OiJfYWxsS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7dmFyIGE9T2JqZWN0LmtleXModGhpcy5fa2V5cyk7cmV0dXJuIGEuc29ydChlKSxhfX1dKSxhfSgpO2MuZGVmYXVsdD1ofSx7Ii4vdXRpbCI6MTF9XSw0OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3JldHVybiBhJiZhLl9fZXNNb2R1bGU/YTp7ZGVmYXVsdDphfX1mdW5jdGlvbiBlKGEsYil7aWYoIShhIGluc3RhbmNlb2YgYikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gZihhKXtpZihhJiYic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGsuaGFzT3duUHJvcGVydHkoYSl8fChrW2FdPW5ldyBsKGEpKSxrW2FdO2lmKCJvYmplY3QiPT09KCJ1bmRlZmluZWQiPT10eXBlb2YgYT8idW5kZWZpbmVkIjpoKGEpKSYmYS5fdmFycyYmYS52YXIpcmV0dXJuIGE7aWYoQXJyYXkuaXNBcnJheShhKSYmMT09YS5sZW5ndGgmJiJzdHJpbmciPT10eXBlb2YgYVswXSlyZXR1cm4gZihhWzBdKTt0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZ3JvdXBOYW1lIGFyZ3VtZW50Iil9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QuZW51bWVyYWJsZT1kLmVudW1lcmFibGV8fCExLGQuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBkJiYoZC53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZC5rZXksZCl9fXJldHVybiBmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGMmJmEoYi5wcm90b3R5cGUsYyksZCYmYShiLGQpLGJ9fSgpLGg9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhfTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmYS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmYSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGF9O2MuZGVmYXVsdD1mO3ZhciBpPWEoIi4vdmFyIiksaj1kKGkpO2IuX19jcm9zc3RhbGtfZ3JvdXBzPWIuX19jcm9zc3RhbGtfZ3JvdXBzfHx7fTt2YXIgaz1iLl9fY3Jvc3N0YWxrX2dyb3VwcyxsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtlKHRoaXMsYSksdGhpcy5uYW1lPWIsdGhpcy5fdmFycz17fX1yZXR1cm4gZyhhLFt7a2V5OiJ2YXIiLHZhbHVlOmZ1bmN0aW9uKGEpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhciBuYW1lIik7cmV0dXJuIHRoaXMuX3ZhcnMuaGFzT3duUHJvcGVydHkoYSl8fCh0aGlzLl92YXJzW2FdPW5ldyBqLmRlZmF1bHQodGhpcyxhKSksdGhpcy5fdmFyc1thXX19LHtrZXk6ImhhcyIsdmFsdWU6ZnVuY3Rpb24oYSl7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdmFyIG5hbWUiKTtyZXR1cm4gdGhpcy5fdmFycy5oYXNPd25Qcm9wZXJ0eShhKX19XSksYX0oKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL3ZhciI6MTJ9XSw1OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEpe3JldHVybiBhJiZhLl9fZXNNb2R1bGU/YTp7ZGVmYXVsdDphfX1mdW5jdGlvbiBlKGEpe3JldHVybiBrLnZhcihhKX1mdW5jdGlvbiBmKGEpe3JldHVybiBrLmhhcyhhKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIGc9YSgiLi9ncm91cCIpLGg9ZChnKSxpPWEoIi4vc2VsZWN0aW9uIiksaj1hKCIuL2ZpbHRlciIpO2EoIi4vaW5wdXQiKSxhKCIuL2lucHV0X3NlbGVjdGl6ZSIpLGEoIi4vaW5wdXRfY2hlY2tib3hncm91cCIpLGEoIi4vaW5wdXRfc2xpZGVyIik7dmFyIGs9KDAsaC5kZWZhdWx0KSgiZGVmYXVsdCIpO2IuU2hpbnkmJmIuU2hpbnkuYWRkQ3VzdG9tTWVzc2FnZUhhbmRsZXIoInVwZGF0ZS1jbGllbnQtdmFsdWUiLGZ1bmN0aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYS5ncm91cD8oMCxoLmRlZmF1bHQpKGEuZ3JvdXApLnZhcihhLm5hbWUpLnNldChhLnZhbHVlKTplKGEubmFtZSkuc2V0KGEudmFsdWUpfSk7dmFyIGw9e2dyb3VwOmguZGVmYXVsdCx2YXI6ZSxoYXM6ZixTZWxlY3Rpb25IYW5kbGU6aS5TZWxlY3Rpb25IYW5kbGUsRmlsdGVySGFuZGxlOmouRmlsdGVySGFuZGxlfTtjLmRlZmF1bHQ9bCxiLmNyb3NzdGFsaz1sfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2dyb3VwIjo0LCIuL2lucHV0Ijo2LCIuL2lucHV0X2NoZWNrYm94Z3JvdXAiOjcsIi4vaW5wdXRfc2VsZWN0aXplIjo4LCIuL2lucHV0X3NsaWRlciI6OSwiLi9zZWxlY3Rpb24iOjEwfV0sNjpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtpW2IuY2xhc3NOYW1lXT1iLGEuZG9jdW1lbnQmJiJjb21wbGV0ZSIhPT1hLmRvY3VtZW50LnJlYWR5U3RhdGU/aChmdW5jdGlvbigpe2QoKX0pOmEuZG9jdW1lbnQmJnNldFRpbWVvdXQoZCwxMDApfWZ1bmN0aW9uIGQoKXtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciBiPWlbYV07aCgiLiIrYi5jbGFzc05hbWUpLm5vdCgiLmNyb3NzdGFsay1pbnB1dC1ib3VuZCIpLmVhY2goZnVuY3Rpb24oYSxjKXtnKGIsYyl9KX0pfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIGEucmVwbGFjZSgvKFshIiMkJSYnKCkqKywuXC86Ozw9Pj9AXFtcXFxdXmB7fH1+XSkvZywiXFwkMSIpfWZ1bmN0aW9uIGYoYSl7dmFyIGI9aChhKTtPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2lmKGIuaGFzQ2xhc3MoYykmJiFiLmhhc0NsYXNzKCJjcm9zc3RhbGstaW5wdXQtYm91bmQiKSl7dmFyIGQ9aVtjXTtnKGQsYSl9fSl9ZnVuY3Rpb24gZyhhLGIpe3ZhciBjPWgoYikuZmluZCgic2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXVtkYXRhLWZvcj0nIitlKGIuaWQpKyInXSIpLGQ9SlNPTi5wYXJzZShjWzBdLmlubmVyVGV4dCksZj1hLmZhY3RvcnkoYixkKTtoKGIpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIsZiksaChiKS5hZGRDbGFzcygiY3Jvc3N0YWxrLWlucHV0LWJvdW5kIil9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGMucmVnaXN0ZXI9Yjt2YXIgaD1hLmpRdWVyeSxpPXt9O2EuU2hpbnkmJiFmdW5jdGlvbigpe3ZhciBiPW5ldyBhLlNoaW55LklucHV0QmluZGluZyxjPWEualF1ZXJ5O2MuZXh0ZW5kKGIse2ZpbmQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGMoYSkuZmluZCgiLmNyb3NzdGFsay1pbnB1dCIpfSxpbml0aWFsaXplOmZ1bmN0aW9uKGEpe2MoYSkuaGFzQ2xhc3MoImNyb3NzdGFsay1pbnB1dC1ib3VuZCIpfHxmKGEpfSxnZXRJZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pZH0sZ2V0VmFsdWU6ZnVuY3Rpb24oYSl7fSxzZXRWYWx1ZTpmdW5jdGlvbihhLGIpe30scmVjZWl2ZU1lc3NhZ2U6ZnVuY3Rpb24oYSxiKXt9LHN1YnNjcmliZTpmdW5jdGlvbihhLGIpe2MoYSkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIikucmVzdW1lKCl9LHVuc3Vic2NyaWJlOmZ1bmN0aW9uKGEpe2MoYSkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIikuc3VzcGVuZCgpfX0pLGEuU2hpbnkuaW5wdXRCaW5kaW5ncy5yZWdpc3RlcihiLCJjcm9zc3RhbGsuaW5wdXRCaW5kaW5nIil9KCl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XSw3OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEpe2lmKGEmJmEuX19lc01vZHVsZSlyZXR1cm4gYTt2YXIgYj17fTtpZihudWxsIT1hKWZvcih2YXIgYyBpbiBhKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhLGMpJiYoYltjXT1hW2NdKTtyZXR1cm4gYi5kZWZhdWx0PWEsYn12YXIgZD1hKCIuL2lucHV0IiksZT1jKGQpLGY9YSgiLi9maWx0ZXIiKSxnPWIualF1ZXJ5O2UucmVnaXN0ZXIoe2NsYXNzTmFtZToiY3Jvc3N0YWxrLWlucHV0LWNoZWNrYm94Z3JvdXAiLGZhY3Rvcnk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1uZXcgZi5GaWx0ZXJIYW5kbGUoYi5ncm91cCksZD12b2lkIDAsZT1nKGEpO3JldHVybiBlLm9uKCJjaGFuZ2UiLCJpbnB1dFt0eXBlPSdjaGVja2JveCddIixmdW5jdGlvbigpe3ZhciBhPWUuZmluZCgiaW5wdXRbdHlwZT0nY2hlY2tib3gnXTpjaGVja2VkIik7MD09PWEubGVuZ3RoPyhkPW51bGwsYy5jbGVhcigpKTohZnVuY3Rpb24oKXt2YXIgZT17fTthLmVhY2goZnVuY3Rpb24oKXtiLm1hcFt0aGlzLnZhbHVlXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2VbYV09ITB9KX0pO3ZhciBmPU9iamVjdC5rZXlzKGUpO2Yuc29ydCgpLGQ9ZixjLnNldChmKX0oKX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7Yy5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtkJiZjLnNldChkKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sODpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXtpZihhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7dmFyIGI9e307aWYobnVsbCE9YSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmKGJbY109YVtjXSk7cmV0dXJuIGIuZGVmYXVsdD1hLGJ9dmFyIGQ9YSgiLi9pbnB1dCIpLGU9YyhkKSxmPWEoIi4vdXRpbCIpLGc9YyhmKSxoPWEoIi4vZmlsdGVyIiksaT1iLmpRdWVyeTtlLnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zZWxlY3QiLGZhY3Rvcnk6ZnVuY3Rpb24oYSxiKXt2YXIgYz1be3ZhbHVlOiIiLGxhYmVsOiIoQWxsKSJ9XSxkPWcuZGF0YWZyYW1lVG9EMyhiLml0ZW1zKSxlPXtvcHRpb25zOmMuY29uY2F0KGQpLHZhbHVlRmllbGQ6InZhbHVlIixsYWJlbEZpZWxkOiJsYWJlbCIsc2VhcmNoRmllbGQ6ImxhYmVsIn0sZj1pKGEpLmZpbmQoInNlbGVjdCIpWzBdLGo9aShmKS5zZWxlY3RpemUoZSlbMF0uc2VsZWN0aXplLGs9bmV3IGguRmlsdGVySGFuZGxlKGIuZ3JvdXApLGw9dm9pZCAwO3JldHVybiBqLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7MD09PWouaXRlbXMubGVuZ3RoPyhsPW51bGwsay5jbGVhcigpKTohZnVuY3Rpb24oKXt2YXIgYT17fTtqLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oYyl7Yi5tYXBbY10uZm9yRWFjaChmdW5jdGlvbihiKXthW2JdPSEwfSl9KTt2YXIgYz1PYmplY3Qua2V5cyhhKTtjLnNvcnQoKSxsPWMsay5zZXQoYyl9KCl9KSx7c3VzcGVuZDpmdW5jdGlvbigpe2suY2xlYXIoKX0scmVzdW1lOmZ1bmN0aW9uKCl7bCYmay5zZXQobCl9fX19KX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2ZpbHRlciI6MiwiLi9pbnB1dCI6NiwiLi91dGlsIjoxMX1dLDk6W2Z1bmN0aW9uKGEsYixjKXsoZnVuY3Rpb24oYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSl7aWYoYSYmYS5fX2VzTW9kdWxlKXJldHVybiBhO3ZhciBiPXt9O2lmKG51bGwhPWEpZm9yKHZhciBjIGluIGEpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYykmJihiW2NdPWFbY10pO3JldHVybiBiLmRlZmF1bHQ9YSxifWZ1bmN0aW9uIGQoYSxiKXtmb3IodmFyIGM9YS50b1N0cmluZygpO2MubGVuZ3RoPGI7KWM9IjAiK2M7cmV0dXJuIGN9ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSBpbnN0YW5jZW9mIERhdGU/YS5nZXRVVENGdWxsWWVhcigpKyItIitkKGEuZ2V0VVRDTW9udGgoKSsxLDIpKyItIitkKGEuZ2V0VVRDRGF0ZSgpLDIpOm51bGx9dmFyIGY9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7dmFyIGM9W10sZD0hMCxlPSExLGY9dm9pZCAwO3RyeXtmb3IodmFyIGcsaD1hW1N5bWJvbC5pdGVyYXRvcl0oKTshKGQ9KGc9aC5uZXh0KCkpLmRvbmUpJiYoYy5wdXNoKGcudmFsdWUpLCFifHxjLmxlbmd0aCE9PWIpO2Q9ITApO31jYXRjaChhKXtlPSEwLGY9YX1maW5hbGx5e3RyeXshZCYmaC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihlKXRocm93IGZ9fXJldHVybiBjfXJldHVybiBmdW5jdGlvbihiLGMpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGI7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChiKSlyZXR1cm4gYShiLGMpO3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX19KCksZz1hKCIuL2lucHV0IiksaD1jKGcpLGk9YSgiLi9maWx0ZXIiKSxqPWIualF1ZXJ5LGs9Yi5zdHJmdGltZTtoLnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zbGlkZXIiLGZhY3Rvcnk6ZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKCl7dmFyIGE9aC5kYXRhKCJpb25SYW5nZVNsaWRlciIpLnJlc3VsdCxiPXZvaWQgMCxjPWguZGF0YSgiZGF0YS10eXBlIik7cmV0dXJuIGI9ImRhdGUiPT09Yz9mdW5jdGlvbihhKXtyZXR1cm4gZShuZXcgRGF0ZSgrYSkpfToiZGF0ZXRpbWUiPT09Yz9mdW5jdGlvbihhKXtyZXR1cm4rYS8xZTN9OmZ1bmN0aW9uKGEpe3JldHVybithfSwiZG91YmxlIj09PWguZGF0YSgiaW9uUmFuZ2VTbGlkZXIiKS5vcHRpb25zLnR5cGU/W2IoYS5mcm9tKSxiKGEudG8pXTpiKGEuZnJvbSl9dmFyIGQ9bmV3IGkuRmlsdGVySGFuZGxlKGIuZ3JvdXApLGc9e30saD1qKGEpLmZpbmQoImlucHV0IiksbD1oLmRhdGEoImRhdGEtdHlwZSIpLG09aC5kYXRhKCJ0aW1lLWZvcm1hdCIpLG49dm9pZCAwO2lmKCJkYXRlIj09PWwpbj1rLnV0YygpLGcucHJldHRpZnk9ZnVuY3Rpb24oYSl7cmV0dXJuIG4obSxuZXcgRGF0ZShhKSl9O2Vsc2UgaWYoImRhdGV0aW1lIj09PWwpe3ZhciBvPWguZGF0YSgidGltZXpvbmUiKTtuPW8/ay50aW1lem9uZShvKTprLGcucHJldHRpZnk9ZnVuY3Rpb24oYSl7cmV0dXJuIG4obSxuZXcgRGF0ZShhKSl9fWguaW9uUmFuZ2VTbGlkZXIoZyk7dmFyIHA9bnVsbDtyZXR1cm4gaC5vbigiY2hhbmdlLmNyb3NzdGFsa1NsaWRlcklucHV0IixmdW5jdGlvbihhKXtpZighaC5kYXRhKCJ1cGRhdGluZyIpJiYhaC5kYXRhKCJhbmltYXRpbmciKSl7Zm9yKHZhciBlPWMoKSxnPWYoZSwyKSxpPWdbMF0saj1nWzFdLGs9W10sbD0wO2w8Yi52YWx1ZXMubGVuZ3RoO2wrKyl7dmFyIG09Yi52YWx1ZXNbbF07bT49aSYmbTw9aiYmay5wdXNoKGIua2V5c1tsXSl9ay5zb3J0KCksZC5zZXQoaykscD1rfX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7ZC5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtwJiZkLnNldChwKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sMTA6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtpZihhJiZhLl9fZXNNb2R1bGUpcmV0dXJuIGE7dmFyIGI9e307aWYobnVsbCE9YSlmb3IodmFyIGMgaW4gYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSxjKSYmKGJbY109YVtjXSk7cmV0dXJuIGIuZGVmYXVsdD1hLGJ9ZnVuY3Rpb24gZShhKXtyZXR1cm4gYSYmYS5fX2VzTW9kdWxlP2E6e2RlZmF1bHQ6YX19ZnVuY3Rpb24gZihhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxjLlNlbGVjdGlvbkhhbmRsZT12b2lkIDA7dmFyIGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsYil7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDtjKyspe3ZhciBkPWJbY107ZC5lbnVtZXJhYmxlPWQuZW51bWVyYWJsZXx8ITEsZC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGQmJihkLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYSxkLmtleSxkKX19cmV0dXJuIGZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gYyYmYShiLnByb3RvdHlwZSxjKSxkJiZhKGIsZCksYn19KCksaD1hKCIuL2V2ZW50cyIpLGk9ZShoKSxqPWEoIi4vZ3JvdXAiKSxrPWUoaiksbD1hKCIuL3V0aWwiKSxtPWQobCk7Yy5TZWxlY3Rpb25IYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7dmFyIGI9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsYz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtmKHRoaXMsYSksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IG0uU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX3Zhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPW0uZXh0ZW5kKHtzZW5kZXI6dGhpc30sYyksdGhpcy5zZXRHcm91cChiKX1yZXR1cm4gZyhhLFt7a2V5OiJzZXRHcm91cCIsdmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZih0aGlzLl9ncm91cCE9PWEmJih0aGlzLl9ncm91cHx8YSkmJih0aGlzLl92YXImJih0aGlzLl92YXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLl92YXI9bnVsbCx0aGlzLl92YXJPbkNoYW5nZVN1Yj1udWxsKSx0aGlzLl9ncm91cD1hLGEpKXt0aGlzLl92YXI9KDAsay5kZWZhdWx0KShhKS52YXIoInNlbGVjdGlvbiIpO3ZhciBjPXRoaXMuX3Zhci5vbigiY2hhbmdlIixmdW5jdGlvbihhKXtiLl9ldmVudFJlbGF5LnRyaWdnZXIoImNoYW5nZSIsYSxiKX0pO3RoaXMuX3Zhck9uQ2hhbmdlU3ViPWN9fX0se2tleToiX21lcmdlRXh0cmFJbmZvIix2YWx1ZTpmdW5jdGlvbihhKXtyZXR1cm4gbS5leHRlbmQoe30sdGhpcy5fZXh0cmFJbmZvP3RoaXMuX2V4dHJhSW5mbzpudWxsLGE/YTpudWxsKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oYSxiKXt0aGlzLl92YXImJnRoaXMuX3Zhci5zZXQoYSx0aGlzLl9tZXJnZUV4dHJhSW5mbyhiKSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oYSl7dGhpcy5fdmFyJiZ0aGlzLnNldCh2b2lkIDAsdGhpcy5fbWVyZ2VFeHRyYUluZm8oYSkpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub24oYSxiKX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vZmYoYSxiKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5zZXRHcm91cChudWxsKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyP3RoaXMuX3Zhci5nZXQoKTpudWxsfX1dKSxhfSgpfSx7Ii4vZXZlbnRzIjoxLCIuL2dyb3VwIjo0LCIuL3V0aWwiOjExfV0sMTE6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGUoYSl7Zm9yKHZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1BcnJheShiPjE/Yi0xOjApLGQ9MTtkPGI7ZCsrKWNbZC0xXT1hcmd1bWVudHNbZF07Zm9yKHZhciBlPTA7ZTxjLmxlbmd0aDtlKyspe3ZhciBmPWNbZV07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBmJiZudWxsIT09Zilmb3IodmFyIGcgaW4gZilmLmhhc093blByb3BlcnR5KGcpJiYoYVtnXT1mW2ddKX1yZXR1cm4gYX1mdW5jdGlvbiBmKGEpe2Zvcih2YXIgYj0xO2I8YS5sZW5ndGg7YisrKWlmKGFbYl08PWFbYi0xXSl0aHJvdyBuZXcgRXJyb3IoIkxpc3QgaXMgbm90IHNvcnRlZCBvciBjb250YWlucyBkdXBsaWNhdGUiKX1mdW5jdGlvbiBnKGEsYil7dmFyIGM9MCxkPTA7YXx8KGE9W10pLGJ8fChiPVtdKTt2YXIgZT1bXSxnPVtdO2ZvcihmKGEpLGYoYik7YzxhLmxlbmd0aCYmZDxiLmxlbmd0aDspYVtjXT09PWJbZF0/KGMrKyxkKyspOmFbY108YltkXT9lLnB1c2goYVtjKytdKTpnLnB1c2goYltkKytdKTtyZXR1cm4gYzxhLmxlbmd0aCYmKGU9ZS5jb25jYXQoYS5zbGljZShjKSkpLGQ8Yi5sZW5ndGgmJihnPWcuY29uY2F0KGIuc2xpY2UoZCkpKSx7cmVtb3ZlZDplLGFkZGVkOmd9fWZ1bmN0aW9uIGgoYSl7dmFyIGI9W10sYz12b2lkIDA7Zm9yKHZhciBkIGluIGEpe2lmKGEuaGFzT3duUHJvcGVydHkoZCkmJmIucHVzaChkKSwib2JqZWN0IiE9PWooYVtkXSl8fCJ1bmRlZmluZWQiPT10eXBlb2YgYVtkXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjJiZjIT09YVtkXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpO2M9YVtkXS5sZW5ndGh9Zm9yKHZhciBlPVtdLGY9dm9pZCAwLGc9MDtnPGM7ZysrKXtmPXt9O2Zvcih2YXIgaD0wO2g8Yi5sZW5ndGg7aCsrKWZbYltoXV09YVtiW2hdXVtnXTtlLnB1c2goZil9cmV0dXJuIGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iW2NdO2QuZW51bWVyYWJsZT1kLmVudW1lcmFibGV8fCExLGQuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBkJiYoZC53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsZC5rZXksZCl9fXJldHVybiBmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGMmJmEoYi5wcm90b3R5cGUsYyksZCYmYShiLGQpLGJ9fSgpLGo9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhfTpmdW5jdGlvbihhKXtyZXR1cm4gYSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmYS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmYSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGF9O2MuZXh0ZW5kPWUsYy5jaGVja1NvcnRlZD1mLGMuZGlmZlNvcnRlZExpc3RzPWcsYy5kYXRhZnJhbWVUb0QzPWg7Yy5TdWJzY3JpcHRpb25UcmFja2VyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShiKXtkKHRoaXMsYSksdGhpcy5fZW1pdHRlcj1iLHRoaXMuX3N1YnM9e319cmV0dXJuIGkoYSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fZW1pdHRlci5vbihhLGIpO3JldHVybiB0aGlzLl9zdWJzW2NdPWEsY319LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9lbWl0dGVyLm9mZihhLGIpO3JldHVybiBjJiZkZWxldGUgdGhpcy5fc3Vic1tjXSxjfX0se2tleToicmVtb3ZlQWxsTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLl9zdWJzO3RoaXMuX3N1YnM9e30sT2JqZWN0LmtleXMoYikuZm9yRWFjaChmdW5jdGlvbihjKXthLl9lbWl0dGVyLm9mZihiW2NdLGMpfSl9fV0pLGF9KCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxiLGMpeyhmdW5jdGlvbihiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhKXtyZXR1cm4gYSYmYS5fX2VzTW9kdWxlP2E6e2RlZmF1bHQ6YX19ZnVuY3Rpb24gZShhLGIpe2lmKCEoYSBpbnN0YW5jZW9mIGIpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgZj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihhKXtyZXR1cm4gdHlwZW9mIGF9OmZ1bmN0aW9uKGEpe3JldHVybiBhJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZhLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZhIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgYX0sZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoYSxiKXtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9YltjXTtkLmVudW1lcmFibGU9ZC5lbnVtZXJhYmxlfHwhMSxkLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gZCYmKGQud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLGQua2V5LGQpfX1yZXR1cm4gZnVuY3Rpb24oYixjLGQpe3JldHVybiBjJiZhKGIucHJvdG90eXBlLGMpLGQmJmEoYixkKSxifX0oKSxoPWEoIi4vZXZlbnRzIiksaT1kKGgpLGo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyxkKXtlKHRoaXMsYSksdGhpcy5fZ3JvdXA9Yix0aGlzLl9uYW1lPWMsdGhpcy5fdmFsdWU9ZCx0aGlzLl9ldmVudHM9bmV3IGkuZGVmYXVsdH1yZXR1cm4gZyhhLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihhLGMpe2lmKHRoaXMuX3ZhbHVlIT09YSl7dmFyIGQ9dGhpcy5fdmFsdWU7dGhpcy5fdmFsdWU9YTt2YXIgZT17fTtpZihjJiYib2JqZWN0Ij09PSgidW5kZWZpbmVkIj09dHlwZW9mIGM/InVuZGVmaW5lZCI6ZihjKSkpZm9yKHZhciBnIGluIGMpYy5oYXNPd25Qcm9wZXJ0eShnKSYmKGVbZ109Y1tnXSk7ZS5vbGRWYWx1ZT1kLGUudmFsdWU9YSx0aGlzLl9ldmVudHMudHJpZ2dlcigiY2hhbmdlIixlLHRoaXMpLGIuU2hpbnkmJmIuU2hpbnkub25JbnB1dENoYW5nZSYmYi5TaGlueS5vbklucHV0Q2hhbmdlKCIuY2xpZW50VmFsdWUtIisobnVsbCE9PXRoaXMuX2dyb3VwLm5hbWU/dGhpcy5fZ3JvdXAubmFtZSsiLSI6IiIpK3RoaXMuX25hbWUsInVuZGVmaW5lZCI9PXR5cGVvZiBhP251bGw6YSl9fX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuX2V2ZW50cy5vbihhLGIpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLl9ldmVudHMub2ZmKGEsYil9fV0pLGF9KCk7Yy5kZWZhdWx0PWp9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9ldmVudHMiOjF9XX0se30sWzVdKTsKLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3Jvc3N0YWxrLm1pbi5qcy5tYXA="></script>
<link href="data:text/css;charset=utf-8,%0Aslide%3Anot%28%2Ecurrent%29%20%2Eplotly%2Ehtml%2Dwidget%7B%0Adisplay%3A%20none%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/x-javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjI5LjIKKiBDb3B5cmlnaHQgMjAxMi0yMDE3LCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNle3ZhciBlO2U9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLGUuUGxvdGx5PXQoKX19KGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIGZ1bmN0aW9uIHQoZSxyLG4pe2Z1bmN0aW9uIGkobyxzKXtpZighcltvXSl7aWYoIWVbb10pe3ZhciBsPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFzJiZsKXJldHVybiBsKG8sITApO2lmKGEpcmV0dXJuIGEobywhMCk7dmFyIHU9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbysiJyIpO3Rocm93IHUuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsdX12YXIgYz1yW29dPXtleHBvcnRzOnt9fTtlW29dWzBdLmNhbGwoYy5leHBvcnRzLGZ1bmN0aW9uKHQpe3ZhciByPWVbb11bMV1bdF07cmV0dXJuIGkocnx8dCl9LGMsYy5leHBvcnRzLHQsZSxyLG4pfXJldHVybiByW29dLmV4cG9ydHN9Zm9yKHZhciBhPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLG89MDtvPG4ubGVuZ3RoO28rKylpKG5bb10pO3JldHVybiBpfSh7MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zcmMvbGliIiksaT17IlgsWCBkaXYiOiJmb250LWZhbWlseTonT3BlbiBTYW5zJywgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7bWFyZ2luOjA7cGFkZGluZzowOyIsIlggaW5wdXQsWCBidXR0b24iOiJmb250LWZhbWlseTonT3BlbiBTYW5zJywgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7IiwiWCBpbnB1dDpmb2N1cyxYIGJ1dHRvbjpmb2N1cyI6Im91dGxpbmU6bm9uZTsiLCJYIGEiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTsiLCJYIGE6aG92ZXIiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTsiLCJYIC5jcmlzcCI6InNoYXBlLXJlbmRlcmluZzpjcmlzcEVkZ2VzOyIsIlggLnVzZXItc2VsZWN0LW5vbmUiOiItd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy1vLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTsiLCJYIHN2ZyI6Im92ZXJmbG93OmhpZGRlbjsiLCJYIHN2ZyBhIjoiZmlsbDojNDQ3YWRiOyIsIlggc3ZnIGE6aG92ZXIiOiJmaWxsOiMzYzZkYzU7IiwiWCAubWFpbi1zdmciOiJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTsiLCJYIC5tYWluLXN2ZyAuZHJhZ2xheWVyIjoicG9pbnRlci1ldmVudHM6YWxsOyIsIlggLmN1cnNvci1kZWZhdWx0IjoiY3Vyc29yOmRlZmF1bHQ7IiwiWCAuY3Vyc29yLXBvaW50ZXIiOiJjdXJzb3I6cG9pbnRlcjsiLCJYIC5jdXJzb3ItY3Jvc3NoYWlyIjoiY3Vyc29yOmNyb3NzaGFpcjsiLCJYIC5jdXJzb3ItbW92ZSI6ImN1cnNvcjptb3ZlOyIsIlggLmN1cnNvci1jb2wtcmVzaXplIjoiY3Vyc29yOmNvbC1yZXNpemU7IiwiWCAuY3Vyc29yLXJvdy1yZXNpemUiOiJjdXJzb3I6cm93LXJlc2l6ZTsiLCJYIC5jdXJzb3ItbnMtcmVzaXplIjoiY3Vyc29yOm5zLXJlc2l6ZTsiLCJYIC5jdXJzb3ItZXctcmVzaXplIjoiY3Vyc29yOmV3LXJlc2l6ZTsiLCJYIC5jdXJzb3Itc3ctcmVzaXplIjoiY3Vyc29yOnN3LXJlc2l6ZTsiLCJYIC5jdXJzb3Itcy1yZXNpemUiOiJjdXJzb3I6cy1yZXNpemU7IiwiWCAuY3Vyc29yLXNlLXJlc2l6ZSI6ImN1cnNvcjpzZS1yZXNpemU7IiwiWCAuY3Vyc29yLXctcmVzaXplIjoiY3Vyc29yOnctcmVzaXplOyIsIlggLmN1cnNvci1lLXJlc2l6ZSI6ImN1cnNvcjplLXJlc2l6ZTsiLCJYIC5jdXJzb3ItbnctcmVzaXplIjoiY3Vyc29yOm53LXJlc2l6ZTsiLCJYIC5jdXJzb3Itbi1yZXNpemUiOiJjdXJzb3I6bi1yZXNpemU7IiwiWCAuY3Vyc29yLW5lLXJlc2l6ZSI6ImN1cnNvcjpuZS1yZXNpemU7IiwiWCAubW9kZWJhciI6InBvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7cmlnaHQ6MnB4O3otaW5kZXg6MTAwMTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KTsiLCJYIC5tb2RlYmFyLS1ob3ZlciI6Im9wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOy1vLXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7dHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczsiLCJYOmhvdmVyIC5tb2RlYmFyLS1ob3ZlciI6Im9wYWNpdHk6MTsiLCJYIC5tb2RlYmFyLWdyb3VwIjoiZmxvYXQ6bGVmdDtkaXNwbGF5OmlubGluZS1ibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luLWxlZnQ6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7IiwiWCAubW9kZWJhci1ncm91cDpmaXJzdC1jaGlsZCI6Im1hcmdpbi1sZWZ0OjBweDsiLCJYIC5tb2RlYmFyLWJ0biI6InBvc2l0aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6M3B4IDRweDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDpub3JtYWw7Ym94LXNpemluZzpib3JkZXItYm94OyIsIlggLm1vZGViYXItYnRuIHN2ZyI6InBvc2l0aW9uOnJlbGF0aXZlO3RvcDoycHg7IiwiWCAubW9kZWJhci1idG4gcGF0aCI6ImZpbGw6cmdiYSgwLDMxLDk1LDAuMyk7IiwiWCAubW9kZWJhci1idG4uYWN0aXZlIHBhdGgsWCAubW9kZWJhci1idG46aG92ZXIgcGF0aCI6ImZpbGw6cmdiYSgwLDIyLDcyLDAuNSk7IiwiWCAubW9kZWJhci1idG4ubW9kZWJhci1idG4tLWxvZ28iOiJwYWRkaW5nOjNweCAxcHg7IiwiWCAubW9kZWJhci1idG4ubW9kZWJhci1idG4tLWxvZ28gcGF0aCI6ImZpbGw6IzQ0N2FkYiAhaW1wb3J0YW50OyIsIlggW2RhdGEtdGl0bGVdOmJlZm9yZSxYIFtkYXRhLXRpdGxlXTphZnRlciI6InBvc2l0aW9uOmFic29sdXRlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOy1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTtkaXNwbGF5Om5vbmU7b3BhY2l0eTowO3otaW5kZXg6MTAwMTtwb2ludGVyLWV2ZW50czpub25lO3RvcDoxMTAlO3JpZ2h0OjUwJTsiLCJYIFtkYXRhLXRpdGxlXTpob3ZlcjpiZWZvcmUsWCBbZGF0YS10aXRsZV06aG92ZXI6YWZ0ZXIiOiJkaXNwbGF5OmJsb2NrO29wYWNpdHk6MTsiLCJYIFtkYXRhLXRpdGxlXTpiZWZvcmUiOiJjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjZweCBzb2xpZCB0cmFuc3BhcmVudDt6LWluZGV4OjEwMDI7bWFyZ2luLXRvcDotMTJweDtib3JkZXItYm90dG9tLWNvbG9yOiM2OTczOGE7bWFyZ2luLXJpZ2h0Oi02cHg7IiwiWCBbZGF0YS10aXRsZV06YWZ0ZXIiOiJjb250ZW50OmF0dHIoZGF0YS10aXRsZSk7YmFja2dyb3VuZDojNjk3MzhhO2NvbG9yOndoaXRlO3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MTJweDt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLXJpZ2h0Oi0xOHB4O2JvcmRlci1yYWRpdXM6MnB4OyIsIlggLnNlbGVjdC1vdXRsaW5lIjoiZmlsbDpub25lO3N0cm9rZS13aWR0aDoxO3NoYXBlLXJlbmRlcmluZzpjcmlzcEVkZ2VzOyIsIlggLnNlbGVjdC1vdXRsaW5lLTEiOiJzdHJva2U6d2hpdGU7IiwiWCAuc2VsZWN0LW91dGxpbmUtMiI6InN0cm9rZTpibGFjaztzdHJva2UtZGFzaGFycmF5OjJweCAycHg7IixZOiJmb250LWZhbWlseTonT3BlbiBTYW5zJztwb3NpdGlvbjpmaXhlZDt0b3A6NTBweDtyaWdodDoyMHB4O3otaW5kZXg6MTAwMDA7Zm9udC1zaXplOjEwcHQ7bWF4LXdpZHRoOjE4MHB4OyIsIlkgcCI6Im1hcmdpbjowOyIsIlkgLm5vdGlmaWVyLW5vdGUiOiJtaW4td2lkdGg6MTgwcHg7bWF4LXdpZHRoOjI1MHB4O2JvcmRlcjoxcHggc29saWQgI2ZmZjt6LWluZGV4OjMwMDA7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojOGM5N2FmO2JhY2tncm91bmQtY29sb3I6cmdiYSgxNDAsMTUxLDE3NSwwLjkpO2NvbG9yOiNmZmY7cGFkZGluZzoxMHB4OyIsIlkgLm5vdGlmaWVyLWNsb3NlIjoiY29sb3I6I2ZmZjtvcGFjaXR5OjAuODtmbG9hdDpyaWdodDtwYWRkaW5nOjAgNXB4O2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtmb250LXNpemU6MjBweDtmb250LXdlaWdodDpib2xkO2xpbmUtaGVpZ2h0OjIwcHg7IiwiWSAubm90aWZpZXItY2xvc2U6aG92ZXIiOiJjb2xvcjojNDQ0O3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyOyJ9O2Zvcih2YXIgYSBpbiBpKXt2YXIgbz1hLnJlcGxhY2UoL14sLywiICwiKS5yZXBsYWNlKC9YL2csIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IikucmVwbGFjZSgvWS9nLCIucGxvdGx5LW5vdGlmaWVyIik7bi5hZGRTdHlsZVJ1bGUobyxpW2FdKX19LHsiLi4vc3JjL2xpYiI6NzI0fV0sMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3VuZG86e3dpZHRoOjg1Ny4xLHBhdGg6Im04NTcgMzUwcTAtODctMzQtMTY2dC05MS0xMzctMTM3LTkyLTE2Ni0zNHEtOTYgMC0xODMgNDF0LTE0NyAxMTRxLTQgNi00IDEzdDUgMTFsNzYgNzdxNiA1IDE0IDUgOS0xIDEzLTcgNDEtNTMgMTAwLTgydDEyNi0yOXE1OCAwIDExMCAyM3Q5MiA2MSA2MSA5MSAyMiAxMTEtMjIgMTExLTYxIDkxLTkyIDYxLTExMCAyM3EtNTUgMC0xMDUtMjB0LTkwLTU3bDc3LTc3cTE3LTE2IDgtMzgtMTAtMjMtMzMtMjNoLTI1MHEtMTUgMC0yNSAxMXQtMTEgMjV2MjUwcTAgMjQgMjIgMzMgMjIgMTAgMzktOGw3Mi03MnE2MCA1NyAxMzcgODh0MTU5IDMxcTg3IDAgMTY2LTM0dDEzNy05MiA5MS0xMzcgMzQtMTY2eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGhvbWU6e3dpZHRoOjkyOC42LHBhdGg6Im03ODYgMjk2di0yNjdxMC0xNS0xMS0yNnQtMjUtMTBoLTIxNHYyMTRoLTE0M3YtMjE0aC0yMTRxLTE1IDAtMjUgMTB0LTExIDI2djI2N3EwIDEgMCAydDAgMmwzMjEgMjY0IDMyMS0yNjRxMS0xIDEtNHogbTEyNCAzOWwtMzQtNDFxLTUtNS0xMi02aC0ycS03IDAtMTIgM2wtMzg2IDMyMi0zODYtMzIycS03LTQtMTMtNC03IDItMTIgN2wtMzUgNDFxLTQgNS0zIDEzdDYgMTJsNDAxIDMzNHExOCAxNSA0MiAxNXQ0My0xNWwxMzYtMTE0djEwOXEwIDggNSAxM3QxMyA1aDEwN3E4IDAgMTMtNXQ1LTEzdi0yMjdsMTIyLTEwMnE1LTUgNi0xMnQtNC0xM3oiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSwiY2FtZXJhLXJldHJvIjp7d2lkdGg6MWUzLHBhdGg6Im01MTggMzg2cTAgOC01IDEzdC0xMyA1cS0zNyAwLTYzLTI3dC0yNi02M3EwLTggNS0xM3QxMy01IDEyIDUgNSAxM3EwIDIzIDE2IDM4dDM4IDE2cTggMCAxMyA1dDUgMTN6IG0xMjUtNzNxMC01OS00Mi0xMDF0LTEwMS00Mi0xMDEgNDItNDIgMTAxIDQyIDEwMSAxMDEgNDIgMTAxLTQyIDQyLTEwMXogbS01NzItMzIwaDg1OHY3MWgtODU4di03MXogbTY0MyAzMjBxMCA4OS02MiAxNTJ0LTE1MiA2Mi0xNTEtNjItNjMtMTUyIDYzLTE1MSAxNTEtNjMgMTUyIDYzIDYyIDE1MXogbS01NzEgMzU4aDIxNHY3MmgtMjE0di03MnogbS03Mi0xMDdoODU4djE0M2gtNDYybC0zNi03MWgtMzYwdi03MnogbTkyOSAxNDN2LTcxNHEwLTMwLTIxLTUxdC01MC0yMWgtODU4cS0yOSAwLTUwIDIxdC0yMSA1MXY3MTRxMCAzMCAyMSA1MXQ1MCAyMWg4NThxMjkgMCA1MC0yMXQyMS01MXoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSx6b29tYm94Ont3aWR0aDoxZTMscGF0aDoibTEwMDAtMjVsLTI1MCAyNTFjNDAgNjMgNjMgMTM4IDYzIDIxOCAwIDIyNC0xODIgNDA2LTQwNyA0MDYtMjI0IDAtNDA2LTE4Mi00MDYtNDA2czE4My00MDYgNDA3LTQwNmM4MCAwIDE1NSAyMiAyMTggNjJsMjUwLTI1MCAxMjUgMTI1eiBtLTgxMiAyNTBsMCA0MzggNDM3IDAgMC00MzgtNDM3IDB6IG02MiAzNzVsMzEzIDAgMC0zMTItMzEzIDAgMCAzMTJ6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0scGFuOnt3aWR0aDoxZTMscGF0aDoibTEwMDAgMzUwbC0xODcgMTg4IDAtMTI1LTI1MCAwIDAgMjUwIDEyNSAwLTE4OCAxODctMTg3LTE4NyAxMjUgMCAwLTI1MC0yNTAgMCAwIDEyNS0xODgtMTg4IDE4Ni0xODcgMCAxMjUgMjUyIDAgMC0yNTAtMTI1IDAgMTg3LTE4OCAxODggMTg4LTEyNSAwIDAgMjUwIDI1MCAwIDAtMTI2IDE4NyAxODh6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sem9vbV9wbHVzOnt3aWR0aDoxZTMscGF0aDoibTEgNzg3bDAtODc1IDg3NSAwIDAgODc1LTg3NSAweiBtNjg3LTUwMGwtMTg3IDAgMC0xODctMTI1IDAgMCAxODctMTg4IDAgMCAxMjUgMTg4IDAgMCAxODcgMTI1IDAgMC0xODcgMTg3IDAgMC0xMjV6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sem9vbV9taW51czp7d2lkdGg6MWUzLHBhdGg6Im0wIDc4OGwwLTg3NiA4NzUgMCAwIDg3Ni04NzUgMHogbTY4OC01MDBsLTUwMCAwIDAgMTI1IDUwMCAwIDAtMTI1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGF1dG9zY2FsZTp7d2lkdGg6MWUzLHBhdGg6Im0yNTAgODUwbC0xODcgMC02MyAwIDAtNjIgMC0xODggNjMgMCAwIDE4OCAxODcgMCAwIDYyeiBtNjg4IDBsLTE4OCAwIDAtNjIgMTg4IDAgMC0xODggNjIgMCAwIDE4OCAwIDYyLTYyIDB6IG0tODc1LTkzOGwwIDE4OC02MyAwIDAtMTg4IDAtNjIgNjMgMCAxODcgMCAwIDYyLTE4NyAweiBtODc1IDE4OGwwLTE4OC0xODggMCAwLTYyIDE4OCAwIDYyIDAgMCA2MiAwIDE4OC02MiAweiBtLTEyNSAxODhsLTEgMC05My05NC0xNTYgMTU2IDE1NiAxNTYgOTItOTMgMiAwIDAgMjUwLTI1MCAwIDAtMiA5My05Mi0xNTYtMTU2LTE1NiAxNTYgOTQgOTIgMCAyLTI1MCAwIDAtMjUwIDAgMCA5MyA5MyAxNTctMTU2LTE1Ny0xNTYtOTMgOTQgMCAwIDAtMjUwIDI1MCAwIDAgMC05NCA5MyAxNTYgMTU3IDE1Ni0xNTctOTMtOTMgMCAwIDI1MCAwIDAgMjUweiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LHRvb2x0aXBfYmFzaWM6e3dpZHRoOjE1MDAscGF0aDoibTM3NSA3MjVsMCAwLTM3NS0zNzUgMzc1LTM3NCAwLTEgMTEyNSAwIDAgNzUwLTExMjUgMHoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSx0b29sdGlwX2NvbXBhcmU6e3dpZHRoOjExMjUscGF0aDoibTE4NyA3ODZsMCAyLTE4Ny0xODggMTg4LTE4NyAwIDAgOTM3IDAgMCAzNzMtOTM4IDB6IG0wLTQ5OWwwIDEtMTg3LTE4OCAxODgtMTg4IDAgMCA5MzcgMCAwIDM3Ni05MzgtMXoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSxwbG90bHlsb2dvOnt3aWR0aDoxNTQyLHBhdGg6Im0wLTEwaDE4MnYtMTQwaC0xODJ2MTQweiBtMjI4IDE0NmgxODN2LTI4NmgtMTgzdjI4NnogbTIyNSA3MTRoMTgydi0xMDAwaC0xODJ2MTAwMHogbTIyNS0yODVoMTgydi03MTVoLTE4MnY3MTV6IG0yMjUgMTQyaDE4M3YtODU3aC0xODN2ODU3eiBtMjMxLTQyOGgxODJ2LTQyOWgtMTgydjQyOXogbTIyNS0yOTFoMTgzdi0xMzhoLTE4M3YxMzh6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sInotYXhpcyI6e3dpZHRoOjFlMyxwYXRoOiJtODMzIDVsLTE3IDEwOHY0MWwtMTMwLTY1IDEzMC02NmMwIDAgMCAzOCAwIDM5IDAtMSAzNi0xNCAzOS0yNSA0LTE1LTYtMjItMTYtMzAtMTUtMTItMzktMTYtNTYtMjAtOTAtMjItMTg3LTIzLTI3OS0yMy0yNjEgMC0zNDEgMzQtMzUzIDU5IDMgNjAgMjI4IDExMCAyMjggMTEwLTE0MC04LTM1MS0zNS0zNTEtMTE2IDAtMTIwIDI5My0xNDIgNDc0LTE0MiAxNTUgMCA0NzcgMjIgNDc3IDE0MiAwIDUwLTc0IDc5LTE2MyA5NnogbS0zNzQgOTRjLTU4LTUtOTktMjEtOTktNDAgMC0yNCA2NS00MyAxNDQtNDMgNzkgMCAxNDMgMTkgMTQzIDQzIDAgMTktNDIgMzQtOTggNDB2MjE2aDg3bC0xMzIgMTM1LTEzMy0xMzVoODh2LTIxNnogbTE2NyA1MTVoLTEzNnYxYzE2IDE2IDMxIDM0IDQ2IDUybDg0IDEwOXY1NGgtMjMwdi03MWgxMjR2LTFjLTE2LTE3LTI4LTMyLTQ0LTUxbC04OS0xMTR2LTUxaDI0NXY3MnoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSwiM2Rfcm90YXRlIjp7d2lkdGg6MWUzLHBhdGg6Im05MjIgNjYwYy01IDQtOSA3LTE0IDExLTM1OSAyNjMtNTgwLTMxLTU4MC0zMWwtMTAyIDI4IDU4LTQwMGMwIDEgMSAxIDIgMiAxMTggMTA4IDM1MSAyNDkgMzUxIDI0OXMtNjIgMjctMTAwIDQyYzg4IDgzIDIyMiAxODMgMzQ3IDEyMiAxNi04IDMwLTE3IDQ0LTI3LTIgMS00IDItNiA0eiBtMzYtMzI5YzAgMCA2NCAyMjktODggMjk2LTYyIDI3LTEyNCAxNC0xNzUtMTEgMTU3LTc4IDIyNS0yMDggMjQ5LTI2NiA4LTE5IDExLTMxIDExLTMxIDIgNSA2IDE1IDExIDMyLTUtMTMtOC0yMC04LTIweiBtLTc3NS0yMzljNzAtMzEgMTE3LTUwIDE5OC0zMi0xMjEgODAtMTk5IDM0Ni0xOTkgMzQ2bC05Ni0xNS01OC0xMmMwIDAgNTUtMjI2IDE1NS0yODd6IG02MDMgMTMzbC0zMTctMTM5YzAgMCA0LTQgMTktMTQgNy01IDI0LTE1IDI0LTE1cy0xNzctMTQ3LTM4OSA0YzIzNS0yODcgNTM2LTExMiA1MzYtMTEybDMxLTIyIDEwMCAyOTktNC0xeiBtLTI5OC0xNTNjNi00IDE0LTkgMjQtMTUgMCAwLTE3IDEwLTI0IDE1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGNhbWVyYTp7d2lkdGg6MWUzLHBhdGg6Im01MDAgNDUwYy04MyAwLTE1MC02Ny0xNTAtMTUwIDAtODMgNjctMTUwIDE1MC0xNTAgODMgMCAxNTAgNjcgMTUwIDE1MCAwIDgzLTY3IDE1MC0xNTAgMTUweiBtNDAwIDE1MGgtMTIwYy0xNiAwLTM0IDEzLTM5IDI5bC0zMSA5M2MtNiAxNS0yMyAyOC00MCAyOGgtMzQwYy0xNiAwLTM0LTEzLTM5LTI4bC0zMS05NGMtNi0xNS0yMy0yOC00MC0yOGgtMTIwYy01NSAwLTEwMC00NS0xMDAtMTAwdi00NTBjMC01NSA0NS0xMDAgMTAwLTEwMGg4MDBjNTUgMCAxMDAgNDUgMTAwIDEwMHY0NTBjMCA1NS00NSAxMDAtMTAwIDEwMHogbS00MDAtNTUwYy0xMzggMC0yNTAgMTEyLTI1MCAyNTAgMCAxMzggMTEyIDI1MCAyNTAgMjUwIDEzOCAwIDI1MC0xMTIgMjUwLTI1MCAwLTEzOC0xMTItMjUwLTI1MC0yNTB6IG0zNjUgMzgwYy0xOSAwLTM1IDE2LTM1IDM1IDAgMTkgMTYgMzUgMzUgMzUgMTkgMCAzNS0xNiAzNS0zNSAwLTE5LTE2LTM1LTM1LTM1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LG1vdmllOnt3aWR0aDoxZTMscGF0aDoibTkzOCA0MTNsLTE4OC0xMjVjMCAzNy0xNyA3MS00NCA5NCA2NCAzOCAxMDcgMTA3IDEwNyAxODcgMCAxMjEtOTggMjE5LTIxOSAyMTktMTIxIDAtMjE5LTk4LTIxOS0yMTkgMC02MSAyNS0xMTcgNjYtMTU2aC0xMTVjMzAgMzMgNDkgNzYgNDkgMTI1IDAgMTAzLTg0IDE4Ny0xODcgMTg3cy0xODgtODQtMTg4LTE4N2MwLTU3IDI2LTEwNyA2NS0xNDEtMzgtMjItNjUtNjItNjUtMTA5di0yNTBjMC03MCA1Ni0xMjYgMTI1LTEyNmg1MDBjNjkgMCAxMjUgNTYgMTI1IDEyNmwxODgtMTI2YzM0IDAgNjIgMjggNjIgNjN2Mzc1YzAgMzUtMjggNjMtNjIgNjN6IG0tNzUwIDBjLTY5IDAtMTI1IDU2LTEyNSAxMjVzNTYgMTI1IDEyNSAxMjUgMTI1LTU2IDEyNS0xMjUtNTYtMTI1LTEyNS0xMjV6IG00MDYtMWMtODcgMC0xNTcgNzAtMTU3IDE1NyAwIDg2IDcwIDE1NiAxNTcgMTU2czE1Ni03MCAxNTYtMTU2LTcwLTE1Ny0xNTYtMTU3eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LHF1ZXN0aW9uOnt3aWR0aDo4NTcuMSxwYXRoOiJtNTAwIDgydjEwN3EwIDgtNSAxM3QtMTMgNWgtMTA3cS04IDAtMTMtNXQtNS0xM3YtMTA3cTAtOCA1LTEzdDEzLTVoMTA3cTggMCAxMyA1dDUgMTN6IG0xNDMgMzc1cTAgNDktMzEgOTF0LTc3IDY1LTk1IDIzcS0xMzYgMC0yMDctMTE5LTktMTQgNC0yNGw3NC01NXE0LTQgMTAtNCA5IDAgMTQgNyAzMCAzOCA0OCA1MSAxOSAxNCA0OCAxNCAyNyAwIDQ4LTE1dDIxLTMzcTAtMjEtMTEtMzR0LTM4LTI1cS0zNS0xNi02NS00OHQtMjktNzB2LTIwcTAtOCA1LTEzdDEzLTVoMTA3cTggMCAxMyA1dDUgMTNxMCAxMCAxMiAyN3QzMCAyOHExOCAxMCAyOCAxNnQyNSAxOSAyNSAyNyAxNiAzNCA3IDQ1eiBtMjE0LTEwN3EwLTExNy01Ny0yMTV0LTE1Ni0xNTYtMjE1LTU4LTIxNiA1OC0xNTUgMTU2LTU4IDIxNSA1OCAyMTUgMTU1IDE1NiAyMTYgNTggMjE1LTU4IDE1Ni0xNTYgNTctMjE1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGRpc2s6e3dpZHRoOjg1Ny4xLHBhdGg6Im0yMTQtN2g0Mjl2MjE0aC00Mjl2LTIxNHogbTUwMCAwaDcydjUwMHEwIDgtNiAyMXQtMTEgMjBsLTE1NyAxNTZxLTUgNi0xOSAxMnQtMjIgNXYtMjMycTAtMjItMTUtMzh0LTM4LTE2aC0zMjJxLTIyIDAtMzcgMTZ0LTE2IDM4djIzMmgtNzJ2LTcxNGg3MnYyMzJxMCAyMiAxNiAzOHQzNyAxNmg0NjVxMjIgMCAzOC0xNnQxNS0zOHYtMjMyeiBtLTIxNCA1MTh2MTc4cTAgOC01IDEzdC0xMyA1aC0xMDdxLTcgMC0xMy01dC01LTEzdi0xNzhxMC04IDUtMTN0MTMtNWgxMDdxNyAwIDEzIDV0NSAxM3ogbTM1Ny0xOHYtNTE4cTAtMjItMTUtMzh0LTM4LTE2aC03NTBxLTIzIDAtMzggMTZ0LTE2IDM4djc1MHEwIDIyIDE2IDM4dDM4IDE2aDUxN3EyMyAwIDUwLTEydDQyLTI2bDE1Ni0xNTdxMTYtMTUgMjctNDJ0MTEtNDl6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sbGFzc286e3dpZHRoOjEwMzEscGF0aDoibTEwMTggNTM4Yy0zNiAyMDctMjkwIDMzNi01NjggMjg2LTI3Ny00OC00NzMtMjU2LTQzNi00NjMgMTAtNTcgMzYtMTA4IDc2LTE1MS0xMy02NiAxMS0xMzcgNjgtMTgzIDM0LTI4IDc1LTQxIDExNC00MmwtNTUtNzAgMCAwYy0yLTEtMy0yLTQtMy0xMC0xNC04LTM0IDUtNDUgMTQtMTEgMzQtOCA0NSA0IDEgMSAyIDMgMiA1bDAgMCAxMTMgMTQwYzE2IDExIDMxIDI0IDQ1IDQwIDQgMyA2IDcgOCAxMSA0OC0zIDEwMCAwIDE1MSA5IDI3OCA0OCA0NzMgMjU1IDQzNiA0NjJ6IG0tNjI0LTM3OWMtODAgMTQtMTQ5IDQ4LTE5NyA5NiA0MiA0MiAxMDkgNDcgMTU2IDkgMzMtMjYgNDctNjYgNDEtMTA1eiBtLTE4Ny03NGMtMTkgMTYtMzMgMzctMzkgNjAgNTAtMzIgMTA5LTU1IDE3NC02OC00Mi0yNS05NS0yNC0xMzUgOHogbTM2MCA3NWMtMzQtNy02OS05LTEwMi04IDggNjItMTYgMTI4LTY4IDE3MC03MyA1OS0xNzUgNTQtMjQ0LTUtOSAyMC0xNiA0MC0yMCA2MS0yOCAxNTkgMTIxIDMxNyAzMzMgMzU0czQwNy02MCA0MzQtMjE3YzI4LTE1OS0xMjEtMzE4LTMzMy0zNTV6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sc2VsZWN0Ym94Ont3aWR0aDoxZTMscGF0aDoibTAgODUwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg2IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODUgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtLTg1Ny0yODZsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG04NTcgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbS04NTctMjg1bDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtODU3IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0tODU3LTI4NmwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg1IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSxzcGlrZWxpbmU6e3dpZHRoOjFlMyxwYXRoOiJNNTEyIDQwOWMwLTU3LTQ2LTEwNC0xMDMtMTA0LTU3IDAtMTA0IDQ3LTEwNCAxMDQgMCA1NyA0NyAxMDMgMTA0IDEwMyA1NyAwIDEwMy00NiAxMDMtMTAzeiBtLTMyNy0zOWw5MiAwIDAgOTItOTIgMHogbS0xODUgMGw5MiAwIDAgOTItOTIgMHogbTM3MC0xODZsOTIgMCAwIDkzLTkyIDB6IG0wLTE4NGw5MiAwIDAgOTItOTIgMHoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfX19LHt9XSwzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2JhciIpfSx7Ii4uL3NyYy90cmFjZXMvYmFyIjo4NTZ9XSw0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2JveCIpfSx7Ii4uL3NyYy90cmFjZXMvYm94Ijo4Njh9XSw1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhcnMiKX0seyIuLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhcnMiOjYwMH1dLDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvY2FuZGxlc3RpY2siKX0seyIuLi9zcmMvdHJhY2VzL2NhbmRsZXN0aWNrIjo4NzZ9XSw3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NhcnBldCIpfSx7Ii4uL3NyYy90cmFjZXMvY2FycGV0Ijo4OTd9XSw4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiKX0seyIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiOjkxMn1dLDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvY29udG91ciIpfSx7Ii4uL3NyYy90cmFjZXMvY29udG91ciI6OTIzfV0sMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvY29udG91cmNhcnBldCIpfSx7Ii4uL3NyYy90cmFjZXMvY29udG91cmNhcnBldCI6OTM4fV0sMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy9jb3JlIil9LHsiLi4vc3JjL2NvcmUiOjcwN31dLDEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhbnNmb3Jtcy9maWx0ZXIiKX0seyIuLi9zcmMvdHJhbnNmb3Jtcy9maWx0ZXIiOjEwOTd9XSwxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYW5zZm9ybXMvZ3JvdXBieSIpfSx7Ii4uL3NyYy90cmFuc2Zvcm1zL2dyb3VwYnkiOjEwOTh9XSwxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oZWF0bWFwIil9LHsiLi4vc3JjL3RyYWNlcy9oZWF0bWFwIjo5NTF9XSwxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oZWF0bWFwZ2wiKX0seyIuLi9zcmMvdHJhY2VzL2hlYXRtYXBnbCI6OTYwfV0sMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0iOjk2OH1dLDE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbTJkIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZCI6OTczfV0sMTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmRjb250b3VyIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZGNvbnRvdXIiOjk3N31dLDE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29yZSIpO24ucmVnaXN0ZXIoW3QoIi4vYmFyIiksdCgiLi9ib3giKSx0KCIuL2hlYXRtYXAiKSx0KCIuL2hpc3RvZ3JhbSIpLHQoIi4vaGlzdG9ncmFtMmQiKSx0KCIuL2hpc3RvZ3JhbTJkY29udG91ciIpLHQoIi4vcGllIiksdCgiLi9jb250b3VyIiksdCgiLi9zY2F0dGVydGVybmFyeSIpLHQoIi4vc2Fua2V5IiksdCgiLi9zY2F0dGVyM2QiKSx0KCIuL3N1cmZhY2UiKSx0KCIuL21lc2gzZCIpLHQoIi4vc2NhdHRlcmdlbyIpLHQoIi4vY2hvcm9wbGV0aCIpLHQoIi4vc2NhdHRlcmdsIiksdCgiLi9wb2ludGNsb3VkIiksdCgiLi9oZWF0bWFwZ2wiKSx0KCIuL3BhcmNvb3JkcyIpLHQoIi4vc2NhdHRlcm1hcGJveCIpLHQoIi4vY2FycGV0IiksdCgiLi9zY2F0dGVyY2FycGV0IiksdCgiLi9jb250b3VyY2FycGV0IiksdCgiLi9vaGxjIiksdCgiLi9jYW5kbGVzdGljayIpXSksbi5yZWdpc3RlcihbdCgiLi9maWx0ZXIiKSx0KCIuL2dyb3VwYnkiKSx0KCIuL3NvcnQiKV0pLG4ucmVnaXN0ZXIoW3QoIi4vY2FsZW5kYXJzIildKSxlLmV4cG9ydHM9bn0seyIuL2JhciI6MywiLi9ib3giOjQsIi4vY2FsZW5kYXJzIjo1LCIuL2NhbmRsZXN0aWNrIjo2LCIuL2NhcnBldCI6NywiLi9jaG9yb3BsZXRoIjo4LCIuL2NvbnRvdXIiOjksIi4vY29udG91cmNhcnBldCI6MTAsIi4vY29yZSI6MTEsIi4vZmlsdGVyIjoxMiwiLi9ncm91cGJ5IjoxMywiLi9oZWF0bWFwIjoxNCwiLi9oZWF0bWFwZ2wiOjE1LCIuL2hpc3RvZ3JhbSI6MTYsIi4vaGlzdG9ncmFtMmQiOjE3LCIuL2hpc3RvZ3JhbTJkY29udG91ciI6MTgsIi4vbWVzaDNkIjoyMCwiLi9vaGxjIjoyMSwiLi9wYXJjb29yZHMiOjIyLCIuL3BpZSI6MjMsIi4vcG9pbnRjbG91ZCI6MjQsIi4vc2Fua2V5IjoyNSwiLi9zY2F0dGVyM2QiOjI2LCIuL3NjYXR0ZXJjYXJwZXQiOjI3LCIuL3NjYXR0ZXJnZW8iOjI4LCIuL3NjYXR0ZXJnbCI6MjksIi4vc2NhdHRlcm1hcGJveCI6MzAsIi4vc2NhdHRlcnRlcm5hcnkiOjMxLCIuL3NvcnQiOjMyLCIuL3N1cmZhY2UiOjMzfV0sMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvbWVzaDNkIil9LHsiLi4vc3JjL3RyYWNlcy9tZXNoM2QiOjk4M31dLDIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL29obGMiKX0seyIuLi9zcmMvdHJhY2VzL29obGMiOjk4OH1dLDIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3BhcmNvb3JkcyIpfSx7Ii4uL3NyYy90cmFjZXMvcGFyY29vcmRzIjo5OTd9XSwyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9waWUiKX0seyIuLi9zcmMvdHJhY2VzL3BpZSI6MTAwNn1dLDI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3BvaW50Y2xvdWQiKX0seyIuLi9zcmMvdHJhY2VzL3BvaW50Y2xvdWQiOjEwMTV9XSwyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zYW5rZXkiKX0seyIuLi9zcmMvdHJhY2VzL3NhbmtleSI6MTAyMX1dLDI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXIzZCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcjNkIjoxMDUzfV0sMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcmNhcnBldCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcmNhcnBldCI6MTA1OH1dLDI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnZW8iKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnZW8iOjEwNjd9XSwyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVyZ2wiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnbCI6MTA3M31dLDMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJtYXBib3giKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJtYXBib3giOjEwODB9XSwzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVydGVybmFyeSIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcnRlcm5hcnkiOjEwODd9XSwzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYW5zZm9ybXMvc29ydCIpfSx7Ii4uL3NyYy90cmFuc2Zvcm1zL3NvcnQiOjEwOTl9XSwzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIil9LHsiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIjoxMDk2fV0sMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Z1bmN0aW9uIHIoZSxyLG4sYSl7dmFyIG89MS90LmNsaWVudEhlaWdodCxzPW8qKHItbSksbD1vKihuLXYpLGM9cC5mbGlwWD8xOi0xLGY9cC5mbGlwWT8xOi0xLGQ9TWF0aC5QSSpwLnJvdGF0ZVNwZWVkLHk9aSgpO2lmKDEmZSlhLnNoaWZ0P3Uucm90YXRlKHksMCwwLC1zKmQpOnUucm90YXRlKHksYypkKnMsLWYqZCpsLDApO2Vsc2UgaWYoMiZlKXUucGFuKHksLXAudHJhbnNsYXRlU3BlZWQqcypoLHAudHJhbnNsYXRlU3BlZWQqbCpoLDApO2Vsc2UgaWYoNCZlKXt2YXIgYj1wLnpvb21TcGVlZCpsL3dpbmRvdy5pbm5lckhlaWdodCooeS11Lmxhc3RUKCkpKjUwO3UucGFuKHksMCwwLGgqKE1hdGguZXhwKGIpLTEpKX1tPXIsdj1uLGc9YX10PXR8fGRvY3VtZW50LmJvZHksZT1lfHx7fTt2YXIgbj1bLjAxLDEvMF07ImRpc3RhbmNlTGltaXRzImluIGUmJihuWzBdPWUuZGlzdGFuY2VMaW1pdHNbMF0sblsxXT1lLmRpc3RhbmNlTGltaXRzWzFdKSwiem9vbU1pbiJpbiBlJiYoblswXT1lLnpvb21NaW4pLCJ6b29tTWF4ImluIGUmJihuWzFdPWUuem9vbU1heCk7dmFyIHU9YSh7Y2VudGVyOmUuY2VudGVyfHxbMCwwLDBdLHVwOmUudXB8fFswLDEsMF0sZXllOmUuZXllfHxbMCwwLDEwXSxtb2RlOmUubW9kZXx8Im9yYml0IixkaXN0YW5jZUxpbWl0czpufSksYz1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0saD0wLGY9dC5jbGllbnRXaWR0aCxkPXQuY2xpZW50SGVpZ2h0LHA9e3ZpZXc6dSxlbGVtZW50OnQsZGVsYXk6ZS5kZWxheXx8MTYscm90YXRlU3BlZWQ6ZS5yb3RhdGVTcGVlZHx8MSx6b29tU3BlZWQ6ZS56b29tU3BlZWR8fDEsdHJhbnNsYXRlU3BlZWQ6ZS50cmFuc2xhdGVTcGVlZHx8MSxmbGlwWDohIWUuZmxpcFgsZmxpcFk6ISFlLmZsaXBZLG1vZGVzOnUubW9kZXMsdGljazpmdW5jdGlvbigpe3ZhciBlPWkoKSxyPXRoaXMuZGVsYXk7dS5pZGxlKGUtciksdS5mbHVzaChlLSgxMDArMipyKSk7dmFyIG49ZS0yKnI7dS5yZWNhbGNNYXRyaXgobik7Zm9yKHZhciBhPSEwLG89dS5jb21wdXRlZE1hdHJpeCxzPTA7czwxNjsrK3MpYT1hJiZjW3NdPT09b1tzXSxjW3NdPW9bc107dmFyIGw9dC5jbGllbnRXaWR0aD09PWYmJnQuY2xpZW50SGVpZ2h0PT09ZDtyZXR1cm4gZj10LmNsaWVudFdpZHRoLGQ9dC5jbGllbnRIZWlnaHQsYT8hbDooaD1NYXRoLmV4cCh1LmNvbXB1dGVkUmFkaXVzWzBdKSwhMCl9LGxvb2tBdDpmdW5jdGlvbih0LGUscil7dS5sb29rQXQodS5sYXN0VCgpLHQsZSxyKX0scm90YXRlOmZ1bmN0aW9uKHQsZSxyKXt1LnJvdGF0ZSh1Lmxhc3RUKCksdCxlLHIpfSxwYW46ZnVuY3Rpb24odCxlLHIpe3UucGFuKHUubGFzdFQoKSx0LGUscil9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LGUscil7dS50cmFuc2xhdGUodS5sYXN0VCgpLHQsZSxyKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHAse21hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuY29tcHV0ZWRNYXRyaXh9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdS5zZXRNYXRyaXgodS5sYXN0VCgpLHQpLHUuY29tcHV0ZWRNYXRyaXh9LGVudW1lcmFibGU6ITB9LG1vZGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB1LmdldE1vZGUoKX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB1LnNldE1vZGUodCksdS5nZXRNb2RlKCl9LGVudW1lcmFibGU6ITB9LGNlbnRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuY29tcHV0ZWRDZW50ZXJ9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdS5sb29rQXQodS5sYXN0VCgpLHQpLHUuY29tcHV0ZWRDZW50ZXJ9LGVudW1lcmFibGU6ITB9LGV5ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuY29tcHV0ZWRFeWV9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdS5sb29rQXQodS5sYXN0VCgpLG51bGwsdCksdS5jb21wdXRlZEV5ZX0sZW51bWVyYWJsZTohMH0sdXA6e2dldDpmdW5jdGlvbigpe3JldHVybiB1LmNvbXB1dGVkVXB9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdS5sb29rQXQodS5sYXN0VCgpLG51bGwsbnVsbCx0KSx1LmNvbXB1dGVkVXB9LGVudW1lcmFibGU6ITB9LGRpc3RhbmNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaH0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB1LnNldERpc3RhbmNlKHUubGFzdFQoKSx0KSx0fSxlbnVtZXJhYmxlOiEwfSxkaXN0YW5jZUxpbWl0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUuZ2V0RGlzdGFuY2VMaW1pdHMobil9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdS5zZXREaXN0YW5jZUxpbWl0cyh0KSx0fSxlbnVtZXJhYmxlOiEwfX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCksITF9KTt2YXIgbT0wLHY9MCxnPXtzaGlmdDohMSxjb250cm9sOiExLGFsdDohMSxtZXRhOiExfTtyZXR1cm4gbyh0LHIpLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24oZSl7dmFyIG49bChlLmNoYW5nZWRUb3VjaGVzWzBdLHQpO3IoMCxuWzBdLG5bMV0sZykscigxLG5bMF0sblsxXSxnKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihlKXt2YXIgbj1sKGUuY2hhbmdlZFRvdWNoZXNbMF0sdCk7cigxLG5bMF0sblsxXSxnKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKGUpe2woZS5jaGFuZ2VkVG91Y2hlc1swXSx0KTtyKDAsbSx2LGcpfSkscyh0LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1wLmZsaXBYPzE6LTEsYT1wLmZsaXBZPzE6LTEsbz1pKCk7aWYoTWF0aC5hYnModCk+TWF0aC5hYnMoZSkpdS5yb3RhdGUobywwLDAsLXQqbipNYXRoLlBJKnAucm90YXRlU3BlZWQvd2luZG93LmlubmVyV2lkdGgpO2Vsc2V7dmFyIHM9cC56b29tU3BlZWQqYSplL3dpbmRvdy5pbm5lckhlaWdodCooby11Lmxhc3RUKCkpLzEwMDt1LnBhbihvLDAsMCxoKihNYXRoLmV4cChzKS0xKSl9fSwhMCkscH1lLmV4cG9ydHM9bjt2YXIgaT10KCJyaWdodC1ub3ciKSxhPXQoIjNkLXZpZXciKSxvPXQoIm1vdXNlLWNoYW5nZSIpLHM9dCgibW91c2Utd2hlZWwiKSxsPXQoIm1vdXNlLWV2ZW50LW9mZnNldCIpfSx7IjNkLXZpZXciOjM1LCJtb3VzZS1jaGFuZ2UiOjQ1MCwibW91c2UtZXZlbnQtb2Zmc2V0Ijo0NTEsIm1vdXNlLXdoZWVsIjo0NTMsInJpZ2h0LW5vdyI6NTAwfV0sMzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMuX2NvbnRyb2xsZXJOYW1lcz1PYmplY3Qua2V5cyh0KSx0aGlzLl9jb250cm9sbGVyTGlzdD10aGlzLl9jb250cm9sbGVyTmFtZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSksdGhpcy5fbW9kZT1lLHRoaXMuX2FjdGl2ZT10W2VdLHRoaXMuX2FjdGl2ZXx8KHRoaXMuX21vZGU9InR1cm50YWJsZSIsdGhpcy5fYWN0aXZlPXQudHVybnRhYmxlKSx0aGlzLm1vZGVzPXRoaXMuX2NvbnRyb2xsZXJOYW1lcyx0aGlzLmNvbXB1dGVkTWF0cml4PXRoaXMuX2FjdGl2ZS5jb21wdXRlZE1hdHJpeCx0aGlzLmNvbXB1dGVkRXllPXRoaXMuX2FjdGl2ZS5jb21wdXRlZEV5ZSx0aGlzLmNvbXB1dGVkVXA9dGhpcy5fYWN0aXZlLmNvbXB1dGVkVXAsdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLl9hY3RpdmUuY29tcHV0ZWRDZW50ZXIsdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLl9hY3RpdmUuY29tcHV0ZWRSYWRpdXN9ZnVuY3Rpb24gaSh0KXt0PXR8fHt9O3ZhciBlPXQuZXllfHxbMCwwLDFdLHI9dC5jZW50ZXJ8fFswLDAsMF0saT10LnVwfHxbMCwxLDBdLGw9dC5kaXN0YW5jZUxpbWl0c3x8WzAsMS8wXSx1PXQubW9kZXx8InR1cm50YWJsZSIsYz1hKCksaD1vKCksZj1zKCk7cmV0dXJuIGMuc2V0RGlzdGFuY2VMaW1pdHMobFswXSxsWzFdKSxjLmxvb2tBdCgwLGUscixpKSxoLnNldERpc3RhbmNlTGltaXRzKGxbMF0sbFsxXSksaC5sb29rQXQoMCxlLHIsaSksZi5zZXREaXN0YW5jZUxpbWl0cyhsWzBdLGxbMV0pLGYubG9va0F0KDAsZSxyLGkpLG5ldyBuKHt0dXJudGFibGU6YyxvcmJpdDpoLG1hdHJpeDpmfSx1KX1lLmV4cG9ydHM9aTt2YXIgYT10KCJ0dXJudGFibGUtY2FtZXJhLWNvbnRyb2xsZXIiKSxvPXQoIm9yYml0LWNhbWVyYS1jb250cm9sbGVyIikscz10KCJtYXRyaXgtY2FtZXJhLWNvbnRyb2xsZXIiKSxsPW4ucHJvdG90eXBlO1tbImZsdXNoIiwxXSxbImlkbGUiLDFdLFsibG9va0F0Iiw0XSxbInJvdGF0ZSIsNF0sWyJwYW4iLDRdLFsidHJhbnNsYXRlIiw0XSxbInNldE1hdHJpeCIsMl0sWyJzZXREaXN0YW5jZUxpbWl0cyIsMl0sWyJzZXREaXN0YW5jZSIsMl1dLmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRbMF0scj1bXSxuPTA7bjx0WzFdOysrbilyLnB1c2goImEiK24pO3ZhciBpPSJ2YXIgY2M9dGhpcy5fY29udHJvbGxlckxpc3Q7Zm9yKHZhciBpPTA7aTxjYy5sZW5ndGg7KytpKXtjY1tpXS4iK3RbMF0rIigiK3Iuam9pbigpKyIpfSI7bFtlXT1GdW5jdGlvbi5hcHBseShudWxsLHIuY29uY2F0KGkpKX0pLGwucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZS5yZWNhbGNNYXRyaXgodCl9LGwuZ2V0RGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5nZXREaXN0YW5jZSh0KX0sbC5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWN0aXZlLmdldERpc3RhbmNlTGltaXRzKHQpfSxsLmxhc3RUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5sYXN0VCgpfSxsLnNldE1vZGU9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuX21vZGUpe3ZhciBlPXRoaXMuX2NvbnRyb2xsZXJOYW1lcy5pbmRleE9mKHQpO2lmKCEoZTwwKSl7dmFyIHI9dGhpcy5fYWN0aXZlLG49dGhpcy5fY29udHJvbGxlckxpc3RbZV0saT1NYXRoLm1heChyLmxhc3RUKCksbi5sYXN0VCgpKTtyLnJlY2FsY01hdHJpeChpKSxuLnNldE1hdHJpeChpLHIuY29tcHV0ZWRNYXRyaXgpLHRoaXMuX2FjdGl2ZT1uLHRoaXMuX21vZGU9dCx0aGlzLmNvbXB1dGVkTWF0cml4PXRoaXMuX2FjdGl2ZS5jb21wdXRlZE1hdHJpeCx0aGlzLmNvbXB1dGVkRXllPXRoaXMuX2FjdGl2ZS5jb21wdXRlZEV5ZSx0aGlzLmNvbXB1dGVkVXA9dGhpcy5fYWN0aXZlLmNvbXB1dGVkVXAsdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLl9hY3RpdmUuY29tcHV0ZWRDZW50ZXIsdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLl9hY3RpdmUuY29tcHV0ZWRSYWRpdXN9fX0sbC5nZXRNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGV9fSx7Im1hdHJpeC1jYW1lcmEtY29udHJvbGxlciI6NDQ4LCJvcmJpdC1jYW1lcmEtY29udHJvbGxlciI6NDcxLCJ0dXJudGFibGUtY2FtZXJhLWNvbnRyb2xsZXIiOjUzNn1dLDM2OltmdW5jdGlvbihlLHIsbil7IWZ1bmN0aW9uKGksYSl7Im9iamVjdCI9PXR5cGVvZiBuJiZ2b2lkIDAhPT1yP2EobixlKCJkMy1hcnJheSIpLGUoImQzLWNvbGxlY3Rpb24iKSxlKCJkMy1pbnRlcnBvbGF0ZSIpKToiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hbWQ/dChbImV4cG9ydHMiLCJkMy1hcnJheSIsImQzLWNvbGxlY3Rpb24iLCJkMy1pbnRlcnBvbGF0ZSJdLGEpOmEoaS5kMz1pLmQzfHx7fSxpLmQzLGkuZDMsaS5kMyl9KHRoaXMsZnVuY3Rpb24odCxlLHIsbil7InVzZSBzdHJpY3QiO3ZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3YuZm9yRWFjaChmdW5jdGlvbih0KXt0LnNvdXJjZUxpbmtzPVtdLHQudGFyZ2V0TGlua3M9W119KSxnLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgcj10LnNvdXJjZSxuPXQudGFyZ2V0OyJudW1iZXIiPT10eXBlb2YgciYmKHI9dC5zb3VyY2U9dlt0LnNvdXJjZV0pLCJudW1iZXIiPT10eXBlb2YgbiYmKG49dC50YXJnZXQ9dlt0LnRhcmdldF0pLHQub3JpZ2luYWxJbmRleD1lLHIuc291cmNlTGlua3MucHVzaCh0KSxuLnRhcmdldExpbmtzLnB1c2godCl9KX1mdW5jdGlvbiBpKCl7di5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QudmFsdWU9TWF0aC5tYXgoZS5zdW0odC5zb3VyY2VMaW5rcyxoKSxlLnN1bSh0LnRhcmdldExpbmtzLGgpKX0pfWZ1bmN0aW9uIGEoKXtmb3IodmFyIHQsZT12LHI9MDtlLmxlbmd0aDspdD1bXSxlLmZvckVhY2goZnVuY3Rpb24oZSl7ZS54PXIsZS5keD1kLGUuc291cmNlTGlua3MuZm9yRWFjaChmdW5jdGlvbihlKXt0LmluZGV4T2YoZS50YXJnZXQpPDAmJnQucHVzaChlLnRhcmdldCl9KX0pLGU9dCwrK3I7byhyKSxzKChtWzBdLWQpLyhyLTEpKX1mdW5jdGlvbiBvKHQpe3YuZm9yRWFjaChmdW5jdGlvbihlKXtlLnNvdXJjZUxpbmtzLmxlbmd0aHx8KGUueD10LTEpfSl9ZnVuY3Rpb24gcyh0KXt2LmZvckVhY2goZnVuY3Rpb24oZSl7ZS54Kj10fSl9ZnVuY3Rpb24gbCh0KXtmdW5jdGlvbiBuKCl7YS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhPTAsbz10Lmxlbmd0aDtmb3IodC5zb3J0KGkpLG49MDtuPG87KytuKWU9dFtuXSxyPWEtZS55LHI+MCYmKGUueSs9ciksYT1lLnkrZS5keStwO2lmKChyPWEtcC1tWzFdKT4wKWZvcihhPWUueS09cixuPW8tMjtuPj0wOy0tbillPXRbbl0scj1lLnkrZS5keStwLWEscj4wJiYoZS55LT1yKSxhPWUueX0pfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC55LWUueX12YXIgYT1yLm5lc3QoKS5rZXkoZnVuY3Rpb24odCl7cmV0dXJuIHQueH0pLnNvcnRLZXlzKGUuYXNjZW5kaW5nKS5lbnRyaWVzKHYpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZXN9KTshZnVuY3Rpb24oKXt2YXIgdD1lLm1pbihhLGZ1bmN0aW9uKHQpe3JldHVybihtWzFdLSh0Lmxlbmd0aC0xKSpwKS9lLnN1bSh0LGgpfSk7YS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UuZm9yRWFjaChmdW5jdGlvbihlLHIpe2UueT1yLGUuZHk9ZS52YWx1ZSp0fSl9KSxnLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5keT1lLnZhbHVlKnR9KX0oKSxuKCk7Zm9yKHZhciBvPTE7dD4wOy0tdCkhZnVuY3Rpb24odCl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gYyh0LnRhcmdldCkqdC52YWx1ZX1hLnNsaWNlKCkucmV2ZXJzZSgpLmZvckVhY2goZnVuY3Rpb24obil7bi5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4uc291cmNlTGlua3MubGVuZ3RoKXt2YXIgaT1lLnN1bShuLnNvdXJjZUxpbmtzLHIpL2Uuc3VtKG4uc291cmNlTGlua3MsaCk7bi55Kz0oaS1jKG4pKSp0fX0pfSl9KG8qPS45OSksbigpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIGModC5zb3VyY2UpKnQudmFsdWV9YS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uZm9yRWFjaChmdW5jdGlvbihuKXtpZihuLnRhcmdldExpbmtzLmxlbmd0aCl7dmFyIGk9ZS5zdW0obi50YXJnZXRMaW5rcyxyKS9lLnN1bShuLnRhcmdldExpbmtzLGgpO24ueSs9KGktYyhuKSkqdH19KX0pfShvKSxuKCl9ZnVuY3Rpb24gdSgpe2Z1bmN0aW9uIHQodCxlKXtyZXR1cm4gdC5zb3VyY2UueS1lLnNvdXJjZS55fHx0Lm9yaWdpbmFsSW5kZXgtZS5vcmlnaW5hbEluZGV4fWZ1bmN0aW9uIGUodCxlKXtyZXR1cm4gdC50YXJnZXQueS1lLnRhcmdldC55fHx0Lm9yaWdpbmFsSW5kZXgtZS5vcmlnaW5hbEluZGV4fXYuZm9yRWFjaChmdW5jdGlvbihyKXtyLnNvdXJjZUxpbmtzLnNvcnQoZSksci50YXJnZXRMaW5rcy5zb3J0KHQpfSksdi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPTAscj0wO3Quc291cmNlTGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LnN5PWUsZSs9dC5keX0pLHQudGFyZ2V0TGlua3MuZm9yRWFjaChmdW5jdGlvbih0KXt0LnR5PXIscis9dC5keX0pfSl9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdC55K3QuZHkvMn1mdW5jdGlvbiBoKHQpe3JldHVybiB0LnZhbHVlfXZhciBmPXt9LGQ9MjQscD04LG09WzEsMV0sdj1bXSxnPVtdO3JldHVybiBmLm5vZGVXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdCxmKTpkfSxmLm5vZGVQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSt0LGYpOnB9LGYubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9dCxmKTp2fSxmLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPXQsZik6Z30sZi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPXQsZik6bX0sZi5sYXlvdXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQoKSxpKCksYSgpLGwoZSksdSgpLGZ9LGYucmVsYXlvdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdSgpLGZ9LGYubGluaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIHI9dC5zb3VyY2UueCt0LnNvdXJjZS5keCxpPXQudGFyZ2V0LngsYT1uLmludGVycG9sYXRlTnVtYmVyKHIsaSksbz1hKGUpLHM9YSgxLWUpLGw9dC5zb3VyY2UueSt0LnN5LHU9bCt0LmR5LGM9dC50YXJnZXQueSt0LnR5LGg9Yyt0LmR5O3JldHVybiJNIityKyIsIitsKyJDIitvKyIsIitsKyIgIitzKyIsIitjKyIgIitpKyIsIitjKyJMIitpKyIsIitoKyJDIitzKyIsIitoKyIgIitvKyIsIit1KyIgIityKyIsIit1KyJaIn12YXIgZT0uNTtyZXR1cm4gdC5jdXJ2YXR1cmU9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3IsdCk6ZX0sdH0sZn07dC5zYW5rZXk9aSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KX0seyJkMy1hcnJheSI6MTEyLCJkMy1jb2xsZWN0aW9uIjoxMTMsImQzLWludGVycG9sYXRlIjoxMTd9XSwzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXMuZ2V0KHQpLHI9ZSYmKGUuX3RyaWFuZ2xlQnVmZmVyLmhhbmRsZXx8ZS5fdHJpYW5nbGVCdWZmZXIuYnVmZmVyKTtpZighcnx8IXQuaXNCdWZmZXIocikpe3ZhciBuPWEodCxuZXcgRmxvYXQzMkFycmF5KFstMSwtMSwtMSw0LDQsLTFdKSk7ZT1vKHQsW3tidWZmZXI6bix0eXBlOnQuRkxPQVQsc2l6ZToyfV0pLGUuX3RyaWFuZ2xlQnVmZmVyPW4scy5zZXQodCxlKX1lLmJpbmQoKSx0LmRyYXdBcnJheXModC5UUklBTkdMRVMsMCwzKSxlLnVuYmluZCgpfXZhciBpPSJ1bmRlZmluZWQiPT10eXBlb2YgV2Vha01hcD90KCJ3ZWFrLW1hcCIpOldlYWtNYXAsYT10KCJnbC1idWZmZXIiKSxvPXQoImdsLXZhbyIpLHM9bmV3IGk7ZS5leHBvcnRzPW59LHsiZ2wtYnVmZmVyIjoxNTQsImdsLXZhbyI6MjY5LCJ3ZWFrLW1hcCI6NTU3fV0sMzg6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXtlPSJudW1iZXIiPT10eXBlb2YgZT9lOjEscj1yfHwiOiAiO3ZhciBuPXQuc3BsaXQoL1xyP1xuLyksYT1TdHJpbmcobi5sZW5ndGgrZS0xKS5sZW5ndGg7cmV0dXJuIG4ubWFwKGZ1bmN0aW9uKHQsbil7dmFyIG89bitlLHM9U3RyaW5nKG8pLmxlbmd0aDtyZXR1cm4gaShvLGEtcykrcit0fSkuam9pbigiXG4iKX12YXIgaT10KCJwYWQtbGVmdCIpO2UuZXhwb3J0cz1ufSx7InBhZC1sZWZ0Ijo0NzJ9XSwzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKzEpLG49MDtuPHQubGVuZ3RoOysrbilyW25dPXRbbl07Zm9yKHZhciBuPTA7bjw9dC5sZW5ndGg7KytuKXtmb3IodmFyIGk9dC5sZW5ndGg7aTw9ZTsrK2kpe2Zvcih2YXIgbz1uZXcgQXJyYXkoZSkscz0wO3M8ZTsrK3Mpb1tzXT1NYXRoLnBvdyhpKzEtbixzKTtyW2ldPW99aWYoYS5hcHBseSh2b2lkIDAscikpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gaSh0KXt2YXIgZT10Lmxlbmd0aDtpZigwPT09ZSlyZXR1cm5bXTtpZigxPT09ZSlyZXR1cm5bMF07Zm9yKHZhciByPXRbMF0ubGVuZ3RoLGk9W3RbMF1dLGE9WzBdLG89MTtvPGU7KytvKWlmKGkucHVzaCh0W29dKSxuKGkscikpe2lmKGEucHVzaChvKSxhLmxlbmd0aD09PXIrMSlyZXR1cm4gYX1lbHNlIGkucG9wKCk7cmV0dXJuIGF9ZS5leHBvcnRzPWk7dmFyIGE9dCgicm9idXN0LW9yaWVudGF0aW9uIil9LHsicm9idXN0LW9yaWVudGF0aW9uIjo1MDZ9XSw0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGkoZSkuZmlsdGVyKGZ1bmN0aW9uKHIpe2Zvcih2YXIgbj1uZXcgQXJyYXkoci5sZW5ndGgpLGk9MDtpPHIubGVuZ3RoOysraSluW2ldPWVbcltpXV07cmV0dXJuIGEobikqdDwxfSl9ZS5leHBvcnRzPW47dmFyIGk9dCgiZGVsYXVuYXktdHJpYW5ndWxhdGUiKSxhPXQoImNpcmN1bXJhZGl1cyIpfSx7Y2lyY3VtcmFkaXVzOjg1LCJkZWxhdW5heS10cmlhbmd1bGF0ZSI6MTIxfV0sNDE6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGEoaSh0LGUpKX1lLmV4cG9ydHM9bjt2YXIgaT10KCJhbHBoYS1jb21wbGV4IiksYT10KCJzaW1wbGljaWFsLWNvbXBsZXgtYm91bmRhcnkiKX0seyJhbHBoYS1jb21wbGV4Ijo0MCwic2ltcGxpY2lhbC1jb21wbGV4LWJvdW5kYXJ5Ijo1MTR9XSw0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoIXR8fG51bGw9PXQubGVuZ3RoKXRocm93IEVycm9yKCJBcmd1bWVudCBzaG91bGQgYmUgYW4gYXJyYXkiKTtlPW51bGw9PWU/MTpNYXRoLmZsb29yKGUpO2Zvcih2YXIgcj1BcnJheSgyKmUpLG49MDtuPGU7bisrKXtmb3IodmFyIGk9LTEvMCxhPTEvMCxvPW4scz10Lmxlbmd0aDtvPHM7bys9ZSl0W29dPmkmJihpPXRbb10pLHRbb108YSYmKGE9dFtvXSk7cltuXT1hLHJbZStuXT1pfXJldHVybiByfWUuZXhwb3J0cz1ufSx7fV0sNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7aWYoIXR8fG51bGw9PXQubGVuZ3RoKXRocm93IEVycm9yKCJBcmd1bWVudCBzaG91bGQgYmUgYW4gYXJyYXkiKTtudWxsPT1lJiYoZT0xKSxudWxsPT1yJiYocj1pKHQsZSkpO2Zvcih2YXIgbj0wO248ZTtuKyspe3ZhciBhPXJbZStuXSxvPXJbbl0scz1uLGw9dC5sZW5ndGg7aWYoYT09PTEvMCYmbz09PS0xLzApZm9yKHM9bjtzPGw7cys9ZSl0W3NdPXRbc109PT1hPzE6dFtzXT09PW8/MDouNTtlbHNlIGlmKGE9PT0xLzApZm9yKHM9bjtzPGw7cys9ZSl0W3NdPXRbc109PT1hPzE6MDtlbHNlIGlmKG89PT0tMS8wKWZvcihzPW47czxsO3MrPWUpdFtzXT10W3NdPT09bz8wOjE7ZWxzZXt2YXIgdT1hLW87Zm9yKHM9bjtzPGw7cys9ZSl0W3NdPSh0W3NdLW8pL3V9fXJldHVybiB0fXZhciBpPXQoImFycmF5LWJvdW5kcyIpO2UuZXhwb3J0cz1ufSx7ImFycmF5LWJvdW5kcyI6NDJ9XSw0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiFBcnJheS5pc0FycmF5KHQpJiZudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0fWZ1bmN0aW9uIGUodCxlLHIpe2Zvcih2YXIgbj0oZS10KS9NYXRoLm1heChyLTEsMSksaT1bXSxhPTA7YTxyO2ErKylpLnB1c2godCthKm4pO3JldHVybiBpfWZ1bmN0aW9uIHIoKXtmb3IodmFyIHQ9W10uc2xpY2UuY2FsbChhcmd1bWVudHMpLGU9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RofSkscj1NYXRoLm1pbi5hcHBseShudWxsLGUpLG49W10saT0wO2k8cjtpKyspe25baV09W107Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDsrK2EpbltpXVthXT10W2FdW2ldfXJldHVybiBufWZ1bmN0aW9uIG4odCxlLHIpe2Zvcih2YXIgbj1NYXRoLm1pbi5hcHBseShudWxsLFt0Lmxlbmd0aCxlLmxlbmd0aCxyLmxlbmd0aF0pLGk9W10sYT0wO2E8bjthKyspaS5wdXNoKFt0W2FdLGVbYV0sclthXV0pO3JldHVybiBpfWZ1bmN0aW9uIGkodCl7ZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylBcnJheS5pc0FycmF5KHRbbl0pP2UodFtuXSxyKTpyKz10W25dfXZhciByPTA7cmV0dXJuIGUodCxyKSxyfWZ1bmN0aW9uIGEodCl7Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoOysrcil7ZVtyXT1bXTtmb3IodmFyIG49MDtuPHRbcl0ubGVuZ3RoOysrbillW3JdW25dPXRbcl1bbl19cmV0dXJuIGV9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKWVbcl09dFtyXTtyZXR1cm4gZX1mdW5jdGlvbiBzKHQsZSl7aWYodC5sZW5ndGghPT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9dC5sZW5ndGg7ci0tOylpZih0W3JdIT09ZVtyXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBsKHQsZSl7dmFyIHIsbjtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIHQ7aWYocj1bXSwiIyI9PT10WzBdPyh0PXQuc3Vic3RyKDEpLDM9PT10Lmxlbmd0aCYmKHQrPXQpLG49cGFyc2VJbnQodCwxNiksclswXT1uPj4xNiYyNTUsclsxXT1uPj44JjI1NSxyWzJdPTI1NSZuKTpoLnRlc3QodCkmJihuPXQubWF0Y2goZiksclswXT1wYXJzZUludChuWzFdKSxyWzFdPXBhcnNlSW50KG5bMl0pLHJbMl09cGFyc2VJbnQoblszXSkpLCFlKWZvcih2YXIgaT0wO2k8MzsrK2kpcltpXT1yW2ldLzI1NTtyZXR1cm4gcn1mdW5jdGlvbiB1KHQsZSl7dmFyIHIsbjtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIHQ7aWYocj1bXSwiIyI9PT10WzBdPyh0PXQuc3Vic3RyKDEpLDM9PT10Lmxlbmd0aCYmKHQrPXQpLG49cGFyc2VJbnQodCwxNiksclswXT1uPj4xNiYyNTUsclsxXT1uPj44JjI1NSxyWzJdPTI1NSZuKTpoLnRlc3QodCkmJihuPXQubWF0Y2goZiksclswXT1wYXJzZUludChuWzFdKSxyWzFdPXBhcnNlSW50KG5bMl0pLHJbMl09cGFyc2VJbnQoblszXSksbls0XT9yWzNdPXBhcnNlRmxvYXQobls0XSk6clszXT0xKSwhZSlmb3IodmFyIGk9MDtpPDM7KytpKXJbaV09cltpXS8yNTU7cmV0dXJuIHJ9dmFyIGM9e30saD0vXnJnYmE/XChccypcZHsxLDN9XHMqLFxzKlxkezEsM31ccyosXHMqXGR7MSwzfVxzKigsLiopP1wpJC8sZj0vXnJnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKiw/XHMqKC4qKT9cKSQvO3JldHVybiBjLmlzUGxhaW5PYmplY3Q9dCxjLmxpbnNwYWNlPWUsYy56aXAzPW4sYy5zdW09aSxjLnppcD1yLGMuaXNFcXVhbD1zLGMuY29weTJEPWEsYy5jb3B5MUQ9byxjLnN0cjJSZ2JBcnJheT1sLGMuc3RyMlJnYmFBcnJheT11LGN9KCl9LHt9XSw0NTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2lmKHQ9PT1lKXJldHVybiAwO2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUubGVuZ3RoLGk9MCxhPU1hdGgubWluKHIsbik7aTxhOysraSlpZih0W2ldIT09ZVtpXSl7cj10W2ldLG49ZVtpXTticmVha31yZXR1cm4gcjxuPy0xOm48cj8xOjB9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gci5CdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiByLkJ1ZmZlci5pc0J1ZmZlcj9yLkJ1ZmZlci5pc0J1ZmZlcih0KTohKG51bGw9PXR8fCF0Ll9pc0J1ZmZlcil9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIWkodCkmJigiZnVuY3Rpb24iPT10eXBlb2Ygci5BcnJheUJ1ZmZlciYmKCJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXIuaXNWaWV3KHQpOiEhdCYmKHQgaW5zdGFuY2VvZiBEYXRhVmlld3x8ISEodC5idWZmZXImJnQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSkpfWZ1bmN0aW9uIHModCl7aWYoeC5pc0Z1bmN0aW9uKHQpKXtpZihNKXJldHVybiB0Lm5hbWU7dmFyIGU9dC50b1N0cmluZygpLHI9ZS5tYXRjaChBKTtyZXR1cm4gciYmclsxXX19ZnVuY3Rpb24gbCh0LGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90Lmxlbmd0aDxlP3Q6dC5zbGljZSgwLGUpOnR9ZnVuY3Rpb24gdSh0KXtpZihNfHwheC5pc0Z1bmN0aW9uKHQpKXJldHVybiB4Lmluc3BlY3QodCk7dmFyIGU9cyh0KTtyZXR1cm4iW0Z1bmN0aW9uIisoZT8iOiAiK2U6IiIpKyJdIn1mdW5jdGlvbiBjKHQpe3JldHVybiBsKHUodC5hY3R1YWwpLDEyOCkrIiAiK3Qub3BlcmF0b3IrIiAiK2wodSh0LmV4cGVjdGVkKSwxMjgpfWZ1bmN0aW9uIGgodCxlLHIsbixpKXt0aHJvdyBuZXcgay5Bc3NlcnRpb25FcnJvcih7bWVzc2FnZTpyLGFjdHVhbDp0LGV4cGVjdGVkOmUsb3BlcmF0b3I6bixzdGFja1N0YXJ0RnVuY3Rpb246aX0pfWZ1bmN0aW9uIGYodCxlKXt0fHxoKHQsITAsZSwiPT0iLGsub2spfWZ1bmN0aW9uIGQodCxlLHIscyl7aWYodD09PWUpcmV0dXJuITA7aWYoaSh0KSYmaShlKSlyZXR1cm4gMD09PW4odCxlKTtpZih4LmlzRGF0ZSh0KSYmeC5pc0RhdGUoZSkpcmV0dXJuIHQuZ2V0VGltZSgpPT09ZS5nZXRUaW1lKCk7aWYoeC5pc1JlZ0V4cCh0KSYmeC5pc1JlZ0V4cChlKSlyZXR1cm4gdC5zb3VyY2U9PT1lLnNvdXJjZSYmdC5nbG9iYWw9PT1lLmdsb2JhbCYmdC5tdWx0aWxpbmU9PT1lLm11bHRpbGluZSYmdC5sYXN0SW5kZXg9PT1lLmxhc3RJbmRleCYmdC5pZ25vcmVDYXNlPT09ZS5pZ25vcmVDYXNlO2lmKG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR8fG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUpe2lmKG8odCkmJm8oZSkmJmEodCk9PT1hKGUpJiYhKHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpKXJldHVybiAwPT09bihuZXcgVWludDhBcnJheSh0LmJ1ZmZlciksbmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpKTtpZihpKHQpIT09aShlKSlyZXR1cm4hMTtzPXN8fHthY3R1YWw6W10sZXhwZWN0ZWQ6W119O3ZhciBsPXMuYWN0dWFsLmluZGV4T2YodCk7cmV0dXJuLTEhPT1sJiZsPT09cy5leHBlY3RlZC5pbmRleE9mKGUpfHwocy5hY3R1YWwucHVzaCh0KSxzLmV4cGVjdGVkLnB1c2goZSksbSh0LGUscixzKSl9cmV0dXJuIHI/dD09PWU6dD09ZX1mdW5jdGlvbiBwKHQpe3JldHVybiJbb2JqZWN0IEFyZ3VtZW50c10iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gbSh0LGUscixuKXtpZihudWxsPT09dHx8dm9pZCAwPT09dHx8bnVsbD09PWV8fHZvaWQgMD09PWUpcmV0dXJuITE7aWYoeC5pc1ByaW1pdGl2ZSh0KXx8eC5pc1ByaW1pdGl2ZShlKSlyZXR1cm4gdD09PWU7aWYociYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpIT09T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpKXJldHVybiExO3ZhciBpPXAodCksYT1wKGUpO2lmKGkmJiFhfHwhaSYmYSlyZXR1cm4hMTtpZihpKXJldHVybiB0PXcuY2FsbCh0KSxlPXcuY2FsbChlKSxkKHQsZSxyKTt2YXIgbyxzLGw9VCh0KSx1PVQoZSk7aWYobC5sZW5ndGghPT11Lmxlbmd0aClyZXR1cm4hMTtmb3IobC5zb3J0KCksdS5zb3J0KCkscz1sLmxlbmd0aC0xO3M+PTA7cy0tKWlmKGxbc10hPT11W3NdKXJldHVybiExO2ZvcihzPWwubGVuZ3RoLTE7cz49MDtzLS0paWYobz1sW3NdLCFkKHRbb10sZVtvXSxyLG4pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHYodCxlLHIpe2QodCxlLCEwKSYmaCh0LGUsciwibm90RGVlcFN0cmljdEVxdWFsIix2KX1mdW5jdGlvbiBnKHQsZSl7aWYoIXR8fCFlKXJldHVybiExO2lmKCJbb2JqZWN0IFJlZ0V4cF0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuIGUudGVzdCh0KTt0cnl7aWYodCBpbnN0YW5jZW9mIGUpcmV0dXJuITB9Y2F0Y2godCl7fXJldHVybiFFcnJvci5pc1Byb3RvdHlwZU9mKGUpJiYhMD09PWUuY2FsbCh7fSx0KX0KZnVuY3Rpb24geSh0KXt2YXIgZTt0cnl7dCgpfWNhdGNoKHQpe2U9dH1yZXR1cm4gZX1mdW5jdGlvbiBiKHQsZSxyLG4pe3ZhciBpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJibG9jayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9bnVsbCksaT15KGUpLG49KHImJnIubmFtZT8iICgiK3IubmFtZSsiKS4iOiIuIikrKG4/IiAiK246Ii4iKSx0JiYhaSYmaChpLHIsIk1pc3NpbmcgZXhwZWN0ZWQgZXhjZXB0aW9uIituKTt2YXIgYT0ic3RyaW5nIj09dHlwZW9mIG4sbz0hdCYmeC5pc0Vycm9yKGkpLHM9IXQmJmkmJiFyO2lmKChvJiZhJiZnKGkscil8fHMpJiZoKGksciwiR290IHVud2FudGVkIGV4Y2VwdGlvbiIrbiksdCYmaSYmciYmIWcoaSxyKXx8IXQmJmkpdGhyb3cgaX12YXIgeD10KCJ1dGlsLyIpLF89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx3PUFycmF5LnByb3RvdHlwZS5zbGljZSxNPWZ1bmN0aW9uKCl7cmV0dXJuImZvbyI9PT1mdW5jdGlvbigpe30ubmFtZX0oKSxrPWUuZXhwb3J0cz1mLEE9L1xzKmZ1bmN0aW9uXHMrKFteXChcc10qKVxzKi87ay5Bc3NlcnRpb25FcnJvcj1mdW5jdGlvbih0KXt0aGlzLm5hbWU9IkFzc2VydGlvbkVycm9yIix0aGlzLmFjdHVhbD10LmFjdHVhbCx0aGlzLmV4cGVjdGVkPXQuZXhwZWN0ZWQsdGhpcy5vcGVyYXRvcj10Lm9wZXJhdG9yLHQubWVzc2FnZT8odGhpcy5tZXNzYWdlPXQubWVzc2FnZSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITEpOih0aGlzLm1lc3NhZ2U9Yyh0aGlzKSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITApO3ZhciBlPXQuc3RhY2tTdGFydEZ1bmN0aW9ufHxoO2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSk7ZWxzZXt2YXIgcj1uZXcgRXJyb3I7aWYoci5zdGFjayl7dmFyIG49ci5zdGFjayxpPXMoZSksYT1uLmluZGV4T2YoIlxuIitpKTtpZihhPj0wKXt2YXIgbz1uLmluZGV4T2YoIlxuIixhKzEpO249bi5zdWJzdHJpbmcobysxKX10aGlzLnN0YWNrPW59fX0seC5pbmhlcml0cyhrLkFzc2VydGlvbkVycm9yLEVycm9yKSxrLmZhaWw9aCxrLm9rPWYsay5lcXVhbD1mdW5jdGlvbih0LGUscil7dCE9ZSYmaCh0LGUsciwiPT0iLGsuZXF1YWwpfSxrLm5vdEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt0PT1lJiZoKHQsZSxyLCIhPSIsay5ub3RFcXVhbCl9LGsuZGVlcEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXtkKHQsZSwhMSl8fGgodCxlLHIsImRlZXBFcXVhbCIsay5kZWVwRXF1YWwpfSxrLmRlZXBTdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7ZCh0LGUsITApfHxoKHQsZSxyLCJkZWVwU3RyaWN0RXF1YWwiLGsuZGVlcFN0cmljdEVxdWFsKX0say5ub3REZWVwRXF1YWw9ZnVuY3Rpb24odCxlLHIpe2QodCxlLCExKSYmaCh0LGUsciwibm90RGVlcEVxdWFsIixrLm5vdERlZXBFcXVhbCl9LGsubm90RGVlcFN0cmljdEVxdWFsPXYsay5zdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7dCE9PWUmJmgodCxlLHIsIj09PSIsay5zdHJpY3RFcXVhbCl9LGsubm90U3RyaWN0RXF1YWw9ZnVuY3Rpb24odCxlLHIpe3Q9PT1lJiZoKHQsZSxyLCIhPT0iLGsubm90U3RyaWN0RXF1YWwpfSxrLnRocm93cz1mdW5jdGlvbih0LGUscil7YighMCx0LGUscil9LGsuZG9lc05vdFRocm93PWZ1bmN0aW9uKHQsZSxyKXtiKCExLHQsZSxyKX0say5pZkVycm9yPWZ1bmN0aW9uKHQpe2lmKHQpdGhyb3cgdH07dmFyIFQ9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KV8uY2FsbCh0LHIpJiZlLnB1c2gocik7cmV0dXJuIGV9fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7InV0aWwvIjo1NDd9XSw0NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gYXRvYih0KX19LHt9XSw0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoOysrcillKz10W3JdO3JldHVybiBlfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9ZS5sZW5ndGgsaT1uZXcgQXJyYXkocisxKSxvPTA7bzxyOysrbyl7Zm9yKHZhciBzPW5ldyBBcnJheShyKzEpLGw9MDtsPD1yOysrbClzW2xdPXRbbF1bb107aVtvXT1zfWlbcl09bmV3IEFycmF5KHIrMSk7Zm9yKHZhciBvPTA7bzw9cjsrK28paVtyXVtvXT0xO2Zvcih2YXIgdT1uZXcgQXJyYXkocisxKSxvPTA7bzxyOysrbyl1W29dPWVbb107dVtyXT0xO3ZhciBjPWEoaSx1KSxoPW4oY1tyKzFdKTswPT09aCYmKGg9MSk7Zm9yKHZhciBmPW5ldyBBcnJheShyKzEpLG89MDtvPD1yOysrbylmW29dPW4oY1tvXSkvaDtyZXR1cm4gZn1lLmV4cG9ydHM9aTt2YXIgYT10KCJyb2J1c3QtbGluZWFyLXNvbHZlIil9LHsicm9idXN0LWxpbmVhci1zb2x2ZSI6NTA1fV0sNDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBpKHRbMF0ubXVsKGVbMV0pLmFkZChlWzBdLm11bCh0WzFdKSksdFsxXS5tdWwoZVsxXSkpfXZhciBpPXQoIi4vbGliL3JhdGlvbmFsaXplIik7ZS5leHBvcnRzPW59LHsiLi9saWIvcmF0aW9uYWxpemUiOjU4fV0sNDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiB0WzBdLm11bChlWzFdKS5jbXAoZVswXS5tdWwodFsxXSkpfWUuZXhwb3J0cz1ufSx7fV0sNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBpKHRbMF0ubXVsKGVbMV0pLHRbMV0ubXVsKGVbMF0pKX12YXIgaT10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL3JhdGlvbmFsaXplIjo1OH1dLDUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZihpKHQpKXJldHVybiBlP3UodCxuKGUpKTpbdFswXS5jbG9uZSgpLHRbMV0uY2xvbmUoKV07dmFyIHIsYyxoPTA7aWYoYSh0KSlyPXQuY2xvbmUoKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdClyPXModCk7ZWxzZXtpZigwPT09dClyZXR1cm5bbygwKSxvKDEpXTtpZih0PT09TWF0aC5mbG9vcih0KSlyPW8odCk7ZWxzZXtmb3IoO3QhPT1NYXRoLmZsb29yKHQpOyl0Kj1NYXRoLnBvdygyLDI1NiksaC09MjU2O3I9byh0KX19aWYoaShlKSlyLm11bChlWzFdKSxjPWVbMF0uY2xvbmUoKTtlbHNlIGlmKGEoZSkpYz1lLmNsb25lKCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpYz1zKGUpO2Vsc2UgaWYoZSlpZihlPT09TWF0aC5mbG9vcihlKSljPW8oZSk7ZWxzZXtmb3IoO2UhPT1NYXRoLmZsb29yKGUpOyllKj1NYXRoLnBvdygyLDI1NiksaCs9MjU2O2M9byhlKX1lbHNlIGM9bygxKTtyZXR1cm4gaD4wP3I9ci51c2hsbihoKTpoPDAmJihjPWMudXNobG4oLWgpKSxsKHIsYyl9dmFyIGk9dCgiLi9pcy1yYXQiKSxhPXQoIi4vbGliL2lzLWJuIiksbz10KCIuL2xpYi9udW0tdG8tYm4iKSxzPXQoIi4vbGliL3N0ci10by1ibiIpLGw9dCgiLi9saWIvcmF0aW9uYWxpemUiKSx1PXQoIi4vZGl2Iik7ZS5leHBvcnRzPW59LHsiLi9kaXYiOjUwLCIuL2lzLXJhdCI6NTIsIi4vbGliL2lzLWJuIjo1NiwiLi9saWIvbnVtLXRvLWJuIjo1NywiLi9saWIvcmF0aW9uYWxpemUiOjU4LCIuL2xpYi9zdHItdG8tYm4iOjU5fV0sNTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMj09PXQubGVuZ3RoJiZpKHRbMF0pJiZpKHRbMV0pfXZhciBpPXQoIi4vbGliL2lzLWJuIik7ZS5leHBvcnRzPW59LHsiLi9saWIvaXMtYm4iOjU2fV0sNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdC5jbXAobmV3IGkoMCkpfXZhciBpPXQoImJuLmpzIik7ZS5leHBvcnRzPW59LHsiYm4uanMiOjY2fV0sNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT10Lmxlbmd0aCxyPXQud29yZHMsbj0wO2lmKDE9PT1lKW49clswXTtlbHNlIGlmKDI9PT1lKW49clswXSs2NzEwODg2NCpyWzFdO2Vsc2UgZm9yKHZhciBhPTA7YTxlO2ErKyl7dmFyIG89clthXTtuKz1vKk1hdGgucG93KDY3MTA4ODY0LGEpfXJldHVybiBpKHQpKm59dmFyIGk9dCgiLi9ibi1zaWduIik7ZS5leHBvcnRzPW59LHsiLi9ibi1zaWduIjo1M31dLDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9YShpLmxvKHQpKTtpZihlPDMyKXJldHVybiBlO3ZhciByPWEoaS5oaSh0KSk7cmV0dXJuIHI+MjA/NTI6ciszMn12YXIgaT10KCJkb3VibGUtYml0cyIpLGE9dCgiYml0LXR3aWRkbGUiKS5jb3VudFRyYWlsaW5nWmVyb3M7ZS5leHBvcnRzPW59LHsiYml0LXR3aWRkbGUiOjY1LCJkb3VibGUtYml0cyI6MTIyfV0sNTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZCb29sZWFuKHQud29yZHMpfXQoImJuLmpzIik7ZS5leHBvcnRzPW59LHsiYm4uanMiOjY2fV0sNTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1hLmV4cG9uZW50KHQpO3JldHVybiBlPDUyP25ldyBpKHQpOm5ldyBpKHQqTWF0aC5wb3coMiw1Mi1lKSkudXNobG4oZS01Mil9dmFyIGk9dCgiYm4uanMiKSxhPXQoImRvdWJsZS1iaXRzIik7ZS5leHBvcnRzPW59LHsiYm4uanMiOjY2LCJkb3VibGUtYml0cyI6MTIyfV0sNTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPWEodCksbj1hKGUpO2lmKDA9PT1yKXJldHVybltpKDApLGkoMSldO2lmKDA9PT1uKXJldHVybltpKDApLGkoMCldO248MCYmKHQ9dC5uZWcoKSxlPWUubmVnKCkpO3ZhciBvPXQuZ2NkKGUpO3JldHVybiBvLmNtcG4oMSk/W3QuZGl2KG8pLGUuZGl2KG8pXTpbdCxlXX12YXIgaT10KCIuL251bS10by1ibiIpLGE9dCgiLi9ibi1zaWduIik7ZS5leHBvcnRzPW59LHsiLi9ibi1zaWduIjo1MywiLi9udW0tdG8tYm4iOjU3fV0sNTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gbmV3IGkodCl9dmFyIGk9dCgiYm4uanMiKTtlLmV4cG9ydHM9bn0seyJibi5qcyI6NjZ9XSw2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGkodFswXS5tdWwoZVswXSksdFsxXS5tdWwoZVsxXSkpfXZhciBpPXQoIi4vbGliL3JhdGlvbmFsaXplIik7ZS5leHBvcnRzPW59LHsiLi9saWIvcmF0aW9uYWxpemUiOjU4fV0sNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gaSh0WzBdKSppKHRbMV0pfXZhciBpPXQoIi4vbGliL2JuLXNpZ24iKTtlLmV4cG9ydHM9bn0seyIuL2xpYi9ibi1zaWduIjo1M31dLDYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gaSh0WzBdLm11bChlWzFdKS5zdWIodFsxXS5tdWwoZVswXSkpLHRbMV0ubXVsKGVbMV0pKX12YXIgaT10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL3JhdGlvbmFsaXplIjo1OH1dLDYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9dFswXSxyPXRbMV07aWYoMD09PWUuY21wbigwKSlyZXR1cm4gMDt2YXIgbj1lLmFicygpLmRpdm1vZChyLmFicygpKSxvPW4uZGl2LHM9aShvKSxsPW4ubW9kLHU9ZS5uZWdhdGl2ZSE9PXIubmVnYXRpdmU/LTE6MTtpZigwPT09bC5jbXBuKDApKXJldHVybiB1KnM7aWYocyl7dmFyIGM9YShzKSs0LGg9aShsLnVzaGxuKGMpLmRpdlJvdW5kKHIpKTtyZXR1cm4gdSoocytoKk1hdGgucG93KDIsLWMpKX12YXIgZj1yLmJpdExlbmd0aCgpLWwuYml0TGVuZ3RoKCkrNTMsaD1pKGwudXNobG4oZikuZGl2Um91bmQocikpO3JldHVybiBmPDEwMjM/dSpoKk1hdGgucG93KDIsLWYpOihoKj1NYXRoLnBvdygyLC0xMDIzKSx1KmgqTWF0aC5wb3coMiwxMDIzLWYpKX12YXIgaT10KCIuL2xpYi9ibi10by1udW0iKSxhPXQoIi4vbGliL2N0eiIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL2JuLXRvLW51bSI6NTQsIi4vbGliL2N0eiI6NTV9XSw2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxhKXt2YXIgbz1bImZ1bmN0aW9uICIsdCwiKGEsbCxoLCIsbi5qb2luKCIsIiksIil7IixhPyIiOiJ2YXIgaT0iLHI/ImwtMSI6ImgrMSIsIjt3aGlsZShsPD1oKXt2YXIgbT0obCtoKT4+PjEseD1hIixpPyIuZ2V0KG0pIjoiW21dIl07cmV0dXJuIGE/ZS5pbmRleE9mKCJjIik8MD9vLnB1c2goIjtpZih4PT09eSl7cmV0dXJuIG19ZWxzZSBpZih4PD15KXsiKTpvLnB1c2goIjt2YXIgcD1jKHgseSk7aWYocD09PTApe3JldHVybiBtfWVsc2UgaWYocDw9MCl7Iik6by5wdXNoKCI7aWYoIixlLCIpe2k9bTsiKSxyP28ucHVzaCgibD1tKzF9ZWxzZXtoPW0tMX0iKTpvLnB1c2goImg9bS0xfWVsc2V7bD1tKzF9Iiksby5wdXNoKCJ9IiksYT9vLnB1c2goInJldHVybiAtMX07Iik6by5wdXNoKCJyZXR1cm4gaX07Iiksby5qb2luKCIiKX1mdW5jdGlvbiBpKHQsZSxyLGkpe3JldHVybiBuZXcgRnVuY3Rpb24oW24oIkEiLCJ4Iit0KyJ5IixlLFsieSJdLCExLGkpLG4oIkIiLCJ4Iit0KyJ5IixlLFsieSJdLCEwLGkpLG4oIlAiLCJjKHgseSkiK3QrIjAiLGUsWyJ5IiwiYyJdLCExLGkpLG4oIlEiLCJjKHgseSkiK3QrIjAiLGUsWyJ5IiwiYyJdLCEwLGkpLCJmdW5jdGlvbiBkaXNwYXRjaEJzZWFyY2giLHIsIihhLHksYyxsLGgpe2lmKGEuc2hhcGUpe2lmKHR5cGVvZihjKT09PSdmdW5jdGlvbicpe3JldHVybiBRKGEsKGw9PT11bmRlZmluZWQpPzA6bHwwLChoPT09dW5kZWZpbmVkKT9hLnNoYXBlWzBdLTE6aHwwLHksYyl9ZWxzZXtyZXR1cm4gQihhLChjPT09dW5kZWZpbmVkKT8wOmN8MCwobD09PXVuZGVmaW5lZCk/YS5zaGFwZVswXS0xOmx8MCx5KX19ZWxzZXtpZih0eXBlb2YoYyk9PT0nZnVuY3Rpb24nKXtyZXR1cm4gUChhLChsPT09dW5kZWZpbmVkKT8wOmx8MCwoaD09PXVuZGVmaW5lZCk/YS5sZW5ndGgtMTpofDAseSxjKX1lbHNle3JldHVybiBBKGEsKGM9PT11bmRlZmluZWQpPzA6Y3wwLChsPT09dW5kZWZpbmVkKT9hLmxlbmd0aC0xOmx8MCx5KX19fXJldHVybiBkaXNwYXRjaEJzZWFyY2giLHJdLmpvaW4oIiIpKSgpfWUuZXhwb3J0cz17Z2U6aSgiPj0iLCExLCJHRSIpLGd0OmkoIj4iLCExLCJHVCIpLGx0OmkoIjwiLCEwLCJMVCIpLGxlOmkoIjw9IiwhMCwiTEUiKSxlcTppKCItIiwhMCwiRVEiLCEwKX19LHt9XSw2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjsidXNlIHJlc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPTMyO3JldHVybiB0Jj0tdCx0JiZlLS0sNjU1MzUmdCYmKGUtPTE2KSwxNjcxMTkzNSZ0JiYoZS09OCksMjUyNjQ1MTM1JnQmJihlLT00KSw4NTg5OTM0NTkmdCYmKGUtPTIpLDE0MzE2NTU3NjUmdCYmKGUtPTEpLGV9ci5JTlRfQklUUz0zMixyLklOVF9NQVg9MjE0NzQ4MzY0NyxyLklOVF9NSU49LTE8PDMxLHIuc2lnbj1mdW5jdGlvbih0KXtyZXR1cm4odD4wKS0odDwwKX0sci5hYnM9ZnVuY3Rpb24odCl7dmFyIGU9dD4+MzE7cmV0dXJuKHReZSktZX0sci5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZV4odF5lKSYtKHQ8ZSl9LHIubWF4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHReKHReZSkmLSh0PGUpfSxyLmlzUG93Mj1mdW5jdGlvbih0KXtyZXR1cm4hKHQmdC0xfHwhdCl9LHIubG9nMj1mdW5jdGlvbih0KXt2YXIgZSxyO3JldHVybiBlPSh0PjY1NTM1KTw8NCx0Pj4+PWUscj0odD4yNTUpPDwzLHQ+Pj49cixlfD1yLHI9KHQ+MTUpPDwyLHQ+Pj49cixlfD1yLHI9KHQ+Myk8PDEsdD4+Pj1yLChlfD1yKXx0Pj4xfSxyLmxvZzEwPWZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xZTk/OTp0Pj0xZTg/ODp0Pj0xZTc/Nzp0Pj0xZTY/Njp0Pj0xZTU/NTp0Pj0xZTQ/NDp0Pj0xZTM/Mzp0Pj0xMDA/Mjp0Pj0xMD8xOjB9LHIucG9wQ291bnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQtPXQ+Pj4xJjE0MzE2NTU3NjUsMTY4NDMwMDkqKCh0PSg4NTg5OTM0NTkmdCkrKHQ+Pj4yJjg1ODk5MzQ1OSkpKyh0Pj4+NCkmMjUyNjQ1MTM1KT4+PjI0fSxyLmNvdW50VHJhaWxpbmdaZXJvcz1uLHIubmV4dFBvdzI9ZnVuY3Rpb24odCl7cmV0dXJuIHQrPTA9PT10LC0tdCx0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCwodHw9dD4+PjE2KSsxfSxyLnByZXZQb3cyPWZ1bmN0aW9uKHQpe3JldHVybiB0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCwodHw9dD4+PjE2KS0odD4+PjEpfSxyLnBhcml0eT1mdW5jdGlvbih0KXtyZXR1cm4gdF49dD4+PjE2LHRePXQ+Pj44LHRePXQ+Pj40LDI3MDMwPj4+KHQmPTE1KSYxfTt2YXIgaT1uZXcgQXJyYXkoMjU2KTshZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTwyNTY7KytlKXt2YXIgcj1lLG49ZSxpPTc7Zm9yKHI+Pj49MTtyO3I+Pj49MSluPDw9MSxufD0xJnIsLS1pO3RbZV09bjw8aSYyNTV9fShpKSxyLnJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGlbMjU1JnRdPDwyNHxpW3Q+Pj44JjI1NV08PDE2fGlbdD4+PjE2JjI1NV08PDh8aVt0Pj4+MjQmMjU1XX0sci5pbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybiB0Jj02NTUzNSx0PTE2NzExOTM1Jih0fHQ8PDgpLHQ9MjUyNjQ1MTM1Jih0fHQ8PDQpLHQ9ODU4OTkzNDU5Jih0fHQ8PDIpLHQ9MTQzMTY1NTc2NSYodHx0PDwxKSxlJj02NTUzNSxlPTE2NzExOTM1JihlfGU8PDgpLGU9MjUyNjQ1MTM1JihlfGU8PDQpLGU9ODU4OTkzNDU5JihlfGU8PDIpLGU9MTQzMTY1NTc2NSYoZXxlPDwxKSx0fGU8PDF9LHIuZGVpbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj5lJjE0MzE2NTU3NjUsdD04NTg5OTM0NTkmKHR8dD4+PjEpLHQ9MjUyNjQ1MTM1Jih0fHQ+Pj4yKSx0PTE2NzExOTM1Jih0fHQ+Pj40KSwodD02NTUzNSYodHx0Pj4+MTYpKTw8MTY+PjE2fSxyLmludGVybGVhdmUzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCY9MTAyMyx0PTQyNzgxOTAzMzUmKHR8dDw8MTYpLHQ9MjUxNzE5Njk1Jih0fHQ8PDgpLHQ9MzI3MjM1NjAzNSYodHx0PDw0KSx0PTEyMjcxMzM1MTMmKHR8dDw8MiksZSY9MTAyMyxlPTQyNzgxOTAzMzUmKGV8ZTw8MTYpLGU9MjUxNzE5Njk1JihlfGU8PDgpLGU9MzI3MjM1NjAzNSYoZXxlPDw0KSxlPTEyMjcxMzM1MTMmKGV8ZTw8MiksdHw9ZTw8MSxyJj0xMDIzLHI9NDI3ODE5MDMzNSYocnxyPDwxNikscj0yNTE3MTk2OTUmKHJ8cjw8OCkscj0zMjcyMzU2MDM1JihyfHI8PDQpLHI9MTIyNzEzMzUxMyYocnxyPDwyKSx0fHI8PDJ9LHIuZGVpbnRlcmxlYXZlMz1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj5lJjEyMjcxMzM1MTMsdD0zMjcyMzU2MDM1Jih0fHQ+Pj4yKSx0PTI1MTcxOTY5NSYodHx0Pj4+NCksdD00Mjc4MTkwMzM1Jih0fHQ+Pj44KSwodD0xMDIzJih0fHQ+Pj4xNikpPDwyMj4+MjJ9LHIubmV4dENvbWJpbmF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXR8dC0xO3JldHVybiBlKzF8KH5lJi1+ZSktMT4+Pm4odCkrMX19LHt9XSw2NjpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGV8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gaSh0LGUpe3Quc3VwZXJfPWU7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyByLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gYSh0LGUscil7aWYoYS5pc0JOKHQpKXJldHVybiB0O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT10JiYoImxlIiE9PWUmJiJiZSIhPT1lfHwocj1lLGU9MTApLHRoaXMuX2luaXQodHx8MCxlfHwxMCxyfHwiYmUiKSl9ZnVuY3Rpb24gbyh0LGUscil7Zm9yKHZhciBuPTAsaT1NYXRoLm1pbih0Lmxlbmd0aCxyKSxhPWU7YTxpO2ErKyl7dmFyIG89dC5jaGFyQ29kZUF0KGEpLTQ4O248PD00LG58PW8+PTQ5JiZvPD01ND9vLTQ5KzEwOm8+PTE3JiZvPD0yMj9vLTE3KzEwOjE1Jm99cmV0dXJuIG59ZnVuY3Rpb24gcyh0LGUscixuKXtmb3IodmFyIGk9MCxhPU1hdGgubWluKHQubGVuZ3RoLHIpLG89ZTtvPGE7bysrKXt2YXIgcz10LmNoYXJDb2RlQXQobyktNDg7aSo9bixpKz1zPj00OT9zLTQ5KzEwOnM+PTE3P3MtMTcrMTA6c31yZXR1cm4gaX1mdW5jdGlvbiBsKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5iaXRMZW5ndGgoKSkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1yLzI2fDAsaT1yJTI2O2Vbcl09KHQud29yZHNbbl0mMTw8aSk+Pj5pfXJldHVybiBlfWZ1bmN0aW9uIHUodCxlLHIpe3IubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlO3ZhciBuPXQubGVuZ3RoK2UubGVuZ3RofDA7ci5sZW5ndGg9bixuPW4tMXwwO3ZhciBpPTB8dC53b3Jkc1swXSxhPTB8ZS53b3Jkc1swXSxvPWkqYSxzPTY3MTA4ODYzJm8sbD1vLzY3MTA4ODY0fDA7ci53b3Jkc1swXT1zO2Zvcih2YXIgdT0xO3U8bjt1Kyspe2Zvcih2YXIgYz1sPj4+MjYsaD02NzEwODg2MyZsLGY9TWF0aC5taW4odSxlLmxlbmd0aC0xKSxkPU1hdGgubWF4KDAsdS10Lmxlbmd0aCsxKTtkPD1mO2QrKyl7dmFyIHA9dS1kfDA7aT0wfHQud29yZHNbcF0sYT0wfGUud29yZHNbZF0sbz1pKmEraCxjKz1vLzY3MTA4ODY0fDAsaD02NzEwODg2MyZvfXIud29yZHNbdV09MHxoLGw9MHxjfXJldHVybiAwIT09bD9yLndvcmRzW3VdPTB8bDpyLmxlbmd0aC0tLHIuc3RyaXAoKX1mdW5jdGlvbiBjKHQsZSxyKXtyLm5lZ2F0aXZlPWUubmVnYXRpdmVedC5uZWdhdGl2ZSxyLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aDtmb3IodmFyIG49MCxpPTAsYT0wO2E8ci5sZW5ndGgtMTthKyspe3ZhciBvPWk7aT0wO2Zvcih2YXIgcz02NzEwODg2MyZuLGw9TWF0aC5taW4oYSxlLmxlbmd0aC0xKSx1PU1hdGgubWF4KDAsYS10Lmxlbmd0aCsxKTt1PD1sO3UrKyl7dmFyIGM9YS11LGg9MHx0LndvcmRzW2NdLGY9MHxlLndvcmRzW3VdLGQ9aCpmLHA9NjcxMDg4NjMmZDtvPW8rKGQvNjcxMDg4NjR8MCl8MCxwPXArc3wwLHM9NjcxMDg4NjMmcCxvPW8rKHA+Pj4yNil8MCxpKz1vPj4+MjYsbyY9NjcxMDg4NjN9ci53b3Jkc1thXT1zLG49byxvPWl9cmV0dXJuIDAhPT1uP3Iud29yZHNbYV09bjpyLmxlbmd0aC0tLHIuc3RyaXAoKX1mdW5jdGlvbiBoKHQsZSxyKXtyZXR1cm4obmV3IGYpLm11bHAodCxlLHIpfWZ1bmN0aW9uIGYodCxlKXt0aGlzLng9dCx0aGlzLnk9ZX1mdW5jdGlvbiBkKHQsZSl7dGhpcy5uYW1lPXQsdGhpcy5wPW5ldyBhKGUsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBhKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBwKCl7ZC5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIG0oKXtkLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gdigpe2QuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBnKCl7ZC5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIHkodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT1hLl9wcmltZSh0KTt0aGlzLm09ZS5wLHRoaXMucHJpbWU9ZX1lbHNlIG4odC5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT10LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBiKHQpe3kuY2FsbCh0aGlzLHQpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IGEoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9Im9iamVjdCI9PXR5cGVvZiBlP2UuZXhwb3J0cz1hOnIuQk49YSxhLkJOPWEsYS53b3JkU2l6ZT0yNjt2YXIgeDt0cnl7eD10KCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2godCl7fWEuaXNCTj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIGF8fG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJnQuY29uc3RydWN0b3Iud29yZFNpemU9PT1hLndvcmRTaXplJiZBcnJheS5pc0FycmF5KHQud29yZHMpfSxhLm1heD1mdW5jdGlvbih0LGUpe3JldHVybiB0LmNtcChlKT4wP3Q6ZX0sYS5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jbXAoZSk8MD90OmV9LGEucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQsZSxyKXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIodCxlLHIpO2lmKCJvYmplY3QiPT10eXBlb2YgdClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHQsZSxyKTsiaGV4Ij09PWUmJihlPTE2KSxuKGU9PT0oMHxlKSYmZT49MiYmZTw9MzYpLHQ9dC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKTt2YXIgaT0wOyItIj09PXRbMF0mJmkrKywxNj09PWU/dGhpcy5fcGFyc2VIZXgodCxpKTp0aGlzLl9wYXJzZUJhc2UodCxlLGkpLCItIj09PXRbMF0mJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKSwibGUiPT09ciYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGUscil9LGEucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHQsZSxyKXt0PDAmJih0aGlzLm5lZ2F0aXZlPTEsdD0tdCksdDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdF0sdGhpcy5sZW5ndGg9MSk6dDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0LHQvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihuKHQ8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1yJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxyKX0sYS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih0LGUscil7aWYobigibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKSx0Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh0Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT0wO3ZhciBhLG8scz0wO2lmKCJiZSI9PT1yKWZvcihpPXQubGVuZ3RoLTEsYT0wO2k+PTA7aS09MylvPXRbaV18dFtpLTFdPDw4fHRbaS0yXTw8MTYsdGhpcy53b3Jkc1thXXw9bzw8cyY2NzEwODg2Myx0aGlzLndvcmRzW2ErMV09bz4+PjI2LXMmNjcxMDg4NjMsKHMrPTI0KT49MjYmJihzLT0yNixhKyspO2Vsc2UgaWYoImxlIj09PXIpZm9yKGk9MCxhPTA7aTx0Lmxlbmd0aDtpKz0zKW89dFtpXXx0W2krMV08PDh8dFtpKzJdPDwxNix0aGlzLndvcmRzW2FdfD1vPDxzJjY3MTA4ODYzLHRoaXMud29yZHNbYSsxXT1vPj4+MjYtcyY2NzEwODg2Mywocys9MjQpPj0yNiYmKHMtPTI2LGErKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHQsZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1lKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdGhpcy53b3Jkc1tyXT0wO3ZhciBuLGksYT0wO2ZvcihyPXQubGVuZ3RoLTYsbj0wO3I+PWU7ci09NilpPW8odCxyLHIrNiksdGhpcy53b3Jkc1tuXXw9aTw8YSY2NzEwODg2Myx0aGlzLndvcmRzW24rMV18PWk+Pj4yNi1hJjQxOTQzMDMsKGErPTI0KT49MjYmJihhLT0yNixuKyspO3IrNiE9PWUmJihpPW8odCxlLHIrNiksdGhpcy53b3Jkc1tuXXw9aTw8YSY2NzEwODg2Myx0aGlzLndvcmRzW24rMV18PWk+Pj4yNi1hJjQxOTQzMDMpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih0LGUscil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIG49MCxpPTE7aTw9NjcxMDg4NjM7aSo9ZSluKys7bi0tLGk9aS9lfDA7Zm9yKHZhciBhPXQubGVuZ3RoLXIsbz1hJW4sbD1NYXRoLm1pbihhLGEtbykrcix1PTAsYz1yO2M8bDtjKz1uKXU9cyh0LGMsYytuLGUpLHRoaXMuaW11bG4oaSksdGhpcy53b3Jkc1swXSt1PDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXU6dGhpcy5faWFkZG4odSk7aWYoMCE9PW8pe3ZhciBoPTE7Zm9yKHU9cyh0LGMsdC5sZW5ndGgsZSksYz0wO2M8bztjKyspaCo9ZTt0aGlzLmltdWxuKGgpLHRoaXMud29yZHNbMF0rdTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz11OnRoaXMuX2lhZGRuKHUpfX0sYS5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC53b3Jkc1tlXT10aGlzLndvcmRzW2VdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx0LnJlZD10aGlzLnJlZH0sYS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgYShudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHQpLHR9LGEucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24odCl7Zm9yKDt0aGlzLmxlbmd0aDx0Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sYS5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LGEucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIF89WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sdz1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxNPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQsZSl7dD10fHwxMCxlPTB8ZXx8MTt2YXIgcjtpZigxNj09PXR8fCJoZXgiPT09dCl7cj0iIjtmb3IodmFyIGk9MCxhPTAsbz0wO288dGhpcy5sZW5ndGg7bysrKXt2YXIgcz10aGlzLndvcmRzW29dLGw9KDE2Nzc3MjE1JihzPDxpfGEpKS50b1N0cmluZygxNik7YT1zPj4+MjQtaSYxNjc3NzIxNSxyPTAhPT1hfHxvIT09dGhpcy5sZW5ndGgtMT9fWzYtbC5sZW5ndGhdK2wrcjpsK3IsaSs9MixpPj0yNiYmKGktPTI2LG8tLSl9Zm9yKDAhPT1hJiYocj1hLnRvU3RyaW5nKDE2KStyKTtyLmxlbmd0aCVlIT0wOylyPSIwIityO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHI9Ii0iK3IpLHJ9aWYodD09PSgwfHQpJiZ0Pj0yJiZ0PD0zNil7dmFyIHU9d1t0XSxjPU1bdF07cj0iIjt2YXIgaD10aGlzLmNsb25lKCk7Zm9yKGgubmVnYXRpdmU9MDshaC5pc1plcm8oKTspe3ZhciBmPWgubW9kbihjKS50b1N0cmluZyh0KTtoPWguaWRpdm4oYykscj1oLmlzWmVybygpP2YrcjpfW3UtZi5sZW5ndGhdK2Yrcn1mb3IodGhpcy5pc1plcm8oKSYmKHI9IjAiK3IpO3IubGVuZ3RoJWUhPTA7KXI9IjAiK3I7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYocj0iLSIrcikscn1uKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LGEucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP3QrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT90Kz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmbighMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXQ6dH0sYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxhLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiBuKHZvaWQgMCE9PXgpLHRoaXMudG9BcnJheUxpa2UoeCx0LGUpfSxhLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksdCxlKX0sYS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuYnl0ZUxlbmd0aCgpLGE9cnx8TWF0aC5tYXgoMSxpKTtuKGk8PWEsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxuKGE+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBvLHMsbD0ibGUiPT09ZSx1PW5ldyB0KGEpLGM9dGhpcy5jbG9uZSgpO2lmKGwpe2ZvcihzPTA7IWMuaXNaZXJvKCk7cysrKW89Yy5hbmRsbigyNTUpLGMuaXVzaHJuKDgpLHVbc109bztmb3IoO3M8YTtzKyspdVtzXT0wfWVsc2V7Zm9yKHM9MDtzPGEtaTtzKyspdVtzXT0wO2ZvcihzPTA7IWMuaXNaZXJvKCk7cysrKW89Yy5hbmRsbigyNTUpLGMuaXVzaHJuKDgpLHVbYS1zLTFdPW99cmV0dXJuIHV9LE1hdGguY2x6MzI/YS5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbih0KXtyZXR1cm4gMzItTWF0aC5jbHozMih0KX06YS5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbih0KXt2YXIgZT10LHI9MDtyZXR1cm4gZT49NDA5NiYmKHIrPTEzLGU+Pj49MTMpLGU+PTY0JiYocis9NyxlPj4+PTcpLGU+PTgmJihyKz00LGU+Pj49NCksZT49MiYmKHIrPTIsZT4+Pj0yKSxyK2V9LGEucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih0KXtpZigwPT09dClyZXR1cm4gMjY7dmFyIGU9dCxyPTA7cmV0dXJuIDA9PSg4MTkxJmUpJiYocis9MTMsZT4+Pj0xMyksMD09KDEyNyZlKSYmKHIrPTcsZT4+Pj03KSwwPT0oMTUmZSkmJihyKz00LGU+Pj49NCksMD09KDMmZSkmJihyKz0yLGU+Pj49MiksMD09KDEmZSkmJnIrKyxyfSxhLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdLGU9dGhpcy5fY291bnRCaXRzKHQpO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrZX0sYS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgdD0wLGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl7dmFyIHI9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tlXSk7aWYodCs9ciwyNiE9PXIpYnJlYWt9cmV0dXJuIHR9LGEucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LGEucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih0KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LGEucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRlc3RuKHQtMSk/dGhpcy5ub3RuKHQpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LGEucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxhLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sYS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sYS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih0KXtmb3IoO3RoaXMubGVuZ3RoPHQubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy53b3Jkc1tlXT10aGlzLndvcmRzW2VdfHQud29yZHNbZV07cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1b3IodCl9LGEucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHQpOnQuY2xvbmUoKS5pb3IodGhpcyl9LGEucHJvdG90eXBlLnVvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IodCk6dC5jbG9uZSgpLml1b3IodGhpcyl9LGEucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5sZW5ndGg+dC5sZW5ndGg/dDp0aGlzO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXRoaXMud29yZHNbcl09dGhpcy53b3Jkc1tyXSZ0LndvcmRzW3JdO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4oMD09KHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQodCl9LGEucHJvdG90eXBlLmFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQodCk6dC5jbG9uZSgpLmlhbmQodGhpcyl9LGEucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh0KTp0LmNsb25lKCkuaXVhbmQodGhpcyl9LGEucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHQpe3ZhciBlLHI7dGhpcy5sZW5ndGg+dC5sZW5ndGg/KGU9dGhpcyxyPXQpOihlPXQscj10aGlzKTtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPWUud29yZHNbbl1eci53b3Jkc1tuXTtpZih0aGlzIT09ZSlmb3IoO248ZS5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1eG9yKHQpfSxhLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaXMpfSxhLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IodCk6dC5jbG9uZSgpLml1eG9yKHRoaXMpfSxhLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9MHxNYXRoLmNlaWwodC8yNikscj10JTI2O3RoaXMuX2V4cGFuZChlKSxyPjAmJmUtLTtmb3IodmFyIGk9MDtpPGU7aSsrKXRoaXMud29yZHNbaV09NjcxMDg4NjMmfnRoaXMud29yZHNbaV07cmV0dXJuIHI+MCYmKHRoaXMud29yZHNbaV09fnRoaXMud29yZHNbaV0mNjcxMDg4NjM+PjI2LXIpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUubm90bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHQpfSxhLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHQsZSl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciByPXQvMjZ8MCxpPXQlMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChyKzEpLHRoaXMud29yZHNbcl09ZT90aGlzLndvcmRzW3JdfDE8PGk6dGhpcy53b3Jkc1tyXSZ+KDE8PGkpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0KXt2YXIgZTtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlKXJldHVybiB0Lm5lZ2F0aXZlPTAsZT10aGlzLmlzdWIodCksdC5uZWdhdGl2ZT0xLGUuX25vcm1TaWduKCk7dmFyIHIsbjt0aGlzLmxlbmd0aD50Lmxlbmd0aD8ocj10aGlzLG49dCk6KHI9dCxuPXRoaXMpO2Zvcih2YXIgaT0wLGE9MDthPG4ubGVuZ3RoO2ErKyllPSgwfHIud29yZHNbYV0pKygwfG4ud29yZHNbYV0pK2ksdGhpcy53b3Jkc1thXT02NzEwODg2MyZlLGk9ZT4+PjI2O2Zvcig7MCE9PWkmJmE8ci5sZW5ndGg7YSsrKWU9KDB8ci53b3Jkc1thXSkraSx0aGlzLndvcmRzW2FdPTY3MTA4ODYzJmUsaT1lPj4+MjY7aWYodGhpcy5sZW5ndGg9ci5sZW5ndGgsMCE9PWkpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09aSx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYociE9PXRoaXMpZm9yKDthPHIubGVuZ3RoO2ErKyl0aGlzLndvcmRzW2FdPXIud29yZHNbYV07cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gMCE9PXQubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh0Lm5lZ2F0aXZlPTAsZT10aGlzLnN1Yih0KSx0Lm5lZ2F0aXZlXj0xLGUpOjA9PT10Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLGU9dC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLGUpOnRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHQpOnQuY2xvbmUoKS5pYWRkKHRoaXMpfSxhLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQpe2lmKDAhPT10Lm5lZ2F0aXZlKXt0Lm5lZ2F0aXZlPTA7dmFyIGU9dGhpcy5pYWRkKHQpO3JldHVybiB0Lm5lZ2F0aXZlPTEsZS5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZCh0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgcj10aGlzLmNtcCh0KTtpZigwPT09cilyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7dmFyIG4saTtyPjA/KG49dGhpcyxpPXQpOihuPXQsaT10aGlzKTtmb3IodmFyIGE9MCxvPTA7bzxpLmxlbmd0aDtvKyspZT0oMHxuLndvcmRzW29dKS0oMHxpLndvcmRzW29dKSthLGE9ZT4+MjYsdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlO2Zvcig7MCE9PWEmJm88bi5sZW5ndGg7bysrKWU9KDB8bi53b3Jkc1tvXSkrYSxhPWU+PjI2LHRoaXMud29yZHNbb109NjcxMDg4NjMmZTtpZigwPT09YSYmbzxuLmxlbmd0aCYmbiE9PXRoaXMpZm9yKDtvPG4ubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPW4ud29yZHNbb107cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLG8pLG4hPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIodCl9O3ZhciBrPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbz10LndvcmRzLHM9ZS53b3JkcyxsPXIud29yZHMsdT0wLGM9MHxvWzBdLGg9ODE5MSZjLGY9Yz4+PjEzLGQ9MHxvWzFdLHA9ODE5MSZkLG09ZD4+PjEzLHY9MHxvWzJdLGc9ODE5MSZ2LHk9dj4+PjEzLGI9MHxvWzNdLHg9ODE5MSZiLF89Yj4+PjEzLHc9MHxvWzRdLE09ODE5MSZ3LGs9dz4+PjEzLEE9MHxvWzVdLFQ9ODE5MSZBLFM9QT4+PjEzLEU9MHxvWzZdLEw9ODE5MSZFLEM9RT4+PjEzLHo9MHxvWzddLEk9ODE5MSZ6LEQ9ej4+PjEzLFA9MHxvWzhdLE89ODE5MSZQLFI9UD4+PjEzLEY9MHxvWzldLGo9ODE5MSZGLE49Rj4+PjEzLEI9MHxzWzBdLFU9ODE5MSZCLFY9Qj4+PjEzLEg9MHxzWzFdLHE9ODE5MSZILEc9SD4+PjEzLFk9MHxzWzJdLFg9ODE5MSZZLFc9WT4+PjEzLFo9MHxzWzNdLEo9ODE5MSZaLEs9Wj4+PjEzLFE9MHxzWzRdLCQ9ODE5MSZRLHR0PVE+Pj4xMyxldD0wfHNbNV0scnQ9ODE5MSZldCxudD1ldD4+PjEzLGl0PTB8c1s2XSxhdD04MTkxJml0LG90PWl0Pj4+MTMsc3Q9MHxzWzddLGx0PTgxOTEmc3QsdXQ9c3Q+Pj4xMyxjdD0wfHNbOF0saHQ9ODE5MSZjdCxmdD1jdD4+PjEzLGR0PTB8c1s5XSxwdD04MTkxJmR0LG10PWR0Pj4+MTM7ci5uZWdhdGl2ZT10Lm5lZ2F0aXZlXmUubmVnYXRpdmUsci5sZW5ndGg9MTksbj1NYXRoLmltdWwoaCxVKSxpPU1hdGguaW11bChoLFYpLGk9aStNYXRoLmltdWwoZixVKXwwLGE9TWF0aC5pbXVsKGYsVik7dmFyIHZ0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyh2dD4+PjI2KXwwLHZ0Jj02NzEwODg2MyxuPU1hdGguaW11bChwLFUpLGk9TWF0aC5pbXVsKHAsViksaT1pK01hdGguaW11bChtLFUpfDAsYT1NYXRoLmltdWwobSxWKSxuPW4rTWF0aC5pbXVsKGgscSl8MCxpPWkrTWF0aC5pbXVsKGgsRyl8MCxpPWkrTWF0aC5pbXVsKGYscSl8MCxhPWErTWF0aC5pbXVsKGYsRyl8MDt2YXIgZ3Q9KHUrbnwwKSsoKDgxOTEmaSk8PDEzKXwwO3U9KGErKGk+Pj4xMyl8MCkrKGd0Pj4+MjYpfDAsZ3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGcsVSksaT1NYXRoLmltdWwoZyxWKSxpPWkrTWF0aC5pbXVsKHksVSl8MCxhPU1hdGguaW11bCh5LFYpLG49bitNYXRoLmltdWwocCxxKXwwLGk9aStNYXRoLmltdWwocCxHKXwwLGk9aStNYXRoLmltdWwobSxxKXwwLGE9YStNYXRoLmltdWwobSxHKXwwLG49bitNYXRoLmltdWwoaCxYKXwwLGk9aStNYXRoLmltdWwoaCxXKXwwLGk9aStNYXRoLmltdWwoZixYKXwwLGE9YStNYXRoLmltdWwoZixXKXwwO3ZhciB5dD0odStufDApKygoODE5MSZpKTw8MTMpfDA7dT0oYSsoaT4+PjEzKXwwKSsoeXQ+Pj4yNil8MCx5dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoeCxVKSxpPU1hdGguaW11bCh4LFYpLGk9aStNYXRoLmltdWwoXyxVKXwwLGE9TWF0aC5pbXVsKF8sViksbj1uK01hdGguaW11bChnLHEpfDAsaT1pK01hdGguaW11bChnLEcpfDAsaT1pK01hdGguaW11bCh5LHEpfDAsYT1hK01hdGguaW11bCh5LEcpfDAsbj1uK01hdGguaW11bChwLFgpfDAsaT1pK01hdGguaW11bChwLFcpfDAsaT1pK01hdGguaW11bChtLFgpfDAsYT1hK01hdGguaW11bChtLFcpfDAsbj1uK01hdGguaW11bChoLEopfDAsaT1pK01hdGguaW11bChoLEspfDAsaT1pK01hdGguaW11bChmLEopfDAsYT1hK01hdGguaW11bChmLEspfDA7dmFyIGJ0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhidD4+PjI2KXwwLGJ0Jj02NzEwODg2MyxuPU1hdGguaW11bChNLFUpLGk9TWF0aC5pbXVsKE0sViksaT1pK01hdGguaW11bChrLFUpfDAsYT1NYXRoLmltdWwoayxWKSxuPW4rTWF0aC5pbXVsKHgscSl8MCxpPWkrTWF0aC5pbXVsKHgsRyl8MCxpPWkrTWF0aC5pbXVsKF8scSl8MCxhPWErTWF0aC5pbXVsKF8sRyl8MCxuPW4rTWF0aC5pbXVsKGcsWCl8MCxpPWkrTWF0aC5pbXVsKGcsVyl8MCxpPWkrTWF0aC5pbXVsKHksWCl8MCxhPWErTWF0aC5pbXVsKHksVyl8MCxuPW4rTWF0aC5pbXVsKHAsSil8MCxpPWkrTWF0aC5pbXVsKHAsSyl8MCxpPWkrTWF0aC5pbXVsKG0sSil8MCxhPWErTWF0aC5pbXVsKG0sSyl8MCxuPW4rTWF0aC5pbXVsKGgsJCl8MCxpPWkrTWF0aC5pbXVsKGgsdHQpfDAsaT1pK01hdGguaW11bChmLCQpfDAsYT1hK01hdGguaW11bChmLHR0KXwwO3ZhciB4dD0odStufDApKygoODE5MSZpKTw8MTMpfDA7dT0oYSsoaT4+PjEzKXwwKSsoeHQ+Pj4yNil8MCx4dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoVCxVKSxpPU1hdGguaW11bChULFYpLGk9aStNYXRoLmltdWwoUyxVKXwwLGE9TWF0aC5pbXVsKFMsViksbj1uK01hdGguaW11bChNLHEpfDAsaT1pK01hdGguaW11bChNLEcpfDAsaT1pK01hdGguaW11bChrLHEpfDAsYT1hK01hdGguaW11bChrLEcpfDAsbj1uK01hdGguaW11bCh4LFgpfDAsaT1pK01hdGguaW11bCh4LFcpfDAsaT1pK01hdGguaW11bChfLFgpfDAsYT1hK01hdGguaW11bChfLFcpfDAsbj1uK01hdGguaW11bChnLEopfDAsaT1pK01hdGguaW11bChnLEspfDAsaT1pK01hdGguaW11bCh5LEopfDAsYT1hK01hdGguaW11bCh5LEspfDAsbj1uK01hdGguaW11bChwLCQpfDAsaT1pK01hdGguaW11bChwLHR0KXwwLGk9aStNYXRoLmltdWwobSwkKXwwLGE9YStNYXRoLmltdWwobSx0dCl8MCxuPW4rTWF0aC5pbXVsKGgscnQpfDAsaT1pK01hdGguaW11bChoLG50KXwwLGk9aStNYXRoLmltdWwoZixydCl8MCxhPWErTWF0aC5pbXVsKGYsbnQpfDA7dmFyIF90PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhfdD4+PjI2KXwwLF90Jj02NzEwODg2MyxuPU1hdGguaW11bChMLFUpLGk9TWF0aC5pbXVsKEwsViksaT1pK01hdGguaW11bChDLFUpfDAsYT1NYXRoLmltdWwoQyxWKSxuPW4rTWF0aC5pbXVsKFQscSl8MCxpPWkrTWF0aC5pbXVsKFQsRyl8MCxpPWkrTWF0aC5pbXVsKFMscSl8MCxhPWErTWF0aC5pbXVsKFMsRyl8MCxuPW4rTWF0aC5pbXVsKE0sWCl8MCxpPWkrTWF0aC5pbXVsKE0sVyl8MCxpPWkrTWF0aC5pbXVsKGssWCl8MCxhPWErTWF0aC5pbXVsKGssVyl8MCxuPW4rTWF0aC5pbXVsKHgsSil8MCxpPWkrTWF0aC5pbXVsKHgsSyl8MCxpPWkrTWF0aC5pbXVsKF8sSil8MCxhPWErTWF0aC5pbXVsKF8sSyl8MCxuPW4rTWF0aC5pbXVsKGcsJCl8MCxpPWkrTWF0aC5pbXVsKGcsdHQpfDAsaT1pK01hdGguaW11bCh5LCQpfDAsYT1hK01hdGguaW11bCh5LHR0KXwwLG49bitNYXRoLmltdWwocCxydCl8MCxpPWkrTWF0aC5pbXVsKHAsbnQpfDAsaT1pK01hdGguaW11bChtLHJ0KXwwLGE9YStNYXRoLmltdWwobSxudCl8MCxuPW4rTWF0aC5pbXVsKGgsYXQpfDAsaT1pK01hdGguaW11bChoLG90KXwwLGk9aStNYXRoLmltdWwoZixhdCl8MCxhPWErTWF0aC5pbXVsKGYsb3QpfDA7dmFyIHd0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyh3dD4+PjI2KXwwLHd0Jj02NzEwODg2MyxuPU1hdGguaW11bChJLFUpLGk9TWF0aC5pbXVsKEksViksaT1pK01hdGguaW11bChELFUpfDAsYT1NYXRoLmltdWwoRCxWKSxuPW4rTWF0aC5pbXVsKEwscSl8MCxpPWkrTWF0aC5pbXVsKEwsRyl8MCxpPWkrTWF0aC5pbXVsKEMscSl8MCxhPWErTWF0aC5pbXVsKEMsRyl8MCxuPW4rTWF0aC5pbXVsKFQsWCl8MCxpPWkrTWF0aC5pbXVsKFQsVyl8MCxpPWkrTWF0aC5pbXVsKFMsWCl8MCxhPWErTWF0aC5pbXVsKFMsVyl8MCxuPW4rTWF0aC5pbXVsKE0sSil8MCxpPWkrTWF0aC5pbXVsKE0sSyl8MCxpPWkrTWF0aC5pbXVsKGssSil8MCxhPWErTWF0aC5pbXVsKGssSyl8MCxuPW4rTWF0aC5pbXVsKHgsJCl8MCxpPWkrTWF0aC5pbXVsKHgsdHQpfDAsaT1pK01hdGguaW11bChfLCQpfDAsYT1hK01hdGguaW11bChfLHR0KXwwLG49bitNYXRoLmltdWwoZyxydCl8MCxpPWkrTWF0aC5pbXVsKGcsbnQpfDAsaT1pK01hdGguaW11bCh5LHJ0KXwwLGE9YStNYXRoLmltdWwoeSxudCl8MCxuPW4rTWF0aC5pbXVsKHAsYXQpfDAsaT1pK01hdGguaW11bChwLG90KXwwLGk9aStNYXRoLmltdWwobSxhdCl8MCxhPWErTWF0aC5pbXVsKG0sb3QpfDAsbj1uK01hdGguaW11bChoLGx0KXwwLGk9aStNYXRoLmltdWwoaCx1dCl8MCxpPWkrTWF0aC5pbXVsKGYsbHQpfDAsYT1hK01hdGguaW11bChmLHV0KXwwO3ZhciBNdD0odStufDApKygoODE5MSZpKTw8MTMpfDA7dT0oYSsoaT4+PjEzKXwwKSsoTXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoTyxVKSxpPU1hdGguaW11bChPLFYpLGk9aStNYXRoLmltdWwoUixVKXwwLGE9TWF0aC5pbXVsKFIsViksbj1uK01hdGguaW11bChJLHEpfDAsaT1pK01hdGguaW11bChJLEcpfDAsaT1pK01hdGguaW11bChELHEpfDAsYT1hK01hdGguaW11bChELEcpfDAsbj1uK01hdGguaW11bChMLFgpfDAsaT1pK01hdGguaW11bChMLFcpfDAsaT1pK01hdGguaW11bChDLFgpfDAsYT1hK01hdGguaW11bChDLFcpfDAsbj1uK01hdGguaW11bChULEopfDAsaT1pK01hdGguaW11bChULEspfDAsaT1pK01hdGguaW11bChTLEopfDAsYT1hK01hdGguaW11bChTLEspfDAsbj1uK01hdGguaW11bChNLCQpfDAsaT1pK01hdGguaW11bChNLHR0KXwwLGk9aStNYXRoLmltdWwoaywkKXwwLGE9YStNYXRoLmltdWwoayx0dCl8MCxuPW4rTWF0aC5pbXVsKHgscnQpfDAsaT1pK01hdGguaW11bCh4LG50KXwwLGk9aStNYXRoLmltdWwoXyxydCl8MCxhPWErTWF0aC5pbXVsKF8sbnQpfDAsbj1uK01hdGguaW11bChnLGF0KXwwLGk9aStNYXRoLmltdWwoZyxvdCl8MCxpPWkrTWF0aC5pbXVsKHksYXQpfDAsYT1hK01hdGguaW11bCh5LG90KXwwLG49bitNYXRoLmltdWwocCxsdCl8MCxpPWkrTWF0aC5pbXVsKHAsdXQpfDAsaT1pK01hdGguaW11bChtLGx0KXwwLGE9YStNYXRoLmltdWwobSx1dCl8MCxuPW4rTWF0aC5pbXVsKGgsaHQpfDAsaT1pK01hdGguaW11bChoLGZ0KXwwLGk9aStNYXRoLmltdWwoZixodCl8MCxhPWErTWF0aC5pbXVsKGYsZnQpfDA7dmFyIGt0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhrdD4+PjI2KXwwLGt0Jj02NzEwODg2MyxuPU1hdGguaW11bChqLFUpLGk9TWF0aC5pbXVsKGosViksaT1pK01hdGguaW11bChOLFUpfDAsYT1NYXRoLmltdWwoTixWKSxuPW4rTWF0aC5pbXVsKE8scSl8MCxpPWkrTWF0aC5pbXVsKE8sRyl8MCxpPWkrTWF0aC5pbXVsKFIscSl8MCxhPWErTWF0aC5pbXVsKFIsRyl8MCxuPW4rTWF0aC5pbXVsKEksWCl8MCxpPWkrTWF0aC5pbXVsKEksVyl8MCxpPWkrTWF0aC5pbXVsKEQsWCl8MCxhPWErTWF0aC5pbXVsKEQsVyl8MCxuPW4rTWF0aC5pbXVsKEwsSil8MCxpPWkrTWF0aC5pbXVsKEwsSyl8MCxpPWkrTWF0aC5pbXVsKEMsSil8MCxhPWErTWF0aC5pbXVsKEMsSyl8MCxuPW4rTWF0aC5pbXVsKFQsJCl8MCxpPWkrTWF0aC5pbXVsKFQsdHQpfDAsaT1pK01hdGguaW11bChTLCQpfDAsYT1hK01hdGguaW11bChTLHR0KXwwLG49bitNYXRoLmltdWwoTSxydCl8MCxpPWkrTWF0aC5pbXVsKE0sbnQpfDAsaT1pK01hdGguaW11bChrLHJ0KXwwLGE9YStNYXRoLmltdWwoayxudCl8MCxuPW4rTWF0aC5pbXVsKHgsYXQpfDAsaT1pK01hdGguaW11bCh4LG90KXwwLGk9aStNYXRoLmltdWwoXyxhdCl8MCxhPWErTWF0aC5pbXVsKF8sb3QpfDAsbj1uK01hdGguaW11bChnLGx0KXwwLGk9aStNYXRoLmltdWwoZyx1dCl8MCxpPWkrTWF0aC5pbXVsKHksbHQpfDAsYT1hK01hdGguaW11bCh5LHV0KXwwLG49bitNYXRoLmltdWwocCxodCl8MCxpPWkrTWF0aC5pbXVsKHAsZnQpfDAsaT1pK01hdGguaW11bChtLGh0KXwwLGE9YStNYXRoLmltdWwobSxmdCl8MCxuPW4rTWF0aC5pbXVsKGgscHQpfDAsaT1pK01hdGguaW11bChoLG10KXwwLGk9aStNYXRoLmltdWwoZixwdCl8MCxhPWErTWF0aC5pbXVsKGYsbXQpfDA7dmFyIEF0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhBdD4+PjI2KXwwLEF0Jj02NzEwODg2MyxuPU1hdGguaW11bChqLHEpLGk9TWF0aC5pbXVsKGosRyksaT1pK01hdGguaW11bChOLHEpfDAsYT1NYXRoLmltdWwoTixHKSxuPW4rTWF0aC5pbXVsKE8sWCl8MCxpPWkrTWF0aC5pbXVsKE8sVyl8MCxpPWkrTWF0aC5pbXVsKFIsWCl8MCxhPWErTWF0aC5pbXVsKFIsVyl8MCxuPW4rTWF0aC5pbXVsKEksSil8MCxpPWkrTWF0aC5pbXVsKEksSyl8MCxpPWkrTWF0aC5pbXVsKEQsSil8MCxhPWErTWF0aC5pbXVsKEQsSyl8MCxuPW4rTWF0aC5pbXVsKEwsJCl8MCxpPWkrTWF0aC5pbXVsKEwsdHQpfDAsaT1pK01hdGguaW11bChDLCQpfDAsYT1hK01hdGguaW11bChDLHR0KXwwLG49bitNYXRoLmltdWwoVCxydCl8MCxpPWkrTWF0aC5pbXVsKFQsbnQpfDAsaT1pK01hdGguaW11bChTLHJ0KXwwLGE9YStNYXRoLmltdWwoUyxudCl8MCxuPW4rTWF0aC5pbXVsKE0sYXQpfDAsaT1pK01hdGguaW11bChNLG90KXwwLGk9aStNYXRoLmltdWwoayxhdCl8MCxhPWErTWF0aC5pbXVsKGssb3QpfDAsbj1uK01hdGguaW11bCh4LGx0KXwwLGk9aStNYXRoLmltdWwoeCx1dCl8MCxpPWkrTWF0aC5pbXVsKF8sbHQpfDAsYT1hK01hdGguaW11bChfLHV0KXwwLG49bitNYXRoLmltdWwoZyxodCl8MCxpPWkrTWF0aC5pbXVsKGcsZnQpfDAsaT1pK01hdGguaW11bCh5LGh0KXwwLGE9YStNYXRoLmltdWwoeSxmdCl8MCxuPW4rTWF0aC5pbXVsKHAscHQpfDAsaT1pK01hdGguaW11bChwLG10KXwwLGk9aStNYXRoLmltdWwobSxwdCl8MCxhPWErTWF0aC5pbXVsKG0sbXQpfDA7dmFyIFR0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhUdD4+PjI2KXwwLFR0Jj02NzEwODg2MyxuPU1hdGguaW11bChqLFgpLGk9TWF0aC5pbXVsKGosVyksaT1pK01hdGguaW11bChOLFgpfDAsYT1NYXRoLmltdWwoTixXKSxuPW4rTWF0aC5pbXVsKE8sSil8MCxpPWkrTWF0aC5pbXVsKE8sSyl8MCxpPWkrTWF0aC5pbXVsKFIsSil8MCxhPWErTWF0aC5pbXVsKFIsSyl8MCxuPW4rTWF0aC5pbXVsKEksJCl8MCxpPWkrTWF0aC5pbXVsKEksdHQpfDAsaT1pK01hdGguaW11bChELCQpfDAsYT1hK01hdGguaW11bChELHR0KXwwLG49bitNYXRoLmltdWwoTCxydCl8MCxpPWkrTWF0aC5pbXVsKEwsbnQpfDAsaT1pK01hdGguaW11bChDLHJ0KXwwLGE9YStNYXRoLmltdWwoQyxudCl8MCxuPW4rTWF0aC5pbXVsKFQsYXQpfDAsaT1pK01hdGguaW11bChULG90KXwwLGk9aStNYXRoLmltdWwoUyxhdCl8MCxhPWErTWF0aC5pbXVsKFMsb3QpfDAsbj1uK01hdGguaW11bChNLGx0KXwwLGk9aStNYXRoLmltdWwoTSx1dCl8MCxpPWkrTWF0aC5pbXVsKGssbHQpfDAsYT1hK01hdGguaW11bChrLHV0KXwwLG49bitNYXRoLmltdWwoeCxodCl8MCxpPWkrTWF0aC5pbXVsKHgsZnQpfDAsaT1pK01hdGguaW11bChfLGh0KXwwLGE9YStNYXRoLmltdWwoXyxmdCl8MCxuPW4rTWF0aC5pbXVsKGcscHQpfDAsaT1pK01hdGguaW11bChnLG10KXwwLGk9aStNYXRoLmltdWwoeSxwdCl8MCxhPWErTWF0aC5pbXVsKHksbXQpfDA7dmFyIFN0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhTdD4+PjI2KXwwLFN0Jj02NzEwODg2MyxuPU1hdGguaW11bChqLEopLGk9TWF0aC5pbXVsKGosSyksaT1pK01hdGguaW11bChOLEopfDAsYT1NYXRoLmltdWwoTixLKSxuPW4rTWF0aC5pbXVsKE8sJCl8MCxpPWkrTWF0aC5pbXVsKE8sdHQpfDAsaT1pK01hdGguaW11bChSLCQpfDAsYT1hK01hdGguaW11bChSLHR0KXwwLG49bitNYXRoLmltdWwoSSxydCl8MCxpPWkrTWF0aC5pbXVsKEksbnQpfDAsaT1pK01hdGguaW11bChELHJ0KXwwLGE9YStNYXRoLmltdWwoRCxudCl8MCxuPW4rTWF0aC5pbXVsKEwsYXQpfDAsaT1pK01hdGguaW11bChMLG90KXwwLGk9aStNYXRoLmltdWwoQyxhdCl8MCxhPWErTWF0aC5pbXVsKEMsb3QpfDAsbj1uK01hdGguaW11bChULGx0KXwwLGk9aStNYXRoLmltdWwoVCx1dCl8MCxpPWkrTWF0aC5pbXVsKFMsbHQpfDAsYT1hK01hdGguaW11bChTLHV0KXwwLG49bitNYXRoLmltdWwoTSxodCl8MCxpPWkrTWF0aC5pbXVsKE0sZnQpfDAsaT1pK01hdGguaW11bChrLGh0KXwwLGE9YStNYXRoLmltdWwoayxmdCl8MCxuPW4rTWF0aC5pbXVsKHgscHQpfDAsaT1pK01hdGguaW11bCh4LG10KXwwLGk9aStNYXRoLmltdWwoXyxwdCl8MCxhPWErTWF0aC5pbXVsKF8sbXQpfDA7dmFyIEV0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhFdD4+PjI2KXwwLEV0Jj02NzEwODg2MyxuPU1hdGguaW11bChqLCQpLGk9TWF0aC5pbXVsKGosdHQpLGk9aStNYXRoLmltdWwoTiwkKXwwLGE9TWF0aC5pbXVsKE4sdHQpLG49bitNYXRoLmltdWwoTyxydCl8MCxpPWkrTWF0aC5pbXVsKE8sbnQpfDAsaT1pK01hdGguaW11bChSLHJ0KXwwLGE9YStNYXRoLmltdWwoUixudCl8MCxuPW4rTWF0aC5pbXVsKEksYXQpfDAsaT1pK01hdGguaW11bChJLG90KXwwLGk9aStNYXRoLmltdWwoRCxhdCl8MCxhPWErTWF0aC5pbXVsKEQsb3QpfDAsbj1uK01hdGguaW11bChMLGx0KXwwLGk9aStNYXRoLmltdWwoTCx1dCl8MCxpPWkrTWF0aC5pbXVsKEMsbHQpfDAsYT1hK01hdGguaW11bChDLHV0KXwwLG49bitNYXRoLmltdWwoVCxodCl8MCxpPWkrTWF0aC5pbXVsKFQsZnQpfDAsaT1pK01hdGguaW11bChTLGh0KXwwLGE9YStNYXRoLmltdWwoUyxmdCl8MCxuPW4rTWF0aC5pbXVsKE0scHQpfDAsaT1pK01hdGguaW11bChNLG10KXwwLGk9aStNYXRoLmltdWwoayxwdCl8MCxhPWErTWF0aC5pbXVsKGssbXQpfDA7dmFyIEx0PSh1K258MCkrKCg4MTkxJmkpPDwxMyl8MDt1PShhKyhpPj4+MTMpfDApKyhMdD4+PjI2KXwwLEx0Jj02NzEwODg2MyxuPU1hdGguaW11bChqLHJ0KSxpPU1hdGguaW11bChqLG50KSxpPWkrTWF0aC5pbXVsKE4scnQpfDAsYT1NYXRoLmltdWwoTixudCksbj1uK01hdGguaW11bChPLGF0KXwwLGk9aStNYXRoLmltdWwoTyxvdCl8MCxpPWkrTWF0aC5pbXVsKFIsYXQpfDAsYT1hK01hdGguaW11bChSLG90KXwwLG49bitNYXRoLmltdWwoSSxsdCl8MCxpPWkrTWF0aC5pbXVsKEksdXQpfDAsaT1pK01hdGguaW11bChELGx0KXwwLGE9YStNYXRoLmltdWwoRCx1dCl8MCxuPW4rTWF0aC5pbXVsKEwsaHQpfDAsaT1pK01hdGguaW11bChMLGZ0KXwwLGk9aStNYXRoLmltdWwoQyxodCl8MCxhPWErTWF0aC5pbXVsKEMsZnQpfDAsbj1uK01hdGguaW11bChULHB0KXwwLGk9aStNYXRoLmltdWwoVCxtdCl8MCxpPWkrTWF0aC5pbXVsKFMscHQpfDAsYT1hK01hdGguaW11bChTLG10KXwwO3ZhciBDdD0odStufDApKygoODE5MSZpKTw8MTMpfDA7dT0oYSsoaT4+PjEzKXwwKSsoQ3Q+Pj4yNil8MCxDdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixhdCksaT1NYXRoLmltdWwoaixvdCksaT1pK01hdGguaW11bChOLGF0KXwwLAphPU1hdGguaW11bChOLG90KSxuPW4rTWF0aC5pbXVsKE8sbHQpfDAsaT1pK01hdGguaW11bChPLHV0KXwwLGk9aStNYXRoLmltdWwoUixsdCl8MCxhPWErTWF0aC5pbXVsKFIsdXQpfDAsbj1uK01hdGguaW11bChJLGh0KXwwLGk9aStNYXRoLmltdWwoSSxmdCl8MCxpPWkrTWF0aC5pbXVsKEQsaHQpfDAsYT1hK01hdGguaW11bChELGZ0KXwwLG49bitNYXRoLmltdWwoTCxwdCl8MCxpPWkrTWF0aC5pbXVsKEwsbXQpfDAsaT1pK01hdGguaW11bChDLHB0KXwwLGE9YStNYXRoLmltdWwoQyxtdCl8MDt2YXIgenQ9KHUrbnwwKSsoKDgxOTEmaSk8PDEzKXwwO3U9KGErKGk+Pj4xMyl8MCkrKHp0Pj4+MjYpfDAsenQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGosbHQpLGk9TWF0aC5pbXVsKGosdXQpLGk9aStNYXRoLmltdWwoTixsdCl8MCxhPU1hdGguaW11bChOLHV0KSxuPW4rTWF0aC5pbXVsKE8saHQpfDAsaT1pK01hdGguaW11bChPLGZ0KXwwLGk9aStNYXRoLmltdWwoUixodCl8MCxhPWErTWF0aC5pbXVsKFIsZnQpfDAsbj1uK01hdGguaW11bChJLHB0KXwwLGk9aStNYXRoLmltdWwoSSxtdCl8MCxpPWkrTWF0aC5pbXVsKEQscHQpfDAsYT1hK01hdGguaW11bChELG10KXwwO3ZhciBJdD0odStufDApKygoODE5MSZpKTw8MTMpfDA7dT0oYSsoaT4+PjEzKXwwKSsoSXQ+Pj4yNil8MCxJdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixodCksaT1NYXRoLmltdWwoaixmdCksaT1pK01hdGguaW11bChOLGh0KXwwLGE9TWF0aC5pbXVsKE4sZnQpLG49bitNYXRoLmltdWwoTyxwdCl8MCxpPWkrTWF0aC5pbXVsKE8sbXQpfDAsaT1pK01hdGguaW11bChSLHB0KXwwLGE9YStNYXRoLmltdWwoUixtdCl8MDt2YXIgRHQ9KHUrbnwwKSsoKDgxOTEmaSk8PDEzKXwwO3U9KGErKGk+Pj4xMyl8MCkrKER0Pj4+MjYpfDAsRHQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGoscHQpLGk9TWF0aC5pbXVsKGosbXQpLGk9aStNYXRoLmltdWwoTixwdCl8MCxhPU1hdGguaW11bChOLG10KTt2YXIgUHQ9KHUrbnwwKSsoKDgxOTEmaSk8PDEzKXwwO3JldHVybiB1PShhKyhpPj4+MTMpfDApKyhQdD4+PjI2KXwwLFB0Jj02NzEwODg2MyxsWzBdPXZ0LGxbMV09Z3QsbFsyXT15dCxsWzNdPWJ0LGxbNF09eHQsbFs1XT1fdCxsWzZdPXd0LGxbN109TXQsbFs4XT1rdCxsWzldPUF0LGxbMTBdPVR0LGxbMTFdPVN0LGxbMTJdPUV0LGxbMTNdPUx0LGxbMTRdPUN0LGxbMTVdPXp0LGxbMTZdPUl0LGxbMTddPUR0LGxbMThdPVB0LDAhPT11JiYobFsxOV09dSxyLmxlbmd0aCsrKSxyfTtNYXRoLmltdWx8fChrPXUpLGEucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGgrdC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09dC5sZW5ndGg/ayh0aGlzLHQsZSk6cjw2Mz91KHRoaXMsdCxlKTpyPDEwMjQ/Yyh0aGlzLHQsZSk6aCh0aGlzLHQsZSl9LGYucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPWEucHJvdG90eXBlLl9jb3VudEJpdHModCktMSxuPTA7bjx0O24rKyllW25dPXRoaXMucmV2QmluKG4scix0KTtyZXR1cm4gZX0sZi5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHQsZSxyKXtpZigwPT09dHx8dD09PXItMSlyZXR1cm4gdDtmb3IodmFyIG49MCxpPTA7aTxlO2krKylufD0oMSZ0KTw8ZS1pLTEsdD4+PTE7cmV0dXJuIG59LGYucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wO288YTtvKyspbltvXT1lW3Rbb11dLGlbb109clt0W29dXX0sZi5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLnBlcm11dGUoYSx0LGUscixuLGkpO2Zvcih2YXIgbz0xO288aTtvPDw9MSlmb3IodmFyIHM9bzw8MSxsPU1hdGguY29zKDIqTWF0aC5QSS9zKSx1PU1hdGguc2luKDIqTWF0aC5QSS9zKSxjPTA7YzxpO2MrPXMpZm9yKHZhciBoPWwsZj11LGQ9MDtkPG87ZCsrKXt2YXIgcD1yW2MrZF0sbT1uW2MrZF0sdj1yW2MrZCtvXSxnPW5bYytkK29dLHk9aCp2LWYqZztnPWgqZytmKnYsdj15LHJbYytkXT1wK3YsbltjK2RdPW0rZyxyW2MrZCtvXT1wLXYsbltjK2Qrb109bS1nLGQhPT1zJiYoeT1sKmgtdSpmLGY9bCpmK3UqaCxoPXkpfX0sZi5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24odCxlKXt2YXIgcj0xfE1hdGgubWF4KGUsdCksbj0xJnIsaT0wO2ZvcihyPXIvMnwwO3I7cj4+Pj0xKWkrKztyZXR1cm4gMTw8aSsxK259LGYucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih0LGUscil7aWYoIShyPD0xKSlmb3IodmFyIG49MDtuPHIvMjtuKyspe3ZhciBpPXRbbl07dFtuXT10W3Itbi0xXSx0W3Itbi0xXT1pLGk9ZVtuXSxlW25dPS1lW3Itbi0xXSxlW3Itbi0xXT0taX19LGYucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MDtuPGUvMjtuKyspe3ZhciBpPTgxOTIqTWF0aC5yb3VuZCh0WzIqbisxXS9lKStNYXRoLnJvdW5kKHRbMipuXS9lKStyO3Rbbl09NjcxMDg4NjMmaSxyPWk8NjcxMDg4NjQ/MDppLzY3MTA4ODY0fDB9cmV0dXJuIHR9LGYucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24odCxlLHIsaSl7Zm9yKHZhciBhPTAsbz0wO288ZTtvKyspYSs9MHx0W29dLHJbMipvXT04MTkxJmEsYT4+Pj0xMyxyWzIqbysxXT04MTkxJmEsYT4+Pj0xMztmb3Iobz0yKmU7bzxpOysrbylyW29dPTA7bigwPT09YSksbigwPT0oLTgxOTImYSkpfSxmLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT0wO3JldHVybiBlfSxmLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0yKnRoaXMuZ3Vlc3NMZW4xM2IodC5sZW5ndGgsZS5sZW5ndGgpLGk9dGhpcy5tYWtlUkJUKG4pLGE9dGhpcy5zdHViKG4pLG89bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pLGw9bmV3IEFycmF5KG4pLHU9bmV3IEFycmF5KG4pLGM9bmV3IEFycmF5KG4pLGg9bmV3IEFycmF5KG4pLGY9ci53b3JkcztmLmxlbmd0aD1uLHRoaXMuY29udmVydDEzYih0LndvcmRzLHQubGVuZ3RoLG8sbiksdGhpcy5jb252ZXJ0MTNiKGUud29yZHMsZS5sZW5ndGgsdSxuKSx0aGlzLnRyYW5zZm9ybShvLGEscyxsLG4saSksdGhpcy50cmFuc2Zvcm0odSxhLGMsaCxuLGkpO2Zvcih2YXIgZD0wO2Q8bjtkKyspe3ZhciBwPXNbZF0qY1tkXS1sW2RdKmhbZF07bFtkXT1zW2RdKmhbZF0rbFtkXSpjW2RdLHNbZF09cH1yZXR1cm4gdGhpcy5jb25qdWdhdGUocyxsLG4pLHRoaXMudHJhbnNmb3JtKHMsbCxmLGEsbixpKSx0aGlzLmNvbmp1Z2F0ZShmLGEsbiksdGhpcy5ub3JtYWxpemUxM2IoZixuKSxyLm5lZ2F0aXZlPXQubmVnYXRpdmVeZS5uZWdhdGl2ZSxyLmxlbmd0aD10Lmxlbmd0aCtlLmxlbmd0aCxyLnN0cmlwKCl9LGEucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgYShudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHRoaXMubXVsVG8odCxlKX0sYS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgYShudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLGgodGhpcyx0LGUpfSxhLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8odCx0aGlzKX0sYS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQpLG4odDw2NzEwODg2NCk7Zm9yKHZhciBlPTAscj0wO3I8dGhpcy5sZW5ndGg7cisrKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSp0LGE9KDY3MTA4ODYzJmkpKyg2NzEwODg2MyZlKTtlPj49MjYsZSs9aS82NzEwODg2NHwwLGUrPWE+Pj4yNix0aGlzLndvcmRzW3JdPTY3MTA4ODYzJmF9cmV0dXJuIDAhPT1lJiYodGhpcy53b3Jkc1tyXT1lLHRoaXMubGVuZ3RoKyspLHRoaXN9LGEucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0sYS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxhLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxhLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCl7dmFyIGU9bCh0KTtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG5ldyBhKDEpO2Zvcih2YXIgcj10aGlzLG49MDtuPGUubGVuZ3RoJiYwPT09ZVtuXTtuKysscj1yLnNxcigpKTtpZigrK248ZS5sZW5ndGgpZm9yKHZhciBpPXIuc3FyKCk7bjxlLmxlbmd0aDtuKyssaT1pLnNxcigpKTAhPT1lW25dJiYocj1yLm11bChpKSk7cmV0dXJuIHJ9LGEucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGUscj10JTI2LGk9KHQtcikvMjYsYT02NzEwODg2Mz4+PjI2LXI8PDI2LXI7aWYoMCE9PXIpe3ZhciBvPTA7Zm9yKGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl7dmFyIHM9dGhpcy53b3Jkc1tlXSZhLGw9KDB8dGhpcy53b3Jkc1tlXSktczw8cjt0aGlzLndvcmRzW2VdPWx8byxvPXM+Pj4yNi1yfW8mJih0aGlzLndvcmRzW2VdPW8sdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWkpe2ZvcihlPXRoaXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy53b3Jkc1tlK2ldPXRoaXMud29yZHNbZV07Zm9yKGU9MDtlPGk7ZSsrKXRoaXMud29yZHNbZV09MDt0aGlzLmxlbmd0aCs9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4odCl9LGEucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih0LGUscil7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBpO2k9ZT8oZS1lJTI2KS8yNjowO3ZhciBhPXQlMjYsbz1NYXRoLm1pbigodC1hKS8yNix0aGlzLmxlbmd0aCkscz02NzEwODg2M142NzEwODg2Mz4+PmE8PGEsbD1yO2lmKGktPW8saT1NYXRoLm1heCgwLGkpLGwpe2Zvcih2YXIgdT0wO3U8bzt1KyspbC53b3Jkc1t1XT10aGlzLndvcmRzW3VdO2wubGVuZ3RoPW99aWYoMD09PW8pO2Vsc2UgaWYodGhpcy5sZW5ndGg+bylmb3IodGhpcy5sZW5ndGgtPW8sdT0wO3U8dGhpcy5sZW5ndGg7dSsrKXRoaXMud29yZHNbdV09dGhpcy53b3Jkc1t1K29dO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIGM9MDtmb3IodT10aGlzLmxlbmd0aC0xO3U+PTAmJigwIT09Y3x8dT49aSk7dS0tKXt2YXIgaD0wfHRoaXMud29yZHNbdV07dGhpcy53b3Jkc1t1XT1jPDwyNi1hfGg+Pj5hLGM9aCZzfXJldHVybiBsJiYwIT09YyYmKGwud29yZHNbbC5sZW5ndGgrK109YyksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih0LGUscil9LGEucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sYS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LGEucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sYS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4odCl9LGEucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZT10JTI2LHI9KHQtZSkvMjYsaT0xPDxlO3JldHVybiEodGhpcy5sZW5ndGg8PXIpJiYhISh0aGlzLndvcmRzW3JdJmkpfSxhLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlPXQlMjYscj0odC1lKS8yNjtpZihuKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9cilyZXR1cm4gdGhpcztpZigwIT09ZSYmcisrLHRoaXMubGVuZ3RoPU1hdGgubWluKHIsdGhpcy5sZW5ndGgpLDAhPT1lKXt2YXIgaT02NzEwODg2M142NzEwODg2Mz4+PmU8PGU7dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9aX1yZXR1cm4gdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih0KX0sYS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24odCl7cmV0dXJuIG4oIm51bWJlciI9PXR5cGVvZiB0KSxuKHQ8NjcxMDg4NjQpLHQ8MD90aGlzLmlzdWJuKC10KTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHQ/KHRoaXMud29yZHNbMF09dC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHQpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbih0KX0sYS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHQpe3RoaXMud29yZHNbMF0rPXQ7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tlXT49NjcxMDg4NjQ7ZSsrKXRoaXMud29yZHNbZV0tPTY3MTA4ODY0LGU9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbZSsxXT0xOnRoaXMud29yZHNbZSsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxlKzEpLHRoaXN9LGEucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHQpe2lmKG4oIm51bWJlciI9PXR5cGVvZiB0KSxuKHQ8NjcxMDg4NjQpLHQ8MClyZXR1cm4gdGhpcy5pYWRkbigtdCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHQpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXQsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW2VdPDA7ZSsrKXRoaXMud29yZHNbZV0rPTY3MTA4ODY0LHRoaXMud29yZHNbZSsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4odCl9LGEucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih0KX0sYS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sYS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LGEucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih0LGUscil7dmFyIGksYT10Lmxlbmd0aCtyO3RoaXMuX2V4cGFuZChhKTt2YXIgbyxzPTA7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKyl7bz0oMHx0aGlzLndvcmRzW2krcl0pK3M7dmFyIGw9KDB8dC53b3Jkc1tpXSkqZTtvLT02NzEwODg2MyZsLHM9KG8+PjI2KS0obC82NzEwODg2NHwwKSx0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmb31mb3IoO2k8dGhpcy5sZW5ndGgtcjtpKyspbz0oMHx0aGlzLndvcmRzW2krcl0pK3Mscz1vPj4yNix0aGlzLndvcmRzW2krcl09NjcxMDg4NjMmbztpZigwPT09cylyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihuKC0xPT09cykscz0wLGk9MDtpPHRoaXMubGVuZ3RoO2krKylvPS0oMHx0aGlzLndvcmRzW2ldKStzLHM9bz4+MjYsdGhpcy53b3Jkc1tpXT02NzEwODg2MyZvO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoLXQubGVuZ3RoLG49dGhpcy5jbG9uZSgpLGk9dCxvPTB8aS53b3Jkc1tpLmxlbmd0aC0xXTswIT09KHI9MjYtdGhpcy5fY291bnRCaXRzKG8pKSYmKGk9aS51c2hsbihyKSxuLml1c2hsbihyKSxvPTB8aS53b3Jkc1tpLmxlbmd0aC0xXSk7dmFyIHMsbD1uLmxlbmd0aC1pLmxlbmd0aDtpZigibW9kIiE9PWUpe3M9bmV3IGEobnVsbCkscy5sZW5ndGg9bCsxLHMud29yZHM9bmV3IEFycmF5KHMubGVuZ3RoKTtmb3IodmFyIHU9MDt1PHMubGVuZ3RoO3UrKylzLndvcmRzW3VdPTB9dmFyIGM9bi5jbG9uZSgpLl9pc2hsbnN1Ym11bChpLDEsbCk7MD09PWMubmVnYXRpdmUmJihuPWMscyYmKHMud29yZHNbbF09MSkpO2Zvcih2YXIgaD1sLTE7aD49MDtoLS0pe3ZhciBmPTY3MTA4ODY0KigwfG4ud29yZHNbaS5sZW5ndGgraF0pKygwfG4ud29yZHNbaS5sZW5ndGgraC0xXSk7Zm9yKGY9TWF0aC5taW4oZi9vfDAsNjcxMDg4NjMpLG4uX2lzaGxuc3VibXVsKGksZixoKTswIT09bi5uZWdhdGl2ZTspZi0tLG4ubmVnYXRpdmU9MCxuLl9pc2hsbnN1Ym11bChpLDEsaCksbi5pc1plcm8oKXx8KG4ubmVnYXRpdmVePTEpO3MmJihzLndvcmRzW2hdPWYpfXJldHVybiBzJiZzLnN0cmlwKCksbi5zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6c3x8bnVsbCxtb2Q6bn19LGEucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUscil7aWYobighdC5pc1plcm8oKSksdGhpcy5pc1plcm8oKSlyZXR1cm57ZGl2Om5ldyBhKDApLG1vZDpuZXcgYSgwKX07dmFyIGksbyxzO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmU/KHM9dGhpcy5uZWcoKS5kaXZtb2QodCxlKSwibW9kIiE9PWUmJihpPXMuZGl2Lm5lZygpKSwiZGl2IiE9PWUmJihvPXMubW9kLm5lZygpLHImJjAhPT1vLm5lZ2F0aXZlJiZvLmlhZGQodCkpLHtkaXY6aSxtb2Q6b30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZT8ocz10aGlzLmRpdm1vZCh0Lm5lZygpLGUpLCJtb2QiIT09ZSYmKGk9cy5kaXYubmVnKCkpLHtkaXY6aSxtb2Q6cy5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ0Lm5lZ2F0aXZlKT8ocz10aGlzLm5lZygpLmRpdm1vZCh0Lm5lZygpLGUpLCJkaXYiIT09ZSYmKG89cy5tb2QubmVnKCksciYmMCE9PW8ubmVnYXRpdmUmJm8uaXN1Yih0KSkse2RpdjpzLmRpdixtb2Q6b30pOnQubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh0KTwwP3tkaXY6bmV3IGEoMCksbW9kOnRoaXN9OjE9PT10Lmxlbmd0aD8iZGl2Ij09PWU/e2Rpdjp0aGlzLmRpdm4odC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09ZT97ZGl2Om51bGwsbW9kOm5ldyBhKHRoaXMubW9kbih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgYSh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KHQsZSl9LGEucHJvdG90eXBlLmRpdj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXZtb2QodCwiZGl2IiwhMSkuZGl2fSxhLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITEpLm1vZH0sYS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXZtb2QodCwibW9kIiwhMCkubW9kfSxhLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRpdm1vZCh0KTtpZihlLm1vZC5pc1plcm8oKSlyZXR1cm4gZS5kaXY7dmFyIHI9MCE9PWUuZGl2Lm5lZ2F0aXZlP2UubW9kLmlzdWIodCk6ZS5tb2Qsbj10LnVzaHJuKDEpLGk9dC5hbmRsbigxKSxhPXIuY21wKG4pO3JldHVybiBhPDB8fDE9PT1pJiYwPT09YT9lLmRpdjowIT09ZS5kaXYubmVnYXRpdmU/ZS5kaXYuaXN1Ym4oMSk6ZS5kaXYuaWFkZG4oMSl9LGEucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24odCl7bih0PD02NzEwODg2Myk7Zm9yKHZhciBlPSgxPDwyNikldCxyPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKXI9KGUqcisoMHx0aGlzLndvcmRzW2ldKSkldDtyZXR1cm4gcn0sYS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24odCl7bih0PD02NzEwODg2Myk7Zm9yKHZhciBlPTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSs2NzEwODg2NCplO3RoaXMud29yZHNbcl09aS90fDAsZT1pJXR9cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHQpfSxhLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHQpe24oMD09PXQubmVnYXRpdmUpLG4oIXQuaXNaZXJvKCkpO3ZhciBlPXRoaXMscj10LmNsb25lKCk7ZT0wIT09ZS5uZWdhdGl2ZT9lLnVtb2QodCk6ZS5jbG9uZSgpO2Zvcih2YXIgaT1uZXcgYSgxKSxvPW5ldyBhKDApLHM9bmV3IGEoMCksbD1uZXcgYSgxKSx1PTA7ZS5pc0V2ZW4oKSYmci5pc0V2ZW4oKTspZS5pdXNocm4oMSksci5pdXNocm4oMSksKyt1O2Zvcih2YXIgYz1yLmNsb25lKCksaD1lLmNsb25lKCk7IWUuaXNaZXJvKCk7KXtmb3IodmFyIGY9MCxkPTE7MD09KGUud29yZHNbMF0mZCkmJmY8MjY7KytmLGQ8PD0xKTtpZihmPjApZm9yKGUuaXVzaHJuKGYpO2YtLSA+MDspKGkuaXNPZGQoKXx8by5pc09kZCgpKSYmKGkuaWFkZChjKSxvLmlzdWIoaCkpLGkuaXVzaHJuKDEpLG8uaXVzaHJuKDEpO2Zvcih2YXIgcD0wLG09MTswPT0oci53b3Jkc1swXSZtKSYmcDwyNjsrK3AsbTw8PTEpO2lmKHA+MClmb3Ioci5pdXNocm4ocCk7cC0tID4wOykocy5pc09kZCgpfHxsLmlzT2RkKCkpJiYocy5pYWRkKGMpLGwuaXN1YihoKSkscy5pdXNocm4oMSksbC5pdXNocm4oMSk7ZS5jbXAocik+PTA/KGUuaXN1YihyKSxpLmlzdWIocyksby5pc3ViKGwpKTooci5pc3ViKGUpLHMuaXN1YihpKSxsLmlzdWIobykpfXJldHVybnthOnMsYjpsLGdjZDpyLml1c2hsbih1KX19LGEucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih0KXtuKDA9PT10Lm5lZ2F0aXZlKSxuKCF0LmlzWmVybygpKTt2YXIgZT10aGlzLHI9dC5jbG9uZSgpO2U9MCE9PWUubmVnYXRpdmU/ZS51bW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIGk9bmV3IGEoMSksbz1uZXcgYSgwKSxzPXIuY2xvbmUoKTtlLmNtcG4oMSk+MCYmci5jbXBuKDEpPjA7KXtmb3IodmFyIGw9MCx1PTE7MD09KGUud29yZHNbMF0mdSkmJmw8MjY7KytsLHU8PD0xKTtpZihsPjApZm9yKGUuaXVzaHJuKGwpO2wtLSA+MDspaS5pc09kZCgpJiZpLmlhZGQocyksaS5pdXNocm4oMSk7Zm9yKHZhciBjPTAsaD0xOzA9PShyLndvcmRzWzBdJmgpJiZjPDI2OysrYyxoPDw9MSk7aWYoYz4wKWZvcihyLml1c2hybihjKTtjLS0gPjA7KW8uaXNPZGQoKSYmby5pYWRkKHMpLG8uaXVzaHJuKDEpO2UuY21wKHIpPj0wPyhlLmlzdWIociksaS5pc3ViKG8pKTooci5pc3ViKGUpLG8uaXN1YihpKSl9dmFyIGY7cmV0dXJuIGY9MD09PWUuY21wbigxKT9pOm8sZi5jbXBuKDApPDAmJmYuaWFkZCh0KSxmfSxhLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24odCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gdC5hYnMoKTtpZih0LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBlPXRoaXMuY2xvbmUoKSxyPXQuY2xvbmUoKTtlLm5lZ2F0aXZlPTAsci5uZWdhdGl2ZT0wO2Zvcih2YXIgbj0wO2UuaXNFdmVuKCkmJnIuaXNFdmVuKCk7bisrKWUuaXVzaHJuKDEpLHIuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtlLmlzRXZlbigpOyllLml1c2hybigxKTtmb3IoO3IuaXNFdmVuKCk7KXIuaXVzaHJuKDEpO3ZhciBpPWUuY21wKHIpO2lmKGk8MCl7dmFyIGE9ZTtlPXIscj1hfWVsc2UgaWYoMD09PWl8fDA9PT1yLmNtcG4oMSkpYnJlYWs7ZS5pc3ViKHIpfXJldHVybiByLml1c2hsbihuKX0sYS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lZ2NkKHQpLmEudW1vZCh0KX0sYS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxhLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sYS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud29yZHNbMF0mdH0sYS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQpO3ZhciBlPXQlMjYscj0odC1lKS8yNixpPTE8PGU7aWYodGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXMuX2V4cGFuZChyKzEpLHRoaXMud29yZHNbcl18PWksdGhpcztmb3IodmFyIGE9aSxvPXI7MCE9PWEmJm88dGhpcy5sZW5ndGg7bysrKXt2YXIgcz0wfHRoaXMud29yZHNbb107cys9YSxhPXM+Pj4yNixzJj02NzEwODg2Myx0aGlzLndvcmRzW29dPXN9cmV0dXJuIDAhPT1hJiYodGhpcy53b3Jkc1tvXT1hLHRoaXMubGVuZ3RoKyspLHRoaXN9LGEucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxhLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHQpe3ZhciBlPXQ8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIWUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJmUpcmV0dXJuIDE7dGhpcy5zdHJpcCgpO3ZhciByO2lmKHRoaXMubGVuZ3RoPjEpcj0xO2Vsc2V7ZSYmKHQ9LXQpLG4odDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIGk9MHx0aGlzLndvcmRzWzBdO3I9aT09PXQ/MDppPHQ/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtcjpyfSxhLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24odCl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT10Lm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgZT10aGlzLnVjbXAodCk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWU6ZX0sYS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbih0KXtpZih0aGlzLmxlbmd0aD50Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx0Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIGU9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPTB8dGhpcy53b3Jkc1tyXSxpPTB8dC53b3Jkc1tyXTtpZihuIT09aSl7bjxpP2U9LTE6bj5pJiYoZT0xKTticmVha319cmV0dXJuIGV9LGEucHJvdG90eXBlLmd0bj1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXRoaXMuY21wbih0KX0sYS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10aGlzLmNtcCh0KX0sYS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXBuKHQpPj0wfSxhLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wKHQpPj0wfSxhLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24odCl7cmV0dXJuLTE9PT10aGlzLmNtcG4odCl9LGEucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5jbXAodCl9LGEucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KTw9MH0sYS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KTw9MH0sYS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dGhpcy5jbXBuKHQpfSxhLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuY21wKHQpfSxhLnJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHkodCl9LGEucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHQpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG4oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksdC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHQpfSxhLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sYS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlZD10LHRoaXN9LGEucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHQpfSxhLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHQpfSxhLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdCksdGhpcy5yZWQubXVsKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLmltdWwodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LGEucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxhLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sYS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LGEucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxhLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQmJiF0LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx0KX07dmFyIEE9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtkLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGEobnVsbCk7cmV0dXJuIHQud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx0fSxkLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dDtkb3t0aGlzLnNwbGl0KHIsdGhpcy50bXApLHI9dGhpcy5pbXVsSyhyKSxyPXIuaWFkZCh0aGlzLnRtcCksZT1yLmJpdExlbmd0aCgpfXdoaWxlKGU+dGhpcy5uKTt2YXIgbj1lPHRoaXMubj8tMTpyLnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PW4/KHIud29yZHNbMF09MCxyLmxlbmd0aD0xKTpuPjA/ci5pc3ViKHRoaXMucCk6ci5zdHJpcCgpLHJ9LGQucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7dC5pdXNocm4odGhpcy5uLDAsZSl9LGQucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3JldHVybiB0LmltdWwodGhpcy5rKX0saShwLGQpLHAucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPU1hdGgubWluKHQubGVuZ3RoLDkpLG49MDtuPHI7bisrKWUud29yZHNbbl09dC53b3Jkc1tuXTtpZihlLmxlbmd0aD1yLHQubGVuZ3RoPD05KXJldHVybiB0LndvcmRzWzBdPTAsdm9pZCh0Lmxlbmd0aD0xKTt2YXIgaT10LndvcmRzWzldO2ZvcihlLndvcmRzW2UubGVuZ3RoKytdPTQxOTQzMDMmaSxuPTEwO248dC5sZW5ndGg7bisrKXt2YXIgYT0wfHQud29yZHNbbl07dC53b3Jkc1tuLTEwXT0oNDE5NDMwMyZhKTw8NHxpPj4+MjIsaT1hfWk+Pj49MjIsdC53b3Jkc1tuLTEwXT1pLDA9PT1pJiZ0Lmxlbmd0aD4xMD90Lmxlbmd0aC09MTA6dC5sZW5ndGgtPTl9LHAucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3Qud29yZHNbdC5sZW5ndGhdPTAsdC53b3Jkc1t0Lmxlbmd0aCsxXT0wLHQubGVuZ3RoKz0yO2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49MHx0LndvcmRzW3JdO2UrPTk3NypuLHQud29yZHNbcl09NjcxMDg4NjMmZSxlPTY0Km4rKGUvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiYodC5sZW5ndGgtLSwwPT09dC53b3Jkc1t0Lmxlbmd0aC0xXSYmdC5sZW5ndGgtLSksdH0saShtLGQpLGkodixkKSxpKGcsZCksZy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj0xOSooMHx0LndvcmRzW3JdKStlLGk9NjcxMDg4NjMmbjtuPj4+PTI2LHQud29yZHNbcl09aSxlPW59cmV0dXJuIDAhPT1lJiYodC53b3Jkc1t0Lmxlbmd0aCsrXT1lKSx0fSxhLl9wcmltZT1mdW5jdGlvbih0KXtpZihBW3RdKXJldHVybiBBW3RdO3ZhciBlO2lmKCJrMjU2Ij09PXQpZT1uZXcgcDtlbHNlIGlmKCJwMjI0Ij09PXQpZT1uZXcgbTtlbHNlIGlmKCJwMTkyIj09PXQpZT1uZXcgdjtlbHNle2lmKCJwMjU1MTkiIT09dCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit0KTtlPW5ldyBnfXJldHVybiBBW3RdPWUsZX0seS5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24odCl7bigwPT09dC5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKHQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LHkucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHQsZSl7bigwPT0odC5uZWdhdGl2ZXxlLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxuKHQucmVkJiZ0LnJlZD09PWUucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LHkucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHQpLl9mb3JjZVJlZCh0aGlzKTp0LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LHkucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXtyZXR1cm4gdC5pc1plcm8oKT90LmNsb25lKCk6dGhpcy5tLnN1Yih0KS5fZm9yY2VSZWQodGhpcyl9LHkucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmFkZChlKTtyZXR1cm4gci5jbXAodGhpcy5tKT49MCYmci5pc3ViKHRoaXMubSksci5fZm9yY2VSZWQodGhpcyl9LHkucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5pYWRkKGUpO3JldHVybiByLmNtcCh0aGlzLm0pPj0wJiZyLmlzdWIodGhpcy5tKSxyfSx5LnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5zdWIoZSk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyLl9mb3JjZVJlZCh0aGlzKX0seS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmlzdWIoZSk7cmV0dXJuIHIuY21wbigwKTwwJiZyLmlhZGQodGhpcy5tKSxyfSx5LnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh0KSx0aGlzLmltb2QodC51c2hsbihlKSl9LHkucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LGUpLHRoaXMuaW1vZCh0LmltdWwoZSkpfSx5LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih0LGUpLHRoaXMuaW1vZCh0Lm11bChlKSl9LHkucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW11bCh0LHQuY2xvbmUoKSl9LHkucHJvdG90eXBlLnNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5tdWwodCx0KX0seS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih0KXtpZih0LmlzWmVybygpKXJldHVybiB0LmNsb25lKCk7dmFyIGU9dGhpcy5tLmFuZGxuKDMpO2lmKG4oZSUyPT0xKSwzPT09ZSl7dmFyIHI9dGhpcy5tLmFkZChuZXcgYSgxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh0LHIpfWZvcih2YXIgaT10aGlzLm0uc3VibigxKSxvPTA7IWkuaXNaZXJvKCkmJjA9PT1pLmFuZGxuKDEpOylvKyssaS5pdXNocm4oMSk7bighaS5pc1plcm8oKSk7dmFyIHM9bmV3IGEoMSkudG9SZWQodGhpcyksbD1zLnJlZE5lZygpLHU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLGM9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihjPW5ldyBhKDIqYypjKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coYyx1KS5jbXAobCk7KWMucmVkSUFkZChsKTtmb3IodmFyIGg9dGhpcy5wb3coYyxpKSxmPXRoaXMucG93KHQsaS5hZGRuKDEpLml1c2hybigxKSksZD10aGlzLnBvdyh0LGkpLHA9bzswIT09ZC5jbXAocyk7KXtmb3IodmFyIG09ZCx2PTA7MCE9PW0uY21wKHMpO3YrKyltPW0ucmVkU3FyKCk7bih2PHApO3ZhciBnPXRoaXMucG93KGgsbmV3IGEoMSkuaXVzaGxuKHAtdi0xKSk7Zj1mLnJlZE11bChnKSxoPWcucmVkU3FyKCksZD1kLnJlZE11bChoKSxwPXZ9cmV0dXJuIGZ9LHkucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7dmFyIGU9dC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PWUubmVnYXRpdmU/KGUubmVnYXRpdmU9MCx0aGlzLmltb2QoZSkucmVkTmVnKCkpOnRoaXMuaW1vZChlKX0seS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHQsZSl7aWYoZS5pc1plcm8oKSlyZXR1cm4gbmV3IGEoMSk7aWYoMD09PWUuY21wbigxKSlyZXR1cm4gdC5jbG9uZSgpO3ZhciByPW5ldyBBcnJheSgxNik7clswXT1uZXcgYSgxKS50b1JlZCh0aGlzKSxyWzFdPXQ7Zm9yKHZhciBuPTI7bjxyLmxlbmd0aDtuKyspcltuXT10aGlzLm11bChyW24tMV0sdCk7dmFyIGk9clswXSxvPTAscz0wLGw9ZS5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PWwmJihsPTI2KSxuPWUubGVuZ3RoLTE7bj49MDtuLS0pe2Zvcih2YXIgdT1lLndvcmRzW25dLGM9bC0xO2M+PTA7Yy0tKXt2YXIgaD11Pj5jJjE7aSE9PXJbMF0mJihpPXRoaXMuc3FyKGkpKSwwIT09aHx8MCE9PW8/KG88PD0xLG98PWgsKDQ9PT0rK3N8fDA9PT1uJiYwPT09YykmJihpPXRoaXMubXVsKGkscltvXSkscz0wLG89MCkpOnM9MH1sPTI2fXJldHVybiBpfSx5LnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24odCl7dmFyIGU9dC51bW9kKHRoaXMubSk7cmV0dXJuIGU9PT10P2UuY2xvbmUoKTplfSx5LnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgZT10LmNsb25lKCk7cmV0dXJuIGUucmVkPW51bGwsZX0sYS5tb250PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYih0KX0saShiLHkpLGIucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbW9kKHQudXNobG4odGhpcy5zaGlmdCkpfSxiLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmltb2QodC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIGUucmVkPW51bGwsZX0sYi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe2lmKHQuaXNaZXJvKCl8fGUuaXNaZXJvKCkpcmV0dXJuIHQud29yZHNbMF09MCx0Lmxlbmd0aD0xLHQ7dmFyIHI9dC5pbXVsKGUpLG49ci5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksaT1yLmlzdWIobikuaXVzaHJuKHRoaXMuc2hpZnQpLGE9aTtyZXR1cm4gaS5jbXAodGhpcy5tKT49MD9hPWkuaXN1Yih0aGlzLm0pOmkuY21wbigwKTwwJiYoYT1pLmlhZGQodGhpcy5tKSksYS5fZm9yY2VSZWQodGhpcyl9LGIucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe2lmKHQuaXNaZXJvKCl8fGUuaXNaZXJvKCkpcmV0dXJuIG5ldyBhKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgcj10Lm11bChlKSxuPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGk9ci5pc3ViKG4pLml1c2hybih0aGlzLnNoaWZ0KSxvPWk7cmV0dXJuIGkuY21wKHRoaXMubSk+PTA/bz1pLmlzdWIodGhpcy5tKTppLmNtcG4oMCk8MCYmKG89aS5pYWRkKHRoaXMubSkpLG8uX2ZvcmNlUmVkKHRoaXMpfSxiLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KHZvaWQgMD09PWV8fGUsdGhpcyl9LHt9XSw2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlLHIsbixpPXQubGVuZ3RoLGE9MDtmb3IoZT0wO2U8aTsrK2UpYSs9dFtlXS5sZW5ndGg7dmFyIG89bmV3IEFycmF5KGEpLHM9MDtmb3IoZT0wO2U8aTsrK2Upe3ZhciBsPXRbZV0sdT1sLmxlbmd0aDtmb3Iocj0wO3I8dTsrK3Ipe3ZhciBjPW9bcysrXT1uZXcgQXJyYXkodS0xKSxoPTA7Zm9yKG49MDtuPHU7KytuKW4hPT1yJiYoY1toKytdPWxbbl0pO2lmKDEmcil7dmFyIGY9Y1sxXTtjWzFdPWNbMF0sY1swXT1mfX19cmV0dXJuIG99ZS5leHBvcnRzPW59LHt9XSw2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPTA7cjx0OysrcilpZighKGVbcl08PWVbcit0XSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gaSh0LGUscixpKXtmb3IodmFyIGE9MCxvPTAscz0wLGw9dC5sZW5ndGg7czxsOysrcyl7dmFyIHU9dFtzXTtpZighbihlLHUpKXtmb3IodmFyIGM9MDtjPDIqZTsrK2MpclthKytdPXVbY107aVtvKytdPXN9fXJldHVybiBvfWZ1bmN0aW9uIGEodCxlLHIsbil7dmFyIGE9dC5sZW5ndGgsbz1lLmxlbmd0aDtpZighKGE8PTB8fG88PTApKXt2YXIgcz10WzBdLmxlbmd0aD4+PjE7aWYoIShzPD0wKSl7dmFyIGwsdT1oLm1hbGxvY0RvdWJsZSgyKnMqYSksYz1oLm1hbGxvY0ludDMyKGEpO2lmKChhPWkodCxzLHUsYykpPjApe2lmKDE9PT1zJiZuKWYuaW5pdChhKSxsPWYuc3dlZXBDb21wbGV0ZShzLHIsMCxhLHUsYywwLGEsdSxjKTtlbHNle3ZhciBwPWgubWFsbG9jRG91YmxlKDIqcypvKSxtPWgubWFsbG9jSW50MzIobyk7bz1pKGUscyxwLG0pLG8+MCYmKGYuaW5pdChhK28pLGw9MT09PXM/Zi5zd2VlcEJpcGFydGl0ZShzLHIsMCxhLHUsYywwLG8scCxtKTpkKHMscixuLGEsdSxjLG8scCxtKSxoLmZyZWUocCksaC5mcmVlKG0pKX1oLmZyZWUodSksaC5mcmVlKGMpfXJldHVybiBsfX19ZnVuY3Rpb24gbyh0LGUpe2MucHVzaChbdCxlXSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gYz1bXSxhKHQsdCxvLCEwKSxjfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gYz1bXSxhKHQsZSxvLCExKSxjfWZ1bmN0aW9uIHUodCxlLHIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6cmV0dXJuIHModCk7Y2FzZSAyOnJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2EodCx0LGUsITApOmwodCxlKTtjYXNlIDM6cmV0dXJuIGEodCxlLHIsITEpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJib3gtaW50ZXJzZWN0OiBJbnZhbGlkIGFyZ3VtZW50cyIpfX1lLmV4cG9ydHM9dTt2YXIgYyxoPXQoInR5cGVkYXJyYXktcG9vbCIpLGY9dCgiLi9saWIvc3dlZXAiKSxkPXQoIi4vbGliL2ludGVyc2VjdCIpfSx7Ii4vbGliL2ludGVyc2VjdCI6NzAsIi4vbGliL3N3ZWVwIjo3NCwidHlwZWRhcnJheS1wb29sIjo1Mzl9XSw2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj0iYnJ1dGVGb3JjZSIrKHQ/IlJlZCI6IkJsdWUiKSsoZT8iRmxpcCI6IiIpKyhyPyJGdWxsIjoiIiksaT1bImZ1bmN0aW9uICIsbiwiKCIsdy5qb2luKCksIil7IiwidmFyICIsdSwiPTIqIixhLCI7Il0sbD0iZm9yKHZhciBpPSIrYysiLCIrcCsiPSIrdSsiKiIrYysiO2k8IitoKyI7KytpLCIrcCsiKz0iK3UrIil7dmFyIHgwPSIrZisiWyIrbysiKyIrcCsiXSx4MT0iK2YrIlsiK28rIisiK3ArIisiK2ErIl0seGk9IitkKyJbaV07IixNPSJmb3IodmFyIGo9IittKyIsIitiKyI9Iit1KyIqIittKyI7ajwiK3YrIjsrK2osIitiKyIrPSIrdSsiKXt2YXIgeTA9IitnKyJbIitvKyIrIitiKyJdLCIrKHI/InkxPSIrZysiWyIrbysiKyIrYisiKyIrYSsiXSwiOiIiKSsieWk9Iit5KyJbal07IjtyZXR1cm4gdD9pLnB1c2gobCxfLCI6IixNKTppLnB1c2goTSxfLCI6IixsKSxyP2kucHVzaCgiaWYoeTE8eDB8fHgxPHkwKWNvbnRpbnVlOyIpOmU/aS5wdXNoKCJpZih5MDw9eDB8fHgxPHkwKWNvbnRpbnVlOyIpOmkucHVzaCgiaWYoeTA8eDB8fHgxPHkwKWNvbnRpbnVlOyIpLGkucHVzaCgiZm9yKHZhciBrPSIrbysiKzE7azwiK2ErIjsrK2spe3ZhciByMD0iK2YrIltrKyIrcCsiXSxyMT0iK2YrIltrKyIrYSsiKyIrcCsiXSxiMD0iK2crIltrKyIrYisiXSxiMT0iK2crIltrKyIrYSsiKyIrYisiXTtpZihyMTxiMHx8YjE8cjApY29udGludWUgIitfKyI7fXZhciAiK3grIj0iK3MrIigiKSxlP2kucHVzaCgieWkseGkiKTppLnB1c2goInhpLHlpIiksaS5wdXNoKCIpO2lmKCIreCsiIT09dm9pZCAwKXJldHVybiAiK3grIjt9fX0iKSx7bmFtZTpuLGNvZGU6aS5qb2luKCIiKX19ZnVuY3Rpb24gaSh0KXtmdW5jdGlvbiBlKGUscil7dmFyIGE9bihlLHIsdCk7aS5wdXNoKGEuY29kZSksby5wdXNoKCJyZXR1cm4gIithLm5hbWUrIigiK3cuam9pbigpKyIpOyIpfXZhciByPSJicnV0ZUZvcmNlIisodD8iRnVsbCI6IlBhcnRpYWwiKSxpPVtdLGE9dy5zbGljZSgpO3R8fGEuc3BsaWNlKDMsMCxsKTt2YXIgbz1bImZ1bmN0aW9uICIrcisiKCIrYS5qb2luKCkrIil7Il07by5wdXNoKCJpZigiK2grIi0iK2MrIj4iK3YrIi0iK20rIil7IiksdD8oZSghMCwhMSksby5wdXNoKCJ9ZWxzZXsiKSxlKCExLCExKSk6KG8ucHVzaCgiaWYoIitsKyIpeyIpLGUoITAsITApLG8ucHVzaCgifWVsc2V7IiksZSghMCwhMSksby5wdXNoKCJ9fWVsc2V7aWYoIitsKyIpeyIpLGUoITEsITApLG8ucHVzaCgifWVsc2V7IiksZSghMSwhMSksby5wdXNoKCJ9IikpLG8ucHVzaCgifX1yZXR1cm4gIityKTt2YXIgcz1pLmpvaW4oIiIpK28uam9pbigiIik7cmV0dXJuIG5ldyBGdW5jdGlvbihzKSgpfXZhciBhPSJkIixvPSJheCIscz0idnYiLGw9ImZwIix1PSJlcyIsYz0icnMiLGg9InJlIixmPSJyYiIsZD0icmkiLHA9InJwIixtPSJicyIsdj0iYmUiLGc9ImJiIix5PSJiaSIsYj0iYnAiLHg9InJ2IixfPSJRIix3PVthLG8scyxjLGgsZixkLG0sdixnLHldO3IucGFydGlhbD1pKCExKSxyLmZ1bGw9aSghMCl9LHt9XSw3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9OCp1LmxvZzIoZSsxKSoodCsxKXwwLG49dS5uZXh0UG93MihBKnIpO1MubGVuZ3RoPG4mJihsLmZyZWUoUyksUz1sLm1hbGxvY0ludDMyKG4pKTt2YXIgaT11Lm5leHRQb3cyKFQqcik7RTxpJiYobC5mcmVlKEUpLEU9bC5tYWxsb2NEb3VibGUoaSkpfWZ1bmN0aW9uIGkodCxlLHIsbixpLGEsbyxzLGwpe3ZhciB1PUEqdDtTW3VdPWUsU1t1KzFdPXIsU1t1KzJdPW4sU1t1KzNdPWksU1t1KzRdPWEsU1t1KzVdPW87dmFyIGM9VCp0O0VbY109cyxFW2MrMV09bH1mdW5jdGlvbiBhKHQsZSxyLG4saSxhLG8scyxsLHUsYyl7dmFyIGg9Mip0LGY9bCpoLGQ9dVtmK2VdO3Q6Zm9yKHZhciBwPWksbT1pKmg7cDxhOysrcCxtKz1oKXt2YXIgdj1vW20rZV0sZz1vW20rZSt0XTtpZighKGQ8dnx8ZzxkKSYmKCFufHxkIT09dikpe2Zvcih2YXIgeT1zW3BdLGI9ZSsxO2I8dDsrK2Ipe3ZhciB2PW9bbStiXSxnPW9bbStiK3RdLHg9dVtmK2JdLF89dVtmK2IrdF07aWYoZzx4fHxfPHYpY29udGludWUgdH12YXIgdztpZih2b2lkIDAhPT0odz1uP3IoYyx5KTpyKHksYykpKXJldHVybiB3fX19ZnVuY3Rpb24gbyh0LGUscixuLGksYSxvLHMsbCx1KXt2YXIgYz0yKnQsaD1zKmMsZj1sW2grZV07dDpmb3IodmFyIGQ9bixwPW4qYztkPGk7KytkLHArPWMpe3ZhciBtPW9bZF07aWYobSE9PXUpe3ZhciB2PWFbcCtlXSxnPWFbcCtlK3RdO2lmKCEoZjx2fHxnPGYpKXtmb3IodmFyIHk9ZSsxO3k8dDsrK3kpe3ZhciB2PWFbcCt5XSxnPWFbcCt5K3RdLGI9bFtoK3ldLHg9bFtoK3krdF07aWYoZzxifHx4PHYpY29udGludWUgdH12YXIgXz1yKG0sdSk7aWYodm9pZCAwIT09XylyZXR1cm4gX319fX1mdW5jdGlvbiBzKHQsZSxyLHMsbCx1LGMsbSxMKXtuKHQscytjKTt2YXIgQyx6PTAsST0yKnQ7Zm9yKGkoeisrLDAsMCxzLDAsYyxyPzE2OjAsLTEvMCwxLzApLHJ8fGkoeisrLDAsMCxjLDAscywxLC0xLzAsMS8wKTt6PjA7KXt6LT0xO3ZhciBEPXoqQSxQPVNbRF0sTz1TW0QrMV0sUj1TW0QrMl0sRj1TW0QrM10saj1TW0QrNF0sTj1TW0QrNV0sQj16KlQsVT1FW0JdLFY9RVtCKzFdLEg9MSZOLHE9ISEoMTYmTiksRz1sLFk9dSxYPW0sVz1MO2lmKEgmJihHPW0sWT1MLFg9bCxXPXUpLCEoMiZOJiYoUj1fKHQsUCxPLFIsRyxZLFYpLE8+PVIpfHw0Jk4mJihPPXcodCxQLE8sUixHLFksVSkpPj1SKSl7dmFyIFo9Ui1PLEo9ai1GO2lmKHEpe2lmKHQqWiooWitKKTx5KXtpZih2b2lkIDAhPT0oQz1kLnNjYW5Db21wbGV0ZSh0LFAsZSxPLFIsRyxZLEYsaixYLFcpKSlyZXR1cm4gQztjb250aW51ZX19ZWxzZXtpZih0Kk1hdGgubWluKFosSik8dil7aWYodm9pZCAwIT09KEM9aCh0LFAsZSxILE8sUixHLFksRixqLFgsVykpKXJldHVybiBDO2NvbnRpbnVlfWlmKHQqWipKPGcpe2lmKHZvaWQgMCE9PShDPWQuc2NhbkJpcGFydGl0ZSh0LFAsZSxILE8sUixHLFksRixqLFgsVykpKXJldHVybiBDO2NvbnRpbnVlfX12YXIgSz1iKHQsUCxPLFIsRyxZLFUsVik7aWYoTzxLKWlmKHQqKEstTyk8dil7aWYodm9pZCAwIT09KEM9Zih0LFArMSxlLE8sSyxHLFksRixqLFgsVykpKXJldHVybiBDfWVsc2UgaWYoUD09PXQtMil7aWYodm9pZCAwIT09KEM9SD9kLnN3ZWVwQmlwYXJ0aXRlKHQsZSxGLGosWCxXLE8sSyxHLFkpOmQuc3dlZXBCaXBhcnRpdGUodCxlLE8sSyxHLFksRixqLFgsVykpKXJldHVybiBDfWVsc2UgaSh6KyssUCsxLE8sSyxGLGosSCwtMS8wLDEvMCksaSh6KyssUCsxLEYsaixPLEssMV5ILC0xLzAsMS8wKTtpZihLPFIpe3ZhciBRPXAodCxQLEYsaixYLFcpLCQ9WFtJKlErUF0sdHQ9eCh0LFAsUSxqLFgsVywkKTtpZih0dDxqJiZpKHorKyxQLEssUix0dCxqLCg0fEgpKyhxPzE2OjApLCQsViksRjxRJiZpKHorKyxQLEssUixGLFEsKDJ8SCkrKHE/MTY6MCksVSwkKSxRKzE9PT10dCl7aWYodm9pZCAwIT09KEM9cT9vKHQsUCxlLEssUixHLFksUSxYLFdbUV0pOmEodCxQLGUsSCxLLFIsRyxZLFEsWCxXW1FdKSkpcmV0dXJuIEN9ZWxzZSBpZihRPHR0KXt2YXIgZXQ7aWYocSl7aWYoZXQ9TSh0LFAsSyxSLEcsWSwkKSxLPGV0KXt2YXIgcnQ9eCh0LFAsSyxldCxHLFksJCk7aWYoUD09PXQtMil7aWYoSzxydCYmdm9pZCAwIT09KEM9ZC5zd2VlcENvbXBsZXRlKHQsZSxLLHJ0LEcsWSxRLHR0LFgsVykpKXJldHVybiBDO2lmKHJ0PGV0JiZ2b2lkIDAhPT0oQz1kLnN3ZWVwQmlwYXJ0aXRlKHQsZSxydCxldCxHLFksUSx0dCxYLFcpKSlyZXR1cm4gQ31lbHNlIEs8cnQmJmkoeisrLFArMSxLLHJ0LFEsdHQsMTYsLTEvMCwxLzApLHJ0PGV0JiYoaSh6KyssUCsxLHJ0LGV0LFEsdHQsMCwtMS8wLDEvMCksaSh6KyssUCsxLFEsdHQscnQsZXQsMSwtMS8wLDEvMCkpfX1lbHNlIGV0PUg/ayh0LFAsSyxSLEcsWSwkKTpNKHQsUCxLLFIsRyxZLCQpLEs8ZXQmJihQPT09dC0yP0M9SD9kLnN3ZWVwQmlwYXJ0aXRlKHQsZSxRLHR0LFgsVyxLLGV0LEcsWSk6ZC5zd2VlcEJpcGFydGl0ZSh0LGUsSyxldCxHLFksUSx0dCxYLFcpOihpKHorKyxQKzEsSyxldCxRLHR0LEgsLTEvMCwxLzApLGkoeisrLFArMSxRLHR0LEssZXQsMV5ILC0xLzAsMS8wKSkpfX19fX1lLmV4cG9ydHM9czt2YXIgbD10KCJ0eXBlZGFycmF5LXBvb2wiKSx1PXQoImJpdC10d2lkZGxlIiksYz10KCIuL2JydXRlIiksaD1jLnBhcnRpYWwsZj1jLmZ1bGwsZD10KCIuL3N3ZWVwIikscD10KCIuL21lZGlhbiIpLG09dCgiLi9wYXJ0aXRpb24iKSx2PTEyOCxnPTE8PDIyLHk9MTw8MjIsYj1tKCIhKGxvPj1wMCkmJiEocDE+PWhpKSIsWyJwMCIsInAxIl0pLHg9bSgibG89PT1wMCIsWyJwMCJdKSxfPW0oImxvPHAwIixbInAwIl0pLHc9bSgiaGk8PXAwIixbInAwIl0pLE09bSgibG88PXAwJiZwMDw9aGkiLFsicDAiXSksaz1tKCJsbzxwMCYmcDA8PWhpIixbInAwIl0pLEE9NixUPTIsUz1sLm1hbGxvY0ludDMyKDEwMjQpLEU9bC5tYWxsb2NEb3VibGUoMTAyNCl9LHsiLi9icnV0ZSI6NjksIi4vbWVkaWFuIjo3MSwiLi9wYXJ0aXRpb24iOjcyLCIuL3N3ZWVwIjo3NCwiYml0LXR3aWRkbGUiOjY1LCJ0eXBlZGFycmF5LXBvb2wiOjUzOX1dLDcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpLGEpe2Zvcih2YXIgbz0yKnQscz1vKihyKzEpK2UsbD1yKzE7bDxuOysrbCxzKz1vKWZvcih2YXIgdT1pW3NdLGM9bCxoPW8qKGwtMSk7Yz5yJiZpW2grZV0+dTstLWMsaC09byl7Zm9yKHZhciBmPWgsZD1oK28scD0wO3A8bzsrK3AsKytmLCsrZCl7dmFyIG09aVtmXTtpW2ZdPWlbZF0saVtkXT1tfXZhciB2PWFbY107YVtjXT1hW2MtMV0sYVtjLTFdPXZ9fWZ1bmN0aW9uIGkodCxlLHIsaSxhLGwpe2lmKGk8PXIrMSlyZXR1cm4gcjtmb3IodmFyIHU9cixjPWksaD1pK3I+Pj4xLGY9Mip0LGQ9aCxwPWFbZipoK2VdO3U8Yzspe2lmKGMtdTxzKXtuKHQsZSx1LGMsYSxsKSxwPWFbZipoK2VdO2JyZWFrfXZhciBtPWMtdSx2PU1hdGgucmFuZG9tKCkqbSt1fDAsZz1hW2YqditlXSx5PU1hdGgucmFuZG9tKCkqbSt1fDAsYj1hW2YqeStlXSx4PU1hdGgucmFuZG9tKCkqbSt1fDAsXz1hW2YqeCtlXTtnPD1iP18+PWI/KGQ9eSxwPWIpOmc+PV8/KGQ9dixwPWcpOihkPXgscD1fKTpiPj1fPyhkPXkscD1iKTpfPj1nPyhkPXYscD1nKTooZD14LHA9Xyk7Zm9yKHZhciB3PWYqKGMtMSksTT1mKmQsaz0wO2s8ZjsrK2ssKyt3LCsrTSl7dmFyIEE9YVt3XTthW3ddPWFbTV0sYVtNXT1BfXZhciBUPWxbYy0xXTtsW2MtMV09bFtkXSxsW2RdPVQsZD1vKHQsZSx1LGMtMSxhLGwscCk7Zm9yKHZhciB3PWYqKGMtMSksTT1mKmQsaz0wO2s8ZjsrK2ssKyt3LCsrTSl7dmFyIEE9YVt3XTthW3ddPWFbTV0sYVtNXT1BfXZhciBUPWxbYy0xXTtpZihsW2MtMV09bFtkXSxsW2RdPVQsaDxkKXtmb3IoYz1kLTE7dTxjJiZhW2YqKGMtMSkrZV09PT1wOyljLT0xO2MrPTF9ZWxzZXtpZighKGQ8aCkpYnJlYWs7Zm9yKHU9ZCsxO3U8YyYmYVtmKnUrZV09PT1wOyl1Kz0xfX1yZXR1cm4gbyh0LGUscixoLGEsbCxhW2YqaCtlXSl9ZS5leHBvcnRzPWk7dmFyIGE9dCgiLi9wYXJ0aXRpb24iKSxvPWEoImxvPHAwIixbInAwIl0pLHM9OH0seyIuL3BhcnRpdGlvbiI6NzJ9XSw3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9ImFiY2RlZiIuc3BsaXQoIiIpLmNvbmNhdChlKSxuPVtdO3JldHVybiB0LmluZGV4T2YoImxvIik+PTAmJm4ucHVzaCgibG89ZVtrK25dIiksdC5pbmRleE9mKCJoaSIpPj0wJiZuLnB1c2goImhpPWVbaytvXSIpLHIucHVzaChpLnJlcGxhY2UoIl8iLG4uam9pbigpKS5yZXBsYWNlKCIkIix0KSksRnVuY3Rpb24uYXBwbHkodm9pZCAwLHIpfWUuZXhwb3J0cz1uO3ZhciBpPSJmb3IodmFyIGo9MiphLGs9aipjLGw9ayxtPWMsbj1iLG89YStiLHA9YztkPnA7KytwLGsrPWope3ZhciBfO2lmKCQpaWYobT09PXApbSs9MSxsKz1qO2Vsc2V7Zm9yKHZhciBzPTA7aj5zOysrcyl7dmFyIHQ9ZVtrK3NdO2VbaytzXT1lW2xdLGVbbCsrXT10fXZhciB1PWZbcF07ZltwXT1mW21dLGZbbSsrXT11fX1yZXR1cm4gbSJ9LHt9XSw3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7ZTw9NCpmP2koMCxlLTEsdCk6aCgwLGUtMSx0KX1mdW5jdGlvbiBpKHQsZSxyKXtmb3IodmFyIG49MioodCsxKSxpPXQrMTtpPD1lOysraSl7Zm9yKHZhciBhPXJbbisrXSxvPXJbbisrXSxzPWksbD1uLTI7cy0tID50Oyl7dmFyIHU9cltsLTJdLGM9cltsLTFdO2lmKHU8YSlicmVhaztpZih1PT09YSYmYzxvKWJyZWFrO3JbbF09dSxyW2wrMV09YyxsLT0yfXJbbF09YSxyW2wrMV09b319ZnVuY3Rpb24gYSh0LGUscil7dCo9MixlKj0yO3ZhciBuPXJbdF0saT1yW3QrMV07clt0XT1yW2VdLHJbdCsxXT1yW2UrMV0scltlXT1uLHJbZSsxXT1pfWZ1bmN0aW9uIG8odCxlLHIpe3QqPTIsZSo9MixyW3RdPXJbZV0sclt0KzFdPXJbZSsxXX1mdW5jdGlvbiBzKHQsZSxyLG4pe3QqPTIsZSo9MixyKj0yO3ZhciBpPW5bdF0sYT1uW3QrMV07blt0XT1uW2VdLG5bdCsxXT1uW2UrMV0sbltlXT1uW3JdLG5bZSsxXT1uW3IrMV0sbltyXT1pLG5bcisxXT1hfWZ1bmN0aW9uIGwodCxlLHIsbixpKXt0Kj0yLGUqPTIsaVt0XT1pW2VdLGlbZV09cixpW3QrMV09aVtlKzFdLGlbZSsxXT1ufWZ1bmN0aW9uIHUodCxlLHIpe3QqPTIsZSo9Mjt2YXIgbj1yW3RdLGk9cltlXTtyZXR1cm4hKG48aSkmJihuIT09aXx8clt0KzFdPnJbZSsxXSl9ZnVuY3Rpb24gYyh0LGUscixuKXt0Kj0yO3ZhciBpPW5bdF07cmV0dXJuIGk8ZXx8aT09PWUmJm5bdCsxXTxyfWZ1bmN0aW9uIGgodCxlLHIpe3ZhciBuPShlLXQrMSkvNnwwLGQ9dCtuLHA9ZS1uLG09dCtlPj4xLHY9bS1uLGc9bStuLHk9ZCxiPXYseD1tLF89Zyx3PXAsTT10KzEsaz1lLTEsQT0wO3UoeSxiLHIpJiYoQT15LHk9YixiPUEpLHUoXyx3LHIpJiYoQT1fLF89dyx3PUEpLHUoeSx4LHIpJiYoQT15LHk9eCx4PUEpLHUoYix4LHIpJiYoQT1iLGI9eCx4PUEpLHUoeSxfLHIpJiYoQT15LHk9XyxfPUEpLHUoeCxfLHIpJiYoQT14LHg9XyxfPUEpLHUoYix3LHIpJiYoQT1iLGI9dyx3PUEpLHUoYix4LHIpJiYoQT1iLGI9eCx4PUEpLHUoXyx3LHIpJiYoQT1fLF89dyx3PUEpO2Zvcih2YXIgVD1yWzIqYl0sUz1yWzIqYisxXSxFPXJbMipfXSxMPXJbMipfKzFdLEM9Mip5LHo9Mip4LEk9Mip3LEQ9MipkLFA9MiptLE89MipwLFI9MDtSPDI7KytSKXt2YXIgRj1yW0MrUl0saj1yW3orUl0sTj1yW0krUl07cltEK1JdPUYscltQK1JdPWoscltPK1JdPU59byh2LHQsciksbyhnLGUscik7Zm9yKHZhciBCPU07Qjw9azsrK0IpaWYoYyhCLFQsUyxyKSlCIT09TSYmYShCLE0sciksKytNO2Vsc2UgaWYoIWMoQixFLEwscikpZm9yKDs7KXtpZihjKGssRSxMLHIpKXtjKGssVCxTLHIpPyhzKEIsTSxrLHIpLCsrTSwtLWspOihhKEIsayxyKSwtLWspO2JyZWFrfWlmKC0tazxCKWJyZWFrfWwodCxNLTEsVCxTLHIpLGwoZSxrKzEsRSxMLHIpLE0tMi10PD1mP2kodCxNLTIscik6aCh0LE0tMixyKSxlLShrKzIpPD1mP2koaysyLGUscik6aChrKzIsZSxyKSxrLU08PWY/aShNLGsscik6aChNLGsscil9ZS5leHBvcnRzPW47dmFyIGY9MzJ9LHt9XSw3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPWgubmV4dFBvdzIodCk7cC5sZW5ndGg8ZSYmKGMuZnJlZShwKSxwPWMubWFsbG9jSW50MzIoZSkpLG0ubGVuZ3RoPGUmJihjLmZyZWUobSksbT1jLm1hbGxvY0ludDMyKGUpKSx2Lmxlbmd0aDxlJiYoYy5mcmVlKHYpLHY9Yy5tYWxsb2NJbnQzMihlKSksZy5sZW5ndGg8ZSYmKGMuZnJlZShnKSxnPWMubWFsbG9jSW50MzIoZSkpLHkubGVuZ3RoPGUmJihjLmZyZWUoeSkseT1jLm1hbGxvY0ludDMyKGUpKSxiLmxlbmd0aDxlJiYoYy5mcmVlKGIpLGI9Yy5tYWxsb2NJbnQzMihlKSk7dmFyIHI9OCplO3gubGVuZ3RoPHImJihjLmZyZWUoeCkseD1jLm1hbGxvY0RvdWJsZShyKSl9ZnVuY3Rpb24gaSh0LGUscixuKXt2YXIgaT1lW25dLGE9dFtyLTFdO3RbaV09YSxlW2FdPWl9ZnVuY3Rpb24gYSh0LGUscixuKXt0W3JdPW4sZVtuXT1yfWZ1bmN0aW9uIG8odCxlLHIsbixvLHMsbCx1LGMsaCl7Zm9yKHZhciB5PTAsYj0yKnQsXz10LTEsdz1iLTEsTT1yO008bjsrK00pe3ZhciBrPXNbTV0sQT1iKk07eFt5KytdPW9bQStfXSx4W3krK109LShrKzEpLHhbeSsrXT1vW0Erd10seFt5KytdPWt9Zm9yKHZhciBNPWw7TTx1OysrTSl7dmFyIGs9aFtNXStkLFQ9YipNO3hbeSsrXT1jW1QrX10seFt5KytdPS1rLHhbeSsrXT1jW1Qrd10seFt5KytdPWt9dmFyIFM9eT4+PjE7Zih4LFMpO2Zvcih2YXIgRT0wLEw9MCxNPTA7TTxTOysrTSl7dmFyIEM9MHx4WzIqTSsxXTtpZihDPj1kKUM9Qy1kfDAsaSh2LGcsTC0tLEMpO2Vsc2UgaWYoQz49MClpKHAsbSxFLS0sQyk7ZWxzZSBpZihDPD0tZCl7Qz0tQy1kfDA7Zm9yKHZhciB6PTA7ejxFOysreil7dmFyIEk9ZShwW3pdLEMpO2lmKHZvaWQgMCE9PUkpcmV0dXJuIEl9YSh2LGcsTCsrLEMpfWVsc2V7Qz0tQy0xfDA7Zm9yKHZhciB6PTA7ejxMOysreil7dmFyIEk9ZShDLHZbel0pO2lmKHZvaWQgMCE9PUkpcmV0dXJuIEl9YShwLG0sRSsrLEMpfX19ZnVuY3Rpb24gcyh0LGUscixuLG8scyxsLHUsYyxoKXtmb3IodmFyIGQ9MCxfPTIqdCx3PXQtMSxNPV8tMSxrPXI7azxuOysrayl7dmFyIEE9c1trXSsxPDwxLFQ9XyprO3hbZCsrXT1vW1Qrd10seFtkKytdPS1BLHhbZCsrXT1vW1QrTV0seFtkKytdPUF9Zm9yKHZhciBrPWw7azx1Oysrayl7dmFyIEE9aFtrXSsxPDwxLFM9XyprO3hbZCsrXT1jW1Mrd10seFtkKytdPTF8LUEseFtkKytdPWNbUytNXSx4W2QrK109MXxBfXZhciBFPWQ+Pj4xO2YoeCxFKTtmb3IodmFyIEw9MCxDPTAsej0wLGs9MDtrPEU7KytrKXt2YXIgST0wfHhbMiprKzFdLEQ9MSZJO2lmKGs8RS0xJiZJPj4xPT14WzIqayszXT4+MSYmKEQ9MixrKz0xKSxJPDApe2Zvcih2YXIgUD0tKEk+PjEpLTEsTz0wO088ejsrK08pe3ZhciBSPWUoeVtPXSxQKTtpZih2b2lkIDAhPT1SKXJldHVybiBSfWlmKDAhPT1EKWZvcih2YXIgTz0wO088TDsrK08pe3ZhciBSPWUocFtPXSxQKTtpZih2b2lkIDAhPT1SKXJldHVybiBSfWlmKDEhPT1EKWZvcih2YXIgTz0wO088QzsrK08pe3ZhciBSPWUodltPXSxQKTtpZih2b2lkIDAhPT1SKXJldHVybiBSfTA9PT1EP2EocCxtLEwrKyxQKToxPT09RD9hKHYsZyxDKyssUCk6Mj09PUQmJmEoeSxiLHorKyxQKX1lbHNle3ZhciBQPShJPj4xKS0xOzA9PT1EP2kocCxtLEwtLSxQKToxPT09RD9pKHYsZyxDLS0sUCk6Mj09PUQmJmkoeSxiLHotLSxQKX19fWZ1bmN0aW9uIGwodCxlLHIsbixvLHMsbCx1LGMsaCx2LGcpe3ZhciB5PTAsYj0yKnQsXz1lLHc9ZSt0LE09MSxrPTE7bj9rPWQ6TT1kO2Zvcih2YXIgQT1vO0E8czsrK0Epe3ZhciBUPUErTSxTPWIqQTt4W3krK109bFtTK19dLHhbeSsrXT0tVCx4W3krK109bFtTK3ddLHhbeSsrXT1UfWZvcih2YXIgQT1jO0E8aDsrK0Epe3ZhciBUPUErayxFPWIqQTt4W3krK109dltFK19dLHhbeSsrXT0tVH12YXIgTD15Pj4+MTtmKHgsTCk7Zm9yKHZhciBDPTAsQT0wO0E8TDsrK0Epe3ZhciB6PTB8eFsyKkErMV07aWYoejwwKXt2YXIgVD0teixJPSExO2lmKFQ+PWQ/KEk9IW4sVC09ZCk6KEk9ISFuLFQtPTEpLEkpYShwLG0sQysrLFQpO2Vsc2V7CnZhciBEPWdbVF0sUD1iKlQsTz12W1ArZSsxXSxSPXZbUCtlKzErdF07dDpmb3IodmFyIEY9MDtGPEM7KytGKXt2YXIgaj1wW0ZdLE49YipqO2lmKCEoUjxsW04rZSsxXXx8bFtOK2UrMSt0XTxPKSl7Zm9yKHZhciBCPWUrMjtCPHQ7KytCKWlmKHZbUCtCK3RdPGxbTitCXXx8bFtOK0IrdF08dltQK0JdKWNvbnRpbnVlIHQ7dmFyIFUsVj11W2pdO2lmKHZvaWQgMCE9PShVPW4/cihELFYpOnIoVixEKSkpcmV0dXJuIFV9fX19ZWxzZSBpKHAsbSxDLS0sei1NKX19ZnVuY3Rpb24gdSh0LGUscixuLGksYSxvLHMsbCx1LGMpe2Zvcih2YXIgaD0wLG09Mip0LHY9ZSxnPWUrdCx5PW47eTxpOysreSl7dmFyIGI9eStkLF89bSp5O3hbaCsrXT1hW18rdl0seFtoKytdPS1iLHhbaCsrXT1hW18rZ10seFtoKytdPWJ9Zm9yKHZhciB5PXM7eTxsOysreSl7dmFyIGI9eSsxLHc9bSp5O3hbaCsrXT11W3crdl0seFtoKytdPS1ifXZhciBNPWg+Pj4xO2YoeCxNKTtmb3IodmFyIGs9MCx5PTA7eTxNOysreSl7dmFyIEE9MHx4WzIqeSsxXTtpZihBPDApe3ZhciBiPS1BO2lmKGI+PWQpcFtrKytdPWItZDtlbHNle2ItPTE7dmFyIFQ9Y1tiXSxTPW0qYixFPXVbUytlKzFdLEw9dVtTK2UrMSt0XTt0OmZvcih2YXIgQz0wO0M8azsrK0Mpe3ZhciB6PXBbQ10sST1vW3pdO2lmKEk9PT1UKWJyZWFrO3ZhciBEPW0qejtpZighKEw8YVtEK2UrMV18fGFbRCtlKzErdF08RSkpe2Zvcih2YXIgUD1lKzI7UDx0OysrUClpZih1W1MrUCt0XTxhW0QrUF18fGFbRCtQK3RdPHVbUytQXSljb250aW51ZSB0O3ZhciBPPXIoSSxUKTtpZih2b2lkIDAhPT1PKXJldHVybiBPfX19fWVsc2V7Zm9yKHZhciBiPUEtZCxDPWstMTtDPj0wOy0tQylpZihwW0NdPT09Yil7Zm9yKHZhciBQPUMrMTtQPGs7KytQKXBbUC0xXT1wW1BdO2JyZWFrfS0ta319fWUuZXhwb3J0cz17aW5pdDpuLHN3ZWVwQmlwYXJ0aXRlOm8sc3dlZXBDb21wbGV0ZTpzLHNjYW5CaXBhcnRpdGU6bCxzY2FuQ29tcGxldGU6dX07dmFyIGM9dCgidHlwZWRhcnJheS1wb29sIiksaD10KCJiaXQtdHdpZGRsZSIpLGY9dCgiLi9zb3J0IiksZD0xPDwyOCxwPWMubWFsbG9jSW50MzIoMTAyNCksbT1jLm1hbGxvY0ludDMyKDEwMjQpLHY9Yy5tYWxsb2NJbnQzMigxMDI0KSxnPWMubWFsbG9jSW50MzIoMTAyNCkseT1jLm1hbGxvY0ludDMyKDEwMjQpLGI9Yy5tYWxsb2NJbnQzMigxMDI0KSx4PWMubWFsbG9jRG91YmxlKDgxOTIpfSx7Ii4vc29ydCI6NzMsImJpdC10d2lkZGxlIjo2NSwidHlwZWRhcnJheS1wb29sIjo1Mzl9XSw3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2lmKHQ+Wil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCB0eXBlZCBhcnJheSBsZW5ndGgiKTt2YXIgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gZS5fX3Byb3RvX189aS5wcm90b3R5cGUsZX1mdW5jdGlvbiBpKHQsZSxyKXtpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIklmIGVuY29kaW5nIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nIik7cmV0dXJuIGwodCl9cmV0dXJuIGEodCxlLHIpfWZ1bmN0aW9uIGEodCxlLHIpe2lmKCJudW1iZXIiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJyk7cmV0dXJuIHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9oKHQsZSxyKToic3RyaW5nIj09dHlwZW9mIHQ/dSh0LGUpOmYodCl9ZnVuY3Rpb24gbyh0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKTtpZih0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScpfWZ1bmN0aW9uIHModCxlLHIpe3JldHVybiBvKHQpLHQ8PTA/bih0KTp2b2lkIDAhPT1lPyJzdHJpbmciPT10eXBlb2Ygcj9uKHQpLmZpbGwoZSxyKTpuKHQpLmZpbGwoZSk6bih0KX1mdW5jdGlvbiBsKHQpe3JldHVybiBvKHQpLG4odDwwPzA6MHxkKHQpKX1mdW5jdGlvbiB1KHQsZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWV8fChlPSJ1dGY4IiksIWkuaXNFbmNvZGluZyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCciZW5jb2RpbmciIG11c3QgYmUgYSB2YWxpZCBzdHJpbmcgZW5jb2RpbmcnKTt2YXIgcj0wfG0odCxlKSxhPW4ociksbz1hLndyaXRlKHQsZSk7cmV0dXJuIG8hPT1yJiYoYT1hLnNsaWNlKDAsbykpLGF9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGU9dC5sZW5ndGg8MD8wOjB8ZCh0Lmxlbmd0aCkscj1uKGUpLGk9MDtpPGU7aSs9MSlyW2ldPTI1NSZ0W2ldO3JldHVybiByfWZ1bmN0aW9uIGgodCxlLHIpe2lmKGU8MHx8dC5ieXRlTGVuZ3RoPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidvZmZzZXQnIGlzIG91dCBvZiBib3VuZHMiKTtpZih0LmJ5dGVMZW5ndGg8ZSsocnx8MCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIidsZW5ndGgnIGlzIG91dCBvZiBib3VuZHMiKTt2YXIgbjtyZXR1cm4gbj12b2lkIDA9PT1lJiZ2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KHQpOnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCxlKTpuZXcgVWludDhBcnJheSh0LGUsciksbi5fX3Byb3RvX189aS5wcm90b3R5cGUsbn1mdW5jdGlvbiBmKHQpe2lmKGkuaXNCdWZmZXIodCkpe3ZhciBlPTB8ZCh0Lmxlbmd0aCkscj1uKGUpO3JldHVybiAwPT09ci5sZW5ndGg/cjoodC5jb3B5KHIsMCwwLGUpLHIpfWlmKHQpe2lmKEcodCl8fCJsZW5ndGgiaW4gdClyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHQubGVuZ3RofHxZKHQubGVuZ3RoKT9uKDApOmModCk7aWYoIkJ1ZmZlciI9PT10LnR5cGUmJkFycmF5LmlzQXJyYXkodC5kYXRhKSlyZXR1cm4gYyh0LmRhdGEpfXRocm93IG5ldyBUeXBlRXJyb3IoIkZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4iKX1mdW5jdGlvbiBkKHQpe2lmKHQ+PVopdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK1oudG9TdHJpbmcoMTYpKyIgYnl0ZXMiKTtyZXR1cm4gMHx0fWZ1bmN0aW9uIHAodCl7cmV0dXJuK3QhPXQmJih0PTApLGkuYWxsb2MoK3QpfWZ1bmN0aW9uIG0odCxlKXtpZihpLmlzQnVmZmVyKHQpKXJldHVybiB0Lmxlbmd0aDtpZihHKHQpfHx0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIHQuYnl0ZUxlbmd0aDsic3RyaW5nIiE9dHlwZW9mIHQmJih0PSIiK3QpO3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybiAwO2Zvcih2YXIgbj0hMTs7KXN3aXRjaChlKXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiByO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSB2b2lkIDA6cmV0dXJuIEIodCkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipyO2Nhc2UiaGV4IjpyZXR1cm4gcj4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiBIKHQpLmxlbmd0aDtkZWZhdWx0OmlmKG4pcmV0dXJuIEIodCkubGVuZ3RoO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24gdih0LGUscil7dmFyIG49ITE7aWYoKHZvaWQgMD09PWV8fGU8MCkmJihlPTApLGU+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PXJ8fHI+dGhpcy5sZW5ndGgpJiYocj10aGlzLmxlbmd0aCkscjw9MClyZXR1cm4iIjtpZihyPj4+PTAsZT4+Pj0wLHI8PWUpcmV0dXJuIiI7Zm9yKHR8fCh0PSJ1dGY4Iik7Oylzd2l0Y2godCl7Y2FzZSJoZXgiOnJldHVybiB6KHRoaXMsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBTKHRoaXMsZSxyKTtjYXNlImFzY2lpIjpyZXR1cm4gTCh0aGlzLGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gQyh0aGlzLGUscik7Y2FzZSJiYXNlNjQiOnJldHVybiBUKHRoaXMsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIEkodGhpcyxlLHIpO2RlZmF1bHQ6aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3Q9KHQrIiIpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24gZyh0LGUscil7dmFyIG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufWZ1bmN0aW9uIHkodCxlLHIsbixhKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiByPyhuPXIscj0wKTpyPjIxNDc0ODM2NDc/cj0yMTQ3NDgzNjQ3OnI8LTIxNDc0ODM2NDgmJihyPS0yMTQ3NDgzNjQ4KSxyPStyLFkocikmJihyPWE/MDp0Lmxlbmd0aC0xKSxyPDAmJihyPXQubGVuZ3RoK3IpLHI+PXQubGVuZ3RoKXtpZihhKXJldHVybi0xO3I9dC5sZW5ndGgtMX1lbHNlIGlmKHI8MCl7aWYoIWEpcmV0dXJuLTE7cj0wfWlmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9aS5mcm9tKGUsbikpLGkuaXNCdWZmZXIoZSkpcmV0dXJuIDA9PT1lLmxlbmd0aD8tMTpiKHQsZSxyLG4sYSk7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlJj0yNTUsImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/YT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHIpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodCxlLHIpOmIodCxbZV0scixuLGEpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIGIodCxlLHIsbixpKXtmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIDE9PT1vP3RbZV06dC5yZWFkVUludDE2QkUoZSpvKX12YXIgbz0xLHM9dC5sZW5ndGgsbD1lLmxlbmd0aDtpZih2b2lkIDAhPT1uJiYoInVjczIiPT09KG49U3RyaW5nKG4pLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bnx8InV0ZjE2bGUiPT09bnx8InV0Zi0xNmxlIj09PW4pKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO289MixzLz0yLGwvPTIsci89Mn12YXIgdTtpZihpKXt2YXIgYz0tMTtmb3IodT1yO3U8czt1KyspaWYoYSh0LHUpPT09YShlLC0xPT09Yz8wOnUtYykpe2lmKC0xPT09YyYmKGM9dSksdS1jKzE9PT1sKXJldHVybiBjKm99ZWxzZS0xIT09YyYmKHUtPXUtYyksYz0tMX1lbHNlIGZvcihyK2w+cyYmKHI9cy1sKSx1PXI7dT49MDt1LS0pe2Zvcih2YXIgaD0hMCxmPTA7ZjxsO2YrKylpZihhKHQsdStmKSE9PWEoZSxmKSl7aD0hMTticmVha31pZihoKXJldHVybiB1fXJldHVybi0xfWZ1bmN0aW9uIHgodCxlLHIsbil7cj1OdW1iZXIocil8fDA7dmFyIGk9dC5sZW5ndGgtcjtuPyhuPU51bWJlcihuKSk+aSYmKG49aSk6bj1pO3ZhciBhPWUubGVuZ3RoO2lmKGElMiE9MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGhleCBzdHJpbmciKTtuPmEvMiYmKG49YS8yKTtmb3IodmFyIG89MDtvPG47KytvKXt2YXIgcz1wYXJzZUludChlLnN1YnN0cigyKm8sMiksMTYpO2lmKFkocykpcmV0dXJuIG87dFtyK29dPXN9cmV0dXJuIG99ZnVuY3Rpb24gXyh0LGUscixuKXtyZXR1cm4gcShCKGUsdC5sZW5ndGgtciksdCxyLG4pfWZ1bmN0aW9uIHcodCxlLHIsbil7cmV0dXJuIHEoVShlKSx0LHIsbil9ZnVuY3Rpb24gTSh0LGUscixuKXtyZXR1cm4gdyh0LGUscixuKX1mdW5jdGlvbiBrKHQsZSxyLG4pe3JldHVybiBxKEgoZSksdCxyLG4pfWZ1bmN0aW9uIEEodCxlLHIsbil7cmV0dXJuIHEoVihlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiBUKHQsZSxyKXtyZXR1cm4gMD09PWUmJnI9PT10Lmxlbmd0aD9YLmZyb21CeXRlQXJyYXkodCk6WC5mcm9tQnl0ZUFycmF5KHQuc2xpY2UoZSxyKSl9ZnVuY3Rpb24gUyh0LGUscil7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIG49W10saT1lO2k8cjspe3ZhciBhPXRbaV0sbz1udWxsLHM9YT4yMzk/NDphPjIyMz8zOmE+MTkxPzI6MTtpZihpK3M8PXIpe3ZhciBsLHUsYyxoO3N3aXRjaChzKXtjYXNlIDE6YTwxMjgmJihvPWEpO2JyZWFrO2Nhc2UgMjpsPXRbaSsxXSwxMjg9PSgxOTImbCkmJihoPSgzMSZhKTw8Nnw2MyZsKT4xMjcmJihvPWgpO2JyZWFrO2Nhc2UgMzpsPXRbaSsxXSx1PXRbaSsyXSwxMjg9PSgxOTImbCkmJjEyOD09KDE5MiZ1KSYmKGg9KDE1JmEpPDwxMnwoNjMmbCk8PDZ8NjMmdSk+MjA0NyYmKGg8NTUyOTZ8fGg+NTczNDMpJiYobz1oKTticmVhaztjYXNlIDQ6bD10W2krMV0sdT10W2krMl0sYz10W2krM10sMTI4PT0oMTkyJmwpJiYxMjg9PSgxOTImdSkmJjEyOD09KDE5MiZjKSYmKGg9KDE1JmEpPDwxOHwoNjMmbCk8PDEyfCg2MyZ1KTw8Nnw2MyZjKT42NTUzNSYmaDwxMTE0MTEyJiYobz1oKX19bnVsbD09PW8/KG89NjU1MzMscz0xKTpvPjY1NTM1JiYoby09NjU1MzYsbi5wdXNoKG8+Pj4xMCYxMDIzfDU1Mjk2KSxvPTU2MzIwfDEwMjMmbyksbi5wdXNoKG8pLGkrPXN9cmV0dXJuIEUobil9ZnVuY3Rpb24gRSh0KXt2YXIgZT10Lmxlbmd0aDtpZihlPD1KKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0KTtmb3IodmFyIHI9IiIsbj0wO248ZTspcis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdC5zbGljZShuLG4rPUopKTtyZXR1cm4gcn1mdW5jdGlvbiBMKHQsZSxyKXt2YXIgbj0iIjtyPU1hdGgubWluKHQubGVuZ3RoLHIpO2Zvcih2YXIgaT1lO2k8cjsrK2kpbis9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcmdFtpXSk7cmV0dXJuIG59ZnVuY3Rpb24gQyh0LGUscil7dmFyIG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIGk9ZTtpPHI7KytpKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtpXSk7cmV0dXJuIG59ZnVuY3Rpb24geih0LGUscil7dmFyIG49dC5sZW5ndGg7KCFlfHxlPDApJiYoZT0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7Zm9yKHZhciBpPSIiLGE9ZTthPHI7KythKWkrPU4odFthXSk7cmV0dXJuIGl9ZnVuY3Rpb24gSSh0LGUscil7Zm9yKHZhciBuPXQuc2xpY2UoZSxyKSxpPSIiLGE9MDthPG4ubGVuZ3RoO2ErPTIpaSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW2FdKzI1NipuW2ErMV0pO3JldHVybiBpfWZ1bmN0aW9uIEQodCxlLHIpe2lmKHQlMSE9MHx8dDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJvZmZzZXQgaXMgbm90IHVpbnQiKTtpZih0K2U+cil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWZ1bmN0aW9uIFAodCxlLHIsbixhLG8pe2lmKCFpLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtpZihlPmF8fGU8byl0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJyk7aWYocituPnQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBPKHQsZSxyLG4saSxhKXtpZihyK24+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKHI8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gUih0LGUscixuLGkpe3JldHVybiBlPStlLHI+Pj49MCxpfHxPKHQsZSxyLDQsMy40MDI4MjM0NjYzODUyODg2ZTM4LC0zLjQwMjgyMzQ2NjM4NTI4ODZlMzgpLFcud3JpdGUodCxlLHIsbiwyMyw0KSxyKzR9ZnVuY3Rpb24gRih0LGUscixuLGkpe3JldHVybiBlPStlLHI+Pj49MCxpfHxPKHQsZSxyLDgsMS43OTc2OTMxMzQ4NjIzMTU3ZTMwOCwtMS43OTc2OTMxMzQ4NjIzMTU3ZTMwOCksVy53cml0ZSh0LGUscixuLDUyLDgpLHIrOH1mdW5jdGlvbiBqKHQpe2lmKHQ9dC50cmltKCkucmVwbGFjZShLLCIiKSx0Lmxlbmd0aDwyKXJldHVybiIiO2Zvcig7dC5sZW5ndGglNCE9MDspdCs9Ij0iO3JldHVybiB0fWZ1bmN0aW9uIE4odCl7cmV0dXJuIHQ8MTY/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEIodCxlKXtlPWV8fDEvMDtmb3IodmFyIHIsbj10Lmxlbmd0aCxpPW51bGwsYT1bXSxvPTA7bzxuOysrbyl7aWYoKHI9dC5jaGFyQ29kZUF0KG8pKT41NTI5NSYmcjw1NzM0NCl7aWYoIWkpe2lmKHI+NTYzMTkpeyhlLT0zKT4tMSYmYS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihvKzE9PT1uKXsoZS09Myk+LTEmJmEucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aT1yO2NvbnRpbnVlfWlmKHI8NTYzMjApeyhlLT0zKT4tMSYmYS5wdXNoKDIzOSwxOTEsMTg5KSxpPXI7Y29udGludWV9cj02NTUzNisoaS01NTI5Njw8MTB8ci01NjMyMCl9ZWxzZSBpJiYoZS09Myk+LTEmJmEucHVzaCgyMzksMTkxLDE4OSk7aWYoaT1udWxsLHI8MTI4KXtpZigoZS09MSk8MClicmVhazthLnB1c2gocil9ZWxzZSBpZihyPDIwNDgpe2lmKChlLT0yKTwwKWJyZWFrO2EucHVzaChyPj42fDE5Miw2MyZyfDEyOCl9ZWxzZSBpZihyPDY1NTM2KXtpZigoZS09Myk8MClicmVhazthLnB1c2gocj4+MTJ8MjI0LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX1lbHNle2lmKCEocjwxMTE0MTEyKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29kZSBwb2ludCIpO2lmKChlLT00KTwwKWJyZWFrO2EucHVzaChyPj4xOHwyNDAscj4+MTImNjN8MTI4LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX19cmV0dXJuIGF9ZnVuY3Rpb24gVSh0KXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKWUucHVzaCgyNTUmdC5jaGFyQ29kZUF0KHIpKTtyZXR1cm4gZX1mdW5jdGlvbiBWKHQsZSl7Zm9yKHZhciByLG4saSxhPVtdLG89MDtvPHQubGVuZ3RoJiYhKChlLT0yKTwwKTsrK28pcj10LmNoYXJDb2RlQXQobyksbj1yPj44LGk9ciUyNTYsYS5wdXNoKGkpLGEucHVzaChuKTtyZXR1cm4gYX1mdW5jdGlvbiBIKHQpe3JldHVybiBYLnRvQnl0ZUFycmF5KGoodCkpfWZ1bmN0aW9uIHEodCxlLHIsbil7Zm9yKHZhciBpPTA7aTxuJiYhKGkrcj49ZS5sZW5ndGh8fGk+PXQubGVuZ3RoKTsrK2kpZVtpK3JdPXRbaV07cmV0dXJuIGl9ZnVuY3Rpb24gRyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3JiZBcnJheUJ1ZmZlci5pc1ZpZXcodCl9ZnVuY3Rpb24gWSh0KXtyZXR1cm4gdCE9PXR9dmFyIFg9dCgiYmFzZTY0LWpzIiksVz10KCJpZWVlNzU0Iik7ci5CdWZmZXI9aSxyLlNsb3dCdWZmZXI9cCxyLklOU1BFQ1RfTUFYX0JZVEVTPTUwO3ZhciBaPTIxNDc0ODM2NDc7ci5rTWF4TGVuZ3RoPVosaS5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PW5ldyBVaW50OEFycmF5KDEpO3JldHVybiB0Ll9fcHJvdG9fXz17X19wcm90b19fOlVpbnQ4QXJyYXkucHJvdG90eXBlLGZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19LDQyPT09dC5mb28oKX1jYXRjaCh0KXtyZXR1cm4hMX19KCksaS5UWVBFRF9BUlJBWV9TVVBQT1JUfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fCJmdW5jdGlvbiIhPXR5cGVvZiBjb25zb2xlLmVycm9yfHxjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVpbnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSwidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnNwZWNpZXMmJmlbU3ltYm9sLnNwZWNpZXNdPT09aSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGksU3ltYm9sLnNwZWNpZXMse3ZhbHVlOm51bGwsY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITF9KSxpLnBvb2xTaXplPTgxOTIsaS5mcm9tPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gYSh0LGUscil9LGkucHJvdG90eXBlLl9fcHJvdG9fXz1VaW50OEFycmF5LnByb3RvdHlwZSxpLl9fcHJvdG9fXz1VaW50OEFycmF5LGkuYWxsb2M9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBzKHQsZSxyKX0saS5hbGxvY1Vuc2FmZT1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KX0saS5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24odCl7cmV0dXJuIGwodCl9LGkuaXNCdWZmZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJiEwPT09dC5faXNCdWZmZXJ9LGkuY29tcGFyZT1mdW5jdGlvbih0LGUpe2lmKCFpLmlzQnVmZmVyKHQpfHwhaS5pc0J1ZmZlcihlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgbXVzdCBiZSBCdWZmZXJzIik7aWYodD09PWUpcmV0dXJuIDA7Zm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsYT0wLG89TWF0aC5taW4ocixuKTthPG87KythKWlmKHRbYV0hPT1lW2FdKXtyPXRbYV0sbj1lW2FdO2JyZWFrfXJldHVybiByPG4/LTE6bjxyPzE6MH0saS5pc0VuY29kaW5nPWZ1bmN0aW9uKHQpe3N3aXRjaChTdHJpbmcodCkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxpLmNvbmNhdD1mdW5jdGlvbih0LGUpe2lmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09dC5sZW5ndGgpcmV0dXJuIGkuYWxsb2MoMCk7dmFyIHI7aWYodm9pZCAwPT09ZSlmb3IoZT0wLHI9MDtyPHQubGVuZ3RoOysrcillKz10W3JdLmxlbmd0aDt2YXIgbj1pLmFsbG9jVW5zYWZlKGUpLGE9MDtmb3Iocj0wO3I8dC5sZW5ndGg7KytyKXt2YXIgbz10W3JdO2lmKCFpLmlzQnVmZmVyKG8pKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtvLmNvcHkobixhKSxhKz1vLmxlbmd0aH1yZXR1cm4gbn0saS5ieXRlTGVuZ3RoPW0saS5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLGkucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9MilnKHRoaXMsZSxlKzEpO3JldHVybiB0aGlzfSxpLnByb3RvdHlwZS5zd2FwMzI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmxlbmd0aDtpZih0JTQhPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKHZhciBlPTA7ZTx0O2UrPTQpZyh0aGlzLGUsZSszKSxnKHRoaXMsZSsxLGUrMik7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLnN3YXA2ND1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9OClnKHRoaXMsZSxlKzcpLGcodGhpcyxlKzEsZSs2KSxnKHRoaXMsZSsyLGUrNSksZyh0aGlzLGUrMyxlKzQpO3JldHVybiB0aGlzfSxpLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO3JldHVybiAwPT09dD8iIjowPT09YXJndW1lbnRzLmxlbmd0aD9TKHRoaXMsMCx0KTp2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0saS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe2lmKCFpLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PXR8fDA9PT1pLmNvbXBhcmUodGhpcyx0KX0saS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3ZhciB0PSIiLGU9ci5JTlNQRUNUX01BWF9CWVRFUztyZXR1cm4gdGhpcy5sZW5ndGg+MCYmKHQ9dGhpcy50b1N0cmluZygiaGV4IiwwLGUpLm1hdGNoKC8uezJ9L2cpLmpvaW4oIiAiKSx0aGlzLmxlbmd0aD5lJiYodCs9IiAuLi4gIikpLCI8QnVmZmVyICIrdCsiPiJ9LGkucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odCxlLHIsbixhKXtpZighaS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7aWYodm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPT09ciYmKHI9dD90Lmxlbmd0aDowKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1hJiYoYT10aGlzLmxlbmd0aCksZTwwfHxyPnQubGVuZ3RofHxuPDB8fGE+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWEmJmU+PXIpcmV0dXJuIDA7aWYobj49YSlyZXR1cm4tMTtpZihlPj1yKXJldHVybiAxO2lmKGU+Pj49MCxyPj4+PTAsbj4+Pj0wLGE+Pj49MCx0aGlzPT09dClyZXR1cm4gMDtmb3IodmFyIG89YS1uLHM9ci1lLGw9TWF0aC5taW4obyxzKSx1PXRoaXMuc2xpY2UobixhKSxjPXQuc2xpY2UoZSxyKSxoPTA7aDxsOysraClpZih1W2hdIT09Y1toXSl7bz11W2hdLHM9Y1toXTticmVha31yZXR1cm4gbzxzPy0xOnM8bz8xOjB9LGkucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4tMSE9PXRoaXMuaW5kZXhPZih0LGUscil9LGkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB5KHRoaXMsdCxlLHIsITApfSxpLnByb3RvdHlwZS5sYXN0SW5kZXhPZj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHkodGhpcyx0LGUsciwhMSl9LGkucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHZvaWQgMD09PWUpbj0idXRmOCIscj10aGlzLmxlbmd0aCxlPTA7ZWxzZSBpZih2b2lkIDA9PT1yJiYic3RyaW5nIj09dHlwZW9mIGUpbj1lLHI9dGhpcy5sZW5ndGgsZT0wO2Vsc2V7aWYoIWlzRmluaXRlKGUpKXRocm93IG5ldyBFcnJvcigiQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQiKTtlPj4+PTAsaXNGaW5pdGUocik/KHI+Pj49MCx2b2lkIDA9PT1uJiYobj0idXRmOCIpKToobj1yLHI9dm9pZCAwKX12YXIgaT10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1yfHxyPmkpJiYocj1pKSx0Lmxlbmd0aD4wJiYocjwwfHxlPDApfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO258fChuPSJ1dGY4Iik7Zm9yKHZhciBhPSExOzspc3dpdGNoKG4pe2Nhc2UiaGV4IjpyZXR1cm4geCh0aGlzLHQsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBfKHRoaXMsdCxlLHIpO2Nhc2UiYXNjaWkiOnJldHVybiB3KHRoaXMsdCxlLHIpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIE0odGhpcyx0LGUscik7Y2FzZSJiYXNlNjQiOnJldHVybiBrKHRoaXMsdCxlLHIpO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gQSh0aGlzLHQsZSxyKTtkZWZhdWx0OmlmKGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKTtuPSgiIituKS50b0xvd2VyQ2FzZSgpLGE9ITB9fSxpLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiQnVmZmVyIixkYXRhOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2Fycnx8dGhpcywwKX19O3ZhciBKPTQwOTY7aS5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxlbmd0aDt0PX5+dCxlPXZvaWQgMD09PWU/cjp+fmUsdDwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLGU8MD8oZSs9cik8MCYmKGU9MCk6ZT5yJiYoZT1yKSxlPHQmJihlPXQpO3ZhciBuPXRoaXMuc3ViYXJyYXkodCxlKTtyZXR1cm4gbi5fX3Byb3RvX189aS5wcm90b3R5cGUsbn0saS5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxEKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdF0saT0xLGE9MDsrK2E8ZSYmKGkqPTI1Nik7KW4rPXRoaXNbdCthXSppO3JldHVybiBufSxpLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEQodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49dGhpc1t0Ky0tZV0saT0xO2U+MCYmKGkqPTI1Nik7KW4rPXRoaXNbdCstLWVdKmk7cmV0dXJuIG59LGkucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RCh0LDEsdGhpcy5sZW5ndGgpLHRoaXNbdF19LGkucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSxpLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEQodCwyLHRoaXMubGVuZ3RoKSx0aGlzW3RdPDw4fHRoaXNbdCsxXX0saS5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxEKHQsNCx0aGlzLmxlbmd0aCksKHRoaXNbdF18dGhpc1t0KzFdPDw4fHRoaXNbdCsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbdCszXX0saS5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxEKHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0saS5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEQodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49dGhpc1t0XSxpPTEsYT0wOysrYTxlJiYoaSo9MjU2KTspbis9dGhpc1t0K2FdKmk7cmV0dXJuIGkqPTEyOCxuPj1pJiYobi09TWF0aC5wb3coMiw4KmUpKSxufSxpLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24odCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8RCh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgbj1lLGk9MSxhPXRoaXNbdCstLW5dO24+MCYmKGkqPTI1Nik7KWErPXRoaXNbdCstLW5dKmk7cmV0dXJuIGkqPTEyOCxhPj1pJiYoYS09TWF0aC5wb3coMiw4KmUpKSxhfSxpLnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RCh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSxpLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LGUpe3Q+Pj49MCxlfHxEKHQsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1t0XXx0aGlzW3QrMV08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LGkucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7dD4+Pj0wLGV8fEQodCwyLHRoaXMubGVuZ3RoKTt2YXIgcj10aGlzW3QrMV18dGhpc1t0XTw8ODtyZXR1cm4gMzI3Njgmcj80Mjk0OTAxNzYwfHI6cn0saS5wcm90b3R5cGUucmVhZEludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEQodCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2fHRoaXNbdCszXTw8MjR9LGkucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxEKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XTw8MjR8dGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdfSxpLnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RCh0LDQsdGhpcy5sZW5ndGgpLFcucmVhZCh0aGlzLHQsITAsMjMsNCl9LGkucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxEKHQsNCx0aGlzLmxlbmd0aCksVy5yZWFkKHRoaXMsdCwhMSwyMyw0KX0saS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxEKHQsOCx0aGlzLmxlbmd0aCksVy5yZWFkKHRoaXMsdCwhMCw1Miw4KX0saS5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxEKHQsOCx0aGlzLmxlbmd0aCksVy5yZWFkKHRoaXMsdCwhMSw1Miw4KX0saS5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAscj4+Pj0wLCFuKXtQKHRoaXMsdCxlLHIsTWF0aC5wb3coMiw4KnIpLTEsMCl9dmFyIGk9MSxhPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KythPHImJihpKj0yNTYpOyl0aGlzW2UrYV09dC9pJjI1NTtyZXR1cm4gZStyfSxpLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbih0LGUscixuKXtpZih0PSt0LGU+Pj49MCxyPj4+PTAsIW4pe1AodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKX12YXIgaT1yLTEsYT0xO2Zvcih0aGlzW2UraV09MjU1JnQ7LS1pPj0wJiYoYSo9MjU2KTspdGhpc1tlK2ldPXQvYSYyNTU7cmV0dXJuIGUrcn0saS5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsMSwyNTUsMCksdGhpc1tlXT0yNTUmdCxlKzF9LGkucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDIsNjU1MzUsMCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxpLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8UCh0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0saS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCxlKzR9LGkucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW2VdPXQ+Pj4yNCx0aGlzW2UrMV09dD4+PjE2LHRoaXNbZSsyXT10Pj4+OCx0aGlzW2UrM109MjU1JnQsZSs0fSxpLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtQKHRoaXMsdCxlLHIsaS0xLC1pKX12YXIgYT0wLG89MSxzPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KythPHImJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2EtMV0mJihzPTEpLHRoaXNbZSthXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSxpLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtQKHRoaXMsdCxlLHIsaS0xLC1pKX12YXIgYT1yLTEsbz0xLHM9MDtmb3IodGhpc1tlK2FdPTI1NSZ0Oy0tYT49MCYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UrYSsxXSYmKHM9MSksdGhpc1tlK2FdPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LGkucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsMSwxMjcsLTEyOCksdDwwJiYodD0yNTUrdCsxKSx0aGlzW2VdPTI1NSZ0LGUrMX0saS5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8UCh0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxpLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW2VdPXQ+Pj44LHRoaXNbZSsxXT0yNTUmdCxlKzJ9LGkucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fFAodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQsZSs0fSxpLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxQKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdDwwJiYodD00Mjk0OTY3Mjk1K3QrMSksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0saS5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUih0aGlzLHQsZSwhMCxyKX0saS5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUih0aGlzLHQsZSwhMSxyKX0saS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIEYodGhpcyx0LGUsITAscil9LGkucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBGKHRoaXMsdCxlLCExLHIpfSxpLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksZT49dC5sZW5ndGgmJihlPXQubGVuZ3RoKSxlfHwoZT0wKSxuPjAmJm48ciYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PXQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKG48MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtuPnRoaXMubGVuZ3RoJiYobj10aGlzLmxlbmd0aCksdC5sZW5ndGgtZTxuLXImJihuPXQubGVuZ3RoLWUrcik7dmFyIGksYT1uLXI7aWYodGhpcz09PXQmJnI8ZSYmZTxuKWZvcihpPWEtMTtpPj0wOy0taSl0W2krZV09dGhpc1tpK3JdO2Vsc2UgaWYoYTwxZTMpZm9yKGk9MDtpPGE7KytpKXRbaStlXT10aGlzW2krcl07ZWxzZSBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbCh0LHRoaXMuc3ViYXJyYXkocixyK2EpLGUpO3JldHVybiBhfSxpLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlPyhuPWUsZT0wLHI9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgciYmKG49cixyPXRoaXMubGVuZ3RoKSwxPT09dC5sZW5ndGgpe3ZhciBhPXQuY2hhckNvZGVBdCgwKTthPDI1NiYmKHQ9YSl9aWYodm9pZCAwIT09biYmInN0cmluZyIhPXR5cGVvZiBuKXRocm93IG5ldyBUeXBlRXJyb3IoImVuY29kaW5nIG11c3QgYmUgYSBzdHJpbmciKTtpZigic3RyaW5nIj09dHlwZW9mIG4mJiFpLmlzRW5jb2RpbmcobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKX1lbHNlIm51bWJlciI9PXR5cGVvZiB0JiYodCY9MjU1KTtpZihlPDB8fHRoaXMubGVuZ3RoPGV8fHRoaXMubGVuZ3RoPHIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKHI8PWUpcmV0dXJuIHRoaXM7ZT4+Pj0wLHI9dm9pZCAwPT09cj90aGlzLmxlbmd0aDpyPj4+MCx0fHwodD0wKTt2YXIgbztpZigibnVtYmVyIj09dHlwZW9mIHQpZm9yKG89ZTtvPHI7KytvKXRoaXNbb109dDtlbHNle3ZhciBzPWkuaXNCdWZmZXIodCk/dDpuZXcgaSh0LG4pLGw9cy5sZW5ndGg7Zm9yKG89MDtvPHItZTsrK28pdGhpc1tvK2VdPXNbbyVsXX1yZXR1cm4gdGhpc307dmFyIEs9L1teK1wvMC05QS1aYS16LV9dL2d9LHsiYmFzZTY0LWpzIjo3NixpZWVlNzU0OjI4N31dLDc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9dC5sZW5ndGg7aWYoZSU0PjApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7cmV0dXJuIj0iPT09dFtlLTJdPzI6Ij0iPT09dFtlLTFdPzE6MH1mdW5jdGlvbiBpKHQpe3JldHVybiAzKnQubGVuZ3RoLzQtbih0KX1mdW5jdGlvbiBhKHQpe3ZhciBlLHIsaSxhLG8scyxsPXQubGVuZ3RoO289bih0KSxzPW5ldyBoKDMqbC80LW8pLGk9bz4wP2wtNDpsO3ZhciB1PTA7Zm9yKGU9MCxyPTA7ZTxpO2UrPTQscis9MylhPWNbdC5jaGFyQ29kZUF0KGUpXTw8MTh8Y1t0LmNoYXJDb2RlQXQoZSsxKV08PDEyfGNbdC5jaGFyQ29kZUF0KGUrMildPDw2fGNbdC5jaGFyQ29kZUF0KGUrMyldLHNbdSsrXT1hPj4xNiYyNTUsc1t1KytdPWE+PjgmMjU1LHNbdSsrXT0yNTUmYTtyZXR1cm4gMj09PW8/KGE9Y1t0LmNoYXJDb2RlQXQoZSldPDwyfGNbdC5jaGFyQ29kZUF0KGUrMSldPj40LHNbdSsrXT0yNTUmYSk6MT09PW8mJihhPWNbdC5jaGFyQ29kZUF0KGUpXTw8MTB8Y1t0LmNoYXJDb2RlQXQoZSsxKV08PDR8Y1t0LmNoYXJDb2RlQXQoZSsyKV0+PjIsc1t1KytdPWE+PjgmMjU1LHNbdSsrXT0yNTUmYSksc31mdW5jdGlvbiBvKHQpe3JldHVybiB1W3Q+PjE4JjYzXSt1W3Q+PjEyJjYzXSt1W3Q+PjYmNjNdK3VbNjMmdF19ZnVuY3Rpb24gcyh0LGUscil7Zm9yKHZhciBuLGk9W10sYT1lO2E8cjthKz0zKW49KHRbYV08PDE2KSsodFthKzFdPDw4KSt0W2ErMl0saS5wdXNoKG8obikpO3JldHVybiBpLmpvaW4oIiIpfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlLHI9dC5sZW5ndGgsbj1yJTMsaT0iIixhPVtdLG89MCxsPXItbjtvPGw7bys9MTYzODMpYS5wdXNoKHModCxvLG8rMTYzODM+bD9sOm8rMTYzODMpKTtyZXR1cm4gMT09PW4/KGU9dFtyLTFdLGkrPXVbZT4+Ml0saSs9dVtlPDw0JjYzXSxpKz0iPT0iKToyPT09biYmKGU9KHRbci0yXTw8OCkrdFtyLTFdLGkrPXVbZT4+MTBdLGkrPXVbZT4+NCY2M10saSs9dVtlPDwyJjYzXSxpKz0iPSIpLGEucHVzaChpKSxhLmpvaW4oIiIpfXIuYnl0ZUxlbmd0aD1pLHIudG9CeXRlQXJyYXk9YSxyLmZyb21CeXRlQXJyYXk9bDtmb3IodmFyIHU9W10sYz1bXSxoPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LGY9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLGQ9MCxwPWYubGVuZ3RoO2Q8cDsrK2QpdVtkXT1mW2RdLGNbZi5jaGFyQ29kZUF0KGQpXT1kO2NbIi0iLmNoYXJDb2RlQXQoMCldPTYyLGNbIl8iLmNoYXJDb2RlQXQoMCldPTYzfSx7fV0sNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm5bTWF0aC5taW4odFswXSx0WzFdKSxNYXRoLm1heCh0WzBdLHRbMV0pXX1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHQubWFwKG4pLnNvcnQoaSl9ZnVuY3Rpb24gbyh0LGUscil7cmV0dXJuIGUgaW4gdD90W2VdOnJ9ZnVuY3Rpb24gcyh0LGUscil7QXJyYXkuaXNBcnJheShlKT8ocj1yfHx7fSxlPWV8fFtdKToocj1lfHx7fSxlPVtdKTt2YXIgbj0hIW8ociwiZGVsYXVuYXkiLCEwKSxpPSEhbyhyLCJpbnRlcmlvciIsITApLHM9ISFvKHIsImV4dGVyaW9yIiwhMCksZj0hIW8ociwiaW5maW5pdHkiLCExKTtpZighaSYmIXN8fDA9PT10Lmxlbmd0aClyZXR1cm5bXTt2YXIgZD1sKHQsZSk7aWYobnx8aSE9PXN8fGYpe2Zvcih2YXIgcD11KHQubGVuZ3RoLGEoZSkpLG09MDttPGQubGVuZ3RoOysrbSl7dmFyIHY9ZFttXTtwLmFkZFRyaWFuZ2xlKHZbMF0sdlsxXSx2WzJdKX1yZXR1cm4gbiYmYyh0LHApLHM/aT9mP2gocCwwLGYpOnAuY2VsbHMoKTpoKHAsMSxmKTpoKHAsLTEpfXJldHVybiBkfXZhciBsPXQoIi4vbGliL21vbm90b25lIiksdT10KCIuL2xpYi90cmlhbmd1bGF0aW9uIiksYz10KCIuL2xpYi9kZWxhdW5heSIpLGg9dCgiLi9saWIvZmlsdGVyIik7ZS5leHBvcnRzPXN9LHsiLi9saWIvZGVsYXVuYXkiOjc4LCIuL2xpYi9maWx0ZXIiOjc5LCIuL2xpYi9tb25vdG9uZSI6ODAsIi4vbGliL3RyaWFuZ3VsYXRpb24iOjgxfV0sNzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyl7dmFyIHM9ZS5vcHBvc2l0ZShuLGkpO2lmKCEoczwwKSl7aWYoaTxuKXt2YXIgbD1uO249aSxpPWwsbD1vLG89cyxzPWx9ZS5pc0NvbnN0cmFpbnQobixpKXx8YSh0W25dLHRbaV0sdFtvXSx0W3NdKTwwJiZyLnB1c2gobixpKX19ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1bXSxpPXQubGVuZ3RoLG89ZS5zdGFycyxzPTA7czxpOysrcylmb3IodmFyIGw9b1tzXSx1PTE7dTxsLmxlbmd0aDt1Kz0yKXt2YXIgYz1sW3VdO2lmKCEoYzxzKSYmIWUuaXNDb25zdHJhaW50KHMsYykpe2Zvcih2YXIgaD1sW3UtMV0sZj0tMSxkPTE7ZDxsLmxlbmd0aDtkKz0yKWlmKGxbZC0xXT09PWMpe2Y9bFtkXTticmVha31mPDB8fGEodFtzXSx0W2NdLHRbaF0sdFtmXSk8MCYmci5wdXNoKHMsYyl9fWZvcig7ci5sZW5ndGg+MDspe2Zvcih2YXIgYz1yLnBvcCgpLHM9ci5wb3AoKSxoPS0xLGY9LTEsbD1vW3NdLHA9MTtwPGwubGVuZ3RoO3ArPTIpe3ZhciBtPWxbcC0xXSx2PWxbcF07bT09PWM/Zj12OnY9PT1jJiYoaD1tKX1oPDB8fGY8MHx8KGEodFtzXSx0W2NdLHRbaF0sdFtmXSk+PTB8fChlLmZsaXAocyxjKSxuKHQsZSxyLGgscyxmKSxuKHQsZSxyLHMsZixoKSxuKHQsZSxyLGYsYyxoKSxuKHQsZSxyLGMsaCxmKSkpfX12YXIgYT10KCJyb2J1c3QtaW4tc3BoZXJlIilbNF07dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtlLmV4cG9ydHM9aX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6ODIsInJvYnVzdC1pbi1zcGhlcmUiOjUwNH1dLDc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpLGEsbyl7dGhpcy5jZWxscz10LHRoaXMubmVpZ2hib3I9ZSx0aGlzLmZsYWdzPW4sdGhpcy5jb25zdHJhaW50PXIsdGhpcy5hY3RpdmU9aSx0aGlzLm5leHQ9YSx0aGlzLmJvdW5kYXJ5PW99ZnVuY3Rpb24gaSh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXXx8dFsyXS1lWzJdfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9dC5jZWxscygpLGE9ci5sZW5ndGgsbz0wO288YTsrK28pe3ZhciBzPXJbb10sbD1zWzBdLHU9c1sxXSxjPXNbMl07dTxjP3U8bCYmKHNbMF09dSxzWzFdPWMsc1syXT1sKTpjPGwmJihzWzBdPWMsc1sxXT1sLHNbMl09dSl9ci5zb3J0KGkpO2Zvcih2YXIgaD1uZXcgQXJyYXkoYSksbz0wO288aC5sZW5ndGg7KytvKWhbb109MDt2YXIgZj1bXSxkPVtdLHA9bmV3IEFycmF5KDMqYSksbT1uZXcgQXJyYXkoMyphKSx2PW51bGw7ZSYmKHY9W10pO2Zvcih2YXIgZz1uZXcgbihyLHAsbSxoLGYsZCx2KSxvPTA7bzxhOysrbylmb3IodmFyIHM9cltvXSx5PTA7eTwzOysreSl7dmFyIGw9c1t5XSx1PXNbKHkrMSklM10sYj1wWzMqbyt5XT1nLmxvY2F0ZSh1LGwsdC5vcHBvc2l0ZSh1LGwpKSx4PW1bMypvK3ldPXQuaXNDb25zdHJhaW50KGwsdSk7YjwwJiYoeD9kLnB1c2gobyk6KGYucHVzaChvKSxoW29dPTEpLGUmJnYucHVzaChbdSxsLC0xXSkpfXJldHVybiBnfWZ1bmN0aW9uIG8odCxlLHIpe2Zvcih2YXIgbj0wLGk9MDtpPHQubGVuZ3RoOysraSllW2ldPT09ciYmKHRbbisrXT10W2ldKTtyZXR1cm4gdC5sZW5ndGg9bix0fWZ1bmN0aW9uIHModCxlLHIpe3ZhciBuPWEodCxyKTtpZigwPT09ZSlyZXR1cm4gcj9uLmNlbGxzLmNvbmNhdChuLmJvdW5kYXJ5KTpuLmNlbGxzO2Zvcih2YXIgaT0xLHM9bi5hY3RpdmUsbD1uLm5leHQsdT1uLmZsYWdzLGM9bi5jZWxscyxoPW4uY29uc3RyYWludCxmPW4ubmVpZ2hib3I7cy5sZW5ndGg+MHx8bC5sZW5ndGg+MDspe2Zvcig7cy5sZW5ndGg+MDspe3ZhciBkPXMucG9wKCk7aWYodVtkXSE9PS1pKXt1W2RdPWk7Zm9yKHZhciBwPShjW2RdLDApO3A8MzsrK3Ape3ZhciBtPWZbMypkK3BdO20+PTAmJjA9PT11W21dJiYoaFszKmQrcF0/bC5wdXNoKG0pOihzLnB1c2gobSksdVttXT1pKSl9fX12YXIgdj1sO2w9cyxzPXYsbC5sZW5ndGg9MCxpPS1pfXZhciBnPW8oYyx1LGUpO3JldHVybiByP2cuY29uY2F0KG4uYm91bmRhcnkpOmd9dmFyIGw9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtlLmV4cG9ydHM9cyxuLnByb3RvdHlwZS5sb2NhdGU9ZnVuY3Rpb24oKXt2YXIgdD1bMCwwLDBdO3JldHVybiBmdW5jdGlvbihlLHIsbil7dmFyIGE9ZSxvPXIscz1uO3JldHVybiByPG4/cjxlJiYoYT1yLG89bixzPWUpOm48ZSYmKGE9bixvPWUscz1yKSxhPDA/LTE6KHRbMF09YSx0WzFdPW8sdFsyXT1zLGwuZXEodGhpcy5jZWxscyx0LGkpKX19KCl9LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjgyfV0sODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMuaWR4PXIsdGhpcy5sb3dlcklkcz1uLHRoaXMudXBwZXJJZHM9aX1mdW5jdGlvbiBpKHQsZSxyLG4pe3RoaXMuYT10LHRoaXMuYj1lLHRoaXMudHlwZT1yLHRoaXMuaWR4PW59ZnVuY3Rpb24gYSh0LGUpe3ZhciByPXQuYVswXS1lLmFbMF18fHQuYVsxXS1lLmFbMV18fHQudHlwZS1lLnR5cGU7cmV0dXJuIHJ8fCh0LnR5cGUhPT1wJiYocj1kKHQuYSx0LmIsZS5iKSk/cjp0LmlkeC1lLmlkeCl9ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBkKHQuYSx0LmIsZSl9ZnVuY3Rpb24gcyh0LGUscixuLGkpe2Zvcih2YXIgYT1mLmx0KGUsbixvKSxzPWYuZ3QoZSxuLG8pLGw9YTtsPHM7KytsKXtmb3IodmFyIHU9ZVtsXSxjPXUubG93ZXJJZHMsaD1jLmxlbmd0aDtoPjEmJmQocltjW2gtMl1dLHJbY1toLTFdXSxuKT4wOyl0LnB1c2goW2NbaC0xXSxjW2gtMl0saV0pLGgtPTE7Yy5sZW5ndGg9aCxjLnB1c2goaSk7Zm9yKHZhciBwPXUudXBwZXJJZHMsaD1wLmxlbmd0aDtoPjEmJmQocltwW2gtMl1dLHJbcFtoLTFdXSxuKTwwOyl0LnB1c2goW3BbaC0yXSxwW2gtMV0saV0pLGgtPTE7cC5sZW5ndGg9aCxwLnB1c2goaSl9fWZ1bmN0aW9uIGwodCxlKXt2YXIgcjtyZXR1cm4ocj10LmFbMF08ZS5hWzBdP2QodC5hLHQuYixlLmEpOmQoZS5iLGUuYSx0LmEpKT9yOihyPWUuYlswXTx0LmJbMF0/ZCh0LmEsdC5iLGUuYik6ZChlLmIsZS5hLHQuYikpfHx0LmlkeC1lLmlkeH1mdW5jdGlvbiB1KHQsZSxyKXt2YXIgaT1mLmxlKHQscixsKSxhPXRbaV0sbz1hLnVwcGVySWRzLHM9b1tvLmxlbmd0aC0xXTthLnVwcGVySWRzPVtzXSx0LnNwbGljZShpKzEsMCxuZXcgbihyLmEsci5iLHIuaWR4LFtzXSxvKSl9ZnVuY3Rpb24gYyh0LGUscil7dmFyIG49ci5hO3IuYT1yLmIsci5iPW47dmFyIGk9Zi5lcSh0LHIsbCksYT10W2ldO3RbaS0xXS51cHBlcklkcz1hLnVwcGVySWRzLHQuc3BsaWNlKGksMSl9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxvPWUubGVuZ3RoLGw9W10saD0wO2g8cjsrK2gpbC5wdXNoKG5ldyBpKHRbaF0sbnVsbCxwLGgpKTtmb3IodmFyIGg9MDtoPG87KytoKXt2YXIgZj1lW2hdLGQ9dFtmWzBdXSxnPXRbZlsxXV07ZFswXTxnWzBdP2wucHVzaChuZXcgaShkLGcsdixoKSxuZXcgaShnLGQsbSxoKSk6ZFswXT5nWzBdJiZsLnB1c2gobmV3IGkoZyxkLHYsaCksbmV3IGkoZCxnLG0saCkpfWwuc29ydChhKTtmb3IodmFyIHk9bFswXS5hWzBdLSgxK01hdGguYWJzKGxbMF0uYVswXSkpKk1hdGgucG93KDIsLTUyKSxiPVtuZXcgbihbeSwxXSxbeSwwXSwtMSxbXSxbXSxbXSxbXSldLHg9W10saD0wLF89bC5sZW5ndGg7aDxfOysraCl7dmFyIHc9bFtoXSxNPXcudHlwZTtNPT09cD9zKHgsYix0LHcuYSx3LmlkeCk6TT09PXY/dShiLHQsdyk6YyhiLHQsdyl9cmV0dXJuIHh9dmFyIGY9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxkPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdLHA9MCxtPTEsdj0yO2UuZXhwb3J0cz1ofSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjo4Miwicm9idXN0LW9yaWVudGF0aW9uIjo1MDZ9XSw4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy5zdGFycz10LHRoaXMuZWRnZXM9ZX1mdW5jdGlvbiBpKHQsZSxyKXtmb3IodmFyIG49MSxpPXQubGVuZ3RoO248aTtuKz0yKWlmKHRbbi0xXT09PWUmJnRbbl09PT1yKXJldHVybiB0W24tMV09dFtpLTJdLHRbbl09dFtpLTFdLHZvaWQodC5sZW5ndGg9aS0yKX1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxpPTA7aTx0OysraSlyW2ldPVtdO3JldHVybiBuZXcgbihyLGUpfXZhciBvPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZS5leHBvcnRzPWE7dmFyIHM9bi5wcm90b3R5cGU7cy5pc0NvbnN0cmFpbnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfXZhciBlPVswLDBdO3JldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiBlWzBdPU1hdGgubWluKHIsbiksZVsxXT1NYXRoLm1heChyLG4pLG8uZXEodGhpcy5lZGdlcyxlLHQpPj0wfX0oKSxzLnJlbW92ZVRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnN0YXJzO2koblt0XSxlLHIpLGkobltlXSxyLHQpLGkobltyXSx0LGUpfSxzLmFkZFRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnN0YXJzO25bdF0ucHVzaChlLHIpLG5bZV0ucHVzaChyLHQpLG5bcl0ucHVzaCh0LGUpfSxzLm9wcG9zaXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuc3RhcnNbZV0sbj0xLGk9ci5sZW5ndGg7bjxpO24rPTIpaWYocltuXT09PXQpcmV0dXJuIHJbbi0xXTtyZXR1cm4tMX0scy5mbGlwPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5vcHBvc2l0ZSh0LGUpLG49dGhpcy5vcHBvc2l0ZShlLHQpO3RoaXMucmVtb3ZlVHJpYW5nbGUodCxlLHIpLHRoaXMucmVtb3ZlVHJpYW5nbGUoZSx0LG4pLHRoaXMuYWRkVHJpYW5nbGUodCxuLHIpLHRoaXMuYWRkVHJpYW5nbGUoZSxyLG4pfSxzLmVkZ2VzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuc3RhcnMsZT1bXSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKWZvcih2YXIgaT10W3JdLGE9MCxvPWkubGVuZ3RoO2E8bzthKz0yKWUucHVzaChbaVthXSxpW2ErMV1dKTtyZXR1cm4gZX0scy5jZWxscz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN0YXJzLGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxhPTAsbz1pLmxlbmd0aDthPG87YSs9Mil7dmFyIHM9aVthXSxsPWlbYSsxXTtyPE1hdGgubWluKHMsbCkmJmUucHVzaChbcixzLGxdKX1yZXR1cm4gZX19LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjgyfV0sODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe3ZhciBhPVsiZnVuY3Rpb24gIix0LCIoYSxsLGgsIixuLmpvaW4oIiwiKSwiKXsiLGk/IiI6InZhciBpPSIscj8ibC0xIjoiaCsxIiwiO3doaWxlKGw8PWgpe3ZhciBtPShsK2gpPj4+MSx4PWFbbV0iXTtyZXR1cm4gaT9lLmluZGV4T2YoImMiKTwwP2EucHVzaCgiO2lmKHg9PT15KXtyZXR1cm4gbX1lbHNlIGlmKHg8PXkpeyIpOmEucHVzaCgiO3ZhciBwPWMoeCx5KTtpZihwPT09MCl7cmV0dXJuIG19ZWxzZSBpZihwPD0wKXsiKTphLnB1c2goIjtpZigiLGUsIil7aT1tOyIpLHI/YS5wdXNoKCJsPW0rMX1lbHNle2g9bS0xfSIpOmEucHVzaCgiaD1tLTF9ZWxzZXtsPW0rMX0iKSxhLnB1c2goIn0iKSxpP2EucHVzaCgicmV0dXJuIC0xfTsiKTphLnB1c2goInJldHVybiBpfTsiKSxhLmpvaW4oIiIpfWZ1bmN0aW9uIGkodCxlLHIsaSl7cmV0dXJuIG5ldyBGdW5jdGlvbihbbigiQSIsIngiK3QrInkiLGUsWyJ5Il0saSksbigiUCIsImMoeCx5KSIrdCsiMCIsZSxbInkiLCJjIl0saSksImZ1bmN0aW9uIGRpc3BhdGNoQnNlYXJjaCIsciwiKGEseSxjLGwsaCl7aWYodHlwZW9mKGMpPT09J2Z1bmN0aW9uJyl7cmV0dXJuIFAoYSwobD09PXZvaWQgMCk/MDpsfDAsKGg9PT12b2lkIDApP2EubGVuZ3RoLTE6aHwwLHksYyl9ZWxzZXtyZXR1cm4gQShhLChjPT09dm9pZCAwKT8wOmN8MCwobD09PXZvaWQgMCk/YS5sZW5ndGgtMTpsfDAseSl9fXJldHVybiBkaXNwYXRjaEJzZWFyY2giLHJdLmpvaW4oIiIpKSgpfWUuZXhwb3J0cz17Z2U6aSgiPj0iLCExLCJHRSIpLGd0OmkoIj4iLCExLCJHVCIpLGx0OmkoIjwiLCEwLCJMVCIpLGxlOmkoIjw9IiwhMCwiTEUiKSxlcTppKCItIiwhMCwiRVEiLCEwKX19LHt9XSw4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0xLHI9MTtyPHQubGVuZ3RoOysrcilmb3IodmFyIG49MDtuPHI7KytuKWlmKHRbcl08dFtuXSllPS1lO2Vsc2UgaWYodFtuXT09PXRbcl0pcmV0dXJuIDA7cmV0dXJuIGV9ZS5leHBvcnRzPW59LHt9XSw4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPTAsbj10Lmxlbmd0aCxpPTA7aTxuOysraSlyKz10W2ldKmVbaV07cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0KXt2YXIgZT10Lmxlbmd0aDtpZigwPT09ZSlyZXR1cm5bXTt2YXIgcj0odFswXS5sZW5ndGgsbyhbdC5sZW5ndGgrMSx0Lmxlbmd0aCsxXSwxKSksaT1vKFt0Lmxlbmd0aCsxXSwxKTtyW2VdW2VdPTA7Zm9yKHZhciBhPTA7YTxlOysrYSl7Zm9yKHZhciBsPTA7bDw9YTsrK2wpcltsXVthXT1yW2FdW2xdPTIqbih0W2FdLHRbbF0pO2lbYV09bih0W2FdLHRbYV0pfWZvcih2YXIgdT1zKHIsaSksYz0wLGg9dVtlKzFdLGE9MDthPGgubGVuZ3RoOysrYSljKz1oW2FdO2Zvcih2YXIgZj1uZXcgQXJyYXkoZSksYT0wO2E8ZTsrK2Epe2Zvcih2YXIgaD11W2FdLGQ9MCxsPTA7bDxoLmxlbmd0aDsrK2wpZCs9aFtsXTtmW2FdPWQvY31yZXR1cm4gZn1mdW5jdGlvbiBhKHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm5bXTtmb3IodmFyIGU9dFswXS5sZW5ndGgscj1vKFtlXSksbj1pKHQpLGE9MDthPHQubGVuZ3RoOysrYSlmb3IodmFyIHM9MDtzPGU7KytzKXJbc10rPXRbYV1bc10qblthXTtyZXR1cm4gcn12YXIgbz10KCJkdXAiKSxzPXQoInJvYnVzdC1saW5lYXItc29sdmUiKTthLmJhcnljZW5ldHJpYz1pLGUuZXhwb3J0cz1hfSx7ZHVwOjEyMywicm9idXN0LWxpbmVhci1zb2x2ZSI6NTA1fV0sODU6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT1pKHQpLHI9MCxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBhPXRbbl0sbz0wO288ZS5sZW5ndGg7KytvKXIrPU1hdGgucG93KGFbb10tZVtvXSwyKTtyZXR1cm4gTWF0aC5zcXJ0KHIvdC5sZW5ndGgpfWUuZXhwb3J0cz1uO3ZhciBpPXQoImNpcmN1bWNlbnRlciIpfSx7Y2lyY3VtY2VudGVyOjg0fV0sODY6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXtyZXR1cm4gZTxyP3Q8ZT9lOnQ+cj9yOnQ6dDxyP3I6dD5lP2U6dH1lLmV4cG9ydHM9bn0se31dLDg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9Xyh0KTtyZXR1cm5bTShlLC0xLzApLE0oZSwxLzApXX1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlLmxlbmd0aCksbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgaT1lW25dLGE9dFtpWzBdXSxvPXRbaVsxXV07cltuXT1bTShNYXRoLm1pbihhWzBdLG9bMF0pLC0xLzApLE0oTWF0aC5taW4oYVsxXSxvWzFdKSwtMS8wKSxNKE1hdGgubWF4KGFbMF0sb1swXSksMS8wKSxNKE1hdGgubWF4KGFbMV0sb1sxXSksMS8wKV19cmV0dXJuIHJ9ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDsrK3Ipe3ZhciBuPXRbcl07ZVtyXT1bTShuWzBdLC0xLzApLE0oblsxXSwtMS8wKSxNKG5bMF0sMS8wKSxNKG5bMV0sMS8wKV19cmV0dXJuIGV9ZnVuY3Rpb24gbyh0LGUscil7dmFyIG49W107cmV0dXJuIGcocixmdW5jdGlvbihyLGkpe3ZhciBhPWVbcl0sbz1lW2ldO2lmKGFbMF0hPT1vWzBdJiZhWzBdIT09b1sxXSYmYVsxXSE9PW9bMF0mJmFbMV0hPT1vWzFdKXt2YXIgcz10W2FbMF1dLGw9dFthWzFdXSx1PXRbb1swXV0sYz10W29bMV1dO3kocyxsLHUsYykmJm4ucHVzaChbcixpXSl9fSksbn1mdW5jdGlvbiBzKHQsZSxyLG4pe3ZhciBpPVtdO3JldHVybiBnKHIsbixmdW5jdGlvbihyLG4pe3ZhciBhPWVbcl07aWYoYVswXSE9PW4mJmFbMV0hPT1uKXt2YXIgbz10W25dLHM9dFthWzBdXSxsPXRbYVsxXV07eShzLGwsbyxvKSYmaS5wdXNoKFtyLG5dKX19KSxpfWZ1bmN0aW9uIGwodCxlLHIsbixpKXt2YXIgYSxvLHM9dC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuW2IodFswXSksYih0WzFdKV19KTtmb3IoYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgbD1yW2FdO289bFswXTt2YXIgdT1sWzFdLGM9ZVtvXSxoPWVbdV0sZj1rKHcodFtjWzBdXSksdyh0W2NbMV1dKSx3KHRbaFswXV0pLHcodFtoWzFdXSkpO2lmKGYpe3ZhciBkPXQubGVuZ3RoO3QucHVzaChbXyhmWzBdKSxfKGZbMV0pXSkscy5wdXNoKGYpLG4ucHVzaChbbyxkXSxbdSxkXSl9fWZvcihuLnNvcnQoZnVuY3Rpb24odCxlKXtpZih0WzBdIT09ZVswXSlyZXR1cm4gdFswXS1lWzBdO3ZhciByPXNbdFsxXV0sbj1zW2VbMV1dO3JldHVybiB4KHJbMF0sblswXSl8fHgoclsxXSxuWzFdKX0pLGE9bi5sZW5ndGgtMTthPj0wOy0tYSl7dmFyIHA9blthXTtvPXBbMF07dmFyIG09ZVtvXSx2PW1bMF0sZz1tWzFdLHk9dFt2XSxNPXRbZ107aWYoKHlbMF0tTVswXXx8eVsxXS1NWzFdKTwwKXt2YXIgQT12O3Y9ZyxnPUF9bVswXT12O3ZhciBULFM9bVsxXT1wWzFdO2ZvcihpJiYoVD1tWzJdKTthPjAmJm5bYS0xXVswXT09PW87KXt2YXIgcD1uWy0tYV0sRT1wWzFdO2k/ZS5wdXNoKFtTLEUsVF0pOmUucHVzaChbUyxFXSksUz1FfWk/ZS5wdXNoKFtTLGcsVF0pOmUucHVzaChbUyxnXSl9cmV0dXJuIHN9ZnVuY3Rpb24gdSh0LGUscil7Zm9yKHZhciBpPWUubGVuZ3RoLGE9bmV3IHYoaSksbz1bXSxzPTA7czxlLmxlbmd0aDsrK3Mpe3ZhciBsPWVbc10sdT1uKGxbMF0pLGM9bihsWzFdKTtvLnB1c2goW00odVswXSwtMS8wKSxNKGNbMF0sLTEvMCksTSh1WzFdLDEvMCksTShjWzFdLDEvMCldKX1nKG8sZnVuY3Rpb24odCxlKXthLmxpbmsodCxlKX0pO2Zvcih2YXIgaD0hMCxmPW5ldyBBcnJheShpKSxzPTA7czxpOysrcyl7dmFyIGQ9YS5maW5kKHMpO2QhPT1zJiYoaD0hMSx0W2RdPVtNYXRoLm1pbih0W3NdWzBdLHRbZF1bMF0pLE1hdGgubWluKHRbc11bMV0sdFtkXVsxXSldKX1pZihoKXJldHVybiBudWxsO2Zvcih2YXIgcD0wLHM9MDtzPGk7KytzKXt2YXIgZD1hLmZpbmQocyk7ZD09PXM/KGZbc109cCx0W3ArK109dFtzXSk6ZltzXT0tMX10Lmxlbmd0aD1wO2Zvcih2YXIgcz0wO3M8aTsrK3MpZltzXTwwJiYoZltzXT1mW2EuZmluZChzKV0pO3JldHVybiBmfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19ZnVuY3Rpb24gaCh0LGUpe3ZhciByPXRbMF0tZVswXXx8dFsxXS1lWzFdO3JldHVybiByfHwodFsyXTxlWzJdPy0xOnRbMl0+ZVsyXT8xOjApfWZ1bmN0aW9uIGYodCxlLHIpe2lmKDAhPT10Lmxlbmd0aCl7aWYoZSlmb3IodmFyIG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGk9dFtuXSxhPWVbaVswXV0sbz1lW2lbMV1dO2lbMF09TWF0aC5taW4oYSxvKSxpWzFdPU1hdGgubWF4KGEsbyl9ZWxzZSBmb3IodmFyIG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGk9dFtuXSxhPWlbMF0sbz1pWzFdO2lbMF09TWF0aC5taW4oYSxvKSxpWzFdPU1hdGgubWF4KGEsbyl9cj90LnNvcnQoaCk6dC5zb3J0KGMpO2Zvcih2YXIgcz0xLG49MTtuPHQubGVuZ3RoOysrbil7CnZhciBsPXRbbi0xXSx1PXRbbl07KHVbMF0hPT1sWzBdfHx1WzFdIT09bFsxXXx8ciYmdVsyXSE9PWxbMl0pJiYodFtzKytdPXUpfXQubGVuZ3RoPXN9fWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBuPXUodCxbXSxhKHQpKTtyZXR1cm4gZihlLG4sciksISFufWZ1bmN0aW9uIHAodCxlLHIpe3ZhciBuPWkodCxlKSxjPW8odCxlLG4pLGg9YSh0KSxkPXModCxlLG4saCkscD1sKHQsZSxjLGQsciksbT11KHQscCxoKTtyZXR1cm4gZihlLG0sciksISFtfHwoYy5sZW5ndGg+MHx8ZC5sZW5ndGg+MCl9ZnVuY3Rpb24gbSh0LGUscil7dmFyIG47aWYocil7bj1lO2Zvcih2YXIgaT1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9MDthPGUubGVuZ3RoOysrYSl7dmFyIG89ZVthXTtpW2FdPVtvWzBdLG9bMV0sclthXV19ZT1pfWZvcih2YXIgcz1kKHQsZSwhIXIpO3AodCxlLCEhcik7KXM9ITA7aWYociYmcyl7bi5sZW5ndGg9MCxyLmxlbmd0aD0wO2Zvcih2YXIgYT0wO2E8ZS5sZW5ndGg7KythKXt2YXIgbz1lW2FdO24ucHVzaChbb1swXSxvWzFdXSksci5wdXNoKG9bMl0pfX1yZXR1cm4gc31lLmV4cG9ydHM9bTt2YXIgdj10KCJ1bmlvbi1maW5kIiksZz10KCJib3gtaW50ZXJzZWN0IikseT10KCJyb2J1c3Qtc2VnbWVudC1pbnRlcnNlY3QiKSxiPXQoImJpZy1yYXQiKSx4PXQoImJpZy1yYXQvY21wIiksXz10KCJiaWctcmF0L3RvLWZsb2F0Iiksdz10KCJyYXQtdmVjIiksTT10KCJuZXh0YWZ0ZXIiKSxrPXQoIi4vbGliL3JhdC1zZWctaW50ZXJzZWN0Iil9LHsiLi9saWIvcmF0LXNlZy1pbnRlcnNlY3QiOjg4LCJiaWctcmF0Ijo1MSwiYmlnLXJhdC9jbXAiOjQ5LCJiaWctcmF0L3RvLWZsb2F0Ijo2MywiYm94LWludGVyc2VjdCI6NjgsbmV4dGFmdGVyOjQ2NiwicmF0LXZlYyI6NDkzLCJyb2J1c3Qtc2VnbWVudC1pbnRlcnNlY3QiOjUwOSwidW5pb24tZmluZCI6NTQwfV0sODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBzKGEodFswXSxlWzFdKSxhKHRbMV0sZVswXSkpfWZ1bmN0aW9uIGkodCxlLHIsaSl7dmFyIGE9dShlLHQpLHM9dShpLHIpLGY9bihhLHMpO2lmKDA9PT1sKGYpKXJldHVybiBudWxsO3ZhciBkPXUodCxyKSxwPW4ocyxkKSxtPW8ocCxmKSx2PWgoYSxtKTtyZXR1cm4gYyh0LHYpfWUuZXhwb3J0cz1pO3ZhciBhPXQoImJpZy1yYXQvbXVsIiksbz10KCJiaWctcmF0L2RpdiIpLHM9dCgiYmlnLXJhdC9zdWIiKSxsPXQoImJpZy1yYXQvc2lnbiIpLHU9dCgicmF0LXZlYy9zdWIiKSxjPXQoInJhdC12ZWMvYWRkIiksaD10KCJyYXQtdmVjL211bHMiKX0seyJiaWctcmF0L2RpdiI6NTAsImJpZy1yYXQvbXVsIjo2MCwiYmlnLXJhdC9zaWduIjo2MSwiYmlnLXJhdC9zdWIiOjYyLCJyYXQtdmVjL2FkZCI6NDkyLCJyYXQtdmVjL211bHMiOjQ5NCwicmF0LXZlYy9zdWIiOjQ5NX1dLDg5OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpe3ZhciByPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUocixuLGksYSl7ZnVuY3Rpb24gcyhyLGkpe2lmKG51bGw9PT1yKXJldHVybiBudWxsO2lmKDA9PWkpcmV0dXJuIHI7dmFyIGgsZjtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7aWYoZS5fX2lzQXJyYXkocikpaD1bXTtlbHNlIGlmKGUuX19pc1JlZ0V4cChyKSloPW5ldyBSZWdFeHAoci5zb3VyY2UsbyhyKSksci5sYXN0SW5kZXgmJihoLmxhc3RJbmRleD1yLmxhc3RJbmRleCk7ZWxzZSBpZihlLl9faXNEYXRlKHIpKWg9bmV3IERhdGUoci5nZXRUaW1lKCkpO2Vsc2V7aWYoYyYmdC5pc0J1ZmZlcihyKSlyZXR1cm4gaD1uZXcgdChyLmxlbmd0aCksci5jb3B5KGgpLGg7dm9pZCAwPT09YT8oZj1PYmplY3QuZ2V0UHJvdG90eXBlT2YociksaD1PYmplY3QuY3JlYXRlKGYpKTooaD1PYmplY3QuY3JlYXRlKGEpLGY9YSl9aWYobil7dmFyIGQ9bC5pbmRleE9mKHIpO2lmKC0xIT1kKXJldHVybiB1W2RdO2wucHVzaChyKSx1LnB1c2goaCl9Zm9yKHZhciBwIGluIHIpe3ZhciBtO2YmJihtPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZixwKSksbSYmbnVsbD09bS5zZXR8fChoW3BdPXMocltwXSxpLTEpKX1yZXR1cm4gaH0ib2JqZWN0Ij09dHlwZW9mIG4mJihpPW4uZGVwdGgsYT1uLnByb3RvdHlwZSxuLmZpbHRlcixuPW4uY2lyY3VsYXIpO3ZhciBsPVtdLHU9W10sYz12b2lkIDAhPT10O3JldHVybiB2b2lkIDA9PT1uJiYobj0hMCksdm9pZCAwPT09aSYmKGk9MS8wKSxzKHIsaSl9ZnVuY3Rpb24gcih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYiW29iamVjdCBEYXRlXSI9PT1yKHQpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYiW29iamVjdCBBcnJheV0iPT09cih0KX1mdW5jdGlvbiBhKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmIltvYmplY3QgUmVnRXhwXSI9PT1yKHQpfWZ1bmN0aW9uIG8odCl7dmFyIGU9IiI7cmV0dXJuIHQuZ2xvYmFsJiYoZSs9ImciKSx0Lmlnbm9yZUNhc2UmJihlKz0iaSIpLHQubXVsdGlsaW5lJiYoZSs9Im0iKSxlfXJldHVybiBlLmNsb25lUHJvdG90eXBlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PT10KXJldHVybiBudWxsO3ZhciBlPWZ1bmN0aW9uKCl7fTtyZXR1cm4gZS5wcm90b3R5cGU9dCxuZXcgZX0sZS5fX29ialRvU3RyPXIsZS5fX2lzRGF0ZT1uLGUuX19pc0FycmF5PWksZS5fX2lzUmVnRXhwPWEsZS5fX2dldFJlZ0V4cEZsYWdzPW8sZX0oKTsib2JqZWN0Ij09dHlwZW9mIGUmJmUuZXhwb3J0cyYmKGUuZXhwb3J0cz1yKX0pLmNhbGwodGhpcyx0KCJidWZmZXIiKS5CdWZmZXIpfSx7YnVmZmVyOjc1fV0sOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe251bGw9PWUmJihlPSEwKTt2YXIgcj10WzBdLG49dFsxXSxpPXRbMl0sbz10WzNdO3JldHVybiBudWxsPT1vJiYobz1lPzE6MjU1KSxlJiYocio9MjU1LG4qPTI1NSxpKj0yNTUsbyo9MjU1KSxyPTI1NSZhKHIsMCwyNTUpLG49MjU1JmEobiwwLDI1NSksaT0yNTUmYShpLDAsMjU1KSxvPTI1NSZhKG8sMCwyNTUpLDE2Nzc3MjE2KnIrKG48PDE2KSsoaTw8OCkrb31mdW5jdGlvbiBpKHQsZSl7dD0rdDt2YXIgcj10Pj4+MjQsbj0oMTY3MTE2ODAmdCk+Pj4xNixpPSg2NTI4MCZ0KT4+PjgsYT0yNTUmdDtyZXR1cm4hMT09PWU/W3IsbixpLGFdOltyLzI1NSxuLzI1NSxpLzI1NSxhLzI1NV19dmFyIGE9dCgiY2xhbXAiKTtlLmV4cG9ydHM9bixlLmV4cG9ydHMudG89bixlLmV4cG9ydHMuZnJvbT1pfSx7Y2xhbXA6ODZ9XSw5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2FsaWNlYmx1ZTpbMjQwLDI0OCwyNTVdLGFudGlxdWV3aGl0ZTpbMjUwLDIzNSwyMTVdLGFxdWE6WzAsMjU1LDI1NV0sYXF1YW1hcmluZTpbMTI3LDI1NSwyMTJdLGF6dXJlOlsyNDAsMjU1LDI1NV0sYmVpZ2U6WzI0NSwyNDUsMjIwXSxiaXNxdWU6WzI1NSwyMjgsMTk2XSxibGFjazpbMCwwLDBdLGJsYW5jaGVkYWxtb25kOlsyNTUsMjM1LDIwNV0sYmx1ZTpbMCwwLDI1NV0sYmx1ZXZpb2xldDpbMTM4LDQzLDIyNl0sYnJvd246WzE2NSw0Miw0Ml0sYnVybHl3b29kOlsyMjIsMTg0LDEzNV0sY2FkZXRibHVlOls5NSwxNTgsMTYwXSxjaGFydHJldXNlOlsxMjcsMjU1LDBdLGNob2NvbGF0ZTpbMjEwLDEwNSwzMF0sY29yYWw6WzI1NSwxMjcsODBdLGNvcm5mbG93ZXJibHVlOlsxMDAsMTQ5LDIzN10sY29ybnNpbGs6WzI1NSwyNDgsMjIwXSxjcmltc29uOlsyMjAsMjAsNjBdLGN5YW46WzAsMjU1LDI1NV0sZGFya2JsdWU6WzAsMCwxMzldLGRhcmtjeWFuOlswLDEzOSwxMzldLGRhcmtnb2xkZW5yb2Q6WzE4NCwxMzQsMTFdLGRhcmtncmF5OlsxNjksMTY5LDE2OV0sZGFya2dyZWVuOlswLDEwMCwwXSxkYXJrZ3JleTpbMTY5LDE2OSwxNjldLGRhcmtraGFraTpbMTg5LDE4MywxMDddLGRhcmttYWdlbnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcsNDddLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3JlZDpbMTM5LDAsMF0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjJdLGRhcmtzZWFncmVlbjpbMTQzLDE4OCwxNDNdLGRhcmtzbGF0ZWJsdWU6WzcyLDYxLDEzOV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzldLGRhcmtzbGF0ZWdyZXk6WzQ3LDc5LDc5XSxkYXJrdHVycXVvaXNlOlswLDIwNiwyMDldLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMV0sZGVlcHBpbms6WzI1NSwyMCwxNDddLGRlZXBza3libHVlOlswLDE5MSwyNTVdLGRpbWdyYXk6WzEwNSwxMDUsMTA1XSxkaW1ncmV5OlsxMDUsMTA1LDEwNV0sZG9kZ2VyYmx1ZTpbMzAsMTQ0LDI1NV0sZmlyZWJyaWNrOlsxNzgsMzQsMzRdLGZsb3JhbHdoaXRlOlsyNTUsMjUwLDI0MF0sZm9yZXN0Z3JlZW46WzM0LDEzOSwzNF0sZnVjaHNpYTpbMjU1LDAsMjU1XSxnYWluc2Jvcm86WzIyMCwyMjAsMjIwXSxnaG9zdHdoaXRlOlsyNDgsMjQ4LDI1NV0sZ29sZDpbMjU1LDIxNSwwXSxnb2xkZW5yb2Q6WzIxOCwxNjUsMzJdLGdyYXk6WzEyOCwxMjgsMTI4XSxncmVlbjpbMCwxMjgsMF0sZ3JlZW55ZWxsb3c6WzE3MywyNTUsNDddLGdyZXk6WzEyOCwxMjgsMTI4XSxob25leWRldzpbMjQwLDI1NSwyNDBdLGhvdHBpbms6WzI1NSwxMDUsMTgwXSxpbmRpYW5yZWQ6WzIwNSw5Miw5Ml0saW5kaWdvOls3NSwwLDEzMF0saXZvcnk6WzI1NSwyNTUsMjQwXSxraGFraTpbMjQwLDIzMCwxNDBdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MF0sbGF2ZW5kZXJibHVzaDpbMjU1LDI0MCwyNDVdLGxhd25ncmVlbjpbMTI0LDI1MiwwXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1XSxsaWdodGJsdWU6WzE3MywyMTYsMjMwXSxsaWdodGNvcmFsOlsyNDAsMTI4LDEyOF0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NV0sbGlnaHRnb2xkZW5yb2R5ZWxsb3c6WzI1MCwyNTAsMjEwXSxsaWdodGdyYXk6WzIxMSwyMTEsMjExXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NF0sbGlnaHRncmV5OlsyMTEsMjExLDIxMV0sbGlnaHRwaW5rOlsyNTUsMTgyLDE5M10sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyXSxsaWdodHNlYWdyZWVuOlszMiwxNzgsMTcwXSxsaWdodHNreWJsdWU6WzEzNSwyMDYsMjUwXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTNdLGxpZ2h0c2xhdGVncmV5OlsxMTksMTM2LDE1M10sbGlnaHRzdGVlbGJsdWU6WzE3NiwxOTYsMjIyXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjRdLGxpbWU6WzAsMjU1LDBdLGxpbWVncmVlbjpbNTAsMjA1LDUwXSxsaW5lbjpbMjUwLDI0MCwyMzBdLG1hZ2VudGE6WzI1NSwwLDI1NV0sbWFyb29uOlsxMjgsMCwwXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MF0sbWVkaXVtYmx1ZTpbMCwwLDIwNV0sbWVkaXVtb3JjaGlkOlsxODYsODUsMjExXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5XSxtZWRpdW1zZWFncmVlbjpbNjAsMTc5LDExM10sbWVkaXVtc2xhdGVibHVlOlsxMjMsMTA0LDIzOF0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NF0sbWVkaXVtdHVycXVvaXNlOls3MiwyMDksMjA0XSxtZWRpdW12aW9sZXRyZWQ6WzE5OSwyMSwxMzNdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyXSxtaW50Y3JlYW06WzI0NSwyNTUsMjUwXSxtaXN0eXJvc2U6WzI1NSwyMjgsMjI1XSxtb2NjYXNpbjpbMjU1LDIyOCwxODFdLG5hdmFqb3doaXRlOlsyNTUsMjIyLDE3M10sbmF2eTpbMCwwLDEyOF0sb2xkbGFjZTpbMjUzLDI0NSwyMzBdLG9saXZlOlsxMjgsMTI4LDBdLG9saXZlZHJhYjpbMTA3LDE0MiwzNV0sb3JhbmdlOlsyNTUsMTY1LDBdLG9yYW5nZXJlZDpbMjU1LDY5LDBdLG9yY2hpZDpbMjE4LDExMiwyMTRdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwXSxwYWxlZ3JlZW46WzE1MiwyNTEsMTUyXSxwYWxldHVycXVvaXNlOlsxNzUsMjM4LDIzOF0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDddLHBhcGF5YXdoaXA6WzI1NSwyMzksMjEzXSxwZWFjaHB1ZmY6WzI1NSwyMTgsMTg1XSxwZXJ1OlsyMDUsMTMzLDYzXSxwaW5rOlsyNTUsMTkyLDIwM10scGx1bTpbMjIxLDE2MCwyMjFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwXSxwdXJwbGU6WzEyOCwwLDEyOF0scmViZWNjYXB1cnBsZTpbMTAyLDUxLDE1M10scmVkOlsyNTUsMCwwXSxyb3N5YnJvd246WzE4OCwxNDMsMTQzXSxyb3lhbGJsdWU6WzY1LDEwNSwyMjVdLHNhZGRsZWJyb3duOlsxMzksNjksMTldLHNhbG1vbjpbMjUwLDEyOCwxMTRdLHNhbmR5YnJvd246WzI0NCwxNjQsOTZdLHNlYWdyZWVuOls0NiwxMzksODddLHNlYXNoZWxsOlsyNTUsMjQ1LDIzOF0sc2llbm5hOlsxNjAsODIsNDVdLHNpbHZlcjpbMTkyLDE5MiwxOTJdLHNreWJsdWU6WzEzNSwyMDYsMjM1XSxzbGF0ZWJsdWU6WzEwNiw5MCwyMDVdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDRdLHNsYXRlZ3JleTpbMTEyLDEyOCwxNDRdLHNub3c6WzI1NSwyNTAsMjUwXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3XSxzdGVlbGJsdWU6WzcwLDEzMCwxODBdLHRhbjpbMjEwLDE4MCwxNDBdLHRlYWw6WzAsMTI4LDEyOF0sdGhpc3RsZTpbMjE2LDE5MSwyMTZdLHRvbWF0bzpbMjU1LDk5LDcxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDhdLHZpb2xldDpbMjM4LDEzMCwyMzhdLHdoZWF0OlsyNDUsMjIyLDE3OV0sd2hpdGU6WzI1NSwyNTUsMjU1XSx3aGl0ZXNtb2tlOlsyNDUsMjQ1LDI0NV0seWVsbG93OlsyNTUsMjU1LDBdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwXX19LHt9XSw5MjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZSxuLHM9W10sbD0xO2lmKCJzdHJpbmciPT10eXBlb2YgdClpZihpW3RdKXM9aVt0XS5zbGljZSgpLG49InJnYiI7ZWxzZSBpZigidHJhbnNwYXJlbnQiPT09dClsPTAsbj0icmdiIixzPVswLDAsMF07ZWxzZSBpZigvXiNbQS1GYS1mMC05XSskLy50ZXN0KHQpKXt2YXIgdT10LnNsaWNlKDEpLGM9dS5sZW5ndGgsaD1jPD00O2w9MSxoPyhzPVtwYXJzZUludCh1WzBdK3VbMF0sMTYpLHBhcnNlSW50KHVbMV0rdVsxXSwxNikscGFyc2VJbnQodVsyXSt1WzJdLDE2KV0sND09PWMmJihsPXBhcnNlSW50KHVbM10rdVszXSwxNikvMjU1KSk6KHM9W3BhcnNlSW50KHVbMF0rdVsxXSwxNikscGFyc2VJbnQodVsyXSt1WzNdLDE2KSxwYXJzZUludCh1WzRdK3VbNV0sMTYpXSw4PT09YyYmKGw9cGFyc2VJbnQodVs2XSt1WzddLDE2KS8yNTUpKSxzWzBdfHwoc1swXT0wKSxzWzFdfHwoc1sxXT0wKSxzWzJdfHwoc1syXT0wKSxuPSJyZ2IifWVsc2UgaWYoZT0vXigoPzpyZ2J8aHNbbHZiXXxod2J8Y215az98eHlbenldfGdyYXl8bGFifGxjaHU/dj98W2x5XXV2fGxtcylhPylccypcKChbXlwpXSopXCkvLmV4ZWModCkpe3ZhciBmPWVbMV0sdT1mLnJlcGxhY2UoL2EkLywiIik7bj11O3ZhciBjPSJjbXlrIj09PXU/NDoiZ3JheSI9PT11PzE6MztzPWVbMl0udHJpbSgpLnNwbGl0KC9ccyosXHMqLykubWFwKGZ1bmN0aW9uKHQsZSl7aWYoLyUkLy50ZXN0KHQpKXJldHVybiBlPT09Yz9wYXJzZUZsb2F0KHQpLzEwMDoicmdiIj09PXU/MjU1KnBhcnNlRmxvYXQodCkvMTAwOnBhcnNlRmxvYXQodCk7aWYoImgiPT09dVtlXSl7aWYoL2RlZyQvLnRlc3QodCkpcmV0dXJuIHBhcnNlRmxvYXQodCk7aWYodm9pZCAwIT09b1t0XSlyZXR1cm4gb1t0XX1yZXR1cm4gcGFyc2VGbG9hdCh0KX0pLGY9PT11JiZzLnB1c2goMSksbD12b2lkIDA9PT1zW2NdPzE6c1tjXSxzPXMuc2xpY2UoMCxjKX1lbHNlIHQubGVuZ3RoPjEwJiYvWzAtOV0oPzpcc3xcLykvLnRlc3QodCkmJihzPXQubWF0Y2goLyhbMC05XSspL2cpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0pLG49dC5tYXRjaCgvKFthLXpdKS9naSkuam9pbigiIikudG9Mb3dlckNhc2UoKSk7ZWxzZSJudW1iZXIiPT10eXBlb2YgdD8obj0icmdiIixzPVt0Pj4+MTYsKDY1MjgwJnQpPj4+OCwyNTUmdF0pOmEodCk/KG51bGwhPXQucj8ocz1bdC5yLHQuZyx0LmJdLG49InJnYiIpOm51bGwhPXQucmVkPyhzPVt0LnJlZCx0LmdyZWVuLHQuYmx1ZV0sbj0icmdiIik6bnVsbCE9dC5oPyhzPVt0LmgsdC5zLHQubF0sbj0iaHNsIik6bnVsbCE9dC5odWUmJihzPVt0Lmh1ZSx0LnNhdHVyYXRpb24sdC5saWdodG5lc3NdLG49ImhzbCIpLG51bGwhPXQuYT9sPXQuYTpudWxsIT10LmFscGhhP2w9dC5hbHBoYTpudWxsIT10Lm9wYWNpdHkmJihsPXQub3BhY2l0eS8xMDApKTooQXJyYXkuaXNBcnJheSh0KXx8ci5BcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3JiZBcnJheUJ1ZmZlci5pc1ZpZXcodCkpJiYocz1bdFswXSx0WzFdLHRbMl1dLG49InJnYiIsbD00PT09dC5sZW5ndGg/dFszXToxKTtyZXR1cm57c3BhY2U6bix2YWx1ZXM6cyxhbHBoYTpsfX1lLmV4cG9ydHM9bjt2YXIgaT10KCJjb2xvci1uYW1lIiksYT10KCJpcy1wbGFpbi1vYmoiKSxvPXtyZWQ6MCxvcmFuZ2U6NjAseWVsbG93OjEyMCxncmVlbjoxODAsYmx1ZToyNDAscHVycGxlOjMwMH19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiY29sb3ItbmFtZSI6OTEsImlzLXBsYWluLW9iaiI6Mjk1fV0sOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3ItcGFyc2UiKSxpPXQoImNvbG9yLXNwYWNlL2hzbCIpLGE9dCgiY2xhbXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0O251bGw9PWUmJihlPSEwKTt2YXIgcj1uKHQpO2lmKCFyLnNwYWNlKXJldHVybltdO3ZhciBvLHM9ci52YWx1ZXMsbD1zLmxlbmd0aDtmb3Iobz0wO288bDtvKyspc1tvXT1hKHNbb10sMCwyNTUpO2lmKCJoIj09PXIuc3BhY2VbMF0mJihzPWkucmdiKHMpKSxlKWZvcihvPTA7bzxsO28rKylzW29dLz0yNTU7cmV0dXJuIHMucHVzaChhKHIuYWxwaGEsMCwxKSksc319LHtjbGFtcDo4NiwiY29sb3ItcGFyc2UiOjkyLCJjb2xvci1zcGFjZS9oc2wiOjk0fV0sOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9yZ2IiKTtlLmV4cG9ydHM9e25hbWU6ImhzbCIsbWluOlswLDAsMF0sbWF4OlszNjAsMTAwLDEwMF0sY2hhbm5lbDpbImh1ZSIsInNhdHVyYXRpb24iLCJsaWdodG5lc3MiXSxhbGlhczpbIkhTTCJdLHJnYjpmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG89dFswXS8zNjAscz10WzFdLzEwMCxsPXRbMl0vMTAwO2lmKDA9PT1zKXJldHVybiBhPTI1NSpsLFthLGEsYV07cj1sPC41P2wqKDErcyk6bCtzLWwqcyxlPTIqbC1yLGk9WzAsMCwwXTtmb3IodmFyIHU9MDt1PDM7dSsrKW49bysxLzMqLSh1LTEpLG48MD9uKys6bj4xJiZuLS0sYT02Km48MT9lKzYqKHItZSkqbjoyKm48MT9yOjMqbjwyP2UrKHItZSkqKDIvMy1uKSo2OmUsaVt1XT0yNTUqYTtyZXR1cm4gaX19LG4uaHNsPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPXRbMF0vMjU1LGE9dFsxXS8yNTUsbz10WzJdLzI1NSxzPU1hdGgubWluKGksYSxvKSxsPU1hdGgubWF4KGksYSxvKSx1PWwtcztyZXR1cm4gbD09PXM/ZT0wOmk9PT1sP2U9KGEtbykvdTphPT09bD9lPTIrKG8taSkvdTpvPT09bCYmKGU9NCsoaS1hKS91KSxlPU1hdGgubWluKDYwKmUsMzYwKSxlPDAmJihlKz0zNjApLG49KHMrbCkvMixyPWw9PT1zPzA6bjw9LjU/dS8obCtzKTp1LygyLWwtcyksW2UsMTAwKnIsMTAwKm5dfX0seyIuL3JnYiI6OTV9XSw5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e25hbWU6InJnYiIsbWluOlswLDAsMF0sbWF4OlsyNTUsMjU1LDI1NV0sY2hhbm5lbDpbInJlZCIsImdyZWVuIiwiYmx1ZSJdLGFsaWFzOlsiUkdCIl19fSx7fV0sOTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e2pldDpbe2luZGV4OjAscmdiOlswLDAsMTMxXX0se2luZGV4Oi4xMjUscmdiOlswLDYwLDE3MF19LHtpbmRleDouMzc1LHJnYjpbNSwyNTUsMjU1XX0se2luZGV4Oi42MjUscmdiOlsyNTUsMjU1LDBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1MCwwLDBdfSx7aW5kZXg6MSxyZ2I6WzEyOCwwLDBdfV0saHN2Olt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6LjE2OSxyZ2I6WzI1MywyNTUsMl19LHtpbmRleDouMTczLHJnYjpbMjQ3LDI1NSwyXX0se2luZGV4Oi4zMzcscmdiOlswLDI1Miw0XX0se2luZGV4Oi4zNDEscmdiOlswLDI1MiwxMF19LHtpbmRleDouNTA2LHJnYjpbMSwyNDksMjU1XX0se2luZGV4Oi42NzEscmdiOlsyLDAsMjUzXX0se2luZGV4Oi42NzUscmdiOls4LDAsMjUzXX0se2luZGV4Oi44MzkscmdiOlsyNTUsMCwyNTFdfSx7aW5kZXg6Ljg0MyxyZ2I6WzI1NSwwLDI0NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsNl19XSxob3Q6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjMscmdiOlsyMzAsMCwwXX0se2luZGV4Oi42LHJnYjpbMjU1LDIxMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxjb29sOlt7aW5kZXg6MCxyZ2I6WzAsMjU1LDI1NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsMjU1XX1dLHNwcmluZzpbe2luZGV4OjAscmdiOlsyNTUsMCwyNTVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMF19XSxzdW1tZXI6W3tpbmRleDowLHJnYjpbMCwxMjgsMTAyXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDEwMl19XSxhdXR1bW46W3tpbmRleDowLHJnYjpbMjU1LDAsMF19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwwXX1dLHdpbnRlcjpbe2luZGV4OjAscmdiOlswLDAsMjU1XX0se2luZGV4OjEscmdiOlswLDI1NSwxMjhdfV0sYm9uZTpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMzc2LHJnYjpbODQsODQsMTE2XX0se2luZGV4Oi43NTMscmdiOlsxNjksMjAwLDIwMF19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwyNTVdfV0sY29wcGVyOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi44MDQscmdiOlsyNTUsMTYwLDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDE5OSwxMjddfV0sZ3JleXM6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLHlpZ25idTpbe2luZGV4OjAscmdiOls4LDI5LDg4XX0se2luZGV4Oi4xMjUscmdiOlszNyw1MiwxNDhdfSx7aW5kZXg6LjI1LHJnYjpbMzQsOTQsMTY4XX0se2luZGV4Oi4zNzUscmdiOlsyOSwxNDUsMTkyXX0se2luZGV4Oi41LHJnYjpbNjUsMTgyLDE5Nl19LHtpbmRleDouNjI1LHJnYjpbMTI3LDIwNSwxODddfSx7aW5kZXg6Ljc1LHJnYjpbMTk5LDIzMywxODBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzIzNywyNDgsMjE3XX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDIxN119XSxncmVlbnM6W3tpbmRleDowLHJnYjpbMCw2OCwyN119LHtpbmRleDouMTI1LHJnYjpbMCwxMDksNDRdfSx7aW5kZXg6LjI1LHJnYjpbMzUsMTM5LDY5XX0se2luZGV4Oi4zNzUscmdiOls2NSwxNzEsOTNdfSx7aW5kZXg6LjUscmdiOlsxMTYsMTk2LDExOF19LHtpbmRleDouNjI1LHJnYjpbMTYxLDIxNywxNTVdfSx7aW5kZXg6Ljc1LHJnYjpbMTk5LDIzMywxOTJdfSx7aW5kZXg6Ljg3NSxyZ2I6WzIyOSwyNDUsMjI0XX0se2luZGV4OjEscmdiOlsyNDcsMjUyLDI0NV19XSx5aW9ycmQ6W3tpbmRleDowLHJnYjpbMTI4LDAsMzhdfSx7aW5kZXg6LjEyNSxyZ2I6WzE4OSwwLDM4XX0se2luZGV4Oi4yNSxyZ2I6WzIyNywyNiwyOF19LHtpbmRleDouMzc1LHJnYjpbMjUyLDc4LDQyXX0se2luZGV4Oi41LHJnYjpbMjUzLDE0MSw2MF19LHtpbmRleDouNjI1LHJnYjpbMjU0LDE3OCw3Nl19LHtpbmRleDouNzUscmdiOlsyNTQsMjE3LDExOF19LHtpbmRleDouODc1LHJnYjpbMjU1LDIzNywxNjBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjA0XX1dLGJsdWVyZWQ6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxyZGJ1Olt7aW5kZXg6MCxyZ2I6WzUsMTAsMTcyXX0se2luZGV4Oi4zNSxyZ2I6WzEwNiwxMzcsMjQ3XX0se2luZGV4Oi41LHJnYjpbMTkwLDE5MCwxOTBdfSx7aW5kZXg6LjYscmdiOlsyMjAsMTcwLDEzMl19LHtpbmRleDouNyxyZ2I6WzIzMCwxNDUsOTBdfSx7aW5kZXg6MSxyZ2I6WzE3OCwxMCwyOF19XSxwaWNuaWM6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDouMSxyZ2I6WzUxLDE1MywyNTVdfSx7aW5kZXg6LjIscmdiOlsxMDIsMjA0LDI1NV19LHtpbmRleDouMyxyZ2I6WzE1MywyMDQsMjU1XX0se2luZGV4Oi40LHJnYjpbMjA0LDIwNCwyNTVdfSx7aW5kZXg6LjUscmdiOlsyNTUsMjU1LDI1NV19LHtpbmRleDouNixyZ2I6WzI1NSwyMDQsMjU1XX0se2luZGV4Oi43LHJnYjpbMjU1LDE1MywyNTVdfSx7aW5kZXg6LjgscmdiOlsyNTUsMTAyLDIwNF19LHtpbmRleDouOSxyZ2I6WzI1NSwxMDIsMTAyXX0se2luZGV4OjEscmdiOlsyNTUsMCwwXX1dLHJhaW5ib3c6W3tpbmRleDowLHJnYjpbMTUwLDAsOTBdfSx7aW5kZXg6LjEyNSxyZ2I6WzAsMCwyMDBdfSx7aW5kZXg6LjI1LHJnYjpbMCwyNSwyNTVdfSx7aW5kZXg6LjM3NSxyZ2I6WzAsMTUyLDI1NV19LHtpbmRleDouNSxyZ2I6WzQ0LDI1NSwxNTBdfSx7aW5kZXg6LjYyNSxyZ2I6WzE1MSwyNTUsMF19LHtpbmRleDouNzUscmdiOlsyNTUsMjM0LDBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1NSwxMTEsMF19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxwb3J0bGFuZDpbe2luZGV4OjAscmdiOlsxMiw1MSwxMzFdfSx7aW5kZXg6LjI1LHJnYjpbMTAsMTM2LDE4Nl19LHtpbmRleDouNSxyZ2I6WzI0MiwyMTEsNTZdfSx7aW5kZXg6Ljc1LHJnYjpbMjQyLDE0Myw1Nl19LHtpbmRleDoxLHJnYjpbMjE3LDMwLDMwXX1dLGJsYWNrYm9keTpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMixyZ2I6WzIzMCwwLDBdfSx7aW5kZXg6LjQscmdiOlsyMzAsMjEwLDBdfSx7aW5kZXg6LjcscmdiOlsyNTUsMjU1LDI1NV19LHtpbmRleDoxLHJnYjpbMTYwLDIwMCwyNTVdfV0sZWFydGg6W3tpbmRleDowLHJnYjpbMCwwLDEzMF19LHtpbmRleDouMSxyZ2I6WzAsMTgwLDE4MF19LHtpbmRleDouMixyZ2I6WzQwLDIxMCw0MF19LHtpbmRleDouNCxyZ2I6WzIzMCwyMzAsNTBdfSx7aW5kZXg6LjYscmdiOlsxMjAsNzAsMjBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLGVsZWN0cmljOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi4xNSxyZ2I6WzMwLDAsMTAwXX0se2luZGV4Oi40LHJnYjpbMTIwLDAsMTAwXX0se2luZGV4Oi42LHJnYjpbMTYwLDkwLDBdfSx7aW5kZXg6LjgscmdiOlsyMzAsMjAwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTAsMjIwXX1dLGFscGhhOlt7aW5kZXg6MCxyZ2I6WzI1NSwyNTUsMjU1LDBdfSx7aW5kZXg6MCxyZ2I6WzI1NSwyNTUsMjU1LDFdfV0sdmlyaWRpczpbe2luZGV4OjAscmdiOls2OCwxLDg0XX0se2luZGV4Oi4xMyxyZ2I6WzcxLDQ0LDEyMl19LHtpbmRleDouMjUscmdiOls1OSw4MSwxMzldfSx7aW5kZXg6LjM4LHJnYjpbNDQsMTEzLDE0Ml19LHtpbmRleDouNSxyZ2I6WzMzLDE0NCwxNDFdfSx7aW5kZXg6LjYzLHJnYjpbMzksMTczLDEyOV19LHtpbmRleDouNzUscmdiOls5MiwyMDAsOTldfSx7aW5kZXg6Ljg4LHJnYjpbMTcwLDIyMCw1MF19LHtpbmRleDoxLHJnYjpbMjUzLDIzMSwzN119XSxpbmZlcm5vOlt7aW5kZXg6MCxyZ2I6WzAsMCw0XX0se2luZGV4Oi4xMyxyZ2I6WzMxLDEyLDcyXX0se2luZGV4Oi4yNSxyZ2I6Wzg1LDE1LDEwOV19LHtpbmRleDouMzgscmdiOlsxMzYsMzQsMTA2XX0se2luZGV4Oi41LHJnYjpbMTg2LDU0LDg1XX0se2luZGV4Oi42MyxyZ2I6WzIyNyw4OSw1MV19LHtpbmRleDouNzUscmdiOlsyNDksMTQwLDEwXX0se2luZGV4Oi44OCxyZ2I6WzI0OSwyMDEsNTBdfSx7aW5kZXg6MSxyZ2I6WzI1MiwyNTUsMTY0XX1dLG1hZ21hOlt7aW5kZXg6MCxyZ2I6WzAsMCw0XX0se2luZGV4Oi4xMyxyZ2I6WzI4LDE2LDY4XX0se2luZGV4Oi4yNSxyZ2I6Wzc5LDE4LDEyM119LHtpbmRleDouMzgscmdiOlsxMjksMzcsMTI5XX0se2luZGV4Oi41LHJnYjpbMTgxLDU0LDEyMl19LHtpbmRleDouNjMscmdiOlsyMjksODAsMTAwXX0se2luZGV4Oi43NSxyZ2I6WzI1MSwxMzUsOTddfSx7aW5kZXg6Ljg4LHJnYjpbMjU0LDE5NCwxMzVdfSx7aW5kZXg6MSxyZ2I6WzI1MiwyNTMsMTkxXX1dLHBsYXNtYTpbe2luZGV4OjAscmdiOlsxMyw4LDEzNV19LHtpbmRleDouMTMscmdiOls3NSwzLDE2MV19LHtpbmRleDouMjUscmdiOlsxMjUsMywxNjhdfSx7aW5kZXg6LjM4LHJnYjpbMTY4LDM0LDE1MF19LHtpbmRleDouNSxyZ2I6WzIwMyw3MCwxMjFdfSx7aW5kZXg6LjYzLHJnYjpbMjI5LDEwNyw5M119LHtpbmRleDouNzUscmdiOlsyNDgsMTQ4LDY1XX0se2luZGV4Oi44OCxyZ2I6WzI1MywxOTUsNDBdfSx7aW5kZXg6MSxyZ2I6WzI0MCwyNDksMzNdfV0sd2FybTpbe2luZGV4OjAscmdiOlsxMjUsMCwxNzldfSx7aW5kZXg6LjEzLHJnYjpbMTcyLDAsMTg3XX0se2luZGV4Oi4yNSxyZ2I6WzIxOSwwLDE3MF19LHtpbmRleDouMzgscmdiOlsyNTUsMCwxMzBdfSx7aW5kZXg6LjUscmdiOlsyNTUsNjMsNzRdfSx7aW5kZXg6LjYzLHJnYjpbMjU1LDEyMywwXX0se2luZGV4Oi43NSxyZ2I6WzIzNCwxNzYsMF19LHtpbmRleDouODgscmdiOlsxOTAsMjI4LDBdfSx7aW5kZXg6MSxyZ2I6WzE0NywyNTUsMF19XSxjb29sOlt7aW5kZXg6MCxyZ2I6WzEyNSwwLDE3OV19LHtpbmRleDouMTMscmdiOlsxMTYsMCwyMThdfSx7aW5kZXg6LjI1LHJnYjpbOTgsNzQsMjM3XX0se2luZGV4Oi4zOCxyZ2I6WzY4LDE0NiwyMzFdfSx7aW5kZXg6LjUscmdiOlswLDIwNCwxOTddfSx7aW5kZXg6LjYzLHJnYjpbMCwyNDcsMTQ2XX0se2luZGV4Oi43NSxyZ2I6WzAsMjU1LDg4XX0se2luZGV4Oi44OCxyZ2I6WzQwLDI1NSw4XX0se2luZGV4OjEscmdiOlsxNDcsMjU1LDBdfV0sInJhaW5ib3ctc29mdCI6W3tpbmRleDowLHJnYjpbMTI1LDAsMTc5XX0se2luZGV4Oi4xLHJnYjpbMTk5LDAsMTgwXX0se2luZGV4Oi4yLHJnYjpbMjU1LDAsMTIxXX0se2luZGV4Oi4zLHJnYjpbMjU1LDEwOCwwXX0se2luZGV4Oi40LHJnYjpbMjIyLDE5NCwwXX0se2luZGV4Oi41LHJnYjpbMTUwLDI1NSwwXX0se2luZGV4Oi42LHJnYjpbMCwyNTUsNTVdfSx7aW5kZXg6LjcscmdiOlswLDI0NiwxNTBdfSx7aW5kZXg6LjgscmdiOls1MCwxNjcsMjIyXX0se2luZGV4Oi45LHJnYjpbMTAzLDUxLDIzNV19LHtpbmRleDoxLHJnYjpbMTI0LDAsMTg2XX1dLGJhdGh5bWV0cnk6W3tpbmRleDowLHJnYjpbNDAsMjYsNDRdfSx7aW5kZXg6LjEzLHJnYjpbNTksNDksOTBdfSx7aW5kZXg6LjI1LHJnYjpbNjQsNzYsMTM5XX0se2luZGV4Oi4zOCxyZ2I6WzYzLDExMCwxNTFdfSx7aW5kZXg6LjUscmdiOls3MiwxNDIsMTU4XX0se2luZGV4Oi42MyxyZ2I6Wzg1LDE3NCwxNjNdfSx7aW5kZXg6Ljc1LHJnYjpbMTIwLDIwNiwxNjNdfSx7aW5kZXg6Ljg4LHJnYjpbMTg3LDIzMCwxNzJdfSx7aW5kZXg6MSxyZ2I6WzI1MywyNTQsMjA0XX1dLGNkb206W3tpbmRleDowLHJnYjpbNDcsMTUsNjJdfSx7aW5kZXg6LjEzLHJnYjpbODcsMjMsODZdfSx7aW5kZXg6LjI1LHJnYjpbMTMwLDI4LDk5XX0se2luZGV4Oi4zOCxyZ2I6WzE3MSw0MSw5Nl19LHtpbmRleDouNSxyZ2I6WzIwNiw2Nyw4Nl19LHtpbmRleDouNjMscmdiOlsyMzAsMTA2LDg0XX0se2luZGV4Oi43NSxyZ2I6WzI0MiwxNDksMTAzXX0se2luZGV4Oi44OCxyZ2I6WzI0OSwxOTMsMTM1XX0se2luZGV4OjEscmdiOlsyNTQsMjM3LDE3Nl19XSxjaGxvcm9waHlsbDpbe2luZGV4OjAscmdiOlsxOCwzNiwyMF19LHtpbmRleDouMTMscmdiOlsyNSw2Myw0MV19LHtpbmRleDouMjUscmdiOlsyNCw5MSw1OV19LHtpbmRleDouMzgscmdiOlsxMywxMTksNzJdfSx7aW5kZXg6LjUscmdiOlsxOCwxNDgsODBdfSx7aW5kZXg6LjYzLHJnYjpbODAsMTczLDg5XX0se2luZGV4Oi43NSxyZ2I6WzEzMiwxOTYsMTIyXX0se2luZGV4Oi44OCxyZ2I6WzE3NSwyMjEsMTYyXX0se2luZGV4OjEscmdiOlsyMTUsMjQ5LDIwOF19XSxkZW5zaXR5Olt7aW5kZXg6MCxyZ2I6WzU0LDE0LDM2XX0se2luZGV4Oi4xMyxyZ2I6Wzg5LDIzLDgwXX0se2luZGV4Oi4yNSxyZ2I6WzExMCw0NSwxMzJdfSx7aW5kZXg6LjM4LHJnYjpbMTIwLDc3LDE3OF19LHtpbmRleDouNSxyZ2I6WzEyMCwxMTMsMjEzXX0se2luZGV4Oi42MyxyZ2I6WzExNSwxNTEsMjI4XX0se2luZGV4Oi43NSxyZ2I6WzEzNCwxODUsMjI3XX0se2luZGV4Oi44OCxyZ2I6WzE3NywyMTQsMjI3XX0se2luZGV4OjEscmdiOlsyMzAsMjQxLDI0MV19XSwiZnJlZXN1cmZhY2UtYmx1ZSI6W3tpbmRleDowLHJnYjpbMzAsNCwxMTBdfSx7aW5kZXg6LjEzLHJnYjpbNDcsMTQsMTc2XX0se2luZGV4Oi4yNSxyZ2I6WzQxLDQ1LDIzNl19LHtpbmRleDouMzgscmdiOlsyNSw5OSwyMTJdfSx7aW5kZXg6LjUscmdiOls2OCwxMzEsMjAwXX0se2luZGV4Oi42MyxyZ2I6WzExNCwxNTYsMTk3XX0se2luZGV4Oi43NSxyZ2I6WzE1NywxODEsMjAzXX0se2luZGV4Oi44OCxyZ2I6WzIwMCwyMDgsMjE2XX0se2luZGV4OjEscmdiOlsyNDEsMjM3LDIzNl19XSwiZnJlZXN1cmZhY2UtcmVkIjpbe2luZGV4OjAscmdiOls2MCw5LDE4XX0se2luZGV4Oi4xMyxyZ2I6WzEwMCwxNywyN119LHtpbmRleDouMjUscmdiOlsxNDIsMjAsMjldfSx7aW5kZXg6LjM4LHJnYjpbMTc3LDQzLDI3XX0se2luZGV4Oi41LHJnYjpbMTkyLDg3LDYzXX0se2luZGV4Oi42MyxyZ2I6WzIwNSwxMjUsMTA1XX0se2luZGV4Oi43NSxyZ2I6WzIxNiwxNjIsMTQ4XX0se2luZGV4Oi44OCxyZ2I6WzIyNywxOTksMTkzXX0se2luZGV4OjEscmdiOlsyNDEsMjM3LDIzNl19XSxveHlnZW46W3tpbmRleDowLHJnYjpbNjQsNSw1XX0se2luZGV4Oi4xMyxyZ2I6WzEwNiw2LDE1XX0se2luZGV4Oi4yNSxyZ2I6WzE0NCwyNiw3XX0se2luZGV4Oi4zOCxyZ2I6WzE2OCw2NCwzXX0se2luZGV4Oi41LHJnYjpbMTg4LDEwMCw0XX0se2luZGV4Oi42MyxyZ2I6WzIwNiwxMzYsMTFdfSx7aW5kZXg6Ljc1LHJnYjpbMjIwLDE3NCwyNV19LHtpbmRleDouODgscmdiOlsyMzEsMjE1LDQ0XX0se2luZGV4OjEscmdiOlsyNDgsMjU0LDEwNV19XSxwYXI6W3tpbmRleDowLHJnYjpbNTEsMjAsMjRdfSx7aW5kZXg6LjEzLHJnYjpbOTAsMzIsMzVdfSx7aW5kZXg6LjI1LHJnYjpbMTI5LDQ0LDM0XX0se2luZGV4Oi4zOCxyZ2I6WzE1OSw2OCwyNV19LHtpbmRleDouNSxyZ2I6WzE4Miw5OSwxOV19LHtpbmRleDouNjMscmdiOlsxOTksMTM0LDIyXX0se2luZGV4Oi43NSxyZ2I6WzIxMiwxNzEsMzVdfSx7aW5kZXg6Ljg4LHJnYjpbMjIxLDIxMCw1NF19LHtpbmRleDoxLHJnYjpbMjI1LDI1Myw3NV19XSxwaGFzZTpbe2luZGV4OjAscmdiOlsxNDUsMTA1LDE4XX0se2luZGV4Oi4xMyxyZ2I6WzE4NCw3MSwzOF19LHtpbmRleDouMjUscmdiOlsxODYsNTgsMTE1XX0se2luZGV4Oi4zOCxyZ2I6WzE2MCw3MSwxODVdfSx7aW5kZXg6LjUscmdiOlsxMTAsOTcsMjE4XX0se2luZGV4Oi42MyxyZ2I6WzUwLDEyMywxNjRdfSx7aW5kZXg6Ljc1LHJnYjpbMzEsMTMxLDExMF19LHtpbmRleDouODgscmdiOls3NywxMjksMzRdfSx7aW5kZXg6MSxyZ2I6WzE0NSwxMDUsMThdfV0sc2FsaW5pdHk6W3tpbmRleDowLHJnYjpbNDIsMjQsMTA4XX0se2luZGV4Oi4xMyxyZ2I6WzMzLDUwLDE2Ml19LHtpbmRleDouMjUscmdiOlsxNSw5MCwxNDVdfSx7aW5kZXg6LjM4LHJnYjpbNDAsMTE4LDEzN119LHtpbmRleDouNSxyZ2I6WzU5LDE0NiwxMzVdfSx7aW5kZXg6LjYzLHJnYjpbNzksMTc1LDEyNl19LHtpbmRleDouNzUscmdiOlsxMjAsMjAzLDEwNF19LHtpbmRleDouODgscmdiOlsxOTMsMjIxLDEwMF19LHtpbmRleDoxLHJnYjpbMjUzLDIzOSwxNTRdfV0sdGVtcGVyYXR1cmU6W3tpbmRleDowLHJnYjpbNCwzNSw1MV19LHtpbmRleDouMTMscmdiOlsyMyw1MSwxMjJdfSx7aW5kZXg6LjI1LHJnYjpbODUsNTksMTU3XX0se2luZGV4Oi4zOCxyZ2I6WzEyOSw3OSwxNDNdfSx7aW5kZXg6LjUscmdiOlsxNzUsOTUsMTMwXX0se2luZGV4Oi42MyxyZ2I6WzIyMiwxMTIsMTAxXX0se2luZGV4Oi43NSxyZ2I6WzI0OSwxNDYsNjZdfSx7aW5kZXg6Ljg4LHJnYjpbMjQ5LDE5Niw2NV19LHtpbmRleDoxLHJnYjpbMjMyLDI1MCw5MV19XSx0dXJiaWRpdHk6W3tpbmRleDowLHJnYjpbMzQsMzEsMjddfSx7aW5kZXg6LjEzLHJnYjpbNjUsNTAsNDFdfSx7aW5kZXg6LjI1LHJnYjpbOTgsNjksNTJdfSx7aW5kZXg6LjM4LHJnYjpbMTMxLDg5LDU3XX0se2luZGV4Oi41LHJnYjpbMTYxLDExMiw1OV19LHtpbmRleDouNjMscmdiOlsxODUsMTQwLDY2XX0se2luZGV4Oi43NSxyZ2I6WzIwMiwxNzQsODhdfSx7aW5kZXg6Ljg4LHJnYjpbMjE2LDIwOSwxMjZdfSx7aW5kZXg6MSxyZ2I6WzIzMywyNDYsMTcxXX1dLCJ2ZWxvY2l0eS1ibHVlIjpbe2luZGV4OjAscmdiOlsxNywzMiw2NF19LHtpbmRleDouMTMscmdiOlszNSw1MiwxMTZdfSx7aW5kZXg6LjI1LHJnYjpbMjksODEsMTU2XX0se2luZGV4Oi4zOCxyZ2I6WzMxLDExMywxNjJdfSx7aW5kZXg6LjUscmdiOls1MCwxNDQsMTY5XX0se2luZGV4Oi42MyxyZ2I6Wzg3LDE3MywxNzZdfSx7aW5kZXg6Ljc1LHJnYjpbMTQ5LDE5NiwxODldfSx7aW5kZXg6Ljg4LHJnYjpbMjAzLDIyMSwyMTFdfSx7aW5kZXg6MSxyZ2I6WzI1NCwyNTEsMjMwXX1dLCJ2ZWxvY2l0eS1ncmVlbiI6W3tpbmRleDowLHJnYjpbMjMsMzUsMTldfSx7aW5kZXg6LjEzLHJnYjpbMjQsNjQsMzhdfSx7aW5kZXg6LjI1LHJnYjpbMTEsOTUsNDVdfSx7aW5kZXg6LjM4LHJnYjpbMzksMTIzLDM1XX0se2luZGV4Oi41LHJnYjpbOTUsMTQ2LDEyXX0se2luZGV4Oi42MyxyZ2I6WzE1MiwxNjUsMThdfSx7aW5kZXg6Ljc1LHJnYjpbMjAxLDE4Niw2OV19LHtpbmRleDouODgscmdiOlsyMzMsMjE2LDEzN119LHtpbmRleDoxLHJnYjpbMjU1LDI1MywyMDVdfV0sY3ViZWhlbGl4Olt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi4wNyxyZ2I6WzIyLDUsNTldfSx7aW5kZXg6LjEzLHJnYjpbNjAsNCwxMDVdfSx7aW5kZXg6LjIscmdiOlsxMDksMSwxMzVdfSx7aW5kZXg6LjI3LHJnYjpbMTYxLDAsMTQ3XX0se2luZGV4Oi4zMyxyZ2I6WzIxMCwyLDE0Ml19LHtpbmRleDouNCxyZ2I6WzI1MSwxMSwxMjNdfSx7aW5kZXg6LjQ3LHJnYjpbMjU1LDI5LDk3XX0se2luZGV4Oi41MyxyZ2I6WzI1NSw1NCw2OV19LHtpbmRleDouNixyZ2I6WzI1NSw4NSw0Nl19LHtpbmRleDouNjcscmdiOlsyNTUsMTIwLDM0XX0se2luZGV4Oi43MyxyZ2I6WzI1NSwxNTcsMzddfSx7aW5kZXg6LjgscmdiOlsyNDEsMTkxLDU3XX0se2luZGV4Oi44NyxyZ2I6WzIyNCwyMjAsOTNdfSx7aW5kZXg6LjkzLHJnYjpbMjE4LDI0MSwxNDJdfSx7aW5kZXg6MSxyZ2I6WzIyNywyNTMsMTk4XX1dfX0se31dLDk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGUscixuLHUsYyxoLGYsZCxwLG0sdixnLHksYj1bXSx4PVtdLF89W10sdz1bXTtpZihvLmlzUGxhaW5PYmplY3QodCl8fCh0PXt9KSxwPXQubnNoYWRlc3x8NzIsZD10LmZvcm1hdHx8ImhleCIsZj10LmNvbG9ybWFwLGZ8fChmPSJqZXQiKSwic3RyaW5nIj09dHlwZW9mIGYpe2lmKGY9Zi50b0xvd2VyQ2FzZSgpLCFsW2ZdKXRocm93IEVycm9yKGYrIiBub3QgYSBzdXBwb3J0ZWQgY29sb3JzY2FsZSIpO2g9cyhsW2ZdKX1lbHNle2lmKCFBcnJheS5pc0FycmF5KGYpKXRocm93IEVycm9yKCJ1bnN1cHBvcnRlZCBjb2xvcm1hcCBvcHRpb24iLGYpO2g9cyhmKX1pZihoLmxlbmd0aD5wKXRocm93IG5ldyBFcnJvcihmKyIgbWFwIHJlcXVpcmVzIG5zaGFkZXMgdG8gYmUgYXQgbGVhc3Qgc2l6ZSAiK2gubGVuZ3RoKTtmb3Iodj1BcnJheS5pc0FycmF5KHQuYWxwaGEpPzIhPT10LmFscGhhLmxlbmd0aD9bMSwxXTpzKHQuYWxwaGEpOiJudW1iZXIiPT10eXBlb2YgdC5hbHBoYT9bdC5hbHBoYSx0LmFscGhhXTpbMSwxXSxlPWgubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQuaW5kZXgqcCl9KSx2WzBdPDAmJih2WzBdPTApLHZbMV08MCYmKHZbMF09MCksdlswXT4xJiYodlswXT0xKSx2WzFdPjEmJih2WzBdPTEpLHk9MDt5PGUubGVuZ3RoOysreSlnPWhbeV0uaW5kZXgscj1oW3ldLnJnYiw0PT09ci5sZW5ndGgmJnJbM10+PTAmJnJbM108PTF8fChyWzNdPXZbMF0rKHZbMV0tdlswXSkqZyk7Zm9yKHk9MDt5PGUubGVuZ3RoLTE7Kyt5KWM9ZVt5KzFdLWVbeV0sbj1oW3ldLnJnYix1PWhbeSsxXS5yZ2IsYj1iLmNvbmNhdChvLmxpbnNwYWNlKG5bMF0sdVswXSxjKSkseD14LmNvbmNhdChvLmxpbnNwYWNlKG5bMV0sdVsxXSxjKSksXz1fLmNvbmNhdChvLmxpbnNwYWNlKG5bMl0sdVsyXSxjKSksdz13LmNvbmNhdChvLmxpbnNwYWNlKG5bM10sdVszXSxjKSk7cmV0dXJuIGI9Yi5tYXAoTWF0aC5yb3VuZCkseD14Lm1hcChNYXRoLnJvdW5kKSxfPV8ubWFwKE1hdGgucm91bmQpLG09by56aXAoYix4LF8sdyksImhleCI9PT1kJiYobT1tLm1hcChpKSksInJnYmFTdHJpbmciPT09ZCYmKG09bS5tYXAoYSkpLG19ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscj0iIyIsbj0wO248MzsrK24pZT10W25dLGU9ZS50b1N0cmluZygxNikscis9KCIwMCIrZSkuc3Vic3RyKGUubGVuZ3RoKTtyZXR1cm4gcn1mdW5jdGlvbiBhKHQpe3JldHVybiJyZ2JhKCIrdC5qb2luKCIsIikrIikifXZhciBvPXQoImFycmF5dG9vbHMiKSxzPXQoImNsb25lIiksbD10KCIuL2NvbG9yU2NhbGVzIik7ZS5leHBvcnRzPW59LHsiLi9jb2xvclNjYWxlcyI6OTYsYXJyYXl0b29sczo0NCxjbG9uZTo4OX1dLDk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPXModFswXSwtZVswXSksaT1zKHRbMV0sLWVbMV0pLGE9cyhyWzBdLC1lWzBdKSxvPXMoclsxXSwtZVsxXSksYz11KGwobixhKSxsKGksbykpO3JldHVybiBjW2MubGVuZ3RoLTFdPj0wfWZ1bmN0aW9uIGkodCxlLHIsaSl7dmFyIHM9YShlLHIsaSk7aWYoMD09PXMpe3ZhciBsPW8oYSh0LGUscikpLHU9byhhKHQsZSxpKSk7aWYobD09PXUpe2lmKDA9PT1sKXt2YXIgYz1uKHQsZSxyKTtyZXR1cm4gYz09PW4odCxlLGkpPzA6Yz8xOi0xfXJldHVybiAwfXJldHVybiAwPT09dT9sPjA/LTE6bih0LGUsaSk/LTE6MTowPT09bD91PjA/MTpuKHQsZSxyKT8xOi0xOm8odS1sKX12YXIgaD1hKHQsZSxyKTtyZXR1cm4gaD4wP3M+MCYmYSh0LGUsaSk+MD8xOi0xOmg8MD9zPjB8fGEodCxlLGkpPjA/MTotMTphKHQsZSxpKT4wPzE6bih0LGUscik/MTotMX1lLmV4cG9ydHM9aTt2YXIgYT10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxvPXQoInNpZ251bSIpLHM9dCgidHdvLXN1bSIpLGw9dCgicm9idXN0LXByb2R1Y3QiKSx1PXQoInJvYnVzdC1zdW0iKX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjUwNiwicm9idXN0LXByb2R1Y3QiOjUwNywicm9idXN0LXN1bSI6NTExLHNpZ251bTo1MTMsInR3by1zdW0iOjUzOH1dLDk5OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUpe3JldHVybiB0LWV9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPXQubGVuZ3RoLGk9dC5sZW5ndGgtZS5sZW5ndGg7aWYoaSlyZXR1cm4gaTtzd2l0Y2gocil7Y2FzZSAwOnJldHVybiAwO2Nhc2UgMTpyZXR1cm4gdFswXS1lWzBdO2Nhc2UgMjpyZXR1cm4gdFswXSt0WzFdLWVbMF0tZVsxXXx8YSh0WzBdLHRbMV0pLWEoZVswXSxlWzFdKTtjYXNlIDM6dmFyIG89dFswXSt0WzFdLHM9ZVswXStlWzFdO2lmKGk9byt0WzJdLShzK2VbMl0pKXJldHVybiBpO3ZhciBsPWEodFswXSx0WzFdKSx1PWEoZVswXSxlWzFdKTtyZXR1cm4gYShsLHRbMl0pLWEodSxlWzJdKXx8YShsK3RbMl0sbyktYSh1K2VbMl0scyk7Y2FzZSA0OnZhciBjPXRbMF0saD10WzFdLGY9dFsyXSxkPXRbM10scD1lWzBdLG09ZVsxXSx2PWVbMl0sZz1lWzNdO3JldHVybiBjK2grZitkLShwK20rditnKXx8YShjLGgsZixkKS1hKHAsbSx2LGcscCl8fGEoYytoLGMrZixjK2QsaCtmLGgrZCxmK2QpLWEocCttLHArdixwK2csbSt2LG0rZyx2K2cpfHxhKGMraCtmLGMraCtkLGMrZitkLGgrZitkKS1hKHArbSt2LHArbStnLHArditnLG0rditnKTtkZWZhdWx0OmZvcih2YXIgeT10LnNsaWNlKCkuc29ydChuKSxiPWUuc2xpY2UoKS5zb3J0KG4pLHg9MDt4PHI7Kyt4KWlmKGk9eVt4XS1iW3hdKXJldHVybiBpO3JldHVybiAwfX1lLmV4cG9ydHM9aTt2YXIgYT1NYXRoLm1pbn0se31dLDEwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGkodCxlKXx8YSh0KS1hKGUpfXZhciBpPXQoImNvbXBhcmUtY2VsbCIpLGE9dCgiY2VsbC1vcmllbnRhdGlvbiIpO2UuZXhwb3J0cz1ufSx7ImNlbGwtb3JpZW50YXRpb24iOjgzLCJjb21wYXJlLWNlbGwiOjk5fV0sMTAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107aWYoMT09PWUpcmV0dXJuW1swXV07dmFyIHI9dFswXS5sZW5ndGg7cmV0dXJuIDA9PT1yP1tdOjE9PT1yP2kodCk6Mj09PXI/YSh0KTpvKHQscil9dmFyIGk9dCgiLi9saWIvY2gxZCIpLGE9dCgiLi9saWIvY2gyZCIpLG89dCgiLi9saWIvY2huZCIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL2NoMWQiOjEwMiwiLi9saWIvY2gyZCI6MTAzLCIuL2xpYi9jaG5kIjoxMDR9XSwxMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9MCxyPTAsbj0xO248dC5sZW5ndGg7KytuKXRbbl1bMF08dFtlXVswXSYmKGU9biksdFtuXVswXT50W3JdWzBdJiYocj1uKTtyZXR1cm4gZTxyP1tbZV0sW3JdXTplPnI/W1tyXSxbZV1dOltbZV1dfWUuZXhwb3J0cz1ufSx7fV0sMTAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9aSh0KSxyPWUubGVuZ3RoO2lmKHI8PTIpcmV0dXJuW107Zm9yKHZhciBuPW5ldyBBcnJheShyKSxhPWVbci0xXSxvPTA7bzxyOysrbyl7dmFyIHM9ZVtvXTtuW29dPVthLHNdLGE9c31yZXR1cm4gbn1lLmV4cG9ydHM9bjt2YXIgaT10KCJtb25vdG9uZS1jb252ZXgtaHVsbC0yZCIpfSx7Im1vbm90b25lLWNvbnZleC1odWxsLTJkIjo0NDl9XSwxMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPTA7aTxlLmxlbmd0aDsrK2kpbltpXT10W2VbaV1dO2Zvcih2YXIgYT1lLmxlbmd0aCxpPTA7aTxyOysraSllLmluZGV4T2YoaSk8MCYmKG5bYSsrXT10W2ldKTtyZXR1cm4gbn1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsaT0wO2k8cjsrK2kpZm9yKHZhciBhPXRbaV0sbz0wO288YS5sZW5ndGg7KytvKXt2YXIgcz1hW29dO2lmKHM8bilhW29dPWVbc107ZWxzZXtzLT1uO2Zvcih2YXIgbD0wO2w8bjsrK2wpcz49ZVtsXSYmKHMrPTEpO2Fbb109c319cmV0dXJuIHR9ZnVuY3Rpb24gYSh0LGUpe3RyeXtyZXR1cm4gbyh0LCEwKX1jYXRjaCh1KXt2YXIgcj1zKHQpO2lmKHIubGVuZ3RoPD1lKXJldHVybltdO3ZhciBhPW4odCxyKSxsPW8oYSwhMCk7cmV0dXJuIGkobCxyKX19ZS5leHBvcnRzPWE7dmFyIG89dCgiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiKSxzPXQoImFmZmluZS1odWxsIil9LHsiYWZmaW5lLWh1bGwiOjM5LCJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCI6Mjg4fV0sMTA1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtBRkc6ImFmZ2hhbiIsQUxBOiJcXGJcXHdsYW5kIixBTEI6ImFsYmFuaWEiLERaQToiYWxnZXJpYSIsQVNNOiJeKD89LiphbWVyaWMpLipzYW1vYSIsQU5EOiJhbmRvcnJhIixBR086ImFuZ29sYSIsQUlBOiJhbmd1aWxsP2EiLEFUQToiYW50YXJjdGljYSIsQVRHOiJhbnRpZ3VhIixBUkc6ImFyZ2VudGluIixBUk06ImFybWVuaWEiLEFCVzoiXig/IS4qYm9uYWlyZSkuKlxcYmFydWJhIixBVVM6ImF1c3RyYWxpYSIsQVVUOiJeKD8hLipodW5nYXJ5KS4qYXVzdHJpYXxcXGJhdXN0cmkuKlxcYmVtcCIsQVpFOiJhemVyYmFpamFuIixCSFM6ImJhaGFtYXMiLEJIUjoiYmFocmFpbiIsQkdEOiJiYW5nbGFkZXNofF4oPz0uKmVhc3QpLipwYWtpP3N0YW4iLEJSQjoiYmFyYmFkb3MiLEJMUjoiYmVsYXJ1c3xieWVsbyIsQkVMOiJeKD8hLipsdXhlbSkuKmJlbGdpdW0iLEJMWjoiYmVsaXplfF4oPz0uKmJyaXRpc2gpLipob25kdXJhcyIsQkVOOiJiZW5pbnxkYWhvbWUiLEJNVToiYmVybXVkYSIsQlROOiJiaHV0YW4iLEJPTDoiYm9saXZpYSIsQkVTOiJeKD89Lipib25haXJlKS4qZXVzdGF0aXVzfF4oPz0uKmNhcmliKS4qbmV0aGVybGFuZHN8XFxiYmVzLj9pc2xhbmRzIixCSUg6ImhlcnplZ292aW5hfGJvc25pYSIsQldBOiJib3Rzd2FuYXxiZWNodWFuYSIsQlZUOiJib3V2ZXQiLEJSQToiYnJhemlsIixJT1Q6ImJyaXRpc2guP2luZGlhbi4/b2NlYW4iLEJSTjoiYnJ1bmVpIixCR1I6ImJ1bGdhcmlhIixCRkE6ImJ1cmtpbmF8XFxiZmFzb3x1cHBlci4/dm9sdGEiLEJESToiYnVydW5kaSIsQ1BWOiJ2ZXJkZSIsS0hNOiJjYW1ib2RpYXxrYW1wdWNoZWF8a2htZXIiLENNUjoiY2FtZXJvb24iLENBTjoiY2FuYWRhIixDWU06ImNheW1hbiIsQ0FGOiJcXGJjZW50cmFsLmFmcmljYW4ucmVwdWJsaWMiLFRDRDoiXFxiY2hhZCIsQ0hMOiJcXGJjaGlsZSIsQ0hOOiJeKD8hLipcXGJtYWMpKD8hLipcXGJob25nKSg/IS4qXFxidGFpKSg/IS4qXFxicmVwKS4qY2hpbmF8Xig/PS4qcGVvKSg/PS4qcmVwKS4qY2hpbmEiLENYUjoiY2hyaXN0bWFzIixDQ0s6IlxcYmNvY29zfGtlZWxpbmciLENPTDoiY29sb21iaWEiLENPTToiY29tb3JvIixDT0c6Il4oPyEuKlxcYmRlbSkoPyEuKlxcYmRbXFwuXT9yKSg/IS4qa2luc2hhc2EpKD8hLip6YWlyZSkoPyEuKmJlbGcpKD8hLipsLm9wb2xkdmlsbGUpKD8hLipmcmVlKS4qXFxiY29uZ28iLENPSzoiXFxiY29vayIsQ1JJOiJjb3N0YS4/cmljYSIsQ0lWOiJpdm9pcmV8aXZvcnkiLEhSVjoiY3JvYXRpYSIsQ1VCOiJcXGJjdWJhIixDVVc6Il4oPyEuKmJvbmFpcmUpLipcXGJjdXJhKGN8XHhlNylhbyIsQ1lQOiJjeXBydXMiLENTSzoiY3plY2hvc2xvdmFraWEiLENaRToiXig/PS4qcmVwKS4qY3plY2h8Y3plY2hpYXxib2hlbWlhIixDT0Q6IlxcYmRlbS4qY29uZ298Y29uZ28uKlxcYmRlbXxjb25nby4qXFxiZFtcXC5dP3J8XFxiZFtcXC5dP3IuKmNvbmdvfGJlbGdpYW4uP2NvbmdvfGNvbmdvLj9mcmVlLj9zdGF0ZXxraW5zaGFzYXx6YWlyZXxsLm9wb2xkdmlsbGV8ZHJjfGRyb2N8cmRjIixETks6ImRlbm1hcmsiLERKSToiZGppYm91dGkiLERNQToiZG9taW5pY2EoPyFuKSIsRE9NOiJkb21pbmljYW4ucmVwIixFQ1U6ImVjdWFkb3IiLEVHWToiZWd5cHQiLFNMVjoiZWwuP3NhbHZhZG9yIixHTlE6Imd1aW5lLiplcXxlcS4qZ3VpbmV8Xig/PS4qc3BhbikuKmd1aW5lYSIsRVJJOiJlcml0cmVhIixFU1Q6ImVzdG9uaWEiLEVUSDoiZXRoaW9waWF8YWJ5c3NpbmlhIixGTEs6ImZhbGtsYW5kfG1hbHZpbmFzIixGUk86ImZhcm9lfGZhZXJvZSIsRkpJOiJmaWppIixGSU46ImZpbmxhbmQiLEZSQToiXig/IS4qXFxiZGVwKSg/IS4qbWFydGluaXF1ZSkuKmZyYW5jZXxmcmVuY2guP3JlcHVibGljfFxcYmdhdWwiLEdVRjoiXig/PS4qZnJlbmNoKS4qZ3VpYW5hIixQWUY6ImZyZW5jaC4/cG9seW5lc2lhfHRhaGl0aSIsQVRGOiJmcmVuY2guP3NvdXRoZXJuIixHQUI6ImdhYm9uIixHTUI6ImdhbWJpYSIsR0VPOiJeKD8hLipzb3V0aCkuKmdlb3JnaWEiLEREUjoiZ2VybWFuLj9kZW1vY3JhdGljLj9yZXB1YmxpY3xkZW1vY3JhdGljLj9yZXB1YmxpYy4qZ2VybWFueXxlYXN0Lmdlcm1hbnkiLERFVToiXig/IS4qZWFzdCkuKmdlcm1hbnl8Xig/PS4qXFxiZmVkLipcXGJyZXApLipnZXJtYW4iLEdIQToiZ2hhbmF8Z29sZC4/Y29hc3QiLEdJQjoiZ2licmFsdGFyIixHUkM6ImdyZWVjZXxoZWxsZW5pY3xoZWxsYXMiLEdSTDoiZ3JlZW5sYW5kIixHUkQ6ImdyZW5hZGEiLEdMUDoiZ3VhZGVsb3VwZSIsR1VNOiJcXGJndWFtIixHVE06Imd1YXRlbWFsYSIsR0dZOiJndWVybnNleSIsR0lOOiJeKD8hLiplcSkoPyEuKnNwYW4pKD8hLipiaXNzYXUpKD8hLipwb3J0dSkoPyEuKm5ldykuKmd1aW5lYSIsR05COiJiaXNzYXV8Xig/PS4qcG9ydHUpLipndWluZWEiLEdVWToiZ3V5YW5hfGJyaXRpc2guP2d1aWFuYSIsSFRJOiJoYWl0aSIsSE1EOiJoZWFyZC4qbWNkb25hbGQiLFZBVDoiaG9seS4/c2VlfHZhdGljYW58cGFwYWwuP3N0IixITkQ6Il4oPyEuKmJyaXQpLipob25kdXJhcyIsSEtHOiJob25nLj9rb25nIixIVU46Il4oPyEuKmF1c3RyKS4qaHVuZ2FyeSIsSVNMOiJpY2VsYW5kIixJTkQ6ImluZGlhKD8hLipvY2VhKSIsSUROOiJpbmRvbmVzaWEiLElSTjoiXFxiaXJhbnxwZXJzaWEiLElSUToiXFxiaXJhcXxtZXNvcG90YW1pYSIsSVJMOiIoXmlyZWxhbmQpfChecmVwdWJsaWMuKmlyZWxhbmQpIixJTU46Il4oPz0uKmlzbGUpLipcXGJtYW4iLElTUjoiaXNyYWVsIixJVEE6Iml0YWx5IixKQU06ImphbWFpY2EiLEpQTjoiamFwYW4iLEpFWToiamVyc2V5IixKT1I6ImpvcmRhbiIsS0FaOiJrYXphayIsS0VOOiJrZW55YXxicml0aXNoLj9lYXN0Lj9hZnJpY2F8ZWFzdC4/YWZyaWNhLj9wcm90IixLSVI6ImtpcmliYXRpIixQUks6Il4oPz0uKmRlbW9jcmF0fHBlb3BsZXxub3J0aHxkLipwLioucikuKlxcYmtvcmVhfGRwcmt8a29yZWEuKihkLipwLipyKSIsS1dUOiJrdXdhaXQiLEtHWjoia3lyZ3l6fGtpcmdoaXoiLExBTzoiXFxibGFvcz9cXGIiLExWQToibGF0dmlhIixMQk46ImxlYmFub24iLExTTzoibGVzb3Rob3xiYXN1dG8iLExCUjoibGliZXJpYSIsTEJZOiJsaWJ5YSIsTElFOiJsaWVjaHRlbnN0ZWluIixMVFU6ImxpdGh1YW5pYSIsTFVYOiJeKD8hLipiZWxnKS4qbHV4ZW0iLE1BQzoibWFjYShvfHUpIixNREc6Im1hZGFnYXNjYXJ8bWFsYWdhc3kiLE1XSToibWFsYXdpfG55YXNhIixNWVM6Im1hbGF5c2lhIixNRFY6Im1hbGRpdmUiLE1MSToiXFxibWFsaVxcYiIsTUxUOiJcXGJtYWx0YSIsTUhMOiJtYXJzaGFsbCIsTVRROiJtYXJ0aW5pcXVlIixNUlQ6Im1hdXJpdGFuaWEiLE1VUzoibWF1cml0aXVzIixNWVQ6IlxcYm1heW90dGUiLE1FWDoiXFxibWV4aWMiLEZTTToiZmVkLiptaWNyb25lc2lhfG1pY3JvbmVzaWEuKmZlZCIsTUNPOiJtb25hY28iLE1ORzoibW9uZ29saWEiLE1ORToiXig/IS4qc2VyYmlhKS4qbW9udGVuZWdybyIsTVNSOiJtb250c2VycmF0IixNQVI6Im1vcm9jY298XFxibWFyb2MiLE1PWjoibW96YW1iaXF1ZSIsTU1SOiJteWFubWFyfGJ1cm1hIixOQU06Im5hbWliaWEiLE5SVToibmF1cnUiLE5QTDoibmVwYWwiLE5MRDoiXig/IS4qXFxiYW50KSg/IS4qXFxiY2FyaWIpLipuZXRoZXJsYW5kcyIsQU5UOiJeKD89LipcXGJhbnQpLioobmV0aGVyfGR1dGNoKSIsTkNMOiJuZXcuP2NhbGVkb25pYSIsTlpMOiJuZXcuP3plYWxhbmQiLE5JQzoibmljYXJhZ3VhIixORVI6IlxcYm5pZ2VyKD8haWEpIixOR0E6Im5pZ2VyaWEiLE5JVToibml1ZSIsTkZLOiJub3Jmb2xrIixNTlA6Im1hcmlhbmEiLE5PUjoibm9yd2F5IixPTU46IlxcYm9tYW58dHJ1Y2lhbCIsUEFLOiJeKD8hLiplYXN0KS4qcGFraT9zdGFuIixQTFc6InBhbGF1IixQU0U6InBhbGVzdGlufFxcYmdhemF8d2VzdC4/YmFuayIsUEFOOiJwYW5hbWEiLFBORzoicGFwdWF8bmV3Lj9ndWluZWEiLFBSWToicGFyYWd1YXkiLFBFUjoicGVydSIsUEhMOiJwaGlsaXBwaW5lcyIsUENOOiJwaXRjYWlybiIsUE9MOiJwb2xhbmQiLFBSVDoicG9ydHVnYWwiLFBSSToicHVlcnRvLj9yaWNvIixRQVQ6InFhdGFyIixLT1I6Il4oPyEuKmQuKnAuKnIpKD8hLipkZW1vY3JhdCkoPyEuKnBlb3BsZSkoPyEuKm5vcnRoKS4qXFxia29yZWEoPyEuKmQuKnAuKnIpIixNREE6Im1vbGRvdnxiKGF8ZSlzc2FyYWJpYSIsUkVVOiJyKGV8XHhlOSl1bmlvbiIsUk9VOiJyKG98dXxvdSltYW5pYSIsUlVTOiJcXGJydXNzaWF8c292aWV0Lj91bmlvbnx1XFwuP3NcXC4/c1xcLj9yfHNvY2lhbGlzdC4/cmVwdWJsaWNzIixSV0E6InJ3YW5kYSIsQkxNOiJiYXJ0aChlfFx4ZTkpbGVteSIsU0hOOiJoZWxlbmEiLEtOQToia2l0dHN8XFxibmV2aXMiLExDQToiXFxibHVjaWEiLE1BRjoiXig/PS4qY29sbGVjdGl2aXR5KS4qbWFydGlufF4oPz0uKmZyYW5jZSkuKm1hcnRpbig/IWlxdWUpfF4oPz0uKmZyZW5jaCkuKm1hcnRpbig/IWlxdWUpIixTUE06Im1pcXVlbG9uIixWQ1Q6InZpbmNlbnQiLFdTTToiXig/IS4qYW1lcikuKnNhbW9hIixTTVI6InNhbi4/bWFyaW5vIixTVFA6IlxcYnMoYXxceGUzKW8uP3RvbShlfFx4ZTkpIixTQVU6IlxcYnNhXFx3Ki4/YXJhYmlhIixTRU46InNlbmVnYWwiLFNSQjoiXig/IS4qbW9udGUpLipzZXJiaWEiLFNZQzoic2V5Y2hlbGwiLFNMRToic2llcnJhIixTR1A6InNpbmdhcG9yZSIsU1hNOiJeKD8hLiptYXJ0aW4pKD8hLipzYWJhKS4qbWFhcnRlbiIsU1ZLOiJeKD8hLipjemUpLipzbG92YWsiLFNWTjoic2xvdmVuaWEiLFNMQjoic29sb21vbiIsU09NOiJzb21hbGkiLFpBRjoic291dGguYWZyaWNhfHNcXFxcLi4/YWZyaWNhIixTR1M6InNvdXRoLj9nZW9yZ2lhfHNhbmR3aWNoIixTU0Q6IlxcYnNcXHcqLj9zdWRhbiIsRVNQOiJzcGFpbiIsTEtBOiJzcmkuP2xhbmthfGNleWxvbiIsU0ROOiJeKD8hLipcXGJzKD8hdSkpLipzdWRhbiIsU1VSOiJzdXJpbmFtfGR1dGNoLj9ndWlhbmEiLFNKTToic3ZhbGJhcmQiLFNXWjoic3dhemlsYW5kIixTV0U6InN3ZWRlbiIsQ0hFOiJzd2l0enxzd2lzcyIsU1lSOiJzeXJpYSIsVFdOOiJ0YWl3YW58dGFpcGVpfGZvcm1vc2F8Xig/IS4qcGVvKSg/PS4qcmVwKS4qY2hpbmEiLFRKSzoidGFqaWsiLFRIQToidGhhaWxhbmR8XFxic2lhbSIsTUtEOiJtYWNlZG9uaWF8Znlyb20iLFRMUzoiXig/PS4qbGVzdGUpLip0aW1vcnxeKD89LiplYXN0KS4qdGltb3IiLFRHTzoidG9nbyIsVEtMOiJ0b2tlbGF1IixUT046InRvbmdhIixUVE86InRyaW5pZGFkfHRvYmFnbyIsVFVOOiJ0dW5pc2lhIixUVVI6InR1cmtleSIsVEtNOiJ0dXJrbWVuIixUQ0E6InR1cmtzIixUVVY6InR1dmFsdSIsVUdBOiJ1Z2FuZGEiLFVLUjoidWtyYWluIixBUkU6ImVtaXJhdGVzfF51XFwuP2FcXC4/ZVxcLj8kfHVuaXRlZC4/YXJhYi4/ZW0iLEdCUjoidW5pdGVkLj9raW5nZG9tfGJyaXRhaW58XnVcXC4/a1xcLj8kIixUWkE6InRhbnphbmlhIixVU0E6InVuaXRlZC4/c3RhdGVzXFxiKD8hLippc2xhbmRzKXxcXGJ1XFwuP3NcXC4/YVxcLj9cXGJ8Xlxccyp1XFwuP3NcXC4/XFxiKD8hLippc2xhbmRzKSIsVU1JOiJtaW5vci4/b3V0bHlpbmcuP2lzIixVUlk6InVydWd1YXkiLFVaQjoidXpiZWsiLFZVVDoidmFudWF0dXxuZXcuP2hlYnJpZGVzIixWRU46InZlbmV6dWVsYSIsVk5NOiJeKD8hLipyZXB1YmxpYykuKnZpZXQuP25hbXxeKD89Lipzb2NpYWxpc3QpLip2aWV0Lj9uYW0iLFZHQjoiXig/PS4qXFxidVxcLj9cXHM/aykuKnZpcmdpbnxeKD89Lipicml0KS4qdmlyZ2lufF4oPz0uKmtpbmdkb20pLip2aXJnaW4iLFZJUjoiXig/PS4qXFxidVxcLj9cXHM/cykuKnZpcmdpbnxeKD89LipzdGF0ZXMpLip2aXJnaW4iLFdMRjoiZnV0dW5hfHdhbGxpcyIsRVNIOiJ3ZXN0ZXJuLnNhaGFyYSIsWUVNOiJeKD8hLiphcmFiKSg/IS4qbm9ydGgpKD8hLipzYW5hKSg/IS4qcGVvKSg/IS4qZGVtKSg/IS4qc291dGgpKD8hLiphZGVuKSg/IS4qXFxicFxcLj9kXFwuP3IpLip5ZW1lbiIsWU1EOiJeKD89LipwZW8pLip5ZW1lbnxeKD8hLipyZXApKD89LipkZW0pLip5ZW1lbnxeKD89Lipzb3V0aCkuKnllbWVufF4oPz0uKmFkZW4pLip5ZW1lbnxeKD89LipcXGJwXFwuP2RcXC4/cikuKnllbWVuIixZVUc6Inl1Z29zbGF2aWEiLFpNQjoiemFtYmlhfG5vcnRoZXJuLj9yaG9kZXNpYSIsRUFaOiJ6YW56aWJhciIsWldFOiJ6aW1iYWJ3ZXxeKD8hLipub3J0aGVybikuKnJob2Rlc2lhIn19LHt9XSwxMDY6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe3JldHVybiB0PU1hdGgucm91bmQodCksdDwwPzA6dD4yNTU/MjU1OnR9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdDwwPzA6dD4xPzE6dH1mdW5jdGlvbiBhKHQpe3JldHVybiBuKCIlIj09PXRbdC5sZW5ndGgtMV0/cGFyc2VGbG9hdCh0KS8xMDAqMjU1OnBhcnNlSW50KHQpKX1mdW5jdGlvbiBvKHQpe3JldHVybiBpKCIlIj09PXRbdC5sZW5ndGgtMV0/cGFyc2VGbG9hdCh0KS8xMDA6cGFyc2VGbG9hdCh0KSl9ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIHI8MD9yKz0xOnI+MSYmKHItPTEpLDYqcjwxP3QrKGUtdCkqcio2OjIqcjwxP2U6MypyPDI/dCsoZS10KSooMi8zLXIpKjY6dH1mdW5jdGlvbiBsKHQpe3ZhciBlPXQucmVwbGFjZSgvIC9nLCIiKS50b0xvd2VyQ2FzZSgpO2lmKGUgaW4gdSlyZXR1cm4gdVtlXS5zbGljZSgpO2lmKCIjIj09PWVbMF0pe2lmKDQ9PT1lLmxlbmd0aCl7dmFyIHI9cGFyc2VJbnQoZS5zdWJzdHIoMSksMTYpO3JldHVybiByPj0wJiZyPD00MDk1P1soMzg0MCZyKT4+NHwoMzg0MCZyKT4+OCwyNDAmcnwoMjQwJnIpPj40LDE1JnJ8KDE1JnIpPDw0LDFdOm51bGx9aWYoNz09PWUubGVuZ3RoKXt2YXIgcj1wYXJzZUludChlLnN1YnN0cigxKSwxNik7cmV0dXJuIHI+PTAmJnI8PTE2Nzc3MjE1P1soMTY3MTE2ODAmcik+PjE2LCg2NTI4MCZyKT4+OCwyNTUmciwxXTpudWxsfXJldHVybiBudWxsfXZhciBpPWUuaW5kZXhPZigiKCIpLGw9ZS5pbmRleE9mKCIpIik7aWYoLTEhPT1pJiZsKzE9PT1lLmxlbmd0aCl7dmFyIGM9ZS5zdWJzdHIoMCxpKSxoPWUuc3Vic3RyKGkrMSxsLShpKzEpKS5zcGxpdCgiLCIpLGY9MTtzd2l0Y2goYyl7Y2FzZSJyZ2JhIjppZig0IT09aC5sZW5ndGgpcmV0dXJuIG51bGw7Zj1vKGgucG9wKCkpO2Nhc2UicmdiIjpyZXR1cm4gMyE9PWgubGVuZ3RoP251bGw6W2EoaFswXSksYShoWzFdKSxhKGhbMl0pLGZdO2Nhc2UiaHNsYSI6aWYoNCE9PWgubGVuZ3RoKXJldHVybiBudWxsO2Y9byhoLnBvcCgpKTtjYXNlImhzbCI6aWYoMyE9PWgubGVuZ3RoKXJldHVybiBudWxsO3ZhciBkPShwYXJzZUZsb2F0KGhbMF0pJTM2MCszNjApJTM2MC8zNjAscD1vKGhbMV0pLG09byhoWzJdKSx2PW08PS41P20qKHArMSk6bStwLW0qcCxnPTIqbS12O3JldHVybltuKDI1NSpzKGcsdixkKzEvMykpLG4oMjU1KnMoZyx2LGQpKSxuKDI1NSpzKGcsdixkLTEvMykpLGZdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJldHVybiBudWxsfXZhciB1PXt0cmFuc3BhcmVudDpbMCwwLDAsMF0sYWxpY2VibHVlOlsyNDAsMjQ4LDI1NSwxXSxhbnRpcXVld2hpdGU6WzI1MCwyMzUsMjE1LDFdLGFxdWE6WzAsMjU1LDI1NSwxXSxhcXVhbWFyaW5lOlsxMjcsMjU1LDIxMiwxXSxhenVyZTpbMjQwLDI1NSwyNTUsMV0sYmVpZ2U6WzI0NSwyNDUsMjIwLDFdLGJpc3F1ZTpbMjU1LDIyOCwxOTYsMV0sYmxhY2s6WzAsMCwwLDFdLGJsYW5jaGVkYWxtb25kOlsyNTUsMjM1LDIwNSwxXSxibHVlOlswLDAsMjU1LDFdLGJsdWV2aW9sZXQ6WzEzOCw0MywyMjYsMV0sYnJvd246WzE2NSw0Miw0MiwxXSxidXJseXdvb2Q6WzIyMiwxODQsMTM1LDFdLGNhZGV0Ymx1ZTpbOTUsMTU4LDE2MCwxXSxjaGFydHJldXNlOlsxMjcsMjU1LDAsMV0sY2hvY29sYXRlOlsyMTAsMTA1LDMwLDFdLGNvcmFsOlsyNTUsMTI3LDgwLDFdLGNvcm5mbG93ZXJibHVlOlsxMDAsMTQ5LDIzNywxXSxjb3Juc2lsazpbMjU1LDI0OCwyMjAsMV0sY3JpbXNvbjpbMjIwLDIwLDYwLDFdLGN5YW46WzAsMjU1LDI1NSwxXSxkYXJrYmx1ZTpbMCwwLDEzOSwxXSxkYXJrY3lhbjpbMCwxMzksMTM5LDFdLGRhcmtnb2xkZW5yb2Q6WzE4NCwxMzQsMTEsMV0sZGFya2dyYXk6WzE2OSwxNjksMTY5LDFdLGRhcmtncmVlbjpbMCwxMDAsMCwxXSxkYXJrZ3JleTpbMTY5LDE2OSwxNjksMV0sZGFya2toYWtpOlsxODksMTgzLDEwNywxXSwKZGFya21hZ2VudGE6WzEzOSwwLDEzOSwxXSxkYXJrb2xpdmVncmVlbjpbODUsMTA3LDQ3LDFdLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMCwxXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0LDFdLGRhcmtyZWQ6WzEzOSwwLDAsMV0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjIsMV0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0MywxXSxkYXJrc2xhdGVibHVlOls3Miw2MSwxMzksMV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzksMV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzksMV0sZGFya3R1cnF1b2lzZTpbMCwyMDYsMjA5LDFdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMSwxXSxkZWVwcGluazpbMjU1LDIwLDE0NywxXSxkZWVwc2t5Ymx1ZTpbMCwxOTEsMjU1LDFdLGRpbWdyYXk6WzEwNSwxMDUsMTA1LDFdLGRpbWdyZXk6WzEwNSwxMDUsMTA1LDFdLGRvZGdlcmJsdWU6WzMwLDE0NCwyNTUsMV0sZmlyZWJyaWNrOlsxNzgsMzQsMzQsMV0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwLDFdLGZvcmVzdGdyZWVuOlszNCwxMzksMzQsMV0sZnVjaHNpYTpbMjU1LDAsMjU1LDFdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjAsMV0sZ2hvc3R3aGl0ZTpbMjQ4LDI0OCwyNTUsMV0sZ29sZDpbMjU1LDIxNSwwLDFdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMiwxXSxncmF5OlsxMjgsMTI4LDEyOCwxXSxncmVlbjpbMCwxMjgsMCwxXSxncmVlbnllbGxvdzpbMTczLDI1NSw0NywxXSxncmV5OlsxMjgsMTI4LDEyOCwxXSxob25leWRldzpbMjQwLDI1NSwyNDAsMV0saG90cGluazpbMjU1LDEwNSwxODAsMV0saW5kaWFucmVkOlsyMDUsOTIsOTIsMV0saW5kaWdvOls3NSwwLDEzMCwxXSxpdm9yeTpbMjU1LDI1NSwyNDAsMV0sa2hha2k6WzI0MCwyMzAsMTQwLDFdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MCwxXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NSwxXSxsYXduZ3JlZW46WzEyNCwyNTIsMCwxXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1LDFdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzAsMV0sbGlnaHRjb3JhbDpbMjQwLDEyOCwxMjgsMV0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NSwxXSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTAsMV0sbGlnaHRncmF5OlsyMTEsMjExLDIxMSwxXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NCwxXSxsaWdodGdyZXk6WzIxMSwyMTEsMjExLDFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTMsMV0sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyLDFdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzAsMV0sbGlnaHRza3libHVlOlsxMzUsMjA2LDI1MCwxXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTMsMV0sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzLDFdLGxpZ2h0c3RlZWxibHVlOlsxNzYsMTk2LDIyMiwxXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjQsMV0sbGltZTpbMCwyNTUsMCwxXSxsaW1lZ3JlZW46WzUwLDIwNSw1MCwxXSxsaW5lbjpbMjUwLDI0MCwyMzAsMV0sbWFnZW50YTpbMjU1LDAsMjU1LDFdLG1hcm9vbjpbMTI4LDAsMCwxXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MCwxXSxtZWRpdW1ibHVlOlswLDAsMjA1LDFdLG1lZGl1bW9yY2hpZDpbMTg2LDg1LDIxMSwxXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5LDFdLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzLDFdLG1lZGl1bXNsYXRlYmx1ZTpbMTIzLDEwNCwyMzgsMV0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NCwxXSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDQsMV0sbWVkaXVtdmlvbGV0cmVkOlsxOTksMjEsMTMzLDFdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyLDFdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTAsMV0sbWlzdHlyb3NlOlsyNTUsMjI4LDIyNSwxXSxtb2NjYXNpbjpbMjU1LDIyOCwxODEsMV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczLDFdLG5hdnk6WzAsMCwxMjgsMV0sb2xkbGFjZTpbMjUzLDI0NSwyMzAsMV0sb2xpdmU6WzEyOCwxMjgsMCwxXSxvbGl2ZWRyYWI6WzEwNywxNDIsMzUsMV0sb3JhbmdlOlsyNTUsMTY1LDAsMV0sb3JhbmdlcmVkOlsyNTUsNjksMCwxXSxvcmNoaWQ6WzIxOCwxMTIsMjE0LDFdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwLDFdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTIsMV0scGFsZXR1cnF1b2lzZTpbMTc1LDIzOCwyMzgsMV0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDcsMV0scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTMsMV0scGVhY2hwdWZmOlsyNTUsMjE4LDE4NSwxXSxwZXJ1OlsyMDUsMTMzLDYzLDFdLHBpbms6WzI1NSwxOTIsMjAzLDFdLHBsdW06WzIyMSwxNjAsMjIxLDFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwLDFdLHB1cnBsZTpbMTI4LDAsMTI4LDFdLHJlYmVjY2FwdXJwbGU6WzEwMiw1MSwxNTMsMV0scmVkOlsyNTUsMCwwLDFdLHJvc3licm93bjpbMTg4LDE0MywxNDMsMV0scm95YWxibHVlOls2NSwxMDUsMjI1LDFdLHNhZGRsZWJyb3duOlsxMzksNjksMTksMV0sc2FsbW9uOlsyNTAsMTI4LDExNCwxXSxzYW5keWJyb3duOlsyNDQsMTY0LDk2LDFdLHNlYWdyZWVuOls0NiwxMzksODcsMV0sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4LDFdLHNpZW5uYTpbMTYwLDgyLDQ1LDFdLHNpbHZlcjpbMTkyLDE5MiwxOTIsMV0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzUsMV0sc2xhdGVibHVlOlsxMDYsOTAsMjA1LDFdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDQsMV0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NCwxXSxzbm93OlsyNTUsMjUwLDI1MCwxXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3LDFdLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MCwxXSx0YW46WzIxMCwxODAsMTQwLDFdLHRlYWw6WzAsMTI4LDEyOCwxXSx0aGlzdGxlOlsyMTYsMTkxLDIxNiwxXSx0b21hdG86WzI1NSw5OSw3MSwxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDgsMV0sdmlvbGV0OlsyMzgsMTMwLDIzOCwxXSx3aGVhdDpbMjQ1LDIyMiwxNzksMV0sd2hpdGU6WzI1NSwyNTUsMjU1LDFdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1LDFdLHllbGxvdzpbMjU1LDI1NSwwLDFdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwLDFdfTt0cnl7ci5wYXJzZUNTU0NvbG9yPWx9Y2F0Y2godCl7fX0se31dLDEwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxhKXt2YXIgbz02KmkqaS02Kmkscz0zKmkqaS00KmkrMSxsPS02KmkqaSs2KmksdT0zKmkqaS0yKmk7aWYodC5sZW5ndGgpe2F8fChhPW5ldyBBcnJheSh0Lmxlbmd0aCkpO2Zvcih2YXIgYz10Lmxlbmd0aC0xO2M+PTA7LS1jKWFbY109byp0W2NdK3MqZVtjXStsKnJbY10rdSpuW2NdO3JldHVybiBhfXJldHVybiBvKnQrcyplK2wqcltjXSt1Km59ZnVuY3Rpb24gaSh0LGUscixuLGksYSl7dmFyIG89aS0xLHM9aSppLGw9bypvLHU9KDErMippKSpsLGM9aSpsLGg9cyooMy0yKmkpLGY9cypvO2lmKHQubGVuZ3RoKXthfHwoYT1uZXcgQXJyYXkodC5sZW5ndGgpKTtmb3IodmFyIGQ9dC5sZW5ndGgtMTtkPj0wOy0tZClhW2RdPXUqdFtkXStjKmVbZF0raCpyW2RdK2YqbltkXTtyZXR1cm4gYX1yZXR1cm4gdSp0K2MqZStoKnIrZipufWUuZXhwb3J0cz1pLGUuZXhwb3J0cy5kZXJpdmF0aXZlPW59LHt9XSwxMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbigpe3RoaXMuYXJnVHlwZXM9W10sdGhpcy5zaGltQXJncz1bXSx0aGlzLmFycmF5QXJncz1bXSx0aGlzLmFycmF5QmxvY2tJbmRpY2VzPVtdLHRoaXMuc2NhbGFyQXJncz1bXSx0aGlzLm9mZnNldEFyZ3M9W10sdGhpcy5vZmZzZXRBcmdJbmRleD1bXSx0aGlzLmluZGV4QXJncz1bXSx0aGlzLnNoYXBlQXJncz1bXSx0aGlzLmZ1bmNOYW1lPSIiLHRoaXMucHJlPW51bGwsdGhpcy5ib2R5PW51bGwsdGhpcy5wb3N0PW51bGwsdGhpcy5kZWJ1Zz0hMX1mdW5jdGlvbiBpKHQpe3ZhciBlPW5ldyBuO2UucHJlPXQucHJlLGUuYm9keT10LmJvZHksZS5wb3N0PXQucG9zdDt2YXIgcj10LmFyZ3Muc2xpY2UoMCk7ZS5hcmdUeXBlcz1yO2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7KytpKXt2YXIgbz1yW2ldO2lmKCJhcnJheSI9PT1vfHwib2JqZWN0Ij09dHlwZW9mIG8mJm8uYmxvY2tJbmRpY2VzKXtpZihlLmFyZ1R5cGVzW2ldPSJhcnJheSIsZS5hcnJheUFyZ3MucHVzaChpKSxlLmFycmF5QmxvY2tJbmRpY2VzLnB1c2goby5ibG9ja0luZGljZXM/by5ibG9ja0luZGljZXM6MCksZS5zaGltQXJncy5wdXNoKCJhcnJheSIraSksaTxlLnByZS5hcmdzLmxlbmd0aCYmZS5wcmUuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHByZSgpIGJsb2NrIG1heSBub3QgcmVmZXJlbmNlIGFycmF5IGFyZ3MiKTtpZihpPGUucG9zdC5hcmdzLmxlbmd0aCYmZS5wb3N0LmFyZ3NbaV0uY291bnQ+MCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBwb3N0KCkgYmxvY2sgbWF5IG5vdCByZWZlcmVuY2UgYXJyYXkgYXJncyIpfWVsc2UgaWYoInNjYWxhciI9PT1vKWUuc2NhbGFyQXJncy5wdXNoKGkpLGUuc2hpbUFyZ3MucHVzaCgic2NhbGFyIitpKTtlbHNlIGlmKCJpbmRleCI9PT1vKXtpZihlLmluZGV4QXJncy5wdXNoKGkpLGk8ZS5wcmUuYXJncy5sZW5ndGgmJmUucHJlLmFyZ3NbaV0uY291bnQ+MCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBwcmUoKSBibG9jayBtYXkgbm90IHJlZmVyZW5jZSBhcnJheSBpbmRleCIpO2lmKGk8ZS5ib2R5LmFyZ3MubGVuZ3RoJiZlLmJvZHkuYXJnc1tpXS5sdmFsdWUpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogYm9keSgpIGJsb2NrIG1heSBub3Qgd3JpdGUgdG8gYXJyYXkgaW5kZXgiKTtpZihpPGUucG9zdC5hcmdzLmxlbmd0aCYmZS5wb3N0LmFyZ3NbaV0uY291bnQ+MCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBwb3N0KCkgYmxvY2sgbWF5IG5vdCByZWZlcmVuY2UgYXJyYXkgaW5kZXgiKX1lbHNlIGlmKCJzaGFwZSI9PT1vKXtpZihlLnNoYXBlQXJncy5wdXNoKGkpLGk8ZS5wcmUuYXJncy5sZW5ndGgmJmUucHJlLmFyZ3NbaV0ubHZhbHVlKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHByZSgpIGJsb2NrIG1heSBub3Qgd3JpdGUgdG8gYXJyYXkgc2hhcGUiKTtpZihpPGUuYm9keS5hcmdzLmxlbmd0aCYmZS5ib2R5LmFyZ3NbaV0ubHZhbHVlKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IGJvZHkoKSBibG9jayBtYXkgbm90IHdyaXRlIHRvIGFycmF5IHNoYXBlIik7aWYoaTxlLnBvc3QuYXJncy5sZW5ndGgmJmUucG9zdC5hcmdzW2ldLmx2YWx1ZSl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBwb3N0KCkgYmxvY2sgbWF5IG5vdCB3cml0ZSB0byBhcnJheSBzaGFwZSIpfWVsc2V7aWYoIm9iamVjdCIhPXR5cGVvZiBvfHwhby5vZmZzZXQpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogVW5rbm93biBhcmd1bWVudCB0eXBlICIrcltpXSk7ZS5hcmdUeXBlc1tpXT0ib2Zmc2V0IixlLm9mZnNldEFyZ3MucHVzaCh7YXJyYXk6by5hcnJheSxvZmZzZXQ6by5vZmZzZXR9KSxlLm9mZnNldEFyZ0luZGV4LnB1c2goaSl9fWlmKGUuYXJyYXlBcmdzLmxlbmd0aDw9MCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBObyBhcnJheSBhcmd1bWVudHMgc3BlY2lmaWVkIik7aWYoZS5wcmUuYXJncy5sZW5ndGg+ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogVG9vIG1hbnkgYXJndW1lbnRzIGluIHByZSgpIGJsb2NrIik7aWYoZS5ib2R5LmFyZ3MubGVuZ3RoPnIubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IFRvbyBtYW55IGFyZ3VtZW50cyBpbiBib2R5KCkgYmxvY2siKTtpZihlLnBvc3QuYXJncy5sZW5ndGg+ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogVG9vIG1hbnkgYXJndW1lbnRzIGluIHBvc3QoKSBibG9jayIpO3JldHVybiBlLmRlYnVnPSEhdC5wcmludENvZGV8fCEhdC5kZWJ1ZyxlLmZ1bmNOYW1lPXQuZnVuY05hbWV8fCJjd2lzZSIsZS5ibG9ja1NpemU9dC5ibG9ja1NpemV8fDY0LGEoZSl9dmFyIGE9dCgiLi9saWIvdGh1bmsuanMiKTtlLmV4cG9ydHM9aX0seyIuL2xpYi90aHVuay5qcyI6MTEwfV0sMTA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuLGksYT10Lmxlbmd0aCxvPWUuYXJyYXlBcmdzLmxlbmd0aCxzPWUuaW5kZXhBcmdzLmxlbmd0aD4wLGw9W10sdT1bXSxjPTAsaD0wO2ZvcihuPTA7bjxhOysrbil1LnB1c2goWyJpIixuLCI9MCJdLmpvaW4oIiIpKTtmb3IoaT0wO2k8bzsrK2kpZm9yKG49MDtuPGE7KytuKWg9YyxjPXRbbl0sMD09PW4/dS5wdXNoKFsiZCIsaSwicyIsbiwiPXQiLGksInAiLGNdLmpvaW4oIiIpKTp1LnB1c2goWyJkIixpLCJzIixuLCI9KHQiLGksInAiLGMsIi1zIixoLCIqdCIsaSwicCIsaCwiKSJdLmpvaW4oIiIpKTtmb3IodS5sZW5ndGg+MCYmbC5wdXNoKCJ2YXIgIit1LmpvaW4oIiwiKSksbj1hLTE7bj49MDstLW4pYz10W25dLGwucHVzaChbImZvcihpIixuLCI9MDtpIixuLCI8cyIsYywiOysraSIsbiwiKXsiXS5qb2luKCIiKSk7Zm9yKGwucHVzaChyKSxuPTA7bjxhOysrbil7Zm9yKGg9YyxjPXRbbl0saT0wO2k8bzsrK2kpbC5wdXNoKFsicCIsaSwiKz1kIixpLCJzIixuXS5qb2luKCIiKSk7cyYmKG4+MCYmbC5wdXNoKFsiaW5kZXhbIixoLCJdLT1zIixoXS5qb2luKCIiKSksbC5wdXNoKFsiKytpbmRleFsiLGMsIl0iXS5qb2luKCIiKSkpLGwucHVzaCgifSIpfXJldHVybiBsLmpvaW4oIlxuIil9ZnVuY3Rpb24gaSh0LGUscixpKXtmb3IodmFyIGE9ZS5sZW5ndGgsbz1yLmFycmF5QXJncy5sZW5ndGgscz1yLmJsb2NrU2l6ZSxsPXIuaW5kZXhBcmdzLmxlbmd0aD4wLHU9W10sYz0wO2M8bzsrK2MpdS5wdXNoKFsidmFyIG9mZnNldCIsYywiPXAiLGNdLmpvaW4oIiIpKTtmb3IodmFyIGM9dDtjPGE7KytjKXUucHVzaChbImZvcih2YXIgaiIrYysiPVNTWyIsZVtjXSwiXXwwO2oiLGMsIj4wOyl7Il0uam9pbigiIikpLHUucHVzaChbImlmKGoiLGMsIjwiLHMsIil7Il0uam9pbigiIikpLHUucHVzaChbInMiLGVbY10sIj1qIixjXS5qb2luKCIiKSksdS5wdXNoKFsiaiIsYywiPTAiXS5qb2luKCIiKSksdS5wdXNoKFsifWVsc2V7cyIsZVtjXSwiPSIsc10uam9pbigiIikpLHUucHVzaChbImoiLGMsIi09IixzLCJ9Il0uam9pbigiIikpLGwmJnUucHVzaChbImluZGV4WyIsZVtjXSwiXT1qIixjXS5qb2luKCIiKSk7Zm9yKHZhciBjPTA7YzxvOysrYyl7Zm9yKHZhciBoPVsib2Zmc2V0IitjXSxmPXQ7ZjxhOysrZiloLnB1c2goWyJqIixmLCIqdCIsYywicCIsZVtmXV0uam9pbigiIikpO3UucHVzaChbInAiLGMsIj0oIixoLmpvaW4oIisiKSwiKSJdLmpvaW4oIiIpKX11LnB1c2gobihlLHIsaSkpO2Zvcih2YXIgYz10O2M8YTsrK2MpdS5wdXNoKCJ9Iik7cmV0dXJuIHUuam9pbigiXG4iKX1mdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT0wLHI9dFswXS5sZW5ndGg7ZTxyOyl7Zm9yKHZhciBuPTE7bjx0Lmxlbmd0aDsrK24paWYodFtuXVtlXSE9PXRbMF1bZV0pcmV0dXJuIGU7KytlfXJldHVybiBlfWZ1bmN0aW9uIG8odCxlLHIpe2Zvcih2YXIgbj10LmJvZHksaT1bXSxhPVtdLG89MDtvPHQuYXJncy5sZW5ndGg7KytvKXt2YXIgcz10LmFyZ3Nbb107aWYoIShzLmNvdW50PD0wKSl7dmFyIGw9bmV3IFJlZ0V4cChzLm5hbWUsImciKSx1PSIiLGM9ZS5hcnJheUFyZ3MuaW5kZXhPZihvKTtzd2l0Y2goZS5hcmdUeXBlc1tvXSl7Y2FzZSJvZmZzZXQiOnZhciBoPWUub2Zmc2V0QXJnSW5kZXguaW5kZXhPZihvKTtjPWUub2Zmc2V0QXJnc1toXS5hcnJheSx1PSIrcSIraDtjYXNlImFycmF5Ijp1PSJwIitjK3U7dmFyIGY9ImwiK28sZD0iYSIrYztpZigwPT09ZS5hcnJheUJsb2NrSW5kaWNlc1tjXSkxPT09cy5jb3VudD8iZ2VuZXJpYyI9PT1yW2NdP3MubHZhbHVlPyhpLnB1c2goWyJ2YXIgIixmLCI9IixkLCIuZ2V0KCIsdSwiKSJdLmpvaW4oIiIpKSxuPW4ucmVwbGFjZShsLGYpLGEucHVzaChbZCwiLnNldCgiLHUsIiwiLGYsIikiXS5qb2luKCIiKSkpOm49bi5yZXBsYWNlKGwsW2QsIi5nZXQoIix1LCIpIl0uam9pbigiIikpOm49bi5yZXBsYWNlKGwsW2QsIlsiLHUsIl0iXS5qb2luKCIiKSk6ImdlbmVyaWMiPT09cltjXT8oaS5wdXNoKFsidmFyICIsZiwiPSIsZCwiLmdldCgiLHUsIikiXS5qb2luKCIiKSksbj1uLnJlcGxhY2UobCxmKSxzLmx2YWx1ZSYmYS5wdXNoKFtkLCIuc2V0KCIsdSwiLCIsZiwiKSJdLmpvaW4oIiIpKSk6KGkucHVzaChbInZhciAiLGYsIj0iLGQsIlsiLHUsIl0iXS5qb2luKCIiKSksbj1uLnJlcGxhY2UobCxmKSxzLmx2YWx1ZSYmYS5wdXNoKFtkLCJbIix1LCJdPSIsZl0uam9pbigiIikpKTtlbHNle2Zvcih2YXIgcD1bcy5uYW1lXSxtPVt1XSx2PTA7djxNYXRoLmFicyhlLmFycmF5QmxvY2tJbmRpY2VzW2NdKTt2KyspcC5wdXNoKCJcXHMqXFxbKFteXFxdXSspXFxdIiksbS5wdXNoKCIkIisodisxKSsiKnQiK2MrImIiK3YpO2lmKGw9bmV3IFJlZ0V4cChwLmpvaW4oIiIpLCJnIiksdT1tLmpvaW4oIisiKSwiZ2VuZXJpYyI9PT1yW2NdKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IEdlbmVyaWMgYXJyYXlzIG5vdCBzdXBwb3J0ZWQgaW4gY29tYmluYXRpb24gd2l0aCBibG9ja3MhIik7bj1uLnJlcGxhY2UobCxbZCwiWyIsdSwiXSJdLmpvaW4oIiIpKX1icmVhaztjYXNlInNjYWxhciI6bj1uLnJlcGxhY2UobCwiWSIrZS5zY2FsYXJBcmdzLmluZGV4T2YobykpO2JyZWFrO2Nhc2UiaW5kZXgiOm49bi5yZXBsYWNlKGwsImluZGV4Iik7YnJlYWs7Y2FzZSJzaGFwZSI6bj1uLnJlcGxhY2UobCwic2hhcGUiKX19fXJldHVybltpLmpvaW4oIlxuIiksbixhLmpvaW4oIlxuIildLmpvaW4oIlxuIikudHJpbSgpfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0hMCxuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBpPXRbbl0sYT1pLm1hdGNoKC9cZCsvKTthPWE/YVswXToiIiwwPT09aS5jaGFyQXQoMCk/ZVtuXT0idSIraS5jaGFyQXQoMSkrYTplW25dPWkuY2hhckF0KDApK2Esbj4wJiYocj1yJiZlW25dPT09ZVtuLTFdKX1yZXR1cm4gcj9lWzBdOmUuam9pbigiIil9ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgcj1lWzFdLmxlbmd0aC1NYXRoLmFicyh0LmFycmF5QmxvY2tJbmRpY2VzWzBdKXwwLGw9bmV3IEFycmF5KHQuYXJyYXlBcmdzLmxlbmd0aCksYz1uZXcgQXJyYXkodC5hcnJheUFyZ3MubGVuZ3RoKSxoPTA7aDx0LmFycmF5QXJncy5sZW5ndGg7KytoKWNbaF09ZVsyKmhdLGxbaF09ZVsyKmgrMV07Zm9yKHZhciBmPVtdLGQ9W10scD1bXSxtPVtdLHY9W10saD0wO2g8dC5hcnJheUFyZ3MubGVuZ3RoOysraCl7dC5hcnJheUJsb2NrSW5kaWNlc1toXTwwPyhwLnB1c2goMCksbS5wdXNoKHIpLGYucHVzaChyKSxkLnB1c2gocit0LmFycmF5QmxvY2tJbmRpY2VzW2hdKSk6KHAucHVzaCh0LmFycmF5QmxvY2tJbmRpY2VzW2hdKSxtLnB1c2godC5hcnJheUJsb2NrSW5kaWNlc1toXStyKSxmLnB1c2goMCksZC5wdXNoKHQuYXJyYXlCbG9ja0luZGljZXNbaF0pKTtmb3IodmFyIGc9W10seT0wO3k8bFtoXS5sZW5ndGg7eSsrKXBbaF08PWxbaF1beV0mJmxbaF1beV08bVtoXSYmZy5wdXNoKGxbaF1beV0tcFtoXSk7di5wdXNoKGcpfWZvcih2YXIgYj1bIlNTIl0seD1bIid1c2Ugc3RyaWN0JyJdLF89W10seT0wO3k8cjsrK3kpXy5wdXNoKFsicyIseSwiPVNTWyIseSwiXSJdLmpvaW4oIiIpKTtmb3IodmFyIGg9MDtoPHQuYXJyYXlBcmdzLmxlbmd0aDsrK2gpe2IucHVzaCgiYSIraCksYi5wdXNoKCJ0IitoKSxiLnB1c2goInAiK2gpO2Zvcih2YXIgeT0wO3k8cjsrK3kpXy5wdXNoKFsidCIsaCwicCIseSwiPXQiLGgsIlsiLHBbaF0reSwiXSJdLmpvaW4oIiIpKTtmb3IodmFyIHk9MDt5PE1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbaF0pOysreSlfLnB1c2goWyJ0IixoLCJiIix5LCI9dCIsaCwiWyIsZltoXSt5LCJdIl0uam9pbigiIikpfWZvcih2YXIgaD0wO2g8dC5zY2FsYXJBcmdzLmxlbmd0aDsrK2gpYi5wdXNoKCJZIitoKTtpZih0LnNoYXBlQXJncy5sZW5ndGg+MCYmXy5wdXNoKCJzaGFwZT1TUy5zbGljZSgwKSIpLHQuaW5kZXhBcmdzLmxlbmd0aD4wKXtmb3IodmFyIHc9bmV3IEFycmF5KHIpLGg9MDtoPHI7KytoKXdbaF09IjAiO18ucHVzaChbImluZGV4PVsiLHcuam9pbigiLCIpLCJdIl0uam9pbigiIikpfWZvcih2YXIgaD0wO2g8dC5vZmZzZXRBcmdzLmxlbmd0aDsrK2gpe2Zvcih2YXIgTT10Lm9mZnNldEFyZ3NbaF0saz1bXSx5PTA7eTxNLm9mZnNldC5sZW5ndGg7Kyt5KTAhPT1NLm9mZnNldFt5XSYmKDE9PT1NLm9mZnNldFt5XT9rLnB1c2goWyJ0IixNLmFycmF5LCJwIix5XS5qb2luKCIiKSk6ay5wdXNoKFtNLm9mZnNldFt5XSwiKnQiLE0uYXJyYXksInAiLHldLmpvaW4oIiIpKSk7MD09PWsubGVuZ3RoP18ucHVzaCgicSIraCsiPTAiKTpfLnB1c2goWyJxIixoLCI9IixrLmpvaW4oIisiKV0uam9pbigiIikpfXZhciBBPXUoW10uY29uY2F0KHQucHJlLnRoaXNWYXJzKS5jb25jYXQodC5ib2R5LnRoaXNWYXJzKS5jb25jYXQodC5wb3N0LnRoaXNWYXJzKSk7Xz1fLmNvbmNhdChBKSxfLmxlbmd0aD4wJiZ4LnB1c2goInZhciAiK18uam9pbigiLCIpKTtmb3IodmFyIGg9MDtoPHQuYXJyYXlBcmdzLmxlbmd0aDsrK2gpeC5wdXNoKCJwIitoKyJ8PTAiKTt0LnByZS5ib2R5Lmxlbmd0aD4zJiZ4LnB1c2gobyh0LnByZSx0LGMpKTt2YXIgVD1vKHQuYm9keSx0LGMpLFM9YSh2KTtTPHI/eC5wdXNoKGkoUyx2WzBdLHQsVCkpOngucHVzaChuKHZbMF0sdCxUKSksdC5wb3N0LmJvZHkubGVuZ3RoPjMmJngucHVzaChvKHQucG9zdCx0LGMpKSx0LmRlYnVnJiZjb25zb2xlLmxvZygiLS0tLS1HZW5lcmF0ZWQgY3dpc2Ugcm91dGluZSBmb3IgIixlLCI6XG4iK3guam9pbigiXG4iKSsiXG4tLS0tLS0tLS0tIik7dmFyIEU9W3QuZnVuY05hbWV8fCJ1bm5hbWVkIiwiX2N3aXNlX2xvb3BfIixsWzBdLmpvaW4oInMiKSwibSIsUyxzKGMpXS5qb2luKCIiKTtyZXR1cm4gbmV3IEZ1bmN0aW9uKFsiZnVuY3Rpb24gIixFLCIoIixiLmpvaW4oIiwiKSwiKXsiLHguam9pbigiXG4iKSwifSByZXR1cm4gIixFXS5qb2luKCIiKSkoKX12YXIgdT10KCJ1bmlxIik7ZS5leHBvcnRzPWx9LHt1bmlxOjU0MX1dLDExMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPVsiJ3VzZSBzdHJpY3QnIiwidmFyIENBQ0hFRD17fSJdLHI9W10sbj10LmZ1bmNOYW1lKyJfY3dpc2VfdGh1bmsiO2UucHVzaChbInJldHVybiBmdW5jdGlvbiAiLG4sIigiLHQuc2hpbUFyZ3Muam9pbigiLCIpLCIpeyJdLmpvaW4oIiIpKTtmb3IodmFyIGE9W10sbz1bXSxzPVtbImFycmF5Iix0LmFycmF5QXJnc1swXSwiLnNoYXBlLnNsaWNlKCIsTWF0aC5tYXgoMCx0LmFycmF5QmxvY2tJbmRpY2VzWzBdKSx0LmFycmF5QmxvY2tJbmRpY2VzWzBdPDA/IiwiK3QuYXJyYXlCbG9ja0luZGljZXNbMF0rIikiOiIpIl0uam9pbigiIildLGw9W10sdT1bXSxjPTA7Yzx0LmFycmF5QXJncy5sZW5ndGg7KytjKXt2YXIgaD10LmFycmF5QXJnc1tjXTtyLnB1c2goWyJ0IixoLCI9YXJyYXkiLGgsIi5kdHlwZSwiLCJyIixoLCI9YXJyYXkiLGgsIi5vcmRlciJdLmpvaW4oIiIpKSxhLnB1c2goInQiK2gpLGEucHVzaCgiciIraCksby5wdXNoKCJ0IitoKSxvLnB1c2goInIiK2grIi5qb2luKCkiKSxzLnB1c2goImFycmF5IitoKyIuZGF0YSIpLHMucHVzaCgiYXJyYXkiK2grIi5zdHJpZGUiKSxzLnB1c2goImFycmF5IitoKyIub2Zmc2V0fDAiKSxjPjAmJihsLnB1c2goImFycmF5Iit0LmFycmF5QXJnc1swXSsiLnNoYXBlLmxlbmd0aD09PWFycmF5IitoKyIuc2hhcGUubGVuZ3RoKyIrKE1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbMF0pLU1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbY10pKSksdS5wdXNoKCJhcnJheSIrdC5hcnJheUFyZ3NbMF0rIi5zaGFwZVtzaGFwZUluZGV4KyIrTWF0aC5tYXgoMCx0LmFycmF5QmxvY2tJbmRpY2VzWzBdKSsiXT09PWFycmF5IitoKyIuc2hhcGVbc2hhcGVJbmRleCsiK01hdGgubWF4KDAsdC5hcnJheUJsb2NrSW5kaWNlc1tjXSkrIl0iKSl9dC5hcnJheUFyZ3MubGVuZ3RoPjEmJihlLnB1c2goImlmICghKCIrbC5qb2luKCIgJiYgIikrIikpIHRocm93IG5ldyBFcnJvcignY3dpc2U6IEFycmF5cyBkbyBub3QgYWxsIGhhdmUgdGhlIHNhbWUgZGltZW5zaW9uYWxpdHkhJykiKSxlLnB1c2goImZvcih2YXIgc2hhcGVJbmRleD1hcnJheSIrdC5hcnJheUFyZ3NbMF0rIi5zaGFwZS5sZW5ndGgtIitNYXRoLmFicyh0LmFycmF5QmxvY2tJbmRpY2VzWzBdKSsiOyBzaGFwZUluZGV4LS1ceDNlMDspIHsiKSxlLnB1c2goImlmICghKCIrdS5qb2luKCIgJiYgIikrIikpIHRocm93IG5ldyBFcnJvcignY3dpc2U6IEFycmF5cyBkbyBub3QgYWxsIGhhdmUgdGhlIHNhbWUgc2hhcGUhJykiKSxlLnB1c2goIn0iKSk7Zm9yKHZhciBjPTA7Yzx0LnNjYWxhckFyZ3MubGVuZ3RoOysrYylzLnB1c2goInNjYWxhciIrdC5zY2FsYXJBcmdzW2NdKTtyZXR1cm4gci5wdXNoKFsidHlwZT1bIixvLmpvaW4oIiwiKSwiXS5qb2luKCkiXS5qb2luKCIiKSksci5wdXNoKCJwcm9jPUNBQ0hFRFt0eXBlXSIpLGUucHVzaCgidmFyICIrci5qb2luKCIsIikpLGUucHVzaChbImlmKCFwcm9jKXsiLCJDQUNIRURbdHlwZV09cHJvYz1jb21waWxlKFsiLGEuam9pbigiLCIpLCJdKX0iLCJyZXR1cm4gcHJvYygiLHMuam9pbigiLCIpLCIpfSJdLmpvaW4oIiIpKSx0LmRlYnVnJiZjb25zb2xlLmxvZygiLS0tLS1HZW5lcmF0ZWQgdGh1bms6XG4iK2Uuam9pbigiXG4iKSsiXG4tLS0tLS0tLS0tIiksbmV3IEZ1bmN0aW9uKCJjb21waWxlIixlLmpvaW4oIlxuIikpKGkuYmluZCh2b2lkIDAsdCkpfXZhciBpPXQoIi4vY29tcGlsZS5qcyIpO2UuZXhwb3J0cz1ufSx7Ii4vY29tcGlsZS5qcyI6MTA5fV0sMTExOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImN3aXNlLWNvbXBpbGVyIil9LHsiY3dpc2UtY29tcGlsZXIiOjEwOH1dLDExMjpbZnVuY3Rpb24oZSxyLG4peyFmdW5jdGlvbihlLGkpeyJvYmplY3QiPT10eXBlb2YgbiYmdm9pZCAwIT09cj9pKG4pOiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmFtZD90KFsiZXhwb3J0cyJdLGkpOmkoZS5kMz1lLmQzfHx7fSl9KHRoaXMsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7cmV0dXJuIG8odChlKSxyKX19ZnVuY3Rpb24gcih0LGUpe3JldHVyblt0LGVdfWZ1bmN0aW9uIG4odCxlLHIpe3ZhciBuPShlLXQpL01hdGgubWF4KDAsciksaT1NYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCksYT1uL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhhPj1rPzEwOmE+PUE/NTphPj1UPzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8oYT49az8xMDphPj1BPzU6YT49VD8yOjEpfWZ1bmN0aW9uIGkodCxlLHIpe3ZhciBuPU1hdGguYWJzKGUtdCkvTWF0aC5tYXgoMCxyKSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKSksYT1uL2k7cmV0dXJuIGE+PWs/aSo9MTA6YT49QT9pKj01OmE+PVQmJihpKj0yKSxlPHQ/LWk6aX1mdW5jdGlvbiBhKHQpe3JldHVybiB0Lmxlbmd0aH12YXIgbz1mdW5jdGlvbih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn0scz1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodD1lKHQpKSx7bGVmdDpmdW5jdGlvbihlLHIsbixpKXtmb3IobnVsbD09biYmKG49MCksbnVsbD09aSYmKGk9ZS5sZW5ndGgpO248aTspe3ZhciBhPW4raT4+PjE7dChlW2FdLHIpPDA/bj1hKzE6aT1hfXJldHVybiBufSxyaWdodDpmdW5jdGlvbihlLHIsbixpKXtmb3IobnVsbD09biYmKG49MCksbnVsbD09aSYmKGk9ZS5sZW5ndGgpO248aTspe3ZhciBhPW4raT4+PjE7dChlW2FdLHIpPjA/aT1hOm49YSsxfXJldHVybiBufX19LGw9cyhvKSx1PWwucmlnaHQsYz1sLmxlZnQsaD1mdW5jdGlvbih0LGUpe251bGw9PWUmJihlPXIpO2Zvcih2YXIgbj0wLGk9dC5sZW5ndGgtMSxhPXRbMF0sbz1uZXcgQXJyYXkoaTwwPzA6aSk7bjxpOylvW25dPWUoYSxhPXRbKytuXSk7cmV0dXJuIG99LGY9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLGEsbyxzLGw9dC5sZW5ndGgsdT1lLmxlbmd0aCxjPW5ldyBBcnJheShsKnUpO2ZvcihudWxsPT1uJiYobj1yKSxpPW89MDtpPGw7KytpKWZvcihzPXRbaV0sYT0wO2E8dTsrK2EsKytvKWNbb109bihzLGVbYV0pO3JldHVybiBjfSxkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU8dD8tMTplPnQ/MTplPj10PzA6TmFOfSxwPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9LG09ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9dC5sZW5ndGgsYT0wLG89LTEscz0wLGw9MDtpZihudWxsPT1lKWZvcig7KytvPGk7KWlzTmFOKHI9cCh0W29dKSl8fChuPXItcyxzKz1uLysrYSxsKz1uKihyLXMpKTtlbHNlIGZvcig7KytvPGk7KWlzTmFOKHI9cChlKHRbb10sbyx0KSkpfHwobj1yLXMscys9bi8rK2EsbCs9biooci1zKSk7aWYoYT4xKXJldHVybiBsLyhhLTEpfSx2PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bSh0LGUpO3JldHVybiByP01hdGguc3FydChyKTpyfSxnPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGE9dC5sZW5ndGgsbz0tMTtpZihudWxsPT1lKXtmb3IoOysrbzxhOylpZihudWxsIT0ocj10W29dKSYmcj49cilmb3Iobj1pPXI7KytvPGE7KW51bGwhPShyPXRbb10pJiYobj5yJiYobj1yKSxpPHImJihpPXIpKX1lbHNlIGZvcig7KytvPGE7KWlmKG51bGwhPShyPWUodFtvXSxvLHQpKSYmcj49cilmb3Iobj1pPXI7KytvPGE7KW51bGwhPShyPWUodFtvXSxvLHQpKSYmKG4+ciYmKG49ciksaTxyJiYoaT1yKSk7cmV0dXJuW24saV19LHk9QXJyYXkucHJvdG90eXBlLGI9eS5zbGljZSx4PXkubWFwLF89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fSx3PWZ1bmN0aW9uKHQpe3JldHVybiB0fSxNPWZ1bmN0aW9uKHQsZSxyKXt0PSt0LGU9K2Uscj0oaT1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOmk8Mz8xOityO2Zvcih2YXIgbj0tMSxpPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvcikpLGE9bmV3IEFycmF5KGkpOysrbjxpOylhW25dPXQrbipyO3JldHVybiBhfSxrPU1hdGguc3FydCg1MCksQT1NYXRoLnNxcnQoMTApLFQ9TWF0aC5zcXJ0KDIpLFM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpLGEsbyxzPWU8dCxsPS0xO2lmKHMmJihpPXQsdD1lLGU9aSksMD09PShvPW4odCxlLHIpKXx8IWlzRmluaXRlKG8pKXJldHVybltdO2lmKG8+MClmb3IodD1NYXRoLmNlaWwodC9vKSxlPU1hdGguZmxvb3IoZS9vKSxhPW5ldyBBcnJheShpPU1hdGguY2VpbChlLXQrMSkpOysrbDxpOylhW2xdPSh0K2wpKm87ZWxzZSBmb3IodD1NYXRoLmZsb29yKHQqbyksZT1NYXRoLmNlaWwoZSpvKSxhPW5ldyBBcnJheShpPU1hdGguY2VpbCh0LWUrMSkpOysrbDxpOylhW2xdPSh0LWwpL287cmV0dXJuIHMmJmEucmV2ZXJzZSgpLGF9LEU9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZyh0Lmxlbmd0aCkvTWF0aC5MTjIpKzF9LEw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBhLG8scz10Lmxlbmd0aCxsPW5ldyBBcnJheShzKTtmb3IoYT0wO2E8czsrK2EpbFthXT1lKHRbYV0sYSx0KTt2YXIgYz1yKGwpLGg9Y1swXSxmPWNbMV0sZD1uKGwsaCxmKTtBcnJheS5pc0FycmF5KGQpfHwoZD1pKGgsZixkKSxkPU0oTWF0aC5jZWlsKGgvZCkqZCxNYXRoLmZsb29yKGYvZCkqZCxkKSk7Zm9yKHZhciBwPWQubGVuZ3RoO2RbMF08PWg7KWQuc2hpZnQoKSwtLXA7Zm9yKDtkW3AtMV0+ZjspZC5wb3AoKSwtLXA7dmFyIG0sdj1uZXcgQXJyYXkocCsxKTtmb3IoYT0wO2E8PXA7KythKW09dlthXT1bXSxtLngwPWE+MD9kW2EtMV06aCxtLngxPWE8cD9kW2FdOmY7Zm9yKGE9MDthPHM7KythKW89bFthXSxoPD1vJiZvPD1mJiZ2W3UoZCxvLDAscCldLnB1c2godFthXSk7cmV0dXJuIHZ9dmFyIGU9dyxyPWcsbj1FO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSJmdW5jdGlvbiI9PXR5cGVvZiByP3I6XyhyKSx0KTplfSx0LmRvbWFpbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOl8oW2VbMF0sZVsxXV0pLHQpOnJ9LHQudGhyZXNob2xkcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOl8oQXJyYXkuaXNBcnJheShlKT9iLmNhbGwoZSk6ZSksdCk6bn0sdH0sQz1mdW5jdGlvbih0LGUscil7aWYobnVsbD09ciYmKHI9cCksbj10Lmxlbmd0aCl7aWYoKGU9K2UpPD0wfHxuPDIpcmV0dXJuK3IodFswXSwwLHQpO2lmKGU+PTEpcmV0dXJuK3IodFtuLTFdLG4tMSx0KTt2YXIgbixpPShuLTEpKmUsYT1NYXRoLmZsb29yKGkpLG89K3IodFthXSxhLHQpO3JldHVybiBvKygrcih0W2ErMV0sYSsxLHQpLW8pKihpLWEpfX0sej1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9eC5jYWxsKHQscCkuc29ydChvKSxNYXRoLmNlaWwoKHItZSkvKDIqKEModCwuNzUpLUModCwuMjUpKSpNYXRoLnBvdyh0Lmxlbmd0aCwtMS8zKSkpfSxJPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gTWF0aC5jZWlsKChyLWUpLygzLjUqdih0KSpNYXRoLnBvdyh0Lmxlbmd0aCwtMS8zKSkpfSxEPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK2E8aTspaWYobnVsbCE9KHI9dFthXSkmJnI+PXIpZm9yKG49cjsrK2E8aTspbnVsbCE9KHI9dFthXSkmJnI+biYmKG49cil9ZWxzZSBmb3IoOysrYTxpOylpZihudWxsIT0ocj1lKHRbYV0sYSx0KSkmJnI+PXIpZm9yKG49cjsrK2E8aTspbnVsbCE9KHI9ZSh0W2FdLGEsdCkpJiZyPm4mJihuPXIpO3JldHVybiBufSxQPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10Lmxlbmd0aCxpPW4sYT0tMSxvPTA7aWYobnVsbD09ZSlmb3IoOysrYTxuOylpc05hTihyPXAodFthXSkpPy0taTpvKz1yO2Vsc2UgZm9yKDsrK2E8bjspaXNOYU4ocj1wKGUodFthXSxhLHQpKSk/LS1pOm8rPXI7aWYoaSlyZXR1cm4gby9pfSxPPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10Lmxlbmd0aCxpPS0xLGE9W107aWYobnVsbD09ZSlmb3IoOysraTxuOylpc05hTihyPXAodFtpXSkpfHxhLnB1c2gocik7ZWxzZSBmb3IoOysraTxuOylpc05hTihyPXAoZSh0W2ldLGksdCkpKXx8YS5wdXNoKHIpO3JldHVybiBDKGEuc29ydChvKSwuNSl9LFI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpPXQubGVuZ3RoLGE9LTEsbz0wOysrYTxpOylvKz10W2FdLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobyk7LS1pPj0wOylmb3Iobj10W2ldLGU9bi5sZW5ndGg7LS1lPj0wOylyWy0tb109bltlXTtyZXR1cm4gcn0sRj1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10Lmxlbmd0aCxhPS0xO2lmKG51bGw9PWUpe2Zvcig7KythPGk7KWlmKG51bGwhPShyPXRbYV0pJiZyPj1yKWZvcihuPXI7KythPGk7KW51bGwhPShyPXRbYV0pJiZuPnImJihuPXIpfWVsc2UgZm9yKDsrK2E8aTspaWYobnVsbCE9KHI9ZSh0W2FdLGEsdCkpJiZyPj1yKWZvcihuPXI7KythPGk7KW51bGwhPShyPWUodFthXSxhLHQpKSYmbj5yJiYobj1yKTtyZXR1cm4gbn0saj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aCxuPW5ldyBBcnJheShyKTtyLS07KW5bcl09dFtlW3JdXTtyZXR1cm4gbn0sTj1mdW5jdGlvbih0LGUpe2lmKHI9dC5sZW5ndGgpe3ZhciByLG4saT0wLGE9MCxzPXRbYV07Zm9yKG51bGw9PWUmJihlPW8pOysraTxyOykoZShuPXRbaV0scyk8MHx8MCE9PWUocyxzKSkmJihzPW4sYT1pKTtyZXR1cm4gMD09PWUocyxzKT9hOnZvaWQgMH19LEI9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpLGE9KG51bGw9PXI/dC5sZW5ndGg6ciktKGU9bnVsbD09ZT8wOitlKTthOylpPU1hdGgucmFuZG9tKCkqYS0tfDAsbj10W2ErZV0sdFthK2VdPXRbaStlXSx0W2krZV09bjtyZXR1cm4gdH0sVT1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5sZW5ndGgsaT0tMSxhPTA7aWYobnVsbD09ZSlmb3IoOysraTxuOykocj0rdFtpXSkmJihhKz1yKTtlbHNlIGZvcig7KytpPG47KShyPStlKHRbaV0saSx0KSkmJihhKz1yKTtyZXR1cm4gYX0sVj1mdW5jdGlvbih0KXtpZighKGk9dC5sZW5ndGgpKXJldHVybltdO2Zvcih2YXIgZT0tMSxyPUYodCxhKSxuPW5ldyBBcnJheShyKTsrK2U8cjspZm9yKHZhciBpLG89LTEscz1uW2VdPW5ldyBBcnJheShpKTsrK288aTspc1tvXT10W29dW2VdO3JldHVybiBufSxIPWZ1bmN0aW9uKCl7cmV0dXJuIFYoYXJndW1lbnRzKX07dC5iaXNlY3Q9dSx0LmJpc2VjdFJpZ2h0PXUsdC5iaXNlY3RMZWZ0PWMsdC5hc2NlbmRpbmc9byx0LmJpc2VjdG9yPXMsdC5jcm9zcz1mLHQuZGVzY2VuZGluZz1kLHQuZGV2aWF0aW9uPXYsdC5leHRlbnQ9Zyx0Lmhpc3RvZ3JhbT1MLHQudGhyZXNob2xkRnJlZWRtYW5EaWFjb25pcz16LHQudGhyZXNob2xkU2NvdHQ9SSx0LnRocmVzaG9sZFN0dXJnZXM9RSx0Lm1heD1ELHQubWVhbj1QLHQubWVkaWFuPU8sdC5tZXJnZT1SLHQubWluPUYsdC5wYWlycz1oLHQucGVybXV0ZT1qLHQucXVhbnRpbGU9Qyx0LnJhbmdlPU0sdC5zY2FuPU4sdC5zaHVmZmxlPUIsdC5zdW09VSx0LnRpY2tzPVMsdC50aWNrSW5jcmVtZW50PW4sdC50aWNrU3RlcD1pLHQudHJhbnNwb3NlPVYsdC52YXJpYW5jZT1tLHQuemlwPUgsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSl9LHt9XSwxMTM6W2Z1bmN0aW9uKGUscixuKXshZnVuY3Rpb24oZSxpKXsib2JqZWN0Ij09dHlwZW9mIG4mJnZvaWQgMCE9PXI/aShuKToiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hbWQ/dChbImV4cG9ydHMiXSxpKTppKGUuZDM9ZS5kM3x8e30pfSh0aGlzLGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKCl7fWZ1bmN0aW9uIHIodCxyKXt2YXIgbj1uZXcgZTtpZih0IGluc3RhbmNlb2YgZSl0LmVhY2goZnVuY3Rpb24odCxlKXtuLnNldChlLHQpfSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaSxhPS0xLG89dC5sZW5ndGg7aWYobnVsbD09cilmb3IoOysrYTxvOyluLnNldChhLHRbYV0pO2Vsc2UgZm9yKDsrK2E8bzspbi5zZXQocihpPXRbYV0sYSx0KSxpKX1lbHNlIGlmKHQpZm9yKHZhciBzIGluIHQpbi5zZXQocyx0W3NdKTtyZXR1cm4gbn1mdW5jdGlvbiBuKCl7cmV0dXJue319ZnVuY3Rpb24gaSh0LGUscil7dFtlXT1yfWZ1bmN0aW9uIGEoKXtyZXR1cm4gcigpfWZ1bmN0aW9uIG8odCxlLHIpe3Quc2V0KGUscil9ZnVuY3Rpb24gcygpe31mdW5jdGlvbiBsKHQsZSl7dmFyIHI9bmV3IHM7aWYodCBpbnN0YW5jZW9mIHMpdC5lYWNoKGZ1bmN0aW9uKHQpe3IuYWRkKHQpfSk7ZWxzZSBpZih0KXt2YXIgbj0tMSxpPXQubGVuZ3RoO2lmKG51bGw9PWUpZm9yKDsrK248aTspci5hZGQodFtuXSk7ZWxzZSBmb3IoOysrbjxpOylyLmFkZChlKHRbbl0sbix0KSl9cmV0dXJuIHJ9ZS5wcm90b3R5cGU9ci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmUsaGFzOmZ1bmN0aW9uKHQpe3JldHVybiIkIit0IGluIHRoaXN9LGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpc1siJCIrdF19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzWyIkIit0XT1lLHRoaXN9LHJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT0iJCIrdDtyZXR1cm4gZSBpbiB0aGlzJiZkZWxldGUgdGhpc1tlXX0sY2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcykiJCI9PT10WzBdJiZkZWxldGUgdGhpc1t0XX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJnQucHVzaChlLnNsaWNlKDEpKTtyZXR1cm4gdH0sdmFsdWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmdC5wdXNoKHRoaXNbZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmdC5wdXNoKHtrZXk6ZS5zbGljZSgxKSx2YWx1ZTp0aGlzW2VdfSk7cmV0dXJuIHR9LHNpemU6ZnVuY3Rpb24oKXt2YXIgdD0wO2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJisrdDtyZXR1cm4gdH0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcylpZigiJCI9PT10WzBdKXJldHVybiExO3JldHVybiEwfSxlYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzKSIkIj09PWVbMF0mJnQodGhpc1tlXSxlLnNsaWNlKDEpLHRoaXMpfX07dmFyIHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixpLGEpe2lmKG4+PWMubGVuZ3RoKXJldHVybiBudWxsIT1sP2woZSk6bnVsbCE9cz9lLnNvcnQocyk6ZTtmb3IodmFyIG8sdSxoLGY9LTEsZD1lLmxlbmd0aCxwPWNbbisrXSxtPXIoKSx2PWkoKTsrK2Y8ZDspKGg9bS5nZXQobz1wKHU9ZVtmXSkrIiIpKT9oLnB1c2godSk6bS5zZXQobyxbdV0pO3JldHVybiBtLmVhY2goZnVuY3Rpb24oZSxyKXthKHYscix0KGUsbixpLGEpKX0pLHZ9ZnVuY3Rpb24gZSh0LHIpe2lmKCsrcj5jLmxlbmd0aClyZXR1cm4gdDt2YXIgbixpPWhbci0xXTtyZXR1cm4gbnVsbCE9bCYmcj49Yy5sZW5ndGg/bj10LmVudHJpZXMoKToobj1bXSx0LmVhY2goZnVuY3Rpb24odCxpKXtuLnB1c2goe2tleTppLHZhbHVlczplKHQscil9KX0pKSxudWxsIT1pP24uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBpKHQua2V5LGUua2V5KX0pOm59dmFyIHMsbCx1LGM9W10saD1bXTtyZXR1cm4gdT17b2JqZWN0OmZ1bmN0aW9uKGUpe3JldHVybiB0KGUsMCxuLGkpfSxtYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSwwLGEsbyl9LGVudHJpZXM6ZnVuY3Rpb24ocil7cmV0dXJuIGUodChyLDAsYSxvKSwwKX0sa2V5OmZ1bmN0aW9uKHQpe3JldHVybiBjLnB1c2godCksdX0sc29ydEtleXM6ZnVuY3Rpb24odCl7cmV0dXJuIGhbYy5sZW5ndGgtMV09dCx1fSxzb3J0VmFsdWVzOmZ1bmN0aW9uKHQpe3JldHVybiBzPXQsdX0scm9sbHVwOmZ1bmN0aW9uKHQpe3JldHVybiBsPXQsdX19fSxjPXIucHJvdG90eXBlO3MucHJvdG90eXBlPWwucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzLGhhczpjLmhhcyxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQrPSIiLHRoaXNbIiQiK3RdPXQsdGhpc30scmVtb3ZlOmMucmVtb3ZlLGNsZWFyOmMuY2xlYXIsdmFsdWVzOmMua2V5cyxzaXplOmMuc2l6ZSxlbXB0eTpjLmVtcHR5LGVhY2g6Yy5lYWNofTt2YXIgaD1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2gocik7cmV0dXJuIGV9LGY9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHRbcl0pO3JldHVybiBlfSxkPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh7a2V5OnIsdmFsdWU6dFtyXX0pO3JldHVybiBlfTt0Lm5lc3Q9dSx0LnNldD1sLHQubWFwPXIsdC5rZXlzPWgsdC52YWx1ZXM9Zix0LmVudHJpZXM9ZCxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KX0se31dLDExNDpbZnVuY3Rpb24oZSxyLG4peyFmdW5jdGlvbihlLGkpeyJvYmplY3QiPT10eXBlb2YgbiYmdm9pZCAwIT09cj9pKG4pOiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmFtZD90KFsiZXhwb3J0cyJdLGkpOmkoZS5kMz1lLmQzfHx7fSl9KHRoaXMsZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlKXt2YXIgcj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIG4gaW4gZSlyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gcigpe31mdW5jdGlvbiBuKHQpe3ZhciBlO3JldHVybiB0PSh0KyIiKS50cmltKCkudG9Mb3dlckNhc2UoKSwoZT16LmV4ZWModCkpPyhlPXBhcnNlSW50KGVbMV0sMTYpLG5ldyBsKGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoMTUmZSk8PDR8MTUmZSwxKSk6KGU9SS5leGVjKHQpKT9pKHBhcnNlSW50KGVbMV0sMTYpKTooZT1ELmV4ZWModCkpP25ldyBsKGVbMV0sZVsyXSxlWzNdLDEpOihlPVAuZXhlYyh0KSk/bmV3IGwoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsMSk6KGU9Ty5leGVjKHQpKT9hKGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPVIuZXhlYyh0KSk/YSgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1GLmV4ZWModCkpP3UoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCwxKTooZT1qLmV4ZWModCkpP3UoZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpOLmhhc093blByb3BlcnR5KHQpP2koTlt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IGwoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgbCh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24gYSh0LGUscixuKXtyZXR1cm4gbjw9MCYmKHQ9ZT1yPU5hTiksbmV3IGwodCxlLHIsbil9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIHJ8fCh0PW4odCkpLHQ/KHQ9dC5yZ2IoKSxuZXcgbCh0LnIsdC5nLHQuYix0Lm9wYWNpdHkpKTpuZXcgbH1mdW5jdGlvbiBzKHQsZSxyLG4pe3JldHVybiAx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment