Do You Mo, Bro?

During the November in the Virgin Islands, any smooth-faced man should be ashamed. This is the month when men sprout lip fur, raise cash from sponsors, and use their facial hair to start conversations about men’s health and cancer screening. Then, at the end of the month, the men groom themselves into champions, competing in categories such as Celebrity Mo, Man of Movember, Lame Mo, Mo Class, Big Sexy Mo, and Team MoBro. The cause, which initiated in Australia in 2003 but came to the BVI in 2006, makes men proud to grow moustaches.

“BVI Movember started basically the same way that the international movement began—a couple of guys sitting in a bar talking about how they could help out,” BVI Movember Committee member Brendan Joyce said in his Scottish brogue as we sat on a picnic bench by the Nanny Cay beach, “and now it’s grown—both locally and internationally—into this huge fundraiser.” The Movember website reinforces this fact: “From 30 Mo Bros in Melbourne, Australia in 2003 to 854,288 Mo’s [worldwide] in 2011, Movember, through the power of the moustache has become a truly global movement that is changing the face of men’s health.”

BVI Movember co-founder Adam McDonnell, a Kiwi, explained that he had heard about Movember “but not in great detail” until 2006 when he was reading up about that year’s Movember on the Internet. He and colleague Matthew Owen “went to The Dove, lamenting how it would’ve been a good thing to do,” but since it was already the first of November, they assumed it was a lost cause. Enter Scott Hart, owner of The Dove. “Matt and Adam were talking at the bar about the concept of Movember,” Scott said, “and they were saying how it would be difficult to get going in the BVI. I was drawn by the charity and the irreverence of it, so I said we could do it at The Dove.” The initial team of three put up homemade signs at the restaurant and signed up men through their connections in the financial. “All of a sudden, there were 30 guys growing moustaches in the BVI,” Scott said. During that first year, in 2006, the concept of Movember was not as accepted or widespread as it is today. According to the Movember website, the cause did not reach North America until 2007, so the BVI was one of the first countries, along with New Zealand and Australia, to participate. “When we were walking around with our moustaches, it was embarrassing. It wasn’t cool,” Scott said. “It was fun, though. It was this joke that 30 people on the island were a part of.”

The first year’s moustache competition prize-giving event at the end of the month was intimate though it did have some celebrity clout. “It started out at The Dove, a very small affair,” Adam said. “But it was great,” Scott added, “Sienna Miller and Rhys Ifans happened to be having dinner at The Dove that night, so they were partying with us at the awards ceremony.”

Since that first year at The Dove, the event, like many a participant’s moustache, has grown. It moved to the upscale Frenchmans Resort for one year in 2008 then relocated to its current home at Nanny Cay beach. Last year’s End of Movember Party at Nanny Cay featured such notable judges as BVI Governor Boyd McCleary, international business magnate Sir Richard Branson, TV host Tamara Archibald-Gill, BVI Cancer Society representative Omonike Robinson-Pickering, and Nanny Cay manager Miles Sutherland-Pilch.

Adam told me that he’d contacted Sir Richard’s assistant to elicit the involvement of the celebrity mogul, who owns two British Virgin Islands. “I emailed her to see if he would be keen, and he said he was, but he couldn’t commit to it because of his busy schedule. I only told Scott [about the possibility of Branson’s participation], as he was the MC, because I wasn’t sure it would come off, and I thought it’d be a great surprise for everyone if he made it.” Sir Richard brought his catamaran, Necker Belle, over to Nanny Cay and said he could only stay about thirty to forty minutes, Adam told me, but Branson ended up staying about twice that time as “he seemed to be enjoying the occasion and was having so much fun.” Adam expressed equal excitement when talking about the involvement of the governor, who is the patron of BVI Movember Charitable Trust. Due to the governor’s involvement, Adam said, “people realize that it’s a legitimate charity and a worthwhile cause. It has given a lot of credentials to the cause, and it’s given us a responsibility that we have to live up to the trust that the Governor has placed in us.”

And that is what BVI Movember is really about: fighting prostate cancer and promoting men’s health. The funds raised originally went to the BVI Red Cross for PSA tests, Scott told me, “but the science now reveals that the test results in too many false positives, so as a group, we didn’t feel right about giving money to an unreliable test.” The Committee met to reevaluate their fund distribution and decided on several efforts, including direct funding to men who are suffering from prostate cancer in the territory. “We are going to see the money actually in action,” he said. In addition to distributing funds to cancer patients, BVI Movember Charitable Trust donated $10,000 this year to the Medical Research Council (MRC) in the United Kingdom, with the funds earmarked for prostate cancer research. In a press release, Governor McCleary said, “I am delighted to see that BVI Movember has supported the important work being carried out by the MRC and very much hope that the research will lead to more effective therapies being developed for this disease, which is so prevalent in the male population.” BVI Movember Charitable Trust also used funds to print men’s health posters which will be hung throughout the territory to raise awareness about cancer and health check-ups for men of all ages.

ADVERTISEMENT

This year’s month-long event includes several new fundraising efforts as well as the traditional festivities. Movember registration takes place on Thursday, Nov 1 at The Dove Restaurant. Participants must show up clean-shaven to pay the entry fee and get their sponsor sheets. On Saturday, Nov 3, interested parties can join in on the BVI Movember Poster Pub Crawl when MoBros and MoSistas are invited to join the member of the BVI Movember Committee in hanging posters in men’s restrooms throughout the territory while enjoying great deals on drinks as well as a buffet-style dinner at The Tamarind Club. At the BVI Crewed Yacht Show at Nanny Cay on November 6, BVI Movember will announce the Mini-Mo contest for week-long charter guests. A Willy-T fundraising day is tentatively scheduled for Nov 18. The final race of the BVI running season will raise funds for Movember with all participants required to sport either a real or fake moustache for the race/walk up Cane Garden Bay hill. The race starts at Myett’s at 4:30pm and ends with a party at Rudy’s. And, of course the Jack Daniels End of Movember Party and Moustache Competition will take place at 7pm on Friday, November 30.

