Jan Sofat Waterview Villa 243

Spanish Water · Curaçao

Home For Sale

EU€ 698,000 ANƒ 1.492.489-¹¹ US$ 829,161¹

Property Details

  • Neighborhood Spanish Water
  • Country Curaçao
  • Category Single Family Homes
  • View Ocean View
  • Beds 6
  • Baths 4
  • L.Space 540 m²
  • Land 865 m²
  • Class Residential

Property Remarks

On one of the most beautiful locations of the beloved Jan Sofat is this atmospheric, luxurious and architect-built villa with a magnificent view over the Spanish Water. The entrance to the villa is on the second floor. The property is accessible by car via a remote-controlled roller gate and the entrance level is reached. Through a spacious hall, you enter the living/dining room that offers access to a spacious porch, which completely wraps around the living room. This is a true "outside living room" where you can enjoy not only the wonderful cooling trade winds, but above all the phenomenal view. On the second floor, there is also a beautiful new kitchen with all conceivable built-in appliances and a study that can also be used as a bedroom, because it is adjacent to a modern bathroom. One floor higher are the sleeping quarters, including the master bedroom with its own bathroom and suite and two beautiful bedrooms that share a bathroom. Also, on the first floor, there are two more bedrooms, a living room, a small kitchen and a covered terrace that provides access to a swimming pool with a wooden pool deck. This floor is also suitable for use as a guesthouse. The villa is in an exceptionally good state of maintenance and is, as it were, turn-key ready. Would you like to experience for yourself what this villa has to offer? Then quickly make a viewing appointment with one of our brokers! JAN SOFAT Jan Sofat is an upscale gated community, quietly located next to the Spanish Water. The resort features a 24/7 manned security gate, security rounds, and alarm response. In this residential area are many luxurious houses located on the hills, all of them benefit from the cool breeze and some of them have a spectacular view overlooking the Tafelberg and the Spanish Water. All residents have access to the communal marina and a play ground for children. Most amenities such as beaches, shops and restaurants are only minutes away and the center of Willemstad is a 15-minute drive.

Features and Amenities

  • Condition
    • Well Maintained
  • Outdoor Features
    • Landscaped
  • Appliances
    • All New!
    • Refrigerator
    • Dishwasher
    • Microwave
    • Stove
  • Furnished
    • Unfurnished
  • Parking - Type
    • Driveway
    • Concrete Paved
  • Parking - Spots
    • Ample Parking
  • Parking - Visitors
    • With Visitor Parking
  • Storage
    • Good Storage
    • Large Storage
  • Security
    • Security System
    • Security Guard
    • Security Gate
  • Air Conditioning
    • Air Conditioning
    • Split Level A/C
    • Ceiling Fans
  • Laundry
    • Laundry Room
  • Yard / Landscaping
    • Large Fenced Yard
  • Patio - Deck - Porch
    • Deck
    • Balcony
    • Porch
    • Terrace - Wrap Around
  • Near By
    • Recreational Activities
    • Restaurants
  • Swimming Pool
    • On-Site Pool
    • Inground Pool
  • Rooms
    • Kitchen
    • Living Room
    • Dining Room
    • Laundry Room
    • Maid Quarters
    • Bedroom
    • Master Bedroom
    • Laundry Room
    • Powder Room
    • Bathroom
    • Home Office
    • Storage
    • Hallway
    • Washroom
    • Veranda
  • Distinctive Features
    • Luxurious
    • Gated Community
    • Walk-In Closet
  • Location Features
    • Quiet Area

Directions

Click on the ‘directions’ button below for the directions to jan sofat waterview villa 243.
[  Directions ]

Map Location

