<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>8772</bug_id>
          
          <creation_ts>2006-05-07 13:07:54 -0700</creation_ts>
          <short_desc>Cache corruption with vBulletin forum pages</short_desc>
          <delta_ts>2006-07-06 05:55:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>417.x</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>6314</dup_id>
          
          <bug_file_loc>http://www.macitynet.it/forum/showpost.php?p=511951&amp;postcount=189</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>camillo.lists</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41457</commentid>
    <comment_count>0</comment_count>
    <who name="">camillo.lists</who>
    <bug_when>2006-05-07 13:07:54 -0700</bug_when>
    <thetext>This is a bug which only appears on vBulletin forums, and no other sites, as far as I can tell. Moreover, it does not appear with all pages, or with all loads of a given page, but only some of the time.

What happens is that the content of the page is laid out erroneously, with some parts missing and others misplaced. Starting with a mis-rendered page, I tried several things:

- View Source: it appears normal. When copied into a text editor and saved as html, it is rendered correctly (apart from missing images and styles): all the content is displayed and properly structured.

- Save as Source: same as above: normal markup, correct rendering when reopened.

- Saved as Web Archive: when the webarchive is reopened, Safari displays the wrong rendering again. Moreover, doing a &quot;View Source&quot; on this reopened page shows an altered markup; when saved as html, this markup also renders incorrectly. Extracting the page from the webarchive file manually (using plutil and uudecode) yields the same altered markup that renders incorrectly.

- Opening a new tab and pasting the address of the page that was rendered incorrectly causes the badly-rendered version to load once again, as long as the page was in the cache. Refreshing the page causes it to be reloaded from the server and then it is rendered correctly.

It seems that the html source becomes corrupted somehow, and this corrupted version is fed to the cache, the renderer and the webarchive saver, but &quot;view source&quot; and &quot;save as source&quot; see the original uncorrupted markup instead. Hopefully, this information can help locate the stage where the corruption takes place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41458</commentid>
    <comment_count>1</comment_count>
      <attachid>8148</attachid>
    <who name="">camillo.lists</who>
    <bug_when>2006-05-07 13:11:41 -0700</bug_when>
    <thetext>Created attachment 8148
Webarchive of a damaged page. The message text is not visible when the file is loaded.

This is the webarchive saved from a page that had been rendered incorrectly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41459</commentid>
    <comment_count>2</comment_count>
      <attachid>8149</attachid>
    <who name="">camillo.lists</who>
    <bug_when>2006-05-07 13:14:00 -0700</bug_when>
    <thetext>Created attachment 8149
Source of the same page.

This source was saved by using &quot;Save as source&quot; on the same webpage as above. In this case, the correct source is saved, even though I saved it from the same page as the webarchive, without reloading it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41460</commentid>
    <comment_count>3</comment_count>
      <attachid>8150</attachid>
    <who name="">camillo.lists</who>
    <bug_when>2006-05-07 13:15:36 -0700</bug_when>
    <thetext>Created attachment 8150
Webarchive of the correctly rendered page, saved after reloading it.

After refreshing the page, it was rendered correctly. This webarchive shows the expected rendering of the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>45726</commentid>
    <comment_count>4</comment_count>
    <who name="Arnold Kim">arn</who>
    <bug_when>2006-06-15 00:07:19 -0700</bug_when>
    <thetext>I had the same issue:

http://bugzilla.opendarwin.org/show_bug.cgi?id=9443
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48504</commentid>
    <comment_count>5</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-07-06 05:55:12 -0700</bug_when>
    <thetext>This, just like bug 9443, is a dupe of bug 6314.

*** This bug has been marked as a duplicate of 6314 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8148</attachid>
            <date>2006-05-07 13:11:41 -0700</date>
            <delta_ts>2006-05-07 13:11:41 -0700</delta_ts>
            <desc>Webarchive of a damaged page. The message text is not visible when the file is loaded.</desc>
            <filename>corrupt.webarchive</filename>
            <type>application/x-webarchive</type>
            <size>100258</size>
            <attacher>camillo.lists</attacher>
            
              <data encoding="base64">YnBsaXN0MDDSAQIDMF8QD1dlYlN1YnJlc291cmNlc18QD1dlYk1haW5SZXNvdXJjZakEDRIWGyAk
KCzUBQYHCAkKCwxfEBNXZWJSZXNvdXJjZVJlc3BvbnNlXxAPV2ViUmVzb3VyY2VEYXRhXldlYlJl
c291cmNlVVJMXxATV2ViUmVzb3VyY2VNSU1FVHlwZU8RBIZicGxpc3QwMNQBAgMEBQYHClkkYXJj
aGl2ZXJYJHZlcnNpb25UJHRvcFgkb2JqZWN0c18QD05TS2V5ZWRBcmNoaXZlchIAAYag0QgJXxAT
V2ViUmVzb3VyY2VSZXNwb25zZYABrxAdCwwpLzA3ODxUVVZXWFlaW1xdXl9aYGFiYzdkaGtVJG51
bGzfEBANDg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJiceKFIkNlMkMTBSJDJTJDEzUiQ3UiQz
UyQxMVIkOFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIkMRAHEAGABYAGgAAjQaQc29p93hYR
UIQQACNBpBzb2HQDWIAcI0GkHRck9iVCgALTKisZIS0uV05TLmJhc2VbTlMucmVsYXRpdmWAAIAD
gARfEFFodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9jbGllbnRzY3JpcHQvdmJ1bGxldGlu
X2Nzcy9zdHlsZS02ZWVmZTE4NS0wMDAxMC5jc3PSMTIzNFgkY2xhc3Nlc1okY2xhc3NuYW1lozQ1
NlVOU1VSTFYlTlNVUkxYTlNPYmplY3RYdGV4dC9jc3PTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5v
YmplY3RzV05TLmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmA
CoALgAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVj
dGlvblREYXRlXkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBh
Y2hlLzEuMy4yOV8QHVNhdCwgMDYgTWF5IDIwMDYgMjA6NTc6NDcgR01UVWJ5dGVzXxAdU3VuLCAw
NyBNYXkgMjAwNiAxODowMzoyMiBHTVRVMjA2MTJfEBJ0aW1lb3V0PTUsIG1heD0xMDBfEBYiZTI0
Njg0LTUwODQtNDQ1ZDBkY2Ii0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rp
b25hcnnSMTJpaqJqNl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hU
VFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCw
ALQAtwC7AL4AwQDFAMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsB
IwEvATEBMwE1AYkBjgGXAaIBpgGsAbMBvAHFAcwBzgHQAdIB2QHkAewB9gH4AfoB/AH+AgACAgIE
AgYCCAISAhQCFgIYAhoCHAIeAiACIgIkAiYCLQI7AkkCVAJZAmgCcwJ4AoUCkwKzArkC2QLfAvQD
DQMSAxYDLAM5Az4DQQNdA2IDZgN6AAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA4hPEVCE
LyogdkJ1bGxldGluIDMgQ1NTIEZvciBTdHlsZSAnQVFVQSBHJyAoc3R5bGVpZDogMTApICovDQpi
b2R5DQp7DQoJYmFja2dyb3VuZDogIzY2NzU4NTsNCgljb2xvcjogIzAwMDAwMDsNCglmb250OiAx
MS43cHggJ0x1Y2lkYSBHcmFuZGUnLCBWZXJkYW5hLCBzYW5zLXNlcmlmOw0KCW1hcmdpbjogMTBw
eCAwIDEwcHggMDsNCglwYWRkaW5nOiAwOw0KCQ0KfQ0KYTpsaW5rDQp7DQoJY29sb3I6ICM0ZDU5
NmY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KYTp2aXNpdGVkDQp7DQoJY29sb3I6ICM0
ZDU5NmY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KYTpob3ZlciwgYTphY3RpdmUNCnsN
Cgljb2xvcjogIzRkNTk2ZjsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCn0NCi5wYWdl
DQp7DQoJYmFja2dyb3VuZDogI0ZGRkZGRjsNCgljb2xvcjogIzAwMDAwMDsNCn0NCnRkLCB0aCwg
cCwgbGkNCnsNCglmb250OiAxMHB0IHZlcmRhbmEsIGdlbmV2YSwgbHVjaWRhLCAnbHVjaWRhIGdy
YW5kZScsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQp9DQoudGJvcmRlcg0Kew0KCWJh
Y2tncm91bmQ6ICNEMUQxRTE7DQoJY29sb3I6ICMwMDAwMDA7DQoJYm9yZGVyOiAxcHggc29saWQg
IzBCMTk4QzsNCn0NCi50Y2F0DQp7DQoJYmFja2dyb3VuZDogIzUwNmQ4NSB1cmwoLi4vLi4vaW1h
Z2VzL2FzMmdyYXBoaXRlL2dyYWRpZW50cy9ncmFkaWVudF90Y2F0LmdpZikgcmVwZWF0LXg7DQoJ
Y29sb3I6ICNGRkZGRkY7DQoJZm9udC1zaXplOiAxMnB4Ow0KCWZvbnQtd2VpZ2h0OiBib2xkOw0K
CXBhZGRpbmc6IDRweCA1cHggNHB4IDE0cHg7DQoJdGV4dC1zaGFkb3c6ICMyZTM3NGMgMHB4IDFw
eCAxcHg7DQp9DQoudGNhdCBhOmxpbmsNCnsNCgljb2xvcjogI2ZmZmZmZjsNCgl0ZXh0LWRlY29y
YXRpb246IG5vbmU7DQp9DQoudGNhdCBhOnZpc2l0ZWQNCnsNCgljb2xvcjogI2ZmZmZmZjsNCgl0
ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudGNhdCBhOmhvdmVyLCAudGNhdCBhOmFjdGl2ZQ0K
ew0KCWNvbG9yOiAjRkZGRkZGOw0KCXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KfQ0KLnRo
ZWFkDQp7DQoJYmFja2dyb3VuZDogIzc4Nzg3OCB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRl
L2dyYWRpZW50cy9ncmFkaWVudF90aGVhZC5naWYpIHJlcGVhdC14IHRvcCBsZWZ0Ow0KCWNvbG9y
OiAjRkZGRkZGOw0KCWZvbnQtc2l6ZTogMTFweDsNCglmb250LXdlaWdodDogYm9sZDsNCglwYWRk
aW5nOiAycHggM3B4IDJweCA3cHg7DQoJdGV4dC1zaGFkb3c6ICM1NTU1NTUgMHB4IDFweCAxcHg7
DQp9DQoudGhlYWQgYTpsaW5rDQp7DQoJY29sb3I6ICNGRkZGRkY7DQoJdGV4dC1kZWNvcmF0aW9u
OiBub25lOw0KfQ0KLnRoZWFkIGE6dmlzaXRlZA0Kew0KCWNvbG9yOiAjRkZGRkZGOw0KCXRleHQt
ZGVjb3JhdGlvbjogbm9uZTsNCn0NCi50aGVhZCBhOmhvdmVyLCAudGhlYWQgYTphY3RpdmUNCnsN
Cgljb2xvcjogI0ZGRkZGRjsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCn0NCi50Zm9v
dA0Kew0KCWJhY2tncm91bmQ6ICMzRTVDOTI7DQoJY29sb3I6ICNFMEUwRjY7DQp9DQoudGZvb3Qg
YTpsaW5rDQp7DQoJY29sb3I6ICNFMEUwRjY7DQp9DQoudGZvb3QgYTp2aXNpdGVkDQp7DQoJY29s
b3I6ICNFMEUwRjY7DQp9DQoudGZvb3QgYTpob3ZlciwgLnRmb290IGE6YWN0aXZlDQp7DQoJY29s
b3I6ICNGRkZGNjY7DQp9DQouYWx0MSwgLmFsdDFBY3RpdmUNCnsNCgliYWNrZ3JvdW5kOiAjZjNm
NGY3Ow0KCWNvbG9yOiAjMDAwMDAwOw0KfQ0KLmFsdDIsIC5hbHQyQWN0aXZlDQp7DQoJYmFja2dy
b3VuZDogI0UxRTRGMjsNCgljb2xvcjogIzAwMDAwMDsNCn0NCnRkLmlubGluZW1vZA0Kew0KCWJh
Y2tncm91bmQ6ICNkZWUyZWE7DQp9DQoud3lzaXd5Zw0Kew0KCWJhY2tncm91bmQ6ICNGNUY1RkY7
DQoJY29sb3I6ICMwMDAwMDA7DQoJZm9udDogMTBwdCB2ZXJkYW5hLCBnZW5ldmEsIGx1Y2lkYSwg
J2x1Y2lkYSBncmFuZGUnLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KfQ0KdGV4dGFy
ZWEsIC5iZ2lucHV0DQp7DQoJZm9udDogMTBwdCB2ZXJkYW5hLCBnZW5ldmEsIGx1Y2lkYSwgJ2x1
Y2lkYSBncmFuZGUnLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KfQ0KLmJ1dHRvbg0K
ew0KCWZvbnQ6IDExcHggdmVyZGFuYSwgZ2VuZXZhLCBsdWNpZGEsICdsdWNpZGEgZ3JhbmRlJywg
YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsNCn0NCnNlbGVjdA0Kew0KCWZvbnQ6IDExcHgg
dmVyZGFuYSwgZ2VuZXZhLCBsdWNpZGEsICdsdWNpZGEgZ3JhbmRlJywgYXJpYWwsIGhlbHZldGlj
YSwgc2Fucy1zZXJpZjsNCn0NCm9wdGlvbiwgb3B0Z3JvdXANCnsNCglmb250LXNpemU6IDExcHg7
DQoJZm9udC1mYW1pbHk6IHZlcmRhbmEsIGdlbmV2YSwgbHVjaWRhLCAnbHVjaWRhIGdyYW5kZScs
IGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQp9DQouc21hbGxmb250DQp7DQoJZm9udDog
MTFweCB2ZXJkYW5hLCBnZW5ldmEsIGx1Y2lkYSwgJ2x1Y2lkYSBncmFuZGUnLCBhcmlhbCwgaGVs
dmV0aWNhLCBzYW5zLXNlcmlmOw0KfQ0KLnRpbWUNCnsNCgljb2xvcjogIzY2NjY4NjsNCn0NCi5u
YXZiYXINCnsNCglmb250OiAxMXB4IHZlcmRhbmEsIGdlbmV2YSwgbHVjaWRhLCAnbHVjaWRhIGdy
YW5kZScsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQp9DQouaGlnaGxpZ2h0DQp7DQoJ
Y29sb3I6ICNGRjAwMDA7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQouZmpzZWwNCnsNCgliYWNr
Z3JvdW5kOiAjNGQ1OTZmOw0KCWNvbG9yOiAjRkZGRkZGOw0KfQ0KLmZqZHB0aDANCnsNCgliYWNr
Z3JvdW5kOiAjRjdGN0Y3Ow0KCWNvbG9yOiAjMDAwMDAwOw0KfQ0KLnBhbmVsDQp7DQoJYmFja2dy
b3VuZDogI0U0RTdGNSB1cmwoLi4vLi4vaW1hZ2VzL2dyYWRpZW50cy9ncmFkaWVudF9wYW5lbC5n
aWYpIHJlcGVhdC14IHRvcCBsZWZ0Ow0KCWNvbG9yOiAjMDAwMDAwOw0KCXBhZGRpbmc6IDEwcHg7
DQoJYm9yZGVyOiAycHggb3V0c2V0Ow0KfQ0KLnBhbmVsc3Vycm91bmQNCnsNCgliYWNrZ3JvdW5k
OiAjRDFENEUwIHVybCguLi8uLi9pbWFnZXMvZ3JhZGllbnRzL2dyYWRpZW50X3BhbmVsc3Vycm91
bmQuZ2lmKSByZXBlYXQteCB0b3AgbGVmdDsNCgljb2xvcjogIzAwMDAwMDsNCn0NCmxlZ2VuZA0K
ew0KCWNvbG9yOiAjMjIyMjlDOw0KCWZvbnQ6IDExcHggdGFob21hLCB2ZXJkYW5hLCBnZW5ldmEs
IGx1Y2lkYSwgJ2x1Y2lkYSBncmFuZGUnLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0K
fQ0KLnZibWVudV9jb250cm9sDQp7DQoJYmFja2dyb3VuZDogIzc4Nzg3OCB1cmwoLi4vLi4vaW1h
Z2VzL2FzMmdyYXBoaXRlL2dyYWRpZW50cy9ncmFkaWVudF90aGVhZC5naWYpIHJlcGVhdC14IHRv
cCBsZWZ0Ow0KCWNvbG9yOiAjRkZGRkZGOw0KCWZvbnQtc2l6ZTogMTFweDsNCglmb250LXdlaWdo
dDogYm9sZDsNCglwYWRkaW5nOiAzcHggNnB4IDNweCA2cHg7DQoJd2hpdGUtc3BhY2U6IG5vd3Jh
cDsNCn0NCi52Ym1lbnVfY29udHJvbCBhOmxpbmsNCnsNCgljb2xvcjogI0ZGRkZGRjsNCgl0ZXh0
LWRlY29yYXRpb246IG5vbmU7DQp9DQoudmJtZW51X2NvbnRyb2wgYTp2aXNpdGVkDQp7DQoJY29s
b3I6ICNGRkZGRkY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KLnZibWVudV9jb250cm9s
IGE6aG92ZXIsIC52Ym1lbnVfY29udHJvbCBhOmFjdGl2ZQ0Kew0KCWNvbG9yOiAjRkZGRkZGOw0K
CXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KfQ0KLnZibWVudV9wb3B1cA0Kew0KCWJhY2tn
cm91bmQ6ICNGRkZGRkY7DQoJY29sb3I6ICMwMDAwMDA7DQoJYm9yZGVyOiAxcHggc29saWQgIzBC
MTk4QzsNCn0NCi52Ym1lbnVfb3B0aW9uDQp7DQoJYmFja2dyb3VuZDogI0Y0RjRGNDsNCgljb2xv
cjogIzAwMDAwMDsNCglmb250LXNpemU6IDExcHg7DQoJd2hpdGUtc3BhY2U6IG5vd3JhcDsNCglj
dXJzb3I6IHBvaW50ZXI7DQoJDQp9DQoudmJtZW51X29wdGlvbiBhOmxpbmsNCnsNCgljb2xvcjog
IzRkNTk2ZjsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudmJtZW51X29wdGlvbiBhOnZp
c2l0ZWQNCnsNCgljb2xvcjogIzRkNTk2ZjsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQou
dmJtZW51X29wdGlvbiBhOmhvdmVyLCAudmJtZW51X29wdGlvbiBhOmFjdGl2ZQ0Kew0KCWNvbG9y
OiAjRkZGRkZGOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCi52Ym1lbnVfaGlsaXRlDQp7
DQoJYmFja2dyb3VuZDogIzY2Nzg4YTsNCgljb2xvcjogI0ZGRkZGRjsNCglmb250LXNpemU6IDEx
cHg7DQoJd2hpdGUtc3BhY2U6IG5vd3JhcDsNCgljdXJzb3I6IHBvaW50ZXI7DQoJDQp9DQoudmJt
ZW51X2hpbGl0ZSBhOmxpbmsNCnsNCgljb2xvcjogI0ZGRkZGRjsNCgl0ZXh0LWRlY29yYXRpb246
IG5vbmU7DQp9DQoudmJtZW51X2hpbGl0ZSBhOnZpc2l0ZWQNCnsNCgljb2xvcjogI0ZGRkZGRjsN
Cgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudmJtZW51X2hpbGl0ZSBhOmhvdmVyLCAudmJt
ZW51X2hpbGl0ZSBhOmFjdGl2ZQ0Kew0KCWNvbG9yOiAjRkZGRkZGOw0KCXRleHQtZGVjb3JhdGlv
bjogbm9uZTsNCn0NCi8qICoqKioqIHN0eWxpbmcgZm9yICdiaWcnIHVzZXJuYW1lcyBvbiBwb3N0
Yml0IGV0Yy4gKioqKiogKi8NCi5iaWd1c2VybmFtZSB7IGZvbnQtc2l6ZTogMTVweDsgZm9udC13
ZWlnaHQ6IGJvbGQ7IH0NCi8qICoqKioqIHNtYWxsIHBhZGRpbmcgb24gJ3RoZWFkJyBlbGVtZW50
cyAqKioqKiAqLw0KdGQudGhlYWQsIGRpdi50aGVhZCB7IHBhZGRpbmc6IDRweDsgfQ0KLyogKioq
KiogYmFzaWMgc3R5bGVzIGZvciBtdWx0aS1wYWdlIG5hdiBlbGVtZW50cyAqLw0KLnBhZ2VuYXYg
YSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KLnBhZ2VuYXYgdGQgeyBwYWRkaW5nOiAycHgg
NHB4IDJweCA0cHg7IH0NCi8qICoqKioqIGRlZmluZSBtYXJnaW4gYW5kIGZvbnQtc2l6ZSBmb3Ig
ZWxlbWVudHMgaW5zaWRlIHBhbmVscyAqKioqKiAqLw0KLmZpZWxkc2V0IHsgYm9yZGVyLWNvbG9y
OiAjOGI4YjhiOyBib3JkZXItc3R5bGU6IHNvbGlkIG5vbmUgbm9uZSBub25lOyBib3JkZXItd2lk
dGg6IDFweCAwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbTogNnB4OyB9DQouZmllbGRzZXQgbGVn
ZW5kIHsgcGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctcmlnaHQ6IDhweDsgfQ0KLmZpZWxkc2V0
LCAuZmllbGRzZXQgdGQsIC5maWVsZHNldCBwLCAuZmllbGRzZXQgbGkgeyBmb250LXNpemU6IDEx
cHg7IH0NCi8qICoqKioqIGRvbid0IGNoYW5nZSB0aGUgZm9sbG93aW5nICoqKioqICovDQpmb3Jt
IHsgZGlzcGxheTogaW5saW5lOyB9DQpsYWJlbCB7IGN1cnNvcjogZGVmYXVsdDsgfQ0KLm5vcm1h
bCB7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH0NCi5pbmxpbmVpbWcgeyB2ZXJ0aWNhbC1hbGlnbjog
bWlkZGxlOyB9DQppbWcgeyBib3JkZXI6IDA7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0NCiNj
b250YWluZXIgeyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvOyBtaW4td2lk
dGg6IDc3MHB4OyB3aWR0aDogOTklOyB9DQovKiAjd3JhcHBlciwgI2NvbGxhcHNlb2JqX3dyYXBw
ZXIgeyBiYWNrZ3JvdW5kOiAjRkZGRkZGOyBjb2xvcjogIzAwMDAwMDsgfSAqLw0KLmNhcHRpb25t
aWQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2NhcHRpb25fbWlk
LmdpZikgI2VmZWZlZiByZXBlYXQteDsgZm9udDogMTNweC8yMnB4ICJMdWNpZGEgR3JhbmRlIiwg
THVjaWRhR3JhbmRlLCBMdWNpZGEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGhlaWdo
dDogMjJweDsgdGV4dC1hbGlnbjogY2VudGVyOyB3aWR0aDogMTAwJTsgfQ0KLmNhcHRpb25taWQg
YTpsaW5rLC5jYXB0aW9ubWlkICBhOnZpc2l0ZWQsLmNhcHRpb25taWQgIGE6YWN0aXZlIHsgYmFj
a2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246IG5v
bmU7IH0NCi5jYXB0aW9ubWlkIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0NCi5j
YXB0aW9ubGVmdCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvY2Fw
dGlvbl9sZWZ0LmdpZikgbm8tcmVwZWF0IDBweCAwcHg7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIy
cHg7IHBhZGRpbmctbGVmdDogMTVweDsgd2lkdGg6IDY0cHg7IH0NCi5jYXB0aW9ubGVmdCBhIHsg
ZGlzcGxheTogYmxvY2s7IGhlaWdodDogMjJweDsgd2lkdGg6IDY0cHg7IH0NCi5jYXB0aW9ubGVm
dCBhOmhvdmVyIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9jYXB0
aW9uX2xlZnQuZ2lmKSBuby1yZXBlYXQgLTE1cHggLTIycHg7IH0NCi5jYXB0aW9ubGVmdCBhOmFj
dGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvY2FwdGlvbl9s
ZWZ0LmdpZikgbm8tcmVwZWF0IC0xNXB4IC00NHB4OyB9DQouY2FwdGlvbnJpZ2h0IHsgYmFja2dy
b3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9jYXB0aW9uX3JpZ2h0LmdpZikgbm8t
cmVwZWF0IDBweCAwcHg7IGZsb2F0OiByaWdodDsgaGVpZ2h0OiAyMnB4OyBwYWRkaW5nLXJpZ2h0
OiAxNXB4OyB3aWR0aDogNjRweDsgfQ0KLmNhcHRpb25yaWdodCBhIHsgZGlzcGxheTogYmxvY2s7
IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDIycHg7IHdpZHRoOiA2NHB4OyB9DQouY2FwdGlvbnJpZ2h0
IGE6YWN0aXZlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9jYXB0
aW9uX3JpZ2h0LmdpZikgbm8tcmVwZWF0IDBweCAtMjJweDsgfQ0KLnNoYWRsZWZ0IHsgYmFja2dy
b3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9zaGFkX2xlZnQuZ2lmKSByZXBlYXQt
eSBsZWZ0OyBwYWRkaW5nLWxlZnQ6IDE1cHg7IH0NCi5zaGFkcmlnaHQgeyBiYWNrZ3JvdW5kOiB1
cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3NoYWRfcmlnaHQuZ2lmKSByZXBlYXQteSByaWdo
dDsgcGFkZGluZy1yaWdodDogMTVweDsgfQ0KLnNoYWRib3RsZWZ0IHsgYmFja2dyb3VuZDogdXJs
KC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9zaGFkX2JvdF9sZWZ0LmdpZikgIzY2NzU4NTsgZmxv
YXQ6IGxlZnQ7IGhlaWdodDogMjRweDsgd2lkdGg6IDc5cHg7IH0NCi5zaGFkYm90bWlkIHsgYmFj
a2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9zaGFkX2JvdF9taWQuZ2lmKSBy
ZXBlYXQteDsgaGVpZ2h0OiAyNHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCi5zaGFkYm90cmln
aHQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3NoYWRfYm90X3Jp
Z2h0LmdpZikgIzY2NzU4NTsgZmxvYXQ6IHJpZ2h0OyBoZWlnaHQ6IDI0cHg7IHdpZHRoOiA3OXB4
OyB9DQojdG9vbGJhciB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUv
dG9vbGJhcl9iZy5naWYpICNmNGY0ZjQ7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOWY5Zjlm
OyBoZWlnaHQ6IDU1cHg7IHBhZGRpbmc6IDAgNnB4IDAgNnB4OyB9DQojdG9vbGJhciB1bCB7IGxp
c3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMHB4OyB3aGl0ZS1zcGFjZTogbm93
cmFwOyB9DQojdG9vbGJhciB1bCBsaSB7IGRpc3BsYXk6IGlubGluZTsgZmxvYXQ6IGxlZnQ7IGxp
c3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMCAwIDAgMXB4OyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWdu
OiBjZW50ZXI7IH0NCiN0b29sYmFyIHVsIGxpOmFjdGl2ZSB7IGJhY2tncm91bmQ6ICNmNGY0ZjQ7
IH0NCiN0b29sYmFyIHVsIGxpIGEgeyBjb2xvcjogIzAwMDAwMDsgZGlzcGxheTogYmxvY2s7IG1h
cmdpbjogMCAxcHggMCAxcHg7IHBhZGRpbmc6IDM5cHggNXB4IDNweCA1cHg7IHRleHQtZGVjb3Jh
dGlvbjogbm9uZTsgfQ0KLyogI3Rvb2xiYXIgdWwgbGkgYTphY3RpdmUgeyBiYWNrZ3JvdW5kOiAj
RjRGNEY0OyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNCNkI2QjY7IGJvcmRlci1yaWdodDogMXB4
IHNvbGlkICNCNkI2QjY7IGNvbG9yOiAjMDAwMDAwOyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4t
cmlnaHQ6IDBweDsgfSAqLw0KI3Rvb2xiYXIgI3RiaG9tZSBhIHsgYmFja2dyb3VuZDogdXJsKC4u
Ly4uL2ltYWdlcy9hczJncmFwaGl0ZS9zaXRlX2xvZ28uZ2lmKSBuby1yZXBlYXQ7IGhlaWdodDog
NTVweDsgcGFkZGluZzogMDsgd2lkdGg6IDE3MHB4OyB9DQojdG9vbGJhciAjdGJ1c2VyY3AgYSB7
IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdGJfdXNlcmNwLmdpZikg
bm8tcmVwZWF0IHRvcCBjZW50ZXI7IH0NCiN0b29sYmFyICN0YmZhcSBhIHsgYmFja2dyb3VuZDog
dXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS90Yl9mYXEuZ2lmKSBuby1yZXBlYXQgdG9wIGNl
bnRlcjsgcGFkZGluZzogMzlweCAxMHB4IDNweCAxMHB4OyB9DQojdG9vbGJhciAjdGJtZW1iZXJz
IGEgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3RiX21lbWJlcnMu
Z2lmKSBuby1yZXBlYXQgdG9wIGNlbnRlcjsgfQ0KI3Rvb2xiYXIgI3RiY2FsZW5kYXIgYSB7IGJh
Y2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdGJfY2FsZW5kYXIuZ2lmKSBu
by1yZXBlYXQgdG9wIGNlbnRlcjsgfQ0KI3Rvb2xiYXIgI3Ric2VhcmNoIGEgeyBiYWNrZ3JvdW5k
OiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3RiX3NlYXJjaC5naWYpIG5vLXJlcGVhdCB0
b3AgY2VudGVyOyB9DQojdG9vbGJhciAjdGJuZXdwb3N0cyBhIHsgYmFja2dyb3VuZDogdXJsKC4u
Ly4uL2ltYWdlcy9hczJncmFwaGl0ZS90Yl9uZXdwb3N0cy5naWYpIG5vLXJlcGVhdCB0b3AgY2Vu
dGVyOyB9DQojdG9vbGJhciAjdGJtYXJrcmVhZCBhIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2lt
YWdlcy9hczJncmFwaGl0ZS90Yl9tYXJrcmVhZC5naWYpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB9
DQojdG9vbGJhciAjdGJidWRkeWxpc3QgYSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMv
YXMyZ3JhcGhpdGUvdGJfYnVkZHlsaXN0LmdpZikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IH0NCiN0
b29sYmFyICN0YnF1aWNrbGlua3MgYSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMy
Z3JhcGhpdGUvdGJfcXVpY2tsaW5rcy5naWYpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB9DQojdG9v
bGJhciAjdGJsb2dvdXQgYSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhp
dGUvdGJfbG9nb3V0LmdpZikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IH0NCi8qIEZvb3RlciBMaW5r
cyAqLw0KLmZvb3Rlcm5hdiB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhp
dGUvdG9vbGJhcl9iZy5naWYpICNmNGY0ZjQ7IGNvbG9yOiAjMDAwMDAwOyBtYXJnaW46IDBweDsg
cGFkZGluZzogMHB4IDEycHggMCA2cHg7IH0NCiNmb290ZXJuYXYgeyBmbG9hdDogbGVmdDsgd2lk
dGg6IGF1dG87IH0NCiNmb290ZXJuYXYgdWwgeyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDA7
IHBhZGRpbmc6IDAgMCAwIDZweDsgfQ0KI2Zvb3Rlcm5hdiBsaSB7IGRpc3BsYXk6IGlubGluZTsg
ZmxvYXQ6IGxlZnQ7IG1hcmdpbjogMCAwIDAgMXB4OyBwYWRkaW5nOiAwOyB0ZXh0LWFsaWduOiBj
ZW50ZXI7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH0NCiNmb290ZXJuYXYgYSB7IGNvbG9yOiAj
MDAwMDAwOyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWxlZnQ6IDFweDsgbWFyZ2luLXJpZ2h0OiAx
cHg7IHBhZGRpbmc6IDNweCA1cHggM3B4IDVweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQoj
Zm9vdGVybmF2IGE6aG92ZXIgeyBjb2xvcjogIzAwMDAwMDsgfQ0KI2Zvb3Rlcm5hdiBhOmFjdGl2
ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdG9vbGJhcl9ob3Rf
YmcuZ2lmKSAjZjRmNGY0OyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiNmI2YjY7IGJvcmRlci1y
aWdodDogMXB4IHNvbGlkICNiNmI2YjY7IGNvbG9yOiAjMDAwMDAwOyBtYXJnaW4tbGVmdDogMHB4
OyBtYXJnaW4tcmlnaHQ6IDBweDsgfQ0KLyogU2VhcmNoIEJveCAqLw0KLmRyb3Bkb3duc2VhcmNo
IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9waW5fMS5naWYpICNl
Y2VjZWM7IGJvcmRlcjogMXB4IHNvbGlkICM3ODc4Nzg7IHdpZHRoOiAyMDBweDsgfQ0KLmRyb3Bk
b3duc2VhcmNoc3BvdGxpZ2h0IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFw
aGl0ZS9zcG90bGlnaHRfYmcuZ2lmKSAjNGQ1OTZmIHJlcGVhdC14OyBoZWlnaHQ6IDI0cHg7IHBh
ZGRpbmc6IDNweCAxMXB4IDNweCAxMXB4OyB9DQouZHJvcGRvd25zZWFyY2hhZHZhbmNlZCB7IHBh
ZGRpbmc6IDRweCAwIDRweCAwOyB9DQouZHJvcGRvd25zZWFyY2hhZHZhbmNlZCBhIHsgY29sb3I6
ICMwMDAwMDA7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiAzcHggMTJweCAzcHggMTJweDsgdGV4
dC1kZWNvcmF0aW9uOiBub25lOyB9DQouZHJvcGRvd25zZWFyY2hhZHZhbmNlZCBhOmhvdmVyIHsg
YmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9waW5fMy5naWYpICM0ZDU5
NmY7IGNvbG9yOiAjZmZmZmZmOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0NCi8qIERyb3AgRG93
biBNZW51cyAqLw0KLmRyb3Bkb3duIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJn
cmFwaGl0ZS9waW5fMS5naWYpICNlY2VjZWM7IGJvcmRlcjogMXB4IHNvbGlkICM3ODc4Nzg7IGNv
bG9yOiAjMDAwMDAwOyBwYWRkaW5nOiA0cHggMCA0cHggMDsgd2lkdGg6IDE2MHB4OyB9DQouZHJv
cGRvd24yIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS90b29sYmFy
X2JnLmdpZikgI2Y0ZjRmNDsgY29sb3I6ICMwMDAwMDA7IHBhZGRpbmc6IDRweCAwIDRweCAwOyB3
aWR0aDogMTcwcHg7IH0NCi5kcm9wZG93biBkbCwgLmRyb3Bkb3duMiBkbCB7IGxpc3Qtc3R5bGU6
IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQ0KLmRyb3Bkb3duIGR0LCAuZHJvcGRvd24y
IGR0IHsgY29sb3I6ICM5MDkwOTA7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IDA7IHBhZGRpbmc6
IDNweCAxMXB4IDNweCAxMXB4OyB9DQouZHJvcGRvd24gZHQgYSwgLmRyb3Bkb3duMiBkdCBhIHsg
Y29sb3I6ICM5MDkwOTA7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KLmRyb3Bkb3duIGRkLCAu
ZHJvcGRvd24yIGRkIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9DQouZHJvcGRvd24gZGQgYSwg
LmRyb3Bkb3duIGRkIGE6YWN0aXZlLCAuZHJvcGRvd24gZGQgYTp2aXNpdGVkLCAuZHJvcGRvd24g
ZGQgYTpsaW5rLCAuZHJvcGRvd24yIGRkIGEsIC5kcm9wZG93bjIgZGQgYTphY3RpdmUsIC5kcm9w
ZG93bjIgZGQgYTp2aXNpdGVkLCAuZHJvcGRvd24yIGRkIGE6bGluayB7IGNvbG9yOiAjMDAwMDAw
OyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogM3B4IDIycHggM3B4IDIycHg7IHRleHQtZGVjb3Jh
dGlvbjogbm9uZTsgfQ0KLmRyb3Bkb3duIGRkIGE6aG92ZXIsIC5kcm9wZG93bjIgZGQgYTpob3Zl
ciB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcGluXzMuZ2lmKSAj
NGQ1OTZmOyBjb2xvcjogI2ZmZmZmZjsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQouZHJvcGRv
d24gLnNlcCwgLmRyb3Bkb3duMiAuc2VwIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9h
czJncmFwaGl0ZS9kcm9wZG93bl9zZXAuZ2lmKSByZXBlYXQteDsgZm9udC1zaXplOiAwOyBoZWln
aHQ6IDJweDsgbWFyZ2luOiA0cHggMCA0cHggMDsgfQ0KLyogTmF2IEJhciAqLw0KI2JyZWFkY3J1
bWIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3Bpbl8xLmdpZikg
I2VjZWNlYzsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiMmIyYjI7IGhlaWdodDogMzJweDsg
cGFkZGluZzogNnB4IDhweCA2cHggOHB4OyB9DQojYnJlYWRjcnVtYnNlbGYgeyBiYWNrZ3JvdW5k
OiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvbmF2Yml0c19zdGFydC5naWYpIG5v
LXJlcGVhdDsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogYm9sZDsgbGluZS1oZWlnaHQ6
IDEycHg7IHBhZGRpbmc6IDFweCAwIDRweCAyMnB4OyB9DQojYnJlYWRjcnVtYnN0YXJ0IHsgYmFj
a2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9taXNjL25hdmJpdHNfc3RhcnQu
Z2lmKSBuby1yZXBlYXQ7IGxpbmUtaGVpZ2h0OiAxMXB4OyBwYWRkaW5nOiAxcHggMCA0cHggMjJw
eDsgfQ0KI2JyZWFkY3J1bWJlbmQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdy
YXBoaXRlL21pc2MvbmF2Yml0c19maW5hbGxpbmsuZ2lmKSBuby1yZXBlYXQ7IGZvbnQtc2l6ZTog
MTJweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGxpbmUtaGVpZ2h0OiAxMnB4OyBwYWRkaW5nOiAycHgg
MCAycHggMzhweDsgfQ0KI2JyZWFkY3J1bWJlbmQgYSwgI2JyZWFkY3J1bWJzZWxmIGEgeyBjb2xv
cjogIzAwMDAwMDsgfQ0KI3BtYnViYmxlIHsgZmxvYXQ6IGxlZnQ7IHBhZGRpbmc6IDNweCA2cHgg
M3B4IDZweDsgfQ0KI3BtYnViYmxlIGEsICNwbWJ1YmJsZSBhOmxpbmssICNwbWJ1YmJsZSBhOmFj
dGl2ZSwgI3BtYnViYmxlIGE6dmlzaXRlZCwgI3BtYnViYmxlIGE6aG92ZXIgeyBiYWNrZ3JvdW5k
OiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3BtX2J1YmJsZS5naWYpIG5vLXJlcGVhdCBj
ZW50ZXI7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDI2cHg7IHdpZHRoOiAyNnB4OyB9DQovKiBH
bG9iYWwgKi8NCi5jbGVhciB7IGNsZWFyOiBib3RoOyBmb250LXNpemU6IDA7IH0NCi5waW4xIHsg
YmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9waW5fMS5naWYpICNlY2Vj
ZWM7IH0NCi5waW4zIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9w
aW5fMy5naWYpICM0ZDU5NmY7IGNvbG9yOiAjZmZmZmZmOyB9DQoucGluNCB7IGJhY2tncm91bmQ6
IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdG9vbGJhcl9iZy5naWYpICNmNGY0ZjQ7IH0N
Ci5hbHQzIHsgYmFja2dyb3VuZDogI2ZmZTFlMTsgfQ0KLmFxdWFnIHsgYmFja2dyb3VuZDogdXJs
KC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9hcXVhX2dyYXkuZ2lmKSAjZWFlYWVhIHJlcGVhdC14
OyBjb2xvcjogIzAwMDAwMDsgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogYm9sZDsgaGVp
Z2h0OiAxNXB4OyBtYXJnaW46IDBweDsgcGFkZGluZzogMHB4IDdweCAwcHggN3B4OyB9DQouYXF1
YWcyIHsgYmFja2dyb3VuZDogI2VhZWFlYTsgY29sb3I6ICMwMDAwMDA7IGZvbnQtc2l6ZTogMTBw
eDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHBhZGRpbmc6IDA7IH0NCi5hcXVhZyBhLCAuYXF1YWcgYTps
aW5rLCAuYXF1YWcgYTphY3RpdmUsIC5hcXVhZyBhOnZpc2l0ZWQsIC5hcXVhZzIgYSwgLmFxdWFn
MiBhOmxpbmssIC5hcXVhZzIgYTphY3RpdmUsIC5hcXVhZzIgYTp2aXNpdGVkIHsgY29sb3I6ICMw
MDAwMDA7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KLmFxdWFnIGE6aG92ZXIsIC5hcXVhZzIg
YTpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQouYm9yZGVybGVmdCB7IGJv
cmRlci1sZWZ0OiAxcHggc29saWQgI2MwYzBjMDsgfQ0KLmJvcmRlcnJpZ2h0IHsgYm9yZGVyLXJp
Z2h0OiAxcHggc29saWQgI2MwYzBjMDsgfQ0KLmJvcmRlcmJvdHRvbSB7IGJvcmRlci1ib3R0b206
IDFweCBzb2xpZCAjYzBjMGMwOyB9DQouYm9yZGVyYm90dG9tMiB7IGJvcmRlci1ib3R0b206IDFw
eCBzb2xpZCAjZDhkOGQ4OyB9DQouYm9yZGVydG9wIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNj
MGMwYzA7IH0NCi5kZXNjIHsgY29sb3I6ICM5OTk5OTk7IH0NCi5kZXNjMiB7IGNvbG9yOiAjZDhk
OGQ4OyB9DQouaW5saW5lbW9kIC5ib3JkZXJib3R0b20yIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNv
bGlkICNjMGMwYzA7IH0NCi5pbmxpbmVtb2QgLmRlc2MyIHsgY29sb3I6ICNjMGMwYzA7IH0NCi5h
bGVydCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvbWlzYy9hbGVy
dC5naWYpIG5vLXJlcGVhdCBsZWZ0OyBwYWRkaW5nOiAwIDAgMCAzNXB4OyB9DQouYWxlcnQgdWwg
eyBsaXN0LXN0eWxlOiBpbnNpZGU7IG1hcmdpbjogOHB4IDAgOHB4IDRweDsgcGFkZGluZzogMDsg
fQ0KLmFsZXJ0IHVsIGxpIHsgbWFyZ2luOiAwIDAgMCA0cHg7IHBhZGRpbmc6IDFweCAwIDFweCAw
OyB9DQoub2ZmbGluZW1lc3NhZ2UgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdy
YXBoaXRlL2dyYWRpZW50cy9hbGVydF9iZy5naWYpICNmZWUzZTMgcmVwZWF0LXg7IGJvcmRlcjog
MXB4IHNvbGlkICNjOWIwYjA7IGNvbG9yOiAjMzMwMDAwOyBmb250LXNpemU6IDEwcHg7IG1hcmdp
bjogMCBhdXRvIDAgYXV0bzsgbWluLXdpZHRoOiA3NzBweDsgcGFkZGluZzogMnB4OyB3aWR0aDog
OTUlOyB9DQoudGFiYm94IHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgYm9yZGVyLWJvdHRvbTogMXB4
IHNvbGlkICNkZGRkZGQ7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2JlYmViZTsgYm9yZGVyLXJp
Z2h0OiAxcHggc29saWQgI2JlYmViZTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNhMGEwYTA7IH0N
Ci8qIEJ1dHRvbnMgKi8NCi5ibmV3dGhyZWFkIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdl
cy9hczJncmFwaGl0ZS9idXR0b25zL25ld3RocmVhZC5naWYpIG5vLXJlcGVhdCAwcHggMHB4OyBk
aXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDI2cHg7IHdpZHRoOiAxMDhweDsg
fQ0KLmJuZXd0aHJlYWQ6YWN0aXZlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJn
cmFwaGl0ZS9idXR0b25zL25ld3RocmVhZC5naWYpIG5vLXJlcGVhdCAwcHggLTI2cHg7IH0NCi5i
bmV3cmVwbHkgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRv
bnMvcmVwbHkuZ2lmKSBuby1yZXBlYXQgMHB4IDBweDsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6
ZTogMDsgaGVpZ2h0OiAyNnB4OyB3aWR0aDogOTZweDsgfQ0KLmJuZXdyZXBseTphY3RpdmUgeyBi
YWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvcmVwbHkuZ2lm
KSBuby1yZXBlYXQgMHB4IC0yNnB4OyB9DQouYmNsb3NlZCB7IGJhY2tncm91bmQ6IHVybCguLi8u
Li9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy90aHJlYWRjbG9zZWQuZ2lmKSBuby1yZXBlYXQ7
IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDA7IGhlaWdodDogMjZweDsgd2lkdGg6IDc1cHg7
IH0NCi5iY29udGludWUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRl
L2J1dHRvbnMvY29udGludWUuZ2lmKSBuby1yZXBlYXQgMHB4IDBweDsgZGlzcGxheTogYmxvY2s7
IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAyNnB4OyB3aWR0aDogOTBweDsgfQ0KLmJjb250aW51ZTph
Y3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMv
Y29udGludWUuZ2lmKSBuby1yZXBlYXQgMHB4IC0yNnB4OyB9DQouYnJlc2V0IHsgYmFja2dyb3Vu
ZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3Jlc2V0LmdpZikgbm8tcmVw
ZWF0IDBweCAwcHg7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDA7IGhlaWdodDogMjZweDsg
d2lkdGg6IDY3cHg7IH0NCi5icmVzZXQ6YWN0aXZlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2lt
YWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3Jlc2V0LmdpZikgbm8tcmVwZWF0IDBweCAtMjZweDsg
fQ0KLmJjb21wbGV0ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUv
YnV0dG9ucy9jb21wbGV0ZS5naWYpIG5vLXJlcGVhdCAwcHggMHB4OyBkaXNwbGF5OiBibG9jazsg
Zm9udC1zaXplOiAwOyBoZWlnaHQ6IDI2cHg7IHdpZHRoOiA5M3B4OyB9DQouYmNvbXBsZXRlOmFj
dGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9j
b21wbGV0ZS5naWYpIG5vLXJlcGVhdCAwcHggLTI2cHg7IH0NCi5ic2F2ZWNoYW5nZXMgeyBiYWNr
Z3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvc2F2ZWNoYW5nZXMu
Z2lmKSBuby1yZXBlYXQgMHB4IDBweDsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMDsgaGVp
Z2h0OiAyNnB4OyB3aWR0aDogMTE5cHg7IH0NCi5ic2F2ZWNoYW5nZXM6YWN0aXZlIHsgYmFja2dy
b3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3NhdmVjaGFuZ2VzLmdp
Zikgbm8tcmVwZWF0IDBweCAtMjZweDsgfQ0KLmJwcmV2aWV3IHsgYmFja2dyb3VuZDogdXJsKC4u
Ly4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3ByZXZpZXcuZ2lmKSBuby1yZXBlYXQgMHB4
IDBweDsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAyNnB4OyB3aWR0aDog
ODBweDsgfQ0KLmJwcmV2aWV3OmFjdGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMv
YXMyZ3JhcGhpdGUvYnV0dG9ucy9wcmV2aWV3LmdpZikgbm8tcmVwZWF0IDBweCAtMjZweDsgfQ0K
LyogUG9zdGluZyBSdWxlcyAqLw0KLnJ1bGVzY2FwdGlvbiB7IGJhY2tncm91bmQ6IHVybCguLi8u
Li9pbWFnZXMvYXMyZ3JhcGhpdGUvcnVsZXNfY2FwdGlvbi5naWYpICNjZmNmY2YgcmVwZWF0LXg7
IGZvbnQtc2l6ZTogMTFweDsgaGVpZ2h0OiAxNXB4OyBsaW5lLWhlaWdodDogMTVweDsgcGFkZGlu
ZzogMCA2cHggMCAxN3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0NCi5ydWxlc2NhcHRpb24gYSB7
IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9ydWxlc19j
b2xsYXBzZS5naWYpIG5vLXJlcGVhdCAwcHggMHB4OyBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IHJp
Z2h0OyBmb250LXNpemU6IDA7IGhlaWdodDogMTFweDsgbWFyZ2luOiAycHggMCAycHggMDsgd2lk
dGg6IDE5cHg7IH0NCi5ydWxlc2NhcHRpb24gYTphY3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4v
Li4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvcnVsZXNfY29sbGFwc2UuZ2lmKSBuby1yZXBl
YXQgMHB4IC0xMXB4OyB9DQovKiBQcm9ncmVzcyBCYXIgKi8NCi5wcm9ncmVzc2JhciB7IGJhY2tn
cm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcHJvZ3Jlc3NfYmcuZ2lmKSAjZGFk
YWRhIG5vLXJlcGVhdDsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDE2cHg7IHBhZGRpbmc6IDAgM3B4
IDRweCAzcHg7IHdpZHRoOiAxOTRweDsgfQ0KLnByb2dyZXNzYmFyIGRpdiB7IGJhY2tncm91bmQ6
IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcHJvZ3Jlc3MuZ2lmKSAjODM5NmFmIHJlcGVh
dC14OyBmb250LXNpemU6IDA7IGhlaWdodDogMTZweDsgfQ0KLnN0b3JhZ2VzcGFjZSB7IGJhY2tn
cm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvbWlzYy9zdG9yYWdlX3NwYWNlLmdp
ZikgI2QyZDJkMiByZXBlYXQteDsgYm9yZGVyOiAxcHggc29saWQgIzZlNmU2ZTsgaGVpZ2h0OiA4
cHg7IH0NCi5zdG9yYWdlc3BhY2UgdGQgeyBmb250LXNpemU6IDA7IGhlaWdodDogOHB4OyB9DQou
c3RvcmFnZXNwYWNldXNlZCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhp
dGUvbWlzYy9zdG9yYWdlX3NwYWNlLmdpZikgIzgzOTZhZiByZXBlYXQteCAwcHggLThweDsgZm9u
dC1zaXplOiAwOyBoZWlnaHQ6IDhweDsgfQ0KLyogUG9zdGJpdCAqLw0KLmF2YXRhciBpbWcgeyBi
YWNrZ3JvdW5kOiAjZmZmZmZmOyBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4OyBtYXJnaW46IDAg
YXV0byAwIGF1dG87IHBhZGRpbmc6IDVweDsgfQ0KLnBvc3R0aXRsZSBhLCAucG9zdHRpdGxlIGE6
aG92ZXIsIC5wb3N0dGl0bGUgYTphY3RpdmUsIC5wb3N0dGl0bGUgYTp2aXNpdGVkIHsgY29sb3I6
ICMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KLnBvc3QgeyBwYWRkaW5nOiAxMHB4
IDAgMTVweCAwOyB9DQouc2lnIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFw
aGl0ZS9zaWcuZ2lmKSBuby1yZXBlYXQ7IGNvbG9yOiAjNjY2NjY2OyBmb250LXNpemU6IDEwcHg7
IHBhZGRpbmc6IDZweCAwIDVweCAwOyB9DQovKiBSZWdpc3RyYXRpb24gKi8NCiNyZWdpc3RlciB7
IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcmVnaXN0ZXJfYmcucG5n
KSBuby1yZXBlYXQ7IHBhZGRpbmc6IDE2cHggMjdweCAxNnB4IDE3MnB4OyB9DQojcmVnaXN0ZXIg
LmJveCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdHJhbnNwYXJl
bnQucG5nKTsgYm9yZGVyOiAxcHggc29saWQgIzkwOTA5MDsgZm9udC1zaXplOiAxMnB4OyBwYWRk
aW5nOiAxNnB4OyB9DQojcmVnaXN0ZXIgLmJveGllIHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgYm9y
ZGVyOiAxcHggc29saWQgIzkwOTA5MDsgZm9udC1zaXplOiAxMnB4OyBwYWRkaW5nOiAxNnB4OyB9
DQojcmVnaXN0ZXIgLmJveCB0ZCwgI3JlZ2lzdGVyIC5ib3hpZSB0ZCB7IGZvbnQtc2l6ZTogMTJw
eDsgfQ0KI3JlZ2lzdGVyIC50aXRsZSB7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IGJv
bGQ7IHBhZGRpbmctYm90dG9tOiA0cHg7IH0NCi8qIFBvc3RpbmcgKi8NCi5wZm9udCwgLnBmb250
IHRkIHsgZm9udC1zaXplOiAxMnB4OyB9DQoucGNhcHRpb24geyBmb250LXNpemU6IDEzcHg7IH0N
Ci8qIEFsZXJ0IFBvcHVwICovDQojcG1fcG9wdXAgeyBtYXJnaW46IDAgMjAlIDAgMjAlOyBwb3Np
dGlvbjogZml4ZWQ7IHRleHQtYWxpZ246IGNlbnRlcjsgdG9wOiAyMDBweDsgd2lkdGg6IDYwJTsg
fQ0KLmFsZXJ0bWlkIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9j
YXB0aW9uX2FsZXJ0LmdpZikgcmVwZWF0LXggMHB4IC02NnB4OyBmb250OiAxM3B4LzIycHggIkx1
Y2lkYSBHcmFuZGUiLCBMdWNpZGFHcmFuZGUsIEx1Y2lkYSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fu
cy1zZXJpZjsgaGVpZ2h0OiAyMnB4OyBtYXJnaW46IDAgNjVweCAwIDY1cHg7IHRleHQtYWxpZ246
IGNlbnRlcjsgfQ0KLmFsZXJ0cmlnaHQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2Fz
MmdyYXBoaXRlL2NhcHRpb25fYWxlcnQuZ2lmKSByZXBlYXQteCAwcHggLTQ0cHg7IGZsb2F0OiBy
aWdodDsgaGVpZ2h0OiAyMnB4OyB3aWR0aDogNjVweDsgfQ0KLmFsZXJ0bGVmdCB7IGZsb2F0OiBs
ZWZ0OyBoZWlnaHQ6IDIycHg7IHdpZHRoOiA2NXB4OyB9DQouYWxlcnRsZWZ0IGEgeyBiYWNrZ3Jv
dW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2NhcHRpb25fYWxlcnQuZ2lmKSByZXBl
YXQteCAwcHggMHB4OyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAyMnB4OyB3aWR0aDogNjVweDsg
fQ0KLmFsZXJ0bGVmdCBhOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMy
Z3JhcGhpdGUvY2FwdGlvbl9hbGVydC5naWYpIHJlcGVhdC14IDBweCAtMjJweDsgfQ0KLmFsZXJ0
Ym94IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS90b29sYmFyX2Jn
LmdpZikgI2Y0ZjRmNDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiNWI1YjU7IGJvcmRlci1s
ZWZ0OiAxcHggc29saWQgI2I1YjViNTsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2I1YjViNTsg
Ym9yZGVyLXRvcDogMXB4IHNvbGlkICM4YzhjOGM7IGNsZWFyOiBib3RoOyBwYWRkaW5nOiAxNnB4
OyB9DQouYmFsZXJ0cmVhZCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhp
dGUvYnV0dG9ucy9hbGVydF9idXR0b25zLmdpZikgbm8tcmVwZWF0IC02N3B4IDBweDsgZGlzcGxh
eTogYmxvY2s7IGZsb2F0OiByaWdodDsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDI2cHg7IHdpZHRo
OiAxNTJweDsgfQ0KLmJhbGVydHJlYWQ6YWN0aXZlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2lt
YWdlcy9hczJncmFwaGl0ZS9idXR0b25zL2FsZXJ0X2J1dHRvbnMuZ2lmKSBuby1yZXBlYXQgLTY3
cHggLTI2cHg7IH0NCi5iYWxlcnRjbG9zZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMv
YXMyZ3JhcGhpdGUvYnV0dG9ucy9hbGVydF9idXR0b25zLmdpZikgbm8tcmVwZWF0IDBweCAwcHg7
IGRpc3BsYXk6IGJsb2NrOyBmbG9hdDogcmlnaHQ7IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAyNnB4
OyBtYXJnaW4tcmlnaHQ6IDZweDsgd2lkdGg6IDY3cHg7IH0NCi5iYWxlcnRjbG9zZTphY3RpdmUg
eyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvYWxlcnRf
YnV0dG9ucy5naWYpIG5vLXJlcGVhdCAwcHggLTI2cHg7IH1fEFFodHRwOi8vd3d3Lm1hY2l0eW5l
dC5pdC9mb3J1bS9jbGllbnRzY3JpcHQvdmJ1bGxldGluX2Nzcy9zdHlsZS02ZWVmZTE4NS0wMDAx
MC5jc3NYdGV4dC9jc3PUBQYHCA4PEBFPEQSFYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2
ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291
cmNlUmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4P
EBESExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhS
JDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWABoAAI0GkHPEbVw+/EYHAEAAjQaQc
8RniobaAHCNBpB4MriUrkYAC0yorGSEtLldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxA+aHR0
cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vY2xpZW50c2NyaXB0L3ZidWxsZXRpbl9nbG9iYWwu
anPSMTIzNFgkY2xhc3Nlc1okY2xhc3NuYW1lozQ1NlVOU1VSTFYlTlNVUkxYTlNPYmplY3RfEBhh
cHBsaWNhdGlvbi94LWphdmFzY3JpcHTTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5vYmplY3RzV05T
LmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmACoALgAyADYAO
gA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVjdGlvblREYXRl
XkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBhY2hlLzEuMy4y
OV8QHVdlZCwgMDMgTWF5IDIwMDYgMTM6NTg6MjQgR01UVWJ5dGVzXxAdU3VuLCAwNyBNYXkgMjAw
NiAxODo0ODo0MiBHTVRVMzMyMTZfEBJ0aW1lb3V0PTUsIG1heD0xMDBfEBYiZTIzOTRiLTgxYzAt
NDQ1OGI3MDAi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSMTJp
aqJqNl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hUVFBVUkxSZXNw
b25zZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCwALQAtwC7AL4A
wQDFAMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsBIwEvATEBMwE1
AXYBewGEAY8BkwGZAaABqQHEAcsBzQHPAdEB2AHjAesB9QH3AfkB+wH9Af8CAQIDAgUCBwIRAhMC
FQIXAhkCGwIdAh8CIQIjAiUCLAI6AkgCUwJYAmcCcgJ3AoQCkgKyArgC2ALeAvMDDAMRAxUDKwM4
Az0DQANcA2EDZQN5AAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA4dPEYHALyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09KlwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgfHwKfHwgIyB2QnVsbGV0aW4gMy41LjQKfHwgIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tICMgfHwKfHwgIyBDb3B5cmlnaHQgqTIwMDAtMjAwNiBKZWxzb2Z0IEVudGVycHJpc2VzIEx0
ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gfHwKfHwgIyBUaGlzIGZpbGUgbWF5IG5vdCBiZSByZWRp
c3RyaWJ1dGVkIGluIHdob2xlIG9yIHNpZ25pZmljYW50IHBhcnQuICMgfHwKfHwgIyAtLS0tLS0t
LS0tLS0tLS0tIFZCVUxMRVRJTiBJUyBOT1QgRlJFRSBTT0ZUV0FSRSAtLS0tLS0tLS0tLS0tLS0t
ICMgfHwKfHwgIyBodHRwOi8vd3d3LnZidWxsZXRpbi5jb20gfCBodHRwOi8vd3d3LnZidWxsZXRp
bi5jb20vbGljZW5zZS5odG1sICMgfHwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgfHwKXCo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ki8KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIEluaXRpYWwgc2V0dXAKCi8vIGVuc3VyZSBT
RVNTSU9OVVJMIGV4aXN0cwppZiAodHlwZW9mIFNFU1NJT05VUkwgPT0gJ3VuZGVmaW5lZCcpCnsK
CVNFU1NJT05VUkwgPSAnJzsKfQoKLy8gZW5zdXJlIHZicGhyYXNlIGV4aXN0cwppZiAodHlwZW9m
IHZicGhyYXNlID09ICd1bmRlZmluZWQnKQp7Cgl2YnBocmFzZSA9IG5ldyBBcnJheSgpOwp9Cgov
LyBBcnJheSBvZiBtZXNzYWdlIGVkaXRvciBvYmplY3RzCnZhciB2Ql9FZGl0b3IgPSBuZXcgQXJy
YXkoKTsKCi8vIElnbm9yZSBjaGFyYWN0ZXJzIHdpdGhpbiBbcXVvdGVdIHRhZ3MgaW4gbWVzc2Fn
ZXMgZm9yIGxlbmd0aCBjaGVjawp2YXIgaWdub3JlcXVvdGVjaGFycyA9IGZhbHNlOwoKLy8gTnVt
YmVyIG9mIHBhZ2VuYXYgaXRlbXMgZGVhbHQgd2l0aCBzbyBmYXIKdmFyIHBhZ2VuYXZjb3VudGVy
ID0gMDsKCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIEJyb3dzZXIgZGV0ZWN0aW9uIGFuZCBs
aW1pdGF0aW9uIHdvcmthcm91bmRzCgovLyBEZWZpbmUgdGhlIGJyb3dzZXIgd2UgaGF2ZSBpbnN0
ZWFkIG9mIG11bHRpcGxlIGNhbGxzIHRocm91Z2hvdXQgdGhlIGZpbGUKdmFyIHVzZXJBZ2VudCA9
IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTsKdmFyIGlzX29wZXJhICA9ICh1c2Vy
QWdlbnQuaW5kZXhPZignb3BlcmEnKSAhPSAtMSk7CnZhciBpc19zYWYgICAgPSAoKHVzZXJBZ2Vu
dC5pbmRleE9mKCdhcHBsZXdlYmtpdCcpICE9IC0xKSB8fCAobmF2aWdhdG9yLnZlbmRvciA9PSAn
QXBwbGUgQ29tcHV0ZXIsIEluYy4nKSk7CnZhciBpc193ZWJ0diAgPSAodXNlckFnZW50LmluZGV4
T2YoJ3dlYnR2JykgIT0gLTEpOwp2YXIgaXNfaWUgICAgID0gKCh1c2VyQWdlbnQuaW5kZXhPZign
bXNpZScpICE9IC0xKSAmJiAoIWlzX29wZXJhKSAmJiAoIWlzX3NhZikgJiYgKCFpc193ZWJ0dikp
Owp2YXIgaXNfaWU0ICAgID0gKChpc19pZSkgJiYgKHVzZXJBZ2VudC5pbmRleE9mKCdtc2llIDQu
JykgIT0gLTEpKTsKdmFyIGlzX21veiAgICA9ICgobmF2aWdhdG9yLnByb2R1Y3QgPT0gJ0dlY2tv
JykgJiYgKCFpc19zYWYpKTsKdmFyIGlzX2tvbiAgICA9ICh1c2VyQWdlbnQuaW5kZXhPZigna29u
cXVlcm9yJykgIT0gLTEpOwp2YXIgaXNfbnMgICAgID0gKCh1c2VyQWdlbnQuaW5kZXhPZignY29t
cGF0aWJsZScpID09IC0xKSAmJiAodXNlckFnZW50LmluZGV4T2YoJ21vemlsbGEnKSAhPSAtMSkg
JiYgKCFpc19vcGVyYSkgJiYgKCFpc193ZWJ0dikgJiYgKCFpc19zYWYpKTsKdmFyIGlzX25zNCAg
ICA9ICgoaXNfbnMpICYmIChwYXJzZUludChuYXZpZ2F0b3IuYXBwVmVyc2lvbikgPT0gNCkpOwp2
YXIgaXNfbWFjICAgID0gKHVzZXJBZ2VudC5pbmRleE9mKCdtYWMnKSAhPSAtMSk7CgovLyBDYXRj
aCBwb3NzaWJsZSBidWdzIHdpdGggV2ViVFYgYW5kIG90aGVyIG9sZGVyIGJyb3dzZXJzCnZhciBp
c19yZWdleHAgPSAod2luZG93LlJlZ0V4cCkgPyB0cnVlIDogZmFsc2U7CgovLyBJcyB0aGUgdmlz
aXRpbmcgYnJvd3NlciBjb21wYXRpYmxlIHdpdGggQUpBWD8KdmFyIEFKQVhfQ29tcGF0aWJsZSA9
IGZhbHNlOwoKLy8gSGVscCBvdXQgb2xkIHZlcnNpb25zIG9mIElFIHRoYXQgZG9uJ3QgdW5kZXJz
dGFuZCBlbGVtZW50LnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJwp2YXIgcG9pbnRlcl9jdXJzb3Ig
PSAoaXNfaWUgPyAnaGFuZCcgOiAncG9pbnRlcicpOwoKLyoqCiogV29ya2Fyb3VuZCBmb3IgaGVp
bm91cyBJRSBidWcgLSBhZGQgc3BlY2lhbCB2Qmxlbmd0aCBwcm9wZXJ0eSB0byBhbGwgc3RyaW5n
cwoqIFRoaXMgbWV0aG9kIGlzIGFwcGxpZWQgdG8gQUxMIHN0cmluZyBvYmplY3RzIGF1dG9tYXRp
Y2FsbHkKKgoqIEByZXR1cm4JaW50ZWdlcgoqLwpTdHJpbmcucHJvdG90eXBlLnZCbGVuZ3RoID0g
ZnVuY3Rpb24oKQp7CglyZXR1cm4gKGlzX2llICYmIHRoaXMuaW5kZXhPZignXG4nKSAhPSAtMSkg
PyB0aGlzLnJlcGxhY2UoL1xyP1xuL2csICdfJykubGVuZ3RoIDogdGhpcy5sZW5ndGg7Cn0KCi8q
KgoqIFBvcCBmdW5jdGlvbiBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBoYXZlIGl0IGJ1aWx0IGlu
CioKKiBAcGFyYW0JYXJyYXkJQXJyYXkgZnJvbSB3aGljaCB0byBwb3AKKgoqIEByZXR1cm4JbWl4
ZWQJbnVsbCBvbiBlbXB0eSwgdmFsdWUgb24gc3VjY2VzcwoqLwpmdW5jdGlvbiBhcnJheV9wb3Ao
YSkKewoJaWYgKHR5cGVvZiBhICE9ICdvYmplY3QnIHx8ICFhLmxlbmd0aCkKCXsKCQlyZXR1cm4g
bnVsbDsKCX0KCWVsc2UKCXsKCQl2YXIgcmVzcG9uc2UgPSBhW2EubGVuZ3RoIC0gMV07CgkJYS5s
ZW5ndGgtLTsKCQlyZXR1cm4gcmVzcG9uc2U7Cgl9Cn0KCi8qKgoqIFB1c2ggZnVuY3Rpb24gZm9y
IGJyb3dzZXJzIHRoYXQgZG9uJ3QgaGF2ZSBpdCBidWlsdCBpbgoqCiogQHBhcmFtCWFycmF5CUFy
cmF5IG9udG8gd2hpY2ggdG8gcHVzaAoqIEBwYXJhbQltaXhlZAlWYWx1ZSB0byBwdXNoIG9udG8g
YXJyYXkKKgoqIEByZXR1cm4JaW50ZWdlcglMZW5ndGggb2YgYXJyYXkKKi8KZnVuY3Rpb24gYXJy
YXlfcHVzaChhLCB2YWx1ZSkKewoJYVthLmxlbmd0aF0gPSB2YWx1ZTsKCXJldHVybiBhLmxlbmd0
aDsKfQoKLyoqCiogRnVuY3Rpb24gdG8gZW11bGF0ZSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZAoq
CiogQHBhcmFtCXN0cmluZwlPYmplY3QgSUQKKgoqIEByZXR1cm4JbWl4ZWQJbnVsbCBpZiBub3Qg
Zm91bmQsIG9iamVjdCBpZiBmb3VuZAoqLwpmdW5jdGlvbiBmZXRjaF9vYmplY3QoaWRuYW1lKQp7
CglpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQpCgl7CgkJcmV0dXJuIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGlkbmFtZSk7Cgl9CgllbHNlIGlmIChkb2N1bWVudC5hbGwpCgl7CgkJcmV0dXJu
IGRvY3VtZW50LmFsbFtpZG5hbWVdOwoJfQoJZWxzZSBpZiAoZG9jdW1lbnQubGF5ZXJzKQoJewoJ
CXJldHVybiBkb2N1bWVudC5sYXllcnNbaWRuYW1lXTsKCX0KCWVsc2UKCXsKCQlyZXR1cm4gbnVs
bDsKCX0KfQoKLyoqCiogRnVuY3Rpb24gdG8gZW11bGF0ZSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZQoqCiogQHBhcmFtCW9iamVjdAlQYXJlbnQgdGFnIChlZzogZG9jdW1lbnQpCiogQHBh
cmFtCXN0cmluZwlUYWcgdHlwZSAoZWc6ICd0ZCcpCioKKiBAcmV0dXJuCWFycmF5CiovCmZ1bmN0
aW9uIGZldGNoX3RhZ3MocGFyZW50b2JqLCB0YWcpCnsKCWlmICh0eXBlb2YgcGFyZW50b2JqLmdl
dEVsZW1lbnRzQnlUYWdOYW1lICE9ICd1bmRlZmluZWQnKQoJewoJCXJldHVybiBwYXJlbnRvYmou
Z2V0RWxlbWVudHNCeVRhZ05hbWUodGFnKTsKCX0KCWVsc2UgaWYgKHBhcmVudG9iai5hbGwgJiYg
cGFyZW50b2JqLmFsbC50YWdzKQoJewoJCXJldHVybiBwYXJlbnRvYmouYWxsLnRhZ3ModGFnKTsK
CX0KCWVsc2UKCXsKCQlyZXR1cm4gbnVsbDsKCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
Ly8gRXZlbnQgaGFuZGxlcnMKCi8qKgoqIEhhbmRsZXMgdGhlIGRpZmZlcmVudCBldmVudCBtb2Rl
bHMgb2YgZGlmZmVyZW50IGJyb3dzZXJzIGFuZCBwcmV2ZW50cyBldmVudCBidWJibGluZwoqCiog
QHBhcmFtCWV2ZW50CUV2ZW50IG9iamVjdAoqCiogQHJldHVybglldmVudAoqLwpmdW5jdGlvbiBk
b19hbl9lKGV2ZW50b2JqKQp7CglpZiAoIWV2ZW50b2JqIHx8IGlzX2llKQoJewoJCXdpbmRvdy5l
dmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlOwoJCXdpbmRvdy5ldmVudC5jYW5jZWxCdWJibGUgPSB0
cnVlOwoJCXJldHVybiB3aW5kb3cuZXZlbnQ7Cgl9CgllbHNlCgl7CgkJZXZlbnRvYmouc3RvcFBy
b3BhZ2F0aW9uKCk7CgkJZXZlbnRvYmoucHJldmVudERlZmF1bHQoKTsKCQlyZXR1cm4gZXZlbnRv
Ymo7Cgl9Cn0KCi8qKgoqIEhhbmRsZXMgdGhlIGRpZmZlcmVudCBldmVudCBtb2RlbHMgb2YgZGlm
ZmVyZW50IGJyb3dzZXJzIGFuZCBwcmV2ZW50cyBldmVudCBidWJibGluZyBpbiBhIGxlc3NlciB3
YXkgdGhhbiBkb19hbl9lKCkKKgoqIEBwYXJhbQlldmVudAlFdmVudCBvYmplY3QKKgoqIEByZXR1
cm4JZXZlbnQKKi8KZnVuY3Rpb24gZV9ieV9ndW0oZXZlbnRvYmopCnsKCWlmICghZXZlbnRvYmog
fHwgaXNfaWUpCgl7CgkJd2luZG93LmV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7CgkJcmV0dXJu
IHdpbmRvdy5ldmVudDsKCX0KCWVsc2UKCXsKCQlpZiAoZXZlbnRvYmoudGFyZ2V0LnR5cGUgPT0g
J3N1Ym1pdCcpCgkJewoJCQkvLyBuYXVnaHR5IHNhZmFyaQoJCQlldmVudG9iai50YXJnZXQuZm9y
bS5zdWJtaXQoKTsKCQl9CgkJZXZlbnRvYmouc3RvcFByb3BhZ2F0aW9uKCk7CgkJcmV0dXJuIGV2
ZW50b2JqOwoJfQp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBNZXNzYWdlIG1hbmlwdWxh
dGlvbiBhbmQgdmFsaWRhdGlvbgoKLyoqCiogQ2hlY2tzIHRoYXQgYSBtZXNzYWdlIGlzIHZhbGlk
IGZvciBzdWJtaXNzaW9uIHRvIFBIUAoqCiogQHBhcmFtCXN0cmluZwlNZXNzYWdlIHRleHQKKiBA
cGFyYW0JbWl4ZWQJRWl0aGVyIHN1YmplY3QgdGV4dCAoaWYgeW91IHdhbnQgdG8gbWFrZSBzdXJl
IGl0IGV4aXN0cykgb3IgMCBpZiB5b3UgZG9uJ3QgY2FyZQoqIEBwYXJhbQlpbnRlZ2VyCU1pbmlt
dW0gYWNjZXB0YWJsZSBjaGFyYWN0ZXIgbGltaXQgZm9yIHRoZSBtZXNzYWdlCioKKiBAcmV0dXJu
CWJvb2xlYW4KKi8KZnVuY3Rpb24gdmFsaWRhdGVtZXNzYWdlKG1lc3NhZ2V0ZXh0LCBzdWJqZWN0
dGV4dCwgbWluY2hhcnMpCnsKCWlmIChpc19rb24gfHwgaXNfc2FmIHx8IGlzX3dlYnR2KQoJewoJ
CS8vIGlnbm9yZSBsZXNzLXRoYW4tY2FwYWJsZSBicm93c2VycwoJCXJldHVybiB0cnVlOwoJfQoJ
ZWxzZSBpZiAoc3ViamVjdHRleHQubGVuZ3RoIDwgMSkKCXsKCQkvLyBzdWJqZWN0IG5vdCBzcGVj
aWZpZWQKCQlhbGVydCh2YnBocmFzZVsnbXVzdF9lbnRlcl9zdWJqZWN0J10pOwoJCXJldHVybiBm
YWxzZTsKCX0KCWVsc2UKCXsKCQl2YXIgc3RyaXBwZWQgPSBQSFAudHJpbShzdHJpcGNvZGUobWVz
c2FnZXRleHQsIGZhbHNlLCBpZ25vcmVxdW90ZWNoYXJzKSk7CgoJCWlmIChzdHJpcHBlZC5sZW5n
dGggPCBtaW5jaGFycykKCQl7CgkJCS8vIG1pbmltdW0gbWVzc2FnZSBsZW5ndGggbm90IG1ldAoJ
CQlhbGVydChjb25zdHJ1Y3RfcGhyYXNlKHZicGhyYXNlWydtZXNzYWdlX3Rvb19zaG9ydCddLCBt
aW5jaGFycykpOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWVsc2UKCQl7CgkJCS8vIGV2ZXJ5dGhp
bmcgc2VlbXMgb2sKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQp9CgovKioKKiBTdHJpcHMgcXVvdGVz
IGFuZCBiYmNvZGUgdGFncyBmcm9tIHRleHQKKgoqIEBwYXJhbQlzdHJpbmcJVGV4dCB0byBtYW5p
cHVsYXRlCiogQHBhcmFtCWJvb2xlYW4JSWYgdHJ1ZSwgc3RyaXAgPHg+IG90aGVyd2lzZSBzdHJp
cCBbeF0KKiBAcGFyYW0JYm9vbGVhbglJZiB0cnVlLCBzdHJpcCBhbGwgW3F1b3RlXS4uLmNvbnRl
bnRzLi4uWy9xdW90ZV0KKgoqIEByZXR1cm4Jc3RyaW5nCiovCmZ1bmN0aW9uIHN0cmlwY29kZShz
dHIsIGlzaHRtbCwgc3RyaXBxdW90ZXMpCnsKCWlmICghaXNfcmVnZXhwKQoJewoJCXJldHVybiBz
dHI7Cgl9CgoJaWYgKHN0cmlwcXVvdGVzKQoJewoJCXZhciBzdGFydF90aW1lID0gbmV3IERhdGUo
KS5nZXRUaW1lKCk7CgoJCXdoaWxlICgoc3RhcnRpbmRleCA9IFBIUC5zdHJpcG9zKHN0ciwgJ1tx
dW90ZScpKSAhPT0gZmFsc2UpCgkJewoJCQlpZiAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFy
dF90aW1lID4gMjAwMCkKCQkJewoJCQkJLy8gd2hpbGUgbG9vcCBoYXMgYmVlbiBydW5uaW5nIGZv
ciBvdmVyIDIgc2Vjb25kcyBhbmQgaGFzIHByb2JhYmx5IGdvbmUgaW5maW5pdGUKCQkJCWJyZWFr
OwoJCQl9CgoJCQlpZiAoKHN0b3BpbmRleCA9IFBIUC5zdHJpcG9zKHN0ciwgJ1svcXVvdGVdJykp
ICE9PSBmYWxzZSkKCQkJewoJCQkJZnJhZ21lbnQgPSBzdHIuc3Vic3RyKHN0YXJ0aW5kZXgsIHN0
b3BpbmRleCAtIHN0YXJ0aW5kZXggKyA4KTsKCQkJCXN0ciA9IHN0ci5yZXBsYWNlKGZyYWdtZW50
LCAnJyk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlicmVhazsKCQkJfQoJCQlzdHIgPSBQSFAudHJp
bShzdHIpOwoJCX0KCX0KCglpZiAoaXNodG1sKQoJewoJCS8vIGV4ZW1wdCBpbWFnZSB0YWdzIC0t
IHRoZXkgbmVlZCB0byBjb3VudCBhcyBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcKCQkvLyBhcyB0
aGUgZG8gYXMgQkIgY29kZXMKCQlzdHIgPSBzdHIucmVwbGFjZSgvPGltZ1tePl0rc3JjPSIoW14i
XSspIltePl0qPi9naSwgJyQxJyk7CgoJCXZhciBodG1sMSA9IG5ldyBSZWdFeHAoIjwoXFx3Kylb
Xj5dKj4iLCAnZ2knKTsKCQl2YXIgaHRtbDIgPSBuZXcgUmVnRXhwKCI8XFwvXFx3Kz4iLCAnZ2kn
KTsKCgkJc3RyID0gc3RyLnJlcGxhY2UoaHRtbDEsICcnKTsKCQlzdHIgPSBzdHIucmVwbGFjZSho
dG1sMiwgJycpOwoKCQl2YXIgaHRtbDMgPSBuZXcgUmVnRXhwKCcoJm5ic3A7KScsICdnaScpOwoJ
CXN0ciA9IHN0ci5yZXBsYWNlKGh0bWwzLCAnICcpOwoJfQoJZWxzZQoJewoJCXZhciBiYmNvZGUx
ID0gbmV3IFJlZ0V4cCgiXFxbKFxcdyspW15cXF1dKlxcXSIsICdnaScpOwoJCXZhciBiYmNvZGUy
ID0gbmV3IFJlZ0V4cCgiXFxbXFwvKFxcdyspXFxdIiwgJ2dpJyk7CgoJCXN0ciA9IHN0ci5yZXBs
YWNlKGJiY29kZTEsICcnKTsKCQlzdHIgPSBzdHIucmVwbGFjZShiYmNvZGUyLCAnJyk7Cgl9CgoJ
cmV0dXJuIHN0cjsKfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gdkJfUEhQX0VtdWxhdG9y
IGNsYXNzCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovKioKKiBQSFAgRnVuY3Rpb24gRW11bGF0
b3IgQ2xhc3MKKi8KZnVuY3Rpb24gdkJfUEhQX0VtdWxhdG9yKCkKewp9CgovLyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQovLyB2Ql9QSFBfRW11bGF0b3IgTWV0aG9kcwoKLyoqCiogRmluZCBhIHN0cmlu
ZyB3aXRoaW4gYSBzdHJpbmcgKGNhc2UgaW5zZW5zaXRpdmUpCioKKiBAcGFyYW0Jc3RyaW5nCUhh
eXN0YWNrCiogQHBhcmFtCXN0cmluZwlOZWVkbGUKKiBAcGFyYW0JaW50ZWdlcglPZmZzZXQKKgoq
IEByZXR1cm4JbWl4ZWQJTm90IGZvdW5kOiBmYWxzZSAvIEZvdW5kOiBpbnRlZ2VyIHBvc2l0aW9u
CiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUuc3RyaXBvcyA9IGZ1bmN0aW9uKGhheXN0YWNr
LCBuZWVkbGUsIG9mZnNldCkKewoJaWYgKHR5cGVvZiBvZmZzZXQgPT0gJ3VuZGVmaW5lZCcpCgl7
CgkJb2Zmc2V0ID0gMDsKCX0KCglpbmRleCA9IGhheXN0YWNrLnRvTG93ZXJDYXNlKCkuaW5kZXhP
ZihuZWVkbGUudG9Mb3dlckNhc2UoKSwgb2Zmc2V0KTsKCglyZXR1cm4gKGluZGV4ID09IC0xID8g
ZmFsc2UgOiBpbmRleCk7Cn0KCi8qKgoqIFRyaW1zIGxlYWRpbmcgd2hpdGVzcGFjZQoqCiogQHBh
cmFtCXN0cmluZwlTdHJpbmcgdG8gdHJpbQoqCiogQHJldHVybglzdHJpbmcKKi8KdkJfUEhQX0Vt
dWxhdG9yLnByb3RvdHlwZS5sdHJpbSA9IGZ1bmN0aW9uKHN0cikKewoJcmV0dXJuIHN0ci5yZXBs
YWNlKC9eXHMrL2csICcnKTsKfQoKLyoqCiogVHJpbXMgdHJhaWxpbmcgd2hpdGVzcGFjZQoqCiog
QHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gdHJpbQoqCiogQHJldHVybglzdHJpbmcKKi8KdkJfUEhQ
X0VtdWxhdG9yLnByb3RvdHlwZS5ydHJpbSA9IGZ1bmN0aW9uKHN0cikKewoJcmV0dXJuIHN0ci5y
ZXBsYWNlKC8oXHMrKSQvZywgJycpOwp9CgovKioKKiBUcmltcyBsZWFkaW5nIGFuZCB0cmFpbGlu
ZyB3aGl0ZXNwYWNlCioKKiBAcGFyYW0Jc3RyaW5nCVN0cmluZyB0byB0cmltCioKKiBAcmV0dXJu
CXN0cmluZwoqLwp2Ql9QSFBfRW11bGF0b3IucHJvdG90eXBlLnRyaW0gPSBmdW5jdGlvbihzdHIp
CnsKCXJldHVybiB0aGlzLmx0cmltKHRoaXMucnRyaW0oc3RyKSk7Cn0KCi8qKgoqIEVtdWxhdGlv
biBvZiBQSFAncyBwcmVnX3F1b3RlKCkKKgoqIEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIHByb2Nl
c3MKKgoqIEByZXR1cm4Jc3RyaW5nCiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUucHJlZ19x
dW90ZSA9IGZ1bmN0aW9uKHN0cikKewoJLy8gcmVwbGFjZSArIHsgfSAoICkgWyBdIHwgLyA/IF4g
JCBcIC4gPSAhIDwgPiA6ICogd2l0aCBiYWNrc2xhc2grY2hhcmFjdGVyCglyZXR1cm4gc3RyLnJl
cGxhY2UoLyhcK3xce3xcfXxcKHxcKXxcW3xcXXxcfHxcL3xcP3xcXnxcJHxcXHxcLnxcPXxcIXxc
PHxcPnxcOnxcKikvZywgIlxcJDEiKTsKfQoKLyoqCiogRW11bGF0ZXMgdW5odG1sc3BlY2lhbGNo
YXJzIGluIHZCdWxsZXRpbgoqCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gcHJvY2VzcwoqCiog
QHJldHVybglzdHJpbmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS51bmh0bWxzcGVjaWFs
Y2hhcnMgPSBmdW5jdGlvbihzdHIpCnsKCWYgPSBuZXcgQXJyYXkoLyZsdDsvZywgLyZndDsvZywg
LyZxdW90Oy9nLCAvJmFtcDsvZyk7CglyID0gbmV3IEFycmF5KCc8JywgJz4nLCAnIicsICcmJyk7
CgoJZm9yICh2YXIgaSBpbiBmKQoJewoJCXN0ciA9IHN0ci5yZXBsYWNlKGZbaV0sIHJbaV0pOwoJ
fQoKCXJldHVybiBzdHI7Cn0KCi8qKgoqIEVtdWxhdGVzIFBIUCdzIGh0bWxzcGVjaWFsY2hhcnMo
KQoqCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gcHJvY2VzcwoqCiogQHJldHVybglzdHJpbmcK
Ki8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS5odG1sc3BlY2lhbGNoYXJzID0gZnVuY3Rpb24o
c3RyKQp7CgkvL3ZhciBmID0gbmV3IEFycmF5KC8mKD8hI1swLTldKzspL2csIC88L2csIC8+L2cs
IC8iL2cpOwoJdmFyIGYgPSBuZXcgQXJyYXkoCgkJKGlzX21hYyAmJiBpc19pZSA/IG5ldyBSZWdF
eHAoJyYnLCAnZycpIDogbmV3IFJlZ0V4cCgnJig/ISNbMC05XSs7KScsICdnJykpLAoJCW5ldyBS
ZWdFeHAoJzwnLCAnZycpLAoJCW5ldyBSZWdFeHAoJz4nLCAnZycpLAoJCW5ldyBSZWdFeHAoJyIn
LCAnZycpCgkpOwoJdmFyIHIgPSBuZXcgQXJyYXkoCgkJJyZhbXA7JywKCQknJmx0OycsCgkJJyZn
dDsnLAoJCScmcXVvdDsnCgkpOwoKCWZvciAodmFyIGkgPSAwOyBpIDwgZi5sZW5ndGg7IGkrKykK
CXsKCQlzdHIgPSBzdHIucmVwbGFjZShmW2ldLCByW2ldKTsKCX0KCglyZXR1cm4gc3RyOwp9Cgov
KioKKiBTZWFyY2hlcyBhbiBhcnJheSBmb3IgYSB2YWx1ZQoqCiogQHBhcmFtCXN0cmluZwlOZWVk
bGUKKiBAcGFyYW0JYXJyYXkJSGF5c3RhY2sKKiBAcGFyYW0JYm9vbGVhbglDYXNlIGluc2Vuc2l0
aXZlCioKKiBAcmV0dXJuCWludGVnZXIJTm90IGZvdW5kOiAtMSAvIEZvdW5kOiBpbnRlZ2VyIGlu
ZGV4CiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUuaW5fYXJyYXkgPSBmdW5jdGlvbihpbmVl
ZGxlLCBoYXlzdGFjaywgY2FzZWluc2Vuc2l0aXZlKQp7Cgl2YXIgbmVlZGxlID0gbmV3IFN0cmlu
ZyhpbmVlZGxlKTsKCglpZiAoY2FzZWluc2Vuc2l0aXZlKQoJewoJCW5lZWRsZSA9IG5lZWRsZS50
b0xvd2VyQ2FzZSgpOwoJCWZvciAodmFyIGkgaW4gaGF5c3RhY2spCgkJewoJCQlpZiAoaGF5c3Rh
Y2tbaV0udG9Mb3dlckNhc2UoKSA9PSBuZWVkbGUpCgkJCXsKCQkJCXJldHVybiBpOwoJCQl9CgkJ
fQoJfQoJZWxzZQoJewoJCWZvciAodmFyIGkgaW4gaGF5c3RhY2spCgkJewoJCQlpZiAoaGF5c3Rh
Y2tbaV0gPT0gbmVlZGxlKQoJCQl7CgkJCQlyZXR1cm4gaTsKCQkJfQoJCX0KCX0KCXJldHVybiAt
MTsKfQoKLyoqCiogRW11bGF0ZXMgUEhQJ3Mgc3RycGFkKCkKKgoqIEBwYXJhbQlzdHJpbmcJVGV4
dCB0byBwYWQKKiBAcGFyYW0JaW50ZWdlcglMZW5ndGggdG8gcGFkCiogQHBhcmFtCXN0cmluZwlT
dHJpbmcgd2l0aCB3aGljaCB0byBwYWQKKgoqIEByZXR1cm4Jc3RyaW5nCiovCnZCX1BIUF9FbXVs
YXRvci5wcm90b3R5cGUuc3RyX3BhZCA9IGZ1bmN0aW9uKHRleHQsIGxlbmd0aCwgcGFkc3RyaW5n
KQp7Cgl0ZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKCXBhZHN0cmluZyA9IG5ldyBTdHJpbmcocGFk
c3RyaW5nKTsKCglpZiAodGV4dC5sZW5ndGggPCBsZW5ndGgpCgl7CgkJcGFkdGV4dCA9IG5ldyBT
dHJpbmcocGFkc3RyaW5nKTsKCgkJd2hpbGUgKHBhZHRleHQubGVuZ3RoIDwgKGxlbmd0aCAtIHRl
eHQubGVuZ3RoKSkKCQl7CgkJCXBhZHRleHQgKz0gcGFkc3RyaW5nOwoJCX0KCgkJdGV4dCA9IHBh
ZHRleHQuc3Vic3RyKDAsIChsZW5ndGggLSB0ZXh0Lmxlbmd0aCkpICsgdGV4dDsKCX0KCglyZXR1
cm4gdGV4dDsKfQoKLyoqCiogQSBzb3J0IG9mIGVtdWxhdGlvbiBvZiBQSFAncyB1cmxlbmNvZGUg
LSBub3QgMTAwJSB0aGUgc2FtZSwgYnV0IGFjY29tcGxpc2hlcyB0aGUgc2FtZSB0aGluZwoqCiog
QHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gZW5jb2RlCioKKiBAcmV0dXJuCXN0cmluZwoqLwp2Ql9Q
SFBfRW11bGF0b3IucHJvdG90eXBlLnVybGVuY29kZSA9IGZ1bmN0aW9uKHRleHQpCnsKCXRleHQg
PSB0ZXh0LnRvU3RyaW5nKCk7CgoJLy8gdGhpcyBlc2NhcGVzIDEyOCAtIDI1NSwgYXMgSlMgdXNl
cyB0aGUgdW5pY29kZSBjb2RlIHBvaW50cyBmb3IgdGhlbS4KCS8vIFRoaXMgY2F1c2VzIHByb2Js
ZW1zIHdpdGggc3VibWl0dGluZyB0ZXh0IHZpYSBBSkFYIHdpdGggdGhlIFVURi04IGNoYXJzZXQu
Cgl2YXIgbWF0Y2hlcyA9IHRleHQubWF0Y2goL1tceDkwLVx4RkZdL2cpOwoJaWYgKG1hdGNoZXMp
Cgl7CgkJZm9yICh2YXIgbWF0Y2hpZCA9IDA7IG1hdGNoaWQgPCBtYXRjaGVzLmxlbmd0aDsgbWF0
Y2hpZCsrKQoJCXsKCQkJdmFyIGNoYXJfY29kZSA9IG1hdGNoZXNbbWF0Y2hpZF0uY2hhckNvZGVB
dCgwKTsKCQkJdGV4dCA9IHRleHQucmVwbGFjZShtYXRjaGVzW21hdGNoaWRdLCAnJXUwMCcgKyAo
Y2hhcl9jb2RlICYgMHhGRikudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkpOwoJCX0KCX0KCgly
ZXR1cm4gZXNjYXBlKHRleHQpLnJlcGxhY2UoL1wrL2csICIlMkIiKTsKfQoKLyoqCiogV29ya3Mg
YSBiaXQgbGlrZSB1Y2ZpcnN0LCBidXQgd2l0aCBzb21lIGV4dHJhIG9wdGlvbnMKKgoqIEBwYXJh
bQlzdHJpbmcJU3RyaW5nIHdpdGggd2hpY2ggdG8gd29yawoqIEBwYXJhbQlzdHJpbmcJQ3V0IG9m
ZiBzdHJpbmcgYmVmb3JlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGlzIHN0cmluZwoqCiogQHJldHVy
bglzdHJpbmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS51Y2ZpcnN0ID0gZnVuY3Rpb24o
c3RyLCBjdXRvZmYpCnsKCWlmICh0eXBlb2YgY3V0b2ZmICE9ICd1bmRlZmluZWQnKQoJewoJCXZh
ciBjdXRwb3MgPSBzdHIuaW5kZXhPZihjdXRvZmYpOwoJCWlmIChjdXRwb3MgPiAwKQoJCXsKCQkJ
c3RyID0gc3RyLnN1YnN0cigwLCBjdXRwb3MpOwoJCX0KCX0KCglzdHIgPSBzdHIuc3BsaXQoJyAn
KTsKCWZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKQoJewoJCXN0cltpXSA9IHN0
cltpXS5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKSArIHN0cltpXS5zdWJzdHIoMSk7Cgl9Cgly
ZXR1cm4gc3RyLmpvaW4oJyAnKTsKfQoKLy8gaW5pdGlhbGl6ZSB0aGUgUEhQIGVtdWxhdG9yCnZh
ciBQSFAgPSBuZXcgdkJfUEhQX0VtdWxhdG9yKCk7CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwov
LyB2Ql9BSkFYX0hhbmRsZXIKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8qKgoqIFhNTCBTZW5k
ZXIgQ2xhc3MKKgoqIEBwYXJhbQlib29sZWFuCVNob3VsZCBjb25uZWN0aW9ucyBiZSBhc3luY3Jv
bm91cz8KKi8KZnVuY3Rpb24gdkJfQUpBWF9IYW5kbGVyKGFzeW5jKQp7CgkvKioKCSogU2hvdWxk
IGNvbm5lY3Rpb25zIGJlIGFzeW5jaHJvbm91cz8KCSoKCSogQHZhcglib29sZWFuCgkqLwoJdGhp
cy5hc3luYyA9IGFzeW5jID8gdHJ1ZSA6IGZhbHNlOwp9CgovLyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQovLyB2Ql9BSkFYX0hhbmRsZXIgbWV0aG9kcwoKLyoqCiogSW5pdGlhbGl6ZXMgdGhlIFhNTCBo
YW5kbGVyCioKKiBAcmV0dXJuCWJvb2xlYW4JVHJ1ZSBpZiBoYW5kbGVyIGNyZWF0ZWQgT0sKKi8K
dkJfQUpBWF9IYW5kbGVyLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24oKQp7CglpZiAodHlwZW9m
IHZiX2Rpc2FibGVfYWpheCAhPSAndW5kZWZpbmVkJyAmJiB2Yl9kaXNhYmxlX2FqYXggPT0gMikK
CXsKCQkvLyBkaXNhYmxlIGFsbCBhamF4IGZlYXR1cmVzCgkJcmV0dXJuIGZhbHNlOwoJfQoKCXRy
eQoJewoJCXRoaXMuaGFuZGxlciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoJCXJldHVybiAodGhp
cy5oYW5kbGVyLnNldFJlcXVlc3RIZWFkZXIgPyB0cnVlIDogZmFsc2UpOwoJfQoJY2F0Y2goZSkK
CXsKCQl0cnkKCQl7CgkJCXRoaXMuaGFuZGxlciA9IGV2YWwoIm5ldyBBIiArICJjdGl2IiArICJl
WCIgKyAiT2IiICsgImplY3QoJ01pY3IiICsgIm9zb2Z0LlhNIiArICJMSFRUUCcpOyIpOwoJCQly
ZXR1cm4gdHJ1ZTsKCQl9CgkJY2F0Y2goZSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9Cn0K
Ci8qKgoqIERldGVjdHMgaWYgdGhlIGJyb3dzZXIgaXMgZnVsbHkgY29tcGF0aWJsZQoqCiogQHJl
dHVybglib29sZWFuCiovCnZCX0FKQVhfSGFuZGxlci5wcm90b3R5cGUuaXNfY29tcGF0aWJsZSA9
IGZ1bmN0aW9uKCkKewoJaWYgKHR5cGVvZiB2Yl9kaXNhYmxlX2FqYXggIT0gJ3VuZGVmaW5lZCcg
JiYgdmJfZGlzYWJsZV9hamF4ID09IDIpCgl7CgkJLy8gZGlzYWJsZSBhbGwgYWpheCBmZWF0dXJl
cwoJCXJldHVybiBmYWxzZTsKCX0KCglpZiAoaXNfaWUgJiYgIWlzX2llNCkgeyByZXR1cm4gdHJ1
ZTsgfQoJZWxzZSBpZiAoWE1MSHR0cFJlcXVlc3QpCgl7CgkJdHJ5IHsgcmV0dXJuIFhNTEh0dHBS
ZXF1ZXN0LnByb3RvdHlwZS5zZXRSZXF1ZXN0SGVhZGVyID8gdHJ1ZSA6IGZhbHNlOyB9CgkJY2F0
Y2goZSkKCQl7CgkJCXRyeSB7IHZhciB0ZXN0ZXIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgcmV0
dXJuIHRlc3Rlci5zZXRSZXF1ZXN0SGVhZGVyID8gdHJ1ZSA6IGZhbHNlOyB9CgkJCWNhdGNoKGUp
IHsgcmV0dXJuIGZhbHNlOyB9CgkJfQoJfQoJZWxzZSB7IHJldHVybiBmYWxzZTsgfQp9CgovKioK
KiBDaGVja3MgaWYgdGhlIHN5c3RlbSBpcyByZWFkeQoqCiogQHJldHVybglib29sZWFuCUZhbHNl
IGlmIHJlYWR5CiovCnZCX0FKQVhfSGFuZGxlci5wcm90b3R5cGUubm90X3JlYWR5ID0gZnVuY3Rp
b24oKQp7CglyZXR1cm4gKHRoaXMuaGFuZGxlci5yZWFkeVN0YXRlICYmICh0aGlzLmhhbmRsZXIu
cmVhZHlTdGF0ZSA8IDQpKTsKfQoKLyoqCiogT25SZWFkeVN0YXRlQ2hhbmdlIGV2ZW50IGhhbmRs
ZXIKKgoqIEBwYXJhbQlmdW5jdGlvbgoqLwp2Ql9BSkFYX0hhbmRsZXIucHJvdG90eXBlLm9ucmVh
ZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKGV2ZW50KQp7CglpZiAoIXRoaXMuaGFuZGxlcikKCXsK
CQlpZiAgKCF0aGlzLmluaXQoKSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9CglpZiAodHlw
ZW9mIGV2ZW50ID09ICdmdW5jdGlvbicpCgl7CgkJdGhpcy5oYW5kbGVyLm9ucmVhZHlzdGF0ZWNo
YW5nZSA9IGV2ZW50OwoJfQoJZWxzZQoJewoJCWFsZXJ0KCdYTUwgU2VuZGVyIE9uUmVhZHlTdGF0
ZSBldmVudCBpcyBub3QgYSBmdW5jdGlvbicpOwoJfQp9CgovKioKKiBTZW5kcyBkYXRhCioKKiBA
cGFyYW0Jc3RyaW5nCURlc3RpbmF0aW9uIFVSTAoqIEBwYXJhbQlzdHJpbmcJUmVxdWVzdCBEYXRh
CioKKiBAcmV0dXJuCW1peGVkCVJldHVybiBtZXNzYWdlCiovCnZCX0FKQVhfSGFuZGxlci5wcm90
b3R5cGUuc2VuZCA9IGZ1bmN0aW9uKGRlc3R1cmwsIGRhdGFzdHJlYW0pCnsKCWlmICghdGhpcy5o
YW5kbGVyKQoJewoJCWlmICghdGhpcy5pbml0KCkpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJ
fQoJaWYgKCF0aGlzLm5vdF9yZWFkeSgpKQoJewoJCXRoaXMuaGFuZGxlci5vcGVuKCdQT1NUJywg
ZGVzdHVybCwgdGhpcy5hc3luYyk7CgkJdGhpcy5oYW5kbGVyLnNldFJlcXVlc3RIZWFkZXIoJ0Nv
bnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKTsKCQl0aGlz
LmhhbmRsZXIuc2VuZChkYXRhc3RyZWFtICsgJyZzPScgKyBmZXRjaF9zZXNzaW9uaGFzaCgpKTsK
CgkJaWYgKCF0aGlzLmFzeW5jICYmIHRoaXMuaGFuZGxlci5yZWFkeVN0YXRlID09IDQgJiYgdGhp
cy5oYW5kbGVyLnN0YXR1cyA9PSAyMDApCgkJewoJCQlyZXR1cm4gdHJ1ZTsKCQl9Cgl9CglyZXR1
cm4gZmFsc2U7Cn0KCi8vIHdlIGNhbiBjaGVjayB0aGlzIHZhcmlhYmxlIHRvIHNlZSBpZiBicm93
c2VyIGlzIEFKQVggY29tcGF0aWJsZQp2YXIgQUpBWF9Db21wYXRpYmxlID0gdkJfQUpBWF9IYW5k
bGVyLnByb3RvdHlwZS5pc19jb21wYXRpYmxlKCk7CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwov
LyB2Ql9IaWRkZW5fRm9ybQovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKLyoqCiogRm9ybSBHZW5l
cmF0b3IgQ2xhc3MKKgoqIEJ1aWxkcyBhIGZvcm0gZmlsbGVkIHdpdGggaGlkZGVuIGZpZWxkcyBm
b3IgaW52aXNpYmxlIHN1Ym1pdCB2aWEgUE9TVAoqCiogQHBhcmFtCXN0cmluZwlTY3JpcHQgKG15
X3RhcmdldF9zY3JpcHQucGhwKQoqLwpmdW5jdGlvbiB2Ql9IaWRkZW5fRm9ybShzY3JpcHQpCnsK
CXRoaXMuZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTsKCXRoaXMuZm9ybS5t
ZXRob2QgPSAncG9zdCc7Cgl0aGlzLmZvcm0uYWN0aW9uID0gc2NyaXB0Owp9CgovLyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQovLyB2Ql9IaWRkZW5fRm9ybSBtZXRob2RzCgovKioKKiBBZGRzIGEgaGlk
ZGVuIGlucHV0IGZpZWxkIHRvIHRoZSBmb3JtIG9iamVjdAoqCiogQHBhcmFtCXN0cmluZwlOYW1l
IGF0dHJpYnV0ZQoqIEBwYXJhbQlzdHJpbmcJVmFsdWUgYXR0cmlidXRlCiovCnZCX0hpZGRlbl9G
b3JtLnByb3RvdHlwZS5hZGRfaW5wdXQgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkKewoJdmFyIGlu
cHV0b2JqID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKCglpbnB1dG9iai50eXBl
ID0gJ2hpZGRlbic7CglpbnB1dG9iai5uYW1lID0gbmFtZTsKCWlucHV0b2JqLnZhbHVlID0gdmFs
dWU7CgoJdGhpcy5mb3JtLmFwcGVuZENoaWxkKGlucHV0b2JqKTsKfTsKCi8qKgoqIEZldGNoZXMg
YWxsIGZvcm0gZWxlbWVudHMgaW5zaWRlIGFuIEhUTUwgZWxlbWVudCBhbmQgcGVyZm9ybXMgJ2Fk
ZF9pbnB1dCgpJyBvbiB0aGVtCioKKiBAcGFyYW0Jb2JqZWN0CUhUTUwgZWxlbWVudCB0byBzZWFy
Y2gKKi8KdkJfSGlkZGVuX0Zvcm0ucHJvdG90eXBlLmFkZF9pbnB1dHNfZnJvbV9vYmplY3QgPSBm
dW5jdGlvbihvYmopCnsKCXZhciBpbnB1dHMgPSBmZXRjaF90YWdzKG9iaiwgJ2lucHV0Jyk7Cglm
b3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykKCXsKCQlzd2l0Y2ggKGlucHV0
c1tpXS50eXBlKQoJCXsKCQkJY2FzZSAnY2hlY2tib3gnOgoJCQljYXNlICdyYWRpbyc6CgkJCQlp
ZiAoaW5wdXRzW2ldLmNoZWNrZWQpCgkJCQl7CgkJCQkJdGhpcy5hZGRfaW5wdXQoaW5wdXRzW2ld
Lm5hbWUsIGlucHV0c1tpXS52YWx1ZSk7CgkJCQl9CgkJCQlicmVhazsKCQkJY2FzZSAndGV4dCc6
CgkJCWNhc2UgJ2hpZGRlbic6CgkJCWNhc2UgJ3Bhc3N3b3JkJzoKCQkJCXRoaXMuYWRkX2lucHV0
KGlucHV0c1tpXS5uYW1lLCBpbnB1dHNbaV0udmFsdWUpOwoJCQkJYnJlYWs7CgkJCWRlZmF1bHQ6
CgkJCQljb250aW51ZTsKCQl9Cgl9CgoJdmFyIHRleHRhcmVhcyA9IGZldGNoX3RhZ3Mob2JqLCAn
dGV4dGFyZWEnKTsKCWZvciAodmFyIGkgPSAwOyBpIDwgdGV4dGFyZWFzLmxlbmd0aDsgaSsrKQoJ
ewoJCXRoaXMuYWRkX2lucHV0KHRleHRhcmVhc1tpXS5uYW1lLCB0ZXh0YXJlYXNbaV0udmFsdWUp
OwoJfQoKCXZhciBzZWxlY3RzID0gZmV0Y2hfdGFncyhvYmosICdzZWxlY3QnKTsKCWZvciAodmFy
IGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykKCXsKCQlpZiAoc2VsZWN0c1tpXS5tdWx0
aXBsZSkKCQl7CgkJCWZvciAodmFyIGogPSAwOyBqIDwgc2VsZWN0c1tpXS5vcHRpb25zLmxlbmd0
aDsgaisrKQoJCQl7CgkJCQlpZiAoc2VsZWN0c1tpXS5vcHRpb25zW2pdLnNlbGVjdGVkKQoJCQkJ
ewoJCQkJCXRoaXMuYWRkX2lucHV0KHNlbGVjdHNbaV0ubmFtZSwgc2VsZWN0c1tpXS5vcHRpb25z
W2pdLnZhbHVlKTsKCQkJCX0KCQkJfQoJCX0KCQllbHNlCgkJewoJCQl0aGlzLmFkZF9pbnB1dChz
ZWxlY3RzW2ldLm5hbWUsIHNlbGVjdHNbaV0ub3B0aW9uc1tzZWxlY3RzW2ldLnNlbGVjdGVkSW5k
ZXhdLnZhbHVlKTsKCQl9Cgl9Cn0KCi8qKgoqIFN1Ym1pdHMgdGhlIGhpZGRlbiBmb3JtIG9iamVj
dAoqLwp2Ql9IaWRkZW5fRm9ybS5wcm90b3R5cGUuc3VibWl0X2Zvcm0gPSBmdW5jdGlvbigpCnsK
CWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5mb3JtKS5zdWJtaXQoKTsKfTsKCi8vICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCi8vIFdpbmRvdyBvcGVuZXJzIGFuZCBpbnN0YW50IG1lc3Nlbmdl
ciB3cmFwcGVycwoKLyoqCiogT3BlbnMgYSBnZW5lcmljIGJyb3dzZXIgd2luZG93CioKKiBAcGFy
YW0Jc3RyaW5nCVVSTAoqIEBwYXJhbQlpbnRlZ2VyCVdpZHRoCiogQHBhcmFtCWludGVnZXIJSGVp
Z2h0CiogQHBhcmFtCXN0cmluZwlPcHRpb25hbCBXaW5kb3cgSUQKKi8KZnVuY3Rpb24gb3Blbldp
bmRvdyh1cmwsIHdpZHRoLCBoZWlnaHQsIHdpbmRvd2lkKQp7CglyZXR1cm4gd2luZG93Lm9wZW4o
CgkJdXJsLAoJCSh0eXBlb2Ygd2luZG93aWQgPT0gJ3VuZGVmaW5lZCcgPyAndkJQb3B1cCcgOiB3
aW5kb3dpZCksCgkJJ3N0YXR1c2Jhcj1ubyxtZW51YmFyPW5vLHRvb2xiYXI9bm8sc2Nyb2xsYmFy
cz15ZXMscmVzaXphYmxlPXllcycKCQkrICh0eXBlb2Ygd2lkdGggIT0gJ3VuZGVmaW5lZCcgPyAo
Jyx3aWR0aD0nICsgd2lkdGgpIDogJycpICsgKHR5cGVvZiBoZWlnaHQgIT0gJ3VuZGVmaW5lZCcg
PyAoJyxoZWlnaHQ9JyArIGhlaWdodCkgOiAnJykKCSk7Cn0KCi8qKgoqIE9wZW5zIGNvbnRyb2wg
cGFuZWwgaGVscCB3aW5kb3cKKgoqIEBwYXJhbQlzdHJpbmcJU2NyaXB0IG5hbWUKKiBAcGFyYW0J
c3RyaW5nCUFjdGlvbiB0eXBlCiogQHBhcmFtCXN0cmluZwlPcHRpb24gdmFsdWUKKgoqIEByZXR1
cm4Jd2luZG93CiovCmZ1bmN0aW9uIGpzX29wZW5faGVscChzY3JpcHRuYW1lLCBhY3Rpb250eXBl
LCBvcHRpb252YWwpCnsKCXJldHVybiBvcGVuV2luZG93KAoJCSdoZWxwLnBocD9zPScgKyBTRVNT
SU9OSEFTSCArICcmZG89YW5zd2VyJnBhZ2U9JyArIHNjcmlwdG5hbWUgKyAnJnBhZ2VhY3Rpb249
JyArIGFjdGlvbnR5cGUgKyAnJm9wdGlvbj0nICsgb3B0aW9udmFsLAoJCTYwMCwgNDUwLCAnaGVs
cHdpbmRvdycKCSk7Cn0KCi8qKgoqIE9wZW5zIGEgd2luZG93IHRvIHNob3cgYSBsaXN0IG9mIHBv
c3RlcnMgaW4gYSB0aHJlYWQgKG1pc2MucGhwP2RvPXdob3Bvc3RlZCkKKgoqIEBwYXJhbQlpbnRl
Z2VyCVRocmVhZCBJRAoqCiogQHJldHVybgl3aW5kb3cKKi8KZnVuY3Rpb24gd2hvKHRocmVhZGlk
KQp7CglyZXR1cm4gb3BlbldpbmRvdygKCQknbWlzYy5waHA/JyArIFNFU1NJT05VUkwgKyAnZG89
d2hvcG9zdGVkJnQ9JyArIHRocmVhZGlkLAoJCTIzMCwgMzAwCgkpOwp9CgovKioKKiBPcGVucyBh
biBJTSBXaW5kb3cKKgoqIEBwYXJhbQlzdHJpbmcJSU0gdHlwZQoqIEBwYXJhbQlpbnRlZ2VyCVVz
ZXIgSUQKKiBAcGFyYW0JaW50ZWdlcglXaWR0aCBvZiB3aW5kb3cKKiBAcGFyYW0JaW50ZWdlcglI
ZWlnaHQgb2Ygd2luZG93CioKKiBAcmV0dXJuCXdpbmRvdwoqLwpmdW5jdGlvbiBpbXdpbmRvdyhp
bXR5cGUsIHVzZXJpZCwgd2lkdGgsIGhlaWdodCkKewoJcmV0dXJuIG9wZW5XaW5kb3coCgkJJ3Nl
bmRtZXNzYWdlLnBocD8nICsgU0VTU0lPTlVSTCArICdkbz1pbSZ0eXBlPScgKyBpbXR5cGUgKyAn
JnU9JyArIHVzZXJpZCwKCQl3aWR0aCwgaGVpZ2h0CgkpOwp9CgovKioKKiBTZW5kcyBhbiBNU04g
bWVzc2FnZQoqCiogQHBhcmFtCXN0cmluZwlUYXJnZXQgTVNOIGhhbmRsZQoqCiogQHJldHVybgli
b29sZWFuCWZhbHNlCiovCmZ1bmN0aW9uIFNlbmRNU05NZXNzYWdlKG5hbWUpCnsKCWlmICghaXNf
aWUpCgl7CgkJYWxlcnQodmJwaHJhc2VbJ21zbl9mdW5jdGlvbnNfb25seV93b3JrX2luX2llJ10p
OwoJCXJldHVybiBmYWxzZTsKCX0KCWVsc2UKCXsKCQlNc2dyT2JqLkluc3RhbnRNZXNzYWdlKG5h
bWUpOwoJCXJldHVybiBmYWxzZTsKCX0KfQoKLyoqCiogQWRkcyBhbiBNU04gQ29udGFjdCAocmVx
dWlyZXMgTVNOKQoqCiogQHBhcmFtCXN0cmluZwlNU04gaGFuZGxlCioKKiBAcmV0dXJuCWJvb2xl
YW4JZmFsc2UKKi8KZnVuY3Rpb24gQWRkTVNOQ29udGFjdChuYW1lKQp7CglpZiAoIWlzX2llKQoJ
ewoJCWFsZXJ0KHZicGhyYXNlWydtc25fZnVuY3Rpb25zX29ubHlfd29ya19pbl9pZSddKTsKCQly
ZXR1cm4gZmFsc2U7Cgl9CgllbHNlCgl7CgkJTXNnck9iai5BZGRDb250YWN0KDAsIG5hbWUpOwoJ
CXJldHVybiBmYWxzZTsKCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gQ29va2llIGhh
bmRsZXJzCgovKioKKiBTZXRzIGEgY29va2llCioKKiBAcGFyYW0Jc3RyaW5nCUNvb2tpZSBuYW1l
CiogQHBhcmFtCXN0cmluZwlDb29raWUgdmFsdWUKKiBAcGFyYW0JZGF0ZQlDb29raWUgZXhwaXJ5
IGRhdGUKKi8KZnVuY3Rpb24gc2V0X2Nvb2tpZShuYW1lLCB2YWx1ZSwgZXhwaXJlcykKewoJZG9j
dW1lbnQuY29va2llID0gbmFtZSArICc9JyArIGVzY2FwZSh2YWx1ZSkgKyAnOyBwYXRoPS8nICsg
KHR5cGVvZiBleHBpcmVzICE9ICd1bmRlZmluZWQnID8gJzsgZXhwaXJlcz0nICsgZXhwaXJlcy50
b0dNVFN0cmluZygpIDogJycpOwp9CgovKioKKiBEZWxldGVzIGEgY29va2llCioKKiBAcGFyYW0J
c3RyaW5nCUNvb2tpZSBuYW1lCiovCmZ1bmN0aW9uIGRlbGV0ZV9jb29raWUobmFtZSkKewoJZG9j
dW1lbnQuY29va2llID0gbmFtZSArICc9JyArICc7IGV4cGlyZXM9VGh1LCAwMS1KYW4tNzAgMDA6
MDA6MDEgR01UJyArICAnOyBwYXRoPS8nOwp9CgovKioKKiBGZXRjaGVzIHRoZSB2YWx1ZSBvZiBh
IGNvb2tpZQoqCiogQHBhcmFtCXN0cmluZwlDb29raWUgbmFtZQoqCiogQHJldHVybglzdHJpbmcK
Ki8KZnVuY3Rpb24gZmV0Y2hfY29va2llKG5hbWUpCnsKCWNvb2tpZV9uYW1lID0gbmFtZSArICc9
JzsKCWNvb2tpZV9sZW5ndGggPSBkb2N1bWVudC5jb29raWUubGVuZ3RoOwoJY29va2llX2JlZ2lu
ID0gMDsKCXdoaWxlIChjb29raWVfYmVnaW4gPCBjb29raWVfbGVuZ3RoKQoJewoJCXZhbHVlX2Jl
Z2luID0gY29va2llX2JlZ2luICsgY29va2llX25hbWUubGVuZ3RoOwoJCWlmIChkb2N1bWVudC5j
b29raWUuc3Vic3RyaW5nKGNvb2tpZV9iZWdpbiwgdmFsdWVfYmVnaW4pID09IGNvb2tpZV9uYW1l
KQoJCXsKCQkJdmFyIHZhbHVlX2VuZCA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mICgnOycsIHZh
bHVlX2JlZ2luKTsKCQkJaWYgKHZhbHVlX2VuZCA9PSAtMSkKCQkJewoJCQkJdmFsdWVfZW5kID0g
Y29va2llX2xlbmd0aDsKCQkJfQoJCQlyZXR1cm4gdW5lc2NhcGUoZG9jdW1lbnQuY29va2llLnN1
YnN0cmluZyh2YWx1ZV9iZWdpbiwgdmFsdWVfZW5kKSk7CgkJfQoJCWNvb2tpZV9iZWdpbiA9IGRv
Y3VtZW50LmNvb2tpZS5pbmRleE9mKCcgJywgY29va2llX2JlZ2luKSArIDE7CgkJaWYgKGNvb2tp
ZV9iZWdpbiA9PSAwKQoJCXsKCQkJYnJlYWs7CgkJfQoJfQoJcmV0dXJuIG51bGw7Cn0KCi8vICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCi8vIEZvcm0gZWxlbWVudCBtYW5hZ2VycyAodXNlZCBmb3IgJ2No
ZWNrIGFsbCcgdHlwZSBzeXN0ZW1zCgovKioKKiBTZXRzIGFsbCBjaGVja2JveGVzLCByYWRpbyBi
dXR0b25zIG9yIHNlbGVjdHMgaW4gYSBnaXZlbiBmb3JtIHRvIGEgZ2l2ZW4gc3RhdGUsIHdpdGgg
ZXhjZXB0aW9ucwoqCiogQHBhcmFtCW9iamVjdAlGb3JtIG9iamVjdAoqIEBwYXJhbQlzdHJpbmcJ
VGFyZ2V0IGVsZW1lbnQgdHlwZSAob25lIG9mICdyYWRpbycsICdzZWxlY3Qtb25lJywgJ2NoZWNr
Ym94JykKKiBAcGFyYW0Jc3RyaW5nCVNlbGVjdGVkIG9wdGlvbiBpbiBjYXNlIG9mICdyYWRpbycK
KiBAcGFyYW0JYXJyYXkJQXJyYXkgb2YgZWxlbWVudCBuYW1lcyB0byBiZSBleGNsdWRlZAoqIEBw
YXJhbQltaXhlZAlWYWx1ZSB0byBnaXZlIHRvIGZvdW5kIGVsZW1lbnRzCiovCmZ1bmN0aW9uIGpz
X3RvZ2dsZV9hbGwoZm9ybW9iaiwgZm9ybXR5cGUsIG9wdGlvbiwgZXhjbHVkZSwgc2V0dG8pCnsK
CWZvciAodmFyIGkgPTA7IGkgPCBmb3Jtb2JqLmVsZW1lbnRzLmxlbmd0aDsgaSsrKQoJewoJCXZh
ciBlbG0gPSBmb3Jtb2JqLmVsZW1lbnRzW2ldOwoJCWlmIChlbG0udHlwZSA9PSBmb3JtdHlwZSAm
JiBQSFAuaW5fYXJyYXkoZWxtLm5hbWUsIGV4Y2x1ZGUsIGZhbHNlKSA9PSAtMSkKCQl7CgkJCXN3
aXRjaCAoZm9ybXR5cGUpCgkJCXsKCQkJCWNhc2UgJ3JhZGlvJzoKCQkJCQlpZiAoZWxtLnZhbHVl
ID09IG9wdGlvbikgLy8gb3B0aW9uID09ICcnIGV2YWx1YXRlcyB0cnVlIHdoZW4gb3B0aW9uID0g
MAoJCQkJCXsKCQkJCQkJZWxtLmNoZWNrZWQgPSBzZXR0bzsKCQkJCQl9CgkJCQlicmVhazsKCQkJ
CWNhc2UgJ3NlbGVjdC1vbmUnOgoJCQkJCWVsbS5zZWxlY3RlZEluZGV4ID0gc2V0dG87CgkJCQli
cmVhazsKCQkJCWRlZmF1bHQ6CgkJCQkJZWxtLmNoZWNrZWQgPSBzZXR0bzsKCQkJCWJyZWFrOwoJ
CQl9CgkJfQoJfQp9CgovKioKKiBTZXRzIGFsbCA8c2VsZWN0PiBlbGVtZW50cyB0byB0aGUgc2Vs
ZWN0ZWRJbmRleCBzcGVjaWZpZWQgYnkgdGhlICdzZWxlY3RhbGwnIGVsZW1lbnQKKgoqIEBwYXJh
bQlvYmplY3QJRm9ybSBvYmplY3QKKi8KZnVuY3Rpb24ganNfc2VsZWN0X2FsbChmb3Jtb2JqKQp7
CglleGNsdWRlID0gbmV3IEFycmF5KCk7CglleGNsdWRlWzBdID0gJ3NlbGVjdGFsbCc7Cglqc190
b2dnbGVfYWxsKGZvcm1vYmosICdzZWxlY3Qtb25lJywgJycsIGV4Y2x1ZGUsIGZvcm1vYmouc2Vs
ZWN0YWxsLnNlbGVjdGVkSW5kZXgpOwp9CgovKioKKiBTZXRzIGFsbCA8aW5wdXQgdHlwZT0iY2hl
Y2tib3giIC8+IGVsZW1lbnRzIHRvIGhhdmUgdGhlIHNhbWUgY2hlY2tlZCBzdGF0dXMgYXMgJ2Fs
bGJveCcKKgoqIEBwYXJhbQlvYmplY3QJRm9ybSBvYmplY3QKKi8KZnVuY3Rpb24ganNfY2hlY2tf
YWxsKGZvcm1vYmopCnsKCWV4Y2x1ZGUgPSBuZXcgQXJyYXkoKTsKCWV4Y2x1ZGVbMF0gPSAna2Vl
cGF0dGFjaG1lbnRzJzsKCWV4Y2x1ZGVbMV0gPSAnYWxsYm94JzsKCWV4Y2x1ZGVbMl0gPSAncmVt
b3ZlYWxsJzsKCWpzX3RvZ2dsZV9hbGwoZm9ybW9iaiwgJ2NoZWNrYm94JywgJycsIGV4Y2x1ZGUs
IGZvcm1vYmouYWxsYm94LmNoZWNrZWQpOwp9CgovKioKKiBTZXRzIGFsbCA8aW5wdXQgdHlwZT0i
cmFkaW8iIC8+IGdyb3VwcyB0byBoYXZlIGEgcGFydGljdWxhciBvcHRpb24gY2hlY2tlZAoqCiog
QHBhcmFtCW9iamVjdAlGb3JtIG9iamVjdAoqIEBwYXJhbQltaXhlZAlTZWxlY3RlZCBvcHRpb24K
Ki8KZnVuY3Rpb24ganNfY2hlY2tfYWxsX29wdGlvbihmb3Jtb2JqLCBvcHRpb24pCnsKCWV4Y2x1
ZGUgPSBuZXcgQXJyYXkoKTsKCWV4Y2x1ZGVbMF0gPSAndXNldXNlcmdyb3VwJzsKCWpzX3RvZ2ds
ZV9hbGwoZm9ybW9iaiwgJ3JhZGlvJywgb3B0aW9uLCBleGNsdWRlLCB0cnVlKTsKfQoKLyoqCiog
QWxpYXMgdG8ganNfY2hlY2tfYWxsCiovCmZ1bmN0aW9uIGNoZWNrYWxsKGZvcm1vYmopIHsganNf
Y2hlY2tfYWxsKGZvcm1vYmopOyB9CgovKioKKiBBbGlhcyB0byBqc19jaGVja19hbGxfb3B0aW9u
CiovCmZ1bmN0aW9uIGNoZWNrYWxsX29wdGlvbihmb3Jtb2JqLCBvcHRpb24pIHsganNfY2hlY2tf
YWxsX29wdGlvbihmb3Jtb2JqLCBvcHRpb24pOyB9CgovKioKKiBSZXNpemUgZnVuY3Rpb24gZm9y
IENQIHRleHRhcmVhcwoqCiogQHBhcmFtCWludGVnZXIJSWYgcG9zaXRpdmUsIHNpemUgdXAsIG90
aGVyd2lzZSBzaXplIGRvd24KKiBAcGFyYW0Jc3RyaW5nCUlEIG9mIHRoZSB0ZXh0YXJlYQoqCiog
QHJldHVybglib29sZWFuCWZhbHNlCiovCmZ1bmN0aW9uIHJlc2l6ZV90ZXh0YXJlYSh0bywgaWQp
CnsKCWlmICh0byA8IDApCgl7CgkJdmFyIHJvd3MgPSAtNTsKCQl2YXIgY29scyA9IC0xMDsKCX0K
CWVsc2UKCXsKCQl2YXIgcm93cyA9IDU7CgkJdmFyIGNvbHMgPSAxMDsKCX0KCgl2YXIgdGV4dGFy
ZWEgPSBmZXRjaF9vYmplY3QoaWQpOwoJaWYgKHR5cGVvZiB0ZXh0YXJlYS5vcmlnX3Jvd3MgPT0g
J3VuZGVmaW5lZCcpCgl7CgkJdGV4dGFyZWEub3JpZ19yb3dzID0gdGV4dGFyZWEucm93czsKCQl0
ZXh0YXJlYS5vcmlnX2NvbHMgPSB0ZXh0YXJlYS5jb2xzOwoJfQoKCXZhciBuZXdyb3dzID0gdGV4
dGFyZWEucm93cyArIHJvd3M7Cgl2YXIgbmV3Y29scyA9IHRleHRhcmVhLmNvbHMgKyBjb2xzOwoK
CWlmIChuZXdyb3dzID49IHRleHRhcmVhLm9yaWdfcm93cyAmJiBuZXdjb2xzID49IHRleHRhcmVh
Lm9yaWdfY29scykKCXsKCQl0ZXh0YXJlYS5yb3dzID0gbmV3cm93czsKCQl0ZXh0YXJlYS5jb2xz
ID0gbmV3Y29sczsKCX0KCglyZXR1cm4gZmFsc2U7Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
Ci8vIENvbGxhcHNpYmxlIGVsZW1lbnQgaGFuZGxlcnMKCi8qKgoqIFRvZ2dsZXMgdGhlIGNvbGxh
cHNlIHN0YXRlIG9mIGFuIG9iamVjdCwgYW5kIHNhdmVzIHN0YXRlIHRvICd2YnVsbGV0aW5fY29s
bGFwc2UnIGNvb2tpZQoqCiogQHBhcmFtCXN0cmluZwlVbmlxdWUgSUQgZm9yIHRoZSBjb2xsYXBz
ZSBncm91cAoqCiogQHJldHVybglib29sZWFuCWZhbHNlCiovCmZ1bmN0aW9uIHRvZ2dsZV9jb2xs
YXBzZShvYmppZCkKewoJaWYgKCFpc19yZWdleHApCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCW9i
aiA9IGZldGNoX29iamVjdCgnY29sbGFwc2VvYmpfJyArIG9iamlkKTsKCWltZyA9IGZldGNoX29i
amVjdCgnY29sbGFwc2VpbWdfJyArIG9iamlkKTsKCWNlbCA9IGZldGNoX29iamVjdCgnY29sbGFw
c2VjZWxfJyArIG9iamlkKTsKCglpZiAoIW9iaikKCXsKCQkvLyBub3RoaW5nIHRvIGNvbGxhcHNl
IQoJCWlmIChpbWcpCgkJewoJCQkvLyBoaWRlIHRoZSBjbGlja3kgaW1hZ2UgaWYgdGhlcmUgaXMg
b25lCgkJCWltZy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9
CgoJaWYgKG9iai5zdHlsZS5kaXNwbGF5ID09ICdub25lJykKCXsKCQlvYmouc3R5bGUuZGlzcGxh
eSA9ICcnOwoJCXNhdmVfY29sbGFwc2VkKG9iamlkLCBmYWxzZSk7CgkJaWYgKGltZykKCQl7CgkJ
CWltZ19yZSA9IG5ldyBSZWdFeHAoIl9jb2xsYXBzZWRcXC5naWYkIik7CgkJCWltZy5zcmMgPSBp
bWcuc3JjLnJlcGxhY2UoaW1nX3JlLCAnLmdpZicpOwoJCX0KCQlpZiAoY2VsKQoJCXsKCQkJY2Vs
X3JlID0gbmV3IFJlZ0V4cCgiXih0aGVhZHx0Y2F0KShfY29sbGFwc2VkKSQiKTsKCQkJY2VsLmNs
YXNzTmFtZSA9IGNlbC5jbGFzc05hbWUucmVwbGFjZShjZWxfcmUsICckMScpOwoJCX0KCX0KCWVs
c2UKCXsKCQlvYmouc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQlzYXZlX2NvbGxhcHNlZChvYmpp
ZCwgdHJ1ZSk7CgkJaWYgKGltZykKCQl7CgkJCWltZ19yZSA9IG5ldyBSZWdFeHAoIlxcLmdpZiQi
KTsKCQkJaW1nLnNyYyA9IGltZy5zcmMucmVwbGFjZShpbWdfcmUsICdfY29sbGFwc2VkLmdpZicp
OwoJCX0KCQlpZiAoY2VsKQoJCXsKCQkJY2VsX3JlID0gbmV3IFJlZ0V4cCgiXih0aGVhZHx0Y2F0
KSQiKTsKCQkJY2VsLmNsYXNzTmFtZSA9IGNlbC5jbGFzc05hbWUucmVwbGFjZShjZWxfcmUsICck
MV9jb2xsYXBzZWQnKTsKCQl9Cgl9CglyZXR1cm4gZmFsc2U7Cn0KCi8qKgoqIFVwZGF0ZXMgdmJ1
bGxldGluX2NvbGxhcHNlIGNvb2tpZSB3aXRoIGNvbGxhcHNlIHByZWZlcmVuY2VzCioKKiBAcGFy
YW0Jc3RyaW5nCVVuaXF1ZSBJRCBmb3IgdGhlIGNvbGxhcHNlIGdyb3VwCiogQHBhcmFtCWJvb2xl
YW4JQWRkIGEgY29va2llCiovCmZ1bmN0aW9uIHNhdmVfY29sbGFwc2VkKG9iamlkLCBhZGRjb2xs
YXBzZWQpCnsKCXZhciBjb2xsYXBzZWQgPSBmZXRjaF9jb29raWUoJ3ZidWxsZXRpbl9jb2xsYXBz
ZScpOwoJdmFyIHRtcCA9IG5ldyBBcnJheSgpOwoKCWlmIChjb2xsYXBzZWQgIT0gbnVsbCkKCXsK
CQljb2xsYXBzZWQgPSBjb2xsYXBzZWQuc3BsaXQoJ1xuJyk7CgoJCWZvciAodmFyIGkgaW4gY29s
bGFwc2VkKQoJCXsKCQkJaWYgKGNvbGxhcHNlZFtpXSAhPSBvYmppZCAmJiBjb2xsYXBzZWRbaV0g
IT0gJycpCgkJCXsKCQkJCXRtcFt0bXAubGVuZ3RoXSA9IGNvbGxhcHNlZFtpXTsKCQkJfQoJCX0K
CX0KCglpZiAoYWRkY29sbGFwc2VkKQoJewoJCXRtcFt0bXAubGVuZ3RoXSA9IG9iamlkOwoJfQoK
CWV4cGlyZXMgPSBuZXcgRGF0ZSgpOwoJZXhwaXJlcy5zZXRUaW1lKGV4cGlyZXMuZ2V0VGltZSgp
ICsgKDEwMDAgKiA4NjQwMCAqIDM2NSkpOwoJc2V0X2Nvb2tpZSgndmJ1bGxldGluX2NvbGxhcHNl
JywgdG1wLmpvaW4oJ1xuJyksIGV4cGlyZXMpOwp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwov
LyBFdmVudCBIYW5kbGVycyBmb3IgUGFnZU5hdiBtZW51cwoKLyoqCiogQ2xhc3MgdG8gaGFuZGxl
IHBhZ2VuYXYgZXZlbnRzCiovCmZ1bmN0aW9uIHZCcGFnZW5hdigpCnsKfQoKLyoqCiogSGFuZGxl
cyBjbGlja3Mgb24gcGFnZW5hdiBtZW51IGNvbnRyb2wgb2JqZWN0cwoqLwp2QnBhZ2VuYXYucHJv
dG90eXBlLmNvbnRyb2xvYmpfb25jbGljayA9IGZ1bmN0aW9uKGUpCnsKCXRoaXMuX29uY2xpY2so
ZSk7Cgl2YXIgaW5wdXRzID0gZmV0Y2hfdGFncyh0aGlzLm1lbnUubWVudW9iaiwgJ2lucHV0Jyk7
Cglmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7IGkrKykKCXsKCQlpZiAoaW5wdXRz
W2ldLnR5cGUgPT0gJ3RleHQnKQoJCXsKCQkJaW5wdXRzW2ldLmZvY3VzKCk7CgkJCWJyZWFrOwoJ
CX0KCX0KfTsKCi8qKgoqIFN1Ym1pdHMgdGhlIHBhZ2VuYXYgZm9ybS4uLiBzb3J0IG9mCiovCnZC
cGFnZW5hdi5wcm90b3R5cGUuZm9ybV9nb3RvcGFnZSA9IGZ1bmN0aW9uKGUpCnsKCWlmICgocGFn
ZW51bSA9IHBhcnNlSW50KGZldGNoX29iamVjdCgncGFnZW5hdl9pdHh0JykudmFsdWUsIDEwKSkg
PiAwKQoJewoJCXdpbmRvdy5sb2NhdGlvbiA9IHRoaXMuYWRkciArICcmcGFnZT0nICsgcGFnZW51
bTsKCX0KCXJldHVybiBmYWxzZTsKfTsKCi8qKgoqIEhhbmRsZXMgY2xpY2tzIG9uIHRoZSAnR28n
IGJ1dHRvbiBpbiBwYWdlbmF2IHBvcHVwcwoqLwp2QnBhZ2VuYXYucHJvdG90eXBlLmlidG5fb25j
bGljayA9IGZ1bmN0aW9uKGUpCnsKCXJldHVybiB0aGlzLmZvcm0uZ290b3BhZ2UoKTsKfTsKCi8q
KgoqIEhhbmRsZXMga2V5cHJlc3NlcyBpbiB0aGUgdGV4dCBpbnB1dCBvZiBwYWdlbmF2IHBvcHVw
cwoqLwp2QnBhZ2VuYXYucHJvdG90eXBlLml0eHRfb25rZXlwcmVzcyA9IGZ1bmN0aW9uKGUpCnsK
CXJldHVybiAoKGUgPyBlIDogd2luZG93LmV2ZW50KS5rZXlDb2RlID09IDEzID8gdGhpcy5mb3Jt
LmdvdG9wYWdlKCkgOiB0cnVlKTsKfTsKCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIERIVE1M
IFBvcHVwIE1lbnUgSGFuZGxpbmcgKGNvbXBsZW1lbnRzIHZidWxsZXRpbl9tZW51LmpzKQoKLyoq
CiogV3JhcHBlciBmb3IgdkJtZW51LnJlZ2lzdGVyCioKKiBAcGFyYW0Jc3RyaW5nCUNvbnRyb2wg
SUQKKiBAcGFyYW0JYm9vbGVhbglObyBpbWFnZSAodHJ1ZSkKKiBAcGFyYW0JYm9vbGVhbglEb2Vz
IG5vdGhpbmcgYW55IG1vcmUKKi8KZnVuY3Rpb24gdmJtZW51X3JlZ2lzdGVyKGNvbnRyb2xpZCwg
bm9pbWFnZSwgZGF0ZWZpZWxkKQp7CglpZiAodHlwZW9mIHZCbWVudSA9PSAnb2JqZWN0JykKCXsK
CQl2Qm1lbnUucmVnaXN0ZXIoY29udHJvbGlkLCBub2ltYWdlKTsKCX0KfQoKLy8gIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKLy8gU3R1ZmYgdGhhdCByZWFsbHkgZG9lc24ndCBmaXQgYW55d2hlcmUgZWxz
ZQoKLyoqCiogU2V0cyBhbiBlbGVtZW50IGFuZCBhbGwgaXRzIGNoaWxkcmVuIHRvIGJlICd1bnNl
bGVjdGFibGUnCioKKiBAcGFyYW0Jb2JqZWN0CU9iamVjdCB0byBiZSBtYWRlIHVuc2VsZWN0YWJs
ZQoqLwpmdW5jdGlvbiBzZXRfdW5zZWxlY3RhYmxlKG9iaikKewoJaWYgKCFpc19pZTQgJiYgdHlw
ZW9mIG9iai50YWdOYW1lICE9ICd1bmRlZmluZWQnKQoJewoJCWlmIChvYmouaGFzQ2hpbGROb2Rl
cygpKQoJCXsKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBvYmouY2hpbGROb2Rlcy5sZW5ndGg7IGkr
KykKCQkJewoJCQkJc2V0X3Vuc2VsZWN0YWJsZShvYmouY2hpbGROb2Rlc1tpXSk7CgkJCX0KCQl9
CgkJb2JqLnVuc2VsZWN0YWJsZSA9ICdvbic7Cgl9Cn0KCi8qKgoqIEZldGNoZXMgdGhlIHNlc3Np
b25oYXNoIGZyb20gdGhlIFNFU1NJT05VUkwgdmFyaWFibGUKKgoqIEByZXR1cm4Jc3RyaW5nCiov
CmZ1bmN0aW9uIGZldGNoX3Nlc3Npb25oYXNoKCkKewoJcmV0dXJuIChTRVNTSU9OVVJMID09ICcn
ID8gJycgOiBTRVNTSU9OVVJMLnN1YnN0cigyLCAzMikpOwp9CgovKioKKiBFbXVsYXRlcyB0aGUg
UEhQIHZlcnNpb24gb2YgdkJ1bGxldGluJ3MgY29uc3RydWN0X3BocmFzZSgpIHNwcmludGYgd3Jh
cHBlcgoqCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgY29udGFpbmluZyAlMSRzIHR5cGUgcmVwbGFj
ZW1lbnQgbWFya2VycwoqIEBwYXJhbQlzdHJpbmcJRmlyc3QgcmVwbGFjZW1lbnQKKiBAcGFyYW0J
c3RyaW5nCU50aCByZXBsYWNlbWVudAoqCiogQHJldHVybglzdHJpbmcKKi8KZnVuY3Rpb24gY29u
c3RydWN0X3BocmFzZSgpCnsKCWlmICghYXJndW1lbnRzIHx8IGFyZ3VtZW50cy5sZW5ndGggPCAx
IHx8ICFpc19yZWdleHApCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCXZhciBhcmdzID0gYXJndW1l
bnRzOwoJdmFyIHN0ciA9IGFyZ3NbMF07Cgl2YXIgcmU7CgoJZm9yICh2YXIgaSA9IDE7IGkgPCBh
cmdzLmxlbmd0aDsgaSsrKQoJewoJCXJlID0gbmV3IFJlZ0V4cCgiJSIgKyBpICsgIlxcJHMiLCAn
Z2knKTsKCQlzdHIgPSBzdHIucmVwbGFjZShyZSwgYXJnc1tpXSk7Cgl9CglyZXR1cm4gc3RyOwp9
CgovKioKKiBIYW5kbGVzIHRoZSBxdWljayBzdHlsZS9sYW5ndWFnZSBvcHRpb25zIGluIHRoZSBm
b290ZXIKKgoqIEBwYXJhbQlvYmplY3QJU2VsZWN0IG9iamVjdAoqIEBwYXJhbQlzdHJpbmcJVHlw
ZSAoc3R5bGUgb3IgbGFuZ3VhZ2UpCiovCmZ1bmN0aW9uIHN3aXRjaF9pZChzZWxlY3RvYmosIHR5
cGUpCnsKCXZhciBpZCA9IHNlbGVjdG9iai5vcHRpb25zW3NlbGVjdG9iai5zZWxlY3RlZEluZGV4
XS52YWx1ZTsKCglpZiAoaWQgPT0gJycpCgl7CgkJcmV0dXJuOwoJfQoKCXZhciB1cmwgPSBuZXcg
U3RyaW5nKHdpbmRvdy5sb2NhdGlvbik7Cgl2YXIgZnJhZ21lbnQgPSBuZXcgU3RyaW5nKCcnKTsK
CgkvLyBnZXQgcmlkIG9mIGZyYWdtZW50Cgl1cmwgPSB1cmwuc3BsaXQoJyMnKTsKCgkvLyBkZWFs
IHdpdGggdGhlIGZyYWdtZW50IGZpcnN0CglpZiAodXJsWzFdKQoJewoJCWZyYWdtZW50ID0gJyMn
ICsgdXJsWzFdOwoJfQoKCS8vIGRlYWwgd2l0aCB0aGUgbWFpbiB1cmwKCXVybCA9IHVybFswXTsK
CgkvLyByZW1vdmUgaWQ9eCYgZnJvbSBtYWluIGJpdAoJaWYgKHVybC5pbmRleE9mKHR5cGUgKyAn
aWQ9JykgIT0gLTEgJiYgaXNfcmVnZXhwKQoJewoJCXJlID0gbmV3IFJlZ0V4cCh0eXBlICsgImlk
PVxcZCsmPyIpOwoJCXVybCA9IHVybC5yZXBsYWNlKHJlLCAnJyk7Cgl9CgoJLy8gYWRkIHRoZSA/
IHRvIHRoZSB1cmwgaWYgbmVlZGVkCglpZiAodXJsLmluZGV4T2YoJz8nKSA9PSAtMSkKCXsKCQl1
cmwgKz0gJz8nOwoJfQoJZWxzZQoJewoJCS8vIG1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgYSB2YWxp
ZCBjaGFyYWN0ZXIgdG8gam9pbiBvdXIgaWQgYml0CgkJbGFzdGNoYXIgPSB1cmwuc3Vic3RyKHVy
bC5sZW5ndGggLSAxKTsKCQlpZiAobGFzdGNoYXIgIT0gJyYnICYmIGxhc3RjaGFyICE9ICc/JykK
CQl7CgkJCXVybCArPSAnJic7CgkJfQoJfQoKCXdpbmRvdy5sb2NhdGlvbiA9IHVybCArIHR5cGUg
KyAnaWQ9JyArIGlkICsgZnJhZ21lbnQ7Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIElu
aXRpYWxpemUgYSBQb3N0Qml0CgovKioKKiBUaGlzIGZ1bmN0aW9uIHJ1bnMgYWxsIHRoZSBuZWNl
c3NhcnkgSmF2YXNjcmlwdCBjb2RlIG9uIGEgUG9zdEJpdAoqIGFmdGVyIGl0IGhhcyBiZWVuIGxv
YWRlZCB2aWEgQUpBWC4gRG9uJ3QgdXNlIHRoaXMgbWV0aG9kIGJlZm9yZSBhCiogY29tcGxldGUg
cGFnZSBsb2FkIG9yIHlvdSdsbCBoYXZlIHByb2JsZW1zLgoqCiogQHBhcmFtCW9iamVjdAlPYmpl
Y3QgY29udGFpbmluZyBwb3N0Yml0cwoqLwpmdW5jdGlvbiBQb3N0Qml0X0luaXQob2JqKQp7Cglp
ZiAodHlwZW9mIHZCbWVudSAhPSAndW5kZWZpbmVkJykKCXsKCQkvLyBpbml0IHByb2ZpbGUgbWVu
dShzKQoJCXZhciBkaXZzID0gZmV0Y2hfdGFncyhvYmosICdkaXYnKTsKCQlmb3IgKHZhciBpID0g
MDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspCgkJewoJCQlpZiAoZGl2c1tpXS5pZCAmJiBkaXZzW2ld
LmlkLnN1YnN0cigwLCA5KSA9PSAncG9zdG1lbnVfJykKCQkJewoJCQkJdkJtZW51LnJlZ2lzdGVy
KGRpdnNbaV0uaWQsIHRydWUpOwoJCQl9CgkJfQoJfQoKCWlmICh0eXBlb2YgdkJfUXVpY2tFZGl0
b3IgIT0gJ3VuZGVmaW5lZCcpCgl7CgkJLy8gaW5pdCBxdWljayBlZGl0IGNvbnRyb2xzCgkJdkJf
QUpBWF9RdWlja0VkaXRfSW5pdChvYmopOwoJfQoKCWlmICh0eXBlb2YgdkJfUXVpY2tSZXBseSAh
PSAndW5kZWZpbmVkJykKCXsKCQkvLyBpbml0IHF1aWNrIHJlcGx5IGJ1dHRvbgoJCXFyX2luaXRf
YnV0dG9ucyhvYmopOwoJfQp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBNYWluIHZCdWxs
ZXRpbiBKYXZhc2NyaXB0IEluaXRpYWxpemF0aW9uCgovKioKKiBUaGlzIGZ1bmN0aW9uIHJ1bnMg
KGFsbW9zdCkgYXQgdGhlIGVuZCBvZiBzY3JpcHQgbG9hZGluZyBvbiBtb3N0IHZCdWxsZXRpbiBw
YWdlcwoqCiogSXQgc2V0cyB1cCB0aGluZ3MgbGlrZSBpbWFnZSBhbHQtPnRpdGxlIHRhZ3MsIHR1
cm5zIG9uIHRoZSBwb3B1cCBtZW51IHN5c3RlbSBldGMuCioKKiBAcmV0dXJuCWJvb2xlYW4KKi8K
ZnVuY3Rpb24gdkJ1bGxldGluX2luaXQoKQp7CgkvLyBkb24ndCBib3RoZXIgZG9pbmcgYW55IGV4
Y2l0aW5nIHN0dWZmIGZvciBXZWJUVgoJaWYgKGlzX3dlYnR2KQoJewoJCXJldHVybiBmYWxzZTsK
CX0KCgkvLyBzZXQgJ3RpdGxlJyB0YWdzIGZvciBpbWFnZSBlbGVtZW50cwoJdmFyIGltZ3MgPSBm
ZXRjaF90YWdzKGRvY3VtZW50LCAnaW1nJyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IGltZ3MubGVu
Z3RoOyBpKyspCgl7CgkJaWYgKCFpbWdzW2ldLnRpdGxlICYmIGltZ3NbaV0uYWx0ICE9ICcnKQoJ
CXsKCQkJaW1nc1tpXS50aXRsZSA9IGltZ3NbaV0uYWx0OwoJCX0KCX0KCgkvLyBmaW5hbGl6ZSBw
b3B1cCBtZW51cwoJaWYgKHR5cGVvZiB2Qm1lbnUgPT0gJ29iamVjdCcpCgl7CgkJLy8gY2xvc2Ug
YWxsIG1lbnVzIG9uIGRvY3VtZW50IGNsaWNrCgkJaWYgKHdpbmRvdy5hdHRhY2hFdmVudCAmJiAh
aXNfc2FmKQoJCXsKCQkJZG9jdW1lbnQuYXR0YWNoRXZlbnQoJ29uY2xpY2snLCB2Ym1lbnVfaGlk
ZSk7CgkJCXdpbmRvdy5hdHRhY2hFdmVudCgnb25yZXNpemUnLCB2Ym1lbnVfaGlkZSk7CgkJfQoJ
CWVsc2UgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIgJiYgIWlzX3NhZikKCQl7CgkJCWRv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdmJtZW51X2hpZGUsIGZhbHNlKTsKCQkJ
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHZibWVudV9oaWRlLCBmYWxzZSk7CgkJ
fQoJCWVsc2UKCQl7CgkJCXdpbmRvdy5vbmNsaWNrID0gdmJtZW51X2hpZGU7CgkJCXdpbmRvdy5v
bnJlc2l6ZSA9IHZibWVudV9oaWRlOwoJCX0KCgkJLy8gYWRkIHBvcHVwcyB0byBwYWdlbmF2IGVs
ZW1lbnRzCgkJdmFyIHBhZ2VuYXZzID0gZmV0Y2hfdGFncyhkb2N1bWVudCwgJ3RkJyk7CgkJZm9y
ICh2YXIgbiA9IDA7IG4gPCBwYWdlbmF2cy5sZW5ndGg7IG4rKykKCQl7CgkJCWlmIChwYWdlbmF2
c1tuXS5oYXNDaGlsZE5vZGVzKCkgJiYgcGFnZW5hdnNbbl0uZmlyc3RDaGlsZC5uYW1lICYmIHBh
Z2VuYXZzW25dLmZpcnN0Q2hpbGQubmFtZS5pbmRleE9mKCdQYWdlTmF2JykgIT0gLTEpCgkJCXsK
CQkJCXZhciBhZGRyID0gcGFnZW5hdnNbbl0udGl0bGU7CgkJCQlwYWdlbmF2c1tuXS50aXRsZSA9
ICcnOwoJCQkJcGFnZW5hdnNbbl0uaW5uZXJIVE1MID0gJyc7CgkJCQlwYWdlbmF2c1tuXS5pZCA9
ICdwYWdlbmF2LicgKyBuOwoJCQkJdmFyIHBuID0gdkJtZW51LnJlZ2lzdGVyKHBhZ2VuYXZzW25d
LmlkKTsKCQkJCWlmIChpc19zYWYpCgkJCQl7CgkJCQkJcG4uY29udHJvbG9iai5fb25jbGljayA9
IHBuLmNvbnRyb2xvYmoub25jbGljazsKCQkJCQlwbi5jb250cm9sb2JqLm9uY2xpY2sgPSB2QnBh
Z2VuYXYucHJvdG90eXBlLmNvbnRyb2xvYmpfb25jbGljazsKCQkJCX0KCQkJfQoJCX0KCgkJLy8g
cHJvY2VzcyB0aGUgcGFnZW5hdnMgcG9wdXAgZm9ybQoJCWlmICh0eXBlb2YgYWRkciAhPSAndW5k
ZWZpbmVkJykKCQl7CgkJCWZldGNoX29iamVjdCgncGFnZW5hdl9mb3JtJykuYWRkciA9IGFkZHI7
CgkJCWZldGNoX29iamVjdCgncGFnZW5hdl9mb3JtJykuZ290b3BhZ2UgPSB2QnBhZ2VuYXYucHJv
dG90eXBlLmZvcm1fZ290b3BhZ2U7CgkJCWZldGNoX29iamVjdCgncGFnZW5hdl9pYnRuJykub25j
bGljayA9IHZCcGFnZW5hdi5wcm90b3R5cGUuaWJ0bl9vbmNsaWNrOwoJCQlmZXRjaF9vYmplY3Qo
J3BhZ2VuYXZfaXR4dCcpLm9ua2V5cHJlc3MgPSB2QnBhZ2VuYXYucHJvdG90eXBlLml0eHRfb25r
ZXlwcmVzczsKCQl9CgoJCS8vIGFjdGl2YXRlIHRoZSBtZW51IHN5c3RlbQoJCXZCbWVudS5hY3Rp
dmF0ZSh0cnVlKTsKCX0KCglyZXR1cm4gdHJ1ZTsKfQoKLyo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKfHwgIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMKfHwgIyBEb3dubG9hZGVkOiAwODo1NywgV2VkIE1heSAzcmQgMjAwNgp8fCAjIENW
UzogJFJDU2ZpbGU6IHZidWxsZXRpbl9nbG9iYWwuanMsdiAkIC0gJFJldmlzaW9uOiAxLjE1MSAk
Cnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXxA+aHR0cDovL3d3dy5tYWNpdHluZXQu
aXQvZm9ydW0vY2xpZW50c2NyaXB0L3ZidWxsZXRpbl9nbG9iYWwuanNfEBhhcHBsaWNhdGlvbi94
LWphdmFzY3JpcHTUBQYHCBMUFRFPEQSCYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJz
aW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNl
UmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBES
ExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRT
JDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWABoAAI0GkHNvc2LKFETuOEAAjQaQc29xU
lmiAHCNBpB31URV9fYAC0yorGSEtLldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxA8aHR0cDov
L3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vY2xpZW50c2NyaXB0L3ZidWxsZXRpbl9tZW51Lmpz0jEy
MzRYJGNsYXNzZXNaJGNsYXNzbmFtZaM0NTZVTlNVUkxWJU5TVVJMWE5TT2JqZWN0XxAYYXBwbGlj
YXRpb24veC1qYXZhc2NyaXB00xgZHDk6O4AHgBsQyNM9Phk/SVNaTlMub2JqZWN0c1dOUy5rZXlz
qUBBQkNERUZHSIARgBKAE4AUgBWAFoAXgBiAGalKS0xNTk9QUVKACIAJgAqAC4AMgA2ADoAPgBCA
GlZTZXJ2ZXJdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzWkNvbm5lY3Rpb25URGF0ZV5Db250
ZW50LUxlbmd0aFpLZWVwLUFsaXZlVEV0YWdcQ29udGVudC1UeXBlXUFwYWNoZS8xLjMuMjlfEB1X
ZWQsIDAzIE1heSAyMDA2IDEzOjU4OjI1IEdNVFVieXRlc18QHVN1biwgMDcgTWF5IDIwMDYgMTg6
MDM6MjMgR01UVTE1MjQ2XxARdGltZW91dD01LCBtYXg9OTlfEBYiZTIzOTQxLTNiOGUtNDQ1OGI3
MDEi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSMTJpaqJqNl8Q
GU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hUVFBVUkxSZXNwb25zZV1O
U1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCwALQAtwC7AL4AwQDFAMgA
ywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsBIwEvATEBMwE1AXQBeQGC
AY0BkQGXAZ4BpwHCAckBywHNAc8B1gHhAekB8wH1AfcB+QH7Af0B/wIBAgMCBQIPAhECEwIVAhcC
GQIbAh0CHwIhAiMCKgI4AkYCUQJWAmUCcAJ1AoICkAKwArYC1gLcAvADCQMOAxIDKAM1AzoDPQNZ
A14DYgN2AAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA4RPETuOLyo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
KlwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMgfHwKfHwgIyB2QnVsbGV0aW4gMy41LjQKfHwgIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMg
fHwKfHwgIyBDb3B5cmlnaHQgqTIwMDAtMjAwNiBKZWxzb2Z0IEVudGVycHJpc2VzIEx0ZC4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4gfHwKfHwgIyBUaGlzIGZpbGUgbWF5IG5vdCBiZSByZWRpc3RyaWJ1
dGVkIGluIHdob2xlIG9yIHNpZ25pZmljYW50IHBhcnQuICMgfHwKfHwgIyAtLS0tLS0tLS0tLS0t
LS0tIFZCVUxMRVRJTiBJUyBOT1QgRlJFRSBTT0ZUV0FSRSAtLS0tLS0tLS0tLS0tLS0tICMgfHwK
fHwgIyBodHRwOi8vd3d3LnZidWxsZXRpbi5jb20gfCBodHRwOi8vd3d3LnZidWxsZXRpbi5jb20v
bGljZW5zZS5odG1sICMgfHwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgfHwKXCo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCi8q
KgoqIHZCdWxsZXRpbiBwb3B1cCBtZW51IGV4YW1wbGUgdXNhZ2U6CioKKiBUbyBjcmVhdGUgYSBu
ZXcgcG9wdXAgbWVudToKKiAJPGVsZW1lbnQgaWQ9IngiPkNsaWNrIG1lIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4gdkJtZW51LnJlZ2lzdGVyKCd4Jyk7IDwvc2NyaXB0PjwvZWxlbWVu
dD4KKgoqIFRvIGNyZWF0ZSBhIGR5bmFtaWMgcG9wdXAgbWVudSB3aXRoIGEgdGl0bGUgYW5kIHR3
byBvcHRpb25zOgoqIAk8ZWxlbWVudCBpZD0ieCI+Q2xpY2sgbWU8L2VsZW1lbnQ+CiogCTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKiAJbWVudSA9IG5ldyB2Ql9NZW51X0J1aWxkZXIo
J3gnKTsKKiAJbWVudS5zZXRfdGl0bGUoJ015IE1lbnUnKTsKKiAJbWVudS5hZGRfb3B0aW9uKCdP
cHRpb24gMScsICdzY3JpcHQucGhwP29wdD0xJyk7CiogCW1lbnUuYWRkX29wdGlvbignT3B0aW9u
IDInLCAnc2NyaXB0LnBocD9vcHQ9MicpOwoqIAltZW51LmJ1aWxkKCk7CiogCTwvc2NyaXB0Pgoq
LwoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gdkJfUG9wdXBfSGFuZGxlcgovLyAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwoKLyoqCiogdkJ1bGxldGluIHBvcHVwIG1lbnUgcmVnaXN0cnkKKi8KZnVu
Y3Rpb24gdkJfUG9wdXBfSGFuZGxlcigpCnsKCS8qKgoJKiBPcHRpb25zOgoJKgoJKiBAdmFyCWlu
dGVnZXIJTnVtYmVyIG9mIHN0ZXBzIHRvIHVzZSBpbiBzbGlkaW5nIG1lbnVzIG9wZW4KCSogQHZh
cglib29sZWFuCVVzZSBvcGFjaXR5IGZhY2UgaW4gbWVudSBvcGVuPwoJKi8KCXRoaXMub3Blbl9z
dGVwcyA9IDEwOwoJdGhpcy5vcGVuX2ZhZGUgPSBmYWxzZTsKCgl0aGlzLmFjdGl2ZSA9IGZhbHNl
OwoKCXRoaXMubWVudXMgPSBuZXcgQXJyYXkoKTsKCXRoaXMuYWN0aXZlbWVudSA9IG51bGw7CgoJ
dGhpcy5oaWRkZW5fc2VsZWN0cyA9IG5ldyBBcnJheSgpOwp9CgovLyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQovLyB2Ql9Qb3B1cF9IYW5kbGVyIG1ldGhvZHMKCi8qKgoqIEFjdGl2YXRlIC8gRGVhY3Rp
dmF0ZSB0aGUgbWVudSBzeXN0ZW0KKgoqIEBwYXJhbQlib29sZWFuCUFjdGl2ZSBzdGF0ZSBmb3Ig
bWVudXMKKi8KdkJfUG9wdXBfSGFuZGxlci5wcm90b3R5cGUuYWN0aXZhdGUgPSBmdW5jdGlvbihh
Y3RpdmUpCnsKCXRoaXMuYWN0aXZlID0gYWN0aXZlOwp9CgovKioKKiBSZWdpc3RlciBhIGNvbnRy
b2wgb2JqZWN0IGFzIGEgbWVudSBjb250cm9sCioKKiBAcGFyYW0Jc3RyaW5nCUlEIG9mIHRoZSBj
b250cm9sIG9iamVjdAoqIEBwYXJhbQlib29sZWFuCURvIG5vdCBhZGQgYW4gaW1hZ2UgKHRydWUp
CioKKiBAcmV0dXJuCXZCX1BvcHVwX01lbnUKKi8KdkJfUG9wdXBfSGFuZGxlci5wcm90b3R5cGUu
cmVnaXN0ZXIgPSBmdW5jdGlvbihjb250cm9sa2V5LCBub2ltYWdlKQp7Cgl0aGlzLm1lbnVzW2Nv
bnRyb2xrZXldID0gbmV3IHZCX1BvcHVwX01lbnUoY29udHJvbGtleSwgbm9pbWFnZSk7CgoJcmV0
dXJuIHRoaXMubWVudXNbY29udHJvbGtleV07Cn0KCi8qKgoqIEhpZGUgYWN0aXZlIG1lbnUKKi8K
dkJfUG9wdXBfSGFuZGxlci5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uKCkKewoJaWYgKHRoaXMu
YWN0aXZlbWVudSAhPSBudWxsKQoJewoJCS8vdGhpcy5hY3RpdmVtZW51LmhpZGUoKTsKCQl0aGlz
Lm1lbnVzW3RoaXMuYWN0aXZlbWVudV0uaGlkZSgpOwoJfQp9CgoKLy8gIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMKLy8gaW5pdGlhbGl6ZSBtZW51IHJlZ2lzdHJ5Cgp2Qm1lbnUgPSBuZXcgdkJfUG9wdXBf
SGFuZGxlcigpOwoKLyoqCiogRnVuY3Rpb24gdG8gYWxsb3cgYW55dGhpbmcgdG8gaGlkZSBhbGwg
bWVudXMKKgoqIEBwYXJhbQlldmVudAlFdmVudCBvYmplY3QKKgoqIEByZXR1cm4JbWl4ZWQKKi8K
ZnVuY3Rpb24gdmJtZW51X2hpZGUoZSkKewoJaWYgKGUgJiYgZS5idXR0b24gJiYgZS5idXR0b24g
IT0gMSAmJiBlLnR5cGUgPT0gJ2NsaWNrJykKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCWVsc2UKCXsK
CQl2Qm1lbnUuaGlkZSgpOwoJfQp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyB2Ql9Qb3B1
cF9NZW51Ci8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovKioKKiB2QnVsbGV0aW4gcG9wdXAgbWVu
dSBjbGFzcyBjb25zdHJ1Y3RvcgoqCiogTWFuYWdlcyBhIHNpbmdsZSBtZW51IGFuZCBjb250cm9s
IG9iamVjdAoqIEluaXRpYWxpemVzIGNvbnRyb2wgb2JqZWN0CioKKiBAcGFyYW0Jc3RyaW5nCUlE
IG9mIHRoZSBjb250cm9sIG9iamVjdAoqLwpmdW5jdGlvbiB2Ql9Qb3B1cF9NZW51KGNvbnRyb2xr
ZXksIG5vaW1hZ2UpCnsKCXRoaXMuY29udHJvbGtleSA9IGNvbnRyb2xrZXk7Cgl0aGlzLm1lbnVu
YW1lID0gdGhpcy5jb250cm9sa2V5LnNwbGl0KCcuJylbMF0gKyAnX21lbnUnOwoKCXRoaXMuaW5p
dF9jb250cm9sKG5vaW1hZ2UpOwoKCWlmIChmZXRjaF9vYmplY3QodGhpcy5tZW51bmFtZSkpCgl7
CgkJdGhpcy5pbml0X21lbnUoKTsKCX0KCgl0aGlzLnNsaWRlX29wZW4gPSAoaXNfb3BlcmEgPyBm
YWxzZSA6IHRydWUpOwoJdGhpcy5vcGVuX3N0ZXBzID0gdkJtZW51Lm9wZW5fc3RlcHM7Cn0KCi8v
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci8vIHZCX1BvcHVwX01lbnUgbWV0aG9kcwoKLyoqCiogSW5p
dGlhbGl6ZSB0aGUgY29udHJvbCBvYmplY3QKKi8KdkJfUG9wdXBfTWVudS5wcm90b3R5cGUuaW5p
dF9jb250cm9sID0gZnVuY3Rpb24obm9pbWFnZSkKewoJdGhpcy5jb250cm9sb2JqID0gZmV0Y2hf
b2JqZWN0KHRoaXMuY29udHJvbGtleSk7Cgl0aGlzLmNvbnRyb2xvYmouc3RhdGUgPSBmYWxzZTsK
CglpZiAodGhpcy5jb250cm9sb2JqLmZpcnN0Q2hpbGQgJiYgKHRoaXMuY29udHJvbG9iai5maXJz
dENoaWxkLnRhZ05hbWUgPT0gJ1RFWFRBUkVBJyB8fCB0aGlzLmNvbnRyb2xvYmouZmlyc3RDaGls
ZC50YWdOYW1lID09ICdJTlBVVCcpKQoJewoJCS8vIGRvIG5vdGhpbmcKCX0KCWVsc2UKCXsKCQlp
ZiAoIW5vaW1hZ2UgJiYgIShpc19tYWMgJiYgaXNfaWUpKQoJCXsKCQkJdmFyIHNwYWNlID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKTsKCQkJdGhpcy5jb250cm9sb2JqLmFwcGVuZENoaWxk
KHNwYWNlKTsKCgkJCXZhciBpbWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKCQkJ
aW1nLnNyYyA9IElNR0RJUl9NSVNDICsgJy9tZW51X29wZW4uZ2lmJzsKCQkJaW1nLmJvcmRlciA9
IDA7CgkJCWltZy50aXRsZSA9ICcnOwoJCQlpbWcuYWx0ID0gJyc7CgkJCXRoaXMuY29udHJvbG9i
ai5hcHBlbmRDaGlsZChpbWcpOwoJCX0KCgkJdGhpcy5jb250cm9sb2JqLnVuc2VsZWN0YWJsZSA9
IHRydWU7CgkJaWYgKCFub2ltYWdlKQoJCXsKCQkJdGhpcy5jb250cm9sb2JqLnN0eWxlLmN1cnNv
ciA9IHBvaW50ZXJfY3Vyc29yOwoJCX0KCQl0aGlzLmNvbnRyb2xvYmoub25jbGljayA9IHZCX1Bv
cHVwX0V2ZW50cy5wcm90b3R5cGUuY29udHJvbG9ial9vbmNsaWNrOwoJCXRoaXMuY29udHJvbG9i
ai5vbm1vdXNlb3ZlciA9IHZCX1BvcHVwX0V2ZW50cy5wcm90b3R5cGUuY29udHJvbG9ial9vbm1v
dXNlb3ZlcjsKCX0KfQoKLyoqCiogSW5pdCB0aGUgcG9wdXAgbWVudSBvYmplY3QKKi8KdkJfUG9w
dXBfTWVudS5wcm90b3R5cGUuaW5pdF9tZW51ID0gZnVuY3Rpb24oKQp7Cgl0aGlzLm1lbnVvYmog
PSBmZXRjaF9vYmplY3QodGhpcy5tZW51bmFtZSk7CgoJaWYgKHRoaXMubWVudW9iaiAmJiAhdGhp
cy5tZW51b2JqLmluaXRpYWxpemVkKQoJewoJCXRoaXMubWVudW9iai5pbml0aWFsaXplZCA9IHRy
dWU7CgkJdGhpcy5tZW51b2JqLm9uY2xpY2sgPSBlX2J5X2d1bTsKCQl0aGlzLm1lbnVvYmouc3R5
bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOwoJCXRoaXMubWVudW9iai5zdHlsZS56SW5kZXggPSA1
MDsKCgkJLy8gaW5pdCBwb3B1cCBmaWx0ZXJzIChpZSBvbmx5KQoJCWlmIChpc19pZSAmJiAhaXNf
bWFjKQoJCXsKCQkJdGhpcy5tZW51b2JqLnN0eWxlLmZpbHRlciArPSAicHJvZ2lkOkRYSW1hZ2VU
cmFuc2Zvcm0uTWljcm9zb2Z0LmFscGhhKGVuYWJsZWQ9MSxvcGFjaXR5PTEwMCkiOwoJCQl0aGlz
Lm1lbnVvYmouc3R5bGUuZmlsdGVyICs9ICJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3Nv
ZnQuc2hhZG93KGRpcmVjdGlvbj0xMzUsY29sb3I9IzhFOEU4RSxzdHJlbmd0aD0zKSI7CgkJfQoK
CQl0aGlzLmluaXRfbWVudV9jb250ZW50cygpOwoJfQp9CgovKioKKiBJbml0IHRoZSBwb3B1cCBt
ZW51IGNvbnRlbnRzCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmluaXRfbWVudV9jb250ZW50
cyA9IGZ1bmN0aW9uKCkKewoJdmFyIHRkcyA9IGZldGNoX3RhZ3ModGhpcy5tZW51b2JqLCAndGQn
KTsKCWZvciAodmFyIGkgPSAwOyBpIDwgdGRzLmxlbmd0aDsgaSsrKQoJewoJCWlmICh0ZHNbaV0u
Y2xhc3NOYW1lID09ICd2Ym1lbnVfb3B0aW9uJykKCQl7CgkJCWlmICh0ZHNbaV0udGl0bGUgJiYg
dGRzW2ldLnRpdGxlID09ICdub2hpbGl0ZScpCgkJCXsKCQkJCS8vIG5vdCBhbiBhY3RpdmUgY2Vs
bAoJCQkJdGRzW2ldLnRpdGxlID0gJyc7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkvLyBjcmVhdGUg
YSByZWZlcmVuY2UgYmFjayB0byB0aGUgbWVudSBjbGFzcwoJCQkJdGRzW2ldLmNvbnRyb2xrZXkg
PSB0aGlzLmNvbnRyb2xrZXk7CgoJCQkJLy8gaGFuZGxlIG1vdXNlb3ZlciAvIG1vdXNlb3V0IGhp
Z2hsaWdodGluZyBldmVudHMKCQkJCXRkc1tpXS5vbm1vdXNlb3ZlciA9IHZCX1BvcHVwX0V2ZW50
cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbm1vdXNlb3ZlcjsKCQkJCXRkc1tpXS5vbm1vdXNlb3V0
ID0gdkJfUG9wdXBfRXZlbnRzLnByb3RvdHlwZS5tZW51b3B0aW9uX29ubW91c2VvdXQ7CgoJCQkJ
aWYgKHR5cGVvZiB0ZHNbaV0ub25jbGljayA9PSAnZnVuY3Rpb24nKQoJCQkJewoJCQkJCS8vIGFs
bG93IG9uY2xpY2sgZXZlbnRzIGZyb20gPHRkPiBlbGVtZW50cyB0byBvdmVycmlkZSA8YT4gZWxl
bWVudHMgaW5zaWRlCgkJCQkJdGRzW2ldLm9mdW5jID0gdGRzW2ldLm9uY2xpY2s7CgkJCQkJdGRz
W2ldLm9uY2xpY2sgPSB2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25jbGlj
a19mdW5jdGlvbjsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQkvLyBhdHRlbXB0IHRvIGVtdWxh
dGUgYSBjbGljayBvbiBpbnRlcm5hbCA8YT4gZWxlbWVudHMKCQkJCQl0ZHNbaV0ub25jbGljayA9
IHZCX1BvcHVwX0V2ZW50cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbmNsaWNrX2xpbms7CgkJCQl9
CgoJCQkJLy8gd29uZGVyaW5nIHdoYXQgdGhpcyB3YXMgc3VwcG9zZWQgdG8gZG8gYWN0dWFsbHku
Li4KCQkJCWlmICghaXNfc2FmICYmICFpc19rb24pCgkJCQl7CgkJCQkJdHJ5CgkJCQkJewoJCQkJ
CQlsaW5rcyA9IGZldGNoX3RhZ3ModGRzW2ldLCAnYScpOwoJCQkJCQlmb3IgKHZhciBqID0gMDsg
aiA8IGxpbmtzLmxlbmd0aDsgaisrKQoJCQkJCQl7CgkJCQkJCQlpZiAodHlwZW9mIGxpbmtzW2pd
Lm9uY2xpY2sgID09ICd1bmRlZmluZWQnKQoJCQkJCQkJewoJCQkJCQkJCWxpbmtzW2pdLm9uY2xp
Y2sgPSBlX2J5X2d1bTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCQljYXRjaChlKQoJCQkJ
CXsKCQkJCQkJLy8gaG1tbS4uLgoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCX0KfQoKLyoqCiogU2hv
dyB0aGUgbWVudQoqCiogQHBhcmFtCW9iamVjdAlUaGUgY29udHJvbCBvYmplY3QgY2FsbGluZyB0
aGUgbWVudQoqIEBwYXJhbQlib29sZWFuCVVzZSBzbGlkZSAoZmFsc2UpIG9yIG9wZW4gaW5zdGFu
dGx5PyAodHJ1ZSkKKi8KdkJfUG9wdXBfTWVudS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKG9i
aiwgaW5zdGFudCkKewoJaWYgKCF2Qm1lbnUuYWN0aXZlKQoJewoJCXJldHVybiBmYWxzZTsKCX0K
CWVsc2UgaWYgKCF0aGlzLm1lbnVvYmopCgl7CgkJdGhpcy5pbml0X21lbnUoKTsKCX0KCglpZiAo
IXRoaXMubWVudW9iaikKCXsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJaWYgKHZCbWVudS5hY3RpdmVt
ZW51ICE9IG51bGwpCgl7CgkJdkJtZW51Lm1lbnVzW3ZCbWVudS5hY3RpdmVtZW51XS5oaWRlKCk7
Cgl9CgoJdkJtZW51LmFjdGl2ZW1lbnUgPSB0aGlzLmNvbnRyb2xrZXk7CgoJdGhpcy5tZW51b2Jq
LnN0eWxlLmRpc3BsYXkgPSAnJzsKCWlmICh2Qm1lbnUuc2xpZGVfb3BlbikKCXsKCQl0aGlzLm1l
bnVvYmouc3R5bGUuY2xpcCA9ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8sIGF1dG8pJzsKCX0KCXRo
aXMucG9zID0gdGhpcy5mZXRjaF9vZmZzZXQob2JqKTsKCXRoaXMubGVmdHB4ID0gdGhpcy5wb3Nb
J2xlZnQnXTsKCXRoaXMudG9wcHggPSB0aGlzLnBvc1sndG9wJ10gKyBvYmoub2Zmc2V0SGVpZ2h0
OwoKCWlmICgodGhpcy5sZWZ0cHggKyB0aGlzLm1lbnVvYmoub2Zmc2V0V2lkdGgpID49IGRvY3Vt
ZW50LmJvZHkuY2xpZW50V2lkdGggJiYgKHRoaXMubGVmdHB4ICsgb2JqLm9mZnNldFdpZHRoIC0g
dGhpcy5tZW51b2JqLm9mZnNldFdpZHRoKSA+IDApCgl7CgkJdGhpcy5sZWZ0cHggPSB0aGlzLmxl
ZnRweCArIG9iai5vZmZzZXRXaWR0aCAtIHRoaXMubWVudW9iai5vZmZzZXRXaWR0aDsKCQl0aGlz
LmRpcmVjdGlvbiA9ICdyaWdodCc7Cgl9CgllbHNlCgl7CgkJdGhpcy5kaXJlY3Rpb24gPSAnbGVm
dCcKCX0KCgl0aGlzLm1lbnVvYmouc3R5bGUubGVmdCA9IHRoaXMubGVmdHB4ICsgJ3B4JzsKCXRo
aXMubWVudW9iai5zdHlsZS50b3AgID0gdGhpcy50b3BweCArICdweCc7CgoJaWYgKCFpbnN0YW50
ICYmIHRoaXMuc2xpZGVfb3BlbikKCXsKCQl0aGlzLmludGVydmFsWCA9IE1hdGguY2VpbCh0aGlz
Lm1lbnVvYmoub2Zmc2V0V2lkdGggLyB0aGlzLm9wZW5fc3RlcHMpOwoJCXRoaXMuaW50ZXJ2YWxZ
ID0gTWF0aC5jZWlsKHRoaXMubWVudW9iai5vZmZzZXRIZWlnaHQgLyB0aGlzLm9wZW5fc3RlcHMp
OwoJCXRoaXMuc2xpZGUoKHRoaXMuZGlyZWN0aW9uID09ICdsZWZ0JyA/IDAgOiB0aGlzLm1lbnVv
Ymoub2Zmc2V0V2lkdGgpLCAwLCAwKTsKCX0KCWVsc2UgaWYgKHRoaXMubWVudW9iai5zdHlsZS5j
bGlwICYmIHZCbWVudS5zbGlkZV9vcGVuKQoJewoJCXRoaXMubWVudW9iai5zdHlsZS5jbGlwID0g
J3JlY3QoYXV0bywgYXV0bywgYXV0bywgYXV0byknOwoJfQoKCS8vIGRlYWwgd2l0aCBJRSBwdXR0
aW5nIDxzZWxlY3Q+IGVsZW1lbnRzIG9uIHRvcCBvZiBldmVyeXRoaW5nCgl0aGlzLmhhbmRsZV9v
dmVybGFwcyh0cnVlKTsKCglpZiAodGhpcy5jb250cm9sb2JqLmVkaXRvcmlkKQoJewoJCXRoaXMu
Y29udHJvbG9iai5zdGF0ZSA9IHRydWU7CgkJLy90aGlzLmNvbnRyb2xvYmouZWRpdG9yLm1lbnVf
Y29udGV4dCh0aGlzLmNvbnRyb2xvYmosICdtb3VzZWRvd24nKTsKCQl2Ql9FZGl0b3JbdGhpcy5j
b250cm9sb2JqLmVkaXRvcmlkXS5tZW51X2NvbnRleHQodGhpcy5jb250cm9sb2JqLCAnbW91c2Vk
b3duJyk7Cgl9Cn0KCi8qKgoqIEhpZGUgdGhlIG1lbnUKKi8KdkJfUG9wdXBfTWVudS5wcm90b3R5
cGUuaGlkZSA9IGZ1bmN0aW9uKGUpCnsKCglpZiAoZSAmJiBlLmJ1dHRvbiAmJiBlLmJ1dHRvbiAh
PSAxKQoJewoJCS8vIGdldCBhcm91bmQgc29tZSBjb250ZXh0IG1lbnUgaXNzdWVzIGV0Yy4KCQly
ZXR1cm4gdHJ1ZTsKCX0KCgl0aGlzLnN0b3Bfc2xpZGUoKTsKCgl0aGlzLm1lbnVvYmouc3R5bGUu
ZGlzcGxheSA9ICdub25lJzsKCgl0aGlzLmhhbmRsZV9vdmVybGFwcyhmYWxzZSk7CgoJaWYgKHRo
aXMuY29udHJvbG9iai5lZGl0b3JpZCkKCXsKCQl0aGlzLmNvbnRyb2xvYmouc3RhdGUgPSBmYWxz
ZTsKCQkvL3RoaXMuY29udHJvbG9iai5lZGl0b3IubWVudV9jb250ZXh0KHRoaXMuY29udHJvbG9i
aiwgJ21vdXNlb3V0Jyk7CgkJdkJfRWRpdG9yW3RoaXMuY29udHJvbG9iai5lZGl0b3JpZF0ubWVu
dV9jb250ZXh0KHRoaXMuY29udHJvbG9iaiwgJ21vdXNlb3V0Jyk7Cgl9CgoJdkJtZW51LmFjdGl2
ZW1lbnUgPSBudWxsOwp9CgovKioKKiBIb3ZlciBiZWhhdmlvdXIgZm9yIGNvbnRyb2wgb2JqZWN0
CiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmhvdmVyID0gZnVuY3Rpb24ob2JqKQp7CglpZiAo
dkJtZW51LmFjdGl2ZW1lbnUgIT0gbnVsbCkKCXsKCQlpZiAodkJtZW51Lm1lbnVzW3ZCbWVudS5h
Y3RpdmVtZW51XS5jb250cm9sa2V5ICE9IHRoaXMuaWQpCgkJewoJCQl0aGlzLnNob3cob2JqLCB0
cnVlKTsKCQl9Cgl9Cn0KCi8qKgoqIFNpbXVsYXRlIGNsaWNraW5nIGFuIG9wdGlvbiBpbiBhIG1l
bnUKKgoqIEBwYXJhbQlldmVudAlFdmVudCBvYmplY3QKKiBAcGFyYW0Jb2JqZWN0CUNsaWNrZWQg
b2JqZWN0CiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmNob29zZSA9IGZ1bmN0aW9uKGUsIG9i
aikKewoJdmFyIGxpbmtzID0gZmV0Y2hfdGFncyhvYmosICdhJyk7CglpZiAobGlua3NbMF0pCgl7
CgkJaWYgKGlzX2llKQoJCXsKCQkJLy8gdXNlIHRoaXMgaW4gSUUgdG8gc2VuZCBIVFRQX1JFRkVS
RVIKCQkJbGlua3NbMF0uY2xpY2soKTsKCQkJd2luZG93LmV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRy
dWU7CgkJfQoJCWVsc2UKCQl7CgkJCS8vIG90aGVyIGJyb3dzZXJzIGNhbiB1c2UgdGhpcwoJCQlp
ZiAoZS5zaGlmdEtleSkKCQkJewoJCQkJd2luZG93Lm9wZW4obGlua3NbMF0uaHJlZik7CgkJCQll
LnN0b3BQcm9wYWdhdGlvbigpOwoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQl9CgkJCWVsc2UK
CQkJewoJCQkJd2luZG93LmxvY2F0aW9uID0gbGlua3NbMF0uaHJlZjsKCQkJCWUuc3RvcFByb3Bh
Z2F0aW9uKCk7CgkJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCX0KCQl9CgoJCXRoaXMuaGlkZSgp
OwoJfQp9CgovKioKKiBTbGlkZXMgbWVudSBvcGVuCioKKiBAcGFyYW0JaW50ZWdlcglDbGlwIFgK
KiBAcGFyYW0JaW50ZWdlcglDbGlwIFkKKiBAcGFyYW0JaW50ZWdlcglPcGFjaXR5ICgwLTEwMCkK
Ki8KdkJfUG9wdXBfTWVudS5wcm90b3R5cGUuc2xpZGUgPSBmdW5jdGlvbihjbGlwWCwgY2xpcFks
IG9wYWNpdHkpCnsKCWlmICh0aGlzLmRpcmVjdGlvbiA9PSAnbGVmdCcgJiYgKGNsaXBYIDwgdGhp
cy5tZW51b2JqLm9mZnNldFdpZHRoIHx8IGNsaXBZIDwgdGhpcy5tZW51b2JqLm9mZnNldEhlaWdo
dCkpCgl7CgkJaWYgKHZCbWVudS5vcGVuX2ZhZGUgJiYgaXNfaWUpCgkJewoJCQlvcGFjaXR5ICs9
IDEwOwoJCQl0aGlzLm1lbnVvYmouZmlsdGVycy5pdGVtKCdEWEltYWdlVHJhbnNmb3JtLk1pY3Jv
c29mdC5hbHBoYScpLm9wYWNpdHkgPSBvcGFjaXR5OwoJCX0KCgkJY2xpcFggKz0gdGhpcy5pbnRl
cnZhbFg7CgkJY2xpcFkgKz0gdGhpcy5pbnRlcnZhbFk7CgoJCXRoaXMubWVudW9iai5zdHlsZS5j
bGlwID0gInJlY3QoYXV0bywgIiArIGNsaXBYICsgInB4LCAiICsgY2xpcFkgKyAicHgsIGF1dG8p
IjsKCQl0aGlzLnNsaWRldGltZXIgPSBzZXRUaW1lb3V0KCJ2Qm1lbnUubWVudXNbdkJtZW51LmFj
dGl2ZW1lbnVdLnNsaWRlKCIgKyBjbGlwWCArICIsICIgKyBjbGlwWSArICIsICIgKyBvcGFjaXR5
ICsgIik7IiwgMCk7Cgl9CgllbHNlIGlmICh0aGlzLmRpcmVjdGlvbiA9PSAncmlnaHQnICYmIChj
bGlwWCA+IDAgfHwgY2xpcFkgPCB0aGlzLm1lbnVvYmoub2Zmc2V0SGVpZ2h0KSkKCXsKCQlpZiAo
dkJtZW51Lm9wZW5fZmFkZSAmJiBpc19pZSkKCQl7CgkJCW9wYWNpdHkgKz0gMTA7CgkJCW1lbnVv
YmouZmlsdGVycy5pdGVtKCdEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5hbHBoYScpLm9wYWNp
dHkgPSBvcGFjaXR5OwoJCX0KCgkJY2xpcFggLT0gdGhpcy5pbnRlcnZhbFg7CgkJY2xpcFkgKz0g
dGhpcy5pbnRlcnZhbFk7CgoJCXRoaXMubWVudW9iai5zdHlsZS5jbGlwID0gInJlY3QoYXV0bywg
IiArIHRoaXMubWVudW9iai5vZmZzZXRXaWR0aCArICJweCwgIiArIGNsaXBZICsgInB4LCAiICsg
Y2xpcFggKyAicHgpIjsKCQl0aGlzLnNsaWRldGltZXIgPSBzZXRUaW1lb3V0KCJ2Qm1lbnUubWVu
dXNbdkJtZW51LmFjdGl2ZW1lbnVdLnNsaWRlKCIgKyBjbGlwWCArICIsICIgKyBjbGlwWSArICIs
ICIgKyBvcGFjaXR5ICsgIik7IiwgMCk7Cgl9CgllbHNlCgl7CgkJdGhpcy5zdG9wX3NsaWRlKCk7
Cgl9Cn0KCi8qKgoqIEFib3J0IG1lbnUgc2xpZGVyCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBl
LnN0b3Bfc2xpZGUgPSBmdW5jdGlvbigpCnsKCWNsZWFyVGltZW91dCh0aGlzLnNsaWRldGltZXIp
OwoKCXRoaXMubWVudW9iai5zdHlsZS5jbGlwID0gJ3JlY3QoYXV0bywgYXV0bywgYXV0bywgYXV0
byknOwoKCWlmICh2Qm1lbnUub3Blbl9mYWRlICYmIGlzX2llKQoJewoJCXRoaXMubWVudW9iai5m
aWx0ZXJzLml0ZW0oJ0RYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmFscGhhJykub3BhY2l0eSA9
IDEwMDsKCX0KfQoKLyoqCiogRmV0Y2ggb2Zmc2V0IG9mIGFuIG9iamVjdAoqCiogQHBhcmFtCW9i
amVjdAlUaGUgb2JqZWN0IHRvIGJlIG1lYXN1cmVkCioKKiBAcmV0dXJuCWFycmF5CVRoZSBtZWFz
dXJlZCBvZmZzZXRzIGxlZnQvdG9wCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmZldGNoX29m
ZnNldCA9IGZ1bmN0aW9uKG9iaikKewoJdmFyIGxlZnRfb2Zmc2V0ID0gb2JqLm9mZnNldExlZnQ7
Cgl2YXIgdG9wX29mZnNldCA9IG9iai5vZmZzZXRUb3A7CgoJd2hpbGUgKChvYmogPSBvYmoub2Zm
c2V0UGFyZW50KSAhPSBudWxsKQoJewoJCWxlZnRfb2Zmc2V0ICs9IG9iai5vZmZzZXRMZWZ0OwoJ
CXRvcF9vZmZzZXQgKz0gb2JqLm9mZnNldFRvcDsKCX0KCglyZXR1cm4geyAnbGVmdCcgOiBsZWZ0
X29mZnNldCwgJ3RvcCcgOiB0b3Bfb2Zmc2V0IH07Cn0KCi8qKgoqIERldGVjdCBhbiBvdmVybGFw
IG9mIGFuIG9iamVjdCBhbmQgYSBtZW51CioKKiBAcGFyYW0Jb2JqZWN0CU9iamVjdCB0byBiZSB0
ZXN0ZWQgZm9yIG92ZXJsYXAKKiBAcGFyYW0JYXJyYXkJQXJyYXkgb2YgZGltZW5zaW9ucyBmb3Ig
bWVudSBvYmplY3QKKgoqIEByZXR1cm4JYm9vbGVhbglUcnVlIGlmIG92ZXJsYXAKKi8KdkJfUG9w
dXBfTWVudS5wcm90b3R5cGUub3ZlcmxhcHMgPSBmdW5jdGlvbihvYmosIG0pCnsKCXZhciBzID0g
bmV3IEFycmF5KCk7Cgl2YXIgcG9zID0gdGhpcy5mZXRjaF9vZmZzZXQob2JqKTsKCXNbJ0wnXSA9
IHBvc1snbGVmdCddOwoJc1snVCddID0gcG9zWyd0b3AnXTsKCXNbJ1InXSA9IHNbJ0wnXSArIG9i
ai5vZmZzZXRXaWR0aDsKCXNbJ0InXSA9IHNbJ1QnXSArIG9iai5vZmZzZXRIZWlnaHQ7CgoKCWlm
IChzWydMJ10gPiBtWydSJ10gfHwgc1snUiddIDwgbVsnTCddIHx8IHNbJ1QnXSA+IG1bJ0InXSB8
fCBzWydCJ10gPCBtWydUJ10pCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIHRydWU7Cn0K
Ci8qKgoqIEhhbmRsZSBJRSBvdmVybGFwcGluZyA8c2VsZWN0PiBlbGVtZW50cwoqCiogQHBhcmFt
CWJvb2xlYW4JSGlkZSAodHJ1ZSkgb3Igc2hvdyAoZmFsc2UpIG92ZXJsYXBwaW5nIDxzZWxlY3Q+
IGVsZW1lbnRzCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmhhbmRsZV9vdmVybGFwcyA9IGZ1
bmN0aW9uKGRvaGlkZSkKewoJaWYgKGlzX2llKQoJewoJCXZhciBzZWxlY3RzID0gZmV0Y2hfdGFn
cyhkb2N1bWVudCwgJ3NlbGVjdCcpOwoKCQlpZiAoZG9oaWRlKQoJCXsKCQkJdmFyIG1lbnVhcmVh
ID0gbmV3IEFycmF5KCk7IG1lbnVhcmVhID0gewoJCQkJJ0wnIDogdGhpcy5sZWZ0cHgsCgkJCQkn
UicgOiB0aGlzLmxlZnRweCArIHRoaXMubWVudW9iai5vZmZzZXRXaWR0aCwKCQkJCSdUJyA6IHRo
aXMudG9wcHgsCgkJCQknQicgOiB0aGlzLnRvcHB4ICsgdGhpcy5tZW51b2JqLm9mZnNldEhlaWdo
dAoJCQl9OwoKCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RzLmxlbmd0aDsgaSsrKQoJCQl7
CgkJCQlpZiAodGhpcy5vdmVybGFwcyhzZWxlY3RzW2ldLCBtZW51YXJlYSkpCgkJCQl7CgkJCQkJ
dmFyIGhpZGUgPSB0cnVlOwoJCQkJCXZhciBzID0gc2VsZWN0c1tpXTsKCQkJCQl3aGlsZSAocyA9
IHMucGFyZW50Tm9kZSkKCQkJCQl7CgkJCQkJCWlmIChzLmNsYXNzTmFtZSA9PSAndmJtZW51X3Bv
cHVwJykKCQkJCQkJewoJCQkJCQkJaGlkZSA9IGZhbHNlOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0K
CQkJCQl9CgoJCQkJCWlmIChoaWRlKQoJCQkJCXsKCQkJCQkJc2VsZWN0c1tpXS5zdHlsZS52aXNp
YmlsaXR5ID0gJ2hpZGRlbic7CgkJCQkJCWFycmF5X3B1c2godkJtZW51LmhpZGRlbl9zZWxlY3Rz
LCBpKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJd2hpbGUgKHRydWUpCgkJ
CXsKCQkJCXZhciBpID0gYXJyYXlfcG9wKHZCbWVudS5oaWRkZW5fc2VsZWN0cyk7CgkJCQlpZiAo
dHlwZW9mIGkgPT0gJ3VuZGVmaW5lZCcgfHwgaSA9PSBudWxsKQoJCQkJewoJCQkJCWJyZWFrOwoJ
CQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXNlbGVjdHNbaV0uc3R5bGUudmlzaWJpbGl0eSA9ICd2
aXNpYmxlJzsKCQkJCX0KCQkJfQoJCX0KCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8g
TWVudSBldmVudCBoYW5kbGVyIGZ1bmN0aW9ucwoKLyoqCiogQ2xhc3MgY29udGFpbmluZyBtZW51
IHBvcHVwIGV2ZW50IGhhbmRsZXJzCiovCmZ1bmN0aW9uIHZCX1BvcHVwX0V2ZW50cygpCnsKfQoK
LyoqCiogSGFuZGxlcyBjb250cm9sIG9iamVjdCBjbGljayBldmVudHMKKi8KdkJfUG9wdXBfRXZl
bnRzLnByb3RvdHlwZS5jb250cm9sb2JqX29uY2xpY2sgPSBmdW5jdGlvbihlKQp7Cglkb19hbl9l
KGUpOwoJaWYgKHZCbWVudS5hY3RpdmVtZW51ID09IG51bGwgfHwgdkJtZW51Lm1lbnVzW3ZCbWVu
dS5hY3RpdmVtZW51XS5jb250cm9sa2V5ICE9IHRoaXMuaWQpCgl7CgkJdkJtZW51Lm1lbnVzW3Ro
aXMuaWRdLnNob3codGhpcyk7Cgl9CgllbHNlCgl7CgkJdkJtZW51Lm1lbnVzW3RoaXMuaWRdLmhp
ZGUoKTsKCX0KfTsKCi8qKgoqIEhhbmRsZXMgY29udHJvbCBvYmplY3QgbW91c2VvdmVyIGV2ZW50
cwoqLwp2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLmNvbnRyb2xvYmpfb25tb3VzZW92ZXIgPSBm
dW5jdGlvbihlKQp7Cglkb19hbl9lKGUpOwoJdkJtZW51Lm1lbnVzW3RoaXMuaWRdLmhvdmVyKHRo
aXMpOwp9OwoKLyoqCiogSGFuZGxlcyBtZW51IG9wdGlvbiBjbGljayBldmVudHMgZm9yIG9wdGlv
bnMgd2l0aCBvbmNsaWNrIGV2ZW50cwoqLwp2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLm1lbnVv
cHRpb25fb25jbGlja19mdW5jdGlvbiA9IGZ1bmN0aW9uKGUpCnsKCXRoaXMub2Z1bmMoZSk7Cgl2
Qm1lbnUubWVudXNbdGhpcy5jb250cm9sa2V5XS5oaWRlKCk7Cn07CgovKioKKiBIYW5kbGVzIG1l
bnUgb3B0aW9uIGNsaWNrIGV2ZW50cyBmb3Igb3B0aW9ucyBjb250YWluaW5nIGxpbmtzCiovCnZC
X1BvcHVwX0V2ZW50cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbmNsaWNrX2xpbmsgPSBmdW5jdGlv
bihlKQp7Cgl2Qm1lbnUubWVudXNbdGhpcy5jb250cm9sa2V5XS5jaG9vc2UoZSwgdGhpcyk7Cn07
CgovKioKKiBIYW5kbGVzIG1lbnUgb3B0aW9uIG1vdXNlb3ZlciBldmVudHMKKi8KdkJfUG9wdXBf
RXZlbnRzLnByb3RvdHlwZS5tZW51b3B0aW9uX29ubW91c2VvdmVyID0gZnVuY3Rpb24oZSkKewoJ
dGhpcy5jbGFzc05hbWUgPSAndmJtZW51X2hpbGl0ZSc7Cn07CgovKioKKiBIYW5kbGVzIG1lbnUg
b3B0aW9uIG1vdXNlb3V0IGV2ZW50cwoqLwp2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLm1lbnVv
cHRpb25fb25tb3VzZW91dCA9IGZ1bmN0aW9uKGUpCnsKCXRoaXMuY2xhc3NOYW1lID0gJ3ZibWVu
dV9vcHRpb24nOwp9OwoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KlwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKfHwgIyBEb3du
bG9hZGVkOiAwODo1NywgV2VkIE1heSAzcmQgMjAwNgp8fCAjIENWUzogJFJDU2ZpbGU6IHZidWxs
ZXRpbl9tZW51LmpzLHYgJCAtICRSZXZpc2lvbjogMS40MCAkCnx8ICMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClwqPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSovXxA8aHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vY2xpZW50c2NyaXB0
L3ZidWxsZXRpbl9tZW51Lmpz1AUGBwgXGBkaTxEEe2JwbGlzdDAw1AECAwQFBgcKWSRhcmNoaXZl
clgkdmVyc2lvblQkdG9wWCRvYmplY3RzXxAPTlNLZXllZEFyY2hpdmVyEgABhqDRCAlfEBNXZWJS
ZXNvdXJjZVJlc3BvbnNlgAGvEB0LDCkvMDc4PFRVVldYWVpbXF1eX1pgYWJjN2Roa1UkbnVsbN8Q
EA0ODxAREhMUFRYXGBkaGxwdHh8eICEeIiMkJR0mJx4oUiQ2UyQxMFIkMlMkMTNSJDdSJDNTJDEx
UiQ4UiQ0UyQxNFIkOVIkMFYkY2xhc3NSJDVTJDEyUiQxEAcQAYAFgAaAACNBpBzcNDt3fRECOBAA
I0GkHNwywMw2gBwjQaQdI7S4h+yAAtMqKxkhLS5XTlMuYmFzZVtOUy5yZWxhdGl2ZYAAgAOABF8Q
SGh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2ltYWdlcy9hczJncmFwaGl0ZS9zdGF0dXNp
Y29uL3Bvc3Rfb2xkLmdpZtIxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2VU5TVVJMViVOU1VS
TFhOU09iamVjdFlpbWFnZS9naWbTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5vYmplY3RzV05TLmtl
eXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmACoALgAyADYAOgA+A
EIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVjdGlvblREYXRlXkNv
bnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBhY2hlLzEuMy4yOV8Q
HVNhdCwgMDYgTWF5IDIwMDYgMTY6Mzg6MDYgR01UVWJ5dGVzXxAdU3VuLCAwNyBNYXkgMjAwNiAx
ODowNDowNyBHTVRTNTY4XxASdGltZW91dD01LCBtYXg9MTAwXxAVImUzZjRmZi0yMzgtNDQ1Y2Qw
ZWUi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSMTJpaqJqNl8Q
GU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hUVFBVUkxSZXNwb25zZV1O
U1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCwALQAtwC7AL4AwQDFAMgA
ywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsBIwEvATEBMwE1AYABhQGO
AZkBnQGjAaoBswG9AcQBxgHIAcoB0QHcAeQB7gHwAfIB9AH2AfgB+gH8Af4CAAIKAgwCDgIQAhIC
FAIWAhgCGgIcAh4CJQIzAkECTAJRAmACawJwAn0CiwKrArEC0QLVAuoDAgMHAwsDIQMuAzMDNgNS
A1cDWwNvAAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA31PEQI4R0lGODlhCwAOAOYAAP37
/PXz9Ozq6+fl5vr5+vX09fTz9PPy8/Lx8vHw8e7t7uzr7Ovq6+rp6uno6efm5/r5+/X09vHw8u3s
7ufm6NjU4Pb1+NjU4dfU39fV3/X1+PDw8urq7Obm6Pf3+Pb29/Pz9O3t7urq6+jo6cfIzcHCx/P0
+PDx9fP09/Lz9vHy9dna3djZ3O3x+3R2e5CSl9TW29LU2ZiantXX29TW2tHT19ja3tTV19PU1szN
z5ueo8HEye3z/JWXmvL099XX2tTW2dPV2GZpbdLV2ZeanZWYm5SXmtTX2tPW2dLV2PP19/Lz9O/w
8err7GNnatTX2dPX2b/BwoaLjfz9/fLz8+/w8P39/Pn5+O/v7vz6+e7s7Ovp6efl5eXj4/f29vb1
9fX09O/u7u3s7Ozr6+vq6uTj4/////f39/X19fT09O/v7+7u7unp6efn5+3z/gAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAG4ALAAAAAALAA4A
AAeVgG6Cg4RuNRkXGBgVGEMxMDU3FicqKSYoSj4aODZmaWdUVUxrIWYsSGYOIiMUTWwcZkk/Zg8P
IgsRSx5mUDNmXgVqCB0gaGZPR2Zhaw5tDQ8bZkC+YgsCAxNkH2YrMGZbXQZjChAAU0FJZlpcDGVY
EiVSMjRmWV9XAVYhLk5uQQUJDBwAQyCKEEE7iLwoUsRIDx2DAgEAO18QSGh0dHA6Ly93d3cubWFj
aXR5bmV0Lml0L2ZvcnVtL2ltYWdlcy9hczJncmFwaGl0ZS9zdGF0dXNpY29uL3Bvc3Rfb2xkLmdp
ZllpbWFnZS9naWbUBQYHCBwdHh9PEQVgYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJz
aW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNl
UmVzcG9uc2WAAa8QJQsMKS8wNzg8XF1eX2BhYmNkZWZnaGlqa2RsbW5vcHFyczd0eHtVJG51bGzf
EBANDg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJiceKFIkNlMkMTBSJDJTJDEzUiQ3UiQzUyQx
MVIkOFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIkMRAHEAGABYAGgAAjQaQcmd4mmWMRLkQQ
ACNBpByZ3XygG4AkI0Gn3wDZVga4gALTKisZIS0uV05TLmJhc2VbTlMucmVsYXRpdmWAAIADgARf
EENodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZS5waHA/dT0xMjc4MiZkYXRlbGlu
ZT0xMTA2NzM0MDI10jEyMzRYJGNsYXNzZXNaJGNsYXNzbmFtZaM0NTZVTlNVUkxWJU5TVVJMWE5T
T2JqZWN0WWltYWdlL3BuZ9MYGRw5OjuAB4AjEMjTPT4ZP01bWk5TLm9iamVjdHNXTlMua2V5c61A
QUJDREVGR0hJSktMgBWAFoAXgBiAGYAagBuAHIAdgB6AH4AggCGtTk9QUVJTVFVWV1hZWoAIgAmA
CoALgAyADYAOgA+AEIARgBKAE4AUgCJWU2VydmVyXUxhc3QtTW9kaWZpZWRdQ2FjaGUtQ29udHJv
bFpDb25uZWN0aW9uVERhdGVfEBNDb250ZW50LURpc3Bvc2l0aW9uV0V4cGlyZXNeQ29udGVudC1M
ZW5ndGhaS2VlcC1BbGl2ZVxYLVBvd2VyZWQtQnlfEBlDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n
VEV0YWdcQ29udGVudC1UeXBlXUFwYWNoZS8xLjMuMjlfEB1XZWQsIDI2IEphbiAyMDA1IDEwOjA3
OjA1IEdNVF8QEG1heC1hZ2U9MzE1MzYwMDBfEB1TdW4sIDA3IE1heSAyMDA2IDE1OjQyOjM3IEdN
VF8QI2lubGluZTsgZmlsZW5hbWU9QXZhdGFyIE9sYWYgODAucG5nXxAdTW9uLCAwNyBNYXkgMjAw
NyAxNTo0MjozNyBHTVRVMTE4NDRfEBF0aW1lb3V0PTUsIG1heD05OVpQSFAvNC4zLjEwVmJpbmFy
eV8QEiIxMTA2NzM0MDI1LTEyNzgyItIxMnV2o3Z3Nl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNE
aWN0aW9uYXJ50jEyeXqiejZfEBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEyfH2jfX42XxAR
TlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQAjACS
ALUAuAC8AL8AwwDGAMkAzQDQANMA1wDaAN0A5ADnAOsA7gDwAPIA9AD2APgBAQEEAQYBDwERARoB
HAEjASsBNwE5ATsBPQGDAYgBkQGcAaABpgGtAbYBwAHHAckBywHNAdQB3wHnAfUB9wH5AfsB/QH/
AgECAwIFAgcCCQILAg0CDwIdAh8CIQIjAiUCJwIpAisCLQIvAjECMwI1AjcCOQJAAk4CXAJnAmwC
ggKKApkCpAKxAs0C0gLfAu0DDQMgA0ADZgOGA4wDoAOrA7IDxwPMA9AD5gPzA/gD+wQXBBwEIAQ0
AAAAAAAAAgEAAAAAAAAAfwAAAAAAAAAAAAAAAAAABEJPES5EiVBORw0KGgoAAAANSUhEUgAAAFAA
AABQCAIAAAABc2X6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QEaCgYfWiaW0gAAIABJ
REFUeNp9vGmTZEl2HXYX97fGHrnV3lXdXVU93bP2wGawzGA4GAKgJJAiQYEgjfxD+hUyE2RGk/GD
aPwgkzQ2AMQhZp/e16quvXLPjP1t7n6vPryIrGoApmdhVZWWUZnvPr9+7znnHg/8n7/7FgAgIhEB
8JyK7/7590JHUtN5cu/Z5z//eIs7LCRBFYKCBiAadBqpqGo8yJvf/0Z+qSssgKRCURTff+/+4cfP
rr154+pbV1fLVZxExkZKoCoIQICqIBDYJL/98a+r4+UP/uIPP3v8WJzuPz7RoKuysLZzfHywt7uD
EFAQVDVA+fS8IeTYjldhji67ttVwMErFk/MtFx/Vi70oAdAiaIYGMYAiArQvhfWFCqR68SUgakrJ
448eRWjKUO69vvdP/uKPdMeeY6ERsTHEZImK2fTqK9fsOEdjDr54HpkY0SAQM4XQ3Hn7No/io/0j
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
CBcfmaKqAdEgRMH3ka8nyRv94WtZb8tYL/7e/PyDcjY1xhMDkKropuv+I59Q8Q82BQIwEhGqarlY
GIJer5uksQAdHJ5e3t2JmPkvb96kFl8jUIA0zQ6XMyESbPMOFLGsq708s7r5lIT14T1QACFVkIgp
GJyXK2uoywYBnKpjszS8gtCWpI2SjzHg5SR7fTC8mqa9IE1VHZerR8vpp8vpM1CH0UVLDbhO1E1u
vNxSNmaFDSZB3ZjfFbpZHlt7cnzc7fWiKN4aDZ8fHrmm2hoP+d/duvmi2hOkhI7hvGlozerXDrXQ
NKM0t6KocoHwN8ABjNDYxFfyzpUsv5qk17POVhznRBiCc76d+MmFDRAAXDOZTZ4uZ0/q+pl3RypT
woqNACmC6BoaXES7+WSGl04x4IuA15bfdm1BOmkaExVNCYin55PReJQY0x0O7j98NOj3+d/ceqVy
jTEGNguWx/mz5dIRXhjTBGHhG/Ayzjqoum5NL+VYQAUVVomDGPWoEgF0rB0nyXbeW4Ff+GYzy4QA
VCtVxlbGNhR5It/OSRQUsBVJdLO2f5/pfYn1AQIGXRMpay2o5HGcRrasCkFWIFGYnE92BuO822lc
E5z8f5A4cPntEJ+rAAAAAElFTkSuQmCCXxBDaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0v
aW1hZ2UucGhwP3U9MTI3ODImZGF0ZWxpbmU9MTEwNjczNDAyNVlpbWFnZS9wbmfUBQYHCCEiIxpP
EQRzYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9O
U0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNlUmVzcG9uc2WAAa8QHQsMKS8wNzg8
VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBESExQVFhcYGRobHB0eHx4gIR4iIyQl
HSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMk
MTJSJDEQBxABgAWABoAAI0GkHNw1lWNnEQP9EAAjQaQc3DLHT7WAHCNBpB0kAWUfgYAC0yorGSEt
LldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxBAaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9y
dW0vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1faWNxLmdpZtIxMjM0WCRjbGFzc2VzWiRjbGFz
c25hbWWjNDU2VU5TVVJMViVOU1VSTFhOU09iamVjdFlpbWFnZS9naWbTGBkcOTo7gAeAGxDI0z0+
GT9JU1pOUy5vYmplY3RzV05TLmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpLTE1O
T1BRUoAIgAmACoALgAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5n
ZXNaQ29ubmVjdGlvblREYXRlXkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250ZW50
LVR5cGVdQXBhY2hlLzEuMy4yOV8QHVNhdCwgMDYgTWF5IDIwMDYgMTY6MzE6NDcgR01UVWJ5dGVz
XxAdU3VuLCAwNyBNYXkgMjAwNiAxODowNDowOCBHTVRUMTAyMV8QEXRpbWVvdXQ9NSwgbWF4PTk5
XxAVImUzZjQ4YS0zZmQtNDQ1Y2NmNzMi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxO
U0RpY3Rpb25hcnnSMTJpaqJqNl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZf
EBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACE
AIoArQCwALQAtwC7AL4AwQDFAMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkB
EgEUARsBIwEvATEBMwE1AXgBfQGGAZEBlQGbAaIBqwG1AbwBvgHAAcIByQHUAdwB5gHoAeoB7AHu
AfAB8gH0AfYB+AICAgQCBgIIAgoCDAIOAhACEgIUAhYCHQIrAjkCRAJJAlgCYwJoAnUCgwKjAqkC
yQLOAuIC+gL/AwMDGQMmAysDLgNKA08DUwNnAAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAA
A3VPEQP9R0lGODlhEAAQAPcAADAmL15cXuvq69/e39va26yrrH98gJaTlz85QkVBR2RgZjg2OUtJ
TFJQU2VjZmRiZXZ0d5eVmF9aYhkOIEU9SnVydyskMUI6SYaEiFNSVHh3eamoqp+eoIyLjYeGiTU1
OlhYWdnZ2sDAwbq6uxodJrGys3Z4eUdJSVtdXTdCQTdFOW5vbmZnZjtlMRUYFCsxKT1DOz7YAEDK
CkO+EzZ6GyU+G0npAid0Bki2GC9zEiJSDTBhGzttJTtrJ0bfAFHiCCx0CUnDEFC8HkiYIlivL0eA
LG+YW2tvaVboBVuvLUWGJH3iRn3aSjlkIkt/L1V9P3GfWDdNK1FoRVXpAFXhAFB8NXqlYT1MNF5q
V1ehKYvmUpHXZUJYNGPpBGfxB3H2FYvkSU5/LIXVToO2X3SbWH6mYDtNLnGSWV1oVUpOR1ldVnL/
AG74AGfuAHfwFWbMGWO+GoDRQUdpLHWqTXTkEFSJJlyPMFKBK2aYO1NzN0lORP/0PnRyTv/wSnh1
Tv/mJ11YMf/hKJ+SS5aQaoR0Ma2hdGNZQP9sHHs+I99zQLJTLnk+KJdcVIlcVv7+/v39/fz8/Pv7
+/r6+vj4+Pf39/X19fPz8/Hx8e/v7+3t7eXl5ePj49ra2sjIyKSkpIGBgf///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKAALAAA
AAAQABAAAAjaAEEJFBjpkcABAgYqFLipAoZKHI6s6LRwIAQyZSSgASNGzaSKoBS8cZPGTpsuZggs
DNHhwp01eeqwgWOBhYZLAjlh2TKGAR4ucujoOaPlSQSBB5JM8RKHQqFBJ+Z8odJkg0ARUZwUaSFo
Tx9DVcJcQWBQoAcAjRgR+hMIkBErUKSMGIgi0SFFKfzw+ZAFyQ8hBgaaQLRIxZIePJjAUBJkh6eB
lUqQIOIDiA4bQyYseEBJoaMXMmLccIEjxydMkSpmoDGjBogEATKBBKXJQYMCkCxJmi3w0e7ZAQEA
O18QQGh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2ltYWdlcy9hczJncmFwaGl0ZS9taXNj
L2ltX2ljcS5naWbUBQYHCCUmJxpPEQRyYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJz
aW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNl
UmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBES
ExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRT
JDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWABoAAI0GkHNw4fZzQEQI5EAAjQaQc3DLI
VGmAHCNBpB0kAbEd/4AC0yorGSEtLldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxBAaHR0cDov
L3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1fYWltLmdp
ZtIxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2VU5TVVJMViVOU1VSTFhOU09iamVjdFlpbWFn
ZS9naWbTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5vYmplY3RzV05TLmtleXOpQEFCQ0RFRkdIgBGA
EoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmACoALgAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0
LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVjdGlvblREYXRlXkNvbnRlbnQtTGVuZ3RoWktl
ZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBhY2hlLzEuMy4yOV8QHVNhdCwgMDYgTWF5IDIw
MDYgMTY6MzE6NDIgR01UVWJ5dGVzXxAdU3VuLCAwNyBNYXkgMjAwNiAxODowNDowOSBHTVRTNTY5
XxARdGltZW91dD01LCBtYXg9OTlfEBUiZTNmNDg4LTIzOS00NDVjY2Y2ZSLSMTJlZqNmZzZfEBNO
U011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIxMmlqomo2XxAZTlNIVFRQVVJMUmVzcG9u
c2VJbnRlcm5hbNIxMmxto21uNl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UACAAR
ABsAJAApADIARABJAEwAYgBkAIQAigCtALAAtAC3ALsAvgDBAMUAyADLAM8A0gDVANwA3wDjAOYA
6ADqAOwA7gDwAPkA/AD+AQcBCQESARQBGwEjAS8BMQEzATUBeAF9AYYBkQGVAZsBogGrAbUBvAG+
AcABwgHJAdQB3AHmAegB6gHsAe4B8AHyAfQB9gH4AgICBAIGAggCCgIMAg4CEAISAhQCFgIdAisC
OQJEAkkCWAJjAmgCdQKDAqMCqQLJAs0C4QL5Av4DAgMYAyUDKgMtA0kDTgNSA2YAAAAAAAACAQAA
AAAAAABvAAAAAAAAAAAAAAAAAAADdE8RAjlHSUY4OWEQABAA5gAAFRUbSUlNOzs9pqaqVVVXpqao
1NTVzs7PysrLx8fIsbGyg4OEVFVaISQwc3V9OTo+aWpudHV5goOHdHV4ra6x09TWnZ6fSEg+f39+
mJiX//U///NP/+ktcm1E/+Ed/+Ud/+Ul/Opzh4V3/+Ae/98h28xvQz4jbGdJjIZk/9UM/9cW/9sZ
/9oj89Ek/90m5MUkfWsX/95B/95Hl4Yy/9QR/9MUvqElW04UpqCI/8sD5bkOzaIP/88fyagn+M48
7NBk1LthsJ1Zx7NpZF9NPjswkm8GFxIDODEcPzklMTAt8LEAiGQBVT8DSjkJxKZPbmhXpKCVcVEA
PiwAZFc3npFvHBoXfHt6bGtr/v7+/f39+vr6+Pj49PT08/Pz8fHx8PDw7Ozs6+vr5+fn4+Pj4eHh
29vb2tra2NjY0NDQz8/PxsbGnJychISEdXV1b29vVlZWUlJS////AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfkEAQAAcQAsAAAAABAAEAAAB5aAcYKDggYVY4SJgwgZ
UBZkioReVj8yQhKRgwcdHzUtcJmCYUQvIDYMoXFnARcmDwVloRElISgiOAuZZyccJBobMUNmkRQz
IywwN0hXYJEOPSorQQ0JkVgDTzw6Ox5AEIiDXGoYVD45TQBFKU4TWYQKRy5KTARjAks0UwVdg1pV
UUbcbInzJYmUN2ISsWmThhCaNalSBQIAO18QQGh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVt
L2ltYWdlcy9hczJncmFwaGl0ZS9taXNjL2ltX2FpbS5naWbUBQYHCCkqKxpPEQRyYnBsaXN0MDDU
AQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2
ZXISAAGGoNEICV8QE1dlYlJlc291cmNlUmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5f
WmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBESExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEw
UiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWA
BoAAI0GkHNw0vu1GEQPnEAAjQaQc3DLJZ6mAHCNBpB0j/3DgyYAC0yorGSEtLldOUy5iYXNlW05T
LnJlbGF0aXZlgACAA4AEXxBAaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vaW1hZ2VzL2Fz
MmdyYXBoaXRlL21pc2MvaW1fbXNuLmdpZtIxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2VU5T
VVJMViVOU1VSTFhOU09iamVjdFlpbWFnZS9naWbTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5vYmpl
Y3RzV05TLmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmACoAL
gAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVjdGlv
blREYXRlXkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBhY2hl
LzEuMy4yOV8QHVNhdCwgMDYgTWF5IDIwMDYgMTY6MzE6NTAgR01UVWJ5dGVzXxAdU3VuLCAwNyBN
YXkgMjAwNiAxODowNDowNyBHTVRTOTk5XxARdGltZW91dD01LCBtYXg9OTlfEBUiZTNmNDhiLTNl
Ny00NDVjY2Y3NiLSMTJlZqNmZzZfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIx
Mmlqomo2XxAZTlNIVFRQVVJMUmVzcG9uc2VJbnRlcm5hbNIxMmxto21uNl8QEU5TSFRUUFVSTFJl
c3BvbnNlXU5TVVJMUmVzcG9uc2UACAARABsAJAApADIARABJAEwAYgBkAIQAigCtALAAtAC3ALsA
vgDBAMUAyADLAM8A0gDVANwA3wDjAOYA6ADqAOwA7gDwAPkA/AD+AQcBCQESARQBGwEjAS8BMQEz
ATUBeAF9AYYBkQGVAZsBogGrAbUBvAG+AcABwgHJAdQB3AHmAegB6gHsAe4B8AHyAfQB9gH4AgIC
BAIGAggCCgIMAg4CEAISAhQCFgIdAisCOQJEAkkCWAJjAmgCdQKDAqMCqQLJAs0C4QL5Av4DAgMY
AyUDKgMtA0kDTgNSA2YAAAAAAAACAQAAAAAAAABvAAAAAAAAAAAAAAAAAAADdE8RA+dHSUY4OWEQ
ABAA9wAAAHTOxsvPAIXmAIDVAHDBHGSUoLPAv8bLBYXWBYTVCZXvDZHmEpTnDW2pFp30FpTlHZvs
JKLzI5/uJaHwJqDvKKTzLqXxNbH/M6nzOa/4PrP8QLH5P6/2TLf8RZvTVL7/Yq3dfqzJlr3VmK68
qLnEvMTJzNHURrb5TL3/YMf/hLzdnrvLxczQO5TBWcj/b83/293encXYZND/E3qYWnB0I46OOZpU
TrBh3t/eoa+aXccnZMgwfvI+grhll62LY8Mjcs4ujqp4x8vD/+MzbmxfzLE72LtGu7GJ6r8sppp0
t62M/8kxvKZow55My5Ei2Jkn1pAs/6kwwLWm648q5uXk338oyHkx/5tCyIxW+oQg/4ci/ogj64Ak
/4go/4so/4op+4kp/481xayX/Hwd+34d/IAj/4Ek/YQl/YQmx7mu+XIY/3Ya+XYb+ncc+nsf+3wg
/4UyyKeQ9mcR+W0S9mkS92wV+W4W0HU7918H/18I9F4L/2UM9WMO/2gP/3cr+4lIxa+j81YB/1sE
/1wH6oFMwIRlwoxwu5B6waeaxbewx7qz4N7d393c/Pz8+Pj49vb29fX19PT08/Pz7Ozs////AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfkEAQAAlAAsAAAAABAAEAAACMQAKQkc
SLCgwYOMFC06WBDQHz+EqJiIsSJAo4Jx4OAJNAiRCBkpXqgoMVBMmDly9AgyRMJFhw0aPoSAkebK
GDZ1+OQpBAkECg4YJlDwgEXLGTdq6Ow5RInFiQwWJDwYQCNLlzJt7PRJJNDAhQoQGCRoYMULmjdr
7kAaOCKCgwUICBDZ8sUMmSaPCB5ooUAAgAJVwHBxUmRSQSE3asywAWXKEyRG8hYMAuSHjiRRlgw5
clBSDx47cEhhosQRw0g+cjBcXTAgADtfEEBodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9p
bWFnZXMvYXMyZ3JhcGhpdGUvbWlzYy9pbV9tc24uZ2lm1AUGBwgtLi8fTxEFN2JwbGlzdDAw1AEC
AwQFBgcKWSRhcmNoaXZlclgkdmVyc2lvblQkdG9wWCRvYmplY3RzXxAPTlNLZXllZEFyY2hpdmVy
EgABhqDRCAlfEBNXZWJSZXNvdXJjZVJlc3BvbnNlgAGvECcLDCkvMDc4PF5fYGFiY2RlZmdoaWpr
bG1ub3BxcnN0dXZ3eDd5fYBVJG51bGzfEBANDg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJice
KFIkNlMkMTBSJDJTJDEzUiQ3UiQzUyQxMVIkOFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIk
MRAHEAGABYAGgAAjQaQc8STcDOkRAYcQACNBpBzxI/w794AmI0GkHPPtIC8OgALTKisZIS0uV05T
LmJhc2VbTlMucmVsYXRpdmWAAIADgARfEDFodHRwOi8vbXlzdGF0dXMuc2t5cGUuY29tL3NtYWxs
aWNvbi9vbGFmbWFyem9jY2hp0jEyMzRYJGNsYXNzZXNaJGNsYXNzbmFtZaM0NTZVTlNVUkxWJU5T
VVJMWE5TT2JqZWN0WWltYWdlL3BuZ9MYGRw5OjuAB4AlEMjTPT4ZP05dWk5TLm9iamVjdHNXTlMu
a2V5c65AQUJDREVGR0hJSktMTYAWgBeAGIAZgBqAG4AcgB2AHoAfgCCAIYAigCOuT1BRUlNUVVZX
WFlaW1yACIAJgAqAC4AMgA2ADoAPgBCAEYASgBOAFIAVgCRWU2VydmVyVFZhcnlTVGNuXUxhc3Qt
TW9kaWZpZWRdQWNjZXB0LVJhbmdlc1REYXRlXkNvbnRlbnQtTGVuZ3RoV0V4cGlyZXNfEBBDb250
ZW50LUxvY2F0aW9uXUNhY2hlLUNvbnRyb2xaQ29ubmVjdGlvbl8QEENvbnRlbnQtTGFuZ3VhZ2VU
RXRhZ1xDb250ZW50LVR5cGVfEBRBcGFjaGUvMi4wLjU1IChVbml4KVluZWdvdGlhdGVWY2hvaWNl
XxAdRnJpLCAxMCBGZWIgMjAwNiAxNTowNDozNyBHTVRVYnl0ZXNfEB1TdW4sIDA3IE1heSAyMDA2
IDE4OjQ4OjQ3IEdNVFMzOTFfEB1TdW4sIDA3IE1heSAyMDA2IDE4OjU0OjQ3IEdNVFUwLnBuZ1tt
YXgtYWdlPTM2MFVjbG9zZVJlbl8QHCI1NDVhNjktMTg3LWMyZTJiNDA7YzJlMmI0MCLSMTJ6e6N7
fDZfEBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIxMn5/on82XxAZTlNIVFRQVVJM
UmVzcG9uc2VJbnRlcm5hbNIxMoGCo4KDNl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9u
c2UACAARABsAJAApADIARABJAEwAYgBkAI4AlAC3ALoAvgDBAMUAyADLAM8A0gDVANkA3ADfAOYA
6QDtAPAA8gD0APYA+AD6AQMBBgEIAREBEwEcAR4BJQEtATkBOwE9AT8BcwF4AYEBjAGQAZYBnQGm
AbABtwG5AbsBvQHEAc8B1wHmAegB6gHsAe4B8AHyAfQB9gH4AfoB/AH+AgACAgIRAhMCFQIXAhkC
GwIdAh8CIQIjAiUCJwIpAisCLQIvAjYCOwI/Ak0CWwJgAm8CdwKKApgCowK2ArsCyALfAukC8AMQ
AxYDNgM6A1oDYANsA3IDdQOUA5kDnQOzA8ADxQPIA+QD6QPtBAEAAAAAAAACAQAAAAAAAACEAAAA
AAAAAAAAAAAAAAAED08RAYeJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAEAwAAAO3d4lIAAAADc0JJ
VAgICNvhT+AAAAAwUExURf////////b39/Dx8eXn597m5tze3tnc3NbY2MzMzMTHx7/Dw7q+vra7
u7O3t6+0tNzTGjsAAAAQdFJOUwD////////////////////AUItDAAAACXBIWXMAAArwAAAK8AFC
rDSYAAAAFXRFWHRDcmVhdGlvbiBUaW1lADgvMTgvMDWiPpn9AAAAJXRFWHRTb2Z0d2FyZQBNYWNy
b21lZGlhIEZpcmV3b3JrcyBNWCAyMDA0h3aszwAAAIBJREFUeJxjYPj/nwEM+JfWQpg/w9Jn7QWx
vqVVdM5c94GB4Ud6u6Lw7PcMDH8qGsUbde4DFc+YUrVJ7/8DBv6Vc14bzv//gYH/7P+PNv9BjP9g
ANT2///C/v8gM//fnVh79y5QP/+b3UBwHmj2+7d3Zs58D7Lu/f9XIDtAAKgWANqQRyw/mqPFAAAA
AElFTkSuQmCCXxAxaHR0cDovL215c3RhdHVzLnNreXBlLmNvbS9zbWFsbGljb24vb2xhZm1hcnpv
Y2NoadQxBgcIMjM0NV8QG1dlYlJlc291cmNlVGV4dEVuY29kaW5nTmFtZVVVVEYtOE8RDr48IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0
ZCI+PEhUTUwgZGlyPSJsdHIiIGxhbmc9Iml0Ij48SEVBRD48TUVUQSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj48TUVUQSBu
YW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9InZCdWxsZXRpbiAzLjUuNCI+CgoJCjxNRVRBIG5hbWU9
ImtleXdvcmRzIiBjb250ZW50PSJtYWMsaXBvZCxwYWxtLG1hY2ludG9zaCwgYXBwbGUsIGZvcnVt
LGl0YWxpYSxtYWNib29rLCBpTWFjIGNvbiBJbnRlbCwgc2h1ZmZsZSwgaXBvZCBuYW5vLCBpcG9k
IHZpZGVvLGl0YWxpYW5vLGZhcSxjZWxsdWxhcmkiPjxNRVRBIG5hbWU9ImRlc2NyaXB0aW9uIiBj
b250ZW50PSJNYWNpdHluZXQgRm9ydW0gc3UgTWFjLCBpUG9kLCBQYWxtYXJpLCBmb3RvLCBhdWRp
byBlIHZpZGVvIGRpZ2l0YWxlIj4KCQoKCjxMSU5LIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4
dC9jc3MiIGhyZWY9ImNsaWVudHNjcmlwdC92YnVsbGV0aW5fY3NzL3N0eWxlLTZlZWZlMTg1LTAw
MDEwLmNzcyIgaWQ9InZidWxsZXRpbl9jc3MiPgoKCgo8U0NSSVBUIHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CjwhLS0KdmFyIFNFU1NJT05VUkwgPSAiIjsKdmFyIElNR0RJUl9NSVNDID0gImltYWdl
cy9hczJncmFwaGl0ZS9taXNjIjsKdmFyIHZiX2Rpc2FibGVfYWpheCA9IHBhcnNlSW50KCIxIiwg
MTApOwovLyAtLT4KPC9TQ1JJUFQ+Cgo8U0NSSVBUIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSJjbGllbnRzY3JpcHQvdmJ1bGxldGluX2dsb2JhbC5qcyI+PC9TQ1JJUFQ+PFNDUklQVCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY2xpZW50c2NyaXB0L3ZidWxsZXRpbl9tZW51LmpzIj48
L1NDUklQVD48TElOSyByZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIg
dGl0bGU9IkZvcnVtIE1hY2l0eW5ldCBSU1MgRmVlZCIgaHJlZj0iZXh0ZXJuYWwucGhwP3R5cGU9
UlNTIj48VElUTEU+Rm9ydW0gTWFjaXR5bmV0IC0gTW9zdHJhIG1lc3NhZ2dpbyBzaW5nb2xvIC0g
TWFjIE9TIFggMTAuNC4zIEFnZ2lvcm5hbWVudG88L1RJVExFPjwvSEVBRD48Qk9EWSBzdHlsZT0i
bWFyZ2luOjBweCIgb25sb2FkPSJzZWxmLmZvY3VzKCkiPgoKPEZPUk0gYWN0aW9uPSJzaG93cG9z
dC5waHAiPgoKPFRBQkxFIGNsYXNzPSJ0Ym9yZGVyIiBjZWxscGFkZGluZz0iNiIgY2VsbHNwYWNp
bmc9IjEiIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIHN0eWxlPSJib3JkZXItYm90dG9tLXdpZHRo
OjBweCI+CjxUQk9EWT48VFI+PFREIGNsYXNzPSJ0Y2F0Ij4KCQk8RElWIGNsYXNzPSJzbWFsbGZv
bnQiIHN0eWxlPSJmbG9hdDpyaWdodCI+CgkJCTxTVFJPTkc+RGlzY3Vzc2lvbmU8L1NUUk9ORz46
IDxBIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSIgaHJlZj0ic2hvd3RocmVhZC5w
aHA/cD01MTE5NTEjcG9zdDUxMTk1MSI+TWFjIE9TIFggMTAuNC4zIEFnZ2lvcm5hbWVudG88L0E+
CgkJPC9ESVY+CgkJTW9zdHJhIG1lc3NhZ2dpbyBzaW5nb2xvCgk8L1REPjwvVFI+PC9UQk9EWT48
L1RBQkxFPgoKCgoKPFRBQkxFIGlkPSJwb3N0NTExOTUxIiBjbGFzcz0idGJvcmRlciIgY2VsbHBh
ZGRpbmc9IjYiIGNlbGxzcGFjaW5nPSIwIiBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBhbGlnbj0i
Y2VudGVyIj4KPFRCT0RZPjxUUj48VEQgY2xhc3M9InRoZWFkIiBzdHlsZT0iZm9udC13ZWlnaHQ6
bm9ybWFsIiBpZD0iY3VycmVudFBvc3QiPgkJCgkJCQoJCQk8QSBuYW1lPSJwb3N0NTExOTUxIj48
SU1HIGNsYXNzPSJpbmxpbmVpbWciIHNyYz0iaW1hZ2VzL2FzMmdyYXBoaXRlL3N0YXR1c2ljb24v
cG9zdF9vbGQuZ2lmIiBhbHQ9IlZlY2NoaW8iIGJvcmRlcj0iMCI+PC9BPgoJCQkwMS8xMS8yMDA1
LCAyMy4yMgoJCQkKCQkJCQkJCQoJCTwvVEQ+PFREIGNsYXNzPSJ0aGVhZCIgc3R5bGU9ImZvbnQt
d2VpZ2h0Om5vcm1hbCIgYWxpZ249InJpZ2h0Ij4KCQkJwqAKCQkJIzxBIGhyZWY9InNob3dwb3N0
LnBocD9wPTUxMTk1MSZwb3N0Y291bnQ9MTg5IiB0YXJnZXQ9Im5ldyIgcmVsPSJub2ZvbGxvdyIg
aWQ9InBvc3Rjb3VudDUxMTk1MSIgbmFtZT0iMTg5Ij48U1RST05HPjE4OTwvU1RST05HPjwvQT4K
CQkJCgkJPC9URD48L1RSPjxUUiB2YWxpZ249InRvcCI+PFREIGNsYXNzPSJhbHQyIiB3aWR0aD0i
MTc1Ij4KCQkJCgkJCTxESVYgaWQ9InBvc3RtZW51XzUxMTk1MSI+CgkJCQkKCQkJCTxBIGNsYXNz
PSJiaWd1c2VybmFtZSIgaHJlZj0ibWVtYmVyLnBocD91PTEyNzgyIj5PbGFmIE1hcnpvY2NoaTwv
QT4KCQkJCTxTQ1JJUFQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gdmJtZW51X3JlZ2lzdGVyKCJw
b3N0bWVudV81MTE5NTEiLCB0cnVlKTsgPC9TQ1JJUFQ+CgkJCQkKCQkJPC9ESVY+CgkJCQoJCQk8
RElWIGNsYXNzPSJzbWFsbGZvbnQiPlByb2ZldGE8L0RJVj4KCQkJCgkJCgkJCQoJCQkJPERJViBj
bGFzcz0ic21hbGxmb250Ij4KCQkJCQnCoDxCUj48QSBocmVmPSJtZW1iZXIucGhwP3U9MTI3ODIi
PjxJTUcgc3JjPSJpbWFnZS5waHA/dT0xMjc4MiZkYXRlbGluZT0xMTA2NzM0MDI1IiBhbHQ9Ik9s
YWYgTWFyem9jY2hpIGF2YXRhciIgYm9yZGVyPSIwIj48L0E+CgkJCQk8L0RJVj4KCQkJCgkJCQoJ
CQk8RElWIGNsYXNzPSJzbWFsbGZvbnQiPgoJCQkJwqA8QlI+CgkJCQk8RElWPkRhdGEgcmVnaXN0
cmF6aW9uZTogMjUvMDUvMjAwMDwvRElWPgoJCQkJCgkJCQkKCQkJCTxESVY+CgkJCQkJTWVzc2Fn
Z2k6IDEuNDE4CgkJCQk8L0RJVj4KCQkJCQoJCQkJPERJVj48QSBocmVmPSIjIiBvbmNsaWNrPSJp
bXdpbmRvdygnaWNxJywgJzEyNzgyJywgNTAwLCA0NTApOyByZXR1cm4gZmFsc2U7Ij48SU1HIHNy
Yz0iaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1faWNxLmdpZiIgYWx0PSJJbnZpYSB1biBtZXNz
YWdnaW8gdmlhIElDUSBhIE9sYWYgTWFyem9jY2hpIiBib3JkZXI9IjAiPjwvQT4gPEEgaHJlZj0i
IyIgb25jbGljaz0iaW13aW5kb3coJ2FpbScsICcxMjc4MicsIDQwMCwgMjAwKTsgcmV0dXJuIGZh
bHNlOyI+PElNRyBzcmM9ImltYWdlcy9hczJncmFwaGl0ZS9taXNjL2ltX2FpbS5naWYiIGFsdD0i
SW52aWEgdW4gbWVzc2FnZ2lvIHZpYSBBSU0gYSBPbGFmIE1hcnpvY2NoaSIgYm9yZGVyPSIwIj48
L0E+IDxBIGhyZWY9IiMiIG9uY2xpY2s9Imltd2luZG93KCdtc24nLCAnMTI3ODInLCA0MDAsIDIw
MCk7IHJldHVybiBmYWxzZTsiPjxJTUcgc3JjPSJpbWFnZXMvYXMyZ3JhcGhpdGUvbWlzYy9pbV9t
c24uZ2lmIiBhbHQ9IkludmlhIHVuIG1lc3NhZ2dpbyB2aWEgTVNOIGEgT2xhZiBNYXJ6b2NjaGki
IGJvcmRlcj0iMCI+PC9BPiAgPEEgaHJlZj0iIyIgb25jbGljaz0iaW13aW5kb3coJ3NreXBlJywg
JzEyNzgyJywgNDAwLCAyODUpOyByZXR1cm4gZmFsc2U7Ij48SU1HIHNyYz0iaHR0cDovL215c3Rh
dHVzLnNreXBlLmNvbS9zbWFsbGljb24vb2xhZm1hcnpvY2NoaSIgYWx0PSJTZW5kIGEgbWVzc2Fn
ZSB2aWEgU2t5cGXihKIgdG8gT2xhZiBNYXJ6b2NjaGkiIGJvcmRlcj0iMCI+PC9BPjwvRElWPgoJ
CQk8L0RJVj4JCQkJCQoJCQoJPC9URD48VEQgY2xhc3M9ImFsdDEiIGlkPSJ0ZF9wb3N0XzUxMTk1
MSI+CgkKCQoJCQoJCQkKCgoKPC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT48L0ZPUk0+PC9CT0RZ
PjwvSFRNTD5fEEFodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9zaG93cG9zdC5waHA/cD01
MTE5NTEmcG9zdGNvdW50PTE4OVl0ZXh0L2h0bWwAAAgAAA0AAB8AADEAADsAAEQAAFoAAGwAAHsA
AJEABRsAVaMAVfcAVgAAVgkAWpIA3FYA3JcA3LIA3LsA4UEBHNMBHRIBHRsBIZoBI9YBJCEBJCsB
JDQBKZgBV+ABWCYBWDABWDkBXLABYLEBYPQBYP0BZXMBZ7ABZ/MBZ/wBbHIBcF0BcKABcKkBdeQB
d28Bd6MBd6wBd8oBd9ABhpIBhtYAAAAAAAADAQAAAAAAAAA2AAAAAAAAAAAAAAAAAAGG4A==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8149</attachid>
            <date>2006-05-07 13:14:00 -0700</date>
            <delta_ts>2006-05-07 13:14:00 -0700</delta_ts>
            <desc>Source of the same page.</desc>
            <filename>correct.html</filename>
            <type>text/html</type>
            <size>6811</size>
            <attacher>camillo.lists</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25h
bC5kdGQiPgo8aHRtbCBkaXI9Imx0ciIgbGFuZz0iaXQiPgo8aGVhZD4KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIg
Lz4KPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJ2QnVsbGV0aW4gMy41LjQiIC8+CgoJ
CjxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJtYWMsaXBvZCxwYWxtLG1hY2ludG9zaCwg
YXBwbGUsIGZvcnVtLGl0YWxpYSxtYWNib29rLCBpTWFjIGNvbiBJbnRlbCwgc2h1ZmZsZSwgaXBv
ZCBuYW5vLCBpcG9kIHZpZGVvLGl0YWxpYW5vLGZhcSxjZWxsdWxhcmkiIC8+CjxtZXRhIG5hbWU9
ImRlc2NyaXB0aW9uIiBjb250ZW50PSJNYWNpdHluZXQgRm9ydW0gc3UgTWFjLCBpUG9kLCBQYWxt
YXJpLCBmb3RvLCBhdWRpbyBlIHZpZGVvIGRpZ2l0YWxlIiAvPgoJCgoKPCEtLSBDU1MgU3R5bGVz
aGVldCAtLT4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iY2xp
ZW50c2NyaXB0L3ZidWxsZXRpbl9jc3Mvc3R5bGUtNmVlZmUxODUtMDAwMTAuY3NzIiBpZD0idmJ1
bGxldGluX2NzcyIgLz4KCjwhLS0gLyBDU1MgU3R5bGVzaGVldCAtLT4KCjxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4KPCEtLQp2YXIgU0VTU0lPTlVSTCA9ICIiOwp2YXIgSU1HRElSX01J
U0MgPSAiaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MiOwp2YXIgdmJfZGlzYWJsZV9hamF4ID0gcGFy
c2VJbnQoIjEiLCAxMCk7Ci8vIC0tPgo8L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9ImNsaWVudHNjcmlwdC92YnVsbGV0aW5fZ2xvYmFsLmpzIj48L3NjcmlwdD4K
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY2xpZW50c2NyaXB0L3ZidWxsZXRp
bl9tZW51LmpzIj48L3NjcmlwdD4KPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0
aW9uL3Jzcyt4bWwiIHRpdGxlPSJGb3J1bSBNYWNpdHluZXQgUlNTIEZlZWQiIGhyZWY9ImV4dGVy
bmFsLnBocD90eXBlPVJTUyIgLz4KPHRpdGxlPkZvcnVtIE1hY2l0eW5ldCAtIE1vc3RyYSBtZXNz
YWdnaW8gc2luZ29sbyAtIE1hYyBPUyBYIDEwLjQuMyBBZ2dpb3JuYW1lbnRvPC90aXRsZT4KPC9o
ZWFkPgo8Ym9keSBzdHlsZT0ibWFyZ2luOjBweCIgb25sb2FkPSJzZWxmLmZvY3VzKCkiPgoKPGZv
cm0gYWN0aW9uPSJzaG93cG9zdC5waHAiPgoKPHRhYmxlIGNsYXNzPSJ0Ym9yZGVyIiBjZWxscGFk
ZGluZz0iNiIgY2VsbHNwYWNpbmc9IjEiIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIHN0eWxlPSJi
b3JkZXItYm90dG9tLXdpZHRoOjBweCI+Cjx0cj4KCTx0ZCBjbGFzcz0idGNhdCI+CgkJPGRpdiBj
bGFzcz0ic21hbGxmb250IiBzdHlsZT0iZmxvYXQ6cmlnaHQiPgoJCQk8c3Ryb25nPkRpc2N1c3Np
b25lPC9zdHJvbmc+OiA8YSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUiIGhyZWY9
InNob3d0aHJlYWQucGhwP3A9NTExOTUxI3Bvc3Q1MTE5NTEiPk1hYyBPUyBYIDEwLjQuMyBBZ2dp
b3JuYW1lbnRvPC9hPgoJCTwvZGl2PgoJCU1vc3RyYSBtZXNzYWdnaW8gc2luZ29sbwoJPC90ZD4K
PC90cj4KPC90YWJsZT4KCjwhLS0gcG9zdCAjNTExOTUxIC0tPgoKCjx0YWJsZSBpZD0icG9zdDUx
MTk1MSIgY2xhc3M9InRib3JkZXIiIGNlbGxwYWRkaW5nPSI2IiBjZWxsc3BhY2luZz0iMCIgYm9y
ZGVyPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+Cjx0cj4KCQoJCTx0ZCBjbGFzcz0i
dGhlYWQiIHN0eWxlPSJmb250LXdlaWdodDpub3JtYWwiICBpZD0iY3VycmVudFBvc3QiPgkJCgkJ
CTwhLS0gc3RhdHVzIGljb24gYW5kIGRhdGUgLS0+CgkJCTxhIG5hbWU9InBvc3Q1MTE5NTEiPjxp
bWcgY2xhc3M9ImlubGluZWltZyIgc3JjPSJpbWFnZXMvYXMyZ3JhcGhpdGUvc3RhdHVzaWNvbi9w
b3N0X29sZC5naWYiIGFsdD0iVmVjY2hpbyIgYm9yZGVyPSIwIiAvPjwvYT4KCQkJMDEvMTEvMjAw
NSwgMjMuMjIKCQkJCgkJCTwhLS0gLyBzdGF0dXMgaWNvbiBhbmQgZGF0ZSAtLT4JCQkJCgkJPC90
ZD4KCQk8dGQgY2xhc3M9InRoZWFkIiBzdHlsZT0iZm9udC13ZWlnaHQ6bm9ybWFsIiBhbGlnbj0i
cmlnaHQiPgoJCQkmbmJzcDsKCQkJIzxhIGhyZWY9InNob3dwb3N0LnBocD9wPTUxMTk1MSZhbXA7
cG9zdGNvdW50PTE4OSIgdGFyZ2V0PSJuZXciIHJlbD0ibm9mb2xsb3ciIGlkPSJwb3N0Y291bnQ1
MTE5NTEiIG5hbWU9IjE4OSI+PHN0cm9uZz4xODk8L3N0cm9uZz48L2E+CgkJCQoJCTwvdGQ+CgkK
PC90cj4KPHRyIHZhbGlnbj0idG9wIj4KCTx0ZCBjbGFzcz0iYWx0MiIgd2lkdGg9IjE3NSI+CgkJ
CQoJCQk8ZGl2IGlkPSJwb3N0bWVudV81MTE5NTEiPgoJCQkJCgkJCQk8YSBjbGFzcz0iYmlndXNl
cm5hbWUiIGhyZWY9Im1lbWJlci5waHA/dT0xMjc4MiI+T2xhZiBNYXJ6b2NjaGk8L2E+CgkJCQk8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IHZibWVudV9yZWdpc3RlcigicG9zdG1lbnVf
NTExOTUxIiwgdHJ1ZSk7IDwvc2NyaXB0PgoJCQkJCgkJCTwvZGl2PgoJCQkKCQkJPGRpdiBjbGFz
cz0ic21hbGxmb250Ij5Qcm9mZXRhPC9kaXY+CgkJCQoJCQoJCQkKCQkJCTxkaXYgY2xhc3M9InNt
YWxsZm9udCI+CgkJCQkJJm5ic3A7PGJyIC8+PGEgaHJlZj0ibWVtYmVyLnBocD91PTEyNzgyIj48
aW1nIHNyYz0iaW1hZ2UucGhwP3U9MTI3ODImYW1wO2RhdGVsaW5lPTExMDY3MzQwMjUiIGFsdD0i
T2xhZiBNYXJ6b2NjaGkgYXZhdGFyIiBib3JkZXI9IjAiIC8+PC9hPgoJCQkJPC9kaXY+CgkJCQoJ
CQkKCQkJPGRpdiBjbGFzcz0ic21hbGxmb250Ij4KCQkJCSZuYnNwOzxiciAvPgoJCQkJPGRpdj5E
YXRhIHJlZ2lzdHJhemlvbmU6IDI1LzA1LzIwMDA8L2Rpdj4KCQkJCQoJCQkJCgkJCQk8ZGl2PgoJ
CQkJCU1lc3NhZ2dpOiAxLjQxOAoJCQkJPC9kaXY+CgkJCQkKCQkJCTxkaXY+PGEgaHJlZj0iIyIg
b25jbGljaz0iaW13aW5kb3coJ2ljcScsICcxMjc4MicsIDUwMCwgNDUwKTsgcmV0dXJuIGZhbHNl
OyI+PGltZyBzcmM9ImltYWdlcy9hczJncmFwaGl0ZS9taXNjL2ltX2ljcS5naWYiIGFsdD0iSW52
aWEgdW4gbWVzc2FnZ2lvIHZpYSBJQ1EgYSBPbGFmIE1hcnpvY2NoaSIgYm9yZGVyPSIwIiAvPjwv
YT4gPGEgaHJlZj0iIyIgb25jbGljaz0iaW13aW5kb3coJ2FpbScsICcxMjc4MicsIDQwMCwgMjAw
KTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9ImltYWdlcy9hczJncmFwaGl0ZS9taXNjL2ltX2Fp
bS5naWYiIGFsdD0iSW52aWEgdW4gbWVzc2FnZ2lvIHZpYSBBSU0gYSBPbGFmIE1hcnpvY2NoaSIg
Ym9yZGVyPSIwIiAvPjwvYT4gPGEgaHJlZj0iIyIgb25jbGljaz0iaW13aW5kb3coJ21zbicsICcx
Mjc4MicsIDQwMCwgMjAwKTsgcmV0dXJuIGZhbHNlOyI+PGltZyBzcmM9ImltYWdlcy9hczJncmFw
aGl0ZS9taXNjL2ltX21zbi5naWYiIGFsdD0iSW52aWEgdW4gbWVzc2FnZ2lvIHZpYSBNU04gYSBP
bGFmIE1hcnpvY2NoaSIgYm9yZGVyPSIwIiAvPjwvYT4gIDxhIGhyZWY9IiMiIG9uY2xpY2s9Imlt
d2luZG93KCdza3lwZScsICcxMjc4MicsIDQwMCwgMjg1KTsgcmV0dXJuIGZhbHNlOyI+PGltZyBz
cmM9Imh0dHA6Ly9teXN0YXR1cy5za3lwZS5jb20vc21hbGxpY29uL29sYWZtYXJ6b2NjaGkiIGFs
dD0iU2VuZCBhIG1lc3NhZ2UgdmlhIFNreXBlJnRyYWRlOyB0byBPbGFmIE1hcnpvY2NoaSIgYm9y
ZGVyPSIwIiAvPjwvYT48L2Rpdj4KCQkJPC9kaXY+CQkJCQkKCQkKCTwvdGQ+CgkKCTx0ZCBjbGFz
cz0iYWx0MSIgaWQ9InRkX3Bvc3RfNTExOTUxIj4KCQoJCgkJCgkJCTwhLS0gaWNvbiBhbmQgdGl0
bGUgLS0+CgkJCTxkaXYgY2xhc3M9InNtYWxsZm9udCI+CgkJCQk8aW1nIGNsYXNzPSJpbmxpbmVp
bWciIHNyYz0iaW1hZ2VzL2ljb25zL2ljb24xLmdpZiIgYWx0PSJQcmVkZWZpbml0byIgYm9yZGVy
PSIwIiAvPgoJCQkJCgkJCTwvZGl2PgoJCQk8aHIgc2l6ZT0iMSIgc3R5bGU9ImNvbG9yOiNEMUQx
RTEiIC8+CgkJCTwhLS0gLyBpY29uIGFuZCB0aXRsZSAtLT4KCQkKCQkKCQk8IS0tIG1lc3NhZ2Ug
LS0+CgkJPGRpdiBpZD0icG9zdF9tZXNzYWdlXzUxMTk1MSI+U2kgcHXyIGFnZ2lvcm5hcmUgYSAx
MC40LjMgc2VuemEgcmlhdnZpYXJlLi4uIG8gbWVnbGlvLCAmcXVvdDtxdWFzaSZxdW90OyBhZ2dp
b3JuYXJlOiBkYWwgY29tYm8gaG8gdGlyYXRvIGZ1b3JpIGEgbWFubyBpIHBlenppIGNoZSB2b2xl
dm8gYWdnaW9ybmFyZSBkYSBzdWJpdG8sIHNlbnphIHJpYXZ2aWFyZSAocHJhdGljYW1lbnRlIHR1
dHRvIHRyYW5uZSBrZXJuZWwgZSBrZXh0KS48YnIgLz4KPGJyIC8+CkEgcGFydGUgaUNoYXQgY2hl
IG5vbiBwYXJ0ZSBwafksIGlsIHJlc3RvIHNlbWJyYSBhbmRhcmUgYmVuZSBlIE1haWwgY2hlIG9y
YSByaWd1YXJkbyBtZWdsaW8gKHNwZXJvIGJlbmUpLi4uPC9kaXY+CgkJPCEtLSAvIG1lc3NhZ2Ug
LS0+CgkKCQkKCQkKCQkKCQkKCQkKCQoJPC90ZD4KPC90cj4KPHRyPgoJPHRkIGNsYXNzPSJhbHQy
Ij4KCQkKPGltZyBjbGFzcz0iaW5saW5laW1nIiBzcmM9ImltYWdlcy9hczJncmFwaGl0ZS9zdGF0
dXNpY29uL3VzZXJfb25saW5lLmdpZiIgYWx0PSJPbGFmIE1hcnpvY2NoaSBpcyBvbmxpbmUgbm93
IiBib3JkZXI9IjAiIC8+CgoJCQoJCTxhIGhyZWY9InJlcG9ydC5waHA/cD01MTE5NTEiIHJlbD0i
bm9mb2xsb3ciPjxpbWcgY2xhc3M9ImlubGluZWltZyIgc3JjPSJpbWFnZXMvYXMyZ3JhcGhpdGUv
YnV0dG9ucy9yZXBvcnQuZ2lmIiBhbHQ9IlNlZ25hbGEgbWVzc2FnZ2lvIHNjb3JyZXR0byBvZCBv
ZmZlbnNpdm8iIGJvcmRlcj0iMCIgLz48L2E+CgkJCgkJJm5ic3A7Cgk8L3RkPgoJCgk8dGQgY2xh
c3M9ImFsdDEiIGFsaWduPSJyaWdodCI+CgkKCQk8IS0tIGNvbnRyb2xzIC0tPgoJCQoJCQoJCQoJ
CQk8YSBocmVmPSJuZXdyZXBseS5waHA/ZG89bmV3cmVwbHkmYW1wO3A9NTExOTUxIiByZWw9Im5v
Zm9sbG93Ij48aW1nIHNyYz0iaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvcXVvdGUuZ2lmIiBh
bHQ9IlJlcGxpY2EgY29uIGNpdGF6aW9uZSIgYm9yZGVyPSIwIiAvPjwvYT4KCQkKCQkKCQkKCQk8
IS0tIC8gY29udHJvbHMgLS0+Cgk8L3RkPgo8L3RyPgo8L3RhYmxlPgoKPCEtLSBwb3N0IDUxMTk1
MSBwb3B1cCBtZW51IC0tPgo8ZGl2IGNsYXNzPSJ2Ym1lbnVfcG9wdXAiIGlkPSJwb3N0bWVudV81
MTE5NTFfbWVudSIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cgk8dGFibGUgY2VsbHBhZGRpbmc9IjQi
IGNlbGxzcGFjaW5nPSIxIiBib3JkZXI9IjAiPgoJPHRyPgoJCTx0ZCBjbGFzcz0idGhlYWQiPk9s
YWYgTWFyem9jY2hpPC90ZD4KCTwvdHI+CgkKCQk8dHI+PHRkIGNsYXNzPSJ2Ym1lbnVfb3B0aW9u
Ij48YSBocmVmPSJtZW1iZXIucGhwP3U9MTI3ODIiPk1vc3RyYSBwcm9maWxvIHB1YmJsaWNvPC9h
PjwvdGQ+PC90cj4KCQoJCgkJPHRyPjx0ZCBjbGFzcz0idmJtZW51X29wdGlvbiI+PGEgaHJlZj0i
cHJpdmF0ZS5waHA/ZG89bmV3cG0mYW1wO3U9MTI3ODIiIHJlbD0ibm9mb2xsb3ciPkludmlhIHVu
IG1lc3NhZ2dpbyBwcml2YXRvIGEgT2xhZiBNYXJ6b2NjaGk8L2E+PC90ZD48L3RyPgoJCgkKCQk8
dHI+PHRkIGNsYXNzPSJ2Ym1lbnVfb3B0aW9uIj48YSBocmVmPSJzZW5kbWVzc2FnZS5waHA/ZG89
bWFpbG1lbWJlciZhbXA7dT0xMjc4MiIgcmVsPSJub2ZvbGxvdyI+TWFuZGEgRS1NYWlsIGEgT2xh
ZiBNYXJ6b2NjaGk8L2E+PC90ZD48L3RyPgoJCgkKCQk8dHI+PHRkIGNsYXNzPSJ2Ym1lbnVfb3B0
aW9uIj48YSBocmVmPSJodHRwOi8vd3d3Lm1hcnpvY2NoaS5uZXQvT2xhZnNlbiI+VmlzaXRhIGxh
IHBhZ2luYSBwcmluY2lwYWxlIGRpIE9sYWYgTWFyem9jY2hpITwvYT48L3RkPjwvdHI+CgkKCQoJ
CTx0cj48dGQgY2xhc3M9InZibWVudV9vcHRpb24iPjxhIGhyZWY9InNlYXJjaC5waHA/ZG89Zmlu
ZHVzZXImYW1wO3U9MTI3ODIiIHJlbD0ibm9mb2xsb3ciPkNlcmNhIGFsdHJpIG1lc3NhZ2dpIGRp
IE9sYWYgTWFyem9jY2hpPC9hPjwvdGQ+PC90cj4KCQoJCgk8dHI+PHRkIGNsYXNzPSJ2Ym1lbnVf
b3B0aW9uIj48YSBocmVmPSJwcm9maWxlLnBocD9kbz1hZGRsaXN0JmFtcDt1c2VybGlzdD1idWRk
eSZhbXA7dT0xMjc4MiI+QWdnaXVuZ2kgT2xhZiBNYXJ6b2NjaGkgYWxsJ2VsZW5jbyBhbWljaTwv
YT48L3RkPjwvdHI+CgkKCTwvdGFibGU+CjwvZGl2Pgo8IS0tIC8gcG9zdCA1MTE5NTEgcG9wdXAg
bWVudSAtLT4KCgo8IS0tIC8gcG9zdCAjNTExOTUxIC0tPgoKPHRhYmxlIGNsYXNzPSJ0Ym9yZGVy
IiBjZWxscGFkZGluZz0iNiIgY2VsbHNwYWNpbmc9IjEiIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUi
IHN0eWxlPSJib3JkZXItdG9wLXdpZHRoOjBweCI+Cjx0cj4KCTx0ZCBjbGFzcz0idGZvb3QiIGFs
aWduPSJjZW50ZXIiPjxpbnB1dCB0eXBlPSJidXR0b24iIGNsYXNzPSJidXR0b24iIHZhbHVlPSJD
aGl1ZGkiIG9uY2xpY2s9InNlbGYuY2xvc2UoKSIgLz48L3RkPgo8L3RyPgo8L3RhYmxlPgoKPC9m
b3JtPgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8IS0tCgkvLyBNYWluIHZCdWxs
ZXRpbiBKYXZhc2NyaXB0IEluaXRpYWxpemF0aW9uCgl2QnVsbGV0aW5faW5pdCgpOwoKCS8vIElu
aXRpYWxpemUgJ0FjdGl2ZScgVGFibGUgQ2VsbHMKCS8vYWN0aXZlY2VsbHNfaW5pdCgpOwovLy0t
Pgo8L3NjcmlwdD4KCjwvYm9keT4KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8150</attachid>
            <date>2006-05-07 13:15:36 -0700</date>
            <delta_ts>2006-05-07 13:15:36 -0700</delta_ts>
            <desc>Webarchive of the correctly rendered page, saved after reloading it.</desc>
            <filename>correct.webarchive</filename>
            <type>application/x-webarchive</type>
            <size>111978</size>
            <attacher>camillo.lists</attacher>
            
              <data encoding="base64">YnBsaXN0MDDSAQIDQF8QD1dlYlN1YnJlc291cmNlc18QD1dlYk1haW5SZXNvdXJjZa0EDRIWGyAk
KCwwNDg81AUGBwgJCgsMXxATV2ViUmVzb3VyY2VSZXNwb25zZV8QD1dlYlJlc291cmNlRGF0YV5X
ZWJSZXNvdXJjZVVSTF8QE1dlYlJlc291cmNlTUlNRVR5cGVPEQSGYnBsaXN0MDDUAQIDBAUGBwpZ
JGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEI
CV8QE1dlYlJlc291cmNlUmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhr
VSRudWxs3xAQDQ4PEBESExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEwUiQyUyQxM1Ik
N1IkM1MkMTFSJDhSJDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWABoAAI0GkHQee
cBJaEVCEEAAjQaQdB5ywMx6AHCNBpB1HR3NT94AC0yorGSEtLldOUy5iYXNlW05TLnJlbGF0aXZl
gACAA4AEXxBRaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vY2xpZW50c2NyaXB0L3ZidWxs
ZXRpbl9jc3Mvc3R5bGUtNmVlZmUxODUtMDAwMTAuY3Nz0jEyMzRYJGNsYXNzZXNaJGNsYXNzbmFt
ZaM0NTZVTlNVUkxWJU5TVVJMWE5TT2JqZWN0WHRleHQvY3Nz0xgZHDk6O4AHgBsQyNM9Phk/SVNa
TlMub2JqZWN0c1dOUy5rZXlzqUBBQkNERUZHSIARgBKAE4AUgBWAFoAXgBiAGalKS0xNTk9QUVKA
CIAJgAqAC4AMgA2ADoAPgBCAGlZTZXJ2ZXJdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzWkNv
bm5lY3Rpb25URGF0ZV5Db250ZW50LUxlbmd0aFpLZWVwLUFsaXZlVEV0YWdcQ29udGVudC1UeXBl
XUFwYWNoZS8xLjMuMjlfEB1TYXQsIDA2IE1heSAyMDA2IDIwOjU3OjQ3IEdNVFVieXRlc18QHVN1
biwgMDcgTWF5IDIwMDYgMTk6MzY6NDMgR01UVTIwNjEyXxASdGltZW91dD01LCBtYXg9MTAwXxAW
ImUyNDY4NC01MDg0LTQ0NWQwZGNiItIxMmVmo2ZnNl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNE
aWN0aW9uYXJ50jEyaWqiajZfEBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEybG2jbW42XxAR
TlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQAhACK
AK0AsAC0ALcAuwC+AMEAxQDIAMsAzwDSANUA3ADfAOMA5gDoAOoA7ADuAPAA+QD8AP4BBwEJARIB
FAEbASMBLwExATMBNQGJAY4BlwGiAaYBrAGzAbwBxQHMAc4B0AHSAdkB5AHsAfYB+AH6AfwB/gIA
AgICBAIGAggCEgIUAhYCGAIaAhwCHgIgAiICJAImAi0COwJJAlQCWQJoAnMCeAKFApMCswK5AtkC
3wL0Aw0DEgMWAywDOQM+A0EDXQNiA2YDegAAAAAAAAIBAAAAAAAAAG8AAAAAAAAAAAAAAAAAAAOI
TxFQhC8qIHZCdWxsZXRpbiAzIENTUyBGb3IgU3R5bGUgJ0FRVUEgRycgKHN0eWxlaWQ6IDEwKSAq
Lw0KYm9keQ0Kew0KCWJhY2tncm91bmQ6ICM2Njc1ODU7DQoJY29sb3I6ICMwMDAwMDA7DQoJZm9u
dDogMTEuN3B4ICdMdWNpZGEgR3JhbmRlJywgVmVyZGFuYSwgc2Fucy1zZXJpZjsNCgltYXJnaW46
IDEwcHggMCAxMHB4IDA7DQoJcGFkZGluZzogMDsNCgkNCn0NCmE6bGluaw0Kew0KCWNvbG9yOiAj
NGQ1OTZmOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCmE6dmlzaXRlZA0Kew0KCWNvbG9y
OiAjNGQ1OTZmOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCmE6aG92ZXIsIGE6YWN0aXZl
DQp7DQoJY29sb3I6ICM0ZDU5NmY7DQoJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQp9DQou
cGFnZQ0Kew0KCWJhY2tncm91bmQ6ICNGRkZGRkY7DQoJY29sb3I6ICMwMDAwMDA7DQp9DQp0ZCwg
dGgsIHAsIGxpDQp7DQoJZm9udDogMTBwdCB2ZXJkYW5hLCBnZW5ldmEsIGx1Y2lkYSwgJ2x1Y2lk
YSBncmFuZGUnLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KfQ0KLnRib3JkZXINCnsN
CgliYWNrZ3JvdW5kOiAjRDFEMUUxOw0KCWNvbG9yOiAjMDAwMDAwOw0KCWJvcmRlcjogMXB4IHNv
bGlkICMwQjE5OEM7DQp9DQoudGNhdA0Kew0KCWJhY2tncm91bmQ6ICM1MDZkODUgdXJsKC4uLy4u
L2ltYWdlcy9hczJncmFwaGl0ZS9ncmFkaWVudHMvZ3JhZGllbnRfdGNhdC5naWYpIHJlcGVhdC14
Ow0KCWNvbG9yOiAjRkZGRkZGOw0KCWZvbnQtc2l6ZTogMTJweDsNCglmb250LXdlaWdodDogYm9s
ZDsNCglwYWRkaW5nOiA0cHggNXB4IDRweCAxNHB4Ow0KCXRleHQtc2hhZG93OiAjMmUzNzRjIDBw
eCAxcHggMXB4Ow0KfQ0KLnRjYXQgYTpsaW5rDQp7DQoJY29sb3I6ICNmZmZmZmY7DQoJdGV4dC1k
ZWNvcmF0aW9uOiBub25lOw0KfQ0KLnRjYXQgYTp2aXNpdGVkDQp7DQoJY29sb3I6ICNmZmZmZmY7
DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KLnRjYXQgYTpob3ZlciwgLnRjYXQgYTphY3Rp
dmUNCnsNCgljb2xvcjogI0ZGRkZGRjsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCn0N
Ci50aGVhZA0Kew0KCWJhY2tncm91bmQ6ICM3ODc4NzggdXJsKC4uLy4uL2ltYWdlcy9hczJncmFw
aGl0ZS9ncmFkaWVudHMvZ3JhZGllbnRfdGhlYWQuZ2lmKSByZXBlYXQteCB0b3AgbGVmdDsNCglj
b2xvcjogI0ZGRkZGRjsNCglmb250LXNpemU6IDExcHg7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJ
cGFkZGluZzogMnB4IDNweCAycHggN3B4Ow0KCXRleHQtc2hhZG93OiAjNTU1NTU1IDBweCAxcHgg
MXB4Ow0KfQ0KLnRoZWFkIGE6bGluaw0Kew0KCWNvbG9yOiAjRkZGRkZGOw0KCXRleHQtZGVjb3Jh
dGlvbjogbm9uZTsNCn0NCi50aGVhZCBhOnZpc2l0ZWQNCnsNCgljb2xvcjogI0ZGRkZGRjsNCgl0
ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudGhlYWQgYTpob3ZlciwgLnRoZWFkIGE6YWN0aXZl
DQp7DQoJY29sb3I6ICNGRkZGRkY7DQoJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7DQp9DQou
dGZvb3QNCnsNCgliYWNrZ3JvdW5kOiAjM0U1QzkyOw0KCWNvbG9yOiAjRTBFMEY2Ow0KfQ0KLnRm
b290IGE6bGluaw0Kew0KCWNvbG9yOiAjRTBFMEY2Ow0KfQ0KLnRmb290IGE6dmlzaXRlZA0Kew0K
CWNvbG9yOiAjRTBFMEY2Ow0KfQ0KLnRmb290IGE6aG92ZXIsIC50Zm9vdCBhOmFjdGl2ZQ0Kew0K
CWNvbG9yOiAjRkZGRjY2Ow0KfQ0KLmFsdDEsIC5hbHQxQWN0aXZlDQp7DQoJYmFja2dyb3VuZDog
I2YzZjRmNzsNCgljb2xvcjogIzAwMDAwMDsNCn0NCi5hbHQyLCAuYWx0MkFjdGl2ZQ0Kew0KCWJh
Y2tncm91bmQ6ICNFMUU0RjI7DQoJY29sb3I6ICMwMDAwMDA7DQp9DQp0ZC5pbmxpbmVtb2QNCnsN
CgliYWNrZ3JvdW5kOiAjZGVlMmVhOw0KfQ0KLnd5c2l3eWcNCnsNCgliYWNrZ3JvdW5kOiAjRjVG
NUZGOw0KCWNvbG9yOiAjMDAwMDAwOw0KCWZvbnQ6IDEwcHQgdmVyZGFuYSwgZ2VuZXZhLCBsdWNp
ZGEsICdsdWNpZGEgZ3JhbmRlJywgYXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsNCn0NCnRl
eHRhcmVhLCAuYmdpbnB1dA0Kew0KCWZvbnQ6IDEwcHQgdmVyZGFuYSwgZ2VuZXZhLCBsdWNpZGEs
ICdsdWNpZGEgZ3JhbmRlJywgYXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsNCn0NCi5idXR0
b24NCnsNCglmb250OiAxMXB4IHZlcmRhbmEsIGdlbmV2YSwgbHVjaWRhLCAnbHVjaWRhIGdyYW5k
ZScsIGFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7DQp9DQpzZWxlY3QNCnsNCglmb250OiAx
MXB4IHZlcmRhbmEsIGdlbmV2YSwgbHVjaWRhLCAnbHVjaWRhIGdyYW5kZScsIGFyaWFsLCBoZWx2
ZXRpY2EsIHNhbnMtc2VyaWY7DQp9DQpvcHRpb24sIG9wdGdyb3VwDQp7DQoJZm9udC1zaXplOiAx
MXB4Ow0KCWZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBnZW5ldmEsIGx1Y2lkYSwgJ2x1Y2lkYSBncmFu
ZGUnLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KfQ0KLnNtYWxsZm9udA0Kew0KCWZv
bnQ6IDExcHggdmVyZGFuYSwgZ2VuZXZhLCBsdWNpZGEsICdsdWNpZGEgZ3JhbmRlJywgYXJpYWws
IGhlbHZldGljYSwgc2Fucy1zZXJpZjsNCn0NCi50aW1lDQp7DQoJY29sb3I6ICM2NjY2ODY7DQp9
DQoubmF2YmFyDQp7DQoJZm9udDogMTFweCB2ZXJkYW5hLCBnZW5ldmEsIGx1Y2lkYSwgJ2x1Y2lk
YSBncmFuZGUnLCBhcmlhbCwgaGVsdmV0aWNhLCBzYW5zLXNlcmlmOw0KfQ0KLmhpZ2hsaWdodA0K
ew0KCWNvbG9yOiAjRkYwMDAwOw0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KLmZqc2VsDQp7DQoJ
YmFja2dyb3VuZDogIzRkNTk2ZjsNCgljb2xvcjogI0ZGRkZGRjsNCn0NCi5mamRwdGgwDQp7DQoJ
YmFja2dyb3VuZDogI0Y3RjdGNzsNCgljb2xvcjogIzAwMDAwMDsNCn0NCi5wYW5lbA0Kew0KCWJh
Y2tncm91bmQ6ICNFNEU3RjUgdXJsKC4uLy4uL2ltYWdlcy9ncmFkaWVudHMvZ3JhZGllbnRfcGFu
ZWwuZ2lmKSByZXBlYXQteCB0b3AgbGVmdDsNCgljb2xvcjogIzAwMDAwMDsNCglwYWRkaW5nOiAx
MHB4Ow0KCWJvcmRlcjogMnB4IG91dHNldDsNCn0NCi5wYW5lbHN1cnJvdW5kDQp7DQoJYmFja2dy
b3VuZDogI0QxRDRFMCB1cmwoLi4vLi4vaW1hZ2VzL2dyYWRpZW50cy9ncmFkaWVudF9wYW5lbHN1
cnJvdW5kLmdpZikgcmVwZWF0LXggdG9wIGxlZnQ7DQoJY29sb3I6ICMwMDAwMDA7DQp9DQpsZWdl
bmQNCnsNCgljb2xvcjogIzIyMjI5QzsNCglmb250OiAxMXB4IHRhaG9tYSwgdmVyZGFuYSwgZ2Vu
ZXZhLCBsdWNpZGEsICdsdWNpZGEgZ3JhbmRlJywgYXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJp
ZjsNCn0NCi52Ym1lbnVfY29udHJvbA0Kew0KCWJhY2tncm91bmQ6ICM3ODc4NzggdXJsKC4uLy4u
L2ltYWdlcy9hczJncmFwaGl0ZS9ncmFkaWVudHMvZ3JhZGllbnRfdGhlYWQuZ2lmKSByZXBlYXQt
eCB0b3AgbGVmdDsNCgljb2xvcjogI0ZGRkZGRjsNCglmb250LXNpemU6IDExcHg7DQoJZm9udC13
ZWlnaHQ6IGJvbGQ7DQoJcGFkZGluZzogM3B4IDZweCAzcHggNnB4Ow0KCXdoaXRlLXNwYWNlOiBu
b3dyYXA7DQp9DQoudmJtZW51X2NvbnRyb2wgYTpsaW5rDQp7DQoJY29sb3I6ICNGRkZGRkY7DQoJ
dGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KLnZibWVudV9jb250cm9sIGE6dmlzaXRlZA0Kew0K
CWNvbG9yOiAjRkZGRkZGOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCi52Ym1lbnVfY29u
dHJvbCBhOmhvdmVyLCAudmJtZW51X2NvbnRyb2wgYTphY3RpdmUNCnsNCgljb2xvcjogI0ZGRkZG
RjsNCgl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsNCn0NCi52Ym1lbnVfcG9wdXANCnsNCgli
YWNrZ3JvdW5kOiAjRkZGRkZGOw0KCWNvbG9yOiAjMDAwMDAwOw0KCWJvcmRlcjogMXB4IHNvbGlk
ICMwQjE5OEM7DQp9DQoudmJtZW51X29wdGlvbg0Kew0KCWJhY2tncm91bmQ6ICNGNEY0RjQ7DQoJ
Y29sb3I6ICMwMDAwMDA7DQoJZm9udC1zaXplOiAxMXB4Ow0KCXdoaXRlLXNwYWNlOiBub3dyYXA7
DQoJY3Vyc29yOiBwb2ludGVyOw0KCQ0KfQ0KLnZibWVudV9vcHRpb24gYTpsaW5rDQp7DQoJY29s
b3I6ICM0ZDU5NmY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KLnZibWVudV9vcHRpb24g
YTp2aXNpdGVkDQp7DQoJY29sb3I6ICM0ZDU5NmY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0K
fQ0KLnZibWVudV9vcHRpb24gYTpob3ZlciwgLnZibWVudV9vcHRpb24gYTphY3RpdmUNCnsNCglj
b2xvcjogI0ZGRkZGRjsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudmJtZW51X2hpbGl0
ZQ0Kew0KCWJhY2tncm91bmQ6ICM2Njc4OGE7DQoJY29sb3I6ICNGRkZGRkY7DQoJZm9udC1zaXpl
OiAxMXB4Ow0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQoJY3Vyc29yOiBwb2ludGVyOw0KCQ0KfQ0K
LnZibWVudV9oaWxpdGUgYTpsaW5rDQp7DQoJY29sb3I6ICNGRkZGRkY7DQoJdGV4dC1kZWNvcmF0
aW9uOiBub25lOw0KfQ0KLnZibWVudV9oaWxpdGUgYTp2aXNpdGVkDQp7DQoJY29sb3I6ICNGRkZG
RkY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KLnZibWVudV9oaWxpdGUgYTpob3Zlciwg
LnZibWVudV9oaWxpdGUgYTphY3RpdmUNCnsNCgljb2xvcjogI0ZGRkZGRjsNCgl0ZXh0LWRlY29y
YXRpb246IG5vbmU7DQp9DQovKiAqKioqKiBzdHlsaW5nIGZvciAnYmlnJyB1c2VybmFtZXMgb24g
cG9zdGJpdCBldGMuICoqKioqICovDQouYmlndXNlcm5hbWUgeyBmb250LXNpemU6IDE1cHg7IGZv
bnQtd2VpZ2h0OiBib2xkOyB9DQovKiAqKioqKiBzbWFsbCBwYWRkaW5nIG9uICd0aGVhZCcgZWxl
bWVudHMgKioqKiogKi8NCnRkLnRoZWFkLCBkaXYudGhlYWQgeyBwYWRkaW5nOiA0cHg7IH0NCi8q
ICoqKioqIGJhc2ljIHN0eWxlcyBmb3IgbXVsdGktcGFnZSBuYXYgZWxlbWVudHMgKi8NCi5wYWdl
bmF2IGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0NCi5wYWdlbmF2IHRkIHsgcGFkZGluZzog
MnB4IDRweCAycHggNHB4OyB9DQovKiAqKioqKiBkZWZpbmUgbWFyZ2luIGFuZCBmb250LXNpemUg
Zm9yIGVsZW1lbnRzIGluc2lkZSBwYW5lbHMgKioqKiogKi8NCi5maWVsZHNldCB7IGJvcmRlci1j
b2xvcjogIzhiOGI4YjsgYm9yZGVyLXN0eWxlOiBzb2xpZCBub25lIG5vbmUgbm9uZTsgYm9yZGVy
LXdpZHRoOiAxcHggMHB4IDBweCAwcHg7IG1hcmdpbi1ib3R0b206IDZweDsgfQ0KLmZpZWxkc2V0
IGxlZ2VuZCB7IHBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXJpZ2h0OiA4cHg7IH0NCi5maWVs
ZHNldCwgLmZpZWxkc2V0IHRkLCAuZmllbGRzZXQgcCwgLmZpZWxkc2V0IGxpIHsgZm9udC1zaXpl
OiAxMXB4OyB9DQovKiAqKioqKiBkb24ndCBjaGFuZ2UgdGhlIGZvbGxvd2luZyAqKioqKiAqLw0K
Zm9ybSB7IGRpc3BsYXk6IGlubGluZTsgfQ0KbGFiZWwgeyBjdXJzb3I6IGRlZmF1bHQ7IH0NCi5u
b3JtYWwgeyBmb250LXdlaWdodDogbm9ybWFsOyB9DQouaW5saW5laW1nIHsgdmVydGljYWwtYWxp
Z246IG1pZGRsZTsgfQ0KaW1nIHsgYm9yZGVyOiAwOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9
DQojY29udGFpbmVyIHsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsgbWlu
LXdpZHRoOiA3NzBweDsgd2lkdGg6IDk5JTsgfQ0KLyogI3dyYXBwZXIsICNjb2xsYXBzZW9ial93
cmFwcGVyIHsgYmFja2dyb3VuZDogI0ZGRkZGRjsgY29sb3I6ICMwMDAwMDA7IH0gKi8NCi5jYXB0
aW9ubWlkIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9jYXB0aW9u
X21pZC5naWYpICNlZmVmZWYgcmVwZWF0LXg7IGZvbnQ6IDEzcHgvMjJweCAiTHVjaWRhIEdyYW5k
ZSIsIEx1Y2lkYUdyYW5kZSwgTHVjaWRhLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBo
ZWlnaHQ6IDIycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6IDEwMCU7IH0NCi5jYXB0aW9u
bWlkIGE6bGluaywuY2FwdGlvbm1pZCAgYTp2aXNpdGVkLC5jYXB0aW9ubWlkICBhOmFjdGl2ZSB7
IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogIzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9u
OiBub25lOyB9DQouY2FwdGlvbm1pZCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9
DQouY2FwdGlvbmxlZnQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRl
L2NhcHRpb25fbGVmdC5naWYpIG5vLXJlcGVhdCAwcHggMHB4OyBmbG9hdDogbGVmdDsgaGVpZ2h0
OiAyMnB4OyBwYWRkaW5nLWxlZnQ6IDE1cHg7IHdpZHRoOiA2NHB4OyB9DQouY2FwdGlvbmxlZnQg
YSB7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDIycHg7IHdpZHRoOiA2NHB4OyB9DQouY2FwdGlv
bmxlZnQgYTpob3ZlciB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUv
Y2FwdGlvbl9sZWZ0LmdpZikgbm8tcmVwZWF0IC0xNXB4IC0yMnB4OyB9DQouY2FwdGlvbmxlZnQg
YTphY3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2NhcHRp
b25fbGVmdC5naWYpIG5vLXJlcGVhdCAtMTVweCAtNDRweDsgfQ0KLmNhcHRpb25yaWdodCB7IGJh
Y2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvY2FwdGlvbl9yaWdodC5naWYp
IG5vLXJlcGVhdCAwcHggMHB4OyBmbG9hdDogcmlnaHQ7IGhlaWdodDogMjJweDsgcGFkZGluZy1y
aWdodDogMTVweDsgd2lkdGg6IDY0cHg7IH0NCi5jYXB0aW9ucmlnaHQgYSB7IGRpc3BsYXk6IGJs
b2NrOyBmbG9hdDogbGVmdDsgaGVpZ2h0OiAyMnB4OyB3aWR0aDogNjRweDsgfQ0KLmNhcHRpb25y
aWdodCBhOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUv
Y2FwdGlvbl9yaWdodC5naWYpIG5vLXJlcGVhdCAwcHggLTIycHg7IH0NCi5zaGFkbGVmdCB7IGJh
Y2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvc2hhZF9sZWZ0LmdpZikgcmVw
ZWF0LXkgbGVmdDsgcGFkZGluZy1sZWZ0OiAxNXB4OyB9DQouc2hhZHJpZ2h0IHsgYmFja2dyb3Vu
ZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9zaGFkX3JpZ2h0LmdpZikgcmVwZWF0LXkg
cmlnaHQ7IHBhZGRpbmctcmlnaHQ6IDE1cHg7IH0NCi5zaGFkYm90bGVmdCB7IGJhY2tncm91bmQ6
IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvc2hhZF9ib3RfbGVmdC5naWYpICM2Njc1ODU7
IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDI0cHg7IHdpZHRoOiA3OXB4OyB9DQouc2hhZGJvdG1pZCB7
IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvc2hhZF9ib3RfbWlkLmdp
ZikgcmVwZWF0LXg7IGhlaWdodDogMjRweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9DQouc2hhZGJv
dHJpZ2h0IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9zaGFkX2Jv
dF9yaWdodC5naWYpICM2Njc1ODU7IGZsb2F0OiByaWdodDsgaGVpZ2h0OiAyNHB4OyB3aWR0aDog
NzlweDsgfQ0KI3Rvb2xiYXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBo
aXRlL3Rvb2xiYXJfYmcuZ2lmKSAjZjRmNGY0OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlm
OWY5ZjsgaGVpZ2h0OiA1NXB4OyBwYWRkaW5nOiAwIDZweCAwIDZweDsgfQ0KI3Rvb2xiYXIgdWwg
eyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDBweDsgd2hpdGUtc3BhY2U6
IG5vd3JhcDsgfQ0KI3Rvb2xiYXIgdWwgbGkgeyBkaXNwbGF5OiBpbmxpbmU7IGZsb2F0OiBsZWZ0
OyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDAgMCAwIDFweDsgcGFkZGluZzogMDsgdGV4dC1h
bGlnbjogY2VudGVyOyB9DQojdG9vbGJhciB1bCBsaTphY3RpdmUgeyBiYWNrZ3JvdW5kOiAjZjRm
NGY0OyB9DQojdG9vbGJhciB1bCBsaSBhIHsgY29sb3I6ICMwMDAwMDA7IGRpc3BsYXk6IGJsb2Nr
OyBtYXJnaW46IDAgMXB4IDAgMXB4OyBwYWRkaW5nOiAzOXB4IDVweCAzcHggNXB4OyB0ZXh0LWRl
Y29yYXRpb246IG5vbmU7IH0NCi8qICN0b29sYmFyIHVsIGxpIGE6YWN0aXZlIHsgYmFja2dyb3Vu
ZDogI0Y0RjRGNDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjQjZCNkI2OyBib3JkZXItcmlnaHQ6
IDFweCBzb2xpZCAjQjZCNkI2OyBjb2xvcjogIzAwMDAwMDsgbWFyZ2luLWxlZnQ6IDBweDsgbWFy
Z2luLXJpZ2h0OiAwcHg7IH0gKi8NCiN0b29sYmFyICN0YmhvbWUgYSB7IGJhY2tncm91bmQ6IHVy
bCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvc2l0ZV9sb2dvLmdpZikgbm8tcmVwZWF0OyBoZWln
aHQ6IDU1cHg7IHBhZGRpbmc6IDA7IHdpZHRoOiAxNzBweDsgfQ0KI3Rvb2xiYXIgI3RidXNlcmNw
IGEgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3RiX3VzZXJjcC5n
aWYpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB9DQojdG9vbGJhciAjdGJmYXEgYSB7IGJhY2tncm91
bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdGJfZmFxLmdpZikgbm8tcmVwZWF0IHRv
cCBjZW50ZXI7IHBhZGRpbmc6IDM5cHggMTBweCAzcHggMTBweDsgfQ0KI3Rvb2xiYXIgI3RibWVt
YmVycyBhIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS90Yl9tZW1i
ZXJzLmdpZikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IH0NCiN0b29sYmFyICN0YmNhbGVuZGFyIGEg
eyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3RiX2NhbGVuZGFyLmdp
Zikgbm8tcmVwZWF0IHRvcCBjZW50ZXI7IH0NCiN0b29sYmFyICN0YnNlYXJjaCBhIHsgYmFja2dy
b3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS90Yl9zZWFyY2guZ2lmKSBuby1yZXBl
YXQgdG9wIGNlbnRlcjsgfQ0KI3Rvb2xiYXIgI3RibmV3cG9zdHMgYSB7IGJhY2tncm91bmQ6IHVy
bCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdGJfbmV3cG9zdHMuZ2lmKSBuby1yZXBlYXQgdG9w
IGNlbnRlcjsgfQ0KI3Rvb2xiYXIgI3RibWFya3JlYWQgYSB7IGJhY2tncm91bmQ6IHVybCguLi8u
Li9pbWFnZXMvYXMyZ3JhcGhpdGUvdGJfbWFya3JlYWQuZ2lmKSBuby1yZXBlYXQgdG9wIGNlbnRl
cjsgfQ0KI3Rvb2xiYXIgI3RiYnVkZHlsaXN0IGEgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1h
Z2VzL2FzMmdyYXBoaXRlL3RiX2J1ZGR5bGlzdC5naWYpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB9
DQojdG9vbGJhciAjdGJxdWlja2xpbmtzIGEgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2Vz
L2FzMmdyYXBoaXRlL3RiX3F1aWNrbGlua3MuZ2lmKSBuby1yZXBlYXQgdG9wIGNlbnRlcjsgfQ0K
I3Rvb2xiYXIgI3RibG9nb3V0IGEgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdy
YXBoaXRlL3RiX2xvZ291dC5naWYpIG5vLXJlcGVhdCB0b3AgY2VudGVyOyB9DQovKiBGb290ZXIg
TGlua3MgKi8NCi5mb290ZXJuYXYgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdy
YXBoaXRlL3Rvb2xiYXJfYmcuZ2lmKSAjZjRmNGY0OyBjb2xvcjogIzAwMDAwMDsgbWFyZ2luOiAw
cHg7IHBhZGRpbmc6IDBweCAxMnB4IDAgNnB4OyB9DQojZm9vdGVybmF2IHsgZmxvYXQ6IGxlZnQ7
IHdpZHRoOiBhdXRvOyB9DQojZm9vdGVybmF2IHVsIHsgbGlzdC1zdHlsZTogbm9uZTsgbWFyZ2lu
OiAwOyBwYWRkaW5nOiAwIDAgMCA2cHg7IH0NCiNmb290ZXJuYXYgbGkgeyBkaXNwbGF5OiBpbmxp
bmU7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IDAgMCAwIDFweDsgcGFkZGluZzogMDsgdGV4dC1hbGln
bjogY2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9DQojZm9vdGVybmF2IGEgeyBjb2xv
cjogIzAwMDAwMDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbi1sZWZ0OiAxcHg7IG1hcmdpbi1yaWdo
dDogMXB4OyBwYWRkaW5nOiAzcHggNXB4IDNweCA1cHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsg
fQ0KI2Zvb3Rlcm5hdiBhOmhvdmVyIHsgY29sb3I6ICMwMDAwMDA7IH0NCiNmb290ZXJuYXYgYTph
Y3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3Rvb2xiYXJf
aG90X2JnLmdpZikgI2Y0ZjRmNDsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYjZiNmI2OyBib3Jk
ZXItcmlnaHQ6IDFweCBzb2xpZCAjYjZiNmI2OyBjb2xvcjogIzAwMDAwMDsgbWFyZ2luLWxlZnQ6
IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IH0NCi8qIFNlYXJjaCBCb3ggKi8NCi5kcm9wZG93bnNl
YXJjaCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcGluXzEuZ2lm
KSAjZWNlY2VjOyBib3JkZXI6IDFweCBzb2xpZCAjNzg3ODc4OyB3aWR0aDogMjAwcHg7IH0NCi5k
cm9wZG93bnNlYXJjaHNwb3RsaWdodCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMy
Z3JhcGhpdGUvc3BvdGxpZ2h0X2JnLmdpZikgIzRkNTk2ZiByZXBlYXQteDsgaGVpZ2h0OiAyNHB4
OyBwYWRkaW5nOiAzcHggMTFweCAzcHggMTFweDsgfQ0KLmRyb3Bkb3duc2VhcmNoYWR2YW5jZWQg
eyBwYWRkaW5nOiA0cHggMCA0cHggMDsgfQ0KLmRyb3Bkb3duc2VhcmNoYWR2YW5jZWQgYSB7IGNv
bG9yOiAjMDAwMDAwOyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogM3B4IDEycHggM3B4IDEycHg7
IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KLmRyb3Bkb3duc2VhcmNoYWR2YW5jZWQgYTpob3Zl
ciB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcGluXzMuZ2lmKSAj
NGQ1OTZmOyBjb2xvcjogI2ZmZmZmZjsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9DQovKiBEcm9w
IERvd24gTWVudXMgKi8NCi5kcm9wZG93biB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMv
YXMyZ3JhcGhpdGUvcGluXzEuZ2lmKSAjZWNlY2VjOyBib3JkZXI6IDFweCBzb2xpZCAjNzg3ODc4
OyBjb2xvcjogIzAwMDAwMDsgcGFkZGluZzogNHB4IDAgNHB4IDA7IHdpZHRoOiAxNjBweDsgfQ0K
LmRyb3Bkb3duMiB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdG9v
bGJhcl9iZy5naWYpICNmNGY0ZjQ7IGNvbG9yOiAjMDAwMDAwOyBwYWRkaW5nOiA0cHggMCA0cHgg
MDsgd2lkdGg6IDE3MHB4OyB9DQouZHJvcGRvd24gZGwsIC5kcm9wZG93bjIgZGwgeyBsaXN0LXN0
eWxlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH0NCi5kcm9wZG93biBkdCwgLmRyb3Bk
b3duMiBkdCB7IGNvbG9yOiAjOTA5MDkwOyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAwOyBwYWRk
aW5nOiAzcHggMTFweCAzcHggMTFweDsgfQ0KLmRyb3Bkb3duIGR0IGEsIC5kcm9wZG93bjIgZHQg
YSB7IGNvbG9yOiAjOTA5MDkwOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0NCi5kcm9wZG93biBk
ZCwgLmRyb3Bkb3duMiBkZCB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfQ0KLmRyb3Bkb3duIGRk
IGEsIC5kcm9wZG93biBkZCBhOmFjdGl2ZSwgLmRyb3Bkb3duIGRkIGE6dmlzaXRlZCwgLmRyb3Bk
b3duIGRkIGE6bGluaywgLmRyb3Bkb3duMiBkZCBhLCAuZHJvcGRvd24yIGRkIGE6YWN0aXZlLCAu
ZHJvcGRvd24yIGRkIGE6dmlzaXRlZCwgLmRyb3Bkb3duMiBkZCBhOmxpbmsgeyBjb2xvcjogIzAw
MDAwMDsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDNweCAyMnB4IDNweCAyMnB4OyB0ZXh0LWRl
Y29yYXRpb246IG5vbmU7IH0NCi5kcm9wZG93biBkZCBhOmhvdmVyLCAuZHJvcGRvd24yIGRkIGE6
aG92ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3Bpbl8zLmdp
ZikgIzRkNTk2ZjsgY29sb3I6ICNmZmZmZmY7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfQ0KLmRy
b3Bkb3duIC5zZXAsIC5kcm9wZG93bjIgLnNlcCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFn
ZXMvYXMyZ3JhcGhpdGUvZHJvcGRvd25fc2VwLmdpZikgcmVwZWF0LXg7IGZvbnQtc2l6ZTogMDsg
aGVpZ2h0OiAycHg7IG1hcmdpbjogNHB4IDAgNHB4IDA7IH0NCi8qIE5hdiBCYXIgKi8NCiNicmVh
ZGNydW1iIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9waW5fMS5n
aWYpICNlY2VjZWM7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYjJiMmIyOyBoZWlnaHQ6IDMy
cHg7IHBhZGRpbmc6IDZweCA4cHggNnB4IDhweDsgfQ0KI2JyZWFkY3J1bWJzZWxmIHsgYmFja2dy
b3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9taXNjL25hdmJpdHNfc3RhcnQuZ2lm
KSBuby1yZXBlYXQ7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGxpbmUtaGVp
Z2h0OiAxMnB4OyBwYWRkaW5nOiAxcHggMCA0cHggMjJweDsgfQ0KI2JyZWFkY3J1bWJzdGFydCB7
IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvbWlzYy9uYXZiaXRzX3N0
YXJ0LmdpZikgbm8tcmVwZWF0OyBsaW5lLWhlaWdodDogMTFweDsgcGFkZGluZzogMXB4IDAgNHB4
IDIycHg7IH0NCiNicmVhZGNydW1iZW5kIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9h
czJncmFwaGl0ZS9taXNjL25hdmJpdHNfZmluYWxsaW5rLmdpZikgbm8tcmVwZWF0OyBmb250LXNp
emU6IDEycHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBsaW5lLWhlaWdodDogMTJweDsgcGFkZGluZzog
MnB4IDAgMnB4IDM4cHg7IH0NCiNicmVhZGNydW1iZW5kIGEsICNicmVhZGNydW1ic2VsZiBhIHsg
Y29sb3I6ICMwMDAwMDA7IH0NCiNwbWJ1YmJsZSB7IGZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAzcHgg
NnB4IDNweCA2cHg7IH0NCiNwbWJ1YmJsZSBhLCAjcG1idWJibGUgYTpsaW5rLCAjcG1idWJibGUg
YTphY3RpdmUsICNwbWJ1YmJsZSBhOnZpc2l0ZWQsICNwbWJ1YmJsZSBhOmhvdmVyIHsgYmFja2dy
b3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9wbV9idWJibGUuZ2lmKSBuby1yZXBl
YXQgY2VudGVyOyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAyNnB4OyB3aWR0aDogMjZweDsgfQ0K
LyogR2xvYmFsICovDQouY2xlYXIgeyBjbGVhcjogYm90aDsgZm9udC1zaXplOiAwOyB9DQoucGlu
MSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvcGluXzEuZ2lmKSAj
ZWNlY2VjOyB9DQoucGluMyB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhp
dGUvcGluXzMuZ2lmKSAjNGQ1OTZmOyBjb2xvcjogI2ZmZmZmZjsgfQ0KLnBpbjQgeyBiYWNrZ3Jv
dW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3Rvb2xiYXJfYmcuZ2lmKSAjZjRmNGY0
OyB9DQouYWx0MyB7IGJhY2tncm91bmQ6ICNmZmUxZTE7IH0NCi5hcXVhZyB7IGJhY2tncm91bmQ6
IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvYXF1YV9ncmF5LmdpZikgI2VhZWFlYSByZXBl
YXQteDsgY29sb3I6ICMwMDAwMDA7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IGJvbGQ7
IGhlaWdodDogMTVweDsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDBweCA3cHggMHB4IDdweDsgfQ0K
LmFxdWFnMiB7IGJhY2tncm91bmQ6ICNlYWVhZWE7IGNvbG9yOiAjMDAwMDAwOyBmb250LXNpemU6
IDEwcHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBwYWRkaW5nOiAwOyB9DQouYXF1YWcgYSwgLmFxdWFn
IGE6bGluaywgLmFxdWFnIGE6YWN0aXZlLCAuYXF1YWcgYTp2aXNpdGVkLCAuYXF1YWcyIGEsIC5h
cXVhZzIgYTpsaW5rLCAuYXF1YWcyIGE6YWN0aXZlLCAuYXF1YWcyIGE6dmlzaXRlZCB7IGNvbG9y
OiAjMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0NCi5hcXVhZyBhOmhvdmVyLCAuYXF1
YWcyIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQ0KLmJvcmRlcmxlZnQg
eyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjMGMwYzA7IH0NCi5ib3JkZXJyaWdodCB7IGJvcmRl
ci1yaWdodDogMXB4IHNvbGlkICNjMGMwYzA7IH0NCi5ib3JkZXJib3R0b20geyBib3JkZXItYm90
dG9tOiAxcHggc29saWQgI2MwYzBjMDsgfQ0KLmJvcmRlcmJvdHRvbTIgeyBib3JkZXItYm90dG9t
OiAxcHggc29saWQgI2Q4ZDhkODsgfQ0KLmJvcmRlcnRvcCB7IGJvcmRlci10b3A6IDFweCBzb2xp
ZCAjYzBjMGMwOyB9DQouZGVzYyB7IGNvbG9yOiAjOTk5OTk5OyB9DQouZGVzYzIgeyBjb2xvcjog
I2Q4ZDhkODsgfQ0KLmlubGluZW1vZCAuYm9yZGVyYm90dG9tMiB7IGJvcmRlci1ib3R0b206IDFw
eCBzb2xpZCAjYzBjMGMwOyB9DQouaW5saW5lbW9kIC5kZXNjMiB7IGNvbG9yOiAjYzBjMGMwOyB9
DQouYWxlcnQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2Mv
YWxlcnQuZ2lmKSBuby1yZXBlYXQgbGVmdDsgcGFkZGluZzogMCAwIDAgMzVweDsgfQ0KLmFsZXJ0
IHVsIHsgbGlzdC1zdHlsZTogaW5zaWRlOyBtYXJnaW46IDhweCAwIDhweCA0cHg7IHBhZGRpbmc6
IDA7IH0NCi5hbGVydCB1bCBsaSB7IG1hcmdpbjogMCAwIDAgNHB4OyBwYWRkaW5nOiAxcHggMCAx
cHggMDsgfQ0KLm9mZmxpbmVtZXNzYWdlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9h
czJncmFwaGl0ZS9ncmFkaWVudHMvYWxlcnRfYmcuZ2lmKSAjZmVlM2UzIHJlcGVhdC14OyBib3Jk
ZXI6IDFweCBzb2xpZCAjYzliMGIwOyBjb2xvcjogIzMzMDAwMDsgZm9udC1zaXplOiAxMHB4OyBt
YXJnaW46IDAgYXV0byAwIGF1dG87IG1pbi13aWR0aDogNzcwcHg7IHBhZGRpbmc6IDJweDsgd2lk
dGg6IDk1JTsgfQ0KLnRhYmJveCB7IGJhY2tncm91bmQ6ICNmZmZmZmY7IGJvcmRlci1ib3R0b206
IDFweCBzb2xpZCAjZGRkZGRkOyBib3JkZXItbGVmdDogMXB4IHNvbGlkICNiZWJlYmU7IGJvcmRl
ci1yaWdodDogMXB4IHNvbGlkICNiZWJlYmU7IGJvcmRlci10b3A6IDFweCBzb2xpZCAjYTBhMGEw
OyB9DQovKiBCdXR0b25zICovDQouYm5ld3RocmVhZCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9p
bWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9uZXd0aHJlYWQuZ2lmKSBuby1yZXBlYXQgMHB4IDBw
eDsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAyNnB4OyB3aWR0aDogMTA4
cHg7IH0NCi5ibmV3dGhyZWFkOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMv
YXMyZ3JhcGhpdGUvYnV0dG9ucy9uZXd0aHJlYWQuZ2lmKSBuby1yZXBlYXQgMHB4IC0yNnB4OyB9
DQouYm5ld3JlcGx5IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9i
dXR0b25zL3JlcGx5LmdpZikgbm8tcmVwZWF0IDBweCAwcHg7IGRpc3BsYXk6IGJsb2NrOyBmb250
LXNpemU6IDA7IGhlaWdodDogMjZweDsgd2lkdGg6IDk2cHg7IH0NCi5ibmV3cmVwbHk6YWN0aXZl
IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3JlcGx5
LmdpZikgbm8tcmVwZWF0IDBweCAtMjZweDsgfQ0KLmJjbG9zZWQgeyBiYWNrZ3JvdW5kOiB1cmwo
Li4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvdGhyZWFkY2xvc2VkLmdpZikgbm8tcmVw
ZWF0OyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDI2cHg7IHdpZHRoOiA3
NXB4OyB9DQouYmNvbnRpbnVlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFw
aGl0ZS9idXR0b25zL2NvbnRpbnVlLmdpZikgbm8tcmVwZWF0IDBweCAwcHg7IGRpc3BsYXk6IGJs
b2NrOyBmb250LXNpemU6IDA7IGhlaWdodDogMjZweDsgd2lkdGg6IDkwcHg7IH0NCi5iY29udGlu
dWU6YWN0aXZlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0
b25zL2NvbnRpbnVlLmdpZikgbm8tcmVwZWF0IDBweCAtMjZweDsgfQ0KLmJyZXNldCB7IGJhY2tn
cm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9yZXNldC5naWYpIG5v
LXJlcGVhdCAwcHggMHB4OyBkaXNwbGF5OiBibG9jazsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDI2
cHg7IHdpZHRoOiA2N3B4OyB9DQouYnJlc2V0OmFjdGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8u
Li9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9yZXNldC5naWYpIG5vLXJlcGVhdCAwcHggLTI2
cHg7IH0NCi5iY29tcGxldGUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBo
aXRlL2J1dHRvbnMvY29tcGxldGUuZ2lmKSBuby1yZXBlYXQgMHB4IDBweDsgZGlzcGxheTogYmxv
Y2s7IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAyNnB4OyB3aWR0aDogOTNweDsgfQ0KLmJjb21wbGV0
ZTphY3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRv
bnMvY29tcGxldGUuZ2lmKSBuby1yZXBlYXQgMHB4IC0yNnB4OyB9DQouYnNhdmVjaGFuZ2VzIHsg
YmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3NhdmVjaGFu
Z2VzLmdpZikgbm8tcmVwZWF0IDBweCAwcHg7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDA7
IGhlaWdodDogMjZweDsgd2lkdGg6IDExOXB4OyB9DQouYnNhdmVjaGFuZ2VzOmFjdGl2ZSB7IGJh
Y2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9zYXZlY2hhbmdl
cy5naWYpIG5vLXJlcGVhdCAwcHggLTI2cHg7IH0NCi5icHJldmlldyB7IGJhY2tncm91bmQ6IHVy
bCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9wcmV2aWV3LmdpZikgbm8tcmVwZWF0
IDBweCAwcHg7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDA7IGhlaWdodDogMjZweDsgd2lk
dGg6IDgwcHg7IH0NCi5icHJldmlldzphY3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1h
Z2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvcHJldmlldy5naWYpIG5vLXJlcGVhdCAwcHggLTI2cHg7
IH0NCi8qIFBvc3RpbmcgUnVsZXMgKi8NCi5ydWxlc2NhcHRpb24geyBiYWNrZ3JvdW5kOiB1cmwo
Li4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3J1bGVzX2NhcHRpb24uZ2lmKSAjY2ZjZmNmIHJlcGVh
dC14OyBmb250LXNpemU6IDExcHg7IGhlaWdodDogMTVweDsgbGluZS1oZWlnaHQ6IDE1cHg7IHBh
ZGRpbmc6IDAgNnB4IDAgMTdweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9DQoucnVsZXNjYXB0aW9u
IGEgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvcnVs
ZXNfY29sbGFwc2UuZ2lmKSBuby1yZXBlYXQgMHB4IDBweDsgZGlzcGxheTogYmxvY2s7IGZsb2F0
OiByaWdodDsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDExcHg7IG1hcmdpbjogMnB4IDAgMnB4IDA7
IHdpZHRoOiAxOXB4OyB9DQoucnVsZXNjYXB0aW9uIGE6YWN0aXZlIHsgYmFja2dyb3VuZDogdXJs
KC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL3J1bGVzX2NvbGxhcHNlLmdpZikgbm8t
cmVwZWF0IDBweCAtMTFweDsgfQ0KLyogUHJvZ3Jlc3MgQmFyICovDQoucHJvZ3Jlc3NiYXIgeyBi
YWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3Byb2dyZXNzX2JnLmdpZikg
I2RhZGFkYSBuby1yZXBlYXQ7IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAxNnB4OyBwYWRkaW5nOiAw
IDNweCA0cHggM3B4OyB3aWR0aDogMTk0cHg7IH0NCi5wcm9ncmVzc2JhciBkaXYgeyBiYWNrZ3Jv
dW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3Byb2dyZXNzLmdpZikgIzgzOTZhZiBy
ZXBlYXQteDsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDE2cHg7IH0NCi5zdG9yYWdlc3BhY2UgeyBi
YWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2Mvc3RvcmFnZV9zcGFj
ZS5naWYpICNkMmQyZDIgcmVwZWF0LXg7IGJvcmRlcjogMXB4IHNvbGlkICM2ZTZlNmU7IGhlaWdo
dDogOHB4OyB9DQouc3RvcmFnZXNwYWNlIHRkIHsgZm9udC1zaXplOiAwOyBoZWlnaHQ6IDhweDsg
fQ0KLnN0b3JhZ2VzcGFjZXVzZWQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdy
YXBoaXRlL21pc2Mvc3RvcmFnZV9zcGFjZS5naWYpICM4Mzk2YWYgcmVwZWF0LXggMHB4IC04cHg7
IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiA4cHg7IH0NCi8qIFBvc3RiaXQgKi8NCi5hdmF0YXIgaW1n
IHsgYmFja2dyb3VuZDogI2ZmZmZmZjsgYm9yZGVyOiAxcHggc29saWQgI2Q4ZDhkODsgbWFyZ2lu
OiAwIGF1dG8gMCBhdXRvOyBwYWRkaW5nOiA1cHg7IH0NCi5wb3N0dGl0bGUgYSwgLnBvc3R0aXRs
ZSBhOmhvdmVyLCAucG9zdHRpdGxlIGE6YWN0aXZlLCAucG9zdHRpdGxlIGE6dmlzaXRlZCB7IGNv
bG9yOiAjMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0NCi5wb3N0IHsgcGFkZGluZzog
MTBweCAwIDE1cHggMDsgfQ0KLnNpZyB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMy
Z3JhcGhpdGUvc2lnLmdpZikgbm8tcmVwZWF0OyBjb2xvcjogIzY2NjY2NjsgZm9udC1zaXplOiAx
MHB4OyBwYWRkaW5nOiA2cHggMCA1cHggMDsgfQ0KLyogUmVnaXN0cmF0aW9uICovDQojcmVnaXN0
ZXIgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3JlZ2lzdGVyX2Jn
LnBuZykgbm8tcmVwZWF0OyBwYWRkaW5nOiAxNnB4IDI3cHggMTZweCAxNzJweDsgfQ0KI3JlZ2lz
dGVyIC5ib3ggeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdyYXBoaXRlL3RyYW5z
cGFyZW50LnBuZyk7IGJvcmRlcjogMXB4IHNvbGlkICM5MDkwOTA7IGZvbnQtc2l6ZTogMTJweDsg
cGFkZGluZzogMTZweDsgfQ0KI3JlZ2lzdGVyIC5ib3hpZSB7IGJhY2tncm91bmQ6ICNmZmZmZmY7
IGJvcmRlcjogMXB4IHNvbGlkICM5MDkwOTA7IGZvbnQtc2l6ZTogMTJweDsgcGFkZGluZzogMTZw
eDsgfQ0KI3JlZ2lzdGVyIC5ib3ggdGQsICNyZWdpc3RlciAuYm94aWUgdGQgeyBmb250LXNpemU6
IDEycHg7IH0NCiNyZWdpc3RlciAudGl0bGUgeyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0
OiBib2xkOyBwYWRkaW5nLWJvdHRvbTogNHB4OyB9DQovKiBQb3N0aW5nICovDQoucGZvbnQsIC5w
Zm9udCB0ZCB7IGZvbnQtc2l6ZTogMTJweDsgfQ0KLnBjYXB0aW9uIHsgZm9udC1zaXplOiAxM3B4
OyB9DQovKiBBbGVydCBQb3B1cCAqLw0KI3BtX3BvcHVwIHsgbWFyZ2luOiAwIDIwJSAwIDIwJTsg
cG9zaXRpb246IGZpeGVkOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRvcDogMjAwcHg7IHdpZHRoOiA2
MCU7IH0NCi5hbGVydG1pZCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhp
dGUvY2FwdGlvbl9hbGVydC5naWYpIHJlcGVhdC14IDBweCAtNjZweDsgZm9udDogMTNweC8yMnB4
ICJMdWNpZGEgR3JhbmRlIiwgTHVjaWRhR3JhbmRlLCBMdWNpZGEsIEhlbHZldGljYSwgQXJpYWws
IHNhbnMtc2VyaWY7IGhlaWdodDogMjJweDsgbWFyZ2luOiAwIDY1cHggMCA2NXB4OyB0ZXh0LWFs
aWduOiBjZW50ZXI7IH0NCi5hbGVydHJpZ2h0IHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdl
cy9hczJncmFwaGl0ZS9jYXB0aW9uX2FsZXJ0LmdpZikgcmVwZWF0LXggMHB4IC00NHB4OyBmbG9h
dDogcmlnaHQ7IGhlaWdodDogMjJweDsgd2lkdGg6IDY1cHg7IH0NCi5hbGVydGxlZnQgeyBmbG9h
dDogbGVmdDsgaGVpZ2h0OiAyMnB4OyB3aWR0aDogNjVweDsgfQ0KLmFsZXJ0bGVmdCBhIHsgYmFj
a2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9jYXB0aW9uX2FsZXJ0LmdpZikg
cmVwZWF0LXggMHB4IDBweDsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMjJweDsgd2lkdGg6IDY1
cHg7IH0NCi5hbGVydGxlZnQgYTphY3RpdmUgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2Vz
L2FzMmdyYXBoaXRlL2NhcHRpb25fYWxlcnQuZ2lmKSByZXBlYXQteCAwcHggLTIycHg7IH0NCi5h
bGVydGJveCB7IGJhY2tncm91bmQ6IHVybCguLi8uLi9pbWFnZXMvYXMyZ3JhcGhpdGUvdG9vbGJh
cl9iZy5naWYpICNmNGY0ZjQ7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYjViNWI1OyBib3Jk
ZXItbGVmdDogMXB4IHNvbGlkICNiNWI1YjU7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiNWI1
YjU7IGJvcmRlci10b3A6IDFweCBzb2xpZCAjOGM4YzhjOyBjbGVhcjogYm90aDsgcGFkZGluZzog
MTZweDsgfQ0KLmJhbGVydHJlYWQgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1hZ2VzL2FzMmdy
YXBoaXRlL2J1dHRvbnMvYWxlcnRfYnV0dG9ucy5naWYpIG5vLXJlcGVhdCAtNjdweCAwcHg7IGRp
c3BsYXk6IGJsb2NrOyBmbG9hdDogcmlnaHQ7IGZvbnQtc2l6ZTogMDsgaGVpZ2h0OiAyNnB4OyB3
aWR0aDogMTUycHg7IH0NCi5iYWxlcnRyZWFkOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHVybCguLi8u
Li9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9hbGVydF9idXR0b25zLmdpZikgbm8tcmVwZWF0
IC02N3B4IC0yNnB4OyB9DQouYmFsZXJ0Y2xvc2UgeyBiYWNrZ3JvdW5kOiB1cmwoLi4vLi4vaW1h
Z2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvYWxlcnRfYnV0dG9ucy5naWYpIG5vLXJlcGVhdCAwcHgg
MHB4OyBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IHJpZ2h0OyBmb250LXNpemU6IDA7IGhlaWdodDog
MjZweDsgbWFyZ2luLXJpZ2h0OiA2cHg7IHdpZHRoOiA2N3B4OyB9DQouYmFsZXJ0Y2xvc2U6YWN0
aXZlIHsgYmFja2dyb3VuZDogdXJsKC4uLy4uL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25zL2Fs
ZXJ0X2J1dHRvbnMuZ2lmKSBuby1yZXBlYXQgMHB4IC0yNnB4OyB9XxBRaHR0cDovL3d3dy5tYWNp
dHluZXQuaXQvZm9ydW0vY2xpZW50c2NyaXB0L3ZidWxsZXRpbl9jc3Mvc3R5bGUtNmVlZmUxODUt
MDAwMTAuY3NzWHRleHQvY3Nz1AUGBwgODxARTxEEhWJwbGlzdDAw1AECAwQFBgcKWSRhcmNoaXZl
clgkdmVyc2lvblQkdG9wWCRvYmplY3RzXxAPTlNLZXllZEFyY2hpdmVyEgABhqDRCAlfEBNXZWJS
ZXNvdXJjZVJlc3BvbnNlgAGvEB0LDCkvMDc4PFRVVldYWVpbXF1eX1pgYWJjN2Roa1UkbnVsbN8Q
EA0ODxAREhMUFRYXGBkaGxwdHh8eICEeIiMkJR0mJx4oUiQ2UyQxMFIkMlMkMTNSJDdSJDNTJDEx
UiQ4UiQ0UyQxNFIkOVIkMFYkY2xhc3NSJDVTJDEyUiQxEAcQAYAFgAaAACNBpB0PCdsc6xGBwBAA
I0GkHQ8H6kD7gBwjQaQeLaB1inaAAtMqKxkhLS5XTlMuYmFzZVtOUy5yZWxhdGl2ZYAAgAOABF8Q
Pmh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2NsaWVudHNjcmlwdC92YnVsbGV0aW5fZ2xv
YmFsLmpz0jEyMzRYJGNsYXNzZXNaJGNsYXNzbmFtZaM0NTZVTlNVUkxWJU5TVVJMWE5TT2JqZWN0
XxAYYXBwbGljYXRpb24veC1qYXZhc2NyaXB00xgZHDk6O4AHgBsQyNM9Phk/SVNaTlMub2JqZWN0
c1dOUy5rZXlzqUBBQkNERUZHSIARgBKAE4AUgBWAFoAXgBiAGalKS0xNTk9QUVKACIAJgAqAC4AM
gA2ADoAPgBCAGlZTZXJ2ZXJdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzWkNvbm5lY3Rpb25U
RGF0ZV5Db250ZW50LUxlbmd0aFpLZWVwLUFsaXZlVEV0YWdcQ29udGVudC1UeXBlXUFwYWNoZS8x
LjMuMjlfEB1XZWQsIDAzIE1heSAyMDA2IDEzOjU4OjI0IEdNVFVieXRlc18QHVN1biwgMDcgTWF5
IDIwMDYgMTk6NTI6MzYgR01UVTMzMjE2XxASdGltZW91dD01LCBtYXg9MTAwXxAWImUyMzk0Yi04
MWMwLTQ0NThiNzAwItIxMmVmo2ZnNl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ5
0jEyaWqiajZfEBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEybG2jbW42XxARTlNIVFRQVVJM
UmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQAhACKAK0AsAC0ALcA
uwC+AMEAxQDIAMsAzwDSANUA3ADfAOMA5gDoAOoA7ADuAPAA+QD8AP4BBwEJARIBFAEbASMBLwEx
ATMBNQF2AXsBhAGPAZMBmQGgAakBxAHLAc0BzwHRAdgB4wHrAfUB9wH5AfsB/QH/AgECAwIFAgcC
EQITAhUCFwIZAhsCHQIfAiECIwIlAiwCOgJIAlMCWAJnAnICdwKEApICsgK4AtgC3gLzAwwDEQMV
AysDOAM9A0ADXANhA2UDeQAAAAAAAAIBAAAAAAAAAG8AAAAAAAAAAAAAAAAAAAOHTxGBwC8qPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PSpcCnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHx8Cnx8ICMgdkJ1bGxldGluIDMuNS40Cnx8ICMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAjIHx8Cnx8ICMgQ29weXJpZ2h0IKkyMDAwLTIwMDYgSmVsc29mdCBFbnRlcnByaXNl
cyBMdGQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIHx8Cnx8ICMgVGhpcyBmaWxlIG1heSBub3QgYmUg
cmVkaXN0cmlidXRlZCBpbiB3aG9sZSBvciBzaWduaWZpY2FudCBwYXJ0LiAjIHx8Cnx8ICMgLS0t
LS0tLS0tLS0tLS0tLSBWQlVMTEVUSU4gSVMgTk9UIEZSRUUgU09GVFdBUkUgLS0tLS0tLS0tLS0t
LS0tLSAjIHx8Cnx8ICMgaHR0cDovL3d3dy52YnVsbGV0aW4uY29tIHwgaHR0cDovL3d3dy52YnVs
bGV0aW4uY29tL2xpY2Vuc2UuaHRtbCAjIHx8Cnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHx8ClwqPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSovCgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBJbml0aWFsIHNldHVwCgovLyBlbnN1
cmUgU0VTU0lPTlVSTCBleGlzdHMKaWYgKHR5cGVvZiBTRVNTSU9OVVJMID09ICd1bmRlZmluZWQn
KQp7CglTRVNTSU9OVVJMID0gJyc7Cn0KCi8vIGVuc3VyZSB2YnBocmFzZSBleGlzdHMKaWYgKHR5
cGVvZiB2YnBocmFzZSA9PSAndW5kZWZpbmVkJykKewoJdmJwaHJhc2UgPSBuZXcgQXJyYXkoKTsK
fQoKLy8gQXJyYXkgb2YgbWVzc2FnZSBlZGl0b3Igb2JqZWN0cwp2YXIgdkJfRWRpdG9yID0gbmV3
IEFycmF5KCk7CgovLyBJZ25vcmUgY2hhcmFjdGVycyB3aXRoaW4gW3F1b3RlXSB0YWdzIGluIG1l
c3NhZ2VzIGZvciBsZW5ndGggY2hlY2sKdmFyIGlnbm9yZXF1b3RlY2hhcnMgPSBmYWxzZTsKCi8v
IE51bWJlciBvZiBwYWdlbmF2IGl0ZW1zIGRlYWx0IHdpdGggc28gZmFyCnZhciBwYWdlbmF2Y291
bnRlciA9IDA7CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBCcm93c2VyIGRldGVjdGlvbiBh
bmQgbGltaXRhdGlvbiB3b3JrYXJvdW5kcwoKLy8gRGVmaW5lIHRoZSBicm93c2VyIHdlIGhhdmUg
aW5zdGVhZCBvZiBtdWx0aXBsZSBjYWxscyB0aHJvdWdob3V0IHRoZSBmaWxlCnZhciB1c2VyQWdl
bnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7CnZhciBpc19vcGVyYSAgPSAo
dXNlckFnZW50LmluZGV4T2YoJ29wZXJhJykgIT0gLTEpOwp2YXIgaXNfc2FmICAgID0gKCh1c2Vy
QWdlbnQuaW5kZXhPZignYXBwbGV3ZWJraXQnKSAhPSAtMSkgfHwgKG5hdmlnYXRvci52ZW5kb3Ig
PT0gJ0FwcGxlIENvbXB1dGVyLCBJbmMuJykpOwp2YXIgaXNfd2VidHYgID0gKHVzZXJBZ2VudC5p
bmRleE9mKCd3ZWJ0dicpICE9IC0xKTsKdmFyIGlzX2llICAgICA9ICgodXNlckFnZW50LmluZGV4
T2YoJ21zaWUnKSAhPSAtMSkgJiYgKCFpc19vcGVyYSkgJiYgKCFpc19zYWYpICYmICghaXNfd2Vi
dHYpKTsKdmFyIGlzX2llNCAgICA9ICgoaXNfaWUpICYmICh1c2VyQWdlbnQuaW5kZXhPZignbXNp
ZSA0LicpICE9IC0xKSk7CnZhciBpc19tb3ogICAgPSAoKG5hdmlnYXRvci5wcm9kdWN0ID09ICdH
ZWNrbycpICYmICghaXNfc2FmKSk7CnZhciBpc19rb24gICAgPSAodXNlckFnZW50LmluZGV4T2Yo
J2tvbnF1ZXJvcicpICE9IC0xKTsKdmFyIGlzX25zICAgICA9ICgodXNlckFnZW50LmluZGV4T2Yo
J2NvbXBhdGlibGUnKSA9PSAtMSkgJiYgKHVzZXJBZ2VudC5pbmRleE9mKCdtb3ppbGxhJykgIT0g
LTEpICYmICghaXNfb3BlcmEpICYmICghaXNfd2VidHYpICYmICghaXNfc2FmKSk7CnZhciBpc19u
czQgICAgPSAoKGlzX25zKSAmJiAocGFyc2VJbnQobmF2aWdhdG9yLmFwcFZlcnNpb24pID09IDQp
KTsKdmFyIGlzX21hYyAgICA9ICh1c2VyQWdlbnQuaW5kZXhPZignbWFjJykgIT0gLTEpOwoKLy8g
Q2F0Y2ggcG9zc2libGUgYnVncyB3aXRoIFdlYlRWIGFuZCBvdGhlciBvbGRlciBicm93c2Vycwp2
YXIgaXNfcmVnZXhwID0gKHdpbmRvdy5SZWdFeHApID8gdHJ1ZSA6IGZhbHNlOwoKLy8gSXMgdGhl
IHZpc2l0aW5nIGJyb3dzZXIgY29tcGF0aWJsZSB3aXRoIEFKQVg/CnZhciBBSkFYX0NvbXBhdGli
bGUgPSBmYWxzZTsKCi8vIEhlbHAgb3V0IG9sZCB2ZXJzaW9ucyBvZiBJRSB0aGF0IGRvbid0IHVu
ZGVyc3RhbmQgZWxlbWVudC5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcicKdmFyIHBvaW50ZXJfY3Vy
c29yID0gKGlzX2llID8gJ2hhbmQnIDogJ3BvaW50ZXInKTsKCi8qKgoqIFdvcmthcm91bmQgZm9y
IGhlaW5vdXMgSUUgYnVnIC0gYWRkIHNwZWNpYWwgdkJsZW5ndGggcHJvcGVydHkgdG8gYWxsIHN0
cmluZ3MKKiBUaGlzIG1ldGhvZCBpcyBhcHBsaWVkIHRvIEFMTCBzdHJpbmcgb2JqZWN0cyBhdXRv
bWF0aWNhbGx5CioKKiBAcmV0dXJuCWludGVnZXIKKi8KU3RyaW5nLnByb3RvdHlwZS52Qmxlbmd0
aCA9IGZ1bmN0aW9uKCkKewoJcmV0dXJuIChpc19pZSAmJiB0aGlzLmluZGV4T2YoJ1xuJykgIT0g
LTEpID8gdGhpcy5yZXBsYWNlKC9ccj9cbi9nLCAnXycpLmxlbmd0aCA6IHRoaXMubGVuZ3RoOwp9
CgovKioKKiBQb3AgZnVuY3Rpb24gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3QgaGF2ZSBpdCBidWls
dCBpbgoqCiogQHBhcmFtCWFycmF5CUFycmF5IGZyb20gd2hpY2ggdG8gcG9wCioKKiBAcmV0dXJu
CW1peGVkCW51bGwgb24gZW1wdHksIHZhbHVlIG9uIHN1Y2Nlc3MKKi8KZnVuY3Rpb24gYXJyYXlf
cG9wKGEpCnsKCWlmICh0eXBlb2YgYSAhPSAnb2JqZWN0JyB8fCAhYS5sZW5ndGgpCgl7CgkJcmV0
dXJuIG51bGw7Cgl9CgllbHNlCgl7CgkJdmFyIHJlc3BvbnNlID0gYVthLmxlbmd0aCAtIDFdOwoJ
CWEubGVuZ3RoLS07CgkJcmV0dXJuIHJlc3BvbnNlOwoJfQp9CgovKioKKiBQdXNoIGZ1bmN0aW9u
IGZvciBicm93c2VycyB0aGF0IGRvbid0IGhhdmUgaXQgYnVpbHQgaW4KKgoqIEBwYXJhbQlhcnJh
eQlBcnJheSBvbnRvIHdoaWNoIHRvIHB1c2gKKiBAcGFyYW0JbWl4ZWQJVmFsdWUgdG8gcHVzaCBv
bnRvIGFycmF5CioKKiBAcmV0dXJuCWludGVnZXIJTGVuZ3RoIG9mIGFycmF5CiovCmZ1bmN0aW9u
IGFycmF5X3B1c2goYSwgdmFsdWUpCnsKCWFbYS5sZW5ndGhdID0gdmFsdWU7CglyZXR1cm4gYS5s
ZW5ndGg7Cn0KCi8qKgoqIEZ1bmN0aW9uIHRvIGVtdWxhdGUgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQKKgoqIEBwYXJhbQlzdHJpbmcJT2JqZWN0IElECioKKiBAcmV0dXJuCW1peGVkCW51bGwgaWYg
bm90IGZvdW5kLCBvYmplY3QgaWYgZm91bmQKKi8KZnVuY3Rpb24gZmV0Y2hfb2JqZWN0KGlkbmFt
ZSkKewoJaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKQoJewoJCXJldHVybiBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZG5hbWUpOwoJfQoJZWxzZSBpZiAoZG9jdW1lbnQuYWxsKQoJewoJCXJl
dHVybiBkb2N1bWVudC5hbGxbaWRuYW1lXTsKCX0KCWVsc2UgaWYgKGRvY3VtZW50LmxheWVycykK
CXsKCQlyZXR1cm4gZG9jdW1lbnQubGF5ZXJzW2lkbmFtZV07Cgl9CgllbHNlCgl7CgkJcmV0dXJu
IG51bGw7Cgl9Cn0KCi8qKgoqIEZ1bmN0aW9uIHRvIGVtdWxhdGUgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUKKgoqIEBwYXJhbQlvYmplY3QJUGFyZW50IHRhZyAoZWc6IGRvY3VtZW50KQoq
IEBwYXJhbQlzdHJpbmcJVGFnIHR5cGUgKGVnOiAndGQnKQoqCiogQHJldHVybglhcnJheQoqLwpm
dW5jdGlvbiBmZXRjaF90YWdzKHBhcmVudG9iaiwgdGFnKQp7CglpZiAodHlwZW9mIHBhcmVudG9i
ai5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPSAndW5kZWZpbmVkJykKCXsKCQlyZXR1cm4gcGFyZW50
b2JqLmdldEVsZW1lbnRzQnlUYWdOYW1lKHRhZyk7Cgl9CgllbHNlIGlmIChwYXJlbnRvYmouYWxs
ICYmIHBhcmVudG9iai5hbGwudGFncykKCXsKCQlyZXR1cm4gcGFyZW50b2JqLmFsbC50YWdzKHRh
Zyk7Cgl9CgllbHNlCgl7CgkJcmV0dXJuIG51bGw7Cgl9Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCi8vIEV2ZW50IGhhbmRsZXJzCgovKioKKiBIYW5kbGVzIHRoZSBkaWZmZXJlbnQgZXZlbnQg
bW9kZWxzIG9mIGRpZmZlcmVudCBicm93c2VycyBhbmQgcHJldmVudHMgZXZlbnQgYnViYmxpbmcK
KgoqIEBwYXJhbQlldmVudAlFdmVudCBvYmplY3QKKgoqIEByZXR1cm4JZXZlbnQKKi8KZnVuY3Rp
b24gZG9fYW5fZShldmVudG9iaikKewoJaWYgKCFldmVudG9iaiB8fCBpc19pZSkKCXsKCQl3aW5k
b3cuZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTsKCQl3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxl
ID0gdHJ1ZTsKCQlyZXR1cm4gd2luZG93LmV2ZW50OwoJfQoJZWxzZQoJewoJCWV2ZW50b2JqLnN0
b3BQcm9wYWdhdGlvbigpOwoJCWV2ZW50b2JqLnByZXZlbnREZWZhdWx0KCk7CgkJcmV0dXJuIGV2
ZW50b2JqOwoJfQp9CgovKioKKiBIYW5kbGVzIHRoZSBkaWZmZXJlbnQgZXZlbnQgbW9kZWxzIG9m
IGRpZmZlcmVudCBicm93c2VycyBhbmQgcHJldmVudHMgZXZlbnQgYnViYmxpbmcgaW4gYSBsZXNz
ZXIgd2F5IHRoYW4gZG9fYW5fZSgpCioKKiBAcGFyYW0JZXZlbnQJRXZlbnQgb2JqZWN0CioKKiBA
cmV0dXJuCWV2ZW50CiovCmZ1bmN0aW9uIGVfYnlfZ3VtKGV2ZW50b2JqKQp7CglpZiAoIWV2ZW50
b2JqIHx8IGlzX2llKQoJewoJCXdpbmRvdy5ldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlOwoJCXJl
dHVybiB3aW5kb3cuZXZlbnQ7Cgl9CgllbHNlCgl7CgkJaWYgKGV2ZW50b2JqLnRhcmdldC50eXBl
ID09ICdzdWJtaXQnKQoJCXsKCQkJLy8gbmF1Z2h0eSBzYWZhcmkKCQkJZXZlbnRvYmoudGFyZ2V0
LmZvcm0uc3VibWl0KCk7CgkJfQoJCWV2ZW50b2JqLnN0b3BQcm9wYWdhdGlvbigpOwoJCXJldHVy
biBldmVudG9iajsKCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gTWVzc2FnZSBtYW5p
cHVsYXRpb24gYW5kIHZhbGlkYXRpb24KCi8qKgoqIENoZWNrcyB0aGF0IGEgbWVzc2FnZSBpcyB2
YWxpZCBmb3Igc3VibWlzc2lvbiB0byBQSFAKKgoqIEBwYXJhbQlzdHJpbmcJTWVzc2FnZSB0ZXh0
CiogQHBhcmFtCW1peGVkCUVpdGhlciBzdWJqZWN0IHRleHQgKGlmIHlvdSB3YW50IHRvIG1ha2Ug
c3VyZSBpdCBleGlzdHMpIG9yIDAgaWYgeW91IGRvbid0IGNhcmUKKiBAcGFyYW0JaW50ZWdlcglN
aW5pbXVtIGFjY2VwdGFibGUgY2hhcmFjdGVyIGxpbWl0IGZvciB0aGUgbWVzc2FnZQoqCiogQHJl
dHVybglib29sZWFuCiovCmZ1bmN0aW9uIHZhbGlkYXRlbWVzc2FnZShtZXNzYWdldGV4dCwgc3Vi
amVjdHRleHQsIG1pbmNoYXJzKQp7CglpZiAoaXNfa29uIHx8IGlzX3NhZiB8fCBpc193ZWJ0dikK
CXsKCQkvLyBpZ25vcmUgbGVzcy10aGFuLWNhcGFibGUgYnJvd3NlcnMKCQlyZXR1cm4gdHJ1ZTsK
CX0KCWVsc2UgaWYgKHN1YmplY3R0ZXh0Lmxlbmd0aCA8IDEpCgl7CgkJLy8gc3ViamVjdCBub3Qg
c3BlY2lmaWVkCgkJYWxlcnQodmJwaHJhc2VbJ211c3RfZW50ZXJfc3ViamVjdCddKTsKCQlyZXR1
cm4gZmFsc2U7Cgl9CgllbHNlCgl7CgkJdmFyIHN0cmlwcGVkID0gUEhQLnRyaW0oc3RyaXBjb2Rl
KG1lc3NhZ2V0ZXh0LCBmYWxzZSwgaWdub3JlcXVvdGVjaGFycykpOwoKCQlpZiAoc3RyaXBwZWQu
bGVuZ3RoIDwgbWluY2hhcnMpCgkJewoJCQkvLyBtaW5pbXVtIG1lc3NhZ2UgbGVuZ3RoIG5vdCBt
ZXQKCQkJYWxlcnQoY29uc3RydWN0X3BocmFzZSh2YnBocmFzZVsnbWVzc2FnZV90b29fc2hvcnQn
XSwgbWluY2hhcnMpKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQllbHNlCgkJewoJCQkvLyBldmVy
eXRoaW5nIHNlZW1zIG9rCgkJCXJldHVybiB0cnVlOwoJCX0KCX0KfQoKLyoqCiogU3RyaXBzIHF1
b3RlcyBhbmQgYmJjb2RlIHRhZ3MgZnJvbSB0ZXh0CioKKiBAcGFyYW0Jc3RyaW5nCVRleHQgdG8g
bWFuaXB1bGF0ZQoqIEBwYXJhbQlib29sZWFuCUlmIHRydWUsIHN0cmlwIDx4PiBvdGhlcndpc2Ug
c3RyaXAgW3hdCiogQHBhcmFtCWJvb2xlYW4JSWYgdHJ1ZSwgc3RyaXAgYWxsIFtxdW90ZV0uLi5j
b250ZW50cy4uLlsvcXVvdGVdCioKKiBAcmV0dXJuCXN0cmluZwoqLwpmdW5jdGlvbiBzdHJpcGNv
ZGUoc3RyLCBpc2h0bWwsIHN0cmlwcXVvdGVzKQp7CglpZiAoIWlzX3JlZ2V4cCkKCXsKCQlyZXR1
cm4gc3RyOwoJfQoKCWlmIChzdHJpcHF1b3RlcykKCXsKCQl2YXIgc3RhcnRfdGltZSA9IG5ldyBE
YXRlKCkuZ2V0VGltZSgpOwoKCQl3aGlsZSAoKHN0YXJ0aW5kZXggPSBQSFAuc3RyaXBvcyhzdHIs
ICdbcXVvdGUnKSkgIT09IGZhbHNlKQoJCXsKCQkJaWYgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0g
c3RhcnRfdGltZSA+IDIwMDApCgkJCXsKCQkJCS8vIHdoaWxlIGxvb3AgaGFzIGJlZW4gcnVubmlu
ZyBmb3Igb3ZlciAyIHNlY29uZHMgYW5kIGhhcyBwcm9iYWJseSBnb25lIGluZmluaXRlCgkJCQli
cmVhazsKCQkJfQoKCQkJaWYgKChzdG9waW5kZXggPSBQSFAuc3RyaXBvcyhzdHIsICdbL3F1b3Rl
XScpKSAhPT0gZmFsc2UpCgkJCXsKCQkJCWZyYWdtZW50ID0gc3RyLnN1YnN0cihzdGFydGluZGV4
LCBzdG9waW5kZXggLSBzdGFydGluZGV4ICsgOCk7CgkJCQlzdHIgPSBzdHIucmVwbGFjZShmcmFn
bWVudCwgJycpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJYnJlYWs7CgkJCX0KCQkJc3RyID0gUEhQ
LnRyaW0oc3RyKTsKCQl9Cgl9CgoJaWYgKGlzaHRtbCkKCXsKCQkvLyBleGVtcHQgaW1hZ2UgdGFn
cyAtLSB0aGV5IG5lZWQgdG8gY291bnQgYXMgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nCgkJLy8g
YXMgdGhlIGRvIGFzIEJCIGNvZGVzCgkJc3RyID0gc3RyLnJlcGxhY2UoLzxpbWdbXj5dK3NyYz0i
KFteIl0rKSJbXj5dKj4vZ2ksICckMScpOwoKCQl2YXIgaHRtbDEgPSBuZXcgUmVnRXhwKCI8KFxc
dyspW14+XSo+IiwgJ2dpJyk7CgkJdmFyIGh0bWwyID0gbmV3IFJlZ0V4cCgiPFxcL1xcdys+Iiwg
J2dpJyk7CgoJCXN0ciA9IHN0ci5yZXBsYWNlKGh0bWwxLCAnJyk7CgkJc3RyID0gc3RyLnJlcGxh
Y2UoaHRtbDIsICcnKTsKCgkJdmFyIGh0bWwzID0gbmV3IFJlZ0V4cCgnKCZuYnNwOyknLCAnZ2kn
KTsKCQlzdHIgPSBzdHIucmVwbGFjZShodG1sMywgJyAnKTsKCX0KCWVsc2UKCXsKCQl2YXIgYmJj
b2RlMSA9IG5ldyBSZWdFeHAoIlxcWyhcXHcrKVteXFxdXSpcXF0iLCAnZ2knKTsKCQl2YXIgYmJj
b2RlMiA9IG5ldyBSZWdFeHAoIlxcW1xcLyhcXHcrKVxcXSIsICdnaScpOwoKCQlzdHIgPSBzdHIu
cmVwbGFjZShiYmNvZGUxLCAnJyk7CgkJc3RyID0gc3RyLnJlcGxhY2UoYmJjb2RlMiwgJycpOwoJ
fQoKCXJldHVybiBzdHI7Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIHZCX1BIUF9FbXVs
YXRvciBjbGFzcwovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKLyoqCiogUEhQIEZ1bmN0aW9uIEVt
dWxhdG9yIENsYXNzCiovCmZ1bmN0aW9uIHZCX1BIUF9FbXVsYXRvcigpCnsKfQoKLy8gPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLy8gdkJfUEhQX0VtdWxhdG9yIE1ldGhvZHMKCi8qKgoqIEZpbmQgYSBz
dHJpbmcgd2l0aGluIGEgc3RyaW5nIChjYXNlIGluc2Vuc2l0aXZlKQoqCiogQHBhcmFtCXN0cmlu
ZwlIYXlzdGFjawoqIEBwYXJhbQlzdHJpbmcJTmVlZGxlCiogQHBhcmFtCWludGVnZXIJT2Zmc2V0
CioKKiBAcmV0dXJuCW1peGVkCU5vdCBmb3VuZDogZmFsc2UgLyBGb3VuZDogaW50ZWdlciBwb3Np
dGlvbgoqLwp2Ql9QSFBfRW11bGF0b3IucHJvdG90eXBlLnN0cmlwb3MgPSBmdW5jdGlvbihoYXlz
dGFjaywgbmVlZGxlLCBvZmZzZXQpCnsKCWlmICh0eXBlb2Ygb2Zmc2V0ID09ICd1bmRlZmluZWQn
KQoJewoJCW9mZnNldCA9IDA7Cgl9CgoJaW5kZXggPSBoYXlzdGFjay50b0xvd2VyQ2FzZSgpLmlu
ZGV4T2YobmVlZGxlLnRvTG93ZXJDYXNlKCksIG9mZnNldCk7CgoJcmV0dXJuIChpbmRleCA9PSAt
MSA/IGZhbHNlIDogaW5kZXgpOwp9CgovKioKKiBUcmltcyBsZWFkaW5nIHdoaXRlc3BhY2UKKgoq
IEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIHRyaW0KKgoqIEByZXR1cm4Jc3RyaW5nCiovCnZCX1BI
UF9FbXVsYXRvci5wcm90b3R5cGUubHRyaW0gPSBmdW5jdGlvbihzdHIpCnsKCXJldHVybiBzdHIu
cmVwbGFjZSgvXlxzKy9nLCAnJyk7Cn0KCi8qKgoqIFRyaW1zIHRyYWlsaW5nIHdoaXRlc3BhY2UK
KgoqIEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIHRyaW0KKgoqIEByZXR1cm4Jc3RyaW5nCiovCnZC
X1BIUF9FbXVsYXRvci5wcm90b3R5cGUucnRyaW0gPSBmdW5jdGlvbihzdHIpCnsKCXJldHVybiBz
dHIucmVwbGFjZSgvKFxzKykkL2csICcnKTsKfQoKLyoqCiogVHJpbXMgbGVhZGluZyBhbmQgdHJh
aWxpbmcgd2hpdGVzcGFjZQoqCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gdHJpbQoqCiogQHJl
dHVybglzdHJpbmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS50cmltID0gZnVuY3Rpb24o
c3RyKQp7CglyZXR1cm4gdGhpcy5sdHJpbSh0aGlzLnJ0cmltKHN0cikpOwp9CgovKioKKiBFbXVs
YXRpb24gb2YgUEhQJ3MgcHJlZ19xdW90ZSgpCioKKiBAcGFyYW0Jc3RyaW5nCVN0cmluZyB0byBw
cm9jZXNzCioKKiBAcmV0dXJuCXN0cmluZwoqLwp2Ql9QSFBfRW11bGF0b3IucHJvdG90eXBlLnBy
ZWdfcXVvdGUgPSBmdW5jdGlvbihzdHIpCnsKCS8vIHJlcGxhY2UgKyB7IH0gKCApIFsgXSB8IC8g
PyBeICQgXCAuID0gISA8ID4gOiAqIHdpdGggYmFja3NsYXNoK2NoYXJhY3RlcgoJcmV0dXJuIHN0
ci5yZXBsYWNlKC8oXCt8XHt8XH18XCh8XCl8XFt8XF18XHx8XC98XD98XF58XCR8XFx8XC58XD18
XCF8XDx8XD58XDp8XCopL2csICJcXCQxIik7Cn0KCi8qKgoqIEVtdWxhdGVzIHVuaHRtbHNwZWNp
YWxjaGFycyBpbiB2QnVsbGV0aW4KKgoqIEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIHByb2Nlc3MK
KgoqIEByZXR1cm4Jc3RyaW5nCiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUudW5odG1sc3Bl
Y2lhbGNoYXJzID0gZnVuY3Rpb24oc3RyKQp7CglmID0gbmV3IEFycmF5KC8mbHQ7L2csIC8mZ3Q7
L2csIC8mcXVvdDsvZywgLyZhbXA7L2cpOwoJciA9IG5ldyBBcnJheSgnPCcsICc+JywgJyInLCAn
JicpOwoKCWZvciAodmFyIGkgaW4gZikKCXsKCQlzdHIgPSBzdHIucmVwbGFjZShmW2ldLCByW2ld
KTsKCX0KCglyZXR1cm4gc3RyOwp9CgovKioKKiBFbXVsYXRlcyBQSFAncyBodG1sc3BlY2lhbGNo
YXJzKCkKKgoqIEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIHByb2Nlc3MKKgoqIEByZXR1cm4Jc3Ry
aW5nCiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUuaHRtbHNwZWNpYWxjaGFycyA9IGZ1bmN0
aW9uKHN0cikKewoJLy92YXIgZiA9IG5ldyBBcnJheSgvJig/ISNbMC05XSs7KS9nLCAvPC9nLCAv
Pi9nLCAvIi9nKTsKCXZhciBmID0gbmV3IEFycmF5KAoJCShpc19tYWMgJiYgaXNfaWUgPyBuZXcg
UmVnRXhwKCcmJywgJ2cnKSA6IG5ldyBSZWdFeHAoJyYoPyEjWzAtOV0rOyknLCAnZycpKSwKCQlu
ZXcgUmVnRXhwKCc8JywgJ2cnKSwKCQluZXcgUmVnRXhwKCc+JywgJ2cnKSwKCQluZXcgUmVnRXhw
KCciJywgJ2cnKQoJKTsKCXZhciByID0gbmV3IEFycmF5KAoJCScmYW1wOycsCgkJJyZsdDsnLAoJ
CScmZ3Q7JywKCQknJnF1b3Q7JwoJKTsKCglmb3IgKHZhciBpID0gMDsgaSA8IGYubGVuZ3RoOyBp
KyspCgl7CgkJc3RyID0gc3RyLnJlcGxhY2UoZltpXSwgcltpXSk7Cgl9CgoJcmV0dXJuIHN0cjsK
fQoKLyoqCiogU2VhcmNoZXMgYW4gYXJyYXkgZm9yIGEgdmFsdWUKKgoqIEBwYXJhbQlzdHJpbmcJ
TmVlZGxlCiogQHBhcmFtCWFycmF5CUhheXN0YWNrCiogQHBhcmFtCWJvb2xlYW4JQ2FzZSBpbnNl
bnNpdGl2ZQoqCiogQHJldHVybglpbnRlZ2VyCU5vdCBmb3VuZDogLTEgLyBGb3VuZDogaW50ZWdl
ciBpbmRleAoqLwp2Ql9QSFBfRW11bGF0b3IucHJvdG90eXBlLmluX2FycmF5ID0gZnVuY3Rpb24o
aW5lZWRsZSwgaGF5c3RhY2ssIGNhc2VpbnNlbnNpdGl2ZSkKewoJdmFyIG5lZWRsZSA9IG5ldyBT
dHJpbmcoaW5lZWRsZSk7CgoJaWYgKGNhc2VpbnNlbnNpdGl2ZSkKCXsKCQluZWVkbGUgPSBuZWVk
bGUudG9Mb3dlckNhc2UoKTsKCQlmb3IgKHZhciBpIGluIGhheXN0YWNrKQoJCXsKCQkJaWYgKGhh
eXN0YWNrW2ldLnRvTG93ZXJDYXNlKCkgPT0gbmVlZGxlKQoJCQl7CgkJCQlyZXR1cm4gaTsKCQkJ
fQoJCX0KCX0KCWVsc2UKCXsKCQlmb3IgKHZhciBpIGluIGhheXN0YWNrKQoJCXsKCQkJaWYgKGhh
eXN0YWNrW2ldID09IG5lZWRsZSkKCQkJewoJCQkJcmV0dXJuIGk7CgkJCX0KCQl9Cgl9CglyZXR1
cm4gLTE7Cn0KCi8qKgoqIEVtdWxhdGVzIFBIUCdzIHN0cnBhZCgpCioKKiBAcGFyYW0Jc3RyaW5n
CVRleHQgdG8gcGFkCiogQHBhcmFtCWludGVnZXIJTGVuZ3RoIHRvIHBhZAoqIEBwYXJhbQlzdHJp
bmcJU3RyaW5nIHdpdGggd2hpY2ggdG8gcGFkCioKKiBAcmV0dXJuCXN0cmluZwoqLwp2Ql9QSFBf
RW11bGF0b3IucHJvdG90eXBlLnN0cl9wYWQgPSBmdW5jdGlvbih0ZXh0LCBsZW5ndGgsIHBhZHN0
cmluZykKewoJdGV4dCA9IG5ldyBTdHJpbmcodGV4dCk7CglwYWRzdHJpbmcgPSBuZXcgU3RyaW5n
KHBhZHN0cmluZyk7CgoJaWYgKHRleHQubGVuZ3RoIDwgbGVuZ3RoKQoJewoJCXBhZHRleHQgPSBu
ZXcgU3RyaW5nKHBhZHN0cmluZyk7CgoJCXdoaWxlIChwYWR0ZXh0Lmxlbmd0aCA8IChsZW5ndGgg
LSB0ZXh0Lmxlbmd0aCkpCgkJewoJCQlwYWR0ZXh0ICs9IHBhZHN0cmluZzsKCQl9CgoJCXRleHQg
PSBwYWR0ZXh0LnN1YnN0cigwLCAobGVuZ3RoIC0gdGV4dC5sZW5ndGgpKSArIHRleHQ7Cgl9CgoJ
cmV0dXJuIHRleHQ7Cn0KCi8qKgoqIEEgc29ydCBvZiBlbXVsYXRpb24gb2YgUEhQJ3MgdXJsZW5j
b2RlIC0gbm90IDEwMCUgdGhlIHNhbWUsIGJ1dCBhY2NvbXBsaXNoZXMgdGhlIHNhbWUgdGhpbmcK
KgoqIEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIGVuY29kZQoqCiogQHJldHVybglzdHJpbmcKKi8K
dkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS51cmxlbmNvZGUgPSBmdW5jdGlvbih0ZXh0KQp7Cgl0
ZXh0ID0gdGV4dC50b1N0cmluZygpOwoKCS8vIHRoaXMgZXNjYXBlcyAxMjggLSAyNTUsIGFzIEpT
IHVzZXMgdGhlIHVuaWNvZGUgY29kZSBwb2ludHMgZm9yIHRoZW0uCgkvLyBUaGlzIGNhdXNlcyBw
cm9ibGVtcyB3aXRoIHN1Ym1pdHRpbmcgdGV4dCB2aWEgQUpBWCB3aXRoIHRoZSBVVEYtOCBjaGFy
c2V0LgoJdmFyIG1hdGNoZXMgPSB0ZXh0Lm1hdGNoKC9bXHg5MC1ceEZGXS9nKTsKCWlmIChtYXRj
aGVzKQoJewoJCWZvciAodmFyIG1hdGNoaWQgPSAwOyBtYXRjaGlkIDwgbWF0Y2hlcy5sZW5ndGg7
IG1hdGNoaWQrKykKCQl7CgkJCXZhciBjaGFyX2NvZGUgPSBtYXRjaGVzW21hdGNoaWRdLmNoYXJD
b2RlQXQoMCk7CgkJCXRleHQgPSB0ZXh0LnJlcGxhY2UobWF0Y2hlc1ttYXRjaGlkXSwgJyV1MDAn
ICsgKGNoYXJfY29kZSAmIDB4RkYpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKTsKCQl9Cgl9
CgoJcmV0dXJuIGVzY2FwZSh0ZXh0KS5yZXBsYWNlKC9cKy9nLCAiJTJCIik7Cn0KCi8qKgoqIFdv
cmtzIGEgYml0IGxpa2UgdWNmaXJzdCwgYnV0IHdpdGggc29tZSBleHRyYSBvcHRpb25zCioKKiBA
cGFyYW0Jc3RyaW5nCVN0cmluZyB3aXRoIHdoaWNoIHRvIHdvcmsKKiBAcGFyYW0Jc3RyaW5nCUN1
dCBvZmYgc3RyaW5nIGJlZm9yZSBmaXJzdCBvY2N1cmVuY2Ugb2YgdGhpcyBzdHJpbmcKKgoqIEBy
ZXR1cm4Jc3RyaW5nCiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUudWNmaXJzdCA9IGZ1bmN0
aW9uKHN0ciwgY3V0b2ZmKQp7CglpZiAodHlwZW9mIGN1dG9mZiAhPSAndW5kZWZpbmVkJykKCXsK
CQl2YXIgY3V0cG9zID0gc3RyLmluZGV4T2YoY3V0b2ZmKTsKCQlpZiAoY3V0cG9zID4gMCkKCQl7
CgkJCXN0ciA9IHN0ci5zdWJzdHIoMCwgY3V0cG9zKTsKCQl9Cgl9CgoJc3RyID0gc3RyLnNwbGl0
KCcgJyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykKCXsKCQlzdHJbaV0g
PSBzdHJbaV0uc3Vic3RyKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHJbaV0uc3Vic3RyKDEpOwoJ
fQoJcmV0dXJuIHN0ci5qb2luKCcgJyk7Cn0KCi8vIGluaXRpYWxpemUgdGhlIFBIUCBlbXVsYXRv
cgp2YXIgUEhQID0gbmV3IHZCX1BIUF9FbXVsYXRvcigpOwoKLy8gIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKLy8gdkJfQUpBWF9IYW5kbGVyCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovKioKKiBYTUwg
U2VuZGVyIENsYXNzCioKKiBAcGFyYW0JYm9vbGVhbglTaG91bGQgY29ubmVjdGlvbnMgYmUgYXN5
bmNyb25vdXM/CiovCmZ1bmN0aW9uIHZCX0FKQVhfSGFuZGxlcihhc3luYykKewoJLyoqCgkqIFNo
b3VsZCBjb25uZWN0aW9ucyBiZSBhc3luY2hyb25vdXM/CgkqCgkqIEB2YXIJYm9vbGVhbgoJKi8K
CXRoaXMuYXN5bmMgPSBhc3luYyA/IHRydWUgOiBmYWxzZTsKfQoKLy8gPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLy8gdkJfQUpBWF9IYW5kbGVyIG1ldGhvZHMKCi8qKgoqIEluaXRpYWxpemVzIHRoZSBY
TUwgaGFuZGxlcgoqCiogQHJldHVybglib29sZWFuCVRydWUgaWYgaGFuZGxlciBjcmVhdGVkIE9L
CiovCnZCX0FKQVhfSGFuZGxlci5wcm90b3R5cGUuaW5pdCA9IGZ1bmN0aW9uKCkKewoJaWYgKHR5
cGVvZiB2Yl9kaXNhYmxlX2FqYXggIT0gJ3VuZGVmaW5lZCcgJiYgdmJfZGlzYWJsZV9hamF4ID09
IDIpCgl7CgkJLy8gZGlzYWJsZSBhbGwgYWpheCBmZWF0dXJlcwoJCXJldHVybiBmYWxzZTsKCX0K
Cgl0cnkKCXsKCQl0aGlzLmhhbmRsZXIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKCQlyZXR1cm4g
KHRoaXMuaGFuZGxlci5zZXRSZXF1ZXN0SGVhZGVyID8gdHJ1ZSA6IGZhbHNlKTsKCX0KCWNhdGNo
KGUpCgl7CgkJdHJ5CgkJewoJCQl0aGlzLmhhbmRsZXIgPSBldmFsKCJuZXcgQSIgKyAiY3RpdiIg
KyAiZVgiICsgIk9iIiArICJqZWN0KCdNaWNyIiArICJvc29mdC5YTSIgKyAiTEhUVFAnKTsiKTsK
CQkJcmV0dXJuIHRydWU7CgkJfQoJCWNhdGNoKGUpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJ
fQp9CgovKioKKiBEZXRlY3RzIGlmIHRoZSBicm93c2VyIGlzIGZ1bGx5IGNvbXBhdGlibGUKKgoq
IEByZXR1cm4JYm9vbGVhbgoqLwp2Ql9BSkFYX0hhbmRsZXIucHJvdG90eXBlLmlzX2NvbXBhdGli
bGUgPSBmdW5jdGlvbigpCnsKCWlmICh0eXBlb2YgdmJfZGlzYWJsZV9hamF4ICE9ICd1bmRlZmlu
ZWQnICYmIHZiX2Rpc2FibGVfYWpheCA9PSAyKQoJewoJCS8vIGRpc2FibGUgYWxsIGFqYXggZmVh
dHVyZXMKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJaWYgKGlzX2llICYmICFpc19pZTQpIHsgcmV0dXJu
IHRydWU7IH0KCWVsc2UgaWYgKFhNTEh0dHBSZXF1ZXN0KQoJewoJCXRyeSB7IHJldHVybiBYTUxI
dHRwUmVxdWVzdC5wcm90b3R5cGUuc2V0UmVxdWVzdEhlYWRlciA/IHRydWUgOiBmYWxzZTsgfQoJ
CWNhdGNoKGUpCgkJewoJCQl0cnkgeyB2YXIgdGVzdGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
IHJldHVybiB0ZXN0ZXIuc2V0UmVxdWVzdEhlYWRlciA/IHRydWUgOiBmYWxzZTsgfQoJCQljYXRj
aChlKSB7IHJldHVybiBmYWxzZTsgfQoJCX0KCX0KCWVsc2UgeyByZXR1cm4gZmFsc2U7IH0KfQoK
LyoqCiogQ2hlY2tzIGlmIHRoZSBzeXN0ZW0gaXMgcmVhZHkKKgoqIEByZXR1cm4JYm9vbGVhbglG
YWxzZSBpZiByZWFkeQoqLwp2Ql9BSkFYX0hhbmRsZXIucHJvdG90eXBlLm5vdF9yZWFkeSA9IGZ1
bmN0aW9uKCkKewoJcmV0dXJuICh0aGlzLmhhbmRsZXIucmVhZHlTdGF0ZSAmJiAodGhpcy5oYW5k
bGVyLnJlYWR5U3RhdGUgPCA0KSk7Cn0KCi8qKgoqIE9uUmVhZHlTdGF0ZUNoYW5nZSBldmVudCBo
YW5kbGVyCioKKiBAcGFyYW0JZnVuY3Rpb24KKi8KdkJfQUpBWF9IYW5kbGVyLnByb3RvdHlwZS5v
bnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihldmVudCkKewoJaWYgKCF0aGlzLmhhbmRsZXIp
Cgl7CgkJaWYgICghdGhpcy5pbml0KCkpCgkJewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoJaWYg
KHR5cGVvZiBldmVudCA9PSAnZnVuY3Rpb24nKQoJewoJCXRoaXMuaGFuZGxlci5vbnJlYWR5c3Rh
dGVjaGFuZ2UgPSBldmVudDsKCX0KCWVsc2UKCXsKCQlhbGVydCgnWE1MIFNlbmRlciBPblJlYWR5
U3RhdGUgZXZlbnQgaXMgbm90IGEgZnVuY3Rpb24nKTsKCX0KfQoKLyoqCiogU2VuZHMgZGF0YQoq
CiogQHBhcmFtCXN0cmluZwlEZXN0aW5hdGlvbiBVUkwKKiBAcGFyYW0Jc3RyaW5nCVJlcXVlc3Qg
RGF0YQoqCiogQHJldHVybgltaXhlZAlSZXR1cm4gbWVzc2FnZQoqLwp2Ql9BSkFYX0hhbmRsZXIu
cHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbihkZXN0dXJsLCBkYXRhc3RyZWFtKQp7CglpZiAoIXRo
aXMuaGFuZGxlcikKCXsKCQlpZiAoIXRoaXMuaW5pdCgpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJ
CX0KCX0KCWlmICghdGhpcy5ub3RfcmVhZHkoKSkKCXsKCQl0aGlzLmhhbmRsZXIub3BlbignUE9T
VCcsIGRlc3R1cmwsIHRoaXMuYXN5bmMpOwoJCXRoaXMuaGFuZGxlci5zZXRSZXF1ZXN0SGVhZGVy
KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7CgkJ
dGhpcy5oYW5kbGVyLnNlbmQoZGF0YXN0cmVhbSArICcmcz0nICsgZmV0Y2hfc2Vzc2lvbmhhc2go
KSk7CgoJCWlmICghdGhpcy5hc3luYyAmJiB0aGlzLmhhbmRsZXIucmVhZHlTdGF0ZSA9PSA0ICYm
IHRoaXMuaGFuZGxlci5zdGF0dXMgPT0gMjAwKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQoJ
cmV0dXJuIGZhbHNlOwp9CgovLyB3ZSBjYW4gY2hlY2sgdGhpcyB2YXJpYWJsZSB0byBzZWUgaWYg
YnJvd3NlciBpcyBBSkFYIGNvbXBhdGlibGUKdmFyIEFKQVhfQ29tcGF0aWJsZSA9IHZCX0FKQVhf
SGFuZGxlci5wcm90b3R5cGUuaXNfY29tcGF0aWJsZSgpOwoKLy8gIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKLy8gdkJfSGlkZGVuX0Zvcm0KLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8qKgoqIEZvcm0g
R2VuZXJhdG9yIENsYXNzCioKKiBCdWlsZHMgYSBmb3JtIGZpbGxlZCB3aXRoIGhpZGRlbiBmaWVs
ZHMgZm9yIGludmlzaWJsZSBzdWJtaXQgdmlhIFBPU1QKKgoqIEBwYXJhbQlzdHJpbmcJU2NyaXB0
IChteV90YXJnZXRfc2NyaXB0LnBocCkKKi8KZnVuY3Rpb24gdkJfSGlkZGVuX0Zvcm0oc2NyaXB0
KQp7Cgl0aGlzLmZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Cgl0aGlzLmZv
cm0ubWV0aG9kID0gJ3Bvc3QnOwoJdGhpcy5mb3JtLmFjdGlvbiA9IHNjcmlwdDsKfQoKLy8gPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLy8gdkJfSGlkZGVuX0Zvcm0gbWV0aG9kcwoKLyoqCiogQWRkcyBh
IGhpZGRlbiBpbnB1dCBmaWVsZCB0byB0aGUgZm9ybSBvYmplY3QKKgoqIEBwYXJhbQlzdHJpbmcJ
TmFtZSBhdHRyaWJ1dGUKKiBAcGFyYW0Jc3RyaW5nCVZhbHVlIGF0dHJpYnV0ZQoqLwp2Ql9IaWRk
ZW5fRm9ybS5wcm90b3R5cGUuYWRkX2lucHV0ID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpCnsKCXZh
ciBpbnB1dG9iaiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CgoJaW5wdXRvYmou
dHlwZSA9ICdoaWRkZW4nOwoJaW5wdXRvYmoubmFtZSA9IG5hbWU7CglpbnB1dG9iai52YWx1ZSA9
IHZhbHVlOwoKCXRoaXMuZm9ybS5hcHBlbmRDaGlsZChpbnB1dG9iaik7Cn07CgovKioKKiBGZXRj
aGVzIGFsbCBmb3JtIGVsZW1lbnRzIGluc2lkZSBhbiBIVE1MIGVsZW1lbnQgYW5kIHBlcmZvcm1z
ICdhZGRfaW5wdXQoKScgb24gdGhlbQoqCiogQHBhcmFtCW9iamVjdAlIVE1MIGVsZW1lbnQgdG8g
c2VhcmNoCiovCnZCX0hpZGRlbl9Gb3JtLnByb3RvdHlwZS5hZGRfaW5wdXRzX2Zyb21fb2JqZWN0
ID0gZnVuY3Rpb24ob2JqKQp7Cgl2YXIgaW5wdXRzID0gZmV0Y2hfdGFncyhvYmosICdpbnB1dCcp
OwoJZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspCgl7CgkJc3dpdGNoIChp
bnB1dHNbaV0udHlwZSkKCQl7CgkJCWNhc2UgJ2NoZWNrYm94JzoKCQkJY2FzZSAncmFkaW8nOgoJ
CQkJaWYgKGlucHV0c1tpXS5jaGVja2VkKQoJCQkJewoJCQkJCXRoaXMuYWRkX2lucHV0KGlucHV0
c1tpXS5uYW1lLCBpbnB1dHNbaV0udmFsdWUpOwoJCQkJfQoJCQkJYnJlYWs7CgkJCWNhc2UgJ3Rl
eHQnOgoJCQljYXNlICdoaWRkZW4nOgoJCQljYXNlICdwYXNzd29yZCc6CgkJCQl0aGlzLmFkZF9p
bnB1dChpbnB1dHNbaV0ubmFtZSwgaW5wdXRzW2ldLnZhbHVlKTsKCQkJCWJyZWFrOwoJCQlkZWZh
dWx0OgoJCQkJY29udGludWU7CgkJfQoJfQoKCXZhciB0ZXh0YXJlYXMgPSBmZXRjaF90YWdzKG9i
aiwgJ3RleHRhcmVhJyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IHRleHRhcmVhcy5sZW5ndGg7IGkr
KykKCXsKCQl0aGlzLmFkZF9pbnB1dCh0ZXh0YXJlYXNbaV0ubmFtZSwgdGV4dGFyZWFzW2ldLnZh
bHVlKTsKCX0KCgl2YXIgc2VsZWN0cyA9IGZldGNoX3RhZ3Mob2JqLCAnc2VsZWN0Jyk7Cglmb3Ig
KHZhciBpID0gMDsgaSA8IHNlbGVjdHMubGVuZ3RoOyBpKyspCgl7CgkJaWYgKHNlbGVjdHNbaV0u
bXVsdGlwbGUpCgkJewoJCQlmb3IgKHZhciBqID0gMDsgaiA8IHNlbGVjdHNbaV0ub3B0aW9ucy5s
ZW5ndGg7IGorKykKCQkJewoJCQkJaWYgKHNlbGVjdHNbaV0ub3B0aW9uc1tqXS5zZWxlY3RlZCkK
CQkJCXsKCQkJCQl0aGlzLmFkZF9pbnB1dChzZWxlY3RzW2ldLm5hbWUsIHNlbGVjdHNbaV0ub3B0
aW9uc1tqXS52YWx1ZSk7CgkJCQl9CgkJCX0KCQl9CgkJZWxzZQoJCXsKCQkJdGhpcy5hZGRfaW5w
dXQoc2VsZWN0c1tpXS5uYW1lLCBzZWxlY3RzW2ldLm9wdGlvbnNbc2VsZWN0c1tpXS5zZWxlY3Rl
ZEluZGV4XS52YWx1ZSk7CgkJfQoJfQp9CgovKioKKiBTdWJtaXRzIHRoZSBoaWRkZW4gZm9ybSBv
YmplY3QKKi8KdkJfSGlkZGVuX0Zvcm0ucHJvdG90eXBlLnN1Ym1pdF9mb3JtID0gZnVuY3Rpb24o
KQp7Cglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZm9ybSkuc3VibWl0KCk7Cn07Cgov
LyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBXaW5kb3cgb3BlbmVycyBhbmQgaW5zdGFudCBtZXNz
ZW5nZXIgd3JhcHBlcnMKCi8qKgoqIE9wZW5zIGEgZ2VuZXJpYyBicm93c2VyIHdpbmRvdwoqCiog
QHBhcmFtCXN0cmluZwlVUkwKKiBAcGFyYW0JaW50ZWdlcglXaWR0aAoqIEBwYXJhbQlpbnRlZ2Vy
CUhlaWdodAoqIEBwYXJhbQlzdHJpbmcJT3B0aW9uYWwgV2luZG93IElECiovCmZ1bmN0aW9uIG9w
ZW5XaW5kb3codXJsLCB3aWR0aCwgaGVpZ2h0LCB3aW5kb3dpZCkKewoJcmV0dXJuIHdpbmRvdy5v
cGVuKAoJCXVybCwKCQkodHlwZW9mIHdpbmRvd2lkID09ICd1bmRlZmluZWQnID8gJ3ZCUG9wdXAn
IDogd2luZG93aWQpLAoJCSdzdGF0dXNiYXI9bm8sbWVudWJhcj1ubyx0b29sYmFyPW5vLHNjcm9s
bGJhcnM9eWVzLHJlc2l6YWJsZT15ZXMnCgkJKyAodHlwZW9mIHdpZHRoICE9ICd1bmRlZmluZWQn
ID8gKCcsd2lkdGg9JyArIHdpZHRoKSA6ICcnKSArICh0eXBlb2YgaGVpZ2h0ICE9ICd1bmRlZmlu
ZWQnID8gKCcsaGVpZ2h0PScgKyBoZWlnaHQpIDogJycpCgkpOwp9CgovKioKKiBPcGVucyBjb250
cm9sIHBhbmVsIGhlbHAgd2luZG93CioKKiBAcGFyYW0Jc3RyaW5nCVNjcmlwdCBuYW1lCiogQHBh
cmFtCXN0cmluZwlBY3Rpb24gdHlwZQoqIEBwYXJhbQlzdHJpbmcJT3B0aW9uIHZhbHVlCioKKiBA
cmV0dXJuCXdpbmRvdwoqLwpmdW5jdGlvbiBqc19vcGVuX2hlbHAoc2NyaXB0bmFtZSwgYWN0aW9u
dHlwZSwgb3B0aW9udmFsKQp7CglyZXR1cm4gb3BlbldpbmRvdygKCQknaGVscC5waHA/cz0nICsg
U0VTU0lPTkhBU0ggKyAnJmRvPWFuc3dlciZwYWdlPScgKyBzY3JpcHRuYW1lICsgJyZwYWdlYWN0
aW9uPScgKyBhY3Rpb250eXBlICsgJyZvcHRpb249JyArIG9wdGlvbnZhbCwKCQk2MDAsIDQ1MCwg
J2hlbHB3aW5kb3cnCgkpOwp9CgovKioKKiBPcGVucyBhIHdpbmRvdyB0byBzaG93IGEgbGlzdCBv
ZiBwb3N0ZXJzIGluIGEgdGhyZWFkIChtaXNjLnBocD9kbz13aG9wb3N0ZWQpCioKKiBAcGFyYW0J
aW50ZWdlcglUaHJlYWQgSUQKKgoqIEByZXR1cm4Jd2luZG93CiovCmZ1bmN0aW9uIHdobyh0aHJl
YWRpZCkKewoJcmV0dXJuIG9wZW5XaW5kb3coCgkJJ21pc2MucGhwPycgKyBTRVNTSU9OVVJMICsg
J2RvPXdob3Bvc3RlZCZ0PScgKyB0aHJlYWRpZCwKCQkyMzAsIDMwMAoJKTsKfQoKLyoqCiogT3Bl
bnMgYW4gSU0gV2luZG93CioKKiBAcGFyYW0Jc3RyaW5nCUlNIHR5cGUKKiBAcGFyYW0JaW50ZWdl
cglVc2VyIElECiogQHBhcmFtCWludGVnZXIJV2lkdGggb2Ygd2luZG93CiogQHBhcmFtCWludGVn
ZXIJSGVpZ2h0IG9mIHdpbmRvdwoqCiogQHJldHVybgl3aW5kb3cKKi8KZnVuY3Rpb24gaW13aW5k
b3coaW10eXBlLCB1c2VyaWQsIHdpZHRoLCBoZWlnaHQpCnsKCXJldHVybiBvcGVuV2luZG93KAoJ
CSdzZW5kbWVzc2FnZS5waHA/JyArIFNFU1NJT05VUkwgKyAnZG89aW0mdHlwZT0nICsgaW10eXBl
ICsgJyZ1PScgKyB1c2VyaWQsCgkJd2lkdGgsIGhlaWdodAoJKTsKfQoKLyoqCiogU2VuZHMgYW4g
TVNOIG1lc3NhZ2UKKgoqIEBwYXJhbQlzdHJpbmcJVGFyZ2V0IE1TTiBoYW5kbGUKKgoqIEByZXR1
cm4JYm9vbGVhbglmYWxzZQoqLwpmdW5jdGlvbiBTZW5kTVNOTWVzc2FnZShuYW1lKQp7CglpZiAo
IWlzX2llKQoJewoJCWFsZXJ0KHZicGhyYXNlWydtc25fZnVuY3Rpb25zX29ubHlfd29ya19pbl9p
ZSddKTsKCQlyZXR1cm4gZmFsc2U7Cgl9CgllbHNlCgl7CgkJTXNnck9iai5JbnN0YW50TWVzc2Fn
ZShuYW1lKTsKCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KCi8qKgoqIEFkZHMgYW4gTVNOIENvbnRhY3Qg
KHJlcXVpcmVzIE1TTikKKgoqIEBwYXJhbQlzdHJpbmcJTVNOIGhhbmRsZQoqCiogQHJldHVybgli
b29sZWFuCWZhbHNlCiovCmZ1bmN0aW9uIEFkZE1TTkNvbnRhY3QobmFtZSkKewoJaWYgKCFpc19p
ZSkKCXsKCQlhbGVydCh2YnBocmFzZVsnbXNuX2Z1bmN0aW9uc19vbmx5X3dvcmtfaW5faWUnXSk7
CgkJcmV0dXJuIGZhbHNlOwoJfQoJZWxzZQoJewoJCU1zZ3JPYmouQWRkQ29udGFjdCgwLCBuYW1l
KTsKCQlyZXR1cm4gZmFsc2U7Cgl9Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIENvb2tp
ZSBoYW5kbGVycwoKLyoqCiogU2V0cyBhIGNvb2tpZQoqCiogQHBhcmFtCXN0cmluZwlDb29raWUg
bmFtZQoqIEBwYXJhbQlzdHJpbmcJQ29va2llIHZhbHVlCiogQHBhcmFtCWRhdGUJQ29va2llIGV4
cGlyeSBkYXRlCiovCmZ1bmN0aW9uIHNldF9jb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMpCnsK
CWRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKyBlc2NhcGUodmFsdWUpICsgJzsgcGF0aD0v
JyArICh0eXBlb2YgZXhwaXJlcyAhPSAndW5kZWZpbmVkJyA/ICc7IGV4cGlyZXM9JyArIGV4cGly
ZXMudG9HTVRTdHJpbmcoKSA6ICcnKTsKfQoKLyoqCiogRGVsZXRlcyBhIGNvb2tpZQoqCiogQHBh
cmFtCXN0cmluZwlDb29raWUgbmFtZQoqLwpmdW5jdGlvbiBkZWxldGVfY29va2llKG5hbWUpCnsK
CWRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKyAnOyBleHBpcmVzPVRodSwgMDEtSmFuLTcw
IDAwOjAwOjAxIEdNVCcgKyAgJzsgcGF0aD0vJzsKfQoKLyoqCiogRmV0Y2hlcyB0aGUgdmFsdWUg
b2YgYSBjb29raWUKKgoqIEBwYXJhbQlzdHJpbmcJQ29va2llIG5hbWUKKgoqIEByZXR1cm4Jc3Ry
aW5nCiovCmZ1bmN0aW9uIGZldGNoX2Nvb2tpZShuYW1lKQp7Cgljb29raWVfbmFtZSA9IG5hbWUg
KyAnPSc7Cgljb29raWVfbGVuZ3RoID0gZG9jdW1lbnQuY29va2llLmxlbmd0aDsKCWNvb2tpZV9i
ZWdpbiA9IDA7Cgl3aGlsZSAoY29va2llX2JlZ2luIDwgY29va2llX2xlbmd0aCkKCXsKCQl2YWx1
ZV9iZWdpbiA9IGNvb2tpZV9iZWdpbiArIGNvb2tpZV9uYW1lLmxlbmd0aDsKCQlpZiAoZG9jdW1l
bnQuY29va2llLnN1YnN0cmluZyhjb29raWVfYmVnaW4sIHZhbHVlX2JlZ2luKSA9PSBjb29raWVf
bmFtZSkKCQl7CgkJCXZhciB2YWx1ZV9lbmQgPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZiAoJzsn
LCB2YWx1ZV9iZWdpbik7CgkJCWlmICh2YWx1ZV9lbmQgPT0gLTEpCgkJCXsKCQkJCXZhbHVlX2Vu
ZCA9IGNvb2tpZV9sZW5ndGg7CgkJCX0KCQkJcmV0dXJuIHVuZXNjYXBlKGRvY3VtZW50LmNvb2tp
ZS5zdWJzdHJpbmcodmFsdWVfYmVnaW4sIHZhbHVlX2VuZCkpOwoJCX0KCQljb29raWVfYmVnaW4g
PSBkb2N1bWVudC5jb29raWUuaW5kZXhPZignICcsIGNvb2tpZV9iZWdpbikgKyAxOwoJCWlmIChj
b29raWVfYmVnaW4gPT0gMCkKCQl7CgkJCWJyZWFrOwoJCX0KCX0KCXJldHVybiBudWxsOwp9Cgov
LyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBGb3JtIGVsZW1lbnQgbWFuYWdlcnMgKHVzZWQgZm9y
ICdjaGVjayBhbGwnIHR5cGUgc3lzdGVtcwoKLyoqCiogU2V0cyBhbGwgY2hlY2tib3hlcywgcmFk
aW8gYnV0dG9ucyBvciBzZWxlY3RzIGluIGEgZ2l2ZW4gZm9ybSB0byBhIGdpdmVuIHN0YXRlLCB3
aXRoIGV4Y2VwdGlvbnMKKgoqIEBwYXJhbQlvYmplY3QJRm9ybSBvYmplY3QKKiBAcGFyYW0Jc3Ry
aW5nCVRhcmdldCBlbGVtZW50IHR5cGUgKG9uZSBvZiAncmFkaW8nLCAnc2VsZWN0LW9uZScsICdj
aGVja2JveCcpCiogQHBhcmFtCXN0cmluZwlTZWxlY3RlZCBvcHRpb24gaW4gY2FzZSBvZiAncmFk
aW8nCiogQHBhcmFtCWFycmF5CUFycmF5IG9mIGVsZW1lbnQgbmFtZXMgdG8gYmUgZXhjbHVkZWQK
KiBAcGFyYW0JbWl4ZWQJVmFsdWUgdG8gZ2l2ZSB0byBmb3VuZCBlbGVtZW50cwoqLwpmdW5jdGlv
biBqc190b2dnbGVfYWxsKGZvcm1vYmosIGZvcm10eXBlLCBvcHRpb24sIGV4Y2x1ZGUsIHNldHRv
KQp7Cglmb3IgKHZhciBpID0wOyBpIDwgZm9ybW9iai5lbGVtZW50cy5sZW5ndGg7IGkrKykKCXsK
CQl2YXIgZWxtID0gZm9ybW9iai5lbGVtZW50c1tpXTsKCQlpZiAoZWxtLnR5cGUgPT0gZm9ybXR5
cGUgJiYgUEhQLmluX2FycmF5KGVsbS5uYW1lLCBleGNsdWRlLCBmYWxzZSkgPT0gLTEpCgkJewoJ
CQlzd2l0Y2ggKGZvcm10eXBlKQoJCQl7CgkJCQljYXNlICdyYWRpbyc6CgkJCQkJaWYgKGVsbS52
YWx1ZSA9PSBvcHRpb24pIC8vIG9wdGlvbiA9PSAnJyBldmFsdWF0ZXMgdHJ1ZSB3aGVuIG9wdGlv
biA9IDAKCQkJCQl7CgkJCQkJCWVsbS5jaGVja2VkID0gc2V0dG87CgkJCQkJfQoJCQkJYnJlYWs7
CgkJCQljYXNlICdzZWxlY3Qtb25lJzoKCQkJCQllbG0uc2VsZWN0ZWRJbmRleCA9IHNldHRvOwoJ
CQkJYnJlYWs7CgkJCQlkZWZhdWx0OgoJCQkJCWVsbS5jaGVja2VkID0gc2V0dG87CgkJCQlicmVh
azsKCQkJfQoJCX0KCX0KfQoKLyoqCiogU2V0cyBhbGwgPHNlbGVjdD4gZWxlbWVudHMgdG8gdGhl
IHNlbGVjdGVkSW5kZXggc3BlY2lmaWVkIGJ5IHRoZSAnc2VsZWN0YWxsJyBlbGVtZW50CioKKiBA
cGFyYW0Jb2JqZWN0CUZvcm0gb2JqZWN0CiovCmZ1bmN0aW9uIGpzX3NlbGVjdF9hbGwoZm9ybW9i
aikKewoJZXhjbHVkZSA9IG5ldyBBcnJheSgpOwoJZXhjbHVkZVswXSA9ICdzZWxlY3RhbGwnOwoJ
anNfdG9nZ2xlX2FsbChmb3Jtb2JqLCAnc2VsZWN0LW9uZScsICcnLCBleGNsdWRlLCBmb3Jtb2Jq
LnNlbGVjdGFsbC5zZWxlY3RlZEluZGV4KTsKfQoKLyoqCiogU2V0cyBhbGwgPGlucHV0IHR5cGU9
ImNoZWNrYm94IiAvPiBlbGVtZW50cyB0byBoYXZlIHRoZSBzYW1lIGNoZWNrZWQgc3RhdHVzIGFz
ICdhbGxib3gnCioKKiBAcGFyYW0Jb2JqZWN0CUZvcm0gb2JqZWN0CiovCmZ1bmN0aW9uIGpzX2No
ZWNrX2FsbChmb3Jtb2JqKQp7CglleGNsdWRlID0gbmV3IEFycmF5KCk7CglleGNsdWRlWzBdID0g
J2tlZXBhdHRhY2htZW50cyc7CglleGNsdWRlWzFdID0gJ2FsbGJveCc7CglleGNsdWRlWzJdID0g
J3JlbW92ZWFsbCc7Cglqc190b2dnbGVfYWxsKGZvcm1vYmosICdjaGVja2JveCcsICcnLCBleGNs
dWRlLCBmb3Jtb2JqLmFsbGJveC5jaGVja2VkKTsKfQoKLyoqCiogU2V0cyBhbGwgPGlucHV0IHR5
cGU9InJhZGlvIiAvPiBncm91cHMgdG8gaGF2ZSBhIHBhcnRpY3VsYXIgb3B0aW9uIGNoZWNrZWQK
KgoqIEBwYXJhbQlvYmplY3QJRm9ybSBvYmplY3QKKiBAcGFyYW0JbWl4ZWQJU2VsZWN0ZWQgb3B0
aW9uCiovCmZ1bmN0aW9uIGpzX2NoZWNrX2FsbF9vcHRpb24oZm9ybW9iaiwgb3B0aW9uKQp7Cgll
eGNsdWRlID0gbmV3IEFycmF5KCk7CglleGNsdWRlWzBdID0gJ3VzZXVzZXJncm91cCc7Cglqc190
b2dnbGVfYWxsKGZvcm1vYmosICdyYWRpbycsIG9wdGlvbiwgZXhjbHVkZSwgdHJ1ZSk7Cn0KCi8q
KgoqIEFsaWFzIHRvIGpzX2NoZWNrX2FsbAoqLwpmdW5jdGlvbiBjaGVja2FsbChmb3Jtb2JqKSB7
IGpzX2NoZWNrX2FsbChmb3Jtb2JqKTsgfQoKLyoqCiogQWxpYXMgdG8ganNfY2hlY2tfYWxsX29w
dGlvbgoqLwpmdW5jdGlvbiBjaGVja2FsbF9vcHRpb24oZm9ybW9iaiwgb3B0aW9uKSB7IGpzX2No
ZWNrX2FsbF9vcHRpb24oZm9ybW9iaiwgb3B0aW9uKTsgfQoKLyoqCiogUmVzaXplIGZ1bmN0aW9u
IGZvciBDUCB0ZXh0YXJlYXMKKgoqIEBwYXJhbQlpbnRlZ2VyCUlmIHBvc2l0aXZlLCBzaXplIHVw
LCBvdGhlcndpc2Ugc2l6ZSBkb3duCiogQHBhcmFtCXN0cmluZwlJRCBvZiB0aGUgdGV4dGFyZWEK
KgoqIEByZXR1cm4JYm9vbGVhbglmYWxzZQoqLwpmdW5jdGlvbiByZXNpemVfdGV4dGFyZWEodG8s
IGlkKQp7CglpZiAodG8gPCAwKQoJewoJCXZhciByb3dzID0gLTU7CgkJdmFyIGNvbHMgPSAtMTA7
Cgl9CgllbHNlCgl7CgkJdmFyIHJvd3MgPSA1OwoJCXZhciBjb2xzID0gMTA7Cgl9CgoJdmFyIHRl
eHRhcmVhID0gZmV0Y2hfb2JqZWN0KGlkKTsKCWlmICh0eXBlb2YgdGV4dGFyZWEub3JpZ19yb3dz
ID09ICd1bmRlZmluZWQnKQoJewoJCXRleHRhcmVhLm9yaWdfcm93cyA9IHRleHRhcmVhLnJvd3M7
CgkJdGV4dGFyZWEub3JpZ19jb2xzID0gdGV4dGFyZWEuY29sczsKCX0KCgl2YXIgbmV3cm93cyA9
IHRleHRhcmVhLnJvd3MgKyByb3dzOwoJdmFyIG5ld2NvbHMgPSB0ZXh0YXJlYS5jb2xzICsgY29s
czsKCglpZiAobmV3cm93cyA+PSB0ZXh0YXJlYS5vcmlnX3Jvd3MgJiYgbmV3Y29scyA+PSB0ZXh0
YXJlYS5vcmlnX2NvbHMpCgl7CgkJdGV4dGFyZWEucm93cyA9IG5ld3Jvd3M7CgkJdGV4dGFyZWEu
Y29scyA9IG5ld2NvbHM7Cgl9CgoJcmV0dXJuIGZhbHNlOwp9CgovLyAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIwovLyBDb2xsYXBzaWJsZSBlbGVtZW50IGhhbmRsZXJzCgovKioKKiBUb2dnbGVzIHRoZSBj
b2xsYXBzZSBzdGF0ZSBvZiBhbiBvYmplY3QsIGFuZCBzYXZlcyBzdGF0ZSB0byAndmJ1bGxldGlu
X2NvbGxhcHNlJyBjb29raWUKKgoqIEBwYXJhbQlzdHJpbmcJVW5pcXVlIElEIGZvciB0aGUgY29s
bGFwc2UgZ3JvdXAKKgoqIEByZXR1cm4JYm9vbGVhbglmYWxzZQoqLwpmdW5jdGlvbiB0b2dnbGVf
Y29sbGFwc2Uob2JqaWQpCnsKCWlmICghaXNfcmVnZXhwKQoJewoJCXJldHVybiBmYWxzZTsKCX0K
CglvYmogPSBmZXRjaF9vYmplY3QoJ2NvbGxhcHNlb2JqXycgKyBvYmppZCk7CglpbWcgPSBmZXRj
aF9vYmplY3QoJ2NvbGxhcHNlaW1nXycgKyBvYmppZCk7CgljZWwgPSBmZXRjaF9vYmplY3QoJ2Nv
bGxhcHNlY2VsXycgKyBvYmppZCk7CgoJaWYgKCFvYmopCgl7CgkJLy8gbm90aGluZyB0byBjb2xs
YXBzZSEKCQlpZiAoaW1nKQoJCXsKCQkJLy8gaGlkZSB0aGUgY2xpY2t5IGltYWdlIGlmIHRoZXJl
IGlzIG9uZQoJCQlpbWcuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQl9CgkJcmV0dXJuIGZhbHNl
OwoJfQoKCWlmIChvYmouc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpCgl7CgkJb2JqLnN0eWxlLmRp
c3BsYXkgPSAnJzsKCQlzYXZlX2NvbGxhcHNlZChvYmppZCwgZmFsc2UpOwoJCWlmIChpbWcpCgkJ
ewoJCQlpbWdfcmUgPSBuZXcgUmVnRXhwKCJfY29sbGFwc2VkXFwuZ2lmJCIpOwoJCQlpbWcuc3Jj
ID0gaW1nLnNyYy5yZXBsYWNlKGltZ19yZSwgJy5naWYnKTsKCQl9CgkJaWYgKGNlbCkKCQl7CgkJ
CWNlbF9yZSA9IG5ldyBSZWdFeHAoIl4odGhlYWR8dGNhdCkoX2NvbGxhcHNlZCkkIik7CgkJCWNl
bC5jbGFzc05hbWUgPSBjZWwuY2xhc3NOYW1lLnJlcGxhY2UoY2VsX3JlLCAnJDEnKTsKCQl9Cgl9
CgllbHNlCgl7CgkJb2JqLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CgkJc2F2ZV9jb2xsYXBzZWQo
b2JqaWQsIHRydWUpOwoJCWlmIChpbWcpCgkJewoJCQlpbWdfcmUgPSBuZXcgUmVnRXhwKCJcXC5n
aWYkIik7CgkJCWltZy5zcmMgPSBpbWcuc3JjLnJlcGxhY2UoaW1nX3JlLCAnX2NvbGxhcHNlZC5n
aWYnKTsKCQl9CgkJaWYgKGNlbCkKCQl7CgkJCWNlbF9yZSA9IG5ldyBSZWdFeHAoIl4odGhlYWR8
dGNhdCkkIik7CgkJCWNlbC5jbGFzc05hbWUgPSBjZWwuY2xhc3NOYW1lLnJlcGxhY2UoY2VsX3Jl
LCAnJDFfY29sbGFwc2VkJyk7CgkJfQoJfQoJcmV0dXJuIGZhbHNlOwp9CgovKioKKiBVcGRhdGVz
IHZidWxsZXRpbl9jb2xsYXBzZSBjb29raWUgd2l0aCBjb2xsYXBzZSBwcmVmZXJlbmNlcwoqCiog
QHBhcmFtCXN0cmluZwlVbmlxdWUgSUQgZm9yIHRoZSBjb2xsYXBzZSBncm91cAoqIEBwYXJhbQli
b29sZWFuCUFkZCBhIGNvb2tpZQoqLwpmdW5jdGlvbiBzYXZlX2NvbGxhcHNlZChvYmppZCwgYWRk
Y29sbGFwc2VkKQp7Cgl2YXIgY29sbGFwc2VkID0gZmV0Y2hfY29va2llKCd2YnVsbGV0aW5fY29s
bGFwc2UnKTsKCXZhciB0bXAgPSBuZXcgQXJyYXkoKTsKCglpZiAoY29sbGFwc2VkICE9IG51bGwp
Cgl7CgkJY29sbGFwc2VkID0gY29sbGFwc2VkLnNwbGl0KCdcbicpOwoKCQlmb3IgKHZhciBpIGlu
IGNvbGxhcHNlZCkKCQl7CgkJCWlmIChjb2xsYXBzZWRbaV0gIT0gb2JqaWQgJiYgY29sbGFwc2Vk
W2ldICE9ICcnKQoJCQl7CgkJCQl0bXBbdG1wLmxlbmd0aF0gPSBjb2xsYXBzZWRbaV07CgkJCX0K
CQl9Cgl9CgoJaWYgKGFkZGNvbGxhcHNlZCkKCXsKCQl0bXBbdG1wLmxlbmd0aF0gPSBvYmppZDsK
CX0KCglleHBpcmVzID0gbmV3IERhdGUoKTsKCWV4cGlyZXMuc2V0VGltZShleHBpcmVzLmdldFRp
bWUoKSArICgxMDAwICogODY0MDAgKiAzNjUpKTsKCXNldF9jb29raWUoJ3ZidWxsZXRpbl9jb2xs
YXBzZScsIHRtcC5qb2luKCdcbicpLCBleHBpcmVzKTsKfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKLy8gRXZlbnQgSGFuZGxlcnMgZm9yIFBhZ2VOYXYgbWVudXMKCi8qKgoqIENsYXNzIHRvIGhh
bmRsZSBwYWdlbmF2IGV2ZW50cwoqLwpmdW5jdGlvbiB2QnBhZ2VuYXYoKQp7Cn0KCi8qKgoqIEhh
bmRsZXMgY2xpY2tzIG9uIHBhZ2VuYXYgbWVudSBjb250cm9sIG9iamVjdHMKKi8KdkJwYWdlbmF2
LnByb3RvdHlwZS5jb250cm9sb2JqX29uY2xpY2sgPSBmdW5jdGlvbihlKQp7Cgl0aGlzLl9vbmNs
aWNrKGUpOwoJdmFyIGlucHV0cyA9IGZldGNoX3RhZ3ModGhpcy5tZW51Lm1lbnVvYmosICdpbnB1
dCcpOwoJZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspCgl7CgkJaWYgKGlu
cHV0c1tpXS50eXBlID09ICd0ZXh0JykKCQl7CgkJCWlucHV0c1tpXS5mb2N1cygpOwoJCQlicmVh
azsKCQl9Cgl9Cn07CgovKioKKiBTdWJtaXRzIHRoZSBwYWdlbmF2IGZvcm0uLi4gc29ydCBvZgoq
Lwp2QnBhZ2VuYXYucHJvdG90eXBlLmZvcm1fZ290b3BhZ2UgPSBmdW5jdGlvbihlKQp7CglpZiAo
KHBhZ2VudW0gPSBwYXJzZUludChmZXRjaF9vYmplY3QoJ3BhZ2VuYXZfaXR4dCcpLnZhbHVlLCAx
MCkpID4gMCkKCXsKCQl3aW5kb3cubG9jYXRpb24gPSB0aGlzLmFkZHIgKyAnJnBhZ2U9JyArIHBh
Z2VudW07Cgl9CglyZXR1cm4gZmFsc2U7Cn07CgovKioKKiBIYW5kbGVzIGNsaWNrcyBvbiB0aGUg
J0dvJyBidXR0b24gaW4gcGFnZW5hdiBwb3B1cHMKKi8KdkJwYWdlbmF2LnByb3RvdHlwZS5pYnRu
X29uY2xpY2sgPSBmdW5jdGlvbihlKQp7CglyZXR1cm4gdGhpcy5mb3JtLmdvdG9wYWdlKCk7Cn07
CgovKioKKiBIYW5kbGVzIGtleXByZXNzZXMgaW4gdGhlIHRleHQgaW5wdXQgb2YgcGFnZW5hdiBw
b3B1cHMKKi8KdkJwYWdlbmF2LnByb3RvdHlwZS5pdHh0X29ua2V5cHJlc3MgPSBmdW5jdGlvbihl
KQp7CglyZXR1cm4gKChlID8gZSA6IHdpbmRvdy5ldmVudCkua2V5Q29kZSA9PSAxMyA/IHRoaXMu
Zm9ybS5nb3RvcGFnZSgpIDogdHJ1ZSk7Cn07CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBE
SFRNTCBQb3B1cCBNZW51IEhhbmRsaW5nIChjb21wbGVtZW50cyB2YnVsbGV0aW5fbWVudS5qcykK
Ci8qKgoqIFdyYXBwZXIgZm9yIHZCbWVudS5yZWdpc3RlcgoqCiogQHBhcmFtCXN0cmluZwlDb250
cm9sIElECiogQHBhcmFtCWJvb2xlYW4JTm8gaW1hZ2UgKHRydWUpCiogQHBhcmFtCWJvb2xlYW4J
RG9lcyBub3RoaW5nIGFueSBtb3JlCiovCmZ1bmN0aW9uIHZibWVudV9yZWdpc3Rlcihjb250cm9s
aWQsIG5vaW1hZ2UsIGRhdGVmaWVsZCkKewoJaWYgKHR5cGVvZiB2Qm1lbnUgPT0gJ29iamVjdCcp
Cgl7CgkJdkJtZW51LnJlZ2lzdGVyKGNvbnRyb2xpZCwgbm9pbWFnZSk7Cgl9Cn0KCi8vICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCi8vIFN0dWZmIHRoYXQgcmVhbGx5IGRvZXNuJ3QgZml0IGFueXdoZXJl
IGVsc2UKCi8qKgoqIFNldHMgYW4gZWxlbWVudCBhbmQgYWxsIGl0cyBjaGlsZHJlbiB0byBiZSAn
dW5zZWxlY3RhYmxlJwoqCiogQHBhcmFtCW9iamVjdAlPYmplY3QgdG8gYmUgbWFkZSB1bnNlbGVj
dGFibGUKKi8KZnVuY3Rpb24gc2V0X3Vuc2VsZWN0YWJsZShvYmopCnsKCWlmICghaXNfaWU0ICYm
IHR5cGVvZiBvYmoudGFnTmFtZSAhPSAndW5kZWZpbmVkJykKCXsKCQlpZiAob2JqLmhhc0NoaWxk
Tm9kZXMoKSkKCQl7CgkJCWZvciAodmFyIGkgPSAwOyBpIDwgb2JqLmNoaWxkTm9kZXMubGVuZ3Ro
OyBpKyspCgkJCXsKCQkJCXNldF91bnNlbGVjdGFibGUob2JqLmNoaWxkTm9kZXNbaV0pOwoJCQl9
CgkJfQoJCW9iai51bnNlbGVjdGFibGUgPSAnb24nOwoJfQp9CgovKioKKiBGZXRjaGVzIHRoZSBz
ZXNzaW9uaGFzaCBmcm9tIHRoZSBTRVNTSU9OVVJMIHZhcmlhYmxlCioKKiBAcmV0dXJuCXN0cmlu
ZwoqLwpmdW5jdGlvbiBmZXRjaF9zZXNzaW9uaGFzaCgpCnsKCXJldHVybiAoU0VTU0lPTlVSTCA9
PSAnJyA/ICcnIDogU0VTU0lPTlVSTC5zdWJzdHIoMiwgMzIpKTsKfQoKLyoqCiogRW11bGF0ZXMg
dGhlIFBIUCB2ZXJzaW9uIG9mIHZCdWxsZXRpbidzIGNvbnN0cnVjdF9waHJhc2UoKSBzcHJpbnRm
IHdyYXBwZXIKKgoqIEBwYXJhbQlzdHJpbmcJU3RyaW5nIGNvbnRhaW5pbmcgJTEkcyB0eXBlIHJl
cGxhY2VtZW50IG1hcmtlcnMKKiBAcGFyYW0Jc3RyaW5nCUZpcnN0IHJlcGxhY2VtZW50CiogQHBh
cmFtCXN0cmluZwlOdGggcmVwbGFjZW1lbnQKKgoqIEByZXR1cm4Jc3RyaW5nCiovCmZ1bmN0aW9u
IGNvbnN0cnVjdF9waHJhc2UoKQp7CglpZiAoIWFyZ3VtZW50cyB8fCBhcmd1bWVudHMubGVuZ3Ro
IDwgMSB8fCAhaXNfcmVnZXhwKQoJewoJCXJldHVybiBmYWxzZTsKCX0KCgl2YXIgYXJncyA9IGFy
Z3VtZW50czsKCXZhciBzdHIgPSBhcmdzWzBdOwoJdmFyIHJlOwoKCWZvciAodmFyIGkgPSAxOyBp
IDwgYXJncy5sZW5ndGg7IGkrKykKCXsKCQlyZSA9IG5ldyBSZWdFeHAoIiUiICsgaSArICJcXCRz
IiwgJ2dpJyk7CgkJc3RyID0gc3RyLnJlcGxhY2UocmUsIGFyZ3NbaV0pOwoJfQoJcmV0dXJuIHN0
cjsKfQoKLyoqCiogSGFuZGxlcyB0aGUgcXVpY2sgc3R5bGUvbGFuZ3VhZ2Ugb3B0aW9ucyBpbiB0
aGUgZm9vdGVyCioKKiBAcGFyYW0Jb2JqZWN0CVNlbGVjdCBvYmplY3QKKiBAcGFyYW0Jc3RyaW5n
CVR5cGUgKHN0eWxlIG9yIGxhbmd1YWdlKQoqLwpmdW5jdGlvbiBzd2l0Y2hfaWQoc2VsZWN0b2Jq
LCB0eXBlKQp7Cgl2YXIgaWQgPSBzZWxlY3RvYmoub3B0aW9uc1tzZWxlY3RvYmouc2VsZWN0ZWRJ
bmRleF0udmFsdWU7CgoJaWYgKGlkID09ICcnKQoJewoJCXJldHVybjsKCX0KCgl2YXIgdXJsID0g
bmV3IFN0cmluZyh3aW5kb3cubG9jYXRpb24pOwoJdmFyIGZyYWdtZW50ID0gbmV3IFN0cmluZygn
Jyk7CgoJLy8gZ2V0IHJpZCBvZiBmcmFnbWVudAoJdXJsID0gdXJsLnNwbGl0KCcjJyk7CgoJLy8g
ZGVhbCB3aXRoIHRoZSBmcmFnbWVudCBmaXJzdAoJaWYgKHVybFsxXSkKCXsKCQlmcmFnbWVudCA9
ICcjJyArIHVybFsxXTsKCX0KCgkvLyBkZWFsIHdpdGggdGhlIG1haW4gdXJsCgl1cmwgPSB1cmxb
MF07CgoJLy8gcmVtb3ZlIGlkPXgmIGZyb20gbWFpbiBiaXQKCWlmICh1cmwuaW5kZXhPZih0eXBl
ICsgJ2lkPScpICE9IC0xICYmIGlzX3JlZ2V4cCkKCXsKCQlyZSA9IG5ldyBSZWdFeHAodHlwZSAr
ICJpZD1cXGQrJj8iKTsKCQl1cmwgPSB1cmwucmVwbGFjZShyZSwgJycpOwoJfQoKCS8vIGFkZCB0
aGUgPyB0byB0aGUgdXJsIGlmIG5lZWRlZAoJaWYgKHVybC5pbmRleE9mKCc/JykgPT0gLTEpCgl7
CgkJdXJsICs9ICc/JzsKCX0KCWVsc2UKCXsKCQkvLyBtYWtlIHN1cmUgdGhhdCB3ZSBoYXZlIGEg
dmFsaWQgY2hhcmFjdGVyIHRvIGpvaW4gb3VyIGlkIGJpdAoJCWxhc3RjaGFyID0gdXJsLnN1YnN0
cih1cmwubGVuZ3RoIC0gMSk7CgkJaWYgKGxhc3RjaGFyICE9ICcmJyAmJiBsYXN0Y2hhciAhPSAn
PycpCgkJewoJCQl1cmwgKz0gJyYnOwoJCX0KCX0KCgl3aW5kb3cubG9jYXRpb24gPSB1cmwgKyB0
eXBlICsgJ2lkPScgKyBpZCArIGZyYWdtZW50Owp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwov
LyBJbml0aWFsaXplIGEgUG9zdEJpdAoKLyoqCiogVGhpcyBmdW5jdGlvbiBydW5zIGFsbCB0aGUg
bmVjZXNzYXJ5IEphdmFzY3JpcHQgY29kZSBvbiBhIFBvc3RCaXQKKiBhZnRlciBpdCBoYXMgYmVl
biBsb2FkZWQgdmlhIEFKQVguIERvbid0IHVzZSB0aGlzIG1ldGhvZCBiZWZvcmUgYQoqIGNvbXBs
ZXRlIHBhZ2UgbG9hZCBvciB5b3UnbGwgaGF2ZSBwcm9ibGVtcy4KKgoqIEBwYXJhbQlvYmplY3QJ
T2JqZWN0IGNvbnRhaW5pbmcgcG9zdGJpdHMKKi8KZnVuY3Rpb24gUG9zdEJpdF9Jbml0KG9iaikK
ewoJaWYgKHR5cGVvZiB2Qm1lbnUgIT0gJ3VuZGVmaW5lZCcpCgl7CgkJLy8gaW5pdCBwcm9maWxl
IG1lbnUocykKCQl2YXIgZGl2cyA9IGZldGNoX3RhZ3Mob2JqLCAnZGl2Jyk7CgkJZm9yICh2YXIg
aSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKQoJCXsKCQkJaWYgKGRpdnNbaV0uaWQgJiYgZGl2
c1tpXS5pZC5zdWJzdHIoMCwgOSkgPT0gJ3Bvc3RtZW51XycpCgkJCXsKCQkJCXZCbWVudS5yZWdp
c3RlcihkaXZzW2ldLmlkLCB0cnVlKTsKCQkJfQoJCX0KCX0KCglpZiAodHlwZW9mIHZCX1F1aWNr
RWRpdG9yICE9ICd1bmRlZmluZWQnKQoJewoJCS8vIGluaXQgcXVpY2sgZWRpdCBjb250cm9scwoJ
CXZCX0FKQVhfUXVpY2tFZGl0X0luaXQob2JqKTsKCX0KCglpZiAodHlwZW9mIHZCX1F1aWNrUmVw
bHkgIT0gJ3VuZGVmaW5lZCcpCgl7CgkJLy8gaW5pdCBxdWljayByZXBseSBidXR0b24KCQlxcl9p
bml0X2J1dHRvbnMob2JqKTsKCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gTWFpbiB2
QnVsbGV0aW4gSmF2YXNjcmlwdCBJbml0aWFsaXphdGlvbgoKLyoqCiogVGhpcyBmdW5jdGlvbiBy
dW5zIChhbG1vc3QpIGF0IHRoZSBlbmQgb2Ygc2NyaXB0IGxvYWRpbmcgb24gbW9zdCB2QnVsbGV0
aW4gcGFnZXMKKgoqIEl0IHNldHMgdXAgdGhpbmdzIGxpa2UgaW1hZ2UgYWx0LT50aXRsZSB0YWdz
LCB0dXJucyBvbiB0aGUgcG9wdXAgbWVudSBzeXN0ZW0gZXRjLgoqCiogQHJldHVybglib29sZWFu
CiovCmZ1bmN0aW9uIHZCdWxsZXRpbl9pbml0KCkKewoJLy8gZG9uJ3QgYm90aGVyIGRvaW5nIGFu
eSBleGNpdGluZyBzdHVmZiBmb3IgV2ViVFYKCWlmIChpc193ZWJ0dikKCXsKCQlyZXR1cm4gZmFs
c2U7Cgl9CgoJLy8gc2V0ICd0aXRsZScgdGFncyBmb3IgaW1hZ2UgZWxlbWVudHMKCXZhciBpbWdz
ID0gZmV0Y2hfdGFncyhkb2N1bWVudCwgJ2ltZycpOwoJZm9yICh2YXIgaSA9IDA7IGkgPCBpbWdz
Lmxlbmd0aDsgaSsrKQoJewoJCWlmICghaW1nc1tpXS50aXRsZSAmJiBpbWdzW2ldLmFsdCAhPSAn
JykKCQl7CgkJCWltZ3NbaV0udGl0bGUgPSBpbWdzW2ldLmFsdDsKCQl9Cgl9CgoJLy8gZmluYWxp
emUgcG9wdXAgbWVudXMKCWlmICh0eXBlb2YgdkJtZW51ID09ICdvYmplY3QnKQoJewoJCS8vIGNs
b3NlIGFsbCBtZW51cyBvbiBkb2N1bWVudCBjbGljawoJCWlmICh3aW5kb3cuYXR0YWNoRXZlbnQg
JiYgIWlzX3NhZikKCQl7CgkJCWRvY3VtZW50LmF0dGFjaEV2ZW50KCdvbmNsaWNrJywgdmJtZW51
X2hpZGUpOwoJCQl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ucmVzaXplJywgdmJtZW51X2hpZGUpOwoJ
CX0KCQllbHNlIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICYmICFpc19zYWYpCgkJewoJ
CQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHZibWVudV9oaWRlLCBmYWxzZSk7
CgkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB2Ym1lbnVfaGlkZSwgZmFsc2Up
OwoJCX0KCQllbHNlCgkJewoJCQl3aW5kb3cub25jbGljayA9IHZibWVudV9oaWRlOwoJCQl3aW5k
b3cub25yZXNpemUgPSB2Ym1lbnVfaGlkZTsKCQl9CgoJCS8vIGFkZCBwb3B1cHMgdG8gcGFnZW5h
diBlbGVtZW50cwoJCXZhciBwYWdlbmF2cyA9IGZldGNoX3RhZ3MoZG9jdW1lbnQsICd0ZCcpOwoJ
CWZvciAodmFyIG4gPSAwOyBuIDwgcGFnZW5hdnMubGVuZ3RoOyBuKyspCgkJewoJCQlpZiAocGFn
ZW5hdnNbbl0uaGFzQ2hpbGROb2RlcygpICYmIHBhZ2VuYXZzW25dLmZpcnN0Q2hpbGQubmFtZSAm
JiBwYWdlbmF2c1tuXS5maXJzdENoaWxkLm5hbWUuaW5kZXhPZignUGFnZU5hdicpICE9IC0xKQoJ
CQl7CgkJCQl2YXIgYWRkciA9IHBhZ2VuYXZzW25dLnRpdGxlOwoJCQkJcGFnZW5hdnNbbl0udGl0
bGUgPSAnJzsKCQkJCXBhZ2VuYXZzW25dLmlubmVySFRNTCA9ICcnOwoJCQkJcGFnZW5hdnNbbl0u
aWQgPSAncGFnZW5hdi4nICsgbjsKCQkJCXZhciBwbiA9IHZCbWVudS5yZWdpc3RlcihwYWdlbmF2
c1tuXS5pZCk7CgkJCQlpZiAoaXNfc2FmKQoJCQkJewoJCQkJCXBuLmNvbnRyb2xvYmouX29uY2xp
Y2sgPSBwbi5jb250cm9sb2JqLm9uY2xpY2s7CgkJCQkJcG4uY29udHJvbG9iai5vbmNsaWNrID0g
dkJwYWdlbmF2LnByb3RvdHlwZS5jb250cm9sb2JqX29uY2xpY2s7CgkJCQl9CgkJCX0KCQl9CgoJ
CS8vIHByb2Nlc3MgdGhlIHBhZ2VuYXZzIHBvcHVwIGZvcm0KCQlpZiAodHlwZW9mIGFkZHIgIT0g
J3VuZGVmaW5lZCcpCgkJewoJCQlmZXRjaF9vYmplY3QoJ3BhZ2VuYXZfZm9ybScpLmFkZHIgPSBh
ZGRyOwoJCQlmZXRjaF9vYmplY3QoJ3BhZ2VuYXZfZm9ybScpLmdvdG9wYWdlID0gdkJwYWdlbmF2
LnByb3RvdHlwZS5mb3JtX2dvdG9wYWdlOwoJCQlmZXRjaF9vYmplY3QoJ3BhZ2VuYXZfaWJ0bicp
Lm9uY2xpY2sgPSB2QnBhZ2VuYXYucHJvdG90eXBlLmlidG5fb25jbGljazsKCQkJZmV0Y2hfb2Jq
ZWN0KCdwYWdlbmF2X2l0eHQnKS5vbmtleXByZXNzID0gdkJwYWdlbmF2LnByb3RvdHlwZS5pdHh0
X29ua2V5cHJlc3M7CgkJfQoKCQkvLyBhY3RpdmF0ZSB0aGUgbWVudSBzeXN0ZW0KCQl2Qm1lbnUu
YWN0aXZhdGUodHJ1ZSk7Cgl9CgoJcmV0dXJuIHRydWU7Cn0KCi8qPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCnx8
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjCnx8ICMgRG93bmxvYWRlZDogMDg6NTcsIFdlZCBNYXkgM3JkIDIwMDYKfHwg
IyBDVlM6ICRSQ1NmaWxlOiB2YnVsbGV0aW5fZ2xvYmFsLmpzLHYgJCAtICRSZXZpc2lvbjogMS4x
NTEgJAp8fCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIwpcKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL18QPmh0dHA6Ly93d3cubWFjaXR5
bmV0Lml0L2ZvcnVtL2NsaWVudHNjcmlwdC92YnVsbGV0aW5fZ2xvYmFsLmpzXxAYYXBwbGljYXRp
b24veC1qYXZhc2NyaXB01AUGBwgTFBURTxEEgmJwbGlzdDAw1AECAwQFBgcKWSRhcmNoaXZlclgk
dmVyc2lvblQkdG9wWCRvYmplY3RzXxAPTlNLZXllZEFyY2hpdmVyEgABhqDRCAlfEBNXZWJSZXNv
dXJjZVJlc3BvbnNlgAGvEB0LDCkvMDc4PFRVVldYWVpbXF1eX1pgYWJjN2Roa1UkbnVsbN8QEA0O
DxAREhMUFRYXGBkaGxwdHh8eICEeIiMkJR0mJx4oUiQ2UyQxMFIkMlMkMTNSJDdSJDNTJDExUiQ4
UiQ0UyQxNFIkOVIkMFYkY2xhc3NSJDVTJDEyUiQxEAcQAYAFgAaAACNBpB0HoijpTxE7jhAAI0Gk
HQehoki2gBwjQaQeJXV5X2eAAtMqKxkhLS5XTlMuYmFzZVtOUy5yZWxhdGl2ZYAAgAOABF8QPGh0
dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2NsaWVudHNjcmlwdC92YnVsbGV0aW5fbWVudS5q
c9IxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2VU5TVVJMViVOU1VSTFhOU09iamVjdF8QGGFw
cGxpY2F0aW9uL3gtamF2YXNjcmlwdNMYGRw5OjuAB4AbEMjTPT4ZP0lTWk5TLm9iamVjdHNXTlMu
a2V5c6lAQUJDREVGR0iAEYASgBOAFIAVgBaAF4AYgBmpSktMTU5PUFFSgAiACYAKgAuADIANgA6A
D4AQgBpWU2VydmVyXUxhc3QtTW9kaWZpZWRdQWNjZXB0LVJhbmdlc1pDb25uZWN0aW9uVERhdGVe
Q29udGVudC1MZW5ndGhaS2VlcC1BbGl2ZVRFdGFnXENvbnRlbnQtVHlwZV1BcGFjaGUvMS4zLjI5
XxAdV2VkLCAwMyBNYXkgMjAwNiAxMzo1ODoyNSBHTVRVYnl0ZXNfEB1TdW4sIDA3IE1heSAyMDA2
IDE5OjM2OjQ1IEdNVFUxNTI0Nl8QEXRpbWVvdXQ9NSwgbWF4PTk5XxAWImUyMzk0MS0zYjhlLTQ0
NThiNzAxItIxMmVmo2ZnNl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ50jEyaWqi
ajZfEBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEybG2jbW42XxARTlNIVFRQVVJMUmVzcG9u
c2VdTlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQAhACKAK0AsAC0ALcAuwC+AMEA
xQDIAMsAzwDSANUA3ADfAOMA5gDoAOoA7ADuAPAA+QD8AP4BBwEJARIBFAEbASMBLwExATMBNQF0
AXkBggGNAZEBlwGeAacBwgHJAcsBzQHPAdYB4QHpAfMB9QH3AfkB+wH9Af8CAQIDAgUCDwIRAhMC
FQIXAhkCGwIdAh8CIQIjAioCOAJGAlECVgJlAnACdQKCApACsAK2AtYC3ALwAwkDDgMSAygDNQM6
Az0DWQNeA2IDdgAAAAAAAAIBAAAAAAAAAG8AAAAAAAAAAAAAAAAAAAOETxE7ji8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSpcCnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIHx8Cnx8ICMgdkJ1bGxldGluIDMuNS40Cnx8ICMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSAjIHx8Cnx8ICMgQ29weXJpZ2h0IKkyMDAwLTIwMDYgSmVsc29mdCBFbnRlcnByaXNlcyBMdGQu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuIHx8Cnx8ICMgVGhpcyBmaWxlIG1heSBub3QgYmUgcmVkaXN0
cmlidXRlZCBpbiB3aG9sZSBvciBzaWduaWZpY2FudCBwYXJ0LiAjIHx8Cnx8ICMgLS0tLS0tLS0t
LS0tLS0tLSBWQlVMTEVUSU4gSVMgTk9UIEZSRUUgU09GVFdBUkUgLS0tLS0tLS0tLS0tLS0tLSAj
IHx8Cnx8ICMgaHR0cDovL3d3dy52YnVsbGV0aW4uY29tIHwgaHR0cDovL3d3dy52YnVsbGV0aW4u
Y29tL2xpY2Vuc2UuaHRtbCAjIHx8Cnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHx8ClwqPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CgovKioKKiB2QnVsbGV0aW4gcG9wdXAgbWVudSBleGFtcGxlIHVzYWdlOgoqCiogVG8gY3JlYXRl
IGEgbmV3IHBvcHVwIG1lbnU6CiogCTxlbGVtZW50IGlkPSJ4Ij5DbGljayBtZSA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+IHZCbWVudS5yZWdpc3RlcigneCcpOyA8L3NjcmlwdD48L2Vs
ZW1lbnQ+CioKKiBUbyBjcmVhdGUgYSBkeW5hbWljIHBvcHVwIG1lbnUgd2l0aCBhIHRpdGxlIGFu
ZCB0d28gb3B0aW9uczoKKiAJPGVsZW1lbnQgaWQ9IngiPkNsaWNrIG1lPC9lbGVtZW50PgoqIAk8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiogCW1lbnUgPSBuZXcgdkJfTWVudV9CdWls
ZGVyKCd4Jyk7CiogCW1lbnUuc2V0X3RpdGxlKCdNeSBNZW51Jyk7CiogCW1lbnUuYWRkX29wdGlv
bignT3B0aW9uIDEnLCAnc2NyaXB0LnBocD9vcHQ9MScpOwoqIAltZW51LmFkZF9vcHRpb24oJ09w
dGlvbiAyJywgJ3NjcmlwdC5waHA/b3B0PTInKTsKKiAJbWVudS5idWlsZCgpOwoqIAk8L3Njcmlw
dD4KKi8KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIHZCX1BvcHVwX0hhbmRsZXIKLy8gIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMKCi8qKgoqIHZCdWxsZXRpbiBwb3B1cCBtZW51IHJlZ2lzdHJ5Ciov
CmZ1bmN0aW9uIHZCX1BvcHVwX0hhbmRsZXIoKQp7CgkvKioKCSogT3B0aW9uczoKCSoKCSogQHZh
cglpbnRlZ2VyCU51bWJlciBvZiBzdGVwcyB0byB1c2UgaW4gc2xpZGluZyBtZW51cyBvcGVuCgkq
IEB2YXIJYm9vbGVhbglVc2Ugb3BhY2l0eSBmYWNlIGluIG1lbnUgb3Blbj8KCSovCgl0aGlzLm9w
ZW5fc3RlcHMgPSAxMDsKCXRoaXMub3Blbl9mYWRlID0gZmFsc2U7CgoJdGhpcy5hY3RpdmUgPSBm
YWxzZTsKCgl0aGlzLm1lbnVzID0gbmV3IEFycmF5KCk7Cgl0aGlzLmFjdGl2ZW1lbnUgPSBudWxs
OwoKCXRoaXMuaGlkZGVuX3NlbGVjdHMgPSBuZXcgQXJyYXkoKTsKfQoKLy8gPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLy8gdkJfUG9wdXBfSGFuZGxlciBtZXRob2RzCgovKioKKiBBY3RpdmF0ZSAvIERl
YWN0aXZhdGUgdGhlIG1lbnUgc3lzdGVtCioKKiBAcGFyYW0JYm9vbGVhbglBY3RpdmUgc3RhdGUg
Zm9yIG1lbnVzCiovCnZCX1BvcHVwX0hhbmRsZXIucHJvdG90eXBlLmFjdGl2YXRlID0gZnVuY3Rp
b24oYWN0aXZlKQp7Cgl0aGlzLmFjdGl2ZSA9IGFjdGl2ZTsKfQoKLyoqCiogUmVnaXN0ZXIgYSBj
b250cm9sIG9iamVjdCBhcyBhIG1lbnUgY29udHJvbAoqCiogQHBhcmFtCXN0cmluZwlJRCBvZiB0
aGUgY29udHJvbCBvYmplY3QKKiBAcGFyYW0JYm9vbGVhbglEbyBub3QgYWRkIGFuIGltYWdlICh0
cnVlKQoqCiogQHJldHVybgl2Ql9Qb3B1cF9NZW51CiovCnZCX1BvcHVwX0hhbmRsZXIucHJvdG90
eXBlLnJlZ2lzdGVyID0gZnVuY3Rpb24oY29udHJvbGtleSwgbm9pbWFnZSkKewoJdGhpcy5tZW51
c1tjb250cm9sa2V5XSA9IG5ldyB2Ql9Qb3B1cF9NZW51KGNvbnRyb2xrZXksIG5vaW1hZ2UpOwoK
CXJldHVybiB0aGlzLm1lbnVzW2NvbnRyb2xrZXldOwp9CgovKioKKiBIaWRlIGFjdGl2ZSBtZW51
CiovCnZCX1BvcHVwX0hhbmRsZXIucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbigpCnsKCWlmICh0
aGlzLmFjdGl2ZW1lbnUgIT0gbnVsbCkKCXsKCQkvL3RoaXMuYWN0aXZlbWVudS5oaWRlKCk7CgkJ
dGhpcy5tZW51c1t0aGlzLmFjdGl2ZW1lbnVdLmhpZGUoKTsKCX0KfQoKCi8vICMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjCi8vIGluaXRpYWxpemUgbWVudSByZWdpc3RyeQoKdkJtZW51ID0gbmV3IHZCX1Bv
cHVwX0hhbmRsZXIoKTsKCi8qKgoqIEZ1bmN0aW9uIHRvIGFsbG93IGFueXRoaW5nIHRvIGhpZGUg
YWxsIG1lbnVzCioKKiBAcGFyYW0JZXZlbnQJRXZlbnQgb2JqZWN0CioKKiBAcmV0dXJuCW1peGVk
CiovCmZ1bmN0aW9uIHZibWVudV9oaWRlKGUpCnsKCWlmIChlICYmIGUuYnV0dG9uICYmIGUuYnV0
dG9uICE9IDEgJiYgZS50eXBlID09ICdjbGljaycpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgllbHNl
Cgl7CgkJdkJtZW51LmhpZGUoKTsKCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gdkJf
UG9wdXBfTWVudQovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKLyoqCiogdkJ1bGxldGluIHBvcHVw
IG1lbnUgY2xhc3MgY29uc3RydWN0b3IKKgoqIE1hbmFnZXMgYSBzaW5nbGUgbWVudSBhbmQgY29u
dHJvbCBvYmplY3QKKiBJbml0aWFsaXplcyBjb250cm9sIG9iamVjdAoqCiogQHBhcmFtCXN0cmlu
ZwlJRCBvZiB0aGUgY29udHJvbCBvYmplY3QKKi8KZnVuY3Rpb24gdkJfUG9wdXBfTWVudShjb250
cm9sa2V5LCBub2ltYWdlKQp7Cgl0aGlzLmNvbnRyb2xrZXkgPSBjb250cm9sa2V5OwoJdGhpcy5t
ZW51bmFtZSA9IHRoaXMuY29udHJvbGtleS5zcGxpdCgnLicpWzBdICsgJ19tZW51JzsKCgl0aGlz
LmluaXRfY29udHJvbChub2ltYWdlKTsKCglpZiAoZmV0Y2hfb2JqZWN0KHRoaXMubWVudW5hbWUp
KQoJewoJCXRoaXMuaW5pdF9tZW51KCk7Cgl9CgoJdGhpcy5zbGlkZV9vcGVuID0gKGlzX29wZXJh
ID8gZmFsc2UgOiB0cnVlKTsKCXRoaXMub3Blbl9zdGVwcyA9IHZCbWVudS5vcGVuX3N0ZXBzOwp9
CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQovLyB2Ql9Qb3B1cF9NZW51IG1ldGhvZHMKCi8qKgoq
IEluaXRpYWxpemUgdGhlIGNvbnRyb2wgb2JqZWN0CiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBl
LmluaXRfY29udHJvbCA9IGZ1bmN0aW9uKG5vaW1hZ2UpCnsKCXRoaXMuY29udHJvbG9iaiA9IGZl
dGNoX29iamVjdCh0aGlzLmNvbnRyb2xrZXkpOwoJdGhpcy5jb250cm9sb2JqLnN0YXRlID0gZmFs
c2U7CgoJaWYgKHRoaXMuY29udHJvbG9iai5maXJzdENoaWxkICYmICh0aGlzLmNvbnRyb2xvYmou
Zmlyc3RDaGlsZC50YWdOYW1lID09ICdURVhUQVJFQScgfHwgdGhpcy5jb250cm9sb2JqLmZpcnN0
Q2hpbGQudGFnTmFtZSA9PSAnSU5QVVQnKSkKCXsKCQkvLyBkbyBub3RoaW5nCgl9CgllbHNlCgl7
CgkJaWYgKCFub2ltYWdlICYmICEoaXNfbWFjICYmIGlzX2llKSkKCQl7CgkJCXZhciBzcGFjZSA9
IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CgkJCXRoaXMuY29udHJvbG9iai5hcHBlbmRD
aGlsZChzcGFjZSk7CgoJCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7
CgkJCWltZy5zcmMgPSBJTUdESVJfTUlTQyArICcvbWVudV9vcGVuLmdpZic7CgkJCWltZy5ib3Jk
ZXIgPSAwOwoJCQlpbWcudGl0bGUgPSAnJzsKCQkJaW1nLmFsdCA9ICcnOwoJCQl0aGlzLmNvbnRy
b2xvYmouYXBwZW5kQ2hpbGQoaW1nKTsKCQl9CgoJCXRoaXMuY29udHJvbG9iai51bnNlbGVjdGFi
bGUgPSB0cnVlOwoJCWlmICghbm9pbWFnZSkKCQl7CgkJCXRoaXMuY29udHJvbG9iai5zdHlsZS5j
dXJzb3IgPSBwb2ludGVyX2N1cnNvcjsKCQl9CgkJdGhpcy5jb250cm9sb2JqLm9uY2xpY2sgPSB2
Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLmNvbnRyb2xvYmpfb25jbGljazsKCQl0aGlzLmNvbnRy
b2xvYmoub25tb3VzZW92ZXIgPSB2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLmNvbnRyb2xvYmpf
b25tb3VzZW92ZXI7Cgl9Cn0KCi8qKgoqIEluaXQgdGhlIHBvcHVwIG1lbnUgb2JqZWN0CiovCnZC
X1BvcHVwX01lbnUucHJvdG90eXBlLmluaXRfbWVudSA9IGZ1bmN0aW9uKCkKewoJdGhpcy5tZW51
b2JqID0gZmV0Y2hfb2JqZWN0KHRoaXMubWVudW5hbWUpOwoKCWlmICh0aGlzLm1lbnVvYmogJiYg
IXRoaXMubWVudW9iai5pbml0aWFsaXplZCkKCXsKCQl0aGlzLm1lbnVvYmouaW5pdGlhbGl6ZWQg
PSB0cnVlOwoJCXRoaXMubWVudW9iai5vbmNsaWNrID0gZV9ieV9ndW07CgkJdGhpcy5tZW51b2Jq
LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJzsKCQl0aGlzLm1lbnVvYmouc3R5bGUuekluZGV4
ID0gNTA7CgoJCS8vIGluaXQgcG9wdXAgZmlsdGVycyAoaWUgb25seSkKCQlpZiAoaXNfaWUgJiYg
IWlzX21hYykKCQl7CgkJCXRoaXMubWVudW9iai5zdHlsZS5maWx0ZXIgKz0gInByb2dpZDpEWElt
YWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5hbHBoYShlbmFibGVkPTEsb3BhY2l0eT0xMDApIjsKCQkJ
dGhpcy5tZW51b2JqLnN0eWxlLmZpbHRlciArPSAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWlj
cm9zb2Z0LnNoYWRvdyhkaXJlY3Rpb249MTM1LGNvbG9yPSM4RThFOEUsc3RyZW5ndGg9MykiOwoJ
CX0KCgkJdGhpcy5pbml0X21lbnVfY29udGVudHMoKTsKCX0KfQoKLyoqCiogSW5pdCB0aGUgcG9w
dXAgbWVudSBjb250ZW50cwoqLwp2Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5pbml0X21lbnVfY29u
dGVudHMgPSBmdW5jdGlvbigpCnsKCXZhciB0ZHMgPSBmZXRjaF90YWdzKHRoaXMubWVudW9iaiwg
J3RkJyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IHRkcy5sZW5ndGg7IGkrKykKCXsKCQlpZiAodGRz
W2ldLmNsYXNzTmFtZSA9PSAndmJtZW51X29wdGlvbicpCgkJewoJCQlpZiAodGRzW2ldLnRpdGxl
ICYmIHRkc1tpXS50aXRsZSA9PSAnbm9oaWxpdGUnKQoJCQl7CgkJCQkvLyBub3QgYW4gYWN0aXZl
IGNlbGwKCQkJCXRkc1tpXS50aXRsZSA9ICcnOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJLy8gY3Jl
YXRlIGEgcmVmZXJlbmNlIGJhY2sgdG8gdGhlIG1lbnUgY2xhc3MKCQkJCXRkc1tpXS5jb250cm9s
a2V5ID0gdGhpcy5jb250cm9sa2V5OwoKCQkJCS8vIGhhbmRsZSBtb3VzZW92ZXIgLyBtb3VzZW91
dCBoaWdobGlnaHRpbmcgZXZlbnRzCgkJCQl0ZHNbaV0ub25tb3VzZW92ZXIgPSB2Ql9Qb3B1cF9F
dmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25tb3VzZW92ZXI7CgkJCQl0ZHNbaV0ub25tb3Vz
ZW91dCA9IHZCX1BvcHVwX0V2ZW50cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbm1vdXNlb3V0OwoK
CQkJCWlmICh0eXBlb2YgdGRzW2ldLm9uY2xpY2sgPT0gJ2Z1bmN0aW9uJykKCQkJCXsKCQkJCQkv
LyBhbGxvdyBvbmNsaWNrIGV2ZW50cyBmcm9tIDx0ZD4gZWxlbWVudHMgdG8gb3ZlcnJpZGUgPGE+
IGVsZW1lbnRzIGluc2lkZQoJCQkJCXRkc1tpXS5vZnVuYyA9IHRkc1tpXS5vbmNsaWNrOwoJCQkJ
CXRkc1tpXS5vbmNsaWNrID0gdkJfUG9wdXBfRXZlbnRzLnByb3RvdHlwZS5tZW51b3B0aW9uX29u
Y2xpY2tfZnVuY3Rpb247CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJLy8gYXR0ZW1wdCB0byBl
bXVsYXRlIGEgY2xpY2sgb24gaW50ZXJuYWwgPGE+IGVsZW1lbnRzCgkJCQkJdGRzW2ldLm9uY2xp
Y2sgPSB2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25jbGlja19saW5rOwoJ
CQkJfQoKCQkJCS8vIHdvbmRlcmluZyB3aGF0IHRoaXMgd2FzIHN1cHBvc2VkIHRvIGRvIGFjdHVh
bGx5Li4uCgkJCQlpZiAoIWlzX3NhZiAmJiAhaXNfa29uKQoJCQkJewoJCQkJCXRyeQoJCQkJCXsK
CQkJCQkJbGlua3MgPSBmZXRjaF90YWdzKHRkc1tpXSwgJ2EnKTsKCQkJCQkJZm9yICh2YXIgaiA9
IDA7IGogPCBsaW5rcy5sZW5ndGg7IGorKykKCQkJCQkJewoJCQkJCQkJaWYgKHR5cGVvZiBsaW5r
c1tqXS5vbmNsaWNrICA9PSAndW5kZWZpbmVkJykKCQkJCQkJCXsKCQkJCQkJCQlsaW5rc1tqXS5v
bmNsaWNrID0gZV9ieV9ndW07CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQkJY2F0Y2goZSkK
CQkJCQl7CgkJCQkJCS8vIGhtbW0uLi4KCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KCi8qKgoq
IFNob3cgdGhlIG1lbnUKKgoqIEBwYXJhbQlvYmplY3QJVGhlIGNvbnRyb2wgb2JqZWN0IGNhbGxp
bmcgdGhlIG1lbnUKKiBAcGFyYW0JYm9vbGVhbglVc2Ugc2xpZGUgKGZhbHNlKSBvciBvcGVuIGlu
c3RhbnRseT8gKHRydWUpCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLnNob3cgPSBmdW5jdGlv
bihvYmosIGluc3RhbnQpCnsKCWlmICghdkJtZW51LmFjdGl2ZSkKCXsKCQlyZXR1cm4gZmFsc2U7
Cgl9CgllbHNlIGlmICghdGhpcy5tZW51b2JqKQoJewoJCXRoaXMuaW5pdF9tZW51KCk7Cgl9CgoJ
aWYgKCF0aGlzLm1lbnVvYmopCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWlmICh2Qm1lbnUuYWN0
aXZlbWVudSAhPSBudWxsKQoJewoJCXZCbWVudS5tZW51c1t2Qm1lbnUuYWN0aXZlbWVudV0uaGlk
ZSgpOwoJfQoKCXZCbWVudS5hY3RpdmVtZW51ID0gdGhpcy5jb250cm9sa2V5OwoKCXRoaXMubWVu
dW9iai5zdHlsZS5kaXNwbGF5ID0gJyc7CglpZiAodkJtZW51LnNsaWRlX29wZW4pCgl7CgkJdGhp
cy5tZW51b2JqLnN0eWxlLmNsaXAgPSAncmVjdChhdXRvLCBhdXRvLCBhdXRvLCBhdXRvKSc7Cgl9
Cgl0aGlzLnBvcyA9IHRoaXMuZmV0Y2hfb2Zmc2V0KG9iaik7Cgl0aGlzLmxlZnRweCA9IHRoaXMu
cG9zWydsZWZ0J107Cgl0aGlzLnRvcHB4ID0gdGhpcy5wb3NbJ3RvcCddICsgb2JqLm9mZnNldEhl
aWdodDsKCglpZiAoKHRoaXMubGVmdHB4ICsgdGhpcy5tZW51b2JqLm9mZnNldFdpZHRoKSA+PSBk
b2N1bWVudC5ib2R5LmNsaWVudFdpZHRoICYmICh0aGlzLmxlZnRweCArIG9iai5vZmZzZXRXaWR0
aCAtIHRoaXMubWVudW9iai5vZmZzZXRXaWR0aCkgPiAwKQoJewoJCXRoaXMubGVmdHB4ID0gdGhp
cy5sZWZ0cHggKyBvYmoub2Zmc2V0V2lkdGggLSB0aGlzLm1lbnVvYmoub2Zmc2V0V2lkdGg7CgkJ
dGhpcy5kaXJlY3Rpb24gPSAncmlnaHQnOwoJfQoJZWxzZQoJewoJCXRoaXMuZGlyZWN0aW9uID0g
J2xlZnQnCgl9CgoJdGhpcy5tZW51b2JqLnN0eWxlLmxlZnQgPSB0aGlzLmxlZnRweCArICdweCc7
Cgl0aGlzLm1lbnVvYmouc3R5bGUudG9wICA9IHRoaXMudG9wcHggKyAncHgnOwoKCWlmICghaW5z
dGFudCAmJiB0aGlzLnNsaWRlX29wZW4pCgl7CgkJdGhpcy5pbnRlcnZhbFggPSBNYXRoLmNlaWwo
dGhpcy5tZW51b2JqLm9mZnNldFdpZHRoIC8gdGhpcy5vcGVuX3N0ZXBzKTsKCQl0aGlzLmludGVy
dmFsWSA9IE1hdGguY2VpbCh0aGlzLm1lbnVvYmoub2Zmc2V0SGVpZ2h0IC8gdGhpcy5vcGVuX3N0
ZXBzKTsKCQl0aGlzLnNsaWRlKCh0aGlzLmRpcmVjdGlvbiA9PSAnbGVmdCcgPyAwIDogdGhpcy5t
ZW51b2JqLm9mZnNldFdpZHRoKSwgMCwgMCk7Cgl9CgllbHNlIGlmICh0aGlzLm1lbnVvYmouc3R5
bGUuY2xpcCAmJiB2Qm1lbnUuc2xpZGVfb3BlbikKCXsKCQl0aGlzLm1lbnVvYmouc3R5bGUuY2xp
cCA9ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8sIGF1dG8pJzsKCX0KCgkvLyBkZWFsIHdpdGggSUUg
cHV0dGluZyA8c2VsZWN0PiBlbGVtZW50cyBvbiB0b3Agb2YgZXZlcnl0aGluZwoJdGhpcy5oYW5k
bGVfb3ZlcmxhcHModHJ1ZSk7CgoJaWYgKHRoaXMuY29udHJvbG9iai5lZGl0b3JpZCkKCXsKCQl0
aGlzLmNvbnRyb2xvYmouc3RhdGUgPSB0cnVlOwoJCS8vdGhpcy5jb250cm9sb2JqLmVkaXRvci5t
ZW51X2NvbnRleHQodGhpcy5jb250cm9sb2JqLCAnbW91c2Vkb3duJyk7CgkJdkJfRWRpdG9yW3Ro
aXMuY29udHJvbG9iai5lZGl0b3JpZF0ubWVudV9jb250ZXh0KHRoaXMuY29udHJvbG9iaiwgJ21v
dXNlZG93bicpOwoJfQp9CgovKioKKiBIaWRlIHRoZSBtZW51CiovCnZCX1BvcHVwX01lbnUucHJv
dG90eXBlLmhpZGUgPSBmdW5jdGlvbihlKQp7CgoJaWYgKGUgJiYgZS5idXR0b24gJiYgZS5idXR0
b24gIT0gMSkKCXsKCQkvLyBnZXQgYXJvdW5kIHNvbWUgY29udGV4dCBtZW51IGlzc3VlcyBldGMu
CgkJcmV0dXJuIHRydWU7Cgl9CgoJdGhpcy5zdG9wX3NsaWRlKCk7CgoJdGhpcy5tZW51b2JqLnN0
eWxlLmRpc3BsYXkgPSAnbm9uZSc7CgoJdGhpcy5oYW5kbGVfb3ZlcmxhcHMoZmFsc2UpOwoKCWlm
ICh0aGlzLmNvbnRyb2xvYmouZWRpdG9yaWQpCgl7CgkJdGhpcy5jb250cm9sb2JqLnN0YXRlID0g
ZmFsc2U7CgkJLy90aGlzLmNvbnRyb2xvYmouZWRpdG9yLm1lbnVfY29udGV4dCh0aGlzLmNvbnRy
b2xvYmosICdtb3VzZW91dCcpOwoJCXZCX0VkaXRvclt0aGlzLmNvbnRyb2xvYmouZWRpdG9yaWRd
Lm1lbnVfY29udGV4dCh0aGlzLmNvbnRyb2xvYmosICdtb3VzZW91dCcpOwoJfQoKCXZCbWVudS5h
Y3RpdmVtZW51ID0gbnVsbDsKfQoKLyoqCiogSG92ZXIgYmVoYXZpb3VyIGZvciBjb250cm9sIG9i
amVjdAoqLwp2Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5ob3ZlciA9IGZ1bmN0aW9uKG9iaikKewoJ
aWYgKHZCbWVudS5hY3RpdmVtZW51ICE9IG51bGwpCgl7CgkJaWYgKHZCbWVudS5tZW51c1t2Qm1l
bnUuYWN0aXZlbWVudV0uY29udHJvbGtleSAhPSB0aGlzLmlkKQoJCXsKCQkJdGhpcy5zaG93KG9i
aiwgdHJ1ZSk7CgkJfQoJfQp9CgovKioKKiBTaW11bGF0ZSBjbGlja2luZyBhbiBvcHRpb24gaW4g
YSBtZW51CioKKiBAcGFyYW0JZXZlbnQJRXZlbnQgb2JqZWN0CiogQHBhcmFtCW9iamVjdAlDbGlj
a2VkIG9iamVjdAoqLwp2Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5jaG9vc2UgPSBmdW5jdGlvbihl
LCBvYmopCnsKCXZhciBsaW5rcyA9IGZldGNoX3RhZ3Mob2JqLCAnYScpOwoJaWYgKGxpbmtzWzBd
KQoJewoJCWlmIChpc19pZSkKCQl7CgkJCS8vIHVzZSB0aGlzIGluIElFIHRvIHNlbmQgSFRUUF9S
RUZFUkVSCgkJCWxpbmtzWzBdLmNsaWNrKCk7CgkJCXdpbmRvdy5ldmVudC5jYW5jZWxCdWJibGUg
PSB0cnVlOwoJCX0KCQllbHNlCgkJewoJCQkvLyBvdGhlciBicm93c2VycyBjYW4gdXNlIHRoaXMK
CQkJaWYgKGUuc2hpZnRLZXkpCgkJCXsKCQkJCXdpbmRvdy5vcGVuKGxpbmtzWzBdLmhyZWYpOwoJ
CQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJfQoJCQll
bHNlCgkJCXsKCQkJCXdpbmRvdy5sb2NhdGlvbiA9IGxpbmtzWzBdLmhyZWY7CgkJCQllLnN0b3BQ
cm9wYWdhdGlvbigpOwoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQl9CgkJfQoKCQl0aGlzLmhp
ZGUoKTsKCX0KfQoKLyoqCiogU2xpZGVzIG1lbnUgb3BlbgoqCiogQHBhcmFtCWludGVnZXIJQ2xp
cCBYCiogQHBhcmFtCWludGVnZXIJQ2xpcCBZCiogQHBhcmFtCWludGVnZXIJT3BhY2l0eSAoMC0x
MDApCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLnNsaWRlID0gZnVuY3Rpb24oY2xpcFgsIGNs
aXBZLCBvcGFjaXR5KQp7CglpZiAodGhpcy5kaXJlY3Rpb24gPT0gJ2xlZnQnICYmIChjbGlwWCA8
IHRoaXMubWVudW9iai5vZmZzZXRXaWR0aCB8fCBjbGlwWSA8IHRoaXMubWVudW9iai5vZmZzZXRI
ZWlnaHQpKQoJewoJCWlmICh2Qm1lbnUub3Blbl9mYWRlICYmIGlzX2llKQoJCXsKCQkJb3BhY2l0
eSArPSAxMDsKCQkJdGhpcy5tZW51b2JqLmZpbHRlcnMuaXRlbSgnRFhJbWFnZVRyYW5zZm9ybS5N
aWNyb3NvZnQuYWxwaGEnKS5vcGFjaXR5ID0gb3BhY2l0eTsKCQl9CgoJCWNsaXBYICs9IHRoaXMu
aW50ZXJ2YWxYOwoJCWNsaXBZICs9IHRoaXMuaW50ZXJ2YWxZOwoKCQl0aGlzLm1lbnVvYmouc3R5
bGUuY2xpcCA9ICJyZWN0KGF1dG8sICIgKyBjbGlwWCArICJweCwgIiArIGNsaXBZICsgInB4LCBh
dXRvKSI7CgkJdGhpcy5zbGlkZXRpbWVyID0gc2V0VGltZW91dCgidkJtZW51Lm1lbnVzW3ZCbWVu
dS5hY3RpdmVtZW51XS5zbGlkZSgiICsgY2xpcFggKyAiLCAiICsgY2xpcFkgKyAiLCAiICsgb3Bh
Y2l0eSArICIpOyIsIDApOwoJfQoJZWxzZSBpZiAodGhpcy5kaXJlY3Rpb24gPT0gJ3JpZ2h0JyAm
JiAoY2xpcFggPiAwIHx8IGNsaXBZIDwgdGhpcy5tZW51b2JqLm9mZnNldEhlaWdodCkpCgl7CgkJ
aWYgKHZCbWVudS5vcGVuX2ZhZGUgJiYgaXNfaWUpCgkJewoJCQlvcGFjaXR5ICs9IDEwOwoJCQlt
ZW51b2JqLmZpbHRlcnMuaXRlbSgnRFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuYWxwaGEnKS5v
cGFjaXR5ID0gb3BhY2l0eTsKCQl9CgoJCWNsaXBYIC09IHRoaXMuaW50ZXJ2YWxYOwoJCWNsaXBZ
ICs9IHRoaXMuaW50ZXJ2YWxZOwoKCQl0aGlzLm1lbnVvYmouc3R5bGUuY2xpcCA9ICJyZWN0KGF1
dG8sICIgKyB0aGlzLm1lbnVvYmoub2Zmc2V0V2lkdGggKyAicHgsICIgKyBjbGlwWSArICJweCwg
IiArIGNsaXBYICsgInB4KSI7CgkJdGhpcy5zbGlkZXRpbWVyID0gc2V0VGltZW91dCgidkJtZW51
Lm1lbnVzW3ZCbWVudS5hY3RpdmVtZW51XS5zbGlkZSgiICsgY2xpcFggKyAiLCAiICsgY2xpcFkg
KyAiLCAiICsgb3BhY2l0eSArICIpOyIsIDApOwoJfQoJZWxzZQoJewoJCXRoaXMuc3RvcF9zbGlk
ZSgpOwoJfQp9CgovKioKKiBBYm9ydCBtZW51IHNsaWRlcgoqLwp2Ql9Qb3B1cF9NZW51LnByb3Rv
dHlwZS5zdG9wX3NsaWRlID0gZnVuY3Rpb24oKQp7CgljbGVhclRpbWVvdXQodGhpcy5zbGlkZXRp
bWVyKTsKCgl0aGlzLm1lbnVvYmouc3R5bGUuY2xpcCA9ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8s
IGF1dG8pJzsKCglpZiAodkJtZW51Lm9wZW5fZmFkZSAmJiBpc19pZSkKCXsKCQl0aGlzLm1lbnVv
YmouZmlsdGVycy5pdGVtKCdEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5hbHBoYScpLm9wYWNp
dHkgPSAxMDA7Cgl9Cn0KCi8qKgoqIEZldGNoIG9mZnNldCBvZiBhbiBvYmplY3QKKgoqIEBwYXJh
bQlvYmplY3QJVGhlIG9iamVjdCB0byBiZSBtZWFzdXJlZAoqCiogQHJldHVybglhcnJheQlUaGUg
bWVhc3VyZWQgb2Zmc2V0cyBsZWZ0L3RvcAoqLwp2Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5mZXRj
aF9vZmZzZXQgPSBmdW5jdGlvbihvYmopCnsKCXZhciBsZWZ0X29mZnNldCA9IG9iai5vZmZzZXRM
ZWZ0OwoJdmFyIHRvcF9vZmZzZXQgPSBvYmoub2Zmc2V0VG9wOwoKCXdoaWxlICgob2JqID0gb2Jq
Lm9mZnNldFBhcmVudCkgIT0gbnVsbCkKCXsKCQlsZWZ0X29mZnNldCArPSBvYmoub2Zmc2V0TGVm
dDsKCQl0b3Bfb2Zmc2V0ICs9IG9iai5vZmZzZXRUb3A7Cgl9CgoJcmV0dXJuIHsgJ2xlZnQnIDog
bGVmdF9vZmZzZXQsICd0b3AnIDogdG9wX29mZnNldCB9Owp9CgovKioKKiBEZXRlY3QgYW4gb3Zl
cmxhcCBvZiBhbiBvYmplY3QgYW5kIGEgbWVudQoqCiogQHBhcmFtCW9iamVjdAlPYmplY3QgdG8g
YmUgdGVzdGVkIGZvciBvdmVybGFwCiogQHBhcmFtCWFycmF5CUFycmF5IG9mIGRpbWVuc2lvbnMg
Zm9yIG1lbnUgb2JqZWN0CioKKiBAcmV0dXJuCWJvb2xlYW4JVHJ1ZSBpZiBvdmVybGFwCiovCnZC
X1BvcHVwX01lbnUucHJvdG90eXBlLm92ZXJsYXBzID0gZnVuY3Rpb24ob2JqLCBtKQp7Cgl2YXIg
cyA9IG5ldyBBcnJheSgpOwoJdmFyIHBvcyA9IHRoaXMuZmV0Y2hfb2Zmc2V0KG9iaik7CglzWydM
J10gPSBwb3NbJ2xlZnQnXTsKCXNbJ1QnXSA9IHBvc1sndG9wJ107CglzWydSJ10gPSBzWydMJ10g
KyBvYmoub2Zmc2V0V2lkdGg7CglzWydCJ10gPSBzWydUJ10gKyBvYmoub2Zmc2V0SGVpZ2h0OwoK
CglpZiAoc1snTCddID4gbVsnUiddIHx8IHNbJ1InXSA8IG1bJ0wnXSB8fCBzWydUJ10gPiBtWydC
J10gfHwgc1snQiddIDwgbVsnVCddKQoJewoJCXJldHVybiBmYWxzZTsKCX0KCXJldHVybiB0cnVl
Owp9CgovKioKKiBIYW5kbGUgSUUgb3ZlcmxhcHBpbmcgPHNlbGVjdD4gZWxlbWVudHMKKgoqIEBw
YXJhbQlib29sZWFuCUhpZGUgKHRydWUpIG9yIHNob3cgKGZhbHNlKSBvdmVybGFwcGluZyA8c2Vs
ZWN0PiBlbGVtZW50cwoqLwp2Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5oYW5kbGVfb3ZlcmxhcHMg
PSBmdW5jdGlvbihkb2hpZGUpCnsKCWlmIChpc19pZSkKCXsKCQl2YXIgc2VsZWN0cyA9IGZldGNo
X3RhZ3MoZG9jdW1lbnQsICdzZWxlY3QnKTsKCgkJaWYgKGRvaGlkZSkKCQl7CgkJCXZhciBtZW51
YXJlYSA9IG5ldyBBcnJheSgpOyBtZW51YXJlYSA9IHsKCQkJCSdMJyA6IHRoaXMubGVmdHB4LAoJ
CQkJJ1InIDogdGhpcy5sZWZ0cHggKyB0aGlzLm1lbnVvYmoub2Zmc2V0V2lkdGgsCgkJCQknVCcg
OiB0aGlzLnRvcHB4LAoJCQkJJ0InIDogdGhpcy50b3BweCArIHRoaXMubWVudW9iai5vZmZzZXRI
ZWlnaHQKCQkJfTsKCgkJCWZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykK
CQkJewoJCQkJaWYgKHRoaXMub3ZlcmxhcHMoc2VsZWN0c1tpXSwgbWVudWFyZWEpKQoJCQkJewoJ
CQkJCXZhciBoaWRlID0gdHJ1ZTsKCQkJCQl2YXIgcyA9IHNlbGVjdHNbaV07CgkJCQkJd2hpbGUg
KHMgPSBzLnBhcmVudE5vZGUpCgkJCQkJewoJCQkJCQlpZiAocy5jbGFzc05hbWUgPT0gJ3ZibWVu
dV9wb3B1cCcpCgkJCQkJCXsKCQkJCQkJCWhpZGUgPSBmYWxzZTsKCQkJCQkJCWJyZWFrOwoJCQkJ
CQl9CgkJCQkJfQoKCQkJCQlpZiAoaGlkZSkKCQkJCQl7CgkJCQkJCXNlbGVjdHNbaV0uc3R5bGUu
dmlzaWJpbGl0eSA9ICdoaWRkZW4nOwoJCQkJCQlhcnJheV9wdXNoKHZCbWVudS5oaWRkZW5fc2Vs
ZWN0cywgaSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCXdoaWxlICh0cnVl
KQoJCQl7CgkJCQl2YXIgaSA9IGFycmF5X3BvcCh2Qm1lbnUuaGlkZGVuX3NlbGVjdHMpOwoJCQkJ
aWYgKHR5cGVvZiBpID09ICd1bmRlZmluZWQnIHx8IGkgPT0gbnVsbCkKCQkJCXsKCQkJCQlicmVh
azsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQlzZWxlY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkg
PSAndmlzaWJsZSc7CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
Ci8vIE1lbnUgZXZlbnQgaGFuZGxlciBmdW5jdGlvbnMKCi8qKgoqIENsYXNzIGNvbnRhaW5pbmcg
bWVudSBwb3B1cCBldmVudCBoYW5kbGVycwoqLwpmdW5jdGlvbiB2Ql9Qb3B1cF9FdmVudHMoKQp7
Cn0KCi8qKgoqIEhhbmRsZXMgY29udHJvbCBvYmplY3QgY2xpY2sgZXZlbnRzCiovCnZCX1BvcHVw
X0V2ZW50cy5wcm90b3R5cGUuY29udHJvbG9ial9vbmNsaWNrID0gZnVuY3Rpb24oZSkKewoJZG9f
YW5fZShlKTsKCWlmICh2Qm1lbnUuYWN0aXZlbWVudSA9PSBudWxsIHx8IHZCbWVudS5tZW51c1t2
Qm1lbnUuYWN0aXZlbWVudV0uY29udHJvbGtleSAhPSB0aGlzLmlkKQoJewoJCXZCbWVudS5tZW51
c1t0aGlzLmlkXS5zaG93KHRoaXMpOwoJfQoJZWxzZQoJewoJCXZCbWVudS5tZW51c1t0aGlzLmlk
XS5oaWRlKCk7Cgl9Cn07CgovKioKKiBIYW5kbGVzIGNvbnRyb2wgb2JqZWN0IG1vdXNlb3ZlciBl
dmVudHMKKi8KdkJfUG9wdXBfRXZlbnRzLnByb3RvdHlwZS5jb250cm9sb2JqX29ubW91c2VvdmVy
ID0gZnVuY3Rpb24oZSkKewoJZG9fYW5fZShlKTsKCXZCbWVudS5tZW51c1t0aGlzLmlkXS5ob3Zl
cih0aGlzKTsKfTsKCi8qKgoqIEhhbmRsZXMgbWVudSBvcHRpb24gY2xpY2sgZXZlbnRzIGZvciBv
cHRpb25zIHdpdGggb25jbGljayBldmVudHMKKi8KdkJfUG9wdXBfRXZlbnRzLnByb3RvdHlwZS5t
ZW51b3B0aW9uX29uY2xpY2tfZnVuY3Rpb24gPSBmdW5jdGlvbihlKQp7Cgl0aGlzLm9mdW5jKGUp
OwoJdkJtZW51Lm1lbnVzW3RoaXMuY29udHJvbGtleV0uaGlkZSgpOwp9OwoKLyoqCiogSGFuZGxl
cyBtZW51IG9wdGlvbiBjbGljayBldmVudHMgZm9yIG9wdGlvbnMgY29udGFpbmluZyBsaW5rcwoq
Lwp2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25jbGlja19saW5rID0gZnVu
Y3Rpb24oZSkKewoJdkJtZW51Lm1lbnVzW3RoaXMuY29udHJvbGtleV0uY2hvb3NlKGUsIHRoaXMp
Owp9OwoKLyoqCiogSGFuZGxlcyBtZW51IG9wdGlvbiBtb3VzZW92ZXIgZXZlbnRzCiovCnZCX1Bv
cHVwX0V2ZW50cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbm1vdXNlb3ZlciA9IGZ1bmN0aW9uKGUp
CnsKCXRoaXMuY2xhc3NOYW1lID0gJ3ZibWVudV9oaWxpdGUnOwp9OwoKLyoqCiogSGFuZGxlcyBt
ZW51IG9wdGlvbiBtb3VzZW91dCBldmVudHMKKi8KdkJfUG9wdXBfRXZlbnRzLnByb3RvdHlwZS5t
ZW51b3B0aW9uX29ubW91c2VvdXQgPSBmdW5jdGlvbihlKQp7Cgl0aGlzLmNsYXNzTmFtZSA9ICd2
Ym1lbnVfb3B0aW9uJzsKfTsKCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCnx8ICMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnx8ICMg
RG93bmxvYWRlZDogMDg6NTcsIFdlZCBNYXkgM3JkIDIwMDYKfHwgIyBDVlM6ICRSQ1NmaWxlOiB2
YnVsbGV0aW5fbWVudS5qcyx2ICQgLSAkUmV2aXNpb246IDEuNDAgJAp8fCAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpc
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0qL18QPGh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2NsaWVudHNj
cmlwdC92YnVsbGV0aW5fbWVudS5qc9QFBgcIFxgZGk8RBHpicGxpc3QwMNQBAgMEBQYHClkkYXJj
aGl2ZXJYJHZlcnNpb25UJHRvcFgkb2JqZWN0c18QD05TS2V5ZWRBcmNoaXZlchIAAYag0QgJXxAT
V2ViUmVzb3VyY2VSZXNwb25zZYABrxAdCwwpLzA3ODxUVVZXWFlaW1xdXl9aYGFiYzdkaGtVJG51
bGzfEBANDg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJiceKFIkNlMkMTBSJDJTJDEzUiQ3UiQz
UyQxMVIkOFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIkMRAHEAGABYAGgAAjQaQdB6T9vIgR
AjgQACNBpB0HomLz5IAcI0GkHVN7mGqPgALTKisZIS0uV05TLmJhc2VbTlMucmVsYXRpdmWAAIAD
gARfEEhodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZXMvYXMyZ3JhcGhpdGUvc3Rh
dHVzaWNvbi9wb3N0X29sZC5naWbSMTIzNFgkY2xhc3Nlc1okY2xhc3NuYW1lozQ1NlVOU1VSTFYl
TlNVUkxYTlNPYmplY3RZaW1hZ2UvZ2lm0xgZHDk6O4AHgBsQyNM9Phk/SVNaTlMub2JqZWN0c1dO
Uy5rZXlzqUBBQkNERUZHSIARgBKAE4AUgBWAFoAXgBiAGalKS0xNTk9QUVKACIAJgAqAC4AMgA2A
DoAPgBCAGlZTZXJ2ZXJdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzWkNvbm5lY3Rpb25URGF0
ZV5Db250ZW50LUxlbmd0aFpLZWVwLUFsaXZlVEV0YWdcQ29udGVudC1UeXBlXUFwYWNoZS8xLjMu
MjlfEB1TYXQsIDA2IE1heSAyMDA2IDE2OjM4OjA2IEdNVFVieXRlc18QHVN1biwgMDcgTWF5IDIw
MDYgMTk6MzY6NDcgR01UUzU2OF8QEXRpbWVvdXQ9NSwgbWF4PTk5XxAVImUzZjRmZi0yMzgtNDQ1
Y2QwZWUi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSMTJpaqJq
Nl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hUVFBVUkxSZXNwb25z
ZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCwALQAtwC7AL4AwQDF
AMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsBIwEvATEBMwE1AYAB
hQGOAZkBnQGjAaoBswG9AcQBxgHIAcoB0QHcAeQB7gHwAfIB9AH2AfgB+gH8Af4CAAIKAgwCDgIQ
AhICFAIWAhgCGgIcAh4CJQIzAkECTAJRAmACawJwAn0CiwKrArEC0QLVAukDAQMGAwoDIAMtAzID
NQNRA1YDWgNuAAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA3xPEQI4R0lGODlhCwAOAOYA
AP37/PXz9Ozq6+fl5vr5+vX09fTz9PPy8/Lx8vHw8e7t7uzr7Ovq6+rp6uno6efm5/r5+/X09vHw
8u3s7ufm6NjU4Pb1+NjU4dfU39fV3/X1+PDw8urq7Obm6Pf3+Pb29/Pz9O3t7urq6+jo6cfIzcHC
x/P0+PDx9fP09/Lz9vHy9dna3djZ3O3x+3R2e5CSl9TW29LU2ZiantXX29TW2tHT19ja3tTV19PU
1szNz5ueo8HEye3z/JWXmvL099XX2tTW2dPV2GZpbdLV2ZeanZWYm5SXmtTX2tPW2dLV2PP19/Lz
9O/w8err7GNnatTX2dPX2b/BwoaLjfz9/fLz8+/w8P39/Pn5+O/v7vz6+e7s7Ovp6efl5eXj4/f2
9vb19fX09O/u7u3s7Ozr6+vq6uTj4/////f39/X19fT09O/v7+7u7unp6efn5+3z/gAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAG4ALAAAAAAL
AA4AAAeVgG6Cg4RuNRkXGBgVGEMxMDU3FicqKSYoSj4aODZmaWdUVUxrIWYsSGYOIiMUTWwcZkk/
Zg8PIgsRSx5mUDNmXgVqCB0gaGZPR2Zhaw5tDQ8bZkC+YgsCAxNkH2YrMGZbXQZjChAAU0FJZlpc
DGVYEiVSMjRmWV9XAVYhLk5uQQUJDBwAQyCKEEE7iLwoUsRIDx2DAgEAO18QSGh0dHA6Ly93d3cu
bWFjaXR5bmV0Lml0L2ZvcnVtL2ltYWdlcy9hczJncmFwaGl0ZS9zdGF0dXNpY29uL3Bvc3Rfb2xk
LmdpZllpbWFnZS9naWbUBQYHCBwdHh9PEQVgYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2
ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291
cmNlUmVzcG9uc2WAAa8QJQsMKS8wNzg8XF1eX2BhYmNkZWZnaGlqa2RsbW5vcHFyczd0eHtVJG51
bGzfEBANDg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJiceKFIkNlMkMTBSJDJTJDEzUiQ3UiQz
UyQxMVIkOFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIkMRAHEAGABYAGgAAjQaQdDwyNOj8R
LkQQACNBpB0PC/QiRoAkI0Gn33YLZugHgALTKisZIS0uV05TLmJhc2VbTlMucmVsYXRpdmWAAIAD
gARfEENodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZS5waHA/dT0xMjc4MiZkYXRl
bGluZT0xMTA2NzM0MDI10jEyMzRYJGNsYXNzZXNaJGNsYXNzbmFtZaM0NTZVTlNVUkxWJU5TVVJM
WE5TT2JqZWN0WWltYWdlL3BuZ9MYGRw5OjuAB4AjEMjTPT4ZP01bWk5TLm9iamVjdHNXTlMua2V5
c61AQUJDREVGR0hJSktMgBWAFoAXgBiAGYAagBuAHIAdgB6AH4AggCGtTk9QUVJTVFVWV1hZWoAI
gAmACoALgAyADYAOgA+AEIARgBKAE4AUgCJWU2VydmVyXUxhc3QtTW9kaWZpZWRdQ2FjaGUtQ29u
dHJvbFpDb25uZWN0aW9uVERhdGVfEBNDb250ZW50LURpc3Bvc2l0aW9uV0V4cGlyZXNeQ29udGVu
dC1MZW5ndGhaS2VlcC1BbGl2ZVxYLVBvd2VyZWQtQnlfEBlDb250ZW50LVRyYW5zZmVyLUVuY29k
aW5nVEV0YWdcQ29udGVudC1UeXBlXUFwYWNoZS8xLjMuMjlfEB1XZWQsIDI2IEphbiAyMDA1IDEw
OjA3OjA1IEdNVF8QEG1heC1hZ2U9MzE1MzYwMDBfEB1TdW4sIDA3IE1heSAyMDA2IDE5OjUyOjM4
IEdNVF8QI2lubGluZTsgZmlsZW5hbWU9QXZhdGFyIE9sYWYgODAucG5nXxAdTW9uLCAwNyBNYXkg
MjAwNyAxOTo1MjozOCBHTVRVMTE4NDRfEBF0aW1lb3V0PTUsIG1heD05OVpQSFAvNC4zLjEwVmJp
bmFyeV8QEiIxMTA2NzM0MDI1LTEyNzgyItIxMnV2o3Z3Nl8QE05TTXV0YWJsZURpY3Rpb25hcnlc
TlNEaWN0aW9uYXJ50jEyeXqiejZfEBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEyfH2jfX42
XxARTlNIVFRQVVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQA
jACSALUAuAC8AL8AwwDGAMkAzQDQANMA1wDaAN0A5ADnAOsA7gDwAPIA9AD2APgBAQEEAQYBDwER
ARoBHAEjASsBNwE5ATsBPQGDAYgBkQGcAaABpgGtAbYBwAHHAckBywHNAdQB3wHnAfUB9wH5AfsB
/QH/AgECAwIFAgcCCQILAg0CDwIdAh8CIQIjAiUCJwIpAisCLQIvAjECMwI1AjcCOQJAAk4CXAJn
AmwCggKKApkCpAKxAs0C0gLfAu0DDQMgA0ADZgOGA4wDoAOrA7IDxwPMA9AD5gPzA/gD+wQXBBwE
IAQ0AAAAAAAAAgEAAAAAAAAAfwAAAAAAAAAAAAAAAAAABEJPES5EiVBORw0KGgoAAAANSUhEUgAA
AFAAAABQCAIAAAABc2X6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QEaCgYfWiaW0gAA
IABJREFUeNp9vGmTZEl2HXYX97fGHrnV3lXdXVU93bP2wGawzGA4GAKgJJAiQYEgjfxD+hUyE2RG
k/GDaPwgkzQ2AMQhZp/e16quvXLPjP1t7n6vPryIrGoApmdhVZWWUZnvPr9+7znnHg/8n7/7FgAg
IhEB8JyK7/7590JHUtN5cu/Z5z//eIs7LCRBFYKCBiAadBqpqGo8yJvf/0Z+qSssgKRCURTff+/+
4cfPrr154+pbV1fLVZxExkZKoCoIQICqIBDYJL/98a+r4+UP/uIPP3v8WJzuPz7RoKuysLZzfHyw
t7uDEFAQVDVA+fS8IeTYjldhji67ttVwMErFk/MtFx/Vi70oAdAiaIYGMYAiArQvhfWFCqR68SUg
akrJ448eRWjKUO69vvdP/uKPdMeeY6ERsTHEZImK2fTqK9fsOEdjDr54HpkY0SAQM4XQ3Hn7No/i
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
ILVlCBcfmaKqAdEgRMH3ka8nyRv94WtZb8tYL/7e/PyDcjY1xhMDkKropuv+I59Q8Q82BQIwEhGq
arlYGIJer5uksQAdHJ5e3t2JmPkvb96kFl8jUIA0zQ6XMyESbPMOFLGsq708s7r5lIT14T1QACFV
kIgpGJyXK2uoywYBnKpjszS8gtCWpI2SjzHg5SR7fTC8mqa9IE1VHZerR8vpp8vpM1CH0UVLDbhO
1E1uvNxSNmaFDSZB3ZjfFbpZHlt7cnzc7fWiKN4aDZ8fHrmm2hoP+d/duvmi2hOkhI7hvGlozerX
DrXQNKM0t6KocoHwN8ABjNDYxFfyzpUsv5qk17POVhznRBiCc76d+MmFDRAAXDOZTZ4uZ0/q+pl3
RypTwoqNACmC6BoaXES7+WSGl04x4IuA15bfdm1BOmkaExVNCYin55PReJQY0x0O7j98NOj3+d/c
eqVyjTEGNguWx/mz5dIRXhjTBGHhG/Ayzjqoum5NL+VYQAUVVomDGPWoEgF0rB0nyXbeW4Ff+GYz
y4QAVCtVxlbGNhR5It/OSRQUsBVJdLO2f5/pfYn1AQIGXRMpay2o5HGcRrasCkFWIFGYnE92BuO8
22lcE5z8f5A4cPntEJ+rAAAAAElFTkSuQmCCXxBDaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9y
dW0vaW1hZ2UucGhwP3U9MTI3ODImZGF0ZWxpbmU9MTEwNjczNDAyNVlpbWFnZS9wbmfUBQYHCCEi
IxpPEQRzYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNf
EA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNlUmVzcG9uc2WAAa8QHQsMKS8w
Nzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBESExQVFhcYGRobHB0eHx4gIR4i
IyQlHSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRTJDE0UiQ5UiQwViRjbGFzc1Ik
NVMkMTJSJDEQBxABgAWABoAAI0GkHQ8MoDp1EQP9EAAjQaQdDwv6dSWAHCNBpB1b9Y1t44AC0yor
GSEtLldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxBAaHR0cDovL3d3dy5tYWNpdHluZXQuaXQv
Zm9ydW0vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1faWNxLmdpZtIxMjM0WCRjbGFzc2VzWiRj
bGFzc25hbWWjNDU2VU5TVVJMViVOU1VSTFhOU09iamVjdFlpbWFnZS9naWbTGBkcOTo7gAeAGxDI
0z0+GT9JU1pOUy5vYmplY3RzV05TLmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpL
TE1OT1BRUoAIgAmACoALgAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1S
YW5nZXNaQ29ubmVjdGlvblREYXRlXkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250
ZW50LVR5cGVdQXBhY2hlLzEuMy4yOV8QHVNhdCwgMDYgTWF5IDIwMDYgMTY6MzE6NDcgR01UVWJ5
dGVzXxAdU3VuLCAwNyBNYXkgMjAwNiAxOTo1MjozOCBHTVRUMTAyMV8QEXRpbWVvdXQ9NSwgbWF4
PTk5XxAVImUzZjQ4YS0zZmQtNDQ1Y2NmNzMi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFy
eVxOU0RpY3Rpb25hcnnSMTJpaqJqNl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNt
bjZfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIA
ZACEAIoArQCwALQAtwC7AL4AwQDFAMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEH
AQkBEgEUARsBIwEvATEBMwE1AXgBfQGGAZEBlQGbAaIBqwG1AbwBvgHAAcIByQHUAdwB5gHoAeoB
7AHuAfAB8gH0AfYB+AICAgQCBgIIAgoCDAIOAhACEgIUAhYCHQIrAjkCRAJJAlgCYwJoAnUCgwKj
AqkCyQLOAuIC+gL/AwMDGQMmAysDLgNKA08DUwNnAAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAA
AAAAA3VPEQP9R0lGODlhEAAQAPcAADAmL15cXuvq69/e39va26yrrH98gJaTlz85QkVBR2RgZjg2
OUtJTFJQU2VjZmRiZXZ0d5eVmF9aYhkOIEU9SnVydyskMUI6SYaEiFNSVHh3eamoqp+eoIyLjYeG
iTU1OlhYWdnZ2sDAwbq6uxodJrGys3Z4eUdJSVtdXTdCQTdFOW5vbmZnZjtlMRUYFCsxKT1DOz7Y
AEDKCkO+EzZ6GyU+G0npAid0Bki2GC9zEiJSDTBhGzttJTtrJ0bfAFHiCCx0CUnDEFC8HkiYIliv
L0eALG+YW2tvaVboBVuvLUWGJH3iRn3aSjlkIkt/L1V9P3GfWDdNK1FoRVXpAFXhAFB8NXqlYT1M
NF5qV1ehKYvmUpHXZUJYNGPpBGfxB3H2FYvkSU5/LIXVToO2X3SbWH6mYDtNLnGSWV1oVUpOR1ld
VnL/AG74AGfuAHfwFWbMGWO+GoDRQUdpLHWqTXTkEFSJJlyPMFKBK2aYO1NzN0lORP/0PnRyTv/w
Snh1Tv/mJ11YMf/hKJ+SS5aQaoR0Ma2hdGNZQP9sHHs+I99zQLJTLnk+KJdcVIlcVv7+/v39/fz8
/Pv7+/r6+vj4+Pf39/X19fPz8/Hx8e/v7+3t7eXl5ePj49ra2sjIyKSkpIGBgf///wAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAKAA
LAAAAAAQABAAAAjaAEEJFBjpkcABAgYqFLipAoZKHI6s6LRwIAQyZSSgASNGzaSKoBS8cZPGTpsu
ZggsDNHhwp01eeqwgWOBhYZLAjlh2TKGAR4ucujoOaPlSQSBB5JM8RKHQqFBJ+Z8odJkg0ARUZwU
aSFoTx9DVcJcQWBQoAcAjRgR+hMIkBErUKSMGIgi0SFFKfzw+ZAFyQ8hBgaaQLRIxZIePJjAUBJk
h6eBlUqQIOIDiA4bQyYseEBJoaMXMmLccIEjxydMkSpmoDGjBogEATKBBKXJQYMCkCxJmi3w0e7Z
AQEAO18QQGh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2ltYWdlcy9hczJncmFwaGl0ZS9t
aXNjL2ltX2ljcS5naWbUBQYHCCUmJxpPEQRyYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2
ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291
cmNlUmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4P
EBESExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhS
JDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWABoAAI0GkHQel7H9WEQI5EAAjQaQd
B6KC6FyAHCNBpB1Tx5ZpBoAC0yorGSEtLldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxBAaHR0
cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1fYWlt
LmdpZtIxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2VU5TVVJMViVOU1VSTFhOU09iamVjdFlp
bWFnZS9naWbTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5vYmplY3RzV05TLmtleXOpQEFCQ0RFRkdI
gBGAEoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmACoALgAyADYAOgA+AEIAaVlNlcnZlcl1M
YXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVjdGlvblREYXRlXkNvbnRlbnQtTGVuZ3Ro
WktlZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBhY2hlLzEuMy4yOV8QHVNhdCwgMDYgTWF5
IDIwMDYgMTY6MzE6NDIgR01UVWJ5dGVzXxAdU3VuLCAwNyBNYXkgMjAwNiAxOTozNjo0NyBHTVRT
NTY5XxARdGltZW91dD01LCBtYXg9OTVfEBUiZTNmNDg4LTIzOS00NDVjY2Y2ZSLSMTJlZqNmZzZf
EBNOU011dGFibGVEaWN0aW9uYXJ5XE5TRGljdGlvbmFyedIxMmlqomo2XxAZTlNIVFRQVVJMUmVz
cG9uc2VJbnRlcm5hbNIxMmxto21uNl8QEU5TSFRUUFVSTFJlc3BvbnNlXU5TVVJMUmVzcG9uc2UA
CAARABsAJAApADIARABJAEwAYgBkAIQAigCtALAAtAC3ALsAvgDBAMUAyADLAM8A0gDVANwA3wDj
AOYA6ADqAOwA7gDwAPkA/AD+AQcBCQESARQBGwEjAS8BMQEzATUBeAF9AYYBkQGVAZsBogGrAbUB
vAG+AcABwgHJAdQB3AHmAegB6gHsAe4B8AHyAfQB9gH4AgICBAIGAggCCgIMAg4CEAISAhQCFgId
AisCOQJEAkkCWAJjAmgCdQKDAqMCqQLJAs0C4QL5Av4DAgMYAyUDKgMtA0kDTgNSA2YAAAAAAAAC
AQAAAAAAAABvAAAAAAAAAAAAAAAAAAADdE8RAjlHSUY4OWEQABAA5gAAFRUbSUlNOzs9pqaqVVVX
pqao1NTVzs7PysrLx8fIsbGyg4OEVFVaISQwc3V9OTo+aWpudHV5goOHdHV4ra6x09TWnZ6fSEg+
f39+mJiX//U///NP/+ktcm1E/+Ed/+Ud/+Ul/Opzh4V3/+Ae/98h28xvQz4jbGdJjIZk/9UM/9cW
/9sZ/9oj89Ek/90m5MUkfWsX/95B/95Hl4Yy/9QR/9MUvqElW04UpqCI/8sD5bkOzaIP/88fyagn
+M487NBk1LthsJ1Zx7NpZF9NPjswkm8GFxIDODEcPzklMTAt8LEAiGQBVT8DSjkJxKZPbmhXpKCV
cVEAPiwAZFc3npFvHBoXfHt6bGtr/v7+/f39+vr6+Pj49PT08/Pz8fHx8PDw7Ozs6+vr5+fn4+Pj
4eHh29vb2tra2NjY0NDQz8/PxsbGnJychISEdXV1b29vVlZWUlJS////AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfkEAQAAcQAsAAAAABAAEAAAB5aAcYKDggYVY4SJ
gwgZUBZkioReVj8yQhKRgwcdHzUtcJmCYUQvIDYMoXFnARcmDwVloRElISgiOAuZZyccJBobMUNm
kRQzIywwN0hXYJEOPSorQQ0JkVgDTzw6Ox5AEIiDXGoYVD45TQBFKU4TWYQKRy5KTARjAks0UwVd
g1pVUUbcbInzJYmUN2ISsWmThhCaNalSBQIAO18QQGh0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2Zv
cnVtL2ltYWdlcy9hczJncmFwaGl0ZS9taXNjL2ltX2FpbS5naWbUBQYHCCkqKxpPEQRzYnBsaXN0
MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9uVCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJj
aGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNlUmVzcG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltc
XV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBESExQVFhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZT
JDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxAB
gAWABoAAI0GkHQ8N8Tr3EQPnEAAjQaQdDwv92oyAHCNBpB1b86Y5L4AC0yorGSEtLldOUy5iYXNl
W05TLnJlbGF0aXZlgACAA4AEXxBAaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vaW1hZ2Vz
L2FzMmdyYXBoaXRlL21pc2MvaW1fbXNuLmdpZtIxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2
VU5TVVJMViVOU1VSTFhOU09iamVjdFlpbWFnZS9naWbTGBkcOTo7gAeAGxDI0z0+GT9JU1pOUy5v
YmplY3RzV05TLmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZqUpLTE1OT1BRUoAIgAmA
CoALgAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNaQ29ubmVj
dGlvblREYXRlXkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xDb250ZW50LVR5cGVdQXBh
Y2hlLzEuMy4yOV8QHVNhdCwgMDYgTWF5IDIwMDYgMTY6MzE6NTAgR01UVWJ5dGVzXxAdU3VuLCAw
NyBNYXkgMjAwNiAxOTo1MjozOCBHTVRTOTk5XxASdGltZW91dD01LCBtYXg9MTAwXxAVImUzZjQ4
Yi0zZTctNDQ1Y2NmNzYi0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25h
cnnSMTJpaqJqNl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hUVFBV
UkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCwALQA
twC7AL4AwQDFAMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsBIwEv
ATEBMwE1AXgBfQGGAZEBlQGbAaIBqwG1AbwBvgHAAcIByQHUAdwB5gHoAeoB7AHuAfAB8gH0AfYB
+AICAgQCBgIIAgoCDAIOAhACEgIUAhYCHQIrAjkCRAJJAlgCYwJoAnUCgwKjAqkCyQLNAuIC+gL/
AwMDGQMmAysDLgNKA08DUwNnAAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA3VPEQPnR0lG
ODlhEAAQAPcAAAB0zsbLzwCF5gCA1QBwwRxklKCzwL/GywWF1gWE1QmV7w2R5hKU5w1tqRad9BaU
5R2b7CSi8yOf7iWh8Cag7yik8y6l8TWx/zOp8zmv+D6z/ECx+T+v9ky3/EWb01S+/2Kt3X6syZa9
1ZiuvKi5xLzEyczR1Ea2+Uy9/2DH/4S83Z67y8XM0DuUwVnI/2/N/9vd3p3F2GTQ/xN6mFpwdCOO
jjmaVE6wYd7f3qGvml3HJ2TIMH7yPoK4ZZeti2PDI3LOLo6qeMfLw//jM25sX8yxO9i7Rruxieq/
LKaadLetjP/JMbymaMOeTMuRItiZJ9aQLP+pMMC1puuPKubl5N9/KMh5Mf+bQsiMVvqEIP+HIv6I
I+uAJP+IKP+LKP+KKfuJKf+PNcWsl/x8Hft+HfyAI/+BJP2EJf2EJse5rvlyGP92Gvl2G/p3HPp7
H/t8IP+FMsinkPZnEfltEvZpEvdsFfluFtB1O/dfB/9fCPReC/9lDPVjDv9oD/93K/uJSMWvo/NW
Af9bBP9cB+qBTMCEZcKMcLuQesGnmsW3sMe6s+De3d/d3Pz8/Pj4+Pb29vX19fT09PPz8+zs7P//
/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAJQALAAAAAAQABAAAAjE
ACkJHEiwoMGDjBQtOlgQ0B8/hKiYiLEiQKOCceDgCTQIkQgZKV6oKDFQTJg5cvQIMkTCRYcNGj6E
gJHmyhg2dfjkKQQJBAoOGCZQ8IBFyxk3aujsOUSJxYkMFiQ8GEAjS5cybez0SSTQwIUKEBgkaGDF
C5o3a+5AGjgigoMFCAgQ2fLFDJkmjwgeaKFAAIACVcBwcVJkUkEhN2rMsAFlyhMkRvIWDALkh44k
UZYMOXJQUg8eO3BIYaLEEcNIPnIwXF0wIAA7XxBAaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9y
dW0vaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1fbXNuLmdpZtQFBgcILS4vH08RBTdicGxpc3Qw
MNQBAgMEBQYHClkkYXJjaGl2ZXJYJHZlcnNpb25UJHRvcFgkb2JqZWN0c18QD05TS2V5ZWRBcmNo
aXZlchIAAYag0QgJXxATV2ViUmVzb3VyY2VSZXNwb25zZYABrxAnCwwpLzA3ODxeX2BhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3g3eX2AVSRudWxs3xAQDQ4PEBESExQVFhcYGRobHB0eHx4gIR4iIyQl
HSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRTJDE0UiQ5UiQwViRjbGFzc1IkNVMk
MTJSJDEQBxABgAWABoAAI0GkHRZni1vVEQGHEAAjQaQdFmauktWAJiNBpB0ZNSM3AIAC0yorGSEt
LldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxAxaHR0cDovL215c3RhdHVzLnNreXBlLmNvbS9z
bWFsbGljb24vb2xhZm1hcnpvY2NoadIxMjM0WCRjbGFzc2VzWiRjbGFzc25hbWWjNDU2VU5TVVJM
ViVOU1VSTFhOU09iamVjdFlpbWFnZS9wbmfTGBkcOTo7gAeAJRDI0z0+GT9OXVpOUy5vYmplY3Rz
V05TLmtleXOuQEFCQ0RFRkdISUpLTE2AFoAXgBiAGYAagBuAHIAdgB6AH4AggCGAIoAjrk9QUVJT
VFVWV1hZWltcgAiACYAKgAuADIANgA6AD4AQgBGAEoATgBSAFYAkVlNlcnZlclRWYXJ5U1Rjbl1M
YXN0LU1vZGlmaWVkXUFjY2VwdC1SYW5nZXNURGF0ZV5Db250ZW50LUxlbmd0aFdFeHBpcmVzXxAQ
Q29udGVudC1Mb2NhdGlvbl1DYWNoZS1Db250cm9sWkNvbm5lY3Rpb25fEBBDb250ZW50LUxhbmd1
YWdlVEV0YWdcQ29udGVudC1UeXBlXxAUQXBhY2hlLzIuMC41NSAoVW5peClZbmVnb3RpYXRlVmNo
b2ljZV8QHUZyaSwgMTAgRmViIDIwMDYgMTU6MDQ6MzcgR01UVWJ5dGVzXxAdU3VuLCAwNyBNYXkg
MjAwNiAyMDowODoxOSBHTVRTMzkxXxAdU3VuLCAwNyBNYXkgMjAwNiAyMDoxNDoxOSBHTVRVMC5w
bmdbbWF4LWFnZT0zNjBVY2xvc2VSZW5fEBwiMWE2YTI5LTE4Ny1jMmUyYjQwO2MyZTJiNDAi0jEy
enuje3w2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSMTJ+f6J/Nl8QGU5TSFRU
UFVSTFJlc3BvbnNlSW50ZXJuYWzSMTKBgqOCgzZfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJl
c3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACOAJQAtwC6AL4AwQDFAMgAywDPANIA1QDZANwA
3wDmAOkA7QDwAPIA9AD2APgA+gEDAQYBCAERARMBHAEeASUBLQE5ATsBPQE/AXMBeAGBAYwBkAGW
AZ0BpgGwAbcBuQG7Ab0BxAHPAdcB5gHoAeoB7AHuAfAB8gH0AfYB+AH6AfwB/gIAAgICEQITAhUC
FwIZAhsCHQIfAiECIwIlAicCKQIrAi0CLwI2AjsCPwJNAlsCYAJvAncCigKYAqMCtgK7AsgC3wLp
AvADEAMWAzYDOgNaA2ADbANyA3UDlAOZA50DswPAA8UDyAPkA+kD7QQBAAAAAAAAAgEAAAAAAAAA
hAAAAAAAAAAAAAAAAAAABA9PEQGHiVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAA
A3NCSVQICAjb4U/gAAAAMFBMVEX////////29/fw8fHl5+fe5ubc3t7Z3NzW2NjMzMzEx8e/w8O6
vr62u7uzt7evtLTc0xo7AAAAEHRSTlMA////////////////////wFCLQwAAAAlwSFlzAAAK8AAA
CvABQqw0mAAAABV0RVh0Q3JlYXRpb24gVGltZQA4LzE4LzA1oj6Z/QAAACV0RVh0U29mdHdhcmUA
TWFjcm9tZWRpYSBGaXJld29ya3MgTVggMjAwNId2rM8AAACASURBVHicY2D4/58BDPiX1kKYP8PS
Z+0Fsb6lVXTOXPeBgeFHerui8Oz3DAx/KhrFG3XuAxXPmFK1Se//Awb+lXNeG87//4GB/+z/jzb/
QYz/YADU9v//wv7/IDP/351Ye/cuUD//m91AcB5o9vu3d2bOfA+y7v3/VyA7QACoFgDakEcsP5qj
xQAAAABJRU5ErkJggl8QMWh0dHA6Ly9teXN0YXR1cy5za3lwZS5jb20vc21hbGxpY29uL29sYWZt
YXJ6b2NjaGnUBQYHCDEyMxpPEQRnYnBsaXN0MDDUAQIDBAUGBwpZJGFyY2hpdmVyWCR2ZXJzaW9u
VCR0b3BYJG9iamVjdHNfEA9OU0tleWVkQXJjaGl2ZXISAAGGoNEICV8QE1dlYlJlc291cmNlUmVz
cG9uc2WAAa8QHQsMKS8wNzg8VFVWV1hZWltcXV5fWmBhYmM3ZGhrVSRudWxs3xAQDQ4PEBESExQV
FhcYGRobHB0eHx4gIR4iIyQlHSYnHihSJDZTJDEwUiQyUyQxM1IkN1IkM1MkMTFSJDhSJDRTJDE0
UiQ5UiQwViRjbGFzc1IkNVMkMTJSJDEQBxABgAWABoAAI0GkHQekC8EFEQQIEAAjQaQdB6JofbOA
HCNBpJj3vo/v4YAC0yorGSEtLldOUy5iYXNlW05TLnJlbGF0aXZlgACAA4AEXxA0aHR0cDovL3d3
dy5tYWNpdHluZXQuaXQvZm9ydW0vaW1hZ2VzL2ljb25zL2ljb24xLmdpZtIxMjM0WCRjbGFzc2Vz
WiRjbGFzc25hbWWjNDU2VU5TVVJMViVOU1VSTFhOU09iamVjdFlpbWFnZS9naWbTGBkcOTo7gAeA
GxDI0z0+GT9JU1pOUy5vYmplY3RzV05TLmtleXOpQEFCQ0RFRkdIgBGAEoATgBSAFYAWgBeAGIAZ
qUpLTE1OT1BRUoAIgAmACoALgAyADYAOgA+AEIAaVlNlcnZlcl1MYXN0LU1vZGlmaWVkXUFjY2Vw
dC1SYW5nZXNaQ29ubmVjdGlvblREYXRlXkNvbnRlbnQtTGVuZ3RoWktlZXAtQWxpdmVURXRhZ1xD
b250ZW50LVR5cGVdQXBhY2hlLzEuMy4yOV8QHVNhdCwgMjIgSmFuIDIwMDUgMTg6Mjk6NDUgR01U
VWJ5dGVzXxAdU3VuLCAwNyBNYXkgMjAwNiAxOTozNjo0NiBHTVRUMTAzMl8QEXRpbWVvdXQ9NSwg
bWF4PTk2XxAVImUyMzg3MC00MDgtNDFmMjliOTki0jEyZWajZmc2XxATTlNNdXRhYmxlRGljdGlv
bmFyeVxOU0RpY3Rpb25hcnnSMTJpaqJqNl8QGU5TSFRUUFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJs
baNtbjZfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlAAgAEQAbACQAKQAyAEQASQBM
AGIAZACEAIoArQCwALQAtwC7AL4AwQDFAMgAywDPANIA1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA
/gEHAQkBEgEUARsBIwEvATEBMwE1AWwBcQF6AYUBiQGPAZYBnwGpAbABsgG0AbYBvQHIAdAB2gHc
Ad4B4AHiAeQB5gHoAeoB7AH2AfgB+gH8Af4CAAICAgQCBgIIAgoCEQIfAi0COAI9AkwCVwJcAmkC
dwKXAp0CvQLCAtYC7gLzAvcDDQMaAx8DIgM+A0MDRwNbAAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAA
AAAAAAAAA2lPEQQIR0lGODlhEAAQAPeVAP////b298vM1cDAx8fH0M/Q187T2dDU3HyBgqSnp87S
2crL09bZ3vb29unp62tvcH2Cgdre5P7+/dfb6M7R38vM06Onps3R3NHW4sHDyMPDy4uPkTI1NYmL
lFZYXb+/yPb4+OPk6NHR1dbb4+Dh5ezs7+Hk6ycpKRQWFiIlJebp6szR2dfY3qamrOfq7Pj3+UhM
TcTH1N3d5svNzcXIyO7u783N1crL1GVmbc7P2srL2Tg6PM/S4LG0wNLS2ubn6uzr8HV5evPy9NPY
3uPl483N0j8/RNfa2tja5MvM0Obm7RobHaqtuCssL66ttry+yEFCR+bp6dDU3dXW29vf5W9xePz9
/ZKUncXFzFpfX8/R1/Dx9OHi5dfY4L6+xvDw8Nzc383S283N18/O18rK0cjI0N/i8UJDR9LT3Zqa
oNjZ4PTy9Lm5wT9BQtDQ0qOlsBkcHeDj8vz8/93d4t7c4/79/sbI1aWlqtDS1sjKzTQ4OdLT1tPY
5P7+/qKlr7m8yPX19dTV2srK0szL1tbZ6B8gItrf6eDj5//+/9LW3P37/CorLvT09hEREoaIkdbW
3O7t7svM2NHW3s7P1Pz8/OHk8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA
AJUALAAAAAAQABAAAAjlACsZOmSCSoQhB0ZIkqLATKWHbxAA2MMFTAkAGDFieFjpCgcAae44aZEn
iRuMFzj2SAGgxpcAayAxaoBxBUc7hYgAmEMihJpALBYAMMCR0CIaQD4MGDCJQIExABhwrATFghxB
RbBoYAMCo4qpHiAA8ELGBp1HgDJOrZIFQB2MVgL8wNMHwASOHdoAqDBFgIAnZYRQAhCGo58TAMTc
GNTFhxYRGRQl4vgHBQA0kXTkIOAAEUYXHHk0AiADiZItLyRkBBCH45Ioq2MD4MOxyYzVRxI82AEn
xlQjQTbA0HMGhyMmFKYGBAA7XxA0aHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0vaW1hZ2Vz
L2ljb25zL2ljb24xLmdpZtQFBgcINTY3Gk8RBH5icGxpc3QwMNQBAgMEBQYHClkkYXJjaGl2ZXJY
JHZlcnNpb25UJHRvcFgkb2JqZWN0c18QD05TS2V5ZWRBcmNoaXZlchIAAYag0QgJXxATV2ViUmVz
b3VyY2VSZXNwb25zZYABrxAdCwwpLzA3ODxUVVZXWFlaW1xdXl9aYGFiYzdkaGtVJG51bGzfEBAN
Dg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJiceKFIkNlMkMTBSJDJTJDEzUiQ3UiQzUyQxMVIk
OFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIkMRAHEAGABYAGgAAjQaQdB6YWZLIRAkQQACNB
pB0HonpoCoAcI0GkHVNtlzaLgALTKisZIS0uV05TLmJhc2VbTlMucmVsYXRpdmWAAIADgARfEExo
dHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZXMvYXMyZ3JhcGhpdGUvc3RhdHVzaWNv
bi91c2VyX29mZmxpbmUuZ2lm0jEyMzRYJGNsYXNzZXNaJGNsYXNzbmFtZaM0NTZVTlNVUkxWJU5T
VVJMWE5TT2JqZWN0WWltYWdlL2dpZtMYGRw5OjuAB4AbEMjTPT4ZP0lTWk5TLm9iamVjdHNXTlMu
a2V5c6lAQUJDREVGR0iAEYASgBOAFIAVgBaAF4AYgBmpSktMTU5PUFFSgAiACYAKgAuADIANgA6A
D4AQgBpWU2VydmVyXUxhc3QtTW9kaWZpZWRdQWNjZXB0LVJhbmdlc1pDb25uZWN0aW9uVERhdGVe
Q29udGVudC1MZW5ndGhaS2VlcC1BbGl2ZVRFdGFnXENvbnRlbnQtVHlwZV1BcGFjaGUvMS4zLjI5
XxAdU2F0LCAwNiBNYXkgMjAwNiAxNjozOToxMSBHTVRVYnl0ZXNfEB1TdW4sIDA3IE1heSAyMDA2
IDE5OjM2OjQ3IEdNVFM1ODBfEBF0aW1lb3V0PTUsIG1heD05N18QFSJlM2Y1MTYtMjQ0LTQ0NWNk
MTJmItIxMmVmo2ZnNl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9uYXJ50jEyaWqiajZf
EBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEybG2jbW42XxARTlNIVFRQVVJMUmVzcG9uc2Vd
TlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQAhACKAK0AsAC0ALcAuwC+AMEAxQDI
AMsAzwDSANUA3ADfAOMA5gDoAOoA7ADuAPAA+QD8AP4BBwEJARIBFAEbASMBLwExATMBNQGEAYkB
kgGdAaEBpwGuAbcBwQHIAcoBzAHOAdUB4AHoAfIB9AH2AfgB+gH8Af4CAAICAgQCDgIQAhICFAIW
AhgCGgIcAh4CIAIiAikCNwJFAlACVQJkAm8CdAKBAo8CrwK1AtUC2QLtAwUDCgMOAyQDMQM2AzkD
VQNaA14DcgAAAAAAAAIBAAAAAAAAAG8AAAAAAAAAAAAAAAAAAAOATxECREdJRjg5YQ4ADQDmAAD1
AADyAADvAADsAADrAADnAADlAAC2AACzAACyAAB6AQF2AgL/CAj/DAzSDw/QDw+2Dg7hEhLeEhLa
EhL/Fxf/HR3/Hh7DHR3CHR33KSl7FhZ0FxelIyPUMDDSMDDOMDBhGRnkPDz/Rkb/UlL/Z2fTXV3S
XV3SX1+YRkbKYWHHYWHbdHTQcHCRT0+5Z2fSeXnReXmKVFTTiIi9h4frrKysfn7En5/6zc3DoqL+
/v79/f38/Pz7+/v6+vr5+fn09PTz8/Pv7+/t7e3s7Ozr6+vo6Oja2trX19fQ0NDIyMjAwMD///8A
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh+QQBAABLACwAAAAADgAN
AAAHoYBLgjk4MSAgMTg5gow6NQsuMjIuCzU6jTYKLDQ3NzQsCjaXOT4tHCcrJiUrJxwtPjk6PxsQ
Fx8eHR8YEBs/OjpBGggPExIREQ4IGkG/QigIBgQCAQAFCShCv0EzBxUMFBQNFgczzDk/RioDIiQk
IwIpRj+LPENIMCEZGSEvSEM8g3oQOZJEiZIkR4j0WBQQyJAiRYYAWciIUawdO3QwFBQIADtfEExo
dHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZXMvYXMyZ3JhcGhpdGUvc3RhdHVzaWNv
bi91c2VyX29mZmxpbmUuZ2lm1AUGBwg5OjsaTxEEdWJwbGlzdDAw1AECAwQFBgcKWSRhcmNoaXZl
clgkdmVyc2lvblQkdG9wWCRvYmplY3RzXxAPTlNLZXllZEFyY2hpdmVyEgABhqDRCAlfEBNXZWJS
ZXNvdXJjZVJlc3BvbnNlgAGvEB0LDCkvMDc4PFRVVldYWVpbXF1eX1pgYWJjN2Roa1UkbnVsbN8Q
EA0ODxAREhMUFRYXGBkaGxwdHh8eICEeIiMkJR0mJx4oUiQ2UyQxMFIkMlMkMTNSJDdSJDNTJDEx
UiQ4UiQ0UyQxNFIkOVIkMFYkY2xhc3NSJDVTJDEyUiQxEAcQAYAFgAaAACNBpB0HpYFabBECLhAA
I0GkHQeibMi9gBwjQaQdU/jrblGAAtMqKxkhLS5XTlMuYmFzZVtOUy5yZWxhdGl2ZYAAgAOABF8Q
Q2h0dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL2ltYWdlcy9hczJncmFwaGl0ZS9idXR0b25z
L3JlcG9ydC5naWbSMTIzNFgkY2xhc3Nlc1okY2xhc3NuYW1lozQ1NlVOU1VSTFYlTlNVUkxYTlNP
YmplY3RZaW1hZ2UvZ2lm0xgZHDk6O4AHgBsQyNM9Phk/SVNaTlMub2JqZWN0c1dOUy5rZXlzqUBB
QkNERUZHSIARgBKAE4AUgBWAFoAXgBiAGalKS0xNTk9QUVKACIAJgAqAC4AMgA2ADoAPgBCAGlZT
ZXJ2ZXJdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzWkNvbm5lY3Rpb25URGF0ZV5Db250ZW50
LUxlbmd0aFpLZWVwLUFsaXZlVEV0YWdcQ29udGVudC1UeXBlXUFwYWNoZS8xLjMuMjlfEB1TYXQs
IDA2IE1heSAyMDA2IDE2OjI3OjM3IEdNVFVieXRlc18QHVN1biwgMDcgTWF5IDIwMDYgMTk6MzY6
NDcgR01UUzU1OF8QEXRpbWVvdXQ9NSwgbWF4PTk4XxAVImUzZjQzNS0yMmUtNDQ1Y2NlNzki0jEy
ZWajZmc2XxATTlNNdXRhYmxlRGljdGlvbmFyeVxOU0RpY3Rpb25hcnnSMTJpaqJqNl8QGU5TSFRU
UFVSTFJlc3BvbnNlSW50ZXJuYWzSMTJsbaNtbjZfEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJl
c3BvbnNlAAgAEQAbACQAKQAyAEQASQBMAGIAZACEAIoArQCwALQAtwC7AL4AwQDFAMgAywDPANIA
1QDcAN8A4wDmAOgA6gDsAO4A8AD5APwA/gEHAQkBEgEUARsBIwEvATEBMwE1AXsBgAGJAZQBmAGe
AaUBrgG4Ab8BwQHDAcUBzAHXAd8B6QHrAe0B7wHxAfMB9QH3AfkB+wIFAgcCCQILAg0CDwIRAhMC
FQIXAhkCIAIuAjwCRwJMAlsCZgJrAngChgKmAqwCzALQAuQC/AMBAwUDGwMoAy0DMANMA1EDVQNp
AAAAAAAAAgEAAAAAAAAAbwAAAAAAAAAAAAAAAAAAA3dPEQIuR0lGODlhDQANAOYAAP79+P/++v/G
APzFAPvDAPnBAP/QKP/SNv/SN/789fi/AP3HF/vEF/3MJfzJJf/OKOrBQPbgnPvqtvrqtvfouvnt
yPzy0+yxAOeoAOSqAOKmAOCmAP7HJf3HJf/HKf/IKee4L+e5L//KOeK1Peq/QOfAT+a9T+nFZffg
nPnouv734uShAOSkAOOiANKWAdGWCf/IOPvEP/jCPuK0PeG3UO3OgO3PgNSUANOTANGSAdGVCd2f
Gv/fmvjhrf757v/Ma//Xkv/cm7tzAP/Wkvy9cPu9cPe7cPe7craOW7aNXL6XZ76XaOWlX9OaWJhj
LJdjLJllMZlmMZ5vPdCTVr6MWb6NWbt/RaBrPNCSVvKeVJtnOpllOplmOnlMK+fOumsdADMMAC4A
AB0AABQAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGQALAAAAAANAA0AAAeLgGSC
ghM0EoOIgiohFyAqiYMoLQIrEZBkPhA7QjskPpA9MkpiSzE9iQkzMEhjSSIjCYgUOAhVYFQHNymD
ACYsHlhfUx8YJQCCFTkMP0RZRT8LLhVkAScaD0FNXU1BBhknARY6Ch08VmFWPBwFLxY2GwQOQ0dM
RkANAxs1XlJOUFtarmjhEuWJFC+BAAA7XxBDaHR0cDovL3d3dy5tYWNpdHluZXQuaXQvZm9ydW0v
aW1hZ2VzL2FzMmdyYXBoaXRlL2J1dHRvbnMvcmVwb3J0LmdpZtQFBgcIPT4/Gk8RBHVicGxpc3Qw
MNQBAgMEBQYHClkkYXJjaGl2ZXJYJHZlcnNpb25UJHRvcFgkb2JqZWN0c18QD05TS2V5ZWRBcmNo
aXZlchIAAYag0QgJXxATV2ViUmVzb3VyY2VSZXNwb25zZYABrxAdCwwpLzA3ODxUVVZXWFlaW1xd
Xl9aYGFiYzdkaGtVJG51bGzfEBANDg8QERITFBUWFxgZGhscHR4fHiAhHiIjJCUdJiceKFIkNlMk
MTBSJDJTJDEzUiQ3UiQzUyQxMVIkOFIkNFMkMTRSJDlSJDBWJGNsYXNzUiQ1UyQxMlIkMRAHEAGA
BYAGgAAjQaQdB6aXP3URBnAQACNBpB0Hom6WHIAcI0GkHVP5cPBBgALTKisZIS0uV05TLmJhc2Vb
TlMucmVsYXRpdmWAAIADgARfEEJodHRwOi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZXMv
YXMyZ3JhcGhpdGUvYnV0dG9ucy9xdW90ZS5naWbSMTIzNFgkY2xhc3Nlc1okY2xhc3NuYW1lozQ1
NlVOU1VSTFYlTlNVUkxYTlNPYmplY3RZaW1hZ2UvZ2lm0xgZHDk6O4AHgBsQyNM9Phk/SVNaTlMu
b2JqZWN0c1dOUy5rZXlzqUBBQkNERUZHSIARgBKAE4AUgBWAFoAXgBiAGalKS0xNTk9QUVKACIAJ
gAqAC4AMgA2ADoAPgBCAGlZTZXJ2ZXJdTGFzdC1Nb2RpZmllZF1BY2NlcHQtUmFuZ2VzWkNvbm5l
Y3Rpb25URGF0ZV5Db250ZW50LUxlbmd0aFpLZWVwLUFsaXZlVEV0YWdcQ29udGVudC1UeXBlXUFw
YWNoZS8xLjMuMjlfEB1TYXQsIDA2IE1heSAyMDA2IDE2OjI3OjI5IEdNVFVieXRlc18QHVN1biwg
MDcgTWF5IDIwMDYgMTk6MzY6NDcgR01UVDE2NDhfEBF0aW1lb3V0PTUsIG1heD05OF8QFSJlM2Y0
MzItNjcwLTQ0NWNjZTcxItIxMmVmo2ZnNl8QE05TTXV0YWJsZURpY3Rpb25hcnlcTlNEaWN0aW9u
YXJ50jEyaWqiajZfEBlOU0hUVFBVUkxSZXNwb25zZUludGVybmFs0jEybG2jbW42XxARTlNIVFRQ
VVJMUmVzcG9uc2VdTlNVUkxSZXNwb25zZQAIABEAGwAkACkAMgBEAEkATABiAGQAhACKAK0AsAC0
ALcAuwC+AMEAxQDIAMsAzwDSANUA3ADfAOMA5gDoAOoA7ADuAPAA+QD8AP4BBwEJARIBFAEbASMB
LwExATMBNQF6AX8BiAGTAZcBnQGkAa0BtwG+AcABwgHEAcsB1gHeAegB6gHsAe4B8AHyAfQB9gH4
AfoCBAIGAggCCgIMAg4CEAISAhQCFgIYAh8CLQI7AkYCSwJaAmUCagJ3AoUCpQKrAssC0ALkAvwD
AQMFAxsDKAMtAzADTANRA1UDaQAAAAAAAAIBAAAAAAAAAG8AAAAAAAAAAAAAAAAAAAN3TxEGcEdJ
Rjg5YUAAEgD3AAAtLC1AP0B+fX53dnf9/P349/j19PXz8vPy8fLv7u/s6+zr6uvp6Ono5+jl5OXi
4eLf3t/e3d7c29zZ2NnX1tfW1da/vr/s6+3r6uzc293b2tzZ2NrX1tjNzM69vL6trK4fHyDh4ePe
3uDc3N59fX51dXb8/P36+vv4+Pn39/j19fb09PXy8vPx8fLv7/Du7u/r6+zo6Onn5+jl5ebk5OXj
4+Th4eLg4OHe3t/d3d7c3N3b29za2tvZ2drY2NnX19jW1tfV1dbT09TOzs/Nzc7Ly8zJycrIyMnD
w8TCwsO/v8C8vL21tbavr7CsrK2qqqufn6CTk5SCgoPh4uPb3N3Y2dpAQUHx8/P4+fn3+Pj09fXy
8/Px8vLu7+/r7Ozq6+vo6enn6Ojk5eXj5OTh4uLe39/d3t7b3Nza29vY2dnW19fDxMTCw8O0tbWl
pqaHiIj8/fz6+/rx8vHu7+79/fz4+Pfv7+5APz9wb2/9/Pz7+vr6+fnw7+/v7u7o5+fc29u/vr7+
/v79/f38/Pz7+/v6+vr4+Pj29vb19fXz8/Py8vLv7+/u7u7s7Ozr6+vp6eno6Ojn5+fl5eXk5OTj
4+Pi4uLh4eHf39/e3t7c3Nzb29vZ2dnX19fW1tbV1dXT09PQ0NDPz8/Nzc3Ly8vKysrJycnHx8fG
xsbDw8PCwsLBwcG8vLy7u7u6urq5ubm4uLi1tbWysrKxsbGoqKinp6empqaZmZmXl5eRkZGPj4+I
iIiFhYWCgoJ8fHx6enpycnJeXl5dXV1YWFhRUVFQUFBMTExLS0tKSkpBQUFAQEA/Pz8+Pj49PT08
PDw7OzsxMTEwMDAuLi4tLS0sLCwgICAfHx8eHh4dHR0QEBAPDw8AAAD///8AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh+QQBAADbACwAAAAAQAASAAAI
/wC3CdxGqBIoVa1eKXT1ypXDhxAjSpxI8aFCVqlAVSI0sCMkUqMwLSoUqKTJkyhTqlzJUlChRZdG
lYLUcZslU5gKmcgzCA4cAoMG0RlKtKjRo3mSKl3KVCkcoSZM7MFkytJASKYo6YkTp9CJQoXinNAD
tqzZs2jTqj379WtYSqZoEiIlAUUWQ3iz1MFSIEXfFIAjMTkFuLDhw3gTK16sOEuBAlmypKhj6E+p
gqXkGECkRYUWRIhWGDgUesWKX8ik/HqGxLTr1661yBazRrbt27hJIxptwICiUpRCbVKkCMGB4okQ
sOCS6ApxXMOIK0pFTbr161yyy7KSvbt378gPtP9Q1GLLFh+gUtV44cLOiy58GC1y8SK+CxfQlNy/
TwyKi2RN3KfNIovkkkwyAViQADTY3AFIH3hAA00ufVRoISNzvKBhAi8wwgglqbQCSSNfLHCBI40o
oIAXjjhi4gXaXCCjjAIIcIEyH8gYowcgZHDBEtjA4IQyMMBAAjAw7FDNDkU22QgGCjTSiCMweLHA
I620IokMXDIQQwOQxBCDDH6IGYM2ZorZSy8xLPOEmGiuaaabTywj5jLBrFnNm2lCIkMYfkICCRgx
zNBKKhrQQMMMk8zA6CRjTDKJA5JIUowtlVYaDabMzFKpNpL44kulkzBDCy3MSMqML6fS4omksE7/
WqmiDjhAgyaqhBLKDTY8YAMZZNhQyQ0PVGJsJbVI84mxujRjbDO3VKKLNpXAYs2ybWRDhhvSAPuG
McCGK+4NN5ARwgNT+EqGrpUkoQMOOeSAwyU4mFEGJhFAEG8OUTjjzDTTDBFvFNM4s4s2EUSwi7/O
xIIDDs4AEAsEAwDgzDETQ6AxBGWUgQMEIuBQxiUjsFHJIKSIksEZO+zAgw4S8LADFWdkYPPNHQhz
TQkd3OzzzRIELfTQRA9NRSY174DGDkWUMsg2kKBCRA9V9LDJ1Vb3YPXVXF+9Ci9dh311GmSXbfbZ
ZW9w9QRVVLEJEajQJJAlSJRSgRoc/AAEB5xQTdAJB4AHLvjghBdueOAUcKI4J50YgYRVHpGiyhGh
CBHE5ZhnrvnmnHfueRBChHKEKqTIXdMgBqXCikINMcT667DHvlBFFDWEUSgbdRQQADtfEEJodHRw
Oi8vd3d3Lm1hY2l0eW5ldC5pdC9mb3J1bS9pbWFnZXMvYXMyZ3JhcGhpdGUvYnV0dG9ucy9xdW90
ZS5naWbUQQYHCEJDREVfEBtXZWJSZXNvdXJjZVRleHRFbmNvZGluZ05hbWVVVVRGLThPERpEPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9F
TiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5k
dGQiPjxIVE1MIGRpcj0ibHRyIiBsYW5nPSJpdCI+PEhFQUQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29u
dGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PE1FVEEg
bmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJ2QnVsbGV0aW4gMy41LjQiPgoKCQo8TUVUQSBuYW1l
PSJrZXl3b3JkcyIgY29udGVudD0ibWFjLGlwb2QscGFsbSxtYWNpbnRvc2gsIGFwcGxlLCBmb3J1
bSxpdGFsaWEsbWFjYm9vaywgaU1hYyBjb24gSW50ZWwsIHNodWZmbGUsIGlwb2QgbmFubywgaXBv
ZCB2aWRlbyxpdGFsaWFubyxmYXEsY2VsbHVsYXJpIj48TUVUQSBuYW1lPSJkZXNjcmlwdGlvbiIg
Y29udGVudD0iTWFjaXR5bmV0IEZvcnVtIHN1IE1hYywgaVBvZCwgUGFsbWFyaSwgZm90bywgYXVk
aW8gZSB2aWRlbyBkaWdpdGFsZSI+CgkKCgo8TElOSyByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJjbGllbnRzY3JpcHQvdmJ1bGxldGluX2Nzcy9zdHlsZS02ZWVmZTE4NS0w
MDAxMC5jc3MiIGlkPSJ2YnVsbGV0aW5fY3NzIj4KCgoKPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgo8IS0tCnZhciBTRVNTSU9OVVJMID0gIiI7CnZhciBJTUdESVJfTUlTQyA9ICJpbWFn
ZXMvYXMyZ3JhcGhpdGUvbWlzYyI7CnZhciB2Yl9kaXNhYmxlX2FqYXggPSBwYXJzZUludCgiMSIs
IDEwKTsKLy8gLS0+CjwvU0NSSVBUPgoKPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iY2xpZW50c2NyaXB0L3ZidWxsZXRpbl9nbG9iYWwuanMiPjwvU0NSSVBUPjxTQ1JJUFQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNsaWVudHNjcmlwdC92YnVsbGV0aW5fbWVudS5qcyI+
PC9TQ1JJUFQ+PExJTksgcmVsPSJhbHRlcm5hdGUiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwi
IHRpdGxlPSJGb3J1bSBNYWNpdHluZXQgUlNTIEZlZWQiIGhyZWY9ImV4dGVybmFsLnBocD90eXBl
PVJTUyI+PFRJVExFPkZvcnVtIE1hY2l0eW5ldCAtIE1vc3RyYSBtZXNzYWdnaW8gc2luZ29sbyAt
IE1hYyBPUyBYIDEwLjQuMyBBZ2dpb3JuYW1lbnRvPC9USVRMRT48L0hFQUQ+PEJPRFkgc3R5bGU9
Im1hcmdpbjowcHgiIG9ubG9hZD0ic2VsZi5mb2N1cygpIj4KCjxGT1JNIGFjdGlvbj0ic2hvd3Bv
c3QucGhwIj4KCjxUQUJMRSBjbGFzcz0idGJvcmRlciIgY2VsbHBhZGRpbmc9IjYiIGNlbGxzcGFj
aW5nPSIxIiBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBzdHlsZT0iYm9yZGVyLWJvdHRvbS13aWR0
aDowcHgiPgo8VEJPRFk+PFRSPjxURCBjbGFzcz0idGNhdCI+CgkJPERJViBjbGFzcz0ic21hbGxm
b250IiBzdHlsZT0iZmxvYXQ6cmlnaHQiPgoJCQk8U1RST05HPkRpc2N1c3Npb25lPC9TVFJPTkc+
OiA8QSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUiIGhyZWY9InNob3d0aHJlYWQu
cGhwP3A9NTExOTUxI3Bvc3Q1MTE5NTEiPk1hYyBPUyBYIDEwLjQuMyBBZ2dpb3JuYW1lbnRvPC9B
PgoJCTwvRElWPgoJCU1vc3RyYSBtZXNzYWdnaW8gc2luZ29sbwoJPC9URD48L1RSPjwvVEJPRFk+
PC9UQUJMRT4KCgoKCjxUQUJMRSBpZD0icG9zdDUxMTk1MSIgY2xhc3M9InRib3JkZXIiIGNlbGxw
YWRkaW5nPSI2IiBjZWxsc3BhY2luZz0iMCIgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgYWxpZ249
ImNlbnRlciI+CjxUQk9EWT48VFI+PFREIGNsYXNzPSJ0aGVhZCIgc3R5bGU9ImZvbnQtd2VpZ2h0
Om5vcm1hbCIgaWQ9ImN1cnJlbnRQb3N0Ij4JCQoJCQkKCQkJPEEgbmFtZT0icG9zdDUxMTk1MSI+
PElNRyBjbGFzcz0iaW5saW5laW1nIiBzcmM9ImltYWdlcy9hczJncmFwaGl0ZS9zdGF0dXNpY29u
L3Bvc3Rfb2xkLmdpZiIgYWx0PSJWZWNjaGlvIiBib3JkZXI9IjAiIHRpdGxlPSJWZWNjaGlvIj48
L0E+CgkJCTAxLzExLzIwMDUsIDIzLjIyCgkJCQoJCQkJCQkJCgkJPC9URD48VEQgY2xhc3M9InRo
ZWFkIiBzdHlsZT0iZm9udC13ZWlnaHQ6bm9ybWFsIiBhbGlnbj0icmlnaHQiPgoJCQnCoAoJCQkj
PEEgaHJlZj0ic2hvd3Bvc3QucGhwP3A9NTExOTUxJnBvc3Rjb3VudD0xODkiIHRhcmdldD0ibmV3
IiByZWw9Im5vZm9sbG93IiBpZD0icG9zdGNvdW50NTExOTUxIiBuYW1lPSIxODkiPjxTVFJPTkc+
MTg5PC9TVFJPTkc+PC9BPgoJCQkKCQk8L1REPjwvVFI+PFRSIHZhbGlnbj0idG9wIj48VEQgY2xh
c3M9ImFsdDIiIHdpZHRoPSIxNzUiPgoJCQkKCQkJPERJViBpZD0icG9zdG1lbnVfNTExOTUxIj4K
CQkJCQoJCQkJPEEgY2xhc3M9ImJpZ3VzZXJuYW1lIiBocmVmPSJtZW1iZXIucGhwP3U9MTI3ODIi
Pk9sYWYgTWFyem9jY2hpPC9BPgoJCQkJPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiB2
Ym1lbnVfcmVnaXN0ZXIoInBvc3RtZW51XzUxMTk1MSIsIHRydWUpOyA8L1NDUklQVD4KCQkJCQoJ
CQk8L0RJVj4KCQkJCgkJCTxESVYgY2xhc3M9InNtYWxsZm9udCI+UHJvZmV0YTwvRElWPgoJCQkK
CQkKCQkJCgkJCQk8RElWIGNsYXNzPSJzbWFsbGZvbnQiPgoJCQkJCcKgPEJSPjxBIGhyZWY9Im1l
bWJlci5waHA/dT0xMjc4MiI+PElNRyBzcmM9ImltYWdlLnBocD91PTEyNzgyJmRhdGVsaW5lPTEx
MDY3MzQwMjUiIGFsdD0iT2xhZiBNYXJ6b2NjaGkgYXZhdGFyIiBib3JkZXI9IjAiIHRpdGxlPSJP
bGFmIE1hcnpvY2NoaSBhdmF0YXIiPjwvQT4KCQkJCTwvRElWPgoJCQkKCQkJCgkJCTxESVYgY2xh
c3M9InNtYWxsZm9udCI+CgkJCQnCoDxCUj4KCQkJCTxESVY+RGF0YSByZWdpc3RyYXppb25lOiAy
NS8wNS8yMDAwPC9ESVY+CgkJCQkKCQkJCQoJCQkJPERJVj4KCQkJCQlNZXNzYWdnaTogMS40MTgK
CQkJCTwvRElWPgoJCQkJCgkJCQk8RElWPjxBIGhyZWY9IiMiIG9uY2xpY2s9Imltd2luZG93KCdp
Y3EnLCAnMTI3ODInLCA1MDAsIDQ1MCk7IHJldHVybiBmYWxzZTsiPjxJTUcgc3JjPSJpbWFnZXMv
YXMyZ3JhcGhpdGUvbWlzYy9pbV9pY3EuZ2lmIiBhbHQ9IkludmlhIHVuIG1lc3NhZ2dpbyB2aWEg
SUNRIGEgT2xhZiBNYXJ6b2NjaGkiIGJvcmRlcj0iMCIgdGl0bGU9IkludmlhIHVuIG1lc3NhZ2dp
byB2aWEgSUNRIGEgT2xhZiBNYXJ6b2NjaGkiPjwvQT4gPEEgaHJlZj0iIyIgb25jbGljaz0iaW13
aW5kb3coJ2FpbScsICcxMjc4MicsIDQwMCwgMjAwKTsgcmV0dXJuIGZhbHNlOyI+PElNRyBzcmM9
ImltYWdlcy9hczJncmFwaGl0ZS9taXNjL2ltX2FpbS5naWYiIGFsdD0iSW52aWEgdW4gbWVzc2Fn
Z2lvIHZpYSBBSU0gYSBPbGFmIE1hcnpvY2NoaSIgYm9yZGVyPSIwIiB0aXRsZT0iSW52aWEgdW4g
bWVzc2FnZ2lvIHZpYSBBSU0gYSBPbGFmIE1hcnpvY2NoaSI+PC9BPiA8QSBocmVmPSIjIiBvbmNs
aWNrPSJpbXdpbmRvdygnbXNuJywgJzEyNzgyJywgNDAwLCAyMDApOyByZXR1cm4gZmFsc2U7Ij48
SU1HIHNyYz0iaW1hZ2VzL2FzMmdyYXBoaXRlL21pc2MvaW1fbXNuLmdpZiIgYWx0PSJJbnZpYSB1
biBtZXNzYWdnaW8gdmlhIE1TTiBhIE9sYWYgTWFyem9jY2hpIiBib3JkZXI9IjAiIHRpdGxlPSJJ
bnZpYSB1biBtZXNzYWdnaW8gdmlhIE1TTiBhIE9sYWYgTWFyem9jY2hpIj48L0E+ICA8QSBocmVm
PSIjIiBvbmNsaWNrPSJpbXdpbmRvdygnc2t5cGUnLCAnMTI3ODInLCA0MDAsIDI4NSk7IHJldHVy
biBmYWxzZTsiPjxJTUcgc3JjPSJodHRwOi8vbXlzdGF0dXMuc2t5cGUuY29tL3NtYWxsaWNvbi9v
bGFmbWFyem9jY2hpIiBhbHQ9IlNlbmQgYSBtZXNzYWdlIHZpYSBTa3lwZeKEoiB0byBPbGFmIE1h
cnpvY2NoaSIgYm9yZGVyPSIwIiB0aXRsZT0iU2VuZCBhIG1lc3NhZ2UgdmlhIFNreXBl4oSiIHRv
IE9sYWYgTWFyem9jY2hpIj48L0E+PC9ESVY+CgkJCTwvRElWPgkJCQkJCgkJCgk8L1REPjxURCBj
bGFzcz0iYWx0MSIgaWQ9InRkX3Bvc3RfNTExOTUxIj4KCQoJCgkJCgkJCQoJCQk8RElWIGNsYXNz
PSJzbWFsbGZvbnQiPgoJCQkJPElNRyBjbGFzcz0iaW5saW5laW1nIiBzcmM9ImltYWdlcy9pY29u
cy9pY29uMS5naWYiIGFsdD0iUHJlZGVmaW5pdG8iIGJvcmRlcj0iMCIgdGl0bGU9IlByZWRlZmlu
aXRvIj4KCQkJCQoJCQk8L0RJVj4KCQkJPEhSIHNpemU9IjEiIHN0eWxlPSJjb2xvcjojRDFEMUUx
Ij4KCQkJCgkJCgkJCgkJCgkJPERJViBpZD0icG9zdF9tZXNzYWdlXzUxMTk1MSI+U2kgcHXDsiBh
Z2dpb3JuYXJlIGEgMTAuNC4zIHNlbnphIHJpYXZ2aWFyZS4uLiBvIG1lZ2xpbywgInF1YXNpIiBh
Z2dpb3JuYXJlOiBkYWwgY29tYm8gaG8gdGlyYXRvIGZ1b3JpIGEgbWFubyBpIHBlenppIGNoZSB2
b2xldm8gYWdnaW9ybmFyZSBkYSBzdWJpdG8sIHNlbnphIHJpYXZ2aWFyZSAocHJhdGljYW1lbnRl
IHR1dHRvIHRyYW5uZSBrZXJuZWwgZSBrZXh0KS48QlI+CjxCUj4KQSBwYXJ0ZSBpQ2hhdCBjaGUg
bm9uIHBhcnRlIHBpw7ksIGlsIHJlc3RvIHNlbWJyYSBhbmRhcmUgYmVuZSBlIE1haWwgY2hlIG9y
YSByaWd1YXJkbyBtZWdsaW8gKHNwZXJvIGJlbmUpLi4uPC9ESVY+CgkJCgkKCQkKCQkKCQkKCQkK
CQkKCQoJPC9URD48L1RSPjxUUj48VEQgY2xhc3M9ImFsdDIiPgoJCTxJTUcgY2xhc3M9ImlubGlu
ZWltZyIgc3JjPSJpbWFnZXMvYXMyZ3JhcGhpdGUvc3RhdHVzaWNvbi91c2VyX29mZmxpbmUuZ2lm
IiBhbHQ9Ik9sYWYgTWFyem9jY2hpIGlzIG9mZmxpbmUiIGJvcmRlcj0iMCIgdGl0bGU9Ik9sYWYg
TWFyem9jY2hpIGlzIG9mZmxpbmUiPgoKCgkJCgkJPEEgaHJlZj0icmVwb3J0LnBocD9wPTUxMTk1
MSIgcmVsPSJub2ZvbGxvdyI+PElNRyBjbGFzcz0iaW5saW5laW1nIiBzcmM9ImltYWdlcy9hczJn
cmFwaGl0ZS9idXR0b25zL3JlcG9ydC5naWYiIGFsdD0iU2VnbmFsYSBtZXNzYWdnaW8gc2NvcnJl
dHRvIG9kIG9mZmVuc2l2byIgYm9yZGVyPSIwIiB0aXRsZT0iU2VnbmFsYSBtZXNzYWdnaW8gc2Nv
cnJldHRvIG9kIG9mZmVuc2l2byI+PC9BPgoJCQoJCcKgCgk8L1REPjxURCBjbGFzcz0iYWx0MSIg
YWxpZ249InJpZ2h0Ij4KCQoJCQoJCQoJCQoJCQoJCQk8QSBocmVmPSJuZXdyZXBseS5waHA/ZG89
bmV3cmVwbHkmcD01MTE5NTEiIHJlbD0ibm9mb2xsb3ciPjxJTUcgc3JjPSJpbWFnZXMvYXMyZ3Jh
cGhpdGUvYnV0dG9ucy9xdW90ZS5naWYiIGFsdD0iUmVwbGljYSBjb24gY2l0YXppb25lIiBib3Jk
ZXI9IjAiIHRpdGxlPSJSZXBsaWNhIGNvbiBjaXRhemlvbmUiPjwvQT4KCQkKCQkKCQkKCQkKCTwv
VEQ+PC9UUj48L1RCT0RZPjwvVEFCTEU+CgoKPERJViBjbGFzcz0idmJtZW51X3BvcHVwIiBpZD0i
cG9zdG1lbnVfNTExOTUxX21lbnUiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgoJPFRBQkxFIGNlbGxw
YWRkaW5nPSI0IiBjZWxsc3BhY2luZz0iMSIgYm9yZGVyPSIwIj4KCTxUQk9EWT48VFI+PFREIGNs
YXNzPSJ0aGVhZCI+T2xhZiBNYXJ6b2NjaGk8L1REPjwvVFI+PFRSPjxURCBjbGFzcz0idmJtZW51
X29wdGlvbiI+PEEgaHJlZj0ibWVtYmVyLnBocD91PTEyNzgyIj5Nb3N0cmEgcHJvZmlsbyBwdWJi
bGljbzwvQT48L1REPjwvVFI+PFRSPjxURCBjbGFzcz0idmJtZW51X29wdGlvbiI+PEEgaHJlZj0i
cHJpdmF0ZS5waHA/ZG89bmV3cG0mdT0xMjc4MiIgcmVsPSJub2ZvbGxvdyI+SW52aWEgdW4gbWVz
c2FnZ2lvIHByaXZhdG8gYSBPbGFmIE1hcnpvY2NoaTwvQT48L1REPjwvVFI+PFRSPjxURCBjbGFz
cz0idmJtZW51X29wdGlvbiI+PEEgaHJlZj0ic2VuZG1lc3NhZ2UucGhwP2RvPW1haWxtZW1iZXIm
dT0xMjc4MiIgcmVsPSJub2ZvbGxvdyI+TWFuZGEgRS1NYWlsIGEgT2xhZiBNYXJ6b2NjaGk8L0E+
PC9URD48L1RSPjxUUj48VEQgY2xhc3M9InZibWVudV9vcHRpb24iPjxBIGhyZWY9Imh0dHA6Ly93
d3cubWFyem9jY2hpLm5ldC9PbGFmc2VuIj5WaXNpdGEgbGEgcGFnaW5hIHByaW5jaXBhbGUgZGkg
T2xhZiBNYXJ6b2NjaGkhPC9BPjwvVEQ+PC9UUj48VFI+PFREIGNsYXNzPSJ2Ym1lbnVfb3B0aW9u
Ij48QSBocmVmPSJzZWFyY2gucGhwP2RvPWZpbmR1c2VyJnU9MTI3ODIiIHJlbD0ibm9mb2xsb3ci
PkNlcmNhIGFsdHJpIG1lc3NhZ2dpIGRpIE9sYWYgTWFyem9jY2hpPC9BPjwvVEQ+PC9UUj48VFI+
PFREIGNsYXNzPSJ2Ym1lbnVfb3B0aW9uIj48QSBocmVmPSJwcm9maWxlLnBocD9kbz1hZGRsaXN0
JnVzZXJsaXN0PWJ1ZGR5JnU9MTI3ODIiPkFnZ2l1bmdpIE9sYWYgTWFyem9jY2hpIGFsbCdlbGVu
Y28gYW1pY2k8L0E+PC9URD48L1RSPjwvVEJPRFk+PC9UQUJMRT4KPC9ESVY+CgoKCgoKPFRBQkxF
IGNsYXNzPSJ0Ym9yZGVyIiBjZWxscGFkZGluZz0iNiIgY2VsbHNwYWNpbmc9IjEiIGJvcmRlcj0i
MCIgd2lkdGg9IjEwMCUiIHN0eWxlPSJib3JkZXItdG9wLXdpZHRoOjBweCI+CjxUQk9EWT48VFI+
PFREIGNsYXNzPSJ0Zm9vdCIgYWxpZ249ImNlbnRlciI+PElOUFVUIHR5cGU9ImJ1dHRvbiIgY2xh
c3M9ImJ1dHRvbiIgdmFsdWU9IkNoaXVkaSIgb25jbGljaz0ic2VsZi5jbG9zZSgpIj48L1REPjwv
VFI+PC9UQk9EWT48L1RBQkxFPgoKPC9GT1JNPgoKPFNDUklQVCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPgo8IS0tCgkvLyBNYWluIHZCdWxsZXRpbiBKYXZhc2NyaXB0IEluaXRpYWxpemF0aW9uCgl2
QnVsbGV0aW5faW5pdCgpOwoKCS8vIEluaXRpYWxpemUgJ0FjdGl2ZScgVGFibGUgQ2VsbHMKCS8v
YWN0aXZlY2VsbHNfaW5pdCgpOwovLy0tPgo8L1NDUklQVD4KCgo8L0JPRFk+PC9IVE1MPl8QQWh0
dHA6Ly93d3cubWFjaXR5bmV0Lml0L2ZvcnVtL3Nob3dwb3N0LnBocD9wPTUxMTk1MSZwb3N0Y291
bnQ9MTg5WXRleHQvaHRtbAAACAAADQAAHwAAMQAAPwAASAAAXgAAcAAAfwAAlQAFHwBVpwBV+wBW
BABWDQBalgDcWgDcmwDctgDcvwDhRQEc1wEdFgEdHwEhnQEj2QEkJAEkLgEkNwEpmwFX4wFYKQFY
MwFYPAFcswFgtAFg9wFhAAFldgFnswFn9gFn/wFsdgFwYQFwpAFwrQF16AF3cwF3pwF3sAF8GwGA
JwGAXgGAZwGE6QGHMQGHgAGHiQGMAgGONAGOegGOgwGS/AGZcAGZtQGZvgGZ3AGZ4gG0KgG0bgAA
AAAAAAMBAAAAAAAAAEYAAAAAAAAAAAAAAAAAAbR4
</data>

          </attachment>
      

    </bug>

</bugzilla>