Personally, this Movember marks the end of my reign as Miss Movember 2011. I look forward to passing along the sash and stache to the next deserving MoSista.

Like this article? Sign up to our newsletter!

BVI Property and Yacht
Like this article
Like FB Page
PGlmcmFtZSBzcmM9Ii8vd3d3LmZhY2Vib29rLmNvbS9wbHVnaW5zL2xpa2Vib3gucGhwP2hyZWY9aHR0cHMlM0ElMkYlMkZ3d3cuZmFjZWJvb2suY29tJTJGVmlyZ2luSXNsYW5kc1Byb3BlcnR5WWFjaHQmd2lkdGg9MTYwcHgmaGVpZ2h0PTYyJmNvbG9yc2NoZW1lPWxpZ2h0JnNob3dfZmFjZXM9ZmFsc2UmaGVhZGVyPWZhbHNlJnN0cmVhbT1mYWxzZSZzaG93X2JvcmRlcj1mYWxzZSZhcHBJZD01MDYyNzM5MjYxMTUyNzEiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOm5vbmU7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTYwcHhweDsgaGVpZ2h0OjEwMHB4OyIgYWxsb3dUcmFuc3BhcmVuY3k9InRydWUiPjwvaWZyYW1lPg==
Like this article
Subscribe to Newsletter
ARE YOU READY? GET IT NOW!
Increase more than 500% of Email Subscribers!
Your Information will never be shared with any third party.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzEnID48YSBpZD0nZ2ZfNzEnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzEnIGlkPSdnZm9ybV83MScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzEnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183MScgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83MV8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogV2hhdCBmaWVsZCBkbyB5b3Ugd29yayBpbj88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83MV8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjhhMjZmZTk3JyAgaWQ9J2Nob2ljZV83MV8yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzAnIGlkPSdsYWJlbF83MV8yXzAnPkFkbWluaXN0cmF0aW9uPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYjVlMTA1OWYnICBpZD0nY2hvaWNlXzcxXzJfMScgdGFiaW5kZXg9JzInICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfMScgaWQ9J2xhYmVsXzcxXzJfMSc+QnVzaW5lc3Mgb3duZXI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfMic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIwM2I2M2RlOCcgIGlkPSdjaG9pY2VfNzFfMl8yJyB0YWJpbmRleD0nMycgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl8yJyBpZD0nbGFiZWxfNzFfMl8yJz5FeGVjdXRpdmUvIEdlbmVyYWwgTWFuYWdlbWVudC8gRGlyZWN0b3I8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfMyc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJhZGJiMmYxZicgIGlkPSdjaG9pY2VfNzFfMl8zJyB0YWJpbmRleD0nNCcgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl8zJyBpZD0nbGFiZWxfNzFfMl8zJz5Hb3Zlcm5tZW50PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyZmViYmMyY2MnICBpZD0nY2hvaWNlXzcxXzJfNCcgdGFiaW5kZXg9JzUnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfNCcgaWQ9J2xhYmVsXzcxXzJfNCc+SGVhbHRoY2FyZTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl81Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjJlZWNhODFlJyAgaWQ9J2Nob2ljZV83MV8yXzUnIHRhYmluZGV4PSc2JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzUnIGlkPSdsYWJlbF83MV8yXzUnPkhvbWVtYWtlcjwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzFfMl82Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjU4ZDZiODE5JyAgaWQ9J2Nob2ljZV83MV8yXzYnIHRhYmluZGV4PSc3JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83MV8yXzYnIGlkPSdsYWJlbF83MV8yXzYnPkhvc3BpdGFsaXR5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83MV8yXzcnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyOTNhZDNhZjknICBpZD0nY2hvaWNlXzcxXzJfNycgdGFiaW5kZXg9JzgnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfNycgaWQ9J2xhYmVsXzcxXzJfNyc+TWlkLUxldmVsIE1hbmFnZW1lbnQ8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfOCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIyYTAzMmM4MCcgIGlkPSdjaG9pY2VfNzFfMl84JyB0YWJpbmRleD0nOScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzFfMl84JyBpZD0nbGFiZWxfNzFfMl84Jz5UcmFkZXNwZXJzb248L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcxXzJfOSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzZWYxOGNkOScgIGlkPSdjaG9pY2VfNzFfMl85JyB0YWJpbmRleD0nMTAnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcxXzJfOScgaWQ9J2xhYmVsXzcxXzJfOSc+b3RoZXI8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfNzFfMycgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV8nID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83MV8zJyA+Q29tbWVudHM8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzFfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzEnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyB0YWJpbmRleD0nMTEnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MSJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzcxIl09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzcxIl0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MSJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83MSIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzEmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzEnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3MScgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzEnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzcxJyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzcxJyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzcxJyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzcxJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzEnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzcxJz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzEsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzcxJykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzEnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzcxJykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MScpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MScpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzEnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzcxJykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzEsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzcxLCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzEnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MScpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83MScpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzcxXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzcxJ10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzEnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3MSwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzEpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzEsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzInID48YSBpZD0nZ2ZfNzInIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzInIGlkPSdnZm9ybV83MicgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzInPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183MicgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83Ml8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogV2hhdCB3YXMgeW91ciBUT1RBTCBDT01CSU5FRCBob3VzZWhvbGQgaW5jb21lIGxhc3QgeWVhcj88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83Ml8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjNlZjE4Y2Q5JyAgaWQ9J2Nob2ljZV83Ml8yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzAnIGlkPSdsYWJlbF83Ml8yXzAnPiQyMDAsMDAwIGFuZCB1cDwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjJhMDMyYzgwJyAgaWQ9J2Nob2ljZV83Ml8yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzEnIGlkPSdsYWJlbF83Ml8yXzEnPiQxNzUsMDAwIHRvICQxOTksOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyOTNhZDNhZjknICBpZD0nY2hvaWNlXzcyXzJfMicgdGFiaW5kZXg9JzMnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfMicgaWQ9J2xhYmVsXzcyXzJfMic+JDE1MCwwMDAgdG8gJDE3NCw5OTk8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfMyc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI1OGQ2YjgxOScgIGlkPSdjaG9pY2VfNzJfMl8zJyB0YWJpbmRleD0nNCcgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl8zJyBpZD0nbGFiZWxfNzJfMl8zJz4kMTI1LDAwMCB0byAkMTQ5LDk5OTwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzJfMl80Jz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjJlZWNhODFlJyAgaWQ9J2Nob2ljZV83Ml8yXzQnIHRhYmluZGV4PSc1JyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83Ml8yXzQnIGlkPSdsYWJlbF83Ml8yXzQnPiQxMDAsMDAwIHRvICQxMjQsOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzUnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyZmViYmMyY2MnICBpZD0nY2hvaWNlXzcyXzJfNScgdGFiaW5kZXg9JzYnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfNScgaWQ9J2xhYmVsXzcyXzJfNSc+JDc1LDAwMCB0byAkOTksOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzYnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYWRiYjJmMWYnICBpZD0nY2hvaWNlXzcyXzJfNicgdGFiaW5kZXg9JzcnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfNicgaWQ9J2xhYmVsXzcyXzJfNic+JDUwLDAwMCB0byAkNzQsOTk5PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Ml8yXzcnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMDNiNjNkZTgnICBpZD0nY2hvaWNlXzcyXzJfNycgdGFiaW5kZXg9JzgnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfNycgaWQ9J2xhYmVsXzcyXzJfNyc+JDI1LDAwMCB0byA0OSw5OTk8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfOCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJiNWUxMDU5ZicgIGlkPSdjaG9pY2VfNzJfMl84JyB0YWJpbmRleD0nOScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzJfMl84JyBpZD0nbGFiZWxfNzJfMl84Jz4kMTAsMDAwIHRvICQyNCw5OTk8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzcyXzJfOSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4YTI2ZmU5NycgIGlkPSdjaG9pY2VfNzJfMl85JyB0YWJpbmRleD0nMTAnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzcyXzJfOScgaWQ9J2xhYmVsXzcyXzJfOSc+JDAgdG8gJDksOTk5PC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzcyXzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzJfMycgPkNvbW1lbnRzPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzcyXzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzcyJyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzExJyBvbmNsaWNrPSdpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzIiXSl7cmV0dXJuIGZhbHNlO30gIHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MiJdPXRydWU7ICAnIG9ua2V5cHJlc3M9J2lmKCBldmVudC5rZXlDb2RlID09IDEzICl7IGlmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183MiJdKXtyZXR1cm4gZmFsc2U7fSB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzIiXT10cnVlOyAgalF1ZXJ5KCIjZ2Zvcm1fNzIiKS50cmlnZ2VyKCJzdWJtaXQiLFt0cnVlXSk7IH0nIC8+IDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2FqYXgnIHZhbHVlPSdmb3JtX2lkPTcyJmFtcDt0aXRsZT0mYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzcyJyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nNzInIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzcyJyB2YWx1ZT0nV3lKYlhTSXNJak5pTlRBek56WXdZemxoTVRBMllqUTBPV0k0WTJVM05tRTVORGhrTkRsaklsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83MicgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl83MicgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MicgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MicgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8aWZyYW1lIHN0eWxlPSdkaXNwbGF5Om5vbmU7d2lkdGg6MHB4O2hlaWdodDowcHg7JyBzcmM9J2Fib3V0OmJsYW5rJyBuYW1lPSdnZm9ybV9hamF4X2ZyYW1lXzcyJyBpZD0nZ2Zvcm1fYWpheF9mcmFtZV83Mic+VGhpcyBpZnJhbWUgY29udGFpbnMgdGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGhhbmRsZSBBSkFYIHBvd2VyZWQgR3Jhdml0eSBGb3Jtcy48L2lmcmFtZT4KICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz5qUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCQpe2dmb3JtSW5pdFNwaW5uZXIoIDcyLCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV83MicpLmxvYWQoIGZ1bmN0aW9uKCl7dmFyIGNvbnRlbnRzID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnKicpLmh0bWwoKTt2YXIgaXNfcG9zdGJhY2sgPSBjb250ZW50cy5pbmRleE9mKCdHRl9BSkFYX1BPU1RCQUNLJykgPj0gMDtpZighaXNfcG9zdGJhY2spe3JldHVybjt9dmFyIGZvcm1fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV93cmFwcGVyXzcyJyk7dmFyIGlzX2NvbmZpcm1hdGlvbiA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyNnZm9ybV9jb25maXJtYXRpb25fd3JhcHBlcl83MicpLmxlbmd0aCA+IDA7dmFyIGlzX3JlZGlyZWN0ID0gY29udGVudHMuaW5kZXhPZignZ2Zvcm1SZWRpcmVjdCgpeycpID49IDA7dmFyIGlzX2Zvcm0gPSBmb3JtX2NvbnRlbnQubGVuZ3RoID4gMCAmJiAhIGlzX3JlZGlyZWN0ICYmICEgaXNfY29uZmlybWF0aW9uO2lmKGlzX2Zvcm0pe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzInKS5odG1sKGZvcm1fY29udGVudC5odG1sKCkpO2lmKGZvcm1fY29udGVudC5oYXNDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykuYWRkQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9IGVsc2Uge2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzInKS5yZW1vdmVDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO31zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsgLyogZGVsYXkgdGhlIHNjcm9sbCBieSA1MCBtaWxsaXNlY29uZHMgdG8gZml4IGEgYnVnIGluIGNocm9tZSAqLyBqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzcyJykub2Zmc2V0KCkudG9wKTsgfSwgNTAgKTtpZih3aW5kb3dbJ2dmb3JtSW5pdERhdGVwaWNrZXInXSkge2dmb3JtSW5pdERhdGVwaWNrZXIoKTt9aWYod2luZG93WydnZm9ybUluaXRQcmljZUZpZWxkcyddKSB7Z2Zvcm1Jbml0UHJpY2VGaWVsZHMoKTt9dmFyIGN1cnJlbnRfcGFnZSA9IGpRdWVyeSgnI2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl83MicpLnZhbCgpO2dmb3JtSW5pdFNwaW5uZXIoIDcyLCAnaHR0cHM6Ly93d3cuYnZpcHJvcGVydHl5YWNodC5jb20vd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wYWdlX2xvYWRlZCcsIFs3MiwgY3VycmVudF9wYWdlXSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzcyJ10gPSBmYWxzZTt9ZWxzZSBpZighaXNfcmVkaXJlY3Qpe3ZhciBjb25maXJtYXRpb25fY29udGVudCA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJy5HRl9BSkFYX1BPU1RCQUNLJykuaHRtbCgpO2lmKCFjb25maXJtYXRpb25fY29udGVudCl7Y29uZmlybWF0aW9uX2NvbnRlbnQgPSBjb250ZW50czt9c2V0VGltZW91dChmdW5jdGlvbigpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzInKS5yZXBsYWNlV2l0aChjb25maXJtYXRpb25fY29udGVudCk7alF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2ZfNzInKS5vZmZzZXQoKS50b3ApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fY29uZmlybWF0aW9uX2xvYWRlZCcsIFs3Ml0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183MiddID0gZmFsc2U7fSwgNTApO31lbHNle2pRdWVyeSgnI2dmb3JtXzcyJykuYXBwZW5kKGNvbnRlbnRzKTtpZih3aW5kb3dbJ2dmb3JtUmVkaXJlY3QnXSkge2dmb3JtUmVkaXJlY3QoKTt9fWpRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzIsIGN1cnJlbnRfcGFnZV0pO30gKTt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBpZih0eXBlb2YgZ2ZfZ2xvYmFsID09ICd1bmRlZmluZWQnKSB2YXIgZ2ZfZ2xvYmFsID0geyJnZl9jdXJyZW5jeV9jb25maWciOnsibmFtZSI6IlUuUy4gRG9sbGFyIiwic3ltYm9sX2xlZnQiOiIkIiwic3ltYm9sX3JpZ2h0IjoiIiwic3ltYm9sX3BhZGRpbmciOiIiLCJ0aG91c2FuZF9zZXBhcmF0b3IiOiIsIiwiZGVjaW1hbF9zZXBhcmF0b3IiOiIuIiwiZGVjaW1hbHMiOjJ9LCJiYXNlX3VybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3JtcyIsIm51bWJlcl9mb3JtYXRzIjpbXSwic3Bpbm5lclVybCI6Imh0dHBzOlwvXC93d3cuYnZpcHJvcGVydHl5YWNodC5jb21cL3dwLWNvbnRlbnRcL3BsdWdpbnNcL2dyYXZpdHlmb3Jtc1wvaW1hZ2VzXC9zcGlubmVyLmdpZiJ9O2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDcyKSB7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzcyLCAxXSkgfSApOyA8L3NjcmlwdD4=
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzMnID48YSBpZD0nZ2ZfNzMnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzMnIGlkPSdnZm9ybV83MycgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzMnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183MycgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83M18yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogSG93IG1hbnkgZmFtaWx5IG1lbWJlcnMgYXJlIGxpdmluZyBpbiB5b3VyIGhvdXNlaG9sZCAoaW5jbHVkaW5nIHlvdT8pPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzNfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzczXzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzZWYxOGNkOScgIGlkPSdjaG9pY2VfNzNfMl8wJyB0YWJpbmRleD0nMScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzNfMl8wJyBpZD0nbGFiZWxfNzNfMl8wJz4xPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83M18yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMmEwMzJjODAnICBpZD0nY2hvaWNlXzczXzJfMScgdGFiaW5kZXg9JzInICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzczXzJfMScgaWQ9J2xhYmVsXzczXzJfMSc+MjwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzNfMl8yJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjkzYWQzYWY5JyAgaWQ9J2Nob2ljZV83M18yXzInIHRhYmluZGV4PSczJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83M18yXzInIGlkPSdsYWJlbF83M18yXzInPjM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzczXzJfMyc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI1OGQ2YjgxOScgIGlkPSdjaG9pY2VfNzNfMl8zJyB0YWJpbmRleD0nNCcgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzNfMl8zJyBpZD0nbGFiZWxfNzNfMl8zJz40IG9yIG1vcmU8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfNzNfMycgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV8nID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83M18zJyA+Q29tbWVudHM8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzNfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzMnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyB0YWJpbmRleD0nNScgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzczIl0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzMiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzMiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzczIl09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzczIikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03MyZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83MycgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9JzczJyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83MycgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzMnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzMnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzMnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzMnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83MycgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzMnPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQUpBWCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3MywgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzMnKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83MycpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzMnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzczJykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzczJykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83MycpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzMnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3MywgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzMsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183MyddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzczJykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzczJykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzNdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzMnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83MycpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzczLCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3Mykge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3MywgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzQnID48YSBpZD0nZ2ZfNzQnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzQnIGlkPSdnZm9ybV83NCcgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzQnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NCcgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83NF8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogQXJlIHlvdSB0aGUgaG91c2Vob2xkIHNob3BwZXIgKHBlcnNvbiByZXNwb25zaWJsZSBmb3IgcHVyY2hhc2VzIGluIHlvdXIgaG91c2Vob2xkKT88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83NF8yJz48bGkgY2xhc3M9J2djaG9pY2VfNzRfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjNlZjE4Y2Q5JyAgaWQ9J2Nob2ljZV83NF8yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NF8yXzAnIGlkPSdsYWJlbF83NF8yXzAnPlllczwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzRfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83NF8yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83NF8yXzEnIGlkPSdsYWJlbF83NF8yXzEnPk5vPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc0XzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzRfMycgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc0XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc0JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzMnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NCJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc0Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc0Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NCJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83NCIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzQmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzQnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3NCcgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzQnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc0JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc0JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc0JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc0JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzQnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc0Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzQsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc0JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzQnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc0JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NCcpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NCcpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzQnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc0JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzQsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc0LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzQnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NCcpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83NCcpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc0XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc0J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzQnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NCwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzQpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzQsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzUnID48YSBpZD0nZ2ZfNzUnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzUnIGlkPSdnZm9ybV83NScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzUnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NScgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83NV8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogSW4gdGhlIGxhc3QgMTIgbW9udGhzLCBob3cgbWFueSB0aW1lcyBoYXZlIHlvdSB0cmF2ZWxsZWQgb3ZlcnNlYXM/PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfcmFkaW8nPjx1bCBjbGFzcz0nZ2ZpZWxkX3JhZGlvJyBpZD0naW5wdXRfNzVfMic+PGxpIGNsYXNzPSdnY2hvaWNlXzc1XzJfMCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTJjOWIzYzM2ZScgIGlkPSdjaG9pY2VfNzVfMl8wJyB0YWJpbmRleD0nMScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzVfMl8wJyBpZD0nbGFiZWxfNzVfMl8wJz5ub25lPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83NV8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyODA2ZDcwYTknICBpZD0nY2hvaWNlXzc1XzJfMScgdGFiaW5kZXg9JzInICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc1XzJfMScgaWQ9J2xhYmVsXzc1XzJfMSc+MS0zPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83NV8yXzInPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyY2M1Y2YyZmQnICBpZD0nY2hvaWNlXzc1XzJfMicgdGFiaW5kZXg9JzMnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc1XzJfMicgaWQ9J2xhYmVsXzc1XzJfMic+NC02PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83NV8yXzMnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyMjc3NzA2MjMnICBpZD0nY2hvaWNlXzc1XzJfMycgdGFiaW5kZXg9JzQnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc1XzJfMycgaWQ9J2xhYmVsXzc1XzJfMyc+Ny05PC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83NV8yXzQnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyZTYxNzQ4NGUnICBpZD0nY2hvaWNlXzc1XzJfNCcgdGFiaW5kZXg9JzUnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc1XzJfNCcgaWQ9J2xhYmVsXzc1XzJfNCc+MTAgYW5kIG1vcmUgdGltZXM8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfNzVfMycgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV8nID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83NV8zJyA+UGhvbmU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzVfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzUnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyB0YWJpbmRleD0nNicgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc1Il0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzUiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzUiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzc1Il09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzc1IikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03NSZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83NScgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9Jzc1JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83NScgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzUnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzUnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzUnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzUnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83NScgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzUnPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQUpBWCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3NSwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzUnKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83NScpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzUnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc1JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc1JykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NScpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzUnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3NSwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzUsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183NSddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc1JykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzc1Jykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzVdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzUnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83NScpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc1LCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3NSkge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NSwgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzYnID48YSBpZD0nZ2ZfNzYnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzYnIGlkPSdnZm9ybV83NicgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzYnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NicgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83Nl8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogRG8geW91IG93biBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzPzwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0Xzc2XzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83Nl8yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYzliM2MzNmUnICBpZD0nY2hvaWNlXzc2XzJfMCcgdGFiaW5kZXg9JzEnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc2XzJfMCcgaWQ9J2xhYmVsXzc2XzJfMCc+WWVzPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0nZ2Nob2ljZV83Nl8yXzEnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyODA2ZDcwYTknICBpZD0nY2hvaWNlXzc2XzJfMScgdGFiaW5kZXg9JzInICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc2XzJfMScgaWQ9J2xhYmVsXzc2XzJfMSc+Tm88L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfNzZfMycgY2xhc3M9J2dmaWVsZCBnZm9ybV92YWxpZGF0aW9uX2NvbnRhaW5lciBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV8nID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF83Nl8zJyA+UGhvbmU8L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXInPjxpbnB1dCBuYW1lPSdpbnB1dF8zJyBpZD0naW5wdXRfNzZfMycgdHlwZT0ndGV4dCcgdmFsdWU9JycgLz48L2Rpdj48ZGl2IGNsYXNzPSdnZmllbGRfZGVzY3JpcHRpb24nPlRoaXMgZmllbGQgaXMgZm9yIHZhbGlkYXRpb24gcHVycG9zZXMgYW5kIHNob3VsZCBiZSBsZWZ0IHVuY2hhbmdlZC48L2Rpdj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9mb290ZXIgdG9wX2xhYmVsJz4gPGlucHV0IHR5cGU9J3N1Ym1pdCcgaWQ9J2dmb3JtX3N1Ym1pdF9idXR0b25fNzYnIGNsYXNzPSdnZm9ybV9idXR0b24gYnV0dG9uJyB2YWx1ZT0nU3VibWl0JyB0YWJpbmRleD0nMycgb25jbGljaz0naWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc2Il0pe3JldHVybiBmYWxzZTt9ICB3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzYiXT10cnVlOyAgJyBvbmtleXByZXNzPSdpZiggZXZlbnQua2V5Q29kZSA9PSAxMyApeyBpZih3aW5kb3dbImdmX3N1Ym1pdHRpbmdfNzYiXSl7cmV0dXJuIGZhbHNlO30gd2luZG93WyJnZl9zdWJtaXR0aW5nXzc2Il09dHJ1ZTsgIGpRdWVyeSgiI2dmb3JtXzc2IikudHJpZ2dlcigic3VibWl0IixbdHJ1ZV0pOyB9JyAvPiA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9hamF4JyB2YWx1ZT0nZm9ybV9pZD03NiZhbXA7dGl0bGU9JmFtcDtkZXNjcmlwdGlvbj0mYW1wO3RhYmluZGV4PTEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2lzX3N1Ym1pdF83NicgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3N1Ym1pdCcgdmFsdWU9Jzc2JyAvPgogICAgICAgICAgICAKICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdW5pcXVlX2lkJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdzdGF0ZV83NicgdmFsdWU9J1d5SmJYU0lzSWpOaU5UQXpOell3WXpsaE1UQTJZalEwT1dJNFkyVTNObUU1TkRoa05EbGpJbDA9JyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzYnIGlkPSdnZm9ybV90YXJnZXRfcGFnZV9udW1iZXJfNzYnIHZhbHVlPScwJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzYnIGlkPSdnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzYnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdnZm9ybV9maWVsZF92YWx1ZXMnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIAogICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGlmcmFtZSBzdHlsZT0nZGlzcGxheTpub25lO3dpZHRoOjBweDtoZWlnaHQ6MHB4Oycgc3JjPSdhYm91dDpibGFuaycgbmFtZT0nZ2Zvcm1fYWpheF9mcmFtZV83NicgaWQ9J2dmb3JtX2FqYXhfZnJhbWVfNzYnPlRoaXMgaWZyYW1lIGNvbnRhaW5zIHRoZSBsb2dpYyByZXF1aXJlZCB0byBoYW5kbGUgQUpBWCBwb3dlcmVkIEdyYXZpdHkgRm9ybXMuPC9pZnJhbWU+CiAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigkKXtnZm9ybUluaXRTcGlubmVyKCA3NiwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeSgnI2dmb3JtX2FqYXhfZnJhbWVfNzYnKS5sb2FkKCBmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl83NicpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfNzYnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc2JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc2JykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NicpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfNzYnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCA3NiwgJ2h0dHBzOi8vd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tL3dwLWNvbnRlbnQvcGx1Z2lucy9ncmF2aXR5Zm9ybXMvaW1hZ2VzL3NwaW5uZXIuZ2lmJyApO2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcGFnZV9sb2FkZWQnLCBbNzYsIGN1cnJlbnRfcGFnZV0pO3dpbmRvd1snZ2Zfc3VibWl0dGluZ183NiddID0gZmFsc2U7fWVsc2UgaWYoIWlzX3JlZGlyZWN0KXt2YXIgY29uZmlybWF0aW9uX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcuR0ZfQUpBWF9QT1NUQkFDSycpLmh0bWwoKTtpZighY29uZmlybWF0aW9uX2NvbnRlbnQpe2NvbmZpcm1hdGlvbl9jb250ZW50ID0gY29udGVudHM7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzc2JykucmVwbGFjZVdpdGgoY29uZmlybWF0aW9uX2NvbnRlbnQpO2pRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmXzc2Jykub2Zmc2V0KCkudG9wKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX2NvbmZpcm1hdGlvbl9sb2FkZWQnLCBbNzZdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzYnXSA9IGZhbHNlO30sIDUwKTt9ZWxzZXtqUXVlcnkoJyNnZm9ybV83NicpLmFwcGVuZChjb250ZW50cyk7aWYod2luZG93WydnZm9ybVJlZGlyZWN0J10pIHtnZm9ybVJlZGlyZWN0KCk7fX1qUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzc2LCBjdXJyZW50X3BhZ2VdKTt9ICk7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4gaWYodHlwZW9mIGdmX2dsb2JhbCA9PSAndW5kZWZpbmVkJykgdmFyIGdmX2dsb2JhbCA9IHsiZ2ZfY3VycmVuY3lfY29uZmlnIjp7Im5hbWUiOiJVLlMuIERvbGxhciIsInN5bWJvbF9sZWZ0IjoiJCIsInN5bWJvbF9yaWdodCI6IiIsInN5bWJvbF9wYWRkaW5nIjoiIiwidGhvdXNhbmRfc2VwYXJhdG9yIjoiLCIsImRlY2ltYWxfc2VwYXJhdG9yIjoiLiIsImRlY2ltYWxzIjoyfSwiYmFzZV91cmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXMiLCJudW1iZXJfZm9ybWF0cyI6W10sInNwaW5uZXJVcmwiOiJodHRwczpcL1wvd3d3LmJ2aXByb3BlcnR5eWFjaHQuY29tXC93cC1jb250ZW50XC9wbHVnaW5zXC9ncmF2aXR5Zm9ybXNcL2ltYWdlc1wvc3Bpbm5lci5naWYifTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgY3VycmVudFBhZ2Upe2lmKGZvcm1JZCA9PSA3Nikge30gfSApO2pRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9jb25kaXRpb25hbF9sb2dpYycsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGZpZWxkcywgaXNJbml0KXt9ICk7PC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPiBqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NiwgMV0pIH0gKTsgPC9zY3JpcHQ+
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzcnID48YSBpZD0nZ2ZfNzcnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzcnIGlkPSdnZm9ybV83NycgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzcnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183NycgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83N18yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogRG8geW91IG93biBvbmUgb3IgbW9yZSBib2F0cz88L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9yYWRpbyc+PHVsIGNsYXNzPSdnZmllbGRfcmFkaW8nIGlkPSdpbnB1dF83N18yJz48bGkgY2xhc3M9J2djaG9pY2VfNzdfMl8wJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MmM5YjNjMzZlJyAgaWQ9J2Nob2ljZV83N18yXzAnIHRhYmluZGV4PScxJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83N18yXzAnIGlkPSdsYWJlbF83N18yXzAnPlllczwvbGFiZWw+PC9saT48bGkgY2xhc3M9J2djaG9pY2VfNzdfMl8xJz48aW5wdXQgbmFtZT0naW5wdXRfMicgdHlwZT0ncmFkaW8nIHZhbHVlPSdnc3VydmV5MjgwNmQ3MGE5JyAgaWQ9J2Nob2ljZV83N18yXzEnIHRhYmluZGV4PScyJyAgICAvPjxsYWJlbCBmb3I9J2Nob2ljZV83N18yXzEnIGlkPSdsYWJlbF83N18yXzEnPk5vPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc3XzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzdfMycgPlBob25lPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc3XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc3JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzMnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NyJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc3Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc3Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183NyJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83NyIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzcmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzcnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3NycgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzcnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc3JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc3JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc3JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc3JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzcnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc3Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzcsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc3JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzcnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc3JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NycpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NycpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzcnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc3JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzcsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc3LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzcnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83NycpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83NycpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc3XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc3J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzcnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3NywgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzcpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzcsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzgnID48YSBpZD0nZ2ZfNzgnIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzgnIGlkPSdnZm9ybV83OCcgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzgnPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183OCcgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83OF8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogSW4gdGhlIHBhc3QgMzAgZGF5cywgaG93IG9mdGVuIGRpZCB5b3UgZGluZSBvdXQgYXQgYSByZXN0YXVyYW50PzwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0Xzc4XzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83OF8yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYzliM2MzNmUnICBpZD0nY2hvaWNlXzc4XzJfMCcgdGFiaW5kZXg9JzEnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc4XzJfMCcgaWQ9J2xhYmVsXzc4XzJfMCc+TmV2ZXI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc4XzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4MDZkNzBhOScgIGlkPSdjaG9pY2VfNzhfMl8xJyB0YWJpbmRleD0nMicgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzhfMl8xJyBpZD0nbGFiZWxfNzhfMl8xJz4xLTMgdGltZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc4XzJfMic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI0M2ExNzI2YScgIGlkPSdjaG9pY2VfNzhfMl8yJyB0YWJpbmRleD0nMycgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzhfMl8yJyBpZD0nbGFiZWxfNzhfMl8yJz40LTYgdGltZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc4XzJfMyc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI0ZmQyNTQyMScgIGlkPSdjaG9pY2VfNzhfMl8zJyB0YWJpbmRleD0nNCcgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzhfMl8zJyBpZD0nbGFiZWxfNzhfMl8zJz43LTkgdGltZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc4XzJfNCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzMmMxZDViZScgIGlkPSdjaG9pY2VfNzhfMl80JyB0YWJpbmRleD0nNScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzhfMl80JyBpZD0nbGFiZWxfNzhfMl80Jz4xMCBvciBtb3JlIHRpbWVzPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc4XzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzhfMycgPkVtYWlsPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc4XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc4JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzYnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OCJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc4Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc4Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OCJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83OCIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzgmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzgnIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3OCcgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzgnIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc4JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc4JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzgnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc4Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzgsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc4JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzgnKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc4JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzgnKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzgnKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc4JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzgsICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc4LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzgnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OCcpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83OCcpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc4XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc4J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzgnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3OCwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzgpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzgsIDFdKSB9ICk7IDwvc2NyaXB0Pg==
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlciBzdXJ2ZXkxNWZvcm1fd3JhcHBlciBnZmN0X3N0eWxpc2hfd3JhcHBlciBnZmN0X25vY29uZmxpY3Rfd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfNzknID48YSBpZD0nZ2ZfNzknIGNsYXNzPSdnZm9ybV9hbmNob3InID48L2E+PGZvcm0gbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyB0YXJnZXQ9J2dmb3JtX2FqYXhfZnJhbWVfNzknIGlkPSdnZm9ybV83OScgY2xhc3M9J3N1cnZleTE1Zm9ybSBnZmN0X3N0eWxpc2ggZ2ZjdF9ub2NvbmZsaWN0JyBhY3Rpb249Jy92aS1idmkvZG8teW91LW1vLWJyby8jZ2ZfNzknPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZm9ybV9ib2R5Jz48dWwgaWQ9J2dmb3JtX2ZpZWxkc183OScgY2xhc3M9J2dmb3JtX2ZpZWxkcyB0b3BfbGFiZWwgZm9ybV9zdWJsYWJlbF9iZWxvdyBkZXNjcmlwdGlvbl9iZWxvdyc+PGxpIGlkPSdmaWVsZF83OV8yJyBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUgZ3N1cnZleS1zdXJ2ZXktZmllbGQgJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnICA+UmVhZGVyIFN1cnZleTogSW4gdGhlIHBhc3QgMzAgZGF5cywgaG93IG9mdGVuIGRpZCB5b3UgZW50ZXJ0YWluIGd1ZXN0cyBhdCBob21lPzwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3JhZGlvJz48dWwgY2xhc3M9J2dmaWVsZF9yYWRpbycgaWQ9J2lucHV0Xzc5XzInPjxsaSBjbGFzcz0nZ2Nob2ljZV83OV8yXzAnPjxpbnB1dCBuYW1lPSdpbnB1dF8yJyB0eXBlPSdyYWRpbycgdmFsdWU9J2dzdXJ2ZXkyYzliM2MzNmUnICBpZD0nY2hvaWNlXzc5XzJfMCcgdGFiaW5kZXg9JzEnICAgIC8+PGxhYmVsIGZvcj0nY2hvaWNlXzc5XzJfMCcgaWQ9J2xhYmVsXzc5XzJfMCc+TmV2ZXI8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc5XzJfMSc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI4MDZkNzBhOScgIGlkPSdjaG9pY2VfNzlfMl8xJyB0YWJpbmRleD0nMicgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzlfMl8xJyBpZD0nbGFiZWxfNzlfMl8xJz4xLTMgdGltZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc5XzJfMic+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI0M2ExNzI2YScgIGlkPSdjaG9pY2VfNzlfMl8yJyB0YWJpbmRleD0nMycgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzlfMl8yJyBpZD0nbGFiZWxfNzlfMl8yJz40LTYgdGltZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc5XzJfMyc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTI0ZmQyNTQyMScgIGlkPSdjaG9pY2VfNzlfMl8zJyB0YWJpbmRleD0nNCcgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzlfMl8zJyBpZD0nbGFiZWxfNzlfMl8zJz43LTkgdGltZXM8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSdnY2hvaWNlXzc5XzJfNCc+PGlucHV0IG5hbWU9J2lucHV0XzInIHR5cGU9J3JhZGlvJyB2YWx1ZT0nZ3N1cnZleTIzMmMxZDViZScgIGlkPSdjaG9pY2VfNzlfMl80JyB0YWJpbmRleD0nNScgICAgLz48bGFiZWwgZm9yPSdjaG9pY2VfNzlfMl80JyBpZD0nbGFiZWxfNzlfMl80Jz4xMCBvciBtb3JlIHRpbWVzPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzc5XzMnIGNsYXNzPSdnZmllbGQgZ2Zvcm1fdmFsaWRhdGlvbl9jb250YWluZXIgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfNzlfMycgPkVtYWlsPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0Xzc5XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIC8+PC9kaXY+PGRpdiBjbGFzcz0nZ2ZpZWxkX2Rlc2NyaXB0aW9uJz5UaGlzIGZpZWxkIGlzIGZvciB2YWxpZGF0aW9uIHB1cnBvc2VzIGFuZCBzaG91bGQgYmUgbGVmdCB1bmNoYW5nZWQuPC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzc5JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgdGFiaW5kZXg9JzYnIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OSJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzc5Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzc5Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ183OSJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV83OSIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9NzkmYW1wO3RpdGxlPSZhbXA7ZGVzY3JpcHRpb249JmFtcDt0YWJpbmRleD0xJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdpc19zdWJtaXRfNzknIHZhbHVlPScxJyAvPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV9zdWJtaXQnIHZhbHVlPSc3OScgLz4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3VuaXF1ZV9pZCcgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nc3RhdGVfNzknIHZhbHVlPSdXeUpiWFNJc0lqTmlOVEF6TnpZd1l6bGhNVEEyWWpRME9XSTRZMlUzTm1FNU5EaGtORGxqSWwwPScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc5JyBpZD0nZ2Zvcm1fdGFyZ2V0X3BhZ2VfbnVtYmVyXzc5JyB2YWx1ZT0nMCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc5JyBpZD0nZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc5JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fZmllbGRfdmFsdWVzJyB2YWx1ZT0nJyAvPgogICAgICAgICAgICAKICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfNzknIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzc5Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFKQVggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggNzksICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoJyNnZm9ybV9hamF4X2ZyYW1lXzc5JykubG9hZCggZnVuY3Rpb24oKXt2YXIgY29udGVudHMgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcqJykuaHRtbCgpO3ZhciBpc19wb3N0YmFjayA9IGNvbnRlbnRzLmluZGV4T2YoJ0dGX0FKQVhfUE9TVEJBQ0snKSA+PSAwO2lmKCFpc19wb3N0YmFjayl7cmV0dXJuO312YXIgZm9ybV9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX3dyYXBwZXJfNzknKTt2YXIgaXNfY29uZmlybWF0aW9uID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnI2dmb3JtX2NvbmZpcm1hdGlvbl93cmFwcGVyXzc5JykubGVuZ3RoID4gMDt2YXIgaXNfcmVkaXJlY3QgPSBjb250ZW50cy5pbmRleE9mKCdnZm9ybVJlZGlyZWN0KCl7JykgPj0gMDt2YXIgaXNfZm9ybSA9IGZvcm1fY29udGVudC5sZW5ndGggPiAwICYmICEgaXNfcmVkaXJlY3QgJiYgISBpc19jb25maXJtYXRpb247aWYoaXNfZm9ybSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OScpLmh0bWwoZm9ybV9jb250ZW50Lmh0bWwoKSk7aWYoZm9ybV9jb250ZW50Lmhhc0NsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJykpe2pRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzknKS5hZGRDbGFzcygnZ2Zvcm1fdmFsaWRhdGlvbl9lcnJvcicpO30gZWxzZSB7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OScpLnJlbW92ZUNsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeyAvKiBkZWxheSB0aGUgc2Nyb2xsIGJ5IDUwIG1pbGxpc2Vjb25kcyB0byBmaXggYSBidWcgaW4gY2hyb21lICovIGpRdWVyeShkb2N1bWVudCkuc2Nyb2xsVG9wKGpRdWVyeSgnI2dmb3JtX3dyYXBwZXJfNzknKS5vZmZzZXQoKS50b3ApOyB9LCA1MCApO2lmKHdpbmRvd1snZ2Zvcm1Jbml0RGF0ZXBpY2tlciddKSB7Z2Zvcm1Jbml0RGF0ZXBpY2tlcigpO31pZih3aW5kb3dbJ2dmb3JtSW5pdFByaWNlRmllbGRzJ10pIHtnZm9ybUluaXRQcmljZUZpZWxkcygpO312YXIgY3VycmVudF9wYWdlID0galF1ZXJ5KCcjZ2Zvcm1fc291cmNlX3BhZ2VfbnVtYmVyXzc5JykudmFsKCk7Z2Zvcm1Jbml0U3Bpbm5lciggNzksICdodHRwczovL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbS93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzc5LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfNzknXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl83OScpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl83OScpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzc5XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzc5J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fNzknKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFs3OSwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGlmKHR5cGVvZiBnZl9nbG9iYWwgPT0gJ3VuZGVmaW5lZCcpIHZhciBnZl9nbG9iYWwgPSB7ImdmX2N1cnJlbmN5X2NvbmZpZyI6eyJuYW1lIjoiVS5TLiBEb2xsYXIiLCJzeW1ib2xfbGVmdCI6IiQiLCJzeW1ib2xfcmlnaHQiOiIiLCJzeW1ib2xfcGFkZGluZyI6IiIsInRob3VzYW5kX3NlcGFyYXRvciI6IiwiLCJkZWNpbWFsX3NlcGFyYXRvciI6Ii4iLCJkZWNpbWFscyI6Mn0sImJhc2VfdXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zIiwibnVtYmVyX2Zvcm1hdHMiOltdLCJzcGlubmVyVXJsIjoiaHR0cHM6XC9cL3d3dy5idmlwcm9wZXJ0eXlhY2h0LmNvbVwvd3AtY29udGVudFwvcGx1Z2luc1wvZ3Jhdml0eWZvcm1zXC9pbWFnZXNcL3NwaW5uZXIuZ2lmIn07alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X3JlbmRlcicsIGZ1bmN0aW9uKGV2ZW50LCBmb3JtSWQsIGN1cnJlbnRQYWdlKXtpZihmb3JtSWQgPT0gNzkpIHt9IH0gKTtqUXVlcnkoZG9jdW1lbnQpLmJpbmQoJ2dmb3JtX3Bvc3RfY29uZGl0aW9uYWxfbG9naWMnLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBmaWVsZHMsIGlzSW5pdCl7fSApOzwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2pRdWVyeShkb2N1bWVudCkudHJpZ2dlcignZ2Zvcm1fcG9zdF9yZW5kZXInLCBbNzksIDFdKSB9ICk7IDwvc2NyaXB0Pg==