Open
(¹) Listed Amount was converted based on recent interbank exchange rates. We do not guarantee the accuracy of these amounts.
'd.1.en.1144770'
YXJyYXkgKAogICdhbXAnID0+IGZhbHNlLAogICdsaWQnID0+ICcxMTQ0NzcwJywKICAndXFpZCcgPT4gTlVMTCwKICAncGFnZScgPT4gJ2RldGFpbCcsCiAgJ2NvbnRyb2xsZXInID0+ICdkZXRhaWwnLAogICdmdW5jdGlvbicgPT4gJ2luZGV4JywKICAncGFyYW1zJyA9PiAKICBhcnJheSAoCiAgKSwKICAndXJpJyA9PiAnL2VuL2QvMTE0NDc3MCcsCiAgJ3VyaV9iYXNlJyA9PiAnL2VuL2QvJywKICAndXJpX3BhdGgnID0+ICcvMTE0NDc3MCcsCiAgJ3VyaV9xdWVyeScgPT4gTlVMTCwKICAndXJpX2Nhbm9uaWNhbCcgPT4gTlVMTCwKICAndXJpX29yaWdpbmFsJyA9PiAnL2VuL2QvMTE0NDc3MCcsCiAgJ3VyaV9yZXF1ZXN0JyA9PiAnL2VuL2QvMTE0NDc3MCcsCiAgJ2lzVXJpSUQnID0+IHRydWUsCiAgJ2lzQ2Fub25pY2FsJyA9PiBmYWxzZSwKICAnaXNQT1NUJyA9PiBmYWxzZSwKICAnaXNYSFInID0+IDAsCiAgJ2lzSlNPTicgPT4gMCwKICAnbGFuZycgPT4gJ2VuJywKICAnY3RybCcgPT4gJ2QnLAogICdiYXNlJyA9PiAnL2VuL2QnLAogICdwYXRoJyA9PiAnJywKICAnc2VhcmNoX3R5cGUnID0+IE5VTEwsCiAgJ3F1ZXJ5X3NlZ21lbnQnID0+ICcnLAogICdzZWdtZW50cycgPT4gCiAgYXJyYXkgKAogICksCiAgJ3NlZ21lbnRDb2xzJyA9PiBOVUxMLAogICdvcHRzJyA9PiBOVUxMLAogICdzb3J0U3RyJyA9PiAnJywKICAnZGVmU29ydFN0cicgPT4gJy9oZ2EnLAogICdkYXRhJyA9PiAKICBhcnJheSAoCiAgICAnY291bnRyeScgPT4gJ0NWJywKICApLAogICdhcmdzJyA9PiAKICBhcnJheSAoCiAgKSwKICAnaHJlZl9nb2JhY2snID0+IE5VTEwsCiAgJ3NlbGZfcmVmZXJlZCcgPT4gTlVMTCwKICAncmVmZXJlZF9yZXEnID0+IE5VTEwsCiAgJ3NvcnRBcnInID0+IAogIGFycmF5ICgKICAgICdieScgPT4gJ3ByaWNlJywKICAgICdjdXJyJyA9PiAnJywKICAgICdkaXInID0+ICdkZXNjJywKICAgICdvcHRzJyA9PiAnaGdhJywKICAgICdwYWdlT2Zmc2V0JyA9PiAwLAogICAgJ3BhZ2Vfbm8nID0+IDEsCiAgICAncGVyX3BhZ2UnID0+IDEyLAogICAgJ3Jvd3MnID0+ICdhJywKICAgICdzb3J0JyA9PiAnaGlsbycsCiAgICAnc29ydFN0cicgPT4gJy9oZ2EnLAogICAgJ3N0eWxlJyA9PiAnZ3JpZCcsCiAgKSwKICAndXJpX3NvcnQnID0+ICcvZW4vZC8nLAogICdodHRwX3Jlc3BvbnNlX3N0YXR1cycgPT4gMjAwLAogICdtZXRhQXJyJyA9PiAKICBhcnJheSAoCiAgICAndGV4dCcgPT4gCiAgICBhcnJheSAoCiAgICAgICdjb3VudHJ5JyA9PiAnQ3VyYcOnYW8nLAogICAgICAnc2l0ZV9uYW1lJyA9PiAnQ0VOVFVSWSAyMSBOdW1iZXIgT25lJywKICAgICAgJ3JlYWxfZXN0YXRlJyA9PiAnUmVhbCBFc3RhdGUnLAogICAgKSwKICApLAogICdpc0Zvcm0nID0+IGZhbHNlLAogICdsQXJyJyA9PiAKICBhcnJheSAoCiAgICAnbGlkJyA9PiAnMTE0NDc3MCcsCiAgICAncmVmbm8nID0+IE5VTEwsCiAgICAnY291bnRyeScgPT4gJ0NWJywKICAgICdwY2xhc3MnID0+ICdSRVMnLAogICAgJ2V4Y2wnID0+ICcxJywKICAgICdyZWNpcCcgPT4gJzAnLAogICAgJ2Z0cmQnID0+ICcxJywKICAgICdicmFuZDEnID0+ICdDRU4nLAogICAgJ29maWQxJyA9PiAnMTAwMDM5OScsCiAgICAnYWdpZDEnID0+ICcxMDAyMTk3JywKICAgICdicmFuZDInID0+IE5VTEwsCiAgICAnb2ZpZDInID0+IE5VTEwsCiAgICAnYWdpZDInID0+IE5VTEwsCiAgICAnbGFzdHVwZGF0ZScgPT4gJzIwMjAtMDgtMDYgMTc6MTc6MDEnLAogICAgJ3N0YW1wJyA9PiAnMjAxOS0xMi0wNCAyMDoxNjowNCcsCiAgICAnYWNjb3VudHMnID0+IAogICAgYXJyYXkgKAogICAgICAnb2ZpZDEnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2Z0aWQnID0+ICcxMDAwMzk5JywKICAgICAgICAnZnR5cGUnID0+ICdPJywKICAgICAgICAnbGFuZ3MnID0+ICdFTixFUyxERSxOTCcsCiAgICAgICAgJ25hbWUnID0+ICdDRU5UVVJZIDIxICMxIFJlYWwgRXN0YXRlJywKICAgICAgICAnd3d3JyA9PiAnY2VudHVyeTIxbnVtYmVyb25lLmNvbScsCiAgICAgICAgJ2xvZ28nID0+ICcvbWF4LmNkbi9pbWFnZXMvbG9nb3MvMTAwMDM5OS8xNTB4NTAvMC5qcGcnLAogICAgICAgICdhZGRyZXNzJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAwID0+ICc2OSBDYXMgQ29yYXdlZycsCiAgICAgICAgICAxID0+ICdXaWxsZW1zdGFkIFdlc3QsIEJhbmRhIEJvdScsCiAgICAgICAgICAyID0+ICdDdXJhw6dhbycsCiAgICAgICAgKSwKICAgICAgICAncGhvbmVzJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAnb2ZmaWNlJyA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NvZGUnID0+ICc2NjMnLAogICAgICAgICAgICAnbGFiZWwnID0+ICdPZmZpY2UnLAogICAgICAgICAgICAnYWJicnYnID0+IE5VTEwsCiAgICAgICAgICAgICdjY29kZScgPT4gJyswMTEnLAogICAgICAgICAgICAndmFsdWUnID0+ICc6NTk5IDk6NzM3LTAyMDE6JywKICAgICAgICAgICAgJ3RlbCcgPT4gJzU5OTk3MzcwMjAxJywKICAgICAgICAgICAgJ3Nob3cnID0+ICcoNTk5IDkpIDczNy0wMjAxJywKICAgICAgICAgICksCiAgICAgICAgKSwKICAgICAgKSwKICAgICAgJ2FnaWQxJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdmdGlkJyA9PiAnMTAwMjE5NycsCiAgICAgICAgJ2Z0eXBlJyA9PiAnQScsCiAgICAgICAgJ29maWQnID0+ICcxMDAwMzk5JywKICAgICAgICAndGl0bGUnID0+IAogICAgICAgIGFycmF5ICgKICAgICAgICAgICdsYWJlbCcgPT4gJ1NhbGVzIEFnZW50L0NvbnN1bHRhbnQnLAogICAgICAgICksCiAgICAgICAgJ2ZuYW1lJyA9PiAnQmVuamFtaW4nLAogICAgICAgICdsbmFtZScgPT4gJ0JyZXN0JywKICAgICAgICAnZnVsbG5hbWUnID0+ICdCZW5qYW1pbiBCcmVzdCcsCiAgICAgICAgJ2VtYWlsJyA9PiAnYmVuamFtaW5AYzIxY3VyYWNhby5jb20nLAogICAgICAgICd3d3cnID0+ICdjZW50dXJ5MjFudW1iZXJvbmUuY29tJywKICAgICAgICAncGhvdG8nID0+ICcvaW1hZ2VzL2FnZW50cy8xMDAyMTk3L2YvMC5qcGcnLAogICAgICAgICdwaG9uZXMnID0+IAogICAgICAgIGFycmF5ICgKICAgICAgICAgICdvZmZpY2UnID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY29kZScgPT4gJzY2MycsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ09mZmljZScsCiAgICAgICAgICAgICdhYmJydicgPT4gTlVMTCwKICAgICAgICAgICAgJ2Njb2RlJyA9PiAnKzAxMScsCiAgICAgICAgICAgICd2YWx1ZScgPT4gJzo1OTkgOTo3MzctMDIwMTonLAogICAgICAgICAgICAndGVsJyA9PiAnNTk5OTczNzAyMDEnLAogICAgICAgICAgICAnc2hvdycgPT4gJyg1OTkgOSkgNzM3LTAyMDEnLAogICAgICAgICAgKSwKICAgICAgICAgICdtb2JpbGUnID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY29kZScgPT4gJzY3MicsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ01vYmlsZScsCiAgICAgICAgICAgICdhYmJydicgPT4gTlVMTCwKICAgICAgICAgICAgJ2Njb2RlJyA9PiAnKzAxMScsCiAgICAgICAgICAgICd2YWx1ZScgPT4gJzo1OTkgOTo1MjEtMzI4MDonLAogICAgICAgICAgICAndGVsJyA9PiAnNTk5OTUyMTMyODAnLAogICAgICAgICAgICAnc2hvdycgPT4gJyg1OTkgOSkgNTIxLTMyODAnLAogICAgICAgICAgKSwKICAgICAgICApLAogICAgICApLAogICAgKSwKICAgICd2aWRlb3MnID0+IAogICAgYXJyYXkgKAogICAgICAneW91dHViZScgPT4gJ09VMW5hdXVDa21jJywKICAgICAgJ3Z0dXJsJyA9PiBOVUxMLAogICAgKSwKICAgICdkZXRhaWxzJyA9PiAKICAgIGFycmF5ICgKICAgICAgJ0RJRF9MQUJFTCcgPT4gJ05laWdoYm9yaG9vZCcsCiAgICAgICdESURfVkFMVUUnID0+ICdTcGFuaXNoIFdhdGVyJywKICAgICAgJ0NPVU5UUllfTEFCRUwnID0+ICdDb3VudHJ5JywKICAgICAgJ0NPVU5UUllfVkFMVUUnID0+ICdDdXJhw6dhbycsCiAgICAgICdQVFlQRV9MQUJFTCcgPT4gJ0NhdGVnb3J5JywKICAgICAgJ1BUWVBFX1ZBTFVFJyA9PiAnU2luZ2xlIEZhbWlseSBIb21lcycsCiAgICAgICdQVklFV19MQUJFTCcgPT4gJ1ZpZXcnLAogICAgICAnUFZJRVdfVkFMVUUnID0+ICdPY2VhbiBWaWV3JywKICAgICAgJ0JFRFNfTEFCRUwnID0+ICdCZWRzJywKICAgICAgJ0JFRFNfVkFMVUUnID0+IDYsCiAgICAgICdCQVRIU19MQUJFTCcgPT4gJ0JhdGhzJywKICAgICAgJ0JBVEhTX1ZBTFVFJyA9PiA0LAogICAgICAnTFNQQUNFX0xBQkVMJyA9PiAnTC5TcGFjZScsCiAgICAgICdMU1BBQ0VfVkFMVUUnID0+ICc1NDAgbcKyJywKICAgICAgJ0xBUkVBX0xBQkVMJyA9PiAnTGFuZCcsCiAgICAgICdMQVJFQV9WQUxVRScgPT4gJzg2NSBtwrInLAogICAgICAnUENMQVNTX0xBQkVMJyA9PiAnQ2xhc3MnLAogICAgICAnUENMQVNTX1ZBTFVFJyA9PiAnUmVzaWRlbnRpYWwnLAogICAgICAnSFRNTCcgPT4gJzxsaT48Yj5OZWlnaGJvcmhvb2Q8L2I+IFNwYW5pc2ggV2F0ZXI8L2xpPgo8bGk+PGI+Q291bnRyeTwvYj4gQ3VyYcOnYW88L2xpPgo8bGk+PGI+Q2F0ZWdvcnk8L2I+IFNpbmdsZSBGYW1pbHkgSG9tZXM8L2xpPgo8bGk+PGI+VmlldzwvYj4gT2NlYW4gVmlldzwvbGk+CjxsaT48Yj5CZWRzPC9iPiA2PC9saT4KPGxpPjxiPkJhdGhzPC9iPiA0PC9saT4KPGxpPjxiPkwuU3BhY2U8L2I+IDU0MCBtwrI8L2xpPgo8bGk+PGI+TGFuZDwvYj4gODY1IG3CsjwvbGk+CjxsaT48Yj5DbGFzczwvYj4gUmVzaWRlbnRpYWw8L2xpPicsCiAgICApLAogICAgJ2ZlYXR1cmVzJyA9PiAnCjxsaT48Yj5Db25kaXRpb248L2I+PHNwYW4+PHVsPjxsaT5XZWxsIE1haW50YWluZWQ8L2xpPjwvdWw+PC9zcGFuPjwvbGk+CjxsaT48Yj5PdXRkb29yIEZlYXR1cmVzPC9iPjxzcGFuPjx1bD48bGk+TGFuZHNjYXBlZDwvbGk+PC91bD48L3NwYW4+PC9saT4KPGxpPjxiPkFwcGxpYW5jZXM8L2I+PHNwYW4+PHVsPjxsaT5BbGwgTmV3ITwvbGk+PGxpPlJlZnJpZ2VyYXRvcjwvbGk+PGxpPkRpc2h3YXNoZXI8L2xpPjxsaT5NaWNyb3dhdmU8L2xpPjxsaT5TdG92ZTwvbGk+PC91bD48L3NwYW4+PC9saT4KPGxpPjxiPkZ1cm5pc2hlZDwvYj48c3Bhbj48dWw+PGxpPlVuZnVybmlzaGVkPC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+UGFya2luZyAtIFR5cGU8L2I+PHNwYW4+PHVsPjxsaT5Ecml2ZXdheTwvbGk+PGxpPkNvbmNyZXRlIFBhdmVkPC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+UGFya2luZyAtIFNwb3RzPC9iPjxzcGFuPjx1bD48bGk+QW1wbGUgUGFya2luZzwvbGk+PC91bD48L3NwYW4+PC9saT4KPGxpPjxiPlBhcmtpbmcgLSBWaXNpdG9yczwvYj48c3Bhbj48dWw+PGxpPldpdGggVmlzaXRvciBQYXJraW5nPC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+U3RvcmFnZTwvYj48c3Bhbj48dWw+PGxpPkdvb2QgU3RvcmFnZTwvbGk+PGxpPkxhcmdlIFN0b3JhZ2U8L2xpPjwvdWw+PC9zcGFuPjwvbGk+CjxsaT48Yj5TZWN1cml0eTwvYj48c3Bhbj48dWw+PGxpPlNlY3VyaXR5IFN5c3RlbTwvbGk+PGxpPlNlY3VyaXR5IEd1YXJkPC9saT48bGk+U2VjdXJpdHkgR2F0ZTwvbGk+PC91bD48L3NwYW4+PC9saT4KPGxpPjxiPkFpciBDb25kaXRpb25pbmc8L2I+PHNwYW4+PHVsPjxsaT5BaXIgQ29uZGl0aW9uaW5nPC9saT48bGk+U3BsaXQgTGV2ZWwgQS9DPC9saT48bGk+Q2VpbGluZyBGYW5zPC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+TGF1bmRyeTwvYj48c3Bhbj48dWw+PGxpPkxhdW5kcnkgUm9vbTwvbGk+PC91bD48L3NwYW4+PC9saT4KPGxpPjxiPllhcmQgLyBMYW5kc2NhcGluZzwvYj48c3Bhbj48dWw+PGxpPkxhcmdlIEZlbmNlZCBZYXJkPC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+UGF0aW8gLSBEZWNrIC0gUG9yY2g8L2I+PHNwYW4+PHVsPjxsaT5EZWNrPC9saT48bGk+QmFsY29ueTwvbGk+PGxpPlBvcmNoPC9saT48bGk+VGVycmFjZSAtIFdyYXAgQXJvdW5kPC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+TmVhciBCeTwvYj48c3Bhbj48dWw+PGxpPlJlY3JlYXRpb25hbCBBY3Rpdml0aWVzPC9saT48bGk+UmVzdGF1cmFudHM8L2xpPjwvdWw+PC9zcGFuPjwvbGk+CjxsaT48Yj5Td2ltbWluZyBQb29sPC9iPjxzcGFuPjx1bD48bGk+T24tU2l0ZSBQb29sPC9saT48bGk+SW5ncm91bmQgUG9vbDwvbGk+PC91bD48L3NwYW4+PC9saT4KPGxpPjxiPlJvb21zPC9iPjxzcGFuPjx1bD48bGk+S2l0Y2hlbjwvbGk+PGxpPkxpdmluZyBSb29tPC9saT48bGk+RGluaW5nIFJvb208L2xpPjxsaT5MYXVuZHJ5IFJvb208L2xpPjxsaT5NYWlkIFF1YXJ0ZXJzPC9saT48bGk+QmVkcm9vbTwvbGk+PGxpPk1hc3RlciBCZWRyb29tPC9saT48bGk+TGF1bmRyeSBSb29tPC9saT48bGk+UG93ZGVyIFJvb208L2xpPjxsaT5CYXRocm9vbTwvbGk+PGxpPkhvbWUgT2ZmaWNlPC9saT48bGk+U3RvcmFnZTwvbGk+PGxpPkhhbGx3YXk8L2xpPjxsaT5XYXNocm9vbTwvbGk+PGxpPlZlcmFuZGE8L2xpPjwvdWw+PC9zcGFuPjwvbGk+CjxsaT48Yj5EaXN0aW5jdGl2ZSBGZWF0dXJlczwvYj48c3Bhbj48dWw+PGxpPkx1eHVyaW91czwvbGk+PGxpPkdhdGVkIENvbW11bml0eTwvbGk+PGxpPldhbGstSW4gQ2xvc2V0PC9saT48L3VsPjwvc3Bhbj48L2xpPgo8bGk+PGI+TG9jYXRpb24gRmVhdHVyZXM8L2I+PHNwYW4+PHVsPjxsaT5RdWlldCBBcmVhPC9saT48L3VsPjwvc3Bhbj48L2xpPicsCiAgICAncmVtYXJrcycgPT4gJ09uIG9uZSBvZiB0aGUgbW9zdCBiZWF1dGlmdWwgbG9jYXRpb25zIG9mIHRoZSBiZWxvdmVkIEphbiBTb2ZhdCBpcyB0aGlzIGF0bW9zcGhlcmljLCBsdXh1cmlvdXMgYW5kIGFyY2hpdGVjdC1idWlsdCB2aWxsYSB3aXRoIGEgbWFnbmlmaWNlbnQgdmlldyBvdmVyIHRoZSBTcGFuaXNoIFdhdGVyLiAKClRoZSBlbnRyYW5jZSB0byB0aGUgdmlsbGEgaXMgb24gdGhlIHNlY29uZCBmbG9vci4gVGhlIHByb3BlcnR5IGlzIGFjY2Vzc2libGUgYnkgY2FyIHZpYSBhIHJlbW90ZS1jb250cm9sbGVkIHJvbGxlciBnYXRlIGFuZCB0aGUgZW50cmFuY2UgbGV2ZWwgaXMgcmVhY2hlZC4gCgpUaHJvdWdoIGEgc3BhY2lvdXMgaGFsbCwgeW91IGVudGVyIHRoZSBsaXZpbmcvZGluaW5nIHJvb20gdGhhdCBvZmZlcnMgYWNjZXNzIHRvIGEgc3BhY2lvdXMgcG9yY2gsIHdoaWNoIGNvbXBsZXRlbHkgd3JhcHMgYXJvdW5kIHRoZSBsaXZpbmcgcm9vbS4gVGhpcyBpcyBhIHRydWUgIm91dHNpZGUgbGl2aW5nIHJvb20iIHdoZXJlIHlvdSBjYW4gZW5qb3kgbm90IG9ubHkgdGhlIHdvbmRlcmZ1bCBjb29saW5nIHRyYWRlIHdpbmRzLCBidXQgYWJvdmUgYWxsIHRoZSBwaGVub21lbmFsIHZpZXcuCgpPbiB0aGUgc2Vjb25kIGZsb29yLCB0aGVyZSBpcyBhbHNvIGEgYmVhdXRpZnVsIG5ldyBraXRjaGVuIHdpdGggYWxsIGNvbmNlaXZhYmxlIGJ1aWx0LWluIGFwcGxpYW5jZXMgYW5kIGEgc3R1ZHkgdGhhdCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgYmVkcm9vbSwgYmVjYXVzZSBpdCBpcyBhZGphY2VudCB0byBhIG1vZGVybiBiYXRocm9vbS4gT25lIGZsb29yIGhpZ2hlciBhcmUgdGhlIHNsZWVwaW5nIHF1YXJ0ZXJzLCBpbmNsdWRpbmcgdGhlIG1hc3RlciBiZWRyb29tIHdpdGggaXRzIG93biBiYXRocm9vbSBhbmQgc3VpdGUgYW5kIHR3byBiZWF1dGlmdWwgYmVkcm9vbXMgdGhhdCBzaGFyZSBhIGJhdGhyb29tLgoKQWxzbywgb24gdGhlIGZpcnN0IGZsb29yLCB0aGVyZSBhcmUgdHdvIG1vcmUgYmVkcm9vbXMsIGEgbGl2aW5nIHJvb20sIGEgc21hbGwga2l0Y2hlbiBhbmQgYSBjb3ZlcmVkIHRlcnJhY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gYSBzd2ltbWluZyBwb29sIHdpdGggYSB3b29kZW4gcG9vbCBkZWNrLiBUaGlzIGZsb29yIGlzIGFsc28gc3VpdGFibGUgZm9yIHVzZSBhcyBhIGd1ZXN0aG91c2UuCgpUaGUgdmlsbGEgaXMgaW4gYW4gZXhjZXB0aW9uYWxseSBnb29kIHN0YXRlIG9mIG1haW50ZW5hbmNlIGFuZCBpcywgYXMgaXQgd2VyZSwgdHVybi1rZXkgcmVhZHkuIAoKV291bGQgeW91IGxpa2UgdG8gZXhwZXJpZW5jZSBmb3IgeW91cnNlbGYgd2hhdCB0aGlzIHZpbGxhIGhhcyB0byBvZmZlcj8gVGhlbiBxdWlja2x5IG1ha2UgYSB2aWV3aW5nIGFwcG9pbnRtZW50IHdpdGggb25lIG9mIG91ciBicm9rZXJzIQoKPHU+SkFOIFNPRkFUPC91PgpKYW4gU29mYXQgaXMgYW4gdXBzY2FsZSBnYXRlZCBjb21tdW5pdHksIHF1aWV0bHkgbG9jYXRlZCBuZXh0IHRvIHRoZSBTcGFuaXNoIFdhdGVyLiBUaGUgcmVzb3J0IGZlYXR1cmVzIGEgMjQvNyBtYW5uZWQgc2VjdXJpdHkgZ2F0ZSwgc2VjdXJpdHkgcm91bmRzLCBhbmQgYWxhcm0gcmVzcG9uc2UuIEluIHRoaXMgcmVzaWRlbnRpYWwgYXJlYSBhcmUgbWFueSBsdXh1cmlvdXMgaG91c2VzIGxvY2F0ZWQgb24gdGhlIGhpbGxzLCBhbGwgb2YgdGhlbSBiZW5lZml0IGZyb20gdGhlIGNvb2wgYnJlZXplIGFuZCBzb21lIG9mIHRoZW0gaGF2ZSBhIHNwZWN0YWN1bGFyIHZpZXcgb3Zlcmxvb2tpbmcgdGhlIFRhZmVsYmVyZyBhbmQgdGhlIFNwYW5pc2ggV2F0ZXIuIEFsbCByZXNpZGVudHMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGNvbW11bmFsIG1hcmluYSBhbmQgYSBwbGF5IGdyb3VuZCBmb3IgY2hpbGRyZW4uIE1vc3QgYW1lbml0aWVzIHN1Y2ggYXMgYmVhY2hlcywgc2hvcHMgYW5kIHJlc3RhdXJhbnRzIGFyZSBvbmx5IG1pbnV0ZXMgYXdheSBhbmQgdGhlIGNlbnRlciBvZiBXaWxsZW1zdGFkIGlzIGEgMTUtbWludXRlIGRyaXZlLicsCiAgICAncmVudGFsaW5mbycgPT4gJycsCiAgICAnZGlyZWN0aW9ucycgPT4gJ0NsaWNrIG9uIHRoZSDigJhkaXJlY3Rpb25z4oCZIGJ1dHRvbiBiZWxvdyBmb3IgdGhlIGRpcmVjdGlvbnMgdG8gamFuIHNvZmF0IHdhdGVydmlldyB2aWxsYSAyNDMuIDxicj5bIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9kaXIvQ3VyYSVDMyVBN2FvJTJCSW50ZXJuYXRpb25hbCUyQkFpcnBvcnQlMkMlMkJDdXJhJUMzJUE3YW8vMTIuMDgzOTk4ODcxMTMzMzUwMCwtNjguODUwNzkyNjQ2NDA4MDgwMC9AMTIuMTQwNzAxMywtNjguOTY1ODM4MywxM3oiIHRhcmdldD0iX2JsYW5rIj48aSBjbGFzcz0iZmEgZmEtZ2xvYmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+Jm5ic3A7RGlyZWN0aW9uczwvYT4gXScsCiAgICAnZGlzY2xvc3VyZXMnID0+ICcnLAogICAgJ21ldGEnID0+IAogICAgYXJyYXkgKAogICAgICAnbGlkJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ01MUycsCiAgICAgICAgJ3ZhbHVlJyA9PiAnMTE0NDc3MCcsCiAgICAgICAgJ3Nob3cnID0+ICdNTFMgMTE0NDc3MCcsCiAgICAgICksCiAgICAgICdyZWZubycgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnbGFiZWwnID0+ICdSZWYjJywKICAgICAgKSwKICAgICAgJ2NvdW50cnknID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2NvZGUnID0+ICdDVicsCiAgICAgICAgJ2xhYmVsJyA9PiAnQ291bnRyeScsCiAgICAgICAgJ3ZhbHVlJyA9PiAnQ3VyYcOnYW8nLAogICAgICApLAogICAgICAncGNsYXNzJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdjb2RlJyA9PiAnUkVTJywKICAgICAgICAnbGFiZWwnID0+ICdQcm9wZXJ0eSBDbGFzcycsCiAgICAgICAgJ2xhYmVsMicgPT4gJ0NsYXNzJywKICAgICAgICAndmFsdWUnID0+ICdSZXNpZGVudGlhbCcsCiAgICAgICksCiAgICAgICdleGNsJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ0V4Y2x1c2l2ZScsCiAgICAgICAgJ3ZhbHVlJyA9PiAnMScsCiAgICAgICksCiAgICAgICdmdHJkJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ0ZlYXR1cmVkJywKICAgICAgICAndmFsdWUnID0+ICcxJywKICAgICAgKSwKICAgICAgJ3BodGNudCcgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAndmFsdWUnID0+ICczMicsCiAgICAgICksCiAgICAgICdzdGF0dXMnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2NvZGUnID0+ICdBJywKICAgICAgICAnbGFiZWwnID0+ICdMaXN0aW5nIFN0YXR1cycsCiAgICAgICAgJ2xhYmVsMicgPT4gJ1N0YXR1cycsCiAgICAgICAgJ3ZhbHVlJyA9PiAnQWN0aXZlJywKICAgICAgICAndmFsdWUyJyA9PiAnJywKICAgICAgKSwKICAgICAgJ3NldG9wdCcgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAndmFsdWUyJyA9PiAnJywKICAgICAgKSwKICAgICAgJ2NhdGVnb3J5JyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdjb2RlJyA9PiAnNDQ4JywKICAgICAgICAnbGFiZWwnID0+ICdQcm9wZXJ0eSBDYXRlZ29yeScsCiAgICAgICAgJ2xhYmVsMicgPT4gJ0NhdGVnb3J5JywKICAgICAgICAndmFsdWUnID0+ICdTaW5nbGUgRmFtaWx5IEhvbWVzJywKICAgICAgICAndmFsdWUyJyA9PiAnSG9tZScsCiAgICAgICksCiAgICAgICd0cmFucycgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnY29kZScgPT4gJ01TJywKICAgICAgICAnbGFiZWwnID0+ICdUcmFuc2FjdGlvbiBUeXBlJywKICAgICAgICAnbGFiZWwyJyA9PiAnVHJhbnNhY3Rpb24nLAogICAgICAgICd2YWx1ZScgPT4gJ0ZvciBTYWxlJywKICAgICAgICAndmFsdWUyJyA9PiAnU2FsZScsCiAgICAgICksCiAgICAgICdwcmljZScgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnY29kZScgPT4gJzgyOTE2MC44MCcsCiAgICAgICAgJ2xhYmVsJyA9PiAnQXNraW5nIFByaWNlJywKICAgICAgICAnbGFiZWwyJyA9PiAnUHJpY2UnLAogICAgICAgICd2YWx1ZScgPT4gJ0VV4oKsIDY5OCwwMDAnLAogICAgICApLAogICAgICAnem9uZScgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnY29kZScgPT4gJzEwMDA2JywKICAgICAgICAnbGFiZWwnID0+ICdBcmVhJywKICAgICAgICAndmFsdWUnID0+ICdTcGFuaXNoIFdhdGVyJywKICAgICAgKSwKICAgICAgJ2RpZCcgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnY29kZScgPT4gJzEwMDA2JywKICAgICAgICAnbGFiZWwnID0+ICdOZWlnaGJvcmhvb2QnLAogICAgICAgICd2YWx1ZScgPT4gJ1NwYW5pc2ggV2F0ZXInLAogICAgICApLAogICAgICAnZ2xhdCcgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAndmFsdWUnID0+ICcxMi4wODM5OTg4NzExMzMzNTAwJywKICAgICAgKSwKICAgICAgJ2dsbmcnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ3ZhbHVlJyA9PiAnLTY4Ljg1MDc5MjY0NjQwODA4MDAnLAogICAgICApLAogICAgICAncm9vbXMnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2NvZGUnID0+ICc2JywKICAgICAgICAnbGFiZWwnID0+ICdSb29tcycsCiAgICAgICAgJ3ZhbHVlJyA9PiA2LAogICAgICApLAogICAgICAnYmVkcycgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnY29kZScgPT4gJzYnLAogICAgICAgICdsYWJlbCcgPT4gJ0JlZHJvb21zJywKICAgICAgICAnbGFiZWwyJyA9PiAnQmVkcycsCiAgICAgICAgJ3ZhbHVlJyA9PiA2LAogICAgICApLAogICAgICAnYmF0aHMnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2NvZGUnID0+ICc0LjAnLAogICAgICAgICdsYWJlbCcgPT4gJ0JhdGhyb29tcycsCiAgICAgICAgJ2xhYmVsMicgPT4gJ0JhdGhzJywKICAgICAgICAndmFsdWUnID0+IDQsCiAgICAgICksCiAgICAgICdsc3BhY2UnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2NvZGUnID0+ICc1NDAuMDAwMDAwMDAwMDAwJywKICAgICAgICAnbGFiZWwnID0+ICdMaXZpbmcgU3BhY2UnLAogICAgICAgICdsYWJlbDInID0+ICdMLlNwYWNlJywKICAgICAgICAndmFsdWUnID0+ICc1NDAgbcKyJywKICAgICAgKSwKICAgICAgJ2xhcmVhJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdjb2RlJyA9PiAnODY1LjAwMDAwMDAwMDAwMCcsCiAgICAgICAgJ2xhYmVsJyA9PiAnTGFuZCBBcmVhJywKICAgICAgICAnbGFiZWwyJyA9PiAnTGFuZCcsCiAgICAgICAgJ3ZhbHVlJyA9PiAnODY1IG3CsicsCiAgICAgICksCiAgICAgICdwdmlldycgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnY29kZScgPT4gJzQzMycsCiAgICAgICAgJ2xhYmVsJyA9PiAnUHJvcGVydHkgVmlldycsCiAgICAgICAgJ2xhYmVsMicgPT4gJ1ZpZXcnLAogICAgICAgICd2YWx1ZScgPT4gJ09jZWFuIFZpZXcnLAogICAgICAgICd2YWx1ZTInID0+ICdPY2VhbicsCiAgICAgICksCiAgICAgICdjaXR5JyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ05laWdoYm9yaG9vZCcsCiAgICAgICAgJ3ZhbHVlJyA9PiAnJywKICAgICAgKSwKICAgICAgJ3N0YXRlJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ0FyZWEnLAogICAgICAgICd2YWx1ZScgPT4gJycsCiAgICAgICksCiAgICAgICd0aXRsZScgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAndmFsdWUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MycsCiAgICAgICksCiAgICAgICdkaXN0cmljdCcgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAndmFsdWUnID0+ICcxMDAwNicsCiAgICAgICksCiAgICAgICdjdXJyJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICd2YWx1ZScgPT4gJ0VVUicsCiAgICAgICksCiAgICAgICd2aWRlby10b3VyJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ1ZpcnR1YWwgVG91cicsCiAgICAgICAgJ2xhYmVsMicgPT4gJ1ZpZGVvJywKICAgICAgICAndmFsdWUnID0+IDEsCiAgICAgICksCiAgICAgICdwb29sJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ1N3aW1taW5nIFBvb2wnLAogICAgICAgICdsYWJlbDInID0+ICdQb29sJywKICAgICAgICAndmFsdWUnID0+IDEsCiAgICAgICksCiAgICAgICdfaWQnID0+ICcxMTQ0NzcwJywKICAgICAgJ3NlY3Rpb24nID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ3ZhbHVlJyA9PiAnbWxzJywKICAgICAgKSwKICAgICAgJ2xvY2FsaXR5JyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICd2YWx1ZScgPT4gTlVMTCwKICAgICAgKSwKICAgICAgJ3JlZ2lvbicgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAndmFsdWUnID0+ICdTcGFuaXNoIFdhdGVyJywKICAgICAgKSwKICAgICksCiAgICAnaXNfc29sZCcgPT4gZmFsc2UsCiAgICAnc29sZF9sYWJlbCcgPT4gJycsCiAgICAnaGVhZGVycycgPT4gCiAgICBhcnJheSAoCiAgICAgICdnYWxsZXJ5JyA9PiAnUGhvdG8gR2FsbGVyeScsCiAgICAgICdtYXBsb2MnID0+ICdNYXAgTG9jYXRpb24nLAogICAgICAnbWFwc2F0JyA9PiAnU2F0ZWxpdGUgVmlldycsCiAgICAgICd2aWRlb3MnID0+ICdWaWRlbycsCiAgICAgICd2dG91cnMnID0+ICdWaXJ0dWFsIFRvdXInLAogICAgICAnZGlyZWN0aW9ucycgPT4gJ0RpcmVjdGlvbnMnLAogICAgICAnZGV0YWlscycgPT4gJ1Byb3BlcnR5IERldGFpbHMnLAogICAgICAnZmVhdHVyZXMnID0+ICdGZWF0dXJlcyBhbmQgQW1lbml0aWVzJywKICAgICAgJ2RpYWdub3N0aWNzJyA9PiAnRW5lcmd5IFBlcmZvcm1hbmNlJywKICAgICAgJ3JlbWFya3MnID0+ICdQcm9wZXJ0eSBSZW1hcmtzJywKICAgICAgJ2Rpc2Nsb3N1cmVzJyA9PiAnRGlzY2xvc3VyZXMnLAogICAgICAnc2ltaWxhcicgPT4gJ1NpbWlsYXIgUHJvcGVydGllcycsCiAgICAgICdmZWF0dXJlZCcgPT4gJ0ZlYXR1cmVkIFByb3BlcnRpZXMnLAogICAgICAnYWdlbnQnID0+ICdBZ2VudCBEZXRhaWxzJywKICAgICAgJ3JlbnRhbGluZm8nID0+ICdSZW50YWwgSW5mb3JtYXRpb24nLAogICAgKSwKICAgICdoZWFkaW5nJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMnLAogICAgJ3N1YmhlYWRpbmcnID0+ICdTcGFuaXNoIFdhdGVyIMK3IEN1cmHDp2FvJywKICAgICdpZHNoZWFkaW5nJyA9PiAnTUxTIyAxMTQ0NzcwJywKICAgICdidXR0b25zJyA9PiAKICAgIGFycmF5ICgKICAgICAgJ2dlbmVyYWwnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVsJyA9PiAnQ29udGFjdCBVcycsCiAgICAgICAgJ2hyZWYnID0+ICcvZW4vYy9jb250YWN0LXVzLzExNDQ3NzAnLAogICAgICApLAogICAgICAnaW5xdWlyeScgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnbGFiZWwnID0+ICdJbnF1aXJ5JywKICAgICAgICAnaHJlZicgPT4gJy9lbi9jL2lucXVpcnkvMTE0NDc3MCcsCiAgICAgICksCiAgICAgICdzZW5kdG8nID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVsJyA9PiAnU2VuZCB0bycsCiAgICAgICAgJ2hyZWYnID0+ICcvZW4vYy9zZW5kLzExNDQ3NzAnLAogICAgICApLAogICAgICAnYWxlcnQnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVsJyA9PiAnQWxlcnQnLAogICAgICAgICdocmVmJyA9PiAnL2VuL2MvYWxlcnQvMTE0NDc3MCcsCiAgICAgICksCiAgICAgICdvcHRpbicgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnbGFiZWwnID0+ICdOZXdzbGV0dGVyIFNpZ24tdXAnLAogICAgICAgICdocmVmJyA9PiAnL2VuL2MvbmV3c2xldHRlci8xMTQ0NzcwJywKICAgICAgKSwKICAgICAgJ2ZhdnMnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVsJyA9PiAnRmF2b3JpdGUnLAogICAgICAgICdocmVmJyA9PiAnL2VuL2MvZmF2b3JpdGVzLzExNDQ3NzAnLAogICAgICApLAogICAgICAnc2hhcmUnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVsJyA9PiAnU2hhcmUnLAogICAgICAgICdocmVmJyA9PiBOVUxMLAogICAgICApLAogICAgICAncGRmJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ1BERicsCiAgICAgICAgJ2hyZWYnID0+ICcvZW4vYS9kb3dubG9hZC8xMTQ0NzcwLnBkZj92MTU5NjczNDIyMScsCiAgICAgICksCiAgICAgICdzYXZlZmF2JyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbF9vZmYnID0+ICdTYXZlJywKICAgICAgICAnbGFiZWxfb24nID0+ICdTYXZlZCEnLAogICAgICApLAogICAgICAnZ29iYWNrJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdsYWJlbCcgPT4gJ0dvIEJhY2snLAogICAgICAgICdocmVmJyA9PiAnL2VuL2QvamFuLXNvZmF0LXdhdGVydmlldy12aWxsYS0yNDMtaG9tZS1mb3Itc2FsZS1jdXJhY2FvLTExNDQ3NzAnLAogICAgICApLAogICAgICAncHJpbnQnID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVsJyA9PiAnUHJpbnQnLAogICAgICAgICdocmVmJyA9PiBOVUxMLAogICAgICApLAogICAgKSwKICAgICdwYWdlbGluaycgPT4gCiAgICBhcnJheSAoCiAgICAgICdsYWJlbCcgPT4gJ0dvIEJhY2snLAogICAgICAnaHJlZicgPT4gJy9lbi9kL2phbi1zb2ZhdC13YXRlcnZpZXctdmlsbGEtMjQzLWhvbWUtZm9yLXNhbGUtY3VyYWNhby0xMTQ0NzcwJywKICAgICksCiAgICAnYWdlbnRzJyA9PiAKICAgIGFycmF5ICgKICAgICAgMSA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdjb3VydGVzeU9mJyA9PiBmYWxzZSwKICAgICAgICAnY29tcGFueScgPT4gCiAgICAgICAgYXJyYXkgKAogICAgICAgICAgJ2JyYW5kJyA9PiAnQ0VOVFVSWSAyMScsCiAgICAgICAgICAnbGVnYWwnID0+ICc8c3Bhbj4jMTwvc3Bhbj4gPHNwYW4+UmVhbCBFc3RhdGU8L3NwYW4+JywKICAgICAgICAgICdsb2dvJyA9PiAnL2Fzc2V0cy9pbWFnZXMvdHBsL2NlbnR1cnktMjEtbG9nby5zdmcnLAogICAgICAgICAgJ2xvZ29fYWx0JyA9PiAnQ0VOVFVSWSAyMSAjMSBSZWFsIEVzdGF0ZSwgQ3VyYSZjY2VkaWw7YW8nLAogICAgICAgICksCiAgICAgICAgJ3RpdGxlJyA9PiAnU2FsZXMgQWdlbnQvQ29uc3VsdGFudCcsCiAgICAgICAgJ2Z1bGxuYW1lJyA9PiAnQmVuamFtaW4gQnJlc3QnLAogICAgICAgICdwaG90bycgPT4gJy9pbWFnZXMvYWdlbnRzLzEwMDIxOTcvZi8wLmpwZycsCiAgICAgICAgJ3Bob3RvX2FsdCcgPT4gJ0JlbmphbWluIEJyZXN0IC0gU2FsZXMgQWdlbnQvQ29uc3VsdGFudCwgQ0VOVFVSWSAyMSAjMSBSZWFsIEVzdGF0ZScsCiAgICAgICAgJ3Bob25lcycgPT4gCiAgICAgICAgYXJyYXkgKAogICAgICAgICAgJ29mZmljZScgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdpY29uJyA9PiAnZmEtdm9sdW1lLWNvbnRyb2wtcGhvbmUnLAogICAgICAgICAgICAnbGFiZWwnID0+ICdPZmZpY2UnLAogICAgICAgICAgICAndGl0bGUnID0+ICdPZmZpY2UnLAogICAgICAgICAgICAndGVsJyA9PiAnNTk5OTczNzAyMDEnLAogICAgICAgICAgICAnc2hvdycgPT4gJyg1OTkgOSkgNzM3LTAyMDEnLAogICAgICAgICAgKSwKICAgICAgICAgICdtb2JpbGUnID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnaWNvbicgPT4gJ2ZhLW1vYmlsZScsCiAgICAgICAgICAgICdsYWJlbCcgPT4gJ01vYmlsZScsCiAgICAgICAgICAgICd0aXRsZScgPT4gJ01vYmlsZScsCiAgICAgICAgICAgICd0ZWwnID0+ICc1OTk5NTIxMzI4MCcsCiAgICAgICAgICAgICdzaG93JyA9PiAnKDU5OSA5KSA1MjEtMzI4MCcsCiAgICAgICAgICApLAogICAgICAgICksCiAgICAgICAgJ2VtYWlsJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAnaWNvbicgPT4gJ2ZhLWVudmVsb3BlJywKICAgICAgICAgICdsYWJlbCcgPT4gJ0VtYWlsJywKICAgICAgICAgICd0aXRsZScgPT4gJ2VtYWlsIEJlbmphbWluIEJyZXN0JywKICAgICAgICAgICdzaG93JyA9PiAnYmVuamFtaW5AYzIxY3VyYWNhby5jb20nLAogICAgICAgICAgJ2xpbmsnID0+ICcjJywKICAgICAgICApLAogICAgICAgICd2b2lwJyA9PiBOVUxMLAogICAgICAgICdzb2NpYWwnID0+IE5VTEwsCiAgICAgICksCiAgICApLAogICAgJ3ByaWNlcycgPT4gCiAgICBhcnJheSAoCiAgICAgICdhc2tpbmcnID0+ICdFVeKCrCA2OTgsMDAwJywKICAgICAgJ290aGVycycgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnQU5HJyA9PiAnQU7GkiAxLjQ5Mi40ODktPHN1cD7CuTwvc3VwPsK5JywKICAgICAgICAnVVNEJyA9PiAnVVMkIDgyOSwxNjHCuScsCiAgICAgICksCiAgICAgICdjbGFzcycgPT4gJycsCiAgICAgICdwb3N0Zml4JyA9PiAnJywKICAgICAgJ2V4dHJhJyA9PiBmYWxzZSwKICAgICksCiAgICAnaXRlbXByb3AnID0+IAogICAgYXJyYXkgKAogICAgICAnYWRkcmVzcycgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnc3RyZWV0QWRkcmVzcycgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzJywKICAgICAgICAnYWRkcmVzc0xvY2FsaXR5JyA9PiAnJywKICAgICAgICAnYWRkcmVzc1JlZ2lvbicgPT4gJ1NwYW5pc2ggV2F0ZXInLAogICAgICAgICdhZGRyZXNzQ291bnRyeScgPT4gJ0N1cmHDp2FvJywKICAgICAgKSwKICAgICAgJ29mZmVyJyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdwcmljZScgPT4gJzgyOTE2MC44MCcsCiAgICAgICAgJ3ByaWNlQ3VycmVuY3knID0+ICdFVVInLAogICAgICAgICdwcmljZVZhbGlkVW50aWwnID0+ICcyMDIwLTExLTA4VDA4OjQwOjM3KzAwMDAnLAogICAgICAgICd1cmwnID0+ICdodHRwczovL2NlbnR1cnkyMW51bWJlcm9uZS5jb20vZW4vYy9pbnF1aXJ5LzExNDQ3NzAnLAogICAgICAgICd2YWxpZEZyb20nID0+ICcyMDE5LTEyLTA0VDEyOjAwJywKICAgICAgICAnYXZhaWxhYmlsaXR5JyA9PiAnaHR0cDovL3NjaGVtYS5vcmcvSW5TdG9jaycsCiAgICAgICksCiAgICAgICdwcm9kdWN0JyA9PiAKICAgICAgYXJyYXkgKAogICAgICAgICdza3UnID0+ICdSRVMxMTQ0NzcwJywKICAgICAgICAncHJvZHVjdElEJyA9PiAnMTE0NDc3MCcsCiAgICAgICAgJ25hbWUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MycsCiAgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiAnT24gb25lIG9mIHRoZSBtb3N0IGJlYXV0aWZ1bCBsb2NhdGlvbnMgb2YgdGhlIGJlbG92ZWQgamFuIHNvZmF0IGlzIHRoaXMgYXRtb3NwaGVyaWMsIGx1eHVyaW91cyBhbmQgYXJjaGl0ZWN0LWJ1aWx0IHZpbGxhIHdpdGggYSBtYWduaWZpY2VudCB2aWV3IG92ZXIgdGhlIHNwYW5pc2ggd2F0ZXIuIFRoZSBlbnRyYW5jZSB0byB0aGUgdmlsbGEgaXMgb24gdGhlIHNlY29uZCBmbG9vci4gVGhlIHByb3BlcnR5IGlzIGFjY2Vzc2libGUgYnkgY2FyIHZpYSBhIHJlbW90ZS1jb250cm9sbGVkIHJvbGxlciBnYXRlIGFuZCB0aGUgZW50cmFuY2UgbGV2ZWwgaXMgcmVhY2hlZC4gVGhyb3VnaCBhIHNwYWNpb3VzIGhhbGwsIHlvdSBlbnRlciB0aGUgbGl2aW5nL2RpbmluZyByb29tIHRoYXQgb2ZmZXJzIGFjY2VzcyB0byBhIHNwYWNpb3VzIHBvcmNoLCB3aGljaCBjb21wbGV0ZWx5IHdyYXBzIGFyb3VuZCB0aGUgbGl2aW5nIHJvb20uIFRoaXMgaXMgYSB0cnVlICJvdXRzaWRlIGxpdmluZyByb29tIiB3aGVyZSB5b3UgY2FuIGVuam95IG5vdCBvbmx5IHRoZSB3b25kZXJmdWwgY29vbGluZyB0cmFkZSB3aW5kcywgYnV0IGFib3ZlIGFsbCB0aGUgcGhlbm9tZW5hbCB2aWV3LiBPbiB0aGUgc2Vjb25kIGZsb29yLCB0aGVyZSBpcyBhbHNvIGEgYmVhdXRpZnVsIG5ldyBraXRjaGVuIHdpdGggYWxsIGNvbmNlaXZhYmxlIGJ1aWx0LWluIGFwcGxpYW5jZXMgYW5kIGEgc3R1ZHkgdGhhdCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgYmVkcm9vbSwgYmVjYXVzZSBpdCBpcyBhZGphY2VudCB0byBhIG1vZGVybiBiYXRocm9vbS4gT25lIGZsb29yIGhpZ2hlciBhcmUgdGhlIHNsZWVwaW5nIHF1YXJ0ZXJzLCBpbmNsdWRpbmcgdGhlIG1hc3RlciBiZWRyb29tIHdpdGggaXRzIG93biBiYXRocm9vbSBhbmQgc3VpdGUgYW5kIHR3byBiZWF1dGlmdWwgYmVkcm9vbXMgdGhhdCBzaGFyZSBhIGJhdGhyb29tLiBBbHNvLCBvbiB0aGUgZmlyc3QgZmxvb3IsIHRoZXJlIGFyZSB0d28gbW9yZSBiZWRyb29tcywgYSBsaXZpbmcgcm9vbSwgYSBzbWFsbCBraXRjaGVuIGFuZCBhIGNvdmVyZWQgdGVycmFjZSB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byBhIHN3aW1taW5nIHBvb2wgd2l0aCBhIHdvb2RlbiBwb29sIGRlY2suIFRoaXMgZmxvb3IgaXMgYWxzbyBzdWl0YWJsZSBmb3IgdXNlIGFzIGEgZ3Vlc3Rob3VzZS4gVGhlIHZpbGxhIGlzIGluIGFuIGV4Y2VwdGlvbmFsbHkgZ29vZCBzdGF0ZSBvZiBtYWludGVuYW5jZSBhbmQgaXMsIGFzIGl0IHdlcmUsIHR1cm4ta2V5IHJlYWR5LiBXb3VsZCB5b3UgbGlrZSB0byBleHBlcmllbmNlIGZvciB5b3Vyc2VsZiB3aGF0IHRoaXMgdmlsbGEgaGFzIHRvIG9mZmVyPyBUaGVuIHF1aWNrbHkgbWFrZSBhIHZpZXdpbmcgYXBwb2ludG1lbnQgd2l0aCBvbmUgb2Ygb3VyIGJyb2tlcnMhIEphbiBzb2ZhdCBqYW4gc29mYXQgaXMgYW4gdXBzY2FsZSBnYXRlZCBjb21tdW5pdHksIHF1aWV0bHkgbG9jYXRlZCBuZXh0IHRvIHRoZSBzcGFuaXNoIHdhdGVyLiBUaGUgcmVzb3J0IGZlYXR1cmVzIGEgMjQvNyBtYW5uZWQgc2VjdXJpdHkgZ2F0ZSwgc2VjdXJpdHkgcm91bmRzLCBhbmQgYWxhcm0gcmVzcG9uc2UuIEluIHRoaXMgcmVzaWRlbnRpYWwgYXJlYSBhcmUgbWFueSBsdXh1cmlvdXMgaG91c2VzIGxvY2F0ZWQgb24gdGhlIGhpbGxzLCBhbGwgb2YgdGhlbSBiZW5lZml0IGZyb20gdGhlIGNvb2wgYnJlZXplIGFuZCBzb21lIG9mIHRoZW0gaGF2ZSBhIHNwZWN0YWN1bGFyIHZpZXcgb3Zlcmxvb2tpbmcgdGhlIHRhZmVsYmVyZyBhbmQgdGhlIHNwYW5pc2ggd2F0ZXIuIEFsbCByZXNpZGVudHMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGNvbW11bmFsIG1hcmluYSBhbmQgYSBwbGF5IGdyb3VuZCBmb3IgY2hpbGRyZW4uIE1vc3QgYW1lbml0aWVzIHN1Y2ggYXMgYmVhY2hlcywgc2hvcHMgYW5kIHJlc3RhdXJhbnRzIGFyZSBvbmx5IG1pbnV0ZXMgYXdheSBhbmQgdGhlIGNlbnRlciBvZiB3aWxsZW1zdGFkIGlzIGEgMTUtbWludXRlIGRyaXZlLicsCiAgICAgICAgJ3VybCcgPT4gJ2h0dHBzOi8vY2VudHVyeTIxbnVtYmVyb25lLmNvbS9lbi9kLzExNDQ3NzAnLAogICAgICAgICdpbWFnZScgPT4gJ2h0dHBzOi8vY2VudHVyeTIxbnVtYmVyb25lLmNvbS9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL3hsZy8wLmpwZycsCiAgICAgICAgJ29mZmVycycgPT4gCiAgICAgICAgYXJyYXkgKAogICAgICAgICAgJ3ByaWNlJyA9PiAnODI5MTYwLjgwJywKICAgICAgICAgICdwcmljZUN1cnJlbmN5JyA9PiAnRVVSJywKICAgICAgICAgICdwcmljZVZhbGlkVW50aWwnID0+ICcyMDIwLTExLTA4VDA4OjQwOjM3KzAwMDAnLAogICAgICAgICAgJ3VybCcgPT4gJ2h0dHBzOi8vY2VudHVyeTIxbnVtYmVyb25lLmNvbS9lbi9jL2lucXVpcnkvMTE0NDc3MCcsCiAgICAgICAgICAndmFsaWRGcm9tJyA9PiAnMjAxOS0xMi0wNFQxMjowMCcsCiAgICAgICAgICAnYXZhaWxhYmlsaXR5JyA9PiAnaHR0cDovL3NjaGVtYS5vcmcvSW5TdG9jaycsCiAgICAgICAgKSwKICAgICAgICAnYnJhbmQnID0+IAogICAgICAgIGFycmF5ICgKICAgICAgICAgICduYW1lJyA9PiAnQ0VOVFVSWSAyMScsCiAgICAgICAgKSwKICAgICAgICAnc2VsbGVyJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAnbGVnYWxOYW1lJyA9PiAnQ0VOVFVSWSAyMSAjMSBSZWFsIEVzdGF0ZScsCiAgICAgICAgICAnbG9nbycgPT4gJ2h0dHBzOi8vY2VudHVyeTIxbnVtYmVyb25lLmNvbS9tbHMuY2RuL2ltYWdlcy9sb2dvcy8xMDAwMzk5LzE1MHg1MC5qcGcnLAogICAgICAgICAgJ2VtcGxveWVlJyA9PiAnQmVuamFtaW4gQnJlc3QnLAogICAgICAgICAgJ3RlbGVwaG9uZScgPT4gJyg1OTkgOSkgNzM3LTAyMDEnLAogICAgICAgICAgJ3VybCcgPT4gJ2h0dHA6Ly9jZW50dXJ5MjFudW1iZXJvbmUuY29tJywKICAgICAgICApLAogICAgICAgICdhZGRpdGlvbmFsUHJvcGVydHknID0+IAogICAgICAgIGFycmF5ICgKICAgICAgICAgIDAgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICduYW1lJyA9PiAnQ291bnRyeScsCiAgICAgICAgICAgICd2YWx1ZScgPT4gJ0N1cmHDp2FvJywKICAgICAgICAgICksCiAgICAgICAgICAxID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnbmFtZScgPT4gJ1Byb3BlcnR5IENsYXNzJywKICAgICAgICAgICAgJ3ZhbHVlJyA9PiAnUmVzaWRlbnRpYWwnLAogICAgICAgICAgKSwKICAgICAgICAgIDIgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICduYW1lJyA9PiAnUHJvcGVydHkgQ2F0ZWdvcnknLAogICAgICAgICAgICAndmFsdWUnID0+ICdTaW5nbGUgRmFtaWx5IEhvbWVzJywKICAgICAgICAgICksCiAgICAgICAgICAzID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnbmFtZScgPT4gJ1RyYW5zYWN0aW9uIFR5cGUnLAogICAgICAgICAgICAndmFsdWUnID0+ICdGb3IgU2FsZScsCiAgICAgICAgICApLAogICAgICAgICAgNCA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ25hbWUnID0+ICdQcm9wZXJ0eSBWaWV3JywKICAgICAgICAgICAgJ3ZhbHVlJyA9PiAnT2NlYW4gVmlldycsCiAgICAgICAgICApLAogICAgICAgICAgNSA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ25hbWUnID0+ICdCZWRyb29tcycsCiAgICAgICAgICAgICd2YWx1ZScgPT4gNiwKICAgICAgICAgICksCiAgICAgICAgICA2ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnbmFtZScgPT4gJ0JhdGhyb29tcycsCiAgICAgICAgICAgICd2YWx1ZScgPT4gNCwKICAgICAgICAgICksCiAgICAgICAgICA3ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnbmFtZScgPT4gJ0xpdmluZyBTcGFjZScsCiAgICAgICAgICAgICd2YWx1ZScgPT4gJzU0MCBtwrInLAogICAgICAgICAgKSwKICAgICAgICAgIDggPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICduYW1lJyA9PiAnTGFuZCBBcmVhJywKICAgICAgICAgICAgJ3ZhbHVlJyA9PiAnODY1IG3CsicsCiAgICAgICAgICApLAogICAgICAgICksCiAgICAgICksCiAgICAgICdldmVudCcgPT4gCiAgICAgIGFycmF5ICgKICAgICAgICAnbmFtZScgPT4gJ0ZvciBTYWxlOiBTaW5nbGUgRmFtaWx5IEhvbWVzIC0gLCBDdXJhJmNjZWRpbDthbycsCiAgICAgICAgJ2xvY2F0aW9uJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAnbmFtZScgPT4gJ1NpbmdsZSBGYW1pbHkgSG9tZXMnLAogICAgICAgICAgJ2FkZHJlc3MnID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnc3RyZWV0QWRkcmVzcycgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzJywKICAgICAgICAgICAgJ2FkZHJlc3NMb2NhbGl0eScgPT4gJycsCiAgICAgICAgICAgICdhZGRyZXNzUmVnaW9uJyA9PiAnU3BhbmlzaCBXYXRlcicsCiAgICAgICAgICAgICdhZGRyZXNzQ291bnRyeScgPT4gJ0N1cmHDp2FvJywKICAgICAgICAgICksCiAgICAgICAgKSwKICAgICAgICAnb2ZmZXJzJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAncHJpY2UnID0+ICc4MjkxNjAuODAnLAogICAgICAgICAgJ3ByaWNlQ3VycmVuY3knID0+ICdFVVInLAogICAgICAgICAgJ3ByaWNlVmFsaWRVbnRpbCcgPT4gJzIwMjAtMTEtMDhUMDg6NDA6MzcrMDAwMCcsCiAgICAgICAgICAndXJsJyA9PiAnaHR0cHM6Ly9jZW50dXJ5MjFudW1iZXJvbmUuY29tL2VuL2MvaW5xdWlyeS8xMTQ0NzcwJywKICAgICAgICAgICd2YWxpZEZyb20nID0+ICcyMDE5LTEyLTA0VDEyOjAwJywKICAgICAgICAgICdhdmFpbGFiaWxpdHknID0+ICdodHRwOi8vc2NoZW1hLm9yZy9JblN0b2NrJywKICAgICAgICApLAogICAgICAgICdpbWFnZScgPT4gJ2h0dHBzOi8vY2VudHVyeTIxbnVtYmVyb25lLmNvbS9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL3hsZy8wLmpwZycsCiAgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiAnT24gb25lIG9mIHRoZSBtb3N0IGJlYXV0aWZ1bCBsb2NhdGlvbnMgb2YgdGhlIGJlbG92ZWQgamFuIHNvZmF0IGlzIHRoaXMgYXRtb3NwaGVyaWMsIGx1eHVyaW91cyBhbmQgYXJjaGl0ZWN0LWJ1aWx0IHZpbGxhIHdpdGggYSBtYWduaWZpY2VudCB2aWV3IG92ZXIgdGhlIHNwYW5pc2ggd2F0ZXIuIFRoZSBlbnRyYW5jZSB0byB0aGUgdmlsbGEgaXMgb24gdGhlIHNlY29uZCBmbG9vci4gVGhlIHByb3BlcnR5IGlzIGFjY2Vzc2libGUgYnkgY2FyIHZpYSBhIHJlbW90ZS1jb250cm9sbGVkIHJvbGxlciBnYXRlIGFuZCB0aGUgZW50cmFuY2UgbGV2ZWwgaXMgcmVhY2hlZC4gVGhyb3VnaCBhIHNwYWNpb3VzIGhhbGwsIHlvdSBlbnRlciB0aGUgbGl2aW5nL2RpbmluZyByb29tIHRoYXQgb2ZmZXJzIGFjY2VzcyB0byBhIHNwYWNpb3VzIHBvcmNoLCB3aGljaCBjb21wbGV0ZWx5IHdyYXBzIGFyb3VuZCB0aGUgbGl2aW5nIHJvb20uIFRoaXMgaXMgYSB0cnVlICJvdXRzaWRlIGxpdmluZyByb29tIiB3aGVyZSB5b3UgY2FuIGVuam95IG5vdCBvbmx5IHRoZSB3b25kZXJmdWwgY29vbGluZyB0cmFkZSB3aW5kcywgYnV0IGFib3ZlIGFsbCB0aGUgcGhlbm9tZW5hbCB2aWV3LiBPbiB0aGUgc2Vjb25kIGZsb29yLCB0aGVyZSBpcyBhbHNvIGEgYmVhdXRpZnVsIG5ldyBraXRjaGVuIHdpdGggYWxsIGNvbmNlaXZhYmxlIGJ1aWx0LWluIGFwcGxpYW5jZXMgYW5kIGEgc3R1ZHkgdGhhdCBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgYmVkcm9vbSwgYmVjYXVzZSBpdCBpcyBhZGphY2VudCB0byBhIG1vZGVybiBiYXRocm9vbS4gT25lIGZsb29yIGhpZ2hlciBhcmUgdGhlIHNsZWVwaW5nIHF1YXJ0ZXJzLCBpbmNsdWRpbmcgdGhlIG1hc3RlciBiZWRyb29tIHdpdGggaXRzIG93biBiYXRocm9vbSBhbmQgc3VpdGUgYW5kIHR3byBiZWF1dGlmdWwgYmVkcm9vbXMgdGhhdCBzaGFyZSBhIGJhdGhyb29tLiBBbHNvLCBvbiB0aGUgZmlyc3QgZmxvb3IsIHRoZXJlIGFyZSB0d28gbW9yZSBiZWRyb29tcywgYSBsaXZpbmcgcm9vbSwgYSBzbWFsbCBraXRjaGVuIGFuZCBhIGNvdmVyZWQgdGVycmFjZSB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byBhIHN3aW1taW5nIHBvb2wgd2l0aCBhIHdvb2RlbiBwb29sIGRlY2suIFRoaXMgZmxvb3IgaXMgYWxzbyBzdWl0YWJsZSBmb3IgdXNlIGFzIGEgZ3Vlc3Rob3VzZS4gVGhlIHZpbGxhIGlzIGluIGFuIGV4Y2VwdGlvbmFsbHkgZ29vZCBzdGF0ZSBvZiBtYWludGVuYW5jZSBhbmQgaXMsIGFzIGl0IHdlcmUsIHR1cm4ta2V5IHJlYWR5LiBXb3VsZCB5b3UgbGlrZSB0byBleHBlcmllbmNlIGZvciB5b3Vyc2VsZiB3aGF0IHRoaXMgdmlsbGEgaGFzIHRvIG9mZmVyPyBUaGVuIHF1aWNrbHkgbWFrZSBhIHZpZXdpbmcgYXBwb2ludG1lbnQgd2l0aCBvbmUgb2Ygb3VyIGJyb2tlcnMhIEphbiBzb2ZhdCBqYW4gc29mYXQgaXMgYW4gdXBzY2FsZSBnYXRlZCBjb21tdW5pdHksIHF1aWV0bHkgbG9jYXRlZCBuZXh0IHRvIHRoZSBzcGFuaXNoIHdhdGVyLiBUaGUgcmVzb3J0IGZlYXR1cmVzIGEgMjQvNyBtYW5uZWQgc2VjdXJpdHkgZ2F0ZSwgc2VjdXJpdHkgcm91bmRzLCBhbmQgYWxhcm0gcmVzcG9uc2UuIEluIHRoaXMgcmVzaWRlbnRpYWwgYXJlYSBhcmUgbWFueSBsdXh1cmlvdXMgaG91c2VzIGxvY2F0ZWQgb24gdGhlIGhpbGxzLCBhbGwgb2YgdGhlbSBiZW5lZml0IGZyb20gdGhlIGNvb2wgYnJlZXplIGFuZCBzb21lIG9mIHRoZW0gaGF2ZSBhIHNwZWN0YWN1bGFyIHZpZXcgb3Zlcmxvb2tpbmcgdGhlIHRhZmVsYmVyZyBhbmQgdGhlIHNwYW5pc2ggd2F0ZXIuIEFsbCByZXNpZGVudHMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGNvbW11bmFsIG1hcmluYSBhbmQgYSBwbGF5IGdyb3VuZCBmb3IgY2hpbGRyZW4uIE1vc3QgYW1lbml0aWVzIHN1Y2ggYXMgYmVhY2hlcywgc2hvcHMgYW5kIHJlc3RhdXJhbnRzIGFyZSBvbmx5IG1pbnV0ZXMgYXdheSBhbmQgdGhlIGNlbnRlciBvZiB3aWxsZW1zdGFkIGlzIGEgMTUtbWludXRlIGRyaXZlLicsCiAgICAgICAgJ3N0YXJ0RGF0ZScgPT4gJzIwMTktMTItMDRUMTI6MDAnLAogICAgICAgICdlbmREYXRlJyA9PiAnMjAyMC0xMS0wOFQwODo0MDozNyswMDAwJywKICAgICAgICAndXJsJyA9PiAnaHR0cHM6Ly9jZW50dXJ5MjFudW1iZXJvbmUuY29tL2VuL2QvamFuLXNvZmF0LXdhdGVydmlldy12aWxsYS0yNDMtaG9tZS1mb3Itc2FsZS1jdXJhY2FvLTExNDQ3NzAnLAogICAgICAgICdwZXJmb3JtZXInID0+IAogICAgICAgIGFycmF5ICgKICAgICAgICAgICduYW1lJyA9PiAnQ0VOVFVSWSAyMSAjMSBSZWFsIEVzdGF0ZScsCiAgICAgICAgKSwKICAgICAgKSwKICAgICksCiAgICAnbWFwJyA9PiAKICAgIGFycmF5ICgKICAgICAgJ2xhdCcgPT4gJzEyLjA4Mzk5ODg3MTEzMzM1MDAnLAogICAgICAnbG5nJyA9PiAnLTY4Ljg1MDc5MjY0NjQwODA4MDAnLAogICAgICAnY29vcmRzJyA9PiAnMTIuMDgzOTk4ODcxMTMzMzUwMCwtNjguODUwNzkyNjQ2NDA4MDgwMCcsCiAgICAgICdkaXJlY3Rpb25zJyA9PiAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2Rpci9DdXJhJUMzJUE3YW8lMkJJbnRlcm5hdGlvbmFsJTJCQWlycG9ydCUyQyUyQkN1cmElQzMlQTdhby8xMi4wODM5OTg4NzExMzMzNTAwLC02OC44NTA3OTI2NDY0MDgwODAwL0AxMi4xNDA3MDEzLC02OC45NjU4MzgzLDEzeicsCiAgICApLAogICAgJ21lZGlhJyA9PiAKICAgIGFycmF5ICgKICAgICAgJ2dhbGxlcnknID0+IAogICAgICBhcnJheSAoCiAgICAgICAgJ2xhYmVscycgPT4gCiAgICAgICAgYXJyYXkgKAogICAgICAgICAgJ3ByZXYnID0+ICdQcmV2aW91cycsCiAgICAgICAgICAnbmV4dCcgPT4gJ05leHQnLAogICAgICAgICAgJ25vX3Bob3RvcycgPT4gJ1NvcnJ5LiBObyBQaG90b3MgQXZhbGFpYmxlLicsCiAgICAgICAgKSwKICAgICAgICAncGhvdG9zJyA9PiAKICAgICAgICBhcnJheSAoCiAgICAgICAgICAwID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMC5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDEgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMiknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8xLmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMiA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygzKScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzIuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAzID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDQpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMy5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDQgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoNSknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi80LmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgNSA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0Myg2KScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzUuanBnJywKICAgICAgICAgICksCiAgICAgICAgICA2ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDcpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvNi5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDcgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoOCknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi83LmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgOCA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0Myg5KScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzguanBnJywKICAgICAgICAgICksCiAgICAgICAgICA5ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDEwKScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzkuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAxMCA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygxMSknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8xMC5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDExID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDEyKScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzExLmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMTIgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMTMpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMTIuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAxMyA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygxNCknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8xMy5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDE0ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDE1KScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzE0LmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMTUgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMTYpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMTUuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAxNiA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygxNyknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8xNi5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDE3ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDE4KScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzE3LmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMTggPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMTkpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMTguanBnJywKICAgICAgICAgICksCiAgICAgICAgICAxOSA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygyMCknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8xOS5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDIwID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDIxKScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzIwLmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMjEgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMjIpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMjEuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAyMiA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygyMyknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8yMi5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDIzID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDI0KScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzIzLmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMjQgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMjUpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMjQuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAyNSA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygyNiknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8yNS5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDI2ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDI3KScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzI2LmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMjcgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMjgpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMjcuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAyOCA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygyOSknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8yOC5qcGcnLAogICAgICAgICAgKSwKICAgICAgICAgIDI5ID0+IAogICAgICAgICAgYXJyYXkgKAogICAgICAgICAgICAnY2FwdGlvbicgPT4gJyoqKiBjb21pbmcgc29vbiAqKionLAogICAgICAgICAgICAndGl0bGVfc2FmZScgPT4gJ0phbiBTb2ZhdCBXYXRlcnZpZXcgVmlsbGEgMjQzKDMwKScsCiAgICAgICAgICAgICdzcmMnID0+ICcvbWxzLmNkbi9pbWFnZXMvbGlzdGluZ3MvMTE0NDc3MC9mLzI5LmpwZycsCiAgICAgICAgICApLAogICAgICAgICAgMzAgPT4gCiAgICAgICAgICBhcnJheSAoCiAgICAgICAgICAgICdjYXB0aW9uJyA9PiAnKioqIGNvbWluZyBzb29uICoqKicsCiAgICAgICAgICAgICd0aXRsZV9zYWZlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMoMzEpJywKICAgICAgICAgICAgJ3NyYycgPT4gJy9tbHMuY2RuL2ltYWdlcy9saXN0aW5ncy8xMTQ0NzcwL2YvMzAuanBnJywKICAgICAgICAgICksCiAgICAgICAgICAzMSA9PiAKICAgICAgICAgIGFycmF5ICgKICAgICAgICAgICAgJ2NhcHRpb24nID0+ICcqKiogY29taW5nIHNvb24gKioqJywKICAgICAgICAgICAgJ3RpdGxlX3NhZmUnID0+ICdKYW4gU29mYXQgV2F0ZXJ2aWV3IFZpbGxhIDI0MygzMiknLAogICAgICAgICAgICAnc3JjJyA9PiAnL21scy5jZG4vaW1hZ2VzL2xpc3RpbmdzLzExNDQ3NzAvZi8zMS5qcGcnLAogICAgICAgICAgKSwKICAgICAgICApLAogICAgICApLAogICAgICAnbWFwbG9jJyA9PiAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkP3BiPSExbTE4ITFtMTIhMW0zITFkMTUwNjMuNjk2NDA2ODghMmQtNjguODUwNzkyNjQ2NDA4MDghM2QxMi4wODM5OTg4NzExMzMzNSEybTMhMWYwITJmMCEzZjAhM20yITFpMTAyNCEyaTc2OCE0ZjEzLjEhM20zITFtMiExczB4MCUzQTB4MCEyek1UTENzRFVuTURJdU5DSk9JRFk0d3JBMU1TY3dNaTQ1SWxjITVlMCEzbTIhMXNlbiEyc2NhITR2MTU5Njg3NjAzNzA2MyE1bTIhMXNlbiEyc2NhJywKICAgICAgJ3ZpZGVvcycgPT4gJ08nLAogICAgICAndnRvdXJzJyA9PiBmYWxzZSwKICAgICksCiAgKSwKICAnZVRhZycgPT4gJ2QuMS5lbi4xMTQ0NzcwJywKICAnbWF4QWdlJyA9PiAxNDQwMCwKICAnbWF4RGVmSG91cnMnID0+IDQsCiAgJ2VUYWdBcnInID0+IAogIGFycmF5ICgKICAgICdpY2lkJyA9PiAndXMnLAogICAgJ3RocmVhdCcgPT4gMSwKICAgICdyb2JvdCcgPT4gMCwKICAgICdsYW5nJyA9PiAnZW4nLAogICAgJ2FjY3RJZCcgPT4gJzEwMDAzOTknLAogICAgJ2xpZCcgPT4gJzExNDQ3NzAnLAogICAgJ2xhc3R1cGRhdGUnID0+IDE1OTY3MzQyMjEsCiAgICAnc3RyaW5nJyA9PiAnZC4xLmVuLjExNDQ3NzAnLAogICAgJ21heEFnZScgPT4gMTQ0MDAsCiAgICAnbWF4RGVmSG91cnMnID0+IDQsCiAgKSwKICAnTWV0YUluZm8nID0+IAogIGFycmF5ICgKICAgICdzaXRlX25hbWUnID0+ICdDRU5UVVJZIDIxIE51bWJlciBPbmUnLAogICAgJ3RpdGxlJyA9PiAnSmFuIFNvZmF0IFdhdGVydmlldyBWaWxsYSAyNDMgLSBIb21lIEZvciBTYWxlICBDdXJhw6dhbyB8IENlbnR1cnkgMjEgQ3VyYcOnYW8gUmVhbCBFc3RhdGUnLAogICAgJ2Rlc2NyaXB0aW9uJyA9PiAnT24gb25lIG9mIHRoZSBtb3N0IGJlYXV0aWZ1bCBsb2NhdGlvbnMgb2YgdGhlIGJlbG92ZWQgamFuIHNvZmF0IGlzIHRoaXMgYXRtb3NwaGVyaWMsIGx1eHVyaW91cyBhbmQgYXJjaGl0ZWN0LWJ1aWx0IHZpbGxhIHdpdGggYSBtYWduaWZpY2VudCB2aWV3IG92ZXIgdGhlIHNwLi4uJywKICAgICdjYW5vbmljYWwnID0+ICdodHRwczovL2NlbnR1cnkyMW51bWJlcm9uZS5jb20vZW4vZC8xMTQ0NzcwJywKICAgICdhbXBodG1sJyA9PiAnL2FtcC9lbi9kLzExNDQ3NzAnLAogICAgJ2xvY2FsZScgPT4gJ2VuLVVTJywKICApLAogICd1cmlfYWx0ZXJuYXRlcycgPT4gCiAgYXJyYXkgKAogICAgJ2VuJyA9PiAKICAgIGFycmF5ICgKICAgICAgJ2xhbmcnID0+ICdlbicsCiAgICAgICdsYWJlbCcgPT4gJ0VuZ2xpc2gnLAogICAgICAnZmxhZycgPT4gJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBTENBSUFBQUQ1Z0pwdUFBQUFCR2RCVFVFQUFLL0lOd1dLNlFBQUFCbDBSVmgwVTI5bWRIZGhjbVVBUVdSdlltVWdTVzFoWjJWU1pXRmtlWEhKWlR3QUFBSHpTVVJCVkhqYVlreE9QOElBQi8vK01mejd3OER3aTRIaFA1Q2NKYi9uLzdldmIxNi9BUEwvZ1JGUURpQUF3M0p1QWdBSUJFRFEvaXN3RUVSakd6QlFMRXJ1OTdsbDBnMCszSHZxTW4xU3BxbHFHc1pNc1pzSWUwU0lDQTVndDVhL0FHSUVhckNQdEZoKzZOL2Zmd3hBOU92UC83Ly9RWXdmZi82ZlphaG1lUGVCNGROSGhpK2ZHYjU5WTR6eXZISG1DRUFBQVczWUR6UVlhSko5M2Erdlg3OWFWZjU4Ly82OWZ2RVBscElmbno1OSt2RGh3N3QzNzk2OGVmUDNiL1NYTDU5T25qd0lFRUFzRFArWWdZNTNiMmI4OSsrL2F3dkxuOThNRGkyY1Z4bCsvdmw2bWl0dUN0QmdoaTlmL3YvNDhlL1hMODZrcmo5WHp3RUVFRU55OGc2Z3UyMnJmbjc4K05HczVPZnIxNitaQzU4K2Z2eVl3WDhyeE94WHIxNjlmUG55K2ZQbjEvLzkzYkpsQlVBQXNRQURaTUVCeGo5L0dCeGIyUC85K1MvUjh1M3Z6eHV5YVg4Wkh2M2o4L1lHbXMzdzh5Y1FBUm1pMmVFMzd0NEFDQ0RHUjQvdVNrcktBUzM1QjNUVC8vLy93QURPZ0xPQklhWEl5akJsd3hLQUFHS1JYakNCMFNPRWFldSsveTlmTW56NEFIUXhDUDM0OFIvbytsKy8vc01aUUJOTEV2aWYzQWNJSU1aYnR5N0x5NnQ5Wm1YbCtmWGovMzhHb0hIL1VjR2ZQNzkvL0JCaVlIank5Kzgvb1VrTkFBSEV3dDFWL3ZJL0tCWS9RU0lTRnFNL0dCZytNekI4QTZQZllDNUVGaURBQUJxZ1c3NzZNUDByQUFBQUFFbEZUa1N1UW1DQycsCiAgICAgICdocmVmJyA9PiAnL2VuL2QvamFuLXNvZmF0LXdhdGVydmlldy12aWxsYS0yNDMtaG9tZS1mb3Itc2FsZS1jdXJhY2FvLTExNDQ3NzAnLAogICAgKSwKICAgICdubCcgPT4gCiAgICBhcnJheSAoCiAgICAgICdsYW5nJyA9PiAnbmwnLAogICAgICAnbGFiZWwnID0+ICdOZWRlcmxhbmRzJywKICAgICAgJ2ZsYWcnID0+ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQUxDQUlBQUFENWdKcHVBQUFBQkdkQlRVRUFBSy9JTndXSzZRQUFBQmwwUlZoMFUyOW1kSGRoY21VQVFXUnZZbVVnU1cxaFoyVlNaV0ZrZVhISlpUd0FBQUZYU1VSQlZIamFZdnpQZ0FEL1VObFlFVUFBa3VUZ0NBQUlCZ0pnZ3E1Vm9BczFxTTB2ZHptTXozNjJ2ZXpqb2t4UEdpbWtFUTVXb0FRRUt1SzcxendDQ0t5QjRjLy9KOCtCU2huKy92di8rdy9EMzk5QUVveCsvLzhGSkgvOS93VVUrY1VvS3cyMEFTQ0FXQmhFRGYvTHlET3c4NEJVLy9rRHRnR0kvb0FSbUFIUkRKUVNGd1ZxQUFnZ3hvOGZQL0x5OG9LYzlQOC9BeGppQW95TWpBOGVQQUFJSUpaLy8vNUJWSU0wTU9CV0RwUmxaUHp6NXc5QUFMSDhneXZDYno3UUJyQ0pBQUhFeUtEWVgxNXIvK2oxMTk5Ly92MzUrKy9YbjcrLy8vNzdEU1Qvd01sL2Y0RGszNzhLNGp4N08yY0FCQkFMdzdOUDc3LytldjN4QjBnT3BPSGZyOTlBZFg5L2dUVkFTS0NHUC8vKzhYQ3lNakM4QXdnZ0ZvWmZJSFdTd3B3UWs0Q1cvQVlqc0tsQTh1K2ZmLy8vL3YzMzk5OC9ZUGdCblFRUVFJekFhR05nK0FWR2Y1QVlmNUJFL29DakdFSXlBUVFZQUd2S1o0QzYreFhSQUFBQUFFbEZUa1N1UW1DQycsCiAgICAgICdocmVmJyA9PiAnL25sL2QvamFuLXNvZmF0LXdhdGVydmlldy12aWxsYS0yNDMtdGUta29vcC1jdXJhY2FvLTExNDQ3NzAnLAogICAgKSwKICAgICdlcycgPT4gCiAgICBhcnJheSAoCiAgICAgICdsYW5nJyA9PiAnZXMnLAogICAgICAnbGFiZWwnID0+ICdFc3Bhw7FvbCcsCiAgICAgICdmbGFnJyA9PiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFMQ0FJQUFBRDVnSnB1QUFBQUJHZEJUVUVBQUsvSU53V0s2UUFBQUJsMFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1NXMWhaMlZTWldGa2VYSEpaVHdBQUFGblNVUkJWSGphWXZ6UGdBRC9VTmxZRVVBQW11VFlBQUFRaEFFWXFGL3pGYmU1MFJaMWNNbVM5VExpMHBKTFJqWm9oQU1UR0ZVTjlIZG5IZ0VFMXNEdy8vK1RwMENsSU5XL2YwTklLUG9GSkgvOS8vVUx5R2FVbFFYYUFCQkFMQXgvR2Y0ekF0MzFGNGkrZmZqMy9jTi9YckZmek94Ly92Ly8vZi8vTHpBQ00vNzlabUQ4L2U4VEEwQUFNWUhkRFZUOTU4dlhQMzhuTURCMHMzeDk0L1RqNXkrWWFoaGlBS0xmUUtVQUFjUUVkdEpmb0RITUYyTCt2UHpEbUZYTGVsZjU1MXRHRk9PaGV2NEEvUWdRUUV4Z0h3QWQ4SWRGVC9XejZqK0dobHBtWFNPVy8yei8vLzhFcS9zSjE4RHcvemRRQTBBQU1RRXh4SmpqZHk5eDIvNzZFZkx6NE1YZFAvaSt3c3lHa2tBM0F3Mzk4NGNCSUlBWWZ6SXdNS2VsL2J0M2p3RWFMTkF3Z1pJUXhwL2ZESC8rTXFxb3ZMMTRFU0NBV0lDZVp2cjloMEZTRWhTZ3dCZ0F5Z0ZERU1UK3d3QWhnUWdjNGtBRVZBd1FRSXhmVVNNU1R4eERBRUNBQVFBSldrZTh2NHUxdEFBQUFBQkpSVTVFcmtKZ2dnPT0nLAogICAgICAnaHJlZicgPT4gJy9lcy9kL2phbi1zb2ZhdC13YXRlcnZpZXctdmlsbGEtMjQzLWNhc2EtZW4tdmVudGEtY3VyYXphby0xMTQ0NzcwJywKICAgICksCiAgICAnZGUnID0+IAogICAgYXJyYXkgKAogICAgICAnbGFuZycgPT4gJ2RlJywKICAgICAgJ2xhYmVsJyA9PiAnRGV1dHNjaCcsCiAgICAgICdmbGFnJyA9PiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFMQ0FJQUFBRDVnSnB1QUFBQUJHZEJUVUVBQUsvSU53V0s2UUFBQUJsMFJWaDBVMjltZEhkaGNtVUFRV1J2WW1VZ1NXMWhaMlZTWldGa2VYSEpaVHdBQUFHelNVUkJWSGphWXZUeGNXYjQrNTNoM3o4R1pwWmZmLzc5K3Yzbi83L2ZEQXovR0hBQWdBQmkrZjM3ZTNGeE9aRDFEd3orL3Yzejl5K0UvQU1GdjMvLytRdW1mdjlldDI0MVFBQ3hNREV4QVZXZk9Ia0pKQUVXL2dVRVAwRVFEbjc4K0FIRS9nRk9RSlVBQWNRaXk4QWc4TytmTEZqMW4xKy9RRHArL2dRaW9LN2ZQMzc4K3ZrRHFPSDM5eDlBL1JKL2dFNWxBQWhBWWh6Y0FBQ0NRQkRrZ1JYUmpQMDM0UjBJYURUWlRGWm4wREl0b3QzN1M5NEtMT0lOZXJFY0k3YUtIQUhFOHYvM3IvOS8veklBMWYzNi9SK280dGV2ZjFBTllOVkE5UDA3UkQ5SUpRTURRQUN4QURIRDN6OElnNEdNSHorQXFxSGFnS3AvL2Z3TFZBMFUvL3Y3THdNRFFBQ3gvTFppWUZENy81LzUzLysvLy83OUJxSy9FTVovVVBBQ1NZYS92LzhEeVg5QTBvVHh4MkVHZ0FCaSthL0g4Ri9tMzM5Qm9Db1ErZzhrZ1JhQ1F2Z1BKSmlCWW1BdXczOWh4bit1REFBQnhNTHdpK0UvMFB1c1Jrd012eGhCR29Ea0g0Yi92LytEMkVEeXovLy9RQjEvUUxiOCtzUDBsUUVnZ0ZoK3ZHWFlNMi9TUDZBMlpvYWYzMEV4L0orUGdla0h3ejlnUURBei9QMEZZckF5TWZ6N3djREF6UER0RndOQWdBRUFkM1NJeVJpdFgxZ0FBQUFBU1VWT1JLNUNZSUk9JywKICAgICAgJ2hyZWYnID0+ICcvZGUvZC9qYW4tc29mYXQtd2F0ZXJ2aWV3LXZpbGxhLTI0My16dS12ZXJrYXVmZW4tY3VyYWNhby0xMTQ0NzcwJywKICAgICksCiAgKSwKKQ==